@bian-womp/spark-workbench 0.3.21 → 0.3.22

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":"SelectionBoundOverlay.d.ts","sourceRoot":"","sources":["../../../../src/misc/SelectionBoundOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEnE,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAChD,UAAU,EAAE,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;IACjD,YAAY,EAAE,MAAM,CAAC;CACtB,CAgEA,CAAC"}
1
+ {"version":3,"file":"SelectionBoundOverlay.d.ts","sourceRoot":"","sources":["../../../../src/misc/SelectionBoundOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAEnE,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC;IAC3C,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAChD,UAAU,EAAE,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;IACjD,YAAY,EAAE,MAAM,CAAC;CACtB,CAgGA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"WorkbenchCanvas.d.ts","sourceRoot":"","sources":["../../../../src/misc/WorkbenchCanvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AACf,OAAO,EAOL,iBAAiB,EACjB,IAAI,EACJ,IAAI,EACJ,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAuB1D,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC3C,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IACvD,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7D,kBAAkB,CAAC,EAAE,CACnB,MAAM,EAAE,MAAM,KACX;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACnD,cAAc,CAAC,EAAE,OAAO,CACtB,IAAI,CACF,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EACxB,OAAO,GACP,OAAO,GACP,WAAW,GACX,WAAW,GACX,yBAAyB,GACzB,QAAQ,GACR,WAAW,GACX,eAAe,GACf,eAAe,GACf,eAAe,GACf,eAAe,GACf,WAAW,CACd,CACF,GAAG;QACF,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;KAC5D,CAAC;CACH;AAED,eAAO,MAAM,wBAAwB,oGA0+BnC,CAAC;AAEH,eAAO,MAAM,eAAe,oGAA2B,CAAC"}
1
+ {"version":3,"file":"WorkbenchCanvas.d.ts","sourceRoot":"","sources":["../../../../src/misc/WorkbenchCanvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AACf,OAAO,EAOL,iBAAiB,EACjB,IAAI,EACJ,IAAI,EACJ,KAAK,cAAc,EACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAuB1D,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;CAC3C,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,MAAM,CAAC;IACvD,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,GAAG,CAAC,OAAO,CAAC;IAC7D,kBAAkB,CAAC,EAAE,CACnB,MAAM,EAAE,MAAM,KACX;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACnD,cAAc,CAAC,EAAE,OAAO,CACtB,IAAI,CACF,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EACxB,OAAO,GACP,OAAO,GACP,WAAW,GACX,WAAW,GACX,yBAAyB,GACzB,QAAQ,GACR,WAAW,GACX,eAAe,GACf,eAAe,GACf,eAAe,GACf,eAAe,GACf,WAAW,CACd,CACF,GAAG;QACF,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,CAAC;KAC5D,CAAC;CACH;AAED,eAAO,MAAM,wBAAwB,oGA6+BnC,CAAC;AAEH,eAAO,MAAM,eAAe,oGAA2B,CAAC"}
package/lib/esm/index.js CHANGED
@@ -5794,9 +5794,31 @@ function useKeyboardShortcutToast() {
5794
5794
  }
5795
5795
 
5796
5796
  const SelectionBoundOverlay = ({ selection, rfInstance, viewportTick }) => {
5797
+ const overlayRef = useRef(null);
5798
+ const [parentRect, setParentRect] = useState(null);
5799
+ useEffect(() => {
5800
+ if (!overlayRef.current)
5801
+ return;
5802
+ const parent = overlayRef.current.parentElement;
5803
+ if (!parent)
5804
+ return;
5805
+ const updateRect = () => {
5806
+ setParentRect(parent.getBoundingClientRect());
5807
+ };
5808
+ updateRect();
5809
+ const resizeObserver = new ResizeObserver(updateRect);
5810
+ resizeObserver.observe(parent);
5811
+ const scrollHandler = () => updateRect();
5812
+ window.addEventListener("scroll", scrollHandler, true);
5813
+ return () => {
5814
+ resizeObserver.disconnect();
5815
+ window.removeEventListener("scroll", scrollHandler, true);
5816
+ };
5817
+ }, [viewportTick]);
5797
5818
  const selectionBounds = useMemo(() => {
5798
5819
  if (typeof document === "undefined" ||
5799
5820
  !rfInstance ||
5821
+ !parentRect ||
5800
5822
  selection.nodes.length < 2) {
5801
5823
  return null;
5802
5824
  }
@@ -5806,31 +5828,35 @@ const SelectionBoundOverlay = ({ selection, rfInstance, viewportTick }) => {
5806
5828
  if (!el)
5807
5829
  continue;
5808
5830
  const rect = el.getBoundingClientRect();
5831
+ const relativeLeft = rect.left - parentRect.left;
5832
+ const relativeTop = rect.top - parentRect.top;
5833
+ const relativeRight = rect.right - parentRect.left;
5834
+ const relativeBottom = rect.bottom - parentRect.top;
5809
5835
  if (!bounds) {
5810
5836
  bounds = {
5811
- left: rect.left,
5812
- top: rect.top,
5813
- right: rect.right,
5814
- bottom: rect.bottom,
5837
+ left: relativeLeft,
5838
+ top: relativeTop,
5839
+ right: relativeRight,
5840
+ bottom: relativeBottom,
5815
5841
  };
5816
5842
  }
5817
5843
  else {
5818
- bounds.left = Math.min(bounds.left, rect.left);
5819
- bounds.top = Math.min(bounds.top, rect.top);
5820
- bounds.right = Math.max(bounds.right, rect.right);
5821
- bounds.bottom = Math.max(bounds.bottom, rect.bottom);
5844
+ bounds.left = Math.min(bounds.left, relativeLeft);
5845
+ bounds.top = Math.min(bounds.top, relativeTop);
5846
+ bounds.right = Math.max(bounds.right, relativeRight);
5847
+ bounds.bottom = Math.max(bounds.bottom, relativeBottom);
5822
5848
  }
5823
5849
  }
5824
5850
  return bounds;
5825
- }, [selection.nodes, rfInstance, viewportTick]);
5851
+ }, [selection.nodes, rfInstance, viewportTick, parentRect]);
5826
5852
  if (!selectionBounds || selection.nodes.length < 2) {
5827
- return null;
5853
+ return jsx("div", { ref: overlayRef, style: { display: "none" } });
5828
5854
  }
5829
5855
  const { left, top, right, bottom } = selectionBounds;
5830
5856
  const width = right - left;
5831
5857
  const height = bottom - top;
5832
- return (jsx("div", { style: {
5833
- position: "fixed",
5858
+ return (jsx("div", { ref: overlayRef, style: {
5859
+ position: "absolute",
5834
5860
  left: `${left}px`,
5835
5861
  top: `${top}px`,
5836
5862
  width: `${width}px`,
@@ -6493,7 +6519,7 @@ const WorkbenchCanvasComponent = React.forwardRef((props, ref) => {
6493
6519
  return () => off();
6494
6520
  }, [wb]);
6495
6521
  const { onInit: userOnInit, ...restReactFlowProps } = reactFlowProps || {};
6496
- return (jsxs("div", { className: "w-full h-full", onContextMenu: onContextMenu, children: [jsxs(ReactFlowProvider, { children: [jsxs(ReactFlow, { ...restReactFlowProps, nodes: throttled.nodes, edges: throttled.edges, nodeTypes: nodeTypes, edgeTypes: edgeTypes, connectionLineComponent: connectionLineRenderer, selectionOnDrag: true, onInit: (inst) => {
6522
+ return (jsxs("div", { className: "w-full h-full relative overflow-hidden", onContextMenu: onContextMenu, children: [jsxs(ReactFlowProvider, { children: [jsxs(ReactFlow, { ...restReactFlowProps, nodes: throttled.nodes, edges: throttled.edges, nodeTypes: nodeTypes, edgeTypes: edgeTypes, connectionLineComponent: connectionLineRenderer, selectionOnDrag: true, onInit: (inst) => {
6497
6523
  rfInstanceRef.current = inst;
6498
6524
  const savedViewport = wb.getViewport();
6499
6525
  if (savedViewport) {