@mhamz.01/easyflow-whiteboard 2.152.0 → 2.153.0
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"custom-node-overlay-layer.d.ts","sourceRoot":"","sources":["../../../src/components/node/custom-node-overlay-layer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAI9C,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,CAAC;IACxC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,UAAU,uBAAuB;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACxC,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,YAAY,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACzE,qBAAqB,CAAC,EAAE,YAAY,EAAE,CAAC;IACvC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,CAAC;CAC5D;;AAaD,
|
|
1
|
+
{"version":3,"file":"custom-node-overlay-layer.d.ts","sourceRoot":"","sources":["../../../src/components/node/custom-node-overlay-layer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAI9C,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,MAAM,CAAC;IACxC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,UAAU,uBAAuB;IAC/B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACxC,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,YAAY,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACzE,qBAAqB,CAAC,EAAE,YAAY,EAAE,CAAC;IACvC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,MAAM,IAAI,CAAC,CAAC;CAC5D;;AAaD,wBAgsBG"}
|
|
@@ -20,6 +20,7 @@ export default React.memo(function CanvasOverlayLayer({ tasks, documents, onTask
|
|
|
20
20
|
const isHtmlSelectingRef = useRef(false);
|
|
21
21
|
const isSelectionBoxActiveRef = useRef(false);
|
|
22
22
|
const htmlNodesSelectedByBoxRef = useRef(false);
|
|
23
|
+
const dragSelectedIdsRef = useRef(new Set());
|
|
23
24
|
localTasksRef.current = localTasks;
|
|
24
25
|
localDocumentsRef.current = localDocuments;
|
|
25
26
|
selectedIdsRef.current = selectedIds;
|
|
@@ -128,7 +129,8 @@ export default React.memo(function CanvasOverlayLayer({ tasks, documents, onTask
|
|
|
128
129
|
target._prevTop = target.top;
|
|
129
130
|
if (deltaX === 0 && deltaY === 0)
|
|
130
131
|
return;
|
|
131
|
-
const sel = selectedIdsRef.current;
|
|
132
|
+
// const sel = selectedIdsRef.current;
|
|
133
|
+
const sel = dragSelectedIdsRef.current;
|
|
132
134
|
// Skip if frame already queued
|
|
133
135
|
if (fabricMoveRafRef.current !== null)
|
|
134
136
|
return;
|
|
@@ -154,11 +156,16 @@ export default React.memo(function CanvasOverlayLayer({ tasks, documents, onTask
|
|
|
154
156
|
const isClickingIntoActiveSelection = target &&
|
|
155
157
|
activeObjects.length > 1 &&
|
|
156
158
|
activeObjects.includes(target); // ← target must be IN the selection, not just any click
|
|
157
|
-
if (isClickingIntoActiveSelection)
|
|
159
|
+
if (isClickingIntoActiveSelection) {
|
|
160
|
+
// ← Snapshot BEFORE any selection events fire
|
|
161
|
+
dragSelectedIdsRef.current = new Set(selectedIdsRef.current);
|
|
158
162
|
return;
|
|
163
|
+
}
|
|
159
164
|
if (isSelectionBoxActiveRef.current)
|
|
160
165
|
return;
|
|
166
|
+
dragSelectedIdsRef.current = new Set(selectedIdsRef.current);
|
|
161
167
|
htmlNodesSelectedByBoxRef.current = false;
|
|
168
|
+
// dragSelectedIdsRef.current = new Set();
|
|
162
169
|
setSelectedIds(new Set());
|
|
163
170
|
};
|
|
164
171
|
// const handleSelectionCleared = () => {
|
|
@@ -301,9 +308,9 @@ export default React.memo(function CanvasOverlayLayer({ tasks, documents, onTask
|
|
|
301
308
|
if (pos)
|
|
302
309
|
startPositions.set(id, pos);
|
|
303
310
|
});
|
|
304
|
-
|
|
311
|
+
const liveActiveObjects = canvas.getActiveObjects();
|
|
305
312
|
const canvasObjectsStartPos = new Map();
|
|
306
|
-
|
|
313
|
+
liveActiveObjects.forEach((obj) => {
|
|
307
314
|
canvasObjectsStartPos.set(obj, {
|
|
308
315
|
left: obj.left || 0,
|
|
309
316
|
top: obj.top || 0,
|
|
@@ -318,9 +325,10 @@ export default React.memo(function CanvasOverlayLayer({ tasks, documents, onTask
|
|
|
318
325
|
offsetX: worldOffsetX, // ← was clickWorldX, should be the offset
|
|
319
326
|
offsetY: worldOffsetY, // ← was clickWorldY
|
|
320
327
|
};
|
|
321
|
-
if (!selectedIdsRef.current.has(itemId) && dragStateRef.current.itemIds.length === 0) {
|
|
322
|
-
|
|
323
|
-
}
|
|
328
|
+
// if (!selectedIdsRef.current.has(itemId) && dragStateRef.current.itemIds.length === 0) {
|
|
329
|
+
// setSelectedIds(new Set([itemId]));
|
|
330
|
+
// }
|
|
331
|
+
dragSelectedIdsRef.current = new Set(itemsToDrag);
|
|
324
332
|
// 11. Trigger UI states
|
|
325
333
|
setDragging({ itemIds: itemsToDrag });
|
|
326
334
|
document.body.style.cursor = "grabbing";
|
|
@@ -400,6 +408,7 @@ export default React.memo(function CanvasOverlayLayer({ tasks, documents, onTask
|
|
|
400
408
|
if (rafIdRef.current !== null)
|
|
401
409
|
cancelAnimationFrame(rafIdRef.current);
|
|
402
410
|
dragStateRef.current.isDragging = false;
|
|
411
|
+
dragSelectedIdsRef.current = new Set();
|
|
403
412
|
setDragging(null);
|
|
404
413
|
document.body.style.cursor = "";
|
|
405
414
|
document.body.style.userSelect = "";
|