marko 5.16.1 → 5.17.3
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/runtime/RenderResult.js +13 -11
- package/dist/runtime/RenderResult.js.map +1 -1
- package/dist/runtime/components/Component.js +2 -2
- package/dist/runtime/components/Component.js.map +1 -1
- package/dist/runtime/components/ComponentsContext.js +2 -2
- package/dist/runtime/components/ComponentsContext.js.map +1 -1
- package/dist/runtime/components/event-delegation.js +8 -8
- package/dist/runtime/components/event-delegation.js.map +1 -1
- package/dist/runtime/components/init-components/index-browser.js +22 -24
- package/dist/runtime/components/init-components/index-browser.js.map +1 -1
- package/dist/runtime/components/registry/index-browser.js +2 -2
- package/dist/runtime/components/registry/index-browser.js.map +1 -1
- package/dist/runtime/components/util/index-browser.js +4 -3
- package/dist/runtime/components/util/index-browser.js.map +1 -1
- package/dist/runtime/html/AsyncStream.js +8 -10
- package/dist/runtime/html/AsyncStream.js.map +1 -1
- package/dist/runtime/vdom/AsyncVDOMBuilder.js +65 -70
- package/dist/runtime/vdom/AsyncVDOMBuilder.js.map +1 -1
- package/dist/runtime/vdom/VComponent.js +3 -3
- package/dist/runtime/vdom/VDocumentFragment.js +7 -7
- package/dist/runtime/vdom/VDocumentFragment.js.map +1 -1
- package/dist/runtime/vdom/VElement.js +42 -39
- package/dist/runtime/vdom/VElement.js.map +1 -1
- package/dist/runtime/vdom/VFragment.js +5 -5
- package/dist/runtime/vdom/VNode.js +31 -31
- package/dist/runtime/vdom/VText.js +8 -8
- package/dist/runtime/vdom/VText.js.map +1 -1
- package/dist/runtime/vdom/hot-reload.js +5 -5
- package/dist/runtime/vdom/hot-reload.js.map +1 -1
- 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 +30 -30
- package/dist/runtime/vdom/morphdom/index.js.map +1 -1
- package/dist/runtime/vdom/morphdom/specialElHandlers.js +6 -6
- package/dist/runtime/vdom/preserve-attrs.js +1 -1
- package/dist/runtime/vdom/vdom.js +10 -12
- package/dist/runtime/vdom/vdom.js.map +1 -1
- package/package.json +4 -4
- package/src/runtime/RenderResult.js +13 -11
- package/src/runtime/components/Component.js +5 -5
- package/src/runtime/components/ComponentsContext.js +2 -2
- package/src/runtime/components/event-delegation.js +6 -6
- package/src/runtime/components/init-components/index-browser.js +23 -25
- package/src/runtime/components/registry/index-browser.js +3 -3
- package/src/runtime/components/util/index-browser.js +8 -7
- package/src/runtime/html/AsyncStream.js +8 -10
- package/src/runtime/vdom/AsyncVDOMBuilder.js +9 -14
- package/src/runtime/vdom/VDocumentFragment.js +2 -2
- package/src/runtime/vdom/VElement.js +5 -2
- package/src/runtime/vdom/VText.js +2 -2
- package/src/runtime/vdom/hot-reload.js +1 -1
- package/src/runtime/vdom/morphdom/index.js +4 -4
- package/src/runtime/vdom/vdom.js +2 -4
@@ -7,7 +7,6 @@ var VComponent = vdom.bc_;
|
|
7
7
|
var VFragment = vdom.bd_;
|
8
8
|
var virtualizeHTML = vdom.be_;
|
9
9
|
var RenderResult = require("../RenderResult");
|
10
|
-
var defaultDocument = vdom.bf_;
|
11
10
|
var morphdom = require("./morphdom");
|
12
11
|
var attrsHelper = require("./helpers/attrs");
|
13
12
|
|
@@ -15,9 +14,9 @@ var EVENT_UPDATE = "update";
|
|
15
14
|
var EVENT_FINISH = "finish";
|
16
15
|
|
17
16
|
function State(tree) {
|
18
|
-
this.
|
19
|
-
this.
|
20
|
-
this.
|
17
|
+
this.bf_ = new EventEmitter();
|
18
|
+
this.bg_ = tree;
|
19
|
+
this.bh_ = false;
|
21
20
|
}
|
22
21
|
|
23
22
|
function AsyncVDOMBuilder(globalData, parentNode, parentOut) {
|
@@ -33,18 +32,18 @@ function AsyncVDOMBuilder(globalData, parentNode, parentOut) {
|
|
33
32
|
state = new State(parentNode);
|
34
33
|
}
|
35
34
|
|
36
|
-
this.
|
37
|
-
this.
|
38
|
-
this.
|
39
|
-
this.
|
35
|
+
this.bi_ = 1;
|
36
|
+
this.bj_ = 0;
|
37
|
+
this.bk_ = null;
|
38
|
+
this.bl_ = parentOut;
|
40
39
|
|
41
40
|
this.data = {};
|
42
41
|
this.J_ = state;
|
43
42
|
this.l_ = parentNode;
|
44
43
|
this.global = globalData || {};
|
45
|
-
this.
|
46
|
-
this.
|
47
|
-
this.
|
44
|
+
this.bm_ = [parentNode];
|
45
|
+
this.bn_ = false;
|
46
|
+
this.bo_ = undefined;
|
48
47
|
this.b_ = null;
|
49
48
|
|
50
49
|
this.g_ = null;
|
@@ -54,22 +53,22 @@ function AsyncVDOMBuilder(globalData, parentNode, parentOut) {
|
|
54
53
|
|
55
54
|
var proto = AsyncVDOMBuilder.prototype = {
|
56
55
|
aP_: true,
|
57
|
-
X_:
|
56
|
+
X_: typeof window === "object" && document,
|
58
57
|
|
59
58
|
bc: function (component, key, ownerComponent) {
|
60
59
|
var vComponent = new VComponent(component, key, ownerComponent);
|
61
|
-
return this.
|
60
|
+
return this.bp_(vComponent, 0, true);
|
62
61
|
},
|
63
62
|
|
64
63
|
ay_: function (component, key, ownerComponent) {
|
65
64
|
var vComponent = new VComponent(component, key, ownerComponent, true);
|
66
|
-
this.
|
65
|
+
this.bp_(vComponent, 0);
|
67
66
|
},
|
68
67
|
|
69
|
-
|
70
|
-
this.l_.
|
68
|
+
bp_: function (child, childCount, pushToStack) {
|
69
|
+
this.l_.bq_(child);
|
71
70
|
if (pushToStack === true) {
|
72
|
-
this.
|
71
|
+
this.bm_.push(child);
|
73
72
|
this.l_ = child;
|
74
73
|
}
|
75
74
|
return childCount === 0 ? this : child;
|
@@ -85,7 +84,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
85
84
|
flags,
|
86
85
|
props);
|
87
86
|
|
88
|
-
return this.
|
87
|
+
return this.bp_(element, childCount);
|
89
88
|
},
|
90
89
|
|
91
90
|
aM_: function (tagName, attrs, key, componentDef, props) {
|
@@ -103,7 +102,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
103
102
|
n: function (node, component) {
|
104
103
|
// NOTE: We do a shallow clone since we assume the node is being reused
|
105
104
|
// and a node can only have one parent node.
|
106
|
-
var clone = node.
|
105
|
+
var clone = node.br_();
|
107
106
|
this.node(clone);
|
108
107
|
clone.aA_ = component;
|
109
108
|
|
@@ -111,7 +110,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
111
110
|
},
|
112
111
|
|
113
112
|
node: function (node) {
|
114
|
-
this.l_.
|
113
|
+
this.l_.bq_(node);
|
115
114
|
return this;
|
116
115
|
},
|
117
116
|
|
@@ -130,17 +129,13 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
130
129
|
text = text.toString();
|
131
130
|
}
|
132
131
|
|
133
|
-
this.l_.
|
132
|
+
this.l_.bq_(new VText(text, ownerComponent));
|
134
133
|
return this;
|
135
134
|
},
|
136
135
|
|
137
136
|
html: function (html, ownerComponent) {
|
138
137
|
if (html != null) {
|
139
|
-
var vdomNode = virtualizeHTML(
|
140
|
-
html,
|
141
|
-
this.X_ || document,
|
142
|
-
ownerComponent);
|
143
|
-
|
138
|
+
var vdomNode = virtualizeHTML(html, ownerComponent);
|
144
139
|
this.node(vdomNode);
|
145
140
|
}
|
146
141
|
|
@@ -165,7 +160,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
165
160
|
flags,
|
166
161
|
props);
|
167
162
|
|
168
|
-
this.
|
163
|
+
this.bp_(element, childCount, true);
|
169
164
|
return this;
|
170
165
|
},
|
171
166
|
|
@@ -183,7 +178,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
183
178
|
|
184
179
|
bf: function (key, component, preserve) {
|
185
180
|
var fragment = new VFragment(key, component, preserve);
|
186
|
-
this.
|
181
|
+
this.bp_(fragment, null, true);
|
187
182
|
return this;
|
188
183
|
},
|
189
184
|
|
@@ -192,7 +187,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
192
187
|
},
|
193
188
|
|
194
189
|
endElement: function () {
|
195
|
-
var stack = this.
|
190
|
+
var stack = this.bm_;
|
196
191
|
stack.pop();
|
197
192
|
this.l_ = stack[stack.length - 1];
|
198
193
|
},
|
@@ -200,44 +195,44 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
200
195
|
end: function () {
|
201
196
|
this.l_ = undefined;
|
202
197
|
|
203
|
-
var remaining = --this.
|
204
|
-
var parentOut = this.
|
198
|
+
var remaining = --this.bi_;
|
199
|
+
var parentOut = this.bl_;
|
205
200
|
|
206
201
|
if (remaining === 0) {
|
207
202
|
if (parentOut) {
|
208
|
-
parentOut.
|
203
|
+
parentOut.bs_();
|
209
204
|
} else {
|
210
|
-
this.
|
205
|
+
this.bt_();
|
211
206
|
}
|
212
|
-
} else if (remaining - this.
|
213
|
-
this.
|
207
|
+
} else if (remaining - this.bj_ === 0) {
|
208
|
+
this.bu_();
|
214
209
|
}
|
215
210
|
|
216
211
|
return this;
|
217
212
|
},
|
218
213
|
|
219
|
-
|
220
|
-
var remaining = --this.
|
214
|
+
bs_: function () {
|
215
|
+
var remaining = --this.bi_;
|
221
216
|
|
222
217
|
if (remaining === 0) {
|
223
|
-
var parentOut = this.
|
218
|
+
var parentOut = this.bl_;
|
224
219
|
if (parentOut) {
|
225
|
-
parentOut.
|
220
|
+
parentOut.bs_();
|
226
221
|
} else {
|
227
|
-
this.
|
222
|
+
this.bt_();
|
228
223
|
}
|
229
|
-
} else if (remaining - this.
|
230
|
-
this.
|
224
|
+
} else if (remaining - this.bj_ === 0) {
|
225
|
+
this.bu_();
|
231
226
|
}
|
232
227
|
},
|
233
228
|
|
234
|
-
|
229
|
+
bt_: function () {
|
235
230
|
var state = this.J_;
|
236
|
-
state.
|
237
|
-
state.
|
231
|
+
state.bh_ = true;
|
232
|
+
state.bf_.emit(EVENT_FINISH, this.aQ_());
|
238
233
|
},
|
239
234
|
|
240
|
-
|
235
|
+
bu_: function () {
|
241
236
|
var lastArray = this._last;
|
242
237
|
|
243
238
|
var i = 0;
|
@@ -272,7 +267,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
272
267
|
},
|
273
268
|
|
274
269
|
beginAsync: function (options) {
|
275
|
-
if (this.
|
270
|
+
if (this.bn_) {
|
276
271
|
throw Error(
|
277
272
|
"Tried to render async while in sync mode. Note: Client side await is not currently supported in re-renders (Issue: #942).");
|
278
273
|
|
@@ -282,16 +277,16 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
282
277
|
|
283
278
|
if (options) {
|
284
279
|
if (options.last) {
|
285
|
-
this.
|
280
|
+
this.bj_++;
|
286
281
|
}
|
287
282
|
}
|
288
283
|
|
289
|
-
this.
|
284
|
+
this.bi_++;
|
290
285
|
|
291
|
-
var documentFragment = this.l_.
|
286
|
+
var documentFragment = this.l_.bv_();
|
292
287
|
var asyncOut = new AsyncVDOMBuilder(this.global, documentFragment, this);
|
293
288
|
|
294
|
-
state.
|
289
|
+
state.bf_.emit("beginAsync", {
|
295
290
|
out: asyncOut,
|
296
291
|
parentOut: this });
|
297
292
|
|
@@ -304,7 +299,7 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
304
299
|
},
|
305
300
|
|
306
301
|
flush: function () {
|
307
|
-
var events = this.J_.
|
302
|
+
var events = this.J_.bf_;
|
308
303
|
|
309
304
|
if (events.listenerCount(EVENT_UPDATE)) {
|
310
305
|
events.emit(EVENT_UPDATE, new RenderResult(this));
|
@@ -312,22 +307,22 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
312
307
|
},
|
313
308
|
|
314
309
|
B_: function () {
|
315
|
-
return this.J_.
|
310
|
+
return this.J_.bg_;
|
316
311
|
},
|
317
312
|
|
318
313
|
aQ_: function () {
|
319
|
-
return this.
|
314
|
+
return this.bw_ || (this.bw_ = new RenderResult(this));
|
320
315
|
},
|
321
316
|
|
322
317
|
on: function (event, callback) {
|
323
318
|
var state = this.J_;
|
324
319
|
|
325
|
-
if (event === EVENT_FINISH && state.
|
320
|
+
if (event === EVENT_FINISH && state.bh_) {
|
326
321
|
callback(this.aQ_());
|
327
322
|
} else if (event === "last") {
|
328
323
|
this.onLast(callback);
|
329
324
|
} else {
|
330
|
-
state.
|
325
|
+
state.bf_.on(event, callback);
|
331
326
|
}
|
332
327
|
|
333
328
|
return this;
|
@@ -336,19 +331,19 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
336
331
|
once: function (event, callback) {
|
337
332
|
var state = this.J_;
|
338
333
|
|
339
|
-
if (event === EVENT_FINISH && state.
|
334
|
+
if (event === EVENT_FINISH && state.bh_) {
|
340
335
|
callback(this.aQ_());
|
341
336
|
} else if (event === "last") {
|
342
337
|
this.onLast(callback);
|
343
338
|
} else {
|
344
|
-
state.
|
339
|
+
state.bf_.once(event, callback);
|
345
340
|
}
|
346
341
|
|
347
342
|
return this;
|
348
343
|
},
|
349
344
|
|
350
345
|
emit: function (type, arg) {
|
351
|
-
var events = this.J_.
|
346
|
+
var events = this.J_.bf_;
|
352
347
|
switch (arguments.length) {
|
353
348
|
case 1:
|
354
349
|
events.emit(type);
|
@@ -364,17 +359,17 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
364
359
|
},
|
365
360
|
|
366
361
|
removeListener: function () {
|
367
|
-
var events = this.J_.
|
362
|
+
var events = this.J_.bf_;
|
368
363
|
events.removeListener.apply(events, arguments);
|
369
364
|
return this;
|
370
365
|
},
|
371
366
|
|
372
367
|
sync: function () {
|
373
|
-
this.
|
368
|
+
this.bn_ = true;
|
374
369
|
},
|
375
370
|
|
376
371
|
isSync: function () {
|
377
|
-
return this.
|
372
|
+
return this.bn_;
|
378
373
|
},
|
379
374
|
|
380
375
|
onLast: function (callback) {
|
@@ -389,20 +384,20 @@ var proto = AsyncVDOMBuilder.prototype = {
|
|
389
384
|
return this;
|
390
385
|
},
|
391
386
|
|
392
|
-
A_: function (
|
393
|
-
var node = this.
|
387
|
+
A_: function (host) {
|
388
|
+
var node = this.bo_;
|
394
389
|
if (!node) {
|
395
390
|
var vdomTree = this.B_();
|
396
|
-
|
397
|
-
|
398
|
-
this.
|
399
|
-
morphdom(node, vdomTree,
|
391
|
+
|
392
|
+
if (!host) host = this.X_;
|
393
|
+
this.bo_ = node = vdomTree.bx_(host, null);
|
394
|
+
morphdom(node, vdomTree, host, this.b_);
|
400
395
|
}
|
401
396
|
return node;
|
402
397
|
},
|
403
398
|
|
404
|
-
toString: function (
|
405
|
-
var docFragment = this.A_(
|
399
|
+
toString: function (host) {
|
400
|
+
var docFragment = this.A_(host);
|
406
401
|
var html = "";
|
407
402
|
|
408
403
|
var child = docFragment.firstChild;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/runtime/vdom/AsyncVDOMBuilder.js"],"names":["EventEmitter","require","vdom","VElement","VDocumentFragment","VText","VComponent","VFragment","virtualizeHTML","RenderResult","defaultDocument","morphdom","attrsHelper","EVENT_UPDATE","EVENT_FINISH","State","tree","AsyncVDOMBuilder","globalData","parentNode","parentOut","state","data","global","undefined","proto","prototype","bc","component","key","ownerComponent","vComponent","child","childCount","pushToStack","push","element","tagName","attrs","flags","props","componentDef","n","node","clone","text","type","toHTML","h","toString","html","vdomNode","document","beginElement","bf","preserve","fragment","ef","endElement","stack","pop","length","end","remaining","emit","lastArray","_last","i","next","lastCallback","error","e","beginAsync","options","Error","last","documentFragment","asyncOut","out","createOut","flush","events","listenerCount","on","event","callback","onLast","once","arg","arguments","apply","removeListener","sync","isSync","doc","vdomTree","docFragment","firstChild","nextSibling","nodeType","container","ownerDocument","createElement","appendChild","cloneNode","innerHTML","outerHTML","then","fn","fnErr","promise","Promise","resolve","reject","result","catch","isVDOM","c","customEvents","be","ee","t","w","write","module","exports"],"mappings":"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","sourcesContent":["var EventEmitter = require(\"events-light\");\nvar vdom = require(\"./vdom\");\nvar VElement = vdom.___VElement;\nvar VDocumentFragment = vdom.___VDocumentFragment;\nvar VText = vdom.___VText;\nvar VComponent = vdom.___VComponent;\nvar VFragment = vdom.___VFragment;\nvar virtualizeHTML = vdom.___virtualizeHTML;\nvar RenderResult = require(\"../RenderResult\");\nvar defaultDocument = vdom.___defaultDocument;\nvar morphdom = require(\"./morphdom\");\nvar attrsHelper = require(\"./helpers/attrs\");\n\nvar EVENT_UPDATE = \"update\";\nvar EVENT_FINISH = \"finish\";\n\nfunction State(tree) {\n this.___events = new EventEmitter();\n this.___tree = tree;\n this.___finished = false;\n}\n\nfunction AsyncVDOMBuilder(globalData, parentNode, parentOut) {\n if (!parentNode) {\n parentNode = new VDocumentFragment();\n }\n\n var state;\n\n if (parentOut) {\n state = parentOut.___state;\n } else {\n state = new State(parentNode);\n }\n\n this.___remaining = 1;\n this.___lastCount = 0;\n this.___last = null;\n this.___parentOut = parentOut;\n\n this.data = {};\n this.___state = state;\n this.___parent = parentNode;\n this.global = globalData || {};\n this.___stack = [parentNode];\n this.___sync = false;\n this.___vnode = undefined;\n this.___components = null;\n\n this.___assignedComponentDef = null;\n this.___assignedKey = null;\n this.___assignedCustomEvents = null;\n}\n\nvar proto = (AsyncVDOMBuilder.prototype = {\n ___isOut: true,\n ___document: defaultDocument,\n\n bc: function (component, key, ownerComponent) {\n var vComponent = new VComponent(component, key, ownerComponent);\n return this.___beginNode(vComponent, 0, true);\n },\n\n ___preserveComponent: function (component, key, ownerComponent) {\n var vComponent = new VComponent(component, key, ownerComponent, true);\n this.___beginNode(vComponent, 0);\n },\n\n ___beginNode: function (child, childCount, pushToStack) {\n this.___parent.___appendChild(child);\n if (pushToStack === true) {\n this.___stack.push(child);\n this.___parent = child;\n }\n return childCount === 0 ? this : child;\n },\n\n element: function (tagName, attrs, key, component, childCount, flags, props) {\n var element = new VElement(\n tagName,\n attrs,\n key,\n component,\n childCount,\n flags,\n props\n );\n return this.___beginNode(element, childCount);\n },\n\n ___elementDynamic: function (tagName, attrs, key, componentDef, props) {\n return this.element(\n tagName,\n attrsHelper(attrs),\n key,\n componentDef.___component,\n 0,\n 0,\n props\n );\n },\n\n n: function (node, component) {\n // NOTE: We do a shallow clone since we assume the node is being reused\n // and a node can only have one parent node.\n var clone = node.___cloneNode();\n this.node(clone);\n clone.___ownerComponent = component;\n\n return this;\n },\n\n node: function (node) {\n this.___parent.___appendChild(node);\n return this;\n },\n\n text: function (text, ownerComponent) {\n var type = typeof text;\n\n if (type != \"string\") {\n if (text == null) {\n return;\n } else if (type === \"object\") {\n if (text.toHTML) {\n return this.h(text.toHTML(), ownerComponent);\n }\n }\n\n text = text.toString();\n }\n\n this.___parent.___appendChild(new VText(text, ownerComponent));\n return this;\n },\n\n html: function (html, ownerComponent) {\n if (html != null) {\n var vdomNode = virtualizeHTML(\n html,\n this.___document || document,\n ownerComponent\n );\n this.node(vdomNode);\n }\n\n return this;\n },\n\n beginElement: function (\n tagName,\n attrs,\n key,\n component,\n childCount,\n flags,\n props\n ) {\n var element = new VElement(\n tagName,\n attrs,\n key,\n component,\n childCount,\n flags,\n props\n );\n this.___beginNode(element, childCount, true);\n return this;\n },\n\n ___beginElementDynamic: function (tagName, attrs, key, componentDef, props) {\n return this.beginElement(\n tagName,\n attrsHelper(attrs),\n key,\n componentDef.___component,\n 0,\n 0,\n props\n );\n },\n\n bf: function (key, component, preserve) {\n var fragment = new VFragment(key, component, preserve);\n this.___beginNode(fragment, null, true);\n return this;\n },\n\n ef: function () {\n this.endElement();\n },\n\n endElement: function () {\n var stack = this.___stack;\n stack.pop();\n this.___parent = stack[stack.length - 1];\n },\n\n end: function () {\n this.___parent = undefined;\n\n var remaining = --this.___remaining;\n var parentOut = this.___parentOut;\n\n if (remaining === 0) {\n if (parentOut) {\n parentOut.___handleChildDone();\n } else {\n this.___doFinish();\n }\n } else if (remaining - this.___lastCount === 0) {\n this.___emitLast();\n }\n\n return this;\n },\n\n ___handleChildDone: function () {\n var remaining = --this.___remaining;\n\n if (remaining === 0) {\n var parentOut = this.___parentOut;\n if (parentOut) {\n parentOut.___handleChildDone();\n } else {\n this.___doFinish();\n }\n } else if (remaining - this.___lastCount === 0) {\n this.___emitLast();\n }\n },\n\n ___doFinish: function () {\n var state = this.___state;\n state.___finished = true;\n state.___events.emit(EVENT_FINISH, this.___getResult());\n },\n\n ___emitLast: function () {\n var lastArray = this._last;\n\n var i = 0;\n\n function next() {\n if (i === lastArray.length) {\n return;\n }\n var lastCallback = lastArray[i++];\n lastCallback(next);\n\n if (!lastCallback.length) {\n next();\n }\n }\n\n next();\n },\n\n error: function (e) {\n try {\n this.emit(\"error\", e);\n } finally {\n // If there is no listener for the error event then it will\n // throw a new Error here. In order to ensure that the async fragment\n // is still properly ended we need to put the end() in a `finally`\n // block\n this.end();\n }\n\n return this;\n },\n\n beginAsync: function (options) {\n if (this.___sync) {\n throw Error(\n \"Tried to render async while in sync mode. Note: Client side await is not currently supported in re-renders (Issue: #942).\"\n );\n }\n\n var state = this.___state;\n\n if (options) {\n if (options.last) {\n this.___lastCount++;\n }\n }\n\n this.___remaining++;\n\n var documentFragment = this.___parent.___appendDocumentFragment();\n var asyncOut = new AsyncVDOMBuilder(this.global, documentFragment, this);\n\n state.___events.emit(\"beginAsync\", {\n out: asyncOut,\n parentOut: this\n });\n\n return asyncOut;\n },\n\n createOut: function () {\n return new AsyncVDOMBuilder(this.global);\n },\n\n flush: function () {\n var events = this.___state.___events;\n\n if (events.listenerCount(EVENT_UPDATE)) {\n events.emit(EVENT_UPDATE, new RenderResult(this));\n }\n },\n\n ___getOutput: function () {\n return this.___state.___tree;\n },\n\n ___getResult: function () {\n return this.___result || (this.___result = new RenderResult(this));\n },\n\n on: function (event, callback) {\n var state = this.___state;\n\n if (event === EVENT_FINISH && state.___finished) {\n callback(this.___getResult());\n } else if (event === \"last\") {\n this.onLast(callback);\n } else {\n state.___events.on(event, callback);\n }\n\n return this;\n },\n\n once: function (event, callback) {\n var state = this.___state;\n\n if (event === EVENT_FINISH && state.___finished) {\n callback(this.___getResult());\n } else if (event === \"last\") {\n this.onLast(callback);\n } else {\n state.___events.once(event, callback);\n }\n\n return this;\n },\n\n emit: function (type, arg) {\n var events = this.___state.___events;\n switch (arguments.length) {\n case 1:\n events.emit(type);\n break;\n case 2:\n events.emit(type, arg);\n break;\n default:\n events.emit.apply(events, arguments);\n break;\n }\n return this;\n },\n\n removeListener: function () {\n var events = this.___state.___events;\n events.removeListener.apply(events, arguments);\n return this;\n },\n\n sync: function () {\n this.___sync = true;\n },\n\n isSync: function () {\n return this.___sync;\n },\n\n onLast: function (callback) {\n var lastArray = this._last;\n\n if (lastArray === undefined) {\n this._last = [callback];\n } else {\n lastArray.push(callback);\n }\n\n return this;\n },\n\n ___getNode: function (doc) {\n var node = this.___vnode;\n if (!node) {\n var vdomTree = this.___getOutput();\n // Create the root document fragment node\n doc = doc || this.___document || document;\n this.___vnode = node = vdomTree.___actualize(doc, null);\n morphdom(node, vdomTree, doc, this.___components);\n }\n return node;\n },\n\n toString: function (doc) {\n var docFragment = this.___getNode(doc);\n var html = \"\";\n\n var child = docFragment.firstChild;\n while (child) {\n var nextSibling = child.nextSibling;\n if (child.nodeType != 1) {\n var container = docFragment.ownerDocument.createElement(\"div\");\n container.appendChild(child.cloneNode());\n html += container.innerHTML;\n } else {\n html += child.outerHTML;\n }\n\n child = nextSibling;\n }\n\n return html;\n },\n\n then: function (fn, fnErr) {\n var out = this;\n var promise = new Promise(function (resolve, reject) {\n out.on(\"error\", reject).on(EVENT_FINISH, function (result) {\n resolve(result);\n });\n });\n\n return Promise.resolve(promise).then(fn, fnErr);\n },\n\n catch: function (fnErr) {\n return this.then(undefined, fnErr);\n },\n\n isVDOM: true,\n\n c: function (componentDef, key, customEvents) {\n this.___assignedComponentDef = componentDef;\n this.___assignedKey = key;\n this.___assignedCustomEvents = customEvents;\n }\n});\n\nproto.e = proto.element;\nproto.be = proto.beginElement;\nproto.ee = proto.___endElement = proto.endElement;\nproto.t = proto.text;\nproto.h = proto.w = proto.write = proto.html;\n\nmodule.exports = AsyncVDOMBuilder;\n"],"file":"AsyncVDOMBuilder.js"}
|
1
|
+
{"version":3,"sources":["../../../src/runtime/vdom/AsyncVDOMBuilder.js"],"names":["EventEmitter","require","vdom","VElement","VDocumentFragment","VText","VComponent","VFragment","virtualizeHTML","RenderResult","morphdom","attrsHelper","EVENT_UPDATE","EVENT_FINISH","State","tree","AsyncVDOMBuilder","globalData","parentNode","parentOut","state","data","global","undefined","proto","prototype","window","document","bc","component","key","ownerComponent","vComponent","child","childCount","pushToStack","push","element","tagName","attrs","flags","props","componentDef","n","node","clone","text","type","toHTML","h","toString","html","vdomNode","beginElement","bf","preserve","fragment","ef","endElement","stack","pop","length","end","remaining","emit","lastArray","_last","i","next","lastCallback","error","e","beginAsync","options","Error","last","documentFragment","asyncOut","out","createOut","flush","events","listenerCount","on","event","callback","onLast","once","arg","arguments","apply","removeListener","sync","isSync","host","vdomTree","docFragment","firstChild","nextSibling","nodeType","container","ownerDocument","createElement","appendChild","cloneNode","innerHTML","outerHTML","then","fn","fnErr","promise","Promise","resolve","reject","result","catch","isVDOM","c","customEvents","be","ee","t","w","write","module","exports"],"mappings":"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","sourcesContent":["var EventEmitter = require(\"events-light\");\nvar vdom = require(\"./vdom\");\nvar VElement = vdom.___VElement;\nvar VDocumentFragment = vdom.___VDocumentFragment;\nvar VText = vdom.___VText;\nvar VComponent = vdom.___VComponent;\nvar VFragment = vdom.___VFragment;\nvar virtualizeHTML = vdom.___virtualizeHTML;\nvar RenderResult = require(\"../RenderResult\");\nvar morphdom = require(\"./morphdom\");\nvar attrsHelper = require(\"./helpers/attrs\");\n\nvar EVENT_UPDATE = \"update\";\nvar EVENT_FINISH = \"finish\";\n\nfunction State(tree) {\n this.___events = new EventEmitter();\n this.___tree = tree;\n this.___finished = false;\n}\n\nfunction AsyncVDOMBuilder(globalData, parentNode, parentOut) {\n if (!parentNode) {\n parentNode = new VDocumentFragment();\n }\n\n var state;\n\n if (parentOut) {\n state = parentOut.___state;\n } else {\n state = new State(parentNode);\n }\n\n this.___remaining = 1;\n this.___lastCount = 0;\n this.___last = null;\n this.___parentOut = parentOut;\n\n this.data = {};\n this.___state = state;\n this.___parent = parentNode;\n this.global = globalData || {};\n this.___stack = [parentNode];\n this.___sync = false;\n this.___vnode = undefined;\n this.___components = null;\n\n this.___assignedComponentDef = null;\n this.___assignedKey = null;\n this.___assignedCustomEvents = null;\n}\n\nvar proto = (AsyncVDOMBuilder.prototype = {\n ___isOut: true,\n ___host: typeof window === \"object\" && document,\n\n bc: function (component, key, ownerComponent) {\n var vComponent = new VComponent(component, key, ownerComponent);\n return this.___beginNode(vComponent, 0, true);\n },\n\n ___preserveComponent: function (component, key, ownerComponent) {\n var vComponent = new VComponent(component, key, ownerComponent, true);\n this.___beginNode(vComponent, 0);\n },\n\n ___beginNode: function (child, childCount, pushToStack) {\n this.___parent.___appendChild(child);\n if (pushToStack === true) {\n this.___stack.push(child);\n this.___parent = child;\n }\n return childCount === 0 ? this : child;\n },\n\n element: function (tagName, attrs, key, component, childCount, flags, props) {\n var element = new VElement(\n tagName,\n attrs,\n key,\n component,\n childCount,\n flags,\n props\n );\n return this.___beginNode(element, childCount);\n },\n\n ___elementDynamic: function (tagName, attrs, key, componentDef, props) {\n return this.element(\n tagName,\n attrsHelper(attrs),\n key,\n componentDef.___component,\n 0,\n 0,\n props\n );\n },\n\n n: function (node, component) {\n // NOTE: We do a shallow clone since we assume the node is being reused\n // and a node can only have one parent node.\n var clone = node.___cloneNode();\n this.node(clone);\n clone.___ownerComponent = component;\n\n return this;\n },\n\n node: function (node) {\n this.___parent.___appendChild(node);\n return this;\n },\n\n text: function (text, ownerComponent) {\n var type = typeof text;\n\n if (type != \"string\") {\n if (text == null) {\n return;\n } else if (type === \"object\") {\n if (text.toHTML) {\n return this.h(text.toHTML(), ownerComponent);\n }\n }\n\n text = text.toString();\n }\n\n this.___parent.___appendChild(new VText(text, ownerComponent));\n return this;\n },\n\n html: function (html, ownerComponent) {\n if (html != null) {\n var vdomNode = virtualizeHTML(html, ownerComponent);\n this.node(vdomNode);\n }\n\n return this;\n },\n\n beginElement: function (\n tagName,\n attrs,\n key,\n component,\n childCount,\n flags,\n props\n ) {\n var element = new VElement(\n tagName,\n attrs,\n key,\n component,\n childCount,\n flags,\n props\n );\n this.___beginNode(element, childCount, true);\n return this;\n },\n\n ___beginElementDynamic: function (tagName, attrs, key, componentDef, props) {\n return this.beginElement(\n tagName,\n attrsHelper(attrs),\n key,\n componentDef.___component,\n 0,\n 0,\n props\n );\n },\n\n bf: function (key, component, preserve) {\n var fragment = new VFragment(key, component, preserve);\n this.___beginNode(fragment, null, true);\n return this;\n },\n\n ef: function () {\n this.endElement();\n },\n\n endElement: function () {\n var stack = this.___stack;\n stack.pop();\n this.___parent = stack[stack.length - 1];\n },\n\n end: function () {\n this.___parent = undefined;\n\n var remaining = --this.___remaining;\n var parentOut = this.___parentOut;\n\n if (remaining === 0) {\n if (parentOut) {\n parentOut.___handleChildDone();\n } else {\n this.___doFinish();\n }\n } else if (remaining - this.___lastCount === 0) {\n this.___emitLast();\n }\n\n return this;\n },\n\n ___handleChildDone: function () {\n var remaining = --this.___remaining;\n\n if (remaining === 0) {\n var parentOut = this.___parentOut;\n if (parentOut) {\n parentOut.___handleChildDone();\n } else {\n this.___doFinish();\n }\n } else if (remaining - this.___lastCount === 0) {\n this.___emitLast();\n }\n },\n\n ___doFinish: function () {\n var state = this.___state;\n state.___finished = true;\n state.___events.emit(EVENT_FINISH, this.___getResult());\n },\n\n ___emitLast: function () {\n var lastArray = this._last;\n\n var i = 0;\n\n function next() {\n if (i === lastArray.length) {\n return;\n }\n var lastCallback = lastArray[i++];\n lastCallback(next);\n\n if (!lastCallback.length) {\n next();\n }\n }\n\n next();\n },\n\n error: function (e) {\n try {\n this.emit(\"error\", e);\n } finally {\n // If there is no listener for the error event then it will\n // throw a new Error here. In order to ensure that the async fragment\n // is still properly ended we need to put the end() in a `finally`\n // block\n this.end();\n }\n\n return this;\n },\n\n beginAsync: function (options) {\n if (this.___sync) {\n throw Error(\n \"Tried to render async while in sync mode. Note: Client side await is not currently supported in re-renders (Issue: #942).\"\n );\n }\n\n var state = this.___state;\n\n if (options) {\n if (options.last) {\n this.___lastCount++;\n }\n }\n\n this.___remaining++;\n\n var documentFragment = this.___parent.___appendDocumentFragment();\n var asyncOut = new AsyncVDOMBuilder(this.global, documentFragment, this);\n\n state.___events.emit(\"beginAsync\", {\n out: asyncOut,\n parentOut: this\n });\n\n return asyncOut;\n },\n\n createOut: function () {\n return new AsyncVDOMBuilder(this.global);\n },\n\n flush: function () {\n var events = this.___state.___events;\n\n if (events.listenerCount(EVENT_UPDATE)) {\n events.emit(EVENT_UPDATE, new RenderResult(this));\n }\n },\n\n ___getOutput: function () {\n return this.___state.___tree;\n },\n\n ___getResult: function () {\n return this.___result || (this.___result = new RenderResult(this));\n },\n\n on: function (event, callback) {\n var state = this.___state;\n\n if (event === EVENT_FINISH && state.___finished) {\n callback(this.___getResult());\n } else if (event === \"last\") {\n this.onLast(callback);\n } else {\n state.___events.on(event, callback);\n }\n\n return this;\n },\n\n once: function (event, callback) {\n var state = this.___state;\n\n if (event === EVENT_FINISH && state.___finished) {\n callback(this.___getResult());\n } else if (event === \"last\") {\n this.onLast(callback);\n } else {\n state.___events.once(event, callback);\n }\n\n return this;\n },\n\n emit: function (type, arg) {\n var events = this.___state.___events;\n switch (arguments.length) {\n case 1:\n events.emit(type);\n break;\n case 2:\n events.emit(type, arg);\n break;\n default:\n events.emit.apply(events, arguments);\n break;\n }\n return this;\n },\n\n removeListener: function () {\n var events = this.___state.___events;\n events.removeListener.apply(events, arguments);\n return this;\n },\n\n sync: function () {\n this.___sync = true;\n },\n\n isSync: function () {\n return this.___sync;\n },\n\n onLast: function (callback) {\n var lastArray = this._last;\n\n if (lastArray === undefined) {\n this._last = [callback];\n } else {\n lastArray.push(callback);\n }\n\n return this;\n },\n\n ___getNode: function (host) {\n var node = this.___vnode;\n if (!node) {\n var vdomTree = this.___getOutput();\n\n if (!host) host = this.___host;\n this.___vnode = node = vdomTree.___actualize(host, null);\n morphdom(node, vdomTree, host, this.___components);\n }\n return node;\n },\n\n toString: function (host) {\n var docFragment = this.___getNode(host);\n var html = \"\";\n\n var child = docFragment.firstChild;\n while (child) {\n var nextSibling = child.nextSibling;\n if (child.nodeType != 1) {\n var container = docFragment.ownerDocument.createElement(\"div\");\n container.appendChild(child.cloneNode());\n html += container.innerHTML;\n } else {\n html += child.outerHTML;\n }\n\n child = nextSibling;\n }\n\n return html;\n },\n\n then: function (fn, fnErr) {\n var out = this;\n var promise = new Promise(function (resolve, reject) {\n out.on(\"error\", reject).on(EVENT_FINISH, function (result) {\n resolve(result);\n });\n });\n\n return Promise.resolve(promise).then(fn, fnErr);\n },\n\n catch: function (fnErr) {\n return this.then(undefined, fnErr);\n },\n\n isVDOM: true,\n\n c: function (componentDef, key, customEvents) {\n this.___assignedComponentDef = componentDef;\n this.___assignedKey = key;\n this.___assignedCustomEvents = customEvents;\n }\n});\n\nproto.e = proto.element;\nproto.be = proto.beginElement;\nproto.ee = proto.___endElement = proto.endElement;\nproto.t = proto.text;\nproto.h = proto.w = proto.write = proto.html;\n\nmodule.exports = AsyncVDOMBuilder;\n"],"file":"AsyncVDOMBuilder.js"}
|
@@ -2,14 +2,14 @@
|
|
2
2
|
var inherit = require("raptor-util/inherit");
|
3
3
|
|
4
4
|
function VComponent(component, key, ownerComponent, preserve) {
|
5
|
-
this.
|
6
|
-
this.
|
5
|
+
this.by_(null /* childCount */, ownerComponent);
|
6
|
+
this.bz_ = key;
|
7
7
|
this.h_ = component;
|
8
8
|
this.n_ = preserve;
|
9
9
|
}
|
10
10
|
|
11
11
|
VComponent.prototype = {
|
12
|
-
|
12
|
+
bA_: 2 };
|
13
13
|
|
14
14
|
|
15
15
|
inherit(VComponent, VNode);
|
@@ -4,26 +4,26 @@ var extend = require("raptor-util/extend");
|
|
4
4
|
|
5
5
|
function VDocumentFragmentClone(other) {
|
6
6
|
extend(this, other);
|
7
|
+
this.bB_ = null;
|
7
8
|
this.bC_ = null;
|
8
|
-
this.bD_ = null;
|
9
9
|
}
|
10
10
|
|
11
11
|
function VDocumentFragment(out) {
|
12
|
-
this.
|
12
|
+
this.by_(null /* childCount */);
|
13
13
|
this.y_ = out;
|
14
14
|
}
|
15
15
|
|
16
16
|
VDocumentFragment.prototype = {
|
17
|
-
|
17
|
+
bA_: 11,
|
18
18
|
|
19
|
-
|
19
|
+
bD_: true,
|
20
20
|
|
21
|
-
|
21
|
+
br_: function () {
|
22
22
|
return new VDocumentFragmentClone(this);
|
23
23
|
},
|
24
24
|
|
25
|
-
|
26
|
-
return
|
25
|
+
bx_: function (host) {
|
26
|
+
return (host.ownerDocument || host).createDocumentFragment();
|
27
27
|
} };
|
28
28
|
|
29
29
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/runtime/vdom/VDocumentFragment.js"],"names":["VNode","require","inherit","extend","VDocumentFragmentClone","other","VDocumentFragment","out","prototype","
|
1
|
+
{"version":3,"sources":["../../../src/runtime/vdom/VDocumentFragment.js"],"names":["VNode","require","inherit","extend","VDocumentFragmentClone","other","VDocumentFragment","out","prototype","host","ownerDocument","createDocumentFragment","module","exports"],"mappings":"aAAA,IAAIA,KAAK,GAAGC,OAAO,CAAC,SAAD,CAAnB;AACA,IAAIC,OAAO,GAAGD,OAAO,CAAC,qBAAD,CAArB;AACA,IAAIE,MAAM,GAAGF,OAAO,CAAC,oBAAD,CAApB;;AAEA,SAASG,sBAAT,CAAgCC,KAAhC,EAAuC;AACrCF,EAAAA,MAAM,CAAC,IAAD,EAAOE,KAAP,CAAN;AACA,aAAqB,IAArB;AACA,aAA8B,IAA9B;AACD;;AAED,SAASC,iBAAT,CAA2BC,GAA3B,EAAgC;AAC9B,WAAc,IAAd,CAAmB,gBAAnB;AACA,YAAcA,GAAd;AACD;;AAEDD,iBAAiB,CAACE,SAAlB,GAA8B;AAC5B,OAAa,EADe;;AAG5B,OAAqB,IAHO;;AAK5B,OAAc,YAAY;AACxB,WAAO,IAAIJ,sBAAJ,CAA2B,IAA3B,CAAP;AACD,GAP2B;;AAS5B,OAAc,UAAUK,IAAV,EAAgB;AAC5B,WAAO,CAACA,IAAI,CAACC,aAAL,IAAsBD,IAAvB,EAA6BE,sBAA7B,EAAP;AACD,GAX2B,EAA9B;;;AAcAT,OAAO,CAACI,iBAAD,EAAoBN,KAApB,CAAP;;AAEAI,sBAAsB,CAACI,SAAvB,GAAmCF,iBAAiB,CAACE,SAArD;;AAEAI,MAAM,CAACC,OAAP,GAAiBP,iBAAjB","sourcesContent":["var VNode = require(\"./VNode\");\nvar inherit = require(\"raptor-util/inherit\");\nvar extend = require(\"raptor-util/extend\");\n\nfunction VDocumentFragmentClone(other) {\n extend(this, other);\n this.___parentNode = null;\n this.___nextSiblingInternal = null;\n}\n\nfunction VDocumentFragment(out) {\n this.___VNode(null /* childCount */);\n this.___out = out;\n}\n\nVDocumentFragment.prototype = {\n ___nodeType: 11,\n\n ___DocumentFragment: true,\n\n ___cloneNode: function () {\n return new VDocumentFragmentClone(this);\n },\n\n ___actualize: function (host) {\n return (host.ownerDocument || host).createDocumentFragment();\n }\n};\n\ninherit(VDocumentFragment, VNode);\n\nVDocumentFragmentClone.prototype = VDocumentFragment.prototype;\n\nmodule.exports = VDocumentFragment;\n"],"file":"VDocumentFragment.js"}
|