j-templates 6.0.28 → 6.0.29
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/Store/Tree/observableScope.js +4 -3
- package/jTemplates.js +1 -1
- package/jTemplates.js.map +1 -1
- package/package.json +1 -1
|
@@ -124,8 +124,8 @@ function WatchScope(scope) {
|
|
|
124
124
|
ObservableScope.Destroy = Destroy;
|
|
125
125
|
})(ObservableScope || (exports.ObservableScope = ObservableScope = {}));
|
|
126
126
|
function UpdateScope(scope) {
|
|
127
|
-
UpdateValue(scope);
|
|
128
|
-
scope.async && scope.promise.then(function () {
|
|
127
|
+
const updated = UpdateValue(scope);
|
|
128
|
+
updated && scope.async && scope.promise.then(function () {
|
|
129
129
|
emitter_1.Emitter.Emit(scope.emitter, scope);
|
|
130
130
|
});
|
|
131
131
|
}
|
|
@@ -153,7 +153,7 @@ function OnSet(scope) {
|
|
|
153
153
|
}
|
|
154
154
|
function UpdateValue(scope) {
|
|
155
155
|
if (!scope.dirty)
|
|
156
|
-
return;
|
|
156
|
+
return false;
|
|
157
157
|
scope.dirty = false;
|
|
158
158
|
scope.watchEmitters = null;
|
|
159
159
|
const value = WatchScope(scope);
|
|
@@ -166,6 +166,7 @@ function UpdateValue(scope) {
|
|
|
166
166
|
else
|
|
167
167
|
scope.value = value;
|
|
168
168
|
UpdateEmitters(scope);
|
|
169
|
+
return true;
|
|
169
170
|
}
|
|
170
171
|
function UpdateEmitters(scope) {
|
|
171
172
|
const newEmitters = scope.watchEmitters;
|
package/jTemplates.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{"use strict";var __webpack_modules__={390:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CreateAssignment=function(e,t){let n,o;return function(r){if(r===n)return;n=r,o??={};const i=r&&Object.keys(r);for(let n=0;i&&n<i.length;n++){const r=i[n];o[r]??=t(e,r)}const s=Object.keys(o);for(let e=0;e<s.length;e++)o[s[e]](r)}}},642:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CreateEventAssignment=function(e,t){let n;return function(o){const r=o&&o[t];r!==n&&(n&&e.removeEventListener(t,n),r&&e.addEventListener(t,r),n=r)}}},543:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CreateNodeValueAssignment=function(e){let t=e.nodeValue;return function(n){n!==t&&(e.nodeValue=n,t=n)}},t.CreatePropertyAssignment=function(e){const t=[["",null,null]];function n(n,o,r){r>=t.length||t[r][0]!==n?(t[r]=[n,o,u(n)],t[r][2](e,o)):t[r][1]!==o&&t[r][2](e,o)}return function(o){if(null===o){for(let n=0;n<t.length;n++)t[n][2](e,null);return void(t.length>0&&t.splice(0))}const i=r(o,n);i<t.length&&t.splice(i)}};const o=n(874);function r(e,t,n=0,i=""){const s=Object.keys(e);for(let c=0;c<s.length;c++){const u=e[s[c]];"object"===(0,o.JsonType)(u)?n=r(u,t,n,`${i}${s[c]}.`):(t(`${i}${s[c]}`,u,n),n++)}return n}function i(e,t){e.nodeValue=t}function s(e,t){e.value=t}function c(e,t){e.className=t}function u(e){switch(e){case"nodeValue":return i;case"value":return s;case"className":return c;default:return new Function("t","v",`t.${e} = v;`)}}},641:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DOMNodeConfig=void 0;const o=n(819),r=n(496),i=n(543),s=n(642),c=n(390),u=n(543);let a=r.List.Create(),l=!1;function d(){let e;for(r.List.Add(a,null);e=r.List.Pop(a);)e();0===a.size?l=!1:o.wndw.requestAnimationFrame(d)}t.DOMNodeConfig={createNode:(e,t)=>t?o.wndw.document.createElementNS(t,e):o.wndw.document.createElement(e),createTextNode:(e="")=>o.wndw.document.createTextNode(e),scheduleUpdate(e){r.List.Add(a,e),l||(l=!0,o.wndw.requestAnimationFrame(d))},addListener(e,t,n){e.addEventListener(t,n)},removeListener(e,t,n){e.removeEventListener(t,n)},addChild(e,t){e.appendChild(t)},addChildFirst(e,n){t.DOMNodeConfig.addChildBefore(e,e.firstChild,n)},addChildBefore(e,n,o){n?o!==n&&e.insertBefore(o,n):t.DOMNodeConfig.addChild(e,o)},addChildAfter(e,n,o){n?t.DOMNodeConfig.addChildBefore(e,n.nextSibling,o):t.DOMNodeConfig.addChildFirst(e,o)},removeChild(e,t){e.removeChild(t)},remove(e){e&&e.parentNode&&e.parentNode.removeChild(e)},createTextAssignment:e=>(0,i.CreateNodeValueAssignment)(e),setText(e,t){e.nodeValue=t},getAttribute:(e,t)=>e.getAttribute(t),setAttribute(e,t,n){e.setAttribute(t,n)},createPropertyAssignment:e=>(0,u.CreatePropertyAssignment)(e),createEventAssignment:e=>(0,c.CreateAssignment)(e,s.CreateEventAssignment),fireEvent(e,t,n){var o=new CustomEvent(t,n);e.dispatchEvent(o)},getFirstChild:e=>e.firstChild,getLastChild:e=>e.lastChild,getNextSibling:e=>e.nextSibling,replaceChildren(e,t){e.replaceChildren(...t)}}},774:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.div=function(e,t){return o.ElementNode.Create("div",null,e,t)},t.a=function(e,t){return o.ElementNode.Create("a",null,e,t)},t.ul=function(e,t){return o.ElementNode.Create("ul",null,e,t)},t.li=function(e,t){return o.ElementNode.Create("li",null,e,t)},t.br=function(e){return o.ElementNode.Create("br",null,e,null)},t.b=function(e,t){return o.ElementNode.Create("b",null,e,t)},t.span=function(e,t){return o.ElementNode.Create("span",null,e,t)},t.img=function(e){return o.ElementNode.Create("img",null,e,null)},t.video=function(e,t){return o.ElementNode.Create("video",null,e,t)},t.source=function(e){return o.ElementNode.Create("source",null,e,null)},t.input=function(e){return o.ElementNode.Create("input",null,e,null)},t.textarea=function(e){return o.ElementNode.Create("textarea",null,e,null)},t.select=function(e,t){return o.ElementNode.Create("select",null,e,t)},t.option=function(e,t){return o.ElementNode.Create("option",null,e,t)},t.h1=function(e,t){return o.ElementNode.Create("h1",null,e,t)},t.h2=function(e,t){return o.ElementNode.Create("h2",null,e,t)},t.h3=function(e,t){return o.ElementNode.Create("h3",null,e,t)},t.p=function(e,t){return o.ElementNode.Create("p",null,e,t)},t.style=function(e,t){return o.ElementNode.Create("style",null,e,t)},t.button=function(e,t){return o.ElementNode.Create("button",null,e,t)},t.table=function(e,t){return o.ElementNode.Create("table",null,e,t)},t.tbody=function(e,t){return o.ElementNode.Create("tbody",null,e,t)},t.th=function(e,t){return o.ElementNode.Create("th",null,e,t)},t.tr=function(e,t){return o.ElementNode.Create("tr",null,e,t)},t.td=function(e,t){return o.ElementNode.Create("td",null,e,t)};const o=n(413)},147:function(e,t,n){var o=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,r)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||o(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(774),t),r(n(716),t),r(n(543),t),r(n(642),t)},716:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.svg=function(e,t){return o.ElementNode.Create("svg",r,e,t)},t.g=function(e,t){return o.ElementNode.Create("g",r,e,t)},t.circle=function(e,t){return o.ElementNode.Create("circle",r,e,t)};const o=n(413),r="http://www.w3.org/2000/svg"},819:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.wndw=void 0,t.wndw="undefined"!=typeof window?window:function(){try{return Object(function(){var e=new Error("Cannot find module 'jsdom'");throw e.code="MODULE_NOT_FOUND",e}())("").window}catch(e){return}}()},173:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BoundNode=void 0;const o=n(267),r=n(948);var i;function s(e,t){if(t)for(var n in t)o.NodeConfig.getAttribute(e.node,n)!==t[n]&&o.NodeConfig.setAttribute(e.node,n,t[n])}!function(e){function t(e,t){const n=Object.keys(t),o={};for(let r=0;r<n.length;r++){const i=n[r],s=t[i];o[i]=function(...t){if(!e.destroyed)return s(...t)}}return o}e.Init=function(e){const n=e.nodeDef;if(n.props)if(e.assignProperties=o.NodeConfig.createPropertyAssignment(e.node),"function"==typeof n.props){const t=r.ObservableScope.Create(n.props);e.scopes??=[],e.scopes.push(t),r.ObservableScope.Watch(t,(function(t){!function(e,t){e.setProperties||(e.setProperties=!0,o.NodeConfig.scheduleUpdate((function(){if(e.setProperties=!1,e.destroyed)return;const n=r.ObservableScope.Value(t);e.assignProperties(n||null)})))}(e,t)}));const i=r.ObservableScope.Value(t);e.assignProperties(i)}else e.assignProperties(n.props),e.assignProperties=null;if(n.attrs)if("function"==typeof n.attrs){const t=r.ObservableScope.Create(n.attrs);e.scopes??=[],e.scopes.push(t),r.ObservableScope.Watch(t,(function(t){!function(e,t){e.setAttributes||(e.setAttributes=!0,o.NodeConfig.scheduleUpdate((function(){e.setAttributes=!1,e.destroyed||s(e,r.ObservableScope.Value(t))})))}(e,t)})),s(e,r.ObservableScope.Value(t))}else s(e,n.attrs);if(n.on)if(e.assignEvents=o.NodeConfig.createEventAssignment(e.node),"function"==typeof n.on){const i=r.ObservableScope.Create(n.on),s=r.ObservableScope.Create((function(){const n=r.ObservableScope.Value(i);return t(e,n)}));e.scopes??=[],e.scopes.push(i,s),r.ObservableScope.Watch(s,(function(t){!function(e,t){e.setEvents||(e.setEvents=!0,o.NodeConfig.scheduleUpdate((function(){if(e.setEvents=!1,e.destroyed)return;const n=r.ObservableScope.Value(t);e.assignEvents(n)})))}(e,t)}));const c=r.ObservableScope.Value(s);e.assignEvents(c)}else e.assignEvents(t(e,n.on)),e.assignEvents=null;if(n.text)if(e.assignText=o.NodeConfig.createTextAssignment(e.node),"function"==typeof n.text){const t=r.ObservableScope.Create(n.text);e.scopes??=[],e.scopes.push(t),r.ObservableScope.Watch(t,(function(t){!function(e,t){e.setText||(e.setText=!0,o.NodeConfig.scheduleUpdate((function(){if(e.setText=!1,e.destroyed)return;const n=r.ObservableScope.Value(t);e.assignText(n)})))}(e,t)}));const i=r.ObservableScope.Value(t);e.assignText(i)}else e.assignText(n.text),e.assignText=null}}(i||(t.BoundNode=i={}))},342:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Component=void 0;const o=n(64),r=n(230),i=n(334),s=n(948);class c{get Injector(){return this.nodeRef.injector}get Destroyed(){return this.nodeRef.destroyed}get Scope(){return this.scope}get Data(){return this.scope.Value}get NodeRef(){return this.nodeRef}get Templates(){return this.templates}constructor(e,t,n,o){this.nodeRef=n,this.componentEvents=o,this.scope="function"==typeof e?new s.ObservableScope(e):new s.ObservableScope((()=>e)),this.templates=t||{}}Template(){return[]}Bound(){}Fire(e,t){var n=this.componentEvents&&this.componentEvents[e];n&&n(t)}Destroy(){this.scope.Destroy(),i.Destroy.All(this)}}t.Component=c,function(e){function t(e,t,n){return r.ComponentNode.ToFunction(e,t,n)}function n(e,t){o.NodeRef.Init(t);var n=o.NodeRef.Wrap(e);o.NodeRef.AddChild(n,t)}e.ToFunction=t,e.Register=function(e,o){const r=t(`${e}-component`,void 0,o);class i extends HTMLElement{constructor(){super(),n(this.attachShadow({mode:"open"}),r({}))}}customElements.define(e,i)},e.Attach=n}(c||(t.Component=c={}))},230:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ComponentNode=void 0;const o=n(173),r=n(64),i=n(267),s=n(342),c=n(880),u=n(334),a=n(224),l=n(496);var d;function f(e){const t=e.component.Template();return Array.isArray(t)?t:[t]}function h(e,t){(0,a.Thread)((function(){if(e.destroyed)return;const n=c.Injector.Scope(e.injector,f,e);(0,a.Schedule)((function(){r.NodeRef.InitAll(e,n)})),(0,a.Thread)((function(){if(e.destroyed)return;const o=l.List.Create();l.List.Add(o,{value:void 0,init:!0,nodes:n}),t?(r.NodeRef.ReconcileChildren(e,o),l.List.Clear(o)):i.NodeConfig.scheduleUpdate((function(){e.destroyed||(r.NodeRef.ReconcileChildren(e,o),l.List.Clear(o))}))})),e.component.Bound!==s.Component.prototype.Bound&&(0,a.After)((function(){i.NodeConfig.scheduleUpdate((()=>setTimeout((()=>e.component.Bound()),0)))}))}))}!function(e){e.Fire=function(e,t){var n=this.componentEvents&&this.componentEvents[e];n&&n(t)},e.ToFunction=function(e,t,n){return function(o,i){return function(e,t,n,o,i){var s=r.NodeRef.Create(e,t,r.NodeRefType.ComponentNode);return s.nodeDef=n,s.constructor=o,s.templates=i,s}(e,t,o,n,i)}},e.Init=function(e){var t,n=e.nodeDef,s=n.on;n.on=null,e.component=new e.constructor(n.data,e.templates,e,s),t=e,u.PreReq.Has(t.component)?function(e){return new Promise((t=>{(0,a.Thread)((function(){const n=c.Injector.Scope(e.injector,u.PreReqTemplate.Get,e.component);(0,a.Schedule)((function(){e.destroyed||r.NodeRef.InitAll(e,n)})),(0,a.Thread)((function(){if(!e.destroyed){for(var o=0;o<n.length;o++)r.NodeRef.AddChild(e,n[o]);u.PreReq.All(e.component).then((function(){if(!e.destroyed){for(var o=0;o<n.length;o++)r.NodeRef.Destroy(n[o]);i.NodeConfig.scheduleUpdate((function(){if(!e.destroyed){for(var o=0;o<n.length;o++)r.NodeRef.DetachChild(e,n[o]);t()}}))}}))}}))}))}))}(t).then((function(){h(t,!1)})):h(t,!0),o.BoundNode.Init(e)}}(d||(t.ComponentNode=d={}))},413:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ElementNode=void 0;const o=n(948),r=n(880),i=n(496),s=n(224),c=n(173),u=n(267),a=n(64),l=[];var d;function f(e){return e.value}function h(e,t,n=!1){(0,s.Synch)((function(){!function(e,t){const n=i.List.Create(),o=e.nodeList,c=o&&i.List.ToNodeMap(o,f);for(let s=0;s<t.length;s++){let u=null;if(c){const e=c.get(t[s]);if(e){let t=e.length-1;for(;t>=0&&!u;t--)u=e[t],e[t]=null}}u?(i.List.RemoveNode(o,u),i.List.AddNode(n,u)):u=i.List.Add(n,{value:t[s],init:!1,nodes:r.Injector.Scope(e.injector,p,e.childrenFunc,t[s])})}let u=n.head;for(;u;){const t=u.data;!t.init&&(0,s.Schedule)((function(){e.destroyed||0===n.size||(a.NodeRef.InitAll(e,t.nodes),t.init=!0)})),u=u.next}if(o){let t=o.head;for(;t;){const n=t.data;t=t.next;for(let t=0;t<n.nodes.length;t++)e.childNodes.delete(n.nodes[t]);a.NodeRef.DestroyAll(n.nodes)}i.List.Clear(o)}e.nodeList=n}(e,t);const o=e.nodeList,c=o.size;(0,s.Thread)((function(t){e.destroyed||(n||!t?a.NodeRef.ReconcileChildren(e,o):u.NodeConfig.scheduleUpdate((function(){e.destroyed||o.size!==c||a.NodeRef.ReconcileChildren(e,o)})))}))}))}function p(e,t){const n=e(t);if("string"==typeof n||!n){const n=a.NodeRef.Create("text",null,a.NodeRefType.BoundNode);return n.nodeDef={text:function(){return e(t)}},[n]}return Array.isArray(n)?n:[n]}!function(e){e.Create=function(e,t,n,o){var r=a.NodeRef.Create(e,t,a.NodeRefType.ElementNode);return r.nodeDef=n,r.childrenFunc=o,r},e.Init=function(e){if(e.childrenFunc){var t=e.nodeDef;if(t.data){const n=o.ObservableScope.Create(t.data),r=o.ObservableScope.Create((function(){let e=o.ObservableScope.Value(n);return e?Array.isArray(e)?e.slice():[e]:l}));e.childNodes=new Set,e.scopes??=[],e.scopes.push(n,r),o.ObservableScope.Watch(r,(function(){!function(e,t){e.setData||(e.setData=!0,u.NodeConfig.scheduleUpdate((function(){e.setData=!1,e.destroyed||h(e,o.ObservableScope.Value(t))})))}(e,r)})),h(e,o.ObservableScope.Value(r),!0)}else n=e,(0,s.Synch)((function(){const e=r.Injector.Scope(n.injector,p,n.childrenFunc,!0);e.length>0&&(a.NodeRef.InitAll(n,e),(0,s.Thread)((function(){if(n.destroyed)return;const t=i.List.Create();i.List.Add(t,{value:null,init:!0,nodes:e}),a.NodeRef.ReconcileChildren(n,t),i.List.Clear(t)})))}))}var n;c.BoundNode.Init(e)}}(d||(t.ElementNode=d={}))},267:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NodeConfig=void 0;const o=n(641);t.NodeConfig=o.DOMNodeConfig},64:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NodeRef=t.NodeRefType=void 0;const o=n(267),r=n(880),i=n(173),s=n(413),c=n(230),u=n(890);var a,l;!function(e){e[e.NodeRef=0]="NodeRef",e[e.BoundNode=1]="BoundNode",e[e.ElementNode=2]="ElementNode",e[e.ComponentNode=3]="ComponentNode"}(a||(t.NodeRefType=a={})),function(e){function t(e,t,n){switch(n){case a.NodeRef:return{node:null,nodeType:e,nodeNamespace:t,type:a.NodeRef,injector:r.Injector.Current()||new r.Injector,parent:null,childNodes:null,destroyed:!1};case a.BoundNode:return{node:null,nodeDef:null,nodeType:e,nodeNamespace:t,type:a.BoundNode,injector:r.Injector.Current()||new r.Injector,parent:null,childNodes:null,destroyed:!1,lastEvents:null,setProperties:!1,assignProperties:null,assignEvents:null,assignText:null,setAttributes:!1,setEvents:!1,setText:!1,scopes:null};case a.ElementNode:return{node:null,nodeDef:null,nodeType:e,nodeNamespace:t,type:a.ElementNode,injector:r.Injector.Current()||new r.Injector,parent:null,childNodes:null,destroyed:!1,lastEvents:null,setProperties:!1,assignProperties:null,assignEvents:null,assignText:null,setAttributes:!1,setEvents:!1,childrenFunc:null,nodeList:null,setData:!1,setText:!1,scopes:null};case a.ComponentNode:return{node:null,nodeDef:null,nodeType:e,nodeNamespace:t,type:a.ComponentNode,injector:r.Injector.Current()||new r.Injector,parent:null,childNodes:null,destroyed:!1,setProperties:!1,assignProperties:null,assignEvents:null,setAttributes:!1,setEvents:!1,component:null,componentEvents:null,scopes:null}}}function n(e){if(!e.node)switch(e.node="text"===e.nodeType?o.NodeConfig.createTextNode():o.NodeConfig.createNode(e.nodeType,e.nodeNamespace),e.childNodes="text"!==e.nodeType?[]:null,e.type){case a.BoundNode:i.BoundNode.Init(e);break;case a.ElementNode:s.ElementNode.Init(e);break;case a.ComponentNode:c.ComponentNode.Init(e)}}function l(e,t){Array.isArray(e.childNodes)?e.childNodes.push(t):e.childNodes.add(t)}function d(e){if(!e.destroyed){if(e.destroyed=!0,Array.isArray(e.childNodes))for(let t=0;t<e.childNodes.length;t++)d(e.childNodes[t]);else e.childNodes?.forEach(d);switch(e.type){case a.ComponentNode:e.component?.Destroy();case a.BoundNode:e.assignEvents?.(null);case a.ElementNode:for(let t=0;e.scopes&&t<e.scopes.length;t++)u.ObservableScope.Destroy(e.scopes[t])}e.node=null}}e.Wrap=function(e){var n=t(null,null,a.NodeRef);return n.node=e,n.childNodes=new Set,n},e.Create=t,e.Init=n,e.InitAll=function(e,t){for(var o=0;o<t.length;o++)t[o].parent=e,l(e,t[o]),n(t[o])},e.AddChild=function(e,t){t.parent=e,l(e,t),o.NodeConfig.addChild(e.node,t.node)},e.AddChildAfter=function(e,t,n){if(t&&t.parent!==e)throw"currentChild is not valid";n.parent=e,l(e,n),o.NodeConfig.addChildAfter(e.node,t&&t.node,n.node)},e.ReconcileChildren=function(e,t){const n=e.node;if(0===t.size)return void o.NodeConfig.replaceChildren(n,[]);let r,i=t?.head,s=!1,c=!1;for(;i;){for(let e=0;e<i.data.nodes.length;e++){const t=r?o.NodeConfig.getNextSibling(r):o.NodeConfig.getFirstChild(n),u=i.data.nodes[e].node;t!==u?(o.NodeConfig.addChildBefore(n,t,u),!c&&s&&t&&o.NodeConfig.removeChild(n,t),c=s,s=!0):(s=!1,c=!1),r=u}i=i.next}let u=o.NodeConfig.getLastChild(n);for(;r&&r!==u;)o.NodeConfig.removeChild(n,u),u=o.NodeConfig.getLastChild(n)},e.DetachChild=function(e,t){!Array.isArray(e.childNodes)&&e.childNodes.delete(t)&&(o.NodeConfig.removeChild(e.node,t.node),t.parent=null)},e.Destroy=d,e.DestroyAll=function(e){for(let t=0;t<e.length;t++)d(e[t])}}(l||(t.NodeRef=l={}))},377:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiffAsync=void 0;const o=n(521),r=n(547);t.DiffAsync=class{constructor(e){this.workerQueue=new o.WorkerQueue(r.DiffWorker.Create()),this.workerQueue.Push({method:"create",arguments:e?[e.toString()]:[]})}async DiffPath(e,t){return await this.workerQueue.Push({method:"diffpath",arguments:[e,t]})}async DiffBatch(e){return await this.workerQueue.Push({method:"diffbatch",arguments:[e]})}Destroy(){this.workerQueue.Destroy()}}},606:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiffSync=void 0;const o=n(874),r=(0,n(285).DiffTreeFactory)(o.JsonDiffFactory);t.DiffSync=class{constructor(e){this.diffTree=new r(e)}DiffPath(e,t){return this.diffTree.DiffPath(e,t)}DiffBatch(e){return this.diffTree.DiffBatch(e)}}},285:(__unused_webpack_module,exports)=>{function DiffTreeFactory(jsonDiffFactory,worker){const{JsonDiff,JsonType,JsonDeepClone}=jsonDiffFactory(),ctx=this;if(worker&&ctx){let diffTree=null;ctx.onmessage=function(event){const data=event.data;switch(data.method){case"create":{const keyFunc=data.arguments[0]?eval(data.arguments[0]):void 0;diffTree=new DiffTree(keyFunc),ctx.postMessage(null);break}case"diffpath":{const e=diffTree.DiffPath(data.arguments[0],data.arguments[1]);ctx.postMessage(e);break}case"diffbatch":{const e=diffTree.DiffBatch(data.arguments[0]);ctx.postMessage(e);break}case"getpath":{const e=diffTree.GetPath(data.arguments[0]);ctx.postMessage(e);break}}}}function FlattenValue(e,t,n){switch(JsonType(t)){case"array":const o=t;for(let t=0;t<o.length;t++)FlattenValue(e,o[t],n);break;case"object":const r=t,i=n(r);i&&(e[i]=r);const s=Object.keys(r);for(let t=0;t<s.length;t++)FlattenValue(e,r[s[t]],n)}return e}function GetPathValue(e,t){if(""===t)return e;const n=t.split(".");let o=e;for(let e=0;e<n.length;e++)o=o[n[e]];return o}function SetPathValue(e,t,n){if(0===t.length)return;let o=e,r=0;for(;r<t.length-1;r++)o=o[t[r]];o[t[r]]=n}function ResolveKeyPath(e,t,n){const o=t.split("."),r=new Array(o.length-1);let i=e;for(let e=0;e<o.length-1;e++)i=i[o[e]],r[e]=i;let s=r.length-1;for(;s>=0&&("object"!==JsonType(r[s])||!n(r[s]));s--);if(s>=0){const e=n(r[s]);return o.splice(0,s+1,e),o.join(".")}return t}function UpdateSource(e,t,n,o){const r=[];if(o){const i=ResolveKeyPath(e,t,o);if(i!==t){const t=UpdateSource(e,i,n,o);r.push(...t)}}const i=GetPathValue(e,t);if(JsonDiff(n,i,t,r),o){let t={};t=FlattenValue(t,n,o),t=JsonDeepClone(t);const i=Object.keys(t);for(let n=0;n<i.length;n++)JsonDiff(t[i[n]],e[i[n]],i[n],r)}const s=r.filter((e=>void 0!==e.value));for(let t=0;t<s.length;t++)SetPathValue(e,s[t].path,s[t].value);return r}class DiffTree{constructor(e){this.keyFunc=e,this.rootState={}}DiffBatch(e){return e.map((({path:e,value:t})=>this.DiffPath(e,t))).flat(1)}DiffPath(e,t){return UpdateSource(this.rootState,e,t,this.keyFunc)}GetPath(e){return GetPathValue(this.rootState,e)}}return DiffTree}Object.defineProperty(exports,"__esModule",{value:!0}),exports.DiffTreeFactory=DiffTreeFactory},547:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiffWorker=void 0;const o=n(874),r=n(285);var i;!function(e){let t=null,n=null;"undefined"!=typeof Worker&&(t=Worker,n=URL.createObjectURL(new Blob([`(${r.DiffTreeFactory}).call(this, (${o.JsonDiffFactory}), true)`]))),e.Create=function(){if(!t)throw"Worker is not available";return new t(n)}}(i||(t.DiffWorker=i={}))},521:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WorkerQueue=void 0;const o=n(496);t.WorkerQueue=class{constructor(e){this.worker=e,this.callbacks=o.List.Create(),this.worker.onerror=e=>{const t=o.List.Pop(this.callbacks);t&&t(null,e)},this.worker.onmessage=e=>{const t=o.List.Pop(this.callbacks);t&&t(e.data)}}Push(e){return new Promise(((t,n)=>{o.List.Add(this.callbacks,(function(e,o){o?n(o):t(e)})),this.worker.postMessage(e)}))}Destroy(){this.worker.terminate()}}},501:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Store=void 0;const o=n(318);t.Store=class{constructor(e){this.keyFunc=e,this.rootMap=new Map;const t=e&&(t=>{const n=e(t);if(void 0===n)return;const r=this.rootMap.get(n);if(void 0===r)throw`No root object found for key: ${n}`;return r[o.GET_OBSERVABLE_VALUE][n]});this.createNode=t?o.ObservableNode.CreateFactory(t):o.ObservableNode.Create}Get(e,t){let n=this.rootMap.get(e);return void 0===n&&(n=this.createNode({[e]:t}),this.rootMap.set(e,n)),n[e]}UpdateRootMap(e){for(let t=0;t<e.length;){const n=e[t].path[0],o=t;for(;t<e.length&&e[t].path[0]===n;)t++;const r=e.slice(o,t);this.UpdateRootObject(r[0].path[0],r)}}UpdateRootObject(e,t){const n=this.rootMap.get(e);if(void 0!==n)o.ObservableNode.ApplyDiff(n,t);else{if(t.length>1||t[0].path.length>1)throw`Unable to initialize root path ${e} with ${t.length} results and initial path ${t[0].path}`;const n=this.createNode({[e]:t[0].value});this.rootMap.set(e,n)}}}},161:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StoreAsync=void 0;const o=n(263),r=n(874),i=n(377),s=n(318),c=n(501);class u extends c.Store{constructor(e){super(e),this.queue=new o.AsyncQueue,this.diff=new i.DiffAsync(e)}async Write(e,t){await this.queue.Next((async()=>{if(!(t=t||this.keyFunc?.(e)))throw"No key provided for data";const n=await this.diff.DiffPath(t,e);this.UpdateRootMap(n)}))}async Patch(e,t){await this.queue.Next((async()=>{const n=this.Get(e);if(void 0===n)throw"Unable to patch undefined value";const o=n.toJSON(),i=(0,r.JsonMerge)(o,t),s=await this.diff.DiffPath(e,i);this.UpdateRootMap(s)}))}async Push(e,...t){await this.queue.Next((async()=>{const n=this.Get(e),o=t.map((function(t,o){return{path:`${e}.${n.length+o}`,value:t}})),r=await this.diff.DiffBatch(o);this.UpdateRootMap(r)}))}async Splice(e,t,n,...o){return await this.queue.Next((async()=>{const i=this.Get(e)[s.GET_OBSERVABLE_VALUE].slice(),c=(0,r.JsonDeepClone)(i.splice(t,n,...o)),u=await this.diff.DiffPath(e,i);return this.UpdateRootMap(u),c}))}Destroy(){this.queue.Stop(),this.diff.Destroy()}}t.StoreAsync=u},961:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StoreSync=void 0;const o=n(874),r=n(606),i=n(318),s=n(501);class c extends s.Store{constructor(e){super(e),this.diff=new r.DiffSync(e)}Write(e,t){if(!(t=t||this.keyFunc?.(e)))throw"No key provided for data";const n=this.diff.DiffPath(t,e);this.UpdateRootMap(n)}Patch(e,t){const n=this.Get(e);if(void 0===n)throw"Unable to patch undefined value";const r=n.toJSON(),i=(0,o.JsonMerge)(r,t),s=this.diff.DiffPath(e,i);this.UpdateRootMap(s)}Push(e,...t){const n=this.Get(e),o=t.map((function(t,o){return{path:`${e}.${n.length+o}`,value:t}})),r=this.diff.DiffBatch(o);this.UpdateRootMap(r)}Splice(e,t,n,...r){const s=this.Get(e)[i.GET_OBSERVABLE_VALUE].slice(),c=(0,o.JsonDeepClone)(s.splice(t,n,...r)),u=this.diff.DiffPath(e,s);return this.UpdateRootMap(u),c}}t.StoreSync=c},318:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ObservableNode=t.GET_TO_JSON=t.GET_OBSERVABLE_VALUE=t.IS_OBSERVABLE_NODE=void 0;const o=n(874),r=n(130),i=n(948);t.IS_OBSERVABLE_NODE="____isObservableNode",t.GET_OBSERVABLE_VALUE="____getObservableValue",t.GET_TO_JSON="toJSON";const s=new WeakMap,c=new WeakMap,u=new WeakMap;function a(e,t){return{...Object.getOwnPropertyDescriptor(e,t),configurable:!0}}function l(e,t){return{...Object.getOwnPropertyDescriptor(e,t),configurable:!0}}function d(e,t){return Object.hasOwn(e,t)}function f(e,t){return Object.hasOwn(e,t)}function h(e){return Object.keys(e)}function p(e){return Object.keys(e)}function v(e){const n=(0,r.JsonType)(e);if("value"===n)return e;if(!0===e[t.IS_OBSERVABLE_NODE])return e[t.GET_OBSERVABLE_VALUE];switch(n){case"object":{const t=Object.keys(e);for(let n=0;n<t.length;n++)e[t[n]]=v(e[t[n]])}case"array":for(let t=0;t<e.length;t++)e[t]=v(e[t])}return e}function b(e){function n(e){return E(e=v(e))}const b=void 0!==e?function t(o){switch((0,r.JsonType)(o)){case"array":return n(o).map(t);case"object":{const r=e(o)??o,i=n(r),s=Object.keys(i),c={};for(let e=0;e<s.length;e++)c[s[e]]=t(r[s[e]]);return c}default:return o}}:function(e){return e},y=void 0!==e;function g(e){const t=i.ObservableScope.Create((()=>e)),n=new Proxy(e,{get:_,set:C,has:d,ownKeys:h,getOwnPropertyDescriptor:a});return c.set(e,t),s.set(e,n),n}function m(e,n,o){if(y)throw"Object is readonly";if(n===t.IS_OBSERVABLE_NODE)throw`Cannot assign read-only property: ${t.IS_OBSERVABLE_NODE}`;o=v(o),e[n]=o;const r=c.get(e);return i.ObservableScope.Update(r),!0}function O(e,n){if(n===t.IS_OBSERVABLE_NODE)return!0;if(y)switch(n){case"push":case"unshift":case"splice":case"pop":case"shift":case"sort":case"reverse":if(y)throw"Object is readonly"}const o=c.get(e);switch(e=i.ObservableScope.Value(o),n){case t.GET_TO_JSON:return function(){return b(e)};case t.GET_OBSERVABLE_VALUE:return e;default:{const t=e[n];return"symbol"==typeof n?t:"function"==typeof t?function(...t){const r="slice"===n?e.slice(...t):e.slice();for(let e=0;e<r.length;e++)r[e]=E(r[e]);let s="slice"===n?r:r[n](...t);switch(n){case"push":case"unshift":case"splice":case"pop":case"shift":case"sort":case"reverse":e.length=r.length;for(let t=0;t<r.length;t++)e[t]=v(r[t]);i.ObservableScope.Update(o)}return s}:E(t)}}}function N(e,t,n){e[t]=n;const o=u.get(e);i.ObservableScope.Update(o&&o[t]||c.get(e))}function C(e,n,r){if(y)throw"Object is readonly";if(n===t.IS_OBSERVABLE_NODE)throw`Cannot assign read-only property: ${t.IS_OBSERVABLE_NODE}`;r=v(r);const i=(0,o.JsonDiff)(r,e[n]);for(let t=0;t<i.length;t++)if(0===i[t].path.length)N(e,n,i[t].value);else{const o=i[t].path;let r=e[n],s=0;for(;s<o.length-1;s++)r=r[o[s]];N(r,o[s],i[t].value)}return!0}function _(e,n){if(n===t.IS_OBSERVABLE_NODE)return!0;switch(n){case t.GET_TO_JSON:return function(){return b(e)};case t.GET_OBSERVABLE_VALUE:return e;default:return function(e,t){let n=u.get(e);return void 0===n&&(n={},u.set(e,n)),n[t]??=i.ObservableScope.Create((function(){return E(e[t])})),i.ObservableScope.Value(n[t])}(e,n)}}function E(t){switch((0,r.JsonType)(t)){case"object":{let n=s.get(t)??g(t);if(void 0!==e){const t=e(n);void 0!==t&&(n=s.get(t)??g(t))}return n}case"array":{const e=s.get(t)??function(e){const t=i.ObservableScope.Create((()=>e)),n=new Proxy(e,{get:O,set:m,has:f,ownKeys:p,getOwnPropertyDescriptor:l});return c.set(e,t),s.set(e,n),n}(t);return i.ObservableScope.Touch(c.get(t)),e}default:return t}}return n}const y=b();var g;!function(e){e.Create=function(e){return y(e)},e.Touch=function(e){const t=c.get(e);i.ObservableScope.Update(t)},e.ApplyDiff=function(n,o){const r=[["",n[t.GET_OBSERVABLE_VALUE]]];for(let t=0;t<o.length;t++){const{path:n,value:i}=o[t];let s=0;for(;s<n.length-1;s++){const e=n[s],t=r[s][1],o=s+1;if(r.length<=o)r.push([e,t[e]]);else if(r[o][0]!==e){r[o][0]=e,r[o][1]=t[e];const n=o+1;n<r.length&&(r[n][0]=null)}}const c=r[s][1];c[n[s]]=i,e.Touch(c)}},e.CreateFactory=function(e){return b(e)}}(g||(t.ObservableNode=g={}))},948:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ObservableScope=t.ObservableScopeWrapper=t.ObservableScopeValue=void 0;const o=n(116),r=n(496);class i{get Value(){return c.Value(this.scope)}constructor(e){this.scope=e}}t.ObservableScopeValue=i;class s extends i{constructor(e){super(e),e.emitter&&(this.scopeEmitter=o.Emitter.Create(),o.Emitter.On(e.emitter,(()=>o.Emitter.Emit(this.scopeEmitter,this))))}Scope(e){return new c((()=>e(this.Value)))}Watch(e){this.scopeEmitter&&(o.Emitter.On(this.scopeEmitter,e),e(this))}Unwatch(e){this.scopeEmitter&&o.Emitter.Remove(this.scopeEmitter,e)}Destroy(){p(this.scope),this.scopeEmitter&&o.Emitter.Clear(this.scopeEmitter)}}t.ObservableScopeWrapper=s;class c extends s{constructor(e){super(c.Create(e))}}t.ObservableScope=c;let u=null,a=!1;function l(e){!function(e){if(!e.dirty)return;e.dirty=!1,e.watchEmitters=null;const t=function(e){const t=u,n=a;u=e,a=!0;const o=e.getFunction();return u=t,a=n,o}(e);e.async?e.promise=t.then((function(t){return e.value=t,t})):e.value=t,function(e){const t=e.watchEmitters;if(null===t){for(let t=0;t<e.emitters.length;t++)o.Emitter.Remove(e.emitters[t],e.setCallback);return void(e.emitters=[])}let n=0;for(;n<e.emitters.length&&n<t.length&&e.emitters[n]===t[n];n++);for(let t=n;t<e.emitters.length;t++)o.Emitter.Remove(e.emitters[t],e.setCallback);for(let r=n;r<t.length;r++)o.Emitter.On(t[r],e.setCallback);e.emitters=t}(e)}(e),e.async&&e.promise.then((function(){o.Emitter.Emit(e.emitter,e)}))}!function(e){function t(e){a&&(u.watchEmitters??=[],u.watchEmitters.push(e))}e.Create=function(e){const t={getFunction:e,value:null,promise:null,async:"AsyncFunction"===e[Symbol.toStringTag],dirty:!0,emitter:o.Emitter.Create(),emitters:[],destroyed:!1,watchEmitters:null,setCallback:function(){return h(t)}};return t},e.Register=t,e.Value=function(e){if(e)return t(e.emitter),l(e),e.value},e.Watching=function(){return a},e.Touch=function(e){e&&e.emitter&&t(e.emitter)},e.Watch=function(e,t){e&&e.emitter&&o.Emitter.On(e.emitter,t)},e.Unwatch=function(e,t){e&&e.emitter&&o.Emitter.Remove(e.emitter,t)},e.Update=function(e){h(e)},e.Destroy=function(e){p(e)}}(c||(t.ObservableScope=c={}));const d=r.List.Create();function f(){const e=r.List.Split(d,0);for(let t=e.head;null!==t;t=t.next)l(t.data);r.List.Clear(e)}function h(e){return!e||e.dirty||e.destroyed?e?.destroyed:(function(e){e.dirty=!0,e.async?function(e){r.List.Add(d,e),1===d.size&&queueMicrotask(f)}(e):o.Emitter.Emit(e.emitter,e)}(e),!1)}function p(e){e&&(e.emitters=null,e.emitter=null,e.getFunction=null,e.setCallback=null,e.destroyed=!0)}},890:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ObservableNode=t.ObservableScope=t.StoreAsync=t.StoreSync=void 0;var o=n(961);Object.defineProperty(t,"StoreSync",{enumerable:!0,get:function(){return o.StoreSync}});var r=n(161);Object.defineProperty(t,"StoreAsync",{enumerable:!0,get:function(){return r.StoreAsync}});var i=n(948);Object.defineProperty(t,"ObservableScope",{enumerable:!0,get:function(){return i.ObservableScope}});var s=n(318);Object.defineProperty(t,"ObservableNode",{enumerable:!0,get:function(){return s.ObservableNode}})},20:(e,t)=>{var n,o;Object.defineProperty(t,"__esModule",{value:!0}),t.Animation=t.AnimationType=void 0,function(e){e.EaseIn=function*(e){for(var t=1/e,n=t,o=0;o<e;o++,n+=t)yield(1-n)*(1-n)*(1-n)*0+3*(1-n)*(1-n)*n*1+3*(1-n)*n*n*1+n*n*n*1},e.Linear=function*(e){for(var t=1/e,n=t,o=0;o<e;o++,n+=t)yield n}}(n||(n={})),function(e){e[e.Linear=0]="Linear",e[e.EaseIn=1]="EaseIn"}(o||(t.AnimationType=o={})),t.Animation=class{get Running(){return this.running}get Start(){return this.start}get End(){return this.end}get Enabled(){return this.enabled}constructor(e,t,n){this.running=!1,this.start=null,this.end=null,this.enabled=!0,this.type=e,this.frameCount=Math.ceil(t/1e3*60),this.frameTimings=[];for(var o=t/this.frameCount,r=0;r<this.frameCount;r++)this.frameTimings[r]=(r+1)*o;this.update=n,this.animationTimeouts=[]}Animate(e,t){if(this.enabled){var r=t-e;if(0!==r)return this.Cancel(),this.running=!0,this.start=e,this.end=t,new Promise((t=>{var i=n[o[this.type]],s=0;for(var c of i(this.frameCount)){var u=c*r+e;this.SetTimeout(s,u,s===this.frameCount-1?t:null),s++}})).then((()=>{this.running=!1,this.start=null,this.end=null}))}}Disable(){this.Cancel(),this.enabled=!1}Enable(){this.enabled=!0}Cancel(){for(var e=0;e<this.animationTimeouts.length;e++)clearTimeout(this.animationTimeouts[e]);this.running=!1,this.start=null,this.end=null}Destroy(){this.Cancel()}SetTimeout(e,t,n){this.animationTimeouts[e]=setTimeout((()=>{this.update(t),n&&n()}),this.frameTimings[e])}}},959:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.RemoveNulls=function(e,t=0){let n=t;for(;n<e.length&&null!==e[n];n++);let o=n+1;for(;o<e.length&&null===e[o];o++);for(;o<e.length;)for(e[n]=e[o],n++,o++;o<e.length&&null===e[o];o++);e.splice(n)},t.ArrayDiff=function(e,t){if(e===t)return!1;if(!e||!t||e.length!==t.length)return!0;let n=0;for(;n<e.length&&e[n]===t[n];n++);return n<e.length}},263:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AsyncQueue=void 0;const o=n(496);t.AsyncQueue=class{constructor(){this.running=!1,this.queue=o.List.Create()}Next(e){const t=new Promise(((t,n)=>{o.List.Add(this.queue,(async function(){try{const n=await e();t(n)}catch(e){n(e)}}))}));return this.Start(),t}Stop(){o.List.Clear(this.queue)}Start(){this.running||(this.running=!0,this.ExecuteQueue())}async ExecuteQueue(){const e=o.List.Pop(this.queue);null!==e?(await e(),this.ExecuteQueue()):this.running=!1}}},334:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.State=function(){return d},t.Value=function(){return f},t.Scope=function(){return h},t.Inject=function(e){return p.bind(null,e)},t.Destroy=v,t.PreReqTemplate=y,t.PreReq=m;const o=n(948),r=n(318),i=new WeakMap,s=new WeakMap,c=new WeakMap;function u(e){const t=i.get(e)??{};return i.set(e,t),t}function a(e){const t=s.get(e)??{};return s.set(e,t),t}function l(e){const t=c.get(e)??[];return c.set(e,t),t}function d(e,t){return{configurable:!1,enumerable:!0,get:function(){const e=u(this);return e[t]??=r.ObservableNode.Create({root:void 0}),e[t].root},set:function(e){const n=u(this);void 0===n[t]?n[t]=r.ObservableNode.Create({root:e}):n[t].root=e}}}function f(e,t){return{configurable:!1,enumerable:!0,get:function(){const e=a(this),n=e[t]??=[null,void 0];return n[0]??=function(e){return o.ObservableScope.Create((function(){return e[1]}))}(n),o.ObservableScope.Value(n[0])},set:function(e){const n=a(this);n[t]??=[null,void 0];const r=n[t];r[1]=e,o.ObservableScope.Update(r[0])}}}function h(e,t,n){if(!n||!n.get)throw"Scope decorator requires a getter";if(n&&n.set)throw"Scope decorator does not support setters";const r=n.get;return{configurable:!1,enumerable:!0,get:function(){const e=a(this);e[t]??=[null,void 0];const n=e[t];return null===n[0]&&(n[0]=o.ObservableScope.Create(r.bind(this))),o.ObservableScope.Value(n[0])}}}function p(e,t,n,o){return{configurable:!1,enumerable:!0,get:function(){return this.Injector.Get(e)},set:function(t){this.Injector.Set(e,t)}}}function v(){return b}function b(e,t){l(e).push(t)}function y(e){return g.bind(null,e)}function g(e,t){t.prototype.PreReqTemplateDecorator_Template=e}function m(){return O}function O(e,t){var n=e;n.PreReqDecorator_PreReqs=n.PreReqDecorator_PreReqs||[],n.PreReqDecorator_PreReqs.push(t)}!function(e){e.All=function(e){const t=s.get(e);if(void 0!==t){const e=Object.keys(t);for(let n=0;n<e.length;n++)o.ObservableScope.Destroy(t[e[n]][0])}const n=l(Object.getPrototypeOf(e));for(let t=0;t<n.length;t++)e[n[t]].Destroy()}}(v||(t.Destroy=v={})),function(e){e.Get=function(e){var t=e&&e.PreReqTemplateDecorator_Template,n=t?t():[];return Array.isArray(n)||(n=[n]),n}}(y||(t.PreReqTemplate=y={})),function(e){function t(e){return e&&e.PreReqDecorator_PreReqs||[]}e.All=function(e){var n=t(e).map((t=>e[t]&&e[t].Init||Promise.resolve()));return Promise.all(n)},e.Has=function(e){return t(e).length>0}}(m||(t.PreReq=m={}))},116:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Emitter=void 0;const o=n(959);var r;!function(e){e.Create=function(){return[]},e.On=function(e,t){e.push(t)},e.Emit=function(e,...t){let n=!1;for(let o=0;o<e.length;o++)null!==e[o]&&!0!==e[o](...t)||(n=!0,e[o]=null);n&&(0,o.RemoveNulls)(e)},e.Remove=function(e,t){const n=e.indexOf(t);n>=0&&(e[n]=null)},e.Clear=function(e){e.splice(0)}}(r||(t.Emitter=r={}))},586:function(e,t,n){var o=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,r)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||o(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(334),t),r(n(20),t)},880:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Injector=void 0;class n{constructor(){this.parent=n.Current(),this.typeMap=new Map}Get(e){if(0===this.typeMap.size)return this.parent&&this.parent.Get(e);var t=this.typeMap.get(e);return t||(t=this.parent&&this.parent.Get(e)),t}Set(e,t){this.typeMap.set(e,t)}}t.Injector=n,function(e){var t=null;function n(){return t}e.Current=n,e.Scope=function(e,o,...r){var i=n();t=e;const s=o(...r);return t=i,s}}(n||(t.Injector=n={}))},874:(e,t)=>{var n;function o(){const e=Object.getPrototypeOf({});function t(t){return null==t?"value":Array.isArray(t)?"array":e===Object.getPrototypeOf(t)?"object":"value"}function n(e,o,r,i){if(o===r)return!1;const s=t(o),c=t(r),u=i.length;let a=!0;if(s===c)switch(s){case"array":a=function(e,t,o,r){let i=!0;if(t.length!==o.length&&r.push({path:e.concat("length"),value:t.length}),t.length>0||o.length>0)for(let s=0;s<t.length;s++){const c=e.concat(s),u=o[s];i=n(c,t[s],u,r)&&i}else i=!1;return i}(e,o,r,i);break;case"object":a=function(e,t,o,r){const i=Object.keys(t).sort(),s=Object.keys(o).sort();if(0===i.length&&0===s.length)return!1;if(i.length<s.length)return!0;let c=0,u=0;for(;c<i.length;){const a=e.concat(i[c]);u<s.length&&i[c]===s[u]?(n(a,t[i[c]],o[s[u]],r),u++):void 0!==t[i[c]]&&r.push({path:a,value:t[i[c]]}),c++}return u<s.length}(e,o,r,i)}return!!a&&(i.splice(u),i.push({path:e,value:o}),!0)}return{JsonDiff:function(e,t,o,r){const i=r??[];return n(o?o.split("."):[],e,t,i),i},JsonType:t,JsonDeepClone:function e(n){switch(t(n)){case"array":return n.map(e);case"object":{const t={},o=Object.keys(n);for(let r=0;r<o.length;r++)t[o[r]]=e(n[o[r]]);return t}default:return n}},JsonMerge:function e(n,o){if(void 0===o)return n;const r=t(n);if(r!==t(o))return o;switch(r){case"array":{const t=o;return n.map((function(n,o){return e(n,t[o])}))}case"object":{const t=n,r=o,i=Object.keys(t),s={};for(let n=0;n<i.length;n++)s[i[n]]=e(t[i[n]],r[i[n]]);return s}default:return o}}}}Object.defineProperty(t,"__esModule",{value:!0}),t.JsonMerge=t.JsonDeepClone=t.JsonType=t.JsonDiff=void 0,t.JsonDiffFactory=o,n=o(),t.JsonDiff=n.JsonDiff,t.JsonType=n.JsonType,t.JsonDeepClone=n.JsonDeepClone,t.JsonMerge=n.JsonMerge},130:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.JsonType=void 0;var o=n(874);Object.defineProperty(t,"JsonType",{enumerable:!0,get:function(){return o.JsonType}})},496:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.List=void 0,function(e){let t,n=0,o=!1;const r={head:null,tail:null,size:0};function i(e){const t=l(r)??{previous:null,next:null,data:null};return t.data=e,t}function s(e){e&&(e.previous=null,e.next=null,e.data=null,d(r,e),c())}function c(){o||(o=!0,setTimeout((function(){o=!1,cancelIdleCallback(t),t=requestIdleCallback(u)})))}function u(){n<r.size&&(n=r.size);const e=Math.floor(n/10);a(r,e)}function a(e,t){let n=0,o=e.head;for(;o&&n<t;)o=o.next,n++;const r={head:null,tail:null,size:0};return o&&(r.head=o,r.tail=e.tail,r.size=e.size-t,e.tail=o.previous,e.size=t,0===e.size?e.head=null:e.tail.next=null,o.previous=null),r}function l(e){if(0===e.size)return null;const t=e.head;return e.head=t.next,e.head&&(e.head.previous=null),e.size--,0===e.size&&(e.tail=null),t.previous=null,t.next=null,t}function d(e,t){return 0===e.size?(e.head=t,e.tail=t,e.size=1):(t.previous=e.tail,e.tail.next=t,e.tail=t,e.size++),t}function f(e,t){if(0!==t.size){if(0===e.size)return e.head=t.head,t.head=null,e.tail=t.tail,t.tail=null,e.size=t.size,void(t.size=0);e.tail.next=t.head,t.head.previous=e.tail,e.tail=t.tail,e.size+=t.size,t.head=null,t.tail=null,t.size=0}}e.Create=function(){return{head:null,tail:null,size:0}},e.Split=a,e.Clear=function(e){let t=e.head;for(;t;)t.data=null,t=t.next;f(r,e),c()},e.Push=function(e,t){const n=i(t);return 0===e.size?(e.head=n,e.tail=n,e.size=1):(n.next=e.head,e.head.previous=n,e.head=n,e.size++),n},e.PopNode=l,e.Pop=function(e){const t=l(e),n=t?.data;return s(t),n},e.Add=function(e,t){return d(e,i(t))},e.AddNode=d,e.AddBefore=function(t,n,o){if(!n)return e.Add(t,o);const r=i(o),s=n.previous;return r.next=n,n.previous=r,t.head===n&&(t.head=r),s&&(s.next=r,r.previous=s),t.size++,r},e.AddAfter=function(t,n,o){if(!n)return e.Push(t,o);const r=i(o),s=n.next;return n.next=r,r.previous=n,t.tail===n&&(t.tail=r),s&&(s.previous=r,r.next=s),t.size++,r},e.Remove=function(e){if(0===e.size)return null;var t=e.tail;e.tail=t.previous,e.tail&&(e.tail.next=null),e.size--,0===e.size&&(e.head=null);const n=t.data;return s(t),n},e.RemoveNode=function(e,t){if(e.head===t)e.head=t.next;else if(e.tail===t)e.tail=t.previous;else{const e=t.previous,n=t.next;e.next=n,n.previous=e}t.next=t.previous=null,e.size--,e.size>0&&(e.head.previous=e.tail.next=null)},e.ForEach=function(e,t){let n=e.head;for(;n;)t(n.data),n=n.next},e.Append=f,e.ToNodeMap=function(e,t){const n=new Map;let o=e.head;for(;o;){const e=t(o.data),r=n.get(e)||[o];r[0]!==o?r.push(o):n.set(e,r),o=o.next}return n}}(n||(t.List=n={}))},224:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Schedule=b,t.After=function(e){v(e,!1,!1)},t.Callback=function(e){return function(t,n,o,r){b((function(){e(t,n,o,r)}))}},t.Synch=g,t.Thread=m,t.ThreadAsync=function(e){return new Promise((t=>m((function(n){e(n),m(t)}))))};const o=n(496),r=16,i=o.List.Create();let s=null,c=!1;const u=setTimeout;function a(){return this.end-Date.now()}function l(){return{end:Date.now()+r,timeRemaining:a}}function d(e=l()){let t;for(;e.timeRemaining()>0&&(t=o.List.Pop(i));)p(t,e);i.size>0?u(d):c=!1}function f(e){o.List.Add(i,e),c||(c=!0,u(d))}function h(e,t){const n=e.workEndNode;e.workEndNode=e.workList.head,t(!0),e.workEndNode=n}function p(e,t=l()){const n=s;s=e;const r=e.async;let i;for(;r===e.async&&t.timeRemaining()>0&&(i=o.List.Pop(e.workList));)h(e,i);e.workList.size>0&&f(e),s=n}function v(e,t,n){s=s||{async:!1,workEndNode:null,workList:o.List.Create()},s.async=s.async||n,t?o.List.AddBefore(s.workList,s.workEndNode,e):s.workEndNode?o.List.AddAfter(s.workList,s.workEndNode,e):s.workEndNode=o.List.Add(s.workList,e)}function b(e){v(e,!0,!0)}var y=!1;function g(e){s||y?e(!1):(y=!0,function(e){e(!1),s&&(s.async?f(s):p(s)),s=null}(e),y=!1)}function m(e){s?v(e,!0,!1):g(e)}},156:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Component=void 0;var o=n(342);Object.defineProperty(t,"Component",{enumerable:!0,get:function(){return o.Component}})},576:function(e,t,n){var o=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,r)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||o(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.ObservableNode=t.ObservableScope=void 0,r(n(156),t),r(n(586),t);var i=n(890);Object.defineProperty(t,"ObservableScope",{enumerable:!0,get:function(){return i.ObservableScope}}),Object.defineProperty(t,"ObservableNode",{enumerable:!0,get:function(){return i.ObservableNode}}),r(n(147),t)}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.exports}var __webpack_exports__={};(()=>{const e=__webpack_require__(576);for(var t in e)window[t]=e[t]})()})();
|
|
1
|
+
(()=>{"use strict";var __webpack_modules__={390:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CreateAssignment=function(e,t){let n,o;return function(r){if(r===n)return;n=r,o??={};const i=r&&Object.keys(r);for(let n=0;i&&n<i.length;n++){const r=i[n];o[r]??=t(e,r)}const s=Object.keys(o);for(let e=0;e<s.length;e++)o[s[e]](r)}}},642:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CreateEventAssignment=function(e,t){let n;return function(o){const r=o&&o[t];r!==n&&(n&&e.removeEventListener(t,n),r&&e.addEventListener(t,r),n=r)}}},543:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.CreateNodeValueAssignment=function(e){let t=e.nodeValue;return function(n){n!==t&&(e.nodeValue=n,t=n)}},t.CreatePropertyAssignment=function(e){const t=[["",null,null]];function n(n,o,r){r>=t.length||t[r][0]!==n?(t[r]=[n,o,u(n)],t[r][2](e,o)):t[r][1]!==o&&t[r][2](e,o)}return function(o){if(null===o){for(let n=0;n<t.length;n++)t[n][2](e,null);return void(t.length>0&&t.splice(0))}const i=r(o,n);i<t.length&&t.splice(i)}};const o=n(874);function r(e,t,n=0,i=""){const s=Object.keys(e);for(let c=0;c<s.length;c++){const u=e[s[c]];"object"===(0,o.JsonType)(u)?n=r(u,t,n,`${i}${s[c]}.`):(t(`${i}${s[c]}`,u,n),n++)}return n}function i(e,t){e.nodeValue=t}function s(e,t){e.value=t}function c(e,t){e.className=t}function u(e){switch(e){case"nodeValue":return i;case"value":return s;case"className":return c;default:return new Function("t","v",`t.${e} = v;`)}}},641:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DOMNodeConfig=void 0;const o=n(819),r=n(496),i=n(543),s=n(642),c=n(390),u=n(543);let a=r.List.Create(),l=!1;function d(){let e;for(r.List.Add(a,null);e=r.List.Pop(a);)e();0===a.size?l=!1:o.wndw.requestAnimationFrame(d)}t.DOMNodeConfig={createNode:(e,t)=>t?o.wndw.document.createElementNS(t,e):o.wndw.document.createElement(e),createTextNode:(e="")=>o.wndw.document.createTextNode(e),scheduleUpdate(e){r.List.Add(a,e),l||(l=!0,o.wndw.requestAnimationFrame(d))},addListener(e,t,n){e.addEventListener(t,n)},removeListener(e,t,n){e.removeEventListener(t,n)},addChild(e,t){e.appendChild(t)},addChildFirst(e,n){t.DOMNodeConfig.addChildBefore(e,e.firstChild,n)},addChildBefore(e,n,o){n?o!==n&&e.insertBefore(o,n):t.DOMNodeConfig.addChild(e,o)},addChildAfter(e,n,o){n?t.DOMNodeConfig.addChildBefore(e,n.nextSibling,o):t.DOMNodeConfig.addChildFirst(e,o)},removeChild(e,t){e.removeChild(t)},remove(e){e&&e.parentNode&&e.parentNode.removeChild(e)},createTextAssignment:e=>(0,i.CreateNodeValueAssignment)(e),setText(e,t){e.nodeValue=t},getAttribute:(e,t)=>e.getAttribute(t),setAttribute(e,t,n){e.setAttribute(t,n)},createPropertyAssignment:e=>(0,u.CreatePropertyAssignment)(e),createEventAssignment:e=>(0,c.CreateAssignment)(e,s.CreateEventAssignment),fireEvent(e,t,n){var o=new CustomEvent(t,n);e.dispatchEvent(o)},getFirstChild:e=>e.firstChild,getLastChild:e=>e.lastChild,getNextSibling:e=>e.nextSibling,replaceChildren(e,t){e.replaceChildren(...t)}}},774:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.div=function(e,t){return o.ElementNode.Create("div",null,e,t)},t.a=function(e,t){return o.ElementNode.Create("a",null,e,t)},t.ul=function(e,t){return o.ElementNode.Create("ul",null,e,t)},t.li=function(e,t){return o.ElementNode.Create("li",null,e,t)},t.br=function(e){return o.ElementNode.Create("br",null,e,null)},t.b=function(e,t){return o.ElementNode.Create("b",null,e,t)},t.span=function(e,t){return o.ElementNode.Create("span",null,e,t)},t.img=function(e){return o.ElementNode.Create("img",null,e,null)},t.video=function(e,t){return o.ElementNode.Create("video",null,e,t)},t.source=function(e){return o.ElementNode.Create("source",null,e,null)},t.input=function(e){return o.ElementNode.Create("input",null,e,null)},t.textarea=function(e){return o.ElementNode.Create("textarea",null,e,null)},t.select=function(e,t){return o.ElementNode.Create("select",null,e,t)},t.option=function(e,t){return o.ElementNode.Create("option",null,e,t)},t.h1=function(e,t){return o.ElementNode.Create("h1",null,e,t)},t.h2=function(e,t){return o.ElementNode.Create("h2",null,e,t)},t.h3=function(e,t){return o.ElementNode.Create("h3",null,e,t)},t.p=function(e,t){return o.ElementNode.Create("p",null,e,t)},t.style=function(e,t){return o.ElementNode.Create("style",null,e,t)},t.button=function(e,t){return o.ElementNode.Create("button",null,e,t)},t.table=function(e,t){return o.ElementNode.Create("table",null,e,t)},t.tbody=function(e,t){return o.ElementNode.Create("tbody",null,e,t)},t.th=function(e,t){return o.ElementNode.Create("th",null,e,t)},t.tr=function(e,t){return o.ElementNode.Create("tr",null,e,t)},t.td=function(e,t){return o.ElementNode.Create("td",null,e,t)};const o=n(413)},147:function(e,t,n){var o=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,r)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||o(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(774),t),r(n(716),t),r(n(543),t),r(n(642),t)},716:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.svg=function(e,t){return o.ElementNode.Create("svg",r,e,t)},t.g=function(e,t){return o.ElementNode.Create("g",r,e,t)},t.circle=function(e,t){return o.ElementNode.Create("circle",r,e,t)};const o=n(413),r="http://www.w3.org/2000/svg"},819:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.wndw=void 0,t.wndw="undefined"!=typeof window?window:function(){try{return Object(function(){var e=new Error("Cannot find module 'jsdom'");throw e.code="MODULE_NOT_FOUND",e}())("").window}catch(e){return}}()},173:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BoundNode=void 0;const o=n(267),r=n(948);var i;function s(e,t){if(t)for(var n in t)o.NodeConfig.getAttribute(e.node,n)!==t[n]&&o.NodeConfig.setAttribute(e.node,n,t[n])}!function(e){function t(e,t){const n=Object.keys(t),o={};for(let r=0;r<n.length;r++){const i=n[r],s=t[i];o[i]=function(...t){if(!e.destroyed)return s(...t)}}return o}e.Init=function(e){const n=e.nodeDef;if(n.props)if(e.assignProperties=o.NodeConfig.createPropertyAssignment(e.node),"function"==typeof n.props){const t=r.ObservableScope.Create(n.props);e.scopes??=[],e.scopes.push(t),r.ObservableScope.Watch(t,(function(t){!function(e,t){e.setProperties||(e.setProperties=!0,o.NodeConfig.scheduleUpdate((function(){if(e.setProperties=!1,e.destroyed)return;const n=r.ObservableScope.Value(t);e.assignProperties(n||null)})))}(e,t)}));const i=r.ObservableScope.Value(t);e.assignProperties(i)}else e.assignProperties(n.props),e.assignProperties=null;if(n.attrs)if("function"==typeof n.attrs){const t=r.ObservableScope.Create(n.attrs);e.scopes??=[],e.scopes.push(t),r.ObservableScope.Watch(t,(function(t){!function(e,t){e.setAttributes||(e.setAttributes=!0,o.NodeConfig.scheduleUpdate((function(){e.setAttributes=!1,e.destroyed||s(e,r.ObservableScope.Value(t))})))}(e,t)})),s(e,r.ObservableScope.Value(t))}else s(e,n.attrs);if(n.on)if(e.assignEvents=o.NodeConfig.createEventAssignment(e.node),"function"==typeof n.on){const i=r.ObservableScope.Create(n.on),s=r.ObservableScope.Create((function(){const n=r.ObservableScope.Value(i);return t(e,n)}));e.scopes??=[],e.scopes.push(i,s),r.ObservableScope.Watch(s,(function(t){!function(e,t){e.setEvents||(e.setEvents=!0,o.NodeConfig.scheduleUpdate((function(){if(e.setEvents=!1,e.destroyed)return;const n=r.ObservableScope.Value(t);e.assignEvents(n)})))}(e,t)}));const c=r.ObservableScope.Value(s);e.assignEvents(c)}else e.assignEvents(t(e,n.on)),e.assignEvents=null;if(n.text)if(e.assignText=o.NodeConfig.createTextAssignment(e.node),"function"==typeof n.text){const t=r.ObservableScope.Create(n.text);e.scopes??=[],e.scopes.push(t),r.ObservableScope.Watch(t,(function(t){!function(e,t){e.setText||(e.setText=!0,o.NodeConfig.scheduleUpdate((function(){if(e.setText=!1,e.destroyed)return;const n=r.ObservableScope.Value(t);e.assignText(n)})))}(e,t)}));const i=r.ObservableScope.Value(t);e.assignText(i)}else e.assignText(n.text),e.assignText=null}}(i||(t.BoundNode=i={}))},342:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Component=void 0;const o=n(64),r=n(230),i=n(334),s=n(948);class c{get Injector(){return this.nodeRef.injector}get Destroyed(){return this.nodeRef.destroyed}get Scope(){return this.scope}get Data(){return this.scope.Value}get NodeRef(){return this.nodeRef}get Templates(){return this.templates}constructor(e,t,n,o){this.nodeRef=n,this.componentEvents=o,this.scope="function"==typeof e?new s.ObservableScope(e):new s.ObservableScope((()=>e)),this.templates=t||{}}Template(){return[]}Bound(){}Fire(e,t){var n=this.componentEvents&&this.componentEvents[e];n&&n(t)}Destroy(){this.scope.Destroy(),i.Destroy.All(this)}}t.Component=c,function(e){function t(e,t,n){return r.ComponentNode.ToFunction(e,t,n)}function n(e,t){o.NodeRef.Init(t);var n=o.NodeRef.Wrap(e);o.NodeRef.AddChild(n,t)}e.ToFunction=t,e.Register=function(e,o){const r=t(`${e}-component`,void 0,o);class i extends HTMLElement{constructor(){super(),n(this.attachShadow({mode:"open"}),r({}))}}customElements.define(e,i)},e.Attach=n}(c||(t.Component=c={}))},230:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ComponentNode=void 0;const o=n(173),r=n(64),i=n(267),s=n(342),c=n(880),u=n(334),a=n(224),l=n(496);var d;function f(e){const t=e.component.Template();return Array.isArray(t)?t:[t]}function h(e,t){(0,a.Thread)((function(){if(e.destroyed)return;const n=c.Injector.Scope(e.injector,f,e);(0,a.Schedule)((function(){r.NodeRef.InitAll(e,n)})),(0,a.Thread)((function(){if(e.destroyed)return;const o=l.List.Create();l.List.Add(o,{value:void 0,init:!0,nodes:n}),t?(r.NodeRef.ReconcileChildren(e,o),l.List.Clear(o)):i.NodeConfig.scheduleUpdate((function(){e.destroyed||(r.NodeRef.ReconcileChildren(e,o),l.List.Clear(o))}))})),e.component.Bound!==s.Component.prototype.Bound&&(0,a.After)((function(){i.NodeConfig.scheduleUpdate((()=>setTimeout((()=>e.component.Bound()),0)))}))}))}!function(e){e.Fire=function(e,t){var n=this.componentEvents&&this.componentEvents[e];n&&n(t)},e.ToFunction=function(e,t,n){return function(o,i){return function(e,t,n,o,i){var s=r.NodeRef.Create(e,t,r.NodeRefType.ComponentNode);return s.nodeDef=n,s.constructor=o,s.templates=i,s}(e,t,o,n,i)}},e.Init=function(e){var t,n=e.nodeDef,s=n.on;n.on=null,e.component=new e.constructor(n.data,e.templates,e,s),t=e,u.PreReq.Has(t.component)?function(e){return new Promise((t=>{(0,a.Thread)((function(){const n=c.Injector.Scope(e.injector,u.PreReqTemplate.Get,e.component);(0,a.Schedule)((function(){e.destroyed||r.NodeRef.InitAll(e,n)})),(0,a.Thread)((function(){if(!e.destroyed){for(var o=0;o<n.length;o++)r.NodeRef.AddChild(e,n[o]);u.PreReq.All(e.component).then((function(){if(!e.destroyed){for(var o=0;o<n.length;o++)r.NodeRef.Destroy(n[o]);i.NodeConfig.scheduleUpdate((function(){if(!e.destroyed){for(var o=0;o<n.length;o++)r.NodeRef.DetachChild(e,n[o]);t()}}))}}))}}))}))}))}(t).then((function(){h(t,!1)})):h(t,!0),o.BoundNode.Init(e)}}(d||(t.ComponentNode=d={}))},413:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ElementNode=void 0;const o=n(948),r=n(880),i=n(496),s=n(224),c=n(173),u=n(267),a=n(64),l=[];var d;function f(e){return e.value}function h(e,t,n=!1){(0,s.Synch)((function(){!function(e,t){const n=i.List.Create(),o=e.nodeList,c=o&&i.List.ToNodeMap(o,f);for(let s=0;s<t.length;s++){let u=null;if(c){const e=c.get(t[s]);if(e){let t=e.length-1;for(;t>=0&&!u;t--)u=e[t],e[t]=null}}u?(i.List.RemoveNode(o,u),i.List.AddNode(n,u)):u=i.List.Add(n,{value:t[s],init:!1,nodes:r.Injector.Scope(e.injector,p,e.childrenFunc,t[s])})}let u=n.head;for(;u;){const t=u.data;!t.init&&(0,s.Schedule)((function(){e.destroyed||0===n.size||(a.NodeRef.InitAll(e,t.nodes),t.init=!0)})),u=u.next}if(o){let t=o.head;for(;t;){const n=t.data;t=t.next;for(let t=0;t<n.nodes.length;t++)e.childNodes.delete(n.nodes[t]);a.NodeRef.DestroyAll(n.nodes)}i.List.Clear(o)}e.nodeList=n}(e,t);const o=e.nodeList,c=o.size;(0,s.Thread)((function(t){e.destroyed||(n||!t?a.NodeRef.ReconcileChildren(e,o):u.NodeConfig.scheduleUpdate((function(){e.destroyed||o.size!==c||a.NodeRef.ReconcileChildren(e,o)})))}))}))}function p(e,t){const n=e(t);if("string"==typeof n||!n){const n=a.NodeRef.Create("text",null,a.NodeRefType.BoundNode);return n.nodeDef={text:function(){return e(t)}},[n]}return Array.isArray(n)?n:[n]}!function(e){e.Create=function(e,t,n,o){var r=a.NodeRef.Create(e,t,a.NodeRefType.ElementNode);return r.nodeDef=n,r.childrenFunc=o,r},e.Init=function(e){if(e.childrenFunc){var t=e.nodeDef;if(t.data){const n=o.ObservableScope.Create(t.data),r=o.ObservableScope.Create((function(){let e=o.ObservableScope.Value(n);return e?Array.isArray(e)?e.slice():[e]:l}));e.childNodes=new Set,e.scopes??=[],e.scopes.push(n,r),o.ObservableScope.Watch(r,(function(){!function(e,t){e.setData||(e.setData=!0,u.NodeConfig.scheduleUpdate((function(){e.setData=!1,e.destroyed||h(e,o.ObservableScope.Value(t))})))}(e,r)})),h(e,o.ObservableScope.Value(r),!0)}else n=e,(0,s.Synch)((function(){const e=r.Injector.Scope(n.injector,p,n.childrenFunc,!0);e.length>0&&(a.NodeRef.InitAll(n,e),(0,s.Thread)((function(){if(n.destroyed)return;const t=i.List.Create();i.List.Add(t,{value:null,init:!0,nodes:e}),a.NodeRef.ReconcileChildren(n,t),i.List.Clear(t)})))}))}var n;c.BoundNode.Init(e)}}(d||(t.ElementNode=d={}))},267:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NodeConfig=void 0;const o=n(641);t.NodeConfig=o.DOMNodeConfig},64:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.NodeRef=t.NodeRefType=void 0;const o=n(267),r=n(880),i=n(173),s=n(413),c=n(230),u=n(890);var a,l;!function(e){e[e.NodeRef=0]="NodeRef",e[e.BoundNode=1]="BoundNode",e[e.ElementNode=2]="ElementNode",e[e.ComponentNode=3]="ComponentNode"}(a||(t.NodeRefType=a={})),function(e){function t(e,t,n){switch(n){case a.NodeRef:return{node:null,nodeType:e,nodeNamespace:t,type:a.NodeRef,injector:r.Injector.Current()||new r.Injector,parent:null,childNodes:null,destroyed:!1};case a.BoundNode:return{node:null,nodeDef:null,nodeType:e,nodeNamespace:t,type:a.BoundNode,injector:r.Injector.Current()||new r.Injector,parent:null,childNodes:null,destroyed:!1,lastEvents:null,setProperties:!1,assignProperties:null,assignEvents:null,assignText:null,setAttributes:!1,setEvents:!1,setText:!1,scopes:null};case a.ElementNode:return{node:null,nodeDef:null,nodeType:e,nodeNamespace:t,type:a.ElementNode,injector:r.Injector.Current()||new r.Injector,parent:null,childNodes:null,destroyed:!1,lastEvents:null,setProperties:!1,assignProperties:null,assignEvents:null,assignText:null,setAttributes:!1,setEvents:!1,childrenFunc:null,nodeList:null,setData:!1,setText:!1,scopes:null};case a.ComponentNode:return{node:null,nodeDef:null,nodeType:e,nodeNamespace:t,type:a.ComponentNode,injector:r.Injector.Current()||new r.Injector,parent:null,childNodes:null,destroyed:!1,setProperties:!1,assignProperties:null,assignEvents:null,setAttributes:!1,setEvents:!1,component:null,componentEvents:null,scopes:null}}}function n(e){if(!e.node)switch(e.node="text"===e.nodeType?o.NodeConfig.createTextNode():o.NodeConfig.createNode(e.nodeType,e.nodeNamespace),e.childNodes="text"!==e.nodeType?[]:null,e.type){case a.BoundNode:i.BoundNode.Init(e);break;case a.ElementNode:s.ElementNode.Init(e);break;case a.ComponentNode:c.ComponentNode.Init(e)}}function l(e,t){Array.isArray(e.childNodes)?e.childNodes.push(t):e.childNodes.add(t)}function d(e){if(!e.destroyed){if(e.destroyed=!0,Array.isArray(e.childNodes))for(let t=0;t<e.childNodes.length;t++)d(e.childNodes[t]);else e.childNodes?.forEach(d);switch(e.type){case a.ComponentNode:e.component?.Destroy();case a.BoundNode:e.assignEvents?.(null);case a.ElementNode:for(let t=0;e.scopes&&t<e.scopes.length;t++)u.ObservableScope.Destroy(e.scopes[t])}e.node=null}}e.Wrap=function(e){var n=t(null,null,a.NodeRef);return n.node=e,n.childNodes=new Set,n},e.Create=t,e.Init=n,e.InitAll=function(e,t){for(var o=0;o<t.length;o++)t[o].parent=e,l(e,t[o]),n(t[o])},e.AddChild=function(e,t){t.parent=e,l(e,t),o.NodeConfig.addChild(e.node,t.node)},e.AddChildAfter=function(e,t,n){if(t&&t.parent!==e)throw"currentChild is not valid";n.parent=e,l(e,n),o.NodeConfig.addChildAfter(e.node,t&&t.node,n.node)},e.ReconcileChildren=function(e,t){const n=e.node;if(0===t.size)return void o.NodeConfig.replaceChildren(n,[]);let r,i=t?.head,s=!1,c=!1;for(;i;){for(let e=0;e<i.data.nodes.length;e++){const t=r?o.NodeConfig.getNextSibling(r):o.NodeConfig.getFirstChild(n),u=i.data.nodes[e].node;t!==u?(o.NodeConfig.addChildBefore(n,t,u),!c&&s&&t&&o.NodeConfig.removeChild(n,t),c=s,s=!0):(s=!1,c=!1),r=u}i=i.next}let u=o.NodeConfig.getLastChild(n);for(;r&&r!==u;)o.NodeConfig.removeChild(n,u),u=o.NodeConfig.getLastChild(n)},e.DetachChild=function(e,t){!Array.isArray(e.childNodes)&&e.childNodes.delete(t)&&(o.NodeConfig.removeChild(e.node,t.node),t.parent=null)},e.Destroy=d,e.DestroyAll=function(e){for(let t=0;t<e.length;t++)d(e[t])}}(l||(t.NodeRef=l={}))},377:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiffAsync=void 0;const o=n(521),r=n(547);t.DiffAsync=class{constructor(e){this.workerQueue=new o.WorkerQueue(r.DiffWorker.Create()),this.workerQueue.Push({method:"create",arguments:e?[e.toString()]:[]})}async DiffPath(e,t){return await this.workerQueue.Push({method:"diffpath",arguments:[e,t]})}async DiffBatch(e){return await this.workerQueue.Push({method:"diffbatch",arguments:[e]})}Destroy(){this.workerQueue.Destroy()}}},606:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiffSync=void 0;const o=n(874),r=(0,n(285).DiffTreeFactory)(o.JsonDiffFactory);t.DiffSync=class{constructor(e){this.diffTree=new r(e)}DiffPath(e,t){return this.diffTree.DiffPath(e,t)}DiffBatch(e){return this.diffTree.DiffBatch(e)}}},285:(__unused_webpack_module,exports)=>{function DiffTreeFactory(jsonDiffFactory,worker){const{JsonDiff,JsonType,JsonDeepClone}=jsonDiffFactory(),ctx=this;if(worker&&ctx){let diffTree=null;ctx.onmessage=function(event){const data=event.data;switch(data.method){case"create":{const keyFunc=data.arguments[0]?eval(data.arguments[0]):void 0;diffTree=new DiffTree(keyFunc),ctx.postMessage(null);break}case"diffpath":{const e=diffTree.DiffPath(data.arguments[0],data.arguments[1]);ctx.postMessage(e);break}case"diffbatch":{const e=diffTree.DiffBatch(data.arguments[0]);ctx.postMessage(e);break}case"getpath":{const e=diffTree.GetPath(data.arguments[0]);ctx.postMessage(e);break}}}}function FlattenValue(e,t,n){switch(JsonType(t)){case"array":const o=t;for(let t=0;t<o.length;t++)FlattenValue(e,o[t],n);break;case"object":const r=t,i=n(r);i&&(e[i]=r);const s=Object.keys(r);for(let t=0;t<s.length;t++)FlattenValue(e,r[s[t]],n)}return e}function GetPathValue(e,t){if(""===t)return e;const n=t.split(".");let o=e;for(let e=0;e<n.length;e++)o=o[n[e]];return o}function SetPathValue(e,t,n){if(0===t.length)return;let o=e,r=0;for(;r<t.length-1;r++)o=o[t[r]];o[t[r]]=n}function ResolveKeyPath(e,t,n){const o=t.split("."),r=new Array(o.length-1);let i=e;for(let e=0;e<o.length-1;e++)i=i[o[e]],r[e]=i;let s=r.length-1;for(;s>=0&&("object"!==JsonType(r[s])||!n(r[s]));s--);if(s>=0){const e=n(r[s]);return o.splice(0,s+1,e),o.join(".")}return t}function UpdateSource(e,t,n,o){const r=[];if(o){const i=ResolveKeyPath(e,t,o);if(i!==t){const t=UpdateSource(e,i,n,o);r.push(...t)}}const i=GetPathValue(e,t);if(JsonDiff(n,i,t,r),o){let t={};t=FlattenValue(t,n,o),t=JsonDeepClone(t);const i=Object.keys(t);for(let n=0;n<i.length;n++)JsonDiff(t[i[n]],e[i[n]],i[n],r)}const s=r.filter((e=>void 0!==e.value));for(let t=0;t<s.length;t++)SetPathValue(e,s[t].path,s[t].value);return r}class DiffTree{constructor(e){this.keyFunc=e,this.rootState={}}DiffBatch(e){return e.map((({path:e,value:t})=>this.DiffPath(e,t))).flat(1)}DiffPath(e,t){return UpdateSource(this.rootState,e,t,this.keyFunc)}GetPath(e){return GetPathValue(this.rootState,e)}}return DiffTree}Object.defineProperty(exports,"__esModule",{value:!0}),exports.DiffTreeFactory=DiffTreeFactory},547:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DiffWorker=void 0;const o=n(874),r=n(285);var i;!function(e){let t=null,n=null;"undefined"!=typeof Worker&&(t=Worker,n=URL.createObjectURL(new Blob([`(${r.DiffTreeFactory}).call(this, (${o.JsonDiffFactory}), true)`]))),e.Create=function(){if(!t)throw"Worker is not available";return new t(n)}}(i||(t.DiffWorker=i={}))},521:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.WorkerQueue=void 0;const o=n(496);t.WorkerQueue=class{constructor(e){this.worker=e,this.callbacks=o.List.Create(),this.worker.onerror=e=>{const t=o.List.Pop(this.callbacks);t&&t(null,e)},this.worker.onmessage=e=>{const t=o.List.Pop(this.callbacks);t&&t(e.data)}}Push(e){return new Promise(((t,n)=>{o.List.Add(this.callbacks,(function(e,o){o?n(o):t(e)})),this.worker.postMessage(e)}))}Destroy(){this.worker.terminate()}}},501:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Store=void 0;const o=n(318);t.Store=class{constructor(e){this.keyFunc=e,this.rootMap=new Map;const t=e&&(t=>{const n=e(t);if(void 0===n)return;const r=this.rootMap.get(n);if(void 0===r)throw`No root object found for key: ${n}`;return r[o.GET_OBSERVABLE_VALUE][n]});this.createNode=t?o.ObservableNode.CreateFactory(t):o.ObservableNode.Create}Get(e,t){let n=this.rootMap.get(e);return void 0===n&&(n=this.createNode({[e]:t}),this.rootMap.set(e,n)),n[e]}UpdateRootMap(e){for(let t=0;t<e.length;){const n=e[t].path[0],o=t;for(;t<e.length&&e[t].path[0]===n;)t++;const r=e.slice(o,t);this.UpdateRootObject(r[0].path[0],r)}}UpdateRootObject(e,t){const n=this.rootMap.get(e);if(void 0!==n)o.ObservableNode.ApplyDiff(n,t);else{if(t.length>1||t[0].path.length>1)throw`Unable to initialize root path ${e} with ${t.length} results and initial path ${t[0].path}`;const n=this.createNode({[e]:t[0].value});this.rootMap.set(e,n)}}}},161:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StoreAsync=void 0;const o=n(263),r=n(874),i=n(377),s=n(318),c=n(501);class u extends c.Store{constructor(e){super(e),this.queue=new o.AsyncQueue,this.diff=new i.DiffAsync(e)}async Write(e,t){await this.queue.Next((async()=>{if(!(t=t||this.keyFunc?.(e)))throw"No key provided for data";const n=await this.diff.DiffPath(t,e);this.UpdateRootMap(n)}))}async Patch(e,t){await this.queue.Next((async()=>{const n=this.Get(e);if(void 0===n)throw"Unable to patch undefined value";const o=n.toJSON(),i=(0,r.JsonMerge)(o,t),s=await this.diff.DiffPath(e,i);this.UpdateRootMap(s)}))}async Push(e,...t){await this.queue.Next((async()=>{const n=this.Get(e),o=t.map((function(t,o){return{path:`${e}.${n.length+o}`,value:t}})),r=await this.diff.DiffBatch(o);this.UpdateRootMap(r)}))}async Splice(e,t,n,...o){return await this.queue.Next((async()=>{const i=this.Get(e)[s.GET_OBSERVABLE_VALUE].slice(),c=(0,r.JsonDeepClone)(i.splice(t,n,...o)),u=await this.diff.DiffPath(e,i);return this.UpdateRootMap(u),c}))}Destroy(){this.queue.Stop(),this.diff.Destroy()}}t.StoreAsync=u},961:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.StoreSync=void 0;const o=n(874),r=n(606),i=n(318),s=n(501);class c extends s.Store{constructor(e){super(e),this.diff=new r.DiffSync(e)}Write(e,t){if(!(t=t||this.keyFunc?.(e)))throw"No key provided for data";const n=this.diff.DiffPath(t,e);this.UpdateRootMap(n)}Patch(e,t){const n=this.Get(e);if(void 0===n)throw"Unable to patch undefined value";const r=n.toJSON(),i=(0,o.JsonMerge)(r,t),s=this.diff.DiffPath(e,i);this.UpdateRootMap(s)}Push(e,...t){const n=this.Get(e),o=t.map((function(t,o){return{path:`${e}.${n.length+o}`,value:t}})),r=this.diff.DiffBatch(o);this.UpdateRootMap(r)}Splice(e,t,n,...r){const s=this.Get(e)[i.GET_OBSERVABLE_VALUE].slice(),c=(0,o.JsonDeepClone)(s.splice(t,n,...r)),u=this.diff.DiffPath(e,s);return this.UpdateRootMap(u),c}}t.StoreSync=c},318:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ObservableNode=t.GET_TO_JSON=t.GET_OBSERVABLE_VALUE=t.IS_OBSERVABLE_NODE=void 0;const o=n(874),r=n(130),i=n(948);t.IS_OBSERVABLE_NODE="____isObservableNode",t.GET_OBSERVABLE_VALUE="____getObservableValue",t.GET_TO_JSON="toJSON";const s=new WeakMap,c=new WeakMap,u=new WeakMap;function a(e,t){return{...Object.getOwnPropertyDescriptor(e,t),configurable:!0}}function l(e,t){return{...Object.getOwnPropertyDescriptor(e,t),configurable:!0}}function d(e,t){return Object.hasOwn(e,t)}function f(e,t){return Object.hasOwn(e,t)}function h(e){return Object.keys(e)}function p(e){return Object.keys(e)}function v(e){const n=(0,r.JsonType)(e);if("value"===n)return e;if(!0===e[t.IS_OBSERVABLE_NODE])return e[t.GET_OBSERVABLE_VALUE];switch(n){case"object":{const t=Object.keys(e);for(let n=0;n<t.length;n++)e[t[n]]=v(e[t[n]])}case"array":for(let t=0;t<e.length;t++)e[t]=v(e[t])}return e}function b(e){function n(e){return E(e=v(e))}const b=void 0!==e?function t(o){switch((0,r.JsonType)(o)){case"array":return n(o).map(t);case"object":{const r=e(o)??o,i=n(r),s=Object.keys(i),c={};for(let e=0;e<s.length;e++)c[s[e]]=t(r[s[e]]);return c}default:return o}}:function(e){return e},y=void 0!==e;function g(e){const t=i.ObservableScope.Create((()=>e)),n=new Proxy(e,{get:_,set:C,has:d,ownKeys:h,getOwnPropertyDescriptor:a});return c.set(e,t),s.set(e,n),n}function m(e,n,o){if(y)throw"Object is readonly";if(n===t.IS_OBSERVABLE_NODE)throw`Cannot assign read-only property: ${t.IS_OBSERVABLE_NODE}`;o=v(o),e[n]=o;const r=c.get(e);return i.ObservableScope.Update(r),!0}function O(e,n){if(n===t.IS_OBSERVABLE_NODE)return!0;if(y)switch(n){case"push":case"unshift":case"splice":case"pop":case"shift":case"sort":case"reverse":if(y)throw"Object is readonly"}const o=c.get(e);switch(e=i.ObservableScope.Value(o),n){case t.GET_TO_JSON:return function(){return b(e)};case t.GET_OBSERVABLE_VALUE:return e;default:{const t=e[n];return"symbol"==typeof n?t:"function"==typeof t?function(...t){const r="slice"===n?e.slice(...t):e.slice();for(let e=0;e<r.length;e++)r[e]=E(r[e]);let s="slice"===n?r:r[n](...t);switch(n){case"push":case"unshift":case"splice":case"pop":case"shift":case"sort":case"reverse":e.length=r.length;for(let t=0;t<r.length;t++)e[t]=v(r[t]);i.ObservableScope.Update(o)}return s}:E(t)}}}function N(e,t,n){e[t]=n;const o=u.get(e);i.ObservableScope.Update(o&&o[t]||c.get(e))}function C(e,n,r){if(y)throw"Object is readonly";if(n===t.IS_OBSERVABLE_NODE)throw`Cannot assign read-only property: ${t.IS_OBSERVABLE_NODE}`;r=v(r);const i=(0,o.JsonDiff)(r,e[n]);for(let t=0;t<i.length;t++)if(0===i[t].path.length)N(e,n,i[t].value);else{const o=i[t].path;let r=e[n],s=0;for(;s<o.length-1;s++)r=r[o[s]];N(r,o[s],i[t].value)}return!0}function _(e,n){if(n===t.IS_OBSERVABLE_NODE)return!0;switch(n){case t.GET_TO_JSON:return function(){return b(e)};case t.GET_OBSERVABLE_VALUE:return e;default:return function(e,t){let n=u.get(e);return void 0===n&&(n={},u.set(e,n)),n[t]??=i.ObservableScope.Create((function(){return E(e[t])})),i.ObservableScope.Value(n[t])}(e,n)}}function E(t){switch((0,r.JsonType)(t)){case"object":{let n=s.get(t)??g(t);if(void 0!==e){const t=e(n);void 0!==t&&(n=s.get(t)??g(t))}return n}case"array":{const e=s.get(t)??function(e){const t=i.ObservableScope.Create((()=>e)),n=new Proxy(e,{get:O,set:m,has:f,ownKeys:p,getOwnPropertyDescriptor:l});return c.set(e,t),s.set(e,n),n}(t);return i.ObservableScope.Touch(c.get(t)),e}default:return t}}return n}const y=b();var g;!function(e){e.Create=function(e){return y(e)},e.Touch=function(e){const t=c.get(e);i.ObservableScope.Update(t)},e.ApplyDiff=function(n,o){const r=[["",n[t.GET_OBSERVABLE_VALUE]]];for(let t=0;t<o.length;t++){const{path:n,value:i}=o[t];let s=0;for(;s<n.length-1;s++){const e=n[s],t=r[s][1],o=s+1;if(r.length<=o)r.push([e,t[e]]);else if(r[o][0]!==e){r[o][0]=e,r[o][1]=t[e];const n=o+1;n<r.length&&(r[n][0]=null)}}const c=r[s][1];c[n[s]]=i,e.Touch(c)}},e.CreateFactory=function(e){return b(e)}}(g||(t.ObservableNode=g={}))},948:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ObservableScope=t.ObservableScopeWrapper=t.ObservableScopeValue=void 0;const o=n(116),r=n(496);class i{get Value(){return c.Value(this.scope)}constructor(e){this.scope=e}}t.ObservableScopeValue=i;class s extends i{constructor(e){super(e),e.emitter&&(this.scopeEmitter=o.Emitter.Create(),o.Emitter.On(e.emitter,(()=>o.Emitter.Emit(this.scopeEmitter,this))))}Scope(e){return new c((()=>e(this.Value)))}Watch(e){this.scopeEmitter&&(o.Emitter.On(this.scopeEmitter,e),e(this))}Unwatch(e){this.scopeEmitter&&o.Emitter.Remove(this.scopeEmitter,e)}Destroy(){p(this.scope),this.scopeEmitter&&o.Emitter.Clear(this.scopeEmitter)}}t.ObservableScopeWrapper=s;class c extends s{constructor(e){super(c.Create(e))}}t.ObservableScope=c;let u=null,a=!1;function l(e){const t=function(e){if(!e.dirty)return!1;e.dirty=!1,e.watchEmitters=null;const t=function(e){const t=u,n=a;u=e,a=!0;const o=e.getFunction();return u=t,a=n,o}(e);return e.async?e.promise=t.then((function(t){return e.value=t,t})):e.value=t,function(e){const t=e.watchEmitters;if(null===t){for(let t=0;t<e.emitters.length;t++)o.Emitter.Remove(e.emitters[t],e.setCallback);return void(e.emitters=[])}let n=0;for(;n<e.emitters.length&&n<t.length&&e.emitters[n]===t[n];n++);for(let t=n;t<e.emitters.length;t++)o.Emitter.Remove(e.emitters[t],e.setCallback);for(let r=n;r<t.length;r++)o.Emitter.On(t[r],e.setCallback);e.emitters=t}(e),!0}(e);t&&e.async&&e.promise.then((function(){o.Emitter.Emit(e.emitter,e)}))}!function(e){function t(e){a&&(u.watchEmitters??=[],u.watchEmitters.push(e))}e.Create=function(e){const t={getFunction:e,value:null,promise:null,async:"AsyncFunction"===e[Symbol.toStringTag],dirty:!0,emitter:o.Emitter.Create(),emitters:[],destroyed:!1,watchEmitters:null,setCallback:function(){return h(t)}};return t},e.Register=t,e.Value=function(e){if(e)return t(e.emitter),l(e),e.value},e.Watching=function(){return a},e.Touch=function(e){e&&e.emitter&&t(e.emitter)},e.Watch=function(e,t){e&&e.emitter&&o.Emitter.On(e.emitter,t)},e.Unwatch=function(e,t){e&&e.emitter&&o.Emitter.Remove(e.emitter,t)},e.Update=function(e){h(e)},e.Destroy=function(e){p(e)}}(c||(t.ObservableScope=c={}));const d=r.List.Create();function f(){const e=r.List.Split(d,0);for(let t=e.head;null!==t;t=t.next)l(t.data);r.List.Clear(e)}function h(e){return!e||e.dirty||e.destroyed?e?.destroyed:(function(e){e.dirty=!0,e.async?function(e){r.List.Add(d,e),1===d.size&&queueMicrotask(f)}(e):o.Emitter.Emit(e.emitter,e)}(e),!1)}function p(e){e&&(e.emitters=null,e.emitter=null,e.getFunction=null,e.setCallback=null,e.destroyed=!0)}},890:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.ObservableNode=t.ObservableScope=t.StoreAsync=t.StoreSync=void 0;var o=n(961);Object.defineProperty(t,"StoreSync",{enumerable:!0,get:function(){return o.StoreSync}});var r=n(161);Object.defineProperty(t,"StoreAsync",{enumerable:!0,get:function(){return r.StoreAsync}});var i=n(948);Object.defineProperty(t,"ObservableScope",{enumerable:!0,get:function(){return i.ObservableScope}});var s=n(318);Object.defineProperty(t,"ObservableNode",{enumerable:!0,get:function(){return s.ObservableNode}})},20:(e,t)=>{var n,o;Object.defineProperty(t,"__esModule",{value:!0}),t.Animation=t.AnimationType=void 0,function(e){e.EaseIn=function*(e){for(var t=1/e,n=t,o=0;o<e;o++,n+=t)yield(1-n)*(1-n)*(1-n)*0+3*(1-n)*(1-n)*n*1+3*(1-n)*n*n*1+n*n*n*1},e.Linear=function*(e){for(var t=1/e,n=t,o=0;o<e;o++,n+=t)yield n}}(n||(n={})),function(e){e[e.Linear=0]="Linear",e[e.EaseIn=1]="EaseIn"}(o||(t.AnimationType=o={})),t.Animation=class{get Running(){return this.running}get Start(){return this.start}get End(){return this.end}get Enabled(){return this.enabled}constructor(e,t,n){this.running=!1,this.start=null,this.end=null,this.enabled=!0,this.type=e,this.frameCount=Math.ceil(t/1e3*60),this.frameTimings=[];for(var o=t/this.frameCount,r=0;r<this.frameCount;r++)this.frameTimings[r]=(r+1)*o;this.update=n,this.animationTimeouts=[]}Animate(e,t){if(this.enabled){var r=t-e;if(0!==r)return this.Cancel(),this.running=!0,this.start=e,this.end=t,new Promise((t=>{var i=n[o[this.type]],s=0;for(var c of i(this.frameCount)){var u=c*r+e;this.SetTimeout(s,u,s===this.frameCount-1?t:null),s++}})).then((()=>{this.running=!1,this.start=null,this.end=null}))}}Disable(){this.Cancel(),this.enabled=!1}Enable(){this.enabled=!0}Cancel(){for(var e=0;e<this.animationTimeouts.length;e++)clearTimeout(this.animationTimeouts[e]);this.running=!1,this.start=null,this.end=null}Destroy(){this.Cancel()}SetTimeout(e,t,n){this.animationTimeouts[e]=setTimeout((()=>{this.update(t),n&&n()}),this.frameTimings[e])}}},959:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.RemoveNulls=function(e,t=0){let n=t;for(;n<e.length&&null!==e[n];n++);let o=n+1;for(;o<e.length&&null===e[o];o++);for(;o<e.length;)for(e[n]=e[o],n++,o++;o<e.length&&null===e[o];o++);e.splice(n)},t.ArrayDiff=function(e,t){if(e===t)return!1;if(!e||!t||e.length!==t.length)return!0;let n=0;for(;n<e.length&&e[n]===t[n];n++);return n<e.length}},263:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AsyncQueue=void 0;const o=n(496);t.AsyncQueue=class{constructor(){this.running=!1,this.queue=o.List.Create()}Next(e){const t=new Promise(((t,n)=>{o.List.Add(this.queue,(async function(){try{const n=await e();t(n)}catch(e){n(e)}}))}));return this.Start(),t}Stop(){o.List.Clear(this.queue)}Start(){this.running||(this.running=!0,this.ExecuteQueue())}async ExecuteQueue(){const e=o.List.Pop(this.queue);null!==e?(await e(),this.ExecuteQueue()):this.running=!1}}},334:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.State=function(){return d},t.Value=function(){return f},t.Scope=function(){return h},t.Inject=function(e){return p.bind(null,e)},t.Destroy=v,t.PreReqTemplate=y,t.PreReq=m;const o=n(948),r=n(318),i=new WeakMap,s=new WeakMap,c=new WeakMap;function u(e){const t=i.get(e)??{};return i.set(e,t),t}function a(e){const t=s.get(e)??{};return s.set(e,t),t}function l(e){const t=c.get(e)??[];return c.set(e,t),t}function d(e,t){return{configurable:!1,enumerable:!0,get:function(){const e=u(this);return e[t]??=r.ObservableNode.Create({root:void 0}),e[t].root},set:function(e){const n=u(this);void 0===n[t]?n[t]=r.ObservableNode.Create({root:e}):n[t].root=e}}}function f(e,t){return{configurable:!1,enumerable:!0,get:function(){const e=a(this),n=e[t]??=[null,void 0];return n[0]??=function(e){return o.ObservableScope.Create((function(){return e[1]}))}(n),o.ObservableScope.Value(n[0])},set:function(e){const n=a(this);n[t]??=[null,void 0];const r=n[t];r[1]=e,o.ObservableScope.Update(r[0])}}}function h(e,t,n){if(!n||!n.get)throw"Scope decorator requires a getter";if(n&&n.set)throw"Scope decorator does not support setters";const r=n.get;return{configurable:!1,enumerable:!0,get:function(){const e=a(this);e[t]??=[null,void 0];const n=e[t];return null===n[0]&&(n[0]=o.ObservableScope.Create(r.bind(this))),o.ObservableScope.Value(n[0])}}}function p(e,t,n,o){return{configurable:!1,enumerable:!0,get:function(){return this.Injector.Get(e)},set:function(t){this.Injector.Set(e,t)}}}function v(){return b}function b(e,t){l(e).push(t)}function y(e){return g.bind(null,e)}function g(e,t){t.prototype.PreReqTemplateDecorator_Template=e}function m(){return O}function O(e,t){var n=e;n.PreReqDecorator_PreReqs=n.PreReqDecorator_PreReqs||[],n.PreReqDecorator_PreReqs.push(t)}!function(e){e.All=function(e){const t=s.get(e);if(void 0!==t){const e=Object.keys(t);for(let n=0;n<e.length;n++)o.ObservableScope.Destroy(t[e[n]][0])}const n=l(Object.getPrototypeOf(e));for(let t=0;t<n.length;t++)e[n[t]].Destroy()}}(v||(t.Destroy=v={})),function(e){e.Get=function(e){var t=e&&e.PreReqTemplateDecorator_Template,n=t?t():[];return Array.isArray(n)||(n=[n]),n}}(y||(t.PreReqTemplate=y={})),function(e){function t(e){return e&&e.PreReqDecorator_PreReqs||[]}e.All=function(e){var n=t(e).map((t=>e[t]&&e[t].Init||Promise.resolve()));return Promise.all(n)},e.Has=function(e){return t(e).length>0}}(m||(t.PreReq=m={}))},116:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Emitter=void 0;const o=n(959);var r;!function(e){e.Create=function(){return[]},e.On=function(e,t){e.push(t)},e.Emit=function(e,...t){let n=!1;for(let o=0;o<e.length;o++)null!==e[o]&&!0!==e[o](...t)||(n=!0,e[o]=null);n&&(0,o.RemoveNulls)(e)},e.Remove=function(e,t){const n=e.indexOf(t);n>=0&&(e[n]=null)},e.Clear=function(e){e.splice(0)}}(r||(t.Emitter=r={}))},586:function(e,t,n){var o=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,r)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||o(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),r(n(334),t),r(n(20),t)},880:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Injector=void 0;class n{constructor(){this.parent=n.Current(),this.typeMap=new Map}Get(e){if(0===this.typeMap.size)return this.parent&&this.parent.Get(e);var t=this.typeMap.get(e);return t||(t=this.parent&&this.parent.Get(e)),t}Set(e,t){this.typeMap.set(e,t)}}t.Injector=n,function(e){var t=null;function n(){return t}e.Current=n,e.Scope=function(e,o,...r){var i=n();t=e;const s=o(...r);return t=i,s}}(n||(t.Injector=n={}))},874:(e,t)=>{var n;function o(){const e=Object.getPrototypeOf({});function t(t){return null==t?"value":Array.isArray(t)?"array":e===Object.getPrototypeOf(t)?"object":"value"}function n(e,o,r,i){if(o===r)return!1;const s=t(o),c=t(r),u=i.length;let a=!0;if(s===c)switch(s){case"array":a=function(e,t,o,r){let i=!0;if(t.length!==o.length&&r.push({path:e.concat("length"),value:t.length}),t.length>0||o.length>0)for(let s=0;s<t.length;s++){const c=e.concat(s),u=o[s];i=n(c,t[s],u,r)&&i}else i=!1;return i}(e,o,r,i);break;case"object":a=function(e,t,o,r){const i=Object.keys(t).sort(),s=Object.keys(o).sort();if(0===i.length&&0===s.length)return!1;if(i.length<s.length)return!0;let c=0,u=0;for(;c<i.length;){const a=e.concat(i[c]);u<s.length&&i[c]===s[u]?(n(a,t[i[c]],o[s[u]],r),u++):void 0!==t[i[c]]&&r.push({path:a,value:t[i[c]]}),c++}return u<s.length}(e,o,r,i)}return!!a&&(i.splice(u),i.push({path:e,value:o}),!0)}return{JsonDiff:function(e,t,o,r){const i=r??[];return n(o?o.split("."):[],e,t,i),i},JsonType:t,JsonDeepClone:function e(n){switch(t(n)){case"array":return n.map(e);case"object":{const t={},o=Object.keys(n);for(let r=0;r<o.length;r++)t[o[r]]=e(n[o[r]]);return t}default:return n}},JsonMerge:function e(n,o){if(void 0===o)return n;const r=t(n);if(r!==t(o))return o;switch(r){case"array":{const t=o;return n.map((function(n,o){return e(n,t[o])}))}case"object":{const t=n,r=o,i=Object.keys(t),s={};for(let n=0;n<i.length;n++)s[i[n]]=e(t[i[n]],r[i[n]]);return s}default:return o}}}}Object.defineProperty(t,"__esModule",{value:!0}),t.JsonMerge=t.JsonDeepClone=t.JsonType=t.JsonDiff=void 0,t.JsonDiffFactory=o,n=o(),t.JsonDiff=n.JsonDiff,t.JsonType=n.JsonType,t.JsonDeepClone=n.JsonDeepClone,t.JsonMerge=n.JsonMerge},130:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.JsonType=void 0;var o=n(874);Object.defineProperty(t,"JsonType",{enumerable:!0,get:function(){return o.JsonType}})},496:(e,t)=>{var n;Object.defineProperty(t,"__esModule",{value:!0}),t.List=void 0,function(e){let t,n=0,o=!1;const r={head:null,tail:null,size:0};function i(e){const t=l(r)??{previous:null,next:null,data:null};return t.data=e,t}function s(e){e&&(e.previous=null,e.next=null,e.data=null,d(r,e),c())}function c(){o||(o=!0,setTimeout((function(){o=!1,cancelIdleCallback(t),t=requestIdleCallback(u)})))}function u(){n<r.size&&(n=r.size);const e=Math.floor(n/10);a(r,e)}function a(e,t){let n=0,o=e.head;for(;o&&n<t;)o=o.next,n++;const r={head:null,tail:null,size:0};return o&&(r.head=o,r.tail=e.tail,r.size=e.size-t,e.tail=o.previous,e.size=t,0===e.size?e.head=null:e.tail.next=null,o.previous=null),r}function l(e){if(0===e.size)return null;const t=e.head;return e.head=t.next,e.head&&(e.head.previous=null),e.size--,0===e.size&&(e.tail=null),t.previous=null,t.next=null,t}function d(e,t){return 0===e.size?(e.head=t,e.tail=t,e.size=1):(t.previous=e.tail,e.tail.next=t,e.tail=t,e.size++),t}function f(e,t){if(0!==t.size){if(0===e.size)return e.head=t.head,t.head=null,e.tail=t.tail,t.tail=null,e.size=t.size,void(t.size=0);e.tail.next=t.head,t.head.previous=e.tail,e.tail=t.tail,e.size+=t.size,t.head=null,t.tail=null,t.size=0}}e.Create=function(){return{head:null,tail:null,size:0}},e.Split=a,e.Clear=function(e){let t=e.head;for(;t;)t.data=null,t=t.next;f(r,e),c()},e.Push=function(e,t){const n=i(t);return 0===e.size?(e.head=n,e.tail=n,e.size=1):(n.next=e.head,e.head.previous=n,e.head=n,e.size++),n},e.PopNode=l,e.Pop=function(e){const t=l(e),n=t?.data;return s(t),n},e.Add=function(e,t){return d(e,i(t))},e.AddNode=d,e.AddBefore=function(t,n,o){if(!n)return e.Add(t,o);const r=i(o),s=n.previous;return r.next=n,n.previous=r,t.head===n&&(t.head=r),s&&(s.next=r,r.previous=s),t.size++,r},e.AddAfter=function(t,n,o){if(!n)return e.Push(t,o);const r=i(o),s=n.next;return n.next=r,r.previous=n,t.tail===n&&(t.tail=r),s&&(s.previous=r,r.next=s),t.size++,r},e.Remove=function(e){if(0===e.size)return null;var t=e.tail;e.tail=t.previous,e.tail&&(e.tail.next=null),e.size--,0===e.size&&(e.head=null);const n=t.data;return s(t),n},e.RemoveNode=function(e,t){if(e.head===t)e.head=t.next;else if(e.tail===t)e.tail=t.previous;else{const e=t.previous,n=t.next;e.next=n,n.previous=e}t.next=t.previous=null,e.size--,e.size>0&&(e.head.previous=e.tail.next=null)},e.ForEach=function(e,t){let n=e.head;for(;n;)t(n.data),n=n.next},e.Append=f,e.ToNodeMap=function(e,t){const n=new Map;let o=e.head;for(;o;){const e=t(o.data),r=n.get(e)||[o];r[0]!==o?r.push(o):n.set(e,r),o=o.next}return n}}(n||(t.List=n={}))},224:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Schedule=b,t.After=function(e){v(e,!1,!1)},t.Callback=function(e){return function(t,n,o,r){b((function(){e(t,n,o,r)}))}},t.Synch=g,t.Thread=m,t.ThreadAsync=function(e){return new Promise((t=>m((function(n){e(n),m(t)}))))};const o=n(496),r=16,i=o.List.Create();let s=null,c=!1;const u=setTimeout;function a(){return this.end-Date.now()}function l(){return{end:Date.now()+r,timeRemaining:a}}function d(e=l()){let t;for(;e.timeRemaining()>0&&(t=o.List.Pop(i));)p(t,e);i.size>0?u(d):c=!1}function f(e){o.List.Add(i,e),c||(c=!0,u(d))}function h(e,t){const n=e.workEndNode;e.workEndNode=e.workList.head,t(!0),e.workEndNode=n}function p(e,t=l()){const n=s;s=e;const r=e.async;let i;for(;r===e.async&&t.timeRemaining()>0&&(i=o.List.Pop(e.workList));)h(e,i);e.workList.size>0&&f(e),s=n}function v(e,t,n){s=s||{async:!1,workEndNode:null,workList:o.List.Create()},s.async=s.async||n,t?o.List.AddBefore(s.workList,s.workEndNode,e):s.workEndNode?o.List.AddAfter(s.workList,s.workEndNode,e):s.workEndNode=o.List.Add(s.workList,e)}function b(e){v(e,!0,!0)}var y=!1;function g(e){s||y?e(!1):(y=!0,function(e){e(!1),s&&(s.async?f(s):p(s)),s=null}(e),y=!1)}function m(e){s?v(e,!0,!1):g(e)}},156:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.Component=void 0;var o=n(342);Object.defineProperty(t,"Component",{enumerable:!0,get:function(){return o.Component}})},576:function(e,t,n){var o=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,r)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),r=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||o(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),t.ObservableNode=t.ObservableScope=void 0,r(n(156),t),r(n(586),t);var i=n(890);Object.defineProperty(t,"ObservableScope",{enumerable:!0,get:function(){return i.ObservableScope}}),Object.defineProperty(t,"ObservableNode",{enumerable:!0,get:function(){return i.ObservableNode}}),r(n(147),t)}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var n=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e].call(n.exports,n,n.exports,__webpack_require__),n.exports}var __webpack_exports__={};(()=>{const e=__webpack_require__(576);for(var t in e)window[t]=e[t]})()})();
|
|
2
2
|
//# sourceMappingURL=jTemplates.js.map
|
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][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 elemNode.childrenFunc = children;\n return elemNode;\n }\n ElementNode.Create = Create;\n function Init(elementNode) {\n if (elementNode.childrenFunc) {\n var nodeDef = elementNode.nodeDef;\n if (nodeDef.data) {\n const dataScope = observableScope_1.ObservableScope.Create(nodeDef.data);\n const valueScope = observableScope_1.ObservableScope.Create(function () {\n let value = observableScope_1.ObservableScope.Value(dataScope);\n if (!value)\n return valueDefault;\n if (!Array.isArray(value))\n return [value];\n return value.slice();\n });\n elementNode.childNodes = new Set();\n elementNode.scopes ??= [];\n elementNode.scopes.push(dataScope, valueScope);\n observableScope_1.ObservableScope.Watch(valueScope, function () {\n ScheduleSetData(elementNode, valueScope);\n });\n SetData(elementNode, observableScope_1.ObservableScope.Value(valueScope), true);\n }\n else\n SetDefaultData(elementNode);\n }\n boundNode_1.BoundNode.Init(elementNode);\n }\n ElementNode.Init = Init;\n})(ElementNode || (exports.ElementNode = ElementNode = {}));\nfunction ScheduleSetData(node, scope) {\n if (node.setData)\n return;\n node.setData = true;\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n node.setData = false;\n if (node.destroyed)\n return;\n SetData(node, observableScope_1.ObservableScope.Value(scope));\n });\n}\nfunction SetDefaultData(node) {\n (0, thread_1.Synch)(function () {\n const nodes = injector_1.Injector.Scope(node.injector, CreateNodeArray, node.childrenFunc, true);\n if (nodes.length > 0) {\n nodeRef_1.NodeRef.InitAll(node, nodes);\n (0, thread_1.Thread)(function () {\n if (node.destroyed)\n return;\n const defaultNodeList = list_1.List.Create();\n list_1.List.Add(defaultNodeList, {\n value: null,\n init: true,\n nodes\n });\n nodeRef_1.NodeRef.ReconcileChildren(node, defaultNodeList);\n 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.childrenFunc, values[x])\n });\n }\n }\n let curNode = nextNodeList.head;\n while (curNode) {\n const data = curNode.data;\n !data.init && (0, thread_1.Schedule)(function () {\n if (node.destroyed || nextNodeList.size === 0)\n return;\n nodeRef_1.NodeRef.InitAll(node, data.nodes);\n data.init = true;\n });\n curNode = curNode.next;\n }\n if (currentNodeList) {\n let curDetach = currentNodeList.head;\n while (curDetach) {\n const data = curDetach.data;\n curDetach = curDetach.next;\n for (let x = 0; x < data.nodes.length; x++)\n node.childNodes.delete(data.nodes[x]);\n nodeRef_1.NodeRef.DestroyAll(data.nodes);\n }\n list_1.List.Clear(currentNodeList);\n }\n node.nodeList = nextNodeList;\n}\nfunction SetData(node, values, init = false) {\n (0, thread_1.Synch)(function () {\n ReconcileNodeData(node, values);\n const attachNodes = node.nodeList;\n const startSize = attachNodes.size;\n (0, thread_1.Thread)(function (async) {\n if (node.destroyed)\n return;\n if (init || !async)\n nodeRef_1.NodeRef.ReconcileChildren(node, attachNodes);\n else\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n if (node.destroyed || attachNodes.size !== startSize)\n return;\n nodeRef_1.NodeRef.ReconcileChildren(node, attachNodes);\n });\n });\n });\n}\nfunction CreateNodeArray(childrenFunc, value) {\n const newNodes = childrenFunc(value);\n if (typeof newNodes === \"string\" || !newNodes) {\n const textNode = nodeRef_1.NodeRef.Create(\"text\", null, nodeRef_1.NodeRefType.BoundNode);\n textNode.nodeDef = {\n 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 childrenFunc: 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 curDataNode = nextChildren?.head;\n let insert = false;\n let remove = false;\n while (curDataNode) {\n for (let x = 0; x < curDataNode.data.nodes.length; x++) {\n const actualNode = priorNode ? nodeConfig_1.NodeConfig.getNextSibling(priorNode) : nodeConfig_1.NodeConfig.getFirstChild(rootNode);\n const virtualNode = curDataNode.data.nodes[x];\n const expectedNode = virtualNode.node;\n if (actualNode !== expectedNode) {\n nodeConfig_1.NodeConfig.addChildBefore(rootNode, actualNode, expectedNode);\n !remove && insert && actualNode && nodeConfig_1.NodeConfig.removeChild(rootNode, actualNode);\n remove = insert;\n insert = true;\n }\n else {\n insert = false;\n remove = false;\n }\n priorNode = expectedNode;\n }\n curDataNode = curDataNode.next;\n }\n let lastChild = nodeConfig_1.NodeConfig.getLastChild(rootNode);\n while (priorNode && priorNode !== lastChild) {\n nodeConfig_1.NodeConfig.removeChild(rootNode, lastChild);\n lastChild = nodeConfig_1.NodeConfig.getLastChild(rootNode);\n }\n }\n NodeRef.ReconcileChildren = ReconcileChildren;\n function DetachChild(node, child) {\n if (!Array.isArray(node.childNodes) && node.childNodes.delete(child)) {\n nodeConfig_1.NodeConfig.removeChild(node.node, child.node);\n child.parent = null;\n }\n }\n NodeRef.DetachChild = DetachChild;\n function Destroy(node) {\n if (node.destroyed)\n return;\n node.destroyed = true;\n if (Array.isArray(node.childNodes))\n for (let x = 0; x < node.childNodes.length; x++)\n Destroy(node.childNodes[x]);\n else\n node.childNodes?.forEach(Destroy);\n switch (node.type) {\n case NodeRefType.ComponentNode:\n node.component?.Destroy();\n case NodeRefType.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) {\n const type = (0, jsonType_1.JsonType)(value);\n if (type === \"value\")\n return value;\n if (value[exports.IS_OBSERVABLE_NODE] === true)\n return value[exports.GET_OBSERVABLE_VALUE];\n switch (type) {\n case \"object\": {\n const keys = Object.keys(value);\n for (let x = 0; x < keys.length; x++)\n value[keys[x]] = UnwrapProxy(value[keys[x]]);\n }\n case \"array\": {\n for (let x = 0; x < value.length; x++)\n value[x] = UnwrapProxy(value[x]);\n }\n }\n return value;\n}\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 scope = observableScope_1.ObservableScope.Create(() => value);\n const proxy = new Proxy(value, {\n get: ObjectProxyGetter,\n set: ObjectProxySetter,\n has,\n ownKeys,\n getOwnPropertyDescriptor,\n });\n scopeCache.set(value, scope);\n proxyCache.set(value, proxy);\n return proxy;\n }\n function ArrayProxySetter(array, prop, value) {\n if (readOnly)\n throw `Object is readonly`;\n if (prop === exports.IS_OBSERVABLE_NODE)\n throw `Cannot assign read-only property: ${exports.IS_OBSERVABLE_NODE}`;\n value = UnwrapProxy(value);\n array[prop] = value;\n const scope = scopeCache.get(array);\n observableScope_1.ObservableScope.Update(scope);\n return true;\n }\n function ArrayProxyGetter(array, prop) {\n if (prop === exports.IS_OBSERVABLE_NODE)\n return true;\n if (readOnly)\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 const scope = scopeCache.get(array);\n array = observableScope_1.ObservableScope.Value(scope);\n switch (prop) {\n case exports.GET_TO_JSON:\n return function () {\n return ToJson(array);\n };\n case exports.GET_OBSERVABLE_VALUE:\n return array;\n default: {\n const arrayValue = array[prop];\n if (typeof prop === \"symbol\")\n return arrayValue;\n if (typeof arrayValue === \"function\")\n return function ArrayFunction(...args) {\n const proxyArray = prop === \"slice\" ? array.slice(...args) : array.slice();\n for (let x = 0; x < proxyArray.length; x++)\n proxyArray[x] = CreateProxyFromValue(proxyArray[x]);\n let result = prop === \"slice\"\n ? proxyArray\n : proxyArray[prop](...args);\n switch (prop) {\n case \"push\":\n case \"unshift\":\n case \"splice\":\n case \"pop\":\n case \"shift\":\n case \"sort\":\n case \"reverse\":\n array.length = proxyArray.length;\n for (let x = 0; x < proxyArray.length; x++)\n array[x] = UnwrapProxy(proxyArray[x]);\n observableScope_1.ObservableScope.Update(scope);\n break;\n }\n return result;\n };\n const proxy = CreateProxyFromValue(arrayValue);\n return proxy;\n }\n }\n }\n function 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 value = UnwrapProxy(value);\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 return true;\n }\n function ObjectProxyGetter(object, prop) {\n if (prop === exports.IS_OBSERVABLE_NODE)\n return true;\n switch (prop) {\n case exports.GET_TO_JSON:\n return function () {\n return ToJson(object);\n };\n case exports.GET_OBSERVABLE_VALUE:\n return object;\n default: {\n return GetAccessorValue(object, prop);\n }\n }\n }\n function GetAccessorValue(parent, prop) {\n let leafScopes = leafScopeCache.get(parent);\n if (leafScopes === undefined) {\n leafScopes = {};\n leafScopeCache.set(parent, leafScopes);\n }\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;\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 currentScope = null;\nlet currentlyWatching = false;\nfunction WatchScope(scope) {\n const parentScope = currentScope;\n const parentWatching = currentlyWatching;\n currentScope = scope;\n currentlyWatching = true;\n const value = scope.getFunction();\n currentScope = parentScope;\n currentlyWatching = parentWatching;\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 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 currentScope.watchEmitters ??= [];\n currentScope.watchEmitters.push(emitter);\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 UpdateValue(scope);\n scope.async && 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 DirtyScope(scope) {\n scope.dirty = true;\n 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 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 newEmitters = scope.watchEmitters;\n if (newEmitters === null) {\n for (let x = 0; x < scope.emitters.length; x++)\n emitter_1.Emitter.Remove(scope.emitters[x], scope.setCallback);\n scope.emitters = [];\n return;\n }\n let x = 0;\n for (; x < scope.emitters.length && x < newEmitters.length && scope.emitters[x] === newEmitters[x]; x++) { }\n for (let y = x; y < scope.emitters.length; y++)\n emitter_1.Emitter.Remove(scope.emitters[y], scope.setCallback);\n for (let y = x; y < newEmitters.length; y++)\n emitter_1.Emitter.On(newEmitters[y], scope.setCallback);\n scope.emitters = newEmitters;\n}\nfunction DestroyScope(scope) {\n if (!scope)\n return;\n scope.emitters = null;\n scope.emitter = null;\n scope.getFunction = null;\n scope.setCallback = null;\n scope.destroyed = true;\n}\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 function Create() {\n return [];\n }\n Emitter.Create = Create;\n function On(emitter, callback) {\n emitter.push(callback);\n }\n Emitter.On = On;\n function Emit(emitter, ...args) {\n let removed = false;\n for (let x = 0; x < emitter.length; x++) {\n 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})(Emitter || (exports.Emitter = Emitter = {}));\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./decorators\"), exports);\n__exportStar(require(\"./animation\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Injector = void 0;\nclass Injector {\n constructor() {\n this.parent = Injector.Current();\n this.typeMap = new Map();\n }\n Get(type) {\n if (this.typeMap.size === 0)\n return this.parent && this.parent.Get(type);\n var ret = this.typeMap.get(type);\n if (!ret)\n ret = this.parent && this.parent.Get(type);\n return ret;\n }\n Set(type, instance) {\n this.typeMap.set(type, instance);\n }\n}\nexports.Injector = Injector;\n(function (Injector) {\n var scope = null;\n function Current() {\n return scope;\n }\n Injector.Current = Current;\n function Scope(injector, action, ...args) {\n var parent = Current();\n scope = injector;\n const ret = action(...args);\n scope = parent;\n return ret;\n }\n Injector.Scope = Scope;\n})(Injector || (exports.Injector = Injector = {}));\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonMerge = exports.JsonDeepClone = exports.JsonType = exports.JsonDiff = void 0;\nexports.JsonDiffFactory = JsonDiffFactory;\nfunction JsonDiffFactory() {\n const jsonProto = Object.getPrototypeOf({});\n function JsonType(value) {\n if (value === null || value === undefined)\n return \"value\";\n if (Array.isArray(value))\n return \"array\";\n if (jsonProto === Object.getPrototypeOf(value))\n return \"object\";\n return \"value\";\n }\n function JsonMerge(source, patch) {\n if (patch === undefined)\n return source;\n const sourceType = JsonType(source);\n const patchType = JsonType(patch);\n if (sourceType !== patchType)\n return patch;\n switch (sourceType) {\n case \"array\": {\n const typedSource = source;\n const typedPatch = patch;\n return typedSource.map(function (source, index) {\n return JsonMerge(source, typedPatch[index]);\n });\n }\n case \"object\": {\n const typedSource = source;\n const typedPatch = patch;\n const sourceKeys = Object.keys(typedSource);\n const result = {};\n for (let x = 0; x < sourceKeys.length; x++)\n result[sourceKeys[x]] = JsonMerge(typedSource[sourceKeys[x]], typedPatch[sourceKeys[x]]);\n return result;\n }\n default:\n return patch;\n }\n }\n function JsonDeepClone(value) {\n const type = JsonType(value);\n switch (type) {\n case \"array\":\n return value.map(JsonDeepClone);\n case \"object\": {\n const ret = {};\n const keys = Object.keys(value);\n for (let x = 0; x < keys.length; x++)\n ret[keys[x]] = JsonDeepClone(value[keys[x]]);\n return ret;\n }\n default:\n return value;\n }\n }\n function JsonDiff(newValue, oldValue, rootPath, initResult) {\n const result = initResult ?? [];\n const startPath = rootPath ? rootPath.split(\".\") : [];\n JsonDiffRecursive(startPath, newValue, oldValue, result);\n return result;\n }\n function JsonDiffRecursive(path, newValue, oldValue, resp) {\n if (newValue === oldValue)\n return false;\n const newType = JsonType(newValue);\n const oldType = JsonType(oldValue);\n const changedPathLength = resp.length;\n let allChildrenChanged = true;\n if (newType === oldType)\n switch (newType) {\n case \"array\": {\n allChildrenChanged = JsonDiffArrays(path, newValue, oldValue, resp);\n break;\n }\n case \"object\": {\n allChildrenChanged = JsonDiffObjects(path, newValue, oldValue, resp);\n break;\n }\n }\n if (allChildrenChanged) {\n resp.splice(changedPathLength);\n resp.push({\n path,\n value: newValue,\n });\n return true;\n }\n return false;\n }\n function JsonDiffArrays(path, newValue, oldValue, resp) {\n let allChildrenChanged = true;\n if (newValue.length !== oldValue.length)\n resp.push({\n path: path.concat(\"length\"),\n value: newValue.length,\n });\n if (newValue.length > 0 || oldValue.length > 0) {\n for (let y = 0; y < newValue.length; y++) {\n const arrayPath = path.concat(y);\n const oldValueElem = oldValue[y];\n allChildrenChanged =\n JsonDiffRecursive(arrayPath, newValue[y], oldValueElem, resp) &&\n allChildrenChanged;\n }\n }\n else\n allChildrenChanged = false;\n return allChildrenChanged;\n }\n function JsonDiffObjects(path, newValue, oldValue, resp) {\n const newKeys = Object.keys(newValue).sort();\n const oldKeys = Object.keys(oldValue).sort();\n if (newKeys.length === 0 && oldKeys.length === 0)\n return false;\n if (newKeys.length < oldKeys.length)\n return true;\n let newKeyIndex = 0;\n let oldKeyIndex = 0;\n while (newKeyIndex < newKeys.length) {\n const childPath = path.concat(newKeys[newKeyIndex]);\n if (oldKeyIndex < oldKeys.length &&\n newKeys[newKeyIndex] === oldKeys[oldKeyIndex]) {\n JsonDiffRecursive(childPath, newValue[newKeys[newKeyIndex]], oldValue[oldKeys[oldKeyIndex]], resp);\n oldKeyIndex++;\n }\n else if (newValue[newKeys[newKeyIndex]] !== undefined) {\n resp.push({\n path: childPath,\n value: newValue[newKeys[newKeyIndex]],\n });\n }\n newKeyIndex++;\n }\n if (oldKeyIndex < oldKeys.length)\n return true;\n return false;\n }\n return { JsonDiff, JsonType, JsonDeepClone, JsonMerge };\n}\n_a = JsonDiffFactory(), exports.JsonDiff = _a.JsonDiff, exports.JsonType = _a.JsonType, exports.JsonDeepClone = _a.JsonDeepClone, exports.JsonMerge = _a.JsonMerge;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonType = void 0;\nvar json_1 = require(\"./json\");\nObject.defineProperty(exports, \"JsonType\", { enumerable: true, get: function () { return json_1.JsonType; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.List = void 0;\nvar List;\n(function (List) {\n let maxTempListSize = 0;\n let trimScheduled = false;\n let idleCallback;\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 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 ScheduleTrimTempList() {\n if (!trimScheduled) {\n trimScheduled = true;\n setTimeout(function () {\n trimScheduled = false;\n cancelIdleCallback(idleCallback);\n idleCallback = requestIdleCallback(TrimTempList);\n });\n }\n }\n function TrimTempList() {\n if (maxTempListSize < tempList.size)\n maxTempListSize = tempList.size;\n const trimSize = Math.floor(maxTempListSize / 10);\n Split(tempList, trimSize);\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 let node = list.head;\n while (node) {\n const key = keyCallback(node.data);\n const nodes = map.get(key) || [node];\n if (nodes[0] !== node)\n nodes.push(node);\n else\n map.set(key, nodes);\n node = node.next;\n }\n return map;\n }\n List.ToNodeMap = ToNodeMap;\n})(List || (exports.List = List = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Schedule = Schedule;\nexports.After = After;\nexports.Callback = Callback;\nexports.Synch = Synch;\nexports.Thread = Thread;\nexports.ThreadAsync = ThreadAsync;\nconst list_1 = require(\"./list\");\nconst workTimeMs = 16;\nconst contextQueue = list_1.List.Create();\nlet threadContext = null;\nlet timeoutRunning = false;\nconst scheduleCallback = setTimeout;\nfunction timeRemaining() {\n return this.end - Date.now();\n}\nfunction createDeadline() {\n return {\n end: Date.now() + workTimeMs,\n timeRemaining\n };\n}\nfunction ProcessQueue(deadline = createDeadline()) {\n let ctx;\n while (deadline.timeRemaining() > 0 && (ctx = list_1.List.Pop(contextQueue)))\n DoWork(ctx, deadline);\n if (contextQueue.size > 0)\n scheduleCallback(ProcessQueue);\n else\n timeoutRunning = false;\n}\nfunction ScheduleWork(ctx) {\n list_1.List.Add(contextQueue, ctx);\n if (timeoutRunning)\n return;\n timeoutRunning = true;\n scheduleCallback(ProcessQueue);\n}\nfunction Invoke(ctx, callback) {\n const parent = ctx.workEndNode;\n ctx.workEndNode = ctx.workList.head;\n callback(true);\n ctx.workEndNode = parent;\n}\nfunction DoWork(ctx, deadline = createDeadline()) {\n const parentContext = threadContext;\n threadContext = ctx;\n const async = ctx.async;\n let callback;\n while (async === ctx.async && deadline.timeRemaining() > 0 && (callback = list_1.List.Pop(ctx.workList)))\n Invoke(ctx, callback);\n if (ctx.workList.size > 0)\n ScheduleWork(ctx);\n threadContext = parentContext;\n}\nfunction CreateContext() {\n return {\n async: false,\n workEndNode: null,\n workList: list_1.List.Create()\n };\n}\nfunction ScheduleCallback(callback, before, async) {\n threadContext = threadContext || CreateContext();\n threadContext.async = threadContext.async || async;\n if (before)\n list_1.List.AddBefore(threadContext.workList, threadContext.workEndNode, callback);\n else if (threadContext.workEndNode)\n list_1.List.AddAfter(threadContext.workList, threadContext.workEndNode, callback);\n else\n threadContext.workEndNode = list_1.List.Add(threadContext.workList, callback);\n}\nfunction SynchWithoutThread(callback) {\n callback(false);\n if (threadContext)\n if (threadContext.async)\n ScheduleWork(threadContext);\n else\n DoWork(threadContext);\n threadContext = null;\n}\nfunction Schedule(callback) {\n ScheduleCallback(callback, true, true);\n}\nfunction After(callback) {\n ScheduleCallback(callback, false, false);\n}\nfunction Callback(callback) {\n return function (a, b, c, d) {\n Schedule(function () { callback(a, b, c, d); });\n };\n}\nvar inSynchCallback = false;\nfunction Synch(callback) {\n if (threadContext || inSynchCallback)\n callback(false);\n else {\n inSynchCallback = true;\n SynchWithoutThread(callback);\n inSynchCallback = false;\n }\n}\nfunction Thread(callback) {\n if (threadContext)\n ScheduleCallback(callback, true, false);\n else\n Synch(callback);\n}\nfunction ThreadAsync(callback) {\n return new Promise(resolve => Thread(function (async) {\n callback(async);\n Thread(resolve);\n }));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Component = void 0;\nvar component_1 = require(\"./Node/component\");\nObject.defineProperty(exports, \"Component\", { enumerable: true, get: function () { return component_1.Component; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObservableNode = exports.ObservableScope = void 0;\n__exportStar(require(\"./index\"), exports);\n__exportStar(require(\"./Utils\"), exports);\nvar Store_1 = require(\"./Store\");\nObject.defineProperty(exports, \"ObservableScope\", { enumerable: true, get: function () { return Store_1.ObservableScope; } });\nObject.defineProperty(exports, \"ObservableNode\", { enumerable: true, get: function () { return Store_1.ObservableNode; } });\n__exportStar(require(\"./DOM\"), exports);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Web = require(\"./web.export\");\nfor (var key in Web)\n window[key] = Web[key];\n"],"names":["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","childrenFunc","head","curDetach","childNodes","delete","DestroyAll","ReconcileNodeData","attachNodes","startSize","async","newNodes","textNode","elemNode","elementNode","dataScope","valueScope","slice","Set","setData","ScheduleSetData","defaultNodeList","domNodeConfig_1","Store_1","nodeType","nodeNamespace","Current","lastEvents","AddChildToNode","add","forEach","nodeRefs","AddChildAfter","currentChild","newChild","nextChildren","rootNode","priorNode","curDataNode","insert","actualNode","expectedNode","DiffAsync","workerQueue_1","diffWorker_1","keyFunc","workerQueue","WorkerQueue","DiffWorker","Push","method","arguments","toString","DiffPath","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","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","GetAccessorValue","aliasValue","CreateArrayProxy","Touch","DefaultCreateProxy","pathTuples","property","tupleIndex","assignValue","ObservableScopeWrapper","ObservableScopeValue","emitter_1","emitter","scopeEmitter","Emitter","On","Emit","Unwatch","Remove","DestroyScope","getFunction","currentScope","currentlyWatching","UpdateScope","dirty","watchEmitters","parentScope","parentWatching","WatchScope","promise","newEmitters","emitters","setCallback","UpdateEmitters","UpdateValue","valueFunction","Symbol","toStringTag","OnSet","Watching","updateScopeQueue","ProcessScopeUpdateQueue","processList","Split","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","removed","indexOf","typeMap","action","_a","jsonProto","JsonDiffRecursive","newValue","oldValue","resp","newType","oldType","changedPathLength","allChildrenChanged","concat","arrayPath","oldValueElem","JsonDiffArrays","newKeys","sort","oldKeys","newKeyIndex","oldKeyIndex","childPath","JsonDiffObjects","initResult","sourceType","typedPatch","typedSource","sourceKeys","idleCallback","maxTempListSize","trimScheduled","tempList","tail","CreateNode","PopNode","previous","ReturnNode","ScheduleTrimTempList","cancelIdleCallback","requestIdleCallback","TrimTempList","trimSize","floor","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][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 elemNode.childrenFunc = children;\n return elemNode;\n }\n ElementNode.Create = Create;\n function Init(elementNode) {\n if (elementNode.childrenFunc) {\n var nodeDef = elementNode.nodeDef;\n if (nodeDef.data) {\n const dataScope = observableScope_1.ObservableScope.Create(nodeDef.data);\n const valueScope = observableScope_1.ObservableScope.Create(function () {\n let value = observableScope_1.ObservableScope.Value(dataScope);\n if (!value)\n return valueDefault;\n if (!Array.isArray(value))\n return [value];\n return value.slice();\n });\n elementNode.childNodes = new Set();\n elementNode.scopes ??= [];\n elementNode.scopes.push(dataScope, valueScope);\n observableScope_1.ObservableScope.Watch(valueScope, function () {\n ScheduleSetData(elementNode, valueScope);\n });\n SetData(elementNode, observableScope_1.ObservableScope.Value(valueScope), true);\n }\n else\n SetDefaultData(elementNode);\n }\n boundNode_1.BoundNode.Init(elementNode);\n }\n ElementNode.Init = Init;\n})(ElementNode || (exports.ElementNode = ElementNode = {}));\nfunction ScheduleSetData(node, scope) {\n if (node.setData)\n return;\n node.setData = true;\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n node.setData = false;\n if (node.destroyed)\n return;\n SetData(node, observableScope_1.ObservableScope.Value(scope));\n });\n}\nfunction SetDefaultData(node) {\n (0, thread_1.Synch)(function () {\n const nodes = injector_1.Injector.Scope(node.injector, CreateNodeArray, node.childrenFunc, true);\n if (nodes.length > 0) {\n nodeRef_1.NodeRef.InitAll(node, nodes);\n (0, thread_1.Thread)(function () {\n if (node.destroyed)\n return;\n const defaultNodeList = list_1.List.Create();\n list_1.List.Add(defaultNodeList, {\n value: null,\n init: true,\n nodes\n });\n nodeRef_1.NodeRef.ReconcileChildren(node, defaultNodeList);\n 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.childrenFunc, values[x])\n });\n }\n }\n let curNode = nextNodeList.head;\n while (curNode) {\n const data = curNode.data;\n !data.init && (0, thread_1.Schedule)(function () {\n if (node.destroyed || nextNodeList.size === 0)\n return;\n nodeRef_1.NodeRef.InitAll(node, data.nodes);\n data.init = true;\n });\n curNode = curNode.next;\n }\n if (currentNodeList) {\n let curDetach = currentNodeList.head;\n while (curDetach) {\n const data = curDetach.data;\n curDetach = curDetach.next;\n for (let x = 0; x < data.nodes.length; x++)\n node.childNodes.delete(data.nodes[x]);\n nodeRef_1.NodeRef.DestroyAll(data.nodes);\n }\n list_1.List.Clear(currentNodeList);\n }\n node.nodeList = nextNodeList;\n}\nfunction SetData(node, values, init = false) {\n (0, thread_1.Synch)(function () {\n ReconcileNodeData(node, values);\n const attachNodes = node.nodeList;\n const startSize = attachNodes.size;\n (0, thread_1.Thread)(function (async) {\n if (node.destroyed)\n return;\n if (init || !async)\n nodeRef_1.NodeRef.ReconcileChildren(node, attachNodes);\n else\n nodeConfig_1.NodeConfig.scheduleUpdate(function () {\n if (node.destroyed || attachNodes.size !== startSize)\n return;\n nodeRef_1.NodeRef.ReconcileChildren(node, attachNodes);\n });\n });\n });\n}\nfunction CreateNodeArray(childrenFunc, value) {\n const newNodes = childrenFunc(value);\n if (typeof newNodes === \"string\" || !newNodes) {\n const textNode = nodeRef_1.NodeRef.Create(\"text\", null, nodeRef_1.NodeRefType.BoundNode);\n textNode.nodeDef = {\n 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 childrenFunc: 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 curDataNode = nextChildren?.head;\n let insert = false;\n let remove = false;\n while (curDataNode) {\n for (let x = 0; x < curDataNode.data.nodes.length; x++) {\n const actualNode = priorNode ? nodeConfig_1.NodeConfig.getNextSibling(priorNode) : nodeConfig_1.NodeConfig.getFirstChild(rootNode);\n const virtualNode = curDataNode.data.nodes[x];\n const expectedNode = virtualNode.node;\n if (actualNode !== expectedNode) {\n nodeConfig_1.NodeConfig.addChildBefore(rootNode, actualNode, expectedNode);\n !remove && insert && actualNode && nodeConfig_1.NodeConfig.removeChild(rootNode, actualNode);\n remove = insert;\n insert = true;\n }\n else {\n insert = false;\n remove = false;\n }\n priorNode = expectedNode;\n }\n curDataNode = curDataNode.next;\n }\n let lastChild = nodeConfig_1.NodeConfig.getLastChild(rootNode);\n while (priorNode && priorNode !== lastChild) {\n nodeConfig_1.NodeConfig.removeChild(rootNode, lastChild);\n lastChild = nodeConfig_1.NodeConfig.getLastChild(rootNode);\n }\n }\n NodeRef.ReconcileChildren = ReconcileChildren;\n function DetachChild(node, child) {\n if (!Array.isArray(node.childNodes) && node.childNodes.delete(child)) {\n nodeConfig_1.NodeConfig.removeChild(node.node, child.node);\n child.parent = null;\n }\n }\n NodeRef.DetachChild = DetachChild;\n function Destroy(node) {\n if (node.destroyed)\n return;\n node.destroyed = true;\n if (Array.isArray(node.childNodes))\n for (let x = 0; x < node.childNodes.length; x++)\n Destroy(node.childNodes[x]);\n else\n node.childNodes?.forEach(Destroy);\n switch (node.type) {\n case NodeRefType.ComponentNode:\n node.component?.Destroy();\n case NodeRefType.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) {\n const type = (0, jsonType_1.JsonType)(value);\n if (type === \"value\")\n return value;\n if (value[exports.IS_OBSERVABLE_NODE] === true)\n return value[exports.GET_OBSERVABLE_VALUE];\n switch (type) {\n case \"object\": {\n const keys = Object.keys(value);\n for (let x = 0; x < keys.length; x++)\n value[keys[x]] = UnwrapProxy(value[keys[x]]);\n }\n case \"array\": {\n for (let x = 0; x < value.length; x++)\n value[x] = UnwrapProxy(value[x]);\n }\n }\n return value;\n}\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 scope = observableScope_1.ObservableScope.Create(() => value);\n const proxy = new Proxy(value, {\n get: ObjectProxyGetter,\n set: ObjectProxySetter,\n has,\n ownKeys,\n getOwnPropertyDescriptor,\n });\n scopeCache.set(value, scope);\n proxyCache.set(value, proxy);\n return proxy;\n }\n function ArrayProxySetter(array, prop, value) {\n if (readOnly)\n throw `Object is readonly`;\n if (prop === exports.IS_OBSERVABLE_NODE)\n throw `Cannot assign read-only property: ${exports.IS_OBSERVABLE_NODE}`;\n value = UnwrapProxy(value);\n array[prop] = value;\n const scope = scopeCache.get(array);\n observableScope_1.ObservableScope.Update(scope);\n return true;\n }\n function ArrayProxyGetter(array, prop) {\n if (prop === exports.IS_OBSERVABLE_NODE)\n return true;\n if (readOnly)\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 const scope = scopeCache.get(array);\n array = observableScope_1.ObservableScope.Value(scope);\n switch (prop) {\n case exports.GET_TO_JSON:\n return function () {\n return ToJson(array);\n };\n case exports.GET_OBSERVABLE_VALUE:\n return array;\n default: {\n const arrayValue = array[prop];\n if (typeof prop === \"symbol\")\n return arrayValue;\n if (typeof arrayValue === \"function\")\n return function ArrayFunction(...args) {\n const proxyArray = prop === \"slice\" ? array.slice(...args) : array.slice();\n for (let x = 0; x < proxyArray.length; x++)\n proxyArray[x] = CreateProxyFromValue(proxyArray[x]);\n let result = prop === \"slice\"\n ? proxyArray\n : proxyArray[prop](...args);\n switch (prop) {\n case \"push\":\n case \"unshift\":\n case \"splice\":\n case \"pop\":\n case \"shift\":\n case \"sort\":\n case \"reverse\":\n array.length = proxyArray.length;\n for (let x = 0; x < proxyArray.length; x++)\n array[x] = UnwrapProxy(proxyArray[x]);\n observableScope_1.ObservableScope.Update(scope);\n break;\n }\n return result;\n };\n const proxy = CreateProxyFromValue(arrayValue);\n return proxy;\n }\n }\n }\n function 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 value = UnwrapProxy(value);\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 return true;\n }\n function ObjectProxyGetter(object, prop) {\n if (prop === exports.IS_OBSERVABLE_NODE)\n return true;\n switch (prop) {\n case exports.GET_TO_JSON:\n return function () {\n return ToJson(object);\n };\n case exports.GET_OBSERVABLE_VALUE:\n return object;\n default: {\n return GetAccessorValue(object, prop);\n }\n }\n }\n function GetAccessorValue(parent, prop) {\n let leafScopes = leafScopeCache.get(parent);\n if (leafScopes === undefined) {\n leafScopes = {};\n leafScopeCache.set(parent, leafScopes);\n }\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;\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 currentScope = null;\nlet currentlyWatching = false;\nfunction WatchScope(scope) {\n const parentScope = currentScope;\n const parentWatching = currentlyWatching;\n currentScope = scope;\n currentlyWatching = true;\n const value = scope.getFunction();\n currentScope = parentScope;\n currentlyWatching = parentWatching;\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 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 currentScope.watchEmitters ??= [];\n currentScope.watchEmitters.push(emitter);\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 updated = UpdateValue(scope);\n updated && scope.async && 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 DirtyScope(scope) {\n scope.dirty = true;\n 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 false;\n scope.dirty = false;\n scope.watchEmitters = 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 return true;\n}\nfunction UpdateEmitters(scope) {\n const newEmitters = scope.watchEmitters;\n if (newEmitters === null) {\n for (let x = 0; x < scope.emitters.length; x++)\n emitter_1.Emitter.Remove(scope.emitters[x], scope.setCallback);\n scope.emitters = [];\n return;\n }\n let x = 0;\n for (; x < scope.emitters.length && x < newEmitters.length && scope.emitters[x] === newEmitters[x]; x++) { }\n for (let y = x; y < scope.emitters.length; y++)\n emitter_1.Emitter.Remove(scope.emitters[y], scope.setCallback);\n for (let y = x; y < newEmitters.length; y++)\n emitter_1.Emitter.On(newEmitters[y], scope.setCallback);\n scope.emitters = newEmitters;\n}\nfunction DestroyScope(scope) {\n if (!scope)\n return;\n scope.emitters = null;\n scope.emitter = null;\n scope.getFunction = null;\n scope.setCallback = null;\n scope.destroyed = true;\n}\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 function Create() {\n return [];\n }\n Emitter.Create = Create;\n function On(emitter, callback) {\n emitter.push(callback);\n }\n Emitter.On = On;\n function Emit(emitter, ...args) {\n let removed = false;\n for (let x = 0; x < emitter.length; x++) {\n 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})(Emitter || (exports.Emitter = Emitter = {}));\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./decorators\"), exports);\n__exportStar(require(\"./animation\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Injector = void 0;\nclass Injector {\n constructor() {\n this.parent = Injector.Current();\n this.typeMap = new Map();\n }\n Get(type) {\n if (this.typeMap.size === 0)\n return this.parent && this.parent.Get(type);\n var ret = this.typeMap.get(type);\n if (!ret)\n ret = this.parent && this.parent.Get(type);\n return ret;\n }\n Set(type, instance) {\n this.typeMap.set(type, instance);\n }\n}\nexports.Injector = Injector;\n(function (Injector) {\n var scope = null;\n function Current() {\n return scope;\n }\n Injector.Current = Current;\n function Scope(injector, action, ...args) {\n var parent = Current();\n scope = injector;\n const ret = action(...args);\n scope = parent;\n return ret;\n }\n Injector.Scope = Scope;\n})(Injector || (exports.Injector = Injector = {}));\n","\"use strict\";\nvar _a;\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonMerge = exports.JsonDeepClone = exports.JsonType = exports.JsonDiff = void 0;\nexports.JsonDiffFactory = JsonDiffFactory;\nfunction JsonDiffFactory() {\n const jsonProto = Object.getPrototypeOf({});\n function JsonType(value) {\n if (value === null || value === undefined)\n return \"value\";\n if (Array.isArray(value))\n return \"array\";\n if (jsonProto === Object.getPrototypeOf(value))\n return \"object\";\n return \"value\";\n }\n function JsonMerge(source, patch) {\n if (patch === undefined)\n return source;\n const sourceType = JsonType(source);\n const patchType = JsonType(patch);\n if (sourceType !== patchType)\n return patch;\n switch (sourceType) {\n case \"array\": {\n const typedSource = source;\n const typedPatch = patch;\n return typedSource.map(function (source, index) {\n return JsonMerge(source, typedPatch[index]);\n });\n }\n case \"object\": {\n const typedSource = source;\n const typedPatch = patch;\n const sourceKeys = Object.keys(typedSource);\n const result = {};\n for (let x = 0; x < sourceKeys.length; x++)\n result[sourceKeys[x]] = JsonMerge(typedSource[sourceKeys[x]], typedPatch[sourceKeys[x]]);\n return result;\n }\n default:\n return patch;\n }\n }\n function JsonDeepClone(value) {\n const type = JsonType(value);\n switch (type) {\n case \"array\":\n return value.map(JsonDeepClone);\n case \"object\": {\n const ret = {};\n const keys = Object.keys(value);\n for (let x = 0; x < keys.length; x++)\n ret[keys[x]] = JsonDeepClone(value[keys[x]]);\n return ret;\n }\n default:\n return value;\n }\n }\n function JsonDiff(newValue, oldValue, rootPath, initResult) {\n const result = initResult ?? [];\n const startPath = rootPath ? rootPath.split(\".\") : [];\n JsonDiffRecursive(startPath, newValue, oldValue, result);\n return result;\n }\n function JsonDiffRecursive(path, newValue, oldValue, resp) {\n if (newValue === oldValue)\n return false;\n const newType = JsonType(newValue);\n const oldType = JsonType(oldValue);\n const changedPathLength = resp.length;\n let allChildrenChanged = true;\n if (newType === oldType)\n switch (newType) {\n case \"array\": {\n allChildrenChanged = JsonDiffArrays(path, newValue, oldValue, resp);\n break;\n }\n case \"object\": {\n allChildrenChanged = JsonDiffObjects(path, newValue, oldValue, resp);\n break;\n }\n }\n if (allChildrenChanged) {\n resp.splice(changedPathLength);\n resp.push({\n path,\n value: newValue,\n });\n return true;\n }\n return false;\n }\n function JsonDiffArrays(path, newValue, oldValue, resp) {\n let allChildrenChanged = true;\n if (newValue.length !== oldValue.length)\n resp.push({\n path: path.concat(\"length\"),\n value: newValue.length,\n });\n if (newValue.length > 0 || oldValue.length > 0) {\n for (let y = 0; y < newValue.length; y++) {\n const arrayPath = path.concat(y);\n const oldValueElem = oldValue[y];\n allChildrenChanged =\n JsonDiffRecursive(arrayPath, newValue[y], oldValueElem, resp) &&\n allChildrenChanged;\n }\n }\n else\n allChildrenChanged = false;\n return allChildrenChanged;\n }\n function JsonDiffObjects(path, newValue, oldValue, resp) {\n const newKeys = Object.keys(newValue).sort();\n const oldKeys = Object.keys(oldValue).sort();\n if (newKeys.length === 0 && oldKeys.length === 0)\n return false;\n if (newKeys.length < oldKeys.length)\n return true;\n let newKeyIndex = 0;\n let oldKeyIndex = 0;\n while (newKeyIndex < newKeys.length) {\n const childPath = path.concat(newKeys[newKeyIndex]);\n if (oldKeyIndex < oldKeys.length &&\n newKeys[newKeyIndex] === oldKeys[oldKeyIndex]) {\n JsonDiffRecursive(childPath, newValue[newKeys[newKeyIndex]], oldValue[oldKeys[oldKeyIndex]], resp);\n oldKeyIndex++;\n }\n else if (newValue[newKeys[newKeyIndex]] !== undefined) {\n resp.push({\n path: childPath,\n value: newValue[newKeys[newKeyIndex]],\n });\n }\n newKeyIndex++;\n }\n if (oldKeyIndex < oldKeys.length)\n return true;\n return false;\n }\n return { JsonDiff, JsonType, JsonDeepClone, JsonMerge };\n}\n_a = JsonDiffFactory(), exports.JsonDiff = _a.JsonDiff, exports.JsonType = _a.JsonType, exports.JsonDeepClone = _a.JsonDeepClone, exports.JsonMerge = _a.JsonMerge;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JsonType = void 0;\nvar json_1 = require(\"./json\");\nObject.defineProperty(exports, \"JsonType\", { enumerable: true, get: function () { return json_1.JsonType; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.List = void 0;\nvar List;\n(function (List) {\n let maxTempListSize = 0;\n let trimScheduled = false;\n let idleCallback;\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 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 ScheduleTrimTempList() {\n if (!trimScheduled) {\n trimScheduled = true;\n setTimeout(function () {\n trimScheduled = false;\n cancelIdleCallback(idleCallback);\n idleCallback = requestIdleCallback(TrimTempList);\n });\n }\n }\n function TrimTempList() {\n if (maxTempListSize < tempList.size)\n maxTempListSize = tempList.size;\n const trimSize = Math.floor(maxTempListSize / 10);\n Split(tempList, trimSize);\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 let node = list.head;\n while (node) {\n const key = keyCallback(node.data);\n const nodes = map.get(key) || [node];\n if (nodes[0] !== node)\n nodes.push(node);\n else\n map.set(key, nodes);\n node = node.next;\n }\n return map;\n }\n List.ToNodeMap = ToNodeMap;\n})(List || (exports.List = List = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Schedule = Schedule;\nexports.After = After;\nexports.Callback = Callback;\nexports.Synch = Synch;\nexports.Thread = Thread;\nexports.ThreadAsync = ThreadAsync;\nconst list_1 = require(\"./list\");\nconst workTimeMs = 16;\nconst contextQueue = list_1.List.Create();\nlet threadContext = null;\nlet timeoutRunning = false;\nconst scheduleCallback = setTimeout;\nfunction timeRemaining() {\n return this.end - Date.now();\n}\nfunction createDeadline() {\n return {\n end: Date.now() + workTimeMs,\n timeRemaining\n };\n}\nfunction ProcessQueue(deadline = createDeadline()) {\n let ctx;\n while (deadline.timeRemaining() > 0 && (ctx = list_1.List.Pop(contextQueue)))\n DoWork(ctx, deadline);\n if (contextQueue.size > 0)\n scheduleCallback(ProcessQueue);\n else\n timeoutRunning = false;\n}\nfunction ScheduleWork(ctx) {\n list_1.List.Add(contextQueue, ctx);\n if (timeoutRunning)\n return;\n timeoutRunning = true;\n scheduleCallback(ProcessQueue);\n}\nfunction Invoke(ctx, callback) {\n const parent = ctx.workEndNode;\n ctx.workEndNode = ctx.workList.head;\n callback(true);\n ctx.workEndNode = parent;\n}\nfunction DoWork(ctx, deadline = createDeadline()) {\n const parentContext = threadContext;\n threadContext = ctx;\n const async = ctx.async;\n let callback;\n while (async === ctx.async && deadline.timeRemaining() > 0 && (callback = list_1.List.Pop(ctx.workList)))\n Invoke(ctx, callback);\n if (ctx.workList.size > 0)\n ScheduleWork(ctx);\n threadContext = parentContext;\n}\nfunction CreateContext() {\n return {\n async: false,\n workEndNode: null,\n workList: list_1.List.Create()\n };\n}\nfunction ScheduleCallback(callback, before, async) {\n threadContext = threadContext || CreateContext();\n threadContext.async = threadContext.async || async;\n if (before)\n list_1.List.AddBefore(threadContext.workList, threadContext.workEndNode, callback);\n else if (threadContext.workEndNode)\n list_1.List.AddAfter(threadContext.workList, threadContext.workEndNode, callback);\n else\n threadContext.workEndNode = list_1.List.Add(threadContext.workList, callback);\n}\nfunction SynchWithoutThread(callback) {\n callback(false);\n if (threadContext)\n if (threadContext.async)\n ScheduleWork(threadContext);\n else\n DoWork(threadContext);\n threadContext = null;\n}\nfunction Schedule(callback) {\n ScheduleCallback(callback, true, true);\n}\nfunction After(callback) {\n ScheduleCallback(callback, false, false);\n}\nfunction Callback(callback) {\n return function (a, b, c, d) {\n Schedule(function () { callback(a, b, c, d); });\n };\n}\nvar inSynchCallback = false;\nfunction Synch(callback) {\n if (threadContext || inSynchCallback)\n callback(false);\n else {\n inSynchCallback = true;\n SynchWithoutThread(callback);\n inSynchCallback = false;\n }\n}\nfunction Thread(callback) {\n if (threadContext)\n ScheduleCallback(callback, true, false);\n else\n Synch(callback);\n}\nfunction ThreadAsync(callback) {\n return new Promise(resolve => Thread(function (async) {\n callback(async);\n Thread(resolve);\n }));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Component = void 0;\nvar component_1 = require(\"./Node/component\");\nObject.defineProperty(exports, \"Component\", { enumerable: true, get: function () { return component_1.Component; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObservableNode = exports.ObservableScope = void 0;\n__exportStar(require(\"./index\"), exports);\n__exportStar(require(\"./Utils\"), exports);\nvar Store_1 = require(\"./Store\");\nObject.defineProperty(exports, \"ObservableScope\", { enumerable: true, get: function () { return Store_1.ObservableScope; } });\nObject.defineProperty(exports, \"ObservableNode\", { enumerable: true, get: function () { return Store_1.ObservableNode; } });\n__exportStar(require(\"./DOM\"), exports);\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst Web = require(\"./web.export\");\nfor (var key in Web)\n window[key] = Web[key];\n"],"names":["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","childrenFunc","head","curDetach","childNodes","delete","DestroyAll","ReconcileNodeData","attachNodes","startSize","async","newNodes","textNode","elemNode","elementNode","dataScope","valueScope","slice","Set","setData","ScheduleSetData","defaultNodeList","domNodeConfig_1","Store_1","nodeType","nodeNamespace","Current","lastEvents","AddChildToNode","add","forEach","nodeRefs","AddChildAfter","currentChild","newChild","nextChildren","rootNode","priorNode","curDataNode","insert","actualNode","expectedNode","DiffAsync","workerQueue_1","diffWorker_1","keyFunc","workerQueue","WorkerQueue","DiffWorker","Push","method","arguments","toString","DiffPath","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","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","GetAccessorValue","aliasValue","CreateArrayProxy","Touch","DefaultCreateProxy","pathTuples","property","tupleIndex","assignValue","ObservableScopeWrapper","ObservableScopeValue","emitter_1","emitter","scopeEmitter","Emitter","On","Emit","Unwatch","Remove","DestroyScope","getFunction","currentScope","currentlyWatching","UpdateScope","updated","dirty","watchEmitters","parentScope","parentWatching","WatchScope","promise","newEmitters","emitters","setCallback","UpdateEmitters","UpdateValue","valueFunction","Symbol","toStringTag","OnSet","Watching","updateScopeQueue","ProcessScopeUpdateQueue","processList","Split","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","removed","indexOf","typeMap","action","_a","jsonProto","JsonDiffRecursive","newValue","oldValue","resp","newType","oldType","changedPathLength","allChildrenChanged","concat","arrayPath","oldValueElem","JsonDiffArrays","newKeys","sort","oldKeys","newKeyIndex","oldKeyIndex","childPath","JsonDiffObjects","initResult","sourceType","typedPatch","typedSource","sourceKeys","idleCallback","maxTempListSize","trimScheduled","tempList","tail","CreateNode","PopNode","previous","ReturnNode","ScheduleTrimTempList","cancelIdleCallback","requestIdleCallback","TrimTempList","trimSize","floor","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":""}
|