@tko/build.reference 4.0.0-beta1.2 → 4.0.0-beta1.3
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/browser.js +8072 -0
- package/dist/browser.js.map +7 -0
- package/dist/browser.min.js +2 -2
- package/dist/browser.min.js.map +1 -1
- package/dist/common.js +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/dist/tko-v4.0.0-beta1.3.zip +0 -0
- package/package.json +19 -19
package/dist/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../index.ts", "../../../packages/utils/dist/array.js", "../../../packages/utils/dist/options.js", "../../../packages/utils/dist/error.js", "../../../packages/utils/dist/async.js", "../../../packages/utils/dist/ie.js", "../../../packages/utils/dist/object.js", "../../../packages/utils/dist/function.js", "../../../packages/utils/dist/string.js", "../../../packages/utils/dist/symbol.js", "../../../packages/utils/dist/css.js", "../../../packages/utils/dist/jquery.js", "../../../packages/utils/dist/dom/info.js", "../../../packages/utils/dist/dom/data.js", "../../../packages/utils/dist/dom/disposal.js", "../../../packages/utils/dist/dom/event.js", "../../../packages/utils/dist/dom/manipulation.js", "../../../packages/utils/dist/dom/fixes.js", "../../../packages/utils/dist/dom/virtualElements.js", "../../../packages/utils/dist/dom/html.js", "../../../packages/utils/dist/dom/selectExtensions.js", "../../../packages/utils/dist/memoization.js", "../../../packages/utils/dist/tasks.js", "../../../packages/observable/dist/dependencyDetection.js", "../../../packages/observable/dist/subscribableSymbol.js", "../../../packages/observable/dist/defer.js", "../../../packages/observable/dist/Subscription.js", "../../../packages/observable/dist/extenders.js", "../../../packages/observable/dist/subscribable.js", "../../../packages/observable/dist/observable.js", "../../../packages/observable/dist/observableArray.changeTracking.js", "../../../packages/observable/dist/observableArray.js", "../../../packages/observable/dist/mappingHelpers.js", "../../../packages/utils.parser/dist/operators.js", "../../../packages/utils.parser/dist/Node.js", "../../../packages/utils.parser/dist/Expression.js", "../../../packages/utils.parser/dist/Arguments.js", "../../../packages/utils.parser/dist/identifierExpressions.js", "../../../packages/utils.parser/dist/Identifier.js", "../../../packages/utils.parser/dist/Parameters.js", "../../../packages/utils.parser/dist/Ternary.js", "../../../packages/utils.parser/dist/Parser.js", "../../../packages/utils.parser/dist/preparse.js", "../../../packages/computed/dist/computed.js", "../../../packages/computed/dist/throttleExtender.js", "../../../packages/computed/dist/proxy.js", "../../../packages/computed/dist/when.js", "../../../packages/lifecycle/dist/LifeCycle.js", "../../../packages/bind/dist/bindingEvent.js", "../../../packages/bind/dist/bindingContext.js", "../../../packages/bind/dist/BindingResult.js", "../../../packages/bind/dist/BindingHandler.js", "../../../packages/bind/dist/LegacyBindingHandler.js", "../../../packages/bind/dist/applyBindings.js", "../../../packages/bind/dist/arrayToDomNodeChildren.js", "../../../packages/bind/dist/DescendantBindingHandler.js", "../../../packages/binding.template/dist/templateSources.js", "../../../packages/binding.template/dist/templateEngine.js", "../../../packages/binding.template/dist/templating.js", "../../../packages/binding.template/dist/nativeTemplateEngine.js", "../../../packages/binding.template/dist/foreach.js", "../../../packages/binding.template/dist/index.js", "../../../packages/builder/dist/Builder.js", "../../../packages/provider/dist/BindingHandlerObject.js", "../../../packages/provider/dist/Provider.js", "../../../packages/provider.bindingstring/dist/BindingStringProvider.js", "../../../packages/provider.virtual/dist/VirtualProvider.js", "../../../packages/provider.databind/dist/DataBindProvider.js", "../../../packages/utils.component/dist/registry.js", "../../../packages/utils.component/dist/loaders.js", "../../../packages/utils.component/dist/ComponentABC.js", "../../../packages/utils.component/dist/index.js", "../../../packages/provider.component/dist/ComponentProvider.js", "../../../packages/provider.attr/dist/AttributeProvider.js", "../../../packages/provider.multi/dist/MultiProvider.js", "../../../packages/provider.mustache/dist/mustacheParser.js", "../../../packages/provider.mustache/dist/AttributeMustacheProvider.js", "../../../packages/provider.mustache/dist/TextMustacheProvider.js", "../../../packages/provider.native/dist/NativeProvider.js", "../../../packages/binding.core/dist/attr.js", "../../../packages/binding.core/dist/checked.js", "../../../packages/binding.core/dist/event.js", "../../../packages/binding.core/dist/click.js", "../../../packages/binding.core/dist/css.js", "../../../packages/binding.core/dist/descendantsComplete.js", "../../../packages/binding.core/dist/enableDisable.js", "../../../packages/binding.core/dist/hasfocus.js", "../../../packages/binding.core/dist/html.js", "../../../packages/binding.core/dist/let.js", "../../../packages/binding.core/dist/options.js", "../../../packages/binding.core/dist/selectedOptions.js", "../../../packages/binding.core/dist/style.js", "../../../packages/binding.core/dist/submit.js", "../../../packages/binding.core/dist/text.js", "../../../packages/binding.core/dist/textInput.js", "../../../packages/binding.core/dist/uniqueName.js", "../../../packages/binding.core/dist/value.js", "../../../packages/binding.core/dist/visible.js", "../../../packages/binding.core/dist/using.js", "../../../packages/binding.core/dist/index.js", "../../../packages/binding.if/dist/ConditionalBindingHandler.js", "../../../packages/binding.if/dist/ifUnless.js", "../../../packages/binding.if/dist/with.js", "../../../packages/binding.if/dist/else.js", "../../../packages/binding.if/dist/index.js", "../../../packages/binding.foreach/dist/foreach.js", "../../../packages/binding.foreach/dist/index.js", "../../../packages/utils.jsx/dist/jsxClean.js", "../../../packages/utils.jsx/dist/JsxObserver.js", "../../../packages/utils.jsx/dist/jsx.js", "../../../packages/binding.component/dist/componentBinding.js", "../../../packages/binding.component/dist/slotBinding.js", "../../../packages/binding.component/dist/index.js", "../../../packages/filter.punches/dist/index.js", "../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["export {default} from './src'\nexport * from './src'\n", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 ESM\nexport function stringTrim(string) {\n return string === null || string === void 0 ? \"\" : string.trim ? string.trim() : string.toString().replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g, \"\");\n}\nexport function stringStartsWith(string, startsWith) {\n string = string || \"\";\n if (startsWith.length > string.length) {\n return false;\n }\n return string.substring(0, startsWith.length) === startsWith;\n}\nexport function parseJson(jsonString) {\n if (typeof jsonString === \"string\") {\n jsonString = stringTrim(jsonString);\n if (jsonString) {\n if (JSON && JSON.parse) {\n return JSON.parse(jsonString);\n }\n return new Function(\"return \" + jsonString)();\n }\n }\n return null;\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 ESM\nexport var useSymbols = typeof Symbol === \"function\";\nexport function createSymbolOrString(identifier) {\n return useSymbols ? Symbol(identifier) : identifier;\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport { arrayForEach, addOrRemoveItem } from \"./array\";\nvar cssClassNameRegex = /\\S+/g;\nfunction toggleDomNodeCssClass(node, classNames, shouldHaveClass) {\n var addOrRemoveFn;\n if (!classNames) {\n return;\n }\n if (typeof node.classList === \"object\") {\n addOrRemoveFn = node.classList[shouldHaveClass ? \"add\" : \"remove\"];\n arrayForEach(classNames.match(cssClassNameRegex), function(className) {\n addOrRemoveFn.call(node.classList, className);\n });\n } else if (typeof node.className[\"baseVal\"] === \"string\") {\n toggleObjectClassPropertyString(node.className, \"baseVal\", classNames, shouldHaveClass);\n } else {\n toggleObjectClassPropertyString(node, \"className\", classNames, shouldHaveClass);\n }\n}\nfunction toggleObjectClassPropertyString(obj, prop, classNames, shouldHaveClass) {\n var currentClassNames = obj[prop].match(cssClassNameRegex) || [];\n arrayForEach(classNames.match(cssClassNameRegex), function(className) {\n addOrRemoveItem(currentClassNames, className, shouldHaveClass);\n });\n obj[prop] = currentClassNames.join(\" \");\n}\nexport { toggleDomNodeCssClass };\n", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport options from \"./options\";\nexport var jQueryInstance = options.global && options.global.jQuery;\nexport function jQuerySetInstance(jquery) {\n options.jQuery = jQueryInstance = jquery;\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport { makeArray } from \"../array\";\nimport { ieVersion } from \"../ie\";\nimport { cleanNode, removeNode } from \"./disposal\";\nexport function moveCleanedNodesToContainerElement(nodes) {\n var nodesArray = makeArray(nodes);\n var templateDocument = nodesArray[0] && nodesArray[0].ownerDocument || document;\n var container = templateDocument.createElement(\"div\");\n for (var i = 0, j = nodesArray.length; i < j; i++) {\n container.appendChild(cleanNode(nodesArray[i]));\n }\n return container;\n}\nexport function cloneNodes(nodesArray, shouldCleanNodes) {\n for (var i = 0, j = nodesArray.length, newNodesArray = []; i < j; i++) {\n var clonedNode = nodesArray[i].cloneNode(true);\n newNodesArray.push(shouldCleanNodes ? cleanNode(clonedNode) : clonedNode);\n }\n return newNodesArray;\n}\nexport function setDomNodeChildren(domNode, childNodes) {\n emptyDomNode(domNode);\n if (childNodes) {\n for (var i = 0, j = childNodes.length; i < j; i++) {\n domNode.appendChild(childNodes[i]);\n }\n }\n}\nexport function replaceDomNodes(nodeToReplaceOrNodeArray, newNodesArray) {\n var nodesToReplaceArray = nodeToReplaceOrNodeArray.nodeType ? [nodeToReplaceOrNodeArray] : nodeToReplaceOrNodeArray;\n if (nodesToReplaceArray.length > 0) {\n var insertionPoint = nodesToReplaceArray[0];\n var parent = insertionPoint.parentNode;\n for (var i = 0, j = newNodesArray.length; i < j; i++) {\n parent.insertBefore(newNodesArray[i], insertionPoint);\n }\n for (i = 0, j = nodesToReplaceArray.length; i < j; i++) {\n removeNode(nodesToReplaceArray[i]);\n }\n }\n}\nexport function setElementName(element, name) {\n element.name = name;\n if (ieVersion <= 7) {\n try {\n element.mergeAttributes(document.createElement(\"<input name='\" + element.name + \"'/>\"), false);\n } catch (e) {\n }\n }\n}\nexport function emptyDomNode(domNode) {\n while (domNode.firstChild) {\n removeNode(domNode.firstChild);\n }\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport { ieVersion } from \"../ie\";\nexport function fixUpContinuousNodeArray(continuousNodeArray, parentNode) {\n if (continuousNodeArray.length) {\n parentNode = parentNode.nodeType === 8 && parentNode.parentNode || parentNode;\n while (continuousNodeArray.length && continuousNodeArray[0].parentNode !== parentNode) {\n continuousNodeArray.splice(0, 1);\n }\n while (continuousNodeArray.length > 1 && continuousNodeArray[continuousNodeArray.length - 1].parentNode !== parentNode) {\n continuousNodeArray.length--;\n }\n if (continuousNodeArray.length > 1) {\n var current = continuousNodeArray[0], last = continuousNodeArray[continuousNodeArray.length - 1];\n continuousNodeArray.length = 0;\n while (current !== last) {\n continuousNodeArray.push(current);\n current = current.nextSibling;\n }\n continuousNodeArray.push(last);\n }\n }\n return continuousNodeArray;\n}\nexport function setOptionNodeSelectionState(optionNode, isSelected) {\n if (ieVersion < 7) {\n optionNode.setAttribute(\"selected\", isSelected);\n } else {\n optionNode.selected = isSelected;\n }\n}\nexport function forceRefresh(node) {\n if (ieVersion >= 9) {\n var elem = node.nodeType == 1 ? node : node.parentNode;\n if (elem.style) {\n elem.style.zoom = elem.style.zoom;\n }\n }\n}\nexport function ensureSelectElementIsRenderedCorrectly(selectElement) {\n if (ieVersion) {\n var originalWidth = selectElement.style.width;\n selectElement.style.width = 0;\n selectElement.style.width = originalWidth;\n }\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport { arrayPushAll } from \"./array\";\nvar memos = {};\nfunction randomMax8HexChars() {\n return ((1 + Math.random()) * 4294967296 | 0).toString(16).substring(1);\n}\nfunction generateRandomId() {\n return randomMax8HexChars() + randomMax8HexChars();\n}\nfunction findMemoNodes(rootNode, appendToArray) {\n if (!rootNode) {\n return;\n }\n if (rootNode.nodeType == 8) {\n var memoId = parseMemoText(rootNode.nodeValue);\n if (memoId != null) {\n appendToArray.push({ domNode: rootNode, memoId });\n }\n } else if (rootNode.nodeType == 1) {\n for (var i = 0, childNodes = rootNode.childNodes, j = childNodes.length; i < j; i++) {\n findMemoNodes(childNodes[i], appendToArray);\n }\n }\n}\nexport function memoize(callback) {\n if (typeof callback !== \"function\") {\n throw new Error(\"You can only pass a function to memoization.memoize()\");\n }\n var memoId = generateRandomId();\n memos[memoId] = callback;\n return \"<!--[ko_memo:\" + memoId + \"]-->\";\n}\nexport function unmemoize(memoId, callbackParams) {\n var callback = memos[memoId];\n if (callback === void 0) {\n throw new Error(\"Couldn't find any memo with ID \" + memoId + \". Perhaps it's already been unmemoized.\");\n }\n try {\n callback.apply(null, callbackParams || []);\n return true;\n } finally {\n delete memos[memoId];\n }\n}\nexport function unmemoizeDomNodeAndDescendants(domNode, extraCallbackParamsArray) {\n var memos2 = [];\n findMemoNodes(domNode, memos2);\n for (var i = 0, j = memos2.length; i < j; i++) {\n var node = memos2[i].domNode;\n var combinedParams = [node];\n if (extraCallbackParamsArray) {\n arrayPushAll(combinedParams, extraCallbackParamsArray);\n }\n unmemoize(memos2[i].memoId, combinedParams);\n node.nodeValue = \"\";\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n}\nexport function parseMemoText(memoText) {\n var match = memoText.match(/^\\[ko_memo\\:(.*?)\\]$/);\n return match ? match[1] : null;\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/observable \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/observable \uD83E\uDD4A 4.0.0-beta1.0 ESM\nexport const SUBSCRIBABLE_SYM = Symbol(\"Knockout Subscribable\");\nexport function isSubscribable(instance) {\n return instance && instance[SUBSCRIBABLE_SYM] || false;\n}\n", "// @tko/observable \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/observable \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/observable \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/observable \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/observable \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/observable \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/observable \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/observable \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport { isObservable } from \"./observable\";\nvar maxNestedObservableDepth = 10;\nexport function toJS(rootObject) {\n if (arguments.length == 0) {\n throw new Error(\"When calling ko.toJS, pass the object you want to convert.\");\n }\n return mapJsObjectGraph(rootObject, function(valueToMap) {\n for (var i = 0; isObservable(valueToMap) && i < maxNestedObservableDepth; i++) {\n valueToMap = valueToMap();\n }\n return valueToMap;\n });\n}\nexport function toJSON(rootObject, replacer, space) {\n var plainJavaScriptObject = toJS(rootObject);\n return JSON.stringify(plainJavaScriptObject, replacer, space);\n}\nfunction mapJsObjectGraph(rootObject, mapInputCallback, visitedObjects = /* @__PURE__ */ new Map()) {\n rootObject = mapInputCallback(rootObject);\n var canHaveProperties = typeof rootObject === \"object\" && rootObject !== null && rootObject !== void 0 && !(rootObject instanceof RegExp) && !(rootObject instanceof Date) && !(rootObject instanceof String) && !(rootObject instanceof Number) && !(rootObject instanceof Boolean);\n if (!canHaveProperties) {\n return rootObject;\n }\n var outputProperties = rootObject instanceof Array ? [] : {};\n visitedObjects.set(rootObject, outputProperties);\n visitPropertiesOrArrayEntries(rootObject, function(indexer) {\n var propertyValue = mapInputCallback(rootObject[indexer]);\n switch (typeof propertyValue) {\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"function\":\n outputProperties[indexer] = propertyValue;\n break;\n case \"object\":\n case \"undefined\":\n var previouslyMappedValue = visitedObjects.get(propertyValue);\n outputProperties[indexer] = previouslyMappedValue !== void 0 ? previouslyMappedValue : mapJsObjectGraph(propertyValue, mapInputCallback, visitedObjects);\n break;\n }\n });\n return outputProperties;\n}\nfunction visitPropertiesOrArrayEntries(rootObject, visitorCallback) {\n if (rootObject instanceof Array) {\n for (var i = 0; i < rootObject.length; i++) {\n visitorCallback(i);\n }\n if (typeof rootObject[\"toJSON\"] === \"function\") {\n visitorCallback(\"toJSON\");\n }\n } else {\n for (var propertyName in rootObject) {\n visitorCallback(propertyName);\n }\n }\n}\n", "// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.0 ESM\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 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 member(a, b) {\n return a[b];\n },\n \"[\": function member2(a, b) {\n return 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 = 16;\noperators[\"!!\"].precedence = 16;\noperators[\"++\"].precedence = 16;\noperators[\"--\"].precedence = 16;\noperators[\"&-\"].precedence = 16;\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[\"&&\"].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-beta1.0 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", "// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.0 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 throw new Error(`dereference of null value in ${JSON.stringify(this, null, 2)} context: ${JSON.stringify($context, null, 2)}`);\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", "// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.0 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(\"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 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(null, 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[\".\"]) {\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", "// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.0 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", "// @tko/computed \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n addDisposeCallback,\n arrayForEach,\n createSymbolOrString,\n domNodeIsAttachedToDocument,\n extend,\n options,\n hasOwnProperty,\n objectForEach,\n options as koOptions,\n removeDisposeCallback,\n safeSetTimeout\n} from \"@tko/utils\";\nimport {\n dependencyDetection,\n extenders,\n valuesArePrimitiveAndEqual,\n observable,\n subscribable,\n LATEST_VALUE\n} from \"@tko/observable\";\nconst computedState = createSymbolOrString(\"_state\");\nconst DISPOSED_STATE = {\n dependencyTracking: null,\n dependenciesCount: 0,\n isDisposed: true,\n isStale: false,\n isDirty: false,\n isSleeping: false,\n disposeWhenNodeIsRemoved: null,\n readFunction: null,\n _options: null\n};\nexport function computed(evaluatorFunctionOrOptions, evaluatorFunctionTarget, options2) {\n if (typeof evaluatorFunctionOrOptions === \"object\") {\n options2 = evaluatorFunctionOrOptions;\n } else {\n options2 = options2 || {};\n if (evaluatorFunctionOrOptions) {\n options2.read = evaluatorFunctionOrOptions;\n }\n }\n if (typeof options2.read !== \"function\") {\n throw Error(\"Pass a function that returns the value of the computed\");\n }\n var writeFunction = options2.write;\n var state = {\n latestValue: void 0,\n isStale: true,\n isDirty: true,\n isBeingEvaluated: false,\n suppressDisposalUntilDisposeWhenReturnsFalse: false,\n isDisposed: false,\n pure: false,\n isSleeping: false,\n readFunction: options2.read,\n evaluatorFunctionTarget: evaluatorFunctionTarget || options2.owner,\n disposeWhenNodeIsRemoved: options2.disposeWhenNodeIsRemoved || options2.disposeWhenNodeIsRemoved || null,\n disposeWhen: options2.disposeWhen || options2.disposeWhen,\n domNodeDisposalCallback: null,\n dependencyTracking: {},\n dependenciesCount: 0,\n evaluationTimeoutInstance: null\n };\n function computedObservable() {\n if (arguments.length > 0) {\n if (typeof writeFunction === \"function\") {\n writeFunction.apply(state.evaluatorFunctionTarget, arguments);\n } else {\n throw new Error(\"Cannot write a value to a computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.\");\n }\n return this;\n } else {\n if (!state.isDisposed) {\n dependencyDetection.registerDependency(computedObservable);\n }\n if (state.isDirty || state.isSleeping && computedObservable.haveDependenciesChanged()) {\n computedObservable.evaluateImmediate();\n }\n return state.latestValue;\n }\n }\n computedObservable[computedState] = state;\n computedObservable.isWriteable = typeof writeFunction === \"function\";\n subscribable.fn.init(computedObservable);\n Object.setPrototypeOf(computedObservable, computed.fn);\n if (options2.pure) {\n state.pure = true;\n state.isSleeping = true;\n extend(computedObservable, pureComputedOverrides);\n } else if (options2.deferEvaluation) {\n extend(computedObservable, deferEvaluationOverrides);\n }\n if (koOptions.deferUpdates) {\n extenders.deferred(computedObservable, true);\n }\n if (koOptions.debug) {\n computedObservable._options = options2;\n }\n if (state.disposeWhenNodeIsRemoved) {\n state.suppressDisposalUntilDisposeWhenReturnsFalse = true;\n if (!state.disposeWhenNodeIsRemoved.nodeType) {\n state.disposeWhenNodeIsRemoved = null;\n }\n }\n if (!state.isSleeping && !options2.deferEvaluation) {\n computedObservable.evaluateImmediate();\n }\n if (state.disposeWhenNodeIsRemoved && computedObservable.isActive()) {\n addDisposeCallback(state.disposeWhenNodeIsRemoved, state.domNodeDisposalCallback = function() {\n computedObservable.dispose();\n });\n }\n return computedObservable;\n}\nfunction computedDisposeDependencyCallback(id, entryToDispose) {\n if (entryToDispose !== null && entryToDispose.dispose) {\n entryToDispose.dispose();\n }\n}\nfunction computedBeginDependencyDetectionCallback(subscribable2, id) {\n var computedObservable = this.computedObservable, state = computedObservable[computedState];\n if (!state.isDisposed) {\n if (this.disposalCount && this.disposalCandidates[id]) {\n computedObservable.addDependencyTracking(id, subscribable2, this.disposalCandidates[id]);\n this.disposalCandidates[id] = null;\n --this.disposalCount;\n } else if (!state.dependencyTracking[id]) {\n computedObservable.addDependencyTracking(id, subscribable2, state.isSleeping ? { _target: subscribable2 } : computedObservable.subscribeToDependency(subscribable2));\n }\n if (subscribable2._notificationIsPending) {\n subscribable2._notifyNextChangeIfValueIsDifferent();\n }\n }\n}\ncomputed.fn = {\n equalityComparer: valuesArePrimitiveAndEqual,\n getDependenciesCount() {\n return this[computedState].dependenciesCount;\n },\n getDependencies() {\n const dependencyTracking = this[computedState].dependencyTracking;\n const dependentObservables = [];\n objectForEach(dependencyTracking, function(id, dependency) {\n dependentObservables[dependency._order] = dependency._target;\n });\n return dependentObservables;\n },\n addDependencyTracking(id, target, trackingObj) {\n if (this[computedState].pure && target === this) {\n throw Error(\"A 'pure' computed must not be called recursively\");\n }\n this[computedState].dependencyTracking[id] = trackingObj;\n trackingObj._order = this[computedState].dependenciesCount++;\n trackingObj._version = target.getVersion();\n },\n haveDependenciesChanged() {\n var id, dependency, dependencyTracking = this[computedState].dependencyTracking;\n for (id in dependencyTracking) {\n if (hasOwnProperty(dependencyTracking, id)) {\n dependency = dependencyTracking[id];\n if (this._evalDelayed && dependency._target._notificationIsPending || dependency._target.hasChanged(dependency._version)) {\n return true;\n }\n }\n }\n },\n markDirty() {\n if (this._evalDelayed && !this[computedState].isBeingEvaluated) {\n this._evalDelayed(false);\n }\n },\n isActive() {\n const state = this[computedState];\n return state.isDirty || state.dependenciesCount > 0;\n },\n respondToChange() {\n if (!this._notificationIsPending) {\n this.evaluatePossiblyAsync();\n } else if (this[computedState].isDirty) {\n this[computedState].isStale = true;\n }\n },\n subscribeToDependency(target) {\n if (target._deferUpdates) {\n var dirtySub = target.subscribe(this.markDirty, this, \"dirty\"), changeSub = target.subscribe(this.respondToChange, this);\n return {\n _target: target,\n dispose() {\n dirtySub.dispose();\n changeSub.dispose();\n }\n };\n } else {\n return target.subscribe(this.evaluatePossiblyAsync, this);\n }\n },\n evaluatePossiblyAsync() {\n var computedObservable = this, throttleEvaluationTimeout = computedObservable.throttleEvaluation;\n if (throttleEvaluationTimeout && throttleEvaluationTimeout >= 0) {\n clearTimeout(this[computedState].evaluationTimeoutInstance);\n this[computedState].evaluationTimeoutInstance = safeSetTimeout(function() {\n computedObservable.evaluateImmediate(true);\n }, throttleEvaluationTimeout);\n } else if (computedObservable._evalDelayed) {\n computedObservable._evalDelayed(true);\n } else {\n computedObservable.evaluateImmediate(true);\n }\n },\n evaluateImmediate(notifyChange) {\n var computedObservable = this, state = computedObservable[computedState], disposeWhen = state.disposeWhen, changed = false;\n if (state.isBeingEvaluated) {\n return;\n }\n if (state.isDisposed) {\n return;\n }\n if (state.disposeWhenNodeIsRemoved && !domNodeIsAttachedToDocument(state.disposeWhenNodeIsRemoved) || disposeWhen && disposeWhen()) {\n if (!state.suppressDisposalUntilDisposeWhenReturnsFalse) {\n computedObservable.dispose();\n return;\n }\n } else {\n state.suppressDisposalUntilDisposeWhenReturnsFalse = false;\n }\n state.isBeingEvaluated = true;\n try {\n changed = this.evaluateImmediate_CallReadWithDependencyDetection(notifyChange);\n } finally {\n state.isBeingEvaluated = false;\n }\n return changed;\n },\n evaluateImmediate_CallReadWithDependencyDetection(notifyChange) {\n var computedObservable = this, state = computedObservable[computedState], changed = false;\n var isInitial = state.pure ? void 0 : !state.dependenciesCount, dependencyDetectionContext = {\n computedObservable,\n disposalCandidates: state.dependencyTracking,\n disposalCount: state.dependenciesCount\n };\n dependencyDetection.begin({\n callbackTarget: dependencyDetectionContext,\n callback: computedBeginDependencyDetectionCallback,\n computed: computedObservable,\n isInitial\n });\n state.dependencyTracking = {};\n state.dependenciesCount = 0;\n var newValue = this.evaluateImmediate_CallReadThenEndDependencyDetection(state, dependencyDetectionContext);\n if (!state.dependenciesCount) {\n computedObservable.dispose();\n changed = true;\n } else {\n changed = computedObservable.isDifferent(state.latestValue, newValue);\n }\n if (changed) {\n if (!state.isSleeping) {\n computedObservable.notifySubscribers(state.latestValue, \"beforeChange\");\n } else {\n computedObservable.updateVersion();\n }\n state.latestValue = newValue;\n if (options.debug) {\n computedObservable._latestValue = newValue;\n }\n computedObservable.notifySubscribers(state.latestValue, \"spectate\");\n if (!state.isSleeping && notifyChange) {\n computedObservable.notifySubscribers(state.latestValue);\n }\n if (computedObservable._recordUpdate) {\n computedObservable._recordUpdate();\n }\n }\n if (isInitial) {\n computedObservable.notifySubscribers(state.latestValue, \"awake\");\n }\n return changed;\n },\n evaluateImmediate_CallReadThenEndDependencyDetection(state, dependencyDetectionContext) {\n try {\n var readFunction = state.readFunction;\n return state.evaluatorFunctionTarget ? readFunction.call(state.evaluatorFunctionTarget) : readFunction();\n } finally {\n dependencyDetection.end();\n if (dependencyDetectionContext.disposalCount && !state.isSleeping) {\n objectForEach(dependencyDetectionContext.disposalCandidates, computedDisposeDependencyCallback);\n }\n state.isStale = state.isDirty = false;\n }\n },\n peek(forceEvaluate) {\n const state = this[computedState];\n if (state.isDirty && (forceEvaluate || !state.dependenciesCount) || state.isSleeping && this.haveDependenciesChanged()) {\n this.evaluateImmediate();\n }\n return state.latestValue;\n },\n get [LATEST_VALUE]() {\n return this.peek();\n },\n limit(limitFunction) {\n const state = this[computedState];\n subscribable.fn.limit.call(this, limitFunction);\n Object.assign(this, {\n _evalIfChanged() {\n if (!this[computedState].isSleeping) {\n if (this[computedState].isStale) {\n this.evaluateImmediate();\n } else {\n this[computedState].isDirty = false;\n }\n }\n return state.latestValue;\n },\n _evalDelayed(isChange) {\n this._limitBeforeChange(state.latestValue);\n state.isDirty = true;\n if (isChange) {\n state.isStale = true;\n }\n this._limitChange(this, !isChange);\n }\n });\n },\n dispose() {\n var state = this[computedState];\n if (!state.isSleeping && state.dependencyTracking) {\n objectForEach(state.dependencyTracking, function(id, dependency) {\n if (dependency.dispose) {\n dependency.dispose();\n }\n });\n }\n if (state.disposeWhenNodeIsRemoved && state.domNodeDisposalCallback) {\n removeDisposeCallback(state.disposeWhenNodeIsRemoved, state.domNodeDisposalCallback);\n }\n Object.assign(state, DISPOSED_STATE);\n }\n};\nvar pureComputedOverrides = {\n beforeSubscriptionAdd(event) {\n var computedObservable = this, state = computedObservable[computedState];\n if (!state.isDisposed && state.isSleeping && event === \"change\") {\n state.isSleeping = false;\n if (state.isStale || computedObservable.haveDependenciesChanged()) {\n state.dependencyTracking = null;\n state.dependenciesCount = 0;\n if (computedObservable.evaluateImmediate()) {\n computedObservable.updateVersion();\n }\n } else {\n var dependenciesOrder = [];\n objectForEach(state.dependencyTracking, function(id, dependency) {\n dependenciesOrder[dependency._order] = id;\n });\n arrayForEach(dependenciesOrder, function(id, order) {\n var dependency = state.dependencyTracking[id], subscription = computedObservable.subscribeToDependency(dependency._target);\n subscription._order = order;\n subscription._version = dependency._version;\n state.dependencyTracking[id] = subscription;\n });\n if (computedObservable.haveDependenciesChanged()) {\n if (computedObservable.evaluateImmediate()) {\n computedObservable.updateVersion();\n }\n }\n }\n if (!state.isDisposed) {\n computedObservable.notifySubscribers(state.latestValue, \"awake\");\n }\n }\n },\n afterSubscriptionRemove(event) {\n var state = this[computedState];\n if (!state.isDisposed && event === \"change\" && !this.hasSubscriptionsForEvent(\"change\")) {\n objectForEach(state.dependencyTracking, function(id, dependency) {\n if (dependency.dispose) {\n state.dependencyTracking[id] = {\n _target: dependency._target,\n _order: dependency._order,\n _version: dependency._version\n };\n dependency.dispose();\n }\n });\n state.isSleeping = true;\n this.notifySubscribers(void 0, \"asleep\");\n }\n },\n getVersion() {\n var state = this[computedState];\n if (state.isSleeping && (state.isStale || this.haveDependenciesChanged())) {\n this.evaluateImmediate();\n }\n return subscribable.fn.getVersion.call(this);\n }\n};\nvar deferEvaluationOverrides = {\n beforeSubscriptionAdd(event) {\n if (event === \"change\" || event === \"beforeChange\") {\n this.peek();\n }\n }\n};\nObject.setPrototypeOf(computed.fn, subscribable.fn);\nvar protoProp = observable.protoProperty;\ncomputed.fn[protoProp] = computed;\nobservable.observablePrototypes.add(computed);\nexport function isComputed(instance) {\n return typeof instance === \"function\" && instance[protoProp] === computed;\n}\nexport function isPureComputed(instance) {\n return isComputed(instance) && instance[computedState] && instance[computedState].pure;\n}\nexport function pureComputed(evaluatorFunctionOrOptions, evaluatorFunctionTarget) {\n if (typeof evaluatorFunctionOrOptions === \"function\") {\n return computed(evaluatorFunctionOrOptions, evaluatorFunctionTarget, { \"pure\": true });\n } else {\n evaluatorFunctionOrOptions = extend({}, evaluatorFunctionOrOptions);\n evaluatorFunctionOrOptions.pure = true;\n return computed(evaluatorFunctionOrOptions, evaluatorFunctionTarget);\n }\n}\n", "// @tko/computed \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n extenders\n} from \"@tko/observable\";\nimport {\n computed\n} from \"./computed\";\nexport function throttleExtender(target, timeout) {\n target.throttleEvaluation = timeout;\n var writeTimeoutInstance = null;\n return computed({\n read: target,\n write: function(value) {\n clearTimeout(writeTimeoutInstance);\n writeTimeoutInstance = setTimeout(function() {\n target(value);\n }, timeout);\n }\n });\n}\nextenders.throttle = throttleExtender;\n", "// @tko/computed \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n observable,\n observableArray,\n unwrap\n} from \"@tko/observable\";\nimport {\n computed\n} from \"./computed\";\nconst PROXY_SYM = Symbol(\"Knockout Proxied Object\");\nconst MIRROR_SYM = Symbol(\"Knockout Proxied Observables\");\nfunction makeComputed(proxy2, fn) {\n return computed({\n owner: proxy2,\n read: fn,\n write: fn,\n pure: \"pure\" in fn ? fn.pure : true,\n deferEvaluation: \"deferEvaluation\" in fn ? fn.deferEvaluation : true\n }).extend({ deferred: true });\n}\nfunction setOrCreate(mirror, prop, value, proxy2) {\n if (!mirror[prop]) {\n const ctr = Array.isArray(value) ? observableArray : typeof value === \"function\" ? makeComputed.bind(null, proxy2) : observable;\n mirror[prop] = ctr(value);\n } else {\n mirror[prop](value);\n }\n}\nfunction assignOrUpdate(mirror, object, proxy2) {\n for (const key of Object.keys(object)) {\n setOrCreate(mirror, key, object[key], proxy2);\n }\n return object;\n}\nexport function proxy(object) {\n const mirror = { [PROXY_SYM]: object };\n mirror[MIRROR_SYM] = mirror;\n const proxy2 = new Proxy(function() {\n }, {\n has(target, prop) {\n return prop in mirror;\n },\n get(target, prop) {\n return unwrap(mirror[prop]);\n },\n set(target, prop, value, receiver) {\n setOrCreate(mirror, prop, value, proxy2);\n object[prop] = value;\n return true;\n },\n deleteProperty(property) {\n delete mirror[property];\n return delete object[property];\n },\n apply(target, thisArg, [props]) {\n if (props) {\n assignOrUpdate(mirror, props, proxy2);\n return Object.assign(object, props);\n }\n return object;\n },\n getPrototypeOf() {\n return Object.getPrototypeOf(object);\n },\n setPrototypeOf(target, proto) {\n return Object.setPrototypeOf(object, proto);\n },\n defineProperty(target, prop, desc) {\n return Object.defineProperty(object, prop, desc);\n },\n preventExtensions() {\n return Object.preventExtensions(object);\n },\n isExtensible() {\n return Object.isExtensible(object);\n },\n ownKeys() {\n return [\n ...Object.getOwnPropertyNames(object),\n ...Object.getOwnPropertySymbols(object)\n ];\n }\n });\n assignOrUpdate(mirror, object, proxy2);\n return proxy2;\n}\nexport function getObservable(proxied, prop) {\n return proxied[MIRROR_SYM][prop];\n}\nexport function peek(proxied, prop) {\n return getObservable(proxied, prop).peek();\n}\nexport function isProxied(proxied) {\n return PROXY_SYM in proxied;\n}\nObject.assign(proxy, { getObservable, peek, isProxied });\n", "// @tko/computed \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n pureComputed\n} from \"./computed\";\nfunction kowhen(predicate, context, resolve) {\n const observable = pureComputed(predicate, context).extend({ notify: \"always\" });\n const subscription = observable.subscribe((value) => {\n if (value) {\n subscription.dispose();\n resolve(value);\n }\n });\n observable.notifySubscribers(observable.peek());\n return subscription;\n}\nexport function when(predicate, callback, context) {\n const whenFn = kowhen.bind(null, predicate, context);\n return callback ? whenFn(callback.bind(context)) : new Promise(whenFn);\n}\n", "\"use strict\";\n// @tko/lifecycle \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n addDisposeCallback,\n createSymbolOrString\n} from \"@tko/utils\";\nimport {\n computed\n} from \"@tko/computed\";\nconst SUBSCRIPTIONS = createSymbolOrString(\"LifeCycle Subscriptions List\");\nconst ANCHOR_NODE = createSymbolOrString(\"LifeCycle Anchor Node\");\nexport default class LifeCycle {\n static mixInto(Constructor) {\n const target = Constructor.prototype || Constructor;\n const mixin = LifeCycle.prototype;\n for (let prop of Object.getOwnPropertyNames(mixin)) {\n target[prop] = mixin[prop];\n }\n }\n subscribe(observable, action, subscriptionType) {\n if (typeof action === \"string\") {\n action = this[action];\n }\n this.addDisposable(observable.subscribe(action, this, subscriptionType));\n }\n computed(params) {\n if (typeof params === \"string\") {\n params = { read: this[params], write: this[params] };\n }\n if (typeof params === \"object\") {\n params = Object.assign({ owner: this }, params);\n } else if (typeof params === \"function\") {\n const proto = Object.getPrototypeOf(this);\n if (proto && proto[params.name] === params) {\n params = params.bind(this);\n }\n params = { read: params, write: params };\n } else {\n throw new Error(\"LifeCycle::computed not given a valid type.\");\n }\n params.disposeWhenNodeIsRemoved = this[ANCHOR_NODE];\n return this.addDisposable(computed(params));\n }\n addEventListener(...args) {\n const node = args[0].nodeType ? args.shift() : this[ANCHOR_NODE];\n const [type, act, options] = args;\n const handler = typeof act === \"string\" ? this[act].bind(this) : act;\n this.__addEventListener(node, type, handler, options);\n }\n __addEventListener(node, eventType, handler, options) {\n node.addEventListener(eventType, handler, options);\n function dispose() {\n node.removeEventListener(eventType, handler);\n }\n addDisposeCallback(node, dispose);\n this.addDisposable({ dispose });\n }\n anchorTo(nodeOrLifeCycle) {\n if (\"addDisposable\" in nodeOrLifeCycle) {\n nodeOrLifeCycle.addDisposable(this);\n this[ANCHOR_NODE] = null;\n } else {\n this[ANCHOR_NODE] = nodeOrLifeCycle;\n addDisposeCallback(nodeOrLifeCycle, () => this[ANCHOR_NODE] === nodeOrLifeCycle && this.dispose());\n }\n }\n dispose() {\n const subscriptions = this[SUBSCRIPTIONS] || [];\n subscriptions.forEach((s) => s.dispose());\n this[SUBSCRIPTIONS] = [];\n this[ANCHOR_NODE] = null;\n }\n addDisposable(subscription) {\n const subscriptions = this[SUBSCRIPTIONS] || [];\n if (!this[SUBSCRIPTIONS]) {\n this[SUBSCRIPTIONS] = subscriptions;\n }\n if (typeof subscription.dispose !== \"function\") {\n throw new Error(\"Lifecycle::addDisposable argument missing `dispose`.\");\n }\n subscriptions.push(subscription);\n return subscription;\n }\n}\n", "// @tko/bind \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport { domData } from \"@tko/utils\";\nimport { subscribable } from \"@tko/observable\";\nexport const contextAncestorBindingInfo = Symbol(\"_ancestorBindingInfo\");\nconst boundElementDomDataKey = domData.nextKey();\nexport const bindingEvent = {\n childrenComplete: \"childrenComplete\",\n descendantsComplete: \"descendantsComplete\",\n subscribe(node, event, callback, context) {\n const bindingInfo = domData.getOrSet(node, boundElementDomDataKey, {});\n if (!bindingInfo.eventSubscribable) {\n bindingInfo.eventSubscribable = new subscribable();\n }\n return bindingInfo.eventSubscribable.subscribe(callback, context, event);\n },\n notify(node, event) {\n const bindingInfo = domData.get(node, boundElementDomDataKey);\n if (bindingInfo) {\n if (bindingInfo.eventSubscribable) {\n bindingInfo.eventSubscribable.notifySubscribers(node, event);\n }\n }\n }\n};\n", "// @tko/bind \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport { extend, options, domData, isObjectLike } from \"@tko/utils\";\nimport {\n pureComputed\n} from \"@tko/computed\";\nimport {\n unwrap,\n isObservable\n} from \"@tko/observable\";\nimport {\n contextAncestorBindingInfo\n} from \"./bindingEvent\";\nexport const boundElementDomDataKey = domData.nextKey();\nexport const contextSubscribeSymbol = Symbol(\"Knockout Context Subscription\");\nconst inheritParentIndicator = Symbol(\"Knockout Parent Indicator\");\nexport function bindingContext(dataItemOrAccessor, parentContext, dataItemAlias, extendCallback, settings) {\n const self = this;\n const shouldInheritData = dataItemOrAccessor === inheritParentIndicator;\n const realDataItemOrAccessor = shouldInheritData ? void 0 : dataItemOrAccessor;\n const isFunc = typeof realDataItemOrAccessor === \"function\" && !isObservable(realDataItemOrAccessor);\n self.ko = options.knockoutInstance;\n let nodes;\n let subscribable;\n function updateContext() {\n const dataItemOrObservable = isFunc ? realDataItemOrAccessor() : realDataItemOrAccessor;\n let dataItem = unwrap(dataItemOrObservable);\n if (parentContext) {\n if (parentContext[contextSubscribeSymbol]) {\n parentContext[contextSubscribeSymbol]();\n }\n extend(self, parentContext);\n if (contextAncestorBindingInfo in parentContext) {\n self[contextAncestorBindingInfo] = parentContext[contextAncestorBindingInfo];\n }\n } else {\n self.$parents = [];\n self.$root = dataItem;\n }\n self[contextSubscribeSymbol] = subscribable;\n if (shouldInheritData) {\n dataItem = self.$data;\n } else {\n self.$rawData = dataItemOrObservable;\n self.$data = dataItem;\n }\n if (dataItemAlias) {\n self[dataItemAlias] = dataItem;\n }\n if (extendCallback) {\n extendCallback(self, parentContext, dataItem);\n }\n return self.$data;\n }\n if (settings && settings.exportDependencies) {\n updateContext();\n } else {\n subscribable = pureComputed(updateContext);\n subscribable.peek();\n if (subscribable.isActive()) {\n self[contextSubscribeSymbol] = subscribable;\n subscribable[\"equalityComparer\"] = null;\n } else {\n self[contextSubscribeSymbol] = void 0;\n }\n }\n}\nObject.assign(bindingContext.prototype, {\n lookup(token, globals, node) {\n switch (token) {\n case \"$element\":\n return node;\n case \"$context\":\n return this;\n case \"this\":\n case \"$data\":\n return this.$data;\n }\n const $data = this.$data;\n if (isObjectLike($data) && token in $data) {\n return $data[token];\n }\n if (token in this) {\n return this[token];\n }\n if (token in globals) {\n return globals[token];\n }\n throw new Error(`The variable \"${token}\" was not found on $data, $context, or globals.`);\n },\n createChildContext(dataItemOrAccessor, dataItemAlias, extendCallback, settings) {\n return new bindingContext(dataItemOrAccessor, this, dataItemAlias, function(self, parentContext) {\n self.$parentContext = parentContext;\n self.$parent = parentContext.$data;\n self.$parents = (parentContext.$parents || []).slice(0);\n self.$parents.unshift(self.$parent);\n if (extendCallback) {\n extendCallback(self);\n }\n }, settings);\n },\n extend(properties) {\n return new bindingContext(inheritParentIndicator, this, null, function(self, parentContext) {\n extend(self, typeof properties === \"function\" ? properties.call(self) : properties);\n });\n },\n createStaticChildContext(dataItemOrAccessor, dataItemAlias) {\n return this.createChildContext(dataItemOrAccessor, dataItemAlias, null, { \"exportDependencies\": true });\n }\n});\nexport function storedBindingContextForNode(node) {\n const bindingInfo = domData.get(node, boundElementDomDataKey);\n return bindingInfo && bindingInfo.context;\n}\nexport function contextFor(node) {\n if (node && (node.nodeType === 1 || node.nodeType === 8)) {\n return storedBindingContextForNode(node);\n }\n}\nexport function dataFor(node) {\n var context = contextFor(node);\n return context ? context.$data : void 0;\n}\n", "// @tko/bind \uD83E\uDD4A 4.0.0-beta1.0 ESM\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\nexport class BindingResult {\n constructor({ asyncBindingsApplied, rootNode, bindingContext }) {\n Object.assign(this, {\n rootNode,\n bindingContext,\n isSync: asyncBindingsApplied.size === 0,\n isComplete: this.isSync\n });\n if (!this.isSync) {\n this.completionPromise = this.completeWhenBindingsFinish(asyncBindingsApplied);\n }\n }\n completeWhenBindingsFinish(asyncBindingsApplied) {\n return __async(this, null, function* () {\n yield Promise.all(asyncBindingsApplied);\n this.isComplete = true;\n return this;\n });\n }\n}\n", "// @tko/bind \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport { options } from \"@tko/utils\";\nimport { isWriteableObservable } from \"@tko/observable\";\nimport { LifeCycle } from \"@tko/lifecycle\";\nexport class BindingHandler extends LifeCycle {\n constructor(params) {\n super();\n const { $element, valueAccessor, allBindings, $context } = params;\n Object.assign(this, {\n valueAccessor,\n allBindings,\n $element,\n $context,\n $data: $context.$data\n });\n this.anchorTo($element);\n }\n get value() {\n return this.valueAccessor();\n }\n set value(v) {\n const va = this.valueAccessor();\n if (isWriteableObservable(va)) {\n va(v);\n } else {\n this.valueAccessor(v);\n }\n }\n get controlsDescendants() {\n return false;\n }\n static get allowVirtualElements() {\n return false;\n }\n static get isBindingHandlerClass() {\n return true;\n }\n get bindingCompleted() {\n return true;\n }\n static registerAs(name, provider = options.bindingProviderInstance) {\n provider.bindingHandlers.set(name, this);\n }\n}\nconst ResolveSymbol = Symbol(\"Async Binding Resolved\");\nexport class AsyncBindingHandler extends BindingHandler {\n constructor(params) {\n super(params);\n this.bindingCompletion = new Promise((resolve) => {\n this[ResolveSymbol] = resolve;\n });\n this.completeBinding = (bindingResult) => this[ResolveSymbol](bindingResult);\n }\n get bindingCompleted() {\n return this.bindingCompletion;\n }\n}\n", "// @tko/bind \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport { virtualElements, options } from \"@tko/utils\";\nimport { BindingHandler } from \"./BindingHandler\";\nconst PossibleWeakMap = options.global.WeakMap || Map;\nconst legacyBindingMap = new PossibleWeakMap();\nexport class LegacyBindingHandler extends BindingHandler {\n constructor(params) {\n super(params);\n const handler = this.handler;\n this.onError = params.onError;\n if (typeof handler.dispose === \"function\") {\n this.addDisposable(handler);\n }\n try {\n this.initReturn = handler.init && handler.init(...this.legacyArgs);\n } catch (e) {\n params.onError(\"init\", e);\n }\n }\n onValueChange() {\n const handler = this.handler;\n if (typeof handler.update !== \"function\") {\n return;\n }\n try {\n handler.update(...this.legacyArgs);\n } catch (e) {\n this.onError(\"update\", e);\n }\n }\n get legacyArgs() {\n return [\n this.$element,\n this.valueAccessor,\n this.allBindings,\n this.$data,\n this.$context\n ];\n }\n get controlsDescendants() {\n const objectToTest = this.initReturn || this.handler || {};\n return objectToTest.controlsDescendantBindings;\n }\n static getOrCreateFor(key, handler) {\n if (legacyBindingMap.has(handler)) {\n return legacyBindingMap.get(handler);\n }\n const newLegacyHandler = this.createFor(key, handler);\n legacyBindingMap.set(handler, newLegacyHandler);\n return newLegacyHandler;\n }\n static createFor(key, handler) {\n if (typeof handler === \"function\") {\n const [initFn, disposeFn] = [handler, handler.dispose];\n return class extends LegacyBindingHandler {\n get handler() {\n const init = initFn.bind(this);\n const dispose = disposeFn ? disposeFn.bind(this) : null;\n return { init, dispose };\n }\n static get after() {\n return handler.after;\n }\n static get allowVirtualElements() {\n return handler.allowVirtualElements || virtualElements.allowedBindings[key];\n }\n };\n }\n if (typeof handler === \"object\") {\n return class extends LegacyBindingHandler {\n get handler() {\n return handler;\n }\n static get after() {\n return handler.after;\n }\n static get allowVirtualElements() {\n return handler.allowVirtualElements || virtualElements.allowedBindings[key];\n }\n };\n }\n throw new Error(\"The given handler is not an appropriate type.\");\n }\n}\n", "// @tko/bind \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n extend,\n objectMap,\n virtualElements,\n tagNameLower,\n domData,\n objectForEach,\n arrayIndexOf,\n arrayForEach,\n options\n} from \"@tko/utils\";\nimport {\n dependencyDetection\n} from \"@tko/observable\";\nimport {\n computed\n} from \"@tko/computed\";\nimport {\n dataFor,\n bindingContext,\n boundElementDomDataKey,\n contextSubscribeSymbol\n} from \"./bindingContext\";\nimport {\n bindingEvent\n} from \"./bindingEvent\";\nimport {\n BindingResult\n} from \"./BindingResult\";\nimport {\n LegacyBindingHandler\n} from \"./LegacyBindingHandler\";\nconst bindingDoesNotRecurseIntoElementTypes = {\n \"script\": true,\n \"textarea\": true,\n \"template\": true\n};\nfunction getBindingProvider() {\n return options.bindingProviderInstance.instance || options.bindingProviderInstance;\n}\nfunction isProviderForNode(provider, node) {\n const nodeTypes = provider.FOR_NODE_TYPES || [1, 3, 8];\n return nodeTypes.includes(node.nodeType);\n}\nfunction asProperHandlerClass(handler, bindingKey) {\n if (!handler) {\n return;\n }\n return handler.isBindingHandlerClass ? handler : LegacyBindingHandler.getOrCreateFor(bindingKey, handler);\n}\nfunction getBindingHandlerFromComponent(bindingKey, $component) {\n if (!$component || typeof $component.getBindingHandler !== \"function\") {\n return;\n }\n return asProperHandlerClass($component.getBindingHandler(bindingKey));\n}\nexport function getBindingHandler(bindingKey) {\n const bindingDefinition = options.getBindingHandler(bindingKey) || getBindingProvider().bindingHandlers.get(bindingKey);\n return asProperHandlerClass(bindingDefinition, bindingKey);\n}\nfunction evaluateValueAccessor(valueAccessor) {\n return valueAccessor();\n}\nfunction applyBindingsToDescendantsInternal(bindingContext2, elementOrVirtualElement, asyncBindingsApplied) {\n let nextInQueue = virtualElements.firstChild(elementOrVirtualElement);\n if (!nextInQueue) {\n return;\n }\n let currentChild;\n const provider = getBindingProvider();\n const preprocessNode = provider.preprocessNode;\n if (preprocessNode) {\n while (currentChild = nextInQueue) {\n nextInQueue = virtualElements.nextSibling(currentChild);\n preprocessNode.call(provider, currentChild);\n }\n nextInQueue = virtualElements.firstChild(elementOrVirtualElement);\n }\n while (currentChild = nextInQueue) {\n nextInQueue = virtualElements.nextSibling(currentChild);\n applyBindingsToNodeAndDescendantsInternal(bindingContext2, currentChild, asyncBindingsApplied);\n }\n bindingEvent.notify(elementOrVirtualElement, bindingEvent.childrenComplete);\n}\nfunction hasBindings(node) {\n const provider = getBindingProvider();\n return isProviderForNode(provider, node) && provider.nodeHasBindings(node);\n}\nfunction nodeOrChildHasBindings(node) {\n return hasBindings(node) || [...node.childNodes].some((c) => nodeOrChildHasBindings(c));\n}\nfunction applyBindingsToNodeAndDescendantsInternal(bindingContext2, nodeVerified, asyncBindingsApplied) {\n var isElement = nodeVerified.nodeType === 1;\n if (isElement) {\n virtualElements.normaliseVirtualElementDomStructure(nodeVerified);\n }\n let shouldApplyBindings = isElement || hasBindings(nodeVerified);\n const { shouldBindDescendants } = shouldApplyBindings ? applyBindingsToNodeInternal(nodeVerified, null, bindingContext2, asyncBindingsApplied) : { shouldBindDescendants: true };\n if (shouldBindDescendants && !bindingDoesNotRecurseIntoElementTypes[tagNameLower(nodeVerified)]) {\n applyBindingsToDescendantsInternal(bindingContext2, nodeVerified, asyncBindingsApplied);\n }\n}\nfunction* topologicalSortBindings(bindings, $component) {\n const results = [];\n const bindingsConsidered = {};\n const cyclicDependencyStack = [];\n objectForEach(bindings, function pushBinding(bindingKey) {\n if (!bindingsConsidered[bindingKey]) {\n const binding = getBindingHandlerFromComponent(bindingKey, $component) || getBindingHandler(bindingKey);\n if (!binding) {\n return;\n }\n if (binding.after) {\n cyclicDependencyStack.push(bindingKey);\n arrayForEach(binding.after, function(bindingDependencyKey) {\n if (!bindings[bindingDependencyKey]) {\n return;\n }\n if (arrayIndexOf(cyclicDependencyStack, bindingDependencyKey) !== -1) {\n throw Error(\"Cannot combine the following bindings, because they have a cyclic dependency: \" + cyclicDependencyStack.join(\", \"));\n } else {\n pushBinding(bindingDependencyKey);\n }\n });\n cyclicDependencyStack.length--;\n }\n results.push([bindingKey, binding]);\n }\n bindingsConsidered[bindingKey] = true;\n });\n for (const result of results) {\n yield result;\n }\n}\nfunction applyBindingsToNodeInternal(node, sourceBindings, bindingContext2, asyncBindingsApplied) {\n const bindingInfo = domData.getOrSet(node, boundElementDomDataKey, {});\n const alreadyBound = bindingInfo.alreadyBound;\n if (!sourceBindings) {\n if (alreadyBound) {\n if (!nodeOrChildHasBindings(node)) {\n return false;\n }\n onBindingError({\n during: \"apply\",\n errorCaptured: new Error(\"You cannot apply bindings multiple times to the same element.\"),\n element: node,\n bindingContext: bindingContext2\n });\n return false;\n }\n bindingInfo.alreadyBound = true;\n }\n if (!alreadyBound) {\n bindingInfo.context = bindingContext2;\n }\n var bindings;\n if (sourceBindings && typeof sourceBindings !== \"function\") {\n bindings = sourceBindings;\n } else {\n const provider = getBindingProvider();\n const getBindings = provider.getBindingAccessors;\n if (isProviderForNode(provider, node)) {\n var bindingsUpdater = computed(function() {\n bindings = sourceBindings ? sourceBindings(bindingContext2, node) : getBindings.call(provider, node, bindingContext2);\n if (bindings && bindingContext2[contextSubscribeSymbol]) {\n bindingContext2[contextSubscribeSymbol]();\n }\n return bindings;\n }, null, { disposeWhenNodeIsRemoved: node });\n if (!bindings || !bindingsUpdater.isActive()) {\n bindingsUpdater = null;\n }\n }\n }\n var bindingHandlerThatControlsDescendantBindings;\n if (bindings) {\n let allBindings = function() {\n return objectMap(bindingsUpdater ? bindingsUpdater() : bindings, evaluateValueAccessor);\n };\n const $component = bindingContext2.$component || {};\n const allBindingHandlers = {};\n domData.set(node, \"bindingHandlers\", allBindingHandlers);\n const getValueAccessor = bindingsUpdater ? (bindingKey) => function(optionalValue) {\n const valueAccessor = bindingsUpdater()[bindingKey];\n if (arguments.length === 0) {\n return evaluateValueAccessor(valueAccessor);\n } else {\n return valueAccessor(optionalValue);\n }\n } : (bindingKey) => bindings[bindingKey];\n allBindings.has = (key) => key in bindings;\n allBindings.get = (key) => bindings[key] && evaluateValueAccessor(getValueAccessor(key));\n if (bindingEvent.childrenComplete in bindings) {\n bindingEvent.subscribe(node, bindingEvent.childrenComplete, () => {\n const callback = evaluateValueAccessor(bindings[bindingEvent.childrenComplete]);\n if (!callback) {\n return;\n }\n const nodes = virtualElements.childNodes(node);\n if (nodes.length) {\n callback(nodes, dataFor(nodes[0]));\n }\n });\n }\n const bindingsGenerated = topologicalSortBindings(bindings, $component);\n const nodeAsyncBindingPromises = /* @__PURE__ */ new Set();\n for (const [key, BindingHandlerClass] of bindingsGenerated) {\n let reportBindingError = function(during, errorCaptured) {\n onBindingError({\n during,\n errorCaptured,\n bindings,\n allBindings,\n bindingKey: key,\n bindingContext: bindingContext2,\n element: node,\n valueAccessor: getValueAccessor(key)\n });\n };\n if (node.nodeType === 8 && !BindingHandlerClass.allowVirtualElements) {\n throw new Error(`The binding '${key}' cannot be used with virtual elements`);\n }\n try {\n const bindingHandler = dependencyDetection.ignore(() => new BindingHandlerClass({\n allBindings,\n $element: node,\n $context: bindingContext2,\n onError: reportBindingError,\n valueAccessor(...v) {\n return getValueAccessor(key)(...v);\n }\n }));\n if (bindingHandler.onValueChange) {\n dependencyDetection.ignore(() => bindingHandler.computed(\"onValueChange\"));\n }\n allBindingHandlers[key] = bindingHandler;\n if (bindingHandler.controlsDescendants) {\n if (bindingHandlerThatControlsDescendantBindings !== void 0) {\n throw new Error(\"Multiple bindings (\" + bindingHandlerThatControlsDescendantBindings + \" and \" + key + \") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.\");\n }\n bindingHandlerThatControlsDescendantBindings = key;\n }\n if (bindingHandler.bindingCompleted instanceof Promise) {\n asyncBindingsApplied.add(bindingHandler.bindingCompleted);\n nodeAsyncBindingPromises.add(bindingHandler.bindingCompleted);\n }\n } catch (err) {\n reportBindingError(\"creation\", err);\n }\n }\n triggerDescendantsComplete(node, bindings, nodeAsyncBindingPromises);\n }\n const shouldBindDescendants = bindingHandlerThatControlsDescendantBindings === void 0;\n return { shouldBindDescendants };\n}\nfunction triggerDescendantsComplete(node, bindings, nodeAsyncBindingPromises) {\n const hasBindingHandler = bindingEvent.descendantsComplete in bindings;\n const hasFirstChild = virtualElements.firstChild(node);\n const accessor = hasBindingHandler && evaluateValueAccessor(bindings[bindingEvent.descendantsComplete]);\n const callback = () => {\n bindingEvent.notify(node, bindingEvent.descendantsComplete);\n if (accessor && hasFirstChild) {\n accessor(node);\n }\n };\n if (nodeAsyncBindingPromises.size) {\n Promise.all(nodeAsyncBindingPromises).then(callback);\n } else {\n callback();\n }\n}\nfunction getBindingContext(viewModelOrBindingContext, extendContextCallback) {\n return viewModelOrBindingContext && viewModelOrBindingContext instanceof bindingContext ? viewModelOrBindingContext : new bindingContext(viewModelOrBindingContext, void 0, void 0, extendContextCallback);\n}\nexport function applyBindingAccessorsToNode(node, bindings, viewModelOrBindingContext, asyncBindingsApplied) {\n if (node.nodeType === 1) {\n virtualElements.normaliseVirtualElementDomStructure(node);\n }\n return applyBindingsToNodeInternal(node, bindings, getBindingContext(viewModelOrBindingContext), asyncBindingsApplied);\n}\nexport function applyBindingsToNode(node, bindings, viewModelOrBindingContext) {\n const asyncBindingsApplied = /* @__PURE__ */ new Set();\n const bindingContext2 = getBindingContext(viewModelOrBindingContext);\n const bindingAccessors = getBindingProvider().makeBindingAccessors(bindings, bindingContext2, node);\n applyBindingAccessorsToNode(node, bindingAccessors, bindingContext2, asyncBindingsApplied);\n return new BindingResult({ asyncBindingsApplied, rootNode: node, bindingContext: bindingContext2 });\n}\nexport function applyBindingsToDescendants(viewModelOrBindingContext, rootNode) {\n const asyncBindingsApplied = /* @__PURE__ */ new Set();\n if (rootNode.nodeType === 1 || rootNode.nodeType === 8) {\n const bindingContext2 = getBindingContext(viewModelOrBindingContext);\n applyBindingsToDescendantsInternal(bindingContext2, rootNode, asyncBindingsApplied);\n return new BindingResult({ asyncBindingsApplied, rootNode, bindingContext: bindingContext2 });\n }\n return new BindingResult({ asyncBindingsApplied, rootNode });\n}\nexport function applyBindings(viewModelOrBindingContext, rootNode, extendContextCallback) {\n const asyncBindingsApplied = /* @__PURE__ */ new Set();\n if (!options.jQuery === void 0 && options.jQuery) {\n options.jQuery = options.jQuery;\n }\n if (!rootNode) {\n rootNode = window.document.body;\n if (!rootNode) {\n throw Error(\"ko.applyBindings: could not find window.document.body; has the document been loaded?\");\n }\n } else if (rootNode.nodeType !== 1 && rootNode.nodeType !== 8) {\n throw Error(\"ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node\");\n }\n const rootContext = getBindingContext(viewModelOrBindingContext, extendContextCallback);\n applyBindingsToNodeAndDescendantsInternal(rootContext, rootNode, asyncBindingsApplied);\n return Promise.all(asyncBindingsApplied);\n}\nfunction onBindingError(spec) {\n var error, bindingText;\n if (spec.bindingKey) {\n error = spec.errorCaptured;\n spec.message = 'Unable to process binding \"' + spec.bindingKey + '\" in binding \"' + spec.bindingKey + '\"\\nMessage: ' + (error.message ? error.message : error);\n } else {\n error = spec.errorCaptured;\n }\n try {\n extend(error, spec);\n } catch (e) {\n spec.stack = error.stack;\n error = new Error(error.message ? error.message : error);\n extend(error, spec);\n }\n options.onError(error);\n}\n", "// @tko/bind \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n fixUpContinuousNodeArray,\n replaceDomNodes,\n arrayPushAll,\n anyDomNodeIsAttachedToDocument,\n domData,\n arrayMap,\n arrayForEach,\n virtualElements,\n extend,\n cleanNode,\n removeNode,\n compareArrays\n} from \"@tko/utils\";\nimport {\n dependencyDetection,\n observable\n} from \"@tko/observable\";\nimport { computed } from \"@tko/computed\";\nfunction mapNodeAndRefreshWhenChanged(containerNode, mapping, valueToMap, callbackAfterAddingNodes, index) {\n var mappedNodes = [];\n var dependentObservable = computed(function() {\n var newMappedNodes = mapping(valueToMap, index, fixUpContinuousNodeArray(mappedNodes, containerNode)) || [];\n if (mappedNodes.length > 0) {\n replaceDomNodes(mappedNodes, newMappedNodes);\n if (callbackAfterAddingNodes) {\n dependencyDetection.ignore(callbackAfterAddingNodes, null, [valueToMap, newMappedNodes, index]);\n }\n }\n mappedNodes.length = 0;\n arrayPushAll(mappedNodes, newMappedNodes);\n }, null, { disposeWhenNodeIsRemoved: containerNode, disposeWhen: function() {\n return !anyDomNodeIsAttachedToDocument(mappedNodes);\n } });\n return { mappedNodes, dependentObservable: dependentObservable.isActive() ? dependentObservable : void 0 };\n}\nvar lastMappingResultDomDataKey = domData.nextKey();\nlet deletedItemDummyValue = domData.nextKey();\nexport function setDomNodeChildrenFromArrayMapping(domNode, array, mapping, options, callbackAfterAddingNodes, editScript) {\n array = array || [];\n if (typeof array.length === \"undefined\") {\n array = [array];\n }\n options = options || {};\n let lastMappingResult = domData.get(domNode, lastMappingResultDomDataKey);\n let isFirstExecution = !lastMappingResult;\n var newMappingResult = [];\n var lastMappingResultIndex = 0;\n var newMappingResultIndex = 0;\n var nodesToDelete = [];\n var itemsToProcess = [];\n var itemsForBeforeRemoveCallbacks = [];\n var itemsForMoveCallbacks = [];\n var itemsForAfterAddCallbacks = [];\n var mapData;\n let countWaitingForRemove = 0;\n function itemAdded(value) {\n mapData = { arrayEntry: value, indexObservable: observable(newMappingResultIndex++) };\n newMappingResult.push(mapData);\n itemsToProcess.push(mapData);\n if (!isFirstExecution) {\n itemsForAfterAddCallbacks.push(mapData);\n }\n }\n function itemMovedOrRetained(oldPosition) {\n mapData = lastMappingResult[oldPosition];\n if (newMappingResultIndex !== oldPosition) {\n itemsForMoveCallbacks.push(mapData);\n }\n mapData.indexObservable(newMappingResultIndex++);\n fixUpContinuousNodeArray(mapData.mappedNodes, domNode);\n newMappingResult.push(mapData);\n itemsToProcess.push(mapData);\n }\n function callCallback(callback, items) {\n if (callback) {\n for (var i2 = 0, n = items.length; i2 < n; i2++) {\n arrayForEach(items[i2].mappedNodes, function(node2) {\n callback(node2, i2, items[i2].arrayEntry);\n });\n }\n }\n }\n if (isFirstExecution) {\n arrayForEach(array, itemAdded);\n } else {\n if (!editScript || lastMappingResult && lastMappingResult[\"_countWaitingForRemove\"]) {\n var lastArray = isFirstExecution ? [] : arrayMap(lastMappingResult, function(x) {\n return x.arrayEntry;\n });\n var compareOptions = {\n \"dontLimitMoves\": options[\"dontLimitMoves\"],\n \"sparse\": true\n };\n editScript = compareArrays(lastArray, array, compareOptions);\n }\n for (var i = 0, editScriptItem, movedIndex, itemIndex; editScriptItem = editScript[i]; i++) {\n movedIndex = editScriptItem[\"moved\"];\n itemIndex = editScriptItem[\"index\"];\n switch (editScriptItem[\"status\"]) {\n case \"deleted\":\n while (lastMappingResultIndex < itemIndex) {\n itemMovedOrRetained(lastMappingResultIndex++);\n }\n if (movedIndex === void 0) {\n mapData = lastMappingResult[lastMappingResultIndex];\n if (mapData.dependentObservable) {\n mapData.dependentObservable.dispose();\n mapData.dependentObservable = void 0;\n }\n if (fixUpContinuousNodeArray(mapData.mappedNodes, domNode).length) {\n if (options[\"beforeRemove\"]) {\n newMappingResult.push(mapData);\n itemsToProcess.push(mapData);\n countWaitingForRemove++;\n if (mapData.arrayEntry === deletedItemDummyValue) {\n mapData = null;\n } else {\n itemsForBeforeRemoveCallbacks.push(mapData);\n }\n }\n if (mapData) {\n nodesToDelete.push.apply(nodesToDelete, mapData.mappedNodes);\n }\n }\n }\n lastMappingResultIndex++;\n break;\n case \"added\":\n while (newMappingResultIndex < itemIndex) {\n itemMovedOrRetained(lastMappingResultIndex++);\n }\n if (movedIndex !== void 0) {\n itemMovedOrRetained(movedIndex);\n } else {\n itemAdded(editScriptItem[\"value\"]);\n }\n break;\n }\n }\n while (newMappingResultIndex < array.length) {\n itemMovedOrRetained(lastMappingResultIndex++);\n }\n newMappingResult[\"_countWaitingForRemove\"] = countWaitingForRemove;\n }\n domData.set(domNode, lastMappingResultDomDataKey, newMappingResult);\n callCallback(options[\"beforeMove\"], itemsForMoveCallbacks);\n arrayForEach(nodesToDelete, options[\"beforeRemove\"] ? cleanNode : removeNode);\n i = 0;\n for (var nextNode = virtualElements.firstChild(domNode), lastNode, node; mapData = itemsToProcess[i]; i++) {\n if (!mapData.mappedNodes) {\n extend(mapData, mapNodeAndRefreshWhenChanged(domNode, mapping, mapData.arrayEntry, callbackAfterAddingNodes, mapData.indexObservable));\n }\n for (var j = 0; node = mapData.mappedNodes[j]; nextNode = node.nextSibling, lastNode = node, j++) {\n if (node !== nextNode) {\n virtualElements.insertAfter(domNode, node, lastNode);\n }\n }\n if (!mapData.initialized && callbackAfterAddingNodes) {\n callbackAfterAddingNodes(mapData.arrayEntry, mapData.mappedNodes, mapData.indexObservable);\n mapData.initialized = true;\n }\n }\n callCallback(options[\"beforeRemove\"], itemsForBeforeRemoveCallbacks);\n for (i = 0; i < itemsForBeforeRemoveCallbacks.length; ++i) {\n itemsForBeforeRemoveCallbacks[i].arrayEntry = deletedItemDummyValue;\n }\n callCallback(options[\"afterMove\"], itemsForMoveCallbacks);\n callCallback(options[\"afterAdd\"], itemsForAfterAddCallbacks);\n}\n", "// @tko/bind \uD83E\uDD4A 4.0.0-beta1.0 ESM\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\nimport { applyBindingsToDescendants } from \"./applyBindings\";\nimport { AsyncBindingHandler } from \"./BindingHandler\";\nexport class DescendantBindingHandler extends AsyncBindingHandler {\n get controlsDescendants() {\n return true;\n }\n applyBindingsToDescendants(childContext, callback) {\n return __async(this, null, function* () {\n const bindingResult = applyBindingsToDescendants(childContext, this.$element);\n if (bindingResult.isSync) {\n this.bindingCompletion = bindingResult;\n } else {\n yield bindingResult.completionPromise;\n }\n if (callback) {\n callback(bindingResult);\n }\n this.completeBinding(bindingResult);\n });\n }\n}\n", "// @tko/binding.template \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n tagNameLower as tagNameLowerFn,\n setHtml,\n domData,\n parseHtmlForTemplateNodes\n} from \"@tko/utils\";\nvar templateScript = 1, templateTextArea = 2, templateTemplate = 3, templateElement = 4;\nexport function domElement(element) {\n this.domElement = element;\n if (!element) {\n return;\n }\n var tagNameLower = tagNameLowerFn(element);\n this.templateType = tagNameLower === \"script\" ? templateScript : tagNameLower === \"textarea\" ? templateTextArea : tagNameLower == \"template\" && element.content && element.content.nodeType === 11 ? templateTemplate : templateElement;\n}\ndomElement.prototype.text = function() {\n var elemContentsProperty = this.templateType === templateScript ? \"text\" : this.templateType === templateTextArea ? \"value\" : \"innerHTML\";\n if (arguments.length == 0) {\n return this.domElement[elemContentsProperty];\n } else {\n var valueToWrite = arguments[0];\n if (elemContentsProperty === \"innerHTML\") {\n setHtml(this.domElement, valueToWrite);\n } else {\n this.domElement[elemContentsProperty] = valueToWrite;\n }\n }\n};\nvar dataDomDataPrefix = domData.nextKey() + \"_\";\ndomElement.prototype.data = function(key) {\n if (arguments.length === 1) {\n return domData.get(this.domElement, dataDomDataPrefix + key);\n } else {\n domData.set(this.domElement, dataDomDataPrefix + key, arguments[1]);\n }\n};\nvar templatesDomDataKey = domData.nextKey();\nfunction getTemplateDomData(element) {\n return domData.get(element, templatesDomDataKey) || {};\n}\nfunction setTemplateDomData(element, data) {\n domData.set(element, templatesDomDataKey, data);\n}\ndomElement.prototype.nodes = function() {\n var element = this.domElement;\n if (arguments.length == 0) {\n const templateData = getTemplateDomData(element);\n let nodes = templateData.containerData || (this.templateType === templateTemplate ? element.content : this.templateType === templateElement ? element : void 0);\n if (!nodes || templateData.alwaysCheckText) {\n const text = this[\"text\"]();\n if (text) {\n nodes = parseHtmlForTemplateNodes(text, element.ownerDocument);\n this[\"text\"](\"\");\n setTemplateDomData(element, { containerData: nodes, alwaysCheckText: true });\n }\n }\n return nodes;\n } else {\n var valueToWrite = arguments[0];\n setTemplateDomData(element, { containerData: valueToWrite });\n }\n};\nexport function anonymousTemplate(element) {\n this.domElement = element;\n}\nanonymousTemplate.prototype = new domElement();\nanonymousTemplate.prototype.constructor = anonymousTemplate;\nanonymousTemplate.prototype.text = function() {\n if (arguments.length == 0) {\n var templateData = getTemplateDomData(this.domElement);\n if (templateData.textData === void 0 && templateData.containerData) {\n templateData.textData = templateData.containerData.innerHTML;\n }\n return templateData.textData;\n } else {\n var valueToWrite = arguments[0];\n setTemplateDomData(this.domElement, { textData: valueToWrite });\n }\n};\n", "// @tko/binding.template \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n extend,\n options\n} from \"@tko/utils\";\nimport {\n domElement,\n anonymousTemplate\n} from \"./templateSources\";\nexport function templateEngine() {\n}\n;\nextend(templateEngine.prototype, {\n renderTemplateSource: function(templateSource, bindingContext, options2, templateDocument) {\n options2.onError(\"Override renderTemplateSource\");\n },\n createJavaScriptEvaluatorBlock: function(script) {\n options.onError(\"Override createJavaScriptEvaluatorBlock\");\n },\n makeTemplateSource: function(template, templateDocument) {\n if (typeof template === \"string\") {\n templateDocument = templateDocument || document;\n var elem = templateDocument.getElementById(template);\n if (!elem) {\n options.onError(\"Cannot find template with ID \" + template);\n }\n return new domElement(elem);\n } else if (template.nodeType == 1 || template.nodeType == 8) {\n return new anonymousTemplate(template);\n } else {\n options.onError(\"Unknown template type: \" + template);\n }\n },\n renderTemplate: function(template, bindingContext, options2, templateDocument) {\n var templateSource = this[\"makeTemplateSource\"](template, templateDocument);\n return this.renderTemplateSource(templateSource, bindingContext, options2, templateDocument);\n }\n});\n", "// @tko/binding.template \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n virtualElements,\n fixUpContinuousNodeArray,\n replaceDomNodes,\n memoization,\n domNodeIsAttachedToDocument,\n moveCleanedNodesToContainerElement,\n arrayFilter,\n domData,\n options as koOptions\n} from \"@tko/utils\";\nimport {\n applyBindings,\n setDomNodeChildrenFromArrayMapping,\n AsyncBindingHandler,\n bindingEvent,\n bindingContext as BindingContextConstructor\n} from \"@tko/bind\";\nimport {\n computed\n} from \"@tko/computed\";\nimport {\n isObservable,\n dependencyDetection,\n unwrap,\n observable,\n isObservableArray\n} from \"@tko/observable\";\nimport {\n templateEngine\n} from \"./templateEngine\";\nimport {\n anonymousTemplate as AnonymousTemplate\n} from \"./templateSources\";\nvar _templateEngine;\nconst cleanContainerDomDataKey = domData.nextKey();\nexport function setTemplateEngine(tEngine) {\n if (tEngine !== void 0 && !(tEngine instanceof templateEngine)) {\n throw new Error(\"templateEngine must inherit from ko.templateEngine\");\n }\n _templateEngine = tEngine;\n}\nfunction invokeForEachNodeInContinuousRange(firstNode, lastNode, action) {\n let node;\n let nextInQueue = firstNode;\n let firstOutOfRangeNode = virtualElements.nextSibling(lastNode);\n while (nextInQueue && (node = nextInQueue) !== firstOutOfRangeNode) {\n nextInQueue = virtualElements.nextSibling(node);\n action(node, nextInQueue);\n }\n}\nfunction activateBindingsOnContinuousNodeArray(continuousNodeArray, bindingContext, afterBindingCallback) {\n if (continuousNodeArray.length) {\n var firstNode = continuousNodeArray[0];\n var lastNode = continuousNodeArray[continuousNodeArray.length - 1];\n var parentNode = firstNode.parentNode;\n var provider = koOptions.bindingProviderInstance;\n var preprocessNode = provider.preprocessNode;\n if (preprocessNode) {\n invokeForEachNodeInContinuousRange(firstNode, lastNode, function(node, nextNodeInRange) {\n var nodePreviousSibling = node.previousSibling;\n var newNodes = preprocessNode.call(provider, node);\n if (newNodes) {\n if (node === firstNode) {\n firstNode = newNodes[0] || nextNodeInRange;\n }\n if (node === lastNode) {\n lastNode = newNodes[newNodes.length - 1] || nodePreviousSibling;\n }\n }\n });\n continuousNodeArray.length = 0;\n if (!firstNode) {\n return;\n }\n if (firstNode === lastNode) {\n continuousNodeArray.push(firstNode);\n } else {\n continuousNodeArray.push(firstNode, lastNode);\n fixUpContinuousNodeArray(continuousNodeArray, parentNode);\n }\n }\n invokeForEachNodeInContinuousRange(firstNode, lastNode, function(node) {\n if (node.nodeType === 1 || node.nodeType === 8) {\n applyBindings(bindingContext, node).then(afterBindingCallback);\n }\n });\n invokeForEachNodeInContinuousRange(firstNode, lastNode, function(node) {\n if (node.nodeType === 1 || node.nodeType === 8) {\n memoization.unmemoizeDomNodeAndDescendants(node, [bindingContext]);\n }\n });\n fixUpContinuousNodeArray(continuousNodeArray, parentNode);\n }\n}\nfunction getFirstNodeFromPossibleArray(nodeOrNodeArray) {\n return nodeOrNodeArray.nodeType ? nodeOrNodeArray : nodeOrNodeArray.length > 0 ? nodeOrNodeArray[0] : null;\n}\nfunction executeTemplate(targetNodeOrNodeArray, renderMode, template, bindingContext, options, afterBindingCallback) {\n options = options || {};\n var firstTargetNode = targetNodeOrNodeArray && getFirstNodeFromPossibleArray(targetNodeOrNodeArray);\n var templateDocument = (firstTargetNode || template || {}).ownerDocument;\n var templateEngineToUse = options.templateEngine || _templateEngine;\n var renderedNodesArray = templateEngineToUse.renderTemplate(template, bindingContext, options, templateDocument);\n if (typeof renderedNodesArray.length !== \"number\" || renderedNodesArray.length > 0 && typeof renderedNodesArray[0].nodeType !== \"number\") {\n throw new Error(\"Template engine must return an array of DOM nodes\");\n }\n var haveAddedNodesToParent = false;\n switch (renderMode) {\n case \"replaceChildren\":\n virtualElements.setDomNodeChildren(targetNodeOrNodeArray, renderedNodesArray);\n haveAddedNodesToParent = true;\n break;\n case \"replaceNode\":\n replaceDomNodes(targetNodeOrNodeArray, renderedNodesArray);\n haveAddedNodesToParent = true;\n break;\n case \"ignoreTargetNode\":\n break;\n default:\n throw new Error(\"Unknown renderMode: \" + renderMode);\n }\n if (haveAddedNodesToParent) {\n activateBindingsOnContinuousNodeArray(renderedNodesArray, bindingContext, afterBindingCallback);\n if (options.afterRender) {\n dependencyDetection.ignore(options.afterRender, null, [renderedNodesArray, bindingContext[\"$data\"]]);\n }\n if (renderMode === \"replaceChildren\") {\n bindingEvent.notify(targetNodeOrNodeArray, bindingEvent.childrenComplete);\n }\n }\n return renderedNodesArray;\n}\nfunction resolveTemplateName(template, data, context) {\n if (isObservable(template)) {\n return template();\n } else if (typeof template === \"function\") {\n return template(data, context);\n } else {\n return template;\n }\n}\nexport function renderTemplate(template, dataOrBindingContext, options, targetNodeOrNodeArray, renderMode, afterBindingCallback) {\n options = options || {};\n if ((options.templateEngine || _templateEngine) === void 0) {\n throw new Error(\"Set a template engine before calling renderTemplate\");\n }\n renderMode = renderMode || \"replaceChildren\";\n if (targetNodeOrNodeArray) {\n var firstTargetNode = getFirstNodeFromPossibleArray(targetNodeOrNodeArray);\n var whenToDispose = function() {\n return !firstTargetNode || !domNodeIsAttachedToDocument(firstTargetNode);\n };\n var activelyDisposeWhenNodeIsRemoved = firstTargetNode && renderMode === \"replaceNode\" ? firstTargetNode.parentNode : firstTargetNode;\n return computed(function() {\n var bindingContext = dataOrBindingContext && dataOrBindingContext instanceof BindingContextConstructor ? dataOrBindingContext : new BindingContextConstructor(dataOrBindingContext, null, null, null, { \"exportDependencies\": true });\n var templateName = resolveTemplateName(template, bindingContext.$data, bindingContext);\n const renderedNodesArray = executeTemplate(targetNodeOrNodeArray, renderMode, templateName, bindingContext, options, afterBindingCallback);\n if (renderMode === \"replaceNode\") {\n targetNodeOrNodeArray = renderedNodesArray;\n firstTargetNode = getFirstNodeFromPossibleArray(targetNodeOrNodeArray);\n }\n }, null, { disposeWhen: whenToDispose, disposeWhenNodeIsRemoved: activelyDisposeWhenNodeIsRemoved });\n } else {\n return memoization.memoize(function(domNode) {\n renderTemplate(template, dataOrBindingContext, options, domNode, \"replaceNode\");\n });\n }\n}\nexport default function renderTemplateForEach(template, arrayOrObservableArray, options, targetNode, parentBindingContext, afterBindingCallback) {\n var arrayItemContext;\n function executeTemplateForArrayItem(arrayValue, index) {\n if (options.as) {\n if (koOptions.createChildContextWithAs) {\n arrayItemContext = parentBindingContext.createChildContext(arrayValue, options.as, (context) => {\n context.$index = index;\n });\n } else {\n arrayItemContext = parentBindingContext.extend({\n [options.as]: arrayValue,\n $index: index\n });\n }\n } else {\n arrayItemContext = parentBindingContext.createChildContext(arrayValue, options.as, (context) => {\n context.$index = index;\n });\n }\n var templateName = resolveTemplateName(template, arrayValue, arrayItemContext);\n return executeTemplate(targetNode, \"ignoreTargetNode\", templateName, arrayItemContext, options, afterBindingCallback);\n }\n var activateBindingsCallback = function(arrayValue, addedNodesArray) {\n activateBindingsOnContinuousNodeArray(addedNodesArray, arrayItemContext, afterBindingCallback);\n if (options.afterRender) {\n options.afterRender(addedNodesArray, arrayValue);\n }\n arrayItemContext = null;\n };\n function localSetDomNodeChildrenFromArrayMapping(newArray, changeList) {\n dependencyDetection.ignore(setDomNodeChildrenFromArrayMapping, null, [targetNode, newArray, executeTemplateForArrayItem, options, activateBindingsCallback, changeList]);\n bindingEvent.notify(targetNode, bindingEvent.childrenComplete);\n }\n const shouldHideDestroyed = options.includeDestroyed === false || koOptions.foreachHidesDestroyed && !options.includeDestroyed;\n if (!shouldHideDestroyed && !options.beforeRemove && isObservableArray(arrayOrObservableArray)) {\n localSetDomNodeChildrenFromArrayMapping(arrayOrObservableArray.peek());\n var subscription = arrayOrObservableArray.subscribe(function(changeList) {\n localSetDomNodeChildrenFromArrayMapping(arrayOrObservableArray(), changeList);\n }, null, \"arrayChange\");\n subscription.disposeWhenNodeIsRemoved(targetNode);\n return subscription;\n } else {\n return computed(function() {\n var unwrappedArray = unwrap(arrayOrObservableArray) || [];\n const unwrappedIsIterable = Symbol.iterator in unwrappedArray;\n if (!unwrappedIsIterable) {\n unwrappedArray = [unwrappedArray];\n }\n if (shouldHideDestroyed) {\n unwrappedArray = arrayFilter(unwrappedArray, function(item) {\n return item === void 0 || item === null || !unwrap(item._destroy);\n });\n }\n localSetDomNodeChildrenFromArrayMapping(unwrappedArray);\n }, null, { disposeWhenNodeIsRemoved: targetNode });\n }\n}\nlet templateComputedDomDataKey = domData.nextKey();\nexport class TemplateBindingHandler extends AsyncBindingHandler {\n constructor(params) {\n super(params);\n const element = this.$element;\n const bindingValue = unwrap(this.value);\n domData.set(element, \"conditional\", {\n elseChainSatisfied: observable(true)\n });\n if (typeof bindingValue === \"string\" || bindingValue.name) {\n this.bindNamedTemplate();\n } else if (\"nodes\" in bindingValue) {\n this.bindNodeTemplate(bindingValue.nodes || []);\n } else {\n this.bindAnonymousTemplate();\n }\n }\n bindNamedTemplate() {\n virtualElements.emptyNode(this.$element);\n }\n bindNodeTemplate(nodes) {\n if (isObservable(nodes)) {\n throw new Error('The \"nodes\" option must be a plain, non-observable array.');\n }\n let container = nodes[0] && nodes[0].parentNode;\n if (!container || !domData.get(container, cleanContainerDomDataKey)) {\n container = moveCleanedNodesToContainerElement(nodes);\n domData.set(container, cleanContainerDomDataKey, true);\n }\n new AnonymousTemplate(this.$element).nodes(container);\n }\n bindAnonymousTemplate() {\n const templateNodes = virtualElements.childNodes(this.$element);\n if (templateNodes.length === 0) {\n throw new Error(\"Anonymous template defined, but no template content was provided.\");\n }\n const container = moveCleanedNodesToContainerElement(templateNodes);\n new AnonymousTemplate(this.$element).nodes(container);\n }\n onValueChange() {\n const element = this.$element;\n const bindingContext = this.$context;\n var value = this.value;\n var options = unwrap(value);\n var shouldDisplay = true;\n var templateComputed = null;\n var elseChainSatisfied = domData.get(element, \"conditional\").elseChainSatisfied;\n var templateName;\n if (typeof options === \"string\") {\n templateName = value;\n options = {};\n } else {\n templateName = options.name;\n if (\"if\" in options) {\n shouldDisplay = unwrap(options.if);\n }\n if (shouldDisplay && \"ifnot\" in options) {\n shouldDisplay = !unwrap(options.ifnot);\n }\n }\n if (\"foreach\" in options) {\n var dataArray = shouldDisplay && options.foreach || [];\n templateComputed = renderTemplateForEach(templateName || element, dataArray, options, element, bindingContext, this.completeBinding);\n elseChainSatisfied((unwrap(dataArray) || []).length !== 0);\n } else if (shouldDisplay) {\n var innerBindingContext = \"data\" in options ? bindingContext.createStaticChildContext(options.data, options.as) : bindingContext;\n templateComputed = renderTemplate(templateName || element, innerBindingContext, options, element, void 0, this.completeBinding);\n elseChainSatisfied(true);\n } else {\n virtualElements.emptyNode(element);\n elseChainSatisfied(false);\n }\n this.disposeOldComputedAndStoreNewOne(element, templateComputed);\n }\n disposeOldComputedAndStoreNewOne(element, newComputed) {\n let oldComputed = domData.get(element, templateComputedDomDataKey);\n if (oldComputed && typeof oldComputed.dispose === \"function\") {\n oldComputed.dispose();\n }\n domData.set(element, templateComputedDomDataKey, newComputed && (!newComputed.isActive || newComputed.isActive()) ? newComputed : void 0);\n }\n get controlsDescendants() {\n return true;\n }\n static get allowVirtualElements() {\n return true;\n }\n}\n", "// @tko/binding.template \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n ieVersion,\n makeArray,\n parseHtmlFragment\n} from \"@tko/utils\";\nimport {\n templateEngine\n} from \"./templateEngine\";\nimport {\n setTemplateEngine\n} from \"./templating\";\nexport function nativeTemplateEngine() {\n}\nnativeTemplateEngine.prototype = new templateEngine();\nnativeTemplateEngine.prototype.constructor = nativeTemplateEngine;\nnativeTemplateEngine.prototype.renderTemplateSource = function(templateSource, bindingContext, options2, templateDocument) {\n var useNodesIfAvailable = !(ieVersion < 9), templateNodesFunc = useNodesIfAvailable ? templateSource.nodes : null, templateNodes = templateNodesFunc ? templateSource.nodes() : null;\n if (templateNodes) {\n return makeArray(templateNodes.cloneNode(true).childNodes);\n } else {\n var templateText = templateSource.text();\n return parseHtmlFragment(templateText, templateDocument);\n }\n};\nnativeTemplateEngine.instance = new nativeTemplateEngine();\nsetTemplateEngine(nativeTemplateEngine.instance);\n", "// @tko/binding.template \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n unwrap,\n peek\n} from \"@tko/observable\";\nimport {\n nativeTemplateEngine\n} from \"./nativeTemplateEngine\";\nimport {\n TemplateBindingHandler\n} from \"./templating\";\nexport class TemplateForEachBindingHandler extends TemplateBindingHandler {\n get value() {\n const modelValue = this.valueAccessor();\n const unwrappedValue = peek(modelValue);\n if (!unwrappedValue || typeof unwrappedValue.length === \"number\") {\n return { foreach: modelValue, templateEngine: nativeTemplateEngine.instance };\n }\n unwrap(modelValue);\n return {\n foreach: unwrappedValue.data,\n as: unwrappedValue.as,\n includeDestroyed: unwrappedValue.includeDestroyed,\n afterAdd: unwrappedValue.afterAdd,\n beforeRemove: unwrappedValue.beforeRemove,\n afterRender: unwrappedValue.afterRender,\n beforeMove: unwrappedValue.beforeMove,\n afterMove: unwrappedValue.afterMove,\n templateEngine: nativeTemplateEngine.instance\n };\n }\n}\n", "// @tko/binding.template \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n TemplateForEachBindingHandler\n} from \"./foreach\";\nimport {\n TemplateBindingHandler\n} from \"./templating\";\nexport const bindings = {\n foreach: TemplateForEachBindingHandler,\n template: TemplateBindingHandler\n};\nexport * from \"./nativeTemplateEngine\";\nexport * from \"./templateEngine\";\nexport * from \"./templating\";\nexport * from \"./templateSources\";\n", "// @tko/builder \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n addDisposeCallback,\n addOrRemoveItem,\n arrayFilter,\n arrayFirst,\n arrayForEach,\n arrayGetDistinctValues,\n arrayIndexOf,\n arrayMap,\n arrayPushAll,\n arrayRemoveItem,\n addCleaner,\n cleanNode,\n cloneNodes,\n compareArrays,\n createSymbolOrString,\n domData,\n extend,\n memoization,\n objectForEach,\n objectMap,\n options,\n parseHtmlFragment,\n parseJson,\n range,\n registerEventHandler,\n removeCleaner,\n removeDisposeCallback,\n removeNode,\n selectExtensions,\n setHtml,\n setTextContent,\n tasks,\n toggleDomNodeCssClass,\n triggerEvent,\n virtualElements\n} from \"@tko/utils\";\nimport {\n parseObjectLiteral\n} from \"@tko/utils.parser\";\nimport {\n LifeCycle\n} from \"@tko/lifecycle\";\nimport {\n dependencyDetection,\n extenders as defaultExtenders,\n isObservable,\n isSubscribable,\n isWriteableObservable,\n observable,\n observableArray,\n isObservableArray,\n peek,\n subscribable,\n toJS,\n toJSON,\n unwrap\n} from \"@tko/observable\";\nimport {\n computed,\n isComputed,\n isPureComputed,\n proxy,\n pureComputed,\n when\n} from \"@tko/computed\";\nimport {\n applyBindingAccessorsToNode,\n applyBindings,\n applyBindingsToDescendants,\n applyBindingsToNode,\n contextFor,\n dataFor,\n bindingEvent,\n BindingHandler,\n AsyncBindingHandler,\n setDomNodeChildrenFromArrayMapping\n} from \"@tko/bind\";\nimport {\n anonymousTemplate,\n domElement,\n nativeTemplateEngine,\n renderTemplate,\n setTemplateEngine,\n templateEngine\n} from \"@tko/binding.template\";\nconst domNodeDisposal = {\n addDisposeCallback,\n removeDisposeCallback,\n removeNode,\n addCleaner,\n removeCleaner,\n get cleanExternalData() {\n return options.cleanExternalData;\n },\n set cleanExternalData(cleanerFn) {\n options.set(\"cleanExternalData\", cleanerFn);\n }\n};\nconst utils = Object.assign({\n addOrRemoveItem,\n arrayFilter,\n arrayFirst,\n arrayForEach,\n arrayGetDistinctValues,\n arrayIndexOf,\n arrayMap,\n arrayPushAll,\n arrayRemoveItem,\n cloneNodes,\n compareArrays,\n createSymbolOrString,\n domData,\n domNodeDisposal,\n extend,\n filters: options.filters,\n objectForEach,\n objectMap,\n parseHtmlFragment,\n parseJson,\n parseObjectLiteral,\n peekObservable: peek,\n range,\n registerEventHandler,\n setDomNodeChildrenFromArrayMapping,\n setHtml,\n setTextContent,\n toggleDomNodeCssClass,\n triggerEvent,\n unwrapObservable: unwrap\n});\nconst knockout = {\n cleanNode,\n dependencyDetection,\n computedContext: dependencyDetection,\n filters: options.filters,\n ignoreDependencies: dependencyDetection.ignore,\n memoization,\n options,\n removeNode,\n selectExtensions,\n tasks,\n utils,\n LifeCycle,\n isObservable,\n isSubscribable,\n isWriteableObservable,\n isWritableObservable: isWriteableObservable,\n observable,\n observableArray,\n isObservableArray,\n peek,\n subscribable,\n unwrap,\n toJS,\n toJSON,\n proxy,\n computed,\n dependentObservable: computed,\n isComputed,\n isPureComputed,\n pureComputed,\n when,\n nativeTemplateEngine,\n renderTemplate,\n setTemplateEngine,\n templateEngine,\n templateSources: { domElement, anonymousTemplate },\n applyBindingAccessorsToNode,\n applyBindings,\n applyBindingsToDescendants,\n applyBindingsToNode,\n contextFor,\n dataFor,\n BindingHandler,\n AsyncBindingHandler,\n virtualElements,\n domNodeDisposal,\n bindingEvent\n};\nexport class Builder {\n constructor({ provider, bindings, extenders, filters, options: options2 }) {\n Object.assign(knockout.options, options2, {\n filters,\n bindingProviderInstance: provider\n });\n provider.setGlobals(knockout.options.bindingGlobals);\n if (Array.isArray(bindings)) {\n for (const bindingsObject of bindings) {\n provider.bindingHandlers.set(bindingsObject);\n }\n } else {\n provider.bindingHandlers.set(bindings);\n }\n this.providedProperties = {\n extenders: Object.assign(defaultExtenders, extenders),\n bindingHandlers: provider.bindingHandlers,\n bindingProvider: provider\n };\n }\n create(...additionalProperties) {\n const instance = Object.assign({\n get getBindingHandler() {\n return options.getBindingHandler;\n },\n set getBindingHandler(fn) {\n options.set(\"getBindingHandler\", fn);\n }\n }, knockout, this.providedProperties, ...additionalProperties);\n instance.options.knockoutInstance = instance;\n return instance;\n }\n}\n", "// @tko/provider \uD83E\uDD4A 4.0.0-beta1.0 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(new Error(\"Given extraneous `value` parameter (first param should be a string, but it was an object).\" + nameOrObject));\n }\n Object.assign(this, nameOrObject);\n } else {\n options.onError(new Error(\"Given a bad binding handler type: \" + nameOrObject));\n }\n }\n get(nameOrDotted) {\n const [name] = nameOrDotted.split(\".\");\n return this[name];\n }\n}\n", "// @tko/provider \uD83E\uDD4A 4.0.0-beta1.0 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(dependencyDetection.ignore(callback), (value, key) => () => callback()[key]);\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", "// @tko/provider.bindingstring \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n Parser,\n parseObjectLiteral\n} from \"@tko/utils.parser\";\nimport {\n Provider\n} from \"@tko/provider\";\nexport default class BindingStringProvider extends Provider {\n *processBinding(key, value) {\n const [handlerName, property] = key.split(\".\");\n const handler = this.bindingHandlers.get(handlerName);\n if (handler && handler.preprocess) {\n const bindingsAddedByHandler = [];\n const chainFn = (...args) => bindingsAddedByHandler.push(args);\n value = handler.preprocess(value, key, chainFn);\n for (const [key2, value2] of bindingsAddedByHandler) {\n yield* this.processBinding(key2, value2);\n }\n } else if (property) {\n value = `{${property}:${value}}`;\n }\n yield `'${handlerName}':${value}`;\n }\n *generateBindingString(bindingStringOrObjects) {\n const bindingObjectsArray = typeof bindingStringOrObjects === \"string\" ? parseObjectLiteral(bindingStringOrObjects) : bindingStringOrObjects;\n for (const { key, unknown, value } of bindingObjectsArray) {\n yield* this.processBinding(key || unknown, value);\n }\n }\n preProcessBindings(bindingStringOrObjects) {\n return Array.from(this.generateBindingString(bindingStringOrObjects)).join(\",\");\n }\n getBindingAccessors(node, context) {\n const bindingString = node && this.getBindingString(node);\n if (!bindingString) {\n return;\n }\n const processed = this.preProcessBindings(bindingString);\n return new Parser().parse(processed, context, this.globals, node);\n }\n getBindingString() {\n throw new Error(\"Overload getBindingString.\");\n }\n}\n", "// @tko/provider.virtual \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n virtualElements\n} from \"@tko/utils\";\nimport {\n BindingStringProvider\n} from \"@tko/provider.bindingstring\";\nexport default class VirtualProvider extends BindingStringProvider {\n get FOR_NODE_TYPES() {\n return [1, 8];\n }\n preprocessNode(node) {\n if (node.tagName === \"KO\") {\n const parent = node.parentNode;\n const childNodes = [...node.childNodes];\n const virtualBindingString = [...this.genElementBindingStrings(node)].join(\",\");\n const openNode = document.createComment(\"ko \" + virtualBindingString);\n const closeNode = document.createComment(\"/ko\");\n parent.insertBefore(openNode, node);\n for (const child of childNodes) {\n parent.insertBefore(child, node);\n }\n parent.insertBefore(closeNode, node);\n node.remove();\n return [openNode, ...childNodes, closeNode];\n }\n }\n *genElementBindingStrings(node) {\n for (const { name, value } of node.attributes) {\n yield `${name.replace(/^ko-/, \"\")}: ${value}`;\n }\n }\n getBindingString(node) {\n if (node.nodeType === document.COMMENT_NODE) {\n return virtualElements.virtualNodeBindingValue(node);\n }\n }\n nodeHasBindings(node) {\n if (node.nodeType === document.COMMENT_NODE) {\n return virtualElements.isStartComment(node);\n }\n }\n}\n", "// @tko/provider.databind \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n BindingStringProvider\n} from \"@tko/provider.bindingstring\";\nexport default class DataBindProvider extends BindingStringProvider {\n get FOR_NODE_TYPES() {\n return [1];\n }\n get BIND_ATTRIBUTE() {\n return \"data-bind\";\n }\n getBindingString(node) {\n if (node.nodeType === document.ELEMENT_NODE) {\n return node.getAttribute(this.BIND_ATTRIBUTE);\n }\n }\n nodeHasBindings(node) {\n if (node.nodeType === document.ELEMENT_NODE) {\n return node.hasAttribute(this.BIND_ATTRIBUTE);\n }\n }\n}\n", "// @tko/utils.component \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n subscribable,\n dependencyDetection\n} from \"@tko/observable\";\nimport {\n getObjectOwnProperty,\n tasks\n} from \"@tko/utils\";\nvar loadingSubscribablesCache = {}, loadedDefinitionsCache = {};\nfunction loadComponentAndNotify(componentName, callback) {\n var _subscribable = getObjectOwnProperty(loadingSubscribablesCache, componentName), completedAsync;\n if (!_subscribable) {\n _subscribable = loadingSubscribablesCache[componentName] = new subscribable();\n _subscribable.subscribe(callback);\n beginLoadingComponent(componentName, function(definition, config) {\n var isSynchronousComponent = !!(config && config.synchronous);\n loadedDefinitionsCache[componentName] = { definition, isSynchronousComponent };\n delete loadingSubscribablesCache[componentName];\n if (completedAsync || isSynchronousComponent) {\n _subscribable.notifySubscribers(definition);\n } else {\n tasks.schedule(function() {\n _subscribable.notifySubscribers(definition);\n });\n }\n });\n completedAsync = true;\n } else {\n _subscribable.subscribe(callback);\n }\n}\nfunction beginLoadingComponent(componentName, callback) {\n getFirstResultFromLoaders(\"getConfig\", [componentName], function(config) {\n if (config) {\n getFirstResultFromLoaders(\"loadComponent\", [componentName, config], function(definition) {\n callback(definition, config);\n });\n } else {\n callback(null, null);\n }\n });\n}\nfunction getFirstResultFromLoaders(methodName, argsExceptCallback, callback, candidateLoaders) {\n if (!candidateLoaders) {\n candidateLoaders = registry.loaders.slice(0);\n }\n var currentCandidateLoader = candidateLoaders.shift();\n if (currentCandidateLoader) {\n var methodInstance = currentCandidateLoader[methodName];\n if (methodInstance) {\n var wasAborted = false, synchronousReturnValue = methodInstance.apply(currentCandidateLoader, argsExceptCallback.concat(function(result) {\n if (wasAborted) {\n callback(null);\n } else if (result !== null) {\n callback(result);\n } else {\n getFirstResultFromLoaders(methodName, argsExceptCallback, callback, candidateLoaders);\n }\n }));\n if (synchronousReturnValue !== void 0) {\n wasAborted = true;\n if (!currentCandidateLoader.suppressLoaderExceptions) {\n throw new Error(\"Component loaders must supply values by invoking the callback, not by returning values synchronously.\");\n }\n }\n } else {\n getFirstResultFromLoaders(methodName, argsExceptCallback, callback, candidateLoaders);\n }\n } else {\n callback(null);\n }\n}\nexport var registry = {\n get(componentName, callback) {\n var cachedDefinition = getObjectOwnProperty(loadedDefinitionsCache, componentName);\n if (cachedDefinition) {\n if (cachedDefinition.isSynchronousComponent) {\n dependencyDetection.ignore(function() {\n callback(cachedDefinition.definition);\n });\n } else {\n tasks.schedule(function() {\n callback(cachedDefinition.definition);\n });\n }\n } else {\n loadComponentAndNotify(componentName, callback);\n }\n },\n clearCachedDefinition(componentName) {\n delete loadedDefinitionsCache[componentName];\n },\n _getFirstResultFromLoaders: getFirstResultFromLoaders,\n loaders: []\n};\n", "// @tko/utils.component \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n isDomElement,\n isDocumentFragment,\n tagNameLower,\n parseHtmlFragment,\n makeArray,\n cloneNodes,\n hasOwnProperty\n} from \"@tko/utils\";\nimport { registry } from \"./registry\";\nexport var defaultConfigRegistry = {};\nexport const VIEW_MODEL_FACTORY = Symbol(\"Knockout View Model ViewModel factory\");\nexport function register(componentName, config) {\n if (!config) {\n throw new Error(\"Invalid configuration for \" + componentName);\n }\n if (isRegistered(componentName)) {\n throw new Error(\"Component \" + componentName + \" is already registered\");\n }\n const ceok = componentName.includes(\"-\") && componentName.toLowerCase() === componentName;\n if (!config.ignoreCustomElementWarning && !ceok) {\n console.log(`\n\\u{1F94A} Knockout warning: components for custom elements must be lowercase and contain a dash. To ignore this warning, add to the 'config' of .register(componentName, config):\n\n ignoreCustomElementWarning: true\n `);\n }\n defaultConfigRegistry[componentName] = config;\n}\nexport function isRegistered(componentName) {\n return hasOwnProperty(defaultConfigRegistry, componentName);\n}\nexport function unregister(componentName) {\n delete defaultConfigRegistry[componentName];\n registry.clearCachedDefinition(componentName);\n}\nexport var defaultLoader = {\n getConfig: function(componentName, callback) {\n var result = hasOwnProperty(defaultConfigRegistry, componentName) ? defaultConfigRegistry[componentName] : null;\n callback(result);\n },\n loadComponent: function(componentName, config, callback) {\n var errorCallback = makeErrorCallback(componentName);\n possiblyGetConfigFromAmd(errorCallback, config, function(loadedConfig) {\n resolveConfig(componentName, errorCallback, loadedConfig, callback);\n });\n },\n loadTemplate: function(componentName, templateConfig, callback) {\n resolveTemplate(makeErrorCallback(componentName), templateConfig, callback);\n },\n loadViewModel: function(componentName, viewModelConfig, callback) {\n resolveViewModel(makeErrorCallback(componentName), viewModelConfig, callback);\n }\n};\nvar createViewModelKey = \"createViewModel\";\nfunction resolveConfig(componentName, errorCallback, config, callback) {\n var result = {}, makeCallBackWhenZero = 2, tryIssueCallback = function() {\n if (--makeCallBackWhenZero === 0) {\n callback(result);\n }\n }, templateConfig = config[\"template\"], viewModelConfig = config[\"viewModel\"];\n if (templateConfig) {\n possiblyGetConfigFromAmd(errorCallback, templateConfig, function(loadedConfig) {\n registry._getFirstResultFromLoaders(\"loadTemplate\", [componentName, loadedConfig], function(resolvedTemplate) {\n result[\"template\"] = resolvedTemplate;\n tryIssueCallback();\n });\n });\n } else {\n tryIssueCallback();\n }\n if (viewModelConfig) {\n possiblyGetConfigFromAmd(errorCallback, viewModelConfig, function(loadedConfig) {\n registry._getFirstResultFromLoaders(\"loadViewModel\", [componentName, loadedConfig], function(resolvedViewModel) {\n result[createViewModelKey] = resolvedViewModel;\n tryIssueCallback();\n });\n });\n } else {\n tryIssueCallback();\n }\n}\nfunction resolveTemplate(errorCallback, templateConfig, callback) {\n if (typeof templateConfig === \"string\") {\n callback(parseHtmlFragment(templateConfig));\n } else if (templateConfig instanceof Array) {\n callback(templateConfig);\n } else if (isDocumentFragment(templateConfig)) {\n callback(makeArray(templateConfig.childNodes));\n } else if (templateConfig.element) {\n var element = templateConfig.element;\n if (isDomElement(element)) {\n callback(cloneNodesFromTemplateSourceElement(element));\n } else if (typeof element === \"string\") {\n var elemInstance = document.getElementById(element);\n if (elemInstance) {\n callback(cloneNodesFromTemplateSourceElement(elemInstance));\n } else {\n errorCallback(\"Cannot find element with ID \" + element);\n }\n } else {\n errorCallback(\"Unknown element type: \" + element);\n }\n } else if (templateConfig.elementName) {\n callback(templateConfig);\n } else {\n errorCallback(\"Unknown template value: \" + templateConfig);\n }\n}\nfunction resolveViewModel(errorCallback, viewModelConfig, callback) {\n if (viewModelConfig[VIEW_MODEL_FACTORY]) {\n callback((...args) => viewModelConfig[VIEW_MODEL_FACTORY](...args));\n } else if (typeof viewModelConfig === \"function\") {\n callback(function(params) {\n return new viewModelConfig(params);\n });\n } else if (typeof viewModelConfig[createViewModelKey] === \"function\") {\n callback(viewModelConfig[createViewModelKey]);\n } else if (\"instance\" in viewModelConfig) {\n var fixedInstance = viewModelConfig[\"instance\"];\n callback(function() {\n return fixedInstance;\n });\n } else if (\"viewModel\" in viewModelConfig) {\n resolveViewModel(errorCallback, viewModelConfig[\"viewModel\"], callback);\n } else {\n errorCallback(\"Unknown viewModel value: \" + viewModelConfig);\n }\n}\nfunction cloneNodesFromTemplateSourceElement(elemInstance) {\n switch (tagNameLower(elemInstance)) {\n case \"script\":\n return parseHtmlFragment(elemInstance.text);\n case \"textarea\":\n return parseHtmlFragment(elemInstance.value);\n case \"template\":\n if (isDocumentFragment(elemInstance.content)) {\n return cloneNodes(elemInstance.content.childNodes);\n }\n }\n return cloneNodes(elemInstance.childNodes);\n}\nfunction possiblyGetConfigFromAmd(errorCallback, config, callback) {\n if (typeof config.require === \"string\") {\n if (window.amdRequire || window.require) {\n (window.amdRequire || window.require)([config.require], callback);\n } else {\n errorCallback(\"Uses require, but no AMD loader is present\");\n }\n } else {\n callback(config);\n }\n}\nfunction makeErrorCallback(componentName) {\n return function(message) {\n throw new Error(\"Component '\" + componentName + \"': \" + message);\n };\n}\nregistry.loaders.push(defaultLoader);\n", "// @tko/utils.component \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport { LifeCycle } from \"@tko/lifecycle\";\nimport { register, VIEW_MODEL_FACTORY } from \"./loaders\";\nexport class ComponentABC extends LifeCycle {\n static get customElementName() {\n return this.name.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\n }\n static get template() {\n if (\"template\" in this.prototype) {\n return;\n }\n return { element: this.element };\n }\n static get element() {\n throw new Error(\"[ComponentABC] `element` must be overloaded.\");\n }\n static get sync() {\n return true;\n }\n static [VIEW_MODEL_FACTORY](params, componentInfo) {\n return new this(params, componentInfo);\n }\n static register(name = this.customElementName) {\n const viewModel = this;\n const { template } = this;\n const synchronous = this.sync;\n register(name, { viewModel, template, synchronous });\n }\n}\n", "// @tko/utils.component \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport { registry } from \"./registry\";\nimport { ComponentABC } from \"./ComponentABC\";\nimport {\n register,\n isRegistered,\n unregister,\n defaultLoader,\n defaultConfigRegistry\n} from \"./loaders\";\nexport { ComponentABC };\nexport default {\n ComponentABC,\n get: registry.get,\n clearCachedDefinition: registry.clearCachedDefinition,\n register,\n isRegistered,\n unregister,\n defaultLoader,\n _allRegisteredComponents: defaultConfigRegistry,\n get loaders() {\n return registry.loaders;\n },\n set loaders(loaders) {\n registry.loaders = loaders;\n }\n};\n", "// @tko/provider.component \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n tagNameLower,\n objectMap\n} from \"@tko/utils\";\nimport registry from \"@tko/utils.component\";\nimport {\n unwrap,\n isWriteableObservable\n} from \"@tko/observable\";\nimport {\n computed\n} from \"@tko/computed\";\nimport {\n Provider\n} from \"@tko/provider\";\nimport {\n Parser\n} from \"@tko/utils.parser\";\nexport default class ComponentProvider extends Provider {\n get FOR_NODE_TYPES() {\n return [1];\n }\n preprocessNode(node) {\n if (node.tagName === \"SLOT\") {\n const parent = node.parentNode;\n const slotName = node.getAttribute(\"name\") || \"\";\n const openNode = document.createComment(`ko slot: \"${slotName}\"`);\n const closeNode = document.createComment(\"/ko\");\n parent.insertBefore(openNode, node);\n parent.insertBefore(closeNode, node);\n parent.removeChild(node);\n return [openNode, closeNode];\n }\n }\n nodeHasBindings(node) {\n return Boolean(this.getComponentNameForNode(node));\n }\n getBindingAccessors(node, context) {\n const componentName = this.getComponentNameForNode(node);\n if (!componentName) {\n return;\n }\n const component = () => ({\n name: componentName,\n params: this.getComponentParams(node, context)\n });\n return { component };\n }\n getComponentNameForNode(node) {\n if (node.nodeType !== node.ELEMENT_NODE) {\n return;\n }\n const tagName = tagNameLower(node);\n if (registry.isRegistered(tagName)) {\n const hasDash = tagName.includes(\"-\");\n const isUnknownEntity = \"\" + node === \"[object HTMLUnknownElement]\";\n if (hasDash || isUnknownEntity) {\n return tagName;\n }\n }\n }\n getComponentParams(node, context) {\n const parser = new Parser(node, context, this.globals);\n const paramsString = (node.getAttribute(\"params\") || \"\").trim();\n const accessors = parser.parse(paramsString, context, node);\n if (!accessors || Object.keys(accessors).length === 0) {\n return { $raw: {} };\n }\n const $raw = objectMap(accessors, (value) => computed(value, null, { disposeWhenNodeIsRemoved: node }));\n const params = objectMap($raw, (v) => this.makeParamValue(node, v));\n return Object.assign({ $raw }, params);\n }\n makeParamValue(node, paramValueComputed) {\n const paramValue = paramValueComputed.peek();\n if (!paramValueComputed.isActive()) {\n return paramValue;\n }\n const isWriteable = isWriteableObservable(paramValue);\n return computed({\n read: () => unwrap(paramValueComputed()),\n write: isWriteable ? (v) => paramValueComputed()(v) : null,\n disposeWhenNodeIsRemoved: node\n });\n }\n}\n", "// @tko/provider.attr \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n Provider\n} from \"@tko/provider\";\nexport default class AttrProvider extends Provider {\n get FOR_NODE_TYPES() {\n return [1];\n }\n get PREFIX() {\n return \"ko-\";\n }\n getBindingAttributesList(node) {\n if (!node.hasAttributes()) {\n return [];\n }\n return Array.from(node.attributes).filter((attr) => attr.name.startsWith(this.PREFIX));\n }\n nodeHasBindings(node) {\n return this.getBindingAttributesList(node).length > 0;\n }\n getBindingAccessors(node, context) {\n return Object.assign({}, ...this.handlersFromAttributes(node, context));\n }\n *handlersFromAttributes(node, context) {\n for (const attr of this.getBindingAttributesList(node)) {\n const name = attr.name.substr(this.PREFIX.length);\n yield { [name]: () => this.getValue(attr.value, context, node) };\n }\n }\n getValue(token, $context, node) {\n if (!token) {\n return;\n }\n const $data = $context.$data;\n switch (token) {\n case \"$element\":\n return node;\n case \"$context\":\n return $context;\n case \"this\":\n case \"$data\":\n return $context.$data;\n }\n if ($data instanceof Object && token in $data) {\n return $data[token];\n }\n if (token in $context) {\n return $context[token];\n }\n if (token in this.globals) {\n return this.globals[token];\n }\n throw new Error(`The variable '${token} not found.`);\n }\n}\n", "// @tko/provider.multi \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n Provider\n} from \"@tko/provider\";\nexport default class MultiProvider extends Provider {\n get FOR_NODE_TYPES() {\n return this.nodeTypes;\n }\n constructor(params = {}) {\n super(params);\n const providers = params.providers || [];\n this.nodeTypeMap = {};\n this.nodeTypes = [];\n this.providers = [];\n providers.forEach((p) => this.addProvider(p));\n }\n setGlobals(globals) {\n [this, ...this.providers].forEach((p) => p.globals = globals);\n }\n addProvider(provider) {\n this.providers.push(provider);\n provider.bindingHandlers = this.bindingHandlers;\n provider.globals = this.globals;\n const nodeTypeMap = this.nodeTypeMap;\n for (const nodeType of provider.FOR_NODE_TYPES) {\n if (!nodeTypeMap[nodeType]) {\n nodeTypeMap[nodeType] = [];\n }\n nodeTypeMap[nodeType].push(provider);\n }\n this.nodeTypes = Object.keys(this.nodeTypeMap).map((k) => parseInt(k, 10));\n }\n providersFor(node) {\n return this.nodeTypeMap[node.nodeType] || [];\n }\n nodeHasBindings(node) {\n return this.providersFor(node).some((p) => p.nodeHasBindings(node));\n }\n preprocessNode(node) {\n for (const provider of this.providersFor(node)) {\n const newNodes = provider.preprocessNode(node);\n if (newNodes) {\n return newNodes;\n }\n }\n }\n *enumerateProviderBindings(node, ctx) {\n for (const provider of this.providersFor(node)) {\n const bindings = provider.getBindingAccessors(node, ctx);\n if (!bindings) {\n continue;\n }\n yield* Object.entries(bindings || {});\n if (provider.preemptive) {\n return;\n }\n }\n }\n getBindingAccessors(node, ctx) {\n const bindings = {};\n for (const [key, accessor] of this.enumerateProviderBindings(node, ctx)) {\n if (key in bindings) {\n throw new Error(`The binding \"${key}\" is duplicated by multiple providers`);\n }\n bindings[key] = accessor;\n }\n return bindings;\n }\n}\n", "// @tko/provider.mustache \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n Parser\n} from \"@tko/utils.parser\";\nconst INNER_EXPRESSION = /^([\\s\\S]*)}}([\\s\\S]*?)\\{\\{([\\s\\S]*)$/;\nconst OUTER_EXPRESSION = /^([\\s\\S]*?)\\{\\{([\\s\\S]*)}}([\\s\\S]*)$/;\nconst BINDING_EXPRESSION = /^([^,\"'{}()/:[\\]\\s]+)\\s+([^\\s:].*)/;\nclass Interpolated {\n constructor(text) {\n this.text = text;\n }\n trim(string) {\n return string === null ? \"\" : string.trim();\n }\n}\nclass Expression extends Interpolated {\n asAttr(context, globals, node) {\n return new Parser().parseExpression(this.text, context, globals, node)();\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 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 } else if (firstChar === \"{\" && lastChar === \"}\") {\n binding = \"html:\" + this.trim(text.slice(1, -1));\n } else {\n binding = \"text:\" + this.trim(text);\n }\n if (binding) {\n yield ownerDocument.createComment(\"ko \" + binding);\n }\n if (closeComment) {\n yield ownerDocument.createComment(\"/ko\");\n }\n }\n}\nclass Text extends Interpolated {\n asAttr() {\n return this.text;\n }\n *textNodeReplacement() {\n yield document.createTextNode(this.text.replace(/\"/g, '\\\\\"'));\n }\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}\nexport function* parseOuterMatch(outerMatch) {\n if (!outerMatch) {\n return;\n }\n let [pre, inner, post] = outerMatch.slice(1);\n yield new Text(pre);\n yield* innerParse(inner);\n yield new Text(post);\n}\nexport function* parseInterpolation(text) {\n for (const textOrExpr of parseOuterMatch(text.match(OUTER_EXPRESSION))) {\n if (textOrExpr.text) {\n yield textOrExpr;\n }\n }\n}\n", "// @tko/provider.mustache \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n unwrap\n} from \"@tko/observable\";\nimport {\n Provider\n} from \"@tko/provider\";\nimport {\n parseInterpolation\n} from \"./mustacheParser\";\nconst DEFAULT_ATTRIBUTE_BINDING_MAP = {\n value: \"value\",\n checked: \"checked\",\n class: \"css\"\n};\nexport default class AttributeMustacheProvider extends Provider {\n get FOR_NODE_TYPES() {\n return [1];\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 *attributesToInterpolate(attributes) {\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 nodeHasBindings(node) {\n return !this.attributesToInterpolate(node.attributes).next().done;\n }\n partsTogether(parts, context, node, ...valueToWrite) {\n if (parts.length > 1) {\n return parts.map((p) => unwrap(p.asAttr(context, this.globals, node))).join(\"\");\n }\n const part = parts[0].asAttr(context, this.globals);\n if (valueToWrite.length) {\n part(valueToWrite[0]);\n }\n return part;\n }\n attributeBinding(name, parts) {\n return [name, parts];\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) {\n 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 *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 ? (...v) => this.partsTogether(parts, context, node, ...v) : (...v) => ({ [attrName]: this.partsTogether(parts, context, node, ...v) });\n node.removeAttribute(attrName);\n yield { [handler]: accessorFn };\n }\n }\n getBindingAccessors(node, context) {\n return Object.assign({}, ...this.bindingObjects(node, context));\n }\n}\n", "// @tko/provider.mustache \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n Provider\n} from \"@tko/provider\";\nimport {\n parseInterpolation\n} from \"./mustacheParser\";\nexport default class TextMustacheProvider extends Provider {\n get FOR_NODE_TYPES() {\n return [3];\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 if (!hasStash || isTextarea) {\n return;\n }\n for (const part of parseInterpolation(textNode.nodeValue)) {\n yield* part.textNodeReplacement(textNode);\n }\n }\n textInterpolation(textNode) {\n const newNodes = Array.from(this.textToNodes(textNode));\n if (newNodes.length === 0) {\n 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 return newNodes;\n }\n preprocessNode(node) {\n return this.textInterpolation(node);\n }\n}\n", "// @tko/provider.native \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n isObservable\n} from \"@tko/observable\";\nimport {\n Provider\n} from \"@tko/provider\";\nexport const NATIVE_BINDINGS = Symbol(\"Knockout native bindings\");\nexport default class NativeProvider extends Provider {\n get FOR_NODE_TYPES() {\n return [1, 3];\n }\n get preemptive() {\n return true;\n }\n nodeHasBindings(node) {\n if (!node[NATIVE_BINDINGS]) {\n return false;\n }\n return Object.keys(node[NATIVE_BINDINGS] || {}).some((key) => key.startsWith(\"ko-\"));\n }\n preprocessNode(node) {\n return node[NATIVE_BINDINGS] ? node : null;\n }\n onlyBindings([name]) {\n return name.startsWith(\"ko-\");\n }\n valueAsAccessor([name, value]) {\n const bindingName = name.replace(/^ko-/, \"\");\n const valueFn = isObservable(value) ? value : () => value;\n return { [bindingName]: valueFn };\n }\n getBindingAccessors(node) {\n const bindings = Object.entries(node[NATIVE_BINDINGS] || {}).filter(this.onlyBindings);\n if (!bindings.length) {\n return null;\n }\n return Object.assign({}, ...bindings.map(this.valueAsAccessor));\n }\n static addValueToNode(node, name, value) {\n const obj = node[NATIVE_BINDINGS] || (node[NATIVE_BINDINGS] = {});\n obj[name] = value;\n }\n static getNodeValues(node) {\n return node[NATIVE_BINDINGS];\n }\n}\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n setElementName,\n objectForEach\n} from \"@tko/utils\";\nimport {\n unwrap\n} from \"@tko/observable\";\nexport var attr = {\n update: function(element, valueAccessor, allBindings) {\n var value = unwrap(valueAccessor()) || {};\n objectForEach(value, function(attrName, attrValue) {\n attrValue = unwrap(attrValue);\n var prefixLen = attrName.indexOf(\":\");\n var namespace = prefixLen > 0 && element.lookupNamespaceURI(attrName.substr(0, prefixLen));\n const toRemove = attrValue === false || attrValue === null || attrValue === void 0;\n if (toRemove) {\n if (namespace) {\n element.removeAttributeNS(namespace, attrName);\n } else {\n element.removeAttribute(attrName);\n }\n } else {\n attrValue = attrValue.toString();\n if (namespace) {\n element.setAttributeNS(namespace, attrName, attrValue);\n } else {\n element.setAttribute(attrName, attrValue);\n }\n }\n if (attrName === \"name\") {\n setElementName(element, toRemove ? \"\" : attrValue);\n }\n });\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n registerEventHandler,\n arrayIndexOf,\n addOrRemoveItem\n} from \"@tko/utils\";\nimport {\n unwrap,\n dependencyDetection,\n isWriteableObservable\n} from \"@tko/observable\";\nimport {\n computed,\n pureComputed\n} from \"@tko/computed\";\nexport var checked = {\n after: [\"value\", \"attr\"],\n init: function(element, valueAccessor, allBindings) {\n var checkedValue2 = pureComputed(function() {\n if (allBindings.has(\"checkedValue\")) {\n return unwrap(allBindings.get(\"checkedValue\"));\n } else if (useElementValue) {\n if (allBindings.has(\"value\")) {\n return unwrap(allBindings.get(\"value\"));\n } else {\n return element.value;\n }\n }\n });\n function updateModel() {\n var isChecked = element.checked, elemValue = checkedValue2();\n if (dependencyDetection.isInitial()) {\n return;\n }\n if (!isChecked && (isRadio || dependencyDetection.getDependenciesCount())) {\n return;\n }\n var modelValue = dependencyDetection.ignore(valueAccessor);\n if (valueIsArray) {\n var writableValue = rawValueIsNonArrayObservable ? modelValue.peek() : modelValue, saveOldValue = oldElemValue;\n oldElemValue = elemValue;\n if (saveOldValue !== elemValue) {\n if (isChecked) {\n addOrRemoveItem(writableValue, elemValue, true);\n addOrRemoveItem(writableValue, saveOldValue, false);\n }\n oldElemValue = elemValue;\n } else {\n addOrRemoveItem(writableValue, elemValue, isChecked);\n }\n if (rawValueIsNonArrayObservable && isWriteableObservable(modelValue)) {\n modelValue(writableValue);\n }\n } else {\n if (isCheckbox) {\n if (elemValue === void 0) {\n elemValue = isChecked;\n } else if (!isChecked) {\n elemValue = void 0;\n }\n }\n valueAccessor(elemValue, { onlyIfChanged: true });\n }\n }\n ;\n function updateView() {\n var modelValue = modelValue = unwrap(valueAccessor());\n var elemValue = checkedValue2();\n if (valueIsArray) {\n element.checked = arrayIndexOf(modelValue, elemValue) >= 0;\n oldElemValue = elemValue;\n } else if (isCheckbox && elemValue === void 0) {\n element.checked = !!modelValue;\n } else {\n element.checked = checkedValue2() === modelValue;\n }\n }\n ;\n var isCheckbox = element.type == \"checkbox\", isRadio = element.type == \"radio\";\n if (!isCheckbox && !isRadio) {\n return;\n }\n var rawValue = valueAccessor(), valueIsArray = isCheckbox && unwrap(rawValue) instanceof Array, rawValueIsNonArrayObservable = !(valueIsArray && rawValue.push && rawValue.splice), useElementValue = isRadio || valueIsArray, oldElemValue = valueIsArray ? checkedValue2() : void 0;\n computed(updateModel, null, { disposeWhenNodeIsRemoved: element });\n registerEventHandler(element, \"click\", updateModel);\n computed(updateView, null, { disposeWhenNodeIsRemoved: element });\n rawValue = void 0;\n }\n};\nexport var checkedValue = {\n update: function(element, valueAccessor) {\n element.value = unwrap(valueAccessor());\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n objectForEach,\n registerEventHandler,\n throttle as throttleFn,\n debounce as debounceFn\n} from \"@tko/utils\";\nimport {\n unwrap\n} from \"@tko/observable\";\nexport function makeEventHandlerShortcut(eventName) {\n return {\n init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {\n var newValueAccessor = function() {\n var result = {};\n result[eventName] = valueAccessor();\n return result;\n };\n eventHandler.init.call(this, element, newValueAccessor, allBindings, viewModel, bindingContext);\n }\n };\n}\nfunction makeDescriptor(handlerOrObject) {\n return typeof handlerOrObject === \"function\" ? { handler: handlerOrObject } : handlerOrObject || {};\n}\nexport const eventHandler = {\n init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {\n var eventsToHandle = valueAccessor() || {};\n objectForEach(eventsToHandle, function(eventName, descriptor) {\n const { passive, capture, once, debounce, throttle } = makeDescriptor(descriptor);\n const eventOptions = (capture || passive || once) && { capture, passive, once };\n let eventHandlerFn = (event, ...more) => {\n var handlerReturnValue;\n const { handler, passive: passive2, bubble, preventDefault } = makeDescriptor(valueAccessor()[eventName]);\n try {\n if (handler) {\n const possiblyUpdatedViewModel = bindingContext.$data;\n const argsForHandler = [possiblyUpdatedViewModel, event, ...more];\n handlerReturnValue = handler.apply(possiblyUpdatedViewModel, argsForHandler);\n }\n } finally {\n if (preventDefault !== void 0) {\n if (unwrap(preventDefault)) {\n event.preventDefault();\n }\n } else if (handlerReturnValue !== true) {\n if (!passive2) {\n event.preventDefault();\n }\n }\n }\n const bubbleMark = allBindings.get(eventName + \"Bubble\") !== false;\n if (bubble === false || !bubbleMark) {\n event.cancelBubble = true;\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n }\n };\n if (debounce) {\n eventHandlerFn = debounceFn(eventHandlerFn, debounce);\n }\n if (throttle) {\n eventHandlerFn = throttleFn(eventHandlerFn, throttle);\n }\n registerEventHandler(element, eventName, eventHandlerFn, eventOptions || false);\n });\n }\n};\nexport const onHandler = {\n init: eventHandler.init,\n preprocess: function(value, key, addBinding) {\n addBinding(key.replace(\"on.\", \"\"), \"=>\" + value);\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n makeEventHandlerShortcut\n} from \"./event\";\nexport var click = makeEventHandlerShortcut(\"click\");\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n createSymbolOrString,\n toggleDomNodeCssClass,\n objectForEach,\n stringTrim\n} from \"@tko/utils\";\nimport {\n unwrap\n} from \"@tko/observable\";\nexport var css = {\n aliases: [\"class\"],\n update: function(element, valueAccessor) {\n var value = unwrap(valueAccessor());\n if (value !== null && typeof value === \"object\") {\n objectForEach(value, function(className, shouldHaveClass) {\n shouldHaveClass = unwrap(shouldHaveClass);\n toggleDomNodeCssClass(element, className, shouldHaveClass);\n });\n } else {\n value = stringTrim(String(value || \"\"));\n toggleDomNodeCssClass(element, element[css.classesWrittenByBindingKey], false);\n element[css.classesWrittenByBindingKey] = value;\n toggleDomNodeCssClass(element, value, true);\n }\n },\n classesWrittenByBindingKey: createSymbolOrString(\"__ko__cssValue\")\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n BindingHandler\n} from \"@tko/bind\";\nexport default class DescendantsCompleteHandler extends BindingHandler {\n onDescendantsComplete() {\n if (typeof this.value === \"function\") {\n this.value(this.$element);\n }\n }\n static get allowVirtualElements() {\n return true;\n }\n}\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n unwrap\n} from \"@tko/observable\";\nexport var enable = {\n update: function(element, valueAccessor) {\n var value = unwrap(valueAccessor());\n if (value && element.disabled) {\n element.removeAttribute(\"disabled\");\n } else if (!value && !element.disabled) {\n element.disabled = true;\n }\n }\n};\nexport var disable = {\n update: function(element, valueAccessor) {\n enable.update(element, function() {\n return !unwrap(valueAccessor());\n });\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n createSymbolOrString,\n triggerEvent,\n registerEventHandler\n} from \"@tko/utils\";\nimport {\n unwrap,\n dependencyDetection\n} from \"@tko/observable\";\nvar hasfocusUpdatingProperty = createSymbolOrString(\"__ko_hasfocusUpdating\");\nvar hasfocusLastValue = createSymbolOrString(\"__ko_hasfocusLastValue\");\nexport var hasfocus = {\n init: function(element, valueAccessor) {\n var handleElementFocusChange = function(isFocused) {\n element[hasfocusUpdatingProperty] = true;\n var ownerDoc = element.ownerDocument;\n if (\"activeElement\" in ownerDoc) {\n var active;\n try {\n active = ownerDoc.activeElement;\n } catch (e) {\n active = ownerDoc.body;\n }\n isFocused = active === element;\n }\n valueAccessor(isFocused, { onlyIfChanged: true });\n element[hasfocusLastValue] = isFocused;\n element[hasfocusUpdatingProperty] = false;\n };\n var handleElementFocusIn = handleElementFocusChange.bind(null, true);\n var handleElementFocusOut = handleElementFocusChange.bind(null, false);\n registerEventHandler(element, \"focus\", handleElementFocusIn);\n registerEventHandler(element, \"focusin\", handleElementFocusIn);\n registerEventHandler(element, \"blur\", handleElementFocusOut);\n registerEventHandler(element, \"focusout\", handleElementFocusOut);\n },\n update: function(element, valueAccessor) {\n var value = !!unwrap(valueAccessor());\n if (!element[hasfocusUpdatingProperty] && element[hasfocusLastValue] !== value) {\n value ? element.focus() : element.blur();\n if (!value && element[hasfocusLastValue]) {\n element.ownerDocument.body.focus();\n }\n dependencyDetection.ignore(triggerEvent, null, [element, value ? \"focusin\" : \"focusout\"]);\n }\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n setHtml\n} from \"@tko/utils\";\nexport var html = {\n init: function() {\n return {\n \"controlsDescendantBindings\": true\n };\n },\n update: function(element, valueAccessor) {\n setHtml(element, valueAccessor());\n },\n allowVirtualElements: true\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n applyBindingsToDescendants\n} from \"@tko/bind\";\nexport default {\n init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {\n var innerContext = bindingContext[\"extend\"](valueAccessor);\n applyBindingsToDescendants(innerContext, element);\n return { \"controlsDescendantBindings\": true };\n },\n allowVirtualElements: true\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n tagNameLower,\n arrayFilter,\n arrayMap,\n setTextContent,\n arrayIndexOf,\n setOptionNodeSelectionState,\n triggerEvent,\n ensureSelectElementIsRenderedCorrectly,\n selectExtensions\n} from \"@tko/utils\";\nimport {\n unwrap,\n dependencyDetection\n} from \"@tko/observable\";\nimport {\n setDomNodeChildrenFromArrayMapping\n} from \"@tko/bind\";\nvar captionPlaceholder = {};\nexport var options = {\n init: function(element) {\n if (tagNameLower(element) !== \"select\") {\n throw new Error(\"options binding applies only to SELECT elements\");\n }\n while (element.length > 0) {\n element.remove(0);\n }\n return { \"controlsDescendantBindings\": true };\n },\n update: function(element, valueAccessor, allBindings) {\n function selectedOptions() {\n return arrayFilter(element.options, function(node) {\n return node.selected;\n });\n }\n var selectWasPreviouslyEmpty = element.length == 0, multiple = element.multiple, previousScrollTop = !selectWasPreviouslyEmpty && multiple ? element.scrollTop : null, unwrappedArray = unwrap(valueAccessor()), valueAllowUnset = allBindings.get(\"valueAllowUnset\") && allBindings[\"has\"](\"value\"), includeDestroyed = allBindings.get(\"optionsIncludeDestroyed\"), arrayToDomNodeChildrenOptions = {}, captionValue, filteredArray, previousSelectedValues = [];\n if (!valueAllowUnset) {\n if (multiple) {\n previousSelectedValues = arrayMap(selectedOptions(), selectExtensions.readValue);\n } else if (element.selectedIndex >= 0) {\n previousSelectedValues.push(selectExtensions.readValue(element.options[element.selectedIndex]));\n }\n }\n if (unwrappedArray) {\n if (typeof unwrappedArray.length === \"undefined\") {\n unwrappedArray = [unwrappedArray];\n }\n filteredArray = arrayFilter(unwrappedArray, function(item) {\n return includeDestroyed || item === void 0 || item === null || !unwrap(item[\"_destroy\"]);\n });\n if (allBindings[\"has\"](\"optionsCaption\")) {\n captionValue = unwrap(allBindings.get(\"optionsCaption\"));\n if (captionValue !== null && captionValue !== void 0) {\n filteredArray.unshift(captionPlaceholder);\n }\n }\n } else {\n }\n function applyToObject(object, predicate, defaultValue) {\n var predicateType = typeof predicate;\n if (predicateType === \"function\") {\n return predicate(object);\n } else if (predicateType == \"string\") {\n return object[predicate];\n } else {\n return defaultValue;\n }\n }\n var itemUpdate = false;\n function optionForArrayItem(arrayEntry, index, oldOptions) {\n if (oldOptions.length) {\n previousSelectedValues = !valueAllowUnset && oldOptions[0].selected ? [selectExtensions.readValue(oldOptions[0])] : [];\n itemUpdate = true;\n }\n var option = element.ownerDocument.createElement(\"option\");\n if (arrayEntry === captionPlaceholder) {\n setTextContent(option, allBindings.get(\"optionsCaption\"));\n selectExtensions.writeValue(option, void 0);\n } else {\n var optionValue = applyToObject(arrayEntry, allBindings.get(\"optionsValue\"), arrayEntry);\n selectExtensions.writeValue(option, unwrap(optionValue));\n var optionText = applyToObject(arrayEntry, allBindings.get(\"optionsText\"), optionValue);\n setTextContent(option, optionText);\n }\n return [option];\n }\n arrayToDomNodeChildrenOptions[\"beforeRemove\"] = function(option) {\n element.removeChild(option);\n };\n function setSelectionCallback(arrayEntry, newOptions) {\n if (itemUpdate && valueAllowUnset) {\n selectExtensions.writeValue(element, unwrap(allBindings.get(\"value\")), true);\n } else if (previousSelectedValues.length) {\n var isSelected = arrayIndexOf(previousSelectedValues, selectExtensions.readValue(newOptions[0])) >= 0;\n setOptionNodeSelectionState(newOptions[0], isSelected);\n if (itemUpdate && !isSelected) {\n dependencyDetection.ignore(triggerEvent, null, [element, \"change\"]);\n }\n }\n }\n var callback = setSelectionCallback;\n if (allBindings[\"has\"](\"optionsAfterRender\") && typeof allBindings.get(\"optionsAfterRender\") === \"function\") {\n callback = function(arrayEntry, newOptions) {\n setSelectionCallback(arrayEntry, newOptions);\n dependencyDetection.ignore(allBindings.get(\"optionsAfterRender\"), null, [newOptions[0], arrayEntry !== captionPlaceholder ? arrayEntry : void 0]);\n };\n }\n setDomNodeChildrenFromArrayMapping(element, filteredArray, optionForArrayItem, arrayToDomNodeChildrenOptions, callback);\n dependencyDetection.ignore(function() {\n if (valueAllowUnset) {\n selectExtensions.writeValue(element, unwrap(allBindings.get(\"value\")), true);\n } else {\n var selectionChanged;\n if (multiple) {\n selectionChanged = previousSelectedValues.length && selectedOptions().length < previousSelectedValues.length;\n } else {\n selectionChanged = previousSelectedValues.length && element.selectedIndex >= 0 ? selectExtensions.readValue(element.options[element.selectedIndex]) !== previousSelectedValues[0] : previousSelectedValues.length || element.selectedIndex >= 0;\n }\n if (selectionChanged) {\n triggerEvent(element, \"change\");\n }\n }\n });\n ensureSelectElementIsRenderedCorrectly(element);\n if (previousScrollTop && Math.abs(previousScrollTop - element.scrollTop) > 20) {\n element.scrollTop = previousScrollTop;\n }\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n arrayForEach,\n setOptionNodeSelectionState,\n arrayIndexOf,\n registerEventHandler,\n tagNameLower,\n selectExtensions\n} from \"@tko/utils\";\nimport {\n unwrap\n} from \"@tko/observable\";\nexport var selectedOptions = {\n after: [\"options\", \"foreach\"],\n init: function(element, valueAccessor, allBindings) {\n registerEventHandler(element, \"change\", function() {\n var value = valueAccessor(), valueToWrite = [];\n arrayForEach(element.getElementsByTagName(\"option\"), function(node) {\n if (node.selected) {\n valueToWrite.push(selectExtensions.readValue(node));\n }\n });\n valueAccessor(valueToWrite);\n });\n },\n update: function(element, valueAccessor) {\n if (tagNameLower(element) != \"select\") {\n throw new Error(\"values binding applies only to SELECT elements\");\n }\n var newValue = unwrap(valueAccessor()), previousScrollTop = element.scrollTop;\n if (newValue && typeof newValue.length === \"number\") {\n arrayForEach(element.getElementsByTagName(\"option\"), function(node) {\n var isSelected = arrayIndexOf(newValue, selectExtensions.readValue(node)) >= 0;\n if (node.selected != isSelected) {\n setOptionNodeSelectionState(node, isSelected);\n }\n });\n }\n element.scrollTop = previousScrollTop;\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n objectForEach,\n options\n} from \"@tko/utils\";\nimport {\n unwrap\n} from \"@tko/observable\";\nconst { jQueryInstance } = options;\nexport var style = {\n update: function(element, valueAccessor) {\n var value = unwrap(valueAccessor() || {});\n objectForEach(value, function(styleName, styleValue) {\n styleValue = unwrap(styleValue);\n if (styleValue === null || styleValue === void 0 || styleValue === false) {\n styleValue = \"\";\n }\n if (jQueryInstance) {\n jQueryInstance(element).css(styleName, styleValue);\n } else {\n styleName = styleName.replace(/-(\\w)/g, (all, letter) => letter.toUpperCase());\n const previousStyle = element.style[styleName];\n element.style[styleName] = styleValue;\n if (styleValue !== previousStyle && element.style[styleName] === previousStyle && !isNaN(styleValue)) {\n element.style[styleName] = styleValue + \"px\";\n }\n }\n });\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n registerEventHandler\n} from \"@tko/utils\";\nexport var submit = {\n init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {\n if (typeof valueAccessor() !== \"function\") {\n throw new Error(\"The value for a submit binding must be a function\");\n }\n registerEventHandler(element, \"submit\", function(event) {\n var handlerReturnValue;\n var value = valueAccessor();\n try {\n handlerReturnValue = value.call(bindingContext[\"$data\"], element);\n } finally {\n if (handlerReturnValue !== true) {\n if (event.preventDefault) {\n event.preventDefault();\n } else {\n event.returnValue = false;\n }\n }\n }\n });\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n setTextContent\n} from \"@tko/utils\";\nexport var text = {\n init: function() {\n return { controlsDescendantBindings: true };\n },\n update: function(element, valueAccessor) {\n setTextContent(element, valueAccessor());\n },\n allowVirtualElements: true\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n domData,\n registerEventHandler,\n ieVersion,\n safeSetTimeout,\n options,\n arrayForEach\n} from \"@tko/utils\";\nimport {\n unwrap\n} from \"@tko/observable\";\nimport {\n BindingHandler\n} from \"@tko/bind\";\nvar parseVersion, operaVersion, safariVersion, firefoxVersion;\nclass TextInput extends BindingHandler {\n get aliases() {\n return \"textinput\";\n }\n constructor(...args) {\n super(...args);\n this.previousElementValue = this.$element.value;\n if (options.debug && this.constructor._forceUpdateOn) {\n arrayForEach(this.constructor._forceUpdateOn, (eventName) => {\n if (eventName.slice(0, 5) === \"after\") {\n this.addEventListener(eventName.slice(5), \"deferUpdateModel\");\n } else {\n this.addEventListener(eventName, \"updateModel\");\n }\n });\n }\n for (const eventName of this.eventsIndicatingSyncValueChange()) {\n this.addEventListener(eventName, \"updateModel\");\n }\n for (const eventName of this.eventsIndicatingDeferValueChange()) {\n this.addEventListener(eventName, \"deferUpdateModel\");\n }\n this.computed(\"updateView\");\n }\n eventsIndicatingSyncValueChange() {\n return [\"input\", \"change\", \"blur\"];\n }\n eventsIndicatingDeferValueChange() {\n return [];\n }\n updateModel(event) {\n const element = this.$element;\n clearTimeout(this.timeoutHandle);\n this.elementValueBeforeEvent = this.timeoutHandle = void 0;\n const elementValue = element.value;\n if (this.previousElementValue !== elementValue) {\n if (options.debug && event) {\n element._ko_textInputProcessedEvent = event.type;\n }\n this.previousElementValue = elementValue;\n this.value = elementValue;\n }\n }\n deferUpdateModel(event) {\n const element = this.$element;\n if (!this.timeoutHandle) {\n this.elementValueBeforeEvent = element.value;\n const handler2 = options.debug ? this.updateModel.bind(this, { type: event.type }) : this.updateModel;\n this.timeoutHandle = safeSetTimeout(handler2, 4);\n }\n }\n updateView() {\n let modelValue = unwrap(this.value);\n if (modelValue === null || modelValue === void 0) {\n modelValue = \"\";\n }\n if (this.elementValueBeforeEvent !== void 0 && modelValue === this.elementValueBeforeEvent) {\n setTimeout(this.updateView.bind(this), 4);\n } else if (this.$element.value !== modelValue) {\n this.previousElementValue = modelValue;\n this.$element.value = modelValue;\n this.previousElementValue = this.$element.value;\n }\n }\n}\nclass TextInputIE extends TextInput {\n constructor(...args) {\n super(...args);\n if (ieVersion < 11) {\n this.addEventListener(\"propertychange\", (event) => event.propertyName === \"value\" && this.updateModel(event));\n }\n if (ieVersion >= 8 && ieVersion < 10) {\n this.watchForSelectionChangeEvent();\n this.addEventListener(\"dragend\", \"deferUpdateModel\");\n }\n }\n eventsIndicatingSyncValueChange() {\n return [...super.eventsIndicatingValueChange(), \"keypress\"];\n }\n selectionChangeHandler(event) {\n const target = this.activeElement;\n const handler2 = target && domData.get(target, selectionChangeHandlerName);\n if (handler2) {\n handler2(event);\n }\n }\n watchForSelectionChangeEvent(element, ieUpdateModel) {\n const ownerDoc = element.ownerDocument;\n if (!domData.get(ownerDoc, selectionChangeRegisteredName)) {\n domData.set(ownerDoc, selectionChangeRegisteredName, true);\n registerEventHandler(ownerDoc, \"selectionchange\", this.selectionChangeHandler.bind(ownerDoc));\n }\n domData.set(element, selectionChangeHandlerName, handler);\n }\n}\nclass TextInputIE9 extends TextInputIE {\n updateModel(...args) {\n this.deferUpdateModel(...args);\n }\n}\nclass TextInputIE8 extends TextInputIE {\n eventsIndicatingValueChange() {\n return [...super.eventsIndicatingValueChange(), \"keyup\", \"keydown\"];\n }\n}\nclass TextInputLegacySafari extends TextInput {\n eventsIndicatingDeferValueChange() {\n return [\"keydown\", \"paste\", \"cut\"];\n }\n}\nclass TextInputLegacyOpera extends TextInput {\n eventsIndicatingDeferValueChange() {\n return [\"keydown\"];\n }\n}\nclass TextInputLegacyFirefox extends TextInput {\n eventsIndicatingValueChange() {\n return [\n ...super.eventsIndicatingSyncValueChange(),\n \"DOMAutoComplete\",\n \"dragdrop\",\n \"drop\"\n ];\n }\n}\nconst w = options.global;\nif (w.navigator) {\n const parseVersion2 = (matches) => matches && parseFloat(matches[1]);\n const userAgent = w.navigator.userAgent;\n const isChrome = userAgent.match(/Chrome\\/([^ ]+)/);\n operaVersion = w.opera && w.opera.version && parseInt(w.opera.version());\n safariVersion = parseVersion2(userAgent.match(/Version\\/([^ ]+) Safari/));\n firefoxVersion = parseVersion2(userAgent.match(/Firefox\\/([^ ]*)/));\n}\nexport const textInput = ieVersion === 8 ? TextInputIE8 : ieVersion === 9 ? TextInputIE9 : ieVersion ? TextInputIE : safariVersion && safariVersion < 5 ? TextInputLegacySafari : operaVersion < 11 ? TextInputLegacyOpera : firefoxVersion && firefoxVersion < 4 ? TextInputLegacyFirefox : TextInput;\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n setElementName\n} from \"@tko/utils\";\nexport var uniqueName = {\n init: function(element, valueAccessor) {\n if (valueAccessor()) {\n var name = \"ko_unique_\" + ++uniqueName.currentIndex;\n setElementName(element, name);\n }\n },\n currentIndex: 0\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n ieVersion,\n stringStartsWith,\n safeSetTimeout,\n tagNameLower,\n arrayForEach,\n selectExtensions\n} from \"@tko/utils\";\nimport {\n unwrap,\n dependencyDetection\n} from \"@tko/observable\";\nimport {\n applyBindingAccessorsToNode,\n BindingHandler\n} from \"@tko/bind\";\nexport class value extends BindingHandler {\n static get after() {\n return [\"options\", \"foreach\", \"template\"];\n }\n constructor(...args) {\n super(...args);\n if (this.isCheckboxOrRadio) {\n applyBindingAccessorsToNode(this.$element, { checkedValue: this.valueAccessor });\n return;\n }\n this.propertyChangedFired = false;\n this.elementValueBeforeEvent = null;\n if (this.ieAutoCompleteHackNeeded) {\n this.addEventListener(\"propertyChange\", () => this.propertyChangedFired = true);\n this.addEventListener(\"focus\", () => this.propertyChangedFired = false);\n this.addEventListener(\"blur\", () => this.propertyChangeFired && this.valueUpdateHandler());\n }\n arrayForEach(this.eventsToCatch, (eventName) => this.registerEvent(eventName));\n if (this.isInput && this.$element.type === \"file\") {\n this.updateFromModel = this.updateFromModelForFile;\n } else {\n this.updateFromModel = this.updateFromModelForValue;\n }\n this.computed(\"updateFromModel\");\n }\n get eventsToCatch() {\n const requestedEventsToCatch = this.allBindings.get(\"valueUpdate\");\n const requestedEventsArray = typeof requestedEventsToCatch === \"string\" ? [requestedEventsToCatch] : requestedEventsToCatch || [];\n return [.../* @__PURE__ */ new Set([\"change\", ...requestedEventsArray])];\n }\n get isInput() {\n return tagNameLower(this.$element) === \"input\";\n }\n get isCheckboxOrRadio() {\n const e = this.$element;\n return this.isInput && (e.type == \"checkbox\" || e.type == \"radio\");\n }\n get ieAutoCompleteHackNeeded() {\n return ieVersion && isInputElement && this.$element.type == \"text\" && this.$element.autocomplete != \"off\" && (!this.$element.form || this.$element.form.autocomplete != \"off\");\n }\n valueUpdateHandler() {\n this.elementValueBeforeEvent = null;\n this.propertyChangedFired = false;\n this.value = selectExtensions.readValue(this.$element);\n }\n registerEvent(eventName) {\n var handler = this.valueUpdateHandler.bind(this);\n if (stringStartsWith(eventName, \"after\")) {\n handler = () => {\n this.elementValueBeforeEvent = selectExtensions.readValue(this.$element);\n safeSetTimeout(this.valueUpdateHandler.bind(this), 0);\n };\n eventName = eventName.substring(5);\n }\n this.addEventListener(eventName, handler);\n }\n updateFromModelForFile() {\n var newValue = unwrap(this.value);\n if (newValue === null || newValue === void 0 || newValue === \"\") {\n this.$element.value = \"\";\n } else {\n dependencyDetection.ignore(this.valueUpdateHandler, this);\n }\n }\n updateFromModelForValue() {\n const element = this.$element;\n var newValue = unwrap(this.value);\n var elementValue = selectExtensions.readValue(element);\n if (this.elementValueBeforeEvent !== null && newValue === this.elementValueBeforeEvent) {\n safeSetTimeout(this.updateFromModel.bind(this), 0);\n return;\n }\n if (newValue === elementValue && elementValue !== void 0) {\n return;\n }\n if (tagNameLower(element) === \"select\") {\n const allowUnset = this.allBindings.get(\"valueAllowUnset\");\n selectExtensions.writeValue(element, newValue, allowUnset);\n if (!allowUnset && newValue !== selectExtensions.readValue(element)) {\n dependencyDetection.ignore(this.valueUpdateHandler, this);\n }\n } else {\n selectExtensions.writeValue(element, newValue);\n }\n }\n}\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n unwrap\n} from \"@tko/observable\";\nexport var visible = {\n update: function(element, valueAccessor) {\n var value = unwrap(valueAccessor());\n var isCurrentlyVisible = !(element.style.display === \"none\");\n if (value && !isCurrentlyVisible) {\n element.style.display = \"\";\n } else if (!value && isCurrentlyVisible) {\n element.style.display = \"none\";\n }\n }\n};\nexport var hidden = {\n update: function(element, valueAccessor) {\n visible.update.call(this, element, () => !unwrap(valueAccessor()));\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n applyBindingsToDescendants\n} from \"@tko/bind\";\nexport var using = {\n init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {\n var innerContext = bindingContext.createChildContext(valueAccessor);\n applyBindingsToDescendants(innerContext, element);\n return { controlsDescendantBindings: true };\n },\n allowVirtualElements: true\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport { attr } from \"./attr\";\nimport { checked, checkedValue } from \"./checked\";\nimport { click } from \"./click\";\nimport { css } from \"./css\";\nimport descendantsComplete from \"./descendantsComplete\";\nimport { enable, disable } from \"./enableDisable\";\nimport { eventHandler, onHandler } from \"./event\";\nimport { hasfocus } from \"./hasfocus\";\nimport { html } from \"./html\";\nimport $let from \"./let\";\nimport { options } from \"./options\";\nimport { selectedOptions } from \"./selectedOptions\";\nimport { style } from \"./style\";\nimport { submit } from \"./submit\";\nimport { text } from \"./text\";\nimport { textInput } from \"./textInput\";\nimport { uniqueName } from \"./uniqueName\";\nimport { value } from \"./value\";\nimport { visible, hidden } from \"./visible\";\nimport { using } from \"./using\";\nexport var bindings = {\n attr,\n checked,\n checkedValue,\n click,\n css,\n \"class\": css,\n descendantsComplete,\n enable,\n \"event\": eventHandler,\n disable,\n hasfocus,\n hasFocus: hasfocus,\n hidden,\n html,\n \"let\": $let,\n on: onHandler,\n options,\n selectedOptions,\n style,\n submit,\n text,\n textInput,\n textinput: textInput,\n uniqueName,\n using,\n value,\n visible\n};\n", "// @tko/binding.if \uD83E\uDD4A 4.0.0-beta1.0 ESM\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\nimport {\n cloneNodes,\n virtualElements,\n cleanNode,\n domData\n} from \"@tko/utils\";\nimport {\n dependencyDetection,\n observable\n} from \"@tko/observable\";\nimport {\n applyBindingsToDescendants,\n AsyncBindingHandler\n} from \"@tko/bind\";\nexport default class ConditionalBindingHandler extends AsyncBindingHandler {\n constructor(params) {\n super(params);\n this.hasElse = this.detectElse(this.$element);\n const elseChainSatisfied = this.completesElseChain = observable();\n domData.set(this.$element, \"conditional\", { elseChainSatisfied });\n }\n getIfElseNodes() {\n if (this.ifElseNodes) {\n return this.ifElseNodes;\n }\n if (dependencyDetection.getDependenciesCount() || this.hasElse) {\n return this.cloneIfElseNodes(this.$element, this.hasElse);\n }\n }\n render() {\n const isFirstRender = !this.ifElseNodes;\n const { shouldDisplay } = this.renderStatus();\n this.ifElseNodes = this.getIfElseNodes() || {};\n if (shouldDisplay) {\n const useOriginalNodes = isFirstRender && !this.hasElse;\n this.renderAndApplyBindings(this.ifElseNodes.ifNodes, useOriginalNodes);\n } else if (this.hasElse) {\n this.renderAndApplyBindings(this.ifElseNodes.elseNodes);\n } else {\n virtualElements.emptyNode(this.$element);\n }\n }\n renderAndApplyBindings(nodes, useOriginalNodes) {\n return __async(this, null, function* () {\n if (!useOriginalNodes) {\n virtualElements.setDomNodeChildren(this.$element, cloneNodes(nodes));\n }\n const bound = yield applyBindingsToDescendants(this.bindingContext, this.$element);\n this.completeBinding(bound);\n });\n }\n get elseChainIsAlreadySatisfied() {\n return false;\n }\n isElseNode(node) {\n return node.nodeType === 8 && node.nodeValue.trim().toLowerCase() === \"else\";\n }\n detectElse(element) {\n var children = virtualElements.childNodes(element);\n for (var i = 0, j = children.length; i < j; ++i) {\n if (this.isElseNode(children[i])) {\n return true;\n }\n }\n return false;\n }\n cloneIfElseNodes(element, hasElse) {\n const children = virtualElements.childNodes(element);\n const ifNodes = [];\n const elseNodes = [];\n let target = ifNodes;\n for (var i = 0, j = children.length; i < j; ++i) {\n if (hasElse && this.isElseNode(children[i])) {\n target = elseNodes;\n hasElse = false;\n } else {\n target.push(cleanNode(children[i].cloneNode(true)));\n }\n }\n return { ifNodes, elseNodes };\n }\n get controlsDescendants() {\n return true;\n }\n static get allowVirtualElements() {\n return true;\n }\n}\n", "// @tko/binding.if \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n unwrap\n} from \"@tko/observable\";\nimport ConditionalBindingHandler from \"./ConditionalBindingHandler\";\nexport class IfBindingHandler extends ConditionalBindingHandler {\n constructor(...args) {\n super(...args);\n this.ifCondition = this.computed(() => !!unwrap(this.value));\n this.computed(\"render\");\n }\n shouldDisplayIf() {\n return this.ifCondition();\n }\n get bindingContext() {\n return this.ifCondition.isActive() ? this.$context.extend(() => {\n this.ifCondition();\n return null;\n }) : this.$context;\n }\n renderStatus() {\n let shouldDisplay = this.shouldDisplayIf();\n if (this.elseChainIsAlreadySatisfied) {\n shouldDisplay = false;\n this.completesElseChain(true);\n } else {\n this.completesElseChain(shouldDisplay);\n }\n return { shouldDisplay };\n }\n}\nexport class UnlessBindingHandler extends IfBindingHandler {\n shouldDisplayIf() {\n return !super.shouldDisplayIf();\n }\n}\n", "// @tko/binding.if \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n options\n} from \"@tko/utils\";\nimport {\n unwrap\n} from \"@tko/observable\";\nimport ConditionalBindingHandler from \"./ConditionalBindingHandler\";\nexport class WithBindingHandler extends ConditionalBindingHandler {\n constructor(...args) {\n super(...args);\n this.asOption = this.allBindings.get(\"as\");\n const conditionalFn = this.asOption && !options.createChildContextWithAs ? () => Boolean(unwrap(this.value)) : () => unwrap(this.value);\n this.conditional = this.computed(conditionalFn);\n this.computed(\"render\");\n }\n get bindingContext() {\n if (!this.asOption) {\n return this.$context.createChildContext(this.valueAccessor);\n }\n return options.createChildContextWithAs ? this.$context.createChildContext(this.value, this.asOption) : this.$context.extend({ [this.asOption]: this.value });\n }\n renderStatus() {\n const shouldDisplay = Boolean(this.conditional());\n return { shouldDisplay };\n }\n}\n", "// @tko/binding.if \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n virtualElements,\n domData\n} from \"@tko/utils\";\nimport {\n unwrap\n} from \"@tko/observable\";\nimport {\n IfBindingHandler\n} from \"./ifUnless\";\nexport class ElseBindingHandler extends IfBindingHandler {\n shouldDisplayIf() {\n return super.shouldDisplayIf() || this.value === void 0;\n }\n get elseChainIsAlreadySatisfied() {\n if (!this._elseChain) {\n this._elseChain = this.readElseChain();\n }\n return unwrap(this._elseChain.elseChainSatisfied);\n }\n readElseChain() {\n let node = this.$element;\n do {\n node = node.previousSibling;\n } while (node && node.nodeType !== 1 && node.nodeType !== 8);\n if (!node) {\n return false;\n }\n if (node.nodeType === 8) {\n node = virtualElements.previousSibling(node);\n }\n return domData.get(node, \"conditional\") || {};\n }\n}\n", "// @tko/binding.if \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n IfBindingHandler,\n UnlessBindingHandler\n} from \"./ifUnless\";\nimport {\n WithBindingHandler\n} from \"./with\";\nimport {\n ElseBindingHandler\n} from \"./else\";\nexport const bindings = {\n \"if\": IfBindingHandler,\n \"with\": WithBindingHandler,\n ifnot: UnlessBindingHandler,\n unless: UnlessBindingHandler,\n \"else\": ElseBindingHandler,\n \"elseif\": ElseBindingHandler\n};\n", "// @tko/binding.foreach \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n arrayForEach,\n cleanNode,\n options,\n virtualElements,\n createSymbolOrString,\n domData,\n domNodeIsContainedBy\n} from \"@tko/utils\";\nimport {\n isObservable,\n unwrap,\n observable\n} from \"@tko/observable\";\nimport {\n contextFor,\n applyBindingsToDescendants,\n AsyncBindingHandler\n} from \"@tko/bind\";\nconst MAX_LIST_SIZE = 9007199254740991;\nfunction isPlainObject(o) {\n return !!o && typeof o === \"object\" && o.constructor === Object;\n}\nconst supportsDocumentFragment = options.document && typeof options.document.createDocumentFragment === \"function\";\nfunction makeTemplateNode(sourceNode) {\n var container = document.createElement(\"div\");\n var parentNode;\n if (sourceNode.content) {\n parentNode = sourceNode.content;\n } else if (sourceNode.tagName === \"SCRIPT\") {\n parentNode = document.createElement(\"div\");\n parentNode.innerHTML = sourceNode.text;\n } else {\n parentNode = sourceNode;\n }\n arrayForEach(virtualElements.childNodes(parentNode), function(child) {\n if (child) {\n container.insertBefore(child.cloneNode(true), null);\n }\n });\n return container;\n}\nfunction valueToChangeAddItem(value, index) {\n return {\n status: \"added\",\n value,\n index\n };\n}\nconst PENDING_DELETE_INDEX_SYM = createSymbolOrString(\"_ko_ffe_pending_delete_index\");\nexport class ForEachBinding extends AsyncBindingHandler {\n constructor(params) {\n super(params);\n const settings = {};\n if (isPlainObject(this.value)) {\n Object.assign(settings, this.value);\n }\n this.as = settings.as || this.allBindings.get(\"as\");\n this.data = settings.data || (unwrap(this.$context.$rawData) === this.value ? this.$context.$rawData : this.value);\n this.container = virtualElements.isStartComment(this.$element) ? this.$element.parentNode : this.$element;\n this.generateContext = this.createContextGenerator(this.as);\n this.$indexHasBeenRequested = false;\n this.templateNode = makeTemplateNode(settings.templateNode || (settings.name ? document.getElementById(settings.name).cloneNode(true) : this.$element));\n [\"afterAdd\", \"beforeRemove\", \"afterQueueFlush\", \"beforeQueueFlush\"].forEach((p) => {\n this[p] = settings[p] || this.allBindings.get(p);\n });\n this.changeQueue = [];\n this.firstLastNodesList = [];\n this.indexesToDelete = [];\n this.rendering_queued = false;\n this.pendingDeletes = [];\n this.isNotEmpty = observable(Boolean(unwrap(this.data).length));\n domData.set(this.$element, \"conditional\", {\n elseChainSatisfied: this.isNotEmpty\n });\n virtualElements.emptyNode(this.$element);\n const primeData = unwrap(this.data);\n if (primeData && primeData.map) {\n this.onArrayChange(primeData.map(valueToChangeAddItem), true);\n } else {\n this.completeBinding();\n }\n if (isObservable(this.data)) {\n if (!this.data.indexOf) {\n this.data = this.data.extend({ trackArrayChanges: true });\n }\n this.changeSubs = this.data.subscribe(this.onArrayChange, this, \"arrayChange\");\n }\n }\n dispose() {\n if (this.changeSubs) {\n this.changeSubs.dispose();\n }\n this.flushPendingDeletes();\n }\n onArrayChange(changeSet, isInitial) {\n var changeMap = {\n added: [],\n deleted: []\n };\n for (var i = 0, len = changeSet.length; i < len; i++) {\n if (changeMap.added.length && changeSet[i].status === \"added\") {\n var lastAdd = changeMap.added[changeMap.added.length - 1];\n var lastIndex = lastAdd.isBatch ? lastAdd.index + lastAdd.values.length - 1 : lastAdd.index;\n if (lastIndex + 1 === changeSet[i].index) {\n if (!lastAdd.isBatch) {\n lastAdd = {\n isBatch: true,\n status: \"added\",\n index: lastAdd.index,\n values: [lastAdd.value]\n };\n changeMap.added.splice(changeMap.added.length - 1, 1, lastAdd);\n }\n lastAdd.values.push(changeSet[i].value);\n continue;\n }\n }\n changeMap[changeSet[i].status].push(changeSet[i]);\n }\n if (changeMap.deleted.length > 0) {\n this.changeQueue.push.apply(this.changeQueue, changeMap.deleted);\n this.changeQueue.push({ status: \"clearDeletedIndexes\" });\n }\n this.changeQueue.push.apply(this.changeQueue, changeMap.added);\n if (this.changeQueue.length > 0 && !this.rendering_queued) {\n this.rendering_queued = true;\n if (isInitial) {\n this.processQueue();\n } else {\n ForEachBinding.animateFrame.call(window, () => this.processQueue());\n }\n }\n }\n startQueueFlush() {\n if (typeof this.beforeQueueFlush === \"function\") {\n this.beforeQueueFlush(this.changeQueue);\n }\n }\n endQueueFlush() {\n if (typeof this.afterQueueFlush === \"function\") {\n this.afterQueueFlush(this.changeQueue);\n }\n }\n processQueue() {\n var isEmpty = !unwrap(this.data).length;\n var lowestIndexChanged = MAX_LIST_SIZE;\n this.startQueueFlush();\n arrayForEach(this.changeQueue, (changeItem) => {\n if (typeof changeItem.index === \"number\") {\n lowestIndexChanged = Math.min(lowestIndexChanged, changeItem.index);\n }\n this[changeItem.status](changeItem);\n });\n this.flushPendingDeletes();\n this.rendering_queued = false;\n if (this.$indexHasBeenRequested) {\n this.updateIndexes(lowestIndexChanged);\n }\n this.endQueueFlush();\n this.changeQueue = [];\n if (isEmpty !== !this.isNotEmpty()) {\n this.isNotEmpty(!isEmpty);\n }\n }\n _first$indexRequest(ctx$indexRequestedFrom) {\n this.$indexHasBeenRequested = true;\n for (let i = 0, len = this.firstLastNodesList.length; i < len; ++i) {\n const ctx = this.getContextStartingFrom(this.firstLastNodesList[i].first);\n if (ctx) {\n ctx.$index = observable(i);\n }\n }\n return ctx$indexRequestedFrom.$index();\n }\n _contextExtensions($ctx) {\n Object.assign($ctx, { $list: this.data });\n if (this.$indexHasBeenRequested) {\n $ctx.$index = $ctx.$index || observable();\n } else {\n Object.defineProperty($ctx, \"$index\", {\n value: () => this._first$indexRequest($ctx),\n configurable: true,\n writable: true\n });\n }\n return $ctx;\n }\n createContextGenerator(as) {\n const $ctx = this.$context;\n if (as) {\n return (v) => this._contextExtensions($ctx.extend({ [as]: v }));\n } else {\n return (v) => $ctx.createChildContext(v, null, (ctx) => this._contextExtensions(ctx));\n }\n }\n updateFirstLastNodesList(index, children) {\n const first = children[0];\n const last = children[children.length - 1];\n this.firstLastNodesList.splice(index, 0, { first, last });\n }\n added(changeItem) {\n var index = changeItem.index;\n var valuesToAdd = changeItem.isBatch ? changeItem.values : [changeItem.value];\n var referenceElement = this.getLastNodeBeforeIndex(index);\n const allChildNodes = [];\n const asyncBindingResults = [];\n var children;\n for (var i = 0, len = valuesToAdd.length; i < len; ++i) {\n var pendingDelete = this.getPendingDeleteFor(valuesToAdd[i]);\n if (pendingDelete && pendingDelete.nodesets.length) {\n children = pendingDelete.nodesets.pop();\n this.updateFirstLastNodesList(index + i, children);\n } else {\n var templateClone = this.templateNode.cloneNode(true);\n children = virtualElements.childNodes(templateClone);\n this.updateFirstLastNodesList(index + i, children);\n const bindingResult = applyBindingsToDescendants(this.generateContext(valuesToAdd[i]), templateClone);\n asyncBindingResults.push(bindingResult);\n }\n allChildNodes.push(...children);\n }\n if (typeof this.afterAdd === \"function\") {\n this.afterAdd({\n nodeOrArrayInserted: this.insertAllAfter(allChildNodes, referenceElement),\n foreachInstance: this\n });\n } else {\n this.insertAllAfter(allChildNodes, referenceElement);\n }\n this.completeBinding(Promise.all(asyncBindingResults));\n }\n getNodesForIndex(index) {\n let result = [];\n let ptr = this.firstLastNodesList[index].first;\n let last = this.firstLastNodesList[index].last;\n result.push(ptr);\n while (ptr && ptr !== last) {\n ptr = ptr.nextSibling;\n result.push(ptr);\n }\n return result;\n }\n getLastNodeBeforeIndex(index) {\n if (index < 1 || index - 1 >= this.firstLastNodesList.length) {\n return null;\n }\n return this.firstLastNodesList[index - 1].last;\n }\n activeChildElement(node) {\n var active = document.activeElement;\n if (domNodeIsContainedBy(active, node)) {\n return active;\n }\n }\n insertAllAfter(nodeOrNodeArrayToInsert, insertAfterNode) {\n let frag;\n let len;\n let i;\n let active = null;\n let containerNode = this.$element;\n if (nodeOrNodeArrayToInsert.nodeType === void 0 && nodeOrNodeArrayToInsert.length === void 0) {\n throw new Error(\"Expected a single node or a node array\");\n }\n if (nodeOrNodeArrayToInsert.nodeType !== void 0) {\n active = this.activeChildElement(nodeOrNodeArrayToInsert);\n virtualElements.insertAfter(containerNode, nodeOrNodeArrayToInsert, insertAfterNode);\n return [nodeOrNodeArrayToInsert];\n } else if (nodeOrNodeArrayToInsert.length === 1) {\n active = this.activeChildElement(nodeOrNodeArrayToInsert[0]);\n virtualElements.insertAfter(containerNode, nodeOrNodeArrayToInsert[0], insertAfterNode);\n } else if (supportsDocumentFragment) {\n frag = document.createDocumentFragment();\n for (i = 0, len = nodeOrNodeArrayToInsert.length; i !== len; ++i) {\n active = active || this.activeChildElement(nodeOrNodeArrayToInsert[i]);\n frag.appendChild(nodeOrNodeArrayToInsert[i]);\n }\n virtualElements.insertAfter(containerNode, frag, insertAfterNode);\n } else {\n for (i = nodeOrNodeArrayToInsert.length - 1; i >= 0; --i) {\n active = active || this.activeChildElement(nodeOrNodeArrayToInsert[i]);\n var child = nodeOrNodeArrayToInsert[i];\n if (!child) {\n break;\n }\n virtualElements.insertAfter(containerNode, child, insertAfterNode);\n }\n }\n if (active) {\n active.focus();\n }\n return nodeOrNodeArrayToInsert;\n }\n shouldDelayDeletion(data) {\n return data && (typeof data === \"object\" || typeof data === \"function\");\n }\n getPendingDeleteFor(data) {\n var index = data && data[PENDING_DELETE_INDEX_SYM];\n if (index === void 0)\n return null;\n return this.pendingDeletes[index];\n }\n getOrCreatePendingDeleteFor(data) {\n var pd = this.getPendingDeleteFor(data);\n if (pd) {\n return pd;\n }\n pd = {\n data,\n nodesets: []\n };\n data[PENDING_DELETE_INDEX_SYM] = this.pendingDeletes.length;\n this.pendingDeletes.push(pd);\n return pd;\n }\n deleted(changeItem) {\n if (this.shouldDelayDeletion(changeItem.value)) {\n let pd = this.getOrCreatePendingDeleteFor(changeItem.value);\n pd.nodesets.push(this.getNodesForIndex(changeItem.index));\n } else {\n this.removeNodes(this.getNodesForIndex(changeItem.index));\n }\n this.indexesToDelete.push(changeItem.index);\n }\n removeNodes(nodes) {\n if (!nodes.length) {\n return;\n }\n function removeFn() {\n var parent = nodes[0].parentNode;\n for (var i = nodes.length - 1; i >= 0; --i) {\n cleanNode(nodes[i]);\n parent.removeChild(nodes[i]);\n }\n }\n if (this.beforeRemove) {\n var beforeRemoveReturn = this.beforeRemove({\n nodesToRemove: nodes,\n foreachInstance: this\n }) || {};\n if (typeof beforeRemoveReturn.then === \"function\") {\n beforeRemoveReturn.then(removeFn, options.onError);\n }\n } else {\n removeFn();\n }\n }\n flushPendingDeletes() {\n for (let i = 0, len = this.pendingDeletes.length; i !== len; ++i) {\n var pd = this.pendingDeletes[i];\n while (pd.nodesets.length) {\n this.removeNodes(pd.nodesets.pop());\n }\n if (pd.data && pd.data[PENDING_DELETE_INDEX_SYM] !== void 0) {\n delete pd.data[PENDING_DELETE_INDEX_SYM];\n }\n }\n this.pendingDeletes = [];\n }\n clearDeletedIndexes() {\n for (let i = this.indexesToDelete.length - 1; i >= 0; --i) {\n this.firstLastNodesList.splice(this.indexesToDelete[i], 1);\n }\n this.indexesToDelete = [];\n }\n updateIndexes(fromIndex) {\n let ctx;\n for (let i = fromIndex, len = this.firstLastNodesList.length; i < len; ++i) {\n ctx = this.getContextStartingFrom(this.firstLastNodesList[i].first);\n if (ctx) {\n ctx.$index(i);\n }\n }\n }\n getContextStartingFrom(node) {\n let ctx;\n while (node) {\n ctx = contextFor(node);\n if (ctx) {\n return ctx;\n }\n node = node.nextSibling;\n }\n }\n static setSync(toggle) {\n const w = options.global;\n if (toggle) {\n ForEachBinding.animateFrame = function(frame) {\n frame();\n };\n } else {\n ForEachBinding.animateFrame = w.requestAnimationFrame || w.webkitRequestAnimationFrame || w.mozRequestAnimationFrame || w.msRequestAnimationFrame || function(cb) {\n return w.setTimeout(cb, 1e3 / 60);\n };\n }\n }\n get controlsDescendants() {\n return true;\n }\n static get allowVirtualElements() {\n return true;\n }\n static get ForEach() {\n return this;\n }\n static get PENDING_DELETE_INDEX_SYM() {\n return PENDING_DELETE_INDEX_SYM;\n }\n}\n", "// @tko/binding.foreach \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport { ForEachBinding } from \"./foreach\";\nexport var bindings = {\n foreach: ForEachBinding\n};\nForEachBinding.setSync(false);\n", "// @tko/utils.jsx \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n cleanNode\n} from \"@tko/utils\";\nconst DELAY_MS = 25;\nconst MAX_CLEAN_AT_ONCE = 1e3;\nconst cleanNodeQueue = [];\nlet cleanNodeTimeoutID = null;\nexport function queueCleanNode(node) {\n cleanNodeQueue.push(node);\n triggerCleanTimeout();\n}\nfunction triggerCleanTimeout() {\n if (!cleanNodeTimeoutID && cleanNodeQueue.length) {\n cleanNodeTimeoutID = setTimeout(flushCleanQueue, DELAY_MS);\n }\n}\nfunction flushCleanQueue() {\n cleanNodeTimeoutID = null;\n const nodes = cleanNodeQueue.splice(0, MAX_CLEAN_AT_ONCE);\n for (const node of nodes) {\n cleanNode(node);\n }\n triggerCleanTimeout();\n}\n", "// @tko/utils.jsx \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport { LifeCycle } from \"@tko/lifecycle\";\nimport {\n safeStringify,\n isThenable\n} from \"@tko/utils\";\nimport {\n applyBindings,\n contextFor\n} from \"@tko/bind\";\nimport {\n isObservable,\n unwrap,\n observable\n} from \"@tko/observable\";\nimport {\n isComputed\n} from \"@tko/computed\";\nimport {\n NativeProvider,\n NATIVE_BINDINGS\n} from \"@tko/provider.native\";\nimport {\n queueCleanNode\n} from \"./jsxClean\";\nexport const ORIGINAL_JSX_SYM = Symbol(\"Knockout - Original JSX\");\nconst NAMESPACES = {\n svg: \"http://www.w3.org/2000/svg\",\n html: \"http://www.w3.org/1999/xhtml\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xlink: \"http://www.w3.org/1999/xlink\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\nfunction isIterable(v) {\n return v && typeof v[Symbol.iterator] === \"function\";\n}\nexport class JsxObserver extends LifeCycle {\n constructor(jsxOrObservable, parentNode, insertBefore = null, xmlns, noInitialBinding) {\n super();\n const parentNodeIsComment = parentNode.nodeType === 8;\n const parentNodeTarget = this.getParentTarget(parentNode);\n if (isObservable(jsxOrObservable)) {\n jsxOrObservable.extend({ trackArrayChanges: true });\n this.subscribe(jsxOrObservable, this.observableArrayChange, \"arrayChange\");\n if (!insertBefore) {\n const insertAt = parentNodeIsComment ? parentNode.nextSibling : null;\n insertBefore = this.createComment(\"O\");\n parentNodeTarget.insertBefore(insertBefore, insertAt);\n } else {\n this.adoptedInsertBefore = true;\n }\n }\n if (parentNodeIsComment && !insertBefore) {\n insertBefore = parentNode.nextSibling;\n this.adoptedInsertBefore = true;\n }\n this.anchorTo(insertBefore || parentNode);\n Object.assign(this, {\n insertBefore,\n noInitialBinding,\n parentNode,\n parentNodeTarget,\n xmlns,\n nodeArrayOrObservableAtIndex: [],\n subscriptionsForNode: /* @__PURE__ */ new Map()\n });\n const jsx = unwrap(jsxOrObservable);\n const computed = isComputed(jsxOrObservable);\n if (computed || jsx !== null && jsx !== void 0) {\n this.observableArrayChange(this.createInitialAdditions(jsx));\n }\n this.noInitialBinding = false;\n }\n getParentTarget(parentNode) {\n if (\"content\" in parentNode) {\n return parentNode.content;\n }\n if (parentNode.nodeType === 8) {\n return parentNode.parentNode;\n }\n return parentNode;\n }\n remove() {\n this.dispose();\n }\n dispose() {\n super.dispose();\n const ib = this.insertBefore;\n const insertBeforeIsChild = ib && this.parentNodeTarget === ib.parentNode;\n if (insertBeforeIsChild && !this.adoptedInsertBefore) {\n this.parentNodeTarget.removeChild(ib);\n }\n this.removeAllPriorNodes();\n Object.assign(this, {\n parentNode: null,\n parentNodeTarget: null,\n insertBefore: null,\n nodeArrayOrObservableAtIndex: []\n });\n for (const subscriptions of this.subscriptionsForNode.values()) {\n subscriptions.forEach((s) => s.dispose());\n }\n this.subscriptionsForNode.clear();\n }\n createInitialAdditions(possibleIterable) {\n const status = \"added\";\n if (typeof possibleIteratable === \"object\" && posibleIterable !== null && Symbol.iterator in possibleIterable) {\n possibleIterable = [...possibleIterable];\n }\n return Array.isArray(possibleIterable) ? possibleIterable.map((value, index) => ({ index, status, value })) : [{ status, index: 0, value: possibleIterable }];\n }\n observableArrayChange(changes) {\n let adds = [];\n let dels = [];\n for (const index in changes) {\n const change = changes[index];\n if (change.status === \"added\") {\n adds.push([change.index, change.value]);\n } else {\n dels.unshift([change.index, change.value]);\n }\n }\n dels.forEach((change) => this.delChange(...change));\n adds.forEach((change) => this.addChange(...change));\n }\n addChange(index, jsx) {\n this.nodeArrayOrObservableAtIndex.splice(index, 0, this.injectNode(jsx, this.lastNodeFor(index)));\n }\n injectNode(jsx, nextNode) {\n let nodeArrayOrObservable;\n if (isObservable(jsx)) {\n const { parentNode, xmlns } = this;\n const observer = new JsxObserver(jsx, parentNode, nextNode, xmlns, this.noInitialBinding);\n nodeArrayOrObservable = [observer];\n } else if (typeof jsx !== \"string\" && isIterable(jsx)) {\n nodeArrayOrObservable = [];\n for (const child of jsx) {\n nodeArrayOrObservable.unshift(this.injectNode(child, nextNode));\n }\n } else {\n const $context = contextFor(this.parentNode);\n const isInsideTemplate = \"content\" in this.parentNode;\n const shouldApplyBindings = $context && !isInsideTemplate && !this.noInitialBinding;\n if (Array.isArray(jsx)) {\n nodeArrayOrObservable = jsx.map((j) => this.anyToNode(j));\n } else {\n nodeArrayOrObservable = [this.anyToNode(jsx)];\n }\n for (const node of nodeArrayOrObservable) {\n this.parentNodeTarget.insertBefore(node, nextNode);\n if (shouldApplyBindings && this.canApplyBindings(node)) {\n applyBindings($context, node);\n }\n }\n }\n return nodeArrayOrObservable;\n }\n canApplyBindings(node) {\n return node.nodeType === 1 || node.nodeType === 8;\n }\n delChange(index) {\n this.removeNodeArrayOrObservable(this.nodeArrayOrObservableAtIndex[index]);\n this.nodeArrayOrObservableAtIndex.splice(index, 1);\n }\n getSubscriptionsForNode(node) {\n if (!this.subscriptionsForNode.has(node)) {\n const subscriptions = [];\n this.subscriptionsForNode.set(node, subscriptions);\n return subscriptions;\n }\n return this.subscriptionsForNode.get(node);\n }\n isJsx(jsx) {\n return typeof jsx.elementName === \"string\" && \"children\" in jsx && \"attributes\" in jsx;\n }\n anyToNode(any) {\n if (isThenable(any)) {\n return this.futureJsxNode(any);\n }\n switch (typeof any) {\n case \"object\":\n if (any instanceof Error) {\n return this.createComment(any.toString());\n }\n if (any === null) {\n return this.createComment(String(any));\n }\n if (any instanceof Node) {\n return this.cloneJSXorMoveNode(any);\n }\n if (Symbol.iterator in any) {\n return any;\n }\n break;\n case \"function\":\n return this.anyToNode(any());\n case \"undefined\":\n case \"symbol\":\n return this.createComment(String(any));\n case \"string\":\n return this.createTextNode(any);\n case \"boolean\":\n case \"number\":\n case \"bigint\":\n default:\n return this.createTextNode(String(any));\n }\n return this.isJsx(any) ? this.jsxToNode(any) : this.createComment(safeStringify(any));\n }\n createComment(string) {\n const node = document.createComment(string);\n node[NATIVE_BINDINGS] = true;\n return node;\n }\n createTextNode(string) {\n const node = document.createTextNode(string);\n node[NATIVE_BINDINGS] = true;\n return node;\n }\n cloneJSXorMoveNode(node) {\n return ORIGINAL_JSX_SYM in node ? this.jsxToNode(node[ORIGINAL_JSX_SYM]) : node;\n }\n jsxToNode(jsx) {\n const xmlns = jsx.attributes.xmlns || NAMESPACES[jsx.elementName] || this.xmlns;\n const node = document.createElementNS(xmlns || NAMESPACES.html, jsx.elementName);\n node[ORIGINAL_JSX_SYM] = jsx;\n if (isObservable(jsx.attributes)) {\n const subscriptions = this.getSubscriptionsForNode(node);\n subscriptions.push(jsx.attributes.subscribe((attrs) => {\n this.updateAttributes(node, unwrap(attrs));\n }));\n }\n this.updateAttributes(node, unwrap(jsx.attributes));\n this.addDisposable(new JsxObserver(jsx.children, node, null, xmlns, this.noInitialBinding));\n return node;\n }\n futureJsxNode(promise) {\n const obs = observable();\n promise.then(obs).catch((e) => obs(e instanceof Error ? e : Error(e)));\n const jo = new JsxObserver(obs, this.parentNode, null, this.xmlns, this.noInitialBinding);\n this.addDisposable(jo);\n return jo.insertBefore;\n }\n updateAttributes(node, attributes) {\n const subscriptions = this.getSubscriptionsForNode(node);\n const toRemove = new Set([...node.attributes].map((n) => n.name));\n for (const [name, value] of Object.entries(attributes || {})) {\n toRemove.delete(name);\n if (isObservable(value)) {\n subscriptions.push(value.subscribe((attr) => this.setNodeAttribute(node, name, value)));\n }\n this.setNodeAttribute(node, name, value);\n }\n for (const name of toRemove) {\n this.setNodeAttribute(node, name, void 0);\n }\n }\n getNamespaceOfAttribute(attr) {\n const [prefix, ...unqualifiedName] = attr.split(\":\");\n if (prefix === \"xmlns\" || unqualifiedName.length && NAMESPACES[prefix]) {\n return NAMESPACES[prefix];\n }\n return null;\n }\n setNodeAttribute(node, name, valueOrObservable) {\n const value = unwrap(valueOrObservable);\n NativeProvider.addValueToNode(node, name, valueOrObservable);\n if (value === void 0) {\n node.removeAttributeNS(null, name);\n } else if (isThenable(valueOrObservable)) {\n Promise.resolve(valueOrObservable).then((v) => this.setNodeAttribute(node, name, v));\n } else {\n const ns = this.getNamespaceOfAttribute(name);\n node.setAttributeNS(ns, name, String(value));\n }\n }\n lastNodeFor(index) {\n const nodesAtIndex = this.nodeArrayOrObservableAtIndex[index] || [];\n const [lastNodeOfPrior] = nodesAtIndex.slice(-1);\n const insertBefore = lastNodeOfPrior instanceof JsxObserver ? lastNodeOfPrior.insertBefore : lastNodeOfPrior || this.insertBefore;\n if (insertBefore) {\n return insertBefore.parentNode ? insertBefore : null;\n }\n return null;\n }\n removeAllPriorNodes() {\n const { nodeArrayOrObservableAtIndex } = this;\n while (nodeArrayOrObservableAtIndex.length) {\n this.removeNodeArrayOrObservable(nodeArrayOrObservableAtIndex.pop());\n }\n }\n removeNodeArrayOrObservable(nodeArrayOrObservable) {\n for (const nodeOrObservable of nodeArrayOrObservable) {\n if (nodeOrObservable instanceof JsxObserver) {\n nodeOrObservable.dispose();\n continue;\n }\n const node = nodeOrObservable;\n delete node[ORIGINAL_JSX_SYM];\n this.detachAndDispose(node);\n const subscriptions = this.subscriptionsForNode.get(node);\n if (subscriptions) {\n subscriptions.forEach((s) => s.dispose());\n this.subscriptionsForNode.delete(node);\n }\n }\n }\n detachAndDispose(node) {\n if (isIterable(node)) {\n for (const child of node) {\n this.detachAndDispose(child);\n }\n } else {\n node.remove();\n }\n queueCleanNode(node);\n }\n}\nexport default JsxObserver;\n", "// @tko/utils.jsx \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n isObservable,\n unwrap\n} from \"@tko/observable\";\nimport {\n ORIGINAL_JSX_SYM\n} from \"./JsxObserver\";\nexport function maybeJsx(possibleJsx) {\n if (isObservable(possibleJsx)) {\n return true;\n }\n const value = unwrap(possibleJsx);\n if (!value) {\n return false;\n }\n if (value.elementName) {\n return true;\n }\n if (!Array.isArray(value) || !value.length) {\n return false;\n }\n if (value[0] instanceof window.Node) {\n return false;\n }\n return true;\n}\nexport function getOriginalJsxForNode(node) {\n return node[ORIGINAL_JSX_SYM];\n}\nexport function createElement(elementName, attributes, ...children) {\n return elementName === Fragment ? children : {\n elementName,\n attributes: attributes || {},\n children: [...children]\n };\n}\nexport const Fragment = Symbol(\"JSX Fragment\");\n", "// @tko/binding.component \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n virtualElements,\n makeArray,\n cloneNodes\n} from \"@tko/utils\";\nimport {\n unwrap\n} from \"@tko/observable\";\nimport {\n DescendantBindingHandler\n} from \"@tko/bind\";\nimport {\n JsxObserver,\n maybeJsx\n} from \"@tko/utils.jsx\";\nimport {\n NativeProvider\n} from \"@tko/provider.native\";\nimport { LifeCycle } from \"@tko/lifecycle\";\nimport registry from \"@tko/utils.component\";\nvar componentLoadingOperationUniqueId = 0;\nexport default class ComponentBinding extends DescendantBindingHandler {\n constructor(params) {\n super(params);\n this.originalChildNodes = makeArray(virtualElements.childNodes(this.$element));\n this.computed(\"computeApplyComponent\");\n }\n cloneTemplateIntoElement(componentName, template, element) {\n if (!template) {\n throw new Error(\"Component '\" + componentName + \"' has no template\");\n }\n if (maybeJsx(template)) {\n virtualElements.emptyNode(element);\n this.addDisposable(new JsxObserver(template, element, null, void 0, true));\n } else {\n const clonedNodesArray = cloneNodes(template);\n virtualElements.setDomNodeChildren(element, clonedNodesArray);\n }\n }\n createViewModel(componentDefinition, element, originalChildNodes, componentParams) {\n const componentViewModelFactory = componentDefinition.createViewModel;\n return componentViewModelFactory ? componentViewModelFactory.call(componentDefinition, componentParams, { element, templateNodes: originalChildNodes }) : componentParams;\n }\n makeTemplateSlotNodes(originalChildNodes) {\n return Object.assign({}, ...this.genSlotsByName(originalChildNodes));\n }\n *genSlotsByName(templateNodes) {\n for (const node of templateNodes) {\n if (node.nodeType !== 1) {\n continue;\n }\n const slotName = node.getAttribute(\"slot\");\n if (!slotName) {\n continue;\n }\n yield { [slotName]: node };\n }\n }\n computeApplyComponent() {\n const value = unwrap(this.value);\n let componentName;\n let componentParams;\n if (typeof value === \"string\") {\n componentName = value;\n } else {\n componentName = unwrap(value.name);\n componentParams = NativeProvider.getNodeValues(this.$element) || unwrap(value.params);\n }\n this.latestComponentName = componentName;\n if (!componentName) {\n throw new Error(\"No component name specified\");\n }\n this.loadingOperationId = this.currentLoadingOperationId = ++componentLoadingOperationUniqueId;\n registry.get(componentName, (defn) => this.applyComponentDefinition(componentName, componentParams, defn));\n }\n makeChildBindingContext($component) {\n const ctxExtender = (ctx) => Object.assign(ctx, {\n $component,\n $componentTemplateNodes: this.originalChildNodes,\n $componentTemplateSlotNodes: this.makeTemplateSlotNodes(this.originalChildNodes)\n });\n return this.$context.createChildContext($component, void 0, ctxExtender);\n }\n applyComponentDefinition(componentName, componentParams, componentDefinition) {\n if (this.currentLoadingOperationId !== this.loadingOperationId || this.latestComponentName !== componentName) {\n return;\n }\n this.cleanUpState();\n const element = this.$element;\n if (!componentDefinition) {\n throw new Error(\"Unknown component '\" + componentName + \"'\");\n }\n if (componentDefinition.template) {\n this.cloneTemplateIntoElement(componentName, componentDefinition.template, element);\n }\n const componentViewModel = this.createViewModel(componentDefinition, element, this.originalChildNodes, componentParams);\n this.childBindingContext = this.makeChildBindingContext(componentViewModel);\n const viewTemplate = componentViewModel && componentViewModel.template;\n if (!viewTemplate && !componentDefinition.template) {\n throw new Error(\"Component '\" + componentName + \"' has no template\");\n }\n if (!componentDefinition.template) {\n this.cloneTemplateIntoElement(componentName, viewTemplate, element);\n }\n if (componentViewModel instanceof LifeCycle) {\n componentViewModel.anchorTo(this.$element);\n }\n this.currentViewModel = componentViewModel;\n const onBinding = this.onBindingComplete.bind(this, componentViewModel);\n this.applyBindingsToDescendants(this.childBindingContext, onBinding);\n }\n onBindingComplete(componentViewModel, bindingResult) {\n if (componentViewModel && componentViewModel.koDescendantsComplete) {\n componentViewModel.koDescendantsComplete(this.$element);\n }\n this.completeBinding(bindingResult);\n }\n cleanUpState() {\n const currentView = this.currentViewModel;\n const currentViewDispose = currentView && currentView.dispose;\n if (typeof currentViewDispose === \"function\") {\n currentViewDispose.call(currentView);\n }\n this.currentViewModel = null;\n this.currentLoadingOperationId = null;\n }\n dispose() {\n this.cleanUpState();\n super.dispose();\n }\n get controlsDescendants() {\n return true;\n }\n static get allowVirtualElements() {\n return true;\n }\n}\n", "// @tko/binding.component \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n virtualElements\n} from \"@tko/utils\";\nimport {\n JsxObserver,\n getOriginalJsxForNode\n} from \"@tko/utils.jsx\";\nimport {\n DescendantBindingHandler,\n contextFor\n} from \"@tko/bind\";\nexport default class SlotBinding extends DescendantBindingHandler {\n constructor(...params) {\n super(...params);\n const slotNode = this.getSlot(this.value);\n const $slotContext = contextFor(slotNode);\n const childContext = this.$context.extend({\n $slotContext,\n $slotData: $slotContext && $slotContext.$data\n });\n this.replaceSlotWithNode(this.$element, slotNode);\n this.applyBindingsToDescendants(childContext);\n }\n replaceSlotWithNode(nodeInComponentTemplate, slotNode) {\n const nodes = this.cloneNodeFromOriginal(slotNode);\n virtualElements.emptyNode(nodeInComponentTemplate);\n this.addDisposable(new JsxObserver(nodes, nodeInComponentTemplate, void 0, void 0, true));\n }\n cloneNodeFromOriginal(node) {\n if (!node) {\n return [];\n }\n const jsx = getOriginalJsxForNode(node);\n if (jsx) {\n return jsx.children;\n }\n if (\"content\" in node) {\n const clone = document.importNode(node.content, true);\n return [...clone.childNodes];\n }\n const nodeArray = Array.isArray(node) ? node : [node];\n return nodeArray.map((n) => n.cloneNode(true));\n }\n getSlot(slotName) {\n const { $componentTemplateSlotNodes } = this.$context;\n if (!slotName) {\n return $componentTemplateSlotNodes[\"\"] || [...this.$context.$componentTemplateNodes].filter((n) => !n.getAttribute || !n.getAttribute(\"slot\"));\n }\n return $componentTemplateSlotNodes[slotName];\n }\n static get allowVirtualElements() {\n return true;\n }\n}\n", "// @tko/binding.component \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport component from \"./componentBinding\";\nimport slot from \"./slotBinding\";\nexport var bindings = { component, slot };\n", "// @tko/filter.punches \uD83E\uDD4A 4.0.0-beta1.0 ESM\nimport {\n unwrap,\n toJS\n} from \"@tko/observable\";\nvar sproto = String.prototype;\nvar filters = {};\nfilters.uppercase = function(value) {\n return sproto.toUpperCase.call(unwrap(value));\n};\nfilters.lowercase = function(value) {\n return sproto.toLowerCase.call(unwrap(value));\n};\nfilters[\"default\"] = function(value, defaultValue) {\n value = unwrap(value);\n if (typeof value === \"function\") {\n return value;\n }\n if (typeof value === \"string\") {\n return sproto.trim.call(value) === \"\" ? defaultValue : value;\n }\n return value == null || value.length == 0 ? defaultValue : value;\n};\nfilters.replace = function(value, search, replace) {\n return sproto.replace.call(unwrap(value), search, replace);\n};\nfilters.fit = function(value, length, replacement, trimWhere) {\n value = unwrap(value);\n if (length && (\"\" + value).length > length) {\n replacement = \"\" + (replacement || \"...\");\n length = length - replacement.length;\n value = \"\" + value;\n switch (trimWhere) {\n case \"left\":\n return replacement + value.slice(-length);\n case \"middle\":\n var leftLen = Math.ceil(length / 2);\n return value.substr(0, leftLen) + replacement + value.slice(leftLen - length);\n default:\n return value.substr(0, length) + replacement;\n }\n } else {\n return value;\n }\n};\nfilters.json = function(rootObject, space, replacer) {\n return JSON.stringify(toJS(rootObject), replacer, space);\n};\nfilters.number = function(value) {\n return (+unwrap(value)).toLocaleString();\n};\nexport { filters };\n", "import { Builder } from '@tko/builder'\n\nimport { VirtualProvider } from '@tko/provider.virtual'\nimport { DataBindProvider } from '@tko/provider.databind'\nimport { ComponentProvider } from '@tko/provider.component'\nimport { AttributeProvider } from '@tko/provider.attr'\nimport { MultiProvider } from '@tko/provider.multi'\nimport {\n TextMustacheProvider, AttributeMustacheProvider\n} from '@tko/provider.mustache'\nimport {\n NativeProvider\n} from '@tko/provider.native'\n\nimport { bindings as coreBindings } from '@tko/binding.core'\nimport { bindings as templateBindings } from '@tko/binding.template'\nimport { bindings as ifBindings } from '@tko/binding.if'\nimport { bindings as foreachBindings } from '@tko/binding.foreach'\nimport { bindings as componentBindings } from '@tko/binding.component'\n\nimport { filters } from '@tko/filter.punches'\n\nimport components from '@tko/utils.component'\nimport { createElement, Fragment } from '@tko/utils.jsx'\n\nconst builder = new Builder({\n filters,\n provider: new MultiProvider({\n providers: [\n new ComponentProvider(),\n new NativeProvider(),\n new AttributeMustacheProvider(),\n new TextMustacheProvider(),\n new DataBindProvider(),\n new VirtualProvider(),\n new AttributeProvider(),\n ]\n }),\n bindings: [\n coreBindings,\n templateBindings,\n ifBindings,\n foreachBindings,\n componentBindings,\n { each: foreachBindings.foreach }\n ]\n})\n\nconst version = BUILD_VERSION\nexport default builder.create({\n jsx: {\n createElement,\n Fragment,\n },\n components,\n version,\n Component: components.ComponentABC,\n})\n"],
|
|
4
|
+
"sourcesContent": ["export {default} from './src'\nexport * from './src'\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", "// @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", "// @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", "// @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", "// @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", "// @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", "// @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", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nexport function stringTrim(string) {\n return string === null || string === void 0 ? \"\" : string.trim ? string.trim() : string.toString().replace(/^[\\s\\xa0]+|[\\s\\xa0]+$/g, \"\");\n}\nexport function stringStartsWith(string, startsWith) {\n string = string || \"\";\n if (startsWith.length > string.length) {\n return false;\n }\n return string.substring(0, startsWith.length) === startsWith;\n}\nexport function parseJson(jsonString) {\n if (typeof jsonString === \"string\") {\n jsonString = stringTrim(jsonString);\n if (jsonString) {\n if (JSON && JSON.parse) {\n return JSON.parse(jsonString);\n }\n return new Function(\"return \" + jsonString)();\n }\n }\n return null;\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nexport var useSymbols = typeof Symbol === \"function\";\nexport function createSymbolOrString(identifier) {\n return useSymbols ? Symbol(identifier) : identifier;\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { arrayForEach, addOrRemoveItem } from \"./array\";\nvar cssClassNameRegex = /\\S+/g;\nfunction toggleDomNodeCssClass(node, classNames, shouldHaveClass) {\n var addOrRemoveFn;\n if (!classNames) {\n return;\n }\n if (typeof node.classList === \"object\") {\n addOrRemoveFn = node.classList[shouldHaveClass ? \"add\" : \"remove\"];\n arrayForEach(classNames.match(cssClassNameRegex), function(className) {\n addOrRemoveFn.call(node.classList, className);\n });\n } else if (typeof node.className[\"baseVal\"] === \"string\") {\n toggleObjectClassPropertyString(node.className, \"baseVal\", classNames, shouldHaveClass);\n } else {\n toggleObjectClassPropertyString(node, \"className\", classNames, shouldHaveClass);\n }\n}\nfunction toggleObjectClassPropertyString(obj, prop, classNames, shouldHaveClass) {\n var currentClassNames = obj[prop].match(cssClassNameRegex) || [];\n arrayForEach(classNames.match(cssClassNameRegex), function(className) {\n addOrRemoveItem(currentClassNames, className, shouldHaveClass);\n });\n obj[prop] = currentClassNames.join(\" \");\n}\nexport { toggleDomNodeCssClass };\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", "// @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", "// @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", "// @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", "// @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", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { makeArray } from \"../array\";\nimport { ieVersion } from \"../ie\";\nimport { cleanNode, removeNode } from \"./disposal\";\nexport function moveCleanedNodesToContainerElement(nodes) {\n var nodesArray = makeArray(nodes);\n var templateDocument = nodesArray[0] && nodesArray[0].ownerDocument || document;\n var container = templateDocument.createElement(\"div\");\n for (var i = 0, j = nodesArray.length; i < j; i++) {\n container.appendChild(cleanNode(nodesArray[i]));\n }\n return container;\n}\nexport function cloneNodes(nodesArray, shouldCleanNodes) {\n for (var i = 0, j = nodesArray.length, newNodesArray = []; i < j; i++) {\n var clonedNode = nodesArray[i].cloneNode(true);\n newNodesArray.push(shouldCleanNodes ? cleanNode(clonedNode) : clonedNode);\n }\n return newNodesArray;\n}\nexport function setDomNodeChildren(domNode, childNodes) {\n emptyDomNode(domNode);\n if (childNodes) {\n for (var i = 0, j = childNodes.length; i < j; i++) {\n domNode.appendChild(childNodes[i]);\n }\n }\n}\nexport function replaceDomNodes(nodeToReplaceOrNodeArray, newNodesArray) {\n var nodesToReplaceArray = nodeToReplaceOrNodeArray.nodeType ? [nodeToReplaceOrNodeArray] : nodeToReplaceOrNodeArray;\n if (nodesToReplaceArray.length > 0) {\n var insertionPoint = nodesToReplaceArray[0];\n var parent = insertionPoint.parentNode;\n for (var i = 0, j = newNodesArray.length; i < j; i++) {\n parent.insertBefore(newNodesArray[i], insertionPoint);\n }\n for (i = 0, j = nodesToReplaceArray.length; i < j; i++) {\n removeNode(nodesToReplaceArray[i]);\n }\n }\n}\nexport function setElementName(element, name) {\n element.name = name;\n if (ieVersion <= 7) {\n try {\n element.mergeAttributes(document.createElement(\"<input name='\" + element.name + \"'/>\"), false);\n } catch (e) {\n }\n }\n}\nexport function emptyDomNode(domNode) {\n while (domNode.firstChild) {\n removeNode(domNode.firstChild);\n }\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { ieVersion } from \"../ie\";\nexport function fixUpContinuousNodeArray(continuousNodeArray, parentNode) {\n if (continuousNodeArray.length) {\n parentNode = parentNode.nodeType === 8 && parentNode.parentNode || parentNode;\n while (continuousNodeArray.length && continuousNodeArray[0].parentNode !== parentNode) {\n continuousNodeArray.splice(0, 1);\n }\n while (continuousNodeArray.length > 1 && continuousNodeArray[continuousNodeArray.length - 1].parentNode !== parentNode) {\n continuousNodeArray.length--;\n }\n if (continuousNodeArray.length > 1) {\n var current = continuousNodeArray[0], last = continuousNodeArray[continuousNodeArray.length - 1];\n continuousNodeArray.length = 0;\n while (current !== last) {\n continuousNodeArray.push(current);\n current = current.nextSibling;\n }\n continuousNodeArray.push(last);\n }\n }\n return continuousNodeArray;\n}\nexport function setOptionNodeSelectionState(optionNode, isSelected) {\n if (ieVersion < 7) {\n optionNode.setAttribute(\"selected\", isSelected);\n } else {\n optionNode.selected = isSelected;\n }\n}\nexport function forceRefresh(node) {\n if (ieVersion >= 9) {\n var elem = node.nodeType == 1 ? node : node.parentNode;\n if (elem.style) {\n elem.style.zoom = elem.style.zoom;\n }\n }\n}\nexport function ensureSelectElementIsRenderedCorrectly(selectElement) {\n if (ieVersion) {\n var originalWidth = selectElement.style.width;\n selectElement.style.width = 0;\n selectElement.style.width = originalWidth;\n }\n}\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", "// @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", "// @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", "// @tko/utils \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { arrayPushAll } from \"./array\";\nvar memos = {};\nfunction randomMax8HexChars() {\n return ((1 + Math.random()) * 4294967296 | 0).toString(16).substring(1);\n}\nfunction generateRandomId() {\n return randomMax8HexChars() + randomMax8HexChars();\n}\nfunction findMemoNodes(rootNode, appendToArray) {\n if (!rootNode) {\n return;\n }\n if (rootNode.nodeType == 8) {\n var memoId = parseMemoText(rootNode.nodeValue);\n if (memoId != null) {\n appendToArray.push({ domNode: rootNode, memoId });\n }\n } else if (rootNode.nodeType == 1) {\n for (var i = 0, childNodes = rootNode.childNodes, j = childNodes.length; i < j; i++) {\n findMemoNodes(childNodes[i], appendToArray);\n }\n }\n}\nexport function memoize(callback) {\n if (typeof callback !== \"function\") {\n throw new Error(\"You can only pass a function to memoization.memoize()\");\n }\n var memoId = generateRandomId();\n memos[memoId] = callback;\n return \"<!--[ko_memo:\" + memoId + \"]-->\";\n}\nexport function unmemoize(memoId, callbackParams) {\n var callback = memos[memoId];\n if (callback === void 0) {\n throw new Error(\"Couldn't find any memo with ID \" + memoId + \". Perhaps it's already been unmemoized.\");\n }\n try {\n callback.apply(null, callbackParams || []);\n return true;\n } finally {\n delete memos[memoId];\n }\n}\nexport function unmemoizeDomNodeAndDescendants(domNode, extraCallbackParamsArray) {\n var memos2 = [];\n findMemoNodes(domNode, memos2);\n for (var i = 0, j = memos2.length; i < j; i++) {\n var node = memos2[i].domNode;\n var combinedParams = [node];\n if (extraCallbackParamsArray) {\n arrayPushAll(combinedParams, extraCallbackParamsArray);\n }\n unmemoize(memos2[i].memoId, combinedParams);\n node.nodeValue = \"\";\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n}\nexport function parseMemoText(memoText) {\n var match = memoText.match(/^\\[ko_memo\\:(.*?)\\]$/);\n return match ? match[1] : null;\n}\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", "// @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", "// @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", "// @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", "// @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", "// @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", "// @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", "// @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", "// @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", "// @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", "// @tko/observable \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { isObservable } from \"./observable\";\nvar maxNestedObservableDepth = 10;\nexport function toJS(rootObject) {\n if (arguments.length == 0) {\n throw new Error(\"When calling ko.toJS, pass the object you want to convert.\");\n }\n return mapJsObjectGraph(rootObject, function(valueToMap) {\n for (var i = 0; isObservable(valueToMap) && i < maxNestedObservableDepth; i++) {\n valueToMap = valueToMap();\n }\n return valueToMap;\n });\n}\nexport function toJSON(rootObject, replacer, space) {\n var plainJavaScriptObject = toJS(rootObject);\n return JSON.stringify(plainJavaScriptObject, replacer, space);\n}\nfunction mapJsObjectGraph(rootObject, mapInputCallback, visitedObjects = /* @__PURE__ */ new Map()) {\n rootObject = mapInputCallback(rootObject);\n var canHaveProperties = typeof rootObject === \"object\" && rootObject !== null && rootObject !== void 0 && !(rootObject instanceof RegExp) && !(rootObject instanceof Date) && !(rootObject instanceof String) && !(rootObject instanceof Number) && !(rootObject instanceof Boolean);\n if (!canHaveProperties) {\n return rootObject;\n }\n var outputProperties = rootObject instanceof Array ? [] : {};\n visitedObjects.set(rootObject, outputProperties);\n visitPropertiesOrArrayEntries(rootObject, function(indexer) {\n var propertyValue = mapInputCallback(rootObject[indexer]);\n switch (typeof propertyValue) {\n case \"boolean\":\n case \"number\":\n case \"string\":\n case \"function\":\n outputProperties[indexer] = propertyValue;\n break;\n case \"object\":\n case \"undefined\":\n var previouslyMappedValue = visitedObjects.get(propertyValue);\n outputProperties[indexer] = previouslyMappedValue !== void 0 ? previouslyMappedValue : mapJsObjectGraph(propertyValue, mapInputCallback, visitedObjects);\n break;\n }\n });\n return outputProperties;\n}\nfunction visitPropertiesOrArrayEntries(rootObject, visitorCallback) {\n if (rootObject instanceof Array) {\n for (var i = 0; i < rootObject.length; i++) {\n visitorCallback(i);\n }\n if (typeof rootObject[\"toJSON\"] === \"function\") {\n visitorCallback(\"toJSON\");\n }\n } else {\n for (var propertyName in rootObject) {\n visitorCallback(propertyName);\n }\n }\n}\n", "// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.3 ESM\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 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 member(a, b) {\n return a[b];\n },\n \"[\": function member2(a, b) {\n return 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 = 16;\noperators[\"!!\"].precedence = 16;\noperators[\"++\"].precedence = 16;\noperators[\"--\"].precedence = 16;\noperators[\"&-\"].precedence = 16;\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[\"&&\"].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-beta1.3 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", "// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.3 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", "// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.3 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", "// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.3 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", "// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.3 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 throw new Error(`dereference of null value in ${JSON.stringify(this, null, 2)} context: ${JSON.stringify($context, null, 2)}`);\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", "// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.3 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", "// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.3 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", "// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.3 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(\"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 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(null, 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[\".\"]) {\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", "// @tko/utils.parser \uD83E\uDD4A 4.0.0-beta1.3 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", "// @tko/computed \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n addDisposeCallback,\n arrayForEach,\n createSymbolOrString,\n domNodeIsAttachedToDocument,\n extend,\n options,\n hasOwnProperty,\n objectForEach,\n options as koOptions,\n removeDisposeCallback,\n safeSetTimeout\n} from \"@tko/utils\";\nimport {\n dependencyDetection,\n extenders,\n valuesArePrimitiveAndEqual,\n observable,\n subscribable,\n LATEST_VALUE\n} from \"@tko/observable\";\nconst computedState = createSymbolOrString(\"_state\");\nconst DISPOSED_STATE = {\n dependencyTracking: null,\n dependenciesCount: 0,\n isDisposed: true,\n isStale: false,\n isDirty: false,\n isSleeping: false,\n disposeWhenNodeIsRemoved: null,\n readFunction: null,\n _options: null\n};\nexport function computed(evaluatorFunctionOrOptions, evaluatorFunctionTarget, options2) {\n if (typeof evaluatorFunctionOrOptions === \"object\") {\n options2 = evaluatorFunctionOrOptions;\n } else {\n options2 = options2 || {};\n if (evaluatorFunctionOrOptions) {\n options2.read = evaluatorFunctionOrOptions;\n }\n }\n if (typeof options2.read !== \"function\") {\n throw Error(\"Pass a function that returns the value of the computed\");\n }\n var writeFunction = options2.write;\n var state = {\n latestValue: void 0,\n isStale: true,\n isDirty: true,\n isBeingEvaluated: false,\n suppressDisposalUntilDisposeWhenReturnsFalse: false,\n isDisposed: false,\n pure: false,\n isSleeping: false,\n readFunction: options2.read,\n evaluatorFunctionTarget: evaluatorFunctionTarget || options2.owner,\n disposeWhenNodeIsRemoved: options2.disposeWhenNodeIsRemoved || options2.disposeWhenNodeIsRemoved || null,\n disposeWhen: options2.disposeWhen || options2.disposeWhen,\n domNodeDisposalCallback: null,\n dependencyTracking: {},\n dependenciesCount: 0,\n evaluationTimeoutInstance: null\n };\n function computedObservable() {\n if (arguments.length > 0) {\n if (typeof writeFunction === \"function\") {\n writeFunction.apply(state.evaluatorFunctionTarget, arguments);\n } else {\n throw new Error(\"Cannot write a value to a computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.\");\n }\n return this;\n } else {\n if (!state.isDisposed) {\n dependencyDetection.registerDependency(computedObservable);\n }\n if (state.isDirty || state.isSleeping && computedObservable.haveDependenciesChanged()) {\n computedObservable.evaluateImmediate();\n }\n return state.latestValue;\n }\n }\n computedObservable[computedState] = state;\n computedObservable.isWriteable = typeof writeFunction === \"function\";\n subscribable.fn.init(computedObservable);\n Object.setPrototypeOf(computedObservable, computed.fn);\n if (options2.pure) {\n state.pure = true;\n state.isSleeping = true;\n extend(computedObservable, pureComputedOverrides);\n } else if (options2.deferEvaluation) {\n extend(computedObservable, deferEvaluationOverrides);\n }\n if (koOptions.deferUpdates) {\n extenders.deferred(computedObservable, true);\n }\n if (koOptions.debug) {\n computedObservable._options = options2;\n }\n if (state.disposeWhenNodeIsRemoved) {\n state.suppressDisposalUntilDisposeWhenReturnsFalse = true;\n if (!state.disposeWhenNodeIsRemoved.nodeType) {\n state.disposeWhenNodeIsRemoved = null;\n }\n }\n if (!state.isSleeping && !options2.deferEvaluation) {\n computedObservable.evaluateImmediate();\n }\n if (state.disposeWhenNodeIsRemoved && computedObservable.isActive()) {\n addDisposeCallback(state.disposeWhenNodeIsRemoved, state.domNodeDisposalCallback = function() {\n computedObservable.dispose();\n });\n }\n return computedObservable;\n}\nfunction computedDisposeDependencyCallback(id, entryToDispose) {\n if (entryToDispose !== null && entryToDispose.dispose) {\n entryToDispose.dispose();\n }\n}\nfunction computedBeginDependencyDetectionCallback(subscribable2, id) {\n var computedObservable = this.computedObservable, state = computedObservable[computedState];\n if (!state.isDisposed) {\n if (this.disposalCount && this.disposalCandidates[id]) {\n computedObservable.addDependencyTracking(id, subscribable2, this.disposalCandidates[id]);\n this.disposalCandidates[id] = null;\n --this.disposalCount;\n } else if (!state.dependencyTracking[id]) {\n computedObservable.addDependencyTracking(id, subscribable2, state.isSleeping ? { _target: subscribable2 } : computedObservable.subscribeToDependency(subscribable2));\n }\n if (subscribable2._notificationIsPending) {\n subscribable2._notifyNextChangeIfValueIsDifferent();\n }\n }\n}\ncomputed.fn = {\n equalityComparer: valuesArePrimitiveAndEqual,\n getDependenciesCount() {\n return this[computedState].dependenciesCount;\n },\n getDependencies() {\n const dependencyTracking = this[computedState].dependencyTracking;\n const dependentObservables = [];\n objectForEach(dependencyTracking, function(id, dependency) {\n dependentObservables[dependency._order] = dependency._target;\n });\n return dependentObservables;\n },\n addDependencyTracking(id, target, trackingObj) {\n if (this[computedState].pure && target === this) {\n throw Error(\"A 'pure' computed must not be called recursively\");\n }\n this[computedState].dependencyTracking[id] = trackingObj;\n trackingObj._order = this[computedState].dependenciesCount++;\n trackingObj._version = target.getVersion();\n },\n haveDependenciesChanged() {\n var id, dependency, dependencyTracking = this[computedState].dependencyTracking;\n for (id in dependencyTracking) {\n if (hasOwnProperty(dependencyTracking, id)) {\n dependency = dependencyTracking[id];\n if (this._evalDelayed && dependency._target._notificationIsPending || dependency._target.hasChanged(dependency._version)) {\n return true;\n }\n }\n }\n },\n markDirty() {\n if (this._evalDelayed && !this[computedState].isBeingEvaluated) {\n this._evalDelayed(false);\n }\n },\n isActive() {\n const state = this[computedState];\n return state.isDirty || state.dependenciesCount > 0;\n },\n respondToChange() {\n if (!this._notificationIsPending) {\n this.evaluatePossiblyAsync();\n } else if (this[computedState].isDirty) {\n this[computedState].isStale = true;\n }\n },\n subscribeToDependency(target) {\n if (target._deferUpdates) {\n var dirtySub = target.subscribe(this.markDirty, this, \"dirty\"), changeSub = target.subscribe(this.respondToChange, this);\n return {\n _target: target,\n dispose() {\n dirtySub.dispose();\n changeSub.dispose();\n }\n };\n } else {\n return target.subscribe(this.evaluatePossiblyAsync, this);\n }\n },\n evaluatePossiblyAsync() {\n var computedObservable = this, throttleEvaluationTimeout = computedObservable.throttleEvaluation;\n if (throttleEvaluationTimeout && throttleEvaluationTimeout >= 0) {\n clearTimeout(this[computedState].evaluationTimeoutInstance);\n this[computedState].evaluationTimeoutInstance = safeSetTimeout(function() {\n computedObservable.evaluateImmediate(true);\n }, throttleEvaluationTimeout);\n } else if (computedObservable._evalDelayed) {\n computedObservable._evalDelayed(true);\n } else {\n computedObservable.evaluateImmediate(true);\n }\n },\n evaluateImmediate(notifyChange) {\n var computedObservable = this, state = computedObservable[computedState], disposeWhen = state.disposeWhen, changed = false;\n if (state.isBeingEvaluated) {\n return;\n }\n if (state.isDisposed) {\n return;\n }\n if (state.disposeWhenNodeIsRemoved && !domNodeIsAttachedToDocument(state.disposeWhenNodeIsRemoved) || disposeWhen && disposeWhen()) {\n if (!state.suppressDisposalUntilDisposeWhenReturnsFalse) {\n computedObservable.dispose();\n return;\n }\n } else {\n state.suppressDisposalUntilDisposeWhenReturnsFalse = false;\n }\n state.isBeingEvaluated = true;\n try {\n changed = this.evaluateImmediate_CallReadWithDependencyDetection(notifyChange);\n } finally {\n state.isBeingEvaluated = false;\n }\n return changed;\n },\n evaluateImmediate_CallReadWithDependencyDetection(notifyChange) {\n var computedObservable = this, state = computedObservable[computedState], changed = false;\n var isInitial = state.pure ? void 0 : !state.dependenciesCount, dependencyDetectionContext = {\n computedObservable,\n disposalCandidates: state.dependencyTracking,\n disposalCount: state.dependenciesCount\n };\n dependencyDetection.begin({\n callbackTarget: dependencyDetectionContext,\n callback: computedBeginDependencyDetectionCallback,\n computed: computedObservable,\n isInitial\n });\n state.dependencyTracking = {};\n state.dependenciesCount = 0;\n var newValue = this.evaluateImmediate_CallReadThenEndDependencyDetection(state, dependencyDetectionContext);\n if (!state.dependenciesCount) {\n computedObservable.dispose();\n changed = true;\n } else {\n changed = computedObservable.isDifferent(state.latestValue, newValue);\n }\n if (changed) {\n if (!state.isSleeping) {\n computedObservable.notifySubscribers(state.latestValue, \"beforeChange\");\n } else {\n computedObservable.updateVersion();\n }\n state.latestValue = newValue;\n if (options.debug) {\n computedObservable._latestValue = newValue;\n }\n computedObservable.notifySubscribers(state.latestValue, \"spectate\");\n if (!state.isSleeping && notifyChange) {\n computedObservable.notifySubscribers(state.latestValue);\n }\n if (computedObservable._recordUpdate) {\n computedObservable._recordUpdate();\n }\n }\n if (isInitial) {\n computedObservable.notifySubscribers(state.latestValue, \"awake\");\n }\n return changed;\n },\n evaluateImmediate_CallReadThenEndDependencyDetection(state, dependencyDetectionContext) {\n try {\n var readFunction = state.readFunction;\n return state.evaluatorFunctionTarget ? readFunction.call(state.evaluatorFunctionTarget) : readFunction();\n } finally {\n dependencyDetection.end();\n if (dependencyDetectionContext.disposalCount && !state.isSleeping) {\n objectForEach(dependencyDetectionContext.disposalCandidates, computedDisposeDependencyCallback);\n }\n state.isStale = state.isDirty = false;\n }\n },\n peek(forceEvaluate) {\n const state = this[computedState];\n if (state.isDirty && (forceEvaluate || !state.dependenciesCount) || state.isSleeping && this.haveDependenciesChanged()) {\n this.evaluateImmediate();\n }\n return state.latestValue;\n },\n get [LATEST_VALUE]() {\n return this.peek();\n },\n limit(limitFunction) {\n const state = this[computedState];\n subscribable.fn.limit.call(this, limitFunction);\n Object.assign(this, {\n _evalIfChanged() {\n if (!this[computedState].isSleeping) {\n if (this[computedState].isStale) {\n this.evaluateImmediate();\n } else {\n this[computedState].isDirty = false;\n }\n }\n return state.latestValue;\n },\n _evalDelayed(isChange) {\n this._limitBeforeChange(state.latestValue);\n state.isDirty = true;\n if (isChange) {\n state.isStale = true;\n }\n this._limitChange(this, !isChange);\n }\n });\n },\n dispose() {\n var state = this[computedState];\n if (!state.isSleeping && state.dependencyTracking) {\n objectForEach(state.dependencyTracking, function(id, dependency) {\n if (dependency.dispose) {\n dependency.dispose();\n }\n });\n }\n if (state.disposeWhenNodeIsRemoved && state.domNodeDisposalCallback) {\n removeDisposeCallback(state.disposeWhenNodeIsRemoved, state.domNodeDisposalCallback);\n }\n Object.assign(state, DISPOSED_STATE);\n }\n};\nvar pureComputedOverrides = {\n beforeSubscriptionAdd(event) {\n var computedObservable = this, state = computedObservable[computedState];\n if (!state.isDisposed && state.isSleeping && event === \"change\") {\n state.isSleeping = false;\n if (state.isStale || computedObservable.haveDependenciesChanged()) {\n state.dependencyTracking = null;\n state.dependenciesCount = 0;\n if (computedObservable.evaluateImmediate()) {\n computedObservable.updateVersion();\n }\n } else {\n var dependenciesOrder = [];\n objectForEach(state.dependencyTracking, function(id, dependency) {\n dependenciesOrder[dependency._order] = id;\n });\n arrayForEach(dependenciesOrder, function(id, order) {\n var dependency = state.dependencyTracking[id], subscription = computedObservable.subscribeToDependency(dependency._target);\n subscription._order = order;\n subscription._version = dependency._version;\n state.dependencyTracking[id] = subscription;\n });\n if (computedObservable.haveDependenciesChanged()) {\n if (computedObservable.evaluateImmediate()) {\n computedObservable.updateVersion();\n }\n }\n }\n if (!state.isDisposed) {\n computedObservable.notifySubscribers(state.latestValue, \"awake\");\n }\n }\n },\n afterSubscriptionRemove(event) {\n var state = this[computedState];\n if (!state.isDisposed && event === \"change\" && !this.hasSubscriptionsForEvent(\"change\")) {\n objectForEach(state.dependencyTracking, function(id, dependency) {\n if (dependency.dispose) {\n state.dependencyTracking[id] = {\n _target: dependency._target,\n _order: dependency._order,\n _version: dependency._version\n };\n dependency.dispose();\n }\n });\n state.isSleeping = true;\n this.notifySubscribers(void 0, \"asleep\");\n }\n },\n getVersion() {\n var state = this[computedState];\n if (state.isSleeping && (state.isStale || this.haveDependenciesChanged())) {\n this.evaluateImmediate();\n }\n return subscribable.fn.getVersion.call(this);\n }\n};\nvar deferEvaluationOverrides = {\n beforeSubscriptionAdd(event) {\n if (event === \"change\" || event === \"beforeChange\") {\n this.peek();\n }\n }\n};\nObject.setPrototypeOf(computed.fn, subscribable.fn);\nvar protoProp = observable.protoProperty;\ncomputed.fn[protoProp] = computed;\nobservable.observablePrototypes.add(computed);\nexport function isComputed(instance) {\n return typeof instance === \"function\" && instance[protoProp] === computed;\n}\nexport function isPureComputed(instance) {\n return isComputed(instance) && instance[computedState] && instance[computedState].pure;\n}\nexport function pureComputed(evaluatorFunctionOrOptions, evaluatorFunctionTarget) {\n if (typeof evaluatorFunctionOrOptions === \"function\") {\n return computed(evaluatorFunctionOrOptions, evaluatorFunctionTarget, { \"pure\": true });\n } else {\n evaluatorFunctionOrOptions = extend({}, evaluatorFunctionOrOptions);\n evaluatorFunctionOrOptions.pure = true;\n return computed(evaluatorFunctionOrOptions, evaluatorFunctionTarget);\n }\n}\n", "// @tko/computed \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n extenders\n} from \"@tko/observable\";\nimport {\n computed\n} from \"./computed\";\nexport function throttleExtender(target, timeout) {\n target.throttleEvaluation = timeout;\n var writeTimeoutInstance = null;\n return computed({\n read: target,\n write: function(value) {\n clearTimeout(writeTimeoutInstance);\n writeTimeoutInstance = setTimeout(function() {\n target(value);\n }, timeout);\n }\n });\n}\nextenders.throttle = throttleExtender;\n", "// @tko/computed \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n observable,\n observableArray,\n unwrap\n} from \"@tko/observable\";\nimport {\n computed\n} from \"./computed\";\nconst PROXY_SYM = Symbol(\"Knockout Proxied Object\");\nconst MIRROR_SYM = Symbol(\"Knockout Proxied Observables\");\nfunction makeComputed(proxy2, fn) {\n return computed({\n owner: proxy2,\n read: fn,\n write: fn,\n pure: \"pure\" in fn ? fn.pure : true,\n deferEvaluation: \"deferEvaluation\" in fn ? fn.deferEvaluation : true\n }).extend({ deferred: true });\n}\nfunction setOrCreate(mirror, prop, value, proxy2) {\n if (!mirror[prop]) {\n const ctr = Array.isArray(value) ? observableArray : typeof value === \"function\" ? makeComputed.bind(null, proxy2) : observable;\n mirror[prop] = ctr(value);\n } else {\n mirror[prop](value);\n }\n}\nfunction assignOrUpdate(mirror, object, proxy2) {\n for (const key of Object.keys(object)) {\n setOrCreate(mirror, key, object[key], proxy2);\n }\n return object;\n}\nexport function proxy(object) {\n const mirror = { [PROXY_SYM]: object };\n mirror[MIRROR_SYM] = mirror;\n const proxy2 = new Proxy(function() {\n }, {\n has(target, prop) {\n return prop in mirror;\n },\n get(target, prop) {\n return unwrap(mirror[prop]);\n },\n set(target, prop, value, receiver) {\n setOrCreate(mirror, prop, value, proxy2);\n object[prop] = value;\n return true;\n },\n deleteProperty(property) {\n delete mirror[property];\n return delete object[property];\n },\n apply(target, thisArg, [props]) {\n if (props) {\n assignOrUpdate(mirror, props, proxy2);\n return Object.assign(object, props);\n }\n return object;\n },\n getPrototypeOf() {\n return Object.getPrototypeOf(object);\n },\n setPrototypeOf(target, proto) {\n return Object.setPrototypeOf(object, proto);\n },\n defineProperty(target, prop, desc) {\n return Object.defineProperty(object, prop, desc);\n },\n preventExtensions() {\n return Object.preventExtensions(object);\n },\n isExtensible() {\n return Object.isExtensible(object);\n },\n ownKeys() {\n return [\n ...Object.getOwnPropertyNames(object),\n ...Object.getOwnPropertySymbols(object)\n ];\n }\n });\n assignOrUpdate(mirror, object, proxy2);\n return proxy2;\n}\nexport function getObservable(proxied, prop) {\n return proxied[MIRROR_SYM][prop];\n}\nexport function peek(proxied, prop) {\n return getObservable(proxied, prop).peek();\n}\nexport function isProxied(proxied) {\n return PROXY_SYM in proxied;\n}\nObject.assign(proxy, { getObservable, peek, isProxied });\n", "// @tko/computed \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n pureComputed\n} from \"./computed\";\nfunction kowhen(predicate, context, resolve) {\n const observable = pureComputed(predicate, context).extend({ notify: \"always\" });\n const subscription = observable.subscribe((value) => {\n if (value) {\n subscription.dispose();\n resolve(value);\n }\n });\n observable.notifySubscribers(observable.peek());\n return subscription;\n}\nexport function when(predicate, callback, context) {\n const whenFn = kowhen.bind(null, predicate, context);\n return callback ? whenFn(callback.bind(context)) : new Promise(whenFn);\n}\n", "\"use strict\";\n// @tko/lifecycle \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n addDisposeCallback,\n createSymbolOrString\n} from \"@tko/utils\";\nimport {\n computed\n} from \"@tko/computed\";\nconst SUBSCRIPTIONS = createSymbolOrString(\"LifeCycle Subscriptions List\");\nconst ANCHOR_NODE = createSymbolOrString(\"LifeCycle Anchor Node\");\nexport default class LifeCycle {\n static mixInto(Constructor) {\n const target = Constructor.prototype || Constructor;\n const mixin = LifeCycle.prototype;\n for (let prop of Object.getOwnPropertyNames(mixin)) {\n target[prop] = mixin[prop];\n }\n }\n subscribe(observable, action, subscriptionType) {\n if (typeof action === \"string\") {\n action = this[action];\n }\n this.addDisposable(observable.subscribe(action, this, subscriptionType));\n }\n computed(params) {\n if (typeof params === \"string\") {\n params = { read: this[params], write: this[params] };\n }\n if (typeof params === \"object\") {\n params = Object.assign({ owner: this }, params);\n } else if (typeof params === \"function\") {\n const proto = Object.getPrototypeOf(this);\n if (proto && proto[params.name] === params) {\n params = params.bind(this);\n }\n params = { read: params, write: params };\n } else {\n throw new Error(\"LifeCycle::computed not given a valid type.\");\n }\n params.disposeWhenNodeIsRemoved = this[ANCHOR_NODE];\n return this.addDisposable(computed(params));\n }\n addEventListener(...args) {\n const node = args[0].nodeType ? args.shift() : this[ANCHOR_NODE];\n const [type, act, options] = args;\n const handler = typeof act === \"string\" ? this[act].bind(this) : act;\n this.__addEventListener(node, type, handler, options);\n }\n __addEventListener(node, eventType, handler, options) {\n node.addEventListener(eventType, handler, options);\n function dispose() {\n node.removeEventListener(eventType, handler);\n }\n addDisposeCallback(node, dispose);\n this.addDisposable({ dispose });\n }\n anchorTo(nodeOrLifeCycle) {\n if (\"addDisposable\" in nodeOrLifeCycle) {\n nodeOrLifeCycle.addDisposable(this);\n this[ANCHOR_NODE] = null;\n } else {\n this[ANCHOR_NODE] = nodeOrLifeCycle;\n addDisposeCallback(nodeOrLifeCycle, () => this[ANCHOR_NODE] === nodeOrLifeCycle && this.dispose());\n }\n }\n dispose() {\n const subscriptions = this[SUBSCRIPTIONS] || [];\n subscriptions.forEach((s) => s.dispose());\n this[SUBSCRIPTIONS] = [];\n this[ANCHOR_NODE] = null;\n }\n addDisposable(subscription) {\n const subscriptions = this[SUBSCRIPTIONS] || [];\n if (!this[SUBSCRIPTIONS]) {\n this[SUBSCRIPTIONS] = subscriptions;\n }\n if (typeof subscription.dispose !== \"function\") {\n throw new Error(\"Lifecycle::addDisposable argument missing `dispose`.\");\n }\n subscriptions.push(subscription);\n return subscription;\n }\n}\n", "// @tko/bind \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { domData } from \"@tko/utils\";\nimport { subscribable } from \"@tko/observable\";\nexport const contextAncestorBindingInfo = Symbol(\"_ancestorBindingInfo\");\nconst boundElementDomDataKey = domData.nextKey();\nexport const bindingEvent = {\n childrenComplete: \"childrenComplete\",\n descendantsComplete: \"descendantsComplete\",\n subscribe(node, event, callback, context) {\n const bindingInfo = domData.getOrSet(node, boundElementDomDataKey, {});\n if (!bindingInfo.eventSubscribable) {\n bindingInfo.eventSubscribable = new subscribable();\n }\n return bindingInfo.eventSubscribable.subscribe(callback, context, event);\n },\n notify(node, event) {\n const bindingInfo = domData.get(node, boundElementDomDataKey);\n if (bindingInfo) {\n if (bindingInfo.eventSubscribable) {\n bindingInfo.eventSubscribable.notifySubscribers(node, event);\n }\n }\n }\n};\n", "// @tko/bind \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { extend, options, domData, isObjectLike } from \"@tko/utils\";\nimport {\n pureComputed\n} from \"@tko/computed\";\nimport {\n unwrap,\n isObservable\n} from \"@tko/observable\";\nimport {\n contextAncestorBindingInfo\n} from \"./bindingEvent\";\nexport const boundElementDomDataKey = domData.nextKey();\nexport const contextSubscribeSymbol = Symbol(\"Knockout Context Subscription\");\nconst inheritParentIndicator = Symbol(\"Knockout Parent Indicator\");\nexport function bindingContext(dataItemOrAccessor, parentContext, dataItemAlias, extendCallback, settings) {\n const self = this;\n const shouldInheritData = dataItemOrAccessor === inheritParentIndicator;\n const realDataItemOrAccessor = shouldInheritData ? void 0 : dataItemOrAccessor;\n const isFunc = typeof realDataItemOrAccessor === \"function\" && !isObservable(realDataItemOrAccessor);\n self.ko = options.knockoutInstance;\n let nodes;\n let subscribable;\n function updateContext() {\n const dataItemOrObservable = isFunc ? realDataItemOrAccessor() : realDataItemOrAccessor;\n let dataItem = unwrap(dataItemOrObservable);\n if (parentContext) {\n if (parentContext[contextSubscribeSymbol]) {\n parentContext[contextSubscribeSymbol]();\n }\n extend(self, parentContext);\n if (contextAncestorBindingInfo in parentContext) {\n self[contextAncestorBindingInfo] = parentContext[contextAncestorBindingInfo];\n }\n } else {\n self.$parents = [];\n self.$root = dataItem;\n }\n self[contextSubscribeSymbol] = subscribable;\n if (shouldInheritData) {\n dataItem = self.$data;\n } else {\n self.$rawData = dataItemOrObservable;\n self.$data = dataItem;\n }\n if (dataItemAlias) {\n self[dataItemAlias] = dataItem;\n }\n if (extendCallback) {\n extendCallback(self, parentContext, dataItem);\n }\n return self.$data;\n }\n if (settings && settings.exportDependencies) {\n updateContext();\n } else {\n subscribable = pureComputed(updateContext);\n subscribable.peek();\n if (subscribable.isActive()) {\n self[contextSubscribeSymbol] = subscribable;\n subscribable[\"equalityComparer\"] = null;\n } else {\n self[contextSubscribeSymbol] = void 0;\n }\n }\n}\nObject.assign(bindingContext.prototype, {\n lookup(token, globals, node) {\n switch (token) {\n case \"$element\":\n return node;\n case \"$context\":\n return this;\n case \"this\":\n case \"$data\":\n return this.$data;\n }\n const $data = this.$data;\n if (isObjectLike($data) && token in $data) {\n return $data[token];\n }\n if (token in this) {\n return this[token];\n }\n if (token in globals) {\n return globals[token];\n }\n throw new Error(`The variable \"${token}\" was not found on $data, $context, or globals.`);\n },\n createChildContext(dataItemOrAccessor, dataItemAlias, extendCallback, settings) {\n return new bindingContext(dataItemOrAccessor, this, dataItemAlias, function(self, parentContext) {\n self.$parentContext = parentContext;\n self.$parent = parentContext.$data;\n self.$parents = (parentContext.$parents || []).slice(0);\n self.$parents.unshift(self.$parent);\n if (extendCallback) {\n extendCallback(self);\n }\n }, settings);\n },\n extend(properties) {\n return new bindingContext(inheritParentIndicator, this, null, function(self, parentContext) {\n extend(self, typeof properties === \"function\" ? properties.call(self) : properties);\n });\n },\n createStaticChildContext(dataItemOrAccessor, dataItemAlias) {\n return this.createChildContext(dataItemOrAccessor, dataItemAlias, null, { \"exportDependencies\": true });\n }\n});\nexport function storedBindingContextForNode(node) {\n const bindingInfo = domData.get(node, boundElementDomDataKey);\n return bindingInfo && bindingInfo.context;\n}\nexport function contextFor(node) {\n if (node && (node.nodeType === 1 || node.nodeType === 8)) {\n return storedBindingContextForNode(node);\n }\n}\nexport function dataFor(node) {\n var context = contextFor(node);\n return context ? context.$data : void 0;\n}\n", "// @tko/bind \uD83E\uDD4A 4.0.0-beta1.3 ESM\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\nexport class BindingResult {\n constructor({ asyncBindingsApplied, rootNode, bindingContext }) {\n Object.assign(this, {\n rootNode,\n bindingContext,\n isSync: asyncBindingsApplied.size === 0,\n isComplete: this.isSync\n });\n if (!this.isSync) {\n this.completionPromise = this.completeWhenBindingsFinish(asyncBindingsApplied);\n }\n }\n completeWhenBindingsFinish(asyncBindingsApplied) {\n return __async(this, null, function* () {\n yield Promise.all(asyncBindingsApplied);\n this.isComplete = true;\n return this;\n });\n }\n}\n", "// @tko/bind \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { options } from \"@tko/utils\";\nimport { isWriteableObservable } from \"@tko/observable\";\nimport { LifeCycle } from \"@tko/lifecycle\";\nexport class BindingHandler extends LifeCycle {\n constructor(params) {\n super();\n const { $element, valueAccessor, allBindings, $context } = params;\n Object.assign(this, {\n valueAccessor,\n allBindings,\n $element,\n $context,\n $data: $context.$data\n });\n this.anchorTo($element);\n }\n get value() {\n return this.valueAccessor();\n }\n set value(v) {\n const va = this.valueAccessor();\n if (isWriteableObservable(va)) {\n va(v);\n } else {\n this.valueAccessor(v);\n }\n }\n get controlsDescendants() {\n return false;\n }\n static get allowVirtualElements() {\n return false;\n }\n static get isBindingHandlerClass() {\n return true;\n }\n get bindingCompleted() {\n return true;\n }\n static registerAs(name, provider = options.bindingProviderInstance) {\n provider.bindingHandlers.set(name, this);\n }\n}\nconst ResolveSymbol = Symbol(\"Async Binding Resolved\");\nexport class AsyncBindingHandler extends BindingHandler {\n constructor(params) {\n super(params);\n this.bindingCompletion = new Promise((resolve) => {\n this[ResolveSymbol] = resolve;\n });\n this.completeBinding = (bindingResult) => this[ResolveSymbol](bindingResult);\n }\n get bindingCompleted() {\n return this.bindingCompletion;\n }\n}\n", "// @tko/bind \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { virtualElements, options } from \"@tko/utils\";\nimport { BindingHandler } from \"./BindingHandler\";\nconst PossibleWeakMap = options.global.WeakMap || Map;\nconst legacyBindingMap = new PossibleWeakMap();\nexport class LegacyBindingHandler extends BindingHandler {\n constructor(params) {\n super(params);\n const handler = this.handler;\n this.onError = params.onError;\n if (typeof handler.dispose === \"function\") {\n this.addDisposable(handler);\n }\n try {\n this.initReturn = handler.init && handler.init(...this.legacyArgs);\n } catch (e) {\n params.onError(\"init\", e);\n }\n }\n onValueChange() {\n const handler = this.handler;\n if (typeof handler.update !== \"function\") {\n return;\n }\n try {\n handler.update(...this.legacyArgs);\n } catch (e) {\n this.onError(\"update\", e);\n }\n }\n get legacyArgs() {\n return [\n this.$element,\n this.valueAccessor,\n this.allBindings,\n this.$data,\n this.$context\n ];\n }\n get controlsDescendants() {\n const objectToTest = this.initReturn || this.handler || {};\n return objectToTest.controlsDescendantBindings;\n }\n static getOrCreateFor(key, handler) {\n if (legacyBindingMap.has(handler)) {\n return legacyBindingMap.get(handler);\n }\n const newLegacyHandler = this.createFor(key, handler);\n legacyBindingMap.set(handler, newLegacyHandler);\n return newLegacyHandler;\n }\n static createFor(key, handler) {\n if (typeof handler === \"function\") {\n const [initFn, disposeFn] = [handler, handler.dispose];\n return class extends LegacyBindingHandler {\n get handler() {\n const init = initFn.bind(this);\n const dispose = disposeFn ? disposeFn.bind(this) : null;\n return { init, dispose };\n }\n static get after() {\n return handler.after;\n }\n static get allowVirtualElements() {\n return handler.allowVirtualElements || virtualElements.allowedBindings[key];\n }\n };\n }\n if (typeof handler === \"object\") {\n return class extends LegacyBindingHandler {\n get handler() {\n return handler;\n }\n static get after() {\n return handler.after;\n }\n static get allowVirtualElements() {\n return handler.allowVirtualElements || virtualElements.allowedBindings[key];\n }\n };\n }\n throw new Error(\"The given handler is not an appropriate type.\");\n }\n}\n", "// @tko/bind \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n extend,\n objectMap,\n virtualElements,\n tagNameLower,\n domData,\n objectForEach,\n arrayIndexOf,\n arrayForEach,\n options\n} from \"@tko/utils\";\nimport {\n dependencyDetection\n} from \"@tko/observable\";\nimport {\n computed\n} from \"@tko/computed\";\nimport {\n dataFor,\n bindingContext,\n boundElementDomDataKey,\n contextSubscribeSymbol\n} from \"./bindingContext\";\nimport {\n bindingEvent\n} from \"./bindingEvent\";\nimport {\n BindingResult\n} from \"./BindingResult\";\nimport {\n LegacyBindingHandler\n} from \"./LegacyBindingHandler\";\nconst bindingDoesNotRecurseIntoElementTypes = {\n \"script\": true,\n \"textarea\": true,\n \"template\": true\n};\nfunction getBindingProvider() {\n return options.bindingProviderInstance.instance || options.bindingProviderInstance;\n}\nfunction isProviderForNode(provider, node) {\n const nodeTypes = provider.FOR_NODE_TYPES || [1, 3, 8];\n return nodeTypes.includes(node.nodeType);\n}\nfunction asProperHandlerClass(handler, bindingKey) {\n if (!handler) {\n return;\n }\n return handler.isBindingHandlerClass ? handler : LegacyBindingHandler.getOrCreateFor(bindingKey, handler);\n}\nfunction getBindingHandlerFromComponent(bindingKey, $component) {\n if (!$component || typeof $component.getBindingHandler !== \"function\") {\n return;\n }\n return asProperHandlerClass($component.getBindingHandler(bindingKey));\n}\nexport function getBindingHandler(bindingKey) {\n const bindingDefinition = options.getBindingHandler(bindingKey) || getBindingProvider().bindingHandlers.get(bindingKey);\n return asProperHandlerClass(bindingDefinition, bindingKey);\n}\nfunction evaluateValueAccessor(valueAccessor) {\n return valueAccessor();\n}\nfunction applyBindingsToDescendantsInternal(bindingContext2, elementOrVirtualElement, asyncBindingsApplied) {\n let nextInQueue = virtualElements.firstChild(elementOrVirtualElement);\n if (!nextInQueue) {\n return;\n }\n let currentChild;\n const provider = getBindingProvider();\n const preprocessNode = provider.preprocessNode;\n if (preprocessNode) {\n while (currentChild = nextInQueue) {\n nextInQueue = virtualElements.nextSibling(currentChild);\n preprocessNode.call(provider, currentChild);\n }\n nextInQueue = virtualElements.firstChild(elementOrVirtualElement);\n }\n while (currentChild = nextInQueue) {\n nextInQueue = virtualElements.nextSibling(currentChild);\n applyBindingsToNodeAndDescendantsInternal(bindingContext2, currentChild, asyncBindingsApplied);\n }\n bindingEvent.notify(elementOrVirtualElement, bindingEvent.childrenComplete);\n}\nfunction hasBindings(node) {\n const provider = getBindingProvider();\n return isProviderForNode(provider, node) && provider.nodeHasBindings(node);\n}\nfunction nodeOrChildHasBindings(node) {\n return hasBindings(node) || [...node.childNodes].some((c) => nodeOrChildHasBindings(c));\n}\nfunction applyBindingsToNodeAndDescendantsInternal(bindingContext2, nodeVerified, asyncBindingsApplied) {\n var isElement = nodeVerified.nodeType === 1;\n if (isElement) {\n virtualElements.normaliseVirtualElementDomStructure(nodeVerified);\n }\n let shouldApplyBindings = isElement || hasBindings(nodeVerified);\n const { shouldBindDescendants } = shouldApplyBindings ? applyBindingsToNodeInternal(nodeVerified, null, bindingContext2, asyncBindingsApplied) : { shouldBindDescendants: true };\n if (shouldBindDescendants && !bindingDoesNotRecurseIntoElementTypes[tagNameLower(nodeVerified)]) {\n applyBindingsToDescendantsInternal(bindingContext2, nodeVerified, asyncBindingsApplied);\n }\n}\nfunction* topologicalSortBindings(bindings, $component) {\n const results = [];\n const bindingsConsidered = {};\n const cyclicDependencyStack = [];\n objectForEach(bindings, function pushBinding(bindingKey) {\n if (!bindingsConsidered[bindingKey]) {\n const binding = getBindingHandlerFromComponent(bindingKey, $component) || getBindingHandler(bindingKey);\n if (!binding) {\n return;\n }\n if (binding.after) {\n cyclicDependencyStack.push(bindingKey);\n arrayForEach(binding.after, function(bindingDependencyKey) {\n if (!bindings[bindingDependencyKey]) {\n return;\n }\n if (arrayIndexOf(cyclicDependencyStack, bindingDependencyKey) !== -1) {\n throw Error(\"Cannot combine the following bindings, because they have a cyclic dependency: \" + cyclicDependencyStack.join(\", \"));\n } else {\n pushBinding(bindingDependencyKey);\n }\n });\n cyclicDependencyStack.length--;\n }\n results.push([bindingKey, binding]);\n }\n bindingsConsidered[bindingKey] = true;\n });\n for (const result of results) {\n yield result;\n }\n}\nfunction applyBindingsToNodeInternal(node, sourceBindings, bindingContext2, asyncBindingsApplied) {\n const bindingInfo = domData.getOrSet(node, boundElementDomDataKey, {});\n const alreadyBound = bindingInfo.alreadyBound;\n if (!sourceBindings) {\n if (alreadyBound) {\n if (!nodeOrChildHasBindings(node)) {\n return false;\n }\n onBindingError({\n during: \"apply\",\n errorCaptured: new Error(\"You cannot apply bindings multiple times to the same element.\"),\n element: node,\n bindingContext: bindingContext2\n });\n return false;\n }\n bindingInfo.alreadyBound = true;\n }\n if (!alreadyBound) {\n bindingInfo.context = bindingContext2;\n }\n var bindings;\n if (sourceBindings && typeof sourceBindings !== \"function\") {\n bindings = sourceBindings;\n } else {\n const provider = getBindingProvider();\n const getBindings = provider.getBindingAccessors;\n if (isProviderForNode(provider, node)) {\n var bindingsUpdater = computed(function() {\n bindings = sourceBindings ? sourceBindings(bindingContext2, node) : getBindings.call(provider, node, bindingContext2);\n if (bindings && bindingContext2[contextSubscribeSymbol]) {\n bindingContext2[contextSubscribeSymbol]();\n }\n return bindings;\n }, null, { disposeWhenNodeIsRemoved: node });\n if (!bindings || !bindingsUpdater.isActive()) {\n bindingsUpdater = null;\n }\n }\n }\n var bindingHandlerThatControlsDescendantBindings;\n if (bindings) {\n let allBindings = function() {\n return objectMap(bindingsUpdater ? bindingsUpdater() : bindings, evaluateValueAccessor);\n };\n const $component = bindingContext2.$component || {};\n const allBindingHandlers = {};\n domData.set(node, \"bindingHandlers\", allBindingHandlers);\n const getValueAccessor = bindingsUpdater ? (bindingKey) => function(optionalValue) {\n const valueAccessor = bindingsUpdater()[bindingKey];\n if (arguments.length === 0) {\n return evaluateValueAccessor(valueAccessor);\n } else {\n return valueAccessor(optionalValue);\n }\n } : (bindingKey) => bindings[bindingKey];\n allBindings.has = (key) => key in bindings;\n allBindings.get = (key) => bindings[key] && evaluateValueAccessor(getValueAccessor(key));\n if (bindingEvent.childrenComplete in bindings) {\n bindingEvent.subscribe(node, bindingEvent.childrenComplete, () => {\n const callback = evaluateValueAccessor(bindings[bindingEvent.childrenComplete]);\n if (!callback) {\n return;\n }\n const nodes = virtualElements.childNodes(node);\n if (nodes.length) {\n callback(nodes, dataFor(nodes[0]));\n }\n });\n }\n const bindingsGenerated = topologicalSortBindings(bindings, $component);\n const nodeAsyncBindingPromises = /* @__PURE__ */ new Set();\n for (const [key, BindingHandlerClass] of bindingsGenerated) {\n let reportBindingError = function(during, errorCaptured) {\n onBindingError({\n during,\n errorCaptured,\n bindings,\n allBindings,\n bindingKey: key,\n bindingContext: bindingContext2,\n element: node,\n valueAccessor: getValueAccessor(key)\n });\n };\n if (node.nodeType === 8 && !BindingHandlerClass.allowVirtualElements) {\n throw new Error(`The binding '${key}' cannot be used with virtual elements`);\n }\n try {\n const bindingHandler = dependencyDetection.ignore(() => new BindingHandlerClass({\n allBindings,\n $element: node,\n $context: bindingContext2,\n onError: reportBindingError,\n valueAccessor(...v) {\n return getValueAccessor(key)(...v);\n }\n }));\n if (bindingHandler.onValueChange) {\n dependencyDetection.ignore(() => bindingHandler.computed(\"onValueChange\"));\n }\n allBindingHandlers[key] = bindingHandler;\n if (bindingHandler.controlsDescendants) {\n if (bindingHandlerThatControlsDescendantBindings !== void 0) {\n throw new Error(\"Multiple bindings (\" + bindingHandlerThatControlsDescendantBindings + \" and \" + key + \") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.\");\n }\n bindingHandlerThatControlsDescendantBindings = key;\n }\n if (bindingHandler.bindingCompleted instanceof Promise) {\n asyncBindingsApplied.add(bindingHandler.bindingCompleted);\n nodeAsyncBindingPromises.add(bindingHandler.bindingCompleted);\n }\n } catch (err) {\n reportBindingError(\"creation\", err);\n }\n }\n triggerDescendantsComplete(node, bindings, nodeAsyncBindingPromises);\n }\n const shouldBindDescendants = bindingHandlerThatControlsDescendantBindings === void 0;\n return { shouldBindDescendants };\n}\nfunction triggerDescendantsComplete(node, bindings, nodeAsyncBindingPromises) {\n const hasBindingHandler = bindingEvent.descendantsComplete in bindings;\n const hasFirstChild = virtualElements.firstChild(node);\n const accessor = hasBindingHandler && evaluateValueAccessor(bindings[bindingEvent.descendantsComplete]);\n const callback = () => {\n bindingEvent.notify(node, bindingEvent.descendantsComplete);\n if (accessor && hasFirstChild) {\n accessor(node);\n }\n };\n if (nodeAsyncBindingPromises.size) {\n Promise.all(nodeAsyncBindingPromises).then(callback);\n } else {\n callback();\n }\n}\nfunction getBindingContext(viewModelOrBindingContext, extendContextCallback) {\n return viewModelOrBindingContext && viewModelOrBindingContext instanceof bindingContext ? viewModelOrBindingContext : new bindingContext(viewModelOrBindingContext, void 0, void 0, extendContextCallback);\n}\nexport function applyBindingAccessorsToNode(node, bindings, viewModelOrBindingContext, asyncBindingsApplied) {\n if (node.nodeType === 1) {\n virtualElements.normaliseVirtualElementDomStructure(node);\n }\n return applyBindingsToNodeInternal(node, bindings, getBindingContext(viewModelOrBindingContext), asyncBindingsApplied);\n}\nexport function applyBindingsToNode(node, bindings, viewModelOrBindingContext) {\n const asyncBindingsApplied = /* @__PURE__ */ new Set();\n const bindingContext2 = getBindingContext(viewModelOrBindingContext);\n const bindingAccessors = getBindingProvider().makeBindingAccessors(bindings, bindingContext2, node);\n applyBindingAccessorsToNode(node, bindingAccessors, bindingContext2, asyncBindingsApplied);\n return new BindingResult({ asyncBindingsApplied, rootNode: node, bindingContext: bindingContext2 });\n}\nexport function applyBindingsToDescendants(viewModelOrBindingContext, rootNode) {\n const asyncBindingsApplied = /* @__PURE__ */ new Set();\n if (rootNode.nodeType === 1 || rootNode.nodeType === 8) {\n const bindingContext2 = getBindingContext(viewModelOrBindingContext);\n applyBindingsToDescendantsInternal(bindingContext2, rootNode, asyncBindingsApplied);\n return new BindingResult({ asyncBindingsApplied, rootNode, bindingContext: bindingContext2 });\n }\n return new BindingResult({ asyncBindingsApplied, rootNode });\n}\nexport function applyBindings(viewModelOrBindingContext, rootNode, extendContextCallback) {\n const asyncBindingsApplied = /* @__PURE__ */ new Set();\n if (!options.jQuery === void 0 && options.jQuery) {\n options.jQuery = options.jQuery;\n }\n if (!rootNode) {\n rootNode = window.document.body;\n if (!rootNode) {\n throw Error(\"ko.applyBindings: could not find window.document.body; has the document been loaded?\");\n }\n } else if (rootNode.nodeType !== 1 && rootNode.nodeType !== 8) {\n throw Error(\"ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node\");\n }\n const rootContext = getBindingContext(viewModelOrBindingContext, extendContextCallback);\n applyBindingsToNodeAndDescendantsInternal(rootContext, rootNode, asyncBindingsApplied);\n return Promise.all(asyncBindingsApplied);\n}\nfunction onBindingError(spec) {\n var error, bindingText;\n if (spec.bindingKey) {\n error = spec.errorCaptured;\n spec.message = 'Unable to process binding \"' + spec.bindingKey + '\" in binding \"' + spec.bindingKey + '\"\\nMessage: ' + (error.message ? error.message : error);\n } else {\n error = spec.errorCaptured;\n }\n try {\n extend(error, spec);\n } catch (e) {\n spec.stack = error.stack;\n error = new Error(error.message ? error.message : error);\n extend(error, spec);\n }\n options.onError(error);\n}\n", "// @tko/bind \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n fixUpContinuousNodeArray,\n replaceDomNodes,\n arrayPushAll,\n anyDomNodeIsAttachedToDocument,\n domData,\n arrayMap,\n arrayForEach,\n virtualElements,\n extend,\n cleanNode,\n removeNode,\n compareArrays\n} from \"@tko/utils\";\nimport {\n dependencyDetection,\n observable\n} from \"@tko/observable\";\nimport { computed } from \"@tko/computed\";\nfunction mapNodeAndRefreshWhenChanged(containerNode, mapping, valueToMap, callbackAfterAddingNodes, index) {\n var mappedNodes = [];\n var dependentObservable = computed(function() {\n var newMappedNodes = mapping(valueToMap, index, fixUpContinuousNodeArray(mappedNodes, containerNode)) || [];\n if (mappedNodes.length > 0) {\n replaceDomNodes(mappedNodes, newMappedNodes);\n if (callbackAfterAddingNodes) {\n dependencyDetection.ignore(callbackAfterAddingNodes, null, [valueToMap, newMappedNodes, index]);\n }\n }\n mappedNodes.length = 0;\n arrayPushAll(mappedNodes, newMappedNodes);\n }, null, { disposeWhenNodeIsRemoved: containerNode, disposeWhen: function() {\n return !anyDomNodeIsAttachedToDocument(mappedNodes);\n } });\n return { mappedNodes, dependentObservable: dependentObservable.isActive() ? dependentObservable : void 0 };\n}\nvar lastMappingResultDomDataKey = domData.nextKey();\nlet deletedItemDummyValue = domData.nextKey();\nexport function setDomNodeChildrenFromArrayMapping(domNode, array, mapping, options, callbackAfterAddingNodes, editScript) {\n array = array || [];\n if (typeof array.length === \"undefined\") {\n array = [array];\n }\n options = options || {};\n let lastMappingResult = domData.get(domNode, lastMappingResultDomDataKey);\n let isFirstExecution = !lastMappingResult;\n var newMappingResult = [];\n var lastMappingResultIndex = 0;\n var newMappingResultIndex = 0;\n var nodesToDelete = [];\n var itemsToProcess = [];\n var itemsForBeforeRemoveCallbacks = [];\n var itemsForMoveCallbacks = [];\n var itemsForAfterAddCallbacks = [];\n var mapData;\n let countWaitingForRemove = 0;\n function itemAdded(value) {\n mapData = { arrayEntry: value, indexObservable: observable(newMappingResultIndex++) };\n newMappingResult.push(mapData);\n itemsToProcess.push(mapData);\n if (!isFirstExecution) {\n itemsForAfterAddCallbacks.push(mapData);\n }\n }\n function itemMovedOrRetained(oldPosition) {\n mapData = lastMappingResult[oldPosition];\n if (newMappingResultIndex !== oldPosition) {\n itemsForMoveCallbacks.push(mapData);\n }\n mapData.indexObservable(newMappingResultIndex++);\n fixUpContinuousNodeArray(mapData.mappedNodes, domNode);\n newMappingResult.push(mapData);\n itemsToProcess.push(mapData);\n }\n function callCallback(callback, items) {\n if (callback) {\n for (var i2 = 0, n = items.length; i2 < n; i2++) {\n arrayForEach(items[i2].mappedNodes, function(node2) {\n callback(node2, i2, items[i2].arrayEntry);\n });\n }\n }\n }\n if (isFirstExecution) {\n arrayForEach(array, itemAdded);\n } else {\n if (!editScript || lastMappingResult && lastMappingResult[\"_countWaitingForRemove\"]) {\n var lastArray = isFirstExecution ? [] : arrayMap(lastMappingResult, function(x) {\n return x.arrayEntry;\n });\n var compareOptions = {\n \"dontLimitMoves\": options[\"dontLimitMoves\"],\n \"sparse\": true\n };\n editScript = compareArrays(lastArray, array, compareOptions);\n }\n for (var i = 0, editScriptItem, movedIndex, itemIndex; editScriptItem = editScript[i]; i++) {\n movedIndex = editScriptItem[\"moved\"];\n itemIndex = editScriptItem[\"index\"];\n switch (editScriptItem[\"status\"]) {\n case \"deleted\":\n while (lastMappingResultIndex < itemIndex) {\n itemMovedOrRetained(lastMappingResultIndex++);\n }\n if (movedIndex === void 0) {\n mapData = lastMappingResult[lastMappingResultIndex];\n if (mapData.dependentObservable) {\n mapData.dependentObservable.dispose();\n mapData.dependentObservable = void 0;\n }\n if (fixUpContinuousNodeArray(mapData.mappedNodes, domNode).length) {\n if (options[\"beforeRemove\"]) {\n newMappingResult.push(mapData);\n itemsToProcess.push(mapData);\n countWaitingForRemove++;\n if (mapData.arrayEntry === deletedItemDummyValue) {\n mapData = null;\n } else {\n itemsForBeforeRemoveCallbacks.push(mapData);\n }\n }\n if (mapData) {\n nodesToDelete.push.apply(nodesToDelete, mapData.mappedNodes);\n }\n }\n }\n lastMappingResultIndex++;\n break;\n case \"added\":\n while (newMappingResultIndex < itemIndex) {\n itemMovedOrRetained(lastMappingResultIndex++);\n }\n if (movedIndex !== void 0) {\n itemMovedOrRetained(movedIndex);\n } else {\n itemAdded(editScriptItem[\"value\"]);\n }\n break;\n }\n }\n while (newMappingResultIndex < array.length) {\n itemMovedOrRetained(lastMappingResultIndex++);\n }\n newMappingResult[\"_countWaitingForRemove\"] = countWaitingForRemove;\n }\n domData.set(domNode, lastMappingResultDomDataKey, newMappingResult);\n callCallback(options[\"beforeMove\"], itemsForMoveCallbacks);\n arrayForEach(nodesToDelete, options[\"beforeRemove\"] ? cleanNode : removeNode);\n i = 0;\n for (var nextNode = virtualElements.firstChild(domNode), lastNode, node; mapData = itemsToProcess[i]; i++) {\n if (!mapData.mappedNodes) {\n extend(mapData, mapNodeAndRefreshWhenChanged(domNode, mapping, mapData.arrayEntry, callbackAfterAddingNodes, mapData.indexObservable));\n }\n for (var j = 0; node = mapData.mappedNodes[j]; nextNode = node.nextSibling, lastNode = node, j++) {\n if (node !== nextNode) {\n virtualElements.insertAfter(domNode, node, lastNode);\n }\n }\n if (!mapData.initialized && callbackAfterAddingNodes) {\n callbackAfterAddingNodes(mapData.arrayEntry, mapData.mappedNodes, mapData.indexObservable);\n mapData.initialized = true;\n }\n }\n callCallback(options[\"beforeRemove\"], itemsForBeforeRemoveCallbacks);\n for (i = 0; i < itemsForBeforeRemoveCallbacks.length; ++i) {\n itemsForBeforeRemoveCallbacks[i].arrayEntry = deletedItemDummyValue;\n }\n callCallback(options[\"afterMove\"], itemsForMoveCallbacks);\n callCallback(options[\"afterAdd\"], itemsForAfterAddCallbacks);\n}\n", "// @tko/bind \uD83E\uDD4A 4.0.0-beta1.3 ESM\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\nimport { applyBindingsToDescendants } from \"./applyBindings\";\nimport { AsyncBindingHandler } from \"./BindingHandler\";\nexport class DescendantBindingHandler extends AsyncBindingHandler {\n get controlsDescendants() {\n return true;\n }\n applyBindingsToDescendants(childContext, callback) {\n return __async(this, null, function* () {\n const bindingResult = applyBindingsToDescendants(childContext, this.$element);\n if (bindingResult.isSync) {\n this.bindingCompletion = bindingResult;\n } else {\n yield bindingResult.completionPromise;\n }\n if (callback) {\n callback(bindingResult);\n }\n this.completeBinding(bindingResult);\n });\n }\n}\n", "// @tko/binding.template \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n tagNameLower as tagNameLowerFn,\n setHtml,\n domData,\n parseHtmlForTemplateNodes\n} from \"@tko/utils\";\nvar templateScript = 1, templateTextArea = 2, templateTemplate = 3, templateElement = 4;\nexport function domElement(element) {\n this.domElement = element;\n if (!element) {\n return;\n }\n var tagNameLower = tagNameLowerFn(element);\n this.templateType = tagNameLower === \"script\" ? templateScript : tagNameLower === \"textarea\" ? templateTextArea : tagNameLower == \"template\" && element.content && element.content.nodeType === 11 ? templateTemplate : templateElement;\n}\ndomElement.prototype.text = function() {\n var elemContentsProperty = this.templateType === templateScript ? \"text\" : this.templateType === templateTextArea ? \"value\" : \"innerHTML\";\n if (arguments.length == 0) {\n return this.domElement[elemContentsProperty];\n } else {\n var valueToWrite = arguments[0];\n if (elemContentsProperty === \"innerHTML\") {\n setHtml(this.domElement, valueToWrite);\n } else {\n this.domElement[elemContentsProperty] = valueToWrite;\n }\n }\n};\nvar dataDomDataPrefix = domData.nextKey() + \"_\";\ndomElement.prototype.data = function(key) {\n if (arguments.length === 1) {\n return domData.get(this.domElement, dataDomDataPrefix + key);\n } else {\n domData.set(this.domElement, dataDomDataPrefix + key, arguments[1]);\n }\n};\nvar templatesDomDataKey = domData.nextKey();\nfunction getTemplateDomData(element) {\n return domData.get(element, templatesDomDataKey) || {};\n}\nfunction setTemplateDomData(element, data) {\n domData.set(element, templatesDomDataKey, data);\n}\ndomElement.prototype.nodes = function() {\n var element = this.domElement;\n if (arguments.length == 0) {\n const templateData = getTemplateDomData(element);\n let nodes = templateData.containerData || (this.templateType === templateTemplate ? element.content : this.templateType === templateElement ? element : void 0);\n if (!nodes || templateData.alwaysCheckText) {\n const text = this[\"text\"]();\n if (text) {\n nodes = parseHtmlForTemplateNodes(text, element.ownerDocument);\n this[\"text\"](\"\");\n setTemplateDomData(element, { containerData: nodes, alwaysCheckText: true });\n }\n }\n return nodes;\n } else {\n var valueToWrite = arguments[0];\n setTemplateDomData(element, { containerData: valueToWrite });\n }\n};\nexport function anonymousTemplate(element) {\n this.domElement = element;\n}\nanonymousTemplate.prototype = new domElement();\nanonymousTemplate.prototype.constructor = anonymousTemplate;\nanonymousTemplate.prototype.text = function() {\n if (arguments.length == 0) {\n var templateData = getTemplateDomData(this.domElement);\n if (templateData.textData === void 0 && templateData.containerData) {\n templateData.textData = templateData.containerData.innerHTML;\n }\n return templateData.textData;\n } else {\n var valueToWrite = arguments[0];\n setTemplateDomData(this.domElement, { textData: valueToWrite });\n }\n};\n", "// @tko/binding.template \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n extend,\n options\n} from \"@tko/utils\";\nimport {\n domElement,\n anonymousTemplate\n} from \"./templateSources\";\nexport function templateEngine() {\n}\n;\nextend(templateEngine.prototype, {\n renderTemplateSource: function(templateSource, bindingContext, options2, templateDocument) {\n options2.onError(\"Override renderTemplateSource\");\n },\n createJavaScriptEvaluatorBlock: function(script) {\n options.onError(\"Override createJavaScriptEvaluatorBlock\");\n },\n makeTemplateSource: function(template, templateDocument) {\n if (typeof template === \"string\") {\n templateDocument = templateDocument || document;\n var elem = templateDocument.getElementById(template);\n if (!elem) {\n options.onError(\"Cannot find template with ID \" + template);\n }\n return new domElement(elem);\n } else if (template.nodeType == 1 || template.nodeType == 8) {\n return new anonymousTemplate(template);\n } else {\n options.onError(\"Unknown template type: \" + template);\n }\n },\n renderTemplate: function(template, bindingContext, options2, templateDocument) {\n var templateSource = this[\"makeTemplateSource\"](template, templateDocument);\n return this.renderTemplateSource(templateSource, bindingContext, options2, templateDocument);\n }\n});\n", "// @tko/binding.template \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n virtualElements,\n fixUpContinuousNodeArray,\n replaceDomNodes,\n memoization,\n domNodeIsAttachedToDocument,\n moveCleanedNodesToContainerElement,\n arrayFilter,\n domData,\n options as koOptions\n} from \"@tko/utils\";\nimport {\n applyBindings,\n setDomNodeChildrenFromArrayMapping,\n AsyncBindingHandler,\n bindingEvent,\n bindingContext as BindingContextConstructor\n} from \"@tko/bind\";\nimport {\n computed\n} from \"@tko/computed\";\nimport {\n isObservable,\n dependencyDetection,\n unwrap,\n observable,\n isObservableArray\n} from \"@tko/observable\";\nimport {\n templateEngine\n} from \"./templateEngine\";\nimport {\n anonymousTemplate as AnonymousTemplate\n} from \"./templateSources\";\nvar _templateEngine;\nconst cleanContainerDomDataKey = domData.nextKey();\nexport function setTemplateEngine(tEngine) {\n if (tEngine !== void 0 && !(tEngine instanceof templateEngine)) {\n throw new Error(\"templateEngine must inherit from ko.templateEngine\");\n }\n _templateEngine = tEngine;\n}\nfunction invokeForEachNodeInContinuousRange(firstNode, lastNode, action) {\n let node;\n let nextInQueue = firstNode;\n let firstOutOfRangeNode = virtualElements.nextSibling(lastNode);\n while (nextInQueue && (node = nextInQueue) !== firstOutOfRangeNode) {\n nextInQueue = virtualElements.nextSibling(node);\n action(node, nextInQueue);\n }\n}\nfunction activateBindingsOnContinuousNodeArray(continuousNodeArray, bindingContext, afterBindingCallback) {\n if (continuousNodeArray.length) {\n var firstNode = continuousNodeArray[0];\n var lastNode = continuousNodeArray[continuousNodeArray.length - 1];\n var parentNode = firstNode.parentNode;\n var provider = koOptions.bindingProviderInstance;\n var preprocessNode = provider.preprocessNode;\n if (preprocessNode) {\n invokeForEachNodeInContinuousRange(firstNode, lastNode, function(node, nextNodeInRange) {\n var nodePreviousSibling = node.previousSibling;\n var newNodes = preprocessNode.call(provider, node);\n if (newNodes) {\n if (node === firstNode) {\n firstNode = newNodes[0] || nextNodeInRange;\n }\n if (node === lastNode) {\n lastNode = newNodes[newNodes.length - 1] || nodePreviousSibling;\n }\n }\n });\n continuousNodeArray.length = 0;\n if (!firstNode) {\n return;\n }\n if (firstNode === lastNode) {\n continuousNodeArray.push(firstNode);\n } else {\n continuousNodeArray.push(firstNode, lastNode);\n fixUpContinuousNodeArray(continuousNodeArray, parentNode);\n }\n }\n invokeForEachNodeInContinuousRange(firstNode, lastNode, function(node) {\n if (node.nodeType === 1 || node.nodeType === 8) {\n applyBindings(bindingContext, node).then(afterBindingCallback);\n }\n });\n invokeForEachNodeInContinuousRange(firstNode, lastNode, function(node) {\n if (node.nodeType === 1 || node.nodeType === 8) {\n memoization.unmemoizeDomNodeAndDescendants(node, [bindingContext]);\n }\n });\n fixUpContinuousNodeArray(continuousNodeArray, parentNode);\n }\n}\nfunction getFirstNodeFromPossibleArray(nodeOrNodeArray) {\n return nodeOrNodeArray.nodeType ? nodeOrNodeArray : nodeOrNodeArray.length > 0 ? nodeOrNodeArray[0] : null;\n}\nfunction executeTemplate(targetNodeOrNodeArray, renderMode, template, bindingContext, options, afterBindingCallback) {\n options = options || {};\n var firstTargetNode = targetNodeOrNodeArray && getFirstNodeFromPossibleArray(targetNodeOrNodeArray);\n var templateDocument = (firstTargetNode || template || {}).ownerDocument;\n var templateEngineToUse = options.templateEngine || _templateEngine;\n var renderedNodesArray = templateEngineToUse.renderTemplate(template, bindingContext, options, templateDocument);\n if (typeof renderedNodesArray.length !== \"number\" || renderedNodesArray.length > 0 && typeof renderedNodesArray[0].nodeType !== \"number\") {\n throw new Error(\"Template engine must return an array of DOM nodes\");\n }\n var haveAddedNodesToParent = false;\n switch (renderMode) {\n case \"replaceChildren\":\n virtualElements.setDomNodeChildren(targetNodeOrNodeArray, renderedNodesArray);\n haveAddedNodesToParent = true;\n break;\n case \"replaceNode\":\n replaceDomNodes(targetNodeOrNodeArray, renderedNodesArray);\n haveAddedNodesToParent = true;\n break;\n case \"ignoreTargetNode\":\n break;\n default:\n throw new Error(\"Unknown renderMode: \" + renderMode);\n }\n if (haveAddedNodesToParent) {\n activateBindingsOnContinuousNodeArray(renderedNodesArray, bindingContext, afterBindingCallback);\n if (options.afterRender) {\n dependencyDetection.ignore(options.afterRender, null, [renderedNodesArray, bindingContext[\"$data\"]]);\n }\n if (renderMode === \"replaceChildren\") {\n bindingEvent.notify(targetNodeOrNodeArray, bindingEvent.childrenComplete);\n }\n }\n return renderedNodesArray;\n}\nfunction resolveTemplateName(template, data, context) {\n if (isObservable(template)) {\n return template();\n } else if (typeof template === \"function\") {\n return template(data, context);\n } else {\n return template;\n }\n}\nexport function renderTemplate(template, dataOrBindingContext, options, targetNodeOrNodeArray, renderMode, afterBindingCallback) {\n options = options || {};\n if ((options.templateEngine || _templateEngine) === void 0) {\n throw new Error(\"Set a template engine before calling renderTemplate\");\n }\n renderMode = renderMode || \"replaceChildren\";\n if (targetNodeOrNodeArray) {\n var firstTargetNode = getFirstNodeFromPossibleArray(targetNodeOrNodeArray);\n var whenToDispose = function() {\n return !firstTargetNode || !domNodeIsAttachedToDocument(firstTargetNode);\n };\n var activelyDisposeWhenNodeIsRemoved = firstTargetNode && renderMode === \"replaceNode\" ? firstTargetNode.parentNode : firstTargetNode;\n return computed(function() {\n var bindingContext = dataOrBindingContext && dataOrBindingContext instanceof BindingContextConstructor ? dataOrBindingContext : new BindingContextConstructor(dataOrBindingContext, null, null, null, { \"exportDependencies\": true });\n var templateName = resolveTemplateName(template, bindingContext.$data, bindingContext);\n const renderedNodesArray = executeTemplate(targetNodeOrNodeArray, renderMode, templateName, bindingContext, options, afterBindingCallback);\n if (renderMode === \"replaceNode\") {\n targetNodeOrNodeArray = renderedNodesArray;\n firstTargetNode = getFirstNodeFromPossibleArray(targetNodeOrNodeArray);\n }\n }, null, { disposeWhen: whenToDispose, disposeWhenNodeIsRemoved: activelyDisposeWhenNodeIsRemoved });\n } else {\n return memoization.memoize(function(domNode) {\n renderTemplate(template, dataOrBindingContext, options, domNode, \"replaceNode\");\n });\n }\n}\nexport default function renderTemplateForEach(template, arrayOrObservableArray, options, targetNode, parentBindingContext, afterBindingCallback) {\n var arrayItemContext;\n function executeTemplateForArrayItem(arrayValue, index) {\n if (options.as) {\n if (koOptions.createChildContextWithAs) {\n arrayItemContext = parentBindingContext.createChildContext(arrayValue, options.as, (context) => {\n context.$index = index;\n });\n } else {\n arrayItemContext = parentBindingContext.extend({\n [options.as]: arrayValue,\n $index: index\n });\n }\n } else {\n arrayItemContext = parentBindingContext.createChildContext(arrayValue, options.as, (context) => {\n context.$index = index;\n });\n }\n var templateName = resolveTemplateName(template, arrayValue, arrayItemContext);\n return executeTemplate(targetNode, \"ignoreTargetNode\", templateName, arrayItemContext, options, afterBindingCallback);\n }\n var activateBindingsCallback = function(arrayValue, addedNodesArray) {\n activateBindingsOnContinuousNodeArray(addedNodesArray, arrayItemContext, afterBindingCallback);\n if (options.afterRender) {\n options.afterRender(addedNodesArray, arrayValue);\n }\n arrayItemContext = null;\n };\n function localSetDomNodeChildrenFromArrayMapping(newArray, changeList) {\n dependencyDetection.ignore(setDomNodeChildrenFromArrayMapping, null, [targetNode, newArray, executeTemplateForArrayItem, options, activateBindingsCallback, changeList]);\n bindingEvent.notify(targetNode, bindingEvent.childrenComplete);\n }\n const shouldHideDestroyed = options.includeDestroyed === false || koOptions.foreachHidesDestroyed && !options.includeDestroyed;\n if (!shouldHideDestroyed && !options.beforeRemove && isObservableArray(arrayOrObservableArray)) {\n localSetDomNodeChildrenFromArrayMapping(arrayOrObservableArray.peek());\n var subscription = arrayOrObservableArray.subscribe(function(changeList) {\n localSetDomNodeChildrenFromArrayMapping(arrayOrObservableArray(), changeList);\n }, null, \"arrayChange\");\n subscription.disposeWhenNodeIsRemoved(targetNode);\n return subscription;\n } else {\n return computed(function() {\n var unwrappedArray = unwrap(arrayOrObservableArray) || [];\n const unwrappedIsIterable = Symbol.iterator in unwrappedArray;\n if (!unwrappedIsIterable) {\n unwrappedArray = [unwrappedArray];\n }\n if (shouldHideDestroyed) {\n unwrappedArray = arrayFilter(unwrappedArray, function(item) {\n return item === void 0 || item === null || !unwrap(item._destroy);\n });\n }\n localSetDomNodeChildrenFromArrayMapping(unwrappedArray);\n }, null, { disposeWhenNodeIsRemoved: targetNode });\n }\n}\nlet templateComputedDomDataKey = domData.nextKey();\nexport class TemplateBindingHandler extends AsyncBindingHandler {\n constructor(params) {\n super(params);\n const element = this.$element;\n const bindingValue = unwrap(this.value);\n domData.set(element, \"conditional\", {\n elseChainSatisfied: observable(true)\n });\n if (typeof bindingValue === \"string\" || bindingValue.name) {\n this.bindNamedTemplate();\n } else if (\"nodes\" in bindingValue) {\n this.bindNodeTemplate(bindingValue.nodes || []);\n } else {\n this.bindAnonymousTemplate();\n }\n }\n bindNamedTemplate() {\n virtualElements.emptyNode(this.$element);\n }\n bindNodeTemplate(nodes) {\n if (isObservable(nodes)) {\n throw new Error('The \"nodes\" option must be a plain, non-observable array.');\n }\n let container = nodes[0] && nodes[0].parentNode;\n if (!container || !domData.get(container, cleanContainerDomDataKey)) {\n container = moveCleanedNodesToContainerElement(nodes);\n domData.set(container, cleanContainerDomDataKey, true);\n }\n new AnonymousTemplate(this.$element).nodes(container);\n }\n bindAnonymousTemplate() {\n const templateNodes = virtualElements.childNodes(this.$element);\n if (templateNodes.length === 0) {\n throw new Error(\"Anonymous template defined, but no template content was provided.\");\n }\n const container = moveCleanedNodesToContainerElement(templateNodes);\n new AnonymousTemplate(this.$element).nodes(container);\n }\n onValueChange() {\n const element = this.$element;\n const bindingContext = this.$context;\n var value = this.value;\n var options = unwrap(value);\n var shouldDisplay = true;\n var templateComputed = null;\n var elseChainSatisfied = domData.get(element, \"conditional\").elseChainSatisfied;\n var templateName;\n if (typeof options === \"string\") {\n templateName = value;\n options = {};\n } else {\n templateName = options.name;\n if (\"if\" in options) {\n shouldDisplay = unwrap(options.if);\n }\n if (shouldDisplay && \"ifnot\" in options) {\n shouldDisplay = !unwrap(options.ifnot);\n }\n }\n if (\"foreach\" in options) {\n var dataArray = shouldDisplay && options.foreach || [];\n templateComputed = renderTemplateForEach(templateName || element, dataArray, options, element, bindingContext, this.completeBinding);\n elseChainSatisfied((unwrap(dataArray) || []).length !== 0);\n } else if (shouldDisplay) {\n var innerBindingContext = \"data\" in options ? bindingContext.createStaticChildContext(options.data, options.as) : bindingContext;\n templateComputed = renderTemplate(templateName || element, innerBindingContext, options, element, void 0, this.completeBinding);\n elseChainSatisfied(true);\n } else {\n virtualElements.emptyNode(element);\n elseChainSatisfied(false);\n }\n this.disposeOldComputedAndStoreNewOne(element, templateComputed);\n }\n disposeOldComputedAndStoreNewOne(element, newComputed) {\n let oldComputed = domData.get(element, templateComputedDomDataKey);\n if (oldComputed && typeof oldComputed.dispose === \"function\") {\n oldComputed.dispose();\n }\n domData.set(element, templateComputedDomDataKey, newComputed && (!newComputed.isActive || newComputed.isActive()) ? newComputed : void 0);\n }\n get controlsDescendants() {\n return true;\n }\n static get allowVirtualElements() {\n return true;\n }\n}\n", "// @tko/binding.template \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n ieVersion,\n makeArray,\n parseHtmlFragment\n} from \"@tko/utils\";\nimport {\n templateEngine\n} from \"./templateEngine\";\nimport {\n setTemplateEngine\n} from \"./templating\";\nexport function nativeTemplateEngine() {\n}\nnativeTemplateEngine.prototype = new templateEngine();\nnativeTemplateEngine.prototype.constructor = nativeTemplateEngine;\nnativeTemplateEngine.prototype.renderTemplateSource = function(templateSource, bindingContext, options2, templateDocument) {\n var useNodesIfAvailable = !(ieVersion < 9), templateNodesFunc = useNodesIfAvailable ? templateSource.nodes : null, templateNodes = templateNodesFunc ? templateSource.nodes() : null;\n if (templateNodes) {\n return makeArray(templateNodes.cloneNode(true).childNodes);\n } else {\n var templateText = templateSource.text();\n return parseHtmlFragment(templateText, templateDocument);\n }\n};\nnativeTemplateEngine.instance = new nativeTemplateEngine();\nsetTemplateEngine(nativeTemplateEngine.instance);\n", "// @tko/binding.template \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n unwrap,\n peek\n} from \"@tko/observable\";\nimport {\n nativeTemplateEngine\n} from \"./nativeTemplateEngine\";\nimport {\n TemplateBindingHandler\n} from \"./templating\";\nexport class TemplateForEachBindingHandler extends TemplateBindingHandler {\n get value() {\n const modelValue = this.valueAccessor();\n const unwrappedValue = peek(modelValue);\n if (!unwrappedValue || typeof unwrappedValue.length === \"number\") {\n return { foreach: modelValue, templateEngine: nativeTemplateEngine.instance };\n }\n unwrap(modelValue);\n return {\n foreach: unwrappedValue.data,\n as: unwrappedValue.as,\n includeDestroyed: unwrappedValue.includeDestroyed,\n afterAdd: unwrappedValue.afterAdd,\n beforeRemove: unwrappedValue.beforeRemove,\n afterRender: unwrappedValue.afterRender,\n beforeMove: unwrappedValue.beforeMove,\n afterMove: unwrappedValue.afterMove,\n templateEngine: nativeTemplateEngine.instance\n };\n }\n}\n", "// @tko/binding.template \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n TemplateForEachBindingHandler\n} from \"./foreach\";\nimport {\n TemplateBindingHandler\n} from \"./templating\";\nexport const bindings = {\n foreach: TemplateForEachBindingHandler,\n template: TemplateBindingHandler\n};\nexport * from \"./nativeTemplateEngine\";\nexport * from \"./templateEngine\";\nexport * from \"./templating\";\nexport * from \"./templateSources\";\n", "// @tko/builder \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n addDisposeCallback,\n addOrRemoveItem,\n arrayFilter,\n arrayFirst,\n arrayForEach,\n arrayGetDistinctValues,\n arrayIndexOf,\n arrayMap,\n arrayPushAll,\n arrayRemoveItem,\n addCleaner,\n cleanNode,\n cloneNodes,\n compareArrays,\n createSymbolOrString,\n domData,\n extend,\n memoization,\n objectForEach,\n objectMap,\n options,\n parseHtmlFragment,\n parseJson,\n range,\n registerEventHandler,\n removeCleaner,\n removeDisposeCallback,\n removeNode,\n selectExtensions,\n setHtml,\n setTextContent,\n tasks,\n toggleDomNodeCssClass,\n triggerEvent,\n virtualElements\n} from \"@tko/utils\";\nimport {\n parseObjectLiteral\n} from \"@tko/utils.parser\";\nimport {\n LifeCycle\n} from \"@tko/lifecycle\";\nimport {\n dependencyDetection,\n extenders as defaultExtenders,\n isObservable,\n isSubscribable,\n isWriteableObservable,\n observable,\n observableArray,\n isObservableArray,\n peek,\n subscribable,\n toJS,\n toJSON,\n unwrap\n} from \"@tko/observable\";\nimport {\n computed,\n isComputed,\n isPureComputed,\n proxy,\n pureComputed,\n when\n} from \"@tko/computed\";\nimport {\n applyBindingAccessorsToNode,\n applyBindings,\n applyBindingsToDescendants,\n applyBindingsToNode,\n contextFor,\n dataFor,\n bindingEvent,\n BindingHandler,\n AsyncBindingHandler,\n setDomNodeChildrenFromArrayMapping\n} from \"@tko/bind\";\nimport {\n anonymousTemplate,\n domElement,\n nativeTemplateEngine,\n renderTemplate,\n setTemplateEngine,\n templateEngine\n} from \"@tko/binding.template\";\nconst domNodeDisposal = {\n addDisposeCallback,\n removeDisposeCallback,\n removeNode,\n addCleaner,\n removeCleaner,\n get cleanExternalData() {\n return options.cleanExternalData;\n },\n set cleanExternalData(cleanerFn) {\n options.set(\"cleanExternalData\", cleanerFn);\n }\n};\nconst utils = Object.assign({\n addOrRemoveItem,\n arrayFilter,\n arrayFirst,\n arrayForEach,\n arrayGetDistinctValues,\n arrayIndexOf,\n arrayMap,\n arrayPushAll,\n arrayRemoveItem,\n cloneNodes,\n compareArrays,\n createSymbolOrString,\n domData,\n domNodeDisposal,\n extend,\n filters: options.filters,\n objectForEach,\n objectMap,\n parseHtmlFragment,\n parseJson,\n parseObjectLiteral,\n peekObservable: peek,\n range,\n registerEventHandler,\n setDomNodeChildrenFromArrayMapping,\n setHtml,\n setTextContent,\n toggleDomNodeCssClass,\n triggerEvent,\n unwrapObservable: unwrap\n});\nconst knockout = {\n cleanNode,\n dependencyDetection,\n computedContext: dependencyDetection,\n filters: options.filters,\n ignoreDependencies: dependencyDetection.ignore,\n memoization,\n options,\n removeNode,\n selectExtensions,\n tasks,\n utils,\n LifeCycle,\n isObservable,\n isSubscribable,\n isWriteableObservable,\n isWritableObservable: isWriteableObservable,\n observable,\n observableArray,\n isObservableArray,\n peek,\n subscribable,\n unwrap,\n toJS,\n toJSON,\n proxy,\n computed,\n dependentObservable: computed,\n isComputed,\n isPureComputed,\n pureComputed,\n when,\n nativeTemplateEngine,\n renderTemplate,\n setTemplateEngine,\n templateEngine,\n templateSources: { domElement, anonymousTemplate },\n applyBindingAccessorsToNode,\n applyBindings,\n applyBindingsToDescendants,\n applyBindingsToNode,\n contextFor,\n dataFor,\n BindingHandler,\n AsyncBindingHandler,\n virtualElements,\n domNodeDisposal,\n bindingEvent\n};\nexport class Builder {\n constructor({ provider, bindings, extenders, filters, options: options2 }) {\n Object.assign(knockout.options, options2, {\n filters,\n bindingProviderInstance: provider\n });\n provider.setGlobals(knockout.options.bindingGlobals);\n if (Array.isArray(bindings)) {\n for (const bindingsObject of bindings) {\n provider.bindingHandlers.set(bindingsObject);\n }\n } else {\n provider.bindingHandlers.set(bindings);\n }\n this.providedProperties = {\n extenders: Object.assign(defaultExtenders, extenders),\n bindingHandlers: provider.bindingHandlers,\n bindingProvider: provider\n };\n }\n create(...additionalProperties) {\n const instance = Object.assign({\n get getBindingHandler() {\n return options.getBindingHandler;\n },\n set getBindingHandler(fn) {\n options.set(\"getBindingHandler\", fn);\n }\n }, knockout, this.providedProperties, ...additionalProperties);\n instance.options.knockoutInstance = instance;\n return instance;\n }\n}\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(new Error(\"Given extraneous `value` parameter (first param should be a string, but it was an object).\" + nameOrObject));\n }\n Object.assign(this, nameOrObject);\n } else {\n options.onError(new Error(\"Given a bad binding handler type: \" + nameOrObject));\n }\n }\n get(nameOrDotted) {\n const [name] = nameOrDotted.split(\".\");\n return this[name];\n }\n}\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(dependencyDetection.ignore(callback), (value, key) => () => callback()[key]);\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", "// @tko/provider.bindingstring \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n Parser,\n parseObjectLiteral\n} from \"@tko/utils.parser\";\nimport {\n Provider\n} from \"@tko/provider\";\nexport default class BindingStringProvider extends Provider {\n *processBinding(key, value) {\n const [handlerName, property] = key.split(\".\");\n const handler = this.bindingHandlers.get(handlerName);\n if (handler && handler.preprocess) {\n const bindingsAddedByHandler = [];\n const chainFn = (...args) => bindingsAddedByHandler.push(args);\n value = handler.preprocess(value, key, chainFn);\n for (const [key2, value2] of bindingsAddedByHandler) {\n yield* this.processBinding(key2, value2);\n }\n } else if (property) {\n value = `{${property}:${value}}`;\n }\n yield `'${handlerName}':${value}`;\n }\n *generateBindingString(bindingStringOrObjects) {\n const bindingObjectsArray = typeof bindingStringOrObjects === \"string\" ? parseObjectLiteral(bindingStringOrObjects) : bindingStringOrObjects;\n for (const { key, unknown, value } of bindingObjectsArray) {\n yield* this.processBinding(key || unknown, value);\n }\n }\n preProcessBindings(bindingStringOrObjects) {\n return Array.from(this.generateBindingString(bindingStringOrObjects)).join(\",\");\n }\n getBindingAccessors(node, context) {\n const bindingString = node && this.getBindingString(node);\n if (!bindingString) {\n return;\n }\n const processed = this.preProcessBindings(bindingString);\n return new Parser().parse(processed, context, this.globals, node);\n }\n getBindingString() {\n throw new Error(\"Overload getBindingString.\");\n }\n}\n", "// @tko/provider.virtual \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n virtualElements\n} from \"@tko/utils\";\nimport {\n BindingStringProvider\n} from \"@tko/provider.bindingstring\";\nexport default class VirtualProvider extends BindingStringProvider {\n get FOR_NODE_TYPES() {\n return [1, 8];\n }\n preprocessNode(node) {\n if (node.tagName === \"KO\") {\n const parent = node.parentNode;\n const childNodes = [...node.childNodes];\n const virtualBindingString = [...this.genElementBindingStrings(node)].join(\",\");\n const openNode = document.createComment(\"ko \" + virtualBindingString);\n const closeNode = document.createComment(\"/ko\");\n parent.insertBefore(openNode, node);\n for (const child of childNodes) {\n parent.insertBefore(child, node);\n }\n parent.insertBefore(closeNode, node);\n node.remove();\n return [openNode, ...childNodes, closeNode];\n }\n }\n *genElementBindingStrings(node) {\n for (const { name, value } of node.attributes) {\n yield `${name.replace(/^ko-/, \"\")}: ${value}`;\n }\n }\n getBindingString(node) {\n if (node.nodeType === document.COMMENT_NODE) {\n return virtualElements.virtualNodeBindingValue(node);\n }\n }\n nodeHasBindings(node) {\n if (node.nodeType === document.COMMENT_NODE) {\n return virtualElements.isStartComment(node);\n }\n }\n}\n", "// @tko/provider.databind \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n BindingStringProvider\n} from \"@tko/provider.bindingstring\";\nexport default class DataBindProvider extends BindingStringProvider {\n get FOR_NODE_TYPES() {\n return [1];\n }\n get BIND_ATTRIBUTE() {\n return \"data-bind\";\n }\n getBindingString(node) {\n if (node.nodeType === document.ELEMENT_NODE) {\n return node.getAttribute(this.BIND_ATTRIBUTE);\n }\n }\n nodeHasBindings(node) {\n if (node.nodeType === document.ELEMENT_NODE) {\n return node.hasAttribute(this.BIND_ATTRIBUTE);\n }\n }\n}\n", "// @tko/utils.component \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n subscribable,\n dependencyDetection\n} from \"@tko/observable\";\nimport {\n getObjectOwnProperty,\n tasks\n} from \"@tko/utils\";\nvar loadingSubscribablesCache = {}, loadedDefinitionsCache = {};\nfunction loadComponentAndNotify(componentName, callback) {\n var _subscribable = getObjectOwnProperty(loadingSubscribablesCache, componentName), completedAsync;\n if (!_subscribable) {\n _subscribable = loadingSubscribablesCache[componentName] = new subscribable();\n _subscribable.subscribe(callback);\n beginLoadingComponent(componentName, function(definition, config) {\n var isSynchronousComponent = !!(config && config.synchronous);\n loadedDefinitionsCache[componentName] = { definition, isSynchronousComponent };\n delete loadingSubscribablesCache[componentName];\n if (completedAsync || isSynchronousComponent) {\n _subscribable.notifySubscribers(definition);\n } else {\n tasks.schedule(function() {\n _subscribable.notifySubscribers(definition);\n });\n }\n });\n completedAsync = true;\n } else {\n _subscribable.subscribe(callback);\n }\n}\nfunction beginLoadingComponent(componentName, callback) {\n getFirstResultFromLoaders(\"getConfig\", [componentName], function(config) {\n if (config) {\n getFirstResultFromLoaders(\"loadComponent\", [componentName, config], function(definition) {\n callback(definition, config);\n });\n } else {\n callback(null, null);\n }\n });\n}\nfunction getFirstResultFromLoaders(methodName, argsExceptCallback, callback, candidateLoaders) {\n if (!candidateLoaders) {\n candidateLoaders = registry.loaders.slice(0);\n }\n var currentCandidateLoader = candidateLoaders.shift();\n if (currentCandidateLoader) {\n var methodInstance = currentCandidateLoader[methodName];\n if (methodInstance) {\n var wasAborted = false, synchronousReturnValue = methodInstance.apply(currentCandidateLoader, argsExceptCallback.concat(function(result) {\n if (wasAborted) {\n callback(null);\n } else if (result !== null) {\n callback(result);\n } else {\n getFirstResultFromLoaders(methodName, argsExceptCallback, callback, candidateLoaders);\n }\n }));\n if (synchronousReturnValue !== void 0) {\n wasAborted = true;\n if (!currentCandidateLoader.suppressLoaderExceptions) {\n throw new Error(\"Component loaders must supply values by invoking the callback, not by returning values synchronously.\");\n }\n }\n } else {\n getFirstResultFromLoaders(methodName, argsExceptCallback, callback, candidateLoaders);\n }\n } else {\n callback(null);\n }\n}\nexport var registry = {\n get(componentName, callback) {\n var cachedDefinition = getObjectOwnProperty(loadedDefinitionsCache, componentName);\n if (cachedDefinition) {\n if (cachedDefinition.isSynchronousComponent) {\n dependencyDetection.ignore(function() {\n callback(cachedDefinition.definition);\n });\n } else {\n tasks.schedule(function() {\n callback(cachedDefinition.definition);\n });\n }\n } else {\n loadComponentAndNotify(componentName, callback);\n }\n },\n clearCachedDefinition(componentName) {\n delete loadedDefinitionsCache[componentName];\n },\n _getFirstResultFromLoaders: getFirstResultFromLoaders,\n loaders: []\n};\n", "// @tko/utils.component \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n isDomElement,\n isDocumentFragment,\n tagNameLower,\n parseHtmlFragment,\n makeArray,\n cloneNodes,\n hasOwnProperty\n} from \"@tko/utils\";\nimport { registry } from \"./registry\";\nexport var defaultConfigRegistry = {};\nexport const VIEW_MODEL_FACTORY = Symbol(\"Knockout View Model ViewModel factory\");\nexport function register(componentName, config) {\n if (!config) {\n throw new Error(\"Invalid configuration for \" + componentName);\n }\n if (isRegistered(componentName)) {\n throw new Error(\"Component \" + componentName + \" is already registered\");\n }\n const ceok = componentName.includes(\"-\") && componentName.toLowerCase() === componentName;\n if (!config.ignoreCustomElementWarning && !ceok) {\n console.log(`\n\\u{1F94A} Knockout warning: components for custom elements must be lowercase and contain a dash. To ignore this warning, add to the 'config' of .register(componentName, config):\n\n ignoreCustomElementWarning: true\n `);\n }\n defaultConfigRegistry[componentName] = config;\n}\nexport function isRegistered(componentName) {\n return hasOwnProperty(defaultConfigRegistry, componentName);\n}\nexport function unregister(componentName) {\n delete defaultConfigRegistry[componentName];\n registry.clearCachedDefinition(componentName);\n}\nexport var defaultLoader = {\n getConfig: function(componentName, callback) {\n var result = hasOwnProperty(defaultConfigRegistry, componentName) ? defaultConfigRegistry[componentName] : null;\n callback(result);\n },\n loadComponent: function(componentName, config, callback) {\n var errorCallback = makeErrorCallback(componentName);\n possiblyGetConfigFromAmd(errorCallback, config, function(loadedConfig) {\n resolveConfig(componentName, errorCallback, loadedConfig, callback);\n });\n },\n loadTemplate: function(componentName, templateConfig, callback) {\n resolveTemplate(makeErrorCallback(componentName), templateConfig, callback);\n },\n loadViewModel: function(componentName, viewModelConfig, callback) {\n resolveViewModel(makeErrorCallback(componentName), viewModelConfig, callback);\n }\n};\nvar createViewModelKey = \"createViewModel\";\nfunction resolveConfig(componentName, errorCallback, config, callback) {\n var result = {}, makeCallBackWhenZero = 2, tryIssueCallback = function() {\n if (--makeCallBackWhenZero === 0) {\n callback(result);\n }\n }, templateConfig = config[\"template\"], viewModelConfig = config[\"viewModel\"];\n if (templateConfig) {\n possiblyGetConfigFromAmd(errorCallback, templateConfig, function(loadedConfig) {\n registry._getFirstResultFromLoaders(\"loadTemplate\", [componentName, loadedConfig], function(resolvedTemplate) {\n result[\"template\"] = resolvedTemplate;\n tryIssueCallback();\n });\n });\n } else {\n tryIssueCallback();\n }\n if (viewModelConfig) {\n possiblyGetConfigFromAmd(errorCallback, viewModelConfig, function(loadedConfig) {\n registry._getFirstResultFromLoaders(\"loadViewModel\", [componentName, loadedConfig], function(resolvedViewModel) {\n result[createViewModelKey] = resolvedViewModel;\n tryIssueCallback();\n });\n });\n } else {\n tryIssueCallback();\n }\n}\nfunction resolveTemplate(errorCallback, templateConfig, callback) {\n if (typeof templateConfig === \"string\") {\n callback(parseHtmlFragment(templateConfig));\n } else if (templateConfig instanceof Array) {\n callback(templateConfig);\n } else if (isDocumentFragment(templateConfig)) {\n callback(makeArray(templateConfig.childNodes));\n } else if (templateConfig.element) {\n var element = templateConfig.element;\n if (isDomElement(element)) {\n callback(cloneNodesFromTemplateSourceElement(element));\n } else if (typeof element === \"string\") {\n var elemInstance = document.getElementById(element);\n if (elemInstance) {\n callback(cloneNodesFromTemplateSourceElement(elemInstance));\n } else {\n errorCallback(\"Cannot find element with ID \" + element);\n }\n } else {\n errorCallback(\"Unknown element type: \" + element);\n }\n } else if (templateConfig.elementName) {\n callback(templateConfig);\n } else {\n errorCallback(\"Unknown template value: \" + templateConfig);\n }\n}\nfunction resolveViewModel(errorCallback, viewModelConfig, callback) {\n if (viewModelConfig[VIEW_MODEL_FACTORY]) {\n callback((...args) => viewModelConfig[VIEW_MODEL_FACTORY](...args));\n } else if (typeof viewModelConfig === \"function\") {\n callback(function(params) {\n return new viewModelConfig(params);\n });\n } else if (typeof viewModelConfig[createViewModelKey] === \"function\") {\n callback(viewModelConfig[createViewModelKey]);\n } else if (\"instance\" in viewModelConfig) {\n var fixedInstance = viewModelConfig[\"instance\"];\n callback(function() {\n return fixedInstance;\n });\n } else if (\"viewModel\" in viewModelConfig) {\n resolveViewModel(errorCallback, viewModelConfig[\"viewModel\"], callback);\n } else {\n errorCallback(\"Unknown viewModel value: \" + viewModelConfig);\n }\n}\nfunction cloneNodesFromTemplateSourceElement(elemInstance) {\n switch (tagNameLower(elemInstance)) {\n case \"script\":\n return parseHtmlFragment(elemInstance.text);\n case \"textarea\":\n return parseHtmlFragment(elemInstance.value);\n case \"template\":\n if (isDocumentFragment(elemInstance.content)) {\n return cloneNodes(elemInstance.content.childNodes);\n }\n }\n return cloneNodes(elemInstance.childNodes);\n}\nfunction possiblyGetConfigFromAmd(errorCallback, config, callback) {\n if (typeof config.require === \"string\") {\n if (window.amdRequire || window.require) {\n (window.amdRequire || window.require)([config.require], callback);\n } else {\n errorCallback(\"Uses require, but no AMD loader is present\");\n }\n } else {\n callback(config);\n }\n}\nfunction makeErrorCallback(componentName) {\n return function(message) {\n throw new Error(\"Component '\" + componentName + \"': \" + message);\n };\n}\nregistry.loaders.push(defaultLoader);\n", "// @tko/utils.component \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { LifeCycle } from \"@tko/lifecycle\";\nimport { register, VIEW_MODEL_FACTORY } from \"./loaders\";\nexport class ComponentABC extends LifeCycle {\n static get customElementName() {\n return this.name.replace(/([a-z0-9])([A-Z])/g, \"$1-$2\").toLowerCase();\n }\n static get template() {\n if (\"template\" in this.prototype) {\n return;\n }\n return { element: this.element };\n }\n static get element() {\n throw new Error(\"[ComponentABC] `element` must be overloaded.\");\n }\n static get sync() {\n return true;\n }\n static [VIEW_MODEL_FACTORY](params, componentInfo) {\n return new this(params, componentInfo);\n }\n static register(name = this.customElementName) {\n const viewModel = this;\n const { template } = this;\n const synchronous = this.sync;\n register(name, { viewModel, template, synchronous });\n }\n}\n", "// @tko/utils.component \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { registry } from \"./registry\";\nimport { ComponentABC } from \"./ComponentABC\";\nimport {\n register,\n isRegistered,\n unregister,\n defaultLoader,\n defaultConfigRegistry\n} from \"./loaders\";\nexport { ComponentABC };\nexport default {\n ComponentABC,\n get: registry.get,\n clearCachedDefinition: registry.clearCachedDefinition,\n register,\n isRegistered,\n unregister,\n defaultLoader,\n _allRegisteredComponents: defaultConfigRegistry,\n get loaders() {\n return registry.loaders;\n },\n set loaders(loaders) {\n registry.loaders = loaders;\n }\n};\n", "// @tko/provider.component \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n tagNameLower,\n objectMap\n} from \"@tko/utils\";\nimport registry from \"@tko/utils.component\";\nimport {\n unwrap,\n isWriteableObservable\n} from \"@tko/observable\";\nimport {\n computed\n} from \"@tko/computed\";\nimport {\n Provider\n} from \"@tko/provider\";\nimport {\n Parser\n} from \"@tko/utils.parser\";\nexport default class ComponentProvider extends Provider {\n get FOR_NODE_TYPES() {\n return [1];\n }\n preprocessNode(node) {\n if (node.tagName === \"SLOT\") {\n const parent = node.parentNode;\n const slotName = node.getAttribute(\"name\") || \"\";\n const openNode = document.createComment(`ko slot: \"${slotName}\"`);\n const closeNode = document.createComment(\"/ko\");\n parent.insertBefore(openNode, node);\n parent.insertBefore(closeNode, node);\n parent.removeChild(node);\n return [openNode, closeNode];\n }\n }\n nodeHasBindings(node) {\n return Boolean(this.getComponentNameForNode(node));\n }\n getBindingAccessors(node, context) {\n const componentName = this.getComponentNameForNode(node);\n if (!componentName) {\n return;\n }\n const component = () => ({\n name: componentName,\n params: this.getComponentParams(node, context)\n });\n return { component };\n }\n getComponentNameForNode(node) {\n if (node.nodeType !== node.ELEMENT_NODE) {\n return;\n }\n const tagName = tagNameLower(node);\n if (registry.isRegistered(tagName)) {\n const hasDash = tagName.includes(\"-\");\n const isUnknownEntity = \"\" + node === \"[object HTMLUnknownElement]\";\n if (hasDash || isUnknownEntity) {\n return tagName;\n }\n }\n }\n getComponentParams(node, context) {\n const parser = new Parser(node, context, this.globals);\n const paramsString = (node.getAttribute(\"params\") || \"\").trim();\n const accessors = parser.parse(paramsString, context, node);\n if (!accessors || Object.keys(accessors).length === 0) {\n return { $raw: {} };\n }\n const $raw = objectMap(accessors, (value) => computed(value, null, { disposeWhenNodeIsRemoved: node }));\n const params = objectMap($raw, (v) => this.makeParamValue(node, v));\n return Object.assign({ $raw }, params);\n }\n makeParamValue(node, paramValueComputed) {\n const paramValue = paramValueComputed.peek();\n if (!paramValueComputed.isActive()) {\n return paramValue;\n }\n const isWriteable = isWriteableObservable(paramValue);\n return computed({\n read: () => unwrap(paramValueComputed()),\n write: isWriteable ? (v) => paramValueComputed()(v) : null,\n disposeWhenNodeIsRemoved: node\n });\n }\n}\n", "// @tko/provider.attr \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n Provider\n} from \"@tko/provider\";\nexport default class AttrProvider extends Provider {\n get FOR_NODE_TYPES() {\n return [1];\n }\n get PREFIX() {\n return \"ko-\";\n }\n getBindingAttributesList(node) {\n if (!node.hasAttributes()) {\n return [];\n }\n return Array.from(node.attributes).filter((attr) => attr.name.startsWith(this.PREFIX));\n }\n nodeHasBindings(node) {\n return this.getBindingAttributesList(node).length > 0;\n }\n getBindingAccessors(node, context) {\n return Object.assign({}, ...this.handlersFromAttributes(node, context));\n }\n *handlersFromAttributes(node, context) {\n for (const attr of this.getBindingAttributesList(node)) {\n const name = attr.name.substr(this.PREFIX.length);\n yield { [name]: () => this.getValue(attr.value, context, node) };\n }\n }\n getValue(token, $context, node) {\n if (!token) {\n return;\n }\n const $data = $context.$data;\n switch (token) {\n case \"$element\":\n return node;\n case \"$context\":\n return $context;\n case \"this\":\n case \"$data\":\n return $context.$data;\n }\n if ($data instanceof Object && token in $data) {\n return $data[token];\n }\n if (token in $context) {\n return $context[token];\n }\n if (token in this.globals) {\n return this.globals[token];\n }\n throw new Error(`The variable '${token} not found.`);\n }\n}\n", "// @tko/provider.multi \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n Provider\n} from \"@tko/provider\";\nexport default class MultiProvider extends Provider {\n get FOR_NODE_TYPES() {\n return this.nodeTypes;\n }\n constructor(params = {}) {\n super(params);\n const providers = params.providers || [];\n this.nodeTypeMap = {};\n this.nodeTypes = [];\n this.providers = [];\n providers.forEach((p) => this.addProvider(p));\n }\n setGlobals(globals) {\n [this, ...this.providers].forEach((p) => p.globals = globals);\n }\n addProvider(provider) {\n this.providers.push(provider);\n provider.bindingHandlers = this.bindingHandlers;\n provider.globals = this.globals;\n const nodeTypeMap = this.nodeTypeMap;\n for (const nodeType of provider.FOR_NODE_TYPES) {\n if (!nodeTypeMap[nodeType]) {\n nodeTypeMap[nodeType] = [];\n }\n nodeTypeMap[nodeType].push(provider);\n }\n this.nodeTypes = Object.keys(this.nodeTypeMap).map((k) => parseInt(k, 10));\n }\n providersFor(node) {\n return this.nodeTypeMap[node.nodeType] || [];\n }\n nodeHasBindings(node) {\n return this.providersFor(node).some((p) => p.nodeHasBindings(node));\n }\n preprocessNode(node) {\n for (const provider of this.providersFor(node)) {\n const newNodes = provider.preprocessNode(node);\n if (newNodes) {\n return newNodes;\n }\n }\n }\n *enumerateProviderBindings(node, ctx) {\n for (const provider of this.providersFor(node)) {\n const bindings = provider.getBindingAccessors(node, ctx);\n if (!bindings) {\n continue;\n }\n yield* Object.entries(bindings || {});\n if (provider.preemptive) {\n return;\n }\n }\n }\n getBindingAccessors(node, ctx) {\n const bindings = {};\n for (const [key, accessor] of this.enumerateProviderBindings(node, ctx)) {\n if (key in bindings) {\n throw new Error(`The binding \"${key}\" is duplicated by multiple providers`);\n }\n bindings[key] = accessor;\n }\n return bindings;\n }\n}\n", "// @tko/provider.mustache \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n Parser\n} from \"@tko/utils.parser\";\nconst INNER_EXPRESSION = /^([\\s\\S]*)}}([\\s\\S]*?)\\{\\{([\\s\\S]*)$/;\nconst OUTER_EXPRESSION = /^([\\s\\S]*?)\\{\\{([\\s\\S]*)}}([\\s\\S]*)$/;\nconst BINDING_EXPRESSION = /^([^,\"'{}()/:[\\]\\s]+)\\s+([^\\s:].*)/;\nclass Interpolated {\n constructor(text) {\n this.text = text;\n }\n trim(string) {\n return string === null ? \"\" : string.trim();\n }\n}\nclass Expression extends Interpolated {\n asAttr(context, globals, node) {\n return new Parser().parseExpression(this.text, context, globals, node)();\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 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 } else if (firstChar === \"{\" && lastChar === \"}\") {\n binding = \"html:\" + this.trim(text.slice(1, -1));\n } else {\n binding = \"text:\" + this.trim(text);\n }\n if (binding) {\n yield ownerDocument.createComment(\"ko \" + binding);\n }\n if (closeComment) {\n yield ownerDocument.createComment(\"/ko\");\n }\n }\n}\nclass Text extends Interpolated {\n asAttr() {\n return this.text;\n }\n *textNodeReplacement() {\n yield document.createTextNode(this.text.replace(/\"/g, '\\\\\"'));\n }\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}\nexport function* parseOuterMatch(outerMatch) {\n if (!outerMatch) {\n return;\n }\n let [pre, inner, post] = outerMatch.slice(1);\n yield new Text(pre);\n yield* innerParse(inner);\n yield new Text(post);\n}\nexport function* parseInterpolation(text) {\n for (const textOrExpr of parseOuterMatch(text.match(OUTER_EXPRESSION))) {\n if (textOrExpr.text) {\n yield textOrExpr;\n }\n }\n}\n", "// @tko/provider.mustache \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n unwrap\n} from \"@tko/observable\";\nimport {\n Provider\n} from \"@tko/provider\";\nimport {\n parseInterpolation\n} from \"./mustacheParser\";\nconst DEFAULT_ATTRIBUTE_BINDING_MAP = {\n value: \"value\",\n checked: \"checked\",\n class: \"css\"\n};\nexport default class AttributeMustacheProvider extends Provider {\n get FOR_NODE_TYPES() {\n return [1];\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 *attributesToInterpolate(attributes) {\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 nodeHasBindings(node) {\n return !this.attributesToInterpolate(node.attributes).next().done;\n }\n partsTogether(parts, context, node, ...valueToWrite) {\n if (parts.length > 1) {\n return parts.map((p) => unwrap(p.asAttr(context, this.globals, node))).join(\"\");\n }\n const part = parts[0].asAttr(context, this.globals);\n if (valueToWrite.length) {\n part(valueToWrite[0]);\n }\n return part;\n }\n attributeBinding(name, parts) {\n return [name, parts];\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) {\n 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 *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 ? (...v) => this.partsTogether(parts, context, node, ...v) : (...v) => ({ [attrName]: this.partsTogether(parts, context, node, ...v) });\n node.removeAttribute(attrName);\n yield { [handler]: accessorFn };\n }\n }\n getBindingAccessors(node, context) {\n return Object.assign({}, ...this.bindingObjects(node, context));\n }\n}\n", "// @tko/provider.mustache \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n Provider\n} from \"@tko/provider\";\nimport {\n parseInterpolation\n} from \"./mustacheParser\";\nexport default class TextMustacheProvider extends Provider {\n get FOR_NODE_TYPES() {\n return [3];\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 if (!hasStash || isTextarea) {\n return;\n }\n for (const part of parseInterpolation(textNode.nodeValue)) {\n yield* part.textNodeReplacement(textNode);\n }\n }\n textInterpolation(textNode) {\n const newNodes = Array.from(this.textToNodes(textNode));\n if (newNodes.length === 0) {\n 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 return newNodes;\n }\n preprocessNode(node) {\n return this.textInterpolation(node);\n }\n}\n", "// @tko/provider.native \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n isObservable\n} from \"@tko/observable\";\nimport {\n Provider\n} from \"@tko/provider\";\nexport const NATIVE_BINDINGS = Symbol(\"Knockout native bindings\");\nexport default class NativeProvider extends Provider {\n get FOR_NODE_TYPES() {\n return [1, 3];\n }\n get preemptive() {\n return true;\n }\n nodeHasBindings(node) {\n if (!node[NATIVE_BINDINGS]) {\n return false;\n }\n return Object.keys(node[NATIVE_BINDINGS] || {}).some((key) => key.startsWith(\"ko-\"));\n }\n preprocessNode(node) {\n return node[NATIVE_BINDINGS] ? node : null;\n }\n onlyBindings([name]) {\n return name.startsWith(\"ko-\");\n }\n valueAsAccessor([name, value]) {\n const bindingName = name.replace(/^ko-/, \"\");\n const valueFn = isObservable(value) ? value : () => value;\n return { [bindingName]: valueFn };\n }\n getBindingAccessors(node) {\n const bindings = Object.entries(node[NATIVE_BINDINGS] || {}).filter(this.onlyBindings);\n if (!bindings.length) {\n return null;\n }\n return Object.assign({}, ...bindings.map(this.valueAsAccessor));\n }\n static addValueToNode(node, name, value) {\n const obj = node[NATIVE_BINDINGS] || (node[NATIVE_BINDINGS] = {});\n obj[name] = value;\n }\n static getNodeValues(node) {\n return node[NATIVE_BINDINGS];\n }\n}\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n setElementName,\n objectForEach\n} from \"@tko/utils\";\nimport {\n unwrap\n} from \"@tko/observable\";\nexport var attr = {\n update: function(element, valueAccessor, allBindings) {\n var value = unwrap(valueAccessor()) || {};\n objectForEach(value, function(attrName, attrValue) {\n attrValue = unwrap(attrValue);\n var prefixLen = attrName.indexOf(\":\");\n var namespace = prefixLen > 0 && element.lookupNamespaceURI(attrName.substr(0, prefixLen));\n const toRemove = attrValue === false || attrValue === null || attrValue === void 0;\n if (toRemove) {\n if (namespace) {\n element.removeAttributeNS(namespace, attrName);\n } else {\n element.removeAttribute(attrName);\n }\n } else {\n attrValue = attrValue.toString();\n if (namespace) {\n element.setAttributeNS(namespace, attrName, attrValue);\n } else {\n element.setAttribute(attrName, attrValue);\n }\n }\n if (attrName === \"name\") {\n setElementName(element, toRemove ? \"\" : attrValue);\n }\n });\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n registerEventHandler,\n arrayIndexOf,\n addOrRemoveItem\n} from \"@tko/utils\";\nimport {\n unwrap,\n dependencyDetection,\n isWriteableObservable\n} from \"@tko/observable\";\nimport {\n computed,\n pureComputed\n} from \"@tko/computed\";\nexport var checked = {\n after: [\"value\", \"attr\"],\n init: function(element, valueAccessor, allBindings) {\n var checkedValue2 = pureComputed(function() {\n if (allBindings.has(\"checkedValue\")) {\n return unwrap(allBindings.get(\"checkedValue\"));\n } else if (useElementValue) {\n if (allBindings.has(\"value\")) {\n return unwrap(allBindings.get(\"value\"));\n } else {\n return element.value;\n }\n }\n });\n function updateModel() {\n var isChecked = element.checked, elemValue = checkedValue2();\n if (dependencyDetection.isInitial()) {\n return;\n }\n if (!isChecked && (isRadio || dependencyDetection.getDependenciesCount())) {\n return;\n }\n var modelValue = dependencyDetection.ignore(valueAccessor);\n if (valueIsArray) {\n var writableValue = rawValueIsNonArrayObservable ? modelValue.peek() : modelValue, saveOldValue = oldElemValue;\n oldElemValue = elemValue;\n if (saveOldValue !== elemValue) {\n if (isChecked) {\n addOrRemoveItem(writableValue, elemValue, true);\n addOrRemoveItem(writableValue, saveOldValue, false);\n }\n oldElemValue = elemValue;\n } else {\n addOrRemoveItem(writableValue, elemValue, isChecked);\n }\n if (rawValueIsNonArrayObservable && isWriteableObservable(modelValue)) {\n modelValue(writableValue);\n }\n } else {\n if (isCheckbox) {\n if (elemValue === void 0) {\n elemValue = isChecked;\n } else if (!isChecked) {\n elemValue = void 0;\n }\n }\n valueAccessor(elemValue, { onlyIfChanged: true });\n }\n }\n ;\n function updateView() {\n var modelValue = modelValue = unwrap(valueAccessor());\n var elemValue = checkedValue2();\n if (valueIsArray) {\n element.checked = arrayIndexOf(modelValue, elemValue) >= 0;\n oldElemValue = elemValue;\n } else if (isCheckbox && elemValue === void 0) {\n element.checked = !!modelValue;\n } else {\n element.checked = checkedValue2() === modelValue;\n }\n }\n ;\n var isCheckbox = element.type == \"checkbox\", isRadio = element.type == \"radio\";\n if (!isCheckbox && !isRadio) {\n return;\n }\n var rawValue = valueAccessor(), valueIsArray = isCheckbox && unwrap(rawValue) instanceof Array, rawValueIsNonArrayObservable = !(valueIsArray && rawValue.push && rawValue.splice), useElementValue = isRadio || valueIsArray, oldElemValue = valueIsArray ? checkedValue2() : void 0;\n computed(updateModel, null, { disposeWhenNodeIsRemoved: element });\n registerEventHandler(element, \"click\", updateModel);\n computed(updateView, null, { disposeWhenNodeIsRemoved: element });\n rawValue = void 0;\n }\n};\nexport var checkedValue = {\n update: function(element, valueAccessor) {\n element.value = unwrap(valueAccessor());\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n objectForEach,\n registerEventHandler,\n throttle as throttleFn,\n debounce as debounceFn\n} from \"@tko/utils\";\nimport {\n unwrap\n} from \"@tko/observable\";\nexport function makeEventHandlerShortcut(eventName) {\n return {\n init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {\n var newValueAccessor = function() {\n var result = {};\n result[eventName] = valueAccessor();\n return result;\n };\n eventHandler.init.call(this, element, newValueAccessor, allBindings, viewModel, bindingContext);\n }\n };\n}\nfunction makeDescriptor(handlerOrObject) {\n return typeof handlerOrObject === \"function\" ? { handler: handlerOrObject } : handlerOrObject || {};\n}\nexport const eventHandler = {\n init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {\n var eventsToHandle = valueAccessor() || {};\n objectForEach(eventsToHandle, function(eventName, descriptor) {\n const { passive, capture, once, debounce, throttle } = makeDescriptor(descriptor);\n const eventOptions = (capture || passive || once) && { capture, passive, once };\n let eventHandlerFn = (event, ...more) => {\n var handlerReturnValue;\n const { handler, passive: passive2, bubble, preventDefault } = makeDescriptor(valueAccessor()[eventName]);\n try {\n if (handler) {\n const possiblyUpdatedViewModel = bindingContext.$data;\n const argsForHandler = [possiblyUpdatedViewModel, event, ...more];\n handlerReturnValue = handler.apply(possiblyUpdatedViewModel, argsForHandler);\n }\n } finally {\n if (preventDefault !== void 0) {\n if (unwrap(preventDefault)) {\n event.preventDefault();\n }\n } else if (handlerReturnValue !== true) {\n if (!passive2) {\n event.preventDefault();\n }\n }\n }\n const bubbleMark = allBindings.get(eventName + \"Bubble\") !== false;\n if (bubble === false || !bubbleMark) {\n event.cancelBubble = true;\n if (event.stopPropagation) {\n event.stopPropagation();\n }\n }\n };\n if (debounce) {\n eventHandlerFn = debounceFn(eventHandlerFn, debounce);\n }\n if (throttle) {\n eventHandlerFn = throttleFn(eventHandlerFn, throttle);\n }\n registerEventHandler(element, eventName, eventHandlerFn, eventOptions || false);\n });\n }\n};\nexport const onHandler = {\n init: eventHandler.init,\n preprocess: function(value, key, addBinding) {\n addBinding(key.replace(\"on.\", \"\"), \"=>\" + value);\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n makeEventHandlerShortcut\n} from \"./event\";\nexport var click = makeEventHandlerShortcut(\"click\");\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n createSymbolOrString,\n toggleDomNodeCssClass,\n objectForEach,\n stringTrim\n} from \"@tko/utils\";\nimport {\n unwrap\n} from \"@tko/observable\";\nexport var css = {\n aliases: [\"class\"],\n update: function(element, valueAccessor) {\n var value = unwrap(valueAccessor());\n if (value !== null && typeof value === \"object\") {\n objectForEach(value, function(className, shouldHaveClass) {\n shouldHaveClass = unwrap(shouldHaveClass);\n toggleDomNodeCssClass(element, className, shouldHaveClass);\n });\n } else {\n value = stringTrim(String(value || \"\"));\n toggleDomNodeCssClass(element, element[css.classesWrittenByBindingKey], false);\n element[css.classesWrittenByBindingKey] = value;\n toggleDomNodeCssClass(element, value, true);\n }\n },\n classesWrittenByBindingKey: createSymbolOrString(\"__ko__cssValue\")\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n BindingHandler\n} from \"@tko/bind\";\nexport default class DescendantsCompleteHandler extends BindingHandler {\n onDescendantsComplete() {\n if (typeof this.value === \"function\") {\n this.value(this.$element);\n }\n }\n static get allowVirtualElements() {\n return true;\n }\n}\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n unwrap\n} from \"@tko/observable\";\nexport var enable = {\n update: function(element, valueAccessor) {\n var value = unwrap(valueAccessor());\n if (value && element.disabled) {\n element.removeAttribute(\"disabled\");\n } else if (!value && !element.disabled) {\n element.disabled = true;\n }\n }\n};\nexport var disable = {\n update: function(element, valueAccessor) {\n enable.update(element, function() {\n return !unwrap(valueAccessor());\n });\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n createSymbolOrString,\n triggerEvent,\n registerEventHandler\n} from \"@tko/utils\";\nimport {\n unwrap,\n dependencyDetection\n} from \"@tko/observable\";\nvar hasfocusUpdatingProperty = createSymbolOrString(\"__ko_hasfocusUpdating\");\nvar hasfocusLastValue = createSymbolOrString(\"__ko_hasfocusLastValue\");\nexport var hasfocus = {\n init: function(element, valueAccessor) {\n var handleElementFocusChange = function(isFocused) {\n element[hasfocusUpdatingProperty] = true;\n var ownerDoc = element.ownerDocument;\n if (\"activeElement\" in ownerDoc) {\n var active;\n try {\n active = ownerDoc.activeElement;\n } catch (e) {\n active = ownerDoc.body;\n }\n isFocused = active === element;\n }\n valueAccessor(isFocused, { onlyIfChanged: true });\n element[hasfocusLastValue] = isFocused;\n element[hasfocusUpdatingProperty] = false;\n };\n var handleElementFocusIn = handleElementFocusChange.bind(null, true);\n var handleElementFocusOut = handleElementFocusChange.bind(null, false);\n registerEventHandler(element, \"focus\", handleElementFocusIn);\n registerEventHandler(element, \"focusin\", handleElementFocusIn);\n registerEventHandler(element, \"blur\", handleElementFocusOut);\n registerEventHandler(element, \"focusout\", handleElementFocusOut);\n },\n update: function(element, valueAccessor) {\n var value = !!unwrap(valueAccessor());\n if (!element[hasfocusUpdatingProperty] && element[hasfocusLastValue] !== value) {\n value ? element.focus() : element.blur();\n if (!value && element[hasfocusLastValue]) {\n element.ownerDocument.body.focus();\n }\n dependencyDetection.ignore(triggerEvent, null, [element, value ? \"focusin\" : \"focusout\"]);\n }\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n setHtml\n} from \"@tko/utils\";\nexport var html = {\n init: function() {\n return {\n \"controlsDescendantBindings\": true\n };\n },\n update: function(element, valueAccessor) {\n setHtml(element, valueAccessor());\n },\n allowVirtualElements: true\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n applyBindingsToDescendants\n} from \"@tko/bind\";\nexport default {\n init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {\n var innerContext = bindingContext[\"extend\"](valueAccessor);\n applyBindingsToDescendants(innerContext, element);\n return { \"controlsDescendantBindings\": true };\n },\n allowVirtualElements: true\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n tagNameLower,\n arrayFilter,\n arrayMap,\n setTextContent,\n arrayIndexOf,\n setOptionNodeSelectionState,\n triggerEvent,\n ensureSelectElementIsRenderedCorrectly,\n selectExtensions\n} from \"@tko/utils\";\nimport {\n unwrap,\n dependencyDetection\n} from \"@tko/observable\";\nimport {\n setDomNodeChildrenFromArrayMapping\n} from \"@tko/bind\";\nvar captionPlaceholder = {};\nexport var options = {\n init: function(element) {\n if (tagNameLower(element) !== \"select\") {\n throw new Error(\"options binding applies only to SELECT elements\");\n }\n while (element.length > 0) {\n element.remove(0);\n }\n return { \"controlsDescendantBindings\": true };\n },\n update: function(element, valueAccessor, allBindings) {\n function selectedOptions() {\n return arrayFilter(element.options, function(node) {\n return node.selected;\n });\n }\n var selectWasPreviouslyEmpty = element.length == 0, multiple = element.multiple, previousScrollTop = !selectWasPreviouslyEmpty && multiple ? element.scrollTop : null, unwrappedArray = unwrap(valueAccessor()), valueAllowUnset = allBindings.get(\"valueAllowUnset\") && allBindings[\"has\"](\"value\"), includeDestroyed = allBindings.get(\"optionsIncludeDestroyed\"), arrayToDomNodeChildrenOptions = {}, captionValue, filteredArray, previousSelectedValues = [];\n if (!valueAllowUnset) {\n if (multiple) {\n previousSelectedValues = arrayMap(selectedOptions(), selectExtensions.readValue);\n } else if (element.selectedIndex >= 0) {\n previousSelectedValues.push(selectExtensions.readValue(element.options[element.selectedIndex]));\n }\n }\n if (unwrappedArray) {\n if (typeof unwrappedArray.length === \"undefined\") {\n unwrappedArray = [unwrappedArray];\n }\n filteredArray = arrayFilter(unwrappedArray, function(item) {\n return includeDestroyed || item === void 0 || item === null || !unwrap(item[\"_destroy\"]);\n });\n if (allBindings[\"has\"](\"optionsCaption\")) {\n captionValue = unwrap(allBindings.get(\"optionsCaption\"));\n if (captionValue !== null && captionValue !== void 0) {\n filteredArray.unshift(captionPlaceholder);\n }\n }\n } else {\n }\n function applyToObject(object, predicate, defaultValue) {\n var predicateType = typeof predicate;\n if (predicateType === \"function\") {\n return predicate(object);\n } else if (predicateType == \"string\") {\n return object[predicate];\n } else {\n return defaultValue;\n }\n }\n var itemUpdate = false;\n function optionForArrayItem(arrayEntry, index, oldOptions) {\n if (oldOptions.length) {\n previousSelectedValues = !valueAllowUnset && oldOptions[0].selected ? [selectExtensions.readValue(oldOptions[0])] : [];\n itemUpdate = true;\n }\n var option = element.ownerDocument.createElement(\"option\");\n if (arrayEntry === captionPlaceholder) {\n setTextContent(option, allBindings.get(\"optionsCaption\"));\n selectExtensions.writeValue(option, void 0);\n } else {\n var optionValue = applyToObject(arrayEntry, allBindings.get(\"optionsValue\"), arrayEntry);\n selectExtensions.writeValue(option, unwrap(optionValue));\n var optionText = applyToObject(arrayEntry, allBindings.get(\"optionsText\"), optionValue);\n setTextContent(option, optionText);\n }\n return [option];\n }\n arrayToDomNodeChildrenOptions[\"beforeRemove\"] = function(option) {\n element.removeChild(option);\n };\n function setSelectionCallback(arrayEntry, newOptions) {\n if (itemUpdate && valueAllowUnset) {\n selectExtensions.writeValue(element, unwrap(allBindings.get(\"value\")), true);\n } else if (previousSelectedValues.length) {\n var isSelected = arrayIndexOf(previousSelectedValues, selectExtensions.readValue(newOptions[0])) >= 0;\n setOptionNodeSelectionState(newOptions[0], isSelected);\n if (itemUpdate && !isSelected) {\n dependencyDetection.ignore(triggerEvent, null, [element, \"change\"]);\n }\n }\n }\n var callback = setSelectionCallback;\n if (allBindings[\"has\"](\"optionsAfterRender\") && typeof allBindings.get(\"optionsAfterRender\") === \"function\") {\n callback = function(arrayEntry, newOptions) {\n setSelectionCallback(arrayEntry, newOptions);\n dependencyDetection.ignore(allBindings.get(\"optionsAfterRender\"), null, [newOptions[0], arrayEntry !== captionPlaceholder ? arrayEntry : void 0]);\n };\n }\n setDomNodeChildrenFromArrayMapping(element, filteredArray, optionForArrayItem, arrayToDomNodeChildrenOptions, callback);\n dependencyDetection.ignore(function() {\n if (valueAllowUnset) {\n selectExtensions.writeValue(element, unwrap(allBindings.get(\"value\")), true);\n } else {\n var selectionChanged;\n if (multiple) {\n selectionChanged = previousSelectedValues.length && selectedOptions().length < previousSelectedValues.length;\n } else {\n selectionChanged = previousSelectedValues.length && element.selectedIndex >= 0 ? selectExtensions.readValue(element.options[element.selectedIndex]) !== previousSelectedValues[0] : previousSelectedValues.length || element.selectedIndex >= 0;\n }\n if (selectionChanged) {\n triggerEvent(element, \"change\");\n }\n }\n });\n ensureSelectElementIsRenderedCorrectly(element);\n if (previousScrollTop && Math.abs(previousScrollTop - element.scrollTop) > 20) {\n element.scrollTop = previousScrollTop;\n }\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n arrayForEach,\n setOptionNodeSelectionState,\n arrayIndexOf,\n registerEventHandler,\n tagNameLower,\n selectExtensions\n} from \"@tko/utils\";\nimport {\n unwrap\n} from \"@tko/observable\";\nexport var selectedOptions = {\n after: [\"options\", \"foreach\"],\n init: function(element, valueAccessor, allBindings) {\n registerEventHandler(element, \"change\", function() {\n var value = valueAccessor(), valueToWrite = [];\n arrayForEach(element.getElementsByTagName(\"option\"), function(node) {\n if (node.selected) {\n valueToWrite.push(selectExtensions.readValue(node));\n }\n });\n valueAccessor(valueToWrite);\n });\n },\n update: function(element, valueAccessor) {\n if (tagNameLower(element) != \"select\") {\n throw new Error(\"values binding applies only to SELECT elements\");\n }\n var newValue = unwrap(valueAccessor()), previousScrollTop = element.scrollTop;\n if (newValue && typeof newValue.length === \"number\") {\n arrayForEach(element.getElementsByTagName(\"option\"), function(node) {\n var isSelected = arrayIndexOf(newValue, selectExtensions.readValue(node)) >= 0;\n if (node.selected != isSelected) {\n setOptionNodeSelectionState(node, isSelected);\n }\n });\n }\n element.scrollTop = previousScrollTop;\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n objectForEach,\n options\n} from \"@tko/utils\";\nimport {\n unwrap\n} from \"@tko/observable\";\nconst { jQueryInstance } = options;\nexport var style = {\n update: function(element, valueAccessor) {\n var value = unwrap(valueAccessor() || {});\n objectForEach(value, function(styleName, styleValue) {\n styleValue = unwrap(styleValue);\n if (styleValue === null || styleValue === void 0 || styleValue === false) {\n styleValue = \"\";\n }\n if (jQueryInstance) {\n jQueryInstance(element).css(styleName, styleValue);\n } else {\n styleName = styleName.replace(/-(\\w)/g, (all, letter) => letter.toUpperCase());\n const previousStyle = element.style[styleName];\n element.style[styleName] = styleValue;\n if (styleValue !== previousStyle && element.style[styleName] === previousStyle && !isNaN(styleValue)) {\n element.style[styleName] = styleValue + \"px\";\n }\n }\n });\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n registerEventHandler\n} from \"@tko/utils\";\nexport var submit = {\n init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {\n if (typeof valueAccessor() !== \"function\") {\n throw new Error(\"The value for a submit binding must be a function\");\n }\n registerEventHandler(element, \"submit\", function(event) {\n var handlerReturnValue;\n var value = valueAccessor();\n try {\n handlerReturnValue = value.call(bindingContext[\"$data\"], element);\n } finally {\n if (handlerReturnValue !== true) {\n if (event.preventDefault) {\n event.preventDefault();\n } else {\n event.returnValue = false;\n }\n }\n }\n });\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n setTextContent\n} from \"@tko/utils\";\nexport var text = {\n init: function() {\n return { controlsDescendantBindings: true };\n },\n update: function(element, valueAccessor) {\n setTextContent(element, valueAccessor());\n },\n allowVirtualElements: true\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n domData,\n registerEventHandler,\n ieVersion,\n safeSetTimeout,\n options,\n arrayForEach\n} from \"@tko/utils\";\nimport {\n unwrap\n} from \"@tko/observable\";\nimport {\n BindingHandler\n} from \"@tko/bind\";\nvar parseVersion, operaVersion, safariVersion, firefoxVersion;\nclass TextInput extends BindingHandler {\n get aliases() {\n return \"textinput\";\n }\n constructor(...args) {\n super(...args);\n this.previousElementValue = this.$element.value;\n if (options.debug && this.constructor._forceUpdateOn) {\n arrayForEach(this.constructor._forceUpdateOn, (eventName) => {\n if (eventName.slice(0, 5) === \"after\") {\n this.addEventListener(eventName.slice(5), \"deferUpdateModel\");\n } else {\n this.addEventListener(eventName, \"updateModel\");\n }\n });\n }\n for (const eventName of this.eventsIndicatingSyncValueChange()) {\n this.addEventListener(eventName, \"updateModel\");\n }\n for (const eventName of this.eventsIndicatingDeferValueChange()) {\n this.addEventListener(eventName, \"deferUpdateModel\");\n }\n this.computed(\"updateView\");\n }\n eventsIndicatingSyncValueChange() {\n return [\"input\", \"change\", \"blur\"];\n }\n eventsIndicatingDeferValueChange() {\n return [];\n }\n updateModel(event) {\n const element = this.$element;\n clearTimeout(this.timeoutHandle);\n this.elementValueBeforeEvent = this.timeoutHandle = void 0;\n const elementValue = element.value;\n if (this.previousElementValue !== elementValue) {\n if (options.debug && event) {\n element._ko_textInputProcessedEvent = event.type;\n }\n this.previousElementValue = elementValue;\n this.value = elementValue;\n }\n }\n deferUpdateModel(event) {\n const element = this.$element;\n if (!this.timeoutHandle) {\n this.elementValueBeforeEvent = element.value;\n const handler2 = options.debug ? this.updateModel.bind(this, { type: event.type }) : this.updateModel;\n this.timeoutHandle = safeSetTimeout(handler2, 4);\n }\n }\n updateView() {\n let modelValue = unwrap(this.value);\n if (modelValue === null || modelValue === void 0) {\n modelValue = \"\";\n }\n if (this.elementValueBeforeEvent !== void 0 && modelValue === this.elementValueBeforeEvent) {\n setTimeout(this.updateView.bind(this), 4);\n } else if (this.$element.value !== modelValue) {\n this.previousElementValue = modelValue;\n this.$element.value = modelValue;\n this.previousElementValue = this.$element.value;\n }\n }\n}\nclass TextInputIE extends TextInput {\n constructor(...args) {\n super(...args);\n if (ieVersion < 11) {\n this.addEventListener(\"propertychange\", (event) => event.propertyName === \"value\" && this.updateModel(event));\n }\n if (ieVersion >= 8 && ieVersion < 10) {\n this.watchForSelectionChangeEvent();\n this.addEventListener(\"dragend\", \"deferUpdateModel\");\n }\n }\n eventsIndicatingSyncValueChange() {\n return [...super.eventsIndicatingValueChange(), \"keypress\"];\n }\n selectionChangeHandler(event) {\n const target = this.activeElement;\n const handler2 = target && domData.get(target, selectionChangeHandlerName);\n if (handler2) {\n handler2(event);\n }\n }\n watchForSelectionChangeEvent(element, ieUpdateModel) {\n const ownerDoc = element.ownerDocument;\n if (!domData.get(ownerDoc, selectionChangeRegisteredName)) {\n domData.set(ownerDoc, selectionChangeRegisteredName, true);\n registerEventHandler(ownerDoc, \"selectionchange\", this.selectionChangeHandler.bind(ownerDoc));\n }\n domData.set(element, selectionChangeHandlerName, handler);\n }\n}\nclass TextInputIE9 extends TextInputIE {\n updateModel(...args) {\n this.deferUpdateModel(...args);\n }\n}\nclass TextInputIE8 extends TextInputIE {\n eventsIndicatingValueChange() {\n return [...super.eventsIndicatingValueChange(), \"keyup\", \"keydown\"];\n }\n}\nclass TextInputLegacySafari extends TextInput {\n eventsIndicatingDeferValueChange() {\n return [\"keydown\", \"paste\", \"cut\"];\n }\n}\nclass TextInputLegacyOpera extends TextInput {\n eventsIndicatingDeferValueChange() {\n return [\"keydown\"];\n }\n}\nclass TextInputLegacyFirefox extends TextInput {\n eventsIndicatingValueChange() {\n return [\n ...super.eventsIndicatingSyncValueChange(),\n \"DOMAutoComplete\",\n \"dragdrop\",\n \"drop\"\n ];\n }\n}\nconst w = options.global;\nif (w.navigator) {\n const parseVersion2 = (matches) => matches && parseFloat(matches[1]);\n const userAgent = w.navigator.userAgent;\n const isChrome = userAgent.match(/Chrome\\/([^ ]+)/);\n operaVersion = w.opera && w.opera.version && parseInt(w.opera.version());\n safariVersion = parseVersion2(userAgent.match(/Version\\/([^ ]+) Safari/));\n firefoxVersion = parseVersion2(userAgent.match(/Firefox\\/([^ ]*)/));\n}\nexport const textInput = ieVersion === 8 ? TextInputIE8 : ieVersion === 9 ? TextInputIE9 : ieVersion ? TextInputIE : safariVersion && safariVersion < 5 ? TextInputLegacySafari : operaVersion < 11 ? TextInputLegacyOpera : firefoxVersion && firefoxVersion < 4 ? TextInputLegacyFirefox : TextInput;\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n setElementName\n} from \"@tko/utils\";\nexport var uniqueName = {\n init: function(element, valueAccessor) {\n if (valueAccessor()) {\n var name = \"ko_unique_\" + ++uniqueName.currentIndex;\n setElementName(element, name);\n }\n },\n currentIndex: 0\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n ieVersion,\n stringStartsWith,\n safeSetTimeout,\n tagNameLower,\n arrayForEach,\n selectExtensions\n} from \"@tko/utils\";\nimport {\n unwrap,\n dependencyDetection\n} from \"@tko/observable\";\nimport {\n applyBindingAccessorsToNode,\n BindingHandler\n} from \"@tko/bind\";\nexport class value extends BindingHandler {\n static get after() {\n return [\"options\", \"foreach\", \"template\"];\n }\n constructor(...args) {\n super(...args);\n if (this.isCheckboxOrRadio) {\n applyBindingAccessorsToNode(this.$element, { checkedValue: this.valueAccessor });\n return;\n }\n this.propertyChangedFired = false;\n this.elementValueBeforeEvent = null;\n if (this.ieAutoCompleteHackNeeded) {\n this.addEventListener(\"propertyChange\", () => this.propertyChangedFired = true);\n this.addEventListener(\"focus\", () => this.propertyChangedFired = false);\n this.addEventListener(\"blur\", () => this.propertyChangeFired && this.valueUpdateHandler());\n }\n arrayForEach(this.eventsToCatch, (eventName) => this.registerEvent(eventName));\n if (this.isInput && this.$element.type === \"file\") {\n this.updateFromModel = this.updateFromModelForFile;\n } else {\n this.updateFromModel = this.updateFromModelForValue;\n }\n this.computed(\"updateFromModel\");\n }\n get eventsToCatch() {\n const requestedEventsToCatch = this.allBindings.get(\"valueUpdate\");\n const requestedEventsArray = typeof requestedEventsToCatch === \"string\" ? [requestedEventsToCatch] : requestedEventsToCatch || [];\n return [.../* @__PURE__ */ new Set([\"change\", ...requestedEventsArray])];\n }\n get isInput() {\n return tagNameLower(this.$element) === \"input\";\n }\n get isCheckboxOrRadio() {\n const e = this.$element;\n return this.isInput && (e.type == \"checkbox\" || e.type == \"radio\");\n }\n get ieAutoCompleteHackNeeded() {\n return ieVersion && isInputElement && this.$element.type == \"text\" && this.$element.autocomplete != \"off\" && (!this.$element.form || this.$element.form.autocomplete != \"off\");\n }\n valueUpdateHandler() {\n this.elementValueBeforeEvent = null;\n this.propertyChangedFired = false;\n this.value = selectExtensions.readValue(this.$element);\n }\n registerEvent(eventName) {\n var handler = this.valueUpdateHandler.bind(this);\n if (stringStartsWith(eventName, \"after\")) {\n handler = () => {\n this.elementValueBeforeEvent = selectExtensions.readValue(this.$element);\n safeSetTimeout(this.valueUpdateHandler.bind(this), 0);\n };\n eventName = eventName.substring(5);\n }\n this.addEventListener(eventName, handler);\n }\n updateFromModelForFile() {\n var newValue = unwrap(this.value);\n if (newValue === null || newValue === void 0 || newValue === \"\") {\n this.$element.value = \"\";\n } else {\n dependencyDetection.ignore(this.valueUpdateHandler, this);\n }\n }\n updateFromModelForValue() {\n const element = this.$element;\n var newValue = unwrap(this.value);\n var elementValue = selectExtensions.readValue(element);\n if (this.elementValueBeforeEvent !== null && newValue === this.elementValueBeforeEvent) {\n safeSetTimeout(this.updateFromModel.bind(this), 0);\n return;\n }\n if (newValue === elementValue && elementValue !== void 0) {\n return;\n }\n if (tagNameLower(element) === \"select\") {\n const allowUnset = this.allBindings.get(\"valueAllowUnset\");\n selectExtensions.writeValue(element, newValue, allowUnset);\n if (!allowUnset && newValue !== selectExtensions.readValue(element)) {\n dependencyDetection.ignore(this.valueUpdateHandler, this);\n }\n } else {\n selectExtensions.writeValue(element, newValue);\n }\n }\n}\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n unwrap\n} from \"@tko/observable\";\nexport var visible = {\n update: function(element, valueAccessor) {\n var value = unwrap(valueAccessor());\n var isCurrentlyVisible = !(element.style.display === \"none\");\n if (value && !isCurrentlyVisible) {\n element.style.display = \"\";\n } else if (!value && isCurrentlyVisible) {\n element.style.display = \"none\";\n }\n }\n};\nexport var hidden = {\n update: function(element, valueAccessor) {\n visible.update.call(this, element, () => !unwrap(valueAccessor()));\n }\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n applyBindingsToDescendants\n} from \"@tko/bind\";\nexport var using = {\n init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {\n var innerContext = bindingContext.createChildContext(valueAccessor);\n applyBindingsToDescendants(innerContext, element);\n return { controlsDescendantBindings: true };\n },\n allowVirtualElements: true\n};\n", "// @tko/binding.core \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { attr } from \"./attr\";\nimport { checked, checkedValue } from \"./checked\";\nimport { click } from \"./click\";\nimport { css } from \"./css\";\nimport descendantsComplete from \"./descendantsComplete\";\nimport { enable, disable } from \"./enableDisable\";\nimport { eventHandler, onHandler } from \"./event\";\nimport { hasfocus } from \"./hasfocus\";\nimport { html } from \"./html\";\nimport $let from \"./let\";\nimport { options } from \"./options\";\nimport { selectedOptions } from \"./selectedOptions\";\nimport { style } from \"./style\";\nimport { submit } from \"./submit\";\nimport { text } from \"./text\";\nimport { textInput } from \"./textInput\";\nimport { uniqueName } from \"./uniqueName\";\nimport { value } from \"./value\";\nimport { visible, hidden } from \"./visible\";\nimport { using } from \"./using\";\nexport var bindings = {\n attr,\n checked,\n checkedValue,\n click,\n css,\n \"class\": css,\n descendantsComplete,\n enable,\n \"event\": eventHandler,\n disable,\n hasfocus,\n hasFocus: hasfocus,\n hidden,\n html,\n \"let\": $let,\n on: onHandler,\n options,\n selectedOptions,\n style,\n submit,\n text,\n textInput,\n textinput: textInput,\n uniqueName,\n using,\n value,\n visible\n};\n", "// @tko/binding.if \uD83E\uDD4A 4.0.0-beta1.3 ESM\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\nimport {\n cloneNodes,\n virtualElements,\n cleanNode,\n domData\n} from \"@tko/utils\";\nimport {\n dependencyDetection,\n observable\n} from \"@tko/observable\";\nimport {\n applyBindingsToDescendants,\n AsyncBindingHandler\n} from \"@tko/bind\";\nexport default class ConditionalBindingHandler extends AsyncBindingHandler {\n constructor(params) {\n super(params);\n this.hasElse = this.detectElse(this.$element);\n const elseChainSatisfied = this.completesElseChain = observable();\n domData.set(this.$element, \"conditional\", { elseChainSatisfied });\n }\n getIfElseNodes() {\n if (this.ifElseNodes) {\n return this.ifElseNodes;\n }\n if (dependencyDetection.getDependenciesCount() || this.hasElse) {\n return this.cloneIfElseNodes(this.$element, this.hasElse);\n }\n }\n render() {\n const isFirstRender = !this.ifElseNodes;\n const { shouldDisplay } = this.renderStatus();\n this.ifElseNodes = this.getIfElseNodes() || {};\n if (shouldDisplay) {\n const useOriginalNodes = isFirstRender && !this.hasElse;\n this.renderAndApplyBindings(this.ifElseNodes.ifNodes, useOriginalNodes);\n } else if (this.hasElse) {\n this.renderAndApplyBindings(this.ifElseNodes.elseNodes);\n } else {\n virtualElements.emptyNode(this.$element);\n }\n }\n renderAndApplyBindings(nodes, useOriginalNodes) {\n return __async(this, null, function* () {\n if (!useOriginalNodes) {\n virtualElements.setDomNodeChildren(this.$element, cloneNodes(nodes));\n }\n const bound = yield applyBindingsToDescendants(this.bindingContext, this.$element);\n this.completeBinding(bound);\n });\n }\n get elseChainIsAlreadySatisfied() {\n return false;\n }\n isElseNode(node) {\n return node.nodeType === 8 && node.nodeValue.trim().toLowerCase() === \"else\";\n }\n detectElse(element) {\n var children = virtualElements.childNodes(element);\n for (var i = 0, j = children.length; i < j; ++i) {\n if (this.isElseNode(children[i])) {\n return true;\n }\n }\n return false;\n }\n cloneIfElseNodes(element, hasElse) {\n const children = virtualElements.childNodes(element);\n const ifNodes = [];\n const elseNodes = [];\n let target = ifNodes;\n for (var i = 0, j = children.length; i < j; ++i) {\n if (hasElse && this.isElseNode(children[i])) {\n target = elseNodes;\n hasElse = false;\n } else {\n target.push(cleanNode(children[i].cloneNode(true)));\n }\n }\n return { ifNodes, elseNodes };\n }\n get controlsDescendants() {\n return true;\n }\n static get allowVirtualElements() {\n return true;\n }\n}\n", "// @tko/binding.if \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n unwrap\n} from \"@tko/observable\";\nimport ConditionalBindingHandler from \"./ConditionalBindingHandler\";\nexport class IfBindingHandler extends ConditionalBindingHandler {\n constructor(...args) {\n super(...args);\n this.ifCondition = this.computed(() => !!unwrap(this.value));\n this.computed(\"render\");\n }\n shouldDisplayIf() {\n return this.ifCondition();\n }\n get bindingContext() {\n return this.ifCondition.isActive() ? this.$context.extend(() => {\n this.ifCondition();\n return null;\n }) : this.$context;\n }\n renderStatus() {\n let shouldDisplay = this.shouldDisplayIf();\n if (this.elseChainIsAlreadySatisfied) {\n shouldDisplay = false;\n this.completesElseChain(true);\n } else {\n this.completesElseChain(shouldDisplay);\n }\n return { shouldDisplay };\n }\n}\nexport class UnlessBindingHandler extends IfBindingHandler {\n shouldDisplayIf() {\n return !super.shouldDisplayIf();\n }\n}\n", "// @tko/binding.if \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n options\n} from \"@tko/utils\";\nimport {\n unwrap\n} from \"@tko/observable\";\nimport ConditionalBindingHandler from \"./ConditionalBindingHandler\";\nexport class WithBindingHandler extends ConditionalBindingHandler {\n constructor(...args) {\n super(...args);\n this.asOption = this.allBindings.get(\"as\");\n const conditionalFn = this.asOption && !options.createChildContextWithAs ? () => Boolean(unwrap(this.value)) : () => unwrap(this.value);\n this.conditional = this.computed(conditionalFn);\n this.computed(\"render\");\n }\n get bindingContext() {\n if (!this.asOption) {\n return this.$context.createChildContext(this.valueAccessor);\n }\n return options.createChildContextWithAs ? this.$context.createChildContext(this.value, this.asOption) : this.$context.extend({ [this.asOption]: this.value });\n }\n renderStatus() {\n const shouldDisplay = Boolean(this.conditional());\n return { shouldDisplay };\n }\n}\n", "// @tko/binding.if \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n virtualElements,\n domData\n} from \"@tko/utils\";\nimport {\n unwrap\n} from \"@tko/observable\";\nimport {\n IfBindingHandler\n} from \"./ifUnless\";\nexport class ElseBindingHandler extends IfBindingHandler {\n shouldDisplayIf() {\n return super.shouldDisplayIf() || this.value === void 0;\n }\n get elseChainIsAlreadySatisfied() {\n if (!this._elseChain) {\n this._elseChain = this.readElseChain();\n }\n return unwrap(this._elseChain.elseChainSatisfied);\n }\n readElseChain() {\n let node = this.$element;\n do {\n node = node.previousSibling;\n } while (node && node.nodeType !== 1 && node.nodeType !== 8);\n if (!node) {\n return false;\n }\n if (node.nodeType === 8) {\n node = virtualElements.previousSibling(node);\n }\n return domData.get(node, \"conditional\") || {};\n }\n}\n", "// @tko/binding.if \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n IfBindingHandler,\n UnlessBindingHandler\n} from \"./ifUnless\";\nimport {\n WithBindingHandler\n} from \"./with\";\nimport {\n ElseBindingHandler\n} from \"./else\";\nexport const bindings = {\n \"if\": IfBindingHandler,\n \"with\": WithBindingHandler,\n ifnot: UnlessBindingHandler,\n unless: UnlessBindingHandler,\n \"else\": ElseBindingHandler,\n \"elseif\": ElseBindingHandler\n};\n", "// @tko/binding.foreach \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n arrayForEach,\n cleanNode,\n options,\n virtualElements,\n createSymbolOrString,\n domData,\n domNodeIsContainedBy\n} from \"@tko/utils\";\nimport {\n isObservable,\n unwrap,\n observable\n} from \"@tko/observable\";\nimport {\n contextFor,\n applyBindingsToDescendants,\n AsyncBindingHandler\n} from \"@tko/bind\";\nconst MAX_LIST_SIZE = 9007199254740991;\nfunction isPlainObject(o) {\n return !!o && typeof o === \"object\" && o.constructor === Object;\n}\nconst supportsDocumentFragment = options.document && typeof options.document.createDocumentFragment === \"function\";\nfunction makeTemplateNode(sourceNode) {\n var container = document.createElement(\"div\");\n var parentNode;\n if (sourceNode.content) {\n parentNode = sourceNode.content;\n } else if (sourceNode.tagName === \"SCRIPT\") {\n parentNode = document.createElement(\"div\");\n parentNode.innerHTML = sourceNode.text;\n } else {\n parentNode = sourceNode;\n }\n arrayForEach(virtualElements.childNodes(parentNode), function(child) {\n if (child) {\n container.insertBefore(child.cloneNode(true), null);\n }\n });\n return container;\n}\nfunction valueToChangeAddItem(value, index) {\n return {\n status: \"added\",\n value,\n index\n };\n}\nconst PENDING_DELETE_INDEX_SYM = createSymbolOrString(\"_ko_ffe_pending_delete_index\");\nexport class ForEachBinding extends AsyncBindingHandler {\n constructor(params) {\n super(params);\n const settings = {};\n if (isPlainObject(this.value)) {\n Object.assign(settings, this.value);\n }\n this.as = settings.as || this.allBindings.get(\"as\");\n this.data = settings.data || (unwrap(this.$context.$rawData) === this.value ? this.$context.$rawData : this.value);\n this.container = virtualElements.isStartComment(this.$element) ? this.$element.parentNode : this.$element;\n this.generateContext = this.createContextGenerator(this.as);\n this.$indexHasBeenRequested = false;\n this.templateNode = makeTemplateNode(settings.templateNode || (settings.name ? document.getElementById(settings.name).cloneNode(true) : this.$element));\n [\"afterAdd\", \"beforeRemove\", \"afterQueueFlush\", \"beforeQueueFlush\"].forEach((p) => {\n this[p] = settings[p] || this.allBindings.get(p);\n });\n this.changeQueue = [];\n this.firstLastNodesList = [];\n this.indexesToDelete = [];\n this.rendering_queued = false;\n this.pendingDeletes = [];\n this.isNotEmpty = observable(Boolean(unwrap(this.data).length));\n domData.set(this.$element, \"conditional\", {\n elseChainSatisfied: this.isNotEmpty\n });\n virtualElements.emptyNode(this.$element);\n const primeData = unwrap(this.data);\n if (primeData && primeData.map) {\n this.onArrayChange(primeData.map(valueToChangeAddItem), true);\n } else {\n this.completeBinding();\n }\n if (isObservable(this.data)) {\n if (!this.data.indexOf) {\n this.data = this.data.extend({ trackArrayChanges: true });\n }\n this.changeSubs = this.data.subscribe(this.onArrayChange, this, \"arrayChange\");\n }\n }\n dispose() {\n if (this.changeSubs) {\n this.changeSubs.dispose();\n }\n this.flushPendingDeletes();\n }\n onArrayChange(changeSet, isInitial) {\n var changeMap = {\n added: [],\n deleted: []\n };\n for (var i = 0, len = changeSet.length; i < len; i++) {\n if (changeMap.added.length && changeSet[i].status === \"added\") {\n var lastAdd = changeMap.added[changeMap.added.length - 1];\n var lastIndex = lastAdd.isBatch ? lastAdd.index + lastAdd.values.length - 1 : lastAdd.index;\n if (lastIndex + 1 === changeSet[i].index) {\n if (!lastAdd.isBatch) {\n lastAdd = {\n isBatch: true,\n status: \"added\",\n index: lastAdd.index,\n values: [lastAdd.value]\n };\n changeMap.added.splice(changeMap.added.length - 1, 1, lastAdd);\n }\n lastAdd.values.push(changeSet[i].value);\n continue;\n }\n }\n changeMap[changeSet[i].status].push(changeSet[i]);\n }\n if (changeMap.deleted.length > 0) {\n this.changeQueue.push.apply(this.changeQueue, changeMap.deleted);\n this.changeQueue.push({ status: \"clearDeletedIndexes\" });\n }\n this.changeQueue.push.apply(this.changeQueue, changeMap.added);\n if (this.changeQueue.length > 0 && !this.rendering_queued) {\n this.rendering_queued = true;\n if (isInitial) {\n this.processQueue();\n } else {\n ForEachBinding.animateFrame.call(window, () => this.processQueue());\n }\n }\n }\n startQueueFlush() {\n if (typeof this.beforeQueueFlush === \"function\") {\n this.beforeQueueFlush(this.changeQueue);\n }\n }\n endQueueFlush() {\n if (typeof this.afterQueueFlush === \"function\") {\n this.afterQueueFlush(this.changeQueue);\n }\n }\n processQueue() {\n var isEmpty = !unwrap(this.data).length;\n var lowestIndexChanged = MAX_LIST_SIZE;\n this.startQueueFlush();\n arrayForEach(this.changeQueue, (changeItem) => {\n if (typeof changeItem.index === \"number\") {\n lowestIndexChanged = Math.min(lowestIndexChanged, changeItem.index);\n }\n this[changeItem.status](changeItem);\n });\n this.flushPendingDeletes();\n this.rendering_queued = false;\n if (this.$indexHasBeenRequested) {\n this.updateIndexes(lowestIndexChanged);\n }\n this.endQueueFlush();\n this.changeQueue = [];\n if (isEmpty !== !this.isNotEmpty()) {\n this.isNotEmpty(!isEmpty);\n }\n }\n _first$indexRequest(ctx$indexRequestedFrom) {\n this.$indexHasBeenRequested = true;\n for (let i = 0, len = this.firstLastNodesList.length; i < len; ++i) {\n const ctx = this.getContextStartingFrom(this.firstLastNodesList[i].first);\n if (ctx) {\n ctx.$index = observable(i);\n }\n }\n return ctx$indexRequestedFrom.$index();\n }\n _contextExtensions($ctx) {\n Object.assign($ctx, { $list: this.data });\n if (this.$indexHasBeenRequested) {\n $ctx.$index = $ctx.$index || observable();\n } else {\n Object.defineProperty($ctx, \"$index\", {\n value: () => this._first$indexRequest($ctx),\n configurable: true,\n writable: true\n });\n }\n return $ctx;\n }\n createContextGenerator(as) {\n const $ctx = this.$context;\n if (as) {\n return (v) => this._contextExtensions($ctx.extend({ [as]: v }));\n } else {\n return (v) => $ctx.createChildContext(v, null, (ctx) => this._contextExtensions(ctx));\n }\n }\n updateFirstLastNodesList(index, children) {\n const first = children[0];\n const last = children[children.length - 1];\n this.firstLastNodesList.splice(index, 0, { first, last });\n }\n added(changeItem) {\n var index = changeItem.index;\n var valuesToAdd = changeItem.isBatch ? changeItem.values : [changeItem.value];\n var referenceElement = this.getLastNodeBeforeIndex(index);\n const allChildNodes = [];\n const asyncBindingResults = [];\n var children;\n for (var i = 0, len = valuesToAdd.length; i < len; ++i) {\n var pendingDelete = this.getPendingDeleteFor(valuesToAdd[i]);\n if (pendingDelete && pendingDelete.nodesets.length) {\n children = pendingDelete.nodesets.pop();\n this.updateFirstLastNodesList(index + i, children);\n } else {\n var templateClone = this.templateNode.cloneNode(true);\n children = virtualElements.childNodes(templateClone);\n this.updateFirstLastNodesList(index + i, children);\n const bindingResult = applyBindingsToDescendants(this.generateContext(valuesToAdd[i]), templateClone);\n asyncBindingResults.push(bindingResult);\n }\n allChildNodes.push(...children);\n }\n if (typeof this.afterAdd === \"function\") {\n this.afterAdd({\n nodeOrArrayInserted: this.insertAllAfter(allChildNodes, referenceElement),\n foreachInstance: this\n });\n } else {\n this.insertAllAfter(allChildNodes, referenceElement);\n }\n this.completeBinding(Promise.all(asyncBindingResults));\n }\n getNodesForIndex(index) {\n let result = [];\n let ptr = this.firstLastNodesList[index].first;\n let last = this.firstLastNodesList[index].last;\n result.push(ptr);\n while (ptr && ptr !== last) {\n ptr = ptr.nextSibling;\n result.push(ptr);\n }\n return result;\n }\n getLastNodeBeforeIndex(index) {\n if (index < 1 || index - 1 >= this.firstLastNodesList.length) {\n return null;\n }\n return this.firstLastNodesList[index - 1].last;\n }\n activeChildElement(node) {\n var active = document.activeElement;\n if (domNodeIsContainedBy(active, node)) {\n return active;\n }\n }\n insertAllAfter(nodeOrNodeArrayToInsert, insertAfterNode) {\n let frag;\n let len;\n let i;\n let active = null;\n let containerNode = this.$element;\n if (nodeOrNodeArrayToInsert.nodeType === void 0 && nodeOrNodeArrayToInsert.length === void 0) {\n throw new Error(\"Expected a single node or a node array\");\n }\n if (nodeOrNodeArrayToInsert.nodeType !== void 0) {\n active = this.activeChildElement(nodeOrNodeArrayToInsert);\n virtualElements.insertAfter(containerNode, nodeOrNodeArrayToInsert, insertAfterNode);\n return [nodeOrNodeArrayToInsert];\n } else if (nodeOrNodeArrayToInsert.length === 1) {\n active = this.activeChildElement(nodeOrNodeArrayToInsert[0]);\n virtualElements.insertAfter(containerNode, nodeOrNodeArrayToInsert[0], insertAfterNode);\n } else if (supportsDocumentFragment) {\n frag = document.createDocumentFragment();\n for (i = 0, len = nodeOrNodeArrayToInsert.length; i !== len; ++i) {\n active = active || this.activeChildElement(nodeOrNodeArrayToInsert[i]);\n frag.appendChild(nodeOrNodeArrayToInsert[i]);\n }\n virtualElements.insertAfter(containerNode, frag, insertAfterNode);\n } else {\n for (i = nodeOrNodeArrayToInsert.length - 1; i >= 0; --i) {\n active = active || this.activeChildElement(nodeOrNodeArrayToInsert[i]);\n var child = nodeOrNodeArrayToInsert[i];\n if (!child) {\n break;\n }\n virtualElements.insertAfter(containerNode, child, insertAfterNode);\n }\n }\n if (active) {\n active.focus();\n }\n return nodeOrNodeArrayToInsert;\n }\n shouldDelayDeletion(data) {\n return data && (typeof data === \"object\" || typeof data === \"function\");\n }\n getPendingDeleteFor(data) {\n var index = data && data[PENDING_DELETE_INDEX_SYM];\n if (index === void 0)\n return null;\n return this.pendingDeletes[index];\n }\n getOrCreatePendingDeleteFor(data) {\n var pd = this.getPendingDeleteFor(data);\n if (pd) {\n return pd;\n }\n pd = {\n data,\n nodesets: []\n };\n data[PENDING_DELETE_INDEX_SYM] = this.pendingDeletes.length;\n this.pendingDeletes.push(pd);\n return pd;\n }\n deleted(changeItem) {\n if (this.shouldDelayDeletion(changeItem.value)) {\n let pd = this.getOrCreatePendingDeleteFor(changeItem.value);\n pd.nodesets.push(this.getNodesForIndex(changeItem.index));\n } else {\n this.removeNodes(this.getNodesForIndex(changeItem.index));\n }\n this.indexesToDelete.push(changeItem.index);\n }\n removeNodes(nodes) {\n if (!nodes.length) {\n return;\n }\n function removeFn() {\n var parent = nodes[0].parentNode;\n for (var i = nodes.length - 1; i >= 0; --i) {\n cleanNode(nodes[i]);\n parent.removeChild(nodes[i]);\n }\n }\n if (this.beforeRemove) {\n var beforeRemoveReturn = this.beforeRemove({\n nodesToRemove: nodes,\n foreachInstance: this\n }) || {};\n if (typeof beforeRemoveReturn.then === \"function\") {\n beforeRemoveReturn.then(removeFn, options.onError);\n }\n } else {\n removeFn();\n }\n }\n flushPendingDeletes() {\n for (let i = 0, len = this.pendingDeletes.length; i !== len; ++i) {\n var pd = this.pendingDeletes[i];\n while (pd.nodesets.length) {\n this.removeNodes(pd.nodesets.pop());\n }\n if (pd.data && pd.data[PENDING_DELETE_INDEX_SYM] !== void 0) {\n delete pd.data[PENDING_DELETE_INDEX_SYM];\n }\n }\n this.pendingDeletes = [];\n }\n clearDeletedIndexes() {\n for (let i = this.indexesToDelete.length - 1; i >= 0; --i) {\n this.firstLastNodesList.splice(this.indexesToDelete[i], 1);\n }\n this.indexesToDelete = [];\n }\n updateIndexes(fromIndex) {\n let ctx;\n for (let i = fromIndex, len = this.firstLastNodesList.length; i < len; ++i) {\n ctx = this.getContextStartingFrom(this.firstLastNodesList[i].first);\n if (ctx) {\n ctx.$index(i);\n }\n }\n }\n getContextStartingFrom(node) {\n let ctx;\n while (node) {\n ctx = contextFor(node);\n if (ctx) {\n return ctx;\n }\n node = node.nextSibling;\n }\n }\n static setSync(toggle) {\n const w = options.global;\n if (toggle) {\n ForEachBinding.animateFrame = function(frame) {\n frame();\n };\n } else {\n ForEachBinding.animateFrame = w.requestAnimationFrame || w.webkitRequestAnimationFrame || w.mozRequestAnimationFrame || w.msRequestAnimationFrame || function(cb) {\n return w.setTimeout(cb, 1e3 / 60);\n };\n }\n }\n get controlsDescendants() {\n return true;\n }\n static get allowVirtualElements() {\n return true;\n }\n static get ForEach() {\n return this;\n }\n static get PENDING_DELETE_INDEX_SYM() {\n return PENDING_DELETE_INDEX_SYM;\n }\n}\n", "// @tko/binding.foreach \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { ForEachBinding } from \"./foreach\";\nexport var bindings = {\n foreach: ForEachBinding\n};\nForEachBinding.setSync(false);\n", "// @tko/utils.jsx \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n cleanNode\n} from \"@tko/utils\";\nconst DELAY_MS = 25;\nconst MAX_CLEAN_AT_ONCE = 1e3;\nconst cleanNodeQueue = [];\nlet cleanNodeTimeoutID = null;\nexport function queueCleanNode(node) {\n cleanNodeQueue.push(node);\n triggerCleanTimeout();\n}\nfunction triggerCleanTimeout() {\n if (!cleanNodeTimeoutID && cleanNodeQueue.length) {\n cleanNodeTimeoutID = setTimeout(flushCleanQueue, DELAY_MS);\n }\n}\nfunction flushCleanQueue() {\n cleanNodeTimeoutID = null;\n const nodes = cleanNodeQueue.splice(0, MAX_CLEAN_AT_ONCE);\n for (const node of nodes) {\n cleanNode(node);\n }\n triggerCleanTimeout();\n}\n", "// @tko/utils.jsx \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport { LifeCycle } from \"@tko/lifecycle\";\nimport {\n safeStringify,\n isThenable\n} from \"@tko/utils\";\nimport {\n applyBindings,\n contextFor\n} from \"@tko/bind\";\nimport {\n isObservable,\n unwrap,\n observable\n} from \"@tko/observable\";\nimport {\n isComputed\n} from \"@tko/computed\";\nimport {\n NativeProvider,\n NATIVE_BINDINGS\n} from \"@tko/provider.native\";\nimport {\n queueCleanNode\n} from \"./jsxClean\";\nexport const ORIGINAL_JSX_SYM = Symbol(\"Knockout - Original JSX\");\nconst NAMESPACES = {\n svg: \"http://www.w3.org/2000/svg\",\n html: \"http://www.w3.org/1999/xhtml\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xlink: \"http://www.w3.org/1999/xlink\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\nfunction isIterable(v) {\n return v && typeof v[Symbol.iterator] === \"function\";\n}\nexport class JsxObserver extends LifeCycle {\n constructor(jsxOrObservable, parentNode, insertBefore = null, xmlns, noInitialBinding) {\n super();\n const parentNodeIsComment = parentNode.nodeType === 8;\n const parentNodeTarget = this.getParentTarget(parentNode);\n if (isObservable(jsxOrObservable)) {\n jsxOrObservable.extend({ trackArrayChanges: true });\n this.subscribe(jsxOrObservable, this.observableArrayChange, \"arrayChange\");\n if (!insertBefore) {\n const insertAt = parentNodeIsComment ? parentNode.nextSibling : null;\n insertBefore = this.createComment(\"O\");\n parentNodeTarget.insertBefore(insertBefore, insertAt);\n } else {\n this.adoptedInsertBefore = true;\n }\n }\n if (parentNodeIsComment && !insertBefore) {\n insertBefore = parentNode.nextSibling;\n this.adoptedInsertBefore = true;\n }\n this.anchorTo(insertBefore || parentNode);\n Object.assign(this, {\n insertBefore,\n noInitialBinding,\n parentNode,\n parentNodeTarget,\n xmlns,\n nodeArrayOrObservableAtIndex: [],\n subscriptionsForNode: /* @__PURE__ */ new Map()\n });\n const jsx = unwrap(jsxOrObservable);\n const computed = isComputed(jsxOrObservable);\n if (computed || jsx !== null && jsx !== void 0) {\n this.observableArrayChange(this.createInitialAdditions(jsx));\n }\n this.noInitialBinding = false;\n }\n getParentTarget(parentNode) {\n if (\"content\" in parentNode) {\n return parentNode.content;\n }\n if (parentNode.nodeType === 8) {\n return parentNode.parentNode;\n }\n return parentNode;\n }\n remove() {\n this.dispose();\n }\n dispose() {\n super.dispose();\n const ib = this.insertBefore;\n const insertBeforeIsChild = ib && this.parentNodeTarget === ib.parentNode;\n if (insertBeforeIsChild && !this.adoptedInsertBefore) {\n this.parentNodeTarget.removeChild(ib);\n }\n this.removeAllPriorNodes();\n Object.assign(this, {\n parentNode: null,\n parentNodeTarget: null,\n insertBefore: null,\n nodeArrayOrObservableAtIndex: []\n });\n for (const subscriptions of this.subscriptionsForNode.values()) {\n subscriptions.forEach((s) => s.dispose());\n }\n this.subscriptionsForNode.clear();\n }\n createInitialAdditions(possibleIterable) {\n const status = \"added\";\n if (typeof possibleIteratable === \"object\" && posibleIterable !== null && Symbol.iterator in possibleIterable) {\n possibleIterable = [...possibleIterable];\n }\n return Array.isArray(possibleIterable) ? possibleIterable.map((value, index) => ({ index, status, value })) : [{ status, index: 0, value: possibleIterable }];\n }\n observableArrayChange(changes) {\n let adds = [];\n let dels = [];\n for (const index in changes) {\n const change = changes[index];\n if (change.status === \"added\") {\n adds.push([change.index, change.value]);\n } else {\n dels.unshift([change.index, change.value]);\n }\n }\n dels.forEach((change) => this.delChange(...change));\n adds.forEach((change) => this.addChange(...change));\n }\n addChange(index, jsx) {\n this.nodeArrayOrObservableAtIndex.splice(index, 0, this.injectNode(jsx, this.lastNodeFor(index)));\n }\n injectNode(jsx, nextNode) {\n let nodeArrayOrObservable;\n if (isObservable(jsx)) {\n const { parentNode, xmlns } = this;\n const observer = new JsxObserver(jsx, parentNode, nextNode, xmlns, this.noInitialBinding);\n nodeArrayOrObservable = [observer];\n } else if (typeof jsx !== \"string\" && isIterable(jsx)) {\n nodeArrayOrObservable = [];\n for (const child of jsx) {\n nodeArrayOrObservable.unshift(this.injectNode(child, nextNode));\n }\n } else {\n const $context = contextFor(this.parentNode);\n const isInsideTemplate = \"content\" in this.parentNode;\n const shouldApplyBindings = $context && !isInsideTemplate && !this.noInitialBinding;\n if (Array.isArray(jsx)) {\n nodeArrayOrObservable = jsx.map((j) => this.anyToNode(j));\n } else {\n nodeArrayOrObservable = [this.anyToNode(jsx)];\n }\n for (const node of nodeArrayOrObservable) {\n this.parentNodeTarget.insertBefore(node, nextNode);\n if (shouldApplyBindings && this.canApplyBindings(node)) {\n applyBindings($context, node);\n }\n }\n }\n return nodeArrayOrObservable;\n }\n canApplyBindings(node) {\n return node.nodeType === 1 || node.nodeType === 8;\n }\n delChange(index) {\n this.removeNodeArrayOrObservable(this.nodeArrayOrObservableAtIndex[index]);\n this.nodeArrayOrObservableAtIndex.splice(index, 1);\n }\n getSubscriptionsForNode(node) {\n if (!this.subscriptionsForNode.has(node)) {\n const subscriptions = [];\n this.subscriptionsForNode.set(node, subscriptions);\n return subscriptions;\n }\n return this.subscriptionsForNode.get(node);\n }\n isJsx(jsx) {\n return typeof jsx.elementName === \"string\" && \"children\" in jsx && \"attributes\" in jsx;\n }\n anyToNode(any) {\n if (isThenable(any)) {\n return this.futureJsxNode(any);\n }\n switch (typeof any) {\n case \"object\":\n if (any instanceof Error) {\n return this.createComment(any.toString());\n }\n if (any === null) {\n return this.createComment(String(any));\n }\n if (any instanceof Node) {\n return this.cloneJSXorMoveNode(any);\n }\n if (Symbol.iterator in any) {\n return any;\n }\n break;\n case \"function\":\n return this.anyToNode(any());\n case \"undefined\":\n case \"symbol\":\n return this.createComment(String(any));\n case \"string\":\n return this.createTextNode(any);\n case \"boolean\":\n case \"number\":\n case \"bigint\":\n default:\n return this.createTextNode(String(any));\n }\n return this.isJsx(any) ? this.jsxToNode(any) : this.createComment(safeStringify(any));\n }\n createComment(string) {\n const node = document.createComment(string);\n node[NATIVE_BINDINGS] = true;\n return node;\n }\n createTextNode(string) {\n const node = document.createTextNode(string);\n node[NATIVE_BINDINGS] = true;\n return node;\n }\n cloneJSXorMoveNode(node) {\n return ORIGINAL_JSX_SYM in node ? this.jsxToNode(node[ORIGINAL_JSX_SYM]) : node;\n }\n jsxToNode(jsx) {\n const xmlns = jsx.attributes.xmlns || NAMESPACES[jsx.elementName] || this.xmlns;\n const node = document.createElementNS(xmlns || NAMESPACES.html, jsx.elementName);\n node[ORIGINAL_JSX_SYM] = jsx;\n if (isObservable(jsx.attributes)) {\n const subscriptions = this.getSubscriptionsForNode(node);\n subscriptions.push(jsx.attributes.subscribe((attrs) => {\n this.updateAttributes(node, unwrap(attrs));\n }));\n }\n this.updateAttributes(node, unwrap(jsx.attributes));\n this.addDisposable(new JsxObserver(jsx.children, node, null, xmlns, this.noInitialBinding));\n return node;\n }\n futureJsxNode(promise) {\n const obs = observable();\n promise.then(obs).catch((e) => obs(e instanceof Error ? e : Error(e)));\n const jo = new JsxObserver(obs, this.parentNode, null, this.xmlns, this.noInitialBinding);\n this.addDisposable(jo);\n return jo.insertBefore;\n }\n updateAttributes(node, attributes) {\n const subscriptions = this.getSubscriptionsForNode(node);\n const toRemove = new Set([...node.attributes].map((n) => n.name));\n for (const [name, value] of Object.entries(attributes || {})) {\n toRemove.delete(name);\n if (isObservable(value)) {\n subscriptions.push(value.subscribe((attr) => this.setNodeAttribute(node, name, value)));\n }\n this.setNodeAttribute(node, name, value);\n }\n for (const name of toRemove) {\n this.setNodeAttribute(node, name, void 0);\n }\n }\n getNamespaceOfAttribute(attr) {\n const [prefix, ...unqualifiedName] = attr.split(\":\");\n if (prefix === \"xmlns\" || unqualifiedName.length && NAMESPACES[prefix]) {\n return NAMESPACES[prefix];\n }\n return null;\n }\n setNodeAttribute(node, name, valueOrObservable) {\n const value = unwrap(valueOrObservable);\n NativeProvider.addValueToNode(node, name, valueOrObservable);\n if (value === void 0) {\n node.removeAttributeNS(null, name);\n } else if (isThenable(valueOrObservable)) {\n Promise.resolve(valueOrObservable).then((v) => this.setNodeAttribute(node, name, v));\n } else {\n const ns = this.getNamespaceOfAttribute(name);\n node.setAttributeNS(ns, name, String(value));\n }\n }\n lastNodeFor(index) {\n const nodesAtIndex = this.nodeArrayOrObservableAtIndex[index] || [];\n const [lastNodeOfPrior] = nodesAtIndex.slice(-1);\n const insertBefore = lastNodeOfPrior instanceof JsxObserver ? lastNodeOfPrior.insertBefore : lastNodeOfPrior || this.insertBefore;\n if (insertBefore) {\n return insertBefore.parentNode ? insertBefore : null;\n }\n return null;\n }\n removeAllPriorNodes() {\n const { nodeArrayOrObservableAtIndex } = this;\n while (nodeArrayOrObservableAtIndex.length) {\n this.removeNodeArrayOrObservable(nodeArrayOrObservableAtIndex.pop());\n }\n }\n removeNodeArrayOrObservable(nodeArrayOrObservable) {\n for (const nodeOrObservable of nodeArrayOrObservable) {\n if (nodeOrObservable instanceof JsxObserver) {\n nodeOrObservable.dispose();\n continue;\n }\n const node = nodeOrObservable;\n delete node[ORIGINAL_JSX_SYM];\n this.detachAndDispose(node);\n const subscriptions = this.subscriptionsForNode.get(node);\n if (subscriptions) {\n subscriptions.forEach((s) => s.dispose());\n this.subscriptionsForNode.delete(node);\n }\n }\n }\n detachAndDispose(node) {\n if (isIterable(node)) {\n for (const child of node) {\n this.detachAndDispose(child);\n }\n } else {\n node.remove();\n }\n queueCleanNode(node);\n }\n}\nexport default JsxObserver;\n", "// @tko/utils.jsx \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n isObservable,\n unwrap\n} from \"@tko/observable\";\nimport {\n ORIGINAL_JSX_SYM\n} from \"./JsxObserver\";\nexport function maybeJsx(possibleJsx) {\n if (isObservable(possibleJsx)) {\n return true;\n }\n const value = unwrap(possibleJsx);\n if (!value) {\n return false;\n }\n if (value.elementName) {\n return true;\n }\n if (!Array.isArray(value) || !value.length) {\n return false;\n }\n if (value[0] instanceof window.Node) {\n return false;\n }\n return true;\n}\nexport function getOriginalJsxForNode(node) {\n return node[ORIGINAL_JSX_SYM];\n}\nexport function createElement(elementName, attributes, ...children) {\n return elementName === Fragment ? children : {\n elementName,\n attributes: attributes || {},\n children: [...children]\n };\n}\nexport const Fragment = Symbol(\"JSX Fragment\");\n", "// @tko/binding.component \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n virtualElements,\n makeArray,\n cloneNodes\n} from \"@tko/utils\";\nimport {\n unwrap\n} from \"@tko/observable\";\nimport {\n DescendantBindingHandler\n} from \"@tko/bind\";\nimport {\n JsxObserver,\n maybeJsx\n} from \"@tko/utils.jsx\";\nimport {\n NativeProvider\n} from \"@tko/provider.native\";\nimport { LifeCycle } from \"@tko/lifecycle\";\nimport registry from \"@tko/utils.component\";\nvar componentLoadingOperationUniqueId = 0;\nexport default class ComponentBinding extends DescendantBindingHandler {\n constructor(params) {\n super(params);\n this.originalChildNodes = makeArray(virtualElements.childNodes(this.$element));\n this.computed(\"computeApplyComponent\");\n }\n cloneTemplateIntoElement(componentName, template, element) {\n if (!template) {\n throw new Error(\"Component '\" + componentName + \"' has no template\");\n }\n if (maybeJsx(template)) {\n virtualElements.emptyNode(element);\n this.addDisposable(new JsxObserver(template, element, null, void 0, true));\n } else {\n const clonedNodesArray = cloneNodes(template);\n virtualElements.setDomNodeChildren(element, clonedNodesArray);\n }\n }\n createViewModel(componentDefinition, element, originalChildNodes, componentParams) {\n const componentViewModelFactory = componentDefinition.createViewModel;\n return componentViewModelFactory ? componentViewModelFactory.call(componentDefinition, componentParams, { element, templateNodes: originalChildNodes }) : componentParams;\n }\n makeTemplateSlotNodes(originalChildNodes) {\n return Object.assign({}, ...this.genSlotsByName(originalChildNodes));\n }\n *genSlotsByName(templateNodes) {\n for (const node of templateNodes) {\n if (node.nodeType !== 1) {\n continue;\n }\n const slotName = node.getAttribute(\"slot\");\n if (!slotName) {\n continue;\n }\n yield { [slotName]: node };\n }\n }\n computeApplyComponent() {\n const value = unwrap(this.value);\n let componentName;\n let componentParams;\n if (typeof value === \"string\") {\n componentName = value;\n } else {\n componentName = unwrap(value.name);\n componentParams = NativeProvider.getNodeValues(this.$element) || unwrap(value.params);\n }\n this.latestComponentName = componentName;\n if (!componentName) {\n throw new Error(\"No component name specified\");\n }\n this.loadingOperationId = this.currentLoadingOperationId = ++componentLoadingOperationUniqueId;\n registry.get(componentName, (defn) => this.applyComponentDefinition(componentName, componentParams, defn));\n }\n makeChildBindingContext($component) {\n const ctxExtender = (ctx) => Object.assign(ctx, {\n $component,\n $componentTemplateNodes: this.originalChildNodes,\n $componentTemplateSlotNodes: this.makeTemplateSlotNodes(this.originalChildNodes)\n });\n return this.$context.createChildContext($component, void 0, ctxExtender);\n }\n applyComponentDefinition(componentName, componentParams, componentDefinition) {\n if (this.currentLoadingOperationId !== this.loadingOperationId || this.latestComponentName !== componentName) {\n return;\n }\n this.cleanUpState();\n const element = this.$element;\n if (!componentDefinition) {\n throw new Error(\"Unknown component '\" + componentName + \"'\");\n }\n if (componentDefinition.template) {\n this.cloneTemplateIntoElement(componentName, componentDefinition.template, element);\n }\n const componentViewModel = this.createViewModel(componentDefinition, element, this.originalChildNodes, componentParams);\n this.childBindingContext = this.makeChildBindingContext(componentViewModel);\n const viewTemplate = componentViewModel && componentViewModel.template;\n if (!viewTemplate && !componentDefinition.template) {\n throw new Error(\"Component '\" + componentName + \"' has no template\");\n }\n if (!componentDefinition.template) {\n this.cloneTemplateIntoElement(componentName, viewTemplate, element);\n }\n if (componentViewModel instanceof LifeCycle) {\n componentViewModel.anchorTo(this.$element);\n }\n this.currentViewModel = componentViewModel;\n const onBinding = this.onBindingComplete.bind(this, componentViewModel);\n this.applyBindingsToDescendants(this.childBindingContext, onBinding);\n }\n onBindingComplete(componentViewModel, bindingResult) {\n if (componentViewModel && componentViewModel.koDescendantsComplete) {\n componentViewModel.koDescendantsComplete(this.$element);\n }\n this.completeBinding(bindingResult);\n }\n cleanUpState() {\n const currentView = this.currentViewModel;\n const currentViewDispose = currentView && currentView.dispose;\n if (typeof currentViewDispose === \"function\") {\n currentViewDispose.call(currentView);\n }\n this.currentViewModel = null;\n this.currentLoadingOperationId = null;\n }\n dispose() {\n this.cleanUpState();\n super.dispose();\n }\n get controlsDescendants() {\n return true;\n }\n static get allowVirtualElements() {\n return true;\n }\n}\n", "// @tko/binding.component \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n virtualElements\n} from \"@tko/utils\";\nimport {\n JsxObserver,\n getOriginalJsxForNode\n} from \"@tko/utils.jsx\";\nimport {\n DescendantBindingHandler,\n contextFor\n} from \"@tko/bind\";\nexport default class SlotBinding extends DescendantBindingHandler {\n constructor(...params) {\n super(...params);\n const slotNode = this.getSlot(this.value);\n const $slotContext = contextFor(slotNode);\n const childContext = this.$context.extend({\n $slotContext,\n $slotData: $slotContext && $slotContext.$data\n });\n this.replaceSlotWithNode(this.$element, slotNode);\n this.applyBindingsToDescendants(childContext);\n }\n replaceSlotWithNode(nodeInComponentTemplate, slotNode) {\n const nodes = this.cloneNodeFromOriginal(slotNode);\n virtualElements.emptyNode(nodeInComponentTemplate);\n this.addDisposable(new JsxObserver(nodes, nodeInComponentTemplate, void 0, void 0, true));\n }\n cloneNodeFromOriginal(node) {\n if (!node) {\n return [];\n }\n const jsx = getOriginalJsxForNode(node);\n if (jsx) {\n return jsx.children;\n }\n if (\"content\" in node) {\n const clone = document.importNode(node.content, true);\n return [...clone.childNodes];\n }\n const nodeArray = Array.isArray(node) ? node : [node];\n return nodeArray.map((n) => n.cloneNode(true));\n }\n getSlot(slotName) {\n const { $componentTemplateSlotNodes } = this.$context;\n if (!slotName) {\n return $componentTemplateSlotNodes[\"\"] || [...this.$context.$componentTemplateNodes].filter((n) => !n.getAttribute || !n.getAttribute(\"slot\"));\n }\n return $componentTemplateSlotNodes[slotName];\n }\n static get allowVirtualElements() {\n return true;\n }\n}\n", "// @tko/binding.component \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport component from \"./componentBinding\";\nimport slot from \"./slotBinding\";\nexport var bindings = { component, slot };\n", "// @tko/filter.punches \uD83E\uDD4A 4.0.0-beta1.3 ESM\nimport {\n unwrap,\n toJS\n} from \"@tko/observable\";\nvar sproto = String.prototype;\nvar filters = {};\nfilters.uppercase = function(value) {\n return sproto.toUpperCase.call(unwrap(value));\n};\nfilters.lowercase = function(value) {\n return sproto.toLowerCase.call(unwrap(value));\n};\nfilters[\"default\"] = function(value, defaultValue) {\n value = unwrap(value);\n if (typeof value === \"function\") {\n return value;\n }\n if (typeof value === \"string\") {\n return sproto.trim.call(value) === \"\" ? defaultValue : value;\n }\n return value == null || value.length == 0 ? defaultValue : value;\n};\nfilters.replace = function(value, search, replace) {\n return sproto.replace.call(unwrap(value), search, replace);\n};\nfilters.fit = function(value, length, replacement, trimWhere) {\n value = unwrap(value);\n if (length && (\"\" + value).length > length) {\n replacement = \"\" + (replacement || \"...\");\n length = length - replacement.length;\n value = \"\" + value;\n switch (trimWhere) {\n case \"left\":\n return replacement + value.slice(-length);\n case \"middle\":\n var leftLen = Math.ceil(length / 2);\n return value.substr(0, leftLen) + replacement + value.slice(leftLen - length);\n default:\n return value.substr(0, length) + replacement;\n }\n } else {\n return value;\n }\n};\nfilters.json = function(rootObject, space, replacer) {\n return JSON.stringify(toJS(rootObject), replacer, space);\n};\nfilters.number = function(value) {\n return (+unwrap(value)).toLocaleString();\n};\nexport { filters };\n", "import { Builder } from '@tko/builder'\n\nimport { VirtualProvider } from '@tko/provider.virtual'\nimport { DataBindProvider } from '@tko/provider.databind'\nimport { ComponentProvider } from '@tko/provider.component'\nimport { AttributeProvider } from '@tko/provider.attr'\nimport { MultiProvider } from '@tko/provider.multi'\nimport {\n TextMustacheProvider, AttributeMustacheProvider\n} from '@tko/provider.mustache'\nimport {\n NativeProvider\n} from '@tko/provider.native'\n\nimport { bindings as coreBindings } from '@tko/binding.core'\nimport { bindings as templateBindings } from '@tko/binding.template'\nimport { bindings as ifBindings } from '@tko/binding.if'\nimport { bindings as foreachBindings } from '@tko/binding.foreach'\nimport { bindings as componentBindings } from '@tko/binding.component'\n\nimport { filters } from '@tko/filter.punches'\n\nimport components from '@tko/utils.component'\nimport { createElement, Fragment } from '@tko/utils.jsx'\n\nconst builder = new Builder({\n filters,\n provider: new MultiProvider({\n providers: [\n new ComponentProvider(),\n new NativeProvider(),\n new AttributeMustacheProvider(),\n new TextMustacheProvider(),\n new DataBindProvider(),\n new VirtualProvider(),\n new AttributeProvider(),\n ]\n }),\n bindings: [\n coreBindings,\n templateBindings,\n ifBindings,\n foreachBindings,\n componentBindings,\n { each: foreachBindings.foreach }\n ]\n})\n\nconst version = BUILD_VERSION\nexport default builder.create({\n jsx: {\n createElement,\n Fragment,\n },\n components,\n version,\n Component: components.ComponentABC,\n})\n"],
|
|
5
5
|
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|