j-templates 5.0.37 → 5.0.39

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.
Files changed (58) hide show
  1. package/DOM/domNodeConfig.js +2 -1
  2. package/DOM/elements.js +1 -0
  3. package/DOM/index.js +17 -6
  4. package/DOM/svgElements.js +1 -0
  5. package/DOM/utils.js +1 -0
  6. package/DOM/window.js +1 -0
  7. package/Node/boundNode.js +1 -0
  8. package/Node/boundNode.types.d.ts +2 -2
  9. package/Node/component.d.ts +1 -1
  10. package/Node/component.js +13 -7
  11. package/Node/componentNode.js +8 -7
  12. package/Node/componentNode.types.d.ts +2 -2
  13. package/Node/elementNode.js +7 -6
  14. package/Node/elementNode.types.d.ts +2 -2
  15. package/Node/nodeConfig.js +1 -0
  16. package/Node/nodeRef.js +1 -0
  17. package/Node/nodeRef.types.d.ts +1 -1
  18. package/Store/Diff/diffAsync.js +3 -1
  19. package/Store/Diff/diffSync.js +3 -1
  20. package/Store/Diff/diffTree.d.ts +1 -1
  21. package/Store/Diff/diffTree.js +3 -1
  22. package/Store/Diff/diffWorker.js +1 -0
  23. package/Store/Diff/workerQueue.js +3 -0
  24. package/Store/Store/store.js +9 -9
  25. package/Store/Store/storeAsync.d.ts +1 -1
  26. package/Store/Store/storeAsync.js +7 -5
  27. package/Store/Store/storeAsyncWriter.d.ts +4 -5
  28. package/Store/Store/storeAsyncWriter.js +13 -13
  29. package/Store/Store/storeSync.js +10 -10
  30. package/Store/Store/storeSyncWriter.d.ts +4 -5
  31. package/Store/Store/storeSyncWriter.js +12 -14
  32. package/Store/Store/storeWriter.d.ts +4 -5
  33. package/Store/Store/storeWriter.js +13 -14
  34. package/Store/Tree/observableScope.js +8 -5
  35. package/Store/Tree/observableTree.d.ts +21 -12
  36. package/Store/Tree/observableTree.js +194 -67
  37. package/Store/index.js +5 -4
  38. package/Utils/animation.js +22 -12
  39. package/Utils/asyncQueue.js +3 -4
  40. package/Utils/decorators.d.ts +1 -1
  41. package/Utils/decorators.js +1 -0
  42. package/Utils/emitter.d.ts +2 -2
  43. package/Utils/emitter.js +1 -0
  44. package/Utils/index.js +16 -5
  45. package/Utils/injector.js +3 -0
  46. package/Utils/list.js +1 -0
  47. package/Utils/router.js +13 -9
  48. package/Utils/thread.d.ts +1 -1
  49. package/Utils/thread.js +1 -0
  50. package/index.js +2 -1
  51. package/jTemplates.js +521 -735
  52. package/jTemplates.js.map +1 -1
  53. package/package.json +1 -1
  54. package/web.export.js +21 -9
  55. package/Store/Tree/observableNode.d.ts +0 -32
  56. package/Store/Tree/observableNode.js +0 -148
  57. package/Store/Tree/observableProxy.d.ts +0 -17
  58. package/Store/Tree/observableProxy.js +0 -119
