@reidelsaltres/pureper 0.2.14 → 0.2.15

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 (31) hide show
  1. package/out/foundation/Theme.d.ts.map +1 -1
  2. package/out/foundation/Theme.js +16 -1
  3. package/out/foundation/Theme.js.map +1 -1
  4. package/out/foundation/component_api/Component.d.ts.map +1 -1
  5. package/out/foundation/component_api/Component.js +1 -0
  6. package/out/foundation/component_api/Component.js.map +1 -1
  7. package/out/foundation/component_api/UniHtml.d.ts +1 -0
  8. package/out/foundation/component_api/UniHtml.d.ts.map +1 -1
  9. package/out/foundation/component_api/UniHtml.js +9 -2
  10. package/out/foundation/component_api/UniHtml.js.map +1 -1
  11. package/out/foundation/engine/Expression.d.ts +2 -0
  12. package/out/foundation/engine/Expression.d.ts.map +1 -1
  13. package/out/foundation/engine/Expression.js +26 -11
  14. package/out/foundation/engine/Expression.js.map +1 -1
  15. package/out/foundation/engine/StylePreprocessor.js +2 -1
  16. package/out/foundation/engine/StylePreprocessor.js.map +1 -1
  17. package/out/foundation/engine/TemplateEngine.d.ts +3 -1
  18. package/out/foundation/engine/TemplateEngine.d.ts.map +1 -1
  19. package/out/foundation/engine/TemplateEngine.js +44 -15
  20. package/out/foundation/engine/TemplateEngine.js.map +1 -1
  21. package/out/foundation/worker/Router.d.ts.map +1 -1
  22. package/out/foundation/worker/Router.js +6 -0
  23. package/out/foundation/worker/Router.js.map +1 -1
  24. package/package.json +1 -1
  25. package/src/foundation/Theme.ts +17 -3
  26. package/src/foundation/component_api/Component.ts +1 -0
  27. package/src/foundation/component_api/UniHtml.ts +9 -2
  28. package/src/foundation/engine/Expression.ts +34 -20
  29. package/src/foundation/engine/StylePreprocessor.ts +1 -1
  30. package/src/foundation/engine/TemplateEngine.ts +42 -15
  31. package/src/foundation/worker/Router.ts +10 -3
@@ -1 +1 @@
1
- {"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../src/foundation/Theme.ts"],"names":[],"mappings":"AAEA,eAAO,IAAI,gBAAgB,QAAU,CAAC;AACtC,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAI,OAAO,CAAC,MAAM,CAAC,CAG9D;AACD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAI,OAAO,CAAC,aAAa,CAAC,CAK9E;AACD,wBAAsB,IAAI,kBAOzB;AACD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,iBAM1C"}
1
+ {"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../../src/foundation/Theme.ts"],"names":[],"mappings":"AAEA,eAAO,IAAI,gBAAgB,QAAU,CAAC;AAGtC,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7D;AACD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAK7E;AACD,wBAAsB,IAAI,kBAOzB;AACD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,iBAkB1C"}
@@ -1,5 +1,6 @@
1
1
  import Fetcher from "./Fetcher.js";
2
2
  export let ACTIVE_THEME_KEY = "Empty";
