j-templates 7.0.102 → 7.0.103
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/Node/vNode.js +17 -14
- package/package.json +1 -1
package/Node/vNode.js
CHANGED
|
@@ -204,12 +204,15 @@ function ToArray(result) {
|
|
|
204
204
|
return result;
|
|
205
205
|
return [result];
|
|
206
206
|
}
|
|
207
|
-
function
|
|
208
|
-
|
|
207
|
+
function IsFragmentOrNull(vnode) {
|
|
208
|
+
return vnode === null || vnode.type === vNode_types_1.FRAGMENT_NODE;
|
|
209
|
+
}
|
|
210
|
+
function FlattenFragmentsRecursive(children, startIndex, result) {
|
|
211
|
+
for (let x = startIndex; x < children.length; x++) {
|
|
209
212
|
const vnode = children[x];
|
|
210
213
|
switch (vnode.type) {
|
|
211
214
|
case vNode_types_1.FRAGMENT_NODE:
|
|
212
|
-
|
|
215
|
+
FlattenFragmentsRecursive(vnode.children, 0, result);
|
|
213
216
|
default:
|
|
214
217
|
if (vnode.node !== null)
|
|
215
218
|
result.push(vnode.node);
|
|
@@ -217,14 +220,14 @@ function FlattenNodes(children, result = []) {
|
|
|
217
220
|
}
|
|
218
221
|
return result;
|
|
219
222
|
}
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
}
|
|
223
|
+
function CleanupChildrenArray(children) {
|
|
224
|
+
const index = children.findIndex(IsFragmentOrNull);
|
|
225
|
+
if (index < 0)
|
|
226
|
+
return children;
|
|
227
|
+
const result = [];
|
|
228
|
+
FlattenFragmentsRecursive(children, index, result);
|
|
229
|
+
return result;
|
|
230
|
+
}
|
|
228
231
|
function UpdateChildren(vnode, init = false, skipInit = false) {
|
|
229
232
|
if (!vnode.children)
|
|
230
233
|
return;
|
|
@@ -247,13 +250,13 @@ function UpdateChildren(vnode, init = false, skipInit = false) {
|
|
|
247
250
|
return;
|
|
248
251
|
if (init) {
|
|
249
252
|
if (vnode.node !== null)
|
|
250
|
-
nodeConfig_1.NodeConfig.reconcileChildren(vnode.node,
|
|
253
|
+
nodeConfig_1.NodeConfig.reconcileChildren(vnode.node, CleanupChildrenArray(vnode.children));
|
|
251
254
|
}
|
|
252
255
|
else if (!async) {
|
|
253
256
|
let reconcileNode = vnode;
|
|
254
257
|
while (reconcileNode.node === null)
|
|
255
258
|
reconcileNode = reconcileNode.parentNode;
|
|
256
|
-
nodeConfig_1.NodeConfig.reconcileChildren(reconcileNode.node,
|
|
259
|
+
nodeConfig_1.NodeConfig.reconcileChildren(reconcileNode.node, CleanupChildrenArray(reconcileNode.children));
|
|
257
260
|
}
|
|
258
261
|
else {
|
|
259
262
|
nodeConfig_1.NodeConfig.scheduleUpdate(function () {
|
|
@@ -262,7 +265,7 @@ function UpdateChildren(vnode, init = false, skipInit = false) {
|
|
|
262
265
|
let reconcileNode = vnode;
|
|
263
266
|
while (reconcileNode.node === null)
|
|
264
267
|
reconcileNode = reconcileNode.parentNode;
|
|
265
|
-
nodeConfig_1.NodeConfig.reconcileChildren(reconcileNode.node,
|
|
268
|
+
nodeConfig_1.NodeConfig.reconcileChildren(reconcileNode.node, CleanupChildrenArray(reconcileNode.children));
|
|
266
269
|
});
|
|
267
270
|
}
|
|
268
271
|
});
|