UNPKG

@glimmer/component

Version:
132 lines (106 loc) 10.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = undefined; var _util = require("@glimmer/util"); var _application = require("@glimmer/application"); var _component = require("../addon/-private/component"); var _component2 = _interopRequireDefault(_component); var _componentManager = require("./component-manager"); var _componentManager2 = _interopRequireDefault(_componentManager); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _defaults(subClass, superClass); } var Component = /*#__PURE__*/ function (_BaseComponent) { _inheritsLoose(Component, _BaseComponent); function Component() { return _BaseComponent.apply(this, arguments) || this; } var _proto = Component.prototype; /* * Legacy DOM access and lifecycle hooks. These will be deprecated in favor * of render modifiers once Glimmer.js supports an element modifier manager * API. */ /** * Called when the component has been inserted into the DOM. * Override this function to do any set up that requires an element in the document body. */ _proto.didInsertElement = function didInsertElement() {} /** * Called when the component has updated and rerendered itself. * Called only during a rerender, not during an initial render. */ ; _proto.didUpdate = function didUpdate() {} /** * The element corresponding to the main element of the component's template. * The main element is the element in the template that has `...attributes` set on it: * * ```hbs * <h1>Modal</h1> * <div class="contents" ...attributes> * {{yield}} * </div> * ``` * * In this example, `this.element` would be the `div` with the class `contents`. * * You should not try to access this property until after the component's `didInsertElement()` * lifecycle hook is called. */ ; _createClass(Component, [{ key: "debugName", /** * Development-mode only name of the component, useful for debugging. */ get: function get() { return this.constructor.name; } }, { key: "element", get: function get() { var bounds = this.bounds; (0, _util.assert)(bounds && bounds.firstNode === bounds.lastNode, "The 'element' property can only be accessed on components that contain a single root element in their template. Try using 'bounds' instead to access the first and last nodes."); return bounds.firstNode; } }]); return Component; }(_component2.default); exports.default = Component; (0, _application.setComponentManager)(function (owner) { return new _componentManager2.default(owner); }, _component2.default); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL2NvbXBvbmVudC9zcmMvY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7OztBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQU9xQixTOzs7Ozs7Ozs7O0FBVW5COzs7Ozs7QUFNQTs7Ozs7U0FJQSxnQixHQUFBLFNBQUEsZ0JBQUEsR0FBZ0IsQ0FBSztBQUVyQjs7Ozs7O1NBSUEsUyxHQUFBLFNBQUEsU0FBQSxHQUFTLENBQUs7QUFnRmQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXZHQTs7O3dCQUdhO0FBQ1gsYUFBTyxLQUFBLFdBQUEsQ0FBUCxJQUFBO0FBQ0Q7Ozt3QkFrSFU7QUFBQSxVQUNILE1BREcsR0FBQSxLQUFBLE1BQUE7QUFFVCx3QkFDRSxNQUFNLElBQUksTUFBTSxDQUFOLFNBQUEsS0FBcUIsTUFBTSxDQURqQyxRQUFOLEVBQUEsZ0xBQUE7QUFJQSxhQUFPLE1BQU0sQ0FBYixTQUFBO0FBQ0Q7Ozs7RUFqSWlELG1COztrQkFBL0IsUztBQW9JckIsc0NBQW9CLFVBQUEsS0FBQSxFQUFjO0FBQ2hDLFNBQU8sSUFBQSwwQkFBQSxDQUFQLEtBQU8sQ0FBUDtBQURpQixDQUFuQixFQUFBLG1CQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSAnQGdsaW1tZXIvdXRpbCc7XG5pbXBvcnQgeyBzZXRDb21wb25lbnRNYW5hZ2VyIH0gZnJvbSAnQGdsaW1tZXIvYXBwbGljYXRpb24nO1xuaW1wb3J0IEJhc2VDb21wb25lbnQsIHsgQXJncyB9IGZyb20gJy4uL2FkZG9uLy1wcml2YXRlL2NvbXBvbmVudCc7XG5pbXBvcnQgR2xpbW1lckNvbXBvbmVudE1hbmFnZXIgZnJvbSAnLi9jb21wb25lbnQtbWFuYWdlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm91bmRzIHtcbiAgZmlyc3ROb2RlOiBOb2RlO1xuICBsYXN0Tm9kZTogTm9kZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29tcG9uZW50PFMgPSB1bmtub3duPiBleHRlbmRzIEJhc2VDb21wb25lbnQ8Uz4ge1xuICBhcmdzOiBSZWFkb25seTxBcmdzPFM+PjtcblxuICAvKipcbiAgICogRGV2ZWxvcG1lbnQtbW9kZSBvbmx5IG5hbWUgb2YgdGhlIGNvbXBvbmVudCwgdXNlZnVsIGZvciBkZWJ1Z2dpbmcuXG4gICAqL1xuICBnZXQgZGVidWdOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY29uc3RydWN0b3IubmFtZTtcbiAgfVxuXG4gIC8qXG4gICAqIExlZ2FjeSBET00gYWNjZXNzIGFuZCBsaWZlY3ljbGUgaG9va3MuIFRoZXNlIHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmYXZvclxuICAgKiBvZiByZW5kZXIgbW9kaWZpZXJzIG9uY2UgR2xpbW1lci5qcyBzdXBwb3J0cyBhbiBlbGVtZW50IG1vZGlmaWVyIG1hbmFnZXJcbiAgICogQVBJLlxuICAgKi9cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBoYXMgYmVlbiBpbnNlcnRlZCBpbnRvIHRoZSBET00uXG4gICAqIE92ZXJyaWRlIHRoaXMgZnVuY3Rpb24gdG8gZG8gYW55IHNldCB1cCB0aGF0IHJlcXVpcmVzIGFuIGVsZW1lbnQgaW4gdGhlIGRvY3VtZW50IGJvZHkuXG4gICAqL1xuICBkaWRJbnNlcnRFbGVtZW50KCkge31cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGNvbXBvbmVudCBoYXMgdXBkYXRlZCBhbmQgcmVyZW5kZXJlZCBpdHNlbGYuXG4gICAqIENhbGxlZCBvbmx5IGR1cmluZyBhIHJlcmVuZGVyLCBub3QgZHVyaW5nIGFuIGluaXRpYWwgcmVuZGVyLlxuICAgKi9cbiAgZGlkVXBkYXRlKCkge31cblxuICAvKipcbiAgICogQ29udGFpbnMgdGhlIGZpcnN0IGFuZCBsYXN0IERPTSBub2RlcyBvZiBhIGNvbXBvbmVudCdzIHJlbmRlcmVkIHRlbXBsYXRlLlxuICAgKiBUaGVzZSBub2RlcyBjYW4gYmUgdXNlZCB0byB0cmF2ZXJzZSBhbGwgb2YgdGhlIERPTSBub2RlcyB0aGF0IGJlbG9uZyB0byBhXG4gICAqIHBhcnRpY3VsYXIgY29tcG9uZW50LlxuICAgKlxuICAgKiBOb3RlIHRoYXQgYSBjb21wb25lbnQncyBmaXJzdCBhbmQgbGFzdCBub2RlcyAqY2FuKiBjaGFuZ2Ugb3ZlciB0aW1lLCBpZiB0aGVcbiAgICogYmVnaW5uaW5nIG9yIGVuZGluZyBvZiB0aGUgdGVtcGxhdGUgaXMgZHluYW1pYy4gWW91IHNob3VsZCBhbHdheXMgYWNjZXNzXG4gICAqIGBib3VuZHNgIGRpcmVjdGx5IGF0IHRoZSB0aW1lIGEgbm9kZSBpcyBuZWVkZWQgdG8gZW5zdXJlIHlvdSBhcmUgYWN0aW5nIG9uXG4gICAqIHVwLXRvLWRhdGUgbm9kZXMuXG4gICAqXG4gICAqICMjIyBFeGFtcGxlc1xuICAgKlxuICAgKiBGb3IgY29tcG9uZW50cyB3aXRoIGEgc2luZ2xlIHJvb3QgZWxlbWVudCwgYHRoaXMuYm91bmRzLmZpcnN0Tm9kZWAgYW5kXG4gICAqIGB0aGlzLmJvdW5kcy5sYXN0Tm9kZWAgYXJlIHRoZSBzYW1lLlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICogPGRpdiBjbGFzcz1cInVzZXItcHJvZmlsZVwiPlxuICAgKiAgIDxBdmF0YXIgQHVzZXI9e3t1c2VyfX0gLz5cbiAgICogPC9kaXY+XG4gICAqIGBgYFxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBleHBvcnQgZGVmYXVsdCBjbGFzcyBleHRlbmRzIENvbXBvbmVudCB7XG4gICAqICAgZGlkSW5zZXJ0RWxlbWVudCgpIHtcbiAgICogICAgIGxldCB7IGZpcnN0Tm9kZSwgbGFzdE5vZGUgfSA9IHRoaXMuYm91bmRzO1xuICAgKiAgICAgY29uc29sZS5sb2coZmlyc3ROb2RlID09PSBsYXN0Tm9kZSk7IC8vIHRydWVcbiAgICogICAgIGNvbnNvbGUubG9nKGZpcnN0Tm9kZS5jbGFzc05hbWUpOyAvLyBcInVzZXItcHJvZmlsZVwiXG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBGb3IgY29tcG9uZW50cyB3aXRoIG11bHRpcGxlIHJvb3Qgbm9kZXMsIGB0aGlzLmJvdW5kcy5maXJzdE5vZGVgIHJlZmVycyB0b1xuICAgKiB0aGUgZmlyc3Qgbm9kZSBpbiB0aGUgdGVtcGxhdGUgYW5kIGB0aGlzLmJvdW5kcy5sYXN0Tm9kZWAgcmVmZXJzIHRvIHRoZVxuICAgKiBsYXN0OlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICogV2VsY29tZSB0byBHbGltbWVyLmpzIVxuICAgKiA8c3Bhbj5MZXQncyBidWlsZCBzb21lIGNvbXBvbmVudHMhPC9zcGFuPlxuICAgKiA8aW1nIHNyYz1cImxvZ28ucG5nXCI+XG4gICAqIGBgYFxuICAgKlxuICAgKiBgYGB0c1xuICAgKiBleHBvcnQgZGVmYXVsdCBjbGFzcyBleHRlbmRzIENvbXBvbmVudCB7XG4gICAqICAgZGlkSW5zZXJ0RWxlbWVudCgpIHtcbiAgICogICAgIGxldCB7IGZpcnN0Tm9kZSwgbGFzdE5vZGUgfSA9IHRoaXMuYm91bmRzO1xuICAgKlxuICAgKiAgICAgLy8gV2FsayBhbGwgb2YgdGhlIERPTSBzaWJsaW5ncyBmcm9tIHRoZVxuICAgKiAgICAgLy8gZmlyc3ROb2RlIHRvIHRoZSBsYXN0Tm9kZSBhbmQgcHVzaCB0aGVpclxuICAgKiAgICAgLy8gbm9kZU5hbWUgaW50byBhbiBhcnJheS5cbiAgICogICAgIGxldCBub2RlID0gZmlyc3ROb2RlO1xuICAgKiAgICAgbGV0IG5hbWVzID0gW2ZpcnN0Tm9kZS5ub2RlTmFtZV07XG4gICAqICAgICBkbyB7XG4gICAqICAgICAgIG5vZGUgPSBub2RlLm5leHRTaWJsaW5nO1xuICAgKiAgICAgICBuYW1lcy5wdXNoKG5vZGUubm9kZU5hbWUpO1xuICAgKiAgICAgfSB3aGlsZSAobm9kZSAhPT0gbGFzdE5vZGUpO1xuICAgKlxuICAgKiAgICAgY29uc29sZS5sb2cobmFtZXMpO1xuICAgKiAgICAgLy8gW1wiI3RleHRcIiwgXCJTUEFOXCIsIFwiSU1HXCJdXG4gICAqICAgfVxuICAgKiB9XG4gICAqIGBgYFxuICAgKlxuICAgKiBUaGUgYm91bmRzIGNhbiBjaGFuZ2UgaWYgdGhlIHRlbXBsYXRlIGhhcyBkeW5hbWljIGNvbnRlbnQgYXQgdGhlIGJlZ2lubmluZ1xuICAgKiBvciB0aGUgZW5kOlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICoge3sjaWYgdXNlci5pc0FkbWlufX1cbiAgICogICA8c3BhbiBjbGFzcz1cIndhcm5pbmdcIj5BZG1pbjwvc3Bhbj5cbiAgICoge3tlbHNlfX1cbiAgICogICBOb3JtYWwgVXNlclxuICAgKiB7ey9pZn19XG4gICAqIGBgYFxuICAgKlxuICAgKiBJbiB0aGlzIGV4YW1wbGUsIHRoZSBgZmlyc3ROb2RlYCB3aWxsIGNoYW5nZSBiZXR3ZWVuIGEgYHNwYW5gIGVsZW1lbnQgYW5kIGFcbiAgICogYFRleHROb2RlYCBhcyB0aGUgYHVzZXIuaXNBZG1pbmAgcHJvcGVydHkgY2hhbmdlcy5cbiAgICovXG4gIGJvdW5kczogQm91bmRzO1xuXG4gIC8qKlxuICAgKiBUaGUgZWxlbWVudCBjb3JyZXNwb25kaW5nIHRvIHRoZSBtYWluIGVsZW1lbnQgb2YgdGhlIGNvbXBvbmVudCdzIHRlbXBsYXRlLlxuICAgKiBUaGUgbWFpbiBlbGVtZW50IGlzIHRoZSBlbGVtZW50IGluIHRoZSB0ZW1wbGF0ZSB0aGF0IGhhcyBgLi4uYXR0cmlidXRlc2Agc2V0IG9uIGl0OlxuICAgKlxuICAgKiBgYGBoYnNcbiAgICogPGgxPk1vZGFsPC9oMT5cbiAgICogPGRpdiBjbGFzcz1cImNvbnRlbnRzXCIgLi4uYXR0cmlidXRlcz5cbiAgICogICB7e3lpZWxkfX1cbiAgICogPC9kaXY+XG4gICAqIGBgYFxuICAgKlxuICAgKiBJbiB0aGlzIGV4YW1wbGUsIGB0aGlzLmVsZW1lbnRgIHdvdWxkIGJlIHRoZSBgZGl2YCB3aXRoIHRoZSBjbGFzcyBgY29udGVudHNgLlxuICAgKlxuICAgKiBZb3Ugc2hvdWxkIG5vdCB0cnkgdG8gYWNjZXNzIHRoaXMgcHJvcGVydHkgdW50aWwgYWZ0ZXIgdGhlIGNvbXBvbmVudCdzIGBkaWRJbnNlcnRFbGVtZW50KClgXG4gICAqIGxpZmVjeWNsZSBob29rIGlzIGNhbGxlZC5cbiAgICovXG4gIGdldCBlbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICBsZXQgeyBib3VuZHMgfSA9IHRoaXM7XG4gICAgYXNzZXJ0KFxuICAgICAgYm91bmRzICYmIGJvdW5kcy5maXJzdE5vZGUgPT09IGJvdW5kcy5sYXN0Tm9kZSxcbiAgICAgIGBUaGUgJ2VsZW1lbnQnIHByb3BlcnR5IGNhbiBvbmx5IGJlIGFjY2Vzc2VkIG9uIGNvbXBvbmVudHMgdGhhdCBjb250YWluIGEgc2luZ2xlIHJvb3QgZWxlbWVudCBpbiB0aGVpciB0ZW1wbGF0ZS4gVHJ5IHVzaW5nICdib3VuZHMnIGluc3RlYWQgdG8gYWNjZXNzIHRoZSBmaXJzdCBhbmQgbGFzdCBub2Rlcy5gXG4gICAgKTtcbiAgICByZXR1cm4gYm91bmRzLmZpcnN0Tm9kZSBhcyBIVE1MRWxlbWVudDtcbiAgfVxufVxuXG5zZXRDb21wb25lbnRNYW5hZ2VyKChvd25lcjoge30pID0+IHtcbiAgcmV0dXJuIG5ldyBHbGltbWVyQ29tcG9uZW50TWFuYWdlcihvd25lcik7XG59LCBCYXNlQ29tcG9uZW50KTtcbiJdLCJzb3VyY2VSb290IjoiIn0=