@reidelsaltres/pureper 0.1.157 → 0.1.162
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/out/foundation/Triplet.d.ts.map +1 -1
- package/out/foundation/Triplet.js +4 -5
- package/out/foundation/Triplet.js.map +1 -1
- package/out/foundation/api/Observer.d.ts +30 -0
- package/out/foundation/api/Observer.d.ts.map +1 -1
- package/out/foundation/api/Observer.js +48 -0
- package/out/foundation/api/Observer.js.map +1 -1
- package/out/foundation/component_api/Component.d.ts +2 -2
- package/out/foundation/component_api/Component.d.ts.map +1 -1
- package/out/foundation/component_api/Component.js.map +1 -1
- package/out/foundation/component_api/UniHtml.d.ts +4 -10
- package/out/foundation/component_api/UniHtml.d.ts.map +1 -1
- package/out/foundation/component_api/UniHtml.js +7 -15
- package/out/foundation/component_api/UniHtml.js.map +1 -1
- package/out/foundation/engine/BalancedParser.d.ts +58 -0
- package/out/foundation/engine/BalancedParser.d.ts.map +1 -0
- package/out/foundation/engine/BalancedParser.js +301 -0
- package/out/foundation/engine/BalancedParser.js.map +1 -0
- package/out/foundation/engine/EscapeHandler.d.ts +27 -0
- package/out/foundation/engine/EscapeHandler.d.ts.map +1 -0
- package/out/foundation/engine/EscapeHandler.js +47 -0
- package/out/foundation/engine/EscapeHandler.js.map +1 -0
- package/out/foundation/engine/Expression.d.ts +83 -0
- package/out/foundation/engine/Expression.d.ts.map +1 -0
- package/out/foundation/engine/Expression.js +256 -0
- package/out/foundation/engine/Expression.js.map +1 -0
- package/out/foundation/engine/Rule.d.ts +85 -0
- package/out/foundation/engine/Rule.d.ts.map +1 -0
- package/out/foundation/engine/Rule.js +69 -0
- package/out/foundation/engine/Rule.js.map +1 -0
- package/out/foundation/engine/Scope.d.ts +61 -0
- package/out/foundation/engine/Scope.d.ts.map +1 -0
- package/out/foundation/engine/Scope.js +156 -0
- package/out/foundation/engine/Scope.js.map +1 -0
- package/out/foundation/engine/TemplateEngine.d.ts +96 -0
- package/out/foundation/engine/TemplateEngine.d.ts.map +1 -0
- package/out/foundation/engine/TemplateEngine.js +235 -0
- package/out/foundation/engine/TemplateEngine.js.map +1 -0
- package/out/foundation/engine/TemplateInstance.d.ts +241 -0
- package/out/foundation/engine/TemplateInstance.d.ts.map +1 -0
- package/out/foundation/engine/TemplateInstance.js +637 -0
- package/out/foundation/engine/TemplateInstance.js.map +1 -0
- package/out/foundation/engine/TemplateInstance.old.d.ts +219 -0
- package/out/foundation/engine/TemplateInstance.old.d.ts.map +1 -0
- package/out/foundation/engine/TemplateInstance.old.js +487 -0
- package/out/foundation/engine/TemplateInstance.old.js.map +1 -0
- package/out/foundation/engine/exceptions/TemplateExceptions.d.ts +21 -0
- package/out/foundation/engine/exceptions/TemplateExceptions.d.ts.map +1 -0
- package/out/foundation/engine/exceptions/TemplateExceptions.js +26 -0
- package/out/foundation/engine/exceptions/TemplateExceptions.js.map +1 -0
- package/out/foundation/engine/index.d.ts +18 -0
- package/out/foundation/engine/index.d.ts.map +1 -0
- package/out/foundation/engine/index.js +19 -0
- package/out/foundation/engine/index.js.map +1 -0
- package/out/foundation/engine/rules/attribute/EventRule.d.ts +22 -0
- package/out/foundation/engine/rules/attribute/EventRule.d.ts.map +1 -0
- package/out/foundation/engine/rules/attribute/EventRule.js +129 -0
- package/out/foundation/engine/rules/attribute/EventRule.js.map +1 -0
- package/out/foundation/engine/rules/attribute/InjectionRule.d.ts +20 -0
- package/out/foundation/engine/rules/attribute/InjectionRule.d.ts.map +1 -0
- package/out/foundation/engine/rules/attribute/InjectionRule.js +108 -0
- package/out/foundation/engine/rules/attribute/InjectionRule.js.map +1 -0
- package/out/foundation/engine/rules/attribute/RefRule.d.ts +23 -0
- package/out/foundation/engine/rules/attribute/RefRule.d.ts.map +1 -0
- package/out/foundation/engine/rules/attribute/RefRule.js +104 -0
- package/out/foundation/engine/rules/attribute/RefRule.js.map +1 -0
- package/out/foundation/engine/rules/syntax/ExpressionRule.d.ts +19 -0
- package/out/foundation/engine/rules/syntax/ExpressionRule.d.ts.map +1 -0
- package/out/foundation/engine/rules/syntax/ExpressionRule.js +82 -0
- package/out/foundation/engine/rules/syntax/ExpressionRule.js.map +1 -0
- package/out/foundation/engine/rules/syntax/ForRule.d.ts +19 -0
- package/out/foundation/engine/rules/syntax/ForRule.d.ts.map +1 -0
- package/out/foundation/engine/rules/syntax/ForRule.js +226 -0
- package/out/foundation/engine/rules/syntax/ForRule.js.map +1 -0
- package/out/foundation/engine/rules/syntax/IfRule.d.ts +17 -0
- package/out/foundation/engine/rules/syntax/IfRule.d.ts.map +1 -0
- package/out/foundation/engine/rules/syntax/IfRule.js +220 -0
- package/out/foundation/engine/rules/syntax/IfRule.js.map +1 -0
- package/out/foundation/worker/Router.d.ts.map +1 -1
- package/out/foundation/worker/Router.js.map +1 -1
- package/out/index.d.ts +2 -0
- package/out/index.d.ts.map +1 -1
- package/out/index.js +2 -0
- package/out/index.js.map +1 -1
- package/package.json +1 -1
- package/src/foundation/Triplet.ts +6 -6
- package/src/foundation/api/Observer.ts +60 -0
- package/src/foundation/component_api/Component.ts +2 -1
- package/src/foundation/component_api/UniHtml.ts +12 -22
- package/src/foundation/engine/BalancedParser.ts +353 -0
- package/src/foundation/engine/EscapeHandler.ts +54 -0
- package/src/foundation/engine/Expression.ts +285 -0
- package/src/foundation/engine/Rule.ts +138 -0
- package/src/foundation/engine/Scope.ts +176 -0
- package/src/foundation/engine/TemplateEngine.ts +318 -0
- package/src/foundation/engine/TemplateInstance.md +110 -0
- package/src/foundation/engine/TemplateInstance.old.ts +673 -0
- package/src/foundation/engine/TemplateInstance.ts +843 -0
- package/src/foundation/engine/exceptions/TemplateExceptions.ts +27 -0
- package/src/foundation/engine/rules/attribute/EventRule.ts +171 -0
- package/src/foundation/engine/rules/attribute/InjectionRule.ts +140 -0
- package/src/foundation/engine/rules/attribute/RefRule.ts +126 -0
- package/src/foundation/engine/rules/syntax/ExpressionRule.ts +102 -0
- package/src/foundation/engine/rules/syntax/ForRule.ts +267 -0
- package/src/foundation/engine/rules/syntax/IfRule.ts +261 -0
- package/src/foundation/worker/Router.ts +1 -1
- package/src/index.ts +8 -0
|
@@ -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;
|
|
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;CAgC9B"}
|
|
@@ -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
|
|
6
|
+
import TemplateEngine from './engine/TemplateEngine.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
|
|
124
|
+
const engine = new TemplateEngine(proto);
|
|
125
125
|
proto._init = async function () {
|
|
126
126
|
const markupText = await that.markup;
|
|
127
127
|
if (!markupText)
|
|
128
|
-
return
|
|
129
|
-
return
|
|
128
|
+
return engine.parse("");
|
|
129
|
+
return engine.parse(markupText);
|
|
130
130
|
};
|
|
131
131
|
proto._postInit = async function (preHtml) {
|
|
132
132
|
const dmc = this.shadowRoot ?? document;
|
|
@@ -136,7 +136,6 @@ export default class Triplet {
|
|
|
136
136
|
...dmc.adoptedStyleSheets,
|
|
137
137
|
style
|
|
138
138
|
];
|
|
139
|
-
//parser.hydrate(preHtml, this);
|
|
140
139
|
return preHtml;
|
|
141
140
|
};
|
|
142
141
|
return ori;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Triplet.js","sourceRoot":"","sources":["../../src/foundation/Triplet.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,aAAa,MAAM,2BAA2B,CAAC;AACtD,OAAO,IAAI,MAAM,yBAAyB,CAAC;AAC3C,OAAO,SAAS,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"Triplet.js","sourceRoot":"","sources":["../../src/foundation/Triplet.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,14 +19,44 @@ export declare class Observer<T> {
|
|
|
19
19
|
unsubscribe(listener: (data: T) => void): void;
|
|
20
20
|
notify(data: T): void;
|
|
21
21
|
}
|
|
22
|
+
export declare class MutationObserver<T> implements IMutationObserver<T> {
|
|
23
|
+
private listeners;
|
|
24
|
+
subscribe(listener: (oldValue: T, newValue: T) => void): void;
|
|
25
|
+
unsubscribe(listener: (oldValue: T, newValue: T) => void): void;
|
|
26
|
+
notify(oldValue: T, newValue: T): void;
|
|
27
|
+
}
|
|
28
|
+
export declare const OBSERVABLE_SYMBOL: unique symbol;
|
|
29
|
+
/**
|
|
30
|
+
* Check if a value is an Observable
|
|
31
|
+
*/
|
|
32
|
+
export declare function isObservable<T = any>(value: any): value is Observable<T>;
|
|
33
|
+
/**
|
|
34
|
+
* Observable - простой реактивный контейнер без Proxy.
|
|
35
|
+
*
|
|
36
|
+
* Для доступа к значению используйте getObject():
|
|
37
|
+
* const user = new Observable({ name: 'Alice', age: 25 });
|
|
38
|
+
* user.getObject().name // 'Alice'
|
|
39
|
+
* user.setObject({ name: 'Bob', age: 30 }); // triggers subscribers
|
|
40
|
+
*
|
|
41
|
+
* В шаблонах синтаксис прозрачный:
|
|
42
|
+
* @(user.name) - автоматически распознаётся как user.getObject().name
|
|
43
|
+
*/
|
|
22
44
|
export default class Observable<T> {
|
|
23
45
|
private object;
|
|
24
46
|
private observer;
|
|
47
|
+
private mutationObserver;
|
|
48
|
+
readonly [OBSERVABLE_SYMBOL] = true;
|
|
25
49
|
constructor(object: T);
|
|
26
50
|
getObject(): T;
|
|
27
51
|
getObserver(): Observer<T>;
|
|
52
|
+
getMutationObserver(): MutationObserver<T>;
|
|
28
53
|
subscribe(listener: (data: T) => void): void;
|
|
29
54
|
unsubscribe(listener: (data: T) => void): void;
|
|
55
|
+
/**
|
|
56
|
+
* Subscribe to mutation events (oldValue, newValue)
|
|
57
|
+
*/
|
|
58
|
+
subscribeMutation(listener: (oldValue: T, newValue: T) => void): void;
|
|
59
|
+
unsubscribeMutation(listener: (oldValue: T, newValue: T) => void): void;
|
|
30
60
|
setObject(object: T): void;
|
|
31
61
|
}
|
|
32
62
|
//# sourceMappingURL=Observer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Observer.d.ts","sourceRoot":"","sources":["../../../src/foundation/api/Observer.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,SAAS,CAAC,CAAC;IACxB,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7C,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC/C,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;CACzB;AACD,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAChC,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC9D,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAChE,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC;CAC1C;AACD,MAAM,WAAW,oBAAoB,CAAC,CAAC,EAAE,CAAC;IACtC,SAAS,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACtE,WAAW,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IACxE,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC;CAClD;AAED,qBAAa,QAAQ,CAAC,CAAC;IACnB,OAAO,CAAC,SAAS,CAAgC;IAE1C,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI;IAG5C,WAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,IAAI;IAI9C,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;CAG/B;
|
|
1
|
+
{"version":3,"file":"Observer.d.ts","sourceRoot":"","sources":["../../../src/foundation/api/Observer.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,9 +10,43 @@ export class Observer {
|
|
|
10
10
|
this.listeners.forEach(listener => listener(data));
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
+
export class MutationObserver {
|
|
14
|
+
listeners = [];
|
|
15
|
+
subscribe(listener) {
|
|
16
|
+
this.listeners.push(listener);
|
|
17
|
+
}
|
|
18
|
+
unsubscribe(listener) {
|
|
19
|
+
this.listeners = this.listeners.filter(l => l !== listener);
|
|
20
|
+
}
|
|
21
|
+
notify(oldValue, newValue) {
|
|
22
|
+
this.listeners.forEach(listener => listener(oldValue, newValue));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
// Symbol to identify Observable instances
|
|
26
|
+
export const OBSERVABLE_SYMBOL = Symbol.for('Observable');
|
|
27
|
+
/**
|
|
28
|
+
* Check if a value is an Observable
|
|
29
|
+
*/
|
|
30
|
+
export function isObservable(value) {
|
|
31
|
+
return value && value[OBSERVABLE_SYMBOL] === true;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Observable - простой реактивный контейнер без Proxy.
|
|
35
|
+
*
|
|
36
|
+
* Для доступа к значению используйте getObject():
|
|
37
|
+
* const user = new Observable({ name: 'Alice', age: 25 });
|
|
38
|
+
* user.getObject().name // 'Alice'
|
|
39
|
+
* user.setObject({ name: 'Bob', age: 30 }); // triggers subscribers
|
|
40
|
+
*
|
|
41
|
+
* В шаблонах синтаксис прозрачный:
|
|
42
|
+
* @(user.name) - автоматически распознаётся как user.getObject().name
|
|
43
|
+
*/
|
|
13
44
|
export default class Observable {
|
|
14
45
|
object;
|
|
15
46
|
observer = new Observer();
|
|
47
|
+
mutationObserver = new MutationObserver();
|
|
48
|
+
// Mark as Observable
|
|
49
|
+
[OBSERVABLE_SYMBOL] = true;
|
|
16
50
|
constructor(object) {
|
|
17
51
|
this.object = object;
|
|
18
52
|
}
|
|
@@ -22,15 +56,29 @@ export default class Observable {
|
|
|
22
56
|
getObserver() {
|
|
23
57
|
return this.observer;
|
|
24
58
|
}
|
|
59
|
+
getMutationObserver() {
|
|
60
|
+
return this.mutationObserver;
|
|
61
|
+
}
|
|
25
62
|
subscribe(listener) {
|
|
26
63
|
this.observer.subscribe(listener);
|
|
27
64
|
}
|
|
28
65
|
unsubscribe(listener) {
|
|
29
66
|
this.observer.unsubscribe(listener);
|
|
30
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Subscribe to mutation events (oldValue, newValue)
|
|
70
|
+
*/
|
|
71
|
+
subscribeMutation(listener) {
|
|
72
|
+
this.mutationObserver.subscribe(listener);
|
|
73
|
+
}
|
|
74
|
+
unsubscribeMutation(listener) {
|
|
75
|
+
this.mutationObserver.unsubscribe(listener);
|
|
76
|
+
}
|
|
31
77
|
setObject(object) {
|
|
78
|
+
const oldObject = this.object;
|
|
32
79
|
this.object = object;
|
|
33
80
|
this.observer.notify(this.object);
|
|
81
|
+
this.mutationObserver.notify(oldObject, this.object);
|
|
34
82
|
}
|
|
35
83
|
}
|
|
36
84
|
//# sourceMappingURL=Observer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Observer.js","sourceRoot":"","sources":["../../../src/foundation/api/Observer.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,QAAQ;IACT,SAAS,GAA6B,EAAE,CAAC;IAE1C,SAAS,CAAC,QAA2B;QACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IACM,WAAW,CAAC,QAA2B;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAChE,CAAC;IAEM,MAAM,CAAC,IAAO;QACjB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;CACJ;
|
|
1
|
+
{"version":3,"file":"Observer.js","sourceRoot":"","sources":["../../../src/foundation/api/Observer.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,QAAQ;IACT,SAAS,GAA6B,EAAE,CAAC;IAE1C,SAAS,CAAC,QAA2B;QACxC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IACM,WAAW,CAAC,QAA2B;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAChE,CAAC;IAEM,MAAM,CAAC,IAAO;QACjB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;CACJ;AAED,MAAM,OAAO,gBAAgB;IACjB,SAAS,GAA8C,EAAE,CAAC;IAE3D,SAAS,CAAC,QAA4C;QACzD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IACM,WAAW,CAAC,QAA4C;QAC3D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;IAChE,CAAC;IAEM,MAAM,CAAC,QAAW,EAAE,QAAW;QAClC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrE,CAAC;CACJ;AAED,0CAA0C;AAC1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,UAAU,YAAY,CAAU,KAAU;IAC5C,OAAO,KAAK,IAAI,KAAK,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;AACtD,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IACnB,MAAM,CAAI;IACV,QAAQ,GAAgB,IAAI,QAAQ,EAAK,CAAC;IAC1C,gBAAgB,GAAwB,IAAI,gBAAgB,EAAK,CAAC;IAE1E,qBAAqB;IACL,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IAE3C,YAAY,MAAS;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAEM,WAAW;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAEM,mBAAmB;QACtB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IACjC,CAAC;IAEM,SAAS,CAAC,QAA2B;QACxC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAEM,WAAW,CAAC,QAA2B;QAC1C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,iBAAiB,CAAC,QAA4C;QACjE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAEM,mBAAmB,CAAC,QAA4C;QACnE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC;IAEM,SAAS,CAAC,MAAS;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACzD,CAAC;CACJ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import IElementHolder from "../api/ElementHolder.js";
|
|
2
1
|
import UniHtml from "../component_api/UniHtml.js";
|
|
2
|
+
import TemplateInstance from "../engine/TemplateInstance.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:
|
|
26
|
+
protected render(element: TemplateInstance, 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":"
|
|
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,gBAAgB,MAAM,+BAA+B,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;;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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Component.js","sourceRoot":"","sources":["../../../src/foundation/component_api/Component.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,6BAA6B,CAAC;
|
|
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,10 +1,4 @@
|
|
|
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";
|
|
1
|
+
import { TemplateInstance } from "../engine/TemplateEngine.js";
|
|
8
2
|
/**
|
|
9
3
|
* Universal SPA component base for pages and elements.
|
|
10
4
|
* Use static factory methods for instantiation.
|
|
@@ -25,20 +19,20 @@ export default class UniHtml {
|
|
|
25
19
|
* РЕКОМЕНДАЦИЯ: предпочитайте выполнять основную подготовку, поиск элементов, навешивание обработчиков
|
|
26
20
|
* на узлы из localRoot именно здесь; затем render() вставит их в целевой контейнер/теневой DOM.
|
|
27
21
|
*/
|
|
28
|
-
protected preLoad(
|
|
22
|
+
protected preLoad(template: TemplateInstance): Promise<void>;
|
|
29
23
|
/**
|
|
30
24
|
* Hook after rendering (e.g., event binding).
|
|
31
25
|
* Для компонентов вызывается после того, как содержимое вставлено в shadowRoot (см. UniHtmlComponent.render()).
|
|
32
26
|
* Используйте этот этап только когда необходим доступ к реально смонтированному DOM (layout/measurements,
|
|
33
27
|
* интеграции, требующие присутствия в документе). В остальных случаях предпочитайте preLoad().
|
|
34
28
|
*/
|
|
35
|
-
protected postLoad(
|
|
29
|
+
protected postLoad(template: TemplateInstance): Promise<void>;
|
|
36
30
|
/**
|
|
37
31
|
* Main rendering step. By default, simply inserts HTML into the container.
|
|
38
32
|
* Override in subclasses for custom rendering logic.
|
|
39
33
|
* @param element Target container
|
|
40
34
|
* @param html HTML content
|
|
41
35
|
*/
|
|
42
|
-
protected render(
|
|
36
|
+
protected render(template: TemplateInstance, renderTarget: HTMLElement | DocumentFragment): Promise<void>;
|
|
43
37
|
}
|
|
44
38
|
//# sourceMappingURL=UniHtml.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniHtml.d.ts","sourceRoot":"","sources":["../../../src/foundation/component_api/UniHtml.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -13,19 +13,17 @@ 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 };
|
|
18
16
|
// ВАЖНО: preLoad() вызывается ДО монтирования в DOM/Shadow DOM.
|
|
19
17
|
// Для компонентов (UniHtmlComponent) на этом этапе ещё нельзя полагаться на this.shadowRoot —
|
|
20
18
|
// используйте переданный localRoot для подготовки DOM, данных и навешивания обработчиков.
|
|
21
19
|
// Это предпочтительный этап инициализации для компонентов.
|
|
22
|
-
await this.preLoad(
|
|
20
|
+
await this.preLoad(html);
|
|
23
21
|
// render() отвечает за помещение содержимого из localRoot в конечную цель (renderTarget).
|
|
24
22
|
// В UniHtmlComponent.render() после вызова базового render() происходит добавление wrapper в shadowRoot.
|
|
25
|
-
await this.render(
|
|
23
|
+
await this.render(html, element);
|
|
26
24
|
// postLoad() вызывается ПОСЛЕ render(). Для компонентов к этому моменту содержимое уже добавлено
|
|
27
25
|
// внутрь shadowRoot, и можно безопасно работать с this.shadowRoot, измерениями layout и т.п.
|
|
28
|
-
await this.postLoad(
|
|
26
|
+
await this.postLoad(html);
|
|
29
27
|
}
|
|
30
28
|
async _postInit(html) {
|
|
31
29
|
throw new Error("Method not implemented.");
|
|
@@ -40,32 +38,26 @@ export default class UniHtml {
|
|
|
40
38
|
* РЕКОМЕНДАЦИЯ: предпочитайте выполнять основную подготовку, поиск элементов, навешивание обработчиков
|
|
41
39
|
* на узлы из localRoot именно здесь; затем render() вставит их в целевой контейнер/теневой DOM.
|
|
42
40
|
*/
|
|
43
|
-
async preLoad(
|
|
41
|
+
async preLoad(template) { }
|
|
44
42
|
/**
|
|
45
43
|
* Hook after rendering (e.g., event binding).
|
|
46
44
|
* Для компонентов вызывается после того, как содержимое вставлено в shadowRoot (см. UniHtmlComponent.render()).
|
|
47
45
|
* Используйте этот этап только когда необходим доступ к реально смонтированному DOM (layout/measurements,
|
|
48
46
|
* интеграции, требующие присутствия в документе). В остальных случаях предпочитайте preLoad().
|
|
49
47
|
*/
|
|
50
|
-
async postLoad(
|
|
48
|
+
async postLoad(template) { }
|
|
51
49
|
/**
|
|
52
50
|
* Main rendering step. By default, simply inserts HTML into the container.
|
|
53
51
|
* Override in subclasses for custom rendering logic.
|
|
54
52
|
* @param element Target container
|
|
55
53
|
* @param html HTML content
|
|
56
54
|
*/
|
|
57
|
-
async render(
|
|
55
|
+
async render(template, renderTarget) {
|
|
58
56
|
// Clear renderTarget
|
|
59
57
|
while (renderTarget.firstChild) {
|
|
60
58
|
renderTarget.removeChild(renderTarget.firstChild);
|
|
61
59
|
}
|
|
62
|
-
|
|
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;
|
|
60
|
+
template.bind(renderTarget);
|
|
69
61
|
return Promise.resolve();
|
|
70
62
|
}
|
|
71
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UniHtml.js","sourceRoot":"","sources":["../../../src/foundation/component_api/UniHtml.ts"],"names":[],"mappings":"
|
|
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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BalancedParser - утилита для парсинга сбалансированных скобок (), {}.
|
|
3
|
+
* Корректно обрабатывает строки и комментарии.
|
|
4
|
+
*/
|
|
5
|
+
export default class BalancedParser {
|
|
6
|
+
/**
|
|
7
|
+
* Найти все сбалансированные выражения с заданным opener.
|
|
8
|
+
* @param input - входная строка
|
|
9
|
+
* @param opener - открывающая последовательность, например '@(' или '@for('
|
|
10
|
+
* @returns массив объектов с content и позициями
|
|
11
|
+
*/
|
|
12
|
+
static parseBalanced(input: string, opener: string, closerChar?: ')' | '}'): Array<{
|
|
13
|
+
content: string;
|
|
14
|
+
start: number;
|
|
15
|
+
end: number;
|
|
16
|
+
}>;
|
|
17
|
+
/**
|
|
18
|
+
* Парсить блочные Rule типа @for(...) { ... }
|
|
19
|
+
* @returns объект с condition (содержимое скобок) и block (содержимое фигурных скобок)
|
|
20
|
+
*/
|
|
21
|
+
static parseBlockRule(input: string, opener: string): Array<{
|
|
22
|
+
condition: string;
|
|
23
|
+
block: string;
|
|
24
|
+
start: number;
|
|
25
|
+
end: number;
|
|
26
|
+
}>;
|
|
27
|
+
/**
|
|
28
|
+
* Парсить @if/@elseif/@else цепочки
|
|
29
|
+
*/
|
|
30
|
+
static parseIfChain(input: string): Array<{
|
|
31
|
+
type: 'if' | 'elseif' | 'else';
|
|
32
|
+
condition?: string;
|
|
33
|
+
block: string;
|
|
34
|
+
start: number;
|
|
35
|
+
end: number;
|
|
36
|
+
}>;
|
|
37
|
+
/**
|
|
38
|
+
* Skip over a string literal (handles escape sequences)
|
|
39
|
+
*/
|
|
40
|
+
private static skipString;
|
|
41
|
+
/**
|
|
42
|
+
* Skip single-line comment
|
|
43
|
+
*/
|
|
44
|
+
private static skipLineComment;
|
|
45
|
+
/**
|
|
46
|
+
* Skip block comment
|
|
47
|
+
*/
|
|
48
|
+
private static skipBlockComment;
|
|
49
|
+
/**
|
|
50
|
+
* Извлечь простые @(expression) без блоков
|
|
51
|
+
*/
|
|
52
|
+
static parseExpressions(input: string): Array<{
|
|
53
|
+
content: string;
|
|
54
|
+
start: number;
|
|
55
|
+
end: number;
|
|
56
|
+
}>;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=BalancedParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BalancedParser.d.ts","sourceRoot":"","sources":["../../../src/foundation/engine/BalancedParser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAE/B;;;;;OAKG;WACW,aAAa,CACvB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,UAAU,GAAE,GAAG,GAAG,GAAS,GAC5B,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAwDzD;;;OAGG;WACW,cAAc,CACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACf,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAqH1E;;OAEG;WACW,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAC7C,IAAI,EAAE,IAAI,GAAG,QAAQ,GAAG,MAAM,CAAC;QAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;KACf,CAAC;IAwFF;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,UAAU;IA0BzB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe;IAO9B;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAW/B;;OAEG;WACW,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAGxG"}
|