@xyflow/system 0.0.28 → 0.0.30

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.
package/dist/esm/index.js CHANGED
@@ -603,8 +603,8 @@ const getHandleBounds = (selector, nodeElement, nodeBounds, zoom, nodeOrigin = [
603
603
  }
604
604
  const handlesArray = Array.from(handles);
605
605
  const nodeOffset = {
606
- x: nodeBounds.left - nodeBounds.width * nodeOrigin[0],
607
- y: nodeBounds.top - nodeBounds.height * nodeOrigin[1],
606
+ x: nodeBounds.left + nodeBounds.width * nodeOrigin[0],
607
+ y: nodeBounds.top + nodeBounds.height * nodeOrigin[1],
608
608
  };
609
609
  return handlesArray.map((handle) => {
610
610
  const handleBounds = handle.getBoundingClientRect();
@@ -778,14 +778,14 @@ const addEdge = (edgeParams, edges) => {
778
778
  return edges.concat(edge);
779
779
  };
780
780
  /**
781
- * A handy utility to update an existing Edge with new properties
781
+ * A handy utility to reconnect an existing edge with new properties
782
782
  * @param oldEdge - The edge you want to update
783
783
  * @param newConnection - The new connection you want to update the edge with
784
784
  * @param edges - The array of all current edges
785
785
  * @param options.shouldReplaceId - should the id of the old edge be replaced with the new connection id
786
786
  * @returns the updated edges array
787
787
  */
788
- const updateEdge = (oldEdge, newConnection, edges, options = { shouldReplaceId: true }) => {
788
+ const reconnectEdge = (oldEdge, newConnection, edges, options = { shouldReplaceId: true }) => {
789
789
  const { id: oldEdgeId, ...rest } = oldEdge;
790
790
  if (!newConnection.source || !newConnection.target) {
791
791
  devWarn('006', errorMessages['error006']());
@@ -1039,8 +1039,6 @@ function getEdgePosition(params) {
1039
1039
  params.connectionMode === ConnectionMode.Strict
1040
1040
  ? targetHandleBounds?.target ?? []
1041
1041
  : (targetHandleBounds?.target ?? []).concat(targetHandleBounds?.source ?? []), params.targetHandle);
1042
- const sourcePosition = sourceHandle?.position || Position.Bottom;
1043
- const targetPosition = targetHandle?.position || Position.Top;
1044
1042
  if (!sourceHandle || !targetHandle) {
1045
1043
  params.onError?.('008', errorMessages['error008'](!sourceHandle ? 'source' : 'target', {
1046
1044
  id: params.id,
@@ -1049,8 +1047,10 @@ function getEdgePosition(params) {
1049
1047
  }));
1050
1048
  return null;
1051
1049
  }
1052
- const [sourceX, sourceY] = getHandlePosition(sourcePosition, sourceNode, sourceHandle);
1053
- const [targetX, targetY] = getHandlePosition(targetPosition, targetNode, targetHandle);
1050
+ const sourcePosition = sourceHandle?.position || Position.Bottom;
1051
+ const targetPosition = targetHandle?.position || Position.Top;
1052
+ const [sourceX, sourceY] = getHandlePosition(sourceNode, sourceHandle, sourcePosition);
1053
+ const [targetX, targetY] = getHandlePosition(targetNode, targetHandle, targetPosition);
1054
1054
  return {
1055
1055
  sourceX,
1056
1056
  sourceY,
@@ -1081,10 +1081,11 @@ function toHandleBounds(handles) {
1081
1081
  target,
1082
1082
  };
1083
1083
  }
1084
- function getHandlePosition(position, node, handle = null) {
1084
+ function getHandlePosition(node, handle, fallbackPosition = Position.Left) {
1085
1085
  const x = (handle?.x ?? 0) + node.internals.positionAbsolute.x;
1086
1086
  const y = (handle?.y ?? 0) + node.internals.positionAbsolute.y;
1087
1087
  const { width, height } = handle ?? getNodeDimensions(node);
1088
+ const position = handle?.position ?? fallbackPosition;
1088
1089
  switch (position) {
1089
1090
  case Position.Top:
1090
1091
  return [x + width / 2, y];
@@ -1719,14 +1720,15 @@ function XYDrag({ onNodeMouseDown, getStoreItems, onDragStart, onDrag, onDragSto
1719
1720
  // this functions collects all handles and adds an absolute position
1720
1721
  // so that we can later find the closest handle to the mouse position
1721
1722
  function getHandles(node, handleBounds, type, currentHandle) {
1722
- return (handleBounds[type] || []).reduce((res, h) => {
1723
- if (`${node.id}-${h.id}-${type}` !== currentHandle) {
1723
+ return (handleBounds[type] || []).reduce((res, handle) => {
1724
+ if (`${node.id}-${handle.id}-${type}` !== currentHandle) {
1725
+ const [x, y] = getHandlePosition(node, handle);
1724
1726
  res.push({
1725
- id: h.id || null,
1727
+ id: handle.id || null,
1726
1728
  type,
1727
1729
  nodeId: node.id,
1728
- x: node.internals.positionAbsolute.x + h.x + h.width / 2,
1729
- y: node.internals.positionAbsolute.y + h.y + h.height / 2,
1730
+ x,
1731
+ y,
1730
1732
  });
1731
1733
  }
1732
1734
  return res;
@@ -1793,7 +1795,7 @@ function getConnectionStatus(isInsideConnectionRadius, isHandleValid) {
1793
1795
 
1794
1796
  const alwaysValid = () => true;
1795
1797
  let connectionStartHandle = null;
1796
- function onPointerDown(event, { connectionMode, connectionRadius, handleId, nodeId, edgeUpdaterType, isTarget, domNode, nodeLookup, lib, autoPanOnConnect, flowId, panBy, cancelConnection, onConnectStart, onConnect, onConnectEnd, isValidConnection = alwaysValid, onEdgeUpdateEnd, updateConnection, getTransform, getConnectionStartHandle, }) {
1798
+ function onPointerDown(event, { connectionMode, connectionRadius, handleId, nodeId, edgeUpdaterType, isTarget, domNode, nodeLookup, lib, autoPanOnConnect, flowId, panBy, cancelConnection, onConnectStart, onConnect, onConnectEnd, isValidConnection = alwaysValid, onReconnectEnd, updateConnection, getTransform, getConnectionStartHandle, }) {
1797
1799
  // when xyflow is used inside a shadow root we can't use document
1798
1800
  const doc = getHostForElement(event.target);
1799
1801
  let autoPanId = 0;
@@ -1830,11 +1832,11 @@ function onPointerDown(event, { connectionMode, connectionRadius, handleId, node
1830
1832
  nodeId,
1831
1833
  handleId,
1832
1834
  type: handleType,
1835
+ position: clickedHandle?.getAttribute('data-handlepos') || Position.Top,
1833
1836
  };
1834
1837
  updateConnection({
1835
1838
  connectionPosition,
1836
1839
  connectionStatus: null,
1837
- // connectionNodeId etc will be removed in the next major in favor of connectionStartHandle
1838
1840
  connectionStartHandle,
1839
1841
  connectionEndHandle: null,
1840
1842
  });
@@ -1884,7 +1886,7 @@ function onPointerDown(event, { connectionMode, connectionRadius, handleId, node
1884
1886
  // in order to get the latest state of onConnectEnd
1885
1887
  onConnectEnd?.(event);
1886
1888
  if (edgeUpdaterType) {
1887
- onEdgeUpdateEnd?.(event);
1889
+ onReconnectEnd?.(event);
1888
1890
  }
1889
1891
  cancelConnection();
1890
1892
  cancelAnimationFrame(autoPanId);
@@ -1942,14 +1944,13 @@ function isValidHandle(event, { handle, connectionMode, fromNodeId, fromHandleId
1942
1944
  (connectionMode === ConnectionMode.Strict
1943
1945
  ? (isTarget && handleType === 'source') || (!isTarget && handleType === 'target')
1944
1946
  : handleNodeId !== fromNodeId || handleId !== fromHandleId);
1945
- if (isValid) {
1946
- result.endHandle = {
1947
- nodeId: handleNodeId,
1948
- handleId,
1949
- type: handleType,
1950
- };
1951
- result.isValid = isValidConnection(connection);
1952
- }
1947
+ result.isValid = isValid && isValidConnection(connection);
1948
+ result.endHandle = {
1949
+ nodeId: handleNodeId,
1950
+ handleId,
1951
+ type: handleType,
1952
+ position: handleToCheck.getAttribute('data-handlepos'),
1953
+ };
1953
1954
  }
1954
1955
  return result;
1955
1956
  }
@@ -1961,6 +1962,7 @@ const XYHandle = {
1961
1962
  function XYMinimap({ domNode, panZoom, getTransform, getViewScale }) {
1962
1963
  const selection = select(domNode);
1963
1964
  function update({ translateExtent, width, height, zoomStep = 10, pannable = true, zoomable = true, inversePan = false, }) {
1965
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1964
1966
  const zoomHandler = (event) => {
1965
1967
  const transform = getTransform();
1966
1968
  if (event.sourceEvent.type !== 'wheel' || !panZoom) {
@@ -1973,6 +1975,7 @@ function XYMinimap({ domNode, panZoom, getTransform, getViewScale }) {
1973
1975
  panZoom.scaleTo(nextZoom);
1974
1976
  };
1975
1977
  let panStart = [0, 0];
1978
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1976
1979
  const panStartHandler = (event) => {
1977
1980
  if (event.sourceEvent.type === 'mousedown' || event.sourceEvent.type === 'touchstart') {
1978
1981
  panStart = [
@@ -1981,6 +1984,7 @@ function XYMinimap({ domNode, panZoom, getTransform, getViewScale }) {
1981
1984
  ];
1982
1985
  }
1983
1986
  };
1987
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1984
1988
  const panHandler = (event) => {
1985
1989
  const transform = getTransform();
1986
1990
  if ((event.sourceEvent.type !== 'mousemove' && event.sourceEvent.type !== 'touchmove') || !panZoom) {
@@ -2009,8 +2013,10 @@ function XYMinimap({ domNode, panZoom, getTransform, getViewScale }) {
2009
2013
  };
2010
2014
  const zoomAndPanHandler = zoom()
2011
2015
  .on('start', panStartHandler)
2016
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2012
2017
  // @ts-ignore
2013
2018
  .on('zoom', pannable ? panHandler : null)
2019
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2014
2020
  // @ts-ignore
2015
2021
  .on('zoom.wheel', zoomable ? zoomHandler : null);
2016
2022
  selection.call(zoomAndPanHandler, {});
@@ -2777,4 +2783,4 @@ function XYResizer({ domNode, nodeId, getStoreItems, onChange, onEnd }) {
2777
2783
  };
2778
2784
  }
2779
2785
 
2780
- export { ConnectionLineType, ConnectionMode, MarkerType, PanOnScrollMode, Position, ResizeControlVariant, SelectionMode, XYDrag, XYHandle, XYMinimap, XYPanZoom, XYResizer, XY_RESIZER_HANDLE_POSITIONS, XY_RESIZER_LINE_POSITIONS, addEdge, adoptUserNodes, areConnectionMapsEqual, boxToRect, calcAutoPan, calculateNodePosition, clamp, clampPosition, createMarkerIds, devWarn, elementSelectionKeys, errorMessages, evaluateAbsolutePosition, fitView, getBezierEdgeCenter, getBezierPath, getBoundsOfBoxes, getBoundsOfRects, getConnectedEdges, getDimensions, getEdgeCenter, getEdgePosition, getElementsToRemove, getElevatedEdgeZIndex, getEventPosition, getHandleBounds, getHostForElement, getIncomers, getInternalNodesBounds, getMarkerId, getNodeDimensions, getNodePositionWithOrigin, getNodeToolbarTransform, getNodesBounds, getNodesInside, getOutgoers, getOverlappingArea, getPointerPosition, getPositionWithOrigin, getSmoothStepPath, getStraightPath, getViewportForBounds, handleConnectionChange, handleExpandParent, infiniteExtent, isCoordinateExtent, isEdgeBase, isEdgeVisible, isInputDOMNode, isInternalNodeBase, isMacOs, isMouseEvent, isNodeBase, isNumeric, isRectObject, nodeHasDimensions, nodeToBox, nodeToRect, panBy, pointToRendererPoint, rectToBox, rendererPointToPoint, shallowNodeData, snapPosition, updateAbsolutePositions, updateConnectionLookup, updateEdge, updateNodeInternals };
2786
+ export { ConnectionLineType, ConnectionMode, MarkerType, PanOnScrollMode, Position, ResizeControlVariant, SelectionMode, XYDrag, XYHandle, XYMinimap, XYPanZoom, XYResizer, XY_RESIZER_HANDLE_POSITIONS, XY_RESIZER_LINE_POSITIONS, addEdge, adoptUserNodes, areConnectionMapsEqual, boxToRect, calcAutoPan, calculateNodePosition, clamp, clampPosition, createMarkerIds, devWarn, elementSelectionKeys, errorMessages, evaluateAbsolutePosition, fitView, getBezierEdgeCenter, getBezierPath, getBoundsOfBoxes, getBoundsOfRects, getConnectedEdges, getDimensions, getEdgeCenter, getEdgePosition, getElementsToRemove, getElevatedEdgeZIndex, getEventPosition, getHandleBounds, getHandlePosition, getHostForElement, getIncomers, getInternalNodesBounds, getMarkerId, getNodeDimensions, getNodePositionWithOrigin, getNodeToolbarTransform, getNodesBounds, getNodesInside, getOutgoers, getOverlappingArea, getPointerPosition, getPositionWithOrigin, getSmoothStepPath, getStraightPath, getViewportForBounds, handleConnectionChange, handleExpandParent, infiniteExtent, isCoordinateExtent, isEdgeBase, isEdgeVisible, isInputDOMNode, isInternalNodeBase, isMacOs, isMouseEvent, isNodeBase, isNumeric, isRectObject, nodeHasDimensions, nodeToBox, nodeToRect, panBy, pointToRendererPoint, reconnectEdge, rectToBox, rendererPointToPoint, shallowNodeData, snapPosition, updateAbsolutePositions, updateConnectionLookup, updateNodeInternals };
@@ -603,8 +603,8 @@ const getHandleBounds = (selector, nodeElement, nodeBounds, zoom, nodeOrigin = [
603
603
  }
604
604
  const handlesArray = Array.from(handles);
605
605
  const nodeOffset = {
606
- x: nodeBounds.left - nodeBounds.width * nodeOrigin[0],
607
- y: nodeBounds.top - nodeBounds.height * nodeOrigin[1],
606
+ x: nodeBounds.left + nodeBounds.width * nodeOrigin[0],
607
+ y: nodeBounds.top + nodeBounds.height * nodeOrigin[1],
608
608
  };
609
609
  return handlesArray.map((handle) => {
610
610
  const handleBounds = handle.getBoundingClientRect();
@@ -778,14 +778,14 @@ const addEdge = (edgeParams, edges) => {
778
778
  return edges.concat(edge);
779
779
  };
780
780
  /**
781
- * A handy utility to update an existing Edge with new properties
781
+ * A handy utility to reconnect an existing edge with new properties
782
782
  * @param oldEdge - The edge you want to update
783
783
  * @param newConnection - The new connection you want to update the edge with
784
784
  * @param edges - The array of all current edges
785
785
  * @param options.shouldReplaceId - should the id of the old edge be replaced with the new connection id
786
786
  * @returns the updated edges array
787
787
  */
788
- const updateEdge = (oldEdge, newConnection, edges, options = { shouldReplaceId: true }) => {
788
+ const reconnectEdge = (oldEdge, newConnection, edges, options = { shouldReplaceId: true }) => {
789
789
  const { id: oldEdgeId, ...rest } = oldEdge;
790
790
  if (!newConnection.source || !newConnection.target) {
791
791
  devWarn('006', errorMessages['error006']());
@@ -1039,8 +1039,6 @@ function getEdgePosition(params) {
1039
1039
  params.connectionMode === ConnectionMode.Strict
1040
1040
  ? targetHandleBounds?.target ?? []
1041
1041
  : (targetHandleBounds?.target ?? []).concat(targetHandleBounds?.source ?? []), params.targetHandle);
1042
- const sourcePosition = sourceHandle?.position || Position.Bottom;
1043
- const targetPosition = targetHandle?.position || Position.Top;
1044
1042
  if (!sourceHandle || !targetHandle) {
1045
1043
  params.onError?.('008', errorMessages['error008'](!sourceHandle ? 'source' : 'target', {
1046
1044
  id: params.id,
@@ -1049,8 +1047,10 @@ function getEdgePosition(params) {
1049
1047
  }));
1050
1048
  return null;
1051
1049
  }
1052
- const [sourceX, sourceY] = getHandlePosition(sourcePosition, sourceNode, sourceHandle);
1053
- const [targetX, targetY] = getHandlePosition(targetPosition, targetNode, targetHandle);
1050
+ const sourcePosition = sourceHandle?.position || Position.Bottom;
1051
+ const targetPosition = targetHandle?.position || Position.Top;
1052
+ const [sourceX, sourceY] = getHandlePosition(sourceNode, sourceHandle, sourcePosition);
1053
+ const [targetX, targetY] = getHandlePosition(targetNode, targetHandle, targetPosition);
1054
1054
  return {
1055
1055
  sourceX,
1056
1056
  sourceY,
@@ -1081,10 +1081,11 @@ function toHandleBounds(handles) {
1081
1081
  target,
1082
1082
  };
1083
1083
  }
1084
- function getHandlePosition(position, node, handle = null) {
1084
+ function getHandlePosition(node, handle, fallbackPosition = Position.Left) {
1085
1085
  const x = (handle?.x ?? 0) + node.internals.positionAbsolute.x;
1086
1086
  const y = (handle?.y ?? 0) + node.internals.positionAbsolute.y;
1087
1087
  const { width, height } = handle ?? getNodeDimensions(node);
1088
+ const position = handle?.position ?? fallbackPosition;
1088
1089
  switch (position) {
1089
1090
  case Position.Top:
1090
1091
  return [x + width / 2, y];
@@ -1719,14 +1720,15 @@ function XYDrag({ onNodeMouseDown, getStoreItems, onDragStart, onDrag, onDragSto
1719
1720
  // this functions collects all handles and adds an absolute position
1720
1721
  // so that we can later find the closest handle to the mouse position
1721
1722
  function getHandles(node, handleBounds, type, currentHandle) {
1722
- return (handleBounds[type] || []).reduce((res, h) => {
1723
- if (`${node.id}-${h.id}-${type}` !== currentHandle) {
1723
+ return (handleBounds[type] || []).reduce((res, handle) => {
1724
+ if (`${node.id}-${handle.id}-${type}` !== currentHandle) {
1725
+ const [x, y] = getHandlePosition(node, handle);
1724
1726
  res.push({
1725
- id: h.id || null,
1727
+ id: handle.id || null,
1726
1728
  type,
1727
1729
  nodeId: node.id,
1728
- x: node.internals.positionAbsolute.x + h.x + h.width / 2,
1729
- y: node.internals.positionAbsolute.y + h.y + h.height / 2,
1730
+ x,
1731
+ y,
1730
1732
  });
1731
1733
  }
1732
1734
  return res;
@@ -1793,7 +1795,7 @@ function getConnectionStatus(isInsideConnectionRadius, isHandleValid) {
1793
1795
 
1794
1796
  const alwaysValid = () => true;
1795
1797
  let connectionStartHandle = null;
1796
- function onPointerDown(event, { connectionMode, connectionRadius, handleId, nodeId, edgeUpdaterType, isTarget, domNode, nodeLookup, lib, autoPanOnConnect, flowId, panBy, cancelConnection, onConnectStart, onConnect, onConnectEnd, isValidConnection = alwaysValid, onEdgeUpdateEnd, updateConnection, getTransform, getConnectionStartHandle, }) {
1798
+ function onPointerDown(event, { connectionMode, connectionRadius, handleId, nodeId, edgeUpdaterType, isTarget, domNode, nodeLookup, lib, autoPanOnConnect, flowId, panBy, cancelConnection, onConnectStart, onConnect, onConnectEnd, isValidConnection = alwaysValid, onReconnectEnd, updateConnection, getTransform, getConnectionStartHandle, }) {
1797
1799
  // when xyflow is used inside a shadow root we can't use document
1798
1800
  const doc = getHostForElement(event.target);
1799
1801
  let autoPanId = 0;
@@ -1830,11 +1832,11 @@ function onPointerDown(event, { connectionMode, connectionRadius, handleId, node
1830
1832
  nodeId,
1831
1833
  handleId,
1832
1834
  type: handleType,
1835
+ position: clickedHandle?.getAttribute('data-handlepos') || Position.Top,
1833
1836
  };
1834
1837
  updateConnection({
1835
1838
  connectionPosition,
1836
1839
  connectionStatus: null,
1837
- // connectionNodeId etc will be removed in the next major in favor of connectionStartHandle
1838
1840
  connectionStartHandle,
1839
1841
  connectionEndHandle: null,
1840
1842
  });
@@ -1884,7 +1886,7 @@ function onPointerDown(event, { connectionMode, connectionRadius, handleId, node
1884
1886
  // in order to get the latest state of onConnectEnd
1885
1887
  onConnectEnd?.(event);
1886
1888
  if (edgeUpdaterType) {
1887
- onEdgeUpdateEnd?.(event);
1889
+ onReconnectEnd?.(event);
1888
1890
  }
1889
1891
  cancelConnection();
1890
1892
  cancelAnimationFrame(autoPanId);
@@ -1942,14 +1944,13 @@ function isValidHandle(event, { handle, connectionMode, fromNodeId, fromHandleId
1942
1944
  (connectionMode === ConnectionMode.Strict
1943
1945
  ? (isTarget && handleType === 'source') || (!isTarget && handleType === 'target')
1944
1946
  : handleNodeId !== fromNodeId || handleId !== fromHandleId);
1945
- if (isValid) {
1946
- result.endHandle = {
1947
- nodeId: handleNodeId,
1948
- handleId,
1949
- type: handleType,
1950
- };
1951
- result.isValid = isValidConnection(connection);
1952
- }
1947
+ result.isValid = isValid && isValidConnection(connection);
1948
+ result.endHandle = {
1949
+ nodeId: handleNodeId,
1950
+ handleId,
1951
+ type: handleType,
1952
+ position: handleToCheck.getAttribute('data-handlepos'),
1953
+ };
1953
1954
  }
1954
1955
  return result;
1955
1956
  }
@@ -1961,6 +1962,7 @@ const XYHandle = {
1961
1962
  function XYMinimap({ domNode, panZoom, getTransform, getViewScale }) {
1962
1963
  const selection = select(domNode);
1963
1964
  function update({ translateExtent, width, height, zoomStep = 10, pannable = true, zoomable = true, inversePan = false, }) {
1965
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1964
1966
  const zoomHandler = (event) => {
1965
1967
  const transform = getTransform();
1966
1968
  if (event.sourceEvent.type !== 'wheel' || !panZoom) {
@@ -1973,6 +1975,7 @@ function XYMinimap({ domNode, panZoom, getTransform, getViewScale }) {
1973
1975
  panZoom.scaleTo(nextZoom);
1974
1976
  };
1975
1977
  let panStart = [0, 0];
1978
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1976
1979
  const panStartHandler = (event) => {
1977
1980
  if (event.sourceEvent.type === 'mousedown' || event.sourceEvent.type === 'touchstart') {
1978
1981
  panStart = [
@@ -1981,6 +1984,7 @@ function XYMinimap({ domNode, panZoom, getTransform, getViewScale }) {
1981
1984
  ];
1982
1985
  }
1983
1986
  };
1987
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1984
1988
  const panHandler = (event) => {
1985
1989
  const transform = getTransform();
1986
1990
  if ((event.sourceEvent.type !== 'mousemove' && event.sourceEvent.type !== 'touchmove') || !panZoom) {
@@ -2009,8 +2013,10 @@ function XYMinimap({ domNode, panZoom, getTransform, getViewScale }) {
2009
2013
  };
2010
2014
  const zoomAndPanHandler = zoom()
2011
2015
  .on('start', panStartHandler)
2016
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2012
2017
  // @ts-ignore
2013
2018
  .on('zoom', pannable ? panHandler : null)
2019
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2014
2020
  // @ts-ignore
2015
2021
  .on('zoom.wheel', zoomable ? zoomHandler : null);
2016
2022
  selection.call(zoomAndPanHandler, {});
@@ -2777,4 +2783,4 @@ function XYResizer({ domNode, nodeId, getStoreItems, onChange, onEnd }) {
2777
2783
  };
2778
2784
  }
2779
2785
 
2780
- export { ConnectionLineType, ConnectionMode, MarkerType, PanOnScrollMode, Position, ResizeControlVariant, SelectionMode, XYDrag, XYHandle, XYMinimap, XYPanZoom, XYResizer, XY_RESIZER_HANDLE_POSITIONS, XY_RESIZER_LINE_POSITIONS, addEdge, adoptUserNodes, areConnectionMapsEqual, boxToRect, calcAutoPan, calculateNodePosition, clamp, clampPosition, createMarkerIds, devWarn, elementSelectionKeys, errorMessages, evaluateAbsolutePosition, fitView, getBezierEdgeCenter, getBezierPath, getBoundsOfBoxes, getBoundsOfRects, getConnectedEdges, getDimensions, getEdgeCenter, getEdgePosition, getElementsToRemove, getElevatedEdgeZIndex, getEventPosition, getHandleBounds, getHostForElement, getIncomers, getInternalNodesBounds, getMarkerId, getNodeDimensions, getNodePositionWithOrigin, getNodeToolbarTransform, getNodesBounds, getNodesInside, getOutgoers, getOverlappingArea, getPointerPosition, getPositionWithOrigin, getSmoothStepPath, getStraightPath, getViewportForBounds, handleConnectionChange, handleExpandParent, infiniteExtent, isCoordinateExtent, isEdgeBase, isEdgeVisible, isInputDOMNode, isInternalNodeBase, isMacOs, isMouseEvent, isNodeBase, isNumeric, isRectObject, nodeHasDimensions, nodeToBox, nodeToRect, panBy, pointToRendererPoint, rectToBox, rendererPointToPoint, shallowNodeData, snapPosition, updateAbsolutePositions, updateConnectionLookup, updateEdge, updateNodeInternals };
2786
+ export { ConnectionLineType, ConnectionMode, MarkerType, PanOnScrollMode, Position, ResizeControlVariant, SelectionMode, XYDrag, XYHandle, XYMinimap, XYPanZoom, XYResizer, XY_RESIZER_HANDLE_POSITIONS, XY_RESIZER_LINE_POSITIONS, addEdge, adoptUserNodes, areConnectionMapsEqual, boxToRect, calcAutoPan, calculateNodePosition, clamp, clampPosition, createMarkerIds, devWarn, elementSelectionKeys, errorMessages, evaluateAbsolutePosition, fitView, getBezierEdgeCenter, getBezierPath, getBoundsOfBoxes, getBoundsOfRects, getConnectedEdges, getDimensions, getEdgeCenter, getEdgePosition, getElementsToRemove, getElevatedEdgeZIndex, getEventPosition, getHandleBounds, getHandlePosition, getHostForElement, getIncomers, getInternalNodesBounds, getMarkerId, getNodeDimensions, getNodePositionWithOrigin, getNodeToolbarTransform, getNodesBounds, getNodesInside, getOutgoers, getOverlappingArea, getPointerPosition, getPositionWithOrigin, getSmoothStepPath, getStraightPath, getViewportForBounds, handleConnectionChange, handleExpandParent, infiniteExtent, isCoordinateExtent, isEdgeBase, isEdgeVisible, isInputDOMNode, isInternalNodeBase, isMacOs, isMouseEvent, isNodeBase, isNumeric, isRectObject, nodeHasDimensions, nodeToBox, nodeToRect, panBy, pointToRendererPoint, reconnectEdge, rectToBox, rendererPointToPoint, shallowNodeData, snapPosition, updateAbsolutePositions, updateConnectionLookup, updateNodeInternals };
@@ -13,6 +13,7 @@ export type ConnectingHandle = {
13
13
  nodeId: string;
14
14
  type: HandleType;
15
15
  handleId?: string | null;
16
+ position?: Position | null;
16
17
  };
17
18
  export type ConnectionHandle = {
18
19
  id: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"handles.d.ts","sourceRoot":"","sources":["../../src/types/handles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAC;AAErD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,IAAI,EAAE,UAAU,CAAC;IACjB;;;OAGG;IACH,QAAQ,EAAE,QAAQ,CAAC;IACnB,wDAAwD;IACxD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC"}
1
+ {"version":3,"file":"handles.d.ts","sourceRoot":"","sources":["../../src/types/handles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAC;AAErD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,IAAI,EAAE,UAAU,CAAC;IACjB;;;OAGG;IACH,QAAQ,EAAE,QAAQ,CAAC;IACnB,wDAAwD;IACxD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC"}
@@ -30,17 +30,17 @@ export declare function isEdgeVisible({ sourceNode, targetNode, width, height, t
30
30
  * @returns A new array of edges with the new edge added
31
31
  */
32
32
  export declare const addEdge: <EdgeType extends EdgeBase>(edgeParams: EdgeType | Connection, edges: EdgeType[]) => EdgeType[];
33
- export type UpdateEdgeOptions = {
33
+ export type ReconnectEdgeOptions = {
34
34
  shouldReplaceId?: boolean;
35
35
  };
36
36
  /**
37
- * A handy utility to update an existing Edge with new properties
37
+ * A handy utility to reconnect an existing edge with new properties
38
38
  * @param oldEdge - The edge you want to update
39
39
  * @param newConnection - The new connection you want to update the edge with
40
40
  * @param edges - The array of all current edges
41
41
  * @param options.shouldReplaceId - should the id of the old edge be replaced with the new connection id
42
42
  * @returns the updated edges array
43
43
  */
44
- export declare const updateEdge: <EdgeType extends EdgeBase>(oldEdge: EdgeType, newConnection: Connection, edges: EdgeType[], options?: UpdateEdgeOptions) => EdgeType[];
44
+ export declare const reconnectEdge: <EdgeType extends EdgeBase>(oldEdge: EdgeType, newConnection: Connection, edges: EdgeType[], options?: ReconnectEdgeOptions) => EdgeType[];
45
45
  export {};
46
46
  //# sourceMappingURL=general.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../src/utils/edges/general.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAA6B,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIrG,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,GACR,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAQnC;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EACpC,UAAU,EACV,UAAU,EACV,QAAgB,EAChB,MAAU,EACV,eAAuB,GACxB,EAAE,mBAAmB,GAAG,MAAM,CAS9B;AAED,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,mBAAmB,GAAG,OAAO,CAmBhH;AAeD;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,0CACN,QAAQ,GAAG,UAAU,SAC1B,QAAQ,EAAE,KAChB,QAAQ,EA8BV,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,uCACZ,QAAQ,iBACF,UAAU,SAClB,QAAQ,EAAE,YACR,iBAAiB,KACzB,QAAQ,EA4BV,CAAC"}
1
+ {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../src/utils/edges/general.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAA6B,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIrG,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,GACR,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAQnC;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EACpC,UAAU,EACV,UAAU,EACV,QAAgB,EAChB,MAAU,EACV,eAAuB,GACxB,EAAE,mBAAmB,GAAG,MAAM,CAS9B;AAED,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,mBAAmB,GAAG,OAAO,CAmBhH;AAeD;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,0CACN,QAAQ,GAAG,UAAU,SAC1B,QAAQ,EAAE,KAChB,QAAQ,EA8BV,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,uCACf,QAAQ,iBACF,UAAU,SAClB,QAAQ,EAAE,YACR,oBAAoB,KAC5B,QAAQ,EA4BV,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { EdgePosition } from '../../types/edges';
2
2
  import { ConnectionMode, OnError } from '../../types/general';
3
3
  import { InternalNodeBase } from '../../types/nodes';
4
+ import { Position } from '../../types/utils';
5
+ import { HandleElement } from '../../types';
4
6
  export type GetEdgePositionParams = {
5
7
  id: string;
6
8
  sourceNode: InternalNodeBase;
@@ -11,4 +13,5 @@ export type GetEdgePositionParams = {
11
13
  onError?: OnError;
12
14
  };
13
15
  export declare function getEdgePosition(params: GetEdgePositionParams): EdgePosition | null;
16
+ export declare function getHandlePosition(node: InternalNodeBase, handle: HandleElement | null, fallbackPosition?: Position): number[];
14
17
  //# sourceMappingURL=positions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"positions.d.ts","sourceRoot":"","sources":["../../../src/utils/edges/positions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAc,MAAM,mBAAmB,CAAC;AAMjE,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,gBAAgB,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAUF,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CA6ClF"}
1
+ {"version":3,"file":"positions.d.ts","sourceRoot":"","sources":["../../../src/utils/edges/positions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAc,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,gBAAgB,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAUF,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CA6ClF;AA2BD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,aAAa,GAAG,IAAI,EAC5B,gBAAgB,GAAE,QAAwB,GACzC,MAAM,EAAE,CAgBV"}
@@ -18,7 +18,7 @@ export type OnPointerDownParams = {
18
18
  onConnect?: OnConnect;
19
19
  onConnectEnd?: OnConnectEnd;
20
20
  isValidConnection?: IsValidConnection;
21
- onEdgeUpdateEnd?: (evt: MouseEvent | TouchEvent) => void;
21
+ onReconnectEnd?: (evt: MouseEvent | TouchEvent) => void;
22
22
  getTransform: () => Transform;
23
23
  getConnectionStartHandle: () => ConnectingHandle | null;
24
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"XYHandle.d.ts","sourceRoot":"","sources":["../../src/xyhandle/XYHandle.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,UAAU,EACX,MAAM,UAAU,CAAC;AAIlB,MAAM,MAAM,mBAAmB,GAAG;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,KAAK,EAAE,KAAK,CAAC;IACb,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,KAAK,IAAI,CAAC;IACzD,YAAY,EAAE,MAAM,SAAS,CAAC;IAC9B,wBAAwB,EAAE,MAAM,gBAAgB,GAAG,IAAI,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;IAChE,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,GAAG,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACrF,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,aAAa,KAAK,MAAM,CAAC;CAC5E,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACpC,CAAC;AAwPF,eAAO,MAAM,QAAQ,EAAE,gBAGtB,CAAC"}
1
+ {"version":3,"file":"XYHandle.d.ts","sourceRoot":"","sources":["../../src/xyhandle/XYHandle.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,UAAU,EAEX,MAAM,UAAU,CAAC;AAIlB,MAAM,MAAM,mBAAmB,GAAG;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,KAAK,EAAE,KAAK,CAAC;IACb,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,KAAK,IAAI,CAAC;IACxD,YAAY,EAAE,MAAM,SAAS,CAAC;IAC9B,wBAAwB,EAAE,MAAM,gBAAgB,GAAG,IAAI,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;IAChE,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,GAAG,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACrF,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,aAAa,KAAK,MAAM,CAAC;CAC5E,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACpC,CAAC;AAuPF,eAAO,MAAM,QAAQ,EAAE,gBAGtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/xyhandle/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,gBAAgB,EAChB,UAAU,EACX,MAAM,UAAU,CAAC;AAIlB,wBAAgB,UAAU,CACxB,IAAI,EAAE,gBAAgB,EACtB,YAAY,EAAE,gBAAgB,EAC9B,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,GACpB,gBAAgB,EAAE,CAapB;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,UAAU,EACf,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,gBAAgB,EAAE,GAC1B,gBAAgB,GAAG,IAAI,CAyBzB;AAED,KAAK,qBAAqB,GAAG;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,MAAM,EACN,QAAQ,EACR,UAAU,GACX,EAAE,qBAAqB,GAAG,gBAAgB,EAAE,CAa5C;AAED,wBAAgB,aAAa,CAC3B,eAAe,EAAE,UAAU,GAAG,SAAS,EACvC,aAAa,EAAE,OAAO,GAAG,IAAI,GAC5B,UAAU,GAAG,IAAI,CAUnB;AAED,wBAAgB,mBAAmB,CAAC,wBAAwB,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,oBAU5F"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/xyhandle/utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,gBAAgB,EAChB,UAAU,EACX,MAAM,UAAU,CAAC;AAIlB,wBAAgB,UAAU,CACxB,IAAI,EAAE,gBAAgB,EACtB,YAAY,EAAE,gBAAgB,EAC9B,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,GACpB,gBAAgB,EAAE,CAcpB;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,UAAU,EACf,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,gBAAgB,EAAE,GAC1B,gBAAgB,GAAG,IAAI,CAyBzB;AAED,KAAK,qBAAqB,GAAG;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,MAAM,EACN,QAAQ,EACR,UAAU,GACX,EAAE,qBAAqB,GAAG,gBAAgB,EAAE,CAa5C;AAED,wBAAgB,aAAa,CAC3B,eAAe,EAAE,UAAU,GAAG,SAAS,EACvC,aAAa,EAAE,OAAO,GAAG,IAAI,GAC5B,UAAU,GAAG,IAAI,CAUnB;AAED,wBAAgB,mBAAmB,CAAC,wBAAwB,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,oBAU5F"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/xyminimap/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,OAAO,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE7E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,OAAO,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,SAAS,CAAC;IAC9B,YAAY,EAAE,MAAM,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,gBAAgB,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,eAAe;4FAWtF,eAAe;;;EAiFnB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/xyminimap/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,OAAO,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE7E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,OAAO,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,SAAS,CAAC;IAC9B,YAAY,EAAE,MAAM,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,gBAAgB,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,eAAe;4FAWtF,eAAe;;;EAsFnB"}
package/dist/umd/index.js CHANGED
@@ -1 +1 @@
1
- !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).XYFlowSystem={})}(this,(function(t){"use strict";const e={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:t=>`Node type "${t}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:t=>`The old edge with id=${t} does not exist.`,error009:t=>`Marker type "${t}" doesn't exist.`,error008:(t,{id:e,sourceHandle:n,targetHandle:o})=>`Couldn't create edge for ${t} handle id: "${n?o:n}", edge id: ${e}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:t=>`Edge type "${t}" not found. Using fallback type "default".`,error012:t=>`Node with id "${t}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(t="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${t}/dist/style.css' or base.css to make sure everything is working properly.`},n=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]];var o,r,i,a,s,u;t.ConnectionMode=void 0,(o=t.ConnectionMode||(t.ConnectionMode={})).Strict="strict",o.Loose="loose",t.PanOnScrollMode=void 0,(r=t.PanOnScrollMode||(t.PanOnScrollMode={})).Free="free",r.Vertical="vertical",r.Horizontal="horizontal",t.SelectionMode=void 0,(i=t.SelectionMode||(t.SelectionMode={})).Partial="partial",i.Full="full",t.ConnectionLineType=void 0,(a=t.ConnectionLineType||(t.ConnectionLineType={})).Bezier="default",a.Straight="straight",a.Step="step",a.SmoothStep="smoothstep",a.SimpleBezier="simplebezier",t.MarkerType=void 0,(s=t.MarkerType||(t.MarkerType={})).Arrow="arrow",s.ArrowClosed="arrowclosed",t.Position=void 0,(u=t.Position||(t.Position={})).Left="left",u.Top="top",u.Right="right",u.Bottom="bottom";const c=t=>"id"in t&&"source"in t&&"target"in t,l=(t,e=[0,0])=>{const{width:n,height:o}=C(t),r="internals"in t?t.internals.positionAbsolute:t.position,i=t.origin||e,a=n*i[0],s=o*i[1];return{position:{x:t.position.x-a,y:t.position.y-s},positionAbsolute:{x:r.x-a,y:r.y-s}}},h=(t,e={nodeOrigin:[0,0]})=>{if(0===t.length)return{x:0,y:0,width:0,height:0};const n=t.reduce(((t,n)=>{const o=E(n,e.nodeOrigin);return x(t,o)}),{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return _(n)},d=(t,e={nodeOrigin:[0,0]})=>{if(0===t.size)return{x:0,y:0,width:0,height:0};let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0};return t.forEach((t=>{if(null==e.filter||e.filter(t)){const o=E(t,e.nodeOrigin);n=x(n,o)}})),_(n)},f=(t,e)=>{const n=new Set;return t.forEach((t=>{n.add(t.id)})),e.filter((t=>n.has(t.source)||n.has(t.target)))};function p({nodeId:t,nextPosition:n,nodeLookup:o,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){const s=o.get(t),u=s.parentId?o.get(s.parentId):void 0,{x:c,y:h}=u?l(u,u.origin||r).positionAbsolute:{x:0,y:0};let d=function(t,e){return e&&"parent"!==e?[e[0],[e[1][0]-(t.measured?.width??0),e[1][1]-(t.measured?.height??0)]]:e}(s,s.extent||i);if("parent"!==s.extent||s.expandParent)u&&$(s.extent)&&(d=[[s.extent[0][0]+c,s.extent[0][1]+h],[s.extent[1][0]+c,s.extent[1][1]+h]]);else if(u){const t=s.measured.width,e=s.measured.height,n=u.measured.width,o=u.measured.height;if(t&&e&&n&&o){const i=s.origin||r,a=c+t*i[0],u=h+e*i[1];d=[[a,u],[a+n-t,u+o-e]]}}else a?.("005",e.error005());const f=$(d)?m(n,d):n;return{position:{x:f.x-c,y:f.y-h},positionAbsolute:f}}const g=(t,e=0,n=1)=>Math.min(Math.max(t,e),n),m=(t={x:0,y:0},e)=>({x:g(t.x,e[0][0],e[1][0]),y:g(t.y,e[0][1],e[1][1])}),y=(t,e,n)=>t<e?g(Math.abs(t-e),1,50)/50:t>n?-g(Math.abs(t-n),1,50)/50:0,v=(t,e)=>[20*y(t.x,35,e.width-35),20*y(t.y,35,e.height-35)],x=(t,e)=>({x:Math.min(t.x,e.x),y:Math.min(t.y,e.y),x2:Math.max(t.x2,e.x2),y2:Math.max(t.y2,e.y2)}),w=({x:t,y:e,width:n,height:o})=>({x:t,y:e,x2:t+n,y2:e+o}),_=({x:t,y:e,x2:n,y2:o})=>({x:t,y:e,width:n-t,height:o-e}),b=(t,e=[0,0])=>{const{x:n,y:o}=l(t,e).positionAbsolute;return{x:n,y:o,width:t.measured?.width??t.width??0,height:t.measured?.height??t.height??0}},E=(t,e=[0,0])=>{const{x:n,y:o}=l(t,e).positionAbsolute;return{x:n,y:o,x2:n+(t.measured?.width??t.width??0),y2:o+(t.measured?.height??t.height??0)}},M=(t,e)=>_(x(w(t),w(e))),P=(t,e)=>{const n=Math.max(0,Math.min(t.x+t.width,e.x+e.width)-Math.max(t.x,e.x)),o=Math.max(0,Math.min(t.y+t.height,e.y+e.height)-Math.max(t.y,e.y));return Math.ceil(n*o)},S=t=>!isNaN(t)&&isFinite(t),z=(t,e)=>{},N=(t,e=[1,1])=>({x:e[0]*Math.round(t.x/e[0]),y:e[1]*Math.round(t.y/e[1])}),k=({x:t,y:e},[n,o,r],i=!1,a=[1,1])=>{const s={x:(t-n)/r,y:(e-o)/r};return i?N(s,a):s},T=({x:t,y:e},[n,o,r])=>({x:t*r+n,y:e*r+o}),A=(t,e,n,o,r,i)=>{const a=e/(t.width*(1+i)),s=n/(t.height*(1+i)),u=Math.min(a,s),c=g(u,o,r);return{x:e/2-(t.x+t.width/2)*c,y:n/2-(t.y+t.height/2)*c,zoom:c}},I=()=>"undefined"!=typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0;function $(t){return void 0!==t&&"parent"!==t}function C(t){return{width:t.measured?.width??t.width??t.initialWidth??0,height:t.measured?.height??t.height??t.initialHeight??0}}function O(t,{snapGrid:e=[0,0],snapToGrid:n=!1,transform:o}){const{x:r,y:i}=R(t),a=k({x:r,y:i},o),{x:s,y:u}=n?N(a,e):a;return{xSnapped:s,ySnapped:u,...a}}const H=t=>({width:t.offsetWidth,height:t.offsetHeight}),X=t=>t.getRootNode?.()||window?.document,Y=["INPUT","SELECT","TEXTAREA"];const B=t=>"clientX"in t,R=(t,e)=>{const n=B(t),o=n?t.clientX:t.touches?.[0].clientX,r=n?t.clientY:t.touches?.[0].clientY;return{x:o-(e?.left??0),y:r-(e?.top??0)}},D=(t,e,n,o,r=[0,0])=>{const i=e.querySelectorAll(t);if(!i||!i.length)return null;const a=Array.from(i),s=n.left-n.width*r[0],u=n.top-n.height*r[1];return a.map((t=>{const e=t.getBoundingClientRect();return{id:t.getAttribute("data-handleid"),position:t.getAttribute("data-handlepos"),x:(e.left-s)/o,y:(e.top-u)/o,...H(t)}}))};function L({sourceX:t,sourceY:e,targetX:n,targetY:o,sourceControlX:r,sourceControlY:i,targetControlX:a,targetControlY:s}){const u=.125*t+.375*r+.375*a+.125*n,c=.125*e+.375*i+.375*s+.125*o;return[u,c,Math.abs(u-t),Math.abs(c-e)]}function V(t,e){return t>=0?.5*t:25*e*Math.sqrt(-t)}function q({pos:e,x1:n,y1:o,x2:r,y2:i,c:a}){switch(e){case t.Position.Left:return[n-V(n-r,a),o];case t.Position.Right:return[n+V(r-n,a),o];case t.Position.Top:return[n,o-V(o-i,a)];case t.Position.Bottom:return[n,o+V(i-o,a)]}}function Z({sourceX:t,sourceY:e,targetX:n,targetY:o}){const r=Math.abs(n-t)/2,i=n<t?n+r:n-r,a=Math.abs(o-e)/2;return[i,o<e?o+a:o-a,r,a]}const G=({source:t,sourceHandle:e,target:n,targetHandle:o})=>`xy-edge__${t}${e||""}-${n}${o||""}`;const j={[t.Position.Left]:{x:-1,y:0},[t.Position.Right]:{x:1,y:0},[t.Position.Top]:{x:0,y:-1},[t.Position.Bottom]:{x:0,y:1}},W=({source:e,sourcePosition:n=t.Position.Bottom,target:o})=>n===t.Position.Left||n===t.Position.Right?e.x<o.x?{x:1,y:0}:{x:-1,y:0}:e.y<o.y?{x:0,y:1}:{x:0,y:-1},F=(t,e)=>Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2));function K(t){return t&&!(!t.internals.handleBounds&&!t.handles?.length)&&!!(t.measured.width||t.width||t.initialWidth)}function U(t){if(!t)return null;const e=[],n=[];for(const o of t)o.width=o.width??1,o.height=o.height??1,"source"===o.type?e.push(o):"target"===o.type&&n.push(o);return{source:e,target:n}}function Q(e,n,o=null){const r=(o?.x??0)+n.internals.positionAbsolute.x,i=(o?.y??0)+n.internals.positionAbsolute.y,{width:a,height:s}=o??C(n);switch(e){case t.Position.Top:return[r+a/2,i];case t.Position.Right:return[r+a,i+s/2];case t.Position.Bottom:return[r+a/2,i+s];case t.Position.Left:return[r,i+s/2]}}function J(t,e){return t&&(e?t.find((t=>t.id===e)):t[0])||null}function tt(t,e){if(!t)return"";if("string"==typeof t)return t;return`${e?`${e}__`:""}${Object.keys(t).sort().map((e=>`${e}=${t[e]}`)).join("&")}`}function et(t,e={nodeOrigin:[0,0],elevateNodesOnSelect:!0,defaults:{}}){const n=e?.elevateNodesOnSelect?1e3:0;for(const[,o]of t){const r=o.parentId;if(!r)continue;if(!t.has(r))throw new Error(`Parent node ${r} not found`);const i=t.get(r),{x:a,y:s,z:u}=nt(o,t,{...o.position,z:(S(o.zIndex)?o.zIndex:0)+(o.selected?n:0)},i?.origin??e.nodeOrigin),c=o.internals.positionAbsolute,l=a!==c.x||s!==c.y;(l||u!==o.internals.z)&&(o.internals={...o.internals,positionAbsolute:l?{x:a,y:s}:c,z:u})}}function nt(t,e,n,o=[0,0]){if(!t.parentId)return n;const r=e.get(t.parentId),i=l(r,o).position;return nt(r,e,{x:(n.x??0)+i.x,y:(n.y??0)+i.y,z:(r.internals.z??0)>(n.z??0)?r.internals.z??0:n.z??0},r.origin||o)}function ot(t,e,n,o){const r=[],i=new Map;for(const n of t){const t=e.get(n.parentId);if(!t)continue;const r=i.get(n.parentId)?.expandedRect??b(t,t.origin??o),a=M(r,n.rect);i.set(n.parentId,{expandedRect:a,parent:t})}return i.size>0&&i.forEach((({expandedRect:e,parent:o},i)=>{const{position:a}=l(o,o.origin),s=C(o),u=e.x<a.x?Math.round(Math.abs(a.x-e.x)):0,c=e.y<a.y?Math.round(Math.abs(a.y-e.y)):0;if(u>0||c>0){r.push({id:i,type:"position",position:{x:a.x-u,y:a.y-c}});const e=n.get(i);e?.forEach((e=>{t.some((t=>t.id===e.id))||r.push({id:e.id,type:"position",position:{x:e.position.x+u,y:e.position.y+c}})}))}(s.width<e.width||s.height<e.height)&&r.push({id:i,type:"dimensions",setAttributes:!0,dimensions:{width:Math.max(s.width,Math.round(e.width)),height:Math.max(s.height,Math.round(e.height))}})})),r}var rt={value:()=>{}};function it(){for(var t,e=0,n=arguments.length,o={};e<n;++e){if(!(t=arguments[e]+"")||t in o||/[\s.]/.test(t))throw new Error("illegal type: "+t);o[t]=[]}return new at(o)}function at(t){this._=t}function st(t,e){for(var n,o=0,r=t.length;o<r;++o)if((n=t[o]).name===e)return n.value}function ut(t,e,n){for(var o=0,r=t.length;o<r;++o)if(t[o].name===e){t[o]=rt,t=t.slice(0,o).concat(t.slice(o+1));break}return null!=n&&t.push({name:e,value:n}),t}at.prototype=it.prototype={constructor:at,on:function(t,e){var n,o,r=this._,i=(o=r,(t+"").trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");if(n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),t&&!o.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))),a=-1,s=i.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++a<s;)if(n=(t=i[a]).type)r[n]=ut(r[n],t.name,e);else if(null==e)for(n in r)r[n]=ut(r[n],t.name,null);return this}for(;++a<s;)if((n=(t=i[a]).type)&&(n=st(r[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new at(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,o,r=new Array(n),i=0;i<n;++i)r[i]=arguments[i+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(i=0,n=(o=this._[t]).length;i<n;++i)o[i].value.apply(e,r)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var o=this._[t],r=0,i=o.length;r<i;++r)o[r].value.apply(e,n)}};var ct="http://www.w3.org/1999/xhtml",lt={svg:"http://www.w3.org/2000/svg",xhtml:ct,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function ht(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),lt.hasOwnProperty(e)?{space:lt[e],local:t}:t}function dt(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===ct&&e.documentElement.namespaceURI===ct?e.createElement(t):e.createElementNS(n,t)}}function ft(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function pt(t){var e=ht(t);return(e.local?ft:dt)(e)}function gt(){}function mt(t){return null==t?gt:function(){return this.querySelector(t)}}function yt(){return[]}function vt(t){return null==t?yt:function(){return this.querySelectorAll(t)}}function xt(t){return function(){return null==(e=t.apply(this,arguments))?[]:Array.isArray(e)?e:Array.from(e);var e}}function wt(t){return function(){return this.matches(t)}}function _t(t){return function(e){return e.matches(t)}}var bt=Array.prototype.find;function Et(){return this.firstElementChild}var Mt=Array.prototype.filter;function Pt(){return Array.from(this.children)}function St(t){return new Array(t.length)}function zt(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function Nt(t,e,n,o,r,i){for(var a,s=0,u=e.length,c=i.length;s<c;++s)(a=e[s])?(a.__data__=i[s],o[s]=a):n[s]=new zt(t,i[s]);for(;s<u;++s)(a=e[s])&&(r[s]=a)}function kt(t,e,n,o,r,i,a){var s,u,c,l=new Map,h=e.length,d=i.length,f=new Array(h);for(s=0;s<h;++s)(u=e[s])&&(f[s]=c=a.call(u,u.__data__,s,e)+"",l.has(c)?r[s]=u:l.set(c,u));for(s=0;s<d;++s)c=a.call(t,i[s],s,i)+"",(u=l.get(c))?(o[s]=u,u.__data__=i[s],l.delete(c)):n[s]=new zt(t,i[s]);for(s=0;s<h;++s)(u=e[s])&&l.get(f[s])===u&&(r[s]=u)}function Tt(t){return t.__data__}function At(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function It(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function $t(t){return function(){this.removeAttribute(t)}}function Ct(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Ot(t,e){return function(){this.setAttribute(t,e)}}function Ht(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function Xt(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function Yt(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function Bt(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Rt(t){return function(){this.style.removeProperty(t)}}function Dt(t,e,n){return function(){this.style.setProperty(t,e,n)}}function Lt(t,e,n){return function(){var o=e.apply(this,arguments);null==o?this.style.removeProperty(t):this.style.setProperty(t,o,n)}}function Vt(t,e){return t.style.getPropertyValue(e)||Bt(t).getComputedStyle(t,null).getPropertyValue(e)}function qt(t){return function(){delete this[t]}}function Zt(t,e){return function(){this[t]=e}}function Gt(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function jt(t){return t.trim().split(/^|\s+/)}function Wt(t){return t.classList||new Ft(t)}function Ft(t){this._node=t,this._names=jt(t.getAttribute("class")||"")}function Kt(t,e){for(var n=Wt(t),o=-1,r=e.length;++o<r;)n.add(e[o])}function Ut(t,e){for(var n=Wt(t),o=-1,r=e.length;++o<r;)n.remove(e[o])}function Qt(t){return function(){Kt(this,t)}}function Jt(t){return function(){Ut(this,t)}}function te(t,e){return function(){(e.apply(this,arguments)?Kt:Ut)(this,t)}}function ee(){this.textContent=""}function ne(t){return function(){this.textContent=t}}function oe(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function re(){this.innerHTML=""}function ie(t){return function(){this.innerHTML=t}}function ae(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function se(){this.nextSibling&&this.parentNode.appendChild(this)}function ue(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ce(){return null}function le(){var t=this.parentNode;t&&t.removeChild(this)}function he(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function de(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function fe(t){return function(){var e=this.__on;if(e){for(var n,o=0,r=-1,i=e.length;o<i;++o)n=e[o],t.type&&n.type!==t.type||n.name!==t.name?e[++r]=n:this.removeEventListener(n.type,n.listener,n.options);++r?e.length=r:delete this.__on}}}function pe(t,e,n){return function(){var o,r=this.__on,i=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(r)for(var a=0,s=r.length;a<s;++a)if((o=r[a]).type===t.type&&o.name===t.name)return this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=i,o.options=n),void(o.value=e);this.addEventListener(t.type,i,n),o={type:t.type,name:t.name,value:e,listener:i,options:n},r?r.push(o):this.__on=[o]}}function ge(t,e,n){var o=Bt(t),r=o.CustomEvent;"function"==typeof r?r=new r(e,n):(r=o.document.createEvent("Event"),n?(r.initEvent(e,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(e,!1,!1)),t.dispatchEvent(r)}function me(t,e){return function(){return ge(this,t,e)}}function ye(t,e){return function(){return ge(this,t,e.apply(this,arguments))}}zt.prototype={constructor:zt,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},Ft.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var ve=[null];function xe(t,e){this._groups=t,this._parents=e}function we(){return new xe([[document.documentElement]],ve)}function _e(t){return"string"==typeof t?new xe([[document.querySelector(t)]],[document.documentElement]):new xe([[t]],ve)}function be(t,e){if(t=function(t){let e;for(;e=t.sourceEvent;)t=e;return t}(t),void 0===e&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=t.clientX,o.y=t.clientY,[(o=o.matrixTransform(e.getScreenCTM().inverse())).x,o.y]}if(e.getBoundingClientRect){var r=e.getBoundingClientRect();return[t.clientX-r.left-e.clientLeft,t.clientY-r.top-e.clientTop]}}return[t.pageX,t.pageY]}xe.prototype=we.prototype={constructor:xe,select:function(t){"function"!=typeof t&&(t=mt(t));for(var e=this._groups,n=e.length,o=new Array(n),r=0;r<n;++r)for(var i,a,s=e[r],u=s.length,c=o[r]=new Array(u),l=0;l<u;++l)(i=s[l])&&(a=t.call(i,i.__data__,l,s))&&("__data__"in i&&(a.__data__=i.__data__),c[l]=a);return new xe(o,this._parents)},selectAll:function(t){t="function"==typeof t?xt(t):vt(t);for(var e=this._groups,n=e.length,o=[],r=[],i=0;i<n;++i)for(var a,s=e[i],u=s.length,c=0;c<u;++c)(a=s[c])&&(o.push(t.call(a,a.__data__,c,s)),r.push(a));return new xe(o,r)},selectChild:function(t){return this.select(null==t?Et:function(t){return function(){return bt.call(this.children,t)}}("function"==typeof t?t:_t(t)))},selectChildren:function(t){return this.selectAll(null==t?Pt:function(t){return function(){return Mt.call(this.children,t)}}("function"==typeof t?t:_t(t)))},filter:function(t){"function"!=typeof t&&(t=wt(t));for(var e=this._groups,n=e.length,o=new Array(n),r=0;r<n;++r)for(var i,a=e[r],s=a.length,u=o[r]=[],c=0;c<s;++c)(i=a[c])&&t.call(i,i.__data__,c,a)&&u.push(i);return new xe(o,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,Tt);var n,o=e?kt:Nt,r=this._parents,i=this._groups;"function"!=typeof t&&(n=t,t=function(){return n});for(var a=i.length,s=new Array(a),u=new Array(a),c=new Array(a),l=0;l<a;++l){var h=r[l],d=i[l],f=d.length,p=At(t.call(h,h&&h.__data__,l,r)),g=p.length,m=u[l]=new Array(g),y=s[l]=new Array(g);o(h,d,m,y,c[l]=new Array(f),p,e);for(var v,x,w=0,_=0;w<g;++w)if(v=m[w]){for(w>=_&&(_=w+1);!(x=y[_])&&++_<g;);v._next=x||null}}return(s=new xe(s,r))._enter=u,s._exit=c,s},enter:function(){return new xe(this._enter||this._groups.map(St),this._parents)},exit:function(){return new xe(this._exit||this._groups.map(St),this._parents)},join:function(t,e,n){var o=this.enter(),r=this,i=this.exit();return"function"==typeof t?(o=t(o))&&(o=o.selection()):o=o.append(t+""),null!=e&&(r=e(r))&&(r=r.selection()),null==n?i.remove():n(i),o&&r?o.merge(r).order():r},merge:function(t){for(var e=t.selection?t.selection():t,n=this._groups,o=e._groups,r=n.length,i=o.length,a=Math.min(r,i),s=new Array(r),u=0;u<a;++u)for(var c,l=n[u],h=o[u],d=l.length,f=s[u]=new Array(d),p=0;p<d;++p)(c=l[p]||h[p])&&(f[p]=c);for(;u<r;++u)s[u]=n[u];return new xe(s,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var o,r=t[e],i=r.length-1,a=r[i];--i>=0;)(o=r[i])&&(a&&4^o.compareDocumentPosition(a)&&a.parentNode.insertBefore(o,a),a=o);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=It);for(var n=this._groups,o=n.length,r=new Array(o),i=0;i<o;++i){for(var a,s=n[i],u=s.length,c=r[i]=new Array(u),l=0;l<u;++l)(a=s[l])&&(c[l]=a);c.sort(e)}return new xe(r,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var o=t[e],r=0,i=o.length;r<i;++r){var a=o[r];if(a)return a}return null},size:function(){let t=0;for(const e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,n=0,o=e.length;n<o;++n)for(var r,i=e[n],a=0,s=i.length;a<s;++a)(r=i[a])&&t.call(r,r.__data__,a,i);return this},attr:function(t,e){var n=ht(t);if(arguments.length<2){var o=this.node();return n.local?o.getAttributeNS(n.space,n.local):o.getAttribute(n)}return this.each((null==e?n.local?Ct:$t:"function"==typeof e?n.local?Yt:Xt:n.local?Ht:Ot)(n,e))},style:function(t,e,n){return arguments.length>1?this.each((null==e?Rt:"function"==typeof e?Lt:Dt)(t,e,null==n?"":n)):Vt(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?qt:"function"==typeof e?Gt:Zt)(t,e)):this.node()[t]},classed:function(t,e){var n=jt(t+"");if(arguments.length<2){for(var o=Wt(this.node()),r=-1,i=n.length;++r<i;)if(!o.contains(n[r]))return!1;return!0}return this.each(("function"==typeof e?te:e?Qt:Jt)(n,e))},text:function(t){return arguments.length?this.each(null==t?ee:("function"==typeof t?oe:ne)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?re:("function"==typeof t?ae:ie)(t)):this.node().innerHTML},raise:function(){return this.each(se)},lower:function(){return this.each(ue)},append:function(t){var e="function"==typeof t?t:pt(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var n="function"==typeof t?t:pt(t),o=null==e?ce:"function"==typeof e?e:mt(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),o.apply(this,arguments)||null)}))},remove:function(){return this.each(le)},clone:function(t){return this.select(t?de:he)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,n){var o,r,i=function(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}(t+""),a=i.length;if(!(arguments.length<2)){for(s=e?pe:fe,o=0;o<a;++o)this.each(s(i[o],e,n));return this}var s=this.node().__on;if(s)for(var u,c=0,l=s.length;c<l;++c)for(o=0,u=s[c];o<a;++o)if((r=i[o]).type===u.type&&r.name===u.name)return u.value},dispatch:function(t,e){return this.each(("function"==typeof e?ye:me)(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var o,r=t[e],i=0,a=r.length;i<a;++i)(o=r[i])&&(yield o)}};const Ee={passive:!1},Me={capture:!0,passive:!1};function Pe(t){t.stopImmediatePropagation()}function Se(t){t.preventDefault(),t.stopImmediatePropagation()}function ze(t){var e=t.document.documentElement,n=_e(t).on("dragstart.drag",Se,Me);"onselectstart"in e?n.on("selectstart.drag",Se,Me):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function Ne(t,e){var n=t.document.documentElement,o=_e(t).on("dragstart.drag",null);e&&(o.on("click.drag",Se,Me),setTimeout((function(){o.on("click.drag",null)}),0)),"onselectstart"in n?o.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var ke=t=>()=>t;function Te(t,{sourceEvent:e,subject:n,target:o,identifier:r,active:i,x:a,y:s,dx:u,dy:c,dispatch:l}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:u,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:l}})}function Ae(t){return!t.ctrlKey&&!t.button}function Ie(){return this.parentNode}function $e(t,e){return null==e?{x:t.x,y:t.y}:e}function Ce(){return navigator.maxTouchPoints||"ontouchstart"in this}function Oe(){var t,e,n,o,r=Ae,i=Ie,a=$e,s=Ce,u={},c=it("start","drag","end"),l=0,h=0;function d(t){t.on("mousedown.drag",f).filter(s).on("touchstart.drag",m).on("touchmove.drag",y,Ee).on("touchend.drag touchcancel.drag",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(a,s){if(!o&&r.call(this,a,s)){var u=x(this,i.call(this,a,s),a,s,"mouse");u&&(_e(a.view).on("mousemove.drag",p,Me).on("mouseup.drag",g,Me),ze(a.view),Pe(a),n=!1,t=a.clientX,e=a.clientY,u("start",a))}}function p(o){if(Se(o),!n){var r=o.clientX-t,i=o.clientY-e;n=r*r+i*i>h}u.mouse("drag",o)}function g(t){_e(t.view).on("mousemove.drag mouseup.drag",null),Ne(t.view,n),Se(t),u.mouse("end",t)}function m(t,e){if(r.call(this,t,e)){var n,o,a=t.changedTouches,s=i.call(this,t,e),u=a.length;for(n=0;n<u;++n)(o=x(this,s,t,e,a[n].identifier,a[n]))&&(Pe(t),o("start",t,a[n]))}}function y(t){var e,n,o=t.changedTouches,r=o.length;for(e=0;e<r;++e)(n=u[o[e].identifier])&&(Se(t),n("drag",t,o[e]))}function v(t){var e,n,r=t.changedTouches,i=r.length;for(o&&clearTimeout(o),o=setTimeout((function(){o=null}),500),e=0;e<i;++e)(n=u[r[e].identifier])&&(Pe(t),n("end",t,r[e]))}function x(t,e,n,o,r,i){var s,h,f,p=c.copy(),g=be(i||n,e);if(null!=(f=a.call(t,new Te("beforestart",{sourceEvent:n,target:d,identifier:r,active:l,x:g[0],y:g[1],dx:0,dy:0,dispatch:p}),o)))return s=f.x-g[0]||0,h=f.y-g[1]||0,function n(i,a,c){var m,y=g;switch(i){case"start":u[r]=n,m=l++;break;case"end":delete u[r],--l;case"drag":g=be(c||a,e),m=l}p.call(i,t,new Te(i,{sourceEvent:a,subject:f,target:d,identifier:r,active:m,x:g[0]+s,y:g[1]+h,dx:g[0]-y[0],dy:g[1]-y[1],dispatch:p}),o)}}return d.filter=function(t){return arguments.length?(r="function"==typeof t?t:ke(!!t),d):r},d.container=function(t){return arguments.length?(i="function"==typeof t?t:ke(t),d):i},d.subject=function(t){return arguments.length?(a="function"==typeof t?t:ke(t),d):a},d.touchable=function(t){return arguments.length?(s="function"==typeof t?t:ke(!!t),d):s},d.on=function(){var t=c.on.apply(c,arguments);return t===c?d:t},d.clickDistance=function(t){return arguments.length?(h=(t=+t)*t,d):Math.sqrt(h)},d}function He(t,e){if(!t.parentId)return!1;const n=e.get(t.parentId);return!!n&&(!!n.selected||He(n,e))}function Xe(t,e,n){let o=t;do{if(o?.matches(e))return!0;if(o===n)return!1;o=o.parentElement}while(o);return!1}function Ye({nodeId:t,dragItems:e,nodeLookup:n}){const o=[];for(const[t,r]of e){const e=n.get(t)?.internals.userNode;e&&o.push({...e,position:r.position})}if(!t)return[o[0],o];const r=n.get(t).internals.userNode;return[{...r,position:e.get(t)?.position||r.position},o]}function Be(t,e,n,o){return(e[n]||[]).reduce(((e,r)=>(`${t.id}-${r.id}-${n}`!==o&&e.push({id:r.id||null,type:n,nodeId:t.id,x:t.internals.positionAbsolute.x+r.x+r.width/2,y:t.internals.positionAbsolute.y+r.y+r.height/2}),e)),[])}function Re(t,e){return t||(e?.classList.contains("target")?"target":e?.classList.contains("source")?"source":null)}function De(t,e){let n=null;return e?n="valid":t&&!e&&(n="invalid"),n}Te.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};const Le=()=>!0;let Ve=null;function qe(e,{handle:n,connectionMode:o,fromNodeId:r,fromHandleId:i,fromType:a,doc:s,lib:u,flowId:c,isValidConnection:l=Le}){const h="target"===a,d=n?s.querySelector(`.${u}-flow__handle[data-id="${c}-${n?.nodeId}-${n?.id}-${n?.type}"]`):null,{x:f,y:p}=R(e),g=s.elementFromPoint(f,p),m=g?.classList.contains(`${u}-flow__handle`)?g:d,y={handleDomNode:m,isValid:!1,connection:null,endHandle:null};if(m){const e=Re(void 0,m),n=m.getAttribute("data-nodeid"),a=m.getAttribute("data-handleid"),s=m.classList.contains("connectable"),u=m.classList.contains("connectableend");if(!n)return y;const c={source:h?n:r,sourceHandle:h?a:i,target:h?r:n,targetHandle:h?i:a};y.connection=c;s&&u&&(o===t.ConnectionMode.Strict?h&&"source"===e||!h&&"target"===e:n!==r||a!==i)&&(y.endHandle={nodeId:n,handleId:a,type:e},y.isValid=l(c))}return y}const Ze={onPointerDown:function(t,{connectionMode:e,connectionRadius:n,handleId:o,nodeId:r,edgeUpdaterType:i,isTarget:a,domNode:s,nodeLookup:u,lib:c,autoPanOnConnect:l,flowId:h,panBy:d,cancelConnection:f,onConnectStart:p,onConnect:g,onConnectEnd:m,isValidConnection:y=Le,onEdgeUpdateEnd:x,updateConnection:w,getTransform:_,getConnectionStartHandle:b}){const E=X(t.target);let M,P=0;const{x:S,y:z}=R(t),N=E?.elementFromPoint(S,z),A=Re(i,N),I=s?.getBoundingClientRect();if(!I||!A)return;let $=R(t,I),C=!1,O=null,H=!1,Y=null;const B=function({nodeLookup:t,nodeId:e,handleId:n,handleType:o}){const r=[];for(const[,i]of t)if(i.internals.handleBounds){const t=`${e}-${n}-${o}`,a=Be(i,i.internals.handleBounds,"source",t),s=Be(i,i.internals.handleBounds,"target",t);r.push(...a,...s)}return r}({nodeLookup:u,nodeId:r,handleId:o,handleType:A});function D(){if(!l||!I)return;const[t,e]=v($,I);d({x:t,y:e}),P=requestAnimationFrame(D)}function L(t){b()||V(t);const i=_();$=R(t,I),M=function(t,e,n){let o=[],r=1/0;for(const i of n){const n=Math.sqrt(Math.pow(i.x-t.x,2)+Math.pow(i.y-t.y,2));n<=e&&(n<r?o=[i]:n===r&&o.push(i),r=n)}return o.length?1===o.length?o[0]:o.find((t=>"target"===t.type))||o[0]:null}(k($,i,!1,[1,1]),n,B),C||(D(),C=!0);const s=qe(t,{handle:M,connectionMode:e,fromNodeId:r,fromHandleId:o,fromType:a?"target":"source",isValidConnection:y,doc:E,lib:c,flowId:h});Y=s.handleDomNode,O=s.connection,H=s.isValid,w({connectionStartHandle:Ve,connectionPosition:M&&H?T({x:M.x,y:M.y},i):$,connectionStatus:De(!!M,H),connectionEndHandle:s.endHandle})}function V(t){(M||Y)&&O&&H&&g?.(O),m?.(t),i&&x?.(t),f(),cancelAnimationFrame(P),C=!1,H=!1,O=null,Y=null,Ve=null,E.removeEventListener("mousemove",L),E.removeEventListener("mouseup",V),E.removeEventListener("touchmove",L),E.removeEventListener("touchend",V)}Ve={nodeId:r,handleId:o,type:A},w({connectionPosition:$,connectionStatus:null,connectionStartHandle:Ve,connectionEndHandle:null}),p?.(t,{nodeId:r,handleId:o,handleType:A}),E.addEventListener("mousemove",L),E.addEventListener("mouseup",V),E.addEventListener("touchmove",L),E.addEventListener("touchend",V)},isValid:qe};function Ge(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function je(t,e){var n=Object.create(t.prototype);for(var o in e)n[o]=e[o];return n}function We(){}var Fe=.7,Ke=1/Fe,Ue="\\s*([+-]?\\d+)\\s*",Qe="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Je="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",tn=/^#([0-9a-f]{3,8})$/,en=new RegExp(`^rgb\\(${Ue},${Ue},${Ue}\\)$`),nn=new RegExp(`^rgb\\(${Je},${Je},${Je}\\)$`),on=new RegExp(`^rgba\\(${Ue},${Ue},${Ue},${Qe}\\)$`),rn=new RegExp(`^rgba\\(${Je},${Je},${Je},${Qe}\\)$`),an=new RegExp(`^hsl\\(${Qe},${Je},${Je}\\)$`),sn=new RegExp(`^hsla\\(${Qe},${Je},${Je},${Qe}\\)$`),un={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function cn(){return this.rgb().formatHex()}function ln(){return this.rgb().formatRgb()}function hn(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=tn.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?dn(e):3===n?new gn(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?fn(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?fn(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=en.exec(t))?new gn(e[1],e[2],e[3],1):(e=nn.exec(t))?new gn(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=on.exec(t))?fn(e[1],e[2],e[3],e[4]):(e=rn.exec(t))?fn(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=an.exec(t))?_n(e[1],e[2]/100,e[3]/100,1):(e=sn.exec(t))?_n(e[1],e[2]/100,e[3]/100,e[4]):un.hasOwnProperty(t)?dn(un[t]):"transparent"===t?new gn(NaN,NaN,NaN,0):null}function dn(t){return new gn(t>>16&255,t>>8&255,255&t,1)}function fn(t,e,n,o){return o<=0&&(t=e=n=NaN),new gn(t,e,n,o)}function pn(t,e,n,o){return 1===arguments.length?((r=t)instanceof We||(r=hn(r)),r?new gn((r=r.rgb()).r,r.g,r.b,r.opacity):new gn):new gn(t,e,n,null==o?1:o);var r}function gn(t,e,n,o){this.r=+t,this.g=+e,this.b=+n,this.opacity=+o}function mn(){return`#${wn(this.r)}${wn(this.g)}${wn(this.b)}`}function yn(){const t=vn(this.opacity);return`${1===t?"rgb(":"rgba("}${xn(this.r)}, ${xn(this.g)}, ${xn(this.b)}${1===t?")":`, ${t})`}`}function vn(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function xn(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function wn(t){return((t=xn(t))<16?"0":"")+t.toString(16)}function _n(t,e,n,o){return o<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new En(t,e,n,o)}function bn(t){if(t instanceof En)return new En(t.h,t.s,t.l,t.opacity);if(t instanceof We||(t=hn(t)),!t)return new En;if(t instanceof En)return t;var e=(t=t.rgb()).r/255,n=t.g/255,o=t.b/255,r=Math.min(e,n,o),i=Math.max(e,n,o),a=NaN,s=i-r,u=(i+r)/2;return s?(a=e===i?(n-o)/s+6*(n<o):n===i?(o-e)/s+2:(e-n)/s+4,s/=u<.5?i+r:2-i-r,a*=60):s=u>0&&u<1?0:a,new En(a,s,u,t.opacity)}function En(t,e,n,o){this.h=+t,this.s=+e,this.l=+n,this.opacity=+o}function Mn(t){return(t=(t||0)%360)<0?t+360:t}function Pn(t){return Math.max(0,Math.min(1,t||0))}function Sn(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}Ge(We,hn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:cn,formatHex:cn,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return bn(this).formatHsl()},formatRgb:ln,toString:ln}),Ge(gn,pn,je(We,{brighter(t){return t=null==t?Ke:Math.pow(Ke,t),new gn(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?Fe:Math.pow(Fe,t),new gn(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new gn(xn(this.r),xn(this.g),xn(this.b),vn(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:mn,formatHex:mn,formatHex8:function(){return`#${wn(this.r)}${wn(this.g)}${wn(this.b)}${wn(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:yn,toString:yn})),Ge(En,(function(t,e,n,o){return 1===arguments.length?bn(t):new En(t,e,n,null==o?1:o)}),je(We,{brighter(t){return t=null==t?Ke:Math.pow(Ke,t),new En(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?Fe:Math.pow(Fe,t),new En(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,o=n+(n<.5?n:1-n)*e,r=2*n-o;return new gn(Sn(t>=240?t-240:t+120,r,o),Sn(t,r,o),Sn(t<120?t+240:t-120,r,o),this.opacity)},clamp(){return new En(Mn(this.h),Pn(this.s),Pn(this.l),vn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=vn(this.opacity);return`${1===t?"hsl(":"hsla("}${Mn(this.h)}, ${100*Pn(this.s)}%, ${100*Pn(this.l)}%${1===t?")":`, ${t})`}`}}));var zn=t=>()=>t;function Nn(t){return 1==(t=+t)?kn:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(o){return Math.pow(t+o*e,n)}}(e,n,t):zn(isNaN(e)?n:e)}}function kn(t,e){var n=e-t;return n?function(t,e){return function(n){return t+n*e}}(t,n):zn(isNaN(t)?e:t)}var Tn=function t(e){var n=Nn(e);function o(t,e){var o=n((t=pn(t)).r,(e=pn(e)).r),r=n(t.g,e.g),i=n(t.b,e.b),a=kn(t.opacity,e.opacity);return function(e){return t.r=o(e),t.g=r(e),t.b=i(e),t.opacity=a(e),t+""}}return o.gamma=t,o}(1);function An(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var In=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,$n=new RegExp(In.source,"g");function Cn(t,e){var n,o,r,i=In.lastIndex=$n.lastIndex=0,a=-1,s=[],u=[];for(t+="",e+="";(n=In.exec(t))&&(o=$n.exec(e));)(r=o.index)>i&&(r=e.slice(i,r),s[a]?s[a]+=r:s[++a]=r),(n=n[0])===(o=o[0])?s[a]?s[a]+=o:s[++a]=o:(s[++a]=null,u.push({i:a,x:An(n,o)})),i=$n.lastIndex;return i<e.length&&(r=e.slice(i),s[a]?s[a]+=r:s[++a]=r),s.length<2?u[0]?function(t){return function(e){return t(e)+""}}(u[0].x):function(t){return function(){return t}}(e):(e=u.length,function(t){for(var n,o=0;o<e;++o)s[(n=u[o]).i]=n.x(t);return s.join("")})}var On,Hn=180/Math.PI,Xn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Yn(t,e,n,o,r,i){var a,s,u;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(u=t*n+e*o)&&(n-=t*u,o-=e*u),(s=Math.sqrt(n*n+o*o))&&(n/=s,o/=s,u/=s),t*o<e*n&&(t=-t,e=-e,u=-u,a=-a),{translateX:r,translateY:i,rotate:Math.atan2(e,t)*Hn,skewX:Math.atan(u)*Hn,scaleX:a,scaleY:s}}function Bn(t,e,n,o){function r(t){return t.length?t.pop()+" ":""}return function(i,a){var s=[],u=[];return i=t(i),a=t(a),function(t,o,r,i,a,s){if(t!==r||o!==i){var u=a.push("translate(",null,e,null,n);s.push({i:u-4,x:An(t,r)},{i:u-2,x:An(o,i)})}else(r||i)&&a.push("translate("+r+e+i+n)}(i.translateX,i.translateY,a.translateX,a.translateY,s,u),function(t,e,n,i){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),i.push({i:n.push(r(n)+"rotate(",null,o)-2,x:An(t,e)})):e&&n.push(r(n)+"rotate("+e+o)}(i.rotate,a.rotate,s,u),function(t,e,n,i){t!==e?i.push({i:n.push(r(n)+"skewX(",null,o)-2,x:An(t,e)}):e&&n.push(r(n)+"skewX("+e+o)}(i.skewX,a.skewX,s,u),function(t,e,n,o,i,a){if(t!==n||e!==o){var s=i.push(r(i)+"scale(",null,",",null,")");a.push({i:s-4,x:An(t,n)},{i:s-2,x:An(e,o)})}else 1===n&&1===o||i.push(r(i)+"scale("+n+","+o+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,s,u),i=a=null,function(t){for(var e,n=-1,o=u.length;++n<o;)s[(e=u[n]).i]=e.x(t);return s.join("")}}}var Rn=Bn((function(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?Xn:Yn(e.a,e.b,e.c,e.d,e.e,e.f)}),"px, ","px)","deg)"),Dn=Bn((function(t){return null==t?Xn:(On||(On=document.createElementNS("http://www.w3.org/2000/svg","g")),On.setAttribute("transform",t),(t=On.transform.baseVal.consolidate())?Yn((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):Xn)}),", ",")",")");function Ln(t){return((t=Math.exp(t))+1/t)/2}var Vn,qn,Zn=function t(e,n,o){function r(t,r){var i,a,s=t[0],u=t[1],c=t[2],l=r[0],h=r[1],d=r[2],f=l-s,p=h-u,g=f*f+p*p;if(g<1e-12)a=Math.log(d/c)/e,i=function(t){return[s+t*f,u+t*p,c*Math.exp(e*t*a)]};else{var m=Math.sqrt(g),y=(d*d-c*c+o*g)/(2*c*n*m),v=(d*d-c*c-o*g)/(2*d*n*m),x=Math.log(Math.sqrt(y*y+1)-y),w=Math.log(Math.sqrt(v*v+1)-v);a=(w-x)/e,i=function(t){var o,r=t*a,i=Ln(x),l=c/(n*m)*(i*(o=e*r+x,((o=Math.exp(2*o))-1)/(o+1))-function(t){return((t=Math.exp(t))-1/t)/2}(x));return[s+l*f,u+l*p,c*i/Ln(e*r+x)]}}return i.duration=1e3*a*e/Math.SQRT2,i}return r.rho=function(e){var n=Math.max(.001,+e),o=n*n;return t(n,o,o*o)},r}(Math.SQRT2,2,4),Gn=0,jn=0,Wn=0,Fn=1e3,Kn=0,Un=0,Qn=0,Jn="object"==typeof performance&&performance.now?performance:Date,to="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function eo(){return Un||(to(no),Un=Jn.now()+Qn)}function no(){Un=0}function oo(){this._call=this._time=this._next=null}function ro(t,e,n){var o=new oo;return o.restart(t,e,n),o}function io(){Un=(Kn=Jn.now())+Qn,Gn=jn=0;try{!function(){eo(),++Gn;for(var t,e=Vn;e;)(t=Un-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Gn}()}finally{Gn=0,function(){var t,e,n=Vn,o=1/0;for(;n;)n._call?(o>n._time&&(o=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:Vn=e);qn=t,so(o)}(),Un=0}}function ao(){var t=Jn.now(),e=t-Kn;e>Fn&&(Qn-=e,Kn=t)}function so(t){Gn||(jn&&(jn=clearTimeout(jn)),t-Un>24?(t<1/0&&(jn=setTimeout(io,t-Jn.now()-Qn)),Wn&&(Wn=clearInterval(Wn))):(Wn||(Kn=Jn.now(),Wn=setInterval(ao,Fn)),Gn=1,to(io)))}function uo(t,e,n){var o=new oo;return e=null==e?0:+e,o.restart((n=>{o.stop(),t(n+e)}),e,n),o}oo.prototype=ro.prototype={constructor:oo,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?eo():+n)+(null==e?0:+e),this._next||qn===this||(qn?qn._next=this:Vn=this,qn=this),this._call=t,this._time=n,so()},stop:function(){this._call&&(this._call=null,this._time=1/0,so())}};var co=it("start","end","cancel","interrupt"),lo=[],ho=0,fo=1,po=2,go=3,mo=4,yo=5,vo=6;function xo(t,e,n,o,r,i){var a=t.__transition;if(a){if(n in a)return}else t.__transition={};!function(t,e,n){var o,r=t.__transition;function i(t){n.state=fo,n.timer.restart(a,n.delay,n.time),n.delay<=t&&a(t-n.delay)}function a(i){var c,l,h,d;if(n.state!==fo)return u();for(c in r)if((d=r[c]).name===n.name){if(d.state===go)return uo(a);d.state===mo?(d.state=vo,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete r[c]):+c<e&&(d.state=vo,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete r[c])}if(uo((function(){n.state===go&&(n.state=mo,n.timer.restart(s,n.delay,n.time),s(i))})),n.state=po,n.on.call("start",t,t.__data__,n.index,n.group),n.state===po){for(n.state=go,o=new Array(h=n.tween.length),c=0,l=-1;c<h;++c)(d=n.tween[c].value.call(t,t.__data__,n.index,n.group))&&(o[++l]=d);o.length=l+1}}function s(e){for(var r=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(u),n.state=yo,1),i=-1,a=o.length;++i<a;)o[i].call(t,r);n.state===yo&&(n.on.call("end",t,t.__data__,n.index,n.group),u())}function u(){for(var o in n.state=vo,n.timer.stop(),delete r[e],r)return;delete t.__transition}r[e]=n,n.timer=ro(i,0,n.time)}(t,n,{name:e,index:o,group:r,on:co,tween:lo,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:ho})}function wo(t,e){var n=bo(t,e);if(n.state>ho)throw new Error("too late; already scheduled");return n}function _o(t,e){var n=bo(t,e);if(n.state>go)throw new Error("too late; already running");return n}function bo(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Eo(t,e){var n,o,r,i=t.__transition,a=!0;if(i){for(r in e=null==e?null:e+"",i)(n=i[r]).name===e?(o=n.state>po&&n.state<yo,n.state=vo,n.timer.stop(),n.on.call(o?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete i[r]):a=!1;a&&delete t.__transition}}function Mo(t,e){var n,o;return function(){var r=_o(this,t),i=r.tween;if(i!==n)for(var a=0,s=(o=n=i).length;a<s;++a)if(o[a].name===e){(o=o.slice()).splice(a,1);break}r.tween=o}}function Po(t,e,n){var o,r;if("function"!=typeof n)throw new Error;return function(){var i=_o(this,t),a=i.tween;if(a!==o){r=(o=a).slice();for(var s={name:e,value:n},u=0,c=r.length;u<c;++u)if(r[u].name===e){r[u]=s;break}u===c&&r.push(s)}i.tween=r}}function So(t,e,n){var o=t._id;return t.each((function(){var t=_o(this,o);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return bo(t,o).value[e]}}function zo(t,e){var n;return("number"==typeof e?An:e instanceof hn?Tn:(n=hn(e))?(e=n,Tn):Cn)(t,e)}function No(t){return function(){this.removeAttribute(t)}}function ko(t){return function(){this.removeAttributeNS(t.space,t.local)}}function To(t,e,n){var o,r,i=n+"";return function(){var a=this.getAttribute(t);return a===i?null:a===o?r:r=e(o=a,n)}}function Ao(t,e,n){var o,r,i=n+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===i?null:a===o?r:r=e(o=a,n)}}function Io(t,e,n){var o,r,i;return function(){var a,s,u=n(this);if(null!=u)return(a=this.getAttribute(t))===(s=u+"")?null:a===o&&s===r?i:(r=s,i=e(o=a,u));this.removeAttribute(t)}}function $o(t,e,n){var o,r,i;return function(){var a,s,u=n(this);if(null!=u)return(a=this.getAttributeNS(t.space,t.local))===(s=u+"")?null:a===o&&s===r?i:(r=s,i=e(o=a,u));this.removeAttributeNS(t.space,t.local)}}function Co(t,e){var n,o;function r(){var r=e.apply(this,arguments);return r!==o&&(n=(o=r)&&function(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}(t,r)),n}return r._value=e,r}function Oo(t,e){var n,o;function r(){var r=e.apply(this,arguments);return r!==o&&(n=(o=r)&&function(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}(t,r)),n}return r._value=e,r}function Ho(t,e){return function(){wo(this,t).delay=+e.apply(this,arguments)}}function Xo(t,e){return e=+e,function(){wo(this,t).delay=e}}function Yo(t,e){return function(){_o(this,t).duration=+e.apply(this,arguments)}}function Bo(t,e){return e=+e,function(){_o(this,t).duration=e}}var Ro=we.prototype.constructor;function Do(t){return function(){this.style.removeProperty(t)}}var Lo=0;function Vo(t,e,n,o){this._groups=t,this._parents=e,this._name=n,this._id=o}function qo(){return++Lo}var Zo=we.prototype;Vo.prototype={constructor:Vo,select:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=mt(t));for(var o=this._groups,r=o.length,i=new Array(r),a=0;a<r;++a)for(var s,u,c=o[a],l=c.length,h=i[a]=new Array(l),d=0;d<l;++d)(s=c[d])&&(u=t.call(s,s.__data__,d,c))&&("__data__"in s&&(u.__data__=s.__data__),h[d]=u,xo(h[d],e,n,d,h,bo(s,n)));return new Vo(i,this._parents,e,n)},selectAll:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=vt(t));for(var o=this._groups,r=o.length,i=[],a=[],s=0;s<r;++s)for(var u,c=o[s],l=c.length,h=0;h<l;++h)if(u=c[h]){for(var d,f=t.call(u,u.__data__,h,c),p=bo(u,n),g=0,m=f.length;g<m;++g)(d=f[g])&&xo(d,e,n,g,f,p);i.push(f),a.push(u)}return new Vo(i,a,e,n)},selectChild:Zo.selectChild,selectChildren:Zo.selectChildren,filter:function(t){"function"!=typeof t&&(t=wt(t));for(var e=this._groups,n=e.length,o=new Array(n),r=0;r<n;++r)for(var i,a=e[r],s=a.length,u=o[r]=[],c=0;c<s;++c)(i=a[c])&&t.call(i,i.__data__,c,a)&&u.push(i);return new Vo(o,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,o=e.length,r=n.length,i=Math.min(o,r),a=new Array(o),s=0;s<i;++s)for(var u,c=e[s],l=n[s],h=c.length,d=a[s]=new Array(h),f=0;f<h;++f)(u=c[f]||l[f])&&(d[f]=u);for(;s<o;++s)a[s]=e[s];return new Vo(a,this._parents,this._name,this._id)},selection:function(){return new Ro(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,n=qo(),o=this._groups,r=o.length,i=0;i<r;++i)for(var a,s=o[i],u=s.length,c=0;c<u;++c)if(a=s[c]){var l=bo(a,e);xo(a,t,n,c,s,{time:l.time+l.delay+l.duration,delay:0,duration:l.duration,ease:l.ease})}return new Vo(o,this._parents,t,n)},call:Zo.call,nodes:Zo.nodes,node:Zo.node,size:Zo.size,empty:Zo.empty,each:Zo.each,on:function(t,e){var n=this._id;return arguments.length<2?bo(this.node(),n).on.on(t):this.each(function(t,e,n){var o,r,i=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?wo:_o;return function(){var a=i(this,t),s=a.on;s!==o&&(r=(o=s).copy()).on(e,n),a.on=r}}(n,t,e))},attr:function(t,e){var n=ht(t),o="transform"===n?Dn:zo;return this.attrTween(t,"function"==typeof e?(n.local?$o:Io)(n,o,So(this,"attr."+t,e)):null==e?(n.local?ko:No)(n):(n.local?Ao:To)(n,o,e))},attrTween:function(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var o=ht(t);return this.tween(n,(o.local?Co:Oo)(o,e))},style:function(t,e,n){var o="transform"==(t+="")?Rn:zo;return null==e?this.styleTween(t,function(t,e){var n,o,r;return function(){var i=Vt(this,t),a=(this.style.removeProperty(t),Vt(this,t));return i===a?null:i===n&&a===o?r:r=e(n=i,o=a)}}(t,o)).on("end.style."+t,Do(t)):"function"==typeof e?this.styleTween(t,function(t,e,n){var o,r,i;return function(){var a=Vt(this,t),s=n(this),u=s+"";return null==s&&(this.style.removeProperty(t),u=s=Vt(this,t)),a===u?null:a===o&&u===r?i:(r=u,i=e(o=a,s))}}(t,o,So(this,"style."+t,e))).each(function(t,e){var n,o,r,i,a="style."+e,s="end."+a;return function(){var u=_o(this,t),c=u.on,l=null==u.value[a]?i||(i=Do(e)):void 0;c===n&&r===l||(o=(n=c).copy()).on(s,r=l),u.on=o}}(this._id,t)):this.styleTween(t,function(t,e,n){var o,r,i=n+"";return function(){var a=Vt(this,t);return a===i?null:a===o?r:r=e(o=a,n)}}(t,o,e),n).on("end.style."+t,null)},styleTween:function(t,e,n){var o="style."+(t+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(null==e)return this.tween(o,null);if("function"!=typeof e)throw new Error;return this.tween(o,function(t,e,n){var o,r;function i(){var i=e.apply(this,arguments);return i!==r&&(o=(r=i)&&function(t,e,n){return function(o){this.style.setProperty(t,e.call(this,o),n)}}(t,i,n)),o}return i._value=e,i}(t,e,null==n?"":n))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(So(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,function(t){var e,n;function o(){var o=t.apply(this,arguments);return o!==n&&(e=(n=o)&&function(t){return function(e){this.textContent=t.call(this,e)}}(o)),e}return o._value=t,o}(t))},remove:function(){return this.on("end.remove",function(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}(this._id))},tween:function(t,e){var n=this._id;if(t+="",arguments.length<2){for(var o,r=bo(this.node(),n).tween,i=0,a=r.length;i<a;++i)if((o=r[i]).name===t)return o.value;return null}return this.each((null==e?Mo:Po)(n,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Ho:Xo)(e,t)):bo(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Yo:Bo)(e,t)):bo(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(function(t,e){if("function"!=typeof e)throw new Error;return function(){_o(this,t).ease=e}}(e,t)):bo(this.node(),e).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,e){return function(){var n=e.apply(this,arguments);if("function"!=typeof n)throw new Error;_o(this,t).ease=n}}(this._id,t))},end:function(){var t,e,n=this,o=n._id,r=n.size();return new Promise((function(i,a){var s={value:a},u={value:function(){0==--r&&i()}};n.each((function(){var n=_o(this,o),r=n.on;r!==t&&((e=(t=r).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(u)),n.on=e})),0===r&&i()}))},[Symbol.iterator]:Zo[Symbol.iterator]};var Go={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function jo(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}we.prototype.interrupt=function(t){return this.each((function(){Eo(this,t)}))},we.prototype.transition=function(t){var e,n;t instanceof Vo?(e=t._id,t=t._name):(e=qo(),(n=Go).time=eo(),t=null==t?null:t+"");for(var o=this._groups,r=o.length,i=0;i<r;++i)for(var a,s=o[i],u=s.length,c=0;c<u;++c)(a=s[c])&&xo(a,t,e,c,s,n||jo(a,e));return new Vo(o,this._parents,t,e)};var Wo=t=>()=>t;function Fo(t,{sourceEvent:e,target:n,transform:o,dispatch:r}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:o,enumerable:!0,configurable:!0},_:{value:r}})}function Ko(t,e,n){this.k=t,this.x=e,this.y=n}Ko.prototype={constructor:Ko,scale:function(t){return 1===t?this:new Ko(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new Ko(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Uo=new Ko(1,0,0);function Qo(t){for(;!t.__zoom;)if(!(t=t.parentNode))return Uo;return t.__zoom}function Jo(t){t.stopImmediatePropagation()}function tr(t){t.preventDefault(),t.stopImmediatePropagation()}function er(t){return!(t.ctrlKey&&"wheel"!==t.type||t.button)}function nr(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function or(){return this.__zoom||Uo}function rr(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function ir(){return navigator.maxTouchPoints||"ontouchstart"in this}function ar(t,e,n){var o=t.invertX(e[0][0])-n[0][0],r=t.invertX(e[1][0])-n[1][0],i=t.invertY(e[0][1])-n[0][1],a=t.invertY(e[1][1])-n[1][1];return t.translate(r>o?(o+r)/2:Math.min(0,o)||Math.max(0,r),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function sr(){var t,e,n,o=er,r=nr,i=ar,a=rr,s=ir,u=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],l=250,h=Zn,d=it("start","zoom","end"),f=500,p=150,g=0,m=10;function y(t){t.property("__zoom",or).on("wheel.zoom",M,{passive:!1}).on("mousedown.zoom",P).on("dblclick.zoom",S).filter(s).on("touchstart.zoom",z).on("touchmove.zoom",N).on("touchend.zoom touchcancel.zoom",k).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function v(t,e){return(e=Math.max(u[0],Math.min(u[1],e)))===t.k?t:new Ko(e,t.x,t.y)}function x(t,e,n){var o=e[0]-n[0]*t.k,r=e[1]-n[1]*t.k;return o===t.x&&r===t.y?t:new Ko(t.k,o,r)}function w(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function _(t,e,n,o){t.on("start.zoom",(function(){b(this,arguments).event(o).start()})).on("interrupt.zoom end.zoom",(function(){b(this,arguments).event(o).end()})).tween("zoom",(function(){var t=this,i=arguments,a=b(t,i).event(o),s=r.apply(t,i),u=null==n?w(s):"function"==typeof n?n.apply(t,i):n,c=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),l=t.__zoom,d="function"==typeof e?e.apply(t,i):e,f=h(l.invert(u).concat(c/l.k),d.invert(u).concat(c/d.k));return function(t){if(1===t)t=d;else{var e=f(t),n=c/e[2];t=new Ko(n,u[0]-e[0]*n,u[1]-e[1]*n)}a.zoom(null,t)}}))}function b(t,e,n){return!n&&t.__zooming||new E(t,e)}function E(t,e){this.that=t,this.args=e,this.active=0,this.sourceEvent=null,this.extent=r.apply(t,e),this.taps=0}function M(t,...e){if(o.apply(this,arguments)){var n=b(this,e).event(t),r=this.__zoom,s=Math.max(u[0],Math.min(u[1],r.k*Math.pow(2,a.apply(this,arguments)))),l=be(t);if(n.wheel)n.mouse[0][0]===l[0]&&n.mouse[0][1]===l[1]||(n.mouse[1]=r.invert(n.mouse[0]=l)),clearTimeout(n.wheel);else{if(r.k===s)return;n.mouse=[l,r.invert(l)],Eo(this),n.start()}tr(t),n.wheel=setTimeout((function(){n.wheel=null,n.end()}),p),n.zoom("mouse",i(x(v(r,s),n.mouse[0],n.mouse[1]),n.extent,c))}}function P(t,...e){if(!n&&o.apply(this,arguments)){var r=t.currentTarget,a=b(this,e,!0).event(t),s=_e(t.view).on("mousemove.zoom",(function(t){if(tr(t),!a.moved){var e=t.clientX-l,n=t.clientY-h;a.moved=e*e+n*n>g}a.event(t).zoom("mouse",i(x(a.that.__zoom,a.mouse[0]=be(t,r),a.mouse[1]),a.extent,c))}),!0).on("mouseup.zoom",(function(t){s.on("mousemove.zoom mouseup.zoom",null),Ne(t.view,a.moved),tr(t),a.event(t).end()}),!0),u=be(t,r),l=t.clientX,h=t.clientY;ze(t.view),Jo(t),a.mouse=[u,this.__zoom.invert(u)],Eo(this),a.start()}}function S(t,...e){if(o.apply(this,arguments)){var n=this.__zoom,a=be(t.changedTouches?t.changedTouches[0]:t,this),s=n.invert(a),u=n.k*(t.shiftKey?.5:2),h=i(x(v(n,u),a,s),r.apply(this,e),c);tr(t),l>0?_e(this).transition().duration(l).call(_,h,a,t):_e(this).call(y.transform,h,a,t)}}function z(n,...r){if(o.apply(this,arguments)){var i,a,s,u,c=n.touches,l=c.length,h=b(this,r,n.changedTouches.length===l).event(n);for(Jo(n),a=0;a<l;++a)u=[u=be(s=c[a],this),this.__zoom.invert(u),s.identifier],h.touch0?h.touch1||h.touch0[2]===u[2]||(h.touch1=u,h.taps=0):(h.touch0=u,i=!0,h.taps=1+!!t);t&&(t=clearTimeout(t)),i&&(h.taps<2&&(e=u[0],t=setTimeout((function(){t=null}),f)),Eo(this),h.start())}}function N(t,...e){if(this.__zooming){var n,o,r,a,s=b(this,e).event(t),u=t.changedTouches,l=u.length;for(tr(t),n=0;n<l;++n)r=be(o=u[n],this),s.touch0&&s.touch0[2]===o.identifier?s.touch0[0]=r:s.touch1&&s.touch1[2]===o.identifier&&(s.touch1[0]=r);if(o=s.that.__zoom,s.touch1){var h=s.touch0[0],d=s.touch0[1],f=s.touch1[0],p=s.touch1[1],g=(g=f[0]-h[0])*g+(g=f[1]-h[1])*g,m=(m=p[0]-d[0])*m+(m=p[1]-d[1])*m;o=v(o,Math.sqrt(g/m)),r=[(h[0]+f[0])/2,(h[1]+f[1])/2],a=[(d[0]+p[0])/2,(d[1]+p[1])/2]}else{if(!s.touch0)return;r=s.touch0[0],a=s.touch0[1]}s.zoom("touch",i(x(o,r,a),s.extent,c))}}function k(t,...o){if(this.__zooming){var r,i,a=b(this,o).event(t),s=t.changedTouches,u=s.length;for(Jo(t),n&&clearTimeout(n),n=setTimeout((function(){n=null}),f),r=0;r<u;++r)i=s[r],a.touch0&&a.touch0[2]===i.identifier?delete a.touch0:a.touch1&&a.touch1[2]===i.identifier&&delete a.touch1;if(a.touch1&&!a.touch0&&(a.touch0=a.touch1,delete a.touch1),a.touch0)a.touch0[1]=this.__zoom.invert(a.touch0[0]);else if(a.end(),2===a.taps&&(i=be(i,this),Math.hypot(e[0]-i[0],e[1]-i[1])<m)){var c=_e(this).on("dblclick.zoom");c&&c.apply(this,arguments)}}}return y.transform=function(t,e,n,o){var r=t.selection?t.selection():t;r.property("__zoom",or),t!==r?_(t,e,n,o):r.interrupt().each((function(){b(this,arguments).event(o).start().zoom(null,"function"==typeof e?e.apply(this,arguments):e).end()}))},y.scaleBy=function(t,e,n,o){y.scaleTo(t,(function(){return this.__zoom.k*("function"==typeof e?e.apply(this,arguments):e)}),n,o)},y.scaleTo=function(t,e,n,o){y.transform(t,(function(){var t=r.apply(this,arguments),o=this.__zoom,a=null==n?w(t):"function"==typeof n?n.apply(this,arguments):n,s=o.invert(a),u="function"==typeof e?e.apply(this,arguments):e;return i(x(v(o,u),a,s),t,c)}),n,o)},y.translateBy=function(t,e,n,o){y.transform(t,(function(){return i(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof n?n.apply(this,arguments):n),r.apply(this,arguments),c)}),null,o)},y.translateTo=function(t,e,n,o,a){y.transform(t,(function(){var t=r.apply(this,arguments),a=this.__zoom,s=null==o?w(t):"function"==typeof o?o.apply(this,arguments):o;return i(Uo.translate(s[0],s[1]).scale(a.k).translate("function"==typeof e?-e.apply(this,arguments):-e,"function"==typeof n?-n.apply(this,arguments):-n),t,c)}),o,a)},E.prototype={event:function(t){return t&&(this.sourceEvent=t),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(t,e){return this.mouse&&"mouse"!==t&&(this.mouse[1]=e.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=e.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=e.invert(this.touch1[0])),this.that.__zoom=e,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(t){var e=_e(this.that).datum();d.call(t,this.that,new Fo(t,{sourceEvent:this.sourceEvent,target:y,type:t,transform:this.that.__zoom,dispatch:d}),e)}},y.wheelDelta=function(t){return arguments.length?(a="function"==typeof t?t:Wo(+t),y):a},y.filter=function(t){return arguments.length?(o="function"==typeof t?t:Wo(!!t),y):o},y.touchable=function(t){return arguments.length?(s="function"==typeof t?t:Wo(!!t),y):s},y.extent=function(t){return arguments.length?(r="function"==typeof t?t:Wo([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),y):r},y.scaleExtent=function(t){return arguments.length?(u[0]=+t[0],u[1]=+t[1],y):[u[0],u[1]]},y.translateExtent=function(t){return arguments.length?(c[0][0]=+t[0][0],c[1][0]=+t[1][0],c[0][1]=+t[0][1],c[1][1]=+t[1][1],y):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},y.constrain=function(t){return arguments.length?(i=t,y):i},y.duration=function(t){return arguments.length?(l=+t,y):l},y.interpolate=function(t){return arguments.length?(h=t,y):h},y.on=function(){var t=d.on.apply(d,arguments);return t===d?y:t},y.clickDistance=function(t){return arguments.length?(g=(t=+t)*t,y):Math.sqrt(g)},y.tapDistance=function(t){return arguments.length?(m=+t,y):m},y}Qo.prototype=Ko.prototype;const ur=(t,e)=>t.x!==e.x||t.y!==e.y||t.zoom!==e.k,cr=t=>({x:t.x,y:t.y,zoom:t.k}),lr=({x:t,y:e,zoom:n})=>Uo.translate(t,e).scale(n),hr=(t,e)=>t.target.closest(`.${e}`),dr=(t,e)=>2===e&&Array.isArray(t)&&t.includes(2),fr=(t,e=0)=>"number"==typeof e&&e>0?t.transition().duration(e):t,pr=t=>{const e=t.ctrlKey&&I()?10:1;return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*e};var gr;t.ResizeControlVariant=void 0,(gr=t.ResizeControlVariant||(t.ResizeControlVariant={})).Line="line",gr.Handle="handle";function mr(t,e){return Math.max(0,e-t)}function yr(t,e){return Math.max(0,t-e)}function vr(t,e,n){return Math.max(0,e-t,t-n)}function xr(t,e){return t?!e:e}const wr={width:0,height:0,x:0,y:0},_r={...wr,pointerX:0,pointerY:0,aspectRatio:1};function br(t,e,n){const o=e.position.x+t.position.x,r=e.position.y+t.position.y,i=t.measured.width??0,a=t.measured.height??0,s=n[0]*i,u=n[1]*a;return[[o-s,r-u],[o+i-s,r+a-u]]}t.XYDrag=function({onNodeMouseDown:t,getStoreItems:e,onDragStart:n,onDrag:o,onDragStop:r}){let i={x:null,y:null},a=0,s=new Map,u=!1,c={x:0,y:0},l=null,h=!1,f=null,g=!1;return{update:function({noDragClassName:m,handleSelector:y,domNode:x,isSelectable:_,nodeId:b}){function E({x:t,y:n},r){const{nodeLookup:a,nodeExtent:u,snapGrid:c,snapToGrid:l,nodeOrigin:h,onNodeDrag:f,onSelectionDrag:g,onError:m,updateNodePositions:y}=e();i={x:t,y:n};let v=!1,x={x:0,y:0,x2:0,y2:0};if(s.size>1&&u){const t=d(s,{nodeOrigin:h});x=w(t)}for(const[e,o]of s){let r={x:t-o.distance.x,y:n-o.distance.y};l&&(r=N(r,c));let i=[[u[0][0],u[0][1]],[u[1][0],u[1][1]]];if(s.size>1&&u&&!o.extent){const{positionAbsolute:t}=o.internals,e=t.x-x.x+u[0][0],n=t.x+o.measured.width-x.x2+u[1][0];i=[[e,t.y-x.y+u[0][1]],[n,t.y+o.measured.height-x.y2+u[1][1]]]}const{position:d,positionAbsolute:f}=p({nodeId:e,nextPosition:r,nodeLookup:a,nodeExtent:i,nodeOrigin:h,onError:m});v=v||o.position.x!==d.x||o.position.y!==d.y,o.position=d,o.internals.positionAbsolute=f}if(v&&(y(s,!0),r&&(o||f||!b&&g))){const[t,e]=Ye({nodeId:b,dragItems:s,nodeLookup:a});o?.(r,s,t,e),f?.(r,t,e),b||g?.(r,e)}}function M(){if(!l)return;const[t,n]=v(c,l);if(0!==t||0!==n){const{transform:o,panBy:r}=e();i.x=(i.x??0)-t/o[2],i.y=(i.y??0)-n/o[2],r({x:t,y:n})&&E(i,null)}a=requestAnimationFrame(M)}function P(o){const{nodeLookup:r,multiSelectionActive:a,nodesDraggable:u,transform:c,snapGrid:l,snapToGrid:d,selectNodesOnDrag:f,onNodeDragStart:p,onSelectionDragStart:g,unselectNodesAndEdges:m}=e();h=!0,f&&_||a||!b||r.get(b)?.selected||m(),_&&f&&b&&t?.(b);const y=O(o.sourceEvent,{transform:c,snapGrid:l,snapToGrid:d});if(i=y,s=function(t,e,n,o){const r=new Map;for(const[i,a]of t)if((a.selected||a.id===o)&&(!a.parentId||!He(a,t))&&(a.draggable||e&&void 0===a.draggable)){const e=t.get(i);e&&r.set(i,{id:i,position:e.position||{x:0,y:0},distance:{x:n.x-e.internals.positionAbsolute.x,y:n.y-e.internals.positionAbsolute.y},extent:e.extent,parentId:e.parentId,origin:e.origin,expandParent:e.expandParent,internals:{positionAbsolute:e.internals.positionAbsolute||{x:0,y:0}},measured:{width:e.measured.width??0,height:e.measured.height??0}})}return r}(r,u,y,b),s.size>0&&(n||p||!b&&g)){const[t,e]=Ye({nodeId:b,dragItems:s,nodeLookup:r});n?.(o.sourceEvent,s,t,e),p?.(o.sourceEvent,t,e),b||g?.(o.sourceEvent,e)}}f=_e(x);const S=Oe().on("start",(t=>{const{domNode:n,nodeDragThreshold:o,transform:r,snapGrid:a,snapToGrid:s}=e();g=!1,0===o&&P(t);const u=O(t.sourceEvent,{transform:r,snapGrid:a,snapToGrid:s});i=u,l=n?.getBoundingClientRect()||null,c=R(t.sourceEvent,l)})).on("drag",(t=>{const{autoPanOnNodeDrag:n,transform:o,snapGrid:r,snapToGrid:a,nodeDragThreshold:d}=e(),f=O(t.sourceEvent,{transform:o,snapGrid:r,snapToGrid:a});if("touchmove"===t.sourceEvent.type&&t.sourceEvent.touches.length>1&&(g=!0),!g){if(!u&&n&&h&&(u=!0,M()),!h){const e=f.xSnapped-(i.x??0),n=f.ySnapped-(i.y??0);Math.sqrt(e*e+n*n)>d&&P(t)}(i.x!==f.xSnapped||i.y!==f.ySnapped)&&s&&h&&(c=R(t.sourceEvent,l),E(f,t.sourceEvent))}})).on("end",(t=>{if(h&&!g&&(u=!1,h=!1,cancelAnimationFrame(a),s.size>0)){const{nodeLookup:n,updateNodePositions:o,onNodeDragStop:i,onSelectionDragStop:a}=e();if(o(s,!1),r||i||!b&&a){const[e,o]=Ye({nodeId:b,dragItems:s,nodeLookup:n});r?.(t.sourceEvent,s,e,o),i?.(t.sourceEvent,e,o),b||a?.(t.sourceEvent,o)}}})).filter((t=>{const e=t.target;return!t.button&&(!m||!Xe(e,`.${m}`,x))&&(!y||Xe(e,y,x))}));f.call(S)},destroy:function(){f?.on(".drag",null)}}},t.XYHandle=Ze,t.XYMinimap=function({domNode:t,panZoom:e,getTransform:n,getViewScale:o}){const r=_e(t);return{update:function({translateExtent:t,width:i,height:a,zoomStep:s=10,pannable:u=!0,zoomable:c=!0,inversePan:l=!1}){let h=[0,0];const d=sr().on("start",(t=>{"mousedown"!==t.sourceEvent.type&&"touchstart"!==t.sourceEvent.type||(h=[t.sourceEvent.clientX??t.sourceEvent.touches[0].clientX,t.sourceEvent.clientY??t.sourceEvent.touches[0].clientY])})).on("zoom",u?r=>{const s=n();if("mousemove"!==r.sourceEvent.type&&"touchmove"!==r.sourceEvent.type||!e)return;const u=[r.sourceEvent.clientX??r.sourceEvent.touches[0].clientX,r.sourceEvent.clientY??r.sourceEvent.touches[0].clientY],c=[u[0]-h[0],u[1]-h[1]];h=u;const d=o()*Math.max(s[2],Math.log(s[2]))*(l?-1:1),f={x:s[0]-c[0]*d,y:s[1]-c[1]*d},p=[[0,0],[i,a]];e.setViewportConstrained({x:f.x,y:f.y,zoom:s[2]},p,t)}:null).on("zoom.wheel",c?t=>{const o=n();if("wheel"!==t.sourceEvent.type||!e)return;const r=-t.sourceEvent.deltaY*(1===t.sourceEvent.deltaMode?.05:t.sourceEvent.deltaMode?1:.002)*s,i=o[2]*Math.pow(2,r);e.scaleTo(i)}:null);r.call(d,{})},destroy:function(){r.on("zoom",null)},pointer:be}},t.XYPanZoom=function({domNode:e,minZoom:n,maxZoom:o,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:s,onPanZoomEnd:u,onTransformChange:c,onDraggingChange:l}){const h={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{x:0,y:0,zoom:0},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),f=sr().scaleExtent([n,o]).translateExtent(r),p=_e(e).call(f);w({x:i.x,y:i.y,zoom:g(i.zoom,n,o)},[[0,0],[d.width,d.height]],r);const m=p.on("wheel.zoom"),y=p.on("dblclick.zoom");function v(t,e){p&&f?.transform(fr(p,e?.duration),t)}function x(){f.on("zoom",null)}function w(t,e,n){const o=lr(t),r=f?.constrain()(o,e,n);return r&&v(r),r}return f.wheelDelta(pr),{update:function({noWheelClassName:e,noPanClassName:n,onPaneContextMenu:o,userSelectionActive:r,panOnScroll:i,panOnDrag:d,panOnScrollMode:g,panOnScrollSpeed:v,preventScrolling:w,zoomOnPinch:_,zoomOnScroll:b,zoomOnDoubleClick:E,zoomActivationKeyPressed:M,lib:P}){r&&!h.isZoomingOrPanning&&x();const S=i&&!M&&!r?function({zoomPanValues:e,noWheelClassName:n,d3Selection:o,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:s,onPanZoomStart:u,onPanZoom:c,onPanZoomEnd:l}){return h=>{if(hr(h,n))return!1;h.preventDefault(),h.stopImmediatePropagation();const d=o.property("__zoom").k||1;if(h.ctrlKey&&s){const t=be(h),e=pr(h),n=d*Math.pow(2,e);return void r.scaleTo(o,n,t,h)}const f=1===h.deltaMode?20:1;let p=i===t.PanOnScrollMode.Vertical?0:h.deltaX*f,g=i===t.PanOnScrollMode.Horizontal?0:h.deltaY*f;!I()&&h.shiftKey&&i!==t.PanOnScrollMode.Vertical&&(p=h.deltaY*f,g=0),r.translateBy(o,-p/d*a,-g/d*a,{internal:!0});const m=cr(o.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling||(e.isPanScrolling=!0,u?.(h,m)),e.isPanScrolling&&(c?.(h,m),e.panScrollTimeout=setTimeout((()=>{l?.(h,m),e.isPanScrolling=!1}),150))}}({zoomPanValues:h,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:g,panOnScrollSpeed:v,zoomOnPinch:_,onPanZoomStart:s,onPanZoom:a,onPanZoomEnd:u}):function({noWheelClassName:t,preventScrolling:e,d3ZoomHandler:n}){return function(o,r){if(!e&&"wheel"===o.type&&!o.ctrlKey||hr(o,t))return null;o.preventDefault(),n.call(this,o,r)}}({noWheelClassName:e,preventScrolling:w,d3ZoomHandler:m});if(p.on("wheel.zoom",S,{passive:!1}),!r){const t=function({zoomPanValues:t,onDraggingChange:e,onPanZoomStart:n}){return o=>{if(o.sourceEvent?.internal)return;const r=cr(o.transform);t.mouseButton=o.sourceEvent?.button||0,t.isZoomingOrPanning=!0,t.prevViewport=r,"mousedown"===o.sourceEvent?.type&&e(!0),n&&n?.(o.sourceEvent,r)}}({zoomPanValues:h,onDraggingChange:l,onPanZoomStart:s});f.on("start",t);const e=function({zoomPanValues:t,panOnDrag:e,onPaneContextMenu:n,onTransformChange:o,onPanZoom:r}){return i=>{t.usedRightMouseButton=!(!n||!dr(e,t.mouseButton??0)),i.sourceEvent?.sync||o([i.transform.x,i.transform.y,i.transform.k]),r&&!i.sourceEvent?.internal&&r?.(i.sourceEvent,cr(i.transform))}}({zoomPanValues:h,panOnDrag:d,onPaneContextMenu:!!o,onPanZoom:a,onTransformChange:c});f.on("zoom",e);const n=function({zoomPanValues:t,panOnDrag:e,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:r,onPaneContextMenu:i}){return a=>{if(!a.sourceEvent?.internal&&(t.isZoomingOrPanning=!1,i&&dr(e,t.mouseButton??0)&&!t.usedRightMouseButton&&a.sourceEvent&&i(a.sourceEvent),t.usedRightMouseButton=!1,o(!1),r&&ur(t.prevViewport,a.transform))){const e=cr(a.transform);t.prevViewport=e,clearTimeout(t.timerId),t.timerId=setTimeout((()=>{r?.(a.sourceEvent,e)}),n?150:0)}}}({zoomPanValues:h,panOnDrag:d,panOnScroll:i,onPaneContextMenu:o,onPanZoomEnd:u,onDraggingChange:l});f.on("end",n)}const z=function({zoomActivationKeyPressed:t,zoomOnScroll:e,zoomOnPinch:n,panOnDrag:o,panOnScroll:r,zoomOnDoubleClick:i,userSelectionActive:a,noWheelClassName:s,noPanClassName:u,lib:c}){return l=>{const h=t||e,d=n&&l.ctrlKey;if(1===l.button&&"mousedown"===l.type&&(hr(l,`${c}-flow__node`)||hr(l,`${c}-flow__edge`)))return!0;if(!(o||h||r||i||n))return!1;if(a)return!1;if(hr(l,s)&&"wheel"===l.type)return!1;if(hr(l,u)&&("wheel"!==l.type||r&&"wheel"===l.type&&!t))return!1;if(!n&&l.ctrlKey&&"wheel"===l.type)return!1;if(!n&&"touchstart"===l.type&&l.touches?.length>1)return l.preventDefault(),!1;if(!h&&!r&&!d&&"wheel"===l.type)return!1;if(!o&&("mousedown"===l.type||"touchstart"===l.type))return!1;if(Array.isArray(o)&&!o.includes(l.button)&&"mousedown"===l.type)return!1;const f=Array.isArray(o)&&o.includes(l.button)||!l.button||l.button<=1;return(!l.ctrlKey||"wheel"===l.type)&&f}}({zoomActivationKeyPressed:M,panOnDrag:d,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:E,zoomOnPinch:_,userSelectionActive:r,noPanClassName:n,noWheelClassName:e,lib:P});f.filter(z),E?p.on("dblclick.zoom",y):p.on("dblclick.zoom",null)},destroy:x,setViewport:function(t,e){const n=lr(t);return v(n,e),n},setViewportConstrained:w,getViewport:function(){const t=p?Qo(p.node()):{x:0,y:0,k:1};return{x:t.x,y:t.y,zoom:t.k}},scaleTo:function(t,e){p&&f?.scaleTo(fr(p,e?.duration),t)},scaleBy:function(t,e){p&&f?.scaleBy(fr(p,e?.duration),t)},setScaleExtent:function(t){f?.scaleExtent(t)},setTranslateExtent:function(t){f?.translateExtent(t)},syncViewport:function(t){if(p){const e=lr(t),n=p.property("__zoom");n.k===t.zoom&&n.x===t.x&&n.y===t.y||f?.transform(p,e,null,{sync:!0})}}}},t.XYResizer=function({domNode:t,nodeId:e,getStoreItems:n,onChange:o,onEnd:r}){const i=_e(t);return{update:function({controlPosition:t,boundaries:a,keepAspectRatio:s,onResizeStart:u,onResize:c,onResizeEnd:l,shouldResize:h}){let d={...wr},f={..._r};const p=function(t){return{isHorizontal:t.includes("right")||t.includes("left"),isVertical:t.includes("bottom")||t.includes("top"),affectsX:t.includes("left"),affectsY:t.includes("top")}}(t);let g,m,y,v,x=[];const w=Oe().on("start",(t=>{const{nodeLookup:o,transform:r,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n();if(g=o.get(e),!g)return;const{xSnapped:c,ySnapped:l}=O(t.sourceEvent,{transform:r,snapGrid:i,snapToGrid:a});d={width:g.measured?.width??0,height:g.measured?.height??0,x:g.position.x??0,y:g.position.y??0},f={...d,pointerX:c,pointerY:l,aspectRatio:d.width/d.height},m=void 0,("parent"===g.extent||g.expandParent)&&(m=o.get(g.parentId),m&&"parent"===g.extent&&(y=function(t){return[[0,0],[t.measured.width,t.measured.height]]}(m))),x=[],v=void 0;for(const[t,n]of o)if(n.parentId===e&&(x.push({id:t,position:{...n.position},extent:n.extent}),"parent"===n.extent||n.expandParent)){const t=br(n,g,n.origin??s);v=v?[[Math.min(t[0][0],v[0][0]),Math.min(t[0][1],v[0][1])],[Math.max(t[1][0],v[1][0]),Math.max(t[1][1],v[1][1])]]:t}u?.(t,{...d})})).on("drag",(t=>{const{transform:e,snapGrid:r,snapToGrid:i,nodeOrigin:u}=n(),l=O(t.sourceEvent,{transform:e,snapGrid:r,snapToGrid:i}),w=[];if(!g)return;const{x:_,y:b,width:E,height:M}=d,P={},S=g.origin??u,{width:z,height:N,x:k,y:T}=function(t,e,n,o,r,i,a,s){let{affectsX:u,affectsY:c}=e;const{isHorizontal:l,isVertical:h}=e,d=l&&h,{xSnapped:f,ySnapped:p}=n,{minWidth:g,maxWidth:m,minHeight:y,maxHeight:v}=o,{x:x,y:w,width:_,height:b,aspectRatio:E}=t;let M=Math.floor(l?f-t.pointerX:0),P=Math.floor(h?p-t.pointerY:0);const S=_+(u?-M:M),z=b+(c?-P:P),N=-i[0]*_,k=-i[1]*b;let T=vr(S,g,m),A=vr(z,y,v);if(a){let t=0,e=0;u&&M<0?t=mr(x+M+N,a[0][0]):!u&&M>0&&(t=yr(x+S+N,a[1][0])),c&&P<0?e=mr(w+P+k,a[0][1]):!c&&P>0&&(e=yr(w+z+k,a[1][1])),T=Math.max(T,t),A=Math.max(A,e)}if(s){let t=0,e=0;u&&M>0?t=yr(x+M,s[0][0]):!u&&M<0&&(t=mr(x+S,s[1][0])),c&&P>0?e=yr(w+P,s[0][1]):!c&&P<0&&(e=mr(w+z,s[1][1])),T=Math.max(T,t),A=Math.max(A,e)}if(r){if(l){const t=vr(S/E,y,v)*E;if(T=Math.max(T,t),a){let t=0;t=!u&&!c||u&&!c&&d?yr(w+k+S/E,a[1][1])*E:mr(w+k+(u?M:-M)/E,a[0][1])*E,T=Math.max(T,t)}if(s){let t=0;t=!u&&!c||u&&!c&&d?mr(w+S/E,s[1][1])*E:yr(w+(u?M:-M)/E,s[0][1])*E,T=Math.max(T,t)}}if(h){const t=vr(z*E,g,m)/E;if(A=Math.max(A,t),a){let t=0;t=!u&&!c||c&&!u&&d?yr(x+z*E+N,a[1][0])/E:mr(x+(c?P:-P)*E+N,a[0][0])/E,A=Math.max(A,t)}if(s){let t=0;t=!u&&!c||c&&!u&&d?mr(x+z*E,s[1][0])/E:yr(x+(c?P:-P)*E,s[0][0])/E,A=Math.max(A,t)}}}P+=P<0?A:-A,M+=M<0?T:-T,r&&(d?S>z*E?P=(xr(u,c)?-M:M)/E:M=(xr(u,c)?-P:P)*E:l?(P=M/E,c=u):(M=P*E,u=c));const I=u?x+M:x,$=c?w+P:w;return{width:_+(u?-M:M),height:b+(c?-P:P),x:i[0]*M*(u?-1:1)+I,y:i[1]*P*(c?-1:1)+$}}(f,p,l,a,s,S,y,v),A=z!==E,I=N!==M,$=k!==_&&A,C=T!==b&&I;if(!($||C||A||I))return;if(($||C||1===S[0]||1==S[1])&&(P.x=$?k:d.x,P.y=C?T:d.y,d.x=P.x,d.y=P.y,m&&g.expandParent&&(P.x&&P.x<0&&(d.x=0,f.x=f.x-P.x),P.y&&P.y<0&&(d.y=0,f.y=f.y-P.y)),x.length>0)){const t=k-_,e=T-b;for(const n of x)n.position={x:n.position.x-t+S[0]*(z-E),y:n.position.y-e+S[1]*(N-M)},w.push(n)}(A||I)&&(P.width=A?z:d.width,P.height=I?N:d.height,d.width=P.width,d.height=P.height);const H=function({width:t,prevWidth:e,height:n,prevHeight:o,affectsX:r,affectsY:i}){const a=t-e,s=n-o,u=[a>0?1:a<0?-1:0,s>0?1:s<0?-1:0];return a&&r&&(u[0]=-1*u[0]),s&&i&&(u[1]=-1*u[1]),u}({width:d.width,prevWidth:E,height:d.height,prevHeight:M,affectsX:p.affectsX,affectsY:p.affectsY}),X={...d,direction:H},Y=h?.(t,X);!1!==Y&&(c?.(t,X),o(P,w))})).on("end",(t=>{l?.(t,{...d}),r?.()}));i.call(w)},destroy:function(){i.on(".drag",null)}}},t.XY_RESIZER_HANDLE_POSITIONS=["top-left","top-right","bottom-left","bottom-right"],t.XY_RESIZER_LINE_POSITIONS=["top","right","bottom","left"],t.addEdge=(t,n)=>{if(!t.source||!t.target)return e.error006(),n;let o;return o=c(t)?{...t}:{...t,id:G(t)},((t,e)=>e.some((e=>!(e.source!==t.source||e.target!==t.target||e.sourceHandle!==t.sourceHandle&&(e.sourceHandle||t.sourceHandle)||e.targetHandle!==t.targetHandle&&(e.targetHandle||t.targetHandle)))))(o,n)?n:(null===o.sourceHandle&&delete o.sourceHandle,null===o.targetHandle&&delete o.targetHandle,n.concat(o))},t.adoptUserNodes=function(t,e,n,o={nodeOrigin:[0,0],elevateNodesOnSelect:!0,defaults:{},checkEquality:!0}){const r=new Map(e);e.clear(),n.clear();const i=o?.elevateNodesOnSelect?1e3:0;t.forEach((t=>{let a=r.get(t.id);if(o.checkEquality&&t===a?.internals.userNode||(a={...o.defaults,...t,measured:{width:t.measured?.width,height:t.measured?.height},internals:{positionAbsolute:t.position,handleBounds:a?.internals.handleBounds,z:(S(t.zIndex)?t.zIndex:0)+(t.selected?i:0),userNode:t}}),e.set(t.id,a),t.parentId){const e=n.get(t.parentId);e?e.push(a):n.set(t.parentId,[a])}})),n.size>0&&et(e,o)},t.areConnectionMapsEqual=function(t,e){if(!t&&!e)return!0;if(!t||!e||t.size!==e.size)return!1;if(!t.size&&!e.size)return!0;for(const n of t.keys())if(!e.has(n))return!1;return!0},t.boxToRect=_,t.calcAutoPan=v,t.calculateNodePosition=p,t.clamp=g,t.clampPosition=m,t.createMarkerIds=function(t,{id:e,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:r}){const i=new Set;return t.reduce(((t,a)=>([a.markerStart||o,a.markerEnd||r].forEach((o=>{if(o&&"object"==typeof o){const r=tt(o,e);i.has(r)||(t.push({id:r,color:o.color||n,...o}),i.add(r))}})),t)),[]).sort(((t,e)=>t.id.localeCompare(e.id)))},t.devWarn=z,t.elementSelectionKeys=["Enter"," ","Escape"],t.errorMessages=e,t.evaluateAbsolutePosition=function(t,e,n,o=[0,0]){let r=e;const i={...t};for(;r;){const t=n.get(r);if(r=t?.parentId,t){const e=t.origin||o,n=(t.measured.width??0)*e[0],r=(t.measured.height??0)*e[1];i.x+=t.position.x-n,i.y+=t.position.y-r}}return i},t.fitView=function({nodeLookup:t,width:e,height:n,panZoom:o,minZoom:r,maxZoom:i,nodeOrigin:a=[0,0]},s){const u=[],c=s?.nodes?new Set(s.nodes.map((t=>t.id))):null;if(t.forEach((t=>{!(t.measured.width&&t.measured.height&&(s?.includeHiddenNodes||!t.hidden))||c&&!c.has(t.id)||u.push(t)})),u.length>0){const t=h(u,{nodeOrigin:a}),c=A(t,e,n,s?.minZoom??r,s?.maxZoom??i,s?.padding??.1);return o.setViewport(c,{duration:s?.duration}),!0}return!1},t.getBezierEdgeCenter=L,t.getBezierPath=function({sourceX:e,sourceY:n,sourcePosition:o=t.Position.Bottom,targetX:r,targetY:i,targetPosition:a=t.Position.Top,curvature:s=.25}){const[u,c]=q({pos:o,x1:e,y1:n,x2:r,y2:i,c:s}),[l,h]=q({pos:a,x1:r,y1:i,x2:e,y2:n,c:s}),[d,f,p,g]=L({sourceX:e,sourceY:n,targetX:r,targetY:i,sourceControlX:u,sourceControlY:c,targetControlX:l,targetControlY:h});return[`M${e},${n} C${u},${c} ${l},${h} ${r},${i}`,d,f,p,g]},t.getBoundsOfBoxes=x,t.getBoundsOfRects=M,t.getConnectedEdges=f,t.getDimensions=H,t.getEdgeCenter=Z,t.getEdgePosition=function(n){const{sourceNode:o,targetNode:r}=n;if(!K(o)||!K(r))return null;const i=o.internals.handleBounds||U(o.handles),a=r.internals.handleBounds||U(r.handles),s=J(i?.source??[],n.sourceHandle),u=J(n.connectionMode===t.ConnectionMode.Strict?a?.target??[]:(a?.target??[]).concat(a?.source??[]),n.targetHandle),c=s?.position||t.Position.Bottom,l=u?.position||t.Position.Top;if(!s||!u)return n.onError?.("008",e.error008(s?"target":"source",{id:n.id,sourceHandle:n.sourceHandle,targetHandle:n.targetHandle})),null;const[h,d]=Q(c,o,s),[f,p]=Q(l,r,u);return{sourceX:h,sourceY:d,targetX:f,targetY:p,sourcePosition:c,targetPosition:l}},t.getElementsToRemove=async function({nodesToRemove:t=[],edgesToRemove:e=[],nodes:n,edges:o,onBeforeDelete:r}){const i=new Set(t.map((t=>t.id))),a=[];for(const t of n){if(!1===t.deletable)continue;const e=i.has(t.id),n=!e&&t.parentId&&a.find((e=>e.id===t.parentId));(e||n)&&a.push(t)}const s=new Set(e.map((t=>t.id))),u=o.filter((t=>!1!==t.deletable)),c=f(a,u);for(const t of u){s.has(t.id)&&!c.find((e=>e.id===t.id))&&c.push(t)}if(!r)return{edges:c,nodes:a};const l=await r({nodes:a,edges:c});return"boolean"==typeof l?l?{edges:c,nodes:a}:{edges:[],nodes:[]}:l},t.getElevatedEdgeZIndex=function({sourceNode:t,targetNode:e,selected:n=!1,zIndex:o=0,elevateOnSelect:r=!1}){if(!r)return o;const i=n||e.selected||t.selected,a=Math.max(t.internals.z||0,e.internals.z||0,1e3);return o+(i?a:0)},t.getEventPosition=R,t.getHandleBounds=D,t.getHostForElement=X,t.getIncomers=(t,e,n)=>{if(!t.id)return[];const o=new Set;return n.forEach((e=>{e.target===t.id&&o.add(e.source)})),e.filter((t=>o.has(t.id)))},t.getInternalNodesBounds=d,t.getMarkerId=tt,t.getNodeDimensions=C,t.getNodePositionWithOrigin=l,t.getNodeToolbarTransform=function(e,n,o,r,i){let a=.5;"start"===i?a=0:"end"===i&&(a=1);let s=[(e.x+e.width*a)*n.zoom+n.x,e.y*n.zoom+n.y-r],u=[-100*a,-100];switch(o){case t.Position.Right:s=[(e.x+e.width)*n.zoom+n.x+r,(e.y+e.height*a)*n.zoom+n.y],u=[0,-100*a];break;case t.Position.Bottom:s[1]=(e.y+e.height)*n.zoom+n.y+r,u[1]=0;break;case t.Position.Left:s=[e.x*n.zoom+n.x-r,(e.y+e.height*a)*n.zoom+n.y],u=[-100,-100*a]}return`translate(${s[0]}px, ${s[1]}px) translate(${u[0]}%, ${u[1]}%)`},t.getNodesBounds=h,t.getNodesInside=(t,e,[n,o,r]=[0,0,1],i=!1,a=!1,s=[0,0])=>{const u={...k(e,[n,o,r]),width:e.width/r,height:e.height/r},c=[];for(const[,e]of t){const{measured:t,selectable:n=!0,hidden:o=!1}=e,r=t.width??e.width??e.initialWidth??null,l=t.height??e.height??e.initialHeight??null;if(a&&!n||o)continue;const h=P(u,b(e,s));(null===r||null===l||i&&h>0||h>=(r??0)*(l??0)||e.dragging)&&c.push(e)}return c},t.getOutgoers=(t,e,n)=>{if(!t.id)return[];const o=new Set;return n.forEach((e=>{e.source===t.id&&o.add(e.target)})),e.filter((t=>o.has(t.id)))},t.getOverlappingArea=P,t.getPointerPosition=O,t.getPositionWithOrigin=({x:t,y:e,width:n,height:o,origin:r=[0,0]})=>!n||!o||r[0]<0||r[1]<0||r[0]>1||r[1]>1?{x:t,y:e}:{x:t-n*r[0],y:e-o*r[1]},t.getSmoothStepPath=function({sourceX:e,sourceY:n,sourcePosition:o=t.Position.Bottom,targetX:r,targetY:i,targetPosition:a=t.Position.Top,borderRadius:s=5,centerX:u,centerY:c,offset:l=20}){const[h,d,f,p,g]=function({source:e,sourcePosition:n=t.Position.Bottom,target:o,targetPosition:r=t.Position.Top,center:i,offset:a}){const s=j[n],u=j[r],c={x:e.x+s.x*a,y:e.y+s.y*a},l={x:o.x+u.x*a,y:o.y+u.y*a},h=W({source:c,sourcePosition:n,target:l}),d=0!==h.x?"x":"y",f=h[d];let p,g,m=[];const y={x:0,y:0},v={x:0,y:0},[x,w,_,b]=Z({sourceX:e.x,sourceY:e.y,targetX:o.x,targetY:o.y});if(s[d]*u[d]==-1){p=i.x??x,g=i.y??w;const t=[{x:p,y:c.y},{x:p,y:l.y}],e=[{x:c.x,y:g},{x:l.x,y:g}];m=s[d]===f?"x"===d?t:e:"x"===d?e:t}else{const t=[{x:c.x,y:l.y}],i=[{x:l.x,y:c.y}];if(m="x"===d?s.x===f?i:t:s.y===f?t:i,n===r){const t=Math.abs(e[d]-o[d]);if(t<=a){const n=Math.min(a-1,a-t);s[d]===f?y[d]=(c[d]>e[d]?-1:1)*n:v[d]=(l[d]>o[d]?-1:1)*n}}if(n!==r){const e="x"===d?"y":"x",n=s[d]===u[e],o=c[e]>l[e],r=c[e]<l[e];(1===s[d]&&(!n&&o||n&&r)||1!==s[d]&&(!n&&r||n&&o))&&(m="x"===d?t:i)}const h={x:c.x+y.x,y:c.y+y.y},x={x:l.x+v.x,y:l.y+v.y};Math.max(Math.abs(h.x-m[0].x),Math.abs(x.x-m[0].x))>=Math.max(Math.abs(h.y-m[0].y),Math.abs(x.y-m[0].y))?(p=(h.x+x.x)/2,g=m[0].y):(p=m[0].x,g=(h.y+x.y)/2)}return[[e,{x:c.x+y.x,y:c.y+y.y},...m,{x:l.x+v.x,y:l.y+v.y},o],p,g,_,b]}({source:{x:e,y:n},sourcePosition:o,target:{x:r,y:i},targetPosition:a,center:{x:u,y:c},offset:l});return[h.reduce(((t,e,n)=>{let o="";return o=n>0&&n<h.length-1?function(t,e,n,o){const r=Math.min(F(t,e)/2,F(e,n)/2,o),{x:i,y:a}=e;if(t.x===i&&i===n.x||t.y===a&&a===n.y)return`L${i} ${a}`;if(t.y===a)return`L ${i+r*(t.x<n.x?-1:1)},${a}Q ${i},${a} ${i},${a+r*(t.y<n.y?1:-1)}`;const s=t.x<n.x?1:-1;return`L ${i},${a+r*(t.y<n.y?-1:1)}Q ${i},${a} ${i+r*s},${a}`}(h[n-1],e,h[n+1],s):`${0===n?"M":"L"}${e.x} ${e.y}`,t+=o}),""),d,f,p,g]},t.getStraightPath=function({sourceX:t,sourceY:e,targetX:n,targetY:o}){const[r,i,a,s]=Z({sourceX:t,sourceY:e,targetX:n,targetY:o});return[`M ${t},${e}L ${n},${o}`,r,i,a,s]},t.getViewportForBounds=A,t.handleConnectionChange=function(t,e,n){if(!n)return;const o=[];t.forEach(((t,n)=>{e?.has(n)||o.push(t)})),o.length&&n(o)},t.handleExpandParent=ot,t.infiniteExtent=n,t.isCoordinateExtent=$,t.isEdgeBase=c,t.isEdgeVisible=function({sourceNode:t,targetNode:e,width:n,height:o,transform:r}){const i=x(E(t),E(e));i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1);const a={x:-r[0]/r[2],y:-r[1]/r[2],width:n/r[2],height:o/r[2]};return P(a,_(i))>0},t.isInputDOMNode=function(t){const e=t.composedPath?.()?.[0]||t.target;return Y.includes(e?.nodeName)||e?.hasAttribute("contenteditable")||!!e?.closest(".nokey")},t.isInternalNodeBase=t=>"id"in t&&"internals"in t&&!("source"in t)&&!("target"in t),t.isMacOs=I,t.isMouseEvent=B,t.isNodeBase=t=>"id"in t&&"position"in t&&!("source"in t)&&!("target"in t),t.isNumeric=S,t.isRectObject=t=>S(t.width)&&S(t.height)&&S(t.x)&&S(t.y),t.nodeHasDimensions=function(t){return void 0!==(t.measured?.width??t.width??t.initialWidth)&&void 0!==(t.measured?.height??t.height??t.initialHeight)},t.nodeToBox=E,t.nodeToRect=b,t.panBy=function({delta:t,panZoom:e,transform:n,translateExtent:o,width:r,height:i}){if(!e||!t.x&&!t.y)return!1;const a=e.setViewportConstrained({x:n[0]+t.x,y:n[1]+t.y,zoom:n[2]},[[0,0],[r,i]],o);return!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2])},t.pointToRendererPoint=k,t.rectToBox=w,t.rendererPointToPoint=T,t.shallowNodeData=function(t,e){if(null===t||null===e)return!1;const n=Array.isArray(t)?t:[t],o=Array.isArray(e)?e:[e];if(n.length!==o.length)return!1;for(let t=0;t<n.length;t++)if(n[t].id!==o[t].id||n[t].type!==o[t].type||!Object.is(n[t].data,o[t].data))return!1;return!0},t.snapPosition=N,t.updateAbsolutePositions=et,t.updateConnectionLookup=function(t,e,n){t.clear(),e.clear();for(const o of n){const{source:n,target:r,sourceHandle:i=null,targetHandle:a=null}=o,s=`${n}-source-${i}`,u=`${r}-target-${a}`,c=t.get(s)||new Map,l=t.get(u)||new Map,h={edgeId:o.id,source:n,target:r,sourceHandle:i,targetHandle:a};e.set(o.id,o),t.set(s,c.set(`${r}-${a}`,h)),t.set(u,l.set(`${n}-${i}`,h))}},t.updateEdge=(t,n,o,r={shouldReplaceId:!0})=>{const{id:i,...a}=t;if(!n.source||!n.target)return e.error006(),o;if(!o.find((e=>e.id===t.id)))return e.error007(i),o;const s={...a,id:r.shouldReplaceId?G(n):i,source:n.source,target:n.target,sourceHandle:n.sourceHandle,targetHandle:n.targetHandle};return o.filter((t=>t.id!==i)).concat(s)},t.updateNodeInternals=function(t,e,n,o,r){const i=o?.querySelector(".xyflow__viewport");let a=!1;if(!i)return{changes:[],updatedInternals:a};const s=[],u=window.getComputedStyle(i),{m22:c}=new window.DOMMatrixReadOnly(u.transform),l=[];if(t.forEach((t=>{const n=e.get(t.id);if(n?.hidden)n.internals={...n.internals,handleBounds:void 0},a=!0;else if(n){const e=H(t.nodeElement),o=n.measured.width!==e.width||n.measured.height!==e.height;if(!(!e.width||!e.height||!o&&n.internals.handleBounds&&!t.force)){const i=t.nodeElement.getBoundingClientRect();n.measured=e,n.internals={...n.internals,handleBounds:{source:D(".source",t.nodeElement,i,c,n.origin||r),target:D(".target",t.nodeElement,i,c,n.origin||r)}},a=!0,o&&(s.push({id:n.id,type:"dimensions",dimensions:e}),n.expandParent&&n.parentId&&l.push({id:n.id,parentId:n.parentId,rect:b(n,r)}))}}})),l.length>0){const t=ot(l,e,n,r);s.push(...t)}return{changes:s,updatedInternals:a}}}));
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).XYFlowSystem={})}(this,(function(t){"use strict";const e={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:t=>`Node type "${t}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:t=>`The old edge with id=${t} does not exist.`,error009:t=>`Marker type "${t}" doesn't exist.`,error008:(t,{id:e,sourceHandle:n,targetHandle:o})=>`Couldn't create edge for ${t} handle id: "${n?o:n}", edge id: ${e}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:t=>`Edge type "${t}" not found. Using fallback type "default".`,error012:t=>`Node with id "${t}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(t="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${t}/dist/style.css' or base.css to make sure everything is working properly.`},n=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]];var o,r,i,a,s,u;t.ConnectionMode=void 0,(o=t.ConnectionMode||(t.ConnectionMode={})).Strict="strict",o.Loose="loose",t.PanOnScrollMode=void 0,(r=t.PanOnScrollMode||(t.PanOnScrollMode={})).Free="free",r.Vertical="vertical",r.Horizontal="horizontal",t.SelectionMode=void 0,(i=t.SelectionMode||(t.SelectionMode={})).Partial="partial",i.Full="full",t.ConnectionLineType=void 0,(a=t.ConnectionLineType||(t.ConnectionLineType={})).Bezier="default",a.Straight="straight",a.Step="step",a.SmoothStep="smoothstep",a.SimpleBezier="simplebezier",t.MarkerType=void 0,(s=t.MarkerType||(t.MarkerType={})).Arrow="arrow",s.ArrowClosed="arrowclosed",t.Position=void 0,(u=t.Position||(t.Position={})).Left="left",u.Top="top",u.Right="right",u.Bottom="bottom";const c=t=>"id"in t&&"source"in t&&"target"in t,l=(t,e=[0,0])=>{const{width:n,height:o}=C(t),r="internals"in t?t.internals.positionAbsolute:t.position,i=t.origin||e,a=n*i[0],s=o*i[1];return{position:{x:t.position.x-a,y:t.position.y-s},positionAbsolute:{x:r.x-a,y:r.y-s}}},h=(t,e={nodeOrigin:[0,0]})=>{if(0===t.length)return{x:0,y:0,width:0,height:0};const n=t.reduce(((t,n)=>{const o=E(n,e.nodeOrigin);return x(t,o)}),{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return _(n)},d=(t,e={nodeOrigin:[0,0]})=>{if(0===t.size)return{x:0,y:0,width:0,height:0};let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0};return t.forEach((t=>{if(null==e.filter||e.filter(t)){const o=E(t,e.nodeOrigin);n=x(n,o)}})),_(n)},f=(t,e)=>{const n=new Set;return t.forEach((t=>{n.add(t.id)})),e.filter((t=>n.has(t.source)||n.has(t.target)))};function p({nodeId:t,nextPosition:n,nodeLookup:o,nodeOrigin:r=[0,0],nodeExtent:i,onError:a}){const s=o.get(t),u=s.parentId?o.get(s.parentId):void 0,{x:c,y:h}=u?l(u,u.origin||r).positionAbsolute:{x:0,y:0};let d=function(t,e){return e&&"parent"!==e?[e[0],[e[1][0]-(t.measured?.width??0),e[1][1]-(t.measured?.height??0)]]:e}(s,s.extent||i);if("parent"!==s.extent||s.expandParent)u&&$(s.extent)&&(d=[[s.extent[0][0]+c,s.extent[0][1]+h],[s.extent[1][0]+c,s.extent[1][1]+h]]);else if(u){const t=s.measured.width,e=s.measured.height,n=u.measured.width,o=u.measured.height;if(t&&e&&n&&o){const i=s.origin||r,a=c+t*i[0],u=h+e*i[1];d=[[a,u],[a+n-t,u+o-e]]}}else a?.("005",e.error005());const f=$(d)?m(n,d):n;return{position:{x:f.x-c,y:f.y-h},positionAbsolute:f}}const g=(t,e=0,n=1)=>Math.min(Math.max(t,e),n),m=(t={x:0,y:0},e)=>({x:g(t.x,e[0][0],e[1][0]),y:g(t.y,e[0][1],e[1][1])}),y=(t,e,n)=>t<e?g(Math.abs(t-e),1,50)/50:t>n?-g(Math.abs(t-n),1,50)/50:0,v=(t,e)=>[20*y(t.x,35,e.width-35),20*y(t.y,35,e.height-35)],x=(t,e)=>({x:Math.min(t.x,e.x),y:Math.min(t.y,e.y),x2:Math.max(t.x2,e.x2),y2:Math.max(t.y2,e.y2)}),w=({x:t,y:e,width:n,height:o})=>({x:t,y:e,x2:t+n,y2:e+o}),_=({x:t,y:e,x2:n,y2:o})=>({x:t,y:e,width:n-t,height:o-e}),b=(t,e=[0,0])=>{const{x:n,y:o}=l(t,e).positionAbsolute;return{x:n,y:o,width:t.measured?.width??t.width??0,height:t.measured?.height??t.height??0}},E=(t,e=[0,0])=>{const{x:n,y:o}=l(t,e).positionAbsolute;return{x:n,y:o,x2:n+(t.measured?.width??t.width??0),y2:o+(t.measured?.height??t.height??0)}},M=(t,e)=>_(x(w(t),w(e))),P=(t,e)=>{const n=Math.max(0,Math.min(t.x+t.width,e.x+e.width)-Math.max(t.x,e.x)),o=Math.max(0,Math.min(t.y+t.height,e.y+e.height)-Math.max(t.y,e.y));return Math.ceil(n*o)},S=t=>!isNaN(t)&&isFinite(t),z=(t,e)=>{},N=(t,e=[1,1])=>({x:e[0]*Math.round(t.x/e[0]),y:e[1]*Math.round(t.y/e[1])}),k=({x:t,y:e},[n,o,r],i=!1,a=[1,1])=>{const s={x:(t-n)/r,y:(e-o)/r};return i?N(s,a):s},T=({x:t,y:e},[n,o,r])=>({x:t*r+n,y:e*r+o}),A=(t,e,n,o,r,i)=>{const a=e/(t.width*(1+i)),s=n/(t.height*(1+i)),u=Math.min(a,s),c=g(u,o,r);return{x:e/2-(t.x+t.width/2)*c,y:n/2-(t.y+t.height/2)*c,zoom:c}},I=()=>"undefined"!=typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0;function $(t){return void 0!==t&&"parent"!==t}function C(t){return{width:t.measured?.width??t.width??t.initialWidth??0,height:t.measured?.height??t.height??t.initialHeight??0}}function O(t,{snapGrid:e=[0,0],snapToGrid:n=!1,transform:o}){const{x:r,y:i}=R(t),a=k({x:r,y:i},o),{x:s,y:u}=n?N(a,e):a;return{xSnapped:s,ySnapped:u,...a}}const H=t=>({width:t.offsetWidth,height:t.offsetHeight}),X=t=>t.getRootNode?.()||window?.document,Y=["INPUT","SELECT","TEXTAREA"];const B=t=>"clientX"in t,R=(t,e)=>{const n=B(t),o=n?t.clientX:t.touches?.[0].clientX,r=n?t.clientY:t.touches?.[0].clientY;return{x:o-(e?.left??0),y:r-(e?.top??0)}},D=(t,e,n,o,r=[0,0])=>{const i=e.querySelectorAll(t);if(!i||!i.length)return null;const a=Array.from(i),s=n.left+n.width*r[0],u=n.top+n.height*r[1];return a.map((t=>{const e=t.getBoundingClientRect();return{id:t.getAttribute("data-handleid"),position:t.getAttribute("data-handlepos"),x:(e.left-s)/o,y:(e.top-u)/o,...H(t)}}))};function L({sourceX:t,sourceY:e,targetX:n,targetY:o,sourceControlX:r,sourceControlY:i,targetControlX:a,targetControlY:s}){const u=.125*t+.375*r+.375*a+.125*n,c=.125*e+.375*i+.375*s+.125*o;return[u,c,Math.abs(u-t),Math.abs(c-e)]}function V(t,e){return t>=0?.5*t:25*e*Math.sqrt(-t)}function q({pos:e,x1:n,y1:o,x2:r,y2:i,c:a}){switch(e){case t.Position.Left:return[n-V(n-r,a),o];case t.Position.Right:return[n+V(r-n,a),o];case t.Position.Top:return[n,o-V(o-i,a)];case t.Position.Bottom:return[n,o+V(i-o,a)]}}function Z({sourceX:t,sourceY:e,targetX:n,targetY:o}){const r=Math.abs(n-t)/2,i=n<t?n+r:n-r,a=Math.abs(o-e)/2;return[i,o<e?o+a:o-a,r,a]}const G=({source:t,sourceHandle:e,target:n,targetHandle:o})=>`xy-edge__${t}${e||""}-${n}${o||""}`;const j={[t.Position.Left]:{x:-1,y:0},[t.Position.Right]:{x:1,y:0},[t.Position.Top]:{x:0,y:-1},[t.Position.Bottom]:{x:0,y:1}},W=({source:e,sourcePosition:n=t.Position.Bottom,target:o})=>n===t.Position.Left||n===t.Position.Right?e.x<o.x?{x:1,y:0}:{x:-1,y:0}:e.y<o.y?{x:0,y:1}:{x:0,y:-1},F=(t,e)=>Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2));function K(t){return t&&!(!t.internals.handleBounds&&!t.handles?.length)&&!!(t.measured.width||t.width||t.initialWidth)}function U(t){if(!t)return null;const e=[],n=[];for(const o of t)o.width=o.width??1,o.height=o.height??1,"source"===o.type?e.push(o):"target"===o.type&&n.push(o);return{source:e,target:n}}function Q(e,n,o=t.Position.Left){const r=(n?.x??0)+e.internals.positionAbsolute.x,i=(n?.y??0)+e.internals.positionAbsolute.y,{width:a,height:s}=n??C(e);switch(n?.position??o){case t.Position.Top:return[r+a/2,i];case t.Position.Right:return[r+a,i+s/2];case t.Position.Bottom:return[r+a/2,i+s];case t.Position.Left:return[r,i+s/2]}}function J(t,e){return t&&(e?t.find((t=>t.id===e)):t[0])||null}function tt(t,e){if(!t)return"";if("string"==typeof t)return t;return`${e?`${e}__`:""}${Object.keys(t).sort().map((e=>`${e}=${t[e]}`)).join("&")}`}function et(t,e={nodeOrigin:[0,0],elevateNodesOnSelect:!0,defaults:{}}){const n=e?.elevateNodesOnSelect?1e3:0;for(const[,o]of t){const r=o.parentId;if(!r)continue;if(!t.has(r))throw new Error(`Parent node ${r} not found`);const i=t.get(r),{x:a,y:s,z:u}=nt(o,t,{...o.position,z:(S(o.zIndex)?o.zIndex:0)+(o.selected?n:0)},i?.origin??e.nodeOrigin),c=o.internals.positionAbsolute,l=a!==c.x||s!==c.y;(l||u!==o.internals.z)&&(o.internals={...o.internals,positionAbsolute:l?{x:a,y:s}:c,z:u})}}function nt(t,e,n,o=[0,0]){if(!t.parentId)return n;const r=e.get(t.parentId),i=l(r,o).position;return nt(r,e,{x:(n.x??0)+i.x,y:(n.y??0)+i.y,z:(r.internals.z??0)>(n.z??0)?r.internals.z??0:n.z??0},r.origin||o)}function ot(t,e,n,o){const r=[],i=new Map;for(const n of t){const t=e.get(n.parentId);if(!t)continue;const r=i.get(n.parentId)?.expandedRect??b(t,t.origin??o),a=M(r,n.rect);i.set(n.parentId,{expandedRect:a,parent:t})}return i.size>0&&i.forEach((({expandedRect:e,parent:o},i)=>{const{position:a}=l(o,o.origin),s=C(o),u=e.x<a.x?Math.round(Math.abs(a.x-e.x)):0,c=e.y<a.y?Math.round(Math.abs(a.y-e.y)):0;if(u>0||c>0){r.push({id:i,type:"position",position:{x:a.x-u,y:a.y-c}});const e=n.get(i);e?.forEach((e=>{t.some((t=>t.id===e.id))||r.push({id:e.id,type:"position",position:{x:e.position.x+u,y:e.position.y+c}})}))}(s.width<e.width||s.height<e.height)&&r.push({id:i,type:"dimensions",setAttributes:!0,dimensions:{width:Math.max(s.width,Math.round(e.width)),height:Math.max(s.height,Math.round(e.height))}})})),r}var rt={value:()=>{}};function it(){for(var t,e=0,n=arguments.length,o={};e<n;++e){if(!(t=arguments[e]+"")||t in o||/[\s.]/.test(t))throw new Error("illegal type: "+t);o[t]=[]}return new at(o)}function at(t){this._=t}function st(t,e){for(var n,o=0,r=t.length;o<r;++o)if((n=t[o]).name===e)return n.value}function ut(t,e,n){for(var o=0,r=t.length;o<r;++o)if(t[o].name===e){t[o]=rt,t=t.slice(0,o).concat(t.slice(o+1));break}return null!=n&&t.push({name:e,value:n}),t}at.prototype=it.prototype={constructor:at,on:function(t,e){var n,o,r=this._,i=(o=r,(t+"").trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");if(n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),t&&!o.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))),a=-1,s=i.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++a<s;)if(n=(t=i[a]).type)r[n]=ut(r[n],t.name,e);else if(null==e)for(n in r)r[n]=ut(r[n],t.name,null);return this}for(;++a<s;)if((n=(t=i[a]).type)&&(n=st(r[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new at(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,o,r=new Array(n),i=0;i<n;++i)r[i]=arguments[i+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(i=0,n=(o=this._[t]).length;i<n;++i)o[i].value.apply(e,r)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var o=this._[t],r=0,i=o.length;r<i;++r)o[r].value.apply(e,n)}};var ct="http://www.w3.org/1999/xhtml",lt={svg:"http://www.w3.org/2000/svg",xhtml:ct,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function ht(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),lt.hasOwnProperty(e)?{space:lt[e],local:t}:t}function dt(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===ct&&e.documentElement.namespaceURI===ct?e.createElement(t):e.createElementNS(n,t)}}function ft(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function pt(t){var e=ht(t);return(e.local?ft:dt)(e)}function gt(){}function mt(t){return null==t?gt:function(){return this.querySelector(t)}}function yt(){return[]}function vt(t){return null==t?yt:function(){return this.querySelectorAll(t)}}function xt(t){return function(){return null==(e=t.apply(this,arguments))?[]:Array.isArray(e)?e:Array.from(e);var e}}function wt(t){return function(){return this.matches(t)}}function _t(t){return function(e){return e.matches(t)}}var bt=Array.prototype.find;function Et(){return this.firstElementChild}var Mt=Array.prototype.filter;function Pt(){return Array.from(this.children)}function St(t){return new Array(t.length)}function zt(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function Nt(t,e,n,o,r,i){for(var a,s=0,u=e.length,c=i.length;s<c;++s)(a=e[s])?(a.__data__=i[s],o[s]=a):n[s]=new zt(t,i[s]);for(;s<u;++s)(a=e[s])&&(r[s]=a)}function kt(t,e,n,o,r,i,a){var s,u,c,l=new Map,h=e.length,d=i.length,f=new Array(h);for(s=0;s<h;++s)(u=e[s])&&(f[s]=c=a.call(u,u.__data__,s,e)+"",l.has(c)?r[s]=u:l.set(c,u));for(s=0;s<d;++s)c=a.call(t,i[s],s,i)+"",(u=l.get(c))?(o[s]=u,u.__data__=i[s],l.delete(c)):n[s]=new zt(t,i[s]);for(s=0;s<h;++s)(u=e[s])&&l.get(f[s])===u&&(r[s]=u)}function Tt(t){return t.__data__}function At(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function It(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}function $t(t){return function(){this.removeAttribute(t)}}function Ct(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Ot(t,e){return function(){this.setAttribute(t,e)}}function Ht(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function Xt(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function Yt(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function Bt(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Rt(t){return function(){this.style.removeProperty(t)}}function Dt(t,e,n){return function(){this.style.setProperty(t,e,n)}}function Lt(t,e,n){return function(){var o=e.apply(this,arguments);null==o?this.style.removeProperty(t):this.style.setProperty(t,o,n)}}function Vt(t,e){return t.style.getPropertyValue(e)||Bt(t).getComputedStyle(t,null).getPropertyValue(e)}function qt(t){return function(){delete this[t]}}function Zt(t,e){return function(){this[t]=e}}function Gt(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function jt(t){return t.trim().split(/^|\s+/)}function Wt(t){return t.classList||new Ft(t)}function Ft(t){this._node=t,this._names=jt(t.getAttribute("class")||"")}function Kt(t,e){for(var n=Wt(t),o=-1,r=e.length;++o<r;)n.add(e[o])}function Ut(t,e){for(var n=Wt(t),o=-1,r=e.length;++o<r;)n.remove(e[o])}function Qt(t){return function(){Kt(this,t)}}function Jt(t){return function(){Ut(this,t)}}function te(t,e){return function(){(e.apply(this,arguments)?Kt:Ut)(this,t)}}function ee(){this.textContent=""}function ne(t){return function(){this.textContent=t}}function oe(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function re(){this.innerHTML=""}function ie(t){return function(){this.innerHTML=t}}function ae(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function se(){this.nextSibling&&this.parentNode.appendChild(this)}function ue(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function ce(){return null}function le(){var t=this.parentNode;t&&t.removeChild(this)}function he(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function de(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function fe(t){return function(){var e=this.__on;if(e){for(var n,o=0,r=-1,i=e.length;o<i;++o)n=e[o],t.type&&n.type!==t.type||n.name!==t.name?e[++r]=n:this.removeEventListener(n.type,n.listener,n.options);++r?e.length=r:delete this.__on}}}function pe(t,e,n){return function(){var o,r=this.__on,i=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(r)for(var a=0,s=r.length;a<s;++a)if((o=r[a]).type===t.type&&o.name===t.name)return this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=i,o.options=n),void(o.value=e);this.addEventListener(t.type,i,n),o={type:t.type,name:t.name,value:e,listener:i,options:n},r?r.push(o):this.__on=[o]}}function ge(t,e,n){var o=Bt(t),r=o.CustomEvent;"function"==typeof r?r=new r(e,n):(r=o.document.createEvent("Event"),n?(r.initEvent(e,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(e,!1,!1)),t.dispatchEvent(r)}function me(t,e){return function(){return ge(this,t,e)}}function ye(t,e){return function(){return ge(this,t,e.apply(this,arguments))}}zt.prototype={constructor:zt,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},Ft.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var ve=[null];function xe(t,e){this._groups=t,this._parents=e}function we(){return new xe([[document.documentElement]],ve)}function _e(t){return"string"==typeof t?new xe([[document.querySelector(t)]],[document.documentElement]):new xe([[t]],ve)}function be(t,e){if(t=function(t){let e;for(;e=t.sourceEvent;)t=e;return t}(t),void 0===e&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=t.clientX,o.y=t.clientY,[(o=o.matrixTransform(e.getScreenCTM().inverse())).x,o.y]}if(e.getBoundingClientRect){var r=e.getBoundingClientRect();return[t.clientX-r.left-e.clientLeft,t.clientY-r.top-e.clientTop]}}return[t.pageX,t.pageY]}xe.prototype=we.prototype={constructor:xe,select:function(t){"function"!=typeof t&&(t=mt(t));for(var e=this._groups,n=e.length,o=new Array(n),r=0;r<n;++r)for(var i,a,s=e[r],u=s.length,c=o[r]=new Array(u),l=0;l<u;++l)(i=s[l])&&(a=t.call(i,i.__data__,l,s))&&("__data__"in i&&(a.__data__=i.__data__),c[l]=a);return new xe(o,this._parents)},selectAll:function(t){t="function"==typeof t?xt(t):vt(t);for(var e=this._groups,n=e.length,o=[],r=[],i=0;i<n;++i)for(var a,s=e[i],u=s.length,c=0;c<u;++c)(a=s[c])&&(o.push(t.call(a,a.__data__,c,s)),r.push(a));return new xe(o,r)},selectChild:function(t){return this.select(null==t?Et:function(t){return function(){return bt.call(this.children,t)}}("function"==typeof t?t:_t(t)))},selectChildren:function(t){return this.selectAll(null==t?Pt:function(t){return function(){return Mt.call(this.children,t)}}("function"==typeof t?t:_t(t)))},filter:function(t){"function"!=typeof t&&(t=wt(t));for(var e=this._groups,n=e.length,o=new Array(n),r=0;r<n;++r)for(var i,a=e[r],s=a.length,u=o[r]=[],c=0;c<s;++c)(i=a[c])&&t.call(i,i.__data__,c,a)&&u.push(i);return new xe(o,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,Tt);var n,o=e?kt:Nt,r=this._parents,i=this._groups;"function"!=typeof t&&(n=t,t=function(){return n});for(var a=i.length,s=new Array(a),u=new Array(a),c=new Array(a),l=0;l<a;++l){var h=r[l],d=i[l],f=d.length,p=At(t.call(h,h&&h.__data__,l,r)),g=p.length,m=u[l]=new Array(g),y=s[l]=new Array(g);o(h,d,m,y,c[l]=new Array(f),p,e);for(var v,x,w=0,_=0;w<g;++w)if(v=m[w]){for(w>=_&&(_=w+1);!(x=y[_])&&++_<g;);v._next=x||null}}return(s=new xe(s,r))._enter=u,s._exit=c,s},enter:function(){return new xe(this._enter||this._groups.map(St),this._parents)},exit:function(){return new xe(this._exit||this._groups.map(St),this._parents)},join:function(t,e,n){var o=this.enter(),r=this,i=this.exit();return"function"==typeof t?(o=t(o))&&(o=o.selection()):o=o.append(t+""),null!=e&&(r=e(r))&&(r=r.selection()),null==n?i.remove():n(i),o&&r?o.merge(r).order():r},merge:function(t){for(var e=t.selection?t.selection():t,n=this._groups,o=e._groups,r=n.length,i=o.length,a=Math.min(r,i),s=new Array(r),u=0;u<a;++u)for(var c,l=n[u],h=o[u],d=l.length,f=s[u]=new Array(d),p=0;p<d;++p)(c=l[p]||h[p])&&(f[p]=c);for(;u<r;++u)s[u]=n[u];return new xe(s,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var o,r=t[e],i=r.length-1,a=r[i];--i>=0;)(o=r[i])&&(a&&4^o.compareDocumentPosition(a)&&a.parentNode.insertBefore(o,a),a=o);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=It);for(var n=this._groups,o=n.length,r=new Array(o),i=0;i<o;++i){for(var a,s=n[i],u=s.length,c=r[i]=new Array(u),l=0;l<u;++l)(a=s[l])&&(c[l]=a);c.sort(e)}return new xe(r,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var o=t[e],r=0,i=o.length;r<i;++r){var a=o[r];if(a)return a}return null},size:function(){let t=0;for(const e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,n=0,o=e.length;n<o;++n)for(var r,i=e[n],a=0,s=i.length;a<s;++a)(r=i[a])&&t.call(r,r.__data__,a,i);return this},attr:function(t,e){var n=ht(t);if(arguments.length<2){var o=this.node();return n.local?o.getAttributeNS(n.space,n.local):o.getAttribute(n)}return this.each((null==e?n.local?Ct:$t:"function"==typeof e?n.local?Yt:Xt:n.local?Ht:Ot)(n,e))},style:function(t,e,n){return arguments.length>1?this.each((null==e?Rt:"function"==typeof e?Lt:Dt)(t,e,null==n?"":n)):Vt(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?qt:"function"==typeof e?Gt:Zt)(t,e)):this.node()[t]},classed:function(t,e){var n=jt(t+"");if(arguments.length<2){for(var o=Wt(this.node()),r=-1,i=n.length;++r<i;)if(!o.contains(n[r]))return!1;return!0}return this.each(("function"==typeof e?te:e?Qt:Jt)(n,e))},text:function(t){return arguments.length?this.each(null==t?ee:("function"==typeof t?oe:ne)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?re:("function"==typeof t?ae:ie)(t)):this.node().innerHTML},raise:function(){return this.each(se)},lower:function(){return this.each(ue)},append:function(t){var e="function"==typeof t?t:pt(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var n="function"==typeof t?t:pt(t),o=null==e?ce:"function"==typeof e?e:mt(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),o.apply(this,arguments)||null)}))},remove:function(){return this.each(le)},clone:function(t){return this.select(t?de:he)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,n){var o,r,i=function(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}(t+""),a=i.length;if(!(arguments.length<2)){for(s=e?pe:fe,o=0;o<a;++o)this.each(s(i[o],e,n));return this}var s=this.node().__on;if(s)for(var u,c=0,l=s.length;c<l;++c)for(o=0,u=s[c];o<a;++o)if((r=i[o]).type===u.type&&r.name===u.name)return u.value},dispatch:function(t,e){return this.each(("function"==typeof e?ye:me)(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var o,r=t[e],i=0,a=r.length;i<a;++i)(o=r[i])&&(yield o)}};const Ee={passive:!1},Me={capture:!0,passive:!1};function Pe(t){t.stopImmediatePropagation()}function Se(t){t.preventDefault(),t.stopImmediatePropagation()}function ze(t){var e=t.document.documentElement,n=_e(t).on("dragstart.drag",Se,Me);"onselectstart"in e?n.on("selectstart.drag",Se,Me):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function Ne(t,e){var n=t.document.documentElement,o=_e(t).on("dragstart.drag",null);e&&(o.on("click.drag",Se,Me),setTimeout((function(){o.on("click.drag",null)}),0)),"onselectstart"in n?o.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}var ke=t=>()=>t;function Te(t,{sourceEvent:e,subject:n,target:o,identifier:r,active:i,x:a,y:s,dx:u,dy:c,dispatch:l}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:s,enumerable:!0,configurable:!0},dx:{value:u,enumerable:!0,configurable:!0},dy:{value:c,enumerable:!0,configurable:!0},_:{value:l}})}function Ae(t){return!t.ctrlKey&&!t.button}function Ie(){return this.parentNode}function $e(t,e){return null==e?{x:t.x,y:t.y}:e}function Ce(){return navigator.maxTouchPoints||"ontouchstart"in this}function Oe(){var t,e,n,o,r=Ae,i=Ie,a=$e,s=Ce,u={},c=it("start","drag","end"),l=0,h=0;function d(t){t.on("mousedown.drag",f).filter(s).on("touchstart.drag",m).on("touchmove.drag",y,Ee).on("touchend.drag touchcancel.drag",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(a,s){if(!o&&r.call(this,a,s)){var u=x(this,i.call(this,a,s),a,s,"mouse");u&&(_e(a.view).on("mousemove.drag",p,Me).on("mouseup.drag",g,Me),ze(a.view),Pe(a),n=!1,t=a.clientX,e=a.clientY,u("start",a))}}function p(o){if(Se(o),!n){var r=o.clientX-t,i=o.clientY-e;n=r*r+i*i>h}u.mouse("drag",o)}function g(t){_e(t.view).on("mousemove.drag mouseup.drag",null),Ne(t.view,n),Se(t),u.mouse("end",t)}function m(t,e){if(r.call(this,t,e)){var n,o,a=t.changedTouches,s=i.call(this,t,e),u=a.length;for(n=0;n<u;++n)(o=x(this,s,t,e,a[n].identifier,a[n]))&&(Pe(t),o("start",t,a[n]))}}function y(t){var e,n,o=t.changedTouches,r=o.length;for(e=0;e<r;++e)(n=u[o[e].identifier])&&(Se(t),n("drag",t,o[e]))}function v(t){var e,n,r=t.changedTouches,i=r.length;for(o&&clearTimeout(o),o=setTimeout((function(){o=null}),500),e=0;e<i;++e)(n=u[r[e].identifier])&&(Pe(t),n("end",t,r[e]))}function x(t,e,n,o,r,i){var s,h,f,p=c.copy(),g=be(i||n,e);if(null!=(f=a.call(t,new Te("beforestart",{sourceEvent:n,target:d,identifier:r,active:l,x:g[0],y:g[1],dx:0,dy:0,dispatch:p}),o)))return s=f.x-g[0]||0,h=f.y-g[1]||0,function n(i,a,c){var m,y=g;switch(i){case"start":u[r]=n,m=l++;break;case"end":delete u[r],--l;case"drag":g=be(c||a,e),m=l}p.call(i,t,new Te(i,{sourceEvent:a,subject:f,target:d,identifier:r,active:m,x:g[0]+s,y:g[1]+h,dx:g[0]-y[0],dy:g[1]-y[1],dispatch:p}),o)}}return d.filter=function(t){return arguments.length?(r="function"==typeof t?t:ke(!!t),d):r},d.container=function(t){return arguments.length?(i="function"==typeof t?t:ke(t),d):i},d.subject=function(t){return arguments.length?(a="function"==typeof t?t:ke(t),d):a},d.touchable=function(t){return arguments.length?(s="function"==typeof t?t:ke(!!t),d):s},d.on=function(){var t=c.on.apply(c,arguments);return t===c?d:t},d.clickDistance=function(t){return arguments.length?(h=(t=+t)*t,d):Math.sqrt(h)},d}function He(t,e){if(!t.parentId)return!1;const n=e.get(t.parentId);return!!n&&(!!n.selected||He(n,e))}function Xe(t,e,n){let o=t;do{if(o?.matches(e))return!0;if(o===n)return!1;o=o.parentElement}while(o);return!1}function Ye({nodeId:t,dragItems:e,nodeLookup:n}){const o=[];for(const[t,r]of e){const e=n.get(t)?.internals.userNode;e&&o.push({...e,position:r.position})}if(!t)return[o[0],o];const r=n.get(t).internals.userNode;return[{...r,position:e.get(t)?.position||r.position},o]}function Be(t,e,n,o){return(e[n]||[]).reduce(((e,r)=>{if(`${t.id}-${r.id}-${n}`!==o){const[o,i]=Q(t,r);e.push({id:r.id||null,type:n,nodeId:t.id,x:o,y:i})}return e}),[])}function Re(t,e){return t||(e?.classList.contains("target")?"target":e?.classList.contains("source")?"source":null)}function De(t,e){let n=null;return e?n="valid":t&&!e&&(n="invalid"),n}Te.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};const Le=()=>!0;let Ve=null;function qe(e,{handle:n,connectionMode:o,fromNodeId:r,fromHandleId:i,fromType:a,doc:s,lib:u,flowId:c,isValidConnection:l=Le}){const h="target"===a,d=n?s.querySelector(`.${u}-flow__handle[data-id="${c}-${n?.nodeId}-${n?.id}-${n?.type}"]`):null,{x:f,y:p}=R(e),g=s.elementFromPoint(f,p),m=g?.classList.contains(`${u}-flow__handle`)?g:d,y={handleDomNode:m,isValid:!1,connection:null,endHandle:null};if(m){const e=Re(void 0,m),n=m.getAttribute("data-nodeid"),a=m.getAttribute("data-handleid"),s=m.classList.contains("connectable"),u=m.classList.contains("connectableend");if(!n)return y;const c={source:h?n:r,sourceHandle:h?a:i,target:h?r:n,targetHandle:h?i:a};y.connection=c;const d=s&&u&&(o===t.ConnectionMode.Strict?h&&"source"===e||!h&&"target"===e:n!==r||a!==i);y.isValid=d&&l(c),y.endHandle={nodeId:n,handleId:a,type:e,position:m.getAttribute("data-handlepos")}}return y}const Ze={onPointerDown:function(e,{connectionMode:n,connectionRadius:o,handleId:r,nodeId:i,edgeUpdaterType:a,isTarget:s,domNode:u,nodeLookup:c,lib:l,autoPanOnConnect:h,flowId:d,panBy:f,cancelConnection:p,onConnectStart:g,onConnect:m,onConnectEnd:y,isValidConnection:x=Le,onReconnectEnd:w,updateConnection:_,getTransform:b,getConnectionStartHandle:E}){const M=X(e.target);let P,S=0;const{x:z,y:N}=R(e),A=M?.elementFromPoint(z,N),I=Re(a,A),$=u?.getBoundingClientRect();if(!$||!I)return;let C=R(e,$),O=!1,H=null,Y=!1,B=null;const D=function({nodeLookup:t,nodeId:e,handleId:n,handleType:o}){const r=[];for(const[,i]of t)if(i.internals.handleBounds){const t=`${e}-${n}-${o}`,a=Be(i,i.internals.handleBounds,"source",t),s=Be(i,i.internals.handleBounds,"target",t);r.push(...a,...s)}return r}({nodeLookup:c,nodeId:i,handleId:r,handleType:I});function L(){if(!h||!$)return;const[t,e]=v(C,$);f({x:t,y:e}),S=requestAnimationFrame(L)}function V(t){E()||q(t);const e=b();C=R(t,$),P=function(t,e,n){let o=[],r=1/0;for(const i of n){const n=Math.sqrt(Math.pow(i.x-t.x,2)+Math.pow(i.y-t.y,2));n<=e&&(n<r?o=[i]:n===r&&o.push(i),r=n)}return o.length?1===o.length?o[0]:o.find((t=>"target"===t.type))||o[0]:null}(k(C,e,!1,[1,1]),o,D),O||(L(),O=!0);const a=qe(t,{handle:P,connectionMode:n,fromNodeId:i,fromHandleId:r,fromType:s?"target":"source",isValidConnection:x,doc:M,lib:l,flowId:d});B=a.handleDomNode,H=a.connection,Y=a.isValid,_({connectionStartHandle:Ve,connectionPosition:P&&Y?T({x:P.x,y:P.y},e):C,connectionStatus:De(!!P,Y),connectionEndHandle:a.endHandle})}function q(t){(P||B)&&H&&Y&&m?.(H),y?.(t),a&&w?.(t),p(),cancelAnimationFrame(S),O=!1,Y=!1,H=null,B=null,Ve=null,M.removeEventListener("mousemove",V),M.removeEventListener("mouseup",q),M.removeEventListener("touchmove",V),M.removeEventListener("touchend",q)}Ve={nodeId:i,handleId:r,type:I,position:A?.getAttribute("data-handlepos")||t.Position.Top},_({connectionPosition:C,connectionStatus:null,connectionStartHandle:Ve,connectionEndHandle:null}),g?.(e,{nodeId:i,handleId:r,handleType:I}),M.addEventListener("mousemove",V),M.addEventListener("mouseup",q),M.addEventListener("touchmove",V),M.addEventListener("touchend",q)},isValid:qe};function Ge(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function je(t,e){var n=Object.create(t.prototype);for(var o in e)n[o]=e[o];return n}function We(){}var Fe=.7,Ke=1/Fe,Ue="\\s*([+-]?\\d+)\\s*",Qe="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Je="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",tn=/^#([0-9a-f]{3,8})$/,en=new RegExp(`^rgb\\(${Ue},${Ue},${Ue}\\)$`),nn=new RegExp(`^rgb\\(${Je},${Je},${Je}\\)$`),on=new RegExp(`^rgba\\(${Ue},${Ue},${Ue},${Qe}\\)$`),rn=new RegExp(`^rgba\\(${Je},${Je},${Je},${Qe}\\)$`),an=new RegExp(`^hsl\\(${Qe},${Je},${Je}\\)$`),sn=new RegExp(`^hsla\\(${Qe},${Je},${Je},${Qe}\\)$`),un={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function cn(){return this.rgb().formatHex()}function ln(){return this.rgb().formatRgb()}function hn(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=tn.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?dn(e):3===n?new gn(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?fn(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?fn(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=en.exec(t))?new gn(e[1],e[2],e[3],1):(e=nn.exec(t))?new gn(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=on.exec(t))?fn(e[1],e[2],e[3],e[4]):(e=rn.exec(t))?fn(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=an.exec(t))?_n(e[1],e[2]/100,e[3]/100,1):(e=sn.exec(t))?_n(e[1],e[2]/100,e[3]/100,e[4]):un.hasOwnProperty(t)?dn(un[t]):"transparent"===t?new gn(NaN,NaN,NaN,0):null}function dn(t){return new gn(t>>16&255,t>>8&255,255&t,1)}function fn(t,e,n,o){return o<=0&&(t=e=n=NaN),new gn(t,e,n,o)}function pn(t,e,n,o){return 1===arguments.length?((r=t)instanceof We||(r=hn(r)),r?new gn((r=r.rgb()).r,r.g,r.b,r.opacity):new gn):new gn(t,e,n,null==o?1:o);var r}function gn(t,e,n,o){this.r=+t,this.g=+e,this.b=+n,this.opacity=+o}function mn(){return`#${wn(this.r)}${wn(this.g)}${wn(this.b)}`}function yn(){const t=vn(this.opacity);return`${1===t?"rgb(":"rgba("}${xn(this.r)}, ${xn(this.g)}, ${xn(this.b)}${1===t?")":`, ${t})`}`}function vn(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function xn(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function wn(t){return((t=xn(t))<16?"0":"")+t.toString(16)}function _n(t,e,n,o){return o<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new En(t,e,n,o)}function bn(t){if(t instanceof En)return new En(t.h,t.s,t.l,t.opacity);if(t instanceof We||(t=hn(t)),!t)return new En;if(t instanceof En)return t;var e=(t=t.rgb()).r/255,n=t.g/255,o=t.b/255,r=Math.min(e,n,o),i=Math.max(e,n,o),a=NaN,s=i-r,u=(i+r)/2;return s?(a=e===i?(n-o)/s+6*(n<o):n===i?(o-e)/s+2:(e-n)/s+4,s/=u<.5?i+r:2-i-r,a*=60):s=u>0&&u<1?0:a,new En(a,s,u,t.opacity)}function En(t,e,n,o){this.h=+t,this.s=+e,this.l=+n,this.opacity=+o}function Mn(t){return(t=(t||0)%360)<0?t+360:t}function Pn(t){return Math.max(0,Math.min(1,t||0))}function Sn(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}Ge(We,hn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:cn,formatHex:cn,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return bn(this).formatHsl()},formatRgb:ln,toString:ln}),Ge(gn,pn,je(We,{brighter(t){return t=null==t?Ke:Math.pow(Ke,t),new gn(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?Fe:Math.pow(Fe,t),new gn(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new gn(xn(this.r),xn(this.g),xn(this.b),vn(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:mn,formatHex:mn,formatHex8:function(){return`#${wn(this.r)}${wn(this.g)}${wn(this.b)}${wn(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:yn,toString:yn})),Ge(En,(function(t,e,n,o){return 1===arguments.length?bn(t):new En(t,e,n,null==o?1:o)}),je(We,{brighter(t){return t=null==t?Ke:Math.pow(Ke,t),new En(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?Fe:Math.pow(Fe,t),new En(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,o=n+(n<.5?n:1-n)*e,r=2*n-o;return new gn(Sn(t>=240?t-240:t+120,r,o),Sn(t,r,o),Sn(t<120?t+240:t-120,r,o),this.opacity)},clamp(){return new En(Mn(this.h),Pn(this.s),Pn(this.l),vn(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=vn(this.opacity);return`${1===t?"hsl(":"hsla("}${Mn(this.h)}, ${100*Pn(this.s)}%, ${100*Pn(this.l)}%${1===t?")":`, ${t})`}`}}));var zn=t=>()=>t;function Nn(t){return 1==(t=+t)?kn:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(o){return Math.pow(t+o*e,n)}}(e,n,t):zn(isNaN(e)?n:e)}}function kn(t,e){var n=e-t;return n?function(t,e){return function(n){return t+n*e}}(t,n):zn(isNaN(t)?e:t)}var Tn=function t(e){var n=Nn(e);function o(t,e){var o=n((t=pn(t)).r,(e=pn(e)).r),r=n(t.g,e.g),i=n(t.b,e.b),a=kn(t.opacity,e.opacity);return function(e){return t.r=o(e),t.g=r(e),t.b=i(e),t.opacity=a(e),t+""}}return o.gamma=t,o}(1);function An(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var In=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,$n=new RegExp(In.source,"g");function Cn(t,e){var n,o,r,i=In.lastIndex=$n.lastIndex=0,a=-1,s=[],u=[];for(t+="",e+="";(n=In.exec(t))&&(o=$n.exec(e));)(r=o.index)>i&&(r=e.slice(i,r),s[a]?s[a]+=r:s[++a]=r),(n=n[0])===(o=o[0])?s[a]?s[a]+=o:s[++a]=o:(s[++a]=null,u.push({i:a,x:An(n,o)})),i=$n.lastIndex;return i<e.length&&(r=e.slice(i),s[a]?s[a]+=r:s[++a]=r),s.length<2?u[0]?function(t){return function(e){return t(e)+""}}(u[0].x):function(t){return function(){return t}}(e):(e=u.length,function(t){for(var n,o=0;o<e;++o)s[(n=u[o]).i]=n.x(t);return s.join("")})}var On,Hn=180/Math.PI,Xn={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Yn(t,e,n,o,r,i){var a,s,u;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(u=t*n+e*o)&&(n-=t*u,o-=e*u),(s=Math.sqrt(n*n+o*o))&&(n/=s,o/=s,u/=s),t*o<e*n&&(t=-t,e=-e,u=-u,a=-a),{translateX:r,translateY:i,rotate:Math.atan2(e,t)*Hn,skewX:Math.atan(u)*Hn,scaleX:a,scaleY:s}}function Bn(t,e,n,o){function r(t){return t.length?t.pop()+" ":""}return function(i,a){var s=[],u=[];return i=t(i),a=t(a),function(t,o,r,i,a,s){if(t!==r||o!==i){var u=a.push("translate(",null,e,null,n);s.push({i:u-4,x:An(t,r)},{i:u-2,x:An(o,i)})}else(r||i)&&a.push("translate("+r+e+i+n)}(i.translateX,i.translateY,a.translateX,a.translateY,s,u),function(t,e,n,i){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),i.push({i:n.push(r(n)+"rotate(",null,o)-2,x:An(t,e)})):e&&n.push(r(n)+"rotate("+e+o)}(i.rotate,a.rotate,s,u),function(t,e,n,i){t!==e?i.push({i:n.push(r(n)+"skewX(",null,o)-2,x:An(t,e)}):e&&n.push(r(n)+"skewX("+e+o)}(i.skewX,a.skewX,s,u),function(t,e,n,o,i,a){if(t!==n||e!==o){var s=i.push(r(i)+"scale(",null,",",null,")");a.push({i:s-4,x:An(t,n)},{i:s-2,x:An(e,o)})}else 1===n&&1===o||i.push(r(i)+"scale("+n+","+o+")")}(i.scaleX,i.scaleY,a.scaleX,a.scaleY,s,u),i=a=null,function(t){for(var e,n=-1,o=u.length;++n<o;)s[(e=u[n]).i]=e.x(t);return s.join("")}}}var Rn=Bn((function(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?Xn:Yn(e.a,e.b,e.c,e.d,e.e,e.f)}),"px, ","px)","deg)"),Dn=Bn((function(t){return null==t?Xn:(On||(On=document.createElementNS("http://www.w3.org/2000/svg","g")),On.setAttribute("transform",t),(t=On.transform.baseVal.consolidate())?Yn((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):Xn)}),", ",")",")");function Ln(t){return((t=Math.exp(t))+1/t)/2}var Vn,qn,Zn=function t(e,n,o){function r(t,r){var i,a,s=t[0],u=t[1],c=t[2],l=r[0],h=r[1],d=r[2],f=l-s,p=h-u,g=f*f+p*p;if(g<1e-12)a=Math.log(d/c)/e,i=function(t){return[s+t*f,u+t*p,c*Math.exp(e*t*a)]};else{var m=Math.sqrt(g),y=(d*d-c*c+o*g)/(2*c*n*m),v=(d*d-c*c-o*g)/(2*d*n*m),x=Math.log(Math.sqrt(y*y+1)-y),w=Math.log(Math.sqrt(v*v+1)-v);a=(w-x)/e,i=function(t){var o,r=t*a,i=Ln(x),l=c/(n*m)*(i*(o=e*r+x,((o=Math.exp(2*o))-1)/(o+1))-function(t){return((t=Math.exp(t))-1/t)/2}(x));return[s+l*f,u+l*p,c*i/Ln(e*r+x)]}}return i.duration=1e3*a*e/Math.SQRT2,i}return r.rho=function(e){var n=Math.max(.001,+e),o=n*n;return t(n,o,o*o)},r}(Math.SQRT2,2,4),Gn=0,jn=0,Wn=0,Fn=1e3,Kn=0,Un=0,Qn=0,Jn="object"==typeof performance&&performance.now?performance:Date,to="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function eo(){return Un||(to(no),Un=Jn.now()+Qn)}function no(){Un=0}function oo(){this._call=this._time=this._next=null}function ro(t,e,n){var o=new oo;return o.restart(t,e,n),o}function io(){Un=(Kn=Jn.now())+Qn,Gn=jn=0;try{!function(){eo(),++Gn;for(var t,e=Vn;e;)(t=Un-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Gn}()}finally{Gn=0,function(){var t,e,n=Vn,o=1/0;for(;n;)n._call?(o>n._time&&(o=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:Vn=e);qn=t,so(o)}(),Un=0}}function ao(){var t=Jn.now(),e=t-Kn;e>Fn&&(Qn-=e,Kn=t)}function so(t){Gn||(jn&&(jn=clearTimeout(jn)),t-Un>24?(t<1/0&&(jn=setTimeout(io,t-Jn.now()-Qn)),Wn&&(Wn=clearInterval(Wn))):(Wn||(Kn=Jn.now(),Wn=setInterval(ao,Fn)),Gn=1,to(io)))}function uo(t,e,n){var o=new oo;return e=null==e?0:+e,o.restart((n=>{o.stop(),t(n+e)}),e,n),o}oo.prototype=ro.prototype={constructor:oo,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?eo():+n)+(null==e?0:+e),this._next||qn===this||(qn?qn._next=this:Vn=this,qn=this),this._call=t,this._time=n,so()},stop:function(){this._call&&(this._call=null,this._time=1/0,so())}};var co=it("start","end","cancel","interrupt"),lo=[],ho=0,fo=1,po=2,go=3,mo=4,yo=5,vo=6;function xo(t,e,n,o,r,i){var a=t.__transition;if(a){if(n in a)return}else t.__transition={};!function(t,e,n){var o,r=t.__transition;function i(t){n.state=fo,n.timer.restart(a,n.delay,n.time),n.delay<=t&&a(t-n.delay)}function a(i){var c,l,h,d;if(n.state!==fo)return u();for(c in r)if((d=r[c]).name===n.name){if(d.state===go)return uo(a);d.state===mo?(d.state=vo,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete r[c]):+c<e&&(d.state=vo,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete r[c])}if(uo((function(){n.state===go&&(n.state=mo,n.timer.restart(s,n.delay,n.time),s(i))})),n.state=po,n.on.call("start",t,t.__data__,n.index,n.group),n.state===po){for(n.state=go,o=new Array(h=n.tween.length),c=0,l=-1;c<h;++c)(d=n.tween[c].value.call(t,t.__data__,n.index,n.group))&&(o[++l]=d);o.length=l+1}}function s(e){for(var r=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(u),n.state=yo,1),i=-1,a=o.length;++i<a;)o[i].call(t,r);n.state===yo&&(n.on.call("end",t,t.__data__,n.index,n.group),u())}function u(){for(var o in n.state=vo,n.timer.stop(),delete r[e],r)return;delete t.__transition}r[e]=n,n.timer=ro(i,0,n.time)}(t,n,{name:e,index:o,group:r,on:co,tween:lo,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:ho})}function wo(t,e){var n=bo(t,e);if(n.state>ho)throw new Error("too late; already scheduled");return n}function _o(t,e){var n=bo(t,e);if(n.state>go)throw new Error("too late; already running");return n}function bo(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Eo(t,e){var n,o,r,i=t.__transition,a=!0;if(i){for(r in e=null==e?null:e+"",i)(n=i[r]).name===e?(o=n.state>po&&n.state<yo,n.state=vo,n.timer.stop(),n.on.call(o?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete i[r]):a=!1;a&&delete t.__transition}}function Mo(t,e){var n,o;return function(){var r=_o(this,t),i=r.tween;if(i!==n)for(var a=0,s=(o=n=i).length;a<s;++a)if(o[a].name===e){(o=o.slice()).splice(a,1);break}r.tween=o}}function Po(t,e,n){var o,r;if("function"!=typeof n)throw new Error;return function(){var i=_o(this,t),a=i.tween;if(a!==o){r=(o=a).slice();for(var s={name:e,value:n},u=0,c=r.length;u<c;++u)if(r[u].name===e){r[u]=s;break}u===c&&r.push(s)}i.tween=r}}function So(t,e,n){var o=t._id;return t.each((function(){var t=_o(this,o);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return bo(t,o).value[e]}}function zo(t,e){var n;return("number"==typeof e?An:e instanceof hn?Tn:(n=hn(e))?(e=n,Tn):Cn)(t,e)}function No(t){return function(){this.removeAttribute(t)}}function ko(t){return function(){this.removeAttributeNS(t.space,t.local)}}function To(t,e,n){var o,r,i=n+"";return function(){var a=this.getAttribute(t);return a===i?null:a===o?r:r=e(o=a,n)}}function Ao(t,e,n){var o,r,i=n+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===i?null:a===o?r:r=e(o=a,n)}}function Io(t,e,n){var o,r,i;return function(){var a,s,u=n(this);if(null!=u)return(a=this.getAttribute(t))===(s=u+"")?null:a===o&&s===r?i:(r=s,i=e(o=a,u));this.removeAttribute(t)}}function $o(t,e,n){var o,r,i;return function(){var a,s,u=n(this);if(null!=u)return(a=this.getAttributeNS(t.space,t.local))===(s=u+"")?null:a===o&&s===r?i:(r=s,i=e(o=a,u));this.removeAttributeNS(t.space,t.local)}}function Co(t,e){var n,o;function r(){var r=e.apply(this,arguments);return r!==o&&(n=(o=r)&&function(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}(t,r)),n}return r._value=e,r}function Oo(t,e){var n,o;function r(){var r=e.apply(this,arguments);return r!==o&&(n=(o=r)&&function(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}(t,r)),n}return r._value=e,r}function Ho(t,e){return function(){wo(this,t).delay=+e.apply(this,arguments)}}function Xo(t,e){return e=+e,function(){wo(this,t).delay=e}}function Yo(t,e){return function(){_o(this,t).duration=+e.apply(this,arguments)}}function Bo(t,e){return e=+e,function(){_o(this,t).duration=e}}var Ro=we.prototype.constructor;function Do(t){return function(){this.style.removeProperty(t)}}var Lo=0;function Vo(t,e,n,o){this._groups=t,this._parents=e,this._name=n,this._id=o}function qo(){return++Lo}var Zo=we.prototype;Vo.prototype={constructor:Vo,select:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=mt(t));for(var o=this._groups,r=o.length,i=new Array(r),a=0;a<r;++a)for(var s,u,c=o[a],l=c.length,h=i[a]=new Array(l),d=0;d<l;++d)(s=c[d])&&(u=t.call(s,s.__data__,d,c))&&("__data__"in s&&(u.__data__=s.__data__),h[d]=u,xo(h[d],e,n,d,h,bo(s,n)));return new Vo(i,this._parents,e,n)},selectAll:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=vt(t));for(var o=this._groups,r=o.length,i=[],a=[],s=0;s<r;++s)for(var u,c=o[s],l=c.length,h=0;h<l;++h)if(u=c[h]){for(var d,f=t.call(u,u.__data__,h,c),p=bo(u,n),g=0,m=f.length;g<m;++g)(d=f[g])&&xo(d,e,n,g,f,p);i.push(f),a.push(u)}return new Vo(i,a,e,n)},selectChild:Zo.selectChild,selectChildren:Zo.selectChildren,filter:function(t){"function"!=typeof t&&(t=wt(t));for(var e=this._groups,n=e.length,o=new Array(n),r=0;r<n;++r)for(var i,a=e[r],s=a.length,u=o[r]=[],c=0;c<s;++c)(i=a[c])&&t.call(i,i.__data__,c,a)&&u.push(i);return new Vo(o,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,o=e.length,r=n.length,i=Math.min(o,r),a=new Array(o),s=0;s<i;++s)for(var u,c=e[s],l=n[s],h=c.length,d=a[s]=new Array(h),f=0;f<h;++f)(u=c[f]||l[f])&&(d[f]=u);for(;s<o;++s)a[s]=e[s];return new Vo(a,this._parents,this._name,this._id)},selection:function(){return new Ro(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,n=qo(),o=this._groups,r=o.length,i=0;i<r;++i)for(var a,s=o[i],u=s.length,c=0;c<u;++c)if(a=s[c]){var l=bo(a,e);xo(a,t,n,c,s,{time:l.time+l.delay+l.duration,delay:0,duration:l.duration,ease:l.ease})}return new Vo(o,this._parents,t,n)},call:Zo.call,nodes:Zo.nodes,node:Zo.node,size:Zo.size,empty:Zo.empty,each:Zo.each,on:function(t,e){var n=this._id;return arguments.length<2?bo(this.node(),n).on.on(t):this.each(function(t,e,n){var o,r,i=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?wo:_o;return function(){var a=i(this,t),s=a.on;s!==o&&(r=(o=s).copy()).on(e,n),a.on=r}}(n,t,e))},attr:function(t,e){var n=ht(t),o="transform"===n?Dn:zo;return this.attrTween(t,"function"==typeof e?(n.local?$o:Io)(n,o,So(this,"attr."+t,e)):null==e?(n.local?ko:No)(n):(n.local?Ao:To)(n,o,e))},attrTween:function(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var o=ht(t);return this.tween(n,(o.local?Co:Oo)(o,e))},style:function(t,e,n){var o="transform"==(t+="")?Rn:zo;return null==e?this.styleTween(t,function(t,e){var n,o,r;return function(){var i=Vt(this,t),a=(this.style.removeProperty(t),Vt(this,t));return i===a?null:i===n&&a===o?r:r=e(n=i,o=a)}}(t,o)).on("end.style."+t,Do(t)):"function"==typeof e?this.styleTween(t,function(t,e,n){var o,r,i;return function(){var a=Vt(this,t),s=n(this),u=s+"";return null==s&&(this.style.removeProperty(t),u=s=Vt(this,t)),a===u?null:a===o&&u===r?i:(r=u,i=e(o=a,s))}}(t,o,So(this,"style."+t,e))).each(function(t,e){var n,o,r,i,a="style."+e,s="end."+a;return function(){var u=_o(this,t),c=u.on,l=null==u.value[a]?i||(i=Do(e)):void 0;c===n&&r===l||(o=(n=c).copy()).on(s,r=l),u.on=o}}(this._id,t)):this.styleTween(t,function(t,e,n){var o,r,i=n+"";return function(){var a=Vt(this,t);return a===i?null:a===o?r:r=e(o=a,n)}}(t,o,e),n).on("end.style."+t,null)},styleTween:function(t,e,n){var o="style."+(t+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(null==e)return this.tween(o,null);if("function"!=typeof e)throw new Error;return this.tween(o,function(t,e,n){var o,r;function i(){var i=e.apply(this,arguments);return i!==r&&(o=(r=i)&&function(t,e,n){return function(o){this.style.setProperty(t,e.call(this,o),n)}}(t,i,n)),o}return i._value=e,i}(t,e,null==n?"":n))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(So(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,function(t){var e,n;function o(){var o=t.apply(this,arguments);return o!==n&&(e=(n=o)&&function(t){return function(e){this.textContent=t.call(this,e)}}(o)),e}return o._value=t,o}(t))},remove:function(){return this.on("end.remove",function(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}(this._id))},tween:function(t,e){var n=this._id;if(t+="",arguments.length<2){for(var o,r=bo(this.node(),n).tween,i=0,a=r.length;i<a;++i)if((o=r[i]).name===t)return o.value;return null}return this.each((null==e?Mo:Po)(n,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Ho:Xo)(e,t)):bo(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?Yo:Bo)(e,t)):bo(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(function(t,e){if("function"!=typeof e)throw new Error;return function(){_o(this,t).ease=e}}(e,t)):bo(this.node(),e).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,e){return function(){var n=e.apply(this,arguments);if("function"!=typeof n)throw new Error;_o(this,t).ease=n}}(this._id,t))},end:function(){var t,e,n=this,o=n._id,r=n.size();return new Promise((function(i,a){var s={value:a},u={value:function(){0==--r&&i()}};n.each((function(){var n=_o(this,o),r=n.on;r!==t&&((e=(t=r).copy())._.cancel.push(s),e._.interrupt.push(s),e._.end.push(u)),n.on=e})),0===r&&i()}))},[Symbol.iterator]:Zo[Symbol.iterator]};var Go={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function jo(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}we.prototype.interrupt=function(t){return this.each((function(){Eo(this,t)}))},we.prototype.transition=function(t){var e,n;t instanceof Vo?(e=t._id,t=t._name):(e=qo(),(n=Go).time=eo(),t=null==t?null:t+"");for(var o=this._groups,r=o.length,i=0;i<r;++i)for(var a,s=o[i],u=s.length,c=0;c<u;++c)(a=s[c])&&xo(a,t,e,c,s,n||jo(a,e));return new Vo(o,this._parents,t,e)};var Wo=t=>()=>t;function Fo(t,{sourceEvent:e,target:n,transform:o,dispatch:r}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:o,enumerable:!0,configurable:!0},_:{value:r}})}function Ko(t,e,n){this.k=t,this.x=e,this.y=n}Ko.prototype={constructor:Ko,scale:function(t){return 1===t?this:new Ko(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new Ko(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Uo=new Ko(1,0,0);function Qo(t){for(;!t.__zoom;)if(!(t=t.parentNode))return Uo;return t.__zoom}function Jo(t){t.stopImmediatePropagation()}function tr(t){t.preventDefault(),t.stopImmediatePropagation()}function er(t){return!(t.ctrlKey&&"wheel"!==t.type||t.button)}function nr(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function or(){return this.__zoom||Uo}function rr(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function ir(){return navigator.maxTouchPoints||"ontouchstart"in this}function ar(t,e,n){var o=t.invertX(e[0][0])-n[0][0],r=t.invertX(e[1][0])-n[1][0],i=t.invertY(e[0][1])-n[0][1],a=t.invertY(e[1][1])-n[1][1];return t.translate(r>o?(o+r)/2:Math.min(0,o)||Math.max(0,r),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function sr(){var t,e,n,o=er,r=nr,i=ar,a=rr,s=ir,u=[0,1/0],c=[[-1/0,-1/0],[1/0,1/0]],l=250,h=Zn,d=it("start","zoom","end"),f=500,p=150,g=0,m=10;function y(t){t.property("__zoom",or).on("wheel.zoom",M,{passive:!1}).on("mousedown.zoom",P).on("dblclick.zoom",S).filter(s).on("touchstart.zoom",z).on("touchmove.zoom",N).on("touchend.zoom touchcancel.zoom",k).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function v(t,e){return(e=Math.max(u[0],Math.min(u[1],e)))===t.k?t:new Ko(e,t.x,t.y)}function x(t,e,n){var o=e[0]-n[0]*t.k,r=e[1]-n[1]*t.k;return o===t.x&&r===t.y?t:new Ko(t.k,o,r)}function w(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function _(t,e,n,o){t.on("start.zoom",(function(){b(this,arguments).event(o).start()})).on("interrupt.zoom end.zoom",(function(){b(this,arguments).event(o).end()})).tween("zoom",(function(){var t=this,i=arguments,a=b(t,i).event(o),s=r.apply(t,i),u=null==n?w(s):"function"==typeof n?n.apply(t,i):n,c=Math.max(s[1][0]-s[0][0],s[1][1]-s[0][1]),l=t.__zoom,d="function"==typeof e?e.apply(t,i):e,f=h(l.invert(u).concat(c/l.k),d.invert(u).concat(c/d.k));return function(t){if(1===t)t=d;else{var e=f(t),n=c/e[2];t=new Ko(n,u[0]-e[0]*n,u[1]-e[1]*n)}a.zoom(null,t)}}))}function b(t,e,n){return!n&&t.__zooming||new E(t,e)}function E(t,e){this.that=t,this.args=e,this.active=0,this.sourceEvent=null,this.extent=r.apply(t,e),this.taps=0}function M(t,...e){if(o.apply(this,arguments)){var n=b(this,e).event(t),r=this.__zoom,s=Math.max(u[0],Math.min(u[1],r.k*Math.pow(2,a.apply(this,arguments)))),l=be(t);if(n.wheel)n.mouse[0][0]===l[0]&&n.mouse[0][1]===l[1]||(n.mouse[1]=r.invert(n.mouse[0]=l)),clearTimeout(n.wheel);else{if(r.k===s)return;n.mouse=[l,r.invert(l)],Eo(this),n.start()}tr(t),n.wheel=setTimeout((function(){n.wheel=null,n.end()}),p),n.zoom("mouse",i(x(v(r,s),n.mouse[0],n.mouse[1]),n.extent,c))}}function P(t,...e){if(!n&&o.apply(this,arguments)){var r=t.currentTarget,a=b(this,e,!0).event(t),s=_e(t.view).on("mousemove.zoom",(function(t){if(tr(t),!a.moved){var e=t.clientX-l,n=t.clientY-h;a.moved=e*e+n*n>g}a.event(t).zoom("mouse",i(x(a.that.__zoom,a.mouse[0]=be(t,r),a.mouse[1]),a.extent,c))}),!0).on("mouseup.zoom",(function(t){s.on("mousemove.zoom mouseup.zoom",null),Ne(t.view,a.moved),tr(t),a.event(t).end()}),!0),u=be(t,r),l=t.clientX,h=t.clientY;ze(t.view),Jo(t),a.mouse=[u,this.__zoom.invert(u)],Eo(this),a.start()}}function S(t,...e){if(o.apply(this,arguments)){var n=this.__zoom,a=be(t.changedTouches?t.changedTouches[0]:t,this),s=n.invert(a),u=n.k*(t.shiftKey?.5:2),h=i(x(v(n,u),a,s),r.apply(this,e),c);tr(t),l>0?_e(this).transition().duration(l).call(_,h,a,t):_e(this).call(y.transform,h,a,t)}}function z(n,...r){if(o.apply(this,arguments)){var i,a,s,u,c=n.touches,l=c.length,h=b(this,r,n.changedTouches.length===l).event(n);for(Jo(n),a=0;a<l;++a)u=[u=be(s=c[a],this),this.__zoom.invert(u),s.identifier],h.touch0?h.touch1||h.touch0[2]===u[2]||(h.touch1=u,h.taps=0):(h.touch0=u,i=!0,h.taps=1+!!t);t&&(t=clearTimeout(t)),i&&(h.taps<2&&(e=u[0],t=setTimeout((function(){t=null}),f)),Eo(this),h.start())}}function N(t,...e){if(this.__zooming){var n,o,r,a,s=b(this,e).event(t),u=t.changedTouches,l=u.length;for(tr(t),n=0;n<l;++n)r=be(o=u[n],this),s.touch0&&s.touch0[2]===o.identifier?s.touch0[0]=r:s.touch1&&s.touch1[2]===o.identifier&&(s.touch1[0]=r);if(o=s.that.__zoom,s.touch1){var h=s.touch0[0],d=s.touch0[1],f=s.touch1[0],p=s.touch1[1],g=(g=f[0]-h[0])*g+(g=f[1]-h[1])*g,m=(m=p[0]-d[0])*m+(m=p[1]-d[1])*m;o=v(o,Math.sqrt(g/m)),r=[(h[0]+f[0])/2,(h[1]+f[1])/2],a=[(d[0]+p[0])/2,(d[1]+p[1])/2]}else{if(!s.touch0)return;r=s.touch0[0],a=s.touch0[1]}s.zoom("touch",i(x(o,r,a),s.extent,c))}}function k(t,...o){if(this.__zooming){var r,i,a=b(this,o).event(t),s=t.changedTouches,u=s.length;for(Jo(t),n&&clearTimeout(n),n=setTimeout((function(){n=null}),f),r=0;r<u;++r)i=s[r],a.touch0&&a.touch0[2]===i.identifier?delete a.touch0:a.touch1&&a.touch1[2]===i.identifier&&delete a.touch1;if(a.touch1&&!a.touch0&&(a.touch0=a.touch1,delete a.touch1),a.touch0)a.touch0[1]=this.__zoom.invert(a.touch0[0]);else if(a.end(),2===a.taps&&(i=be(i,this),Math.hypot(e[0]-i[0],e[1]-i[1])<m)){var c=_e(this).on("dblclick.zoom");c&&c.apply(this,arguments)}}}return y.transform=function(t,e,n,o){var r=t.selection?t.selection():t;r.property("__zoom",or),t!==r?_(t,e,n,o):r.interrupt().each((function(){b(this,arguments).event(o).start().zoom(null,"function"==typeof e?e.apply(this,arguments):e).end()}))},y.scaleBy=function(t,e,n,o){y.scaleTo(t,(function(){return this.__zoom.k*("function"==typeof e?e.apply(this,arguments):e)}),n,o)},y.scaleTo=function(t,e,n,o){y.transform(t,(function(){var t=r.apply(this,arguments),o=this.__zoom,a=null==n?w(t):"function"==typeof n?n.apply(this,arguments):n,s=o.invert(a),u="function"==typeof e?e.apply(this,arguments):e;return i(x(v(o,u),a,s),t,c)}),n,o)},y.translateBy=function(t,e,n,o){y.transform(t,(function(){return i(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof n?n.apply(this,arguments):n),r.apply(this,arguments),c)}),null,o)},y.translateTo=function(t,e,n,o,a){y.transform(t,(function(){var t=r.apply(this,arguments),a=this.__zoom,s=null==o?w(t):"function"==typeof o?o.apply(this,arguments):o;return i(Uo.translate(s[0],s[1]).scale(a.k).translate("function"==typeof e?-e.apply(this,arguments):-e,"function"==typeof n?-n.apply(this,arguments):-n),t,c)}),o,a)},E.prototype={event:function(t){return t&&(this.sourceEvent=t),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(t,e){return this.mouse&&"mouse"!==t&&(this.mouse[1]=e.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=e.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=e.invert(this.touch1[0])),this.that.__zoom=e,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(t){var e=_e(this.that).datum();d.call(t,this.that,new Fo(t,{sourceEvent:this.sourceEvent,target:y,type:t,transform:this.that.__zoom,dispatch:d}),e)}},y.wheelDelta=function(t){return arguments.length?(a="function"==typeof t?t:Wo(+t),y):a},y.filter=function(t){return arguments.length?(o="function"==typeof t?t:Wo(!!t),y):o},y.touchable=function(t){return arguments.length?(s="function"==typeof t?t:Wo(!!t),y):s},y.extent=function(t){return arguments.length?(r="function"==typeof t?t:Wo([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),y):r},y.scaleExtent=function(t){return arguments.length?(u[0]=+t[0],u[1]=+t[1],y):[u[0],u[1]]},y.translateExtent=function(t){return arguments.length?(c[0][0]=+t[0][0],c[1][0]=+t[1][0],c[0][1]=+t[0][1],c[1][1]=+t[1][1],y):[[c[0][0],c[0][1]],[c[1][0],c[1][1]]]},y.constrain=function(t){return arguments.length?(i=t,y):i},y.duration=function(t){return arguments.length?(l=+t,y):l},y.interpolate=function(t){return arguments.length?(h=t,y):h},y.on=function(){var t=d.on.apply(d,arguments);return t===d?y:t},y.clickDistance=function(t){return arguments.length?(g=(t=+t)*t,y):Math.sqrt(g)},y.tapDistance=function(t){return arguments.length?(m=+t,y):m},y}Qo.prototype=Ko.prototype;const ur=(t,e)=>t.x!==e.x||t.y!==e.y||t.zoom!==e.k,cr=t=>({x:t.x,y:t.y,zoom:t.k}),lr=({x:t,y:e,zoom:n})=>Uo.translate(t,e).scale(n),hr=(t,e)=>t.target.closest(`.${e}`),dr=(t,e)=>2===e&&Array.isArray(t)&&t.includes(2),fr=(t,e=0)=>"number"==typeof e&&e>0?t.transition().duration(e):t,pr=t=>{const e=t.ctrlKey&&I()?10:1;return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*e};var gr;t.ResizeControlVariant=void 0,(gr=t.ResizeControlVariant||(t.ResizeControlVariant={})).Line="line",gr.Handle="handle";function mr(t,e){return Math.max(0,e-t)}function yr(t,e){return Math.max(0,t-e)}function vr(t,e,n){return Math.max(0,e-t,t-n)}function xr(t,e){return t?!e:e}const wr={width:0,height:0,x:0,y:0},_r={...wr,pointerX:0,pointerY:0,aspectRatio:1};function br(t,e,n){const o=e.position.x+t.position.x,r=e.position.y+t.position.y,i=t.measured.width??0,a=t.measured.height??0,s=n[0]*i,u=n[1]*a;return[[o-s,r-u],[o+i-s,r+a-u]]}t.XYDrag=function({onNodeMouseDown:t,getStoreItems:e,onDragStart:n,onDrag:o,onDragStop:r}){let i={x:null,y:null},a=0,s=new Map,u=!1,c={x:0,y:0},l=null,h=!1,f=null,g=!1;return{update:function({noDragClassName:m,handleSelector:y,domNode:x,isSelectable:_,nodeId:b}){function E({x:t,y:n},r){const{nodeLookup:a,nodeExtent:u,snapGrid:c,snapToGrid:l,nodeOrigin:h,onNodeDrag:f,onSelectionDrag:g,onError:m,updateNodePositions:y}=e();i={x:t,y:n};let v=!1,x={x:0,y:0,x2:0,y2:0};if(s.size>1&&u){const t=d(s,{nodeOrigin:h});x=w(t)}for(const[e,o]of s){let r={x:t-o.distance.x,y:n-o.distance.y};l&&(r=N(r,c));let i=[[u[0][0],u[0][1]],[u[1][0],u[1][1]]];if(s.size>1&&u&&!o.extent){const{positionAbsolute:t}=o.internals,e=t.x-x.x+u[0][0],n=t.x+o.measured.width-x.x2+u[1][0];i=[[e,t.y-x.y+u[0][1]],[n,t.y+o.measured.height-x.y2+u[1][1]]]}const{position:d,positionAbsolute:f}=p({nodeId:e,nextPosition:r,nodeLookup:a,nodeExtent:i,nodeOrigin:h,onError:m});v=v||o.position.x!==d.x||o.position.y!==d.y,o.position=d,o.internals.positionAbsolute=f}if(v&&(y(s,!0),r&&(o||f||!b&&g))){const[t,e]=Ye({nodeId:b,dragItems:s,nodeLookup:a});o?.(r,s,t,e),f?.(r,t,e),b||g?.(r,e)}}function M(){if(!l)return;const[t,n]=v(c,l);if(0!==t||0!==n){const{transform:o,panBy:r}=e();i.x=(i.x??0)-t/o[2],i.y=(i.y??0)-n/o[2],r({x:t,y:n})&&E(i,null)}a=requestAnimationFrame(M)}function P(o){const{nodeLookup:r,multiSelectionActive:a,nodesDraggable:u,transform:c,snapGrid:l,snapToGrid:d,selectNodesOnDrag:f,onNodeDragStart:p,onSelectionDragStart:g,unselectNodesAndEdges:m}=e();h=!0,f&&_||a||!b||r.get(b)?.selected||m(),_&&f&&b&&t?.(b);const y=O(o.sourceEvent,{transform:c,snapGrid:l,snapToGrid:d});if(i=y,s=function(t,e,n,o){const r=new Map;for(const[i,a]of t)if((a.selected||a.id===o)&&(!a.parentId||!He(a,t))&&(a.draggable||e&&void 0===a.draggable)){const e=t.get(i);e&&r.set(i,{id:i,position:e.position||{x:0,y:0},distance:{x:n.x-e.internals.positionAbsolute.x,y:n.y-e.internals.positionAbsolute.y},extent:e.extent,parentId:e.parentId,origin:e.origin,expandParent:e.expandParent,internals:{positionAbsolute:e.internals.positionAbsolute||{x:0,y:0}},measured:{width:e.measured.width??0,height:e.measured.height??0}})}return r}(r,u,y,b),s.size>0&&(n||p||!b&&g)){const[t,e]=Ye({nodeId:b,dragItems:s,nodeLookup:r});n?.(o.sourceEvent,s,t,e),p?.(o.sourceEvent,t,e),b||g?.(o.sourceEvent,e)}}f=_e(x);const S=Oe().on("start",(t=>{const{domNode:n,nodeDragThreshold:o,transform:r,snapGrid:a,snapToGrid:s}=e();g=!1,0===o&&P(t);const u=O(t.sourceEvent,{transform:r,snapGrid:a,snapToGrid:s});i=u,l=n?.getBoundingClientRect()||null,c=R(t.sourceEvent,l)})).on("drag",(t=>{const{autoPanOnNodeDrag:n,transform:o,snapGrid:r,snapToGrid:a,nodeDragThreshold:d}=e(),f=O(t.sourceEvent,{transform:o,snapGrid:r,snapToGrid:a});if("touchmove"===t.sourceEvent.type&&t.sourceEvent.touches.length>1&&(g=!0),!g){if(!u&&n&&h&&(u=!0,M()),!h){const e=f.xSnapped-(i.x??0),n=f.ySnapped-(i.y??0);Math.sqrt(e*e+n*n)>d&&P(t)}(i.x!==f.xSnapped||i.y!==f.ySnapped)&&s&&h&&(c=R(t.sourceEvent,l),E(f,t.sourceEvent))}})).on("end",(t=>{if(h&&!g&&(u=!1,h=!1,cancelAnimationFrame(a),s.size>0)){const{nodeLookup:n,updateNodePositions:o,onNodeDragStop:i,onSelectionDragStop:a}=e();if(o(s,!1),r||i||!b&&a){const[e,o]=Ye({nodeId:b,dragItems:s,nodeLookup:n});r?.(t.sourceEvent,s,e,o),i?.(t.sourceEvent,e,o),b||a?.(t.sourceEvent,o)}}})).filter((t=>{const e=t.target;return!t.button&&(!m||!Xe(e,`.${m}`,x))&&(!y||Xe(e,y,x))}));f.call(S)},destroy:function(){f?.on(".drag",null)}}},t.XYHandle=Ze,t.XYMinimap=function({domNode:t,panZoom:e,getTransform:n,getViewScale:o}){const r=_e(t);return{update:function({translateExtent:t,width:i,height:a,zoomStep:s=10,pannable:u=!0,zoomable:c=!0,inversePan:l=!1}){let h=[0,0];const d=sr().on("start",(t=>{"mousedown"!==t.sourceEvent.type&&"touchstart"!==t.sourceEvent.type||(h=[t.sourceEvent.clientX??t.sourceEvent.touches[0].clientX,t.sourceEvent.clientY??t.sourceEvent.touches[0].clientY])})).on("zoom",u?r=>{const s=n();if("mousemove"!==r.sourceEvent.type&&"touchmove"!==r.sourceEvent.type||!e)return;const u=[r.sourceEvent.clientX??r.sourceEvent.touches[0].clientX,r.sourceEvent.clientY??r.sourceEvent.touches[0].clientY],c=[u[0]-h[0],u[1]-h[1]];h=u;const d=o()*Math.max(s[2],Math.log(s[2]))*(l?-1:1),f={x:s[0]-c[0]*d,y:s[1]-c[1]*d},p=[[0,0],[i,a]];e.setViewportConstrained({x:f.x,y:f.y,zoom:s[2]},p,t)}:null).on("zoom.wheel",c?t=>{const o=n();if("wheel"!==t.sourceEvent.type||!e)return;const r=-t.sourceEvent.deltaY*(1===t.sourceEvent.deltaMode?.05:t.sourceEvent.deltaMode?1:.002)*s,i=o[2]*Math.pow(2,r);e.scaleTo(i)}:null);r.call(d,{})},destroy:function(){r.on("zoom",null)},pointer:be}},t.XYPanZoom=function({domNode:e,minZoom:n,maxZoom:o,translateExtent:r,viewport:i,onPanZoom:a,onPanZoomStart:s,onPanZoomEnd:u,onTransformChange:c,onDraggingChange:l}){const h={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{x:0,y:0,zoom:0},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},d=e.getBoundingClientRect(),f=sr().scaleExtent([n,o]).translateExtent(r),p=_e(e).call(f);w({x:i.x,y:i.y,zoom:g(i.zoom,n,o)},[[0,0],[d.width,d.height]],r);const m=p.on("wheel.zoom"),y=p.on("dblclick.zoom");function v(t,e){p&&f?.transform(fr(p,e?.duration),t)}function x(){f.on("zoom",null)}function w(t,e,n){const o=lr(t),r=f?.constrain()(o,e,n);return r&&v(r),r}return f.wheelDelta(pr),{update:function({noWheelClassName:e,noPanClassName:n,onPaneContextMenu:o,userSelectionActive:r,panOnScroll:i,panOnDrag:d,panOnScrollMode:g,panOnScrollSpeed:v,preventScrolling:w,zoomOnPinch:_,zoomOnScroll:b,zoomOnDoubleClick:E,zoomActivationKeyPressed:M,lib:P}){r&&!h.isZoomingOrPanning&&x();const S=i&&!M&&!r?function({zoomPanValues:e,noWheelClassName:n,d3Selection:o,d3Zoom:r,panOnScrollMode:i,panOnScrollSpeed:a,zoomOnPinch:s,onPanZoomStart:u,onPanZoom:c,onPanZoomEnd:l}){return h=>{if(hr(h,n))return!1;h.preventDefault(),h.stopImmediatePropagation();const d=o.property("__zoom").k||1;if(h.ctrlKey&&s){const t=be(h),e=pr(h),n=d*Math.pow(2,e);return void r.scaleTo(o,n,t,h)}const f=1===h.deltaMode?20:1;let p=i===t.PanOnScrollMode.Vertical?0:h.deltaX*f,g=i===t.PanOnScrollMode.Horizontal?0:h.deltaY*f;!I()&&h.shiftKey&&i!==t.PanOnScrollMode.Vertical&&(p=h.deltaY*f,g=0),r.translateBy(o,-p/d*a,-g/d*a,{internal:!0});const m=cr(o.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling||(e.isPanScrolling=!0,u?.(h,m)),e.isPanScrolling&&(c?.(h,m),e.panScrollTimeout=setTimeout((()=>{l?.(h,m),e.isPanScrolling=!1}),150))}}({zoomPanValues:h,noWheelClassName:e,d3Selection:p,d3Zoom:f,panOnScrollMode:g,panOnScrollSpeed:v,zoomOnPinch:_,onPanZoomStart:s,onPanZoom:a,onPanZoomEnd:u}):function({noWheelClassName:t,preventScrolling:e,d3ZoomHandler:n}){return function(o,r){if(!e&&"wheel"===o.type&&!o.ctrlKey||hr(o,t))return null;o.preventDefault(),n.call(this,o,r)}}({noWheelClassName:e,preventScrolling:w,d3ZoomHandler:m});if(p.on("wheel.zoom",S,{passive:!1}),!r){const t=function({zoomPanValues:t,onDraggingChange:e,onPanZoomStart:n}){return o=>{if(o.sourceEvent?.internal)return;const r=cr(o.transform);t.mouseButton=o.sourceEvent?.button||0,t.isZoomingOrPanning=!0,t.prevViewport=r,"mousedown"===o.sourceEvent?.type&&e(!0),n&&n?.(o.sourceEvent,r)}}({zoomPanValues:h,onDraggingChange:l,onPanZoomStart:s});f.on("start",t);const e=function({zoomPanValues:t,panOnDrag:e,onPaneContextMenu:n,onTransformChange:o,onPanZoom:r}){return i=>{t.usedRightMouseButton=!(!n||!dr(e,t.mouseButton??0)),i.sourceEvent?.sync||o([i.transform.x,i.transform.y,i.transform.k]),r&&!i.sourceEvent?.internal&&r?.(i.sourceEvent,cr(i.transform))}}({zoomPanValues:h,panOnDrag:d,onPaneContextMenu:!!o,onPanZoom:a,onTransformChange:c});f.on("zoom",e);const n=function({zoomPanValues:t,panOnDrag:e,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:r,onPaneContextMenu:i}){return a=>{if(!a.sourceEvent?.internal&&(t.isZoomingOrPanning=!1,i&&dr(e,t.mouseButton??0)&&!t.usedRightMouseButton&&a.sourceEvent&&i(a.sourceEvent),t.usedRightMouseButton=!1,o(!1),r&&ur(t.prevViewport,a.transform))){const e=cr(a.transform);t.prevViewport=e,clearTimeout(t.timerId),t.timerId=setTimeout((()=>{r?.(a.sourceEvent,e)}),n?150:0)}}}({zoomPanValues:h,panOnDrag:d,panOnScroll:i,onPaneContextMenu:o,onPanZoomEnd:u,onDraggingChange:l});f.on("end",n)}const z=function({zoomActivationKeyPressed:t,zoomOnScroll:e,zoomOnPinch:n,panOnDrag:o,panOnScroll:r,zoomOnDoubleClick:i,userSelectionActive:a,noWheelClassName:s,noPanClassName:u,lib:c}){return l=>{const h=t||e,d=n&&l.ctrlKey;if(1===l.button&&"mousedown"===l.type&&(hr(l,`${c}-flow__node`)||hr(l,`${c}-flow__edge`)))return!0;if(!(o||h||r||i||n))return!1;if(a)return!1;if(hr(l,s)&&"wheel"===l.type)return!1;if(hr(l,u)&&("wheel"!==l.type||r&&"wheel"===l.type&&!t))return!1;if(!n&&l.ctrlKey&&"wheel"===l.type)return!1;if(!n&&"touchstart"===l.type&&l.touches?.length>1)return l.preventDefault(),!1;if(!h&&!r&&!d&&"wheel"===l.type)return!1;if(!o&&("mousedown"===l.type||"touchstart"===l.type))return!1;if(Array.isArray(o)&&!o.includes(l.button)&&"mousedown"===l.type)return!1;const f=Array.isArray(o)&&o.includes(l.button)||!l.button||l.button<=1;return(!l.ctrlKey||"wheel"===l.type)&&f}}({zoomActivationKeyPressed:M,panOnDrag:d,zoomOnScroll:b,panOnScroll:i,zoomOnDoubleClick:E,zoomOnPinch:_,userSelectionActive:r,noPanClassName:n,noWheelClassName:e,lib:P});f.filter(z),E?p.on("dblclick.zoom",y):p.on("dblclick.zoom",null)},destroy:x,setViewport:function(t,e){const n=lr(t);return v(n,e),n},setViewportConstrained:w,getViewport:function(){const t=p?Qo(p.node()):{x:0,y:0,k:1};return{x:t.x,y:t.y,zoom:t.k}},scaleTo:function(t,e){p&&f?.scaleTo(fr(p,e?.duration),t)},scaleBy:function(t,e){p&&f?.scaleBy(fr(p,e?.duration),t)},setScaleExtent:function(t){f?.scaleExtent(t)},setTranslateExtent:function(t){f?.translateExtent(t)},syncViewport:function(t){if(p){const e=lr(t),n=p.property("__zoom");n.k===t.zoom&&n.x===t.x&&n.y===t.y||f?.transform(p,e,null,{sync:!0})}}}},t.XYResizer=function({domNode:t,nodeId:e,getStoreItems:n,onChange:o,onEnd:r}){const i=_e(t);return{update:function({controlPosition:t,boundaries:a,keepAspectRatio:s,onResizeStart:u,onResize:c,onResizeEnd:l,shouldResize:h}){let d={...wr},f={..._r};const p=function(t){return{isHorizontal:t.includes("right")||t.includes("left"),isVertical:t.includes("bottom")||t.includes("top"),affectsX:t.includes("left"),affectsY:t.includes("top")}}(t);let g,m,y,v,x=[];const w=Oe().on("start",(t=>{const{nodeLookup:o,transform:r,snapGrid:i,snapToGrid:a,nodeOrigin:s}=n();if(g=o.get(e),!g)return;const{xSnapped:c,ySnapped:l}=O(t.sourceEvent,{transform:r,snapGrid:i,snapToGrid:a});d={width:g.measured?.width??0,height:g.measured?.height??0,x:g.position.x??0,y:g.position.y??0},f={...d,pointerX:c,pointerY:l,aspectRatio:d.width/d.height},m=void 0,("parent"===g.extent||g.expandParent)&&(m=o.get(g.parentId),m&&"parent"===g.extent&&(y=function(t){return[[0,0],[t.measured.width,t.measured.height]]}(m))),x=[],v=void 0;for(const[t,n]of o)if(n.parentId===e&&(x.push({id:t,position:{...n.position},extent:n.extent}),"parent"===n.extent||n.expandParent)){const t=br(n,g,n.origin??s);v=v?[[Math.min(t[0][0],v[0][0]),Math.min(t[0][1],v[0][1])],[Math.max(t[1][0],v[1][0]),Math.max(t[1][1],v[1][1])]]:t}u?.(t,{...d})})).on("drag",(t=>{const{transform:e,snapGrid:r,snapToGrid:i,nodeOrigin:u}=n(),l=O(t.sourceEvent,{transform:e,snapGrid:r,snapToGrid:i}),w=[];if(!g)return;const{x:_,y:b,width:E,height:M}=d,P={},S=g.origin??u,{width:z,height:N,x:k,y:T}=function(t,e,n,o,r,i,a,s){let{affectsX:u,affectsY:c}=e;const{isHorizontal:l,isVertical:h}=e,d=l&&h,{xSnapped:f,ySnapped:p}=n,{minWidth:g,maxWidth:m,minHeight:y,maxHeight:v}=o,{x:x,y:w,width:_,height:b,aspectRatio:E}=t;let M=Math.floor(l?f-t.pointerX:0),P=Math.floor(h?p-t.pointerY:0);const S=_+(u?-M:M),z=b+(c?-P:P),N=-i[0]*_,k=-i[1]*b;let T=vr(S,g,m),A=vr(z,y,v);if(a){let t=0,e=0;u&&M<0?t=mr(x+M+N,a[0][0]):!u&&M>0&&(t=yr(x+S+N,a[1][0])),c&&P<0?e=mr(w+P+k,a[0][1]):!c&&P>0&&(e=yr(w+z+k,a[1][1])),T=Math.max(T,t),A=Math.max(A,e)}if(s){let t=0,e=0;u&&M>0?t=yr(x+M,s[0][0]):!u&&M<0&&(t=mr(x+S,s[1][0])),c&&P>0?e=yr(w+P,s[0][1]):!c&&P<0&&(e=mr(w+z,s[1][1])),T=Math.max(T,t),A=Math.max(A,e)}if(r){if(l){const t=vr(S/E,y,v)*E;if(T=Math.max(T,t),a){let t=0;t=!u&&!c||u&&!c&&d?yr(w+k+S/E,a[1][1])*E:mr(w+k+(u?M:-M)/E,a[0][1])*E,T=Math.max(T,t)}if(s){let t=0;t=!u&&!c||u&&!c&&d?mr(w+S/E,s[1][1])*E:yr(w+(u?M:-M)/E,s[0][1])*E,T=Math.max(T,t)}}if(h){const t=vr(z*E,g,m)/E;if(A=Math.max(A,t),a){let t=0;t=!u&&!c||c&&!u&&d?yr(x+z*E+N,a[1][0])/E:mr(x+(c?P:-P)*E+N,a[0][0])/E,A=Math.max(A,t)}if(s){let t=0;t=!u&&!c||c&&!u&&d?mr(x+z*E,s[1][0])/E:yr(x+(c?P:-P)*E,s[0][0])/E,A=Math.max(A,t)}}}P+=P<0?A:-A,M+=M<0?T:-T,r&&(d?S>z*E?P=(xr(u,c)?-M:M)/E:M=(xr(u,c)?-P:P)*E:l?(P=M/E,c=u):(M=P*E,u=c));const I=u?x+M:x,$=c?w+P:w;return{width:_+(u?-M:M),height:b+(c?-P:P),x:i[0]*M*(u?-1:1)+I,y:i[1]*P*(c?-1:1)+$}}(f,p,l,a,s,S,y,v),A=z!==E,I=N!==M,$=k!==_&&A,C=T!==b&&I;if(!($||C||A||I))return;if(($||C||1===S[0]||1==S[1])&&(P.x=$?k:d.x,P.y=C?T:d.y,d.x=P.x,d.y=P.y,m&&g.expandParent&&(P.x&&P.x<0&&(d.x=0,f.x=f.x-P.x),P.y&&P.y<0&&(d.y=0,f.y=f.y-P.y)),x.length>0)){const t=k-_,e=T-b;for(const n of x)n.position={x:n.position.x-t+S[0]*(z-E),y:n.position.y-e+S[1]*(N-M)},w.push(n)}(A||I)&&(P.width=A?z:d.width,P.height=I?N:d.height,d.width=P.width,d.height=P.height);const H=function({width:t,prevWidth:e,height:n,prevHeight:o,affectsX:r,affectsY:i}){const a=t-e,s=n-o,u=[a>0?1:a<0?-1:0,s>0?1:s<0?-1:0];return a&&r&&(u[0]=-1*u[0]),s&&i&&(u[1]=-1*u[1]),u}({width:d.width,prevWidth:E,height:d.height,prevHeight:M,affectsX:p.affectsX,affectsY:p.affectsY}),X={...d,direction:H},Y=h?.(t,X);!1!==Y&&(c?.(t,X),o(P,w))})).on("end",(t=>{l?.(t,{...d}),r?.()}));i.call(w)},destroy:function(){i.on(".drag",null)}}},t.XY_RESIZER_HANDLE_POSITIONS=["top-left","top-right","bottom-left","bottom-right"],t.XY_RESIZER_LINE_POSITIONS=["top","right","bottom","left"],t.addEdge=(t,n)=>{if(!t.source||!t.target)return e.error006(),n;let o;return o=c(t)?{...t}:{...t,id:G(t)},((t,e)=>e.some((e=>!(e.source!==t.source||e.target!==t.target||e.sourceHandle!==t.sourceHandle&&(e.sourceHandle||t.sourceHandle)||e.targetHandle!==t.targetHandle&&(e.targetHandle||t.targetHandle)))))(o,n)?n:(null===o.sourceHandle&&delete o.sourceHandle,null===o.targetHandle&&delete o.targetHandle,n.concat(o))},t.adoptUserNodes=function(t,e,n,o={nodeOrigin:[0,0],elevateNodesOnSelect:!0,defaults:{},checkEquality:!0}){const r=new Map(e);e.clear(),n.clear();const i=o?.elevateNodesOnSelect?1e3:0;t.forEach((t=>{let a=r.get(t.id);if(o.checkEquality&&t===a?.internals.userNode||(a={...o.defaults,...t,measured:{width:t.measured?.width,height:t.measured?.height},internals:{positionAbsolute:t.position,handleBounds:a?.internals.handleBounds,z:(S(t.zIndex)?t.zIndex:0)+(t.selected?i:0),userNode:t}}),e.set(t.id,a),t.parentId){const e=n.get(t.parentId);e?e.push(a):n.set(t.parentId,[a])}})),n.size>0&&et(e,o)},t.areConnectionMapsEqual=function(t,e){if(!t&&!e)return!0;if(!t||!e||t.size!==e.size)return!1;if(!t.size&&!e.size)return!0;for(const n of t.keys())if(!e.has(n))return!1;return!0},t.boxToRect=_,t.calcAutoPan=v,t.calculateNodePosition=p,t.clamp=g,t.clampPosition=m,t.createMarkerIds=function(t,{id:e,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:r}){const i=new Set;return t.reduce(((t,a)=>([a.markerStart||o,a.markerEnd||r].forEach((o=>{if(o&&"object"==typeof o){const r=tt(o,e);i.has(r)||(t.push({id:r,color:o.color||n,...o}),i.add(r))}})),t)),[]).sort(((t,e)=>t.id.localeCompare(e.id)))},t.devWarn=z,t.elementSelectionKeys=["Enter"," ","Escape"],t.errorMessages=e,t.evaluateAbsolutePosition=function(t,e,n,o=[0,0]){let r=e;const i={...t};for(;r;){const t=n.get(r);if(r=t?.parentId,t){const e=t.origin||o,n=(t.measured.width??0)*e[0],r=(t.measured.height??0)*e[1];i.x+=t.position.x-n,i.y+=t.position.y-r}}return i},t.fitView=function({nodeLookup:t,width:e,height:n,panZoom:o,minZoom:r,maxZoom:i,nodeOrigin:a=[0,0]},s){const u=[],c=s?.nodes?new Set(s.nodes.map((t=>t.id))):null;if(t.forEach((t=>{!(t.measured.width&&t.measured.height&&(s?.includeHiddenNodes||!t.hidden))||c&&!c.has(t.id)||u.push(t)})),u.length>0){const t=h(u,{nodeOrigin:a}),c=A(t,e,n,s?.minZoom??r,s?.maxZoom??i,s?.padding??.1);return o.setViewport(c,{duration:s?.duration}),!0}return!1},t.getBezierEdgeCenter=L,t.getBezierPath=function({sourceX:e,sourceY:n,sourcePosition:o=t.Position.Bottom,targetX:r,targetY:i,targetPosition:a=t.Position.Top,curvature:s=.25}){const[u,c]=q({pos:o,x1:e,y1:n,x2:r,y2:i,c:s}),[l,h]=q({pos:a,x1:r,y1:i,x2:e,y2:n,c:s}),[d,f,p,g]=L({sourceX:e,sourceY:n,targetX:r,targetY:i,sourceControlX:u,sourceControlY:c,targetControlX:l,targetControlY:h});return[`M${e},${n} C${u},${c} ${l},${h} ${r},${i}`,d,f,p,g]},t.getBoundsOfBoxes=x,t.getBoundsOfRects=M,t.getConnectedEdges=f,t.getDimensions=H,t.getEdgeCenter=Z,t.getEdgePosition=function(n){const{sourceNode:o,targetNode:r}=n;if(!K(o)||!K(r))return null;const i=o.internals.handleBounds||U(o.handles),a=r.internals.handleBounds||U(r.handles),s=J(i?.source??[],n.sourceHandle),u=J(n.connectionMode===t.ConnectionMode.Strict?a?.target??[]:(a?.target??[]).concat(a?.source??[]),n.targetHandle);if(!s||!u)return n.onError?.("008",e.error008(s?"target":"source",{id:n.id,sourceHandle:n.sourceHandle,targetHandle:n.targetHandle})),null;const c=s?.position||t.Position.Bottom,l=u?.position||t.Position.Top,[h,d]=Q(o,s,c),[f,p]=Q(r,u,l);return{sourceX:h,sourceY:d,targetX:f,targetY:p,sourcePosition:c,targetPosition:l}},t.getElementsToRemove=async function({nodesToRemove:t=[],edgesToRemove:e=[],nodes:n,edges:o,onBeforeDelete:r}){const i=new Set(t.map((t=>t.id))),a=[];for(const t of n){if(!1===t.deletable)continue;const e=i.has(t.id),n=!e&&t.parentId&&a.find((e=>e.id===t.parentId));(e||n)&&a.push(t)}const s=new Set(e.map((t=>t.id))),u=o.filter((t=>!1!==t.deletable)),c=f(a,u);for(const t of u){s.has(t.id)&&!c.find((e=>e.id===t.id))&&c.push(t)}if(!r)return{edges:c,nodes:a};const l=await r({nodes:a,edges:c});return"boolean"==typeof l?l?{edges:c,nodes:a}:{edges:[],nodes:[]}:l},t.getElevatedEdgeZIndex=function({sourceNode:t,targetNode:e,selected:n=!1,zIndex:o=0,elevateOnSelect:r=!1}){if(!r)return o;const i=n||e.selected||t.selected,a=Math.max(t.internals.z||0,e.internals.z||0,1e3);return o+(i?a:0)},t.getEventPosition=R,t.getHandleBounds=D,t.getHandlePosition=Q,t.getHostForElement=X,t.getIncomers=(t,e,n)=>{if(!t.id)return[];const o=new Set;return n.forEach((e=>{e.target===t.id&&o.add(e.source)})),e.filter((t=>o.has(t.id)))},t.getInternalNodesBounds=d,t.getMarkerId=tt,t.getNodeDimensions=C,t.getNodePositionWithOrigin=l,t.getNodeToolbarTransform=function(e,n,o,r,i){let a=.5;"start"===i?a=0:"end"===i&&(a=1);let s=[(e.x+e.width*a)*n.zoom+n.x,e.y*n.zoom+n.y-r],u=[-100*a,-100];switch(o){case t.Position.Right:s=[(e.x+e.width)*n.zoom+n.x+r,(e.y+e.height*a)*n.zoom+n.y],u=[0,-100*a];break;case t.Position.Bottom:s[1]=(e.y+e.height)*n.zoom+n.y+r,u[1]=0;break;case t.Position.Left:s=[e.x*n.zoom+n.x-r,(e.y+e.height*a)*n.zoom+n.y],u=[-100,-100*a]}return`translate(${s[0]}px, ${s[1]}px) translate(${u[0]}%, ${u[1]}%)`},t.getNodesBounds=h,t.getNodesInside=(t,e,[n,o,r]=[0,0,1],i=!1,a=!1,s=[0,0])=>{const u={...k(e,[n,o,r]),width:e.width/r,height:e.height/r},c=[];for(const[,e]of t){const{measured:t,selectable:n=!0,hidden:o=!1}=e,r=t.width??e.width??e.initialWidth??null,l=t.height??e.height??e.initialHeight??null;if(a&&!n||o)continue;const h=P(u,b(e,s));(null===r||null===l||i&&h>0||h>=(r??0)*(l??0)||e.dragging)&&c.push(e)}return c},t.getOutgoers=(t,e,n)=>{if(!t.id)return[];const o=new Set;return n.forEach((e=>{e.source===t.id&&o.add(e.target)})),e.filter((t=>o.has(t.id)))},t.getOverlappingArea=P,t.getPointerPosition=O,t.getPositionWithOrigin=({x:t,y:e,width:n,height:o,origin:r=[0,0]})=>!n||!o||r[0]<0||r[1]<0||r[0]>1||r[1]>1?{x:t,y:e}:{x:t-n*r[0],y:e-o*r[1]},t.getSmoothStepPath=function({sourceX:e,sourceY:n,sourcePosition:o=t.Position.Bottom,targetX:r,targetY:i,targetPosition:a=t.Position.Top,borderRadius:s=5,centerX:u,centerY:c,offset:l=20}){const[h,d,f,p,g]=function({source:e,sourcePosition:n=t.Position.Bottom,target:o,targetPosition:r=t.Position.Top,center:i,offset:a}){const s=j[n],u=j[r],c={x:e.x+s.x*a,y:e.y+s.y*a},l={x:o.x+u.x*a,y:o.y+u.y*a},h=W({source:c,sourcePosition:n,target:l}),d=0!==h.x?"x":"y",f=h[d];let p,g,m=[];const y={x:0,y:0},v={x:0,y:0},[x,w,_,b]=Z({sourceX:e.x,sourceY:e.y,targetX:o.x,targetY:o.y});if(s[d]*u[d]==-1){p=i.x??x,g=i.y??w;const t=[{x:p,y:c.y},{x:p,y:l.y}],e=[{x:c.x,y:g},{x:l.x,y:g}];m=s[d]===f?"x"===d?t:e:"x"===d?e:t}else{const t=[{x:c.x,y:l.y}],i=[{x:l.x,y:c.y}];if(m="x"===d?s.x===f?i:t:s.y===f?t:i,n===r){const t=Math.abs(e[d]-o[d]);if(t<=a){const n=Math.min(a-1,a-t);s[d]===f?y[d]=(c[d]>e[d]?-1:1)*n:v[d]=(l[d]>o[d]?-1:1)*n}}if(n!==r){const e="x"===d?"y":"x",n=s[d]===u[e],o=c[e]>l[e],r=c[e]<l[e];(1===s[d]&&(!n&&o||n&&r)||1!==s[d]&&(!n&&r||n&&o))&&(m="x"===d?t:i)}const h={x:c.x+y.x,y:c.y+y.y},x={x:l.x+v.x,y:l.y+v.y};Math.max(Math.abs(h.x-m[0].x),Math.abs(x.x-m[0].x))>=Math.max(Math.abs(h.y-m[0].y),Math.abs(x.y-m[0].y))?(p=(h.x+x.x)/2,g=m[0].y):(p=m[0].x,g=(h.y+x.y)/2)}return[[e,{x:c.x+y.x,y:c.y+y.y},...m,{x:l.x+v.x,y:l.y+v.y},o],p,g,_,b]}({source:{x:e,y:n},sourcePosition:o,target:{x:r,y:i},targetPosition:a,center:{x:u,y:c},offset:l});return[h.reduce(((t,e,n)=>{let o="";return o=n>0&&n<h.length-1?function(t,e,n,o){const r=Math.min(F(t,e)/2,F(e,n)/2,o),{x:i,y:a}=e;if(t.x===i&&i===n.x||t.y===a&&a===n.y)return`L${i} ${a}`;if(t.y===a)return`L ${i+r*(t.x<n.x?-1:1)},${a}Q ${i},${a} ${i},${a+r*(t.y<n.y?1:-1)}`;const s=t.x<n.x?1:-1;return`L ${i},${a+r*(t.y<n.y?-1:1)}Q ${i},${a} ${i+r*s},${a}`}(h[n-1],e,h[n+1],s):`${0===n?"M":"L"}${e.x} ${e.y}`,t+=o}),""),d,f,p,g]},t.getStraightPath=function({sourceX:t,sourceY:e,targetX:n,targetY:o}){const[r,i,a,s]=Z({sourceX:t,sourceY:e,targetX:n,targetY:o});return[`M ${t},${e}L ${n},${o}`,r,i,a,s]},t.getViewportForBounds=A,t.handleConnectionChange=function(t,e,n){if(!n)return;const o=[];t.forEach(((t,n)=>{e?.has(n)||o.push(t)})),o.length&&n(o)},t.handleExpandParent=ot,t.infiniteExtent=n,t.isCoordinateExtent=$,t.isEdgeBase=c,t.isEdgeVisible=function({sourceNode:t,targetNode:e,width:n,height:o,transform:r}){const i=x(E(t),E(e));i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1);const a={x:-r[0]/r[2],y:-r[1]/r[2],width:n/r[2],height:o/r[2]};return P(a,_(i))>0},t.isInputDOMNode=function(t){const e=t.composedPath?.()?.[0]||t.target;return Y.includes(e?.nodeName)||e?.hasAttribute("contenteditable")||!!e?.closest(".nokey")},t.isInternalNodeBase=t=>"id"in t&&"internals"in t&&!("source"in t)&&!("target"in t),t.isMacOs=I,t.isMouseEvent=B,t.isNodeBase=t=>"id"in t&&"position"in t&&!("source"in t)&&!("target"in t),t.isNumeric=S,t.isRectObject=t=>S(t.width)&&S(t.height)&&S(t.x)&&S(t.y),t.nodeHasDimensions=function(t){return void 0!==(t.measured?.width??t.width??t.initialWidth)&&void 0!==(t.measured?.height??t.height??t.initialHeight)},t.nodeToBox=E,t.nodeToRect=b,t.panBy=function({delta:t,panZoom:e,transform:n,translateExtent:o,width:r,height:i}){if(!e||!t.x&&!t.y)return!1;const a=e.setViewportConstrained({x:n[0]+t.x,y:n[1]+t.y,zoom:n[2]},[[0,0],[r,i]],o);return!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2])},t.pointToRendererPoint=k,t.reconnectEdge=(t,n,o,r={shouldReplaceId:!0})=>{const{id:i,...a}=t;if(!n.source||!n.target)return e.error006(),o;if(!o.find((e=>e.id===t.id)))return e.error007(i),o;const s={...a,id:r.shouldReplaceId?G(n):i,source:n.source,target:n.target,sourceHandle:n.sourceHandle,targetHandle:n.targetHandle};return o.filter((t=>t.id!==i)).concat(s)},t.rectToBox=w,t.rendererPointToPoint=T,t.shallowNodeData=function(t,e){if(null===t||null===e)return!1;const n=Array.isArray(t)?t:[t],o=Array.isArray(e)?e:[e];if(n.length!==o.length)return!1;for(let t=0;t<n.length;t++)if(n[t].id!==o[t].id||n[t].type!==o[t].type||!Object.is(n[t].data,o[t].data))return!1;return!0},t.snapPosition=N,t.updateAbsolutePositions=et,t.updateConnectionLookup=function(t,e,n){t.clear(),e.clear();for(const o of n){const{source:n,target:r,sourceHandle:i=null,targetHandle:a=null}=o,s=`${n}-source-${i}`,u=`${r}-target-${a}`,c=t.get(s)||new Map,l=t.get(u)||new Map,h={edgeId:o.id,source:n,target:r,sourceHandle:i,targetHandle:a};e.set(o.id,o),t.set(s,c.set(`${r}-${a}`,h)),t.set(u,l.set(`${n}-${i}`,h))}},t.updateNodeInternals=function(t,e,n,o,r){const i=o?.querySelector(".xyflow__viewport");let a=!1;if(!i)return{changes:[],updatedInternals:a};const s=[],u=window.getComputedStyle(i),{m22:c}=new window.DOMMatrixReadOnly(u.transform),l=[];if(t.forEach((t=>{const n=e.get(t.id);if(n?.hidden)n.internals={...n.internals,handleBounds:void 0},a=!0;else if(n){const e=H(t.nodeElement),o=n.measured.width!==e.width||n.measured.height!==e.height;if(!(!e.width||!e.height||!o&&n.internals.handleBounds&&!t.force)){const i=t.nodeElement.getBoundingClientRect();n.measured=e,n.internals={...n.internals,handleBounds:{source:D(".source",t.nodeElement,i,c,n.origin||r),target:D(".target",t.nodeElement,i,c,n.origin||r)}},a=!0,o&&(s.push({id:n.id,type:"dimensions",dimensions:e}),n.expandParent&&n.parentId&&l.push({id:n.id,parentId:n.parentId,rect:b(n,r)}))}}})),l.length>0){const t=ot(l,e,n,r);s.push(...t)}return{changes:s,updatedInternals:a}}}));
@@ -13,6 +13,7 @@ export type ConnectingHandle = {
13
13
  nodeId: string;
14
14
  type: HandleType;
15
15
  handleId?: string | null;
16
+ position?: Position | null;
16
17
  };
17
18
  export type ConnectionHandle = {
18
19
  id: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"handles.d.ts","sourceRoot":"","sources":["../../src/types/handles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAC;AAErD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,IAAI,EAAE,UAAU,CAAC;IACjB;;;OAGG;IACH,QAAQ,EAAE,QAAQ,CAAC;IACnB,wDAAwD;IACxD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC"}
1
+ {"version":3,"file":"handles.d.ts","sourceRoot":"","sources":["../../src/types/handles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAC;AAErD,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB;;OAEG;IACH,IAAI,EAAE,UAAU,CAAC;IACjB;;;OAGG;IACH,QAAQ,EAAE,QAAQ,CAAC;IACnB,wDAAwD;IACxD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,CAAC"}
@@ -30,17 +30,17 @@ export declare function isEdgeVisible({ sourceNode, targetNode, width, height, t
30
30
  * @returns A new array of edges with the new edge added
31
31
  */
32
32
  export declare const addEdge: <EdgeType extends EdgeBase>(edgeParams: EdgeType | Connection, edges: EdgeType[]) => EdgeType[];
33
- export type UpdateEdgeOptions = {
33
+ export type ReconnectEdgeOptions = {
34
34
  shouldReplaceId?: boolean;
35
35
  };
36
36
  /**
37
- * A handy utility to update an existing Edge with new properties
37
+ * A handy utility to reconnect an existing edge with new properties
38
38
  * @param oldEdge - The edge you want to update
39
39
  * @param newConnection - The new connection you want to update the edge with
40
40
  * @param edges - The array of all current edges
41
41
  * @param options.shouldReplaceId - should the id of the old edge be replaced with the new connection id
42
42
  * @returns the updated edges array
43
43
  */
44
- export declare const updateEdge: <EdgeType extends EdgeBase>(oldEdge: EdgeType, newConnection: Connection, edges: EdgeType[], options?: UpdateEdgeOptions) => EdgeType[];
44
+ export declare const reconnectEdge: <EdgeType extends EdgeBase>(oldEdge: EdgeType, newConnection: Connection, edges: EdgeType[], options?: ReconnectEdgeOptions) => EdgeType[];
45
45
  export {};
46
46
  //# sourceMappingURL=general.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../src/utils/edges/general.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAA6B,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIrG,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,GACR,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAQnC;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EACpC,UAAU,EACV,UAAU,EACV,QAAgB,EAChB,MAAU,EACV,eAAuB,GACxB,EAAE,mBAAmB,GAAG,MAAM,CAS9B;AAED,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,mBAAmB,GAAG,OAAO,CAmBhH;AAeD;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,0CACN,QAAQ,GAAG,UAAU,SAC1B,QAAQ,EAAE,KAChB,QAAQ,EA8BV,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,uCACZ,QAAQ,iBACF,UAAU,SAClB,QAAQ,EAAE,YACR,iBAAiB,KACzB,QAAQ,EA4BV,CAAC"}
1
+ {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../src/utils/edges/general.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAA6B,QAAQ,EAAE,MAAM,OAAO,CAAC;AAIrG,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,GACR,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAQnC;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,EACpC,UAAU,EACV,UAAU,EACV,QAAgB,EAChB,MAAU,EACV,eAAuB,GACxB,EAAE,mBAAmB,GAAG,MAAM,CAS9B;AAED,KAAK,mBAAmB,GAAG;IACzB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,mBAAmB,GAAG,OAAO,CAmBhH;AAeD;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,0CACN,QAAQ,GAAG,UAAU,SAC1B,QAAQ,EAAE,KAChB,QAAQ,EA8BV,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,uCACf,QAAQ,iBACF,UAAU,SAClB,QAAQ,EAAE,YACR,oBAAoB,KAC5B,QAAQ,EA4BV,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { EdgePosition } from '../../types/edges';
2
2
  import { ConnectionMode, OnError } from '../../types/general';
3
3
  import { InternalNodeBase } from '../../types/nodes';
4
+ import { Position } from '../../types/utils';
5
+ import { HandleElement } from '../../types';
4
6
  export type GetEdgePositionParams = {
5
7
  id: string;
6
8
  sourceNode: InternalNodeBase;
@@ -11,4 +13,5 @@ export type GetEdgePositionParams = {
11
13
  onError?: OnError;
12
14
  };
13
15
  export declare function getEdgePosition(params: GetEdgePositionParams): EdgePosition | null;
16
+ export declare function getHandlePosition(node: InternalNodeBase, handle: HandleElement | null, fallbackPosition?: Position): number[];
14
17
  //# sourceMappingURL=positions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"positions.d.ts","sourceRoot":"","sources":["../../../src/utils/edges/positions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAc,MAAM,mBAAmB,CAAC;AAMjE,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,gBAAgB,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAUF,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CA6ClF"}
1
+ {"version":3,"file":"positions.d.ts","sourceRoot":"","sources":["../../../src/utils/edges/positions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAc,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,gBAAgB,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAUF,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,YAAY,GAAG,IAAI,CA6ClF;AA2BD,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,aAAa,GAAG,IAAI,EAC5B,gBAAgB,GAAE,QAAwB,GACzC,MAAM,EAAE,CAgBV"}
@@ -18,7 +18,7 @@ export type OnPointerDownParams = {
18
18
  onConnect?: OnConnect;
19
19
  onConnectEnd?: OnConnectEnd;
20
20
  isValidConnection?: IsValidConnection;
21
- onEdgeUpdateEnd?: (evt: MouseEvent | TouchEvent) => void;
21
+ onReconnectEnd?: (evt: MouseEvent | TouchEvent) => void;
22
22
  getTransform: () => Transform;
23
23
  getConnectionStartHandle: () => ConnectingHandle | null;
24
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"XYHandle.d.ts","sourceRoot":"","sources":["../../src/xyhandle/XYHandle.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,UAAU,EACX,MAAM,UAAU,CAAC;AAIlB,MAAM,MAAM,mBAAmB,GAAG;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,KAAK,EAAE,KAAK,CAAC;IACb,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,KAAK,IAAI,CAAC;IACzD,YAAY,EAAE,MAAM,SAAS,CAAC;IAC9B,wBAAwB,EAAE,MAAM,gBAAgB,GAAG,IAAI,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;IAChE,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,GAAG,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACrF,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,aAAa,KAAK,MAAM,CAAC;CAC5E,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACpC,CAAC;AAwPF,eAAO,MAAM,QAAQ,EAAE,gBAGtB,CAAC"}
1
+ {"version":3,"file":"XYHandle.d.ts","sourceRoot":"","sources":["../../src/xyhandle/XYHandle.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,UAAU,EAEX,MAAM,UAAU,CAAC;AAIlB,MAAM,MAAM,mBAAmB,GAAG;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,KAAK,EAAE,KAAK,CAAC;IACb,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,KAAK,IAAI,CAAC;IACxD,YAAY,EAAE,MAAM,SAAS,CAAC;IAC9B,wBAAwB,EAAE,MAAM,gBAAgB,GAAG,IAAI,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC;IAChE,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,GAAG,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACrF,OAAO,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,EAAE,MAAM,EAAE,aAAa,KAAK,MAAM,CAAC;CAC5E,CAAC;AAEF,KAAK,MAAM,GAAG;IACZ,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;CACpC,CAAC;AAuPF,eAAO,MAAM,QAAQ,EAAE,gBAGtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/xyhandle/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,gBAAgB,EAChB,UAAU,EACX,MAAM,UAAU,CAAC;AAIlB,wBAAgB,UAAU,CACxB,IAAI,EAAE,gBAAgB,EACtB,YAAY,EAAE,gBAAgB,EAC9B,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,GACpB,gBAAgB,EAAE,CAapB;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,UAAU,EACf,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,gBAAgB,EAAE,GAC1B,gBAAgB,GAAG,IAAI,CAyBzB;AAED,KAAK,qBAAqB,GAAG;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,MAAM,EACN,QAAQ,EACR,UAAU,GACX,EAAE,qBAAqB,GAAG,gBAAgB,EAAE,CAa5C;AAED,wBAAgB,aAAa,CAC3B,eAAe,EAAE,UAAU,GAAG,SAAS,EACvC,aAAa,EAAE,OAAO,GAAG,IAAI,GAC5B,UAAU,GAAG,IAAI,CAUnB;AAED,wBAAgB,mBAAmB,CAAC,wBAAwB,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,oBAU5F"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/xyhandle/utils.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,gBAAgB,EAChB,UAAU,EACX,MAAM,UAAU,CAAC;AAIlB,wBAAgB,UAAU,CACxB,IAAI,EAAE,gBAAgB,EACtB,YAAY,EAAE,gBAAgB,EAC9B,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,MAAM,GACpB,gBAAgB,EAAE,CAcpB;AAED,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,UAAU,EACf,gBAAgB,EAAE,MAAM,EACxB,OAAO,EAAE,gBAAgB,EAAE,GAC1B,gBAAgB,GAAG,IAAI,CAyBzB;AAED,KAAK,qBAAqB,GAAG;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,MAAM,EACN,QAAQ,EACR,UAAU,GACX,EAAE,qBAAqB,GAAG,gBAAgB,EAAE,CAa5C;AAED,wBAAgB,aAAa,CAC3B,eAAe,EAAE,UAAU,GAAG,SAAS,EACvC,aAAa,EAAE,OAAO,GAAG,IAAI,GAC5B,UAAU,GAAG,IAAI,CAUnB;AAED,wBAAgB,mBAAmB,CAAC,wBAAwB,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,oBAU5F"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/xyminimap/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,OAAO,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE7E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,OAAO,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,SAAS,CAAC;IAC9B,YAAY,EAAE,MAAM,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,gBAAgB,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,eAAe;4FAWtF,eAAe;;;EAiFnB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/xyminimap/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,OAAO,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE7E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,OAAO,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,SAAS,CAAC;IAC9B,YAAY,EAAE,MAAM,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,eAAe,EAAE,gBAAgB,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,eAAe;4FAWtF,eAAe;;;EAsFnB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyflow/system",
3
- "version": "0.0.28",
3
+ "version": "0.0.30",
4
4
  "description": "xyflow core system that powers React Flow and Svelte Flow.",
5
5
  "keywords": [
6
6
  "node-based UI",