j-templates 7.0.100 → 7.0.102
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/DOM/domNodeConfig.js +12 -14
- package/Node/vNode.js +22 -9
- package/package.json +1 -1
package/DOM/domNodeConfig.js
CHANGED
|
@@ -174,22 +174,20 @@ exports.DOMNodeConfig = {
|
|
|
174
174
|
let inNextChildren = false;
|
|
175
175
|
for (let x = 0; x < children.length; x++) {
|
|
176
176
|
const nextChild = (lastChild = getHTMLNode(children[x], currentChild));
|
|
177
|
-
if (
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
target.removeChild(toRemove);
|
|
185
|
-
}
|
|
186
|
-
nextChild !== currentChild &&
|
|
187
|
-
target.insertBefore(nextChild, currentChild);
|
|
177
|
+
if (!currentChild)
|
|
178
|
+
target.appendChild(nextChild);
|
|
179
|
+
else if (nextChild !== currentChild) {
|
|
180
|
+
while (currentChild && (!(inNextChildren = inNextChildren || children.indexOf(currentChild, x + 1) >= 0))) {
|
|
181
|
+
const toRemove = currentChild;
|
|
182
|
+
currentChild = currentChild.nextSibling;
|
|
183
|
+
target.removeChild(toRemove);
|
|
188
184
|
}
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
currentChild = nextChild.nextSibling;
|
|
185
|
+
nextChild !== currentChild &&
|
|
186
|
+
target.insertBefore(nextChild, currentChild);
|
|
192
187
|
}
|
|
188
|
+
else
|
|
189
|
+
inNextChildren = false;
|
|
190
|
+
currentChild = nextChild.nextSibling;
|
|
193
191
|
}
|
|
194
192
|
break;
|
|
195
193
|
}
|
package/Node/vNode.js
CHANGED
|
@@ -204,14 +204,27 @@ function ToArray(result) {
|
|
|
204
204
|
return result;
|
|
205
205
|
return [result];
|
|
206
206
|
}
|
|
207
|
-
function
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
207
|
+
function FlattenNodes(children, result = []) {
|
|
208
|
+
for (let x = 0; x < children.length; x++) {
|
|
209
|
+
const vnode = children[x];
|
|
210
|
+
switch (vnode.type) {
|
|
211
|
+
case vNode_types_1.FRAGMENT_NODE:
|
|
212
|
+
FlattenNodes(vnode.children, result);
|
|
213
|
+
default:
|
|
214
|
+
if (vnode.node !== null)
|
|
215
|
+
result.push(vnode.node);
|
|
216
|
+
}
|
|
213
217
|
}
|
|
218
|
+
return result;
|
|
214
219
|
}
|
|
220
|
+
/* function GetNode(vnode: vNodeType): string | Node | (string | Node)[] {
|
|
221
|
+
switch (vnode.type) {
|
|
222
|
+
case FRAGMENT_NODE:
|
|
223
|
+
return vnode.children.flatMap(GetNode);
|
|
224
|
+
default:
|
|
225
|
+
return vnode.node;
|
|
226
|
+
}
|
|
227
|
+
} */
|
|
215
228
|
function UpdateChildren(vnode, init = false, skipInit = false) {
|
|
216
229
|
if (!vnode.children)
|
|
217
230
|
return;
|
|
@@ -234,13 +247,13 @@ function UpdateChildren(vnode, init = false, skipInit = false) {
|
|
|
234
247
|
return;
|
|
235
248
|
if (init) {
|
|
236
249
|
if (vnode.node !== null)
|
|
237
|
-
nodeConfig_1.NodeConfig.reconcileChildren(vnode.node, vnode.children
|
|
250
|
+
nodeConfig_1.NodeConfig.reconcileChildren(vnode.node, FlattenNodes(vnode.children));
|
|
238
251
|
}
|
|
239
252
|
else if (!async) {
|
|
240
253
|
let reconcileNode = vnode;
|
|
241
254
|
while (reconcileNode.node === null)
|
|
242
255
|
reconcileNode = reconcileNode.parentNode;
|
|
243
|
-
nodeConfig_1.NodeConfig.reconcileChildren(reconcileNode.node, reconcileNode.children
|
|
256
|
+
nodeConfig_1.NodeConfig.reconcileChildren(reconcileNode.node, FlattenNodes(reconcileNode.children));
|
|
244
257
|
}
|
|
245
258
|
else {
|
|
246
259
|
nodeConfig_1.NodeConfig.scheduleUpdate(function () {
|
|
@@ -249,7 +262,7 @@ function UpdateChildren(vnode, init = false, skipInit = false) {
|
|
|
249
262
|
let reconcileNode = vnode;
|
|
250
263
|
while (reconcileNode.node === null)
|
|
251
264
|
reconcileNode = reconcileNode.parentNode;
|
|
252
|
-
nodeConfig_1.NodeConfig.reconcileChildren(reconcileNode.node, reconcileNode.children
|
|
265
|
+
nodeConfig_1.NodeConfig.reconcileChildren(reconcileNode.node, FlattenNodes(reconcileNode.children));
|
|
253
266
|
});
|
|
254
267
|
}
|
|
255
268
|
});
|