@thyn/core 0.0.229 → 0.0.232

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 CHANGED
@@ -279,21 +279,9 @@ export function list(props, terminal = false) {
279
279
  // 2. Fast Path: Clear All
280
280
  if (newLength === 0) {
281
281
  if (oldLength !== 0) {
282
- // Bulk remove
283
- const removalQueue = rowNodes;
284
- // Teardown
285
282
  for (let i = 0; i < oldLength; i++) {
286
- teardownNode(removalQueue[i]);
287
- }
288
- // DOM Removal
289
- // Optimization: If terminal list, we might clear parent.textContent
290
- // But to be safe with siblings:
291
- if (removalQueue.length) {
292
- // If the nodes are contiguous, we could use range delete,
293
- // but individual remove is safer for mixed node types.
294
- for (let i = 0; i < removalQueue.length; i++) {
295
- remove(removalQueue[i]);
296
- }
283
+ teardownNode(rowNodes[i]);
284
+ remove(rowNodes[i]);
297
285
  }
298
286
  rowNodes = [];
299
287
  prevItems = [];
@@ -327,9 +315,8 @@ export function list(props, terminal = false) {
327
315
  // Optimization: Truncate only
328
316
  if (start === newLength && oldLength > newLength) {
329
317
  for (let i = start; i < oldLength; i++) {
330
- const node = rowNodes[i];
331
- teardownNode(node);
332
- remove(node);
318
+ teardownNode(rowNodes[i]);
319
+ remove(rowNodes[i]);
333
320
  }
334
321
  rowNodes.length = newLength; // JS Array Truncate
335
322
  prevItems = nextItems;
@@ -354,13 +341,12 @@ export function list(props, terminal = false) {
354
341
  const item = prevItems[i];
355
342
  // If duplicate items exist, first one wins or logic needs to be more robust.
356
343
  // Assuming unique keys for simplicity or using last-write-wins:
357
- if (!keyMap.has(item)) {
358
- keyMap.set(item, rowNodes[i]);
359
- }
360
- else {
361
- // Handle duplicates by removing the extra immediately?
362
- // Or handle collision. For now, assume distinct items or standard behavior.
363
- }
344
+ // if (!keyMap.has(item)) {
345
+ keyMap.set(item, rowNodes[i]);
346
+ // } else {
347
+ // Handle duplicates by removing the extra immediately?
348
+ // Or handle collision. For now, assume distinct items or standard behavior.
349
+ // }
364
350
  }
365
351
  // B. Setup for new node list construction
366
352
  const nextRowNodes = new Array(newLength);
@@ -418,7 +404,9 @@ export function list(props, terminal = false) {
418
404
  export function isolatedTerminalList(props) {
419
405
  let parent;
420
406
  let outlet = document.createDocumentFragment();
421
- let prevItems;
407
+ // State
408
+ let prevItems = [];
409
+ let rowNodes = []; // The "Shadow Array"
422
410
  const startBookend = document.createComment("");
423
411
  const endBookend = document.createComment("");
424
412
  startBookend.$frag = outlet;
@@ -426,157 +414,121 @@ export function isolatedTerminalList(props) {
426
414
  const render = props.render;
427
415
  staticEffect(() => {
428
416
  parent = startBookend.parentNode;
417
+ // 1. Initialization
429
418
  if (!parent) {
430
- prevItems = props.items();
431
- outlet.append(startBookend, ...prevItems.map(render), endBookend);
432
- return;
433
- }
434
- let nextItems = props.items();
435
- let newLength = nextItems.length;
436
- let oldLength = prevItems.length;
437
- if (!oldLength && newLength) {
438
- endBookend.before(...nextItems.map(render));
439
- prevItems = nextItems;
440
- nextItems = null;
419
+ const items = props.items();
420
+ const newNodes = items.map(render);
421
+ outlet.append(startBookend, ...newNodes, endBookend);
422
+ prevItems = items;
423
+ rowNodes = newNodes;
441
424
  return;
442
425
  }
443
- const childNodeList = parent.childNodes;
444
- if (!newLength) {
445
- const end = childNodeList.length - 1;
446
- for (let i = 1; i < end; i++) {
447
- shallowTeardown(childNodeList[i]);
426
+ const nextItems = props.items();
427
+ const newLength = nextItems.length;
428
+ const oldLength = prevItems.length;
429
+ // 2. Fast Path: Clear All
430
+ if (newLength === 0) {
431
+ if (oldLength !== 0) {
432
+ // Optimization: If the parent only contains our list (between bookends),
433
+ // we might want to use textContent = "". However, to be safe with
434
+ // bookends logic, we remove specifically known nodes.
435
+ for (let i = 0; i < oldLength; i++) {
436
+ const node = rowNodes[i];
437
+ shallowTeardown(node);
438
+ // node.remove();
439
+ }
440
+ parent.textContent = "";
441
+ parent.append(startBookend, endBookend);
442
+ rowNodes = [];
443
+ prevItems = [];
448
444
  }
449
- parent.textContent = "";
450
- parent.append(startBookend, endBookend);
451
- prevItems = nextItems;
452
- nextItems = null;
453
445
  return;
454
446
  }
455
- let start = nextItems.findIndex((item, index) => prevItems[index] !== item);
456
- if (start === oldLength) {
457
- endBookend.before(...nextItems.slice(start).map(render));
447
+ // 3. Fast Path: Create All
448
+ if (oldLength === 0) {
449
+ const newNodes = nextItems.map(render);
450
+ endBookend.before(...newNodes);
451
+ rowNodes = newNodes;
458
452
  prevItems = nextItems;
459
- nextItems = null;
460
453
  return;
461
454
  }
462
- let childNodes = Array.from(childNodeList);
463
- if (start < 0) {
464
- for (let i = nextItems.length; i < oldLength; i++) {
465
- const e = childNodes[1 + --oldLength];
466
- shallowTeardown(e);
467
- e.remove();
468
- }
469
- prevItems = nextItems;
470
- nextItems = null;
471
- childNodes = null;
472
- return;
455
+ // 4. Reconciliation
456
+ let start = 0;
457
+ const minLen = Math.min(oldLength, newLength);
458
+ // Prefix Scan
459
+ while (start < minLen && prevItems[start] === nextItems[start]) {
460
+ start++;
473
461
  }
474
- if (start >= newLength) {
475
- while (start < oldLength) {
476
- const e = childNodes[1 + --oldLength];
477
- shallowTeardown(e);
478
- e.remove();
479
- }
462
+ // Optimization: Append Suffix
463
+ if (start === oldLength && newLength > oldLength) {
464
+ const newPart = nextItems.slice(start);
465
+ const newNodes = newPart.map(render);
466
+ endBookend.before(...newNodes);
467
+ rowNodes = rowNodes.concat(newNodes);
480
468
  prevItems = nextItems;
481
- nextItems = null;
482
- childNodes = null;
483
469
  return;
484
470
  }
485
- // suffix
486
- for (oldLength--, newLength--; newLength > start &&
487
- oldLength >= start &&
488
- nextItems[newLength] === prevItems[oldLength]; oldLength--, newLength--)
489
- ;
490
- const nextKeys = new Set(nextItems);
491
- const removalQueue = [];
492
- for (let i = start; i <= oldLength; i++) {
493
- if (!nextKeys.has(prevItems[i])) {
494
- const ch = childNodes[i + 1];
495
- shallowTeardown(ch);
496
- removalQueue.push(ch);
497
- childNodes[i + 1] = null;
471
+ // Optimization: Truncate Suffix
472
+ if (start === newLength && oldLength > newLength) {
473
+ for (let i = start; i < oldLength; i++) {
474
+ const node = rowNodes[i];
475
+ shallowTeardown(node);
476
+ node.remove();
498
477
  }
499
- }
500
- if (removalQueue.length === prevItems.length) {
501
- parent.textContent = "";
502
- parent.append(startBookend, ...nextItems.map(render), endBookend);
478
+ rowNodes.length = newLength;
503
479
  prevItems = nextItems;
504
- nextItems = null;
505
- childNodes = null;
506
480
  return;
507
481
  }
508
- for (const e of removalQueue) {
509
- e.remove();
482
+ // Suffix Scan
483
+ let end = 0;
484
+ while (newLength - 1 - end >= start &&
485
+ oldLength - 1 - end >= start &&
486
+ nextItems[newLength - 1 - end] === prevItems[oldLength - 1 - end]) {
487
+ end++;
510
488
  }
511
- if (oldLength - start === removalQueue.length) {
512
- prevItems = nextItems;
513
- nextItems = null;
514
- childNodes = null;
515
- return;
489
+ // 5. Complex Diff (The Middle)
490
+ const oldStart = start;
491
+ const oldEnd = oldLength - end;
492
+ const newEnd = newLength - end;
493
+ // A. Build Map
494
+ const keyMap = new Map();
495
+ for (let i = oldStart; i < oldEnd; i++) {
496
+ const item = prevItems[i];
497
+ keyMap.set(item, rowNodes[i]);
516
498
  }
517
- let keyMap = new Map();
518
- for (let i = start; i <= oldLength; i++) {
519
- if (childNodes[i + 1] &&
520
- (!nextItems[i] ||
521
- prevItems[i] !== nextItems[i])) {
522
- keyMap.set(prevItems[i], {
523
- el: childNodes[i + 1],
524
- item: prevItems[i],
525
- });
526
- }
499
+ const nextRowNodes = new Array(newLength);
500
+ // Copy Prefix
501
+ for (let i = 0; i < start; i++) {
502
+ nextRowNodes[i] = rowNodes[i];
527
503
  }
528
- if (newLength === oldLength && keyMap.size > (newLength - start + 1) / 2) {
529
- const lastOrdered = childNodes[start];
530
- const set = [];
531
- for (let i = start; i <= newLength; i++) {
532
- set.push(keyMap.get(nextItems[i])?.el ?? childNodes[i + 1]);
533
- }
534
- lastOrdered.after(...set);
535
- prevItems = nextItems;
536
- keyMap = null;
537
- nextItems = null;
538
- childNodes = null;
539
- return;
504
+ // Copy Suffix
505
+ for (let i = 0; i < end; i++) {
506
+ nextRowNodes[newLength - 1 - i] = rowNodes[oldLength - 1 - i];
540
507
  }
541
- while (start <= newLength) {
542
- const newChd = nextItems[start];
543
- const oldChd = prevItems[start];
544
- if (newChd === oldChd) {
545
- start++;
546
- continue;
547
- }
548
- if (oldChd === undefined) {
549
- parent.insertBefore(render(newChd), endBookend);
550
- start++;
551
- continue;
552
- }
553
- const mappedOld = keyMap.get(newChd);
554
- if (mappedOld) {
555
- const oldDom = childNodeList[start + 1];
556
- const { el, item } = mappedOld;
557
- if (oldDom !== el) {
558
- const tmp = el.nextSibling;
559
- parent.insertBefore(el, oldDom);
560
- parent.insertBefore(oldDom, tmp);
561
- }
562
- else if (item !== newChd) {
563
- replaceWith(newChd, el, render);
564
- }
565
- keyMap.delete(newChd);
508
+ // Determine Anchor (The first node of the suffix, or the end bookend)
509
+ const anchor = (end > 0) ? rowNodes[oldLength - end] : endBookend;
510
+ // B. Process Middle
511
+ for (let i = oldStart; i < newEnd; i++) {
512
+ const newItem = nextItems[i];
513
+ if (keyMap.has(newItem)) {
514
+ const node = keyMap.get(newItem);
515
+ keyMap.delete(newItem);
516
+ parent.insertBefore(node, anchor);
517
+ nextRowNodes[i] = node;
566
518
  }
567
- else if (oldChd !== newChd) {
568
- parent.insertBefore(render(newChd), childNodeList[start + 1]);
519
+ else {
520
+ const node = render(newItem);
521
+ parent.insertBefore(node, anchor);
522
+ nextRowNodes[i] = node;
569
523
  }
570
- start++;
571
524
  }
572
- for (const { el } of keyMap.values()) {
573
- shallowTeardown(el);
574
- el.remove();
525
+ // C. Cleanup Unused
526
+ for (const node of keyMap.values()) {
527
+ shallowTeardown(node);
528
+ node.remove();
575
529
  }
576
- keyMap = null;
530
+ rowNodes = nextRowNodes;
577
531
  prevItems = nextItems;
578
- nextItems = null;
579
- childNodes = null;
580
532
  });
581
533
  return outlet;
582
534
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thyn/core",
3
- "version": "0.0.229",
3
+ "version": "0.0.232",
4
4
  "scripts": {
5
5
  "build": "tsc",
6
6
  "pub": "tsc && npm version patch -f && npm -f publish --access=public",
package/src/element.ts CHANGED
@@ -307,25 +307,10 @@ export function list(props, terminal = false) {
307
307
  // 2. Fast Path: Clear All
308
308
  if (newLength === 0) {
309
309
  if (oldLength !== 0) {
310
- // Bulk remove
311
- const removalQueue = rowNodes;
312
-
313
- // Teardown
314
310
  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
- }
311
+ teardownNode(rowNodes[i]);
312
+ remove(rowNodes[i]);
327
313
  }
328
-
329
314
  rowNodes = [];
330
315
  prevItems = [];
331
316
  }
@@ -364,9 +349,8 @@ export function list(props, terminal = false) {
364
349
  // Optimization: Truncate only
365
350
  if (start === newLength && oldLength > newLength) {
366
351
  for (let i = start; i < oldLength; i++) {
367
- const node = rowNodes[i];
368
- teardownNode(node);
369
- remove(node);
352
+ teardownNode(rowNodes[i]);
353
+ remove(rowNodes[i]);
370
354
  }
371
355
  rowNodes.length = newLength; // JS Array Truncate
372
356
  prevItems = nextItems;
@@ -396,12 +380,12 @@ export function list(props, terminal = false) {
396
380
  const item = prevItems[i];
397
381
  // If duplicate items exist, first one wins or logic needs to be more robust.
398
382
  // 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.
404
- }
383
+ // if (!keyMap.has(item)) {
384
+ keyMap.set(item, rowNodes[i]);
385
+ // } else {
386
+ // Handle duplicates by removing the extra immediately?
387
+ // Or handle collision. For now, assume distinct items or standard behavior.
388
+ // }
405
389
  }
406
390
 
407
391
  // B. Setup for new node list construction
@@ -465,180 +449,163 @@ export function list(props, terminal = false) {
465
449
 
466
450
  return outlet;
467
451
  }
468
-
469
452
  export function isolatedTerminalList(props) {
470
453
  let parent;
471
454
  let outlet = document.createDocumentFragment();
472
- let prevItems;
455
+
456
+ // State
457
+ let prevItems = [];
458
+ let rowNodes = []; // The "Shadow Array"
459
+
473
460
  const startBookend = document.createComment("") as any;
474
461
  const endBookend = document.createComment("") as any;
462
+
475
463
  startBookend.$frag = outlet;
476
464
  startBookend.$end = endBookend;
465
+
477
466
  const render = props.render;
478
467
 
479
468
  staticEffect(() => {
480
469
  parent = startBookend.parentNode;
470
+
471
+ // 1. Initialization
481
472
  if (!parent) {
482
- prevItems = props.items();
483
- outlet.append(startBookend, ...prevItems.map(render), endBookend);
484
- return;
485
- }
486
- let nextItems = props.items();
487
- let newLength = nextItems.length;
488
- let oldLength = prevItems.length;
489
- if (!oldLength && newLength) {
490
- endBookend.before(...nextItems.map(render))
491
- prevItems = nextItems;
492
- nextItems = null;
473
+ const items = props.items();
474
+ const newNodes = items.map(render);
475
+
476
+ outlet.append(startBookend, ...newNodes, endBookend);
477
+
478
+ prevItems = items;
479
+ rowNodes = newNodes;
493
480
  return;
494
481
  }
495
- const childNodeList = parent.childNodes as NodeListOf<ChildNode>;
496
- if (!newLength) {
497
- const end = childNodeList.length - 1;
498
- for (let i = 1; i < end; i++) {
499
- shallowTeardown(childNodeList[i]);
482
+
483
+ const nextItems = props.items();
484
+ const newLength = nextItems.length;
485
+ const oldLength = prevItems.length;
486
+
487
+ // 2. Fast Path: Clear All
488
+ if (newLength === 0) {
489
+ if (oldLength !== 0) {
490
+ // Optimization: If the parent only contains our list (between bookends),
491
+ // we might want to use textContent = "". However, to be safe with
492
+ // bookends logic, we remove specifically known nodes.
493
+ for (let i = 0; i < oldLength; i++) {
494
+ const node = rowNodes[i];
495
+ shallowTeardown(node);
496
+ // node.remove();
497
+ }
498
+ parent.textContent = "";
499
+ parent.append(startBookend, endBookend);
500
+ rowNodes = [];
501
+ prevItems = [];
500
502
  }
501
- parent.textContent = "";
502
- parent.append(startBookend, endBookend);
503
- prevItems = nextItems;
504
- nextItems = null;
505
503
  return;
506
504
  }
507
505
 
508
- let start = nextItems.findIndex((item, index) => prevItems[index] !== item);
509
- if (start === oldLength) {
510
- endBookend.before(...nextItems.slice(start).map(render));
506
+ // 3. Fast Path: Create All
507
+ if (oldLength === 0) {
508
+ const newNodes = nextItems.map(render);
509
+ endBookend.before(...newNodes);
510
+
511
+ rowNodes = newNodes;
511
512
  prevItems = nextItems;
512
- nextItems = null;
513
513
  return;
514
514
  }
515
515
 
516
- let childNodes = Array.from(childNodeList);
517
- if (start < 0) {
518
- for (let i = nextItems.length; i < oldLength; i++) {
519
- const e = childNodes[1 + --oldLength];
520
- shallowTeardown(e);
521
- e.remove();
522
- }
523
- prevItems = nextItems;
524
- nextItems = null;
525
- childNodes = null;
526
- return;
516
+ // 4. Reconciliation
517
+ let start = 0;
518
+ const minLen = Math.min(oldLength, newLength);
519
+
520
+ // Prefix Scan
521
+ while (start < minLen && prevItems[start] === nextItems[start]) {
522
+ start++;
527
523
  }
528
524
 
529
- if (start >= newLength) {
530
- while (start < oldLength) {
531
- const e = childNodes[1 + --oldLength];
532
- shallowTeardown(e);
533
- e.remove();
534
- }
525
+ // Optimization: Append Suffix
526
+ if (start === oldLength && newLength > oldLength) {
527
+ const newPart = nextItems.slice(start);
528
+ const newNodes = newPart.map(render);
529
+ endBookend.before(...newNodes);
530
+
531
+ rowNodes = rowNodes.concat(newNodes);
535
532
  prevItems = nextItems;
536
- nextItems = null;
537
- childNodes = null;
538
533
  return;
539
534
  }
540
535
 
541
- // suffix
542
- for (
543
- oldLength--, newLength--;
544
- newLength > start &&
545
- oldLength >= start &&
546
- nextItems[newLength] === prevItems[oldLength];
547
- oldLength--, newLength--
548
- );
549
-
550
- const nextKeys = new Set(nextItems);
551
- const removalQueue = [];
552
- for (let i = start; i <= oldLength; i++) {
553
- if (!nextKeys.has(prevItems[i])) {
554
- const ch = childNodes[i + 1];
555
- shallowTeardown(ch);
556
- removalQueue.push(ch);
557
- childNodes[i + 1] = null;
536
+ // Optimization: Truncate Suffix
537
+ if (start === newLength && oldLength > newLength) {
538
+ for (let i = start; i < oldLength; i++) {
539
+ const node = rowNodes[i];
540
+ shallowTeardown(node);
541
+ node.remove();
558
542
  }
559
- }
560
- if (removalQueue.length === prevItems.length) {
561
- parent.textContent = "";
562
- parent.append(startBookend, ...nextItems.map(render), endBookend);
543
+ rowNodes.length = newLength;
563
544
  prevItems = nextItems;
564
- nextItems = null;
565
- childNodes = null;
566
545
  return;
567
546
  }
568
- for (const e of removalQueue) {
569
- e.remove();
547
+
548
+ // Suffix Scan
549
+ let end = 0;
550
+ while (
551
+ newLength - 1 - end >= start &&
552
+ oldLength - 1 - end >= start &&
553
+ nextItems[newLength - 1 - end] === prevItems[oldLength - 1 - end]
554
+ ) {
555
+ end++;
570
556
  }
571
- if (oldLength - start === removalQueue.length) {
572
- prevItems = nextItems;
573
- nextItems = null;
574
- childNodes = null;
575
- return;
557
+
558
+ // 5. Complex Diff (The Middle)
559
+ const oldStart = start;
560
+ const oldEnd = oldLength - end;
561
+ const newEnd = newLength - end;
562
+
563
+ // A. Build Map
564
+ const keyMap = new Map();
565
+ for (let i = oldStart; i < oldEnd; i++) {
566
+ const item = prevItems[i];
567
+ keyMap.set(item, rowNodes[i]);
576
568
  }
577
- let keyMap = new Map();
578
- for (let i = start; i <= oldLength; i++) {
579
- if (
580
- childNodes[i + 1] &&
581
- (!nextItems[i] ||
582
- prevItems[i] !== nextItems[i])
583
- ) {
584
- keyMap.set(prevItems[i], {
585
- el: childNodes[i + 1],
586
- item: prevItems[i],
587
- });
588
- }
569
+
570
+ const nextRowNodes = new Array(newLength);
571
+
572
+ // Copy Prefix
573
+ for (let i = 0; i < start; i++) {
574
+ nextRowNodes[i] = rowNodes[i];
589
575
  }
590
- if (newLength === oldLength && keyMap.size > (newLength - start + 1) / 2) {
591
- const lastOrdered = childNodes[start];
592
- const set = [];
593
- for (let i = start; i <= newLength; i++) {
594
- set.push(keyMap.get(nextItems[i])?.el ?? childNodes[i + 1]);
595
- }
596
- lastOrdered.after(...set);
597
- prevItems = nextItems;
598
- keyMap = null;
599
- nextItems = null;
600
- childNodes = null;
601
- return;
576
+ // Copy Suffix
577
+ for (let i = 0; i < end; i++) {
578
+ nextRowNodes[newLength - 1 - i] = rowNodes[oldLength - 1 - i];
602
579
  }
603
580
 
604
- while (start <= newLength) {
605
- const newChd = nextItems[start];
606
- const oldChd = prevItems[start];
607
- if (newChd === oldChd) {
608
- start++;
609
- continue;
610
- }
611
- if (oldChd === undefined) {
612
- parent.insertBefore(render(newChd), endBookend);
613
- start++;
614
- continue;
615
- }
616
- const mappedOld = keyMap.get(newChd);
617
- if (mappedOld) {
618
- const oldDom = childNodeList[start + 1];
619
- const { el, item } = mappedOld;
620
- if (oldDom !== el) {
621
- const tmp = el.nextSibling;
622
- parent.insertBefore(el, oldDom);
623
- parent.insertBefore(oldDom, tmp);
624
- } else if (item !== newChd) {
625
- replaceWith(newChd, el, render);
626
- }
627
- keyMap.delete(newChd);
628
- } else if (oldChd !== newChd) {
629
- parent.insertBefore(render(newChd), childNodeList[start + 1]);
581
+ // Determine Anchor (The first node of the suffix, or the end bookend)
582
+ const anchor = (end > 0) ? rowNodes[oldLength - end] : endBookend;
583
+
584
+ // B. Process Middle
585
+ for (let i = oldStart; i < newEnd; i++) {
586
+ const newItem = nextItems[i];
587
+
588
+ if (keyMap.has(newItem)) {
589
+ const node = keyMap.get(newItem);
590
+ keyMap.delete(newItem);
591
+ parent.insertBefore(node, anchor);
592
+ nextRowNodes[i] = node;
593
+ } else {
594
+ const node = render(newItem);
595
+ parent.insertBefore(node, anchor);
596
+ nextRowNodes[i] = node;
630
597
  }
631
- start++;
632
598
  }
633
- for (const { el } of keyMap.values()) {
634
- shallowTeardown(el);
635
- el.remove();
599
+
600
+ // C. Cleanup Unused
601
+ for (const node of keyMap.values()) {
602
+ shallowTeardown(node);
603
+ node.remove();
636
604
  }
637
- keyMap = null;
605
+
606
+ rowNodes = nextRowNodes;
638
607
  prevItems = nextItems;
639
- nextItems = null;
640
- childNodes = null;
641
608
  });
642
- return outlet;
643
- }
644
609
 
610
+ return outlet;
611
+ }
@@ -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":"b33d036c5c7a309dcef7c008214bd6dc62bb9379987f5b3f7f3d407e38739836","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"}