61 lines
3.3 KiB
Diff
61 lines
3.3 KiB
Diff
diff --git a/node_modules/y-excalidraw/dist/y-excalidraw.cjs b/node_modules/y-excalidraw/dist/y-excalidraw.cjs
|
|
index 169b24a..7e8d58c 100644
|
|
--- a/node_modules/y-excalidraw/dist/y-excalidraw.cjs
|
|
+++ b/node_modules/y-excalidraw/dist/y-excalidraw.cjs
|
|
@@ -152,7 +152,12 @@ var getDeltaOperationsForElements = (lastKnownElements, newElements, bulkify = t
|
|
leftSortIndex = opsTracker.idMap[opsTracker.elementIds[toIndex - 1]]?.pos || null;
|
|
rightSortIndex = opsTracker.idMap[opsTracker.elementIds[toIndex]]?.pos || null;
|
|
}
|
|
- const newSortIndex = (0, import_fractional_indexing.generateKeyBetween)(leftSortIndex, rightSortIndex);
|
|
+ let newSortIndex;
|
|
+ try {
|
|
+ newSortIndex = (0, import_fractional_indexing.generateKeyBetween)(leftSortIndex, rightSortIndex);
|
|
+ } catch (e) {
|
|
+ newSortIndex = (0, import_fractional_indexing.generateKeyBetween)(leftSortIndex, null);
|
|
+ }
|
|
opsTracker.elementIds = moveArrayItem(opsTracker.elementIds, fromIndex, toIndex, true);
|
|
opsTracker.idMap[id].pos = newSortIndex;
|
|
_updateIdIndexLookup();
|
|
diff --git a/node_modules/y-excalidraw/dist/y-excalidraw.js b/node_modules/y-excalidraw/dist/y-excalidraw.js
|
|
index 84ad536..8fb25b3 100644
|
|
--- a/node_modules/y-excalidraw/dist/y-excalidraw.js
|
|
+++ b/node_modules/y-excalidraw/dist/y-excalidraw.js
|
|
@@ -118,7 +118,13 @@ var getDeltaOperationsForElements = (lastKnownElements, newElements, bulkify = t
|
|
leftSortIndex = opsTracker.idMap[opsTracker.elementIds[toIndex - 1]]?.pos || null;
|
|
rightSortIndex = opsTracker.idMap[opsTracker.elementIds[toIndex]]?.pos || null;
|
|
}
|
|
- const newSortIndex = generateKeyBetween(leftSortIndex, rightSortIndex);
|
|
+ let newSortIndex;
|
|
+ try {
|
|
+ newSortIndex = generateKeyBetween(leftSortIndex, rightSortIndex);
|
|
+ } catch (e) {
|
|
+ // При дубликатах pos (например после вставки изображения) left >= right
|
|
+ newSortIndex = generateKeyBetween(leftSortIndex, null);
|
|
+ }
|
|
opsTracker.elementIds = moveArrayItem(opsTracker.elementIds, fromIndex, toIndex, true);
|
|
opsTracker.idMap[id].pos = newSortIndex;
|
|
_updateIdIndexLookup();
|
|
@@ -393,6 +399,7 @@ var ExcalidrawBinding = class {
|
|
this.collaborators = collaborators;
|
|
}
|
|
setupUndoRedo(excalidrawDom) {
|
|
+ if (!excalidrawDom) return;
|
|
this.undoManager.addTrackedOrigin(this);
|
|
this.subscriptions.push(() => this.undoManager.removeTrackedOrigin(this));
|
|
const _keyPressHandler = (event) => {
|
|
@@ -420,12 +427,12 @@ var ExcalidrawBinding = class {
|
|
if (!undoButton || !undoButton.isConnected) {
|
|
undoButton?.removeEventListener("click", _undoBtnHandler);
|
|
undoButton = excalidrawDom.querySelector('[aria-label="Undo"]');
|
|
- undoButton.addEventListener("click", _undoBtnHandler);
|
|
+ if (undoButton) undoButton.addEventListener("click", _undoBtnHandler);
|
|
}
|
|
if (!redoButton || !redoButton.isConnected) {
|
|
redoButton?.removeEventListener("click", _redoBtnHandler);
|
|
redoButton = excalidrawDom.querySelector('[aria-label="Redo"]');
|
|
- redoButton.addEventListener("click", _redoBtnHandler);
|
|
+ if (redoButton) redoButton.addEventListener("click", _redoBtnHandler);
|
|
}
|
|
};
|
|
const ro = new ResizeObserver(debounce(_resizeListener, 100));
|