@reidelsaltres/pureper 0.1.164 → 0.1.168

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 (32) hide show
  1. package/out/foundation/Triplet.d.ts.map +1 -1
  2. package/out/foundation/Triplet.js +5 -6
  3. package/out/foundation/Triplet.js.map +1 -1
  4. package/out/foundation/component_api/Component.d.ts +2 -2
  5. package/out/foundation/component_api/Component.d.ts.map +1 -1
  6. package/out/foundation/component_api/Component.js.map +1 -1
  7. package/out/foundation/component_api/UniHtml.d.ts +10 -4
  8. package/out/foundation/component_api/UniHtml.d.ts.map +1 -1
  9. package/out/foundation/component_api/UniHtml.js +15 -7
  10. package/out/foundation/component_api/UniHtml.js.map +1 -1
  11. package/out/foundation/engine/TemplateEngine.d.ts +4 -93
  12. package/out/foundation/engine/TemplateEngine.d.ts.map +1 -1
  13. package/out/foundation/engine/TemplateEngine.js +44 -221
  14. package/out/foundation/engine/TemplateEngine.js.map +1 -1
  15. package/out/foundation/engine/TemplateEngine.old.d.ts +96 -0
  16. package/out/foundation/engine/TemplateEngine.old.d.ts.map +1 -0
  17. package/out/foundation/engine/TemplateEngine.old.js +235 -0
  18. package/out/foundation/engine/TemplateEngine.old.js.map +1 -0
  19. package/out/foundation/engine/TemplateInstance.d.ts +1 -1
  20. package/out/foundation/engine/TemplateInstance.d.ts.map +1 -1
  21. package/out/foundation/engine/TemplateInstance.js +3 -5
  22. package/out/foundation/engine/TemplateInstance.js.map +1 -1
  23. package/out/foundation/worker/Router.js +1 -1
  24. package/out/foundation/worker/Router.js.map +1 -1
  25. package/package.json +1 -1
  26. package/src/foundation/Triplet.ts +6 -9
  27. package/src/foundation/component_api/Component.ts +1 -2
  28. package/src/foundation/component_api/UniHtml.ts +22 -12
  29. package/src/foundation/engine/TemplateEngine.old.ts +318 -0
  30. package/src/foundation/engine/TemplateEngine.ts +49 -299
  31. package/src/foundation/engine/TemplateInstance.ts +3 -3
  32. package/src/foundation/worker/Router.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Triplet.d.ts","sourceRoot":"","sources":["../../src/foundation/Triplet.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,4BAA4B,CAAC;AAKjD,OAAO,EAAE,cAAc,EAAe,MAAM,gCAAgC,CAAC;AAK7E,oBAAY,UAAU;IAClB,IAAI,IAAI;IACR,OAAO,IAAS;IAChB,MAAM,IAAS;IACf,IAAI,IAAmB;CAC1B;AACD,MAAM,MAAM,aAAa,GAAG;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CACnC,CAAA;AACD,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB,SAAgB,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,SAAgB,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,SAAgB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,SAAgB,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAErC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAS;IAEhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IAEpC,OAAO,CAAC,GAAG,CAAC,CAA0B;gBAEnB,MAAM,EAAE,aAAa;IA6B3B,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAcxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuDhF,OAAO,CAAC,mBAAmB;CAmC9B"}