3
+ let activeThemeSheet = null;
3
4
  export async function loadTheme(name) {
4
5
  // Use hosting-root absolute path so GitHub Pages subfolder deployments (e.g. /Hellper/) keep the subfolder.
5
6
  return Fetcher.fetchText(`/resources/${name}.theme.css`);
@@ -24,6 +25,20 @@ export async function setTheme(name) {
24
25
  theme = theme.replace(/\.[\w-]+-theme/g, ":root");
25
26
  const sheet = new CSSStyleSheet();
26
27
  sheet.replaceSync(theme);
27
- document.adoptedStyleSheets = [...document.adoptedStyleSheets, sheet];
28
+ if (activeThemeSheet) {
29
+ const index = document.adoptedStyleSheets.indexOf(activeThemeSheet);
30
+ if (index !== -1) {
31
+ const sheets = [...document.adoptedStyleSheets];
32
+ sheets[index] = sheet;
33
+ document.adoptedStyleSheets = sheets;
34
+ }
35
+ else {
36
+ document.adoptedStyleSheets = [...document.adoptedStyleSheets, sheet];
37
+ }
38
+ }
39
+ else {
40
+ document.adoptedStyleSheets = [...document.adoptedStyleSheets, sheet];
41
+ }
42
+ activeThemeSheet = sheet;
28
43
  }
29
44
  //# sourceMappingURL=Theme.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Theme.js","sourceRoot":"","sources":["../../src/foundation/Theme.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,MAAM,CAAC,IAAI,gBAAgB,GAAG,OAAO,CAAC;AACtC,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY;IACxC,4GAA4G;IAC5G,OAAO,OAAO,CAAC,SAAS,CAAC,cAAc,IAAI,YAAY,CAAC,CAAC;AAC7D,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACjD,IAAI,KAAK,GAAW,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;IAClC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO,KAAK,CAAC;AACjB,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,IAAI;IACtB,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,gBAAgB,EAAE,CAAC;QACnB,MAAM,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACJ,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;AACL,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAY;IACvC,IAAI,KAAK,GAAW,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;IAClC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzB,QAAQ,CAAC,kBAAkB,GAAG,CAAC,GAAG,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"Theme.js","sourceRoot":"","sources":["../../src/foundation/Theme.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,MAAM,CAAC,IAAI,gBAAgB,GAAG,OAAO,CAAC;AACtC,IAAI,gBAAgB,GAAyB,IAAI,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAY;IACxC,4GAA4G;IAC5G,OAAO,OAAO,CAAC,SAAS,CAAC,cAAc,IAAI,YAAY,CAAC,CAAC;AAC7D,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY;IACjD,IAAI,KAAK,GAAW,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;IAClC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzB,OAAO,KAAK,CAAC;AACjB,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,IAAI;IACtB,gBAAgB,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,gBAAgB,EAAE,CAAC;QACnB,MAAM,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACJ,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;AACL,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAY;IACvC,IAAI,KAAK,GAAW,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,IAAI,aAAa,EAAE,CAAC;IAClC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACzB,IAAI,gBAAgB,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACpE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;YACtB,QAAQ,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACzC,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,kBAAkB,GAAG,CAAC,GAAG,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QAC1E,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,QAAQ,CAAC,kBAAkB,GAAG,CAAC,GAAG,QAAQ,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;IAC1E,CAAC;IACD,gBAAgB,GAAG,KAAK,CAAC;AAC7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Component.d.ts","sourceRoot":"","sources":["../../../src/foundation/component_api/Component.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAS,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,OAAO,WAAW,SAAU,SAAQ,OAAO,EAAE,WAAW,EAAE,OAAO;CAAI;;;;;;;AAC5E,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,cAA2C,YAAW,iBAAiB;IAC1G,OAAO,CAAC,WAAW,CAAmB;IAEtC,OAAO,CAAC,0BAA0B,CAAC,CAA2D;;IAQ9F,WAAW,IAAI,IAAI;IAGnB,cAAc,IAAI,IAAI;IAGtB,OAAO,IAAI,IAAI;IAGf,SAAS,IAAI,IAAI;IAIjB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAGpE,0BAA0B,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAKhG;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhG;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAG5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAG7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAGvB;;OAEG;IACH,OAAO,CAAC,wBAAwB;CAInC;AAED,MAAM,WAAW,iBAAiB;IAC9B,WAAW,IAAI,IAAI,CAAC;IACpB,cAAc,IAAI,IAAI,CAAC;IACvB,OAAO,IAAI,IAAI,CAAC;IAChB,SAAS,IAAI,IAAI,CAAC;IAElB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;CACxE;AAED,MAAM,WAAW,wBAAwB;IACrC,iBAAiB,IAAI,IAAI,CAAC;IAC1B,oBAAoB,IAAI,IAAI,CAAC;IAC7B,qBAAqB,IAAI,IAAI,CAAC;IAC9B,eAAe,IAAI,IAAI,CAAC;IAExB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;CAC9E"}
1
+ {"version":3,"file":"Component.d.ts","sourceRoot":"","sources":["../../../src/foundation/component_api/Component.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAS,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,CAAC,OAAO,WAAW,SAAU,SAAQ,OAAO,EAAE,WAAW,EAAE,OAAO;CAAI;;;;;;;AAC5E,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,cAA2C,YAAW,iBAAiB;IAC1G,OAAO,CAAC,WAAW,CAAmB;IAEtC,OAAO,CAAC,0BAA0B,CAAC,CAA2D;;IAQ9F,WAAW,IAAI,IAAI;IAGnB,cAAc,IAAI,IAAI;IAGtB,OAAO,IAAI,IAAI;IAGf,SAAS,IAAI,IAAI;IAIjB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAGpE,0BAA0B,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAKhG;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhG;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAG7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAGvB;;OAEG;IACH,OAAO,CAAC,wBAAwB;CAInC;AAED,MAAM,WAAW,iBAAiB;IAC9B,WAAW,IAAI,IAAI,CAAC;IACpB,cAAc,IAAI,IAAI,CAAC;IACvB,OAAO,IAAI,IAAI,CAAC;IAChB,SAAS,IAAI,IAAI,CAAC;IAElB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;CACxE;AAED,MAAM,WAAW,wBAAwB;IACrC,iBAAiB,IAAI,IAAI,CAAC;IAC1B,oBAAoB,IAAI,IAAI,CAAC;IAC7B,qBAAqB,IAAI,IAAI,CAAC;IAC9B,eAAe,IAAI,IAAI,CAAC;IAExB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;CAC9E"}
@@ -54,6 +54,7 @@ export default class Component extends Class(HTMLElement).extend(UniHtml).build(
54
54
  */
55
55
  disconnectedCallback() {
56
56
  this.onDisconnected();
57
+ this.dispose();
57
58
  }
58
59
  /**
59
60
  * @deprecated Use onMoved instead.
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../../src/foundation/component_api/Component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../../src/foundation/component_api/Component.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { TemplateHolder } from "../engine/TemplateEngine.js";
6
6
  */
7
7
  export default class UniHtml {
8
8
  _status: Observable<"constructed" | "loading" | "ready">;
9
+ protected _templateHolder?: TemplateHolder;
9
10
  /**
10
11
  * Unified component lifecycle entrypoint.
11
12
  * Loads HTML, then calls preLoadJS, render, and postLoadJS hooks in order.
@@ -1 +1 @@
1
- {"version":3,"file":"UniHtml.d.ts","sourceRoot":"","sources":["../../../src/foundation/component_api/UniHtml.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IACjB,OAAO,EAAE,UAAU,CAAC,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC,CAAiC;IAEhG;;;;OAIG;IACU,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAqBrD,SAAS;YAGT,KAAK;cAIH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACxC;;;;;OAKG;cACa,OAAO,CAAC,MAAM,EAAE,cAAc;IAC9C;;;;;OAKG;cACa,QAAQ,CAAC,MAAM,EAAE,cAAc;IAC/C;;;;;OAKG;cACa,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B9F,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CACxC"}
1
+ {"version":3,"file":"UniHtml.d.ts","sourceRoot":"","sources":["../../../src/foundation/component_api/UniHtml.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IACjB,OAAO,EAAE,UAAU,CAAC,aAAa,GAAG,SAAS,GAAG,OAAO,CAAC,CAAiC;IAChG,SAAS,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC;IAE3C;;;;OAIG;IACU,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAsBrD,SAAS;YAGT,KAAK;cAIH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACxC;;;;;OAKG;cACa,OAAO,CAAC,MAAM,EAAE,cAAc;IAC9C;;;;;OAKG;cACa,QAAQ,CAAC,MAAM,EAAE,cAAc;IAC/C;;;;;OAKG;cACa,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B9F,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAMxC"}
@@ -5,6 +5,7 @@ import Observable from "../api/Observer.js";
5
5
  */
6
6
  export default class UniHtml {
7
7
  _status = new Observable("constructed");
8
+ _templateHolder;
8
9
  /**
9
10
  * Unified component lifecycle entrypoint.
10
11
  * Loads HTML, then calls preLoadJS, render, and postLoadJS hooks in order.
@@ -19,6 +20,7 @@ export default class UniHtml {
19
20
  // Для компонентов (UniHtmlComponent) на этом этапе ещё нельзя полагаться на this.shadowRoot —
20
21
  // используйте переданный localRoot для подготовки DOM, данных и навешивания обработчиков.
21
22
  // Это предпочтительный этап инициализации для компонентов.
23
+ this._templateHolder = html;
22
24
  await this.preLoad(html);
23
25
  // render() отвечает за помещение содержимого из localRoot в конечную цель (renderTarget).
24
26
  // В UniHtmlComponent.render() после вызова базового render() происходит добавление wrapper в shadowRoot.
@@ -71,13 +73,18 @@ export default class UniHtml {
71
73
  resolve();
72
74
  }
73
75
  };
74
- child.addEventListener("status-change", (e) => handler(e));
76
+ child.addEventListener("status-change", handler);
75
77
  });
76
78
  promises.push(promise);
77
79
  }
78
80
  holder.pushTo(renderTarget);
79
81
  return Promise.all(promises).then(() => { return; });
80
82
  }
81
- async dispose() { }
83
+ async dispose() {
84
+ if (this._templateHolder) {
85
+ this._templateHolder.engine.dispose();
86
+ this._templateHolder = undefined;
87
+ }
88
+ }
82
89
  }
83
90
  //# sourceMappingURL=UniHtml.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UniHtml.js","sourceRoot":"","sources":["../../../src/foundation/component_api/UniHtml.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAI5C;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IACjB,OAAO,GAAoD,IAAI,UAAU,CAAC,aAAa,CAAC,CAAC;IAEhG;;;;OAIG;IACI,KAAK,CAAC,IAAI,CAAC,OAAiC;QAC/C,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErB,MAAM,OAAO,GAAmB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnD,MAAM,IAAI,GAAmB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE3D,gEAAgE;QAChE,8FAA8F;QAC9F,0FAA0F;QAC1F,2DAA2D;QAC3D,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,0FAA0F;QAC1F,yGAAyG;QACzG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjC,iGAAiG;QACjG,6FAA6F;QAC7F,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,IAAoB;QACxC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IACO,KAAK,CAAC,KAAK;QACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAES,KAAK,CAAC,OAAO,KAAoB,CAAC;IAC5C;;;;;OAKG;IACO,KAAK,CAAC,OAAO,CAAC,MAAsB,IAAI,CAAC;IACnD;;;;;OAKG;IACO,KAAK,CAAC,QAAQ,CAAC,MAAsB,IAAI,CAAC;IACpD;;;;;OAKG;IACO,KAAK,CAAC,MAAM,CAAC,MAAsB,EAAE,YAA4C;QACvF,OAAO,YAAY,CAAC,UAAU,EAAE,CAAC;YAC7B,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC;QACrD,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAC1C,IAAI,CAAC,KAAK,YAAY,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,OAAO;oBACnE,OAAO,OAAO,EAAE,CAAC;gBAErB,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE;oBAClB,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;wBAC9B,KAAK,CAAC,mBAAmB,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;wBACpD,OAAO,EAAE,CAAC;oBACd,CAAC;gBACL,CAAC,CAAC;gBACF,KAAK,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAE5B,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,OAAO,KAAoB,CAAC;CAC5C"}
1
+ {"version":3,"file":"UniHtml.js","sourceRoot":"","sources":["../../../src/foundation/component_api/UniHtml.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,8 @@ export default class Expression {
16
16
  private readonly code;
17
17
  private readonly isAsync;
18
18
  private readonly hasReturn;
19
+ private static fnCache;
20
+ private static readonly FN_CACHE_MAX;
19
21
  constructor(code: string);
20
22
  /**
21
23
  * Определить, содержит ли код await
@@ -1 +1 @@
1
- {"version":3,"file":"Expression.d.ts","sourceRoot":"","sources":["../../../src/foundation/engine/Expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,UAA4B,MAAM,oBAAoB,CAAC;AAG9D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;gBAExB,IAAI,EAAE,MAAM;IAMxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACI,OAAO,IAAI,MAAM;IAIxB;;;OAGG;IACI,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE;IAmBvD;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;;OAGG;IACI,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAqB1C;;;;;OAKG;IACI,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;IAkBlE;;OAEG;IACU,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAgBtF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmDxB;;OAEG;YACW,qBAAqB;IAkDnC;;OAEG;IACI,iBAAiB,IAAI,OAAO;IAInC;;OAEG;IACI,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAO9E;;OAEG;WACW,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;IAKxF;;OAEG;WACiB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;CAI/G"}
1
+ {"version":3,"file":"Expression.d.ts","sourceRoot":"","sources":["../../../src/foundation/engine/Expression.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,UAA4B,MAAM,oBAAoB,CAAC;AAG9D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IAEpC,OAAO,CAAC,MAAM,CAAC,OAAO,CAA+B;IACrD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAO;gBAE/B,IAAI,EAAE,MAAM;IAMxB;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACI,OAAO,IAAI,MAAM;IAIxB;;;OAGG;IACI,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE;IAmBvD;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA4B1B;;;OAGG;IACI,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAqB1C;;;;;OAKG;IACI,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;IAkBlE;;OAEG;IACU,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;IAgBtF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8DxB;;OAEG;YACW,qBAAqB;IAkDnC;;OAEG;IACI,iBAAiB,IAAI,OAAO;IAInC;;OAEG;IACI,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAO9E;;OAEG;WACW,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;IAKxF;;OAEG;WACiB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;CAI/G"}
@@ -15,6 +15,8 @@ export default class Expression {
15
15
  code;
16
16
  isAsync;
17
17
  hasReturn;
18
+ static fnCache = new Map();
19
+ static FN_CACHE_MAX = 500;
18
20
  constructor(code) {
19
21
  this.code = code.trim();
20
22
  this.isAsync = this.detectAsync(this.code);
@@ -180,21 +182,34 @@ export default class Expression {
180
182
  functionBody = `return (${codeToExecute})`;
181
183
  }
182
184
  try {
183
- // Create function with context variables as parameters
184
- const fn = new Function(...keys, functionBody);
185
- return fn.apply(null, values);
186
- }
187
- catch (syntaxError) {
188
- // If implicit return fails, try without it (for statements)
189
- if (!this.hasReturn) {
185
+ const cacheKey = keys.join('\0') + '\0' + functionBody;
186
+ let fn = Expression.fnCache.get(cacheKey);
187
+ if (!fn) {
190
188
  try {
191
- const fn = new Function(...keys, codeToExecute);
192
- return fn.apply(null, values);
189
+ fn = new Function(...keys, functionBody);
193
190
  }
194
- catch {
195
- throw syntaxError;
191
+ catch (syntaxError) {
192
+ if (!this.hasReturn) {
193
+ try {
194
+ fn = new Function(...keys, codeToExecute);
195
+ }
196
+ catch {
197
+ throw syntaxError;
198
+ }
199
+ }
200
+ else {
201
+ throw syntaxError;
202
+ }
203
+ }
204
+ if (Expression.fnCache.size >= Expression.FN_CACHE_MAX) {
205
+ const firstKey = Expression.fnCache.keys().next().value;
206
+ Expression.fnCache.delete(firstKey);
196
207
  }
208
+ Expression.fnCache.set(cacheKey, fn);
197
209
  }
210
+ return fn.apply(null, values);
211
+ }
212
+ catch (syntaxError) {
198
213
  throw syntaxError;
199
214
  }
200
215
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Expression.js","sourceRoot":"","sources":["../../../src/foundation/engine/Expression.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Expression.js","sourceRoot":"","sources":["../../../src/foundation/engine/Expression.ts"],"names":[],"mappings":"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"}
@@ -130,7 +130,8 @@ export default class StylePreprocessor {
130
130
  while (result) {
131
131
  ast.push(result.node);
132
132
  result = rule.walk(walker, tokens, data);
133
- tokens = result.tokens;
133
+ if (result)
134
+ tokens = result.tokens;
134
135
  }
135
136
  }
136
137
  return ast;
@@ -1 +1 @@
1
- {"version":3,"file":"StylePreprocessor.js","sourceRoot":"","sources":["../../../src/foundation/engine/StylePreprocessor.ts"],"names":[],"mappings":"AA8BA,MAAM,QAAQ,GAAyB;IACnC,IAAI,CAAC,MAAyB,EAAE,MAAe,EAAE,IAAY;QACzD,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACzC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QAC5C,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,IAAI,CAAC;QAEjD,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QAE3C,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC;QAE5G,MAAM,UAAU,GAAY,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAE9D,MAAM,WAAW,GAAgB;YAC7B,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,KAAK,CAAC,KAAK;YAChB,QAAQ,EAAE,eAAe;SAC5B,CAAA;QAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC;IAC5E,CAAC;CACJ,CAAA;AACD,MAAM,OAAO,GAAyB;IAClC,IAAI,CAAC,MAAyB,EAAE,MAAe,EAAE,IAAY;QACzD,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACzC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QAC5C,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,IAAI,CAAC;QAEjD,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAE1C,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC;QAE5G,MAAM,UAAU,GAAY,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;QAC7D,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAE9D,MAAM,WAAW,GAAgB;YAC7B,IAAI,EAAE,IAAI;YACV,GAAG,EAAE,KAAK,CAAC,KAAK;YAChB,QAAQ,EAAE,eAAe;SAC5B,CAAA;QAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC;IAC5E,CAAC;CACJ,CAAA;AAGD,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACd;IAAyB;IAA7C,YAAoB,MAAe,EAAU,MAAM,CAAC;QAAhC,WAAM,GAAN,MAAM,CAAS;QAAU,QAAG,GAAH,GAAG,CAAI;IAAI,CAAC;IAEjD,KAAK,CAAC,IAAmB;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;IAChD,CAAC;IACO,OAAO,CAA0B,IAAO;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAChC,MAAM,IAAI,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,OAAO,KAAoC,CAAC;IAChD,CAAC;IAEM,MAAM,CAAC,QAAQ,CAAC,GAAW;QAC9B,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,CAAC;QAEV,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,OAAO,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YAEjB,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;gBACf,CAAC,EAAE,CAAC;gBACJ,SAAS;YACb,CAAC;YACD,IAAI,CAAC,KAAK,GAAG;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;iBACnE,IAAI,CAAC,KAAK,GAAG;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;iBACzE,IAAI,CAAC,KAAK,GAAG;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;iBACpF,IAAI,CAAC,KAAK,GAAG;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;iBACrF,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACjB,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAAE,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACjD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;gBACnC,CAAC;gBACD,CAAC,EAAE,CAAC;YACR,CAAC;iBACI,IAAI,CAAC,KAAK,GAAG;gBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;iBAClD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;gBACjB,CAAC,EAAE,CAAC;gBACJ,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,OAAO,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAAE,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBAClD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACzC,SAAS;YACb,CAAC;iBAAM,CAAC;gBACJ,IAAI,KAAK,GAAG,EAAE,CAAC;gBACf,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAAE,KAAK,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;gBACnD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACpD,SAAS;YACb,CAAC;YAED,CAAC,EAAE,CAAC;QACR,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IACM,MAAM,CAAC,UAAU,CAAC,GAAW,EAAE,IAAY;QAC9C,MAAM,MAAM,GAAG,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAG7C,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAQ,CAAC,CAAC;IACpE,CAAC;IACM,IAAI,CAAC,MAAyB,EAAE,IAAa,EAAE,IAAY;QAC9D,MAAM,GAAG,GAAW,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAEzD,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC7C,IAAI,MAAM;gBAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAEnC,OAAO,MAAM,EAAE,CAAC;gBACZ,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAEtB,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;gBACzC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YAC3B,CAAC;QACL,CAAC;QAED,OAAO,GAAG,CAAC;IACf,CAAC;CACJ"}
1
+ {"version":3,"file":"StylePreprocessor.js","sourceRoot":"","sources":["../../../src/foundation/engine/StylePreprocessor.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,11 @@ export default class TemplateEngine {
8
8
  private readonly for_component;
9
9
  private readonly if_component;
10
10
  private readonly components;
11
- readonly bindings: Map<Element, () => void>;
11
+ readonly bindings: Map<Node, (() => void)[]>;
12
12
  private readonly onChangeCallbacks;
13
13
  processLogs: string[];
14
+ addBinding(node: Node, cleanup: () => void): void;
15
+ dispose(): void;
14
16
  static fullProcess(root: Node, scope: Scope): string[];
15
17
  static createHolder(markup: string, scope: Scope): TemplateHolder;
16
18
  private change;
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateEngine.d.ts","sourceRoot":"","sources":["../../../src/foundation/engine/TemplateEngine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,YAAY,CAAC;AAE/B,MAAM,CAAC,OAAO,OAAO,cAAc;IAE/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CA0BtB;IACR,OAAO,CAAC,QAAQ,CAAC,aAAa,CAiCtB;IACR,OAAO,CAAC,QAAQ,CAAC,YAAY,CAoBrB;IACR,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAqC5B;IACR,OAAO,CAAC,QAAQ,CAAC,aAAa,CAoCtB;IACR,OAAO,CAAC,QAAQ,CAAC,aAAa,CAmEtB;IACR,OAAO,CAAC,QAAQ,CAAC,YAAY,CAgFrB;IACR,OAAO,CAAC,QAAQ,CAAC,UAAU,CAIzB;IAEF,SAAgB,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAa;IAC/D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsB;IACjD,WAAW,EAAE,MAAM,EAAE,CAAM;WACpB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE;WAK/C,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,cAAc;IAMxE,OAAO,CAAC,MAAM;IAKP,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI;IAG1B,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK;IAkCpC,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAsBpC,OAAO,CAAC,MAAM,CAAC,oBAAoB;CAOtC;AACD,qBAAa,cAAc;IACvB,SAAgB,MAAM,EAAE,cAAc,CAAC;IAChC,gBAAgB,EAAE,WAAW,GAAG,gBAAgB,CAAC;gBAErC,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB;IAKtE,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,gBAAgB,GAAG,IAAI;CAI/D;AACD,qBAAa,MAAM,CAAC,CAAC;IACjB,OAAO,CAAC,oBAAoB,CAA0C;IACtE,OAAO,CAAC,oBAAoB,CAA0C;IAEtE,OAAO,CAAC,IAAI,CAAC,CAAO;IACb,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IACvC,OAAO,CAAC,cAAc,CAAC,CAAoD;IAC3E,OAAO,CAAC,UAAU,CAAS;gBAER,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE;QACtC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;QAChC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAA;KACrE;IAQM,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI;IAiB5G,OAAO,CAAC,WAAW;IAIZ,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI;IAGpD,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI;CAG9D;AACD,MAAM,WAAW,iBAAiB;IAC9B,UAAU,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IACvC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IACtE,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;CAChC"}
1
+ {"version":3,"file":"TemplateEngine.d.ts","sourceRoot":"","sources":["../../../src/foundation/engine/TemplateEngine.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@ export default class TemplateEngine {
23
23
  doWork(context) {
24
24
  context.data.set(context.refName, context.element);
25
25
  this.globalScope.set(context.refName, context.element);
26
- this.engine.bindings.set(context.element, () => {
26
+ this.engine.addBinding(context.element, () => {
27
27
  context.data.delete(context.refName);
28
28
  this.globalScope.delete(context.refName);
29
29
  });
@@ -48,10 +48,12 @@ export default class TemplateEngine {
48
48
  const of = valueExpression.eval(data);
49
49
  const value = of instanceof Observable ? of.getObject() : of;
50
50
  if (of instanceof Observable) {
51
- of.subscribe((newValue) => {
51
+ const handler = (newValue) => {
52
52
  this.engine.change();
53
53
  this.doWork({ element, name: attributeName, value: newValue });
54
- });
54
+ };
55
+ of.subscribe(handler);
56
+ this.engine.addBinding(element, () => of.unsubscribe(handler));
55
57
  }
56
58
  this.doWork({ element, name: attributeName, value });
57
59
  }
@@ -88,6 +90,7 @@ export default class TemplateEngine {
88
90
  handler.eval(data, { event, element });
89
91
  };
90
92
  element.addEventListener(eventName, listener);
93
+ this.engine.addBinding(element, () => element.removeEventListener(eventName, listener));
91
94
  }
92
95
  return false;
93
96
  }
@@ -150,11 +153,13 @@ export default class TemplateEngine {
150
153
  const of = new Expression(vvv).eval(data);
151
154
  const value = of instanceof Observable ? of.getObject() : of;
152
155
  if (of instanceof Observable) {
153
- of.subscribe((newValue) => {
156
+ const handler = (newValue) => {
154
157
  element.textContent = "";
155
158
  this.engine.change();
156
159
  this.doWork({ element, value: newValue, allowHtmlInjection: allowHtmlInjection });
157
- });
160
+ };
161
+ of.subscribe(handler);
162
+ this.engine.addBinding(element, () => of.unsubscribe(handler));
158
163
  }
159
164
  this.doWork({ element, value, allowHtmlInjection: allowHtmlInjection });
160
165
  /*const textNode = document.createTextNode(of);
@@ -189,10 +194,12 @@ export default class TemplateEngine {
189
194
  const of = new Expression(vvv).eval(data);
190
195
  const iterable = of instanceof Observable ? of.getObject() : of;
191
196
  if (of instanceof Observable) {
192
- of.subscribe((newValue) => {
197
+ const handler = (newValue) => {
193
198
  this.engine.change();
194
199
  this.doWork({ element, iterable: newValue, index, value, walker, shadow, data });
195
- });
200
+ };
201
+ of.subscribe(handler);
202
+ this.engine.addBinding(element, () => of.unsubscribe(handler));
196
203
  }
197
204
  this.doWork({ element, iterable: iterable, index, value, walker, shadow, data });
198
205
  }
@@ -208,6 +215,8 @@ export default class TemplateEngine {
208
215
  const shadow = context.shadow;
209
216
  const data = context.data;
210
217
  element.childNodes.forEach(n => this.engine.fullCleanup(n));
218
+ while (element.firstChild)
219
+ element.removeChild(element.firstChild);
211
220
  const lenght = typeof iterable === "number" ? iterable : iterable.length;
212
221
  for (let i = 0; i < lenght; i++) {
213
222
  const z = i;
@@ -259,10 +268,12 @@ export default class TemplateEngine {
259
268
  continue;
260
269
  const condition = new Expression(conditionAtt).eval(data);
261
270
  if (condition instanceof Observable) {
262
- condition.subscribe((newValue) => {
271
+ const handler = (newValue) => {
263
272
  this.engine.change();
264
273
  this.doWork({ walker, data, allParts: allParts });
265
- });
274
+ };
275
+ condition.subscribe(handler);
276
+ this.engine.addBinding(part.element, () => condition.unsubscribe(handler));
266
277
  }
267
278
  }
268
279
  this.doWork({ walker, data, allParts: allParts });
@@ -272,9 +283,9 @@ export default class TemplateEngine {
272
283
  doWork(context) {
273
284
  const { walker, data, allParts } = context;
274
285
  allParts.forEach(part => {
275
- this.engine.fullCleanup(part.element);
276
- /*part.element.childNodes.forEach(n =>
277
- this.engine.fullCleanup(n));*/
286
+ part.element.childNodes.forEach(n => this.engine.fullCleanup(n));
287
+ while (part.element.firstChild)
288
+ part.element.removeChild(part.element.firstChild);
278
289
  });
279
290
  for (const part of allParts) {
280
291
  const conditionAtt = part.element.getAttribute('condition');
@@ -306,6 +317,22 @@ export default class TemplateEngine {
306
317
  bindings = new Map();
307
318
  onChangeCallbacks = [];
308
319
  processLogs = [];
320
+ addBinding(node, cleanup) {
321
+ const existing = this.bindings.get(node);
322
+ if (existing) {
323
+ existing.push(cleanup);
324
+ }
325
+ else {
326
+ this.bindings.set(node, [cleanup]);
327
+ }
328
+ }
329
+ dispose() {
330
+ for (const [, cleanups] of this.bindings) {
331
+ cleanups.forEach(cleanup => cleanup());
332
+ }
333
+ this.bindings.clear();
334
+ this.onChangeCallbacks.length = 0;
335
+ }
309
336
  static fullProcess(root, scope) {
310
337
  const engine = new TemplateEngine();
311
338
  engine.fullProcess(root, scope);
@@ -362,9 +389,11 @@ export default class TemplateEngine {
362
389
  let i = 0;
363
390
  walker.onEnterNode((node, data) => {
364
391
  const element = node;
365
- const binding = this.bindings.get(element);
366
- if (binding)
367
- binding();
392
+ const bindings = this.bindings.get(element);
393
+ if (bindings) {
394
+ bindings.forEach(b => b());
395
+ this.bindings.delete(element);
396
+ }
368
397
  this.processLogs.push((" ").repeat(i) + "layer " + i + " Cleaning up Starting: " + node.nodeName);
369
398
  i++;
370
399
  });
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateEngine.js","sourceRoot":"","sources":["../../../src/foundation/engine/TemplateEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TemplateEngine.js","sourceRoot":"","sources":["../../../src/foundation/engine/TemplateEngine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../../src/foundation/worker/Router.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAElD,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IAEb,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,eAAe,KAAK,CAAC,CAAC;CAC9C;AACD,oBAAY,UAAU;IACpB,OAAO,IAAA;IACP,MAAM,IAAA;IACN,IAAI,IAAA;CACL;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,EAAO,CAAC;AAClC,eAAO,MAAM,QAAQ,EAAE,MAAM,EAAO,CAAC;AAErC,8BAAsB,MAAM;IAC1B,OAAO,CAAC,MAAM,CAAC,WAAW,CAAwB;WAEpC,kBAAkB,CAAC,GAAG,EAAE,GAAG;WAO3B,iBAAiB,IAAI,GAAG,GAAG,IAAI;WAS/B,mBAAmB;WAQnB,aAAa,CAAC,KAAK,EAAE,MAAM;WAO3B,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,GAAE,OAAc;WAmB9C,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK;WAQvB,aAAa,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,eAAe,KAAK,CAAC,EAC5H,cAAc,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAezC,OAAO,CAAC,MAAM,CAAC,UAAU;CAG1B"}
1
+ {"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../../src/foundation/worker/Router.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAElD,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IAEb,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,eAAe,KAAK,CAAC,CAAC;CAC9C;AACD,oBAAY,UAAU;IACpB,OAAO,IAAA;IACP,MAAM,IAAA;IACN,IAAI,IAAA;CACL;AAED,eAAO,MAAM,MAAM,EAAE,KAAK,EAAO,CAAC;AAClC,eAAO,MAAM,QAAQ,EAAE,MAAM,EAAO,CAAC;AAErC,8BAAsB,MAAM;IAC1B,OAAO,CAAC,MAAM,CAAC,WAAW,CAAwB;WAEpC,kBAAkB,CAAC,GAAG,EAAE,GAAG;WAO3B,iBAAiB,IAAI,GAAG,GAAG,IAAI;WAS/B,mBAAmB;WAQnB,aAAa,CAAC,KAAK,EAAE,MAAM;WAO3B,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,GAAE,OAAc;WA0B9C,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK;WAQvB,aAAa,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,EAAE,eAAe,KAAK,CAAC,EAC5H,cAAc,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAezC,OAAO,CAAC,MAAM,CAAC,UAAU;CAG1B"}
@@ -47,6 +47,12 @@ export class Router {
47
47
  try {
48
48
  const found = this.tryFindRoute(urlH);
49
49
  let pageContainer = document.getElementById('page');
50
+ if (this.currentPage) {
51
+ this.currentPage.dispose();
52
+ }
53
+ while (pageContainer.firstChild) {
54
+ pageContainer.removeChild(pageContainer.firstChild);
55
+ }
50
56
  const page = this.createPage(found, urlH.searchParams);
51
57
  this.currentPage = page;
52
58
  page.load(pageContainer);
@@ -1 +1 @@
1
- {"version":3,"file":"Router.js","sourceRoot":"","sources":["../../../src/foundation/worker/Router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Router.js","sourceRoot":"","sources":["../../../src/foundation/worker/Router.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reidelsaltres/pureper",
3
- "version": "0.2.14",
3
+ "version": "0.2.15",
4
4
  "description": "Minimal library extracted from the Pureper SPA foundation — utilities and base classes for components/pages.",
5
5
  "type": "module",
6
6
  "main": "out/src/index.js",
@@ -1,11 +1,13 @@
1
1
  import Fetcher from "./Fetcher.js";
2
2
 
3
3
  export let ACTIVE_THEME_KEY = "Empty";
4
- export async function loadTheme(name: string) : Promise<string> {
4
+ let activeThemeSheet: CSSStyleSheet | null = null;
5
+
6
+ export async function loadTheme(name: string): Promise<string> {
5
7
  // Use hosting-root absolute path so GitHub Pages subfolder deployments (e.g. /Hellper/) keep the subfolder.
6
8
  return Fetcher.fetchText(`/resources/${name}.theme.css`);
7
9
  }
8
- export async function loadThemeAsInstant(name: string) : Promise<CSSStyleSheet> {
10
+ export async function loadThemeAsInstant(name: string): Promise<CSSStyleSheet> {
9
11
  let theme: string = await loadTheme(name);
10
12
  const sheet = new CSSStyleSheet();
11
13
  sheet.replaceSync(theme);
@@ -24,6 +26,18 @@ export async function setTheme(name: string) {
24
26
  theme = theme.replace(/\.[\w-]+-theme/g, ":root");
25
27
  const sheet = new CSSStyleSheet();
26
28
  sheet.replaceSync(theme);
27
- document.adoptedStyleSheets = [...document.adoptedStyleSheets, sheet];
29
+ if (activeThemeSheet) {
30
+ const index = document.adoptedStyleSheets.indexOf(activeThemeSheet);
31
+ if (index !== -1) {
32
+ const sheets = [...document.adoptedStyleSheets];
33
+ sheets[index] = sheet;
34
+ document.adoptedStyleSheets = sheets;
35
+ } else {
36
+ document.adoptedStyleSheets = [...document.adoptedStyleSheets, sheet];
37
+ }
38
+ } else {
39
+ document.adoptedStyleSheets = [...document.adoptedStyleSheets, sheet];
40
+ }
41
+ activeThemeSheet = sheet;
28
42
  }
29
43
 
@@ -71,6 +71,7 @@ export default class Component extends Class(HTMLElement).extend(UniHtml).build(
71
71
  */
72
72
  private disconnectedCallback(): void {
73
73
  this.onDisconnected();
74
+ this.dispose();
74
75
  }
75
76
  /**
76
77
  * @deprecated Use onMoved instead.
@@ -8,6 +8,7 @@ import { TemplateHolder } from "../engine/TemplateEngine.js";
8
8
  */
9
9
  export default class UniHtml {
10
10
  public _status: Observable<"constructed" | "loading" | "ready"> = new Observable("constructed");
11
+ protected _templateHolder?: TemplateHolder;
11
12
 
12
13
  /**
13
14
  * Unified component lifecycle entrypoint.
@@ -25,6 +26,7 @@ export default class UniHtml {
25
26
  // Для компонентов (UniHtmlComponent) на этом этапе ещё нельзя полагаться на this.shadowRoot —
26
27
  // используйте переданный localRoot для подготовки DOM, данных и навешивания обработчиков.
27
28
  // Это предпочтительный этап инициализации для компонентов.
29
+ this._templateHolder = html;
28
30
  await this.preLoad(html);
29
31
  // render() отвечает за помещение содержимого из localRoot в конечную цель (renderTarget).
30
32
  // В UniHtmlComponent.render() после вызова базового render() происходит добавление wrapper в shadowRoot.
@@ -81,7 +83,7 @@ export default class UniHtml {
81
83
  resolve();
82
84
  }
83
85
  };
84
- child.addEventListener("status-change", (e) => handler(e));
86
+ child.addEventListener("status-change", handler);
85
87
  });
86
88
  promises.push(promise);
87
89
  }
@@ -91,5 +93,10 @@ export default class UniHtml {
91
93
  return Promise.all(promises).then(() => { return; });
92
94
  }
93
95
 
94
- public async dispose(): Promise<void> { }
96
+ public async dispose(): Promise<void> {
97
+ if (this._templateHolder) {
98
+ this._templateHolder.engine.dispose();
99
+ this._templateHolder = undefined;
100
+ }
101
+ }
95
102
  }
@@ -19,6 +19,9 @@ export default class Expression {
19
19
  private readonly isAsync: boolean;
20
20
  private readonly hasReturn: boolean;
21
21
 
22
+ private static fnCache = new Map<string, Function>();
23
+ private static readonly FN_CACHE_MAX = 500;
24
+
22
25
  constructor(code: string) {
23
26
  this.code = code.trim();
24
27
  this.isAsync = this.detectAsync(this.code);
@@ -79,7 +82,7 @@ export default class Expression {
79
82
  const identifiers: string[] = [];
80
83
  // Regex для идентификаторов (не после точки)
81
84
  const regex = /(?<![.\w])([a-zA-Z_$][a-zA-Z0-9_$]*)/g;
82
-
85
+
83
86
  // Список встроенных глобальных объектов, которые нужно игнорировать
84
87
  const builtins = new Set([
85
88
  'true', 'false', 'null', 'undefined', 'NaN', 'Infinity',
@@ -110,7 +113,7 @@ export default class Expression {
110
113
  public transformCode(scope: Scope): string {
111
114
  const context = scope.getVariables();
112
115
  let transformedCode = this.code;
113
-
116
+
114
117
  // Находим Observable переменные
115
118
  const observableVars = new Set<string>();
116
119
  for (const [key, value] of Object.entries(context)) {
@@ -178,7 +181,7 @@ export default class Expression {
178
181
  // Handle reserved keywords used as variable names (e.g., "super")
179
182
  const reservedKeywords = ['super', 'this', 'arguments'];
180
183
  const keyMapping: Record<string, string> = {};
181
-
184
+
182
185
  const keys = Object.keys(context).map(key => {
183
186
  if (reservedKeywords.includes(key)) {
184
187
  const safeKey = `__${key}__`;
@@ -188,9 +191,9 @@ export default class Expression {
188
191
  return key;
189
192
  });
190
193
  const values = Object.values(context);
191
-
194
+
192
195
  let codeToExecute = codeOverride ?? this.code;
193
-
196
+
194
197
  // Replace reserved keywords in code with safe alternatives
195
198
  for (const [original, safe] of Object.entries(keyMapping)) {
196
199
  const regex = new RegExp(`\\b${original}\\b`, 'g');
@@ -208,19 +211,30 @@ export default class Expression {
208
211
  }
209
212
 
210
213
  try {
211
- // Create function with context variables as parameters
212
- const fn = new Function(...keys, functionBody);
213
- return fn.apply(null, values);
214
- } catch (syntaxError) {
215
- // If implicit return fails, try without it (for statements)
216
- if (!this.hasReturn) {
214
+ const cacheKey = keys.join('\0') + '\0' + functionBody;
215
+ let fn = Expression.fnCache.get(cacheKey);
216
+ if (!fn) {
217
217
  try {
218
- const fn = new Function(...keys, codeToExecute);
219
- return fn.apply(null, values);
220
- } catch {
221
- throw syntaxError;
218
+ fn = new Function(...keys, functionBody);
219
+ } catch (syntaxError) {
220
+ if (!this.hasReturn) {
221
+ try {
222
+ fn = new Function(...keys, codeToExecute);
223
+ } catch {
224
+ throw syntaxError;
225
+ }
226
+ } else {
227
+ throw syntaxError;
228
+ }
222
229
  }
230
+ if (Expression.fnCache.size >= Expression.FN_CACHE_MAX) {
231
+ const firstKey = Expression.fnCache.keys().next().value;
232
+ Expression.fnCache.delete(firstKey);
233
+ }
234
+ Expression.fnCache.set(cacheKey, fn);
223
235
  }
236
+ return fn.apply(null, values);
237
+ } catch (syntaxError) {
224
238
  throw syntaxError;
225
239
  }
226
240
  }
@@ -232,7 +246,7 @@ export default class Expression {
232
246
  // Handle reserved keywords used as variable names (e.g., "super")
233
247
  const reservedKeywords = ['super', 'this', 'arguments'];
234
248
  const keyMapping: Record<string, string> = {};
235
-
249
+
236
250
  const keys = Object.keys(context).map(key => {
237
251
  if (reservedKeywords.includes(key)) {
238
252
  const safeKey = `__${key}__`;
@@ -242,9 +256,9 @@ export default class Expression {
242
256
  return key;
243
257
  });
244
258
  const values = Object.values(context);
245
-
259
+
246
260
  let codeToExecute = codeOverride ?? this.code;
247
-
261
+
248
262
  // Replace reserved keywords in code with safe alternatives
249
263
  for (const [original, safe] of Object.entries(keyMapping)) {
250
264
  const regex = new RegExp(`\\b${original}\\b`, 'g');
@@ -261,13 +275,13 @@ export default class Expression {
261
275
 
262
276
  try {
263
277
  // Create async function
264
- const AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;
278
+ const AsyncFunction = Object.getPrototypeOf(async function () { }).constructor;
265
279
  const fn = new AsyncFunction(...keys, functionBody);
266
280
  return await fn.apply(null, values);
267
281
  } catch (syntaxError) {
268
282
  if (!this.hasReturn) {
269
283
  try {
270
- const AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;
284
+ const AsyncFunction = Object.getPrototypeOf(async function () { }).constructor;
271
285
  const fn = new AsyncFunction(...keys, codeToExecute);
272
286
  return await fn.apply(null, values);
273
287
  } catch {
@@ -160,7 +160,7 @@ export default class StylePreprocessor {
160
160
  ast.push(result.node);
161
161
 
162
162
  result = rule.walk(walker, tokens, data);
163
- tokens = result.tokens;
163
+ if (result) tokens = result.tokens;
164
164
  }
165
165
  }
166
166
 
@@ -25,7 +25,7 @@ export default class TemplateEngine {
25
25
  context!.data!.set(context!.refName, context!.element);
26
26
  this.globalScope!.set(context!.refName, context!.element);
27
27
 
28
- this.engine.bindings.set(context!.element, () => {
28
+ this.engine.addBinding(context!.element, () => {
29
29
  context!.data!.delete(context!.refName);
30
30
  this.globalScope!.delete(context!.refName);
31
31
  });
@@ -46,10 +46,12 @@ export default class TemplateEngine {
46
46
  const of = valueExpression.eval(data!);
47
47
  const value = of instanceof Observable ? of.getObject() : of;
48
48
  if (of instanceof Observable) {
49
- of.subscribe((newValue: any) => {
49
+ const handler = (newValue: any) => {
50
50
  this.engine.change();
51
51
  this.doWork({ element, name: attributeName, value: newValue });
52
- });
52
+ };
53
+ of.subscribe(handler);
54
+ this.engine.addBinding(element, () => of.unsubscribe(handler));
53
55
  }
54
56
  this.doWork({ element, name: attributeName, value });
55
57
  }
@@ -82,6 +84,7 @@ export default class TemplateEngine {
82
84
  };
83
85
 
84
86
  element.addEventListener(eventName, listener);
87
+ this.engine.addBinding(element, () => element.removeEventListener(eventName, listener));
85
88
  }
86
89
  return false;
87
90
  }
@@ -140,11 +143,13 @@ export default class TemplateEngine {
140
143
 
141
144
  const value = of instanceof Observable ? of.getObject() : of;
142
145
  if (of instanceof Observable) {
143
- of.subscribe((newValue: any[]) => {
146
+ const handler = (newValue: any[]) => {
144
147
  element.textContent = "";
145
148
  this.engine.change();
146
149
  this.doWork({ element, value: newValue, allowHtmlInjection: allowHtmlInjection });
147
- });
150
+ };
151
+ of.subscribe(handler);
152
+ this.engine.addBinding(element, () => of.unsubscribe(handler));
148
153
  }
149
154
  this.doWork({ element, value, allowHtmlInjection: allowHtmlInjection });
150
155
 
@@ -179,10 +184,12 @@ export default class TemplateEngine {
179
184
 
180
185
  const iterable = of instanceof Observable ? of.getObject() : of;
181
186
  if (of instanceof Observable) {
182
- of.subscribe((newValue: any[]) => {
187
+ const handler = (newValue: any[]) => {
183
188
  this.engine.change();
184
189
  this.doWork({ element, iterable: newValue, index, value, walker, shadow, data });
185
- });
190
+ };
191
+ of.subscribe(handler);
192
+ this.engine.addBinding(element, () => of.unsubscribe(handler));
186
193
  }
187
194
  this.doWork({ element, iterable: iterable, index, value, walker, shadow, data });
188
195
  }
@@ -204,6 +211,7 @@ export default class TemplateEngine {
204
211
  const data = context!.data;
205
212
 
206
213
  element.childNodes.forEach(n => this.engine.fullCleanup(n));
214
+ while (element.firstChild) element.removeChild(element.firstChild);
207
215
 
208
216
  const lenght = typeof iterable === "number" ? iterable : iterable.length;
209
217
 
@@ -258,10 +266,12 @@ export default class TemplateEngine {
258
266
  const condition = new Expression(conditionAtt).eval(data!);
259
267
 
260
268
  if (condition instanceof Observable) {
261
- condition.subscribe((newValue: boolean) => {
269
+ const handler = (newValue: boolean) => {
262
270
  this.engine.change();
263
271
  this.doWork({ walker, data, allParts: allParts });
264
- });
272
+ };
273
+ condition.subscribe(handler);
274
+ this.engine.addBinding(part.element, () => condition.unsubscribe(handler));
265
275
  }
266
276
  }
267
277
 
@@ -278,9 +288,8 @@ export default class TemplateEngine {
278
288
  const { walker, data, allParts } = context!;
279
289
 
280
290
  allParts.forEach(part => {
281
- this.engine.fullCleanup(part.element);
282
- /*part.element.childNodes.forEach(n =>
283
- this.engine.fullCleanup(n));*/
291
+ part.element.childNodes.forEach(n => this.engine.fullCleanup(n));
292
+ while (part.element.firstChild) part.element.removeChild(part.element.firstChild);
284
293
  });
285
294
 
286
295
  for (const part of allParts) {
@@ -316,9 +325,24 @@ export default class TemplateEngine {
316
325
  this.if_component
317
326
  ];
318
327
 
319
- public readonly bindings: Map<Element, () => void> = new Map();
328
+ public readonly bindings: Map<Node, (() => void)[]> = new Map();
320
329
  private readonly onChangeCallbacks: (() => void)[] = [];
321
330
  public processLogs: string[] = [];
331
+ public addBinding(node: Node, cleanup: () => void): void {
332
+ const existing = this.bindings.get(node);
333
+ if (existing) {
334
+ existing.push(cleanup);
335
+ } else {
336
+ this.bindings.set(node, [cleanup]);
337
+ }
338
+ }
339
+ public dispose(): void {
340
+ for (const [, cleanups] of this.bindings) {
341
+ cleanups.forEach(cleanup => cleanup());
342
+ }
343
+ this.bindings.clear();
344
+ this.onChangeCallbacks.length = 0;
345
+ }
322
346
  public static fullProcess(root: Node, scope: Scope): string[] {
323
347
  const engine = new TemplateEngine();
324
348
  engine.fullProcess(root, scope);
@@ -379,8 +403,11 @@ export default class TemplateEngine {
379
403
  let i = 0;
380
404
  walker.onEnterNode((node: Node, data?: Scope) => {
381
405
  const element = node as Element;
382
- const binding = this.bindings.get(element);
383
- if (binding) binding();
406
+ const bindings = this.bindings.get(element);
407
+ if (bindings) {
408
+ bindings.forEach(b => b());
409
+ this.bindings.delete(element);
410
+ }
384
411
 
385
412
  this.processLogs.push((" ").repeat(i) + "layer " + i + " Cleaning up Starting: " + node.nodeName);
386
413
  i++;
@@ -50,14 +50,21 @@ export abstract class Router {
50
50
  window.location.replace(url.href);
51
51
  }
52
52
  }
53
-
53
+
54
54
  public static tryRouteTo(url: URL, pushState: boolean = true) {
55
55
  const urlH = new URL(Fetcher.resolveUrl(url.href));
56
56
  try {
57
57
  const found: Route = this.tryFindRoute(urlH);
58
-
58
+
59
59
  let pageContainer = document.getElementById('page');
60
-
60
+
61
+ if (this.currentPage) {
62
+ this.currentPage.dispose();
63
+ }
64
+ while (pageContainer.firstChild) {
65
+ pageContainer.removeChild(pageContainer.firstChild);
66
+ }
67
+
61
68
  const page: UniHtml = this.createPage(found, urlH.searchParams);
62
69
  this.currentPage = page;
63
70