@reidelsaltres/pureper 0.1.114 → 0.1.116
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/HMLEParser.d.ts +87 -0
- package/out/foundation/HMLEParser.d.ts.map +1 -0
- package/out/foundation/HMLEParser.js +430 -0
- package/out/foundation/HMLEParser.js.map +1 -0
- package/out/foundation/Triplet.d.ts.map +1 -1
- package/out/foundation/Triplet.js +8 -14
- package/out/foundation/Triplet.js.map +1 -1
- package/out/foundation/api/ElementHolder.d.ts +1 -1
- package/out/foundation/api/ElementHolder.d.ts.map +1 -1
- package/out/foundation/component_api/UniHtml.d.ts +1 -1
- package/out/foundation/component_api/UniHtml.d.ts.map +1 -1
- package/out/foundation/component_api/UniHtml.js +5 -3
- package/out/foundation/component_api/UniHtml.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/HMLEParser.ts +485 -0
- package/src/foundation/Triplet.ts +14 -16
- package/src/foundation/api/ElementHolder.ts +1 -1
- package/src/foundation/component_api/UniHtml.ts +10 -8
- package/src/index.ts +2 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HMLEParser - HTML Markup Language Extensions Parser
|
|
3
|
+
*
|
|
4
|
+
* Two-stage parsing:
|
|
5
|
+
* Stage 1: String processing - @for loops, @(expression) interpolations
|
|
6
|
+
* Stage 2: DOM processing - @[event](handler) bindings, attribute directives
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* const parser = new HMLEParser();
|
|
10
|
+
* parser.addVariable('items', [{name: 'Item 1'}, {name: 'Item 2'}]);
|
|
11
|
+
* const fragment = parser.parseToDOM(templateString, scopeObject);
|
|
12
|
+
*/
|
|
13
|
+
export default class HMLEParser {
|
|
14
|
+
private static extractBalancedBraces;
|
|
15
|
+
private static extractBalancedParens;
|
|
16
|
+
private static rules;
|
|
17
|
+
private static domRules;
|
|
18
|
+
variables: Record<string, unknown>;
|
|
19
|
+
/**
|
|
20
|
+
* Add a variable to the parser's global scope
|
|
21
|
+
*/
|
|
22
|
+
addVariable(name: string, value: unknown): this;
|
|
23
|
+
/**
|
|
24
|
+
* Build execution context that includes prototype methods from scope
|
|
25
|
+
*/
|
|
26
|
+
private buildContext;
|
|
27
|
+
/**
|
|
28
|
+
* Resolve a dotted expression against the parser variables and optional local scope.
|
|
29
|
+
*/
|
|
30
|
+
resolveExpression(expr: string, scope?: Record<string, any>): any;
|
|
31
|
+
/**
|
|
32
|
+
* Convert value to string for text content
|
|
33
|
+
*/
|
|
34
|
+
private stringifyValue;
|
|
35
|
+
/**
|
|
36
|
+
* Evaluate a JavaScript expression in a given context
|
|
37
|
+
*/
|
|
38
|
+
private evaluateInContext;
|
|
39
|
+
/**
|
|
40
|
+
* Parse HMLE template string and return processed HTML string
|
|
41
|
+
* @param content HMLE template string
|
|
42
|
+
* @param scope Optional scope object (can be a class instance)
|
|
43
|
+
* @returns Processed HTML string
|
|
44
|
+
*/
|
|
45
|
+
parse(content: string, scope?: Record<string, any>): string;
|
|
46
|
+
/**
|
|
47
|
+
* Stage 2: Process DOM rules on a fragment
|
|
48
|
+
* Walks all elements and applies DOM rules based on attributes
|
|
49
|
+
*/
|
|
50
|
+
private processDOMRules;
|
|
51
|
+
/**
|
|
52
|
+
* Parse HMLE template and create DOM elements (Stage 1 + Stage 2)
|
|
53
|
+
* @param content HMLE template string
|
|
54
|
+
* @param scope Optional scope object
|
|
55
|
+
* @returns DocumentFragment containing parsed HTML with bindings applied
|
|
56
|
+
*/
|
|
57
|
+
parseToDOM(content: string, scope?: Record<string, any>): DocumentFragment;
|
|
58
|
+
/**
|
|
59
|
+
* Parse HMLE template and return single element (first child)
|
|
60
|
+
* @param content HMLE template string
|
|
61
|
+
* @param scope Optional scope object
|
|
62
|
+
* @returns First element from parsed HTML, or null
|
|
63
|
+
*/
|
|
64
|
+
parseToElement<T extends Element = Element>(content: string, scope?: Record<string, any>): T | null;
|
|
65
|
+
/**
|
|
66
|
+
* Parse and append to a parent element
|
|
67
|
+
* @param content HMLE template string
|
|
68
|
+
* @param parent Parent element to append to
|
|
69
|
+
* @param scope Optional scope object
|
|
70
|
+
* @returns The parent element
|
|
71
|
+
*/
|
|
72
|
+
parseAndAppend(content: string, parent: Element, scope?: Record<string, any>): Element;
|
|
73
|
+
/**
|
|
74
|
+
* Parse and replace element's innerHTML
|
|
75
|
+
* @param content HMLE template string
|
|
76
|
+
* @param element Element to update
|
|
77
|
+
* @param scope Optional scope object
|
|
78
|
+
* @returns The updated element
|
|
79
|
+
*/
|
|
80
|
+
parseAndReplace(content: string, element: Element, scope?: Record<string, any>): Element;
|
|
81
|
+
/**
|
|
82
|
+
* Apply DOM rules to an existing element (Stage 2 only)
|
|
83
|
+
* Useful when you already have DOM and just want to process bindings
|
|
84
|
+
*/
|
|
85
|
+
applyBindings(element: Element, scope?: Record<string, any>): Element;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=HMLEParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HMLEParser.d.ts","sourceRoot":"","sources":["../../src/foundation/HMLEParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AA8BH,MAAM,CAAC,OAAO,OAAO,UAAU;IAE3B,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAcpC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAcpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAkFlB;IAGF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAuHrB;IAEK,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM;IAE/C;;OAEG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAKtD;;OAEG;IACH,OAAO,CAAC,YAAY;IAmBpB;;OAEG;IACI,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;IAWxE;;OAEG;IACH,OAAO,CAAC,cAAc;IAMtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;;;;OAKG;IACI,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAqClE;;;OAGG;IACH,OAAO,CAAC,eAAe;IAuBvB;;;;;OAKG;IACI,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,gBAAgB;IAajF;;;;;OAKG;IACI,cAAc,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI;IAK1G;;;;;;OAMG;IACI,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO;IAM7F;;;;;;OAMG;IACI,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO;IAO/F;;;OAGG;IACI,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO;CAI/E"}
|
|
@@ -0,0 +1,430 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HMLEParser - HTML Markup Language Extensions Parser
|
|
3
|
+
*
|
|
4
|
+
* Two-stage parsing:
|
|
5
|
+
* Stage 1: String processing - @for loops, @(expression) interpolations
|
|
6
|
+
* Stage 2: DOM processing - @[event](handler) bindings, attribute directives
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* const parser = new HMLEParser();
|
|
10
|
+
* parser.addVariable('items', [{name: 'Item 1'}, {name: 'Item 2'}]);
|
|
11
|
+
* const fragment = parser.parseToDOM(templateString, scopeObject);
|
|
12
|
+
*/
|
|
13
|
+
// Stage 1: String-based rules
|
|
14
|
+
class HMLEParserRule {
|
|
15
|
+
pattern;
|
|
16
|
+
replacer;
|
|
17
|
+
constructor(pattern, replacer) {
|
|
18
|
+
this.pattern = pattern;
|
|
19
|
+
this.replacer = replacer;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
// Stage 2: DOM-based rules for attribute processing
|
|
23
|
+
class HMLEDOMRule {
|
|
24
|
+
attrPattern;
|
|
25
|
+
processor;
|
|
26
|
+
constructor(attrPattern, processor) {
|
|
27
|
+
this.attrPattern = attrPattern;
|
|
28
|
+
this.processor = processor;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export default class HMLEParser {
|
|
32
|
+
// Extract balanced braces { ... }
|
|
33
|
+
static extractBalancedBraces(content, start) {
|
|
34
|
+
if (content[start] !== '{')
|
|
35
|
+
return null;
|
|
36
|
+
let depth = 1;
|
|
37
|
+
let i = start + 1;
|
|
38
|
+
while (i < content.length && depth > 0) {
|
|
39
|
+
if (content[i] === '{')
|
|
40
|
+
depth++;
|
|
41
|
+
else if (content[i] === '}')
|
|
42
|
+
depth--;
|
|
43
|
+
i++;
|
|
44
|
+
}
|
|
45
|
+
if (depth !== 0)
|
|
46
|
+
return null;
|
|
47
|
+
return { block: content.slice(start + 1, i - 1), end: i };
|
|
48
|
+
}
|
|
49
|
+
// Extract balanced parentheses ( ... )
|
|
50
|
+
static extractBalancedParens(content, start) {
|
|
51
|
+
if (content[start] !== '(')
|
|
52
|
+
return null;
|
|
53
|
+
let depth = 1;
|
|
54
|
+
let i = start + 1;
|
|
55
|
+
while (i < content.length && depth > 0) {
|
|
56
|
+
if (content[i] === '(')
|
|
57
|
+
depth++;
|
|
58
|
+
else if (content[i] === ')')
|
|
59
|
+
depth--;
|
|
60
|
+
i++;
|
|
61
|
+
}
|
|
62
|
+
if (depth !== 0)
|
|
63
|
+
return null;
|
|
64
|
+
return { block: content.slice(start + 1, i - 1), end: i };
|
|
65
|
+
}
|
|
66
|
+
// Predefined rules processed in order
|
|
67
|
+
static rules = [
|
|
68
|
+
// Rule: @for (item in items) { ... }
|
|
69
|
+
new HMLEParserRule(/@for\s*\(\s*([A-Za-z_$][A-Za-z0-9_$]*)\s+in\s+([A-Za-z_$][A-Za-z0-9_$.]*)\s*\)\s*\{/g, (parser, match, input, scope) => {
|
|
70
|
+
const iterVar = match[1];
|
|
71
|
+
const iterableExpr = match[2];
|
|
72
|
+
const blockStart = match.index + match[0].length - 1; // position of '{'
|
|
73
|
+
const extracted = HMLEParser.extractBalancedBraces(input, blockStart);
|
|
74
|
+
if (!extracted)
|
|
75
|
+
return match[0];
|
|
76
|
+
const inner = extracted.block;
|
|
77
|
+
const resolved = parser.resolveExpression(iterableExpr, scope);
|
|
78
|
+
const arr = Array.isArray(resolved) ? resolved : [];
|
|
79
|
+
const parts = [];
|
|
80
|
+
for (const item of arr) {
|
|
81
|
+
const fullScope = Object.assign({}, scope, { [iterVar]: item });
|
|
82
|
+
parts.push(parser.parse(inner, fullScope));
|
|
83
|
+
}
|
|
84
|
+
return { text: parts.join('\n'), end: extracted.end };
|
|
85
|
+
}),
|
|
86
|
+
// Rule: @(( code )) — double-paren for complex expressions
|
|
87
|
+
new HMLEParserRule(/@\(\(/g, (parser, match, input, scope) => {
|
|
88
|
+
const blockStart = match.index + match[0].length - 1; // points at inner '('
|
|
89
|
+
const extracted = HMLEParser.extractBalancedParens(input, blockStart);
|
|
90
|
+
if (!extracted)
|
|
91
|
+
return match[0];
|
|
92
|
+
const code = extracted.block;
|
|
93
|
+
const ctx = parser.buildContext(scope);
|
|
94
|
+
let result;
|
|
95
|
+
try {
|
|
96
|
+
const fn = new Function('with(this){ return (' + code + '); }');
|
|
97
|
+
result = fn.call(ctx);
|
|
98
|
+
}
|
|
99
|
+
catch (e) {
|
|
100
|
+
try {
|
|
101
|
+
const fn2 = new Function('with(this){ ' + code + ' }');
|
|
102
|
+
result = fn2.call(ctx);
|
|
103
|
+
}
|
|
104
|
+
catch (e2) {
|
|
105
|
+
return { text: '', end: extracted.end };
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
// Skip outer ')' if present
|
|
109
|
+
let finalEnd = extracted.end;
|
|
110
|
+
if (input[extracted.end] === ')')
|
|
111
|
+
finalEnd = extracted.end + 1;
|
|
112
|
+
return { text: parser.stringifyValue(result), end: finalEnd };
|
|
113
|
+
}),
|
|
114
|
+
// Rule: @( code ) — single-paren expression
|
|
115
|
+
new HMLEParserRule(/@\(/g, (parser, match, input, scope) => {
|
|
116
|
+
const blockStart = match.index + match[0].length - 1; // points at '('
|
|
117
|
+
const extracted = HMLEParser.extractBalancedParens(input, blockStart);
|
|
118
|
+
if (!extracted)
|
|
119
|
+
return match[0];
|
|
120
|
+
const code = extracted.block;
|
|
121
|
+
const ctx = parser.buildContext(scope);
|
|
122
|
+
let result;
|
|
123
|
+
try {
|
|
124
|
+
const fn = new Function('with(this){ return (' + code + '); }');
|
|
125
|
+
result = fn.call(ctx);
|
|
126
|
+
}
|
|
127
|
+
catch (e) {
|
|
128
|
+
try {
|
|
129
|
+
const fn2 = new Function('with(this){ ' + code + ' }');
|
|
130
|
+
result = fn2.call(ctx);
|
|
131
|
+
}
|
|
132
|
+
catch (e2) {
|
|
133
|
+
return { text: '', end: extracted.end };
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return { text: parser.stringifyValue(result), end: extracted.end };
|
|
137
|
+
}),
|
|
138
|
+
];
|
|
139
|
+
// Stage 2: DOM rules for attribute processing
|
|
140
|
+
static domRules = [
|
|
141
|
+
// Rule: @[eventName](expression) — event binding
|
|
142
|
+
// Example: @[onClick](handleClick) or @[onInput](value = $event.target.value)
|
|
143
|
+
new HMLEDOMRule(/^@\[on([A-Za-z]+)\]$/i, (parser, element, attrName, attrValue, match, scope) => {
|
|
144
|
+
const eventName = match[1].toLowerCase(); // onClick -> click
|
|
145
|
+
const ctx = parser.buildContext(scope);
|
|
146
|
+
const handler = (event) => {
|
|
147
|
+
// Add $event to context
|
|
148
|
+
const eventCtx = Object.assign({}, ctx, { $event: event, $el: element });
|
|
149
|
+
try {
|
|
150
|
+
const fn = new Function('with(this){ ' + attrValue + ' }');
|
|
151
|
+
fn.call(eventCtx);
|
|
152
|
+
}
|
|
153
|
+
catch (e) {
|
|
154
|
+
console.error(`HMLEParser: Error in @[on${match[1]}] handler:`, e);
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
element.addEventListener(eventName, handler);
|
|
158
|
+
element.removeAttribute(attrName);
|
|
159
|
+
}),
|
|
160
|
+
// Rule: @[bind:attribute](expression) — two-way binding
|
|
161
|
+
// Example: @[bind:value](inputValue)
|
|
162
|
+
new HMLEDOMRule(/^@\[bind:([A-Za-z-]+)\]$/, (parser, element, attrName, attrValue, match, scope) => {
|
|
163
|
+
const boundAttr = match[1];
|
|
164
|
+
const ctx = parser.buildContext(scope);
|
|
165
|
+
// Set initial value
|
|
166
|
+
const initialValue = parser.evaluateInContext(attrValue, ctx);
|
|
167
|
+
if (boundAttr === 'value' && 'value' in element) {
|
|
168
|
+
element.value = initialValue ?? '';
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
element.setAttribute(boundAttr, parser.stringifyValue(initialValue));
|
|
172
|
+
}
|
|
173
|
+
// For input elements, listen for changes
|
|
174
|
+
if (boundAttr === 'value' && (element.tagName === 'INPUT' || element.tagName === 'TEXTAREA' || element.tagName === 'SELECT')) {
|
|
175
|
+
element.addEventListener('input', (event) => {
|
|
176
|
+
const newValue = event.target.value;
|
|
177
|
+
// Try to update the bound variable in scope
|
|
178
|
+
if (scope && attrValue in scope) {
|
|
179
|
+
scope[attrValue] = newValue;
|
|
180
|
+
}
|
|
181
|
+
else if (attrValue in parser.variables) {
|
|
182
|
+
parser.variables[attrValue] = newValue;
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
element.removeAttribute(attrName);
|
|
187
|
+
}),
|
|
188
|
+
// Rule: @[ref](refName) — element reference
|
|
189
|
+
// Example: @[ref](myButton)
|
|
190
|
+
new HMLEDOMRule(/^@\[ref\]$/, (parser, element, attrName, attrValue, match, scope) => {
|
|
191
|
+
if (scope && attrValue) {
|
|
192
|
+
scope[attrValue] = element;
|
|
193
|
+
}
|
|
194
|
+
else if (attrValue) {
|
|
195
|
+
parser.variables[attrValue] = element;
|
|
196
|
+
}
|
|
197
|
+
element.removeAttribute(attrName);
|
|
198
|
+
}),
|
|
199
|
+
// Rule: @[class:className](condition) — conditional class
|
|
200
|
+
// Example: @[class:active](isActive)
|
|
201
|
+
new HMLEDOMRule(/^@\[class:([A-Za-z_-][A-Za-z0-9_-]*)\]$/, (parser, element, attrName, attrValue, match, scope) => {
|
|
202
|
+
const className = match[1];
|
|
203
|
+
const ctx = parser.buildContext(scope);
|
|
204
|
+
const condition = parser.evaluateInContext(attrValue, ctx);
|
|
205
|
+
if (condition) {
|
|
206
|
+
element.classList.add(className);
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
element.classList.remove(className);
|
|
210
|
+
}
|
|
211
|
+
element.removeAttribute(attrName);
|
|
212
|
+
}),
|
|
213
|
+
// Rule: @[style:property](expression) — dynamic style
|
|
214
|
+
// Example: @[style:color](textColor)
|
|
215
|
+
new HMLEDOMRule(/^@\[style:([A-Za-z-]+)\]$/, (parser, element, attrName, attrValue, match, scope) => {
|
|
216
|
+
const styleProp = match[1];
|
|
217
|
+
const ctx = parser.buildContext(scope);
|
|
218
|
+
const value = parser.evaluateInContext(attrValue, ctx);
|
|
219
|
+
if (value != null) {
|
|
220
|
+
element.style.setProperty(styleProp, String(value));
|
|
221
|
+
}
|
|
222
|
+
element.removeAttribute(attrName);
|
|
223
|
+
}),
|
|
224
|
+
// Rule: @[if](condition) — conditional rendering
|
|
225
|
+
// Example: @[if](showElement)
|
|
226
|
+
new HMLEDOMRule(/^@\[if\]$/, (parser, element, attrName, attrValue, match, scope) => {
|
|
227
|
+
const ctx = parser.buildContext(scope);
|
|
228
|
+
const condition = parser.evaluateInContext(attrValue, ctx);
|
|
229
|
+
if (!condition) {
|
|
230
|
+
// Create a placeholder comment
|
|
231
|
+
const placeholder = document.createComment(`@[if](${attrValue})`);
|
|
232
|
+
element.parentNode?.replaceChild(placeholder, element);
|
|
233
|
+
}
|
|
234
|
+
else {
|
|
235
|
+
element.removeAttribute(attrName);
|
|
236
|
+
}
|
|
237
|
+
}),
|
|
238
|
+
];
|
|
239
|
+
variables = {};
|
|
240
|
+
/**
|
|
241
|
+
* Add a variable to the parser's global scope
|
|
242
|
+
*/
|
|
243
|
+
addVariable(name, value) {
|
|
244
|
+
this.variables[name] = value;
|
|
245
|
+
return this;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Build execution context that includes prototype methods from scope
|
|
249
|
+
*/
|
|
250
|
+
buildContext(scope) {
|
|
251
|
+
const ctx = Object.assign({}, this.variables);
|
|
252
|
+
if (scope) {
|
|
253
|
+
// Copy own properties
|
|
254
|
+
Object.assign(ctx, scope);
|
|
255
|
+
// Copy prototype methods (for class instances)
|
|
256
|
+
let proto = Object.getPrototypeOf(scope);
|
|
257
|
+
while (proto && proto !== Object.prototype) {
|
|
258
|
+
for (const key of Object.getOwnPropertyNames(proto)) {
|
|
259
|
+
if (key !== 'constructor' && typeof proto[key] === 'function' && !(key in ctx)) {
|
|
260
|
+
ctx[key] = proto[key].bind(scope);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
proto = Object.getPrototypeOf(proto);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
return ctx;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Resolve a dotted expression against the parser variables and optional local scope.
|
|
270
|
+
*/
|
|
271
|
+
resolveExpression(expr, scope) {
|
|
272
|
+
const combined = this.buildContext(scope);
|
|
273
|
+
const parts = expr.split('.').map(p => p.trim()).filter(Boolean);
|
|
274
|
+
let cur = combined;
|
|
275
|
+
for (const part of parts) {
|
|
276
|
+
if (cur == null)
|
|
277
|
+
return undefined;
|
|
278
|
+
cur = cur[part];
|
|
279
|
+
}
|
|
280
|
+
return cur;
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Convert value to string for text content
|
|
284
|
+
*/
|
|
285
|
+
stringifyValue(val) {
|
|
286
|
+
if (val == null)
|
|
287
|
+
return '';
|
|
288
|
+
if (typeof val === 'string')
|
|
289
|
+
return val;
|
|
290
|
+
return String(val);
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Evaluate a JavaScript expression in a given context
|
|
294
|
+
*/
|
|
295
|
+
evaluateInContext(code, ctx) {
|
|
296
|
+
try {
|
|
297
|
+
const fn = new Function('with(this){ return (' + code + '); }');
|
|
298
|
+
return fn.call(ctx);
|
|
299
|
+
}
|
|
300
|
+
catch (e) {
|
|
301
|
+
try {
|
|
302
|
+
const fn2 = new Function('with(this){ ' + code + ' }');
|
|
303
|
+
return fn2.call(ctx);
|
|
304
|
+
}
|
|
305
|
+
catch (e2) {
|
|
306
|
+
return undefined;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Parse HMLE template string and return processed HTML string
|
|
312
|
+
* @param content HMLE template string
|
|
313
|
+
* @param scope Optional scope object (can be a class instance)
|
|
314
|
+
* @returns Processed HTML string
|
|
315
|
+
*/
|
|
316
|
+
parse(content, scope) {
|
|
317
|
+
let working = content;
|
|
318
|
+
for (const rule of HMLEParser.rules) {
|
|
319
|
+
const pattern = rule.pattern;
|
|
320
|
+
let result = '';
|
|
321
|
+
let lastIndex = 0;
|
|
322
|
+
let match;
|
|
323
|
+
// Reset scanning position
|
|
324
|
+
pattern.lastIndex = 0;
|
|
325
|
+
while ((match = pattern.exec(working)) !== null) {
|
|
326
|
+
// Append text before this match
|
|
327
|
+
result += working.slice(lastIndex, match.index);
|
|
328
|
+
const out = rule.replacer(this, match, working, scope);
|
|
329
|
+
if (typeof out === 'string') {
|
|
330
|
+
result += out;
|
|
331
|
+
lastIndex = match.index + match[0].length;
|
|
332
|
+
}
|
|
333
|
+
else {
|
|
334
|
+
result += out.text;
|
|
335
|
+
lastIndex = out.end;
|
|
336
|
+
}
|
|
337
|
+
// Continue scanning from the correct position
|
|
338
|
+
pattern.lastIndex = lastIndex;
|
|
339
|
+
}
|
|
340
|
+
// Append tail and update working
|
|
341
|
+
result += working.slice(lastIndex);
|
|
342
|
+
working = result;
|
|
343
|
+
}
|
|
344
|
+
return working;
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Stage 2: Process DOM rules on a fragment
|
|
348
|
+
* Walks all elements and applies DOM rules based on attributes
|
|
349
|
+
*/
|
|
350
|
+
processDOMRules(fragment, scope) {
|
|
351
|
+
const elements = fragment instanceof DocumentFragment
|
|
352
|
+
? Array.from(fragment.querySelectorAll('*'))
|
|
353
|
+
: [fragment, ...Array.from(fragment.querySelectorAll('*'))];
|
|
354
|
+
for (const element of elements) {
|
|
355
|
+
// Get all attributes to process (copy to avoid mutation issues)
|
|
356
|
+
const attrs = Array.from(element.attributes);
|
|
357
|
+
for (const attr of attrs) {
|
|
358
|
+
// Check each DOM rule
|
|
359
|
+
for (const rule of HMLEParser.domRules) {
|
|
360
|
+
rule.attrPattern.lastIndex = 0;
|
|
361
|
+
const match = rule.attrPattern.exec(attr.name);
|
|
362
|
+
if (match) {
|
|
363
|
+
rule.processor(this, element, attr.name, attr.value, match, scope);
|
|
364
|
+
break; // Only one rule per attribute
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
/**
|
|
371
|
+
* Parse HMLE template and create DOM elements (Stage 1 + Stage 2)
|
|
372
|
+
* @param content HMLE template string
|
|
373
|
+
* @param scope Optional scope object
|
|
374
|
+
* @returns DocumentFragment containing parsed HTML with bindings applied
|
|
375
|
+
*/
|
|
376
|
+
parseToDOM(content, scope) {
|
|
377
|
+
// Stage 1: String processing
|
|
378
|
+
const html = this.parse(content, scope);
|
|
379
|
+
const template = document.createElement('template');
|
|
380
|
+
template.innerHTML = html.trim();
|
|
381
|
+
const fragment = template.content;
|
|
382
|
+
// Stage 2: DOM processing
|
|
383
|
+
this.processDOMRules(fragment, scope);
|
|
384
|
+
return fragment;
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Parse HMLE template and return single element (first child)
|
|
388
|
+
* @param content HMLE template string
|
|
389
|
+
* @param scope Optional scope object
|
|
390
|
+
* @returns First element from parsed HTML, or null
|
|
391
|
+
*/
|
|
392
|
+
parseToElement(content, scope) {
|
|
393
|
+
const fragment = this.parseToDOM(content, scope);
|
|
394
|
+
return fragment.firstElementChild;
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Parse and append to a parent element
|
|
398
|
+
* @param content HMLE template string
|
|
399
|
+
* @param parent Parent element to append to
|
|
400
|
+
* @param scope Optional scope object
|
|
401
|
+
* @returns The parent element
|
|
402
|
+
*/
|
|
403
|
+
parseAndAppend(content, parent, scope) {
|
|
404
|
+
const fragment = this.parseToDOM(content, scope);
|
|
405
|
+
parent.appendChild(fragment);
|
|
406
|
+
return parent;
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Parse and replace element's innerHTML
|
|
410
|
+
* @param content HMLE template string
|
|
411
|
+
* @param element Element to update
|
|
412
|
+
* @param scope Optional scope object
|
|
413
|
+
* @returns The updated element
|
|
414
|
+
*/
|
|
415
|
+
parseAndReplace(content, element, scope) {
|
|
416
|
+
const fragment = this.parseToDOM(content, scope);
|
|
417
|
+
element.innerHTML = '';
|
|
418
|
+
element.appendChild(fragment);
|
|
419
|
+
return element;
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Apply DOM rules to an existing element (Stage 2 only)
|
|
423
|
+
* Useful when you already have DOM and just want to process bindings
|
|
424
|
+
*/
|
|
425
|
+
applyBindings(element, scope) {
|
|
426
|
+
this.processDOMRules(element, scope);
|
|
427
|
+
return element;
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
//# sourceMappingURL=HMLEParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HMLEParser.js","sourceRoot":"","sources":["../../src/foundation/HMLEParser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,8BAA8B;AAC9B,MAAM,cAAc;IACT,OAAO,CAAS;IAChB,QAAQ,CAAqI;IAEpJ,YACI,OAAe,EACf,QAA4I;QAE5I,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CACJ;AAED,oDAAoD;AACpD,MAAM,WAAW;IACN,WAAW,CAAS;IACpB,SAAS,CAA2I;IAE3J,YACI,WAAmB,EACnB,SAAmJ;QAEnJ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;CACJ;AAED,MAAM,CAAC,OAAO,OAAO,UAAU;IAC3B,kCAAkC;IAC1B,MAAM,CAAC,qBAAqB,CAAC,OAAe,EAAE,KAAa;QAC/D,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,KAAK,EAAE,CAAC;iBAC3B,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,KAAK,EAAE,CAAC;YACrC,CAAC,EAAE,CAAC;QACR,CAAC;QACD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7B,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAC9D,CAAC;IAED,uCAAuC;IAC/B,MAAM,CAAC,qBAAqB,CAAC,OAAe,EAAE,KAAa;QAC/D,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QACxC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAClB,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,KAAK,EAAE,CAAC;iBAC3B,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,KAAK,EAAE,CAAC;YACrC,CAAC,EAAE,CAAC;QACR,CAAC;QACD,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7B,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAC9D,CAAC;IAED,sCAAsC;IAC9B,MAAM,CAAC,KAAK,GAAqB;QACrC,qCAAqC;QACrC,IAAI,cAAc,CAAC,sFAAsF,EACrG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,kBAAkB;YAExE,MAAM,SAAS,GAAG,UAAU,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACtE,IAAI,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;YAEhC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;YAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;YAC/D,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YAEpD,MAAM,KAAK,GAAa,EAAE,CAAC;YAC3B,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;gBACrB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;YAC/C,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC;QAC1D,CAAC,CACJ;QAED,2DAA2D;QAC3D,IAAI,cAAc,CAAC,QAAQ,EACvB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,sBAAsB;YAE5E,MAAM,SAAS,GAAG,UAAU,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACtE,IAAI,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;YAEhC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,MAAW,CAAC;YAChB,IAAI,CAAC;gBACD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,sBAAsB,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC;gBAChE,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC;oBACD,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;oBACvD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;gBAAC,OAAO,EAAE,EAAE,CAAC;oBACV,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC;gBAC5C,CAAC;YACL,CAAC;YAED,4BAA4B;YAC5B,IAAI,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC;YAC7B,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,GAAG;gBAAE,QAAQ,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;YAE/D,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC;QAClE,CAAC,CACJ;QAED,4CAA4C;QAC5C,IAAI,cAAc,CAAC,MAAM,EACrB,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,gBAAgB;YAEtE,MAAM,SAAS,GAAG,UAAU,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;YACtE,IAAI,CAAC,SAAS;gBAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;YAEhC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,MAAW,CAAC;YAChB,IAAI,CAAC;gBACD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,sBAAsB,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC;gBAChE,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC;oBACD,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;oBACvD,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC3B,CAAC;gBAAC,OAAO,EAAE,EAAE,CAAC;oBACV,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC;gBAC5C,CAAC;YACL,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC;QACvE,CAAC,CACJ;KACJ,CAAC;IAEF,8CAA8C;IACtC,MAAM,CAAC,QAAQ,GAAkB;QACrC,iDAAiD;QACjD,8EAA8E;QAC9E,IAAI,WAAW,CAAC,uBAAuB,EACnC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACnD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,mBAAmB;YAC7D,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAEvC,MAAM,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;gBAC7B,wBAAwB;gBACxB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;gBACzE,IAAI,CAAC;oBACD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,cAAc,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;oBAC3D,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtB,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,OAAO,CAAC,KAAK,CAAC,4BAA4B,KAAK,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBACvE,CAAC;YACL,CAAC,CAAC;YAEF,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CACJ;QAED,wDAAwD;QACxD,qCAAqC;QACrC,IAAI,WAAW,CAAC,0BAA0B,EACtC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACnD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAEvC,oBAAoB;YACpB,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC9D,IAAI,SAAS,KAAK,OAAO,IAAI,OAAO,IAAI,OAAO,EAAE,CAAC;gBAC7C,OAA4B,CAAC,KAAK,GAAG,YAAY,IAAI,EAAE,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;YACzE,CAAC;YAED,yCAAyC;YACzC,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,UAAU,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,EAAE,CAAC;gBAC3H,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACxC,MAAM,QAAQ,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;oBAC1D,4CAA4C;oBAC5C,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;wBAC9B,KAAK,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;oBAChC,CAAC;yBAAM,IAAI,SAAS,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;wBACvC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC;oBAC3C,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;YAED,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CACJ;QAED,4CAA4C;QAC5C,4BAA4B;QAC5B,IAAI,WAAW,CAAC,YAAY,EACxB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACnD,IAAI,KAAK,IAAI,SAAS,EAAE,CAAC;gBACrB,KAAK,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;YAC/B,CAAC;iBAAM,IAAI,SAAS,EAAE,CAAC;gBACnB,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;YAC1C,CAAC;YACD,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CACJ;QAED,0DAA0D;QAC1D,qCAAqC;QACrC,IAAI,WAAW,CAAC,yCAAyC,EACrD,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACnD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,SAAS,GAAG,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAE3D,IAAI,SAAS,EAAE,CAAC;gBACZ,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACxC,CAAC;YAED,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CACJ;QAED,sDAAsD;QACtD,qCAAqC;QACrC,IAAI,WAAW,CAAC,2BAA2B,EACvC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACnD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAEvD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;gBACf,OAAuB,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACzE,CAAC;YAED,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC,CACJ;QAED,iDAAiD;QACjD,8BAA8B;QAC9B,IAAI,WAAW,CAAC,WAAW,EACvB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YACnD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACvC,MAAM,SAAS,GAAa,MAAM,CAAC,iBAAiB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAErE,IAAI,CAAC,SAAS,EAAE,CAAC;gBACb,+BAA+B;gBAC/B,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,SAAS,SAAS,GAAG,CAAC,CAAC;gBAClE,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC3D,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;QACL,CAAC,CACJ;KACJ,CAAC;IAEK,SAAS,GAA4B,EAAE,CAAC;IAE/C;;OAEG;IACI,WAAW,CAAC,IAAY,EAAE,KAAc;QAC3C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC7B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,KAA2B;QAC5C,MAAM,GAAG,GAAwB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnE,IAAI,KAAK,EAAE,CAAC;YACR,sBAAsB;YACtB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC1B,+CAA+C;YAC/C,IAAI,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACzC,OAAO,KAAK,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;gBACzC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClD,IAAI,GAAG,KAAK,aAAa,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,UAAU,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;wBAC7E,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACtC,CAAC;gBACL,CAAC;gBACD,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;QACL,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;OAEG;IACI,iBAAiB,CAAC,IAAY,EAAE,KAA2B;QAC9D,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjE,IAAI,GAAG,GAAQ,QAAQ,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,GAAG,IAAI,IAAI;gBAAE,OAAO,SAAS,CAAC;YAClC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,GAAG,CAAC;IACf,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,GAAQ;QAC3B,IAAI,GAAG,IAAI,IAAI;YAAE,OAAO,EAAE,CAAC;QAC3B,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC;QACxC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,IAAY,EAAE,GAAwB;QAC5D,IAAI,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,sBAAsB,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC;YAChE,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,IAAI,QAAQ,CAAC,cAAc,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;gBACvD,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACV,OAAO,SAAS,CAAC;YACrB,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,OAAe,EAAE,KAA2B;QACrD,IAAI,OAAO,GAAG,OAAO,CAAC;QAEtB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7B,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,IAAI,KAA6B,CAAC;YAElC,0BAA0B;YAC1B,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;YACtB,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC9C,gCAAgC;gBAChC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBAEhD,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;gBAEvD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC1B,MAAM,IAAI,GAAG,CAAC;oBACd,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC9C,CAAC;qBAAM,CAAC;oBACJ,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC;oBACnB,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC;gBACxB,CAAC;gBAED,8CAA8C;gBAC9C,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YAClC,CAAC;YAED,iCAAiC;YACjC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACnC,OAAO,GAAG,MAAM,CAAC;QACrB,CAAC;QAED,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;OAGG;IACK,eAAe,CAAC,QAAoC,EAAE,KAA2B;QACrF,MAAM,QAAQ,GAAG,QAAQ,YAAY,gBAAgB;YACjD,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAEhE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,gEAAgE;YAChE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAE7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,sBAAsB;gBACtB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;oBACrC,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC;oBAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC/C,IAAI,KAAK,EAAE,CAAC;wBACR,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;wBACnE,MAAM,CAAC,8BAA8B;oBACzC,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,UAAU,CAAC,OAAe,EAAE,KAA2B;QAC1D,6BAA6B;QAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACpD,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC;QAElC,0BAA0B;QAC1B,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAEtC,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;;;OAKG;IACI,cAAc,CAA8B,OAAe,EAAE,KAA2B;QAC3F,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,QAAQ,CAAC,iBAA6B,CAAC;IAClD,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CAAC,OAAe,EAAE,MAAe,EAAE,KAA2B;QAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACI,eAAe,CAAC,OAAe,EAAE,OAAgB,EAAE,KAA2B;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,CAAC,SAAS,GAAG,EAAE,CAAC;QACvB,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,OAAO,CAAC;IACnB,CAAC;IAED;;;OAGG;IACI,aAAa,CAAC,OAAgB,EAAE,KAA2B;QAC9D,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACrC,OAAO,OAAO,CAAC;IACnB,CAAC"}
|
|
@@ -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,MAAM,CAAC,OAAO,OAAO,OAAO,CAAC,CAAC,SAAS,OAAO,CAAE,YAAW,QAAQ;IAC/D,OAAO,CAAC,GAAG,CAAC,CAA0B;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IAEpC,SAAgB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChC,SAAgB,GAAG,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAgB,EAAE,CAAC,EAAE,MAAM,CAAC;IAE5B,SAAgB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;gBAE9C,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IAWhC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAcxB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAcnC,OAAO,CAAC,UAAU;IAUL,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwDhF,OAAO,CAAC,mBAAmB;CAmC9B;AAED,UAAU,QAAQ;IACd,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,oBAAY,UAAU;IAClB,IAAI,IAAI;IACR,OAAO,IAAS;IAChB,MAAM,IAAS;IACf,IAAI,IAAmB;CAC1B;AAED,qBAAa,cAAc,CAAC,CAAC,SAAS,OAAO,CAAE,YAAW,QAAQ;aAO1C,MAAM,CAAC,EAAE,MAAM;aACf,GAAG,CAAC,EAAE,MAAM;aACZ,EAAE,CAAC,EAAE,MAAM;IARxB,GAAG,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAC9B,MAAM,EAAE,UAAU,CAAmB;IAE5C,SAAgB,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAEjE,OAAO;WAMO,MAAM,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC;IAQ/F,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;IAIxD,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC;IAIjD,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC;IAM/C,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC;CAG7B"}
|
|
@@ -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 HMLEParser from "./HMLEParser.js";
|
|
7
7
|
import { HOSTING_ORIGIN } from "../index.js";
|
|
8
8
|
export default class Triplet {
|
|
9
9
|
uni;
|
|
@@ -116,30 +116,24 @@ export default class Triplet {
|
|
|
116
116
|
};
|
|
117
117
|
let proto = ori.prototype;
|
|
118
118
|
proto._init = async function () {
|
|
119
|
-
///
|
|
120
119
|
const fullPath = that.markup;
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
markup = parser.parse(await Fetcher.fetchText(fullPath), this);
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
markup = await Fetcher.fetchText(fullPath);
|
|
128
|
-
}
|
|
129
|
-
///
|
|
130
|
-
return markup;
|
|
120
|
+
const parser = new HMLEParser();
|
|
121
|
+
var domFragment = parser.parseToDOM(await Fetcher.fetchText(fullPath), this);
|
|
122
|
+
return domFragment;
|
|
131
123
|
};
|
|
132
124
|
proto._postInit = async function (preHtml) {
|
|
133
125
|
if (that.css) {
|
|
134
126
|
const link = that.createLink(that.css);
|
|
135
|
-
preHtml
|
|
127
|
+
preHtml.prepend(link);
|
|
128
|
+
//preHtml.appendChild(link);
|
|
136
129
|
}
|
|
137
130
|
for (const [type, filePath] of that.additionalFiles) {
|
|
138
131
|
if (!filePath.endsWith(".css"))
|
|
139
132
|
continue;
|
|
140
133
|
if (type !== 'light-dom') {
|
|
141
134
|
const link = that.createLink(filePath);
|
|
142
|
-
preHtml
|
|
135
|
+
preHtml.prepend(link);
|
|
136
|
+
//preHtml.appendChild(link)
|
|
143
137
|
}
|
|
144
138
|
}
|
|
145
139
|
return preHtml;
|
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementHolder.d.ts","sourceRoot":"","sources":["../../../src/foundation/api/ElementHolder.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,cAAc;IACnC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"ElementHolder.d.ts","sourceRoot":"","sources":["../../../src/foundation/api/ElementHolder.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,WAAW,cAAc;IACnC,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,gBAAgB,CAAC;CACpD"}
|
|
@@ -39,6 +39,6 @@ export default class UniHtml {
|
|
|
39
39
|
* @param element Target container
|
|
40
40
|
* @param html HTML content
|
|
41
41
|
*/
|
|
42
|
-
protected render(holder: IElementHolder, renderTarget: HTMLElement |
|
|
42
|
+
protected render(holder: IElementHolder, renderTarget: HTMLElement | DocumentFragment): Promise<void>;
|
|
43
43
|
}
|
|
44
44
|
//# sourceMappingURL=UniHtml.d.ts.map
|