@tko/provider.mustache 4.0.0-beta1.5 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AttributeMustacheProvider.js +19 -20
- package/dist/AttributeMustacheProvider.js.map +2 -2
- package/dist/TextMustacheProvider.js +16 -9
- package/dist/TextMustacheProvider.js.map +2 -2
- package/dist/index.cjs +717 -415
- package/dist/index.cjs.map +4 -4
- package/dist/index.js +4 -10
- package/dist/index.js.map +2 -2
- package/dist/index.mjs +4 -10
- package/dist/index.mjs.map +2 -2
- package/dist/mustacheParser.js +6 -8
- package/dist/mustacheParser.js.map +2 -2
- package/package.json +7 -8
- package/LICENSE +0 -22
- package/helpers/jasmine-interpolation-helpers.ts +0 -31
package/dist/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../index.ts", "../../utils/dist/array.js", "../../utils/dist/options.js", "../../utils/dist/error.js", "../../utils/dist/async.js", "../../utils/dist/
|
|
4
|
-
"sourcesContent": ["export * from './src'\n", "\"use strict\";\n// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nconst { isArray } = Array;\nexport function arrayForEach(array, action, thisArg) {\n if (arguments.length > 2) {\n action = action.bind(thisArg);\n }\n for (let i = 0, j = array.length; i < j; ++i) {\n action(array[i], i, array);\n }\n}\nexport function arrayIndexOf(array, item) {\n return (isArray(array) ? array : [...array]).indexOf(item);\n}\nexport function arrayFirst(array, predicate, predicateOwner) {\n return (isArray(array) ? array : [...array]).find(predicate, predicateOwner);\n}\nexport function arrayMap(array = [], mapping, thisArg) {\n if (arguments.length > 2) {\n mapping = mapping.bind(thisArg);\n }\n return array === null ? [] : Array.from(array, mapping);\n}\nexport function arrayRemoveItem(array, itemToRemove) {\n var index = arrayIndexOf(array, itemToRemove);\n if (index > 0) {\n array.splice(index, 1);\n } else if (index === 0) {\n array.shift();\n }\n}\nexport function arrayGetDistinctValues(array = []) {\n const seen = /* @__PURE__ */ new Set();\n if (array === null) {\n return [];\n }\n return (isArray(array) ? array : [...array]).filter((item) => seen.has(item) ? false : seen.add(item));\n}\nexport function arrayFilter(array, predicate, thisArg) {\n if (arguments.length > 2) {\n predicate = predicate.bind(thisArg);\n }\n return array === null ? [] : (isArray(array) ? array : [...array]).filter(predicate);\n}\nexport function arrayPushAll(array, valuesToPush) {\n if (isArray(valuesToPush)) {\n array.push.apply(array, valuesToPush);\n } else {\n for (var i = 0, j = valuesToPush.length; i < j; i++) {\n array.push(valuesToPush[i]);\n }\n }\n return array;\n}\nexport function addOrRemoveItem(array, value, included) {\n var existingEntryIndex = arrayIndexOf(typeof array.peek === \"function\" ? array.peek() : array, value);\n if (existingEntryIndex < 0) {\n if (included) {\n array.push(value);\n }\n } else {\n if (!included) {\n array.splice(existingEntryIndex, 1);\n }\n }\n}\nexport function makeArray(arrayLikeObject) {\n return Array.from(arrayLikeObject);\n}\nexport function range(min, max) {\n min = typeof min === \"function\" ? min() : min;\n max = typeof max === \"function\" ? max() : max;\n var result = [];\n for (var i = min; i <= max; i++) {\n result.push(i);\n }\n return result;\n}\nexport function findMovesInArrayComparison(left, right, limitFailedCompares) {\n if (left.length && right.length) {\n var failedCompares, l, r, leftItem, rightItem;\n for (failedCompares = l = 0; (!limitFailedCompares || failedCompares < limitFailedCompares) && (leftItem = left[l]); ++l) {\n for (r = 0; rightItem = right[r]; ++r) {\n if (leftItem.value === rightItem.value) {\n leftItem.moved = rightItem.index;\n rightItem.moved = leftItem.index;\n right.splice(r, 1);\n failedCompares = r = 0;\n break;\n }\n }\n failedCompares += r;\n }\n }\n}\nconst statusNotInOld = \"added\";\nconst statusNotInNew = \"deleted\";\nexport function compareArrays(oldArray, newArray, options) {\n options = typeof options === \"boolean\" ? { dontLimitMoves: options } : options || {};\n oldArray = oldArray || [];\n newArray = newArray || [];\n if (oldArray.length < newArray.length) {\n return compareSmallArrayToBigArray(oldArray, newArray, statusNotInOld, statusNotInNew, options);\n } else {\n return compareSmallArrayToBigArray(newArray, oldArray, statusNotInNew, statusNotInOld, options);\n }\n}\nfunction compareSmallArrayToBigArray(smlArray, bigArray, statusNotInSml, statusNotInBig, options) {\n var myMin = Math.min, myMax = Math.max, editDistanceMatrix = [], smlIndex, smlIndexMax = smlArray.length, bigIndex, bigIndexMax = bigArray.length, compareRange = bigIndexMax - smlIndexMax || 1, maxDistance = smlIndexMax + bigIndexMax + 1, thisRow, lastRow, bigIndexMaxForRow, bigIndexMinForRow;\n for (smlIndex = 0; smlIndex <= smlIndexMax; smlIndex++) {\n lastRow = thisRow;\n editDistanceMatrix.push(thisRow = []);\n bigIndexMaxForRow = myMin(bigIndexMax, smlIndex + compareRange);\n bigIndexMinForRow = myMax(0, smlIndex - 1);\n for (bigIndex = bigIndexMinForRow; bigIndex <= bigIndexMaxForRow; bigIndex++) {\n if (!bigIndex) {\n thisRow[bigIndex] = smlIndex + 1;\n } else if (!smlIndex) {\n thisRow[bigIndex] = bigIndex + 1;\n } else if (smlArray[smlIndex - 1] === bigArray[bigIndex - 1]) {\n thisRow[bigIndex] = lastRow[bigIndex - 1];\n } else {\n var northDistance = lastRow[bigIndex] || maxDistance;\n var westDistance = thisRow[bigIndex - 1] || maxDistance;\n thisRow[bigIndex] = myMin(northDistance, westDistance) + 1;\n }\n }\n }\n var editScript = [], meMinusOne, notInSml = [], notInBig = [];\n for (smlIndex = smlIndexMax, bigIndex = bigIndexMax; smlIndex || bigIndex; ) {\n meMinusOne = editDistanceMatrix[smlIndex][bigIndex] - 1;\n if (bigIndex && meMinusOne === editDistanceMatrix[smlIndex][bigIndex - 1]) {\n notInSml.push(editScript[editScript.length] = {\n \"status\": statusNotInSml,\n \"value\": bigArray[--bigIndex],\n \"index\": bigIndex\n });\n } else if (smlIndex && meMinusOne === editDistanceMatrix[smlIndex - 1][bigIndex]) {\n notInBig.push(editScript[editScript.length] = {\n \"status\": statusNotInBig,\n \"value\": smlArray[--smlIndex],\n \"index\": smlIndex\n });\n } else {\n --bigIndex;\n --smlIndex;\n if (!options.sparse) {\n editScript.push({\n \"status\": \"retained\",\n \"value\": bigArray[bigIndex]\n });\n }\n }\n }\n findMovesInArrayComparison(notInBig, notInSml, !options.dontLimitMoves && smlIndexMax * 10);\n return editScript.reverse();\n}\n", "\"use strict\";\n// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nconst options = {\n deferUpdates: false,\n useOnlyNativeEvents: false,\n protoProperty: \"__ko_proto__\",\n defaultBindingAttribute: \"data-bind\",\n allowVirtualElements: true,\n bindingGlobals: /* @__PURE__ */ Object.create(null),\n bindingProviderInstance: null,\n createChildContextWithAs: false,\n jQuery: globalThis.jQuery,\n Promise: globalThis.Promise,\n taskScheduler: null,\n debug: false,\n global: globalThis,\n document: globalThis.document,\n filters: {},\n includeDestroyed: false,\n foreachHidesDestroyed: false,\n onError: function(e) {\n throw e;\n },\n set: function(name, value) {\n options[name] = value;\n },\n getBindingHandler() {\n },\n cleanExternalData() {\n }\n};\nObject.defineProperty(options, \"$\", {\n get: function() {\n return options.jQuery;\n }\n});\nexport default options;\n", "\"use strict\";\n// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport options from \"./options\";\nexport function catchFunctionErrors(delegate) {\n if (!options.onError) {\n return delegate;\n }\n return (...args) => {\n try {\n return delegate(...args);\n } catch (err) {\n options.onError(err);\n }\n };\n}\nexport function deferError(error) {\n safeSetTimeout(function() {\n throw error;\n }, 0);\n}\nexport function safeSetTimeout(handler, timeout) {\n return setTimeout(catchFunctionErrors(handler), timeout);\n}\n", "\"use strict\";\n// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { safeSetTimeout } from \"./error\";\nexport function throttle(callback, timeout) {\n var timeoutInstance;\n return function(...args) {\n if (!timeoutInstance) {\n timeoutInstance = safeSetTimeout(function() {\n timeoutInstance = void 0;\n callback(...args);\n }, timeout);\n }\n };\n}\nexport function debounce(callback, timeout) {\n var timeoutInstance;\n return function(...args) {\n clearTimeout(timeoutInstance);\n timeoutInstance = safeSetTimeout(() => callback(...args), timeout);\n };\n}\n", "\"use strict\";\n// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport options from \"./options\";\nconst ieVersion = options.document && function() {\n var version = 3, div = options.document.createElement(\"div\"), iElems = div.getElementsByTagName(\"i\");\n while (div.innerHTML = \"<!--[if gt IE \" + ++version + \"]><i></i><![endif]-->\", iElems[0]) {\n }\n if (!version) {\n const userAgent = window.navigator.userAgent;\n return ua.match(/MSIE ([^ ]+)/) || ua.match(/rv:([^ )]+)/);\n }\n return version > 4 ? version : void 0;\n}();\nconst isIe6 = ieVersion === 6;\nconst isIe7 = ieVersion === 7;\nexport { ieVersion, isIe6, isIe7 };\n", "\"use strict\";\n// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nexport function hasOwnProperty(obj, propName) {\n return Object.prototype.hasOwnProperty.call(obj, propName);\n}\nexport function isObjectLike(obj) {\n if (obj === null) {\n return false;\n }\n return typeof obj === \"object\" || typeof obj === \"function\";\n}\nexport function extend(target, source) {\n if (source) {\n for (var prop in source) {\n if (hasOwnProperty(source, prop)) {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nexport function objectForEach(obj, action) {\n for (var prop in obj) {\n if (hasOwnProperty(obj, prop)) {\n action(prop, obj[prop]);\n }\n }\n}\nexport function objectMap(source, mapping, thisArg) {\n if (!source) {\n return source;\n }\n if (arguments.length > 2) {\n mapping = mapping.bind(thisArg);\n }\n var target = {};\n for (var prop in source) {\n if (hasOwnProperty(source, prop)) {\n target[prop] = mapping(source[prop], prop, source);\n }\n }\n return target;\n}\nexport function getObjectOwnProperty(obj, propName) {\n return hasOwnProperty(obj, propName) ? obj[propName] : void 0;\n}\nexport function clonePlainObjectDeep(obj, seen) {\n if (!seen) {\n seen = [];\n }\n if (!obj || typeof obj !== \"object\" || obj.constructor !== Object || seen.indexOf(obj) !== -1) {\n return obj;\n }\n seen.push(obj);\n var result = {};\n for (var prop in obj) {\n if (hasOwnProperty(obj, prop)) {\n result[prop] = clonePlainObjectDeep(obj[prop], seen);\n }\n }\n return result;\n}\nexport function safeStringify(value) {\n const seen = /* @__PURE__ */ new Set();\n return JSON.stringify(value, (k, v) => {\n if (seen.has(v)) {\n return \"...\";\n }\n if (typeof v === \"object\") {\n seen.add(v);\n }\n return v;\n });\n}\nexport function isThenable(object) {\n return isObjectLike(object) && typeof object.then === \"function\";\n}\n", "\"use strict\";\n// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nfunction testOverwrite() {\n try {\n Object.defineProperty(function x() {\n }, \"length\", {});\n return true;\n } catch (e) {\n return false;\n }\n}\nexport const functionSupportsLengthOverwrite = testOverwrite();\nexport function overwriteLengthPropertyIfSupported(fn, descriptor) {\n if (functionSupportsLengthOverwrite) {\n Object.defineProperty(fn, \"length\", descriptor);\n }\n}\n", "\"use strict\";\n// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport options from \"./options\";\nexport var jQueryInstance = options.global && options.global.jQuery;\nexport function jQuerySetInstance(jquery) {\n options.jQuery = jQueryInstance = jquery;\n}\n", "\"use strict\";\n// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { arrayFirst } from \"../array\";\nexport function domNodeIsContainedBy(node, containedByNode) {\n if (node === containedByNode) {\n return true;\n }\n if (node.nodeType === 11) {\n return false;\n }\n if (containedByNode.contains) {\n return containedByNode.contains(node.nodeType !== 1 ? node.parentNode : node);\n }\n if (containedByNode.compareDocumentPosition) {\n return (containedByNode.compareDocumentPosition(node) & 16) == 16;\n }\n while (node && node != containedByNode) {\n node = node.parentNode;\n }\n return !!node;\n}\nexport function domNodeIsAttachedToDocument(node) {\n return domNodeIsContainedBy(node, node.ownerDocument.documentElement);\n}\nexport function anyDomNodeIsAttachedToDocument(nodes) {\n return !!arrayFirst(nodes, domNodeIsAttachedToDocument);\n}\nexport function tagNameLower(element) {\n return element && element.tagName && element.tagName.toLowerCase();\n}\nexport function isDomElement(obj) {\n if (window.HTMLElement) {\n return obj instanceof HTMLElement;\n } else {\n return obj && obj.tagName && obj.nodeType === 1;\n }\n}\nexport function isDocumentFragment(obj) {\n if (window.DocumentFragment) {\n return obj instanceof DocumentFragment;\n } else {\n return obj && obj.nodeType === 11;\n }\n}\n", "\"use strict\";\n// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { ieVersion } from \"../ie\";\nconst datastoreTime = new Date().getTime();\nconst dataStoreKeyExpandoPropertyName = `__ko__${datastoreTime}`;\nconst dataStoreSymbol = Symbol(\"Knockout data\");\nvar dataStore;\nlet uniqueId = 0;\nconst modern = {\n getDataForNode(node, createIfNotFound) {\n let dataForNode = node[dataStoreSymbol];\n if (!dataForNode && createIfNotFound) {\n dataForNode = node[dataStoreSymbol] = {};\n }\n return dataForNode;\n },\n clear(node) {\n if (node[dataStoreSymbol]) {\n delete node[dataStoreSymbol];\n return true;\n }\n return false;\n }\n};\nconst IE = {\n getDataforNode(node, createIfNotFound) {\n let dataStoreKey = node[dataStoreKeyExpandoPropertyName];\n const hasExistingDataStore = dataStoreKey && dataStoreKey !== \"null\" && dataStore[dataStoreKey];\n if (!hasExistingDataStore) {\n if (!createIfNotFound) {\n return void 0;\n }\n dataStoreKey = node[dataStoreKeyExpandoPropertyName] = \"ko\" + uniqueId++;\n dataStore[dataStoreKey] = {};\n }\n return dataStore[dataStoreKey];\n },\n clear(node) {\n const dataStoreKey = node[dataStoreKeyExpandoPropertyName];\n if (dataStoreKey) {\n delete dataStore[dataStoreKey];\n node[dataStoreKeyExpandoPropertyName] = null;\n return true;\n }\n return false;\n }\n};\nconst { getDataForNode, clear } = ieVersion ? IE : modern;\nexport function nextKey() {\n return uniqueId++ + dataStoreKeyExpandoPropertyName;\n}\nfunction get(node, key) {\n const dataForNode = getDataForNode(node, false);\n return dataForNode && dataForNode[key];\n}\nfunction set(node, key, value) {\n var dataForNode = getDataForNode(node, value !== void 0);\n dataForNode && (dataForNode[key] = value);\n}\nfunction getOrSet(node, key, value) {\n const dataForNode = getDataForNode(node, true);\n return dataForNode[key] || (dataForNode[key] = value);\n}\nexport { get, set, getOrSet, clear };\n", "\"use strict\";\n// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport * as domData from \"./data\";\nimport { default as options } from \"../options\";\nimport { arrayRemoveItem, arrayIndexOf } from \"../array\";\nimport { jQueryInstance } from \"../jquery\";\nvar domDataKey = domData.nextKey();\nvar cleanableNodeTypes = { 1: true, 8: true, 9: true };\nvar cleanableNodeTypesWithDescendants = { 1: true, 9: true };\nfunction getDisposeCallbacksCollection(node, createIfNotFound) {\n var allDisposeCallbacks = domData.get(node, domDataKey);\n if (allDisposeCallbacks === void 0 && createIfNotFound) {\n allDisposeCallbacks = [];\n domData.set(node, domDataKey, allDisposeCallbacks);\n }\n return allDisposeCallbacks;\n}\nfunction destroyCallbacksCollection(node) {\n domData.set(node, domDataKey, void 0);\n}\nfunction cleanSingleNode(node) {\n var callbacks = getDisposeCallbacksCollection(node, false);\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](node);\n }\n }\n domData.clear(node);\n for (let i = 0, j = otherNodeCleanerFunctions.length; i < j; ++i) {\n otherNodeCleanerFunctions[i](node);\n }\n if (options.cleanExternalData) {\n options.cleanExternalData(node);\n }\n if (cleanableNodeTypesWithDescendants[node.nodeType]) {\n cleanNodesInList(node.childNodes, true);\n }\n}\nfunction cleanNodesInList(nodeList, onlyComments) {\n const cleanedNodes = [];\n let lastCleanedNode;\n for (var i = 0; i < nodeList.length; i++) {\n if (!onlyComments || nodeList[i].nodeType === 8) {\n cleanSingleNode(cleanedNodes[cleanedNodes.length] = lastCleanedNode = nodeList[i]);\n if (nodeList[i] !== lastCleanedNode) {\n while (i-- && arrayIndexOf(cleanedNodes, nodeList[i]) === -1) {\n }\n }\n }\n }\n}\nexport function addDisposeCallback(node, callback) {\n if (typeof callback !== \"function\") {\n throw new Error(\"Callback must be a function\");\n }\n getDisposeCallbacksCollection(node, true).push(callback);\n}\nexport function removeDisposeCallback(node, callback) {\n var callbacksCollection = getDisposeCallbacksCollection(node, false);\n if (callbacksCollection) {\n arrayRemoveItem(callbacksCollection, callback);\n if (callbacksCollection.length === 0) {\n destroyCallbacksCollection(node);\n }\n }\n}\nexport function cleanNode(node) {\n if (cleanableNodeTypes[node.nodeType]) {\n cleanSingleNode(node);\n if (cleanableNodeTypesWithDescendants[node.nodeType]) {\n cleanNodesInList(node.getElementsByTagName(\"*\"));\n }\n }\n return node;\n}\nexport function removeNode(node) {\n cleanNode(node);\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nexport const otherNodeCleanerFunctions = [];\nexport function addCleaner(fn) {\n otherNodeCleanerFunctions.push(fn);\n}\nexport function removeCleaner(fn) {\n const fnIndex = otherNodeCleanerFunctions.indexOf(fn);\n if (fnIndex >= 0) {\n otherNodeCleanerFunctions.splice(fnIndex, 1);\n }\n}\nexport function cleanjQueryData(node) {\n var jQueryCleanNodeFn = jQueryInstance ? jQueryInstance.cleanData : null;\n if (jQueryCleanNodeFn) {\n jQueryCleanNodeFn([node]);\n }\n}\notherNodeCleanerFunctions.push(cleanjQueryData);\n", "\"use strict\";\n// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { objectForEach } from \"../object\";\nimport { jQueryInstance } from \"../jquery\";\nimport { ieVersion } from \"../ie\";\nimport { catchFunctionErrors } from \"../error\";\nimport { tagNameLower } from \"./info\";\nimport { addDisposeCallback } from \"./disposal\";\nimport options from \"../options\";\nvar knownEvents = {}, knownEventTypesByEventName = {};\nvar keyEventTypeName = options.global.navigator && /Firefox\\/2/i.test(options.global.navigator.userAgent) ? \"KeyboardEvent\" : \"UIEvents\";\nknownEvents[keyEventTypeName] = [\"keyup\", \"keydown\", \"keypress\"];\nknownEvents[\"MouseEvents\"] = [\n \"click\",\n \"dblclick\",\n \"mousedown\",\n \"mouseup\",\n \"mousemove\",\n \"mouseover\",\n \"mouseout\",\n \"mouseenter\",\n \"mouseleave\"\n];\nobjectForEach(knownEvents, function(eventType, knownEventsForType) {\n if (knownEventsForType.length) {\n for (var i = 0, j = knownEventsForType.length; i < j; i++) {\n knownEventTypesByEventName[knownEventsForType[i]] = eventType;\n }\n }\n});\nfunction isClickOnCheckableElement(element, eventType) {\n if (tagNameLower(element) !== \"input\" || !element.type)\n return false;\n if (eventType.toLowerCase() != \"click\")\n return false;\n var inputType = element.type;\n return inputType == \"checkbox\" || inputType == \"radio\";\n}\nvar eventsThatMustBeRegisteredUsingAttachEvent = { \"propertychange\": true };\nlet jQueryEventAttachName;\nexport function registerEventHandler(element, eventType, handler, eventOptions = false) {\n const wrappedHandler = catchFunctionErrors(handler);\n const mustUseAttachEvent = ieVersion && eventsThatMustBeRegisteredUsingAttachEvent[eventType];\n const mustUseNative = Boolean(eventOptions);\n if (!options.useOnlyNativeEvents && !mustUseAttachEvent && !mustUseNative && jQueryInstance) {\n if (!jQueryEventAttachName) {\n jQueryEventAttachName = typeof jQueryInstance(element).on === \"function\" ? \"on\" : \"bind\";\n }\n jQueryInstance(element)[jQueryEventAttachName](eventType, wrappedHandler);\n } else if (!mustUseAttachEvent && typeof element.addEventListener === \"function\") {\n element.addEventListener(eventType, wrappedHandler, eventOptions);\n } else if (typeof element.attachEvent !== \"undefined\") {\n const attachEventHandler = function(event) {\n wrappedHandler.call(element, event);\n };\n const attachEventName = \"on\" + eventType;\n element.attachEvent(attachEventName, attachEventHandler);\n addDisposeCallback(element, function() {\n element.detachEvent(attachEventName, attachEventHandler);\n });\n } else {\n throw new Error(\"Browser doesn't support addEventListener or attachEvent\");\n }\n}\nexport function triggerEvent(element, eventType) {\n if (!(element && element.nodeType)) {\n throw new Error(\"element must be a DOM node when calling triggerEvent\");\n }\n var useClickWorkaround = isClickOnCheckableElement(element, eventType);\n if (!options.useOnlyNativeEvents && jQueryInstance && !useClickWorkaround) {\n jQueryInstance(element).trigger(eventType);\n } else if (typeof document.createEvent === \"function\") {\n if (typeof element.dispatchEvent === \"function\") {\n var eventCategory = knownEventTypesByEventName[eventType] || \"HTMLEvents\";\n var event = document.createEvent(eventCategory);\n event.initEvent(eventType, true, true, options.global, 0, 0, 0, 0, 0, false, false, false, false, 0, element);\n element.dispatchEvent(event);\n } else {\n throw new Error(\"The supplied element doesn't support dispatchEvent\");\n }\n } else if (useClickWorkaround && element.click) {\n element.click();\n } else if (typeof element.fireEvent !== \"undefined\") {\n element.fireEvent(\"on\" + eventType);\n } else {\n throw new Error(\"Browser doesn't support triggering events\");\n }\n}\n", "\"use strict\";\n// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { emptyDomNode, setDomNodeChildren as setRegularDomNodeChildren } from \"./manipulation\";\nimport { removeNode } from \"./disposal\";\nimport { tagNameLower } from \"./info\";\nimport * as domData from \"./data\";\nimport options from \"../options\";\nvar commentNodesHaveTextProperty = options.document && options.document.createComment(\"test\").text === \"<!--test-->\";\nexport var startCommentRegex = commentNodesHaveTextProperty ? /^<!--\\s*ko(?:\\s+([\\s\\S]+))?\\s*-->$/ : /^\\s*ko(?:\\s+([\\s\\S]+))?\\s*$/;\nexport var endCommentRegex = commentNodesHaveTextProperty ? /^<!--\\s*\\/ko\\s*-->$/ : /^\\s*\\/ko\\s*$/;\nvar htmlTagsWithOptionallyClosingChildren = { \"ul\": true, \"ol\": true };\nexport function isStartComment(node) {\n return node.nodeType == 8 && startCommentRegex.test(commentNodesHaveTextProperty ? node.text : node.nodeValue);\n}\nexport function isEndComment(node) {\n return node.nodeType == 8 && endCommentRegex.test(commentNodesHaveTextProperty ? node.text : node.nodeValue);\n}\nfunction isUnmatchedEndComment(node) {\n return isEndComment(node) && !domData.get(node, matchedEndCommentDataKey);\n}\nconst matchedEndCommentDataKey = \"__ko_matchedEndComment__\";\nexport function getVirtualChildren(startComment, allowUnbalanced) {\n var currentNode = startComment;\n var depth = 1;\n var children = [];\n while (currentNode = currentNode.nextSibling) {\n if (isEndComment(currentNode)) {\n domData.set(currentNode, matchedEndCommentDataKey, true);\n depth--;\n if (depth === 0) {\n return children;\n }\n }\n children.push(currentNode);\n if (isStartComment(currentNode)) {\n depth++;\n }\n }\n if (!allowUnbalanced) {\n throw new Error(\"Cannot find closing comment tag to match: \" + startComment.nodeValue);\n }\n return null;\n}\nfunction getMatchingEndComment(startComment, allowUnbalanced) {\n var allVirtualChildren = getVirtualChildren(startComment, allowUnbalanced);\n if (allVirtualChildren) {\n if (allVirtualChildren.length > 0) {\n return allVirtualChildren[allVirtualChildren.length - 1].nextSibling;\n }\n return startComment.nextSibling;\n } else {\n return null;\n }\n}\nfunction getUnbalancedChildTags(node) {\n var childNode = node.firstChild, captureRemaining = null;\n if (childNode) {\n do {\n if (captureRemaining) {\n captureRemaining.push(childNode);\n } else if (isStartComment(childNode)) {\n var matchingEndComment = getMatchingEndComment(childNode, true);\n if (matchingEndComment) {\n childNode = matchingEndComment;\n } else {\n captureRemaining = [childNode];\n }\n } else if (isEndComment(childNode)) {\n captureRemaining = [childNode];\n }\n } while (childNode = childNode.nextSibling);\n }\n return captureRemaining;\n}\nexport var allowedBindings = {};\nexport var hasBindingValue = isStartComment;\nexport function childNodes(node) {\n return isStartComment(node) ? getVirtualChildren(node) : node.childNodes;\n}\nexport function emptyNode(node) {\n if (!isStartComment(node)) {\n emptyDomNode(node);\n } else {\n var virtualChildren = childNodes(node);\n for (var i = 0, j = virtualChildren.length; i < j; i++) {\n removeNode(virtualChildren[i]);\n }\n }\n}\nexport function setDomNodeChildren(node, childNodes2) {\n if (!isStartComment(node)) {\n setRegularDomNodeChildren(node, childNodes2);\n } else {\n emptyNode(node);\n const endCommentNode = node.nextSibling;\n const parentNode = endCommentNode.parentNode;\n for (var i = 0, j = childNodes2.length; i < j; ++i) {\n parentNode.insertBefore(childNodes2[i], endCommentNode);\n }\n }\n}\nexport function prepend(containerNode, nodeToPrepend) {\n if (!isStartComment(containerNode)) {\n if (containerNode.firstChild) {\n containerNode.insertBefore(nodeToPrepend, containerNode.firstChild);\n } else {\n containerNode.appendChild(nodeToPrepend);\n }\n } else {\n containerNode.parentNode.insertBefore(nodeToPrepend, containerNode.nextSibling);\n }\n}\nexport function insertAfter(containerNode, nodeToInsert, insertAfterNode) {\n if (!insertAfterNode) {\n prepend(containerNode, nodeToInsert);\n } else if (!isStartComment(containerNode)) {\n if (insertAfterNode.nextSibling) {\n containerNode.insertBefore(nodeToInsert, insertAfterNode.nextSibling);\n } else {\n containerNode.appendChild(nodeToInsert);\n }\n } else {\n containerNode.parentNode.insertBefore(nodeToInsert, insertAfterNode.nextSibling);\n }\n}\nexport function firstChild(node) {\n if (!isStartComment(node)) {\n if (node.firstChild && isEndComment(node.firstChild)) {\n throw new Error(\"Found invalid end comment, as the first child of \" + node.outerHTML);\n }\n return node.firstChild;\n }\n if (!node.nextSibling || isEndComment(node.nextSibling)) {\n return null;\n }\n return node.nextSibling;\n}\nexport function lastChild(node) {\n let nextChild = firstChild(node);\n let lastChildNode;\n do {\n lastChildNode = nextChild;\n } while (nextChild = nextSibling(nextChild));\n return lastChildNode;\n}\nexport function nextSibling(node) {\n if (isStartComment(node)) {\n node = getMatchingEndComment(node);\n }\n if (node.nextSibling && isEndComment(node.nextSibling)) {\n if (isUnmatchedEndComment(node.nextSibling)) {\n throw Error(\"Found end comment without a matching opening comment, as next sibling of \" + node.outerHTML);\n }\n return null;\n } else {\n return node.nextSibling;\n }\n}\nexport function previousSibling(node) {\n var depth = 0;\n do {\n if (node.nodeType === 8) {\n if (isStartComment(node)) {\n if (--depth === 0) {\n return node;\n }\n } else if (isEndComment(node)) {\n depth++;\n }\n } else {\n if (depth === 0) {\n return node;\n }\n }\n } while (node = node.previousSibling);\n}\nexport function virtualNodeBindingValue(node) {\n var regexMatch = (commentNodesHaveTextProperty ? node.text : node.nodeValue).match(startCommentRegex);\n return regexMatch ? regexMatch[1] : null;\n}\nexport function normaliseVirtualElementDomStructure(elementVerified) {\n if (!htmlTagsWithOptionallyClosingChildren[tagNameLower(elementVerified)]) {\n return;\n }\n var childNode = elementVerified.firstChild;\n if (childNode) {\n do {\n if (childNode.nodeType === 1) {\n var unbalancedTags = getUnbalancedChildTags(childNode);\n if (unbalancedTags) {\n var nodeToInsertBefore = childNode.nextSibling;\n for (var i = 0; i < unbalancedTags.length; i++) {\n if (nodeToInsertBefore) {\n elementVerified.insertBefore(unbalancedTags[i], nodeToInsertBefore);\n } else {\n elementVerified.appendChild(unbalancedTags[i]);\n }\n }\n }\n }\n } while (childNode = childNode.nextSibling);\n }\n}\n", "\"use strict\";\n// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { stringTrim } from \"../string\";\nimport { makeArray } from \"../array\";\nimport { emptyDomNode, moveCleanedNodesToContainerElement } from \"./manipulation\";\nimport { jQueryInstance } from \"../jquery\";\nimport { forceRefresh } from \"./fixes\";\nimport * as virtualElements from \"./virtualElements\";\nimport options from \"../options\";\nvar none = [0, \"\", \"\"], table = [1, \"<table>\", \"</table>\"], tbody = [2, \"<table><tbody>\", \"</tbody></table>\"], colgroup = [2, \"<table><tbody></tbody><colgroup>\", \"</colgroup></table>\"], tr = [3, \"<table><tbody><tr>\", \"</tr></tbody></table>\"], select = [1, \"<select multiple='multiple'>\", \"</select>\"], fieldset = [1, \"<fieldset>\", \"</fieldset>\"], map = [1, \"<map>\", \"</map>\"], object = [1, \"<object>\", \"</object>\"], lookup = {\n \"area\": map,\n \"col\": colgroup,\n \"colgroup\": table,\n \"caption\": table,\n \"legend\": fieldset,\n \"thead\": table,\n \"tbody\": table,\n \"tfoot\": table,\n \"tr\": tbody,\n \"td\": tr,\n \"th\": tr,\n \"option\": select,\n \"optgroup\": select,\n \"param\": object\n}, supportsTemplateTag = options.document && \"content\" in options.document.createElement(\"template\");\nfunction getWrap(tags) {\n const m = tags.match(/^(?:<!--.*?-->\\s*?)*?<([a-z]+)[\\s>]/);\n return m && lookup[m[1]] || none;\n}\nfunction simpleHtmlParse(html, documentContext) {\n documentContext || (documentContext = document);\n var windowContext = documentContext[\"parentWindow\"] || documentContext[\"defaultView\"] || window;\n var tags = stringTrim(html).toLowerCase(), div = documentContext.createElement(\"div\"), wrap = getWrap(tags), depth = wrap[0];\n var markup = \"ignored<div>\" + wrap[1] + html + wrap[2] + \"</div>\";\n if (typeof windowContext[\"innerShiv\"] === \"function\") {\n div.appendChild(windowContext[\"innerShiv\"](markup));\n } else {\n div.innerHTML = markup;\n }\n while (depth--) {\n div = div.lastChild;\n }\n return makeArray(div.lastChild.childNodes);\n}\nfunction templateHtmlParse(html, documentContext) {\n if (!documentContext) {\n documentContext = document;\n }\n var template = documentContext.createElement(\"template\");\n template.innerHTML = html;\n return makeArray(template.content.childNodes);\n}\nfunction jQueryHtmlParse(html, documentContext) {\n if (jQueryInstance.parseHTML) {\n return jQueryInstance.parseHTML(html, documentContext) || [];\n } else {\n var elems = jQueryInstance.clean([html], documentContext);\n if (elems && elems[0]) {\n var elem = elems[0];\n while (elem.parentNode && elem.parentNode.nodeType !== 11) {\n elem = elem.parentNode;\n }\n if (elem.parentNode) {\n elem.parentNode.removeChild(elem);\n }\n }\n return elems;\n }\n}\nexport function parseHtmlFragment(html, documentContext) {\n return supportsTemplateTag ? templateHtmlParse(html, documentContext) : jQueryInstance ? jQueryHtmlParse(html, documentContext) : simpleHtmlParse(html, documentContext);\n}\nexport function parseHtmlForTemplateNodes(html, documentContext) {\n const nodes = parseHtmlFragment(html, documentContext);\n return nodes.length && nodes[0].parentElement || moveCleanedNodesToContainerElement(nodes);\n}\nexport function setHtml(node, html) {\n emptyDomNode(node);\n if (typeof html === \"function\") {\n html = html();\n }\n if (html !== null && html !== void 0) {\n if (typeof html !== \"string\") {\n html = html.toString();\n }\n if (jQueryInstance && !supportsTemplateTag) {\n jQueryInstance(node).html(html);\n } else {\n var parsedNodes = parseHtmlFragment(html, node.ownerDocument);\n if (node.nodeType === 8) {\n if (html === null) {\n virtualElements.emptyNode(node);\n } else {\n virtualElements.setDomNodeChildren(node, parsedNodes);\n }\n } else {\n for (var i = 0; i < parsedNodes.length; i++) {\n node.appendChild(parsedNodes[i]);\n }\n }\n }\n }\n}\nexport function setTextContent(element, textContent) {\n var value = typeof textContent === \"function\" ? textContent() : textContent;\n if (value === null || value === void 0) {\n value = \"\";\n }\n var innerTextNode = virtualElements.firstChild(element);\n if (!innerTextNode || innerTextNode.nodeType != 3 || virtualElements.nextSibling(innerTextNode)) {\n virtualElements.setDomNodeChildren(element, [element.ownerDocument.createTextNode(value)]);\n } else {\n innerTextNode.data = value;\n }\n forceRefresh(element);\n}\n", "\"use strict\";\n// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { tagNameLower } from \"./info\";\nimport * as domData from \"./data\";\nvar hasDomDataExpandoProperty = Symbol(\"Knockout selectExtensions hasDomDataProperty\");\nexport var selectExtensions = {\n optionValueDomDataKey: domData.nextKey(),\n readValue: function(element) {\n switch (tagNameLower(element)) {\n case \"option\":\n if (element[hasDomDataExpandoProperty] === true) {\n return domData.get(element, selectExtensions.optionValueDomDataKey);\n }\n return element.value;\n case \"select\":\n return element.selectedIndex >= 0 ? selectExtensions.readValue(element.options[element.selectedIndex]) : void 0;\n default:\n return element.value;\n }\n },\n writeValue: function(element, value, allowUnset) {\n switch (tagNameLower(element)) {\n case \"option\":\n if (typeof value === \"string\") {\n domData.set(element, selectExtensions.optionValueDomDataKey, void 0);\n if (hasDomDataExpandoProperty in element) {\n delete element[hasDomDataExpandoProperty];\n }\n element.value = value;\n } else {\n domData.set(element, selectExtensions.optionValueDomDataKey, value);\n element[hasDomDataExpandoProperty] = true;\n element.value = typeof value === \"number\" ? value : \"\";\n }\n break;\n case \"select\":\n if (value === \"\" || value === null) {\n value = void 0;\n }\n var selection = -1;\n for (let i = 0, n = element.options.length, optionValue; i < n; ++i) {\n optionValue = selectExtensions.readValue(element.options[i]);\n const strictEqual = optionValue === value;\n const blankEqual = optionValue === \"\" && value === void 0;\n const numericEqual = typeof value === \"number\" && Number(optionValue) === value;\n if (strictEqual || blankEqual || numericEqual) {\n selection = i;\n break;\n }\n }\n if (allowUnset || selection >= 0 || value === void 0 && element.size > 1) {\n element.selectedIndex = selection;\n }\n break;\n default:\n if (value === null || value === void 0) {\n value = \"\";\n }\n element.value = value;\n break;\n }\n }\n};\n", "\"use strict\";\n// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport options from \"./options\";\nimport { deferError } from \"./error\";\nvar taskQueue = [], taskQueueLength = 0, nextHandle = 1, nextIndexToProcess = 0, w = options.global;\nif (w && w.MutationObserver && !(w.navigator && w.navigator.standalone)) {\n options.taskScheduler = function(callback) {\n var div = w.document.createElement(\"div\");\n new w.MutationObserver(callback).observe(div, { attributes: true });\n return function() {\n div.classList.toggle(\"foo\");\n };\n }(scheduledProcess);\n} else if (w && w.document && \"onreadystatechange\" in w.document.createElement(\"script\")) {\n options.taskScheduler = function(callback) {\n var script = document.createElement(\"script\");\n script.onreadystatechange = function() {\n script.onreadystatechange = null;\n document.documentElement.removeChild(script);\n script = null;\n callback();\n };\n document.documentElement.appendChild(script);\n };\n} else {\n options.taskScheduler = function(callback) {\n setTimeout(callback, 0);\n };\n}\nfunction processTasks() {\n if (taskQueueLength) {\n var mark = taskQueueLength, countMarks = 0;\n for (var task; nextIndexToProcess < taskQueueLength; ) {\n if (task = taskQueue[nextIndexToProcess++]) {\n if (nextIndexToProcess > mark) {\n if (++countMarks >= 5e3) {\n nextIndexToProcess = taskQueueLength;\n deferError(Error(\"'Too much recursion' after processing \" + countMarks + \" task groups.\"));\n break;\n }\n mark = taskQueueLength;\n }\n try {\n task();\n } catch (ex) {\n deferError(ex);\n }\n }\n }\n }\n}\nfunction scheduledProcess() {\n processTasks();\n nextIndexToProcess = taskQueueLength = taskQueue.length = 0;\n}\nfunction scheduleTaskProcessing() {\n options.taskScheduler(scheduledProcess);\n}\nexport function schedule(func) {\n if (!taskQueueLength) {\n scheduleTaskProcessing();\n }\n taskQueue[taskQueueLength++] = func;\n return nextHandle++;\n}\nexport function cancel(handle) {\n var index = handle - (nextHandle - taskQueueLength);\n if (index >= nextIndexToProcess && index < taskQueueLength) {\n taskQueue[index] = null;\n }\n}\nexport function resetForTesting() {\n var length = taskQueueLength - nextIndexToProcess;\n nextIndexToProcess = taskQueueLength = taskQueue.length = 0;\n return length;\n}\nexport { processTasks as runEarly };\n", "\"use strict\";\n// @tko/observable \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { isSubscribable } from \"./subscribableSymbol\";\nconst outerFrames = [];\nlet currentFrame;\nlet lastId = 0;\nfunction getId() {\n return ++lastId;\n}\nexport function begin(options) {\n outerFrames.push(currentFrame);\n currentFrame = options;\n}\nexport function end() {\n currentFrame = outerFrames.pop();\n}\nexport function registerDependency(subscribable) {\n if (currentFrame) {\n if (!isSubscribable(subscribable)) {\n throw new Error(\"Only subscribable things can act as dependencies\");\n }\n currentFrame.callback.call(currentFrame.callbackTarget, subscribable, subscribable._id || (subscribable._id = getId()));\n }\n}\nexport function ignore(callback, callbackTarget, callbackArgs) {\n try {\n begin();\n return callback.apply(callbackTarget, callbackArgs || []);\n } finally {\n end();\n }\n}\nexport function getDependenciesCount() {\n if (currentFrame) {\n return currentFrame.computed.getDependenciesCount();\n }\n}\nexport function getDependencies() {\n if (currentFrame) {\n return currentFrame.computed.getDependencies();\n }\n}\nexport function isInitial() {\n if (currentFrame) {\n return currentFrame.isInitial;\n }\n}\nexport { ignore as ignoreDependencies };\n", "\"use strict\";\n// @tko/observable \uD83E\uDD4A 4.0.0-beta1.3 ESM\nexport const SUBSCRIBABLE_SYM = Symbol(\"Knockout Subscribable\");\nexport function isSubscribable(instance) {\n return instance && instance[SUBSCRIBABLE_SYM] || false;\n}\n", "\"use strict\";\n// @tko/observable \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { tasks } from \"@tko/utils\";\nexport function deferUpdates(target) {\n if (target._deferUpdates) {\n return;\n }\n target._deferUpdates = true;\n target.limit(function(callback) {\n let handle;\n let ignoreUpdates = false;\n return function() {\n if (!ignoreUpdates) {\n tasks.cancel(handle);\n handle = tasks.schedule(callback);\n try {\n ignoreUpdates = true;\n target.notifySubscribers(void 0, \"dirty\");\n } finally {\n ignoreUpdates = false;\n }\n }\n };\n });\n}\n", "\"use strict\";\n// @tko/observable \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n removeDisposeCallback,\n addDisposeCallback\n} from \"@tko/utils\";\nexport default class Subscription {\n constructor(target, observer, disposeCallback) {\n this._target = target;\n this._callback = observer.next;\n this._disposeCallback = disposeCallback;\n this._isDisposed = false;\n this._domNodeDisposalCallback = null;\n }\n dispose() {\n if (this._domNodeDisposalCallback) {\n removeDisposeCallback(this._node, this._domNodeDisposalCallback);\n }\n this._isDisposed = true;\n this._disposeCallback();\n }\n disposeWhenNodeIsRemoved(node) {\n this._node = node;\n addDisposeCallback(node, this._domNodeDisposalCallback = this.dispose.bind(this));\n }\n unsubscribe() {\n this.dispose();\n }\n get closed() {\n return this._isDisposed;\n }\n}\n", "\"use strict\";\n// @tko/observable \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n options,\n objectForEach,\n throttle as throttleFn,\n debounce as debounceFn\n} from \"@tko/utils\";\nimport { deferUpdates } from \"./defer\";\nvar primitiveTypes = {\n \"undefined\": 1,\n \"boolean\": 1,\n \"number\": 1,\n \"string\": 1\n};\nexport function valuesArePrimitiveAndEqual(a, b) {\n var oldValueIsPrimitive = a === null || typeof a in primitiveTypes;\n return oldValueIsPrimitive ? a === b : false;\n}\nexport function applyExtenders(requestedExtenders) {\n var target = this;\n if (requestedExtenders) {\n objectForEach(requestedExtenders, function(key, value) {\n var extenderHandler = extenders[key];\n if (typeof extenderHandler === \"function\") {\n target = extenderHandler(target, value) || target;\n } else {\n options.onError(new Error(\"Extender not found: \" + key));\n }\n });\n }\n return target;\n}\nexport function notify(target, notifyWhen) {\n target.equalityComparer = notifyWhen == \"always\" ? null : valuesArePrimitiveAndEqual;\n}\nexport function deferred(target, option) {\n if (option !== true) {\n throw new Error(\"The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.\");\n }\n deferUpdates(target);\n}\nexport function rateLimit(target, options2) {\n var timeout, method, limitFunction;\n if (typeof options2 === \"number\") {\n timeout = options2;\n } else {\n timeout = options2.timeout;\n method = options2.method;\n }\n target._deferUpdates = false;\n limitFunction = method === \"notifyWhenChangesStop\" ? debounceFn : throttleFn;\n target.limit(function(callback) {\n return limitFunction(callback, timeout);\n });\n}\nexport var extenders = {\n notify,\n deferred,\n rateLimit\n};\n", "\"use strict\";\n// @tko/observable \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n arrayRemoveItem,\n objectForEach,\n options\n} from \"@tko/utils\";\nimport Subscription from \"./Subscription\";\nimport { SUBSCRIBABLE_SYM } from \"./subscribableSymbol\";\nimport { applyExtenders } from \"./extenders\";\nimport * as dependencyDetection from \"./dependencyDetection\";\nexport { isSubscribable } from \"./subscribableSymbol\";\nexport const LATEST_VALUE = Symbol(\"Knockout latest value\");\nif (!Symbol.observable) {\n Symbol.observable = Symbol.for(\"@tko/Symbol.observable\");\n}\nexport function subscribable() {\n Object.setPrototypeOf(this, ko_subscribable_fn);\n ko_subscribable_fn.init(this);\n}\nexport var defaultEvent = \"change\";\nvar ko_subscribable_fn = {\n [SUBSCRIBABLE_SYM]: true,\n [Symbol.observable]() {\n return this;\n },\n init(instance) {\n instance._subscriptions = { change: [] };\n instance._versionNumber = 1;\n },\n subscribe(callback, callbackTarget, event) {\n const isTC39Callback = typeof callback === \"object\" && callback.next;\n event = event || defaultEvent;\n const observer = isTC39Callback ? callback : {\n next: callbackTarget ? callback.bind(callbackTarget) : callback\n };\n const subscriptionInstance = new Subscription(this, observer, () => {\n arrayRemoveItem(this._subscriptions[event], subscriptionInstance);\n if (this.afterSubscriptionRemove) {\n this.afterSubscriptionRemove(event);\n }\n });\n if (this.beforeSubscriptionAdd) {\n this.beforeSubscriptionAdd(event);\n }\n if (!this._subscriptions[event]) {\n this._subscriptions[event] = [];\n }\n this._subscriptions[event].push(subscriptionInstance);\n if (isTC39Callback && LATEST_VALUE in this) {\n observer.next(this[LATEST_VALUE]);\n }\n return subscriptionInstance;\n },\n notifySubscribers(valueToNotify, event) {\n event = event || defaultEvent;\n if (event === defaultEvent) {\n this.updateVersion();\n }\n if (this.hasSubscriptionsForEvent(event)) {\n const subs = event === defaultEvent && this._changeSubscriptions || [...this._subscriptions[event]];\n try {\n dependencyDetection.begin();\n for (let i = 0, subscriptionInstance; subscriptionInstance = subs[i]; ++i) {\n if (!subscriptionInstance._isDisposed) {\n subscriptionInstance._callback(valueToNotify);\n }\n }\n } finally {\n dependencyDetection.end();\n }\n }\n },\n getVersion() {\n return this._versionNumber;\n },\n hasChanged(versionToCheck) {\n return this.getVersion() !== versionToCheck;\n },\n updateVersion() {\n ++this._versionNumber;\n },\n hasSubscriptionsForEvent(event) {\n return this._subscriptions[event] && this._subscriptions[event].length;\n },\n getSubscriptionsCount(event) {\n if (event) {\n return this._subscriptions[event] && this._subscriptions[event].length || 0;\n } else {\n var total = 0;\n objectForEach(this._subscriptions, function(eventName, subscriptions) {\n if (eventName !== \"dirty\") {\n total += subscriptions.length;\n }\n });\n return total;\n }\n },\n isDifferent(oldValue, newValue) {\n return !this.equalityComparer || !this.equalityComparer(oldValue, newValue);\n },\n once(cb) {\n const subs = this.subscribe((nv) => {\n subs.dispose();\n cb(nv);\n });\n },\n when(test, returnValue) {\n const current = this.peek();\n const givenRv = arguments.length > 1;\n const testFn = typeof test === \"function\" ? test : (v) => v === test;\n if (testFn(current)) {\n return options.Promise.resolve(givenRv ? returnValue : current);\n }\n return new options.Promise((resolve, reject) => {\n const subs = this.subscribe((newValue) => {\n if (testFn(newValue)) {\n subs.dispose();\n resolve(givenRv ? returnValue : newValue);\n }\n });\n });\n },\n yet(test, ...args) {\n const testFn = typeof test === \"function\" ? test : (v) => v === test;\n const negated = (v) => !testFn(v);\n return this.when(negated, ...args);\n },\n next() {\n return new Promise((resolve) => this.once(resolve));\n },\n toString() {\n return \"[object Object]\";\n },\n extend: applyExtenders\n};\nObject.setPrototypeOf(ko_subscribable_fn, Function.prototype);\nsubscribable.fn = ko_subscribable_fn;\n", "\"use strict\";\n// @tko/observable \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n options,\n overwriteLengthPropertyIfSupported\n} from \"@tko/utils\";\nimport * as dependencyDetection from \"./dependencyDetection\";\nimport { deferUpdates } from \"./defer\";\nimport { subscribable, defaultEvent, LATEST_VALUE } from \"./subscribable\";\nimport { valuesArePrimitiveAndEqual } from \"./extenders\";\nexport function observable(initialValue) {\n function Observable() {\n if (arguments.length > 0) {\n if (Observable.isDifferent(Observable[LATEST_VALUE], arguments[0])) {\n Observable.valueWillMutate();\n Observable[LATEST_VALUE] = arguments[0];\n Observable.valueHasMutated();\n }\n return this;\n } else {\n dependencyDetection.registerDependency(Observable);\n return Observable[LATEST_VALUE];\n }\n }\n overwriteLengthPropertyIfSupported(Observable, { value: void 0 });\n Observable[LATEST_VALUE] = initialValue;\n subscribable.fn.init(Observable);\n Object.setPrototypeOf(Observable, observable.fn);\n if (options.deferUpdates) {\n deferUpdates(Observable);\n }\n return Observable;\n}\nobservable.fn = {\n equalityComparer: valuesArePrimitiveAndEqual,\n peek() {\n return this[LATEST_VALUE];\n },\n valueHasMutated() {\n this.notifySubscribers(this[LATEST_VALUE], \"spectate\");\n this.notifySubscribers(this[LATEST_VALUE]);\n },\n valueWillMutate() {\n this.notifySubscribers(this[LATEST_VALUE], \"beforeChange\");\n },\n modify(fn, peek2 = true) {\n return this(fn(peek2 ? this.peek() : this()));\n },\n isWriteable: true\n};\nfunction limitNotifySubscribers(value, event) {\n if (!event || event === defaultEvent) {\n this._limitChange(value);\n } else if (event === \"beforeChange\") {\n this._limitBeforeChange(value);\n } else {\n this._origNotifySubscribers(value, event);\n }\n}\nsubscribable.fn.limit = function limit(limitFunction) {\n var self = this;\n var selfIsObservable = isObservable(self);\n var beforeChange = \"beforeChange\";\n var ignoreBeforeChange, notifyNextChange, previousValue, pendingValue, didUpdate;\n if (!self._origNotifySubscribers) {\n self._origNotifySubscribers = self.notifySubscribers;\n self.notifySubscribers = limitNotifySubscribers;\n }\n var finish = limitFunction(function() {\n self._notificationIsPending = false;\n if (selfIsObservable && pendingValue === self) {\n pendingValue = self._evalIfChanged ? self._evalIfChanged() : self();\n }\n const shouldNotify = notifyNextChange || didUpdate && self.isDifferent(previousValue, pendingValue);\n self._notifyNextChange = didUpdate = ignoreBeforeChange = false;\n if (shouldNotify) {\n self._origNotifySubscribers(previousValue = pendingValue);\n }\n });\n Object.assign(self, {\n _limitChange(value, isDirty) {\n if (!isDirty || !self._notificationIsPending) {\n didUpdate = !isDirty;\n }\n self._changeSubscriptions = [...self._subscriptions[defaultEvent]];\n self._notificationIsPending = ignoreBeforeChange = true;\n pendingValue = value;\n finish();\n },\n _limitBeforeChange(value) {\n if (!ignoreBeforeChange) {\n previousValue = value;\n self._origNotifySubscribers(value, beforeChange);\n }\n },\n _notifyNextChangeIfValueIsDifferent() {\n if (self.isDifferent(previousValue, self.peek(true))) {\n notifyNextChange = true;\n }\n },\n _recordUpdate() {\n didUpdate = true;\n }\n });\n};\nObject.setPrototypeOf(observable.fn, subscribable.fn);\nvar protoProperty = observable.protoProperty = options.protoProperty;\nobservable.fn[protoProperty] = observable;\nobservable.observablePrototypes = /* @__PURE__ */ new Set([observable]);\nexport function isObservable(instance) {\n const proto = typeof instance === \"function\" && instance[protoProperty];\n if (proto && !observable.observablePrototypes.has(proto)) {\n throw Error(\"Invalid object that looks like an observable; possibly from another Knockout instance\");\n }\n return !!proto;\n}\nexport function unwrap(value) {\n return isObservable(value) ? value() : value;\n}\nexport function peek(value) {\n return isObservable(value) ? value.peek() : value;\n}\nexport function isWriteableObservable(instance) {\n return isObservable(instance) && instance.isWriteable;\n}\nexport { isWriteableObservable as isWritableObservable };\n", "\"use strict\";\n// @tko/observable \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n extend,\n compareArrays,\n findMovesInArrayComparison\n} from \"@tko/utils\";\nimport { defaultEvent } from \"./subscribable\";\nimport { extenders } from \"./extenders\";\nexport var arrayChangeEventName = \"arrayChange\";\nexport function trackArrayChanges(target, options) {\n target.compareArrayOptions = {};\n if (options && typeof options === \"object\") {\n extend(target.compareArrayOptions, options);\n }\n target.compareArrayOptions.sparse = true;\n if (target.cacheDiffForKnownOperation) {\n return;\n }\n let trackingChanges = false;\n let cachedDiff = null;\n let arrayChangeSubscription;\n let pendingNotifications = 0;\n let underlyingNotifySubscribersFunction;\n let underlyingBeforeSubscriptionAddFunction = target.beforeSubscriptionAdd;\n let underlyingAfterSubscriptionRemoveFunction = target.afterSubscriptionRemove;\n target.beforeSubscriptionAdd = function(event) {\n if (underlyingBeforeSubscriptionAddFunction) {\n underlyingBeforeSubscriptionAddFunction.call(target, event);\n }\n if (event === arrayChangeEventName) {\n trackChanges();\n }\n };\n target.afterSubscriptionRemove = function(event) {\n if (underlyingAfterSubscriptionRemoveFunction) {\n underlyingAfterSubscriptionRemoveFunction.call(target, event);\n }\n if (event === arrayChangeEventName && !target.hasSubscriptionsForEvent(arrayChangeEventName)) {\n if (underlyingNotifySubscribersFunction) {\n target.notifySubscribers = underlyingNotifySubscribersFunction;\n underlyingNotifySubscribersFunction = void 0;\n }\n if (arrayChangeSubscription) {\n arrayChangeSubscription.dispose();\n }\n arrayChangeSubscription = null;\n trackingChanges = false;\n }\n };\n function trackChanges() {\n if (trackingChanges) {\n return;\n }\n trackingChanges = true;\n underlyingNotifySubscribersFunction = target[\"notifySubscribers\"];\n target.notifySubscribers = function(valueToNotify, event) {\n if (!event || event === defaultEvent) {\n ++pendingNotifications;\n }\n return underlyingNotifySubscribersFunction.apply(this, arguments);\n };\n var previousContents = [].concat(target.peek() === void 0 ? [] : target.peek());\n cachedDiff = null;\n arrayChangeSubscription = target.subscribe(function(currentContents) {\n let changes;\n currentContents = [].concat(currentContents || []);\n if (target.hasSubscriptionsForEvent(arrayChangeEventName)) {\n changes = getChanges(previousContents, currentContents);\n }\n previousContents = currentContents;\n cachedDiff = null;\n pendingNotifications = 0;\n if (changes && changes.length) {\n target.notifySubscribers(changes, arrayChangeEventName);\n }\n });\n }\n function getChanges(previousContents, currentContents) {\n if (!cachedDiff || pendingNotifications > 1) {\n cachedDiff = trackArrayChanges.compareArrays(previousContents, currentContents, target.compareArrayOptions);\n }\n return cachedDiff;\n }\n target.cacheDiffForKnownOperation = function(rawArray, operationName, args) {\n if (!trackingChanges || pendingNotifications) {\n return;\n }\n var diff = [], arrayLength = rawArray.length, argsLength = args.length, offset = 0;\n function pushDiff(status, value, index) {\n return diff[diff.length] = { \"status\": status, \"value\": value, \"index\": index };\n }\n switch (operationName) {\n case \"push\":\n offset = arrayLength;\n case \"unshift\":\n for (let index = 0; index < argsLength; index++) {\n pushDiff(\"added\", args[index], offset + index);\n }\n break;\n case \"pop\":\n offset = arrayLength - 1;\n case \"shift\":\n if (arrayLength) {\n pushDiff(\"deleted\", rawArray[offset], offset);\n }\n break;\n case \"splice\":\n var startIndex = Math.min(Math.max(0, args[0] < 0 ? arrayLength + args[0] : args[0]), arrayLength), endDeleteIndex = argsLength === 1 ? arrayLength : Math.min(startIndex + (args[1] || 0), arrayLength), endAddIndex = startIndex + argsLength - 2, endIndex = Math.max(endDeleteIndex, endAddIndex), additions = [], deletions = [];\n for (let index = startIndex, argsIndex = 2; index < endIndex; ++index, ++argsIndex) {\n if (index < endDeleteIndex) {\n deletions.push(pushDiff(\"deleted\", rawArray[index], index));\n }\n if (index < endAddIndex) {\n additions.push(pushDiff(\"added\", args[argsIndex], index));\n }\n }\n findMovesInArrayComparison(deletions, additions);\n break;\n default:\n return;\n }\n cachedDiff = diff;\n };\n}\ntrackArrayChanges.compareArrays = compareArrays;\nextenders.trackArrayChanges = trackArrayChanges;\n", "\"use strict\";\n// @tko/observable \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n arrayIndexOf,\n arrayForEach,\n overwriteLengthPropertyIfSupported\n} from \"@tko/utils\";\nimport { observable, isObservable } from \"./observable\";\nimport { trackArrayChanges } from \"./observableArray.changeTracking\";\nexport function observableArray(initialValues) {\n initialValues = initialValues || [];\n if (typeof initialValues !== \"object\" || !(\"length\" in initialValues)) {\n throw new Error(\"The argument passed when initializing an observable array must be an array, or null, or undefined.\");\n }\n var result = observable(initialValues);\n Object.setPrototypeOf(result, observableArray.fn);\n trackArrayChanges(result);\n overwriteLengthPropertyIfSupported(result, { get: () => result().length });\n return result;\n}\nexport function isObservableArray(instance) {\n return isObservable(instance) && typeof instance.remove === \"function\" && typeof instance.push === \"function\";\n}\nobservableArray.fn = {\n remove(valueOrPredicate) {\n var underlyingArray = this.peek();\n var removedValues = [];\n var predicate = typeof valueOrPredicate === \"function\" && !isObservable(valueOrPredicate) ? valueOrPredicate : function(value2) {\n return value2 === valueOrPredicate;\n };\n for (var i = 0; i < underlyingArray.length; i++) {\n var value = underlyingArray[i];\n if (predicate(value)) {\n if (removedValues.length === 0) {\n this.valueWillMutate();\n }\n if (underlyingArray[i] !== value) {\n throw Error(\"Array modified during remove; cannot remove item\");\n }\n removedValues.push(value);\n underlyingArray.splice(i, 1);\n i--;\n }\n }\n if (removedValues.length) {\n this.valueHasMutated();\n }\n return removedValues;\n },\n removeAll(arrayOfValues) {\n if (arrayOfValues === void 0) {\n var underlyingArray = this.peek();\n var allValues = underlyingArray.slice(0);\n this.valueWillMutate();\n underlyingArray.splice(0, underlyingArray.length);\n this.valueHasMutated();\n return allValues;\n }\n if (!arrayOfValues) {\n return [];\n }\n return this[\"remove\"](function(value) {\n return arrayIndexOf(arrayOfValues, value) >= 0;\n });\n },\n destroy(valueOrPredicate) {\n var underlyingArray = this.peek();\n var predicate = typeof valueOrPredicate === \"function\" && !isObservable(valueOrPredicate) ? valueOrPredicate : function(value2) {\n return value2 === valueOrPredicate;\n };\n this.valueWillMutate();\n for (var i = underlyingArray.length - 1; i >= 0; i--) {\n var value = underlyingArray[i];\n if (predicate(value)) {\n value[\"_destroy\"] = true;\n }\n }\n this.valueHasMutated();\n },\n destroyAll(arrayOfValues) {\n if (arrayOfValues === void 0) {\n return this.destroy(function() {\n return true;\n });\n }\n if (!arrayOfValues) {\n return [];\n }\n return this.destroy(function(value) {\n return arrayIndexOf(arrayOfValues, value) >= 0;\n });\n },\n indexOf(item) {\n return arrayIndexOf(this(), item);\n },\n replace(oldItem, newItem) {\n var index = this.indexOf(oldItem);\n if (index >= 0) {\n this.valueWillMutate();\n this.peek()[index] = newItem;\n this.valueHasMutated();\n }\n },\n sorted(compareFn) {\n return [...this()].sort(compareFn);\n },\n reversed() {\n return [...this()].reverse();\n },\n [Symbol.iterator]: function* () {\n yield* this();\n }\n};\nObject.setPrototypeOf(observableArray.fn, observable.fn);\narrayForEach([\"pop\", \"push\", \"reverse\", \"shift\", \"sort\", \"splice\", \"unshift\"], function(methodName) {\n observableArray.fn[methodName] = function() {\n var underlyingArray = this.peek();\n this.valueWillMutate();\n this.cacheDiffForKnownOperation(underlyingArray, methodName, arguments);\n var methodCallResult = underlyingArray[methodName].apply(underlyingArray, arguments);\n this.valueHasMutated();\n return methodCallResult === underlyingArray ? this : methodCallResult;\n };\n});\narrayForEach([\"slice\"], function(methodName) {\n observableArray.fn[methodName] = function() {\n var underlyingArray = this();\n return underlyingArray[methodName].apply(underlyingArray, arguments);\n };\n});\nobservableArray.trackArrayChanges = trackArrayChanges;\n", "\"use strict\";\n// @tko/provider \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n options\n} from \"@tko/utils\";\nexport default class BindingHandlerObject {\n set(nameOrObject, value) {\n if (typeof nameOrObject === \"string\") {\n this[nameOrObject] = value;\n } else if (typeof nameOrObject === \"object\") {\n if (value !== void 0) {\n options.onError(\n new Error(\"Given extraneous `value` parameter (first param should be a string, but it was an object).\" + nameOrObject)\n );\n }\n Object.assign(this, nameOrObject);\n } else {\n options.onError(\n new Error(\"Given a bad binding handler type: \" + nameOrObject)\n );\n }\n }\n get(nameOrDotted) {\n const [name] = nameOrDotted.split(\".\");\n return this[name];\n }\n}\n", "\"use strict\";\n// @tko/provider \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n objectMap\n} from \"@tko/utils\";\nimport {\n dependencyDetection\n} from \"@tko/observable\";\nimport BindingHandlerObject from \"./BindingHandlerObject\";\nexport default class Provider {\n constructor(params = {}) {\n if (this.constructor === Provider) {\n throw new Error(\"Provider is an abstract base class.\");\n }\n if (!(\"FOR_NODE_TYPES\" in this)) {\n throw new Error(\"Providers must have FOR_NODE_TYPES property\");\n }\n this.bindingHandlers = params.bindingHandlers || new BindingHandlerObject();\n this.globals = params.globals || {};\n }\n setGlobals(globals) {\n this.globals = globals;\n }\n get preemptive() {\n return false;\n }\n nodeHasBindings() {\n }\n getBindingAccessors() {\n }\n preprocessNode(node) {\n }\n postProcess() {\n }\n get instance() {\n return this._overloadInstance || this;\n }\n set instance(provider) {\n if (!provider || provider === this) {\n this._overloadInstance = void 0;\n } else {\n this._overloadInstance = new LegacyProvider(provider, this);\n }\n }\n makeAccessorsFromFunction(callback) {\n return objectMap(\n dependencyDetection.ignore(callback),\n (value, key) => () => callback()[key]\n );\n }\n makeValueAccessor(value) {\n return () => value;\n }\n makeBindingAccessors(bindings, context, node) {\n if (typeof bindings === \"function\") {\n return this.makeAccessorsFromFunction(bindings.bind(null, context, node));\n } else {\n return objectMap(bindings, this.makeValueAccessor);\n }\n }\n}\nclass LegacyProvider extends Provider {\n get FOR_NODE_TYPES() {\n return [1, 3, 8];\n }\n constructor(providerObject, parentProvider) {\n super();\n Object.assign(this, { providerObject });\n this.bindingHandlers = providerObject.bindingHandlers || parentProvider.bindingHandlers;\n }\n getBindingsAndMakeAccessors(node, context) {\n const bindingsFn = this.providerObject.getBindings.bind(this.providerObject, node, context);\n return this.makeAccessorsFromFunction(bindingsFn);\n }\n getBindingAccessors(node, context) {\n return this.providerObject.getBindingAccessors ? this.providerObject.getBindingAccessors(node, context) : this.getBindingsAndMakeAccessors(node, context);\n }\n nodeHasBindings(node) {\n return this.providerObject.nodeHasBindings(node);\n }\n preprocessNode(node) {\n if (this.providerObject.preprocessNode) {\n return this.providerObject.preprocessNode(node);\n }\n }\n}\n", "\"use strict\";\n// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.5 ESM\nvar __pow = Math.pow;\nimport {\n unwrap\n} from \"@tko/observable\";\nexport function LAMBDA() {\n}\nfunction unwrapOrCall(a, b) {\n while (typeof b === \"function\") {\n b = b();\n }\n return b;\n}\nconst operators = {\n \"@\": unwrapOrCall,\n \"#\": (a, b) => () => unwrap(b),\n \"=>\": LAMBDA,\n \"!\": function not(a, b) {\n return !b;\n },\n \"!!\": function notnot(a, b) {\n return !!b;\n },\n \"++\": function preinc(a, b) {\n return ++b;\n },\n \"--\": function preinc2(a, b) {\n return --b;\n },\n \"**\": function exp(a, b) {\n return __pow(a, b);\n },\n \"*\": function mul(a, b) {\n return a * b;\n },\n \"/\": function div(a, b) {\n return a / b;\n },\n \"%\": function mod(a, b) {\n return a % b;\n },\n \"+\": function add(a, b) {\n return a + b;\n },\n \"-\": function sub(a, b) {\n return (a || 0) - (b || 0);\n },\n \"&-\": function neg(a, b) {\n return -1 * b;\n },\n \"<\": function lt(a, b) {\n return a < b;\n },\n \"<=\": function le(a, b) {\n return a <= b;\n },\n \">\": function gt(a, b) {\n return a > b;\n },\n \">=\": function ge(a, b) {\n return a >= b;\n },\n \"==\": function equal(a, b) {\n return a === b;\n },\n \"!=\": function ne(a, b) {\n return a !== b;\n },\n \"===\": function sequal(a, b) {\n return a === b;\n },\n \"!==\": function sne(a, b) {\n return a !== b;\n },\n \"&\": function bitAnd(a, b) {\n return a & b;\n },\n \"^\": function xor(a, b) {\n return a ^ b;\n },\n \"|\": function bitOr(a, b) {\n return a | b;\n },\n \"&&\": function logicAnd(a, b) {\n return a && b;\n },\n \"||\": function logicOr(a, b) {\n return a || b;\n },\n \"??\": function nullishCoalesce(a, b) {\n return a != null ? a : b;\n },\n \".\": function member(a, b) {\n return a == null ? void 0 : a[b];\n },\n \"?.\": function omember(a, b) {\n return a == null ? void 0 : a[b];\n },\n \"[\": function bmember(a, b) {\n return a == null ? void 0 : a[b];\n },\n \",\": function comma(a, b) {\n return b;\n },\n \"call\": function callOp(a, b) {\n return a.apply(null, b);\n }\n};\noperators[\"@\"].precedence = 21;\noperators[\"#\"].precedence = 21;\noperators[\".\"].precedence = 19;\noperators[\"[\"].precedence = 19;\noperators[\"?.\"].precedence = 19;\noperators[\"!\"].precedence = 16;\noperators[\"!!\"].precedence = 16;\noperators[\"++\"].precedence = 16;\noperators[\"--\"].precedence = 16;\noperators[\"&-\"].precedence = 16;\noperators[\"**\"].precedent = 15;\noperators[\"%\"].precedence = 14;\noperators[\"*\"].precedence = 14;\noperators[\"/\"].precedence = 14;\noperators[\"+\"].precedence = 13;\noperators[\"-\"].precedence = 13;\noperators[\"|\"].precedence = 12;\noperators[\"^\"].precedence = 11;\noperators[\"&\"].precedence = 10;\noperators[\"<\"].precedence = 11;\noperators[\"<=\"].precedence = 11;\noperators[\">\"].precedence = 11;\noperators[\">=\"].precedence = 11;\noperators[\"==\"].precedence = 10;\noperators[\"!=\"].precedence = 10;\noperators[\"===\"].precedence = 10;\noperators[\"!==\"].precedence = 10;\noperators[\"&&\"].precedence = 6;\noperators[\"||\"].precedence = 5;\noperators[\"??\"].precedence = 5;\noperators[\"&&\"].earlyOut = (a) => !a;\noperators[\"||\"].earlyOut = (a) => a;\noperators[\"??\"].earlyOut = (a) => a;\noperators[\",\"].precedence = 2;\noperators[\"call\"].precedence = 1;\noperators[\"=>\"].precedence = 1;\nexport { operators as default };\n", "\"use strict\";\n// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.5 ESM\nimport {\n unwrap\n} from \"@tko/observable\";\nimport {\n default as operators,\n LAMBDA\n} from \"./operators\";\nconst IS_EXPR_OR_IDENT = Symbol(\"Node - Is Expression Or Identifier\");\nexport default class Node {\n constructor(lhs, op, rhs) {\n this.lhs = lhs;\n this.op = op;\n this.rhs = rhs;\n }\n static get operators() {\n return operators;\n }\n get_leaf_value(leaf, context, globals, node) {\n if (typeof leaf === \"function\") {\n return unwrap(leaf());\n }\n if (typeof leaf !== \"object\" || leaf === null) {\n return leaf;\n }\n if (leaf[Node.isExpressionOrIdentifierSymbol]) {\n return unwrap(leaf.get_value(void 0, context, globals, node));\n }\n return leaf;\n }\n get_value(notused, context, globals, node) {\n var node = this;\n if (node.op === LAMBDA) {\n return (...args) => {\n let lambdaContext = context;\n if (node.lhs) {\n lambdaContext = node.lhs.extendContext(context, args);\n }\n return node.get_leaf_value(node.rhs, lambdaContext, globals, node);\n };\n }\n const lhv = node.get_leaf_value(node.lhs, context, globals, node);\n const earlyOut = node.op.earlyOut;\n if (earlyOut && earlyOut(lhv)) {\n return lhv;\n }\n const rhv = node.get_leaf_value(node.rhs, context, globals, node);\n return node.op(lhv, rhv, context, globals);\n }\n static get isExpressionOrIdentifierSymbol() {\n return IS_EXPR_OR_IDENT;\n }\n get [IS_EXPR_OR_IDENT]() {\n return true;\n }\n static value_of(item, context, globals, node) {\n if (item && item[Node.isExpressionOrIdentifierSymbol]) {\n return item.get_value(item, context, globals, node);\n }\n return item;\n }\n static create_root(nodes, debug = false) {\n const out = [];\n const ops = [];\n for (let i = 0; i < nodes.length; i += 2) {\n out.push(nodes[i]);\n const op = nodes[i + 1];\n const prec = (op == null ? void 0 : op.precedence) || 0;\n while (ops.length && prec <= ops[ops.length - 1].precedence) {\n const rhs = out.pop();\n const lhs = out.pop();\n out.push(new Node(lhs, ops.pop(), rhs));\n }\n ops.push(op);\n }\n if (out.length !== 1) {\n throw new Error(`unexpected nodes remain in shunting yard output stack: ${out}`);\n }\n return out[0];\n }\n}\noperators[\"?\"] = function ternary(a, b, context, globals, node) {\n return Node.value_of(a ? b.yes : b.no, context, globals, node);\n};\noperators[\"?\"].precedence = 4;\n", "\"use strict\";\n// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.5 ESM\nimport Node from \"./Node\";\nexport default class Expression {\n constructor(nodes) {\n this.nodes = nodes;\n this.root = Node.create_root(nodes);\n }\n get_value(parent, context, globals, node) {\n if (!this.root) {\n this.root = Node.create_root(this.nodes);\n }\n return this.root.get_value(parent, context, globals, node);\n }\n}\nExpression.prototype[Node.isExpressionOrIdentifierSymbol] = true;\n", "\"use strict\";\n// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.5 ESM\nimport Node from \"./Node\";\nexport default class Arguments {\n constructor(parser, args) {\n this.parser = parser;\n this.args = args;\n }\n get_value(parent, context, globals, node) {\n var deReffedArgs = [];\n for (var i = 0, j = this.args.length; i < j; ++i) {\n deReffedArgs.push(Node.value_of(this.args[i], context, globals, node));\n }\n return deReffedArgs;\n }\n get [Node.isExpressionOrIdentifierSymbol]() {\n return true;\n }\n}\n", "\"use strict\";\n// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.5 ESM\nexport var IDStart = /[\\$A-Z_a-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/;\nexport var IDContinue = /[\\$0-9A-Z_a-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/;\n", "\"use strict\";\n// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.5 ESM\nimport Node from \"./Node\";\nimport Arguments from \"./Arguments\";\nimport { hasOwnProperty, isObjectLike } from \"@tko/utils\";\nimport {\n isWriteableObservable,\n isObservable\n} from \"@tko/observable\";\nimport {\n IDStart,\n IDContinue\n} from \"./identifierExpressions\";\nexport default class Identifier {\n constructor(parser, token, dereferences) {\n this.token = token;\n this.dereferences = dereferences;\n this.parser = parser;\n }\n dereference(value, $context, globals, node) {\n let member;\n let refs = this.dereferences || [];\n const $data = $context.$data || {};\n let lastValue;\n let i, n;\n for (i = 0, n = refs.length; i < n; ++i) {\n member = Node.value_of(refs[i], $context, globals, node);\n if (typeof value === \"function\" && refs[i] instanceof Arguments) {\n value = value.apply(lastValue || $data, member);\n lastValue = value;\n } else if (value === null || value === void 0) {\n return value;\n } else {\n lastValue = value;\n value = Node.value_of(value[member], $context, globals, node);\n }\n }\n if (typeof value === \"function\" && n > 0 && lastValue !== value && !hasOwnProperty(lastValue, member)) {\n return value.bind(lastValue);\n }\n return value;\n }\n get_value(parent, context, globals, node) {\n const intermediate = parent && !(parent instanceof Identifier) ? Node.value_of(parent, context, globals, node)[this.token] : context.lookup(this.token, globals, node);\n return this.dereference(intermediate, context, globals, node);\n }\n assign(object, property, value) {\n if (isWriteableObservable(object[property])) {\n object[property](value);\n } else if (!isObservable(object[property])) {\n object[property] = value;\n }\n }\n set_value(new_value, $context, globals) {\n const $data = $context.$data || {};\n const refs = this.dereferences || [];\n let leaf = this.token;\n let i, n, root;\n if (isObjectLike($data) && leaf in $data) {\n root = $data;\n } else if (leaf in $context) {\n root = $context;\n } else if (leaf in globals) {\n root = globals;\n } else {\n throw new Error(\"Identifier::set_value -- The property '\" + leaf + \"' does not exist on the $data, $context, or globals.\");\n }\n n = refs.length;\n if (n === 0) {\n this.assign(root, leaf, new_value);\n return;\n }\n root = root[leaf];\n for (i = 0; i < n - 1; ++i) {\n leaf = refs[i];\n if (leaf instanceof Arguments) {\n root = root();\n } else {\n root = root[Node.value_of(leaf)];\n }\n }\n if (refs[i] === true) {\n throw new Error(\"Cannot assign a value to a function.\");\n }\n if (refs[i]) {\n this.assign(root, Node.value_of(refs[i]), new_value);\n }\n }\n static is_valid_start_char(ch) {\n return IDStart.test(ch);\n }\n static is_valid_continue_char(ch) {\n return IDContinue.test(ch);\n }\n get [Node.isExpressionOrIdentifierSymbol]() {\n return true;\n }\n}\n", "\"use strict\";\n// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.5 ESM\nimport operators from \"./operators\";\nimport Node from \"./Node\";\nimport Expression from \"./Expression\";\nimport Identifier from \"./Identifier\";\nexport default class Parameters {\n constructor(parser, node) {\n if (node instanceof Expression) {\n node = node.root;\n }\n try {\n this.names = Parameters.nodeTreeToNames(node);\n } catch (e) {\n parser.error(e);\n }\n }\n extendContext(context, args) {\n if (!this.names) {\n return context;\n } else {\n const newValues = {};\n this.names.forEach((name, index) => {\n newValues[name] = args[index];\n });\n return context.extend(newValues);\n }\n }\n get [Node.isExpressionOrIdentifierSymbol]() {\n return true;\n }\n static nodeTreeToNames(node) {\n const names = [];\n while (node) {\n if (node instanceof Identifier) {\n names.push(node.token);\n node = null;\n } else if (this.isCommaNode(node)) {\n names.push(node.rhs.token);\n node = node.lhs;\n } else {\n throw new Error(`only simple identifiers allowed in lambda parameter list but found ${JSON.stringify(node, null, 2)}`);\n }\n }\n names.reverse();\n return names;\n }\n static isCommaNode(node) {\n return node instanceof Node && node.op === operators[\",\"] && node.rhs instanceof Identifier;\n }\n}\n", "\"use strict\";\n// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.5 ESM\nimport Node from \"./Node\";\nexport default class Ternary {\n constructor(yes, no) {\n Object.assign(this, { yes, no });\n }\n get_value() {\n return this;\n }\n get [Node.isExpressionOrIdentifierSymbol]() {\n return true;\n }\n}\n", "\"use strict\";\n// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.5 ESM\nimport {\n options,\n objectForEach,\n clonePlainObjectDeep,\n extend,\n hasOwnProperty\n} from \"@tko/utils\";\nimport { default as Expression } from \"./Expression\";\nimport { default as Identifier } from \"./Identifier\";\nimport { default as Arguments } from \"./Arguments\";\nimport { default as Parameters } from \"./Parameters\";\nimport { default as Ternary } from \"./Ternary\";\nimport { default as Node } from \"./Node\";\nimport { default as operators } from \"./operators\";\nconst escapee = {\n \"'\": \"'\",\n '\"': '\"',\n \"`\": \"`\",\n \"\\\\\": \"\\\\\",\n \"/\": \"/\",\n \"$\": \"$\",\n b: \"\\b\",\n f: \"\\f\",\n n: \"\\n\",\n r: \"\\r\",\n t: \"\t\"\n};\nexport default class Parser {\n white() {\n var ch = this.ch;\n while (ch && ch <= \" \") {\n ch = this.next();\n }\n return this.comment(ch);\n }\n comment(ch) {\n if (ch !== \"/\") {\n return ch;\n }\n var p = this.at;\n var second = this.lookahead();\n if (second === \"/\") {\n while (ch) {\n ch = this.next();\n if (ch === \"\\n\" || ch === \"\\r\") {\n break;\n }\n }\n ch = this.next();\n } else if (second === \"*\") {\n while (ch) {\n ch = this.next();\n if (ch === \"*\" && this.lookahead() === \"/\") {\n this.next();\n break;\n }\n }\n if (!ch) {\n this.error(\"Unclosed comment, starting at character \" + p);\n }\n this.next();\n return this.white();\n }\n return ch;\n }\n next(c) {\n if (c && c !== this.ch) {\n this.error(\"Expected '\" + c + \"' but got '\" + this.ch + \"'\");\n }\n this.ch = this.text.charAt(this.at);\n this.at += 1;\n return this.ch;\n }\n lookahead() {\n return this.text[this.at];\n }\n error(m) {\n if (m instanceof Error) {\n throw m;\n }\n let [name, msg] = m.name ? [m.name, m.message] : [m, \"\"];\n const message = `\n${name} ${msg} of\n ${this.text}\n` + Array(this.at).join(\" \") + \"_/ \\u{1F525} \\\\_\\n\";\n throw new Error(message);\n }\n name() {\n var name = \"\";\n var enclosedBy;\n this.white();\n var ch = this.ch;\n if (ch === \"'\" || ch === '\"') {\n enclosedBy = ch;\n ch = this.next();\n }\n while (ch) {\n if (enclosedBy && ch === enclosedBy) {\n this.white();\n ch = this.next();\n if (ch !== \":\" && ch !== \",\") {\n this.error(\n \"Object name: \" + name + \" missing closing \" + enclosedBy\n );\n }\n return name;\n } else if (ch === \":\" || ch <= \" \" || ch === \",\" || ch === \"|\") {\n return name;\n }\n name += ch;\n ch = this.next();\n }\n return name;\n }\n number() {\n let number;\n let string = \"\";\n let ch = this.ch;\n if (ch === \"-\") {\n string = \"-\";\n ch = this.next(\"-\");\n }\n while (ch >= \"0\" && ch <= \"9\") {\n string += ch;\n ch = this.next();\n }\n if (ch === \".\") {\n string += \".\";\n ch = this.next();\n while (ch && ch >= \"0\" && ch <= \"9\") {\n string += ch;\n ch = this.next();\n }\n }\n if (ch === \"e\" || ch === \"E\") {\n string += ch;\n ch = this.next();\n if (ch === \"-\" || ch === \"+\") {\n string += ch;\n ch = this.next();\n }\n while (ch >= \"0\" && ch <= \"9\") {\n string += ch;\n ch = this.next();\n }\n }\n number = +string;\n if (!isFinite(number)) {\n options.onError(new Error(\"Bad number: \" + number + \" in \" + string));\n } else {\n return number;\n }\n }\n objectAddValue(object, key, value) {\n if (value && value[Node.isExpressionOrIdentifierSymbol]) {\n Object.defineProperty(object, key, {\n get: () => Node.value_of(value, ...this.currentContextGlobals),\n enumerable: true\n });\n } else if (Array.isArray(value)) {\n Object.defineProperty(object, key, {\n get: () => value.map((v) => Node.value_of(v, ...this.currentContextGlobals)),\n enumerable: true\n });\n } else {\n object[key] = value;\n }\n }\n object() {\n let key;\n let object = {};\n let ch = this.ch;\n if (ch === \"{\") {\n this.next(\"{\");\n ch = this.white();\n if (ch === \"}\") {\n ch = this.next(\"}\");\n return object;\n }\n while (ch) {\n if (ch === '\"' || ch === \"'\" || ch === \"`\") {\n key = this.string();\n } else {\n key = this.name();\n }\n if (hasOwnProperty(object, key)) {\n this.error('Duplicate key \"' + key + '\"');\n }\n if (this.white() === \":\") {\n ch = this.next(\":\");\n this.objectAddValue(object, key, this.singleValueExpression());\n } else {\n const objectKeyIsValue = new Identifier(this, key, []);\n this.objectAddValue(object, key, objectKeyIsValue);\n }\n ch = this.white();\n if (ch === \"}\") {\n ch = this.next(\"}\");\n return object;\n }\n this.next(\",\");\n ch = this.white();\n if (ch === \"}\") {\n ch = this.next(\"}\");\n return object;\n }\n }\n }\n this.error(\"Bad object\");\n }\n readString(delim) {\n let string = \"\";\n let nodes = [\"\"];\n let plusOp = operators[\"+\"];\n let hex;\n let i;\n let uffff;\n let interpolate = delim === \"`\";\n let ch = this.next();\n while (ch) {\n if (ch === delim) {\n ch = this.next();\n if (interpolate) {\n nodes.push(plusOp);\n }\n nodes.push(string);\n return nodes;\n }\n if (ch === \"\\\\\") {\n ch = this.next();\n if (ch === \"u\") {\n uffff = 0;\n for (i = 0; i < 4; i += 1) {\n hex = parseInt(ch = this.next(), 16);\n if (!isFinite(hex)) {\n break;\n }\n uffff = uffff * 16 + hex;\n }\n string += String.fromCharCode(uffff);\n } else if (typeof escapee[ch] === \"string\") {\n string += escapee[ch];\n } else {\n break;\n }\n } else if (interpolate && ch === \"$\") {\n ch = this.next();\n if (ch === \"{\") {\n this.next(\"{\");\n nodes.push(plusOp);\n nodes.push(string);\n nodes.push(plusOp);\n nodes.push(this.expression());\n string = \"\";\n } else {\n string += \"$\" + ch;\n }\n } else {\n string += ch;\n }\n ch = this.next();\n }\n this.error(\"Bad string\");\n }\n string() {\n var ch = this.ch;\n if (ch === '\"') {\n return this.readString('\"').join(\"\");\n } else if (ch === \"'\") {\n return this.readString(\"'\").join(\"\");\n } else if (ch === \"`\") {\n return Node.create_root(this.readString(\"`\"));\n }\n this.error(\"Bad string\");\n }\n array() {\n let array = [];\n let ch = this.ch;\n if (ch === \"[\") {\n ch = this.next(\"[\");\n this.white();\n if (ch === \"]\") {\n ch = this.next(\"]\");\n return array;\n }\n while (ch) {\n array.push(this.singleValueExpression());\n ch = this.white();\n if (ch === \"]\") {\n ch = this.next(\"]\");\n return array;\n }\n this.next(\",\");\n ch = this.white();\n }\n }\n this.error(\"Bad array\");\n }\n value() {\n this.white();\n let ch = this.ch;\n switch (ch) {\n case \"{\":\n return this.object();\n case \"[\":\n return this.array();\n case '\"':\n case \"'\":\n case \"`\":\n return this.string();\n case \"-\":\n return this.number();\n default:\n return ch >= \"0\" && ch <= \"9\" ? this.number() : this.identifier();\n }\n }\n operator(opts) {\n let op = \"\";\n let opFn;\n let ch = this.white();\n let isIdentifierChar = Identifier.is_valid_start_char;\n while (ch) {\n if (isIdentifierChar(ch) || ch <= \" \" || ch === \"\" || ch === '\"' || ch === \"'\" || ch === \"{\" || ch === \"(\" || ch === \"`\" || ch === \")\" || ch <= \"9\" && ch >= \"0\") {\n break;\n }\n if (!opts.not_an_array && ch === \"[\") {\n break;\n }\n op += ch;\n ch = this.next();\n if (ch === \"@\") {\n break;\n }\n isIdentifierChar = Identifier.is_valid_continue_char;\n }\n if (op !== \"\") {\n if (opts.prefix && op === \"-\") {\n op = \"&-\";\n }\n opFn = operators[op];\n if (!opFn) {\n this.error(\"Bad operator: '\" + op + \"'.\");\n }\n }\n return opFn;\n }\n filter() {\n let ch = this.next();\n let args = [];\n let nextFilter = function(v) {\n return v;\n };\n let name = this.name();\n if (!options.filters[name]) {\n options.onError(\"Cannot find filter by the name of: \" + name);\n }\n ch = this.white();\n while (ch) {\n if (ch === \":\") {\n ch = this.next();\n args.push(this.singleValueExpression(\"|\"));\n }\n if (ch === \"|\") {\n nextFilter = this.filter();\n break;\n }\n if (ch === \",\") {\n break;\n }\n ch = this.white();\n }\n var filter = function filter2(value, ignored, context, globals, node) {\n var argValues = [value];\n for (var i = 0, j = args.length; i < j; ++i) {\n argValues.push(Node.value_of(args[i], context, globals, node));\n }\n return nextFilter(options.filters[name].apply(context, argValues));\n };\n filter.precedence = 1;\n return filter;\n }\n expression(filterable = false, allowMultipleValues = true) {\n let op;\n let nodes = [];\n let ch = this.white();\n while (ch) {\n op = this.operator({ prefix: true });\n if (op) {\n nodes.push(void 0);\n nodes.push(op);\n ch = this.white();\n }\n if (ch === \"(\") {\n this.next();\n nodes.push(this.expression());\n this.next(\")\");\n } else {\n nodes.push(this.value());\n }\n ch = this.white();\n if (ch === \":\" || ch === \"}\" || ch === \"]\" || ch === \")\" || ch === \"\" || ch === \"`\" || ch === \"|\" && filterable === \"|\" || ch === \",\" && !allowMultipleValues) {\n break;\n }\n if (ch === \"|\" && this.lookahead() !== \"|\" && filterable) {\n nodes.push(this.filter());\n nodes.push(void 0);\n break;\n }\n op = this.operator({ not_an_array: true });\n if (op === operators[\"?\"]) {\n this.ternary(nodes);\n break;\n } else if (op === operators[\".\"] || op === operators[\"?.\"]) {\n nodes.push(op);\n nodes.push(this.member());\n op = null;\n } else if (op === operators[\"[\"]) {\n nodes.push(op);\n nodes.push(this.expression());\n ch = this.next(\"]\");\n op = null;\n } else if (op === operators[\"=>\"]) {\n nodes[nodes.length - 1] = new Parameters(this, nodes[nodes.length - 1]);\n nodes.push(op);\n } else if (op) {\n nodes.push(op);\n }\n ch = this.white();\n if (ch === \"]\" || !op && ch === \"(\") {\n break;\n }\n }\n if (nodes.length === 0) {\n return void 0;\n }\n var dereferences = this.dereferences();\n if (nodes.length === 1 && !dereferences.length) {\n return nodes[0];\n }\n for (var i = 0, j = dereferences.length; i < j; ++i) {\n var deref = dereferences[i];\n if (deref.constructor === Arguments) {\n nodes.push(operators.call);\n } else {\n nodes.push(operators[\".\"]);\n }\n nodes.push(deref);\n }\n return new Expression(nodes);\n }\n singleValueExpression(filterable) {\n return this.expression(filterable, false);\n }\n ternary(nodes) {\n var ternary = new Ternary();\n ternary.yes = this.singleValueExpression();\n this.next(\":\");\n ternary.no = this.singleValueExpression();\n nodes.push(operators[\"?\"]);\n nodes.push(ternary);\n }\n funcArguments() {\n let args = [];\n let ch = this.next(\"(\");\n while (ch) {\n ch = this.white();\n if (ch === \")\") {\n this.next(\")\");\n return new Arguments(this, args);\n } else {\n args.push(this.singleValueExpression());\n ch = this.white();\n }\n if (ch !== \")\") {\n this.next(\",\");\n }\n }\n this.error(\"Bad arguments to function\");\n }\n member() {\n let member = \"\";\n let ch = this.white();\n let isIdentifierChar = Identifier.is_valid_start_char;\n while (ch) {\n if (!isIdentifierChar(ch)) {\n break;\n }\n member += ch;\n ch = this.next();\n isIdentifierChar = Identifier.is_valid_continue_char;\n }\n return member;\n }\n dereference() {\n let member;\n let ch = this.white();\n while (ch) {\n if (ch === \"(\") {\n return this.funcArguments();\n } else if (ch === \"[\") {\n this.next(\"[\");\n member = this.expression();\n this.white();\n this.next(\"]\");\n return member;\n } else if (ch === \".\") {\n this.next(\".\");\n return this.member();\n } else {\n break;\n }\n }\n }\n dereferences() {\n let ch = this.white();\n let dereferences = [];\n let deref;\n while (ch) {\n deref = this.dereference();\n if (deref !== void 0) {\n dereferences.push(deref);\n } else {\n break;\n }\n }\n return dereferences;\n }\n identifier() {\n let token = \"\";\n let isIdentifierChar = Identifier.is_valid_start_char;\n let ch = this.white();\n while (ch) {\n if (!isIdentifierChar(ch)) {\n break;\n }\n token += ch;\n ch = this.next();\n isIdentifierChar = Identifier.is_valid_continue_char;\n }\n switch (token) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n case \"null\":\n return null;\n case \"undefined\":\n return void 0;\n case \"function\":\n throw new Error(\"Knockout: Anonymous functions are no longer supported, but `=>` lambdas are. In: \" + this.text);\n }\n return new Identifier(this, token, this.dereferences());\n }\n readBindings() {\n let key;\n let bindings = {};\n let sep;\n let expr;\n let ch = this.ch;\n while (ch) {\n key = this.name();\n sep = this.white();\n if (!sep || sep === \",\") {\n if (sep) {\n ch = this.next(\",\");\n } else {\n ch = \"\";\n }\n bindings[key] = null;\n } else {\n if (key.indexOf(\".\") !== -1) {\n key = key.split(\".\");\n bindings[key[0]] = bindings[key[0]] || {};\n if (key.length !== 2) {\n options.onError(\"Binding \" + key + \" should have two parts (a.b).\");\n } else if (bindings[key[0]].constructor !== Object) {\n options.onError(\"Binding \" + key[0] + \".\" + key[1] + \" paired with a non-object.\");\n }\n ch = this.next(\":\");\n this.objectAddValue(bindings[key[0]], key[1], this.singleValueExpression(true));\n } else {\n ch = this.next(\":\");\n if (bindings[key] && typeof bindings[key] === \"object\" && bindings[key].constructor === Object) {\n expr = this.singleValueExpression(true);\n if (typeof expr !== \"object\" || expr.constructor !== Object) {\n options.onError(\"Expected plain object for \" + key + \" value.\");\n } else {\n extend(bindings[key], expr);\n }\n } else {\n bindings[key] = this.singleValueExpression(true);\n }\n }\n this.white();\n if (this.ch) {\n ch = this.next(\",\");\n } else {\n ch = \"\";\n }\n }\n }\n return bindings;\n }\n valueAsAccessor(value, context, globals, node) {\n if (!value) {\n return () => value;\n }\n if (typeof value === \"function\") {\n return value;\n }\n if (value[Node.isExpressionOrIdentifierSymbol]) {\n return () => Node.value_of(value, context, globals, node);\n }\n if (Array.isArray(value)) {\n return () => value.map((v) => Node.value_of(v, context, globals, node));\n }\n if (typeof value !== \"function\") {\n return () => clonePlainObjectDeep(value);\n }\n throw new Error(\"Value has cannot be converted to accessor: \" + value);\n }\n convertToAccessors(result, context, globals, node) {\n objectForEach(result, (name, value) => {\n if (value instanceof Identifier) {\n Object.defineProperty(result, name, {\n value: function(optionalValue, options2) {\n const currentValue = value.get_value(void 0, context, globals, node);\n if (arguments.length === 0) {\n return currentValue;\n }\n const unchanged = optionalValue === currentValue;\n if (options2 && options2.onlyIfChanged && unchanged) {\n return;\n }\n return value.set_value(optionalValue, context, globals);\n }\n });\n } else {\n result[name] = this.valueAsAccessor(value, context, globals, node);\n }\n });\n return result;\n }\n preparse(source = \"\") {\n const preparsers = options.bindingStringPreparsers || [];\n return preparsers.reduce((acc, fn) => fn(acc), source.trim());\n }\n runParse(source, fn) {\n this.text = this.preparse(source);\n this.at = 0;\n this.ch = \" \";\n try {\n var result = fn();\n this.white();\n if (this.ch) {\n this.error(\"Syntax Error\");\n }\n return result;\n } catch (e) {\n options.onError(e);\n }\n }\n parse(source, context = {}, globals = {}, node) {\n if (!source) {\n return () => null;\n }\n this.currentContextGlobals = [context, globals, node];\n const parseFn = () => this.readBindings();\n const bindingAccessors = this.runParse(source, parseFn);\n return this.convertToAccessors(bindingAccessors, context, globals, node);\n }\n parseExpression(source, context = {}, globals = {}, node) {\n if (!source) {\n return () => \"\";\n }\n this.currentContextGlobals = [context, globals, node];\n const parseFn = () => this.singleValueExpression(true);\n const bindingAccessors = this.runParse(source, parseFn);\n return this.valueAsAccessor(bindingAccessors, context, globals, node);\n }\n}\n", "\"use strict\";\n// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.5 ESM\nimport {\n stringTrim\n} from \"@tko/utils\";\nconst specials = \",\\\"'`{}()/:[\\\\]\";\nconst bindingToken = RegExp([\n '\"(?:\\\\\\\\.|[^\"])*\"',\n \"'(?:\\\\\\\\.|[^'])*'\",\n \"`(?:\\\\\\\\.|[^`])*`\",\n \"/\\\\*(?:[^*]|\\\\*+[^*/])*\\\\*+/\",\n \"//.*\\n\",\n \"/(?:\\\\\\\\.|[^/])+/\\\\w*\",\n \"[^\\\\s:,/][^\" + specials + \"]*[^\\\\s\" + specials + \"]\",\n \"[^\\\\s]\"\n].join(\"|\"), \"g\");\nconst divisionLookBehind = /[\\])\"'A-Za-z0-9_$]+$/;\nconst keywordRegexLookBehind = { \"in\": 1, \"return\": 1, \"typeof\": 1 };\nexport default function parseObjectLiteral(objectLiteralString) {\n var str = stringTrim(objectLiteralString);\n if (str.charCodeAt(0) === 123)\n str = str.slice(1, -1);\n str += \"\\n,\";\n var result = [];\n var toks = str.match(bindingToken);\n var key;\n var values = [];\n var depth = 0;\n if (toks.length <= 1) {\n return [];\n }\n for (var i = 0, tok; tok = toks[i]; ++i) {\n var c = tok.charCodeAt(0);\n if (c === 44) {\n if (depth <= 0) {\n result.push(key && values.length ? {\n key,\n value: values.join(\"\")\n } : {\n \"unknown\": key || values.join(\"\")\n });\n key = depth = 0;\n values = [];\n continue;\n }\n } else if (c === 58) {\n if (!depth && !key && values.length === 1) {\n key = values.pop();\n continue;\n }\n } else if (c === 47 && tok.length > 1 && (tok.charCodeAt(1) === 47 || tok.charCodeAt(1) === 42)) {\n continue;\n } else if (c === 47 && i && tok.length > 1) {\n var match = toks[i - 1].match(divisionLookBehind);\n if (match && !keywordRegexLookBehind[match[0]]) {\n str = str.substr(str.indexOf(tok) + 1);\n toks = str.match(bindingToken);\n i = -1;\n tok = \"/\";\n }\n } else if (c === 40 || c === 123 || c === 91) {\n ++depth;\n } else if (c === 41 || c === 125 || c === 93) {\n --depth;\n } else if (!key && !values.length && (c === 34 || c === 39)) {\n tok = tok.slice(1, -1);\n }\n values.push(tok);\n }\n return result;\n}\n", "\nimport {\n Parser\n} from '@tko/utils.parser'\n\nconst INNER_EXPRESSION = /^([\\s\\S]*)}}([\\s\\S]*?)\\{\\{([\\s\\S]*)$/\nconst OUTER_EXPRESSION = /^([\\s\\S]*?)\\{\\{([\\s\\S]*)}}([\\s\\S]*)$/\nconst BINDING_EXPRESSION = /^([^,\"'{}()/:[\\]\\s]+)\\s+([^\\s:].*)/\n\nclass Interpolated {\n constructor (text) {\n this.text = text\n }\n\n trim (string) {\n return string === null ? '' : string.trim()\n }\n}\n\nclass Expression extends Interpolated {\n asAttr (context, globals, node) {\n return new Parser().parseExpression(this.text, context, globals, node)()\n }\n\n * textNodeReplacement (textNode) {\n const text = this.trim(this.text)\n const ownerDocument = textNode ? textNode.ownerDocument : document\n const firstChar = text[0]\n const lastChar = text[text.length - 1]\n var closeComment = true\n var binding\n\n if (firstChar === '#') {\n if (lastChar === '/') {\n binding = text.slice(1, -1)\n } else {\n binding = text.slice(1)\n closeComment = false\n }\n const matches = binding.match(BINDING_EXPRESSION)\n if (matches) {\n binding = matches[1] + ':' + matches[2]\n }\n } else if (firstChar === '/') {\n // replace only with a closing comment\n } else if (firstChar === '{' && lastChar === '}') {\n binding = 'html:' + this.trim(text.slice(1, -1))\n } else {\n binding = 'text:' + this.trim(text)\n }\n\n if (binding) {\n yield ownerDocument.createComment('ko ' + binding)\n }\n if (closeComment) {\n yield ownerDocument.createComment('/ko')\n }\n }\n}\n\nclass Text extends Interpolated {\n asAttr () { return this.text }\n\n * textNodeReplacement () {\n yield document.createTextNode(this.text.replace(/\"/g, '\\\\\"'))\n }\n}\n\n/**\n * Interpolation Parsing\n */\nexport function * innerParse (text) {\n const innerMatch = text.match(INNER_EXPRESSION)\n if (innerMatch) {\n const [pre, inner, post] = innerMatch.slice(1)\n yield * innerParse(pre)\n yield new Text(inner)\n yield new Expression(post)\n } else {\n yield new Expression(text)\n }\n}\n\nexport function * parseOuterMatch (outerMatch) {\n if (!outerMatch) { return }\n let [pre, inner, post] = outerMatch.slice(1)\n yield new Text(pre)\n yield * innerParse(inner)\n yield new Text(post)\n}\n\nexport function * parseInterpolation (text) {\n for (const textOrExpr of parseOuterMatch(text.match(OUTER_EXPRESSION))) {\n if (textOrExpr.text) { yield textOrExpr }\n }\n}\n", "\nimport {\n unwrap\n} from '@tko/observable'\n\nimport {\n Provider\n} from '@tko/provider'\n\nimport {\n parseInterpolation\n} from './mustacheParser'\n\n/**\n * These are bindings that are mapped specific attributes, such as\n * two-way communication (value/checked) or which have anti-collision\n * properties (css).\n */\nconst DEFAULT_ATTRIBUTE_BINDING_MAP = {\n value: 'value',\n checked: 'checked',\n class: 'css'\n}\n\n/**\n * Interpret {{ }} inside DOM attributes e.g. <div class='{{ classes }}'>\n */\nexport default class AttributeMustacheProvider extends Provider {\n get FOR_NODE_TYPES () { return [ 1 ] } // document.ELEMENT_NODE\n\n constructor (params = {}) {\n super(params)\n this.ATTRIBUTES_TO_SKIP = new Set(params.attributesToSkip || ['data-bind'])\n this.ATTRIBUTES_BINDING_MAP = params.attributesBindingMap || DEFAULT_ATTRIBUTE_BINDING_MAP\n }\n\n * attributesToInterpolate (attributes) {\n for (const attr of Array.from(attributes)) {\n if (this.ATTRIBUTES_TO_SKIP.has(attr.name)) { continue }\n if (attr.specified && attr.value.includes('{{')) { yield attr }\n }\n }\n\n nodeHasBindings (node) {\n return !this.attributesToInterpolate(node.attributes).next().done\n }\n\n partsTogether (parts, context, node, ...valueToWrite) {\n if (parts.length > 1) {\n return parts\n .map(p => unwrap(p.asAttr(context, this.globals, node))).join('')\n }\n // It may be a writeable observable e.g. value=\"{{ value }}\".\n const part = parts[0].asAttr(context, this.globals)\n if (valueToWrite.length) { part(valueToWrite[0]) }\n return part\n }\n\n attributeBinding (name, parts) {\n return [name, parts]\n }\n\n * bindingParts (node, context) {\n for (const attr of this.attributesToInterpolate(node.attributes)) {\n const parts = Array.from(parseInterpolation(attr.value))\n if (parts.length) { yield this.attributeBinding(attr.name, parts) }\n }\n }\n\n getPossibleDirectBinding (attrName) {\n const bindingName = this.ATTRIBUTES_BINDING_MAP[attrName]\n return bindingName && this.bindingHandlers.get(attrName)\n }\n\n * bindingObjects (node, context) {\n for (const [attrName, parts] of this.bindingParts(node, context)) {\n const bindingForAttribute = this.getPossibleDirectBinding(attrName)\n const handler = bindingForAttribute ? attrName : `attr.${attrName}`\n const accessorFn = bindingForAttribute\n ? (...v) => this.partsTogether(parts, context, node, ...v)\n : (...v) => ({[attrName]: this.partsTogether(parts, context, node, ...v)})\n node.removeAttribute(attrName)\n yield { [handler]: accessorFn }\n }\n }\n\n getBindingAccessors (node, context) {\n return Object.assign({}, ...this.bindingObjects(node, context))\n }\n}\n", "import {\n Provider\n} from '@tko/provider'\n\nimport {\n parseInterpolation\n} from './mustacheParser'\n\n/**\n * Interpret {{ }}, {{{ }}}, {{# /}}, and {{# }} ... {{/ }} inside text nodes.\n *\n * This binding must come before the VirtualProvider.\n */\nexport default class TextMustacheProvider extends Provider {\n get FOR_NODE_TYPES () { return [ 3 ] } // document.TEXT_NODE\n\n * textToNodes (textNode) {\n const parent = textNode.parentNode\n const isTextarea = parent && parent.nodeName === 'TEXTAREA'\n const hasStash = textNode.nodeValue && textNode.nodeValue.includes('{{')\n\n if (!hasStash || isTextarea) { return }\n\n for (const part of parseInterpolation(textNode.nodeValue)) {\n yield * part.textNodeReplacement(textNode)\n }\n }\n\n textInterpolation (textNode) {\n const newNodes = Array.from(this.textToNodes(textNode))\n\n if (newNodes.length === 0) { return }\n\n if (textNode.parentNode) {\n const parent = textNode.parentNode\n const n = newNodes.length\n for (let i = 0; i < n; ++i) {\n parent.insertBefore(newNodes[i], textNode)\n }\n parent.removeChild(textNode)\n }\n\n return newNodes\n }\n\n /**\n * We convert as follows:\n *\n * {{# ... }} into <!-- ko ... -->\n * {{/ ... }} into <!-- /ko -->\n * {{# ... /}} into <!-- ko ... --><!-- /ko -->\n * {{ ... }} into <!-- ko text: ... --><!-- /ko -->\n * {{{ ... }}} into <!-- ko html: ... --><!-- /ko -->\n *\n * VirtualProvider can then pick up and do the actual binding.\n */\n preprocessNode (node) {\n return this.textInterpolation(node)\n }\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["options", "div", "
|
|
3
|
+
"sources": ["../index.ts", "../../utils/dist/array.js", "../../utils/dist/options.js", "../../utils/dist/error.js", "../../utils/dist/async.js", "../../utils/dist/object.js", "../../utils/dist/function.js", "../../utils/dist/dom/info.js", "../../utils/dist/dom/event.js", "../../utils/dist/dom/data.js", "../../utils/dist/dom/disposal.js", "../../utils/dist/dom/html.js", "../../utils/dist/dom/selectExtensions.js", "../../utils/dist/tasks.js", "../../observable/dist/dependencyDetection.js", "../../observable/dist/subscribableSymbol.js", "../../observable/dist/defer.js", "../../observable/dist/Subscription.js", "../../observable/dist/extenders.js", "../../observable/dist/subscribable.js", "../../observable/dist/observable.js", "../../observable/dist/observableArray.changeTracking.js", "../../observable/dist/observableArray.js", "../../provider/dist/BindingHandlerObject.js", "../../provider/dist/Provider.js", "../../utils.parser/dist/operators.js", "../../utils.parser/dist/Node.js", "../../utils.parser/dist/Expression.js", "../../utils.parser/dist/Arguments.js", "../../utils.parser/dist/identifierExpressions.js", "../../utils.parser/dist/Identifier.js", "../../utils.parser/dist/Parameters.js", "../../utils.parser/dist/Ternary.js", "../../utils.parser/dist/Parser.js", "../../utils.parser/dist/preparse.js", "../src/mustacheParser.ts", "../src/AttributeMustacheProvider.ts", "../src/TextMustacheProvider.ts"],
|
|
4
|
+
"sourcesContent": ["export * from './src'\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nconst { isArray } = Array;\nexport function arrayForEach(array, action, actionOwner) {\n if (arguments.length > 2) {\n action = action.bind(actionOwner);\n }\n for (let i = 0, j = array.length; i < j; ++i) {\n action(array[i], i, array);\n }\n}\nexport function arrayIndexOf(array, item) {\n return (isArray(array) ? array : [...array]).indexOf(item);\n}\nexport function arrayFirst(array, predicate, predicateOwner) {\n return (isArray(array) ? array : [...array]).find(predicate, predicateOwner);\n}\nexport function arrayMap(array, mapping, thisArg) {\n if (arguments.length > 2) {\n mapping = mapping.bind(thisArg);\n }\n return array === null ? [] : Array.from(array, mapping);\n}\nexport function arrayRemoveItem(array, itemToRemove) {\n const index = arrayIndexOf(array, itemToRemove);\n if (index > 0) {\n array.splice(index, 1);\n } else if (index === 0) {\n array.shift();\n }\n}\nexport function arrayGetDistinctValues(array) {\n const seen = /* @__PURE__ */ new Set();\n if (array === null) {\n return [];\n }\n return (isArray(array) ? array : [...array]).filter((item) => seen.has(item) ? false : seen.add(item));\n}\nexport function arrayFilter(array, predicate, predicateOwner) {\n if (arguments.length > 2) {\n predicate = predicate.bind(predicateOwner);\n }\n return array === null ? [] : (isArray(array) ? array : [...array]).filter(predicate);\n}\nexport function arrayPushAll(array, valuesToPush) {\n if (isArray(valuesToPush)) {\n array.push.apply(array, valuesToPush);\n } else {\n for (let i = 0, j = valuesToPush.length; i < j; i++) {\n array.push(valuesToPush[i]);\n }\n }\n return array;\n}\nexport function addOrRemoveItem(array, value, included) {\n const existingEntryIndex = arrayIndexOf(typeof array.peek === \"function\" ? array.peek() : array, value);\n if (existingEntryIndex < 0) {\n if (included) {\n array.push(value);\n }\n } else {\n if (!included) {\n array.splice(existingEntryIndex, 1);\n }\n }\n}\nexport function makeArray(arrayLikeObject) {\n return Array.from(arrayLikeObject);\n}\nexport function range(min, max) {\n const minimum = typeof min === \"function\" ? min() : min;\n const maximum = typeof max === \"function\" ? max() : max;\n const result = [];\n for (let i = minimum; i <= maximum; i++) {\n result.push(i);\n }\n return result;\n}\nexport function findMovesInArrayComparison(left, right, limitFailedCompares) {\n if (left.length && right.length) {\n let failedCompares, l, r, leftItem, rightItem;\n for (failedCompares = l = 0; (!limitFailedCompares || failedCompares < limitFailedCompares) && (leftItem = left[l]); ++l) {\n for (r = 0; rightItem = right[r]; ++r) {\n if (leftItem.value === rightItem.value) {\n leftItem.moved = rightItem.index;\n rightItem.moved = leftItem.index;\n right.splice(r, 1);\n failedCompares = r = 0;\n break;\n }\n }\n failedCompares += r;\n }\n }\n}\nconst statusNotInOld = \"added\";\nconst statusNotInNew = \"deleted\";\nexport function compareArrays(oldArray, newArray, options) {\n options = typeof options === \"boolean\" ? { dontLimitMoves: options } : options || {};\n oldArray = oldArray || [];\n newArray = newArray || [];\n if (oldArray.length < newArray.length) {\n return compareSmallArrayToBigArray(oldArray, newArray, statusNotInOld, statusNotInNew, options);\n } else {\n return compareSmallArrayToBigArray(newArray, oldArray, statusNotInNew, statusNotInOld, options);\n }\n}\nfunction compareSmallArrayToBigArray(smlArray, bigArray, statusNotInSml, statusNotInBig, options) {\n let myMin = Math.min, myMax = Math.max, editDistanceMatrix = new Array(), smlIndex, smlIndexMax = smlArray.length, bigIndex, bigIndexMax = bigArray.length, compareRange = bigIndexMax - smlIndexMax || 1, maxDistance = smlIndexMax + bigIndexMax + 1, thisRow, lastRow, bigIndexMaxForRow, bigIndexMinForRow;\n for (smlIndex = 0; smlIndex <= smlIndexMax; smlIndex++) {\n lastRow = thisRow;\n editDistanceMatrix.push(thisRow = new Array());\n bigIndexMaxForRow = myMin(bigIndexMax, smlIndex + compareRange);\n bigIndexMinForRow = myMax(0, smlIndex - 1);\n for (bigIndex = bigIndexMinForRow; bigIndex <= bigIndexMaxForRow; bigIndex++) {\n if (!bigIndex) {\n thisRow[bigIndex] = smlIndex + 1;\n } else if (!smlIndex) {\n thisRow[bigIndex] = bigIndex + 1;\n } else if (smlArray[smlIndex - 1] === bigArray[bigIndex - 1]) {\n thisRow[bigIndex] = lastRow[bigIndex - 1];\n } else {\n const northDistance = lastRow[bigIndex] || maxDistance;\n const westDistance = thisRow[bigIndex - 1] || maxDistance;\n thisRow[bigIndex] = myMin(northDistance, westDistance) + 1;\n }\n }\n }\n let editScript = new Array(), meMinusOne, notInSml = new Array(), notInBig = new Array();\n for (smlIndex = smlIndexMax, bigIndex = bigIndexMax; smlIndex || bigIndex; ) {\n meMinusOne = editDistanceMatrix[smlIndex][bigIndex] - 1;\n if (bigIndex && meMinusOne === editDistanceMatrix[smlIndex][bigIndex - 1]) {\n notInSml.push(\n editScript[editScript.length] = {\n // added\n status: statusNotInSml,\n value: bigArray[--bigIndex],\n index: bigIndex\n }\n );\n } else if (smlIndex && meMinusOne === editDistanceMatrix[smlIndex - 1][bigIndex]) {\n notInBig.push(\n editScript[editScript.length] = {\n // deleted\n status: statusNotInBig,\n value: smlArray[--smlIndex],\n index: smlIndex\n }\n );\n } else {\n --bigIndex;\n --smlIndex;\n if (!options?.sparse) {\n editScript.push({ status: \"retained\", value: bigArray[bigIndex] });\n }\n }\n }\n findMovesInArrayComparison(notInBig, notInSml, !options.dontLimitMoves && smlIndexMax * 10);\n return editScript.reverse();\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nexport class Options {\n constructor() {\n // The following options can be set on ko.options to make a function rewriting or something similar.\n this.bindingStringPreparsers = [];\n // Reference to the own knockout instance\n this.knockoutInstance = null;\n this.deferUpdates = false;\n // Don't set this false, with jquery 3.7+\n this.useOnlyNativeEvents = true;\n // Use HTML5 <template> tags if is supported\n this.useTemplateTag = true;\n this.protoProperty = \"__ko_proto__\";\n // Modify the default attribute from `data-bind`.\n this.defaultBindingAttribute = \"data-bind\";\n // Enable/disable <!-- ko binding: ... -> style bindings\n this.allowVirtualElements = true;\n // Global variables that can be accessed from bindings.\n this.bindingGlobals = /* @__PURE__ */ Object.create(null);\n // Whether the `with` binding creates a child context when used with `as`.\n this.createChildContextWithAs = false;\n // jQuery will be automatically set to globalThis.jQuery in applyBindings\n // if it is (strictly equal to) undefined. Set it to true to\n // disable automatically setting jQuery.\n this.disableJQueryUsage = false;\n this.Promise = globalThis.Promise;\n this.taskScheduler = null;\n this.debug = false;\n /**\n * The maximum size of template to parse.\n * Set to 0 to disable the limit.\n */\n this.templateSizeLimit = 4096;\n /**\n * Whether or not to allow script tags in templates.\n * If false, an error will be thrown if a script tag is detected in the template.\n * It is not recommended to set this to true.\n */\n this.allowScriptTagsInTemplates = false;\n this._sanitizeWarningLogged = false;\n this.global = globalThis;\n this.document = globalThis.document;\n // Filters for bindings\n // data-bind=\"expression | filter_1 | filter_2\"\n this.filters = {};\n // Used by the template binding.\n this.includeDestroyed = false;\n this.foreachHidesDestroyed = false;\n }\n get jQuery() {\n if (this.disableJQueryUsage) return;\n return this._jQuery ?? globalThis.jQuery;\n }\n /**\n * Set jQuery manuall to be used by TKO.\n * @param jQuery If jQuery set to undefined, TKO will not use jQuery and this.disableJQueryUsage to true.\n */\n set jQuery(jQuery) {\n if (!jQuery) {\n this.disableJQueryUsage = true;\n this._jQuery = void 0;\n } else {\n this._jQuery = jQuery;\n this.disableJQueryUsage = false;\n }\n }\n /**\n * Sanitize HTML templates before parsing them. Default is a no-op.\n * Please configure something like DOMPurify or validator.js for your environment.\n * @param html HTML string to be sanitized\n * @returns Sanitized HTML string\n */\n sanitizeHtmlTemplate(html) {\n if (!this._sanitizeWarningLogged) {\n console.warn(\n \"WARNING -- You don't have a HTML sanitizer configured. Please configure options.sanitizeHtmlTemplate to avoid XSS vulnerabilities.\"\n );\n this._sanitizeWarningLogged = true;\n }\n return html;\n }\n onError(e, throws = true) {\n if (throws) throw e;\n return e;\n }\n set(name, value) {\n this[name] = value;\n }\n // Overload getBindingHandler to have a custom lookup function.\n getBindingHandler(key) {\n return null;\n }\n cleanExternalData(node, callback) {\n }\n}\nconst options = new Options();\nexport default options;\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport options from \"./options\";\nexport function catchFunctionErrors(delegate) {\n if (!options.onError) {\n return delegate;\n }\n return (...args) => {\n try {\n return delegate(...args);\n } catch (err) {\n options.onError(err);\n }\n };\n}\nexport function deferError(error) {\n safeSetTimeout(function() {\n throw error;\n }, 0);\n}\nexport function safeSetTimeout(handler, timeout) {\n return setTimeout(catchFunctionErrors(handler), timeout);\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { safeSetTimeout } from \"./error\";\nexport function throttle(callback, timeout) {\n let timeoutInstance;\n return function(...args) {\n if (!timeoutInstance) {\n timeoutInstance = safeSetTimeout(function() {\n timeoutInstance = void 0;\n callback(...args);\n }, timeout);\n }\n };\n}\nexport function debounce(callback, timeout) {\n let timeoutInstance;\n return function(...args) {\n clearTimeout(timeoutInstance);\n timeoutInstance = safeSetTimeout(() => callback(...args), timeout);\n };\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nexport function hasOwnProperty(obj, propName) {\n return Object.prototype.hasOwnProperty.call(obj, propName);\n}\nexport function isObjectLike(obj) {\n if (obj === null) {\n return false;\n }\n return typeof obj === \"object\" || typeof obj === \"function\";\n}\nexport function extend(target, source) {\n if (source) {\n for (const prop of Object.keys(source)) {\n if (hasOwnProperty(source, prop)) {\n ;\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nexport function objectForEach(obj, action) {\n for (const prop in obj) {\n if (hasOwnProperty(obj, prop)) {\n action(prop, obj[prop]);\n }\n }\n}\nexport function objectMap(source, mapping, thisArg) {\n if (!source) {\n return source;\n }\n if (arguments.length > 2) {\n mapping = mapping.bind(thisArg);\n }\n const target = {};\n for (const prop in source) {\n if (hasOwnProperty(source, prop)) {\n target[prop] = mapping(source[prop], prop, source);\n }\n }\n return target;\n}\nexport function getObjectOwnProperty(obj, propName) {\n return hasOwnProperty(obj, propName) ? obj[propName] : void 0;\n}\nexport function clonePlainObjectDeep(obj, seen) {\n if (!seen) {\n seen = new Array();\n }\n if (!obj || typeof obj !== \"object\" || obj.constructor !== Object || seen.indexOf(obj) !== -1) {\n return obj;\n }\n seen.push(obj);\n const result = {};\n for (const prop in obj) {\n if (hasOwnProperty(obj, prop)) {\n result[prop] = clonePlainObjectDeep(obj[prop], seen);\n }\n }\n return result;\n}\nexport function safeStringify(value) {\n const seen = /* @__PURE__ */ new Set();\n return JSON.stringify(value, (k, v) => {\n if (seen.has(v)) {\n return \"...\";\n }\n if (typeof v === \"object\") {\n seen.add(v);\n }\n return v;\n });\n}\nexport function isThenable(object) {\n return isObjectLike(object) && typeof object.then === \"function\";\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nfunction testOverwrite() {\n try {\n Object.defineProperty(function x() {\n }, \"length\", {});\n return true;\n } catch (e) {\n return false;\n }\n}\nexport const functionSupportsLengthOverwrite = testOverwrite();\nexport function overwriteLengthPropertyIfSupported(fn, descriptor) {\n if (functionSupportsLengthOverwrite) {\n Object.defineProperty(fn, \"length\", descriptor);\n }\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { arrayFirst } from \"../array\";\nexport function domNodeIsContainedBy(node, containedByNode) {\n if (node === containedByNode) {\n return true;\n }\n if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n return false;\n }\n if (containedByNode.contains) {\n return containedByNode.contains(node.nodeType !== Node.ELEMENT_NODE ? node.parentNode : node);\n }\n if (containedByNode.compareDocumentPosition) {\n return (containedByNode.compareDocumentPosition(node) & 16) == 16;\n }\n let parentNode = node;\n while (parentNode && parentNode != containedByNode) {\n parentNode = parentNode.parentNode;\n }\n return !!parentNode;\n}\nexport function domNodeIsAttachedToDocument(node) {\n return domNodeIsContainedBy(node, node.ownerDocument.documentElement);\n}\nexport function anyDomNodeIsAttachedToDocument(nodes) {\n return !!arrayFirst(nodes, domNodeIsAttachedToDocument);\n}\nexport function tagNameLower(element) {\n return element && element.tagName && element.tagName.toLowerCase();\n}\nexport function isDomElement(obj) {\n if (window.HTMLElement) {\n return obj instanceof HTMLElement;\n } else {\n return obj && obj.tagName && obj.nodeType === Node.ELEMENT_NODE;\n }\n}\nexport function isDocumentFragment(obj) {\n if (window.DocumentFragment) {\n return obj instanceof DocumentFragment;\n } else {\n return obj && obj.nodeType === Node.DOCUMENT_FRAGMENT_NODE;\n }\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { objectForEach } from \"../object\";\nimport { catchFunctionErrors } from \"../error\";\nimport { tagNameLower } from \"./info\";\nimport options from \"../options\";\nconst knownEvents = {}, knownEventTypesByEventName = {};\nknownEvents[\"UIEvents\"] = [\"keyup\", \"keydown\", \"keypress\"];\nknownEvents[\"MouseEvents\"] = [\n \"click\",\n \"dblclick\",\n \"mousedown\",\n \"mouseup\",\n \"mousemove\",\n \"mouseover\",\n \"mouseout\",\n \"mouseenter\",\n \"mouseleave\"\n];\nobjectForEach(knownEvents, function(eventType, knownEventsForType) {\n if (knownEventsForType.length) {\n for (let i = 0, j = knownEventsForType.length; i < j; i++) {\n knownEventTypesByEventName[knownEventsForType[i]] = eventType;\n }\n }\n});\nfunction isClickOnCheckableElement(element, eventType) {\n if (tagNameLower(element) !== \"input\" || !element.type) return false;\n if (eventType.toLowerCase() != \"click\") return false;\n const inputType = element.type;\n return inputType == \"checkbox\" || inputType == \"radio\";\n}\nexport function registerEventHandler(element, eventType, handler, eventOptions = false) {\n const wrappedHandler = catchFunctionErrors(handler);\n const mustUseNative = Boolean(eventOptions);\n const jQuery = options.jQuery;\n if (!options.useOnlyNativeEvents && !mustUseNative && jQuery) {\n jQuery(element).on(eventType, wrappedHandler);\n } else if (typeof element.addEventListener === \"function\") {\n element.addEventListener(eventType, wrappedHandler, eventOptions);\n } else {\n throw new Error(\"Browser doesn't support addEventListener\");\n }\n}\nfunction hasClick(element) {\n return typeof element.click === \"function\";\n}\nexport function triggerEvent(element, eventType) {\n if (!(element && element.nodeType)) {\n throw new Error(\"element must be a DOM node when calling triggerEvent\");\n }\n const useClickWorkaround = isClickOnCheckableElement(element, eventType);\n if (!options.useOnlyNativeEvents && options.jQuery && !useClickWorkaround) {\n options.jQuery(element).trigger(eventType);\n } else if (typeof document.createEvent === \"function\") {\n if (typeof element.dispatchEvent === \"function\") {\n const eventCategory = knownEventTypesByEventName[eventType] || \"HTMLEvents\";\n const event = document.createEvent(eventCategory);\n event.initEvent(\n eventType,\n true,\n true,\n options.global,\n 0,\n 0,\n 0,\n 0,\n 0,\n false,\n false,\n false,\n false,\n 0,\n element\n );\n element.dispatchEvent(event);\n } else {\n throw new Error(\"The supplied element doesn't support dispatchEvent\");\n }\n } else if (useClickWorkaround && hasClick(element)) {\n element.click();\n } else {\n throw new Error(\"Browser doesn't support triggering events\");\n }\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nconst datastoreTime = (/* @__PURE__ */ new Date()).getTime();\nconst dataStoreKeyExpandoPropertyName = `__ko__${datastoreTime}`;\nconst dataStoreSymbol = /* @__PURE__ */ Symbol(\"Knockout data\");\nconst dataStore = {};\nlet uniqueId = 0;\nfunction isSafeKey(key) {\n return key !== \"__proto__\" && key !== \"constructor\" && key !== \"prototype\";\n}\nfunction getDataForNode(node, createIfNotFound) {\n let dataForNode = node[dataStoreSymbol];\n if (!dataForNode && createIfNotFound) {\n dataForNode = node[dataStoreSymbol] = {};\n }\n return dataForNode;\n}\nfunction clear(node) {\n if (node[dataStoreSymbol]) {\n delete node[dataStoreSymbol];\n return true;\n }\n return false;\n}\nexport function nextKey() {\n return uniqueId++ + dataStoreKeyExpandoPropertyName;\n}\nfunction get(node, key) {\n if (!isSafeKey(key)) throw new Error(\"Unsafe key for DOM data: \" + key);\n const dataForNode = getDataForNode(node, false);\n return dataForNode && dataForNode[key];\n}\nfunction set(node, key, value) {\n if (!isSafeKey(key)) throw new Error(\"Unsafe key for DOM data: \" + key);\n const dataForNode = getDataForNode(\n node,\n value !== void 0\n /* createIfNotFound */\n );\n if (dataForNode) {\n dataForNode[key] = value;\n }\n}\nfunction getOrSet(node, key, value) {\n if (!isSafeKey(key)) throw new Error(\"Unsafe key for DOM data: \" + key);\n const dataForNode = getDataForNode(\n node,\n true\n /* createIfNotFound */\n );\n return dataForNode[key] || (dataForNode[key] = value);\n}\nexport { get, set, getOrSet, clear };\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport * as domData from \"./data\";\nimport { default as options } from \"../options\";\nimport { arrayRemoveItem, arrayIndexOf } from \"../array\";\nconst domDataKey = domData.nextKey();\nconst cleanableNodeTypes = { 1: true, 8: true, 9: true };\nconst cleanableNodeTypesWithDescendants = { 1: true, 9: true };\nfunction getDisposeCallbacksCollection(node, createIfNotFound) {\n let allDisposeCallbacks = domData.get(node, domDataKey);\n if (allDisposeCallbacks === void 0 && createIfNotFound) {\n allDisposeCallbacks = new Array();\n domData.set(node, domDataKey, allDisposeCallbacks);\n }\n return allDisposeCallbacks;\n}\nfunction destroyCallbacksCollection(node) {\n domData.set(node, domDataKey, void 0);\n}\nfunction cleanSingleNode(node) {\n let callbacks = getDisposeCallbacksCollection(node, false);\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](node);\n }\n }\n domData.clear(node);\n for (let i = 0, j = otherNodeCleanerFunctions.length; i < j; ++i) {\n otherNodeCleanerFunctions[i](node);\n }\n if (options.cleanExternalData) {\n options.cleanExternalData(node);\n }\n if (cleanableNodeTypesWithDescendants[node.nodeType]) {\n cleanNodesInList(\n node.childNodes,\n true\n /* onlyComments */\n );\n }\n}\nfunction cleanNodesInList(nodeList, onlyComments) {\n const cleanedNodes = new Array();\n let lastCleanedNode;\n for (let i = 0; i < nodeList.length; i++) {\n if (!onlyComments || nodeList[i].nodeType === Node.COMMENT_NODE) {\n cleanSingleNode(cleanedNodes[cleanedNodes.length] = lastCleanedNode = nodeList[i]);\n if (nodeList[i] !== lastCleanedNode) {\n while (i-- && arrayIndexOf(cleanedNodes, nodeList[i]) === -1) {\n }\n }\n }\n }\n}\nexport function addDisposeCallback(node, callback) {\n if (typeof callback !== \"function\") {\n throw new Error(\"Callback must be a function\");\n }\n getDisposeCallbacksCollection(node, true).push(callback);\n}\nexport function removeDisposeCallback(node, callback) {\n const callbacksCollection = getDisposeCallbacksCollection(node, false);\n if (callbacksCollection) {\n arrayRemoveItem(callbacksCollection, callback);\n if (callbacksCollection.length === 0) {\n destroyCallbacksCollection(node);\n }\n }\n}\nexport function cleanNode(node) {\n if (cleanableNodeTypes[node.nodeType]) {\n cleanSingleNode(node);\n if (cleanableNodeTypesWithDescendants[node.nodeType] && node instanceof Element) {\n cleanNodesInList(node.getElementsByTagName(\"*\"));\n }\n }\n return node;\n}\nexport function removeNode(node) {\n if (!node) {\n return;\n }\n cleanNode(node);\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nexport const otherNodeCleanerFunctions = new Array();\nexport function addCleaner(fn) {\n otherNodeCleanerFunctions.push(fn);\n}\nexport function removeCleaner(fn) {\n const fnIndex = otherNodeCleanerFunctions.indexOf(fn);\n if (fnIndex >= 0) {\n otherNodeCleanerFunctions.splice(fnIndex, 1);\n }\n}\nexport function cleanjQueryData(node) {\n const jQueryCleanNodeFn = options.jQuery ? options.jQuery.cleanData : null;\n if (jQueryCleanNodeFn) {\n jQueryCleanNodeFn([node]);\n }\n}\notherNodeCleanerFunctions.push(cleanjQueryData);\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { makeArray } from \"../array\";\nimport { emptyDomNode, moveCleanedNodesToContainerElement } from \"./manipulation\";\nimport * as virtualElements from \"./virtualElements\";\nimport options from \"../options\";\nconst supportsTemplateTag = options.useTemplateTag && options.document && \"content\" in options.document.createElement(\"template\");\nfunction simpleHtmlParse(html, documentContext) {\n if (!documentContext) {\n documentContext = document;\n }\n const div = documentContext.createElement(\"div\");\n div.innerHTML = html;\n return makeArray(div.childNodes);\n}\nfunction templateHtmlParse(html, documentContext) {\n if (!documentContext) {\n documentContext = document;\n }\n const template = documentContext.createElement(\"template\");\n template.innerHTML = html;\n return makeArray(template.content.childNodes);\n}\nfunction jQueryHtmlParse(html, documentContext) {\n const jQuery = options.jQuery;\n if (jQuery) {\n return jQuery.parseHTML(html, documentContext) || [];\n }\n return [];\n}\nexport function parseHtmlFragment(html, documentContext) {\n const saferHtml = validateHTMLInput(html);\n if (supportsTemplateTag) return templateHtmlParse(saferHtml, documentContext);\n if (options.jQuery) {\n return jQueryHtmlParse(saferHtml, documentContext);\n }\n return simpleHtmlParse(saferHtml, documentContext);\n}\nconst scriptTagPattern = /<script\\b[^>]*>([\\s\\S]*?)<\\/script[^>]*>/i;\nfunction validateHTMLInput(html) {\n if (!html) return \"\";\n if (options.templateSizeLimit > 0 && html.length > options.templateSizeLimit) {\n throw new Error(\"Template is too long. Please configure the 'templateSizeLimit'\");\n }\n if (!options.allowScriptTagsInTemplates && scriptTagPattern.test(html)) {\n throw new Error(\"Script-tag in template detected.\");\n }\n return options.sanitizeHtmlTemplate(html);\n}\nexport function parseHtmlForTemplateNodes(html, documentContext) {\n const nodes = parseHtmlFragment(html, documentContext);\n return nodes.length && nodes[0].parentElement || moveCleanedNodesToContainerElement(nodes);\n}\nexport function setHtml(node, html) {\n emptyDomNode(node);\n if (typeof html === \"function\") {\n html = html();\n }\n if (html !== null && html !== void 0) {\n if (typeof html !== \"string\") {\n html = html.toString();\n }\n const jQuery = options.jQuery;\n if (jQuery && !supportsTemplateTag) {\n const saferHtml = validateHTMLInput(html);\n jQuery(node).html(saferHtml);\n } else {\n let parsedNodes;\n if (node.ownerDocument) {\n parsedNodes = parseHtmlFragment(html, node.ownerDocument);\n } else {\n parsedNodes = parseHtmlFragment(html);\n }\n if (node.nodeType === Node.COMMENT_NODE) {\n if (html === null) {\n virtualElements.emptyNode(node);\n } else {\n virtualElements.setDomNodeChildren(node, parsedNodes);\n }\n } else {\n for (let i = 0; i < parsedNodes.length; i++) {\n node.appendChild(parsedNodes[i]);\n }\n }\n }\n }\n}\nexport function setTextContent(element, textContent) {\n let value = typeof textContent === \"function\" ? textContent() : textContent;\n if (value === null || value === void 0) {\n value = \"\";\n }\n const innerTextNode = virtualElements.firstChild(element);\n if (!innerTextNode || innerTextNode.nodeType !== Node.TEXT_NODE || virtualElements.nextSibling(innerTextNode)) {\n virtualElements.setDomNodeChildren(element, [element.ownerDocument.createTextNode(value)]);\n } else {\n ;\n innerTextNode.data = value;\n }\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { tagNameLower } from \"./info\";\nimport * as domData from \"./data\";\nconst hasDomDataExpandoProperty = /* @__PURE__ */ Symbol(\"Knockout selectExtensions hasDomDataProperty\");\nexport const selectExtensions = {\n optionValueDomDataKey: domData.nextKey(),\n readValue: function(element) {\n switch (tagNameLower(element)) {\n case \"option\": {\n if (element[hasDomDataExpandoProperty] === true) {\n return domData.get(element, selectExtensions.optionValueDomDataKey);\n }\n return element.value;\n }\n case \"select\": {\n const selectElement = element;\n return selectElement.selectedIndex >= 0 ? selectExtensions.readValue(selectElement.options[selectElement.selectedIndex]) : void 0;\n }\n default:\n return element.value;\n }\n },\n writeValue: function(element, value, allowUnset) {\n switch (tagNameLower(element)) {\n case \"option\":\n if (typeof value === \"string\") {\n domData.set(element, selectExtensions.optionValueDomDataKey, void 0);\n if (hasDomDataExpandoProperty in element) {\n delete element[hasDomDataExpandoProperty];\n }\n ;\n element.value = value;\n } else {\n const el = element;\n domData.set(element, selectExtensions.optionValueDomDataKey, value);\n el[hasDomDataExpandoProperty] = true;\n el.value = typeof value === \"number\" ? value : \"\";\n }\n break;\n case \"select\":\n {\n if (value === \"\" || value === null) {\n value = void 0;\n }\n let selection = -1;\n const selectElement = element;\n for (let i = 0, n = selectElement.options.length, optionValue; i < n; ++i) {\n optionValue = selectExtensions.readValue(selectElement.options[i]);\n const strictEqual = optionValue === value;\n const blankEqual = optionValue === \"\" && value === void 0;\n const numericEqual = typeof value === \"number\" && Number(optionValue) === value;\n if (strictEqual || blankEqual || numericEqual) {\n selection = i;\n break;\n }\n }\n if (allowUnset || selection >= 0 || value === void 0 && selectElement.size > 1) {\n selectElement.selectedIndex = selection;\n }\n }\n break;\n default:\n if (value === null || value === void 0) {\n value = \"\";\n }\n ;\n element.value = value;\n break;\n }\n }\n};\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport options from \"./options\";\nimport { deferError } from \"./error\";\nlet taskQueue = new Array(), taskQueueLength = 0, nextHandle = 1, nextIndexToProcess = 0, w = options.global;\nif (w && w.MutationObserver && !(w.navigator && w.navigator.standalone)) {\n options.taskScheduler = (function(callback) {\n const div = w.document.createElement(\"div\");\n new w.MutationObserver(callback).observe(div, { attributes: true });\n return function() {\n div.classList.toggle(\"foo\");\n };\n })(scheduledProcess);\n} else {\n options.taskScheduler = function(callback) {\n setTimeout(callback, 0);\n };\n}\nfunction processTasks() {\n if (taskQueueLength) {\n let mark = taskQueueLength, countMarks = 0;\n for (let task; nextIndexToProcess < taskQueueLength; ) {\n if (task = taskQueue[nextIndexToProcess++]) {\n if (nextIndexToProcess > mark) {\n if (++countMarks >= 5e3) {\n nextIndexToProcess = taskQueueLength;\n deferError(Error(\"'Too much recursion' after processing \" + countMarks + \" task groups.\"));\n break;\n }\n mark = taskQueueLength;\n }\n try {\n task();\n } catch (ex) {\n deferError(ex);\n }\n }\n }\n }\n}\nfunction scheduledProcess() {\n processTasks();\n nextIndexToProcess = taskQueueLength = taskQueue.length = 0;\n}\nfunction scheduleTaskProcessing() {\n options.taskScheduler(scheduledProcess);\n}\nexport function schedule(func) {\n if (!taskQueueLength) {\n scheduleTaskProcessing();\n }\n taskQueue[taskQueueLength++] = func;\n return nextHandle++;\n}\nexport function cancel(handle) {\n const index = handle - (nextHandle - taskQueueLength);\n if (index >= nextIndexToProcess && index < taskQueueLength) {\n taskQueue[index] = null;\n }\n}\nexport function resetForTesting() {\n const length = taskQueueLength - nextIndexToProcess;\n nextIndexToProcess = taskQueueLength = taskQueue.length = 0;\n return length;\n}\nexport { processTasks as runEarly };\n", "// @tko/observable \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { isSubscribable } from \"./subscribableSymbol\";\nconst outerFrames = new Array();\nlet currentFrame;\nlet lastId = 0;\nfunction getId() {\n return ++lastId;\n}\nexport function begin(options) {\n outerFrames.push(currentFrame);\n currentFrame = options;\n}\nexport function end() {\n currentFrame = outerFrames.pop();\n}\nexport function registerDependency(subscribable) {\n if (currentFrame) {\n if (!isSubscribable(subscribable)) {\n throw new Error(\"Only subscribable things can act as dependencies\");\n }\n currentFrame.callback.call(\n currentFrame.callbackTarget,\n subscribable,\n subscribable._id || (subscribable._id = getId())\n );\n }\n}\nexport function ignore(callback, callbackTarget, callbackArgs) {\n try {\n begin();\n return callback.apply(callbackTarget, callbackArgs || []);\n } finally {\n end();\n }\n}\nexport function getDependenciesCount() {\n if (currentFrame) {\n return currentFrame.computed.getDependenciesCount();\n }\n return void 0;\n}\nexport function getDependencies() {\n if (currentFrame) {\n return currentFrame.computed.getDependencies();\n }\n return void 0;\n}\nexport function isInitial() {\n if (currentFrame) {\n return currentFrame.isInitial;\n }\n return void 0;\n}\nexport { ignore as ignoreDependencies };\n", "// @tko/observable \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nexport const SUBSCRIBABLE_SYM = /* @__PURE__ */ Symbol(\"Knockout Subscribable\");\nexport function isSubscribable(instance) {\n return instance && instance[SUBSCRIBABLE_SYM] || false;\n}\n", "// @tko/observable \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { tasks } from \"@tko/utils\";\nexport function deferUpdates(target) {\n if (target._deferUpdates) {\n return;\n }\n target._deferUpdates = true;\n target.limit(function(callback) {\n let handle;\n let ignoreUpdates = false;\n return function() {\n if (!ignoreUpdates) {\n tasks.cancel(handle);\n handle = tasks.schedule(callback);\n try {\n ignoreUpdates = true;\n target.notifySubscribers(void 0, \"dirty\");\n } finally {\n ignoreUpdates = false;\n }\n }\n };\n });\n}\n", "// @tko/observable \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { removeDisposeCallback, addDisposeCallback } from \"@tko/utils\";\nexport default class Subscription {\n constructor(target, observer, disposeCallback) {\n this._target = target;\n this._callback = observer.next;\n this._disposeCallback = disposeCallback;\n this._isDisposed = false;\n this._domNodeDisposalCallback = null;\n }\n dispose() {\n if (this._domNodeDisposalCallback) {\n removeDisposeCallback(this._node, this._domNodeDisposalCallback);\n }\n this._isDisposed = true;\n this._disposeCallback();\n }\n disposeWhenNodeIsRemoved(node) {\n this._node = node;\n addDisposeCallback(node, this._domNodeDisposalCallback = this.dispose.bind(this));\n }\n // TC39 Observable API\n unsubscribe() {\n this.dispose();\n }\n get closed() {\n return this._isDisposed;\n }\n}\n", "// @tko/observable \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { options, objectForEach, throttle as throttleFn, debounce as debounceFn } from \"@tko/utils\";\nimport { deferUpdates } from \"./defer\";\nconst primitiveTypes = { undefined: 1, boolean: 1, number: 1, string: 1 };\nexport function valuesArePrimitiveAndEqual(a, b) {\n const oldValueIsPrimitive = a === null || typeof a in primitiveTypes;\n return oldValueIsPrimitive ? a === b : false;\n}\nexport function applyExtenders(requestedExtenders) {\n let target = this;\n if (requestedExtenders) {\n objectForEach(requestedExtenders, function(key, value) {\n const extenderHandler = extenders[key];\n if (typeof extenderHandler === \"function\") {\n target = extenderHandler(target, value) || target;\n } else {\n options.onError(new Error(\"Extender not found: \" + key));\n }\n });\n }\n return target;\n}\nexport function notify(target, notifyWhen) {\n target.equalityComparer = notifyWhen == \"always\" ? null : valuesArePrimitiveAndEqual;\n}\nexport function deferred(target, option) {\n if (option !== true) {\n throw new Error(\n \"The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.\"\n );\n }\n deferUpdates(target);\n}\nexport function rateLimit(target, options2) {\n let timeout, method, limitFunction;\n if (typeof options2 === \"number\") {\n timeout = options2;\n } else {\n timeout = options2.timeout;\n method = options2.method;\n }\n target._deferUpdates = false;\n limitFunction = method === \"notifyWhenChangesStop\" ? debounceFn : throttleFn;\n target.limit(function(callback) {\n return limitFunction(callback, timeout);\n });\n}\nexport const extenders = { notify, deferred, rateLimit };\n", "// @tko/observable \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { arrayRemoveItem, objectForEach, options } from \"@tko/utils\";\nimport Subscription from \"./Subscription\";\nimport { SUBSCRIBABLE_SYM } from \"./subscribableSymbol\";\nimport { applyExtenders } from \"./extenders\";\nimport * as dependencyDetection from \"./dependencyDetection\";\nexport { isSubscribable } from \"./subscribableSymbol\";\nexport const LATEST_VALUE = /* @__PURE__ */ Symbol(\"Knockout latest value\");\nif (!Symbol.observable) {\n Symbol.observable = /* @__PURE__ */ Symbol.for(\"@tko/Symbol.observable\");\n}\nexport const subscribable = function subscribableFactory() {\n Object.setPrototypeOf(this, ko_subscribable_fn);\n ko_subscribable_fn.init(this);\n};\nexport const defaultEvent = \"change\";\nconst ko_subscribable_fn = {\n [SUBSCRIBABLE_SYM]: true,\n [Symbol.observable]() {\n return this;\n },\n init(instance) {\n instance._subscriptions = { change: [] };\n instance._versionNumber = 1;\n },\n subscribe(callback, callbackTarget, event) {\n const isTC39Callback = typeof callback === \"object\" && callback.next;\n event = event || defaultEvent;\n const observer = isTC39Callback ? callback : { next: callbackTarget ? callback.bind(callbackTarget) : callback };\n const subscriptionInstance = new Subscription(this, observer, () => {\n arrayRemoveItem(this._subscriptions[event], subscriptionInstance);\n if (this.afterSubscriptionRemove) {\n this.afterSubscriptionRemove(event);\n }\n });\n if (this.beforeSubscriptionAdd) {\n this.beforeSubscriptionAdd(event);\n }\n if (!this._subscriptions[event]) {\n this._subscriptions[event] = new Array();\n }\n this._subscriptions[event].push(subscriptionInstance);\n if (isTC39Callback && LATEST_VALUE in this) {\n observer.next(this[LATEST_VALUE]);\n }\n return subscriptionInstance;\n },\n notifySubscribers(valueToNotify, event) {\n event = event || defaultEvent;\n if (event === defaultEvent) {\n this.updateVersion();\n }\n if (this.hasSubscriptionsForEvent(event)) {\n const subs = event === defaultEvent && this._changeSubscriptions || [...this._subscriptions[event]];\n try {\n dependencyDetection.begin();\n for (let i = 0, subscriptionInstance; subscriptionInstance = subs[i]; ++i) {\n if (!subscriptionInstance._isDisposed) {\n subscriptionInstance._callback(valueToNotify);\n }\n }\n } finally {\n dependencyDetection.end();\n }\n }\n },\n getVersion() {\n return this._versionNumber;\n },\n hasChanged(versionToCheck) {\n return this.getVersion() !== versionToCheck;\n },\n updateVersion() {\n ++this._versionNumber;\n },\n hasSubscriptionsForEvent(event) {\n return this._subscriptions[event] && this._subscriptions[event].length;\n },\n getSubscriptionsCount(event) {\n if (event) {\n return this._subscriptions[event] && this._subscriptions[event].length || 0;\n } else {\n let total = 0;\n objectForEach(this._subscriptions, function(eventName, subscriptions) {\n if (eventName !== \"dirty\") {\n total += subscriptions.length;\n }\n });\n return total;\n }\n },\n isDifferent(oldValue, newValue) {\n return !this.equalityComparer || !this.equalityComparer(oldValue, newValue);\n },\n once(cb) {\n const subs = this.subscribe((nv) => {\n subs.dispose();\n cb(nv);\n });\n },\n when(test, returnValue) {\n const current = this.peek();\n const givenRv = arguments.length > 1;\n const testFn = typeof test === \"function\" ? test : (v) => v === test;\n if (testFn(current)) {\n return options.Promise.resolve(givenRv ? returnValue : current);\n }\n return new options.Promise((resolve, reject) => {\n const subs = this.subscribe((newValue) => {\n if (testFn(newValue)) {\n subs.dispose();\n resolve(givenRv ? returnValue : newValue);\n }\n });\n });\n },\n yet(test, ...args) {\n const testFn = typeof test === \"function\" ? test : (v) => v === test;\n const negated = (v) => !testFn(v);\n return this.when(negated, ...args);\n },\n next() {\n return new Promise((resolve) => this.once(resolve));\n },\n toString() {\n return \"[object Object]\";\n },\n extend: applyExtenders\n};\nObject.setPrototypeOf(ko_subscribable_fn, Function.prototype);\nsubscribable.fn = ko_subscribable_fn;\n", "// @tko/observable \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { options, overwriteLengthPropertyIfSupported } from \"@tko/utils\";\nimport * as dependencyDetection from \"./dependencyDetection\";\nimport { deferUpdates } from \"./defer\";\nimport { subscribable, defaultEvent, LATEST_VALUE } from \"./subscribable\";\nimport { valuesArePrimitiveAndEqual } from \"./extenders\";\nexport function observable(initialValue) {\n function Observable() {\n if (arguments.length > 0) {\n if (Observable.isDifferent(Observable[LATEST_VALUE], arguments[0])) {\n ;\n Observable.valueWillMutate();\n Observable[LATEST_VALUE] = arguments[0];\n Observable.valueHasMutated();\n }\n return this;\n } else {\n dependencyDetection.registerDependency(Observable);\n return Observable[LATEST_VALUE];\n }\n }\n overwriteLengthPropertyIfSupported(Observable, { value: void 0 });\n Observable[LATEST_VALUE] = initialValue;\n subscribable.fn.init(Observable);\n Object.setPrototypeOf(Observable, observable.fn);\n if (options.deferUpdates) {\n deferUpdates(Observable);\n }\n return Observable;\n}\nobservable.fn = {\n /**\n * Compares two values for equality.\n * @param a The first value.\n * @param b The second value.\n * @returns True if the values are equal, otherwise false.\n */\n equalityComparer: valuesArePrimitiveAndEqual,\n /**\n * Returns the current value of the observable without creating a dependency.\n * @returns The current value.\n */\n peek() {\n return this[LATEST_VALUE];\n },\n /**\n * Notifies subscribers that the value has changed.\n */\n valueHasMutated() {\n this.notifySubscribers(this[LATEST_VALUE], \"spectate\");\n this.notifySubscribers(this[LATEST_VALUE]);\n },\n /**\n * Notifies subscribers that the value is about to change.\n */\n valueWillMutate() {\n this.notifySubscribers(this[LATEST_VALUE], \"beforeChange\");\n },\n /**\n * Modifies the value of the observable using a function.\n * @param fn The function to modify the value.\n * @param peek Whether to use the current value without creating a dependency.\n * @returns The modified observable.\n */\n modify(fn, peek2 = true) {\n this(fn(peek2 ? this.peek() : this()));\n },\n // Some observables may not always be writeable, notably computeds.\n isWriteable: true\n};\nfunction limitNotifySubscribers(value, event) {\n if (!event || event === defaultEvent) {\n this._limitChange(value);\n } else if (event === \"beforeChange\") {\n this._limitBeforeChange(value);\n } else {\n this._origNotifySubscribers(value, event);\n }\n}\n;\nsubscribable.fn.limit = function limit(limitFunction) {\n const self = this;\n const selfIsObservable = isObservable(self);\n const beforeChange = \"beforeChange\";\n let ignoreBeforeChange, notifyNextChange, previousValue, pendingValue, didUpdate;\n if (!self._origNotifySubscribers) {\n self._origNotifySubscribers = self.notifySubscribers;\n self.notifySubscribers = limitNotifySubscribers;\n }\n const finish = limitFunction(function() {\n self._notificationIsPending = false;\n if (selfIsObservable && pendingValue === self) {\n pendingValue = self._evalIfChanged ? self._evalIfChanged() : self();\n }\n const shouldNotify = notifyNextChange || didUpdate && self.isDifferent(previousValue, pendingValue);\n self._notifyNextChange = didUpdate = ignoreBeforeChange = false;\n if (shouldNotify) {\n self._origNotifySubscribers(previousValue = pendingValue);\n }\n });\n Object.assign(self, {\n _limitChange(value, isDirty) {\n if (!isDirty || !self._notificationIsPending) {\n didUpdate = !isDirty;\n }\n self._changeSubscriptions = [...self._subscriptions[defaultEvent]];\n self._notificationIsPending = ignoreBeforeChange = true;\n pendingValue = value;\n finish();\n },\n _limitBeforeChange(value) {\n if (!ignoreBeforeChange) {\n previousValue = value;\n self._origNotifySubscribers(value, beforeChange);\n }\n },\n _notifyNextChangeIfValueIsDifferent() {\n if (self.isDifferent(previousValue, self.peek(\n true\n /* evaluate */\n ))) {\n notifyNextChange = true;\n }\n },\n _recordUpdate() {\n didUpdate = true;\n }\n });\n};\nObject.setPrototypeOf(observable.fn, subscribable.fn);\nconst protoProperty = observable.protoProperty = options.protoProperty;\nobservable.fn[protoProperty] = observable;\nobservable.observablePrototypes = /* @__PURE__ */ new Set([observable]);\nexport function isObservable(instance) {\n const proto = typeof instance === \"function\" && instance[protoProperty];\n if (proto && !observable.observablePrototypes.has(proto)) {\n throw Error(\"Invalid object that looks like an observable; possibly from another Knockout instance\");\n }\n return !!proto;\n}\nexport function unwrap(value) {\n return isObservable(value) ? value() : value;\n}\nexport function peek(value) {\n return isObservable(value) ? value.peek() : value;\n}\nexport function isWriteableObservable(instance) {\n return isObservable(instance) && instance.isWriteable;\n}\nexport { isWriteableObservable as isWritableObservable };\n", "// @tko/observable \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { extend, compareArrays, findMovesInArrayComparison } from \"@tko/utils\";\nimport { defaultEvent } from \"./subscribable\";\nimport { extenders } from \"./extenders\";\nexport const arrayChangeEventName = \"arrayChange\";\nexport function trackArrayChanges(target, options) {\n target.compareArrayOptions = {};\n if (options && typeof options === \"object\") {\n extend(target.compareArrayOptions, options);\n }\n target.compareArrayOptions.sparse = true;\n if (target.cacheDiffForKnownOperation) {\n return;\n }\n let trackingChanges = false;\n let cachedDiff = null;\n let arrayChangeSubscription;\n let pendingNotifications = 0;\n let underlyingNotifySubscribersFunction;\n const underlyingBeforeSubscriptionAddFunction = target.beforeSubscriptionAdd;\n const underlyingAfterSubscriptionRemoveFunction = target.afterSubscriptionRemove;\n target.beforeSubscriptionAdd = function(event) {\n if (underlyingBeforeSubscriptionAddFunction) {\n underlyingBeforeSubscriptionAddFunction.call(target, event);\n }\n if (event === arrayChangeEventName) {\n trackChanges();\n }\n };\n target.afterSubscriptionRemove = function(event) {\n if (underlyingAfterSubscriptionRemoveFunction) {\n underlyingAfterSubscriptionRemoveFunction.call(target, event);\n }\n if (event === arrayChangeEventName && !target.hasSubscriptionsForEvent(arrayChangeEventName)) {\n if (underlyingNotifySubscribersFunction) {\n target.notifySubscribers = underlyingNotifySubscribersFunction;\n underlyingNotifySubscribersFunction = void 0;\n }\n if (arrayChangeSubscription) {\n arrayChangeSubscription.dispose();\n }\n arrayChangeSubscription = null;\n trackingChanges = false;\n }\n };\n function trackChanges() {\n if (trackingChanges) {\n return;\n }\n trackingChanges = true;\n underlyingNotifySubscribersFunction = target[\"notifySubscribers\"];\n target.notifySubscribers = function(valueToNotify, event) {\n if (!event || event === defaultEvent) {\n ++pendingNotifications;\n }\n return underlyingNotifySubscribersFunction.apply(this, arguments);\n };\n let previousContents = new Array().concat(target.peek() === void 0 ? [] : target.peek());\n cachedDiff = null;\n arrayChangeSubscription = target.subscribe(function(currentContents) {\n let changes;\n currentContents = new Array().concat(currentContents || []);\n if (target.hasSubscriptionsForEvent(arrayChangeEventName)) {\n changes = getChanges(previousContents, currentContents);\n }\n previousContents = currentContents;\n cachedDiff = null;\n pendingNotifications = 0;\n if (changes && changes.length) {\n target.notifySubscribers(changes, arrayChangeEventName);\n }\n });\n }\n function getChanges(previousContents, currentContents) {\n if (!cachedDiff || pendingNotifications > 1) {\n cachedDiff = trackArrayChanges.compareArrays(previousContents, currentContents, target.compareArrayOptions);\n }\n return cachedDiff;\n }\n target.cacheDiffForKnownOperation = function(rawArray, operationName, args) {\n if (!trackingChanges || pendingNotifications) {\n return;\n }\n let diff = new Array(), arrayLength = rawArray.length, argsLength = args.length, offset = 0;\n function pushDiff(status, value, index) {\n return diff[diff.length] = { status, value, index };\n }\n switch (operationName) {\n case \"push\":\n offset = arrayLength;\n case \"unshift\":\n for (let index = 0; index < argsLength; index++) {\n pushDiff(\"added\", args[index], offset + index);\n }\n break;\n case \"pop\":\n offset = arrayLength - 1;\n case \"shift\":\n if (arrayLength) {\n pushDiff(\"deleted\", rawArray[offset], offset);\n }\n break;\n case \"splice\":\n {\n const startIndex = Math.min(Math.max(0, args[0] < 0 ? arrayLength + args[0] : args[0]), arrayLength), endDeleteIndex = argsLength === 1 ? arrayLength : Math.min(startIndex + (args[1] || 0), arrayLength), endAddIndex = startIndex + argsLength - 2, endIndex = Math.max(endDeleteIndex, endAddIndex), additions = new Array(), deletions = new Array();\n for (let index = startIndex, argsIndex = 2; index < endIndex; ++index, ++argsIndex) {\n if (index < endDeleteIndex) {\n deletions.push(pushDiff(\"deleted\", rawArray[index], index));\n }\n if (index < endAddIndex) {\n additions.push(pushDiff(\"added\", args[argsIndex], index));\n }\n }\n findMovesInArrayComparison(deletions, additions);\n }\n break;\n default:\n return;\n }\n cachedDiff = diff;\n };\n}\ntrackArrayChanges.compareArrays = compareArrays;\nextenders.trackArrayChanges = trackArrayChanges;\n", "// @tko/observable \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { arrayIndexOf, arrayForEach, overwriteLengthPropertyIfSupported } from \"@tko/utils\";\nimport { observable, isObservable } from \"./observable\";\nimport { trackArrayChanges } from \"./observableArray.changeTracking\";\nexport function observableArray(initialValues) {\n initialValues = initialValues || [];\n if (typeof initialValues !== \"object\" || !(\"length\" in initialValues)) {\n throw new Error(\n \"The argument passed when initializing an observable array must be an array, or null, or undefined.\"\n );\n }\n const result = Object.setPrototypeOf(observable(initialValues), observableArray.fn);\n trackArrayChanges(result);\n overwriteLengthPropertyIfSupported(result, { get: () => result()?.length });\n return result;\n}\nexport function isObservableArray(instance) {\n return isObservable(instance) && typeof instance.remove === \"function\" && typeof instance.push === \"function\";\n}\nobservableArray.fn = {\n remove(valueOrPredicate) {\n const underlyingArray = this.peek();\n const removedValues = new Array();\n const predicate = typeof valueOrPredicate === \"function\" && !isObservable(valueOrPredicate) ? valueOrPredicate : function(value) {\n return value === valueOrPredicate;\n };\n for (let i = 0; i < underlyingArray.length; i++) {\n const value = underlyingArray[i];\n if (predicate(value)) {\n if (removedValues.length === 0) {\n this.valueWillMutate();\n }\n if (underlyingArray[i] !== value) {\n throw Error(\"Array modified during remove; cannot remove item\");\n }\n removedValues.push(value);\n underlyingArray.splice(i, 1);\n i--;\n }\n }\n if (removedValues.length) {\n this.valueHasMutated();\n }\n return removedValues;\n },\n removeAll(arrayOfValues) {\n if (arrayOfValues === void 0) {\n const underlyingArray = this.peek();\n const allValues = underlyingArray.slice(0);\n this.valueWillMutate();\n underlyingArray.splice(0, underlyingArray.length);\n this.valueHasMutated();\n return allValues;\n }\n if (!arrayOfValues) {\n return [];\n }\n return this[\"remove\"](function(value) {\n return arrayIndexOf(arrayOfValues, value) >= 0;\n });\n },\n destroy(valueOrPredicate) {\n const underlyingArray = this.peek();\n const predicate = typeof valueOrPredicate === \"function\" && !isObservable(valueOrPredicate) ? valueOrPredicate : function(value) {\n return value === valueOrPredicate;\n };\n this.valueWillMutate();\n for (let i = underlyingArray.length - 1; i >= 0; i--) {\n const value = underlyingArray[i];\n if (predicate(value)) {\n value[\"_destroy\"] = true;\n }\n }\n this.valueHasMutated();\n },\n destroyAll(arrayOfValues) {\n if (arrayOfValues === void 0) {\n return this.destroy(function() {\n return true;\n });\n }\n if (!arrayOfValues) {\n return [];\n }\n return this.destroy(function(value) {\n return arrayIndexOf(arrayOfValues, value) >= 0;\n });\n },\n indexOf(item) {\n return arrayIndexOf(this(), item);\n },\n replace(oldItem, newItem) {\n const index = this.indexOf(oldItem);\n if (index >= 0) {\n this.valueWillMutate();\n this.peek()[index] = newItem;\n this.valueHasMutated();\n }\n },\n sorted(compareFn) {\n return [...this()].sort(compareFn);\n },\n reversed() {\n return [...this()].reverse();\n },\n [Symbol.iterator]: function* () {\n yield* this();\n }\n};\nObject.setPrototypeOf(observableArray.fn, observable.fn);\narrayForEach([\"pop\", \"push\", \"reverse\", \"shift\", \"sort\", \"splice\", \"unshift\"], function(methodName) {\n observableArray.fn[methodName] = function() {\n const underlyingArray = this.peek();\n this.valueWillMutate();\n this.cacheDiffForKnownOperation(underlyingArray, methodName, arguments);\n const methodCallResult = underlyingArray[methodName].apply(underlyingArray, arguments);\n this.valueHasMutated();\n return methodCallResult === underlyingArray ? this : methodCallResult;\n };\n});\narrayForEach([\"slice\"], function(methodName) {\n observableArray.fn[methodName] = function() {\n const underlyingArray = this();\n return underlyingArray[methodName].apply(underlyingArray, arguments);\n };\n});\nobservableArray.trackArrayChanges = trackArrayChanges;\n", "// @tko/provider \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { options } from \"@tko/utils\";\nexport default class BindingHandlerObject {\n set(nameOrObject, value) {\n if (typeof nameOrObject === \"string\") {\n this[nameOrObject] = value;\n } else if (typeof nameOrObject === \"object\") {\n if (value !== void 0) {\n options.onError(\n new Error(\n \"Given extraneous `value` parameter (first param should be a string, but it was an object).\" + nameOrObject\n )\n );\n }\n Object.assign(this, nameOrObject);\n } else {\n options.onError(new Error(\"Given a bad binding handler type: \" + nameOrObject));\n }\n }\n /**\n * The handler may have a `.` in it, e.g. `attr.title`, in which case the\n * handler is `attr`. Otherwise it's the name given\n */\n get(nameOrDotted) {\n const [name] = nameOrDotted.split(\".\");\n return this[name];\n }\n}\n", "// @tko/provider \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { objectMap } from \"@tko/utils\";\nimport { dependencyDetection } from \"@tko/observable\";\nimport BindingHandlerObject from \"./BindingHandlerObject\";\nexport default class Provider {\n constructor(params) {\n if (this.constructor === Provider) {\n throw new Error(\"Provider is an abstract base class.\");\n }\n if (!(\"FOR_NODE_TYPES\" in this)) {\n throw new Error(\"Providers must have FOR_NODE_TYPES property\");\n }\n this.bindingHandlers = params?.bindingHandlers || new BindingHandlerObject();\n this.globals = params?.globals || {};\n }\n get FOR_NODE_TYPES() {\n throw new Error(\"Providers must override FOR_NODE_TYPES property\");\n }\n setGlobals(globals) {\n this.globals = globals;\n }\n get preemptive() {\n return false;\n }\n nodeHasBindings(node, context) {\n return false;\n }\n getBindingAccessors(node, context) {\n return /* @__PURE__ */ Object.create(null);\n }\n /**\n * Preprocess a given node.\n * @param {Node} node\n * @returns {[Node]|null}\n */\n preprocessNode(node) {\n return [node];\n }\n postProcess() {\n }\n /** For legacy binding provider assignments to\n * ko.bindingProvider.instance = ... */\n get instance() {\n return this._overloadInstance || this;\n }\n set instance(provider) {\n if (!provider || provider === this) {\n this._overloadInstance = void 0;\n } else {\n this._overloadInstance = new LegacyProvider(provider, this);\n }\n }\n // Given a function that returns bindings, create and return a new object that contains\n // binding value-accessors functions. Each accessor function calls the original function\n // so that it always gets the latest value and all dependencies are captured. This is used\n // by ko.applyBindingsToNode and getBindingsAndMakeAccessors.\n makeAccessorsFromFunction(callback) {\n return objectMap(dependencyDetection.ignore(callback), (value, key) => () => callback()[key]);\n }\n // Returns the valueAccessor function for a binding value\n makeValueAccessor(value) {\n return () => value;\n }\n // Given a bindings function or object, create and return a new object that contains\n // binding value-accessors functions. This is used by ko.applyBindingsToNode.\n makeBindingAccessors(bindings, context, node) {\n if (typeof bindings === \"function\") {\n return this.makeAccessorsFromFunction(bindings.bind(null, context, node));\n } else {\n return objectMap(bindings, this.makeValueAccessor);\n }\n }\n}\nclass LegacyProvider extends Provider {\n get FOR_NODE_TYPES() {\n return [Node.ELEMENT_NODE, Node.TEXT_NODE, Node.COMMENT_NODE];\n }\n constructor(providerObject, parentProvider) {\n super();\n Object.assign(this, { providerObject });\n this.bindingHandlers = providerObject.bindingHandlers || parentProvider.bindingHandlers;\n }\n // This function is used if the binding provider doesn't include a getBindingAccessors function.\n // It must be called with 'this' set to the provider instance.\n getBindingsAndMakeAccessors(node, context) {\n const bindingsFn = this.providerObject.getBindings.bind(this.providerObject, node, context);\n return this.makeAccessorsFromFunction(bindingsFn);\n }\n getBindingAccessors(node, context) {\n return this.providerObject.getBindingAccessors ? this.providerObject.getBindingAccessors(node, context) : this.getBindingsAndMakeAccessors(node, context);\n }\n nodeHasBindings(node) {\n return this.providerObject.nodeHasBindings(node);\n }\n preprocessNode(node) {\n if (this.providerObject.preprocessNode) {\n return this.providerObject.preprocessNode(node);\n }\n return null;\n }\n}\n", "// @tko/utils.parser \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { unwrap } from \"@tko/observable\";\nexport function LAMBDA() {\n}\nfunction unwrapOrCall(a, b) {\n while (typeof b === \"function\") {\n b = b();\n }\n return b;\n}\nconst operators = {\n // unary\n \"@\": unwrapOrCall,\n \"#\": (a, b) => () => unwrap(b),\n // Convert to read-only.\n \"=>\": LAMBDA,\n \"!\": function not(a, b) {\n return !b;\n },\n \"!!\": function notnot(a, b) {\n return !!b;\n },\n \"++\": function preinc(a, b) {\n return ++b;\n },\n \"--\": function preinc2(a, b) {\n return --b;\n },\n // exponent\n \"**\": function exp(a, b) {\n return a ** b;\n },\n // mul/div\n \"*\": function mul(a, b) {\n return a * b;\n },\n \"/\": function div(a, b) {\n return a / b;\n },\n \"%\": function mod(a, b) {\n return a % b;\n },\n // sub/add\n \"+\": function add(a, b) {\n return a + b;\n },\n \"-\": function sub(a, b) {\n return (a || 0) - (b || 0);\n },\n \"&-\": function neg(a, b) {\n return -1 * b;\n },\n // unary -\n // relational\n \"<\": function lt(a, b) {\n return a < b;\n },\n \"<=\": function le(a, b) {\n return a <= b;\n },\n \">\": function gt(a, b) {\n return a > b;\n },\n \">=\": function ge(a, b) {\n return a >= b;\n },\n // TODO: 'in': function (a, b) { return a in b; },\n // TODO: 'instanceof': function (a, b) { return a instanceof b; },\n // TODO: 'typeof': function (a, b) { return typeof b; },\n // equality\n \"==\": function equal(a, b) {\n return a == b;\n },\n \"!=\": function ne(a, b) {\n return a != b;\n },\n \"===\": function sequal(a, b) {\n return a === b;\n },\n \"!==\": function sne(a, b) {\n return a !== b;\n },\n // bitwise\n \"&\": function bitAnd(a, b) {\n return a & b;\n },\n \"^\": function xor(a, b) {\n return a ^ b;\n },\n \"|\": function bitOr(a, b) {\n return a | b;\n },\n // logic\n \"&&\": function logicAnd(a, b) {\n return a && b;\n },\n \"||\": function logicOr(a, b) {\n return a || b;\n },\n \"??\": function nullishCoalesce(a, b) {\n return a ?? b;\n },\n // Access\n \".\": function member(a, b) {\n return a?.[b];\n },\n \"?.\": function omember(a, b) {\n return a?.[b];\n },\n \"[\": function bmember(a, b) {\n return a?.[b];\n },\n \",\": function comma(a, b) {\n return b;\n },\n // conditional/ternary\n // '?': ternary See Node.js\n // Function-Call\n call: function callOp(a, b) {\n return a.apply(null, b);\n }\n};\noperators[\"@\"].precedence = 21;\noperators[\"#\"].precedence = 21;\noperators[\".\"].precedence = 19;\noperators[\"[\"].precedence = 19;\noperators[\"?.\"].precedence = 19;\noperators[\"!\"].precedence = 16;\noperators[\"!!\"].precedence = 16;\noperators[\"++\"].precedence = 16;\noperators[\"--\"].precedence = 16;\noperators[\"&-\"].precedence = 16;\noperators[\"**\"].precedence = 15;\noperators[\"%\"].precedence = 14;\noperators[\"*\"].precedence = 14;\noperators[\"/\"].precedence = 14;\noperators[\"+\"].precedence = 13;\noperators[\"-\"].precedence = 13;\noperators[\"|\"].precedence = 12;\noperators[\"^\"].precedence = 11;\noperators[\"&\"].precedence = 10;\noperators[\"<\"].precedence = 11;\noperators[\"<=\"].precedence = 11;\noperators[\">\"].precedence = 11;\noperators[\">=\"].precedence = 11;\noperators[\"==\"].precedence = 10;\noperators[\"!=\"].precedence = 10;\noperators[\"===\"].precedence = 10;\noperators[\"!==\"].precedence = 10;\noperators[\"&&\"].precedence = 6;\noperators[\"||\"].precedence = 5;\noperators[\"??\"].precedence = 5;\noperators[\"&&\"].earlyOut = (a) => !a;\noperators[\"||\"].earlyOut = (a) => a;\noperators[\"??\"].earlyOut = (a) => a;\noperators[\",\"].precedence = 2;\noperators[\"call\"].precedence = 1;\noperators[\"=>\"].precedence = 1;\nexport { operators as default };\n", "// @tko/utils.parser \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { unwrap } from \"@tko/observable\";\nimport { default as operators, LAMBDA } from \"./operators\";\nconst IS_EXPR_OR_IDENT = /* @__PURE__ */ Symbol(\"Node - Is Expression Or Identifier\");\nexport default class Node {\n constructor(lhs, op, rhs) {\n this.lhs = lhs;\n this.op = op;\n this.rhs = rhs;\n }\n static get operators() {\n return operators;\n }\n get_leaf_value(leaf, context, globals, node) {\n if (typeof leaf === \"function\") {\n return unwrap(leaf());\n }\n if (typeof leaf !== \"object\" || leaf === null) {\n return leaf;\n }\n if (leaf[Node.isExpressionOrIdentifierSymbol]) {\n return unwrap(leaf.get_value(void 0, context, globals, node));\n }\n return leaf;\n }\n /**\n * Return a function that calculates and returns an expression's value\n * when called.\n * @param {array} ops The operations to perform\n * @return {function} The function that calculates the expression.\n *\n * Note that for a lambda, we do not evaluate the RHS expression until\n * the lambda is called.\n */\n get_value(notused, context, globals, node) {\n var node = this;\n if (node.op === LAMBDA) {\n return (...args) => {\n let lambdaContext = context;\n if (node.lhs) {\n lambdaContext = node.lhs.extendContext(context, args);\n }\n return node.get_leaf_value(node.rhs, lambdaContext, globals, node);\n };\n }\n const lhv = node.get_leaf_value(node.lhs, context, globals, node);\n const earlyOut = node.op.earlyOut;\n if (earlyOut && earlyOut(lhv)) {\n return lhv;\n }\n const rhv = node.get_leaf_value(node.rhs, context, globals, node);\n return node.op(lhv, rhv, context, globals);\n }\n //\n // Class variables.\n //\n static get isExpressionOrIdentifierSymbol() {\n return IS_EXPR_OR_IDENT;\n }\n get [IS_EXPR_OR_IDENT]() {\n return true;\n }\n static value_of(item, context, globals, node) {\n if (item && item[Node.isExpressionOrIdentifierSymbol]) {\n return item.get_value(item, context, globals, node);\n }\n return item;\n }\n /**\n * Convert an array of nodes to an executable tree.\n * @return {object} An object with a `lhs`, `rhs` and `op` key, corresponding\n * to the left hand side, right hand side, and\n * operation function.\n */\n static create_root(nodes, debug = false) {\n const out = new Array();\n const ops = new Array();\n for (let i = 0; i < nodes.length; i += 2) {\n out.push(nodes[i]);\n const op = nodes[i + 1];\n const prec = op?.precedence || 0;\n while (ops.length && prec <= ops[ops.length - 1].precedence) {\n const rhs = out.pop();\n const lhs = out.pop();\n out.push(new Node(lhs, ops.pop(), rhs));\n }\n ops.push(op);\n }\n if (out.length !== 1) {\n throw new Error(`unexpected nodes remain in shunting yard output stack: ${out}`);\n }\n return out[0];\n }\n}\noperators[\"?\"] = function ternary(a, b, context, globals, node) {\n return Node.value_of(a ? b.yes : b.no, context, globals, node);\n};\noperators[\"?\"].precedence = 4;\n", "// @tko/utils.parser \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport Node from \"./Node\";\nexport default class Expression {\n constructor(nodes) {\n this.nodes = nodes;\n this.root = Node.create_root(nodes);\n }\n /**\n * Return the value of `this` Expression instance.\n */\n get_value(parent, context, globals, node) {\n if (!this.root) {\n this.root = Node.create_root(this.nodes);\n }\n return this.root.get_value(parent, context, globals, node);\n }\n}\nExpression.prototype[Node.isExpressionOrIdentifierSymbol] = true;\n", "// @tko/utils.parser \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport Node from \"./Node\";\nexport default class Arguments {\n constructor(parser, args) {\n this.parser = parser;\n this.args = args;\n }\n get_value(parent, context, globals, node) {\n const deReffedArgs = new Array();\n for (let i = 0, j = this.args.length; i < j; ++i) {\n deReffedArgs.push(Node.value_of(this.args[i], context, globals, node));\n }\n return deReffedArgs;\n }\n get [Node.isExpressionOrIdentifierSymbol]() {\n return true;\n }\n}\n", "// @tko/utils.parser \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nexport const IDStart = /[\\$A-Z_a-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/;\nexport const IDContinue = /[\\$0-9A-Z_a-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/;\n", "// @tko/utils.parser \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport Node from \"./Node\";\nimport Arguments from \"./Arguments\";\nimport { hasOwnProperty, isObjectLike } from \"@tko/utils\";\nimport { isWriteableObservable, isObservable } from \"@tko/observable\";\nimport { IDStart, IDContinue } from \"./identifierExpressions\";\nexport default class Identifier {\n constructor(parser, token, dereferences) {\n this.token = token;\n this.dereferences = dereferences;\n this.parser = parser;\n }\n /**\n * Apply all () and [] functions on the identifier to the lhs value e.g.\n * a()[3] has deref functions that are essentially this:\n * [_deref_call, _deref_this where this=3]\n *\n * @param {mixed} value Should be an object.\n * @return {mixed} The dereferenced value.\n *\n * [1] We want to bind any function that is a method of an object, but not\n * corrupt any values (e.g. computed()s). e.g. Running x.bind(obj) where\n * we're given `data-bind='binding: obj.x'` and x is a computed will\n * break the computed's `this` and it will stop working as expected.\n *\n * The test `!last_value.hasOwnProperty(member)`\n * distinguishes between functions on the prototype chain (prototypal\n * members) and value-members added directly to the object. This may\n * not be the canonical test for this relationship, but it succeeds\n * in the known test cases.\n *\n * See: `this` tests of our dereference function.\n */\n dereference(value, $context, globals, node) {\n let member;\n const refs = this.dereferences || [];\n const $data = $context.$data || {};\n let lastValue;\n let i, n;\n for (i = 0, n = refs.length; i < n; ++i) {\n member = Node.value_of(refs[i], $context, globals, node);\n if (typeof value === \"function\" && refs[i] instanceof Arguments) {\n value = value.apply(lastValue || $data, member);\n lastValue = value;\n } else if (value === null || value === void 0) {\n return value;\n } else {\n lastValue = value;\n value = Node.value_of(value[member], $context, globals, node);\n }\n }\n if (typeof value === \"function\" && n > 0 && lastValue !== value && !hasOwnProperty(lastValue, member)) {\n return value.bind(lastValue);\n }\n return value;\n }\n /**\n * Return the value as one would get it from the top-level i.e.\n * $data.token/$context.token/globals.token; this does not return intermediate\n * values on a chain of members i.e. $data.hello.there -- requesting the\n * Identifier('there').value will return $data/$context/globals.there.\n *\n * This will dereference using () or [arg] member.\n * @param {object | Identifier | Expression} parent\n * @return {mixed} Return the primitive or an accessor.\n */\n get_value(parent, context, globals, node) {\n const intermediate = parent && !(parent instanceof Identifier) ? Node.value_of(parent, context, globals, node)[this.token] : context.lookup(this.token, globals, node);\n return this.dereference(intermediate, context, globals, node);\n }\n assign(object, property, value) {\n if (isWriteableObservable(object[property])) {\n object[property](value);\n } else if (!isObservable(object[property])) {\n object[property] = value;\n }\n }\n /**\n * Set the value of the Identifier.\n *\n * @param {Mixed} new_value The value that Identifier is to be set to.\n */\n set_value(new_value, $context, globals) {\n const $data = $context.$data || {};\n const refs = this.dereferences || [];\n let leaf = this.token;\n let i, n, root;\n if (isObjectLike($data) && leaf in $data) {\n root = $data;\n } else if (leaf in $context) {\n root = $context;\n } else if (leaf in globals) {\n root = globals;\n } else {\n throw new Error(\n \"Identifier::set_value -- The property '\" + leaf + \"' does not exist on the $data, $context, or globals.\"\n );\n }\n n = refs.length;\n if (n === 0) {\n this.assign(root, leaf, new_value);\n return;\n }\n root = root[leaf];\n for (i = 0; i < n - 1; ++i) {\n leaf = refs[i];\n if (leaf instanceof Arguments) {\n root = root();\n } else {\n root = root[Node.value_of(leaf)];\n }\n }\n if (refs[i] === true) {\n throw new Error(\"Cannot assign a value to a function.\");\n }\n if (refs[i]) {\n this.assign(root, Node.value_of(refs[i]), new_value);\n }\n }\n /**\n * Determine if a character is a valid item in an identifier.\n * Note that we do not check whether the first item is a number, nor do we\n * support unicode identifiers here.\n *\n * From: http://stackoverflow.com/a/9337047\n * @param {String} ch The character\n * @return {Boolean} True if this is a valid identifier\n */\n // function is_identifier_char(ch) {\n // return (ch >= 'A' && ch <= 'Z') ||\n // (ch >= 'a' && ch <= 'z') ||\n // (ch >= '0' && ch <= 9) ||\n // ch === '_' || ch === '$';\n // }\n static is_valid_start_char(ch) {\n return IDStart.test(ch);\n }\n static is_valid_continue_char(ch) {\n return IDContinue.test(ch);\n }\n get [Node.isExpressionOrIdentifierSymbol]() {\n return true;\n }\n}\n", "// @tko/utils.parser \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport operators from \"./operators\";\nimport Node from \"./Node\";\nimport Expression from \"./Expression\";\nimport Identifier from \"./Identifier\";\nexport default class Parameters {\n #names;\n constructor(parser, node) {\n if (node instanceof Expression) {\n node = node.root;\n }\n try {\n this.#names = Parameters.nodeTreeToNames(node);\n } catch (e) {\n parser.error(e);\n }\n }\n extendContext(context, args) {\n if (!this.#names) {\n return context;\n } else {\n const newValues = {};\n this.#names.forEach((name, index) => {\n newValues[name] = args[index];\n });\n return context.extend(newValues);\n }\n }\n get [Node.isExpressionOrIdentifierSymbol]() {\n return true;\n }\n static nodeTreeToNames(node) {\n const names = new Array();\n while (node) {\n if (node instanceof Identifier) {\n names.push(node.token);\n node = null;\n } else if (this.isCommaNode(node)) {\n names.push(node.rhs.token);\n node = node.lhs;\n } else {\n throw new Error(\n `only simple identifiers allowed in lambda parameter list but found ${JSON.stringify(node, null, 2)}`\n );\n }\n }\n names.reverse();\n return names;\n }\n static isCommaNode(node) {\n return node instanceof Node && node.op === operators[\",\"] && node.rhs instanceof Identifier;\n }\n}\n", "// @tko/utils.parser \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport Node from \"./Node\";\nexport default class Ternary {\n constructor(yes, no) {\n Object.assign(this, { yes, no });\n }\n get_value() {\n return this;\n }\n get [Node.isExpressionOrIdentifierSymbol]() {\n return true;\n }\n}\n", "// @tko/utils.parser \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { options, objectForEach, clonePlainObjectDeep, extend, hasOwnProperty } from \"@tko/utils\";\nimport { default as Expression } from \"./Expression\";\nimport { default as Identifier } from \"./Identifier\";\nimport { default as Arguments } from \"./Arguments\";\nimport { default as Parameters } from \"./Parameters\";\nimport { default as Ternary } from \"./Ternary\";\nimport { default as Node } from \"./Node\";\nimport { default as operators } from \"./operators\";\nconst escapee = {\n \"'\": \"'\",\n '\"': '\"',\n \"`\": \"`\",\n \"\\\\\": \"\\\\\",\n \"/\": \"/\",\n $: \"$\",\n b: \"\\b\",\n f: \"\\f\",\n n: \"\\n\",\n r: \"\\r\",\n t: \"\t\"\n};\nexport default class Parser {\n white() {\n let ch = this.ch;\n while (ch && ch <= \" \") {\n ch = this.next();\n }\n return this.comment(ch);\n }\n /**\n * Slurp any C or C++ style comments\n */\n comment(ch) {\n if (ch !== \"/\") {\n return ch;\n }\n const p = this.at;\n const second = this.lookahead();\n if (second === \"/\") {\n while (ch) {\n ch = this.next();\n if (ch === \"\\n\" || ch === \"\\r\") {\n break;\n }\n }\n ch = this.next();\n } else if (second === \"*\") {\n while (ch) {\n ch = this.next();\n if (ch === \"*\" && this.lookahead() === \"/\") {\n this.next();\n break;\n }\n }\n if (!ch) {\n this.error(\"Unclosed comment, starting at character \" + p);\n }\n this.next();\n return this.white();\n }\n return ch;\n }\n next(c) {\n if (c && c !== this.ch) {\n this.error(\"Expected '\" + c + \"' but got '\" + this.ch + \"'\");\n }\n this.ch = this.text.charAt(this.at);\n this.at += 1;\n return this.ch;\n }\n lookahead() {\n return this.text[this.at];\n }\n error(m) {\n if (m instanceof Error) {\n throw m;\n }\n throw this.createError(m);\n }\n createError(m) {\n const [name, msg] = m.name ? [m.name, m.message] : [m, \"\"];\n const message = `\n${name} ${msg} of ${this.text}\n` + Array(this.at).join(\" \") + \"_/ \\u{1F525} \\\\_\\n\";\n return new Error(message);\n }\n name() {\n let name = \"\";\n let enclosedBy;\n this.white();\n let ch = this.ch;\n if (ch === \"'\" || ch === '\"') {\n enclosedBy = ch;\n ch = this.next();\n }\n while (ch) {\n if (enclosedBy && ch === enclosedBy) {\n this.white();\n ch = this.next();\n if (ch !== \":\" && ch !== \",\") {\n this.error(\"Object name: \" + name + \" missing closing \" + enclosedBy);\n }\n return name;\n } else if (ch === \":\" || ch <= \" \" || ch === \",\" || ch === \"|\") {\n return name;\n }\n name += ch;\n ch = this.next();\n }\n return name;\n }\n number() {\n let number;\n let string = \"\";\n let ch = this.ch;\n if (ch === \"-\") {\n string = \"-\";\n ch = this.next(\"-\");\n }\n while (ch >= \"0\" && ch <= \"9\") {\n string += ch;\n ch = this.next();\n }\n if (ch === \".\") {\n string += \".\";\n ch = this.next();\n while (ch && ch >= \"0\" && ch <= \"9\") {\n string += ch;\n ch = this.next();\n }\n }\n if (ch === \"e\" || ch === \"E\") {\n string += ch;\n ch = this.next();\n if (ch === \"-\" || ch === \"+\") {\n string += ch;\n ch = this.next();\n }\n while (ch >= \"0\" && ch <= \"9\") {\n string += ch;\n ch = this.next();\n }\n }\n number = +string;\n if (!isFinite(number)) {\n options.onError(new Error(\"Bad number: \" + number + \" in \" + string));\n } else {\n return number;\n }\n }\n /**\n * Add a property to 'object' that equals the given value.\n * @param {Object} object The object to add the value to.\n * @param {String} key object[key] is set to the given value.\n * @param {mixed} value The value, may be a primitive or a function. If a\n * function it is unwrapped as a property.\n */\n objectAddValue(object, key, value) {\n if (value && value[Node.isExpressionOrIdentifierSymbol]) {\n Object.defineProperty(object, key, {\n get: () => Node.value_of(value, ...this.currentContextGlobals),\n enumerable: true\n });\n } else if (Array.isArray(value)) {\n Object.defineProperty(object, key, {\n get: () => value.map((v) => Node.value_of(v, ...this.currentContextGlobals)),\n enumerable: true\n });\n } else {\n object[key] = value;\n }\n }\n object() {\n let key;\n const object = {};\n let ch = this.ch;\n if (ch === \"{\") {\n this.next(\"{\");\n ch = this.white();\n if (ch === \"}\") {\n ch = this.next(\"}\");\n return object;\n }\n while (ch) {\n if (ch === '\"' || ch === \"'\" || ch === \"`\") {\n key = this.string();\n } else {\n key = this.name();\n }\n if (hasOwnProperty(object, key)) {\n this.error('Duplicate key \"' + key + '\"');\n }\n if (this.white() === \":\") {\n ch = this.next(\":\");\n this.objectAddValue(object, key, this.singleValueExpression());\n } else {\n const objectKeyIsValue = new Identifier(this, key, []);\n this.objectAddValue(object, key, objectKeyIsValue);\n }\n ch = this.white();\n if (ch === \"}\") {\n ch = this.next(\"}\");\n return object;\n }\n this.next(\",\");\n ch = this.white();\n if (ch === \"}\") {\n ch = this.next(\"}\");\n return object;\n }\n }\n }\n throw this.createError(\"Bad object\");\n }\n /**\n * Read up to delim and return the string\n * @param {string} delim The delimiter, either ' or \"\n * @return {string} The string read.\n */\n readString(delim) {\n let string = \"\";\n const nodes = [\"\"];\n const plusOp = operators[\"+\"];\n let hex;\n let i;\n let uffff;\n const interpolate = delim === \"`\";\n let ch = this.next();\n while (ch) {\n if (ch === delim) {\n ch = this.next();\n if (interpolate) {\n nodes.push(plusOp);\n }\n nodes.push(string);\n return nodes;\n }\n if (ch === \"\\\\\") {\n ch = this.next();\n if (ch === \"u\") {\n uffff = 0;\n for (i = 0; i < 4; i += 1) {\n hex = parseInt(ch = this.next(), 16);\n if (!isFinite(hex)) {\n break;\n }\n uffff = uffff * 16 + hex;\n }\n string += String.fromCharCode(uffff);\n } else if (typeof escapee[ch] === \"string\") {\n string += escapee[ch];\n } else {\n break;\n }\n } else if (interpolate && ch === \"$\") {\n ch = this.next();\n if (ch === \"{\") {\n this.next(\"{\");\n nodes.push(plusOp);\n nodes.push(string);\n nodes.push(plusOp);\n nodes.push(this.expression());\n string = \"\";\n } else {\n string += \"$\" + ch;\n }\n } else {\n string += ch;\n }\n ch = this.next();\n }\n throw this.createError(\"Bad string\");\n }\n string() {\n const ch = this.ch;\n if (ch === '\"') {\n return this.readString('\"')?.join(\"\");\n } else if (ch === \"'\") {\n return this.readString(\"'\")?.join(\"\");\n } else if (ch === \"`\") {\n return Node.create_root(this.readString(\"`\"));\n }\n this.error(\"Bad string\");\n }\n array() {\n const array = new Array();\n let ch = this.ch;\n if (ch === \"[\") {\n ch = this.next(\"[\");\n this.white();\n if (ch === \"]\") {\n ch = this.next(\"]\");\n return array;\n }\n while (ch) {\n array.push(this.singleValueExpression());\n ch = this.white();\n if (ch === \"]\") {\n ch = this.next(\"]\");\n return array;\n }\n this.next(\",\");\n ch = this.white();\n }\n }\n throw this.createError(\"Bad array\");\n }\n value() {\n this.white();\n const ch = this.ch;\n switch (ch) {\n case \"{\":\n return this.object();\n case \"[\":\n return this.array();\n case '\"':\n case \"'\":\n case \"`\":\n return this.string();\n case \"-\":\n return this.number();\n default:\n return ch >= \"0\" && ch <= \"9\" ? this.number() : this.identifier();\n }\n }\n /**\n * Get the function for the given operator.\n * A `.precedence` value is added to the function, with increasing\n * precedence having a higher number.\n * @return {function} The function that performs the infix operation\n */\n operator(opts) {\n let op = \"\";\n let opFn;\n let ch = this.white();\n let isIdentifierChar = Identifier.is_valid_start_char;\n while (ch) {\n if (isIdentifierChar(ch) || ch <= \" \" || ch === \"\" || ch === '\"' || ch === \"'\" || ch === \"{\" || ch === \"(\" || ch === \"`\" || ch === \")\" || ch <= \"9\" && ch >= \"0\") {\n break;\n }\n if (!opts.not_an_array && ch === \"[\") {\n break;\n }\n op += ch;\n ch = this.next();\n if (ch === \"@\") {\n break;\n }\n isIdentifierChar = Identifier.is_valid_continue_char;\n }\n if (op !== \"\") {\n if (opts.prefix && op === \"-\") {\n op = \"&-\";\n }\n opFn = operators[op];\n if (!opFn) {\n this.error(\"Bad operator: '\" + op + \"'.\");\n }\n }\n return opFn;\n }\n /**\n * Filters\n * Returns what the Node interprets as an \"operator\".\n * e.g.\n * <span data-bind=\"text: name | fit:20 | uppercase\"></span>\n */\n filter() {\n let ch = this.next();\n const args = new Array();\n let nextFilter = function(v) {\n return v;\n };\n const name = this.name();\n if (!options.filters[name]) {\n options.onError(new Error(\"Cannot find filter by the name of: \" + name));\n }\n ch = this.white();\n while (ch) {\n if (ch === \":\") {\n ch = this.next();\n args.push(this.singleValueExpression(\"|\"));\n }\n if (ch === \"|\") {\n nextFilter = this.filter();\n break;\n }\n if (ch === \",\") {\n break;\n }\n ch = this.white();\n }\n function filter(value, ignored, context, globals, node) {\n const argValues = [value];\n for (let i = 0, j = args.length; i < j; ++i) {\n argValues.push(Node.value_of(args[i], context, globals, node));\n }\n return nextFilter(options.filters[name].apply(context, argValues), ignored, context, globals, node);\n }\n filter.precedence = 1;\n return filter;\n }\n /**\n * Parse an expression \u2013 builds an operator tree, in something like\n * Shunting-Yard.\n * See: http://en.wikipedia.org/wiki/Shunting-yard_algorithm\n *\n * @param filterable - Whether the expression can include jinga-style filters.\n * An argument of '|' is used only by the filter() method to parse subsequent\n * filters.\n * @param allowMultipleValues - Whether multiple values separated by commas are\n * allowed in this expression. When true (default), this method consumes\n * subsequent comma-separated values.\n * @see {@link Parser.singleValueExpression}\n *\n * @returns a function that computes the value of the expression\n * when called or a primitive.\n */\n expression(filterable = false, allowMultipleValues = true) {\n let op;\n const nodes = new Array();\n let ch = this.white();\n while (ch) {\n op = this.operator({ prefix: true });\n if (op) {\n nodes.push(void 0);\n nodes.push(op);\n ch = this.white();\n }\n if (ch === \"(\") {\n this.next();\n nodes.push(this.expression());\n this.next(\")\");\n } else {\n nodes.push(this.value());\n }\n ch = this.white();\n if (ch === \":\" || ch === \"}\" || ch === \"]\" || ch === \")\" || ch === \"\" || ch === \"`\" || ch === \"|\" && filterable === \"|\" || ch === \",\" && !allowMultipleValues) {\n break;\n }\n if (ch === \"|\" && this.lookahead() !== \"|\" && filterable) {\n nodes.push(this.filter());\n nodes.push(void 0);\n break;\n }\n op = this.operator({ not_an_array: true });\n if (op === operators[\"?\"]) {\n this.ternary(nodes);\n break;\n } else if (op === operators[\".\"] || op === operators[\"?.\"]) {\n nodes.push(op);\n nodes.push(this.member());\n op = null;\n } else if (op === operators[\"[\"]) {\n nodes.push(op);\n nodes.push(this.expression());\n ch = this.next(\"]\");\n op = null;\n } else if (op === operators[\"=>\"]) {\n nodes[nodes.length - 1] = new Parameters(this, nodes[nodes.length - 1]);\n nodes.push(op);\n } else if (op) {\n nodes.push(op);\n }\n ch = this.white();\n if (ch === \"]\" || !op && ch === \"(\") {\n break;\n }\n }\n if (nodes.length === 0) {\n return void 0;\n }\n const dereferences = this.dereferences();\n if (nodes.length === 1 && !dereferences.length) {\n return nodes[0];\n }\n for (let i = 0, j = dereferences.length; i < j; ++i) {\n const deref = dereferences[i];\n if (deref.constructor === Arguments) {\n nodes.push(operators.call);\n } else {\n nodes.push(operators[\".\"]);\n }\n nodes.push(deref);\n }\n return new Expression(nodes);\n }\n /**\n * Use this method to parse expressions that can be followed by additional markup\n * seperated by a comma, such as in bindings strings.\n *\n * @returns an expression that cannot contain multiple values separated by commas.\n * @see {@link Parser.expression}\n */\n singleValueExpression(filterable = false) {\n return this.expression(filterable, false);\n }\n ternary(nodes) {\n const ternary = new Ternary();\n ternary.yes = this.singleValueExpression();\n this.next(\":\");\n ternary.no = this.singleValueExpression();\n nodes.push(operators[\"?\"]);\n nodes.push(ternary);\n }\n /**\n * Parse the arguments to a function, returning an Array.\n *\n */\n funcArguments() {\n const args = new Array();\n let ch = this.next(\"(\");\n while (ch) {\n ch = this.white();\n if (ch === \")\") {\n this.next(\")\");\n return new Arguments(this, args);\n } else {\n args.push(this.singleValueExpression());\n ch = this.white();\n }\n if (ch !== \")\") {\n this.next(\",\");\n }\n }\n throw this.createError(\"Bad arguments to function\");\n }\n /**\n * The literal string reference `abc` in an `x.abc` expression.\n */\n member() {\n let member = \"\";\n let ch = this.white();\n let isIdentifierChar = Identifier.is_valid_start_char;\n while (ch) {\n if (!isIdentifierChar(ch)) {\n break;\n }\n member += ch;\n ch = this.next();\n isIdentifierChar = Identifier.is_valid_continue_char;\n }\n return member;\n }\n /**\n * A dereference applies to an identifer, being either a function\n * call \"()\" or a membership lookup with square brackets \"[member]\".\n * @return {fn or undefined} Dereference function to be applied to the\n * Identifier\n */\n dereference() {\n let member;\n const ch = this.white();\n while (ch) {\n if (ch === \"(\") {\n return this.funcArguments();\n } else if (ch === \"[\") {\n this.next(\"[\");\n member = this.expression();\n this.white();\n this.next(\"]\");\n return member;\n } else if (ch === \".\") {\n this.next(\".\");\n return this.member();\n } else {\n break;\n }\n }\n }\n dereferences() {\n const ch = this.white();\n const dereferences = new Array();\n let deref;\n while (ch) {\n deref = this.dereference();\n if (deref !== void 0) {\n dereferences.push(deref);\n } else {\n break;\n }\n }\n return dereferences;\n }\n identifier() {\n let token = \"\";\n let isIdentifierChar = Identifier.is_valid_start_char;\n let ch = this.white();\n while (ch) {\n if (!isIdentifierChar(ch)) {\n break;\n }\n token += ch;\n ch = this.next();\n isIdentifierChar = Identifier.is_valid_continue_char;\n }\n switch (token) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n case \"null\":\n return null;\n case \"undefined\":\n return void 0;\n case \"function\":\n throw new Error(\"Knockout: Anonymous functions are no longer supported, but `=>` lambdas are. In: \" + this.text);\n }\n return new Identifier(this, token, this.dereferences());\n }\n readBindings() {\n let key;\n const bindings = {};\n let sep;\n let expr;\n let ch = this.ch;\n while (ch) {\n key = this.name();\n sep = this.white();\n if (!sep || sep === \",\") {\n if (sep) {\n ch = this.next(\",\");\n } else {\n ch = \"\";\n }\n bindings[key] = null;\n } else {\n if (key.indexOf(\".\") !== -1) {\n key = key.split(\".\");\n bindings[key[0]] = bindings[key[0]] || {};\n if (key.length !== 2) {\n options.onError(new Error(\"Binding \" + key + \" should have two parts (a.b).\"));\n } else if (bindings[key[0]].constructor !== Object) {\n options.onError(new Error(\"Binding \" + key[0] + \".\" + key[1] + \" paired with a non-object.\"));\n }\n ch = this.next(\":\");\n this.objectAddValue(bindings[key[0]], key[1], this.singleValueExpression(true));\n } else {\n ch = this.next(\":\");\n if (bindings[key] && typeof bindings[key] === \"object\" && bindings[key].constructor === Object) {\n expr = this.singleValueExpression(true);\n if (typeof expr !== \"object\" || expr.constructor !== Object) {\n options.onError(new Error(\"Expected plain object for \" + key + \" value.\"));\n } else {\n extend(bindings[key], expr);\n }\n } else {\n bindings[key] = this.singleValueExpression(true);\n }\n }\n this.white();\n if (this.ch) {\n ch = this.next(\",\");\n } else {\n ch = \"\";\n }\n }\n }\n return bindings;\n }\n valueAsAccessor(value, context, globals, node) {\n if (!value) {\n return () => value;\n }\n if (typeof value === \"function\") {\n return value;\n }\n if (value[Node.isExpressionOrIdentifierSymbol]) {\n return () => Node.value_of(value, context, globals, node);\n }\n if (Array.isArray(value)) {\n return () => value.map((v) => Node.value_of(v, context, globals, node));\n }\n if (typeof value !== \"function\") {\n return () => clonePlainObjectDeep(value);\n }\n throw new Error(\"Value has cannot be converted to accessor: \" + value);\n }\n /**\n * Convert result[name] from a value to a function (i.e. `valueAccessor()`)\n * @param {object} result [Map of top-level names to values]\n * @return {object} [Map of top-level names to functions]\n *\n * Accessors may be one of (below) constAccessor, identifierAccessor,\n * expressionAccessor, or nodeAccessor.\n */\n convertToAccessors(result, context, globals, node) {\n objectForEach(result, (name, value) => {\n if (value instanceof Identifier) {\n Object.defineProperty(result, name, {\n value: function(optionalValue, options2) {\n const currentValue = value.get_value(void 0, context, globals, node);\n if (arguments.length === 0) {\n return currentValue;\n }\n const unchanged = optionalValue === currentValue;\n if (options2 && options2.onlyIfChanged && unchanged) {\n return;\n }\n return value.set_value(optionalValue, context, globals);\n }\n });\n } else {\n result[name] = this.valueAsAccessor(value, context, globals, node);\n }\n });\n return result;\n }\n preparse(source = \"\") {\n const preparsers = options.bindingStringPreparsers || [];\n return preparsers.reduce((acc, fn) => fn(acc), source.trim());\n }\n runParse(source, fn) {\n this.text = this.preparse(source);\n this.at = 0;\n this.ch = \" \";\n try {\n const result = fn();\n this.white();\n if (this.ch) {\n this.error(\"Syntax Error\");\n }\n return result;\n } catch (e) {\n options.onError(e);\n }\n }\n /**\n * Get the bindings as name: accessor()\n * @param {string} source The binding string to parse.\n * @return {object} Map of name to accessor function.\n */\n parse(source, context = {}, globals = {}, node) {\n if (!source) {\n return () => null;\n }\n this.currentContextGlobals = [context, globals, node];\n const parseFn = () => this.readBindings();\n const bindingAccessors = this.runParse(source, parseFn);\n return this.convertToAccessors(bindingAccessors, context, globals, node);\n }\n /**\n * Return a function that evaluates and returns the result of the expression.\n */\n parseExpression(source, context = {}, globals = {}, node) {\n if (!source) {\n return () => \"\";\n }\n this.currentContextGlobals = [context, globals, node];\n const parseFn = () => this.singleValueExpression(true);\n const bindingAccessors = this.runParse(source, parseFn);\n return this.valueAsAccessor(bindingAccessors, context, globals, node);\n }\n}\n", "// @tko/utils.parser \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { stringTrim } from \"@tko/utils\";\nconst specials = \",\\\"'`{}()/:[\\\\]\";\nconst bindingToken = RegExp(\n [\n // These match strings, either with double quotes, single quotes, or backticks\n '\"(?:\\\\\\\\.|[^\"])*\"',\n \"'(?:\\\\\\\\.|[^'])*'\",\n \"`(?:\\\\\\\\.|[^`])*`\",\n // Match C style comments\n \"/\\\\*(?:[^*]|\\\\*+[^*/])*\\\\*+/\",\n // Match C++ style comments\n \"//.*\\n\",\n // Match a regular expression (text enclosed by slashes), but will also match sets of divisions\n // as a regular expression (this is handled by the parsing loop below).\n \"/(?:\\\\\\\\.|[^/])+/\\\\w*\",\n // Match text (at least two characters) that does not contain any of the above special characters,\n // although some of the special characters are allowed to start it (all but the colon and comma).\n // The text can contain spaces, but leading or trailing spaces are skipped.\n \"[^\\\\s:,/][^\" + specials + \"]*[^\\\\s\" + specials + \"]\",\n // Match any non-space character not matched already. This will match colons and commas, since they're\n // not matched by \"everyThingElse\", but will also match any other single character that wasn't already\n // matched (for example: in \"a: 1, b: 2\", each of the non-space characters will be matched by oneNotSpace).\n \"[^\\\\s]\"\n ].join(\"|\"),\n \"g\"\n);\nconst divisionLookBehind = /[\\])\"'A-Za-z0-9_$]+$/;\nconst keywordRegexLookBehind = { in: 1, return: 1, typeof: 1 };\nexport default function parseObjectLiteral(objectLiteralString) {\n let str = stringTrim(objectLiteralString);\n if (str.charCodeAt(0) === 123) str = str.slice(1, -1);\n str += \"\\n,\";\n const result = new Array();\n let toks = str.match(bindingToken);\n let key;\n let values = new Array();\n let depth = 0;\n if (toks.length <= 1) {\n return [];\n }\n for (let i = 0, tok; tok = toks[i]; ++i) {\n const c = tok.charCodeAt(0);\n if (c === 44) {\n if (depth <= 0) {\n result.push(key && values.length ? { key, value: values.join(\"\") } : { unknown: key || values.join(\"\") });\n key = depth = 0;\n values = new Array();\n continue;\n }\n } else if (c === 58) {\n if (!depth && !key && values.length === 1) {\n key = values.pop();\n continue;\n }\n } else if (c === 47 && tok.length > 1 && (tok.charCodeAt(1) === 47 || tok.charCodeAt(1) === 42)) {\n continue;\n } else if (c === 47 && i && tok.length > 1) {\n const match = toks[i - 1].match(divisionLookBehind);\n if (match && !keywordRegexLookBehind[match[0]]) {\n str = str.substr(str.indexOf(tok) + 1);\n toks = str.match(bindingToken);\n i = -1;\n tok = \"/\";\n }\n } else if (c === 40 || c === 123 || c === 91) {\n ++depth;\n } else if (c === 41 || c === 125 || c === 93) {\n --depth;\n } else if (!key && !values.length && (c === 34 || c === 39)) {\n tok = tok.slice(1, -1);\n }\n values.push(tok);\n }\n return result;\n}\n", "import { Parser } from '@tko/utils.parser'\n\nconst INNER_EXPRESSION = /^([\\s\\S]*)}}([\\s\\S]*?)\\{\\{([\\s\\S]*)$/\nconst OUTER_EXPRESSION = /^([\\s\\S]*?)\\{\\{([\\s\\S]*)}}([\\s\\S]*)$/\nconst BINDING_EXPRESSION = /^([^,\"'{}()/:[\\]\\s]+)\\s+([^\\s:].*)/\n\nclass Interpolated {\n text: string\n constructor(text: string) {\n this.text = text\n }\n\n trim(string) {\n return string === null ? '' : string.trim()\n }\n}\n\nclass Expression extends Interpolated {\n asAttr(context, globals, node) {\n return new Parser().parseExpression(this.text, context, globals, node)()\n }\n\n *textNodeReplacement(textNode) {\n const text = this.trim(this.text)\n const ownerDocument = textNode ? textNode.ownerDocument : document\n const firstChar = text[0]\n const lastChar = text[text.length - 1]\n let closeComment = true\n let binding\n\n if (firstChar === '#') {\n if (lastChar === '/') {\n binding = text.slice(1, -1)\n } else {\n binding = text.slice(1)\n closeComment = false\n }\n const matches = binding.match(BINDING_EXPRESSION)\n if (matches) {\n binding = matches[1] + ':' + matches[2]\n }\n } else if (firstChar === '/') {\n // replace only with a closing comment\n } else if (firstChar === '{' && lastChar === '}') {\n binding = 'html:' + this.trim(text.slice(1, -1))\n } else {\n binding = 'text:' + this.trim(text)\n }\n\n if (binding) {\n yield ownerDocument.createComment('ko ' + binding)\n }\n if (closeComment) {\n yield ownerDocument.createComment('/ko')\n }\n }\n}\n\nclass Text extends Interpolated {\n asAttr(): string {\n return this.text\n }\n\n *textNodeReplacement() {\n yield document.createTextNode(this.text.replace(/\"/g, '\\\\\"'))\n }\n}\n\n/**\n * Interpolation Parsing\n */\nexport function* innerParse(text: string) {\n const innerMatch = text.match(INNER_EXPRESSION)\n if (innerMatch) {\n const [pre, inner, post] = innerMatch.slice(1)\n yield* innerParse(pre)\n yield new Text(inner)\n yield new Expression(post)\n } else {\n yield new Expression(text)\n }\n}\n\nexport function* parseOuterMatch(outerMatch?: RegExpMatchArray | null) {\n if (!outerMatch) {\n return\n }\n const [pre, inner, post] = outerMatch.slice(1)\n yield new Text(pre)\n yield* innerParse(inner)\n yield new Text(post)\n}\n\nexport function* parseInterpolation(text: string | null) {\n for (const textOrExpr of parseOuterMatch(text?.match(OUTER_EXPRESSION))) {\n if (textOrExpr.text) {\n yield textOrExpr\n }\n }\n}\n", "import { unwrap } from '@tko/observable'\n\nimport { Provider } from '@tko/provider'\n\nimport type { ProviderParamsInput } from '@tko/provider'\n\nimport { parseInterpolation } from './mustacheParser'\n\n/**\n * These are bindings that are mapped specific attributes, such as\n * two-way communication (value/checked) or which have anti-collision\n * properties (css).\n */\nconst DEFAULT_ATTRIBUTE_BINDING_MAP = { value: 'value', checked: 'checked', class: 'css' }\n\ntype AttributeBindingTuple = [string, any[]]\n\n/**\n * Interpret {{ }} inside DOM attributes e.g. <div class='{{ classes }}'>\n */\nexport default class AttributeMustacheProvider extends Provider {\n ATTRIBUTES_TO_SKIP: Set<string>\n ATTRIBUTES_BINDING_MAP: any\n override get FOR_NODE_TYPES() {\n return [Node.ELEMENT_NODE]\n }\n\n constructor(params: ProviderParamsInput | null = null) {\n super(params)\n this.ATTRIBUTES_TO_SKIP = new Set(params?.attributesToSkip || ['data-bind'])\n this.ATTRIBUTES_BINDING_MAP = params?.attributesBindingMap || DEFAULT_ATTRIBUTE_BINDING_MAP\n }\n\n *attributesToInterpolate(attributes: NamedNodeMap) {\n for (const attr of Array.from(attributes)) {\n if (this.ATTRIBUTES_TO_SKIP.has(attr.name)) {\n continue\n }\n if (attr.specified && attr.value.includes('{{')) {\n yield attr\n }\n }\n }\n\n override nodeHasBindings(node: Node) {\n if (!(node instanceof Element)) {\n return false\n }\n return !this.attributesToInterpolate(node.attributes).next().done\n }\n\n partsTogether(parts: any[], context: any, node: Element, ...valueToWrite: any[]) {\n if (parts.length > 1) {\n return parts\n .map((p: { asAttr: (arg0: any, arg1: any, arg2: Element) => any }) =>\n unwrap(p.asAttr(context, this.globals, node))\n )\n .join('')\n }\n // It may be a writeable observable e.g. value=\"{{ value }}\".\n const part = parts[0].asAttr(context, this.globals)\n if (valueToWrite.length) {\n part(valueToWrite[0])\n }\n return part\n }\n\n attributeBinding(name: string, parts: any[]): AttributeBindingTuple {\n return [name, parts]\n }\n\n *bindingParts(node: Element, context: any): Generator<AttributeBindingTuple> {\n for (const attr of this.attributesToInterpolate(node.attributes)) {\n const parts = Array.from(parseInterpolation(attr.value))\n if (parts.length) {\n yield this.attributeBinding(attr.name, parts)\n }\n }\n }\n\n getPossibleDirectBinding(attrName: string | number) {\n const bindingName = this.ATTRIBUTES_BINDING_MAP[attrName]\n return bindingName && this.bindingHandlers.get(attrName)\n }\n\n *bindingObjects(node: Element, context: any) {\n for (const [attrName, parts] of this.bindingParts(node, context)) {\n const bindingForAttribute = this.getPossibleDirectBinding(attrName)\n const handler: string = bindingForAttribute ? attrName : `attr.${attrName}`\n const accessorFn = bindingForAttribute\n ? (...v: any) => this.partsTogether(parts, context, node, ...v)\n : (...v: any) => ({ [attrName]: this.partsTogether(parts, context, node, ...v) })\n node.removeAttribute(attrName)\n yield { [handler]: accessorFn }\n }\n }\n\n override getBindingAccessors(node: Node, context?) {\n if (!(node instanceof Element)) {\n return false\n }\n if (context === undefined) context = {}\n return Object.assign({}, ...this.bindingObjects(node, context))\n }\n}\n", "import { Provider } from '@tko/provider'\n\nimport { parseInterpolation } from './mustacheParser'\n\n/**\n * Interpret {{ }}, {{{ }}}, {{# /}}, and {{# }} ... {{/ }} inside text nodes.\n *\n * This binding must come before the VirtualProvider.\n */\nexport default class TextMustacheProvider extends Provider {\n override get FOR_NODE_TYPES() {\n return [Node.TEXT_NODE]\n }\n\n *textToNodes(textNode: Node) {\n const parent = textNode.parentNode\n const isTextarea = parent && parent.nodeName === 'TEXTAREA'\n const hasStash = textNode.nodeValue && textNode.nodeValue.includes('{{')\n\n if (!hasStash || isTextarea) {\n return\n }\n\n for (const part of parseInterpolation(textNode.nodeValue)) {\n yield* part.textNodeReplacement(textNode)\n }\n }\n\n textInterpolation(textNode: Node): Node[] | null {\n const newNodes = Array.from(this.textToNodes(textNode))\n\n if (newNodes.length === 0) {\n return null\n }\n\n if (textNode.parentNode) {\n const parent = textNode.parentNode\n const n = newNodes.length\n for (let i = 0; i < n; ++i) {\n parent.insertBefore(newNodes[i], textNode)\n }\n parent.removeChild(textNode)\n }\n\n return newNodes\n }\n\n /**\n * We convert as follows:\n *\n * {{# ... }} into <!-- ko ... -->\n * {{/ ... }} into <!-- /ko -->\n * {{# ... /}} into <!-- ko ... --><!-- /ko -->\n * {{ ... }} into <!-- ko text: ... --><!-- /ko -->\n * {{{ ... }}} into <!-- ko html: ... --><!-- /ko -->\n *\n * VirtualProvider can then pick up and do the actual binding.\n */\n override preprocessNode(node: Node) {\n return this.textInterpolation(node)\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["options", "div", "options", "subscribable", "options", "Node", "Node", "Node", "member", "Node", "Node", "Node", "Node", "ternary", "member", "Expression"]
|
|
7
7
|
}
|