@tko/binding.core 4.0.0-beta1.3 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/attr.js +10 -14
- package/dist/attr.js.map +2 -2
- package/dist/checked.js +19 -28
- package/dist/checked.js.map +3 -3
- package/dist/click.js +4 -5
- package/dist/click.js.map +2 -2
- package/dist/css.js +6 -12
- package/dist/css.js.map +2 -2
- package/dist/descendantsComplete.js +3 -4
- package/dist/descendantsComplete.js.map +2 -2
- package/dist/enableDisable.js +6 -7
- package/dist/enableDisable.js.map +2 -2
- package/dist/event.js +7 -8
- package/dist/event.js.map +3 -3
- package/dist/hasfocus.js +23 -22
- package/dist/hasfocus.js.map +2 -2
- package/dist/html.js +8 -8
- package/dist/html.js.map +2 -2
- package/dist/index.cjs +1037 -863
- package/dist/index.cjs.map +4 -4
- package/dist/index.js +6 -5
- package/dist/index.js.map +2 -2
- package/dist/index.mjs +6 -5
- package/dist/index.mjs.map +2 -2
- package/dist/let.js +6 -7
- package/dist/let.js.map +2 -2
- package/dist/options.js +39 -26
- package/dist/options.js.map +2 -2
- package/dist/selectedOptions.js +8 -9
- package/dist/selectedOptions.js.map +2 -2
- package/dist/style.js +8 -13
- package/dist/style.js.map +2 -2
- package/dist/submit.js +7 -8
- package/dist/submit.js.map +2 -2
- package/dist/text.js +4 -5
- package/dist/text.js.map +2 -2
- package/dist/textInput.js +24 -59
- package/dist/textInput.js.map +2 -2
- package/dist/uniqueName.js +5 -7
- package/dist/uniqueName.js.map +2 -2
- package/dist/using.js +6 -7
- package/dist/using.js.map +2 -2
- package/dist/value.js +17 -23
- package/dist/value.js.map +2 -2
- package/dist/visible.js +7 -8
- package/dist/visible.js.map +2 -2
- package/package.json +6 -7
- package/LICENSE +0 -22
- package/dist/test-helper.js +0 -14
- package/dist/test-helper.js.map +0 -7
package/dist/index.cjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../index.ts", "../../utils/dist/array.js", "../../utils/dist/options.js", "../../utils/dist/error.js", "../../utils/dist/async.js", "../../utils/dist/
|
|
4
|
-
"sourcesContent": ["export * from './src'\n", "// @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 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", "\nimport {\n setElementName, objectForEach\n} from '@tko/utils'\n\nimport {\n unwrap\n} from '@tko/observable'\n\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\n // Find the namespace of this attribute, if any.\n var prefixLen = attrName.indexOf(':')\n var namespace = prefixLen > 0 && element.lookupNamespaceURI(attrName.substr(0, prefixLen))\n\n // To cover cases like \"attr: { checked:someProp }\", we want to remove the attribute entirely\n // when someProp is a \"no value\"-like value (strictly null, false, or undefined)\n // (because the absence of the \"checked\" attr is how to mark an element as not checked, etc.)\n const toRemove = attrValue === false || attrValue === null || attrValue === undefined\n\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\n // Treat \"name\" specially - although you can think of it as an attribute, it also needs\n // special handling on older versions of IE (https://github.com/SteveSanderson/knockout/pull/333)\n // Deliberately being case-sensitive here because XHTML would regard \"Name\" as a different thing\n // entirely, and there's no strong reason to allow for such casing in HTML.\n if (attrName === 'name') {\n setElementName(element, toRemove ? '' : attrValue)\n }\n })\n }\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", "\nimport {\n registerEventHandler, arrayIndexOf, addOrRemoveItem\n} from '@tko/utils'\n\nimport {\n unwrap, dependencyDetection, isWriteableObservable\n} from '@tko/observable'\n\nimport {\n computed, pureComputed\n} from '@tko/computed'\n\nexport var checked = {\n after: ['value', 'attr'],\n init: function (element, valueAccessor, allBindings) {\n var checkedValue = pureComputed(function () {\n // Treat \"value\" like \"checkedValue\" when it is included with \"checked\" binding\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\n function updateModel () {\n // This updates the model value from the view value.\n // It runs in response to DOM events (click) and changes in checkedValue.\n var isChecked = element.checked,\n elemValue = checkedValue()\n\n // When we're first setting up this computed, don't change any model state.\n if (dependencyDetection.isInitial()) {\n return\n }\n\n // We can ignore unchecked radio buttons, because some other radio\n // button will be checked, and that one can take care of updating state.\n // button will be checked, and that one can take care of updating state\n if (!isChecked && (isRadio || dependencyDetection.getDependenciesCount())) {\n return\n }\n\n var modelValue = dependencyDetection.ignore(valueAccessor)\n if (valueIsArray) {\n var writableValue = rawValueIsNonArrayObservable ? modelValue.peek() : modelValue,\n saveOldValue = oldElemValue\n oldElemValue = elemValue\n\n if (saveOldValue !== elemValue) {\n // When we're responding to the checkedValue changing, and the element is\n // currently checked, replace the old elem value with the new elem value\n // in the model array.\n if (isChecked) {\n addOrRemoveItem(writableValue, elemValue, true)\n addOrRemoveItem(writableValue, saveOldValue, false)\n }\n\n oldElemValue = elemValue\n } else {\n // When we're responding to the user having checked/unchecked a checkbox,\n // add/remove the element value to the model array.\n addOrRemoveItem(writableValue, elemValue, isChecked)\n }\n if (rawValueIsNonArrayObservable && isWriteableObservable(modelValue)) {\n modelValue(writableValue)\n }\n } else {\n if (isCheckbox) {\n if (elemValue === undefined) {\n elemValue = isChecked\n } else if (!isChecked) {\n elemValue = undefined\n }\n }\n valueAccessor(elemValue, {onlyIfChanged: true})\n }\n };\n\n function updateView () {\n // This updates the view value from the model value.\n // It runs in response to changes in the bound (checked) value.\n var modelValue = modelValue = unwrap(valueAccessor())\n var elemValue = checkedValue()\n\n if (valueIsArray) {\n // When a checkbox is bound to an array, being checked represents its value being present in that array\n element.checked = arrayIndexOf(modelValue, elemValue) >= 0\n oldElemValue = elemValue\n } else if (isCheckbox && elemValue === undefined) {\n // When a checkbox is bound to any other value (not an array) and \"checkedValue\" is not defined,\n // being checked represents the value being trueish\n element.checked = !!modelValue\n } else {\n // Otherwise, being checked means that the checkbox or radio button's value corresponds to the model value\n element.checked = (checkedValue() === modelValue)\n }\n };\n\n var isCheckbox = element.type == 'checkbox',\n isRadio = element.type == 'radio'\n\n // Only bind to check boxes and radio buttons\n if (!isCheckbox && !isRadio) {\n return\n }\n\n var rawValue = valueAccessor(),\n valueIsArray = isCheckbox && (unwrap(rawValue) instanceof Array),\n rawValueIsNonArrayObservable = !(valueIsArray && rawValue.push && rawValue.splice),\n useElementValue = isRadio || valueIsArray,\n oldElemValue = valueIsArray ? checkedValue() : undefined\n\n // Set up two computeds to update the binding:\n\n // The first responds to changes in the checkedValue value and to element clicks\n computed(updateModel, null, { disposeWhenNodeIsRemoved: element })\n registerEventHandler(element, 'click', updateModel)\n\n // The second responds to changes in the model value (the one associated with the checked binding)\n computed(updateView, null, { disposeWhenNodeIsRemoved: element })\n\n rawValue = undefined\n }\n}\n\nexport var checkedValue = {\n update: function (element, valueAccessor) {\n element.value = unwrap(valueAccessor())\n }\n}\n", "\nimport {\n objectForEach, registerEventHandler, makeArray,\n throttle as throttleFn, debounce as debounceFn\n} from '@tko/utils'\n\nimport {\n unwrap\n} from '@tko/observable'\n\n// For certain common events (currently just 'click'), allow a simplified data-binding syntax\n// e.g. click:handler instead of the usual full-length event:{click:handler}\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}\n\nfunction makeDescriptor (handlerOrObject) {\n return typeof handlerOrObject === 'function' ? { handler: handlerOrObject } : handlerOrObject || {}\n}\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\n let eventHandlerFn = (event, ...more) => {\n var handlerReturnValue\n const {handler, passive, bubble, preventDefault} = makeDescriptor(valueAccessor()[eventName])\n\n try {\n // Take all the event args, and prefix with the viewmodel\n if (handler) {\n const possiblyUpdatedViewModel = bindingContext.$data\n const argsForHandler = [possiblyUpdatedViewModel, event, ...more]\n handlerReturnValue = handler.apply(possiblyUpdatedViewModel, argsForHandler)\n }\n } finally {\n // preventDefault in the descriptor takes precedent over the handler return value\n if (preventDefault !== undefined) {\n if (unwrap(preventDefault)) { event.preventDefault() }\n } else if (handlerReturnValue !== true) {\n // Normally we want to prevent default action. Developer can override this by explicitly returning true\n // preventDefault will throw an error if the event is passive.\n if (!passive) { 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) { event.stopPropagation() }\n }\n }\n\n if (debounce) { eventHandlerFn = debounceFn(eventHandlerFn, debounce) }\n if (throttle) { eventHandlerFn = throttleFn(eventHandlerFn, throttle) }\n\n registerEventHandler(element, eventName, eventHandlerFn, eventOptions || false)\n })\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", "\nimport {\n makeEventHandlerShortcut\n} from './event'\n\n// 'click' is just a shorthand for the usual full-length event:{click:handler}\nexport var click = makeEventHandlerShortcut('click')\n", "\nimport {\n createSymbolOrString, toggleDomNodeCssClass, objectForEach, stringTrim\n} from '@tko/utils'\n\nimport {\n unwrap\n} from '@tko/observable'\n\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 || '')) // Make sure we don't try to store or set a non-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/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", "\"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 { 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", "/**\n * A simple callback binding.\n */\nimport {\n BindingHandler\n} from '@tko/bind'\n\nexport default class DescendantsCompleteHandler extends BindingHandler {\n onDescendantsComplete () {\n if (typeof this.value === 'function') {\n this.value(this.$element)\n }\n }\n\n static get allowVirtualElements () { return true }\n}\n", "\nimport {\n unwrap\n} from '@tko/observable'\n\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}\n\nexport var disable = {\n update: function (element, valueAccessor) {\n enable.update(element, function () { return !unwrap(valueAccessor()) })\n }\n}\n", "\nimport {\n createSymbolOrString, triggerEvent, registerEventHandler\n} from '@tko/utils'\n\nimport {\n unwrap, dependencyDetection\n} from '@tko/observable'\n\nvar hasfocusUpdatingProperty = createSymbolOrString('__ko_hasfocusUpdating')\nvar hasfocusLastValue = createSymbolOrString('__ko_hasfocusLastValue')\n\nexport var hasfocus = {\n init: function (element, valueAccessor /*, allBindings */) {\n var handleElementFocusChange = function (isFocused) {\n // Where possible, ignore which event was raised and determine focus state using activeElement,\n // as this avoids phantom focus/blur events raised when changing tabs in modern browsers.\n // However, not all KO-targeted browsers (Firefox 2) support activeElement. For those browsers,\n // prevent a loss of focus when changing tabs/windows by setting a flag that prevents hasfocus\n // from calling 'blur()' on the element when it loses focus.\n // Discussion at https://github.com/SteveSanderson/knockout/pull/352\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 // IE9 throws if you access activeElement during page load (see issue #703)\n active = ownerDoc.body\n }\n isFocused = (active === element)\n }\n // var modelValue = valueAccessor();\n valueAccessor(isFocused, {onlyIfChanged: true})\n\n // cache the latest value, so we can avoid unnecessarily calling focus/blur in the update function\n element[hasfocusLastValue] = isFocused\n element[hasfocusUpdatingProperty] = false\n }\n var handleElementFocusIn = handleElementFocusChange.bind(null, true)\n var handleElementFocusOut = handleElementFocusChange.bind(null, false)\n\n registerEventHandler(element, 'focus', handleElementFocusIn)\n registerEventHandler(element, 'focusin', handleElementFocusIn) // For IE\n registerEventHandler(element, 'blur', handleElementFocusOut)\n registerEventHandler(element, 'focusout', handleElementFocusOut) // For IE\n },\n update: function (element, valueAccessor) {\n var value = !!unwrap(valueAccessor())\n\n if (!element[hasfocusUpdatingProperty] && element[hasfocusLastValue] !== value) {\n value ? element.focus() : element.blur()\n\n // In IE, the blur method doesn't always cause the element to lose focus (for example, if the window is not in focus).\n // Setting focus to the body element does seem to be reliable in IE, but should only be used if we know that the current\n // element was focused already.\n if (!value && element[hasfocusLastValue]) {\n element.ownerDocument.body.focus()\n }\n\n // For IE, which doesn't reliably fire \"focus\" or \"blur\" events synchronously\n dependencyDetection.ignore(triggerEvent, null, [element, value ? 'focusin' : 'focusout'])\n }\n }\n}\n", "import {\n setHtml, parseHtmlFragment, virtualElements\n} from '@tko/utils'\n\nimport {\n unwrap\n} from '@tko/observable'\n\nexport var html = {\n init: function () {\n // Prevent binding on the dynamically-injected HTML (as developers are unlikely to expect that, and it has security implications)\n return {\n 'controlsDescendantBindings': true\n }\n },\n //\n // Modify internal, per ko.punches and :\n // http://stackoverflow.com/a/15348139\n update: function (element, valueAccessor) {\n setHtml(element, valueAccessor())\n },\n allowVirtualElements: true\n}\n", "\nimport {\n applyBindingsToDescendants\n} from '@tko/bind'\n\nexport default {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n // Make a modified binding context, with extra properties, and apply it to descendant elements\n var innerContext = bindingContext['extend'](valueAccessor)\n applyBindingsToDescendants(innerContext, element)\n\n return { 'controlsDescendantBindings': true }\n },\n allowVirtualElements: true\n}\n", "\nimport {\n tagNameLower, arrayFilter, arrayMap, setTextContent, arrayIndexOf,\n setOptionNodeSelectionState, triggerEvent, domData,\n ensureSelectElementIsRenderedCorrectly, selectExtensions\n} from '@tko/utils'\n\nimport {\n unwrap, dependencyDetection\n} from '@tko/observable'\n\nimport {\n setDomNodeChildrenFromArrayMapping\n} from '@tko/bind'\n\nvar captionPlaceholder = {}\n\nexport var options = {\n init: function (element) {\n if (tagNameLower(element) !== 'select') { throw new Error('options binding applies only to SELECT elements') }\n\n // Remove all existing <option>s.\n while (element.length > 0) {\n element.remove(0)\n }\n\n // Ensures that the binding processor doesn't try to bind the options\n return { 'controlsDescendantBindings': true }\n },\n update: function (element, valueAccessor, allBindings) {\n function selectedOptions () {\n return arrayFilter(element.options, function (node) { return node.selected })\n }\n\n var selectWasPreviouslyEmpty = element.length == 0,\n multiple = element.multiple,\n previousScrollTop = (!selectWasPreviouslyEmpty && multiple) ? element.scrollTop : null,\n unwrappedArray = unwrap(valueAccessor()),\n valueAllowUnset = allBindings.get('valueAllowUnset') && allBindings['has']('value'),\n includeDestroyed = allBindings.get('optionsIncludeDestroyed'),\n arrayToDomNodeChildrenOptions = {},\n captionValue,\n filteredArray,\n previousSelectedValues = []\n\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\n if (unwrappedArray) {\n if (typeof unwrappedArray.length === 'undefined') // Coerce single value into array\n { unwrappedArray = [unwrappedArray] }\n\n // Filter out any entries marked as destroyed\n filteredArray = arrayFilter(unwrappedArray, function (item) {\n return includeDestroyed || item === undefined || item === null || !unwrap(item['_destroy'])\n })\n\n // If caption is included, add it to the array\n if (allBindings['has']('optionsCaption')) {\n captionValue = unwrap(allBindings.get('optionsCaption'))\n // If caption value is null or undefined, don't show a caption\n if (captionValue !== null && captionValue !== undefined) {\n filteredArray.unshift(captionPlaceholder)\n }\n }\n } else {\n // If a falsy value is provided (e.g. null), we'll simply empty the select element\n }\n\n function applyToObject (object, predicate, defaultValue) {\n var predicateType = typeof predicate\n if (predicateType === 'function') // Given a function; run it against the data value\n { return predicate(object) } else if (predicateType == 'string') // Given a string; treat it as a property name on the data value\n { return object[predicate] } else // Given no optionsText arg; use the data value itself\n { return defaultValue }\n }\n\n // The following functions can run at two different times:\n // The first is when the whole array is being updated directly from this binding handler.\n // The second is when an observable value for a specific array entry is updated.\n // oldOptions will be empty in the first case, but will be filled with the previously generated option in the second.\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, undefined)\n } else {\n // Apply a value to the option element\n var optionValue = applyToObject(arrayEntry, allBindings.get('optionsValue'), arrayEntry)\n selectExtensions.writeValue(option, unwrap(optionValue))\n\n // Apply some text to the option element\n var optionText = applyToObject(arrayEntry, allBindings.get('optionsText'), optionValue)\n setTextContent(option, optionText)\n }\n return [option]\n }\n\n // By using a beforeRemove callback, we delay the removal until after new items are added. This fixes a selection\n // problem in IE<=8 and Firefox. See https://github.com/knockout/knockout/issues/1208\n arrayToDomNodeChildrenOptions['beforeRemove'] =\n function (option) {\n element.removeChild(option)\n }\n\n function setSelectionCallback (arrayEntry, newOptions) {\n if (itemUpdate && valueAllowUnset) {\n // The model value is authoritative, so make sure its value is the one selected\n // There is no need to use dependencyDetection.ignore since setDomNodeChildrenFromArrayMapping does so already.\n selectExtensions.writeValue(element, unwrap(allBindings.get('value')), true /* allowUnset */)\n } else if (previousSelectedValues.length) {\n // IE6 doesn't like us to assign selection to OPTION nodes before they're added to the document.\n // That's why we first added them without selection. Now it's time to set the selection.\n var isSelected = arrayIndexOf(previousSelectedValues, selectExtensions.readValue(newOptions[0])) >= 0\n setOptionNodeSelectionState(newOptions[0], isSelected)\n\n // If this option was changed from being selected during a single-item update, notify the change\n if (itemUpdate && !isSelected) {\n dependencyDetection.ignore(triggerEvent, null, [element, 'change'])\n }\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 : undefined])\n }\n }\n\n setDomNodeChildrenFromArrayMapping(element, filteredArray, optionForArrayItem, arrayToDomNodeChildrenOptions, callback)\n\n dependencyDetection.ignore(function () {\n if (valueAllowUnset) {\n // The model value is authoritative, so make sure its value is the one selected\n selectExtensions.writeValue(element, unwrap(allBindings.get('value')), true /* allowUnset */)\n } else {\n // Determine if the selection has changed as a result of updating the options list\n var selectionChanged\n if (multiple) {\n // For a multiple-select box, compare the new selection count to the previous one\n // But if nothing was selected before, the selection can't have changed\n selectionChanged = previousSelectedValues.length && selectedOptions().length < previousSelectedValues.length\n } else {\n // For a single-select box, compare the current value to the previous value\n // But if nothing was selected before or nothing is selected now, just look for a change in selection\n selectionChanged = (previousSelectedValues.length && element.selectedIndex >= 0)\n ? (selectExtensions.readValue(element.options[element.selectedIndex]) !== previousSelectedValues[0])\n : (previousSelectedValues.length || element.selectedIndex >= 0)\n }\n\n // Ensure consistency between model value and selected option.\n // If the dropdown was changed so that selection is no longer the same,\n // notify the value or selectedOptions binding.\n if (selectionChanged) {\n triggerEvent(element, 'change')\n }\n }\n })\n\n // Workaround for IE bug\n ensureSelectElementIsRenderedCorrectly(element)\n\n if (previousScrollTop && Math.abs(previousScrollTop - element.scrollTop) > 20) { element.scrollTop = previousScrollTop }\n }\n}\n", "\nimport {\n arrayForEach, setOptionNodeSelectionState, arrayIndexOf,\n registerEventHandler, tagNameLower, selectExtensions\n} from '@tko/utils'\n\nimport {\n unwrap\n} from '@tko/observable'\n\nexport var selectedOptions = {\n after: ['options', 'foreach'],\n\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) { valueToWrite.push(selectExtensions.readValue(node)) }\n })\n valueAccessor(valueToWrite)\n })\n },\n\n update: function (element, valueAccessor) {\n if (tagNameLower(element) != 'select') { throw new Error('values binding applies only to SELECT elements') }\n\n var newValue = unwrap(valueAccessor()),\n previousScrollTop = element.scrollTop\n\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) { // This check prevents flashing of the select element in IE\n setOptionNodeSelectionState(node, isSelected)\n }\n })\n }\n\n element.scrollTop = previousScrollTop\n }\n}\n", "\nimport {\n objectForEach, options\n} from '@tko/utils'\n\nimport {\n unwrap\n} from '@tko/observable'\n\nconst {jQueryInstance} = options\n\nexport var style = {\n update: function (element, valueAccessor) {\n var value = unwrap(valueAccessor() || {})\n objectForEach(value, function (styleName, styleValue) {\n styleValue = unwrap(styleValue)\n\n if (styleValue === null || styleValue === undefined || styleValue === false) {\n // Empty string removes the value, whereas null/undefined have no effect\n styleValue = ''\n }\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", "\nimport {\n registerEventHandler\n} from '@tko/utils'\n\nexport var submit = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext) {\n if (typeof valueAccessor() !== 'function') { throw new Error('The value for a submit binding must be a function') }\n registerEventHandler(element, 'submit', function (event) {\n var handlerReturnValue\n var value = valueAccessor()\n try { handlerReturnValue = value.call(bindingContext['$data'], element) } finally {\n if (handlerReturnValue !== true) { // Normally we want to prevent default action. Developer can override this be explicitly returning true.\n if (event.preventDefault) { event.preventDefault() } else { event.returnValue = false }\n }\n }\n })\n }\n}\n", "import {\n setTextContent\n} from '@tko/utils'\n\nexport var text = {\n init: function () {\n // Prevent binding on the dynamically-injected text node (as developers are unlikely to expect that, and it has security implications).\n // It should also make things faster, as we no longer have to consider whether the text node might be bindable.\n return { controlsDescendantBindings: true }\n },\n update: function (element, valueAccessor) {\n setTextContent(element, valueAccessor())\n },\n allowVirtualElements: true\n}\n", "\nimport {\n domData, registerEventHandler, ieVersion, safeSetTimeout, options,\n arrayForEach, tagNameLower\n} from '@tko/utils'\n\nimport {\n unwrap\n} from '@tko/observable'\n\nimport {\n computed\n} from '@tko/computed'\n\nimport {\n BindingHandler\n} from '@tko/bind'\n\nvar parseVersion, operaVersion, safariVersion, firefoxVersion\n\n\n/**\n * TextInput binding handler for modern browsers (legacy below).\n * @extends BindingHandler\n */\nclass TextInput extends BindingHandler {\n get aliases () { return 'textinput' }\n\n constructor (...args) {\n super(...args)\n this.previousElementValue = this.$element.value\n\n if (options.debug && this.constructor._forceUpdateOn) {\n // Provide a way for tests to specify exactly which events are bound\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\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\n eventsIndicatingSyncValueChange () {\n // input: Default, modern handler\n // change: Catch programmatic updates of the value that fire this event.\n // blur: To deal with browsers that don't notify any kind of event for some changes (IE, Safari, etc.)\n return ['input', 'change', 'blur']\n }\n\n eventsIndicatingDeferValueChange () {\n return []\n }\n\n updateModel (event) {\n const element = this.$element\n clearTimeout(this.timeoutHandle)\n this.elementValueBeforeEvent = this.timeoutHandle = undefined\n const elementValue = element.value\n if (this.previousElementValue !== elementValue) {\n // Provide a way for tests to know exactly which event was processed\n if (options.debug && event) {\n element._ko_textInputProcessedEvent = event.type\n }\n this.previousElementValue = elementValue\n this.value = elementValue\n }\n }\n\n deferUpdateModel (event) {\n const element = this.$element\n if (!this.timeoutHandle) {\n // The elementValueBeforeEvent variable is set *only* during the brief gap between an\n // event firing and the updateModel function running. This allows us to ignore model\n // updates that are from the previous state of the element, usually due to techniques\n // such as rateLimit. Such updates, if not ignored, can cause keystrokes to be lost.\n this.elementValueBeforeEvent = element.value\n const handler = options.debug ? this.updateModel.bind(this, { type: event.type }) : this.updateModel\n this.timeoutHandle = safeSetTimeout(handler, 4)\n }\n }\n\n updateView () {\n let modelValue = unwrap(this.value)\n if (modelValue === null || modelValue === undefined) {\n modelValue = ''\n }\n if (this.elementValueBeforeEvent !== undefined\n && modelValue === this.elementValueBeforeEvent) {\n setTimeout(this.updateView.bind(this), 4)\n } else if (this.$element.value !== modelValue) {\n // Update the element only if the element and model are different. On some browsers, updating the value\n // will move the cursor to the end of the input, which would be bad while the user is typing.\n this.previousElementValue = modelValue // Make sure we ignore events (propertychange) that result from updating the value\n this.$element.value = modelValue\n this.previousElementValue = this.$element.value // In case the browser changes the value (see #2281)\n }\n }\n}\n\n/**\n * Legacy Input Classes, below\n */\nclass TextInputIE extends TextInput {\n constructor (...args) {\n super(...args)\n\n if (ieVersion < 11) {\n // Internet Explorer <= 8 doesn't support the 'input' event, but does include 'propertychange' that fires whenever\n // any property of an element changes. Unlike 'input', it also fires if a property is changed from JavaScript code,\n // but that's an acceptable compromise for this binding. IE 9 and 10 support 'input', but since they don't always\n // fire it when using autocomplete, we'll use 'propertychange' for them also.\n this.addEventListener('propertychange', event =>\n event.propertyName === 'value' && this.updateModel(event)\n )\n }\n\n if (ieVersion >= 8 && ieVersion < 10) {\n this.watchForSelectionChangeEvent()\n this.addEventListener('dragend', 'deferUpdateModel')\n }\n }\n\n eventsIndicatingSyncValueChange () {\n // keypress: All versions (including 11) of Internet Explorer have a bug that they don't generate an input or propertychange event when ESC is pressed\n return [...super.eventsIndicatingValueChange(), 'keypress']\n }\n\n // IE 8 and 9 have bugs that prevent the normal events from firing when the value changes.\n // But it does fire the 'selectionchange' event on many of those, presumably because the\n // cursor is moving and that counts as the selection changing. The 'selectionchange' event is\n // fired at the document level only and doesn't directly indicate which element changed. We\n // set up just one event handler for the document and use 'activeElement' to determine which\n // element was changed.\n selectionChangeHandler (event) {\n const target = this.activeElement\n const handler = target && domData.get(target, selectionChangeHandlerName)\n if (handler) { handler(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}\n\n\n// IE 8 and 9 have bugs that prevent the normal events from firing when the value changes.\n// But it does fire the 'selectionchange' event on many of those, presumably because the\n// cursor is moving and that counts as the selection changing. The 'selectionchange' event is\n// fired at the document level only and doesn't directly indicate which element changed. We\n// set up just one event handler for the document and use 'activeElement' to determine which\n// element was changed.\nclass TextInputIE9 extends TextInputIE {\n updateModel (...args) {\n // IE9 will mess up the DOM if you handle events synchronously which results in DOM changes (such as other bindings);\n // so we'll make sure all updates are asynchronous\n this.deferUpdateModel(...args)\n }\n}\n\n\nclass TextInputIE8 extends TextInputIE {\n eventsIndicatingValueChange () {\n // IE 8 has a bug where it fails to fire 'propertychange' on the first update following a value change from\n // JavaScript code. It also doesn't fire if you clear the entire value. To fix this, we bind to the following\n // events too.\n // keypress: All versions (including 11) of Internet Explorer have a bug that they don't generate an input or propertychange event when ESC is pressed\n // keyup: A single keystoke\n // keydown: First character when a key is held down\n return [...super.eventsIndicatingValueChange(), 'keyup', 'keydown']\n }\n}\n\n\n// Safari <5 doesn't fire the 'input' event for <textarea> elements (it does fire 'textInput'\n// but only when typing). So we'll just catch as much as we can with keydown, cut, and paste.\nclass TextInputLegacySafari extends TextInput {\n eventsIndicatingDeferValueChange () {\n return ['keydown', 'paste', 'cut']\n }\n}\n\n\nclass TextInputLegacyOpera extends TextInput {\n eventsIndicatingDeferValueChange () {\n // Opera 10 doesn't always fire the 'input' event for cut, paste, undo & drop operations.\n // We can try to catch some of those using 'keydown'.\n return ['keydown']\n }\n}\n\n\nclass TextInputLegacyFirefox extends TextInput {\n eventsIndicatingValueChange () {\n return [\n ...super.eventsIndicatingSyncValueChange(),\n // Firefox <= 3.6 doesn't fire the 'input' event when text is filled in through autocomplete\n 'DOMAutoComplete',\n // Firefox <=3.5 doesn't fire the 'input' event when text is dropped into the input.\n 'dragdrop', // < 3.5\n 'drop' // 3.5\n ]\n }\n}\n\n\nconst w = options.global // window / global\nif (w.navigator) {\n const parseVersion = (matches) => matches && parseFloat(matches[1])\n const userAgent = w.navigator.userAgent\n const isChrome = userAgent.match(/Chrome\\/([^ ]+)/)\n // Detect various browser versions because some old versions don't fully support the 'input' event\n operaVersion = w.opera && w.opera.version && parseInt(w.opera.version())\n safariVersion = parseVersion(userAgent.match(/Version\\/([^ ]+) Safari/))\n firefoxVersion = parseVersion(userAgent.match(/Firefox\\/([^ ]*)/))\n}\n\n\nexport const textInput =\n ieVersion === 8 ? TextInputIE8\n : ieVersion === 9 ? TextInputIE9\n : ieVersion ? TextInputIE\n : safariVersion && safariVersion < 5 ? TextInputLegacySafari\n : operaVersion < 11 ? TextInputLegacyOpera\n : firefoxVersion && firefoxVersion < 4 ? TextInputLegacyFirefox\n : TextInput\n", "\nimport {\n setElementName\n} from '@tko/utils'\n\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", "\nimport {\n ieVersion, stringStartsWith, safeSetTimeout, tagNameLower, arrayForEach,\n selectExtensions\n} from '@tko/utils'\n\nimport {\n unwrap, dependencyDetection\n} from '@tko/observable'\n\nimport {\n applyBindingAccessorsToNode, BindingHandler\n} from '@tko/bind'\n\nexport class value extends BindingHandler {\n static get after () { return ['options', 'foreach', 'template'] }\n\n constructor (...args) {\n super(...args)\n\n // If the value binding is placed on a radio/checkbox, then just pass through to checkedValue and quit\n if (this.isCheckboxOrRadio) {\n applyBindingAccessorsToNode(this.$element,\n { checkedValue: this.valueAccessor })\n return\n }\n\n this.propertyChangedFired = false\n this.elementValueBeforeEvent = null\n\n if (this.ieAutoCompleteHackNeeded) {\n this.addEventListener('propertyChange', () => this.propertyChangedFired = true)\n this.addEventListener('focus', () => this.propertyChangedFired = false)\n this.addEventListener('blur', () => this.propertyChangeFired &&\n this.valueUpdateHandler())\n }\n\n arrayForEach(this.eventsToCatch, eventName => this.registerEvent(eventName))\n\n if (this.isInput && this.$element.type === 'file') {\n this.updateFromModel = this.updateFromModelForFile\n } else {\n this.updateFromModel = this.updateFromModelForValue\n }\n\n this.computed('updateFromModel')\n }\n\n get eventsToCatch () {\n const requestedEventsToCatch = this.allBindings.get('valueUpdate')\n const requestedEventsArray = typeof requestedEventsToCatch === 'string' ?\n [requestedEventsToCatch] : requestedEventsToCatch || []\n return [...new Set(['change', ...requestedEventsArray])]\n }\n\n get isInput () {\n return tagNameLower(this.$element) === 'input'\n }\n\n get isCheckboxOrRadio () {\n const e = this.$element\n return this.isInput && (e.type == 'checkbox' || e.type == 'radio')\n }\n\n // Workaround for https://github.com/SteveSanderson/knockout/issues/122\n // IE doesn't fire \"change\" events on textboxes if the user selects a value from its autocomplete list\n get ieAutoCompleteHackNeeded () {\n return ieVersion && isInputElement &&\n this.$element.type == 'text' && this.$element.autocomplete != 'off' &&\n (!this.$element.form || this.$element.form.autocomplete != 'off')\n }\n\n valueUpdateHandler () {\n this.elementValueBeforeEvent = null\n this.propertyChangedFired = false\n this.value = selectExtensions.readValue(this.$element)\n }\n\n registerEvent (eventName) {\n // The syntax \"after<eventname>\" means \"run the handler asynchronously after the event\"\n // This is useful, for example, to catch \"keydown\" events after the browser has updated the control\n // (otherwise, selectExtensions.readValue(this) will receive the control's value *before* the key event)\n var handler = this.valueUpdateHandler.bind(this)\n if (stringStartsWith(eventName, 'after')) {\n handler = () => {\n // The elementValueBeforeEvent variable is non-null *only* during the brief gap between\n // a keyX event firing and the valueUpdateHandler running, which is scheduled to happen\n // at the earliest asynchronous opportunity. We store this temporary information so that\n // if, between keyX and valueUpdateHandler, the underlying model value changes separately,\n // we can overwrite that model value change with the value the user just typed. Otherwise,\n // techniques like rateLimit can trigger model changes at critical moments that will\n // override the user's inputs, causing keystrokes to be lost.\n this.elementValueBeforeEvent = selectExtensions.readValue(this.$element)\n safeSetTimeout(this.valueUpdateHandler.bind(this), 0)\n }\n eventName = eventName.substring(5 /* 'after'.length */)\n }\n this.addEventListener(eventName, handler)\n }\n\n updateFromModelForFile () {\n // For file input elements, can only write the empty string\n var newValue = unwrap(this.value)\n if (newValue === null || newValue === undefined || newValue === '') {\n this.$element.value = ''\n } else {\n dependencyDetection.ignore(this.valueUpdateHandler, this) // reset the model to match the element\n }\n }\n\n updateFromModelForValue () {\n const element = this.$element\n var newValue = unwrap(this.value)\n var elementValue = selectExtensions.readValue(element)\n\n if (this.elementValueBeforeEvent !== null && newValue === this.elementValueBeforeEvent) {\n safeSetTimeout(this.updateFromModel.bind(this), 0)\n return\n }\n\n if (newValue === elementValue && elementValue !== undefined) { return }\n\n if (tagNameLower(element) === 'select') {\n const allowUnset = this.allBindings.get('valueAllowUnset')\n selectExtensions.writeValue(element, newValue, allowUnset)\n\n if (!allowUnset && newValue !== selectExtensions.readValue(element)) {\n // If you try to set a model value that can't be represented in an already-populated dropdown, reject that change,\n // because you're not allowed to have a model value that disagrees with a visible UI selection.\n dependencyDetection.ignore(this.valueUpdateHandler, this)\n }\n } else {\n selectExtensions.writeValue(element, newValue)\n }\n }\n}\n", "import {\n unwrap\n} from '@tko/observable'\n\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}\n\nexport var hidden = {\n update: function (element, valueAccessor) {\n visible.update.call(this, element, () => !unwrap(valueAccessor()))\n }\n}\n", "import {\n applyBindingsToDescendants\n} from '@tko/bind'\n\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", "\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'\n\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"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": []
|
|
3
|
+
"sources": ["../index.ts", "../../utils/dist/array.js", "../../utils/dist/options.js", "../../utils/dist/error.js", "../../utils/dist/async.js", "../../utils/dist/object.js", "../../utils/dist/function.js", "../../utils/dist/string.js", "../../utils/dist/symbol.js", "../../utils/dist/css.js", "../../utils/dist/dom/info.js", "../../utils/dist/dom/event.js", "../../utils/dist/dom/data.js", "../../utils/dist/dom/disposal.js", "../../utils/dist/dom/manipulation.js", "../../utils/dist/dom/fixes.js", "../../utils/dist/dom/virtualElements.js", "../../utils/dist/dom/html.js", "../../utils/dist/dom/selectExtensions.js", "../../utils/dist/tasks.js", "../../observable/dist/dependencyDetection.js", "../../observable/dist/subscribableSymbol.js", "../../observable/dist/defer.js", "../../observable/dist/Subscription.js", "../../observable/dist/extenders.js", "../../observable/dist/subscribable.js", "../../observable/dist/observable.js", "../../observable/dist/observableArray.changeTracking.js", "../../observable/dist/observableArray.js", "../src/attr.ts", "../../computed/dist/computed.js", "../../computed/dist/throttleExtender.js", "../../computed/dist/proxy.js", "../src/checked.ts", "../src/event.ts", "../src/click.ts", "../src/css.ts", "../../bind/dist/bindingEvent.js", "../../bind/dist/bindingContext.js", "../../bind/dist/BindingResult.js", "../../lifecycle/dist/LifeCycle.js", "../../bind/dist/BindingHandler.js", "../../bind/dist/LegacyBindingHandler.js", "../../bind/dist/applyBindings.js", "../../bind/dist/arrayToDomNodeChildren.js", "../src/descendantsComplete.ts", "../src/enableDisable.ts", "../src/hasfocus.ts", "../src/html.ts", "../src/let.ts", "../src/options.ts", "../src/selectedOptions.ts", "../src/style.ts", "../src/submit.ts", "../src/text.ts", "../src/textInput.ts", "../src/uniqueName.ts", "../src/value.ts", "../src/visible.ts", "../src/using.ts", "../src/index.ts"],
|
|
4
|
+
"sourcesContent": ["export * from './src'\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nconst { isArray } = Array;\nexport function arrayForEach(array, action, actionOwner) {\n if (arguments.length > 2) {\n action = action.bind(actionOwner);\n }\n for (let i = 0, j = array.length; i < j; ++i) {\n action(array[i], i, array);\n }\n}\nexport function arrayIndexOf(array, item) {\n return (isArray(array) ? array : [...array]).indexOf(item);\n}\nexport function arrayFirst(array, predicate, predicateOwner) {\n return (isArray(array) ? array : [...array]).find(predicate, predicateOwner);\n}\nexport function arrayMap(array, mapping, thisArg) {\n if (arguments.length > 2) {\n mapping = mapping.bind(thisArg);\n }\n return array === null ? [] : Array.from(array, mapping);\n}\nexport function arrayRemoveItem(array, itemToRemove) {\n const index = arrayIndexOf(array, itemToRemove);\n if (index > 0) {\n array.splice(index, 1);\n } else if (index === 0) {\n array.shift();\n }\n}\nexport function arrayGetDistinctValues(array) {\n const seen = /* @__PURE__ */ new Set();\n if (array === null) {\n return [];\n }\n return (isArray(array) ? array : [...array]).filter((item) => seen.has(item) ? false : seen.add(item));\n}\nexport function arrayFilter(array, predicate, predicateOwner) {\n if (arguments.length > 2) {\n predicate = predicate.bind(predicateOwner);\n }\n return array === null ? [] : (isArray(array) ? array : [...array]).filter(predicate);\n}\nexport function arrayPushAll(array, valuesToPush) {\n if (isArray(valuesToPush)) {\n array.push.apply(array, valuesToPush);\n } else {\n for (let i = 0, j = valuesToPush.length; i < j; i++) {\n array.push(valuesToPush[i]);\n }\n }\n return array;\n}\nexport function addOrRemoveItem(array, value, included) {\n const existingEntryIndex = arrayIndexOf(typeof array.peek === \"function\" ? array.peek() : array, value);\n if (existingEntryIndex < 0) {\n if (included) {\n array.push(value);\n }\n } else {\n if (!included) {\n array.splice(existingEntryIndex, 1);\n }\n }\n}\nexport function makeArray(arrayLikeObject) {\n return Array.from(arrayLikeObject);\n}\nexport function range(min, max) {\n const minimum = typeof min === \"function\" ? min() : min;\n const maximum = typeof max === \"function\" ? max() : max;\n const result = [];\n for (let i = minimum; i <= maximum; i++) {\n result.push(i);\n }\n return result;\n}\nexport function findMovesInArrayComparison(left, right, limitFailedCompares) {\n if (left.length && right.length) {\n let failedCompares, l, r, leftItem, rightItem;\n for (failedCompares = l = 0; (!limitFailedCompares || failedCompares < limitFailedCompares) && (leftItem = left[l]); ++l) {\n for (r = 0; rightItem = right[r]; ++r) {\n if (leftItem.value === rightItem.value) {\n leftItem.moved = rightItem.index;\n rightItem.moved = leftItem.index;\n right.splice(r, 1);\n failedCompares = r = 0;\n break;\n }\n }\n failedCompares += r;\n }\n }\n}\nconst statusNotInOld = \"added\";\nconst statusNotInNew = \"deleted\";\nexport function compareArrays(oldArray, newArray, options) {\n options = typeof options === \"boolean\" ? { dontLimitMoves: options } : options || {};\n oldArray = oldArray || [];\n newArray = newArray || [];\n if (oldArray.length < newArray.length) {\n return compareSmallArrayToBigArray(oldArray, newArray, statusNotInOld, statusNotInNew, options);\n } else {\n return compareSmallArrayToBigArray(newArray, oldArray, statusNotInNew, statusNotInOld, options);\n }\n}\nfunction compareSmallArrayToBigArray(smlArray, bigArray, statusNotInSml, statusNotInBig, options) {\n let myMin = Math.min, myMax = Math.max, editDistanceMatrix = new Array(), smlIndex, smlIndexMax = smlArray.length, bigIndex, bigIndexMax = bigArray.length, compareRange = bigIndexMax - smlIndexMax || 1, maxDistance = smlIndexMax + bigIndexMax + 1, thisRow, lastRow, bigIndexMaxForRow, bigIndexMinForRow;\n for (smlIndex = 0; smlIndex <= smlIndexMax; smlIndex++) {\n lastRow = thisRow;\n editDistanceMatrix.push(thisRow = new Array());\n bigIndexMaxForRow = myMin(bigIndexMax, smlIndex + compareRange);\n bigIndexMinForRow = myMax(0, smlIndex - 1);\n for (bigIndex = bigIndexMinForRow; bigIndex <= bigIndexMaxForRow; bigIndex++) {\n if (!bigIndex) {\n thisRow[bigIndex] = smlIndex + 1;\n } else if (!smlIndex) {\n thisRow[bigIndex] = bigIndex + 1;\n } else if (smlArray[smlIndex - 1] === bigArray[bigIndex - 1]) {\n thisRow[bigIndex] = lastRow[bigIndex - 1];\n } else {\n const northDistance = lastRow[bigIndex] || maxDistance;\n const westDistance = thisRow[bigIndex - 1] || maxDistance;\n thisRow[bigIndex] = myMin(northDistance, westDistance) + 1;\n }\n }\n }\n let editScript = new Array(), meMinusOne, notInSml = new Array(), notInBig = new Array();\n for (smlIndex = smlIndexMax, bigIndex = bigIndexMax; smlIndex || bigIndex; ) {\n meMinusOne = editDistanceMatrix[smlIndex][bigIndex] - 1;\n if (bigIndex && meMinusOne === editDistanceMatrix[smlIndex][bigIndex - 1]) {\n notInSml.push(\n editScript[editScript.length] = {\n // added\n status: statusNotInSml,\n value: bigArray[--bigIndex],\n index: bigIndex\n }\n );\n } else if (smlIndex && meMinusOne === editDistanceMatrix[smlIndex - 1][bigIndex]) {\n notInBig.push(\n editScript[editScript.length] = {\n // deleted\n status: statusNotInBig,\n value: smlArray[--smlIndex],\n index: smlIndex\n }\n );\n } else {\n --bigIndex;\n --smlIndex;\n if (!options?.sparse) {\n editScript.push({ status: \"retained\", value: bigArray[bigIndex] });\n }\n }\n }\n findMovesInArrayComparison(notInBig, notInSml, !options.dontLimitMoves && smlIndexMax * 10);\n return editScript.reverse();\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nexport class Options {\n constructor() {\n // The following options can be set on ko.options to make a function rewriting or something similar.\n this.bindingStringPreparsers = [];\n // Reference to the own knockout instance\n this.knockoutInstance = null;\n this.deferUpdates = false;\n // Don't set this false, with jquery 3.7+\n this.useOnlyNativeEvents = true;\n // Use HTML5 <template> tags if is supported\n this.useTemplateTag = true;\n this.protoProperty = \"__ko_proto__\";\n // Modify the default attribute from `data-bind`.\n this.defaultBindingAttribute = \"data-bind\";\n // Enable/disable <!-- ko binding: ... -> style bindings\n this.allowVirtualElements = true;\n // Global variables that can be accessed from bindings.\n this.bindingGlobals = /* @__PURE__ */ Object.create(null);\n // Whether the `with` binding creates a child context when used with `as`.\n this.createChildContextWithAs = false;\n // jQuery will be automatically set to globalThis.jQuery in applyBindings\n // if it is (strictly equal to) undefined. Set it to true to\n // disable automatically setting jQuery.\n this.disableJQueryUsage = false;\n this.Promise = globalThis.Promise;\n this.taskScheduler = null;\n this.debug = false;\n /**\n * The maximum size of template to parse.\n * Set to 0 to disable the limit.\n */\n this.templateSizeLimit = 4096;\n /**\n * Whether or not to allow script tags in templates.\n * If false, an error will be thrown if a script tag is detected in the template.\n * It is not recommended to set this to true.\n */\n this.allowScriptTagsInTemplates = false;\n this._sanitizeWarningLogged = false;\n this.global = globalThis;\n this.document = globalThis.document;\n // Filters for bindings\n // data-bind=\"expression | filter_1 | filter_2\"\n this.filters = {};\n // Used by the template binding.\n this.includeDestroyed = false;\n this.foreachHidesDestroyed = false;\n }\n get jQuery() {\n if (this.disableJQueryUsage) return;\n return this._jQuery ?? globalThis.jQuery;\n }\n /**\n * Set jQuery manuall to be used by TKO.\n * @param jQuery If jQuery set to undefined, TKO will not use jQuery and this.disableJQueryUsage to true.\n */\n set jQuery(jQuery) {\n if (!jQuery) {\n this.disableJQueryUsage = true;\n this._jQuery = void 0;\n } else {\n this._jQuery = jQuery;\n this.disableJQueryUsage = false;\n }\n }\n /**\n * Sanitize HTML templates before parsing them. Default is a no-op.\n * Please configure something like DOMPurify or validator.js for your environment.\n * @param html HTML string to be sanitized\n * @returns Sanitized HTML string\n */\n sanitizeHtmlTemplate(html) {\n if (!this._sanitizeWarningLogged) {\n console.warn(\n \"WARNING -- You don't have a HTML sanitizer configured. Please configure options.sanitizeHtmlTemplate to avoid XSS vulnerabilities.\"\n );\n this._sanitizeWarningLogged = true;\n }\n return html;\n }\n onError(e, throws = true) {\n if (throws) throw e;\n return e;\n }\n set(name, value) {\n this[name] = value;\n }\n // Overload getBindingHandler to have a custom lookup function.\n getBindingHandler(key) {\n return null;\n }\n cleanExternalData(node, callback) {\n }\n}\nconst options = new Options();\nexport default options;\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport options from \"./options\";\nexport function catchFunctionErrors(delegate) {\n if (!options.onError) {\n return delegate;\n }\n return (...args) => {\n try {\n return delegate(...args);\n } catch (err) {\n options.onError(err);\n }\n };\n}\nexport function deferError(error) {\n safeSetTimeout(function() {\n throw error;\n }, 0);\n}\nexport function safeSetTimeout(handler, timeout) {\n return setTimeout(catchFunctionErrors(handler), timeout);\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { safeSetTimeout } from \"./error\";\nexport function throttle(callback, timeout) {\n let timeoutInstance;\n return function(...args) {\n if (!timeoutInstance) {\n timeoutInstance = safeSetTimeout(function() {\n timeoutInstance = void 0;\n callback(...args);\n }, timeout);\n }\n };\n}\nexport function debounce(callback, timeout) {\n let timeoutInstance;\n return function(...args) {\n clearTimeout(timeoutInstance);\n timeoutInstance = safeSetTimeout(() => callback(...args), timeout);\n };\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nexport function hasOwnProperty(obj, propName) {\n return Object.prototype.hasOwnProperty.call(obj, propName);\n}\nexport function isObjectLike(obj) {\n if (obj === null) {\n return false;\n }\n return typeof obj === \"object\" || typeof obj === \"function\";\n}\nexport function extend(target, source) {\n if (source) {\n for (const prop of Object.keys(source)) {\n if (hasOwnProperty(source, prop)) {\n ;\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nexport function objectForEach(obj, action) {\n for (const prop in obj) {\n if (hasOwnProperty(obj, prop)) {\n action(prop, obj[prop]);\n }\n }\n}\nexport function objectMap(source, mapping, thisArg) {\n if (!source) {\n return source;\n }\n if (arguments.length > 2) {\n mapping = mapping.bind(thisArg);\n }\n const target = {};\n for (const prop in source) {\n if (hasOwnProperty(source, prop)) {\n target[prop] = mapping(source[prop], prop, source);\n }\n }\n return target;\n}\nexport function getObjectOwnProperty(obj, propName) {\n return hasOwnProperty(obj, propName) ? obj[propName] : void 0;\n}\nexport function clonePlainObjectDeep(obj, seen) {\n if (!seen) {\n seen = new Array();\n }\n if (!obj || typeof obj !== \"object\" || obj.constructor !== Object || seen.indexOf(obj) !== -1) {\n return obj;\n }\n seen.push(obj);\n const result = {};\n for (const prop in obj) {\n if (hasOwnProperty(obj, prop)) {\n result[prop] = clonePlainObjectDeep(obj[prop], seen);\n }\n }\n return result;\n}\nexport function safeStringify(value) {\n const seen = /* @__PURE__ */ new Set();\n return JSON.stringify(value, (k, v) => {\n if (seen.has(v)) {\n return \"...\";\n }\n if (typeof v === \"object\") {\n seen.add(v);\n }\n return v;\n });\n}\nexport function isThenable(object) {\n return isObjectLike(object) && typeof object.then === \"function\";\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nfunction testOverwrite() {\n try {\n Object.defineProperty(function x() {\n }, \"length\", {});\n return true;\n } catch (e) {\n return false;\n }\n}\nexport const functionSupportsLengthOverwrite = testOverwrite();\nexport function overwriteLengthPropertyIfSupported(fn, descriptor) {\n if (functionSupportsLengthOverwrite) {\n Object.defineProperty(fn, \"length\", descriptor);\n }\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\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 return JSON.parse(jsonString);\n }\n }\n return null;\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nexport const useSymbols = typeof Symbol === \"function\";\nexport function createSymbolOrString(identifier) {\n return useSymbols ? Symbol(identifier) : identifier;\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { arrayForEach, addOrRemoveItem } from \"./array\";\nconst cssClassNameRegex = /\\S+/g;\nfunction toggleDomNodeCssClass(node, classNames, shouldHaveClass) {\n let 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 const 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 ESM\n\"use strict\";\nimport { arrayFirst } from \"../array\";\nexport function domNodeIsContainedBy(node, containedByNode) {\n if (node === containedByNode) {\n return true;\n }\n if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n return false;\n }\n if (containedByNode.contains) {\n return containedByNode.contains(node.nodeType !== Node.ELEMENT_NODE ? node.parentNode : node);\n }\n if (containedByNode.compareDocumentPosition) {\n return (containedByNode.compareDocumentPosition(node) & 16) == 16;\n }\n let parentNode = node;\n while (parentNode && parentNode != containedByNode) {\n parentNode = parentNode.parentNode;\n }\n return !!parentNode;\n}\nexport function domNodeIsAttachedToDocument(node) {\n return domNodeIsContainedBy(node, node.ownerDocument.documentElement);\n}\nexport function anyDomNodeIsAttachedToDocument(nodes) {\n return !!arrayFirst(nodes, domNodeIsAttachedToDocument);\n}\nexport function tagNameLower(element) {\n return element && element.tagName && element.tagName.toLowerCase();\n}\nexport function isDomElement(obj) {\n if (window.HTMLElement) {\n return obj instanceof HTMLElement;\n } else {\n return obj && obj.tagName && obj.nodeType === Node.ELEMENT_NODE;\n }\n}\nexport function isDocumentFragment(obj) {\n if (window.DocumentFragment) {\n return obj instanceof DocumentFragment;\n } else {\n return obj && obj.nodeType === Node.DOCUMENT_FRAGMENT_NODE;\n }\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { objectForEach } from \"../object\";\nimport { catchFunctionErrors } from \"../error\";\nimport { tagNameLower } from \"./info\";\nimport options from \"../options\";\nconst knownEvents = {}, knownEventTypesByEventName = {};\nknownEvents[\"UIEvents\"] = [\"keyup\", \"keydown\", \"keypress\"];\nknownEvents[\"MouseEvents\"] = [\n \"click\",\n \"dblclick\",\n \"mousedown\",\n \"mouseup\",\n \"mousemove\",\n \"mouseover\",\n \"mouseout\",\n \"mouseenter\",\n \"mouseleave\"\n];\nobjectForEach(knownEvents, function(eventType, knownEventsForType) {\n if (knownEventsForType.length) {\n for (let i = 0, j = knownEventsForType.length; i < j; i++) {\n knownEventTypesByEventName[knownEventsForType[i]] = eventType;\n }\n }\n});\nfunction isClickOnCheckableElement(element, eventType) {\n if (tagNameLower(element) !== \"input\" || !element.type) return false;\n if (eventType.toLowerCase() != \"click\") return false;\n const inputType = element.type;\n return inputType == \"checkbox\" || inputType == \"radio\";\n}\nexport function registerEventHandler(element, eventType, handler, eventOptions = false) {\n const wrappedHandler = catchFunctionErrors(handler);\n const mustUseNative = Boolean(eventOptions);\n const jQuery = options.jQuery;\n if (!options.useOnlyNativeEvents && !mustUseNative && jQuery) {\n jQuery(element).on(eventType, wrappedHandler);\n } else if (typeof element.addEventListener === \"function\") {\n element.addEventListener(eventType, wrappedHandler, eventOptions);\n } else {\n throw new Error(\"Browser doesn't support addEventListener\");\n }\n}\nfunction hasClick(element) {\n return typeof element.click === \"function\";\n}\nexport function triggerEvent(element, eventType) {\n if (!(element && element.nodeType)) {\n throw new Error(\"element must be a DOM node when calling triggerEvent\");\n }\n const useClickWorkaround = isClickOnCheckableElement(element, eventType);\n if (!options.useOnlyNativeEvents && options.jQuery && !useClickWorkaround) {\n options.jQuery(element).trigger(eventType);\n } else if (typeof document.createEvent === \"function\") {\n if (typeof element.dispatchEvent === \"function\") {\n const eventCategory = knownEventTypesByEventName[eventType] || \"HTMLEvents\";\n const event = document.createEvent(eventCategory);\n event.initEvent(\n eventType,\n true,\n true,\n options.global,\n 0,\n 0,\n 0,\n 0,\n 0,\n false,\n false,\n false,\n false,\n 0,\n element\n );\n element.dispatchEvent(event);\n } else {\n throw new Error(\"The supplied element doesn't support dispatchEvent\");\n }\n } else if (useClickWorkaround && hasClick(element)) {\n element.click();\n } else {\n throw new Error(\"Browser doesn't support triggering events\");\n }\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nconst datastoreTime = (/* @__PURE__ */ new Date()).getTime();\nconst dataStoreKeyExpandoPropertyName = `__ko__${datastoreTime}`;\nconst dataStoreSymbol = /* @__PURE__ */ Symbol(\"Knockout data\");\nconst dataStore = {};\nlet uniqueId = 0;\nfunction isSafeKey(key) {\n return key !== \"__proto__\" && key !== \"constructor\" && key !== \"prototype\";\n}\nfunction getDataForNode(node, createIfNotFound) {\n let dataForNode = node[dataStoreSymbol];\n if (!dataForNode && createIfNotFound) {\n dataForNode = node[dataStoreSymbol] = {};\n }\n return dataForNode;\n}\nfunction clear(node) {\n if (node[dataStoreSymbol]) {\n delete node[dataStoreSymbol];\n return true;\n }\n return false;\n}\nexport function nextKey() {\n return uniqueId++ + dataStoreKeyExpandoPropertyName;\n}\nfunction get(node, key) {\n if (!isSafeKey(key)) throw new Error(\"Unsafe key for DOM data: \" + key);\n const dataForNode = getDataForNode(node, false);\n return dataForNode && dataForNode[key];\n}\nfunction set(node, key, value) {\n if (!isSafeKey(key)) throw new Error(\"Unsafe key for DOM data: \" + key);\n const dataForNode = getDataForNode(\n node,\n value !== void 0\n /* createIfNotFound */\n );\n if (dataForNode) {\n dataForNode[key] = value;\n }\n}\nfunction getOrSet(node, key, value) {\n if (!isSafeKey(key)) throw new Error(\"Unsafe key for DOM data: \" + key);\n const dataForNode = getDataForNode(\n node,\n true\n /* createIfNotFound */\n );\n return dataForNode[key] || (dataForNode[key] = value);\n}\nexport { get, set, getOrSet, clear };\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport * as domData from \"./data\";\nimport { default as options } from \"../options\";\nimport { arrayRemoveItem, arrayIndexOf } from \"../array\";\nconst domDataKey = domData.nextKey();\nconst cleanableNodeTypes = { 1: true, 8: true, 9: true };\nconst cleanableNodeTypesWithDescendants = { 1: true, 9: true };\nfunction getDisposeCallbacksCollection(node, createIfNotFound) {\n let allDisposeCallbacks = domData.get(node, domDataKey);\n if (allDisposeCallbacks === void 0 && createIfNotFound) {\n allDisposeCallbacks = new Array();\n domData.set(node, domDataKey, allDisposeCallbacks);\n }\n return allDisposeCallbacks;\n}\nfunction destroyCallbacksCollection(node) {\n domData.set(node, domDataKey, void 0);\n}\nfunction cleanSingleNode(node) {\n let callbacks = getDisposeCallbacksCollection(node, false);\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (let i = 0; i < callbacks.length; i++) {\n callbacks[i](node);\n }\n }\n domData.clear(node);\n for (let i = 0, j = otherNodeCleanerFunctions.length; i < j; ++i) {\n otherNodeCleanerFunctions[i](node);\n }\n if (options.cleanExternalData) {\n options.cleanExternalData(node);\n }\n if (cleanableNodeTypesWithDescendants[node.nodeType]) {\n cleanNodesInList(\n node.childNodes,\n true\n /* onlyComments */\n );\n }\n}\nfunction cleanNodesInList(nodeList, onlyComments) {\n const cleanedNodes = new Array();\n let lastCleanedNode;\n for (let i = 0; i < nodeList.length; i++) {\n if (!onlyComments || nodeList[i].nodeType === Node.COMMENT_NODE) {\n cleanSingleNode(cleanedNodes[cleanedNodes.length] = lastCleanedNode = nodeList[i]);\n if (nodeList[i] !== lastCleanedNode) {\n while (i-- && arrayIndexOf(cleanedNodes, nodeList[i]) === -1) {\n }\n }\n }\n }\n}\nexport function addDisposeCallback(node, callback) {\n if (typeof callback !== \"function\") {\n throw new Error(\"Callback must be a function\");\n }\n getDisposeCallbacksCollection(node, true).push(callback);\n}\nexport function removeDisposeCallback(node, callback) {\n const callbacksCollection = getDisposeCallbacksCollection(node, false);\n if (callbacksCollection) {\n arrayRemoveItem(callbacksCollection, callback);\n if (callbacksCollection.length === 0) {\n destroyCallbacksCollection(node);\n }\n }\n}\nexport function cleanNode(node) {\n if (cleanableNodeTypes[node.nodeType]) {\n cleanSingleNode(node);\n if (cleanableNodeTypesWithDescendants[node.nodeType] && node instanceof Element) {\n cleanNodesInList(node.getElementsByTagName(\"*\"));\n }\n }\n return node;\n}\nexport function removeNode(node) {\n if (!node) {\n return;\n }\n cleanNode(node);\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nexport const otherNodeCleanerFunctions = new Array();\nexport function addCleaner(fn) {\n otherNodeCleanerFunctions.push(fn);\n}\nexport function removeCleaner(fn) {\n const fnIndex = otherNodeCleanerFunctions.indexOf(fn);\n if (fnIndex >= 0) {\n otherNodeCleanerFunctions.splice(fnIndex, 1);\n }\n}\nexport function cleanjQueryData(node) {\n const jQueryCleanNodeFn = options.jQuery ? options.jQuery.cleanData : null;\n if (jQueryCleanNodeFn) {\n jQueryCleanNodeFn([node]);\n }\n}\notherNodeCleanerFunctions.push(cleanjQueryData);\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { makeArray } from \"../array\";\nimport { cleanNode, removeNode } from \"./disposal\";\nexport function moveCleanedNodesToContainerElement(nodes) {\n const nodesArray = makeArray(nodes);\n const templateDocument = nodesArray[0] && nodesArray[0].ownerDocument || document;\n const container = templateDocument.createElement(\"div\");\n for (let 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 const newNodesArray = new Array();\n for (let i = 0; i < nodesArray.length; i++) {\n const 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 (let i = 0; i < childNodes.length; i++) {\n domNode.appendChild(childNodes[i]);\n }\n }\n}\nexport function replaceDomNodes(nodeToReplaceOrNodeArray, newNodesArray) {\n const nodesToReplaceArray = Array.isArray(nodeToReplaceOrNodeArray) ? nodeToReplaceOrNodeArray : [nodeToReplaceOrNodeArray];\n if (nodesToReplaceArray.length > 0) {\n const insertionPoint = nodesToReplaceArray[0];\n const parent = insertionPoint.parentNode;\n for (let i = 0; i < newNodesArray.length; i++) {\n parent?.insertBefore(newNodesArray[i], insertionPoint);\n }\n for (let i = 0; i < nodesToReplaceArray.length; i++) {\n removeNode(nodesToReplaceArray[i]);\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 ESM\n\"use strict\";\nexport function fixUpContinuousNodeArray(continuousNodeArray, parentNode) {\n if (continuousNodeArray.length) {\n parentNode = parentNode.nodeType === Node.COMMENT_NODE && 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 let 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 optionNode.selected = isSelected;\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { emptyDomNode, setDomNodeChildren as setRegularDomNodeChildren } from \"./manipulation\";\nimport { removeNode } from \"./disposal\";\nimport { tagNameLower } from \"./info\";\nimport * as domData from \"./data\";\nexport const startCommentRegex = /^\\s*ko(?:\\s+([\\s\\S]+))?\\s*$/;\nexport const endCommentRegex = /^\\s*\\/ko\\s*$/;\nconst htmlTagsWithOptionallyClosingChildren = { ul: true, ol: true };\nexport function isStartComment(node) {\n return node.nodeType === Node.COMMENT_NODE && startCommentRegex.test(node.nodeValue);\n}\nexport function isEndComment(node) {\n return node.nodeType === Node.COMMENT_NODE && endCommentRegex.test(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 let currentNode = startComment;\n let depth = 1;\n const children = new Array();\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 const 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 let childNode = node.firstChild, captureRemaining = null;\n if (childNode) {\n do {\n if (captureRemaining) {\n captureRemaining.push(childNode);\n } else if (isStartComment(childNode)) {\n const matchingEndComment = getMatchingEndComment(\n childNode,\n /* allowUnbalanced: */\n true\n );\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 const allowedBindings = /* @__PURE__ */ Object.create(null);\nexport const 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 const virtualChildren = childNodes(node);\n for (let 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 if (endCommentNode && endCommentNode.parentNode) {\n const parentNode = endCommentNode.parentNode;\n for (let i = 0, j = childNodes2.length; i < j; ++i) {\n parentNode.insertBefore(childNodes2[i], endCommentNode);\n }\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 if (!nextChild) return null;\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(\n \"Found end comment without a matching opening comment, as next sibling of \" + node.outerHTML\n );\n }\n return null;\n } else {\n return node.nextSibling;\n }\n}\nexport function previousSibling(node) {\n let depth = 0;\n do {\n if (node.nodeType === Node.COMMENT_NODE) {\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 const regexMatch = node.nodeValue.match(startCommentRegex);\n return regexMatch ? regexMatch[1] : null;\n}\nexport function normaliseVirtualElementDomStructure(elementVerified) {\n if (!htmlTagsWithOptionallyClosingChildren[tagNameLower(elementVerified)]) {\n return;\n }\n let childNode = elementVerified.firstChild;\n if (childNode) {\n do {\n if (childNode.nodeType === Node.ELEMENT_NODE) {\n const unbalancedTags = getUnbalancedChildTags(childNode);\n if (unbalancedTags) {\n const nodeToInsertBefore = childNode.nextSibling;\n for (let 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 ESM\n\"use strict\";\nimport { makeArray } from \"../array\";\nimport { emptyDomNode, moveCleanedNodesToContainerElement } from \"./manipulation\";\nimport * as virtualElements from \"./virtualElements\";\nimport options from \"../options\";\nconst supportsTemplateTag = options.useTemplateTag && options.document && \"content\" in options.document.createElement(\"template\");\nfunction simpleHtmlParse(html, documentContext) {\n if (!documentContext) {\n documentContext = document;\n }\n const div = documentContext.createElement(\"div\");\n div.innerHTML = html;\n return makeArray(div.childNodes);\n}\nfunction templateHtmlParse(html, documentContext) {\n if (!documentContext) {\n documentContext = document;\n }\n const template = documentContext.createElement(\"template\");\n template.innerHTML = html;\n return makeArray(template.content.childNodes);\n}\nfunction jQueryHtmlParse(html, documentContext) {\n const jQuery = options.jQuery;\n if (jQuery) {\n return jQuery.parseHTML(html, documentContext) || [];\n }\n return [];\n}\nexport function parseHtmlFragment(html, documentContext) {\n const saferHtml = validateHTMLInput(html);\n if (supportsTemplateTag) return templateHtmlParse(saferHtml, documentContext);\n if (options.jQuery) {\n return jQueryHtmlParse(saferHtml, documentContext);\n }\n return simpleHtmlParse(saferHtml, documentContext);\n}\nconst scriptTagPattern = /<script\\b[^>]*>([\\s\\S]*?)<\\/script[^>]*>/i;\nfunction validateHTMLInput(html) {\n if (!html) return \"\";\n if (options.templateSizeLimit > 0 && html.length > options.templateSizeLimit) {\n throw new Error(\"Template is too long. Please configure the 'templateSizeLimit'\");\n }\n if (!options.allowScriptTagsInTemplates && scriptTagPattern.test(html)) {\n throw new Error(\"Script-tag in template detected.\");\n }\n return options.sanitizeHtmlTemplate(html);\n}\nexport function parseHtmlForTemplateNodes(html, documentContext) {\n const nodes = parseHtmlFragment(html, documentContext);\n return nodes.length && nodes[0].parentElement || moveCleanedNodesToContainerElement(nodes);\n}\nexport function setHtml(node, html) {\n emptyDomNode(node);\n if (typeof html === \"function\") {\n html = html();\n }\n if (html !== null && html !== void 0) {\n if (typeof html !== \"string\") {\n html = html.toString();\n }\n const jQuery = options.jQuery;\n if (jQuery && !supportsTemplateTag) {\n const saferHtml = validateHTMLInput(html);\n jQuery(node).html(saferHtml);\n } else {\n let parsedNodes;\n if (node.ownerDocument) {\n parsedNodes = parseHtmlFragment(html, node.ownerDocument);\n } else {\n parsedNodes = parseHtmlFragment(html);\n }\n if (node.nodeType === Node.COMMENT_NODE) {\n if (html === null) {\n virtualElements.emptyNode(node);\n } else {\n virtualElements.setDomNodeChildren(node, parsedNodes);\n }\n } else {\n for (let i = 0; i < parsedNodes.length; i++) {\n node.appendChild(parsedNodes[i]);\n }\n }\n }\n }\n}\nexport function setTextContent(element, textContent) {\n let value = typeof textContent === \"function\" ? textContent() : textContent;\n if (value === null || value === void 0) {\n value = \"\";\n }\n const innerTextNode = virtualElements.firstChild(element);\n if (!innerTextNode || innerTextNode.nodeType !== Node.TEXT_NODE || virtualElements.nextSibling(innerTextNode)) {\n virtualElements.setDomNodeChildren(element, [element.ownerDocument.createTextNode(value)]);\n } else {\n ;\n innerTextNode.data = value;\n }\n}\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { tagNameLower } from \"./info\";\nimport * as domData from \"./data\";\nconst hasDomDataExpandoProperty = /* @__PURE__ */ Symbol(\"Knockout selectExtensions hasDomDataProperty\");\nexport const selectExtensions = {\n optionValueDomDataKey: domData.nextKey(),\n readValue: function(element) {\n switch (tagNameLower(element)) {\n case \"option\": {\n if (element[hasDomDataExpandoProperty] === true) {\n return domData.get(element, selectExtensions.optionValueDomDataKey);\n }\n return element.value;\n }\n case \"select\": {\n const selectElement = element;\n return selectElement.selectedIndex >= 0 ? selectExtensions.readValue(selectElement.options[selectElement.selectedIndex]) : void 0;\n }\n default:\n return element.value;\n }\n },\n writeValue: function(element, value, allowUnset) {\n switch (tagNameLower(element)) {\n case \"option\":\n if (typeof value === \"string\") {\n domData.set(element, selectExtensions.optionValueDomDataKey, void 0);\n if (hasDomDataExpandoProperty in element) {\n delete element[hasDomDataExpandoProperty];\n }\n ;\n element.value = value;\n } else {\n const el = element;\n domData.set(element, selectExtensions.optionValueDomDataKey, value);\n el[hasDomDataExpandoProperty] = true;\n el.value = typeof value === \"number\" ? value : \"\";\n }\n break;\n case \"select\":\n {\n if (value === \"\" || value === null) {\n value = void 0;\n }\n let selection = -1;\n const selectElement = element;\n for (let i = 0, n = selectElement.options.length, optionValue; i < n; ++i) {\n optionValue = selectExtensions.readValue(selectElement.options[i]);\n const strictEqual = optionValue === value;\n const blankEqual = optionValue === \"\" && value === void 0;\n const numericEqual = typeof value === \"number\" && Number(optionValue) === value;\n if (strictEqual || blankEqual || numericEqual) {\n selection = i;\n break;\n }\n }\n if (allowUnset || selection >= 0 || value === void 0 && selectElement.size > 1) {\n selectElement.selectedIndex = selection;\n }\n }\n break;\n default:\n if (value === null || value === void 0) {\n value = \"\";\n }\n ;\n element.value = value;\n break;\n }\n }\n};\n", "// @tko/utils \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport options from \"./options\";\nimport { deferError } from \"./error\";\nlet taskQueue = new Array(), taskQueueLength = 0, nextHandle = 1, nextIndexToProcess = 0, w = options.global;\nif (w && w.MutationObserver && !(w.navigator && w.navigator.standalone)) {\n options.taskScheduler = (function(callback) {\n const div = w.document.createElement(\"div\");\n new w.MutationObserver(callback).observe(div, { attributes: true });\n return function() {\n div.classList.toggle(\"foo\");\n };\n })(scheduledProcess);\n} else {\n options.taskScheduler = function(callback) {\n setTimeout(callback, 0);\n };\n}\nfunction processTasks() {\n if (taskQueueLength) {\n let mark = taskQueueLength, countMarks = 0;\n for (let task; nextIndexToProcess < taskQueueLength; ) {\n if (task = taskQueue[nextIndexToProcess++]) {\n if (nextIndexToProcess > mark) {\n if (++countMarks >= 5e3) {\n nextIndexToProcess = taskQueueLength;\n deferError(Error(\"'Too much recursion' after processing \" + countMarks + \" task groups.\"));\n break;\n }\n mark = taskQueueLength;\n }\n try {\n task();\n } catch (ex) {\n deferError(ex);\n }\n }\n }\n }\n}\nfunction scheduledProcess() {\n processTasks();\n nextIndexToProcess = taskQueueLength = taskQueue.length = 0;\n}\nfunction scheduleTaskProcessing() {\n options.taskScheduler(scheduledProcess);\n}\nexport function schedule(func) {\n if (!taskQueueLength) {\n scheduleTaskProcessing();\n }\n taskQueue[taskQueueLength++] = func;\n return nextHandle++;\n}\nexport function cancel(handle) {\n const index = handle - (nextHandle - taskQueueLength);\n if (index >= nextIndexToProcess && index < taskQueueLength) {\n taskQueue[index] = null;\n }\n}\nexport function resetForTesting() {\n const length = taskQueueLength - nextIndexToProcess;\n nextIndexToProcess = taskQueueLength = taskQueue.length = 0;\n return length;\n}\nexport { processTasks as runEarly };\n", "// @tko/observable \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { isSubscribable } from \"./subscribableSymbol\";\nconst outerFrames = new Array();\nlet currentFrame;\nlet lastId = 0;\nfunction getId() {\n return ++lastId;\n}\nexport function begin(options) {\n outerFrames.push(currentFrame);\n currentFrame = options;\n}\nexport function end() {\n currentFrame = outerFrames.pop();\n}\nexport function registerDependency(subscribable) {\n if (currentFrame) {\n if (!isSubscribable(subscribable)) {\n throw new Error(\"Only subscribable things can act as dependencies\");\n }\n currentFrame.callback.call(\n currentFrame.callbackTarget,\n subscribable,\n subscribable._id || (subscribable._id = getId())\n );\n }\n}\nexport function ignore(callback, callbackTarget, callbackArgs) {\n try {\n begin();\n return callback.apply(callbackTarget, callbackArgs || []);\n } finally {\n end();\n }\n}\nexport function getDependenciesCount() {\n if (currentFrame) {\n return currentFrame.computed.getDependenciesCount();\n }\n return void 0;\n}\nexport function getDependencies() {\n if (currentFrame) {\n return currentFrame.computed.getDependencies();\n }\n return void 0;\n}\nexport function isInitial() {\n if (currentFrame) {\n return currentFrame.isInitial;\n }\n return void 0;\n}\nexport { ignore as ignoreDependencies };\n", "// @tko/observable \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nexport const SUBSCRIBABLE_SYM = /* @__PURE__ */ Symbol(\"Knockout Subscribable\");\nexport function isSubscribable(instance) {\n return instance && instance[SUBSCRIBABLE_SYM] || false;\n}\n", "// @tko/observable \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { tasks } from \"@tko/utils\";\nexport function deferUpdates(target) {\n if (target._deferUpdates) {\n return;\n }\n target._deferUpdates = true;\n target.limit(function(callback) {\n let handle;\n let ignoreUpdates = false;\n return function() {\n if (!ignoreUpdates) {\n tasks.cancel(handle);\n handle = tasks.schedule(callback);\n try {\n ignoreUpdates = true;\n target.notifySubscribers(void 0, \"dirty\");\n } finally {\n ignoreUpdates = false;\n }\n }\n };\n });\n}\n", "// @tko/observable \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { removeDisposeCallback, addDisposeCallback } from \"@tko/utils\";\nexport default class Subscription {\n constructor(target, observer, disposeCallback) {\n this._target = target;\n this._callback = observer.next;\n this._disposeCallback = disposeCallback;\n this._isDisposed = false;\n this._domNodeDisposalCallback = null;\n }\n dispose() {\n if (this._domNodeDisposalCallback) {\n removeDisposeCallback(this._node, this._domNodeDisposalCallback);\n }\n this._isDisposed = true;\n this._disposeCallback();\n }\n disposeWhenNodeIsRemoved(node) {\n this._node = node;\n addDisposeCallback(node, this._domNodeDisposalCallback = this.dispose.bind(this));\n }\n // TC39 Observable API\n unsubscribe() {\n this.dispose();\n }\n get closed() {\n return this._isDisposed;\n }\n}\n", "// @tko/observable \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { options, objectForEach, throttle as throttleFn, debounce as debounceFn } from \"@tko/utils\";\nimport { deferUpdates } from \"./defer\";\nconst primitiveTypes = { undefined: 1, boolean: 1, number: 1, string: 1 };\nexport function valuesArePrimitiveAndEqual(a, b) {\n const oldValueIsPrimitive = a === null || typeof a in primitiveTypes;\n return oldValueIsPrimitive ? a === b : false;\n}\nexport function applyExtenders(requestedExtenders) {\n let target = this;\n if (requestedExtenders) {\n objectForEach(requestedExtenders, function(key, value) {\n const extenderHandler = extenders[key];\n if (typeof extenderHandler === \"function\") {\n target = extenderHandler(target, value) || target;\n } else {\n options.onError(new Error(\"Extender not found: \" + key));\n }\n });\n }\n return target;\n}\nexport function notify(target, notifyWhen) {\n target.equalityComparer = notifyWhen == \"always\" ? null : valuesArePrimitiveAndEqual;\n}\nexport function deferred(target, option) {\n if (option !== true) {\n throw new Error(\n \"The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.\"\n );\n }\n deferUpdates(target);\n}\nexport function rateLimit(target, options2) {\n let timeout, method, limitFunction;\n if (typeof options2 === \"number\") {\n timeout = options2;\n } else {\n timeout = options2.timeout;\n method = options2.method;\n }\n target._deferUpdates = false;\n limitFunction = method === \"notifyWhenChangesStop\" ? debounceFn : throttleFn;\n target.limit(function(callback) {\n return limitFunction(callback, timeout);\n });\n}\nexport const extenders = { notify, deferred, rateLimit };\n", "// @tko/observable \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { arrayRemoveItem, objectForEach, options } from \"@tko/utils\";\nimport Subscription from \"./Subscription\";\nimport { SUBSCRIBABLE_SYM } from \"./subscribableSymbol\";\nimport { applyExtenders } from \"./extenders\";\nimport * as dependencyDetection from \"./dependencyDetection\";\nexport { isSubscribable } from \"./subscribableSymbol\";\nexport const LATEST_VALUE = /* @__PURE__ */ Symbol(\"Knockout latest value\");\nif (!Symbol.observable) {\n Symbol.observable = /* @__PURE__ */ Symbol.for(\"@tko/Symbol.observable\");\n}\nexport const subscribable = function subscribableFactory() {\n Object.setPrototypeOf(this, ko_subscribable_fn);\n ko_subscribable_fn.init(this);\n};\nexport const defaultEvent = \"change\";\nconst ko_subscribable_fn = {\n [SUBSCRIBABLE_SYM]: true,\n [Symbol.observable]() {\n return this;\n },\n init(instance) {\n instance._subscriptions = { change: [] };\n instance._versionNumber = 1;\n },\n subscribe(callback, callbackTarget, event) {\n const isTC39Callback = typeof callback === \"object\" && callback.next;\n event = event || defaultEvent;\n const observer = isTC39Callback ? callback : { next: callbackTarget ? callback.bind(callbackTarget) : callback };\n const subscriptionInstance = new Subscription(this, observer, () => {\n arrayRemoveItem(this._subscriptions[event], subscriptionInstance);\n if (this.afterSubscriptionRemove) {\n this.afterSubscriptionRemove(event);\n }\n });\n if (this.beforeSubscriptionAdd) {\n this.beforeSubscriptionAdd(event);\n }\n if (!this._subscriptions[event]) {\n this._subscriptions[event] = new Array();\n }\n this._subscriptions[event].push(subscriptionInstance);\n if (isTC39Callback && LATEST_VALUE in this) {\n observer.next(this[LATEST_VALUE]);\n }\n return subscriptionInstance;\n },\n notifySubscribers(valueToNotify, event) {\n event = event || defaultEvent;\n if (event === defaultEvent) {\n this.updateVersion();\n }\n if (this.hasSubscriptionsForEvent(event)) {\n const subs = event === defaultEvent && this._changeSubscriptions || [...this._subscriptions[event]];\n try {\n dependencyDetection.begin();\n for (let i = 0, subscriptionInstance; subscriptionInstance = subs[i]; ++i) {\n if (!subscriptionInstance._isDisposed) {\n subscriptionInstance._callback(valueToNotify);\n }\n }\n } finally {\n dependencyDetection.end();\n }\n }\n },\n getVersion() {\n return this._versionNumber;\n },\n hasChanged(versionToCheck) {\n return this.getVersion() !== versionToCheck;\n },\n updateVersion() {\n ++this._versionNumber;\n },\n hasSubscriptionsForEvent(event) {\n return this._subscriptions[event] && this._subscriptions[event].length;\n },\n getSubscriptionsCount(event) {\n if (event) {\n return this._subscriptions[event] && this._subscriptions[event].length || 0;\n } else {\n let total = 0;\n objectForEach(this._subscriptions, function(eventName, subscriptions) {\n if (eventName !== \"dirty\") {\n total += subscriptions.length;\n }\n });\n return total;\n }\n },\n isDifferent(oldValue, newValue) {\n return !this.equalityComparer || !this.equalityComparer(oldValue, newValue);\n },\n once(cb) {\n const subs = this.subscribe((nv) => {\n subs.dispose();\n cb(nv);\n });\n },\n when(test, returnValue) {\n const current = this.peek();\n const givenRv = arguments.length > 1;\n const testFn = typeof test === \"function\" ? test : (v) => v === test;\n if (testFn(current)) {\n return options.Promise.resolve(givenRv ? returnValue : current);\n }\n return new options.Promise((resolve, reject) => {\n const subs = this.subscribe((newValue) => {\n if (testFn(newValue)) {\n subs.dispose();\n resolve(givenRv ? returnValue : newValue);\n }\n });\n });\n },\n yet(test, ...args) {\n const testFn = typeof test === \"function\" ? test : (v) => v === test;\n const negated = (v) => !testFn(v);\n return this.when(negated, ...args);\n },\n next() {\n return new Promise((resolve) => this.once(resolve));\n },\n toString() {\n return \"[object Object]\";\n },\n extend: applyExtenders\n};\nObject.setPrototypeOf(ko_subscribable_fn, Function.prototype);\nsubscribable.fn = ko_subscribable_fn;\n", "// @tko/observable \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { options, overwriteLengthPropertyIfSupported } from \"@tko/utils\";\nimport * as dependencyDetection from \"./dependencyDetection\";\nimport { deferUpdates } from \"./defer\";\nimport { subscribable, defaultEvent, LATEST_VALUE } from \"./subscribable\";\nimport { valuesArePrimitiveAndEqual } from \"./extenders\";\nexport function observable(initialValue) {\n function Observable() {\n if (arguments.length > 0) {\n if (Observable.isDifferent(Observable[LATEST_VALUE], arguments[0])) {\n ;\n Observable.valueWillMutate();\n Observable[LATEST_VALUE] = arguments[0];\n Observable.valueHasMutated();\n }\n return this;\n } else {\n dependencyDetection.registerDependency(Observable);\n return Observable[LATEST_VALUE];\n }\n }\n overwriteLengthPropertyIfSupported(Observable, { value: void 0 });\n Observable[LATEST_VALUE] = initialValue;\n subscribable.fn.init(Observable);\n Object.setPrototypeOf(Observable, observable.fn);\n if (options.deferUpdates) {\n deferUpdates(Observable);\n }\n return Observable;\n}\nobservable.fn = {\n /**\n * Compares two values for equality.\n * @param a The first value.\n * @param b The second value.\n * @returns True if the values are equal, otherwise false.\n */\n equalityComparer: valuesArePrimitiveAndEqual,\n /**\n * Returns the current value of the observable without creating a dependency.\n * @returns The current value.\n */\n peek() {\n return this[LATEST_VALUE];\n },\n /**\n * Notifies subscribers that the value has changed.\n */\n valueHasMutated() {\n this.notifySubscribers(this[LATEST_VALUE], \"spectate\");\n this.notifySubscribers(this[LATEST_VALUE]);\n },\n /**\n * Notifies subscribers that the value is about to change.\n */\n valueWillMutate() {\n this.notifySubscribers(this[LATEST_VALUE], \"beforeChange\");\n },\n /**\n * Modifies the value of the observable using a function.\n * @param fn The function to modify the value.\n * @param peek Whether to use the current value without creating a dependency.\n * @returns The modified observable.\n */\n modify(fn, peek2 = true) {\n this(fn(peek2 ? this.peek() : this()));\n },\n // Some observables may not always be writeable, notably computeds.\n isWriteable: true\n};\nfunction limitNotifySubscribers(value, event) {\n if (!event || event === defaultEvent) {\n this._limitChange(value);\n } else if (event === \"beforeChange\") {\n this._limitBeforeChange(value);\n } else {\n this._origNotifySubscribers(value, event);\n }\n}\n;\nsubscribable.fn.limit = function limit(limitFunction) {\n const self = this;\n const selfIsObservable = isObservable(self);\n const beforeChange = \"beforeChange\";\n let ignoreBeforeChange, notifyNextChange, previousValue, pendingValue, didUpdate;\n if (!self._origNotifySubscribers) {\n self._origNotifySubscribers = self.notifySubscribers;\n self.notifySubscribers = limitNotifySubscribers;\n }\n const finish = limitFunction(function() {\n self._notificationIsPending = false;\n if (selfIsObservable && pendingValue === self) {\n pendingValue = self._evalIfChanged ? self._evalIfChanged() : self();\n }\n const shouldNotify = notifyNextChange || didUpdate && self.isDifferent(previousValue, pendingValue);\n self._notifyNextChange = didUpdate = ignoreBeforeChange = false;\n if (shouldNotify) {\n self._origNotifySubscribers(previousValue = pendingValue);\n }\n });\n Object.assign(self, {\n _limitChange(value, isDirty) {\n if (!isDirty || !self._notificationIsPending) {\n didUpdate = !isDirty;\n }\n self._changeSubscriptions = [...self._subscriptions[defaultEvent]];\n self._notificationIsPending = ignoreBeforeChange = true;\n pendingValue = value;\n finish();\n },\n _limitBeforeChange(value) {\n if (!ignoreBeforeChange) {\n previousValue = value;\n self._origNotifySubscribers(value, beforeChange);\n }\n },\n _notifyNextChangeIfValueIsDifferent() {\n if (self.isDifferent(previousValue, self.peek(\n true\n /* evaluate */\n ))) {\n notifyNextChange = true;\n }\n },\n _recordUpdate() {\n didUpdate = true;\n }\n });\n};\nObject.setPrototypeOf(observable.fn, subscribable.fn);\nconst protoProperty = observable.protoProperty = options.protoProperty;\nobservable.fn[protoProperty] = observable;\nobservable.observablePrototypes = /* @__PURE__ */ new Set([observable]);\nexport function isObservable(instance) {\n const proto = typeof instance === \"function\" && instance[protoProperty];\n if (proto && !observable.observablePrototypes.has(proto)) {\n throw Error(\"Invalid object that looks like an observable; possibly from another Knockout instance\");\n }\n return !!proto;\n}\nexport function unwrap(value) {\n return isObservable(value) ? value() : value;\n}\nexport function peek(value) {\n return isObservable(value) ? value.peek() : value;\n}\nexport function isWriteableObservable(instance) {\n return isObservable(instance) && instance.isWriteable;\n}\nexport { isWriteableObservable as isWritableObservable };\n", "// @tko/observable \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { extend, compareArrays, findMovesInArrayComparison } from \"@tko/utils\";\nimport { defaultEvent } from \"./subscribable\";\nimport { extenders } from \"./extenders\";\nexport const arrayChangeEventName = \"arrayChange\";\nexport function trackArrayChanges(target, options) {\n target.compareArrayOptions = {};\n if (options && typeof options === \"object\") {\n extend(target.compareArrayOptions, options);\n }\n target.compareArrayOptions.sparse = true;\n if (target.cacheDiffForKnownOperation) {\n return;\n }\n let trackingChanges = false;\n let cachedDiff = null;\n let arrayChangeSubscription;\n let pendingNotifications = 0;\n let underlyingNotifySubscribersFunction;\n const underlyingBeforeSubscriptionAddFunction = target.beforeSubscriptionAdd;\n const underlyingAfterSubscriptionRemoveFunction = target.afterSubscriptionRemove;\n target.beforeSubscriptionAdd = function(event) {\n if (underlyingBeforeSubscriptionAddFunction) {\n underlyingBeforeSubscriptionAddFunction.call(target, event);\n }\n if (event === arrayChangeEventName) {\n trackChanges();\n }\n };\n target.afterSubscriptionRemove = function(event) {\n if (underlyingAfterSubscriptionRemoveFunction) {\n underlyingAfterSubscriptionRemoveFunction.call(target, event);\n }\n if (event === arrayChangeEventName && !target.hasSubscriptionsForEvent(arrayChangeEventName)) {\n if (underlyingNotifySubscribersFunction) {\n target.notifySubscribers = underlyingNotifySubscribersFunction;\n underlyingNotifySubscribersFunction = void 0;\n }\n if (arrayChangeSubscription) {\n arrayChangeSubscription.dispose();\n }\n arrayChangeSubscription = null;\n trackingChanges = false;\n }\n };\n function trackChanges() {\n if (trackingChanges) {\n return;\n }\n trackingChanges = true;\n underlyingNotifySubscribersFunction = target[\"notifySubscribers\"];\n target.notifySubscribers = function(valueToNotify, event) {\n if (!event || event === defaultEvent) {\n ++pendingNotifications;\n }\n return underlyingNotifySubscribersFunction.apply(this, arguments);\n };\n let previousContents = new Array().concat(target.peek() === void 0 ? [] : target.peek());\n cachedDiff = null;\n arrayChangeSubscription = target.subscribe(function(currentContents) {\n let changes;\n currentContents = new Array().concat(currentContents || []);\n if (target.hasSubscriptionsForEvent(arrayChangeEventName)) {\n changes = getChanges(previousContents, currentContents);\n }\n previousContents = currentContents;\n cachedDiff = null;\n pendingNotifications = 0;\n if (changes && changes.length) {\n target.notifySubscribers(changes, arrayChangeEventName);\n }\n });\n }\n function getChanges(previousContents, currentContents) {\n if (!cachedDiff || pendingNotifications > 1) {\n cachedDiff = trackArrayChanges.compareArrays(previousContents, currentContents, target.compareArrayOptions);\n }\n return cachedDiff;\n }\n target.cacheDiffForKnownOperation = function(rawArray, operationName, args) {\n if (!trackingChanges || pendingNotifications) {\n return;\n }\n let diff = new Array(), arrayLength = rawArray.length, argsLength = args.length, offset = 0;\n function pushDiff(status, value, index) {\n return diff[diff.length] = { status, value, index };\n }\n switch (operationName) {\n case \"push\":\n offset = arrayLength;\n case \"unshift\":\n for (let index = 0; index < argsLength; index++) {\n pushDiff(\"added\", args[index], offset + index);\n }\n break;\n case \"pop\":\n offset = arrayLength - 1;\n case \"shift\":\n if (arrayLength) {\n pushDiff(\"deleted\", rawArray[offset], offset);\n }\n break;\n case \"splice\":\n {\n const startIndex = Math.min(Math.max(0, args[0] < 0 ? arrayLength + args[0] : args[0]), arrayLength), endDeleteIndex = argsLength === 1 ? arrayLength : Math.min(startIndex + (args[1] || 0), arrayLength), endAddIndex = startIndex + argsLength - 2, endIndex = Math.max(endDeleteIndex, endAddIndex), additions = new Array(), deletions = new Array();\n for (let index = startIndex, argsIndex = 2; index < endIndex; ++index, ++argsIndex) {\n if (index < endDeleteIndex) {\n deletions.push(pushDiff(\"deleted\", rawArray[index], index));\n }\n if (index < endAddIndex) {\n additions.push(pushDiff(\"added\", args[argsIndex], index));\n }\n }\n findMovesInArrayComparison(deletions, additions);\n }\n break;\n default:\n return;\n }\n cachedDiff = diff;\n };\n}\ntrackArrayChanges.compareArrays = compareArrays;\nextenders.trackArrayChanges = trackArrayChanges;\n", "// @tko/observable \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { arrayIndexOf, arrayForEach, overwriteLengthPropertyIfSupported } from \"@tko/utils\";\nimport { observable, isObservable } from \"./observable\";\nimport { trackArrayChanges } from \"./observableArray.changeTracking\";\nexport function observableArray(initialValues) {\n initialValues = initialValues || [];\n if (typeof initialValues !== \"object\" || !(\"length\" in initialValues)) {\n throw new Error(\n \"The argument passed when initializing an observable array must be an array, or null, or undefined.\"\n );\n }\n const result = Object.setPrototypeOf(observable(initialValues), observableArray.fn);\n trackArrayChanges(result);\n overwriteLengthPropertyIfSupported(result, { get: () => result()?.length });\n return result;\n}\nexport function isObservableArray(instance) {\n return isObservable(instance) && typeof instance.remove === \"function\" && typeof instance.push === \"function\";\n}\nobservableArray.fn = {\n remove(valueOrPredicate) {\n const underlyingArray = this.peek();\n const removedValues = new Array();\n const predicate = typeof valueOrPredicate === \"function\" && !isObservable(valueOrPredicate) ? valueOrPredicate : function(value) {\n return value === valueOrPredicate;\n };\n for (let i = 0; i < underlyingArray.length; i++) {\n const value = underlyingArray[i];\n if (predicate(value)) {\n if (removedValues.length === 0) {\n this.valueWillMutate();\n }\n if (underlyingArray[i] !== value) {\n throw Error(\"Array modified during remove; cannot remove item\");\n }\n removedValues.push(value);\n underlyingArray.splice(i, 1);\n i--;\n }\n }\n if (removedValues.length) {\n this.valueHasMutated();\n }\n return removedValues;\n },\n removeAll(arrayOfValues) {\n if (arrayOfValues === void 0) {\n const underlyingArray = this.peek();\n const allValues = underlyingArray.slice(0);\n this.valueWillMutate();\n underlyingArray.splice(0, underlyingArray.length);\n this.valueHasMutated();\n return allValues;\n }\n if (!arrayOfValues) {\n return [];\n }\n return this[\"remove\"](function(value) {\n return arrayIndexOf(arrayOfValues, value) >= 0;\n });\n },\n destroy(valueOrPredicate) {\n const underlyingArray = this.peek();\n const predicate = typeof valueOrPredicate === \"function\" && !isObservable(valueOrPredicate) ? valueOrPredicate : function(value) {\n return value === valueOrPredicate;\n };\n this.valueWillMutate();\n for (let i = underlyingArray.length - 1; i >= 0; i--) {\n const value = underlyingArray[i];\n if (predicate(value)) {\n value[\"_destroy\"] = true;\n }\n }\n this.valueHasMutated();\n },\n destroyAll(arrayOfValues) {\n if (arrayOfValues === void 0) {\n return this.destroy(function() {\n return true;\n });\n }\n if (!arrayOfValues) {\n return [];\n }\n return this.destroy(function(value) {\n return arrayIndexOf(arrayOfValues, value) >= 0;\n });\n },\n indexOf(item) {\n return arrayIndexOf(this(), item);\n },\n replace(oldItem, newItem) {\n const index = this.indexOf(oldItem);\n if (index >= 0) {\n this.valueWillMutate();\n this.peek()[index] = newItem;\n this.valueHasMutated();\n }\n },\n sorted(compareFn) {\n return [...this()].sort(compareFn);\n },\n reversed() {\n return [...this()].reverse();\n },\n [Symbol.iterator]: function* () {\n yield* this();\n }\n};\nObject.setPrototypeOf(observableArray.fn, observable.fn);\narrayForEach([\"pop\", \"push\", \"reverse\", \"shift\", \"sort\", \"splice\", \"unshift\"], function(methodName) {\n observableArray.fn[methodName] = function() {\n const underlyingArray = this.peek();\n this.valueWillMutate();\n this.cacheDiffForKnownOperation(underlyingArray, methodName, arguments);\n const methodCallResult = underlyingArray[methodName].apply(underlyingArray, arguments);\n this.valueHasMutated();\n return methodCallResult === underlyingArray ? this : methodCallResult;\n };\n});\narrayForEach([\"slice\"], function(methodName) {\n observableArray.fn[methodName] = function() {\n const underlyingArray = this();\n return underlyingArray[methodName].apply(underlyingArray, arguments);\n };\n});\nobservableArray.trackArrayChanges = trackArrayChanges;\n", "import { objectForEach } from '@tko/utils'\n\nimport { unwrap } from '@tko/observable'\n\nimport type { AllBindings } from '@tko/bind'\n\nexport const attr = {\n update: function (element, valueAccessor, _allBindings: AllBindings) {\n const value = unwrap(valueAccessor()) || {}\n objectForEach(value, function (attrName, attrValue) {\n attrValue = unwrap(attrValue)\n\n // Find the namespace of this attribute, if any.\n const prefixLen = attrName.indexOf(':')\n const namespace = prefixLen > 0 && element.lookupNamespaceURI(attrName.substr(0, prefixLen))\n\n // To cover cases like \"attr: { checked:someProp }\", we want to remove the attribute entirely\n // when someProp is a \"no value\"-like value (strictly null, false, or undefined)\n // (because the absence of the \"checked\" attr is how to mark an element as not checked, etc.)\n const toRemove = attrValue === false || attrValue === null || attrValue === undefined\n\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\n // Deliberately being case-sensitive here because XHTML would regard \"Name\" as a different thing\n // entirely, and there's no strong reason to allow for such casing in HTML.\n if (attrName === 'name') {\n element.name = toRemove ? '' : attrValue\n }\n })\n }\n}\n", "// @tko/computed \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\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 const writeFunction = options2.write;\n const 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 || null,\n 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(\n \"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 }\n return this;\n } else {\n if (!state.isDisposed) {\n dependencyDetection.registerDependency(computedObservable);\n }\n if (state.isDirty || state.isSleeping && computedObservable.haveDependenciesChanged()) {\n ;\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 ;\n computedObservable.evaluateImmediate();\n }\n if (state.disposeWhenNodeIsRemoved && computedObservable.isActive()) {\n addDisposeCallback(\n state.disposeWhenNodeIsRemoved,\n state.domNodeDisposalCallback = function() {\n ;\n computedObservable.dispose();\n }\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 const 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(\n id,\n subscribable2,\n state.isSleeping ? { _target: subscribable2 } : computedObservable.subscribeToDependency(subscribable2)\n );\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 = new Array();\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 let 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 return false;\n },\n markDirty() {\n if (this._evalDelayed && !this[computedState].isBeingEvaluated) {\n this._evalDelayed(\n false\n /* notifyChange */\n );\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 const 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 const computedObservable = this, throttleEvaluationTimeout = computedObservable.throttleEvaluation;\n if (throttleEvaluationTimeout && throttleEvaluationTimeout >= 0) {\n clearTimeout(this[computedState].evaluationTimeoutInstance);\n this[computedState].evaluationTimeoutInstance = safeSetTimeout(function() {\n computedObservable.evaluateImmediate(\n true\n /* notifyChange */\n );\n }, throttleEvaluationTimeout);\n } else if (computedObservable._evalDelayed) {\n computedObservable._evalDelayed(\n true\n /* notifyChange */\n );\n } else {\n computedObservable.evaluateImmediate(\n true\n /* notifyChange */\n );\n }\n },\n evaluateImmediate(notifyChange) {\n let 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 let computedObservable = this, state = computedObservable[computedState], changed = false;\n const 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 const 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 const 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(\n this,\n !isChange\n /* isDirty */\n );\n }\n });\n },\n dispose() {\n const 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};\nconst pureComputedOverrides = {\n beforeSubscriptionAdd(event) {\n const 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 const dependenciesOrder = new Array();\n objectForEach(state.dependencyTracking, function(id, dependency) {\n dependenciesOrder[dependency._order] = id;\n });\n arrayForEach(dependenciesOrder, function(id, order) {\n const 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 const 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 const state = this[computedState];\n if (state.isSleeping && (state.isStale || this.haveDependenciesChanged())) {\n this.evaluateImmediate();\n }\n return subscribable.fn.getVersion.call(this);\n }\n};\nconst deferEvaluationOverrides = {\n beforeSubscriptionAdd(event) {\n if (event === \"change\" || event === \"beforeChange\") {\n this.peek();\n }\n }\n};\nObject.setPrototypeOf(computed.fn, subscribable.fn);\nconst 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 const evaluator = evaluatorFunctionOrOptions;\n return computed(evaluator, evaluatorFunctionTarget, { pure: true });\n } else {\n let options2 = evaluatorFunctionOrOptions;\n options2 = extend({}, options2);\n options2.pure = true;\n return computed(options2, evaluatorFunctionTarget);\n }\n}\n", "// @tko/computed \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { extenders as baseExtenders } from \"@tko/observable\";\nimport { computed } from \"./computed\";\nexport function throttleExtender(target, timeout) {\n target.throttleEvaluation = timeout;\n let writeTimeoutInstance = void 0;\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}\nconst extenders = baseExtenders;\nextenders.throttle = throttleExtender;\n", "// @tko/computed \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { observable, observableArray, unwrap } from \"@tko/observable\";\nimport { computed } from \"./computed\";\nconst PROXY_SYM = /* @__PURE__ */ Symbol(\"Knockout Proxied Object\");\nconst MIRROR_SYM = /* @__PURE__ */ 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 [...Object.getOwnPropertyNames(object), ...Object.getOwnPropertySymbols(object)];\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", "import { registerEventHandler, arrayIndexOf, addOrRemoveItem } from '@tko/utils'\n\nimport { unwrap, dependencyDetection, isWriteableObservable } from '@tko/observable'\n\nimport { computed, pureComputed } from '@tko/computed'\n\nimport type { AllBindings } from '@tko/bind'\n\nexport const checked = {\n after: ['value', 'attr'],\n init: function (element, valueAccessor, allBindings: AllBindings) {\n const checkedValue = pureComputed(function () {\n // Treat \"value\" like \"checkedValue\" when it is included with \"checked\" binding\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\n function updateModel() {\n // This updates the model value from the view value.\n // It runs in response to DOM events (click) and changes in checkedValue.\n let isChecked = element.checked,\n elemValue = checkedValue()\n\n // When we're first setting up this computed, don't change any model state.\n if (dependencyDetection.isInitial()) {\n return\n }\n\n // We can ignore unchecked radio buttons, because some other radio\n // button will be checked, and that one can take care of updating state.\n // button will be checked, and that one can take care of updating state\n if (!isChecked && (isRadio || dependencyDetection.getDependenciesCount())) {\n return\n }\n\n const modelValue = dependencyDetection.ignore(valueAccessor)\n if (valueIsArray) {\n const writableValue = rawValueIsNonArrayObservable ? modelValue.peek() : modelValue,\n saveOldValue = oldElemValue\n oldElemValue = elemValue\n\n if (saveOldValue !== elemValue) {\n // When we're responding to the checkedValue changing, and the element is\n // currently checked, replace the old elem value with the new elem value\n // in the model array.\n if (isChecked) {\n addOrRemoveItem(writableValue, elemValue, true)\n addOrRemoveItem(writableValue, saveOldValue, false)\n }\n\n oldElemValue = elemValue\n } else {\n // When we're responding to the user having checked/unchecked a checkbox,\n // add/remove the element value to the model array.\n addOrRemoveItem(writableValue, elemValue, isChecked)\n }\n if (rawValueIsNonArrayObservable && isWriteableObservable(modelValue)) {\n modelValue(writableValue)\n }\n } else {\n if (isCheckbox) {\n if (elemValue === undefined) {\n elemValue = isChecked\n } else if (!isChecked) {\n elemValue = undefined\n }\n }\n // valueAccessor(elemValue, {onlyIfChanged: true})\n const modelValue = valueAccessor(elemValue, { onlyIfChanged: true })\n if (isWriteableObservable(modelValue) && modelValue.peek() !== elemValue) {\n modelValue(elemValue)\n }\n }\n }\n\n function updateView() {\n // This updates the view value from the model value.\n // It runs in response to changes in the bound (checked) value.\n const modelValue = unwrap(valueAccessor())\n const elemValue = checkedValue()\n\n if (valueIsArray) {\n // When a checkbox is bound to an array, being checked represents its value being present in that array\n element.checked = arrayIndexOf(modelValue, elemValue) >= 0\n oldElemValue = elemValue\n } else if (isCheckbox && elemValue === undefined) {\n // When a checkbox is bound to any other value (not an array) and \"checkedValue\" is not defined,\n // being checked represents the value being trueish\n element.checked = !!modelValue\n } else {\n // Otherwise, being checked means that the checkbox or radio button's value corresponds to the model value\n element.checked = checkedValue() === modelValue\n }\n }\n\n const isCheckbox = element.type == 'checkbox',\n isRadio = element.type == 'radio'\n\n // Only bind to check boxes and radio buttons\n if (!isCheckbox && !isRadio) {\n return\n }\n\n let rawValue = valueAccessor(),\n valueIsArray = isCheckbox && unwrap(rawValue) instanceof Array,\n rawValueIsNonArrayObservable = !(valueIsArray && rawValue.push && rawValue.splice),\n useElementValue = isRadio || valueIsArray,\n oldElemValue = valueIsArray ? checkedValue() : undefined\n\n // Set up two computeds to update the binding:\n\n // The first responds to changes in the checkedValue value and to element clicks\n computed(updateModel, null, { disposeWhenNodeIsRemoved: element })\n registerEventHandler(element, 'click', updateModel)\n\n // The second responds to changes in the model value (the one associated with the checked binding)\n computed(updateView, null, { disposeWhenNodeIsRemoved: element })\n\n rawValue = undefined\n }\n}\n\nexport const checkedValue = {\n update: function (element, valueAccessor) {\n element.value = unwrap(valueAccessor())\n }\n}\n", "import {\n objectForEach,\n registerEventHandler,\n makeArray,\n throttle as throttleFn,\n debounce as debounceFn\n} from '@tko/utils'\n\nimport { unwrap } from '@tko/observable'\n\nimport type { AllBindings, BindingContext } from '@tko/bind'\n\n// For certain common events (currently just 'click'), allow a simplified data-binding syntax\n// e.g. click:handler instead of the usual full-length event:{click:handler}\nexport function makeEventHandlerShortcut(eventName) {\n return {\n init: function (element, valueAccessor, allBindings: AllBindings, viewModel, bindingContext: BindingContext) {\n const newValueAccessor = function () {\n const result = {}\n result[eventName] = valueAccessor()\n return result\n }\n eventHandler.init.call(this, element, newValueAccessor, allBindings, viewModel, bindingContext)\n }\n }\n}\n\nfunction makeDescriptor(handlerOrObject) {\n return typeof handlerOrObject === 'function' ? { handler: handlerOrObject } : handlerOrObject || {}\n}\n\nexport const eventHandler = {\n init: function (element, valueAccessor, allBindings, viewModel, bindingContext: BindingContext) {\n const 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\n let eventHandlerFn = (event, ...more) => {\n let handlerReturnValue\n const { handler, passive, bubble, preventDefault } = makeDescriptor(valueAccessor()[eventName])\n\n try {\n // Take all the event args, and prefix with the viewmodel\n if (handler) {\n const possiblyUpdatedViewModel = bindingContext.$data\n const argsForHandler = [possiblyUpdatedViewModel, event, ...more]\n handlerReturnValue = handler.apply(possiblyUpdatedViewModel, argsForHandler)\n }\n } finally {\n // preventDefault in the descriptor takes precedent over the handler return value\n if (preventDefault !== undefined) {\n if (unwrap(preventDefault)) {\n event.preventDefault()\n }\n } else if (handlerReturnValue !== true) {\n // Normally we want to prevent default action. Developer can override this by explicitly returning true\n // preventDefault will throw an error if the event is passive.\n if (!passive) {\n event.preventDefault()\n }\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\n if (debounce) {\n eventHandlerFn = debounceFn(eventHandlerFn, debounce)\n }\n if (throttle) {\n eventHandlerFn = throttleFn(eventHandlerFn, throttle)\n }\n\n registerEventHandler(element, eventName, eventHandlerFn, eventOptions || false)\n })\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", "import { makeEventHandlerShortcut } from './event'\n\n// 'click' is just a shorthand for the usual full-length event:{click:handler}\nexport const click = makeEventHandlerShortcut('click')\n", "import { createSymbolOrString, toggleDomNodeCssClass, objectForEach, stringTrim } from '@tko/utils'\n\nimport { unwrap } from '@tko/observable'\n\nexport const css = {\n aliases: ['class'],\n update: function (element, valueAccessor) {\n let 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 || '')) // Make sure we don't try to store or set a non-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/bind \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { domData } from \"@tko/utils\";\nimport { subscribable } from \"@tko/observable\";\nexport const contextAncestorBindingInfo = /* @__PURE__ */ Symbol(\"_ancestorBindingInfo\");\nconst boundElementDomDataKey = domData.nextKey();\nexport const bindingEvent = {\n //TODO better: String-Enum \"BindingEventEnum\"\n childrenComplete: \"childrenComplete\",\n descendantsComplete: \"descendantsComplete\",\n subscribe(node, event, callback, callbackContext) {\n const bindingInfo = domData.getOrSet(node, boundElementDomDataKey, {});\n if (!bindingInfo.eventSubscribable) {\n bindingInfo.eventSubscribable = new subscribable();\n }\n return bindingInfo.eventSubscribable.subscribe(callback, callbackContext, event);\n },\n notify(node, event) {\n const bindingInfo = domData.get(node, boundElementDomDataKey);\n if (bindingInfo) {\n if (bindingInfo.eventSubscribable) {\n ;\n bindingInfo.eventSubscribable.notifySubscribers(node, event);\n }\n }\n }\n};\n", "// @tko/bind \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { extend, options, domData, isObjectLike } from \"@tko/utils\";\nimport { pureComputed } from \"@tko/computed\";\nimport { unwrap, isObservable } from \"@tko/observable\";\nimport { contextAncestorBindingInfo } from \"./bindingEvent\";\nexport const boundElementDomDataKey = domData.nextKey();\nexport const contextSubscribeSymbol = /* @__PURE__ */ Symbol(\"Knockout Context Subscription\");\nconst inheritParentIndicator = /* @__PURE__ */ Symbol(\"Knockout Parent Indicator\");\nexport const bindingContext = function bindingContextFactory(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 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 = new Array();\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 // Extend the binding context hierarchy with a new view model object. If the parent context is watching\n // any observables, the new child context will automatically get a dependency on the parent context.\n // But this does not mean that the $data value of the child context will also get updated. If the child\n // view model also depends on the parent view model, you must provide a function that returns the correct\n // view model on each update.\n createChildContext(dataItemOrAccessor, dataItemAlias, extendCallback, settings) {\n return new bindingContext(\n dataItemOrAccessor,\n this,\n dataItemAlias,\n 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 },\n settings\n );\n },\n // Extend the binding context with new custom properties. This doesn't change the context hierarchy.\n // Similarly to \"child\" contexts, provide a function here to make sure that the correct values are set\n // when an observable view model is updated.\n extend(properties) {\n return new bindingContext(inheritParentIndicator, this, void 0, 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 === Node.ELEMENT_NODE || node.nodeType === Node.COMMENT_NODE)) {\n return storedBindingContextForNode(node);\n }\n}\nexport function dataFor(node) {\n const context = contextFor(node);\n return context ? context.$data : void 0;\n}\n", "// @tko/bind \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nexport class BindingResult {\n constructor({ asyncBindingsApplied, rootNode, bindingContext }) {\n this.rootNode = rootNode;\n this.bindingContext = bindingContext;\n this.isSync = asyncBindingsApplied.size === 0;\n this.isComplete = this.isSync;\n if (!this.isSync) {\n this.completionPromise = this.completeWhenBindingsFinish(asyncBindingsApplied);\n }\n }\n async completeWhenBindingsFinish(asyncBindingsApplied) {\n await Promise.all(asyncBindingsApplied);\n this.isComplete = true;\n return this;\n }\n}\n", "// @tko/lifecycle \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\nimport { addDisposeCallback, createSymbolOrString } from \"@tko/utils\";\nimport { computed } from \"@tko/computed\";\nconst SUBSCRIPTIONS = createSymbolOrString(\"LifeCycle Subscriptions List\");\nconst ANCHOR_NODE = createSymbolOrString(\"LifeCycle Anchor Node\");\nexport default class LifeCycle {\n // NOTE: For more advanced integration as an ES6 mixin, see e.g.:\n // http://justinfagnani.com/2015/12/21/real-mixins-with-javascript-classes/\n /**\n * Copy the properties of the LifeCycle class to the target (or its prototype)\n *\n * NOTE: getOwnPropertyNames is needed to copy the non-enumerable properties.\n */\n static mixInto(Constructor) {\n const target = Constructor.prototype || Constructor;\n const mixin = LifeCycle.prototype;\n for (const 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 /**\n * Add an event listener for the given or anchored node.\n * @param {node} [node] (optional) The target node (otherwise the anchored node)\n * @param {string} [type] Event type\n * @param {function|string} [action] Either call the given function or `this[action]`\n * @param {object} [options] (optional) Passed as `options` to `node.addEventListener`\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] = new Array();\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 ESM\n\"use strict\";\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 this.$element = $element;\n this.valueAccessor = valueAccessor;\n this.allBindings = allBindings;\n this.$context = $context;\n this.$data = $context.$data;\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 /* Overload this for asynchronous bindings or bindings that recursively\n apply bindings (e.g. components, foreach, template).\n \n A binding should be complete when it has run through once, notably\n in server-side bindings for pre-rendering.\n */\n get bindingCompleted() {\n return true;\n }\n static registerAs(name, provider = options.bindingProviderInstance) {\n provider.bindingHandlers.set(name, this);\n }\n static registerBindingHandler(handler, name, provider = options.bindingProviderInstance) {\n provider.bindingHandlers.set(name, handler);\n }\n}\nconst ResolveSymbol = /* @__PURE__ */ 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 ESM\n\"use strict\";\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 get handler() {\n return void 0;\n }\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 [this.$element, this.valueAccessor, this.allBindings, this.$data, this.$context];\n }\n get controlsDescendants() {\n const objectToTest = this.initReturn || this.handler || {};\n return objectToTest.controlsDescendantBindings;\n }\n /**\n * Create a handler instance from the `origin`, which may be:\n *\n * 1. an object (becomes LegacyBindingHandler)\n * 2. a function (becomes LegacyBindingHandler with `init: function`)\n *\n * If given an object (the only kind supported in knockout 3.x and before), it\n * shall draw the `init`, `update`, and `allowVirtualElements` properties\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 ESM\n\"use strict\";\nimport {\n extend,\n objectMap,\n virtualElements,\n tagNameLower,\n domData,\n objectForEach,\n arrayIndexOf,\n arrayForEach,\n options\n} from \"@tko/utils\";\nimport { dependencyDetection } from \"@tko/observable\";\nimport { computed } from \"@tko/computed\";\nimport { dataFor, bindingContext, boundElementDomDataKey, contextSubscribeSymbol } from \"./bindingContext\";\nimport { bindingEvent } from \"./bindingEvent\";\nimport { BindingResult } from \"./BindingResult\";\nimport { LegacyBindingHandler } from \"./LegacyBindingHandler\";\nconst bindingDoesNotRecurseIntoElementTypes = {\n // Don't want bindings that operate on text nodes to mutate <script> and <textarea> contents,\n // because it's unexpected and a potential XSS issue.\n // Also bindings should not operate on <template> elements since this breaks in Internet Explorer\n // and because such elements' contents are always intended to be bound in a different context\n // from where they appear in the document.\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 || [Node.ELEMENT_NODE, Node.TEXT_NODE, Node.COMMENT_NODE];\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 const isElement = nodeVerified.nodeType === Node.ELEMENT_NODE;\n if (isElement) {\n virtualElements.normaliseVirtualElementDomStructure(nodeVerified);\n }\n const 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 = new Array();\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(\n \"Cannot combine the following bindings, because they have a cyclic dependency: \" + cyclicDependencyStack.join(\", \")\n );\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 let bindings = null;\n let bindingsUpdater = null;\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 bindingsUpdater = computed(\n 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 },\n null,\n { disposeWhenNodeIsRemoved: node }\n );\n if (!bindings || !bindingsUpdater.isActive()) {\n bindingsUpdater = null;\n }\n }\n }\n let bindingHandlerThatControlsDescendantBindings;\n if (bindings) {\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 const allBindings = function() {\n return objectMap(bindingsUpdater ? bindingsUpdater() : bindings, evaluateValueAccessor);\n };\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(\n node,\n bindingEvent.childrenComplete,\n () => {\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 null\n );\n }\n const bindingsGenerated = topologicalSortBindings(bindings, $component);\n const nodeAsyncBindingPromises = /* @__PURE__ */ new Set();\n for (const [key, BindingHandlerClass] of bindingsGenerated) {\n const 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 === Node.COMMENT_NODE && !BindingHandlerClass.allowVirtualElements) {\n throw new Error(`The binding '${key}' cannot be used with virtual elements`);\n }\n try {\n const bindingHandler = dependencyDetection.ignore(\n () => new BindingHandlerClass({\n allBindings,\n $element: node,\n $context: bindingContext2,\n onError: reportBindingError,\n valueAccessor(...v) {\n return getValueAccessor(key)(...v);\n }\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(\n \"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 }\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 const error = err instanceof Error ? err : new Error(String(err));\n reportBindingError(\"creation\", error);\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 === Node.ELEMENT_NODE) {\n virtualElements.normaliseVirtualElementDomStructure(node);\n }\n return applyBindingsToNodeInternal(\n node,\n bindings,\n getBindingContext(viewModelOrBindingContext),\n asyncBindingsApplied\n );\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 const bindingContext2 = getBindingContext(viewModelOrBindingContext);\n if (rootNode.nodeType === Node.ELEMENT_NODE || rootNode.nodeType === Node.COMMENT_NODE) {\n applyBindingsToDescendantsInternal(bindingContext2, rootNode, asyncBindingsApplied);\n return new BindingResult({ asyncBindingsApplied, rootNode, bindingContext: bindingContext2 });\n }\n return new BindingResult({ asyncBindingsApplied, rootNode, bindingContext: bindingContext2 });\n}\nexport function applyBindings(viewModelOrBindingContext, rootNode, extendContextCallback) {\n const asyncBindingsApplied = /* @__PURE__ */ new Set();\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 !== Node.ELEMENT_NODE && rootNode.nodeType !== Node.COMMENT_NODE) {\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 let error;\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 const message = error.message || String(error);\n const originalName = error.name;\n error = new Error(message);\n if (originalName && originalName !== \"Error\") {\n error.name = originalName;\n }\n extend(error, spec);\n }\n options.onError(error);\n}\n", "// @tko/bind \uD83E\uDD4A 4.0.0 ESM\n\"use strict\";\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 { dependencyDetection, observable } from \"@tko/observable\";\nimport { computed } from \"@tko/computed\";\nfunction mapNodeAndRefreshWhenChanged(containerNode, mapping, valueToMap, callbackAfterAddingNodes, index) {\n const mappedNodes = [];\n const dependentObservable = computed(\n function() {\n const 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 },\n null,\n {\n disposeWhenNodeIsRemoved: containerNode,\n disposeWhen: function() {\n return !anyDomNodeIsAttachedToDocument(mappedNodes);\n }\n }\n );\n return {\n mappedNodes,\n dependentObservable: dependentObservable.isActive() ? dependentObservable : void 0\n };\n}\nconst lastMappingResultDomDataKey = domData.nextKey();\nconst 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 const lastMappingResult = domData.get(domNode, lastMappingResultDomDataKey);\n const isFirstExecution = !lastMappingResult;\n const newMappingResult = new Array();\n let lastMappingResultIndex = 0;\n let newMappingResultIndex = 0;\n const nodesToDelete = [];\n const itemsToProcess = [];\n const itemsForBeforeRemoveCallbacks = [];\n const itemsForMoveCallbacks = [];\n const itemsForAfterAddCallbacks = [];\n let 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 (let i = 0, n = items.length; i < n; i++) {\n arrayForEach(items[i].mappedNodes, function(node) {\n callback(node, i, items[i].arrayEntry);\n });\n }\n }\n }\n if (isFirstExecution) {\n arrayForEach(array, itemAdded);\n } else {\n if (!editScript || lastMappingResult && lastMappingResult[\"_countWaitingForRemove\"]) {\n const lastArray = arrayMap(lastMappingResult, function(x) {\n return x.arrayEntry;\n });\n const compareOptions = { dontLimitMoves: options.dontLimitMoves, sparse: true };\n editScript = compareArrays(lastArray, array, compareOptions);\n }\n for (let 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?.mappedNodes) {\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 for (let k = 0, nextNode = virtualElements.firstChild(domNode), lastNode, node; mapData = itemsToProcess[k]; k++) {\n if (!mapData.mappedNodes) {\n extend(\n mapData,\n mapNodeAndRefreshWhenChanged(\n domNode,\n mapping,\n mapData.arrayEntry,\n callbackAfterAddingNodes,\n mapData.indexObservable\n )\n );\n }\n for (let 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 (let x = 0; x < itemsForBeforeRemoveCallbacks.length; ++x) {\n itemsForBeforeRemoveCallbacks[x].arrayEntry = deletedItemDummyValue;\n }\n callCallback(options.afterMove, itemsForMoveCallbacks);\n callCallback(options.afterAdd, itemsForAfterAddCallbacks);\n}\n", "/**\n * A simple callback binding.\n */\nimport { BindingHandler } from '@tko/bind'\n\nexport default class DescendantsCompleteHandler extends BindingHandler {\n onDescendantsComplete() {\n if (typeof this.value === 'function') {\n this.value(this.$element)\n }\n }\n\n static override get allowVirtualElements() {\n return true\n }\n}\n", "import { unwrap } from '@tko/observable'\n\nexport const enable = {\n update: function (element, valueAccessor) {\n const 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}\n\nexport const disable = {\n update: function (element, valueAccessor) {\n enable.update(element, function () {\n return !unwrap(valueAccessor())\n })\n }\n}\n", "import { createSymbolOrString, triggerEvent, registerEventHandler } from '@tko/utils'\n\nimport { unwrap, dependencyDetection, isWriteableObservable } from '@tko/observable'\n\nimport type { AllBindings } from '@tko/bind'\n\nconst hasfocusUpdatingProperty = createSymbolOrString('__ko_hasfocusUpdating')\nconst hasfocusLastValue = createSymbolOrString('__ko_hasfocusLastValue')\n\nexport const hasfocus = {\n init: function (element, valueAccessor, _allBindings: AllBindings) {\n const handleElementFocusChange = function (isFocused) {\n // Where possible, ignore which event was raised and determine focus state using activeElement,\n // as this avoids phantom focus/blur events raised when changing tabs in modern browsers.\n // However, not all KO-targeted browsers (Firefox 2) support activeElement. For those browsers,\n // prevent a loss of focus when changing tabs/windows by setting a flag that prevents hasfocus\n // from calling 'blur()' on the element when it loses focus.\n // Discussion at https://github.com/SteveSanderson/knockout/pull/352\n element[hasfocusUpdatingProperty] = true\n const ownerDoc = element.ownerDocument\n if ('activeElement' in ownerDoc) {\n let active\n try {\n active = ownerDoc.activeElement\n } catch (e) {\n // IE9 throws if you access activeElement during page load (see issue #703)\n active = ownerDoc.body\n }\n isFocused = active === element\n }\n\n const modelValue = valueAccessor(isFocused, { onlyIfChanged: true })\n // Found a scenario where hasFocus changes were not fired\n // the fix was transfered from ko 3.5 (Focusout event was not fired)\n // This only replies the value if there are changes\n // it won't effect if already set by valueAccessor (Parser.convertToAccessors)\n if (isWriteableObservable(modelValue) && modelValue.peek() !== isFocused) {\n modelValue(isFocused)\n }\n\n // cache the latest value, so we can avoid unnecessarily calling focus/blur in the update function\n element[hasfocusLastValue] = isFocused\n element[hasfocusUpdatingProperty] = false\n }\n\n const handleElementFocusIn = handleElementFocusChange.bind(null, true)\n const handleElementFocusOut = handleElementFocusChange.bind(null, false)\n\n registerEventHandler(element, 'focus', handleElementFocusIn)\n registerEventHandler(element, 'focusin', handleElementFocusIn) // For IE\n registerEventHandler(element, 'blur', handleElementFocusOut)\n registerEventHandler(element, 'focusout', handleElementFocusOut) // For IE\n },\n update: function (element, valueAccessor) {\n const value = !!unwrap(valueAccessor())\n\n if (!element[hasfocusUpdatingProperty] && element[hasfocusLastValue] !== value) {\n if (value) {\n element.focus()\n } else {\n element.blur()\n }\n\n // In IE, the blur method doesn't always cause the element to lose focus (for example, if the window is not in focus).\n // Setting focus to the body element does seem to be reliable in IE, but should only be used if we know that the current\n // element was focused already.\n if (!value && element[hasfocusLastValue]) {\n element.ownerDocument.body.focus()\n }\n\n // For IE, which doesn't reliably fire \"focus\" or \"blur\" events synchronously\n dependencyDetection.ignore(triggerEvent, null, [element, value ? 'focusin' : 'focusout'])\n }\n }\n}\n", "import { setHtml } from '@tko/utils'\n\nexport const html = {\n init: function () {\n // Prevent binding on the dynamically-injected HTML (as developers are unlikely to expect that, and it has security implications)\n return { controlsDescendantBindings: true }\n },\n //\n // Modify internal, per ko.punches and :\n // http://stackoverflow.com/a/15348139\n update: function (element, valueAccessor) {\n setHtml(element, valueAccessor())\n },\n allowVirtualElements: true\n}\n", "import { applyBindingsToDescendants } from '@tko/bind'\n\nimport type { BindingContext } from '@tko/bind'\n\nexport default {\n init: function (element, valueAccessor, _allBindings, _viewModel, bindingContext: BindingContext) {\n // Make a modified binding context, with extra properties, and apply it to descendant elements\n const innerContext = bindingContext['extend'](valueAccessor)\n applyBindingsToDescendants(innerContext, element)\n\n return { controlsDescendantBindings: true }\n },\n allowVirtualElements: true\n}\n", "import {\n tagNameLower,\n arrayFilter,\n arrayMap,\n setTextContent,\n arrayIndexOf,\n setOptionNodeSelectionState,\n triggerEvent,\n selectExtensions\n} from '@tko/utils'\n\nimport { unwrap, dependencyDetection } from '@tko/observable'\nimport { setDomNodeChildrenFromArrayMapping } from '@tko/bind'\nimport type { AllBindings } from '@tko/bind'\nconst captionPlaceholder = {}\n\nexport const options = {\n init: function (element) {\n if (tagNameLower(element) !== 'select') {\n throw new Error('options binding applies only to SELECT elements')\n }\n\n // Remove all existing <option>s.\n while (element.length > 0) {\n element.remove(0)\n }\n\n // Ensures that the binding processor doesn't try to bind the options\n return { controlsDescendantBindings: true }\n },\n update: function (element, valueAccessor, allBindings: AllBindings) {\n function selectedOptions() {\n return arrayFilter(element.options, function (node) {\n return node.selected\n })\n }\n\n let selectWasPreviouslyEmpty = element.length == 0,\n multiple = element.multiple,\n previousScrollTop = !selectWasPreviouslyEmpty && multiple ? element.scrollTop : null,\n unwrappedArray = unwrap(valueAccessor()),\n valueAllowUnset = allBindings.get('valueAllowUnset') && allBindings['has']('value'),\n includeDestroyed = allBindings.get('optionsIncludeDestroyed'),\n arrayToDomNodeChildrenOptions = {},\n captionValue,\n filteredArray,\n previousSelectedValues = new Array()\n\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\n if (unwrappedArray) {\n if (typeof unwrappedArray.length === 'undefined') // Coerce single value into array\n {\n unwrappedArray = [unwrappedArray]\n }\n\n // Filter out any entries marked as destroyed\n filteredArray = arrayFilter(unwrappedArray, function (item) {\n return includeDestroyed || item === undefined || item === null || !unwrap(item['_destroy'])\n })\n\n // If caption is included, add it to the array\n if (allBindings['has']('optionsCaption')) {\n captionValue = unwrap(allBindings.get('optionsCaption'))\n // If caption value is null or undefined, don't show a caption\n if (captionValue !== null && captionValue !== undefined) {\n filteredArray.unshift(captionPlaceholder)\n }\n }\n } else {\n // If a falsy value is provided (e.g. null), we'll simply empty the select element\n }\n\n function applyToObject(object, predicate, defaultValue) {\n const predicateType = typeof predicate\n if (predicateType === 'function') // Given a function; run it against the data value\n {\n return predicate(object)\n } else if (predicateType == 'string') // Given a string; treat it as a property name on the data value\n {\n return object[predicate]\n } else // Given no optionsText arg; use the data value itself\n {\n return defaultValue\n }\n }\n\n // The following functions can run at two different times:\n // The first is when the whole array is being updated directly from this binding handler.\n // The second is when an observable value for a specific array entry is updated.\n // oldOptions will be empty in the first case, but will be filled with the previously generated option in the second.\n let itemUpdate = false\n function optionForArrayItem(arrayEntry, index, oldOptions) {\n if (oldOptions.length) {\n previousSelectedValues =\n !valueAllowUnset && oldOptions[0].selected ? [selectExtensions.readValue(oldOptions[0])] : []\n itemUpdate = true\n }\n const option = element.ownerDocument.createElement('option')\n if (arrayEntry === captionPlaceholder) {\n setTextContent(option, allBindings.get('optionsCaption'))\n selectExtensions.writeValue(option, undefined)\n } else {\n // Apply a value to the option element\n const optionValue = applyToObject(arrayEntry, allBindings.get('optionsValue'), arrayEntry)\n selectExtensions.writeValue(option, unwrap(optionValue))\n\n // Apply some text to the option element\n const optionText = applyToObject(arrayEntry, allBindings.get('optionsText'), optionValue)\n setTextContent(option, optionText)\n }\n return [option]\n }\n\n // By using a beforeRemove callback, we delay the removal until after new items are added. This fixes a selection\n // problem in IE<=8 and Firefox. See https://github.com/knockout/knockout/issues/1208\n arrayToDomNodeChildrenOptions['beforeRemove'] = function (option) {\n element.removeChild(option)\n }\n\n function setSelectionCallback(arrayEntry, newOptions) {\n if (itemUpdate && valueAllowUnset) {\n // The model value is authoritative, so make sure its value is the one selected\n // There is no need to use dependencyDetection.ignore since setDomNodeChildrenFromArrayMapping does so already.\n selectExtensions.writeValue(element, unwrap(allBindings.get('value')), true /* allowUnset */)\n } else if (previousSelectedValues.length) {\n // IE6 doesn't like us to assign selection to OPTION nodes before they're added to the document.\n // That's why we first added them without selection. Now it's time to set the selection.\n const isSelected = arrayIndexOf(previousSelectedValues, selectExtensions.readValue(newOptions[0])) >= 0\n setOptionNodeSelectionState(newOptions[0], isSelected)\n\n // If this option was changed from being selected during a single-item update, notify the change\n if (itemUpdate && !isSelected) {\n dependencyDetection.ignore(triggerEvent, null, [element, 'change'])\n }\n }\n }\n\n let 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, [\n newOptions[0],\n arrayEntry !== captionPlaceholder ? arrayEntry : undefined\n ])\n }\n }\n\n setDomNodeChildrenFromArrayMapping(\n element,\n filteredArray,\n optionForArrayItem,\n arrayToDomNodeChildrenOptions,\n callback\n )\n\n dependencyDetection.ignore(function () {\n if (valueAllowUnset) {\n // The model value is authoritative, so make sure its value is the one selected\n selectExtensions.writeValue(element, unwrap(allBindings.get('value')), true /* allowUnset */)\n } else {\n // Determine if the selection has changed as a result of updating the options list\n let selectionChanged\n if (multiple) {\n // For a multiple-select box, compare the new selection count to the previous one\n // But if nothing was selected before, the selection can't have changed\n selectionChanged = previousSelectedValues.length && selectedOptions().length < previousSelectedValues.length\n } else {\n // For a single-select box, compare the current value to the previous value\n // But if nothing was selected before or nothing is selected now, just look for a change in selection\n selectionChanged =\n previousSelectedValues.length && element.selectedIndex >= 0\n ? selectExtensions.readValue(element.options[element.selectedIndex]) !== previousSelectedValues[0]\n : previousSelectedValues.length || element.selectedIndex >= 0\n }\n\n // Ensure consistency between model value and selected option.\n // If the dropdown was changed so that selection is no longer the same,\n // notify the value or selectedOptions binding.\n if (selectionChanged) {\n triggerEvent(element, 'change')\n }\n }\n })\n\n if (previousScrollTop && Math.abs(previousScrollTop - element.scrollTop) > 20) {\n element.scrollTop = previousScrollTop\n }\n }\n}\n", "import {\n arrayForEach,\n setOptionNodeSelectionState,\n arrayIndexOf,\n registerEventHandler,\n tagNameLower,\n selectExtensions\n} from '@tko/utils'\n\nimport { unwrap } from '@tko/observable'\n\nimport type { AllBindings } from '@tko/bind'\n\nexport const selectedOptions = {\n after: ['options', 'foreach'],\n\n init: function (element, valueAccessor, _allBindings: AllBindings) {\n registerEventHandler(element, 'change', function () {\n const value = valueAccessor(),\n valueToWrite = new Array()\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\n update: function (element, valueAccessor) {\n if (tagNameLower(element) != 'select') {\n throw new Error('values binding applies only to SELECT elements')\n }\n\n const newValue = unwrap(valueAccessor()),\n previousScrollTop = element.scrollTop\n\n if (newValue && typeof newValue.length === 'number') {\n arrayForEach(element.getElementsByTagName('option'), function (node) {\n const isSelected = arrayIndexOf(newValue, selectExtensions.readValue(node)) >= 0\n if (node.selected != isSelected) {\n // This check prevents flashing of the select element in IE\n setOptionNodeSelectionState(node, isSelected)\n }\n })\n }\n\n element.scrollTop = previousScrollTop\n }\n}\n", "import { objectForEach, options } from '@tko/utils'\n\nimport { unwrap } from '@tko/observable'\n\nexport const style = {\n update: function (element, valueAccessor) {\n const value = unwrap(valueAccessor() || {})\n objectForEach(value, function (styleName, styleValue) {\n styleValue = unwrap(styleValue)\n\n if (styleValue === null || styleValue === undefined || styleValue === false) {\n // Empty string removes the value, whereas null/undefined have no effect\n styleValue = ''\n }\n\n if (options.jQuery) {\n jQuery(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", "import { registerEventHandler } from '@tko/utils'\n\nimport type { BindingContext } from '@tko/bind'\n\nexport const submit = {\n init: function (element, valueAccessor, _allBindings, _viewModel, bindingContext: 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 let handlerReturnValue\n const value = valueAccessor()\n try {\n handlerReturnValue = value.call(bindingContext['$data'], element)\n } finally {\n if (handlerReturnValue !== true) {\n // Normally we want to prevent default action. Developer can override this be explicitly returning true.\n if (event.preventDefault) {\n event.preventDefault()\n } else {\n event.returnValue = false\n }\n }\n }\n })\n }\n}\n", "import { setTextContent } from '@tko/utils'\n\nexport const text = {\n init: function () {\n // Prevent binding on the dynamically-injected text node (as developers are unlikely to expect that, and it has security implications).\n // It should also make things faster, as we no longer have to consider whether the text node might be bindable.\n return { controlsDescendantBindings: true }\n },\n update: function (element, valueAccessor) {\n setTextContent(element, valueAccessor())\n },\n allowVirtualElements: true\n}\n", "import { safeSetTimeout, options, arrayForEach } from '@tko/utils'\n\nimport { unwrap } from '@tko/observable'\n\nimport { BindingHandler } from '@tko/bind'\n\nexport const MSIE_REGEX = /MSIE ([^ ;]+)|rv:([^ )]+)/\n\nlet operaVersion, safariVersion, firefoxVersion, ieVersion\n\n/**\n * TextInput binding handler for modern browsers (legacy below).\n * @extends BindingHandler\n */\nclass TextInput extends BindingHandler {\n get aliases() {\n return 'textinput'\n }\n\n override $element: HTMLInputElement\n previousElementValue: any\n elementValueBeforeEvent?: ReturnType<typeof setTimeout>\n timeoutHandle?: ReturnType<typeof setTimeout>\n\n constructor(...args: [any]) {\n super(...args)\n this.previousElementValue = this.$element.value\n\n if (options.debug && (this.constructor as any)._forceUpdateOn) {\n // Provide a way for tests to specify exactly which events are bound\n arrayForEach((this.constructor as any)._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\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\n eventsIndicatingSyncValueChange() {\n // input: Default, modern handler\n // change: Catch programmatic updates of the value that fire this event.\n // blur: To deal with browsers that don't notify any kind of event for some changes (IE, Safari, etc.)\n return ['input', 'change', 'blur']\n }\n\n eventsIndicatingDeferValueChange(): any[] {\n return []\n }\n\n updateModel(event) {\n const element = this.$element\n clearTimeout(this.timeoutHandle)\n this.elementValueBeforeEvent = this.timeoutHandle = undefined\n const elementValue = element.value\n if (this.previousElementValue !== elementValue) {\n // Provide a way for tests to know exactly which event was processed\n if (options.debug && event) {\n ;(element as any)._ko_textInputProcessedEvent = event.type\n }\n this.previousElementValue = elementValue\n this.value = elementValue\n }\n }\n\n deferUpdateModel(event: any) {\n const element = this.$element\n if (!this.timeoutHandle) {\n // The elementValueBeforeEvent variable is set *only* during the brief gap between an\n // event firing and the updateModel function running. This allows us to ignore model\n // updates that are from the previous state of the element, usually due to techniques\n // such as rateLimit. Such updates, if not ignored, can cause keystrokes to be lost.\n this.elementValueBeforeEvent = element.value as any\n const handler = options.debug ? this.updateModel.bind(this, { type: event.type }) : this.updateModel\n this.timeoutHandle = safeSetTimeout(handler, 4)\n }\n }\n\n updateView() {\n let modelValue = unwrap(this.value)\n if (modelValue === null || modelValue === undefined) {\n modelValue = ''\n }\n if (this.elementValueBeforeEvent !== undefined && modelValue === this.elementValueBeforeEvent) {\n setTimeout(this.updateView.bind(this), 4)\n } else if (this.$element.value !== modelValue) {\n // Update the element only if the element and model are different. On some browsers, updating the value\n // will move the cursor to the end of the input, which would be bad while the user is typing.\n this.previousElementValue = modelValue // Make sure we ignore events (propertychange) that result from updating the value\n this.$element.value = modelValue\n this.previousElementValue = this.$element.value // In case the browser changes the value (see #2281)\n }\n }\n}\n\nclass TextInputIE extends TextInput {\n override eventsIndicatingSyncValueChange() {\n //keypress: All versions (including 11) of Internet Explorer have a bug that they don't generate an input or propertychange event when ESC is pressed\n return [...super.eventsIndicatingSyncValueChange(), 'keypress']\n }\n}\n\n// Safari <5 doesn't fire the 'input' event for <textarea> elements (it does fire 'textInput'\n// but only when typing). So we'll just catch as much as we can with keydown, cut, and paste.\nclass TextInputLegacySafari extends TextInput {\n override eventsIndicatingDeferValueChange() {\n return ['keydown', 'paste', 'cut']\n }\n}\n\nclass TextInputLegacyOpera extends TextInput {\n override eventsIndicatingDeferValueChange(): string[] {\n // Opera 10 doesn't always fire the 'input' event for cut, paste, undo & drop operations.\n // We can try to catch some of those using 'keydown'.\n return ['keydown']\n }\n}\n\nclass TextInputLegacyFirefox extends TextInput {\n eventsIndicatingValueChange(): string[] {\n return [\n ...super.eventsIndicatingSyncValueChange(),\n // Firefox <= 3.6 doesn't fire the 'input' event when text is filled in through autocomplete\n 'DOMAutoComplete',\n // Firefox <=3.5 doesn't fire the 'input' event when text is dropped into the input.\n 'dragdrop', // < 3.5\n 'drop' // 3.5\n ]\n }\n}\n\nconst w = options.global // window / global\nif (w.navigator) {\n const parseVersion = matches => matches && parseFloat(matches[1])\n const userAgent = w.navigator.userAgent\n const isChrome = userAgent.match(/Chrome\\/([^ ]+)/)\n if (!isChrome) {\n // Detect various browser versions because some old versions don't fully support the 'input' event\n operaVersion = w.opera && w.opera.version && parseInt(w.opera.version())\n safariVersion = parseVersion(userAgent.match(/Version\\/([^ ]+) Safari/))\n firefoxVersion = parseVersion(userAgent.match(/Firefox\\/([^ ]*)/))\n const ieMatch = userAgent.match(MSIE_REGEX)\n ieVersion = ieMatch && (parseFloat(ieMatch[1]) || parseFloat(ieMatch[2]))\n }\n}\n\nexport const textInput =\n ieVersion && ieVersion <= 11\n ? TextInputIE\n : safariVersion && safariVersion < 5\n ? TextInputLegacySafari\n : operaVersion && operaVersion < 11\n ? TextInputLegacyOpera\n : firefoxVersion && firefoxVersion < 4\n ? TextInputLegacyFirefox\n : TextInput\n", "export const uniqueName = {\n init: function (element, valueAccessor) {\n if (valueAccessor()) {\n const name = 'ko_unique_' + ++uniqueName.currentIndex\n element.name = name\n }\n },\n currentIndex: 0\n}\n", "import { stringStartsWith, safeSetTimeout, tagNameLower, arrayForEach, selectExtensions } from '@tko/utils'\n\nimport { unwrap, dependencyDetection } from '@tko/observable'\n\nimport { applyBindingAccessorsToNode, BindingHandler } from '@tko/bind'\n\nimport { MSIE_REGEX } from './textInput'\n\nexport class value extends BindingHandler {\n static get after() {\n return ['options', 'foreach', 'template']\n }\n\n override $element: HTMLInputElement\n elementValueBeforeEvent: any\n propertyChangeFired: any\n propertyChangedFired: boolean\n updateFromModel: any\n constructor(...args: [any]) {\n super(...args)\n\n // If the value binding is placed on a radio/checkbox, then just pass through to checkedValue and quit\n if (this.isCheckboxOrRadio) {\n applyBindingAccessorsToNode(this.$element, { checkedValue: this.valueAccessor })\n return\n }\n\n this.propertyChangedFired = false\n this.elementValueBeforeEvent = null\n\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\n arrayForEach(this.eventsToCatch, eventName => this.registerEvent(eventName))\n\n if (this.isInput && this.$element.type === 'file') {\n this.updateFromModel = this.updateFromModelForFile\n } else {\n this.updateFromModel = this.updateFromModelForValue\n }\n\n this.computed('updateFromModel')\n }\n\n get eventsToCatch() {\n const requestedEventsToCatch = this.allBindings.get('valueUpdate')\n const requestedEventsArray =\n typeof requestedEventsToCatch === 'string' ? [requestedEventsToCatch] : requestedEventsToCatch || []\n return [...new Set(['change', ...requestedEventsArray])]\n }\n\n get isInput() {\n return tagNameLower(this.$element) === 'input'\n }\n\n get isCheckboxOrRadio() {\n const e = this.$element\n return this.isInput && (e.type == 'checkbox' || e.type == 'radio')\n }\n\n // Workaround for https://github.com/SteveSanderson/knockout/issues/122\n // IE doesn't fire \"change\" events on textboxes if the user selects a value from its autocomplete list\n get ieAutoCompleteHackNeeded() {\n return (\n this.isInput\n && this.$element.type == 'text'\n && this.$element.autocomplete != 'off'\n && (!this.$element.form || this.$element.form.autocomplete != 'off')\n && MSIE_REGEX.test(window.navigator.userAgent) //IE detection (primarily for IE10/11)\n )\n }\n\n valueUpdateHandler() {\n this.elementValueBeforeEvent = null\n this.propertyChangedFired = false\n this.value = selectExtensions.readValue(this.$element)\n }\n\n registerEvent(eventName) {\n // The syntax \"after<eventname>\" means \"run the handler asynchronously after the event\"\n // This is useful, for example, to catch \"keydown\" events after the browser has updated the control\n // (otherwise, selectExtensions.readValue(this) will receive the control's value *before* the key event)\n let handler = this.valueUpdateHandler.bind(this)\n if (stringStartsWith(eventName, 'after')) {\n handler = () => {\n // The elementValueBeforeEvent variable is non-null *only* during the brief gap between\n // a keyX event firing and the valueUpdateHandler running, which is scheduled to happen\n // at the earliest asynchronous opportunity. We store this temporary information so that\n // if, between keyX and valueUpdateHandler, the underlying model value changes separately,\n // we can overwrite that model value change with the value the user just typed. Otherwise,\n // techniques like rateLimit can trigger model changes at critical moments that will\n // override the user's inputs, causing keystrokes to be lost.\n this.elementValueBeforeEvent = selectExtensions.readValue(this.$element)\n safeSetTimeout(this.valueUpdateHandler.bind(this), 0)\n }\n eventName = eventName.substring(5 /* 'after'.length */)\n }\n this.addEventListener(eventName, handler)\n }\n\n updateFromModelForFile() {\n // For file input elements, can only write the empty string\n const newValue = unwrap(this.value)\n if (newValue === null || newValue === undefined || newValue === '') {\n this.$element.value = ''\n } else {\n dependencyDetection.ignore(this.valueUpdateHandler, this) // reset the model to match the element\n }\n }\n\n updateFromModelForValue() {\n const element = this.$element\n const newValue = unwrap(this.value)\n const elementValue = selectExtensions.readValue(element)\n\n if (this.elementValueBeforeEvent !== null && newValue === this.elementValueBeforeEvent) {\n safeSetTimeout(this.updateFromModel.bind(this), 0)\n return\n }\n\n if (newValue === elementValue && elementValue !== undefined) {\n return\n }\n\n if (tagNameLower(element) === 'select') {\n const allowUnset = this.allBindings.get('valueAllowUnset')\n selectExtensions.writeValue(element, newValue, allowUnset)\n\n if (!allowUnset && newValue !== selectExtensions.readValue(element)) {\n // If you try to set a model value that can't be represented in an already-populated dropdown, reject that change,\n // because you're not allowed to have a model value that disagrees with a visible UI selection.\n dependencyDetection.ignore(this.valueUpdateHandler, this)\n }\n } else {\n selectExtensions.writeValue(element, newValue)\n }\n }\n}\n", "import { unwrap } from '@tko/observable'\n\nexport const visible = {\n update: function (element, valueAccessor) {\n const value = unwrap(valueAccessor())\n const 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}\n\nexport const hidden = {\n update: function (element, valueAccessor) {\n visible.update.call(this, element, () => !unwrap(valueAccessor()))\n }\n}\n", "import { applyBindingsToDescendants } from '@tko/bind'\n\nimport type { BindingContext, AllBindings } from '@tko/bind'\n\nexport const using = {\n init: function (element, valueAccessor, _allBindings: AllBindings, _viewModel, bindingContext: BindingContext) {\n const innerContext = bindingContext.createChildContext(valueAccessor)\n applyBindingsToDescendants(innerContext, element)\n return { controlsDescendantBindings: true }\n },\n allowVirtualElements: true\n}\n", "import { 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'\n\nexport const 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"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["value", "options", "jQuery", "html", "value", "jQuery", "value", "childNodes", "setDomNodeChildren", "setDomNodeChildren", "html", "jQuery", "html", "jQuery", "setDomNodeChildren", "value", "value", "options", "subscribable", "value", "options2", "peek2", "value", "value", "options", "value", "value", "value", "options2", "isInitial", "options2", "value", "extenders", "value", "peek", "checkedValue", "modelValue", "bindingContext", "debounce", "throttle", "passive", "value", "value", "boundElementDomDataKey", "subscribable", "bindingContext", "observable", "options", "bindings", "boundElementDomDataKey", "options", "value", "value", "value", "bindingContext", "options", "selectedOptions", "value", "value", "bindingContext", "value", "w", "value", "bindingContext", "options"]
|
|
7
7
|
}
|