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