import deprecated from "discourse-common/lib/deprecated"; export default class Connector { constructor(widget, opts) { this.widget = widget; this.opts = opts; } init() { const $elem = $(`
`); const elem = $elem[0]; const { opts, widget } = this; Ember.run.next(() => { const mounted = widget._findView(); if (opts.templateName) { deprecated( `Using a 'templateName' for a connector is deprecated. Use 'component' instead [${ opts.templateName }]` ); } const container = Ember.getOwner ? Ember.getOwner(mounted) : mounted.container; let view; if (opts.component) { const connector = widget.register.lookupFactory( "component:connector-container" ); view = connector.create({ layoutName: `components/${opts.component}`, model: widget.findAncestorModel() }); } if (opts.templateName) { let context; if (opts.context === "model") { const model = widget.findAncestorModel(); context = model; } view = Ember.View.create({ container: container || widget.register, templateName: opts.templateName, context }); } if (view) { if (Ember.setOwner) { Ember.setOwner(view, Ember.getOwner(mounted)); } mounted._connected.push(view); view.renderer.appendTo(view, $elem[0]); } }); return elem; } update() {} } Connector.prototype.type = "Widget";