@thyn/core 0.0.229 → 0.0.233
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/element.js +127 -144
- package/package.json +1 -1
- package/src/element.ts +130 -170
- package/tsconfig.tsbuildinfo +1 -1
package/dist/element.js
CHANGED
|
@@ -9,17 +9,6 @@ export function collectEffect(effectFn) {
|
|
|
9
9
|
}
|
|
10
10
|
collectingHead = effectFn;
|
|
11
11
|
}
|
|
12
|
-
// export function createReactiveTextNode(v) {
|
|
13
|
-
// let n;
|
|
14
|
-
// staticEffect(() => {
|
|
15
|
-
// if (n) {
|
|
16
|
-
// n.nodeValue = v();
|
|
17
|
-
// } else {
|
|
18
|
-
// n = document.createTextNode(v());
|
|
19
|
-
// }
|
|
20
|
-
// });
|
|
21
|
-
// return n;
|
|
22
|
-
// }
|
|
23
12
|
export function createReactiveTextNode(v) {
|
|
24
13
|
const n = document.createTextNode(v());
|
|
25
14
|
staticEffect(() => {
|
|
@@ -252,9 +241,7 @@ export function list(props, terminal = false) {
|
|
|
252
241
|
const teardownNode = terminal ? shallowTeardown : teardown;
|
|
253
242
|
let parent;
|
|
254
243
|
let outlet = document.createDocumentFragment();
|
|
255
|
-
|
|
256
|
-
let prevItems = [];
|
|
257
|
-
let rowNodes = []; // The "Shadow Array" - avoids reading DOM
|
|
244
|
+
let prevItems;
|
|
258
245
|
const startBookend = document.createComment("");
|
|
259
246
|
const endBookend = document.createComment("");
|
|
260
247
|
startBookend.$frag = outlet;
|
|
@@ -262,156 +249,149 @@ export function list(props, terminal = false) {
|
|
|
262
249
|
const render = props.render;
|
|
263
250
|
staticEffect(() => {
|
|
264
251
|
parent = startBookend.parentNode;
|
|
265
|
-
// 1. Initialization / First Render
|
|
266
252
|
if (!parent) {
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
const newNodes = items.map(render);
|
|
270
|
-
outlet.append(startBookend, ...newNodes, endBookend);
|
|
271
|
-
// Save state
|
|
272
|
-
prevItems = items;
|
|
273
|
-
rowNodes = newNodes;
|
|
253
|
+
prevItems = props.items();
|
|
254
|
+
outlet.append(startBookend, ...prevItems.map(render), endBookend);
|
|
274
255
|
return;
|
|
275
256
|
}
|
|
276
|
-
|
|
277
|
-
|
|
257
|
+
let nextItems = props.items();
|
|
258
|
+
let newLength = nextItems.length;
|
|
278
259
|
let oldLength = prevItems.length;
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
rowNodes = [];
|
|
299
|
-
prevItems = [];
|
|
260
|
+
if (!oldLength && newLength) {
|
|
261
|
+
endBookend.before(...nextItems.map(render));
|
|
262
|
+
prevItems = nextItems;
|
|
263
|
+
nextItems = null;
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
const childNodeList = parent.childNodes;
|
|
267
|
+
const childNodes = Array.from(childNodeList);
|
|
268
|
+
const offset = childNodes.indexOf(startBookend) + 1;
|
|
269
|
+
if (!newLength) {
|
|
270
|
+
const removalQueue = [];
|
|
271
|
+
const end = prevItems.length + offset;
|
|
272
|
+
for (let i = offset; i < end; i++) {
|
|
273
|
+
const ch = childNodeList[i];
|
|
274
|
+
teardownNode(ch);
|
|
275
|
+
removalQueue.push(ch);
|
|
276
|
+
}
|
|
277
|
+
for (const ch of removalQueue) {
|
|
278
|
+
remove(ch);
|
|
300
279
|
}
|
|
280
|
+
prevItems = nextItems;
|
|
281
|
+
nextItems = null;
|
|
301
282
|
return;
|
|
302
283
|
}
|
|
303
|
-
|
|
304
|
-
if (
|
|
305
|
-
|
|
306
|
-
endBookend.before(...newNodes);
|
|
307
|
-
rowNodes = newNodes;
|
|
284
|
+
let start = nextItems.findIndex((item, index) => prevItems[index] !== item);
|
|
285
|
+
if (start === oldLength) {
|
|
286
|
+
endBookend.before(...nextItems.slice(start).map(render));
|
|
308
287
|
prevItems = nextItems;
|
|
288
|
+
nextItems = null;
|
|
309
289
|
return;
|
|
310
290
|
}
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
291
|
+
if (start < 0) {
|
|
292
|
+
for (let i = nextItems.length; i < oldLength; i++) {
|
|
293
|
+
const e = childNodes[offset + --oldLength];
|
|
294
|
+
teardownNode(e);
|
|
295
|
+
remove(e);
|
|
296
|
+
}
|
|
297
|
+
prevItems = nextItems;
|
|
298
|
+
nextItems = null;
|
|
299
|
+
return;
|
|
317
300
|
}
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
301
|
+
if (start >= newLength) {
|
|
302
|
+
while (start < oldLength) {
|
|
303
|
+
const e = childNodes[offset + --oldLength];
|
|
304
|
+
teardownNode(e);
|
|
305
|
+
remove(e);
|
|
306
|
+
}
|
|
324
307
|
prevItems = nextItems;
|
|
308
|
+
nextItems = null;
|
|
325
309
|
return;
|
|
326
310
|
}
|
|
327
|
-
//
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
311
|
+
// suffix
|
|
312
|
+
for (oldLength--, newLength--; newLength > start &&
|
|
313
|
+
oldLength >= start &&
|
|
314
|
+
nextItems[newLength] === prevItems[oldLength]; oldLength--, newLength--)
|
|
315
|
+
;
|
|
316
|
+
const nextKeys = new Set(nextItems);
|
|
317
|
+
const removalQueue = [];
|
|
318
|
+
for (let i = start; i <= oldLength; i++) {
|
|
319
|
+
if (!nextKeys.has(prevItems[i])) {
|
|
320
|
+
const ch = childNodes[i + offset];
|
|
321
|
+
teardownNode(ch);
|
|
322
|
+
removalQueue.push(ch);
|
|
323
|
+
childNodes[i + offset] = null;
|
|
333
324
|
}
|
|
334
|
-
|
|
325
|
+
}
|
|
326
|
+
for (const e of removalQueue) {
|
|
327
|
+
remove(e);
|
|
328
|
+
}
|
|
329
|
+
if (oldLength - start === removalQueue.length) {
|
|
335
330
|
prevItems = nextItems;
|
|
331
|
+
nextItems = null;
|
|
336
332
|
return;
|
|
337
333
|
}
|
|
338
|
-
|
|
339
|
-
let
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
const oldStart = start;
|
|
348
|
-
const oldEnd = oldLength - end;
|
|
349
|
-
const newEnd = newLength - end;
|
|
350
|
-
// A. Build Map of existing items in the "changed" region
|
|
351
|
-
// key -> { node, index }
|
|
352
|
-
const keyMap = new Map();
|
|
353
|
-
for (let i = oldStart; i < oldEnd; i++) {
|
|
354
|
-
const item = prevItems[i];
|
|
355
|
-
// If duplicate items exist, first one wins or logic needs to be more robust.
|
|
356
|
-
// Assuming unique keys for simplicity or using last-write-wins:
|
|
357
|
-
if (!keyMap.has(item)) {
|
|
358
|
-
keyMap.set(item, rowNodes[i]);
|
|
334
|
+
let keyMap = new Map();
|
|
335
|
+
for (let i = start; i <= oldLength; i++) {
|
|
336
|
+
if (childNodes[i + offset] &&
|
|
337
|
+
(!nextItems[i] ||
|
|
338
|
+
prevItems[i] !== nextItems[i])) {
|
|
339
|
+
keyMap.set(prevItems[i], {
|
|
340
|
+
el: childNodes[i + offset],
|
|
341
|
+
item: prevItems[i],
|
|
342
|
+
});
|
|
359
343
|
}
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
344
|
+
}
|
|
345
|
+
if (newLength === oldLength && keyMap.size > (newLength - start + 1) / 2) {
|
|
346
|
+
const lastOrdered = childNodes[start + offset - 1];
|
|
347
|
+
const set = [];
|
|
348
|
+
for (let i = start; i <= newLength; i++) {
|
|
349
|
+
set.push(keyMap.get(nextItems[i])?.el ?? childNodes[i + offset]);
|
|
363
350
|
}
|
|
351
|
+
lastOrdered.after(...set);
|
|
352
|
+
prevItems = nextItems;
|
|
353
|
+
keyMap = null;
|
|
354
|
+
nextItems = null;
|
|
355
|
+
return;
|
|
364
356
|
}
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
// Copy Suffix
|
|
372
|
-
for (let i = 0; i < end; i++) {
|
|
373
|
-
nextRowNodes[newLength - 1 - i] = rowNodes[oldLength - 1 - i];
|
|
374
|
-
}
|
|
375
|
-
// C. Find anchor for insertions
|
|
376
|
-
// We insert before the first node of the suffix, or the endBookend.
|
|
377
|
-
const anchor = (end > 0) ? rowNodes[oldLength - end] : endBookend;
|
|
378
|
-
// D. Iterate new middle
|
|
379
|
-
for (let i = oldStart; i < newEnd; i++) {
|
|
380
|
-
const newItem = nextItems[i];
|
|
381
|
-
let node;
|
|
382
|
-
if (keyMap.has(newItem)) {
|
|
383
|
-
// Reuse existing
|
|
384
|
-
node = keyMap.get(newItem);
|
|
385
|
-
keyMap.delete(newItem);
|
|
386
|
-
// DOM Move:
|
|
387
|
-
// We always insertBefore the anchor.
|
|
388
|
-
// Since we are iterating forward, "anchor" isn't static.
|
|
389
|
-
// Actually, simply inserting before the *current* anchor works if we
|
|
390
|
-
// process carefully, but standard "place and move cursor" is safer.
|
|
391
|
-
parent.insertBefore(node, anchor);
|
|
357
|
+
while (start <= newLength) {
|
|
358
|
+
const newChd = nextItems[start];
|
|
359
|
+
const oldChd = prevItems[start];
|
|
360
|
+
if (newChd === oldChd) {
|
|
361
|
+
start++;
|
|
362
|
+
continue;
|
|
392
363
|
}
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
364
|
+
if (oldChd === undefined) {
|
|
365
|
+
parent.insertBefore(render(newChd), endBookend);
|
|
366
|
+
start++;
|
|
367
|
+
continue;
|
|
397
368
|
}
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
369
|
+
const mappedOld = keyMap.get(newChd);
|
|
370
|
+
if (mappedOld) {
|
|
371
|
+
const oldDom = childNodeList[start + offset];
|
|
372
|
+
const { el, item } = mappedOld;
|
|
373
|
+
if (oldDom !== el) {
|
|
374
|
+
const tmp = el.nextSibling;
|
|
375
|
+
parent.insertBefore(el, oldDom);
|
|
376
|
+
parent.insertBefore(oldDom, tmp);
|
|
377
|
+
}
|
|
378
|
+
else if (item !== newChd) {
|
|
379
|
+
replaceWith(newChd, el, render);
|
|
380
|
+
}
|
|
381
|
+
keyMap.delete(newChd);
|
|
382
|
+
}
|
|
383
|
+
else if (oldChd !== newChd) {
|
|
384
|
+
parent.insertBefore(render(newChd), childNodeList[start + offset]);
|
|
385
|
+
}
|
|
386
|
+
start++;
|
|
387
|
+
}
|
|
388
|
+
for (const { el } of keyMap.values()) {
|
|
389
|
+
teardownNode(el);
|
|
390
|
+
remove(el);
|
|
391
|
+
}
|
|
392
|
+
keyMap = null;
|
|
414
393
|
prevItems = nextItems;
|
|
394
|
+
nextItems = null;
|
|
415
395
|
});
|
|
416
396
|
return outlet;
|
|
417
397
|
}
|
|
@@ -527,11 +507,14 @@ export function isolatedTerminalList(props) {
|
|
|
527
507
|
}
|
|
528
508
|
if (newLength === oldLength && keyMap.size > (newLength - start + 1) / 2) {
|
|
529
509
|
const lastOrdered = childNodes[start];
|
|
530
|
-
const set = [];
|
|
531
|
-
for (let i = start; i <= newLength; i++) {
|
|
532
|
-
|
|
510
|
+
// const set = [];
|
|
511
|
+
// for (let i = start; i <= newLength; i++) {
|
|
512
|
+
// set.push(keyMap.get(nextItems[i])?.el ?? childNodes[i + 1]);
|
|
513
|
+
// }
|
|
514
|
+
// lastOrdered.after(...set);
|
|
515
|
+
for (let i = newLength; i >= start; i--) {
|
|
516
|
+
lastOrdered.after(keyMap.get(nextItems[i])?.el ?? childNodes[i + 1]);
|
|
533
517
|
}
|
|
534
|
-
lastOrdered.after(...set);
|
|
535
518
|
prevItems = nextItems;
|
|
536
519
|
keyMap = null;
|
|
537
520
|
nextItems = null;
|
package/package.json
CHANGED
package/src/element.ts
CHANGED
|
@@ -13,18 +13,6 @@ export function collectEffect(effectFn) {
|
|
|
13
13
|
collectingHead = effectFn;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
// export function createReactiveTextNode(v) {
|
|
17
|
-
// let n;
|
|
18
|
-
// staticEffect(() => {
|
|
19
|
-
// if (n) {
|
|
20
|
-
// n.nodeValue = v();
|
|
21
|
-
// } else {
|
|
22
|
-
// n = document.createTextNode(v());
|
|
23
|
-
// }
|
|
24
|
-
// });
|
|
25
|
-
// return n;
|
|
26
|
-
// }
|
|
27
|
-
|
|
28
16
|
export function createReactiveTextNode(v) {
|
|
29
17
|
const n = document.createTextNode(v());
|
|
30
18
|
staticEffect(() => {
|
|
@@ -270,199 +258,168 @@ export function list(props, terminal = false) {
|
|
|
270
258
|
const teardownNode = terminal ? shallowTeardown : teardown;
|
|
271
259
|
let parent;
|
|
272
260
|
let outlet = document.createDocumentFragment();
|
|
273
|
-
|
|
274
|
-
// State
|
|
275
|
-
let prevItems = [];
|
|
276
|
-
let rowNodes = []; // The "Shadow Array" - avoids reading DOM
|
|
277
|
-
|
|
261
|
+
let prevItems;
|
|
278
262
|
const startBookend = document.createComment("") as any;
|
|
279
263
|
const endBookend = document.createComment("") as any;
|
|
280
|
-
|
|
281
264
|
startBookend.$frag = outlet;
|
|
282
265
|
startBookend.$end = endBookend;
|
|
283
|
-
|
|
284
266
|
const render = props.render;
|
|
285
267
|
|
|
286
268
|
staticEffect(() => {
|
|
287
269
|
parent = startBookend.parentNode;
|
|
288
|
-
|
|
289
|
-
// 1. Initialization / First Render
|
|
290
270
|
if (!parent) {
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
const newNodes = items.map(render);
|
|
294
|
-
|
|
295
|
-
outlet.append(startBookend, ...newNodes, endBookend);
|
|
296
|
-
|
|
297
|
-
// Save state
|
|
298
|
-
prevItems = items;
|
|
299
|
-
rowNodes = newNodes;
|
|
271
|
+
prevItems = props.items();
|
|
272
|
+
outlet.append(startBookend, ...prevItems.map(render), endBookend);
|
|
300
273
|
return;
|
|
301
274
|
}
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
const newLength = nextItems.length;
|
|
275
|
+
let nextItems = props.items();
|
|
276
|
+
let newLength = nextItems.length;
|
|
305
277
|
let oldLength = prevItems.length;
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
// Bulk remove
|
|
311
|
-
const removalQueue = rowNodes;
|
|
312
|
-
|
|
313
|
-
// Teardown
|
|
314
|
-
for (let i = 0; i < oldLength; i++) {
|
|
315
|
-
teardownNode(removalQueue[i]);
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
// DOM Removal
|
|
319
|
-
// Optimization: If terminal list, we might clear parent.textContent
|
|
320
|
-
// But to be safe with siblings:
|
|
321
|
-
if (removalQueue.length) {
|
|
322
|
-
// If the nodes are contiguous, we could use range delete,
|
|
323
|
-
// but individual remove is safer for mixed node types.
|
|
324
|
-
for (let i = 0; i < removalQueue.length; i++) {
|
|
325
|
-
remove(removalQueue[i]);
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
|
|
329
|
-
rowNodes = [];
|
|
330
|
-
prevItems = [];
|
|
331
|
-
}
|
|
278
|
+
if (!oldLength && newLength) {
|
|
279
|
+
endBookend.before(...nextItems.map(render))
|
|
280
|
+
prevItems = nextItems;
|
|
281
|
+
nextItems = null;
|
|
332
282
|
return;
|
|
333
283
|
}
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
284
|
+
const childNodeList = parent.childNodes as NodeListOf<ChildNode>;
|
|
285
|
+
const childNodes = Array.from(childNodeList);
|
|
286
|
+
const offset = childNodes.indexOf(startBookend) + 1;
|
|
287
|
+
if (!newLength) {
|
|
288
|
+
const removalQueue = [];
|
|
289
|
+
const end = prevItems.length + offset;
|
|
290
|
+
for (let i = offset; i < end; i++) {
|
|
291
|
+
const ch = childNodeList[i];
|
|
292
|
+
teardownNode(ch);
|
|
293
|
+
removalQueue.push(ch);
|
|
294
|
+
}
|
|
295
|
+
for (const ch of removalQueue) {
|
|
296
|
+
remove(ch);
|
|
297
|
+
}
|
|
340
298
|
prevItems = nextItems;
|
|
299
|
+
nextItems = null;
|
|
341
300
|
return;
|
|
342
301
|
}
|
|
343
302
|
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
// Prefix Scan (Cheaper JS Array read vs DOM read)
|
|
349
|
-
while (start < minLen && prevItems[start] === nextItems[start]) {
|
|
350
|
-
start++;
|
|
351
|
-
}
|
|
352
|
-
|
|
353
|
-
// Optimization: Append only
|
|
354
|
-
if (start === oldLength && newLength > oldLength) {
|
|
355
|
-
const newPart = nextItems.slice(start);
|
|
356
|
-
const newNodes = newPart.map(render);
|
|
357
|
-
endBookend.before(...newNodes);
|
|
358
|
-
|
|
359
|
-
rowNodes = rowNodes.concat(newNodes);
|
|
303
|
+
let start = nextItems.findIndex((item, index) => prevItems[index] !== item);
|
|
304
|
+
if (start === oldLength) {
|
|
305
|
+
endBookend.before(...nextItems.slice(start).map(render));
|
|
360
306
|
prevItems = nextItems;
|
|
307
|
+
nextItems = null;
|
|
361
308
|
return;
|
|
362
309
|
}
|
|
363
310
|
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
remove(node);
|
|
311
|
+
if (start < 0) {
|
|
312
|
+
for (let i = nextItems.length; i < oldLength; i++) {
|
|
313
|
+
const e = childNodes[offset + --oldLength];
|
|
314
|
+
teardownNode(e);
|
|
315
|
+
remove(e);
|
|
370
316
|
}
|
|
371
|
-
rowNodes.length = newLength; // JS Array Truncate
|
|
372
317
|
prevItems = nextItems;
|
|
318
|
+
nextItems = null;
|
|
373
319
|
return;
|
|
374
320
|
}
|
|
375
321
|
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
oldLength - 1 - end >= start &&
|
|
382
|
-
nextItems[newLength - 1 - end] === prevItems[oldLength - 1 - end]
|
|
383
|
-
) {
|
|
384
|
-
end++;
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
// 5. Complex Diff (The Middle)
|
|
388
|
-
const oldStart = start;
|
|
389
|
-
const oldEnd = oldLength - end;
|
|
390
|
-
const newEnd = newLength - end;
|
|
391
|
-
|
|
392
|
-
// A. Build Map of existing items in the "changed" region
|
|
393
|
-
// key -> { node, index }
|
|
394
|
-
const keyMap = new Map();
|
|
395
|
-
for (let i = oldStart; i < oldEnd; i++) {
|
|
396
|
-
const item = prevItems[i];
|
|
397
|
-
// If duplicate items exist, first one wins or logic needs to be more robust.
|
|
398
|
-
// Assuming unique keys for simplicity or using last-write-wins:
|
|
399
|
-
if (!keyMap.has(item)) {
|
|
400
|
-
keyMap.set(item, rowNodes[i]);
|
|
401
|
-
} else {
|
|
402
|
-
// Handle duplicates by removing the extra immediately?
|
|
403
|
-
// Or handle collision. For now, assume distinct items or standard behavior.
|
|
322
|
+
if (start >= newLength) {
|
|
323
|
+
while (start < oldLength) {
|
|
324
|
+
const e = childNodes[offset + --oldLength];
|
|
325
|
+
teardownNode(e);
|
|
326
|
+
remove(e);
|
|
404
327
|
}
|
|
328
|
+
prevItems = nextItems;
|
|
329
|
+
nextItems = null;
|
|
330
|
+
return;
|
|
405
331
|
}
|
|
406
332
|
|
|
407
|
-
//
|
|
408
|
-
|
|
333
|
+
// suffix
|
|
334
|
+
for (
|
|
335
|
+
oldLength--, newLength--;
|
|
336
|
+
newLength > start &&
|
|
337
|
+
oldLength >= start &&
|
|
338
|
+
nextItems[newLength] === prevItems[oldLength];
|
|
339
|
+
oldLength--, newLength--
|
|
340
|
+
);
|
|
409
341
|
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
342
|
+
const nextKeys = new Set(nextItems);
|
|
343
|
+
const removalQueue = [];
|
|
344
|
+
for (let i = start; i <= oldLength; i++) {
|
|
345
|
+
if (!nextKeys.has(prevItems[i])) {
|
|
346
|
+
const ch = childNodes[i + offset];
|
|
347
|
+
teardownNode(ch);
|
|
348
|
+
removalQueue.push(ch);
|
|
349
|
+
childNodes[i + offset] = null;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
for (const e of removalQueue) {
|
|
353
|
+
remove(e);
|
|
413
354
|
}
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
355
|
+
if (oldLength - start === removalQueue.length) {
|
|
356
|
+
prevItems = nextItems;
|
|
357
|
+
nextItems = null;
|
|
358
|
+
return;
|
|
417
359
|
}
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
// Reuse existing
|
|
430
|
-
node = keyMap.get(newItem);
|
|
431
|
-
keyMap.delete(newItem);
|
|
432
|
-
|
|
433
|
-
// DOM Move:
|
|
434
|
-
// We always insertBefore the anchor.
|
|
435
|
-
// Since we are iterating forward, "anchor" isn't static.
|
|
436
|
-
// Actually, simply inserting before the *current* anchor works if we
|
|
437
|
-
// process carefully, but standard "place and move cursor" is safer.
|
|
438
|
-
parent.insertBefore(node, anchor);
|
|
439
|
-
} else {
|
|
440
|
-
// Create new
|
|
441
|
-
node = render(newItem);
|
|
442
|
-
parent.insertBefore(node, anchor);
|
|
360
|
+
let keyMap = new Map();
|
|
361
|
+
for (let i = start; i <= oldLength; i++) {
|
|
362
|
+
if (
|
|
363
|
+
childNodes[i + offset] &&
|
|
364
|
+
(!nextItems[i] ||
|
|
365
|
+
prevItems[i] !== nextItems[i])
|
|
366
|
+
) {
|
|
367
|
+
keyMap.set(prevItems[i], {
|
|
368
|
+
el: childNodes[i + offset],
|
|
369
|
+
item: prevItems[i],
|
|
370
|
+
});
|
|
443
371
|
}
|
|
444
|
-
nextRowNodes[i] = node;
|
|
445
372
|
}
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
373
|
+
if (newLength === oldLength && keyMap.size > (newLength - start + 1) / 2) {
|
|
374
|
+
const lastOrdered = childNodes[start + offset - 1];
|
|
375
|
+
const set = [];
|
|
376
|
+
for (let i = start; i <= newLength; i++) {
|
|
377
|
+
set.push(keyMap.get(nextItems[i])?.el ?? childNodes[i + offset]);
|
|
378
|
+
}
|
|
379
|
+
lastOrdered.after(...set);
|
|
380
|
+
prevItems = nextItems;
|
|
381
|
+
keyMap = null;
|
|
382
|
+
nextItems = null;
|
|
383
|
+
return;
|
|
452
384
|
}
|
|
453
385
|
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
386
|
+
while (start <= newLength) {
|
|
387
|
+
const newChd = nextItems[start];
|
|
388
|
+
const oldChd = prevItems[start];
|
|
389
|
+
if (newChd === oldChd) {
|
|
390
|
+
start++;
|
|
391
|
+
continue;
|
|
392
|
+
}
|
|
393
|
+
if (oldChd === undefined) {
|
|
394
|
+
parent.insertBefore(render(newChd), endBookend);
|
|
395
|
+
start++;
|
|
396
|
+
continue;
|
|
397
|
+
}
|
|
398
|
+
const mappedOld = keyMap.get(newChd);
|
|
399
|
+
if (mappedOld) {
|
|
400
|
+
const oldDom = childNodeList[start + offset];
|
|
401
|
+
const { el, item } = mappedOld;
|
|
402
|
+
if (oldDom !== el) {
|
|
403
|
+
const tmp = el.nextSibling;
|
|
404
|
+
parent.insertBefore(el, oldDom);
|
|
405
|
+
parent.insertBefore(oldDom, tmp);
|
|
406
|
+
} else if (item !== newChd) {
|
|
407
|
+
replaceWith(newChd, el, render);
|
|
408
|
+
}
|
|
409
|
+
keyMap.delete(newChd);
|
|
410
|
+
} else if (oldChd !== newChd) {
|
|
411
|
+
parent.insertBefore(render(newChd), childNodeList[start + offset]);
|
|
412
|
+
}
|
|
413
|
+
start++;
|
|
414
|
+
}
|
|
415
|
+
for (const { el } of keyMap.values()) {
|
|
416
|
+
teardownNode(el);
|
|
417
|
+
remove(el);
|
|
418
|
+
}
|
|
419
|
+
keyMap = null;
|
|
463
420
|
prevItems = nextItems;
|
|
421
|
+
nextItems = null;
|
|
464
422
|
});
|
|
465
|
-
|
|
466
423
|
return outlet;
|
|
467
424
|
}
|
|
468
425
|
|
|
@@ -589,11 +546,14 @@ export function isolatedTerminalList(props) {
|
|
|
589
546
|
}
|
|
590
547
|
if (newLength === oldLength && keyMap.size > (newLength - start + 1) / 2) {
|
|
591
548
|
const lastOrdered = childNodes[start];
|
|
592
|
-
const set = [];
|
|
593
|
-
for (let i = start; i <= newLength; i++) {
|
|
594
|
-
|
|
549
|
+
// const set = [];
|
|
550
|
+
// for (let i = start; i <= newLength; i++) {
|
|
551
|
+
// set.push(keyMap.get(nextItems[i])?.el ?? childNodes[i + 1]);
|
|
552
|
+
// }
|
|
553
|
+
// lastOrdered.after(...set);
|
|
554
|
+
for (let i = newLength; i >= start; i--) {
|
|
555
|
+
lastOrdered.after(keyMap.get(nextItems[i])?.el ?? childNodes[i + 1]);
|
|
595
556
|
}
|
|
596
|
-
lastOrdered.after(...set);
|
|
597
557
|
prevItems = nextItems;
|
|
598
558
|
keyMap = null;
|
|
599
559
|
nextItems = null;
|
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.dom.asynciterable.d.ts","./node_modules/typescript/lib/lib.webworker.importscripts.d.ts","./node_modules/typescript/lib/lib.scripthost.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/typescript/lib/lib.es2020.full.d.ts","./src/signals.ts","./src/element.ts","./src/index.ts","./src/router.ts","./node_modules/@types/deep-eql/index.d.ts","./node_modules/assertion-error/index.d.ts","./node_modules/@types/chai/index.d.ts","./node_modules/@types/estree/index.d.ts"],"fileIdsList":[[56,57],[52],[52,53],[53]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"1305d1e76ca44e30fb8b2b8075fa522b83f60c0bcf5d4326a9d2cf79b53724f8","impliedFormat":1},{"version":"2834d3d5f4c0526c760679f15c35791e91f4e51d54d24d00610e35b7ce7a9e01","signature":"a53dff95094f1f7fee261ff1879f5909cd440f02aa68ff6893d017b2343181d1"},{"version":"e9ff34c5bc574b75c34770ddd48174c11fa24127ba94013918be7b71ba5162bb","signature":"4e15936f04a7ab7370e9a897f6d9befa980662283d92660ba0b5cacfab78e5d1"},{"version":"ac16f8022e1d86594d058f84a530164af4b03dcc8bb45ac4a00736fe8aab62e7","signature":"1e325d171d22aa3144736ace94df4b5bf779c6083bc0f9ce684855844f8abcbc"},{"version":"a155e9ebe821846c43103394346639a6a19a7f844be4892bbe4352aa20ee6707","signature":"166554555b2dc6392155b045bb33ce964f7d5f092f50fada34eb4d5828d7740e"},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1}],"root":[[52,55]],"options":{"allowJs":true,"checkJs":false,"composite":true,"esModuleInterop":true,"module":99,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"target":7},"referencedMap":[[58,1],[53,2],[54,3],[55,3],[52,4]],"latestChangedDtsFile":"./dist/element.d.ts","version":"5.9.3"}
|
|
1
|
+
{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.dom.asynciterable.d.ts","./node_modules/typescript/lib/lib.webworker.importscripts.d.ts","./node_modules/typescript/lib/lib.scripthost.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/typescript/lib/lib.es2020.full.d.ts","./src/signals.ts","./src/element.ts","./src/index.ts","./src/router.ts","./node_modules/@types/deep-eql/index.d.ts","./node_modules/assertion-error/index.d.ts","./node_modules/@types/chai/index.d.ts","./node_modules/@types/estree/index.d.ts"],"fileIdsList":[[56,57],[52],[52,53],[53]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"1305d1e76ca44e30fb8b2b8075fa522b83f60c0bcf5d4326a9d2cf79b53724f8","impliedFormat":1},{"version":"2834d3d5f4c0526c760679f15c35791e91f4e51d54d24d00610e35b7ce7a9e01","signature":"a53dff95094f1f7fee261ff1879f5909cd440f02aa68ff6893d017b2343181d1"},{"version":"8b93b0656412692139068362a59281bf5ee64e327a6ba8a9f0ef21cd1f5e7c49","signature":"4e15936f04a7ab7370e9a897f6d9befa980662283d92660ba0b5cacfab78e5d1"},{"version":"ac16f8022e1d86594d058f84a530164af4b03dcc8bb45ac4a00736fe8aab62e7","signature":"1e325d171d22aa3144736ace94df4b5bf779c6083bc0f9ce684855844f8abcbc"},{"version":"a155e9ebe821846c43103394346639a6a19a7f844be4892bbe4352aa20ee6707","signature":"166554555b2dc6392155b045bb33ce964f7d5f092f50fada34eb4d5828d7740e"},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1}],"root":[[52,55]],"options":{"allowJs":true,"checkJs":false,"composite":true,"esModuleInterop":true,"module":99,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"target":7},"referencedMap":[[58,1],[53,2],[54,3],[55,3],[52,4]],"latestChangedDtsFile":"./dist/element.d.ts","version":"5.9.3"}
|