1
+ {"version":3,"file":"Triplet.d.ts","sourceRoot":"","sources":["../../src/foundation/Triplet.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,4BAA4B,CAAC;AAKjD,OAAO,EAAE,cAAc,EAAe,MAAM,gCAAgC,CAAC;AAI7E,oBAAY,UAAU;IAClB,IAAI,IAAI;IACR,OAAO,IAAS;IAChB,MAAM,IAAS;IACf,IAAI,IAAmB;CAC1B;AACD,MAAM,MAAM,aAAa,GAAG;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;CACnC,CAAA;AACD,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB,SAAgB,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,SAAgB,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,SAAgB,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,SAAgB,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAErC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAS;IAEhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IAEpC,OAAO,CAAC,GAAG,CAAC,CAA0B;gBAEnB,MAAM,EAAE,aAAa;IA6B3B,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAcxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuDhF,OAAO,CAAC,mBAAmB;CAiC9B"}
@@ -3,7 +3,7 @@ import { Router } from "./worker/Router.js";
3
3
  import ServiceWorker from "./worker/ServiceWorker.js";
4
4
  import Page from "./component_api/Page.js";
5
5
  import Component from "./component_api/Component.js";
6
- import TemplateEngine from './engine/TemplateEngine.js';
6
+ import HMLEParser from "./HMLEParser.js";
7
7
  export var AccessType;
8
8
  (function (AccessType) {
9
9
  AccessType[AccessType["NONE"] = 0] = "NONE";
@@ -121,12 +121,12 @@ export default class Triplet {
121
121
  }
122
122
  };
123
123
  let proto = ori.prototype;
124
- const engine = new TemplateEngine(ori);
124
+ const parser = new HMLEParser();
125
125
  proto._init = async function () {
126
126
  const markupText = await that.markup;
127
127
  if (!markupText)
128
- return engine.parse("");
129
- return engine.parse(markupText);
128
+ return new DocumentFragment();
129
+ return parser.parseToDOM(markupText, this);
130
130
  };
131
131
  proto._postInit = async function (preHtml) {
132
132
  const dmc = this.shadowRoot ?? document;
@@ -136,8 +136,7 @@ export default class Triplet {
136
136
  ...dmc.adoptedStyleSheets,
137
137
  style
138
138
  ];
139
- preHtml.bindRefs();
140
- preHtml.bindEvents();
139
+ //parser.hydrate(preHtml, this);
141
140
  return preHtml;
142
141
  };
143
142
  return ori;
@@ -1 +1 @@
1
- {"version":3,"file":"Triplet.js","sourceRoot":"","sources":["../../src/foundation/Triplet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Triplet.js","sourceRoot":"","sources":["../../src/foundation/Triplet.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
+ import IElementHolder from "../api/ElementHolder.js";
1
2
  import UniHtml from "../component_api/UniHtml.js";
2
- import { TemplateInstance } from "../engine/TemplateEngine.js";
3
3
  import { Mixined } from "./mixin/Proto.js";
4
4
  export default interface Component extends Mixined, HTMLElement, UniHtml {
5
5
  }
@@ -23,7 +23,7 @@ export default class Component extends Component_base implements IUniHtmlCompone
23
23
  * @deprecated Use onConnected instead.
24
24
  */
25
25
  private connectedCallback;
26
- protected render(element: TemplateInstance, renderTarget: HTMLElement | ShadowRoot): Promise<void>;
26
+ protected render(element: IElementHolder, renderTarget: HTMLElement | ShadowRoot): Promise<void>;
27
27
  /**
28
28
  * @deprecated Use onDisconnected instead.
29
29
  */
@@ -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,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,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;;IAK9F,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,gBAAgB,EAAE,YAAY,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlG;;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":"AAAA,OAAO,cAAc,MAAM,yBAAyB,CAAC;AACrD,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAElD,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;;IAK9F,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 +1 @@
1
- {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../../src/foundation/component_api/Component.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAGlD,OAAO,EAAE,KAAK,EAAW,MAAM,kBAAkB,CAAC;AAGlD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE;IACrE,WAAW,GAAgB,EAAE,CAAC;IAE9B,0BAA0B,CAA4D;IAC9F;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAED,WAAW;IACX,CAAC;IAED,cAAc;IACd,CAAC;IAED,OAAO;IACP,CAAC;IAED,SAAS;IACT,CAAC;IAGD,kBAAkB,CAAC,IAAY,EAAE,QAAa,EAAE,QAAa;IAC7D,CAAC;IAED,0BAA0B,CAAC,QAA8D;QACrF,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,IAAI,EAAE,CAAC;QACxE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACK,iBAAiB;QACrB,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAEpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,IAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACH,IAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACnC,CAAC;gBACD,SAAS;YACb,CAAC;YACA,IAAY,CAAC,UAAU,CAAC,EAAS,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IACS,MAAM,CAAC,OAAyB,EAAE,YAAsC;QAC9E,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAU,CAAA,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC9E,sCAAsC;QACtC,6CAA6C;QAC7C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IACD;;OAEG;IACK,oBAAoB;QACxB,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IACD;;OAEG;IACK,qBAAqB;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IACD;;OAEG;IACK,eAAe;QACnB,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IACD;;OAEG;IACK,wBAAwB,CAAC,IAAY,EAAE,QAAa,EAAE,QAAa;QACvE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,0BAA0B,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjF,CAAC;CACJ"}
1
+ {"version":3,"file":"Component.js","sourceRoot":"","sources":["../../../src/foundation/component_api/Component.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAElD,OAAO,EAAE,KAAK,EAAW,MAAM,kBAAkB,CAAC;AAGlD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE;IACrE,WAAW,GAAgB,EAAE,CAAC;IAE9B,0BAA0B,CAA4D;IAC9F;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAED,WAAW;IACX,CAAC;IAED,cAAc;IACd,CAAC;IAED,OAAO;IACP,CAAC;IAED,SAAS;IACT,CAAC;IAGD,kBAAkB,CAAC,IAAY,EAAE,QAAa,EAAE,QAAa;IAC7D,CAAC;IAED,0BAA0B,CAAC,QAA8D;QACrF,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,IAAI,EAAE,CAAC;QACxE,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACK,iBAAiB;QACrB,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAEpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAC3B,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,IAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACnC,CAAC;qBAAM,CAAC;oBACH,IAAY,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACnC,CAAC;gBACD,SAAS;YACb,CAAC;YACA,IAAY,CAAC,UAAU,CAAC,EAAS,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IACS,MAAM,CAAC,OAAuB,EAAE,YAAsC;QAC5E,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAU,CAAA,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC9E,sCAAsC;QACtC,6CAA6C;QAC7C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IACD;;OAEG;IACK,oBAAoB;QACxB,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IACD;;OAEG;IACK,qBAAqB;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;IACnB,CAAC;IACD;;OAEG;IACK,eAAe;QACnB,IAAI,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;IACD;;OAEG;IACK,wBAAwB,CAAC,IAAY,EAAE,QAAa,EAAE,QAAa;QACvE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,0BAA0B,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IACjF,CAAC;CACJ"}
@@ -1,4 +1,10 @@
1
- import { TemplateInstance } from "../engine/TemplateEngine.js";
1
+ /**
2
+ * Abstract base class for HTML components in Pureper SPA.
3
+ * Provides a unified lifecycle: init → preLoadJS → render → postLoadJS.
4
+ * Use static factory methods to create instances from an HTML file or string.
5
+ * Designed to replace legacy Page and Component base classes.
6
+ */
7
+ import IElementHolder from "../api/ElementHolder.js";
2
8
  /**
3
9
  * Universal SPA component base for pages and elements.
4
10
  * Use static factory methods for instantiation.
@@ -19,20 +25,20 @@ export default class UniHtml {
19
25
  * РЕКОМЕНДАЦИЯ: предпочитайте выполнять основную подготовку, поиск элементов, навешивание обработчиков
20
26
  * на узлы из localRoot именно здесь; затем render() вставит их в целевой контейнер/теневой DOM.
21
27
  */
22
- protected preLoad(template: TemplateInstance): Promise<void>;
28
+ protected preLoad(holder: IElementHolder): Promise<void>;
23
29
  /**
24
30
  * Hook after rendering (e.g., event binding).
25
31
  * Для компонентов вызывается после того, как содержимое вставлено в shadowRoot (см. UniHtmlComponent.render()).
26
32
  * Используйте этот этап только когда необходим доступ к реально смонтированному DOM (layout/measurements,
27
33
  * интеграции, требующие присутствия в документе). В остальных случаях предпочитайте preLoad().
28
34
  */
29
- protected postLoad(template: TemplateInstance): Promise<void>;
35
+ protected postLoad(holder: IElementHolder): Promise<void>;
30
36
  /**
31
37
  * Main rendering step. By default, simply inserts HTML into the container.
32
38
  * Override in subclasses for custom rendering logic.
33
39
  * @param element Target container
34
40
  * @param html HTML content
35
41
  */
36
- protected render(template: TemplateInstance, renderTarget: HTMLElement | DocumentFragment): Promise<void>;
42
+ protected render(holder: IElementHolder, renderTarget: HTMLElement | DocumentFragment): Promise<void>;
37
43
  }
38
44
  //# sourceMappingURL=UniHtml.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UniHtml.d.ts","sourceRoot":"","sources":["../../../src/foundation/component_api/UniHtml.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB;;;;OAIG;IACU,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAmBrD,SAAS;YAGT,KAAK;cAIH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IACxC;;;;;OAKG;cACa,OAAO,CAAC,QAAQ,EAAE,gBAAgB;IAClD;;;;;OAKG;cACa,QAAQ,CAAC,QAAQ,EAAE,gBAAgB;IACnD;;;;;OAKG;cACa,MAAM,CAAC,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,WAAW,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;CASlH"}
1
+ {"version":3,"file":"UniHtml.d.ts","sourceRoot":"","sources":["../../../src/foundation/component_api/UniHtml.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AACH,OAAO,cAAc,MAAM,yBAAyB,CAAC;AAGrD;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IAExB;;;;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,EAAG,cAAc;IAC/C;;;;;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;CAgB9G"}
@@ -13,17 +13,19 @@ export default class UniHtml {
13
13
  await this.preInit();
14
14
  const preHtml = await this._init();
15
15
  const html = await this._postInit(preHtml);
16
+ const localRoot = html;
17
+ const holder = { element: localRoot };
16
18
  // ВАЖНО: preLoad() вызывается ДО монтирования в DOM/Shadow DOM.
17
19
  // Для компонентов (UniHtmlComponent) на этом этапе ещё нельзя полагаться на this.shadowRoot —
18
20
  // используйте переданный localRoot для подготовки DOM, данных и навешивания обработчиков.
19
21
  // Это предпочтительный этап инициализации для компонентов.
20
- await this.preLoad(html);
22
+ await this.preLoad(holder);
21
23
  // render() отвечает за помещение содержимого из localRoot в конечную цель (renderTarget).
22
24
  // В UniHtmlComponent.render() после вызова базового render() происходит добавление wrapper в shadowRoot.
23
- await this.render(html, element);
25
+ await this.render(holder, element);
24
26
  // postLoad() вызывается ПОСЛЕ render(). Для компонентов к этому моменту содержимое уже добавлено
25
27
  // внутрь shadowRoot, и можно безопасно работать с this.shadowRoot, измерениями layout и т.п.
26
- await this.postLoad(html);
28
+ await this.postLoad(holder);
27
29
  }
28
30
  async _postInit(html) {
29
31
  throw new Error("Method not implemented.");
@@ -38,26 +40,32 @@ export default class UniHtml {
38
40
  * РЕКОМЕНДАЦИЯ: предпочитайте выполнять основную подготовку, поиск элементов, навешивание обработчиков
39
41
  * на узлы из localRoot именно здесь; затем render() вставит их в целевой контейнер/теневой DOM.
40
42
  */
41
- async preLoad(template) { }
43
+ async preLoad(holder) { }
42
44
  /**
43
45
  * Hook after rendering (e.g., event binding).
44
46
  * Для компонентов вызывается после того, как содержимое вставлено в shadowRoot (см. UniHtmlComponent.render()).
45
47
  * Используйте этот этап только когда необходим доступ к реально смонтированному DOM (layout/measurements,
46
48
  * интеграции, требующие присутствия в документе). В остальных случаях предпочитайте preLoad().
47
49
  */
48
- async postLoad(template) { }
50
+ async postLoad(holder) { }
49
51
  /**
50
52
  * Main rendering step. By default, simply inserts HTML into the container.
51
53
  * Override in subclasses for custom rendering logic.
52
54
  * @param element Target container
53
55
  * @param html HTML content
54
56
  */
55
- async render(template, renderTarget) {
57
+ async render(holder, renderTarget) {
56
58
  // Clear renderTarget
57
59
  while (renderTarget.firstChild) {
58
60
  renderTarget.removeChild(renderTarget.firstChild);
59
61
  }
60
- template.bind(renderTarget);
62
+ // Move all children from holder.element to renderTarget
63
+ const children = Array.from(holder.element.childNodes);
64
+ for (const child of children) {
65
+ renderTarget.appendChild(child);
66
+ }
67
+ // Update holder to point to renderTarget (now contains the content)
68
+ holder.element = renderTarget;
61
69
  return Promise.resolve();
62
70
  }
63
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"UniHtml.js","sourceRoot":"","sources":["../../../src/foundation/component_api/UniHtml.ts"],"names":[],"mappings":"AAWA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IACxB;;;;OAIG;IACI,KAAK,CAAC,IAAI,CAAC,OAAiC;QAAkB,CAAC;QAClE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,OAAO,GAAqB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACrD,MAAM,IAAI,GAAqB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAG7D,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;IAC9B,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,IAAsB;QAC1C,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,KAAmB,CAAC;IAC3C;;;;;OAKG;IACO,KAAK,CAAC,OAAO,CAAC,QAA0B,IAAI,CAAC;IACvD;;;;;OAKG;IACO,KAAK,CAAC,QAAQ,CAAC,QAA0B,IAAI,CAAC;IACxD;;;;;OAKG;IACO,KAAK,CAAC,MAAM,CAAC,QAA0B,EAAE,YAA4C;QAC3F,qBAAqB;QACrB,OAAO,YAAY,CAAC,UAAU,EAAE,CAAC;YAC7B,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACtD,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,YAAmB,CAAC,CAAC;QAEnC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACJ"}
1
+ {"version":3,"file":"UniHtml.js","sourceRoot":"","sources":["../../../src/foundation/component_api/UniHtml.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,OAAO;IAExB;;;;OAIG;IACI,KAAK,CAAC,IAAI,CAAC,OAAiC;QAAkB,CAAC;QAClE,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,OAAO,GAAqB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACrD,MAAM,IAAI,GAAqB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE7D,MAAM,SAAS,GAAG,IAAI,CAAC;QAEvB,MAAM,MAAM,GAAoB,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAEvD,gEAAgE;QAChE,8FAA8F;QAC9F,0FAA0F;QAC1F,2DAA2D;QAC3D,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3B,0FAA0F;QAC1F,yGAAyG;QACzG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,iGAAiG;QACjG,6FAA6F;QAC7F,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,IAAsB;QAC1C,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,KAAmB,CAAC;IAC3C;;;;;OAKG;IACO,KAAK,CAAC,OAAO,CAAC,MAAuB,IAAI,CAAC;IACpD;;;;;OAKG;IACO,KAAK,CAAC,QAAQ,CAAC,MAAsB,IAAI,CAAC;IACpD;;;;;OAKG;IACO,KAAK,CAAC,MAAM,CAAC,MAAsB,EAAE,YAA4C;QACvF,qBAAqB;QACrB,OAAO,YAAY,CAAC,UAAU,EAAE,CAAC;YAC7B,YAAY,CAAC,WAAW,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QACtD,CAAC;QAED,wDAAwD;QACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACvD,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC3B,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;QAED,oEAAoE;QACnE,MAAsD,CAAC,OAAO,GAAG,YAAY,CAAC;QAC/E,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACJ"}
@@ -1,96 +1,7 @@
1
- import Scope from './Scope.js';
2
- import Expression from './Expression.js';
3
- import TemplateInstance, { TemplateSection } from './TemplateInstance.js';
4
- import Rule, { SyntaxRule, AttributeRule } from './Rule.js';
5
- import Observable from '../api/Observer.js';
6
- import ExpressionRule from './rules/syntax/ExpressionRule.js';
7
- import IfRule from './rules/syntax/IfRule.js';
8
- import ForRule from './rules/syntax/ForRule.js';
9
- import RefRule from './rules/attribute/RefRule.js';
10
- import EventRule from './rules/attribute/EventRule.js';
11
- import InjectionRule from './rules/attribute/InjectionRule.js';
12
- /**
13
- * TemplateEngineOptions - настройки TemplateEngine
14
- */
15
- export interface TemplateEngineOptions {
16
- /** Оставлять синтаксис атрибутивных Rule в финальном HTML */
17
- showAttributeRule?: boolean;
18
- /** Включить предупреждения отладки */
19
- debugWarnings?: boolean;
20
- }
21
- /**
22
- * ProcessResult - результат обработки шаблона
23
- */
24
- export interface ProcessResult {
25
- output: string;
26
- observables: Observable<any>[];
27
- sections: TemplateSection[];
28
- /** ID созданного фрагмента (если был создан) */
29
- fragmentId?: string;
30
- }
31
- /**
32
- * TemplateEngine - главный класс шаблонизатора.
33
- * Обрабатывает HTML-шаблон с Rule и создаёт TemplateInstance.
34
- */
1
+ import Scope from "./Scope";
35
2
  export default class TemplateEngine {
36
- private readonly scope;
37
- private readonly options;
38
- private readonly syntaxRules;
39
- private readonly attributeRules;
40
- constructor(scope: Scope | object, options?: TemplateEngineOptions);
41
- /**
42
- * Зарегистрировать стандартные правила
43
- */
44
- private registerDefaultRules;
45
- /**
46
- * Добавить пользовательское правило
47
- */
48
- addRule(rule: Rule): void;
49
- /**
50
- * Получить Scope
51
- */
52
- getScope(): Scope;
53
- /**
54
- * Обработать шаблон и вернуть TemplateInstance
55
- */
56
- parse(template: string): TemplateInstance;
57
- /**
58
- * Обработать шаблон с созданием фрагментов
59
- */
60
- private processTemplateWithFragments;
61
- /**
62
- * Обработать шаблон (внутренний метод, используется Rule для рекурсии)
63
- */
64
- processTemplate(template: string, scope: Scope): ProcessResult;
65
- /**
66
- * Обработать одно правило
67
- */
68
- private processRule;
69
- /**
70
- * Удалить синтаксис атрибутивных Rule из финального HTML
71
- */
72
- private removeAttributeSyntax;
73
- /**
74
- * Добавить новый шаблон в существующий TemplateInstance.
75
- * Обрабатывает шаблон и добавляет результат как новый фрагмент.
76
- * Если instance привязан к контейнерам, DOM обновится автоматически.
77
- *
78
- * @param instance - существующий TemplateInstance
79
- * @param template - новый шаблон для добавления
80
- * @param customScope - опциональный scope для нового шаблона
81
- * @returns ID созданного фрагмента
82
- */
83
- appendTemplate(instance: TemplateInstance, template: string, customScope?: Scope | object): string;
84
- /**
85
- * Статический метод для быстрой обработки
86
- */
87
- static process(template: string, scope: object, options?: TemplateEngineOptions): string;
88
- /**
89
- * Создать TemplateInstance из шаблона
90
- */
91
- static create(template: string, scope: object, options?: TemplateEngineOptions): TemplateInstance;
3
+ static process(root: Node, onlyRoot?: boolean): Node[];
4
+ static processFors(root: Node, scope: Scope): Scope;
5
+ static processAttributes(root: Node, scope: Scope): Scope;
92
6
  }
93
- export { Scope, Expression, TemplateInstance, Rule, SyntaxRule, AttributeRule };
94
- export { ExpressionRule, IfRule, ForRule, RefRule, EventRule, InjectionRule };
95
- export * from './exceptions/TemplateExceptions.js';
96
7
  //# sourceMappingURL=TemplateEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TemplateEngine.d.ts","sourceRoot":"","sources":["../../../src/foundation/engine/TemplateEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,UAAU,MAAM,iBAAiB,CAAC;AAEzC,OAAO,gBAAgB,EAAE,EAAE,eAAe,EAAmB,MAAM,uBAAuB,CAAC;AAC3F,OAAO,IAAI,EAAE,EAAyB,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACnF,OAAO,UAAU,MAAM,oBAAoB,CAAC;AAG5C,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAC9D,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAC9C,OAAO,OAAO,MAAM,2BAA2B,CAAC;AAChD,OAAO,OAAO,MAAM,8BAA8B,CAAC;AACnD,OAAO,SAAS,MAAM,gCAAgC,CAAC;AACvD,OAAO,aAAa,MAAM,oCAAoC,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IAClC,6DAA6D;IAC7D,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,sCAAsC;IACtC,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;IAC/B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAChD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;gBAE1C,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAYlE;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAUhC;;OAEG;IACI,QAAQ,IAAI,KAAK;IAIxB;;OAEG;IACI,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB;IAwBhD;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAsBpC;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,aAAa;IAyCrE;;OAEG;IACH,OAAO,CAAC,WAAW;IA8CnB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;;;;;;;;OASG;IACI,cAAc,CAAC,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM;IAiCzG;;OAEG;WACW,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM;IAM/F;;OAEG;WACW,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,gBAAgB;CAI3G;AAGD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AAC9E,cAAc,oCAAoC,CAAC"}
1
+ {"version":3,"file":"TemplateEngine.d.ts","sourceRoot":"","sources":["../../../src/foundation/engine/TemplateEngine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,MAAM,CAAC,OAAO,OAAO,cAAc;WACjB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,GAAE,OAAe,GAAG,IAAI,EAAE;WAoBtD,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK;WAuB5C,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK;CAoBnE"}
@@ -1,235 +1,58 @@
1
- import Scope from './Scope.js';
2
- import Expression from './Expression.js';
3
- import EscapeHandler from './EscapeHandler.js';
4
- import TemplateInstance from './TemplateInstance.js';
5
- import Rule, { SyntaxRule, AttributeRule } from './Rule.js';
6
- // Import rules
7
- import ExpressionRule from './rules/syntax/ExpressionRule.js';
8
- import IfRule from './rules/syntax/IfRule.js';
9
- import ForRule from './rules/syntax/ForRule.js';
10
- import RefRule from './rules/attribute/RefRule.js';
11
- import EventRule from './rules/attribute/EventRule.js';
12
- import InjectionRule from './rules/attribute/InjectionRule.js';
13
- /**
14
- * TemplateEngine - главный класс шаблонизатора.
15
- * Обрабатывает HTML-шаблон с Rule и создаёт TemplateInstance.
16
- */
1
+ import Expression from "./Expression";
17
2
  export default class TemplateEngine {
18
- scope;
19
- options;
20
- syntaxRules = [];
21
- attributeRules = [];
22
- constructor(scope, options) {
23
- this.scope = scope instanceof Scope ? scope : Scope.from(scope);
24
- this.options = {
25
- showAttributeRule: false,
26
- debugWarnings: true,
27
- ...options
28
- };
29
- // Register default rules (sorted by priority)
30
- this.registerDefaultRules();
31
- }
32
- /**
33
- * Зарегистрировать стандартные правила
34
- */
35
- registerDefaultRules() {
36
- // Syntax rules
37
- this.syntaxRules.push(new ForRule());
38
- this.syntaxRules.push(new IfRule());
39
- this.syntaxRules.push(new ExpressionRule());
40
- // Attribute rules
41
- this.attributeRules.push(new RefRule());
42
- this.attributeRules.push(new EventRule());
43
- this.attributeRules.push(new InjectionRule());
44
- // Sort by priority
45
- this.syntaxRules.sort((a, b) => a.priority - b.priority);
46
- this.attributeRules.sort((a, b) => a.priority - b.priority);
47
- }
48
- /**
49
- * Добавить пользовательское правило
50
- */
51
- addRule(rule) {
52
- if (rule.type === 'syntax') {
53
- this.syntaxRules.push(rule);
54
- this.syntaxRules.sort((a, b) => a.priority - b.priority);
55
- }
56
- else {
57
- this.attributeRules.push(rule);
58
- this.attributeRules.sort((a, b) => a.priority - b.priority);
59
- }
60
- }
61
- /**
62
- * Получить Scope
63
- */
64
- getScope() {
65
- return this.scope;
66
- }
67
- /**
68
- * Обработать шаблон и вернуть TemplateInstance
69
- */
70
- parse(template) {
71
- const templateInstance = new TemplateInstance(this.scope);
72
- const result = this.processTemplateWithFragments(template, this.scope, templateInstance, null);
73
- // Устанавливаем корневой фрагмент
74
- if (result.fragmentId) {
75
- templateInstance.setRootFragment(result.fragmentId);
76
- }
77
- // Add sections and track observables
78
- for (const section of result.sections) {
79
- templateInstance.addSection(section);
80
- // Track observables
81
- for (const observable of section.result.observables || []) {
82
- templateInstance.trackObservable(observable, section, (s) => {
83
- return this.processTemplate(s.sourceTemplate, this.scope);
84
- });
3
+ static process(root, onlyRoot = false) {
4
+ let elements = [];
5
+ const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT);
6
+ if (onlyRoot) {
7
+ walker.nextNode();
8
+ while (walker.nextSibling()) {
9
+ const node = walker.currentNode;
10
+ elements.push(node);
85
11
  }
86
12
  }
87
- return templateInstance;
88
- }
89
- /**
90
- * Обработать шаблон с созданием фрагментов
91
- */
92
- processTemplateWithFragments(template, scope, instance, parentFragmentId) {
93
- const result = this.processTemplate(template, scope);
94
- // Создаём фрагмент для этого результата
95
- const fragmentId = instance.createFragment(result.output, template, result.sections, parentFragmentId);
96
- return {
97
- ...result,
98
- fragmentId
99
- };
100
- }
101
- /**
102
- * Обработать шаблон (внутренний метод, используется Rule для рекурсии)
103
- */
104
- processTemplate(template, scope) {
105
- const allObservables = [];
106
- const allSections = [];
107
- // Step 1: Handle @@ escape sequences
108
- let processed = EscapeHandler.process(template, (escaped) => {
109
- let result = escaped;
110
- // Step 2: Process syntax rules (in priority order)
111
- for (const rule of this.syntaxRules) {
112
- result = this.processRule(rule, result, scope, allObservables, allSections);
113
- }
114
- // Step 3: Process attribute rules
115
- for (const rule of this.attributeRules) {
116
- // Skip injection - processed last
117
- if (rule.name === 'injection')
118
- continue;
119
- result = this.processRule(rule, result, scope, allObservables, allSections);
13
+ else {
14
+ while (walker.nextNode()) {
15
+ const node = walker.currentNode;
16
+ elements.push(node);
120
17
  }
121
- return result;
122
- });
123
- // Step 4: Process injection rules last
124
- const injectionRule = this.attributeRules.find(r => r.name === 'injection');
125
- if (injectionRule) {
126
- processed = this.processRule(injectionRule, processed, scope, allObservables, allSections);
127
18
  }
128
- // Step 5: Handle showAttributeRule option
129
- if (!this.options.showAttributeRule) {
130
- processed = this.removeAttributeSyntax(processed);
131
- }
132
- return {
133
- output: processed,
134
- observables: allObservables,
135
- sections: allSections
136
- };
137
- }
138
- /**
139
- * Обработать одно правило
140
- */
141
- processRule(rule, template, scope, observables, sections) {
142
- const matches = rule.find(template);
143
- // Sort matches by position (reverse to process from end)
144
- matches.sort((a, b) => b.start - a.start);
145
- let result = template;
146
- for (const match of matches) {
147
- try {
148
- const ruleResult = rule.execute(match, scope, this);
149
- // Track observables
150
- if (ruleResult.observables) {
151
- observables.push(...ruleResult.observables);
152
- }
153
- // Create section
154
- const section = {
155
- rule,
156
- match,
157
- result: ruleResult,
158
- sourceTemplate: match.fullMatch,
159
- children: [],
160
- subscriptions: []
161
- };
162
- sections.push(section);
163
- // Replace in template
164
- result = result.slice(0, match.start) + ruleResult.output + result.slice(match.end);
19
+ return elements;
20
+ }
21
+ static processFors(root, scope) {
22
+ const walker = document.createTreeWalker(root, NodeFilter.SHOW_TEXT);
23
+ let leftCircleBracketCount = 0;
24
+ let rightCircleBracketCount = 0;
25
+ while (walker.nextNode()) {
26
+ const node = walker.currentNode;
27
+ if (node.textContent?.includes("@for(")) {
28
+ leftCircleBracketCount = 1;
29
+ rightCircleBracketCount = 0;
165
30
  }
166
- catch (error) {
167
- console.error(`[TemplateEngine] Error processing rule "${rule.name}":`, error);
168
- // Continue processing other rules
31
+ if (node.textContent?.includes("("))
32
+ leftCircleBracketCount++;
33
+ if (node.textContent?.includes(")"))
34
+ rightCircleBracketCount++;
35
+ if (leftCircleBracketCount > 0 && leftCircleBracketCount === rightCircleBracketCount) {
169
36
  }
170
37
  }
171
- return result;
172
- }
173
- /**
174
- * Удалить синтаксис атрибутивных Rule из финального HTML
175
- */
176
- removeAttributeSyntax(template) {
177
- // Remove @[ref], @on[...], @injection[...] patterns that weren't processed
178
- return template
179
- .replace(/@\[ref\]\s*=\s*["'][^"']*["']/gi, '')
180
- .replace(/@on\[[a-zA-Z]+\]\s*=\s*["'][^"']*["']/gi, '')
181
- .replace(/@injection\[(head|tail)\]\s*=\s*["'][^"']*["']/gi, '');
182
- }
183
- /**
184
- * Добавить новый шаблон в существующий TemplateInstance.
185
- * Обрабатывает шаблон и добавляет результат как новый фрагмент.
186
- * Если instance привязан к контейнерам, DOM обновится автоматически.
187
- *
188
- * @param instance - существующий TemplateInstance
189
- * @param template - новый шаблон для добавления
190
- * @param customScope - опциональный scope для нового шаблона
191
- * @returns ID созданного фрагмента
192
- */
193
- appendTemplate(instance, template, customScope) {
194
- const scope = customScope
195
- ? (customScope instanceof Scope ? customScope : Scope.from(customScope))
196
- : instance.getScope();
197
- // Обрабатываем шаблон
198
- const result = this.processTemplate(template, scope);
199
- // Создаём фрагмент
200
- const fragmentId = instance.createFragment(result.output, template, result.sections, null // без родителя - это отдельный фрагмент
201
- );
202
- // Добавляем секции и отслеживаем Observable
203
- for (const section of result.sections) {
204
- instance.addSection(section);
205
- for (const observable of section.result.observables || []) {
206
- instance.trackObservable(observable, section, (s) => {
207
- return this.processTemplate(s.sourceTemplate, scope);
38
+ return scope;
39
+ }
40
+ static processAttributes(root, scope) {
41
+ const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT);
42
+ while (walker.nextNode()) {
43
+ const node = walker.currentNode;
44
+ if (node.nodeType === Node.ELEMENT_NODE) {
45
+ const element = node;
46
+ if (element.hasAttribute("ref"))
47
+ scope.set(element.getAttribute("ref"), element);
48
+ [...element.attributes].filter(a => /^on/.test(a.name)).forEach(attr => {
49
+ const eventName = attr.name.substring(2);
50
+ const expr = new Expression(attr.value);
51
+ element.addEventListener(eventName, (e) => { });
208
52
  });
209
53
  }
210
54
  }
211
- // Вставляем в привязанные контейнеры
212
- instance.insertAppendedFragment(fragmentId);
213
- return fragmentId;
214
- }
215
- /**
216
- * Статический метод для быстрой обработки
217
- */
218
- static process(template, scope, options) {
219
- const engine = new TemplateEngine(scope, options);
220
- const TemplateInstance = engine.parse(template);
221
- return TemplateInstance.getTemplate();
222
- }
223
- /**
224
- * Создать TemplateInstance из шаблона
225
- */
226
- static create(template, scope, options) {
227
- const engine = new TemplateEngine(scope, options);
228
- return engine.parse(template);
55
+ return scope;
229
56
  }
230
57
  }
231
- // Re-export useful types
232
- export { Scope, Expression, TemplateInstance, Rule, SyntaxRule, AttributeRule };
233
- export { ExpressionRule, IfRule, ForRule, RefRule, EventRule, InjectionRule };
234
- export * from './exceptions/TemplateExceptions.js';
235
58
  //# sourceMappingURL=TemplateEngine.js.map