marko 5.35.14 → 5.35.16
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/node_modules/@internal/components-entry/index.js +2 -1
- package/dist/runtime/vdom/AsyncVDOMBuilder.js +67 -62
- package/dist/runtime/vdom/VComment.js +24 -0
- package/dist/runtime/vdom/VComponent.js +3 -3
- package/dist/runtime/vdom/VDocumentFragment.js +6 -6
- package/dist/runtime/vdom/VElement.js +32 -32
- package/dist/runtime/vdom/VFragment.js +4 -4
- package/dist/runtime/vdom/VNode.js +29 -29
- package/dist/runtime/vdom/VText.js +7 -7
- package/dist/runtime/vdom/helpers/const-element.js +2 -2
- package/dist/runtime/vdom/hot-reload.js +2 -2
- package/dist/runtime/vdom/morphdom/fragment.js +3 -3
- package/dist/runtime/vdom/morphdom/helpers.js +1 -1
- package/dist/runtime/vdom/morphdom/index.js +31 -31
- package/dist/runtime/vdom/vdom.js +19 -13
- package/package.json +3 -3
- package/src/node_modules/@internal/components-entry/index.js +2 -1
- package/src/runtime/vdom/AsyncVDOMBuilder.js +5 -0
- package/src/runtime/vdom/VComment.js +24 -0
- package/src/runtime/vdom/vdom.js +7 -1
@@ -139,7 +139,8 @@ function addComponentsFromContext(componentsContext, componentsToHydrate) {
|
|
139
139
|
|
140
140
|
if (typeof renderBody === "function" && renderBody.toJSON === w10ToJSON) {
|
141
141
|
flags |= FLAG_HAS_RENDER_BODY;
|
142
|
-
renderBody =
|
142
|
+
renderBody = undefined;
|
143
|
+
if (input) input.renderBody = undefined;
|
143
144
|
}
|
144
145
|
|
145
146
|
var extra = {
|
@@ -4,19 +4,20 @@ var attrsHelper = require("./helpers/attrs");
|
|
4
4
|
var morphdom = require("./morphdom");
|
5
5
|
var vdom = require("./vdom");
|
6
6
|
var VElement = vdom.bz_;
|
7
|
-
var
|
8
|
-
var
|
9
|
-
var
|
10
|
-
var
|
11
|
-
var
|
7
|
+
var VComment = vdom.bA_;
|
8
|
+
var VDocumentFragment = vdom.bB_;
|
9
|
+
var VText = vdom.bC_;
|
10
|
+
var VComponent = vdom.bD_;
|
11
|
+
var VFragment = vdom.bE_;
|
12
|
+
var virtualizeHTML = vdom.bF_;
|
12
13
|
|
13
14
|
var EVENT_UPDATE = "update";
|
14
15
|
var EVENT_FINISH = "finish";
|
15
16
|
|
16
17
|
function State(tree) {
|
17
|
-
this.
|
18
|
-
this.
|
19
|
-
this.
|
18
|
+
this.bG_ = new EventEmitter();
|
19
|
+
this.bH_ = tree;
|
20
|
+
this.bI_ = false;
|
20
21
|
}
|
21
22
|
|
22
23
|
function AsyncVDOMBuilder(globalData, parentNode, parentOut) {
|
@@ -32,18 +33,18 @@ function AsyncVDOMBuilder(globalData, parentNode, parentOut) {
|
|
32
33
|
state = new State(parentNode);
|
33
34
|
}
|
34
35
|
|
35
|
-
this.
|
36
|
-
this.
|
37
|
-
this.
|
38
|
-
this.
|
36
|
+
this.bJ_ = 1;
|
37
|
+
this.bK_ = 0;
|
38
|
+
this.bL_ = null;
|
39
|
+
this.bM_ = parentOut;
|
39
40
|
|
40
41
|
this.data = {};
|
41
42
|
this.z_ = state;
|
42
43
|
this.ab_ = parentNode;
|
43
44
|
this.global = globalData || {};
|
44
|
-
this.
|
45
|
-
this.
|
46
|
-
this.
|
45
|
+
this.bN_ = [parentNode];
|
46
|
+
this.bO_ = false;
|
47
|
+
this.bP_ = undefined;
|
47
48
|
this.b_ = null;
|
48
49
|
|
49
50
|
this.a__ = null;
|
@@ -57,18 +58,18 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
57
58
|
|
58
59
|
bc: function (component, key, ownerComponent) {
|
59
60
|
var vComponent = new VComponent(component, key, ownerComponent);
|
60
|
-
return this.
|
61
|
+
return this.bQ_(vComponent, 0, true);
|
61
62
|
},
|
62
63
|
|
63
64
|
bd_: function (component, key, ownerComponent) {
|
64
65
|
var vComponent = new VComponent(component, key, ownerComponent, true);
|
65
|
-
this.
|
66
|
+
this.bQ_(vComponent, 0);
|
66
67
|
},
|
67
68
|
|
68
|
-
|
69
|
-
this.ab_.
|
69
|
+
bQ_: function (child, childCount, pushToStack) {
|
70
|
+
this.ab_.bR_(child);
|
70
71
|
if (pushToStack === true) {
|
71
|
-
this.
|
72
|
+
this.bN_.push(child);
|
72
73
|
this.ab_ = child;
|
73
74
|
}
|
74
75
|
return childCount === 0 ? this : child;
|
@@ -84,7 +85,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
84
85
|
flags,
|
85
86
|
props
|
86
87
|
);
|
87
|
-
return this.
|
88
|
+
return this.bQ_(element, childCount);
|
88
89
|
},
|
89
90
|
|
90
91
|
bm_: function (tagName, attrs, key, componentDef, props) {
|
@@ -102,7 +103,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
102
103
|
n: function (node, component) {
|
103
104
|
// NOTE: We do a shallow clone since we assume the node is being reused
|
104
105
|
// and a node can only have one parent node.
|
105
|
-
var clone = node.
|
106
|
+
var clone = node.bS_();
|
106
107
|
this.node(clone);
|
107
108
|
clone._M_ = component;
|
108
109
|
|
@@ -110,7 +111,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
110
111
|
},
|
111
112
|
|
112
113
|
node: function (node) {
|
113
|
-
this.ab_.
|
114
|
+
this.ab_.bR_(node);
|
114
115
|
return this;
|
115
116
|
},
|
116
117
|
|
@@ -129,10 +130,14 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
129
130
|
text = text.toString();
|
130
131
|
}
|
131
132
|
|
132
|
-
this.ab_.
|
133
|
+
this.ab_.bR_(new VText(text, ownerComponent));
|
133
134
|
return this;
|
134
135
|
},
|
135
136
|
|
137
|
+
comment: function (comment, ownerComponent) {
|
138
|
+
return this.node(new VComment(comment, ownerComponent));
|
139
|
+
},
|
140
|
+
|
136
141
|
html: function (html, ownerComponent) {
|
137
142
|
if (html != null) {
|
138
143
|
var vdomNode = virtualizeHTML(html, ownerComponent);
|
@@ -160,7 +165,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
160
165
|
flags,
|
161
166
|
props
|
162
167
|
);
|
163
|
-
this.
|
168
|
+
this.bQ_(element, childCount, true);
|
164
169
|
return this;
|
165
170
|
},
|
166
171
|
|
@@ -178,7 +183,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
178
183
|
|
179
184
|
bf: function (key, component, preserve) {
|
180
185
|
var fragment = new VFragment(key, component, preserve);
|
181
|
-
this.
|
186
|
+
this.bQ_(fragment, null, true);
|
182
187
|
return this;
|
183
188
|
},
|
184
189
|
|
@@ -187,7 +192,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
187
192
|
},
|
188
193
|
|
189
194
|
endElement: function () {
|
190
|
-
var stack = this.
|
195
|
+
var stack = this.bN_;
|
191
196
|
stack.pop();
|
192
197
|
this.ab_ = stack[stack.length - 1];
|
193
198
|
},
|
@@ -195,44 +200,44 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
195
200
|
end: function () {
|
196
201
|
this.ab_ = undefined;
|
197
202
|
|
198
|
-
var remaining = --this.
|
199
|
-
var parentOut = this.
|
203
|
+
var remaining = --this.bJ_;
|
204
|
+
var parentOut = this.bM_;
|
200
205
|
|
201
206
|
if (remaining === 0) {
|
202
207
|
if (parentOut) {
|
203
|
-
parentOut.
|
208
|
+
parentOut.bT_();
|
204
209
|
} else {
|
205
|
-
this.
|
210
|
+
this.bU_();
|
206
211
|
}
|
207
|
-
} else if (remaining - this.
|
208
|
-
this.
|
212
|
+
} else if (remaining - this.bK_ === 0) {
|
213
|
+
this.bV_();
|
209
214
|
}
|
210
215
|
|
211
216
|
return this;
|
212
217
|
},
|
213
218
|
|
214
|
-
|
215
|
-
var remaining = --this.
|
219
|
+
bT_: function () {
|
220
|
+
var remaining = --this.bJ_;
|
216
221
|
|
217
222
|
if (remaining === 0) {
|
218
|
-
var parentOut = this.
|
223
|
+
var parentOut = this.bM_;
|
219
224
|
if (parentOut) {
|
220
|
-
parentOut.
|
225
|
+
parentOut.bT_();
|
221
226
|
} else {
|
222
|
-
this.
|
227
|
+
this.bU_();
|
223
228
|
}
|
224
|
-
} else if (remaining - this.
|
225
|
-
this.
|
229
|
+
} else if (remaining - this.bK_ === 0) {
|
230
|
+
this.bV_();
|
226
231
|
}
|
227
232
|
},
|
228
233
|
|
229
|
-
|
234
|
+
bU_: function () {
|
230
235
|
var state = this.z_;
|
231
|
-
state.
|
232
|
-
state.
|
236
|
+
state.bI_ = true;
|
237
|
+
state.bG_.emit(EVENT_FINISH, this.bv_());
|
233
238
|
},
|
234
239
|
|
235
|
-
|
240
|
+
bV_: function () {
|
236
241
|
var lastArray = this._last;
|
237
242
|
|
238
243
|
var i = 0;
|
@@ -267,7 +272,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
267
272
|
},
|
268
273
|
|
269
274
|
beginAsync: function (options) {
|
270
|
-
if (this.
|
275
|
+
if (this.bO_) {
|
271
276
|
throw Error(
|
272
277
|
"Tried to render async while in sync mode. Note: Client side await is not currently supported in re-renders (Issue: #942)."
|
273
278
|
);
|
@@ -277,16 +282,16 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
277
282
|
|
278
283
|
if (options) {
|
279
284
|
if (options.last) {
|
280
|
-
this.
|
285
|
+
this.bK_++;
|
281
286
|
}
|
282
287
|
}
|
283
288
|
|
284
|
-
this.
|
289
|
+
this.bJ_++;
|
285
290
|
|
286
|
-
var documentFragment = this.ab_.
|
291
|
+
var documentFragment = this.ab_.bW_();
|
287
292
|
var asyncOut = new AsyncVDOMBuilder(this.global, documentFragment, this);
|
288
293
|
|
289
|
-
state.
|
294
|
+
state.bG_.emit("beginAsync", {
|
290
295
|
out: asyncOut,
|
291
296
|
parentOut: this
|
292
297
|
});
|
@@ -299,7 +304,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
299
304
|
},
|
300
305
|
|
301
306
|
flush: function () {
|
302
|
-
var events = this.z_.
|
307
|
+
var events = this.z_.bG_;
|
303
308
|
|
304
309
|
if (events.listenerCount(EVENT_UPDATE)) {
|
305
310
|
events.emit(EVENT_UPDATE, new RenderResult(this));
|
@@ -307,22 +312,22 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
307
312
|
},
|
308
313
|
|
309
314
|
ah_: function () {
|
310
|
-
return this.z_.
|
315
|
+
return this.z_.bH_;
|
311
316
|
},
|
312
317
|
|
313
318
|
bv_: function () {
|
314
|
-
return this.
|
319
|
+
return this.bX_ || (this.bX_ = new RenderResult(this));
|
315
320
|
},
|
316
321
|
|
317
322
|
on: function (event, callback) {
|
318
323
|
var state = this.z_;
|
319
324
|
|
320
|
-
if (event === EVENT_FINISH && state.
|
325
|
+
if (event === EVENT_FINISH && state.bI_) {
|
321
326
|
callback(this.bv_());
|
322
327
|
} else if (event === "last") {
|
323
328
|
this.onLast(callback);
|
324
329
|
} else {
|
325
|
-
state.
|
330
|
+
state.bG_.on(event, callback);
|
326
331
|
}
|
327
332
|
|
328
333
|
return this;
|
@@ -331,19 +336,19 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
331
336
|
once: function (event, callback) {
|
332
337
|
var state = this.z_;
|
333
338
|
|
334
|
-
if (event === EVENT_FINISH && state.
|
339
|
+
if (event === EVENT_FINISH && state.bI_) {
|
335
340
|
callback(this.bv_());
|
336
341
|
} else if (event === "last") {
|
337
342
|
this.onLast(callback);
|
338
343
|
} else {
|
339
|
-
state.
|
344
|
+
state.bG_.once(event, callback);
|
340
345
|
}
|
341
346
|
|
342
347
|
return this;
|
343
348
|
},
|
344
349
|
|
345
350
|
emit: function (type, arg) {
|
346
|
-
var events = this.z_.
|
351
|
+
var events = this.z_.bG_;
|
347
352
|
switch (arguments.length) {
|
348
353
|
case 1:
|
349
354
|
events.emit(type);
|
@@ -359,17 +364,17 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
359
364
|
},
|
360
365
|
|
361
366
|
removeListener: function () {
|
362
|
-
var events = this.z_.
|
367
|
+
var events = this.z_.bG_;
|
363
368
|
events.removeListener.apply(events, arguments);
|
364
369
|
return this;
|
365
370
|
},
|
366
371
|
|
367
372
|
sync: function () {
|
368
|
-
this.
|
373
|
+
this.bO_ = true;
|
369
374
|
},
|
370
375
|
|
371
376
|
isSync: function () {
|
372
|
-
return this.
|
377
|
+
return this.bO_;
|
373
378
|
},
|
374
379
|
|
375
380
|
onLast: function (callback) {
|
@@ -385,12 +390,12 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
385
390
|
},
|
386
391
|
|
387
392
|
ag_: function (host) {
|
388
|
-
var node = this.
|
393
|
+
var node = this.bP_;
|
389
394
|
if (!node) {
|
390
395
|
var vdomTree = this.ah_();
|
391
396
|
|
392
397
|
if (!host) host = this.B_;
|
393
|
-
this.
|
398
|
+
this.bP_ = node = vdomTree.bo_(host, null);
|
394
399
|
morphdom(node, vdomTree, host, this.b_);
|
395
400
|
}
|
396
401
|
return node;
|
@@ -0,0 +1,24 @@
|
|
1
|
+
"use strict";var VNode = require("./VNode");
|
2
|
+
var inherit = require("raptor-util/inherit");
|
3
|
+
|
4
|
+
function VComment(value, ownerComponent) {
|
5
|
+
this.bY_(-1 /* no children */, ownerComponent);
|
6
|
+
this.bZ_ = value;
|
7
|
+
}
|
8
|
+
|
9
|
+
VComment.prototype = {
|
10
|
+
c__: 8,
|
11
|
+
|
12
|
+
bo_: function (doc) {
|
13
|
+
var nodeValue = this.bZ_;
|
14
|
+
return doc.createComment(nodeValue);
|
15
|
+
},
|
16
|
+
|
17
|
+
bS_: function () {
|
18
|
+
return new VComment(this.bZ_);
|
19
|
+
}
|
20
|
+
};
|
21
|
+
|
22
|
+
inherit(VComment, VNode);
|
23
|
+
|
24
|
+
module.exports = VComment;
|
@@ -2,14 +2,14 @@
|
|
2
2
|
var VNode = require("./VNode");
|
3
3
|
|
4
4
|
function VComponent(component, key, ownerComponent, preserve) {
|
5
|
-
this.
|
6
|
-
this.
|
5
|
+
this.bY_(null /* childCount */, ownerComponent);
|
6
|
+
this.ca_ = key;
|
7
7
|
this.s_ = component;
|
8
8
|
this.ad_ = preserve;
|
9
9
|
}
|
10
10
|
|
11
11
|
VComponent.prototype = {
|
12
|
-
|
12
|
+
c__: 2
|
13
13
|
};
|
14
14
|
|
15
15
|
inherit(VComponent, VNode);
|
@@ -4,21 +4,21 @@ var VNode = require("./VNode");
|
|
4
4
|
|
5
5
|
function VDocumentFragmentClone(other) {
|
6
6
|
extend(this, other);
|
7
|
-
this.
|
8
|
-
this.
|
7
|
+
this.cb_ = null;
|
8
|
+
this.cc_ = null;
|
9
9
|
}
|
10
10
|
|
11
11
|
function VDocumentFragment(out) {
|
12
|
-
this.
|
12
|
+
this.bY_(null /* childCount */);
|
13
13
|
this.r_ = out;
|
14
14
|
}
|
15
15
|
|
16
16
|
VDocumentFragment.prototype = {
|
17
|
-
|
17
|
+
c__: 11,
|
18
18
|
|
19
|
-
|
19
|
+
cd_: true,
|
20
20
|
|
21
|
-
|
21
|
+
bS_: function () {
|
22
22
|
return new VDocumentFragmentClone(this);
|
23
23
|
},
|
24
24
|
|
@@ -80,17 +80,17 @@ function assign(a, b) {
|
|
80
80
|
}
|
81
81
|
|
82
82
|
function VElementClone(other) {
|
83
|
-
this.cc_ = other.cc_;
|
84
|
-
this.c__ = null;
|
85
|
-
this.ca_ = null;
|
86
|
-
|
87
|
-
this.bY_ = other.bY_;
|
88
|
-
this.cd_ = other.cd_;
|
89
|
-
this._O_ = other._O_;
|
90
83
|
this.ce_ = other.ce_;
|
91
|
-
this.
|
84
|
+
this.cb_ = null;
|
85
|
+
this.cc_ = null;
|
86
|
+
|
87
|
+
this.ca_ = other.ca_;
|
92
88
|
this.cf_ = other.cf_;
|
89
|
+
this._O_ = other._O_;
|
93
90
|
this.cg_ = other.cg_;
|
91
|
+
this.u_ = other.u_;
|
92
|
+
this.ch_ = other.ch_;
|
93
|
+
this.ci_ = other.ci_;
|
94
94
|
}
|
95
95
|
|
96
96
|
function VElement(
|
@@ -102,7 +102,7 @@ childCount,
|
|
102
102
|
flags,
|
103
103
|
props)
|
104
104
|
{
|
105
|
-
this.
|
105
|
+
this.bY_(childCount, ownerComponent);
|
106
106
|
|
107
107
|
var constId;
|
108
108
|
|
@@ -110,21 +110,21 @@ props)
|
|
110
110
|
constId = props.i;
|
111
111
|
}
|
112
112
|
|
113
|
-
this.
|
113
|
+
this.ca_ = key;
|
114
114
|
this.u_ = flags || 0;
|
115
|
-
this.
|
115
|
+
this.cf_ = attrs || EMPTY_OBJECT;
|
116
116
|
this._O_ = props || EMPTY_OBJECT;
|
117
|
-
this.
|
118
|
-
this.
|
119
|
-
this.
|
117
|
+
this.cg_ = tagName;
|
118
|
+
this.ch_ = "";
|
119
|
+
this.ci_ = constId;
|
120
120
|
this.ad_ = false;
|
121
121
|
this.ac_ = false;
|
122
122
|
}
|
123
123
|
|
124
124
|
VElement.prototype = {
|
125
|
-
|
125
|
+
c__: 1,
|
126
126
|
|
127
|
-
|
127
|
+
bS_: function () {
|
128
128
|
return new VElementClone(this);
|
129
129
|
},
|
130
130
|
|
@@ -136,7 +136,7 @@ VElement.prototype = {
|
|
136
136
|
* @param {int|null} childCount The number of child nodes (or `null` if not known)
|
137
137
|
*/
|
138
138
|
e: function (tagName, attrs, key, ownerComponent, childCount, flags, props) {
|
139
|
-
var child = this.
|
139
|
+
var child = this.bR_(
|
140
140
|
new VElement(
|
141
141
|
tagName,
|
142
142
|
attrs,
|
@@ -149,7 +149,7 @@ VElement.prototype = {
|
|
149
149
|
);
|
150
150
|
|
151
151
|
if (childCount === 0) {
|
152
|
-
return this.
|
152
|
+
return this.cj_();
|
153
153
|
} else {
|
154
154
|
return child;
|
155
155
|
}
|
@@ -162,15 +162,15 @@ VElement.prototype = {
|
|
162
162
|
* @param {String} value The value for the new Comment node
|
163
163
|
*/
|
164
164
|
n: function (node, ownerComponent) {
|
165
|
-
node = node.
|
165
|
+
node = node.bS_();
|
166
166
|
node._M_ = ownerComponent;
|
167
|
-
this.
|
168
|
-
return this.
|
167
|
+
this.bR_(node);
|
168
|
+
return this.cj_();
|
169
169
|
},
|
170
170
|
|
171
171
|
bo_: function (host, parentNamespaceURI) {
|
172
|
-
var tagName = this.
|
173
|
-
var attributes = this.
|
172
|
+
var tagName = this.cg_;
|
173
|
+
var attributes = this.cf_;
|
174
174
|
var namespaceURI = DEFAULT_NS[tagName] || parentNamespaceURI || NS_HTML;
|
175
175
|
|
176
176
|
var flags = this.u_;
|
@@ -195,7 +195,7 @@ VElement.prototype = {
|
|
195
195
|
}
|
196
196
|
|
197
197
|
if (tagName === "textarea") {
|
198
|
-
el.defaultValue = this.
|
198
|
+
el.defaultValue = this.ch_;
|
199
199
|
}
|
200
200
|
}
|
201
201
|
|
@@ -249,8 +249,8 @@ function virtualizeElement(node, virtualizeChildNodes, ownerComponent) {
|
|
249
249
|
props
|
250
250
|
);
|
251
251
|
|
252
|
-
if (vdomEl.
|
253
|
-
vdomEl.
|
252
|
+
if (vdomEl.cg_ === "textarea") {
|
253
|
+
vdomEl.ch_ = node.value;
|
254
254
|
} else if (virtualizeChildNodes) {
|
255
255
|
virtualizeChildNodes(node, vdomEl, ownerComponent);
|
256
256
|
}
|
@@ -258,12 +258,12 @@ function virtualizeElement(node, virtualizeChildNodes, ownerComponent) {
|
|
258
258
|
return vdomEl;
|
259
259
|
}
|
260
260
|
|
261
|
-
VElement.
|
261
|
+
VElement.ck_ = virtualizeElement;
|
262
262
|
|
263
|
-
VElement.
|
263
|
+
VElement.cl_ = function (fromEl, vFromEl, toEl) {
|
264
264
|
var fromFlags = vFromEl.u_;
|
265
265
|
var toFlags = toEl.u_;
|
266
|
-
var attrs = toEl.
|
266
|
+
var attrs = toEl.cf_;
|
267
267
|
|
268
268
|
if (toFlags & FLAG_CUSTOM_ELEMENT) {
|
269
269
|
return assign(fromEl, attrs);
|
@@ -280,7 +280,7 @@ VElement.cj_ = function (fromEl, vFromEl, toEl) {
|
|
280
280
|
// real VElement node will not have the expando property
|
281
281
|
// so we build the attribute map from the expando property
|
282
282
|
|
283
|
-
var oldAttrs = vFromEl.
|
283
|
+
var oldAttrs = vFromEl.cf_;
|
284
284
|
|
285
285
|
if (oldAttrs === attrs) {
|
286
286
|
// For constant attributes the same object will be provided
|
@@ -318,7 +318,7 @@ VElement.cj_ = function (fromEl, vFromEl, toEl) {
|
|
318
318
|
}
|
319
319
|
|
320
320
|
var preserve = props && props.pa || EMPTY_OBJECT;
|
321
|
-
var specialAttrs = specialElHandlers[toEl.
|
321
|
+
var specialAttrs = specialElHandlers[toEl.cg_] || EMPTY_OBJECT;
|
322
322
|
var specialAttr;
|
323
323
|
|
324
324
|
// Loop over all of the attributes in the attribute map and compare
|
@@ -356,7 +356,7 @@ VElement.cj_ = function (fromEl, vFromEl, toEl) {
|
|
356
356
|
// was not a virtualized node (i.e., a node that was not rendered by a
|
357
357
|
// Marko template, but rather a node that was created from an HTML
|
358
358
|
// string or a real DOM node).
|
359
|
-
if (toEl.
|
359
|
+
if (toEl.ca_ === null || fromFlags & FLAG_SPREAD_ATTRS) {
|
360
360
|
for (attrName in oldAttrs) {
|
361
361
|
if (!(attrName in attrs)) {
|
362
362
|
if (specialAttr = specialAttrs[attrName]) {
|
@@ -6,16 +6,16 @@ var createFragmentNode = require("./morphdom/fragment")._k_;
|
|
6
6
|
var VNode = require("./VNode");
|
7
7
|
|
8
8
|
function VFragment(key, ownerComponent, preserve) {
|
9
|
-
this.
|
10
|
-
this.
|
9
|
+
this.bY_(null /* childCount */, ownerComponent);
|
10
|
+
this.ca_ = key;
|
11
11
|
this.ad_ = preserve;
|
12
12
|
}
|
13
13
|
|
14
14
|
VFragment.prototype = {
|
15
|
-
|
15
|
+
c__: 12,
|
16
16
|
bo_: function () {
|
17
17
|
var fragment = createFragmentNode();
|
18
|
-
keysByDOMNode.set(fragment, this.
|
18
|
+
keysByDOMNode.set(fragment, this.ca_);
|
19
19
|
vElementByDOMNode.set(fragment, this);
|
20
20
|
return fragment;
|
21
21
|
}
|
@@ -1,78 +1,78 @@
|
|
1
1
|
"use strict";function VNode() {}
|
2
2
|
|
3
3
|
VNode.prototype = {
|
4
|
-
|
5
|
-
this.
|
6
|
-
this.
|
4
|
+
bY_: function (finalChildCount, ownerComponent) {
|
5
|
+
this.cm_ = finalChildCount;
|
6
|
+
this.cn_ = 0;
|
7
|
+
this.ce_ = null;
|
8
|
+
this.co_ = null;
|
9
|
+
this.cb_ = null;
|
7
10
|
this.cc_ = null;
|
8
|
-
this.cm_ = null;
|
9
|
-
this.c__ = null;
|
10
|
-
this.ca_ = null;
|
11
11
|
this._M_ = ownerComponent;
|
12
12
|
},
|
13
13
|
|
14
14
|
get aA_() {
|
15
|
-
var firstChild = this.
|
15
|
+
var firstChild = this.ce_;
|
16
16
|
|
17
|
-
if (firstChild && firstChild.
|
17
|
+
if (firstChild && firstChild.cd_) {
|
18
18
|
var nestedFirstChild = firstChild.aA_;
|
19
19
|
// The first child is a DocumentFragment node.
|
20
20
|
// If the DocumentFragment node has a first child then we will return that.
|
21
21
|
// Otherwise, the DocumentFragment node is not *really* the first child and
|
22
22
|
// we need to skip to its next sibling
|
23
|
-
return nestedFirstChild || firstChild.
|
23
|
+
return nestedFirstChild || firstChild.cp_;
|
24
24
|
}
|
25
25
|
|
26
26
|
return firstChild;
|
27
27
|
},
|
28
28
|
|
29
|
-
get
|
30
|
-
var nextSibling = this.
|
29
|
+
get cp_() {
|
30
|
+
var nextSibling = this.cc_;
|
31
31
|
|
32
32
|
if (nextSibling) {
|
33
|
-
if (nextSibling.
|
33
|
+
if (nextSibling.cd_) {
|
34
34
|
var firstChild = nextSibling.aA_;
|
35
|
-
return firstChild || nextSibling.
|
35
|
+
return firstChild || nextSibling.cp_;
|
36
36
|
}
|
37
37
|
} else {
|
38
|
-
var parentNode = this.
|
39
|
-
if (parentNode && parentNode.
|
40
|
-
return parentNode.
|
38
|
+
var parentNode = this.cb_;
|
39
|
+
if (parentNode && parentNode.cd_) {
|
40
|
+
return parentNode.cp_;
|
41
41
|
}
|
42
42
|
}
|
43
43
|
|
44
44
|
return nextSibling;
|
45
45
|
},
|
46
46
|
|
47
|
-
|
48
|
-
this.
|
47
|
+
bR_: function (child) {
|
48
|
+
this.cn_++;
|
49
49
|
|
50
|
-
if (this.
|
51
|
-
if (child.
|
52
|
-
this.
|
50
|
+
if (this.cg_ === "textarea") {
|
51
|
+
if (child.cq_) {
|
52
|
+
this.ch_ += child.bZ_;
|
53
53
|
} else {
|
54
54
|
throw TypeError();
|
55
55
|
}
|
56
56
|
} else {
|
57
|
-
var lastChild = this.
|
57
|
+
var lastChild = this.co_;
|
58
58
|
|
59
|
-
child.
|
59
|
+
child.cb_ = this;
|
60
60
|
|
61
61
|
if (lastChild) {
|
62
|
-
lastChild.
|
62
|
+
lastChild.cc_ = child;
|
63
63
|
} else {
|
64
|
-
this.
|
64
|
+
this.ce_ = child;
|
65
65
|
}
|
66
66
|
|
67
|
-
this.
|
67
|
+
this.co_ = child;
|
68
68
|
}
|
69
69
|
|
70
70
|
return child;
|
71
71
|
},
|
72
72
|
|
73
|
-
|
74
|
-
if (this.
|
75
|
-
return this.
|
73
|
+
cj_: function finishChild() {
|
74
|
+
if (this.cn_ === this.cm_ && this.cb_) {
|
75
|
+
return this.cb_.cj_();
|
76
76
|
} else {
|
77
77
|
return this;
|
78
78
|
}
|
@@ -2,21 +2,21 @@
|
|
2
2
|
var VNode = require("./VNode");
|
3
3
|
|
4
4
|
function VText(value, ownerComponent) {
|
5
|
-
this.
|
6
|
-
this.
|
5
|
+
this.bY_(-1 /* no children */, ownerComponent);
|
6
|
+
this.bZ_ = value;
|
7
7
|
}
|
8
8
|
|
9
9
|
VText.prototype = {
|
10
|
-
|
10
|
+
cq_: true,
|
11
11
|
|
12
|
-
|
12
|
+
c__: 3,
|
13
13
|
|
14
14
|
bo_: function (host) {
|
15
|
-
return (host.ownerDocument || host).createTextNode(this.
|
15
|
+
return (host.ownerDocument || host).createTextNode(this.bZ_);
|
16
16
|
},
|
17
17
|
|
18
|
-
|
19
|
-
return new VText(this.
|
18
|
+
bS_: function () {
|
19
|
+
return new VText(this.bZ_);
|
20
20
|
}
|
21
21
|
};
|
22
22
|
|
@@ -13,12 +13,12 @@ function ConstVElement(tagName, attrs, childCount) {
|
|
13
13
|
|
14
14
|
ConstVElement.prototype = Object.create(VElement.prototype);
|
15
15
|
ConstVElement.prototype.e = function (tagName, attrs, childCount) {
|
16
|
-
var child = this.
|
16
|
+
var child = this.bR_(
|
17
17
|
new ConstVElement(tagName, attrs, childCount)
|
18
18
|
);
|
19
19
|
|
20
20
|
if (childCount === 0) {
|
21
|
-
return this.
|
21
|
+
return this.cj_();
|
22
22
|
} else {
|
23
23
|
return child;
|
24
24
|
}
|
@@ -44,7 +44,7 @@ exports.t = runtime.t = function (typeName) {
|
|
44
44
|
instance.Q_(input, out);
|
45
45
|
};
|
46
46
|
|
47
|
-
instance.
|
47
|
+
instance.cr_ = true;
|
48
48
|
instance.ao_();
|
49
49
|
instance._x_ = false;
|
50
50
|
|
@@ -78,7 +78,7 @@ registry._G_ = function (typeName, id) {
|
|
78
78
|
if (instances) {
|
79
79
|
instances.add(instance);
|
80
80
|
instance.once("destroy", function () {
|
81
|
-
if (!instance.
|
81
|
+
if (!instance.cr_) {
|
82
82
|
instances.delete(instance);
|
83
83
|
}
|
84
84
|
});
|
@@ -80,8 +80,8 @@ function createFragmentNode(startNode, nextNode, parentNode) {
|
|
80
80
|
|
81
81
|
function beginFragmentNode(startNode, parentNode) {
|
82
82
|
var fragment = createFragmentNode(startNode, null, parentNode);
|
83
|
-
fragment.
|
84
|
-
fragment.
|
83
|
+
fragment.cs_ = function (nextNode) {
|
84
|
+
fragment.cs_ = null;
|
85
85
|
insertBefore(
|
86
86
|
fragment.endNode,
|
87
87
|
nextNode,
|
@@ -92,4 +92,4 @@ function beginFragmentNode(startNode, parentNode) {
|
|
92
92
|
}
|
93
93
|
|
94
94
|
exports._k_ = createFragmentNode;
|
95
|
-
exports.
|
95
|
+
exports.ct_ = beginFragmentNode;
|
@@ -11,8 +11,8 @@ var KeySequence = require("../../components/KeySequence");
|
|
11
11
|
var VElement = require("../vdom").bz_;
|
12
12
|
var fragment = require("./fragment");
|
13
13
|
var helpers = require("./helpers");
|
14
|
-
var virtualizeElement = VElement.
|
15
|
-
var morphAttrs = VElement.
|
14
|
+
var virtualizeElement = VElement.ck_;
|
15
|
+
var morphAttrs = VElement.cl_;
|
16
16
|
var keysByDOMNode = domData._n_;
|
17
17
|
var componentByDOMNode = domData._p_;
|
18
18
|
var vElementByDOMNode = domData._K_;
|
@@ -20,11 +20,11 @@ var detachedByDOMNode = domData.aW_;
|
|
20
20
|
|
21
21
|
var insertBefore = helpers.bf_;
|
22
22
|
var insertAfter = helpers.bg_;
|
23
|
-
var nextSibling = helpers.
|
23
|
+
var nextSibling = helpers.cp_;
|
24
24
|
var firstChild = helpers.aA_;
|
25
25
|
var removeChild = helpers.bh_;
|
26
26
|
var createFragmentNode = fragment._k_;
|
27
|
-
var beginFragmentNode = fragment.
|
27
|
+
var beginFragmentNode = fragment.ct_;
|
28
28
|
|
29
29
|
var ELEMENT_NODE = 1;
|
30
30
|
var TEXT_NODE = 3;
|
@@ -42,7 +42,7 @@ function isAutoKey(key) {
|
|
42
42
|
}
|
43
43
|
|
44
44
|
function compareNodeNames(fromEl, toEl) {
|
45
|
-
return fromEl.
|
45
|
+
return fromEl.cg_ === toEl.cg_;
|
46
46
|
}
|
47
47
|
|
48
48
|
function caseInsensitiveCompare(a, b) {
|
@@ -77,8 +77,8 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
77
77
|
insertBefore(realNode, referenceEl, parentEl);
|
78
78
|
|
79
79
|
if (
|
80
|
-
vNode.
|
81
|
-
vNode.
|
80
|
+
vNode.c__ === ELEMENT_NODE ||
|
81
|
+
vNode.c__ === FRAGMENT_NODE)
|
82
82
|
{
|
83
83
|
if (key) {
|
84
84
|
keysByDOMNode.set(realNode, key);
|
@@ -87,7 +87,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
87
87
|
realNode;
|
88
88
|
}
|
89
89
|
|
90
|
-
if (vNode.
|
90
|
+
if (vNode.cg_ !== "textarea") {
|
91
91
|
morphChildren(realNode, vNode, parentComponent);
|
92
92
|
}
|
93
93
|
|
@@ -161,9 +161,9 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
161
161
|
var fromComponent;
|
162
162
|
|
163
163
|
outer: while (curToNodeChild) {
|
164
|
-
toNextSibling = curToNodeChild.
|
165
|
-
curToNodeType = curToNodeChild.
|
166
|
-
curToNodeKey = curToNodeChild.
|
164
|
+
toNextSibling = curToNodeChild.cp_;
|
165
|
+
curToNodeType = curToNodeChild.c__;
|
166
|
+
curToNodeKey = curToNodeChild.ca_;
|
167
167
|
|
168
168
|
// Skip <!doctype>
|
169
169
|
if (curFromNodeChild && curFromNodeChild.nodeType === DOCTYPE_NODE) {
|
@@ -282,7 +282,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
282
282
|
|
283
283
|
if (
|
284
284
|
curVFromNodeChild &&
|
285
|
-
curToNodeType === curVFromNodeChild.
|
285
|
+
curToNodeType === curVFromNodeChild.c__ && (
|
286
286
|
curToNodeType !== ELEMENT_NODE ||
|
287
287
|
compareNodeNames(curToNodeChild, curVFromNodeChild)))
|
288
288
|
{
|
@@ -327,11 +327,11 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
327
327
|
curToNodeChild.ad_ ||
|
328
328
|
caseInsensitiveCompare(
|
329
329
|
curFromNodeChild.nodeName,
|
330
|
-
curToNodeChild.
|
330
|
+
curToNodeChild.cg_ || ""
|
331
331
|
)))
|
332
332
|
{
|
333
333
|
curVFromNodeChild = virtualizeElement(curFromNodeChild);
|
334
|
-
curVFromNodeChild.
|
334
|
+
curVFromNodeChild.cg_ = curToNodeChild.cg_;
|
335
335
|
keysByDOMNode.set(curFromNodeChild, curToNodeKey);
|
336
336
|
referenceComponent.K_[curToNodeKey] =
|
337
337
|
curFromNodeChild;
|
@@ -351,7 +351,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
351
351
|
curFromNodeChild = fromNextSibling;
|
352
352
|
continue;
|
353
353
|
} else if (
|
354
|
-
curToNodeChild.
|
354
|
+
curToNodeChild.c__ === FRAGMENT_NODE &&
|
355
355
|
curFromNodeChild.nodeType === COMMENT_NODE)
|
356
356
|
{
|
357
357
|
var content = curFromNodeChild.nodeValue;
|
@@ -417,7 +417,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
417
417
|
|
418
418
|
if (
|
419
419
|
curVFromNodeChild &&
|
420
|
-
curToNodeType === curVFromNodeChild.
|
420
|
+
curToNodeType === curVFromNodeChild.c__ && (
|
421
421
|
curToNodeType !== ELEMENT_NODE ||
|
422
422
|
compareNodeNames(curVFromNodeChild, curToNodeChild)))
|
423
423
|
{
|
@@ -435,7 +435,7 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
435
435
|
|
436
436
|
if (
|
437
437
|
toNextSibling &&
|
438
|
-
toNextSibling.
|
438
|
+
toNextSibling.ca_ === curFromNodeKey)
|
439
439
|
{
|
440
440
|
// Single element swap
|
441
441
|
|
@@ -548,18 +548,18 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
548
548
|
|
549
549
|
if (
|
550
550
|
caseInsensitiveCompare(
|
551
|
-
curVFromNodeChild.
|
552
|
-
curToNodeChild.
|
551
|
+
curVFromNodeChild.cg_,
|
552
|
+
curToNodeChild.cg_
|
553
553
|
))
|
554
554
|
{
|
555
|
-
curVFromNodeChild.
|
555
|
+
curVFromNodeChild.cg_ = curToNodeChild.cg_;
|
556
556
|
}
|
557
557
|
} else {
|
558
558
|
// Skip over nodes that don't look like ours...
|
559
559
|
curFromNodeChild = fromNextSibling;
|
560
560
|
continue;
|
561
561
|
}
|
562
|
-
} else if (curFromNodeKey = curVFromNodeChild.
|
562
|
+
} else if (curFromNodeKey = curVFromNodeChild.ca_) {
|
563
563
|
// We have a keyed element here but our target VDOM node
|
564
564
|
// is not keyed so this not doesn't belong
|
565
565
|
isCompatible = false;
|
@@ -586,18 +586,18 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
586
586
|
{
|
587
587
|
// Both nodes being compared are Text or Comment nodes
|
588
588
|
isCompatible = true;
|
589
|
-
var curToNodeValue = curToNodeChild.
|
589
|
+
var curToNodeValue = curToNodeChild.bZ_;
|
590
590
|
var curFromNodeValue = curFromNodeChild.nodeValue;
|
591
591
|
if (curFromNodeValue !== curToNodeValue) {
|
592
592
|
if (
|
593
593
|
isHydrate &&
|
594
594
|
toNextSibling &&
|
595
595
|
curFromNodeType === TEXT_NODE &&
|
596
|
-
toNextSibling.
|
596
|
+
toNextSibling.c__ === TEXT_NODE &&
|
597
597
|
curFromNodeValue.startsWith(curToNodeValue) &&
|
598
598
|
curFromNodeValue.
|
599
599
|
slice(curToNodeValue.length).
|
600
|
-
startsWith(toNextSibling.
|
600
|
+
startsWith(toNextSibling.bZ_))
|
601
601
|
{
|
602
602
|
// In hydrate mode we can use splitText to more efficiently handle
|
603
603
|
// adjacent text vdom nodes that were merged.
|
@@ -642,10 +642,10 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
642
642
|
}
|
643
643
|
|
644
644
|
// We have processed all of the "to nodes".
|
645
|
-
if (fromNode.
|
645
|
+
if (fromNode.cs_) {
|
646
646
|
// If we are in an unfinished fragment, we have reached the end of the nodes
|
647
647
|
// we were matching up and need to end the fragment
|
648
|
-
fromNode.
|
648
|
+
fromNode.cs_(curFromNodeChild);
|
649
649
|
} else {
|
650
650
|
// If curFromNodeChild is non-null then we still have some from nodes
|
651
651
|
// left over that need to be removed
|
@@ -685,11 +685,11 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
685
685
|
}
|
686
686
|
|
687
687
|
function morphEl(fromEl, vFromEl, toEl, parentComponent) {
|
688
|
-
var nodeName = toEl.
|
689
|
-
var constId = toEl.
|
688
|
+
var nodeName = toEl.cg_;
|
689
|
+
var constId = toEl.ci_;
|
690
690
|
vElementByDOMNode.set(fromEl, toEl);
|
691
691
|
|
692
|
-
if (constId !== undefined && vFromEl.
|
692
|
+
if (constId !== undefined && vFromEl.ci_ === constId) {
|
693
693
|
return;
|
694
694
|
}
|
695
695
|
|
@@ -700,8 +700,8 @@ function morphdom(fromNode, toNode, host, componentsContext) {
|
|
700
700
|
}
|
701
701
|
|
702
702
|
if (nodeName === "textarea") {
|
703
|
-
if (toEl.
|
704
|
-
fromEl.value = toEl.
|
703
|
+
if (toEl.ch_ !== vFromEl.ch_) {
|
704
|
+
fromEl.value = toEl.ch_;
|
705
705
|
}
|
706
706
|
} else {
|
707
707
|
morphChildren(fromEl, toEl, parentComponent);
|
@@ -1,4 +1,5 @@
|
|
1
1
|
"use strict";var parseHTML = require("./parse-html");
|
2
|
+
var VComment = require("./VComment");
|
2
3
|
var VComponent = require("./VComponent");
|
3
4
|
var VDocumentFragment = require("./VDocumentFragment");
|
4
5
|
var VElement = require("./VElement");
|
@@ -11,7 +12,7 @@ var specialHtmlRegexp = /[&<]/;
|
|
11
12
|
function virtualizeChildNodes(node, vdomParent, ownerComponent) {
|
12
13
|
var curChild = node.firstChild;
|
13
14
|
while (curChild) {
|
14
|
-
vdomParent.
|
15
|
+
vdomParent.bR_(virtualize(curChild, ownerComponent));
|
15
16
|
curChild = curChild.nextSibling;
|
16
17
|
}
|
17
18
|
}
|
@@ -19,9 +20,11 @@ function virtualizeChildNodes(node, vdomParent, ownerComponent) {
|
|
19
20
|
function virtualize(node, ownerComponent) {
|
20
21
|
switch (node.nodeType) {
|
21
22
|
case 1:
|
22
|
-
return VElement.
|
23
|
+
return VElement.ck_(node, virtualizeChildNodes, ownerComponent);
|
23
24
|
case 3:
|
24
25
|
return new VText(node.nodeValue, ownerComponent);
|
26
|
+
case 8:
|
27
|
+
return new VComment(node.nodeValue, ownerComponent);
|
25
28
|
case 11:
|
26
29
|
var vdomDocFragment = new VDocumentFragment();
|
27
30
|
virtualizeChildNodes(node, vdomDocFragment, ownerComponent);
|
@@ -36,9 +39,11 @@ function virtualizeHTML(html, ownerComponent) {
|
|
36
39
|
|
37
40
|
var vdomFragment = new VDocumentFragment();
|
38
41
|
var curChild = parseHTML(html);
|
42
|
+
var virtualized;
|
39
43
|
|
40
44
|
while (curChild) {
|
41
|
-
|
45
|
+
virtualized = virtualize(curChild, ownerComponent);
|
46
|
+
if (virtualized) vdomFragment.bR_(virtualized);
|
42
47
|
curChild = curChild.nextSibling;
|
43
48
|
}
|
44
49
|
|
@@ -65,18 +70,19 @@ Node_prototype.t = function (value) {
|
|
65
70
|
}
|
66
71
|
}
|
67
72
|
|
68
|
-
this.
|
69
|
-
return this.
|
73
|
+
this.bR_(vdomNode || new VText(value.toString()));
|
74
|
+
return this.cj_();
|
70
75
|
};
|
71
76
|
|
72
|
-
Node_prototype.
|
73
|
-
return this.
|
77
|
+
Node_prototype.bW_ = function () {
|
78
|
+
return this.bR_(new VDocumentFragment());
|
74
79
|
};
|
75
80
|
|
76
|
-
exports.bA_ =
|
81
|
+
exports.bA_ = VComment;
|
82
|
+
exports.bB_ = VDocumentFragment;
|
77
83
|
exports.bz_ = VElement;
|
78
|
-
exports.
|
79
|
-
exports.
|
80
|
-
exports.
|
81
|
-
exports.
|
82
|
-
exports.
|
84
|
+
exports.bC_ = VText;
|
85
|
+
exports.bD_ = VComponent;
|
86
|
+
exports.bE_ = VFragment;
|
87
|
+
exports.ck_ = virtualize;
|
88
|
+
exports.bF_ = virtualizeHTML;
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "marko",
|
3
|
-
"version": "5.35.
|
3
|
+
"version": "5.35.16",
|
4
4
|
"description": "UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.",
|
5
5
|
"keywords": [
|
6
6
|
"front-end",
|
@@ -65,8 +65,8 @@
|
|
65
65
|
"build": "babel ./src --out-dir ./dist --extensions .js --copy-files --config-file ../../babel.config.js --env-name=production"
|
66
66
|
},
|
67
67
|
"dependencies": {
|
68
|
-
"@marko/compiler": "^5.37.
|
69
|
-
"@marko/translator-default": "^6.0.
|
68
|
+
"@marko/compiler": "^5.37.11",
|
69
|
+
"@marko/translator-default": "^6.0.13",
|
70
70
|
"app-module-path": "^2.2.0",
|
71
71
|
"argly": "^1.2.0",
|
72
72
|
"browser-refresh-client": "1.1.4",
|
@@ -139,7 +139,8 @@ function addComponentsFromContext(componentsContext, componentsToHydrate) {
|
|
139
139
|
|
140
140
|
if (typeof renderBody === "function" && renderBody.toJSON === w10ToJSON) {
|
141
141
|
flags |= FLAG_HAS_RENDER_BODY;
|
142
|
-
renderBody =
|
142
|
+
renderBody = undefined;
|
143
|
+
if (input) input.renderBody = undefined;
|
143
144
|
}
|
144
145
|
|
145
146
|
var extra = {
|
@@ -4,6 +4,7 @@ var attrsHelper = require("./helpers/attrs");
|
|
4
4
|
var morphdom = require("./morphdom");
|
5
5
|
var vdom = require("./vdom");
|
6
6
|
var VElement = vdom.___VElement;
|
7
|
+
var VComment = vdom.___VComment;
|
7
8
|
var VDocumentFragment = vdom.___VDocumentFragment;
|
8
9
|
var VText = vdom.___VText;
|
9
10
|
var VComponent = vdom.___VComponent;
|
@@ -133,6 +134,10 @@ var proto = (AsyncVDOMBuilder.prototype = {
|
|
133
134
|
return this;
|
134
135
|
},
|
135
136
|
|
137
|
+
comment: function (comment, ownerComponent) {
|
138
|
+
return this.node(new VComment(comment, ownerComponent));
|
139
|
+
},
|
140
|
+
|
136
141
|
html: function (html, ownerComponent) {
|
137
142
|
if (html != null) {
|
138
143
|
var vdomNode = virtualizeHTML(html, ownerComponent);
|
@@ -0,0 +1,24 @@
|
|
1
|
+
var VNode = require("./VNode");
|
2
|
+
var inherit = require("raptor-util/inherit");
|
3
|
+
|
4
|
+
function VComment(value, ownerComponent) {
|
5
|
+
this.___VNode(-1 /* no children */, ownerComponent);
|
6
|
+
this.___nodeValue = value;
|
7
|
+
}
|
8
|
+
|
9
|
+
VComment.prototype = {
|
10
|
+
___nodeType: 8,
|
11
|
+
|
12
|
+
___actualize: function (doc) {
|
13
|
+
var nodeValue = this.___nodeValue;
|
14
|
+
return doc.createComment(nodeValue);
|
15
|
+
},
|
16
|
+
|
17
|
+
___cloneNode: function () {
|
18
|
+
return new VComment(this.___nodeValue);
|
19
|
+
},
|
20
|
+
};
|
21
|
+
|
22
|
+
inherit(VComment, VNode);
|
23
|
+
|
24
|
+
module.exports = VComment;
|
package/src/runtime/vdom/vdom.js
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
var parseHTML = require("./parse-html");
|
2
|
+
var VComment = require("./VComment");
|
2
3
|
var VComponent = require("./VComponent");
|
3
4
|
var VDocumentFragment = require("./VDocumentFragment");
|
4
5
|
var VElement = require("./VElement");
|
@@ -22,6 +23,8 @@ function virtualize(node, ownerComponent) {
|
|
22
23
|
return VElement.___virtualize(node, virtualizeChildNodes, ownerComponent);
|
23
24
|
case 3:
|
24
25
|
return new VText(node.nodeValue, ownerComponent);
|
26
|
+
case 8:
|
27
|
+
return new VComment(node.nodeValue, ownerComponent);
|
25
28
|
case 11:
|
26
29
|
var vdomDocFragment = new VDocumentFragment();
|
27
30
|
virtualizeChildNodes(node, vdomDocFragment, ownerComponent);
|
@@ -36,9 +39,11 @@ function virtualizeHTML(html, ownerComponent) {
|
|
36
39
|
|
37
40
|
var vdomFragment = new VDocumentFragment();
|
38
41
|
var curChild = parseHTML(html);
|
42
|
+
var virtualized;
|
39
43
|
|
40
44
|
while (curChild) {
|
41
|
-
|
45
|
+
virtualized = virtualize(curChild, ownerComponent);
|
46
|
+
if (virtualized) vdomFragment.___appendChild(virtualized);
|
42
47
|
curChild = curChild.nextSibling;
|
43
48
|
}
|
44
49
|
|
@@ -73,6 +78,7 @@ Node_prototype.___appendDocumentFragment = function () {
|
|
73
78
|
return this.___appendChild(new VDocumentFragment());
|
74
79
|
};
|
75
80
|
|
81
|
+
exports.___VComment = VComment;
|
76
82
|
exports.___VDocumentFragment = VDocumentFragment;
|
77
83
|
exports.___VElement = VElement;
|
78
84
|
exports.___VText = VText;
|