marko 5.16.1 → 5.17.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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"}
|