marko 5.25.1 → 5.25.3
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/compiler/modules.js +1 -1
- package/dist/core-tags/components/preserve-tag.js +81 -0
- package/dist/core-tags/core/await/renderer.js +1 -1
- package/dist/runtime/RenderResult.js +1 -1
- package/dist/runtime/components/Component.js +9 -9
- package/dist/runtime/components/ComponentDef.js +3 -3
- package/dist/runtime/components/ComponentsContext.js +5 -5
- package/dist/runtime/components/State.js +2 -2
- package/dist/runtime/components/beginComponent/index-browser.js +3 -3
- package/dist/runtime/components/beginComponent/index.js +1 -1
- package/dist/runtime/components/endComponent/index.js +1 -1
- package/dist/runtime/components/entry/index.js +1 -1
- package/dist/runtime/components/registry/index-browser.js +6 -6
- package/dist/runtime/components/renderer.js +8 -8
- package/dist/runtime/components/util/index-browser.js +3 -3
- package/dist/runtime/components/util/index.js +1 -1
- package/dist/runtime/helpers/dynamic-tag.js +8 -8
- package/dist/runtime/helpers/render-tag.js +1 -1
- package/dist/runtime/html/AsyncStream.js +4 -4
- package/dist/runtime/vdom/AsyncVDOMBuilder.js +14 -14
- package/dist/runtime/vdom/VComponent.js +2 -2
- package/dist/runtime/vdom/VElement.js +1 -1
- package/dist/runtime/vdom/VFragment.js +1 -1
- package/dist/runtime/vdom/VNode.js +1 -1
- package/dist/runtime/vdom/morphdom/index.js +17 -17
- package/package.json +3 -3
- package/src/compiler/modules.js +1 -1
- package/src/core-tags/components/preserve-tag.js +81 -0
- package/src/core-tags/core/await/renderer.js +1 -1
- package/src/runtime/helpers/dynamic-tag.js +1 -1
- package/dist/core-tags/components/preserve-tag/index-browser.js +0 -45
- package/dist/core-tags/components/preserve-tag/index.js +0 -27
- package/dist/core-tags/components/preserve-tag/package.json +0 -11
- package/src/core-tags/components/preserve-tag/index-browser.js +0 -45
- package/src/core-tags/components/preserve-tag/index.js +0 -27
- package/src/core-tags/components/preserve-tag/package.json +0 -11
package/dist/compiler/modules.js
CHANGED
@@ -0,0 +1,81 @@
|
|
1
|
+
"use strict";var ComponentsContext = require("../../runtime/components/ComponentsContext");
|
2
|
+
var getComponentsContext = ComponentsContext.e_;
|
3
|
+
|
4
|
+
module.exports = function render(input, out) {
|
5
|
+
var isComponent = !input.n;
|
6
|
+
var shouldPreserve = !("i" in input) || input.i;
|
7
|
+
var componentsContext = out.b_;
|
8
|
+
|
9
|
+
if (typeof document === "object") {
|
10
|
+
var isHydrate =
|
11
|
+
componentsContext && componentsContext.f_.g_;
|
12
|
+
var ownerComponent = out.h_.i_;
|
13
|
+
var referenceComponent = ownerComponent;
|
14
|
+
var key = out.j_;
|
15
|
+
var checkKey = key;
|
16
|
+
|
17
|
+
if (key[0] !== "@") {
|
18
|
+
var parentComponent = componentsContext.k_.i_;
|
19
|
+
if (ownerComponent !== parentComponent) {
|
20
|
+
referenceComponent = parentComponent;
|
21
|
+
checkKey += ":" + ownerComponent.id;
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
var isPreserved =
|
26
|
+
shouldPreserve && (
|
27
|
+
isHydrate || referenceComponent.l_[checkKey]);
|
28
|
+
|
29
|
+
if (isComponent) {
|
30
|
+
out.bf(key, ownerComponent, shouldPreserve);
|
31
|
+
|
32
|
+
if (!isPreserved && input.renderBody) {
|
33
|
+
input.renderBody(out);
|
34
|
+
}
|
35
|
+
|
36
|
+
out.ef();
|
37
|
+
} else {
|
38
|
+
if (isPreserved) {
|
39
|
+
if (input.b) {
|
40
|
+
out.m_.n_ = true;
|
41
|
+
} else {
|
42
|
+
out.beginElement("", null, key, ownerComponent);
|
43
|
+
out.m_.o_ = true;
|
44
|
+
out.endElement();
|
45
|
+
}
|
46
|
+
} else if (input.renderBody) {
|
47
|
+
input.renderBody(out);
|
48
|
+
}
|
49
|
+
}
|
50
|
+
} else {
|
51
|
+
if (isComponent) {
|
52
|
+
out.bf(
|
53
|
+
out.j_,
|
54
|
+
out.h_.i_,
|
55
|
+
true);
|
56
|
+
|
57
|
+
}
|
58
|
+
|
59
|
+
if (input.renderBody) {
|
60
|
+
if (shouldPreserve) {
|
61
|
+
var parentPreserved = false;
|
62
|
+
|
63
|
+
if (componentsContext) {
|
64
|
+
parentPreserved = componentsContext.p_;
|
65
|
+
} else {
|
66
|
+
componentsContext = getComponentsContext(out);
|
67
|
+
}
|
68
|
+
|
69
|
+
componentsContext.p_ = true;
|
70
|
+
input.renderBody(out);
|
71
|
+
componentsContext.p_ = parentPreserved;
|
72
|
+
} else {
|
73
|
+
input.renderBody(out);
|
74
|
+
}
|
75
|
+
}
|
76
|
+
|
77
|
+
if (isComponent) {
|
78
|
+
out.ef();
|
79
|
+
}
|
80
|
+
}
|
81
|
+
};
|
@@ -81,7 +81,7 @@ const LAST_OPTIONS = { last: true, name: "await:finish" };
|
|
81
81
|
|
82
82
|
module.exports = function awaitTag(input, out) {
|
83
83
|
var clientReorder =
|
84
|
-
typeof
|
84
|
+
typeof document === "undefined" &&
|
85
85
|
input.clientReorder === true &&
|
86
86
|
!out.isVDOM;
|
87
87
|
|
@@ -37,7 +37,7 @@ var proto = RenderResult.prototype = {
|
|
37
37
|
var components = [];
|
38
38
|
|
39
39
|
componentDefs.forEach(function (componentDef) {
|
40
|
-
var component = componentDef.
|
40
|
+
var component = componentDef.i_;
|
41
41
|
if (!selector || selector(component)) {
|
42
42
|
components.push(component);
|
43
43
|
}
|
@@ -6,7 +6,7 @@
|
|
6
6
|
var domInsert = require("../dom-insert");
|
7
7
|
var defaultCreateOut = require("../createOut");
|
8
8
|
var getComponentsContext =
|
9
|
-
require("./ComponentsContext").
|
9
|
+
require("./ComponentsContext").e_;
|
10
10
|
var componentsUtil = require("./util");
|
11
11
|
var componentLookup = componentsUtil.D_;
|
12
12
|
var destroyNodeRecursive = componentsUtil.E_;
|
@@ -189,10 +189,10 @@ function Component(id) {
|
|
189
189
|
var ssrKeyedElements = keyedElementsByComponentId[id];
|
190
190
|
|
191
191
|
if (ssrKeyedElements) {
|
192
|
-
this.
|
192
|
+
this.l_ = ssrKeyedElements;
|
193
193
|
delete keyedElementsByComponentId[id];
|
194
194
|
} else {
|
195
|
-
this.
|
195
|
+
this.l_ = {};
|
196
196
|
}
|
197
197
|
}
|
198
198
|
|
@@ -248,7 +248,7 @@ Component.prototype = componentProto = {
|
|
248
248
|
getEl: function (key, index) {
|
249
249
|
if (key) {
|
250
250
|
var keyedElement =
|
251
|
-
this.
|
251
|
+
this.l_["@" + resolveKeyHelper(key, index)];
|
252
252
|
|
253
253
|
// eslint-disable-next-line no-constant-condition
|
254
254
|
|
@@ -280,7 +280,7 @@ Component.prototype = componentProto = {
|
|
280
280
|
return els;
|
281
281
|
},
|
282
282
|
getComponent: function (key, index) {
|
283
|
-
var rootNode = this.
|
283
|
+
var rootNode = this.l_["@" + resolveKeyHelper(key, index)];
|
284
284
|
// eslint-disable-next-line no-constant-condition
|
285
285
|
|
286
286
|
|
@@ -293,7 +293,7 @@ Component.prototype = componentProto = {
|
|
293
293
|
return rootNode && componentsByDOMNode.get(rootNode);
|
294
294
|
},
|
295
295
|
getComponents: function (key) {
|
296
|
-
var lookup = this.
|
296
|
+
var lookup = this.l_["@" + key + "[]"];
|
297
297
|
return lookup ?
|
298
298
|
Object.keys(lookup).
|
299
299
|
map(function (key) {
|
@@ -324,7 +324,7 @@ Component.prototype = componentProto = {
|
|
324
324
|
root.detached = true;
|
325
325
|
|
326
326
|
delete componentLookup[this.id];
|
327
|
-
this.
|
327
|
+
this.l_ = {};
|
328
328
|
},
|
329
329
|
|
330
330
|
___: function () {
|
@@ -544,9 +544,9 @@ Component.prototype = componentProto = {
|
|
544
544
|
out[CONTEXT_KEY] = this._i_;
|
545
545
|
|
546
546
|
var componentsContext = getComponentsContext(out);
|
547
|
-
var globalComponentsContext = componentsContext.
|
547
|
+
var globalComponentsContext = componentsContext.f_;
|
548
548
|
globalComponentsContext._r_ = this;
|
549
|
-
globalComponentsContext.
|
549
|
+
globalComponentsContext.g_ = isHydrate;
|
550
550
|
|
551
551
|
renderer(input, out);
|
552
552
|
|
@@ -19,7 +19,7 @@ var FLAG_HAS_RENDER_BODY = 2;
|
|
19
19
|
*/
|
20
20
|
function ComponentDef(component, componentId, componentsContext) {
|
21
21
|
this._F_ = componentsContext; // The AsyncWriter that this component is associated with
|
22
|
-
this.
|
22
|
+
this.i_ = component;
|
23
23
|
this.id = componentId;
|
24
24
|
|
25
25
|
this._G_ = undefined; // An array of DOM events that need to be added (in sets of three)
|
@@ -80,7 +80,7 @@ ComponentDef.prototype = {
|
|
80
80
|
},
|
81
81
|
|
82
82
|
get _O_() {
|
83
|
-
return this.
|
83
|
+
return this.i_._O_;
|
84
84
|
}
|
85
85
|
};
|
86
86
|
|
@@ -146,7 +146,7 @@ ComponentDef._P_ = function (o, types, global, registry) {
|
|
146
146
|
|
147
147
|
return {
|
148
148
|
id: id,
|
149
|
-
|
149
|
+
i_: component,
|
150
150
|
_G_: extra.d,
|
151
151
|
_J_: extra.f || 0
|
152
152
|
};
|
@@ -6,8 +6,8 @@ function ComponentsContext(out, parentComponentsContext) {
|
|
6
6
|
var componentDef;
|
7
7
|
|
8
8
|
if (parentComponentsContext) {
|
9
|
-
globalComponentsContext = parentComponentsContext.
|
10
|
-
componentDef = parentComponentsContext.
|
9
|
+
globalComponentsContext = parentComponentsContext.f_;
|
10
|
+
componentDef = parentComponentsContext.k_;
|
11
11
|
|
12
12
|
var nestedContextsForParent;
|
13
13
|
if (
|
@@ -25,10 +25,10 @@ function ComponentsContext(out, parentComponentsContext) {
|
|
25
25
|
}
|
26
26
|
}
|
27
27
|
|
28
|
-
this.
|
28
|
+
this.f_ = globalComponentsContext;
|
29
29
|
this.b_ = [];
|
30
30
|
this.z_ = out;
|
31
|
-
this.
|
31
|
+
this.k_ = componentDef;
|
32
32
|
this._R_ = undefined;
|
33
33
|
this.p_ =
|
34
34
|
parentComponentsContext && parentComponentsContext.p_;
|
@@ -56,4 +56,4 @@ function getComponentsContext(out) {
|
|
56
56
|
|
57
57
|
module.exports = exports = ComponentsContext;
|
58
58
|
|
59
|
-
exports.
|
59
|
+
exports.e_ = getComponentsContext;
|
@@ -15,7 +15,7 @@ function ensure(state, propertyName) {
|
|
15
15
|
}
|
16
16
|
|
17
17
|
function State(component) {
|
18
|
-
this.
|
18
|
+
this.i_ = component;
|
19
19
|
this._v_ = {};
|
20
20
|
|
21
21
|
this.W_ = false;
|
@@ -84,7 +84,7 @@ State.prototype = {
|
|
84
84
|
this._m_ = rawState;
|
85
85
|
this._v_ = rawState = extend({}, rawState);
|
86
86
|
this._l_ = {};
|
87
|
-
this.
|
87
|
+
this.i_._f_();
|
88
88
|
}
|
89
89
|
|
90
90
|
this._l_[name] = value;
|
@@ -7,17 +7,17 @@ key,
|
|
7
7
|
ownerComponentDef)
|
8
8
|
{
|
9
9
|
var componentId = component.id;
|
10
|
-
var componentDef = componentsContext.
|
10
|
+
var componentDef = componentsContext.k_ = new ComponentDef(
|
11
11
|
component,
|
12
12
|
componentId,
|
13
13
|
componentsContext);
|
14
14
|
|
15
|
-
componentsContext.
|
15
|
+
componentsContext.f_._V_[
|
16
16
|
componentId] =
|
17
17
|
true;
|
18
18
|
componentsContext.b_.push(componentDef);
|
19
19
|
|
20
20
|
var out = componentsContext.z_;
|
21
|
-
out.bc(component, key, ownerComponentDef && ownerComponentDef.
|
21
|
+
out.bc(component, key, ownerComponentDef && ownerComponentDef.i_);
|
22
22
|
return componentDef;
|
23
23
|
};
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
3
|
var ComponentsContext = require("../ComponentsContext");
|
4
|
-
var getComponentsContext = ComponentsContext.
|
4
|
+
var getComponentsContext = ComponentsContext.e_;
|
5
5
|
|
6
6
|
module.exports = function endComponent(out, componentDef) {
|
7
7
|
if (componentDef._I_) {
|
@@ -63,7 +63,7 @@ function addComponentsFromContext(componentsContext, componentsToHydrate) {
|
|
63
63
|
for (var i = 0; i < len; i++) {
|
64
64
|
var componentDef = components[i];
|
65
65
|
var id = componentDef.id;
|
66
|
-
var component = componentDef.
|
66
|
+
var component = componentDef.i_;
|
67
67
|
var flags = componentDef._J_;
|
68
68
|
var input = component.input || 0;
|
69
69
|
var typeName = component.typeName;
|
@@ -186,7 +186,7 @@ function indexServerComponentBoundaries(node, runtimeId, stack) {
|
|
186
186
|
ownerId = parts[1];
|
187
187
|
componentId = parts[0];
|
188
188
|
if (ownerComponent = componentLookup[ownerId]) {
|
189
|
-
keyedElements = ownerComponent.
|
189
|
+
keyedElements = ownerComponent.l_;
|
190
190
|
} else {
|
191
191
|
keyedElements =
|
192
192
|
keyedElementsByComponentId[ownerId] || (
|
@@ -215,7 +215,7 @@ function indexServerComponentBoundaries(node, runtimeId, stack) {
|
|
215
215
|
ownerId = markoKey.substring(separatorIndex + 1);
|
216
216
|
markoKey = markoKey.substring(0, separatorIndex);
|
217
217
|
if (ownerComponent = componentLookup[ownerId]) {
|
218
|
-
keyedElements = ownerComponent.
|
218
|
+
keyedElements = ownerComponent.l_;
|
219
219
|
} else {
|
220
220
|
keyedElements =
|
221
221
|
keyedElementsByComponentId[ownerId] || (
|
@@ -288,7 +288,7 @@ handles)
|
|
288
288
|
}
|
289
289
|
|
290
290
|
function initComponent(componentDef, host) {
|
291
|
-
var component = componentDef.
|
291
|
+
var component = componentDef.i_;
|
292
292
|
|
293
293
|
component.J_();
|
294
294
|
component.Y_ = host;
|
@@ -308,7 +308,7 @@ function initComponent(componentDef, host) {
|
|
308
308
|
|
309
309
|
var eventType = domEventArgs[0];
|
310
310
|
var targetMethodName = domEventArgs[1];
|
311
|
-
var eventEl = component.
|
311
|
+
var eventEl = component.l_[domEventArgs[2]];
|
312
312
|
var isOnce = domEventArgs[3];
|
313
313
|
var extraArgs = domEventArgs[4];
|
314
314
|
|
@@ -524,7 +524,7 @@ function tryHydrateComponent(rawDef, meta, host, runtimeId) {
|
|
524
524
|
|
525
525
|
function hydrateComponentAndGetMount(componentDef, host) {
|
526
526
|
var componentId = componentDef.id;
|
527
|
-
var component = componentDef.
|
527
|
+
var component = componentDef.i_;
|
528
528
|
var rootNode = serverComponentRootNodes[componentId];
|
529
529
|
var renderResult;
|
530
530
|
|
@@ -552,7 +552,7 @@ function hydrateComponentAndGetMount(componentDef, host) {
|
|
552
552
|
}
|
553
553
|
|
554
554
|
function trackComponent(componentDef) {
|
555
|
-
var component = componentDef.
|
555
|
+
var component = componentDef.i_;
|
556
556
|
if (component) {
|
557
557
|
componentLookup[component.id] = component;
|
558
558
|
}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
var componentLookup = componentsUtil.D_;
|
3
3
|
|
4
4
|
var ComponentsContext = require("./ComponentsContext");
|
5
|
-
var getComponentsContext = ComponentsContext.
|
5
|
+
var getComponentsContext = ComponentsContext.e_;
|
6
6
|
var registry = require("./registry");
|
7
7
|
var copyProps = require("raptor-util/copyProps");
|
8
8
|
var isServer = componentsUtil.au_ === true;
|
@@ -40,8 +40,8 @@ function handleBeginAsync(event) {
|
|
40
40
|
}
|
41
41
|
// Carry along the component arguments
|
42
42
|
asyncOut.c(
|
43
|
-
parentOut.
|
44
|
-
parentOut.
|
43
|
+
parentOut.h_,
|
44
|
+
parentOut.j_,
|
45
45
|
parentOut.av_);
|
46
46
|
|
47
47
|
}
|
@@ -80,17 +80,17 @@ renderingLogic)
|
|
80
80
|
trackAsyncComponents(out);
|
81
81
|
|
82
82
|
var componentsContext = getComponentsContext(out);
|
83
|
-
var globalComponentsContext = componentsContext.
|
83
|
+
var globalComponentsContext = componentsContext.f_;
|
84
84
|
|
85
85
|
var component = globalComponentsContext._r_;
|
86
86
|
var isRerender = component !== undefined;
|
87
87
|
var id;
|
88
88
|
var isExisting;
|
89
89
|
var customEvents;
|
90
|
-
var parentComponentDef = componentsContext.
|
91
|
-
var ownerComponentDef = out.
|
90
|
+
var parentComponentDef = componentsContext.k_;
|
91
|
+
var ownerComponentDef = out.h_;
|
92
92
|
var ownerComponentId = ownerComponentDef && ownerComponentDef.id;
|
93
|
-
var key = out.
|
93
|
+
var key = out.j_;
|
94
94
|
|
95
95
|
if (component) {
|
96
96
|
// If component is provided then we are currently rendering
|
@@ -225,7 +225,7 @@ renderingLogic)
|
|
225
225
|
|
226
226
|
|
227
227
|
endComponent(out, componentDef);
|
228
|
-
componentsContext.
|
228
|
+
componentsContext.k_ = parentComponentDef;
|
229
229
|
};
|
230
230
|
}
|
231
231
|
|
@@ -51,13 +51,13 @@ function destroyNodeRecursive(node, component) {
|
|
51
51
|
var key;
|
52
52
|
|
53
53
|
if (component && (key = keysByDOMNode.get(node))) {
|
54
|
-
if (node === component.
|
54
|
+
if (node === component.l_[key]) {
|
55
55
|
if (componentsByDOMNode.get(node) && /\[\]$/.test(key)) {
|
56
|
-
delete component.
|
56
|
+
delete component.l_[key][
|
57
57
|
componentsByDOMNode.get(node).id];
|
58
58
|
|
59
59
|
} else {
|
60
|
-
delete component.
|
60
|
+
delete component.l_[key];
|
61
61
|
}
|
62
62
|
}
|
63
63
|
}
|
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
var changeCase = require("./_change-case");
|
5
5
|
var ComponentsContext = require("../components/ComponentsContext");
|
6
|
-
var getComponentsContext = ComponentsContext.
|
6
|
+
var getComponentsContext = ComponentsContext.e_;
|
7
7
|
var ComponentDef = require("../components/ComponentDef");
|
8
8
|
var w10NOOP = require("warp10/constants").NOOP;
|
9
9
|
var RENDER_BODY_TO_JSON = function () {
|
@@ -12,7 +12,7 @@ var RENDER_BODY_TO_JSON = function () {
|
|
12
12
|
|
13
13
|
var FLAG_WILL_RERENDER_IN_BROWSER = 1;
|
14
14
|
// var FLAG_HAS_RENDER_BODY = 2;
|
15
|
-
var IS_SERVER = typeof
|
15
|
+
var IS_SERVER = typeof document === "undefined";
|
16
16
|
|
17
17
|
/**
|
18
18
|
* Helper to render a dynamic tag
|
@@ -34,7 +34,7 @@ customEvents)
|
|
34
34
|
}
|
35
35
|
|
36
36
|
var attrs = getAttrs && getAttrs();
|
37
|
-
var component = componentDef && componentDef.
|
37
|
+
var component = componentDef && componentDef.i_;
|
38
38
|
if (typeof tag === "string") {
|
39
39
|
if (renderBody) {
|
40
40
|
out.aJ_(
|
@@ -83,7 +83,7 @@ customEvents)
|
|
83
83
|
if (renderer) {
|
84
84
|
out.c(componentDef, key, customEvents);
|
85
85
|
renderer(attrs, out);
|
86
|
-
out.
|
86
|
+
out.h_ = null;
|
87
87
|
} else {
|
88
88
|
var render = tag && tag.renderBody || tag;
|
89
89
|
var isFn = typeof render === "function";
|
@@ -104,9 +104,9 @@ customEvents)
|
|
104
104
|
out.bf(key, component, preserve);
|
105
105
|
if (!isW10NOOP && isFn) {
|
106
106
|
var componentsContext = getComponentsContext(out);
|
107
|
-
var parentComponentDef = componentsContext.
|
108
|
-
var globalContext = componentsContext.
|
109
|
-
componentsContext.
|
107
|
+
var parentComponentDef = componentsContext.k_;
|
108
|
+
var globalContext = componentsContext.f_;
|
109
|
+
componentsContext.k_ = new ComponentDef(
|
110
110
|
component,
|
111
111
|
parentComponentDef.id + "-" + parentComponentDef._M_(key),
|
112
112
|
globalContext);
|
@@ -119,7 +119,7 @@ customEvents)
|
|
119
119
|
render(out, attrs);
|
120
120
|
}
|
121
121
|
|
122
|
-
componentsContext.
|
122
|
+
componentsContext.k_ = parentComponentDef;
|
123
123
|
}
|
124
124
|
out.ef();
|
125
125
|
} else {
|
@@ -91,8 +91,8 @@ function AsyncStream(global, writer, parentOut) {
|
|
91
91
|
|
92
92
|
this.b_ = null; // ComponentsContext
|
93
93
|
|
94
|
-
this.
|
95
|
-
this.
|
94
|
+
this.h_ = null;
|
95
|
+
this.j_ = null;
|
96
96
|
this.av_ = null;
|
97
97
|
this.aN_ = false;
|
98
98
|
}
|
@@ -650,8 +650,8 @@ var proto = AsyncStream.prototype = {
|
|
650
650
|
},
|
651
651
|
|
652
652
|
c: function (componentDef, key, customEvents) {
|
653
|
-
this.
|
654
|
-
this.
|
653
|
+
this.h_ = componentDef;
|
654
|
+
this.j_ = key;
|
655
655
|
this.av_ = customEvents;
|
656
656
|
}
|
657
657
|
};
|
@@ -39,15 +39,15 @@ function AsyncVDOMBuilder(globalData, parentNode, parentOut) {
|
|
39
39
|
|
40
40
|
this.data = {};
|
41
41
|
this.K_ = state;
|
42
|
-
this.
|
42
|
+
this.m_ = parentNode;
|
43
43
|
this.global = globalData || {};
|
44
44
|
this.bl_ = [parentNode];
|
45
45
|
this.bm_ = false;
|
46
46
|
this.bn_ = undefined;
|
47
47
|
this.b_ = null;
|
48
48
|
|
49
|
-
this.
|
50
|
-
this.
|
49
|
+
this.h_ = null;
|
50
|
+
this.j_ = null;
|
51
51
|
this.av_ = null;
|
52
52
|
}
|
53
53
|
|
@@ -66,10 +66,10 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
66
66
|
},
|
67
67
|
|
68
68
|
bo_: function (child, childCount, pushToStack) {
|
69
|
-
this.
|
69
|
+
this.m_.bp_(child);
|
70
70
|
if (pushToStack === true) {
|
71
71
|
this.bl_.push(child);
|
72
|
-
this.
|
72
|
+
this.m_ = child;
|
73
73
|
}
|
74
74
|
return childCount === 0 ? this : child;
|
75
75
|
},
|
@@ -92,7 +92,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
92
92
|
tagName,
|
93
93
|
attrsHelper(attrs),
|
94
94
|
key,
|
95
|
-
componentDef.
|
95
|
+
componentDef.i_,
|
96
96
|
0,
|
97
97
|
0,
|
98
98
|
props);
|
@@ -110,7 +110,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
110
110
|
},
|
111
111
|
|
112
112
|
node: function (node) {
|
113
|
-
this.
|
113
|
+
this.m_.bp_(node);
|
114
114
|
return this;
|
115
115
|
},
|
116
116
|
|
@@ -129,7 +129,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
129
129
|
text = text.toString();
|
130
130
|
}
|
131
131
|
|
132
|
-
this.
|
132
|
+
this.m_.bp_(new VText(text, ownerComponent));
|
133
133
|
return this;
|
134
134
|
},
|
135
135
|
|
@@ -169,7 +169,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
169
169
|
tagName,
|
170
170
|
attrsHelper(attrs),
|
171
171
|
key,
|
172
|
-
componentDef.
|
172
|
+
componentDef.i_,
|
173
173
|
0,
|
174
174
|
0,
|
175
175
|
props);
|
@@ -189,11 +189,11 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
189
189
|
endElement: function () {
|
190
190
|
var stack = this.bl_;
|
191
191
|
stack.pop();
|
192
|
-
this.
|
192
|
+
this.m_ = stack[stack.length - 1];
|
193
193
|
},
|
194
194
|
|
195
195
|
end: function () {
|
196
|
-
this.
|
196
|
+
this.m_ = undefined;
|
197
197
|
|
198
198
|
var remaining = --this.bh_;
|
199
199
|
var parentOut = this.bk_;
|
@@ -283,7 +283,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
283
283
|
|
284
284
|
this.bh_++;
|
285
285
|
|
286
|
-
var documentFragment = this.
|
286
|
+
var documentFragment = this.m_.bu_();
|
287
287
|
var asyncOut = new AsyncVDOMBuilder(this.global, documentFragment, this);
|
288
288
|
|
289
289
|
state.be_.emit("beginAsync", {
|
@@ -435,8 +435,8 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
435
435
|
isVDOM: true,
|
436
436
|
|
437
437
|
c: function (componentDef, key, customEvents) {
|
438
|
-
this.
|
439
|
-
this.
|
438
|
+
this.h_ = componentDef;
|
439
|
+
this.j_ = key;
|
440
440
|
this.av_ = customEvents;
|
441
441
|
}
|
442
442
|
};
|
@@ -4,8 +4,8 @@ var inherit = require("raptor-util/inherit");
|
|
4
4
|
function VComponent(component, key, ownerComponent, preserve) {
|
5
5
|
this.bx_(null /* childCount */, ownerComponent);
|
6
6
|
this.by_ = key;
|
7
|
-
this.
|
8
|
-
this.
|
7
|
+
this.i_ = component;
|
8
|
+
this.o_ = preserve;
|
9
9
|
}
|
10
10
|
|
11
11
|
VComponent.prototype = {
|
@@ -8,7 +8,7 @@ var createFragmentNode = require("./morphdom/fragment").ap_;
|
|
8
8
|
function VFragment(key, ownerComponent, preserve) {
|
9
9
|
this.bx_(null /* childCount */, ownerComponent);
|
10
10
|
this.by_ = key;
|
11
|
-
this.
|
11
|
+
this.o_ = preserve;
|
12
12
|
}
|
13
13
|
|
14
14
|
VFragment.prototype = {
|
@@ -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.f_;
|
66
|
+
isHydrate = globalComponentsContext.g_;
|
67
67
|
}
|
68
68
|
|
69
69
|
function insertVirtualNodeBefore(
|
@@ -83,7 +83,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
83
83
|
{
|
84
84
|
if (key) {
|
85
85
|
keysByDOMNode.set(realNode, key);
|
86
|
-
(isAutoKey(key) ? parentComponent : ownerComponent).
|
86
|
+
(isAutoKey(key) ? parentComponent : ownerComponent).l_[
|
87
87
|
key] =
|
88
88
|
realNode;
|
89
89
|
}
|
@@ -115,7 +115,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
115
115
|
if (key && ownerComponent) {
|
116
116
|
key = normalizeComponentKey(key, parentComponent.id);
|
117
117
|
addComponentRootToKeyedElements(
|
118
|
-
ownerComponent.
|
118
|
+
ownerComponent.l_,
|
119
119
|
key,
|
120
120
|
rootNode,
|
121
121
|
component.id);
|
@@ -175,7 +175,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
175
175
|
var referenceComponent;
|
176
176
|
|
177
177
|
if (curToNodeType === COMPONENT_NODE) {
|
178
|
-
var component = curToNodeChild.
|
178
|
+
var component = curToNodeChild.i_;
|
179
179
|
if (
|
180
180
|
(matchingFromComponent = existingComponentLookup[component.id]) ===
|
181
181
|
undefined)
|
@@ -191,7 +191,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
191
191
|
parentComponent.id);
|
192
192
|
|
193
193
|
addComponentRootToKeyedElements(
|
194
|
-
ownerComponent.
|
194
|
+
ownerComponent.l_,
|
195
195
|
curToNodeKey,
|
196
196
|
rootNode,
|
197
197
|
component.id);
|
@@ -242,7 +242,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
242
242
|
curFromNodeChild && nextSibling(curFromNodeChild);
|
243
243
|
}
|
244
244
|
|
245
|
-
if (!curToNodeChild.
|
245
|
+
if (!curToNodeChild.o_) {
|
246
246
|
morphComponent(component, curToNodeChild);
|
247
247
|
}
|
248
248
|
}
|
@@ -278,7 +278,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
278
278
|
|
279
279
|
if (curFromNodeKey === curToNodeKey) {
|
280
280
|
// Elements line up. Now we just have to make sure they are compatible
|
281
|
-
if (!curToNodeChild.
|
281
|
+
if (!curToNodeChild.o_) {
|
282
282
|
// We just skip over the fromNode if it is preserved
|
283
283
|
|
284
284
|
if (compareNodeNames(curToNodeChild, curVFromNodeChild)) {
|
@@ -304,7 +304,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
304
304
|
}
|
305
305
|
}
|
306
306
|
} else {
|
307
|
-
matchingFromEl = referenceComponent.
|
307
|
+
matchingFromEl = referenceComponent.l_[curToNodeKey];
|
308
308
|
if (
|
309
309
|
matchingFromEl === undefined ||
|
310
310
|
matchingFromEl === curFromNodeChild)
|
@@ -312,7 +312,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
312
312
|
if (isHydrate === true && curFromNodeChild) {
|
313
313
|
if (
|
314
314
|
curFromNodeChild.nodeType === ELEMENT_NODE && (
|
315
|
-
curToNodeChild.
|
315
|
+
curToNodeChild.o_ ||
|
316
316
|
caseInsensitiveCompare(
|
317
317
|
curFromNodeChild.nodeName,
|
318
318
|
curToNodeChild.bF_ || "")))
|
@@ -321,10 +321,10 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
321
321
|
curVFromNodeChild = virtualizeElement(curFromNodeChild);
|
322
322
|
curVFromNodeChild.bF_ = curToNodeChild.bF_;
|
323
323
|
keysByDOMNode.set(curFromNodeChild, curToNodeKey);
|
324
|
-
referenceComponent.
|
324
|
+
referenceComponent.l_[curToNodeKey] =
|
325
325
|
curFromNodeChild;
|
326
326
|
|
327
|
-
if (curToNodeChild.
|
327
|
+
if (curToNodeChild.o_) {
|
328
328
|
vElementByDOMNode.set(curFromNodeChild, curVFromNodeChild);
|
329
329
|
} else {
|
330
330
|
morphEl(
|
@@ -372,11 +372,11 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
372
372
|
|
373
373
|
keysByDOMNode.set(fragment, curToNodeKey);
|
374
374
|
vElementByDOMNode.set(fragment, curToNodeChild);
|
375
|
-
referenceComponent.
|
375
|
+
referenceComponent.l_[curToNodeKey] = fragment;
|
376
376
|
removeChild(curFromNodeChild);
|
377
377
|
removeChild(endNode);
|
378
378
|
|
379
|
-
if (!curToNodeChild.
|
379
|
+
if (!curToNodeChild.o_) {
|
380
380
|
morphChildren(fragment, curToNodeChild, parentComponent);
|
381
381
|
}
|
382
382
|
|
@@ -401,7 +401,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
401
401
|
detachedByDOMNode.set(matchingFromEl, undefined);
|
402
402
|
}
|
403
403
|
|
404
|
-
if (!curToNodeChild.
|
404
|
+
if (!curToNodeChild.o_) {
|
405
405
|
curVFromNodeChild = vElementByDOMNode.get(matchingFromEl);
|
406
406
|
|
407
407
|
if (compareNodeNames(curVFromNodeChild, curToNodeChild)) {
|
@@ -662,7 +662,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
662
662
|
|
663
663
|
morphAttrs(fromEl, vFromEl, toEl);
|
664
664
|
|
665
|
-
if (toEl.
|
665
|
+
if (toEl.n_) {
|
666
666
|
return;
|
667
667
|
}
|
668
668
|
|
@@ -681,7 +681,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
681
681
|
|
682
682
|
|
683
683
|
|
684
|
-
morphChildren(fromNode, toNode, toNode.
|
684
|
+
morphChildren(fromNode, toNode, toNode.i_);
|
685
685
|
|
686
686
|
detachedNodes.forEach(function (node) {
|
687
687
|
var detachedFromComponent = detachedByDOMNode.get(node);
|
package/package.json
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
{
|
2
2
|
"name": "marko",
|
3
|
-
"version": "5.25.
|
3
|
+
"version": "5.25.3",
|
4
4
|
"license": "MIT",
|
5
5
|
"description": "UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.",
|
6
6
|
"dependencies": {
|
7
|
-
"@marko/compiler": "^5.27.
|
8
|
-
"@marko/translator-default": "^5.25.
|
7
|
+
"@marko/compiler": "^5.27.3",
|
8
|
+
"@marko/translator-default": "^5.25.3",
|
9
9
|
"app-module-path": "^2.2.0",
|
10
10
|
"argly": "^1.2.0",
|
11
11
|
"browser-refresh-client": "1.1.4",
|
package/src/compiler/modules.js
CHANGED
@@ -0,0 +1,81 @@
|
|
1
|
+
var ComponentsContext = require("../../runtime/components/ComponentsContext");
|
2
|
+
var getComponentsContext = ComponentsContext.___getComponentsContext;
|
3
|
+
|
4
|
+
module.exports = function render(input, out) {
|
5
|
+
var isComponent = !input.n;
|
6
|
+
var shouldPreserve = !("i" in input) || input.i;
|
7
|
+
var componentsContext = out.___components;
|
8
|
+
|
9
|
+
if (typeof document === "object") {
|
10
|
+
var isHydrate =
|
11
|
+
componentsContext && componentsContext.___globalContext.___isHydrate;
|
12
|
+
var ownerComponent = out.___assignedComponentDef.___component;
|
13
|
+
var referenceComponent = ownerComponent;
|
14
|
+
var key = out.___assignedKey;
|
15
|
+
var checkKey = key;
|
16
|
+
|
17
|
+
if (key[0] !== "@") {
|
18
|
+
var parentComponent = componentsContext.___componentDef.___component;
|
19
|
+
if (ownerComponent !== parentComponent) {
|
20
|
+
referenceComponent = parentComponent;
|
21
|
+
checkKey += ":" + ownerComponent.id;
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
var isPreserved =
|
26
|
+
shouldPreserve &&
|
27
|
+
(isHydrate || referenceComponent.___keyedElements[checkKey]);
|
28
|
+
|
29
|
+
if (isComponent) {
|
30
|
+
out.bf(key, ownerComponent, shouldPreserve);
|
31
|
+
|
32
|
+
if (!isPreserved && input.renderBody) {
|
33
|
+
input.renderBody(out);
|
34
|
+
}
|
35
|
+
|
36
|
+
out.ef();
|
37
|
+
} else {
|
38
|
+
if (isPreserved) {
|
39
|
+
if (input.b) {
|
40
|
+
out.___parent.___preserveBody = true;
|
41
|
+
} else {
|
42
|
+
out.beginElement("", null, key, ownerComponent);
|
43
|
+
out.___parent.___preserve = true;
|
44
|
+
out.endElement();
|
45
|
+
}
|
46
|
+
} else if (input.renderBody) {
|
47
|
+
input.renderBody(out);
|
48
|
+
}
|
49
|
+
}
|
50
|
+
} else {
|
51
|
+
if (isComponent) {
|
52
|
+
out.bf(
|
53
|
+
out.___assignedKey,
|
54
|
+
out.___assignedComponentDef.___component,
|
55
|
+
true
|
56
|
+
);
|
57
|
+
}
|
58
|
+
|
59
|
+
if (input.renderBody) {
|
60
|
+
if (shouldPreserve) {
|
61
|
+
var parentPreserved = false;
|
62
|
+
|
63
|
+
if (componentsContext) {
|
64
|
+
parentPreserved = componentsContext.___isPreserved;
|
65
|
+
} else {
|
66
|
+
componentsContext = getComponentsContext(out);
|
67
|
+
}
|
68
|
+
|
69
|
+
componentsContext.___isPreserved = true;
|
70
|
+
input.renderBody(out);
|
71
|
+
componentsContext.___isPreserved = parentPreserved;
|
72
|
+
} else {
|
73
|
+
input.renderBody(out);
|
74
|
+
}
|
75
|
+
}
|
76
|
+
|
77
|
+
if (isComponent) {
|
78
|
+
out.ef();
|
79
|
+
}
|
80
|
+
}
|
81
|
+
};
|
@@ -81,7 +81,7 @@ const LAST_OPTIONS = { last: true, name: "await:finish" };
|
|
81
81
|
|
82
82
|
module.exports = function awaitTag(input, out) {
|
83
83
|
var clientReorder =
|
84
|
-
typeof
|
84
|
+
typeof document === "undefined" &&
|
85
85
|
input.clientReorder === true &&
|
86
86
|
!out.isVDOM;
|
87
87
|
|
@@ -12,7 +12,7 @@ var RENDER_BODY_TO_JSON = function () {
|
|
12
12
|
|
13
13
|
var FLAG_WILL_RERENDER_IN_BROWSER = 1;
|
14
14
|
// var FLAG_HAS_RENDER_BODY = 2;
|
15
|
-
var IS_SERVER = typeof
|
15
|
+
var IS_SERVER = typeof document === "undefined";
|
16
16
|
|
17
17
|
/**
|
18
18
|
* Helper to render a dynamic tag
|
@@ -1,45 +0,0 @@
|
|
1
|
-
"use strict";module.exports = function render(input, out) {
|
2
|
-
var componentsContext = out.b_;
|
3
|
-
var isHydrate =
|
4
|
-
componentsContext && componentsContext.e_.f_;
|
5
|
-
var ownerComponent = out.g_.h_;
|
6
|
-
var shouldPreserve = !("i" in input) || input.i;
|
7
|
-
var referenceComponent = ownerComponent;
|
8
|
-
var key = out.i_;
|
9
|
-
var checkKey = key;
|
10
|
-
|
11
|
-
if (key[0] !== "@") {
|
12
|
-
var parentComponent = componentsContext.j_.h_;
|
13
|
-
if (ownerComponent !== parentComponent) {
|
14
|
-
referenceComponent = parentComponent;
|
15
|
-
checkKey += ":" + ownerComponent.id;
|
16
|
-
}
|
17
|
-
}
|
18
|
-
|
19
|
-
var isPreserved = Boolean(
|
20
|
-
shouldPreserve && (
|
21
|
-
isHydrate || referenceComponent.k_[checkKey]));
|
22
|
-
|
23
|
-
|
24
|
-
if (input.n) {
|
25
|
-
if (isPreserved) {
|
26
|
-
if (input.b) {
|
27
|
-
out.l_.m_ = true;
|
28
|
-
} else {
|
29
|
-
out.beginElement("", null, key, ownerComponent);
|
30
|
-
out.l_.n_ = true;
|
31
|
-
out.endElement();
|
32
|
-
}
|
33
|
-
} else if (input.renderBody) {
|
34
|
-
input.renderBody(out);
|
35
|
-
}
|
36
|
-
} else {
|
37
|
-
out.bf(key, ownerComponent, shouldPreserve);
|
38
|
-
|
39
|
-
if (!isPreserved && input.renderBody) {
|
40
|
-
input.renderBody(out);
|
41
|
-
}
|
42
|
-
|
43
|
-
out.ef();
|
44
|
-
}
|
45
|
-
};
|
@@ -1,27 +0,0 @@
|
|
1
|
-
"use strict";var ComponentsContext = require("../../../runtime/components/ComponentsContext");
|
2
|
-
var getComponentsContext = ComponentsContext.o_;
|
3
|
-
|
4
|
-
module.exports = function render(input, out) {
|
5
|
-
var shouldPreserve = Boolean(!("i" in input) || input.i);
|
6
|
-
var isComponent = !input.n;
|
7
|
-
|
8
|
-
if (isComponent) {
|
9
|
-
out.bf(out.i_, out.g_.h_, true);
|
10
|
-
}
|
11
|
-
|
12
|
-
if (input.renderBody) {
|
13
|
-
if (shouldPreserve) {
|
14
|
-
var componentsContext = getComponentsContext(out);
|
15
|
-
var parentPreserved = componentsContext.p_;
|
16
|
-
componentsContext.p_ = true;
|
17
|
-
input.renderBody(out);
|
18
|
-
componentsContext.p_ = parentPreserved;
|
19
|
-
} else {
|
20
|
-
input.renderBody(out);
|
21
|
-
}
|
22
|
-
}
|
23
|
-
|
24
|
-
if (isComponent) {
|
25
|
-
out.ef();
|
26
|
-
}
|
27
|
-
};
|
@@ -1,45 +0,0 @@
|
|
1
|
-
module.exports = function render(input, out) {
|
2
|
-
var componentsContext = out.___components;
|
3
|
-
var isHydrate =
|
4
|
-
componentsContext && componentsContext.___globalContext.___isHydrate;
|
5
|
-
var ownerComponent = out.___assignedComponentDef.___component;
|
6
|
-
var shouldPreserve = !("i" in input) || input.i;
|
7
|
-
var referenceComponent = ownerComponent;
|
8
|
-
var key = out.___assignedKey;
|
9
|
-
var checkKey = key;
|
10
|
-
|
11
|
-
if (key[0] !== "@") {
|
12
|
-
var parentComponent = componentsContext.___componentDef.___component;
|
13
|
-
if (ownerComponent !== parentComponent) {
|
14
|
-
referenceComponent = parentComponent;
|
15
|
-
checkKey += ":" + ownerComponent.id;
|
16
|
-
}
|
17
|
-
}
|
18
|
-
|
19
|
-
var isPreserved = Boolean(
|
20
|
-
shouldPreserve &&
|
21
|
-
(isHydrate || referenceComponent.___keyedElements[checkKey])
|
22
|
-
);
|
23
|
-
|
24
|
-
if (input.n) {
|
25
|
-
if (isPreserved) {
|
26
|
-
if (input.b) {
|
27
|
-
out.___parent.___preserveBody = true;
|
28
|
-
} else {
|
29
|
-
out.beginElement("", null, key, ownerComponent);
|
30
|
-
out.___parent.___preserve = true;
|
31
|
-
out.endElement();
|
32
|
-
}
|
33
|
-
} else if (input.renderBody) {
|
34
|
-
input.renderBody(out);
|
35
|
-
}
|
36
|
-
} else {
|
37
|
-
out.bf(key, ownerComponent, shouldPreserve);
|
38
|
-
|
39
|
-
if (!isPreserved && input.renderBody) {
|
40
|
-
input.renderBody(out);
|
41
|
-
}
|
42
|
-
|
43
|
-
out.ef();
|
44
|
-
}
|
45
|
-
};
|
@@ -1,27 +0,0 @@
|
|
1
|
-
var ComponentsContext = require("../../../runtime/components/ComponentsContext");
|
2
|
-
var getComponentsContext = ComponentsContext.___getComponentsContext;
|
3
|
-
|
4
|
-
module.exports = function render(input, out) {
|
5
|
-
var shouldPreserve = Boolean(!("i" in input) || input.i);
|
6
|
-
var isComponent = !input.n;
|
7
|
-
|
8
|
-
if (isComponent) {
|
9
|
-
out.bf(out.___assignedKey, out.___assignedComponentDef.___component, true);
|
10
|
-
}
|
11
|
-
|
12
|
-
if (input.renderBody) {
|
13
|
-
if (shouldPreserve) {
|
14
|
-
var componentsContext = getComponentsContext(out);
|
15
|
-
var parentPreserved = componentsContext.___isPreserved;
|
16
|
-
componentsContext.___isPreserved = true;
|
17
|
-
input.renderBody(out);
|
18
|
-
componentsContext.___isPreserved = parentPreserved;
|
19
|
-
} else {
|
20
|
-
input.renderBody(out);
|
21
|
-
}
|
22
|
-
}
|
23
|
-
|
24
|
-
if (isComponent) {
|
25
|
-
out.ef();
|
26
|
-
}
|
27
|
-
};
|