marko 4.28.6 → 4.28.8
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/CHANGELOG.md +2569 -0
- package/dist/compiler/ast/CustomTag.js +1 -1
- package/dist/core-tags/core/await/renderer.js +11 -3
- package/dist/core-tags/core/await/reorderer-renderer.js +35 -8
- package/dist/node_modules/@internal/components-beginComponent/index-browser.js +5 -5
- package/dist/node_modules/@internal/components-beginComponent/index.js +12 -12
- package/dist/node_modules/@internal/components-define-widget-legacy/index-browser.js +43 -43
- package/dist/node_modules/@internal/components-define-widget-legacy/index.js +3 -3
- package/dist/node_modules/@internal/components-endComponent/index.js +3 -3
- package/dist/node_modules/@internal/components-entry/index-browser.js +2 -2
- package/dist/node_modules/@internal/components-entry/index.js +21 -21
- package/dist/node_modules/@internal/components-entry-legacy/index-browser.js +6 -6
- package/dist/node_modules/@internal/components-entry-legacy/index.js +1 -1
- package/dist/node_modules/@internal/components-registry/index-browser.js +40 -40
- package/dist/node_modules/@internal/components-registry/index.js +2 -2
- package/dist/node_modules/@internal/components-util/index-browser.js +20 -20
- package/dist/node_modules/@internal/components-util/index.js +9 -9
- package/dist/node_modules/@internal/create-readable/index-browser.js +1 -1
- package/dist/node_modules/@internal/create-readable/index.js +8 -8
- package/dist/node_modules/@internal/init-components-tag/index.js +4 -4
- package/dist/node_modules/@internal/preserve-tag/index-browser.js +8 -8
- package/dist/node_modules/@internal/preserve-tag/index.js +5 -5
- package/dist/node_modules/@internal/set-immediate/index-browser.js +1 -1
- package/dist/node_modules/@internal/set-immediate/index-worker.js +2 -2
- package/dist/node_modules/@internal/set-immediate/index.js +2 -2
- package/dist/runtime/RenderResult.js +13 -13
- package/dist/runtime/components/Component.js +144 -144
- package/dist/runtime/components/ComponentDef.js +27 -27
- package/dist/runtime/components/ComponentsContext.js +19 -19
- package/dist/runtime/components/GlobalComponentsContext.js +4 -4
- package/dist/runtime/components/KeySequence.js +3 -3
- package/dist/runtime/components/ServerComponent.js +13 -13
- package/dist/runtime/components/State.js +26 -26
- package/dist/runtime/components/attach-detach.js +8 -8
- package/dist/runtime/components/defineComponent.js +5 -5
- package/dist/runtime/components/dom-data.js +4 -4
- package/dist/runtime/components/event-delegation.js +10 -10
- package/dist/runtime/components/legacy/defineComponent-legacy.js +1 -1
- package/dist/runtime/components/legacy/defineRenderer-legacy.js +16 -16
- package/dist/runtime/components/legacy/dependencies/index.js +9 -9
- package/dist/runtime/components/legacy/helper-getWidgetFromOut.js +3 -3
- package/dist/runtime/components/legacy/renderer-legacy.js +39 -39
- package/dist/runtime/components/renderer.js +34 -34
- package/dist/runtime/components/update-manager.js +10 -10
- package/dist/runtime/createOut.js +1 -1
- package/dist/runtime/dom-insert.js +5 -5
- package/dist/runtime/helpers/_change-case.js +2 -2
- package/dist/runtime/helpers/dynamic-tag.js +13 -13
- package/dist/runtime/helpers/style-value.js +1 -1
- package/dist/runtime/html/AsyncStream.js +24 -24
- package/dist/runtime/html/BufferedWriter.js +2 -2
- package/dist/runtime/html/StringWriter.js +1 -1
- package/dist/runtime/html/helpers/data-marko.js +2 -2
- package/dist/runtime/html/helpers/escape-xml.js +1 -1
- package/dist/runtime/html/index.js +1 -1
- package/dist/runtime/renderable.js +5 -5
- package/dist/runtime/vdom/AsyncVDOMBuilder.js +43 -43
- package/dist/runtime/vdom/VComponent.js +2 -2
- package/dist/runtime/vdom/VDocumentFragment.js +1 -1
- package/dist/runtime/vdom/VElement.js +12 -12
- package/dist/runtime/vdom/VFragment.js +4 -4
- package/dist/runtime/vdom/VNode.js +2 -2
- package/dist/runtime/vdom/index.js +1 -1
- package/dist/runtime/vdom/morphdom/fragment.js +2 -2
- package/dist/runtime/vdom/morphdom/helpers.js +3 -3
- package/dist/runtime/vdom/morphdom/index.js +43 -43
- package/package.json +1 -1
- package/src/compiler/Normalizer.js +4 -1
- package/src/compiler/ast/CustomTag.js +14 -3
- package/src/core-tags/components/TransformHelper/convertToComponent.js +1 -1
- package/src/core-tags/core/await/renderer.js +14 -3
- package/src/core-tags/core/await/reorderer-renderer.js +78 -43
- package/src/core-tags/migrate/all-tags/widget-in-attrs.js +9 -7
- package/src/runtime/components/legacy/index.js +3 -1
- package/src/runtime/helpers/interop-require.js +1 -1
|
@@ -27,8 +27,8 @@ function removeChild(node) {
|
|
|
27
27
|
if (node.remove) node.remove();else node.parentNode.removeChild(node);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
exports.
|
|
31
|
-
exports.
|
|
30
|
+
exports.bh_ = insertBefore;
|
|
31
|
+
exports.bi_ = insertAfter;
|
|
32
32
|
exports.b_ = nextSibling;
|
|
33
33
|
exports.a_ = firstChild;
|
|
34
|
-
exports.
|
|
34
|
+
exports.bj_ = removeChild;
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
var specialElHandlers = require("./specialElHandlers");
|
|
4
4
|
var KeySequence = require("../../components/KeySequence");
|
|
5
5
|
var componentsUtil = require("@internal/components-util");
|
|
6
|
-
var existingComponentLookup = componentsUtil.
|
|
7
|
-
var destroyNodeRecursive = componentsUtil.
|
|
8
|
-
var addComponentRootToKeyedElements = componentsUtil.
|
|
9
|
-
var normalizeComponentKey = componentsUtil.
|
|
6
|
+
var existingComponentLookup = componentsUtil._o_;
|
|
7
|
+
var destroyNodeRecursive = componentsUtil._T_;
|
|
8
|
+
var addComponentRootToKeyedElements = componentsUtil._p_;
|
|
9
|
+
var normalizeComponentKey = componentsUtil._W_;
|
|
10
10
|
var VElement = require("../vdom").bw_;
|
|
11
11
|
var virtualizeElement = VElement.cj_;
|
|
12
12
|
var morphAttrs = VElement.ck_;
|
|
@@ -14,17 +14,17 @@ var eventDelegation = require("../../components/event-delegation");
|
|
|
14
14
|
var fragment = require("./fragment");
|
|
15
15
|
var helpers = require("./helpers");
|
|
16
16
|
var domData = require("../../components/dom-data");
|
|
17
|
-
var keysByDOMNode = domData.
|
|
18
|
-
var componentByDOMNode = domData.
|
|
19
|
-
var vElementByDOMNode = domData.
|
|
20
|
-
var detachedByDOMNode = domData.
|
|
17
|
+
var keysByDOMNode = domData._L_;
|
|
18
|
+
var componentByDOMNode = domData._r_;
|
|
19
|
+
var vElementByDOMNode = domData._M_;
|
|
20
|
+
var detachedByDOMNode = domData.aX_;
|
|
21
21
|
|
|
22
|
-
var insertBefore = helpers.
|
|
23
|
-
var insertAfter = helpers.
|
|
22
|
+
var insertBefore = helpers.bh_;
|
|
23
|
+
var insertAfter = helpers.bi_;
|
|
24
24
|
var nextSibling = helpers.b_;
|
|
25
25
|
var firstChild = helpers.a_;
|
|
26
|
-
var removeChild = helpers.
|
|
27
|
-
var createFragmentNode = fragment.
|
|
26
|
+
var removeChild = helpers.bj_;
|
|
27
|
+
var createFragmentNode = fragment._n_;
|
|
28
28
|
var beginFragmentNode = fragment.cr_;
|
|
29
29
|
|
|
30
30
|
var ELEMENT_NODE = 1;
|
|
@@ -52,7 +52,7 @@ function caseInsensitiveCompare(a, b) {
|
|
|
52
52
|
|
|
53
53
|
function onNodeAdded(node, componentsContext) {
|
|
54
54
|
if (node.nodeType === ELEMENT_NODE) {
|
|
55
|
-
eventDelegation.
|
|
55
|
+
eventDelegation.aW_(node, componentsContext);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
|
|
@@ -62,8 +62,8 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
|
62
62
|
var keySequences = Object.create(null);
|
|
63
63
|
|
|
64
64
|
if (componentsContext) {
|
|
65
|
-
globalComponentsContext = componentsContext.
|
|
66
|
-
isHydrate = globalComponentsContext.
|
|
65
|
+
globalComponentsContext = componentsContext.s_;
|
|
66
|
+
isHydrate = globalComponentsContext.aa_;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
function insertVirtualNodeBefore(vNode, key, referenceEl, parentEl, ownerComponent, parentComponent) {
|
|
@@ -73,7 +73,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
|
73
73
|
if (vNode.bX_ === ELEMENT_NODE || vNode.bX_ === FRAGMENT_NODE) {
|
|
74
74
|
if (key) {
|
|
75
75
|
keysByDOMNode.set(realNode, key);
|
|
76
|
-
(isAutoKey(key) ? parentComponent : ownerComponent).
|
|
76
|
+
(isAutoKey(key) ? parentComponent : ownerComponent).O_[key] = realNode;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
if (vNode.cd_ !== "textarea") {
|
|
@@ -85,12 +85,12 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
function insertVirtualComponentBefore(vComponent, referenceNode, referenceNodeParentEl, component, key, ownerComponent, parentComponent) {
|
|
88
|
-
var rootNode = component.
|
|
88
|
+
var rootNode = component._F_ = insertBefore(createFragmentNode(), referenceNode, referenceNodeParentEl);
|
|
89
89
|
componentByDOMNode.set(rootNode, component);
|
|
90
90
|
|
|
91
91
|
if (key && ownerComponent) {
|
|
92
92
|
key = normalizeComponentKey(key, parentComponent.id);
|
|
93
|
-
addComponentRootToKeyedElements(ownerComponent.
|
|
93
|
+
addComponentRootToKeyedElements(ownerComponent.O_, key, rootNode, component.id);
|
|
94
94
|
keysByDOMNode.set(rootNode, key);
|
|
95
95
|
}
|
|
96
96
|
|
|
@@ -98,7 +98,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
function morphComponent(component, vComponent) {
|
|
101
|
-
morphChildren(component.
|
|
101
|
+
morphChildren(component._F_, vComponent, component);
|
|
102
102
|
}
|
|
103
103
|
|
|
104
104
|
var detachedNodes = [];
|
|
@@ -142,20 +142,20 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
|
142
142
|
curFromNodeChild = nextSibling(curFromNodeChild);
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
-
var ownerComponent = curToNodeChild.
|
|
145
|
+
var ownerComponent = curToNodeChild._O_ || parentComponent;
|
|
146
146
|
var referenceComponent;
|
|
147
147
|
|
|
148
148
|
if (curToNodeType === COMPONENT_NODE) {
|
|
149
|
-
var component = curToNodeChild.
|
|
149
|
+
var component = curToNodeChild.w_;
|
|
150
150
|
if ((matchingFromComponent = existingComponentLookup[component.id]) === undefined) {
|
|
151
151
|
if (isHydrate) {
|
|
152
152
|
var rootNode = beginFragmentNode(curFromNodeChild, fromNode);
|
|
153
|
-
component.
|
|
153
|
+
component._F_ = rootNode;
|
|
154
154
|
componentByDOMNode.set(rootNode, component);
|
|
155
155
|
|
|
156
156
|
if (ownerComponent && curToNodeKey) {
|
|
157
157
|
curToNodeKey = normalizeComponentKey(curToNodeKey, parentComponent.id);
|
|
158
|
-
addComponentRootToKeyedElements(ownerComponent.
|
|
158
|
+
addComponentRootToKeyedElements(ownerComponent.O_, curToNodeKey, rootNode, component.id);
|
|
159
159
|
|
|
160
160
|
keysByDOMNode.set(rootNode, curToNodeKey);
|
|
161
161
|
}
|
|
@@ -167,23 +167,23 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
|
167
167
|
insertVirtualComponentBefore(curToNodeChild, curFromNodeChild, fromNode, component, curToNodeKey, ownerComponent, parentComponent);
|
|
168
168
|
}
|
|
169
169
|
} else {
|
|
170
|
-
if (matchingFromComponent.
|
|
171
|
-
if (curFromNodeChild && (fromComponent = componentByDOMNode.get(curFromNodeChild)) && globalComponentsContext.
|
|
170
|
+
if (matchingFromComponent._F_ !== curFromNodeChild) {
|
|
171
|
+
if (curFromNodeChild && (fromComponent = componentByDOMNode.get(curFromNodeChild)) && globalComponentsContext.t_[fromComponent.id] === undefined) {
|
|
172
172
|
// The component associated with the current real DOM node was not rendered
|
|
173
173
|
// so we should just remove it out of the real DOM by destroying it
|
|
174
|
-
curFromNodeChild = nextSibling(fromComponent.
|
|
174
|
+
curFromNodeChild = nextSibling(fromComponent._F_);
|
|
175
175
|
destroyComponent(fromComponent);
|
|
176
176
|
continue;
|
|
177
177
|
}
|
|
178
178
|
|
|
179
179
|
// We need to move the existing component into
|
|
180
180
|
// the correct location
|
|
181
|
-
insertBefore(matchingFromComponent.
|
|
181
|
+
insertBefore(matchingFromComponent._F_, curFromNodeChild, fromNode);
|
|
182
182
|
} else {
|
|
183
183
|
curFromNodeChild = curFromNodeChild && nextSibling(curFromNodeChild);
|
|
184
184
|
}
|
|
185
185
|
|
|
186
|
-
if (!curToNodeChild.
|
|
186
|
+
if (!curToNodeChild.af_) {
|
|
187
187
|
morphComponent(component, curToNodeChild);
|
|
188
188
|
}
|
|
189
189
|
}
|
|
@@ -206,7 +206,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
|
206
206
|
|
|
207
207
|
// We have a keyed element. This is the fast path for matching
|
|
208
208
|
// up elements
|
|
209
|
-
curToNodeKey = (keySequences[referenceComponent.id] || (keySequences[referenceComponent.id] = new KeySequence())).
|
|
209
|
+
curToNodeKey = (keySequences[referenceComponent.id] || (keySequences[referenceComponent.id] = new KeySequence())).aO_(curToNodeKey);
|
|
210
210
|
|
|
211
211
|
if (curFromNodeChild) {
|
|
212
212
|
curFromNodeKey = keysByDOMNode.get(curFromNodeChild);
|
|
@@ -216,7 +216,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
|
216
216
|
|
|
217
217
|
if (curFromNodeKey === curToNodeKey) {
|
|
218
218
|
// Elements line up. Now we just have to make sure they are compatible
|
|
219
|
-
if (!curToNodeChild.
|
|
219
|
+
if (!curToNodeChild.af_) {
|
|
220
220
|
// We just skip over the fromNode if it is preserved
|
|
221
221
|
|
|
222
222
|
if (curVFromNodeChild && curToNodeType === curVFromNodeChild.bX_ && (curToNodeType !== ELEMENT_NODE || compareNodeNames(curToNodeChild, curVFromNodeChild))) {
|
|
@@ -234,16 +234,16 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
|
234
234
|
}
|
|
235
235
|
}
|
|
236
236
|
} else {
|
|
237
|
-
matchingFromEl = referenceComponent.
|
|
237
|
+
matchingFromEl = referenceComponent.O_[curToNodeKey];
|
|
238
238
|
if (matchingFromEl === undefined || matchingFromEl === curFromNodeChild) {
|
|
239
239
|
if (isHydrate && curFromNodeChild) {
|
|
240
|
-
if (curFromNodeChild.nodeType === ELEMENT_NODE && (curToNodeChild.
|
|
240
|
+
if (curFromNodeChild.nodeType === ELEMENT_NODE && (curToNodeChild.af_ || caseInsensitiveCompare(curFromNodeChild.nodeName, curToNodeChild.cd_ || ""))) {
|
|
241
241
|
curVFromNodeChild = virtualizeElement(curFromNodeChild);
|
|
242
242
|
curVFromNodeChild.cd_ = curToNodeChild.cd_;
|
|
243
243
|
keysByDOMNode.set(curFromNodeChild, curToNodeKey);
|
|
244
|
-
referenceComponent.
|
|
244
|
+
referenceComponent.O_[curToNodeKey] = curFromNodeChild;
|
|
245
245
|
|
|
246
|
-
if (curToNodeChild.
|
|
246
|
+
if (curToNodeChild.af_) {
|
|
247
247
|
vElementByDOMNode.set(curFromNodeChild, curVFromNodeChild);
|
|
248
248
|
} else {
|
|
249
249
|
morphEl(curFromNodeChild, curVFromNodeChild, curToNodeChild, parentComponent);
|
|
@@ -279,11 +279,11 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
|
279
279
|
var fragment = createFragmentNode(curFromNodeChild, endNode.nextSibling, fromNode);
|
|
280
280
|
keysByDOMNode.set(fragment, curToNodeKey);
|
|
281
281
|
vElementByDOMNode.set(fragment, curToNodeChild);
|
|
282
|
-
referenceComponent.
|
|
282
|
+
referenceComponent.O_[curToNodeKey] = fragment;
|
|
283
283
|
removeChild(curFromNodeChild);
|
|
284
284
|
removeChild(endNode);
|
|
285
285
|
|
|
286
|
-
if (!curToNodeChild.
|
|
286
|
+
if (!curToNodeChild.af_) {
|
|
287
287
|
morphChildren(fragment, curToNodeChild, parentComponent);
|
|
288
288
|
}
|
|
289
289
|
|
|
@@ -301,7 +301,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
|
301
301
|
detachedByDOMNode.set(matchingFromEl, undefined);
|
|
302
302
|
}
|
|
303
303
|
|
|
304
|
-
if (!curToNodeChild.
|
|
304
|
+
if (!curToNodeChild.af_) {
|
|
305
305
|
curVFromNodeChild = vElementByDOMNode.get(matchingFromEl);
|
|
306
306
|
|
|
307
307
|
if (curVFromNodeChild && curToNodeType === curVFromNodeChild.bX_ && (curToNodeType !== ELEMENT_NODE || compareNodeNames(curVFromNodeChild, curToNodeChild))) {
|
|
@@ -390,7 +390,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
|
390
390
|
// not compatible with the current "to" node
|
|
391
391
|
curFromNodeChild = fromNextSibling;
|
|
392
392
|
|
|
393
|
-
if (!globalComponentsContext.
|
|
393
|
+
if (!globalComponentsContext.t_[fromComponent.id]) {
|
|
394
394
|
destroyComponent(fromComponent);
|
|
395
395
|
}
|
|
396
396
|
|
|
@@ -486,7 +486,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
|
486
486
|
|
|
487
487
|
if (fromComponent = componentByDOMNode.get(curFromNodeChild)) {
|
|
488
488
|
curFromNodeChild = fromNextSibling;
|
|
489
|
-
if (!globalComponentsContext.
|
|
489
|
+
if (!globalComponentsContext.t_[fromComponent.id]) {
|
|
490
490
|
destroyComponent(fromComponent);
|
|
491
491
|
}
|
|
492
492
|
continue;
|
|
@@ -500,7 +500,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
|
500
500
|
if (!curFromNodeKey || isAutoKey(curFromNodeKey)) {
|
|
501
501
|
referenceComponent = parentComponent;
|
|
502
502
|
} else {
|
|
503
|
-
referenceComponent = curVFromNodeChild && curVFromNodeChild.
|
|
503
|
+
referenceComponent = curVFromNodeChild && curVFromNodeChild._O_;
|
|
504
504
|
}
|
|
505
505
|
|
|
506
506
|
detachNode(curFromNodeChild, fromNode, referenceComponent);
|
|
@@ -520,7 +520,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
|
520
520
|
|
|
521
521
|
morphAttrs(fromEl, vFromEl, toEl);
|
|
522
522
|
|
|
523
|
-
if (toEl.
|
|
523
|
+
if (toEl.ae_) {
|
|
524
524
|
return;
|
|
525
525
|
}
|
|
526
526
|
|
|
@@ -537,7 +537,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
|
537
537
|
// eslint-disable-next-line no-constant-condition
|
|
538
538
|
|
|
539
539
|
|
|
540
|
-
morphChildren(fromNode, toNode, toNode.
|
|
540
|
+
morphChildren(fromNode, toNode, toNode.w_);
|
|
541
541
|
|
|
542
542
|
detachedNodes.forEach(function (node) {
|
|
543
543
|
var detachedFromComponent = detachedByDOMNode.get(node);
|
|
@@ -551,7 +551,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
|
551
551
|
} else if (node.parentNode) {
|
|
552
552
|
destroyNodeRecursive(node, detachedFromComponent !== true && detachedFromComponent);
|
|
553
553
|
|
|
554
|
-
if (eventDelegation.
|
|
554
|
+
if (eventDelegation.aq_(node) != false) {
|
|
555
555
|
removeChild(node);
|
|
556
556
|
}
|
|
557
557
|
}
|
package/package.json
CHANGED
|
@@ -125,7 +125,10 @@ class Normalizer {
|
|
|
125
125
|
} else if (context.ignoreUnrecognizedTags && tagName[0] === "@") {
|
|
126
126
|
let owner = elNode.parentNode;
|
|
127
127
|
|
|
128
|
-
while (
|
|
128
|
+
while (
|
|
129
|
+
owner &&
|
|
130
|
+
/^(?:for|while|if|else(?:-if))$|^@/.test(owner.tagName)
|
|
131
|
+
) {
|
|
129
132
|
owner = owner.parentNode;
|
|
130
133
|
}
|
|
131
134
|
|
|
@@ -624,7 +624,7 @@ class CustomTag extends HtmlElement {
|
|
|
624
624
|
|
|
625
625
|
if (isNestedTag) {
|
|
626
626
|
renderTagNode = builder.functionCall(tagVar, tagArgs);
|
|
627
|
-
renderTagNode._isNestedTagCall = true
|
|
627
|
+
renderTagNode._isNestedTagCall = true;
|
|
628
628
|
} else {
|
|
629
629
|
renderTagNode = this.generateRenderTagCode(codegen, tagVar, tagArgs);
|
|
630
630
|
renderTagNode._isTagCall = true;
|
|
@@ -656,7 +656,9 @@ class CustomTag extends HtmlElement {
|
|
|
656
656
|
}
|
|
657
657
|
|
|
658
658
|
if (renderBody.length) {
|
|
659
|
-
newBody.push(
|
|
659
|
+
newBody.push(
|
|
660
|
+
builder.returnStatement(builder.renderBodyFunction(renderBody))
|
|
661
|
+
);
|
|
660
662
|
body = newBody;
|
|
661
663
|
}
|
|
662
664
|
}
|
|
@@ -796,7 +798,16 @@ function hasHTML(node, context) {
|
|
|
796
798
|
let hasHTML = false;
|
|
797
799
|
const walker = context.createWalker({
|
|
798
800
|
enter(node) {
|
|
799
|
-
if (
|
|
801
|
+
if (
|
|
802
|
+
node.type === "Html" ||
|
|
803
|
+
node.type === "StartTag" ||
|
|
804
|
+
node.type === "TextVDOM" ||
|
|
805
|
+
node.type === "HtmlElement" ||
|
|
806
|
+
node.type === "HtmlComment" ||
|
|
807
|
+
node.type === "EndElementVDOM" ||
|
|
808
|
+
node.type === "HtmlElementVDOM" ||
|
|
809
|
+
node._isTagCall
|
|
810
|
+
) {
|
|
800
811
|
hasHTML = true;
|
|
801
812
|
walker.stop();
|
|
802
813
|
} else if (node._isNestedTagCall) {
|
|
@@ -116,7 +116,7 @@ module.exports = function handleComponentBind(options) {
|
|
|
116
116
|
markoComponentVar = context.addStaticVar(
|
|
117
117
|
"marko_component",
|
|
118
118
|
builder.functionCall(context.helper("interopRequireDefault"), [
|
|
119
|
-
builder.require(builder.literal(rendererModule.requirePath))
|
|
119
|
+
builder.require(builder.literal(rendererModule.requirePath)),
|
|
120
120
|
])
|
|
121
121
|
);
|
|
122
122
|
}
|
|
@@ -97,6 +97,7 @@ module.exports = function awaitTag(input, out) {
|
|
|
97
97
|
};
|
|
98
98
|
|
|
99
99
|
if (clientReorder) {
|
|
100
|
+
awaitInfo.parent = out;
|
|
100
101
|
awaitInfo.after = input.showAfter;
|
|
101
102
|
|
|
102
103
|
clientReorderContext =
|
|
@@ -106,8 +107,14 @@ module.exports = function awaitTag(input, out) {
|
|
|
106
107
|
nextId: 0,
|
|
107
108
|
});
|
|
108
109
|
|
|
109
|
-
|
|
110
|
-
var
|
|
110
|
+
/** SHOULD MATCH THE reorder-renderer.js IMPLEMENTATION */
|
|
111
|
+
var reorderFunctionId =
|
|
112
|
+
out.global.runtimeId !== "M" ? "af" + out.global.runtimeId : "af";
|
|
113
|
+
|
|
114
|
+
var id = (awaitInfo.id =
|
|
115
|
+
input.name ||
|
|
116
|
+
(out.global.componentIdPrefix || 0) + clientReorderContext.nextId++);
|
|
117
|
+
var placeholderIdAttrValue = reorderFunctionId + "ph" + id;
|
|
111
118
|
|
|
112
119
|
if (placeholderRenderer) {
|
|
113
120
|
out.write('<span id="' + placeholderIdAttrValue + '">');
|
|
@@ -211,7 +218,11 @@ function renderContents(err, data, input, out) {
|
|
|
211
218
|
if (err) {
|
|
212
219
|
if (input.catch) {
|
|
213
220
|
if (errorRenderer) {
|
|
214
|
-
|
|
221
|
+
try {
|
|
222
|
+
errorRenderer(out, err);
|
|
223
|
+
} catch (err2) {
|
|
224
|
+
out.error(err2);
|
|
225
|
+
}
|
|
215
226
|
}
|
|
216
227
|
} else {
|
|
217
228
|
out.error(err);
|
|
@@ -24,6 +24,10 @@ module.exports = function (input, out) {
|
|
|
24
24
|
out.flush();
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
+
/** SHOULD MATCH THE renderer.js IMPLEMENTATION */
|
|
28
|
+
var reorderFunctionId =
|
|
29
|
+
out.global.runtimeId !== "M" ? "af" + out.global.runtimeId : "af";
|
|
30
|
+
|
|
27
31
|
var asyncOut = out.beginAsync({
|
|
28
32
|
last: true,
|
|
29
33
|
timeout: -1,
|
|
@@ -46,65 +50,96 @@ module.exports = function (input, out) {
|
|
|
46
50
|
}
|
|
47
51
|
|
|
48
52
|
function handleAwait(awaitInfo) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
let flushedScript = false;
|
|
54
|
+
let flushedContent = false;
|
|
55
|
+
let flushedPlaceholder = awaitInfo.parent._state.finished;
|
|
56
|
+
if (flushedPlaceholder) {
|
|
57
|
+
if (awaitInfo.out._state.finished) {
|
|
58
|
+
writeResult(awaitInfo.out.___getResult());
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
} else {
|
|
62
|
+
awaitInfo.parent.on("___toString", () => {
|
|
63
|
+
flushedPlaceholder = true;
|
|
64
|
+
if (!flushedScript && flushedContent) {
|
|
65
|
+
flushedScript = true;
|
|
54
66
|
asyncOut.script(
|
|
55
|
-
`
|
|
67
|
+
`$${reorderFunctionId}(` +
|
|
68
|
+
(typeof awaitInfo.id === "number"
|
|
69
|
+
? awaitInfo.id
|
|
70
|
+
: '"' + awaitInfo.id + '"') +
|
|
71
|
+
(awaitInfo.after ? ',"' + awaitInfo.after + '"' : "") +
|
|
72
|
+
")"
|
|
56
73
|
);
|
|
57
|
-
global._afRuntime = true;
|
|
58
74
|
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
59
77
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
78
|
+
awaitInfo.out
|
|
79
|
+
.on("___toString", out.emit.bind(out, "___toString"))
|
|
80
|
+
.on("finish", writeResult)
|
|
81
|
+
.on("error", function (err) {
|
|
82
|
+
asyncOut.error(err);
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
function writeResult(result) {
|
|
86
|
+
flushedContent = true;
|
|
87
|
+
if (!global._afRuntime) {
|
|
88
|
+
// Minified version of ./client-reorder-runtime.js
|
|
89
|
+
asyncOut.script(
|
|
90
|
+
`function $${reorderFunctionId}(d,a,e,l,g,h,k,b,f,c){c=$${reorderFunctionId};if(a&&!c[a])(c[a+="$"]||(c[a]=[])).push(d);else{e=document;l=e.getElementById("${reorderFunctionId}"+d);g=e.getElementById("${reorderFunctionId}ph"+d);h=e.createDocumentFragment();k=l.childNodes;b=0;for(f=k.length;b<f;b++)h.appendChild(k.item(0));g&&g.parentNode.replaceChild(h,g);c[d]=1;if(a=c[d+"$"])for(b=0,f=a.length;b<f;b++)c(a[b])}}`
|
|
91
|
+
);
|
|
92
|
+
global._afRuntime = true;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (global.cspNonce) {
|
|
96
|
+
asyncOut.write(
|
|
97
|
+
'<style nonce="' +
|
|
98
|
+
escapeDoubleQuotes(global.cspNonce) +
|
|
99
|
+
'">' +
|
|
100
|
+
`#${reorderFunctionId}` +
|
|
101
|
+
awaitInfo.id +
|
|
102
|
+
"{display:none;}" +
|
|
103
|
+
"</style>" +
|
|
104
|
+
`<div id="${reorderFunctionId}` +
|
|
105
|
+
awaitInfo.id +
|
|
106
|
+
'">' +
|
|
107
|
+
result.toString() +
|
|
108
|
+
"</div>"
|
|
109
|
+
);
|
|
110
|
+
} else {
|
|
111
|
+
asyncOut.write(
|
|
112
|
+
`<div id="${reorderFunctionId}` +
|
|
113
|
+
awaitInfo.id +
|
|
114
|
+
'" style="display:none">' +
|
|
115
|
+
result.toString() +
|
|
116
|
+
"</div>"
|
|
117
|
+
);
|
|
118
|
+
}
|
|
84
119
|
|
|
120
|
+
if (!flushedScript && flushedPlaceholder) {
|
|
121
|
+
flushedScript = true;
|
|
85
122
|
asyncOut.script(
|
|
86
|
-
|
|
123
|
+
`$${reorderFunctionId}(` +
|
|
87
124
|
(typeof awaitInfo.id === "number"
|
|
88
125
|
? awaitInfo.id
|
|
89
126
|
: '"' + awaitInfo.id + '"') +
|
|
90
127
|
(awaitInfo.after ? ',"' + awaitInfo.after + '"' : "") +
|
|
91
128
|
")"
|
|
92
129
|
);
|
|
130
|
+
}
|
|
93
131
|
|
|
94
|
-
|
|
132
|
+
awaitInfo.out.writer = asyncOut.writer;
|
|
95
133
|
|
|
96
|
-
|
|
134
|
+
out.emit("await:finish", awaitInfo);
|
|
97
135
|
|
|
98
|
-
|
|
136
|
+
out.flush();
|
|
99
137
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
.on("error", function (err) {
|
|
106
|
-
asyncOut.error(err);
|
|
107
|
-
});
|
|
138
|
+
if (--remaining === 0) {
|
|
139
|
+
asyncOut.end();
|
|
140
|
+
next();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
108
143
|
}
|
|
109
144
|
|
|
110
145
|
awaitContext.instances.forEach(handleAwait);
|
|
@@ -12,13 +12,15 @@ module.exports = function migrate(el, context) {
|
|
|
12
12
|
return;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
context
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
node
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
context
|
|
16
|
+
.createWalker({
|
|
17
|
+
enter(node) {
|
|
18
|
+
if (isWidgetMemberExpression(node)) {
|
|
19
|
+
node.object.name = "component";
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
})
|
|
23
|
+
.walk(value);
|
|
22
24
|
});
|
|
23
25
|
};
|
|
24
26
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// eslint-disable-next-line no-constant-condition
|
|
2
2
|
if ("MARKO_DEBUG") {
|
|
3
|
-
require("complain")(
|
|
3
|
+
require("complain")(
|
|
4
|
+
"marko-widgets is deprecated. When upgrading to Marko 5 ensure marko-widgets@8 is installed for compatibility."
|
|
5
|
+
);
|
|
4
6
|
}
|
|
5
7
|
|
|
6
8
|
module.exports = require("@internal/components-entry-legacy");
|