(function (e, t) { const r = t(e); if (typeof exports === "object" && typeof exports["nodeName"] !== "string") { module.exports = r } else { e["_hyperscript"] = r; if ("document" in e) e["_hyperscript"].browserInit() } })(typeof self !== "undefined" ? self : this, (e => { "use strict"; const t = { dynamicResolvers: [function (e, t) { if (e === "Fixed") { return Number(t).toFixed() } else if (e.indexOf("Fixed:") === 0) { let r = e.split(":")[1]; return Number(t).toFixed(parseInt(r)) } }], String: function (e) { if (e.toString) { return e.toString() } else { return "" + e } }, Int: function (e) { return parseInt(e) }, Float: function (e) { return parseFloat(e) }, Number: function (e) { return Number(e) }, Date: function (e) { return new Date(e) }, Array: function (e) { return Array.from(e) }, JSON: function (e) { return JSON.stringify(e) }, Object: function (e) { if (e instanceof String) { e = e.toString() } if (typeof e === "string") { return JSON.parse(e) } else { return Object.assign({}, e) } } }; const r = { attributes: "_, script, data-script", defaultTransition: "all 500ms ease-in", disableSelector: "[disable-scripting], [data-disable-scripting]", hideShowStrategies: {}, conversions: t }; class n { static OP_TABLE = { "+": "PLUS", "-": "MINUS", "*": "MULTIPLY", "/": "DIVIDE", ".": "PERIOD", "..": "ELLIPSIS", "\\": "BACKSLASH", ":": "COLON", "%": "PERCENT", "|": "PIPE", "!": "EXCLAMATION", "?": "QUESTION", "#": "POUND", "&": "AMPERSAND", $: "DOLLAR", ";": "SEMI", ",": "COMMA", "(": "L_PAREN", ")": "R_PAREN", "<": "L_ANG", ">": "R_ANG", "<=": "LTE_ANG", ">=": "GTE_ANG", "==": "EQ", "===": "EQQ", "!=": "NEQ", "!==": "NEQQ", "{": "L_BRACE", "}": "R_BRACE", "[": "L_BRACKET", "]": "R_BRACKET", "=": "EQUALS" }; static isValidCSSClassChar(e) { return n.isAlpha(e) || n.isNumeric(e) || e === "-" || e === "_" || e === ":" } static isValidCSSIDChar(e) { return n.isAlpha(e) || n.isNumeric(e) || e === "-" || e === "_" || e === ":" } static isWhitespace(e) { return e === " " || e === "\t" || n.isNewline(e) } static positionString(e) { return "[Line: " + e.line + ", Column: " + e.column + "]" } static isNewline(e) { return e === "\r" || e === "\n" } static isNumeric(e) { return e >= "0" && e <= "9" } static isAlpha(e) { return e >= "a" && e <= "z" || e >= "A" && e <= "Z" } static isIdentifierChar(e, t) { return e === "_" || e === "$" } static isReservedChar(e) { return e === "`" || e === "^" } static isValidSingleQuoteStringStart(e) { if (e.length > 0) { var t = e[e.length - 1]; if (t.type === "IDENTIFIER" || t.type === "CLASS_REF" || t.type === "ID_REF") { return false } if (t.op && (t.value === ">" || t.value === ")")) { return false } } return true } static tokenize(e, t) { var r = []; var a = e; var o = 0; var s = 0; var u = 1; var l = ""; var c = 0; function f() { return t && c === 0 } while (o < a.length) { if (q() === "-" && N() === "-" && (n.isWhitespace(I(2)) || I(2) === "" || I(2) === "-") || q() === "/" && N() === "/" && (n.isWhitespace(I(2)) || I(2) === "" || I(2) === "/")) { h() } else if (q() === "/" && N() === "*" && (n.isWhitespace(I(2)) || I(2) === "" || I(2) === "*")) { v() } else { if (n.isWhitespace(q())) { r.push(A()) } else if (!R() && q() === "." && (n.isAlpha(N()) || N() === "{" || N() === "-")) { r.push(d()) } else if (!R() && q() === "#" && (n.isAlpha(N()) || N() === "{")) { r.push(k()) } else if (q() === "[" && N() === "@") { r.push(E()) } else if (q() === "@") { r.push(T()) } else if (q() === "*" && n.isAlpha(N())) { r.push(y()) } else if (n.isAlpha(q()) || !f() && n.isIdentifierChar(q())) { r.push(x()) } else if (n.isNumeric(q())) { r.push(g()) } else if (!f() && (q() === '"' || q() === "`")) { r.push(w()) } else if (!f() && q() === "'") { if (n.isValidSingleQuoteStringStart(r)) { r.push(w()) } else { r.push(b()) } } else if (n.OP_TABLE[q()]) { if (l === "$" && q() === "{") { c++ } if (q() === "}") { c-- } r.push(b()) } else if (f() || n.isReservedChar(q())) { r.push(p("RESERVED", C())) } else { if (o < a.length) { throw Error("Unknown token: " + q() + " ") } } } } return new i(r, [], a); function m(e, t) { var r = p(e, t); r.op = true; return r } function p(e, t) { return { type: e, value: t || "", start: o, end: o + 1, column: s, line: u } } function h() { while (q() && !n.isNewline(q())) { C() } C() } function v() { while (q() && !(q() === "*" && N() === "/")) { C() } C(); C() } function d() { var e = p("CLASS_REF"); var t = C(); if (q() === "{") { e.template = true; t += C(); while (q() && q() !== "}") { t += C() } if (q() !== "}") { throw Error("Unterminated class reference") } else { t += C() } } else { while (n.isValidCSSClassChar(q())) { t += C() } } e.value = t; e.end = o; return e } function E() { var e = p("ATTRIBUTE_REF"); var t = C(); while (o < a.length && q() !== "]") { t += C() } if (q() === "]") { t += C() } e.value = t; e.end = o; return e } function T() { var e = p("ATTRIBUTE_REF"); var t = C(); while (n.isValidCSSIDChar(q())) { t += C() } if (q() === "=") { t += C(); if (q() === '"' || q() === "'") { let e = w(); t += e.value } else if (n.isAlpha(q()) || n.isNumeric(q()) || n.isIdentifierChar(q())) { let e = x(); t += e.value } } e.value = t; e.end = o; return e } function y() { var e = p("STYLE_REF"); var t = C(); while (n.isAlpha(q()) || q() === "-") { t += C() } e.value = t; e.end = o; return e } function k() { var e = p("ID_REF"); var t = C(); if (q() === "{") { e.template = true; t += C(); while (q() && q() !== "}") { t += C() } if (q() !== "}") { throw Error("Unterminated id reference") } else { C() } } else { while (n.isValidCSSIDChar(q())) { t += C() } } e.value = t; e.end = o; return e } function x() { var e = p("IDENTIFIER"); var t = C(); while (n.isAlpha(q()) || n.isNumeric(q()) || n.isIdentifierChar(q())) { t += C() } if (q() === "!" && t === "beep") { t += C() } e.value = t; e.end = o; return e } function g() { var e = p("NUMBER"); var t = C(); while (n.isNumeric(q())) { t += C() } if (q() === "." && n.isNumeric(N())) { t += C() } while (n.isNumeric(q())) { t += C() } if (q() === "e" || q() === "E") { if (n.isNumeric(N())) { t += C() } else if (N() === "-") { t += C(); t += C() } } while (n.isNumeric(q())) { t += C() } e.value = t; e.end = o; return e } function b() { var e = m(); var t = C(); while (q() && n.OP_TABLE[t + q()]) { t += C() } e.type = n.OP_TABLE[t]; e.value = t; e.end = o; return e } function w() { var e = p("STRING"); var t = C(); var r = ""; while (q() && q() !== t) { if (q() === "\\") { C(); let t = C(); if (t === "b") { r += "\b" } else if (t === "f") { r += "\f" } else if (t === "n") { r += "\n" } else if (t === "r") { r += "\r" } else if (t === "t") { r += "\t" } else if (t === "v") { r += "\v" } else if (t === "x") { const t = S(); if (Number.isNaN(t)) { throw Error("Invalid hexadecimal escape at " + n.positionString(e)) } r += String.fromCharCode(t) } else { r += t } } else { r += C() } } if (q() !== t) { throw Error("Unterminated string at " + n.positionString(e)) } else { C() } e.value = r; e.end = o; e.template = t === "`"; return e } function S() { const e = 16; if (!q()) { return NaN } let t = e * Number.parseInt(C(), e); if (!q()) { return NaN } t += Number.parseInt(C(), e); return t } function q() { return a.charAt(o) } function N() { return a.charAt(o + 1) } function I(e = 1) { return a.charAt(o + e) } function C() { l = q(); o++; s++; return l } function R() { return n.isAlpha(l) || n.isNumeric(l) || l === ")" || l === '"' || l === "'" || l === "`" || l === "}" || l === "]" } function A() { var e = p("WHITESPACE"); var t = ""; while (q() && n.isWhitespace(q())) { if (n.isNewline(q())) { s = 0; u++ } t += C() } e.value = t; e.end = o; return e } } tokenize(e, t) { return n.tokenize(e, t) } } class i { constructor(e, t, r) { this.tokens = e; this.consumed = t; this.source = r; this.consumeWhitespace() } get list() { return this.tokens } _lastConsumed = null; consumeWhitespace() { while (this.token(0, true).type === "WHITESPACE") { this.consumed.push(this.tokens.shift()) } } raiseError(e, t) { a.raiseParseError(e, t) } requireOpToken(e) { var t = this.matchOpToken(e); if (t) { return t } else { this.raiseError(this, "Expected '" + e + "' but found '" + this.currentToken().value + "'") } } matchAnyOpToken(e, t, r) { for (var n = 0; n < arguments.length; n++) { var i = arguments[n]; var a = this.matchOpToken(i); if (a) { return a } } } matchAnyToken(e, t, r) { for (var n = 0; n < arguments.length; n++) { var i = arguments[n]; var a = this.matchToken(i); if (a) { return a } } } matchOpToken(e) { if (this.currentToken() && this.currentToken().op && this.currentToken().value === e) { return this.consumeToken() } } requireTokenType(e, t, r, n) { var i = this.matchTokenType(e, t, r, n); if (i) { return i } else { this.raiseError(this, "Expected one of " + JSON.stringify([e, t, r])) } } matchTokenType(e, t, r, n) { if (this.currentToken() && this.currentToken().type && [e, t, r, n].indexOf(this.currentToken().type) >= 0) { return this.consumeToken() } } requireToken(e, t) { var r = this.matchToken(e, t); if (r) { return r } else { this.raiseError(this, "Expected '" + e + "' but found '" + this.currentToken().value + "'") } } peekToken(e, t, r) { t = t || 0; r = r || "IDENTIFIER"; if (this.tokens[t] && this.tokens[t].value === e && this.tokens[t].type === r) { return this.tokens[t] } } matchToken(e, t) { if (this.follows.indexOf(e) !== -1) { return } t = t || "IDENTIFIER"; if (this.currentToken() && this.currentToken().value === e && this.currentToken().type === t) { return this.consumeToken() } } consumeToken() { var e = this.tokens.shift(); this.consumed.push(e); this._lastConsumed = e; this.consumeWhitespace(); return e } consumeUntil(e, t) { var r = []; var n = this.token(0, true); while ((t == null || n.type !== t) && (e == null || n.value !== e) && n.type !== "EOF") { var i = this.tokens.shift(); this.consumed.push(i); r.push(n); n = this.token(0, true) } this.consumeWhitespace(); return r } lastWhitespace() { if (this.consumed[this.consumed.length - 1] && this.consumed[this.consumed.length - 1].type === "WHITESPACE") { return this.consumed[this.consumed.length - 1].value } else { return "" } } consumeUntilWhitespace() { return this.consumeUntil(null, "WHITESPACE") } hasMore() { return this.tokens.length > 0 } token(e, t) { var r; var n = 0; do { if (!t) { while (this.tokens[n] && this.tokens[n].type === "WHITESPACE") { n++ } } r = this.tokens[n]; e--; n++ } while (e > -1); if (r) { return r } else { return { type: "EOF", value: "<<>>" } } } currentToken() { return this.token(0) } lastMatch() { return this._lastConsumed } static sourceFor = function () { return this.programSource.substring(this.startToken.start, this.endToken.end) }; static lineFor = function () { return this.programSource.split("\n")[this.startToken.line - 1] }; follows = []; pushFollow(e) { this.follows.push(e) } popFollow() { this.follows.pop() } clearFollows() { var e = this.follows; this.follows = []; return e } restoreFollows(e) { this.follows = e } } class a { constructor(e) { this.runtime = e; this.possessivesDisabled = false; this.addGrammarElement("feature", (function (e, t, r) { if (r.matchOpToken("(")) { var n = e.requireElement("feature", r); r.requireOpToken(")"); return n } var i = e.FEATURES[r.currentToken().value || ""]; if (i) { return i(e, t, r) } })); this.addGrammarElement("command", (function (e, t, r) { if (r.matchOpToken("(")) { const t = e.requireElement("command", r); r.requireOpToken(")"); return t } var n = e.COMMANDS[r.currentToken().value || ""]; let i; if (n) { i = n(e, t, r) } else if (r.currentToken().type === "IDENTIFIER") { i = e.parseElement("pseudoCommand", r) } if (i) { return e.parseElement("indirectStatement", r, i) } return i })); this.addGrammarElement("commandList", (function (e, t, r) { if (r.hasMore()) { var n = e.parseElement("command", r); if (n) { r.matchToken("then"); const t = e.parseElement("commandList", r); if (t) n.next = t; return n } } return { type: "emptyCommandListCommand", op: function (e) { return t.findNext(this, e) }, execute: function (e) { return t.unifiedExec(this, e) } } })); this.addGrammarElement("leaf", (function (e, t, r) { var n = e.parseAnyOf(e.LEAF_EXPRESSIONS, r); if (n == null) { return e.parseElement("symbol", r) } return n })); this.addGrammarElement("indirectExpression", (function (e, t, r, n) { for (var i = 0; i < e.INDIRECT_EXPRESSIONS.length; i++) { var a = e.INDIRECT_EXPRESSIONS[i]; n.endToken = r.lastMatch(); var o = e.parseElement(a, r, n); if (o) { return o } } return n })); this.addGrammarElement("indirectStatement", (function (e, t, r, n) { if (r.matchToken("unless")) { n.endToken = r.lastMatch(); var i = e.requireElement("expression", r); var a = { type: "unlessStatementModifier", args: [i], op: function (e, t) { if (t) { return this.next } else { return n } }, execute: function (e) { return t.unifiedExec(this, e) } }; n.parent = a; return a } return n })); this.addGrammarElement("primaryExpression", (function (e, t, r) { var n = e.parseElement("leaf", r); if (n) { return e.parseElement("indirectExpression", r, n) } e.raiseParseError(r, "Unexpected value: " + r.currentToken().value) })) } use(e) { e(this); return this } GRAMMAR = {}; COMMANDS = {}; FEATURES = {}; LEAF_EXPRESSIONS = []; INDIRECT_EXPRESSIONS = []; initElt(e, t, r) { e.startToken = t; e.sourceFor = i.sourceFor; e.lineFor = i.lineFor; e.programSource = r.source } parseElement(e, t, r = undefined) { var n = this.GRAMMAR[e]; if (n) { var i = t.currentToken(); var a = n(this, this.runtime, t, r); if (a) { this.initElt(a, i, t); a.endToken = a.endToken || t.lastMatch(); var r = a.root; while (r != null) { this.initElt(r, i, t); r = r.root } } return a } } requireElement(e, t, r, n) { var i = this.parseElement(e, t, n); if (!i) a.raiseParseError(t, r || "Expected " + e); return i } parseAnyOf(e, t) { for (var r = 0; r < e.length; r++) { var n = e[r]; var i = this.parseElement(n, t); if (i) { return i } } } addGrammarElement(e, t) { this.GRAMMAR[e] = t } addCommand(e, t) { var r = e + "Command"; var n = function (e, n, i) { const a = t(e, n, i); if (a) { a.type = r; a.execute = function (e) { e.meta.command = a; return n.unifiedExec(this, e) }; return a } }; this.GRAMMAR[r] = n; this.COMMANDS[e] = n } addFeature(e, t) { var r = e + "Feature"; var n = function (n, i, a) { var o = t(n, i, a); if (o) { o.isFeature = true; o.keyword = e; o.type = r; return o } }; this.GRAMMAR[r] = n; this.FEATURES[e] = n } addLeafExpression(e, t) { this.LEAF_EXPRESSIONS.push(e); this.addGrammarElement(e, t) } addIndirectExpression(e, t) { this.INDIRECT_EXPRESSIONS.push(e); this.addGrammarElement(e, t) } static createParserContext(e) { var t = e.currentToken(); var r = e.source; var n = r.split("\n"); var i = t && t.line ? t.line - 1 : n.length - 1; var a = n[i]; var o = t && t.line ? t.column : a.length - 1; return a + "\n" + " ".repeat(o) + "^^\n\n" } static raiseParseError(e, t) { t = (t || "Unexpected Token : " + e.currentToken().value) + "\n\n" + a.createParserContext(e); var r = new Error(t); r["tokens"] = e; throw r } raiseParseError(e, t) { a.raiseParseError(e, t) } parseHyperScript(e) { var t = this.parseElement("hyperscript", e); if (e.hasMore()) this.raiseParseError(e); if (t) return t } setParent(e, t) { if (typeof e === "object") { e.parent = t; if (typeof t === "object") { t.children = t.children || new Set; t.children.add(e) } this.setParent(e.next, t) } } commandStart(e) { return this.COMMANDS[e.value || ""] } featureStart(e) { return this.FEATURES[e.value || ""] } commandBoundary(e) { if (e.value == "end" || e.value == "then" || e.value == "else" || e.value == "otherwise" || e.value == ")" || this.commandStart(e) || this.featureStart(e) || e.type == "EOF") { return true } return false } parseStringTemplate(e) { var t = [""]; do { t.push(e.lastWhitespace()); if (e.currentToken().value === "$") { e.consumeToken(); var r = e.matchOpToken("{"); t.push(this.requireElement("expression", e)); if (r) { e.requireOpToken("}") } t.push("") } else if (e.currentToken().value === "\\") { e.consumeToken(); e.consumeToken() } else { var n = e.consumeToken(); t[t.length - 1] += n ? n.value : "" } } while (e.hasMore()); t.push(e.lastWhitespace()); return t } ensureTerminated(e) { const t = this.runtime; var r = { type: "implicitReturn", op: function (e) { e.meta.returned = true; if (e.meta.resolve) { e.meta.resolve() } return t.HALT }, execute: function (e) { } }; var n = e; while (n.next) { n = n.next } n.next = r } } class o { constructor(e, t) { this.lexer = e ?? new n; this.parser = t ?? new a(this).use(T).use(y); this.parser.runtime = this } matchesSelector(e, t) { var r = e.matches || e.matchesSelector || e.msMatchesSelector || e.mozMatchesSelector || e.webkitMatchesSelector || e.oMatchesSelector; return r && r.call(e, t) } makeEvent(t, r) { var n; if (e.Event && typeof e.Event === "function") { n = new Event(t, { bubbles: true, cancelable: true }); n["detail"] = r } else { n = document.createEvent("CustomEvent"); n.initCustomEvent(t, true, true, r) } return n } triggerEvent(e, t, r, n) { r = r || {}; r["sender"] = n; var i = this.makeEvent(t, r); var a = e.dispatchEvent(i); return a } isArrayLike(e) { return Array.isArray(e) || typeof NodeList !== "undefined" && (e instanceof NodeList || e instanceof HTMLCollection) } isIterable(e) { return typeof e === "object" && Symbol.iterator in e && typeof e[Symbol.iterator] === "function" } shouldAutoIterate(e) { return e != null && e[p] || this.isArrayLike(e) } forEach(e, t) { if (e == null) { } else if (this.isIterable(e)) { for (const r of e) { t(r) } } else if (this.isArrayLike(e)) { for (var r = 0; r < e.length; r++) { t(e[r]) } } else { t(e) } } implicitLoop(e, t) { if (this.shouldAutoIterate(e)) { for (const r of e) t(r) } else { t(e) } } wrapArrays(e) { var t = []; for (var r = 0; r < e.length; r++) { var n = e[r]; if (Array.isArray(n)) { t.push(Promise.all(n)) } else { t.push(n) } } return t } unwrapAsyncs(e) { for (var t = 0; t < e.length; t++) { var r = e[t]; if (r.asyncWrapper) { e[t] = r.value } if (Array.isArray(r)) { for (var n = 0; n < r.length; n++) { var i = r[n]; if (i.asyncWrapper) { r[n] = i.value } } } } } static HALT = {}; HALT = o.HALT; unifiedExec(e, t) { while (true) { try { var r = this.unifiedEval(e, t) } catch (n) { if (t.meta.handlingFinally) { console.error(" Exception in finally block: ", n); r = o.HALT } else { this.registerHyperTrace(t, n); if (t.meta.errorHandler && !t.meta.handlingError) { t.meta.handlingError = true; t.locals[t.meta.errorSymbol] = n; e = t.meta.errorHandler; continue } else { t.meta.currentException = n; r = o.HALT } } } if (r == null) { console.error(e, " did not return a next element to execute! context: ", t); return } else if (r.then) { r.then((e => { this.unifiedExec(e, t) })).catch((e => { this.unifiedExec({ op: function () { throw e } }, t) })); return } else if (r === o.HALT) { if (t.meta.finallyHandler && !t.meta.handlingFinally) { t.meta.handlingFinally = true; e = t.meta.finallyHandler } else { if (t.meta.onHalt) { t.meta.onHalt() } if (t.meta.currentException) { if (t.meta.reject) { t.meta.reject(t.meta.currentException); return } else { throw t.meta.currentException } } else { return } } } else { e = r } } } unifiedEval(e, t) { var r = [t]; var n = false; var i = false; if (e.args) { for (var a = 0; a < e.args.length; a++) { var o = e.args[a]; if (o == null) { r.push(null) } else if (Array.isArray(o)) { var s = []; for (var u = 0; u < o.length; u++) { var l = o[u]; var c = l ? l.evaluate(t) : null; if (c) { if (c.then) { n = true } else if (c.asyncWrapper) { i = true } } s.push(c) } r.push(s) } else if (o.evaluate) { var c = o.evaluate(t); if (c) { if (c.then) { n = true } else if (c.asyncWrapper) { i = true } } r.push(c) } else { r.push(o) } } } if (n) { return new Promise(((t, n) => { r = this.wrapArrays(r); Promise.all(r).then((function (r) { if (i) { this.unwrapAsyncs(r) } try { var a = e.op.apply(e, r); t(a) } catch (e) { n(e) } })).catch((function (e) { n(e) })) })) } else { if (i) { this.unwrapAsyncs(r) } return e.op.apply(e, r) } } _scriptAttrs = null; getScriptAttributes() { if (this._scriptAttrs == null) { this._scriptAttrs = r.attributes.replace(/ /g, "").split(",") } return this._scriptAttrs } getScript(e) { for (var t = 0; t < this.getScriptAttributes().length; t++) { var r = this.getScriptAttributes()[t]; if (e.hasAttribute && e.hasAttribute(r)) { return e.getAttribute(r) } } if (e instanceof HTMLScriptElement && e.type === "text/hyperscript") { return e.innerText } return null } hyperscriptFeaturesMap = new WeakMap; getHyperscriptFeatures(e) { var t = this.hyperscriptFeaturesMap.get(e); if (typeof t === "undefined") { if (e) { this.hyperscriptFeaturesMap.set(e, t = {}) } } return t } addFeatures(e, t) { if (e) { Object.assign(t.locals, this.getHyperscriptFeatures(e)); this.addFeatures(e.parentElement, t) } } makeContext(e, t, r, n) { return new f(e, t, r, n, this) } getScriptSelector() { return this.getScriptAttributes().map((function (e) { return "[" + e + "]" })).join(", ") } convertValue(e, r) { var n = t.dynamicResolvers; for (var i = 0; i < n.length; i++) { var a = n[i]; var o = a(r, e); if (o !== undefined) { return o } } if (e == null) { return null } var s = t[r]; if (s) { return s(e) } throw "Unknown conversion : " + r } parse(e) { const t = this.lexer, r = this.parser; var n = t.tokenize(e); if (this.parser.commandStart(n.currentToken())) { var i = r.requireElement("commandList", n); if (n.hasMore()) r.raiseParseError(n); r.ensureTerminated(i); return i } else if (r.featureStart(n.currentToken())) { var a = r.requireElement("hyperscript", n); if (n.hasMore()) r.raiseParseError(n); return a } else { var o = r.requireElement("expression", n); if (n.hasMore()) r.raiseParseError(n); return o } } evaluateNoPromise(e, t) { let r = e.evaluate(t); if (r.next) { throw new Error(i.sourceFor.call(e) + " returned a Promise in a context that they are not allowed.") } return r } evaluate(t, r, n) { class i extends EventTarget { constructor(e) { super(); this.module = e } toString() { return this.module.id } } var a = "document" in e ? e.document.body : new i(n && n.module); r = Object.assign(this.makeContext(a, null, a, null), r || {}); var o = this.parse(t); if (o.execute) { o.execute(r); if (typeof r.meta.returnValue !== "undefined") { return r.meta.returnValue } else { return r.result } } else if (o.apply) { o.apply(a, a, n); return this.getHyperscriptFeatures(a) } else { return o.evaluate(r) } function s() { return {} } } processNode(e) { var t = this.getScriptSelector(); if (this.matchesSelector(e, t)) { this.initElement(e, e) } if (e instanceof HTMLScriptElement && e.type === "text/hyperscript") { this.initElement(e, document.body) } if (e.querySelectorAll) { this.forEach(e.querySelectorAll(t + ", [type='text/hyperscript']"), (e => { this.initElement(e, e instanceof HTMLScriptElement && e.type === "text/hyperscript" ? document.body : e) })) } } initElement(e, t) { if (e.closest && e.closest(r.disableSelector)) { return } var n = this.getInternalData(e); if (!n.initialized) { var i = this.getScript(e); if (i) { try { n.initialized = true; n.script = i; const r = this.lexer, s = this.parser; var a = r.tokenize(i); var o = s.parseHyperScript(a); if (!o) return; o.apply(t || e, e); setTimeout((() => { this.triggerEvent(t || e, "load", { hyperscript: true }) }), 1) } catch (t) { this.triggerEvent(e, "exception", { error: t }); console.error("hyperscript errors were found on the following element:", e, "\n\n", t.message, t.stack) } } } } internalDataMap = new WeakMap; getInternalData(e) { var t = this.internalDataMap.get(e); if (typeof t === "undefined") { this.internalDataMap.set(e, t = {}) } return t } typeCheck(e, t, r) { if (e == null && r) { return true } var n = Object.prototype.toString.call(e).slice(8, -1); return n === t } getElementScope(e) { var t = e.meta && e.meta.owner; if (t) { var r = this.getInternalData(t); var n = "elementScope"; if (e.meta.feature && e.meta.feature.behavior) { n = e.meta.feature.behavior + "Scope" } var i = h(r, n); return i } else { return {} } } isReservedWord(e) { return ["meta", "it", "result", "locals", "event", "target", "detail", "sender", "body"].includes(e) } isHyperscriptContext(e) { return e instanceof f } resolveSymbol(t, r, n) { if (t === "me" || t === "my" || t === "I") { return r.me } if (t === "it" || t === "its" || t === "result") { return r.result } if (t === "you" || t === "your" || t === "yourself") { return r.you } else { if (n === "global") { return e[t] } else if (n === "element") { var i = this.getElementScope(r); return i[t] } else if (n === "local") { return r.locals[t] } else { if (r.meta && r.meta.context) { var a = r.meta.context[t]; if (typeof a !== "undefined") { return a } if (r.meta.context.detail) { a = r.meta.context.detail[t]; if (typeof a !== "undefined") { return a } } } if (this.isHyperscriptContext(r) && !this.isReservedWord(t)) { var o = r.locals[t] } else { var o = r[t] } if (typeof o !== "undefined") { return o } else { var i = this.getElementScope(r); o = i[t]; if (typeof o !== "undefined") { return o } else { return e[t] } } } } } setSymbol(t, r, n, i) { if (n === "global") { e[t] = i } else if (n === "element") { var a = this.getElementScope(r); a[t] = i } else if (n === "local") { r.locals[t] = i } else { if (this.isHyperscriptContext(r) && !this.isReservedWord(t) && typeof r.locals[t] !== "undefined") { r.locals[t] = i } else { var a = this.getElementScope(r); var o = a[t]; if (typeof o !== "undefined") { a[t] = i } else { if (this.isHyperscriptContext(r) && !this.isReservedWord(t)) { r.locals[t] = i } else { r[t] = i } } } } } findNext(e, t) { if (e) { if (e.resolveNext) { return e.resolveNext(t) } else if (e.next) { return e.next } else { return this.findNext(e.parent, t) } } } flatGet(e, t, r) { if (e != null) { var n = r(e, t); if (typeof n !== "undefined") { return n } if (this.shouldAutoIterate(e)) { var i = []; for (var a of e) { var o = r(a, t); i.push(o) } return i } } } resolveProperty(e, t) { return this.flatGet(e, t, ((e, t) => e[t])) } resolveAttribute(e, t) { return this.flatGet(e, t, ((e, t) => e.getAttribute && e.getAttribute(t))) } resolveStyle(e, t) { return this.flatGet(e, t, ((e, t) => e.style && e.style[t])) } resolveComputedStyle(e, t) { return this.flatGet(e, t, ((e, t) => getComputedStyle(e).getPropertyValue(t))) } assignToNamespace(t, r, n, i) { let a; if (typeof document !== "undefined" && t === document.body) { a = e } else { a = this.getHyperscriptFeatures(t) } var o; while ((o = r.shift()) !== undefined) { var s = a[o]; if (s == null) { s = {}; a[o] = s } a = s } a[n] = i } getHyperTrace(e, t) { var r = []; var n = e; while (n.meta.caller) { n = n.meta.caller } if (n.meta.traceMap) { return n.meta.traceMap.get(t, r) } } registerHyperTrace(e, t) { var r = []; var n = null; while (e != null) { r.push(e); n = e; e = e.meta.caller } if (n.meta.traceMap == null) { n.meta.traceMap = new Map } if (!n.meta.traceMap.get(t)) { var i = { trace: r, print: function (e) { e = e || console.error; e("hypertrace /// "); var t = 0; for (var n = 0; n < r.length; n++) { t = Math.max(t, r[n].meta.feature.displayName.length) } for (var n = 0; n < r.length; n++) { var i = r[n]; e(" ->", i.meta.feature.displayName.padEnd(t + 2), "-", i.meta.owner) } } }; n.meta.traceMap.set(t, i) } } escapeSelector(e) { return e.replace(/:/g, (function (e) { return "\\" + e })) } nullCheck(e, t) { if (e == null) { throw new Error("'" + t.sourceFor() + "' is null") } } isEmpty(e) { return e == undefined || e.length === 0 } doesExist(e) { if (e == null) { return false } if (this.shouldAutoIterate(e)) { for (const t of e) { return true } return false } return true } getRootNode(e) { if (e && e instanceof Node) { var t = e.getRootNode(); if (t instanceof Document || t instanceof ShadowRoot) return t } return document } getEventQueueFor(e, t) { let r = this.getInternalData(e); var n = r.eventQueues; if (n == null) { n = new Map; r.eventQueues = n } var i = n.get(t); if (i == null) { i = { queue: [], executing: false }; n.set(t, i) } return i } beepValueToConsole(e, t, r) { if (this.triggerEvent(e, "hyperscript:beep", { element: e, expression: t, value: r })) { var n; if (r) { if (r instanceof m) { n = "ElementCollection" } else if (r.constructor) { n = r.constructor.name } else { n = "unknown" } } else { n = "object (null)" } var a = r; if (n === "String") { a = '"' + a + '"' } else if (r instanceof m) { a = Array.from(r) } console.log("///_ BEEP! The expression (" + i.sourceFor.call(t).replace("beep! ", "") + ") evaluates to:", a, "of type " + n) } } hyperscriptUrl = "document" in e && document.currentScript ? document.currentScript.src : null } function s() { let e = document.cookie.split("; ").map((e => { let t = e.split("="); return { name: t[0], value: decodeURIComponent(t[1]) } })); return e } function u(e) { document.cookie = e + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT" } function l() { for (const e of s()) { u(e.name) } } const c = new Proxy({}, { get(e, t) { if (t === "then" || t === "asyncWrapper") { return null } else if (t === "length") { return s().length } else if (t === "clear") { return u } else if (t === "clearAll") { return l } else if (typeof t === "string") { if (!isNaN(t)) { return s()[parseInt(t)] } else { let e = document.cookie.split("; ").find((e => e.startsWith(t + "=")))?.split("=")[1]; if (e) { return decodeURIComponent(e) } } } else if (t === Symbol.iterator) { return s()[t] } }, set(e, t, r) { var n = null; if ("string" === typeof r) { n = encodeURIComponent(r); n += ";samesite=lax" } else { n = encodeURIComponent(r.value); if (r.expires) { n += ";expires=" + r.maxAge } if (r.maxAge) { n += ";max-age=" + r.maxAge } if (r.partitioned) { n += ";partitioned=" + r.partitioned } if (r.path) { n += ";path=" + r.path } if (r.samesite) { n += ";samesite=" + r.path } if (r.secure) { n += ";secure=" + r.path } } document.cookie = t + "=" + n; return true } }); class f { constructor(t, r, n, i, a) { this.meta = { parser: a.parser, lexer: a.lexer, runtime: a, owner: t, feature: r, iterators: {}, ctx: this }; this.locals = { cookies: c }; this.me = n, this.you = undefined; this.result = undefined; this.event = i; this.target = i ? i.target : null; this.detail = i ? i.detail : null; this.sender = i ? i.detail ? i.detail.sender : null : null; this.body = "document" in e ? document.body : null; a.addFeatures(t, this) } } class m { constructor(e, t, r) { this._css = e; this.relativeToElement = t; this.escape = r; this[p] = true } get css() { if (this.escape) { return o.prototype.escapeSelector(this._css) } else { return this._css } } get className() { return this._css.substr(1) } get id() { return this.className() } contains(e) { for (let t of this) { if (t.contains(e)) { return true } } return false } get length() { return this.selectMatches().length } [Symbol.iterator]() { let e = this.selectMatches(); return e[Symbol.iterator]() } selectMatches() { let e = o.prototype.getRootNode(this.relativeToElement).querySelectorAll(this.css); return e } } const p = Symbol(); function h(e, t) { var r = e[t]; if (r) { return r } else { var n = {}; e[t] = n; return n } } function v(e) { try { return JSON.parse(e) } catch (e) { d(e); return null } } function d(e) { if (console.error) { console.error(e) } else if (console.log) { console.log("ERROR: ", e) } } function E(e, t) { return new (e.bind.apply(e, [e].concat(t))) } function T(t) { t.addLeafExpression("parenthesized", (function (e, t, r) { if (r.matchOpToken("(")) { var n = r.clearFollows(); try { var i = e.requireElement("expression", r) } finally { r.restoreFollows(n) } r.requireOpToken(")"); return i } })); t.addLeafExpression("string", (function (e, t, r) { var i = r.matchTokenType("STRING"); if (!i) return; var a = i.value; var o; if (i.template) { var s = n.tokenize(a, true); o = e.parseStringTemplate(s) } else { o = [] } return { type: "string", token: i, args: o, op: function (e) { var t = ""; for (var r = 1; r < arguments.length; r++) { var n = arguments[r]; if (n !== undefined) { t += n } } return t }, evaluate: function (e) { if (o.length === 0) { return a } else { return t.unifiedEval(this, e) } } } })); t.addGrammarElement("nakedString", (function (e, t, r) { if (r.hasMore()) { var n = r.consumeUntilWhitespace(); r.matchTokenType("WHITESPACE"); return { type: "nakedString", tokens: n, evaluate: function (e) { return n.map((function (e) { return e.value })).join("") } } } })); t.addLeafExpression("number", (function (e, t, r) { var n = r.matchTokenType("NUMBER"); if (!n) return; var i = n; var a = parseFloat(n.value); return { type: "number", value: a, numberToken: i, evaluate: function () { return a } } })); t.addLeafExpression("idRef", (function (e, t, r) { var i = r.matchTokenType("ID_REF"); if (!i) return; if (!i.value) return; if (i.template) { var a = i.value.substring(2); var o = n.tokenize(a); var s = e.requireElement("expression", o); return { type: "idRefTemplate", args: [s], op: function (e, r) { return t.getRootNode(e.me).getElementById(r) }, evaluate: function (e) { return t.unifiedEval(this, e) } } } else { const e = i.value.substring(1); return { type: "idRef", css: i.value, value: e, evaluate: function (r) { return t.getRootNode(r.me).getElementById(e) } } } })); t.addLeafExpression("classRef", (function (e, t, r) { var i = r.matchTokenType("CLASS_REF"); if (!i) return; if (!i.value) return; if (i.template) { var a = i.value.substring(2); var o = n.tokenize(a); var s = e.requireElement("expression", o); return { type: "classRefTemplate", args: [s], op: function (e, t) { return new m("." + t, e.me, true) }, evaluate: function (e) { return t.unifiedEval(this, e) } } } else { const e = i.value; return { type: "classRef", css: e, evaluate: function (t) { return new m(e, t.me, true) } } } })); class r extends m { constructor(e, t, r) { super(e, t); this.templateParts = r; this.elements = r.filter((e => e instanceof Element)) } get css() { let e = "", t = 0; for (const r of this.templateParts) { if (r instanceof Element) { e += "[data-hs-query-id='" + t++ + "']" } else e += r } return e } [Symbol.iterator]() { this.elements.forEach(((e, t) => e.dataset.hsQueryId = t)); const e = super[Symbol.iterator](); this.elements.forEach((e => e.removeAttribute("data-hs-query-id"))); return e } } t.addLeafExpression("queryRef", (function (e, t, i) { var a = i.matchOpToken("<"); if (!a) return; var o = i.consumeUntil("/"); i.requireOpToken("/"); i.requireOpToken(">"); var s = o.map((function (e) { if (e.type === "STRING") { return '"' + e.value + '"' } else { return e.value } })).join(""); var u, l, c; if (s.indexOf("$") >= 0) { u = true; l = n.tokenize(s, true); c = e.parseStringTemplate(l) } return { type: "queryRef", css: s, args: c, op: function (e, ...t) { if (u) { return new r(s, e.me, t) } else { return new m(s, e.me) } }, evaluate: function (e) { return t.unifiedEval(this, e) } } })); t.addLeafExpression("attributeRef", (function (e, t, r) { var n = r.matchTokenType("ATTRIBUTE_REF"); if (!n) return; if (!n.value) return; var i = n.value; if (i.indexOf("[") === 0) { var a = i.substring(2, i.length - 1) } else { var a = i.substring(1) } var o = "[" + a + "]"; var s = a.split("="); var u = s[0]; var l = s[1]; if (l) { if (l.indexOf('"') === 0) { l = l.substring(1, l.length - 1) } } return { type: "attributeRef", name: u, css: o, value: l, op: function (e) { var t = e.you || e.me; if (t) { return t.getAttribute(u) } }, evaluate: function (e) { return t.unifiedEval(this, e) } } })); t.addLeafExpression("styleRef", (function (e, t, r) { var n = r.matchTokenType("STYLE_REF"); if (!n) return; if (!n.value) return; var i = n.value.substr(1); if (i.startsWith("computed-")) { i = i.substr("computed-".length); return { type: "computedStyleRef", name: i, op: function (e) { var r = e.you || e.me; if (r) { return t.resolveComputedStyle(r, i) } }, evaluate: function (e) { return t.unifiedEval(this, e) } } } else { return { type: "styleRef", name: i, op: function (e) { var r = e.you || e.me; if (r) { return t.resolveStyle(r, i) } }, evaluate: function (e) { return t.unifiedEval(this, e) } } } })); t.addGrammarElement("objectKey", (function (e, t, r) { var n; if (n = r.matchTokenType("STRING")) { return { type: "objectKey", key: n.value, evaluate: function () { return n.value } } } else if (r.matchOpToken("[")) { var i = e.parseElement("expression", r); r.requireOpToken("]"); return { type: "objectKey", expr: i, args: [i], op: function (e, t) { return t }, evaluate: function (e) { return t.unifiedEval(this, e) } } } else { var a = ""; do { n = r.matchTokenType("IDENTIFIER") || r.matchOpToken("-"); if (n) a += n.value } while (n); return { type: "objectKey", key: a, evaluate: function () { return a } } } })); t.addLeafExpression("objectLiteral", (function (e, t, r) { if (!r.matchOpToken("{")) return; var n = []; var i = []; if (!r.matchOpToken("}")) { do { var a = e.requireElement("objectKey", r); r.requireOpToken(":"); var o = e.requireElement("expression", r); i.push(o); n.push(a) } while (r.matchOpToken(",")); r.requireOpToken("}") } return { type: "objectLiteral", args: [n, i], op: function (e, t, r) { var n = {}; for (var i = 0; i < t.length; i++) { n[t[i]] = r[i] } return n }, evaluate: function (e) { return t.unifiedEval(this, e) } } })); t.addGrammarElement("nakedNamedArgumentList", (function (e, t, r) { var n = []; var i = []; if (r.currentToken().type === "IDENTIFIER") { do { var a = r.requireTokenType("IDENTIFIER"); r.requireOpToken(":"); var o = e.requireElement("expression", r); i.push(o); n.push({ name: a, value: o }) } while (r.matchOpToken(",")) } return { type: "namedArgumentList", fields: n, args: [i], op: function (e, t) { var r = { _namedArgList_: true }; for (var i = 0; i < t.length; i++) { var a = n[i]; r[a.name.value] = t[i] } return r }, evaluate: function (e) { return t.unifiedEval(this, e) } } })); t.addGrammarElement("namedArgumentList", (function (e, t, r) { if (!r.matchOpToken("(")) return; var n = e.requireElement("nakedNamedArgumentList", r); r.requireOpToken(")"); return n })); t.addGrammarElement("symbol", (function (e, t, r) { var n = "default"; if (r.matchToken("global")) { n = "global" } else if (r.matchToken("element") || r.matchToken("module")) { n = "element"; if (r.matchOpToken("'")) { r.requireToken("s") } } else if (r.matchToken("local")) { n = "local" } let i = r.matchOpToken(":"); let a = r.matchTokenType("IDENTIFIER"); if (a && a.value) { var o = a.value; if (i) { o = ":" + o } if (n === "default") { if (o.indexOf("$") === 0) { n = "global" } if (o.indexOf(":") === 0) { n = "element" } } return { type: "symbol", token: a, scope: n, name: o, evaluate: function (e) { return t.resolveSymbol(o, e, n) } } } })); t.addGrammarElement("implicitMeTarget", (function (e, t, r) { return { type: "implicitMeTarget", evaluate: function (e) { return e.you || e.me } } })); t.addLeafExpression("boolean", (function (e, t, r) { var n = r.matchToken("true") || r.matchToken("false"); if (!n) return; const i = n.value === "true"; return { type: "boolean", evaluate: function (e) { return i } } })); t.addLeafExpression("null", (function (e, t, r) { if (r.matchToken("null")) { return { type: "null", evaluate: function (e) { return null } } } })); t.addLeafExpression("arrayLiteral", (function (e, t, r) { if (!r.matchOpToken("[")) return; var n = []; if (!r.matchOpToken("]")) { do { var i = e.requireElement("expression", r); n.push(i) } while (r.matchOpToken(",")); r.requireOpToken("]") } return { type: "arrayLiteral", values: n, args: [n], op: function (e, t) { return t }, evaluate: function (e) { return t.unifiedEval(this, e) } } })); t.addLeafExpression("blockLiteral", (function (e, t, r) { if (!r.matchOpToken("\\")) return; var n = []; var i = r.matchTokenType("IDENTIFIER"); if (i) { n.push(i); while (r.matchOpToken(",")) { n.push(r.requireTokenType("IDENTIFIER")) } } r.requireOpToken("-"); r.requireOpToken(">"); var a = e.requireElement("expression", r); return { type: "blockLiteral", args: n, expr: a, evaluate: function (e) { var t = function () { for (var t = 0; t < n.length; t++) { e.locals[n[t].value] = arguments[t] } return a.evaluate(e) }; return t } } })); t.addIndirectExpression("propertyAccess", (function (e, t, r, n) { if (!r.matchOpToken(".")) return; var i = r.requireTokenType("IDENTIFIER"); var a = { type: "propertyAccess", root: n, prop: i, args: [n], op: function (e, r) { var n = t.resolveProperty(r, i.value); return n }, evaluate: function (e) { return t.unifiedEval(this, e) } }; return e.parseElement("indirectExpression", r, a) })); t.addIndirectExpression("of", (function (e, t, r, n) { if (!r.matchToken("of")) return; var i = e.requireElement("unaryExpression", r); var a = null; var o = n; while (o.root) { a = o; o = o.root } if (o.type !== "symbol" && o.type !== "attributeRef" && o.type !== "styleRef" && o.type !== "computedStyleRef") { e.raiseParseError(r, "Cannot take a property of a non-symbol: " + o.type) } var s = o.type === "attributeRef"; var u = o.type === "styleRef" || o.type === "computedStyleRef"; if (s || u) { var l = o } var c = o.name; var f = { type: "ofExpression", prop: o.token, root: i, attribute: l, expression: n, args: [i], op: function (e, r) { if (s) { return t.resolveAttribute(r, c) } else if (u) { if (o.type === "computedStyleRef") { return t.resolveComputedStyle(r, c) } else { return t.resolveStyle(r, c) } } else { return t.resolveProperty(r, c) } }, evaluate: function (e) { return t.unifiedEval(this, e) } }; if (o.type === "attributeRef") { f.attribute = o } if (a) { a.root = f; a.args = [f] } else { n = f } return e.parseElement("indirectExpression", r, n) })); t.addIndirectExpression("possessive", (function (e, t, r, n) { if (e.possessivesDisabled) { return } var i = r.matchOpToken("'"); if (i || n.type === "symbol" && (n.name === "my" || n.name === "its" || n.name === "your") && (r.currentToken().type === "IDENTIFIER" || r.currentToken().type === "ATTRIBUTE_REF" || r.currentToken().type === "STYLE_REF")) { if (i) { r.requireToken("s") } var a, o, s; a = e.parseElement("attributeRef", r); if (a == null) { o = e.parseElement("styleRef", r); if (o == null) { s = r.requireTokenType("IDENTIFIER") } } var u = { type: "possessive", root: n, attribute: a || o, prop: s, args: [n], op: function (e, r) { if (a) { var n = t.resolveAttribute(r, a.name) } else if (o) { var n; if (o.type === "computedStyleRef") { n = t.resolveComputedStyle(r, o["name"]) } else { n = t.resolveStyle(r, o["name"]) } } else { var n = t.resolveProperty(r, s.value) } return n }, evaluate: function (e) { return t.unifiedEval(this, e) } }; return e.parseElement("indirectExpression", r, u) } })); t.addIndirectExpression("inExpression", (function (e, t, r, n) { if (!r.matchToken("in")) return; var i = e.requireElement("unaryExpression", r); var a = { type: "inExpression", root: n, args: [n, i], op: function (e, r, n) { var i = []; if (r.css) { t.implicitLoop(n, (function (e) { var t = e.querySelectorAll(r.css); for (var n = 0; n < t.length; n++) { i.push(t[n]) } })) } else if (r instanceof Element) { var a = false; t.implicitLoop(n, (function (e) { if (e.contains(r)) { a = true } })); if (a) { return r } } else { t.implicitLoop(r, (function (e) { t.implicitLoop(n, (function (t) { if (e === t) { i.push(e) } })) })) } return i }, evaluate: function (e) { return t.unifiedEval(this, e) } }; return e.parseElement("indirectExpression", r, a) })); t.addIndirectExpression("asExpression", (function (e, t, r, n) { if (!r.matchToken("as")) return; r.matchToken("a") || r.matchToken("an"); var i = e.requireElement("dotOrColonPath", r).evaluate(); var a = { type: "asExpression", root: n, args: [n], op: function (e, r) { return t.convertValue(r, i) }, evaluate: function (e) { return t.unifiedEval(this, e) } }; return e.parseElement("indirectExpression", r, a) })); t.addIndirectExpression("functionCall", (function (e, t, r, n) { if (!r.matchOpToken("(")) return; var i = []; if (!r.matchOpToken(")")) { do { i.push(e.requireElement("expression", r)) } while (r.matchOpToken(",")); r.requireOpToken(")") } if (n.root) { var a = { type: "functionCall", root: n, argExressions: i, args: [n.root, i], op: function (e, r, i) { t.nullCheck(r, n.root); var a = r[n.prop.value]; t.nullCheck(a, n); if (a.hyperfunc) { i.push(e) } return a.apply(r, i) }, evaluate: function (e) { return t.unifiedEval(this, e) } } } else { var a = { type: "functionCall", root: n, argExressions: i, args: [n, i], op: function (e, r, i) { t.nullCheck(r, n); if (r.hyperfunc) { i.push(e) } var a = r.apply(null, i); return a }, evaluate: function (e) { return t.unifiedEval(this, e) } } } return e.parseElement("indirectExpression", r, a) })); t.addIndirectExpression("attributeRefAccess", (function (e, t, r, n) { var i = e.parseElement("attributeRef", r); if (!i) return; var a = { type: "attributeRefAccess", root: n, attribute: i, args: [n], op: function (e, r) { var n = t.resolveAttribute(r, i.name); return n }, evaluate: function (e) { return t.unifiedEval(this, e) } }; return a })); t.addIndirectExpression("arrayIndex", (function (e, t, r, n) { if (!r.matchOpToken("[")) return; var i = false; var a = false; var o = null; var s = null; if (r.matchOpToken("..")) { i = true; o = e.requireElement("expression", r) } else { o = e.requireElement("expression", r); if (r.matchOpToken("..")) { a = true; var u = r.currentToken(); if (u.type !== "R_BRACKET") { s = e.parseElement("expression", r) } } } r.requireOpToken("]"); var l = { type: "arrayIndex", root: n, prop: o, firstIndex: o, secondIndex: s, args: [n, o, s], op: function (e, t, r, n) { if (t == null) { return null } if (i) { if (r < 0) { r = t.length + r } return t.slice(0, r + 1) } else if (a) { if (n != null) { if (n < 0) { n = t.length + n } return t.slice(r, n + 1) } else { return t.slice(r) } } else { return t[r] } }, evaluate: function (e) { return t.unifiedEval(this, e) } }; return e.parseElement("indirectExpression", r, l) })); var a = ["em", "ex", "cap", "ch", "ic", "rem", "lh", "rlh", "vw", "vh", "vi", "vb", "vmin", "vmax", "cm", "mm", "Q", "pc", "pt", "px"]; t.addGrammarElement("postfixExpression", (function (e, t, r) { var n = e.parseElement("primaryExpression", r); let i = r.matchAnyToken.apply(r, a) || r.matchOpToken("%"); if (i) { return { type: "stringPostfix", postfix: i.value, args: [n], op: function (e, t) { return "" + t + i.value }, evaluate: function (e) { return t.unifiedEval(this, e) } } } var o = null; if (r.matchToken("s") || r.matchToken("seconds")) { o = 1e3 } else if (r.matchToken("ms") || r.matchToken("milliseconds")) { o = 1 } if (o) { return { type: "timeExpression", time: n, factor: o, args: [n], op: function (e, t) { return t * o }, evaluate: function (e) { return t.unifiedEval(this, e) } } } if (r.matchOpToken(":")) { var s = r.requireTokenType("IDENTIFIER"); if (!s.value) return; var u = !r.matchOpToken("!"); return { type: "typeCheck", typeName: s, nullOk: u, args: [n], op: function (e, r) { var n = t.typeCheck(r, this.typeName.value, u); if (n) { return r } else { throw new Error("Typecheck failed! Expected: " + s.value) } }, evaluate: function (e) { return t.unifiedEval(this, e) } } } else { return n } })); t.addGrammarElement("logicalNot", (function (e, t, r) { if (!r.matchToken("not")) return; var n = e.requireElement("unaryExpression", r); return { type: "logicalNot", root: n, args: [n], op: function (e, t) { return !t }, evaluate: function (e) { return t.unifiedEval(this, e) } } })); t.addGrammarElement("noExpression", (function (e, t, r) { if (!r.matchToken("no")) return; var n = e.requireElement("unaryExpression", r); return { type: "noExpression", root: n, args: [n], op: function (e, r) { return t.isEmpty(r) }, evaluate: function (e) { return t.unifiedEval(this, e) } } })); t.addLeafExpression("some", (function (e, t, r) { if (!r.matchToken("some")) return; var n = e.requireElement("expression", r); return { type: "noExpression", root: n, args: [n], op: function (e, r) { return !t.isEmpty(r) }, evaluate(e) { return t.unifiedEval(this, e) } } })); t.addGrammarElement("negativeNumber", (function (e, t, r) { if (!r.matchOpToken("-")) return; var n = e.requireElement("unaryExpression", r); return { type: "negativeNumber", root: n, args: [n], op: function (e, t) { return -1 * t }, evaluate: function (e) { return t.unifiedEval(this, e) } } })); t.addGrammarElement("unaryExpression", (function (e, t, r) { r.matchToken("the"); return e.parseAnyOf(["beepExpression", "logicalNot", "relativePositionalExpression", "positionalExpression", "noExpression", "negativeNumber", "postfixExpression"], r) })); t.addGrammarElement("beepExpression", (function (e, t, r) { if (!r.matchToken("beep!")) return; var n = e.parseElement("unaryExpression", r); if (n) { n["booped"] = true; var i = n.evaluate; n.evaluate = function (e) { let r = i.apply(n, arguments); let a = e.me; t.beepValueToConsole(a, n, r); return r }; return n } })); var s = function (e, t, r, n) { var i = t.querySelectorAll(r); for (var a = 0; a < i.length; a++) { var o = i[a]; if (o.compareDocumentPosition(e) === Node.DOCUMENT_POSITION_PRECEDING) { return o } } if (n) { return i[0] } }; var u = function (e, t, r, n) { var i = t.querySelectorAll(r); for (var a = i.length - 1; a >= 0; a--) { var o = i[a]; if (o.compareDocumentPosition(e) === Node.DOCUMENT_POSITION_FOLLOWING) { return o } } if (n) { return i[i.length - 1] } }; var l = function (e, t, r, n) { var i = []; o.prototype.forEach(t, (function (t) { if (t.matches(r) || t === e) { i.push(t) } })); for (var a = 0; a < i.length - 1; a++) { var s = i[a]; if (s === e) { return i[a + 1] } } if (n) { var u = i[0]; if (u && u.matches(r)) { return u } } }; var c = function (e, t, r, n) { return l(e, Array.from(t).reverse(), r, n) }; t.addGrammarElement("relativePositionalExpression", (function (e, t, r) { var n = r.matchAnyToken("next", "previous"); if (!n) return; var a = n.value === "next"; var o = e.parseElement("expression", r); if (r.matchToken("from")) { r.pushFollow("in"); try { var f = e.requireElement("unaryExpression", r) } finally { r.popFollow() } } else { var f = e.requireElement("implicitMeTarget", r) } var m = false; var p; if (r.matchToken("in")) { m = true; var h = e.requireElement("unaryExpression", r) } else if (r.matchToken("within")) { p = e.requireElement("unaryExpression", r) } else { p = document.body } var v = false; if (r.matchToken("with")) { r.requireToken("wrapping"); v = true } return { type: "relativePositionalExpression", from: f, forwardSearch: a, inSearch: m, wrapping: v, inElt: h, withinElt: p, operator: n.value, args: [o, f, h, p], op: function (e, t, r, n, f) { var p = t.css; if (p == null) { throw "Expected a CSS value to be returned by " + i.sourceFor.apply(o) } if (m) { if (n) { if (a) { return l(r, n, p, v) } else { return c(r, n, p, v) } } } else { if (f) { if (a) { return s(r, f, p, v) } else { return u(r, f, p, v) } } } }, evaluate: function (e) { return t.unifiedEval(this, e) } } })); t.addGrammarElement("positionalExpression", (function (e, t, r) { var n = r.matchAnyToken("first", "last", "random"); if (!n) return; r.matchAnyToken("in", "from", "of"); var i = e.requireElement("unaryExpression", r); const a = n.value; return { type: "positionalExpression", rhs: i, operator: n.value, args: [i], op: function (e, t) { if (t && !Array.isArray(t)) { if (t.children) { t = t.children } else { t = Array.from(t) } } if (t) { if (a === "first") { return t[0] } else if (a === "last") { return t[t.length - 1] } else if (a === "random") { return t[Math.floor(Math.random() * t.length)] } } }, evaluate: function (e) { return t.unifiedEval(this, e) } } })); t.addGrammarElement("mathOperator", (function (e, t, r) { var n = e.parseElement("unaryExpression", r); var i, a = null; i = r.matchAnyOpToken("+", "-", "*", "/") || r.matchToken("mod"); while (i) { a = a || i; var o = i.value; if (a.value !== o) { e.raiseParseError(r, "You must parenthesize math operations with different operators") } var s = e.parseElement("unaryExpression", r); n = { type: "mathOperator", lhs: n, rhs: s, operator: o, args: [n, s], op: function (e, t, r) { if (o === "+") { return t + r } else if (o === "-") { return t - r } else if (o === "*") { return t * r } else if (o === "/") { return t / r } else if (o === "mod") { return t % r } }, evaluate: function (e) { return t.unifiedEval(this, e) } }; i = r.matchAnyOpToken("+", "-", "*", "/") || r.matchToken("mod") } return n })); t.addGrammarElement("mathExpression", (function (e, t, r) { return e.parseAnyOf(["mathOperator", "unaryExpression"], r) })); function f(e, t, r) { if (t["contains"]) { return t.contains(r) } else if (t["includes"]) { return t.includes(r) } else { throw Error("The value of " + e.sourceFor() + " does not have a contains or includes method on it") } } function p(e, t, r) { if (t["match"]) { return !!t.match(r) } else if (t["matches"]) { return t.matches(r) } else { throw Error("The value of " + e.sourceFor() + " does not have a match or matches method on it") } } t.addGrammarElement("comparisonOperator", (function (e, t, r) { var n = e.parseElement("mathExpression", r); var i = r.matchAnyOpToken("<", ">", "<=", ">=", "==", "===", "!=", "!=="); var a = i ? i.value : null; var o = true; var s = false; if (a == null) { if (r.matchToken("is") || r.matchToken("am")) { if (r.matchToken("not")) { if (r.matchToken("in")) { a = "not in" } else if (r.matchToken("a")) { a = "not a"; s = true } else if (r.matchToken("empty")) { a = "not empty"; o = false } else { if (r.matchToken("really")) { a = "!==" } else { a = "!=" } if (r.matchToken("equal")) { r.matchToken("to") } } } else if (r.matchToken("in")) { a = "in" } else if (r.matchToken("a")) { a = "a"; s = true } else if (r.matchToken("empty")) { a = "empty"; o = false } else if (r.matchToken("less")) { r.requireToken("than"); if (r.matchToken("or")) { r.requireToken("equal"); r.requireToken("to"); a = "<=" } else { a = "<" } } else if (r.matchToken("greater")) { r.requireToken("than"); if (r.matchToken("or")) { r.requireToken("equal"); r.requireToken("to"); a = ">=" } else { a = ">" } } else { if (r.matchToken("really")) { a = "===" } else { a = "==" } if (r.matchToken("equal")) { r.matchToken("to") } } } else if (r.matchToken("equals")) { a = "==" } else if (r.matchToken("really")) { r.requireToken("equals"); a = "===" } else if (r.matchToken("exist") || r.matchToken("exists")) { a = "exist"; o = false } else if (r.matchToken("matches") || r.matchToken("match")) { a = "match" } else if (r.matchToken("contains") || r.matchToken("contain")) { a = "contain" } else if (r.matchToken("includes") || r.matchToken("include")) { a = "include" } else if (r.matchToken("do") || r.matchToken("does")) { r.requireToken("not"); if (r.matchToken("matches") || r.matchToken("match")) { a = "not match" } else if (r.matchToken("contains") || r.matchToken("contain")) { a = "not contain" } else if (r.matchToken("exist") || r.matchToken("exist")) { a = "not exist"; o = false } else if (r.matchToken("include")) { a = "not include" } else { e.raiseParseError(r, "Expected matches or contains") } } } if (a) { var u, l, c; if (s) { u = r.requireTokenType("IDENTIFIER"); l = !r.matchOpToken("!") } else if (o) { c = e.requireElement("mathExpression", r); if (a === "match" || a === "not match") { c = c.css ? c.css : c } } var m = n; n = { type: "comparisonOperator", operator: a, typeName: u, nullOk: l, lhs: n, rhs: c, args: [n, c], op: function (e, r, n) { if (a === "==") { return r == n } else if (a === "!=") { return r != n } if (a === "===") { return r === n } else if (a === "!==") { return r !== n } if (a === "match") { return r != null && p(m, r, n) } if (a === "not match") { return r == null || !p(m, r, n) } if (a === "in") { return n != null && f(c, n, r) } if (a === "not in") { return n == null || !f(c, n, r) } if (a === "contain") { return r != null && f(m, r, n) } if (a === "not contain") { return r == null || !f(m, r, n) } if (a === "include") { return r != null && f(m, r, n) } if (a === "not include") { return r == null || !f(m, r, n) } if (a === "===") { return r === n } else if (a === "!==") { return r !== n } else if (a === "<") { return r < n } else if (a === ">") { return r > n } else if (a === "<=") { return r <= n } else if (a === ">=") { return r >= n } else if (a === "empty") { return t.isEmpty(r) } else if (a === "not empty") { return !t.isEmpty(r) } else if (a === "exist") { return t.doesExist(r) } else if (a === "not exist") { return !t.doesExist(r) } else if (a === "a") { return t.typeCheck(r, u.value, l) } else if (a === "not a") { return !t.typeCheck(r, u.value, l) } else { throw "Unknown comparison : " + a } }, evaluate: function (e) { return t.unifiedEval(this, e) } } } return n })); t.addGrammarElement("comparisonExpression", (function (e, t, r) { return e.parseAnyOf(["comparisonOperator", "mathExpression"], r) })); t.addGrammarElement("logicalOperator", (function (e, t, r) { var n = e.parseElement("comparisonExpression", r); var i, a = null; i = r.matchToken("and") || r.matchToken("or"); while (i) { a = a || i; if (a.value !== i.value) { e.raiseParseError(r, "You must parenthesize logical operations with different operators") } var o = e.requireElement("comparisonExpression", r); const s = i.value; n = { type: "logicalOperator", operator: s, lhs: n, rhs: o, args: [n, o], op: function (e, t, r) { if (s === "and") { return t && r } else { return t || r } }, evaluate: function (e) { return t.unifiedEval(this, e) } }; i = r.matchToken("and") || r.matchToken("or") } return n })); t.addGrammarElement("logicalExpression", (function (e, t, r) { return e.parseAnyOf(["logicalOperator", "mathExpression"], r) })); t.addGrammarElement("asyncExpression", (function (e, t, r) { if (r.matchToken("async")) { var n = e.requireElement("logicalExpression", r); var i = { type: "asyncExpression", value: n, evaluate: function (e) { return { asyncWrapper: true, value: this.value.evaluate(e) } } }; return i } else { return e.parseElement("logicalExpression", r) } })); t.addGrammarElement("expression", (function (e, t, r) { r.matchToken("the"); return e.parseElement("asyncExpression", r) })); t.addGrammarElement("assignableExpression", (function (e, t, r) { r.matchToken("the"); var n = e.parseElement("primaryExpression", r); if (n && (n.type === "symbol" || n.type === "ofExpression" || n.type === "propertyAccess" || n.type === "attributeRefAccess" || n.type === "attributeRef" || n.type === "styleRef" || n.type === "arrayIndex" || n.type === "possessive")) { return n } else { e.raiseParseError(r, "A target expression must be writable. The expression type '" + (n && n.type) + "' is not.") } return n })); t.addGrammarElement("hyperscript", (function (e, t, r) { var n = []; if (r.hasMore()) { while (e.featureStart(r.currentToken()) || r.currentToken().value === "(") { var i = e.requireElement("feature", r); n.push(i); r.matchToken("end") } } return { type: "hyperscript", features: n, apply: function (e, t, r) { for (const i of n) { i.install(e, t, r) } } } })); var v = function (e) { var t = []; if (e.token(0).value === "(" && (e.token(1).value === ")" || e.token(2).value === "," || e.token(2).value === ")")) { e.matchOpToken("("); do { t.push(e.requireTokenType("IDENTIFIER")) } while (e.matchOpToken(",")); e.requireOpToken(")") } return t }; t.addFeature("on", (function (e, t, r) { if (!r.matchToken("on")) return; var n = false; if (r.matchToken("every")) { n = true } var i = []; var a = null; do { var o = e.requireElement("eventName", r, "Expected event name"); var s = o.evaluate(); if (a) { a = a + " or " + s } else { a = "on " + s } var u = v(r); var l = null; if (r.matchOpToken("[")) { l = e.requireElement("expression", r); r.requireOpToken("]") } var c, f, m; if (r.currentToken().type === "NUMBER") { var p = r.consumeToken(); if (!p.value) return; c = parseInt(p.value); if (r.matchToken("to")) { var h = r.consumeToken(); if (!h.value) return; f = parseInt(h.value) } else if (r.matchToken("and")) { m = true; r.requireToken("on") } } var d, E; if (s === "intersection") { d = {}; if (r.matchToken("with")) { d["with"] = e.requireElement("expression", r).evaluate() } if (r.matchToken("having")) { do { if (r.matchToken("margin")) { d["rootMargin"] = e.requireElement("stringLike", r).evaluate() } else if (r.matchToken("threshold")) { d["threshold"] = e.requireElement("expression", r).evaluate() } else { e.raiseParseError(r, "Unknown intersection config specification") } } while (r.matchToken("and")) } } else if (s === "mutation") { E = {}; if (r.matchToken("of")) { do { if (r.matchToken("anything")) { E["attributes"] = true; E["subtree"] = true; E["characterData"] = true; E["childList"] = true } else if (r.matchToken("childList")) { E["childList"] = true } else if (r.matchToken("attributes")) { E["attributes"] = true; E["attributeOldValue"] = true } else if (r.matchToken("subtree")) { E["subtree"] = true } else if (r.matchToken("characterData")) { E["characterData"] = true; E["characterDataOldValue"] = true } else if (r.currentToken().type === "ATTRIBUTE_REF") { var T = r.consumeToken(); if (E["attributeFilter"] == null) { E["attributeFilter"] = [] } if (T.value.indexOf("@") == 0) { E["attributeFilter"].push(T.value.substring(1)) } else { e.raiseParseError(r, "Only shorthand attribute references are allowed here") } } else { e.raiseParseError(r, "Unknown mutation config specification") } } while (r.matchToken("or")) } else { E["attributes"] = true; E["characterData"] = true; E["childList"] = true } } var y = null; var k = false; if (r.matchToken("from")) { if (r.matchToken("elsewhere")) { k = true } else { r.pushFollow("or"); try { y = e.requireElement("expression", r) } finally { r.popFollow() } if (!y) { e.raiseParseError(r, 'Expected either target value or "elsewhere".') } } } if (y === null && k === false && r.matchToken("elsewhere")) { k = true } if (r.matchToken("in")) { var x = e.parseElement("unaryExpression", r) } if (r.matchToken("debounced")) { r.requireToken("at"); var g = e.requireElement("unaryExpression", r); var b = g.evaluate({}) } else if (r.matchToken("throttled")) { r.requireToken("at"); var g = e.requireElement("unaryExpression", r); var w = g.evaluate({}) } i.push({ execCount: 0, every: n, on: s, args: u, filter: l, from: y, inExpr: x, elsewhere: k, startCount: c, endCount: f, unbounded: m, debounceTime: b, throttleTime: w, mutationSpec: E, intersectionSpec: d, debounced: undefined, lastExec: undefined }) } while (r.matchToken("or")); var S = true; if (!n) { if (r.matchToken("queue")) { if (r.matchToken("all")) { var q = true; var S = false } else if (r.matchToken("first")) { var N = true } else if (r.matchToken("none")) { var I = true } else { r.requireToken("last") } } } var C = e.requireElement("commandList", r); e.ensureTerminated(C); var R, A; if (r.matchToken("catch")) { R = r.requireTokenType("IDENTIFIER").value; A = e.requireElement("commandList", r); e.ensureTerminated(A) } if (r.matchToken("finally")) { var L = e.requireElement("commandList", r); e.ensureTerminated(L) } var O = { displayName: a, events: i, start: C, every: n, execCount: 0, errorHandler: A, errorSymbol: R, execute: function (e) { let r = t.getEventQueueFor(e.me, O); if (r.executing && n === false) { if (I || N && r.queue.length > 0) { return } if (S) { r.queue.length = 0 } r.queue.push(e); return } O.execCount++; r.executing = true; e.meta.onHalt = function () { r.executing = false; var e = r.queue.shift(); if (e) { setTimeout((function () { O.execute(e) }), 1) } }; e.meta.reject = function (r) { console.error(r.message ? r.message : r); var n = t.getHyperTrace(e, r); if (n) { n.print() } t.triggerEvent(e.me, "exception", { error: r }) }; C.execute(e) }, install: function (e, r) { for (const r of O.events) { var n; if (r.elsewhere) { n = [document] } else if (r.from) { n = r.from.evaluate(t.makeContext(e, O, e, null)) } else { n = [e] } t.implicitLoop(n, (function (n) { var i = r.on; if (n == null) { console.warn("'%s' feature ignored because target does not exists:", a, e); return } if (r.mutationSpec) { i = "hyperscript:mutation"; const e = new MutationObserver((function (e, r) { if (!O.executing) { t.triggerEvent(n, i, { mutationList: e, observer: r }) } })); e.observe(n, r.mutationSpec) } if (r.intersectionSpec) { i = "hyperscript:intersection"; const e = new IntersectionObserver((function (r) { for (const o of r) { var a = { observer: e }; a = Object.assign(a, o); a["intersecting"] = o.isIntersecting; t.triggerEvent(n, i, a) } }), r.intersectionSpec); e.observe(n) } var o = n.addEventListener || n.on; o.call(n, i, (function a(o) { if (typeof Node !== "undefined" && e instanceof Node && n !== e && !e.isConnected) { n.removeEventListener(i, a); return } var s = t.makeContext(e, O, e, o); if (r.elsewhere && e.contains(o.target)) { return } if (r.from) { s.result = n } for (const e of r.args) { let t = s.event[e.value]; if (t !== undefined) { s.locals[e.value] = t } else if ("detail" in s.event) { s.locals[e.value] = s.event["detail"][e.value] } } s.meta.errorHandler = A; s.meta.errorSymbol = R; s.meta.finallyHandler = L; if (r.filter) { var u = s.meta.context; s.meta.context = s.event; try { var l = r.filter.evaluate(s); if (l) { } else { return } } finally { s.meta.context = u } } if (r.inExpr) { var c = o.target; while (true) { if (c.matches && c.matches(r.inExpr.css)) { s.result = c; break } else { c = c.parentElement; if (c == null) { return } } } } r.execCount++; if (r.startCount) { if (r.endCount) { if (r.execCount < r.startCount || r.execCount > r.endCount) { return } } else if (r.unbounded) { if (r.execCount < r.startCount) { return } } else if (r.execCount !== r.startCount) { return } } if (r.debounceTime) { if (r.debounced) { clearTimeout(r.debounced) } r.debounced = setTimeout((function () { O.execute(s) }), r.debounceTime); return } if (r.throttleTime) { if (r.lastExec && Date.now() < r.lastExec + r.throttleTime) { return } else { r.lastExec = Date.now() } } O.execute(s) })) })) } } }; e.setParent(C, O); return O })); t.addFeature("def", (function (e, t, r) { if (!r.matchToken("def")) return; var n = e.requireElement("dotOrColonPath", r); var i = n.evaluate(); var a = i.split("."); var o = a.pop(); var s = []; if (r.matchOpToken("(")) { if (r.matchOpToken(")")) { } else { do { s.push(r.requireTokenType("IDENTIFIER")) } while (r.matchOpToken(",")); r.requireOpToken(")") } } var u = e.requireElement("commandList", r); var l, c; if (r.matchToken("catch")) { l = r.requireTokenType("IDENTIFIER").value; c = e.parseElement("commandList", r) } if (r.matchToken("finally")) { var f = e.requireElement("commandList", r); e.ensureTerminated(f) } var m = { displayName: o + "(" + s.map((function (e) { return e.value })).join(", ") + ")", name: o, args: s, start: u, errorHandler: c, errorSymbol: l, finallyHandler: f, install: function (e, r) { var n = function () { var n = t.makeContext(r, m, e, null); n.meta.errorHandler = c; n.meta.errorSymbol = l; n.meta.finallyHandler = f; for (var i = 0; i < s.length; i++) { var a = s[i]; var o = arguments[i]; if (a) { n.locals[a.value] = o } } n.meta.caller = arguments[s.length]; if (n.meta.caller) { n.meta.callingCommand = n.meta.caller.meta.command } var p, h = null; var v = new Promise((function (e, t) { p = e; h = t })); u.execute(n); if (n.meta.returned) { return n.meta.returnValue } else { n.meta.resolve = p; n.meta.reject = h; return v } }; n.hyperfunc = true; n.hypername = i; t.assignToNamespace(e, a, o, n) } }; e.ensureTerminated(u); if (c) { e.ensureTerminated(c) } e.setParent(u, m); return m })); t.addFeature("set", (function (e, t, r) { let n = e.parseElement("setCommand", r); if (n) { if (n.target.scope !== "element") { e.raiseParseError(r, "variables declared at the feature level must be element scoped.") } let i = { start: n, install: function (e, r) { n && n.execute(t.makeContext(e, i, e, null)) } }; e.ensureTerminated(n); return i } })); t.addFeature("init", (function (e, t, r) { if (!r.matchToken("init")) return; var n = r.matchToken("immediately"); var i = e.requireElement("commandList", r); var a = { start: i, install: function (e, r) { let o = function () { i && i.execute(t.makeContext(e, a, e, null)) }; if (n) { o() } else { setTimeout(o, 0) } } }; e.ensureTerminated(i); e.setParent(i, a); return a })); t.addFeature("worker", (function (e, t, r) { if (r.matchToken("worker")) { e.raiseParseError(r, "In order to use the 'worker' feature, include " + "the _hyperscript worker plugin. See " + "https://hyperscript.org/features/worker/ for " + "more info."); return undefined } })); t.addFeature("behavior", (function (t, r, n) { if (!n.matchToken("behavior")) return; var i = t.requireElement("dotOrColonPath", n).evaluate(); var a = i.split("."); var o = a.pop(); var s = []; if (n.matchOpToken("(") && !n.matchOpToken(")")) { do { s.push(n.requireTokenType("IDENTIFIER").value) } while (n.matchOpToken(",")); n.requireOpToken(")") } var u = t.requireElement("hyperscript", n); for (var l = 0; l < u.features.length; l++) { var c = u.features[l]; c.behavior = i } return { install: function (t, n) { r.assignToNamespace(e.document && e.document.body, a, o, (function (e, t, n) { var a = r.getInternalData(e); var o = h(a, i + "Scope"); for (var l = 0; l < s.length; l++) { o[s[l]] = n[s[l]] } u.apply(e, t) })) } } })); t.addFeature("install", (function (t, r, n) { if (!n.matchToken("install")) return; var i = t.requireElement("dotOrColonPath", n).evaluate(); var a = i.split("."); var o = t.parseElement("namedArgumentList", n); var s; return s = { install: function (t, n) { r.unifiedEval({ args: [o], op: function (r, o) { var s = e; for (var u = 0; u < a.length; u++) { s = s[a[u]]; if (typeof s !== "object" && typeof s !== "function") throw new Error("No such behavior defined as " + i) } if (!(s instanceof Function)) throw new Error(i + " is not a behavior"); s(t, n, o) } }, r.makeContext(t, s, t, null)) } } })); t.addGrammarElement("jsBody", (function (e, t, r) { var n = r.currentToken().start; var i = r.currentToken(); var a = []; var o = ""; var s = false; while (r.hasMore()) { i = r.consumeToken(); var u = r.token(0, true); if (u.type === "IDENTIFIER" && u.value === "end") { break } if (s) { if (i.type === "IDENTIFIER" || i.type === "NUMBER") { o += i.value } else { if (o !== "") a.push(o); o = ""; s = false } } else if (i.type === "IDENTIFIER" && i.value === "function") { s = true } } var l = i.end + 1; return { type: "jsBody", exposedFunctionNames: a, jsSource: r.source.substring(n, l) } })); t.addFeature("js", (function (t, r, n) { if (!n.matchToken("js")) return; var i = t.requireElement("jsBody", n); var a = i.jsSource + "\nreturn { " + i.exposedFunctionNames.map((function (e) { return e + ":" + e })).join(",") + " } "; var o = new Function(a); return { jsSource: a, function: o, exposedFunctionNames: i.exposedFunctionNames, install: function () { Object.assign(e, o()) } } })); t.addCommand("js", (function (t, r, n) { if (!n.matchToken("js")) return; var i = []; if (n.matchOpToken("(")) { if (n.matchOpToken(")")) { } else { do { var a = n.requireTokenType("IDENTIFIER"); i.push(a.value) } while (n.matchOpToken(",")); n.requireOpToken(")") } } var o = t.requireElement("jsBody", n); n.matchToken("end"); var s = E(Function, i.concat([o.jsSource])); var u = { jsSource: o.jsSource, function: s, inputs: i, op: function (t) { var n = []; i.forEach((function (e) { n.push(r.resolveSymbol(e, t, "default")) })); var a = s.apply(e, n); if (a && typeof a.then === "function") { return new Promise((function (e) { a.then((function (n) { t.result = n; e(r.findNext(this, t)) })) })) } else { t.result = a; return r.findNext(this, t) } } }; return u })); t.addCommand("async", (function (e, t, r) { if (!r.matchToken("async")) return; if (r.matchToken("do")) { var n = e.requireElement("commandList", r); var i = n; while (i.next) i = i.next; i.next = t.HALT; r.requireToken("end") } else { var n = e.requireElement("command", r) } var a = { body: n, op: function (e) { setTimeout((function () { n.execute(e) })); return t.findNext(this, e) } }; e.setParent(n, a); return a })); t.addCommand("tell", (function (e, t, r) { var n = r.currentToken(); if (!r.matchToken("tell")) return; var i = e.requireElement("expression", r); var a = e.requireElement("commandList", r); if (r.hasMore() && !e.featureStart(r.currentToken())) { r.requireToken("end") } var o = "tell_" + n.start; var s = { value: i, body: a, args: [i], resolveNext: function (e) { var r = e.meta.iterators[o]; if (r.index < r.value.length) { e.you = r.value[r.index++]; return a } else { e.you = r.originalYou; if (this.next) { return this.next } else { return t.findNext(this.parent, e) } } }, op: function (e, t) { if (t == null) { t = [] } else if (!(Array.isArray(t) || t instanceof NodeList)) { t = [t] } e.meta.iterators[o] = { originalYou: e.you, index: 0, value: t }; return this.resolveNext(e) } }; e.setParent(a, s); return s })); t.addCommand("wait", (function (e, t, r) { if (!r.matchToken("wait")) return; var n; if (r.matchToken("for")) { r.matchToken("a"); var i = []; do { var a = r.token(0); if (a.type === "NUMBER" || a.type === "L_PAREN") { i.push({ time: e.requireElement("expression", r).evaluate() }) } else { i.push({ name: e.requireElement("dotOrColonPath", r, "Expected event name").evaluate(), args: v(r) }) } } while (r.matchToken("or")); if (r.matchToken("from")) { var o = e.requireElement("expression", r) } n = { event: i, on: o, args: [o], op: function (e, r) { var n = r ? r : e.me; if (!(n instanceof EventTarget)) throw new Error("Not a valid event target: " + this.on.sourceFor()); return new Promise((r => { var a = false; for (const s of i) { var o = n => { e.result = n; if (s.args) { for (const t of s.args) { e.locals[t.value] = n[t.value] || (n.detail ? n.detail[t.value] : null) } } if (!a) { a = true; r(t.findNext(this, e)) } }; if (s.name) { n.addEventListener(s.name, o, { once: true }) } else if (s.time != null) { setTimeout(o, s.time, s.time) } } })) } }; return n } else { var s; if (r.matchToken("a")) { r.requireToken("tick"); s = 0 } else { s = e.requireElement("expression", r) } n = { type: "waitCmd", time: s, args: [s], op: function (e, r) { return new Promise((n => { setTimeout((() => { n(t.findNext(this, e)) }), r) })) }, execute: function (e) { return t.unifiedExec(this, e) } }; return n } })); t.addGrammarElement("dotOrColonPath", (function (e, t, r) { var n = r.matchTokenType("IDENTIFIER"); if (n) { var i = [n.value]; var a = r.matchOpToken(".") || r.matchOpToken(":"); if (a) { do { i.push(r.requireTokenType("IDENTIFIER", "NUMBER").value) } while (r.matchOpToken(a.value)) } return { type: "dotOrColonPath", path: i, evaluate: function () { return i.join(a ? a.value : "") } } } })); t.addGrammarElement("eventName", (function (e, t, r) { var n; if (n = r.matchTokenType("STRING")) { return { evaluate: function () { return n.value } } } return e.parseElement("dotOrColonPath", r) })); function d(e, t, r, n) { var i = t.requireElement("eventName", n); var a = t.parseElement("namedArgumentList", n); if (e === "send" && n.matchToken("to") || e === "trigger" && n.matchToken("on")) { var o = t.requireElement("expression", n) } else { var o = t.requireElement("implicitMeTarget", n) } var s = { eventName: i, details: a, to: o, args: [o, i, a], op: function (e, t, n, i) { r.nullCheck(t, o); r.implicitLoop(t, (function (t) { r.triggerEvent(t, n, i, e.me) })); return r.findNext(s, e) } }; return s } t.addCommand("trigger", (function (e, t, r) { if (r.matchToken("trigger")) { return d("trigger", e, t, r) } })); t.addCommand("send", (function (e, t, r) { if (r.matchToken("send")) { return d("send", e, t, r) } })); var T = function (e, t, r, n) { if (n) { if (e.commandBoundary(r.currentToken())) { e.raiseParseError(r, "'return' commands must return a value. If you do not wish to return a value, use 'exit' instead.") } else { var i = e.requireElement("expression", r) } } var a = { value: i, args: [i], op: function (e, r) { var n = e.meta.resolve; e.meta.returned = true; e.meta.returnValue = r; if (n) { if (r) { n(r) } else { n() } } return t.HALT } }; return a }; t.addCommand("return", (function (e, t, r) { if (r.matchToken("return")) { return T(e, t, r, true) } })); t.addCommand("exit", (function (e, t, r) { if (r.matchToken("exit")) { return T(e, t, r, false) } })); t.addCommand("halt", (function (e, t, r) { if (r.matchToken("halt")) { if (r.matchToken("the")) { r.requireToken("event"); if (r.matchOpToken("'")) { r.requireToken("s") } var n = true } if (r.matchToken("bubbling")) { var i = true } else if (r.matchToken("default")) { var a = true } var o = T(e, t, r, false); var s = { keepExecuting: true, bubbling: i, haltDefault: a, exit: o, op: function (e) { if (e.event) { if (i) { e.event.stopPropagation() } else if (a) { e.event.preventDefault() } else { e.event.stopPropagation(); e.event.preventDefault() } if (n) { return t.findNext(this, e) } else { return o } } } }; return s } })); t.addCommand("log", (function (e, t, r) { if (!r.matchToken("log")) return; var n = [e.parseElement("expression", r)]; while (r.matchOpToken(",")) { n.push(e.requireElement("expression", r)) } if (r.matchToken("with")) { var i = e.requireElement("expression", r) } var a = { exprs: n, withExpr: i, args: [i, n], op: function (e, r, n) { if (r) { r.apply(null, n) } else { console.log.apply(null, n) } return t.findNext(this, e) } }; return a })); t.addCommand("beep!", (function (e, t, r) { if (!r.matchToken("beep!")) return; var n = [e.parseElement("expression", r)]; while (r.matchOpToken(",")) { n.push(e.requireElement("expression", r)) } var i = { exprs: n, args: [n], op: function (e, r) { for (let i = 0; i < n.length; i++) { const a = n[i]; const o = r[i]; t.beepValueToConsole(e.me, a, o) } return t.findNext(this, e) } }; return i })); t.addCommand("throw", (function (e, t, r) { if (!r.matchToken("throw")) return; var n = e.requireElement("expression", r); var i = { expr: n, args: [n], op: function (e, r) { t.registerHyperTrace(e, r); throw r } }; return i })); var y = function (e, t, r) { var n = e.requireElement("expression", r); var i = { expr: n, args: [n], op: function (e, r) { e.result = r; return t.findNext(i, e) } }; return i }; t.addCommand("call", (function (e, t, r) { if (!r.matchToken("call")) return; var n = y(e, t, r); if (n.expr && n.expr.type !== "functionCall") { e.raiseParseError(r, "Must be a function invocation") } return n })); t.addCommand("get", (function (e, t, r) { if (r.matchToken("get")) { return y(e, t, r) } })); t.addCommand("make", (function (e, t, r) { if (!r.matchToken("make")) return; r.matchToken("a") || r.matchToken("an"); var n = e.requireElement("expression", r); var i = []; if (n.type !== "queryRef" && r.matchToken("from")) { do { i.push(e.requireElement("expression", r)) } while (r.matchOpToken(",")) } if (r.matchToken("called")) { var a = e.requireElement("symbol", r) } var o; if (n.type === "queryRef") { o = { op: function (e) { var r, i = "div", o, s = []; var u = /(?:(^|#|\.)([^#\. ]+))/g; while (r = u.exec(n.css)) { if (r[1] === "") i = r[2].trim(); else if (r[1] === "#") o = r[2].trim(); else s.push(r[2].trim()) } var l = document.createElement(i); if (o !== undefined) l.id = o; for (var c = 0; c < s.length; c++) { var f = s[c]; l.classList.add(f) } e.result = l; if (a) { t.setSymbol(a.name, e, a.scope, l) } return t.findNext(this, e) } }; return o } else { o = { args: [n, i], op: function (e, r, n) { e.result = E(r, n); if (a) { t.setSymbol(a.name, e, a.scope, e.result) } return t.findNext(this, e) } }; return o } })); t.addGrammarElement("pseudoCommand", (function (e, t, r) { let n = r.token(1); if (!(n && n.op && (n.value === "." || n.value === "("))) { return null } var i = e.requireElement("primaryExpression", r); var a = i.root; var o = i; while (a.root != null) { o = o.root; a = a.root } if (i.type !== "functionCall") { e.raiseParseError(r, "Pseudo-commands must be function calls") } if (o.type === "functionCall" && o.root.root == null) { if (r.matchAnyToken("the", "to", "on", "with", "into", "from", "at")) { var s = e.requireElement("expression", r) } else if (r.matchToken("me")) { var s = e.requireElement("implicitMeTarget", r) } } var u; if (s) { u = { type: "pseudoCommand", root: s, argExressions: o.argExressions, args: [s, o.argExressions], op: function (e, r, n) { t.nullCheck(r, s); var i = r[o.root.name]; t.nullCheck(i, o); if (i.hyperfunc) { n.push(e) } e.result = i.apply(r, n); return t.findNext(u, e) }, execute: function (e) { return t.unifiedExec(this, e) } } } else { u = { type: "pseudoCommand", expr: i, args: [i], op: function (e, r) { e.result = r; return t.findNext(u, e) }, execute: function (e) { return t.unifiedExec(this, e) } } } return u })); var k = function (e, t, r, n, i) { var a = n.type === "symbol"; var o = n.type === "attributeRef"; var s = n.type === "styleRef"; var u = n.type === "arrayIndex"; if (!(o || s || a) && n.root == null) { e.raiseParseError(r, "Can only put directly into symbols, not references") } var l = null; var c = null; if (a) { } else if (o || s) { l = e.requireElement("implicitMeTarget", r); var f = n } else if (u) { c = n.firstIndex; l = n.root } else { c = n.prop ? n.prop.value : null; var f = n.attribute; l = n.root } var m = { target: n, symbolWrite: a, value: i, args: [l, c, i], op: function (e, r, i, o) { if (a) { t.setSymbol(n.name, e, n.scope, o) } else { t.nullCheck(r, l); if (u) { r[i] = o } else { t.implicitLoop(r, (function (e) { if (f) { if (f.type === "attributeRef") { if (o == null) { e.removeAttribute(f.name) } else { e.setAttribute(f.name, o) } } else { e.style[f.name] = o } } else { e[i] = o } })) } } return t.findNext(this, e) } }; return m }; t.addCommand("default", (function (e, t, r) { if (!r.matchToken("default")) return; var n = e.requireElement("assignableExpression", r); r.requireToken("to"); var i = e.requireElement("expression", r); var a = k(e, t, r, n, i); var o = { target: n, value: i, setter: a, args: [n], op: function (e, r) { if (r) { return t.findNext(this, e) } else { return a } } }; a.parent = o; return o })); t.addCommand("set", (function (e, t, r) { if (!r.matchToken("set")) return; if (r.currentToken().type === "L_BRACE") { var n = e.requireElement("objectLiteral", r); r.requireToken("on"); var i = e.requireElement("expression", r); var a = { objectLiteral: n, target: i, args: [n, i], op: function (e, r, n) { Object.assign(n, r); return t.findNext(this, e) } }; return a } try { r.pushFollow("to"); var i = e.requireElement("assignableExpression", r) } finally { r.popFollow() } r.requireToken("to"); var o = e.requireElement("expression", r); return k(e, t, r, i, o) })); t.addCommand("if", (function (e, t, r) { if (!r.matchToken("if")) return; var n = e.requireElement("expression", r); r.matchToken("then"); var i = e.parseElement("commandList", r); var a = false; let o = r.matchToken("else") || r.matchToken("otherwise"); if (o) { let t = r.peekToken("if"); a = t != null && t.line === o.line; if (a) { var s = e.parseElement("command", r) } else { var s = e.parseElement("commandList", r) } } if (r.hasMore() && !a) { r.requireToken("end") } var u = { expr: n, trueBranch: i, falseBranch: s, args: [n], op: function (e, r) { if (r) { return i } else if (s) { return s } else { return t.findNext(this, e) } } }; e.setParent(i, u); e.setParent(s, u); return u })); var x = function (e, t, r, n) { var i = t.currentToken(); var a; if (t.matchToken("for") || n) { var o = t.requireTokenType("IDENTIFIER"); a = o.value; t.requireToken("in"); var s = e.requireElement("expression", t) } else if (t.matchToken("in")) { a = "it"; var s = e.requireElement("expression", t) } else if (t.matchToken("while")) { var u = e.requireElement("expression", t) } else if (t.matchToken("until")) { var l = true; if (t.matchToken("event")) { var c = e.requireElement("dotOrColonPath", t, "Expected event name"); if (t.matchToken("from")) { var f = e.requireElement("expression", t) } } else { var u = e.requireElement("expression", t) } } else { if (!e.commandBoundary(t.currentToken()) && t.currentToken().value !== "forever") { var m = e.requireElement("expression", t); t.requireToken("times") } else { t.matchToken("forever"); var p = true } } if (t.matchToken("index")) { var o = t.requireTokenType("IDENTIFIER"); var h = o.value } var v = e.parseElement("commandList", t); if (v && c) { var d = v; while (d.next) { d = d.next } var E = { type: "waitATick", op: function () { return new Promise((function (e) { setTimeout((function () { e(r.findNext(E)) }), 0) })) } }; d.next = E } if (t.hasMore()) { t.requireToken("end") } if (a == null) { a = "_implicit_repeat_" + i.start; var T = a } else { var T = a + "_" + i.start } var y = { identifier: a, indexIdentifier: h, slot: T, expression: s, forever: p, times: m, until: l, event: c, on: f, whileExpr: u, resolveNext: function () { return this }, loop: v, args: [u, m], op: function (e, t, n) { var i = e.meta.iterators[T]; var o = false; var s = null; if (this.forever) { o = true } else if (this.until) { if (c) { o = e.meta.iterators[T].eventFired === false } else { o = t !== true } } else if (u) { o = t } else if (n) { o = i.index < n } else { var l = i.iterator.next(); o = !l.done; s = l.value } if (o) { if (i.value) { e.result = e.locals[a] = s } else { e.result = i.index } if (h) { e.locals[h] = i.index } i.index++; return v } else { e.meta.iterators[T] = null; return r.findNext(this.parent, e) } } }; e.setParent(v, y); var k = { name: "repeatInit", args: [s, c, f], op: function (e, t, r, n) { var i = { index: 0, value: t, eventFired: false }; e.meta.iterators[T] = i; if (t && t[Symbol.iterator]) { i.iterator = t[Symbol.iterator]() } if (c) { var a = n || e.me; a.addEventListener(r, (function (t) { e.meta.iterators[T].eventFired = true }), { once: true }) } return y }, execute: function (e) { return r.unifiedExec(this, e) } }; e.setParent(y, k); return k }; t.addCommand("repeat", (function (e, t, r) { if (r.matchToken("repeat")) { return x(e, r, t, false) } })); t.addCommand("for", (function (e, t, r) { if (r.matchToken("for")) { return x(e, r, t, true) } })); t.addCommand("continue", (function (e, t, r) { if (!r.matchToken("continue")) return; var n = { op: function (t) { for (var n = this.parent; true; n = n.parent) { if (n == undefined) { e.raiseParseError(r, "Command `continue` cannot be used outside of a `repeat` loop.") } if (n.loop != undefined) { return n.resolveNext(t) } } } }; return n })); t.addCommand("break", (function (e, t, r) { if (!r.matchToken("break")) return; var n = { op: function (n) { for (var i = this.parent; true; i = i.parent) { if (i == undefined) { e.raiseParseError(r, "Command `continue` cannot be used outside of a `repeat` loop.") } if (i.loop != undefined) { return t.findNext(i.parent, n) } } } }; return n })); t.addGrammarElement("stringLike", (function (e, t, r) { return e.parseAnyOf(["string", "nakedString"], r) })); t.addCommand("append", (function (e, t, r) { if (!r.matchToken("append")) return; var n = null; var i = e.requireElement("expression", r); var a = { type: "symbol", evaluate: function (e) { return t.resolveSymbol("result", e) } }; if (r.matchToken("to")) { n = e.requireElement("expression", r) } else { n = a } var o = null; if (n.type === "symbol" || n.type === "attributeRef" || n.root != null) { o = k(e, t, r, n, a) } var s = { value: i, target: n, args: [n, i], op: function (e, r, n) { if (Array.isArray(r)) { r.push(n); return t.findNext(this, e) } else if (r instanceof Element) { r.innerHTML += n; return t.findNext(this, e) } else if (o) { e.result = (r || "") + n; return o } else { throw Error("Unable to append a value!") } }, execute: function (e) { return t.unifiedExec(this, e) } }; if (o != null) { o.parent = s } return s })); function g(e, t, r) { r.matchToken("at") || r.matchToken("from"); const n = { includeStart: true, includeEnd: false }; n.from = r.matchToken("start") ? 0 : e.requireElement("expression", r); if (r.matchToken("to") || r.matchOpToken("..")) { if (r.matchToken("end")) { n.toEnd = true } else { n.to = e.requireElement("expression", r) } } if (r.matchToken("inclusive")) n.includeEnd = true; else if (r.matchToken("exclusive")) n.includeStart = false; return n } class b { constructor(e, t) { this.re = e; this.str = t } next() { const e = this.re.exec(this.str); if (e === null) return { done: true }; else return { value: e } } } class w { constructor(e, t, r) { this.re = e; this.flags = t; this.str = r } [Symbol.iterator]() { return new b(new RegExp(this.re, this.flags), this.str) } } t.addCommand("pick", ((e, t, r) => { if (!r.matchToken("pick")) return; r.matchToken("the"); if (r.matchToken("item") || r.matchToken("items") || r.matchToken("character") || r.matchToken("characters")) { const n = g(e, t, r); r.requireToken("from"); const i = e.requireElement("expression", r); return { args: [i, n.from, n.to], op(e, r, i, a) { if (n.toEnd) a = r.length; if (!n.includeStart) i++; if (n.includeEnd) a++; if (a == null || a == undefined) a = i + 1; e.result = r.slice(i, a); return t.findNext(this, e) } } } if (r.matchToken("match")) { r.matchToken("of"); const n = e.parseElement("expression", r); let i = ""; if (r.matchOpToken("|")) { i = r.requireToken("identifier").value } r.requireToken("from"); const a = e.parseElement("expression", r); return { args: [a, n], op(e, r, n) { e.result = new RegExp(n, i).exec(r); return t.findNext(this, e) } } } if (r.matchToken("matches")) { r.matchToken("of"); const n = e.parseElement("expression", r); let i = "gu"; if (r.matchOpToken("|")) { i = "g" + r.requireToken("identifier").value.replace("g", "") } console.log("flags", i); r.requireToken("from"); const a = e.parseElement("expression", r); return { args: [a, n], op(e, r, n) { e.result = new w(n, i, r); return t.findNext(this, e) } } } })); t.addCommand("increment", (function (e, t, r) { if (!r.matchToken("increment")) return; var n; var i = e.parseElement("assignableExpression", r); if (r.matchToken("by")) { n = e.requireElement("expression", r) } var a = { type: "implicitIncrementOp", target: i, args: [i, n], op: function (e, t, r) { t = t ? parseFloat(t) : 0; r = n ? parseFloat(r) : 1; var i = t + r; e.result = i; return i }, evaluate: function (e) { return t.unifiedEval(this, e) } }; return k(e, t, r, i, a) })); t.addCommand("decrement", (function (e, t, r) { if (!r.matchToken("decrement")) return; var n; var i = e.parseElement("assignableExpression", r); if (r.matchToken("by")) { n = e.requireElement("expression", r) } var a = { type: "implicitDecrementOp", target: i, args: [i, n], op: function (e, t, r) { t = t ? parseFloat(t) : 0; r = n ? parseFloat(r) : 1; var i = t - r; e.result = i; return i }, evaluate: function (e) { return t.unifiedEval(this, e) } }; return k(e, t, r, i, a) })); function S(e, t) { var r = "text"; var n; e.matchToken("a") || e.matchToken("an"); if (e.matchToken("json") || e.matchToken("Object")) { r = "json" } else if (e.matchToken("response")) { r = "response" } else if (e.matchToken("html")) { r = "html" } else if (e.matchToken("text")) { } else { n = t.requireElement("dotOrColonPath", e).evaluate() } return { type: r, conversion: n } } t.addCommand("fetch", (function (e, t, r) { if (!r.matchToken("fetch")) return; var n = e.requireElement("stringLike", r); if (r.matchToken("as")) { var i = S(r, e) } if (r.matchToken("with") && r.currentToken().value !== "{") { var a = e.parseElement("nakedNamedArgumentList", r) } else { var a = e.parseElement("objectLiteral", r) } if (i == null && r.matchToken("as")) { i = S(r, e) } var o = i ? i.type : "text"; var s = i ? i.conversion : null; var u = { url: n, argExpressions: a, args: [n, a], op: function (e, r, n) { var i = n || {}; i["sender"] = e.me; i["headers"] = i["headers"] || {}; var a = new AbortController; let l = e.me.addEventListener("fetch:abort", (function () { a.abort() }), { once: true }); i["signal"] = a.signal; t.triggerEvent(e.me, "hyperscript:beforeFetch", i); t.triggerEvent(e.me, "fetch:beforeRequest", i); n = i; var c = false; if (n.timeout) { setTimeout((function () { if (!c) { a.abort() } }), n.timeout) } return fetch(r, n).then((function (r) { let n = { response: r }; t.triggerEvent(e.me, "fetch:afterResponse", n); r = n.response; if (o === "response") { e.result = r; t.triggerEvent(e.me, "fetch:afterRequest", { result: r }); c = true; return t.findNext(u, e) } if (o === "json") { return r.json().then((function (r) { e.result = r; t.triggerEvent(e.me, "fetch:afterRequest", { result: r }); c = true; return t.findNext(u, e) })) } return r.text().then((function (r) { if (s) r = t.convertValue(r, s); if (o === "html") r = t.convertValue(r, "Fragment"); e.result = r; t.triggerEvent(e.me, "fetch:afterRequest", { result: r }); c = true; return t.findNext(u, e) })) })).catch((function (r) { t.triggerEvent(e.me, "fetch:error", { reason: r }); throw r })).finally((function () { e.me.removeEventListener("fetch:abort", l) })) } }; return u })) } function y(e) { e.addCommand("settle", (function (e, t, r) { if (r.matchToken("settle")) { if (!e.commandBoundary(r.currentToken())) { var n = e.requireElement("expression", r) } else { var n = e.requireElement("implicitMeTarget", r) } var i = { type: "settleCmd", args: [n], op: function (e, r) { t.nullCheck(r, n); var a = null; var o = false; var s = false; var u = new Promise((function (e) { a = e })); r.addEventListener("transitionstart", (function () { s = true }), { once: true }); setTimeout((function () { if (!s && !o) { a(t.findNext(i, e)) } }), 500); r.addEventListener("transitionend", (function () { if (!o) { a(t.findNext(i, e)) } }), { once: true }); return u }, execute: function (e) { return t.unifiedExec(this, e) } }; return i } })); e.addCommand("add", (function (e, t, r) { if (r.matchToken("add")) { var n = e.parseElement("classRef", r); var i = null; var a = null; if (n == null) { i = e.parseElement("attributeRef", r); if (i == null) { a = e.parseElement("styleLiteral", r); if (a == null) { e.raiseParseError(r, "Expected either a class reference or attribute expression") } } } else { var o = [n]; while (n = e.parseElement("classRef", r)) { o.push(n) } } if (r.matchToken("to")) { var s = e.requireElement("expression", r) } else { var s = e.requireElement("implicitMeTarget", r) } if (r.matchToken("when")) { if (a) { e.raiseParseError(r, "Only class and properties are supported with a when clause") } var u = e.requireElement("expression", r) } if (o) { return { classRefs: o, to: s, args: [s, o], op: function (e, r, n) { t.nullCheck(r, s); t.forEach(n, (function (n) { t.implicitLoop(r, (function (r) { if (u) { e.result = r; let i = t.evaluateNoPromise(u, e); if (i) { if (r instanceof Element) r.classList.add(n.className) } else { if (r instanceof Element) r.classList.remove(n.className) } e.result = null } else { if (r instanceof Element) r.classList.add(n.className) } })) })); return t.findNext(this, e) } } } else if (i) { return { type: "addCmd", attributeRef: i, to: s, args: [s], op: function (e, r, n) { t.nullCheck(r, s); t.implicitLoop(r, (function (r) { if (u) { e.result = r; let n = t.evaluateNoPromise(u, e); if (n) { r.setAttribute(i.name, i.value) } else { r.removeAttribute(i.name) } e.result = null } else { r.setAttribute(i.name, i.value) } })); return t.findNext(this, e) }, execute: function (e) { return t.unifiedExec(this, e) } } } else { return { type: "addCmd", cssDeclaration: a, to: s, args: [s, a], op: function (e, r, n) { t.nullCheck(r, s); t.implicitLoop(r, (function (e) { e.style.cssText += n })); return t.findNext(this, e) }, execute: function (e) { return t.unifiedExec(this, e) } } } } })); e.addGrammarElement("styleLiteral", (function (e, t, r) { if (!r.matchOpToken("{")) return; var n = [""]; var i = []; while (r.hasMore()) { if (r.matchOpToken("\\")) { r.consumeToken() } else if (r.matchOpToken("}")) { break } else if (r.matchToken("$")) { var a = r.matchOpToken("{"); var o = e.parseElement("expression", r); if (a) r.requireOpToken("}"); i.push(o); n.push("") } else { var s = r.consumeToken(); n[n.length - 1] += r.source.substring(s.start, s.end) } n[n.length - 1] += r.lastWhitespace() } return { type: "styleLiteral", args: [i], op: function (e, t) { var r = ""; n.forEach((function (e, n) { r += e; if (n in t) r += t[n] })); return r }, evaluate: function (e) { return t.unifiedEval(this, e) } } })); e.addCommand("remove", (function (e, t, r) { if (r.matchToken("remove")) { var n = e.parseElement("classRef", r); var i = null; var a = null; if (n == null) { i = e.parseElement("attributeRef", r); if (i == null) { a = e.parseElement("expression", r); if (a == null) { e.raiseParseError(r, "Expected either a class reference, attribute expression or value expression") } } } else { var o = [n]; while (n = e.parseElement("classRef", r)) { o.push(n) } } if (r.matchToken("from")) { var s = e.requireElement("expression", r) } else { if (a == null) { var s = e.requireElement("implicitMeTarget", r) } } if (a) { return { elementExpr: a, from: s, args: [a, s], op: function (e, r, n) { t.nullCheck(r, a); t.implicitLoop(r, (function (e) { if (e.parentElement && (n == null || n.contains(e))) { e.parentElement.removeChild(e) } })); return t.findNext(this, e) } } } else { return { classRefs: o, attributeRef: i, elementExpr: a, from: s, args: [o, s], op: function (e, r, n) { t.nullCheck(n, s); if (r) { t.forEach(r, (function (e) { t.implicitLoop(n, (function (t) { t.classList.remove(e.className) })) })) } else { t.implicitLoop(n, (function (e) { e.removeAttribute(i.name) })) } return t.findNext(this, e) } } } } })); e.addCommand("toggle", (function (e, t, r) { if (r.matchToken("toggle")) { r.matchAnyToken("the", "my"); if (r.currentToken().type === "STYLE_REF") { let t = r.consumeToken(); var n = t.value.substr(1); var a = true; var o = i(e, r, n); if (r.matchToken("of")) { r.pushFollow("with"); try { var s = e.requireElement("expression", r) } finally { r.popFollow() } } else { var s = e.requireElement("implicitMeTarget", r) } } else if (r.matchToken("between")) { var u = true; var l = e.parseElement("classRef", r); r.requireToken("and"); var c = e.requireElement("classRef", r) } else { var l = e.parseElement("classRef", r); var f = null; if (l == null) { f = e.parseElement("attributeRef", r); if (f == null) { e.raiseParseError(r, "Expected either a class reference or attribute expression") } } else { var m = [l]; while (l = e.parseElement("classRef", r)) { m.push(l) } } } if (a !== true) { if (r.matchToken("on")) { var s = e.requireElement("expression", r) } else { var s = e.requireElement("implicitMeTarget", r) } } if (r.matchToken("for")) { var p = e.requireElement("expression", r) } else if (r.matchToken("until")) { var h = e.requireElement("dotOrColonPath", r, "Expected event name"); if (r.matchToken("from")) { var v = e.requireElement("expression", r) } } var d = { classRef: l, classRef2: c, classRefs: m, attributeRef: f, on: s, time: p, evt: h, from: v, toggle: function (e, r, n, i) { t.nullCheck(e, s); if (a) { t.implicitLoop(e, (function (e) { o("toggle", e) })) } else if (u) { t.implicitLoop(e, (function (e) { if (e.classList.contains(r.className)) { e.classList.remove(r.className); e.classList.add(n.className) } else { e.classList.add(r.className); e.classList.remove(n.className) } })) } else if (i) { t.forEach(i, (function (r) { t.implicitLoop(e, (function (e) { e.classList.toggle(r.className) })) })) } else { t.forEach(e, (function (e) { if (e.hasAttribute(f.name)) { e.removeAttribute(f.name) } else { e.setAttribute(f.name, f.value) } })) } }, args: [s, p, h, v, l, c, m], op: function (e, r, n, i, a, o, s, u) { if (n) { return new Promise((function (i) { d.toggle(r, o, s, u); setTimeout((function () { d.toggle(r, o, s, u); i(t.findNext(d, e)) }), n) })) } else if (i) { return new Promise((function (n) { var l = a || e.me; l.addEventListener(i, (function () { d.toggle(r, o, s, u); n(t.findNext(d, e)) }), { once: true }); d.toggle(r, o, s, u) })) } else { this.toggle(r, o, s, u); return t.findNext(d, e) } } }; return d } })); var t = { display: function (r, n, i) { if (i) { n.style.display = i } else if (r === "toggle") { if (getComputedStyle(n).display === "none") { t.display("show", n, i) } else { t.display("hide", n, i) } } else if (r === "hide") { const t = e.runtime.getInternalData(n); if (t.originalDisplay == null) { t.originalDisplay = n.style.display } n.style.display = "none" } else { const t = e.runtime.getInternalData(n); if (t.originalDisplay && t.originalDisplay !== "none") { n.style.display = t.originalDisplay } else { n.style.removeProperty("display") } } }, visibility: function (e, r, n) { if (n) { r.style.visibility = n } else if (e === "toggle") { if (getComputedStyle(r).visibility === "hidden") { t.visibility("show", r, n) } else { t.visibility("hide", r, n) } } else if (e === "hide") { r.style.visibility = "hidden" } else { r.style.visibility = "visible" } }, opacity: function (e, r, n) { if (n) { r.style.opacity = n } else if (e === "toggle") { if (getComputedStyle(r).opacity === "0") { t.opacity("show", r, n) } else { t.opacity("hide", r, n) } } else if (e === "hide") { r.style.opacity = "0" } else { r.style.opacity = "1" } } }; var n = function (e, t, r) { var n; var i = r.currentToken(); if (i.value === "when" || i.value === "with" || e.commandBoundary(i)) { n = e.parseElement("implicitMeTarget", r) } else { n = e.parseElement("expression", r) } return n }; var i = function (e, n, i) { var a = r.defaultHideShowStrategy; var o = t; if (r.hideShowStrategies) { o = Object.assign(o, r.hideShowStrategies) } i = i || a || "display"; var s = o[i]; if (s == null) { e.raiseParseError(n, "Unknown show/hide strategy : " + i) } return s }; e.addCommand("hide", (function (e, t, r) { if (r.matchToken("hide")) { var a = n(e, t, r); var o = null; if (r.matchToken("with")) { o = r.requireTokenType("IDENTIFIER", "STYLE_REF").value; if (o.indexOf("*") === 0) { o = o.substr(1) } } var s = i(e, r, o); return { target: a, args: [a], op: function (e, r) { t.nullCheck(r, a); t.implicitLoop(r, (function (e) { s("hide", e) })); return t.findNext(this, e) } } } })); e.addCommand("show", (function (e, t, r) { if (r.matchToken("show")) { var a = n(e, t, r); var o = null; if (r.matchToken("with")) { o = r.requireTokenType("IDENTIFIER", "STYLE_REF").value; if (o.indexOf("*") === 0) { o = o.substr(1) } } var s = null; if (r.matchOpToken(":")) { var u = r.consumeUntilWhitespace(); r.matchTokenType("WHITESPACE"); s = u.map((function (e) { return e.value })).join("") } if (r.matchToken("when")) { var l = e.requireElement("expression", r) } var c = i(e, r, o); return { target: a, when: l, args: [a], op: function (e, r) { t.nullCheck(r, a); t.implicitLoop(r, (function (r) { if (l) { e.result = r; let n = t.evaluateNoPromise(l, e); if (n) { c("show", r, s) } else { c("hide", r) } e.result = null } else { c("show", r, s) } })); return t.findNext(this, e) } } } })); e.addCommand("take", (function (e, t, r) { if (r.matchToken("take")) { let u = null; let l = []; while (u = e.parseElement("classRef", r)) { l.push(u) } var n = null; var i = null; let c = l.length > 0; if (!c) { n = e.parseElement("attributeRef", r); if (n == null) { e.raiseParseError(r, "Expected either a class reference or attribute expression") } if (r.matchToken("with")) { i = e.requireElement("expression", r) } } if (r.matchToken("from")) { var a = e.requireElement("expression", r) } if (r.matchToken("for")) { var o = e.requireElement("expression", r) } else { var o = e.requireElement("implicitMeTarget", r) } if (c) { var s = { classRefs: l, from: a, forElt: o, args: [l, a, o], op: function (e, r, n, i) { t.nullCheck(i, o); t.implicitLoop(r, (function (e) { var r = e.className; if (n) { t.implicitLoop(n, (function (e) { e.classList.remove(r) })) } else { t.implicitLoop(e, (function (e) { e.classList.remove(r) })) } t.implicitLoop(i, (function (e) { e.classList.add(r) })) })); return t.findNext(this, e) } }; return s } else { var s = { attributeRef: n, from: a, forElt: o, args: [a, o, i], op: function (e, r, i, s) { t.nullCheck(r, a); t.nullCheck(i, o); t.implicitLoop(r, (function (e) { if (!s) { e.removeAttribute(n.name) } else { e.setAttribute(n.name, s) } })); t.implicitLoop(i, (function (e) { e.setAttribute(n.name, n.value || "") })); return t.findNext(this, e) } }; return s } } })); function a(t, r, n, i) { if (n != null) { var a = t.resolveSymbol(n, r) } else { var a = r } if (a instanceof Element || a instanceof HTMLDocument) { while (a.firstChild) a.removeChild(a.firstChild); a.append(e.runtime.convertValue(i, "Fragment")); t.processNode(a) } else { if (n != null) { t.setSymbol(n, r, null, i) } else { throw "Don't know how to put a value into " + typeof r } } } e.addCommand("put", (function (e, t, r) { if (r.matchToken("put")) { var n = e.requireElement("expression", r); var i = r.matchAnyToken("into", "before", "after"); if (i == null && r.matchToken("at")) { r.matchToken("the"); i = r.matchAnyToken("start", "end"); r.requireToken("of") } if (i == null) { e.raiseParseError(r, "Expected one of 'into', 'before', 'at start of', 'at end of', 'after'") } var o = e.requireElement("expression", r); var s = i.value; var u = false; var l = false; var c = null; var f = null; if (o.type === "arrayIndex" && s === "into") { u = true; f = o.prop; c = o.root } else if (o.prop && o.root && s === "into") { f = o.prop.value; c = o.root } else if (o.type === "symbol" && s === "into") { l = true; f = o.name } else if (o.type === "attributeRef" && s === "into") { var m = true; f = o.name; c = e.requireElement("implicitMeTarget", r) } else if (o.type === "styleRef" && s === "into") { var p = true; f = o.name; c = e.requireElement("implicitMeTarget", r) } else if (o.attribute && s === "into") { var m = o.attribute.type === "attributeRef"; var p = o.attribute.type === "styleRef"; f = o.attribute.name; c = o.root } else { c = o } var h = { target: o, operation: s, symbolWrite: l, value: n, args: [c, f, n], op: function (e, r, n, i) { if (l) { a(t, e, n, i) } else { t.nullCheck(r, c); if (s === "into") { if (m) { t.implicitLoop(r, (function (e) { e.setAttribute(n, i) })) } else if (p) { t.implicitLoop(r, (function (e) { e.style[n] = i })) } else if (u) { r[n] = i } else { t.implicitLoop(r, (function (e) { a(t, e, n, i) })) } } else { var o = s === "before" ? Element.prototype.before : s === "after" ? Element.prototype.after : s === "start" ? Element.prototype.prepend : s === "end" ? Element.prototype.append : Element.prototype.append; t.implicitLoop(r, (function (e) { o.call(e, i instanceof Node ? i : t.convertValue(i, "Fragment")); if (e.parentElement) { t.processNode(e.parentElement) } else { t.processNode(e) } })) } } return t.findNext(this, e) } }; return h } })); function o(e, t, r) { var n; if (r.matchToken("the") || r.matchToken("element") || r.matchToken("elements") || r.currentToken().type === "CLASS_REF" || r.currentToken().type === "ID_REF" || r.currentToken().op && r.currentToken().value === "<") { e.possessivesDisabled = true; try { n = e.parseElement("expression", r) } finally { delete e.possessivesDisabled } if (r.matchOpToken("'")) { r.requireToken("s") } } else if (r.currentToken().type === "IDENTIFIER" && r.currentToken().value === "its") { var i = r.matchToken("its"); n = { type: "pseudopossessiveIts", token: i, name: i.value, evaluate: function (e) { return t.resolveSymbol("it", e) } } } else { r.matchToken("my") || r.matchToken("me"); n = e.parseElement("implicitMeTarget", r) } return n } e.addCommand("transition", (function (e, t, n) { if (n.matchToken("transition")) { var i = o(e, t, n); var a = []; var s = []; var u = []; var l = n.currentToken(); while (!e.commandBoundary(l) && l.value !== "over" && l.value !== "using") { if (n.currentToken().type === "STYLE_REF") { let e = n.consumeToken(); let t = e.value.substr(1); a.push({ type: "styleRefValue", evaluate: function () { return t } }) } else { a.push(e.requireElement("stringLike", n)) } if (n.matchToken("from")) { s.push(e.requireElement("expression", n)) } else { s.push(null) } n.requireToken("to"); if (n.matchToken("initial")) { u.push({ type: "initial_literal", evaluate: function () { return "initial" } }) } else { u.push(e.requireElement("expression", n)) } l = n.currentToken() } if (n.matchToken("over")) { var c = e.requireElement("expression", n) } else if (n.matchToken("using")) { var f = e.requireElement("expression", n) } var m = { to: u, args: [i, a, s, u, f, c], op: function (e, n, a, o, s, u, l) { t.nullCheck(n, i); var c = []; t.implicitLoop(n, (function (e) { var n = new Promise((function (n, i) { var c = e.style.transition; if (l) { e.style.transition = "all " + l + "ms ease-in" } else if (u) { e.style.transition = u } else { e.style.transition = r.defaultTransition } var f = t.getInternalData(e); var m = getComputedStyle(e); var p = {}; for (var h = 0; h < m.length; h++) { var v = m[h]; var d = m[v]; p[v] = d } if (!f.initialStyles) { f.initialStyles = p } for (var h = 0; h < a.length; h++) { var E = a[h]; var T = o[h]; if (T === "computed" || T == null) { e.style[E] = p[E] } else { e.style[E] = T } } var y = false; var k = false; e.addEventListener("transitionend", (function () { if (!k) { e.style.transition = c; k = true; n() } }), { once: true }); e.addEventListener("transitionstart", (function () { y = true }), { once: true }); setTimeout((function () { if (!k && !y) { e.style.transition = c; k = true; n() } }), 100); setTimeout((function () { var t = []; for (var r = 0; r < a.length; r++) { var n = a[r]; var i = s[r]; if (i === "initial") { var o = f.initialStyles[n]; e.style[n] = o } else { e.style[n] = i } } }), 0) })); c.push(n) })); return Promise.all(c).then((function () { return t.findNext(m, e) })) } }; return m } })); e.addCommand("measure", (function (e, t, r) { if (!r.matchToken("measure")) return; var n = o(e, t, r); var i = []; if (!e.commandBoundary(r.currentToken())) do { i.push(r.matchTokenType("IDENTIFIER").value) } while (r.matchOpToken(",")); return { properties: i, args: [n], op: function (e, r) { t.nullCheck(r, n); if (0 in r) r = r[0]; var a = r.getBoundingClientRect(); var o = { top: r.scrollTop, left: r.scrollLeft, topMax: r.scrollTopMax, leftMax: r.scrollLeftMax, height: r.scrollHeight, width: r.scrollWidth }; e.result = { x: a.x, y: a.y, left: a.left, top: a.top, right: a.right, bottom: a.bottom, width: a.width, height: a.height, bounds: a, scrollLeft: o.left, scrollTop: o.top, scrollLeftMax: o.leftMax, scrollTopMax: o.topMax, scrollWidth: o.width, scrollHeight: o.height, scroll: o }; t.forEach(i, (function (t) { if (t in e.result) e.locals[t] = e.result[t]; else throw "No such measurement as " + t })); return t.findNext(this, e) } } })); e.addLeafExpression("closestExpr", (function (e, t, r) { if (r.matchToken("closest")) { if (r.matchToken("parent")) { var n = true } var i = null; if (r.currentToken().type === "ATTRIBUTE_REF") { var a = e.requireElement("attributeRefAccess", r, null); i = "[" + a.attribute.name + "]" } if (i == null) { var o = e.requireElement("expression", r); if (o.css == null) { e.raiseParseError(r, "Expected a CSS expression") } else { i = o.css } } if (r.matchToken("to")) { var s = e.parseElement("expression", r) } else { var s = e.parseElement("implicitMeTarget", r) } var u = { type: "closestExpr", parentSearch: n, expr: o, css: i, to: s, args: [s], op: function (e, r) { if (r == null) { return null } else { let e = []; t.implicitLoop(r, (function (t) { if (n) { e.push(t.parentElement ? t.parentElement.closest(i) : null) } else { e.push(t.closest(i)) } })); if (t.shouldAutoIterate(r)) { return e } else { return e[0] } } }, evaluate: function (e) { return t.unifiedEval(this, e) } }; if (a) { a.root = u; a.args = [u]; return a } else { return u } } })); e.addCommand("go", (function (e, t, r) { if (r.matchToken("go")) { if (r.matchToken("back")) { var n = true } else { r.matchToken("to"); if (r.matchToken("url")) { var i = e.requireElement("stringLike", r); var a = true; if (r.matchToken("in")) { r.requireToken("new"); r.requireToken("window"); var o = true } } else { r.matchToken("the"); var s = r.matchAnyToken("top", "middle", "bottom"); var u = r.matchAnyToken("left", "center", "right"); if (s || u) { r.requireToken("of") } var i = e.requireElement("unaryExpression", r); var l = r.matchAnyOpToken("+", "-"); if (l) { r.pushFollow("px"); try { var c = e.requireElement("expression", r) } finally { r.popFollow() } } r.matchToken("px"); var f = r.matchAnyToken("smoothly", "instantly"); var m = { block: "start", inline: "nearest" }; if (s) { if (s.value === "top") { m.block = "start" } else if (s.value === "bottom") { m.block = "end" } else if (s.value === "middle") { m.block = "center" } } if (u) { if (u.value === "left") { m.inline = "start" } else if (u.value === "center") { m.inline = "center" } else if (u.value === "right") { m.inline = "end" } } if (f) { if (f.value === "smoothly") { m.behavior = "smooth" } else if (f.value === "instantly") { m.behavior = "instant" } } } } var p = { target: i, args: [i, c], op: function (e, r, i) { if (n) { window.history.back() } else if (a) { if (r) { if (o) { window.open(r) } else { window.location.href = r } } } else { t.implicitLoop(r, (function (e) { if (e === window) { e = document.body } if (l) { let t = e.getBoundingClientRect(); let r = document.createElement("div"); let n = l.value === "+" ? i : i * -1; let a = m.inline == "start" || m.inline == "end" ? n : 0; let o = m.block == "start" || m.block == "end" ? n : 0; r.style.position = "absolute"; r.style.top = t.top + window.scrollY + o + "px"; r.style.left = t.left + window.scrollX + a + "px"; r.style.height = t.height + "px"; r.style.width = t.width + "px"; r.style.zIndex = "" + Number.MIN_SAFE_INTEGER; r.style.opacity = "0"; document.body.appendChild(r); setTimeout((function () { document.body.removeChild(r) }), 100); e = r } e.scrollIntoView(m) })) } return t.findNext(p, e) } }; return p } })); r.conversions.dynamicResolvers.push((function (t, r) { if (!(t === "Values" || t.indexOf("Values:") === 0)) { return } var n = t.split(":")[1]; var i = {}; var a = e.runtime.implicitLoop.bind(e.runtime); a(r, (function (e) { var t = s(e); if (t !== undefined) { i[t.name] = t.value; return } if (e.querySelectorAll != undefined) { var r = e.querySelectorAll("input,select,textarea"); r.forEach(o) } })); if (n) { if (n === "JSON") { return JSON.stringify(i) } else if (n === "Form") { return new URLSearchParams(i).toString() } else { throw "Unknown conversion: " + n } } else { return i } function o(e) { var t = s(e); if (t == undefined) { return } if (i[t.name] == undefined) { i[t.name] = t.value; return } if (Array.isArray(i[t.name]) && Array.isArray(t.value)) { i[t.name] = [].concat(i[t.name], t.value); return } } function s(e) { try { var t = { name: e.name, value: e.value }; if (t.name == undefined || t.value == undefined) { return undefined } if (e.type == "radio" && e.checked == false) { return undefined } if (e.type == "checkbox") { if (e.checked == false) { t.value = undefined } else if (typeof t.value === "string") { t.value = [t.value] } } if (e.type == "select-multiple") { var r = e.querySelectorAll("option[selected]"); t.value = []; for (var n = 0; n < r.length; n++) { t.value.push(r[n].value) } } return t } catch (e) { return undefined } } })); r.conversions["HTML"] = function (e) { var t = function (e) { if (e instanceof Array) { return e.map((function (e) { return t(e) })).join("") } if (e instanceof HTMLElement) { return e.outerHTML } if (e instanceof NodeList) { var r = ""; for (var n = 0; n < e.length; n++) { var i = e[n]; if (i instanceof HTMLElement) { r += i.outerHTML } } return r } if (e.toString) { return e.toString() } return "" }; return t(e) }; r.conversions["Fragment"] = function (t) { var r = document.createDocumentFragment(); e.runtime.implicitLoop(t, (function (e) { if (e instanceof Node) r.append(e); else { var t = document.createElement("template"); t.innerHTML = e; r.append(t.content) } })); return r } } const k = new o, x = k.lexer, g = k.parser; function b(e, t) { return k.evaluate(e, t) } function w() { var t = Array.from(e.document.querySelectorAll("script[type='text/hyperscript'][src]")); Promise.all(t.map((function (e) { return fetch(e.src).then((function (e) { return e.text() })) }))).then((e => e.forEach((e => S(e))))).then((() => n((function () { a(); k.processNode(document.documentElement); e.document.addEventListener("htmx:load", (function (e) { k.processNode(e.detail.elt) })) })))); function n(e) { if (document.readyState !== "loading") { setTimeout(e) } else { document.addEventListener("DOMContentLoaded", e) } } function i() { var e = document.querySelector('meta[name="htmx-config"]'); if (e) { return v(e.content) } else { return null } } function a() { var e = i(); if (e) { Object.assign(r, e) } } } const S = Object.assign(b, { config: r, use(e) { e(S) }, internals: { lexer: x, parser: g, runtime: k, Lexer: n, Tokens: i, Parser: a, Runtime: o }, ElementCollection: m, addFeature: g.addFeature.bind(g), addCommand: g.addCommand.bind(g), addLeafExpression: g.addLeafExpression.bind(g), addIndirectExpression: g.addIndirectExpression.bind(g), evaluate: k.evaluate.bind(k), parse: k.parse.bind(k), processNode: k.processNode.bind(k), version: "0.9.12", browserInit: w }); return S }));