@excalidraw/element 0.18.0-b16b6f8fd → 0.18.0-c65b684e9
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/dev/index.js +44 -24
- package/dist/dev/index.js.map +2 -2
- package/dist/prod/index.js +11 -11
- package/dist/types/element/src/delta.d.ts +11 -1
- package/package.json +3 -3
package/dist/dev/index.js
CHANGED
|
@@ -14638,6 +14638,15 @@ var Delta = class _Delta {
|
|
|
14638
14638
|
static isEmpty(delta) {
|
|
14639
14639
|
return !Object.keys(delta.deleted).length && !Object.keys(delta.inserted).length;
|
|
14640
14640
|
}
|
|
14641
|
+
/**
|
|
14642
|
+
* Merges two deltas into a new one.
|
|
14643
|
+
*/
|
|
14644
|
+
static merge(delta1, delta2) {
|
|
14645
|
+
return _Delta.create(
|
|
14646
|
+
{ ...delta1.deleted, ...delta2.deleted },
|
|
14647
|
+
{ ...delta1.inserted, ...delta2.inserted }
|
|
14648
|
+
);
|
|
14649
|
+
}
|
|
14641
14650
|
/**
|
|
14642
14651
|
* Merges deleted and inserted object partials.
|
|
14643
14652
|
*/
|
|
@@ -14883,6 +14892,10 @@ var AppStateDelta = class _AppStateDelta {
|
|
|
14883
14892
|
const inversedDelta = Delta.create(this.delta.inserted, this.delta.deleted);
|
|
14884
14893
|
return new _AppStateDelta(inversedDelta);
|
|
14885
14894
|
}
|
|
14895
|
+
squash(delta) {
|
|
14896
|
+
this.delta = Delta.merge(this.delta, delta.delta);
|
|
14897
|
+
return this;
|
|
14898
|
+
}
|
|
14886
14899
|
applyTo(appState, nextElements) {
|
|
14887
14900
|
try {
|
|
14888
14901
|
const {
|
|
@@ -15476,6 +15489,34 @@ var ElementsDelta = class _ElementsDelta {
|
|
|
15476
15489
|
return [nextElements, flags.containsVisibleDifference];
|
|
15477
15490
|
}
|
|
15478
15491
|
}
|
|
15492
|
+
squash(delta) {
|
|
15493
|
+
const { added, removed, updated } = delta;
|
|
15494
|
+
for (const [id, nextDelta] of Object.entries(added)) {
|
|
15495
|
+
const prevDelta = this.added[id];
|
|
15496
|
+
if (!prevDelta) {
|
|
15497
|
+
this.added[id] = nextDelta;
|
|
15498
|
+
} else {
|
|
15499
|
+
this.added[id] = Delta.merge(prevDelta, nextDelta);
|
|
15500
|
+
}
|
|
15501
|
+
}
|
|
15502
|
+
for (const [id, nextDelta] of Object.entries(removed)) {
|
|
15503
|
+
const prevDelta = this.removed[id];
|
|
15504
|
+
if (!prevDelta) {
|
|
15505
|
+
this.removed[id] = nextDelta;
|
|
15506
|
+
} else {
|
|
15507
|
+
this.removed[id] = Delta.merge(prevDelta, nextDelta);
|
|
15508
|
+
}
|
|
15509
|
+
}
|
|
15510
|
+
for (const [id, nextDelta] of Object.entries(updated)) {
|
|
15511
|
+
const prevDelta = this.updated[id];
|
|
15512
|
+
if (!prevDelta) {
|
|
15513
|
+
this.updated[id] = nextDelta;
|
|
15514
|
+
} else {
|
|
15515
|
+
this.updated[id] = Delta.merge(prevDelta, nextDelta);
|
|
15516
|
+
}
|
|
15517
|
+
}
|
|
15518
|
+
return this;
|
|
15519
|
+
}
|
|
15479
15520
|
static createApplier = (nextElements, snapshot, options, flags) => (deltas) => {
|
|
15480
15521
|
const getElement = _ElementsDelta.createGetter(
|
|
15481
15522
|
nextElements,
|
|
@@ -15619,31 +15660,10 @@ var ElementsDelta = class _ElementsDelta {
|
|
|
15619
15660
|
const prevAffectedElements = new Map(
|
|
15620
15661
|
Array.from(prevElements).filter(([id]) => nextAffectedElements.has(id))
|
|
15621
15662
|
);
|
|
15622
|
-
|
|
15623
|
-
|
|
15624
|
-
nextAffectedElements
|
|
15663
|
+
this.squash(
|
|
15664
|
+
// technically we could do better here if perf. would become an issue
|
|
15665
|
+
_ElementsDelta.calculate(prevAffectedElements, nextAffectedElements)
|
|
15625
15666
|
);
|
|
15626
|
-
for (const [id, delta] of Object.entries(added)) {
|
|
15627
|
-
this.added[id] = {
|
|
15628
|
-
// merge with the existing delta, if exists
|
|
15629
|
-
...this.added[id],
|
|
15630
|
-
...delta
|
|
15631
|
-
};
|
|
15632
|
-
}
|
|
15633
|
-
for (const [id, delta] of Object.entries(removed)) {
|
|
15634
|
-
this.removed[id] = {
|
|
15635
|
-
// merge with the existing delta, if exists
|
|
15636
|
-
...this.removed[id],
|
|
15637
|
-
...delta
|
|
15638
|
-
};
|
|
15639
|
-
}
|
|
15640
|
-
for (const [id, delta] of Object.entries(updated)) {
|
|
15641
|
-
this.updated[id] = {
|
|
15642
|
-
// merge with the existing delta, if exists
|
|
15643
|
-
...this.updated[id],
|
|
15644
|
-
...delta
|
|
15645
|
-
};
|
|
15646
|
-
}
|
|
15647
15667
|
return nextAffectedElements;
|
|
15648
15668
|
}
|
|
15649
15669
|
/**
|