package/jTemplates.js CHANGED
@@ -1,101 +1,16 @@
1
- /******/ (function(modules) { // webpackBootstrap
2
- /******/ // The module cache
3
- /******/ var installedModules = {};
4
- /******/
5
- /******/ // The require function
6
- /******/ function __webpack_require__(moduleId) {
7
- /******/
8
- /******/ // Check if module is in cache
9
- /******/ if(installedModules[moduleId]) {
10
- /******/ return installedModules[moduleId].exports;
11
- /******/ }
12
- /******/ // Create a new module (and put it into the cache)
13
- /******/ var module = installedModules[moduleId] = {
14
- /******/ i: moduleId,
15
- /******/ l: false,
16
- /******/ exports: {}
17
- /******/ };
18
- /******/
19
- /******/ // Execute the module function
20
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21
- /******/
22
- /******/ // Flag the module as loaded
23
- /******/ module.l = true;
24
- /******/
25
- /******/ // Return the exports of the module
26
- /******/ return module.exports;
27
- /******/ }
28
- /******/
29
- /******/
30
- /******/ // expose the modules object (__webpack_modules__)
31
- /******/ __webpack_require__.m = modules;
32
- /******/
33
- /******/ // expose the module cache
34
- /******/ __webpack_require__.c = installedModules;
35
- /******/
36
- /******/ // define getter function for harmony exports
37
- /******/ __webpack_require__.d = function(exports, name, getter) {
38
- /******/ if(!__webpack_require__.o(exports, name)) {
39
- /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
40
- /******/ }
41
- /******/ };
42
- /******/
43
- /******/ // define __esModule on exports
44
- /******/ __webpack_require__.r = function(exports) {
45
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
46
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
47
- /******/ }
48
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
49
- /******/ };
50
- /******/
51
- /******/ // create a fake namespace object
52
- /******/ // mode & 1: value is a module id, require it
53
- /******/ // mode & 2: merge all properties of value into the ns
54
- /******/ // mode & 4: return value when already ns object
55
- /******/ // mode & 8|1: behave like require
56
- /******/ __webpack_require__.t = function(value, mode) {
57
- /******/ if(mode & 1) value = __webpack_require__(value);
58
- /******/ if(mode & 8) return value;
59
- /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
60
- /******/ var ns = Object.create(null);
61
- /******/ __webpack_require__.r(ns);
62
- /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
63
- /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
64
- /******/ return ns;
65
- /******/ };
66
- /******/
67
- /******/ // getDefaultExport function for compatibility with non-harmony modules
68
- /******/ __webpack_require__.n = function(module) {
69
- /******/ var getter = module && module.__esModule ?
70
- /******/ function getDefault() { return module['default']; } :
71
- /******/ function getModuleExports() { return module; };
72
- /******/ __webpack_require__.d(getter, 'a', getter);
73
- /******/ return getter;
74
- /******/ };
75
- /******/
76
- /******/ // Object.prototype.hasOwnProperty.call
77
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
78
- /******/
79
- /******/ // __webpack_public_path__
80
- /******/ __webpack_require__.p = "";
81
- /******/
82
- /******/
83
- /******/ // Load entry module and return exports
84
- /******/ return __webpack_require__(__webpack_require__.s = "./src/web.ts");
85
- /******/ })
86
- /************************************************************************/
87
- /******/ ({
1
+ /******/ (() => { // webpackBootstrap
2
+ /******/ "use strict";
3
+ /******/ var __webpack_modules__ = ({
88
4
 
89
5
  /***/ "./src/DOM/domNodeConfig.ts":
90
6
  /*!**********************************!*\
91
7
  !*** ./src/DOM/domNodeConfig.ts ***!
92
8
  \**********************************/
93
- /*! no static exports found */
94
- /***/ (function(module, exports, __webpack_require__) {
9
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
95
10
 
96
- "use strict";
97
11
 
98
- Object.defineProperty(exports, "__esModule", { value: true });
12
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
13
+ exports.DOMNodeConfig = void 0;
99
14
  const window_1 = __webpack_require__(/*! ./window */ "./src/DOM/window.ts");
100
15
  const list_1 = __webpack_require__(/*! ../Utils/list */ "./src/Utils/list.ts");
101
16
  const utils_1 = __webpack_require__(/*! ./utils */ "./src/DOM/utils.ts");
@@ -106,7 +21,7 @@ function processUpdates() {
106
21
  list_1.List.Add(pendingUpdates, null);
107
22
  var callback;
108
23
  while ((callback = list_1.List.Pop(pendingUpdates)))
109
- thread_1.Synch(callback);
24
+ (0, thread_1.Synch)(callback);
110
25
  if (pendingUpdates.size === 0)
111
26
  updateScheduled = false;
112
27
  else
@@ -180,12 +95,11 @@ exports.DOMNodeConfig = {
180
95
  /*!*****************************!*\
181
96
  !*** ./src/DOM/elements.ts ***!
182
97
  \*****************************/
183
- /*! no static exports found */
184
- /***/ (function(module, exports, __webpack_require__) {
98
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
185
99
 
186
- "use strict";
187
100
 
188
- Object.defineProperty(exports, "__esModule", { value: true });
101
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
102
+ exports.td = exports.tr = exports.th = exports.table = exports.button = exports.style = exports.p = exports.h3 = exports.h2 = exports.h1 = exports.option = exports.select = exports.input = exports.source = exports.video = exports.img = exports.span = exports.b = exports.br = exports.li = exports.ul = exports.a = exports.div = void 0;
189
103
  const elementNode_1 = __webpack_require__(/*! ../Node/elementNode */ "./src/Node/elementNode.ts");
190
104
  function div(nodeDef, children) {
191
105
  return elementNode_1.ElementNode.Create("div", null, nodeDef, children);
@@ -287,18 +201,27 @@ exports.td = td;
287
201
  /*!**************************!*\
288
202
  !*** ./src/DOM/index.ts ***!
289
203
  \**************************/
290
- /*! no static exports found */
291
- /***/ (function(module, exports, __webpack_require__) {
204
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
292
205
 
293
- "use strict";
294
206
 
295
- function __export(m) {
296
- for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
297
- }
298
- Object.defineProperty(exports, "__esModule", { value: true });
299
- __export(__webpack_require__(/*! ./elements */ "./src/DOM/elements.ts"));
300
- __export(__webpack_require__(/*! ./svgElements */ "./src/DOM/svgElements.ts"));
301
- __export(__webpack_require__(/*! ./utils */ "./src/DOM/utils.ts"));
207
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
208
+ if (k2 === undefined) k2 = k;
209
+ var desc = Object.getOwnPropertyDescriptor(m, k);
210
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
211
+ desc = { enumerable: true, get: function() { return m[k]; } };
212
+ }
213
+ Object.defineProperty(o, k2, desc);
214
+ }) : (function(o, m, k, k2) {
215
+ if (k2 === undefined) k2 = k;
216
+ o[k2] = m[k];
217
+ }));
218
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
219
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
220
+ };
221
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
222
+ __exportStar(__webpack_require__(/*! ./elements */ "./src/DOM/elements.ts"), exports);
223
+ __exportStar(__webpack_require__(/*! ./svgElements */ "./src/DOM/svgElements.ts"), exports);
224
+ __exportStar(__webpack_require__(/*! ./utils */ "./src/DOM/utils.ts"), exports);
302
225
 
303
226
 
304
227
  /***/ }),
@@ -307,12 +230,11 @@ __export(__webpack_require__(/*! ./utils */ "./src/DOM/utils.ts"));
307
230
  /*!********************************!*\
308
231
  !*** ./src/DOM/svgElements.ts ***!
309
232
  \********************************/
310
- /*! no static exports found */
311
- /***/ (function(module, exports, __webpack_require__) {
233
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
312
234
 
313
- "use strict";
314
235
 
315
- Object.defineProperty(exports, "__esModule", { value: true });
236
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
237
+ exports.circle = exports.g = exports.svg = void 0;
316
238
  const elementNode_1 = __webpack_require__(/*! ../Node/elementNode */ "./src/Node/elementNode.ts");
317
239
  const svgNs = "http://www.w3.org/2000/svg";
318
240
  function svg(nodeDef, children) {
@@ -335,12 +257,11 @@ exports.circle = circle;
335
257
  /*!**************************!*\
336
258
  !*** ./src/DOM/utils.ts ***!
337
259
  \**************************/
338
- /*! no static exports found */
339
- /***/ (function(module, exports, __webpack_require__) {
260
+ /***/ ((__unused_webpack_module, exports) => {
340
261
 
341
- "use strict";
342
262
 
343
- Object.defineProperty(exports, "__esModule", { value: true });
263
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
264
+ exports.SetProperties = void 0;
344
265
  function SetValue(target, value) {
345
266
  switch (target.nodeName) {
346
267
  case "INPUT":
@@ -392,13 +313,12 @@ exports.SetProperties = SetProperties;
392
313
  /*!***************************!*\
393
314
  !*** ./src/DOM/window.ts ***!
394
315
  \***************************/
395
- /*! no static exports found */
396
- /***/ (function(module, exports, __webpack_require__) {
316
+ /***/ ((__unused_webpack_module, exports) => {
397
317
 
398
- "use strict";
399
318
 
400
- Object.defineProperty(exports, "__esModule", { value: true });
401
- exports.wndw = typeof window !== "undefined" ? window : (new (__webpack_require__(!(function webpackMissingModule() { var e = new Error("Cannot find module 'jsdom'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())).JSDOM("")).window);
319
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
320
+ exports.wndw = void 0;
321
+ exports.wndw = typeof window !== "undefined" ? window : (new (Object(function webpackMissingModule() { var e = new Error("Cannot find module 'jsdom'"); e.code = 'MODULE_NOT_FOUND'; throw e; }())("")).window);
402
322
 
403
323
 
404
324
  /***/ }),
@@ -407,12 +327,11 @@ exports.wndw = typeof window !== "undefined" ? window : (new (__webpack_require_
407
327
  /*!*******************************!*\
408
328
  !*** ./src/Node/boundNode.ts ***!
409
329
  \*******************************/
410
- /*! no static exports found */
411
- /***/ (function(module, exports, __webpack_require__) {
330
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
412
331
 
413
- "use strict";
414
332
 
415
- Object.defineProperty(exports, "__esModule", { value: true });
333
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
334
+ exports.BoundNode = void 0;
416
335
  const nodeConfig_1 = __webpack_require__(/*! ./nodeConfig */ "./src/Node/nodeConfig.ts");
417
336
  const observableScope_1 = __webpack_require__(/*! ../Store/Tree/observableScope */ "./src/Store/Tree/observableScope.ts");
418
337
  var BoundNode;
@@ -506,24 +425,21 @@ function SetEvents(node, events) {
506
425
  /*!*******************************!*\
507
426
  !*** ./src/Node/component.ts ***!
508
427
  \*******************************/
509
- /*! no static exports found */
510
- /***/ (function(module, exports, __webpack_require__) {
428
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
511
429
 
512
- "use strict";
513
430
 
514
- Object.defineProperty(exports, "__esModule", { value: true });
431
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
432
+ exports.Component = void 0;
515
433
  const nodeRef_1 = __webpack_require__(/*! ./nodeRef */ "./src/Node/nodeRef.ts");
516
434
  const componentNode_1 = __webpack_require__(/*! ./componentNode */ "./src/Node/componentNode.ts");
517
435
  const decorators_1 = __webpack_require__(/*! ../Utils/decorators */ "./src/Utils/decorators.ts");
518
436
  const observableScope_1 = __webpack_require__(/*! ../Store/Tree/observableScope */ "./src/Store/Tree/observableScope.ts");
519
437
  class Component {
520
- constructor(data, templates, nodeRef, componentEvents) {
521
- this.nodeRef = nodeRef;
522
- this.componentEvents = componentEvents;
523
- this.scope = new observableScope_1.ObservableScope(data);
524
- this.templates = templates || {};
525
- this.decoratorMap = new Map();
526
- }
438
+ nodeRef;
439
+ componentEvents;
440
+ scope;
441
+ templates;
442
+ decoratorMap;
527
443
  get Injector() {
528
444
  return this.nodeRef.injector;
529
445
  }
@@ -545,6 +461,13 @@ class Component {
545
461
  get Templates() {
546
462
  return this.templates;
547
463
  }
464
+ constructor(data, templates, nodeRef, componentEvents) {
465
+ this.nodeRef = nodeRef;
466
+ this.componentEvents = componentEvents;
467
+ this.scope = new observableScope_1.ObservableScope(data);
468
+ this.templates = templates || {};
469
+ this.decoratorMap = new Map();
470
+ }
548
471
  Template() {
549
472
  return [];
550
473
  }
@@ -592,12 +515,11 @@ exports.Component = Component;
592
515
  /*!***********************************!*\
593
516
  !*** ./src/Node/componentNode.ts ***!
594
517
  \***********************************/
595
- /*! no static exports found */
596
- /***/ (function(module, exports, __webpack_require__) {
518
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
597
519
 
598
- "use strict";
599
520
 
600
- Object.defineProperty(exports, "__esModule", { value: true });
521
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
522
+ exports.ComponentNode = void 0;
601
523
  const boundNode_1 = __webpack_require__(/*! ./boundNode */ "./src/Node/boundNode.ts");
602
524
  const nodeRef_1 = __webpack_require__(/*! ./nodeRef */ "./src/Node/nodeRef.ts");
603
525
  const nodeConfig_1 = __webpack_require__(/*! ./nodeConfig */ "./src/Node/nodeConfig.ts");
@@ -647,15 +569,15 @@ function SetChildren(node) {
647
569
  }
648
570
  function AddPreReqTemplate(node) {
649
571
  return new Promise(resolve => {
650
- thread_1.Thread(function () {
572
+ (0, thread_1.Thread)(function () {
651
573
  var preNodes;
652
574
  injector_1.Injector.Scope(node.injector, () => preNodes = decorators_1.PreReqTemplate.Get(node.component));
653
- thread_1.Schedule(function () {
575
+ (0, thread_1.Schedule)(function () {
654
576
  if (node.destroyed)
655
577
  return;
656
578
  nodeRef_1.NodeRef.InitAll(preNodes);
657
579
  });
658
- thread_1.Thread(function () {
580
+ (0, thread_1.Thread)(function () {
659
581
  if (node.destroyed)
660
582
  return;
661
583
  for (var x = 0; x < preNodes.length; x++)
@@ -678,7 +600,7 @@ function AddPreReqTemplate(node) {
678
600
  });
679
601
  }
680
602
  function AddTemplate(node, init) {
681
- thread_1.Thread(function () {
603
+ (0, thread_1.Thread)(function () {
682
604
  if (node.destroyed)
683
605
  return;
684
606
  var nodes;
@@ -687,10 +609,10 @@ function AddTemplate(node, init) {
687
609
  });
688
610
  if (!Array.isArray(nodes))
689
611
  nodes = [nodes];
690
- thread_1.Schedule(function () {
612
+ (0, thread_1.Schedule)(function () {
691
613
  nodeRef_1.NodeRef.InitAll(nodes);
692
614
  });
693
- thread_1.Thread(function () {
615
+ (0, thread_1.Thread)(function () {
694
616
  if (node.destroyed)
695
617
  return;
696
618
  if (init)
@@ -705,7 +627,7 @@ function AddTemplate(node, init) {
705
627
  });
706
628
  });
707
629
  if (node.component.Bound !== component_1.Component.prototype.Bound)
708
- thread_1.After(function () {
630
+ (0, thread_1.After)(function () {
709
631
  nodeConfig_1.NodeConfig.scheduleUpdate(() => setTimeout(() => node.component.Bound(), 0));
710
632
  });
711
633
  });
@@ -718,12 +640,11 @@ function AddTemplate(node, init) {
718
640
  /*!*********************************!*\
719
641
  !*** ./src/Node/elementNode.ts ***!
720
642
  \*********************************/
721
- /*! no static exports found */
722
- /***/ (function(module, exports, __webpack_require__) {
643
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
723
644
 
724
- "use strict";
725
645
 
726
- Object.defineProperty(exports, "__esModule", { value: true });
646
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
647
+ exports.ElementNode = void 0;
727
648
  const boundNode_1 = __webpack_require__(/*! ./boundNode */ "./src/Node/boundNode.ts");
728
649
  const nodeConfig_1 = __webpack_require__(/*! ./nodeConfig */ "./src/Node/nodeConfig.ts");
729
650
  const injector_1 = __webpack_require__(/*! ../Utils/injector */ "./src/Utils/injector.ts");
@@ -783,18 +704,18 @@ function ScheduleSetData(node, scope) {
783
704
  });
784
705
  }
785
706
  function SetDefaultData(node) {
786
- thread_1.Synch(function () {
707
+ (0, thread_1.Synch)(function () {
787
708
  var nodes;
788
709
  injector_1.Injector.Scope(node.injector, function () {
789
710
  nodes = CreateNodeArray(node.childrenFunc, true);
790
711
  });
791
712
  if (nodes.length > 0) {
792
- thread_1.Schedule(function () {
713
+ (0, thread_1.Schedule)(function () {
793
714
  if (node.destroyed)
794
715
  return;
795
716
  nodeRef_1.NodeRef.InitAll(nodes);
796
717
  });
797
- thread_1.Thread(function () {
718
+ (0, thread_1.Thread)(function () {
798
719
  if (node.destroyed)
799
720
  return;
800
721
  DetachAndAddNodes(node, [], [nodes]);
@@ -803,7 +724,7 @@ function SetDefaultData(node) {
803
724
  });
804
725
  }
805
726
  function SetData(node, value, init = false) {
806
- thread_1.Synch(function () {
727
+ (0, thread_1.Synch)(function () {
807
728
  var newNodesMap = new Map();
808
729
  var values = value || valueDefault;
809
730
  if (!Array.isArray(values))
@@ -823,7 +744,7 @@ function SetData(node, value, init = false) {
823
744
  injector_1.Injector.Scope(node.injector, function () {
824
745
  nodes = CreateNodeArray(node.childrenFunc, value);
825
746
  });
826
- thread_1.Schedule(function () {
747
+ (0, thread_1.Schedule)(function () {
827
748
  if (node.destroyed || newNodesMap.size === 0)
828
749
  return;
829
750
  nodeRef_1.NodeRef.InitAll(nodes);
@@ -841,7 +762,7 @@ function SetData(node, value, init = false) {
841
762
  node.nodesMap.clear();
842
763
  }
843
764
  node.nodesMap = newNodesMap;
844
- thread_1.Thread(function () {
765
+ (0, thread_1.Thread)(function () {
845
766
  if (node.destroyed)
846
767
  return;
847
768
  if (init)
@@ -896,12 +817,11 @@ function DestroyNodeArrayList(nodeArrayList) {
896
817
  /*!********************************!*\
897
818
  !*** ./src/Node/nodeConfig.ts ***!
898
819
  \********************************/
899
- /*! no static exports found */
900
- /***/ (function(module, exports, __webpack_require__) {
820
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
901
821
 
902
- "use strict";
903
822
 
904
- Object.defineProperty(exports, "__esModule", { value: true });
823
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
824
+ exports.NodeConfig = void 0;
905
825
  const domNodeConfig_1 = __webpack_require__(/*! ../DOM/domNodeConfig */ "./src/DOM/domNodeConfig.ts");
906
826
  exports.NodeConfig = domNodeConfig_1.DOMNodeConfig;
907
827
 
@@ -912,12 +832,11 @@ exports.NodeConfig = domNodeConfig_1.DOMNodeConfig;
912
832
  /*!*****************************!*\
913
833
  !*** ./src/Node/nodeRef.ts ***!
914
834
  \*****************************/
915
- /*! no static exports found */
916
- /***/ (function(module, exports, __webpack_require__) {
835
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
917
836
 
918
- "use strict";
919
837
 
920
- Object.defineProperty(exports, "__esModule", { value: true });
838
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
839
+ exports.NodeRef = exports.NodeRefType = void 0;
921
840
  const nodeConfig_1 = __webpack_require__(/*! ./nodeConfig */ "./src/Node/nodeConfig.ts");
922
841
  const injector_1 = __webpack_require__(/*! ../Utils/injector */ "./src/Utils/injector.ts");
923
842
  const boundNode_1 = __webpack_require__(/*! ./boundNode */ "./src/Node/boundNode.ts");
@@ -1079,17 +998,17 @@ var NodeRef;
1079
998
  /*!*************************************!*\
1080
999
  !*** ./src/Store/Diff/diffAsync.ts ***!
1081
1000
  \*************************************/
1082
- /*! no static exports found */
1083
- /***/ (function(module, exports, __webpack_require__) {
1001
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1084
1002
 
1085
- "use strict";
1086
1003
 
1087
- Object.defineProperty(exports, "__esModule", { value: true });
1004
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1005
+ exports.DiffAsync = void 0;
1088
1006
  const diffTree_1 = __webpack_require__(/*! ./diffTree */ "./src/Store/Diff/diffTree.ts");
1089
1007
  const workerQueue_1 = __webpack_require__(/*! ./workerQueue */ "./src/Store/Diff/workerQueue.ts");
1090
1008
  const diffWorker_1 = __webpack_require__(/*! ./diffWorker */ "./src/Store/Diff/diffWorker.ts");
1091
- const diffCnstr = diffTree_1.DiffTreeScope();
1009
+ const diffCnstr = (0, diffTree_1.DiffTreeScope)();
1092
1010
  class DiffAsync {
1011
+ workerQueue;
1093
1012
  constructor(keyFunc) {
1094
1013
  this.workerQueue = new workerQueue_1.WorkerQueue(diffWorker_1.DiffWorker.Create());
1095
1014
  this.workerQueue.Push({ method: "create", arguments: [keyFunc.toString()] });
@@ -1125,15 +1044,15 @@ exports.DiffAsync = DiffAsync;
1125
1044
  /*!************************************!*\
1126
1045
  !*** ./src/Store/Diff/diffSync.ts ***!
1127
1046
  \************************************/
1128
- /*! no static exports found */
1129
- /***/ (function(module, exports, __webpack_require__) {
1047
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1130
1048
 
1131
- "use strict";
1132
1049
 
1133
- Object.defineProperty(exports, "__esModule", { value: true });
1050
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1051
+ exports.DiffSync = void 0;
1134
1052
  const diffTree_1 = __webpack_require__(/*! ./diffTree */ "./src/Store/Diff/diffTree.ts");
1135
- const diffCnstr = diffTree_1.DiffTreeScope();
1053
+ const diffCnstr = (0, diffTree_1.DiffTreeScope)();
1136
1054
  class DiffSync {
1055
+ diffTree;
1137
1056
  constructor(keyFunc) {
1138
1057
  this.diffTree = new diffCnstr(keyFunc);
1139
1058
  }
@@ -1162,12 +1081,11 @@ exports.DiffSync = DiffSync;
1162
1081
  /*!************************************!*\
1163
1082
  !*** ./src/Store/Diff/diffTree.ts ***!
1164
1083
  \************************************/
1165
- /*! no static exports found */
1166
- /***/ (function(module, exports, __webpack_require__) {
1084
+ /***/ ((__unused_webpack_module, exports) => {
1167
1085
 
1168
- "use strict";
1169
1086
 
1170
- Object.defineProperty(exports, "__esModule", { value: true });
1087
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1088
+ exports.DiffTreeScope = void 0;
1171
1089
  function DiffTreeScope(worker) {
1172
1090
  const ctx = this;
1173
1091
  if (ctx && worker) {
@@ -1206,9 +1124,10 @@ function DiffTreeScope(worker) {
1206
1124
  return !(jsonConstructor === value.constructor || Array.isArray(value));
1207
1125
  }
1208
1126
  class DiffTree {
1127
+ keyFunc;
1128
+ rootStateMap = new Map();
1209
1129
  constructor(keyFunc) {
1210
1130
  this.keyFunc = keyFunc;
1211
- this.rootStateMap = new Map();
1212
1131
  }
1213
1132
  static GetKeyRef(key) {
1214
1133
  return `___DiffTreeKeyRef.${key}`;
@@ -1388,12 +1307,11 @@ exports.DiffTreeScope = DiffTreeScope;
1388
1307
  /*!**************************************!*\
1389
1308
  !*** ./src/Store/Diff/diffWorker.ts ***!
1390
1309
  \**************************************/
1391
- /*! no static exports found */
1392
- /***/ (function(module, exports, __webpack_require__) {
1310
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1393
1311
 
1394
- "use strict";
1395
1312
 
1396
- Object.defineProperty(exports, "__esModule", { value: true });
1313
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1314
+ exports.DiffWorker = void 0;
1397
1315
  const diffTree_1 = __webpack_require__(/*! ./diffTree */ "./src/Store/Diff/diffTree.ts");
1398
1316
  var DiffWorker;
1399
1317
  (function (DiffWorker) {
@@ -1418,14 +1336,15 @@ var DiffWorker;
1418
1336
  /*!***************************************!*\
1419
1337
  !*** ./src/Store/Diff/workerQueue.ts ***!
1420
1338
  \***************************************/
1421
- /*! no static exports found */
1422
- /***/ (function(module, exports, __webpack_require__) {
1339
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1423
1340
 
1424
- "use strict";
1425
1341
 
1426
- Object.defineProperty(exports, "__esModule", { value: true });
1342
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1343
+ exports.WorkerQueue = void 0;
1427
1344
  const list_1 = __webpack_require__(/*! ../../Utils/list */ "./src/Utils/list.ts");
1428
1345
  class WorkerQueue {
1346
+ callbacks;
1347
+ worker;
1429
1348
  constructor(worker) {
1430
1349
  this.worker = worker;
1431
1350
  this.callbacks = list_1.List.Create();
@@ -1462,28 +1381,27 @@ exports.WorkerQueue = WorkerQueue;
1462
1381
  /*!**********************************!*\
1463
1382
  !*** ./src/Store/Store/store.ts ***!
1464
1383
  \**********************************/
1465
- /*! no static exports found */
1466
- /***/ (function(module, exports, __webpack_require__) {
1384
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1467
1385
 
1468
- "use strict";
1469
1386
 
1470
- Object.defineProperty(exports, "__esModule", { value: true });
1387
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1388
+ exports.Store = void 0;
1471
1389
  const observableTree_1 = __webpack_require__(/*! ../Tree/observableTree */ "./src/Store/Tree/observableTree.ts");
1472
1390
  const storeWriter_1 = __webpack_require__(/*! ./storeWriter */ "./src/Store/Store/storeWriter.ts");
1473
1391
  class Store {
1392
+ observableTree = new observableTree_1.ObservableTree();
1393
+ storeWriter = new storeWriter_1.StoreWriter(this.observableTree);
1394
+ rootScope = this.observableTree.Scope("ROOT", root => root);
1395
+ get Root() {
1396
+ return this.rootScope;
1397
+ }
1474
1398
  constructor(init) {
1475
- this.observableTree = new observableTree_1.ObservableTree();
1476
- this.storeWriter = new storeWriter_1.StoreWriter(this.observableTree);
1477
- this.rootScope = this.observableTree.Scope("ROOT", root => root);
1478
1399
  if (init)
1479
1400
  this.Write(init);
1480
1401
  }
1481
- get Root() {
1482
- return this.rootScope;
1483
- }
1484
1402
  Action(action) {
1485
- var node = this.observableTree.GetNode("ROOT");
1486
- action(node.Proxy, this.storeWriter);
1403
+ var proxy = this.observableTree.Get("ROOT");
1404
+ action(proxy, this.storeWriter);
1487
1405
  }
1488
1406
  Write(data) {
1489
1407
  this.Action((root, writer) => writer.Write(root, data));
@@ -1493,7 +1411,6 @@ class Store {
1493
1411
  }
1494
1412
  Destroy() {
1495
1413
  this.rootScope.Destroy();
1496
- this.observableTree.Destroy();
1497
1414
  }
1498
1415
  }
1499
1416
  exports.Store = Store;
@@ -1505,17 +1422,21 @@ exports.Store = Store;
1505
1422
  /*!***************************************!*\
1506
1423
  !*** ./src/Store/Store/storeAsync.ts ***!
1507
1424
  \***************************************/
1508
- /*! no static exports found */
1509
- /***/ (function(module, exports, __webpack_require__) {
1425
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1510
1426
 
1511
- "use strict";
1512
1427
 
1513
- Object.defineProperty(exports, "__esModule", { value: true });
1428
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1429
+ exports.StoreAsync = void 0;
1514
1430
  const observableTree_1 = __webpack_require__(/*! ../Tree/observableTree */ "./src/Store/Tree/observableTree.ts");
1515
1431
  const diffAsync_1 = __webpack_require__(/*! ../Diff/diffAsync */ "./src/Store/Diff/diffAsync.ts");
1516
1432
  const storeAsyncWriter_1 = __webpack_require__(/*! ./storeAsyncWriter */ "./src/Store/Store/storeAsyncWriter.ts");
1517
1433
  const asyncQueue_1 = __webpack_require__(/*! ../../Utils/asyncQueue */ "./src/Utils/asyncQueue.ts");
1518
1434
  class StoreAsync {
1435
+ idFunc;
1436
+ diffAsync;
1437
+ observableTree;
1438
+ asyncWriter;
1439
+ asyncQueue;
1519
1440
  constructor(idFunc, init) {
1520
1441
  this.idFunc = idFunc;
1521
1442
  this.diffAsync = new diffAsync_1.DiffAsync(this.idFunc);
@@ -1533,10 +1454,7 @@ class StoreAsync {
1533
1454
  }
1534
1455
  async Action(id, action) {
1535
1456
  await this.asyncQueue.Next(async () => {
1536
- var node;
1537
- if (id)
1538
- node = this.observableTree.GetNode(id);
1539
- await action(node && node.Proxy, this.asyncWriter);
1457
+ await action(id && this.observableTree.Get(id), this.asyncWriter);
1540
1458
  });
1541
1459
  }
1542
1460
  async Write(data) {
@@ -1552,7 +1470,6 @@ class StoreAsync {
1552
1470
  Destroy() {
1553
1471
  this.asyncQueue.Stop();
1554
1472
  this.diffAsync.Destroy();
1555
- this.observableTree.Destroy();
1556
1473
  }
1557
1474
  }
1558
1475
  exports.StoreAsync = StoreAsync;
@@ -1564,51 +1481,49 @@ exports.StoreAsync = StoreAsync;
1564
1481
  /*!*********************************************!*\
1565
1482
  !*** ./src/Store/Store/storeAsyncWriter.ts ***!
1566
1483
  \*********************************************/
1567
- /*! no static exports found */
1568
- /***/ (function(module, exports, __webpack_require__) {
1484
+ /***/ ((__unused_webpack_module, exports) => {
1569
1485
 
1570
- "use strict";
1571
1486
 
1572
- Object.defineProperty(exports, "__esModule", { value: true });
1487
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1488
+ exports.StoreAsyncWriter = void 0;
1573
1489
  class StoreAsyncWriter {
1490
+ idFunc;
1491
+ diffAsync;
1492
+ observableTree;
1574
1493
  constructor(idFunc, diffAsync, observableTree) {
1575
1494
  this.idFunc = idFunc;
1576
1495
  this.diffAsync = diffAsync;
1577
1496
  this.observableTree = observableTree;
1578
1497
  }
1579
1498
  async Write(source, data) {
1580
- var path;
1499
+ let path;
1581
1500
  if (source) {
1582
- var proxy = source;
1583
- path = proxy.___node.Path;
1501
+ path = this.observableTree.GetPathOf(source);
1584
1502
  }
1585
1503
  else {
1586
1504
  path = this.idFunc(data);
1587
1505
  if (!path)
1588
1506
  throw new Error("data must have an id");
1589
1507
  }
1590
- var diff = await this.diffAsync.DiffPath(path, data);
1508
+ let diff = await this.diffAsync.DiffPath(path, data);
1591
1509
  this.ApplyChanges(diff);
1592
1510
  }
1593
1511
  async Merge(source, data) {
1594
- var proxy = source;
1595
- var rootPath = proxy.___node.Path;
1596
- var keys = Object.keys(data);
1597
- var message = keys.map(key => ({ path: `${rootPath}.${key}`, value: data[key] }));
1598
- var diff = await this.diffAsync.DiffBatch(message);
1512
+ const rootPath = this.observableTree.GetPathOf(source);
1513
+ const keys = Object.keys(data);
1514
+ const message = keys.map(key => ({ path: `${rootPath}.${key}`, value: data[key] }));
1515
+ const diff = await this.diffAsync.DiffBatch(message);
1599
1516
  this.ApplyChanges(diff);
1600
1517
  }
1601
1518
  async Push(source, data) {
1602
- var proxy = source;
1603
- var rootPath = proxy.___node.Path;
1519
+ const rootPath = this.observableTree.GetPathOf(source);
1604
1520
  var lengthPath = `${rootPath}.length`;
1605
1521
  var length = await this.diffAsync.GetPath(lengthPath);
1606
1522
  var diff = await this.diffAsync.DiffPath(`${rootPath}.${length}`, data);
1607
1523
  this.ApplyChanges(diff);
1608
1524
  }
1609
1525
  async Splice(source, start, deleteCount, ...items) {
1610
- var proxy = source;
1611
- var rootPath = proxy.___node.Path;
1526
+ var rootPath = this.observableTree.GetPathOf(source);
1612
1527
  var array = await this.diffAsync.GetPath(rootPath);
1613
1528
  array = array.slice();
1614
1529
  array.splice(start, deleteCount, ...items);
@@ -1628,30 +1543,29 @@ exports.StoreAsyncWriter = StoreAsyncWriter;
1628
1543
  /*!**************************************!*\
1629
1544
  !*** ./src/Store/Store/storeSync.ts ***!
1630
1545
  \**************************************/
1631
- /*! no static exports found */
1632
- /***/ (function(module, exports, __webpack_require__) {
1546
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
1633
1547
 
1634
- "use strict";
1635
1548
 
1636
- Object.defineProperty(exports, "__esModule", { value: true });
1549
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1550
+ exports.StoreSync = void 0;
1637
1551
  const diffSync_1 = __webpack_require__(/*! ../Diff/diffSync */ "./src/Store/Diff/diffSync.ts");
1638
1552
  const observableTree_1 = __webpack_require__(/*! ../Tree/observableTree */ "./src/Store/Tree/observableTree.ts");
1639
1553
  const storeSyncWriter_1 = __webpack_require__(/*! ./storeSyncWriter */ "./src/Store/Store/storeSyncWriter.ts");
1640
1554
  class StoreSync {
1555
+ diffSync = new diffSync_1.DiffSync();
1556
+ observableTree = new observableTree_1.ObservableTree();
1557
+ storeWriter = new storeSyncWriter_1.StoreSyncWriter(this.diffSync, this.observableTree);
1558
+ rootScope = this.observableTree.Scope("ROOT", root => root);
1559
+ get Root() {
1560
+ return this.rootScope;
1561
+ }
1641
1562
  constructor(init) {
1642
- this.diffSync = new diffSync_1.DiffSync();
1643
- this.observableTree = new observableTree_1.ObservableTree();
1644
- this.storeWriter = new storeSyncWriter_1.StoreSyncWriter(this.diffSync, this.observableTree);
1645
- this.rootScope = this.observableTree.Scope("ROOT", root => root);
1646
1563
  if (init)
1647
1564
  this.Write(init);
1648
1565
  }
1649
- get Root() {
1650
- return this.rootScope;
1651
- }
1652
1566
  Action(action) {
1653
- var node = this.observableTree.GetNode("ROOT");
1654
- action(node.Proxy, this.storeWriter);
1567
+ var proxy = this.observableTree.Get("ROOT");
1568
+ action(proxy, this.storeWriter);
1655
1569
  }
1656
1570
  Write(data) {
1657
1571
  this.Action((root, writer) => writer.Write(root, data));
@@ -1661,7 +1575,6 @@ class StoreSync {
1661
1575
  }
1662
1576
  Destroy() {
1663
1577
  this.rootScope.Destroy();
1664
- this.observableTree.Destroy();
1665
1578
  }
1666
1579
  }
1667
1580
  exports.StoreSync = StoreSync;
@@ -1673,47 +1586,43 @@ exports.StoreSync = StoreSync;
1673
1586
  /*!********************************************!*\
1674
1587
  !*** ./src/Store/Store/storeSyncWriter.ts ***!
1675
1588
  \********************************************/
1676
- /*! no static exports found */
1677
- /***/ (function(module, exports, __webpack_require__) {
1589
+ /***/ ((__unused_webpack_module, exports) => {
1678
1590
 
1679
- "use strict";
1680
1591
 
1681
- Object.defineProperty(exports, "__esModule", { value: true });
1592
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1593
+ exports.StoreSyncWriter = void 0;
1682
1594
  class StoreSyncWriter {
1595
+ diffSync;
1596
+ observableTree;
1683
1597
  constructor(diffSync, observableTree) {
1684
1598
  this.diffSync = diffSync;
1685
1599
  this.observableTree = observableTree;
1686
1600
  }
1687
1601
  Write(source, data) {
1688
- var proxy = source;
1689
- var rootPath = proxy && proxy.___node.Path || "ROOT";
1602
+ var rootPath = source && this.observableTree.GetPathOf(source) || "ROOT";
1690
1603
  var diff = this.diffSync.DiffPath(rootPath, data);
1691
1604
  this.ApplyChanges(diff);
1692
1605
  }
1693
1606
  Merge(source, data) {
1694
- var proxy = source;
1695
- var rootPath = proxy.___node.Path;
1607
+ var rootPath = this.observableTree.GetPathOf(source);
1696
1608
  var keys = Object.keys(data);
1697
1609
  var message = keys.map(key => ({ path: `${rootPath}.${key}`, value: data[key] }));
1698
1610
  var diff = this.diffSync.DiffBatch(message);
1699
1611
  this.ApplyChanges(diff);
1700
1612
  }
1701
1613
  Push(source, data) {
1702
- var array = source;
1703
- var proxy = source;
1704
- var rootPath = proxy.___node.Path;
1705
- var length = array.length;
1614
+ var rootPath = this.observableTree.GetPathOf(source);
1615
+ var length = source.length;
1706
1616
  this.diffSync.UpdatePath(`${rootPath}.${length}`, data);
1707
- proxy.___node.Push(data);
1617
+ this.observableTree.Write(`${rootPath}.${length}`, data);
1708
1618
  }
1709
1619
  Splice(source, start, deleteCount, ...items) {
1710
- var proxy = source;
1711
- var rootPath = proxy.___node.Path;
1712
- var array = this.observableTree.Get(rootPath);
1713
- array = array.map(val => val);
1620
+ var rootPath = this.observableTree.GetPathOf(source);
1621
+ var proxy = this.observableTree.Get(rootPath);
1622
+ const array = proxy.toJSON().slice();
1714
1623
  array.splice(start, deleteCount, ...items);
1715
1624
  this.diffSync.UpdatePath(rootPath, array);
1716
- return proxy.___node.Splice(start, deleteCount, ...items);
1625
+ this.observableTree.Write(rootPath, array);
1717
1626
  }
1718
1627
  ApplyChanges(diff) {
1719
1628
  this.observableTree.WriteAll(diff);
@@ -1728,357 +1637,64 @@ exports.StoreSyncWriter = StoreSyncWriter;
1728
1637
  /*!****************************************!*\
1729
1638
  !*** ./src/Store/Store/storeWriter.ts ***!
1730
1639
  \****************************************/
1731
- /*! no static exports found */
1732
- /***/ (function(module, exports, __webpack_require__) {
1640
+ /***/ ((__unused_webpack_module, exports) => {
1733
1641
 
1734
- "use strict";
1735
1642
 
1736
- Object.defineProperty(exports, "__esModule", { value: true });
1737
- const observableProxy_1 = __webpack_require__(/*! ../Tree/observableProxy */ "./src/Store/Tree/observableProxy.ts");
1643
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1644
+ exports.StoreWriter = void 0;
1738
1645
  class StoreWriter {
1646
+ observableTree;
1739
1647
  constructor(observableTree) {
1740
1648
  this.observableTree = observableTree;
1741
1649
  }
1742
1650
  Write(source, data) {
1743
- var proxy = source;
1744
- var rootPath = proxy && proxy.___node.Path || "ROOT";
1651
+ const rootPath = source && this.observableTree.GetPathOf(source) || "ROOT";
1745
1652
  this.observableTree.Write(rootPath, data);
1746
1653
  }
1747
1654
  Merge(source, data) {
1748
- var proxy = source;
1749
- var rootPath = proxy.___node.Path;
1750
- if (observableProxy_1.ObservableProxy.TypeOf(data) === observableProxy_1.Type.Value)
1751
- this.observableTree.Write(rootPath, data);
1752
- else
1753
- for (var key in data)
1754
- this.observableTree.Write(`${rootPath}.${key}`, data[key]);
1655
+ const rootPath = this.observableTree.GetPathOf(source);
1656
+ for (const key in data)
1657
+ this.observableTree.Write(`${rootPath}.${key}`, data[key]);
1755
1658
  }
1756
1659
  Push(source, data) {
1757
- var proxy = source;
1758
- proxy.___node.Push(data);
1660
+ const rootPath = this.observableTree.GetPathOf(source);
1661
+ this.observableTree.Write(`${rootPath}.${length}`, data);
1759
1662
  }
1760
1663
  Splice(source, start, deleteCount, ...items) {
1761
- var proxy = source;
1762
- proxy.___node.Splice(start, deleteCount, ...items);
1664
+ const json = source.toJSON();
1665
+ const copy = json.slice();
1666
+ copy.splice(start, deleteCount, ...items);
1667
+ const rootPath = this.observableTree.GetPathOf(source);
1668
+ this.observableTree.Write(rootPath, copy);
1763
1669
  }
1764
1670
  }
1765
1671
  exports.StoreWriter = StoreWriter;
1766
1672
 
1767
1673
 
1768
- /***/ }),
1769
-
1770
- /***/ "./src/Store/Tree/observableNode.ts":
1771
- /*!******************************************!*\
1772
- !*** ./src/Store/Tree/observableNode.ts ***!
1773
- \******************************************/
1774
- /*! no static exports found */
1775
- /***/ (function(module, exports, __webpack_require__) {
1776
-
1777
- "use strict";
1778
-
1779
- Object.defineProperty(exports, "__esModule", { value: true });
1780
- const observableProxy_1 = __webpack_require__(/*! ./observableProxy */ "./src/Store/Tree/observableProxy.ts");
1781
- const observableScope_1 = __webpack_require__(/*! ./observableScope */ "./src/Store/Tree/observableScope.ts");
1782
- class ObservableNode {
1783
- constructor(tree, key, parent, valuePathResolver) {
1784
- this.tree = tree;
1785
- this.key = key;
1786
- this.parent = parent;
1787
- this.valuePathResolver = valuePathResolver;
1788
- this.destroyed = false;
1789
- this.children = new Map();
1790
- this.path = undefined;
1791
- this.scope = observableScope_1.ObservableScope.Create(() => {
1792
- var value = this.tree.Get(this.Path);
1793
- var type = observableProxy_1.ObservableProxy.TypeOf(value);
1794
- var resolvedPath = this.valuePathResolver && type === observableProxy_1.Type.Value && typeof value === 'string' ? this.valuePathResolver(value) || this.Path : this.Path;
1795
- var self = this.Path === resolvedPath ? this : this.tree.GetNode(resolvedPath);
1796
- var proxy = this === self ?
1797
- type === observableProxy_1.Type.Value ?
1798
- value :
1799
- observableProxy_1.ObservableProxy.CreateFrom(this, type) :
1800
- self.Proxy;
1801
- return {
1802
- value: value,
1803
- type: observableProxy_1.ObservableProxy.TypeOf(value),
1804
- self: self,
1805
- proxy: proxy
1806
- };
1807
- });
1808
- }
1809
- get Key() {
1810
- return this.key;
1811
- }
1812
- get Path() {
1813
- if (this.path === undefined)
1814
- this.path = (this.parent ? this.parent.Path + "." : "") + this.key;
1815
- return this.path;
1816
- }
1817
- get Value() {
1818
- return observableScope_1.ObservableScope.Value(this.scope).value;
1819
- }
1820
- get Type() {
1821
- return observableScope_1.ObservableScope.Value(this.scope).type;
1822
- }
1823
- get Self() {
1824
- return observableScope_1.ObservableScope.Value(this.scope).self;
1825
- }
1826
- get Proxy() {
1827
- return observableScope_1.ObservableScope.Value(this.scope).proxy;
1828
- }
1829
- get ProxyArray() {
1830
- if (this.Type !== observableProxy_1.Type.Array) {
1831
- this.arrayScope && this.arrayScope.Destroy();
1832
- this.arrayScope = null;
1833
- return null;
1834
- }
1835
- this.arrayScope = this.arrayScope || observableScope_1.ObservableScope.Create(() => this.Value.map((c, i) => this.EnsureChild(i.toString()).Proxy));
1836
- return observableScope_1.ObservableScope.Value(this.arrayScope);
1837
- }
1838
- get Parent() {
1839
- return this.parent;
1840
- }
1841
- get Children() {
1842
- return this.children;
1843
- }
1844
- UpdateKey(newKey) {
1845
- if (!this.parent)
1846
- return;
1847
- this.parent.children.delete(this.key);
1848
- this.parent.children.set(newKey, this);
1849
- this.key = newKey;
1850
- this.path = undefined;
1851
- }
1852
- EnsureChild(key) {
1853
- var child = this.children.get(key);
1854
- if (!child) {
1855
- child = new ObservableNode(this.tree, key, this, this.valuePathResolver);
1856
- this.children.set(key, child);
1857
- }
1858
- return child;
1859
- }
1860
- Update() {
1861
- this.children.clear();
1862
- observableScope_1.ObservableScope.Update(this.scope);
1863
- }
1864
- ArrayUpdate() {
1865
- observableScope_1.ObservableScope.Update(this.arrayScope);
1866
- var lengthNode = this.children.get('length');
1867
- if (lengthNode)
1868
- lengthNode.Update();
1869
- observableScope_1.ObservableScope.Emit(this.scope);
1870
- }
1871
- Destroy() {
1872
- this.destroyed = true;
1873
- this.parent && !this.parent.destroyed && this.parent.Children.delete(this.key);
1874
- this.children.forEach(c => c.Destroy());
1875
- observableScope_1.ObservableScope.Destroy(this.scope);
1876
- observableScope_1.ObservableScope.Destroy(this.arrayScope);
1877
- }
1878
- Push(data) {
1879
- var array = this.Value;
1880
- if (!Array.isArray(array))
1881
- throw new Error("Node value is not an array.");
1882
- var ret = array.push(data);
1883
- this.ArrayUpdate();
1884
- return ret;
1885
- }
1886
- Splice(start, deleteCount, ...items) {
1887
- deleteCount = deleteCount || 0;
1888
- var array = this.Value;
1889
- if (!Array.isArray(array))
1890
- throw new Error("Node value is not an array.");
1891
- var startLength = array.length;
1892
- var ret = array.splice(start, deleteCount, ...items);
1893
- var x = start;
1894
- var key = null;
1895
- var newKey = null;
1896
- var child = null;
1897
- for (; x < (start + deleteCount); x++) {
1898
- key = x.toString();
1899
- child = this.Children.get(key);
1900
- if (child)
1901
- child.Destroy();
1902
- }
1903
- if (startLength < array.length)
1904
- for (var y = startLength - 1; y >= x; y--) {
1905
- key = y.toString();
1906
- child = this.Children.get(key);
1907
- if (child) {
1908
- newKey = (y - deleteCount + items.length).toString();
1909
- child.UpdateKey(newKey);
1910
- }
1911
- }
1912
- else
1913
- for (; x < startLength; x++) {
1914
- key = x.toString();
1915
- child = this.Children.get(key);
1916
- if (child) {
1917
- newKey = (x - deleteCount + items.length).toString();
1918
- child.UpdateKey(newKey);
1919
- }
1920
- }
1921
- this.ArrayUpdate();
1922
- return ret;
1923
- }
1924
- }
1925
- exports.ObservableNode = ObservableNode;
1926
-
1927
-
1928
- /***/ }),
1929
-
1930
- /***/ "./src/Store/Tree/observableProxy.ts":
1931
- /*!*******************************************!*\
1932
- !*** ./src/Store/Tree/observableProxy.ts ***!
1933
- \*******************************************/
1934
- /*! no static exports found */
1935
- /***/ (function(module, exports, __webpack_require__) {
1936
-
1937
- "use strict";
1938
-
1939
- Object.defineProperty(exports, "__esModule", { value: true });
1940
- var Type;
1941
- (function (Type) {
1942
- Type[Type["Value"] = 0] = "Value";
1943
- Type[Type["Object"] = 1] = "Object";
1944
- Type[Type["Array"] = 2] = "Array";
1945
- })(Type = exports.Type || (exports.Type = {}));
1946
- var ObservableProxy;
1947
- (function (ObservableProxy) {
1948
- function TypeOf(value) {
1949
- if (!value)
1950
- return Type.Value;
1951
- if (Array.isArray(value))
1952
- return Type.Array;
1953
- else if (typeof value === 'object')
1954
- return Type.Object;
1955
- return Type.Value;
1956
- }
1957
- ObservableProxy.TypeOf = TypeOf;
1958
- function CreateFrom(node, type) {
1959
- switch (type) {
1960
- case Type.Array:
1961
- return CreateArrayProxy(node);
1962
- case Type.Object:
1963
- return CreateObjectProxy(node);
1964
- default:
1965
- throw new Error("Can't create proxy from Value type");
1966
- }
1967
- }
1968
- ObservableProxy.CreateFrom = CreateFrom;
1969
- function CopyValue(value) {
1970
- var type = TypeOf(value);
1971
- if (type === Type.Value)
1972
- return value;
1973
- if (typeof value.toJSON === 'function')
1974
- return value.toJSON();
1975
- if (type === Type.Array)
1976
- return value.map(v => CopyValue(v));
1977
- else if (type === Type.Object) {
1978
- var ret = {};
1979
- for (var key in value)
1980
- ret[key] = CopyValue(value[key]);
1981
- return ret;
1982
- }
1983
- return null;
1984
- }
1985
- ObservableProxy.CopyValue = CopyValue;
1986
- })(ObservableProxy = exports.ObservableProxy || (exports.ObservableProxy = {}));
1987
- function CreateArrayProxy(node) {
1988
- return new Proxy([], {
1989
- get: (obj, prop) => {
1990
- switch (prop) {
1991
- case '___type':
1992
- return Type.Array;
1993
- case '___storeProxy':
1994
- return true;
1995
- case '___node':
1996
- return node;
1997
- case 'toJSON':
1998
- return () => {
1999
- return CopyNode(node);
2000
- };
2001
- case 'length':
2002
- return node.EnsureChild(prop).Value;
2003
- default:
2004
- if (typeof (prop) === 'symbol')
2005
- return node.ProxyArray[prop];
2006
- if (!isNaN(parseInt(prop)))
2007
- return node.EnsureChild(prop).Proxy;
2008
- var func = obj[prop];
2009
- return func && func.bind(node.ProxyArray);
2010
- }
2011
- },
2012
- ownKeys: () => {
2013
- return Reflect.ownKeys(node.Value);
2014
- }
2015
- });
2016
- }
2017
- function CreateObjectProxy(node) {
2018
- return new Proxy({}, {
2019
- get: (obj, prop) => {
2020
- switch (prop) {
2021
- case '___type':
2022
- return Type.Object;
2023
- case '___storeProxy':
2024
- return true;
2025
- case '___node':
2026
- return node;
2027
- case 'toJSON':
2028
- return () => {
2029
- return CopyNode(node);
2030
- };
2031
- default:
2032
- if (typeof (prop) !== 'symbol')
2033
- return node.EnsureChild(prop).Proxy;
2034
- return obj[prop];
2035
- }
2036
- },
2037
- ownKeys: () => {
2038
- return Reflect.ownKeys(node.Value);
2039
- }
2040
- });
2041
- }
2042
- function CopyNode(node) {
2043
- if (node.Type === Type.Value)
2044
- return node.Value;
2045
- var ret = null;
2046
- if (node.Type === Type.Array)
2047
- ret = node.Value.map((v, i) => CopyNode(node.Self.EnsureChild(i.toString()).Self));
2048
- else {
2049
- ret = {};
2050
- for (var key in node.Value) {
2051
- var child = node.Self.EnsureChild(key);
2052
- ret[key] = CopyNode(child.Self);
2053
- }
2054
- }
2055
- return ret;
2056
- }
2057
-
2058
-
2059
1674
  /***/ }),
2060
1675
 
2061
1676
  /***/ "./src/Store/Tree/observableScope.ts":
2062
1677
  /*!*******************************************!*\
2063
1678
  !*** ./src/Store/Tree/observableScope.ts ***!
2064
1679
  \*******************************************/
2065
- /*! no static exports found */
2066
- /***/ (function(module, exports, __webpack_require__) {
1680
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2067
1681
 
2068
- "use strict";
2069
1682
 
2070
- Object.defineProperty(exports, "__esModule", { value: true });
1683
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1684
+ exports.ObservableScope = exports.ObservableScopeWrapper = exports.ObservableScopeValue = void 0;
2071
1685
  const emitter_1 = __webpack_require__(/*! ../../Utils/emitter */ "./src/Utils/emitter.ts");
2072
1686
  class ObservableScopeValue {
2073
- constructor(scope) {
2074
- this.scope = scope;
2075
- }
1687
+ scope;
2076
1688
  get Value() {
2077
1689
  return ObservableScope.Value(this.scope);
2078
1690
  }
1691
+ constructor(scope) {
1692
+ this.scope = scope;
1693
+ }
2079
1694
  }
2080
1695
  exports.ObservableScopeValue = ObservableScopeValue;
2081
1696
  class ObservableScopeWrapper extends ObservableScopeValue {
1697
+ scopeEmitter;
2082
1698
  constructor(scope) {
2083
1699
  super(scope);
2084
1700
  if (scope.emitter) {
@@ -2199,8 +1815,7 @@ function UpdateValue(scope) {
2199
1815
  return;
2200
1816
  scope.dirty = false;
2201
1817
  var value = null;
2202
- var emitters = WatchAction(() => value = scope.getFunction());
2203
- UpdateEmitters(scope, emitters);
1818
+ var emitters = scope.getFunction && WatchAction(() => value = scope.getFunction());
2204
1819
  if (scope.async)
2205
1820
  Promise.resolve(value).then(val => {
2206
1821
  scope.value = val;
@@ -2208,6 +1823,7 @@ function UpdateValue(scope) {
2208
1823
  });
2209
1824
  else
2210
1825
  scope.value = value;
1826
+ UpdateEmitters(scope, emitters);
2211
1827
  }
2212
1828
  function DestroyScope(scope) {
2213
1829
  if (!scope)
@@ -2235,98 +1851,223 @@ function UpdateEmitters(scope, newEmitters) {
2235
1851
  /*!******************************************!*\
2236
1852
  !*** ./src/Store/Tree/observableTree.ts ***!
2237
1853
  \******************************************/
2238
- /*! no static exports found */
2239
- /***/ (function(module, exports, __webpack_require__) {
1854
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2240
1855
 
2241
- "use strict";
2242
1856
 
2243
- Object.defineProperty(exports, "__esModule", { value: true });
2244
- const observableNode_1 = __webpack_require__(/*! ./observableNode */ "./src/Store/Tree/observableNode.ts");
2245
- const observableProxy_1 = __webpack_require__(/*! ./observableProxy */ "./src/Store/Tree/observableProxy.ts");
2246
- const observableScope_1 = __webpack_require__(/*! ./observableScope */ "./src/Store/Tree/observableScope.ts");
1857
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
1858
+ exports.ObservableTree = void 0;
1859
+ const observableScope_1 = __webpack_require__(/*! ../Tree/observableScope */ "./src/Store/Tree/observableScope.ts");
1860
+ var Type;
1861
+ (function (Type) {
1862
+ Type[Type["Value"] = 0] = "Value";
1863
+ Type[Type["Object"] = 1] = "Object";
1864
+ Type[Type["Array"] = 2] = "Array";
1865
+ })(Type || (Type = {}));
1866
+ const jsonConstructor = {}.constructor;
1867
+ function TypeOf(value) {
1868
+ if (!value)
1869
+ return Type.Value;
1870
+ if (jsonConstructor === value.constructor)
1871
+ return Type.Object;
1872
+ if (Array.isArray(value))
1873
+ return Type.Array;
1874
+ return Type.Value;
1875
+ }
2247
1876
  class ObservableTree {
1877
+ valuePathResolver;
1878
+ undefinedScope = observableScope_1.ObservableScope.Create(function () { return undefined; });
1879
+ scopeCache = new WeakMap();
1880
+ leafScopeCache = new WeakMap();
1881
+ proxyCache = new WeakMap();
1882
+ pathCache = new WeakMap();
1883
+ rootStateMap = new Map();
2248
1884
  constructor(valuePathResolver) {
2249
1885
  this.valuePathResolver = valuePathResolver;
2250
- this.rootStateMap = new Map();
2251
- this.rootNodeMap = new Map();
2252
- }
2253
- Write(path, value) {
2254
- this.WritePath(path, value);
2255
- this.UpdatePathNode(path);
2256
- }
2257
- WriteAll(data) {
2258
- for (var x = 0; x < data.length; x++)
2259
- this.WritePath(data[x].path, data[x].value);
2260
- for (var y = 0; y < data.length; y++)
2261
- this.UpdatePathNode(data[y].path);
2262
1886
  }
2263
1887
  Get(path) {
2264
- return path.split(".").reduce((pre, curr, index) => {
2265
- if (index === 0)
2266
- return this.rootStateMap.get(curr);
2267
- return pre && pre[curr];
2268
- }, null);
2269
- }
2270
- GetNode(path) {
2271
- return path.split(".").reduce((pre, curr, index) => {
1888
+ const val = path.split(".").reduce((pre, curr, index) => {
2272
1889
  if (index === 0) {
2273
- var ret = this.rootNodeMap.get(curr);
2274
- if (!ret) {
2275
- ret = new observableNode_1.ObservableNode(this, curr, null, this.valuePathResolver);
2276
- this.rootNodeMap.set(curr, ret);
2277
- }
2278
- return ret;
1890
+ let value = this.rootStateMap.get(curr);
1891
+ const scope = this.GetParentScope(value);
1892
+ return observableScope_1.ObservableScope.Value(scope);
2279
1893
  }
2280
- return pre.EnsureChild(curr);
1894
+ return pre && pre[curr];
2281
1895
  }, null);
1896
+ return val;
2282
1897
  }
2283
- Delete(path) {
2284
- var node = this.GetNode(path);
2285
- node.Destroy();
2286
- }
2287
- Destroy() {
2288
- this.rootStateMap.clear();
2289
- this.rootNodeMap.forEach(node => node.Destroy());
2290
- this.rootNodeMap.clear();
1898
+ GetPathOf(value) {
1899
+ if (value.toJSON && typeof value.toJSON === 'function')
1900
+ value = value.toJSON();
1901
+ return this.pathCache.get(value);
2291
1902
  }
2292
- Scope(path, func) {
1903
+ Scope(path, callback) {
2293
1904
  return new observableScope_1.ObservableScope(() => {
2294
- var node = this.GetNode(path);
2295
- return func && func(node.Proxy) || node.Proxy;
1905
+ const obj = this.Get(path);
1906
+ return callback && callback(obj) || obj;
2296
1907
  });
2297
1908
  }
2298
- WritePath(path, value) {
2299
- var pathParts = path.split(".");
2300
- var rootPart = pathParts[0];
2301
- if (pathParts.length === 1)
2302
- this.rootStateMap.set(rootPart, value);
1909
+ Write(path, value) {
1910
+ const scope = this.WritePath(path, value);
1911
+ observableScope_1.ObservableScope.Update(scope);
1912
+ }
1913
+ WriteAll(data) {
1914
+ const scopeSet = new Set();
1915
+ for (var x = 0; x < data.length; x++) {
1916
+ const scope = this.WritePath(data[x].path, data[x].value);
1917
+ scopeSet.add(scope);
1918
+ }
1919
+ scopeSet.forEach(scope => observableScope_1.ObservableScope.Update(scope));
1920
+ }
1921
+ GetParentScope(value) {
1922
+ const type = TypeOf(value);
1923
+ if (type === Type.Value) {
1924
+ if (this.valuePathResolver && typeof value === 'string') {
1925
+ const path = this.valuePathResolver(value);
1926
+ if (path) {
1927
+ const val = this.rootStateMap.get(path);
1928
+ return this.GetParentScope(val);
1929
+ }
1930
+ }
1931
+ return value === undefined ? this.undefinedScope : observableScope_1.ObservableScope.Create(value);
1932
+ }
1933
+ let scope = this.scopeCache.get(value);
1934
+ if (!scope) {
1935
+ scope = observableScope_1.ObservableScope.Create(() => this.GetValueProxy(value));
1936
+ this.scopeCache.set(value, scope);
1937
+ }
1938
+ return scope;
1939
+ }
1940
+ GetPropertyScope(parent, prop) {
1941
+ const value = parent[prop];
1942
+ const type = TypeOf(value);
1943
+ if (type === Type.Value) {
1944
+ let leafScopes = this.leafScopeCache.get(parent) || {};
1945
+ leafScopes[prop] = leafScopes[prop] || observableScope_1.ObservableScope.Create(() => {
1946
+ const parentScope = this.scopeCache.get(parent);
1947
+ const parentValue = observableScope_1.ObservableScope.Value(parentScope);
1948
+ const parentJson = parentValue.toJSON();
1949
+ const currentValue = parentJson[prop];
1950
+ let path;
1951
+ if (this.valuePathResolver && typeof currentValue === 'string' && (path = this.valuePathResolver(currentValue)))
1952
+ return this.Get(path);
1953
+ return currentValue;
1954
+ });
1955
+ this.leafScopeCache.set(parent, leafScopes);
1956
+ return leafScopes[prop];
1957
+ }
2303
1958
  else {
2304
- var curValue = this.rootStateMap.get(rootPart);
2305
- for (var x = 1; x < pathParts.length - 1; x++) {
2306
- if (!curValue)
2307
- throw new Error("Unable to write path: " + path + ". Falsey value found at: " + pathParts.slice(0, x).join("."));
2308
- curValue = curValue[pathParts[x]];
1959
+ let scope = this.scopeCache.get(value);
1960
+ if (!scope) {
1961
+ scope = observableScope_1.ObservableScope.Create(() => {
1962
+ const parentScope = this.scopeCache.get(parent);
1963
+ const parentValue = observableScope_1.ObservableScope.Value(parentScope);
1964
+ const parentJson = parentValue.toJSON();
1965
+ const currentValue = parentJson[prop];
1966
+ return this.GetValueProxy(currentValue);
1967
+ });
1968
+ this.scopeCache.set(value, scope);
2309
1969
  }
2310
- if (!curValue)
2311
- throw new Error("Unable to write path: " + path + ". Falsey value found at: " + pathParts.slice(0, x).join("."));
2312
- curValue[pathParts[x]] = value;
1970
+ return scope;
1971
+ }
1972
+ }
1973
+ GetValueProxy(value) {
1974
+ let proxy = this.proxyCache.get(value);
1975
+ if (!proxy) {
1976
+ proxy = this.CreateProxy(value);
1977
+ this.proxyCache.set(value, proxy);
2313
1978
  }
1979
+ return proxy;
2314
1980
  }
2315
- UpdatePathNode(path) {
2316
- var node = this.GetNode(path);
2317
- node.Update();
2318
- if (node.Parent && node.Parent.Type === observableProxy_1.Type.Array) {
2319
- node.Parent.ArrayUpdate();
2320
- if (node.Key === 'length') {
2321
- var index = node.Value;
2322
- var childNode = node.Parent.Children.get(index.toString());
2323
- while (childNode) {
2324
- childNode.Destroy();
2325
- index++;
2326
- childNode = node.Parent.Children.get(index.toString());
1981
+ ObjectProxyGetter = (value, prop) => {
1982
+ function toJSON() {
1983
+ return value;
1984
+ }
1985
+ ;
1986
+ switch (prop) {
1987
+ case "toJSON":
1988
+ return toJSON;
1989
+ default:
1990
+ if (typeof prop === 'symbol')
1991
+ return value[prop];
1992
+ return observableScope_1.ObservableScope.Value(this.GetPropertyScope(value, prop));
1993
+ }
1994
+ };
1995
+ CreateObjectProxy(value) {
1996
+ return new Proxy(value, {
1997
+ get: this.ObjectProxyGetter
1998
+ });
1999
+ }
2000
+ ArrayProxyGetter = (value, prop) => {
2001
+ function toJSON() {
2002
+ return value;
2003
+ }
2004
+ ;
2005
+ switch (prop) {
2006
+ case "toJSON":
2007
+ return toJSON;
2008
+ default:
2009
+ if (typeof prop === 'symbol')
2010
+ return value[prop];
2011
+ if (isNaN(parseInt(prop))) {
2012
+ const ret = value[prop];
2013
+ if (typeof ret === 'function') {
2014
+ const copy = value.map((val, index) => observableScope_1.ObservableScope.Value(this.GetPropertyScope(value, index.toString())));
2015
+ return ret.bind(copy);
2016
+ }
2017
+ return ret;
2327
2018
  }
2328
- }
2019
+ return observableScope_1.ObservableScope.Value(this.GetPropertyScope(value, prop));
2329
2020
  }
2021
+ };
2022
+ CreateArrayProxy(value) {
2023
+ return new Proxy(value, {
2024
+ get: this.ArrayProxyGetter
2025
+ });
2026
+ }
2027
+ CreateProxy(value) {
2028
+ const type = TypeOf(value);
2029
+ switch (type) {
2030
+ case Type.Object:
2031
+ return this.CreateObjectProxy(value);
2032
+ case Type.Array:
2033
+ return this.CreateArrayProxy(value);
2034
+ default:
2035
+ return value;
2036
+ }
2037
+ }
2038
+ WritePath(path, value) {
2039
+ this.UpdatePathCache(path, value);
2040
+ const pathParts = path.split(".");
2041
+ if (pathParts.length === 1) {
2042
+ const currentValue = this.rootStateMap.get(pathParts[0]);
2043
+ this.rootStateMap.set(pathParts[0], value);
2044
+ return currentValue === undefined ? this.undefinedScope : this.scopeCache.get(currentValue);
2045
+ }
2046
+ let parentValue;
2047
+ let x = 0;
2048
+ for (; x < pathParts.length - 1 && (x === 0 || parentValue); x++) {
2049
+ if (x === 0)
2050
+ parentValue = this.rootStateMap.get(pathParts[x]);
2051
+ else
2052
+ parentValue = parentValue && parentValue[pathParts[x]];
2053
+ }
2054
+ if (!parentValue)
2055
+ throw new Error("Unable to write path: " + path + ". Falsey value found at: " + pathParts.slice(0, x).join("."));
2056
+ const prop = pathParts[x];
2057
+ const exists = Object.hasOwn(parentValue, prop);
2058
+ parentValue[prop] = value;
2059
+ const leafScopes = exists && this.leafScopeCache.get(parentValue);
2060
+ return leafScopes && leafScopes[prop] || this.scopeCache.get(parentValue);
2061
+ }
2062
+ UpdatePathCache(path, value) {
2063
+ const type = TypeOf(value);
2064
+ if (type === Type.Value)
2065
+ return;
2066
+ this.pathCache.set(value, path);
2067
+ const keys = Object.keys(value);
2068
+ for (let x = 0; x < keys.length; x++)
2069
+ this.UpdatePathCache(`${path}.${keys[x]}`, value[keys[x]]);
2070
+ return value;
2330
2071
  }
2331
2072
  }
2332
2073
  exports.ObservableTree = ObservableTree;
@@ -2338,20 +2079,19 @@ exports.ObservableTree = ObservableTree;
2338
2079
  /*!****************************!*\
2339
2080
  !*** ./src/Store/index.ts ***!
2340
2081
  \****************************/
2341
- /*! no static exports found */
2342
- /***/ (function(module, exports, __webpack_require__) {
2082
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2343
2083
 
2344
- "use strict";
2345
2084
 
2346
- Object.defineProperty(exports, "__esModule", { value: true });
2085
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2086
+ exports.ObservableScope = exports.StoreAsync = exports.StoreSync = exports.Store = void 0;
2347
2087
  var store_1 = __webpack_require__(/*! ./Store/store */ "./src/Store/Store/store.ts");
2348
- exports.Store = store_1.Store;
2088
+ Object.defineProperty(exports, "Store", ({ enumerable: true, get: function () { return store_1.Store; } }));
2349
2089
  var storeSync_1 = __webpack_require__(/*! ./Store/storeSync */ "./src/Store/Store/storeSync.ts");
2350
- exports.StoreSync = storeSync_1.StoreSync;
2090
+ Object.defineProperty(exports, "StoreSync", ({ enumerable: true, get: function () { return storeSync_1.StoreSync; } }));
2351
2091
  var storeAsync_1 = __webpack_require__(/*! ./Store/storeAsync */ "./src/Store/Store/storeAsync.ts");
2352
- exports.StoreAsync = storeAsync_1.StoreAsync;
2092
+ Object.defineProperty(exports, "StoreAsync", ({ enumerable: true, get: function () { return storeAsync_1.StoreAsync; } }));
2353
2093
  var observableScope_1 = __webpack_require__(/*! ./Tree/observableScope */ "./src/Store/Tree/observableScope.ts");
2354
- exports.ObservableScope = observableScope_1.ObservableScope;
2094
+ Object.defineProperty(exports, "ObservableScope", ({ enumerable: true, get: function () { return observableScope_1.ObservableScope; } }));
2355
2095
 
2356
2096
 
2357
2097
  /***/ }),
@@ -2360,12 +2100,11 @@ exports.ObservableScope = observableScope_1.ObservableScope;
2360
2100
  /*!********************************!*\
2361
2101
  !*** ./src/Utils/animation.ts ***!
2362
2102
  \********************************/
2363
- /*! no static exports found */
2364
- /***/ (function(module, exports, __webpack_require__) {
2103
+ /***/ ((__unused_webpack_module, exports) => {
2365
2104
 
2366
- "use strict";
2367
2105
 
2368
- Object.defineProperty(exports, "__esModule", { value: true });
2106
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2107
+ exports.Animation = exports.AnimationType = void 0;
2369
2108
  var StepFunctions;
2370
2109
  (function (StepFunctions) {
2371
2110
  function* EaseIn(count) {
@@ -2387,6 +2126,27 @@ var AnimationType;
2387
2126
  AnimationType[AnimationType["EaseIn"] = 1] = "EaseIn";
2388
2127
  })(AnimationType = exports.AnimationType || (exports.AnimationType = {}));
2389
2128
  class Animation {
2129
+ type;
2130
+ frameCount;
2131
+ frameTimings;
2132
+ update;
2133
+ animationTimeouts;
2134
+ running;
2135
+ start;
2136
+ end;
2137
+ enabled;
2138
+ get Running() {
2139
+ return this.running;
2140
+ }
2141
+ get Start() {
2142
+ return this.start;
2143
+ }
2144
+ get End() {
2145
+ return this.end;
2146
+ }
2147
+ get Enabled() {
2148
+ return this.enabled;
2149
+ }
2390
2150
  constructor(type, duration, update) {
2391
2151
  this.running = false;
2392
2152
  this.start = null;
@@ -2401,18 +2161,6 @@ class Animation {
2401
2161
  this.update = update;
2402
2162
  this.animationTimeouts = [];
2403
2163
  }
2404
- get Running() {
2405
- return this.running;
2406
- }
2407
- get Start() {
2408
- return this.start;
2409
- }
2410
- get End() {
2411
- return this.end;
2412
- }
2413
- get Enabled() {
2414
- return this.enabled;
2415
- }
2416
2164
  Animate(start, end) {
2417
2165
  if (!this.enabled)
2418
2166
  return;
@@ -2470,18 +2218,15 @@ exports.Animation = Animation;
2470
2218
  /*!*********************************!*\
2471
2219
  !*** ./src/Utils/asyncQueue.ts ***!
2472
2220
  \*********************************/
2473
- /*! no static exports found */
2474
- /***/ (function(module, exports, __webpack_require__) {
2221
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2475
2222
 
2476
- "use strict";
2477
2223
 
2478
- Object.defineProperty(exports, "__esModule", { value: true });
2224
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2225
+ exports.AsyncQueue = void 0;
2479
2226
  const list_1 = __webpack_require__(/*! ./list */ "./src/Utils/list.ts");
2480
2227
  class AsyncQueue {
2481
- constructor() {
2482
- this.running = false;
2483
- this.queue = list_1.List.Create();
2484
- }
2228
+ running = false;
2229
+ queue = list_1.List.Create();
2485
2230
  Next(callback) {
2486
2231
  const ret = new Promise((resolve, reject) => {
2487
2232
  list_1.List.Add(this.queue, async function () {
@@ -2525,12 +2270,11 @@ exports.AsyncQueue = AsyncQueue;
2525
2270
  /*!*********************************!*\
2526
2271
  !*** ./src/Utils/decorators.ts ***!
2527
2272
  \*********************************/
2528
- /*! no static exports found */
2529
- /***/ (function(module, exports, __webpack_require__) {
2273
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
2530
2274
 
2531
- "use strict";
2532
2275
 
2533
- Object.defineProperty(exports, "__esModule", { value: true });
2276
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2277
+ exports.PreReq = exports.PreReqTemplate = exports.Destroy = exports.Inject = exports.ComputedAsync = exports.Computed = exports.DestroyScope = exports.Scope = exports.StateAsync = exports.StateSync = exports.State = void 0;
2534
2278
  const store_1 = __webpack_require__(/*! ../Store/Store/store */ "./src/Store/Store/store.ts");
2535
2279
  const Store_1 = __webpack_require__(/*! ../Store */ "./src/Store/index.ts");
2536
2280
  const observableScope_1 = __webpack_require__(/*! ../Store/Tree/observableScope */ "./src/Store/Tree/observableScope.ts");
@@ -2836,12 +2580,11 @@ function PreReqDecorator(target, propertyKey) {
2836
2580
  /*!******************************!*\
2837
2581
  !*** ./src/Utils/emitter.ts ***!
2838
2582
  \******************************/
2839
- /*! no static exports found */
2840
- /***/ (function(module, exports, __webpack_require__) {
2583
+ /***/ ((__unused_webpack_module, exports) => {
2841
2584
 
2842
- "use strict";
2843
2585
 
2844
- Object.defineProperty(exports, "__esModule", { value: true });
2586
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2587
+ exports.Emitter = void 0;
2845
2588
  var Emitter;
2846
2589
  (function (Emitter) {
2847
2590
  function Create() {
@@ -2871,17 +2614,26 @@ var Emitter;
2871
2614
  /*!****************************!*\
2872
2615
  !*** ./src/Utils/index.ts ***!
2873
2616
  \****************************/
2874
- /*! no static exports found */
2875
- /***/ (function(module, exports, __webpack_require__) {
2617
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
2876
2618
 
2877
- "use strict";
2878
2619
 
2879
- function __export(m) {
2880
- for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
2881
- }
2882
- Object.defineProperty(exports, "__esModule", { value: true });
2883
- __export(__webpack_require__(/*! ./decorators */ "./src/Utils/decorators.ts"));
2884
- __export(__webpack_require__(/*! ./animation */ "./src/Utils/animation.ts"));
2620
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2621
+ if (k2 === undefined) k2 = k;
2622
+ var desc = Object.getOwnPropertyDescriptor(m, k);
2623
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
2624
+ desc = { enumerable: true, get: function() { return m[k]; } };
2625
+ }
2626
+ Object.defineProperty(o, k2, desc);
2627
+ }) : (function(o, m, k, k2) {
2628
+ if (k2 === undefined) k2 = k;
2629
+ o[k2] = m[k];
2630
+ }));
2631
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
2632
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
2633
+ };
2634
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2635
+ __exportStar(__webpack_require__(/*! ./decorators */ "./src/Utils/decorators.ts"), exports);
2636
+ __exportStar(__webpack_require__(/*! ./animation */ "./src/Utils/animation.ts"), exports);
2885
2637
 
2886
2638
 
2887
2639
  /***/ }),
@@ -2890,13 +2642,14 @@ __export(__webpack_require__(/*! ./animation */ "./src/Utils/animation.ts"));
2890
2642
  /*!*******************************!*\
2891
2643
  !*** ./src/Utils/injector.ts ***!
2892
2644
  \*******************************/
2893
- /*! no static exports found */
2894
- /***/ (function(module, exports, __webpack_require__) {
2645
+ /***/ ((__unused_webpack_module, exports) => {
2895
2646
 
2896
- "use strict";
2897
2647
 
2898
- Object.defineProperty(exports, "__esModule", { value: true });
2648
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2649
+ exports.Injector = void 0;
2899
2650
  class Injector {
2651
+ parent;
2652
+ typeMap;
2900
2653
  constructor() {
2901
2654
  this.parent = Injector.Current();
2902
2655
  this.typeMap = new Map();
@@ -2936,12 +2689,11 @@ exports.Injector = Injector;
2936
2689
  /*!***************************!*\
2937
2690
  !*** ./src/Utils/list.ts ***!
2938
2691
  \***************************/
2939
- /*! no static exports found */
2940
- /***/ (function(module, exports, __webpack_require__) {
2692
+ /***/ ((__unused_webpack_module, exports) => {
2941
2693
 
2942
- "use strict";
2943
2694
 
2944
- Object.defineProperty(exports, "__esModule", { value: true });
2695
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2696
+ exports.List = void 0;
2945
2697
  var List;
2946
2698
  (function (List) {
2947
2699
  function Create() {
@@ -3067,12 +2819,11 @@ var List;
3067
2819
  /*!*****************************!*\
3068
2820
  !*** ./src/Utils/thread.ts ***!
3069
2821
  \*****************************/
3070
- /*! no static exports found */
3071
- /***/ (function(module, exports, __webpack_require__) {
2822
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3072
2823
 
3073
- "use strict";
3074
2824
 
3075
- Object.defineProperty(exports, "__esModule", { value: true });
2825
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2826
+ exports.ThreadAsync = exports.Thread = exports.Synch = exports.Callback = exports.After = exports.Schedule = void 0;
3076
2827
  const list_1 = __webpack_require__(/*! ./list */ "./src/Utils/list.ts");
3077
2828
  const workTimeMs = 16;
3078
2829
  const contextQueue = list_1.List.Create();
@@ -3186,14 +2937,13 @@ exports.ThreadAsync = ThreadAsync;
3186
2937
  /*!**********************!*\
3187
2938
  !*** ./src/index.ts ***!
3188
2939
  \**********************/
3189
- /*! no static exports found */
3190
- /***/ (function(module, exports, __webpack_require__) {
2940
+ /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
3191
2941
 
3192
- "use strict";
3193
2942
 
3194
- Object.defineProperty(exports, "__esModule", { value: true });
2943
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2944
+ exports.Component = void 0;
3195
2945
  var component_1 = __webpack_require__(/*! ./Node/component */ "./src/Node/component.ts");
3196
- exports.Component = component_1.Component;
2946
+ Object.defineProperty(exports, "Component", ({ enumerable: true, get: function () { return component_1.Component; } }));
3197
2947
 
3198
2948
 
3199
2949
  /***/ }),
@@ -3202,42 +2952,78 @@ exports.Component = component_1.Component;
3202
2952
  /*!***************************!*\
3203
2953
  !*** ./src/web.export.ts ***!
3204
2954
  \***************************/
3205
- /*! no static exports found */
3206
- /***/ (function(module, exports, __webpack_require__) {
2955
+ /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
3207
2956
 
3208
- "use strict";
3209
2957
 
3210
- function __export(m) {
3211
- for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
3212
- }
3213
- Object.defineProperty(exports, "__esModule", { value: true });
3214
- __export(__webpack_require__(/*! ./index */ "./src/index.ts"));
3215
- __export(__webpack_require__(/*! ./Utils */ "./src/Utils/index.ts"));
2958
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
2959
+ if (k2 === undefined) k2 = k;
2960
+ var desc = Object.getOwnPropertyDescriptor(m, k);
2961
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
2962
+ desc = { enumerable: true, get: function() { return m[k]; } };
2963
+ }
2964
+ Object.defineProperty(o, k2, desc);
2965
+ }) : (function(o, m, k, k2) {
2966
+ if (k2 === undefined) k2 = k;
2967
+ o[k2] = m[k];
2968
+ }));
2969
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
2970
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
2971
+ };
2972
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
2973
+ exports.StoreAsync = exports.Store = exports.ObservableScope = void 0;
2974
+ __exportStar(__webpack_require__(/*! ./index */ "./src/index.ts"), exports);
2975
+ __exportStar(__webpack_require__(/*! ./Utils */ "./src/Utils/index.ts"), exports);
3216
2976
  var Store_1 = __webpack_require__(/*! ./Store */ "./src/Store/index.ts");
3217
- exports.ObservableScope = Store_1.ObservableScope;
3218
- exports.Store = Store_1.Store;
3219
- exports.StoreAsync = Store_1.StoreAsync;
3220
- __export(__webpack_require__(/*! ./DOM */ "./src/DOM/index.ts"));
2977
+ Object.defineProperty(exports, "ObservableScope", ({ enumerable: true, get: function () { return Store_1.ObservableScope; } }));
2978
+ Object.defineProperty(exports, "Store", ({ enumerable: true, get: function () { return Store_1.Store; } }));
2979
+ Object.defineProperty(exports, "StoreAsync", ({ enumerable: true, get: function () { return Store_1.StoreAsync; } }));
2980
+ __exportStar(__webpack_require__(/*! ./DOM */ "./src/DOM/index.ts"), exports);
3221
2981
 
3222
2982
 
3223
- /***/ }),
2983
+ /***/ })
3224
2984
 
3225
- /***/ "./src/web.ts":
2985
+ /******/ });
2986
+ /************************************************************************/
2987
+ /******/ // The module cache
2988
+ /******/ var __webpack_module_cache__ = {};
2989
+ /******/
2990
+ /******/ // The require function
2991
+ /******/ function __webpack_require__(moduleId) {
2992
+ /******/ // Check if module is in cache
2993
+ /******/ var cachedModule = __webpack_module_cache__[moduleId];
2994
+ /******/ if (cachedModule !== undefined) {
2995
+ /******/ return cachedModule.exports;
2996
+ /******/ }
2997
+ /******/ // Create a new module (and put it into the cache)
2998
+ /******/ var module = __webpack_module_cache__[moduleId] = {
2999
+ /******/ // no module.id needed
3000
+ /******/ // no module.loaded needed
3001
+ /******/ exports: {}
3002
+ /******/ };
3003
+ /******/
3004
+ /******/ // Execute the module function
3005
+ /******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
3006
+ /******/
3007
+ /******/ // Return the exports of the module
3008
+ /******/ return module.exports;
3009
+ /******/ }
3010
+ /******/
3011
+ /************************************************************************/
3012
+ var __webpack_exports__ = {};
3013
+ // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
3014
+ (() => {
3015
+ var exports = __webpack_exports__;
3226
3016
  /*!********************!*\
3227
3017
  !*** ./src/web.ts ***!
3228
3018
  \********************/
3229
- /*! no static exports found */
3230
- /***/ (function(module, exports, __webpack_require__) {
3231
-
3232
- "use strict";
3233
3019
 
3234
- Object.defineProperty(exports, "__esModule", { value: true });
3020
+ Object.defineProperty(exports, "__esModule", ({ value: true }));
3235
3021
  const Web = __webpack_require__(/*! ./web.export */ "./src/web.export.ts");
3236
3022
  for (var key in Web)
3237
3023
  window[key] = Web[key];
3238
3024
 
3025
+ })();
3239
3026
 
3240
- /***/ })
3241
-
3242
- /******/ });
3027
+ /******/ })()
3028
+ ;
3243
3029
  //# sourceMappingURL=jTemplates.js.map