@miurajs/miura-render 0.3.24 → 0.3.26
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/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/src/binding-manager/binding-manager.d.ts +2 -3
- package/dist/src/binding-manager/binding-manager.d.ts.map +1 -1
- package/dist/src/binding-manager/binding-manager.js +89 -92
- package/dist/src/binding-manager/binding-manager.js.map +1 -1
- package/dist/src/binding-manager/bindings/event-binding.d.ts +4 -0
- package/dist/src/binding-manager/bindings/event-binding.d.ts.map +1 -1
- package/dist/src/binding-manager/bindings/event-binding.js +23 -3
- package/dist/src/binding-manager/bindings/event-binding.js.map +1 -1
- package/dist/src/compiler/code-factory.d.ts +1 -1
- package/dist/src/compiler/code-factory.d.ts.map +1 -1
- package/dist/src/compiler/code-factory.js +2 -75
- package/dist/src/compiler/code-factory.js.map +1 -1
- package/dist/src/compiler/compiler.d.ts.map +1 -1
- package/dist/src/compiler/compiler.js +2 -3
- package/dist/src/compiler/compiler.js.map +1 -1
- package/dist/src/processor/dom-fragment.d.ts +3 -0
- package/dist/src/processor/dom-fragment.d.ts.map +1 -0
- package/dist/src/processor/dom-fragment.js +114 -0
- package/dist/src/processor/dom-fragment.js.map +1 -0
- package/dist/src/processor/processor.d.ts +1 -31
- package/dist/src/processor/processor.d.ts.map +1 -1
- package/dist/src/processor/processor.js +6 -177
- package/dist/src/processor/processor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-factory.js","sourceRoot":"","sources":["../../../src/compiler/code-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAqB3D,iFAAiF;AAEjF,MAAM,OAAO,GAAG,QAAQ,CAAA
|
|
1
|
+
{"version":3,"file":"code-factory.js","sourceRoot":"","sources":["../../../src/compiler/code-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAe,MAAM,8BAA8B,CAAC;AAM3E;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,EAAE,SAAS;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9E;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,IAAI,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IAC3E;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CACpD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,gBAAgB;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwD;IACpF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyD;IACvF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAEhD;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB;
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAe,MAAM,8BAA8B,CAAC;AAM3E;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,EAAE,SAAS;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC9E;;;;OAIG;IACH,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG;QAAE,QAAQ,EAAE,gBAAgB,CAAC;QAAC,IAAI,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IAC3E;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;CACpD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,gBAAgB;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwD;IACpF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyD;IACvF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAEhD;;;;OAIG;IACH,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB;IAqCjD,mEAAmE;IACnE,UAAU,IAAI,IAAI;IAMlB,OAAO,CAAC,WAAW;CAQtB"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BindingType } from '../processor/template-result';
|
|
2
2
|
import { TemplateParser } from '../processor/parser';
|
|
3
3
|
import { CodeFactory } from './code-factory';
|
|
4
|
-
import { applyStaticUtilities } from '../utilities/apply-static-utilities';
|
|
5
4
|
import { applyUtilityValue, clearAppliedUtilities } from '../utilities/utility-resolver';
|
|
5
|
+
import { createDOMFragment } from '../processor/dom-fragment';
|
|
6
6
|
/**
|
|
7
7
|
* TemplateCompiler — compiles a TemplateResult into optimised render/update
|
|
8
8
|
* functions using CodeFactory.
|
|
@@ -58,8 +58,7 @@ export class TemplateCompiler {
|
|
|
58
58
|
nodeBindingIndices,
|
|
59
59
|
directiveBindingInfos,
|
|
60
60
|
render(values) {
|
|
61
|
-
const rendered = renderFn(parsed.html, values, applyUtilityValue, clearAppliedUtilities);
|
|
62
|
-
applyStaticUtilities(rendered.fragment);
|
|
61
|
+
const rendered = renderFn(parsed.html, values, applyUtilityValue, clearAppliedUtilities, createDOMFragment);
|
|
63
62
|
updateFn(rendered.refs, values, applyUtilityValue, clearAppliedUtilities);
|
|
64
63
|
return rendered;
|
|
65
64
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAkB,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAsC,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/compiler/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAkB,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAsC,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAoC9D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,gBAAgB;IAA7B;QACqB,gBAAW,GAAI,IAAI,OAAO,EAAwC,CAAC;QACnE,kBAAa,GAAG,IAAI,OAAO,EAA0C,CAAC;QACtE,YAAO,GAAG,IAAI,cAAc,EAAE,CAAC;IA2DpD,CAAC;IAzDG;;;;OAIG;IACH,OAAO,CAAC,MAAsB;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAE1B,MAAM,MAAM,GAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QAEvC,MAAM,QAAQ,GAAqB,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAqB,OAAO,CAAC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEnF,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ;aACrC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACnD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE3B,MAAM,qBAAqB,GAAG,MAAM,CAAC,QAAQ;aACxC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,SAAS;YAC3C,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE;YACzD,CAAC,CAAC,IAAI,CAAC;aACV,MAAM,CAAC,CAAC,CAAC,EAA2C,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAExE,MAAM,QAAQ,GAAqB;YAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,kBAAkB;YAClB,qBAAqB;YACrB,MAAM,CAAC,MAAM;gBACT,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,iBAAiB,CAAC,CAAC;gBAC5G,QAAQ,CAAC,QAAQ,CAAC,IAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;gBACjF,OAAO,QAAQ,CAAC;YACpB,CAAC;YACD,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,QAAQ,CAAC,IAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;SACpG,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjD,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,mEAAmE;IACnE,UAAU;QACN,sDAAsD;QACrD,IAAY,CAAC,WAAW,GAAK,IAAI,OAAO,EAAE,CAAC;QAC3C,IAAY,CAAC,aAAa,GAAG,IAAI,OAAO,EAAE,CAAC;IAChD,CAAC;IAEO,WAAW,CAAC,MAAsB;QACtC,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom-fragment.d.ts","sourceRoot":"","sources":["../../../src/processor/dom-fragment.ts"],"names":[],"mappings":"AA4BA,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAMhE;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB,CAK/E"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { ElementNamespace } from '../html';
|
|
2
|
+
import { applyStaticUtilities } from '../utilities/apply-static-utilities';
|
|
3
|
+
const HTML_NS = 'http://www.w3.org/1999/xhtml';
|
|
4
|
+
const NAMESPACE_ROOTS = {
|
|
5
|
+
svg: ElementNamespace.SVG,
|
|
6
|
+
math: ElementNamespace.MathML,
|
|
7
|
+
};
|
|
8
|
+
const SVG_CHILD_TAGS = new Set([
|
|
9
|
+
'g', 'path', 'circle', 'rect', 'line', 'text', 'ellipse',
|
|
10
|
+
'polygon', 'polyline', 'defs', 'clippath', 'use', 'symbol',
|
|
11
|
+
'image', 'tspan', 'foreignobject', 'lineargradient',
|
|
12
|
+
'radialgradient', 'stop', 'filter', 'fegaussianblur',
|
|
13
|
+
'desc', 'title', 'metadata', 'marker', 'pattern', 'mask',
|
|
14
|
+
'animate', 'animatetransform', 'animatemotion', 'set',
|
|
15
|
+
]);
|
|
16
|
+
const SVG_VOID_ELEMENTS = new Set([
|
|
17
|
+
'circle', 'ellipse', 'line', 'path', 'polygon', 'polyline',
|
|
18
|
+
'rect', 'stop', 'use', 'image',
|
|
19
|
+
]);
|
|
20
|
+
const BINDING_RE = /^binding:(\d+)(?::\d+)*$/;
|
|
21
|
+
export function createDOMFragment(html) {
|
|
22
|
+
const template = document.createElement('template');
|
|
23
|
+
template.innerHTML = html;
|
|
24
|
+
const fragment = document.importNode(template.content, true);
|
|
25
|
+
prepareDOMFragment(fragment);
|
|
26
|
+
return fragment;
|
|
27
|
+
}
|
|
28
|
+
export function prepareDOMFragment(fragment) {
|
|
29
|
+
applyStaticUtilities(fragment);
|
|
30
|
+
fixNamespaces(fragment);
|
|
31
|
+
insertHoistedSiblings(fragment);
|
|
32
|
+
return fragment;
|
|
33
|
+
}
|
|
34
|
+
function fixNamespaces(root) {
|
|
35
|
+
for (const [tag, ns] of Object.entries(NAMESPACE_ROOTS)) {
|
|
36
|
+
const elements = root.querySelectorAll(tag);
|
|
37
|
+
for (const el of elements) {
|
|
38
|
+
if (el.namespaceURI === ns)
|
|
39
|
+
continue;
|
|
40
|
+
if (el.parentElement?.namespaceURI === ns)
|
|
41
|
+
continue;
|
|
42
|
+
const fixed = recreateInNamespace(el, ns);
|
|
43
|
+
el.parentNode?.replaceChild(fixed, el);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT);
|
|
47
|
+
const toFix = [];
|
|
48
|
+
let node;
|
|
49
|
+
while ((node = walker.nextNode())) {
|
|
50
|
+
if (node.namespaceURI === HTML_NS && SVG_CHILD_TAGS.has(node.tagName.toLowerCase())) {
|
|
51
|
+
toFix.push([node, ElementNamespace.SVG]);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
for (let i = toFix.length - 1; i >= 0; i--) {
|
|
55
|
+
const [el, ns] = toFix[i];
|
|
56
|
+
const fixed = recreateInNamespace(el, ns);
|
|
57
|
+
el.parentNode?.replaceChild(fixed, el);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function recreateInNamespace(source, namespace) {
|
|
61
|
+
const recreated = document.createElementNS(namespace, source.tagName.toLowerCase());
|
|
62
|
+
for (const attr of Array.from(source.attributes)) {
|
|
63
|
+
const match = BINDING_RE.exec(attr.value);
|
|
64
|
+
if (match && attr.name.startsWith('@')) {
|
|
65
|
+
recreated.setAttribute(`data-e${match[1]}`, '');
|
|
66
|
+
}
|
|
67
|
+
else if (match) {
|
|
68
|
+
recreated.setAttribute(`data-b${match[1]}`, '');
|
|
69
|
+
}
|
|
70
|
+
else if (attr.name.startsWith('@')) {
|
|
71
|
+
recreated.setAttribute(`data-e-${attr.name.slice(1)}`, attr.value);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
recreated.setAttributeNS(attr.namespaceURI, attr.name, attr.value);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const isVoidSvg = namespace === ElementNamespace.SVG &&
|
|
78
|
+
SVG_VOID_ELEMENTS.has(source.tagName.toLowerCase());
|
|
79
|
+
const hoisted = [];
|
|
80
|
+
for (const child of Array.from(source.childNodes)) {
|
|
81
|
+
const fixed = child.nodeType === Node.ELEMENT_NODE
|
|
82
|
+
? recreateInNamespace(child, namespace)
|
|
83
|
+
: child.cloneNode(true);
|
|
84
|
+
if (isVoidSvg) {
|
|
85
|
+
hoisted.push(fixed);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
recreated.appendChild(fixed);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
if (hoisted.length > 0) {
|
|
92
|
+
recreated._hoistedSiblings = hoisted;
|
|
93
|
+
}
|
|
94
|
+
return recreated;
|
|
95
|
+
}
|
|
96
|
+
function insertHoistedSiblings(root) {
|
|
97
|
+
const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT);
|
|
98
|
+
const toInsert = [];
|
|
99
|
+
let node;
|
|
100
|
+
while ((node = walker.nextNode())) {
|
|
101
|
+
const hoisted = node._hoistedSiblings;
|
|
102
|
+
if (hoisted?.length) {
|
|
103
|
+
toInsert.push([node, hoisted]);
|
|
104
|
+
delete node._hoistedSiblings;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
for (const [el, siblings] of toInsert) {
|
|
108
|
+
const insertBefore = el.nextSibling;
|
|
109
|
+
for (const sibling of siblings) {
|
|
110
|
+
el.parentNode?.insertBefore(sibling, insertBefore);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
//# sourceMappingURL=dom-fragment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom-fragment.js","sourceRoot":"","sources":["../../../src/processor/dom-fragment.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ interface ProcessingMetrics {
|
|
|
19
19
|
* 4. Caching parsed templates for better performance
|
|
20
20
|
*/
|
|
21
21
|
export declare class TemplateProcessor {
|
|
22
|
-
private
|
|
22
|
+
private static sharedTemplateCache;
|
|
23
23
|
private parser;
|
|
24
24
|
constructor();
|
|
25
25
|
/**
|
|
@@ -49,36 +49,6 @@ export declare class TemplateProcessor {
|
|
|
49
49
|
createInstance(result: TemplateResult, context?: unknown): Promise<TemplateInstance>;
|
|
50
50
|
private getOrCreateParsedTemplate;
|
|
51
51
|
private createDOMFragment;
|
|
52
|
-
/**
|
|
53
|
-
* Fix namespace for foreign-content elements (SVG, MathML).
|
|
54
|
-
*
|
|
55
|
-
* When HTML is parsed via `template.innerHTML`, the browser's HTML parser
|
|
56
|
-
* creates elements in the HTML namespace (http://www.w3.org/1999/xhtml).
|
|
57
|
-
* SVG and MathML elements need their own namespace for attributes like
|
|
58
|
-
* `viewBox`, `x1`, `cy`, etc. to work correctly — the HTML parser may
|
|
59
|
-
* reject or mangle numeric SVG attribute values that contain binding markers.
|
|
60
|
-
*
|
|
61
|
-
* This method walks the fragment and re-creates any SVG/MathML subtrees
|
|
62
|
-
* using `createElementNS` with the correct namespace, preserving all
|
|
63
|
-
* attributes, children, and binding markers.
|
|
64
|
-
*/
|
|
65
|
-
private static readonly SVG_VOID_ELEMENTS;
|
|
66
|
-
private _fixNamespaces;
|
|
67
|
-
/**
|
|
68
|
-
* Deep-recreates an element (and its subtree) in the given namespace.
|
|
69
|
-
* Preserves attributes, text nodes, and comment nodes (including binding markers).
|
|
70
|
-
*
|
|
71
|
-
* For SVG void elements (circle, line, path, etc.), the HTML parser treats
|
|
72
|
-
* <tag ... /> as an opening tag and nests subsequent elements inside it.
|
|
73
|
-
* When re-creating in SVG namespace, we hoist those children out as siblings
|
|
74
|
-
* after the void element, since SVG void elements cannot have children.
|
|
75
|
-
*/
|
|
76
|
-
private _recreateInNamespace;
|
|
77
|
-
/**
|
|
78
|
-
* After _recreateInNamespace replaces an element, insert any hoisted siblings
|
|
79
|
-
* that were promoted out of SVG void elements.
|
|
80
|
-
*/
|
|
81
|
-
private _insertHoistedSiblings;
|
|
82
52
|
}
|
|
83
53
|
declare class TemplateInstance {
|
|
84
54
|
private result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../../src/processor/processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAkB,cAAc,EAAE,MAAM,UAAU,CAAC;AAI1D,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../../src/processor/processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAkB,cAAc,EAAE,MAAM,UAAU,CAAC;AAI1D,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAG9D;;GAEG;AACH,UAAU,iBAAiB;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAuD;IACzF,OAAO,CAAC,MAAM,CAAwB;;IAMtC;;OAEG;IACH,OAAO,CAAC,OAAO,CAMb;IAEF;;OAEG;IACH,qBAAqB,IAAI,iBAAiB;IAI1C;;OAEG;IACH,YAAY,IAAI,IAAI;IAUpB;;OAEG;IACH,UAAU,IAAI,IAAI;IAKlB;;OAEG;IACH,aAAa,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IASzD,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuB1F,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,iBAAiB;CAG5B;AAED,cAAM,gBAAgB;IAId,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,QAAQ;IANpB,OAAO,CAAC,aAAa,CAAqC;gBAG9C,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,OAAO,EAAE,EAChB,QAAQ,EAAE,gBAAgB;IAGtC,WAAW,IAAI,gBAAgB;IAI/B,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAI1B,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjE,UAAU,IAAI,IAAI;IAclB,gBAAgB;;;;CAGnB"}
|
|
@@ -2,8 +2,7 @@ import { TemplateParser } from './parser';
|
|
|
2
2
|
import { registerDefaultProcessor } from './types';
|
|
3
3
|
import { debugLog } from '../utils/debug';
|
|
4
4
|
import { BindingManager } from '../binding-manager/binding-manager';
|
|
5
|
-
import {
|
|
6
|
-
import { ElementNamespace } from '../html';
|
|
5
|
+
import { createDOMFragment } from './dom-fragment';
|
|
7
6
|
/**
|
|
8
7
|
* The TemplateProcessor is responsible for:
|
|
9
8
|
* 1. Processing template results into DOM structures
|
|
@@ -12,8 +11,8 @@ import { ElementNamespace } from '../html';
|
|
|
12
11
|
* 4. Caching parsed templates for better performance
|
|
13
12
|
*/
|
|
14
13
|
export class TemplateProcessor {
|
|
14
|
+
static { this.sharedTemplateCache = new WeakMap(); }
|
|
15
15
|
constructor() {
|
|
16
|
-
this.templateCache = new WeakMap();
|
|
17
16
|
this.parser = new TemplateParser();
|
|
18
17
|
/**
|
|
19
18
|
* Performance tracking
|
|
@@ -49,7 +48,7 @@ export class TemplateProcessor {
|
|
|
49
48
|
* Clear template cache to free memory
|
|
50
49
|
*/
|
|
51
50
|
clearCache() {
|
|
52
|
-
|
|
51
|
+
TemplateProcessor.sharedTemplateCache = new WeakMap();
|
|
53
52
|
debugLog('processor', 'Template cache cleared');
|
|
54
53
|
}
|
|
55
54
|
/**
|
|
@@ -79,11 +78,11 @@ export class TemplateProcessor {
|
|
|
79
78
|
}
|
|
80
79
|
getOrCreateParsedTemplate(result) {
|
|
81
80
|
const startTime = performance.now();
|
|
82
|
-
let template =
|
|
81
|
+
let template = TemplateProcessor.sharedTemplateCache.get(result.strings);
|
|
83
82
|
if (!template) {
|
|
84
83
|
this.metrics.cacheMisses++;
|
|
85
84
|
template = this.parser.parse(result.strings);
|
|
86
|
-
|
|
85
|
+
TemplateProcessor.sharedTemplateCache.set(result.strings, template);
|
|
87
86
|
debugLog('processor', 'Created new template', { template });
|
|
88
87
|
}
|
|
89
88
|
else {
|
|
@@ -93,177 +92,7 @@ export class TemplateProcessor {
|
|
|
93
92
|
return template;
|
|
94
93
|
}
|
|
95
94
|
createDOMFragment(html) {
|
|
96
|
-
|
|
97
|
-
template.innerHTML = html;
|
|
98
|
-
const fragment = document.importNode(template.content, true);
|
|
99
|
-
applyStaticUtilities(fragment);
|
|
100
|
-
this._fixNamespaces(fragment);
|
|
101
|
-
this._insertHoistedSiblings(fragment);
|
|
102
|
-
return fragment;
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Fix namespace for foreign-content elements (SVG, MathML).
|
|
106
|
-
*
|
|
107
|
-
* When HTML is parsed via `template.innerHTML`, the browser's HTML parser
|
|
108
|
-
* creates elements in the HTML namespace (http://www.w3.org/1999/xhtml).
|
|
109
|
-
* SVG and MathML elements need their own namespace for attributes like
|
|
110
|
-
* `viewBox`, `x1`, `cy`, etc. to work correctly — the HTML parser may
|
|
111
|
-
* reject or mangle numeric SVG attribute values that contain binding markers.
|
|
112
|
-
*
|
|
113
|
-
* This method walks the fragment and re-creates any SVG/MathML subtrees
|
|
114
|
-
* using `createElementNS` with the correct namespace, preserving all
|
|
115
|
-
* attributes, children, and binding markers.
|
|
116
|
-
*/
|
|
117
|
-
// SVG elements that cannot have children in SVG namespace.
|
|
118
|
-
// The HTML parser treats <circle ... /> as an opening tag and nests
|
|
119
|
-
// subsequent siblings inside it. When re-creating in SVG namespace,
|
|
120
|
-
// we must hoist those children out as siblings after the void element.
|
|
121
|
-
static { this.SVG_VOID_ELEMENTS = new Set([
|
|
122
|
-
'circle', 'ellipse', 'line', 'path', 'polygon', 'polyline',
|
|
123
|
-
'rect', 'stop', 'use', 'image',
|
|
124
|
-
]); }
|
|
125
|
-
_fixNamespaces(root) {
|
|
126
|
-
const HTML_NS = 'http://www.w3.org/1999/xhtml';
|
|
127
|
-
// Map of tag names that signal a foreign namespace root
|
|
128
|
-
const namespaceRoots = {
|
|
129
|
-
svg: ElementNamespace.SVG,
|
|
130
|
-
math: ElementNamespace.MathML,
|
|
131
|
-
};
|
|
132
|
-
for (const [tag, ns] of Object.entries(namespaceRoots)) {
|
|
133
|
-
const elements = root.querySelectorAll(tag);
|
|
134
|
-
for (const el of elements) {
|
|
135
|
-
// Only fix elements that are NOT already in the correct namespace
|
|
136
|
-
if (el.namespaceURI === ns)
|
|
137
|
-
continue;
|
|
138
|
-
// Skip if this element is inside another same-namespace root
|
|
139
|
-
// (e.g. nested <svg> inside <svg> — the outer fix will handle it)
|
|
140
|
-
const parentNs = el.parentElement?.namespaceURI;
|
|
141
|
-
if (parentNs === ns)
|
|
142
|
-
continue;
|
|
143
|
-
const fixed = this._recreateInNamespace(el, ns);
|
|
144
|
-
el.parentNode?.replaceChild(fixed, el);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
// Also fix standalone SVG/MathML child elements from sub-templates.
|
|
148
|
-
// Sub-templates like <rect x=${v} ...> don't contain an <svg> wrapper,
|
|
149
|
-
// so the loop above doesn't catch them. They get inserted into a parent
|
|
150
|
-
// <svg> later via NodeBinding, but by then they're in the wrong namespace.
|
|
151
|
-
const svgChildTags = new Set([
|
|
152
|
-
'g', 'path', 'circle', 'rect', 'line', 'text', 'ellipse',
|
|
153
|
-
'polygon', 'polyline', 'defs', 'clippath', 'use', 'symbol',
|
|
154
|
-
'image', 'tspan', 'foreignobject', 'lineargradient',
|
|
155
|
-
'radialgradient', 'stop', 'filter', 'fegaussianblur',
|
|
156
|
-
'desc', 'title', 'metadata', 'marker', 'pattern', 'mask',
|
|
157
|
-
'animate', 'animatetransform', 'animatemotion', 'set',
|
|
158
|
-
]);
|
|
159
|
-
// Walk all elements; fix any HTML-namespace element whose tag is a known SVG child
|
|
160
|
-
const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT);
|
|
161
|
-
const toFix = [];
|
|
162
|
-
let node;
|
|
163
|
-
while ((node = walker.nextNode())) {
|
|
164
|
-
if (node.namespaceURI === HTML_NS && svgChildTags.has(node.tagName.toLowerCase())) {
|
|
165
|
-
toFix.push([node, ElementNamespace.SVG]);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
// Replace in reverse to avoid invalidating tree positions
|
|
169
|
-
for (let i = toFix.length - 1; i >= 0; i--) {
|
|
170
|
-
const [el, ns] = toFix[i];
|
|
171
|
-
const fixed = this._recreateInNamespace(el, ns);
|
|
172
|
-
el.parentNode?.replaceChild(fixed, el);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* Deep-recreates an element (and its subtree) in the given namespace.
|
|
177
|
-
* Preserves attributes, text nodes, and comment nodes (including binding markers).
|
|
178
|
-
*
|
|
179
|
-
* For SVG void elements (circle, line, path, etc.), the HTML parser treats
|
|
180
|
-
* <tag ... /> as an opening tag and nests subsequent elements inside it.
|
|
181
|
-
* When re-creating in SVG namespace, we hoist those children out as siblings
|
|
182
|
-
* after the void element, since SVG void elements cannot have children.
|
|
183
|
-
*/
|
|
184
|
-
_recreateInNamespace(source, namespace) {
|
|
185
|
-
const recreated = document.createElementNS(namespace, source.tagName.toLowerCase());
|
|
186
|
-
// Copy attributes, converting binding markers for SVG/MathML compatibility:
|
|
187
|
-
// - "binding:N" values → data-bN marker (SVG rejects "binding:N" for numeric attrs)
|
|
188
|
-
// - @event="binding:N" → data-eN marker (@ is invalid in SVG attribute names)
|
|
189
|
-
const BINDING_RE = /^binding:(\d+)(?::\d+)*$/;
|
|
190
|
-
for (const attr of Array.from(source.attributes)) {
|
|
191
|
-
const match = BINDING_RE.exec(attr.value);
|
|
192
|
-
if (match && attr.name.startsWith('@')) {
|
|
193
|
-
// Event binding: @mouseenter="binding:N" → data-eN marker
|
|
194
|
-
// (@ is not valid in SVG attribute names for setAttribute)
|
|
195
|
-
recreated.setAttribute(`data-e${match[1]}`, '');
|
|
196
|
-
}
|
|
197
|
-
else if (match) {
|
|
198
|
-
// Non-event attribute binding: x="binding:N" → data-bN marker
|
|
199
|
-
recreated.setAttribute(`data-b${match[1]}`, '');
|
|
200
|
-
}
|
|
201
|
-
else if (attr.name.startsWith('@')) {
|
|
202
|
-
// Static @ attribute (shouldn't normally happen, but handle gracefully)
|
|
203
|
-
// Strip the @ prefix and store as data attribute
|
|
204
|
-
recreated.setAttribute(`data-e-${attr.name.slice(1)}`, attr.value);
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
recreated.setAttributeNS(attr.namespaceURI, attr.name, attr.value);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
const isVoidSvg = namespace === ElementNamespace.SVG &&
|
|
211
|
-
TemplateProcessor.SVG_VOID_ELEMENTS.has(source.tagName.toLowerCase());
|
|
212
|
-
// Deep-copy children — but for SVG void elements, hoist children to siblings
|
|
213
|
-
// because the HTML parser incorrectly nested them inside self-closing tags.
|
|
214
|
-
// We collect hoisted nodes and insert them after the replaced element.
|
|
215
|
-
const hoisted = [];
|
|
216
|
-
for (const child of Array.from(source.childNodes)) {
|
|
217
|
-
if (child.nodeType === Node.ELEMENT_NODE) {
|
|
218
|
-
const childEl = child;
|
|
219
|
-
const childNs = namespace;
|
|
220
|
-
const fixed = this._recreateInNamespace(childEl, childNs);
|
|
221
|
-
if (isVoidSvg) {
|
|
222
|
-
hoisted.push(fixed);
|
|
223
|
-
}
|
|
224
|
-
else {
|
|
225
|
-
recreated.appendChild(fixed);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
else {
|
|
229
|
-
// Text nodes, comment nodes (including binding markers)
|
|
230
|
-
if (isVoidSvg) {
|
|
231
|
-
hoisted.push(child.cloneNode(true));
|
|
232
|
-
}
|
|
233
|
-
else {
|
|
234
|
-
recreated.appendChild(child.cloneNode(true));
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
// If we hoisted children from a void element, store them for insertion
|
|
239
|
-
// after the element is placed in the DOM (caller handles this via _hoistSiblings)
|
|
240
|
-
if (hoisted.length > 0) {
|
|
241
|
-
recreated._hoistedSiblings = hoisted;
|
|
242
|
-
}
|
|
243
|
-
return recreated;
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* After _recreateInNamespace replaces an element, insert any hoisted siblings
|
|
247
|
-
* that were promoted out of SVG void elements.
|
|
248
|
-
*/
|
|
249
|
-
_insertHoistedSiblings(root) {
|
|
250
|
-
const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT);
|
|
251
|
-
const toInsert = [];
|
|
252
|
-
let node;
|
|
253
|
-
while ((node = walker.nextNode())) {
|
|
254
|
-
const hoisted = node._hoistedSiblings;
|
|
255
|
-
if (hoisted?.length) {
|
|
256
|
-
toInsert.push([node, hoisted]);
|
|
257
|
-
delete node._hoistedSiblings;
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
// Insert hoisted siblings after each element (in reverse to maintain order)
|
|
261
|
-
for (const [el, siblings] of toInsert) {
|
|
262
|
-
let insertBefore = el.nextSibling;
|
|
263
|
-
for (const sib of siblings) {
|
|
264
|
-
el.parentNode.insertBefore(sib, insertBefore);
|
|
265
|
-
}
|
|
266
|
-
}
|
|
95
|
+
return createDOMFragment(html);
|
|
267
96
|
}
|
|
268
97
|
}
|
|
269
98
|
class TemplateInstance {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../src/processor/processor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAkB,MAAM,UAAU,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../src/processor/processor.ts"],"names":[],"mappings":"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"}
|