@reidelsaltres/pureper 0.1.154 → 0.1.156

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.
@@ -0,0 +1,9 @@
1
+ declare class Scope {
2
+ }
3
+ export default class HMLELoader {
4
+ providedScope?: Scope | {};
5
+ HMLELoader(scope: Scope | {}): void;
6
+ loadFromString(hmle: string): Promise<DocumentFragment>;
7
+ }
8
+ export {};
9
+ //# sourceMappingURL=HMLELoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HMLELoader.d.ts","sourceRoot":"","sources":["../../src/foundation/HMLELoader.ts"],"names":[],"mappings":"AAGA,cAAM,KAAK;CACV;AACD,MAAM,CAAC,OAAO,OAAO,UAAU;IACpB,aAAa,CAAC,EAAE,KAAK,GAAG,EAAE,CAAC;IAE3B,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,EAAE;IAItB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAKvE"}
@@ -0,0 +1,14 @@
1
+ class Scope {
2
+ }
3
+ export default class HMLELoader {
4
+ providedScope;
5
+ HMLELoader(scope) {
6
+ this.providedScope = scope;
7
+ }
8
+ async loadFromString(hmle) {
9
+ const template = document.createElement('template');
10
+ template.innerHTML = hmle;
11
+ return template.content;
12
+ }
13
+ }
14
+ //# sourceMappingURL=HMLELoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HMLELoader.js","sourceRoot":"","sources":["../../src/foundation/HMLELoader.ts"],"names":[],"mappings":"AAGA,MAAM,KAAK;CACV;AACD,MAAM,CAAC,OAAO,OAAO,UAAU;IACpB,aAAa,CAAc;IAE3B,UAAU,CAAC,KAAiB;QAC/B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,IAAY;QACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACpD,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;QAC1B,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC5B,CAAC;CACJ"}
@@ -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;AAM7E,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"}
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"}
@@ -36,13 +36,13 @@ export default class Triplet {
36
36
  let ltCss = Promise.resolve(struct.ltCss);
37
37
  if (struct.ltCssURL)
38
38
  ltCss = Fetcher.fetchText(struct.ltCssURL);
39
- let js = Promise.resolve(undefined);
39
+ /*let js = Promise.resolve(undefined);
40
40
  if (struct.jsURL)
41
- js = Fetcher.fetchText(struct.jsURL);
41
+ js = Fetcher.fetchText(struct.jsURL);*/
42
42
  this.markup = markup;
43
43
  this.css = css;
44
44
  this.lightCss = ltCss;
45
- this.js = js;
45
+ //this.js = js;
46
46
  this.access = struct.access ?? AccessType.BOTH;
47
47
  this.uni = struct.class;
48
48
  }
