'use strict'; var language = require('@codemirror/language'); var langHtml = require('@codemirror/lang-html'); var langJavascript = require('@codemirror/lang-javascript'); var highlight = require('@lezer/highlight'); var common = require('@lezer/common'); var lr = require('@lezer/lr'); // This file was generated by lezer-generator. You probably shouldn't edit it. const Text = 1, attributeContentSingle = 33, attributeContentDouble = 34, scriptAttributeContentSingle = 35, scriptAttributeContentDouble = 36; const text = new lr.ExternalTokenizer(input => { let start = input.pos; for (;;) { if (input.next == 10 /* Ch.Newline */) { input.advance(); break; } else if (input.next == 123 /* Ch.BraceL */ && input.peek(1) == 123 /* Ch.BraceL */ || input.next < 0) { break; } input.advance(); } if (input.pos > start) input.acceptToken(Text); }); function attrContent(quote, token, script) { return new lr.ExternalTokenizer(input => { let start = input.pos; while (input.next != quote && input.next >= 0 && (script || input.next != 38 /* Ch.Ampersand */ && (input.next != 123 /* Ch.BraceL */ || input.peek(1) != 123 /* Ch.BraceL */))) input.advance(); if (input.pos > start) input.acceptToken(token); }); } const attrSingle = attrContent(39 /* Ch.SingleQuote */, attributeContentSingle, false); const attrDouble = attrContent(34 /* Ch.DoubleQuote */, attributeContentDouble, false); const scriptAttrSingle = attrContent(39 /* Ch.SingleQuote */, scriptAttributeContentSingle, true); const scriptAttrDouble = attrContent(34 /* Ch.DoubleQuote */, scriptAttributeContentDouble, true); // This file was generated by lezer-generator. You probably shouldn't edit it. const parser = lr.LRParser.deserialize({ version: 14, states: "(jOVOqOOOeQpOOOvO!bO'#CaOOOP'#Cx'#CxQVOqOOO!OQpO'#CfO!WQpO'#ClO!]QpO'#CrO!bQpO'#CsOOQO'#Cv'#CvQ!gQpOOQ!lQpOOQ!qQpOOOOOV,58{,58{O!vOpO,58{OOOP-E6v-E6vO!{QpO,59QO#TQpO,59QOOQO,59W,59WO#YQpO,59^OOQO,59_,59_O#_QpOOO#_QpOOO#gQpOOOOOV1G.g1G.gO#oQpO'#CyO#tQpO1G.lOOQO1G.l1G.lO#|QpO1G.lOOQO1G.x1G.xO$UO`O'#DUO$ZOWO'#DUOOQO'#Co'#CoQOQpOOOOQO'#Cu'#CuO$`OtO'#CwO$qOrO'#CwOOQO,59e,59eOOQO-E6w-E6wOOQO7+$W7+$WO%SQpO7+$WO%[QpO7+$WOOOO'#Cp'#CpO%aOpO,59pOOOO'#Cq'#CqO%fOpO,59pOOOS'#Cz'#CzO%kOtO,59cOOQO,59c,59cOOOQ'#C{'#C{O%|OrO,59cO&_QpO< node.name == "InterpolationContent" ? exprMixed : null), }); const attrParser = baseParser.configure({ wrap: common.parseMixed((node, input) => { var _a; return node.name == "InterpolationContent" ? exprMixed : node.name != "AttributeInterpolation" ? null : ((_a = node.node.parent) === null || _a === void 0 ? void 0 : _a.name) == "StatementAttributeValue" ? statementMixed : exprMixed; }), top: "Attribute" }); const textMixed = { parser: textParser }, attrMixed = { parser: attrParser }; const baseHTML = langHtml.html(); function mkAngular(language) { return language.configure({ wrap: common.parseMixed(mixAngular) }, "angular"); } /** A language provider for Angular Templates. */ const angularLanguage = mkAngular(baseHTML.language); function mixAngular(node, input) { switch (node.name) { case "Attribute": return /^[*#(\[]|\{\{/.test(input.read(node.from, node.to)) ? attrMixed : null; case "Text": return textMixed; } return null; } /** Angular Template language support. */ function angular(config = {}) { let base = baseHTML; if (config.base) { if (config.base.language.name != "html" || !(config.base.language instanceof language.LRLanguage)) throw new RangeError("The base option must be the result of calling html(...)"); base = config.base; } return new language.LanguageSupport(base.language == baseHTML.language ? angularLanguage : mkAngular(base.language), [base.support, base.language.data.of({ closeBrackets: { brackets: ["[", "{", '"'] }, indentOnInput: /^\s*[\}\]]$/ })]); } exports.angular = angular; exports.angularLanguage = angularLanguage;