UNPKG

@glimmer/syntax

Version:
121 lines (92 loc) 8.17 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.NamedBlock = exports.NamedBlocks = exports.Block = exports.Template = void 0; var _spanList = require("../../source/span-list"); var _args = require("./args"); var _node = require("./node"); 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; subClass.__proto__ = superClass; } /** * Corresponds to an entire template. */ var Template = /*#__PURE__*/function (_node$fields) { _inheritsLoose(Template, _node$fields); function Template() { return _node$fields.apply(this, arguments) || this; } return Template; }((0, _node.node)().fields()); /** * Represents a block. In principle this could be merged with `NamedBlock`, because all cases * involving blocks have at least a notional name. */ exports.Template = Template; var Block = /*#__PURE__*/function (_node$fields2) { _inheritsLoose(Block, _node$fields2); function Block() { return _node$fields2.apply(this, arguments) || this; } return Block; }((0, _node.node)().fields()); /** * Corresponds to a collection of named blocks. */ exports.Block = Block; var NamedBlocks = /*#__PURE__*/function (_node$fields3) { _inheritsLoose(NamedBlocks, _node$fields3); function NamedBlocks() { return _node$fields3.apply(this, arguments) || this; } var _proto = NamedBlocks.prototype; _proto.get = function get(name) { return this.blocks.filter(function (block) { return block.name.chars === name; })[0] || null; }; return NamedBlocks; }((0, _node.node)().fields()); /** * Corresponds to a single named block. This is used for anonymous named blocks (`default` and * `else`). */ exports.NamedBlocks = NamedBlocks; var NamedBlock = /*#__PURE__*/function (_node$fields4) { _inheritsLoose(NamedBlock, _node$fields4); function NamedBlock() { return _node$fields4.apply(this, arguments) || this; } _createClass(NamedBlock, [{ key: "args", get: function get() { var entries = this.componentArgs.map(function (a) { return a.toNamedArgument(); }); return _args.Args.named(new _args.NamedArguments({ loc: _spanList.SpanList.range(entries, this.name.loc.collapse('end')), entries: entries })); } }]); return NamedBlock; }((0, _node.node)().fields()); exports.NamedBlock = NamedBlock; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9vYmplY3RzL2ludGVybmFsLW5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOztBQUVBOztBQUdBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTs7O0FBR0EsSUFBTSxRQUFOLEdBQUEsYUFBQSxVQUFBLFlBQUEsRUFBQTtBQUFBLEVBQUEsY0FBQSxDQUFBLFFBQUEsRUFBQSxZQUFBLENBQUE7O0FBQUEsV0FBQSxRQUFBLEdBQUE7QUFBQSxXQUFBLFlBQUEsQ0FBQSxLQUFBLENBQUEsSUFBQSxFQUFBLFNBQUEsS0FBQSxJQUFBO0FBQUE7O0FBQUEsU0FBQSxRQUFBO0FBQUEsQ0FBQSxDQUE4QixrQkFBOUIsTUFBOEIsRUFBOUIsQ0FBQTtBQU1BOzs7Ozs7OztBQUlBLElBQU0sS0FBTixHQUFBLGFBQUEsVUFBQSxhQUFBLEVBQUE7QUFBQSxFQUFBLGNBQUEsQ0FBQSxLQUFBLEVBQUEsYUFBQSxDQUFBOztBQUFBLFdBQUEsS0FBQSxHQUFBO0FBQUEsV0FBQSxhQUFBLENBQUEsS0FBQSxDQUFBLElBQUEsRUFBQSxTQUFBLEtBQUEsSUFBQTtBQUFBOztBQUFBLFNBQUEsS0FBQTtBQUFBLENBQUEsQ0FBMkIsa0JBQTNCLE1BQTJCLEVBQTNCLENBQUE7QUFJQTs7Ozs7OztBQUdBLElBQU0sV0FBTixHQUFBLGFBQUEsVUFBQSxhQUFBLEVBQUE7QUFBQSxFQUFBLGNBQUEsQ0FBQSxXQUFBLEVBQUEsYUFBQSxDQUFBOztBQUFBLFdBQUEsV0FBQSxHQUFBO0FBQUEsV0FBQSxhQUFBLENBQUEsS0FBQSxDQUFBLElBQUEsRUFBQSxTQUFBLEtBQUEsSUFBQTtBQUFBOztBQUFBLE1BQUEsTUFBQSxHQUFBLFdBQUEsQ0FBQSxTQUFBOztBQUFBLEVBQUEsTUFBQSxDQUFBLEdBQUEsR0FNRSxTQUFBLEdBQUEsQ0FBQSxJQUFBLEVBQWdCO0FBQ2QsV0FBTyxLQUFBLE1BQUEsQ0FBQSxNQUFBLENBQW9CLFVBQUQsS0FBQyxFQUFEO0FBQUEsYUFBVyxLQUFLLENBQUwsSUFBQSxDQUFBLEtBQUEsS0FBOUIsSUFBbUI7QUFBbkIsS0FBQSxFQUFBLENBQUEsS0FBUCxJQUFBO0FBUEosR0FBQTs7QUFBQSxTQUFBLFdBQUE7QUFBQSxDQUFBLENBQWlDLGtCQUFqQyxNQUFpQyxFQUFqQyxDQUFBO0FBcUJBOzs7Ozs7OztBQUlBLElBQU0sVUFBTixHQUFBLGFBQUEsVUFBQSxhQUFBLEVBQUE7QUFBQSxFQUFBLGNBQUEsQ0FBQSxVQUFBLEVBQUEsYUFBQSxDQUFBOztBQUFBLFdBQUEsVUFBQSxHQUFBO0FBQUEsV0FBQSxhQUFBLENBQUEsS0FBQSxDQUFBLElBQUEsRUFBQSxTQUFBLEtBQUEsSUFBQTtBQUFBOztBQUFBLEVBQUEsWUFBQSxDQUFBLFVBQUEsRUFBQSxDQUFBO0FBQUEsSUFBQSxHQUFBLEVBQUEsTUFBQTtBQUFBLElBQUEsR0FBQSxFQUFBLFNBQUEsR0FBQSxHQUNVO0FBQ04sVUFBSSxPQUFPLEdBQUcsS0FBQSxhQUFBLENBQUEsR0FBQSxDQUF3QixVQUFELENBQUMsRUFBRDtBQUFBLGVBQU8sQ0FBQyxDQUE3QyxlQUE0QyxFQUFQO0FBQXJDLE9BQWMsQ0FBZDtBQUVBLGFBQU8sV0FBQSxLQUFBLENBQ0wsSUFBQSxvQkFBQSxDQUFtQjtBQUNqQixRQUFBLEdBQUcsRUFBRSxtQkFBQSxLQUFBLENBQUEsT0FBQSxFQUF3QixLQUFBLElBQUEsQ0FBQSxHQUFBLENBQUEsUUFBQSxDQURaLEtBQ1ksQ0FBeEIsQ0FEWTtBQUVqQixRQUFBLE9BQUEsRUFBQTtBQUZpQixPQUFuQixDQURLLENBQVA7QUFNRDtBQVZILEdBQUEsQ0FBQSxDQUFBOztBQUFBLFNBQUEsVUFBQTtBQUFBLENBQUEsQ0FBZ0Msa0JBQWhDLE1BQWdDLEVBQWhDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTb3VyY2VTbGljZSB9IGZyb20gJy4uLy4uL3NvdXJjZS9zbGljZSc7XG5pbXBvcnQgeyBTcGFuTGlzdCB9IGZyb20gJy4uLy4uL3NvdXJjZS9zcGFuLWxpc3QnO1xuaW1wb3J0IHsgQmxvY2tTeW1ib2xUYWJsZSwgUHJvZ3JhbVN5bWJvbFRhYmxlIH0gZnJvbSAnLi4vLi4vc3ltYm9sLXRhYmxlJztcbmltcG9ydCB7IEFyZ3MsIE5hbWVkQXJndW1lbnRzIH0gZnJvbSAnLi9hcmdzJztcbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50QXJnLCBFbGVtZW50TW9kaWZpZXIsIEh0bWxPclNwbGF0QXR0ciB9IGZyb20gJy4vYXR0ci1ibG9jayc7XG5pbXBvcnQgdHlwZSB7IEdsaW1tZXJQYXJlbnROb2RlT3B0aW9ucyB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBCYXNlTm9kZUZpZWxkcywgbm9kZSB9IGZyb20gJy4vbm9kZSc7XG5cbi8qKlxuICogQ29ycmVzcG9uZHMgdG8gYW4gZW50aXJlIHRlbXBsYXRlLlxuICovXG5leHBvcnQgY2xhc3MgVGVtcGxhdGUgZXh0ZW5kcyBub2RlKCkuZmllbGRzPFxuICB7XG4gICAgdGFibGU6IFByb2dyYW1TeW1ib2xUYWJsZTtcbiAgfSAmIEdsaW1tZXJQYXJlbnROb2RlT3B0aW9uc1xuPigpIHt9XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGJsb2NrLiBJbiBwcmluY2lwbGUgdGhpcyBjb3VsZCBiZSBtZXJnZWQgd2l0aCBgTmFtZWRCbG9ja2AsIGJlY2F1c2UgYWxsIGNhc2VzXG4gKiBpbnZvbHZpbmcgYmxvY2tzIGhhdmUgYXQgbGVhc3QgYSBub3Rpb25hbCBuYW1lLlxuICovXG5leHBvcnQgY2xhc3MgQmxvY2sgZXh0ZW5kcyBub2RlKCkuZmllbGRzPFxuICB7IHNjb3BlOiBCbG9ja1N5bWJvbFRhYmxlIH0gJiBHbGltbWVyUGFyZW50Tm9kZU9wdGlvbnNcbj4oKSB7fVxuXG4vKipcbiAqIENvcnJlc3BvbmRzIHRvIGEgY29sbGVjdGlvbiBvZiBuYW1lZCBibG9ja3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBOYW1lZEJsb2NrcyBleHRlbmRzIG5vZGUoKS5maWVsZHM8eyBibG9ja3M6IHJlYWRvbmx5IE5hbWVkQmxvY2tbXSB9PigpIHtcbiAgLyoqXG4gICAqIEdldCB0aGUgYE5hbWVkQmxvY2tgIGZvciBhIGdpdmVuIG5hbWUuXG4gICAqL1xuICBnZXQobmFtZTogJ2RlZmF1bHQnKTogTmFtZWRCbG9jaztcbiAgZ2V0KG5hbWU6IHN0cmluZyk6IE5hbWVkQmxvY2sgfCBudWxsO1xuICBnZXQobmFtZTogc3RyaW5nKTogTmFtZWRCbG9jayB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmJsb2Nrcy5maWx0ZXIoKGJsb2NrKSA9PiBibG9jay5uYW1lLmNoYXJzID09PSBuYW1lKVswXSB8fCBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmFtZWRCbG9ja0ZpZWxkcyBleHRlbmRzIEJhc2VOb2RlRmllbGRzIHtcbiAgbmFtZTogU291cmNlU2xpY2U7XG4gIGJsb2NrOiBCbG9jaztcblxuICAvLyB0aGVzZSBhcmUgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQsIGJ1dCBhcmUgaGVyZSBmb3IgZnV0dXJlIGV4cGFuc2lvblxuICBhdHRyczogcmVhZG9ubHkgSHRtbE9yU3BsYXRBdHRyW107XG4gIGNvbXBvbmVudEFyZ3M6IHJlYWRvbmx5IENvbXBvbmVudEFyZ1tdO1xuICBtb2RpZmllcnM6IHJlYWRvbmx5IEVsZW1lbnRNb2RpZmllcltdO1xufVxuXG4vKipcbiAqIENvcnJlc3BvbmRzIHRvIGEgc2luZ2xlIG5hbWVkIGJsb2NrLiBUaGlzIGlzIHVzZWQgZm9yIGFub255bW91cyBuYW1lZCBibG9ja3MgKGBkZWZhdWx0YCBhbmRcbiAqIGBlbHNlYCkuXG4gKi9cbmV4cG9ydCBjbGFzcyBOYW1lZEJsb2NrIGV4dGVuZHMgbm9kZSgpLmZpZWxkczxOYW1lZEJsb2NrRmllbGRzPigpIHtcbiAgZ2V0IGFyZ3MoKTogQXJncyB7XG4gICAgbGV0IGVudHJpZXMgPSB0aGlzLmNvbXBvbmVudEFyZ3MubWFwKChhKSA9PiBhLnRvTmFtZWRBcmd1bWVudCgpKTtcblxuICAgIHJldHVybiBBcmdzLm5hbWVkKFxuICAgICAgbmV3IE5hbWVkQXJndW1lbnRzKHtcbiAgICAgICAgbG9jOiBTcGFuTGlzdC5yYW5nZShlbnRyaWVzLCB0aGlzLm5hbWUubG9jLmNvbGxhcHNlKCdlbmQnKSksXG4gICAgICAgIGVudHJpZXMsXG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiIn0=