j-templates 6.0.34 → 6.0.36

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/jTemplates.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"jTemplates.js","mappings":"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","sources":["webpack://j-templates/./src/DOM/createAssignment.ts","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.CreateAssignment = CreateAssignment;\nfunction CreateAssignment(target, createAssignment) {\n let last;\n let writeTo;\n return function AssignNext(next) {\n if (next === last)\n return;\n last = next;\n writeTo ??= {};\n const nextKeys = next && Object.keys(next);\n for (let x = 0; nextKeys && x < nextKeys.length; x++) {\n const key = nextKeys[x];\n writeTo[key] ??= createAssignment(target, key);\n }\n const writeKeys = Object.keys(writeTo);\n for (let x = 0; x < writeKeys.length; x++)\n writeTo[writeKeys[x]](next);\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateEventAssignment = CreateEventAssignment;\nfunction CreateEventAssignment(target, event) {\n let lastEvent;\n return function (next) {\n const nextEvent = next && next[event];\n if (nextEvent === lastEvent)\n return;\n lastEvent && target.removeEventListener(event, lastEvent);\n nextEvent && target.addEventListener(event, nextEvent);\n lastEvent = nextEvent;\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateNodeValueAssignment = CreateNodeValueAssignment;\nexports.CreatePropertyAssignment = CreatePropertyAssignment;\nconst json_1 = require(\"../Utils/json\");\nfunction CreateNodeValueAssignment(target) {\n let lastValue = target.nodeValue;\n return function AssignNodeValue(value) {\n if (value !== lastValue) {\n target.nodeValue = value;\n lastValue = value;\n }\n };\n}\nfunction WalkValue(next, callback, index = 0, parent = \"\") {\n const keys = Object.keys(next);\n for (let x = 0; x < keys.length; x++) {\n const value = next[keys[x]];\n const type = (0, json_1.JsonType)(value);\n switch (type) {\n case \"object\":\n index = WalkValue(value, callback, index, `${parent}${keys[x]}.`);\n break;\n default:\n callback(`${parent}${keys[x]}`, value, index);\n index++;\n break;\n }\n }\n return index;\n}\nfunction AssignNodeValue(target, value) {\n target.nodeValue = value;\n}\nfunction AssignValue(target, value) {\n target.value = value;\n}\nfunction AssignClassName(target, value) {\n target.className = value;\n}\nfunction GetAssignmentFunction(path) {\n switch (path) {\n case \"nodeValue\":\n return AssignNodeValue;\n case \"value\":\n return AssignValue;\n case \"className\":\n return AssignClassName;\n default:\n return new Function(\"t\", \"v\", `t.${path} = v;`);\n }\n}\nfunction CreatePropertyAssignment(target) {\n const last = [[\"\", null, null]];\n function WalkCallback(path, value, index) {\n if (index >= last.length || last[index][0] !== path) {\n last[index] = [path, value, GetAssignmentFunction(path)];\n last[index][2](target, value);\n }\n else if (last[index][1] !== value) {\n last[index][1] = value;\n last[index][2](target, value);\n }\n }\n return function AssignProperty(next) {\n if (next === null) {\n for (let x = 0; x < last.length; x++)\n last[x][2](target, null);\n if (last.length > 0)\n last.splice(0);\n return;\n }\n const endIndex = WalkValue(next, WalkCallback);\n if (endIndex < last.length)\n last.splice(endIndex);\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\");\nconst createAssignment_1 = require(\"./createAssignment\");\nconst createPropertyAssignment_2 = require(\"./createPropertyAssignment\");\nlet pendingUpdates = list_1.List.Create();\nlet updateScheduled = false;\nconst updateMs = 16;\nfunction processUpdates() {\n list_1.List.Add(pendingUpdates, null);\n let callback;\n while ((callback = list_1.List.Pop(pendingUpdates)))\n callback();\n if (pendingUpdates.size === 0)\n updateScheduled = false;\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 createTextAssignment(target) {\n return (0, createPropertyAssignment_1.CreateNodeValueAssignment)(target);\n },\n setText(target, text) {\n target.nodeValue = 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 return (0, createPropertyAssignment_2.CreatePropertyAssignment)(target);\n },\n createEventAssignment(target) {\n return (0, createAssignment_1.CreateAssignment)(target, createEventAssignment_1.CreateEventAssignment);\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 WrapEventObject(node, events) {\n const keys = Object.keys(events);\n const ret = {};\n for (let x = 0; x < keys.length; x++) {\n const event = keys[x];\n const eventFunc = events[event];\n ret[event] = function (...args) {\n if (node.destroyed)\n return;\n return eventFunc(...args);\n };\n }\n return ret;\n }\n function Init(boundNode) {\n const nodeDef = boundNode.nodeDef;\n if (nodeDef.props) {\n boundNode.assignProperties = nodeConfig_1.NodeConfig.createPropertyAssignment(boundNode.node);\n if (typeof nodeDef.props === 'function') {\n const scope = observableScope_1.ObservableScope.Create(nodeDef.props);\n boundNode.scopes ??= [];\n boundNode.scopes.push(scope);\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 else {\n boundNode.assignProperties(nodeDef.props);\n boundNode.assignProperties = null;\n }\n }\n if (nodeDef.attrs) {\n if (typeof nodeDef.attrs === 'function') {\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 else\n SetAttributes(boundNode, nodeDef.attrs);\n }\n if (nodeDef.on) {\n boundNode.assignEvents = nodeConfig_1.NodeConfig.createEventAssignment(boundNode.node);\n if (typeof nodeDef.on === 'function') {\n const scope = observableScope_1.ObservableScope.Create(nodeDef.on);\n const eventScope = observableScope_1.ObservableScope.Create(function () {\n const events = observableScope_1.ObservableScope.Value(scope);\n return WrapEventObject(boundNode, events);\n });\n boundNode.scopes ??= [];\n boundNode.scopes.push(scope, eventScope);\n observableScope_1.ObservableScope.Watch(eventScope, function (scope) { ScheduleSetEvents(boundNode, scope); });\n const next = observableScope_1.ObservableScope.Value(eventScope);\n boundNode.assignEvents(next);\n }\n else {\n boundNode.assignEvents(WrapEventObject(boundNode, nodeDef.on));\n boundNode.assignEvents = null;\n }\n }\n if (nodeDef.text) {\n boundNode.assignText = nodeConfig_1.NodeConfig.createTextAssignment(boundNode.node);\n if (typeof nodeDef.text === 'function') {\n const scope = observableScope_1.ObservableScope.Create(nodeDef.text);\n boundNode.scopes ??= [];\n boundNode.scopes.push(scope);\n observableScope_1.ObservableScope.Watch(scope, function (scope) { ScheduleSetText(boundNode, scope); });\n const next = observableScope_1.ObservableScope.Value(scope);\n boundNode.assignText(next);\n }\n else {\n boundNode.assignText(nodeDef.text);\n boundNode.assignText = null;\n }\n }\n }\n BoundNode.Init = Init;\n})(BoundNode || (exports.BoundNode = BoundNode = {}));\nfunction ScheduleSetText(node, scope) {\n if (node.setText)\n return;\n node.setText = true;\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n node.setText = false;\n if (node.destroyed)\n return;\n const next = observableScope_1.ObservableScope.Value(scope);\n node.assignText(next);\n });\n}\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 || null);\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 if (typeof data === 'function')\n this.scope = new observableScope_1.ObservableScope(data);\n else\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 list_1.List.Clear(list);\n }\n else\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n if (node.destroyed)\n return;\n nodeRef_1.NodeRef.ReconcileChildren(node, list);\n list_1.List.Clear(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 if (Array.isArray(children))\n elemNode.childrenArray = children;\n else if (children !== undefined)\n elemNode.children = children;\n return elemNode;\n }\n ElementNode.Create = Create;\n function Init(elementNode) {\n const nodeDef = elementNode.nodeDef;\n if (elementNode.childrenArray !== null || (elementNode.children !== null && !nodeDef.data)) {\n SetDefaultData(elementNode);\n }\n else if (elementNode.children !== null) {\n const dataScope = observableScope_1.ObservableScope.Create(nodeDef.data);\n const valueScope = observableScope_1.ObservableScope.Create(function () {\n const value = observableScope_1.ObservableScope.Value(dataScope);\n if (!value)\n return valueDefault;\n if (!Array.isArray(value))\n return [value];\n return value;\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 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 = node.childrenArray || injector_1.Injector.Scope(node.injector, CreateNodeArray, node.children, true);\n node.childrenArray = null;\n if (nodes.length > 0) {\n (0, thread_1.Schedule)(function () {\n if (node.destroyed)\n return;\n nodeRef_1.NodeRef.InitAll(node, nodes);\n });\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 list_1.List.Clear(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.children, 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 text: function () {\n return 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 assignText: null,\n setAttributes: false,\n setEvents: false,\n setText: 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 assignText: null,\n setAttributes: false,\n setEvents: false,\n children: null,\n childrenArray: null,\n nodeList: null,\n setData: false,\n setText: 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 insert = false;\n let remove = false;\n for (let curDataNode = nextChildren.head; curDataNode !== null; curDataNode = curDataNode.next) {\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 }\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.BoundNode:\n node.assignEvents?.(null);\n case NodeRefType.ElementNode:\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();\nconst leafScopeCache = 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, 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}\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 }\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 proxy = new Proxy(value, {\n get: ObjectProxyGetter,\n set: ObjectProxySetter,\n has,\n ownKeys,\n getOwnPropertyDescriptor,\n });\n leafScopeCache.set(value, {});\n proxyCache.set(value, proxy);\n return proxy;\n }\n function ArrayProxySetter(array, prop, value) {\n if (readOnly)\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 (readOnly)\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)\n throw `Object is readonly`;\n }\n switch (prop) {\n case exports.IS_OBSERVABLE_NODE:\n return true;\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 scope = scopeCache.get(array);\n array = observableScope_1.ObservableScope.Value(scope);\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 SetPropertyValue(object, prop, value) {\n object[prop] = value;\n const leafScopes = leafScopeCache.get(object);\n observableScope_1.ObservableScope.Update(leafScopes && leafScopes[prop] || scopeCache.get(object));\n }\n function ObjectProxySetter(object, prop, value) {\n if (readOnly)\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 jsonType = (0, jsonType_1.JsonType)(value);\n if (jsonType === 'value') {\n value !== object[prop] && SetPropertyValue(object, prop, value);\n }\n else {\n value = UnwrapProxy(value, jsonType);\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 SetPropertyValue(object, 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 SetPropertyValue(curr, path[y], diff[x].value);\n }\n }\n }\n return true;\n }\n function ObjectProxyGetter(object, prop) {\n switch (prop) {\n case exports.IS_OBSERVABLE_NODE:\n return true;\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 return GetAccessorValue(object, prop);\n }\n }\n }\n function GetAccessorValue(parent, prop) {\n const leafScopes = leafScopeCache.get(parent);\n leafScopes[prop] ??= observableScope_1.ObservableScope.Create(function () {\n const value = parent[prop];\n return CreateProxyFromValue(value);\n });\n return observableScope_1.ObservableScope.Value(leafScopes[prop]);\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 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;\nexports.CalcScope = CalcScope;\nconst emitter_1 = require(\"../../Utils/emitter\");\nconst list_1 = require(\"../../Utils/list\");\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 watchingScope = null;\nlet currentlyWatching = false;\nfunction WatchScope(scope) {\n const parentScope = watchingScope;\n const parentWatching = currentlyWatching;\n watchingScope = scope;\n currentlyWatching = true;\n const value = scope.getFunction();\n watchingScope.watchEmittersSet = null;\n watchingScope = parentScope;\n currentlyWatching = parentWatching;\n return value;\n}\nfunction CalcScope(callback) {\n const value = callback();\n if (currentlyWatching) {\n watchingScope.calcFunctions ??= [];\n watchingScope.calcFunctions.push({\n getFunction: callback,\n value\n });\n }\n return value;\n}\n(function (ObservableScope) {\n function Create(valueFunction) {\n const scope = {\n getFunction: valueFunction,\n value: null,\n promise: null,\n async: valueFunction[Symbol.toStringTag] === \"AsyncFunction\",\n dirty: true,\n emitter: emitter_1.Emitter.Create(),\n emitters: [],\n destroyed: false,\n watchEmitters: null,\n watchEmittersSet: null,\n calcFunctions: null,\n setCallback: function () {\n return OnSet(scope);\n },\n };\n return scope;\n }\n ObservableScope.Create = Create;\n function Register(emitter) {\n if (!currentlyWatching)\n return;\n watchingScope.watchEmitters ??= [];\n if (watchingScope.watchEmitters.length === 10)\n watchingScope.watchEmittersSet = new Set(watchingScope.watchEmitters);\n if ((watchingScope.watchEmittersSet === null && !watchingScope.watchEmitters.includes(emitter)) || (watchingScope.watchEmittersSet !== null && !watchingScope.watchEmittersSet.has(emitter))) {\n watchingScope.watchEmittersSet?.add(emitter);\n watchingScope.watchEmitters.push(emitter);\n }\n }\n ObservableScope.Register = Register;\n function Value(scope) {\n if (!scope)\n return undefined;\n Register(scope.emitter);\n UpdateScope(scope);\n return scope.value;\n }\n ObservableScope.Value = Value;\n function Watching() {\n return currentlyWatching;\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 UpdateScope(scope) {\n const prePromise = scope.promise;\n UpdateValue(scope);\n scope.async && prePromise !== scope.promise && scope.promise.then(function () {\n emitter_1.Emitter.Emit(scope.emitter, scope);\n });\n}\nconst updateScopeQueue = list_1.List.Create();\nfunction ProcessScopeUpdateQueue() {\n const processList = list_1.List.Split(updateScopeQueue, 0);\n for (let node = processList.head; node !== null; node = node.next)\n UpdateScope(node.data);\n list_1.List.Clear(processList);\n}\nfunction QueueScopeUpdate(scope) {\n list_1.List.Add(updateScopeQueue, scope);\n if (updateScopeQueue.size === 1)\n queueMicrotask(ProcessScopeUpdateQueue);\n}\nfunction CalcChanged(calc) {\n const value = calc.getFunction();\n const changed = calc.value !== value;\n calc.value = value;\n return changed;\n}\nfunction DirtyScope(scope) {\n scope.dirty = scope.calcFunctions === null || scope.calcFunctions.some(CalcChanged);\n scope.dirty && (scope.async ? QueueScopeUpdate(scope) : emitter_1.Emitter.Emit(scope.emitter, scope));\n}\nfunction OnSet(scope) {\n if (!scope || scope.dirty || scope.destroyed)\n return scope?.destroyed;\n DirtyScope(scope);\n return false;\n}\nfunction UpdateValue(scope) {\n if (!scope.dirty)\n return;\n scope.dirty = false;\n scope.watchEmitters = null;\n scope.calcFunctions = null;\n const value = WatchScope(scope);\n if (scope.async) {\n scope.promise = value.then(function (result) {\n scope.value = result;\n return result;\n });\n }\n else\n scope.value = value;\n UpdateEmitters(scope);\n}\nfunction UpdateEmitters(scope) {\n const right = scope.watchEmitters;\n if (right === null) {\n if (scope.emitters.length > 0) {\n for (let x = 0; x < scope.emitters.length; x++)\n emitter_1.Emitter.Remove(scope.emitters[x], scope.setCallback);\n scope.emitters = [];\n }\n return;\n }\n emitter_1.Emitter.Sort(right);\n const left = scope.emitters;\n let leftIndex = 0;\n let rightIndex = 0;\n for (; leftIndex < left.length; leftIndex++) {\n let y = rightIndex;\n for (; y < right.length && left[leftIndex] !== right[y]; y++)\n emitter_1.Emitter.On(right[rightIndex], scope.setCallback);\n if (y === right.length)\n emitter_1.Emitter.Remove(left[leftIndex], scope.setCallback);\n else {\n for (let x = rightIndex; x < y; x++)\n emitter_1.Emitter.On(right[x], scope.setCallback);\n rightIndex = y + 1;\n }\n }\n for (; rightIndex < right.length; rightIndex++)\n emitter_1.Emitter.On(right[rightIndex], scope.setCallback);\n scope.emitters = right;\n}\nfunction DestroyScope(scope) {\n if (!scope)\n return;\n const emitters = scope.emitters;\n scope.emitters = null;\n scope.emitter = null;\n scope.getFunction = null;\n scope.setCallback = null;\n scope.calcFunctions = null;\n scope.destroyed = true;\n for (let x = 0; x < emitters.length; x++)\n emitter_1.Emitter.Remove(emitters[x], scope.setCallback);\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 CreateValueScope(tuple) {\n return observableScope_1.ObservableScope.Create(function () {\n return tuple[1];\n });\n}\nfunction ValueDecorator(target, propertyKey) {\n return {\n configurable: false,\n enumerable: true,\n get: function () {\n const propertyMap = GetScopeMapForInstance(this);\n const tuple = propertyMap[propertyKey] ??= [null, undefined];\n tuple[0] ??= CreateValueScope(tuple);\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 const getter = descriptor.get;\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(getter.bind(this));\n return observableScope_1.ObservableScope.Value(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 let globalId = 0;\n function Create() {\n const emitter = [];\n emitter._id = globalId++;\n return emitter;\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 if (emitter[x] === null || emitter[x](...args) === 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 }\n Emitter.Remove = Remove;\n function Clear(emitter) {\n emitter.splice(0);\n }\n Emitter.Clear = Clear;\n function Sort(emitters) {\n return emitters.sort(Compare);\n }\n Emitter.Sort = Sort;\n function Compare(a, b) {\n return a._id - b._id;\n }\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 const arrayProto = Object.getPrototypeOf([]);\n const strProto = Object.getPrototypeOf(\"\");\n const numProto = Object.getPrototypeOf(0);\n function JsonType(value) {\n if (value === null || value === undefined)\n return \"value\";\n switch (Object.getPrototypeOf(value)) {\n case strProto:\n case numProto:\n return \"value\";\n case jsonProto:\n return \"object\";\n case arrayProto:\n return \"array\";\n }\n if (Array.isArray(value))\n return \"array\";\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.length > changedPathLength && 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 if (oldValue.length === 0 || newValue.length === 0) {\n return oldValue.length !== newValue.length;\n }\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 let maxTempListSize = 0;\n let trimScheduled = false;\n const tempList = Create();\n function CreateNode(data) {\n const node = PopNode(tempList) ?? { previous: null, next: null, data: null };\n node.data = data;\n return node;\n }\n function TrimTempList() {\n trimScheduled = false;\n if (maxTempListSize < tempList.size)\n maxTempListSize = tempList.size;\n const trimSize = Math.floor(maxTempListSize / 10);\n Split(tempList, trimSize);\n }\n function ScheduleTrimTempList() {\n if (!trimScheduled) {\n trimScheduled = true;\n requestIdleCallback(TrimTempList);\n }\n }\n function ReturnNode(node) {\n if (!node)\n return;\n node.previous = null;\n node.next = null;\n node.data = null;\n AddNode(tempList, node);\n ScheduleTrimTempList();\n }\n function Create() {\n return {\n head: null,\n tail: null,\n size: 0\n };\n }\n List.Create = Create;\n function Split(list, length) {\n let index = 0;\n let node = list.head;\n while (node && index < length) {\n node = node.next;\n index++;\n }\n const retList = Create();\n if (node) {\n retList.head = node;\n retList.tail = list.tail;\n retList.size = list.size - length;\n list.tail = node.previous;\n list.size = length;\n if (list.size === 0)\n list.head = null;\n else\n list.tail.next = null;\n node.previous = null;\n }\n return retList;\n }\n List.Split = Split;\n function Clear(list) {\n let node = list.head;\n while (node) {\n node.data = null;\n node = node.next;\n }\n Append(tempList, list);\n ScheduleTrimTempList();\n }\n List.Clear = Clear;\n function Push(list, data) {\n const node = CreateNode(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 PopNode(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 node.previous = null;\n node.next = null;\n return node;\n }\n List.PopNode = PopNode;\n function Pop(list) {\n const node = PopNode(list);\n const data = node?.data;\n ReturnNode(node);\n return data;\n }\n List.Pop = Pop;\n function Add(list, data) {\n const node = CreateNode(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 = CreateNode(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 = CreateNode(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 const data = node.data;\n ReturnNode(node);\n return 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 Append(appendTo, append) {\n if (append.size === 0)\n return;\n if (appendTo.size === 0) {\n appendTo.head = append.head;\n append.head = null;\n appendTo.tail = append.tail;\n append.tail = null;\n appendTo.size = append.size;\n append.size = 0;\n return;\n }\n appendTo.tail.next = append.head;\n append.head.previous = appendTo.tail;\n appendTo.tail = append.tail;\n appendTo.size += append.size;\n append.head = null;\n append.tail = null;\n append.size = 0;\n }\n List.Append = Append;\n function ToNodeMap(list, keyCallback) {\n const map = new Map();\n for (let node = list.head; node !== null; node = node.next) {\n const key = keyCallback(node.data);\n const nodes = map.get(key);\n if (nodes === undefined)\n map.set(key, [node]);\n else\n nodes[nodes.length] = node;\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 observableScope_1 = require(\"./Store/Tree/observableScope\");\nObject.defineProperty(exports, \"calc\", { enumerable: true, get: function () { return observableScope_1.CalcScope; } });\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":["Object","defineProperty","exports","value","CreateAssignment","target","createAssignment","last","writeTo","next","nextKeys","keys","x","length","key","writeKeys","CreateEventAssignment","event","lastEvent","nextEvent","removeEventListener","addEventListener","CreateNodeValueAssignment","lastValue","nodeValue","CreatePropertyAssignment","WalkCallback","path","index","GetAssignmentFunction","splice","endIndex","WalkValue","json_1","callback","parent","JsonType","AssignNodeValue","AssignValue","AssignClassName","className","Function","DOMNodeConfig","window_1","list_1","createPropertyAssignment_1","createEventAssignment_1","createAssignment_1","createPropertyAssignment_2","pendingUpdates","List","Create","updateScheduled","processUpdates","Add","Pop","size","wndw","requestAnimationFrame","createNode","type","namespace","document","createElementNS","createElement","createTextNode","scheduleUpdate","addListener","removeListener","addChild","root","child","appendChild","addChildFirst","addChildBefore","firstChild","sibling","insertBefore","addChildAfter","nextSibling","removeChild","remove","parentNode","createTextAssignment","setText","text","getAttribute","attribute","setAttribute","createPropertyAssignment","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","undefined","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","NodeConfig","WrapEventObject","events","ret","eventFunc","args","destroyed","Init","boundNode","props","assignProperties","scope","ObservableScope","scopes","push","Watch","setProperties","Value","ScheduleSetProperties","attrs","setAttributes","ScheduleSetAttributes","on","assignEvents","eventScope","setEvents","ScheduleSetEvents","assignText","ScheduleSetText","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","Clear","After","setTimeout","compNode","NodeRefType","componentNode","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","head","curDetach","childNodes","delete","DestroyAll","ReconcileNodeData","attachNodes","startSize","async","childrenFunc","newNodes","textNode","elemNode","childrenArray","elementNode","defaultNodeList","dataScope","valueScope","Set","setData","ScheduleSetData","domNodeConfig_1","Store_1","nodeType","nodeNamespace","Current","lastEvents","AddChildToNode","add","forEach","nodeRefs","AddChildAfter","currentChild","newChild","nextChildren","rootNode","priorNode","insert","curDataNode","actualNode","expectedNode","DiffAsync","workerQueue_1","diffWorker_1","keyFunc","workerQueue","WorkerQueue","DiffWorker","Push","method","arguments","toString","DiffPath","DiffBatch","DiffSync","diffCnstr","DiffTreeFactory","JsonDiffFactory","diffTree","jsonDiffFactory","worker","ctx","onmessage","eval","DiffTree","postMessage","diff","GetPath","FlattenValue","typedArray","typedObject","GetPathValue","parts","split","curr","SetPathValue","ResolveKeyPath","pathValues","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","slice","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","start","deleteCount","items","arrCopy","spliceResult","Stop","StoreSync","diffSync_1","GET_TO_JSON","IS_OBSERVABLE_NODE","jsonType_1","proxyCache","WeakMap","scopeCache","leafScopeCache","prop","getOwnPropertyDescriptorArray","has","hasOwn","hasArray","ownKeys","ownKeysArray","UnwrapProxy","CreateProxyFactory","alias","CreateProxy","CreateProxyFromValue","ToJson","ToJsonCopy","typedValue","proxy","copy","readOnly","CreateObjectProxy","Proxy","ObjectProxyGetter","ObjectProxySetter","ArrayProxySetter","array","Update","ArrayProxyGetter","arrayValue","proxyArray","SetPropertyValue","object","leafScopes","jsonType","GetAccessorValue","aliasValue","CreateArrayProxy","Touch","DefaultCreateProxy","pathTuples","property","tupleIndex","assignValue","ObservableScopeWrapper","ObservableScopeValue","CalcScope","currentlyWatching","watchingScope","calcFunctions","getFunction","emitter_1","emitter","scopeEmitter","Emitter","On","Emit","Unwatch","Remove","DestroyScope","UpdateScope","prePromise","promise","dirty","watchEmitters","parentScope","parentWatching","watchEmittersSet","WatchScope","right","emitters","setCallback","Sort","left","leftIndex","rightIndex","UpdateEmitters","UpdateValue","includes","valueFunction","Symbol","toStringTag","OnSet","Watching","updateScopeQueue","ProcessScopeUpdateQueue","processList","Split","CalcChanged","calc","changed","some","queueMicrotask","QueueScopeUpdate","DirtyScope","storeSync_1","storeAsync_1","StepFunctions","AnimationType","Animation","EaseIn","count","t","Linear","Running","running","Start","End","end","Enabled","enabled","duration","update","frameCount","Math","ceil","frameTimings","frameTime","animationTimeouts","Animate","Cancel","stepFunc","step","SetTimeout","Disable","Enable","clearTimeout","RemoveNulls","nullIndex","notNullIndex","ArrayDiff","e","ExecuteQueue","State","StateDecorator","ValueDecorator","ScopeDecorator","Inject","InjectorDecorator","bind","nodeInstanceMap","scopeInstanceMap","destroyPrototypeMap","GetNodeMapForInstance","instance","GetScopeMapForInstance","GetDestroyArrayForPrototype","propertyKey","val","propertyMap","tuple","CreateValueScope","descriptor","getter","DestroyDecorator","template","PreReqTemplateDecorator","PreReqTemplateDecorator_Template","PreReqDecorator","proto","PreReqDecorator_PreReqs","scopeMap","getPrototypeOf","func","all","array_1","globalId","Compare","_id","removed","indexOf","sort","typeMap","action","_a","jsonProto","arrayProto","strProto","numProto","JsonDiffRecursive","newValue","oldValue","resp","newType","oldType","changedPathLength","allChildrenChanged","concat","arrayPath","oldValueElem","JsonDiffArrays","newKeys","oldKeys","newKeyIndex","oldKeyIndex","childPath","JsonDiffObjects","initResult","sourceType","typedPatch","typedSource","sourceKeys","maxTempListSize","trimScheduled","tempList","tail","CreateNode","PopNode","previous","TrimTempList","trimSize","floor","ScheduleTrimTempList","requestIdleCallback","ReturnNode","retList","Append","appendTo","append","AddBefore","newNode","prevNode","AddAfter","nextNode","prev","ForEach","keyCallback","ScheduleCallback","Callback","c","ThreadAsync","workTimeMs","contextQueue","threadContext","timeoutRunning","scheduleCallback","timeRemaining","Date","now","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/createAssignment.ts","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.CreateAssignment = CreateAssignment;\nfunction CreateAssignment(target, createAssignment) {\n let last;\n let writeTo;\n return function AssignNext(next) {\n if (next === last)\n return;\n last = next;\n writeTo ??= {};\n const nextKeys = next && Object.keys(next);\n for (let x = 0; nextKeys && x < nextKeys.length; x++) {\n const key = nextKeys[x];\n writeTo[key] ??= createAssignment(target, key);\n }\n const writeKeys = Object.keys(writeTo);\n for (let x = 0; x < writeKeys.length; x++)\n writeTo[writeKeys[x]](next);\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateEventAssignment = CreateEventAssignment;\nfunction CreateEventAssignment(target, event) {\n let lastEvent;\n return function (next) {\n const nextEvent = next && next[event];\n if (nextEvent === lastEvent)\n return;\n lastEvent && target.removeEventListener(event, lastEvent);\n nextEvent && target.addEventListener(event, nextEvent);\n lastEvent = nextEvent;\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CreateNodeValueAssignment = CreateNodeValueAssignment;\nexports.CreatePropertyAssignment = CreatePropertyAssignment;\nconst json_1 = require(\"../Utils/json\");\nfunction CreateNodeValueAssignment(target) {\n let lastValue = target.nodeValue;\n return function AssignNodeValue(value) {\n if (value !== lastValue) {\n target.nodeValue = value;\n lastValue = value;\n }\n };\n}\nfunction WalkValue(next, callback, index = 0, parent = \"\") {\n const keys = Object.keys(next);\n for (let x = 0; x < keys.length; x++) {\n const value = next[keys[x]];\n const type = (0, json_1.JsonType)(value);\n switch (type) {\n case \"object\":\n index = WalkValue(value, callback, index, `${parent}${keys[x]}.`);\n break;\n default:\n callback(`${parent}${keys[x]}`, value, index);\n index++;\n break;\n }\n }\n return index;\n}\nfunction AssignNodeValue(target, value) {\n target.nodeValue = value;\n}\nfunction AssignValue(target, value) {\n target.value = value;\n}\nfunction AssignClassName(target, value) {\n target.className = value;\n}\nfunction GetAssignmentFunction(path) {\n switch (path) {\n case \"nodeValue\":\n return AssignNodeValue;\n case \"value\":\n return AssignValue;\n case \"className\":\n return AssignClassName;\n default:\n return new Function(\"t\", \"v\", `t.${path} = v;`);\n }\n}\nfunction CreatePropertyAssignment(target) {\n const last = [[\"\", null, null]];\n function WalkCallback(path, value, index) {\n if (index >= last.length || last[index][0] !== path) {\n last[index] = [path, value, GetAssignmentFunction(path)];\n last[index][2](target, value);\n }\n else if (last[index][1] !== value) {\n last[index][1] = value;\n last[index][2](target, value);\n }\n }\n return function AssignProperty(next) {\n if (next === null) {\n for (let x = 0; x < last.length; x++)\n last[x][2](target, null);\n if (last.length > 0)\n last.splice(0);\n return;\n }\n const endIndex = WalkValue(next, WalkCallback);\n if (endIndex < last.length)\n last.splice(endIndex);\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\");\nconst createAssignment_1 = require(\"./createAssignment\");\nconst createPropertyAssignment_2 = require(\"./createPropertyAssignment\");\nlet pendingUpdates = list_1.List.Create();\nlet updateScheduled = false;\nconst updateMs = 16;\nfunction processUpdates() {\n list_1.List.Add(pendingUpdates, null);\n let callback;\n while ((callback = list_1.List.Pop(pendingUpdates)))\n callback();\n if (pendingUpdates.size === 0)\n updateScheduled = false;\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 createTextAssignment(target) {\n return (0, createPropertyAssignment_1.CreateNodeValueAssignment)(target);\n },\n setText(target, text) {\n target.nodeValue = 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 return (0, createPropertyAssignment_2.CreatePropertyAssignment)(target);\n },\n createEventAssignment(target) {\n return (0, createAssignment_1.CreateAssignment)(target, createEventAssignment_1.CreateEventAssignment);\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 WrapEventObject(node, events) {\n const keys = Object.keys(events);\n const ret = {};\n for (let x = 0; x < keys.length; x++) {\n const event = keys[x];\n const eventFunc = events[event];\n ret[event] = function (...args) {\n if (node.destroyed)\n return;\n return eventFunc(...args);\n };\n }\n return ret;\n }\n function Init(boundNode) {\n const nodeDef = boundNode.nodeDef;\n if (nodeDef.props) {\n boundNode.assignProperties = nodeConfig_1.NodeConfig.createPropertyAssignment(boundNode.node);\n if (typeof nodeDef.props === 'function') {\n const scope = observableScope_1.ObservableScope.Create(nodeDef.props);\n boundNode.scopes ??= [];\n boundNode.scopes.push(scope);\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 else {\n boundNode.assignProperties(nodeDef.props);\n boundNode.assignProperties = null;\n }\n }\n if (nodeDef.attrs) {\n if (typeof nodeDef.attrs === 'function') {\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 else\n SetAttributes(boundNode, nodeDef.attrs);\n }\n if (nodeDef.on) {\n boundNode.assignEvents = nodeConfig_1.NodeConfig.createEventAssignment(boundNode.node);\n if (typeof nodeDef.on === 'function') {\n const scope = observableScope_1.ObservableScope.Create(nodeDef.on);\n const eventScope = observableScope_1.ObservableScope.Create(function () {\n const events = observableScope_1.ObservableScope.Value(scope);\n return WrapEventObject(boundNode, events);\n });\n boundNode.scopes ??= [];\n boundNode.scopes.push(scope, eventScope);\n observableScope_1.ObservableScope.Watch(eventScope, function (scope) { ScheduleSetEvents(boundNode, scope); });\n const next = observableScope_1.ObservableScope.Value(eventScope);\n boundNode.assignEvents(next);\n }\n else {\n boundNode.assignEvents(WrapEventObject(boundNode, nodeDef.on));\n boundNode.assignEvents = null;\n }\n }\n if (nodeDef.text) {\n boundNode.assignText = nodeConfig_1.NodeConfig.createTextAssignment(boundNode.node);\n if (typeof nodeDef.text === 'function') {\n const scope = observableScope_1.ObservableScope.Create(nodeDef.text);\n boundNode.scopes ??= [];\n boundNode.scopes.push(scope);\n observableScope_1.ObservableScope.Watch(scope, function (scope) { ScheduleSetText(boundNode, scope); });\n const next = observableScope_1.ObservableScope.Value(scope);\n boundNode.assignText(next);\n }\n else {\n boundNode.assignText(nodeDef.text);\n boundNode.assignText = null;\n }\n }\n }\n BoundNode.Init = Init;\n})(BoundNode || (exports.BoundNode = BoundNode = {}));\nfunction ScheduleSetText(node, scope) {\n if (node.setText)\n return;\n node.setText = true;\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n node.setText = false;\n if (node.destroyed)\n return;\n const next = observableScope_1.ObservableScope.Value(scope);\n node.assignText(next);\n });\n}\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 || null);\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 if (typeof data === 'function')\n this.scope = new observableScope_1.ObservableScope(data);\n else\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 list_1.List.Clear(list);\n }\n else\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n if (node.destroyed)\n return;\n nodeRef_1.NodeRef.ReconcileChildren(node, list);\n list_1.List.Clear(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 if (Array.isArray(children))\n elemNode.childrenArray = children;\n else if (children !== undefined)\n elemNode.children = children;\n return elemNode;\n }\n ElementNode.Create = Create;\n function Init(elementNode) {\n const nodeDef = elementNode.nodeDef;\n if (elementNode.childrenArray !== null || (elementNode.children !== null && !nodeDef.data)) {\n SetDefaultData(elementNode);\n }\n else if (elementNode.children !== null) {\n const dataScope = observableScope_1.ObservableScope.Create(nodeDef.data);\n const valueScope = observableScope_1.ObservableScope.Create(function () {\n const value = observableScope_1.ObservableScope.Value(dataScope);\n if (!value)\n return valueDefault;\n if (!Array.isArray(value))\n return [value];\n return value;\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 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 = node.childrenArray || injector_1.Injector.Scope(node.injector, CreateNodeArray, node.children, true);\n node.childrenArray = null;\n if (nodes.length > 0) {\n (0, thread_1.Schedule)(function () {\n if (node.destroyed)\n return;\n nodeRef_1.NodeRef.InitAll(node, nodes);\n });\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 list_1.List.Clear(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.children, 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 text: function () {\n return 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 assignText: null,\n setAttributes: false,\n setEvents: false,\n setText: 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 assignText: null,\n setAttributes: false,\n setEvents: false,\n children: null,\n childrenArray: null,\n nodeList: null,\n setData: false,\n setText: 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 insert = false;\n let remove = false;\n for (let curDataNode = nextChildren.head; curDataNode !== null; curDataNode = curDataNode.next) {\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 }\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.BoundNode:\n node.assignEvents?.(null);\n case NodeRefType.ElementNode:\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();\nconst leafScopeCache = 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, 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}\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 }\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 proxy = new Proxy(value, {\n get: ObjectProxyGetter,\n set: ObjectProxySetter,\n has,\n ownKeys,\n getOwnPropertyDescriptor,\n });\n leafScopeCache.set(value, {});\n proxyCache.set(value, proxy);\n return proxy;\n }\n function ArrayProxySetter(array, prop, value) {\n if (readOnly)\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 (readOnly)\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)\n throw `Object is readonly`;\n }\n switch (prop) {\n case exports.IS_OBSERVABLE_NODE:\n return true;\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 scope = scopeCache.get(array);\n array = observableScope_1.ObservableScope.Value(scope);\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 SetPropertyValue(object, prop, value) {\n object[prop] = value;\n const leafScopes = leafScopeCache.get(object);\n observableScope_1.ObservableScope.Update(leafScopes && leafScopes[prop] || scopeCache.get(object));\n }\n function ObjectProxySetter(object, prop, value) {\n if (readOnly)\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 jsonType = (0, jsonType_1.JsonType)(value);\n if (jsonType === 'value') {\n value !== object[prop] && SetPropertyValue(object, prop, value);\n }\n else {\n value = UnwrapProxy(value, jsonType);\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 SetPropertyValue(object, 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 SetPropertyValue(curr, path[y], diff[x].value);\n }\n }\n }\n return true;\n }\n function ObjectProxyGetter(object, prop) {\n switch (prop) {\n case exports.IS_OBSERVABLE_NODE:\n return true;\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 return GetAccessorValue(object, prop);\n }\n }\n }\n function GetAccessorValue(parent, prop) {\n const leafScopes = leafScopeCache.get(parent);\n leafScopes[prop] ??= observableScope_1.ObservableScope.Create(function () {\n const value = parent[prop];\n return CreateProxyFromValue(value);\n });\n return observableScope_1.ObservableScope.Value(leafScopes[prop]);\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 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;\nexports.CalcScope = CalcScope;\nconst emitter_1 = require(\"../../Utils/emitter\");\nconst list_1 = require(\"../../Utils/list\");\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 watchingScope = null;\nlet currentlyWatching = false;\nfunction WatchScope(scope) {\n const parentScope = watchingScope;\n const parentWatching = currentlyWatching;\n watchingScope = scope;\n currentlyWatching = true;\n const value = scope.getFunction();\n watchingScope.watchEmittersSet = null;\n watchingScope = parentScope;\n currentlyWatching = parentWatching;\n return value;\n}\nfunction CalcScope(callback) {\n const value = callback();\n if (currentlyWatching) {\n watchingScope.calcFunctions ??= [];\n watchingScope.calcFunctions.push({\n getFunction: callback,\n value\n });\n }\n return value;\n}\n(function (ObservableScope) {\n function Create(valueFunction) {\n const scope = {\n getFunction: valueFunction,\n value: null,\n promise: null,\n async: valueFunction[Symbol.toStringTag] === \"AsyncFunction\",\n dirty: true,\n emitter: emitter_1.Emitter.Create(),\n emitters: [],\n calcFunctions: null,\n destroyed: false,\n watchEmitters: null,\n watchEmittersSet: null,\n setCallback: function () {\n return OnSet(scope);\n },\n };\n return scope;\n }\n ObservableScope.Create = Create;\n function Register(emitter) {\n if (!currentlyWatching)\n return;\n watchingScope.watchEmitters ??= [];\n if (watchingScope.watchEmitters.length === 10)\n watchingScope.watchEmittersSet ??= new Set(watchingScope.watchEmitters);\n if (watchingScope.watchEmittersSet === null ? !watchingScope.watchEmitters.includes(emitter) : !watchingScope.watchEmittersSet.has(emitter)) {\n watchingScope.watchEmittersSet?.add(emitter);\n watchingScope.watchEmitters.push(emitter);\n }\n }\n ObservableScope.Register = Register;\n function Value(scope) {\n if (!scope)\n return undefined;\n Register(scope.emitter);\n UpdateScope(scope);\n return scope.value;\n }\n ObservableScope.Value = Value;\n function Watching() {\n return currentlyWatching;\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 UpdateScope(scope) {\n const prePromise = scope.promise;\n UpdateValue(scope);\n scope.async && prePromise !== scope.promise && scope.promise.then(function () {\n emitter_1.Emitter.Emit(scope.emitter, scope);\n });\n}\nconst updateScopeQueue = list_1.List.Create();\nfunction ProcessScopeUpdateQueue() {\n const processList = list_1.List.Split(updateScopeQueue, 0);\n for (let node = processList.head; node !== null; node = node.next)\n UpdateScope(node.data);\n list_1.List.Clear(processList);\n}\nfunction QueueScopeUpdate(scope) {\n list_1.List.Add(updateScopeQueue, scope);\n if (updateScopeQueue.size === 1)\n queueMicrotask(ProcessScopeUpdateQueue);\n}\nfunction CalcChanged(calc) {\n const value = calc.getFunction();\n const changed = calc.value !== value;\n calc.value = value;\n return changed;\n}\nfunction DirtyScope(scope) {\n scope.dirty = scope.calcFunctions === null || scope.calcFunctions.some(CalcChanged);\n scope.dirty && (scope.async ? QueueScopeUpdate(scope) : emitter_1.Emitter.Emit(scope.emitter, scope));\n}\nfunction OnSet(scope) {\n if (!scope || scope.dirty || scope.destroyed)\n return scope?.destroyed;\n DirtyScope(scope);\n return false;\n}\nfunction UpdateValue(scope) {\n if (!scope.dirty)\n return;\n scope.dirty = false;\n scope.watchEmitters = null;\n scope.calcFunctions = null;\n const value = WatchScope(scope);\n if (scope.async) {\n scope.promise = value.then(function (result) {\n scope.value = result;\n return result;\n });\n }\n else\n scope.value = value;\n UpdateEmitters(scope);\n}\nfunction UpdateEmitters(scope) {\n const right = scope.watchEmitters;\n if (right === null) {\n if (scope.emitters.length > 0) {\n for (let x = 0; x < scope.emitters.length; x++)\n emitter_1.Emitter.Remove(scope.emitters[x], scope.setCallback);\n scope.emitters = [];\n }\n return;\n }\n emitter_1.Emitter.Sort(right);\n const left = scope.emitters;\n let leftIndex = 0;\n let rightIndex = 0;\n for (; leftIndex < left.length; leftIndex++) {\n let y = rightIndex;\n for (; y < right.length && left[leftIndex] !== right[y]; y++)\n emitter_1.Emitter.On(right[rightIndex], scope.setCallback);\n if (y === right.length)\n emitter_1.Emitter.Remove(left[leftIndex], scope.setCallback);\n else {\n for (let x = rightIndex; x < y; x++)\n emitter_1.Emitter.On(right[x], scope.setCallback);\n rightIndex = y + 1;\n }\n }\n for (; rightIndex < right.length; rightIndex++)\n emitter_1.Emitter.On(right[rightIndex], scope.setCallback);\n scope.emitters = right;\n}\nfunction DestroyScope(scope) {\n if (!scope)\n return;\n const emitters = scope.emitters;\n scope.emitters = null;\n scope.emitter = null;\n scope.getFunction = null;\n scope.setCallback = null;\n scope.calcFunctions = null;\n scope.destroyed = true;\n for (let x = 0; x < emitters.length; x++)\n emitter_1.Emitter.Remove(emitters[x], scope.setCallback);\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 CreateValueScope(tuple) {\n return observableScope_1.ObservableScope.Create(function () {\n return tuple[1];\n });\n}\nfunction ValueDecorator(target, propertyKey) {\n return {\n configurable: false,\n enumerable: true,\n get: function () {\n const propertyMap = GetScopeMapForInstance(this);\n const tuple = propertyMap[propertyKey] ??= [null, undefined];\n tuple[0] ??= CreateValueScope(tuple);\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 const getter = descriptor.get;\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(getter.bind(this));\n return observableScope_1.ObservableScope.Value(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 let globalId = 0;\n function Create() {\n const emitter = [++globalId];\n return emitter;\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 = 1; x < emitter.length; x++) {\n if (emitter[x] === null || emitter[x](...args) === 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 >= 1)\n emitter[index] = null;\n }\n Emitter.Remove = Remove;\n function Clear(emitter) {\n emitter.splice(0);\n }\n Emitter.Clear = Clear;\n function Sort(emitters) {\n return emitters.sort(Compare);\n }\n Emitter.Sort = Sort;\n function Compare(a, b) {\n return a[0] - b[0];\n }\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 const arrayProto = Object.getPrototypeOf([]);\n const strProto = Object.getPrototypeOf(\"\");\n const numProto = Object.getPrototypeOf(0);\n function JsonType(value) {\n if (value === null || value === undefined)\n return \"value\";\n switch (Object.getPrototypeOf(value)) {\n case strProto:\n case numProto:\n return \"value\";\n case jsonProto:\n return \"object\";\n case arrayProto:\n return \"array\";\n }\n if (Array.isArray(value))\n return \"array\";\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.length > changedPathLength && 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 if (oldValue.length === 0 || newValue.length === 0) {\n return oldValue.length !== newValue.length;\n }\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 let maxTempListSize = 0;\n let trimScheduled = false;\n const tempList = Create();\n function CreateNode(data) {\n const node = PopNode(tempList) ?? { previous: null, next: null, data: null };\n node.data = data;\n return node;\n }\n function TrimTempList() {\n trimScheduled = false;\n if (maxTempListSize < tempList.size)\n maxTempListSize = tempList.size;\n const trimSize = Math.floor(maxTempListSize / 10);\n Split(tempList, trimSize);\n }\n function ScheduleTrimTempList() {\n if (!trimScheduled) {\n trimScheduled = true;\n requestIdleCallback(TrimTempList);\n }\n }\n function ReturnNode(node) {\n if (!node)\n return;\n node.previous = null;\n node.next = null;\n node.data = null;\n AddNode(tempList, node);\n ScheduleTrimTempList();\n }\n function Create() {\n return {\n head: null,\n tail: null,\n size: 0\n };\n }\n List.Create = Create;\n function Split(list, length) {\n let index = 0;\n let node = list.head;\n while (node && index < length) {\n node = node.next;\n index++;\n }\n const retList = Create();\n if (node) {\n retList.head = node;\n retList.tail = list.tail;\n retList.size = list.size - length;\n list.tail = node.previous;\n list.size = length;\n if (list.size === 0)\n list.head = null;\n else\n list.tail.next = null;\n node.previous = null;\n }\n return retList;\n }\n List.Split = Split;\n function Clear(list) {\n let node = list.head;\n while (node) {\n node.data = null;\n node = node.next;\n }\n Append(tempList, list);\n ScheduleTrimTempList();\n }\n List.Clear = Clear;\n function Push(list, data) {\n const node = CreateNode(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 PopNode(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 node.previous = null;\n node.next = null;\n return node;\n }\n List.PopNode = PopNode;\n function Pop(list) {\n const node = PopNode(list);\n const data = node?.data;\n ReturnNode(node);\n return data;\n }\n List.Pop = Pop;\n function Add(list, data) {\n const node = CreateNode(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 = CreateNode(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 = CreateNode(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 const data = node.data;\n ReturnNode(node);\n return 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 Append(appendTo, append) {\n if (append.size === 0)\n return;\n if (appendTo.size === 0) {\n appendTo.head = append.head;\n append.head = null;\n appendTo.tail = append.tail;\n append.tail = null;\n appendTo.size = append.size;\n append.size = 0;\n return;\n }\n appendTo.tail.next = append.head;\n append.head.previous = appendTo.tail;\n appendTo.tail = append.tail;\n appendTo.size += append.size;\n append.head = null;\n append.tail = null;\n append.size = 0;\n }\n List.Append = Append;\n function ToNodeMap(list, keyCallback) {\n const map = new Map();\n for (let node = list.head; node !== null; node = node.next) {\n const key = keyCallback(node.data);\n const nodes = map.get(key);\n if (nodes === undefined)\n map.set(key, [node]);\n else\n nodes[nodes.length] = node;\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 observableScope_1 = require(\"./Store/Tree/observableScope\");\nObject.defineProperty(exports, \"calc\", { enumerable: true, get: function () { return observableScope_1.CalcScope; } });\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":["Object","defineProperty","exports","value","CreateAssignment","target","createAssignment","last","writeTo","next","nextKeys","keys","x","length","key","writeKeys","CreateEventAssignment","event","lastEvent","nextEvent","removeEventListener","addEventListener","CreateNodeValueAssignment","lastValue","nodeValue","CreatePropertyAssignment","WalkCallback","path","index","GetAssignmentFunction","splice","endIndex","WalkValue","json_1","callback","parent","JsonType","AssignNodeValue","AssignValue","AssignClassName","className","Function","DOMNodeConfig","window_1","list_1","createPropertyAssignment_1","createEventAssignment_1","createAssignment_1","createPropertyAssignment_2","pendingUpdates","List","Create","updateScheduled","processUpdates","Add","Pop","size","wndw","requestAnimationFrame","createNode","type","namespace","document","createElementNS","createElement","createTextNode","scheduleUpdate","addListener","removeListener","addChild","root","child","appendChild","addChildFirst","addChildBefore","firstChild","sibling","insertBefore","addChildAfter","nextSibling","removeChild","remove","parentNode","createTextAssignment","setText","text","getAttribute","attribute","setAttribute","createPropertyAssignment","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","undefined","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","NodeConfig","WrapEventObject","events","ret","eventFunc","args","destroyed","Init","boundNode","props","assignProperties","scope","ObservableScope","scopes","push","Watch","setProperties","Value","ScheduleSetProperties","attrs","setAttributes","ScheduleSetAttributes","on","assignEvents","eventScope","setEvents","ScheduleSetEvents","assignText","ScheduleSetText","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","Clear","After","setTimeout","compNode","NodeRefType","componentNode","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","head","curDetach","childNodes","delete","DestroyAll","ReconcileNodeData","attachNodes","startSize","async","childrenFunc","newNodes","textNode","elemNode","childrenArray","elementNode","defaultNodeList","dataScope","valueScope","Set","setData","ScheduleSetData","domNodeConfig_1","Store_1","nodeType","nodeNamespace","Current","lastEvents","AddChildToNode","add","forEach","nodeRefs","AddChildAfter","currentChild","newChild","nextChildren","rootNode","priorNode","insert","curDataNode","actualNode","expectedNode","DiffAsync","workerQueue_1","diffWorker_1","keyFunc","workerQueue","WorkerQueue","DiffWorker","Push","method","arguments","toString","DiffPath","DiffBatch","DiffSync","diffCnstr","DiffTreeFactory","JsonDiffFactory","diffTree","jsonDiffFactory","worker","ctx","onmessage","eval","DiffTree","postMessage","diff","GetPath","FlattenValue","typedArray","typedObject","GetPathValue","parts","split","curr","SetPathValue","ResolveKeyPath","pathValues","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","slice","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","start","deleteCount","items","arrCopy","spliceResult","Stop","StoreSync","diffSync_1","GET_TO_JSON","IS_OBSERVABLE_NODE","jsonType_1","proxyCache","WeakMap","scopeCache","leafScopeCache","prop","getOwnPropertyDescriptorArray","has","hasOwn","hasArray","ownKeys","ownKeysArray","UnwrapProxy","CreateProxyFactory","alias","CreateProxy","CreateProxyFromValue","ToJson","ToJsonCopy","typedValue","proxy","copy","readOnly","CreateObjectProxy","Proxy","ObjectProxyGetter","ObjectProxySetter","ArrayProxySetter","array","Update","ArrayProxyGetter","arrayValue","proxyArray","SetPropertyValue","object","leafScopes","jsonType","GetAccessorValue","aliasValue","CreateArrayProxy","Touch","DefaultCreateProxy","pathTuples","property","tupleIndex","assignValue","ObservableScopeWrapper","ObservableScopeValue","CalcScope","currentlyWatching","watchingScope","calcFunctions","getFunction","emitter_1","emitter","scopeEmitter","Emitter","On","Emit","Unwatch","Remove","DestroyScope","UpdateScope","prePromise","promise","dirty","watchEmitters","parentScope","parentWatching","watchEmittersSet","WatchScope","right","emitters","setCallback","Sort","left","leftIndex","rightIndex","UpdateEmitters","UpdateValue","includes","valueFunction","Symbol","toStringTag","OnSet","Watching","updateScopeQueue","ProcessScopeUpdateQueue","processList","Split","CalcChanged","calc","changed","some","queueMicrotask","QueueScopeUpdate","DirtyScope","storeSync_1","storeAsync_1","StepFunctions","AnimationType","Animation","EaseIn","count","t","Linear","Running","running","Start","End","end","Enabled","enabled","duration","update","frameCount","Math","ceil","frameTimings","frameTime","animationTimeouts","Animate","Cancel","stepFunc","step","SetTimeout","Disable","Enable","clearTimeout","RemoveNulls","nullIndex","notNullIndex","ArrayDiff","e","ExecuteQueue","State","StateDecorator","ValueDecorator","ScopeDecorator","Inject","InjectorDecorator","bind","nodeInstanceMap","scopeInstanceMap","destroyPrototypeMap","GetNodeMapForInstance","instance","GetScopeMapForInstance","GetDestroyArrayForPrototype","propertyKey","val","propertyMap","tuple","CreateValueScope","descriptor","getter","DestroyDecorator","template","PreReqTemplateDecorator","PreReqTemplateDecorator_Template","PreReqDecorator","proto","PreReqDecorator_PreReqs","scopeMap","getPrototypeOf","func","all","array_1","globalId","Compare","removed","indexOf","sort","typeMap","action","_a","jsonProto","arrayProto","strProto","numProto","JsonDiffRecursive","newValue","oldValue","resp","newType","oldType","changedPathLength","allChildrenChanged","concat","arrayPath","oldValueElem","JsonDiffArrays","newKeys","oldKeys","newKeyIndex","oldKeyIndex","childPath","JsonDiffObjects","initResult","sourceType","typedPatch","typedSource","sourceKeys","maxTempListSize","trimScheduled","tempList","tail","CreateNode","PopNode","previous","TrimTempList","trimSize","floor","ScheduleTrimTempList","requestIdleCallback","ReturnNode","retList","Append","appendTo","append","AddBefore","newNode","prevNode","AddAfter","nextNode","prev","ForEach","keyCallback","ScheduleCallback","Callback","c","ThreadAsync","workTimeMs","contextQueue","threadContext","timeoutRunning","scheduleCallback","timeRemaining","Date","now","createDeadline","ProcessQueue","deadline","DoWork","ScheduleWork","Invoke","workEndNode","workList","parentContext","before","inSynchCallback","SynchWithoutThread","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","module","__webpack_modules__","Web"],"sourceRoot":""}