@shopify/create-app
Version:
A CLI tool to create a new Shopify app.
2,868 lines • 210 kB
JavaScript
import {
__esm,
init_cjs_shims
} from "./chunk-3XNI6LP4.js";
// ../../node_modules/.pnpm/prettier@3.8.4/node_modules/prettier/plugins/html.mjs
function ns(e) {
return this[e < 0 ? this.length + e : e];
}
function as(e) {
if (typeof e == "string") return Ve;
if (Array.isArray(e)) return Ue;
if (!e) return;
let { type: t } = e;
if (mt.has(t)) return t;
}
function ls(e) {
let t = e === null ? "null" : typeof e;
if (t !== "string" && t !== "object") return `Unexpected doc '${t}',
Expected it to be 'string' or 'object'.`;
if (ft(e)) throw new Error("doc is valid.");
let r = Object.prototype.toString.call(e);
if (r !== "[object Object]") return `Unexpected doc '${r}'.`;
let n = os([...mt].map((i) => `'${i}'`));
return `Unexpected doc.type '${e.type}'.
Expected it to be ${n}.`;
}
function Gt(e, t) {
if (typeof e == "string") return t(e);
let r = /* @__PURE__ */ new Map();
return n(e);
function n(s) {
if (r.has(s)) return r.get(s);
let a = i(s);
return r.set(s, a), a;
}
function i(s) {
switch (ft(s)) {
case Ue:
return t(s.map(n));
case ke:
return t({ ...s, parts: s.parts.map(n) });
case xe:
return t({ ...s, breakContents: n(s.breakContents), flatContents: n(s.flatContents) });
case we: {
let { expandedStates: a, contents: o } = s;
return a ? (a = a.map(n), o = a[0]) : o = n(o), t({ ...s, contents: o, expandedStates: a });
}
case be:
case Te:
case ye:
case ht:
case ut:
return t({ ...s, contents: n(s.contents) });
case Ve:
case lt:
case ct:
case pt:
case $:
case Ae:
return t(s);
default:
throw new Ir(s);
}
}
}
function L(e, t = Rr) {
return Gt(e, (r) => typeof r == "string" ? B(t, r.split(`
`)) : r);
}
function A(e) {
return D(e), { type: Te, contents: e };
}
function cs(e, t) {
return Br(e), D(t), { type: be, contents: t, n: e };
}
function qr(e) {
return cs(Number.NEGATIVE_INFINITY, e);
}
function gt(e) {
return Mr(e), { type: ke, parts: e };
}
function E(e, t = {}) {
return D(e), dt(t.expandedStates, !0), { type: we, id: t.id, contents: e, break: !!t.shouldBreak, expandedStates: t.expandedStates };
}
function j(e, t = "", r = {}) {
return D(e), t !== "" && D(t), { type: xe, breakContents: e, flatContents: t, groupId: r.groupId };
}
function Fr(e, t) {
return D(e), { type: ye, contents: e, groupId: t.groupId, negate: t.negate };
}
function B(e, t) {
D(e), dt(t);
let r = [];
for (let n = 0; n < t.length; n++) n !== 0 && r.push(e), r.push(t[n]);
return r;
}
function fs(e, t) {
let { preferred: r, alternate: n } = t === !0 || t === "'" ? hs : ms, { length: i } = e, s = 0, a = 0;
for (let o = 0; o < i; o++) {
let c = e.charCodeAt(o);
c === r.codePoint ? s++ : c === n.codePoint && a++;
}
return (s > a ? n : r).character;
}
function zt(e) {
if (typeof e != "string") throw new TypeError("Expected a string");
return e.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
}
function zr(e, t, r) {
if (e.kind === "text" || e.kind === "comment") return null;
if (e.kind === "yaml" && delete t.value, e.kind === "attribute") {
let { fullName: n, value: i } = e;
n === "style" || n === "class" || n === "srcset" && (r.fullName === "img" || r.fullName === "source") || n === "allow" && r.fullName === "iframe" || n.startsWith("on") || n.startsWith("@") || n.startsWith(":") || n.startsWith(".") || n.startsWith("#") || n.startsWith("v-") || n === "vars" && r.fullName === "style" || (n === "setup" || n === "generic") && r.fullName === "script" || n === "slot-scope" || n.startsWith("(") || n.startsWith("[") || n.startsWith("*") || n.startsWith("bind") || n.startsWith("i18n") || n.startsWith("on-") || n.startsWith("ng-") || i?.includes("{{") ? delete t.value : i && (t.value = w(0, i, /'|"|'/gu, '"'));
}
if (e.kind === "docType" && (t.value = w(0, e.value.toLowerCase(), /\s+/gu, " ")), e.kind === "angularControlFlowBlock" && e.parameters?.children) for (let n of t.parameters.children) Ss.has(e.name) ? delete n.expression : n.expression = n.expression.trim();
e.kind === "angularIcuExpression" && (t.switchValue = e.switchValue.trim()), e.kind === "angularLetDeclarationInitializer" && delete t.value, e.kind === "element" && e.isVoid && !e.isSelfClosing && (t.isSelfClosing = !0);
}
function X(e, t = !0) {
return [A([k, e]), t ? k : ""];
}
function V(e, t) {
let r = e.type === "NGRoot" ? e.node.type === "NGMicrosyntax" && e.node.body.length === 1 && e.node.body[0].type === "NGMicrosyntaxExpression" ? e.node.body[0].expression : e.node : e.type === "JsExpressionRoot" ? e.node : e;
return r && (r.type === "ObjectExpression" || r.type === "ArrayExpression" || (t.parser === "__vue_expression" || t.parser === "__vue_ts_expression" || t.parser === "__ng_binding" || t.parser === "__ng_directive") && (r.type === "TemplateLiteral" || r.type === "StringLiteral"));
}
async function x(e, t, r, n) {
r = { __isInHtmlAttribute: !0, __embeddedInHtml: !0, ...r };
let i = !0;
n && (r.__onHtmlBindingRoot = (a, o) => {
i = n(a, o);
});
let s = await t(e, r, t);
return i ? E(s) : X(s);
}
function Es(e, t, r, n) {
let { node: i } = r, s = n.originalText.slice(i.sourceSpan.start.offset, i.sourceSpan.end.offset);
return /^\s*$/u.test(s) ? "" : x(s, e, { parser: "__ng_directive", __isInHtmlAttribute: !1 }, V);
}
function Ts() {
let e = globalThis, t = e.Deno?.build?.os;
return typeof t == "string" ? t === "windows" : e.navigator?.platform?.startsWith("Win") ?? e.process?.platform?.startsWith("win") ?? !1;
}
function Xr(e) {
if (e = e instanceof URL ? e : new URL(e), e.protocol !== "file:") throw new TypeError(`URL must be a file URL: received "${e.protocol}"`);
return e;
}
function ws(e) {
return e = Xr(e), decodeURIComponent(e.pathname.replace(/%(?![0-9A-Fa-f]{2})/g, "%25"));
}
function ks(e) {
e = Xr(e);
let t = decodeURIComponent(e.pathname.replace(/\//g, "\\").replace(/%(?![0-9A-Fa-f]{2})/g, "%25")).replace(/^\\*([A-Za-z]:)(\\|$)/, "$1\\");
return e.hostname !== "" && (t = `\\\\${e.hostname}${t}`), t;
}
function jt(e) {
return bs ? ks(e) : ws(e);
}
function xs(e) {
return Array.isArray(e) && e.length > 0;
}
function Jr(e, t) {
if (!t) return;
let r = Kr(t).toLowerCase();
return e.find(({ filenames: n }) => n?.some((i) => i.toLowerCase() === r)) ?? e.find(({ extensions: n }) => n?.some((i) => r.endsWith(i)));
}
function ys(e, t) {
if (t) return e.find(({ name: r }) => r.toLowerCase() === t) ?? e.find(({ aliases: r }) => r?.includes(t)) ?? e.find(({ extensions: r }) => r?.includes(`.${t}`));
}
function Zr(e, t) {
if (t) {
if (Qr(t)) try {
t = jt(t);
} catch {
return;
}
if (typeof t == "string") return e.find(({ isSupported: r }) => r?.({ filepath: t }));
}
}
function Ns(e, t) {
let r = jr(0, e.plugins).flatMap((i) => i.languages ?? []);
return (ys(r, t.language) ?? Jr(r, t.physicalFile) ?? Jr(r, t.file) ?? Zr(r, t.physicalFile) ?? Zr(r, t.file) ?? As?.(r, t.physicalFile))?.parsers[0];
}
function Ls(e) {
return !!e?.[St];
}
function Ps(e) {
let t = e.slice(0, We);
if (t !== "---" && t !== "+++") return;
let r = e.indexOf(`
`, We);
if (r === -1) return;
let n = e.slice(We, r).trim(), i = e.indexOf(`
${t}`, r), s = n;
if (s || (s = t === "+++" ? "toml" : "yaml"), i === -1 && t === "---" && s === "yaml" && (i = e.indexOf(`
...`, r)), i === -1) return;
let a = i + 1 + We, o = e.charAt(a + 1);
if (!/\s?/u.test(o)) return;
let c = e.slice(0, a), u;
return { language: s, explicitLanguage: n || null, value: e.slice(r + 1, i), startDelimiter: t, endDelimiter: c.slice(-We), raw: c, start: { line: 1, column: 0, index: 0 }, end: { index: c.length, get line() {
return u ?? (u = c.split(`
`)), u.length;
}, get column() {
return u ?? (u = c.split(`
`)), M(0, u, -1).length;
} }, [St]: !0 };
}
function Os(e) {
let t = Ps(e);
return t ? { frontMatter: t, get content() {
let { raw: r } = t;
return w(0, r, /[^\n]/gu, " ") + e.slice(r.length);
} } : { content: e };
}
function Ds(e) {
return e.kind === "element" && !e.hasExplicitNamespace && !["html", "svg"].includes(e.namespace);
}
function Et(e, t) {
return !!(e.kind === "ieConditionalComment" && e.lastChild && !e.lastChild.isSelfClosing && !e.lastChild.endSourceSpan || e.kind === "ieConditionalComment" && !e.complete || ae(e) && e.children.some((r) => r.kind !== "text" && r.kind !== "interpolation") || Tt(e, t) && !q(e, t) && e.kind !== "interpolation");
}
function oe(e) {
return e.kind === "attribute" || !e.parent || !e.prev ? !1 : Rs(e.prev);
}
function Rs(e) {
return e.kind === "comment" && e.value.trim() === "prettier-ignore";
}
function O(e) {
return e.kind === "text" || e.kind === "comment";
}
function q(e, t) {
return e.kind === "element" && (e.fullName === "script" || e.fullName === "style" || e.fullName === "svg:style" || e.fullName === "svg:script" || e.fullName === "mj-style" && t.parser === "mjml" || se(e) && (e.name === "script" || e.name === "style"));
}
function nn(e, t) {
return e.children && !q(e, t);
}
function sn(e, t) {
return q(e, t) || e.kind === "interpolation" || Zt(e);
}
function Zt(e) {
return gn(e).startsWith("pre");
}
function an(e, t) {
let r = n();
if (r && !e.prev && e.parent?.tagDefinition?.ignoreFirstLf) return e.kind === "interpolation";
return r;
function n() {
return ie(e) || e.kind === "angularControlFlowBlock" ? !1 : (e.kind === "text" || e.kind === "interpolation") && e.prev && (e.prev.kind === "text" || e.prev.kind === "interpolation") ? !0 : !e.parent || e.parent.cssDisplay === "none" ? !1 : ae(e.parent) ? !0 : !(!e.prev && (e.parent.kind === "root" || ae(e) && e.parent || q(e.parent, t) || $e(e.parent, t) || !Vs(e.parent.cssDisplay)) || e.prev && !Gs(e.prev.cssDisplay));
}
}
function on(e, t) {
return ie(e) || e.kind === "angularControlFlowBlock" ? !1 : (e.kind === "text" || e.kind === "interpolation") && e.next && (e.next.kind === "text" || e.next.kind === "interpolation") ? !0 : !e.parent || e.parent.cssDisplay === "none" ? !1 : ae(e.parent) ? !0 : !(!e.next && (e.parent.kind === "root" || ae(e) && e.parent || q(e.parent, t) || $e(e.parent, t) || !Us(e.parent.cssDisplay)) || e.next && !Ws(e.next.cssDisplay));
}
function ln(e, t) {
return zs(e.cssDisplay) && !q(e, t);
}
function Ge(e) {
return ie(e) || e.next && e.sourceSpan.end && e.sourceSpan.end.line + 1 < e.next.sourceSpan.start.line;
}
function cn(e) {
return er(e) || e.kind === "element" && e.children.length > 0 && (["body", "script", "style"].includes(e.name) || e.children.some((t) => Bs(t))) || e.firstChild && e.firstChild === e.lastChild && e.firstChild.kind !== "text" && pn(e.firstChild) && (!e.lastChild.isTrailingSpaceSensitive || hn(e.lastChild));
}
function er(e) {
return e.kind === "element" && e.children.length > 0 && (["html", "head", "ul", "ol", "select"].includes(e.name) || e.cssDisplay.startsWith("table") && e.cssDisplay !== "table-cell");
}
function Ct(e) {
return mn(e) || e.prev && Ms(e.prev) || un(e);
}
function Ms(e) {
return mn(e) || e.kind === "element" && e.fullName === "br" || un(e);
}
function un(e) {
return pn(e) && hn(e);
}
function pn(e) {
return e.hasLeadingSpaces && (e.prev ? e.prev.sourceSpan.end.line < e.sourceSpan.start.line : e.parent.kind === "root" || e.parent.startSourceSpan.end.line < e.sourceSpan.start.line);
}
function hn(e) {
return e.hasTrailingSpaces && (e.next ? e.next.sourceSpan.start.line > e.sourceSpan.end.line : e.parent.kind === "root" || e.parent.endSourceSpan && e.parent.endSourceSpan.start.line > e.sourceSpan.end.line);
}
function mn(e) {
switch (e.kind) {
case "ieConditionalComment":
case "comment":
case "directive":
return !0;
case "element":
return ["script", "select"].includes(e.name);
}
return !1;
}
function vt(e) {
return e.lastChild ? vt(e.lastChild) : e;
}
function Bs(e) {
return e.children?.some((t) => t.kind !== "text");
}
function fn(e) {
if (e) switch (e) {
case "module":
case "text/javascript":
case "text/babel":
case "text/jsx":
case "application/javascript":
return "babel";
case "application/x-typescript":
return "typescript";
case "text/markdown":
return "markdown";
case "text/html":
return "html";
case "text/x-handlebars-template":
return "glimmer";
default:
if (e.endsWith("json") || e.endsWith("importmap") || e === "speculationrules") return "json";
}
}
function qs(e, t) {
let { name: r, attrMap: n } = e;
if (r !== "script" || Object.prototype.hasOwnProperty.call(n, "src")) return;
let { type: i, lang: s } = e.attrMap;
return !s && !i ? "babel" : _t(t, { language: s }) ?? fn(i);
}
function Fs(e, t) {
if (!Tt(e, t)) return;
let { attrMap: r } = e;
if (Object.prototype.hasOwnProperty.call(r, "src")) return;
let { type: n, lang: i } = r;
return _t(t, { language: i }) ?? fn(n);
}
function Hs(e, t) {
if (e.name === "style") {
let { lang: r } = e.attrMap;
return r ? _t(t, { language: r }) : "css";
}
if (e.name === "mj-style" && t.parser === "mjml") return "css";
}
function tr(e, t) {
return qs(e, t) ?? Hs(e, t) ?? Fs(e, t);
}
function ze(e) {
return e === "block" || e === "list-item" || e.startsWith("table");
}
function Vs(e) {
return !ze(e) && e !== "inline-block";
}
function Us(e) {
return !ze(e) && e !== "inline-block";
}
function Ws(e) {
return !ze(e);
}
function Gs(e) {
return !ze(e);
}
function zs(e) {
return !ze(e) && e !== "inline-block";
}
function ae(e) {
return gn(e).startsWith("pre");
}
function $s(e, t) {
let r = e;
for (; r; ) {
if (t(r)) return !0;
r = r.parent;
}
return !1;
}
function dn(e, t) {
if (le(e, t)) return "block";
if (e.prev?.kind === "comment") {
let n = e.prev.value.match(/^\s*display:\s*([a-z]+)\s*$/u);
if (n) return n[1];
}
let r = !1;
if (e.kind === "element" && e.namespace === "svg") if ($s(e, (n) => n.fullName === "svg:foreignObject")) r = !0;
else return e.name === "svg" ? "inline-block" : "block";
switch (t.htmlWhitespaceSensitivity) {
case "strict":
return "inline";
case "ignore":
return "block";
default:
if (e.kind === "element" && (!e.namespace || r || se(e)) && Object.prototype.hasOwnProperty.call(Kt, e.name)) return Kt[e.name];
}
return en;
}
function gn(e) {
return e.kind === "element" && (!e.namespace || se(e)) && Object.prototype.hasOwnProperty.call(Qt, e.name) ? Qt[e.name] : tn;
}
function rr(e) {
return w(0, w(0, e, "'", "'"), """, '"');
}
function b(e) {
return rr(e.value);
}
function $e(e, t) {
return le(e, t) && !Ys.has(e.fullName);
}
function le(e, t) {
return t.parser === "vue" && e.kind === "element" && e.parent.kind === "root" && e.fullName.toLowerCase() !== "html";
}
function Tt(e, t) {
return le(e, t) && ($e(e, t) || e.attrMap.lang && e.attrMap.lang !== "html");
}
function _n(e) {
let t = e.fullName;
return t.charAt(0) === "#" || t === "slot-scope" || t === "v-slot" || t.startsWith("v-slot:");
}
function Sn(e, t) {
let r = e.parent;
if (!le(r, t)) return !1;
let n = r.fullName, i = e.fullName;
return n === "script" && i === "setup" || n === "style" && i === "vars";
}
function bt(e, t = e.value) {
return e.parent.isWhitespaceSensitive ? e.parent.isIndentationSensitive ? L(t) : L(N.dedentString(Jt(t)), C) : B(S, N.split(t));
}
function wt(e, t) {
return le(e, t) && e.name === "script";
}
function js(e) {
let { valueSpan: t, value: r } = e;
return t.end.offset - t.start.offset === r.length + 2;
}
function kt(e, t) {
if (js(e)) return !1;
let { value: r } = e;
return /^PRETTIER_HTML_PLACEHOLDER_\d+_\d+_IN_JS$/u.test(r) || t.parser === "lwc" && r.startsWith("{") && r.endsWith("}");
}
async function vn(e, t, r) {
let n = b(r.node), i = [];
for (let [s, a] of n.split(En).entries()) if (s % 2 === 0) i.push(L(a));
else try {
i.push(E(["{{", A([S, await x(a, e, { parser: "__ng_interpolation", __isInHtmlInterpolation: !0 })]), S, "}}"]));
} catch {
i.push("{{", L(a), "}}");
}
return i;
}
function Ks(e, t, { node: r }) {
let n = b(r);
return X(gt(bt(r, n.trim())), !n.includes("@@"));
}
function Zs(e) {
let t = [];
for (let r of e.split(";")) {
if (r = N.trim(r), !r) continue;
let [n, ...i] = N.split(r);
t.push({ name: n, value: i });
}
return t;
}
function Nn(e, t, r) {
let { node: n } = r, i = yn(b(n));
return i.length === 0 ? [""] : X(i.map(({ name: s, value: a }, o) => [[s, ...a].join(" "), o === i.length - 1 ? j(";") : [";", S]]));
}
function Ln(e) {
return e === " " || e === `
` || e === "\f" || e === "\r" || e === " ";
}
function sa(e) {
let t = e.length, r, n, i, s, a, o = 0, c;
function u(m) {
let _, T = m.exec(e.substring(o));
if (T) return [_] = T, o += _.length, _;
}
let p = [];
for (; ; ) {
if (u(ta), o >= t) {
if (p.length === 0) throw new Error("Must contain one or more image candidate strings.");
return p;
}
c = o, r = u(ra), n = [], r.slice(-1) === "," ? (r = r.replace(na, ""), g()) : d();
}
function d() {
for (u(ea), i = "", s = "in descriptor"; ; ) {
if (a = e.charAt(o), s === "in descriptor") if (Ln(a)) i && (n.push(i), i = "", s = "after descriptor");
else if (a === ",") {
o += 1, i && n.push(i), g();
return;
} else if (a === "(") i += a, s = "in parens";
else if (a === "") {
i && n.push(i), g();
return;
} else i += a;
else if (s === "in parens") if (a === ")") i += a, s = "in descriptor";
else if (a === "") {
n.push(i), g();
return;
} else i += a;
else if (s === "after descriptor" && !Ln(a)) if (a === "") {
g();
return;
} else s = "in descriptor", o -= 1;
o += 1;
}
}
function g() {
let m = !1, _, T, P, z, ne = {}, Q, ot, Ce, qe, Vt;
for (z = 0; z < n.length; z++) Q = n[z], ot = Q[Q.length - 1], Ce = Q.substring(0, Q.length - 1), qe = parseInt(Ce, 10), Vt = parseFloat(Ce), Pn.test(Ce) && ot === "w" ? ((_ || T) && (m = !0), qe === 0 ? m = !0 : _ = qe) : ia.test(Ce) && ot === "x" ? ((_ || T || P) && (m = !0), Vt < 0 ? m = !0 : T = Vt) : Pn.test(Ce) && ot === "h" ? ((P || T) && (m = !0), qe === 0 ? m = !0 : P = qe) : m = !0;
if (!m) ne.source = { value: r, startOffset: c }, _ && (ne.width = { value: _ }), T && (ne.density = { value: T }), P && (ne.height = { value: P }), p.push(ne);
else throw new Error(`Invalid srcset descriptor found in "${e}" at "${Q}".`);
}
}
function Rn(e, t, r) {
let n = b(r.node), i = On(n), s = aa.filter((m) => i.some((_) => Object.prototype.hasOwnProperty.call(_, m)));
if (s.length > 1) throw new Error("Mixed descriptor in srcset is not supported");
let [a] = s, o = In[a], c = i.map((m) => m.source.value), u = Math.max(...c.map((m) => m.length)), p = i.map((m) => m[a] ? String(m[a].value) : ""), d = p.map((m) => {
let _ = m.indexOf(".");
return _ === -1 ? m.length : _;
}), g = Math.max(...d);
return X(B([",", S], c.map((m, _) => {
let T = [m], P = p[_];
if (P) {
let z = u - m.length + 1, ne = g - d[_], Q = " ".repeat(z + ne);
T.push(j(Q, " "), P + o);
}
return T;
})));
}
function oa(e, t) {
let { root: r } = e;
return sr.has(r) || sr.set(r, r.children.some((n) => wt(n, t) && ["ts", "typescript"].includes(n.attrMap.lang))), sr.get(r);
}
function qn(e, t, r) {
let n = b(r.node);
return x(`type T<${n}> = any`, e, { parser: "babel-ts", __isEmbeddedTypescriptGenericParameters: !0 }, V);
}
function Fn(e, t, r, n) {
let i = b(r.node), s = U(r, n) ? "babel-ts" : "babel";
return x(`function _(${i}) {}`, e, { parser: s, __isVueBindings: !0 });
}
async function Hn(e, t, r, n) {
let i = b(r.node), { left: s, operator: a, right: o } = la(i), c = U(r, n);
return [E(await x(`function _(${s}) {}`, e, { parser: c ? "babel-ts" : "babel", __isVueForBindingLeft: !0 })), " ", a, " ", await x(o, e, { parser: c ? "__ts_expression" : "__js_expression" })];
}
function la(e) {
let t = /(.*?)\s+(in|of)\s+(.*)/su, r = /,([^,\]}]*)(?:,([^,\]}]*))?$/u, n = /^\(|\)$/gu, i = e.match(t);
if (!i) return;
let s = { for: i[3].trim() };
if (!s.for) return;
let a = w(0, i[1].trim(), n, ""), o = a.match(r);
o ? (s.alias = a.replace(r, ""), s.iterator1 = o[1].trim(), o[2] && (s.iterator2 = o[2].trim())) : s.alias = a;
let c = [s.alias, s.iterator1, s.iterator2];
if (!c.some((u, p) => !u && (p === 0 || c.slice(p + 1).some(Boolean)))) return { left: c.filter(Boolean).join(","), operator: i[2], right: s.for };
}
async function ua(e, t, r, n) {
try {
return await Vn(e, t, r, n);
} catch (a) {
if (a.cause?.code !== "BABEL_PARSER_SYNTAX_ERROR") throw a;
}
let i = b(r.node), s = U(r, n) ? "__vue_ts_event_binding" : "__vue_event_binding";
return x(i, e, { parser: s }, V);
}
function pa(e, t, r, n) {
let i = b(r.node), s = U(r, n) ? "__vue_ts_expression" : "__vue_expression";
return x(i, e, { parser: s }, V);
}
function Vn(e, t, r, n) {
let i = b(r.node), s = U(r, n) ? "__ts_expression" : "__js_expression";
return x(i, e, { parser: s }, V);
}
function ma(e, t) {
let { node: r } = e, { value: n } = r;
if (n) return kt(r, t) ? [r.rawName, "=", n] : ha.find(({ test: i }) => i(e, t))?.print;
}
function fa(e) {
return async (t, r, n, i) => {
let s = await e(t, r, n, i);
if (s) return s = Gt(s, (a) => typeof a == "string" ? w(0, a, '"', """) : a), [n.node.rawName, '="', E(s), '"'];
};
}
function Ye(e, t) {
return [e.isSelfClosing ? "" : da(e, t), ce(e, t)];
}
function da(e, t) {
return e.lastChild && he(e.lastChild) ? "" : [ga(e, t), xt(e, t)];
}
function ce(e, t) {
return (e.next ? W(e.next) : pe(e.parent)) ? "" : [ue(e, t), F(e, t)];
}
function ga(e, t) {
return pe(e) ? ue(e.lastChild, t) : "";
}
function F(e, t) {
return he(e) ? xt(e.parent, t) : je(e) ? yt(e.next, t) : "";
}
function xt(e, t) {
if (zn(e, t)) return "";
switch (e.kind) {
case "ieConditionalComment":
return "<!";
case "element":
if (e.hasHtmComponentClosingTag) return "<//";
default:
return `</${e.rawName}`;
}
}
function ue(e, t) {
if (zn(e, t)) return "";
switch (e.kind) {
case "ieConditionalComment":
case "ieConditionalEndComment":
return "[endif]-->";
case "ieConditionalStartComment":
return "]><!-->";
case "interpolation":
return "}}";
case "angularIcuExpression":
return "}";
case "element":
if (e.isSelfClosing) return "/>";
default:
return ">";
}
}
function zn(e, t) {
return !e.isSelfClosing && !e.endSourceSpan && (oe(e) || Et(e.parent, t));
}
function W(e) {
return e.prev && e.prev.kind !== "docType" && e.kind !== "angularControlFlowBlock" && !O(e.prev) && e.isLeadingSpaceSensitive && !e.hasLeadingSpaces;
}
function pe(e) {
return e.lastChild?.isTrailingSpaceSensitive && !e.lastChild.hasTrailingSpaces && !O(vt(e.lastChild)) && !ae(e);
}
function he(e) {
return !e.next && !e.hasTrailingSpaces && e.isTrailingSpaceSensitive && O(vt(e));
}
function je(e) {
return e.next && !O(e.next) && O(e) && e.isTrailingSpaceSensitive && !e.hasTrailingSpaces;
}
function _a(e) {
let t = e.trim().match(/^prettier-ignore-attribute(?:\s+(.+))?$/su);
return t ? t[1] ? t[1].split(/\s+/u) : !0 : !1;
}
function Xe(e) {
return !e.prev && e.isLeadingSpaceSensitive && !e.hasLeadingSpaces;
}
function Sa(e, t, r) {
let { node: n } = e;
if (!Ne(n.attrs)) return n.isSelfClosing ? " " : "";
let i = n.prev?.kind === "comment" && _a(n.prev.value), s = typeof i == "boolean" ? () => i : Array.isArray(i) ? (d) => i.includes(d.rawName) : () => !1, a = e.map(({ node: d }) => s(d) ? L(t.originalText.slice(K(d), J(d))) : r(), "attrs"), o = n.kind === "element" && n.fullName === "script" && n.attrs.length === 1 && n.attrs[0].fullName === "src" && n.children.length === 0, u = t.singleAttributePerLine && n.attrs.length > 1 && !le(n, t) ? C : S, p = [A([o ? " " : S, B(u, a)])];
return n.firstChild && Xe(n.firstChild) || n.isSelfClosing && pe(n.parent) || o ? p.push(n.isSelfClosing ? " " : "") : p.push(t.bracketSameLine ? n.isSelfClosing ? " " : "" : n.isSelfClosing ? S : k), p;
}
function Ea(e) {
return e.firstChild && Xe(e.firstChild) ? "" : At(e);
}
function Ke(e, t, r) {
let { node: n } = e;
return [me(n, t), Sa(e, t, r), n.isSelfClosing ? "" : Ea(n)];
}
function me(e, t) {
return e.prev && je(e.prev) ? "" : [H(e, t), yt(e, t)];
}
function H(e, t) {
return Xe(e) ? At(e.parent) : W(e) ? ue(e.prev, t) : "";
}
function yt(e, t) {
switch (e.kind) {
case "ieConditionalComment":
case "ieConditionalStartComment":
return `<!--[if ${e.condition}`;
case "ieConditionalEndComment":
return "<!--<!";
case "interpolation":
return "{{";
case "docType": {
if (e.value === "html") {
let { filepath: n } = t;
if (n && /\.html?$/u.test(n)) return Gn;
}
let r = K(e);
return t.originalText.slice(r, r + Gn.length);
}
case "angularIcuExpression":
return "{";
case "element":
if (e.condition) return `<!--[if ${e.condition}]><!--><${e.rawName}`;
default:
return `<${e.rawName}`;
}
}
function At(e) {
switch (e.kind) {
case "ieConditionalComment":
return "]>";
case "element":
if (e.condition) return "><!--<![endif]-->";
default:
return ">";
}
}
function Ca(e, t) {
if (!e.endSourceSpan) return "";
let r = e.startSourceSpan.end.offset;
e.firstChild && Xe(e.firstChild) && (r -= At(e).length);
let n = e.endSourceSpan.start.offset;
return e.lastChild && he(e.lastChild) ? n += xt(e, t).length : pe(e) && (n -= ue(e.lastChild, t).length), t.originalText.slice(r, n);
}
function Ta(e, t) {
let { node: r } = e;
switch (r.kind) {
case "element":
if (q(r, t) || r.kind === "interpolation") return;
if (!r.isSelfClosing && Tt(r, t)) {
let n = tr(r, t);
return n ? async (i, s) => {
let a = Nt(r, t), o = /^\s*$/u.test(a), c = "";
return o || (c = await i(Jt(a), { parser: n, __embeddedInHtml: !0 }), o = c === ""), [H(r, t), E(Ke(e, t, s)), o ? "" : C, c, o ? "" : C, Ye(r, t), F(r, t)];
} : void 0;
}
break;
case "text":
if (q(r.parent, t)) {
let n = tr(r.parent, t);
if (n) return async (i) => {
let s = n === "markdown" ? N.dedentString(r.value.replace(/^[^\S\n]*\n/u, "")) : r.value, a = { parser: n, __embeddedInHtml: !0 };
if (t.parser === "html" && n === "babel") {
let o = "script", { attrMap: c } = r.parent;
c && (c.type === "module" || (c.type === "text/babel" || c.type === "text/jsx") && c["data-type"] === "module") && (o = "module"), a.__babelSourceType = o;
}
return [Y, H(r, t), await i(s, a), F(r, t)];
};
} else if (r.parent.kind === "interpolation") return async (n) => {
let i = { __isInHtmlInterpolation: !0, __embeddedInHtml: !0 };
return t.parser === "angular" ? i.parser = "__ng_interpolation" : t.parser === "vue" ? i.parser = U(e, t) ? "__vue_ts_expression" : "__vue_expression" : i.parser = "__js_expression", [A([S, await n(r.value, i)]), r.parent.next && W(r.parent.next) ? " " : S];
};
break;
case "attribute":
return Wn(e, t);
case "angularControlFlowBlockParameters":
return va.has(e.parent.name) ? Yr : void 0;
case "angularLetDeclarationInitializer":
return (n) => x(r.value, n, { parser: "__ng_binding", __isInHtmlAttribute: !1 });
}
}
function Je(e) {
if (Qe !== null && typeof Qe.property) {
let t = Qe;
return Qe = Je.prototype = null, t;
}
return Qe = Je.prototype = e ?? /* @__PURE__ */ Object.create(null), new Je();
}
function ar(e) {
return Je(e);
}
function wa(e, t = "type") {
ar(e);
function r(n) {
let i = n[t], s = e[i];
if (!Array.isArray(s)) throw Object.assign(new Error(`Missing visitor keys for '${i}'.`), { node: n });
return s;
}
return r;
}
function ni(e) {
let t = J(e);
return e.kind === "element" && !e.endSourceSpan && Ne(e.children) ? Math.max(t, ni(M(0, e.children, -1))) : t;
}
function Ze(e, t, r) {
let n = e.node;
if (oe(n)) {
let i = ni(n);
return [H(n, t), L(N.trimEnd(t.originalText.slice(K(n) + (n.prev && je(n.prev) ? yt(n).length : 0), i - (n.next && W(n.next) ? ue(n, t).length : 0)))), F(n, t)];
}
return r();
}
function Lt(e, t) {
return O(e) && O(t) ? e.isTrailingSpaceSensitive ? e.hasTrailingSpaces ? Ct(t) ? C : S : "" : Ct(t) ? C : k : je(e) && (oe(t) || t.firstChild || t.isSelfClosing || t.kind === "element" && t.attrs.length > 0) || e.kind === "element" && e.isSelfClosing && W(t) ? "" : !t.isLeadingSpaceSensitive || Ct(t) || W(t) && e.lastChild && he(e.lastChild) && e.lastChild.lastChild && he(e.lastChild.lastChild) ? C : t.hasLeadingSpaces ? S : k;
}
function Le(e, t, r) {
let { node: n } = e;
if (er(n)) return [Y, ...e.map(() => {
let s = e.node, a = s.prev ? Lt(s.prev, s) : "";
return [a ? [a, Ge(s.prev) ? C : ""] : "", Ze(e, t, r)];
}, "children")];
let i = n.children.map(() => /* @__PURE__ */ Symbol(""));
return e.map(({ node: s, index: a }) => {
if (O(s)) {
if (s.prev && O(s.prev)) {
let m = Lt(s.prev, s);
if (m) return Ge(s.prev) ? [C, C, Ze(e, t, r)] : [m, Ze(e, t, r)];
}
return Ze(e, t, r);
}
let o = [], c = [], u = [], p = [], d = s.prev ? Lt(s.prev, s) : "", g = s.next ? Lt(s, s.next) : "";
return d && (Ge(s.prev) ? o.push(C, C) : d === C ? o.push(C) : O(s.prev) ? c.push(d) : c.push(j("", k, { groupId: i[a - 1] }))), g && (Ge(s) ? O(s.next) && p.push(C, C) : g === C ? O(s.next) && p.push(C) : u.push(g)), [...o, E([...c, E([Ze(e, t, r), ...u], { id: i[a] })]), ...p];
}, "children");
}
function ii(e, t, r) {
let { node: n } = e, i = [];
if (Na(e) && i.push("} "), i.push("@", n.name), ya(n)) return i.push(";"), i;
if (n.parameters && i.push(" (", E(r("parameters")), ")"), !Aa(n)) {
i.push(" {");
let s = si(n);
n.children.length > 0 ? (n.firstChild.hasLeadingSpaces = !0, n.lastChild.hasTrailingSpaces = !0, i.push(A([C, Le(e, t, r)])), s && i.push(C, "}")) : s && i.push("}");
}
return E(i, { shouldBreak: !0 });
}
function si(e) {
return !(e.next?.kind === "angularControlFlowBlock" && ri.get(e.name)?.has(e.next.name));
}
function Aa(e) {
return xa(e) && e.endSourceSpan && e.endSourceSpan.start.offset === e.endSourceSpan.end.offset;
}
function Na(e) {
let { previous: t } = e;
return t?.kind === "angularControlFlowBlock" && !oe(t) && !si(t);
}
function ai(e, t, r) {
return [A([k, B([";", S], e.map(r, "children"))]), k];
}
function oi(e, t, r) {
let { node: n } = e;
return [me(n, t), E([n.switchValue.trim(), ", ", n.type, n.cases.length > 0 ? [",", A([S, B(S, e.map(r, "cases"))])] : "", k]), ce(n, t)];
}
function li(e, t, r) {
let { node: n } = e;
return [n.value, " {", E([A([k, e.map(({ node: i, isLast: s }) => {
let a = [r()];
return i.kind === "text" && (i.hasLeadingSpaces && a.unshift(S), i.hasTrailingSpaces && !s && a.push(S)), a;
}, "expression")]), k]), "}"];
}
function ci(e, t, r) {
let { node: n } = e;
if (Et(n, t)) return [H(n, t), E(Ke(e, t, r)), L(Nt(n, t)), ...Ye(n, t), F(n, t)];
let i = n.children.length === 1 && (n.firstChild.kind === "interpolation" || n.firstChild.kind === "angularIcuExpression") && n.firstChild.isLeadingSpaceSensitive && !n.firstChild.hasLeadingSpaces && n.lastChild.isTrailingSpaceSensitive && !n.lastChild.hasTrailingSpaces, s = /* @__PURE__ */ Symbol("element-attr-group-id"), a = (p) => E([E(Ke(e, t, r), { id: s }), p, Ye(n, t)]), o = (p) => i ? Fr(p, { groupId: s }) : (q(n, t) || $e(n, t)) && n.parent.kind === "root" && t.parser === "vue" && !t.vueIndentScriptAndStyle ? p : A(p), c = () => i ? j(k, "", { groupId: s }) : n.firstChild.hasLeadingSpaces && n.firstChild.isLeadingSpaceSensitive ? S : n.firstChild.kind === "text" && n.isWhitespaceSensitive && n.isIndentationSensitive ? qr(k) : k, u = () => (n.next ? W(n.next) : pe(n.parent)) ? n.lastChild.hasTrailingSpaces && n.lastChild.isTrailingSpaceSensitive ? " " : "" : i ? j(k, "", { groupId: s }) : n.lastChild.hasTrailingSpaces && n.lastChild.isTrailingSpaceSensitive ? S : (n.lastChild.kind === "comment" || n.lastChild.kind === "text" && n.isWhitespaceSensitive && n.isIndentationSensitive) && new RegExp(`\\n[\\t ]{${t.tabWidth * (e.ancestors.length - 1)}}$`, "u").test(n.lastChild.value) ? "" : k;
return n.children.length === 0 ? a(n.hasDanglingSpaces && n.isDanglingSpaceSensitive ? S : "") : a([cn(n) ? Y : "", o([c(), Le(e, t, r)]), u()]);
}
function et(e, t = !0) {
if (e[0] != ":") return [null, e];
let r = e.indexOf(":", 1);
if (r === -1) {
if (t) throw new Error(`Unsupported format "${e}" expecting ":namespace:name"`);
return [null, e];
}
return [e.slice(1, r), e.slice(r + 1)];
}
function or(e) {
return et(e)[1] === "ng-container";
}
function lr(e) {
return et(e)[1] === "ng-content";
}
function Pe(e) {
return e === null ? null : et(e)[0];
}
function fe(e, t) {
return e ? `:${e}:${t}` : t;
}
function ui(e) {
return e.replace(La, (...t) => t[1].toUpperCase());
}
function pr() {
return Pt || (Pt = {}, tt(Z.HTML, ["iframe|srcdoc", "*|innerHTML", "*|outerHTML"]), tt(Z.STYLE, ["*|style"]), tt(Z.URL, ["*|formAction", "area|href", "a|href", "a|xlink:href", "form|action", "annotation|href", "annotation|xlink:href", "annotation-xml|href", "annotation-xml|xlink:href", "maction|href", "maction|xlink:href", "malignmark|href", "malignmark|xlink:href", "math|href", "math|xlink:href", "mroot|href", "mroot|xlink:href", "msqrt|href", "msqrt|xlink:href", "merror|href", "merror|xlink:href", "mfrac|href", "mfrac|xlink:href", "mglyph|href", "mglyph|xlink:href", "msub|href", "msub|xlink:href", "msup|href", "msup|xlink:href", "msubsup|href", "msubsup|xlink:href", "mmultiscripts|href", "mmultiscripts|xlink:href", "mprescripts|href", "mprescripts|xlink:href", "mi|href", "mi|xlink:href", "mn|href", "mn|xlink:href", "mo|href", "mo|xlink:href", "mpadded|href", "mpadded|xlink:href", "mphantom|href", "mphantom|xlink:href", "mrow|href", "mrow|xlink:href", "ms|href", "ms|xlink:href", "mspace|href", "mspace|xlink:href", "mstyle|href", "mstyle|xlink:href", "mtable|href", "mtable|xlink:href", "mtd|href", "mtd|xlink:href", "mtr|href", "mtr|xlink:href", "mtext|href", "mtext|xlink:href", "mover|href", "mover|xlink:href", "munder|href", "munder|xlink:href", "munderover|href", "munderover|xlink:href", "semantics|href", "semantics|xlink:href", "none|href", "none|xlink:href", "img|src", "video|src"]), tt(Z.RESOURCE_URL, ["base|href", "embed|src", "frame|src", "iframe|src", "link|href", "object|codebase", "object|data", "script|src", "script|href", "script|xlink:href"]), tt(Z.ATTRIBUTE_NO_BINDING, ["animate|attributeName", "animate|values", "animate|to", "animate|from", "set|to", "set|attributeName", "animateMotion|attributeName", "animateTransform|attributeName", "unknown|attributeName", "unknown|values", "unknown|to", "unknown|from", "iframe|sandbox", "iframe|allow", "iframe|allowFullscreen", "iframe|referrerPolicy", "iframe|csp", "iframe|fetchPriority", "unknown|sandbox", "unknown|allow", "unknown|allowFullscreen", "unknown|referrerPolicy", "unknown|csp", "unknown|fetchPriority"])), Pt;
}
function tt(e, t) {
for (let r of t) Pt[r.toLowerCase()] = e;
}
function Ba(e) {
switch (e) {
case "width":
case "height":
case "minWidth":
case "minHeight":
case "maxWidth":
case "maxHeight":
case "left":
case "top":
case "bottom":
case "right":
case "fontSize":
case "outlineWidth":
case "outlineOffset":
case "paddingTop":
case "paddingLeft":
case "paddingBottom":
case "paddingRight":
case "marginTop":
case "marginLeft":
case "marginBottom":
case "marginRight":
case "borderRadius":
case "borderWidth":
case "borderTopWidth":
case "borderLeftWidth":
case "borderRightWidth":
case "borderBottomWidth":
case "textIndent":
return !0;
default:
return !1;
}
}
function Oe(e) {
return rt || (fi = new f({ canSelfClose: !0 }), rt = Object.assign(/* @__PURE__ */ Object.create(null), { base: new f({ isVoid: !0 }), meta: new f({ isVoid: !0 }), area: new f({ isVoid: !0 }), embed: new f({ isVoid: !0 }), link: new f({ isVoid: !0 }), img: new f({ isVoid: !0 }), input: new f({ isVoid: !0 }), param: new f({ isVoid: !0 }), hr: new f({ isVoid: !0 }), br: new f({ isVoid: !0 }), source: new f({ isVoid: !0 }), track: new f({ isVoid: !0 }), wbr: new f({ isVoid: !0 }), p: new f({ closedByChildren: ["address", "article", "aside", "blockquote", "div", "dl", "fieldset", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hgroup", "hr", "main", "nav", "ol", "p", "pre", "section", "table", "ul"], closedByParent: !0 }), thead: new f({ closedByChildren: ["tbody", "tfoot"] }), tbody: new f({ closedByChildren: ["tbody", "tfoot"], closedByParent: !0 }), tfoot: new f({ closedByChildren: ["tbody"], closedByParent: !0 }), tr: new f({ closedByChildren: ["tr"], closedByParent: !0 }), td: new f({ closedByChildren: ["td", "th"], closedByParent: !0 }), th: new f({ closedByChildren: ["td", "th"], closedByParent: !0 }), col: new f({ isVoid: !0 }), svg: new f({ implicitNamespacePrefix: "svg" }), foreignObject: new f({ implicitNamespacePrefix: "svg", preventNamespaceInheritance: !0 }), math: new f({ implicitNamespacePrefix: "math" }), li: new f({ closedByChildren: ["li"], closedByParent: !0 }), dt: new f({ closedByChildren: ["dt", "dd"] }), dd: new f({ closedByChildren: ["dt", "dd"], closedByParent: !0 }), rb: new f({ closedByChildren: ["rb", "rt", "rtc", "rp"], closedByParent: !0 }), rt: new f({ closedByChildren: ["rb", "rt", "rtc", "rp"], closedByParent: !0 }), rtc: new f({ closedByChildren: ["rb", "rtc", "rp"], closedByParent: !0 }), rp: new f({ closedByChildren: ["rb", "rt", "rtc", "rp"], closedByParent: !0 }), optgroup: new f({ closedByChildren: ["optgroup"], closedByParent: !0 }), option: new f({ closedByChildren: ["option", "optgroup"], closedByParent: !0 }), pre: new f({ ignoreFirstLf: !0 }), listing: new f({ ignoreFirstLf: !0 }), style: new f({ contentType: R.RAW_TEXT }), script: new f({ contentType: R.RAW_TEXT }), title: new f({ contentType: { default: R.ESCAPABLE_RAW_TEXT, svg: R.PARSABLE_DATA } }), textarea: new f({ contentType: R.ESCAPABLE_RAW_TEXT, ignoreFirstLf: !0 }) }), new mi().allKnownElementNames().forEach((t) => {
!rt[t] && Pe(t) === null && (rt[t] = new f({ canSelfClose: !1 }));
})), rt[e] ?? fi;
}
function Ot(e, t, r = null) {
let n = [], i = e.visit ? (s) => e.visit(s, r) || s.visit(e, r) : (s) => s.visit(e, r);
return t.forEach((s) => {
let a = i(s);
a && n.push(a);
}), n;
}
function it(e) {
return e >= 9 && e <= 32 || e == 160;
}
function Ie(e) {
return 48 <= e && e <= 57;
}
function Re(e) {
return e >= 97 && e <= 122 || e >= 65 && e <= 90;
}
function ki(e) {
return e >= 97 && e <= 102 || e >= 65 && e <= 70 || Ie(e);
}
function Me(e) {
return e === 10 || e === 13;
}
function dr(e) {
return 48 <= e && e <= 55;
}
function Dt(e) {
return e === 39 || e === 34 || e === 96;
}
function Pi(e, t, r, n = {}) {
let i = new Ua(new nt(e, t), r, n);
return i.tokenize(), new qa(Xa(i.tokens), i.errors, i.nonNormalizedIcuExpressions);
}
function Se(e) {
return `Unexpected character "${e === 0 ? "EOF" : String.fromCharCode(e)}"`;
}
function xi(e) {
return `Unknown entity "${e}" - use the "&#<decimal>;" or "&#x<hex>;" syntax`;
}
function Ha(e, t) {
return `Unable to parse entity "${t}" - ${e} character reference entities must end with ";"`;
}
function v(e) {
return !it(e) || e === 0;
}
function Ee(e) {
return it(e) || e === 62 || e === 60 || e === 47 || e === 39 || e === 34 || e === 61 || e === 0;
}
function Wa(e) {
return (e < 97 || 122 < e) && (e < 65 || 90 < e) && (e < 48 || e > 57);
}
function Ga(e) {
return e === 59 || e === 0 || !ki(e);
}
function za(e) {
return e === 59 || e === 0 || !(Re(e) || Ie(e));
}
function $a(e) {
return e !== 125;
}
function Ya(e, t) {
return yi(e) === yi(t);
}
function yi(e) {
return e >= 97 && e <= 122 ? e - 97 + 65 : e;
}
function ja(e) {
return Re(e) || Ie(e) || e === 95;
}
function Ai(e) {
return e !== 59 && v(e);
}
function It(e) {
return e === 95 || e >= 65 && e <= 90;
}
function Ni(e) {
return Re(e) || Ie(e) || e === 95;
}
function Li(e) {
return e === 47 || e === 62 || e === 60 || e === 0;
}
function Xa(e) {
let t = [], r;
for (let n = 0; n < e.length; n++) {
let i = e[n];
r && r.type === l.TEXT && i.type === l.TEXT || r && r.type === l.ATTR_VALUE_TEXT && i.type === l.ATTR_VALUE_TEXT ? (r.parts[0] += i.parts[0], r.sourceSpan.end = i.sourceSpan.end) : (r = i, t.push(r));
}
return t;
}
function Di(e, t) {
return e.length > 0 && e[e.length - 1] === t;
}
function Ii(e, t) {
return _e[t] !== void 0 ? _e[t] || e : /^#x[a-f0-9]+$/i.test(t) ? String.fromCodePoint(parseInt(t.slice(2), 16)) : /^#\d+$/.test(t) ? String.fromCodePoint(parseInt(t.slice(1), 10)) : e;
}
function Rt(e, t = {}) {
let { canSelfClose: r = !1, allowHtmComponentClosingTags: n = !1, isTagNameCaseSensitive: i = !1, getTagContentType: s, tokenizeAngularBlocks: a = !1, tokenizeAngularLetDeclaration: o = !1, enableAngularSelectorlessSyntax: c = !1 } = t;
return Cr ?? (Cr = new qi()), Cr.parse(e, "angular-html-parser", { tokenizeExpansionForms: a, canSelfClose: r, allowHtmComponentClosingTags: n, tokenizeBlocks: a, tokenizeLet: o, selectorlessEnabled: c }, i, s);
}
function eo(e, t) {
for (let r of Za) r(e, t);
return e;
}
function to(e) {
e.walk((t) => {
if (t.kind === "element" && t.tagDefinition.ignoreFirstLf && t.children.length > 0 && t.children[0].kind === "text" && t.children[0].value[0] === `
`) {
let r = t.children[0];
r.value.length === 1 ? t.removeChild(r) : r.value = r.value.slice(1);
}
});
}
function ro(e) {
let t = (r) => r.kind === "element" && r.prev?.kind === "ieConditionalStartComment" && r.prev.sourceSpan.end.offset === r.startSourceSpan.start.offset && r.firstChild?.kind === "ieConditionalEndComment" && r.firstChild.sourceSpan.start.offset === r.startSourceSpan.end.offset;
e.walk((r) => {
if (r.children) for (let n = 0; n < r.children.length; n++) {
let i = r.children[n];
if (!t(i)) continue;
let s = i.prev, a = i.firstChild;
r.removeChild(s), n--;
let o = new h(s.sourceSpan.start, a.sourceSpan.end), c = new h(o.start, i.sourceSpan.end);
i.condition = s.condition, i.sourceSpan = c, i.startSourceSpan = o, i.removeChild(a);
}
});
}
function no(e, t, r) {
e.walk((n) => {
if (n.children) for (let i = 0; i < n.children.length; i++) {
let s = n.children[i];
if (s.kind !== "text" && !t(s)) continue;
s.kind !== "text" && (s.kind = "text", s.value = r(s));
let a = s.prev;
!a || a.kind !== "text" || (a.value += s.value, a.sourceSpan = new h(a.sourceSpan.start, s.sourceSpan.end), n.removeChild(s), i--);
}
});
}
function io(e) {
return no(e, (t) => t.kind === "cdata", (t) => `<![CDATA[${t.value}]]>`);
}
function so(e) {
let t = (r) => r.kind === "element" && r.attrs.length === 0 && r.children.length === 1 && r.firstChild.kind === "text" && !N.hasWhitespaceCharacter(r.children[0].value) && !r.firstChild.hasLeadingSpaces && !r.firstChild.hasTrailingSpaces && r.isLeadingSpaceSensitive && !r.hasLeadingSpaces && r.isTrailingSpaceSensitive && !r.hasTrailingSpaces && r.prev?.kind === "text" && r.next?.kind === "text";
e.walk((r) => {
if (r.children) for (let n = 0; n < r.children.length; n++) {
let i = r.children[n];
if (!t(i)) continue;
let s = i.prev, a = i.next;
s.value += `<${i.rawName}>` + i.firstChild.value + `</${i.rawName}>` + a.value, s.sourceSpan = new h(s.sourceSpan.start, a.sourceSpan.end), s.isTrailingSpaceSensitive = a.isTrailingSpaceSensitive, s.hasTrailingSpaces = a.hasTrailingSpaces, r.removeChild(i), n--, r.removeChild(a);
}
});
}
function ao(e, t) {
if (t.parser === "html") return;
let r = /\{\{(.+?)\}\}/su;
e.walk((n) => {
if (nn(n, t)) for (let i of n.children) {
if (i.kind !== "text") continue;
let s = i.sourceSpan.start, a = null, o = i.value.split(r);
for (let c = 0; c < o.length; c++, s = a) {
let u = o[c];
if (c % 2 === 0) {
a = s.moveBy(u.length), u.length > 0 && n.insertChildBefore(i, { kind: "text", value: u, sourceSpan: new h(s, a) });
continue;
}
a = s.moveBy(u.length + 4), n.insertChildBefore(i, { kind: "interpolation", sourceSpan: new h(s, a), children: u.length === 0 ? [] : [{ kind: "text", value: u, sourceSpan: new h(s.moveBy(2), a.moveBy(-2)) }] });
}
n.removeChild(i);
}
});
}
function oo(e, t) {
e.walk((r) => {
let n = r.$children;
if (!n) return;
if (n.length === 0 || n.length === 1 && n[0].kind === "text" && N.trim(n[0].value).length === 0) {
r.hasDanglingSpaces = n.length > 0, r.$children = [];
return;
}
let i = sn(r, t), s = Zt(r);
if (!i) for (let a = 0; a < n.length; a++) {
let o = n[a];
if (o.kind !== "text") continue;
let { leadingWhitespace: c, text: u, trailingWhitespace: p } = rn(o.value), d = o.prev, g = o.next;
u ? (o.value = u, o.sourceSpan = new h(o.sourceSpan.start.moveBy(c.length), o.sourceSpan.end.moveBy(-p.length)), c && (d && (d.hasTrailingSpaces = !0), o.hasLeadingSpaces = !0), p && (o.hasTrailingSpaces = !0, g && (g.hasLeadingSpaces = !0))) : (r.removeChild(o), a--, (c || p) && (d && (d.hasTrailingSpaces = !0), g && (g.hasLeadingSpaces = !0)));
}
r.isWhitespaceSensitive = i, r.isIndentationSensitive = s;
});
}
function lo(e) {
e.walk((t) => {
t.isSelfClosing = !t.children || t.kind === "element" && (t.tagDefinition.isVoid || t.endSourceSpan && t.startSourceSpan.start === t.endSourceSpan.start && t.startSourceSpan.end === t.endSourceSpan.end);
});
}
function co(e, t) {
e.walk((r) => {
r.kind === "element" && (r.hasHtmComponentClosingTag = r.endSourceSpan && /^<\s*\/\s*\/\s*>$/u.test(t.originalText.slice(r.endSourceSpan.start.offset, r.endSourceSpan.end.offset)));
});
}
function uo(e, t) {
e.walk((r) => {
r.cssDisplay = dn(r, t);
});
}
function po(e, t) {
e.walk((r) => {
let { children: n } = r;
if (n) {
if (n.length === 0) {
r.isDanglingSpaceSensitive = ln(r, t);
return;
}
for (let i of n) i.isLeadingSpaceSensitive = an(i, t), i.isTrailingSpaceSensitive = on(i, t);
for (let i = 0; i < n.length; i++) {
let s = n[i];
s.isLeadingSpaceSensitive = (i === 0 || s.prev.isTrailingSpaceSensitive) && s.isLeadingSpaceSensitive, s.isTrailingSpaceSensitive = (i === n.length - 1 || s.next.isLeadingSpaceSensitive) && s.isTrailingSpaceSensitive;
}
}
});
}
function ho(e, t, r) {
let { node: n } = e;
switch (n.kind) {
case "root":
return t.__onHtmlRoot && t.__onHtmlRoot(n), [E(Le(e, t, r)), C];
case "element":
case "ieConditionalComment":
return ci(e, t, r);
case "angularControlFlowBlock":
return ii(e, t, r);
case "angularControlFlowBlockParameters":
return ai(e, t, r);
case "angularControlFlowBlockParameter":
return N.trim(n.expression);
case "angularLetDeclaration":
return E(["@let ", E([n.id, " =", E(A([S, r("init")]))]), ";"]);
case "angularLetDeclarationInitializer":
return n.value;
case "angularIcuExpression":
return oi(e, t, r);
case "angularIcuCase":
return li(e, t, r);
case "ieConditionalStartComment":
case "ieConditionalEndComment":
return [me(n), ce(n)];
case "interpolation":
return [me(n, t), ...e.map(r, "children"), ce(n, t)];
case "text": {
if (n.parent.kind === "interpolation") {
let o = /\n[^\S\n]*$/u, c = o.test(n.value), u = c ? n.value.replace(o, "") : n.value;
return [L(u), c ? C : ""];
}
let i = H(n, t), s = bt(n), a = F(n, t);
return s[0] = [i, s[0]], s.push([s.pop(), a]), gt(s);
}
case "docType":
return [E([me(n, t), " ", w(0, n.value.replace(/^html\b/iu, "html"), /\s+/gu, " ")]), ce(n, t)];
case "comment":
return [H(n, t), L(t.originalText.slice(K(n), J(n))), F(n, t)];
case "attribute": {
if (n.value === null) return n.rawName;
let i = rr(n.value), s = kt(n, t) ? "" : Ur(i, '"');
return [n.rawName, "=", s, L(s === '"' ? w(0, i, '"', """) : w(0, i, "'", "'")), s];
}
default:
throw new Gr(n, "HTML");
}
}
function go(e, t) {
let r = new SyntaxError(e + " (" + t.loc.start.line + ":" + t.loc.start.column + ")");
return Object.assign(r, t);
}
function Mt(e) {
return { ..._o, ...e };
}
function Tr(e) {
let { canSelfClose: t, allowHtmComponentClosingTags: r, isTagNameCaseSensitive: n, shouldParseAsRawText: i, tokenizeAngularBlocks: s, tokenizeAngularLetDeclaration: a } = e;
return { canSelfClose: t, allowHtmComponentClosingTags: r, isTagNameCaseSensitive: n, getTagContentType: i ? (...o) => i(...o) ? R.RAW_TEXT : void 0 : void 0, tokenizeAngularBlocks: s, tokenizeAngularLetDeclaration: a };
}
function So(e, t) {
let r = e.map(t);
return r.some((n, i) => n !== e[i]) ? r : e;
}
function Yi(e, t) {
if (e.value) for (let { regex: r, parse: n } of Eo) {
let i = e.value.match(r);
if (i) return n(e, i, t);
}
return null;
}
function Co(e, t, r) {
let { openingTagSuffix: n, condition: i, data: s } = t.groups, a = 4 + n.length, o = e.sourceSpan.start.moveBy(a), c = o.moveBy(s.length), [u, p] = (() => {
try {
return [!0, r(s, o).children];
} catch {
return [!1, [{ kind: "text", value: s, sourceSpan: new h(o, c) }]];
}
})();
return { kind: "ieConditionalComment", complete: u, children: p, condition: w(0, i.trim(), /\s+/gu, " "), sourceSpan: e.sourceSpan, startSourceSpan: new h(e.sourceSpan.start, o), endSourceSpan: new h(c, e.sourceSpan.end) };
}
function vo(e, t) {
let { condition: r } = t.groups;
return { kind: "ieConditionalStartComment", condition: w(0, r.trim(), /\s+/gu, " "), sourceSpan: e.sourceSpan };
}
function To(e) {
return { kind: "ieConditionalEndComment", sourceSpan: e.sourceSpan };
}
function Ki(e, t, r, n) {
Ot(new kr(), e.children, { parseOptions: r }), t && e.children.unshift(t);
let i = new Ft(e);
return i.walk((s) => {
if (s.kind === "comment") {
let a = Yi(s, n);
a && s.parent.replaceChild(s, a);
}
bo(s), wo(s), ko(s);
}), i;
}
function bo(e) {
if (e.kind === "block") {
if (e.name = w(0, e.name.toLowerCase(), /\s+/gu, " ").trim(), e.kind = "angularControlFlowBlock", !Ne(e.parameters)) {
delete e.parameters;
return;
}
for (let t of e.parameters) t.kind = "angularControlFlowBlockParameter";
e.parameters = { kind: "angularControlFlowBlockParameters", children: e.parameters, sourceSpan: new h(e.parameters[0].sourceSpan.start, M(0, e.parameters, -1).sourceSpan.end) };
}
}
function wo(e) {
e.kind === "letDeclaration" && (e.kind = "angularLetDeclaration", e.id = e.name, e.init = { kind: "angularLetDeclarationInitializer", sourceSpan: new h(e.valueSpan.start, e.valueSpan.end), value: e.value }, delete e.name, delete e.value);
}
function ko(e) {
e.kind === "expansion" && (e.kind = "angularIcuExpression"), e.kind === "expansionCase" && (e.kind = "angularIcuCase");
}
function ji(e, t) {
let r = e.toLowerCase();
return t(r) ? r : e;
}
function Xi(e) {
let t = e.name.startsWith(":") ? e.name.slice(1).split(":")[0] : null, r = e.nameSpan.toString(), n = t !== null && r.startsWith(`${t}:`), i = n ? r.slice(t.length + 1) : r;
e.name = i, e.namespace = t, e.hasExplicitNamespace = n;
}
function xo(e) {
switch (e.kind) {
case "element":
Xi(e);
for (let t of e.attrs) Xi(t), t.valueSpan ? (t.value = t.valueSpan.toString(), /["']/u.test(t.value[0]) && (t.value = t.value.slice(1, -1))) : t.value = null;
break;
case "comment":
e.value = e.sourceSpan.toString().slice(4, -3);
break;
case "text":
e.value = e.sourceSpan.toString();
break;
}
}
function yo(e, t) {
if (e.kind === "element") {
let r = Oe(t.isTagNameCaseSensitive ? e.name : e.name.toLowerCase());
!e.namespace || e.namespace === r.implicitNamespacePrefix || se(e) ? e.tagDefinition = r : e.tagDefinition = Oe("");
}
}
function Ao(e) {
e.sourceSpan && e.endSourceSpan && (e.sourceSpan = new h(e.sourceSpan.start, e.endSourceSpan.end));
}
function No(e, t) {
if (e.kind === "element" && (t.normalizeTagName && (!e.namespace || e.namespace === e.tagDefinition.implicitNamespacePrefix || se(e)) && (e.name = ji(e.name, (r) => zi.has(r))), t.normalizeAttributeName)) for (let r of e.attrs) r.namespace || (r.name = ji(r.name, (n) => Bt.has(e.name) && (Bt.get("*").has(n) || Bt.get(e.name).has(n))));
}
function yr(e, t) {
let { rootNodes: r, errors: n } = Rt(e, Tr(t));
return n.length > 0 && xr(n[0]), { parseOptions: t, rootNodes: r };
}
function Qi(e, t) {
let r = Tr(t), { rootNodes: n, errors: i } = Rt(e, r);
if (n.some((u) => u.kind === "docType" && u.value === "html" || u.kind === "element" && u.name.toLowerCase() === "html")) return yr(e, Ht);
let a, o = () => a ?? (a = Rt(e, { ...r, getTagContentType: void 0 })), c = (u) => {
let { offset: p } = u.startSourceSpan.start;
return o().rootNodes.find((d) => d.kind === "element" && d.startSourceSpan.start.offset === p) ?? u;
};
for (let [u, p] of n.entries()) if (p.kind === "element") {
if (p.isVoid) i = o().errors, n[u] = c(p);
else if (Lo(p)) {
let { endSourceSpan: d, startSourceSpan: g } = p, m = o().errors.find((_) => _.span.start.offset > g.start.offset && _.span.start.offset < d.end.offset);
m && xr(m), n[u] = c(p);
}
}
return i.length > 0 && xr(i[0]), { parseOptions: t, rootNodes: n };
}
function Lo(e) {
if (e.kind !== "element" || e.name !== "template") return !1;
let t = e.attrs.find((r) => r.name === "lang")?.value;
return !t || t === "html";
}
function xr(e) {
let { msg: t, span: { start: r, end: n } } = e;
throw Gi(t, { loc: { start: { line: r.line + 1, column: r.col + 1 }, end: { line: n.line + 1, column: n.col + 1 } }, cause: e });
}
function Po(e, t, r, n, i, s) {
let { offset: a } = n, o = w(0, t.slice(0, a), /[^\n]/gu, " ") + r, c = Ar(o, e, { ...i, shouldParseFrontMatter: !1 }, s);
c.sourceSpan = new h(n, M(0, c.children, -1).sourceSpan.end);
let u = c.children[0];
return u.length === a ? c.children.shift() : (u.sourceSpan = new h(u.sourceSpan.start.moveBy(a), u.sourceSpan.end), u.value = u.value.slice(a)), c;
}
function Ar(e, t, r, n = {}) {
let { frontMatter: i, content: s } = r.shouldParseFrontMatter ? Xt(e) : { content: e }, a = new nt(e, n.filepath), o = new De(a, 0, 0, 0), c = o.moveBy(e.length), { parseOptions: u, rootNodes: p } = t(s, r), d = { kind: "root", sourceSpan: new h(o, c), children: p }, g;
if (i) {
let [_, T] = [i.start, i.end].map((P) => new De(a, P.index, P.line - 1, P.column));
g = { ...i, kind: "frontMatter", sourceSpan: new h(_, T) };
}
return Ki(d, g, u, (_, T) => Po(t, e, _, T, u, n));
}
function at(e) {
let t = Mt(e), r = t.name === "vue" ? Qi : yr;
return { parse: (n, i) => Ar(n, r, t, i), hasPragma: Zn, hasIgnorePragma: ei, astFormat: "html", locStart: K, locEnd: J };
}
var Lr, Pr, Zi, Or, Ut, es, Fe, Dr, Ji, ve, ts, rs, w, is, M, ss, He, Ve, Ue, lt, Te, be, ct, we, ke, xe, ye, ut, pt, $, ht, Ae, mt, ft, os, Wt, Ir, D, dt, Mr, Br, Y, S, k, us, C, ps, Rr, Hr, Vr, hs, ms, Ur, $t, Wr, ds, gs, N, Yt, Gr, _s, Ss, $r, Yr, Cs, vs, jr, bs, Kr, Qr, Ne, As, _t, St, ie, We, Xt, en, Kt, tn, Qt, se, Is, Jt, rn, Ys, En, Cn, nr, Xs, Tn, bn, wn, ir, Js, kn, xn, yn, An, ea, ta, ra, na, Pn, ia, On, Dn, In, aa, Mn, Bn, sr, U, ca, Un, ha, Wn, K, J, Gn, Nt, va, $n, Qe, ba, Yn, I, jn, ka, Xn, Kn, Qn, Jn, Zn, ei, ti, ri, xa, ya, R, cr, ur, Z, La, Pt, pi, Pa, Oa, Da, Ia, Ra, hi, Ma, mi, f, fi, rt, De, nt, h, di, ee, de, _i, Si, Ei, Ci, vi, te, Ti, bi, ge, G, wi, hr, mr, fr, _e, l, qa, Fa, gr, Va, st, Ua, Oi, Ka, Er, y, Qa, Mi, Ja, qi, Cr, Za, Fi, mo, Hi, Vi, vr, Ui, fo, Wi, Nr, Gi, _o, Bt, zi, qt, $i, re, br, wr, Be, Ft, Eo, kr, Ht, Oo, Do, Io, Ro, Mo, Bo, qo, init_html = __esm({
"../../node_modules/.pnpm/prettier@3.8.4/node_modules/prettier/plugins/html.mjs"() {
init_cjs_shims();
Lr = Object.defineProperty, Pr = (e) => {
throw TypeError(e);
}, Zi = (e, t, r) => t in e ? Lr(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, Or = (e, t) => {
for (var r in t) Lr(e, r, { get: t[r], enumerable: !0 });
}, Ut = (e, t, r) => Zi(e, typeof t != "symbol" ? t + "" : t, r), es = (e, t, r) => t.has(e) || Pr("Cannot " + r), Fe = (e, t, r) => (es(e, t, "read from private field"), r ? r.call(e) : t.get(e)), Dr = (e, t, r) => t.has(e) ? Pr("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(e) : t.set(e, r), Ji = {};
Or(Ji, { languages: () => Vi, options: () => Wi, parsers: () => Nr, printers: () => qo });
ve = (e, t) => (r, n, ...i) => r | 1 && n == null ? void 0 : (t.call(n) ?? n[e]).apply(n, i), ts = String.prototype.replaceAll ?? function(e, t) {
return e.global ? this.replace(e, t) : this.split(e).join(t);
}, rs = ve("replaceAll", function() {
if (typeof this == "string") return ts;
}), w = rs;
is = ve("at", function() {
if (Array.isArray(this) || typeof this == "string") return ns;
}), M = is, ss = () => {
}, He = ss, Ve = "string", Ue = "array", lt = "cursor", Te = "indent", be = "align", ct = "trim", we = "group", ke = "fill", xe = "if-break", ye = "indent-if-break", ut = "line-suffix", pt = "line-suffix-boundary", $ = "line", ht = "label", Ae = "break-parent", mt = /* @__PURE__ */ new Set([lt, Te, be, ct, we, ke, xe, ye, ut, pt, $, ht, Ae]);
ft = as, os = (e) => new Intl.ListFormat("en-US", { type: "disjunction" }).format(e);
Wt = class extends Error {
name = "InvalidDocError";
constructor(t) {
super(ls(t)), this.doc = t;
}
}, Ir = Wt;
D = He, dt = He, Mr = He, Br = He;
Y = { type: Ae };
S = { type: $ }, k = { type: $, soft: !0 }, us = { type: $, hard: !0 }, C = [us, Y], ps = { type: $, hard: !0, literal: !0 }, Rr = [ps, Y], Hr = Object.freeze({ character: "'", codePoint: 39 }), Vr = Object.freeze({ character: '"', codePoint: 34 }), hs = Object.freeze({ preferred: Hr, alternate: Vr }), ms = Object.freeze({ preferred: Vr, alternate: Hr });
Ur = fs;
$t = class {
#e;
constructor(t) {
this.#e = new Set(t);
}
getLeadingWhitespaceCount(t) {
let r = this.#e, n = 0;
for (let i = 0; i < t.length && r.has(t.charAt(i)); i++) n++;
return n;
}
getTrailingWhitespaceCount(t) {
let r = this.#e, n = 0;
for (let i = t.length - 1; i >= 0 && r.has(t.charAt(i)); i--) n++;
return n;
}
getLeadingWhitespace(t) {
let r = this.getLeadingWhitespaceCount(t);
return t.slice(0, r);
}
getTrailingWhitespace(t) {
let r = this.getTrailingWhitespaceCount(t);
return t.slice(t.length - r);
}
hasLeadingWhitespace(t) {
return this.#e.has(t.charAt(0));
}
hasTrailingWhitespace(t) {
return this.#e.has(M(0, t, -1));
}
trimStart(t) {
let r = this.getLeadingWhitespaceCount(t);
return t.slice(r);
}
trimEnd(t) {
let r = this.getTrailingWhitespaceCount(t);
return t.slice(0, t.length - r);
}
trim(t) {
return this.trimEnd(this.trimStart(t));
}
split(t, r = !1) {
let n = `[${zt([...this.#e].join(""))}]+`, i = new RegExp(r ? `(${n})` : n, "u");
return t.split(i);
}
hasWhitespaceCharacter(t) {
let r = this.#e;
return Array.prototype.some.call(t, (n) => r.has(n));
}
hasNonWhitespaceCharacter(t) {
let r = this.#e;
return Array.prototype.some.call(t, (n) => !r.has(n));
}
isWhitespaceOnly(t) {
let r = this.#e;
return Array.prototype.every.call(t, (n) => r.has(n));
}
#t(t) {
let r = Number.POSITIVE_INFINITY;
for (let n of t.split(`
`)) {
if (n.length === 0) continue;
let i = this.getLeadingWhitespaceCount(n);
if (i === 0) return 0;
n.length !== i && i < r && (r = i);
}
return r === Number.POSITIVE_INFINITY ? 0 : r;
}
dedentString(t) {
let r = this.#t(t);
return r === 0 ? t : t.split(`
`).map((n) => n.slice(r)).join(`
`);
}
}, Wr = $t, ds = [" ", `
`, "\f", "\r", " "], gs = new Wr(ds), N = gs, Yt = class extends Error {
name = "UnexpectedNodeError";
constructor(t, r, n = "type") {
super(`Unexpected ${r} node ${n}: ${JSON.stringify(t[n])}.`), this.node = t;
}
}, Gr = Yt, _s = /* @__PURE__ */ new Set(["sourceSpan", "startSourceSpan", "endSourceSpan", "nameSpan", "valueSpan", "keySpan", "tagDefinition", "tokens", "valueTokens", "switchValueSourceSpan", "expSourceSpan", "valueSourceSpan"]), Ss = /* @__PURE__ */ new Set(["if", "else if", "for", "switch", "case"]);
zr.ignoredProperties = _s;
$r = zr;
Yr = Es, Cs = Array.prototype.toReversed ?? function() {
return [...this].reverse();
}, vs = ve("toReversed", function() {
if (Array.isArray(this)) return Cs;
}), jr = vs;
bs = Ts();
Kr = (e) => String(e).split(/[/\\]/u).pop(), Qr = (e) => String(e).startsWith("file:");
Ne = xs;
As = void 0;
_t = Ns, St = /* @__PURE__ */ Symbol.for("PRETTIER_IS_FRONT_MATTER");
ie = Ls, We = 3;
Xt = Os, en = "inline", Kt = { area: "none", base: "none", basefont: "none", datalist: "none", head: "none", link: "none", meta: "none", noembed: "none", noframes: "none", param: "block", rp: "none", script: "block", style: "none", template: "inline", title: "none", html: "block", body: "block", address: "block", blockquote: "block", center: "block", dialog: "block", div: "block", figure: "block", figcaption: "block", footer: "block", form: "block", header: "block", hr: "block", legend: "block", listing: "block", main: "block", p: "block", plaintext: "block", pre: "block", search: "block", xmp: "block", slot: "contents", ruby: "ruby", rt: "ruby-text", article: "block", aside: "block", h1: "block", h2: "block", h3: "block", h4: "block", h5: "block", h6: "block", hgroup: "block", nav: "block", section: "block", dir: "block", dd: "block", dl: "block", dt: "block", menu: "block", ol: "block", ul: "block", li: "list-item", table: "table", caption: "table-caption", colgroup: "table-column-group", col: "table-column", thead: "table-header-group", tbody: "table-row-group", tfoot: "table-footer-group", tr: "table-row", td: "table-cell", th: "table-cell", input: "inline-block", button: "inline-block", fieldset: "block", details: "block", summary: "block", marquee: "inline-block", select: "inline-block", source: "block", track: "block", meter: "inline-block", progress: "inline-block", object: "inline-block", video: "inline-block", audio: "inline-block", option: "block", optgroup: "block" }, tn = "normal", Qt = { listing: "pre", plaintext: "pre", pre: "pre", xmp: "pre", nobr: "nowrap", table: "initial", textarea: "pre-wrap" };
se = Ds, Is = (e) => w(0, e, /^[\t\f\r ]*\n/gu, ""), Jt = (e) => Is(N.trimEnd(e)), rn = (e) => {
let t = e, r = N.getLeadingWhitespace(t);
r && (t = t.slice(r.length));
let n = N.getTrailingWhitespace(t);
return n && (t = t.slice(0, -n.length)), { leadingWhitespace: r, trailingWhitespace: n, text: t };
};
Ys = /* @__PURE__ */ new Set(["template", "style", "script"]);
En = /\{\{(.+?)\}\}/su, Cn = ({ node: { value: e } }) => En.test(e);
nr = (e) => (t, r, n) => x(b(n.node), t, { parser: e }, V), Xs = [{ test(e) {
let t = e.node.fullName;
return t.startsWith("(") && t.endsWith(")") || t.startsWith("on-");
}, print: nr("__ng_action") }, { test(e) {
let t = e.node.fullName;
return t.startsWith("[") && t.endsWith("]") || /^bind(?:on)?-/u.test(t) || /^ng-(?:if|show|hide|class|style)$/u.test(t);
}, print: nr("__ng_binding") }, { test: (e) => e.node.fullName.startsWith("*"), print: nr("__ng_directive") }, { test: (e) => /^i18n(?:-.+)?$/u.test(e.node.fullName), print: Ks }, { test: Cn, print: vn }].map(({ test: e, print: t }) => ({ test: (r, n) => n.parser === "angular" && e(r), print: t }));
Tn = Xs, bn = ({ node: e }, t) => !t.parentParser && e.fullName === "class" && !e.value.includes("{{"), wn = (e, t, r) => b(r.node).trim().split(/\s+/u).join(" "), ir = ["onabort", "onafterprint", "onauxclick", "onbeforeinput", "onbeforematch", "onbeforeprint", "onbeforetoggle", "onbeforeunload", "onblur", "oncancel", "oncanplay", "oncanplaythrough", "onchange", "onclick", "onclose", "oncommand", "oncontextlost", "oncontextmenu", "oncontextrestored", "oncopy", "oncuechange", "oncut", "ondblclick", "ondrag", "ondragend", "ondragenter", "ondragleave", "ondragover", "ondragstart", "ondrop", "ondurationchange", "onemptied", "onended", "onerror", "onfocus", "onformdata", "onhashchange", "oninput", "oninvalid", "onkeydown", "onkeypress", "onkeyup", "onlanguagechange", "onload", "onloadeddata", "onloadedmetadata", "onloadstart", "onmessage", "onmessageerror", "onmousedown", "onmouseenter", "onmouseleave", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onoffline", "ononline", "onpagehide", "onpagereveal", "onpageshow", "onpageswap", "onpaste", "onpause", "onplay", "onplaying", "onpopstate", "onprogress", "onratechange", "onrejectionhandled", "onreset", "onresize", "onscroll", "onscrollend", "onsecuritypolicyviolation", "onseeked", "onseeking", "onselect", "onslotchange", "onstalled", "onstorage", "onsubmit", "onsuspend", "ontimeupdate", "ontoggle", "onunhandledrejection", "onunload", "onvolumechange", "onwaiting", "onwheel"], Js = new Set(ir), kn = ({ node: e }, t) => Js.has(e.fullName) && !t.parentParser && !e.value.includes("{{"), xn = (e, t, r) => x(b(r.node), e, { parser: "babel", __isHtmlInlineEventHandler: !0 }, () => !1);
yn = Zs, An = ({ node: e }, t) => e.fullName === "allow" && !t.parentParser && e.parent.fullName === "iframe" && !e.value.includes("{{");
ea = /^[ \t\n\r\u000c]+/, ta = /^[, \t\n\r\u000c]+/, ra = /^[^ \t\n\r\u000c]+/, na = /[,]+$/, Pn = /^\d+$/, ia = /^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;
On = sa, Dn = (e) => e.node.fullName === "srcset" && (e.parent.fullName === "img" || e.parent.fullName === "source"), In = { width: "w", height: "h", density: "x" }, aa = Object.keys(In);
Mn = ({ node: e }, t) => e.fullName === "style" && !t.parentParser && !e.value.includes("{{"), Bn = async (e, t, r) => X(await e(b(r.node), { parser: "css", __isHTMLStyleAttribute: !0 })), sr = /* @__PURE__ */ new WeakMap();
U = oa;
ca = [{ test: (e) => e.node.fullName === "v-for", print: Hn }, { test: (e, t) => e.node.fullName === "generic" && wt(e.parent, t), print: qn }, { test: ({ node: e }, t) => _n(e) || Sn(e, t), print: Fn }, { test(e) {
let t = e.node.fullName;
return t.startsWith("@") || t.startsWith("v-on:");
}, print: ua }, { test(e) {
let t = e.node.fullName;
return t.startsWith(":") || t.startsWith(".") || t.startsWith("v-bind:");
}, print: pa }, { test: (e) => e.node.fullName.startsWith("v-"), print: Vn }].map(({ test: e, print: t }) => ({ test: (r, n) => n.parser === "vue" && e(r, n), print: t }));
Un = ca, ha = [{ test: Dn, print: Rn }, { test: Mn, print: Bn }, { test: kn, print: xn }, { test: bn, print: wn }, { test: An, print: Nn }, ...Un, ...Tn].map(({ test: e, print: t }) => ({ test: e, print: fa(t) }));
Wn = ma, K = (e) => e.sourceSpan.start.offset, J = (e) => e.sourceSpan.end.offset;
Gn = "<!doctype";
Nt = Ca, va = /* @__PURE__ */ new Set(["if", "else if", "for", "switch", "case"]);
$n = Ta, Qe = null;
ba = 10;
for (let e = 0; e <= ba; e++) Je();
Yn = wa, I = [["children"], []], jn = { root: I[0], element: ["attrs", "children"], ieConditionalComment: I[0], ieConditionalStartComment: I[1], ieConditionalEndComment: I[1], interpolation: I[0], text: I[0], docType: I[1], comment: I[1], attribute: I[1], cdata: I[1], angularControlFlowBlock: ["children", "parameters"], angularControlFlowBlockParameters: I[0], angularControlFlowBlockParameter: I[1], angularLetDeclaration: ["init"], angularLetDeclarationInitializer: I[1], angularIcuExpression: ["cases"], angularIcuCase: ["expression"] }, ka = Yn(jn, "kind"), Xn = ka, Kn = "format", Qn = /^\s*<!--\s*@(?:noformat|noprettier)\s*-->/u, Jn = /^\s*<!--\s*@(?:format|prettier)\s*-->/u, Zn = (e) => Jn.test(e), ei = (e) => Qn.test(e), ti = (e) => `<!-- @${Kn} -->
${e}`, ri = /* @__PURE__ */ new Map([["if", /* @__PURE__ */ new Set(["else if", "else"])], ["else if", /* @__PURE__ */ new Set(["else if", "else"])], ["for", /* @__PURE__ */ new Set(["empty"])], ["defer", /* @__PURE__ */ new Set(["placeholder", "error", "loading"])], ["placeholder", /* @__PURE__ */ new Set(["placeholder", "error", "loading"])], ["error", /* @__PURE__ */ new Set(["placeholder", "error", "loading"])], ["loading", /* @__PURE__ */ new Set(["placeholder", "error", "loading"])]]);
xa = (e) => e?.kind === "angularControlFlowBlock" && (e.name === "case" || e.name === "default"), ya = (e) => e?.kind === "angularControlFlowBlock" && e.name === "default never";
R = (function(e) {
return e[e.RAW_TEXT = 0] = "RAW_TEXT", e[e.ESCAPABLE_RAW_TEXT = 1] = "ESCAPABLE_RAW_TEXT", e[e.PARSABLE_DATA = 2] = "PARSABLE_DATA", e;
})({});
cr = { name: "custom-elements" }, ur = { name: "no-errors-schema" }, Z = (function(e) {
return e[e.NONE = 0] = "NONE", e[e.HTML = 1] = "HTML", e[e.STYLE = 2] = "STYLE", e[e.SCRIPT = 3] = "SCRIPT", e[e.URL = 4] = "URL", e[e.RESOURCE_URL = 5] = "RESOURCE_URL", e[e.ATTRIBUTE_NO_BINDING = 6] = "ATTRIBUTE_NO_BINDING", e;
})({}), La = /-+([a-z0-9])/g;
pi = class {
}, Pa = "boolean", Oa = "number", Da = "string", Ia = "object", Ra = ["[Element]|textContent,%ariaActiveDescendantElement,%ariaAtomic,%ariaAutoComplete,%ariaBusy,%ariaChecked,%ariaColCount,%ariaColIndex,%ariaColIndexText,%ariaColSpan,%ariaControlsElements,%ariaCurrent,%ariaDescribedByElements,%ariaDescription,%ariaDetailsElements,%ariaDisabled,%ariaErrorMessageElements,%ariaExpanded,%ariaFlowToElements,%ariaHasPopup,%ariaHidden,%ariaInvalid,%ariaKeyShortcuts,%ariaLabel,%ariaLabelledByElements,%ariaLevel,%ariaLive,%ariaModal,%ariaMultiLine,%ariaMultiSelectable,%ariaOrientation,%ariaOwnsElements,%ariaPlaceholder,%ariaPosInSet,%ariaPressed,%ariaReadOnly,%ariaRelevant,%ariaRequired,%ariaRoleDescription,%ariaRowCount,%ariaRowIndex,%ariaRowIndexText,%ariaRowSpan,%ariaSelected,%ariaSetSize,%ariaSort,%ariaValueMax,%ariaValueMin,%ariaValueNow,%ariaValueText,%classList,className,elementTiming,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*fullscreenchange,*fullscreenerror,*search,*webkitfullscreenchange,*webkitfullscreenerror,outerHTML,%part,#scrollLeft,#scrollTop,slot,*message,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored", "[HTMLElement]^[Element]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,!inert,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy", "abbr,address,article,aside,b,bdi,bdo,cite,content,code,dd,dfn,dt,em,figcaption,figure,footer,header,hgroup,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,search,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,autocapitalize,!autofocus,contentEditable,dir,!draggable,enterKeyHint,!hidden,innerText,inputMode,lang,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate,virtualKeyboardPolicy", "media^[HTMLElement]|!autoplay,!controls,%controlsList,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,*waitingforkey,#playbackRate,preload,!preservesPitch,src,%srcObject,#volume", ":svg:^[HTMLElement]|!autofocus,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,%style,#tabIndex", ":svg:graphics^:svg:|", ":svg:animation^:svg:|*begin,*end,*repeat", ":svg:geometry^:svg:|", ":svg:componentTransferFunction^:svg:|", ":svg:gradient^:svg:|", ":svg:textContent^:svg:graphics|", ":svg:textPositioning^:svg:textContent|", "a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,%relList,rev,search,shape,target,text,type,username", "area^[HTMLElement]|alt,coords,download,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,rel,%relList,search,shape,target,username", "audio^media|", "br^[HTMLElement]|clear", "base^[HTMLElement]|href,target", "body^[HTMLElement]|aLink,background,bgColor,link,*afterprint,*beforeprint,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*messageerror,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,text,vLink", "button^[HTMLElement]|!disabled,formAction,formEnctype,formMethod,!formNoValidate,formTarget,name,type,value", "canvas^[HTMLElement]|#height,#width", "content^[HTMLElement]|select", "dl^[HTMLElement]|!compact", "data^[HTMLElement]|value", "datalist^[HTMLElement]|", "details^[HTMLElement]|!open", "dialog^[HTMLElement]|!open,returnValue", "dir^[HTMLElement]|!compact", "div^[HTMLElement]|align", "embed^[HTMLElement]|align,height,name,src,type,width", "fieldset^[HTMLElement]|!disabled,name", "font^[HTMLElement]|color,face,size", "form^[HTMLElement]|acceptCharset,action,autocomplete,encoding,enctype,method,name,!noValidate,target", "frame^[HTMLElement]|frameBorder,longDesc,marginHeight,marginWidth,name,!noResize,scrolling,src", "frameset^[HTMLElement]|cols,*afterprint,*beforeprint,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*messageerror,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,rows", "geolocation^[HTMLElement]|accuracymode,!autolocate,*location,*promptaction,*promptdismiss,*validationstatuschange,!watch", "hr^[HTMLElement]|align,color,!noShade,size,width", "head^[HTMLElement]|", "h1,h2,h3,h4,h5,h6^[HTMLElement]|align", "html^[HTMLElement]|version", "iframe^[HTMLElement]|align,allow,!allowFullscreen,!allowPaymentRequest,csp,frameBorder,height,loading,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width", "img^[HTMLElement]|align,alt,border,%crossOrigin,decoding,#height,#hspace,!isMap,loading,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width", "input^[HTMLElement]|accept,align,alt,autocomplete,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width", "li^[HTMLElement]|type,#value", "label^[HTMLElement]|htmlFor", "legend^[HTMLElement]|align", "link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,imageSizes,imageSrcset,integrity,media,referrerPolicy,rel,%relList,rev,%sizes,target,type", "map^[HTMLElement]|name", "marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width", "menu^[HTMLElement]|!compact", "meta^[HTMLElement]|content,httpEquiv,media,name,scheme", "meter^[HTMLElement]|#high,#low,#max,#min,#optimum,#value", "ins,del^[HTMLElement]|cite,dateTime", "ol^[HTMLElement]|!compact,!reversed,#start,type", "object^[HTMLElement]|align,archive,border,code,codeBase,codeType,data,!declare,height,#hspace,name,standby,type,useMap,#vspace,width", "optgroup^[HTMLElement]|!disabled,label", "option^[HTMLElement]|!defaultSelected,!disabled,label,!selected,text,value", "output^[HTMLElement]|defaultValue,%htmlFor,name,value", "p^[HTMLElement]|align", "param^[HTMLElement]|name,type,value,valueType", "picture^[HTMLElement]|", "pre^[HTMLElement]|#width", "progress^[HTMLElement]|#max,#value", "q,blockquote,cite^[HTMLElement]|", "script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,!noModule,%referrerPolicy,src,text,type", "select^[HTMLElement]|autocomplete,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value", "selectedcontent^[HTMLElement]|", "slot^[HTMLElement]|name", "source^[HTMLElement]|#height,media,sizes,src,srcset,type,#width", "span^[HTMLElement]|", "style^[HTMLElement]|!disabled,media,type", "search^[HTMLELement]|", "caption^[HTMLElement]|align", "th,td^[HTMLElement]|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width", "col,colgroup^[HTMLElement]|align,ch,chOff,#span,vAlign,width", "table^[HTMLElement]|align,bgColor,border,%caption,cellPadding,cellSpacing,frame,rules,summary,%tFoot,%tHead,width", "tr^[HTMLElement]|align,bgColor,ch,chOff,vAlign", "tfoot,thead,tbody^[HTMLElement]|align,ch,chOff,vAlign", "template^[HTMLElement]|", "textarea^[HTMLElement]|autocomplete,#cols,defaultValue,dirName,!disabled,#maxLength,#minLength,name,placeholder,!readOnly,!required,#rows,selectionDirection,#selectionEnd,#selectionStart,value,wrap", "time^[HTMLElement]|dateTime", "title^[HTMLElement]|text", "track^[HTMLElement]|!default,kind,label,src,srclang", "ul^[HTMLElement]|!compact,type", "unknown^[HTMLElement]|", "video^media|!disablePictureInPicture,#height,*enterpictureinpicture,*leavepictureinpicture,!playsInline,poster,#width", ":svg:a^:svg:graphics|", ":svg:animate^:svg:animation|", ":svg:animateMotion^:svg:animation|", ":svg:animateTransform^:svg:animation|", ":svg:circle^:svg:geometry|", ":svg:clipPath^:svg:graphics|", ":svg:defs^:svg:graphics|", ":svg:desc^:svg:|", ":svg:discard^:svg:|", ":svg:ellipse^:svg:geometry|", ":svg:feBlend^:svg:|", ":svg:feColorMatrix^:svg:|", ":svg:feComponentTransfer^:svg:|", ":svg:feComposite^:svg:|", ":svg:feConvolveMatrix^:svg:|", ":svg:feDiffuseLighting^:svg:|", ":svg:feDisplacementMap^:svg:|", ":svg:feDistantLight^:svg:|", ":svg:feDropShadow^:svg:|", ":svg:feFlood^:svg:|", ":svg:feFuncA^:svg:componentTransferFunction|", ":svg:feFuncB^:svg:componentTransferFunction|", ":svg:feFuncG^:svg:componentTransferFunction|", ":svg:feFuncR^:svg:componentTransferFunction|", ":svg:feGaussianBlur^:svg:|", ":svg:feImage^:svg:|", ":svg:feMerge^:svg:|", ":svg:feMergeNode^:svg:|", ":svg:feMorphology^:svg:|", ":svg:feOffset^:svg:|", ":svg:fePointLight^:svg:|", ":svg:feSpecularLighting^:svg:|", ":svg:feSpotLight^:svg:|", ":svg:feTile^:svg:|", ":svg:feTurbulence^:svg:|", ":svg:filter^:svg:|", ":svg:foreignObject^:svg:graphics|", ":svg:g^:svg:graphics|", ":svg:image^:svg:graphics|decoding", ":svg:line^:svg:geometry|", ":svg:linearGradient^:svg:gradient|", ":svg:mpath^:svg:|", ":svg:marker^:svg:|", ":svg:mask^:svg:|", ":svg:metadata^:svg:|", ":svg:path^:svg:geometry|", ":svg:pattern^:svg:|", ":svg:polygon^:svg:geometry|", ":svg:polyline^:svg:geometry|", ":svg:radialGradient^:svg:gradient|", ":svg:rect^:svg:geometry|", ":svg:svg^:svg:graphics|#currentScale,#zoomAndPan", ":svg:script^:svg:|type", ":svg:set^:svg:animation|", ":svg:stop^:svg:|", ":svg:style^:svg:|!disabled,media,title,type", ":svg:switch^:svg:graphics|", ":svg:symbol^:svg:|", ":svg:tspan^:svg:textPositioning|", ":svg:text^:svg:textPositioning|", ":svg:textPath^:svg:textContent|", ":svg:title^:svg:|", ":svg:use^:svg:graphics|", ":svg:view^:svg:|#zoomAndPan", "data^[HTMLElement]|value", "keygen^[HTMLElement]|!autofocus,challenge,!disabled,form,keytype,name", "menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default", "summary^[HTMLElement]|", "time^[HTMLElement]|dateTime", ":svg:cursor^:svg:|", ":math:^[HTMLElement]|!autofocus,nonce,*abort,*animationend,*animationiteration,*animationstart,*auxclick,*beforeinput,*beforematch,*beforetoggle,*beforexrselect,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contentvisibilityautostatechange,*contextlost,*contextmenu,*contextrestored,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*formdata,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*paste,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerrawupdate,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*scrollend,*securitypolicyviolation,*seeked,*seeking,*select,*selectionchange,*selectstart,*slotchange,*stalled,*submit,*suspend,*timeupdate,*toggle,*transitioncancel,*transitionend,*transitionrun,*transitionstart,*volumechange,*waiting,*webkitanimationend,*webkitanimationiteration,*webkitanimationstart,*webkittransitionend,*wheel,%style,#tabIndex", ":math:math^:math:|", ":math:maction^:math:|", ":math:menclose^:math:|", ":math:merror^:math:|", ":math:mfenced^:math:|", ":math:mfrac^:math:|", ":math:mi^:math:|", ":math:mmultiscripts^:math:|", ":math:mn^:math:|", ":math:mo^:math:|", ":math:mover^:math:|", ":math:mpadded^:math:|", ":math:mphantom^:math:|", ":math:mroot^:math:|", ":math:mrow^:math:|", ":math:ms^:math:|", ":math:mspace^:math:|", ":math:msqrt^:math:|", ":math:mstyle^:math:|", ":math:msub^:math:|", ":math:msubsup^:math:|", ":math:msup^:math:|", ":math:mtable^:math:|", ":math:mtd^:math:|", ":math:mtext^:math:|", ":math:mtr^:math:|", ":math:munder^:math:|", ":math:munderover^:math:|", ":math:semantics^:math:|"], hi = new Map(Object.entries({ class: "className", for: "htmlFor", formaction: "formAction", innerHtml: "innerHTML", readonly: "readOnly", tabindex: "tabIndex", "aria-activedescendant": "ariaActiveDescendantElement", "aria-atomic": "ariaAtomic", "aria-autocomplete": "ariaAutoComplete", "aria-busy": "ariaBusy", "aria-checked": "ariaChecked", "aria-colcount": "ariaColCount", "aria-colindex": "ariaColIndex", "aria-colindextext": "ariaColIndexText", "aria-colspan": "ariaColSpan", "aria-controls": "ariaControlsElements", "aria-current": "ariaCurrent", "aria-describedby": "ariaDescribedByElements", "aria-description": "ariaDescription", "aria-details": "ariaDetailsElements", "aria-disabled": "ariaDisabled", "aria-errormessage": "ariaErrorMessageElements", "aria-expanded": "ariaExpanded", "aria-flowto": "ariaFlowToElements", "aria-haspopup": "ariaHasPopup", "aria-hidden": "ariaHidden", "aria-invalid": "ariaInvalid", "aria-keyshortcuts": "ariaKeyShortcuts", "aria-label": "ariaLabel", "aria-labelledby": "ariaLabelledByElements", "aria-level": "ariaLevel", "aria-live": "ariaLive", "aria-modal": "ariaModal", "aria-multiline": "ariaMultiLine", "aria-multiselectable": "ariaMultiSelectable", "aria-orientation": "ariaOrientation", "aria-owns": "ariaOwnsElements", "aria-placeholder": "ariaPlaceholder", "aria-posinset": "ariaPosInSet", "aria-pressed": "ariaPressed", "aria-readonly": "ariaReadOnly", "aria-required": "ariaRequired", "aria-roledescription": "ariaRoleDescription", "aria-rowcount": "ariaRowCount", "aria-rowindex": "ariaRowIndex", "aria-rowindextext": "ariaRowIndexText", "aria-rowspan": "ariaRowSpan", "aria-selected": "ariaSelected", "aria-setsize": "ariaSetSize", "aria-sort": "ariaSort", "aria-valuemax": "ariaValueMax", "aria-valuemin": "ariaValueMin", "aria-valuenow": "ariaValueNow", "aria-valuetext": "ariaValueText" })), Ma = Array.from(hi).reduce((e, [t, r]) => (e.set(t, r), e), /* @__PURE__ */ new Map()), mi = class extends pi {
_schema = /* @__PURE__ */ new Map();
_eventSchema = /* @__PURE__ */ new Map();
constructor() {
super(), Ra.forEach((e) => {
let t = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Set(), [n, i] = e.split("|"), s = i.split(","), [a, o] = n.split("^");
a.split(",").forEach((u) => {
this._schema.set(u.toLowerCase(), t), this._eventSchema.set(u.toLowerCase(), r);
});
let c = o && this._schema.get(o.toLowerCase());
if (c) {
for (let [u, p] of c) t.set(u, p);
for (let u of this._eventSchema.get(o.toLowerCase())) r.add(u);
}
s.forEach((u) => {
if (u.length > 0) switch (u[0]) {
case "*":
r.add(u.substring(1));
break;
case "!":
t.set(u.substring(1), Pa);
break;
case "#":
t.set(u.substring(1), Oa);
break;
case "%":
t.set(u.substring(1), Ia);
break;
default:
t.set(u, Da);
}
});
});
}
hasProperty(e, t, r) {
if (r.some((n) => n.name === ur.name)) return !0;
if (e.indexOf("-") > -1) {
if (or(e) || lr(e)) return !1;
if (r.some((n) => n.name === cr.name)) return !0;
}
return (this._schema.get(e.toLowerCase()) || this._schema.get("unknown")).has(t);
}
hasElement(e, t) {
return t.some((r) => r.name === ur.name) || e.indexOf("-") > -1 && (or(e) || lr(e) || t.some((r) => r.name === cr.name)) ? !0 : this._schema.has(e.toLowerCase());
}
securityContext(e, t, r) {
r && (t = this.getMappedPropName(t)), e = e.toLowerCase(), t = t.toLowerCase();
let n = pr()[e + "|" + t];
return n || (n = pr()["*|" + t], n || Z.NONE);
}
getMappedPropName(e) {
return hi.get(e) ?? e;
}
getDefaultComponentElementName() {
return "ng-component";
}
validateProperty(e) {
return e.toLowerCase().startsWith("on") ? { error: !0, msg: `Binding to event property '${e}' is disallowed for security reasons, please use (${e.slice(2)})=...
If '${e}' is a directive input, make sure the directive is imported by the current module.` } : { error: !1 };
}
validateAttribute(e) {
return e.toLowerCase().startsWith("on") ? { error: !0, msg: `Binding to event attribute '${e}' is disallowed for security reasons, please use (${e.slice(2)})=...` } : { error: !1 };
}
allKnownElementNames() {
return Array.from(this._schema.keys());
}
allKnownAttributesOfElement(e) {
let t = this._schema.get(e.toLowerCase()) || this._schema.get("unknown");
return Array.from(t.keys()).map((r) => Ma.get(r) ?? r);
}
allKnownEventsOfElement(e) {
return Array.from(this._eventSchema.get(e.toLowerCase()) ?? []);
}
normalizeAnimationStyleProperty(e) {
return ui(e);
}
normalizeAnimationStyleValue(e, t, r) {
let n = "", i = r.toString().trim(), s = null;
if (Ba(e) && r !== 0 && r !== "0") if (typeof r == "number") n = "px";
else {
let a = r.match(/^[+-]?[\d\.]+([a-z]*)$/);
a && a[1].length == 0 && (s = `Please provide a CSS unit value for ${t}:${r}`);
}
return { error: s, value: i + n };
}
};
f = class {
closedByChildren = {};
contentType;
closedByParent = !1;
implicitNamespacePrefix;
isVoid;
ignoreFirstLf;
canSelfClose;
preventNamespaceInheritance;
constructor({ closedByChildren: e, implicitNamespacePrefix: t, contentType: r = R.PARSABLE_DATA, closedByParent: n = !1, isVoid: i = !1, ignoreFirstLf: s = !1, preventNamespaceInheritance: a = !1, canSelfClose: o = !1 } = {}) {
e && e.length > 0 && e.forEach((c) => this.closedByChildren[c] = !0), this.isVoid = i, this.closedByParent = n || i, this.implicitNamespacePrefix = t || null, this.contentType = r, this.ignoreFirstLf = s, this.preventNamespaceInheritance = a, this.canSelfClose = o ?? i;
}
isClosedByChild(e) {
return this.isVoid || e.toLowerCase() in this.closedByChildren;
}
getContentType(e) {
return typeof this.contentType == "object" ? (e === void 0 ? void 0 : this.contentType[e]) ?? this.contentType.default : this.contentType;
}
};
De = class gi {
constructor(t, r, n, i) {
this.file = t, this.offset = r, this.line = n, this.col = i;
}
toString() {
return this.offset != null ? `${this.file.url}@${this.line}:${this.col}` : this.file.url;
}
moveBy(t) {
let r = this.file.content, n = r.length, i = this.offset, s = this.line, a = this.col;
for (; i > 0 && t < 0; ) if (i--, t++, r.charCodeAt(i) == 10) {
s--;
let o = r.substring(0, i - 1).lastIndexOf(`
`);
a = o > 0 ? i - o : i;
} else a--;
for (; i < n && t > 0; ) {
let o = r.charCodeAt(i);
i++, t--, o == 10 ? (s++, a = 0) : a++;
}
return new gi(this.file, i, s, a);
}
getContext(t, r) {
let n = this.file.content, i = this.offset;
if (i != null) {
i > n.length - 1 && (i = n.length - 1);
let s = i, a = 0, o = 0;
for (; a < t && i > 0 && (i--, a++, !(n[i] == `
` && ++o == r)); ) ;
for (a = 0, o = 0; a < t && s < n.length - 1 && (s++, a++, !(n[s] == `
` && ++o == r)); ) ;
return { before: n.substring(i, this.offset), after: n.substring(this.offset, s + 1) };
}
return null;
}
}, nt = class {
constructor(e, t) {
this.content = e, this.url = t;
}
}, h = class {
constructor(e, t, r = e, n = null) {
this.start = e, this.end = t, this.fullStart = r, this.details = n;
}
toString() {
return this.start.file.content.substring(this.start.offset, this.end.offset);
}
}, di = (function(e) {
return e[e.WARNING = 0] = "WARNING", e[e.ERROR = 1] = "ERROR", e;
})({}), ee = class extends Error {
constructor(e, t, r = di.ERROR, n) {
super(t), this.span = e, this.msg = t, this.level = r, this.relatedError = n, Object.setPrototypeOf(this, new.target.prototype);
}
contextualMessage() {
let e = this.span.start.getContext(100, 3);
return e ? `${this.msg} ("${e.before}[${di[this.level]} ->]${e.after}")` : this.msg;
}
toString() {
let e = this.span.details ? `, ${this.span.details}` : "";
return `${this.contextualMessage()}: ${this.span.start}${e}`;
}
}, de = class {
constructor(e, t) {
this.sourceSpan = e, this.i18n = t;
}
}, _i = class extends de {
constructor(e, t, r, n) {
super(t, n), this.value = e, this.tokens = r;
}
visit(e, t) {
return e.visitText(this, t);
}
kind = "text";
}, Si = class extends de {
constructor(e, t, r, n) {
super(t, n), this.value = e, this.tokens = r;
}
visit(e, t) {
return e.visitCdata(this, t);
}
kind = "cdata";
}, Ei = class extends de {
constructor(e, t, r, n, i, s) {
super(n, s), this.switchValue = e, this.type = t, this.cases = r, this.switchValueSourceSpan = i;
}
visit(e, t) {
return e.visitExpansion(this, t);
}
kind = "expansion";
}, Ci = class {
constructor(e, t, r, n, i) {
this.value = e, this.expression = t, this.sourceSpan = r, this.valueSourceSpan = n, this.expSourceSpan = i;
}
visit(e, t) {
return e.visitExpansionCase(this, t);
}
kind = "expansionCase";
}, vi = class extends de {
constructor(e, t, r, n, i, s, a) {
super(r, a), this.name = e, this.value = t, this.keySpan = n, this.valueSpan = i, this.valueTokens = s;
}
visit(e, t) {
return e.visitAttribute(this, t);
}
kind = "attribute";
get nameSpan() {
return this.keySpan;
}
}, te = class extends de {
constructor(e, t, r, n, i, s, a, o = null, c = null, u, p) {
super(s, p), this.name = e, this.attrs = t, this.directives = r, this.children = n, this.isSelfClosing = i, this.startSourceSpan = a, this.endSourceSpan = o, this.nameSpan = c, this.isVoid = u;
}
visit(e, t) {
return e.visitElement(this, t);
}
kind = "element";
}, Ti = class {
constructor(e, t) {
this.value = e, this.sourceSpan = t;
}
visit(e, t) {
return e.visitComment(this, t);
}
kind = "comment";
}, bi = class {
constructor(e, t) {
this.value = e, this.sourceSpan = t;
}
visit(e, t) {
return e.visitDocType(this, t);
}
kind = "docType";
}, ge = class extends de {
constructor(e, t, r, n, i, s, a = null, o) {
super(n, o), this.name = e, this.parameters = t, this.children = r, this.nameSpan = i, this.startSourceSpan = s, this.endSourceSpan = a;
}
visit(e, t) {
return e.visitBlock(this, t);
}
kind = "block";
}, G = class extends de {
constructor(e, t, r, n, i, s, a, o, c, u = null, p) {
super(o, p), this.componentName = e, this.tagName = t, this.fullName = r, this.attrs = n, this.directives = i, this.children = s, this.isSelfClosing = a, this.startSourceSpan = c, this.endSourceSpan = u;
}
visit(e, t) {
return e.visitComponent(this, t);
}
kind = "component";
}, wi = class {
constructor(e, t, r, n, i = null) {
this.name = e, this.attrs = t, this.sourceSpan = r, this.startSourceSpan = n, this.endSourceSpan = i;
}
visit(e, t) {
return e.visitDirective(this, t);
}
kind = "directive";
}, hr = class {
constructor(e, t) {
this.expression = e, this.sourceSpan = t;
}
visit(e, t) {
return e.visitBlockParameter(this, t);
}
kind = "blockParameter";
startSourceSpan = null;
endSourceSpan = null;
}, mr = class {
constructor(e, t, r, n, i) {
this.name = e, this.value = t, this.sourceSpan = r, this.nameSpan = n, this.valueSpan = i;
}
visit(e, t) {
return e.visitLetDeclaration(this, t);
}
kind = "letDeclaration";
startSourceSpan = null;
endSourceSpan = null;
};
fr = class {
constructor() {
}
visitElement(e, t) {
this.visitChildren(t, (r) => {
r(e.attrs), r(e.directives), r(e.children);
});
}
visitAttribute(e, t) {
}
visitText(e, t) {
}
visitCdata(e, t) {
}
visitComment(e, t) {
}
visitDocType(e, t) {
}
visitExpansion(e, t) {
return this.visitChildren(t, (r) => {
r(e.cases);
});
}
visitExpansionCase(e, t) {
}
visitBlock(e, t) {
this.visitChildren(t, (r) => {
r(e.parameters), r(e.children);
});
}
visitBlockParameter(e, t) {
}
visitLetDeclaration(e, t) {
}
visitComponent(e, t) {
this.visitChildren(t, (r) => {
r(e.attrs), r(e.children);
});
}
visitDirective(e, t) {
this.visitChildren(t, (r) => {
r(e.attrs);
});
}
visitChildren(e, t) {
let r = [], n = this;
function i(s) {
s && r.push(Ot(n, s, e));
}
return t(i), Array.prototype.concat.apply([], r);
}
}, _e = { AElig: "\xC6", AMP: "&", amp: "&", Aacute: "\xC1", Abreve: "\u0102", Acirc: "\xC2", Acy: "\u0410", Afr: "\u{1D504}", Agrave: "\xC0", Alpha: "\u0391", Amacr: "\u0100", And: "\u2A53", Aogon: "\u0104", Aopf: "\u{1D538}", ApplyFunction: "\u2061", af: "\u2061", Aring: "\xC5", angst: "\xC5", Ascr: "\u{1D49C}", Assign: "\u2254", colone: "\u2254", coloneq: "\u2254", Atilde: "\xC3", Auml: "\xC4", Backslash: "\u2216", setminus: "\u2216", setmn: "\u2216", smallsetminus: "\u2216", ssetmn: "\u2216", Barv: "\u2AE7", Barwed: "\u2306", doublebarwedge: "\u2306", Bcy: "\u0411", Because: "\u2235", becaus: "\u2235", because: "\u2235", Bernoullis: "\u212C", Bscr: "\u212C", bernou: "\u212C", Beta: "\u0392", Bfr: "\u{1D505}", Bopf: "\u{1D539}", Breve: "\u02D8", breve: "\u02D8", Bumpeq: "\u224E", HumpDownHump: "\u224E", bump: "\u224E", CHcy: "\u0427", COPY: "\xA9", copy: "\xA9", Cacute: "\u0106", Cap: "\u22D2", CapitalDifferentialD: "\u2145", DD: "\u2145", Cayleys: "\u212D", Cfr: "\u212D", Ccaron: "\u010C", Ccedil: "\xC7", Ccirc: "\u0108", Cconint: "\u2230", Cdot: "\u010A", Cedilla: "\xB8", cedil: "\xB8", CenterDot: "\xB7", centerdot: "\xB7", middot: "\xB7", Chi: "\u03A7", CircleDot: "\u2299", odot: "\u2299", CircleMinus: "\u2296", ominus: "\u2296", CirclePlus: "\u2295", oplus: "\u2295", CircleTimes: "\u2297", otimes: "\u2297", ClockwiseContourIntegral: "\u2232", cwconint: "\u2232", CloseCurlyDoubleQuote: "\u201D", rdquo: "\u201D", rdquor: "\u201D", CloseCurlyQuote: "\u2019", rsquo: "\u2019", rsquor: "\u2019", Colon: "\u2237", Proportion: "\u2237", Colone: "\u2A74", Congruent: "\u2261", equiv: "\u2261", Conint: "\u222F", DoubleContourIntegral: "\u222F", ContourIntegral: "\u222E", conint: "\u222E", oint: "\u222E", Copf: "\u2102", complexes: "\u2102", Coproduct: "\u2210", coprod: "\u2210", CounterClockwiseContourIntegral: "\u2233", awconint: "\u2233", Cross: "\u2A2F", Cscr: "\u{1D49E}", Cup: "\u22D3", CupCap: "\u224D", asympeq: "\u224D", DDotrahd: "\u2911", DJcy: "\u0402", DScy: "\u0405", DZcy: "\u040F", Dagger: "\u2021", ddagger: "\u2021", Darr: "\u21A1", Dashv: "\u2AE4", DoubleLeftTee: "\u2AE4", Dcaron: "\u010E", Dcy: "\u0414", Del: "\u2207", nabla: "\u2207", Delta: "\u0394", Dfr: "\u{1D507}", DiacriticalAcute: "\xB4", acute: "\xB4", DiacriticalDot: "\u02D9", dot: "\u02D9", DiacriticalDoubleAcute: "\u02DD", dblac: "\u02DD", DiacriticalGrave: "`", grave: "`", DiacriticalTilde: "\u02DC", tilde: "\u02DC", Diamond: "\u22C4", diam: "\u22C4", diamond: "\u22C4", DifferentialD: "\u2146", dd: "\u2146", Dopf: "\u{1D53B}", Dot: "\xA8", DoubleDot: "\xA8", die: "\xA8", uml: "\xA8", DotDot: "\u20DC", DotEqual: "\u2250", doteq: "\u2250", esdot: "\u2250", DoubleDownArrow: "\u21D3", Downarrow: "\u21D3", dArr: "\u21D3", DoubleLeftArrow: "\u21D0", Leftarrow: "\u21D0", lArr: "\u21D0", DoubleLeftRightArrow: "\u21D4", Leftrightarrow: "\u21D4", hArr: "\u21D4", iff: "\u21D4", DoubleLongLeftArrow: "\u27F8", Longleftarrow: "\u27F8", xlArr: "\u27F8", DoubleLongLeftRightArrow: "\u27FA", Longleftrightarrow: "\u27FA", xhArr: "\u27FA", DoubleLongRightArrow: "\u27F9", Longrightarrow: "\u27F9", xrArr: "\u27F9", DoubleRightArrow: "\u21D2", Implies: "\u21D2", Rightarrow: "\u21D2", rArr: "\u21D2", DoubleRightTee: "\u22A8", vDash: "\u22A8", DoubleUpArrow: "\u21D1", Uparrow: "\u21D1", uArr: "\u21D1", DoubleUpDownArrow: "\u21D5", Updownarrow: "\u21D5", vArr: "\u21D5", DoubleVerticalBar: "\u2225", par: "\u2225", parallel: "\u2225", shortparallel: "\u2225", spar: "\u2225", DownArrow: "\u2193", ShortDownArrow: "\u2193", darr: "\u2193", downarrow: "\u2193", DownArrowBar: "\u2913", DownArrowUpArrow: "\u21F5", duarr: "\u21F5", DownBreve: "\u0311", DownLeftRightVector: "\u2950", DownLeftTeeVector: "\u295E", DownLeftVector: "\u21BD", leftharpoondown: "\u21BD", lhard: "\u21BD", DownLeftVectorBar: "\u2956", DownRightTeeVector: "\u295F", DownRightVector: "\u21C1", rhard: "\u21C1", rightharpoondown: "\u21C1", DownRightVectorBar: "\u2957", DownTee: "\u22A4", top: "\u22A4", DownTeeArrow: "\u21A7", mapstodown: "\u21A7", Dscr: "\u{1D49F}", Dstrok: "\u0110", ENG: "\u014A", ETH: "\xD0", Eacute: "\xC9", Ecaron: "\u011A", Ecirc: "\xCA", Ecy: "\u042D", Edot: "\u0116", Efr: "\u{1D508}", Egrave: "\xC8", Element: "\u2208", in: "\u2208", isin: "\u2208", isinv: "\u2208", Emacr: "\u0112", EmptySmallSquare: "\u25FB", EmptyVerySmallSquare: "\u25AB", Eogon: "\u0118", Eopf: "\u{1D53C}", Epsilon: "\u0395", Equal: "\u2A75", EqualTilde: "\u2242", eqsim: "\u2242", esim: "\u2242", Equilibrium: "\u21CC", rightleftharpoons: "\u21CC", rlhar: "\u21CC", Escr: "\u2130", expectation: "\u2130", Esim: "\u2A73", Eta: "\u0397", Euml: "\xCB", Exists: "\u2203", exist: "\u2203", ExponentialE: "\u2147", ee: "\u2147", exponentiale: "\u2147", Fcy: "\u0424", Ffr: "\u{1D509}", FilledSmallSquare: "\u25FC", FilledVerySmallSquare: "\u25AA", blacksquare: "\u25AA", squarf: "\u25AA", squf: "\u25AA", Fopf: "\u{1D53D}", ForAll: "\u2200", forall: "\u2200", Fouriertrf: "\u2131", Fscr: "\u2131", GJcy: "\u0403", GT: ">", gt: ">", Gamma: "\u0393", Gammad: "\u03DC", Gbreve: "\u011E", Gcedil: "\u0122", Gcirc: "\u011C", Gcy: "\u0413", Gdot: "\u0120", Gfr: "\u{1D50A}", Gg: "\u22D9", ggg: "\u22D9", Gopf: "\u{1D53E}", GreaterEqual: "\u2265", ge: "\u2265", geq: "\u2265", GreaterEqualLess: "\u22DB", gel: "\u22DB", gtreqless: "\u22DB", GreaterFullEqual: "\u2267", gE: "\u2267", geqq: "\u2267", GreaterGreater: "\u2AA2", GreaterLess: "\u2277", gl: "\u2277", gtrless: "\u2277", GreaterSlantEqual: "\u2A7E", geqslant: "\u2A7E", ges: "\u2A7E", GreaterTilde: "\u2273", gsim: "\u2273", gtrsim: "\u2273", Gscr: "\u{1D4A2}", Gt: "\u226B", NestedGreaterGreater: "\u226B", gg: "\u226B", HARDcy: "\u042A", Hacek: "\u02C7", caron: "\u02C7", Hat: "^", Hcirc: "\u0124", Hfr: "\u210C", Poincareplane: "\u210C", HilbertSpace: "\u210B", Hscr: "\u210B", hamilt: "\u210B", Hopf: "\u210D", quaternions: "\u210D", HorizontalLine: "\u2500", boxh: "\u2500", Hstrok: "\u0126", HumpEqual: "\u224F", bumpe: "\u224F", bumpeq: "\u224F", IEcy: "\u0415", IJlig: "\u0132", IOcy: "\u0401", Iacute: "\xCD", Icirc: "\xCE", Icy: "\u0418", Idot: "\u0130", Ifr: "\u2111", Im: "\u2111", image: "\u2111", imagpart: "\u2111", Igrave: "\xCC", Imacr: "\u012A", ImaginaryI: "\u2148", ii: "\u2148", Int: "\u222C", Integral: "\u222B", int: "\u222B", Intersection: "\u22C2", bigcap: "\u22C2", xcap: "\u22C2", InvisibleComma: "\u2063", ic: "\u2063", InvisibleTimes: "\u2062", it: "\u2062", Iogon: "\u012E", Iopf: "\u{1D540}", Iota: "\u0399", Iscr: "\u2110", imagline: "\u2110", Itilde: "\u0128", Iukcy: "\u0406", Iuml: "\xCF", Jcirc: "\u0134", Jcy: "\u0419", Jfr: "\u{1D50D}", Jopf: "\u{1D541}", Jscr: "\u{1D4A5}", Jsercy: "\u0408", Jukcy: "\u0404", KHcy: "\u0425", KJcy: "\u040C", Kappa: "\u039A", Kcedil: "\u0136", Kcy: "\u041A", Kfr: "\u{1D50E}", Kopf: "\u{1D542}", Kscr: "\u{1D4A6}", LJcy: "\u0409", LT: "<", lt: "<", Lacute: "\u0139", Lambda: "\u039B", Lang: "\u27EA", Laplacetrf: "\u2112", Lscr: "\u2112", lagran: "\u2112", Larr: "\u219E", twoheadleftarrow: "\u219E", Lcaron: "\u013D", Lcedil: "\u013B", Lcy: "\u041B", LeftAngleBracket: "\u27E8", lang: "\u27E8", langle: "\u27E8", LeftArrow: "\u2190", ShortLeftArrow: "\u2190", larr: "\u2190", leftarrow: "\u2190", slarr: "\u2190", LeftArrowBar: "\u21E4", larrb: "\u21E4", LeftArrowRightArrow: "\u21C6", leftrightarrows: "\u21C6", lrarr: "\u21C6", LeftCeiling: "\u2308", lceil: "\u2308", LeftDoubleBracket: "\u27E6", lobrk: "\u27E6", LeftDownTeeVector: "\u2961", LeftDownVector: "\u21C3", dharl: "\u21C3", downharpoonleft: "\u21C3", LeftDownVectorBar: "\u2959", LeftFloor: "\u230A", lfloor: "\u230A", LeftRightArrow: "\u2194", harr: "\u2194", leftrightarrow: "\u2194", LeftRightVector: "\u294E", LeftTee: "\u22A3", dashv: "\u22A3", LeftTeeArrow: "\u21A4", mapstoleft: "\u21A4", LeftTeeVector: "\u295A", LeftTriangle: "\u22B2", vartriangleleft: "\u22B2", vltri: "\u22B2", LeftTriangleBar: "\u29CF", LeftTriangleEqual: "\u22B4", ltrie: "\u22B4", trianglelefteq: "\u22B4", LeftUpDownVector: "\u2951", LeftUpTeeVector: "\u2960", LeftUpVector: "\u21BF", uharl: "\u21BF", upharpoonleft: "\u21BF", LeftUpVectorBar: "\u2958", LeftVector: "\u21BC", leftharpoonup: "\u21BC", lharu: "\u21BC", LeftVectorBar: "\u2952", LessEqualGreater: "\u22DA", leg: "\u22DA", lesseqgtr: "\u22DA", LessFullEqual: "\u2266", lE: "\u2266", leqq: "\u2266", LessGreater: "\u2276", lessgtr: "\u2276", lg: "\u2276", LessLess: "\u2AA1", LessSlantEqual: "\u2A7D", leqslant: "\u2A7D", les: "\u2A7D", LessTilde: "\u2272", lesssim: "\u2272", lsim: "\u2272", Lfr: "\u{1D50F}", Ll: "\u22D8", Lleftarrow: "\u21DA", lAarr: "\u21DA", Lmidot: "\u013F", LongLeftArrow: "\u27F5", longleftarrow: "\u27F5", xlarr: "\u27F5", LongLeftRightArrow: "\u27F7", longleftrightarrow: "\u27F7", xharr: "\u27F7", LongRightArrow: "\u27F6", longrightarrow: "\u27F6", xrarr: "\u27F6", Lopf: "\u{1D543}", LowerLeftArrow: "\u2199", swarr: "\u2199", swarrow: "\u2199", LowerRightArrow: "\u2198", searr: "\u2198", searrow: "\u2198", Lsh: "\u21B0", lsh: "\u21B0", Lstrok: "\u0141", Lt: "\u226A", NestedLessLess: "\u226A", ll: "\u226A", Map: "\u2905", Mcy: "\u041C", MediumSpace: "\u205F", Mellintrf: "\u2133", Mscr: "\u2133", phmmat: "\u2133", Mfr: "\u{1D510}", MinusPlus: "\u2213", mnplus: "\u2213", mp: "\u2213", Mopf: "\u{1D544}", Mu: "\u039C", NJcy: "\u040A", Nacute: "\u0143", Ncaron: "\u0147", Ncedil: "\u0145", Ncy: "\u041D", NegativeMediumSpace: "\u200B", NegativeThickSpace: "\u200B", NegativeThinSpace: "\u200B", NegativeVeryThinSpace: "\u200B", ZeroWidthSpace: "\u200B", NewLine: `
`, Nfr: "\u{1D511}", NoBreak: "\u2060", NonBreakingSpace: "\xA0", nbsp: "\xA0", Nopf: "\u2115", naturals: "\u2115", Not: "\u2AEC", NotCongruent: "\u2262", nequiv: "\u2262", NotCupCap: "\u226D", NotDoubleVerticalBar: "\u2226", npar: "\u2226", nparallel: "\u2226", nshortparallel: "\u2226", nspar: "\u2226", NotElement: "\u2209", notin: "\u2209", notinva: "\u2209", NotEqual: "\u2260", ne: "\u2260", NotEqualTilde: "\u2242\u0338", nesim: "\u2242\u0338", NotExists: "\u2204", nexist: "\u2204", nexists: "\u2204", NotGreater: "\u226F", ngt: "\u226F", ngtr: "\u226F", NotGreaterEqual: "\u2271", nge: "\u2271", ngeq: "\u2271", NotGreaterFullEqual: "\u2267\u0338", ngE: "\u2267\u0338", ngeqq: "\u2267\u0338", NotGreaterGreater: "\u226B\u0338", nGtv: "\u226B\u0338", NotGreaterLess: "\u2279", ntgl: "\u2279", NotGreaterSlantEqual: "\u2A7E\u0338", ngeqslant: "\u2A7E\u0338", nges: "\u2A7E\u0338", NotGreaterTilde: "\u2275", ngsim: "\u2275", NotHumpDownHump: "\u224E\u0338", nbump: "\u224E\u0338", NotHumpEqual: "\u224F\u0338", nbumpe: "\u224F\u0338", NotLeftTriangle: "\u22EA", nltri: "\u22EA", ntriangleleft: "\u22EA", NotLeftTriangleBar: "\u29CF\u0338", NotLeftTriangleEqual: "\u22EC", nltrie: "\u22EC", ntrianglelefteq: "\u22EC", NotLess: "\u226E", nless: "\u226E", nlt: "\u226E", NotLessEqual: "\u2270", nle: "\u2270", nleq: "\u2270", NotLessGreater: "\u2278", ntlg: "\u2278", NotLessLess: "\u226A\u0338", nLtv: "\u226A\u0338", NotLessSlantEqual: "\u2A7D\u0338", nleqslant: "\u2A7D\u0338", nles: "\u2A7D\u0338", NotLessTilde: "\u2274", nlsim: "\u2274", NotNestedGreaterGreater: "\u2AA2\u0338", NotNestedLessLess: "\u2AA1\u0338", NotPrecedes: "\u2280", npr: "\u2280", nprec: "\u2280", NotPrecedesEqual: "\u2AAF\u0338", npre: "\u2AAF\u0338", npreceq: "\u2AAF\u0338", NotPrecedesSlantEqual: "\u22E0", nprcue: "\u22E0", NotReverseElement: "\u220C", notni: "\u220C", notniva: "\u220C", NotRightTriangle: "\u22EB", nrtri: "\u22EB", ntriangleright: "\u22EB", NotRightTriangleBar: "\u29D0\u0338", NotRightTriangleEqual: "\u22ED", nrtrie: "\u22ED", ntrianglerighteq: "\u22ED", NotSquareSubset: "\u228F\u0338", NotSquareSubsetEqual: "\u22E2", nsqsube: "\u22E2", NotSquareSuperset: "\u2290\u0338", NotSquareSupersetEqual: "\u22E3", nsqsupe: "\u22E3", NotSubset: "\u2282\u20D2", nsubset: "\u2282\u20D2", vnsub: "\u2282\u20D2", NotSubsetEqual: "\u2288", nsube: "\u2288", nsubseteq: "\u2288", NotSucceeds: "\u2281", nsc: "\u2281", nsucc: "\u2281", NotSucceedsEqual: "\u2AB0\u0338", nsce: "\u2AB0\u0338", nsucceq: "\u2AB0\u0338", NotSucceedsSlantEqual: "\u22E1", nsccue: "\u22E1", NotSucceedsTilde: "\u227F\u0338", NotSuperset: "\u2283\u20D2", nsupset: "\u2283\u20D2", vnsup: "\u2283\u20D2", NotSupersetEqual: "\u2289", nsupe: "\u2289", nsupseteq: "\u2289", NotTilde: "\u2241", nsim: "\u2241", NotTildeEqual: "\u2244", nsime: "\u2244", nsimeq: "\u2244", NotTildeFullEqual: "\u2247", ncong: "\u2247", NotTildeTilde: "\u2249", nap: "\u2249", napprox: "\u2249", NotVerticalBar: "\u2224", nmid: "\u2224", nshortmid: "\u2224", nsmid: "\u2224", Nscr: "\u{1D4A9}", Ntilde: "\xD1", Nu: "\u039D", OElig: "\u0152", Oacute: "\xD3", Ocirc: "\xD4", Ocy: "\u041E", Odblac: "\u0150", Ofr: "\u{1D512}", Ograve: "\xD2", Omacr: "\u014C", Omega: "\u03A9", ohm: "\u03A9", Omicron: "\u039F", Oopf: "\u{1D546}", OpenCurlyDoubleQuote: "\u201C", ldquo: "\u201C", OpenCurlyQuote: "\u2018", lsquo: "\u2018", Or: "\u2A54", Oscr: "\u{1D4AA}", Oslash: "\xD8", Otilde: "\xD5", Otimes: "\u2A37", Ouml: "\xD6", OverBar: "\u203E", oline: "\u203E", OverBrace: "\u23DE", OverBracket: "\u23B4", tbrk: "\u23B4", OverParenthesis: "\u23DC", PartialD: "\u2202", part: "\u2202", Pcy: "\u041F", Pfr: "\u{1D513}", Phi: "\u03A6", Pi: "\u03A0", PlusMinus: "\xB1", plusmn: "\xB1", pm: "\xB1", Popf: "\u2119", primes: "\u2119", Pr: "\u2ABB", Precedes: "\u227A", pr: "\u227A", prec: "\u227A", PrecedesEqual: "\u2AAF", pre: "\u2AAF", preceq: "\u2AAF", PrecedesSlantEqual: "\u227C", prcue: "\u227C", preccurlyeq: "\u227C", PrecedesTilde: "\u227E", precsim: "\u227E", prsim: "\u227E", Prime: "\u2033", Product: "\u220F", prod: "\u220F", Proportional: "\u221D", prop: "\u221D", propto: "\u221D", varpropto: "\u221D", vprop: "\u221D", Pscr: "\u{1D4AB}", Psi: "\u03A8", QUOT: '"', quot: '"', Qfr: "\u{1D514}", Qopf: "\u211A", rationals: "\u211A", Qscr: "\u{1D4AC}", RBarr: "\u2910", drbkarow: "\u2910", REG: "\xAE", circledR: "\xAE", reg: "\xAE", Racute: "\u0154", Rang: "\u27EB", Rarr: "\u21A0", twoheadrightarrow: "\u21A0", Rarrtl: "\u2916", Rcaron: "\u0158", Rcedil: "\u0156", Rcy: "\u0420", Re: "\u211C", Rfr: "\u211C", real: "\u211C", realpart: "\u211C", ReverseElement: "\u220B", SuchThat: "\u220B", ni: "\u220B", niv: "\u220B", ReverseEquilibrium: "\u21CB", leftrightharpoons: "\u21CB", lrhar: "\u21CB", ReverseUpEquilibrium: "\u296F", duhar: "\u296F", Rho: "\u03A1", RightAngleBracket: "\u27E9", rang: "\u27E9", rangle: "\u27E9", RightArrow: "\u2192", ShortRightArrow: "\u2192", rarr: "\u2192", rightarrow: "\u2192", srarr: "\u2192", RightArrowBar: "\u21E5", rarrb: "\u21E5", RightArrowLeftArrow: "\u21C4", rightleftarrows: "\u21C4", rlarr: "\u21C4", RightCeiling: "\u2309", rceil: "\u2309", RightDoubleBracket: "\u27E7", robrk: "\u27E7", RightDownTeeVector: "\u295D", RightDownVector: "\u21C2", dharr: "\u21C2", downharpoonright: "\u21C2", RightDownVectorBar: "\u2955", RightFloor: "\u230B", rfloor: "\u230B", RightTee: "\u22A2", vdash: "\u22A2", RightTeeArrow: "\u21A6", map: "\u21A6", mapsto: "\u21A6", RightTeeVector: "\u295B", RightTriangle: "\u22B3", vartriangleright: "\u22B3", vrtri: "\u22B3", RightTriangleBar: "\u29D0", RightTriangleEqual: "\u22B5", rtrie: "\u22B5", trianglerighteq: "\u22B5", RightUpDownVector: "\u294F", RightUpTeeVector: "\u295C", RightUpVector: "\u21BE", uharr: "\u21BE", upharpoonright: "\u21BE", RightUpVectorBar: "\u2954", RightVector: "\u21C0", rharu: "\u21C0", rightharpoonup: "\u21C0", RightVectorBar: "\u2953", Ropf: "\u211D", reals: "\u211D", RoundImplies: "\u2970", Rrightarrow: "\u21DB", rAarr: "\u21DB", Rscr: "\u211B", realine: "\u211B", Rsh: "\u21B1", rsh: "\u21B1", RuleDelayed: "\u29F4", SHCHcy: "\u0429", SHcy: "\u0428", SOFTcy: "\u042C", Sacute: "\u015A", Sc: "\u2ABC", Scaron: "\u0160", Scedil: "\u015E", Scirc: "\u015C", Scy: "\u0421", Sfr: "\u{1D516}", ShortUpArrow: "\u2191", UpArrow: "\u2191", uarr: "\u2191", uparrow: "\u2191", Sigma: "\u03A3", SmallCircle: "\u2218", compfn: "\u2218", Sopf: "\u{1D54A}", Sqrt: "\u221A", radic: "\u221A", Square: "\u25A1", squ: "\u25A1", square: "\u25A1", SquareIntersection: "\u2293", sqcap: "\u2293", SquareSubset: "\u228F", sqsub: "\u228F", sqsubset: "\u228F", SquareSubsetEqual: "\u2291", sqsube: "\u2291", sqsubseteq: "\u2291", SquareSuperset: "\u2290", sqsup: "\u2290", sqsupset: "\u2290", SquareSupersetEqual: "\u2292", sqsupe: "\u2292", sqsupseteq: "\u2292", SquareUnion: "\u2294", sqcup: "\u2294", Sscr: "\u{1D4AE}", Star: "\u22C6", sstarf: "\u22C6", Sub: "\u22D0", Subset: "\u22D0", SubsetEqual: "\u2286", sube: "\u2286", subseteq: "\u2286", Succeeds: "\u227B", sc: "\u227B", succ: "\u227B", SucceedsEqual: "\u2AB0", sce: "\u2AB0", succeq: "\u2AB0", SucceedsSlantEqual: "\u227D", sccue: "\u227D", succcurlyeq: "\u227D", SucceedsTilde: "\u227F", scsim: "\u227F", succsim: "\u227F", Sum: "\u2211", sum: "\u2211", Sup: "\u22D1", Supset: "\u22D1", Superset: "\u2283", sup: "\u2283", supset: "\u2283", SupersetEqual: "\u2287", supe: "\u2287", supseteq: "\u2287", THORN: "\xDE", TRADE: "\u2122", trade: "\u2122", TSHcy: "\u040B", TScy: "\u0426", Tab: " ", Tau: "\u03A4", Tcaron: "\u0164", Tcedil: "\u0162", Tcy: "\u0422", Tfr: "\u{1D517}", Therefore: "\u2234", there4: "\u2234", therefore: "\u2234", Theta: "\u0398", ThickSpace: "\u205F\u200A", ThinSpace: "\u2009", thinsp: "\u2009", Tilde: "\u223C", sim: "\u223C", thicksim: "\u223C", thksim: "\u223C", TildeEqual: "\u2243", sime: "\u2243", simeq: "\u2243", TildeFullEqual: "\u2245", cong: "\u2245", TildeTilde: "\u2248", ap: "\u2248", approx: "\u2248", asymp: "\u2248", thickapprox: "\u2248", thkap: "\u2248", Topf: "\u{1D54B}", TripleDot: "\u20DB", tdot: "\u20DB", Tscr: "\u{1D4AF}", Tstrok: "\u0166", Uacute: "\xDA", Uarr: "\u219F", Uarrocir: "\u2949", Ubrcy: "\u040E", Ubreve: "\u016C", Ucirc: "\xDB", Ucy: "\u0423", Udblac: "\u0170", Ufr: "\u{1D518}", Ugrave: "\xD9", Umacr: "\u016A", UnderBar: "_", lowbar: "_", UnderBrace: "\u23DF", UnderBracket: "\u23B5", bbrk: "\u23B5", UnderParenthesis: "\u23DD", Union: "\u22C3", bigcup: "\u22C3", xcup: "\u22C3", UnionPlus: "\u228E", uplus: "\u228E", Uogon: "\u0172", Uopf: "\u{1D54C}", UpArrowBar: "\u2912", UpArrowDownArrow: "\u21C5", udarr: "\u21C5", UpDownArrow: "\u2195", updownarrow: "\u2195", varr: "\u2195", UpEquilibrium: "\u296E", udhar: "\u296E", UpTee: "\u22A5", bot: "\u22A5", bottom: "\u22A5", perp: "\u22A5", UpTeeArrow: "\u21A5", mapstoup: "\u21A5", UpperLeftArrow: "\u2196", nwarr: "\u2196", nwarrow: "\u2196", UpperRightArrow: "\u2197", nearr: "\u2197", nearrow: "\u2197", Upsi: "\u03D2", upsih: "\u03D2", Upsilon: "\u03A5", Uring: "\u016E", Uscr: "\u{1D4B0}", Utilde: "\u0168", Uuml: "\xDC", VDash: "\u22AB", Vbar: "\u2AEB", Vcy: "\u0412", Vdash: "\u22A9", Vdashl: "\u2AE6", Vee: "\u22C1", bigvee: "\u22C1", xvee: "\u22C1", Verbar: "\u2016", Vert: "\u2016", VerticalBar: "\u2223", mid: "\u2223", shortmid: "\u2223", smid: "\u2223", VerticalLine: "|", verbar: "|", vert: "|", VerticalSeparator: "\u2758", VerticalTilde: "\u2240", wr: "\u2240", wreath: "\u2240", VeryThinSpace: "\u200A", hairsp: "\u200A", Vfr: "\u{1D519}", Vopf: "\u{1D54D}", Vscr: "\u{1D4B1}", Vvdash: "\u22AA", Wcirc: "\u0174", Wedge: "\u22C0", bigwedge: "\u22C0", xwedge: "\u22C0", Wfr: "\u{1D51A}", Wopf: "\u{1D54E}", Wscr: "\u{1D4B2}", Xfr: "\u{1D51B}", Xi: "\u039E", Xopf: "\u{1D54F}", Xscr: "\u{1D4B3}", YAcy: "\u042F", YIcy: "\u0407", YUcy: "\u042E", Yacute: "\xDD", Ycirc: "\u0176", Ycy: "\u042B", Yfr: "\u{1D51C}", Yopf: "\u{1D550}", Yscr: "\u{1D4B4}", Yuml: "\u0178", ZHcy: "\u0416", Zacute: "\u0179", Zcaron: "\u017D", Zcy: "\u0417", Zdot: "\u017B", Zeta: "\u0396", Zfr: "\u2128", zeetrf: "\u2128", Zopf: "\u2124", integers: "\u2124", Zscr: "\u{1D4B5}", aacute: "\xE1", abreve: "\u0103", ac: "\u223E", mstpos: "\u223E", acE: "\u223E\u0333", acd: "\u223F", acirc: "\xE2", acy: "\u0430", aelig: "\xE6", afr: "\u{1D51E}", agrave: "\xE0", alefsym: "\u2135", aleph: "\u2135", alpha: "\u03B1", amacr: "\u0101", amalg: "\u2A3F", and: "\u2227", wedge: "\u2227", andand: "\u2A55", andd: "\u2A5C", andslope: "\u2A58", andv: "\u2A5A", ang: "\u2220", angle: "\u2220", ange: "\u29A4", angmsd: "\u2221", measuredangle: "\u2221", angmsdaa: "\u29A8", angmsdab: "\u29A9", angmsdac: "\u29AA", angmsdad: "\u29AB", angmsdae: "\u29AC", angmsdaf: "\u29AD", angmsdag: "\u29AE", angmsdah: "\u29AF", angrt: "\u221F", angrtvb: "\u22BE", angrtvbd: "\u299D", angsph: "\u2222", angzarr: "\u237C", aogon: "\u0105", aopf: "\u{1D552}", apE: "\u2A70", apacir: "\u2A6F", ape: "\u224A", approxeq: "\u224A", apid: "\u224B", apos: "'", aring: "\xE5", ascr: "\u{1D4B6}", ast: "*", midast: "*", atilde: "\xE3", auml: "\xE4", awint: "\u2A11", bNot: "\u2AED", backcong: "\u224C", bcong: "\u224C", backepsilon: "\u03F6", bepsi: "\u03F6", backprime: "\u2035", bprime: "\u2035", backsim: "\u223D", bsim: "\u223D", backsimeq: "\u22CD", bsime: "\u22CD", barvee: "\u22BD", barwed: "\u2305", barwedge: "\u2305", bbrktbrk: "\u23B6", bcy: "\u0431", bdquo: "\u201E", ldquor: "\u201E", bemptyv: "\u29B0", beta: "\u03B2", beth: "\u2136", between: "\u226C", twixt: "\u226C", bfr: "\u{1D51F}", bigcirc: "\u25EF", xcirc: "\u25EF", bigodot: "\u2A00", xodot: "\u2A00", bigoplus: "\u2A01", xoplus: "\u2A01", bigotimes: "\u2A02", xotime: "\u2A02", bigsqcup: "\u2A06", xsqcup: "\u2A06", bigstar: "\u2605", starf: "\u2605", bigtriangledown: "\u25BD", xdtri: "\u25BD", bigtriangleup: "\u25B3", xutri: "\u25B3", biguplus: "\u2A04", xuplus: "\u2A04", bkarow: "\u290D", rbarr: "\u290D", blacklozenge: "\u29EB", lozf: "\u29EB", blacktriangle: "\u25B4", utrif: "\u25B4", blacktriangledown: "\u25BE", dtrif: "\u25BE", blacktriangleleft: "\u25C2", ltrif: "\u25C2", blacktriangleright: "\u25B8", rtrif: "\u25B8", blank: "\u2423", blk12: "\u2592", blk14: "\u2591", blk34: "\u2593", block: "\u2588", bne: "=\u20E5", bnequiv: "\u2261\u20E5", bnot: "\u2310", bopf: "\u{1D553}", bowtie: "\u22C8", boxDL: "\u2557", boxDR: "\u2554", boxDl: "\u2556", boxDr: "\u2553", boxH: "\u2550", boxHD: "\u2566", boxHU: "\u2569", boxHd: "\u2564", boxHu: "\u2567", boxUL: "\u255D", boxUR: "\u255A", boxUl: "\u255C", boxUr: "\u2559", boxV: "\u2551", boxVH: "\u256C", boxVL: "\u2563", boxVR: "\u2560", boxVh: "\u256B", boxVl: "\u2562", boxVr: "\u255F", boxbox: "\u29C9", boxdL: "\u2555", boxdR: "\u2552", boxdl: "\u2510", boxdr: "\u250C", boxhD: "\u2565", boxhU: "\u2568", boxhd: "\u252C", boxhu: "\u2534", boxminus: "\u229F", minusb: "\u229F", boxplus: "\u229E", plusb: "\u229E", boxtimes: "\u22A0", timesb: "\u22A0", boxuL: "\u255B", boxuR: "\u2558", boxul: "\u2518", boxur: "\u2514", boxv: "\u2502", boxvH: "\u256A", boxvL: "\u2561", boxvR: "\u255E", boxvh: "\u253C", boxvl: "\u2524", boxvr: "\u251C", brvbar: "\xA6", bscr: "\u{1D4B7}", bsemi: "\u204F", bsol: "\\", bsolb: "\u29C5", bsolhsub: "\u27C8", bull: "\u2022", bullet: "\u2022", bumpE: "\u2AAE", cacute: "\u0107", cap: "\u2229", capand: "\u2A44", capbrcup: "\u2A49", capcap: "\u2A4B", capcup: "\u2A47", capdot: "\u2A40", caps: "\u2229\uFE00", caret: "\u2041", ccaps: "\u2A4D", ccaron: "\u010D", ccedil: "\xE7", ccirc: "\u0109", ccups: "\u2A4C", ccupssm: "\u2A50", cdot: "\u010B", cemptyv: "\u29B2", cent: "\xA2", cfr: "\u{1D520}", chcy: "\u0447", check: "\u2713", checkmark: "\u2713", chi: "\u03C7", cir: "\u25CB", cirE: "\u29C3", circ: "\u02C6", circeq: "\u2257", cire: "\u2257", circlearrowleft: "\u21BA", olarr: "\u21BA", circlearrowright: "\u21BB", orarr: "\u21BB", circledS: "\u24C8", oS: "\u24C8", circledast: "\u229B", oast: "\u229B", circledcirc: "\u229A", ocir: "\u229A", circleddash: "\u229D", odash: "\u229D", cirfnint: "\u2A10", cirmid: "\u2AEF", cirscir: "\u29C2", clubs: "\u2663", clubsuit: "\u2663", colon: ":", comma: ",", commat: "@", comp: "\u2201", complement: "\u2201", congdot: "\u2A6D", copf: "\u{1D554}", copysr: "\u2117", crarr: "\u21B5", cross: "\u2717", cscr: "\u{1D4B8}", csub: "\u2ACF", csube: "\u2AD1", csup: "\u2AD0", csupe: "\u2AD2", ctdot: "\u22EF", cudarrl: "\u2938", cudarrr: "\u2935", cuepr: "\u22DE", curlyeqprec: "\u22DE", cuesc: "\u22DF", curlyeqsucc: "\u22DF", cularr: "\u21B6", curvearrowleft: "\u21B6", cularrp: "\u293D", cup: "\u222A", cupbrcap: "\u2A48", cupcap: "\u2A46", cupcup: "\u2A4A", cupdot: "\u228D", cupor: "\u2A45", cups: "\u222A\uFE00", curarr: "\u21B7", curvearrowright: "\u21B7", curarrm: "\u293C", curlyvee: "\u22CE", cuvee: "\u22CE", curlywedge: "\u22CF", cuwed: "\u22CF", curren: "\xA4", cwint: "\u2231", cylcty: "\u232D", dHar: "\u2965", dagger: "\u2020", daleth: "\u2138", dash: "\u2010", hyphen: "\u2010", dbkarow: "\u290F", rBarr: "\u290F", dcaron: "\u010F", dcy: "\u0434", ddarr: "\u21CA", downdownarrows: "\u21CA", ddotseq: "\u2A77", eDDot: "\u2A77", deg: "\xB0", delta: "\u03B4", demptyv: "\u29B1", dfisht: "\u297F", dfr: "\u{1D521}", diamondsuit: "\u2666", diams: "\u2666", digamma: "\u03DD", gammad: "\u03DD", disin: "\u22F2", div: "\xF7", divide: "\xF7", divideontimes: "\u22C7", divonx: "\u22C7", djcy: "\u0452", dlcorn: "\u231E", llcorner: "\u231E", dlcrop: "\u230D", dollar: "$", dopf: "\u{1D555}", doteqdot: "\u2251", eDot: "\u2251", dotminus: "\u2238", minusd: "\u2238", dotplus: "\u2214", plusdo: "\u2214", dotsquare: "\u22A1", sdotb: "\u22A1", drcorn: "\u231F", lrcorner: "\u231F", drcrop: "\u230C", dscr: "\u{1D4B9}", dscy: "\u0455", dsol: "\u29F6", dstrok: "\u0111", dtdot: "\u22F1", dtri: "\u25BF", triangledown: "\u25BF", dwangle: "\u29A6", dzcy: "\u045F", dzigrarr: "\u27FF", eacute: "\xE9", easter: "\u2A6E", ecaron: "\u011B", ecir: "\u2256", eqcirc: "\u2256", ecirc: "\xEA", ecolon: "\u2255", eqcolon: "\u2255", ecy: "\u044D", edot: "\u0117", efDot: "\u2252", fallingdotseq: "\u2252", efr: "\u{1D522}", eg: "\u2A9A", egrave: "\xE8", egs: "\u2A96", eqslantgtr: "\u2A96", egsdot: "\u2A98", el: "\u2A99", elinters: "\u23E7", ell: "\u2113", els: "\u2A95", eqslantless: "\u2A95", elsdot: "\u2A97", emacr: "\u0113", empty: "\u2205", emptyset: "\u2205", emptyv: "\u2205", varnothing: "\u2205", emsp13: "\u2004", emsp14: "\u2005", emsp: "\u2003", eng: "\u014B", ensp: "\u2002", eogon: "\u0119", eopf: "\u{1D556}", epar: "\u22D5", eparsl: "\u29E3", eplus: "\u2A71", epsi: "\u03B5", epsilon: "\u03B5", epsiv: "\u03F5", straightepsilon: "\u03F5", varepsilon: "\u03F5", equals: "=", equest: "\u225F", questeq: "\u225F", equivDD: "\u2A78", eqvparsl: "\u29E5", erDot: "\u2253", risingdotseq: "\u2253", erarr: "\u2971", escr: "\u212F", eta: "\u03B7", eth: "\xF0", euml: "\xEB", euro: "\u20AC", excl: "!", fcy: "\u0444", female: "\u2640", ffilig: "\uFB03", fflig: "\uFB00", ffllig: "\uFB04", ffr: "\u{1D523}", filig: "\uFB01", fjlig: "fj", flat: "\u266D", fllig: "\uFB02", fltns: "\u25B1", fnof: "\u0192", fopf: "\u{1D557}", fork: "\u22D4", pitchfork: "\u22D4", forkv: "\u2AD9", fpartint: "\u2A0D", frac12: "\xBD", half: "\xBD", frac13: "\u2153", frac14: "\xBC", frac15: "\u2155", frac16: "\u2159", frac18: "\u215B", frac23: "\u2154", frac25: "\u2156", frac34: "\xBE", frac35: "\u2157", frac38: "\u215C", frac45: "\u2158", frac56: "\u215A", frac58: "\u215D", frac78: "\u215E", frasl: "\u2044", frown: "\u2322", sfrown: "\u2322", fscr: "\u{1D4BB}", gEl: "\u2A8C", gtreqqless: "\u2A8C", gacute: "\u01F5", gamma: "\u03B3", gap: "\u2A86", gtrapprox: "\u2A86", gbreve: "\u011F", gcirc: "\u011D", gcy: "\u0433", gdot: "\u0121", gescc: "\u2AA9", gesdot: "\u2A80", gesdoto: "\u2A82", gesdotol: "\u2A84", gesl: "\u22DB\uFE00", gesles: "\u2A94", gfr: "\u{1D524}", gimel: "\u2137", gjcy: "\u0453", glE: "\u2A92", gla: "\u2AA5", glj: "\u2AA4", gnE: "\u2269", gneqq: "\u2269", gnap: "\u2A8A", gnapprox: "\u2A8A", gne: "\u2A88", gneq: "\u2A88", gnsim: "\u22E7", gopf: "\u{1D558}", gscr: "\u210A", gsime: "\u2A8E", gsiml: "\u2A90", gtcc: "\u2AA7", gtcir: "\u2A7A", gtdot: "\u22D7", gtrdot: "\u22D7", gtlPar: "\u2995", gtquest: "\u2A7C", gtrarr: "\u2978", gvertneqq: "\u2269\uFE00", gvnE: "\u2269\uFE00", hardcy: "\u044A", harrcir: "\u2948", harrw: "\u21AD", leftrightsquigarrow: "\u21AD", hbar: "\u210F", hslash: "\u210F", planck: "\u210F", plankv: "\u210F", hcirc: "\u0125", hearts: "\u2665", heartsuit: "\u2665", hellip: "\u2026", mldr: "\u2026", hercon: "\u22B9", hfr: "\u{1D525}", hksearow: "\u2925", searhk: "\u2925", hkswarow: "\u2926", swarhk: "\u2926", hoarr: "\u21FF", homtht: "\u223B", hookleftarrow: "\u21A9", larrhk: "\u21A9", hookrightarrow: "\u21AA", rarrhk: "\u21AA", hopf: "\u{1D559}", horbar: "\u2015", hscr: "\u{1D4BD}", hstrok: "\u0127", hybull: "\u2043", iacute: "\xED", icirc: "\xEE", icy: "\u0438", iecy: "\u0435", iexcl: "\xA1", ifr: "\u{1D526}", igrave: "\xEC", iiiint: "\u2A0C", qint: "\u2A0C", iiint: "\u222D", tint: "\u222D", iinfin: "\u29DC", iiota: "\u2129", ijlig: "\u0133", imacr: "\u012B", imath: "\u0131", inodot: "\u0131", imof: "\u22B7", imped: "\u01B5", incare: "\u2105", infin: "\u221E", infintie: "\u29DD", intcal: "\u22BA", intercal: "\u22BA", intlarhk: "\u2A17", intprod: "\u2A3C", iprod: "\u2A3C", iocy: "\u0451", iogon: "\u012F", iopf: "\u{1D55A}", iota: "\u03B9", iquest: "\xBF", iscr: "\u{1D4BE}", isinE: "\u22F9", isindot: "\u22F5", isins: "\u22F4", isinsv: "\u22F3", itilde: "\u0129", iukcy: "\u0456", iuml: "\xEF", jcirc: "\u0135", jcy: "\u0439", jfr: "\u{1D527}", jmath: "\u0237", jopf: "\u{1D55B}", jscr: "\u{1D4BF}", jsercy: "\u0458", jukcy: "\u0454", kappa: "\u03BA", kappav: "\u03F0", varkappa: "\u03F0", kcedil: "\u0137", kcy: "\u043A", kfr: "\u{1D528}", kgreen: "\u0138", khcy: "\u0445", kjcy: "\u045C", kopf: "\u{1D55C}", kscr: "\u{1D4C0}", lAtail: "\u291B", lBarr: "\u290E", lEg: "\u2A8B", lesseqqgtr: "\u2A8B", lHar: "\u2962", lacute: "\u013A", laemptyv: "\u29B4", lambda: "\u03BB", langd: "\u2991", lap: "\u2A85", lessapprox: "\u2A85", laquo: "\xAB", larrbfs: "\u291F", larrfs: "\u291D", larrlp: "\u21AB", looparrowleft: "\u21AB", larrpl: "\u2939", larrsim: "\u2973", larrtl: "\u21A2", leftarrowtail: "\u21A2", lat: "\u2AAB", latail: "\u2919", late: "\u2AAD", lates: "\u2AAD\uFE00", lbarr: "\u290C", lbbrk: "\u2772", lbrace: "{", lcub: "{", lbrack: "[", lsqb: "[", lbrke: "\u298B", lbrksld: "\u298F", lbrkslu: "\u298D", lcaron: "\u013E", lcedil: "\u013C", lcy: "\u043B", ldca: "\u2936", ldrdhar: "\u2967", ldrushar: "\u294B", ldsh: "\u21B2", le: "\u2264", leq: "\u2264", leftleftarrows: "\u21C7", llarr: "\u21C7", leftthreetimes: "\u22CB", lthree: "\u22CB", lescc: "\u2AA8", lesdot: "\u2A7F", lesdoto: "\u2A81", lesdotor: "\u2A83", lesg: "\u22DA\uFE00", lesges: "\u2A93", lessdot: "\u22D6", ltdot: "\u22D6", lfisht: "\u297C", lfr: "\u{1D529}", lgE: "\u2A91", lharul: "\u296A", lhblk: "\u2584", ljcy: "\u0459", llhard: "\u296B", lltri: "\u25FA", lmidot: "\u0140", lmoust: "\u23B0", lmoustache: "\u23B0", lnE: "\u2268", lneqq: "\u2268", lnap: "\u2A89", lnapprox: "\u2A89", lne: "\u2A87", lneq: "\u2A87", lnsim: "\u22E6", loang: "\u27EC", loarr: "\u21FD", longmapsto: "\u27FC", xmap: "\u27FC", looparrowright: "\u21AC", rarrlp: "\u21AC", lopar: "\u2985", lopf: "\u{1D55D}", loplus: "\u2A2D", lotimes: "\u2A34", lowast: "\u2217", loz: "\u25CA", lozenge: "\u25CA", lpar: "(", lparlt: "\u2993", lrhard: "\u296D", lrm: "\u200E", lrtri: "\u22BF", lsaquo: "\u2039", lscr: "\u{1D4C1}", lsime: "\u2A8D", lsimg: "\u2A8F", lsquor: "\u201A", sbquo: "\u201A", lstrok: "\u0142", ltcc: "\u2AA6", ltcir: "\u2A79", ltimes: "\u22C9", ltlarr: "\u2976", ltquest: "\u2A7B", ltrPar: "\u2996", ltri: "\u25C3", triangleleft: "\u25C3", lurdshar: "\u294A", luruhar: "\u2966", lvertneqq: "\u2268\uFE00", lvnE: "\u2268\uFE00", mDDot: "\u223A", macr: "\xAF", strns: "\xAF", male: "\u2642", malt: "\u2720", maltese: "\u2720", marker: "\u25AE", mcomma: "\u2A29", mcy: "\u043C", mdash: "\u2014", mfr: "\u{1D52A}", mho: "\u2127", micro: "\xB5", midcir: "\u2AF0", minus: "\u2212", minusdu: "\u2A2A", mlcp: "\u2ADB", models: "\u22A7", mopf: "\u{1D55E}", mscr: "\u{1D4C2}", mu: "\u03BC", multimap: "\u22B8", mumap: "\u22B8", nGg: "\u22D9\u0338", nGt: "\u226B\u20D2", nLeftarrow: "\u21CD", nlArr: "\u21CD", nLeftrightarrow: "\u21CE", nhArr: "\u21CE", nLl: "\u22D8\u0338", nLt: "\u226A\u20D2", nRightarrow: "\u21CF", nrArr: "\u21CF", nVDash: "\u22AF", nVdash: "\u22AE", nacute: "\u0144", nang: "\u2220\u20D2", napE: "\u2A70\u0338", napid: "\u224B\u0338", napos: "\u0149", natur: "\u266E", natural: "\u266E", ncap: "\u2A43", ncaron: "\u0148", ncedil: "\u0146", ncongdot: "\u2A6D\u0338", ncup: "\u2A42", ncy: "\u043D", ndash: "\u2013", neArr: "\u21D7", nearhk: "\u2924", nedot: "\u2250\u0338", nesear: "\u2928", toea: "\u2928", nfr: "\u{1D52B}", nharr: "\u21AE", nleftrightarrow: "\u21AE", nhpar: "\u2AF2", nis: "\u22FC", nisd: "\u22FA", njcy: "\u045A", nlE: "\u2266\u0338", nleqq: "\u2266\u0338", nlarr: "\u219A", nleftarrow: "\u219A", nldr: "\u2025", nopf: "\u{1D55F}", not: "\xAC", notinE: "\u22F9\u0338", notindot: "\u22F5\u0338", notinvb: "\u22F7", notinvc: "\u22F6", notnivb: "\u22FE", notnivc: "\u22FD", nparsl: "\u2AFD\u20E5", npart: "\u2202\u0338", npolint: "\u2A14", nrarr: "\u219B", nrightarrow: "\u219B", nrarrc: "\u2933\u0338", nrarrw: "\u219D\u0338", nscr: "\u{1D4C3}", nsub: "\u2284", nsubE: "\u2AC5\u0338", nsubseteqq: "\u2AC5\u0338", nsup: "\u2285", nsupE: "\u2AC6\u0338", nsupseteqq: "\u2AC6\u0338", ntilde: "\xF1", nu: "\u03BD", num: "#", numero: "\u2116", numsp: "\u2007", nvDash: "\u22AD", nvHarr: "\u2904", nvap: "\u224D\u20D2", nvdash: "\u22AC", nvge: "\u2265\u20D2", nvgt: ">\u20D2", nvinfin: "\u29DE", nvlArr: "\u2902", nvle: "\u2264\u20D2", nvlt: "<\u20D2", nvltrie: "\u22B4\u20D2", nvrArr: "\u2903", nvrtrie: "\u22B5\u20D2", nvsim: "\u223C\u20D2", nwArr: "\u21D6", nwarhk: "\u2923", nwnear: "\u2927", oacute: "\xF3", ocirc: "\xF4", ocy: "\u043E", odblac: "\u0151", odiv: "\u2A38", odsold: "\u29BC", oelig: "\u0153", ofcir: "\u29BF", ofr: "\u{1D52C}", ogon: "\u02DB", ograve: "\xF2", ogt: "\u29C1", ohbar: "\u29B5", olcir: "\u29BE", olcross: "\u29BB", olt: "\u29C0", omacr: "\u014D", omega: "\u03C9", omicron: "\u03BF", omid: "\u29B6", oopf: "\u{1D560}", opar: "\u29B7", operp: "\u29B9", or: "\u2228", vee: "\u2228", ord: "\u2A5D", order: "\u2134", orderof: "\u2134", oscr: "\u2134", ordf: "\xAA", ordm: "\xBA", origof: "\u22B6", oror: "\u2A56", orslope: "\u2A57", orv: "\u2A5B", oslash: "\xF8", osol: "\u2298", otilde: "\xF5", otimesas: "\u2A36", ouml: "\xF6", ovbar: "\u233D", para: "\xB6", parsim: "\u2AF3", parsl: "\u2AFD", pcy: "\u043F", percnt: "%", period: ".", permil: "\u2030", pertenk: "\u2031", pfr: "\u{1D52D}", phi: "\u03C6", phiv: "\u03D5", straightphi: "\u03D5", varphi: "\u03D5", phone: "\u260E", pi: "\u03C0", piv: "\u03D6", varpi: "\u03D6", planckh: "\u210E", plus: "+", plusacir: "\u2A23", pluscir: "\u2A22", plusdu: "\u2A25", pluse: "\u2A72", plussim: "\u2A26", plustwo: "\u2A27", pointint: "\u2A15", popf: "\u{1D561}", pound: "\xA3", prE: "\u2AB3", prap: "\u2AB7", precapprox: "\u2AB7", precnapprox: "\u2AB9", prnap: "\u2AB9", precneqq: "\u2AB5", prnE: "\u2AB5", precnsim: "\u22E8", prnsim: "\u22E8", prime: "\u2032", profalar: "\u232E", profline: "\u2312", profsurf: "\u2313", prurel: "\u22B0", pscr: "\u{1D4C5}", psi: "\u03C8", puncsp: "\u2008", qfr: "\u{1D52E}", qopf: "\u{1D562}", qprime: "\u2057", qscr: "\u{1D4C6}", quatint: "\u2A16", quest: "?", rAtail: "\u291C", rHar: "\u2964", race: "\u223D\u0331", racute: "\u0155", raemptyv: "\u29B3", rangd: "\u2992", range: "\u29A5", raquo: "\xBB", rarrap: "\u2975", rarrbfs: "\u2920", rarrc: "\u2933", rarrfs: "\u291E", rarrpl: "\u2945", rarrsim: "\u2974", rarrtl: "\u21A3", rightarrowtail: "\u21A3", rarrw: "\u219D", rightsquigarrow: "\u219D", ratail: "\u291A", ratio: "\u2236", rbbrk: "\u2773", rbrace: "}", rcub: "}", rbrack: "]", rsqb: "]", rbrke: "\u298C", rbrksld: "\u298E", rbrkslu: "\u2990", rcaron: "\u0159", rcedil: "\u0157", rcy: "\u0440", rdca: "\u2937", rdldhar: "\u2969", rdsh: "\u21B3", rect: "\u25AD", rfisht: "\u297D", rfr: "\u{1D52F}", rharul: "\u296C", rho: "\u03C1", rhov: "\u03F1", varrho: "\u03F1", rightrightarrows: "\u21C9", rrarr: "\u21C9", rightthreetimes: "\u22CC", rthree: "\u22CC", ring: "\u02DA", rlm: "\u200F", rmoust: "\u23B1", rmoustache: "\u23B1", rnmid: "\u2AEE", roang: "\u27ED", roarr: "\u21FE", ropar: "\u2986", ropf: "\u{1D563}", roplus: "\u2A2E", rotimes: "\u2A35", rpar: ")", rpargt: "\u2994", rppolint: "\u2A12", rsaquo: "\u203A", rscr: "\u{1D4C7}", rtimes: "\u22CA", rtri: "\u25B9", triangleright: "\u25B9", rtriltri: "\u29CE", ruluhar: "\u2968", rx: "\u211E", sacute: "\u015B", scE: "\u2AB4", scap: "\u2AB8", succapprox: "\u2AB8", scaron: "\u0161", scedil: "\u015F", scirc: "\u015D", scnE: "\u2AB6", succneqq: "\u2AB6", scnap: "\u2ABA", succnapprox: "\u2ABA", scnsim: "\u22E9", succnsim: "\u22E9", scpolint: "\u2A13", scy: "\u0441", sdot: "\u22C5", sdote: "\u2A66", seArr: "\u21D8", sect: "\xA7", semi: ";", seswar: "\u2929", tosa: "\u2929", sext: "\u2736", sfr: "\u{1D530}", sharp: "\u266F", shchcy: "\u0449", shcy: "\u0448", shy: "\xAD", sigma: "\u03C3", sigmaf: "\u03C2", sigmav: "\u03C2", varsigma: "\u03C2", simdot: "\u2A6A", simg: "\u2A9E", simgE: "\u2AA0", siml: "\u2A9D", simlE: "\u2A9F", simne: "\u2246", simplus: "\u2A24", simrarr: "\u2972", smashp: "\u2A33", smeparsl: "\u29E4", smile: "\u2323", ssmile: "\u2323", smt: "\u2AAA", smte: "\u2AAC", smtes: "\u2AAC\uFE00", softcy: "\u044C", sol: "/", solb: "\u29C4", solbar: "\u233F", sopf: "\u{1D564}", spades: "\u2660", spadesuit: "\u2660", sqcaps: "\u2293\uFE00", sqcups: "\u2294\uFE00", sscr: "\u{1D4C8}", star: "\u2606", sub: "\u2282", subset: "\u2282", subE: "\u2AC5", subseteqq: "\u2AC5", subdot: "\u2ABD", subedot: "\u2AC3", submult: "\u2AC1", subnE: "\u2ACB", subsetneqq: "\u2ACB", subne: "\u228A", subsetneq: "\u228A", subplus: "\u2ABF", subrarr: "\u2979", subsim: "\u2AC7", subsub: "\u2AD5", subsup: "\u2AD3", sung: "\u266A", sup1: "\xB9", sup2: "\xB2", sup3: "\xB3", supE: "\u2AC6", supseteqq: "\u2AC6", supdot: "\u2ABE", supdsub: "\u2AD8", supedot: "\u2AC4", suphsol: "\u27C9", suphsub: "\u2AD7", suplarr: "\u297B", supmult: "\u2AC2", supnE: "\u2ACC", supsetneqq: "\u2ACC", supne: "\u228B", supsetneq: "\u228B", supplus: "\u2AC0", supsim: "\u2AC8", supsub: "\u2AD4", supsup: "\u2AD6", swArr: "\u21D9", swnwar: "\u292A", szlig: "\xDF", target: "\u2316", tau: "\u03C4", tcaron: "\u0165", tcedil: "\u0163", tcy: "\u0442", telrec: "\u2315", tfr: "\u{1D531}", theta: "\u03B8", thetasym: "\u03D1", thetav: "\u03D1", vartheta: "\u03D1", thorn: "\xFE", times: "\xD7", timesbar: "\u2A31", timesd: "\u2A30", topbot: "\u2336", topcir: "\u2AF1", topf: "\u{1D565}", topfork: "\u2ADA", tprime: "\u2034", triangle: "\u25B5", utri: "\u25B5", triangleq: "\u225C", trie: "\u225C", tridot: "\u25EC", triminus: "\u2A3A", triplus: "\u2A39", trisb: "\u29CD", tritime: "\u2A3B", trpezium: "\u23E2", tscr: "\u{1D4C9}", tscy: "\u0446", tshcy: "\u045B", tstrok: "\u0167", uHar: "\u2963", uacute: "\xFA", ubrcy: "\u045E", ubreve: "\u016D", ucirc: "\xFB", ucy: "\u0443", udblac: "\u0171", ufisht: "\u297E", ufr: "\u{1D532}", ugrave: "\xF9", uhblk: "\u2580", ulcorn: "\u231C", ulcorner: "\u231C", ulcrop: "\u230F", ultri: "\u25F8", umacr: "\u016B", uogon: "\u0173", uopf: "\u{1D566}", upsi: "\u03C5", upsilon: "\u03C5", upuparrows: "\u21C8", uuarr: "\u21C8", urcorn: "\u231D", urcorner: "\u231D", urcrop: "\u230E", uring: "\u016F", urtri: "\u25F9", uscr: "\u{1D4CA}", utdot: "\u22F0", utilde: "\u0169", uuml: "\xFC", uwangle: "\u29A7", vBar: "\u2AE8", vBarv: "\u2AE9", vangrt: "\u299C", varsubsetneq: "\u228A\uFE00", vsubne: "\u228A\uFE00", varsubsetneqq: "\u2ACB\uFE00", vsubnE: "\u2ACB\uFE00", varsupsetneq: "\u228B\uFE00", vsupne: "\u228B\uFE00", varsupsetneqq: "\u2ACC\uFE00", vsupnE: "\u2ACC\uFE00", vcy: "\u0432", veebar: "\u22BB", veeeq: "\u225A", vellip: "\u22EE", vfr: "\u{1D533}", vopf: "\u{1D567}", vscr: "\u{1D4CB}", vzigzag: "\u299A", wcirc: "\u0175", wedbar: "\u2A5F", wedgeq: "\u2259", weierp: "\u2118", wp: "\u2118", wfr: "\u{1D534}", wopf: "\u{1D568}", wscr: "\u{1D4CC}", xfr: "\u{1D535}", xi: "\u03BE", xnis: "\u22FB", xopf: "\u{1D569}", xscr: "\u{1D4CD}", yacute: "\xFD", yacy: "\u044F", ycirc: "\u0177", ycy: "\u044B", yen: "\xA5", yfr: "\u{1D536}", yicy: "\u0457", yopf: "\u{1D56A}", yscr: "\u{1D4CE}", yucy: "\u044E", yuml: "\xFF", zacute: "\u017A", zcaron: "\u017E", zcy: "\u0437", zdot: "\u017C", zeta: "\u03B6", zfr: "\u{1D537}", zhcy: "\u0436", zigrarr: "\u21DD", zopf: "\u{1D56B}", zscr: "\u{1D4CF}", zwj: "\u200D", zwnj: "\u200C" };
_e.ngsp = "\uE500";
l = (function(e) {
return e[e.TAG_OPEN_START = 0] = "TAG_OPEN_START", e[e.TAG_OPEN_END = 1] = "TAG_OPEN_END", e[e.TAG_OPEN_END_VOID = 2] = "TAG_OPEN_END_VOID", e[e.TAG_CLOSE = 3] = "TAG_CLOSE", e[e.INCOMPLETE_TAG_OPEN = 4] = "INCOMPLETE_TAG_OPEN", e[e.TEXT = 5] = "TEXT", e[e.ESCAPABLE_RAW_TEXT = 6] = "ESCAPABLE_RAW_TEXT", e[e.RAW_TEXT = 7] = "RAW_TEXT", e[e.INTERPOLATION = 8] = "INTERPOLATION", e[e.ENCODED_ENTITY = 9] = "ENCODED_ENTITY", e[e.COMMENT_START = 10] = "COMMENT_START", e[e.COMMENT_END = 11] = "COMMENT_END", e[e.CDATA_START = 12] = "CDATA_START", e[e.CDATA_END = 13] = "CDATA_END", e[e.ATTR_NAME = 14] = "ATTR_NAME", e[e.ATTR_QUOTE = 15] = "ATTR_QUOTE", e[e.ATTR_VALUE_TEXT = 16] = "ATTR_VALUE_TEXT", e[e.ATTR_VALUE_INTERPOLATION = 17] = "ATTR_VALUE_INTERPOLATION", e[e.DOC_TYPE_START = 18] = "DOC_TYPE_START", e[e.DOC_TYPE_END = 19] = "DOC_TYPE_END", e[e.EXPANSION_FORM_START = 20] = "EXPANSION_FORM_START", e[e.EXPANSION_CASE_VALUE = 21] = "EXPANSION_CASE_VALUE", e[e.EXPANSION_CASE_EXP_START = 22] = "EXPANSION_CASE_EXP_START", e[e.EXPANSION_CASE_EXP_END = 23] = "EXPANSION_CASE_EXP_END", e[e.EXPANSION_FORM_END = 24] = "EXPANSION_FORM_END", e[e.BLOCK_OPEN_START = 25] = "BLOCK_OPEN_START", e[e.BLOCK_OPEN_END = 26] = "BLOCK_OPEN_END", e[e.BLOCK_CLOSE = 27] = "BLOCK_CLOSE", e[e.BLOCK_PARAMETER = 28] = "BLOCK_PARAMETER", e[e.INCOMPLETE_BLOCK_OPEN = 29] = "INCOMPLETE_BLOCK_OPEN", e[e.LET_START = 30] = "LET_START", e[e.LET_VALUE = 31] = "LET_VALUE", e[e.LET_END = 32] = "LET_END", e[e.INCOMPLETE_LET = 33] = "INCOMPLETE_LET", e[e.COMPONENT_OPEN_START = 34] = "COMPONENT_OPEN_START", e[e.COMPONENT_OPEN_END = 35] = "COMPONENT_OPEN_END", e[e.COMPONENT_OPEN_END_VOID = 36] = "COMPONENT_OPEN_END_VOID", e[e.COMPONENT_CLOSE = 37] = "COMPONENT_CLOSE", e[e.INCOMPLETE_COMPONENT_OPEN = 38] = "INCOMPLETE_COMPONENT_OPEN", e[e.DIRECTIVE_NAME = 39] = "DIRECTIVE_NAME", e[e.DIRECTIVE_OPEN = 40] = "DIRECTIVE_OPEN", e[e.DIRECTIVE_CLOSE = 41] = "DIRECTIVE_CLOSE", e[e.EOF = 42] = "EOF", e;
})({});
qa = class {
constructor(e, t, r) {
this.tokens = e, this.errors = t, this.nonNormalizedIcuExpressions = r;
}
};
Fa = /\r\n?/g;
gr = (function(e) {
return e.HEX = "hexadecimal", e.DEC = "decimal", e;
})(gr || {}), Va = ["@if", "@else", "@for", "@switch", "@case", "@default", "@empty", "@defer", "@placeholder", "@loading", "@error"], st = { start: "{{", end: "}}" }, Ua = class {
_cursor;
_tokenizeIcu;
_leadingTriviaCodePoints;
_canSelfClose;
_allowHtmComponentClosingTags;
_currentTokenStart = null;
_currentTokenType = null;
_expansionCaseStack = [];
_openDirectiveCount = 0;
_inInterpolation = !1;
_preserveLineEndings;
_i18nNormalizeLineEndingsInICUs;
_fullNameStack = [];
_tokenizeBlocks;
_tokenizeLet;
_selectorlessEnabled;
tokens = [];
errors = [];
nonNormalizedIcuExpressions = [];
constructor(e, t, r) {
this._getTagContentType = t, this._tokenizeIcu = r.tokenizeExpansionForms || !1, this._leadingTriviaCodePoints = r.leadingTriviaChars && r.leadingTriviaChars.map((i) => i.codePointAt(0) || 0), this._canSelfClose = r.canSelfClose || !1, this._allowHtmComponentClosingTags = r.allowHtmComponentClosingTags || !1;
let n = r.range || { endPos: e.content.length, startPos: 0, startLine: 0, startCol: 0 };
this._cursor = r.escapedString ? new Ka(e, n) : new Oi(e, n), this._preserveLineEndings = r.preserveLineEndings || !1, this._i18nNormalizeLineEndingsInICUs = r.i18nNormalizeLineEndingsInICUs || !1, this._tokenizeBlocks = r.tokenizeBlocks ?? !0, this._tokenizeLet = r.tokenizeLet ?? !0, this._selectorlessEnabled = r.selectorlessEnabled ?? !1;
try {
this._cursor.init();
} catch (i) {
this.handleError(i);
}
}
_processCarriageReturns(e) {
return this._preserveLineEndings ? e : e.replace(Fa, `
`);
}
tokenize() {
for (; this._cursor.peek() !== 0; ) {
let e = this._cursor.clone();
try {
if (this._attemptCharCode(60)) if (this._attemptCharCode(33)) this._attemptStr("[CDATA[") ? this._consumeCdata(e) : this._attemptStr("--") ? this._consumeComment(e) : this._attemptStrCaseInsensitive("doctype") ? this._consumeDocType(e) : this._consumeBogusComment(e);
else if (this._attemptCharCode(47)) this._consumeTagClose(e);
else {
let t = this._cursor.clone();
this._attemptCharCode(63) ? (this._cursor = t, this._consumeBogusComment(e)) : this._consumeTagOpen(e);
}
else this._tokenizeLet && this._cursor.peek() === 64 && !this._inInterpolation && this._isLetStart() ? this._consumeLetDeclaration(e) : this._tokenizeBlocks && this._isBlockStart() ? this._consumeBlockStart(e) : this._tokenizeBlocks && !this._inInterpolation && !this._isInExpansionCase() && !this._isInExpansionForm() && this._attemptCharCode(125) ? this._consumeBlockEnd(e) : this._tokenizeIcu && this._tokenizeExpansionForm() || this._consumeWithInterpolation(l.TEXT, l.INTERPOLATION, () => this._isTextEnd(), () => this._isTagStart());
} catch (t) {
this.handleError(t);
}
}
this._beginToken(l.EOF), this._endToken([]);
}
_getBlockName() {
let e = !1, t = this._cursor.clone();
return this._attemptCharCodeUntilFn((r) => it(r) ? !e : ja(r) ? (e = !0, !1) : !0), this._cursor.getChars(t).trim();
}
_consumeBlockStart(e) {
this._requireCharCode(64), this._beginToken(l.BLOCK_OPEN_START, e);
let t = this._endToken([this._getBlockName()]);
if (this._cursor.peek() === 40) if (this._cursor.advance(), this._consumeBlockParameters(), this._attemptCharCodeUntilFn(v), this._attemptCharCode(41)) this._attemptCharCodeUntilFn(v);
else {
t.type = l.INCOMPLETE_BLOCK_OPEN;
return;
}
if (t.parts[0] === "default never" && this._attemptCharCode(59)) {
this._beginToken(l.BLOCK_OPEN_END), this._endToken([]), this._beginToken(l.BLOCK_CLOSE), this._endToken([]);
return;
}
this._attemptCharCode(123) ? (this._beginToken(l.BLOCK_OPEN_END), this._endToken([])) : this._isBlockStart() && (t.parts[0] === "case" || t.parts[0] === "default") ? (this._beginToken(l.BLOCK_OPEN_END), this._endToken([]), this._beginToken(l.BLOCK_CLOSE), this._endToken([])) : t.type = l.INCOMPLETE_BLOCK_OPEN;
}
_consumeBlockEnd(e) {
this._beginToken(l.BLOCK_CLOSE, e), this._endToken([]);
}
_consumeBlockParameters() {
for (this._attemptCharCodeUntilFn(Ai); this._cursor.peek() !== 41 && this._cursor.peek() !== 0; ) {
this._beginToken(l.BLOCK_PARAMETER);
let e = this._cursor.clone(), t = null, r = 0;
for (; this._cursor.peek() !== 59 && this._cursor.peek() !== 0 || t !== null; ) {
let n = this._cursor.peek();
if (n === 92) this._cursor.advance();
else if (n === t) t = null;
else if (t === null && Dt(n)) t = n;
else if (n === 40 && t === null) r++;
else if (n === 41 && t === null) {
if (r === 0) break;
r > 0 && r--;
}
this._cursor.advance();
}
this._endToken([this._cursor.getChars(e)]), this._attemptCharCodeUntilFn(Ai);
}
}
_consumeLetDeclaration(e) {
if (this._requireStr("@let"), this._beginToken(l.LET_START, e), it(this._cursor.peek())) this._attemptCharCodeUntilFn(v);
else {
let r = this._endToken([this._cursor.getChars(e)]);
r.type = l.INCOMPLETE_LET;
return;
}
let t = this._endToken([this._getLetDeclarationName()]);
if (this._attemptCharCodeUntilFn(v), !this._attemptCharCode(61)) {
t.type = l.INCOMPLETE_LET;
return;
}
this._attemptCharCodeUntilFn((r) => v(r) && !Me(r)), this._consumeLetDeclarationValue(), this._cursor.peek() === 59 ? (this._beginToken(l.LET_END), this._endToken([]), this._cursor.advance()) : (t.type = l.INCOMPLETE_LET, t.sourceSpan = this._cursor.getSpan(e));
}
_getLetDeclarationName() {
let e = this._cursor.clone(), t = !1;
return this._attemptCharCodeUntilFn((r) => Re(r) || r === 36 || r === 95 || t && Ie(r) ? (t = !0, !1) : !0), this._cursor.getChars(e).trim();
}
_consumeLetDeclarationValue() {
let e = this._cursor.clone();
for (this._beginToken(l.LET_VALUE, e); this._cursor.peek() !== 0; ) {
let t = this._cursor.peek();
if (t === 59) break;
Dt(t) && (this._cursor.advance(), this._attemptCharCodeUntilFn((r) => r === 92 ? (this._cursor.advance(), !1) : r === t)), this._cursor.advance();
}
this._endToken([this._cursor.getChars(e)]);
}
_tokenizeExpansionForm() {
if (this.isExpansionFormStart()) return this._consumeExpansionFormStart(), !0;
if ($a(this._cursor.peek()) && this._isInExpansionForm()) return this._consumeExpansionCaseStart(), !0;
if (this._cursor.peek() === 125) {
if (this._isInExpansionCase()) return this._consumeExpansionCaseEnd(), !0;
if (this._isInExpansionForm()) return this._consumeExpansionFormEnd(), !0;
}
return !1;
}
_beginToken(e, t = this._cursor.clone()) {
this._currentTokenStart = t, this._currentTokenType = e;
}
_endToken(e, t) {
if (this._currentTokenStart === null) throw new ee(this._cursor.getSpan(t), "Programming error - attempted to end a token when there was no start to the token");
if (this._currentTokenType === null) throw new ee(this._cursor.getSpan(this._currentTokenStart), "Programming error - attempted to end a token which has no token type");
let r = { type: this._currentTokenType, parts: e, sourceSpan: (t ?? this._cursor).getSpan(this._currentTokenStart, this._leadingTriviaCodePoints) };
return this.tokens.push(r), this._currentTokenStart = null, this._currentTokenType = null, r;
}
_createError(e, t) {
this._isInExpansionForm() && (e += ` (Do you have an unescaped "{" in your template? Use "{{ '{' }}") to escape it.)`);
let r = new ee(t, e);
return this._currentTokenStart = null, this._currentTokenType = null, r;
}
handleError(e) {
if (e instanceof Er && (e = this._createError(e.msg, this._cursor.getSpan(e.cursor))), e instanceof ee) this.errors.push(e);
else throw e;
}
_attemptCharCode(e) {
return this._cursor.peek() === e ? (this._cursor.advance(), !0) : !1;
}
_attemptCharCodeCaseInsensitive(e) {
return Ya(this._cursor.peek(), e) ? (this._cursor.advance(), !0) : !1;
}
_requireCharCode(e) {
let t = this._cursor.clone();
if (!this._attemptCharCode(e)) throw this._createError(Se(this._cursor.peek()), this._cursor.getSpan(t));
}
_attemptStr(e) {
let t = e.length;
if (this._cursor.charsLeft() < t) return !1;
let r = this._cursor.clone();
for (let n = 0; n < t; n++) if (!this._attemptCharCode(e.charCodeAt(n))) return this._cursor = r, !1;
return !0;
}
_attemptStrCaseInsensitive(e) {
for (let t = 0; t < e.length; t++) if (!this._attemptCharCodeCaseInsensitive(e.charCodeAt(t))) return !1;
return !0;
}
_requireStr(e) {
let t = this._cursor.clone();
if (!this._attemptStr(e)) throw this._createError(Se(this._cursor.peek()), this._cursor.getSpan(t));
}
_requireStrCaseInsensitive(e) {
let t = this._cursor.clone();
if (!this._attemptStrCaseInsensitive(e)) throw this._createError(Se(this._cursor.peek()), this._cursor.getSpan(t));
}
_attemptCharCodeUntilFn(e) {
for (; !e(this._cursor.peek()); ) this._cursor.advance();
}
_requireCharCodeUntilFn(e, t) {
let r = this._cursor.clone();
if (this._attemptCharCodeUntilFn(e), this._cursor.diff(r) < t) throw this._createError(Se(this._cursor.peek()), this._cursor.getSpan(r));
}
_attemptUntilChar(e) {
for (; this._cursor.peek() !== e; ) this._cursor.advance();
}
_readChar() {
let e = String.fromCodePoint(this._cursor.peek());
return this._cursor.advance(), e;
}
_peekStr(e) {
let t = e.length;
if (this._cursor.charsLeft() < t) return !1;
let r = this._cursor.clone();
for (let n = 0; n < t; n++) {
if (r.peek() !== e.charCodeAt(n)) return !1;
r.advance();
}
return !0;
}
_isBlockStart() {
return this._cursor.peek() === 64 && Va.some((e) => this._peekStr(e));
}
_isLetStart() {
return this._cursor.peek() === 64 && this._peekStr("@let");
}
_consumeEntity(e) {
this._beginToken(l.ENCODED_ENTITY);
let t = this._cursor.clone();
if (this._cursor.advance(), this._attemptCharCode(35)) {
let r = this._attemptCharCode(120) || this._attemptCharCode(88), n = this._cursor.clone();
if (this._attemptCharCodeUntilFn(Ga), this._cursor.peek() != 59) {
this._cursor.advance();
let s = r ? gr.HEX : gr.DEC;
throw this._createError(Ha(s, this._cursor.getChars(t)), this._cursor.getSpan());
}
let i = this._cursor.getChars(n);
this._cursor.advance();
try {
let s = parseInt(i, r ? 16 : 10);
this._endToken([String.fromCodePoint(s), this._cursor.getChars(t)]);
} catch {
throw this._createError(xi(this._cursor.getChars(t)), this._cursor.getSpan());
}
} else {
let r = this._cursor.clone();
if (this._attemptCharCodeUntilFn(za), this._cursor.peek() != 59) this._beginToken(e, t), this._cursor = r, this._endToken(["&"]);
else {
let n = this._cursor.getChars(r);
this._cursor.advance();
let i = _e.hasOwnProperty(n) && _e[n];
if (!i) throw this._createError(xi(n), this._cursor.getSpan(t));
this._endToken([i, `&${n};`]);
}
}
}
_consumeRawText(e, t) {
this._beginToken(e ? l.ESCAPABLE_RAW_TEXT : l.RAW_TEXT);
let r = [];
for (; ; ) {
let n = this._cursor.clone(), i = t();
if (this._cursor = n, i) break;
e && this._cursor.peek() === 38 ? (this._endToken([this._processCarriageReturns(r.join(""))]), r.length = 0, this._consumeEntity(l.ESCAPABLE_RAW_TEXT), this._beginToken(l.ESCAPABLE_RAW_TEXT)) : r.push(this._readChar());
}
this._endToken([this._processCarriageReturns(r.join(""))]);
}
_consumeComment(e) {
this._beginToken(l.COMMENT_START, e), this._endToken([]), this._consumeRawText(!1, () => this._attemptStr("-->")), this._beginToken(l.COMMENT_END), this._requireStr("-->"), this._endToken([]);
}
_consumeBogusComment(e) {
this._beginToken(l.COMMENT_START, e), this._endToken([]), this._consumeRawText(!1, () => this._cursor.peek() === 62), this._beginToken(l.COMMENT_END), this._cursor.advance(), this._endToken([]);
}
_consumeCdata(e) {
this._beginToken(l.CDATA_START, e), this._endToken([]), this._consumeRawText(!1, () => this._attemptStr("]]>")), this._beginToken(l.CDATA_END), this._requireStr("]]>"), this._endToken([]);
}
_consumeDocType(e) {
this._beginToken(l.DOC_TYPE_START, e), this._endToken([]), this._consumeRawText(!1, () => this._cursor.peek() === 62), this._beginToken(l.DOC_TYPE_END), this._cursor.advance(), this._endToken([]);
}
_consumePrefixAndName(e) {
let t = this._cursor.clone(), r = "";
for (; this._cursor.peek() !== 58 && !Wa(this._cursor.peek()); ) this._cursor.advance();
let n;
this._cursor.peek() === 58 ? (r = this._cursor.getChars(t), this._cursor.advance(), n = this._cursor.clone()) : n = t, this._requireCharCodeUntilFn(e, r === "" ? 0 : 1);
let i = this._cursor.getChars(n);
return [r, i];
}
_consumeSingleLineComment() {
this._attemptCharCodeUntilFn((e) => Me(e) || e === 0), this._attemptCharCodeUntilFn(v);
}
_consumeMultiLineComment() {
this._attemptCharCodeUntilFn((e) => {
if (e === 0) return !0;
if (e === 42) {
let t = this._cursor.clone();
return t.advance(), t.peek() === 47;
}
return !1;
}), this._attemptStr("*/") && this._attemptCharCodeUntilFn(v);
}
_consumeTagOpen(e) {
let t, r, n, i, s = [];
try {
if (this._selectorlessEnabled && It(this._cursor.peek())) i = this._consumeComponentOpenStart(e), [n, r, t] = i.parts, r && (n += `:${r}`), t && (n += `:${t}`), this._attemptCharCodeUntilFn(v);
else {
if (!Re(this._cursor.peek())) throw this._createError(Se(this._cursor.peek()), this._cursor.getSpan(e));
i = this._consumeTagOpenStart(e), r = i.parts[0], t = n = i.parts[1], this._attemptCharCodeUntilFn(v);
}
for (; ; ) {
if (this._attemptStr("//")) {
this._consumeSingleLineComment();
continue;
}
if (this._attemptStr("/*")) {
this._consumeMultiLineComment();
continue;
}
if (Li(this._cursor.peek())) break;
if (this._selectorlessEnabled && this._cursor.peek() === 64) {
let o = this._cursor.clone(), c = o.clone();
c.advance(), It(c.peek()) && this._consumeDirective(o, c);
} else {
let o = this._consumeAttribute();
s.push(o);
}
}
i.type === l.COMPONENT_OPEN_START ? this._consumeComponentOpenEnd() : this._consumeTagOpenEnd();
} catch (o) {
if (o instanceof ee) {
i ? i.type = i.type === l.COMPONENT_OPEN_START ? l.INCOMPLETE_COMPONENT_OPEN : l.INCOMPLETE_TAG_OPEN : (this._beginToken(l.TEXT, e), this._endToken(["<"]));
return;
}
throw o;
}
if (this._canSelfClose && this.tokens[this.tokens.length - 1].type === l.TAG_OPEN_END_VOID) return;
let a = this._getTagContentType(t, r, this._fullNameStack.length > 0, s);
this._handleFullNameStackForTagOpen(r, t), a === R.RAW_TEXT ? this._consumeRawTextWithTagClose(r, i, n, !1) : a === R.ESCAPABLE_RAW_TEXT && this._consumeRawTextWithTagClose(r, i, n, !0);
}
_consumeRawTextWithTagClose(e, t, r, n) {
this._consumeRawText(n, () => !this._attemptCharCode(60) || !this._attemptCharCode(47) || (this._attemptCharCodeUntilFn(v), !this._attemptStrCaseInsensitive(e && t.type !== l.COMPONENT_OPEN_START ? `${e}:${r}` : r)) ? !1 : (this._attemptCharCodeUntilFn(v), this._attemptCharCode(62))), this._beginToken(t.type === l.COMPONENT_OPEN_START ? l.COMPONENT_CLOSE : l.TAG_CLOSE), this._requireCharCodeUntilFn((i) => i === 62, 3), this._cursor.advance(), this._endToken(t.parts), this._handleFullNameStackForTagClose(e, r);
}
_consumeTagOpenStart(e) {
this._beginToken(l.TAG_OPEN_START, e);
let t = this._consumePrefixAndName(Ee);
return this._endToken(t);
}
_consumeComponentOpenStart(e) {
this._beginToken(l.COMPONENT_OPEN_START, e);
let t = this._consumeComponentName();
return this._endToken(t);
}
_consumeComponentName() {
let e = this._cursor.clone();
for (; Ni(this._cursor.peek()); ) this._cursor.advance();
let t = this._cursor.getChars(e), r = "", n = "";
return this._cursor.peek() === 58 && (this._cursor.advance(), [r, n] = this._consumePrefixAndName(Ee)), [t, r, n];
}
_consumeAttribute() {
let [e, t] = this._consumeAttributeName(), r;
return this._attemptCharCodeUntilFn(v), this._attemptCharCode(61) && (this._attemptCharCodeUntilFn(v), r = this._consumeAttributeValue()), this._attemptCharCodeUntilFn(v), { prefix: e, name: t, value: r };
}
_consumeAttributeName() {
let e = this._cursor.peek();
if (e === 39 || e === 34) throw this._createError(Se(e), this._cursor.getSpan());
this._beginToken(l.ATTR_NAME);
let t;
if (this._openDirectiveCount > 0) {
let n = 0;
t = (i) => {
if (this._openDirectiveCount > 0) {
if (i === 40) n++;
else if (i === 41) {
if (n === 0) return !0;
n--;
}
}
return Ee(i);
};
} else if (e === 91) {
let n = 0;
t = (i) => (i === 91 ? n++ : i === 93 && n--, n <= 0 ? Ee(i) : Me(i));
} else t = Ee;
let r = this._consumePrefixAndName(t);
return this._endToken(r), r;
}
_consumeAttributeValue() {
let e;
if (this._cursor.peek() === 39 || this._cursor.peek() === 34) {
let t = this._cursor.peek();
this._consumeQuote(t);
let r = () => this._cursor.peek() === t;
e = this._consumeWithInterpolation(l.ATTR_VALUE_TEXT, l.ATTR_VALUE_INTERPOLATION, r, r), this._consumeQuote(t);
} else {
let t = () => Ee(this._cursor.peek());
e = this._consumeWithInterpolation(l.ATTR_VALUE_TEXT, l.ATTR_VALUE_INTERPOLATION, t, t);
}
return e;
}
_consumeQuote(e) {
this._beginToken(l.ATTR_QUOTE), this._requireCharCode(e), this._endToken([String.fromCodePoint(e)]);
}
_consumeTagOpenEnd() {
let e = this._attemptCharCode(47) ? l.TAG_OPEN_END_VOID : l.TAG_OPEN_END;
this._beginToken(e), this._requireCharCode(62), this._endToken([]);
}
_consumeComponentOpenEnd() {
let e = this._attemptCharCode(47) ? l.COMPONENT_OPEN_END_VOID : l.COMPONENT_OPEN_END;
this._beginToken(e), this._requireCharCode(62), this._endToken([]);
}
_consumeTagClose(e) {
if (this._selectorlessEnabled) {
let t = e.clone();
for (; t.peek() !== 62 && !It(t.peek()); ) t.advance();
if (It(t.peek())) {
this._beginToken(l.COMPONENT_CLOSE, e);
let r = this._consumeComponentName();
this._attemptCharCodeUntilFn(v), this._requireCharCode(62), this._endToken(r);
return;
}
}
if (this._beginToken(l.TAG_CLOSE, e), this._attemptCharCodeUntilFn(v), this._allowHtmComponentClosingTags && this._attemptCharCode(47)) this._attemptCharCodeUntilFn(v), this._requireCharCode(62), this._endToken([]);
else {
let [t, r] = this._consumePrefixAndName(Ee);
this._attemptCharCodeUntilFn(v), this._requireCharCode(62), this._endToken([t, r]), this._handleFullNameStackForTagClose(t, r);
}
}
_consumeExpansionFormStart() {
this._beginToken(l.EXPANSION_FORM_START), this._requireCharCode(123), this._endToken([]), this._expansionCaseStack.push(l.EXPANSION_FORM_START), this._beginToken(l.RAW_TEXT);
let e = this._readUntil(44), t = this._processCarriageReturns(e);
if (this._i18nNormalizeLineEndingsInICUs) this._endToken([t]);
else {
let n = this._endToken([e]);
t !== e && this.nonNormalizedIcuExpressions.push(n);
}
this._requireCharCode(44), this._attemptCharCodeUntilFn(v), this._beginToken(l.RAW_TEXT);
let r = this._readUntil(44);
this._endToken([r]), this._requireCharCode(44), this._attemptCharCodeUntilFn(v);
}
_consumeExpansionCaseStart() {
this._beginToken(l.EXPANSION_CASE_VALUE);
let e = this._readUntil(123).trim();
this._endToken([e]), this._attemptCharCodeUntilFn(v), this._beginToken(l.EXPANSION_CASE_EXP_START), this._requireCharCode(123), this._endToken([]), this._attemptCharCodeUntilFn(v), this._expansionCaseStack.push(l.EXPANSION_CASE_EXP_START);
}
_consumeExpansionCaseEnd() {
this._beginToken(l.EXPANSION_CASE_EXP_END), this._requireCharCode(125), this._endToken([]), this._attemptCharCodeUntilFn(v), this._expansionCaseStack.pop();
}
_consumeExpansionFormEnd() {
this._beginToken(l.EXPANSION_FORM_END), this._requireCharCode(125), this._endToken([]), this._expansionCaseStack.pop();
}
_consumeWithInterpolation(e, t, r, n) {
this._beginToken(e);
let i = [];
for (; !r(); ) {
let a = this._cursor.clone();
this._attemptStr(st.start) ? (this._endToken([this._processCarriageReturns(i.join(""))], a), i.length = 0, this._consumeInterpolation(t, a, n), this._beginToken(e)) : this._cursor.peek() === 38 ? (this._endToken([this._processCarriageReturns(i.join(""))]), i.length = 0, this._consumeEntity(e), this._beginToken(e)) : i.push(this._readChar());
}
this._inInterpolation = !1;
let s = this._processCarriageReturns(i.join(""));
return this._endToken([s]), s;
}
_consumeInterpolation(e, t, r) {
let n = [];
this._beginToken(e, t), n.push(st.start);
let i = this._cursor.clone(), s = null, a = !1;
for (; this._cursor.peek() !== 0 && (r === null || !r()); ) {
let o = this._cursor.clone();
if (this._isTagStart()) {
this._cursor = o, n.push(this._getProcessedChars(i, o)), this._endToken(n);
return;
}
if (s === null) if (this._attemptStr(st.end)) {
n.push(this._getProcessedChars(i, o)), n.push(st.end), this._endToken(n);
return;
} else this._attemptStr("//") && (a = !0);
let c = this._cursor.peek();
this._cursor.advance(), c === 92 ? this._cursor.advance() : c === s ? s = null : !a && s === null && Dt(c) && (s = c);
}
n.push(this._getProcessedChars(i, this._cursor)), this._endToken(n);
}
_consumeDirective(e, t) {
for (this._requireCharCode(64), this._cursor.advance(); Ni(this._cursor.peek()); ) this._cursor.advance();
this._beginToken(l.DIRECTIVE_NAME, e);
let r = this._cursor.getChars(t);
if (this._endToken([r]), this._attemptCharCodeUntilFn(v), this._cursor.peek() === 40) {
for (this._openDirectiveCount++, this._beginToken(l.DIRECTIVE_OPEN), this._cursor.advance(), this._endToken([]), this._attemptCharCodeUntilFn(v); !Li(this._cursor.peek()) && this._cursor.peek() !== 41; ) this._consumeAttribute();
if (this._attemptCharCodeUntilFn(v), this._openDirectiveCount--, this._cursor.peek() !== 41) {
if (this._cursor.peek() === 62 || this._cursor.peek() === 47) return;
throw this._createError(Se(this._cursor.peek()), this._cursor.getSpan(e));
}
this._beginToken(l.DIRECTIVE_CLOSE), this._cursor.advance(), this._endToken([]), this._attemptCharCodeUntilFn(v);
}
}
_getProcessedChars(e, t) {
return this._processCarriageReturns(t.getChars(e));
}
_isTextEnd() {
return !!(this._isTagStart() || this._cursor.peek() === 0 || this._tokenizeIcu && !this._inInterpolation && (this.isExpansionFormStart() || this._cursor.peek() === 125 && this._isInExpansionCase()) || this._tokenizeBlocks && !this._inInterpolation && !this._isInExpansion() && (this._isBlockStart() || this._isLetStart() || this._cursor.peek() === 125));
}
_isTagStart() {
if (this._cursor.peek() === 60) {
let e = this._cursor.clone();
e.advance();
let t = e.peek();
if (97 <= t && t <= 122 || 65 <= t && t <= 90 || t === 47 || t === 33) return !0;
}
return !1;
}
_readUntil(e) {
let t = this._cursor.clone();
return this._attemptUntilChar(e), this._cursor.getChars(t);
}
_isInExpansion() {
return this._isInExpansionCase() || this._isInExpansionForm();
}
_isInExpansionCase() {
return this._expansionCaseStack.length > 0 && this._expansionCaseStack[this._expansionCaseStack.length - 1] === l.EXPANSION_CASE_EXP_START;
}
_isInExpansionForm() {
return this._expansionCaseStack.length > 0 && this._expansionCaseStack[this._expansionCaseStack.length - 1] === l.EXPANSION_FORM_START;
}
isExpansionFormStart() {
if (this._cursor.peek() !== 123) return !1;
let e = this._cursor.clone(), t = this._attemptStr(st.start);
return this._cursor = e, !t;
}
_handleFullNameStackForTagOpen(e, t) {
let r = fe(e, t);
(this._fullNameStack.length === 0 || this._fullNameStack[this._fullNameStack.length - 1] === r) && this._fullNameStack.push(r);
}
_handleFullNameStackForTagClose(e, t) {
let r = fe(e, t);
this._fullNameStack.length !== 0 && this._fullNameStack[this._fullNameStack.length - 1] === r && this._fullNameStack.pop();
}
};
Oi = class _r {
state;
file;
input;
end;
constructor(t, r) {
if (t instanceof _r) {
this.file = t.file, this.input = t.input, this.end = t.end;
let n = t.state;
this.state = { peek: n.peek, offset: n.offset, line: n.line, column: n.column };
} else {
if (!r) throw new Error("Programming error: the range argument must be provided with a file argument.");
this.file = t, this.input = t.content, this.end = r.endPos, this.state = { peek: -1, offset: r.startPos, line: r.startLine, column: r.startCol };
}
}
clone() {
return new _r(this);
}
peek() {
return this.state.peek;
}
charsLeft() {
return this.end - this.state.offset;
}
diff(t) {
return this.state.offset - t.state.offset;
}
advance() {
this.advanceState(this.state);
}
init() {
this.updatePeek(this.state);
}
getSpan(t, r) {
t = t || this;
let n = t;
if (r) for (; this.diff(t) > 0 && r.indexOf(t.peek()) !== -1; ) n === t && (t = t.clone()), t.advance();
let i = this.locationFromCursor(t);
return new h(i, this.locationFromCursor(this), n !== t ? this.locationFromCursor(n) : i);
}
getChars(t) {
return this.input.substring(t.state.offset, this.state.offset);
}
charAt(t) {
return this.input.charCodeAt(t);
}
advanceState(t) {
if (t.offset >= this.end) throw this.state = t, new Er('Unexpected character "EOF"', this);
let r = this.charAt(t.offset);
r === 10 ? (t.line++, t.column = 0) : Me(r) || t.column++, t.offset++, this.updatePeek(t);
}
updatePeek(t) {
t.peek = t.offset >= this.end ? 0 : this.charAt(t.offset);
}
locationFromCursor(t) {
return new De(t.file, t.state.offset, t.state.line, t.state.column);
}
}, Ka = class Sr extends Oi {
internalState;
constructor(t, r) {
t instanceof Sr ? (super(t), this.internalState = { ...t.internalState }) : (super(t, r), this.internalState = this.state);
}
advance() {
this.state = this.internalState, super.advance(), this.processEscapeSequence();
}
init() {
super.init(), this.processEscapeSequence();
}
clone() {
return new Sr(this);
}
getChars(t) {
let r = t.clone(), n = "";
for (; r.internalState.offset < this.internalState.offset; ) n += String.fromCodePoint(r.peek()), r.advance();
return n;
}
processEscapeSequence() {
let t = () => this.internalState.peek;
if (t() === 92) if (this.internalState = { ...this.state }, this.advanceState(this.internalState), t() === 110) this.state.peek = 10;
else if (t() === 114) this.state.peek = 13;
else if (t() === 118) this.state.peek = 11;
else if (t() === 116) this.state.peek = 9;
else if (t() === 98) this.state.peek = 8;
else if (t() === 102) this.state.peek = 12;
else if (t() === 117) if (this.advanceState(this.internalState), t() === 123) {
this.advanceState(this.internalState);
let r = this.clone(), n = 0;
for (; t() !== 125; ) this.advanceState(this.internalState), n++;
this.state.peek = this.decodeHexDigits(r, n);
} else {
let r = this.clone();
this.advanceState(this.internalState), this.advanceState(this.internalState), this.advanceState(this.internalState), this.state.peek = this.decodeHexDigits(r, 4);
}
else if (t() === 120) {
this.advanceState(this.internalState);
let r = this.clone();
this.advanceState(this.internalState), this.state.peek = this.decodeHexDigits(r, 2);
} else if (dr(t())) {
let r = "", n = 0, i = this.clone();
for (; dr(t()) && n < 3; ) i = this.clone(), r += String.fromCodePoint(t()), this.advanceState(this.internalState), n++;
this.state.peek = parseInt(r, 8), this.internalState = i.internalState;
} else Me(this.internalState.peek) ? (this.advanceState(this.internalState), this.state = this.internalState) : this.state.peek = this.internalState.peek;
}
decodeHexDigits(t, r) {
let n = this.input.slice(t.internalState.offset, t.internalState.offset + r), i = parseInt(n, 16);
if (isNaN(i)) throw t.state = t.internalState, new Er("Invalid hexadecimal escape sequence", t);
return i;
}
}, Er = class extends Error {
constructor(e, t) {
super(e), this.msg = e, this.cursor = t, Object.setPrototypeOf(this, new.target.prototype);
}
}, y = class Ri extends ee {
static create(t, r, n) {
return new Ri(t, r, n);
}
constructor(t, r, n) {
super(r, n), this.elementName = t;
}
}, Qa = class {
constructor(e, t) {
this.rootNodes = e, this.errors = t;
}
}, Mi = class {
constructor(e) {
this.getTagDefinition = e;
}
parse(e, t, r, n = !1, i) {
let s = (m) => (_, ...T) => m(_.toLowerCase(), ...T), a = n ? this.getTagDefinition : s(this.getTagDefinition), o = (m) => a(m).getContentType(), c = n ? i : s(i), u = Pi(e, t, i ? (m, _, T, P) => {
let z = c(m, _, T, P);
return z !== void 0 ? z : o(m);
} : o, r), p = r && r.canSelfClose || !1, d = r && r.allowHtmComponentClosingTags || !1, g = new Ja(u.tokens, a, p, d, n);
return g.build(), new Qa(g.rootNodes, [...u.errors, ...g.errors]);
}
}, Ja = class Bi {
_index = -1;
_peek;
_containerStack = [];
rootNodes = [];
errors = [];
constructor(t, r, n, i, s) {
this.tokens = t, this.tagDefinitionResolver = r, this.canSelfClose = n, this.allowHtmComponentClosingTags = i, this.isTagNameCaseSensitive = s, this._advance();
}
build() {
for (; this._peek.type !== l.EOF; ) this._peek.type === l.TAG_OPEN_START || this._peek.type === l.INCOMPLETE_TAG_OPEN ? this._consumeElementStartTag(this._advance()) : this._peek.type === l.TAG_CLOSE ? (this._closeVoidElement(), this._consumeElementEndTag(this._advance())) : this._peek.type === l.CDATA_START ? (this._closeVoidElement(), this._consumeCdata(this._advance())) : this._peek.type === l.COMMENT_START ? (this._closeVoidElement(), this._consumeComment(this._advance())) : this._peek.type === l.TEXT || this._peek.type === l.RAW_TEXT || this._peek.type === l.ESCAPABLE_RAW_TEXT ? (this._closeVoidElement(), this._consumeText(this._advance())) : this._peek.type === l.EXPANSION_FORM_START ? this._consumeExpansion(this._advance()) : this._peek.type === l.BLOCK_OPEN_START ? (this._closeVoidElement(), this._consumeBlockOpen(this._advance())) : this._peek.type === l.BLOCK_CLOSE ? (this._closeVoidElement(), this._consumeBlockClose(this._advance())) : this._peek.type === l.INCOMPLETE_BLOCK_OPEN ? (this._closeVoidElement(), this._consumeIncompleteBlock(this._advance())) : this._peek.type === l.LET_START ? (this._closeVoidElement(), this._consumeLet(this._advance())) : this._peek.type === l.DOC_TYPE_START ? this._consumeDocType(this._advance()) : this._peek.type === l.INCOMPLETE_LET ? (this._closeVoidElement(), this._consumeIncompleteLet(this._advance())) : this._peek.type === l.COMPONENT_OPEN_START || this._peek.type === l.INCOMPLETE_COMPONENT_OPEN ? this._consumeComponentStartTag(this._advance()) : this._peek.type === l.COMPONENT_CLOSE ? this._consumeComponentEndTag(this._advance()) : this._advance();
for (let t of this._containerStack) t instanceof ge && this.errors.push(y.create(t.name, t.sourceSpan, `Unclosed block "${t.name}"`));
}
_advance() {
let t = this._peek;
return this._index < this.tokens.length - 1 && this._index++, this._peek = this.tokens[this._index], t;
}
_advanceIf(t) {
return this._peek.type === t ? this._advance() : null;
}
_consumeCdata(t) {
let r = this._advance(), n = this._getText(r), i = this._advanceIf(l.CDATA_END);
this._addToParent(new Si(n, new h(t.sourceSpan.start, (i || r).sourceSpan.end), [r]));
}
_consumeComment(t) {
let r = this._advanceIf(l.RAW_TEXT), n = this._advanceIf(l.COMMENT_END), i = r != null ? r.parts[0].trim() : null, s = n == null ? t.sourceSpan : new h(t.sourceSpan.start, n.sourceSpan.end, t.sourceSpan.fullStart);
this._addToParent(new Ti(i, s));
}
_consumeDocType(t) {
let r = this._advanceIf(l.RAW_TEXT), n = this._advanceIf(l.DOC_TYPE_END), i = r != null ? r.parts[0].trim() : null, s = new h(t.sourceSpan.start, (n || r || t).sourceSpan.end);
this._addToParent(new bi(i, s));
}
_consumeExpansion(t) {
let r = this._advance(), n = this._advance(), i = [];
for (; this._peek.type === l.EXPANSION_CASE_VALUE; ) {
let a = this._parseExpansionCase();
if (!a) return;
i.push(a);
}
if (this._peek.type !== l.EXPANSION_FORM_END) {
this.errors.push(y.create(null, this._peek.sourceSpan, "Invalid ICU message. Missing '}'."));
return;
}
let s = new h(t.sourceSpan.start, this._peek.sourceSpan.end, t.sourceSpan.fullStart);
this._addToParent(new Ei(r.parts[0], n.parts[0], i, s, r.sourceSpan)), this._advance();
}
_parseExpansionCase() {
let t = this._advance();
if (this._peek.type !== l.EXPANSION_CASE_EXP_START) return this.errors.push(y.create(null, this._peek.sourceSpan, "Invalid ICU message. Missing '{'.")), null;
let r = this._advance(), n = this._collectExpansionExpTokens(r);
if (!n) return null;
let i = this._advance();
n.push({ type: l.EOF, parts: [], sourceSpan: i.sourceSpan });
let s = new Bi(n, this.tagDefinitionResolver, this.canSelfClose, this.allowHtmComponentClosingTags, this.isTagNameCaseSensitive);
if (s.build(), s.errors.length > 0) return this.errors = this.errors.concat(s.errors), null;
let a = new h(t.sourceSpan.start, i.sourceSpan.end, t.sourceSpan.fullStart), o = new h(r.sourceSpan.start, i.sourceSpan.end, r.sourceSpan.fullStart);
return new Ci(t.parts[0], s.rootNodes, a, t.sourceSpan, o);
}
_collectExpansionExpTokens(t) {
let r = [], n = [l.EXPANSION_CASE_EXP_START];
for (; ; ) {
if ((this._peek.type === l.EXPANSION_FORM_START || this._peek.type === l.EXPANSION_CASE_EXP_START) && n.push(this._peek.type), this._peek.type === l.EXPANSION_CASE_EXP_END) if (Di(n, l.EXPANSION_CASE_EXP_START)) {
if (n.pop(), n.length === 0) return r;
} else return this.errors.push(y.create(null, t.sourceSpan, "Invalid ICU message. Missing '}'.")), null;
if (this._peek.type === l.EXPANSION_FORM_END) if (Di(n, l.EXPANSION_FORM_START)) n.pop();
else return this.errors.push(y.create(null, t.sourceSpan, "Invalid ICU message. Missing '}'.")), null;
if (this._peek.type === l.EOF) return this.errors.push(y.create(null, t.sourceSpan, "Invalid ICU message. Missing '}'.")), null;
r.push(this._advance());
}
}
_getText(t) {
let r = t.parts[0];
if (r.length > 0 && r[0] == `
`) {
var n;
let i = this._getClosestElementLikeParent();
i != null && i.children.length == 0 && !((n = this._getTagDefinition(i)) === null || n === void 0) && n.ignoreFirstLf && (r = r.substring(1));
}
return r;
}
_consumeText(t) {
let r = [t], n = t.sourceSpan, i = t.parts[0];
if (i.length > 0 && i[0] === `
`) {
var s;
let a = this._getContainer();
a != null && a.children.length === 0 && !((s = this._getTagDefinition(a)) === null || s === void 0) && s.ignoreFirstLf && (i = i.substring(1), r[0] = { type: t.type, sourceSpan: t.sourceSpan, parts: [i] });
}
for (; this._peek.type === l.INTERPOLATION || this._peek.type === l.TEXT || this._peek.type === l.ENCODED_ENTITY; ) t = this._advance(), r.push(t), t.type === l.INTERPOLATION ? i += t.parts.join("").replace(/&([^;]+);/g, Ii) : t.type === l.ENCODED_ENTITY ? i += t.parts[0] : i += t.parts.join("");
if (i.length > 0) {
let a = t.sourceSpan;
this._addToParent(new _i(i, new h(n.start, a.end, n.fullStart, n.details), r));
}
}
_closeVoidElement() {
var t;
let r = this._getContainer();
r !== null && !((t = this._getTagDefinition(r)) === null || t === void 0) && t.isVoid && this._containerStack.pop();
}
_consumeElementStartTag(t) {
var r;
let n = [], i = [];
this._consumeAttributesAndDirectives(n, i);
let s = this._getElementFullName(t, this._getClosestElementLikeParent()), a = this._getTagDefinition(s), o = !1;
if (this._peek.type === l.TAG_OPEN_END_VOID) {
this._advance(), o = !0;
let T = this._getTagDefinition(s);
this.canSelfClose || T?.canSelfClose || Pe(s) !== null || T?.isVoid || this.errors.push(y.create(s, t.sourceSpan, `Only void, custom and foreign elements can be self closed "${t.parts[1]}"`));
} else this._peek.type === l.TAG_OPEN_END && (this._advance(), o = !1);
let c = this._peek.sourceSpan.fullStart, u = new h(t.sourceSpan.start, c, t.sourceSpan.fullStart), p = new h(t.sourceSpan.start, c, t.sourceSpan.fullStart), d = new h(t.sourceSpan.start.moveBy(1), t.sourceSpan.end), g = new te(s, n, i, [], o, u, p, void 0, d, a?.isVoid ?? !1), m = this._getContainer(), _ = m !== null && !!(!((r = this._getTagDefinition(m)) === null || r === void 0) && r.isClosedByChild(g.name));
this._pushContainer(g, _), o ? this._popContainer(s, te, u) : t.type === l.INCOMPLETE_TAG_OPEN && (this._popContainer(s, te, null), this.errors.push(y.create(s, u, `Opening tag "${s}" not terminated.`)));
}
_consumeComponentStartTag(t) {
var r;
let n = t.parts[0], i = [], s = [];
this._consumeAttributesAndDirectives(i, s);
let a = this._getClosestElementLikeParent(), o = this._getComponentTagName(t, a), c = this._getComponentFullName(t, a), u = this._peek.type === l.COMPONENT_OPEN_END_VOID;
this._advance();
let p = this._peek.sourceSpan.fullStart, d = new h(t.sourceSpan.start, p, t.sourceSpan.fullStart), g = new G(n, o, c, i, s, [], u, d, new h(t.sourceSpan.start, p, t.sourceSpan.fullStart), void 0), m = this._getContainer(), _ = m !== null && g.tagName !== null && !!(!((r = this._getTagDefinition(m)) === null || r === void 0) && r.isClosedByChild(g.tagName));
this._pushContainer(g, _), u ? this._popContainer(c, G, d) : t.type === l.INCOMPLETE_COMPONENT_OPEN && (this._popContainer(c, G, null), this.errors.push(y.create(c, d, `Opening tag "${c}" not terminated.`)));
}
_consumeAttributesAndDirectives(t, r) {
for (; this._peek.type === l.ATTR_NAME || this._peek.type === l.DIRECTIVE_NAME; ) this._peek.type === l.DIRECTIVE_NAME ? r.push(this._consumeDirective(this._peek)) : t.push(this._consumeAttr(this._advance()));
}
_consumeComponentEndTag(t) {
let r = this._getComponentFullName(t, this._getClosestElementLikeParent());
if (!this._popContainer(r, G, t.sourceSpan)) {
let n = this._containerStack[this._containerStack.length - 1], i;
n instanceof G && n.componentName === t.parts[0] ? i = `, did you mean "${n.fullName}"?` : i = ". It may happen when the tag has already been closed by another tag.";
let s = `Unexpected closing tag "${r}"${i}`;
this.errors.push(y.create(r, t.sourceSpan, s));
}
}
_getTagDefinition(t) {
return typeof t == "string" ? this.tagDefinitionResolver(t) : t instanceof te ? this.tagDefinitionResolver(t.name) : t instanceof G && t.tagName !== null ? this.tagDefinitionResolver(t.tagName) : null;
}
_pushContainer(t, r) {
r && this._containerStack.pop(), this._addToParent(t), this._containerStack.push(t);
}
_consumeElementEndTag(t) {
var r;
let n = this.allowHtmComponentClosingTags && t.parts.length === 0 ? null : this._getElementFullName(t, this._getClosestElementLikeParent());
if (n && !((r = this._getTagDefinition(n)) === null || r === void 0) && r.isVoid) this.errors.push(y.create(n, t.sourceSpan, `Void elements do not have end tags "${t.parts[1]}"`));
else if (!this._popContainer(n, te, t.sourceSpan)) {
let i = `Unexpected closing tag "${n}". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags`;
this.errors.push(y.create(n, t.sourceSpan, i));
}
}
_popContainer(t, r, n) {
let i = !1;
for (let a = this._containerStack.length - 1; a >= 0; a--) {
var s;
let o = this._containerStack[a], c = o instanceof G ? o.fullName : o.name;
if (Pe(c) ? c === t : (c === t || t === null) && o instanceof r) return o.endSourceSpan = n, o.sourceSpan.end = n !== null ? n.end : o.sourceSpan.end, this._containerStack.splice(a, this._containerStack.length - a), !i;
(o instanceof ge || !(!((s = this._getTagDefinition(o)) === null || s === void 0) && s.closedByParent)) && (i = !0);
}
return !1;
}
_consumeAttr(t) {
let r = fe(t.parts[0], t.parts[1]), n = t.sourceSpan.end, i;
this._peek.type === l.ATTR_QUOTE && (i = this._advance());
let s = "", a = [], o, c;
if (this._peek.type === l.ATTR_VALUE_TEXT) for (o = this._peek.sourceSpan, c = this._peek.sourceSpan.end; this._peek.type === l.ATTR_VALUE_TEXT || this._peek.type === l.ATTR_VALUE_INTERPOLATION || this._peek.type === l.ENCODED_ENTITY; ) {
let p = this._advance();
a.push(p), p.type === l.ATTR_VALUE_INTERPOLATION ? s += p.parts.join("").replace(/&([^;]+);/g, Ii) : p.type === l.ENCODED_ENTITY ? s += p.parts[0] : s += p.parts.join(""), c = n = p.sourceSpan.end;
}
this._peek.type === l.ATTR_QUOTE && (c = n = this._advance().sourceSpan.end);
let u = o && c && new h(i?.sourceSpan.start ?? o.start, c, i?.sourceSpan.fullStart ?? o.fullStart);
return new vi(r, s, new h(t.sourceSpan.start, n, t.sourceSpan.fullStart), t.sourceSpan, u, a.length > 0 ? a : void 0, void 0);
}
_consumeDirective(t) {
let r = [], n = t.sourceSpan.end, i = null;
if (this._advance(), this._peek.type === l.DIRECTIVE_OPEN) {
for (n = this._peek.sourceSpan.end, this._advance(); this._peek.type === l.ATTR_NAME; ) r.push(this._consumeAttr(this._advance()));
this._peek.type === l.DIRECTIVE_CLOSE ? (i = this._peek.sourceSpan, this._advance()) : this.errors.push(y.create(null, t.sourceSpan, "Unterminated directive definition"));
}
let s = new h(t.sourceSpan.start, n, t.sourceSpan.fullStart), a = new h(s.start, i === null ? t.sourceSpan.end : i.end, s.fullStart);
return new wi(t.parts[0], r, a, s, i);
}
_consumeBlockOpen(t) {
let r = [];
for (; this._peek.type === l.BLOCK_PARAMETER; ) {
let o = this._advance();
r.push(new hr(o.parts[0], o.sourceSpan));
}
this._peek.type === l.BLOCK_OPEN_END && this._advance();
let n = this._peek.sourceSpan.fullStart, i = new h(t.sourceSpan.start, n, t.sourceSpan.fullStart), s = new h(t.sourceSpan.start, n, t.sourceSpan.fullStart), a = new ge(t.parts[0], r, [], i, t.sourceSpan, s);
this._pushContainer(a, !1);
}
_consumeBlockClose(t) {
let r = this._containerStack.length, n = this._containerStack[r - 1];
if (!this._popContainer(null, ge, t.sourceSpan)) {
if (this._containerStack.length < r) {
let i = n instanceof G ? n.fullName : n.name;
this.errors.push(y.create(null, t.sourceSpan, `Unexpected closing block. The block may have been closed earlier. Did you forget to close the <${i}> element? If you meant to write the \`}\` character, you should use the "}" HTML entity instead.`));
return;
}
this.errors.push(y.create(null, t.sourceSpan, 'Unexpected closing block. The block may have been closed earlier. If you meant to write the `}` character, you should use the "}" HTML entity instead.'));
}
}
_consumeIncompleteBlock(t) {
let r = [];
for (; this._peek.type === l.BLOCK_PARAMETER; ) {
let o = this._advance();
r.push(new hr(o.parts[0], o.sourceSpan));
}
let n = this._peek.sourceSpan.fullStart, i = new h(t.sourceSpan.start, n, t.sourceSpan.fullStart), s = new h(t.sourceSpan.start, n, t.sourceSpan.fullStart), a = new ge(t.parts[0], r, [], i, t.sourceSpan, s);
this._pushContainer(a, !1), this._popContainer(null, ge, null), this.errors.push(y.create(t.parts[0], i, `Incomplete block "${t.parts[0]}". If you meant to write the @ character, you should use the "@" HTML entity instead.`));
}
_consumeLet(t) {
let r = t.parts[0], n, i;
if (this._peek.type !== l.LET_VALUE) {
this.errors.push(y.create(t.parts[0], t.sourceSpan, `Invalid @let declaration "${r}". Declaration must have a value.`));
return;
} else n = this._advance();
if (this._peek.type !== l.LET_END) {
this.errors.push(y.create(t.parts[0], t.sourceSpan, `Unterminated @let declaration "${r}". Declaration must be terminated with a semicolon.`));
return;
} else i = this._advance();
let s = i.sourceSpan.fullStart, a = new h(t.sourceSpan.start, s, t.sourceSpan.fullStart), o = t.sourceSpan.toString().lastIndexOf(r), c = new h(t.sourceSpan.start.moveBy(o), t.sourceSpan.end), u = new mr(r, n.parts[0], a, c, n.sourceSpan);
this._addToParent(u);
}
_consumeIncompleteLet(t) {
let r = t.parts[0] ?? "", n = r ? ` "${r}"` : "";
if (r.length > 0) {
let i = t.sourceSpan.toString().lastIndexOf(r), s = new h(t.sourceSpan.start.moveBy(i), t.sourceSpan.end), a = new h(t.sourceSpan.start, t.sourceSpan.start.moveBy(0)), o = new mr(r, "", t.sourceSpan, s, a);
this._addToParent(o);
}
this.errors.push(y.create(t.parts[0], t.sourceSpan, `Incomplete @let declaration${n}. @let declarations must be written as \`@let <name> = <value>;\``));
}
_getContainer() {
return this._containerStack.length > 0 ? this._containerStack[this._containerStack.length - 1] : null;
}
_getClosestElementLikeParent() {
for (let t = this._containerStack.length - 1; t > -1; t--) {
let r = this._containerStack[t];
if (r instanceof te || r instanceof G) return r;
}
return null;
}
_addToParent(t) {
let r = this._getContainer();
r === null ? this.rootNodes.push(t) : r.children.push(t);
}
_getElementFullName(t, r) {
return fe(this._getPrefix(t, r), t.parts[1]);
}
_getComponentFullName(t, r) {
let n = t.parts[0], i = this._getComponentTagName(t, r);
return i === null ? n : i.startsWith(":") ? n + i : `${n}:${i}`;
}
_getComponentTagName(t, r) {
let n = this._getPrefix(t, r), i = t.parts[2];
return !n && !i ? null : !n && i ? i : fe(n, i || "ng-component");
}
_getPrefix(t, r) {
var n;
let i, s;
if (t.type === l.COMPONENT_OPEN_START || t.type === l.INCOMPLETE_COMPONENT_OPEN || t.type === l.COMPONENT_CLOSE ? (i = t.parts[1], s = t.parts[2]) : (i = t.parts[0], s = t.parts[1]), i = i || ((n = this._getTagDefinition(s)) === null || n === void 0 ? void 0 : n.implicitNamespacePrefix) || "", !i && r) {
let a = r instanceof te ? r.name : r.tagName;
if (a !== null) {
let o = et(a)[1], c = this._getTagDefinition(o);
c !== null && !c.preventNamespaceInheritance && (i = Pe(a));
}
}
return i;
}
};
qi = class extends Mi {
constructor() {
super(Oe);
}
parse(e, t, r, n = !1, i) {
return super.parse(e, t, r, n, i);
}
};
Za = [to, ro, io, ao, oo, uo, lo, co, po, so];
Fi = eo;
mo = { features: { experimental_frontMatterSupport: { massageAstNode: !0, embed: !0, print: !0 } }, preprocess: Fi, print: ho, insertPragma: ti, massageAstNode: $r, embed: $n, getVisitorKeys: Xn }, Hi = mo, Vi = [{ name: "Angular", type: "markup", aceMode: "html", extensions: [".component.html"], tmScope: "text.html.basic", aliases: ["xhtml"], codemirrorMode: "htmlmixed", codemirrorMimeType: "text/html", parsers: ["angular"], vscodeLanguageIds: ["html"], filenames: [], linguistLanguageId: 146 }, { name: "HTML", type: "markup", aceMode: "html", extensions: [".html", ".hta", ".htm", ".html.hl", ".inc", ".xht", ".xhtml"], tmScope: "text.html.basic", aliases: ["xhtml"], codemirrorMode: "htmlmixed", codemirrorMimeType: "text/html", parsers: ["html"], vscodeLanguageIds: ["html"], linguistLanguageId: 146 }, { name: "Lightning Web Components", type: "markup", aceMode: "html", extensions: [], tmScope: "text.html.basic", aliases: ["xhtml"], codemirrorMode: "htmlmixed", codemirrorMimeType: "text/html", parsers: ["lwc"], vscodeLanguageIds: ["html"], filenames: [], linguistLanguageId: 146 }, { name: "MJML", type: "markup", aceMode: "html", extensions: [".mjml"], tmScope: "text.mjml.basic", aliases: ["MJML", "mjml"], codemirrorMode: "htmlmixed", codemirrorMimeType: "text/html", parsers: ["mjml"], filenames: [], vscodeLanguageIds: ["mjml"], linguistLanguageId: 146 }, { name: "Vue", type: "markup", aceMode: "vue", extensions: [".vue"], tmScope: "source.vue", codemirrorMode: "vue", codemirrorMimeType: "text/x-vue", parsers: ["vue"], vscodeLanguageIds: ["vue"], linguistLanguageId: 391 }], vr = { bracketSpacing: { category: "Common", type: "boolean", default: !0, description: "Print spaces between brackets.", oppositeDescription: "Do not print spaces between brackets." }, objectWrap: { category: "Common", type: "choice", default: "preserve", description: "How to wrap object literals.", choices: [{ value: "preserve", description: "Keep as multi-line, if there is a newline between the opening brace and first property." }, { value: "collapse", description: "Fit to a single line when possible." }] }, singleQuote: { category: "Common", type: "boolean", default: !1, description: "Use single quotes instead of double quotes." }, proseWrap: { category: "Common", type: "choice", default: "preserve", description: "How to wrap prose.", choices: [{ value: "always", description: "Wrap prose if it exceeds the print width." }, { value: "never", description: "Do not wrap prose." }, { value: "preserve", description: "Wrap prose as-is." }] }, bracketSameLine: { category: "Common", type: "boolean", default: !1, description: "Put > of opening tags on the last line instead of on a new line." }, singleAttributePerLine: { category: "Common", type: "boolean", default: !1, description: "Enforce single attribute per line in HTML, Vue and JSX." } }, Ui = "HTML", fo = { bracketSameLine: vr.bracketSameLine, htmlWhitespaceSensitivity: { category: Ui, type: "choice", default: "css", description: "How to handle whitespaces in HTML.", choices: [{ value: "css", description: "Respect the default value of CSS display property." }, { value: "strict", description: "Whitespaces are considered sensitive." }, { value: "ignore", description: "Whitespaces are considered insensitive." }] }, singleAttributePerLine: vr.singleAttributePerLine, vueIndentScriptAndStyle: { category: Ui, type: "boolean", default: !1, description: "Indent script and style tags in Vue files." } }, Wi = fo, Nr = {};
Or(Nr, { angular: () => Ro, html: () => Oo, lwc: () => Bo, mjml: () => Io, vue: () => Mo });
Gi = go, _o = { canSelfClose: !0, normalizeTagName: !1, normalizeAttributeName: !1, allowHtmComponentClosingTags: !1, isTagNameCaseSensitive: !1, shouldParseFrontMatter: !0 };
Bt = /* @__PURE__ */ new Map([["*", /* @__PURE__ */ new Set(["accesskey", "autocapitalize", "autocorrect", "autofocus", "class", "contenteditable", "dir", "draggable", "enterkeyhint", "exportparts", "hidden", "id", "inert", "inputmode", "is", "itemid", "itemprop", "itemref", "itemscope", "itemtype", "lang", "nonce", "part", "popover", "slot", "spellcheck", "style", "tabindex", "title", "translate", "writingsuggestions"])], ["a", /* @__PURE__ */ new Set(["charset", "coords", "download", "href", "hreflang", "name", "ping", "referrerpolicy", "rel", "rev", "shape", "target", "type"])], ["applet", /* @__PURE__ */ new Set(["align", "alt", "archive", "code", "codebase", "height", "hspace", "name", "object", "vspace", "width"])], ["area", /* @__PURE__ */ new Set(["alt", "coords", "download", "href", "hreflang", "nohref", "ping", "referrerpolicy", "rel", "shape", "target", "type"])], ["audio", /* @__PURE__ */ new Set(["autoplay", "controls", "crossorigin", "loop", "muted", "preload", "src"])], ["base", /* @__PURE__ */ new Set(["href", "target"])], ["basefont", /* @__PURE__ */ new Set(["color", "face", "size"])], ["blockquote", /* @__PURE__ */ new Set(["cite"])], ["body", /* @__PURE__ */ new Set(["alink", "background", "bgcolor", "link", "text", "vlink"])], ["br", /* @__PURE__ */ new Set(["clear"])], ["button", /* @__PURE__ */ new Set(["command", "commandfor", "disabled", "form", "formaction", "formenctype", "formmethod", "formnovalidate", "formtarget", "name", "popovertarget", "popovertargetaction", "type", "value"])], ["canvas", /* @__PURE__ */ new Set(["height", "width"])], ["caption", /* @__PURE__ */ new Set(["align"])], ["col", /* @__PURE__ */ new Set(["align", "char", "charoff", "span", "valign", "width"])], ["colgroup", /* @__PURE__ */ new Set(["align", "char", "charoff", "span", "valign", "width"])], ["data", /* @__PURE__ */ new Set(["value"])], ["del", /* @__PURE__ */ new Set(["cite", "datetime"])], ["details", /* @__PURE__ */ new Set(["name", "open"])], ["dialog", /* @__PURE__ */ new Set(["closedby", "open"])], ["dir", /* @__PURE__ */ new Set(["compact"])], ["div", /* @__PURE__ */ new Set(["align"])], ["dl", /* @__PURE__ */ new Set(["compact"])], ["embed", /* @__PURE__ */ new Set(["height", "src", "type", "width"])], ["fieldset", /* @__PURE__ */ new Set(["disabled", "form", "name"])], ["font", /* @__PURE__ */ new Set(["color", "face", "size"])], ["form", /* @__PURE__ */ new Set(["accept", "accept-charset", "action", "autocomplete", "enctype", "method", "name", "novalidate", "target"])], ["frame", /* @__PURE__ */ new Set(["frameborder", "longdesc", "marginheight", "marginwidth", "name", "noresize", "scrolling", "src"])], ["frameset", /* @__PURE__ */ new Set(["cols", "rows"])], ["h1", /* @__PURE__ */ new Set(["align"])], ["h2", /* @__PURE__ */ new Set(["align"])], ["h3", /* @__PURE__ */ new Set(["align"])], ["h4", /* @__PURE__ */ new Set(["align"])], ["h5", /* @__PURE__ */ new Set(["align"])], ["h6", /* @__PURE__ */ new Set(["align"])], ["head", /* @__PURE__ */ new Set(["profile"])], ["hr", /* @__PURE__ */ new Set(["align", "noshade", "size", "width"])], ["html", /* @__PURE__ */ new Set(["manifest", "version"])], ["iframe", /* @__PURE__ */ new Set(["align", "allow", "allowfullscreen", "allowpaymentrequest", "allowusermedia", "frameborder", "height", "loading", "longdesc", "marginheight", "marginwidth", "name", "referrerpolicy", "sandbox", "scrolling", "src", "srcdoc", "width"])], ["img", /* @__PURE__ */ new Set(["align", "alt", "border", "crossorigin", "decoding", "fetchpriority", "height", "hspace", "ismap", "loading", "longdesc", "name", "referrerpolicy", "sizes", "src", "srcset", "usemap", "vspace", "width"])], ["input", /* @__PURE__ */ new Set(["accept", "align", "alpha", "alt", "autocomplete", "checked", "colorspace", "dirname", "disabled", "form", "formaction", "formenctype", "formmethod", "formnovalidate", "formtarget", "height", "ismap", "list", "max", "maxlength", "min", "minlength", "multiple", "name", "pattern", "placeholder", "popovertarget", "popovertargetaction", "readonly", "required", "size", "src", "step", "type", "usemap", "value", "width"])], ["ins", /* @__PURE__ */ new Set(["cite", "datetime"])], ["isindex", /* @__PURE__ */ new Set(["prompt"])], ["label", /* @__PURE__ */ new Set(["for", "form"])], ["legend", /* @__PURE__ */ new Set(["align"])], ["li", /* @__PURE__ */ new Set(["type", "value"])], ["link", /* @__PURE__ */ new Set(["as", "blocking", "charset", "color", "crossorigin", "disabled", "fetchpriority", "href", "hreflang", "imagesizes", "imagesrcset", "integrity", "media", "referrerpolicy", "rel", "rev", "sizes", "target", "type"])], ["map", /* @__PURE__ */ new Set(["name"])], ["menu", /* @__PURE__ */ new Set(["compact"])], ["meta", /* @__PURE__ */ new Set(["charset", "content", "http-equiv", "media", "name", "scheme"])], ["meter", /* @__PURE__ */ new Set(["high", "low", "max", "min", "optimum", "value"])], ["object", /* @__PURE__ */ new Set(["align", "archive", "border", "classid", "codebase", "codetype", "data", "declare", "form", "height", "hspace", "name", "standby", "type", "typemustmatch", "usemap", "vspace", "width"])], ["ol", /* @__PURE__ */ new Set(["compact", "reversed", "start", "type"])], ["optgroup", /* @__PURE__ */ new Set(["disabled", "label"])], ["option", /* @__PURE__ */ new Set(["disabled", "label", "selected", "value"])], ["output", /* @__PURE__ */ new Set(["for", "form", "name"])], ["p", /* @__PURE__ */ new Set(["align"])], ["param", /* @__PURE__ */ new Set(["name", "type", "value", "valuetype"])], ["pre", /* @__PURE__ */ new Set(["width"])], ["progress", /* @__PURE__ */ new Set(["max", "value"])], ["q", /* @__PURE__ */ new Set(["cite"])], ["script", /* @__PURE__ */ new Set(["async", "blocking", "charset", "crossorigin", "defer", "fetchpriority", "integrity", "language", "nomodule", "referrerpolicy", "src", "type"])], ["select", /* @__PURE__ */ new Set(["autocomplete", "disabled", "form", "multiple", "name", "required", "size"])], ["slot", /* @__PURE__ */ new Set(["name"])], ["source", /* @__PURE__ */ new Set(["height", "media", "sizes", "src", "srcset", "type", "width"])], ["style", /* @__PURE__ */ new Set(["blocking", "media", "type"])], ["table", /* @__PURE__ */ new Set(["align", "bgcolor", "border", "cellpadding", "cellspacing", "frame", "rules", "summary", "width"])], ["tbody", /* @__PURE__ */ new Set(["align", "char", "charoff", "valign"])], ["td", /* @__PURE__ */ new Set(["abbr", "align", "axis", "bgcolor", "char", "charoff", "colspan", "headers", "height", "nowrap", "rowspan", "scope", "valign", "width"])], ["template", /* @__PURE__ */ new Set(["shadowrootclonable", "shadowrootcustomelementregistry", "shadowrootdelegatesfocus", "shadowrootmode", "shadowrootserializable"])], ["textarea", /* @__PURE__ */ new Set(["autocomplete", "cols", "dirname", "disabled", "form", "maxlength", "minlength", "name", "placeholder", "readonly", "required", "rows", "wrap"])], ["tfoot", /* @__PURE__ */ new Set(["align", "char", "charoff", "valign"])], ["th", /* @__PURE__ */ new Set(["abbr", "align", "axis", "bgcolor", "char", "charoff", "colspan", "headers", "height", "nowrap", "rowspan", "scope", "valign", "width"])], ["thead", /* @__PURE__ */ new Set(["align", "char", "charoff", "valign"])], ["time", /* @__PURE__ */ new Set(["datetime"])], ["tr", /* @__PURE__ */ new Set(["align", "bgcolor", "char", "charoff", "valign"])], ["track", /* @__PURE__ */ new Set(["default", "kind", "label", "src", "srclang"])], ["ul", /* @__PURE__ */ new Set(["compact", "type"])], ["video", /* @__PURE__ */ new Set(["autoplay", "controls", "crossorigin", "height", "loop", "muted", "playsinline", "poster", "preload", "src", "width"])]]), zi = /* @__PURE__ */ new Set(["a", "abbr", "acronym", "address", "applet", "area", "article", "aside", "audio", "b", "base", "basefont", "bdi", "bdo", "bgsound", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "command", "content", "data", "datalist", "dd", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "em", "embed", "fencedframe", "fieldset", "figcaption", "figure", "font", "footer", "form", "frame", "frameset", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "iframe", "image", "img", "input", "ins", "isindex", "kbd", "keygen", "label", "legend", "li", "link", "listing", "main", "map", "mark", "marquee", "math", "menu", "menuitem", "meta", "meter", "multicol", "nav", "nextid", "nobr", "noembed", "noframes", "noscript", "object", "ol", "optgroup", "option", "output", "p", "param", "picture", "plaintext", "pre", "progress", "q", "rb", "rbc", "rp", "rt", "rtc", "ruby", "s", "samp", "script", "search", "section", "select", "selectedcontent", "shadow", "slot", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "svg", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "title", "tr", "track", "tt", "u", "ul", "var", "video", "wbr", "xmp"]), qt = { attrs: !0, children: !0, cases: !0, expression: !0 }, $i = /* @__PURE__ */ new Set(["parent"]), Be = class Be2 {
constructor(t = {}) {
Dr(this, re), Ut(this, "kind"), Ut(this, "parent");
for (let r of /* @__PURE__ */ new Set([...$i, ...Object.keys(t)])) this.setProperty(r, t[r]);
if (ie(t)) for (let r of Object.getOwnPropertySymbols(t)) this.setProperty(r, t[r]);
}
setProperty(t, r) {
if (this[t] !== r) {
if (t in qt && (r = r.map((n) => this.createChild(n))), !$i.has(t)) {
this[t] = r;
return;
}
Object.defineProperty(this, t, { value: r, enumerable: !1, configurable: !0 });
}
}
map(t) {
let r;
for (let n in qt) {
let i = this[n];
if (i) {
let s = So(i, (a) => a.map(t));
r !== i && (r || (r = new Be2({ parent: this.parent })), r.setProperty(n, s));
}
}
if (r) for (let n in this) n in qt || (r[n] = this[n]);
return t(r || this);
}
walk(t) {
for (let r in qt) {
let n = this[r];
if (n) for (let i = 0; i < n.length; i++) n[i].walk(t);
}
t(this);
}
createChild(t) {
let r = t instanceof Be2 ? t.clone() : new Be2(t);
return r.setProperty("parent", this), r;
}
insertChildBefore(t, r) {
let n = this.$children;
n.splice(n.indexOf(t), 0, this.createChild(r));
}
removeChild(t) {
let r = this.$children;
r.splice(r.indexOf(t), 1);
}
replaceChild(t, r) {
let n = this.$children;
n[n.indexOf(t)] = this.createChild(r);
}
clone() {
return new Be2(this);
}
get $children() {
return this[Fe(this, re, br)];
}
set $children(t) {
this[Fe(this, re, br)] = t;
}
get firstChild() {
return this.$children?.[0];
}
get lastChild() {
return M(1, this.$children, -1);
}
get prev() {
let t = Fe(this, re, wr);
return t[t.indexOf(this) - 1];
}
get next() {
let t = Fe(this, re, wr);
return t[t.indexOf(this) + 1];
}
get rawName() {
return this.hasExplicitNamespace ? this.fullName : this.name;
}
get fullName() {
return this.namespace ? this.namespace + ":" + this.name : this.name;
}
get attrMap() {
return Object.fromEntries(this.attrs.map((t) => [t.fullName, t.value]));
}
};
re = /* @__PURE__ */ new WeakSet(), br = function() {
return this.kind === "angularIcuCase" ? "expression" : this.kind === "angularIcuExpression" ? "cases" : "children";
}, wr = function() {
return this.parent?.$children ?? [];
};
Ft = Be;
Eo = [{ regex: /^(?<openingTagSuffix>\[if(?<condition>[^\]]*)\]>)(?<data>.*?)<!\s*\[endif\]$/su, parse: Co }, { regex: /^\[if(?<condition>[^\]]*)\]><!$/u, parse: vo }, { regex: /^<!\s*\[endif\]$/u, parse: To }];
kr = class extends fr {
visitExpansionCase(t, r) {
r.parseOptions.name === "angular" && this.visitChildren(r, (n) => {
n(t.expression);
});
}
visit(t, { parseOptions: r }) {
xo(t), yo(t, r), No(t, r), Ao(t);
}
};
Ht = Mt({ name: "html", normalizeTagName: !0, normalizeAttributeName: !0, allowHtmComponentClosingTags: !0 });
Oo = at(Ht), Do = /* @__PURE__ */ new Set(["mj-style", "mj-raw"]), Io = at({ ...Ht, name: "mjml", shouldParseAsRawText: (e) => Do.has(e) }), Ro = at({ name: "angular", tokenizeAngularBlocks: !0, tokenizeAngularLetDeclaration: !0 }), Mo = at({ name: "vue", isTagNameCaseSensitive: !0, shouldParseAsRawText(e, t, r, n) {
return e.toLowerCase() !== "html" && !r && (e !== "template" || n.some(({ name: i, value: s }) => i === "lang" && s !== "html" && s !== "" && s !== void 0));
} }), Bo = at({ name: "lwc", canSelfClose: !1 }), qo = { html: Hi };
}
});
init_html();
export {
Ji as default,
Vi as languages,
Wi as options,
Nr as parsers,
qo as printers
};
//# sourceMappingURL=html-QFC3GCRO.js.map