@optionfactory/fml 8.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +21 -0
- package/README.md +22 -0
- package/dist/client-errors.iife.js +109 -0
- package/dist/client-errors.iife.js.map +1 -0
- package/dist/client-errors.iife.min.js +2 -0
- package/dist/client-errors.iife.min.js.map +1 -0
- package/dist/fml.css +2 -0
- package/dist/fml.css.map +1 -0
- package/dist/fml.d.mts +1241 -0
- package/dist/fml.iife.js +8340 -0
- package/dist/fml.iife.js.map +1 -0
- package/dist/fml.iife.min.js +2 -0
- package/dist/fml.iife.min.js.map +1 -0
- package/dist/fml.min.mjs +2 -0
- package/dist/fml.min.mjs.map +1 -0
- package/dist/fml.mjs +8284 -0
- package/dist/fml.mjs.map +1 -0
- package/dist/ftl.d.mts +361 -0
- package/dist/ftl.iife.js +4719 -0
- package/dist/ftl.iife.js.map +1 -0
- package/dist/ftl.iife.min.js +2 -0
- package/dist/ftl.iife.min.js.map +1 -0
- package/dist/ftl.min.mjs +2 -0
- package/dist/ftl.min.mjs.map +1 -0
- package/dist/ftl.mjs +4700 -0
- package/dist/ftl.mjs.map +1 -0
- package/dist/ful.css +2 -0
- package/dist/ful.css.map +1 -0
- package/dist/ful.d.mts +581 -0
- package/dist/ful.iife.js +2814 -0
- package/dist/ful.iife.js.map +1 -0
- package/dist/ful.iife.min.js +2 -0
- package/dist/ful.iife.min.js.map +1 -0
- package/dist/ful.min.mjs +2 -0
- package/dist/ful.min.mjs.map +1 -0
- package/dist/ful.mjs +2780 -0
- package/dist/ful.mjs.map +1 -0
- package/dist/httpc.d.mts +306 -0
- package/dist/httpc.iife.js +755 -0
- package/dist/httpc.iife.js.map +1 -0
- package/dist/httpc.iife.min.js +2 -0
- package/dist/httpc.iife.min.js.map +1 -0
- package/dist/httpc.min.mjs +2 -0
- package/dist/httpc.min.mjs.map +1 -0
- package/dist/httpc.mjs +743 -0
- package/dist/httpc.mjs.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ftl.iife.min.js","sources":["../src/ftl/ast.mjs","../src/ftl/expressions-parser.peggy","../src/ftl/expressions.mjs","../src/ftl/dom.mjs","../src/ftl/template.mjs","../src/ftl/registry.mjs","../src/ftl/parsed-element.mjs","../src/ftl/rendering.mjs","../src/ftl/templates.mjs"],"sourcesContent":["const nodes = {\n ter: Symbol('ternary'),\n elv: Symbol('elvis'),\n nullc: Symbol('null-coalescence'),\n or: Symbol('or'),\n and: Symbol('and'),\n eq: Symbol('eq'),\n cmp: Symbol('cmp'),\n not: Symbol('not'),\n access: Symbol('access'),\n member: Symbol('access-member'),\n subscript: Symbol('access-subscript'),\n method: Symbol('access-method-call'),\n call: Symbol('module-function-call'),\n tstring: Symbol('tstring'),\n literal: Symbol('literal'),\n array: Symbol('array-literal'),\n dict: Symbol('dict-literal'),\n function: Symbol('module-function'),\n symbol: Symbol('symbol'),\n templated: {\n ten: Symbol('templated-node'),\n teh: Symbol('templated-html'),\n tet: Symbol('templated-text'),\n tel: Symbol('templated-literal'),\n },\n dom: {\n t: Symbol('text'),\n h: Symbol('html'),\n n: Symbol('node'),\n },\n};\n\nexport { nodes };\n","{{\n import { nodes } from \"./ast.mjs\";\n}}\n\nTemplatedRoot = TemplatedExpression*\n\nTemplatedExpression = value:(BeginNode @ExpressionRoot EndNode) { return {type:nodes.templated.ten, value}}\n\t/ value:(BeginHtml @ExpressionRoot EndHtml) { return {type:nodes.templated.teh, value}}\n\t/ value:(BeginText @ExpressionRoot EndText) { return {type:nodes.templated.tet, value}} \n\t/ value:TemplatedText { return {type:nodes.templated.tel, value}}\n\nBeginNode = '{{{{'\nEndNode = '}}}}'\t\nBeginHtml = '{{{'\nEndHtml = '}}}'\nBeginText = '{{'\nEndText = '}}'\n\nTemplatedText\n = parts:(\n $( [^\\\\{]+ ) // normal text\n / '\\\\' c:. { return c; } //escaped\n / '{' !'{' // single brace that isn't a delimiter\n )+ { return parts.join(''); }\n\nExpressionRoot\n = _ r:Expression _ { return r; }\n\nExpression = TernaryExpression\n\nTernaryExpression \n = cond:ElvisExpression _ \"?\" _ ifTrue:TernaryExpression _ \":\" _ ifFalse:TernaryExpression { return {type:nodes.ter, cond, ifTrue, ifFalse}; }\n / ElvisExpression\n\nElvisExpression\n = cond:NullCoalescingExpression _ \"?:\" _ ifFalse:ElvisExpression {return {type:nodes.elv, cond, ifFalse}; }\n / NullCoalescingExpression\n\nNullCoalescingExpression\n = lhs:OrExpression _ \"??\" _ rhs:NullCoalescingExpression { return {type:nodes.nullc, lhs, rhs}; } \n / OrExpression\n\nOrExpression \n = head:AndExpression tail:(_ \"||\" _ @rhs:AndExpression)* {\n let result = head;\n for (const rhs of tail) {\n result = {type: nodes.or, lhs: result, rhs};\n }\n return result;\n }\n\nAndExpression\n = head:EqExpression tail:(_ \"&&\" _ @rhs:EqExpression)* { \n let result = head;\n for (const rhs of tail) {\n result = {type: nodes.and, lhs: result, rhs};\n }\n return result;\n }\n\nEqExpression\n = head:RelExpression tail:(_ op:EqualityOp _ rhs:RelExpression {return {op, rhs};})* { \n let result = head;\n for (const element of tail) {\n result = {type: nodes.eq, op: element.op, lhs: result, rhs: element.rhs};\n }\n return result;\n }\n\nRelExpression\n = head:NotExpression tail:(_ op:RelationalOp _ rhs:NotExpression {return {op, rhs};})* {\n let result = head;\n for (const element of tail) {\n result = {type: nodes.cmp, op: element.op, lhs: result, rhs: element.rhs};\n }\n return result;\n }\n\n\nNotExpression\n = \"!\" _ expr:NotExpression { return {type:nodes.not, expr} }\n / Access\n\n\nAccess \n = lhs:GroupingExpression _ rhs:(@AccessExpression _)+ { return {type: nodes.access, lhs, rhs} } \n / GroupingExpression\n\n\nAccessExpression \n = AccessMember\n / AccessSubscript \n / AccessMethodCall\n \nAccessMember \"member\"\n = op:(\"?.\"/\".\") _ rhs:Symbol { \n return {type: nodes.member, ns: op === '?.', rhs: rhs.value}; \n }\n\nAccessSubscript \"subscript\" \n = op:\"?.\"? \"[\" _ rhs:Expression _ \"]\" { \n return {type: nodes.subscript, ns: op !== null, rhs}; \n } \n\nAccessMethodCall \"method-call\" \n = op:\"?.\"? \"(\" _ h:(@Expression _)? t:(\",\" _ @Expression _)* \")\" { \n return {type: nodes.method, ns: op !== null, args: h === null ? [] : [h, ...t]}; \n }\n\nGroupingExpression \n = \"(\" _ e:Expression _ \")\" { return e }\n / ModuleFunctionCall \n / AnyLiteral\n / Symbol\n\n\nModuleFunctionCall \"module-function-call\" \n = fn:ModuleFunction \"(\" _ h:(@Expression _)? t:(\",\" _ @Expression _)* \")\" {\n const args = h === null ? [] : [h, ...t];\n return {type: nodes.call, value: fn, args};\n }\n\nAnyLiteral\n = NumberLiteral\n / BooleanLiteral\n / NullLiteral\n / UndefinedLiteral\n / StringLiteral\n / ArrayLiteral\n / DictLiteral\n\nBooleanLiteral \"boolean-literal\"\n = \"true\" { \n return {type: nodes.literal, value: true}; \n }\n / \"false\" { \n return {type: nodes.literal, value: false}; \n }\n\nNullLiteral \"null-literal\"\n = \"null\" {\n return {type: nodes.literal, value: null};\n }\n\nUndefinedLiteral \"undefined-literal\" // <--- Add this\n = \"undefined\" {\n return {type: nodes.literal, value: undefined};\n } \n\nNumberLiteral \"number-literal\" \n = value:$( '-'? ([0-9]+ ('.' [0-9]*)? / '.' [0-9]+ ) ) {\n return { type: nodes.literal, value: parseFloat(value) };\n }\n\nStringLiteral \"string-literal\"\n = \"'\" value:$[^']* \"'\" { return {type: nodes.literal, value}; }\n / '\"' value:$[^\"]* '\"' { return {type: nodes.literal, value}; }\n / \"`\" parts:(TemplateStringExpression / TemplateStringLiteral)* \"`\" { \n return {type: nodes.tstring, parts}; \n }\n\nTemplateStringExpression \"tstring-expression\"\n = \"{\" _ expr:Expression _ \"}\" { \n return expr; \n }\n\nTemplateStringLiteral \"tstring-literal\"\n = parts:(\n $([^\\\\`{]+)\n / \"\\\\\" c:. { return c; }\n )+ {\n return { type: nodes.literal, value: parts.join('') };\n }\n / char:$(\"{\") { \n return { type: nodes.literal, value: char }; \n }\n\nArrayLiteral \"array-literal\" \n = \"[\" _ h:(Expression)? _ t:(\",\" _ @Expression _)* \"]\" { \n const value = h === null ? [] : [h, ...t];\n return {type: nodes.array, value};\n }\n\nDictLiteral \"dict-literal\" \n = \"{\" _ h:(@StringLiteral _ \":\" _ @Expression)? _ t:(\",\" _ @StringLiteral _ \":\" _ @Expression _)* \"}\" {\n var value = []\n if (h !== null){\n value.push(h);\n }\n value.push.apply(value, t);\n return {type: nodes.dict, value}; \n }\n\nModuleFunction \"module-function\"\n = '#' module:(@$([a-zA-Z$_][a-zA-Z$_0-9_]*) ':')? v:$([a-zA-Z$_][a-zA-Z$_0-9_]*) {\n return {type: nodes.function, module, value: v}\n }\n\nSymbol \"symbol\"\n = s:$([a-zA-Z$_][a-zA-Z$_0-9_]*) { \n return {type: nodes.symbol, value: s}; \n }\n \nEqualityOp\n = \"==\"\n / \"!=\"\n\nRelationalOp\n = \">=\"\n / \">\"\n / \"<=\"\n / \"<\"\n\n_ \"whitespaces\"\n = [ \\t\\n\\r]*\n\n","import { parse } from './expressions-parser.peggy';\nimport { nodes } from './ast.mjs';\n\nclass EvaluatingVisitor {\n #modules;\n #dataStack;\n constructor(modules, dataStack) {\n this.#modules = modules;\n this.#dataStack = dataStack;\n }\n #resolve(prop) {\n if (prop === 'self') {\n return this.#dataStack[this.#dataStack.length - 1];\n }\n for (let i = this.#dataStack.length - 1; i >= 0; i--) {\n const overlay = this.#dataStack[i];\n if (overlay != null && (typeof overlay === 'object' || typeof overlay === 'function')) {\n if (prop in overlay) {\n return overlay[prop];\n }\n }\n }\n return undefined;\n }\n\n #cached_resolve_proxy;\n #resolve_proxy() {\n if (!this.#cached_resolve_proxy) {\n this.#cached_resolve_proxy = new Proxy(this.#dataStack, {\n get: (target, prop) => this.#resolve(prop)\n });\n }\n return this.#cached_resolve_proxy;\n }\n [nodes.and](node) {\n return this.visit(node.lhs) && this.visit(node.rhs);\n }\n [nodes.or](node) {\n return this.visit(node.lhs) || this.visit(node.rhs);\n }\n [nodes.nullc](node) {\n const lhs = this.visit(node.lhs);\n return lhs !== null && lhs !== undefined ? lhs : this.visit(node.rhs);\n }\n [nodes.not](node) {\n return !this.visit(node.expr);\n }\n [nodes.eq](node) {\n const lhs = this.visit(node.lhs);\n const rhs = this.visit(node.rhs);\n const eq = lhs === rhs;\n return node.op === '==' ? eq : !eq;\n }\n [nodes.cmp](node) {\n const lhs = this.visit(node.lhs);\n const rhs = this.visit(node.rhs);\n switch (node.op) {\n case '>':\n return lhs > rhs;\n case '<':\n return lhs < rhs;\n case '>=':\n return lhs >= rhs;\n case '<=':\n return lhs <= rhs;\n default:\n throw new Error('unknown cmp op ' + node.op);\n }\n }\n [nodes.call](node) {\n const fnRef = node.value;\n const module = fnRef.module === null ? this.#modules : this.#modules?.[fnRef.module];\n if (!module) {\n throw new Error(`Module \"${fnRef.module}\" not found`);\n }\n const fn = module[fnRef.value];\n if (!fn) {\n throw new Error(`Function \"#${fnRef.module === null ? '' : fnRef.module + ':'}${fnRef.value}\" not found`);\n }\n const args = node.args.map((arg) => this.visit(arg));\n return fn.apply(this.#resolve_proxy(), args);\n }\n [nodes.literal](node) {\n return node.value;\n }\n [nodes.tstring](node) {\n let result = '';\n const parts = node.parts;\n for (let i = 0, len = parts.length; i < len; i++) {\n const evaluated = this.visit(parts[i]);\n if (evaluated !== null && evaluated !== undefined) {\n result += evaluated;\n }\n }\n return result;\n }\n [nodes.symbol](node) {\n return this.#resolve(node.value);\n }\n [nodes.dict](node) {\n return Object.fromEntries(node.value.map((entry) => [entry[0].value, this.visit(entry[1])]));\n }\n [nodes.array](node) {\n return node.value.map((v) => this.visit(v));\n }\n [nodes.ter](node) {\n return this.visit(node.cond) ? this.visit(node.ifTrue) : this.visit(node.ifFalse);\n }\n [nodes.elv](node) {\n const cond = this.visit(node.cond);\n return cond ? cond : this.visit(node.ifFalse);\n }\n [nodes.access](node) {\n let prev = undefined;\n let cur = this.visit(node.lhs);\n for (let i = 0; i !== node.rhs.length; ++i) {\n const rhs = node.rhs[i];\n if (rhs.ns && cur == null) {\n return undefined;\n }\n let value = undefined;\n switch (rhs.type) {\n case nodes.member: {\n value = cur[rhs.rhs];\n break;\n }\n case nodes.subscript: {\n value = cur[this.visit(rhs.rhs)];\n break;\n }\n case nodes.method: {\n if (!cur) {\n throw new Error(`Method missing \"${node.rhs[i - 1].rhs}\"`);\n }\n const args = rhs.args.map((arg) => this.visit(arg));\n value = cur.apply(prev, args);\n break;\n }\n }\n prev = cur;\n cur = value;\n }\n return cur;\n }\n visit(node, ...args) {\n return this[node.type](node, ...args);\n }\n visitRoot(ast, templated) {\n return !templated\n ? this.visit(ast)\n : ast.map((node) => {\n switch (node.type) {\n case nodes.templated.tel:\n return { type: nodes.dom.t, value: node.value };\n case nodes.templated.tet:\n return { type: nodes.dom.t, value: this.visit(node.value) };\n case nodes.templated.teh:\n return { type: nodes.dom.h, value: this.visit(node.value) };\n case nodes.templated.ten:\n return { type: nodes.dom.n, value: this.visit(node.value) };\n default:\n throw new Error('unknown node type ' + node.type.toString());\n }\n });\n }\n}\n\nclass Expressions {\n static MODE_EXPRESSION = Symbol('MODE_EXPRESSION');\n static MODE_TEMPLATED = Symbol('MODE_TEMPLATED');\n\n static #astCache = new Map();\n static #MAX_CACHE_SIZE = 1000;\n\n /**\n * Parses an expression.\n * @param {string} expression\n * @param {(typeof Expressions.MODE_EXPRESSION | typeof Expressions.MODE_TEMPLATED)?} [mode]\n * @returns the ast\n */\n static parse(expression, mode) {\n const key = mode?.toString() + expression;\n\n if (!this.#astCache.has(key)) {\n if (this.#astCache.size >= this.#MAX_CACHE_SIZE) {\n const oldestKey = this.#astCache.keys().next().value;\n this.#astCache.delete(oldestKey);\n }\n this.#astCache.set(key, parse(expression, {\n startRule: mode === Expressions.MODE_TEMPLATED ? 'TemplatedRoot' : 'ExpressionRoot',\n }));\n }\n\n return this.#astCache.get(key);\n }\n /**\n * Evaluates an expression.\n * @param {{[k: string]: any } | null | undefined } modules\n * @param {any[]} dataStack\n * @param {any} ast\n * @param {(typeof Expressions.MODE_EXPRESSION | typeof Expressions.MODE_TEMPLATED)?} [mode]\n * @returns the result\n */\n static evaluate(modules, dataStack, ast, mode) {\n return new EvaluatingVisitor(modules, dataStack).visitRoot(ast, mode === Expressions.MODE_TEMPLATED);\n }\n /**\n * Parses and evaluates an expression.\n * @param {{ [x: string]: any; } | null | undefined} modules\n * @param {any[]} dataStack\n * @param {string} expression\n * @param {(typeof Expressions.MODE_EXPRESSION | typeof Expressions.MODE_TEMPLATED)?} [mode]\n * @returns the result\n */\n static interpret(modules, dataStack, expression, mode) {\n return Expressions.evaluate(modules, dataStack, Expressions.parse(expression, mode), mode);\n }\n}\n\nclass ExpressionEvaluator {\n #modules;\n #dataStack;\n constructor(modules, dataStack) {\n this.#modules = modules;\n this.#dataStack = dataStack;\n }\n withModule(name, value) {\n const module = name ? { [name]: value } : value;\n return new ExpressionEvaluator({ ...this.#modules, ...module }, this.#dataStack);\n }\n withOverlay(...data) {\n return new ExpressionEvaluator(\n this.#modules,\n data.length === 0 ? this.#dataStack : [...this.#dataStack, ...data],\n );\n }\n evaluate(expression, mode) {\n return Expressions.interpret(this.#modules, this.#dataStack, expression, mode);\n }\n evaluateExpression(expression) {\n return this.evaluate(expression, Expressions.MODE_EXPRESSION);\n }\n evaluateTemplated(expression) {\n return this.evaluate(expression, Expressions.MODE_TEMPLATED);\n }\n}\n\nexport { Expressions, ExpressionEvaluator };\n","class Fragments {\n /**\n * Creates a DocumentFragment from an string.\n * @param {...string} html\n * @returns {DocumentFragment} the fragment\n */\n static fromHtml(...html) {\n const el = document.createElement('template');\n el.innerHTML = html.map((h) => h.trim()).join('');\n return document.adoptNode(el.content);\n }\n /**\n * Creates a string representation (HTML) of a DocumentFragment.\n * @param {DocumentFragment} fragment\n * @returns {string} the html\n */\n static toHtml(fragment) {\n var el = document.createElement('template');\n el.content.appendChild(fragment);\n return el.innerHTML;\n }\n /**\n * Checks if a fragment contains only blank text nodes\n * @param {DocumentFragment} fragment\n * @returns {boolean} true if the fragment is blank\n */\n static isBlank(fragment) {\n return fragment.childElementCount === 0 && fragment.textContent.trim() === '';\n }\n /**\n * Creates a DocumentFragment from nodes.\n * @param {...Node} nodes\n * @returns {DocumentFragment} the fragment\n */\n static from(...nodes) {\n const fragment = new DocumentFragment();\n for (const node of nodes) {\n fragment.appendChild(node);\n }\n return fragment;\n }\n /**\n * Creates a DocumentFragment from childNodes of an element.\n * @param {Node} el\n * @returns {DocumentFragment} the fragment\n */\n static fromChildNodes(el) {\n const fragment = new DocumentFragment();\n while (el.firstChild) {\n fragment.appendChild(el.firstChild);\n }\n return fragment;\n }\n}\n\nclass Attributes {\n static id = 0;\n /**\n * Creates a unique id with the given prefix.\n * @param {string} prefix\n * @returns\n */\n static uid(prefix) {\n return `${prefix}-${++Attributes.id}`;\n }\n /**\n * Sets an attribute if not present.\n * @param {Element} el\n * @param {string} k\n * @param {string} v\n * @returns\n */\n static defaultValue(el, k, v) {\n if (!el.hasAttribute(k)) {\n el.setAttribute(k, v);\n }\n return el.getAttribute(k);\n }\n /**\n * Forwards prefixed attributes from an element to another (removing the prefix).\n * @param {string} prefix\n * @param {Element} from\n * @param {Element} to\n */\n static forward(prefix, from, to) {\n from.getAttributeNames()\n .filter((a) => a.startsWith(prefix))\n .forEach((a) => {\n const target = a.substring(prefix.length);\n if (target === 'class') {\n const classes = from.getAttribute(prefix + 'class')?.split(/\\s+/).filter((a) => a.length) ?? [];\n to.classList.add(...classes);\n return;\n }\n to.setAttribute(target, /** @type {string} */(from.getAttribute(a)));\n });\n }\n /**\n * Changes the presence of an attribute.\n * @param {Element} el\n * @param {string} attr\n * @param {boolean} value\n */\n static toggle(el, attr, value) {\n if (value) {\n el.setAttribute(attr, '');\n } else {\n el.removeAttribute(attr);\n }\n }\n /**\n * Changes the presence of an attribute based on its current state.\n * @param {Element} el\n * @param {string} attr\n */\n static flip(el, attr) {\n if (el.hasAttribute(attr)) {\n el.removeAttribute(attr);\n } else {\n el.setAttribute(attr, '');\n }\n }\n /**\n * Sets the value of an attribute. nullish values remove the attribute.\n * @param {Element} el\n * @param {string} attr\n * @param {string | null | undefined} value\n */\n static set(el, attr, value) {\n if (value == null) {\n el.removeAttribute(attr);\n } else {\n el.setAttribute(attr, value);\n }\n }\n}\n\nclass LightSlots {\n /**\n * Extracts light slots from an element. For non default slots in a template tag, the content is extracted.\n * @param {Element} el\n * @returns the slots\n */\n static from(el) {\n /** @type [string, Element|DocumentFragment][] */\n const namedSlots = Array.from(el.children)\n .filter((el) => el.matches('[slot]'))\n .map((el) => {\n el.remove();\n const slot = el.getAttribute('slot') || 'unnamed';\n el.removeAttribute('slot');\n return [slot, LightSlots.slotFromNode(el)];\n });\n const slots = {};\n slots.default = new DocumentFragment();\n slots.default.append(...el.childNodes);\n for (const [name, el] of namedSlots) {\n if (!(name in slots)) {\n slots[name] = new DocumentFragment();\n }\n slots[name].append(el);\n }\n return slots;\n }\n static slotFromNode(el) {\n if (el instanceof HTMLTemplateElement) {\n return document.adoptNode(el.content);\n }\n if (el instanceof HTMLScriptElement && el.type !== '' && el.type !== 'text/javascript') {\n return Fragments.fromHtml(el.innerHTML);\n }\n return el;\n }\n}\n\nclass Nodes {\n /**\n * Checks if an element is already parsed.\n * @param {Element} el\n * @returns\n */\n static isParsed(el) {\n //@ts-ignore\n for (let c = el; c; c = c.parentNode) {\n if (c.nextSibling) {\n return true;\n }\n }\n return false;\n }\n\n static waitParsed(el) {\n if (el.ownerDocument.readyState === 'complete' || Nodes.isParsed(el)) {\n return Promise.resolve(el);\n }\n return new Promise((resolve) => {\n const ac = new AbortController();\n const clearAndQueue = () => {\n ac.abort();\n observer.disconnect();\n resolve(el);\n };\n el.ownerDocument.addEventListener('DOMContentLoaded', clearAndQueue, { signal: ac.signal });\n const observer = new MutationObserver(() => {\n if (!Nodes.isParsed(el)) {\n return;\n }\n clearAndQueue();\n });\n const parent = /** @type {Node} */ (el.parentNode);\n observer.observe(parent, { childList: true });\n });\n }\n\n /**\n * Returns the first child of the element element (if exists) matching the selector.\n * @param {Element} el\n * @param {string} selector\n * @returns\n */\n static queryChildren(el, selector) {\n for (const c of el.children) {\n if (c.matches(selector)) {\n return c;\n }\n }\n return null;\n }\n /**\n * Returns all children of the element matching the selector.\n * @param {Element} el\n * @param {string} selector\n * @returns\n */\n static queryChildrenAll(el, selector) {\n const r = [];\n for (const c of el.children) {\n if (c.matches(selector)) {\n r.push(c);\n }\n }\n return r;\n }\n}\n\nexport { Fragments, Attributes, LightSlots, Nodes };\n","import { nodes } from './ast.mjs';\nimport { Attributes, Fragments } from './dom.mjs';\nimport { Expressions, ExpressionEvaluator } from './expressions.mjs';\n\nclass NodeOperations {\n #forRemoval;\n constructor() {\n this.#forRemoval = [];\n }\n removed(node) {\n return this.#forRemoval.includes(node);\n }\n remove(node) {\n node.replaceChildren?.();\n Object.keys(node.dataset || {})\n .filter((k) => k.startsWith('tpl'))\n .forEach((k) => delete node.dataset[k]);\n this.#forRemoval.push(node);\n }\n popData(node, key) {\n const v = node.dataset[key];\n delete node.dataset[key];\n return v;\n }\n prepend(ref, node) {\n ref.parentNode.insertBefore(node, ref);\n }\n append(ref, node) {\n ref.parentNode.insertBefore(node, ref.nextSibling);\n }\n replace(ref, node) {\n this.prepend(ref, node);\n this.remove(ref);\n }\n cleanup() {\n while (this.#forRemoval.length) {\n this.#forRemoval.pop().remove();\n }\n }\n}\n\nclass CommandsHandler {\n static ORDERED_COMMANDS = [\n 'tplIf',\n 'tplWith',\n 'tplEach',\n 'tplWhen',\n 'tplClassAppend',\n 'tplAttrAppend',\n 'tplText',\n 'tplHtml',\n 'tplRemove',\n 'tplVerbatim',\n ];\n static tplIf(node, expression, ops, modules, dataStack) {\n const accept = Expressions.interpret(modules, dataStack, expression);\n if (!accept) {\n ops.remove(node);\n }\n }\n static tplWith(node, expression, ops, modules, dataStack) {\n const evaluated = Expressions.interpret(modules, dataStack, expression);\n const varName = ops.popData(node, 'tplVar');\n const newNode = new Template(node, modules, dataStack)\n .withOverlay(varName ? { [varName]: evaluated } : evaluated)\n .render();\n ops.replace(node, newNode);\n }\n static tplEach(node, expression, ops, modules, dataStack) {\n const varName = ops.popData(node, 'tplVar');\n const template = new Template(node, modules, dataStack);\n const evaluated = Expressions.interpret(modules, dataStack, expression);\n if (!evaluated?.[Symbol.iterator]) {\n throw new Error(`Expected an iterable got '${evaluated}'`);\n }\n for (const v of evaluated) {\n ops.prepend(node, template.withOverlay(varName ? { [varName]: v } : v).render());\n }\n ops.remove(node);\n }\n static tplWhen(node, expression, ops, modules, dataStack) {\n const accept = Expressions.interpret(modules, dataStack, expression);\n if (!accept) {\n ops.remove(node);\n }\n }\n static tplVerbatim(node, expression, ops, modules, dataStack) {\n const newNode = node.cloneNode(true);\n ops.replace(node, newNode);\n }\n static tplRemove(node, value, ops, modules, dataStack) {\n switch (value.toLowerCase()) {\n case 'tag':\n const fragment = new DocumentFragment();\n while (node.firstChild) {\n fragment.appendChild(node.firstChild);\n }\n if ('tplVerbatim' in node.dataset) {\n //we are removing the parent element so we have to handle the lower priority commands\n ops.popData(node, 'tplVerbatim');\n ops.replace(node, fragment);\n } else {\n ops.append(node, fragment);\n ops.remove(node);\n }\n break;\n case 'body':\n node.replaceChildren();\n break;\n case 'all':\n ops.remove(node);\n break;\n }\n }\n static tplText(node, expression, ops, modules, dataStack) {\n const text = Expressions.interpret(modules, dataStack, expression);\n const newNode = node.cloneNode();\n newNode.replaceChildren(text == null ? '' : text);\n ops.replace(node, newNode);\n }\n static tplHtml(node, expression, ops, modules, dataStack) {\n const html = Expressions.interpret(modules, dataStack, expression);\n const newNode = node.cloneNode();\n newNode.innerHTML = html == null ? '' : html;\n ops.replace(node, newNode);\n }\n static tplClassAppend(node, expression, ops, modules, dataStack) {\n const classes = Expressions.interpret(modules, dataStack, expression);\n if (!classes) {\n return;\n }\n const classesAsArray = Array.isArray(classes) ? classes : [classes];\n const cleanClasses = classesAsArray\n .flatMap(c => typeof c === 'string' ? c.split(' ') : c)\n .filter(Boolean);\n if (cleanClasses.length === 0) {\n return;\n }\n node.classList.add(...cleanClasses);\n }\n static tplAttrAppend(node, expression, ops, modules, dataStack) {\n const attributesAndValues = Expressions.interpret(modules, dataStack, expression);\n if (!attributesAndValues || attributesAndValues.length === 0) {\n return;\n }\n const tuples = Array.isArray(attributesAndValues[0]) ? attributesAndValues : [attributesAndValues];\n tuples.forEach(([k, v]) => {\n node.setAttribute(k, v);\n });\n }\n static textNode(node, expression, ops, modules, dataStack) {\n for (const v of Expressions.interpret(modules, dataStack, expression, Expressions.MODE_TEMPLATED)) {\n if (v.value == null) {\n continue;\n }\n switch (v.type) {\n case nodes.dom.t:\n ops.prepend(node, document.createTextNode(v.value));\n break;\n case nodes.dom.h:\n ops.prepend(node, Fragments.fromHtml(v.value));\n break;\n case nodes.dom.n:\n ops.prepend(node, v.value);\n break;\n }\n }\n ops.remove(node);\n }\n}\n\n// Module-isolated string cache for dataset-to-attribute conversions\nconst attributeCache = new Map();\n\n/**\n * Converts a tpl camelCase dataset key into a kebab-case attribute name.\n * Uses a cache lookup to avoid repetitive regex/string splitting.\n * @param {string} dataSetKey\n * @returns {string}\n */\nfunction toAttr(dataSetKey) {\n let cached = attributeCache.get(dataSetKey);\n if (!cached) {\n cached = dataSetKey\n .substring(3)\n .split(/(?=[A-Z])/)\n .join('-')\n .toLowerCase();\n attributeCache.set(dataSetKey, cached);\n }\n return cached;\n}\n\nclass Template {\n /**\n * Creates a template from a string.\n * @param {string} html\n * @param {{ [k: string] : any }?} [modules]\n * @param {...*} data\n * @returns the template\n */\n static fromHtml(html, modules, ...data) {\n return new Template(Fragments.fromHtml(html), modules, data);\n }\n\n /**\n * Creates a template from the content of the first template element matching the selector.\n * @param {string} selector for an HTMLTemplateElement\n * @param {{ [k: string] : any }?} [modules]\n * @param {...*} data\n * @returns the template\n */\n static fromSelector(selector, modules, ...data) {\n const templateEl = document.querySelector(selector);\n if (!(templateEl instanceof HTMLTemplateElement)) {\n throw new Error('template selector does not match any template tag');\n }\n const fragment = document.adoptNode(templateEl.content);\n return new Template(fragment, modules, data);\n }\n\n /**\n * Creates a template from the content of an HTMLTemplateElement.\n * @param {HTMLTemplateElement} templateEl\n * @param {{ [k: string] : any }?} [modules]\n * @param {...*} data\n * @returns the template\n */\n static fromTemplate(templateEl, modules, ...data) {\n const fragment = document.adoptNode(templateEl.content);\n return new Template(fragment, modules, data);\n }\n\n /**\n * Creates a template from a DocumentFragment.\n * @param {DocumentFragment} fragment\n * @param { { [k: string] : any }? } [modules]\n * @param {...*} data\n * @returns the template\n */\n static fromFragment(fragment, modules, ...data) {\n return new Template(fragment, modules, data);\n }\n #fragment;\n #modules;\n #dataStack;\n /**\n * Creates a template.\n * @param {DocumentFragment} fragment\n * @param {{ [x: string]: any; } | null | undefined} modules\n * @param {any[]} dataStack\n */\n constructor(fragment, modules, dataStack) {\n this.#fragment = fragment;\n this.#modules = modules;\n this.#dataStack = dataStack;\n }\n /**\n * Creates a new Template replacing the modules and dataStack from a context.\n * @param {{modules: { [x: string]: any; } | null | undefined, data: any[]}} context\n */\n withContext({ modules, data }) {\n return new Template(this.#fragment, modules, data);\n }\n /**\n * Creates a new Template replacing the modules and dataStack from a registry.\n * @param any registry\n */\n withContextFrom(registry) {\n return this.withContext(registry.context());\n }\n /**\n * Creates a new Template replacing the fragment.\n * @param {DocumentFragment} fragment\n */\n withFragment(fragment) {\n return new Template(fragment, this.#modules, this.#dataStack);\n }\n /**\n * Creates a new Template with a new module added.\n * @param {string?} name\n * @param {{[k: string]: any}} value\n */\n withModule(name, value) {\n const module = name ? { [name]: value } : value;\n return new Template(this.#fragment, { ...this.#modules, ...module }, this.#dataStack);\n }\n /**\n * Creates a new Template replacing the modules.\n * @param {{ [x: string]: any; }?} modules\n */\n withModules(modules) {\n return new Template(this.#fragment, modules, this.#dataStack);\n }\n /**\n * Creates a new Template replacing the data stack.\n * @param {any[]} dataStack the dataStack\n */\n withData(dataStack) {\n return new Template(this.#fragment, this.#modules, dataStack);\n }\n /**\n * Creates a new Template with new a data overlay added to the stack.\n * @param {...*} data\n */\n withOverlay(...data) {\n return new Template(\n this.#fragment,\n this.#modules,\n data.length === 0 ? this.#dataStack : [...this.#dataStack, ...data],\n );\n }\n /**\n * Evaluates an expression using the configured modules and data.\n * @param {string} expression\n * @param {(typeof Expressions.MODE_EXPRESSION | typeof Expressions.MODE_TEMPLATED)?} [mode]\n * @param {...*} data\n */\n evaluate(expression, mode, ...data) {\n new ExpressionEvaluator(this.#modules, this.#dataStack).withOverlay(...data).evaluate(expression, mode);\n }\n /**\n * Returns an expression evaluator with bound modules and dataStack.\n */\n evaluator() {\n return new ExpressionEvaluator(this.#modules, this.#dataStack);\n }\n /**\n * Renders the template.\n * @returns a DocumentFragment\n */\n render() {\n try {\n const ops = new NodeOperations();\n const imported = document.importNode(this.#fragment, true);\n const fragment =\n imported.nodeType === Node.DOCUMENT_FRAGMENT_NODE\n ? imported\n : (() => {\n const d = new DocumentFragment();\n d.appendChild(imported);\n return d;\n })();\n const iterator = document.createNodeIterator(\n fragment,\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT,\n Template.#NODE_FILTER,\n );\n let node;\n while ((node = iterator.nextNode()) !== null) {\n ops.cleanup();\n if (node.nodeType === Node.TEXT_NODE) {\n try {\n CommandsHandler.textNode(node, node.nodeValue, ops, this.#modules, this.#dataStack);\n } catch (ex) {\n throw new RenderError('Error evaluating text node', node, ex);\n }\n continue;\n }\n const el = /** @type {HTMLElement} */ (node);\n for (const command of CommandsHandler.ORDERED_COMMANDS) {\n if (!(command in el.dataset)) {\n continue;\n }\n const value = ops.popData(el, command);\n try {\n CommandsHandler[command](el, value, ops, this.#modules, this.#dataStack);\n } catch (ex) {\n throw new RenderError(`Error evaluating command ${command}`, el, ex);\n }\n if (ops.removed(el)) {\n break;\n }\n }\n for (const dataSetKey of Object.keys(el.dataset || {})) {\n if (!dataSetKey.startsWith('tpl')) {\n continue;\n }\n const attributeName = toAttr(dataSetKey);\n try {\n const expression = ops.popData(el, dataSetKey);\n const evaluated = Expressions.interpret(this.#modules, this.#dataStack, expression);\n if (typeof evaluated === 'boolean') {\n Attributes.toggle(el, attributeName, evaluated);\n continue;\n }\n if (evaluated !== null && evaluated !== undefined) {\n el.setAttribute(attributeName, evaluated);\n }\n } catch (ex) {\n throw new RenderError(`Error evaluating command ${dataSetKey}`, el, ex);\n }\n }\n }\n ops.cleanup();\n return fragment;\n } catch (ex) {\n throw new RenderError('Error rendering template', this.#fragment, ex);\n }\n }\n /**\n * Renders this template on the Element (replacing children).\n * @param {Element} el\n */\n renderTo(el) {\n el.replaceChildren(this.render());\n }\n /**\n * Renders this template appending the resulting fragment to the Element.\n * @param {Element} el\n */\n appendTo(el) {\n el.appendChild(this.render());\n }\n /**\n * Renders this template appending the resulting fragment to the first Element maching the selector, if exists.\n * @param {string} selector\n */\n renderToSelector(selector) {\n const el = document.querySelector(selector);\n if (el) {\n this.renderTo(el);\n }\n }\n /**\n * Renders this template appending the resulting fragment to the Element maching the selector, if exists.\n * @param {string} selector\n */\n appendToSelector(selector) {\n const el = document.querySelector(selector);\n if (el) {\n this.appendTo(el);\n }\n }\n static #NODE_FILTER(node) {\n if (node.nodeType === Node.TEXT_NODE) {\n return node.nodeValue.includes('{{') && node.nodeValue.includes('}}')\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_REJECT;\n }\n for (const attr of node.attributes) {\n if (attr.name.startsWith('data-tpl-')) {\n return NodeFilter.FILTER_ACCEPT;\n }\n }\n return NodeFilter.FILTER_SKIP;\n }\n}\n\nclass RenderError extends Error {\n constructor(message, nodeOrFragment, cause) {\n super(`${message} in \\`${RenderError.stringify(nodeOrFragment)}\\``, { cause });\n this.name = 'RenderError';\n this.node = nodeOrFragment.cloneNode(true);\n }\n static stringify(nodeOrFragment) {\n const t = document.createElement('template');\n t.content.appendChild(RenderError.#cleanup(nodeOrFragment.cloneNode(true)));\n return t.innerHTML;\n }\n static #cleanup(node) {\n if (node.nodeType === Node.TEXT_NODE) {\n node.nodeValue = node.nodeValue.trim();\n }\n for (var n = 0; n < node.childNodes.length; n++) {\n var child = node.childNodes[n];\n if (child.nodeType === Node.TEXT_NODE) {\n child.nodeValue = child.nodeValue.trim();\n if (child.nodeValue.length === 0) {\n node.removeChild(child);\n n--;\n }\n } else if (child.nodeType === Node.ELEMENT_NODE) {\n RenderError.#cleanup(child);\n }\n }\n return node;\n }\n}\n\nexport { Template, RenderError };\n","import { Nodes } from './dom.mjs';\nimport { ExpressionEvaluator } from './expressions.mjs';\nimport { Template } from './template.mjs';\n\nclass UpgradeQueue {\n #q = new Map();\n constructor() {\n document.addEventListener('DOMContentLoaded', async () => {\n const pending = Array.from(this.entries).map(([child, promise]) => promise);\n await Promise.all(pending);\n document.dispatchEvent(\n new CustomEvent('ftl:ready', {\n bubbles: false,\n cancelable: false,\n }),\n );\n });\n }\n enqueue(el) {\n if (this.#q.has(el)) {\n //already upgrading, can happen when disconnecting an element\n //while it's already queued for upgrade (e.g.: ful-form)\n return;\n }\n const promise = Nodes.waitParsed(el)\n .then(() => el.upgrade())\n .finally(() => this.#q.delete(el));\n this.#q.set(el, promise);\n }\n get entries() {\n return this.#q.entries();\n }\n}\n\n\nclass Registry {\n #tagToClass = {};\n #configured = false;\n #mappers = {\n string: {\n unmarshal(str, name, el) {\n return str;\n },\n marshal(value, name, el) {\n return value == null ? null : String(value);\n },\n },\n number: {\n unmarshal(str, name, el) {\n return str === null ? null : Number(str);\n },\n marshal(value, name, el) {\n return value == null ? null : String(value);\n },\n },\n presence: {\n unmarshal(str, name, el) {\n return str !== null;\n },\n marshal(value, name, el) {\n return value ? '' : null;\n },\n },\n bool: {\n unmarshal(str, name, el) {\n return str === 'true';\n },\n marshal(value, name, el) {\n return value == null ? null : String(value === true);\n },\n },\n json: {\n unmarshal(str, name, el) {\n return str === null ? null : JSON.parse(str);\n },\n marshal(value, name, el) {\n return value == null ? null : JSON.stringify(value);\n },\n },\n csv: {\n unmarshal(str, name, el) {\n return str === null\n ? []\n : str\n .split(',')\n .map((e) => e.trim())\n .filter((e) => e);\n },\n marshal(value, name, el) {\n return value == null ? null : value.join(',');\n },\n },\n csvm: {\n unmarshal(str, name, el) {\n if (el.hasAttribute('multiple')) {\n return str === null\n ? []\n : str\n .split(',')\n .map((e) => e.trim())\n .filter((e) => e);\n }\n return str === null || str === '' ? null : str;\n },\n marshal(value, name, el) {\n if (el.hasAttribute('multiple')) {\n return value === null ? null : value.join(',');\n }\n return value == null ? null : String(value);\n },\n },\n };\n #components = {};\n #modules;\n #data = [];\n #upgradeQueue = new UpgradeQueue();\n defineElement(tag, klass) {\n if (!this.#configured) {\n this.#tagToClass[tag] = klass;\n return this;\n }\n this.#augmentAndDefineElement(tag, klass);\n return this;\n }\n #augmentAndDefineElement(tag, klass) {\n const { observed, attributes, template, templates, slots, mappers } = klass;\n const observedNames = (observed ?? []).map((a) => a.split(':')[0]);\n const attrToMapper = [...(attributes ?? []), ...(observed ?? [])].reduce((acc, a) => {\n const [attr, maybeType] = a.split(':');\n const type = maybeType?.trim() ?? 'string';\n if (!(type in this.#mappers) && !(type in (mappers ?? {}))) {\n throw new Error(`unsupported attribute type: ${type}`);\n }\n acc[attr.trim()] = mappers?.[type] ?? this.#mappers[type];\n return acc;\n }, {});\n\n const namesAndTemplates = Object.entries(\n Object.assign({}, templates, template ? { default: template } : {}),\n ).map(([k, v]) => [k, Template.fromHtml(v)]);\n const nameToTemplate = Object.fromEntries(namesAndTemplates);\n\n klass.BITS = {\n enqueue: (el) => this.#upgradeQueue.enqueue(el),\n SLOTS: slots,\n OBSERVED: observedNames,\n ATTR_TO_MAPPER: attrToMapper,\n TEMPLATES: nameToTemplate,\n };\n customElements.define(tag, klass);\n }\n defineModule(name, value) {\n const module = name ? { [name]: value } : value;\n this.#modules = { ...this.#modules, ...module };\n return this;\n }\n defineModules(ms) {\n this.#modules = ms;\n return this;\n }\n defineComponent(name, value) {\n this.#components[name] = value;\n return this;\n }\n defineData(...data) {\n this.#data = data;\n return this;\n }\n defineOverlay(...data) {\n this.#data = [...this.#data, ...data];\n return this;\n }\n defineMapper(k, v) {\n this.#mappers[k] = v;\n return this;\n }\n plugin(p) {\n p.configure(this);\n return this;\n }\n configure() {\n for (const [tag, klass] of Object.entries(this.#tagToClass)) {\n this.#augmentAndDefineElement(tag, klass);\n delete this.#tagToClass[tag];\n }\n this.#configured = true;\n return this;\n }\n get upgrades() {\n return this.#upgradeQueue.entries;\n }\n context() {\n return { modules: this.#modules, data: this.#data };\n }\n evaluator() {\n return new ExpressionEvaluator(this.#modules, this.#data);\n }\n component(name) {\n return this.#components[name];\n }\n}\n\nconst registry = new Registry();\n\nexport { Registry, registry };\n","import { Attributes, LightSlots } from './dom.mjs';\nimport { registry } from './registry.mjs';\n\n/**\n * An attribute Mapper.\n *\n * @typedef {object} Mapper\n * @property {(val: string|null|undefined, name: string, el: Element) => any} unmarshal\n * @property {(val: any, name: string, el: Element) => string|null} marshal\n */\n\n\nclass ParsedElement extends HTMLElement {\n static BITS = {\n enqueue: (el) => {},\n SLOTS: false,\n OBSERVED: [],\n /** @type {Record<string, Mapper>} */\n ATTR_TO_MAPPER: {},\n TEMPLATES: {},\n };\n static get observedAttributes() {\n return this.BITS.OBSERVED;\n }\n #parsed = false;\n #reflecting = 0;\n #bits() {\n return /** @type {typeof ParsedElement} */ (this.constructor).BITS;\n }\n unmarshal(attr, str) {\n return this.#bits().ATTR_TO_MAPPER[attr].unmarshal(str, attr, this);\n }\n marshal(attr, value) {\n return this.#bits().ATTR_TO_MAPPER[attr].marshal(value, attr, this);\n }\n /**\n * @param {string} [name] - The name of the template target, defaults to 'default'\n */\n template(name) {\n const { modules, data } = registry.context();\n let t = this.#bits().TEMPLATES[name ?? 'default'].withData(data).withModules(modules);\n for (let k of ['l10n', 'config']) {\n const v = this.constructor[k];\n if (v) {\n t = t.withOverlay({ [k]: v });\n }\n }\n return t;\n }\n connectedCallback() {\n if (this.#parsed) {\n return;\n }\n this.#bits().enqueue(this);\n }\n attributeChangedCallback(attr, oldValue, newValue) {\n if (!this.#parsed || oldValue === newValue) {\n return;\n }\n if (this.#reflecting > 0) {\n return;\n }\n this[attr] = this.unmarshal(attr, newValue);\n }\n #disabledBeforeParsed = null;\n formDisabledCallback(disabled) {\n if (!this.#parsed) {\n this.#disabledBeforeParsed = disabled;\n return;\n }\n Reflect.set(this, 'disabled', disabled);\n }\n async upgrade() {\n if (this.#parsed) {\n return;\n }\n this.#parsed = true;\n const slots = this.#bits().SLOTS ? LightSlots.from(this) : undefined;\n const observed = Object.fromEntries(\n this.#bits().OBSERVED.map((attribute) => [\n attribute,\n this.unmarshal(attribute, this.getAttribute(attribute)),\n ]),\n );\n const disabled = this.#disabledBeforeParsed ?? false;\n await this.render({ slots, observed, disabled });\n }\n render(c) {}\n reflect(fn) {\n ++this.#reflecting;\n try {\n fn();\n } finally {\n --this.#reflecting;\n }\n }\n reflectTo(attr, value) {\n ++this.#reflecting;\n try {\n Attributes.set(this, attr, this.marshal(attr, value));\n } finally {\n --this.#reflecting;\n }\n }\n}\n\nexport { ParsedElement };\n","import { registry } from './registry.mjs';\n\nclass Rendering {\n static async waitFor(el) {\n const pending = Array.from(registry.upgrades)\n .filter(([child, promise]) => el.contains(child))\n .map(([child, promise]) => promise);\n await Promise.all(pending);\n }\n static async waitForChildren(el) {\n const pending = Array.from(registry.upgrades)\n .filter(([child, promise]) => el !== child && el.contains(child))\n .map(([child, promise]) => promise);\n await Promise.all(pending);\n }\n}\n\nexport { Rendering };\n","import { registry } from './registry.mjs';\nimport { Template } from './template.mjs';\n\nclass Templates {\n static fromHtml(html) {\n const { modules, data } = registry.context();\n return Template.fromHtml(html, modules, ...data);\n }\n static fromSelector(selector) {\n const { modules, data } = registry.context();\n return Template.fromSelector(selector, modules, ...data);\n }\n static fromTemplate(templateEl) {\n const { modules, data } = registry.context();\n return Template.fromTemplate(templateEl, modules, ...data);\n }\n static fromFragment(fragment) {\n const { modules, data } = registry.context();\n return Template.fromFragment(fragment, modules, ...data);\n }\n}\n\nexport { Templates };\n"],"names":["nodes","ter","Symbol","elv","nullc","or","and","eq","cmp","not","access","member","subscript","method","call","tstring","literal","array","dict","function","symbol","templated","ten","teh","tet","tel","dom","t","h","n","peg$f4","c","peg$f12","head","op","rhs","peg$f14","peg$f32","TemplatedRoot","s0","s1","peg$parseTemplatedExpression","peg$FAILED","push","TemplatedExpression","peg$currPos","value","s2","input","substr","peg$c1","peg$silentFails","peg$fail","peg$e0","peg$parseBeginNode","s3","peg$parseExpressionRoot","s4","peg$c2","peg$e1","peg$parseEndNode","type","peg$c3","peg$e2","peg$parseBeginHtml","peg$c4","peg$e3","peg$parseEndHtml","peg$f1","peg$c5","peg$e4","peg$parseBeginText","peg$c6","peg$e5","peg$parseEndText","peg$f2","parts","charAt","peg$r0","test","peg$e6","substring","charCodeAt","peg$c7","peg$e7","length","peg$e8","peg$c9","peg$e9","s5","undefined","join","peg$parseTemplatedText","peg$f3","ExpressionRoot","peg$parse_","r","peg$parseTernaryExpression","TernaryExpression","cond","peg$parseElvisExpression","peg$c13","peg$e10","ifTrue","s7","peg$c15","peg$e11","ifFalse","s9","ElvisExpression","peg$parseNullCoalescingExpression","peg$c17","peg$e12","NullCoalescingExpression","lhs","peg$parseOrExpression","peg$c19","peg$e13","OrExpression","peg$parseAndExpression","tail","peg$c22","peg$e14","result","peg$f10","AndExpression","peg$parseEqExpression","peg$c24","peg$e15","peg$f11","EqExpression","peg$parseRelExpression","peg$parseEqualityOp","element","peg$f13","RelExpression","peg$parseNotExpression","peg$parseRelationalOp","peg$f15","NotExpression","peg$c26","peg$e16","expr","peg$parseGroupingExpression","peg$parseAccessExpression","peg$parseAccess","AccessExpression","peg$c28","peg$e18","peg$c29","peg$e19","peg$parseSymbol","ns","peg$e17","peg$parseAccessMember","peg$c30","peg$e21","s6","peg$c31","peg$e22","peg$e20","peg$parseAccessSubscript","peg$c32","peg$e24","peg$c34","peg$e25","peg$c36","peg$e26","args","peg$e23","peg$parseAccessMethodCall","GroupingExpression","e","fn","peg$c49","peg$e51","module","peg$r5","peg$e52","peg$r6","peg$e53","v","peg$e50","peg$parseModuleFunction","peg$f22","peg$e27","peg$parseModuleFunctionCall","peg$c43","peg$e36","peg$r1","peg$e37","s8","parseFloat","peg$e35","peg$parseNumberLiteral","peg$c39","peg$e29","peg$c40","peg$e30","peg$e28","peg$parseBooleanLiteral","peg$c41","peg$e32","peg$e31","peg$parseNullLiteral","peg$c42","peg$e34","peg$e33","peg$parseUndefinedLiteral","peg$parseStringLiteral","peg$f35","peg$e48","peg$parseArrayLiteral","s11","s13","peg$c47","peg$e45","apply","peg$e49","peg$parseDictLiteral","peg$parseAnyLiteral","StringLiteral","peg$c44","peg$e39","peg$r2","peg$e40","peg$c45","peg$e41","peg$r3","peg$e42","peg$f29","peg$c46","peg$e43","peg$parseTemplateStringExpression","peg$parseTemplateStringLiteral","peg$e38","TemplateStringExpression","peg$e44","TemplateStringLiteral","peg$r4","peg$e47","char","peg$e46","s","peg$e54","EqualityOp","peg$c53","peg$e55","peg$c54","peg$e56","RelationalOp","peg$c55","peg$e57","peg$c56","peg$e58","peg$c57","peg$e59","peg$c58","peg$e60","_","peg$r7","peg$e61","EvaluatingVisitor","modules","dataStack","constructor","this","resolve","prop","i","overlay","cached_resolve_proxy","resolve_proxy","Proxy","get","target","node","visit","Error","fnRef","map","arg","len","evaluated","Object","fromEntries","entry","prev","cur","visitRoot","ast","toString","Expressions","static","Map","parse","expression","mode","key","astCache","has","size","MAX_CACHE_SIZE","oldestKey","keys","next","delete","set","startRule","MODE_TEMPLATED","evaluate","interpret","ExpressionEvaluator","withModule","name","withOverlay","data","evaluateExpression","MODE_EXPRESSION","evaluateTemplated","Fragments","fromHtml","html","el","document","createElement","innerHTML","trim","adoptNode","content","toHtml","fragment","appendChild","isBlank","childElementCount","textContent","from","DocumentFragment","fromChildNodes","firstChild","Attributes","uid","prefix","id","defaultValue","k","hasAttribute","setAttribute","getAttribute","forward","to","getAttributeNames","filter","a","startsWith","forEach","classes","split","classList","add","toggle","attr","removeAttribute","flip","LightSlots","namedSlots","Array","children","matches","remove","slot","slotFromNode","slots","default","append","childNodes","HTMLTemplateElement","HTMLScriptElement","Nodes","isParsed","parentNode","nextSibling","waitParsed","ownerDocument","readyState","Promise","ac","AbortController","clearAndQueue","abort","observer","disconnect","addEventListener","signal","MutationObserver","parent","observe","childList","queryChildren","selector","queryChildrenAll","NodeOperations","forRemoval","removed","includes","replaceChildren","dataset","popData","prepend","ref","insertBefore","replace","cleanup","pop","CommandsHandler","tplIf","ops","tplWith","varName","newNode","Template","render","tplEach","template","iterator","tplWhen","tplVerbatim","cloneNode","tplRemove","toLowerCase","tplText","text","tplHtml","tplClassAppend","cleanClasses","isArray","flatMap","Boolean","tplAttrAppend","attributesAndValues","textNode","createTextNode","attributeCache","toAttr","dataSetKey","cached","fromSelector","templateEl","querySelector","fromTemplate","fromFragment","withContext","withContextFrom","registry","context","withFragment","withModules","withData","evaluator","imported","importNode","nodeType","Node","DOCUMENT_FRAGMENT_NODE","d","createNodeIterator","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","NODE_FILTER","nextNode","TEXT_NODE","nodeValue","ex","RenderError","command","ORDERED_COMMANDS","attributeName","renderTo","appendTo","renderToSelector","appendToSelector","FILTER_ACCEPT","FILTER_REJECT","attributes","FILTER_SKIP","message","nodeOrFragment","cause","super","stringify","child","removeChild","ELEMENT_NODE","UpgradeQueue","q","async","pending","entries","promise","all","dispatchEvent","CustomEvent","bubbles","cancelable","enqueue","then","upgrade","finally","Registry","tagToClass","configured","mappers","string","unmarshal","str","marshal","String","number","Number","presence","bool","json","JSON","csv","csvm","components","upgradeQueue","defineElement","tag","klass","augmentAndDefineElement","observed","templates","observedNames","attrToMapper","reduce","acc","maybeType","namesAndTemplates","assign","nameToTemplate","BITS","SLOTS","OBSERVED","ATTR_TO_MAPPER","TEMPLATES","customElements","define","defineModule","defineModules","ms","defineComponent","defineData","defineOverlay","defineMapper","plugin","p","configure","upgrades","component","ParsedElement","HTMLElement","observedAttributes","parsed","reflecting","bits","connectedCallback","attributeChangedCallback","oldValue","newValue","disabledBeforeParsed","formDisabledCallback","disabled","Reflect","attribute","reflect","reflectTo","waitFor","contains","waitForChildren"],"mappings":"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"}
|
package/dist/ftl.min.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const t={ter:Symbol("ternary"),elv:Symbol("elvis"),nullc:Symbol("null-coalescence"),or:Symbol("or"),and:Symbol("and"),eq:Symbol("eq"),cmp:Symbol("cmp"),not:Symbol("not"),access:Symbol("access"),member:Symbol("access-member"),subscript:Symbol("access-subscript"),method:Symbol("access-method-call"),call:Symbol("module-function-call"),tstring:Symbol("tstring"),literal:Symbol("literal"),array:Symbol("array-literal"),dict:Symbol("dict-literal"),function:Symbol("module-function"),symbol:Symbol("symbol"),templated:{ten:Symbol("templated-node"),teh:Symbol("templated-html"),tet:Symbol("templated-text"),tel:Symbol("templated-literal")},dom:{t:Symbol("text"),h:Symbol("html"),n:Symbol("node")}};class e extends SyntaxError{constructor(t,e,r,n){super(t),this.expected=e,this.found=r,this.location=n,this.name="SyntaxError"}format(t){let e="Error: "+this.message;if(this.location){let r=null;const n=t.find(t=>t.source===this.location.source);n&&(r=n.text.split(/\r\n|\n|\r/g));const s=this.location.start,o=this.location.source&&"function"==typeof this.location.source.offset?this.location.source.offset(s):s,l=this.location.source+":"+o.line+":"+o.column;if(r){const t=this.location.end,n="".padEnd(o.line.toString().length," "),a=r[s.line-1],i=(s.line===t.line?t.column:a.length+1)-s.column||1;e+="\n --\x3e "+l+"\n"+n+" |\n"+o.line+" | "+a+"\n"+n+" | "+"".padEnd(s.column-1," ")+"".padEnd(i,"^")}else e+="\n at "+l}return e}static buildMessage(t,e){function r(t){return t.codePointAt(0).toString(16).toUpperCase()}const n=Object.prototype.hasOwnProperty.call(RegExp.prototype,"unicode")?new RegExp("[\\p{C}\\p{Mn}\\p{Mc}]","gu"):null;function s(t){return n?t.replace(n,t=>"\\u{"+r(t)+"}"):t}function o(t){return s(t.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,t=>"\\x0"+r(t)).replace(/[\x10-\x1F\x7F-\x9F]/g,t=>"\\x"+r(t)))}function l(t){return s(t.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,t=>"\\x0"+r(t)).replace(/[\x10-\x1F\x7F-\x9F]/g,t=>"\\x"+r(t)))}const a={literal:t=>'"'+o(t.text)+'"',class(t){const e=t.parts.map(t=>Array.isArray(t)?l(t[0])+"-"+l(t[1]):l(t));return"["+(t.inverted?"^":"")+e.join("")+"]"+(t.unicode?"u":"")},any:()=>"any character",end:()=>"end of input",other:t=>t.description};function i(t){return a[t.type](t)}return"Expected "+function(t){const e=t.map(i);if(e.sort(),e.length>0){let t=1;for(let r=1;r<e.length;r++)e[r-1]!==e[r]&&(e[t]=e[r],t++);e.length=t}switch(e.length){case 1:return e[0];case 2:return e[0]+" or "+e[1];default:return e.slice(0,-1).join(", ")+", or "+e[e.length-1]}}(t)+" but "+function(t){return t?'"'+o(t)+'"':"end of input"}(e)+" found."}}function r(r,n){const s={},o=(n=void 0!==n?n:{}).grammarSource,l={TemplatedRoot:Se,ExpressionRoot:Te};let a=Se;const i="{{{{",u="}}}}",c="{{{",h="}}}",d="{{",p="}}",f="\\",m="{",g="?",b=":",y="?:",A="??",v="||",x="&&",E="!",P="?.",C=".",S="[",w="]",T="(",M=",",O=")",D="true",N="false",_="null",R="undefined",F="-",k="'",L='"',$="`",H="}",j="#",I="==",q="!=",V=">=",B=">",W="<=",X="<",Z=/^[^\\{]/,z=/^[0-9]/,J=/^[^']/,Q=/^[^"]/,U=/^[^\\`{]/,G=/^[a-zA-Z$_]/,K=/^[a-zA-Z$_0-9_]/,Y=/^[ \t\n\r]/,tt=Ae("{{{{",!1),et=Ae("}}}}",!1),rt=Ae("{{{",!1),nt=Ae("}}}",!1),st=Ae("{{",!1),ot=Ae("}}",!1),lt=ve(["\\","{"],!0,!1,!1),at=Ae("\\",!1),it={type:"any"},ut=Ae("{",!1),ct=Ae("?",!1),ht=Ae(":",!1),dt=Ae("?:",!1),pt=Ae("??",!1),ft=Ae("||",!1),mt=Ae("&&",!1),gt=Ae("!",!1),bt=xe("member"),yt=Ae("?.",!1),At=Ae(".",!1),vt=xe("subscript"),xt=Ae("[",!1),Et=Ae("]",!1),Pt=xe("method-call"),Ct=Ae("(",!1),St=Ae(",",!1),wt=Ae(")",!1),Tt=xe("module-function-call"),Mt=xe("boolean-literal"),Ot=Ae("true",!1),Dt=Ae("false",!1),Nt=xe("null-literal"),_t=Ae("null",!1),Rt=xe("undefined-literal"),Ft=Ae("undefined",!1),kt=xe("number-literal"),Lt=Ae("-",!1),$t=ve([["0","9"]],!1,!1,!1),Ht=xe("string-literal"),jt=Ae("'",!1),It=ve(["'"],!0,!1,!1),qt=Ae('"',!1),Vt=ve(['"'],!0,!1,!1),Bt=Ae("`",!1),Wt=xe("tstring-expression"),Xt=Ae("}",!1),Zt=xe("tstring-literal"),zt=ve(["\\","`","{"],!0,!1,!1),Jt=xe("array-literal"),Qt=xe("dict-literal"),Ut=xe("module-function"),Gt=Ae("#",!1),Kt=ve([["a","z"],["A","Z"],"$","_"],!1,!1,!1),Yt=ve([["a","z"],["A","Z"],"$","_",["0","9"],"_"],!1,!1,!1),te=xe("symbol"),ee=Ae("==",!1),re=Ae("!=",!1),ne=Ae(">=",!1),se=Ae(">",!1),oe=Ae("<=",!1),le=Ae("<",!1),ae=ve([" ","\t","\n","\r"],!1,!1,!1);function ie(t){return t}function ue(t,e,r){return{op:e,rhs:r}}function ce(t,e,r){return{op:e,rhs:r}}function he(t){return t}let de=0|n.peg$currPos;const pe=[{line:1,column:1}];let fe,me=de,ge=n.peg$maxFailExpected||[],be=0|n.peg$silentFails,ye={};if(n.startRule){if(!(n.startRule in l))throw new Error("Can't start parsing from rule \""+n.startRule+'".');a=l[n.startRule]}function Ae(t,e){return{type:"literal",text:t,ignoreCase:e}}function ve(t,e,r,n){return{type:"class",parts:t,inverted:e,ignoreCase:r,unicode:n}}function xe(t){return{type:"other",description:t}}function Ee(t){let e,n=pe[t];if(n)return n;if(t>=pe.length)e=pe.length-1;else for(e=t;!pe[--e];);for(n=pe[e],n={line:n.line,column:n.column};e<t;)10===r.charCodeAt(e)?(n.line++,n.column=1):n.column++,e++;return pe[t]=n,n}function Pe(t,e,r){const n=Ee(t),s=Ee(e);return{source:o,start:{offset:t,line:n.line,column:n.column},end:{offset:e,line:s.line,column:s.column}}}function Ce(t){de<me||(de>me&&(me=de,ge=[]),ge.push(t))}function Se(){let t,e;const r=40*de+0,n=ye[r];if(n)return de=n.nextPos,n.result;for(t=[],e=we();e!==s;)t.push(e),e=we();return ye[r]={nextPos:de,result:t},t}function we(){let e,n,o,l,a;const g=40*de+1,b=ye[g];return b?(de=b.nextPos,b.result):(e=de,n=de,o=function(){let t;const e=40*de+2,n=ye[e];if(n)return de=n.nextPos,n.result;r.substr(de,4)===i?(t=i,de+=4):(t=s,0===be&&Ce(tt));return ye[e]={nextPos:de,result:t},t}(),o!==s?(l=Te(),l!==s?(a=function(){let t;const e=40*de+3,n=ye[e];if(n)return de=n.nextPos,n.result;r.substr(de,4)===u?(t=u,de+=4):(t=s,0===be&&Ce(et));return ye[e]={nextPos:de,result:t},t}(),a!==s?n=l:(de=n,n=s)):(de=n,n=s)):(de=n,n=s),n!==s&&(y=n,n={type:t.templated.ten,value:y}),e=n,e===s&&(e=de,n=de,o=function(){let t;const e=40*de+4,n=ye[e];if(n)return de=n.nextPos,n.result;r.substr(de,3)===c?(t=c,de+=3):(t=s,0===be&&Ce(rt));return ye[e]={nextPos:de,result:t},t}(),o!==s?(l=Te(),l!==s?(a=function(){let t;const e=40*de+5,n=ye[e];if(n)return de=n.nextPos,n.result;r.substr(de,3)===h?(t=h,de+=3):(t=s,0===be&&Ce(nt));return ye[e]={nextPos:de,result:t},t}(),a!==s?n=l:(de=n,n=s)):(de=n,n=s)):(de=n,n=s),n!==s&&(n=function(e){return{type:t.templated.teh,value:e}}(n)),e=n,e===s&&(e=de,n=de,o=function(){let t;const e=40*de+6,n=ye[e];if(n)return de=n.nextPos,n.result;r.substr(de,2)===d?(t=d,de+=2):(t=s,0===be&&Ce(st));return ye[e]={nextPos:de,result:t},t}(),o!==s?(l=Te(),l!==s?(a=function(){let t;const e=40*de+7,n=ye[e];if(n)return de=n.nextPos,n.result;r.substr(de,2)===p?(t=p,de+=2):(t=s,0===be&&Ce(ot));return ye[e]={nextPos:de,result:t},t}(),a!==s?n=l:(de=n,n=s)):(de=n,n=s)):(de=n,n=s),n!==s&&(n=function(e){return{type:t.templated.tet,value:e}}(n)),e=n,e===s&&(e=de,n=function(){let t,e,n,o,l,a;const i=40*de+8,u=ye[i];if(u)return de=u.nextPos,u.result;t=de,e=[],n=de,o=[],l=r.charAt(de),Z.test(l)?de++:(l=s,0===be&&Ce(lt));if(l!==s)for(;l!==s;)o.push(l),l=r.charAt(de),Z.test(l)?de++:(l=s,0===be&&Ce(lt));else o=s;n=o!==s?r.substring(n,de):o;n===s&&(n=de,92===r.charCodeAt(de)?(o=f,de++):(o=s,0===be&&Ce(at)),o!==s?(r.length>de?(l=r.charAt(de),de++):(l=s,0===be&&Ce(it)),l!==s?n=l:(de=n,n=s)):(de=n,n=s),n===s&&(n=de,123===r.charCodeAt(de)?(o=m,de++):(o=s,0===be&&Ce(ut)),o!==s?(l=de,be++,123===r.charCodeAt(de)?(a=m,de++):(a=s,0===be&&Ce(ut)),be--,a===s?l=void 0:(de=l,l=s),l!==s?(o=[o,l],n=o):(de=n,n=s)):(de=n,n=s)));if(n!==s)for(;n!==s;){if(e.push(n),n=de,o=[],l=r.charAt(de),Z.test(l)?de++:(l=s,0===be&&Ce(lt)),l!==s)for(;l!==s;)o.push(l),l=r.charAt(de),Z.test(l)?de++:(l=s,0===be&&Ce(lt));else o=s;n=o!==s?r.substring(n,de):o,n===s&&(n=de,92===r.charCodeAt(de)?(o=f,de++):(o=s,0===be&&Ce(at)),o!==s?(r.length>de?(l=r.charAt(de),de++):(l=s,0===be&&Ce(it)),l!==s?n=ie(l):(de=n,n=s)):(de=n,n=s),n===s&&(n=de,123===r.charCodeAt(de)?(o=m,de++):(o=s,0===be&&Ce(ut)),o!==s?(l=de,be++,123===r.charCodeAt(de)?(a=m,de++):(a=s,0===be&&Ce(ut)),be--,a===s?l=void 0:(de=l,l=s),l!==s?(o=[o,l],n=o):(de=n,n=s)):(de=n,n=s)))}else e=s;e!==s&&(e=e.join(""));return t=e,ye[i]={nextPos:de,result:t},t}(),n!==s&&(n=function(e){return{type:t.templated.tel,value:e}}(n)),e=n))),ye[g]={nextPos:de,result:e},e);var y}function Te(){let t,e;const r=40*de+9,n=ye[r];return n?(de=n.nextPos,n.result):(t=de,We(),e=Me(),e!==s?(We(),t=e):(de=t,t=s),ye[r]={nextPos:de,result:t},t)}function Me(){let e,n,o,l,a,i;const u=40*de+10,c=ye[u];return c?(de=c.nextPos,c.result):(e=de,n=Oe(),n!==s?(We(),63===r.charCodeAt(de)?(o=g,de++):(o=s,0===be&&Ce(ct)),o!==s?(We(),l=Me(),l!==s?(We(),58===r.charCodeAt(de)?(a=b,de++):(a=s,0===be&&Ce(ht)),a!==s?(We(),i=Me(),i!==s?e={type:t.ter,cond:n,ifTrue:l,ifFalse:i}:(de=e,e=s)):(de=e,e=s)):(de=e,e=s)):(de=e,e=s)):(de=e,e=s),e===s&&(e=Oe()),ye[u]={nextPos:de,result:e},e)}function Oe(){let e,n,o,l;const a=40*de+11,i=ye[a];return i?(de=i.nextPos,i.result):(e=de,n=De(),n!==s?(We(),r.substr(de,2)===y?(o=y,de+=2):(o=s,0===be&&Ce(dt)),o!==s?(We(),l=Oe(),l!==s?e={type:t.elv,cond:n,ifFalse:l}:(de=e,e=s)):(de=e,e=s)):(de=e,e=s),e===s&&(e=De()),ye[a]={nextPos:de,result:e},e)}function De(){let e,n,o,l;const a=40*de+12,i=ye[a];return i?(de=i.nextPos,i.result):(e=de,n=Ne(),n!==s?(We(),r.substr(de,2)===A?(o=A,de+=2):(o=s,0===be&&Ce(pt)),o!==s?(We(),l=De(),l!==s?e={type:t.nullc,lhs:n,rhs:l}:(de=e,e=s)):(de=e,e=s)):(de=e,e=s),e===s&&(e=Ne()),ye[a]={nextPos:de,result:e},e)}function Ne(){let e,n,o,l,a,i;const u=40*de+13,c=ye[u];if(c)return de=c.nextPos,c.result;if(e=de,n=_e(),n!==s){for(o=[],l=de,We(),r.substr(de,2)===v?(a=v,de+=2):(a=s,0===be&&Ce(ft)),a!==s?(We(),i=_e(),i!==s?l=i:(de=l,l=s)):(de=l,l=s);l!==s;)o.push(l),l=de,We(),r.substr(de,2)===v?(a=v,de+=2):(a=s,0===be&&Ce(ft)),a!==s?(We(),i=_e(),i!==s?l=i:(de=l,l=s)):(de=l,l=s);e=function(e,r){let n=e;for(const e of r)n={type:t.or,lhs:n,rhs:e};return n}(n,o)}else de=e,e=s;return ye[u]={nextPos:de,result:e},e}function _e(){let e,n,o,l,a,i;const u=40*de+14,c=ye[u];if(c)return de=c.nextPos,c.result;if(e=de,n=Re(),n!==s){for(o=[],l=de,We(),r.substr(de,2)===x?(a=x,de+=2):(a=s,0===be&&Ce(mt)),a!==s?(We(),i=Re(),i!==s?l=i:(de=l,l=s)):(de=l,l=s);l!==s;)o.push(l),l=de,We(),r.substr(de,2)===x?(a=x,de+=2):(a=s,0===be&&Ce(mt)),a!==s?(We(),i=Re(),i!==s?l=i:(de=l,l=s)):(de=l,l=s);e=function(e,r){let n=e;for(const e of r)n={type:t.and,lhs:n,rhs:e};return n}(n,o)}else de=e,e=s;return ye[u]={nextPos:de,result:e},e}function Re(){let e,r,n,o,l,a;const i=40*de+15,u=ye[i];if(u)return de=u.nextPos,u.result;if(e=de,r=Fe(),r!==s){for(n=[],o=de,We(),l=Ve(),l!==s?(We(),a=Fe(),a!==s?o=ue(0,l,a):(de=o,o=s)):(de=o,o=s);o!==s;)n.push(o),o=de,We(),l=Ve(),l!==s?(We(),a=Fe(),a!==s?o=ue(0,l,a):(de=o,o=s)):(de=o,o=s);e=function(e,r){let n=e;for(const e of r)n={type:t.eq,op:e.op,lhs:n,rhs:e.rhs};return n}(r,n)}else de=e,e=s;return ye[i]={nextPos:de,result:e},e}function Fe(){let e,r,n,o,l,a;const i=40*de+16,u=ye[i];if(u)return de=u.nextPos,u.result;if(e=de,r=ke(),r!==s){for(n=[],o=de,We(),l=Be(),l!==s?(We(),a=ke(),a!==s?o=ce(0,l,a):(de=o,o=s)):(de=o,o=s);o!==s;)n.push(o),o=de,We(),l=Be(),l!==s?(We(),a=ke(),a!==s?o=ce(0,l,a):(de=o,o=s)):(de=o,o=s);e=function(e,r){let n=e;for(const e of r)n={type:t.cmp,op:e.op,lhs:n,rhs:e.rhs};return n}(r,n)}else de=e,e=s;return ye[i]={nextPos:de,result:e},e}function ke(){let e,n,o;const l=40*de+17,a=ye[l];return a?(de=a.nextPos,a.result):(e=de,33===r.charCodeAt(de)?(n=E,de++):(n=s,0===be&&Ce(gt)),n!==s?(We(),o=ke(),o!==s?e={type:t.not,expr:o}:(de=e,e=s)):(de=e,e=s),e===s&&(e=function(){let e,r,n,o,l;const a=40*de+18,i=ye[a];if(i)return de=i.nextPos,i.result;if(e=de,r=$e(),r!==s){if(We(),n=[],o=de,l=Le(),l!==s?(We(),o=l):(de=o,o=s),o!==s)for(;o!==s;)n.push(o),o=de,l=Le(),l!==s?(We(),o=l):(de=o,o=s);else n=s;n!==s?e={type:t.access,lhs:r,rhs:n}:(de=e,e=s)}else de=e,e=s;e===s&&(e=$e());return ye[a]={nextPos:de,result:e},e}()),ye[l]={nextPos:de,result:e},e)}function Le(){let e;const n=40*de+19,o=ye[n];return o?(de=o.nextPos,o.result):(e=function(){let e,n,o;const l=40*de+20,a=ye[l];if(a)return de=a.nextPos,a.result;be++,e=de,r.substr(de,2)===P?(n=P,de+=2):(n=s,0===be&&Ce(yt));n===s&&(46===r.charCodeAt(de)?(n=C,de++):(n=s,0===be&&Ce(At)));n!==s?(We(),o=qe(),o!==s?e={type:t.member,ns:"?."===n,rhs:o.value}:(de=e,e=s)):(de=e,e=s);be--,e===s&&(n=s,0===be&&Ce(bt));return ye[l]={nextPos:de,result:e},e}(),e===s&&(e=function(){let e,n,o,l,a;const i=40*de+21,u=ye[i];if(u)return de=u.nextPos,u.result;be++,e=de,r.substr(de,2)===P?(n=P,de+=2):(n=s,0===be&&Ce(yt));n===s&&(n=null);91===r.charCodeAt(de)?(o=S,de++):(o=s,0===be&&Ce(xt));o!==s?(We(),l=Me(),l!==s?(We(),93===r.charCodeAt(de)?(a=w,de++):(a=s,0===be&&Ce(Et)),a!==s?e={type:t.subscript,ns:null!==n,rhs:l}:(de=e,e=s)):(de=e,e=s)):(de=e,e=s);be--,e===s&&(n=s,0===be&&Ce(vt));return ye[i]={nextPos:de,result:e},e}(),e===s&&(e=function(){let e,n,o,l,a,i,u,c;const h=40*de+22,d=ye[h];if(d)return de=d.nextPos,d.result;be++,e=de,r.substr(de,2)===P?(n=P,de+=2):(n=s,0===be&&Ce(yt));n===s&&(n=null);40===r.charCodeAt(de)?(o=T,de++):(o=s,0===be&&Ce(Ct));if(o!==s){for(We(),l=de,a=Me(),a!==s?(i=We(),l=a):(de=l,l=s),l===s&&(l=null),a=[],i=de,44===r.charCodeAt(de)?(u=M,de++):(u=s,0===be&&Ce(St)),u!==s?(We(),c=Me(),c!==s?(We(),i=c):(de=i,i=s)):(de=i,i=s);i!==s;)a.push(i),i=de,44===r.charCodeAt(de)?(u=M,de++):(u=s,0===be&&Ce(St)),u!==s?(We(),c=Me(),c!==s?(We(),i=c):(de=i,i=s)):(de=i,i=s);41===r.charCodeAt(de)?(i=O,de++):(i=s,0===be&&Ce(wt)),i!==s?(f=a,e={type:t.method,ns:null!==n,args:null===(p=l)?[]:[p,...f]}):(de=e,e=s)}else de=e,e=s;var p,f;be--,e===s&&(n=s,0===be&&Ce(Pt));return ye[h]={nextPos:de,result:e},e}())),ye[n]={nextPos:de,result:e},e)}function $e(){let e,n,o,l;const a=40*de+23,i=ye[a];return i?(de=i.nextPos,i.result):(e=de,40===r.charCodeAt(de)?(n=T,de++):(n=s,0===be&&Ce(Ct)),n!==s?(We(),o=Me(),o!==s?(We(),41===r.charCodeAt(de)?(l=O,de++):(l=s,0===be&&Ce(wt)),l!==s?e=o:(de=e,e=s)):(de=e,e=s)):(de=e,e=s),e===s&&(e=function(){let e,n,o,l,a,i,u,c;const h=40*de+24,d=ye[h];if(d)return de=d.nextPos,d.result;if(be++,e=de,n=function(){let e,n,o,l,a,i,u,c;const h=40*de+35,d=ye[h];if(d)return de=d.nextPos,d.result;be++,e=de,35===r.charCodeAt(de)?(n=j,de++):(n=s,0===be&&Ce(Gt));if(n!==s){if(o=de,l=de,a=de,i=r.charAt(de),G.test(i)?de++:(i=s,0===be&&Ce(Kt)),i!==s){for(u=[],c=r.charAt(de),K.test(c)?de++:(c=s,0===be&&Ce(Yt));c!==s;)u.push(c),c=r.charAt(de),K.test(c)?de++:(c=s,0===be&&Ce(Yt));i=[i,u],a=i}else de=a,a=s;if(l=a!==s?r.substring(l,de):a,l!==s?(58===r.charCodeAt(de)?(a=b,de++):(a=s,0===be&&Ce(ht)),a!==s?o=l:(de=o,o=s)):(de=o,o=s),o===s&&(o=null),l=de,a=de,i=r.charAt(de),G.test(i)?de++:(i=s,0===be&&Ce(Kt)),i!==s){for(u=[],c=r.charAt(de),K.test(c)?de++:(c=s,0===be&&Ce(Yt));c!==s;)u.push(c),c=r.charAt(de),K.test(c)?de++:(c=s,0===be&&Ce(Yt));i=[i,u],a=i}else de=a,a=s;l=a!==s?r.substring(l,de):a,l!==s?e={type:t.function,module:o,value:l}:(de=e,e=s)}else de=e,e=s;be--,e===s&&(n=s,0===be&&Ce(Ut));return ye[h]={nextPos:de,result:e},e}(),n!==s)if(40===r.charCodeAt(de)?(o=T,de++):(o=s,0===be&&Ce(Ct)),o!==s){for(We(),l=de,a=Me(),a!==s?(i=We(),l=a):(de=l,l=s),l===s&&(l=null),a=[],i=de,44===r.charCodeAt(de)?(u=M,de++):(u=s,0===be&&Ce(St)),u!==s?(We(),c=Me(),c!==s?(We(),i=c):(de=i,i=s)):(de=i,i=s);i!==s;)a.push(i),i=de,44===r.charCodeAt(de)?(u=M,de++):(u=s,0===be&&Ce(St)),u!==s?(We(),c=Me(),c!==s?(We(),i=c):(de=i,i=s)):(de=i,i=s);41===r.charCodeAt(de)?(i=O,de++):(i=s,0===be&&Ce(wt)),i!==s?e=function(e,r,n){const s=null===r?[]:[r,...n];return{type:t.call,value:e,args:s}}(n,l,a):(de=e,e=s)}else de=e,e=s;else de=e,e=s;be--,e===s&&(n=s,0===be&&Ce(Tt));return ye[h]={nextPos:de,result:e},e}(),e===s&&(e=function(){let e;const n=40*de+25,o=ye[n];if(o)return de=o.nextPos,o.result;e=function(){let e,n,o,l,a,i,u,c,h,d;const p=40*de+29,f=ye[p];if(f)return de=f.nextPos,f.result;be++,e=de,n=de,o=de,45===r.charCodeAt(de)?(l=F,de++):(l=s,0===be&&Ce(Lt));l===s&&(l=null);a=de,i=[],u=r.charAt(de),z.test(u)?de++:(u=s,0===be&&Ce($t));if(u!==s)for(;u!==s;)i.push(u),u=r.charAt(de),z.test(u)?de++:(u=s,0===be&&Ce($t));else i=s;if(i!==s){if(u=de,46===r.charCodeAt(de)?(c=C,de++):(c=s,0===be&&Ce(At)),c!==s){for(h=[],d=r.charAt(de),z.test(d)?de++:(d=s,0===be&&Ce($t));d!==s;)h.push(d),d=r.charAt(de),z.test(d)?de++:(d=s,0===be&&Ce($t));c=[c,h],u=c}else de=u,u=s;u===s&&(u=null),i=[i,u],a=i}else de=a,a=s;if(a===s)if(a=de,46===r.charCodeAt(de)?(i=C,de++):(i=s,0===be&&Ce(At)),i!==s){if(u=[],c=r.charAt(de),z.test(c)?de++:(c=s,0===be&&Ce($t)),c!==s)for(;c!==s;)u.push(c),c=r.charAt(de),z.test(c)?de++:(c=s,0===be&&Ce($t));else u=s;u!==s?(i=[i,u],a=i):(de=a,a=s)}else de=a,a=s;a!==s?(l=[l,a],o=l):(de=o,o=s);n=o!==s?r.substring(n,de):o;n!==s&&(n={type:t.literal,value:parseFloat(n)});e=n,be--,e===s&&(n=s,0===be&&Ce(kt));return ye[p]={nextPos:de,result:e},e}(),e===s&&(e=function(){let e,n;const o=40*de+26,l=ye[o];if(l)return de=l.nextPos,l.result;be++,e=de,r.substr(de,4)===D?(n=D,de+=4):(n=s,0===be&&Ce(Ot));n!==s&&(n={type:t.literal,value:!0});e=n,e===s&&(e=de,r.substr(de,5)===N?(n=N,de+=5):(n=s,0===be&&Ce(Dt)),n!==s&&(n={type:t.literal,value:!1}),e=n);be--,e===s&&(n=s,0===be&&Ce(Mt));return ye[o]={nextPos:de,result:e},e}(),e===s&&(e=function(){let e,n;const o=40*de+27,l=ye[o];if(l)return de=l.nextPos,l.result;be++,e=de,r.substr(de,4)===_?(n=_,de+=4):(n=s,0===be&&Ce(_t));n!==s&&(n={type:t.literal,value:null});e=n,be--,e===s&&(n=s,0===be&&Ce(Nt));return ye[o]={nextPos:de,result:e},e}(),e===s&&(e=function(){let e,n;const o=40*de+28,l=ye[o];if(l)return de=l.nextPos,l.result;be++,e=de,r.substr(de,9)===R?(n=R,de+=9):(n=s,0===be&&Ce(Ft));n!==s&&(n={type:t.literal,value:void 0});e=n,be--,e===s&&(n=s,0===be&&Ce(Rt));return ye[o]={nextPos:de,result:e},e}(),e===s&&(e=He(),e===s&&(e=function(){let e,n,o,l,a,i,u;const c=40*de+33,h=ye[c];if(h)return de=h.nextPos,h.result;be++,e=de,91===r.charCodeAt(de)?(n=S,de++):(n=s,0===be&&Ce(xt));if(n!==s){for(We(),o=Me(),o===s&&(o=null),We(),l=[],a=de,44===r.charCodeAt(de)?(i=M,de++):(i=s,0===be&&Ce(St)),i!==s?(We(),u=Me(),u!==s?(We(),a=u):(de=a,a=s)):(de=a,a=s);a!==s;)l.push(a),a=de,44===r.charCodeAt(de)?(i=M,de++):(i=s,0===be&&Ce(St)),i!==s?(We(),u=Me(),u!==s?(We(),a=u):(de=a,a=s)):(de=a,a=s);93===r.charCodeAt(de)?(a=w,de++):(a=s,0===be&&Ce(Et)),a!==s?e=function(e,r){const n=null===e?[]:[e,...r];return{type:t.array,value:n}}(o,l):(de=e,e=s)}else de=e,e=s;be--,e===s&&(n=s,0===be&&Ce(Jt));return ye[c]={nextPos:de,result:e},e}(),e===s&&(e=function(){let e,n,o,l,a,i,u,c,h,d,p;const f=40*de+34,g=ye[f];if(g)return de=g.nextPos,g.result;be++,e=de,123===r.charCodeAt(de)?(n=m,de++):(n=s,0===be&&Ce(ut));if(n!==s){for(We(),o=de,l=He(),l!==s?(a=We(),58===r.charCodeAt(de)?(i=b,de++):(i=s,0===be&&Ce(ht)),i!==s?(u=We(),c=Me(),c!==s?o=[l,c]:(de=o,o=s)):(de=o,o=s)):(de=o,o=s),o===s&&(o=null),l=We(),a=[],i=de,44===r.charCodeAt(de)?(u=M,de++):(u=s,0===be&&Ce(St)),u!==s?(c=We(),h=He(),h!==s?(We(),58===r.charCodeAt(de)?(d=b,de++):(d=s,0===be&&Ce(ht)),d!==s?(We(),p=Me(),p!==s?(We(),i=[h,p]):(de=i,i=s)):(de=i,i=s)):(de=i,i=s)):(de=i,i=s);i!==s;)a.push(i),i=de,44===r.charCodeAt(de)?(u=M,de++):(u=s,0===be&&Ce(St)),u!==s?(c=We(),h=He(),h!==s?(We(),58===r.charCodeAt(de)?(d=b,de++):(d=s,0===be&&Ce(ht)),d!==s?(We(),p=Me(),p!==s?(We(),i=[h,p]):(de=i,i=s)):(de=i,i=s)):(de=i,i=s)):(de=i,i=s);125===r.charCodeAt(de)?(i=H,de++):(i=s,0===be&&Ce(Xt)),i!==s?(A=a,v=[],null!==(y=o)&&v.push(y),v.push.apply(v,A),e={type:t.dict,value:v}):(de=e,e=s)}else de=e,e=s;var y,A,v;be--,e===s&&(n=s,0===be&&Ce(Qt));return ye[f]={nextPos:de,result:e},e}()))))));return ye[n]={nextPos:de,result:e},e}(),e===s&&(e=qe()))),ye[a]={nextPos:de,result:e},e)}function He(){let e,n,o,l,a;const i=40*de+30,u=ye[i];if(u)return de=u.nextPos,u.result;if(be++,e=de,39===r.charCodeAt(de)?(n=k,de++):(n=s,0===be&&Ce(jt)),n!==s){for(o=de,l=[],a=r.charAt(de),J.test(a)?de++:(a=s,0===be&&Ce(It));a!==s;)l.push(a),a=r.charAt(de),J.test(a)?de++:(a=s,0===be&&Ce(It));o=r.substring(o,de),39===r.charCodeAt(de)?(l=k,de++):(l=s,0===be&&Ce(jt)),l!==s?e={type:t.literal,value:o}:(de=e,e=s)}else de=e,e=s;if(e===s){if(e=de,34===r.charCodeAt(de)?(n=L,de++):(n=s,0===be&&Ce(qt)),n!==s){for(o=de,l=[],a=r.charAt(de),Q.test(a)?de++:(a=s,0===be&&Ce(Vt));a!==s;)l.push(a),a=r.charAt(de),Q.test(a)?de++:(a=s,0===be&&Ce(Vt));o=r.substring(o,de),34===r.charCodeAt(de)?(l=L,de++):(l=s,0===be&&Ce(qt)),l!==s?e=function(e){return{type:t.literal,value:e}}(o):(de=e,e=s)}else de=e,e=s;if(e===s)if(e=de,96===r.charCodeAt(de)?(n=$,de++):(n=s,0===be&&Ce(Bt)),n!==s){for(o=[],l=je(),l===s&&(l=Ie());l!==s;)o.push(l),l=je(),l===s&&(l=Ie());96===r.charCodeAt(de)?(l=$,de++):(l=s,0===be&&Ce(Bt)),l!==s?e={type:t.tstring,parts:o}:(de=e,e=s)}else de=e,e=s}return be--,e===s&&(n=s,0===be&&Ce(Ht)),ye[i]={nextPos:de,result:e},e}function je(){let t,e,n,o;const l=40*de+31,a=ye[l];return a?(de=a.nextPos,a.result):(be++,t=de,123===r.charCodeAt(de)?(e=m,de++):(e=s,0===be&&Ce(ut)),e!==s?(We(),n=Me(),n!==s?(We(),125===r.charCodeAt(de)?(o=H,de++):(o=s,0===be&&Ce(Xt)),o!==s?t=n:(de=t,t=s)):(de=t,t=s)):(de=t,t=s),be--,t===s&&(e=s,0===be&&Ce(Wt)),ye[l]={nextPos:de,result:t},t)}function Ie(){let e,n,o,l,a;const i=40*de+32,u=ye[i];if(u)return de=u.nextPos,u.result;if(be++,e=de,n=[],o=de,l=[],a=r.charAt(de),U.test(a)?de++:(a=s,0===be&&Ce(zt)),a!==s)for(;a!==s;)l.push(a),a=r.charAt(de),U.test(a)?de++:(a=s,0===be&&Ce(zt));else l=s;if(o=l!==s?r.substring(o,de):l,o===s&&(o=de,92===r.charCodeAt(de)?(l=f,de++):(l=s,0===be&&Ce(at)),l!==s?(r.length>de?(a=r.charAt(de),de++):(a=s,0===be&&Ce(it)),a!==s?o=a:(de=o,o=s)):(de=o,o=s)),o!==s)for(;o!==s;){if(n.push(o),o=de,l=[],a=r.charAt(de),U.test(a)?de++:(a=s,0===be&&Ce(zt)),a!==s)for(;a!==s;)l.push(a),a=r.charAt(de),U.test(a)?de++:(a=s,0===be&&Ce(zt));else l=s;o=l!==s?r.substring(o,de):l,o===s&&(o=de,92===r.charCodeAt(de)?(l=f,de++):(l=s,0===be&&Ce(at)),l!==s?(r.length>de?(a=r.charAt(de),de++):(a=s,0===be&&Ce(it)),a!==s?o=he(a):(de=o,o=s)):(de=o,o=s))}else n=s;return n!==s&&(n={type:t.literal,value:n.join("")}),e=n,e===s&&(e=de,123===r.charCodeAt(de)?(n=m,de++):(n=s,0===be&&Ce(ut)),n!==s&&(n={type:t.literal,value:n}),e=n),be--,e===s&&(n=s,0===be&&Ce(Zt)),ye[i]={nextPos:de,result:e},e}function qe(){let e,n,o,l,a,i;const u=40*de+36,c=ye[u];if(c)return de=c.nextPos,c.result;if(be++,e=de,n=de,o=de,l=r.charAt(de),G.test(l)?de++:(l=s,0===be&&Ce(Kt)),l!==s){for(a=[],i=r.charAt(de),K.test(i)?de++:(i=s,0===be&&Ce(Yt));i!==s;)a.push(i),i=r.charAt(de),K.test(i)?de++:(i=s,0===be&&Ce(Yt));l=[l,a],o=l}else de=o,o=s;return n=o!==s?r.substring(n,de):o,n!==s&&(n={type:t.symbol,value:n}),e=n,be--,e===s&&(n=s,0===be&&Ce(te)),ye[u]={nextPos:de,result:e},e}function Ve(){let t;const e=40*de+37,n=ye[e];return n?(de=n.nextPos,n.result):(r.substr(de,2)===I?(t=I,de+=2):(t=s,0===be&&Ce(ee)),t===s&&(r.substr(de,2)===q?(t=q,de+=2):(t=s,0===be&&Ce(re))),ye[e]={nextPos:de,result:t},t)}function Be(){let t;const e=40*de+38,n=ye[e];return n?(de=n.nextPos,n.result):(r.substr(de,2)===V?(t=V,de+=2):(t=s,0===be&&Ce(ne)),t===s&&(62===r.charCodeAt(de)?(t=B,de++):(t=s,0===be&&Ce(se)),t===s&&(r.substr(de,2)===W?(t=W,de+=2):(t=s,0===be&&Ce(oe)),t===s&&(60===r.charCodeAt(de)?(t=X,de++):(t=s,0===be&&Ce(le))))),ye[e]={nextPos:de,result:t},t)}function We(){let t,e;const n=40*de+39,o=ye[n];if(o)return de=o.nextPos,o.result;for(be++,t=[],e=r.charAt(de),Y.test(e)?de++:(e=s,0===be&&Ce(ae));e!==s;)t.push(e),e=r.charAt(de),Y.test(e)?de++:(e=s,0===be&&Ce(ae));return be--,ye[n]={nextPos:de,result:t},t}fe=a();const Xe=fe!==s&&de===r.length;function Ze(){throw fe!==s&&de<r.length&&Ce({type:"end"}),t=ge,n=me<r.length?function(t=de){const e=r.codePointAt(t);return void 0===e?"":String.fromCodePoint(e)}(me):null,o=me<r.length?Pe(me,me+1):Pe(me,me),new e(e.buildMessage(t,n),t,n,o);var t,n,o}return n.peg$library?{peg$result:fe,peg$currPos:de,peg$FAILED:s,peg$maxFailExpected:ge,peg$maxFailPos:me,peg$success:Xe,peg$throw:Xe?void 0:Ze}:Xe?fe:void Ze()}class n{#t;#e;constructor(t,e){this.#t=t,this.#e=e}#r(t){if("self"===t)return this.#e[this.#e.length-1];for(let e=this.#e.length-1;e>=0;e--){const r=this.#e[e];if(null!=r&&("object"==typeof r||"function"==typeof r)&&t in r)return r[t]}}#n;#s(){return this.#n||(this.#n=new Proxy(this.#e,{get:(t,e)=>this.#r(e)})),this.#n}[t.and](t){return this.visit(t.lhs)&&this.visit(t.rhs)}[t.or](t){return this.visit(t.lhs)||this.visit(t.rhs)}[t.nullc](t){const e=this.visit(t.lhs);return null!=e?e:this.visit(t.rhs)}[t.not](t){return!this.visit(t.expr)}[t.eq](t){const e=this.visit(t.lhs)===this.visit(t.rhs);return"=="===t.op?e:!e}[t.cmp](t){const e=this.visit(t.lhs),r=this.visit(t.rhs);switch(t.op){case">":return e>r;case"<":return e<r;case">=":return e>=r;case"<=":return e<=r;default:throw new Error("unknown cmp op "+t.op)}}[t.call](t){const e=t.value,r=null===e.module?this.#t:this.#t?.[e.module];if(!r)throw new Error(`Module "${e.module}" not found`);const n=r[e.value];if(!n)throw new Error(`Function "#${null===e.module?"":e.module+":"}${e.value}" not found`);const s=t.args.map(t=>this.visit(t));return n.apply(this.#s(),s)}[t.literal](t){return t.value}[t.tstring](t){let e="";const r=t.parts;for(let t=0,n=r.length;t<n;t++){const n=this.visit(r[t]);null!=n&&(e+=n)}return e}[t.symbol](t){return this.#r(t.value)}[t.dict](t){return Object.fromEntries(t.value.map(t=>[t[0].value,this.visit(t[1])]))}[t.array](t){return t.value.map(t=>this.visit(t))}[t.ter](t){return this.visit(t.cond)?this.visit(t.ifTrue):this.visit(t.ifFalse)}[t.elv](t){const e=this.visit(t.cond);return e||this.visit(t.ifFalse)}[t.access](e){let r,n=this.visit(e.lhs);for(let s=0;s!==e.rhs.length;++s){const o=e.rhs[s];if(o.ns&&null==n)return;let l;switch(o.type){case t.member:l=n[o.rhs];break;case t.subscript:l=n[this.visit(o.rhs)];break;case t.method:{if(!n)throw new Error(`Method missing "${e.rhs[s-1].rhs}"`);const t=o.args.map(t=>this.visit(t));l=n.apply(r,t);break}}r=n,n=l}return n}visit(t,...e){return this[t.type](t,...e)}visitRoot(e,r){return r?e.map(e=>{switch(e.type){case t.templated.tel:return{type:t.dom.t,value:e.value};case t.templated.tet:return{type:t.dom.t,value:this.visit(e.value)};case t.templated.teh:return{type:t.dom.h,value:this.visit(e.value)};case t.templated.ten:return{type:t.dom.n,value:this.visit(e.value)};default:throw new Error("unknown node type "+e.type.toString())}}):this.visit(e)}}class s{static MODE_EXPRESSION=Symbol("MODE_EXPRESSION");static MODE_TEMPLATED=Symbol("MODE_TEMPLATED");static#o=new Map;static#l=1e3;static parse(t,e){const n=e?.toString()+t;if(!this.#o.has(n)){if(this.#o.size>=this.#l){const t=this.#o.keys().next().value;this.#o.delete(t)}this.#o.set(n,r(t,{startRule:e===s.MODE_TEMPLATED?"TemplatedRoot":"ExpressionRoot"}))}return this.#o.get(n)}static evaluate(t,e,r,o){return new n(t,e).visitRoot(r,o===s.MODE_TEMPLATED)}static interpret(t,e,r,n){return s.evaluate(t,e,s.parse(r,n),n)}}class o{#t;#e;constructor(t,e){this.#t=t,this.#e=e}withModule(t,e){const r=t?{[t]:e}:e;return new o({...this.#t,...r},this.#e)}withOverlay(...t){return new o(this.#t,0===t.length?this.#e:[...this.#e,...t])}evaluate(t,e){return s.interpret(this.#t,this.#e,t,e)}evaluateExpression(t){return this.evaluate(t,s.MODE_EXPRESSION)}evaluateTemplated(t){return this.evaluate(t,s.MODE_TEMPLATED)}}class l{static fromHtml(...t){const e=document.createElement("template");return e.innerHTML=t.map(t=>t.trim()).join(""),document.adoptNode(e.content)}static toHtml(t){var e=document.createElement("template");return e.content.appendChild(t),e.innerHTML}static isBlank(t){return 0===t.childElementCount&&""===t.textContent.trim()}static from(...t){const e=new DocumentFragment;for(const r of t)e.appendChild(r);return e}static fromChildNodes(t){const e=new DocumentFragment;for(;t.firstChild;)e.appendChild(t.firstChild);return e}}class a{static id=0;static uid(t){return`${t}-${++a.id}`}static defaultValue(t,e,r){return t.hasAttribute(e)||t.setAttribute(e,r),t.getAttribute(e)}static forward(t,e,r){e.getAttributeNames().filter(e=>e.startsWith(t)).forEach(n=>{const s=n.substring(t.length);if("class"===s){const n=e.getAttribute(t+"class")?.split(/\s+/).filter(t=>t.length)??[];return void r.classList.add(...n)}r.setAttribute(s,e.getAttribute(n))})}static toggle(t,e,r){r?t.setAttribute(e,""):t.removeAttribute(e)}static flip(t,e){t.hasAttribute(e)?t.removeAttribute(e):t.setAttribute(e,"")}static set(t,e,r){null==r?t.removeAttribute(e):t.setAttribute(e,r)}}class i{static from(t){const e=Array.from(t.children).filter(t=>t.matches("[slot]")).map(t=>{t.remove();const e=t.getAttribute("slot")||"unnamed";return t.removeAttribute("slot"),[e,i.slotFromNode(t)]}),r={};r.default=new DocumentFragment,r.default.append(...t.childNodes);for(const[t,n]of e)t in r||(r[t]=new DocumentFragment),r[t].append(n);return r}static slotFromNode(t){return t instanceof HTMLTemplateElement?document.adoptNode(t.content):t instanceof HTMLScriptElement&&""!==t.type&&"text/javascript"!==t.type?l.fromHtml(t.innerHTML):t}}class u{static isParsed(t){for(let e=t;e;e=e.parentNode)if(e.nextSibling)return!0;return!1}static waitParsed(t){return"complete"===t.ownerDocument.readyState||u.isParsed(t)?Promise.resolve(t):new Promise(e=>{const r=new AbortController,n=()=>{r.abort(),s.disconnect(),e(t)};t.ownerDocument.addEventListener("DOMContentLoaded",n,{signal:r.signal});const s=new MutationObserver(()=>{u.isParsed(t)&&n()}),o=t.parentNode;s.observe(o,{childList:!0})})}static queryChildren(t,e){for(const r of t.children)if(r.matches(e))return r;return null}static queryChildrenAll(t,e){const r=[];for(const n of t.children)n.matches(e)&&r.push(n);return r}}class c{#a;constructor(){this.#a=[]}removed(t){return this.#a.includes(t)}remove(t){t.replaceChildren?.(),Object.keys(t.dataset||{}).filter(t=>t.startsWith("tpl")).forEach(e=>delete t.dataset[e]),this.#a.push(t)}popData(t,e){const r=t.dataset[e];return delete t.dataset[e],r}prepend(t,e){t.parentNode.insertBefore(e,t)}append(t,e){t.parentNode.insertBefore(e,t.nextSibling)}replace(t,e){this.prepend(t,e),this.remove(t)}cleanup(){for(;this.#a.length;)this.#a.pop().remove()}}class h{static ORDERED_COMMANDS=["tplIf","tplWith","tplEach","tplWhen","tplClassAppend","tplAttrAppend","tplText","tplHtml","tplRemove","tplVerbatim"];static tplIf(t,e,r,n,o){s.interpret(n,o,e)||r.remove(t)}static tplWith(t,e,r,n,o){const l=s.interpret(n,o,e),a=r.popData(t,"tplVar"),i=new f(t,n,o).withOverlay(a?{[a]:l}:l).render();r.replace(t,i)}static tplEach(t,e,r,n,o){const l=r.popData(t,"tplVar"),a=new f(t,n,o),i=s.interpret(n,o,e);if(!i?.[Symbol.iterator])throw new Error(`Expected an iterable got '${i}'`);for(const e of i)r.prepend(t,a.withOverlay(l?{[l]:e}:e).render());r.remove(t)}static tplWhen(t,e,r,n,o){s.interpret(n,o,e)||r.remove(t)}static tplVerbatim(t,e,r,n,s){const o=t.cloneNode(!0);r.replace(t,o)}static tplRemove(t,e,r,n,s){switch(e.toLowerCase()){case"tag":const e=new DocumentFragment;for(;t.firstChild;)e.appendChild(t.firstChild);"tplVerbatim"in t.dataset?(r.popData(t,"tplVerbatim"),r.replace(t,e)):(r.append(t,e),r.remove(t));break;case"body":t.replaceChildren();break;case"all":r.remove(t)}}static tplText(t,e,r,n,o){const l=s.interpret(n,o,e),a=t.cloneNode();a.replaceChildren(null==l?"":l),r.replace(t,a)}static tplHtml(t,e,r,n,o){const l=s.interpret(n,o,e),a=t.cloneNode();a.innerHTML=null==l?"":l,r.replace(t,a)}static tplClassAppend(t,e,r,n,o){const l=s.interpret(n,o,e);if(!l)return;const a=(Array.isArray(l)?l:[l]).flatMap(t=>"string"==typeof t?t.split(" "):t).filter(Boolean);0!==a.length&&t.classList.add(...a)}static tplAttrAppend(t,e,r,n,o){const l=s.interpret(n,o,e);if(!l||0===l.length)return;(Array.isArray(l[0])?l:[l]).forEach(([e,r])=>{t.setAttribute(e,r)})}static textNode(e,r,n,o,a){for(const i of s.interpret(o,a,r,s.MODE_TEMPLATED))if(null!=i.value)switch(i.type){case t.dom.t:n.prepend(e,document.createTextNode(i.value));break;case t.dom.h:n.prepend(e,l.fromHtml(i.value));break;case t.dom.n:n.prepend(e,i.value)}n.remove(e)}}const d=new Map;function p(t){let e=d.get(t);return e||(e=t.substring(3).split(/(?=[A-Z])/).join("-").toLowerCase(),d.set(t,e)),e}class f{static fromHtml(t,e,...r){return new f(l.fromHtml(t),e,r)}static fromSelector(t,e,...r){const n=document.querySelector(t);if(!(n instanceof HTMLTemplateElement))throw new Error("template selector does not match any template tag");const s=document.adoptNode(n.content);return new f(s,e,r)}static fromTemplate(t,e,...r){const n=document.adoptNode(t.content);return new f(n,e,r)}static fromFragment(t,e,...r){return new f(t,e,r)}#i;#t;#e;constructor(t,e,r){this.#i=t,this.#t=e,this.#e=r}withContext({modules:t,data:e}){return new f(this.#i,t,e)}withContextFrom(t){return this.withContext(t.context())}withFragment(t){return new f(t,this.#t,this.#e)}withModule(t,e){const r=t?{[t]:e}:e;return new f(this.#i,{...this.#t,...r},this.#e)}withModules(t){return new f(this.#i,t,this.#e)}withData(t){return new f(this.#i,this.#t,t)}withOverlay(...t){return new f(this.#i,this.#t,0===t.length?this.#e:[...this.#e,...t])}evaluate(t,e,...r){new o(this.#t,this.#e).withOverlay(...r).evaluate(t,e)}evaluator(){return new o(this.#t,this.#e)}render(){try{const t=new c,e=document.importNode(this.#i,!0),r=e.nodeType===Node.DOCUMENT_FRAGMENT_NODE?e:(()=>{const t=new DocumentFragment;return t.appendChild(e),t})(),n=document.createNodeIterator(r,NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT,f.#u);let o;for(;null!==(o=n.nextNode());){if(t.cleanup(),o.nodeType===Node.TEXT_NODE){try{h.textNode(o,o.nodeValue,t,this.#t,this.#e)}catch(t){throw new m("Error evaluating text node",o,t)}continue}const e=o;for(const r of h.ORDERED_COMMANDS){if(!(r in e.dataset))continue;const n=t.popData(e,r);try{h[r](e,n,t,this.#t,this.#e)}catch(t){throw new m(`Error evaluating command ${r}`,e,t)}if(t.removed(e))break}for(const r of Object.keys(e.dataset||{})){if(!r.startsWith("tpl"))continue;const n=p(r);try{const o=t.popData(e,r),l=s.interpret(this.#t,this.#e,o);if("boolean"==typeof l){a.toggle(e,n,l);continue}null!=l&&e.setAttribute(n,l)}catch(t){throw new m(`Error evaluating command ${r}`,e,t)}}}return t.cleanup(),r}catch(t){throw new m("Error rendering template",this.#i,t)}}renderTo(t){t.replaceChildren(this.render())}appendTo(t){t.appendChild(this.render())}renderToSelector(t){const e=document.querySelector(t);e&&this.renderTo(e)}appendToSelector(t){const e=document.querySelector(t);e&&this.appendTo(e)}static#u(t){if(t.nodeType===Node.TEXT_NODE)return t.nodeValue.includes("{{")&&t.nodeValue.includes("}}")?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT;for(const e of t.attributes)if(e.name.startsWith("data-tpl-"))return NodeFilter.FILTER_ACCEPT;return NodeFilter.FILTER_SKIP}}class m extends Error{constructor(t,e,r){super(`${t} in \`${m.stringify(e)}\``,{cause:r}),this.name="RenderError",this.node=e.cloneNode(!0)}static stringify(t){const e=document.createElement("template");return e.content.appendChild(m.#c(t.cloneNode(!0))),e.innerHTML}static#c(t){t.nodeType===Node.TEXT_NODE&&(t.nodeValue=t.nodeValue.trim());for(var e=0;e<t.childNodes.length;e++){var r=t.childNodes[e];r.nodeType===Node.TEXT_NODE?(r.nodeValue=r.nodeValue.trim(),0===r.nodeValue.length&&(t.removeChild(r),e--)):r.nodeType===Node.ELEMENT_NODE&&m.#c(r)}return t}}class g{#h=new Map;constructor(){document.addEventListener("DOMContentLoaded",async()=>{const t=Array.from(this.entries).map(([t,e])=>e);await Promise.all(t),document.dispatchEvent(new CustomEvent("ftl:ready",{bubbles:!1,cancelable:!1}))})}enqueue(t){if(this.#h.has(t))return;const e=u.waitParsed(t).then(()=>t.upgrade()).finally(()=>this.#h.delete(t));this.#h.set(t,e)}get entries(){return this.#h.entries()}}class b{#d={};#p=!1;#f={string:{unmarshal:(t,e,r)=>t,marshal:(t,e,r)=>null==t?null:String(t)},number:{unmarshal:(t,e,r)=>null===t?null:Number(t),marshal:(t,e,r)=>null==t?null:String(t)},presence:{unmarshal:(t,e,r)=>null!==t,marshal:(t,e,r)=>t?"":null},bool:{unmarshal:(t,e,r)=>"true"===t,marshal:(t,e,r)=>null==t?null:String(!0===t)},json:{unmarshal:(t,e,r)=>null===t?null:JSON.parse(t),marshal:(t,e,r)=>null==t?null:JSON.stringify(t)},csv:{unmarshal:(t,e,r)=>null===t?[]:t.split(",").map(t=>t.trim()).filter(t=>t),marshal:(t,e,r)=>null==t?null:t.join(",")},csvm:{unmarshal:(t,e,r)=>r.hasAttribute("multiple")?null===t?[]:t.split(",").map(t=>t.trim()).filter(t=>t):null===t||""===t?null:t,marshal:(t,e,r)=>r.hasAttribute("multiple")?null===t?null:t.join(","):null==t?null:String(t)}};#m={};#t;#g=[];#b=new g;defineElement(t,e){return this.#p?(this.#y(t,e),this):(this.#d[t]=e,this)}#y(t,e){const{observed:r,attributes:n,template:s,templates:o,slots:l,mappers:a}=e,i=(r??[]).map(t=>t.split(":")[0]),u=[...n??[],...r??[]].reduce((t,e)=>{const[r,n]=e.split(":"),s=n?.trim()??"string";if(!(s in this.#f)&&!(s in(a??{})))throw new Error(`unsupported attribute type: ${s}`);return t[r.trim()]=a?.[s]??this.#f[s],t},{}),c=Object.entries(Object.assign({},o,s?{default:s}:{})).map(([t,e])=>[t,f.fromHtml(e)]),h=Object.fromEntries(c);e.BITS={enqueue:t=>this.#b.enqueue(t),SLOTS:l,OBSERVED:i,ATTR_TO_MAPPER:u,TEMPLATES:h},customElements.define(t,e)}defineModule(t,e){const r=t?{[t]:e}:e;return this.#t={...this.#t,...r},this}defineModules(t){return this.#t=t,this}defineComponent(t,e){return this.#m[t]=e,this}defineData(...t){return this.#g=t,this}defineOverlay(...t){return this.#g=[...this.#g,...t],this}defineMapper(t,e){return this.#f[t]=e,this}plugin(t){return t.configure(this),this}configure(){for(const[t,e]of Object.entries(this.#d))this.#y(t,e),delete this.#d[t];return this.#p=!0,this}get upgrades(){return this.#b.entries}context(){return{modules:this.#t,data:this.#g}}evaluator(){return new o(this.#t,this.#g)}component(t){return this.#m[t]}}const y=new b;class A{static fromHtml(t){const{modules:e,data:r}=y.context();return f.fromHtml(t,e,...r)}static fromSelector(t){const{modules:e,data:r}=y.context();return f.fromSelector(t,e,...r)}static fromTemplate(t){const{modules:e,data:r}=y.context();return f.fromTemplate(t,e,...r)}static fromFragment(t){const{modules:e,data:r}=y.context();return f.fromFragment(t,e,...r)}}class v{static async waitFor(t){const e=Array.from(y.upgrades).filter(([e,r])=>t.contains(e)).map(([t,e])=>e);await Promise.all(e)}static async waitForChildren(t){const e=Array.from(y.upgrades).filter(([e,r])=>t!==e&&t.contains(e)).map(([t,e])=>e);await Promise.all(e)}}class x extends HTMLElement{static BITS={enqueue:t=>{},SLOTS:!1,OBSERVED:[],ATTR_TO_MAPPER:{},TEMPLATES:{}};static get observedAttributes(){return this.BITS.OBSERVED}#A=!1;#v=0;#x(){return this.constructor.BITS}unmarshal(t,e){return this.#x().ATTR_TO_MAPPER[t].unmarshal(e,t,this)}marshal(t,e){return this.#x().ATTR_TO_MAPPER[t].marshal(e,t,this)}template(t){const{modules:e,data:r}=y.context();let n=this.#x().TEMPLATES[t??"default"].withData(r).withModules(e);for(let t of["l10n","config"]){const e=this.constructor[t];e&&(n=n.withOverlay({[t]:e}))}return n}connectedCallback(){this.#A||this.#x().enqueue(this)}attributeChangedCallback(t,e,r){this.#A&&e!==r&&(this.#v>0||(this[t]=this.unmarshal(t,r)))}#E=null;formDisabledCallback(t){this.#A?Reflect.set(this,"disabled",t):this.#E=t}async upgrade(){if(this.#A)return;this.#A=!0;const t=this.#x().SLOTS?i.from(this):void 0,e=Object.fromEntries(this.#x().OBSERVED.map(t=>[t,this.unmarshal(t,this.getAttribute(t))])),r=this.#E??!1;await this.render({slots:t,observed:e,disabled:r})}render(t){}reflect(t){++this.#v;try{t()}finally{--this.#v}}reflectTo(t,e){++this.#v;try{a.set(this,t,this.marshal(t,e))}finally{--this.#v}}}export{a as Attributes,o as ExpressionEvaluator,s as Expressions,l as Fragments,i as LightSlots,u as Nodes,x as ParsedElement,b as Registry,m as RenderError,v as Rendering,f as Template,A as Templates,y as registry};
|
|
2
|
+
//# sourceMappingURL=ftl.min.mjs.map
|