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