diff --git a/dist/legacy/dev/yox.esm.js b/dist/legacy/dev/yox.esm.js index 56346598..85689aff 100644 --- a/dist/legacy/dev/yox.esm.js +++ b/dist/legacy/dev/yox.esm.js @@ -1,5 +1,5 @@ /** - * yox.js v1.0.0-alpha.252 + * yox.js v1.0.0-alpha.253 * (c) 2017-2022 musicode * Released under the MIT License. */ @@ -2945,6 +2945,96 @@ function isDef (target) { return target !== UNDEFINED$1; } +const CODE_EOF = 0; // +const CODE_DOT = 46; // . +const CODE_COMMA = 44; // , +const CODE_SLASH = 47; // / +const CODE_BACKSLASH = 92; // \ +const CODE_SQUOTE = 39; // ' +const CODE_DQUOTE = 34; // " +const CODE_OPAREN = 40; // ( +const CODE_CPAREN = 41; // ) +const CODE_OBRACK = 91; // [ +const CODE_CBRACK = 93; // ] +const CODE_OBRACE = 123; // { +const CODE_CBRACE = 125; // } +const CODE_QUESTION = 63; // ? +const CODE_COLON = 58; // : +const CODE_PLUS = 43; // + +const CODE_MINUS = 45; // - +const CODE_MULTIPLY = 42; // * +const CODE_DIVIDE = 47; // / +const CODE_MODULO = 37; // % +const CODE_WAVE = 126; // ~ +const CODE_AND = 38; // & +const CODE_OR = 124; // | +const CODE_XOR = 94; // ^ +const CODE_NOT = 33; // ! +const CODE_LESS = 60; // < +const CODE_EQUAL = 61; // = +const CODE_GREAT = 62; // > +const CODE_AT = 64; // @ +/** + * 区分关键字和普通变量 + * 举个例子:a === true + * 从解析器的角度来说,a 和 true 是一样的 token + */ +const keywordLiterals = {}; +keywordLiterals[RAW_TRUE] = TRUE$1; +keywordLiterals[RAW_FALSE] = FALSE$1; +keywordLiterals[RAW_NULL] = NULL$1; +keywordLiterals[RAW_UNDEFINED] = UNDEFINED$1; +/** + * 是否是空白符,用下面的代码在浏览器测试一下 + * + * ``` + * for (var i = 0; i < 200; i++) { + * console.log(i, String.fromCharCode(i)) + * } + * ``` + * + * 从 0 到 32 全是空白符,100 往上分布比较散且较少用,唯一需要注意的是 160 + * + * 160 表示 non-breaking space + * http://www.adamkoch.com/2009/07/25/white-space-and-character-160/ + */ +function isWhitespace(code) { + return (code > 0 && code < 33) || code === 160; +} +/** + * 是否是数字 + */ +function isDigit(code) { + return code > 47 && code < 58; // 0...9 +} +/** + * 是否是数字 + */ +function isNumber(code) { + return isDigit(code) || code === CODE_DOT; +} +/** + * 是否是插槽变量,@name 表示引用 name 所指定的插槽 + */ +function isSlotIdentifierStart(code) { + return code === CODE_AT; +} +/** + * 变量开始字符必须是 字母、下划线、$ + */ +function isIdentifierStart(code) { + return code === 36 // $ + || code === 95 // _ + || (code > 96 && code < 123) // a...z + || (code > 64 && code < 91); // A...Z +} +/** + * 变量剩余的字符必须是 字母、下划线、$、数字 + */ +function isIdentifierPart(code) { + return isIdentifierStart(code) || isDigit(code); +} + function createArray(nodes, raw) { return { type: ARRAY, @@ -2985,6 +3075,9 @@ function createIdentifier(raw, name, isProp) { root = TRUE$1; lookup = FALSE$1; } + else { + name = replaceSlotIdentifierIfNeeded(name); + } // 对象属性需要区分 a.b 和 a[b] // 如果不借用 Literal 无法实现这个判断 // 同理,如果用了这种方式,就无法区分 a.b 和 a['b'],但是无所谓,这两种表示法本就一个意思 @@ -3103,6 +3196,7 @@ function createMemberIfNeeded(raw, nodes) { let firstName = identifierNode.name; // 不是 KEYPATH_THIS 或 KEYPATH_PARENT 或 KEYPATH_ROOT if (firstName) { + firstName = replaceSlotIdentifierIfNeeded(firstName, identifierNode); unshift(staticNodes, firstName); } // 转成 Identifier @@ -3168,6 +3262,16 @@ function createMemberInner(raw, lead, keypath, nodes, root, lookup, offset) { lookup, offset, }; +} +function replaceSlotIdentifierIfNeeded(name, identifierNode) { + // 如果是插槽变量,则进行替换 + if (isSlotIdentifierStart(codeAt(name, 0))) { + name = SLOT_DATA_PREFIX + slice(name, 1); + if (identifierNode) { + identifierNode.name = name; + } + } + return name; } const unary = { @@ -3287,9 +3391,9 @@ class Parser { */ scanToken() { const instance = this, { code, index } = instance; - if (isIdentifierStart(code)) { + if (isIdentifierStart(code) || isSlotIdentifierStart(code)) { return instance.scanTail(index, [ - instance.scanIdentifier(index) + instance.scanIdentifier(index, code) ]); } if (isDigit(code)) { @@ -3536,7 +3640,7 @@ class Parser { */ scanPath(startIndex) { let instance = this, nodes = [], name; - // 进入此函数时,已确定前一个 code 是 CODE_DOT + // 进入此函数时,已确定前一个 code 是 helper.CODE_DOT // 此时只需判断接下来是 ./ 还是 / 就行了 while (TRUE$1) { name = KEYPATH_CURRENT; @@ -3554,9 +3658,9 @@ class Parser { // 如果以 / 结尾,则命中 ./ 或 ../ if (instance.is(CODE_SLASH)) { instance.go(); - // 没写错,这里不必强调 isIdentifierStart,数字开头也可以吧 - if (isIdentifierPart(instance.code)) { - push(nodes, instance.scanIdentifier(instance.index, TRUE$1)); + const { index, code } = instance; + if (isIdentifierStart(code) || isSlotIdentifierStart(code)) { + push(nodes, instance.scanIdentifier(index, code, TRUE$1)); return instance.scanTail(startIndex, nodes); } else if (instance.is(CODE_DOT)) { @@ -3608,7 +3712,7 @@ class Parser { // 接下来的字符,可能是数字,也可能是标识符,如果不是就报错 if (isIdentifierPart(instance.code)) { // 无需识别关键字 - push(nodes, instance.scanIdentifier(instance.index, TRUE$1)); + push(nodes, instance.scanIdentifier(instance.index, instance.code, TRUE$1)); break; } else { @@ -3647,12 +3751,19 @@ class Parser { * @param isProp 是否是对象的属性 * @return */ - scanIdentifier(startIndex, isProp) { + scanIdentifier(startIndex, startCode, isProp) { const instance = this; - while (isIdentifierPart(instance.code)) { + // 标识符的第一个字符在外面已经判断过,肯定符合要求 + // 因此这里先前进一步 + do { instance.go(); - } + } while (isIdentifierPart(instance.code)); const raw = instance.pick(startIndex); + // 插槽变量,@ 后面必须有其他字符 + if (raw.length === 1 + && isSlotIdentifierStart(startCode)) { + instance.fatal(startIndex, 'A slot identifier must be followed by its name.'); + } return !isProp && raw in keywordLiterals ? createLiteral(keywordLiterals[raw], raw) : createIdentifier(raw, raw, isProp); @@ -3874,88 +3985,6 @@ class Parser { } } } -const CODE_EOF = 0, // -CODE_DOT = 46, // . -CODE_COMMA = 44, // , -CODE_SLASH = 47, // / -CODE_BACKSLASH = 92, // \ -CODE_SQUOTE = 39, // ' -CODE_DQUOTE = 34, // " -CODE_OPAREN = 40, // ( -CODE_CPAREN = 41, // ) -CODE_OBRACK = 91, // [ -CODE_CBRACK = 93, // ] -CODE_OBRACE = 123, // { -CODE_CBRACE = 125, // } -CODE_QUESTION = 63, // ? -CODE_COLON = 58, // : -CODE_PLUS = 43, // + -CODE_MINUS = 45, // - -CODE_MULTIPLY = 42, // * -CODE_DIVIDE = 47, // / -CODE_MODULO = 37, // % -CODE_WAVE = 126, // ~ -CODE_AND = 38, // & -CODE_OR = 124, // | -CODE_XOR = 94, // ^ -CODE_NOT = 33, // ! -CODE_LESS = 60, // < -CODE_EQUAL = 61, // = -CODE_GREAT = 62, // > -/** - * 区分关键字和普通变量 - * 举个例子:a === true - * 从解析器的角度来说,a 和 true 是一样的 token - */ -keywordLiterals = {}; -keywordLiterals[RAW_TRUE] = TRUE$1; -keywordLiterals[RAW_FALSE] = FALSE$1; -keywordLiterals[RAW_NULL] = NULL$1; -keywordLiterals[RAW_UNDEFINED] = UNDEFINED$1; -/** - * 是否是空白符,用下面的代码在浏览器测试一下 - * - * ``` - * for (var i = 0; i < 200; i++) { - * console.log(i, String.fromCharCode(i)) - * } - * ``` - * - * 从 0 到 32 全是空白符,100 往上分布比较散且较少用,唯一需要注意的是 160 - * - * 160 表示 non-breaking space - * http://www.adamkoch.com/2009/07/25/white-space-and-character-160/ - */ -function isWhitespace(code) { - return (code > 0 && code < 33) || code === 160; -} -/** - * 是否是数字 - */ -function isDigit(code) { - return code > 47 && code < 58; // 0...9 -} -/** - * 是否是数字 - */ -function isNumber(code) { - return isDigit(code) || code === CODE_DOT; -} -/** - * 变量开始字符必须是 字母、下划线、$ - */ -function isIdentifierStart(code) { - return code === 36 // $ - || code === 95 // _ - || (code > 96 && code < 123) // a...z - || (code > 64 && code < 91); // A...Z -} -/** - * 变量剩余的字符必须是 字母、下划线、$、数字 - */ -function isIdentifierPart(code) { - return isIdentifierStart(code) || isDigit(code); -} const compile$1 = createOneKeyCache(function (content) { const parser = new Parser(content); return parser.scanTernary(CODE_EOF); @@ -4951,10 +4980,7 @@ function compile(content) { } } else { - // 如果 literal 包含 @,如 @children 或 ~/@children - // 表示要遍历 slot,至于为啥要这么设计,因为想复用 each 的逻辑,减少重复代码 - // 再加上这个特性一般在业务逻辑中很少使用,只有 UI 库才可能用到,因此这里不必纠结这个语法设计 - const expr = compile$1(literal.replace(/(^|\/)@/, '$1' + SLOT_DATA_PREFIX)); + const expr = compile$1(literal); if (expr) { return createEach(expr, UNDEFINED$1, FALSE$1, index); } @@ -9285,7 +9311,7 @@ class Yox { /** * core 版本 */ -Yox.version = "1.0.0-alpha.252"; +Yox.version = "1.0.0-alpha.253"; /** * 方便外部共用的通用逻辑,特别是写插件,减少重复代码 */ @@ -9442,9 +9468,10 @@ function addEventSmartly(instance, type, listener, once) { // 全局注册内置过滤器 Yox.filter({ hasSlot(name) { - // 不鼓励在过滤器使用 this - // 因此过滤器没有 this 的类型声明 - // 这个内置过滤器是不得不用 this + // hasSlot 正式废弃之后,filter 将不再把 this 传入,回归到纯正的工具函数 + { + warn(`"hasSlot('${name}')" is not recommended for use, it may be removed in the future, please use "@${name}" directly.`); + } return this.get(SLOT_DATA_PREFIX + name) !== UNDEFINED$1; } }); diff --git a/dist/legacy/dev/yox.esm.js.map b/dist/legacy/dev/yox.esm.js.map index 5755fc75..d0d852f1 100644 --- a/dist/legacy/dev/yox.esm.js.map +++ b/dist/legacy/dev/yox.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"yox.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"yox.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/dist/legacy/dev/yox.esm.min.js b/dist/legacy/dev/yox.esm.min.js index 8ccb097d..6432a116 100644 --- a/dist/legacy/dev/yox.esm.min.js +++ b/dist/legacy/dev/yox.esm.min.js @@ -1,2 +1,2 @@ -const e=/^!(?:\s|--)/,t="undefined"!=typeof window?window:undefined,n="undefined"!=typeof document?document:undefined,i=function(){},r=Object.freeze({}),o=Object.freeze([]),s=/yox/.test(i.toString())?2:3,c={leftDelimiter:"{",rightDelimiter:"}",uglifyCompiled:false,minifyCompiled:false,logLevel:s};function a(e){return"function"==typeof e}function u(e){return Array.isArray(e)}function l(e){return null!==e&&"object"==typeof e}function f(e){return"string"==typeof e}function d(e){return"number"==typeof e&&!isNaN(e)}function p(e){return true===e||false===e}function h(e){return!isNaN(e-parseFloat(e))}var m=Object.freeze({__proto__:null,func:a,array:u,object:l,string:f,number:d,boolean:p,numeric:h});function g(e,t,n){return u(n)?e.apply(t,n):undefined!==t?e.call(t,n):undefined!==n?e(n):e()}class y{constructor(e,t){this.type=e,this.phase=y.PHASE_CURRENT,t&&(this.originalEvent=t)}static is(e){return e instanceof y}preventDefault(){const e=this;if(!e.isPrevented){const{originalEvent:t}=e;t&&t.preventDefault(),e.isPrevented=true}return e}stopPropagation(){const e=this;if(!e.isStoped){const{originalEvent:t}=e;t&&t.stopPropagation(),e.isStoped=true}return e}prevent(){return this.preventDefault()}stop(){return this.stopPropagation()}}function v(e,t,n){const{length:i}=e;if(i)if(n)for(let n=i-1;n>=0&&false!==t(e[n],n);n--);else for(let n=0;n0)return e[t-1]}function _(e){const{length:t}=e;if(t>0)return e.pop()}function E(e,t,n){let i=0;return v(e,(function(r,o){(false===n?r==t:r===t)&&(e.splice(o,1),i++)}),true),i}function C(e,t,n){return w(e,t,n)>=0}function N(e){return u(e)?e:g(o.slice,e)}function O(e,t){return e.join(t)}function A(e){return!u(e)||!e.length}y.PHASE_CURRENT=0,y.PHASE_UPWARD=1,y.PHASE_DOWNWARD=-1;var P=Object.freeze({__proto__:null,each:v,push:k,unshift:T,indexOf:w,last:S,pop:_,remove:E,has:C,toArray:N,toObject:function(e,t,n){let i={};return v(e,(function(e){i[t?e[t]:e]=n||e})),i},join:O,falsy:A});function L(e,t){return null!=e&&e.toString?e.toString():undefined!==t?t:""}function z(e){return a(e)&&L(e).indexOf("[native code]")>=0}let D=function(){const e=Object.create(null);return{get:t=>e[t],set(t,n){e[t]=n},has:t=>t in e,keys:()=>Object.keys(e)}};z(Object.create)||(D=function(){const e={};return{get:t=>e.hasOwnProperty(t)?e[t]:undefined,set(t,n){e[t]=n},has:t=>e.hasOwnProperty(t),keys:()=>Object.keys(e)}});var I=D;function j(e){const t=I();return function(n){const i=t.get(n);if(undefined!==i)return i;const r=e(n);return t.set(n,r),r}}function V(e){const t=I();return function(n,i){let r=t.get(n);if(r){const e=r.get(i);if(e)return e}else r=I(),t.set(n,r);const o=e(n,i);return r.set(i,o),o}}const F=/-([a-z])/gi,H=/\B([A-Z])/g,q=/^[a-z]/,R=j((function(e){return e.replace(F,(function(e,t){return ee(t)}))})),M=j((function(e){return e.replace(H,(function(e,t){return"-"+te(t)}))})),U=j((function(e){return e.replace(q,ee)}));function W(e,t){return O(new Array(t+1),e)}function B(e){return ie(e)?"":e.trim()}function K(e,t,n){return d(n)?t===n?"":e.slice(t,n):e.slice(t)}function Y(e,t,n){return e.indexOf(t,undefined!==n?n:0)}function G(e,t,n){return e.lastIndexOf(t,undefined!==n?n:e.length)}function Z(e,t){return 0===Y(e,t)}function J(e,t){const n=e.length-t.length;return n>=0&&G(e,t)===n}function Q(e,t){return e.charAt(t||0)}function X(e,t){return e.charCodeAt(t||0)}function ee(e){return e.toUpperCase()}function te(e){return e.toLowerCase()}function ne(e,t){return Y(e,t)>=0}function ie(e){return!f(e)||!e.length}var re=Object.freeze({__proto__:null,camelize:R,hyphenate:M,capitalize:U,repeat:W,trim:B,slice:K,indexOf:Y,lastIndexOf:G,startsWith:Z,endsWith:J,charAt:Q,codeAt:X,upper:ee,lower:te,has:ne,falsy:ie});const oe=/\./g,se=/\*/g,ce=/\*\*/g,ae=V((function(e,t){return e===t||Z(e,t+=".")?t.length:-1})),ue=j((function(e){return Y(e,".")<0?[e]:e.split(".")}));function le(e,t){const n=ue(e);for(let e=0,i=n.length-1;e<=i&&false!==t(n[e],e,i);e++);}const fe=V((function(e,t){return e&&t?e+"."+t:e||t})),de=j((function(e){return ne(e,"*")})),pe=j((function(e){return new RegExp(`^${e.replace(oe,"\\.").replace(se,"(\\w+)").replace(ce,"([.\\w]+?)")}$`)})),he=V((function(e,t){const n=e.match(pe(t));return n?n[1]:undefined})),me={value:undefined};function ge(e){return Object.keys(e)}function ye(e,t){for(let n in e)if(false===t(e[n],n))break}function ve(e,t){return ye(t,(function(t,n){e[n]=t})),e}function $e(e,t){return e&&t?ve(ve({},e),t):e||t}function be(e,t){let n=e;return u(e)?t?(n=[],v(e,(function(e,i){n[i]=be(e,t)}))):n=e.slice():l(e)&&(n={},ye(e,(function(e,i){n[i]=t?be(e,t):e}))),n}function xe(e){return a(e.get)?e.get():e}function ke(e,t,n){let i=e;return le(t,(function(e,t,r){if(null==i)return i=undefined,false;{let o=i[e],s=undefined!==o;o&&(o=(n||xe)(o)),t===r?s?(me.value=o,i=me):i=undefined:i=o}})),i}function Te(e,t){return undefined!==e[t]}var we=Object.freeze({__proto__:null,keys:ge,each:ye,extend:ve,merge:$e,copy:be,get:ke,set:function(e,t,n,i){let r=e;le(t,(function(e,t,o){if(t===o)r[e]=n;else if(r[e])r=r[e];else{if(!i)return false;r=r[e]={}}}))},has:Te,falsy:function(e){return!l(e)||u(e)||!ge(e).length}});const Se="undefined"!=typeof console?console:null,_e=t&&/edge|msie|trident/i.test(t.navigator.userAgent)?"":"%c",Ee=Se?_e?function(e,t,n){Se.log(_e+e,n,t)}:function(e,t){Se.log(e,t)}:i;function Ce(){const{logLevel:e}=c;return e>=1&&e<=5?e:s}function Ne(e){return`background-color:${e};border-radius:12px;color:#fff;font-size:10px;padding:3px 6px;`}function Oe(e,t){Ce()<=1&&Ee(t||"Yox debug",e,Ne("#999"))}function Ae(e,t){Ce()<=2&&Ee(t||"Yox info",e,Ne("#2db7f5"))}function Pe(e,t){Ce()<=3&&Ee(t||"Yox warn",e,Ne("#f90"))}function Le(e,t){Ce()<=4&&Ee(t||"Yox error",e,Ne("#ed4014"))}function ze(e,t){if(Ce()<=5)throw new Error(`[${t||"Yox fatal"}]: ${e}`)}var De=Object.freeze({__proto__:null,DEBUG:1,INFO:2,WARN:3,ERROR:4,FATAL:5,debug:Oe,info:Ae,warn:Pe,error:Le,fatal:ze});class Ie{constructor(e){this.ns=e||false,this.listeners={}}fire(e,t,n){let i=this,r=f(e)?i.toEvent(e):e,o=i.listeners[r.type],s=true;if(o){o=o.slice();const e=t&&y.is(t[0])?t[0]:undefined;for(let c=0,a=o.length;c1&&null==t&&Pe(`emitter.off(type, listener) is invoked, but "listener" is ${t}.`)}else n.listeners={},arguments.length>0&&Pe(`emitter.off(type) is invoked, but "type" is ${e}.`)}has(e,t){let n=this.listeners,i=this.toFilter(e,t),r=true,o=function(e){return v(e,(function(e){if(je(i.listener,e)&&Ve(i.ns,e))return r=false})),r};return i.type?n[i.type]&&o(n[i.type]):i.ns&&ye(n,o),!r}toEvent(e){const t={type:e,ns:""};if(this.ns){const n=Y(e,".");n>=0&&(t.type=K(e,0,n),t.ns=K(e,n+1))}return t}toFilter(e,t){let n;if(n=t?a(t)?{listener:t}:t:{},f(n.ns))n.type=e;else{const t=this.toEvent(e);n.type=t.type,n.ns=t.ns}return n}}function je(e,t){return!e||e===t.listener}function Ve(e,t){const{ns:n}=t;return!n||!e||n===e}let Fe;"function"==typeof setImmediate&&z(setImmediate)&&(Fe=setImmediate),Fe="function"==typeof MessageChannel&&z(MessageChannel)?function(e){const t=new MessageChannel;t.port1.onmessage=e,t.port2.postMessage(1)}:setTimeout;var He=Fe;let qe;class Re{constructor(e){this.tasks=[],this.hooks=e||r}static shared(){return qe||(qe=new Re)}append(e,t){const n=this,{tasks:i}=n;k(i,{fn:e,ctx:t}),1===i.length&&He((function(){n.run()}))}prepend(e,t){const n=this,{tasks:i}=n;T(i,{fn:e,ctx:t}),1===i.length&&He((function(){n.run()}))}clear(){this.tasks.length=0}run(){const e=this,{tasks:t,hooks:n}=e,{length:i}=t;if(i){e.tasks=[],n.beforeTask&&n.beforeTask();for(let e=0;e0&&(s=Ke(s,e,"click"===o||"tap"===o))}if(n){if(r.isNative){const t=n.$el;return e.on(t,o,s),function(){e.off(t,o,s)}}return n.on(o,r),function(){n.off(o,r)}}return e.on(t,o,s),function(){e.off(t,o,s)}}function Ge(e,t,n){const i=t.data,o=t.lazy,s=t.events,c=n&&n.events;if(s!==c){const n=t.node,a=t.component,u=i.$event||(i.$event={});if(s){const t=c||r;for(let i in s){const r=s[i],c=t[i];c?r.value!==c.value?(u[i](),u[i]=Ye(e,n,a,o,r)):c.runtime&&r.runtime&&(c.runtime.execute=r.runtime.execute,r.runtime=c.runtime):u[i]=Ye(e,n,a,o,r)}}if(c){const e=s||r;for(let t in c)e[t]||(u[t](),delete u[t])}}}function Ze(e,t){const n=t.data,i=t.events,r=n.$event;if(i&&r)for(let e in i)r[e](),delete r[e];n.$event=undefined}function Je(e,t){return t&&true!==t?Ke(e,t):e}const Qe={set(e,t){e.value=L(t)},sync(e,t,n){n.set(t,e.value)},name:"value"},Xe={set(e,t){e.checked=e.value===L(t)},sync(e,t,n){e.checked&&n.set(t,e.value)},name:"checked"},et={set(e,t){e.checked=u(t)?C(t,e.value,false):!!t},sync(e,t,n){const i=n.get(t);u(i)?e.checked?n.append(t,e.value):n.removeAt(t,w(i,e.value,false)):n.set(t,e.checked)},name:"checked"},tt={set(e,t){v(N(e.options),e.multiple?function(e){e.selected=C(t,e.value,false)}:function(n,i){if(n.value==t)return e.selectedIndex=i,false})},sync(e,t,n){const{options:i}=e;if(e.multiple){const e=[];v(N(i),(function(t){t.selected&&k(e,t.value)})),n.set(t,e)}else n.set(t,i[e.selectedIndex].value)},name:"value"};function nt(e,t,n,i){let r,o,{context:s,model:c,lazy:a,nativeAttrs:u}=i,{keypath:l,value:f}=c,d=a&&(a.model||a[""]);if(n){let e=n.$model,t=Je((function(e){s.set(l,e)}),d);r=function(t){r&&n.set(e,t)},o=function(){n.unwatch(e,t)},n.watch(e,t)}else{let n="select"===i.tag?tt:Qe,c="change";if(n===Qe){const e=u&&u.type;"radio"===e?n=Xe:"checkbox"===e?n=et:true!==d&&(c="model")}r=function(e){r&&n.set(t,e)};const a=Je((function(){n.sync(t,l,s)}),d);o=function(){e.off(t,c,a)},e.on(t,c,a),n.set(t,f)}return s.watch(l,r),function(){s.unwatch(l,r),r=undefined,o()}}function it(e,t,n){const i=t.data,r=t.node,o=t.component,s=t.model,c=n&&n.model;s?c?s.keypath!==c.keypath&&(i.$model(),i.$model=nt(e,r,o,t)):i.$model=nt(e,r,o,t):c&&(i.$model(),delete i.$model)}function rt(e,t){const n=t.data;n.$model&&(n.$model(),delete n.$model)}function ot(e,t,n){const{directives:i}=t,o=n&&n.directives;if(i!==o){const e=t.component||t.node;if(i){const s=o||r;for(let r in i){const o=i[r],c=s[r],{bind:a,unbind:u}=o.hooks;c?o.value!==c.value?(u&&u(e,c,n),a(e,o,t)):c.runtime&&o.runtime&&(c.runtime.execute=o.runtime.execute,o.runtime=c.runtime):a(e,o,t)}}if(o){const t=i||r;for(let i in o)if(!t[i]){const{unbind:t}=o[i].hooks;t&&t(e,o[i],n)}}}}function st(e,t){const{directives:n}=t;if(n){const e=t.component||t.node;for(let i in n){const{unbind:r}=n[i].hooks;r&&r(e,n[i],t)}}}function ct(e,t,n){const{component:i,props:r,slots:o}=t;if(i&&n){if(r)for(let e in r)i.checkProp(e,r[e]);let e=r;o&&i.renderSlots(e||(e={}),o),e&&i.forceUpdate(e)}}function at(e,t){if(t.isFragment||t.isSlot){const n=t.children[0];return n?at(e,n):e.createComment("")}return t.node}function ut(e,t,n,i){i?e.before(t,n,i):e.append(t,n)}function lt(e,t,n){const i=n.node;t.node=i,t.parentNode=n.parentNode,t.text!==n.text&&e.setText(i,t.text,t.isStyle,t.isOption)}function ft(e){e.data&&jt(e,e.node)}function dt(e,t){e.data&&Vt(e,e.node,t)||t()}function pt(e,t,n,i){i?e.before(t,n.node,i.node):e.append(t,n.node)}function ht(e,t){e.remove(t.parentNode,t.node)}function mt(e,t){t()}function gt(e,t){v(t.children,(function(t){At(e,t)}))}function yt(e,t,n,i){Ft(e,t,n.children,i.children)}function vt(e,t){v(t.children,(function(t){Dt(e,t)}))}function $t(e,t,n,i){v(n.children,(function(n){Lt(e,t,n,i)}))}function bt(e,t){v(t.children,(function(t){It(e,t)}))}const xt={create(e,t){t.node=e.createText(t.text)},update:lt,destroy:i,insert:pt,remove:ht,enter:i,leave:mt},kt={create(e,t){t.node=e.createComment(t.text)},update:lt,destroy:i,insert:pt,remove:ht,enter:i,leave:mt},Tt={create(e,t){const n=t.node=e.createElement(t.tag,t.isSvg);t.children?Pt(e,n,t.children):t.text?e.setText(n,t.text,t.isStyle,t.isOption):t.html&&e.setHtml(n,t.html,t.isStyle,t.isOption),Me(e,t),Ue(e,t),t.isPure||(t.data={},We(0,t),Ge(e,t),it(e,t),ot(0,t))},update(e,t,n){const i=n.node;t.node=i,t.parentNode=n.parentNode,t.data=n.data,Me(e,t,n),Ue(e,t,n),t.isPure||(We(0,t,n),Ge(e,t,n),it(e,t,n),ot(0,t,n));const{text:r,html:o,children:s,isStyle:c,isOption:a}=t,u=n.text,l=n.html,d=n.children;f(r)?(d&&zt(e,d),r!==u&&e.setText(i,r,c,a)):f(o)?(d&&zt(e,d),o!==l&&e.setHtml(i,o,c,a)):s?d?s!==d&&Ft(e,i,s,d):((u||l)&&e.setText(i,"",c),Pt(e,i,s)):d?zt(e,d):(u||l)&&e.setText(i,"",c)},destroy(e,t){t.isPure||(Be(0,t),Ze(0,t),rt(0,t),st(0,t),t.children&&v(t.children,(function(t){Dt(e,t)})))},insert:pt,remove:ht,enter:ft,leave:dt},wt={create(e,t){const n=t.data={};let i=undefined;t.tag&&t.context.loadComponent(t.tag,(function(r){Te(n,"$loading")?n.$loading&&(n.$vnode&&(t=n.$vnode,delete n.$vnode),Ot(e,t,r),t.operator.enter(t)):i=r})),t.node=e.createComment("component"),i?Ot(e,t,i):n.$loading=true},update(e,t,n){const i=n.data;t.data=i,t.node=n.node,t.parentNode=n.parentNode,t.component=n.component,i.$loading?i.$vnode=t:(We(0,t,n),Ge(e,t,n),it(e,t,n),ot(0,t,n),ct(0,t,n))},destroy(e,t){t.component?(Be(0,t),Ze(0,t),rt(0,t),st(0,t),function(e,t){const{component:n}=t;n&&(n.destroy(),t.shadow=n.$vnode,t.component=void 0)}(0,t)):t.data.$loading=false},insert(e,t,n,i){const{shadow:r}=n;r?(r.operator.insert(e,t,r,i),r.parentNode=t):pt(e,t,n,i)},remove(e,t){const{shadow:n}=t;n?(n.operator.remove(e,n),n.parentNode=undefined):ht(e,t)},enter(e){const{shadow:t}=e;t&&(e.transition?jt(e,t.node):t.operator.enter(t))},leave(e,t){const{shadow:n}=e;if(n){if(!e.transition)return void n.operator.leave(n,t);if(Vt(e,n.node,t))return}t()}},St={create(e,t){gt(e,t),t.node=at(e,t)},update(e,t,n){const{parentNode:i}=n;t.node=n.node,t.parentNode=i,yt(e,i,t,n)},destroy:vt,insert:$t,remove:bt,enter:i,leave:mt},_t={create(e,t){let n=undefined;t.to&&(n=e.find(t.to),n||ze(`Failed to locate portal target with selector "${t.to}".`)),n||(n=e.getBodyElement()),t.target=n,t.node=e.createComment(""),v(t.children,(function(t){At(e,t),Lt(e,n,t)}))},update(e,t,n){const{target:i}=n;t.node=n.node,t.parentNode=n.parentNode,t.target=i,yt(e,i,t,n)},destroy(e,t){v(t.children,(function(t){Dt(e,t),It(e,t)}))},insert:pt,remove:ht,enter:i,leave:mt},Et={create(e,t){gt(e,t),t.data={},t.node=at(e,t),We(0,t),Ge(e,t)},update(e,t,n){const{parentNode:i}=n;t.node=n.node,t.parentNode=i,t.data=n.data,We(0,t,n),Ge(e,t,n),yt(e,i,t,n)},destroy(e,t){Be(0,t),Ze(0,t),vt(e,t)},insert:$t,remove:bt,enter:ft,leave:dt};function Ct(e,t){return e.type===t.type&&e.tag===t.tag&&e.key===t.key}function Nt(e,t,n){let i,o,s;for(;t<=n;)o=e[t],o&&(s=o.key)&&(i||(i={}),i[s]=t),t++;return i||r}function Ot(e,t,n){const i=t.data,r=(t.parent||t.context).createComponent(n,t);return t.component=r,t.shadow=r.$vnode,i.$loading=false,We(0,t),Ge(e,t),it(e,t),ot(0,t),ct(0,t),r}function At(e,t){t.node||t.operator.create(e,t)}function Pt(e,t,n,i,r,o){let s,c=i||0,a=undefined!==r?r:n.length-1;for(;c<=a;)s=n[c],At(e,s),Lt(e,t,s,o),c++}function Lt(e,t,n,i){const{operator:r}=n;r.insert(e,t,n,i),n.parentNode=t,r.enter(n)}function zt(e,t,n,i){let r,o=n||0,s=undefined!==i?i:t.length-1;for(;o<=s;)r=t[o],r&&(Dt(e,r),It(e,r)),o++}function Dt(e,t){t.operator.destroy(e,t)}function It(e,t){const{operator:n}=t;n.leave(t,(function(){n.remove(e,t),t.parentNode=undefined}))}function jt(e,t){const{context:n,transition:i}=e,r=e.data.$leaving;if(r&&r(),i){const{enter:e}=i;e&&e.call(n,t)}}function Vt(e,t,n){const{context:i,transition:r}=e,o=e.data,s=o.$leaving;if(s&&s(),r){const{leave:e}=r;if(e)return e.call(i,t,o.$leaving=function(){o.$leaving&&(n(),o.$leaving=undefined)}),true}}function Ft(e,t,n,i){let r,o,s=0,c=n.length-1,a=n[s],u=n[c],l=0,f=i.length-1,d=i[l],p=i[f];for(;l<=f&&s<=c;)a?u?d?p?Ct(a,d)?(Ht(e,a,d),a=n[++s],d=i[++l]):Ct(u,p)?(Ht(e,u,p),u=n[--c],p=i[--f]):Ct(u,d)?(Ht(e,u,d),ut(e,t,d.node,e.next(p.node)),u=n[--c],d=i[++l]):Ct(a,p)?(Ht(e,a,p),ut(e,t,p.node,d.node),a=n[++s],p=i[--f]):(r||(r=Nt(i,l,f)),o=a.key?r[a.key]:undefined,undefined!==o?(qt(e,a,i[o]),i[o]=undefined):At(e,a),Lt(e,t,a,d),a=n[++s]):p=i[--f]:d=i[++l]:u=n[--c]:a=n[++s];l>f?Pt(e,t,n,s,c,n[c+1]):s>c&&zt(e,i,l,f)}function Ht(e,t,n){t!==n&&t.operator.update(e,t,n)}function qt(e,t,n){if(t!==n){if(!Ct(t,n)){const i=n.parentNode;return At(e,t),void(i&&(Lt(e,i,t,n),Dt(e,n),It(e,n)))}Ht(e,t,n)}}const Rt={},Mt={},Ut={},Wt={};function Bt(e,t){return Mt[t.name]||"portal"===e.tag&&"to"===t.name||"slot"===e.tag&&"name"===t.name||"vnode"===e.tag&&"value"===t.name}function Kt(e,t){const n=e.split(";");for(let e=0,i=n.length;e0){const e=B(i.substr(0,r)),n=B(i.substr(r+1));e&&n&&t(R(e),n)}}}Rt.slot=Rt.vnode=Rt.portal=Rt.fragment=Rt.template=Mt.key=Mt.ref=Mt.slot=true,Ut["if"]=6,Ut.each=9,Ut.partial=10,Wt.fragment=5,Wt.portal=6,Wt.slot=7;function Yt(e,t){return{type:2,isStatic:true,name:e,ns:t}}function Gt(e,t,n){return{type:3,ns:t,name:e,modifier:n}}function Zt(e,t,n,i){return{type:9,from:e,to:t,equal:n||undefined,index:i,isVirtual:true}}function Jt(e){return{type:5,text:e,isStatic:true,isLeaf:true}}function Qt(e){const t=Object.create(null);return v(e.split(","),(function(e){t[e]=true})),t}const Xt=/^[A-Z]|-/,en=/&[#\w\d]{2,6};/,tn=Qt("area,base,embed,track,source,param,input,col,img,br,hr"),nn=Qt("svg,g,defs,desc,metadata,symbol,use,image,path,rect,circle,line,ellipse,polyline,polygon,text,tspan,tref,textpath,marker,pattern,clippath,mask,filter,cursor,view,animate,font,font-face,glyph,missing-glyph,animateColor,animateMotion,animateTransform,textPath,foreignObject"),rn=Qt("min,minlength,max,maxlength,step,size,rows,cols,tabindex,colspan,rowspan,frameborder"),on=Qt("disabled,checked,required,multiple,readonly,autofocus,autoplay,controls,loop,muted,novalidate,draggable,contenteditable,hidden,spellcheck");function sn(e,t,n){return e.isComponent?Yt(R(t),n):"style"===t?{type:4,isStatic:!0}:Yt(t,n)}function cn(e,t){return an(e)?ln(e,t):un(e)?fn(e,t):t}function an(e){return rn[e]}function un(e){return on[e]}function ln(e,t){return h(t)||Pe(`The value of "${e}" is not a number: ${t}.`),L(t)}function fn(e,t){return true===t||"true"===t||t===e?"true":false===t||"false"===t?"false":void 0}function dn(e){if(1!==e.type)return false;const t=e;return!t.isComponent&&undefined===Rt[t.tag]}function pn(e,t){return f(t)&&en.test(t)?e.html=t:e.text=t,true}function hn(e){return undefined!==e}function mn(e,t,n,i){return{type:5,raw:i,left:e,operator:t,right:n}}function gn(e,t,n){let i=false,r=true,o=0;return"this"===t?(t="",r=false):".."===t?(t="",r=false,o=1):"~"===t&&(t="",i=true,r=false),n?yn(t,e):$n(e,t,i,r,o)}function yn(e,t){return{type:1,raw:t,value:e}}function vn(e,t){let n=t.shift(),i=false,r=true,o=0;if(t.length>0){let s=true,c=[],a="",u=[];if(v(t,(function(e){if(s)if(1===e.type){const t=e;if(".."===t.raw)return o+=1,void(a=a?a+"/..":"..");if("this"!==t.raw){const e=L(t.value);k(c,e),a&&(a+=J(a,"..")?"/":"."),a+=e}}else s=false;s||k(u,e)})),2===n.type){const t=n;i=t.root,r=t.lookup,o+=t.offset;let l=t.name;if(l&&T(c,l),l=O(c,"."),s)n=$n(e,l,i,r,o,c);else{let s=t.raw;if(a){let e=".";"~"!==s&&".."!==s||(e="/"),s+=e+a}n=bn(e,$n(s,l,i,r,o,c),undefined,u,i,r,o)}}else n=s?bn(e,n,O(c,"."),undefined,i,r,o):bn(e,n,undefined,u,i,r,o)}return n}function $n(e,t,n,i,r,o){return{type:2,raw:e,name:t,root:n,lookup:i,offset:r,literals:o&&o.length>1?o:undefined}}function bn(e,t,n,i,r,o,s){return{type:3,raw:e,lead:t,keypath:n,nodes:i,root:r,lookup:o,offset:s}}const xn={"+":true,"-":true,"~":true,"!":true,"!!":true},kn={"*":15,"/":15,"%":15,"+":14,"-":14,"<<":13,">>":13,">>>":13,"<":12,"<=":12,">":12,">=":12,"==":11,"!=":11,"===":11,"!==":11,"&":10,"^":9,"|":8,"&&":7,"||":6};class Tn{constructor(e){const t=this;t.index=-1,t.end=e.length,t.code=wn,t.content=e,t.go()}go(e){let t=this,{index:n,end:i}=t;n+=e||1,n>=0&&n0)),n.is(En);){if(n.go(),ni(n.code))return k(i,n.scanIdentifier(n.index,true)),n.scanTail(e,i);if(!n.is(Sn)){n.fatal(e,S(i).raw+"/ must be followed by an identifier.");break}n.go()}}scanTail(e,t){let n,i=this;e:for(;;)switch(i.code){case An:t=[(r=vn(i.pick(e),t),o=i.scanTuple(i.index,Pn),s=i.pick(e),{type:9,raw:s,name:r,args:o})];break;case Sn:if(i.go(),ni(i.code)){k(t,i.scanIdentifier(i.index,true));break}i.fatal(e,"Identifier or number expected.");break e;case Ln:if(i.go(),n=i.scanTernary(zn),n){k(t,n);break}i.fatal(e,"[] is not allowed.");break e;default:break e}var r,o,s;return vn(i.pick(e),t)}scanIdentifier(e,t){const n=this;for(;ni(n.code);)n.go();const i=n.pick(e);return!t&&i in Qn?yn(Qn[i],i):gn(i,i,t)}scanOperator(e){const t=this;switch(t.code){case Rn:case Mn:case Un:case Kn:case qn:t.go();break;case Fn:t.go(),t.is(Fn)&&t.fatal(e,'The operator "++" is not supported.');break;case Hn:t.go(),t.is(Hn)&&t.fatal(e,'The operator "--" is not supported.');break;case Yn:t.go(),t.is(Yn)?t.go():t.is(Zn)&&(t.go(),t.is(Zn)&&t.go());break;case Wn:t.go(),t.is(Wn)&&t.go();break;case Bn:t.go(),t.is(Bn)&&t.go();break;case Zn:t.go(),t.is(Zn)?(t.go(),t.is(Zn)&&t.go()):t.fatal(e,"Assignment statements are not supported.");break;case Gn:t.go(),(t.is(Zn)||t.is(Gn))&&t.go();break;case Jn:t.go(),t.is(Zn)?t.go():t.is(Jn)&&(t.go(),t.is(Jn)&&t.go())}if(t.index>e)return t.pick(e)}scanBinary(e){let t,n,i,r,o,s,c=this,a=[];for(;;){if(c.skip(),k(a,c.index),t=c.scanToken(),t){if(k(a,t),k(a,c.index),c.skip(),i=c.scanOperator(c.index),i&&(r=kn[i])){n=a.length-4,(o=a[n])&&(s=kn[o])&&s>=r&&a.splice(n-2,5,mn(a[n-2],o,a[n+2],c.pick(a[n-3],a[n+3]))),k(a,i);continue}i=undefined}else i&&c.fatal(e,"Invalid syntax.");break}for(;;){if(!(a.length>=7))return a[1];n=a.length-4,a.splice(n-2,5,mn(a[n-2],a[n],a[n+2],c.pick(a[n-3],a[n+3])))}}scanTernary(e){const t=this;t.skip();let n,i,r=t.index,o=t.scanBinary(r);return t.is(jn)&&(t.go(),n=t.scanTernary(),t.is(Vn)&&(t.go(),i=t.scanTernary()),o&&n&&i?(t.skip(-1),o=function(e,t,n,i){return{type:6,raw:i,test:e,yes:t,no:n}}(o,n,i,t.pick(r))):t.fatal(r,"Invalid ternary syntax.")),hn(e)&&(t.skip(),t.is(e)?t.go():t.fatal(r,`"${String.fromCharCode(e)}" expected, "${String.fromCharCode(t.code)}" actually.`)),o}fatal(e,t){ze(`Error compiling expression\n\n${this.content}\n\nmessage: ${t}\n`)}}const wn=0,Sn=46,_n=44,En=47,Cn=92,Nn=39,On=34,An=40,Pn=41,Ln=91,zn=93,Dn=123,In=125,jn=63,Vn=58,Fn=43,Hn=45,qn=42,Rn=47,Mn=37,Un=126,Wn=38,Bn=124,Kn=94,Yn=33,Gn=60,Zn=61,Jn=62,Qn={};function Xn(e){return e>0&&e<33||160===e}function ei(e){return e>47&&e<58}function ti(e){return 36===e||95===e||e>96&&e<123||e>64&&e<91}function ni(e){return ti(e)||ei(e)}Qn["true"]=true,Qn["false"]=false,Qn["null"]=null,Qn[void 0]=undefined;const ii=j((function(e){return new Tn(e).scanTernary(wn)})),ri={},oi=/\s*:\s*([_$a-z]+)$/i,si=/^[_$a-z]([\w]+)?$/i,ci=/^[_$a-z]([\w]+)?$/i,ai=/^[_$a-z]([\w]+)?\.[_$a-z]([\w]+)?$/i,ui=/^\s*[\n\r]\s*|\s*[\n\r]\s*$/g,li=/\s*(=>|->)\s*/,fi=/<(\/)?([$a-z][-a-z0-9]*)/i,di=//g,pi=/^([\s\S]*?)([\s\S]*?)$/,mi=/^\s*([-$.:\w]+)(?:=(['"]))?/,gi=/^[!=]*['"]/,yi=/^\s*(\/)?>/;function vi(e,t){return B(K(e,t.length))}function $i(e){if(e.safe&&1===e.expr.type)return Jt(L(e.expr.value))}function bi(e){return e&&12===e.type&&!e.safe}function xi(e){let t=-1,n="",i=-1,r="";v(e,(function(o,s){if(5===o.type)if(i>=0){for(n=o.text;pi.test(n);)n=RegExp.$1,t=s;if(t>=0){let o=t,s=i;n&&(e[t].text=n,o++),r&&(n?e[t].text+=r:(e[i].text=r,s--)),e.splice(o,s-o+1),t=i=-1}}else for(r=o.text;hi.test(r);)r=RegExp.$1,i=s}),true)}function ki(t){let n,i,r,o,s=W(c.leftDelimiter,2),a=W(c.rightDelimiter,2),u=c.leftDelimiter,l=c.rightDelimiter,f=[],p=[],h=[],m=[],g=[],y=[],$=t.length,b=0,x=0,T=0,E=0,C=1,N=[],O=[],A=function(e){ze(`Error compiling template\n\n${t}\n\nmessage: ${e}`)},P=function(e){const t=S(p);if(t&&1===t.type){const i=t;i.tag!==e&&(n=i.tag,void 0!==tn[n])&&L(i.type,i.tag)}var n},L=function(e,t){const i=_(p);i&&i.type===e||A("The type of poping node is not expected.");const r=i,o=1===e,s=2===e,c=4===e,a=3===e,u=S(p);o&&t&&r.tag!==t&&A(`End tag is "${t}",but start tag is "${r.tag}".`);let{children:l}=r;if(l&&l.length>1&&(n||(xi(l),l.length||(l=r.children=undefined))),l){const e=1===l.length&&l[0];if(e)switch(e.type){case 5:o?z(r,e):n&&(s?F(n,r,e):c?j(n,r,e):a&&M(n,r,e));break;case 12:o?D(r,e):n&&(s||c||a)&&H(n,r,e)}}else n&&(s?V(n,r):c?I(n,r):a&&q(n,r));return r.isVirtual&&!r.children&&X(r),o?G(r):n&&s&&J(n,r),u&&u.isStatic&&!r.isStatic&&(u.isStatic=false),r},z=function(e,t){dn(e)&&pn(e,t.text)&&(e.children=undefined)},D=function(e,t){dn(e)&&(t.safe&&pn(e,t.expr)||!t.safe&&function(e,t){return e.html=t,!0}(e,t.expr))&&(e.children=undefined)},I=function(e,t){X(t)},j=function(e,t,n){n.text?(t.value=n.text,t.children=undefined):X(t)},V=function(e,t){Bt(e,t)?A(`The value of "${t.name}" is empty.`):t.value=function(e,t){return!!e.isComponent||(an(t)?void 0:un(t)?"true":"")}(e,t.name)},F=function(e,t,n){t.value=e.isComponent?n.text:cn(t.name,n.text),t.children=undefined},H=function(e,t,n){const{expr:i}=n;if(1===i.type){let n=i.value;e.isComponent||2!==t.type||(n=cn(t.name,n)),t.value=n}else t.expr=i;t.children=undefined},q=function(e,t){t.value=true},M=function(e,t,i){let r,o,{ns:s}=t,{text:c}=i,a="model"===s,u="lazy"===s,l="event"===s,f="o"===s;try{r=ii(c)}catch(p){o=p}if(r){{const{raw:e}=r;if(u)(1!==r.type||!d(r.value)||r.value<=0)&&A("The value of lazy must be a number greater than 0.");else if(9===r.type){const e=r.name;2!==e.type?A("Invalid method name."):si.test(e.name)||A("Invalid method name.")}else l&&(ci.test(e)||ai.test(e)?(ai.test(e)&&"native"===e.split(".")[1]&&A('The event namespace "native" is not permitted.'),n&&n.isComponent&&t.name===e&&A("The event name listened and fired can't be the same.")):A("The event name and namespace must be an identifier."));a&&2!==r.type&&A("The value of the model must be an identifier.")}t.expr=r,t.value=1===r.type?r.value:c}else{if(!f)throw o;t.value=c}t.children=undefined},U=function(e){let t=e,n=[],i=false,r=false;for(;k(n,t),t.next;)t=t.next;v(n,(function(e){e.children&&(!i&&e.next&&delete e.next,r=i=true)}),true),r||X(e)},G=function(e){const{tag:t,slot:n}=e,i="template"===t,r="fragment"===t,o="portal"===t,s="vnode"===t;i?e.key?A('The "key" attribute is not supported in