j-templates 6.0.23 → 6.0.24
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/Node/boundNode.js +1 -1
- package/Store/Tree/observableScope.d.ts +4 -4
- package/Store/Tree/observableScope.js +28 -30
- package/Store/index.d.ts +2 -0
- package/Store/index.js +3 -1
- package/Utils/list.d.ts +0 -1
- package/Utils/list.js +0 -7
- package/index.d.ts +1 -0
- package/index.js +3 -1
- package/jTemplates.js +1 -1
- package/jTemplates.js.map +1 -1
- package/package.json +1 -1
- package/web.export.d.ts +1 -1
- package/web.export.js +2 -1
package/jTemplates.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jTemplates.js","mappings":"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","sources":["webpack://j-templates/./src/DOM/createEventAssignment.ts","webpack://j-templates/./src/DOM/createPropertyAssignment.ts","webpack://j-templates/./src/DOM/domNodeConfig.ts","webpack://j-templates/./src/DOM/elements.ts","webpack://j-templates/./src/DOM/index.ts","webpack://j-templates/./src/DOM/svgElements.ts","webpack://j-templates/./src/DOM/window.ts","webpack://j-templates/./src/Node/boundNode.ts","webpack://j-templates/./src/Node/component.ts","webpack://j-templates/./src/Node/componentNode.ts","webpack://j-templates/./src/Node/elementNode.ts","webpack://j-templates/./src/Node/nodeConfig.ts","webpack://j-templates/./src/Node/nodeRef.ts","webpack://j-templates/./src/Store/Diff/diffAsync.ts","webpack://j-templates/./src/Store/Diff/diffSync.ts","webpack://j-templates/./src/Store/Diff/diffTree.ts","webpack://j-templates/./src/Store/Diff/diffWorker.ts","webpack://j-templates/./src/Store/Diff/workerQueue.ts","webpack://j-templates/./src/Store/Store/store.ts","webpack://j-templates/./src/Store/Store/storeAsync.ts","webpack://j-templates/./src/Store/Store/storeSync.ts","webpack://j-templates/./src/Store/Tree/observableNode.ts","webpack://j-templates/./src/Store/Tree/observableScope.ts","webpack://j-templates/./src/Store/index.ts","webpack://j-templates/./src/Utils/animation.ts","webpack://j-templates/./src/Utils/array.ts","webpack://j-templates/./src/Utils/asyncQueue.ts","webpack://j-templates/./src/Utils/decorators.ts","webpack://j-templates/./src/Utils/emitter.ts","webpack://j-templates/./src/Utils/index.ts","webpack://j-templates/./src/Utils/injector.ts","webpack://j-templates/./src/Utils/json.ts","webpack://j-templates/./src/Utils/jsonType.ts","webpack://j-templates/./src/Utils/list.ts","webpack://j-templates/./src/Utils/thread.ts","webpack://j-templates/./src/index.ts","webpack://j-templates/./src/web.export.ts","webpack://j-templates/webpack/bootstrap","webpack://j-templates/./src/web.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateEventAssignment = CreateEventAssignment;\nfunction AssignEvent(target, event) {\n let lastValue;\n return function Assign(value) {\n if (value !== lastValue) {\n lastValue && target.removeEventListener(event, lastValue);\n value && target.addEventListener(event, value);\n lastValue = value;\n }\n };\n}\nfunction DefaultAssignment(target, writeTo, next, event) {\n const value = next;\n writeTo[event] ??= AssignEvent(target, event);\n writeTo[event](value);\n}\nfunction CreateEventAssignment(target) {\n let priorKeys;\n const writeTo = {};\n return function AssignNext(next) {\n const nextKeys = next !== null ? Object.keys(next) : [];\n const keys = priorKeys === undefined ? nextKeys : nextKeys.concat(priorKeys);\n priorKeys = nextKeys;\n for (let x = 0; x < keys.length; x++)\n DefaultAssignment(target, writeTo, next && next[keys[x]], keys[x]);\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateNodeValueAssignment = CreateNodeValueAssignment;\nexports.CreatePropertyAssignment = CreatePropertyAssignment;\nconst jsonType_1 = require(\"../Utils/jsonType\");\nfunction AssignProp(target, prop) {\n let lastValue = target[prop];\n return function Assign(value) {\n if (value !== lastValue) {\n target[prop] = value;\n lastValue = value;\n }\n };\n}\nfunction CreateNodeValueAssignment(target) {\n let lastValue = target.nodeValue;\n return function AssignNodeValue(value) {\n if (value.nodeValue !== lastValue) {\n target.nodeValue = value.nodeValue;\n lastValue = value.nodeValue;\n }\n };\n}\nfunction CreateValueAssignment(target) {\n let lastValue = target.value;\n target.addEventListener('blur', function () {\n target.value = lastValue;\n });\n return function AssignValue(value) {\n if (value !== lastValue) {\n const start = target.selectionStart;\n const end = target.selectionEnd;\n target.value = value;\n if (target.ownerDocument.activeElement === target)\n target.setSelectionRange(start, end);\n lastValue = value;\n }\n };\n}\nfunction ValueAssignment(target, writeTo, next) {\n writeTo.value ??= target.nodeName === 'INPUT' ? CreateValueAssignment(target) : AssignProp(target, 'value');\n writeTo.value(next.value);\n}\nfunction DefaultAssignment(target, writeTo, next, prop) {\n const value = next[prop];\n writeTo[prop] ??= (0, jsonType_1.JsonType)(value) === 'value' ?\n AssignProp(target, prop) :\n CreatePropertyAssignment(target[prop], false);\n writeTo[prop](value);\n}\nfunction CreatePropertyAssignment(target, root = true) {\n let last;\n const writeTo = {};\n return function AssignNext(next) {\n if (next === last)\n return;\n last = next;\n const keys = Object.keys(next);\n for (let x = 0; x < keys.length; x++) {\n switch (root) {\n case true: {\n switch (keys[x]) {\n case 'value':\n ValueAssignment(target, writeTo, next);\n break;\n default:\n DefaultAssignment(target, writeTo, next, keys[x]);\n break;\n }\n break;\n }\n default:\n DefaultAssignment(target, writeTo, next, keys[x]);\n break;\n }\n }\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DOMNodeConfig = void 0;\nconst window_1 = require(\"./window\");\nconst list_1 = require(\"../Utils/list\");\nconst createPropertyAssignment_1 = require(\"./createPropertyAssignment\");\nconst createEventAssignment_1 = require(\"./createEventAssignment\");\nlet pendingUpdates = list_1.List.Create();\nlet updateScheduled = false;\nconst updateMs = 16;\nfunction processUpdates() {\n list_1.List.Add(pendingUpdates, null);\n const start = Date.now();\n let callback;\n while ((callback = list_1.List.Pop(pendingUpdates)))\n callback();\n if (pendingUpdates.size === 0)\n updateScheduled = false;\n else if (Date.now() - start < updateMs)\n processUpdates();\n else\n window_1.wndw.requestAnimationFrame(processUpdates);\n}\nexports.DOMNodeConfig = {\n createNode(type, namespace) {\n return namespace ?\n window_1.wndw.document.createElementNS(namespace, type) :\n window_1.wndw.document.createElement(type);\n },\n createTextNode(value = '') {\n return window_1.wndw.document.createTextNode(value);\n },\n scheduleUpdate(callback) {\n list_1.List.Add(pendingUpdates, callback);\n if (!updateScheduled) {\n updateScheduled = true;\n window_1.wndw.requestAnimationFrame(processUpdates);\n }\n },\n addListener(target, type, callback) {\n target.addEventListener(type, callback);\n },\n removeListener(target, type, callback) {\n target.removeEventListener(type, callback);\n },\n addChild(root, child) {\n root.appendChild(child);\n },\n addChildFirst(root, child) {\n exports.DOMNodeConfig.addChildBefore(root, root.firstChild, child);\n },\n addChildBefore(root, sibling, child) {\n if (!sibling) {\n exports.DOMNodeConfig.addChild(root, child);\n return;\n }\n if (child !== sibling)\n root.insertBefore(child, sibling);\n },\n addChildAfter(root, sibling, child) {\n if (!sibling) {\n exports.DOMNodeConfig.addChildFirst(root, child);\n return;\n }\n exports.DOMNodeConfig.addChildBefore(root, sibling.nextSibling, child);\n },\n removeChild(root, child) {\n root.removeChild(child);\n },\n remove(target) {\n target && target.parentNode && target.parentNode.removeChild(target);\n },\n setText(target, text) {\n target.textContent = text;\n },\n getAttribute(target, attribute) {\n return target.getAttribute(attribute);\n },\n setAttribute(target, attribute, value) {\n target.setAttribute(attribute, value);\n },\n createPropertyAssignment(target) {\n if (target.nodeType === Node.TEXT_NODE)\n return (0, createPropertyAssignment_1.CreateNodeValueAssignment)(target);\n return (0, createPropertyAssignment_1.CreatePropertyAssignment)(target);\n },\n createEventAssignment(target) {\n return (0, createEventAssignment_1.CreateEventAssignment)(target);\n },\n fireEvent(target, event, data) {\n var cEvent = new CustomEvent(event, data);\n target.dispatchEvent(cEvent);\n },\n getFirstChild(target) {\n return target.firstChild;\n },\n getLastChild(target) {\n return target.lastChild;\n },\n getNextSibling(target) {\n return target.nextSibling;\n },\n replaceChildren(target, children) {\n target.replaceChildren(...children);\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.div = div;\nexports.a = a;\nexports.ul = ul;\nexports.li = li;\nexports.br = br;\nexports.b = b;\nexports.span = span;\nexports.img = img;\nexports.video = video;\nexports.source = source;\nexports.input = input;\nexports.textarea = textarea;\nexports.select = select;\nexports.option = option;\nexports.h1 = h1;\nexports.h2 = h2;\nexports.h3 = h3;\nexports.p = p;\nexports.style = style;\nexports.button = button;\nexports.table = table;\nexports.tbody = tbody;\nexports.th = th;\nexports.tr = tr;\nexports.td = td;\nconst elementNode_1 = require(\"../Node/elementNode\");\nfunction div(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"div\", null, nodeDef, children);\n}\nfunction a(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"a\", null, nodeDef, children);\n}\nfunction ul(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"ul\", null, nodeDef, children);\n}\nfunction li(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"li\", null, nodeDef, children);\n}\nfunction br(nodeDef) {\n return elementNode_1.ElementNode.Create(\"br\", null, nodeDef, null);\n}\nfunction b(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"b\", null, nodeDef, children);\n}\nfunction span(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"span\", null, nodeDef, children);\n}\nfunction img(nodeDef) {\n return elementNode_1.ElementNode.Create(\"img\", null, nodeDef, null);\n}\nfunction video(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"video\", null, nodeDef, children);\n}\nfunction source(nodeDef) {\n return elementNode_1.ElementNode.Create(\"source\", null, nodeDef, null);\n}\nfunction input(nodeDef) {\n return elementNode_1.ElementNode.Create(\"input\", null, nodeDef, null);\n}\nfunction textarea(nodeDef) {\n return elementNode_1.ElementNode.Create(\"textarea\", null, nodeDef, null);\n}\nfunction select(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"select\", null, nodeDef, children);\n}\nfunction option(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"option\", null, nodeDef, children);\n}\nfunction h1(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"h1\", null, nodeDef, children);\n}\nfunction h2(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"h2\", null, nodeDef, children);\n}\nfunction h3(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"h3\", null, nodeDef, children);\n}\nfunction p(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"p\", null, nodeDef, children);\n}\nfunction style(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"style\", null, nodeDef, children);\n}\nfunction button(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"button\", null, nodeDef, children);\n}\nfunction table(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"table\", null, nodeDef, children);\n}\nfunction tbody(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"tbody\", null, nodeDef, children);\n}\nfunction th(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"th\", null, nodeDef, children);\n}\nfunction tr(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"tr\", null, nodeDef, children);\n}\nfunction td(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"td\", null, nodeDef, children);\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./elements\"), exports);\n__exportStar(require(\"./svgElements\"), exports);\n__exportStar(require(\"./createPropertyAssignment\"), exports);\n__exportStar(require(\"./createEventAssignment\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.svg = svg;\nexports.g = g;\nexports.circle = circle;\nconst elementNode_1 = require(\"../Node/elementNode\");\nconst svgNs = \"http://www.w3.org/2000/svg\";\nfunction svg(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"svg\", svgNs, nodeDef, children);\n}\nfunction g(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"g\", svgNs, nodeDef, children);\n}\nfunction circle(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"circle\", svgNs, nodeDef, children);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wndw = void 0;\nfunction jsdomWindow() {\n try {\n return require(\"jsdom\").JSDOM(\"\").window;\n }\n catch (err) {\n return undefined;\n }\n}\nexports.wndw = typeof window !== \"undefined\" ? window : jsdomWindow();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BoundNode = void 0;\nconst nodeConfig_1 = require(\"./nodeConfig\");\nconst observableScope_1 = require(\"../Store/Tree/observableScope\");\nvar BoundNode;\n(function (BoundNode) {\n function Init(boundNode) {\n const nodeDef = boundNode.nodeDef;\n if (nodeDef.props) {\n const scope = observableScope_1.ObservableScope.Create(nodeDef.props, true);\n boundNode.scopes ??= [];\n boundNode.scopes.push(scope);\n boundNode.assignProperties = nodeConfig_1.NodeConfig.createPropertyAssignment(boundNode.node);\n observableScope_1.ObservableScope.Watch(scope, function (scope) { ScheduleSetProperties(boundNode, scope); });\n const next = observableScope_1.ObservableScope.Value(scope);\n boundNode.assignProperties(next);\n }\n if (nodeDef.attrs) {\n const scope = observableScope_1.ObservableScope.Create(nodeDef.attrs);\n boundNode.scopes ??= [];\n boundNode.scopes.push(scope);\n observableScope_1.ObservableScope.Watch(scope, function (scope) { ScheduleSetAttributes(boundNode, scope); });\n SetAttributes(boundNode, observableScope_1.ObservableScope.Value(scope));\n }\n if (nodeDef.on) {\n const scope = observableScope_1.ObservableScope.Create(nodeDef.on);\n boundNode.scopes ??= [];\n boundNode.scopes.push(scope);\n boundNode.assignEvents = nodeConfig_1.NodeConfig.createEventAssignment(boundNode.node);\n observableScope_1.ObservableScope.Watch(scope, function (scope) { ScheduleSetEvents(boundNode, scope); });\n const next = observableScope_1.ObservableScope.Value(scope);\n boundNode.assignEvents(next);\n }\n }\n BoundNode.Init = Init;\n})(BoundNode || (exports.BoundNode = BoundNode = {}));\nfunction ScheduleSetProperties(node, scope) {\n if (node.setProperties)\n return;\n node.setProperties = true;\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n node.setProperties = false;\n if (node.destroyed)\n return;\n const next = observableScope_1.ObservableScope.Value(scope);\n node.assignProperties(next);\n });\n}\nfunction ScheduleSetAttributes(node, scope) {\n if (node.setAttributes)\n return;\n node.setAttributes = true;\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n node.setAttributes = false;\n if (node.destroyed)\n return;\n SetAttributes(node, observableScope_1.ObservableScope.Value(scope));\n });\n}\nfunction SetAttributes(node, attributes) {\n if (!attributes)\n return;\n for (var key in attributes) {\n var val = nodeConfig_1.NodeConfig.getAttribute(node.node, key);\n if (val !== attributes[key])\n nodeConfig_1.NodeConfig.setAttribute(node.node, key, attributes[key]);\n }\n}\nfunction ScheduleSetEvents(node, scope) {\n if (node.setEvents)\n return;\n node.setEvents = true;\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n node.setEvents = false;\n if (node.destroyed)\n return;\n const next = observableScope_1.ObservableScope.Value(scope);\n node.assignEvents(next);\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Component = void 0;\nconst nodeRef_1 = require(\"./nodeRef\");\nconst componentNode_1 = require(\"./componentNode\");\nconst decorators_1 = require(\"../Utils/decorators\");\nconst observableScope_1 = require(\"../Store/Tree/observableScope\");\nclass Component {\n get Injector() {\n return this.nodeRef.injector;\n }\n get Destroyed() {\n return this.nodeRef.destroyed;\n }\n get Scope() {\n return this.scope;\n }\n get Data() {\n return this.scope.Value;\n }\n get NodeRef() {\n return this.nodeRef;\n }\n get Templates() {\n return this.templates;\n }\n constructor(data, templates, nodeRef, componentEvents) {\n this.nodeRef = nodeRef;\n this.componentEvents = componentEvents;\n this.scope = new observableScope_1.ObservableScope(data);\n this.templates = templates || {};\n }\n Template() {\n return [];\n }\n Bound() { }\n Fire(event, data) {\n var eventCallback = this.componentEvents && this.componentEvents[event];\n eventCallback && eventCallback(data);\n }\n Destroy() {\n this.scope.Destroy();\n decorators_1.Destroy.All(this);\n }\n}\nexports.Component = Component;\n(function (Component) {\n function ToFunction(type, namespace, constructor) {\n return componentNode_1.ComponentNode.ToFunction(type, namespace, constructor);\n }\n Component.ToFunction = ToFunction;\n function Register(name, constructor) {\n const componentFunction = ToFunction(`${name}-component`, undefined, constructor);\n class WebComponent extends HTMLElement {\n constructor() {\n super();\n const shadowRoot = this.attachShadow({ mode: \"open\" });\n const node = componentFunction({});\n Attach(shadowRoot, node);\n }\n }\n customElements.define(name, WebComponent);\n }\n Component.Register = Register;\n function Attach(node, nodeRef) {\n nodeRef_1.NodeRef.Init(nodeRef);\n var rootRef = nodeRef_1.NodeRef.Wrap(node);\n nodeRef_1.NodeRef.AddChild(rootRef, nodeRef);\n }\n Component.Attach = Attach;\n})(Component || (exports.Component = Component = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ComponentNode = void 0;\nconst boundNode_1 = require(\"./boundNode\");\nconst nodeRef_1 = require(\"./nodeRef\");\nconst nodeConfig_1 = require(\"./nodeConfig\");\nconst component_1 = require(\"./component\");\nconst injector_1 = require(\"../Utils/injector\");\nconst decorators_1 = require(\"../Utils/decorators\");\nconst thread_1 = require(\"../Utils/thread\");\nconst list_1 = require(\"../Utils/list\");\nvar ComponentNode;\n(function (ComponentNode) {\n function Fire(event, data) {\n var eventCallback = this.componentEvents && this.componentEvents[event];\n eventCallback && eventCallback(data);\n }\n ComponentNode.Fire = Fire;\n function ToFunction(type, namespace, constructor) {\n return function (nodeDef, templates) {\n return Create(type, namespace, nodeDef, constructor, templates);\n };\n }\n ComponentNode.ToFunction = ToFunction;\n function Init(componentNode) {\n var nodeDef = componentNode.nodeDef;\n var events = nodeDef.on;\n nodeDef.on = null;\n componentNode.component = new componentNode.constructor(nodeDef.data, componentNode.templates, componentNode, events);\n SetChildren(componentNode);\n boundNode_1.BoundNode.Init(componentNode);\n }\n ComponentNode.Init = Init;\n})(ComponentNode || (exports.ComponentNode = ComponentNode = {}));\nfunction Create(type, namespace, nodeDef, constructor, templates) {\n var compNode = nodeRef_1.NodeRef.Create(type, namespace, nodeRef_1.NodeRefType.ComponentNode);\n compNode.nodeDef = nodeDef;\n compNode.constructor = constructor;\n compNode.templates = templates;\n return compNode;\n}\nfunction SetChildren(node) {\n if (decorators_1.PreReq.Has(node.component)) {\n AddPreReqTemplate(node).then(function () {\n AddTemplate(node, false);\n });\n }\n else\n AddTemplate(node, true);\n}\nfunction AddPreReqTemplate(node) {\n return new Promise(resolve => {\n (0, thread_1.Thread)(function () {\n const preNodes = injector_1.Injector.Scope(node.injector, decorators_1.PreReqTemplate.Get, node.component);\n (0, thread_1.Schedule)(function () {\n if (node.destroyed)\n return;\n nodeRef_1.NodeRef.InitAll(node, preNodes);\n });\n (0, thread_1.Thread)(function () {\n if (node.destroyed)\n return;\n for (var x = 0; x < preNodes.length; x++)\n nodeRef_1.NodeRef.AddChild(node, preNodes[x]);\n decorators_1.PreReq.All(node.component).then(function () {\n if (node.destroyed)\n return;\n for (var x = 0; x < preNodes.length; x++)\n nodeRef_1.NodeRef.Destroy(preNodes[x]);\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n if (node.destroyed)\n return;\n for (var x = 0; x < preNodes.length; x++)\n nodeRef_1.NodeRef.DetachChild(node, preNodes[x]);\n resolve();\n });\n });\n });\n });\n });\n}\nfunction InvokeNodeTemplate(node) {\n const nodes = node.component.Template();\n if (!Array.isArray(nodes))\n return [nodes];\n return nodes;\n}\nfunction AddTemplate(node, init) {\n (0, thread_1.Thread)(function () {\n if (node.destroyed)\n return;\n const nodes = injector_1.Injector.Scope(node.injector, InvokeNodeTemplate, node);\n (0, thread_1.Schedule)(function () {\n nodeRef_1.NodeRef.InitAll(node, nodes);\n });\n (0, thread_1.Thread)(function () {\n if (node.destroyed)\n return;\n const list = list_1.List.Create();\n list_1.List.Add(list, {\n value: undefined,\n init: true,\n nodes\n });\n if (init)\n nodeRef_1.NodeRef.ReconcileChildren(node, list);\n else\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n if (node.destroyed)\n return;\n nodeRef_1.NodeRef.ReconcileChildren(node, list);\n });\n });\n if (node.component.Bound !== component_1.Component.prototype.Bound)\n (0, thread_1.After)(function () {\n nodeConfig_1.NodeConfig.scheduleUpdate(() => setTimeout(() => node.component.Bound(), 0));\n });\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ElementNode = void 0;\nconst observableScope_1 = require(\"../Store/Tree/observableScope\");\nconst injector_1 = require(\"../Utils/injector\");\nconst list_1 = require(\"../Utils/list\");\nconst thread_1 = require(\"../Utils/thread\");\nconst boundNode_1 = require(\"./boundNode\");\nconst nodeConfig_1 = require(\"./nodeConfig\");\nconst nodeRef_1 = require(\"./nodeRef\");\nconst valueDefault = [];\nvar ElementNode;\n(function (ElementNode) {\n function Create(type, namespace, nodeDef, children) {\n var elemNode = nodeRef_1.NodeRef.Create(type, namespace, nodeRef_1.NodeRefType.ElementNode);\n elemNode.nodeDef = nodeDef;\n elemNode.childrenFunc = children;\n return elemNode;\n }\n ElementNode.Create = Create;\n function Init(elementNode) {\n if (elementNode.childrenFunc) {\n var nodeDef = elementNode.nodeDef;\n if (nodeDef.data) {\n const dataScope = observableScope_1.ObservableScope.Create(nodeDef.data);\n const valueScope = observableScope_1.ObservableScope.Create(function () {\n let value = observableScope_1.ObservableScope.Value(dataScope);\n if (!value)\n return valueDefault;\n if (!Array.isArray(value))\n return [value];\n return value.slice();\n });\n elementNode.childNodes = new Set();\n elementNode.scopes ??= [];\n elementNode.scopes.push(dataScope, valueScope);\n observableScope_1.ObservableScope.Watch(valueScope, function () {\n ScheduleSetData(elementNode, valueScope);\n });\n SetData(elementNode, observableScope_1.ObservableScope.Value(valueScope), true);\n }\n else\n SetDefaultData(elementNode);\n }\n boundNode_1.BoundNode.Init(elementNode);\n }\n ElementNode.Init = Init;\n})(ElementNode || (exports.ElementNode = ElementNode = {}));\nfunction ScheduleSetData(node, scope) {\n if (node.setData)\n return;\n node.setData = true;\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n node.setData = false;\n if (node.destroyed)\n return;\n SetData(node, observableScope_1.ObservableScope.Value(scope));\n });\n}\nfunction SetDefaultData(node) {\n (0, thread_1.Synch)(function () {\n const nodes = injector_1.Injector.Scope(node.injector, CreateNodeArray, node.childrenFunc, true);\n if (nodes.length > 0) {\n nodeRef_1.NodeRef.InitAll(node, nodes);\n (0, thread_1.Thread)(function () {\n if (node.destroyed)\n return;\n const defaultNodeList = list_1.List.Create();\n list_1.List.Add(defaultNodeList, {\n value: null,\n init: true,\n nodes\n });\n nodeRef_1.NodeRef.ReconcileChildren(node, defaultNodeList);\n });\n }\n });\n}\nfunction GetDataValue(data) {\n return data.value;\n}\nfunction ReconcileNodeData(node, values) {\n const nextNodeList = list_1.List.Create();\n const currentNodeList = node.nodeList;\n const nodeMap = currentNodeList && list_1.List.ToNodeMap(currentNodeList, GetDataValue);\n for (let x = 0; x < values.length; x++) {\n let curNode = null;\n if (nodeMap) {\n const nodeArr = nodeMap.get(values[x]);\n if (nodeArr) {\n let y = nodeArr.length - 1;\n for (; y >= 0 && !curNode; y--) {\n curNode = nodeArr[y];\n nodeArr[y] = null;\n }\n }\n }\n if (curNode) {\n list_1.List.RemoveNode(currentNodeList, curNode);\n list_1.List.AddNode(nextNodeList, curNode);\n }\n else {\n curNode = list_1.List.Add(nextNodeList, {\n value: values[x],\n init: false,\n nodes: injector_1.Injector.Scope(node.injector, CreateNodeArray, node.childrenFunc, values[x])\n });\n }\n }\n let curNode = nextNodeList.head;\n while (curNode) {\n const data = curNode.data;\n !data.init && (0, thread_1.Schedule)(function () {\n if (node.destroyed || nextNodeList.size === 0)\n return;\n nodeRef_1.NodeRef.InitAll(node, data.nodes);\n data.init = true;\n });\n curNode = curNode.next;\n }\n if (currentNodeList) {\n let curDetach = currentNodeList.head;\n while (curDetach) {\n const data = curDetach.data;\n curDetach = curDetach.next;\n for (let x = 0; x < data.nodes.length; x++)\n node.childNodes.delete(data.nodes[x]);\n nodeRef_1.NodeRef.DestroyAll(data.nodes);\n }\n list_1.List.Clear(currentNodeList);\n }\n node.nodeList = nextNodeList;\n}\nfunction SetData(node, values, init = false) {\n (0, thread_1.Synch)(function () {\n ReconcileNodeData(node, values);\n const attachNodes = node.nodeList;\n const startSize = attachNodes.size;\n (0, thread_1.Thread)(function (async) {\n if (node.destroyed)\n return;\n if (init || !async)\n nodeRef_1.NodeRef.ReconcileChildren(node, attachNodes);\n else\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n if (node.destroyed || attachNodes.size !== startSize)\n return;\n nodeRef_1.NodeRef.ReconcileChildren(node, attachNodes);\n });\n });\n });\n}\nfunction CreateNodeArray(childrenFunc, value) {\n const newNodes = childrenFunc(value);\n if (typeof newNodes === \"string\" || !newNodes) {\n const textNode = nodeRef_1.NodeRef.Create(\"text\", null, nodeRef_1.NodeRefType.BoundNode);\n textNode.nodeDef = {\n props: function () {\n return { nodeValue: childrenFunc(value) };\n }\n };\n return [textNode];\n }\n if (Array.isArray(newNodes))\n return newNodes;\n return [newNodes];\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeConfig = void 0;\nconst domNodeConfig_1 = require(\"../DOM/domNodeConfig\");\nexports.NodeConfig = domNodeConfig_1.DOMNodeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeRef = exports.NodeRefType = void 0;\nconst nodeConfig_1 = require(\"./nodeConfig\");\nconst injector_1 = require(\"../Utils/injector\");\nconst boundNode_1 = require(\"./boundNode\");\nconst elementNode_1 = require(\"./elementNode\");\nconst componentNode_1 = require(\"./componentNode\");\nconst Store_1 = require(\"../Store\");\nvar NodeRefType;\n(function (NodeRefType) {\n NodeRefType[NodeRefType[\"NodeRef\"] = 0] = \"NodeRef\";\n NodeRefType[NodeRefType[\"BoundNode\"] = 1] = \"BoundNode\";\n NodeRefType[NodeRefType[\"ElementNode\"] = 2] = \"ElementNode\";\n NodeRefType[NodeRefType[\"ComponentNode\"] = 3] = \"ComponentNode\";\n})(NodeRefType || (exports.NodeRefType = NodeRefType = {}));\nvar NodeRef;\n(function (NodeRef) {\n function Wrap(node) {\n var nodeRef = Create(null, null, NodeRefType.NodeRef);\n nodeRef.node = node;\n nodeRef.childNodes = new Set();\n return nodeRef;\n }\n NodeRef.Wrap = Wrap;\n function Create(nodeType, namespace, type) {\n switch (type) {\n case NodeRefType.NodeRef:\n return {\n node: null,\n nodeType: nodeType,\n nodeNamespace: namespace,\n type: NodeRefType.NodeRef,\n injector: injector_1.Injector.Current() || new injector_1.Injector(),\n parent: null,\n childNodes: null,\n destroyed: false\n };\n case NodeRefType.BoundNode:\n return {\n node: null,\n nodeDef: null,\n nodeType: nodeType,\n nodeNamespace: namespace,\n type: NodeRefType.BoundNode,\n injector: injector_1.Injector.Current() || new injector_1.Injector(),\n parent: null,\n childNodes: null,\n destroyed: false,\n lastEvents: null,\n setProperties: false,\n assignProperties: null,\n assignEvents: null,\n setAttributes: false,\n setEvents: false,\n scopes: null\n };\n case NodeRefType.ElementNode:\n return {\n node: null,\n nodeDef: null,\n nodeType: nodeType,\n nodeNamespace: namespace,\n type: NodeRefType.ElementNode,\n injector: injector_1.Injector.Current() || new injector_1.Injector(),\n parent: null,\n childNodes: null,\n destroyed: false,\n lastEvents: null,\n setProperties: false,\n assignProperties: null,\n assignEvents: null,\n setAttributes: false,\n setEvents: false,\n childrenFunc: null,\n nodeList: null,\n setData: false,\n scopes: null\n };\n case NodeRefType.ComponentNode:\n return {\n node: null,\n nodeDef: null,\n nodeType: nodeType,\n nodeNamespace: namespace,\n type: NodeRefType.ComponentNode,\n injector: injector_1.Injector.Current() || new injector_1.Injector(),\n parent: null,\n childNodes: null,\n destroyed: false,\n setProperties: false,\n assignProperties: null,\n assignEvents: null,\n setAttributes: false,\n setEvents: false,\n component: null,\n componentEvents: null,\n scopes: null\n };\n }\n }\n NodeRef.Create = Create;\n function Init(nodeRef) {\n if (nodeRef.node)\n return;\n nodeRef.node = nodeRef.nodeType === 'text' ? nodeConfig_1.NodeConfig.createTextNode() : nodeConfig_1.NodeConfig.createNode(nodeRef.nodeType, nodeRef.nodeNamespace);\n nodeRef.childNodes = nodeRef.nodeType !== 'text' ? [] : null;\n switch (nodeRef.type) {\n case NodeRefType.BoundNode:\n boundNode_1.BoundNode.Init(nodeRef);\n break;\n case NodeRefType.ElementNode:\n elementNode_1.ElementNode.Init(nodeRef);\n break;\n case NodeRefType.ComponentNode:\n componentNode_1.ComponentNode.Init(nodeRef);\n break;\n }\n }\n NodeRef.Init = Init;\n function AddChildToNode(parentNode, child) {\n if (Array.isArray(parentNode.childNodes))\n parentNode.childNodes.push(child);\n else\n parentNode.childNodes.add(child);\n }\n function InitAll(parentNode, nodeRefs) {\n for (var x = 0; x < nodeRefs.length; x++) {\n nodeRefs[x].parent = parentNode;\n AddChildToNode(parentNode, nodeRefs[x]);\n Init(nodeRefs[x]);\n }\n }\n NodeRef.InitAll = InitAll;\n function AddChild(node, child) {\n child.parent = node;\n AddChildToNode(node, child);\n nodeConfig_1.NodeConfig.addChild(node.node, child.node);\n }\n NodeRef.AddChild = AddChild;\n function AddChildAfter(node, currentChild, newChild) {\n if (currentChild && currentChild.parent !== node)\n throw \"currentChild is not valid\";\n newChild.parent = node;\n AddChildToNode(node, newChild);\n nodeConfig_1.NodeConfig.addChildAfter(node.node, currentChild && currentChild.node, newChild.node);\n }\n NodeRef.AddChildAfter = AddChildAfter;\n function ReconcileChildren(node, nextChildren) {\n const rootNode = node.node;\n if (nextChildren.size === 0) {\n nodeConfig_1.NodeConfig.replaceChildren(rootNode, []);\n return;\n }\n let priorNode;\n let curDataNode = nextChildren?.head;\n let insert = false;\n let remove = false;\n while (curDataNode) {\n for (let x = 0; x < curDataNode.data.nodes.length; x++) {\n const actualNode = priorNode ? nodeConfig_1.NodeConfig.getNextSibling(priorNode) : nodeConfig_1.NodeConfig.getFirstChild(rootNode);\n const virtualNode = curDataNode.data.nodes[x];\n const expectedNode = virtualNode.node;\n if (actualNode !== expectedNode) {\n nodeConfig_1.NodeConfig.addChildBefore(rootNode, actualNode, expectedNode);\n !remove && insert && actualNode && nodeConfig_1.NodeConfig.removeChild(rootNode, actualNode);\n remove = insert;\n insert = true;\n }\n else {\n insert = false;\n remove = false;\n }\n priorNode = expectedNode;\n }\n curDataNode = curDataNode.next;\n }\n let lastChild = nodeConfig_1.NodeConfig.getLastChild(rootNode);\n while (priorNode && priorNode !== lastChild) {\n nodeConfig_1.NodeConfig.removeChild(rootNode, lastChild);\n lastChild = nodeConfig_1.NodeConfig.getLastChild(rootNode);\n }\n }\n NodeRef.ReconcileChildren = ReconcileChildren;\n function DetachChild(node, child) {\n if (!Array.isArray(node.childNodes) && node.childNodes.delete(child)) {\n nodeConfig_1.NodeConfig.removeChild(node.node, child.node);\n child.parent = null;\n }\n }\n NodeRef.DetachChild = DetachChild;\n function Destroy(node) {\n if (node.destroyed)\n return;\n node.destroyed = true;\n if (Array.isArray(node.childNodes))\n for (let x = 0; x < node.childNodes.length; x++)\n Destroy(node.childNodes[x]);\n else\n node.childNodes?.forEach(Destroy);\n switch (node.type) {\n case NodeRefType.ComponentNode:\n node.component?.Destroy();\n case NodeRefType.ElementNode:\n node.assignEvents?.(null);\n case NodeRefType.BoundNode:\n for (let x = 0; node.scopes && x < node.scopes.length; x++)\n Store_1.ObservableScope.Destroy(node.scopes[x]);\n }\n node.node = null;\n }\n NodeRef.Destroy = Destroy;\n function DestroyAll(nodes) {\n for (let x = 0; x < nodes.length; x++)\n Destroy(nodes[x]);\n }\n NodeRef.DestroyAll = DestroyAll;\n})(NodeRef || (exports.NodeRef = NodeRef = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiffAsync = void 0;\nconst workerQueue_1 = require(\"./workerQueue\");\nconst diffWorker_1 = require(\"./diffWorker\");\nclass DiffAsync {\n constructor(keyFunc) {\n this.workerQueue = new workerQueue_1.WorkerQueue(diffWorker_1.DiffWorker.Create());\n this.workerQueue.Push({ method: \"create\", arguments: keyFunc ? [keyFunc.toString()] : [] });\n }\n async DiffPath(path, value) {\n return await this.workerQueue.Push({ method: \"diffpath\", arguments: [path, value] });\n }\n async DiffBatch(data) {\n return await this.workerQueue.Push({ method: \"diffbatch\", arguments: [data] });\n }\n Destroy() {\n this.workerQueue.Destroy();\n }\n}\nexports.DiffAsync = DiffAsync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiffSync = void 0;\nconst json_1 = require(\"../../Utils/json\");\nconst diffTree_1 = require(\"./diffTree\");\nconst diffCnstr = (0, diffTree_1.DiffTreeFactory)(json_1.JsonDiffFactory);\nclass DiffSync {\n constructor(keyFunc) {\n this.diffTree = new diffCnstr(keyFunc);\n }\n DiffPath(path, value) {\n return this.diffTree.DiffPath(path, value);\n }\n DiffBatch(data) {\n return this.diffTree.DiffBatch(data);\n }\n}\nexports.DiffSync = DiffSync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiffTreeFactory = DiffTreeFactory;\nfunction DiffTreeFactory(jsonDiffFactory, worker) {\n const { JsonDiff, JsonType, JsonDeepClone } = jsonDiffFactory();\n const ctx = this;\n if (worker && ctx) {\n let diffTree = null;\n ctx.onmessage = function (event) {\n const data = event.data;\n switch (data.method) {\n case \"create\": {\n const keyFunc = data.arguments[0]\n ? eval(data.arguments[0])\n : undefined;\n diffTree = new DiffTree(keyFunc);\n ctx.postMessage(null);\n break;\n }\n case \"diffpath\": {\n const diff = diffTree.DiffPath(data.arguments[0], data.arguments[1]);\n ctx.postMessage(diff);\n break;\n }\n case \"diffbatch\": {\n const diff = diffTree.DiffBatch(data.arguments[0]);\n ctx.postMessage(diff);\n break;\n }\n case \"getpath\": {\n const ret = diffTree.GetPath(data.arguments[0]);\n ctx.postMessage(ret);\n break;\n }\n }\n };\n }\n function FlattenValue(root, value, keyFunc) {\n const type = JsonType(value);\n switch (type) {\n case \"array\":\n const typedArray = value;\n for (let x = 0; x < typedArray.length; x++)\n FlattenValue(root, typedArray[x], keyFunc);\n break;\n case \"object\":\n const typedObject = value;\n const key = keyFunc(typedObject);\n if (key)\n root[key] = typedObject;\n const keys = Object.keys(typedObject);\n for (let x = 0; x < keys.length; x++)\n FlattenValue(root, typedObject[keys[x]], keyFunc);\n }\n return root;\n }\n function GetPathValue(source, path) {\n if (path === \"\")\n return source;\n const parts = path.split(\".\");\n let curr = source;\n for (let x = 0; x < parts.length; x++)\n curr = curr[parts[x]];\n return curr;\n }\n function SetPathValue(source, path, value) {\n if (path.length === 0)\n return;\n let curr = source;\n let x = 0;\n for (; x < path.length - 1; x++)\n curr = curr[path[x]];\n curr[path[x]] = value;\n }\n function ResolveKeyPath(source, path, keyFunc) {\n const parts = path.split('.');\n const pathValues = new Array(parts.length - 1);\n let curr = source;\n for (let x = 0; x < parts.length - 1; x++) {\n curr = curr[parts[x]];\n pathValues[x] = curr;\n }\n let y = pathValues.length - 1;\n for (; y >= 0 && !(JsonType(pathValues[y]) === 'object' && keyFunc(pathValues[y])); y--) { }\n if (y >= 0) {\n const key = keyFunc(pathValues[y]);\n parts.splice(0, y + 1, key);\n return parts.join('.');\n }\n return path;\n }\n function UpdateSource(source, path, value, keyFunc) {\n const diffResult = [];\n if (keyFunc) {\n const keyPath = ResolveKeyPath(source, path, keyFunc);\n if (keyPath !== path) {\n const keyDiffResult = UpdateSource(source, keyPath, value, keyFunc);\n diffResult.push(...keyDiffResult);\n }\n }\n const sourceValue = GetPathValue(source, path);\n JsonDiff(value, sourceValue, path, diffResult);\n if (keyFunc) {\n let flattened = {};\n flattened = FlattenValue(flattened, value, keyFunc);\n flattened = JsonDeepClone(flattened);\n const keys = Object.keys(flattened);\n for (let x = 0; x < keys.length; x++)\n JsonDiff(flattened[keys[x]], source[keys[x]], keys[x], diffResult);\n }\n const filteredDiffResult = diffResult.filter((diff) => diff.value !== undefined);\n for (let x = 0; x < filteredDiffResult.length; x++) {\n SetPathValue(source, filteredDiffResult[x].path, filteredDiffResult[x].value);\n }\n return diffResult;\n }\n class DiffTree {\n constructor(keyFunc) {\n this.keyFunc = keyFunc;\n this.rootState = {};\n }\n DiffBatch(data) {\n const results = data\n .map(({ path, value }) => this.DiffPath(path, value))\n .flat(1);\n return results;\n }\n DiffPath(path, value) {\n return UpdateSource(this.rootState, path, value, this.keyFunc);\n }\n GetPath(path) {\n return GetPathValue(this.rootState, path);\n }\n }\n return DiffTree;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiffWorker = void 0;\nconst json_1 = require(\"../../Utils/json\");\nconst diffTree_1 = require(\"./diffTree\");\nvar DiffWorker;\n(function (DiffWorker) {\n let workerConstructor = null;\n let workerParameter = null;\n if (typeof Worker !== \"undefined\") {\n workerConstructor = Worker;\n workerParameter = URL.createObjectURL(new Blob([`(${diffTree_1.DiffTreeFactory}).call(this, (${json_1.JsonDiffFactory}), true)`]));\n }\n function Create() {\n if (!workerConstructor)\n throw \"Worker is not available\";\n return new workerConstructor(workerParameter);\n }\n DiffWorker.Create = Create;\n})(DiffWorker || (exports.DiffWorker = DiffWorker = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WorkerQueue = void 0;\nconst list_1 = require(\"../../Utils/list\");\nclass WorkerQueue {\n constructor(worker) {\n this.worker = worker;\n this.callbacks = list_1.List.Create();\n this.worker.onerror = (err) => {\n const cb = list_1.List.Pop(this.callbacks);\n cb && cb(null, err);\n };\n this.worker.onmessage = (message) => {\n const cb = list_1.List.Pop(this.callbacks);\n cb && cb(message.data);\n };\n }\n Push(message) {\n return new Promise((resolve, reject) => {\n list_1.List.Add(this.callbacks, function (data, err) {\n if (err)\n reject(err);\n else\n resolve(data);\n });\n this.worker.postMessage(message);\n });\n }\n Destroy() {\n this.worker.terminate();\n }\n}\nexports.WorkerQueue = WorkerQueue;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Store = void 0;\nconst observableNode_1 = require(\"../Tree/observableNode\");\nclass Store {\n constructor(keyFunc) {\n this.keyFunc = keyFunc;\n this.rootMap = new Map();\n const aliasFunc = keyFunc &&\n ((value) => {\n const key = keyFunc(value);\n if (key === undefined)\n return undefined;\n const rootObject = this.rootMap.get(key);\n if (rootObject === undefined)\n throw `No root object found for key: ${key}`;\n const rootValue = rootObject[observableNode_1.GET_OBSERVABLE_VALUE];\n const alias = rootValue[key];\n return alias;\n });\n this.createNode = aliasFunc\n ? observableNode_1.ObservableNode.CreateFactory(aliasFunc)\n : observableNode_1.ObservableNode.Create;\n }\n Get(id, defaultValue) {\n let result = this.rootMap.get(id);\n if (result === undefined) {\n result = this.createNode({ [id]: defaultValue });\n this.rootMap.set(id, result);\n }\n return result[id];\n }\n UpdateRootMap(results) {\n for (let x = 0; x < results.length;) {\n const root = results[x].path[0];\n const startIndex = x;\n while (x < results.length && results[x].path[0] === root)\n x++;\n const rootGroup = results.slice(startIndex, x);\n this.UpdateRootObject(rootGroup[0].path[0], rootGroup);\n }\n }\n UpdateRootObject(rootPath, results) {\n const rootObject = this.rootMap.get(rootPath);\n if (rootObject === undefined) {\n if (results.length > 1 || results[0].path.length > 1)\n throw `Unable to initialize root path ${rootPath} with ${results.length} results and initial path ${results[0].path}`;\n const newRootObject = this.createNode({ [rootPath]: results[0].value });\n this.rootMap.set(rootPath, newRootObject);\n return;\n }\n observableNode_1.ObservableNode.ApplyDiff(rootObject, results);\n }\n}\nexports.Store = Store;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StoreAsync = void 0;\nconst asyncQueue_1 = require(\"../../Utils/asyncQueue\");\nconst json_1 = require(\"../../Utils/json\");\nconst diffAsync_1 = require(\"../Diff/diffAsync\");\nconst observableNode_1 = require(\"../Tree/observableNode\");\nconst store_1 = require(\"./store\");\nclass StoreAsync extends store_1.Store {\n constructor(keyFunc) {\n super(keyFunc);\n this.queue = new asyncQueue_1.AsyncQueue();\n this.diff = new diffAsync_1.DiffAsync(keyFunc);\n }\n async Write(data, key) {\n await this.queue.Next(async () => {\n key = key || this.keyFunc?.(data);\n if (!key)\n throw \"No key provided for data\";\n const diffResult = await this.diff.DiffPath(key, data);\n this.UpdateRootMap(diffResult);\n });\n }\n async Patch(key, patch) {\n await this.queue.Next(async () => {\n const value = this.Get(key);\n if (value === undefined)\n throw \"Unable to patch undefined value\";\n const json = value.toJSON();\n const mergedJson = (0, json_1.JsonMerge)(json, patch);\n const diffResult = await this.diff.DiffPath(key, mergedJson);\n this.UpdateRootMap(diffResult);\n });\n }\n async Push(key, ...data) {\n await this.queue.Next(async () => {\n const arr = this.Get(key);\n const batch = data.map(function (d, i) {\n return {\n path: `${key}.${arr.length + i}`,\n value: d,\n };\n });\n const diffResult = await this.diff.DiffBatch(batch);\n this.UpdateRootMap(diffResult);\n });\n }\n async Splice(key, start, deleteCount, ...items) {\n return await this.queue.Next(async () => {\n const arr = this.Get(key);\n const arrValue = arr[observableNode_1.GET_OBSERVABLE_VALUE];\n const arrCopy = arrValue.slice();\n const spliceResult = (0, json_1.JsonDeepClone)(arrCopy.splice(start, deleteCount, ...items));\n const diffResult = await this.diff.DiffPath(key, arrCopy);\n this.UpdateRootMap(diffResult);\n return spliceResult;\n });\n }\n Destroy() {\n this.queue.Stop();\n this.diff.Destroy();\n }\n}\nexports.StoreAsync = StoreAsync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StoreSync = void 0;\nconst json_1 = require(\"../../Utils/json\");\nconst diffSync_1 = require(\"../Diff/diffSync\");\nconst observableNode_1 = require(\"../Tree/observableNode\");\nconst store_1 = require(\"./store\");\nclass StoreSync extends store_1.Store {\n constructor(keyFunc) {\n super(keyFunc);\n this.diff = new diffSync_1.DiffSync(keyFunc);\n }\n Write(data, key) {\n key = key || this.keyFunc?.(data);\n if (!key)\n throw \"No key provided for data\";\n const diffResult = this.diff.DiffPath(key, data);\n this.UpdateRootMap(diffResult);\n }\n Patch(key, patch) {\n const value = this.Get(key);\n if (value === undefined)\n throw \"Unable to patch undefined value\";\n const json = value.toJSON();\n const mergedJson = (0, json_1.JsonMerge)(json, patch);\n const diffResult = this.diff.DiffPath(key, mergedJson);\n this.UpdateRootMap(diffResult);\n }\n Push(key, ...data) {\n const arr = this.Get(key);\n const batch = data.map(function (d, i) {\n return {\n path: `${key}.${arr.length + i}`,\n value: d,\n };\n });\n const diffResult = this.diff.DiffBatch(batch);\n this.UpdateRootMap(diffResult);\n }\n Splice(key, start, deleteCount, ...items) {\n const arr = this.Get(key);\n const arrValue = arr[observableNode_1.GET_OBSERVABLE_VALUE];\n const arrCopy = arrValue.slice();\n const spliceResult = (0, json_1.JsonDeepClone)(arrCopy.splice(start, deleteCount, ...items));\n const diffResult = this.diff.DiffPath(key, arrCopy);\n this.UpdateRootMap(diffResult);\n return spliceResult;\n }\n}\nexports.StoreSync = StoreSync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObservableNode = exports.GET_TO_JSON = exports.GET_OBSERVABLE_VALUE = exports.IS_OBSERVABLE_NODE = void 0;\nconst json_1 = require(\"../../Utils/json\");\nconst jsonType_1 = require(\"../../Utils/jsonType\");\nconst observableScope_1 = require(\"./observableScope\");\nexports.IS_OBSERVABLE_NODE = \"____isObservableNode\";\nexports.GET_OBSERVABLE_VALUE = \"____getObservableValue\";\nexports.GET_TO_JSON = \"toJSON\";\nconst proxyCache = new WeakMap();\nconst scopeCache = new WeakMap();\nfunction getOwnPropertyDescriptor(target, prop) {\n const descriptor = Object.getOwnPropertyDescriptor(target, prop);\n return {\n ...descriptor,\n configurable: true,\n };\n}\nfunction getOwnPropertyDescriptorArray(target, prop) {\n const descriptor = Object.getOwnPropertyDescriptor(target, prop);\n return {\n ...descriptor,\n configurable: true,\n };\n}\nfunction has(value, prop) {\n return Object.hasOwn(value, prop);\n}\nfunction hasArray(value, prop) {\n return Object.hasOwn(value, prop);\n}\nfunction ownKeys(value) {\n return Object.keys(value);\n}\nfunction ownKeysArray(value) {\n return Object.keys(value);\n}\nfunction UnwrapProxy(value) {\n const type = (0, jsonType_1.JsonType)(value);\n if (type === \"value\")\n return value;\n if (value[exports.IS_OBSERVABLE_NODE] === true)\n return value[exports.GET_OBSERVABLE_VALUE];\n switch (type) {\n case \"object\": {\n const keys = Object.keys(value);\n for (let x = 0; x < keys.length; x++)\n value[keys[x]] = UnwrapProxy(value[keys[x]]);\n }\n case \"array\": {\n for (let x = 0; x < value.length; x++)\n value[x] = UnwrapProxy(value[x]);\n }\n }\n return value;\n}\nlet applyingDiff = false;\nfunction CreateProxyFactory(alias) {\n function CreateProxy(value) {\n value = UnwrapProxy(value);\n return CreateProxyFromValue(value);\n }\n function ToJsonCopy(value) {\n const type = (0, jsonType_1.JsonType)(value);\n switch (type) {\n case \"array\": {\n const typedValue = value;\n const proxy = CreateProxy(typedValue);\n return proxy.map(ToJsonCopy);\n break;\n }\n case \"object\": {\n const typedValue = alias(value) ?? value;\n const proxy = CreateProxy(typedValue);\n const keys = Object.keys(proxy);\n const copy = {};\n for (let x = 0; x < keys.length; x++)\n copy[keys[x]] = ToJsonCopy(typedValue[keys[x]]);\n return copy;\n }\n default:\n return value;\n }\n }\n function ToJsonDefault(value) {\n return value;\n }\n const ToJson = alias !== undefined ? ToJsonCopy : ToJsonDefault;\n const readOnly = alias !== undefined;\n function CreateArrayProxy(value) {\n const scope = observableScope_1.ObservableScope.Create(() => value);\n const proxy = new Proxy(value, {\n get: ArrayProxyGetter,\n set: ArrayProxySetter,\n has: hasArray,\n ownKeys: ownKeysArray,\n getOwnPropertyDescriptor: getOwnPropertyDescriptorArray,\n });\n scopeCache.set(value, scope);\n proxyCache.set(value, proxy);\n return proxy;\n }\n function CreateObjectProxy(value) {\n const scope = observableScope_1.ObservableScope.Create(() => value);\n const proxy = new Proxy(value, {\n get: ObjectProxyGetter,\n set: ObjectProxySetter,\n has,\n ownKeys,\n getOwnPropertyDescriptor,\n });\n scopeCache.set(value, scope);\n proxyCache.set(value, proxy);\n return proxy;\n }\n function ArrayProxySetter(array, prop, value) {\n if (readOnly && !applyingDiff)\n throw `Object is readonly`;\n if (prop === exports.IS_OBSERVABLE_NODE)\n throw `Cannot assign read-only property: ${exports.IS_OBSERVABLE_NODE}`;\n value = UnwrapProxy(value);\n array[prop] = value;\n const scope = scopeCache.get(array);\n observableScope_1.ObservableScope.Update(scope);\n return true;\n }\n function ArrayProxyGetter(array, prop) {\n if (prop === exports.IS_OBSERVABLE_NODE)\n return true;\n if (readOnly && !applyingDiff)\n switch (prop) {\n case \"push\":\n case \"unshift\":\n case \"splice\":\n case \"pop\":\n case \"shift\":\n case \"sort\":\n case \"reverse\":\n if (readOnly && !applyingDiff)\n throw `Object is readonly`;\n }\n const scope = scopeCache.get(array);\n array = observableScope_1.ObservableScope.Value(scope);\n switch (prop) {\n case exports.GET_TO_JSON:\n return function () {\n return ToJson(array);\n };\n case exports.GET_OBSERVABLE_VALUE:\n return array;\n default: {\n const arrayValue = array[prop];\n if (typeof prop === \"symbol\")\n return arrayValue;\n if (typeof arrayValue === \"function\")\n return function ArrayFunction(...args) {\n const proxyArray = prop === \"slice\" ? array.slice(...args) : array.slice();\n for (let x = 0; x < proxyArray.length; x++)\n proxyArray[x] = CreateProxyFromValue(proxyArray[x]);\n let result = prop === \"slice\"\n ? proxyArray\n : proxyArray[prop](...args);\n switch (prop) {\n case \"push\":\n case \"unshift\":\n case \"splice\":\n case \"pop\":\n case \"shift\":\n case \"sort\":\n case \"reverse\":\n array.length = proxyArray.length;\n for (let x = 0; x < proxyArray.length; x++)\n array[x] = UnwrapProxy(proxyArray[x]);\n observableScope_1.ObservableScope.Update(scope);\n break;\n }\n return result;\n };\n const proxy = CreateProxyFromValue(arrayValue);\n return proxy;\n }\n }\n }\n function ObjectProxySetter(object, prop, value) {\n if (readOnly && !applyingDiff)\n throw `Object is readonly`;\n if (prop === exports.IS_OBSERVABLE_NODE)\n throw `Cannot assign read-only property: ${exports.IS_OBSERVABLE_NODE}`;\n const scope = scopeCache.get(object);\n value = UnwrapProxy(value);\n if (applyingDiff) {\n object[prop] = value;\n observableScope_1.ObservableScope.Update(scope);\n }\n else {\n applyingDiff = true;\n const diff = (0, json_1.JsonDiff)(value, object[prop]);\n for (let x = 0; x < diff.length; x++) {\n if (diff[x].path.length === 0) {\n const proxy = proxyCache.get(object);\n proxy[prop] = diff[x].value;\n }\n else {\n const path = diff[x].path;\n let curr = object[prop];\n let y = 0;\n for (; y < path.length - 1; y++)\n curr = curr[path[y]];\n const target = proxyCache.get(curr) ?? curr;\n target[path[y]] = diff[x].value;\n }\n }\n applyingDiff = false;\n }\n return true;\n }\n function ObjectProxyGetter(object, prop) {\n if (prop === exports.IS_OBSERVABLE_NODE)\n return true;\n const scope = scopeCache.get(object);\n object = observableScope_1.ObservableScope.Value(scope);\n switch (prop) {\n case exports.GET_TO_JSON:\n return function () {\n return ToJson(object);\n };\n case exports.GET_OBSERVABLE_VALUE:\n return object;\n default: {\n const proxyValue = object[prop];\n if (typeof prop === \"symbol\")\n return proxyValue;\n const proxy = CreateProxyFromValue(proxyValue);\n return proxy;\n }\n }\n }\n function CreateProxyFromValue(value) {\n const type = (0, jsonType_1.JsonType)(value);\n switch (type) {\n case \"object\": {\n let proxy = proxyCache.get(value) ?? CreateObjectProxy(value);\n if (alias !== undefined) {\n const aliasValue = alias(proxy);\n if (aliasValue !== undefined)\n proxy = proxyCache.get(aliasValue) ?? CreateObjectProxy(aliasValue);\n }\n return proxy;\n }\n case \"array\": {\n const proxy = proxyCache.get(value) ?? CreateArrayProxy(value);\n observableScope_1.ObservableScope.Touch(scopeCache.get(value));\n return proxy;\n }\n default:\n return value;\n }\n }\n return CreateProxy;\n}\nconst DefaultCreateProxy = CreateProxyFactory();\nvar ObservableNode;\n(function (ObservableNode) {\n function Create(value) {\n return DefaultCreateProxy(value);\n }\n ObservableNode.Create = Create;\n function Touch(value) {\n const scope = scopeCache.get(value);\n observableScope_1.ObservableScope.Update(scope);\n }\n ObservableNode.Touch = Touch;\n function EnableDiff(value) {\n applyingDiff = value;\n }\n ObservableNode.EnableDiff = EnableDiff;\n function ApplyDiff(rootNode, diffResult) {\n const root = rootNode[exports.GET_OBSERVABLE_VALUE];\n const pathTuples = [[\"\", root]];\n for (let x = 0; x < diffResult.length; x++) {\n const { path, value } = diffResult[x];\n let y = 0;\n for (; y < path.length - 1; y++) {\n const property = path[y];\n const value = pathTuples[y][1];\n const tupleIndex = y + 1;\n if (pathTuples.length <= tupleIndex)\n pathTuples.push([property, value[property]]);\n else if (pathTuples[tupleIndex][0] !== property) {\n pathTuples[tupleIndex][0] = property;\n pathTuples[tupleIndex][1] = value[property];\n const next = tupleIndex + 1;\n if (next < pathTuples.length)\n pathTuples[next][0] = null;\n }\n }\n const assignValue = pathTuples[y][1];\n assignValue[path[y]] = value;\n ObservableNode.Touch(assignValue);\n }\n }\n ObservableNode.ApplyDiff = ApplyDiff;\n function CreateFactory(alias) {\n return CreateProxyFactory(alias);\n }\n ObservableNode.CreateFactory = CreateFactory;\n})(ObservableNode || (exports.ObservableNode = ObservableNode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObservableScope = exports.ObservableScopeWrapper = exports.ObservableScopeValue = void 0;\nconst array_1 = require(\"../../Utils/array\");\nconst emitter_1 = require(\"../../Utils/emitter\");\nclass ObservableScopeValue {\n get Value() {\n return ObservableScope.Value(this.scope);\n }\n constructor(scope) {\n this.scope = scope;\n }\n}\nexports.ObservableScopeValue = ObservableScopeValue;\nclass ObservableScopeWrapper extends ObservableScopeValue {\n constructor(scope) {\n super(scope);\n if (scope.emitter) {\n this.scopeEmitter = emitter_1.Emitter.Create();\n emitter_1.Emitter.On(scope.emitter, () => emitter_1.Emitter.Emit(this.scopeEmitter, this));\n }\n }\n Scope(callback) {\n return new ObservableScope(() => callback(this.Value));\n }\n Watch(callback) {\n if (!this.scopeEmitter)\n return;\n emitter_1.Emitter.On(this.scopeEmitter, callback);\n callback(this);\n }\n Unwatch(callback) {\n if (!this.scopeEmitter)\n return;\n emitter_1.Emitter.Remove(this.scopeEmitter, callback);\n }\n Destroy() {\n DestroyScope(this.scope);\n this.scopeEmitter && emitter_1.Emitter.Clear(this.scopeEmitter);\n }\n}\nexports.ObservableScopeWrapper = ObservableScopeWrapper;\nclass ObservableScope extends ObservableScopeWrapper {\n constructor(getFunction) {\n super(ObservableScope.Create(getFunction));\n }\n}\nexports.ObservableScope = ObservableScope;\nlet currentEmitterSet = null;\nlet currentScopeSet = null;\nlet watching = false;\nfunction WatchAction(action) {\n const parentScopeSet = currentScopeSet;\n const parentEmitterSet = currentEmitterSet;\n currentScopeSet = null;\n currentEmitterSet = null;\n const parentWatching = watching;\n watching = true;\n action();\n const lastScopeSet = currentScopeSet;\n const lastEmitterSet = currentEmitterSet;\n currentScopeSet = parentScopeSet;\n currentEmitterSet = parentEmitterSet;\n watching = parentWatching;\n return [lastScopeSet && Array.from(lastScopeSet), lastEmitterSet];\n}\n(function (ObservableScope) {\n function Create(valueFunction, memoized = false) {\n const hasFunction = typeof valueFunction === \"function\";\n const scope = {\n getFunction: hasFunction ? valueFunction : null,\n value: hasFunction ? null : valueFunction,\n async: hasFunction\n ? valueFunction[Symbol.toStringTag] === \"AsyncFunction\"\n : false,\n dirty: hasFunction,\n emitter: hasFunction ? emitter_1.Emitter.Create() : null,\n emitters: [],\n destroyed: false,\n setCallback: hasFunction\n ? function () {\n return OnSet(scope);\n }\n : null,\n memoized\n };\n return scope;\n }\n ObservableScope.Create = Create;\n function Register(scope) {\n if (!watching || !scope)\n return;\n currentScopeSet ??= new Set();\n currentScopeSet.add(scope);\n if (scope.emitter !== null) {\n currentEmitterSet ??= new Set();\n currentEmitterSet.add(scope.emitter);\n }\n }\n ObservableScope.Register = Register;\n function Value(scope) {\n if (!scope)\n return undefined;\n Register(scope);\n UpdateValue(scope);\n return scope.value;\n }\n ObservableScope.Value = Value;\n function Watching() {\n return watching;\n }\n ObservableScope.Watching = Watching;\n function Touch(scope) {\n if (!scope || !scope.emitter)\n return;\n Register(scope);\n }\n ObservableScope.Touch = Touch;\n function Watch(scope, callback) {\n if (!scope || !scope.emitter)\n return;\n emitter_1.Emitter.On(scope.emitter, callback);\n }\n ObservableScope.Watch = Watch;\n function Unwatch(scope, callback) {\n if (!scope || !scope.emitter)\n return;\n emitter_1.Emitter.Remove(scope.emitter, callback);\n }\n ObservableScope.Unwatch = Unwatch;\n function Update(scope) {\n OnSet(scope);\n }\n ObservableScope.Update = Update;\n function Destroy(scope) {\n DestroyScope(scope);\n }\n ObservableScope.Destroy = Destroy;\n})(ObservableScope || (exports.ObservableScope = ObservableScope = {}));\nfunction OnSet(scope) {\n if (!scope || scope.dirty || scope.destroyed)\n return scope?.destroyed;\n scope.dirty = !!scope.getFunction;\n emitter_1.Emitter.Emit(scope.emitter, scope);\n return false;\n}\nfunction UpdateValue(scope) {\n if (!scope.dirty)\n return;\n scope.dirty = false;\n let value = null;\n const [scopes, emitters] = scope.getFunction && WatchAction(() => (value = scope.getFunction()));\n let diff = true;\n if (scope.memoized) {\n const nextInputValues = scopes && scopes.map(scope => scope.value);\n diff = (0, array_1.ArrayDiff)(scope.memoizedValues, nextInputValues);\n scope.memoizedValues = nextInputValues;\n }\n if (diff && scope.async)\n Promise.resolve(value).then((val) => {\n scope.value = val;\n emitter_1.Emitter.Emit(scope.emitter, scope);\n });\n else if (diff)\n scope.value = value;\n UpdateEmitters(scope, emitters);\n}\nfunction DestroyScope(scope) {\n if (!scope)\n return;\n scope.emitters = null;\n scope.emitter = null;\n scope.getFunction = null;\n scope.setCallback = null;\n scope.destroyed = true;\n}\nfunction UpdateEmitters(scope, newEmitters) {\n if (newEmitters === null) {\n for (let x = 0; x < scope.emitters.length; x++)\n emitter_1.Emitter.Remove(scope.emitters[x], scope.setCallback);\n scope.emitters = [];\n return;\n }\n let removed = false;\n for (let x = 0; x < scope.emitters.length; x++) {\n if (!newEmitters.delete(scope.emitters[x])) {\n emitter_1.Emitter.Remove(scope.emitters[x], scope.setCallback);\n scope.emitters[x] = null;\n removed = true;\n }\n }\n const initLength = scope.emitters.length;\n scope.emitters.push(...newEmitters);\n for (let x = initLength; x < scope.emitters.length; x++)\n emitter_1.Emitter.On(scope.emitters[x], scope.setCallback);\n removed && (0, array_1.RemoveNulls)(scope.emitters);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObservableNode = exports.ObservableScope = exports.StoreAsync = exports.StoreSync = void 0;\nvar storeSync_1 = require(\"./Store/storeSync\");\nObject.defineProperty(exports, \"StoreSync\", { enumerable: true, get: function () { return storeSync_1.StoreSync; } });\nvar storeAsync_1 = require(\"./Store/storeAsync\");\nObject.defineProperty(exports, \"StoreAsync\", { enumerable: true, get: function () { return storeAsync_1.StoreAsync; } });\nvar observableScope_1 = require(\"./Tree/observableScope\");\nObject.defineProperty(exports, \"ObservableScope\", { enumerable: true, get: function () { return observableScope_1.ObservableScope; } });\nvar observableNode_1 = require(\"./Tree/observableNode\");\nObject.defineProperty(exports, \"ObservableNode\", { enumerable: true, get: function () { return observableNode_1.ObservableNode; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Animation = exports.AnimationType = void 0;\nvar StepFunctions;\n(function (StepFunctions) {\n function* EaseIn(count) {\n var diff = 1 / count;\n for (var t = diff, x = 0; x < count; x++, t += diff)\n yield (1 - t) * (1 - t) * (1 - t) * 0 + 3 * (1 - t) * (1 - t) * t * 1 + 3 * (1 - t) * t * t * 1 + t * t * t * 1;\n }\n StepFunctions.EaseIn = EaseIn;\n function* Linear(count) {\n var diff = 1 / count;\n for (var t = diff, x = 0; x < count; x++, t += diff)\n yield t;\n }\n StepFunctions.Linear = Linear;\n})(StepFunctions || (StepFunctions = {}));\nvar AnimationType;\n(function (AnimationType) {\n AnimationType[AnimationType[\"Linear\"] = 0] = \"Linear\";\n AnimationType[AnimationType[\"EaseIn\"] = 1] = \"EaseIn\";\n})(AnimationType || (exports.AnimationType = AnimationType = {}));\nclass Animation {\n get Running() {\n return this.running;\n }\n get Start() {\n return this.start;\n }\n get End() {\n return this.end;\n }\n get Enabled() {\n return this.enabled;\n }\n constructor(type, duration, update) {\n this.running = false;\n this.start = null;\n this.end = null;\n this.enabled = true;\n this.type = type;\n this.frameCount = Math.ceil((duration / 1000) * 60);\n this.frameTimings = [];\n var frameTime = duration / this.frameCount;\n for (var x = 0; x < this.frameCount; x++)\n this.frameTimings[x] = (x + 1) * frameTime;\n this.update = update;\n this.animationTimeouts = [];\n }\n Animate(start, end) {\n if (!this.enabled)\n return;\n var diff = end - start;\n if (diff === 0)\n return;\n this.Cancel();\n this.running = true;\n this.start = start;\n this.end = end;\n return new Promise(resolve => {\n var stepFunc = StepFunctions[AnimationType[this.type]];\n var index = 0;\n for (var step of stepFunc(this.frameCount)) {\n var value = (step * diff) + start;\n this.SetTimeout(index, value, index === (this.frameCount - 1) ? resolve : null);\n index++;\n }\n }).then(() => {\n this.running = false;\n this.start = null;\n this.end = null;\n });\n }\n Disable() {\n this.Cancel();\n this.enabled = false;\n }\n Enable() {\n this.enabled = true;\n }\n Cancel() {\n for (var x = 0; x < this.animationTimeouts.length; x++)\n clearTimeout(this.animationTimeouts[x]);\n this.running = false;\n this.start = null;\n this.end = null;\n }\n Destroy() {\n this.Cancel();\n }\n SetTimeout(index, value, resolve) {\n this.animationTimeouts[index] = setTimeout(() => {\n this.update(value);\n resolve && resolve();\n }, this.frameTimings[index]);\n }\n}\nexports.Animation = Animation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RemoveNulls = RemoveNulls;\nexports.ArrayDiff = ArrayDiff;\nfunction RemoveNulls(array, startIndex = 0) {\n let nullIndex = startIndex;\n for (; nullIndex < array.length && array[nullIndex] !== null; nullIndex++) { }\n let notNullIndex = nullIndex + 1;\n for (; notNullIndex < array.length && array[notNullIndex] === null; notNullIndex++) { }\n while (notNullIndex < array.length) {\n array[nullIndex] = array[notNullIndex];\n nullIndex++;\n notNullIndex++;\n for (; notNullIndex < array.length && array[notNullIndex] === null; notNullIndex++) { }\n }\n array.splice(nullIndex);\n}\nfunction ArrayDiff(source, target) {\n if (source === target)\n return false;\n if (!source || !target || source.length !== target.length)\n return true;\n let x = 0;\n for (; x < source.length && source[x] === target[x]; x++) { }\n return x < source.length;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncQueue = void 0;\nconst list_1 = require(\"./list\");\nclass AsyncQueue {\n constructor() {\n this.running = false;\n this.queue = list_1.List.Create();\n }\n Next(callback) {\n const ret = new Promise((resolve, reject) => {\n list_1.List.Add(this.queue, async function () {\n try {\n const ret = await callback();\n resolve(ret);\n }\n catch (e) {\n reject(e);\n }\n });\n });\n this.Start();\n return ret;\n }\n Stop() {\n list_1.List.Clear(this.queue);\n }\n Start() {\n if (this.running)\n return;\n this.running = true;\n this.ExecuteQueue();\n }\n async ExecuteQueue() {\n const callback = list_1.List.Pop(this.queue);\n if (callback !== null) {\n await callback();\n this.ExecuteQueue();\n }\n else\n this.running = false;\n }\n}\nexports.AsyncQueue = AsyncQueue;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.State = State;\nexports.Value = Value;\nexports.Scope = Scope;\nexports.Inject = Inject;\nexports.Destroy = Destroy;\nexports.PreReqTemplate = PreReqTemplate;\nexports.PreReq = PreReq;\nconst observableScope_1 = require(\"../Store/Tree/observableScope\");\nconst observableNode_1 = require(\"../Store/Tree/observableNode\");\nconst nodeInstanceMap = new WeakMap();\nconst scopeInstanceMap = new WeakMap();\nconst destroyPrototypeMap = new WeakMap();\nfunction GetNodeMapForInstance(instance) {\n const map = nodeInstanceMap.get(instance) ?? {};\n nodeInstanceMap.set(instance, map);\n return map;\n}\nfunction GetScopeMapForInstance(instance) {\n const map = scopeInstanceMap.get(instance) ?? {};\n scopeInstanceMap.set(instance, map);\n return map;\n}\nfunction GetDestroyArrayForPrototype(prototype) {\n const array = destroyPrototypeMap.get(prototype) ?? [];\n destroyPrototypeMap.set(prototype, array);\n return array;\n}\nfunction State() {\n return StateDecorator;\n}\nfunction StateDecorator(target, propertyKey) {\n return {\n configurable: false,\n enumerable: true,\n get: function () {\n const map = GetNodeMapForInstance(this);\n map[propertyKey] ??= observableNode_1.ObservableNode.Create({ root: undefined });\n return map[propertyKey].root;\n },\n set: function (val) {\n const map = GetNodeMapForInstance(this);\n if (map[propertyKey] === undefined)\n map[propertyKey] = observableNode_1.ObservableNode.Create({ root: val });\n else\n map[propertyKey].root = val;\n },\n };\n}\nfunction Value() {\n return ValueDecorator;\n}\nfunction ValueDecorator(target, propertyKey) {\n return {\n configurable: false,\n enumerable: true,\n get: function () {\n const propertyMap = GetScopeMapForInstance(this);\n propertyMap[propertyKey] ??= [null, undefined];\n const tuple = propertyMap[propertyKey];\n if (tuple[0] === null)\n tuple[0] = observableScope_1.ObservableScope.Create(function () {\n return tuple[1];\n });\n return observableScope_1.ObservableScope.Value(tuple[0]);\n },\n set: function (val) {\n const propertyMap = GetScopeMapForInstance(this);\n propertyMap[propertyKey] ??= [null, undefined];\n const tuple = propertyMap[propertyKey];\n tuple[1] = val;\n observableScope_1.ObservableScope.Update(tuple[0]);\n },\n };\n}\nfunction Scope() {\n return ScopeDecorator;\n}\nfunction ScopeDecorator(target, propertyKey, descriptor) {\n if (!(descriptor && descriptor.get))\n throw \"Scope decorator requires a getter\";\n if (descriptor && descriptor.set)\n throw \"Scope decorator does not support setters\";\n return {\n configurable: false,\n enumerable: true,\n get: function () {\n const propertyMap = GetScopeMapForInstance(this);\n propertyMap[propertyKey] ??= [null, undefined];\n const tuple = propertyMap[propertyKey];\n if (tuple[0] === null)\n tuple[0] = observableScope_1.ObservableScope.Create(descriptor.get.bind(this));\n return tuple[0];\n },\n };\n}\nfunction Inject(type) {\n return InjectorDecorator.bind(null, type);\n}\nfunction InjectorDecorator(type, target, propertyKey, descriptor) {\n return {\n configurable: false,\n enumerable: true,\n get: function () {\n return this.Injector.Get(type);\n },\n set: function (val) {\n this.Injector.Set(type, val);\n },\n };\n}\nfunction Destroy() {\n return DestroyDecorator;\n}\n(function (Destroy) {\n function All(value) {\n const scopeMap = scopeInstanceMap.get(value);\n if (scopeMap !== undefined) {\n const keys = Object.keys(scopeMap);\n for (let x = 0; x < keys.length; x++)\n observableScope_1.ObservableScope.Destroy(scopeMap[keys[x]][0]);\n }\n const array = GetDestroyArrayForPrototype(Object.getPrototypeOf(value));\n for (let x = 0; x < array.length; x++)\n value[array[x]].Destroy();\n }\n Destroy.All = All;\n})(Destroy || (exports.Destroy = Destroy = {}));\nfunction DestroyDecorator(target, propertyKey) {\n const array = GetDestroyArrayForPrototype(target);\n array.push(propertyKey);\n}\nfunction PreReqTemplate(template) {\n return PreReqTemplateDecorator.bind(null, template);\n}\n(function (PreReqTemplate) {\n function Get(value) {\n var func = value && value.PreReqTemplateDecorator_Template;\n var ret = func ? func() : [];\n if (!Array.isArray(ret))\n ret = [ret];\n return ret;\n }\n PreReqTemplate.Get = Get;\n})(PreReqTemplate || (exports.PreReqTemplate = PreReqTemplate = {}));\nfunction PreReqTemplateDecorator(template, target) {\n var proto = target.prototype;\n proto.PreReqTemplateDecorator_Template = template;\n}\nfunction PreReq() {\n return PreReqDecorator;\n}\n(function (PreReq) {\n function Get(value) {\n return (value && value.PreReqDecorator_PreReqs) || [];\n }\n function All(value) {\n var arr = Get(value).map((prop) => (value[prop] && value[prop].Init) ||\n Promise.resolve());\n return Promise.all(arr);\n }\n PreReq.All = All;\n function Has(value) {\n return Get(value).length > 0;\n }\n PreReq.Has = Has;\n})(PreReq || (exports.PreReq = PreReq = {}));\nfunction PreReqDecorator(target, propertyKey) {\n var proto = target;\n proto.PreReqDecorator_PreReqs = proto.PreReqDecorator_PreReqs || [];\n proto.PreReqDecorator_PreReqs.push(propertyKey);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Emitter = void 0;\nconst array_1 = require(\"./array\");\nvar Emitter;\n(function (Emitter) {\n function Create() {\n return [];\n }\n Emitter.Create = Create;\n function On(emitter, callback) {\n emitter.push(callback);\n }\n Emitter.On = On;\n function Emit(emitter, ...args) {\n let removed = false;\n for (let x = 0; x < emitter.length; x++) {\n const result = emitter[x]?.(...args);\n if (result === true) {\n removed = true;\n emitter[x] = null;\n }\n }\n if (removed)\n (0, array_1.RemoveNulls)(emitter);\n }\n Emitter.Emit = Emit;\n function Remove(emitter, callback) {\n const index = emitter.indexOf(callback);\n if (index >= 0) {\n emitter[index] = null;\n (0, array_1.RemoveNulls)(emitter, index);\n }\n }\n Emitter.Remove = Remove;\n function Clear(emitter) {\n emitter.splice(0);\n }\n Emitter.Clear = Clear;\n})(Emitter || (exports.Emitter = Emitter = {}));\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./decorators\"), exports);\n__exportStar(require(\"./animation\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Injector = void 0;\nclass Injector {\n constructor() {\n this.parent = Injector.Current();\n this.typeMap = new Map();\n }\n Get(type) {\n if (this.typeMap.size === 0)\n return this.parent && this.parent.Get(type);\n var ret = this.typeMap.get(type);\n if (!ret)\n ret = this.parent && this.parent.Get(type);\n return ret;\n }\n Set(type, instance) {\n this.typeMap.set(type, instance);\n }\n}\nexports.Injector = Injector;\n(function (Injector) {\n var scope = null;\n function Current() {\n return scope;\n }\n Injector.Current = Current;\n function Scope(injector, action, ...args) {\n var parent = Current();\n scope = injector;\n const ret = action(...args);\n scope = parent;\n return ret;\n }\n Injector.Scope = Scope;\n})(Injector || (exports.Injector = Injector = {}));\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonMerge = exports.JsonDeepClone = exports.JsonType = exports.JsonDiff = void 0;\nexports.JsonDiffFactory = JsonDiffFactory;\nfunction JsonDiffFactory() {\n const jsonProto = Object.getPrototypeOf({});\n function JsonType(value) {\n if (value === null || value === undefined)\n return \"value\";\n if (Array.isArray(value))\n return \"array\";\n if (jsonProto === Object.getPrototypeOf(value))\n return \"object\";\n return \"value\";\n }\n function JsonMerge(source, patch) {\n if (patch === undefined)\n return source;\n const sourceType = JsonType(source);\n const patchType = JsonType(patch);\n if (sourceType !== patchType)\n return patch;\n switch (sourceType) {\n case \"array\": {\n const typedSource = source;\n const typedPatch = patch;\n return typedSource.map(function (source, index) {\n return JsonMerge(source, typedPatch[index]);\n });\n }\n case \"object\": {\n const typedSource = source;\n const typedPatch = patch;\n const sourceKeys = Object.keys(typedSource);\n const result = {};\n for (let x = 0; x < sourceKeys.length; x++)\n result[sourceKeys[x]] = JsonMerge(typedSource[sourceKeys[x]], typedPatch[sourceKeys[x]]);\n return result;\n }\n default:\n return patch;\n }\n }\n function JsonDeepClone(value) {\n const type = JsonType(value);\n switch (type) {\n case \"array\":\n return value.map(JsonDeepClone);\n case \"object\": {\n const ret = {};\n const keys = Object.keys(value);\n for (let x = 0; x < keys.length; x++)\n ret[keys[x]] = JsonDeepClone(value[keys[x]]);\n return ret;\n }\n default:\n return value;\n }\n }\n function JsonDiff(newValue, oldValue, rootPath, initResult) {\n const result = initResult ?? [];\n const startPath = rootPath ? rootPath.split(\".\") : [];\n JsonDiffRecursive(startPath, newValue, oldValue, result);\n return result;\n }\n function JsonDiffRecursive(path, newValue, oldValue, resp) {\n if (newValue === oldValue)\n return false;\n const newType = JsonType(newValue);\n const oldType = JsonType(oldValue);\n const changedPathLength = resp.length;\n let allChildrenChanged = true;\n if (newType === oldType)\n switch (newType) {\n case \"array\": {\n allChildrenChanged = JsonDiffArrays(path, newValue, oldValue, resp);\n break;\n }\n case \"object\": {\n allChildrenChanged = JsonDiffObjects(path, newValue, oldValue, resp);\n break;\n }\n }\n if (allChildrenChanged) {\n resp.splice(changedPathLength);\n resp.push({\n path,\n value: newValue,\n });\n return true;\n }\n return false;\n }\n function JsonDiffArrays(path, newValue, oldValue, resp) {\n let allChildrenChanged = true;\n if (newValue.length !== oldValue.length)\n resp.push({\n path: path.concat(\"length\"),\n value: newValue.length,\n });\n if (newValue.length > 0 || oldValue.length > 0) {\n for (let y = 0; y < newValue.length; y++) {\n const arrayPath = path.concat(y);\n const oldValueElem = oldValue[y];\n allChildrenChanged =\n JsonDiffRecursive(arrayPath, newValue[y], oldValueElem, resp) &&\n allChildrenChanged;\n }\n }\n else\n allChildrenChanged = false;\n return allChildrenChanged;\n }\n function JsonDiffObjects(path, newValue, oldValue, resp) {\n const newKeys = Object.keys(newValue).sort();\n const oldKeys = Object.keys(oldValue).sort();\n if (newKeys.length === 0 && oldKeys.length === 0)\n return false;\n if (newKeys.length < oldKeys.length)\n return true;\n let newKeyIndex = 0;\n let oldKeyIndex = 0;\n while (newKeyIndex < newKeys.length) {\n const childPath = path.concat(newKeys[newKeyIndex]);\n if (oldKeyIndex < oldKeys.length &&\n newKeys[newKeyIndex] === oldKeys[oldKeyIndex]) {\n JsonDiffRecursive(childPath, newValue[newKeys[newKeyIndex]], oldValue[oldKeys[oldKeyIndex]], resp);\n oldKeyIndex++;\n }\n else if (newValue[newKeys[newKeyIndex]] !== undefined) {\n resp.push({\n path: childPath,\n value: newValue[newKeys[newKeyIndex]],\n });\n }\n newKeyIndex++;\n }\n if (oldKeyIndex < oldKeys.length)\n return true;\n return false;\n }\n return { JsonDiff, JsonType, JsonDeepClone, JsonMerge };\n}\n_a = JsonDiffFactory(), exports.JsonDiff = _a.JsonDiff, exports.JsonType = _a.JsonType, exports.JsonDeepClone = _a.JsonDeepClone, exports.JsonMerge = _a.JsonMerge;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonType = void 0;\nvar json_1 = require(\"./json\");\nObject.defineProperty(exports, \"JsonType\", { enumerable: true, get: function () { return json_1.JsonType; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.List = void 0;\nvar List;\n(function (List) {\n function Create() {\n return {\n head: null,\n tail: null,\n size: 0\n };\n }\n List.Create = Create;\n function Clear(list) {\n list.head = null;\n list.tail = null;\n list.size = 0;\n }\n List.Clear = Clear;\n function Push(list, data) {\n const node = { previous: null, next: null, data: data };\n if (list.size === 0) {\n list.head = node;\n list.tail = node;\n list.size = 1;\n }\n else {\n node.next = list.head;\n list.head.previous = node;\n list.head = node;\n list.size++;\n }\n return node;\n }\n List.Push = Push;\n function Pop(list) {\n if (list.size === 0)\n return null;\n const node = list.head;\n list.head = node.next;\n if (list.head)\n list.head.previous = null;\n list.size--;\n if (list.size === 0)\n list.tail = null;\n return node.data;\n }\n List.Pop = Pop;\n function Add(list, data) {\n const node = { previous: null, next: null, data: data };\n return AddNode(list, node);\n }\n List.Add = Add;\n function AddNode(list, node) {\n if (list.size === 0) {\n list.head = node;\n list.tail = node;\n list.size = 1;\n }\n else {\n node.previous = list.tail;\n list.tail.next = node;\n list.tail = node;\n list.size++;\n }\n return node;\n }\n List.AddNode = AddNode;\n function AddBefore(list, node, data) {\n if (!node)\n return List.Add(list, data);\n const newNode = { previous: null, next: null, data: data };\n const prevNode = node.previous;\n newNode.next = node;\n node.previous = newNode;\n if (list.head === node)\n list.head = newNode;\n if (prevNode) {\n prevNode.next = newNode;\n newNode.previous = prevNode;\n }\n list.size++;\n return newNode;\n }\n List.AddBefore = AddBefore;\n function AddAfter(list, node, data) {\n if (!node)\n return List.Push(list, data);\n const newNode = { previous: null, next: null, data: data };\n const nextNode = node.next;\n node.next = newNode;\n newNode.previous = node;\n if (list.tail === node)\n list.tail = newNode;\n if (nextNode) {\n nextNode.previous = newNode;\n newNode.next = nextNode;\n }\n list.size++;\n return newNode;\n }\n List.AddAfter = AddAfter;\n function Remove(list) {\n if (list.size === 0)\n return null;\n var node = list.tail;\n list.tail = node.previous;\n if (list.tail)\n list.tail.next = null;\n list.size--;\n if (list.size === 0)\n list.head = null;\n return node.data;\n }\n List.Remove = Remove;\n function RemoveNode(list, node) {\n if (list.head === node) {\n list.head = node.next;\n }\n else if (list.tail === node) {\n list.tail = node.previous;\n }\n else {\n const prev = node.previous;\n const next = node.next;\n prev.next = next;\n next.previous = prev;\n }\n node.next = node.previous = null;\n list.size--;\n if (list.size > 0)\n list.head.previous = list.tail.next = null;\n }\n List.RemoveNode = RemoveNode;\n function ForEach(list, callback) {\n let node = list.head;\n while (node) {\n callback(node.data);\n node = node.next;\n }\n }\n List.ForEach = ForEach;\n function FindNode(list, valueCallback, value) {\n let node = list.head;\n while (node && valueCallback(node.data) !== value)\n node = node.next;\n return node;\n }\n List.FindNode = FindNode;\n function ToNodeMap(list, keyCallback) {\n const map = new Map();\n let node = list.head;\n while (node) {\n const key = keyCallback(node.data);\n const nodes = map.get(key) || [node];\n if (nodes[0] !== node)\n nodes.push(node);\n else\n map.set(key, nodes);\n node = node.next;\n }\n return map;\n }\n List.ToNodeMap = ToNodeMap;\n})(List || (exports.List = List = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Schedule = Schedule;\nexports.After = After;\nexports.Callback = Callback;\nexports.Synch = Synch;\nexports.Thread = Thread;\nexports.ThreadAsync = ThreadAsync;\nconst list_1 = require(\"./list\");\nconst workTimeMs = 16;\nconst contextQueue = list_1.List.Create();\nlet threadContext = null;\nlet timeoutRunning = false;\nconst scheduleCallback = setTimeout;\nfunction timeRemaining() {\n return this.end - Date.now();\n}\nfunction createDeadline() {\n return {\n end: Date.now() + workTimeMs,\n timeRemaining\n };\n}\nfunction ProcessQueue(deadline = createDeadline()) {\n let ctx;\n while (deadline.timeRemaining() > 0 && (ctx = list_1.List.Pop(contextQueue)))\n DoWork(ctx, deadline);\n if (contextQueue.size > 0)\n scheduleCallback(ProcessQueue);\n else\n timeoutRunning = false;\n}\nfunction ScheduleWork(ctx) {\n list_1.List.Add(contextQueue, ctx);\n if (timeoutRunning)\n return;\n timeoutRunning = true;\n scheduleCallback(ProcessQueue);\n}\nfunction Invoke(ctx, callback) {\n const parent = ctx.workEndNode;\n ctx.workEndNode = ctx.workList.head;\n callback(true);\n ctx.workEndNode = parent;\n}\nfunction DoWork(ctx, deadline = createDeadline()) {\n const parentContext = threadContext;\n threadContext = ctx;\n const async = ctx.async;\n let callback;\n while (async === ctx.async && deadline.timeRemaining() > 0 && (callback = list_1.List.Pop(ctx.workList)))\n Invoke(ctx, callback);\n if (ctx.workList.size > 0)\n ScheduleWork(ctx);\n threadContext = parentContext;\n}\nfunction CreateContext() {\n return {\n async: false,\n workEndNode: null,\n workList: list_1.List.Create()\n };\n}\nfunction ScheduleCallback(callback, before, async) {\n threadContext = threadContext || CreateContext();\n threadContext.async = threadContext.async || async;\n if (before)\n list_1.List.AddBefore(threadContext.workList, threadContext.workEndNode, callback);\n else if (threadContext.workEndNode)\n list_1.List.AddAfter(threadContext.workList, threadContext.workEndNode, callback);\n else\n threadContext.workEndNode = list_1.List.Add(threadContext.workList, callback);\n}\nfunction SynchWithoutThread(callback) {\n callback(false);\n if (threadContext)\n if (threadContext.async)\n ScheduleWork(threadContext);\n else\n DoWork(threadContext);\n threadContext = null;\n}\nfunction Schedule(callback) {\n ScheduleCallback(callback, true, true);\n}\nfunction After(callback) {\n ScheduleCallback(callback, false, false);\n}\nfunction Callback(callback) {\n return function (a, b, c, d) {\n Schedule(function () { callback(a, b, c, d); });\n };\n}\nvar inSynchCallback = false;\nfunction Synch(callback) {\n if (threadContext || inSynchCallback)\n callback(false);\n else {\n inSynchCallback = true;\n SynchWithoutThread(callback);\n inSynchCallback = false;\n }\n}\nfunction Thread(callback) {\n if (threadContext)\n ScheduleCallback(callback, true, false);\n else\n Synch(callback);\n}\nfunction ThreadAsync(callback) {\n return new Promise(resolve => Thread(function (async) {\n callback(async);\n Thread(resolve);\n }));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Component = void 0;\nvar component_1 = require(\"./Node/component\");\nObject.defineProperty(exports, \"Component\", { enumerable: true, get: function () { return component_1.Component; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObservableNode = exports.ObservableScope = void 0;\n__exportStar(require(\"./index\"), exports);\n__exportStar(require(\"./Utils\"), exports);\nvar Store_1 = require(\"./Store\");\nObject.defineProperty(exports, \"ObservableScope\", { enumerable: true, get: function () { return Store_1.ObservableScope; } });\nObject.defineProperty(exports, \"ObservableNode\", { enumerable: true, get: function () { return Store_1.ObservableNode; } });\n__exportStar(require(\"./DOM\"), exports);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Web = require(\"./web.export\");\nfor (var key in Web)\n window[key] = Web[key];\n"],"names":["DefaultAssignment","target","writeTo","next","event","value","lastValue","removeEventListener","addEventListener","AssignEvent","Object","defineProperty","exports","CreateEventAssignment","priorKeys","nextKeys","keys","undefined","concat","x","length","CreateNodeValueAssignment","nodeValue","CreatePropertyAssignment","jsonType_1","AssignProp","prop","ValueAssignment","nodeName","start","selectionStart","end","selectionEnd","ownerDocument","activeElement","setSelectionRange","CreateValueAssignment","JsonType","root","last","DOMNodeConfig","window_1","list_1","createPropertyAssignment_1","createEventAssignment_1","pendingUpdates","List","Create","updateScheduled","processUpdates","Add","Date","now","callback","Pop","size","wndw","requestAnimationFrame","createNode","type","namespace","document","createElementNS","createElement","createTextNode","scheduleUpdate","addListener","removeListener","addChild","child","appendChild","addChildFirst","addChildBefore","firstChild","sibling","insertBefore","addChildAfter","nextSibling","removeChild","remove","parentNode","setText","text","textContent","getAttribute","attribute","setAttribute","createPropertyAssignment","nodeType","Node","TEXT_NODE","createEventAssignment","fireEvent","data","cEvent","CustomEvent","dispatchEvent","getFirstChild","getLastChild","lastChild","getNextSibling","replaceChildren","children","div","nodeDef","elementNode_1","ElementNode","a","ul","li","br","b","span","img","video","source","input","textarea","select","option","h1","h2","h3","p","style","button","table","tbody","th","tr","td","__createBinding","this","create","o","m","k","k2","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","__exportStar","prototype","hasOwnProperty","call","svg","svgNs","g","circle","window","err","jsdomWindow","BoundNode","nodeConfig_1","observableScope_1","SetAttributes","node","attributes","key","NodeConfig","Init","boundNode","props","scope","ObservableScope","scopes","push","assignProperties","Watch","setProperties","destroyed","Value","ScheduleSetProperties","attrs","setAttributes","ScheduleSetAttributes","on","assignEvents","setEvents","ScheduleSetEvents","Component","nodeRef_1","componentNode_1","decorators_1","Injector","nodeRef","injector","Destroyed","Scope","Data","NodeRef","Templates","templates","constructor","componentEvents","Template","Bound","Fire","eventCallback","Destroy","All","ToFunction","ComponentNode","Attach","rootRef","Wrap","AddChild","Register","name","componentFunction","WebComponent","HTMLElement","super","attachShadow","mode","customElements","define","boundNode_1","component_1","injector_1","thread_1","InvokeNodeTemplate","nodes","component","Array","isArray","AddTemplate","init","Thread","Schedule","InitAll","list","ReconcileChildren","After","setTimeout","compNode","NodeRefType","componentNode","events","PreReq","Has","Promise","resolve","preNodes","PreReqTemplate","Get","then","DetachChild","AddPreReqTemplate","valueDefault","GetDataValue","SetData","values","Synch","nextNodeList","currentNodeList","nodeList","nodeMap","ToNodeMap","curNode","nodeArr","y","RemoveNode","AddNode","CreateNodeArray","childrenFunc","head","curDetach","childNodes","delete","DestroyAll","Clear","ReconcileNodeData","attachNodes","startSize","async","newNodes","textNode","elemNode","elementNode","dataScope","valueScope","slice","Set","setData","ScheduleSetData","defaultNodeList","domNodeConfig_1","Store_1","nodeNamespace","Current","parent","lastEvents","AddChildToNode","add","forEach","nodeRefs","AddChildAfter","currentChild","newChild","nextChildren","rootNode","priorNode","curDataNode","insert","actualNode","expectedNode","DiffAsync","workerQueue_1","diffWorker_1","keyFunc","workerQueue","WorkerQueue","DiffWorker","Push","method","arguments","toString","DiffPath","path","DiffBatch","DiffSync","json_1","diffCnstr","DiffTreeFactory","JsonDiffFactory","diffTree","jsonDiffFactory","worker","ctx","onmessage","eval","DiffTree","postMessage","diff","ret","GetPath","FlattenValue","typedArray","typedObject","GetPathValue","parts","split","curr","SetPathValue","ResolveKeyPath","pathValues","splice","join","UpdateSource","diffResult","keyPath","keyDiffResult","sourceValue","JsonDiff","flattened","JsonDeepClone","filteredDiffResult","filter","rootState","map","flat","diffTree_1","workerConstructor","workerParameter","Worker","URL","createObjectURL","Blob","callbacks","onerror","cb","message","reject","terminate","Store","observableNode_1","rootMap","Map","aliasFunc","rootObject","GET_OBSERVABLE_VALUE","ObservableNode","CreateFactory","id","defaultValue","result","set","UpdateRootMap","results","startIndex","rootGroup","UpdateRootObject","rootPath","ApplyDiff","newRootObject","StoreAsync","asyncQueue_1","diffAsync_1","store_1","queue","AsyncQueue","Write","Next","Patch","patch","json","toJSON","mergedJson","JsonMerge","arr","batch","d","i","Splice","deleteCount","items","arrCopy","spliceResult","Stop","StoreSync","diffSync_1","GET_TO_JSON","IS_OBSERVABLE_NODE","proxyCache","WeakMap","scopeCache","getOwnPropertyDescriptorArray","has","hasOwn","hasArray","ownKeys","ownKeysArray","UnwrapProxy","applyingDiff","CreateProxyFactory","alias","CreateProxy","CreateProxyFromValue","ToJson","ToJsonCopy","typedValue","proxy","copy","readOnly","CreateObjectProxy","Proxy","ObjectProxyGetter","ObjectProxySetter","ArrayProxySetter","array","Update","ArrayProxyGetter","arrayValue","args","proxyArray","object","proxyValue","aliasValue","CreateArrayProxy","Touch","DefaultCreateProxy","EnableDiff","pathTuples","property","tupleIndex","assignValue","ObservableScopeWrapper","ObservableScopeValue","array_1","emitter_1","emitter","scopeEmitter","Emitter","On","Emit","Unwatch","Remove","DestroyScope","getFunction","currentEmitterSet","currentScopeSet","watching","OnSet","dirty","emitters","setCallback","valueFunction","memoized","hasFunction","Symbol","toStringTag","action","parentScopeSet","parentEmitterSet","parentWatching","lastScopeSet","lastEmitterSet","from","WatchAction","nextInputValues","ArrayDiff","memoizedValues","val","newEmitters","removed","initLength","RemoveNulls","UpdateEmitters","UpdateValue","Watching","storeSync_1","storeAsync_1","StepFunctions","AnimationType","Animation","EaseIn","count","t","Linear","Running","running","Start","End","Enabled","enabled","duration","update","frameCount","Math","ceil","frameTimings","frameTime","animationTimeouts","Animate","Cancel","stepFunc","index","step","SetTimeout","Disable","Enable","clearTimeout","nullIndex","notNullIndex","e","ExecuteQueue","State","StateDecorator","ValueDecorator","ScopeDecorator","Inject","InjectorDecorator","bind","nodeInstanceMap","scopeInstanceMap","destroyPrototypeMap","GetNodeMapForInstance","instance","GetScopeMapForInstance","GetDestroyArrayForPrototype","propertyKey","propertyMap","tuple","descriptor","DestroyDecorator","template","PreReqTemplateDecorator","PreReqTemplateDecorator_Template","PreReqDecorator","proto","PreReqDecorator_PreReqs","scopeMap","getPrototypeOf","func","all","indexOf","typeMap","_a","jsonProto","JsonDiffRecursive","newValue","oldValue","resp","newType","oldType","changedPathLength","allChildrenChanged","arrayPath","oldValueElem","JsonDiffArrays","newKeys","sort","oldKeys","newKeyIndex","oldKeyIndex","childPath","JsonDiffObjects","initResult","sourceType","typedPatch","typedSource","sourceKeys","tail","previous","AddBefore","newNode","prevNode","AddAfter","nextNode","prev","ForEach","FindNode","valueCallback","keyCallback","ScheduleCallback","Callback","c","ThreadAsync","workTimeMs","contextQueue","threadContext","timeoutRunning","scheduleCallback","timeRemaining","createDeadline","ProcessQueue","deadline","DoWork","ScheduleWork","Invoke","workEndNode","workList","parentContext","before","inSynchCallback","SynchWithoutThread","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","module","__webpack_modules__","Web"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"jTemplates.js","mappings":"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","sources":["webpack://j-templates/./src/DOM/createEventAssignment.ts","webpack://j-templates/./src/DOM/createPropertyAssignment.ts","webpack://j-templates/./src/DOM/domNodeConfig.ts","webpack://j-templates/./src/DOM/elements.ts","webpack://j-templates/./src/DOM/index.ts","webpack://j-templates/./src/DOM/svgElements.ts","webpack://j-templates/./src/DOM/window.ts","webpack://j-templates/./src/Node/boundNode.ts","webpack://j-templates/./src/Node/component.ts","webpack://j-templates/./src/Node/componentNode.ts","webpack://j-templates/./src/Node/elementNode.ts","webpack://j-templates/./src/Node/nodeConfig.ts","webpack://j-templates/./src/Node/nodeRef.ts","webpack://j-templates/./src/Store/Diff/diffAsync.ts","webpack://j-templates/./src/Store/Diff/diffSync.ts","webpack://j-templates/./src/Store/Diff/diffTree.ts","webpack://j-templates/./src/Store/Diff/diffWorker.ts","webpack://j-templates/./src/Store/Diff/workerQueue.ts","webpack://j-templates/./src/Store/Store/store.ts","webpack://j-templates/./src/Store/Store/storeAsync.ts","webpack://j-templates/./src/Store/Store/storeSync.ts","webpack://j-templates/./src/Store/Tree/observableNode.ts","webpack://j-templates/./src/Store/Tree/observableScope.ts","webpack://j-templates/./src/Store/index.ts","webpack://j-templates/./src/Utils/animation.ts","webpack://j-templates/./src/Utils/array.ts","webpack://j-templates/./src/Utils/asyncQueue.ts","webpack://j-templates/./src/Utils/decorators.ts","webpack://j-templates/./src/Utils/emitter.ts","webpack://j-templates/./src/Utils/index.ts","webpack://j-templates/./src/Utils/injector.ts","webpack://j-templates/./src/Utils/json.ts","webpack://j-templates/./src/Utils/jsonType.ts","webpack://j-templates/./src/Utils/list.ts","webpack://j-templates/./src/Utils/thread.ts","webpack://j-templates/./src/index.ts","webpack://j-templates/./src/web.export.ts","webpack://j-templates/webpack/bootstrap","webpack://j-templates/./src/web.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateEventAssignment = CreateEventAssignment;\nfunction AssignEvent(target, event) {\n let lastValue;\n return function Assign(value) {\n if (value !== lastValue) {\n lastValue && target.removeEventListener(event, lastValue);\n value && target.addEventListener(event, value);\n lastValue = value;\n }\n };\n}\nfunction DefaultAssignment(target, writeTo, next, event) {\n const value = next;\n writeTo[event] ??= AssignEvent(target, event);\n writeTo[event](value);\n}\nfunction CreateEventAssignment(target) {\n let priorKeys;\n const writeTo = {};\n return function AssignNext(next) {\n const nextKeys = next !== null ? Object.keys(next) : [];\n const keys = priorKeys === undefined ? nextKeys : nextKeys.concat(priorKeys);\n priorKeys = nextKeys;\n for (let x = 0; x < keys.length; x++)\n DefaultAssignment(target, writeTo, next && next[keys[x]], keys[x]);\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateNodeValueAssignment = CreateNodeValueAssignment;\nexports.CreatePropertyAssignment = CreatePropertyAssignment;\nconst jsonType_1 = require(\"../Utils/jsonType\");\nfunction AssignProp(target, prop) {\n let lastValue = target[prop];\n return function Assign(value) {\n if (value !== lastValue) {\n target[prop] = value;\n lastValue = value;\n }\n };\n}\nfunction CreateNodeValueAssignment(target) {\n let lastValue = target.nodeValue;\n return function AssignNodeValue(value) {\n if (value.nodeValue !== lastValue) {\n target.nodeValue = value.nodeValue;\n lastValue = value.nodeValue;\n }\n };\n}\nfunction CreateValueAssignment(target) {\n let lastValue = target.value;\n target.addEventListener('blur', function () {\n target.value = lastValue;\n });\n return function AssignValue(value) {\n if (value !== lastValue) {\n const start = target.selectionStart;\n const end = target.selectionEnd;\n target.value = value;\n if (target.ownerDocument.activeElement === target)\n target.setSelectionRange(start, end);\n lastValue = value;\n }\n };\n}\nfunction ValueAssignment(target, writeTo, next) {\n writeTo.value ??= target.nodeName === 'INPUT' ? CreateValueAssignment(target) : AssignProp(target, 'value');\n writeTo.value(next.value);\n}\nfunction DefaultAssignment(target, writeTo, next, prop) {\n const value = next[prop];\n writeTo[prop] ??= (0, jsonType_1.JsonType)(value) === 'value' ?\n AssignProp(target, prop) :\n CreatePropertyAssignment(target[prop], false);\n writeTo[prop](value);\n}\nfunction CreatePropertyAssignment(target, root = true) {\n let last;\n const writeTo = {};\n return function AssignNext(next) {\n if (next === last)\n return;\n last = next;\n const keys = Object.keys(next);\n for (let x = 0; x < keys.length; x++) {\n switch (root) {\n case true: {\n switch (keys[x]) {\n case 'value':\n ValueAssignment(target, writeTo, next);\n break;\n default:\n DefaultAssignment(target, writeTo, next, keys[x]);\n break;\n }\n break;\n }\n default:\n DefaultAssignment(target, writeTo, next, keys[x]);\n break;\n }\n }\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DOMNodeConfig = void 0;\nconst window_1 = require(\"./window\");\nconst list_1 = require(\"../Utils/list\");\nconst createPropertyAssignment_1 = require(\"./createPropertyAssignment\");\nconst createEventAssignment_1 = require(\"./createEventAssignment\");\nlet pendingUpdates = list_1.List.Create();\nlet updateScheduled = false;\nconst updateMs = 16;\nfunction processUpdates() {\n list_1.List.Add(pendingUpdates, null);\n const start = Date.now();\n let callback;\n while ((callback = list_1.List.Pop(pendingUpdates)))\n callback();\n if (pendingUpdates.size === 0)\n updateScheduled = false;\n else if (Date.now() - start < updateMs)\n processUpdates();\n else\n window_1.wndw.requestAnimationFrame(processUpdates);\n}\nexports.DOMNodeConfig = {\n createNode(type, namespace) {\n return namespace ?\n window_1.wndw.document.createElementNS(namespace, type) :\n window_1.wndw.document.createElement(type);\n },\n createTextNode(value = '') {\n return window_1.wndw.document.createTextNode(value);\n },\n scheduleUpdate(callback) {\n list_1.List.Add(pendingUpdates, callback);\n if (!updateScheduled) {\n updateScheduled = true;\n window_1.wndw.requestAnimationFrame(processUpdates);\n }\n },\n addListener(target, type, callback) {\n target.addEventListener(type, callback);\n },\n removeListener(target, type, callback) {\n target.removeEventListener(type, callback);\n },\n addChild(root, child) {\n root.appendChild(child);\n },\n addChildFirst(root, child) {\n exports.DOMNodeConfig.addChildBefore(root, root.firstChild, child);\n },\n addChildBefore(root, sibling, child) {\n if (!sibling) {\n exports.DOMNodeConfig.addChild(root, child);\n return;\n }\n if (child !== sibling)\n root.insertBefore(child, sibling);\n },\n addChildAfter(root, sibling, child) {\n if (!sibling) {\n exports.DOMNodeConfig.addChildFirst(root, child);\n return;\n }\n exports.DOMNodeConfig.addChildBefore(root, sibling.nextSibling, child);\n },\n removeChild(root, child) {\n root.removeChild(child);\n },\n remove(target) {\n target && target.parentNode && target.parentNode.removeChild(target);\n },\n setText(target, text) {\n target.textContent = text;\n },\n getAttribute(target, attribute) {\n return target.getAttribute(attribute);\n },\n setAttribute(target, attribute, value) {\n target.setAttribute(attribute, value);\n },\n createPropertyAssignment(target) {\n if (target.nodeType === Node.TEXT_NODE)\n return (0, createPropertyAssignment_1.CreateNodeValueAssignment)(target);\n return (0, createPropertyAssignment_1.CreatePropertyAssignment)(target);\n },\n createEventAssignment(target) {\n return (0, createEventAssignment_1.CreateEventAssignment)(target);\n },\n fireEvent(target, event, data) {\n var cEvent = new CustomEvent(event, data);\n target.dispatchEvent(cEvent);\n },\n getFirstChild(target) {\n return target.firstChild;\n },\n getLastChild(target) {\n return target.lastChild;\n },\n getNextSibling(target) {\n return target.nextSibling;\n },\n replaceChildren(target, children) {\n target.replaceChildren(...children);\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.div = div;\nexports.a = a;\nexports.ul = ul;\nexports.li = li;\nexports.br = br;\nexports.b = b;\nexports.span = span;\nexports.img = img;\nexports.video = video;\nexports.source = source;\nexports.input = input;\nexports.textarea = textarea;\nexports.select = select;\nexports.option = option;\nexports.h1 = h1;\nexports.h2 = h2;\nexports.h3 = h3;\nexports.p = p;\nexports.style = style;\nexports.button = button;\nexports.table = table;\nexports.tbody = tbody;\nexports.th = th;\nexports.tr = tr;\nexports.td = td;\nconst elementNode_1 = require(\"../Node/elementNode\");\nfunction div(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"div\", null, nodeDef, children);\n}\nfunction a(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"a\", null, nodeDef, children);\n}\nfunction ul(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"ul\", null, nodeDef, children);\n}\nfunction li(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"li\", null, nodeDef, children);\n}\nfunction br(nodeDef) {\n return elementNode_1.ElementNode.Create(\"br\", null, nodeDef, null);\n}\nfunction b(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"b\", null, nodeDef, children);\n}\nfunction span(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"span\", null, nodeDef, children);\n}\nfunction img(nodeDef) {\n return elementNode_1.ElementNode.Create(\"img\", null, nodeDef, null);\n}\nfunction video(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"video\", null, nodeDef, children);\n}\nfunction source(nodeDef) {\n return elementNode_1.ElementNode.Create(\"source\", null, nodeDef, null);\n}\nfunction input(nodeDef) {\n return elementNode_1.ElementNode.Create(\"input\", null, nodeDef, null);\n}\nfunction textarea(nodeDef) {\n return elementNode_1.ElementNode.Create(\"textarea\", null, nodeDef, null);\n}\nfunction select(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"select\", null, nodeDef, children);\n}\nfunction option(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"option\", null, nodeDef, children);\n}\nfunction h1(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"h1\", null, nodeDef, children);\n}\nfunction h2(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"h2\", null, nodeDef, children);\n}\nfunction h3(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"h3\", null, nodeDef, children);\n}\nfunction p(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"p\", null, nodeDef, children);\n}\nfunction style(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"style\", null, nodeDef, children);\n}\nfunction button(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"button\", null, nodeDef, children);\n}\nfunction table(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"table\", null, nodeDef, children);\n}\nfunction tbody(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"tbody\", null, nodeDef, children);\n}\nfunction th(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"th\", null, nodeDef, children);\n}\nfunction tr(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"tr\", null, nodeDef, children);\n}\nfunction td(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"td\", null, nodeDef, children);\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./elements\"), exports);\n__exportStar(require(\"./svgElements\"), exports);\n__exportStar(require(\"./createPropertyAssignment\"), exports);\n__exportStar(require(\"./createEventAssignment\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.svg = svg;\nexports.g = g;\nexports.circle = circle;\nconst elementNode_1 = require(\"../Node/elementNode\");\nconst svgNs = \"http://www.w3.org/2000/svg\";\nfunction svg(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"svg\", svgNs, nodeDef, children);\n}\nfunction g(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"g\", svgNs, nodeDef, children);\n}\nfunction circle(nodeDef, children) {\n return elementNode_1.ElementNode.Create(\"circle\", svgNs, nodeDef, children);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.wndw = void 0;\nfunction jsdomWindow() {\n try {\n return require(\"jsdom\").JSDOM(\"\").window;\n }\n catch (err) {\n return undefined;\n }\n}\nexports.wndw = typeof window !== \"undefined\" ? window : jsdomWindow();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BoundNode = void 0;\nconst nodeConfig_1 = require(\"./nodeConfig\");\nconst observableScope_1 = require(\"../Store/Tree/observableScope\");\nvar BoundNode;\n(function (BoundNode) {\n function Init(boundNode) {\n const nodeDef = boundNode.nodeDef;\n if (nodeDef.props) {\n const scope = observableScope_1.ObservableScope.Create(nodeDef.props);\n boundNode.scopes ??= [];\n boundNode.scopes.push(scope);\n boundNode.assignProperties = nodeConfig_1.NodeConfig.createPropertyAssignment(boundNode.node);\n observableScope_1.ObservableScope.Watch(scope, function (scope) { ScheduleSetProperties(boundNode, scope); });\n const next = observableScope_1.ObservableScope.Value(scope);\n boundNode.assignProperties(next);\n }\n if (nodeDef.attrs) {\n const scope = observableScope_1.ObservableScope.Create(nodeDef.attrs);\n boundNode.scopes ??= [];\n boundNode.scopes.push(scope);\n observableScope_1.ObservableScope.Watch(scope, function (scope) { ScheduleSetAttributes(boundNode, scope); });\n SetAttributes(boundNode, observableScope_1.ObservableScope.Value(scope));\n }\n if (nodeDef.on) {\n const scope = observableScope_1.ObservableScope.Create(nodeDef.on);\n boundNode.scopes ??= [];\n boundNode.scopes.push(scope);\n boundNode.assignEvents = nodeConfig_1.NodeConfig.createEventAssignment(boundNode.node);\n observableScope_1.ObservableScope.Watch(scope, function (scope) { ScheduleSetEvents(boundNode, scope); });\n const next = observableScope_1.ObservableScope.Value(scope);\n boundNode.assignEvents(next);\n }\n }\n BoundNode.Init = Init;\n})(BoundNode || (exports.BoundNode = BoundNode = {}));\nfunction ScheduleSetProperties(node, scope) {\n if (node.setProperties)\n return;\n node.setProperties = true;\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n node.setProperties = false;\n if (node.destroyed)\n return;\n const next = observableScope_1.ObservableScope.Value(scope);\n node.assignProperties(next);\n });\n}\nfunction ScheduleSetAttributes(node, scope) {\n if (node.setAttributes)\n return;\n node.setAttributes = true;\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n node.setAttributes = false;\n if (node.destroyed)\n return;\n SetAttributes(node, observableScope_1.ObservableScope.Value(scope));\n });\n}\nfunction SetAttributes(node, attributes) {\n if (!attributes)\n return;\n for (var key in attributes) {\n var val = nodeConfig_1.NodeConfig.getAttribute(node.node, key);\n if (val !== attributes[key])\n nodeConfig_1.NodeConfig.setAttribute(node.node, key, attributes[key]);\n }\n}\nfunction ScheduleSetEvents(node, scope) {\n if (node.setEvents)\n return;\n node.setEvents = true;\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n node.setEvents = false;\n if (node.destroyed)\n return;\n const next = observableScope_1.ObservableScope.Value(scope);\n node.assignEvents(next);\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Component = void 0;\nconst nodeRef_1 = require(\"./nodeRef\");\nconst componentNode_1 = require(\"./componentNode\");\nconst decorators_1 = require(\"../Utils/decorators\");\nconst observableScope_1 = require(\"../Store/Tree/observableScope\");\nclass Component {\n get Injector() {\n return this.nodeRef.injector;\n }\n get Destroyed() {\n return this.nodeRef.destroyed;\n }\n get Scope() {\n return this.scope;\n }\n get Data() {\n return this.scope.Value;\n }\n get NodeRef() {\n return this.nodeRef;\n }\n get Templates() {\n return this.templates;\n }\n constructor(data, templates, nodeRef, componentEvents) {\n this.nodeRef = nodeRef;\n this.componentEvents = componentEvents;\n this.scope = new observableScope_1.ObservableScope(data);\n this.templates = templates || {};\n }\n Template() {\n return [];\n }\n Bound() { }\n Fire(event, data) {\n var eventCallback = this.componentEvents && this.componentEvents[event];\n eventCallback && eventCallback(data);\n }\n Destroy() {\n this.scope.Destroy();\n decorators_1.Destroy.All(this);\n }\n}\nexports.Component = Component;\n(function (Component) {\n function ToFunction(type, namespace, constructor) {\n return componentNode_1.ComponentNode.ToFunction(type, namespace, constructor);\n }\n Component.ToFunction = ToFunction;\n function Register(name, constructor) {\n const componentFunction = ToFunction(`${name}-component`, undefined, constructor);\n class WebComponent extends HTMLElement {\n constructor() {\n super();\n const shadowRoot = this.attachShadow({ mode: \"open\" });\n const node = componentFunction({});\n Attach(shadowRoot, node);\n }\n }\n customElements.define(name, WebComponent);\n }\n Component.Register = Register;\n function Attach(node, nodeRef) {\n nodeRef_1.NodeRef.Init(nodeRef);\n var rootRef = nodeRef_1.NodeRef.Wrap(node);\n nodeRef_1.NodeRef.AddChild(rootRef, nodeRef);\n }\n Component.Attach = Attach;\n})(Component || (exports.Component = Component = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ComponentNode = void 0;\nconst boundNode_1 = require(\"./boundNode\");\nconst nodeRef_1 = require(\"./nodeRef\");\nconst nodeConfig_1 = require(\"./nodeConfig\");\nconst component_1 = require(\"./component\");\nconst injector_1 = require(\"../Utils/injector\");\nconst decorators_1 = require(\"../Utils/decorators\");\nconst thread_1 = require(\"../Utils/thread\");\nconst list_1 = require(\"../Utils/list\");\nvar ComponentNode;\n(function (ComponentNode) {\n function Fire(event, data) {\n var eventCallback = this.componentEvents && this.componentEvents[event];\n eventCallback && eventCallback(data);\n }\n ComponentNode.Fire = Fire;\n function ToFunction(type, namespace, constructor) {\n return function (nodeDef, templates) {\n return Create(type, namespace, nodeDef, constructor, templates);\n };\n }\n ComponentNode.ToFunction = ToFunction;\n function Init(componentNode) {\n var nodeDef = componentNode.nodeDef;\n var events = nodeDef.on;\n nodeDef.on = null;\n componentNode.component = new componentNode.constructor(nodeDef.data, componentNode.templates, componentNode, events);\n SetChildren(componentNode);\n boundNode_1.BoundNode.Init(componentNode);\n }\n ComponentNode.Init = Init;\n})(ComponentNode || (exports.ComponentNode = ComponentNode = {}));\nfunction Create(type, namespace, nodeDef, constructor, templates) {\n var compNode = nodeRef_1.NodeRef.Create(type, namespace, nodeRef_1.NodeRefType.ComponentNode);\n compNode.nodeDef = nodeDef;\n compNode.constructor = constructor;\n compNode.templates = templates;\n return compNode;\n}\nfunction SetChildren(node) {\n if (decorators_1.PreReq.Has(node.component)) {\n AddPreReqTemplate(node).then(function () {\n AddTemplate(node, false);\n });\n }\n else\n AddTemplate(node, true);\n}\nfunction AddPreReqTemplate(node) {\n return new Promise(resolve => {\n (0, thread_1.Thread)(function () {\n const preNodes = injector_1.Injector.Scope(node.injector, decorators_1.PreReqTemplate.Get, node.component);\n (0, thread_1.Schedule)(function () {\n if (node.destroyed)\n return;\n nodeRef_1.NodeRef.InitAll(node, preNodes);\n });\n (0, thread_1.Thread)(function () {\n if (node.destroyed)\n return;\n for (var x = 0; x < preNodes.length; x++)\n nodeRef_1.NodeRef.AddChild(node, preNodes[x]);\n decorators_1.PreReq.All(node.component).then(function () {\n if (node.destroyed)\n return;\n for (var x = 0; x < preNodes.length; x++)\n nodeRef_1.NodeRef.Destroy(preNodes[x]);\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n if (node.destroyed)\n return;\n for (var x = 0; x < preNodes.length; x++)\n nodeRef_1.NodeRef.DetachChild(node, preNodes[x]);\n resolve();\n });\n });\n });\n });\n });\n}\nfunction InvokeNodeTemplate(node) {\n const nodes = node.component.Template();\n if (!Array.isArray(nodes))\n return [nodes];\n return nodes;\n}\nfunction AddTemplate(node, init) {\n (0, thread_1.Thread)(function () {\n if (node.destroyed)\n return;\n const nodes = injector_1.Injector.Scope(node.injector, InvokeNodeTemplate, node);\n (0, thread_1.Schedule)(function () {\n nodeRef_1.NodeRef.InitAll(node, nodes);\n });\n (0, thread_1.Thread)(function () {\n if (node.destroyed)\n return;\n const list = list_1.List.Create();\n list_1.List.Add(list, {\n value: undefined,\n init: true,\n nodes\n });\n if (init)\n nodeRef_1.NodeRef.ReconcileChildren(node, list);\n else\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n if (node.destroyed)\n return;\n nodeRef_1.NodeRef.ReconcileChildren(node, list);\n });\n });\n if (node.component.Bound !== component_1.Component.prototype.Bound)\n (0, thread_1.After)(function () {\n nodeConfig_1.NodeConfig.scheduleUpdate(() => setTimeout(() => node.component.Bound(), 0));\n });\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ElementNode = void 0;\nconst observableScope_1 = require(\"../Store/Tree/observableScope\");\nconst injector_1 = require(\"../Utils/injector\");\nconst list_1 = require(\"../Utils/list\");\nconst thread_1 = require(\"../Utils/thread\");\nconst boundNode_1 = require(\"./boundNode\");\nconst nodeConfig_1 = require(\"./nodeConfig\");\nconst nodeRef_1 = require(\"./nodeRef\");\nconst valueDefault = [];\nvar ElementNode;\n(function (ElementNode) {\n function Create(type, namespace, nodeDef, children) {\n var elemNode = nodeRef_1.NodeRef.Create(type, namespace, nodeRef_1.NodeRefType.ElementNode);\n elemNode.nodeDef = nodeDef;\n elemNode.childrenFunc = children;\n return elemNode;\n }\n ElementNode.Create = Create;\n function Init(elementNode) {\n if (elementNode.childrenFunc) {\n var nodeDef = elementNode.nodeDef;\n if (nodeDef.data) {\n const dataScope = observableScope_1.ObservableScope.Create(nodeDef.data);\n const valueScope = observableScope_1.ObservableScope.Create(function () {\n let value = observableScope_1.ObservableScope.Value(dataScope);\n if (!value)\n return valueDefault;\n if (!Array.isArray(value))\n return [value];\n return value.slice();\n });\n elementNode.childNodes = new Set();\n elementNode.scopes ??= [];\n elementNode.scopes.push(dataScope, valueScope);\n observableScope_1.ObservableScope.Watch(valueScope, function () {\n ScheduleSetData(elementNode, valueScope);\n });\n SetData(elementNode, observableScope_1.ObservableScope.Value(valueScope), true);\n }\n else\n SetDefaultData(elementNode);\n }\n boundNode_1.BoundNode.Init(elementNode);\n }\n ElementNode.Init = Init;\n})(ElementNode || (exports.ElementNode = ElementNode = {}));\nfunction ScheduleSetData(node, scope) {\n if (node.setData)\n return;\n node.setData = true;\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n node.setData = false;\n if (node.destroyed)\n return;\n SetData(node, observableScope_1.ObservableScope.Value(scope));\n });\n}\nfunction SetDefaultData(node) {\n (0, thread_1.Synch)(function () {\n const nodes = injector_1.Injector.Scope(node.injector, CreateNodeArray, node.childrenFunc, true);\n if (nodes.length > 0) {\n nodeRef_1.NodeRef.InitAll(node, nodes);\n (0, thread_1.Thread)(function () {\n if (node.destroyed)\n return;\n const defaultNodeList = list_1.List.Create();\n list_1.List.Add(defaultNodeList, {\n value: null,\n init: true,\n nodes\n });\n nodeRef_1.NodeRef.ReconcileChildren(node, defaultNodeList);\n });\n }\n });\n}\nfunction GetDataValue(data) {\n return data.value;\n}\nfunction ReconcileNodeData(node, values) {\n const nextNodeList = list_1.List.Create();\n const currentNodeList = node.nodeList;\n const nodeMap = currentNodeList && list_1.List.ToNodeMap(currentNodeList, GetDataValue);\n for (let x = 0; x < values.length; x++) {\n let curNode = null;\n if (nodeMap) {\n const nodeArr = nodeMap.get(values[x]);\n if (nodeArr) {\n let y = nodeArr.length - 1;\n for (; y >= 0 && !curNode; y--) {\n curNode = nodeArr[y];\n nodeArr[y] = null;\n }\n }\n }\n if (curNode) {\n list_1.List.RemoveNode(currentNodeList, curNode);\n list_1.List.AddNode(nextNodeList, curNode);\n }\n else {\n curNode = list_1.List.Add(nextNodeList, {\n value: values[x],\n init: false,\n nodes: injector_1.Injector.Scope(node.injector, CreateNodeArray, node.childrenFunc, values[x])\n });\n }\n }\n let curNode = nextNodeList.head;\n while (curNode) {\n const data = curNode.data;\n !data.init && (0, thread_1.Schedule)(function () {\n if (node.destroyed || nextNodeList.size === 0)\n return;\n nodeRef_1.NodeRef.InitAll(node, data.nodes);\n data.init = true;\n });\n curNode = curNode.next;\n }\n if (currentNodeList) {\n let curDetach = currentNodeList.head;\n while (curDetach) {\n const data = curDetach.data;\n curDetach = curDetach.next;\n for (let x = 0; x < data.nodes.length; x++)\n node.childNodes.delete(data.nodes[x]);\n nodeRef_1.NodeRef.DestroyAll(data.nodes);\n }\n list_1.List.Clear(currentNodeList);\n }\n node.nodeList = nextNodeList;\n}\nfunction SetData(node, values, init = false) {\n (0, thread_1.Synch)(function () {\n ReconcileNodeData(node, values);\n const attachNodes = node.nodeList;\n const startSize = attachNodes.size;\n (0, thread_1.Thread)(function (async) {\n if (node.destroyed)\n return;\n if (init || !async)\n nodeRef_1.NodeRef.ReconcileChildren(node, attachNodes);\n else\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n if (node.destroyed || attachNodes.size !== startSize)\n return;\n nodeRef_1.NodeRef.ReconcileChildren(node, attachNodes);\n });\n });\n });\n}\nfunction CreateNodeArray(childrenFunc, value) {\n const newNodes = childrenFunc(value);\n if (typeof newNodes === \"string\" || !newNodes) {\n const textNode = nodeRef_1.NodeRef.Create(\"text\", null, nodeRef_1.NodeRefType.BoundNode);\n textNode.nodeDef = {\n props: function () {\n return { nodeValue: childrenFunc(value) };\n }\n };\n return [textNode];\n }\n if (Array.isArray(newNodes))\n return newNodes;\n return [newNodes];\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeConfig = void 0;\nconst domNodeConfig_1 = require(\"../DOM/domNodeConfig\");\nexports.NodeConfig = domNodeConfig_1.DOMNodeConfig;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeRef = exports.NodeRefType = void 0;\nconst nodeConfig_1 = require(\"./nodeConfig\");\nconst injector_1 = require(\"../Utils/injector\");\nconst boundNode_1 = require(\"./boundNode\");\nconst elementNode_1 = require(\"./elementNode\");\nconst componentNode_1 = require(\"./componentNode\");\nconst Store_1 = require(\"../Store\");\nvar NodeRefType;\n(function (NodeRefType) {\n NodeRefType[NodeRefType[\"NodeRef\"] = 0] = \"NodeRef\";\n NodeRefType[NodeRefType[\"BoundNode\"] = 1] = \"BoundNode\";\n NodeRefType[NodeRefType[\"ElementNode\"] = 2] = \"ElementNode\";\n NodeRefType[NodeRefType[\"ComponentNode\"] = 3] = \"ComponentNode\";\n})(NodeRefType || (exports.NodeRefType = NodeRefType = {}));\nvar NodeRef;\n(function (NodeRef) {\n function Wrap(node) {\n var nodeRef = Create(null, null, NodeRefType.NodeRef);\n nodeRef.node = node;\n nodeRef.childNodes = new Set();\n return nodeRef;\n }\n NodeRef.Wrap = Wrap;\n function Create(nodeType, namespace, type) {\n switch (type) {\n case NodeRefType.NodeRef:\n return {\n node: null,\n nodeType: nodeType,\n nodeNamespace: namespace,\n type: NodeRefType.NodeRef,\n injector: injector_1.Injector.Current() || new injector_1.Injector(),\n parent: null,\n childNodes: null,\n destroyed: false\n };\n case NodeRefType.BoundNode:\n return {\n node: null,\n nodeDef: null,\n nodeType: nodeType,\n nodeNamespace: namespace,\n type: NodeRefType.BoundNode,\n injector: injector_1.Injector.Current() || new injector_1.Injector(),\n parent: null,\n childNodes: null,\n destroyed: false,\n lastEvents: null,\n setProperties: false,\n assignProperties: null,\n assignEvents: null,\n setAttributes: false,\n setEvents: false,\n scopes: null\n };\n case NodeRefType.ElementNode:\n return {\n node: null,\n nodeDef: null,\n nodeType: nodeType,\n nodeNamespace: namespace,\n type: NodeRefType.ElementNode,\n injector: injector_1.Injector.Current() || new injector_1.Injector(),\n parent: null,\n childNodes: null,\n destroyed: false,\n lastEvents: null,\n setProperties: false,\n assignProperties: null,\n assignEvents: null,\n setAttributes: false,\n setEvents: false,\n childrenFunc: null,\n nodeList: null,\n setData: false,\n scopes: null\n };\n case NodeRefType.ComponentNode:\n return {\n node: null,\n nodeDef: null,\n nodeType: nodeType,\n nodeNamespace: namespace,\n type: NodeRefType.ComponentNode,\n injector: injector_1.Injector.Current() || new injector_1.Injector(),\n parent: null,\n childNodes: null,\n destroyed: false,\n setProperties: false,\n assignProperties: null,\n assignEvents: null,\n setAttributes: false,\n setEvents: false,\n component: null,\n componentEvents: null,\n scopes: null\n };\n }\n }\n NodeRef.Create = Create;\n function Init(nodeRef) {\n if (nodeRef.node)\n return;\n nodeRef.node = nodeRef.nodeType === 'text' ? nodeConfig_1.NodeConfig.createTextNode() : nodeConfig_1.NodeConfig.createNode(nodeRef.nodeType, nodeRef.nodeNamespace);\n nodeRef.childNodes = nodeRef.nodeType !== 'text' ? [] : null;\n switch (nodeRef.type) {\n case NodeRefType.BoundNode:\n boundNode_1.BoundNode.Init(nodeRef);\n break;\n case NodeRefType.ElementNode:\n elementNode_1.ElementNode.Init(nodeRef);\n break;\n case NodeRefType.ComponentNode:\n componentNode_1.ComponentNode.Init(nodeRef);\n break;\n }\n }\n NodeRef.Init = Init;\n function AddChildToNode(parentNode, child) {\n if (Array.isArray(parentNode.childNodes))\n parentNode.childNodes.push(child);\n else\n parentNode.childNodes.add(child);\n }\n function InitAll(parentNode, nodeRefs) {\n for (var x = 0; x < nodeRefs.length; x++) {\n nodeRefs[x].parent = parentNode;\n AddChildToNode(parentNode, nodeRefs[x]);\n Init(nodeRefs[x]);\n }\n }\n NodeRef.InitAll = InitAll;\n function AddChild(node, child) {\n child.parent = node;\n AddChildToNode(node, child);\n nodeConfig_1.NodeConfig.addChild(node.node, child.node);\n }\n NodeRef.AddChild = AddChild;\n function AddChildAfter(node, currentChild, newChild) {\n if (currentChild && currentChild.parent !== node)\n throw \"currentChild is not valid\";\n newChild.parent = node;\n AddChildToNode(node, newChild);\n nodeConfig_1.NodeConfig.addChildAfter(node.node, currentChild && currentChild.node, newChild.node);\n }\n NodeRef.AddChildAfter = AddChildAfter;\n function ReconcileChildren(node, nextChildren) {\n const rootNode = node.node;\n if (nextChildren.size === 0) {\n nodeConfig_1.NodeConfig.replaceChildren(rootNode, []);\n return;\n }\n let priorNode;\n let curDataNode = nextChildren?.head;\n let insert = false;\n let remove = false;\n while (curDataNode) {\n for (let x = 0; x < curDataNode.data.nodes.length; x++) {\n const actualNode = priorNode ? nodeConfig_1.NodeConfig.getNextSibling(priorNode) : nodeConfig_1.NodeConfig.getFirstChild(rootNode);\n const virtualNode = curDataNode.data.nodes[x];\n const expectedNode = virtualNode.node;\n if (actualNode !== expectedNode) {\n nodeConfig_1.NodeConfig.addChildBefore(rootNode, actualNode, expectedNode);\n !remove && insert && actualNode && nodeConfig_1.NodeConfig.removeChild(rootNode, actualNode);\n remove = insert;\n insert = true;\n }\n else {\n insert = false;\n remove = false;\n }\n priorNode = expectedNode;\n }\n curDataNode = curDataNode.next;\n }\n let lastChild = nodeConfig_1.NodeConfig.getLastChild(rootNode);\n while (priorNode && priorNode !== lastChild) {\n nodeConfig_1.NodeConfig.removeChild(rootNode, lastChild);\n lastChild = nodeConfig_1.NodeConfig.getLastChild(rootNode);\n }\n }\n NodeRef.ReconcileChildren = ReconcileChildren;\n function DetachChild(node, child) {\n if (!Array.isArray(node.childNodes) && node.childNodes.delete(child)) {\n nodeConfig_1.NodeConfig.removeChild(node.node, child.node);\n child.parent = null;\n }\n }\n NodeRef.DetachChild = DetachChild;\n function Destroy(node) {\n if (node.destroyed)\n return;\n node.destroyed = true;\n if (Array.isArray(node.childNodes))\n for (let x = 0; x < node.childNodes.length; x++)\n Destroy(node.childNodes[x]);\n else\n node.childNodes?.forEach(Destroy);\n switch (node.type) {\n case NodeRefType.ComponentNode:\n node.component?.Destroy();\n case NodeRefType.ElementNode:\n node.assignEvents?.(null);\n case NodeRefType.BoundNode:\n for (let x = 0; node.scopes && x < node.scopes.length; x++)\n Store_1.ObservableScope.Destroy(node.scopes[x]);\n }\n node.node = null;\n }\n NodeRef.Destroy = Destroy;\n function DestroyAll(nodes) {\n for (let x = 0; x < nodes.length; x++)\n Destroy(nodes[x]);\n }\n NodeRef.DestroyAll = DestroyAll;\n})(NodeRef || (exports.NodeRef = NodeRef = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiffAsync = void 0;\nconst workerQueue_1 = require(\"./workerQueue\");\nconst diffWorker_1 = require(\"./diffWorker\");\nclass DiffAsync {\n constructor(keyFunc) {\n this.workerQueue = new workerQueue_1.WorkerQueue(diffWorker_1.DiffWorker.Create());\n this.workerQueue.Push({ method: \"create\", arguments: keyFunc ? [keyFunc.toString()] : [] });\n }\n async DiffPath(path, value) {\n return await this.workerQueue.Push({ method: \"diffpath\", arguments: [path, value] });\n }\n async DiffBatch(data) {\n return await this.workerQueue.Push({ method: \"diffbatch\", arguments: [data] });\n }\n Destroy() {\n this.workerQueue.Destroy();\n }\n}\nexports.DiffAsync = DiffAsync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiffSync = void 0;\nconst json_1 = require(\"../../Utils/json\");\nconst diffTree_1 = require(\"./diffTree\");\nconst diffCnstr = (0, diffTree_1.DiffTreeFactory)(json_1.JsonDiffFactory);\nclass DiffSync {\n constructor(keyFunc) {\n this.diffTree = new diffCnstr(keyFunc);\n }\n DiffPath(path, value) {\n return this.diffTree.DiffPath(path, value);\n }\n DiffBatch(data) {\n return this.diffTree.DiffBatch(data);\n }\n}\nexports.DiffSync = DiffSync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiffTreeFactory = DiffTreeFactory;\nfunction DiffTreeFactory(jsonDiffFactory, worker) {\n const { JsonDiff, JsonType, JsonDeepClone } = jsonDiffFactory();\n const ctx = this;\n if (worker && ctx) {\n let diffTree = null;\n ctx.onmessage = function (event) {\n const data = event.data;\n switch (data.method) {\n case \"create\": {\n const keyFunc = data.arguments[0]\n ? eval(data.arguments[0])\n : undefined;\n diffTree = new DiffTree(keyFunc);\n ctx.postMessage(null);\n break;\n }\n case \"diffpath\": {\n const diff = diffTree.DiffPath(data.arguments[0], data.arguments[1]);\n ctx.postMessage(diff);\n break;\n }\n case \"diffbatch\": {\n const diff = diffTree.DiffBatch(data.arguments[0]);\n ctx.postMessage(diff);\n break;\n }\n case \"getpath\": {\n const ret = diffTree.GetPath(data.arguments[0]);\n ctx.postMessage(ret);\n break;\n }\n }\n };\n }\n function FlattenValue(root, value, keyFunc) {\n const type = JsonType(value);\n switch (type) {\n case \"array\":\n const typedArray = value;\n for (let x = 0; x < typedArray.length; x++)\n FlattenValue(root, typedArray[x], keyFunc);\n break;\n case \"object\":\n const typedObject = value;\n const key = keyFunc(typedObject);\n if (key)\n root[key] = typedObject;\n const keys = Object.keys(typedObject);\n for (let x = 0; x < keys.length; x++)\n FlattenValue(root, typedObject[keys[x]], keyFunc);\n }\n return root;\n }\n function GetPathValue(source, path) {\n if (path === \"\")\n return source;\n const parts = path.split(\".\");\n let curr = source;\n for (let x = 0; x < parts.length; x++)\n curr = curr[parts[x]];\n return curr;\n }\n function SetPathValue(source, path, value) {\n if (path.length === 0)\n return;\n let curr = source;\n let x = 0;\n for (; x < path.length - 1; x++)\n curr = curr[path[x]];\n curr[path[x]] = value;\n }\n function ResolveKeyPath(source, path, keyFunc) {\n const parts = path.split('.');\n const pathValues = new Array(parts.length - 1);\n let curr = source;\n for (let x = 0; x < parts.length - 1; x++) {\n curr = curr[parts[x]];\n pathValues[x] = curr;\n }\n let y = pathValues.length - 1;\n for (; y >= 0 && !(JsonType(pathValues[y]) === 'object' && keyFunc(pathValues[y])); y--) { }\n if (y >= 0) {\n const key = keyFunc(pathValues[y]);\n parts.splice(0, y + 1, key);\n return parts.join('.');\n }\n return path;\n }\n function UpdateSource(source, path, value, keyFunc) {\n const diffResult = [];\n if (keyFunc) {\n const keyPath = ResolveKeyPath(source, path, keyFunc);\n if (keyPath !== path) {\n const keyDiffResult = UpdateSource(source, keyPath, value, keyFunc);\n diffResult.push(...keyDiffResult);\n }\n }\n const sourceValue = GetPathValue(source, path);\n JsonDiff(value, sourceValue, path, diffResult);\n if (keyFunc) {\n let flattened = {};\n flattened = FlattenValue(flattened, value, keyFunc);\n flattened = JsonDeepClone(flattened);\n const keys = Object.keys(flattened);\n for (let x = 0; x < keys.length; x++)\n JsonDiff(flattened[keys[x]], source[keys[x]], keys[x], diffResult);\n }\n const filteredDiffResult = diffResult.filter((diff) => diff.value !== undefined);\n for (let x = 0; x < filteredDiffResult.length; x++) {\n SetPathValue(source, filteredDiffResult[x].path, filteredDiffResult[x].value);\n }\n return diffResult;\n }\n class DiffTree {\n constructor(keyFunc) {\n this.keyFunc = keyFunc;\n this.rootState = {};\n }\n DiffBatch(data) {\n const results = data\n .map(({ path, value }) => this.DiffPath(path, value))\n .flat(1);\n return results;\n }\n DiffPath(path, value) {\n return UpdateSource(this.rootState, path, value, this.keyFunc);\n }\n GetPath(path) {\n return GetPathValue(this.rootState, path);\n }\n }\n return DiffTree;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DiffWorker = void 0;\nconst json_1 = require(\"../../Utils/json\");\nconst diffTree_1 = require(\"./diffTree\");\nvar DiffWorker;\n(function (DiffWorker) {\n let workerConstructor = null;\n let workerParameter = null;\n if (typeof Worker !== \"undefined\") {\n workerConstructor = Worker;\n workerParameter = URL.createObjectURL(new Blob([`(${diffTree_1.DiffTreeFactory}).call(this, (${json_1.JsonDiffFactory}), true)`]));\n }\n function Create() {\n if (!workerConstructor)\n throw \"Worker is not available\";\n return new workerConstructor(workerParameter);\n }\n DiffWorker.Create = Create;\n})(DiffWorker || (exports.DiffWorker = DiffWorker = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WorkerQueue = void 0;\nconst list_1 = require(\"../../Utils/list\");\nclass WorkerQueue {\n constructor(worker) {\n this.worker = worker;\n this.callbacks = list_1.List.Create();\n this.worker.onerror = (err) => {\n const cb = list_1.List.Pop(this.callbacks);\n cb && cb(null, err);\n };\n this.worker.onmessage = (message) => {\n const cb = list_1.List.Pop(this.callbacks);\n cb && cb(message.data);\n };\n }\n Push(message) {\n return new Promise((resolve, reject) => {\n list_1.List.Add(this.callbacks, function (data, err) {\n if (err)\n reject(err);\n else\n resolve(data);\n });\n this.worker.postMessage(message);\n });\n }\n Destroy() {\n this.worker.terminate();\n }\n}\nexports.WorkerQueue = WorkerQueue;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Store = void 0;\nconst observableNode_1 = require(\"../Tree/observableNode\");\nclass Store {\n constructor(keyFunc) {\n this.keyFunc = keyFunc;\n this.rootMap = new Map();\n const aliasFunc = keyFunc &&\n ((value) => {\n const key = keyFunc(value);\n if (key === undefined)\n return undefined;\n const rootObject = this.rootMap.get(key);\n if (rootObject === undefined)\n throw `No root object found for key: ${key}`;\n const rootValue = rootObject[observableNode_1.GET_OBSERVABLE_VALUE];\n const alias = rootValue[key];\n return alias;\n });\n this.createNode = aliasFunc\n ? observableNode_1.ObservableNode.CreateFactory(aliasFunc)\n : observableNode_1.ObservableNode.Create;\n }\n Get(id, defaultValue) {\n let result = this.rootMap.get(id);\n if (result === undefined) {\n result = this.createNode({ [id]: defaultValue });\n this.rootMap.set(id, result);\n }\n return result[id];\n }\n UpdateRootMap(results) {\n for (let x = 0; x < results.length;) {\n const root = results[x].path[0];\n const startIndex = x;\n while (x < results.length && results[x].path[0] === root)\n x++;\n const rootGroup = results.slice(startIndex, x);\n this.UpdateRootObject(rootGroup[0].path[0], rootGroup);\n }\n }\n UpdateRootObject(rootPath, results) {\n const rootObject = this.rootMap.get(rootPath);\n if (rootObject === undefined) {\n if (results.length > 1 || results[0].path.length > 1)\n throw `Unable to initialize root path ${rootPath} with ${results.length} results and initial path ${results[0].path}`;\n const newRootObject = this.createNode({ [rootPath]: results[0].value });\n this.rootMap.set(rootPath, newRootObject);\n return;\n }\n observableNode_1.ObservableNode.ApplyDiff(rootObject, results);\n }\n}\nexports.Store = Store;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StoreAsync = void 0;\nconst asyncQueue_1 = require(\"../../Utils/asyncQueue\");\nconst json_1 = require(\"../../Utils/json\");\nconst diffAsync_1 = require(\"../Diff/diffAsync\");\nconst observableNode_1 = require(\"../Tree/observableNode\");\nconst store_1 = require(\"./store\");\nclass StoreAsync extends store_1.Store {\n constructor(keyFunc) {\n super(keyFunc);\n this.queue = new asyncQueue_1.AsyncQueue();\n this.diff = new diffAsync_1.DiffAsync(keyFunc);\n }\n async Write(data, key) {\n await this.queue.Next(async () => {\n key = key || this.keyFunc?.(data);\n if (!key)\n throw \"No key provided for data\";\n const diffResult = await this.diff.DiffPath(key, data);\n this.UpdateRootMap(diffResult);\n });\n }\n async Patch(key, patch) {\n await this.queue.Next(async () => {\n const value = this.Get(key);\n if (value === undefined)\n throw \"Unable to patch undefined value\";\n const json = value.toJSON();\n const mergedJson = (0, json_1.JsonMerge)(json, patch);\n const diffResult = await this.diff.DiffPath(key, mergedJson);\n this.UpdateRootMap(diffResult);\n });\n }\n async Push(key, ...data) {\n await this.queue.Next(async () => {\n const arr = this.Get(key);\n const batch = data.map(function (d, i) {\n return {\n path: `${key}.${arr.length + i}`,\n value: d,\n };\n });\n const diffResult = await this.diff.DiffBatch(batch);\n this.UpdateRootMap(diffResult);\n });\n }\n async Splice(key, start, deleteCount, ...items) {\n return await this.queue.Next(async () => {\n const arr = this.Get(key);\n const arrValue = arr[observableNode_1.GET_OBSERVABLE_VALUE];\n const arrCopy = arrValue.slice();\n const spliceResult = (0, json_1.JsonDeepClone)(arrCopy.splice(start, deleteCount, ...items));\n const diffResult = await this.diff.DiffPath(key, arrCopy);\n this.UpdateRootMap(diffResult);\n return spliceResult;\n });\n }\n Destroy() {\n this.queue.Stop();\n this.diff.Destroy();\n }\n}\nexports.StoreAsync = StoreAsync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StoreSync = void 0;\nconst json_1 = require(\"../../Utils/json\");\nconst diffSync_1 = require(\"../Diff/diffSync\");\nconst observableNode_1 = require(\"../Tree/observableNode\");\nconst store_1 = require(\"./store\");\nclass StoreSync extends store_1.Store {\n constructor(keyFunc) {\n super(keyFunc);\n this.diff = new diffSync_1.DiffSync(keyFunc);\n }\n Write(data, key) {\n key = key || this.keyFunc?.(data);\n if (!key)\n throw \"No key provided for data\";\n const diffResult = this.diff.DiffPath(key, data);\n this.UpdateRootMap(diffResult);\n }\n Patch(key, patch) {\n const value = this.Get(key);\n if (value === undefined)\n throw \"Unable to patch undefined value\";\n const json = value.toJSON();\n const mergedJson = (0, json_1.JsonMerge)(json, patch);\n const diffResult = this.diff.DiffPath(key, mergedJson);\n this.UpdateRootMap(diffResult);\n }\n Push(key, ...data) {\n const arr = this.Get(key);\n const batch = data.map(function (d, i) {\n return {\n path: `${key}.${arr.length + i}`,\n value: d,\n };\n });\n const diffResult = this.diff.DiffBatch(batch);\n this.UpdateRootMap(diffResult);\n }\n Splice(key, start, deleteCount, ...items) {\n const arr = this.Get(key);\n const arrValue = arr[observableNode_1.GET_OBSERVABLE_VALUE];\n const arrCopy = arrValue.slice();\n const spliceResult = (0, json_1.JsonDeepClone)(arrCopy.splice(start, deleteCount, ...items));\n const diffResult = this.diff.DiffPath(key, arrCopy);\n this.UpdateRootMap(diffResult);\n return spliceResult;\n }\n}\nexports.StoreSync = StoreSync;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObservableNode = exports.GET_TO_JSON = exports.GET_OBSERVABLE_VALUE = exports.IS_OBSERVABLE_NODE = void 0;\nconst json_1 = require(\"../../Utils/json\");\nconst jsonType_1 = require(\"../../Utils/jsonType\");\nconst observableScope_1 = require(\"./observableScope\");\nexports.IS_OBSERVABLE_NODE = \"____isObservableNode\";\nexports.GET_OBSERVABLE_VALUE = \"____getObservableValue\";\nexports.GET_TO_JSON = \"toJSON\";\nconst proxyCache = new WeakMap();\nconst scopeCache = new WeakMap();\nfunction getOwnPropertyDescriptor(target, prop) {\n const descriptor = Object.getOwnPropertyDescriptor(target, prop);\n return {\n ...descriptor,\n configurable: true,\n };\n}\nfunction getOwnPropertyDescriptorArray(target, prop) {\n const descriptor = Object.getOwnPropertyDescriptor(target, prop);\n return {\n ...descriptor,\n configurable: true,\n };\n}\nfunction has(value, prop) {\n return Object.hasOwn(value, prop);\n}\nfunction hasArray(value, prop) {\n return Object.hasOwn(value, prop);\n}\nfunction ownKeys(value) {\n return Object.keys(value);\n}\nfunction ownKeysArray(value) {\n return Object.keys(value);\n}\nfunction UnwrapProxy(value) {\n const type = (0, jsonType_1.JsonType)(value);\n if (type === \"value\")\n return value;\n if (value[exports.IS_OBSERVABLE_NODE] === true)\n return value[exports.GET_OBSERVABLE_VALUE];\n switch (type) {\n case \"object\": {\n const keys = Object.keys(value);\n for (let x = 0; x < keys.length; x++)\n value[keys[x]] = UnwrapProxy(value[keys[x]]);\n }\n case \"array\": {\n for (let x = 0; x < value.length; x++)\n value[x] = UnwrapProxy(value[x]);\n }\n }\n return value;\n}\nlet applyingDiff = false;\nfunction CreateProxyFactory(alias) {\n function CreateProxy(value) {\n value = UnwrapProxy(value);\n return CreateProxyFromValue(value);\n }\n function ToJsonCopy(value) {\n const type = (0, jsonType_1.JsonType)(value);\n switch (type) {\n case \"array\": {\n const typedValue = value;\n const proxy = CreateProxy(typedValue);\n return proxy.map(ToJsonCopy);\n break;\n }\n case \"object\": {\n const typedValue = alias(value) ?? value;\n const proxy = CreateProxy(typedValue);\n const keys = Object.keys(proxy);\n const copy = {};\n for (let x = 0; x < keys.length; x++)\n copy[keys[x]] = ToJsonCopy(typedValue[keys[x]]);\n return copy;\n }\n default:\n return value;\n }\n }\n function ToJsonDefault(value) {\n return value;\n }\n const ToJson = alias !== undefined ? ToJsonCopy : ToJsonDefault;\n const readOnly = alias !== undefined;\n function CreateArrayProxy(value) {\n const scope = observableScope_1.ObservableScope.Create(() => value);\n const proxy = new Proxy(value, {\n get: ArrayProxyGetter,\n set: ArrayProxySetter,\n has: hasArray,\n ownKeys: ownKeysArray,\n getOwnPropertyDescriptor: getOwnPropertyDescriptorArray,\n });\n scopeCache.set(value, scope);\n proxyCache.set(value, proxy);\n return proxy;\n }\n function CreateObjectProxy(value) {\n const scope = observableScope_1.ObservableScope.Create(() => value);\n const proxy = new Proxy(value, {\n get: ObjectProxyGetter,\n set: ObjectProxySetter,\n has,\n ownKeys,\n getOwnPropertyDescriptor,\n });\n scopeCache.set(value, scope);\n proxyCache.set(value, proxy);\n return proxy;\n }\n function ArrayProxySetter(array, prop, value) {\n if (readOnly && !applyingDiff)\n throw `Object is readonly`;\n if (prop === exports.IS_OBSERVABLE_NODE)\n throw `Cannot assign read-only property: ${exports.IS_OBSERVABLE_NODE}`;\n value = UnwrapProxy(value);\n array[prop] = value;\n const scope = scopeCache.get(array);\n observableScope_1.ObservableScope.Update(scope);\n return true;\n }\n function ArrayProxyGetter(array, prop) {\n if (prop === exports.IS_OBSERVABLE_NODE)\n return true;\n if (readOnly && !applyingDiff)\n switch (prop) {\n case \"push\":\n case \"unshift\":\n case \"splice\":\n case \"pop\":\n case \"shift\":\n case \"sort\":\n case \"reverse\":\n if (readOnly && !applyingDiff)\n throw `Object is readonly`;\n }\n const scope = scopeCache.get(array);\n array = observableScope_1.ObservableScope.Value(scope);\n switch (prop) {\n case exports.GET_TO_JSON:\n return function () {\n return ToJson(array);\n };\n case exports.GET_OBSERVABLE_VALUE:\n return array;\n default: {\n const arrayValue = array[prop];\n if (typeof prop === \"symbol\")\n return arrayValue;\n if (typeof arrayValue === \"function\")\n return function ArrayFunction(...args) {\n const proxyArray = prop === \"slice\" ? array.slice(...args) : array.slice();\n for (let x = 0; x < proxyArray.length; x++)\n proxyArray[x] = CreateProxyFromValue(proxyArray[x]);\n let result = prop === \"slice\"\n ? proxyArray\n : proxyArray[prop](...args);\n switch (prop) {\n case \"push\":\n case \"unshift\":\n case \"splice\":\n case \"pop\":\n case \"shift\":\n case \"sort\":\n case \"reverse\":\n array.length = proxyArray.length;\n for (let x = 0; x < proxyArray.length; x++)\n array[x] = UnwrapProxy(proxyArray[x]);\n observableScope_1.ObservableScope.Update(scope);\n break;\n }\n return result;\n };\n const proxy = CreateProxyFromValue(arrayValue);\n return proxy;\n }\n }\n }\n function ObjectProxySetter(object, prop, value) {\n if (readOnly && !applyingDiff)\n throw `Object is readonly`;\n if (prop === exports.IS_OBSERVABLE_NODE)\n throw `Cannot assign read-only property: ${exports.IS_OBSERVABLE_NODE}`;\n const scope = scopeCache.get(object);\n value = UnwrapProxy(value);\n if (applyingDiff) {\n object[prop] = value;\n observableScope_1.ObservableScope.Update(scope);\n }\n else {\n applyingDiff = true;\n const diff = (0, json_1.JsonDiff)(value, object[prop]);\n for (let x = 0; x < diff.length; x++) {\n if (diff[x].path.length === 0) {\n const proxy = proxyCache.get(object);\n proxy[prop] = diff[x].value;\n }\n else {\n const path = diff[x].path;\n let curr = object[prop];\n let y = 0;\n for (; y < path.length - 1; y++)\n curr = curr[path[y]];\n const target = proxyCache.get(curr) ?? curr;\n target[path[y]] = diff[x].value;\n }\n }\n applyingDiff = false;\n }\n return true;\n }\n function ObjectProxyGetter(object, prop) {\n if (prop === exports.IS_OBSERVABLE_NODE)\n return true;\n const scope = scopeCache.get(object);\n object = observableScope_1.ObservableScope.Value(scope);\n switch (prop) {\n case exports.GET_TO_JSON:\n return function () {\n return ToJson(object);\n };\n case exports.GET_OBSERVABLE_VALUE:\n return object;\n default: {\n const proxyValue = object[prop];\n if (typeof prop === \"symbol\")\n return proxyValue;\n const proxy = CreateProxyFromValue(proxyValue);\n return proxy;\n }\n }\n }\n function CreateProxyFromValue(value) {\n const type = (0, jsonType_1.JsonType)(value);\n switch (type) {\n case \"object\": {\n let proxy = proxyCache.get(value) ?? CreateObjectProxy(value);\n if (alias !== undefined) {\n const aliasValue = alias(proxy);\n if (aliasValue !== undefined)\n proxy = proxyCache.get(aliasValue) ?? CreateObjectProxy(aliasValue);\n }\n return proxy;\n }\n case \"array\": {\n const proxy = proxyCache.get(value) ?? CreateArrayProxy(value);\n observableScope_1.ObservableScope.Touch(scopeCache.get(value));\n return proxy;\n }\n default:\n return value;\n }\n }\n return CreateProxy;\n}\nconst DefaultCreateProxy = CreateProxyFactory();\nvar ObservableNode;\n(function (ObservableNode) {\n function Create(value) {\n return DefaultCreateProxy(value);\n }\n ObservableNode.Create = Create;\n function Touch(value) {\n const scope = scopeCache.get(value);\n observableScope_1.ObservableScope.Update(scope);\n }\n ObservableNode.Touch = Touch;\n function EnableDiff(value) {\n applyingDiff = value;\n }\n ObservableNode.EnableDiff = EnableDiff;\n function ApplyDiff(rootNode, diffResult) {\n const root = rootNode[exports.GET_OBSERVABLE_VALUE];\n const pathTuples = [[\"\", root]];\n for (let x = 0; x < diffResult.length; x++) {\n const { path, value } = diffResult[x];\n let y = 0;\n for (; y < path.length - 1; y++) {\n const property = path[y];\n const value = pathTuples[y][1];\n const tupleIndex = y + 1;\n if (pathTuples.length <= tupleIndex)\n pathTuples.push([property, value[property]]);\n else if (pathTuples[tupleIndex][0] !== property) {\n pathTuples[tupleIndex][0] = property;\n pathTuples[tupleIndex][1] = value[property];\n const next = tupleIndex + 1;\n if (next < pathTuples.length)\n pathTuples[next][0] = null;\n }\n }\n const assignValue = pathTuples[y][1];\n assignValue[path[y]] = value;\n ObservableNode.Touch(assignValue);\n }\n }\n ObservableNode.ApplyDiff = ApplyDiff;\n function CreateFactory(alias) {\n return CreateProxyFactory(alias);\n }\n ObservableNode.CreateFactory = CreateFactory;\n})(ObservableNode || (exports.ObservableNode = ObservableNode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObservableScope = exports.ObservableScopeWrapper = exports.ObservableScopeValue = void 0;\nconst array_1 = require(\"../../Utils/array\");\nconst emitter_1 = require(\"../../Utils/emitter\");\nclass ObservableScopeValue {\n get Value() {\n return ObservableScope.Value(this.scope);\n }\n constructor(scope) {\n this.scope = scope;\n }\n}\nexports.ObservableScopeValue = ObservableScopeValue;\nclass ObservableScopeWrapper extends ObservableScopeValue {\n constructor(scope) {\n super(scope);\n if (scope.emitter) {\n this.scopeEmitter = emitter_1.Emitter.Create();\n emitter_1.Emitter.On(scope.emitter, () => emitter_1.Emitter.Emit(this.scopeEmitter, this));\n }\n }\n Scope(callback) {\n return new ObservableScope(() => callback(this.Value));\n }\n Watch(callback) {\n if (!this.scopeEmitter)\n return;\n emitter_1.Emitter.On(this.scopeEmitter, callback);\n callback(this);\n }\n Unwatch(callback) {\n if (!this.scopeEmitter)\n return;\n emitter_1.Emitter.Remove(this.scopeEmitter, callback);\n }\n Destroy() {\n DestroyScope(this.scope);\n this.scopeEmitter && emitter_1.Emitter.Clear(this.scopeEmitter);\n }\n}\nexports.ObservableScopeWrapper = ObservableScopeWrapper;\nclass ObservableScope extends ObservableScopeWrapper {\n constructor(getFunction) {\n super(ObservableScope.Create(getFunction));\n }\n}\nexports.ObservableScope = ObservableScope;\nlet currentSet = null;\nlet currentCalc = null;\nlet watching = false;\nfunction WatchAction(action) {\n const parentSet = currentSet;\n const parentCalc = currentCalc;\n currentSet = null;\n currentCalc = null;\n const parentWatching = watching;\n watching = true;\n action();\n const lastSet = currentSet;\n const lastCalc = currentCalc;\n currentSet = parentSet;\n currentCalc = parentCalc;\n watching = parentWatching;\n return [lastSet, lastCalc];\n}\n(function (ObservableScope) {\n function Create(valueFunction) {\n const hasFunction = typeof valueFunction === \"function\";\n const scope = {\n getFunction: hasFunction ? valueFunction : null,\n value: hasFunction ? null : valueFunction,\n async: hasFunction\n ? valueFunction[Symbol.toStringTag] === \"AsyncFunction\"\n : false,\n dirty: hasFunction,\n emitter: hasFunction ? emitter_1.Emitter.Create() : null,\n emitters: [],\n destroyed: false,\n calc: null,\n setCallback: hasFunction\n ? function () {\n return OnSet(scope);\n }\n : null,\n };\n return scope;\n }\n ObservableScope.Create = Create;\n function Register(emitter) {\n if (!watching || !emitter)\n return;\n currentSet ??= new Set();\n currentSet.add(emitter);\n }\n ObservableScope.Register = Register;\n function Calc(value) {\n currentCalc ??= [];\n currentCalc.push(value);\n return value;\n }\n ObservableScope.Calc = Calc;\n function Value(scope) {\n if (!scope)\n return undefined;\n Register(scope.emitter);\n UpdateValue(scope);\n return scope.value;\n }\n ObservableScope.Value = Value;\n function Watching() {\n return watching;\n }\n ObservableScope.Watching = Watching;\n function Touch(scope) {\n if (!scope || !scope.emitter)\n return;\n Register(scope.emitter);\n }\n ObservableScope.Touch = Touch;\n function Watch(scope, callback) {\n if (!scope || !scope.emitter)\n return;\n emitter_1.Emitter.On(scope.emitter, callback);\n }\n ObservableScope.Watch = Watch;\n function Unwatch(scope, callback) {\n if (!scope || !scope.emitter)\n return;\n emitter_1.Emitter.Remove(scope.emitter, callback);\n }\n ObservableScope.Unwatch = Unwatch;\n function Update(scope) {\n OnSet(scope);\n }\n ObservableScope.Update = Update;\n function Destroy(scope) {\n DestroyScope(scope);\n }\n ObservableScope.Destroy = Destroy;\n})(ObservableScope || (exports.ObservableScope = ObservableScope = {}));\nfunction OnSet(scope) {\n if (!scope || scope.dirty || scope.destroyed)\n return scope?.destroyed;\n scope.dirty = !!scope.getFunction;\n emitter_1.Emitter.Emit(scope.emitter, scope);\n return false;\n}\nfunction UpdateValue(scope) {\n if (!scope.dirty)\n return;\n scope.dirty = false;\n let value = null;\n const [emitters, calc] = scope.getFunction && WatchAction(() => (value = scope.getFunction()));\n let diff = calc === null || (0, array_1.ArrayDiff)(scope.calc, calc);\n scope.calc = calc;\n if (diff && scope.async)\n Promise.resolve(value).then((val) => {\n scope.value = val;\n emitter_1.Emitter.Emit(scope.emitter, scope);\n });\n else if (diff)\n scope.value = value;\n UpdateEmitters(scope, emitters);\n}\nfunction DestroyScope(scope) {\n if (!scope)\n return;\n scope.emitters = null;\n scope.emitter = null;\n scope.getFunction = null;\n scope.setCallback = null;\n scope.destroyed = true;\n}\nfunction UpdateEmitters(scope, newEmitters) {\n if (newEmitters === null) {\n for (let x = 0; x < scope.emitters.length; x++)\n emitter_1.Emitter.Remove(scope.emitters[x], scope.setCallback);\n scope.emitters = [];\n return;\n }\n let removed = false;\n for (let x = 0; x < scope.emitters.length; x++) {\n if (!newEmitters.delete(scope.emitters[x])) {\n emitter_1.Emitter.Remove(scope.emitters[x], scope.setCallback);\n scope.emitters[x] = null;\n removed = true;\n }\n }\n const initLength = scope.emitters.length;\n scope.emitters.push(...newEmitters);\n for (let x = initLength; x < scope.emitters.length; x++)\n emitter_1.Emitter.On(scope.emitters[x], scope.setCallback);\n removed && (0, array_1.RemoveNulls)(scope.emitters);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calc = exports.ObservableNode = exports.ObservableScope = exports.StoreAsync = exports.StoreSync = void 0;\nconst web_export_1 = require(\"../web.export\");\nvar storeSync_1 = require(\"./Store/storeSync\");\nObject.defineProperty(exports, \"StoreSync\", { enumerable: true, get: function () { return storeSync_1.StoreSync; } });\nvar storeAsync_1 = require(\"./Store/storeAsync\");\nObject.defineProperty(exports, \"StoreAsync\", { enumerable: true, get: function () { return storeAsync_1.StoreAsync; } });\nvar observableScope_1 = require(\"./Tree/observableScope\");\nObject.defineProperty(exports, \"ObservableScope\", { enumerable: true, get: function () { return observableScope_1.ObservableScope; } });\nvar observableNode_1 = require(\"./Tree/observableNode\");\nObject.defineProperty(exports, \"ObservableNode\", { enumerable: true, get: function () { return observableNode_1.ObservableNode; } });\nexports.calc = web_export_1.ObservableScope.Calc;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Animation = exports.AnimationType = void 0;\nvar StepFunctions;\n(function (StepFunctions) {\n function* EaseIn(count) {\n var diff = 1 / count;\n for (var t = diff, x = 0; x < count; x++, t += diff)\n yield (1 - t) * (1 - t) * (1 - t) * 0 + 3 * (1 - t) * (1 - t) * t * 1 + 3 * (1 - t) * t * t * 1 + t * t * t * 1;\n }\n StepFunctions.EaseIn = EaseIn;\n function* Linear(count) {\n var diff = 1 / count;\n for (var t = diff, x = 0; x < count; x++, t += diff)\n yield t;\n }\n StepFunctions.Linear = Linear;\n})(StepFunctions || (StepFunctions = {}));\nvar AnimationType;\n(function (AnimationType) {\n AnimationType[AnimationType[\"Linear\"] = 0] = \"Linear\";\n AnimationType[AnimationType[\"EaseIn\"] = 1] = \"EaseIn\";\n})(AnimationType || (exports.AnimationType = AnimationType = {}));\nclass Animation {\n get Running() {\n return this.running;\n }\n get Start() {\n return this.start;\n }\n get End() {\n return this.end;\n }\n get Enabled() {\n return this.enabled;\n }\n constructor(type, duration, update) {\n this.running = false;\n this.start = null;\n this.end = null;\n this.enabled = true;\n this.type = type;\n this.frameCount = Math.ceil((duration / 1000) * 60);\n this.frameTimings = [];\n var frameTime = duration / this.frameCount;\n for (var x = 0; x < this.frameCount; x++)\n this.frameTimings[x] = (x + 1) * frameTime;\n this.update = update;\n this.animationTimeouts = [];\n }\n Animate(start, end) {\n if (!this.enabled)\n return;\n var diff = end - start;\n if (diff === 0)\n return;\n this.Cancel();\n this.running = true;\n this.start = start;\n this.end = end;\n return new Promise(resolve => {\n var stepFunc = StepFunctions[AnimationType[this.type]];\n var index = 0;\n for (var step of stepFunc(this.frameCount)) {\n var value = (step * diff) + start;\n this.SetTimeout(index, value, index === (this.frameCount - 1) ? resolve : null);\n index++;\n }\n }).then(() => {\n this.running = false;\n this.start = null;\n this.end = null;\n });\n }\n Disable() {\n this.Cancel();\n this.enabled = false;\n }\n Enable() {\n this.enabled = true;\n }\n Cancel() {\n for (var x = 0; x < this.animationTimeouts.length; x++)\n clearTimeout(this.animationTimeouts[x]);\n this.running = false;\n this.start = null;\n this.end = null;\n }\n Destroy() {\n this.Cancel();\n }\n SetTimeout(index, value, resolve) {\n this.animationTimeouts[index] = setTimeout(() => {\n this.update(value);\n resolve && resolve();\n }, this.frameTimings[index]);\n }\n}\nexports.Animation = Animation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RemoveNulls = RemoveNulls;\nexports.ArrayDiff = ArrayDiff;\nfunction RemoveNulls(array, startIndex = 0) {\n let nullIndex = startIndex;\n for (; nullIndex < array.length && array[nullIndex] !== null; nullIndex++) { }\n let notNullIndex = nullIndex + 1;\n for (; notNullIndex < array.length && array[notNullIndex] === null; notNullIndex++) { }\n while (notNullIndex < array.length) {\n array[nullIndex] = array[notNullIndex];\n nullIndex++;\n notNullIndex++;\n for (; notNullIndex < array.length && array[notNullIndex] === null; notNullIndex++) { }\n }\n array.splice(nullIndex);\n}\nfunction ArrayDiff(source, target) {\n if (source === target)\n return false;\n if (!source || !target || source.length !== target.length)\n return true;\n let x = 0;\n for (; x < source.length && source[x] === target[x]; x++) { }\n return x < source.length;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AsyncQueue = void 0;\nconst list_1 = require(\"./list\");\nclass AsyncQueue {\n constructor() {\n this.running = false;\n this.queue = list_1.List.Create();\n }\n Next(callback) {\n const ret = new Promise((resolve, reject) => {\n list_1.List.Add(this.queue, async function () {\n try {\n const ret = await callback();\n resolve(ret);\n }\n catch (e) {\n reject(e);\n }\n });\n });\n this.Start();\n return ret;\n }\n Stop() {\n list_1.List.Clear(this.queue);\n }\n Start() {\n if (this.running)\n return;\n this.running = true;\n this.ExecuteQueue();\n }\n async ExecuteQueue() {\n const callback = list_1.List.Pop(this.queue);\n if (callback !== null) {\n await callback();\n this.ExecuteQueue();\n }\n else\n this.running = false;\n }\n}\nexports.AsyncQueue = AsyncQueue;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.State = State;\nexports.Value = Value;\nexports.Scope = Scope;\nexports.Inject = Inject;\nexports.Destroy = Destroy;\nexports.PreReqTemplate = PreReqTemplate;\nexports.PreReq = PreReq;\nconst observableScope_1 = require(\"../Store/Tree/observableScope\");\nconst observableNode_1 = require(\"../Store/Tree/observableNode\");\nconst nodeInstanceMap = new WeakMap();\nconst scopeInstanceMap = new WeakMap();\nconst destroyPrototypeMap = new WeakMap();\nfunction GetNodeMapForInstance(instance) {\n const map = nodeInstanceMap.get(instance) ?? {};\n nodeInstanceMap.set(instance, map);\n return map;\n}\nfunction GetScopeMapForInstance(instance) {\n const map = scopeInstanceMap.get(instance) ?? {};\n scopeInstanceMap.set(instance, map);\n return map;\n}\nfunction GetDestroyArrayForPrototype(prototype) {\n const array = destroyPrototypeMap.get(prototype) ?? [];\n destroyPrototypeMap.set(prototype, array);\n return array;\n}\nfunction State() {\n return StateDecorator;\n}\nfunction StateDecorator(target, propertyKey) {\n return {\n configurable: false,\n enumerable: true,\n get: function () {\n const map = GetNodeMapForInstance(this);\n map[propertyKey] ??= observableNode_1.ObservableNode.Create({ root: undefined });\n return map[propertyKey].root;\n },\n set: function (val) {\n const map = GetNodeMapForInstance(this);\n if (map[propertyKey] === undefined)\n map[propertyKey] = observableNode_1.ObservableNode.Create({ root: val });\n else\n map[propertyKey].root = val;\n },\n };\n}\nfunction Value() {\n return ValueDecorator;\n}\nfunction ValueDecorator(target, propertyKey) {\n return {\n configurable: false,\n enumerable: true,\n get: function () {\n const propertyMap = GetScopeMapForInstance(this);\n propertyMap[propertyKey] ??= [null, undefined];\n const tuple = propertyMap[propertyKey];\n if (tuple[0] === null)\n tuple[0] = observableScope_1.ObservableScope.Create(function () {\n return tuple[1];\n });\n return observableScope_1.ObservableScope.Value(tuple[0]);\n },\n set: function (val) {\n const propertyMap = GetScopeMapForInstance(this);\n propertyMap[propertyKey] ??= [null, undefined];\n const tuple = propertyMap[propertyKey];\n tuple[1] = val;\n observableScope_1.ObservableScope.Update(tuple[0]);\n },\n };\n}\nfunction Scope() {\n return ScopeDecorator;\n}\nfunction ScopeDecorator(target, propertyKey, descriptor) {\n if (!(descriptor && descriptor.get))\n throw \"Scope decorator requires a getter\";\n if (descriptor && descriptor.set)\n throw \"Scope decorator does not support setters\";\n return {\n configurable: false,\n enumerable: true,\n get: function () {\n const propertyMap = GetScopeMapForInstance(this);\n propertyMap[propertyKey] ??= [null, undefined];\n const tuple = propertyMap[propertyKey];\n if (tuple[0] === null)\n tuple[0] = observableScope_1.ObservableScope.Create(descriptor.get.bind(this));\n return tuple[0];\n },\n };\n}\nfunction Inject(type) {\n return InjectorDecorator.bind(null, type);\n}\nfunction InjectorDecorator(type, target, propertyKey, descriptor) {\n return {\n configurable: false,\n enumerable: true,\n get: function () {\n return this.Injector.Get(type);\n },\n set: function (val) {\n this.Injector.Set(type, val);\n },\n };\n}\nfunction Destroy() {\n return DestroyDecorator;\n}\n(function (Destroy) {\n function All(value) {\n const scopeMap = scopeInstanceMap.get(value);\n if (scopeMap !== undefined) {\n const keys = Object.keys(scopeMap);\n for (let x = 0; x < keys.length; x++)\n observableScope_1.ObservableScope.Destroy(scopeMap[keys[x]][0]);\n }\n const array = GetDestroyArrayForPrototype(Object.getPrototypeOf(value));\n for (let x = 0; x < array.length; x++)\n value[array[x]].Destroy();\n }\n Destroy.All = All;\n})(Destroy || (exports.Destroy = Destroy = {}));\nfunction DestroyDecorator(target, propertyKey) {\n const array = GetDestroyArrayForPrototype(target);\n array.push(propertyKey);\n}\nfunction PreReqTemplate(template) {\n return PreReqTemplateDecorator.bind(null, template);\n}\n(function (PreReqTemplate) {\n function Get(value) {\n var func = value && value.PreReqTemplateDecorator_Template;\n var ret = func ? func() : [];\n if (!Array.isArray(ret))\n ret = [ret];\n return ret;\n }\n PreReqTemplate.Get = Get;\n})(PreReqTemplate || (exports.PreReqTemplate = PreReqTemplate = {}));\nfunction PreReqTemplateDecorator(template, target) {\n var proto = target.prototype;\n proto.PreReqTemplateDecorator_Template = template;\n}\nfunction PreReq() {\n return PreReqDecorator;\n}\n(function (PreReq) {\n function Get(value) {\n return (value && value.PreReqDecorator_PreReqs) || [];\n }\n function All(value) {\n var arr = Get(value).map((prop) => (value[prop] && value[prop].Init) ||\n Promise.resolve());\n return Promise.all(arr);\n }\n PreReq.All = All;\n function Has(value) {\n return Get(value).length > 0;\n }\n PreReq.Has = Has;\n})(PreReq || (exports.PreReq = PreReq = {}));\nfunction PreReqDecorator(target, propertyKey) {\n var proto = target;\n proto.PreReqDecorator_PreReqs = proto.PreReqDecorator_PreReqs || [];\n proto.PreReqDecorator_PreReqs.push(propertyKey);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Emitter = void 0;\nconst array_1 = require(\"./array\");\nvar Emitter;\n(function (Emitter) {\n function Create() {\n return [];\n }\n Emitter.Create = Create;\n function On(emitter, callback) {\n emitter.push(callback);\n }\n Emitter.On = On;\n function Emit(emitter, ...args) {\n let removed = false;\n for (let x = 0; x < emitter.length; x++) {\n const result = emitter[x]?.(...args);\n if (result === true) {\n removed = true;\n emitter[x] = null;\n }\n }\n if (removed)\n (0, array_1.RemoveNulls)(emitter);\n }\n Emitter.Emit = Emit;\n function Remove(emitter, callback) {\n const index = emitter.indexOf(callback);\n if (index >= 0) {\n emitter[index] = null;\n (0, array_1.RemoveNulls)(emitter, index);\n }\n }\n Emitter.Remove = Remove;\n function Clear(emitter) {\n emitter.splice(0);\n }\n Emitter.Clear = Clear;\n})(Emitter || (exports.Emitter = Emitter = {}));\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./decorators\"), exports);\n__exportStar(require(\"./animation\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Injector = void 0;\nclass Injector {\n constructor() {\n this.parent = Injector.Current();\n this.typeMap = new Map();\n }\n Get(type) {\n if (this.typeMap.size === 0)\n return this.parent && this.parent.Get(type);\n var ret = this.typeMap.get(type);\n if (!ret)\n ret = this.parent && this.parent.Get(type);\n return ret;\n }\n Set(type, instance) {\n this.typeMap.set(type, instance);\n }\n}\nexports.Injector = Injector;\n(function (Injector) {\n var scope = null;\n function Current() {\n return scope;\n }\n Injector.Current = Current;\n function Scope(injector, action, ...args) {\n var parent = Current();\n scope = injector;\n const ret = action(...args);\n scope = parent;\n return ret;\n }\n Injector.Scope = Scope;\n})(Injector || (exports.Injector = Injector = {}));\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonMerge = exports.JsonDeepClone = exports.JsonType = exports.JsonDiff = void 0;\nexports.JsonDiffFactory = JsonDiffFactory;\nfunction JsonDiffFactory() {\n const jsonProto = Object.getPrototypeOf({});\n function JsonType(value) {\n if (value === null || value === undefined)\n return \"value\";\n if (Array.isArray(value))\n return \"array\";\n if (jsonProto === Object.getPrototypeOf(value))\n return \"object\";\n return \"value\";\n }\n function JsonMerge(source, patch) {\n if (patch === undefined)\n return source;\n const sourceType = JsonType(source);\n const patchType = JsonType(patch);\n if (sourceType !== patchType)\n return patch;\n switch (sourceType) {\n case \"array\": {\n const typedSource = source;\n const typedPatch = patch;\n return typedSource.map(function (source, index) {\n return JsonMerge(source, typedPatch[index]);\n });\n }\n case \"object\": {\n const typedSource = source;\n const typedPatch = patch;\n const sourceKeys = Object.keys(typedSource);\n const result = {};\n for (let x = 0; x < sourceKeys.length; x++)\n result[sourceKeys[x]] = JsonMerge(typedSource[sourceKeys[x]], typedPatch[sourceKeys[x]]);\n return result;\n }\n default:\n return patch;\n }\n }\n function JsonDeepClone(value) {\n const type = JsonType(value);\n switch (type) {\n case \"array\":\n return value.map(JsonDeepClone);\n case \"object\": {\n const ret = {};\n const keys = Object.keys(value);\n for (let x = 0; x < keys.length; x++)\n ret[keys[x]] = JsonDeepClone(value[keys[x]]);\n return ret;\n }\n default:\n return value;\n }\n }\n function JsonDiff(newValue, oldValue, rootPath, initResult) {\n const result = initResult ?? [];\n const startPath = rootPath ? rootPath.split(\".\") : [];\n JsonDiffRecursive(startPath, newValue, oldValue, result);\n return result;\n }\n function JsonDiffRecursive(path, newValue, oldValue, resp) {\n if (newValue === oldValue)\n return false;\n const newType = JsonType(newValue);\n const oldType = JsonType(oldValue);\n const changedPathLength = resp.length;\n let allChildrenChanged = true;\n if (newType === oldType)\n switch (newType) {\n case \"array\": {\n allChildrenChanged = JsonDiffArrays(path, newValue, oldValue, resp);\n break;\n }\n case \"object\": {\n allChildrenChanged = JsonDiffObjects(path, newValue, oldValue, resp);\n break;\n }\n }\n if (allChildrenChanged) {\n resp.splice(changedPathLength);\n resp.push({\n path,\n value: newValue,\n });\n return true;\n }\n return false;\n }\n function JsonDiffArrays(path, newValue, oldValue, resp) {\n let allChildrenChanged = true;\n if (newValue.length !== oldValue.length)\n resp.push({\n path: path.concat(\"length\"),\n value: newValue.length,\n });\n if (newValue.length > 0 || oldValue.length > 0) {\n for (let y = 0; y < newValue.length; y++) {\n const arrayPath = path.concat(y);\n const oldValueElem = oldValue[y];\n allChildrenChanged =\n JsonDiffRecursive(arrayPath, newValue[y], oldValueElem, resp) &&\n allChildrenChanged;\n }\n }\n else\n allChildrenChanged = false;\n return allChildrenChanged;\n }\n function JsonDiffObjects(path, newValue, oldValue, resp) {\n const newKeys = Object.keys(newValue).sort();\n const oldKeys = Object.keys(oldValue).sort();\n if (newKeys.length === 0 && oldKeys.length === 0)\n return false;\n if (newKeys.length < oldKeys.length)\n return true;\n let newKeyIndex = 0;\n let oldKeyIndex = 0;\n while (newKeyIndex < newKeys.length) {\n const childPath = path.concat(newKeys[newKeyIndex]);\n if (oldKeyIndex < oldKeys.length &&\n newKeys[newKeyIndex] === oldKeys[oldKeyIndex]) {\n JsonDiffRecursive(childPath, newValue[newKeys[newKeyIndex]], oldValue[oldKeys[oldKeyIndex]], resp);\n oldKeyIndex++;\n }\n else if (newValue[newKeys[newKeyIndex]] !== undefined) {\n resp.push({\n path: childPath,\n value: newValue[newKeys[newKeyIndex]],\n });\n }\n newKeyIndex++;\n }\n if (oldKeyIndex < oldKeys.length)\n return true;\n return false;\n }\n return { JsonDiff, JsonType, JsonDeepClone, JsonMerge };\n}\n_a = JsonDiffFactory(), exports.JsonDiff = _a.JsonDiff, exports.JsonType = _a.JsonType, exports.JsonDeepClone = _a.JsonDeepClone, exports.JsonMerge = _a.JsonMerge;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonType = void 0;\nvar json_1 = require(\"./json\");\nObject.defineProperty(exports, \"JsonType\", { enumerable: true, get: function () { return json_1.JsonType; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.List = void 0;\nvar List;\n(function (List) {\n function Create() {\n return {\n head: null,\n tail: null,\n size: 0\n };\n }\n List.Create = Create;\n function Clear(list) {\n list.head = null;\n list.tail = null;\n list.size = 0;\n }\n List.Clear = Clear;\n function Push(list, data) {\n const node = { previous: null, next: null, data: data };\n if (list.size === 0) {\n list.head = node;\n list.tail = node;\n list.size = 1;\n }\n else {\n node.next = list.head;\n list.head.previous = node;\n list.head = node;\n list.size++;\n }\n return node;\n }\n List.Push = Push;\n function Pop(list) {\n if (list.size === 0)\n return null;\n const node = list.head;\n list.head = node.next;\n if (list.head)\n list.head.previous = null;\n list.size--;\n if (list.size === 0)\n list.tail = null;\n return node.data;\n }\n List.Pop = Pop;\n function Add(list, data) {\n const node = { previous: null, next: null, data: data };\n return AddNode(list, node);\n }\n List.Add = Add;\n function AddNode(list, node) {\n if (list.size === 0) {\n list.head = node;\n list.tail = node;\n list.size = 1;\n }\n else {\n node.previous = list.tail;\n list.tail.next = node;\n list.tail = node;\n list.size++;\n }\n return node;\n }\n List.AddNode = AddNode;\n function AddBefore(list, node, data) {\n if (!node)\n return List.Add(list, data);\n const newNode = { previous: null, next: null, data: data };\n const prevNode = node.previous;\n newNode.next = node;\n node.previous = newNode;\n if (list.head === node)\n list.head = newNode;\n if (prevNode) {\n prevNode.next = newNode;\n newNode.previous = prevNode;\n }\n list.size++;\n return newNode;\n }\n List.AddBefore = AddBefore;\n function AddAfter(list, node, data) {\n if (!node)\n return List.Push(list, data);\n const newNode = { previous: null, next: null, data: data };\n const nextNode = node.next;\n node.next = newNode;\n newNode.previous = node;\n if (list.tail === node)\n list.tail = newNode;\n if (nextNode) {\n nextNode.previous = newNode;\n newNode.next = nextNode;\n }\n list.size++;\n return newNode;\n }\n List.AddAfter = AddAfter;\n function Remove(list) {\n if (list.size === 0)\n return null;\n var node = list.tail;\n list.tail = node.previous;\n if (list.tail)\n list.tail.next = null;\n list.size--;\n if (list.size === 0)\n list.head = null;\n return node.data;\n }\n List.Remove = Remove;\n function RemoveNode(list, node) {\n if (list.head === node) {\n list.head = node.next;\n }\n else if (list.tail === node) {\n list.tail = node.previous;\n }\n else {\n const prev = node.previous;\n const next = node.next;\n prev.next = next;\n next.previous = prev;\n }\n node.next = node.previous = null;\n list.size--;\n if (list.size > 0)\n list.head.previous = list.tail.next = null;\n }\n List.RemoveNode = RemoveNode;\n function ForEach(list, callback) {\n let node = list.head;\n while (node) {\n callback(node.data);\n node = node.next;\n }\n }\n List.ForEach = ForEach;\n function ToNodeMap(list, keyCallback) {\n const map = new Map();\n let node = list.head;\n while (node) {\n const key = keyCallback(node.data);\n const nodes = map.get(key) || [node];\n if (nodes[0] !== node)\n nodes.push(node);\n else\n map.set(key, nodes);\n node = node.next;\n }\n return map;\n }\n List.ToNodeMap = ToNodeMap;\n})(List || (exports.List = List = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Schedule = Schedule;\nexports.After = After;\nexports.Callback = Callback;\nexports.Synch = Synch;\nexports.Thread = Thread;\nexports.ThreadAsync = ThreadAsync;\nconst list_1 = require(\"./list\");\nconst workTimeMs = 16;\nconst contextQueue = list_1.List.Create();\nlet threadContext = null;\nlet timeoutRunning = false;\nconst scheduleCallback = setTimeout;\nfunction timeRemaining() {\n return this.end - Date.now();\n}\nfunction createDeadline() {\n return {\n end: Date.now() + workTimeMs,\n timeRemaining\n };\n}\nfunction ProcessQueue(deadline = createDeadline()) {\n let ctx;\n while (deadline.timeRemaining() > 0 && (ctx = list_1.List.Pop(contextQueue)))\n DoWork(ctx, deadline);\n if (contextQueue.size > 0)\n scheduleCallback(ProcessQueue);\n else\n timeoutRunning = false;\n}\nfunction ScheduleWork(ctx) {\n list_1.List.Add(contextQueue, ctx);\n if (timeoutRunning)\n return;\n timeoutRunning = true;\n scheduleCallback(ProcessQueue);\n}\nfunction Invoke(ctx, callback) {\n const parent = ctx.workEndNode;\n ctx.workEndNode = ctx.workList.head;\n callback(true);\n ctx.workEndNode = parent;\n}\nfunction DoWork(ctx, deadline = createDeadline()) {\n const parentContext = threadContext;\n threadContext = ctx;\n const async = ctx.async;\n let callback;\n while (async === ctx.async && deadline.timeRemaining() > 0 && (callback = list_1.List.Pop(ctx.workList)))\n Invoke(ctx, callback);\n if (ctx.workList.size > 0)\n ScheduleWork(ctx);\n threadContext = parentContext;\n}\nfunction CreateContext() {\n return {\n async: false,\n workEndNode: null,\n workList: list_1.List.Create()\n };\n}\nfunction ScheduleCallback(callback, before, async) {\n threadContext = threadContext || CreateContext();\n threadContext.async = threadContext.async || async;\n if (before)\n list_1.List.AddBefore(threadContext.workList, threadContext.workEndNode, callback);\n else if (threadContext.workEndNode)\n list_1.List.AddAfter(threadContext.workList, threadContext.workEndNode, callback);\n else\n threadContext.workEndNode = list_1.List.Add(threadContext.workList, callback);\n}\nfunction SynchWithoutThread(callback) {\n callback(false);\n if (threadContext)\n if (threadContext.async)\n ScheduleWork(threadContext);\n else\n DoWork(threadContext);\n threadContext = null;\n}\nfunction Schedule(callback) {\n ScheduleCallback(callback, true, true);\n}\nfunction After(callback) {\n ScheduleCallback(callback, false, false);\n}\nfunction Callback(callback) {\n return function (a, b, c, d) {\n Schedule(function () { callback(a, b, c, d); });\n };\n}\nvar inSynchCallback = false;\nfunction Synch(callback) {\n if (threadContext || inSynchCallback)\n callback(false);\n else {\n inSynchCallback = true;\n SynchWithoutThread(callback);\n inSynchCallback = false;\n }\n}\nfunction Thread(callback) {\n if (threadContext)\n ScheduleCallback(callback, true, false);\n else\n Synch(callback);\n}\nfunction ThreadAsync(callback) {\n return new Promise(resolve => Thread(function (async) {\n callback(async);\n Thread(resolve);\n }));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calc = exports.Component = void 0;\nvar component_1 = require(\"./Node/component\");\nObject.defineProperty(exports, \"Component\", { enumerable: true, get: function () { return component_1.Component; } });\nvar Store_1 = require(\"./Store\");\nObject.defineProperty(exports, \"calc\", { enumerable: true, get: function () { return Store_1.calc; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.calc = exports.ObservableNode = exports.ObservableScope = void 0;\n__exportStar(require(\"./index\"), exports);\n__exportStar(require(\"./Utils\"), exports);\nvar Store_1 = require(\"./Store\");\nObject.defineProperty(exports, \"ObservableScope\", { enumerable: true, get: function () { return Store_1.ObservableScope; } });\nObject.defineProperty(exports, \"ObservableNode\", { enumerable: true, get: function () { return Store_1.ObservableNode; } });\nObject.defineProperty(exports, \"calc\", { enumerable: true, get: function () { return Store_1.calc; } });\n__exportStar(require(\"./DOM\"), exports);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Web = require(\"./web.export\");\nfor (var key in Web)\n window[key] = Web[key];\n"],"names":["DefaultAssignment","target","writeTo","next","event","value","lastValue","removeEventListener","addEventListener","AssignEvent","Object","defineProperty","exports","CreateEventAssignment","priorKeys","nextKeys","keys","undefined","concat","x","length","CreateNodeValueAssignment","nodeValue","CreatePropertyAssignment","jsonType_1","AssignProp","prop","ValueAssignment","nodeName","start","selectionStart","end","selectionEnd","ownerDocument","activeElement","setSelectionRange","CreateValueAssignment","JsonType","root","last","DOMNodeConfig","window_1","list_1","createPropertyAssignment_1","createEventAssignment_1","pendingUpdates","List","Create","updateScheduled","processUpdates","Add","Date","now","callback","Pop","size","wndw","requestAnimationFrame","createNode","type","namespace","document","createElementNS","createElement","createTextNode","scheduleUpdate","addListener","removeListener","addChild","child","appendChild","addChildFirst","addChildBefore","firstChild","sibling","insertBefore","addChildAfter","nextSibling","removeChild","remove","parentNode","setText","text","textContent","getAttribute","attribute","setAttribute","createPropertyAssignment","nodeType","Node","TEXT_NODE","createEventAssignment","fireEvent","data","cEvent","CustomEvent","dispatchEvent","getFirstChild","getLastChild","lastChild","getNextSibling","replaceChildren","children","div","nodeDef","elementNode_1","ElementNode","a","ul","li","br","b","span","img","video","source","input","textarea","select","option","h1","h2","h3","p","style","button","table","tbody","th","tr","td","__createBinding","this","create","o","m","k","k2","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","__exportStar","prototype","hasOwnProperty","call","svg","svgNs","g","circle","window","err","jsdomWindow","BoundNode","nodeConfig_1","observableScope_1","SetAttributes","node","attributes","key","NodeConfig","Init","boundNode","props","scope","ObservableScope","scopes","push","assignProperties","Watch","setProperties","destroyed","Value","ScheduleSetProperties","attrs","setAttributes","ScheduleSetAttributes","on","assignEvents","setEvents","ScheduleSetEvents","Component","nodeRef_1","componentNode_1","decorators_1","Injector","nodeRef","injector","Destroyed","Scope","Data","NodeRef","Templates","templates","constructor","componentEvents","Template","Bound","Fire","eventCallback","Destroy","All","ToFunction","ComponentNode","Attach","rootRef","Wrap","AddChild","Register","name","componentFunction","WebComponent","HTMLElement","super","attachShadow","mode","customElements","define","boundNode_1","component_1","injector_1","thread_1","InvokeNodeTemplate","nodes","component","Array","isArray","AddTemplate","init","Thread","Schedule","InitAll","list","ReconcileChildren","After","setTimeout","compNode","NodeRefType","componentNode","events","PreReq","Has","Promise","resolve","preNodes","PreReqTemplate","Get","then","DetachChild","AddPreReqTemplate","valueDefault","GetDataValue","SetData","values","Synch","nextNodeList","currentNodeList","nodeList","nodeMap","ToNodeMap","curNode","nodeArr","y","RemoveNode","AddNode","CreateNodeArray","childrenFunc","head","curDetach","childNodes","delete","DestroyAll","Clear","ReconcileNodeData","attachNodes","startSize","async","newNodes","textNode","elemNode","elementNode","dataScope","valueScope","slice","Set","setData","ScheduleSetData","defaultNodeList","domNodeConfig_1","Store_1","nodeNamespace","Current","parent","lastEvents","AddChildToNode","add","forEach","nodeRefs","AddChildAfter","currentChild","newChild","nextChildren","rootNode","priorNode","curDataNode","insert","actualNode","expectedNode","DiffAsync","workerQueue_1","diffWorker_1","keyFunc","workerQueue","WorkerQueue","DiffWorker","Push","method","arguments","toString","DiffPath","path","DiffBatch","DiffSync","json_1","diffCnstr","DiffTreeFactory","JsonDiffFactory","diffTree","jsonDiffFactory","worker","ctx","onmessage","eval","DiffTree","postMessage","diff","ret","GetPath","FlattenValue","typedArray","typedObject","GetPathValue","parts","split","curr","SetPathValue","ResolveKeyPath","pathValues","splice","join","UpdateSource","diffResult","keyPath","keyDiffResult","sourceValue","JsonDiff","flattened","JsonDeepClone","filteredDiffResult","filter","rootState","map","flat","diffTree_1","workerConstructor","workerParameter","Worker","URL","createObjectURL","Blob","callbacks","onerror","cb","message","reject","terminate","Store","observableNode_1","rootMap","Map","aliasFunc","rootObject","GET_OBSERVABLE_VALUE","ObservableNode","CreateFactory","id","defaultValue","result","set","UpdateRootMap","results","startIndex","rootGroup","UpdateRootObject","rootPath","ApplyDiff","newRootObject","StoreAsync","asyncQueue_1","diffAsync_1","store_1","queue","AsyncQueue","Write","Next","Patch","patch","json","toJSON","mergedJson","JsonMerge","arr","batch","d","i","Splice","deleteCount","items","arrCopy","spliceResult","Stop","StoreSync","diffSync_1","GET_TO_JSON","IS_OBSERVABLE_NODE","proxyCache","WeakMap","scopeCache","getOwnPropertyDescriptorArray","has","hasOwn","hasArray","ownKeys","ownKeysArray","UnwrapProxy","applyingDiff","CreateProxyFactory","alias","CreateProxy","CreateProxyFromValue","ToJson","ToJsonCopy","typedValue","proxy","copy","readOnly","CreateObjectProxy","Proxy","ObjectProxyGetter","ObjectProxySetter","ArrayProxySetter","array","Update","ArrayProxyGetter","arrayValue","args","proxyArray","object","proxyValue","aliasValue","CreateArrayProxy","Touch","DefaultCreateProxy","EnableDiff","pathTuples","property","tupleIndex","assignValue","ObservableScopeWrapper","ObservableScopeValue","array_1","emitter_1","emitter","scopeEmitter","Emitter","On","Emit","Unwatch","Remove","DestroyScope","getFunction","currentSet","currentCalc","watching","OnSet","dirty","emitters","setCallback","valueFunction","hasFunction","Symbol","toStringTag","calc","Calc","action","parentSet","parentCalc","parentWatching","lastSet","lastCalc","WatchAction","ArrayDiff","val","newEmitters","removed","initLength","RemoveNulls","UpdateEmitters","UpdateValue","Watching","web_export_1","storeSync_1","storeAsync_1","StepFunctions","AnimationType","Animation","EaseIn","count","t","Linear","Running","running","Start","End","Enabled","enabled","duration","update","frameCount","Math","ceil","frameTimings","frameTime","animationTimeouts","Animate","Cancel","stepFunc","index","step","SetTimeout","Disable","Enable","clearTimeout","nullIndex","notNullIndex","e","ExecuteQueue","State","StateDecorator","ValueDecorator","ScopeDecorator","Inject","InjectorDecorator","bind","nodeInstanceMap","scopeInstanceMap","destroyPrototypeMap","GetNodeMapForInstance","instance","GetScopeMapForInstance","GetDestroyArrayForPrototype","propertyKey","propertyMap","tuple","descriptor","DestroyDecorator","template","PreReqTemplateDecorator","PreReqTemplateDecorator_Template","PreReqDecorator","proto","PreReqDecorator_PreReqs","scopeMap","getPrototypeOf","func","all","indexOf","typeMap","_a","jsonProto","JsonDiffRecursive","newValue","oldValue","resp","newType","oldType","changedPathLength","allChildrenChanged","arrayPath","oldValueElem","JsonDiffArrays","newKeys","sort","oldKeys","newKeyIndex","oldKeyIndex","childPath","JsonDiffObjects","initResult","sourceType","typedPatch","typedSource","sourceKeys","tail","previous","AddBefore","newNode","prevNode","AddAfter","nextNode","prev","ForEach","keyCallback","ScheduleCallback","Callback","c","ThreadAsync","workTimeMs","contextQueue","threadContext","timeoutRunning","scheduleCallback","timeRemaining","createDeadline","ProcessQueue","deadline","DoWork","ScheduleWork","Invoke","workEndNode","workList","parentContext","before","inSynchCallback","SynchWithoutThread","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","module","__webpack_modules__","Web"],"sourceRoot":""}
|