UNPKG

@glimmer/syntax

Version:
87 lines (63 loc) 8.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SimpleElement = exports.InvokeComponent = exports.InvokeBlock = exports.AppendContent = exports.HtmlComment = exports.HtmlText = exports.GlimmerComment = void 0; var _spanList = require("../../source/span-list"); var _args = require("./args"); var _node = require("./node"); class GlimmerComment extends (0, _node.node)('GlimmerComment').fields() {} exports.GlimmerComment = GlimmerComment; class HtmlText extends (0, _node.node)('HtmlText').fields() {} exports.HtmlText = HtmlText; class HtmlComment extends (0, _node.node)('HtmlComment').fields() {} exports.HtmlComment = HtmlComment; class AppendContent extends (0, _node.node)('AppendContent').fields() { get callee() { if (this.value.type === 'Call') { return this.value.callee; } else { return this.value; } } get args() { if (this.value.type === 'Call') { return this.value.args; } else { return _args.Args.empty(this.value.loc.collapse('end')); } } } exports.AppendContent = AppendContent; class InvokeBlock extends (0, _node.node)('InvokeBlock').fields() {} /** * Corresponds to a component invocation. When the content of a component invocation contains no * named blocks, `blocks` contains a single named block named `"default"`. When a component * invocation is self-closing, `blocks` is empty. */ exports.InvokeBlock = InvokeBlock; class InvokeComponent extends (0, _node.node)('InvokeComponent').fields() { get args() { let entries = this.componentArgs.map(a => a.toNamedArgument()); return _args.Args.named(new _args.NamedArguments({ loc: _spanList.SpanList.range(entries, this.callee.loc.collapse('end')), entries })); } } /** * Corresponds to a simple HTML element. The AST allows component arguments and modifiers to support * future extensions. */ exports.InvokeComponent = InvokeComponent; class SimpleElement extends (0, _node.node)('SimpleElement').fields() { get args() { let entries = this.componentArgs.map(a => a.toNamedArgument()); return _args.Args.named(new _args.NamedArguments({ loc: _spanList.SpanList.range(entries, this.tag.loc.collapse('end')), entries })); } } exports.SimpleElement = SimpleElement; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdjItYS9vYmplY3RzL2NvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOztBQUVBOztBQUtBOztBQWlCTSxNQUFBLGNBQUEsU0FBOEIsZ0JBQUEsZ0JBQUEsRUFBOUIsTUFBOEIsRUFBOUIsQ0FBb0Y7Ozs7QUFDcEYsTUFBQSxRQUFBLFNBQXdCLGdCQUFBLFVBQUEsRUFBeEIsTUFBd0IsRUFBeEIsQ0FBb0U7Ozs7QUFDcEUsTUFBQSxXQUFBLFNBQTJCLGdCQUFBLGFBQUEsRUFBM0IsTUFBMkIsRUFBM0IsQ0FBOEU7Ozs7QUFFOUUsTUFBQSxhQUFBLFNBQTZCLGdCQUFBLGVBQUEsRUFBN0IsTUFBNkIsRUFBN0IsQ0FJRjtBQUNGLE1BQUEsTUFBQSxHQUFVO0FBQ1IsUUFBSSxLQUFBLEtBQUEsQ0FBQSxJQUFBLEtBQUosTUFBQSxFQUFnQztBQUM5QixhQUFPLEtBQUEsS0FBQSxDQUFQLE1BQUE7QUFERixLQUFBLE1BRU87QUFDTCxhQUFPLEtBQVAsS0FBQTtBQUNEO0FBQ0Y7O0FBRUQsTUFBQSxJQUFBLEdBQVE7QUFDTixRQUFJLEtBQUEsS0FBQSxDQUFBLElBQUEsS0FBSixNQUFBLEVBQWdDO0FBQzlCLGFBQU8sS0FBQSxLQUFBLENBQVAsSUFBQTtBQURGLEtBQUEsTUFFTztBQUNMLGFBQU8sV0FBQSxLQUFBLENBQVcsS0FBQSxLQUFBLENBQUEsR0FBQSxDQUFBLFFBQUEsQ0FBbEIsS0FBa0IsQ0FBWCxDQUFQO0FBQ0Q7QUFDRjs7QUFmQzs7OztBQWtCRSxNQUFBLFdBQUEsU0FBMkIsZ0JBQUEsYUFBQSxFQUEzQixNQUEyQixFQUEzQixDQUVIO0FBVUg7Ozs7Ozs7OztBQUtNLE1BQUEsZUFBQSxTQUErQixnQkFBQSxpQkFBQSxFQUEvQixNQUErQixFQUEvQixDQUFzRjtBQUMxRixNQUFBLElBQUEsR0FBUTtBQUNOLFFBQUksT0FBTyxHQUFHLEtBQUEsYUFBQSxDQUFBLEdBQUEsQ0FBd0IsQ0FBRCxJQUFPLENBQUMsQ0FBN0MsZUFBNEMsRUFBOUIsQ0FBZDtBQUVBLFdBQU8sV0FBQSxLQUFBLENBQ0wsSUFBQSxvQkFBQSxDQUFtQjtBQUNqQixNQUFBLEdBQUcsRUFBRSxtQkFBQSxLQUFBLENBQUEsT0FBQSxFQUF3QixLQUFBLE1BQUEsQ0FBQSxHQUFBLENBQUEsUUFBQSxDQURaLEtBQ1ksQ0FBeEIsQ0FEWTtBQUVqQixNQUFBO0FBRmlCLEtBQW5CLENBREssQ0FBUDtBQU1EOztBQVZ5RjtBQXFCNUY7Ozs7Ozs7O0FBSU0sTUFBQSxhQUFBLFNBQTZCLGdCQUFBLGVBQUEsRUFBN0IsTUFBNkIsRUFBN0IsQ0FBaUY7QUFDckYsTUFBQSxJQUFBLEdBQVE7QUFDTixRQUFJLE9BQU8sR0FBRyxLQUFBLGFBQUEsQ0FBQSxHQUFBLENBQXdCLENBQUQsSUFBTyxDQUFDLENBQTdDLGVBQTRDLEVBQTlCLENBQWQ7QUFFQSxXQUFPLFdBQUEsS0FBQSxDQUNMLElBQUEsb0JBQUEsQ0FBbUI7QUFDakIsTUFBQSxHQUFHLEVBQUUsbUJBQUEsS0FBQSxDQUFBLE9BQUEsRUFBd0IsS0FBQSxHQUFBLENBQUEsR0FBQSxDQUFBLFFBQUEsQ0FEWixLQUNZLENBQXhCLENBRFk7QUFFakIsTUFBQTtBQUZpQixLQUFuQixDQURLLENBQVA7QUFNRDs7QUFWb0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTb3VyY2VTbGljZSB9IGZyb20gJy4uLy4uL3NvdXJjZS9zbGljZSc7XG5pbXBvcnQgeyBTcGFuTGlzdCB9IGZyb20gJy4uLy4uL3NvdXJjZS9zcGFuLWxpc3QnO1xuaW1wb3J0IHsgU3ltYm9sVGFibGUgfSBmcm9tICcuLi8uLi9zeW1ib2wtdGFibGUnO1xuaW1wb3J0IHsgQXJncywgTmFtZWRBcmd1bWVudHMgfSBmcm9tICcuL2FyZ3MnO1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnRBcmcsIEVsZW1lbnRNb2RpZmllciwgSHRtbE9yU3BsYXRBdHRyIH0gZnJvbSAnLi9hdHRyLWJsb2NrJztcbmltcG9ydCB0eXBlIHsgQ2FsbEZpZWxkcyB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgdHlwZSB7IEV4cHJlc3Npb25Ob2RlIH0gZnJvbSAnLi9leHByJztcbmltcG9ydCB0eXBlIHsgTmFtZWRCbG9jaywgTmFtZWRCbG9ja3MgfSBmcm9tICcuL2ludGVybmFsLW5vZGUnO1xuaW1wb3J0IHsgQmFzZU5vZGVGaWVsZHMsIG5vZGUgfSBmcm9tICcuL25vZGUnO1xuXG4vKipcbiAqIENvbnRlbnQgTm9kZXMgYXJlIGFsbG93ZWQgaW4gY29udGVudCBwb3NpdGlvbnMgaW4gdGVtcGxhdGVzLiBUaGV5IGNvcnJlc3BvbmQgdG8gYmVoYXZpb3IgaW4gdGhlXG4gKiBbRGF0YV1bZGF0YV0gdG9rZW5pemF0aW9uIHN0YXRlIGluIEhUTUwuXG4gKlxuICogW2RhdGFdOiBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9wYXJzaW5nLmh0bWwjZGF0YS1zdGF0ZVxuICovXG5leHBvcnQgdHlwZSBDb250ZW50Tm9kZSA9XG4gIHwgSHRtbFRleHRcbiAgfCBIdG1sQ29tbWVudFxuICB8IEFwcGVuZENvbnRlbnRcbiAgfCBJbnZva2VCbG9ja1xuICB8IEludm9rZUNvbXBvbmVudFxuICB8IFNpbXBsZUVsZW1lbnRcbiAgfCBHbGltbWVyQ29tbWVudDtcblxuZXhwb3J0IGNsYXNzIEdsaW1tZXJDb21tZW50IGV4dGVuZHMgbm9kZSgnR2xpbW1lckNvbW1lbnQnKS5maWVsZHM8eyB0ZXh0OiBTb3VyY2VTbGljZSB9PigpIHt9XG5leHBvcnQgY2xhc3MgSHRtbFRleHQgZXh0ZW5kcyBub2RlKCdIdG1sVGV4dCcpLmZpZWxkczx7IGNoYXJzOiBzdHJpbmcgfT4oKSB7fVxuZXhwb3J0IGNsYXNzIEh0bWxDb21tZW50IGV4dGVuZHMgbm9kZSgnSHRtbENvbW1lbnQnKS5maWVsZHM8eyB0ZXh0OiBTb3VyY2VTbGljZSB9PigpIHt9XG5cbmV4cG9ydCBjbGFzcyBBcHBlbmRDb250ZW50IGV4dGVuZHMgbm9kZSgnQXBwZW5kQ29udGVudCcpLmZpZWxkczx7XG4gIHZhbHVlOiBFeHByZXNzaW9uTm9kZTtcbiAgdHJ1c3Rpbmc6IGJvb2xlYW47XG4gIHRhYmxlOiBTeW1ib2xUYWJsZTtcbn0+KCkge1xuICBnZXQgY2FsbGVlKCk6IEV4cHJlc3Npb25Ob2RlIHtcbiAgICBpZiAodGhpcy52YWx1ZS50eXBlID09PSAnQ2FsbCcpIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlLmNhbGxlZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGFyZ3MoKTogQXJncyB7XG4gICAgaWYgKHRoaXMudmFsdWUudHlwZSA9PT0gJ0NhbGwnKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZS5hcmdzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gQXJncy5lbXB0eSh0aGlzLnZhbHVlLmxvYy5jb2xsYXBzZSgnZW5kJykpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW52b2tlQmxvY2sgZXh0ZW5kcyBub2RlKCdJbnZva2VCbG9jaycpLmZpZWxkczxcbiAgQ2FsbEZpZWxkcyAmIHsgYmxvY2tzOiBOYW1lZEJsb2NrcyB9XG4+KCkge31cblxuaW50ZXJmYWNlIEludm9rZUNvbXBvbmVudEZpZWxkcyB7XG4gIGNhbGxlZTogRXhwcmVzc2lvbk5vZGU7XG4gIGJsb2NrczogTmFtZWRCbG9ja3M7XG4gIGF0dHJzOiByZWFkb25seSBIdG1sT3JTcGxhdEF0dHJbXTtcbiAgY29tcG9uZW50QXJnczogcmVhZG9ubHkgQ29tcG9uZW50QXJnW107XG4gIG1vZGlmaWVyczogcmVhZG9ubHkgRWxlbWVudE1vZGlmaWVyW107XG59XG5cbi8qKlxuICogQ29ycmVzcG9uZHMgdG8gYSBjb21wb25lbnQgaW52b2NhdGlvbi4gV2hlbiB0aGUgY29udGVudCBvZiBhIGNvbXBvbmVudCBpbnZvY2F0aW9uIGNvbnRhaW5zIG5vXG4gKiBuYW1lZCBibG9ja3MsIGBibG9ja3NgIGNvbnRhaW5zIGEgc2luZ2xlIG5hbWVkIGJsb2NrIG5hbWVkIGBcImRlZmF1bHRcImAuIFdoZW4gYSBjb21wb25lbnRcbiAqIGludm9jYXRpb24gaXMgc2VsZi1jbG9zaW5nLCBgYmxvY2tzYCBpcyBlbXB0eS5cbiAqL1xuZXhwb3J0IGNsYXNzIEludm9rZUNvbXBvbmVudCBleHRlbmRzIG5vZGUoJ0ludm9rZUNvbXBvbmVudCcpLmZpZWxkczxJbnZva2VDb21wb25lbnRGaWVsZHM+KCkge1xuICBnZXQgYXJncygpOiBBcmdzIHtcbiAgICBsZXQgZW50cmllcyA9IHRoaXMuY29tcG9uZW50QXJncy5tYXAoKGEpID0+IGEudG9OYW1lZEFyZ3VtZW50KCkpO1xuXG4gICAgcmV0dXJuIEFyZ3MubmFtZWQoXG4gICAgICBuZXcgTmFtZWRBcmd1bWVudHMoe1xuICAgICAgICBsb2M6IFNwYW5MaXN0LnJhbmdlKGVudHJpZXMsIHRoaXMuY2FsbGVlLmxvYy5jb2xsYXBzZSgnZW5kJykpLFxuICAgICAgICBlbnRyaWVzLFxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG5cbmludGVyZmFjZSBTaW1wbGVFbGVtZW50T3B0aW9ucyBleHRlbmRzIEJhc2VOb2RlRmllbGRzIHtcbiAgdGFnOiBTb3VyY2VTbGljZTtcbiAgYm9keTogcmVhZG9ubHkgQ29udGVudE5vZGVbXTtcbiAgYXR0cnM6IHJlYWRvbmx5IEh0bWxPclNwbGF0QXR0cltdO1xuICBjb21wb25lbnRBcmdzOiByZWFkb25seSBDb21wb25lbnRBcmdbXTtcbiAgbW9kaWZpZXJzOiByZWFkb25seSBFbGVtZW50TW9kaWZpZXJbXTtcbn1cblxuLyoqXG4gKiBDb3JyZXNwb25kcyB0byBhIHNpbXBsZSBIVE1MIGVsZW1lbnQuIFRoZSBBU1QgYWxsb3dzIGNvbXBvbmVudCBhcmd1bWVudHMgYW5kIG1vZGlmaWVycyB0byBzdXBwb3J0XG4gKiBmdXR1cmUgZXh0ZW5zaW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNpbXBsZUVsZW1lbnQgZXh0ZW5kcyBub2RlKCdTaW1wbGVFbGVtZW50JykuZmllbGRzPFNpbXBsZUVsZW1lbnRPcHRpb25zPigpIHtcbiAgZ2V0IGFyZ3MoKTogQXJncyB7XG4gICAgbGV0IGVudHJpZXMgPSB0aGlzLmNvbXBvbmVudEFyZ3MubWFwKChhKSA9PiBhLnRvTmFtZWRBcmd1bWVudCgpKTtcblxuICAgIHJldHVybiBBcmdzLm5hbWVkKFxuICAgICAgbmV3IE5hbWVkQXJndW1lbnRzKHtcbiAgICAgICAgbG9jOiBTcGFuTGlzdC5yYW5nZShlbnRyaWVzLCB0aGlzLnRhZy5sb2MuY29sbGFwc2UoJ2VuZCcpKSxcbiAgICAgICAgZW50cmllcyxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBFbGVtZW50Tm9kZSA9IE5hbWVkQmxvY2sgfCBJbnZva2VDb21wb25lbnQgfCBTaW1wbGVFbGVtZW50O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==