@mhamz.01/easyflow-whiteboard 2.151.0 → 2.152.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,wBAyrBG"}
|
|
@@ -19,6 +19,7 @@ export default React.memo(function CanvasOverlayLayer({ tasks, documents, onTask
|
|
|
19
19
|
const selectedIdsRef = useRef(selectedIds);
|
|
20
20
|
const isHtmlSelectingRef = useRef(false);
|
|
21
21
|
const isSelectionBoxActiveRef = useRef(false);
|
|
22
|
+
const htmlNodesSelectedByBoxRef = useRef(false);
|
|
22
23
|
localTasksRef.current = localTasks;
|
|
23
24
|
localDocumentsRef.current = localDocuments;
|
|
24
25
|
selectedIdsRef.current = selectedIds;
|
|
@@ -157,6 +158,7 @@ export default React.memo(function CanvasOverlayLayer({ tasks, documents, onTask
|
|
|
157
158
|
return;
|
|
158
159
|
if (isSelectionBoxActiveRef.current)
|
|
159
160
|
return;
|
|
161
|
+
htmlNodesSelectedByBoxRef.current = false;
|
|
160
162
|
setSelectedIds(new Set());
|
|
161
163
|
};
|
|
162
164
|
// const handleSelectionCleared = () => {
|
|
@@ -167,6 +169,8 @@ export default React.memo(function CanvasOverlayLayer({ tasks, documents, onTask
|
|
|
167
169
|
return; // ← skip if HTML node initiated this
|
|
168
170
|
if (isSelectionBoxActiveRef.current)
|
|
169
171
|
return; // ← add this
|
|
172
|
+
if (htmlNodesSelectedByBoxRef.current)
|
|
173
|
+
return;
|
|
170
174
|
setSelectedIds(new Set());
|
|
171
175
|
};
|
|
172
176
|
const handleFabricSelectionUpdated = () => {
|
|
@@ -174,6 +178,8 @@ export default React.memo(function CanvasOverlayLayer({ tasks, documents, onTask
|
|
|
174
178
|
return; // ← skip if HTML node initiated this
|
|
175
179
|
if (isSelectionBoxActiveRef.current)
|
|
176
180
|
return; // ← add this
|
|
181
|
+
if (htmlNodesSelectedByBoxRef.current)
|
|
182
|
+
return;
|
|
177
183
|
setSelectedIds(new Set());
|
|
178
184
|
};
|
|
179
185
|
canvas.on("object:moving", handleObjectMoving);
|
|
@@ -232,13 +238,17 @@ export default React.memo(function CanvasOverlayLayer({ tasks, documents, onTask
|
|
|
232
238
|
}
|
|
233
239
|
// ── O(n) equality check: size first (fast path), then membership ──
|
|
234
240
|
setSelectedIds((prev) => {
|
|
235
|
-
if (prev.size !== newSelected.size)
|
|
241
|
+
if (prev.size !== newSelected.size) {
|
|
242
|
+
htmlNodesSelectedByBoxRef.current = newSelected.size > 0; // ← track if any HTML nodes selected
|
|
236
243
|
return newSelected;
|
|
244
|
+
}
|
|
237
245
|
for (const id of newSelected) {
|
|
238
|
-
if (!prev.has(id))
|
|
239
|
-
|
|
246
|
+
if (!prev.has(id)) {
|
|
247
|
+
htmlNodesSelectedByBoxRef.current = newSelected.size > 0;
|
|
248
|
+
return newSelected;
|
|
249
|
+
}
|
|
240
250
|
}
|
|
241
|
-
return prev;
|
|
251
|
+
return prev;
|
|
242
252
|
});
|
|
243
253
|
}, [selectionBox, localTasks, localDocuments, canvasZoom, canvasViewport]);
|
|
244
254
|
// ── Drag start (HTML Node side) ──────────────────────────────────────────────
|
|
@@ -419,6 +429,7 @@ export default React.memo(function CanvasOverlayLayer({ tasks, documents, onTask
|
|
|
419
429
|
canvas.requestRenderAll();
|
|
420
430
|
isHtmlSelectingRef.current = false; // ← reset immediately
|
|
421
431
|
}
|
|
432
|
+
htmlNodesSelectedByBoxRef.current = false;
|
|
422
433
|
if (e?.shiftKey || e?.ctrlKey || e?.metaKey) {
|
|
423
434
|
setSelectedIds((prev) => {
|
|
424
435
|
const next = new Set(prev);
|