@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 +102 -150
- package/package.json +1 -1
- package/src/element.ts +127 -160
- package/tsconfig.tsbuildinfo +1 -1
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(
|
|
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
|
-
|
|
331
|
-
|
|
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
|
-
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
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
|
-
|
|
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
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
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
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
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
|
-
|
|
456
|
-
if (
|
|
457
|
-
|
|
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
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
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
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
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
|
-
//
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
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
|
-
|
|
509
|
-
|
|
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
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
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
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
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
|
-
|
|
529
|
-
|
|
530
|
-
|
|
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
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
parent.insertBefore(
|
|
550
|
-
|
|
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
|
|
568
|
-
|
|
519
|
+
else {
|
|
520
|
+
const node = render(newItem);
|
|
521
|
+
parent.insertBefore(node, anchor);
|
|
522
|
+
nextRowNodes[i] = node;
|
|
569
523
|
}
|
|
570
|
-
start++;
|
|
571
524
|
}
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
525
|
+
// C. Cleanup Unused
|
|
526
|
+
for (const node of keyMap.values()) {
|
|
527
|
+
shallowTeardown(node);
|
|
528
|
+
node.remove();
|
|
575
529
|
}
|
|
576
|
-
|
|
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
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(
|
|
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
|
-
|
|
368
|
-
|
|
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
|
-
|
|
401
|
-
} else {
|
|
402
|
-
|
|
403
|
-
|
|
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
|
-
|
|
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
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
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
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
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
|
-
|
|
509
|
-
if (
|
|
510
|
-
|
|
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
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
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
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
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
|
-
//
|
|
542
|
-
|
|
543
|
-
oldLength
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
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
|
-
|
|
569
|
-
|
|
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
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
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
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
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
|
-
|
|
591
|
-
|
|
592
|
-
|
|
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
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
if (
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
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
|
-
|
|
634
|
-
|
|
635
|
-
|
|
599
|
+
|
|
600
|
+
// C. Cleanup Unused
|
|
601
|
+
for (const node of keyMap.values()) {
|
|
602
|
+
shallowTeardown(node);
|
|
603
|
+
node.remove();
|
|
636
604
|
}
|
|
637
|
-
|
|
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
|
+
}
|
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":"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"}
|