@mhamz.01/easyflow-whiteboard 2.77.0 → 2.79.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":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAS9C,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;CACvB;AAaD,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,KAAK,EACL,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,UAAc,EACd,cAA+B,EAC/B,YAAmB,EACnB,qBAA0B,EAC1B,YAAY,GACb,EAAE,uBAAuB,2CAikBzB"}
1
+ {"version":3,"file":"custom-node-overlay-layer.d.ts","sourceRoot":"","sources":["../../../src/components/node/custom-node-overlay-layer.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAS9C,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;CACvB;AAaD,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACzC,KAAK,EACL,SAAS,EACT,aAAa,EACb,iBAAiB,EACjB,UAAc,EACd,cAA+B,EAC/B,YAAmB,EACnB,qBAA0B,EAC1B,YAAY,GACb,EAAE,uBAAuB,2CA8kBzB"}
@@ -273,8 +273,8 @@ export default function CanvasOverlayLayer({ tasks, documents, onTasksUpdate, on
273
273
  itemIds: itemsToDrag,
274
274
  startPositions,
275
275
  canvasObjectsStartPos,
276
- offsetX: worldOffsetX, // Now stored as World Units
277
- offsetY: worldOffsetY, // Now stored as World Units
276
+ offsetX: clickWorldX, // Now stored as World Units
277
+ offsetY: clickWorldY, // Now stored as World Units
278
278
  };
279
279
  if (!selectedIds.has(itemId) && dragStateRef.current.itemIds.length === 0) {
280
280
  setSelectedIds(new Set([itemId]));
@@ -316,30 +316,38 @@ export default function CanvasOverlayLayer({ tasks, documents, onTasksUpdate, on
316
316
  // (Current Mouse World - Initial World Offset from Start)
317
317
  const newWorldX = currentWorldX - offsetX;
318
318
  const newWorldY = currentWorldY - offsetY;
319
+ if (itemIds.length > 0) {
320
+ console.groupCollapsed(`Dragging Node: ${itemIds[0]}`);
321
+ console.log("Screen Mouse:", { x: pointer.clientX, y: pointer.clientY });
322
+ console.log("World Mouse:", { x: currentWorldX.toFixed(2), y: currentWorldY.toFixed(2) });
323
+ console.log("Canvas Zoom:", liveZoom.toFixed(2));
324
+ console.log("New Node Pos:", { x: newWorldX.toFixed(2), y: newWorldY.toFixed(2) });
325
+ console.groupEnd();
326
+ }
319
327
  // 5. Calculate the Movement Delta in World Units
320
328
  // We compare where the first item started vs where it is now.
321
329
  const firstId = itemIds[0];
322
330
  const firstStart = startPositions.get(firstId);
323
331
  if (!firstStart)
324
332
  return;
325
- const deltaX = newWorldX - firstStart.x;
326
- const deltaY = newWorldY - firstStart.y;
333
+ // const deltaX = newWorldX - firstStart.x;
334
+ // const deltaY = newWorldY - firstStart.y;
327
335
  // 6. Update HTML Nodes (Batching these into one state update)
328
336
  setLocalTasks((prev) => prev.map((t) => itemIds.includes(t.id) ? {
329
337
  ...t,
330
- x: (startPositions.get(t.id)?.x ?? t.x) + deltaX,
331
- y: (startPositions.get(t.id)?.y ?? t.y) + deltaY,
338
+ x: (startPositions.get(t.id)?.x ?? t.x) + newWorldX,
339
+ y: (startPositions.get(t.id)?.y ?? t.y) + newWorldY,
332
340
  } : t));
333
341
  setLocalDocuments((prev) => prev.map((d) => itemIds.includes(d.id) ? {
334
342
  ...d,
335
- x: (startPositions.get(d.id)?.x ?? d.x) + deltaX,
336
- y: (startPositions.get(d.id)?.y ?? d.y) + deltaY,
343
+ x: (startPositions.get(d.id)?.x ?? d.x) + newWorldX,
344
+ y: (startPositions.get(d.id)?.y ?? d.y) + newWorldY,
337
345
  } : d));
338
346
  // 7. Sync Fabric Objects (Imperative update for performance)
339
347
  canvasObjectsStartPos.forEach((startPos, obj) => {
340
348
  obj.set({
341
- left: startPos.left + deltaX,
342
- top: startPos.top + deltaY,
349
+ left: startPos.left + newWorldX,
350
+ top: startPos.top + newWorldY,
343
351
  });
344
352
  obj.setCoords(); // Required for selection/intersection accuracy
345
353
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mhamz.01/easyflow-whiteboard",
3
- "version": "2.77.0",
3
+ "version": "2.79.0",
4
4
  "description": "A feature-rich whiteboard component built with Fabric.js and React",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",