@@ -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 +1 @@
1
- {"version":3,"file":"TripletDecorator.d.ts","sourceRoot":"","sources":["../../src/foundation/TripletDecorator.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAc,aAAa,EAAE,MAAM,cAAc,CAAA;AACjE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,IACpD,MAAM,QAAQ,UAYzB;AACD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,IACjD,MAAM,QAAQ,UAYzB"}
1
+ {"version":3,"file":"TripletDecorator.d.ts","sourceRoot":"","sources":["../../src/foundation/TripletDecorator.ts"],"names":[],"mappings":"AACA,OAAgB,EAAc,aAAa,EAAE,MAAM,cAAc,CAAA;AAEjE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,IACpD,MAAM,QAAQ,UAezB;AACD,wBAAgB,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,IACjD,MAAM,QAAQ,UAezB"}
@@ -3,6 +3,8 @@ export function ReComponent(settings, tag) {
3
3
  return (ctor) => {
4
4
  if (tag == null || tag.length === 0 || !tag.includes("-"))
5
5
  throw new Error("Invalid custom element tag name.");
6
+ if (settings.class === null || settings.class === undefined)
7
+ settings.class = ctor;
6
8
  const triplet = new Triplet(settings);
7
9
  triplet.register("markup", tag)
8
10
  .then(ok => {
@@ -16,6 +18,8 @@ export function RePage(settings, route) {
16
18
  return (ctor) => {
17
19
  if (route == null || route.length === 0 || !route.startsWith("/"))
18
20
  throw new Error("Invalid route path.");
21
+ if (settings.class === null || settings.class === undefined)
22
+ settings.class = ctor;
19
23
  const triplet = new Triplet(settings);
20
24
  triplet.register("router", route)
21
25
  .then(ok => {
@@ -1 +1 @@
1
- {"version":3,"file":"TripletDecorator.js","sourceRoot":"","sources":["../../src/foundation/TripletDecorator.ts"],"names":[],"mappings":"AAAA,OAAO,OAAsC,MAAM,cAAc,CAAA;AACjE,MAAM,UAAU,WAAW,CAAC,QAAuB,EAAE,GAAW;IAC5D,OAAO,CAAC,IAAc,EAAE,EAAE;QACtB,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAExD,MAAM,OAAO,GAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;aAC1B,IAAI,CAAC,EAAE,CAAC,EAAE;YACP,IAAI,CAAC,EAAE;gBAAE,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,+BAA+B,CAAC,CAAC;QAC/E,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC;IAClF,CAAC,CAAA;AACL,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,QAAuB,EAAE,KAAa;IACzD,OAAO,CAAC,IAAc,EAAE,EAAE;QACtB,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAE3C,MAAM,OAAO,GAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;aAC5B,IAAI,CAAC,EAAE,CAAC,EAAE;YACP,IAAI,CAAC,EAAE;gBAAE,OAAO,CAAC,KAAK,CAAC,WAAW,KAAK,+BAA+B,CAAC,CAAC;QAC5E,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,KAAK,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAA;AACL,CAAC"}
1
+ {"version":3,"file":"TripletDecorator.js","sourceRoot":"","sources":["../../src/foundation/TripletDecorator.ts"],"names":[],"mappings":"AACA,OAAO,OAAsC,MAAM,cAAc,CAAA;AAEjE,MAAM,UAAU,WAAW,CAAC,QAAuB,EAAE,GAAW;IAC5D,OAAO,CAAC,IAAc,EAAE,EAAE;QACtB,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAExD,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YACvD,QAAQ,CAAC,KAAK,GAAG,IAA+B,CAAC;QAErD,MAAM,OAAO,GAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC;aAC1B,IAAI,CAAC,EAAE,CAAC,EAAE;YACP,IAAI,CAAC,EAAE;gBAAE,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,+BAA+B,CAAC,CAAC;QAC/E,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC;IAClF,CAAC,CAAA;AACL,CAAC;AACD,MAAM,UAAU,MAAM,CAAC,QAAuB,EAAE,KAAa;IACzD,OAAO,CAAC,IAAc,EAAE,EAAE;QACtB,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAE3C,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YACvD,QAAQ,CAAC,KAAK,GAAG,IAA+B,CAAC;QAErD,MAAM,OAAO,GAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;aAC5B,IAAI,CAAC,EAAE,CAAC,EAAE;YACP,IAAI,CAAC,EAAE;gBAAE,OAAO,CAAC,KAAK,CAAC,WAAW,KAAK,+BAA+B,CAAC,CAAC;QAC5E,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,KAAK,mBAAmB,EAAE,GAAG,CAAC,CAAC,CAAC;IAC/E,CAAC,CAAA;AACL,CAAC"}
@@ -11,6 +11,8 @@ export default class Attribute<T = any> {
11
11
  get name(): string;
12
12
  get value(): T | string;
13
13
  set value(val: T | string);
14
+ isDefault(): boolean;
15
+ isExist(): boolean;
14
16
  subscribe(listener: (key: string, oldValue: string | T, newValue: string | T) => void): void;
15
17
  unsubscribe(listener: (key: string, oldValue: string | T, newValue: string | T) => void): void;
16
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Attribute.d.ts","sourceRoot":"","sources":["../../../src/foundation/component_api/Attribute.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,SAAS,CAAC,CAAC,GAAG,GAAG;IAClC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,SAAS,CAAmE;IAEpF,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,MAAM,CAAC,CAAa;gBAEhB,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAWzD,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,UAAU;IAYlB,IAAW,IAAI,WAEd;IAED,IAAW,KAAK,IAAI,CAAC,GAAG,MAAM,CAE7B;IAED,IAAW,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,EAgB/B;IAEM,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,KAAK,IAAI,GAAG,IAAI;IAG5F,WAAW,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,KAAK,IAAI,GAAG,IAAI;CAGxG"}
1
+ {"version":3,"file":"Attribute.d.ts","sourceRoot":"","sources":["../../../src/foundation/component_api/Attribute.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAEvC,MAAM,CAAC,OAAO,OAAO,SAAS,CAAC,CAAC,GAAG,GAAG;IAClC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,SAAS,CAAmE;IAEpF,OAAO,CAAC,KAAK,CAAS;IAEtB,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,MAAM,CAAC,CAAa;gBAEhB,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;IAWzD,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,UAAU;IAYlB,IAAW,IAAI,WAEd;IAED,IAAW,KAAK,IAAI,CAAC,GAAG,MAAM,CAE7B;IAED,IAAW,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,EAgB/B;IAEM,SAAS,IAAI,OAAO;IAGpB,OAAO,IAAI,OAAO;IAIlB,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,KAAK,IAAI,GAAG,IAAI;IAG5F,WAAW,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,KAAK,IAAI,GAAG,IAAI;CAGxG"}
@@ -51,6 +51,12 @@ export default class Attribute {
51
51
  else
52
52
  this.component.setAttribute(this._name, val.toString());
53
53
  }
54
+ isDefault() {
55
+ return this.value === this._defaultValue;
56
+ }
57
+ isExist() {
58
+ return this.value !== undefined && this.value !== null && this.value !== "";
59
+ }
54
60
  subscribe(listener) {
55
61
  this.listeners.push((o, n) => listener(this._name, o, n));
56
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Attribute.js","sourceRoot":"","sources":["../../../src/foundation/component_api/Attribute.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,OAAO,SAAS;IAClB,SAAS,CAAa;IACtB,SAAS,GAAgE,EAAE,CAAC;IAE5E,KAAK,CAAS;IAEd,aAAa,CAAc;IAC3B,MAAM,CAAc;IAE5B,YAAY,SAAoB,EAAE,IAAY,EAAE,KAAS;QACrD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAGO,MAAM,CAAC,QAAoB,EAAE,QAAoB;QACrD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrE,CAAC;IAEO,UAAU,CAAC,SAAqB;QACpC,IAAI,CAAC,MAAM,GAAG,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC;QAC9C,IAAK,IAAI,CAAC,SAAiB,CAAC,kBAAkB,KAAK,SAAS;YACvD,IAAI,CAAC,SAAiB,CAAC,kBAAkB,GAAG,EAAE,CAAC;QACnD,IAAI,CAAC,SAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAED;;iFAE6E;IAG7E,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC;IAC7C,CAAC;IAED,IAAW,KAAK,CAAC,GAAe;QAC5B,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM;YAAE,OAAO;QAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAE7B,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE,CAAC;YAC3B,IAAI,GAAG;gBAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;;gBAChD,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChD,OAAO;QACX,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;gBAC7E,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACtD,CAAC;QAED,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;YAC7E,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjE,CAAC;IAEM,SAAS,CAAC,QAA2E;QACxF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IACM,WAAW,CAAC,QAA2E;QAC1F,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAChE,CAAC;CACJ"}
1
+ {"version":3,"file":"Attribute.js","sourceRoot":"","sources":["../../../src/foundation/component_api/Attribute.ts"],"names":[],"mappings":"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"}
package/out/index.d.ts CHANGED
@@ -5,14 +5,13 @@ export * from './foundation/component_api/mixin/Proto.js';
5
5
  export { default as UniHtml } from './foundation/component_api/UniHtml.js';
6
6
  export { default as Page } from './foundation/component_api/Page.js';
7
7
  export { default as Component } from './foundation/component_api/Component.js';
8
+ export { default as Attribute } from './foundation/component_api/Attribute.js';
8
9
  export { default as Triplet, TripletStruct, AccessType } from './foundation/Triplet.js';
9
10
  export { ReComponent, RePage } from './foundation/TripletDecorator.js';
10
11
  export { default as Fetcher } from './foundation/Fetcher.js';
11
- export { default as PHTMLParser } from './foundation/PHTMLParser.js';
12
12
  export { default as HMLEParser } from './foundation/HMLEParser.js';
13
13
  export { Router } from './foundation/worker/Router.js';
14
14
  export { default as ServiceWorker } from './foundation/worker/ServiceWorker.js';
15
15
  export * from './foundation/Hosting.js';
16
16
  export * from './foundation/Theme.js';
17
- export { default as DynamicBlock } from './components/DynamicBlock.js';
18
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAE3D,cAAc,2CAA2C,CAAC;AAE1D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAE/E,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAEhF,cAAc,yBAAyB,CAAC;AAExC,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAE3D,cAAc,2CAA2C,CAAC;AAE1D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAE/E,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAEhF,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC"}
package/out/index.js CHANGED
@@ -3,16 +3,15 @@ export * from './foundation/component_api/mixin/Proto.js';
3
3
  export { default as UniHtml } from './foundation/component_api/UniHtml.js';
4
4
  export { default as Page } from './foundation/component_api/Page.js';
5
5
  export { default as Component } from './foundation/component_api/Component.js';
6
+ export { default as Attribute } from './foundation/component_api/Attribute.js';
6
7
  export { default as Triplet, AccessType } from './foundation/Triplet.js';
7
8
  export { ReComponent, RePage } from './foundation/TripletDecorator.js';
8
9
  export { default as Fetcher } from './foundation/Fetcher.js';
9
- export { default as PHTMLParser } from './foundation/PHTMLParser.js';
10
10
  export { default as HMLEParser } from './foundation/HMLEParser.js';
11
11
  export { Router } from './foundation/worker/Router.js';
12
12
  export { default as ServiceWorker } from './foundation/worker/ServiceWorker.js';
13
13
  export * from './foundation/Hosting.js';
14
14
  export * from './foundation/Theme.js';
15
- export { default as DynamicBlock } from './components/DynamicBlock.js';
16
15
  // derive the part of href after the origin (e.g. "/path?query#hash")
17
16
  /*export const HOSTING: string = window.location.href.startsWith(window.location.origin)
18
17
  ? window.location.href.substring(window.location.origin.length)
package/out/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAE3D,cAAc,2CAA2C,CAAC;AAE1D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAE/E,OAAO,EAAE,OAAO,IAAI,OAAO,EAAiB,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAEhF,cAAc,yBAAyB,CAAC;AAExC,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEvE,qEAAqE;AACrE;;WAEQ;AAER,yEAAyE"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAE3D,cAAc,2CAA2C,CAAC;AAE1D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAE/E,OAAO,EAAE,OAAO,IAAI,OAAO,EAAiB,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAEnE,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAEhF,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AAEtC,qEAAqE;AACrE;;WAEQ;AAER,yEAAyE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reidelsaltres/pureper",
3
- "version": "0.1.154",
3
+ "version": "0.1.156",
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",
@@ -0,0 +1,18 @@
1
+ interface AttributeRule {
2
+ pattern: RegExp;
3
+ }
4
+ class Scope {
5
+ }
6
+ export default class HMLELoader {
7
+ public providedScope?: Scope | {};
8
+
9
+ public HMLELoader(scope: Scope | {}) {
10
+ this.providedScope = scope;
11
+ }
12
+
13
+ public async loadFromString(hmle: string): Promise<DocumentFragment> {
14
+ const template = document.createElement('template');
15
+ template.innerHTML = hmle;
16
+ return template.content;
17
+ }
18
+ }
@@ -5,9 +5,7 @@ import ServiceWorker from "./worker/ServiceWorker.js";
5
5
  import Page from "./component_api/Page.js";
6
6
  import Component from "./component_api/Component.js";
7
7
  import { AnyConstructor, Constructor } from "./component_api/mixin/Proto.js";
8
- import PHTMLParser from "./PHTMLParser.js";
9
8
  import HMLEParser from "./HMLEParser.js";
10
- import HMLEParserReborn from "./HMLEParserReborn.js";
11
9
 
12
10
 
13
11
  export enum AccessType {
@@ -61,14 +59,14 @@ export default class Triplet {
61
59
  let ltCss = Promise.resolve(struct.ltCss);
62
60
  if (struct.ltCssURL)
63
61
  ltCss = Fetcher.fetchText(struct.ltCssURL);
64
- let js = Promise.resolve(undefined);
62
+ /*let js = Promise.resolve(undefined);
65
63
  if (struct.jsURL)
66
- js = Fetcher.fetchText(struct.jsURL);
64
+ js = Fetcher.fetchText(struct.jsURL);*/
67
65
 
68
66
  this.markup = markup;
69
67
  this.css = css;
70
68
  this.lightCss = ltCss;
71
- this.js = js;
69
+ //this.js = js;
72
70
 
73
71
  this.access = struct.access ?? AccessType.BOTH;
74
72
 
@@ -1,9 +1,14 @@
1
+ import { AnyConstructor, UniHtml } from "../index.js";
1
2
  import Triplet, { AccessType, TripletStruct } from "./Triplet.js"
3
+
2
4
  export function ReComponent(settings: TripletStruct, tag: string) {
3
5
  return (ctor: Function) => {
4
6
  if (tag == null || tag.length === 0 || !tag.includes("-"))
5
7
  throw new Error("Invalid custom element tag name.");
6
8
 
9
+ if (settings.class === null || settings.class === undefined)
10
+ settings.class = ctor as AnyConstructor<UniHtml>;
11
+
7
12
  const triplet: Triplet = new Triplet(settings);
8
13
 
9
14
  triplet.register("markup", tag)
@@ -17,6 +22,9 @@ export function RePage(settings: TripletStruct, route: string) {
17
22
  return (ctor: Function) => {
18
23
  if (route == null || route.length === 0 || !route.startsWith("/"))
19
24
  throw new Error("Invalid route path.");
25
+
26
+ if (settings.class === null || settings.class === undefined)
27
+ settings.class = ctor as AnyConstructor<UniHtml>;
20
28
 
21
29
  const triplet: Triplet = new Triplet(settings);
22
30
 
@@ -63,6 +63,13 @@ export default class Attribute<T = any> {
63
63
  else this.component.setAttribute(this._name, val.toString());
64
64
  }
65
65
 
66
+ public isDefault(): boolean {
67
+ return this.value === this._defaultValue;
68
+ }
69
+ public isExist(): boolean {
70
+ return this.value !== undefined && this.value !== null && this.value !== "";
71
+ }
72
+
66
73
  public subscribe(listener: (key: string, oldValue: string | T, newValue: string | T) => void): void {
67
74
  this.listeners.push((o,n) => listener(this._name, o, n));
68
75
  }
package/src/index.ts CHANGED
@@ -8,22 +8,19 @@ export * from './foundation/component_api/mixin/Proto.js';
8
8
  export { default as UniHtml } from './foundation/component_api/UniHtml.js';
9
9
  export { default as Page } from './foundation/component_api/Page.js';
10
10
  export { default as Component } from './foundation/component_api/Component.js';
11
+ export { default as Attribute } from './foundation/component_api/Attribute.js';
11
12
 
12
13
  export { default as Triplet, TripletStruct, AccessType } from './foundation/Triplet.js';
13
14
  export { ReComponent, RePage } from './foundation/TripletDecorator.js';
14
15
 
15
16
  export { default as Fetcher } from './foundation/Fetcher.js';
16
- export { default as PHTMLParser } from './foundation/PHTMLParser.js';
17
17
  export { default as HMLEParser } from './foundation/HMLEParser.js';
18
18
 
19
19
  export { Router } from './foundation/worker/Router.js';
20
20
  export { default as ServiceWorker } from './foundation/worker/ServiceWorker.js';
21
21
 
22
22
  export * from './foundation/Hosting.js';
23
-
24
23
  export * from './foundation/Theme.js';
25
-
26
- export { default as DynamicBlock } from './components/DynamicBlock.js';
27
24
 
28
25
  // derive the part of href after the origin (e.g. "/path?query#hash")
29
26
  /*export const HOSTING: string = window.location.href.startsWith(window.location.origin)
@@ -1,25 +0,0 @@
1
- import IElementHolder from "../foundation/api/ElementHolder.js";
2
- import Attribute from "../foundation/component_api/Attribute.js";
3
- import Component from "../foundation/component_api/Component.js";
4
- import { ReComponent } from "../foundation/TripletDecorator.js";
5
-
6
- @ReComponent({
7
- markup: "<slot></slot>",
8
- jsURL: "src/components/DynamicBlock.js",
9
- class: DynamicBlock,
10
- }, "dynamic-block")
11
- export default class DynamicBlock extends Component {
12
- private ruleFor: Attribute<boolean> = new Attribute<boolean>(this, "for", false);
13
- private ruleForIndex: Attribute<string> = new Attribute<string>(this, "idx");
14
- private ruleForVariable: Attribute<string> = new Attribute<string>(this, "var");
15
- private ruleForIterable: Attribute<string> = new Attribute<string>(this, "in");
16
-
17
- protected async preLoad(holder: IElementHolder): Promise<void> {
18
- const template = "aaa";
19
- console.log("DynamicBlock preLoad", this.ruleFor.value, this.ruleForIndex.value, this.ruleForVariable.value, this.ruleForIterable.value);
20
- this.querySelectorAll("template").forEach(tpl => {
21
- holder.element.prepend(tpl.cloneNode(true));
22
- tpl.remove();
23
- });
24
- }
25
- }
@@ -1,117 +0,0 @@
1
- HMLEParser должен парсить строки с модиффицированным html кодом(HMLE) в html,
2
- все особенности синтаксиса должны определятся Правилами
3
-
4
- # Expression
5
- Expression<T> это JavaScript code который должен быть выполнен
6
-
7
- Все переменные могут быть получены как прямо из scope по названию переменной или через исполнения Expression<T> в которой T возвращаемое значение
8
-
9
- # Observable
10
- Observable<T> это обьект изменения которого должны notify() listeners
11
-
12
- Если переменная поставляемая в правила Observable то всё правило должно становится динамическим и обновлятся при изменении Observable
13
-
14
- # Rule
15
- Rule это обьект внутри HMLEParser который представляет собой отдельное правило, со своей проверкой и execution
16
- Правило может накладыватся на все 3 этапа работы парсера, а может и на какой то конкретный
17
-
18
-
19
- Правило считается ДИНАМИЧЕСКИМ если оно взаимодействует с Observable<> любыми способами, или взаимодействует с переменными которые были созданы в динамическом блоке например если @for интерируется от Observable то любое правило использующее value и index тоже считается динамическим и должно пропускать первый этап
20
-
21
- # Принцип работы
22
- Парсер должен проводится в 3 этапа:
23
- 1.Парсинг - парсить HMLE как текст, выполнять СТАТИЧЕСКИЕ ПРАВИЛА
24
- 2.DOM Парсинг - Парсить HMLE текст в DOM, и создавать <template> для динамических правил
25
- Созданные <template> должны быть сохранены для того что бы их можно было переиспользовать при обновлении Observable
26
- 3.Гидратация - Удалять <template> и выполнять динамические правила
27
-
28
- Каждый этап должен быть чётко определён и парсер должен уметь выполнять каждый отдельно
29
-
30
- # Правила
31
- 1) Правило exp
32
- # Синтаксис:
33
- @(expression or variable)
34
-
35
- # Поведение по этапам
36
- 1) Парсинг
37
- 1.Если внутри @() находится variable то на месте @() в HTML должно появится значение этой премененной
38
- Например: в scope { str="value"} @(str) то в результате value
39
- 2.Если внутри @() находится Expression<string> то на месте должен отобразится строка
40
- 3.Если внутри @() находится Expression<void> то на expression должен выполнится но ничего не отобразится
41
- 4.Если внутри @() находится Expression<any> то any должен быть преобразован в строку и отобразится
42
- 2) DOM Парсинг
43
- 1.Если внутри @() находится Observable<any> то на месте должно создаватся <template exp var="variable name"></template>
44
- 2.Если внутри @() Expression<any> использует Observable<any> то на место должно создаватся <template exp expr="expression"></template>
45
- 3) Гидратация
46
- 1.<template exp var="variable name"></template> должно быть заменено на variable value
47
- 2.<template exp expr="expression"></template> expression должно быть выполнено а результат записан, если он есть
48
-
49
- 2) Правило for:
50
- # Синтаксис:
51
- 1) @for (index, value in values) {}
52
- 2) @for (value in values) {}
53
- - index - Опциональный - это индекс интерации цикла for,
54
- - value - это значение итерации коллекции values,
55
- - values - должна быть получена из scope предварительно - any Collection or Expression<any Collection>
56
- 3) @for (i in number) {}
57
- - i - число от 0 до number в итерации
58
- - number - должна быть получена из scope предварительно - это число обозначающее сколько раз цикл совершится - number or Expression<number>
59
-
60
- # Поведение по этапам
61
- 1) Парсинг
62
- 1.Если values коллекция элементов то всё что внутри {} должно быть скопированно для каждой итерации
63
- 2.Если number это число то {} всё скопированно для каждой итерации
64
- 2) DOM Парсинг
65
- 1.Если values это Observable<any Collection or Number> то на месте должно создаватся <template for index="i" var="value" in="values">{Содержимое блока for}</template>
66
- 2.Если values это Expression<any Collection or Number> который использует Observable<ny Collection or Number> то на месте должно создаватся <template for index="i" var="value" in-expr="expression">{Содержимое блока for}</template>
67
- 3) Гидратация
68
- 1.<template for index="i" var="value" in="values">{Содержимое блока for}</template> должно быть заменено на содержимое блока скопированное для каждой итерации
69
- 2.<template for index="i" var="value" in-expr="expression">{Содержимое блока for}</template> должно быть заменено на содержимое блока скопированное для каждой итерации
70
-
71
- Пример:
72
- @for (i,question in questions) {
73
- <div>@(i) - @(question)</div>
74
- } при questions = new Observable(["A1", "A2", "A3"]);
75
-
76
- Должно создаватся:
77
- <template for index="i" var="question" in="questions">
78
- <div><template exp var="i"></template> - <template exp var="question"></template></div>
79
- </template>
80
-
81
- А после всех обработок:
82
- <div>0 - A1</div>
83
- <div>1 - A2</div>
84
- <div>2 - A3</div>
85
-
86
- Если:
87
- @for (index, value in values) {
88
- @for(index1, value1 in value.params) {
89
-
90
- }
91
- }
92
-
93
- то
94
-
95
- <template for index="index" var="value" in="values">
96
- <template for index="index1" var="value1" in="value.params">
97
- </template>
98
- </template>
99
-
100
- 3) Правило @[ref]
101
- # Синтаксис
102
- <any-htmltag @[ref]="name">
103
-
104
- Парсер должен создавать перменную с именем name
105
- Переменная должна равнятся html-элементу
106
- Созданная переменная должна быть выведена в общий scope
107
-
108
- Правило должно выполнятся на этапе 2. DOM парсинг
109
-
110
- 4) Правило @[on-название события]
111
- см. HMLEParser для примера
112
- # Синтаксис
113
- <any-htmltag @[on-название события]="expression">
114
-
115
- expressions - должны содержать в scope событие и сам элемент в котором находится правило
116
-
117
- Пример: <any-htmltag @[onclick]="doSomething(event, element)">