@xyflow/react 12.0.0-next.22 → 12.0.0-next.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/container/FlowRenderer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK7C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,OAAO,KAAK,EAAkB,IAAI,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,MAAM,iBAAiB,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,IAAI,IAAI,CAChE,cAAc,CAAC,QAAQ,CAAC,EACtB,YAAY,GACZ,WAAW,GACX,WAAW,GACX,UAAU,GACV,oBAAoB,GACpB,8BAA8B,GAC9B,gBAAgB,GAChB,2BAA2B,GAC3B,mBAAmB,GACnB,oBAAoB,GACpB,MAAM,GACN,YAAY,CACf,GAAG;IACF,oBAAoB,EAAE,OAAO,CAAC;IAC9B,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAMF,iBAAS,qBAAqB,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,EAAE,EAC3D,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,WAAW,EAAE,YAAY,EACzB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,SAAS,EAAE,UAAU,EACrB,eAAe,EACf,eAAe,EACf,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GACrB,EAAE,iBAAiB,CAAC,QAAQ,CAAC,2CA0D7B;kBA9FQ,qBAAqB;;;AAkG9B,eAAO,MAAM,YAAY,8BAA8D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/container/FlowRenderer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK7C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,OAAO,KAAK,EAAkB,IAAI,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,MAAM,iBAAiB,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,IAAI,IAAI,CAChE,cAAc,CAAC,QAAQ,CAAC,EACtB,YAAY,GACZ,WAAW,GACX,WAAW,GACX,UAAU,GACV,oBAAoB,GACpB,8BAA8B,GAC9B,gBAAgB,GAChB,2BAA2B,GAC3B,mBAAmB,GACnB,oBAAoB,GACpB,MAAM,GACN,YAAY,CACf,GAAG;IACF,oBAAoB,EAAE,OAAO,CAAC;IAC9B,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAQF,iBAAS,qBAAqB,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,EAAE,EAC3D,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,WAAW,EAAE,YAAY,EACzB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,SAAS,EAAE,UAAU,EACrB,eAAe,EACf,eAAe,EACf,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GACrB,EAAE,iBAAiB,CAAC,QAAQ,CAAC,2CA0D7B;kBA9FQ,qBAAqB;;;AAkG9B,eAAO,MAAM,YAAY,8BAA8D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGlobalKeyHandler.d.ts","sourceRoot":"","sources":["../../src/hooks/useGlobalKeyHandler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAW9C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,aAAa,EACb,qBAAqB,GACtB,EAAE;IACD,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,qBAAqB,EAAE,OAAO,GAAG,IAAI,CAAC;CACvC,GAAG,IAAI,CAkBP"}
1
+ {"version":3,"file":"useGlobalKeyHandler.d.ts","sourceRoot":"","sources":["../../src/hooks/useGlobalKeyHandler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAY9C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,aAAa,EACb,qBAAqB,GACtB,EAAE;IACD,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,qBAAqB,EAAE,OAAO,GAAG,IAAI,CAAC;CACvC,GAAG,IAAI,CAkBP"}
package/dist/esm/index.js CHANGED
@@ -966,6 +966,7 @@ function useReactFlow() {
966
966
 
967
967
  const selected = (item) => item.selected;
968
968
  const deleteKeyOptions = { actInsideInputWithModifier: false };
969
+ const win$1 = typeof window !== 'undefined' ? window : undefined;
969
970
  /**
970
971
  * Hook for handling global key events.
971
972
  *
@@ -975,7 +976,7 @@ function useGlobalKeyHandler({ deleteKeyCode, multiSelectionKeyCode, }) {
975
976
  const store = useStoreApi();
976
977
  const { deleteElements } = useReactFlow();
977
978
  const deleteKeyPressed = useKeyPress(deleteKeyCode, deleteKeyOptions);
978
- const multiSelectionKeyPressed = useKeyPress(multiSelectionKeyCode, { target: window });
979
+ const multiSelectionKeyPressed = useKeyPress(multiSelectionKeyCode, { target: win$1 });
979
980
  useEffect(() => {
980
981
  if (deleteKeyPressed) {
981
982
  const { edges, nodes } = store.getState();
@@ -1636,13 +1637,14 @@ function NodesSelection({ onSelectionContextMenu, noPanClassName, disableKeyboar
1636
1637
  } }) }));
1637
1638
  }
1638
1639
 
1640
+ const win = typeof window !== 'undefined' ? window : undefined;
1639
1641
  const selector$g = (s) => {
1640
1642
  return { nodesSelectionActive: s.nodesSelectionActive, userSelectionActive: s.userSelectionActive };
1641
1643
  };
1642
1644
  function FlowRendererComponent({ children, onPaneClick, onPaneMouseEnter, onPaneMouseMove, onPaneMouseLeave, onPaneContextMenu, onPaneScroll, deleteKeyCode, selectionKeyCode, selectionOnDrag, selectionMode, onSelectionStart, onSelectionEnd, multiSelectionKeyCode, panActivationKeyCode, zoomActivationKeyCode, elementsSelectable, zoomOnScroll, zoomOnPinch, panOnScroll: _panOnScroll, panOnScrollSpeed, panOnScrollMode, zoomOnDoubleClick, panOnDrag: _panOnDrag, defaultViewport, translateExtent, minZoom, maxZoom, preventScrolling, onSelectionContextMenu, noWheelClassName, noPanClassName, disableKeyboardA11y, onViewportChange, isControlledViewport, }) {
1643
1645
  const { nodesSelectionActive, userSelectionActive } = useStore(selector$g);
1644
- const selectionKeyPressed = useKeyPress(selectionKeyCode, { target: window });
1645
- const panActivationKeyPressed = useKeyPress(panActivationKeyCode, { target: window });
1646
+ const selectionKeyPressed = useKeyPress(selectionKeyCode, { target: win });
1647
+ const panActivationKeyPressed = useKeyPress(panActivationKeyCode, { target: win });
1646
1648
  const panOnDrag = panActivationKeyPressed || _panOnDrag;
1647
1649
  const panOnScroll = panActivationKeyPressed || _panOnScroll;
1648
1650
  const isSelecting = selectionKeyPressed || userSelectionActive || (selectionOnDrag && panOnDrag !== true);
@@ -966,6 +966,7 @@ function useReactFlow() {
966
966
 
967
967
  const selected = (item) => item.selected;
968
968
  const deleteKeyOptions = { actInsideInputWithModifier: false };
969
+ const win$1 = typeof window !== 'undefined' ? window : undefined;
969
970
  /**
970
971
  * Hook for handling global key events.
971
972
  *
@@ -975,7 +976,7 @@ function useGlobalKeyHandler({ deleteKeyCode, multiSelectionKeyCode, }) {
975
976
  const store = useStoreApi();
976
977
  const { deleteElements } = useReactFlow();
977
978
  const deleteKeyPressed = useKeyPress(deleteKeyCode, deleteKeyOptions);
978
- const multiSelectionKeyPressed = useKeyPress(multiSelectionKeyCode, { target: window });
979
+ const multiSelectionKeyPressed = useKeyPress(multiSelectionKeyCode, { target: win$1 });
979
980
  useEffect(() => {
980
981
  if (deleteKeyPressed) {
981
982
  const { edges, nodes } = store.getState();
@@ -1636,13 +1637,14 @@ function NodesSelection({ onSelectionContextMenu, noPanClassName, disableKeyboar
1636
1637
  } }) }));
1637
1638
  }
1638
1639
 
1640
+ const win = typeof window !== 'undefined' ? window : undefined;
1639
1641
  const selector$g = (s) => {
1640
1642
  return { nodesSelectionActive: s.nodesSelectionActive, userSelectionActive: s.userSelectionActive };
1641
1643
  };
1642
1644
  function FlowRendererComponent({ children, onPaneClick, onPaneMouseEnter, onPaneMouseMove, onPaneMouseLeave, onPaneContextMenu, onPaneScroll, deleteKeyCode, selectionKeyCode, selectionOnDrag, selectionMode, onSelectionStart, onSelectionEnd, multiSelectionKeyCode, panActivationKeyCode, zoomActivationKeyCode, elementsSelectable, zoomOnScroll, zoomOnPinch, panOnScroll: _panOnScroll, panOnScrollSpeed, panOnScrollMode, zoomOnDoubleClick, panOnDrag: _panOnDrag, defaultViewport, translateExtent, minZoom, maxZoom, preventScrolling, onSelectionContextMenu, noWheelClassName, noPanClassName, disableKeyboardA11y, onViewportChange, isControlledViewport, }) {
1643
1645
  const { nodesSelectionActive, userSelectionActive } = useStore(selector$g);
1644
- const selectionKeyPressed = useKeyPress(selectionKeyCode, { target: window });
1645
- const panActivationKeyPressed = useKeyPress(panActivationKeyCode, { target: window });
1646
+ const selectionKeyPressed = useKeyPress(selectionKeyCode, { target: win });
1647
+ const panActivationKeyPressed = useKeyPress(panActivationKeyCode, { target: win });
1646
1648
  const panOnDrag = panActivationKeyPressed || _panOnDrag;
1647
1649
  const panOnScroll = panActivationKeyPressed || _panOnScroll;
1648
1650
  const isSelecting = selectionKeyPressed || userSelectionActive || (selectionOnDrag && panOnDrag !== true);
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/container/FlowRenderer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK7C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,OAAO,KAAK,EAAkB,IAAI,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,MAAM,iBAAiB,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,IAAI,IAAI,CAChE,cAAc,CAAC,QAAQ,CAAC,EACtB,YAAY,GACZ,WAAW,GACX,WAAW,GACX,UAAU,GACV,oBAAoB,GACpB,8BAA8B,GAC9B,gBAAgB,GAChB,2BAA2B,GAC3B,mBAAmB,GACnB,oBAAoB,GACpB,MAAM,GACN,YAAY,CACf,GAAG;IACF,oBAAoB,EAAE,OAAO,CAAC;IAC9B,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAMF,iBAAS,qBAAqB,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,EAAE,EAC3D,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,WAAW,EAAE,YAAY,EACzB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,SAAS,EAAE,UAAU,EACrB,eAAe,EACf,eAAe,EACf,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GACrB,EAAE,iBAAiB,CAAC,QAAQ,CAAC,2CA0D7B;kBA9FQ,qBAAqB;;;AAkG9B,eAAO,MAAM,YAAY,8BAA8D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/container/FlowRenderer/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAK7C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAI9C,OAAO,KAAK,EAAkB,IAAI,EAAE,MAAM,aAAa,CAAC;AAExD,MAAM,MAAM,iBAAiB,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,IAAI,IAAI,CAChE,cAAc,CAAC,QAAQ,CAAC,EACtB,YAAY,GACZ,WAAW,GACX,WAAW,GACX,UAAU,GACV,oBAAoB,GACpB,8BAA8B,GAC9B,gBAAgB,GAChB,2BAA2B,GAC3B,mBAAmB,GACnB,oBAAoB,GACpB,MAAM,GACN,YAAY,CACf,GAAG;IACF,oBAAoB,EAAE,OAAO,CAAC;IAC9B,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAQF,iBAAS,qBAAqB,CAAC,QAAQ,SAAS,IAAI,GAAG,IAAI,EAAE,EAC3D,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,YAAY,EACZ,WAAW,EACX,WAAW,EAAE,YAAY,EACzB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,SAAS,EAAE,UAAU,EACrB,eAAe,EACf,eAAe,EACf,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,GACrB,EAAE,iBAAiB,CAAC,QAAQ,CAAC,2CA0D7B;kBA9FQ,qBAAqB;;;AAkG9B,eAAO,MAAM,YAAY,8BAA8D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGlobalKeyHandler.d.ts","sourceRoot":"","sources":["../../src/hooks/useGlobalKeyHandler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAW9C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,aAAa,EACb,qBAAqB,GACtB,EAAE;IACD,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,qBAAqB,EAAE,OAAO,GAAG,IAAI,CAAC;CACvC,GAAG,IAAI,CAkBP"}
1
+ {"version":3,"file":"useGlobalKeyHandler.d.ts","sourceRoot":"","sources":["../../src/hooks/useGlobalKeyHandler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAY9C;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,aAAa,EACb,qBAAqB,GACtB,EAAE;IACD,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,qBAAqB,EAAE,OAAO,GAAG,IAAI,CAAC;CACvC,GAAG,IAAI,CAkBP"}
package/dist/umd/index.js CHANGED
@@ -7,4 +7,4 @@
7
7
  *
8
8
  * This source code is licensed under the MIT license found in the
9
9
  * LICENSE file in the root directory of this source tree.
10
- */ti.exports=function(){if(ei)return ni;ei=1;var e=n,t=ii(),o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},r=t.useSyncExternalStore,i=e.useRef,a=e.useEffect,s=e.useMemo,l=e.useDebugValue;return ni.useSyncExternalStoreWithSelector=function(e,t,n,c,u){var d=i(null);if(null===d.current){var h={hasValue:!1,value:null};d.current=h}else h=d.current;d=s((function(){function e(e){if(!a){if(a=!0,r=e,e=c(e),void 0!==u&&h.hasValue){var t=h.value;if(u(t,e))return i=t}return i=e}if(t=i,o(r,e))return t;var n=c(e);return void 0!==u&&u(t,n)?t:(r=e,i=n)}var r,i,a=!1,s=void 0===n?null:n;return[function(){return e(t())},null===s?void 0:function(){return e(s())}]}),[t,n,c,u]);var f=r(e,d[0],d[1]);return a((function(){h.hasValue=!0,h.value=f}),[f]),l(f),f},ni}();var ai=Ur(ti.exports);const si=e=>{let t;const n=new Set,o=(e,o)=>{const r="function"==typeof e?e(t):e;if(!Object.is(r,t)){const e=t;t=(null!=o?o:"object"!=typeof r)?r:Object.assign({},t,r),n.forEach((n=>n(t,e)))}},r=()=>t,i={setState:o,getState:r,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}};return t=e(o,r,i),i},{useSyncExternalStoreWithSelector:li}=ai;function ci(e,t=e.getState,o){const r=li(e.subscribe,e.getState,e.getServerState||e.getState,t,o);return n.useDebugValue(r),r}const ui=(e,t)=>{const n=(e=>e?si(e):si)(e),o=(e,o=t)=>ci(n,e,o);return Object.assign(o,n),o},di=n.createContext(null),hi=di.Provider,fi=Qn.error001();function gi(e,t){const o=n.useContext(di);if(null===o)throw new Error(fi);return ci(o,e,t)}function pi(){const e=n.useContext(di);if(null===e)throw new Error(fi);return n.useMemo((()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe})),[e])}const mi={display:"none"},yi={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},vi="react-flow__node-desc",xi="react-flow__edge-desc",wi="react-flow__aria-live",bi=e=>e.ariaLiveMessage;function Si({rfId:e}){const n=gi(bi);return t.jsx("div",{id:`${wi}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:yi,children:n})}function Ei({rfId:e,disableKeyboardA11y:n}){return t.jsxs(t.Fragment,{children:[t.jsxs("div",{id:`${vi}-${e}`,style:mi,children:["Press enter or space to select a node.",!n&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "]}),t.jsx("div",{id:`${xi}-${e}`,style:mi,children:"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."}),!n&&t.jsx(Si,{rfId:e})]})}const Ci=e=>e.userSelectionActive?"none":"all";function _i({position:e="top-left",children:n,className:o,style:i,...a}){const s=gi(Ci),l=`${e}`.split("-");return t.jsx("div",{className:r(["react-flow__panel",o,...l]),style:{...i,pointerEvents:s},...a,children:n})}function Mi({proOptions:e,position:n="bottom-right"}){return e?.hideAttribution?null:t.jsx(_i,{position:n,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:t.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}function Ni(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[n,o]of e)if(!Object.is(o,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let o=0;o<n.length;o++)if(!Object.prototype.hasOwnProperty.call(t,n[o])||!Object.is(e[n[o]],t[n[o]]))return!1;return!0}const ki=e=>{const t=[],n=[];for(const[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(const[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},Pi=e=>e.id;function zi(e,t){return Ni(e.selectedNodes.map(Pi),t.selectedNodes.map(Pi))&&Ni(e.selectedEdges.map(Pi),t.selectedEdges.map(Pi))}function Oi({onSelectionChange:e}){const t=pi(),{selectedNodes:o,selectedEdges:r}=gi(ki,zi);return n.useEffect((()=>{const n={nodes:o,edges:r};e?.(n),t.getState().onSelectionChangeHandlers.forEach((e=>e(n)))}),[o,r,e]),null}const Ii=e=>!!e.onSelectionChangeHandlers;function Ai({onSelectionChange:e}){const n=gi(Ii);return e||n?t.jsx(Oi,{onSelectionChange:e}):null}const Ri=[0,0],Di={x:0,y:0,zoom:1},$i=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","onBeforeDelete","debug","rfId"],Li=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),Ti={translateExtent:Jn,nodeOrigin:Ri,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function Bi(e){const{setNodes:t,setEdges:o,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:s,reset:l,setDefaultNodesAndEdges:c}=gi(Li,Ni),u=pi();n.useEffect((()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=Ti,l()})),[]);const d=n.useRef(Ti);return n.useEffect((()=>{for(const n of $i){const l=e[n];l!==d.current[n]&&(void 0!==e[n]&&("nodes"===n?t(l):"edges"===n?o(l):"minZoom"===n?r(l):"maxZoom"===n?i(l):"translateExtent"===n?a(l):"nodeExtent"===n?s(l):"fitView"===n?u.setState({fitViewOnInit:l}):"fitViewOptions"===n?u.setState({fitViewOnInitOptions:l}):u.setState({[n]:l})))}d.current=e}),$i.map((t=>e[t]))),null}function ji(){return"undefined"!=typeof window&&window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)"):null}const Vi="undefined"!=typeof document?document:null;function Hi(e=null,t={target:Vi,actInsideInputWithModifier:!0}){const[o,r]=n.useState(!1),i=n.useRef(!1),a=n.useRef(new Set([])),[s,l]=n.useMemo((()=>{if(null!==e){const t=(Array.isArray(e)?e:[e]).filter((e=>"string"==typeof e)).map((e=>e.split("+"))),n=t.reduce(((e,t)=>e.concat(...t)),[]);return[t,n]}return[[],[]]}),[e]);return n.useEffect((()=>{const n=t?.target||Vi;if(null!==e){const e=e=>{i.current=e.ctrlKey||e.metaKey||e.shiftKey;if((!i.current||i.current&&!t.actInsideInputWithModifier)&&Wo(e))return!1;const n=Yi(e.code,l);a.current.add(e[n]),Xi(s,a.current,!1)&&(e.preventDefault(),r(!0))},o=e=>{if((!i.current||i.current&&!t.actInsideInputWithModifier)&&Wo(e))return!1;const n=Yi(e.code,l);Xi(s,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[n]),"Meta"===e.key&&a.current.clear(),i.current=!1},c=()=>{a.current.clear(),r(!1)};return n?.addEventListener("keydown",e),n?.addEventListener("keyup",o),window.addEventListener("blur",c),window.addEventListener("contextmenu",c),()=>{n?.removeEventListener("keydown",e),n?.removeEventListener("keyup",o),window.removeEventListener("blur",c),window.removeEventListener("contextmenu",c)}}}),[e,r]),o}function Xi(e,t,n){return e.filter((e=>n||e.length===t.size)).some((e=>e.every((e=>t.has(e)))))}function Yi(e,t){return t.includes(e)?"code":"key"}const Zi=()=>{const e=pi();return n.useMemo((()=>({zoomIn:t=>e.getState().panZoom?.scaleBy(1.2,{duration:t?.duration}),zoomOut:t=>e.getState().panZoom?.scaleBy(1/1.2,{duration:t?.duration}),zoomTo:(t,n)=>e.getState().panZoom?.scaleTo(t,{duration:n?.duration}),getZoom:()=>e.getState().transform[2],setViewport:(t,n)=>{const{transform:[o,r,i],panZoom:a}=e.getState();a?.setViewport({x:t.x??o,y:t.y??r,zoom:t.zoom??i},{duration:n?.duration})},getViewport:()=>{const[t,n,o]=e.getState().transform;return{x:t,y:n,zoom:o}},fitView:t=>{const{nodeLookup:n,width:o,height:r,nodeOrigin:i,minZoom:a,maxZoom:s,panZoom:l}=e.getState();return!!l&&mo({nodeLookup:n,width:o,height:r,nodeOrigin:i,minZoom:a,maxZoom:s,panZoom:l},t)},setCenter:(t,n,o)=>{const{width:r,height:i,maxZoom:a,panZoom:s}=e.getState(),l=void 0!==o?.zoom?o.zoom:a,c=r/2-t*l,u=i/2-n*l;s?.setViewport({x:c,y:u,zoom:l},{duration:o?.duration})},fitBounds:(t,n)=>{const{width:o,height:r,minZoom:i,maxZoom:a,panZoom:s}=e.getState(),l=$o(t,o,r,i,a,n?.padding??.1);s?.setViewport(l,{duration:n?.duration})},screenToFlowPosition:(t,n={snapToGrid:!0})=>{const{transform:o,snapGrid:r,domNode:i}=e.getState();if(!i)return t;const{x:a,y:s}=i.getBoundingClientRect(),l={x:t.x-a,y:t.y-s};return Ro(l,o,n.snapToGrid,r)},flowToScreenPosition:t=>{const{transform:n,domNode:o}=e.getState();if(!o)return t;const{x:r,y:i}=o.getBoundingClientRect(),a=Do(t,n);return{x:a.x+r,y:a.y+i}}})),[])};function Wi(e,t){const n=[],o=new Map;for(const t of e)if("add"!==t.type)if("remove"===t.type||"replace"===t.type)o.set(t.id,[t]);else{const e=o.get(t.id);e?e.push(t):o.set(t.id,[t])}else n.push(t.item);for(const e of t){const t=o.get(e.id);if(!t){n.push(e);continue}if("remove"===t[0].type)continue;if("replace"===t[0].type){n.push({...t[0].item});continue}const r={...e};for(const e of t)Fi(e,r);n.push(r)}return n}function Fi(e,t){switch(e.type){case"select":t.selected=e.selected;break;case"position":void 0!==e.position&&(t.position=e.position),void 0!==e.dragging&&(t.dragging=e.dragging);break;case"dimensions":void 0!==e.dimensions&&(t.measured??={},t.measured.width=e.dimensions.width,t.measured.height=e.dimensions.height,e.setAttributes&&(t.width=e.dimensions.width,t.height=e.dimensions.height)),"boolean"==typeof e.resizing&&(t.resizing=e.resizing)}}function Ki(e,t){return Wi(e,t)}function Gi(e,t){return Wi(e,t)}function qi(e,t){return{id:e,type:"select",selected:t}}function Ui(e,t=new Set,n=!1){const o=[];for(const[r,i]of e){const e=t.has(r);void 0===i.selected&&!e||i.selected===e||(n&&(i.selected=e),o.push(qi(i.id,e)))}return o}function Qi({items:e=[],lookup:t}){const n=[],o=new Map(e.map((e=>[e.id,e])));for(const o of e){const e=t.get(o.id),r=e?.internals?.userNode??e;void 0!==r&&r!==o&&n.push({id:o.id,item:o,type:"replace"}),void 0===r&&n.push({item:o,type:"add"})}for(const[e]of t){void 0===o.get(e)&&n.push({id:e,type:"remove"})}return n}function Ji(e){return{id:e.id,type:"remove"}}const ea=e=>(e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e))(e),ta=e=>co(e);function na(e){return n.forwardRef(e)}const oa="undefined"!=typeof window?n.useLayoutEffect:n.useEffect;function ra(e){const[t,o]=n.useState(!1),[r]=n.useState((()=>function(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}((()=>o(!0)))));return oa((()=>{if(!t)return void r.reset();const n=r.get();n.length&&(e(n),r.reset()),o(!1)}),[t]),r}const ia=n.createContext(null);function aa({children:e}){const o=pi(),r=ra(n.useCallback((e=>{const{nodes:t=[],setNodes:n,hasDefaultNodes:r,onNodesChange:i,nodeLookup:a}=o.getState();let s=t;for(const t of e)s="function"==typeof t?t(s):t;r?n(s):i&&i(Qi({items:s,lookup:a}))}),[])),i=ra(n.useCallback((e=>{const{edges:t=[],setEdges:n,hasDefaultEdges:r,onEdgesChange:i,edgeLookup:a}=o.getState();let s=t;for(const t of e)s="function"==typeof t?t(s):t;r?n(s):i&&i(Qi({items:s,lookup:a}))}),[])),a=n.useMemo((()=>({nodeQueue:r,edgeQueue:i})),[]);return t.jsx(ia.Provider,{value:a,children:e})}const sa=e=>!!e.panZoom;function la(){const e=Zi(),t=pi(),o=function(){const e=n.useContext(ia);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}(),r=gi(sa),i=n.useMemo((()=>{const e=e=>t.getState().nodeLookup.get(e),n=e=>{o.nodeQueue.push(e)},r=e=>{o.edgeQueue.push(e)},i=e=>{const{nodeLookup:n,nodeOrigin:o}=t.getState(),r=ea(e)?e:n.get(e.id),i=r.parentId?Vo(r.position,r.parentId,n,o):r.position,a={id:r.id,position:i,width:r.measured?.width??r.width,height:r.measured?.height??r.height,data:r.data};return _o(a)},a=(e,t,o={replace:!1})=>{n((n=>n.map((n=>{if(n.id===e){const e="function"==typeof t?t(n):t;return o.replace&&ea(e)?e:{...n,...e}}return n}))))},s=(e,t,n={replace:!1})=>{r((o=>o.map((o=>{if(o.id===e){const e="function"==typeof t?t(o):t;return n.replace&&ta(e)?e:{...o,...e}}return o}))))};return{getNodes:()=>t.getState().nodes.map((e=>({...e}))),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{const{edges:e=[]}=t.getState();return e.map((e=>({...e})))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:n,setEdges:r,addNodes:e=>{const t=Array.isArray(e)?e:[e];o.nodeQueue.push((e=>[...e,...t]))},addEdges:e=>{const t=Array.isArray(e)?e:[e];o.edgeQueue.push((e=>[...e,...t]))},toObject:()=>{const{nodes:e=[],edges:n=[],transform:o}=t.getState(),[r,i,a]=o;return{nodes:e.map((e=>({...e}))),edges:n.map((e=>({...e}))),viewport:{x:r,y:i,zoom:a}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{const{nodes:o,edges:r,onNodesDelete:i,onEdgesDelete:a,triggerNodeChanges:s,triggerEdgeChanges:l,onDelete:c,onBeforeDelete:u}=t.getState(),{nodes:d,edges:h}=await async function({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:o,onBeforeDelete:r}){const i=new Set(e.map((e=>e.id))),a=[];for(const e of n){if(!1===e.deletable)continue;const t=i.has(e.id),n=!t&&e.parentId&&a.find((t=>t.id===e.parentId));(t||n)&&a.push(e)}const s=new Set(t.map((e=>e.id))),l=o.filter((e=>!1!==e.deletable)),c=po(a,l);for(const e of l)s.has(e.id)&&!c.find((t=>t.id===e.id))&&c.push(e);if(!r)return{edges:c,nodes:a};const u=await r({nodes:a,edges:c});return"boolean"==typeof u?u?{edges:c,nodes:a}:{edges:[],nodes:[]}:u}({nodesToRemove:e,edgesToRemove:n,nodes:o,edges:r,onBeforeDelete:u}),f=h.length>0,g=d.length>0;if(f){const e=h.map(Ji);a?.(h),l(e)}if(g){const e=d.map(Ji);i?.(d),s(e)}return(g||f)&&c?.({nodes:d,edges:h}),{deletedNodes:d,deletedEdges:h}},getIntersectingNodes:(e,n=!0,o)=>{const r=Po(e),a=r?e:i(e),s=void 0!==o;return a?(o||t.getState().nodes).filter((o=>{const i=t.getState().nodeLookup.get(o.id);if(i&&!r&&(o.id===e.id||!i.internals.positionAbsolute))return!1;const l=_o(s?o:i),c=ko(l,a);return n&&c>0||c>=a.width*a.height})):[]},isNodeIntersecting:(e,t,n=!0)=>{const o=Po(e)?e:i(e);if(!o)return!1;const r=ko(o,t);return n&&r>0||r>=o.width*o.height},updateNode:a,updateNodeData:(e,t,n={replace:!1})=>{a(e,(e=>{const o="function"==typeof t?t(e):t;return n.replace?{...e,data:o}:{...e,data:{...e.data,...o}}}),n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,(e=>{const o="function"==typeof t?t(e):t;return n.replace?{...e,data:o}:{...e,data:{...e.data,...o}}}),n)}}}),[]);return n.useMemo((()=>({...i,...e,viewportInitialized:r})),[r])}const ca=e=>e.selected,ua={actInsideInputWithModifier:!1};const da={position:"absolute",width:"100%",height:"100%",top:0,left:0},ha=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib});function fa({onPaneContextMenu:o,zoomOnScroll:r=!0,zoomOnPinch:i=!0,panOnScroll:a=!1,panOnScrollSpeed:s=.5,panOnScrollMode:l=e.PanOnScrollMode.Free,zoomOnDoubleClick:c=!0,panOnDrag:u=!0,defaultViewport:d,translateExtent:h,minZoom:f,maxZoom:g,zoomActivationKeyCode:p,preventScrolling:m=!0,children:y,noWheelClassName:v,noPanClassName:x,onViewportChange:w,isControlledViewport:b}){const S=pi(),E=n.useRef(null),{userSelectionActive:C,lib:_}=gi(ha,Ni),M=Hi(p),N=n.useRef();return function(e){const t=pi();n.useEffect((()=>{const n=()=>{if(!e.current)return!1;const n=Xo(e.current);0!==n.height&&0!==n.width||t.getState().onError?.("004",Qn.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener("resize",n);const t=new ResizeObserver((()=>n()));return t.observe(e.current),()=>{window.removeEventListener("resize",n),t&&e.current&&t.unobserve(e.current)}}}),[])}(E),n.useEffect((()=>{if(E.current){N.current=Br({domNode:E.current,minZoom:f,maxZoom:g,translateExtent:h,viewport:d,onTransformChange:e=>{w?.({x:e[0],y:e[1],zoom:e[2]}),b||S.setState({transform:e})},onDraggingChange:e=>S.setState({paneDragging:e}),onPanZoomStart:(e,t)=>{const{onViewportChangeStart:n,onMoveStart:o}=S.getState();o?.(e,t),n?.(t)},onPanZoom:(e,t)=>{const{onViewportChange:n,onMove:o}=S.getState();o?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{const{onViewportChangeEnd:n,onMoveEnd:o}=S.getState();o?.(e,t),n?.(t)}});const{x:e,y:t,zoom:n}=N.current.getViewport();return S.setState({panZoom:N.current,transform:[e,t,n],domNode:E.current.closest(".react-flow")}),()=>{N.current?.destroy()}}}),[]),n.useEffect((()=>{N.current?.update({onPaneContextMenu:o,zoomOnScroll:r,zoomOnPinch:i,panOnScroll:a,panOnScrollSpeed:s,panOnScrollMode:l,zoomOnDoubleClick:c,panOnDrag:u,zoomActivationKeyPressed:M,preventScrolling:m,noPanClassName:x,userSelectionActive:C,noWheelClassName:v,lib:_})}),[o,r,i,a,s,l,c,u,M,m,x,C,v,_]),t.jsx("div",{className:"react-flow__renderer",ref:E,style:da,children:y})}const ga=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function pa(){const{userSelectionActive:e,userSelectionRect:n}=gi(ga,Ni);return e&&n?t.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:n.width,height:n.height,transform:`translate(${n.x}px, ${n.y}px)`}}):null}const ma=(e,t)=>n=>{n.target===t.current&&e?.(n)},ya=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging});function va({isSelecting:o,selectionKeyPressed:i,selectionMode:a=e.SelectionMode.Full,panOnDrag:s,onSelectionStart:l,onSelectionEnd:c,onPaneClick:u,onPaneContextMenu:d,onPaneScroll:h,onPaneMouseEnter:f,onPaneMouseMove:g,onPaneMouseLeave:p,children:m}){const y=n.useRef(null),v=pi(),x=n.useRef(0),w=n.useRef(0),b=n.useRef(),S=n.useRef(new Map),{userSelectionActive:E,elementsSelectable:C,dragging:_}=gi(ya,Ni),M=C&&(o||E),N=n.useRef(!1),k=e=>{N.current?N.current=!1:(u?.(e),v.getState().resetSelectedElements(),v.setState({nodesSelectionActive:!1}))},P=h?e=>h(e):void 0;return t.jsxs("div",{className:r(["react-flow__pane",{draggable:s,dragging:_,selection:o}]),onClick:M?void 0:ma(k,y),onContextMenu:ma((e=>{Array.isArray(s)&&s?.includes(2)?e.preventDefault():d?.(e)}),y),onWheel:ma(P,y),onPointerEnter:M?void 0:f,onPointerDown:M?e=>{const{resetSelectedElements:t,domNode:n,edgeLookup:r}=v.getState();if(b.current=n?.getBoundingClientRect(),y.current?.setPointerCapture(e.pointerId),!C||!o||0!==e.button||e.target!==y.current||!b.current)return;S.current=new Map;for(const[e,t]of r)S.current.set(t.source,S.current.get(t.source)?.add(e)||new Set([e])),S.current.set(t.target,S.current.get(t.target)?.add(e)||new Set([e]));const{x:i,y:a}=Ko(e.nativeEvent,b.current);t(),v.setState({userSelectionRect:{width:0,height:0,startX:i,startY:a,x:i,y:a}}),l?.(e)}:g,onPointerMove:M?t=>{const{userSelectionRect:n,edgeLookup:o,transform:r,nodeOrigin:i,nodeLookup:s,triggerNodeChanges:l,triggerEdgeChanges:c}=v.getState();if(!b.current||!n)return;N.current=!0;const{x:u,y:d}=Ko(t.nativeEvent,b.current),{startX:h,startY:f}=n,g={startX:h,startY:f,x:u<h?u:h,y:d<f?d:f,width:Math.abs(u-h),height:Math.abs(d-f)},p=go(s,g,r,a===e.SelectionMode.Partial,!0,i),m=new Set,y=new Set;for(const e of p){y.add(e.id);const t=S.current.get(e.id);if(t)for(const e of t)m.add(e)}if(x.current!==y.size){x.current=y.size;l(Ui(s,y,!0))}if(w.current!==m.size){w.current=m.size;c(Ui(o,m))}v.setState({userSelectionRect:g,userSelectionActive:!0,nodesSelectionActive:!1})}:g,onPointerUp:M?e=>{if(0!==e.button)return;y.current?.releasePointerCapture(e.pointerId);const{userSelectionRect:t}=v.getState();!E&&t&&e.target===y.current&&k?.(e),v.setState({nodesSelectionActive:x.current>0}),v.setState({userSelectionActive:!1,userSelectionRect:null}),x.current=0,w.current=0,c?.(e),i&&(N.current=!1)}:void 0,onPointerLeave:p,ref:y,style:da,children:[m,t.jsx(pa,{})]})}function xa({id:e,store:t,unselect:n=!1,nodeRef:o}){const{addSelectedNodes:r,unselectNodesAndEdges:i,multiSelectionActive:a,nodeLookup:s,onError:l}=t.getState(),c=s.get(e);c?(t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&a)&&(i({nodes:[c],edges:[]}),requestAnimationFrame((()=>o?.current?.blur()))):r([e])):l?.("012",Qn.error012(e))}function wa({nodeRef:e,disabled:t=!1,noDragClassName:o,handleSelector:r,nodeId:i,isSelectable:a}){const s=pi(),[l,c]=n.useState(!1),u=n.useRef();return n.useEffect((()=>{u.current=Cr({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{xa({id:t,store:s,nodeRef:e})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}})}),[]),n.useEffect((()=>{if(t)u.current?.destroy();else if(e.current)return u.current?.update({noDragClassName:o,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i}),()=>{u.current?.destroy()}}),[o,r,t,a,e,i]),l}const ba=e=>t=>t.selected&&(t.draggable||e&&void 0===t.draggable);function Sa(){const e=pi();return n.useCallback((t=>{const{nodeExtent:n,snapToGrid:o,snapGrid:r,nodesDraggable:i,onError:a,updateNodePositions:s,nodeLookup:l,nodeOrigin:c}=e.getState(),u=new Map,d=ba(i),h=o?r[0]:5,f=o?r[1]:5,g=t.direction.x*h*t.factor,p=t.direction.y*f*t.factor;for(const[,e]of l){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+g,y:e.internals.positionAbsolute.y+p};o&&(t=Ao(t,r));const{position:i,positionAbsolute:s}=yo({nodeId:e.id,nextPosition:t,nodeLookup:l,nodeExtent:n,nodeOrigin:c,onError:a});e.position=i,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)}),[])}const Ea=n.createContext(null),Ca=Ea.Provider;Ea.Consumer;const _a=()=>n.useContext(Ea),Ma=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId});const Na=n.memo(na((function({type:n="source",position:o=e.Position.Top,isValidConnection:i,isConnectable:a=!0,isConnectableStart:s=!0,isConnectableEnd:l=!0,id:c,onConnect:u,children:d,className:h,onMouseDown:f,onTouchStart:g,...p},m){const y=c||null,v="target"===n,x=pi(),w=_a(),{connectOnClick:b,noPanClassName:S,rfId:E}=gi(Ma,Ni),{connectingFrom:C,connectingTo:_,clickConnecting:M,isPossibleEndHandle:N,connectionInProcess:k,valid:P}=gi(((t,n,o)=>r=>{const{connectionStartHandle:i,connectionEndHandle:a,connectionClickStartHandle:s,connectionMode:l,connectionStatus:c}=r,u=a?.nodeId===t&&a?.handleId===n&&a?.type===o;return{connectingFrom:i?.nodeId===t&&i?.handleId===n&&i?.type===o,connectingTo:u,clickConnecting:s?.nodeId===t&&s?.handleId===n&&s?.type===o,isPossibleEndHandle:l===e.ConnectionMode.Strict?i?.type!==o:t!==i?.nodeId||n!==i?.handleId,connectionInProcess:!!i,valid:u&&"valid"===c}})(w,y,n),Ni);w||x.getState().onError?.("010",Qn.error010());const z=e=>{const{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:o}=x.getState(),r={...t,...e};if(o){const{edges:e,setEdges:t}=x.getState();t(or(r,e))}n?.(r),u?.(r)},O=e=>{if(!w)return;const t=Fo(e.nativeEvent);if(s&&(t&&0===e.button||!t)){const t=x.getState();Or.onPointerDown(e.nativeEvent,{autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:v,handleId:y,nodeId:w,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:t.onConnectEnd,updateConnection:t.updateConnection,onConnect:z,isValidConnection:i||t.isValidConnection,getTransform:()=>x.getState().transform,getConnectionStartHandle:()=>x.getState().connectionStartHandle})}t?f?.(e):g?.(e)};return t.jsx("div",{"data-handleid":y,"data-nodeid":w,"data-handlepos":o,"data-id":`${E}-${w}-${y}-${n}`,className:r(["react-flow__handle",`react-flow__handle-${o}`,"nodrag",S,h,{source:!v,target:v,connectable:a,connectablestart:s,connectableend:l,clickconnecting:M,connectingfrom:C,connectingto:_,valid:P,connectionindicator:a&&(!k||N)&&(k?l:s)}]),onMouseDown:O,onTouchStart:O,onClick:b?e=>{const{onClickConnectStart:t,onClickConnectEnd:o,connectionClickStartHandle:r,connectionMode:a,isValidConnection:l,lib:c,rfId:u}=x.getState();if(!w||!r&&!s)return;if(!r)return t?.(e.nativeEvent,{nodeId:w,handleId:y,handleType:n}),void x.setState({connectionClickStartHandle:{nodeId:w,type:n,handleId:y}});const d=Yo(e.target),h=i||l,{connection:f,isValid:g}=Or.isValid(e.nativeEvent,{handle:{nodeId:w,id:y,type:n},connectionMode:a,fromNodeId:r.nodeId,fromHandleId:r.handleId||null,fromType:r.type,isValidConnection:h,flowId:u,doc:d,lib:c});g&&f&&z(f),o?.(e),x.setState({connectionClickStartHandle:null})}:void 0,ref:m,...p,children:d})})));const ka={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},Pa={input:function({data:n,isConnectable:o,sourcePosition:r=e.Position.Bottom}){return t.jsxs(t.Fragment,{children:[n?.label,t.jsx(Na,{type:"source",position:r,isConnectable:o})]})},default:function({data:n,isConnectable:o,targetPosition:r=e.Position.Top,sourcePosition:i=e.Position.Bottom}){return t.jsxs(t.Fragment,{children:[t.jsx(Na,{type:"target",position:r,isConnectable:o}),n?.label,t.jsx(Na,{type:"source",position:i,isConnectable:o})]})},output:function({data:n,isConnectable:o,targetPosition:r=e.Position.Top}){return t.jsxs(t.Fragment,{children:[t.jsx(Na,{type:"target",position:r,isConnectable:o}),n?.label]})},group:function(){return null}};const za=e=>{const{width:t,height:n,x:o,y:r}=fo(e.nodeLookup,{nodeOrigin:e.nodeOrigin,filter:e=>!!e.selected});return{width:zo(t)?t:null,height:zo(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${o}px,${r}px)`}};function Oa({onSelectionContextMenu:e,noPanClassName:o,disableKeyboardA11y:i}){const a=pi(),{width:s,height:l,transformString:c,userSelectionActive:u}=gi(za,Ni),d=Sa(),h=n.useRef(null);if(n.useEffect((()=>{i||h.current?.focus({preventScroll:!0})}),[i]),wa({nodeRef:h}),u||!s||!l)return null;const f=e?t=>{const n=a.getState().nodes.filter((e=>e.selected));e(t,n)}:void 0;return t.jsx("div",{className:r(["react-flow__nodesselection","react-flow__container",o]),style:{transform:c},children:t.jsx("div",{ref:h,className:"react-flow__nodesselection-rect",onContextMenu:f,tabIndex:i?void 0:-1,onKeyDown:i?void 0:e=>{Object.prototype.hasOwnProperty.call(ka,e.key)&&d({direction:ka[e.key],factor:e.shiftKey?4:1})},style:{width:s,height:l}})})}const Ia=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Aa({children:e,onPaneClick:o,onPaneMouseEnter:r,onPaneMouseMove:i,onPaneMouseLeave:a,onPaneContextMenu:s,onPaneScroll:l,deleteKeyCode:c,selectionKeyCode:u,selectionOnDrag:d,selectionMode:h,onSelectionStart:f,onSelectionEnd:g,multiSelectionKeyCode:p,panActivationKeyCode:m,zoomActivationKeyCode:y,elementsSelectable:v,zoomOnScroll:x,zoomOnPinch:w,panOnScroll:b,panOnScrollSpeed:S,panOnScrollMode:E,zoomOnDoubleClick:C,panOnDrag:_,defaultViewport:M,translateExtent:N,minZoom:k,maxZoom:P,preventScrolling:z,onSelectionContextMenu:O,noWheelClassName:I,noPanClassName:A,disableKeyboardA11y:R,onViewportChange:D,isControlledViewport:$}){const{nodesSelectionActive:L,userSelectionActive:T}=gi(Ia),B=Hi(u,{target:window}),j=Hi(m,{target:window}),V=j||_,H=j||b,X=B||T||d&&!0!==V;return function({deleteKeyCode:e,multiSelectionKeyCode:t}){const o=pi(),{deleteElements:r}=la(),i=Hi(e,ua),a=Hi(t,{target:window});n.useEffect((()=>{if(i){const{edges:e,nodes:t}=o.getState();r({nodes:t.filter(ca),edges:e.filter(ca)}),o.setState({nodesSelectionActive:!1})}}),[i]),n.useEffect((()=>{o.setState({multiSelectionActive:a})}),[a])}({deleteKeyCode:c,multiSelectionKeyCode:p}),t.jsx(fa,{onPaneContextMenu:s,elementsSelectable:v,zoomOnScroll:x,zoomOnPinch:w,panOnScroll:H,panOnScrollSpeed:S,panOnScrollMode:E,zoomOnDoubleClick:C,panOnDrag:!B&&V,defaultViewport:M,translateExtent:N,minZoom:k,maxZoom:P,zoomActivationKeyCode:y,preventScrolling:z,noWheelClassName:I,noPanClassName:A,onViewportChange:D,isControlledViewport:$,children:t.jsxs(va,{onSelectionStart:f,onSelectionEnd:g,onPaneClick:o,onPaneMouseEnter:r,onPaneMouseMove:i,onPaneMouseLeave:a,onPaneContextMenu:s,onPaneScroll:l,panOnDrag:V,isSelecting:!!X,selectionMode:h,selectionKeyPressed:B,children:[e,L&&t.jsx(Oa,{onSelectionContextMenu:O,noPanClassName:A,disableKeyboardA11y:R})]})})}Aa.displayName="FlowRenderer";const Ra=n.memo(Aa),Da=e=>t=>e?go(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map((e=>e.id)):Array.from(t.nodeLookup.keys());const $a=e=>e.updateNodeInternals;function La({id:e,onClick:o,onMouseEnter:i,onMouseMove:a,onMouseLeave:s,onContextMenu:l,onDoubleClick:c,nodesDraggable:u,elementsSelectable:d,nodesConnectable:h,nodesFocusable:f,resizeObserver:g,noDragClassName:p,noPanClassName:m,disableKeyboardA11y:y,rfId:v,nodeTypes:x,nodeExtent:w,nodeOrigin:b,onError:S}){const{node:E,internals:C,isParent:_}=gi((t=>{const n=t.nodeLookup.get(e),o=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:o}}),Ni);let M=E.type||"default",N=x?.[M]||Pa[M];void 0===N&&(S?.("003",Qn.error003(M)),M="default",N=Pa.default);const k=!!(E.draggable||u&&void 0===E.draggable),P=!!(E.selectable||d&&void 0===E.selectable),z=!!(E.connectable||h&&void 0===E.connectable),O=!!(E.focusable||f&&void 0===E.focusable),I=pi(),A=jo(E),R=function({node:e,nodeType:t,hasDimensions:o,resizeObserver:r}){const i=pi(),a=n.useRef(null),s=n.useRef(null),l=n.useRef(e.sourcePosition),c=n.useRef(e.targetPosition),u=n.useRef(t),d=o&&!!e.internals.handleBounds;return n.useEffect((()=>{!a.current||e.hidden||d&&s.current===a.current||(s.current&&r?.unobserve(s.current),r?.observe(a.current),s.current=a.current)}),[d,e.hidden]),n.useEffect((()=>()=>{s.current&&(r?.unobserve(s.current),s.current=null)}),[]),n.useEffect((()=>{if(a.current){const n=u.current!==t,o=l.current!==e.sourcePosition,r=c.current!==e.targetPosition;(n||o||r)&&(u.current=t,l.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}}),[e.id,t,e.sourcePosition,e.targetPosition]),a}({node:E,nodeType:M,hasDimensions:A,resizeObserver:g}),D=wa({nodeRef:R,disabled:E.hidden||!k,noDragClassName:p,handleSelector:E.dragHandle,nodeId:e,isSelectable:P}),$=Sa();if(E.hidden)return null;const L=Bo(E),T=function(e){return void 0===e.internals.handleBounds?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}(E),B=w?xo(C.positionAbsolute,w):C.positionAbsolute,j=Io({...B,...L,origin:E.origin||b}),V=P||k||o||i||a||s,H=i?e=>i(e,{...C.userNode}):void 0,X=a?e=>a(e,{...C.userNode}):void 0,Y=s?e=>s(e,{...C.userNode}):void 0,Z=l?e=>l(e,{...C.userNode}):void 0,W=c?e=>c(e,{...C.userNode}):void 0;return t.jsx("div",{className:r(["react-flow__node",`react-flow__node-${M}`,{[m]:k},E.className,{selected:E.selected,selectable:P,parent:_,draggable:k,dragging:D}]),ref:R,style:{zIndex:C.z,transform:`translate(${j.x}px,${j.y}px)`,pointerEvents:V?"all":"none",visibility:A?"visible":"hidden",...E.style,...T},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:H,onMouseMove:X,onMouseLeave:Y,onContextMenu:Z,onClick:t=>{const{selectNodesOnDrag:n,nodeDragThreshold:r}=I.getState();P&&(!n||!k||r>0)&&xa({id:e,store:I,nodeRef:R}),o&&o(t,{...C.userNode})},onDoubleClick:W,onKeyDown:O?t=>{if(!Wo(t.nativeEvent)&&!y)if(eo.includes(t.key)&&P){const n="Escape"===t.key;xa({id:e,store:I,unselect:n,nodeRef:R})}else k&&E.selected&&Object.prototype.hasOwnProperty.call(ka,t.key)&&(I.setState({ariaLiveMessage:`Moved selected node ${t.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~B.x}, y: ${~~B.y}`}),$({direction:ka[t.key],factor:t.shiftKey?4:1}))}:void 0,tabIndex:O?0:void 0,role:O?"button":void 0,"aria-describedby":y?void 0:`${vi}-${v}`,"aria-label":E.ariaLabel,children:t.jsx(Ca,{value:e,children:t.jsx(N,{id:e,data:E.data,type:M,positionAbsoluteX:B.x,positionAbsoluteY:B.y,selected:E.selected,selectable:P,draggable:k,deletable:E.deletable??!0,isConnectable:z,sourcePosition:E.sourcePosition,targetPosition:E.targetPosition,dragging:D,dragHandle:E.dragHandle,zIndex:C.z,parentId:E.parentId,...L})})})}const Ta=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Ba(e){const{nodesDraggable:o,nodesConnectable:r,nodesFocusable:i,elementsSelectable:a,onError:s}=gi(Ta,Ni),l=(c=e.onlyRenderVisibleElements,gi(n.useCallback(Da(c),[c]),Ni));var c;const u=function(){const e=gi($a),[t]=n.useState((()=>"undefined"==typeof ResizeObserver?null:new ResizeObserver((t=>{const n=new Map;t.forEach((e=>{const t=e.target.getAttribute("data-id");n.set(t,{id:t,nodeElement:e.target,force:!0})})),e(n)}))));return n.useEffect((()=>()=>{t?.disconnect()}),[t]),t}();return t.jsx("div",{className:"react-flow__nodes",style:da,children:l.map((n=>t.jsx(La,{id:n,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,nodeOrigin:e.nodeOrigin,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:u,nodesDraggable:o,nodesConnectable:r,nodesFocusable:i,elementsSelectable:a,onError:s},n)))})}Ba.displayName="NodeRenderer";const ja=n.memo(Ba);const Va={[e.MarkerType.Arrow]:({color:e="none",strokeWidth:n=1})=>t.jsx("polyline",{style:{stroke:e,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),[e.MarkerType.ArrowClosed]:({color:e="none",strokeWidth:n=1})=>t.jsx("polyline",{style:{stroke:e,fill:e,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})};const Ha=({id:e,type:o,color:r,width:i=12.5,height:a=12.5,markerUnits:s="strokeWidth",strokeWidth:l,orient:c="auto-start-reverse"})=>{const u=function(e){const t=pi();return n.useMemo((()=>Object.prototype.hasOwnProperty.call(Va,e)?Va[e]:(t.getState().onError?.("009",Qn.error009(e)),null)),[e])}(o);return u?t.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${i}`,markerHeight:`${a}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:c,refX:"0",refY:"0",children:t.jsx(u,{color:r,strokeWidth:l})}):null},Xa=({defaultColor:e,rfId:o})=>{const r=gi((e=>e.edges)),i=gi((e=>e.defaultEdgeOptions)),a=n.useMemo((()=>{const t=function(e,{id:t,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:r}){const i=new Set;return e.reduce(((e,a)=>([a.markerStart||o,a.markerEnd||r].forEach((o=>{if(o&&"object"==typeof o){const r=fr(o,t);i.has(r)||(e.push({id:r,color:o.color||n,...o}),i.add(r))}})),e)),[]).sort(((e,t)=>e.id.localeCompare(t.id)))}(r,{id:o,defaultColor:e,defaultMarkerStart:i?.markerStart,defaultMarkerEnd:i?.markerEnd});return t}),[r,i,o,e]);return a.length?t.jsx("svg",{className:"react-flow__marker",children:t.jsx("defs",{children:a.map((e=>t.jsx(Ha,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id)))})}):null};Xa.displayName="MarkerDefinitions";var Ya=n.memo(Xa);function Za({x:e,y:o,label:i,labelStyle:a={},labelShowBg:s=!0,labelBgStyle:l={},labelBgPadding:c=[2,4],labelBgBorderRadius:u=2,children:d,className:h,...f}){const[g,p]=n.useState({x:1,y:0,width:0,height:0}),m=r(["react-flow__edge-textwrapper",h]),y=n.useRef(null);return n.useEffect((()=>{if(y.current){const e=y.current.getBBox();p({x:e.x,y:e.y,width:e.width,height:e.height})}}),[i]),void 0!==i&&i?t.jsxs("g",{transform:`translate(${e-g.width/2} ${o-g.height/2})`,className:m,visibility:g.width?"visible":"hidden",...f,children:[s&&t.jsx("rect",{width:g.width+2*c[0],x:-c[0],y:-c[1],height:g.height+2*c[1],className:"react-flow__edge-textbg",style:l,rx:u,ry:u}),t.jsx("text",{className:"react-flow__edge-text",y:g.height/2,dy:"0.3em",ref:y,style:a,children:i}),d]}):null}Za.displayName="EdgeText";const Wa=n.memo(Za);function Fa({id:e,path:n,labelX:o,labelY:i,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:h,markerEnd:f,markerStart:g,className:p,interactionWidth:m=20}){return t.jsxs(t.Fragment,{children:[t.jsx("path",{id:e,style:h,d:n,fill:"none",className:r(["react-flow__edge-path",p]),markerEnd:f,markerStart:g}),m&&t.jsx("path",{d:n,fill:"none",strokeOpacity:0,strokeWidth:m,className:"react-flow__edge-interaction"}),a&&zo(o)&&zo(i)?t.jsx(Wa,{x:o,y:i,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d}):null]})}function Ka({pos:t,x1:n,y1:o,x2:r,y2:i}){return t===e.Position.Left||t===e.Position.Right?[.5*(n+r),o]:[n,.5*(o+i)]}function Ga({sourceX:t,sourceY:n,sourcePosition:o=e.Position.Bottom,targetX:r,targetY:i,targetPosition:a=e.Position.Top}){const[s,l]=Ka({pos:o,x1:t,y1:n,x2:r,y2:i}),[c,u]=Ka({pos:a,x1:r,y1:i,x2:t,y2:n}),[d,h,f,g]=qo({sourceX:t,sourceY:n,targetX:r,targetY:i,sourceControlX:s,sourceControlY:l,targetControlX:c,targetControlY:u});return[`M${t},${n} C${s},${l} ${c},${u} ${r},${i}`,d,h,f,g]}function qa(o){return n.memo((({id:n,sourceX:r,sourceY:i,targetX:a,targetY:s,sourcePosition:l=e.Position.Bottom,targetPosition:c=e.Position.Top,label:u,labelStyle:d,labelShowBg:h,labelBgStyle:f,labelBgPadding:g,labelBgBorderRadius:p,style:m,markerEnd:y,markerStart:v,interactionWidth:x})=>{const[w,b,S]=Ga({sourceX:r,sourceY:i,sourcePosition:l,targetX:a,targetY:s,targetPosition:c}),E=o.isInternal?void 0:n;return t.jsx(Fa,{id:E,path:w,labelX:b,labelY:S,label:u,labelStyle:d,labelShowBg:h,labelBgStyle:f,labelBgPadding:g,labelBgBorderRadius:p,style:m,markerEnd:y,markerStart:v,interactionWidth:x})}))}const Ua=qa({isInternal:!1}),Qa=qa({isInternal:!0});function Ja(o){return n.memo((({id:n,sourceX:r,sourceY:i,targetX:a,targetY:s,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:f,style:g,sourcePosition:p=e.Position.Bottom,targetPosition:m=e.Position.Top,markerEnd:y,markerStart:v,pathOptions:x,interactionWidth:w})=>{const[b,S,E]=lr({sourceX:r,sourceY:i,sourcePosition:p,targetX:a,targetY:s,targetPosition:m,borderRadius:x?.borderRadius,offset:x?.offset}),C=o.isInternal?void 0:n;return t.jsx(Fa,{id:C,path:b,labelX:S,labelY:E,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:f,style:g,markerEnd:y,markerStart:v,interactionWidth:w})}))}Ua.displayName="SimpleBezierEdge",Qa.displayName="SimpleBezierEdgeInternal";const es=Ja({isInternal:!1}),ts=Ja({isInternal:!0});function ns(e){return n.memo((({id:o,...r})=>{const i=e.isInternal?void 0:o;return t.jsx(es,{...r,id:i,pathOptions:n.useMemo((()=>({borderRadius:0,offset:r.pathOptions?.offset})),[r.pathOptions?.offset])})}))}es.displayName="SmoothStepEdge",ts.displayName="SmoothStepEdgeInternal";const os=ns({isInternal:!1}),rs=ns({isInternal:!0});function is(e){return n.memo((({id:n,sourceX:o,sourceY:r,targetX:i,targetY:a,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:f,markerEnd:g,markerStart:p,interactionWidth:m})=>{const[y,v,x]=rr({sourceX:o,sourceY:r,targetX:i,targetY:a}),w=e.isInternal?void 0:n;return t.jsx(Fa,{id:w,path:y,labelX:v,labelY:x,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:f,markerEnd:g,markerStart:p,interactionWidth:m})}))}os.displayName="StepEdge",rs.displayName="StepEdgeInternal";const as=is({isInternal:!1}),ss=is({isInternal:!0});function ls(o){return n.memo((({id:n,sourceX:r,sourceY:i,targetX:a,targetY:s,sourcePosition:l=e.Position.Bottom,targetPosition:c=e.Position.Top,label:u,labelStyle:d,labelShowBg:h,labelBgStyle:f,labelBgPadding:g,labelBgBorderRadius:p,style:m,markerEnd:y,markerStart:v,pathOptions:x,interactionWidth:w})=>{const[b,S,E]=Jo({sourceX:r,sourceY:i,sourcePosition:l,targetX:a,targetY:s,targetPosition:c,curvature:x?.curvature}),C=o.isInternal?void 0:n;return t.jsx(Fa,{id:C,path:b,labelX:S,labelY:E,label:u,labelStyle:d,labelShowBg:h,labelBgStyle:f,labelBgPadding:g,labelBgBorderRadius:p,style:m,markerEnd:y,markerStart:v,interactionWidth:w})}))}as.displayName="StraightEdge",ss.displayName="StraightEdgeInternal";const cs=ls({isInternal:!1}),us=ls({isInternal:!0});cs.displayName="BezierEdge",us.displayName="BezierEdgeInternal";const ds={default:us,straight:ss,step:rs,smoothstep:ts,simplebezier:Qa},hs={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},fs=(t,n,o)=>o===e.Position.Left?t-n:o===e.Position.Right?t+n:t,gs=(t,n,o)=>o===e.Position.Top?t-n:o===e.Position.Bottom?t+n:t,ps="react-flow__edgeupdater";function ms({position:e,centerX:n,centerY:o,radius:i=10,onMouseDown:a,onMouseEnter:s,onMouseOut:l,type:c}){return t.jsx("circle",{onMouseDown:a,onMouseEnter:s,onMouseOut:l,className:r([ps,`${ps}-${c}`]),cx:fs(n,i,e),cy:gs(o,i,e),r:i,stroke:"transparent",fill:"transparent"})}function ys({isReconnectable:e,reconnectRadius:n,edge:o,targetHandleId:r,sourceHandleId:i,sourceX:a,sourceY:s,targetX:l,targetY:c,sourcePosition:u,targetPosition:d,onReconnect:h,onReconnectStart:f,onReconnectEnd:g,setReconnecting:p,setUpdateHover:m}){const y=pi(),v=(e,t)=>{if(0!==e.button)return;const{autoPanOnConnect:n,domNode:a,isValidConnection:s,connectionMode:l,connectionRadius:c,lib:u,onConnectStart:d,onConnectEnd:m,cancelConnection:v,nodeLookup:x,rfId:w,panBy:b,updateConnection:S}=y.getState(),E=t?o.target:o.source,C=(t?r:i)||null,_=t?"target":"source",M=t;p(!0),f?.(e,o,_);Or.onPointerDown(e.nativeEvent,{autoPanOnConnect:n,connectionMode:l,connectionRadius:c,domNode:a,handleId:C,nodeId:E,nodeLookup:x,isTarget:M,edgeUpdaterType:_,lib:u,flowId:w,cancelConnection:v,panBy:b,isValidConnection:s,onConnect:e=>h?.(o,e),onConnectStart:d,onConnectEnd:m,onReconnectEnd:e=>{p(!1),g?.(e,o,_)},updateConnection:S,getTransform:()=>y.getState().transform,getConnectionStartHandle:()=>y.getState().connectionStartHandle})},x=()=>m(!0),w=()=>m(!1);return t.jsxs(t.Fragment,{children:[("source"===e||!0===e)&&t.jsx(ms,{position:u,centerX:a,centerY:s,radius:n,onMouseDown:e=>v(e,!0),onMouseEnter:x,onMouseOut:w,type:"source"}),("target"===e||!0===e)&&t.jsx(ms,{position:d,centerX:l,centerY:c,radius:n,onMouseDown:e=>v(e,!1),onMouseEnter:x,onMouseOut:w,type:"target"})]})}function vs({id:o,edgesFocusable:i,edgesReconnectable:a,elementsSelectable:s,onClick:l,onDoubleClick:c,onContextMenu:u,onMouseEnter:d,onMouseMove:h,onMouseLeave:f,reconnectRadius:g,onReconnect:p,onReconnectStart:m,onReconnectEnd:y,rfId:v,edgeTypes:x,noPanClassName:w,onError:b,disableKeyboardA11y:S}){let E=gi((e=>e.edgeLookup.get(o)));const C=gi((e=>e.defaultEdgeOptions));E=C?{...C,...E}:E;let _=E.type||"default",M=x?.[_]||ds[_];void 0===M&&(b?.("011",Qn.error011(_)),_="default",M=ds.default);const N=!!(E.focusable||i&&void 0===E.focusable),k=void 0!==p&&(E.reconnectable||a&&void 0===E.reconnectable),P=!!(E.selectable||s&&void 0===E.selectable),z=n.useRef(null),[O,I]=n.useState(!1),[A,R]=n.useState(!1),D=pi(),{zIndex:$,sourceX:L,sourceY:T,targetX:B,targetY:j,sourcePosition:V,targetPosition:H}=gi(n.useCallback((t=>{const n=t.nodeLookup.get(E.source),r=t.nodeLookup.get(E.target);if(!n||!r)return{zIndex:E.zIndex,...hs};const i=function(t){const{sourceNode:n,targetNode:o}=t;if(!cr(n)||!cr(o))return null;const r=n.internals.handleBounds||ur(n.handles),i=o.internals.handleBounds||ur(o.handles),a=hr(r?.source??[],t.sourceHandle),s=hr(t.connectionMode===e.ConnectionMode.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),t.targetHandle);if(!a||!s)return t.onError?.("008",Qn.error008(a?"target":"source",{id:t.id,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle})),null;const l=a?.position||e.Position.Bottom,c=s?.position||e.Position.Top,[u,d]=dr(n,a,l),[h,f]=dr(o,s,c);return{sourceX:u,sourceY:d,targetX:h,targetY:f,sourcePosition:l,targetPosition:c}}({id:o,sourceNode:n,targetNode:r,sourceHandle:E.sourceHandle||null,targetHandle:E.targetHandle||null,connectionMode:t.connectionMode,onError:b}),a=function({sourceNode:e,targetNode:t,selected:n=!1,zIndex:o=0,elevateOnSelect:r=!1}){if(!r)return o;const i=n||t.selected||e.selected,a=Math.max(e.internals.z||0,t.internals.z||0,1e3);return o+(i?a:0)}({selected:E.selected,zIndex:E.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect});return{zIndex:a,...i||hs}}),[E.source,E.target,E.sourceHandle,E.targetHandle,E.selected,E.zIndex]),Ni),X=n.useMemo((()=>E.markerStart?`url('#${fr(E.markerStart,v)}')`:void 0),[E.markerStart,v]),Y=n.useMemo((()=>E.markerEnd?`url('#${fr(E.markerEnd,v)}')`:void 0),[E.markerEnd,v]);if(E.hidden||null===L||null===T||null===B||null===j)return null;const Z=c?e=>{c(e,{...E})}:void 0,W=u?e=>{u(e,{...E})}:void 0,F=d?e=>{d(e,{...E})}:void 0,K=h?e=>{h(e,{...E})}:void 0,G=f?e=>{f(e,{...E})}:void 0;return t.jsx("svg",{style:{zIndex:$},children:t.jsxs("g",{className:r(["react-flow__edge",`react-flow__edge-${_}`,E.className,w,{selected:E.selected,animated:E.animated,inactive:!P&&!l,updating:O,selectable:P}]),onClick:e=>{const{addSelectedEdges:t,unselectNodesAndEdges:n,multiSelectionActive:r}=D.getState();P&&(D.setState({nodesSelectionActive:!1}),E.selected&&r?(n({nodes:[],edges:[E]}),z.current?.blur()):t([o])),l&&l(e,E)},onDoubleClick:Z,onContextMenu:W,onMouseEnter:F,onMouseMove:K,onMouseLeave:G,onKeyDown:N?e=>{if(!S&&eo.includes(e.key)&&P){const{unselectNodesAndEdges:t,addSelectedEdges:n}=D.getState();"Escape"===e.key?(z.current?.blur(),t({edges:[E]})):n([o])}}:void 0,tabIndex:N?0:void 0,role:N?"button":"img","data-id":o,"data-testid":`rf__edge-${o}`,"aria-label":null===E.ariaLabel?void 0:E.ariaLabel||`Edge from ${E.source} to ${E.target}`,"aria-describedby":N?`${xi}-${v}`:void 0,ref:z,children:[!A&&t.jsx(M,{id:o,source:E.source,target:E.target,type:E.type,selected:E.selected,animated:E.animated,selectable:P,deletable:E.deletable??!0,label:E.label,labelStyle:E.labelStyle,labelShowBg:E.labelShowBg,labelBgStyle:E.labelBgStyle,labelBgPadding:E.labelBgPadding,labelBgBorderRadius:E.labelBgBorderRadius,sourceX:L,sourceY:T,targetX:B,targetY:j,sourcePosition:V,targetPosition:H,data:E.data,style:E.style,sourceHandleId:E.sourceHandle,targetHandleId:E.targetHandle,markerStart:X,markerEnd:Y,pathOptions:"pathOptions"in E?E.pathOptions:void 0,interactionWidth:E.interactionWidth}),k&&t.jsx(ys,{edge:E,isReconnectable:k,reconnectRadius:g,onReconnect:p,onReconnectStart:m,onReconnectEnd:y,sourceX:L,sourceY:T,targetX:B,targetY:j,sourcePosition:V,targetPosition:H,setUpdateHover:I,setReconnecting:R,sourceHandleId:E.sourceHandle,targetHandleId:E.targetHandle})]})})}const xs=e=>({width:e.width,height:e.height,edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function ws({defaultMarkerColor:e,onlyRenderVisibleElements:o,rfId:r,edgeTypes:i,noPanClassName:a,onReconnect:s,onEdgeContextMenu:l,onEdgeMouseEnter:c,onEdgeMouseMove:u,onEdgeMouseLeave:d,onEdgeClick:h,reconnectRadius:f,onEdgeDoubleClick:g,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:y}){const{edgesFocusable:v,edgesReconnectable:x,elementsSelectable:w,onError:b}=gi(xs,Ni),S=(E=o,gi(n.useCallback((e=>{if(!E)return e.edges.map((e=>e.id));const t=[];if(e.width&&e.height)for(const n of e.edges){const o=e.nodeLookup.get(n.source),r=e.nodeLookup.get(n.target);o&&r&&tr({sourceNode:o,targetNode:r,width:e.width,height:e.height,transform:e.transform})&&t.push(n.id)}return t}),[E]),Ni));var E;return t.jsxs("div",{className:"react-flow__edges",children:[t.jsx(Ya,{defaultColor:e,rfId:r}),S.map((e=>t.jsx(vs,{id:e,edgesFocusable:v,edgesReconnectable:x,elementsSelectable:w,noPanClassName:a,onReconnect:s,onContextMenu:l,onMouseEnter:c,onMouseMove:u,onMouseLeave:d,onClick:h,reconnectRadius:f,onDoubleClick:g,onReconnectStart:p,onReconnectEnd:m,rfId:r,onError:b,edgeTypes:i,disableKeyboardA11y:y},e)))]})}ws.displayName="EdgeRenderer";const bs=n.memo(ws),Ss=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function Es({children:e}){const n=gi(Ss);return t.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:n},children:e})}const Cs=e=>e.panZoom?.syncViewport;const _s={[e.Position.Left]:e.Position.Right,[e.Position.Right]:e.Position.Left,[e.Position.Top]:e.Position.Bottom,[e.Position.Bottom]:e.Position.Top},Ms=({nodeId:o,handleType:r,style:i,type:a=e.ConnectionLineType.Bezier,CustomComponent:s,connectionStatus:l})=>{const{fromNode:c,handleId:u,toX:d,toY:h,connectionMode:f,endPosition:g,isValid:p}=gi(n.useCallback((e=>({fromNode:e.nodeLookup.get(o),handleId:e.connectionStartHandle?.handleId,toX:(e.connectionPosition.x-e.transform[0])/e.transform[2],toY:(e.connectionPosition.y-e.transform[1])/e.transform[2],connectionMode:e.connectionMode,endPosition:e.connectionEndHandle?.position,isValid:"valid"===e.connectionStatus})),[o]),Ni),m=c?.internals.handleBounds;let y=m?.[r];if(f===e.ConnectionMode.Loose&&(y=y||m?.["source"===r?"target":"source"]),!c||!y)return null;const v=u?y.find((e=>e.id===u)):y[0],x=v?v.x+v.width/2:(c.measured.width??0)/2,w=v?v.y+v.height/2:c.measured.height??0,b=c.internals.positionAbsolute.x+x,S=c.internals.positionAbsolute.y+w,E=v?.position,C=p&&g?g:E?_s[E]:null;if(!E||!C)return null;if(s)return t.jsx(s,{connectionLineType:a,connectionLineStyle:i,fromNode:c,fromHandle:v,fromX:b,fromY:S,toX:d,toY:h,fromPosition:E,toPosition:C,connectionStatus:l});let _="";const M={sourceX:b,sourceY:S,sourcePosition:E,targetX:d,targetY:h,targetPosition:C};return a===e.ConnectionLineType.Bezier?[_]=Jo(M):a===e.ConnectionLineType.Step?[_]=lr({...M,borderRadius:0}):a===e.ConnectionLineType.SmoothStep?[_]=lr(M):a===e.ConnectionLineType.SimpleBezier?[_]=Ga(M):_=`M${b},${S} ${d},${h}`,t.jsx("path",{d:_,fill:"none",className:"react-flow__connection-path",style:i})};Ms.displayName="ConnectionLine";const Ns=e=>({nodeId:e.connectionStartHandle?.nodeId,handleType:e.connectionStartHandle?.type,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function ks({containerStyle:e,style:n,type:o,component:i}){const{nodeId:a,handleType:s,nodesConnectable:l,width:c,height:u,connectionStatus:d}=gi(Ns,Ni);return!!(a&&s&&c&&l)?t.jsx("svg",{style:e,width:c,height:u,className:"react-flow__connectionline react-flow__container",children:t.jsx("g",{className:r(["react-flow__connection",d]),children:t.jsx(Ms,{nodeId:a,handleType:s,style:n,type:o,CustomComponent:i,connectionStatus:d})})}):null}const Ps={};function zs(e=Ps){n.useRef(e),pi(),n.useEffect((()=>{}),[e])}function Os({nodeTypes:e,edgeTypes:o,onInit:r,onNodeClick:i,onEdgeClick:a,onNodeDoubleClick:s,onEdgeDoubleClick:l,onNodeMouseEnter:c,onNodeMouseMove:u,onNodeMouseLeave:d,onNodeContextMenu:h,onSelectionContextMenu:f,onSelectionStart:g,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:y,connectionLineComponent:v,connectionLineContainerStyle:x,selectionKeyCode:w,selectionOnDrag:b,selectionMode:S,multiSelectionKeyCode:E,panActivationKeyCode:C,zoomActivationKeyCode:_,deleteKeyCode:M,onlyRenderVisibleElements:N,elementsSelectable:k,defaultViewport:P,translateExtent:z,minZoom:O,maxZoom:I,preventScrolling:A,defaultMarkerColor:R,zoomOnScroll:D,zoomOnPinch:$,panOnScroll:L,panOnScrollSpeed:T,panOnScrollMode:B,zoomOnDoubleClick:j,panOnDrag:V,onPaneClick:H,onPaneMouseEnter:X,onPaneMouseMove:Y,onPaneMouseLeave:Z,onPaneScroll:W,onPaneContextMenu:F,onEdgeContextMenu:K,onEdgeMouseEnter:G,onEdgeMouseMove:q,onEdgeMouseLeave:U,reconnectRadius:Q,onReconnect:J,onReconnectStart:ee,onReconnectEnd:te,noDragClassName:ne,noWheelClassName:oe,noPanClassName:re,disableKeyboardA11y:ie,nodeOrigin:ae,nodeExtent:se,rfId:le,viewport:ce,onViewportChange:ue}){return zs(e),zs(o),pi(),n.useRef(!1),n.useEffect((()=>{}),[]),function(e){const t=la(),o=n.useRef(!1);n.useEffect((()=>{!o.current&&t.viewportInitialized&&e&&(setTimeout((()=>e(t)),1),o.current=!0)}),[e,t.viewportInitialized])}(r),function(e){const t=gi(Cs),o=pi();n.useEffect((()=>{e&&(t?.(e),o.setState({transform:[e.x,e.y,e.zoom]}))}),[e,t])}(ce),t.jsx(Ra,{onPaneClick:H,onPaneMouseEnter:X,onPaneMouseMove:Y,onPaneMouseLeave:Z,onPaneContextMenu:F,onPaneScroll:W,deleteKeyCode:M,selectionKeyCode:w,selectionOnDrag:b,selectionMode:S,onSelectionStart:g,onSelectionEnd:p,multiSelectionKeyCode:E,panActivationKeyCode:C,zoomActivationKeyCode:_,elementsSelectable:k,zoomOnScroll:D,zoomOnPinch:$,zoomOnDoubleClick:j,panOnScroll:L,panOnScrollSpeed:T,panOnScrollMode:B,panOnDrag:V,defaultViewport:P,translateExtent:z,minZoom:O,maxZoom:I,onSelectionContextMenu:f,preventScrolling:A,noDragClassName:ne,noWheelClassName:oe,noPanClassName:re,disableKeyboardA11y:ie,onViewportChange:ue,isControlledViewport:!!ce,children:t.jsxs(Es,{children:[t.jsx(bs,{edgeTypes:o,onEdgeClick:a,onEdgeDoubleClick:l,onReconnect:J,onReconnectStart:ee,onReconnectEnd:te,onlyRenderVisibleElements:N,onEdgeContextMenu:K,onEdgeMouseEnter:G,onEdgeMouseMove:q,onEdgeMouseLeave:U,reconnectRadius:Q,defaultMarkerColor:R,noPanClassName:re,disableKeyboardA11y:ie,rfId:le}),t.jsx(ks,{style:y,type:m,component:v,containerStyle:x}),t.jsx("div",{className:"react-flow__edgelabel-renderer"}),t.jsx(ja,{nodeTypes:e,onNodeClick:i,onNodeDoubleClick:s,onNodeMouseEnter:c,onNodeMouseMove:u,onNodeMouseLeave:d,onNodeContextMenu:h,onlyRenderVisibleElements:N,noPanClassName:re,noDragClassName:ne,disableKeyboardA11y:ie,nodeOrigin:ae,nodeExtent:se,rfId:le}),t.jsx("div",{className:"react-flow__viewport-portal"})]})})}Os.displayName="GraphView";const Is=n.memo(Os),As=({nodes:t,edges:n,defaultNodes:o,defaultEdges:r,width:i,height:a,fitView:s}={})=>{const l=new Map,c=new Map,u=new Map,d=new Map,h=r??n??[],f=o??t??[];xr(u,d,h),mr(f,l,c,{nodeOrigin:[0,0],elevateNodesOnSelect:!1});let g=[0,0,1];if(s&&i&&a){const e=fo(l,{nodeOrigin:[0,0],filter:e=>!(!e.width&&!e.initialWidth||!e.height&&!e.initialHeight)}),{x:t,y:n,zoom:o}=$o(e,i,a,.5,2,.1);g=[t,n,o]}return{rfId:"1",width:0,height:0,transform:g,nodes:f,nodeLookup:l,parentLookup:c,edges:h,edgeLookup:d,connectionLookup:u,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:void 0!==o,hasDefaultEdges:void 0!==r,panZoom:null,minZoom:.5,maxZoom:2,translateExtent:Jn,nodeExtent:Jn,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:e.ConnectionMode.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:[0,0],nodeDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!1,fitViewOnInit:!1,fitViewDone:!1,fitViewOnInitOptions:void 0,selectNodesOnDrag:!0,multiSelectionActive:!1,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,connectionRadius:20,onError:Oo,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1}},Rs=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:a})=>{return s=(s,l)=>({...As({nodes:e,edges:t,width:r,height:i,fitView:a,defaultNodes:n,defaultEdges:o}),setNodes:e=>{const{nodeLookup:t,parentLookup:n,nodeOrigin:o,elevateNodesOnSelect:r}=l();mr(e,t,n,{nodeOrigin:o,elevateNodesOnSelect:r,checkEquality:!0}),s({nodes:e})},setEdges:e=>{const{connectionLookup:t,edgeLookup:n}=l();xr(t,n,e),s({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){const{setNodes:t}=l();t(e),s({hasDefaultNodes:!0})}if(t){const{setEdges:e}=l();e(t),s({hasDefaultEdges:!0})}},updateNodeInternals:e=>{const{triggerNodeChanges:t,fitView:n,nodeLookup:o,parentLookup:r,fitViewOnInit:i,fitViewDone:a,fitViewOnInitOptions:c,domNode:u,nodeOrigin:d,debug:h}=l(),{changes:f,updatedInternals:g}=function(e,t,n,o,r){const i=o?.querySelector(".xyflow__viewport");let a=!1;if(!i)return{changes:[],updatedInternals:a};const s=[],l=window.getComputedStyle(i),{m22:c}=new window.DOMMatrixReadOnly(l.transform),u=[];if(e.forEach((e=>{const n=t.get(e.id);if(n?.hidden)n.internals={...n.internals,handleBounds:void 0},a=!0;else if(n){const t=Xo(e.nodeElement),o=n.measured.width!==t.width||n.measured.height!==t.height;if(t.width&&t.height&&(o||!n.internals.handleBounds||e.force)){const i=e.nodeElement.getBoundingClientRect();n.measured=t,n.internals={...n.internals,handleBounds:{source:Go(".source",e.nodeElement,i,c,n.origin||r),target:Go(".target",e.nodeElement,i,c,n.origin||r)}},a=!0,o&&(s.push({id:n.id,type:"dimensions",dimensions:t}),n.expandParent&&n.parentId&&u.push({id:n.id,parentId:n.parentId,rect:_o(n,r)}))}}})),u.length>0){const e=vr(u,t,n,r);s.push(...e)}return{changes:s,updatedInternals:a}}(e,o,r,u,d);if(!g)return;pr(o,{nodeOrigin:d});let p=a;!a&&i&&(p=n({...c,nodes:c?.nodes})),s({fitViewDone:p}),f?.length>0&&(h&&console.log("React Flow: trigger node changes",f),t?.(f))},updateNodePositions:(e,t=!1)=>{const n=[],o=[];for(const[r,i]of e){const e={id:r,type:"position",position:i.position,dragging:t};i?.expandParent&&i?.parentId&&e.position&&(n.push({id:r,parentId:i.parentId,rect:{...i.internals.positionAbsolute,width:i.measured.width,height:i.measured.height}}),e.position.x=Math.max(0,e.position.x),e.position.y=Math.max(0,e.position.y)),o.push(e)}if(n.length>0){const{nodeLookup:e,parentLookup:t}=l(),r=vr(n,e,t);o.push(...r)}l().triggerNodeChanges(o)},triggerNodeChanges:e=>{const{onNodesChange:t,setNodes:n,nodes:o,hasDefaultNodes:r,debug:i}=l();e?.length&&(r&&n(Ki(e,o)),i&&console.log("React Flow: trigger node changes",e),t?.(e))},triggerEdgeChanges:e=>{const{onEdgesChange:t,setEdges:n,edges:o,hasDefaultEdges:r,debug:i}=l();e?.length&&(r&&n(Gi(e,o)),i&&console.log("React Flow: trigger edge changes",e),t?.(e))},addSelectedNodes:e=>{const{multiSelectionActive:t,edgeLookup:n,nodeLookup:o,triggerNodeChanges:r,triggerEdgeChanges:i}=l();t?r(e.map((e=>qi(e,!0)))):(r(Ui(o,new Set([...e]),!0)),i(Ui(n)))},addSelectedEdges:e=>{const{multiSelectionActive:t,edgeLookup:n,nodeLookup:o,triggerNodeChanges:r,triggerEdgeChanges:i}=l();t?i(e.map((e=>qi(e,!0)))):(i(Ui(n,new Set([...e]))),r(Ui(o,new Set,!0)))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{const{edges:n,nodes:o,triggerNodeChanges:r,triggerEdgeChanges:i}=l(),a=t||n,s=(e||o).map((e=>(e.selected=!1,qi(e.id,!1)))),c=a.map((e=>qi(e.id,!1)));r(s),i(c)},setMinZoom:e=>{const{panZoom:t,maxZoom:n}=l();t?.setScaleExtent([e,n]),s({minZoom:e})},setMaxZoom:e=>{const{panZoom:t,minZoom:n}=l();t?.setScaleExtent([n,e]),s({maxZoom:e})},setTranslateExtent:e=>{l().panZoom?.setTranslateExtent(e),s({translateExtent:e})},resetSelectedElements:()=>{const{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:o}=l(),r=t.reduce(((e,t)=>t.selected?[...e,qi(t.id,!1)]:e),[]),i=e.reduce(((e,t)=>t.selected?[...e,qi(t.id,!1)]:e),[]);n(r),o(i)},setNodeExtent:e=>{const{nodeLookup:t}=l();for(const[,n]of t){const o=xo(n.position,e);t.set(n.id,{...n,internals:{...n.internals,positionAbsolute:o}})}s({nodeExtent:e})},panBy:e=>{const{transform:t,width:n,height:o,panZoom:r,translateExtent:i}=l();return function({delta:e,panZoom:t,transform:n,translateExtent:o,width:r,height:i}){if(!t||!e.x&&!e.y)return!1;const a=t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,i]],o);return!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2])}({delta:e,panZoom:r,transform:t,translateExtent:i,width:n,height:o})},fitView:e=>{const{panZoom:t,width:n,height:o,minZoom:r,maxZoom:i,nodeOrigin:a,nodeLookup:s}=l();return!!t&&mo({nodeLookup:s,width:n,height:o,panZoom:t,minZoom:r,maxZoom:i,nodeOrigin:a},e)},cancelConnection:()=>s({connectionStatus:null,connectionStartHandle:null,connectionEndHandle:null}),updateConnection:e=>{const{connectionPosition:t}=l(),n={...e,connectionPosition:e.connectionPosition??t};s(n)},reset:()=>s({...As()})}),l=Object.is,s?ui(s,l):ui;var s,l};function Ds({initialNodes:e,initialEdges:o,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:s,fitView:l,children:c}){const[u]=n.useState((()=>Rs({nodes:e,edges:o,defaultNodes:r,defaultEdges:i,width:a,height:s,fitView:l})));return t.jsx(hi,{value:u,children:t.jsx(aa,{children:c})})}function $s({children:e,nodes:o,edges:r,defaultNodes:i,defaultEdges:a,width:s,height:l,fitView:c}){return n.useContext(di)?t.jsx(t.Fragment,{children:e}):t.jsx(Ds,{initialNodes:o,initialEdges:r,defaultNodes:i,defaultEdges:a,initialWidth:s,initialHeight:l,fitView:c,children:e})}const Ls={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};var Ts=na((function({nodes:o,edges:i,defaultNodes:a,defaultEdges:s,className:l,nodeTypes:c,edgeTypes:u,onNodeClick:d,onEdgeClick:h,onInit:f,onMove:g,onMoveStart:p,onMoveEnd:m,onConnect:y,onConnectStart:v,onConnectEnd:x,onClickConnectStart:w,onClickConnectEnd:b,onNodeMouseEnter:S,onNodeMouseMove:E,onNodeMouseLeave:C,onNodeContextMenu:_,onNodeDoubleClick:M,onNodeDragStart:N,onNodeDrag:k,onNodeDragStop:P,onNodesDelete:z,onEdgesDelete:O,onDelete:I,onSelectionChange:A,onSelectionDragStart:R,onSelectionDrag:D,onSelectionDragStop:$,onSelectionContextMenu:L,onSelectionStart:T,onSelectionEnd:B,onBeforeDelete:j,connectionMode:V,connectionLineType:H=e.ConnectionLineType.Bezier,connectionLineStyle:X,connectionLineComponent:Y,connectionLineContainerStyle:Z,deleteKeyCode:W="Backspace",selectionKeyCode:F="Shift",selectionOnDrag:K=!1,selectionMode:G=e.SelectionMode.Full,panActivationKeyCode:q="Space",multiSelectionKeyCode:U=(Lo()?"Meta":"Control"),zoomActivationKeyCode:Q=(Lo()?"Meta":"Control"),snapToGrid:J,snapGrid:ee,onlyRenderVisibleElements:te=!1,selectNodesOnDrag:ne,nodesDraggable:oe,nodesConnectable:re,nodesFocusable:ie,nodeOrigin:ae=Ri,edgesFocusable:se,edgesReconnectable:le,elementsSelectable:ce=!0,defaultViewport:ue=Di,minZoom:de=.5,maxZoom:he=2,translateExtent:fe=Jn,preventScrolling:ge=!0,nodeExtent:pe,defaultMarkerColor:me="#b1b1b7",zoomOnScroll:ye=!0,zoomOnPinch:ve=!0,panOnScroll:xe=!1,panOnScrollSpeed:we=.5,panOnScrollMode:be=e.PanOnScrollMode.Free,zoomOnDoubleClick:Se=!0,panOnDrag:Ee=!0,onPaneClick:Ce,onPaneMouseEnter:_e,onPaneMouseMove:Me,onPaneMouseLeave:Ne,onPaneScroll:ke,onPaneContextMenu:Pe,children:ze,onReconnect:Oe,onReconnectStart:Ie,onReconnectEnd:Ae,onEdgeContextMenu:Re,onEdgeDoubleClick:De,onEdgeMouseEnter:$e,onEdgeMouseMove:Le,onEdgeMouseLeave:Te,reconnectRadius:Be=10,onNodesChange:je,onEdgesChange:Ve,noDragClassName:He="nodrag",noWheelClassName:Xe="nowheel",noPanClassName:Ye="nopan",fitView:Ze,fitViewOptions:We,connectOnClick:Fe,attributionPosition:Ke,proOptions:Ge,defaultEdgeOptions:qe,elevateNodesOnSelect:Ue,elevateEdgesOnSelect:Qe,disableKeyboardA11y:Je=!1,autoPanOnConnect:et,autoPanOnNodeDrag:tt,connectionRadius:nt,isValidConnection:ot,onError:rt,style:it,id:at,nodeDragThreshold:st,viewport:lt,onViewportChange:ct,width:ut,height:dt,colorMode:ht="light",debug:ft,...gt},pt){const mt=at||"1",yt=function(e){const[t,o]=n.useState("system"===e?null:e);return n.useEffect((()=>{if("system"!==e)return void o(e);const t=ji(),n=()=>o(t?.matches?"dark":"light");return n(),t?.addEventListener("change",n),()=>{t?.removeEventListener("change",n)}}),[e]),null!==t?t:ji()?.matches?"dark":"light"}(ht);return t.jsx("div",{...gt,style:{...it,...Ls},ref:pt,className:r(["react-flow",l,yt]),"data-testid":"rf__wrapper",id:at,children:t.jsxs($s,{nodes:o,edges:i,width:ut,height:dt,fitView:Ze,children:[t.jsx(Is,{onInit:f,onNodeClick:d,onEdgeClick:h,onNodeMouseEnter:S,onNodeMouseMove:E,onNodeMouseLeave:C,onNodeContextMenu:_,onNodeDoubleClick:M,nodeTypes:c,edgeTypes:u,connectionLineType:H,connectionLineStyle:X,connectionLineComponent:Y,connectionLineContainerStyle:Z,selectionKeyCode:F,selectionOnDrag:K,selectionMode:G,deleteKeyCode:W,multiSelectionKeyCode:U,panActivationKeyCode:q,zoomActivationKeyCode:Q,onlyRenderVisibleElements:te,defaultViewport:ue,translateExtent:fe,minZoom:de,maxZoom:he,preventScrolling:ge,zoomOnScroll:ye,zoomOnPinch:ve,zoomOnDoubleClick:Se,panOnScroll:xe,panOnScrollSpeed:we,panOnScrollMode:be,panOnDrag:Ee,onPaneClick:Ce,onPaneMouseEnter:_e,onPaneMouseMove:Me,onPaneMouseLeave:Ne,onPaneScroll:ke,onPaneContextMenu:Pe,onSelectionContextMenu:L,onSelectionStart:T,onSelectionEnd:B,onReconnect:Oe,onReconnectStart:Ie,onReconnectEnd:Ae,onEdgeContextMenu:Re,onEdgeDoubleClick:De,onEdgeMouseEnter:$e,onEdgeMouseMove:Le,onEdgeMouseLeave:Te,reconnectRadius:Be,defaultMarkerColor:me,noDragClassName:He,noWheelClassName:Xe,noPanClassName:Ye,rfId:mt,disableKeyboardA11y:Je,nodeOrigin:ae,nodeExtent:pe,viewport:lt,onViewportChange:ct}),t.jsx(Bi,{nodes:o,edges:i,defaultNodes:a,defaultEdges:s,onConnect:y,onConnectStart:v,onConnectEnd:x,onClickConnectStart:w,onClickConnectEnd:b,nodesDraggable:oe,nodesConnectable:re,nodesFocusable:ie,edgesFocusable:se,edgesReconnectable:le,elementsSelectable:ce,elevateNodesOnSelect:Ue,elevateEdgesOnSelect:Qe,minZoom:de,maxZoom:he,nodeExtent:pe,onNodesChange:je,onEdgesChange:Ve,snapToGrid:J,snapGrid:ee,connectionMode:V,translateExtent:fe,connectOnClick:Fe,defaultEdgeOptions:qe,fitView:Ze,fitViewOptions:We,onNodesDelete:z,onEdgesDelete:O,onDelete:I,onNodeDragStart:N,onNodeDrag:k,onNodeDragStop:P,onSelectionDrag:D,onSelectionDragStart:R,onSelectionDragStop:$,onMove:g,onMoveStart:p,onMoveEnd:m,noPanClassName:Ye,nodeOrigin:ae,rfId:mt,autoPanOnConnect:et,autoPanOnNodeDrag:tt,onError:rt,connectionRadius:nt,isValidConnection:ot,selectNodesOnDrag:ne,nodeDragThreshold:st,onBeforeDelete:j,debug:ft}),t.jsx(Ai,{onSelectionChange:A}),ze,t.jsx(Mi,{proOptions:Ge,position:Ke}),t.jsx(Ei,{rfId:mt,disableKeyboardA11y:Je})]})})}));const Bs=e=>e.domNode?.querySelector(".react-flow__edgelabel-renderer");const js=e=>e.domNode?.querySelector(".react-flow__viewport-portal");const Vs=e=>e.nodes;const Hs=e=>e.edges;const Xs=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2]});const Ys={includeHiddenNodes:!1};const Zs=e=>({startHandle:e.connectionStartHandle,endHandle:e.connectionEndHandle,status:e.connectionStatus,position:e.connectionStartHandle?e.connectionPosition:null});function Ws({dimensions:e,lineWidth:n,variant:o,className:i}){return t.jsx("path",{strokeWidth:n,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:r(["react-flow__background-pattern",o,i])})}function Fs({radius:e,className:n}){return t.jsx("circle",{cx:e,cy:e,r:e,className:r(["react-flow__background-pattern","dots",n])})}var Ks;e.BackgroundVariant=void 0,(Ks=e.BackgroundVariant||(e.BackgroundVariant={})).Lines="lines",Ks.Dots="dots",Ks.Cross="cross";const Gs={[e.BackgroundVariant.Dots]:1,[e.BackgroundVariant.Lines]:1,[e.BackgroundVariant.Cross]:6},qs=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Us({id:o,variant:i=e.BackgroundVariant.Dots,gap:a=20,size:s,lineWidth:l=1,offset:c=2,color:u,bgColor:d,style:h,className:f,patternClassName:g}){const p=n.useRef(null),{transform:m,patternId:y}=gi(qs,Ni),v=s||Gs[i],x=i===e.BackgroundVariant.Dots,w=i===e.BackgroundVariant.Cross,b=Array.isArray(a)?a:[a,a],S=[b[0]*m[2]||1,b[1]*m[2]||1],E=v*m[2],C=w?[E,E]:S,_=x?[E/c,E/c]:[C[0]/c,C[1]/c],M=`${y}${o||""}`;return t.jsxs("svg",{className:r(["react-flow__background",f]),style:{...h,...da,"--xy-background-color-props":d,"--xy-background-pattern-color-props":u},ref:p,"data-testid":"rf__background",children:[t.jsx("pattern",{id:M,x:m[0]%S[0],y:m[1]%S[1],width:S[0],height:S[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${_[0]},-${_[1]})`,children:x?t.jsx(Fs,{radius:E/c,className:g}):t.jsx(Ws,{dimensions:C,lineWidth:l,variant:i,className:g})}),t.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${M})`})]})}Us.displayName="Background";const Qs=n.memo(Us);function Js(){return t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:t.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function el(){return t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:t.jsx("path",{d:"M0 0h32v4.2H0z"})})}function tl(){return t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:t.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function nl(){return t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:t.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function ol(){return t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:t.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function rl({children:e,className:n,...o}){return t.jsx("button",{type:"button",className:r(["react-flow__controls-button",n]),...o,children:e})}const il=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom});function al({style:e,showZoom:n=!0,showFitView:o=!0,showInteractive:i=!0,fitViewOptions:a,onZoomIn:s,onZoomOut:l,onFitView:c,onInteractiveChange:u,className:d,children:h,position:f="bottom-left",orientation:g="vertical","aria-label":p="React Flow controls"}){const m=pi(),{isInteractive:y,minZoomReached:v,maxZoomReached:x}=gi(il,Ni),{zoomIn:w,zoomOut:b,fitView:S}=la(),E="horizontal"===g?"horizontal":"vertical";return t.jsxs(_i,{className:r(["react-flow__controls",E,d]),position:f,style:e,"data-testid":"rf__controls","aria-label":p,children:[n&&t.jsxs(t.Fragment,{children:[t.jsx(rl,{onClick:()=>{w(),s?.()},className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:x,children:t.jsx(Js,{})}),t.jsx(rl,{onClick:()=>{b(),l?.()},className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:v,children:t.jsx(el,{})})]}),o&&t.jsx(rl,{className:"react-flow__controls-fitview",onClick:()=>{S(a),c?.()},title:"fit view","aria-label":"fit view",children:t.jsx(tl,{})}),i&&t.jsx(rl,{className:"react-flow__controls-interactive",onClick:()=>{m.setState({nodesDraggable:!y,nodesConnectable:!y,elementsSelectable:!y}),u?.(!y)},title:"toggle interactivity","aria-label":"toggle interactivity",children:y?t.jsx(ol,{}):t.jsx(nl,{})}),h]})}al.displayName="Controls";const sl=n.memo(al);const ll=n.memo((function({id:e,x:n,y:o,width:i,height:a,style:s,color:l,strokeColor:c,strokeWidth:u,className:d,borderRadius:h,shapeRendering:f,selected:g,onClick:p}){const{background:m,backgroundColor:y}=s||{},v=l||m||y;return t.jsx("rect",{className:r(["react-flow__minimap-node",{selected:g},d]),x:n,y:o,rx:h,ry:h,width:i,height:a,style:{fill:v,stroke:c,strokeWidth:u},shapeRendering:f,onClick:p?t=>p(t,e):void 0})})),cl=e=>e.nodeOrigin,ul=e=>e.nodes.map((e=>e.id)),dl=e=>e instanceof Function?e:()=>e;const hl=n.memo((function({id:e,nodeOrigin:n,nodeColorFunc:o,nodeStrokeColorFunc:r,nodeClassNameFunc:i,nodeBorderRadius:a,nodeStrokeWidth:s,shapeRendering:l,NodeComponent:c,onClick:u}){const{node:d,x:h,y:f}=gi((t=>{const o=t.nodeLookup.get(e),{x:r,y:i}=uo(o,n).positionAbsolute;return{node:o,x:r,y:i}}),Ni);if(!d||d.hidden||!jo(d))return null;const{width:g,height:p}=Bo(d);return t.jsx(c,{x:h,y:f,width:g,height:p,style:d.style,selected:!!d.selected,className:i(d),color:o(d),borderRadius:a,strokeColor:r(d),strokeWidth:s,shapeRendering:l,onClick:u,id:d.id})}));var fl=n.memo((function({nodeStrokeColor:e,nodeColor:n,nodeClassName:o="",nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=ll,onClick:s}){const l=gi(ul,Ni),c=gi(cl),u=dl(n),d=dl(e),h=dl(o),f="undefined"==typeof window||window.chrome?"crispEdges":"geometricPrecision";return t.jsx(t.Fragment,{children:l.map((e=>t.jsx(hl,{id:e,nodeOrigin:c,nodeColorFunc:u,nodeStrokeColorFunc:d,nodeClassNameFunc:h,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:s,shapeRendering:f},e)))})}));const gl=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?No(fo(e.nodeLookup,{nodeOrigin:e.nodeOrigin}),t):t,rfId:e.rfId,nodeOrigin:e.nodeOrigin,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height}};function pl({style:e,className:o,nodeStrokeColor:i,nodeColor:a,nodeClassName:s="",nodeBorderRadius:l=5,nodeStrokeWidth:c,nodeComponent:u,bgColor:d,maskColor:h,maskStrokeColor:f,maskStrokeWidth:g,position:p="bottom-right",onClick:m,onNodeClick:y,pannable:v=!1,zoomable:x=!1,ariaLabel:w="React Flow mini map",inversePan:b,zoomStep:S=10,offsetScale:E=5}){const C=pi(),_=n.useRef(null),{boundingRect:M,viewBB:N,rfId:k,panZoom:P,translateExtent:z,flowWidth:O,flowHeight:I}=gi(gl,Ni),A=e?.width??200,R=e?.height??150,D=M.width/A,$=M.height/R,L=Math.max(D,$),T=L*A,B=L*R,j=E*L,V=M.x-(T-M.width)/2-j,H=M.y-(B-M.height)/2-j,X=T+2*j,Y=B+2*j,Z=`react-flow__minimap-desc-${k}`,W=n.useRef(0),F=n.useRef();W.current=L,n.useEffect((()=>{if(_.current&&P)return F.current=function({domNode:e,panZoom:t,getTransform:n,getViewScale:o}){const r=Se(e);return{update:function({translateExtent:e,width:i,height:a,zoomStep:s=10,pannable:l=!0,zoomable:c=!0,inversePan:u=!1}){let d=[0,0];const h=Un().on("start",(e=>{"mousedown"!==e.sourceEvent.type&&"touchstart"!==e.sourceEvent.type||(d=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])})).on("zoom",l?r=>{const s=n();if("mousemove"!==r.sourceEvent.type&&"touchmove"!==r.sourceEvent.type||!t)return;const l=[r.sourceEvent.clientX??r.sourceEvent.touches[0].clientX,r.sourceEvent.clientY??r.sourceEvent.touches[0].clientY],c=[l[0]-d[0],l[1]-d[1]];d=l;const h=o()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),f={x:s[0]-c[0]*h,y:s[1]-c[1]*h},g=[[0,0],[i,a]];t.setViewportConstrained({x:f.x,y:f.y,zoom:s[2]},g,e)}:null).on("zoom.wheel",c?e=>{const o=n();if("wheel"!==e.sourceEvent.type||!t)return;const r=-e.sourceEvent.deltaY*(1===e.sourceEvent.deltaMode?.05:e.sourceEvent.deltaMode?1:.002)*s,i=o[2]*Math.pow(2,r);t.scaleTo(i)}:null);r.call(h,{})},destroy:function(){r.on("zoom",null)},pointer:Ee}}({domNode:_.current,panZoom:P,getTransform:()=>C.getState().transform,getViewScale:()=>W.current}),()=>{F.current?.destroy()}}),[P]),n.useEffect((()=>{F.current?.update({translateExtent:z,width:O,height:I,inversePan:b,pannable:v,zoomStep:S,zoomable:x})}),[v,x,b,S,z,O,I]);const K=m?e=>{const[t,n]=F.current?.pointer(e)||[0,0];m(e,{x:t,y:n})}:void 0,G=y?n.useCallback(((e,t)=>{const n=C.getState().nodeLookup.get(t);y(e,n)}),[]):void 0;return t.jsx(_i,{position:p,style:{...e,"--xy-minimap-background-color-props":"string"==typeof d?d:void 0,"--xy-minimap-mask-background-color-props":"string"==typeof h?h:void 0,"--xy-minimap-mask-stroke-color-props":"string"==typeof f?f:void 0,"--xy-minimap-mask-stroke-width-props":"number"==typeof g?g*L:void 0,"--xy-minimap-node-background-color-props":"string"==typeof a?a:void 0,"--xy-minimap-node-stroke-color-props":"string"==typeof i?i:void 0,"--xy-minimap-node-stroke-width-props":"string"==typeof c?c:void 0},className:r(["react-flow__minimap",o]),"data-testid":"rf__minimap",children:t.jsxs("svg",{width:A,height:R,viewBox:`${V} ${H} ${X} ${Y}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":Z,ref:_,onClick:K,children:[w&&t.jsx("title",{id:Z,children:w}),t.jsx(fl,{onClick:G,nodeColor:a,nodeStrokeColor:i,nodeBorderRadius:l,nodeClassName:s,nodeStrokeWidth:c,nodeComponent:u}),t.jsx("path",{className:"react-flow__minimap-mask",d:`M${V-j},${H-j}h${X+2*j}v${Y+2*j}h${-X-2*j}z\n M${N.x},${N.y}h${N.width}v${N.height}h${-N.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}pl.displayName="MiniMap";const ml=n.memo(pl);const yl=n.memo((function({nodeId:e,position:o,variant:i=jr.Handle,className:a,style:s={},children:l,color:c,minWidth:u=10,minHeight:d=10,maxWidth:h=Number.MAX_VALUE,maxHeight:f=Number.MAX_VALUE,keepAspectRatio:g=!1,shouldResize:p,onResizeStart:m,onResize:y,onResizeEnd:v}){const x=_a(),w="string"==typeof e?e:x,b=pi(),S=n.useRef(null),E=i===jr.Line?"right":"bottom-right",C=o??E,_=n.useRef(null);n.useEffect((()=>{if(S.current&&w)return _.current||(_.current=qr({domNode:S.current,nodeId:w,getStoreItems:()=>{const{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:o,nodeOrigin:r}=b.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:o,nodeOrigin:r}},onChange:(e,t)=>{const{triggerNodeChanges:n,nodeLookup:o,parentLookup:r,nodeOrigin:i}=b.getState(),a=[],s={x:e.x,y:e.y},l=o.get(w);if(l&&l.expandParent&&l.parentId){const t=vr([{id:l.id,parentId:l.parentId,rect:{width:e.width??l.measured.width,height:e.height??l.measured.height,...Vo({x:e.x??l.position.x,y:e.y??l.position.y},l.parentId,o,l.origin??i)}}],o,r,i);a.push(...t),s.x=e.x?Math.max(0,e.x):void 0,s.y=e.y?Math.max(0,e.y):void 0}if(void 0!==s.x&&void 0!==s.y){const e={id:w,type:"position",position:{...s}};a.push(e)}if(void 0!==e.width&&void 0!==e.height){const t={id:w,type:"dimensions",resizing:!0,setAttributes:!0,dimensions:{width:e.width,height:e.height}};a.push(t)}for(const e of t){const t={...e,type:"position"};a.push(t)}n(a)},onEnd:()=>{const e={id:w,type:"dimensions",resizing:!1};b.getState().triggerNodeChanges([e])}})),_.current.update({controlPosition:C,boundaries:{minWidth:u,minHeight:d,maxWidth:h,maxHeight:f},keepAspectRatio:g,onResizeStart:m,onResize:y,onResizeEnd:v,shouldResize:p}),()=>{_.current?.destroy()}}),[C,u,d,h,f,g,m,y,v,p]);const M=C.split("-"),N=i===jr.Line?"borderColor":"backgroundColor",k=c?{...s,[N]:c}:s;return t.jsx("div",{className:r(["react-flow__resize-control","nodrag",...M,i,a]),ref:S,style:k,children:l})}));const vl=e=>e.domNode?.querySelector(".react-flow__renderer");function xl({children:e}){const t=gi(vl);return t?o.createPortal(e,t):null}const wl=(e,t)=>e.length===t.length&&!e.some(((e,n)=>((e,t)=>e?.internals.positionAbsolute.x!==t?.internals.positionAbsolute.x||e?.internals.positionAbsolute.y!==t?.internals.positionAbsolute.y||e?.measured.width!==t?.measured.width||e?.measured.height!==t?.measured.height||e?.selected!==t?.selected||e?.internals.z!==t?.internals.z)(e,t[n]))),bl=e=>({viewport:{x:e.transform[0],y:e.transform[1],zoom:e.transform[2]},nodeOrigin:e.nodeOrigin,selectedNodesCount:e.nodes.filter((e=>e.selected)).length});e.Background=Qs,e.BaseEdge=Fa,e.BezierEdge=cs,e.ControlButton=rl,e.Controls=sl,e.EdgeLabelRenderer=function({children:e}){const t=gi(Bs);return t?o.createPortal(e,t):null},e.EdgeText=Wa,e.Handle=Na,e.MiniMap=ml,e.NodeResizeControl=yl,e.NodeResizer=function({nodeId:e,isVisible:n=!0,handleClassName:o,handleStyle:r,lineClassName:i,lineStyle:a,color:s,minWidth:l=10,minHeight:c=10,maxWidth:u=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:h=!1,shouldResize:f,onResizeStart:g,onResize:p,onResizeEnd:m}){return n?t.jsxs(t.Fragment,{children:[Hr.map((n=>t.jsx(yl,{className:i,style:a,nodeId:e,position:n,variant:jr.Line,color:s,minWidth:l,minHeight:c,maxWidth:u,maxHeight:d,onResizeStart:g,keepAspectRatio:h,shouldResize:f,onResize:p,onResizeEnd:m},n))),Vr.map((n=>t.jsx(yl,{className:o,style:r,nodeId:e,position:n,color:s,minWidth:l,minHeight:c,maxWidth:u,maxHeight:d,onResizeStart:g,keepAspectRatio:h,shouldResize:f,onResize:p,onResizeEnd:m},n)))]}):null},e.NodeToolbar=function({nodeId:o,children:i,className:a,style:s,isVisible:l,position:c=e.Position.Top,offset:u=10,align:d="center",...h}){const f=_a(),g=n.useCallback((e=>(Array.isArray(o)?o:[o||f||""]).reduce(((t,n)=>{const o=e.nodeLookup.get(n);return o&&t.push(o),t}),[])),[o,f]),p=gi(g,wl),{viewport:m,nodeOrigin:y,selectedNodesCount:v}=gi(bl,Ni);if(!("boolean"==typeof l?l:1===p.length&&p[0].selected&&1===v)||!p.length)return null;const x=ho(p,{nodeOrigin:y}),w=Math.max(...p.map((e=>e.internals.z+1))),b={position:"absolute",transform:gr(x,m,c,u,d),zIndex:w,...s};return t.jsx(xl,{children:t.jsx("div",{style:b,className:r(["react-flow__node-toolbar",a]),...h,"data-id":p.reduce(((e,t)=>`${e}${t.id} `),"").trim(),children:i})})},e.Panel=_i,e.ReactFlow=Ts,e.ReactFlowProvider=Ds,e.SimpleBezierEdge=Ua,e.SmoothStepEdge=es,e.StepEdge=os,e.StraightEdge=as,e.ViewportPortal=function({children:e}){const t=gi(js);return t?o.createPortal(e,t):null},e.addEdge=or,e.applyEdgeChanges=Gi,e.applyNodeChanges=Ki,e.getBezierEdgeCenter=qo,e.getBezierPath=Jo,e.getConnectedEdges=po,e.getEdgeCenter=er,e.getIncomers=(e,t,n)=>{if(!e.id)return[];const o=new Set;return n.forEach((t=>{t.target===e.id&&o.add(t.source)})),t.filter((e=>o.has(e.id)))},e.getNodesBounds=ho,e.getOutgoers=(e,t,n)=>{if(!e.id)return[];const o=new Set;return n.forEach((t=>{t.source===e.id&&o.add(t.target)})),t.filter((e=>o.has(e.id)))},e.getSimpleBezierPath=Ga,e.getSmoothStepPath=lr,e.getStraightPath=rr,e.getViewportForBounds=$o,e.isEdge=ta,e.isNode=ea,e.reconnectEdge=(e,t,n,o={shouldReplaceId:!0})=>{const{id:r,...i}=e;if(!t.source||!t.target)return n;if(!n.find((t=>t.id===e.id)))return n;const a={...i,id:o.shouldReplaceId?nr(t):r,source:t.source,target:t.target,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle};return n.filter((e=>e.id!==r)).concat(a)},e.useConnection=function(){return gi(Zs,Ni)},e.useEdges=function(){return gi(Hs,Ni)},e.useEdgesState=function(e){const[t,o]=n.useState(e),r=n.useCallback((e=>o((t=>Gi(e,t)))),[]);return[t,o,r]},e.useHandleConnections=function({type:e,id:t=null,nodeId:o,onConnect:r,onDisconnect:i}){const a=_a(),s=o??a,l=n.useRef(null),c=gi((n=>n.connectionLookup.get(`${s}-${e}-${t}`)),so);return n.useEffect((()=>{if(l.current&&l.current!==c){const e=c??new Map;lo(l.current,e,i),lo(e,l.current,r)}l.current=c??new Map}),[c,r,i]),n.useMemo((()=>Array.from(c?.values()??[])),[c])},e.useInternalNode=function(e){return gi(n.useCallback((t=>t.nodeLookup.get(e)),[e]),Ni)},e.useKeyPress=Hi,e.useNodeId=_a,e.useNodes=function(){return gi(Vs,Ni)},e.useNodesData=function(e){return gi(n.useCallback((t=>{const n=[],o=Array.isArray(e),r=o?e:[e];for(const e of r){const o=t.nodeLookup.get(e);o&&n.push({id:o.id,type:o.type,data:o.data})}return o?n:n[0]??null}),[e]),wr)},e.useNodesInitialized=function(e=Ys){return gi((e=>t=>{if(0===t.nodeLookup.size)return!1;for(const[,{hidden:n,internals:o}]of t.nodeLookup)if((e.includeHiddenNodes||!n)&&(void 0===o.handleBounds||!jo(o.userNode)))return!1;return!0})(e))},e.useNodesState=function(e){const[t,o]=n.useState(e),r=n.useCallback((e=>o((t=>Ki(e,t)))),[]);return[t,o,r]},e.useOnSelectionChange=function({onChange:e}){const t=pi();n.useEffect((()=>{const n=[...t.getState().onSelectionChangeHandlers,e];return t.setState({onSelectionChangeHandlers:n}),()=>{const n=t.getState().onSelectionChangeHandlers.filter((t=>t!==e));t.setState({onSelectionChangeHandlers:n})}}),[e])},e.useOnViewportChange=function({onStart:e,onChange:t,onEnd:o}){const r=pi();n.useEffect((()=>{r.setState({onViewportChangeStart:e})}),[e]),n.useEffect((()=>{r.setState({onViewportChange:t})}),[t]),n.useEffect((()=>{r.setState({onViewportChangeEnd:o})}),[o])},e.useReactFlow=la,e.useStore=gi,e.useStoreApi=pi,e.useUpdateNodeInternals=function(){const e=pi();return n.useCallback((t=>{const{domNode:n,updateNodeInternals:o}=e.getState(),r=Array.isArray(t)?t:[t],i=new Map;r.forEach((e=>{const t=n?.querySelector(`.react-flow__node[data-id="${e}"]`);t&&i.set(e,{id:e,nodeElement:t,force:!0})})),requestAnimationFrame((()=>o(i)))}),[])},e.useViewport=function(){return gi(Xs,Ni)}}));
10
+ */ti.exports=function(){if(ei)return ni;ei=1;var e=n,t=ii(),o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},r=t.useSyncExternalStore,i=e.useRef,a=e.useEffect,s=e.useMemo,l=e.useDebugValue;return ni.useSyncExternalStoreWithSelector=function(e,t,n,c,u){var d=i(null);if(null===d.current){var h={hasValue:!1,value:null};d.current=h}else h=d.current;d=s((function(){function e(e){if(!a){if(a=!0,r=e,e=c(e),void 0!==u&&h.hasValue){var t=h.value;if(u(t,e))return i=t}return i=e}if(t=i,o(r,e))return t;var n=c(e);return void 0!==u&&u(t,n)?t:(r=e,i=n)}var r,i,a=!1,s=void 0===n?null:n;return[function(){return e(t())},null===s?void 0:function(){return e(s())}]}),[t,n,c,u]);var f=r(e,d[0],d[1]);return a((function(){h.hasValue=!0,h.value=f}),[f]),l(f),f},ni}();var ai=Ur(ti.exports);const si=e=>{let t;const n=new Set,o=(e,o)=>{const r="function"==typeof e?e(t):e;if(!Object.is(r,t)){const e=t;t=(null!=o?o:"object"!=typeof r)?r:Object.assign({},t,r),n.forEach((n=>n(t,e)))}},r=()=>t,i={setState:o,getState:r,subscribe:e=>(n.add(e),()=>n.delete(e)),destroy:()=>{console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}};return t=e(o,r,i),i},{useSyncExternalStoreWithSelector:li}=ai;function ci(e,t=e.getState,o){const r=li(e.subscribe,e.getState,e.getServerState||e.getState,t,o);return n.useDebugValue(r),r}const ui=(e,t)=>{const n=(e=>e?si(e):si)(e),o=(e,o=t)=>ci(n,e,o);return Object.assign(o,n),o},di=n.createContext(null),hi=di.Provider,fi=Qn.error001();function gi(e,t){const o=n.useContext(di);if(null===o)throw new Error(fi);return ci(o,e,t)}function pi(){const e=n.useContext(di);if(null===e)throw new Error(fi);return n.useMemo((()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe})),[e])}const mi={display:"none"},yi={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},vi="react-flow__node-desc",xi="react-flow__edge-desc",wi="react-flow__aria-live",bi=e=>e.ariaLiveMessage;function Si({rfId:e}){const n=gi(bi);return t.jsx("div",{id:`${wi}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:yi,children:n})}function Ei({rfId:e,disableKeyboardA11y:n}){return t.jsxs(t.Fragment,{children:[t.jsxs("div",{id:`${vi}-${e}`,style:mi,children:["Press enter or space to select a node.",!n&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "]}),t.jsx("div",{id:`${xi}-${e}`,style:mi,children:"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."}),!n&&t.jsx(Si,{rfId:e})]})}const Ci=e=>e.userSelectionActive?"none":"all";function _i({position:e="top-left",children:n,className:o,style:i,...a}){const s=gi(Ci),l=`${e}`.split("-");return t.jsx("div",{className:r(["react-flow__panel",o,...l]),style:{...i,pointerEvents:s},...a,children:n})}function Mi({proOptions:e,position:n="bottom-right"}){return e?.hideAttribution?null:t.jsx(_i,{position:n,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:t.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}function Ni(e,t){if(Object.is(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[n,o]of e)if(!Object.is(o,t.get(n)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(let o=0;o<n.length;o++)if(!Object.prototype.hasOwnProperty.call(t,n[o])||!Object.is(e[n[o]],t[n[o]]))return!1;return!0}const ki=e=>{const t=[],n=[];for(const[,n]of e.nodeLookup)n.selected&&t.push(n.internals.userNode);for(const[,t]of e.edgeLookup)t.selected&&n.push(t);return{selectedNodes:t,selectedEdges:n}},Pi=e=>e.id;function zi(e,t){return Ni(e.selectedNodes.map(Pi),t.selectedNodes.map(Pi))&&Ni(e.selectedEdges.map(Pi),t.selectedEdges.map(Pi))}function Oi({onSelectionChange:e}){const t=pi(),{selectedNodes:o,selectedEdges:r}=gi(ki,zi);return n.useEffect((()=>{const n={nodes:o,edges:r};e?.(n),t.getState().onSelectionChangeHandlers.forEach((e=>e(n)))}),[o,r,e]),null}const Ii=e=>!!e.onSelectionChangeHandlers;function Ai({onSelectionChange:e}){const n=gi(Ii);return e||n?t.jsx(Oi,{onSelectionChange:e}):null}const Ri=[0,0],Di={x:0,y:0,zoom:1},$i=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","onBeforeDelete","debug","rfId"],Li=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),Ti={translateExtent:Jn,nodeOrigin:Ri,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function Bi(e){const{setNodes:t,setEdges:o,setMinZoom:r,setMaxZoom:i,setTranslateExtent:a,setNodeExtent:s,reset:l,setDefaultNodesAndEdges:c}=gi(Li,Ni),u=pi();n.useEffect((()=>(c(e.defaultNodes,e.defaultEdges),()=>{d.current=Ti,l()})),[]);const d=n.useRef(Ti);return n.useEffect((()=>{for(const n of $i){const l=e[n];l!==d.current[n]&&(void 0!==e[n]&&("nodes"===n?t(l):"edges"===n?o(l):"minZoom"===n?r(l):"maxZoom"===n?i(l):"translateExtent"===n?a(l):"nodeExtent"===n?s(l):"fitView"===n?u.setState({fitViewOnInit:l}):"fitViewOptions"===n?u.setState({fitViewOnInitOptions:l}):u.setState({[n]:l})))}d.current=e}),$i.map((t=>e[t]))),null}function ji(){return"undefined"!=typeof window&&window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)"):null}const Vi="undefined"!=typeof document?document:null;function Hi(e=null,t={target:Vi,actInsideInputWithModifier:!0}){const[o,r]=n.useState(!1),i=n.useRef(!1),a=n.useRef(new Set([])),[s,l]=n.useMemo((()=>{if(null!==e){const t=(Array.isArray(e)?e:[e]).filter((e=>"string"==typeof e)).map((e=>e.split("+"))),n=t.reduce(((e,t)=>e.concat(...t)),[]);return[t,n]}return[[],[]]}),[e]);return n.useEffect((()=>{const n=t?.target||Vi;if(null!==e){const e=e=>{i.current=e.ctrlKey||e.metaKey||e.shiftKey;if((!i.current||i.current&&!t.actInsideInputWithModifier)&&Wo(e))return!1;const n=Yi(e.code,l);a.current.add(e[n]),Xi(s,a.current,!1)&&(e.preventDefault(),r(!0))},o=e=>{if((!i.current||i.current&&!t.actInsideInputWithModifier)&&Wo(e))return!1;const n=Yi(e.code,l);Xi(s,a.current,!0)?(r(!1),a.current.clear()):a.current.delete(e[n]),"Meta"===e.key&&a.current.clear(),i.current=!1},c=()=>{a.current.clear(),r(!1)};return n?.addEventListener("keydown",e),n?.addEventListener("keyup",o),window.addEventListener("blur",c),window.addEventListener("contextmenu",c),()=>{n?.removeEventListener("keydown",e),n?.removeEventListener("keyup",o),window.removeEventListener("blur",c),window.removeEventListener("contextmenu",c)}}}),[e,r]),o}function Xi(e,t,n){return e.filter((e=>n||e.length===t.size)).some((e=>e.every((e=>t.has(e)))))}function Yi(e,t){return t.includes(e)?"code":"key"}const Zi=()=>{const e=pi();return n.useMemo((()=>({zoomIn:t=>e.getState().panZoom?.scaleBy(1.2,{duration:t?.duration}),zoomOut:t=>e.getState().panZoom?.scaleBy(1/1.2,{duration:t?.duration}),zoomTo:(t,n)=>e.getState().panZoom?.scaleTo(t,{duration:n?.duration}),getZoom:()=>e.getState().transform[2],setViewport:(t,n)=>{const{transform:[o,r,i],panZoom:a}=e.getState();a?.setViewport({x:t.x??o,y:t.y??r,zoom:t.zoom??i},{duration:n?.duration})},getViewport:()=>{const[t,n,o]=e.getState().transform;return{x:t,y:n,zoom:o}},fitView:t=>{const{nodeLookup:n,width:o,height:r,nodeOrigin:i,minZoom:a,maxZoom:s,panZoom:l}=e.getState();return!!l&&mo({nodeLookup:n,width:o,height:r,nodeOrigin:i,minZoom:a,maxZoom:s,panZoom:l},t)},setCenter:(t,n,o)=>{const{width:r,height:i,maxZoom:a,panZoom:s}=e.getState(),l=void 0!==o?.zoom?o.zoom:a,c=r/2-t*l,u=i/2-n*l;s?.setViewport({x:c,y:u,zoom:l},{duration:o?.duration})},fitBounds:(t,n)=>{const{width:o,height:r,minZoom:i,maxZoom:a,panZoom:s}=e.getState(),l=$o(t,o,r,i,a,n?.padding??.1);s?.setViewport(l,{duration:n?.duration})},screenToFlowPosition:(t,n={snapToGrid:!0})=>{const{transform:o,snapGrid:r,domNode:i}=e.getState();if(!i)return t;const{x:a,y:s}=i.getBoundingClientRect(),l={x:t.x-a,y:t.y-s};return Ro(l,o,n.snapToGrid,r)},flowToScreenPosition:t=>{const{transform:n,domNode:o}=e.getState();if(!o)return t;const{x:r,y:i}=o.getBoundingClientRect(),a=Do(t,n);return{x:a.x+r,y:a.y+i}}})),[])};function Wi(e,t){const n=[],o=new Map;for(const t of e)if("add"!==t.type)if("remove"===t.type||"replace"===t.type)o.set(t.id,[t]);else{const e=o.get(t.id);e?e.push(t):o.set(t.id,[t])}else n.push(t.item);for(const e of t){const t=o.get(e.id);if(!t){n.push(e);continue}if("remove"===t[0].type)continue;if("replace"===t[0].type){n.push({...t[0].item});continue}const r={...e};for(const e of t)Fi(e,r);n.push(r)}return n}function Fi(e,t){switch(e.type){case"select":t.selected=e.selected;break;case"position":void 0!==e.position&&(t.position=e.position),void 0!==e.dragging&&(t.dragging=e.dragging);break;case"dimensions":void 0!==e.dimensions&&(t.measured??={},t.measured.width=e.dimensions.width,t.measured.height=e.dimensions.height,e.setAttributes&&(t.width=e.dimensions.width,t.height=e.dimensions.height)),"boolean"==typeof e.resizing&&(t.resizing=e.resizing)}}function Ki(e,t){return Wi(e,t)}function Gi(e,t){return Wi(e,t)}function qi(e,t){return{id:e,type:"select",selected:t}}function Ui(e,t=new Set,n=!1){const o=[];for(const[r,i]of e){const e=t.has(r);void 0===i.selected&&!e||i.selected===e||(n&&(i.selected=e),o.push(qi(i.id,e)))}return o}function Qi({items:e=[],lookup:t}){const n=[],o=new Map(e.map((e=>[e.id,e])));for(const o of e){const e=t.get(o.id),r=e?.internals?.userNode??e;void 0!==r&&r!==o&&n.push({id:o.id,item:o,type:"replace"}),void 0===r&&n.push({item:o,type:"add"})}for(const[e]of t){void 0===o.get(e)&&n.push({id:e,type:"remove"})}return n}function Ji(e){return{id:e.id,type:"remove"}}const ea=e=>(e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e))(e),ta=e=>co(e);function na(e){return n.forwardRef(e)}const oa="undefined"!=typeof window?n.useLayoutEffect:n.useEffect;function ra(e){const[t,o]=n.useState(!1),[r]=n.useState((()=>function(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}((()=>o(!0)))));return oa((()=>{if(!t)return void r.reset();const n=r.get();n.length&&(e(n),r.reset()),o(!1)}),[t]),r}const ia=n.createContext(null);function aa({children:e}){const o=pi(),r=ra(n.useCallback((e=>{const{nodes:t=[],setNodes:n,hasDefaultNodes:r,onNodesChange:i,nodeLookup:a}=o.getState();let s=t;for(const t of e)s="function"==typeof t?t(s):t;r?n(s):i&&i(Qi({items:s,lookup:a}))}),[])),i=ra(n.useCallback((e=>{const{edges:t=[],setEdges:n,hasDefaultEdges:r,onEdgesChange:i,edgeLookup:a}=o.getState();let s=t;for(const t of e)s="function"==typeof t?t(s):t;r?n(s):i&&i(Qi({items:s,lookup:a}))}),[])),a=n.useMemo((()=>({nodeQueue:r,edgeQueue:i})),[]);return t.jsx(ia.Provider,{value:a,children:e})}const sa=e=>!!e.panZoom;function la(){const e=Zi(),t=pi(),o=function(){const e=n.useContext(ia);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}(),r=gi(sa),i=n.useMemo((()=>{const e=e=>t.getState().nodeLookup.get(e),n=e=>{o.nodeQueue.push(e)},r=e=>{o.edgeQueue.push(e)},i=e=>{const{nodeLookup:n,nodeOrigin:o}=t.getState(),r=ea(e)?e:n.get(e.id),i=r.parentId?Vo(r.position,r.parentId,n,o):r.position,a={id:r.id,position:i,width:r.measured?.width??r.width,height:r.measured?.height??r.height,data:r.data};return _o(a)},a=(e,t,o={replace:!1})=>{n((n=>n.map((n=>{if(n.id===e){const e="function"==typeof t?t(n):t;return o.replace&&ea(e)?e:{...n,...e}}return n}))))},s=(e,t,n={replace:!1})=>{r((o=>o.map((o=>{if(o.id===e){const e="function"==typeof t?t(o):t;return n.replace&&ta(e)?e:{...o,...e}}return o}))))};return{getNodes:()=>t.getState().nodes.map((e=>({...e}))),getNode:t=>e(t)?.internals.userNode,getInternalNode:e,getEdges:()=>{const{edges:e=[]}=t.getState();return e.map((e=>({...e})))},getEdge:e=>t.getState().edgeLookup.get(e),setNodes:n,setEdges:r,addNodes:e=>{const t=Array.isArray(e)?e:[e];o.nodeQueue.push((e=>[...e,...t]))},addEdges:e=>{const t=Array.isArray(e)?e:[e];o.edgeQueue.push((e=>[...e,...t]))},toObject:()=>{const{nodes:e=[],edges:n=[],transform:o}=t.getState(),[r,i,a]=o;return{nodes:e.map((e=>({...e}))),edges:n.map((e=>({...e}))),viewport:{x:r,y:i,zoom:a}}},deleteElements:async({nodes:e=[],edges:n=[]})=>{const{nodes:o,edges:r,onNodesDelete:i,onEdgesDelete:a,triggerNodeChanges:s,triggerEdgeChanges:l,onDelete:c,onBeforeDelete:u}=t.getState(),{nodes:d,edges:h}=await async function({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:o,onBeforeDelete:r}){const i=new Set(e.map((e=>e.id))),a=[];for(const e of n){if(!1===e.deletable)continue;const t=i.has(e.id),n=!t&&e.parentId&&a.find((t=>t.id===e.parentId));(t||n)&&a.push(e)}const s=new Set(t.map((e=>e.id))),l=o.filter((e=>!1!==e.deletable)),c=po(a,l);for(const e of l)s.has(e.id)&&!c.find((t=>t.id===e.id))&&c.push(e);if(!r)return{edges:c,nodes:a};const u=await r({nodes:a,edges:c});return"boolean"==typeof u?u?{edges:c,nodes:a}:{edges:[],nodes:[]}:u}({nodesToRemove:e,edgesToRemove:n,nodes:o,edges:r,onBeforeDelete:u}),f=h.length>0,g=d.length>0;if(f){const e=h.map(Ji);a?.(h),l(e)}if(g){const e=d.map(Ji);i?.(d),s(e)}return(g||f)&&c?.({nodes:d,edges:h}),{deletedNodes:d,deletedEdges:h}},getIntersectingNodes:(e,n=!0,o)=>{const r=Po(e),a=r?e:i(e),s=void 0!==o;return a?(o||t.getState().nodes).filter((o=>{const i=t.getState().nodeLookup.get(o.id);if(i&&!r&&(o.id===e.id||!i.internals.positionAbsolute))return!1;const l=_o(s?o:i),c=ko(l,a);return n&&c>0||c>=a.width*a.height})):[]},isNodeIntersecting:(e,t,n=!0)=>{const o=Po(e)?e:i(e);if(!o)return!1;const r=ko(o,t);return n&&r>0||r>=o.width*o.height},updateNode:a,updateNodeData:(e,t,n={replace:!1})=>{a(e,(e=>{const o="function"==typeof t?t(e):t;return n.replace?{...e,data:o}:{...e,data:{...e.data,...o}}}),n)},updateEdge:s,updateEdgeData:(e,t,n={replace:!1})=>{s(e,(e=>{const o="function"==typeof t?t(e):t;return n.replace?{...e,data:o}:{...e,data:{...e.data,...o}}}),n)}}}),[]);return n.useMemo((()=>({...i,...e,viewportInitialized:r})),[r])}const ca=e=>e.selected,ua={actInsideInputWithModifier:!1},da="undefined"!=typeof window?window:void 0;const ha={position:"absolute",width:"100%",height:"100%",top:0,left:0},fa=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib});function ga({onPaneContextMenu:o,zoomOnScroll:r=!0,zoomOnPinch:i=!0,panOnScroll:a=!1,panOnScrollSpeed:s=.5,panOnScrollMode:l=e.PanOnScrollMode.Free,zoomOnDoubleClick:c=!0,panOnDrag:u=!0,defaultViewport:d,translateExtent:h,minZoom:f,maxZoom:g,zoomActivationKeyCode:p,preventScrolling:m=!0,children:y,noWheelClassName:v,noPanClassName:x,onViewportChange:w,isControlledViewport:b}){const S=pi(),E=n.useRef(null),{userSelectionActive:C,lib:_}=gi(fa,Ni),M=Hi(p),N=n.useRef();return function(e){const t=pi();n.useEffect((()=>{const n=()=>{if(!e.current)return!1;const n=Xo(e.current);0!==n.height&&0!==n.width||t.getState().onError?.("004",Qn.error004()),t.setState({width:n.width||500,height:n.height||500})};if(e.current){n(),window.addEventListener("resize",n);const t=new ResizeObserver((()=>n()));return t.observe(e.current),()=>{window.removeEventListener("resize",n),t&&e.current&&t.unobserve(e.current)}}}),[])}(E),n.useEffect((()=>{if(E.current){N.current=Br({domNode:E.current,minZoom:f,maxZoom:g,translateExtent:h,viewport:d,onTransformChange:e=>{w?.({x:e[0],y:e[1],zoom:e[2]}),b||S.setState({transform:e})},onDraggingChange:e=>S.setState({paneDragging:e}),onPanZoomStart:(e,t)=>{const{onViewportChangeStart:n,onMoveStart:o}=S.getState();o?.(e,t),n?.(t)},onPanZoom:(e,t)=>{const{onViewportChange:n,onMove:o}=S.getState();o?.(e,t),n?.(t)},onPanZoomEnd:(e,t)=>{const{onViewportChangeEnd:n,onMoveEnd:o}=S.getState();o?.(e,t),n?.(t)}});const{x:e,y:t,zoom:n}=N.current.getViewport();return S.setState({panZoom:N.current,transform:[e,t,n],domNode:E.current.closest(".react-flow")}),()=>{N.current?.destroy()}}}),[]),n.useEffect((()=>{N.current?.update({onPaneContextMenu:o,zoomOnScroll:r,zoomOnPinch:i,panOnScroll:a,panOnScrollSpeed:s,panOnScrollMode:l,zoomOnDoubleClick:c,panOnDrag:u,zoomActivationKeyPressed:M,preventScrolling:m,noPanClassName:x,userSelectionActive:C,noWheelClassName:v,lib:_})}),[o,r,i,a,s,l,c,u,M,m,x,C,v,_]),t.jsx("div",{className:"react-flow__renderer",ref:E,style:ha,children:y})}const pa=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function ma(){const{userSelectionActive:e,userSelectionRect:n}=gi(pa,Ni);return e&&n?t.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:n.width,height:n.height,transform:`translate(${n.x}px, ${n.y}px)`}}):null}const ya=(e,t)=>n=>{n.target===t.current&&e?.(n)},va=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging});function xa({isSelecting:o,selectionKeyPressed:i,selectionMode:a=e.SelectionMode.Full,panOnDrag:s,onSelectionStart:l,onSelectionEnd:c,onPaneClick:u,onPaneContextMenu:d,onPaneScroll:h,onPaneMouseEnter:f,onPaneMouseMove:g,onPaneMouseLeave:p,children:m}){const y=n.useRef(null),v=pi(),x=n.useRef(0),w=n.useRef(0),b=n.useRef(),S=n.useRef(new Map),{userSelectionActive:E,elementsSelectable:C,dragging:_}=gi(va,Ni),M=C&&(o||E),N=n.useRef(!1),k=e=>{N.current?N.current=!1:(u?.(e),v.getState().resetSelectedElements(),v.setState({nodesSelectionActive:!1}))},P=h?e=>h(e):void 0;return t.jsxs("div",{className:r(["react-flow__pane",{draggable:s,dragging:_,selection:o}]),onClick:M?void 0:ya(k,y),onContextMenu:ya((e=>{Array.isArray(s)&&s?.includes(2)?e.preventDefault():d?.(e)}),y),onWheel:ya(P,y),onPointerEnter:M?void 0:f,onPointerDown:M?e=>{const{resetSelectedElements:t,domNode:n,edgeLookup:r}=v.getState();if(b.current=n?.getBoundingClientRect(),y.current?.setPointerCapture(e.pointerId),!C||!o||0!==e.button||e.target!==y.current||!b.current)return;S.current=new Map;for(const[e,t]of r)S.current.set(t.source,S.current.get(t.source)?.add(e)||new Set([e])),S.current.set(t.target,S.current.get(t.target)?.add(e)||new Set([e]));const{x:i,y:a}=Ko(e.nativeEvent,b.current);t(),v.setState({userSelectionRect:{width:0,height:0,startX:i,startY:a,x:i,y:a}}),l?.(e)}:g,onPointerMove:M?t=>{const{userSelectionRect:n,edgeLookup:o,transform:r,nodeOrigin:i,nodeLookup:s,triggerNodeChanges:l,triggerEdgeChanges:c}=v.getState();if(!b.current||!n)return;N.current=!0;const{x:u,y:d}=Ko(t.nativeEvent,b.current),{startX:h,startY:f}=n,g={startX:h,startY:f,x:u<h?u:h,y:d<f?d:f,width:Math.abs(u-h),height:Math.abs(d-f)},p=go(s,g,r,a===e.SelectionMode.Partial,!0,i),m=new Set,y=new Set;for(const e of p){y.add(e.id);const t=S.current.get(e.id);if(t)for(const e of t)m.add(e)}if(x.current!==y.size){x.current=y.size;l(Ui(s,y,!0))}if(w.current!==m.size){w.current=m.size;c(Ui(o,m))}v.setState({userSelectionRect:g,userSelectionActive:!0,nodesSelectionActive:!1})}:g,onPointerUp:M?e=>{if(0!==e.button)return;y.current?.releasePointerCapture(e.pointerId);const{userSelectionRect:t}=v.getState();!E&&t&&e.target===y.current&&k?.(e),v.setState({nodesSelectionActive:x.current>0}),v.setState({userSelectionActive:!1,userSelectionRect:null}),x.current=0,w.current=0,c?.(e),i&&(N.current=!1)}:void 0,onPointerLeave:p,ref:y,style:ha,children:[m,t.jsx(ma,{})]})}function wa({id:e,store:t,unselect:n=!1,nodeRef:o}){const{addSelectedNodes:r,unselectNodesAndEdges:i,multiSelectionActive:a,nodeLookup:s,onError:l}=t.getState(),c=s.get(e);c?(t.setState({nodesSelectionActive:!1}),c.selected?(n||c.selected&&a)&&(i({nodes:[c],edges:[]}),requestAnimationFrame((()=>o?.current?.blur()))):r([e])):l?.("012",Qn.error012(e))}function ba({nodeRef:e,disabled:t=!1,noDragClassName:o,handleSelector:r,nodeId:i,isSelectable:a}){const s=pi(),[l,c]=n.useState(!1),u=n.useRef();return n.useEffect((()=>{u.current=Cr({getStoreItems:()=>s.getState(),onNodeMouseDown:t=>{wa({id:t,store:s,nodeRef:e})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}})}),[]),n.useEffect((()=>{if(t)u.current?.destroy();else if(e.current)return u.current?.update({noDragClassName:o,handleSelector:r,domNode:e.current,isSelectable:a,nodeId:i}),()=>{u.current?.destroy()}}),[o,r,t,a,e,i]),l}const Sa=e=>t=>t.selected&&(t.draggable||e&&void 0===t.draggable);function Ea(){const e=pi();return n.useCallback((t=>{const{nodeExtent:n,snapToGrid:o,snapGrid:r,nodesDraggable:i,onError:a,updateNodePositions:s,nodeLookup:l,nodeOrigin:c}=e.getState(),u=new Map,d=Sa(i),h=o?r[0]:5,f=o?r[1]:5,g=t.direction.x*h*t.factor,p=t.direction.y*f*t.factor;for(const[,e]of l){if(!d(e))continue;let t={x:e.internals.positionAbsolute.x+g,y:e.internals.positionAbsolute.y+p};o&&(t=Ao(t,r));const{position:i,positionAbsolute:s}=yo({nodeId:e.id,nextPosition:t,nodeLookup:l,nodeExtent:n,nodeOrigin:c,onError:a});e.position=i,e.internals.positionAbsolute=s,u.set(e.id,e)}s(u)}),[])}const Ca=n.createContext(null),_a=Ca.Provider;Ca.Consumer;const Ma=()=>n.useContext(Ca),Na=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId});const ka=n.memo(na((function({type:n="source",position:o=e.Position.Top,isValidConnection:i,isConnectable:a=!0,isConnectableStart:s=!0,isConnectableEnd:l=!0,id:c,onConnect:u,children:d,className:h,onMouseDown:f,onTouchStart:g,...p},m){const y=c||null,v="target"===n,x=pi(),w=Ma(),{connectOnClick:b,noPanClassName:S,rfId:E}=gi(Na,Ni),{connectingFrom:C,connectingTo:_,clickConnecting:M,isPossibleEndHandle:N,connectionInProcess:k,valid:P}=gi(((t,n,o)=>r=>{const{connectionStartHandle:i,connectionEndHandle:a,connectionClickStartHandle:s,connectionMode:l,connectionStatus:c}=r,u=a?.nodeId===t&&a?.handleId===n&&a?.type===o;return{connectingFrom:i?.nodeId===t&&i?.handleId===n&&i?.type===o,connectingTo:u,clickConnecting:s?.nodeId===t&&s?.handleId===n&&s?.type===o,isPossibleEndHandle:l===e.ConnectionMode.Strict?i?.type!==o:t!==i?.nodeId||n!==i?.handleId,connectionInProcess:!!i,valid:u&&"valid"===c}})(w,y,n),Ni);w||x.getState().onError?.("010",Qn.error010());const z=e=>{const{defaultEdgeOptions:t,onConnect:n,hasDefaultEdges:o}=x.getState(),r={...t,...e};if(o){const{edges:e,setEdges:t}=x.getState();t(or(r,e))}n?.(r),u?.(r)},O=e=>{if(!w)return;const t=Fo(e.nativeEvent);if(s&&(t&&0===e.button||!t)){const t=x.getState();Or.onPointerDown(e.nativeEvent,{autoPanOnConnect:t.autoPanOnConnect,connectionMode:t.connectionMode,connectionRadius:t.connectionRadius,domNode:t.domNode,nodeLookup:t.nodeLookup,lib:t.lib,isTarget:v,handleId:y,nodeId:w,flowId:t.rfId,panBy:t.panBy,cancelConnection:t.cancelConnection,onConnectStart:t.onConnectStart,onConnectEnd:t.onConnectEnd,updateConnection:t.updateConnection,onConnect:z,isValidConnection:i||t.isValidConnection,getTransform:()=>x.getState().transform,getConnectionStartHandle:()=>x.getState().connectionStartHandle})}t?f?.(e):g?.(e)};return t.jsx("div",{"data-handleid":y,"data-nodeid":w,"data-handlepos":o,"data-id":`${E}-${w}-${y}-${n}`,className:r(["react-flow__handle",`react-flow__handle-${o}`,"nodrag",S,h,{source:!v,target:v,connectable:a,connectablestart:s,connectableend:l,clickconnecting:M,connectingfrom:C,connectingto:_,valid:P,connectionindicator:a&&(!k||N)&&(k?l:s)}]),onMouseDown:O,onTouchStart:O,onClick:b?e=>{const{onClickConnectStart:t,onClickConnectEnd:o,connectionClickStartHandle:r,connectionMode:a,isValidConnection:l,lib:c,rfId:u}=x.getState();if(!w||!r&&!s)return;if(!r)return t?.(e.nativeEvent,{nodeId:w,handleId:y,handleType:n}),void x.setState({connectionClickStartHandle:{nodeId:w,type:n,handleId:y}});const d=Yo(e.target),h=i||l,{connection:f,isValid:g}=Or.isValid(e.nativeEvent,{handle:{nodeId:w,id:y,type:n},connectionMode:a,fromNodeId:r.nodeId,fromHandleId:r.handleId||null,fromType:r.type,isValidConnection:h,flowId:u,doc:d,lib:c});g&&f&&z(f),o?.(e),x.setState({connectionClickStartHandle:null})}:void 0,ref:m,...p,children:d})})));const Pa={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},za={input:function({data:n,isConnectable:o,sourcePosition:r=e.Position.Bottom}){return t.jsxs(t.Fragment,{children:[n?.label,t.jsx(ka,{type:"source",position:r,isConnectable:o})]})},default:function({data:n,isConnectable:o,targetPosition:r=e.Position.Top,sourcePosition:i=e.Position.Bottom}){return t.jsxs(t.Fragment,{children:[t.jsx(ka,{type:"target",position:r,isConnectable:o}),n?.label,t.jsx(ka,{type:"source",position:i,isConnectable:o})]})},output:function({data:n,isConnectable:o,targetPosition:r=e.Position.Top}){return t.jsxs(t.Fragment,{children:[t.jsx(ka,{type:"target",position:r,isConnectable:o}),n?.label]})},group:function(){return null}};const Oa=e=>{const{width:t,height:n,x:o,y:r}=fo(e.nodeLookup,{nodeOrigin:e.nodeOrigin,filter:e=>!!e.selected});return{width:zo(t)?t:null,height:zo(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${o}px,${r}px)`}};function Ia({onSelectionContextMenu:e,noPanClassName:o,disableKeyboardA11y:i}){const a=pi(),{width:s,height:l,transformString:c,userSelectionActive:u}=gi(Oa,Ni),d=Ea(),h=n.useRef(null);if(n.useEffect((()=>{i||h.current?.focus({preventScroll:!0})}),[i]),ba({nodeRef:h}),u||!s||!l)return null;const f=e?t=>{const n=a.getState().nodes.filter((e=>e.selected));e(t,n)}:void 0;return t.jsx("div",{className:r(["react-flow__nodesselection","react-flow__container",o]),style:{transform:c},children:t.jsx("div",{ref:h,className:"react-flow__nodesselection-rect",onContextMenu:f,tabIndex:i?void 0:-1,onKeyDown:i?void 0:e=>{Object.prototype.hasOwnProperty.call(Pa,e.key)&&d({direction:Pa[e.key],factor:e.shiftKey?4:1})},style:{width:s,height:l}})})}const Aa="undefined"!=typeof window?window:void 0,Ra=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Da({children:e,onPaneClick:o,onPaneMouseEnter:r,onPaneMouseMove:i,onPaneMouseLeave:a,onPaneContextMenu:s,onPaneScroll:l,deleteKeyCode:c,selectionKeyCode:u,selectionOnDrag:d,selectionMode:h,onSelectionStart:f,onSelectionEnd:g,multiSelectionKeyCode:p,panActivationKeyCode:m,zoomActivationKeyCode:y,elementsSelectable:v,zoomOnScroll:x,zoomOnPinch:w,panOnScroll:b,panOnScrollSpeed:S,panOnScrollMode:E,zoomOnDoubleClick:C,panOnDrag:_,defaultViewport:M,translateExtent:N,minZoom:k,maxZoom:P,preventScrolling:z,onSelectionContextMenu:O,noWheelClassName:I,noPanClassName:A,disableKeyboardA11y:R,onViewportChange:D,isControlledViewport:$}){const{nodesSelectionActive:L,userSelectionActive:T}=gi(Ra),B=Hi(u,{target:Aa}),j=Hi(m,{target:Aa}),V=j||_,H=j||b,X=B||T||d&&!0!==V;return function({deleteKeyCode:e,multiSelectionKeyCode:t}){const o=pi(),{deleteElements:r}=la(),i=Hi(e,ua),a=Hi(t,{target:da});n.useEffect((()=>{if(i){const{edges:e,nodes:t}=o.getState();r({nodes:t.filter(ca),edges:e.filter(ca)}),o.setState({nodesSelectionActive:!1})}}),[i]),n.useEffect((()=>{o.setState({multiSelectionActive:a})}),[a])}({deleteKeyCode:c,multiSelectionKeyCode:p}),t.jsx(ga,{onPaneContextMenu:s,elementsSelectable:v,zoomOnScroll:x,zoomOnPinch:w,panOnScroll:H,panOnScrollSpeed:S,panOnScrollMode:E,zoomOnDoubleClick:C,panOnDrag:!B&&V,defaultViewport:M,translateExtent:N,minZoom:k,maxZoom:P,zoomActivationKeyCode:y,preventScrolling:z,noWheelClassName:I,noPanClassName:A,onViewportChange:D,isControlledViewport:$,children:t.jsxs(xa,{onSelectionStart:f,onSelectionEnd:g,onPaneClick:o,onPaneMouseEnter:r,onPaneMouseMove:i,onPaneMouseLeave:a,onPaneContextMenu:s,onPaneScroll:l,panOnDrag:V,isSelecting:!!X,selectionMode:h,selectionKeyPressed:B,children:[e,L&&t.jsx(Ia,{onSelectionContextMenu:O,noPanClassName:A,disableKeyboardA11y:R})]})})}Da.displayName="FlowRenderer";const $a=n.memo(Da),La=e=>t=>e?go(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map((e=>e.id)):Array.from(t.nodeLookup.keys());const Ta=e=>e.updateNodeInternals;function Ba({id:e,onClick:o,onMouseEnter:i,onMouseMove:a,onMouseLeave:s,onContextMenu:l,onDoubleClick:c,nodesDraggable:u,elementsSelectable:d,nodesConnectable:h,nodesFocusable:f,resizeObserver:g,noDragClassName:p,noPanClassName:m,disableKeyboardA11y:y,rfId:v,nodeTypes:x,nodeExtent:w,nodeOrigin:b,onError:S}){const{node:E,internals:C,isParent:_}=gi((t=>{const n=t.nodeLookup.get(e),o=t.parentLookup.has(e);return{node:n,internals:n.internals,isParent:o}}),Ni);let M=E.type||"default",N=x?.[M]||za[M];void 0===N&&(S?.("003",Qn.error003(M)),M="default",N=za.default);const k=!!(E.draggable||u&&void 0===E.draggable),P=!!(E.selectable||d&&void 0===E.selectable),z=!!(E.connectable||h&&void 0===E.connectable),O=!!(E.focusable||f&&void 0===E.focusable),I=pi(),A=jo(E),R=function({node:e,nodeType:t,hasDimensions:o,resizeObserver:r}){const i=pi(),a=n.useRef(null),s=n.useRef(null),l=n.useRef(e.sourcePosition),c=n.useRef(e.targetPosition),u=n.useRef(t),d=o&&!!e.internals.handleBounds;return n.useEffect((()=>{!a.current||e.hidden||d&&s.current===a.current||(s.current&&r?.unobserve(s.current),r?.observe(a.current),s.current=a.current)}),[d,e.hidden]),n.useEffect((()=>()=>{s.current&&(r?.unobserve(s.current),s.current=null)}),[]),n.useEffect((()=>{if(a.current){const n=u.current!==t,o=l.current!==e.sourcePosition,r=c.current!==e.targetPosition;(n||o||r)&&(u.current=t,l.current=e.sourcePosition,c.current=e.targetPosition,i.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:a.current,force:!0}]])))}}),[e.id,t,e.sourcePosition,e.targetPosition]),a}({node:E,nodeType:M,hasDimensions:A,resizeObserver:g}),D=ba({nodeRef:R,disabled:E.hidden||!k,noDragClassName:p,handleSelector:E.dragHandle,nodeId:e,isSelectable:P}),$=Ea();if(E.hidden)return null;const L=Bo(E),T=function(e){return void 0===e.internals.handleBounds?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}(E),B=w?xo(C.positionAbsolute,w):C.positionAbsolute,j=Io({...B,...L,origin:E.origin||b}),V=P||k||o||i||a||s,H=i?e=>i(e,{...C.userNode}):void 0,X=a?e=>a(e,{...C.userNode}):void 0,Y=s?e=>s(e,{...C.userNode}):void 0,Z=l?e=>l(e,{...C.userNode}):void 0,W=c?e=>c(e,{...C.userNode}):void 0;return t.jsx("div",{className:r(["react-flow__node",`react-flow__node-${M}`,{[m]:k},E.className,{selected:E.selected,selectable:P,parent:_,draggable:k,dragging:D}]),ref:R,style:{zIndex:C.z,transform:`translate(${j.x}px,${j.y}px)`,pointerEvents:V?"all":"none",visibility:A?"visible":"hidden",...E.style,...T},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:H,onMouseMove:X,onMouseLeave:Y,onContextMenu:Z,onClick:t=>{const{selectNodesOnDrag:n,nodeDragThreshold:r}=I.getState();P&&(!n||!k||r>0)&&wa({id:e,store:I,nodeRef:R}),o&&o(t,{...C.userNode})},onDoubleClick:W,onKeyDown:O?t=>{if(!Wo(t.nativeEvent)&&!y)if(eo.includes(t.key)&&P){const n="Escape"===t.key;wa({id:e,store:I,unselect:n,nodeRef:R})}else k&&E.selected&&Object.prototype.hasOwnProperty.call(Pa,t.key)&&(I.setState({ariaLiveMessage:`Moved selected node ${t.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~B.x}, y: ${~~B.y}`}),$({direction:Pa[t.key],factor:t.shiftKey?4:1}))}:void 0,tabIndex:O?0:void 0,role:O?"button":void 0,"aria-describedby":y?void 0:`${vi}-${v}`,"aria-label":E.ariaLabel,children:t.jsx(_a,{value:e,children:t.jsx(N,{id:e,data:E.data,type:M,positionAbsoluteX:B.x,positionAbsoluteY:B.y,selected:E.selected,selectable:P,draggable:k,deletable:E.deletable??!0,isConnectable:z,sourcePosition:E.sourcePosition,targetPosition:E.targetPosition,dragging:D,dragHandle:E.dragHandle,zIndex:C.z,parentId:E.parentId,...L})})})}const ja=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Va(e){const{nodesDraggable:o,nodesConnectable:r,nodesFocusable:i,elementsSelectable:a,onError:s}=gi(ja,Ni),l=(c=e.onlyRenderVisibleElements,gi(n.useCallback(La(c),[c]),Ni));var c;const u=function(){const e=gi(Ta),[t]=n.useState((()=>"undefined"==typeof ResizeObserver?null:new ResizeObserver((t=>{const n=new Map;t.forEach((e=>{const t=e.target.getAttribute("data-id");n.set(t,{id:t,nodeElement:e.target,force:!0})})),e(n)}))));return n.useEffect((()=>()=>{t?.disconnect()}),[t]),t}();return t.jsx("div",{className:"react-flow__nodes",style:ha,children:l.map((n=>t.jsx(Ba,{id:n,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,nodeOrigin:e.nodeOrigin,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:u,nodesDraggable:o,nodesConnectable:r,nodesFocusable:i,elementsSelectable:a,onError:s},n)))})}Va.displayName="NodeRenderer";const Ha=n.memo(Va);const Xa={[e.MarkerType.Arrow]:({color:e="none",strokeWidth:n=1})=>t.jsx("polyline",{style:{stroke:e,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),[e.MarkerType.ArrowClosed]:({color:e="none",strokeWidth:n=1})=>t.jsx("polyline",{style:{stroke:e,fill:e,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})};const Ya=({id:e,type:o,color:r,width:i=12.5,height:a=12.5,markerUnits:s="strokeWidth",strokeWidth:l,orient:c="auto-start-reverse"})=>{const u=function(e){const t=pi();return n.useMemo((()=>Object.prototype.hasOwnProperty.call(Xa,e)?Xa[e]:(t.getState().onError?.("009",Qn.error009(e)),null)),[e])}(o);return u?t.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${i}`,markerHeight:`${a}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:c,refX:"0",refY:"0",children:t.jsx(u,{color:r,strokeWidth:l})}):null},Za=({defaultColor:e,rfId:o})=>{const r=gi((e=>e.edges)),i=gi((e=>e.defaultEdgeOptions)),a=n.useMemo((()=>{const t=function(e,{id:t,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:r}){const i=new Set;return e.reduce(((e,a)=>([a.markerStart||o,a.markerEnd||r].forEach((o=>{if(o&&"object"==typeof o){const r=fr(o,t);i.has(r)||(e.push({id:r,color:o.color||n,...o}),i.add(r))}})),e)),[]).sort(((e,t)=>e.id.localeCompare(t.id)))}(r,{id:o,defaultColor:e,defaultMarkerStart:i?.markerStart,defaultMarkerEnd:i?.markerEnd});return t}),[r,i,o,e]);return a.length?t.jsx("svg",{className:"react-flow__marker",children:t.jsx("defs",{children:a.map((e=>t.jsx(Ya,{id:e.id,type:e.type,color:e.color,width:e.width,height:e.height,markerUnits:e.markerUnits,strokeWidth:e.strokeWidth,orient:e.orient},e.id)))})}):null};Za.displayName="MarkerDefinitions";var Wa=n.memo(Za);function Fa({x:e,y:o,label:i,labelStyle:a={},labelShowBg:s=!0,labelBgStyle:l={},labelBgPadding:c=[2,4],labelBgBorderRadius:u=2,children:d,className:h,...f}){const[g,p]=n.useState({x:1,y:0,width:0,height:0}),m=r(["react-flow__edge-textwrapper",h]),y=n.useRef(null);return n.useEffect((()=>{if(y.current){const e=y.current.getBBox();p({x:e.x,y:e.y,width:e.width,height:e.height})}}),[i]),void 0!==i&&i?t.jsxs("g",{transform:`translate(${e-g.width/2} ${o-g.height/2})`,className:m,visibility:g.width?"visible":"hidden",...f,children:[s&&t.jsx("rect",{width:g.width+2*c[0],x:-c[0],y:-c[1],height:g.height+2*c[1],className:"react-flow__edge-textbg",style:l,rx:u,ry:u}),t.jsx("text",{className:"react-flow__edge-text",y:g.height/2,dy:"0.3em",ref:y,style:a,children:i}),d]}):null}Fa.displayName="EdgeText";const Ka=n.memo(Fa);function Ga({id:e,path:n,labelX:o,labelY:i,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d,style:h,markerEnd:f,markerStart:g,className:p,interactionWidth:m=20}){return t.jsxs(t.Fragment,{children:[t.jsx("path",{id:e,style:h,d:n,fill:"none",className:r(["react-flow__edge-path",p]),markerEnd:f,markerStart:g}),m&&t.jsx("path",{d:n,fill:"none",strokeOpacity:0,strokeWidth:m,className:"react-flow__edge-interaction"}),a&&zo(o)&&zo(i)?t.jsx(Ka,{x:o,y:i,label:a,labelStyle:s,labelShowBg:l,labelBgStyle:c,labelBgPadding:u,labelBgBorderRadius:d}):null]})}function qa({pos:t,x1:n,y1:o,x2:r,y2:i}){return t===e.Position.Left||t===e.Position.Right?[.5*(n+r),o]:[n,.5*(o+i)]}function Ua({sourceX:t,sourceY:n,sourcePosition:o=e.Position.Bottom,targetX:r,targetY:i,targetPosition:a=e.Position.Top}){const[s,l]=qa({pos:o,x1:t,y1:n,x2:r,y2:i}),[c,u]=qa({pos:a,x1:r,y1:i,x2:t,y2:n}),[d,h,f,g]=qo({sourceX:t,sourceY:n,targetX:r,targetY:i,sourceControlX:s,sourceControlY:l,targetControlX:c,targetControlY:u});return[`M${t},${n} C${s},${l} ${c},${u} ${r},${i}`,d,h,f,g]}function Qa(o){return n.memo((({id:n,sourceX:r,sourceY:i,targetX:a,targetY:s,sourcePosition:l=e.Position.Bottom,targetPosition:c=e.Position.Top,label:u,labelStyle:d,labelShowBg:h,labelBgStyle:f,labelBgPadding:g,labelBgBorderRadius:p,style:m,markerEnd:y,markerStart:v,interactionWidth:x})=>{const[w,b,S]=Ua({sourceX:r,sourceY:i,sourcePosition:l,targetX:a,targetY:s,targetPosition:c}),E=o.isInternal?void 0:n;return t.jsx(Ga,{id:E,path:w,labelX:b,labelY:S,label:u,labelStyle:d,labelShowBg:h,labelBgStyle:f,labelBgPadding:g,labelBgBorderRadius:p,style:m,markerEnd:y,markerStart:v,interactionWidth:x})}))}const Ja=Qa({isInternal:!1}),es=Qa({isInternal:!0});function ts(o){return n.memo((({id:n,sourceX:r,sourceY:i,targetX:a,targetY:s,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:f,style:g,sourcePosition:p=e.Position.Bottom,targetPosition:m=e.Position.Top,markerEnd:y,markerStart:v,pathOptions:x,interactionWidth:w})=>{const[b,S,E]=lr({sourceX:r,sourceY:i,sourcePosition:p,targetX:a,targetY:s,targetPosition:m,borderRadius:x?.borderRadius,offset:x?.offset}),C=o.isInternal?void 0:n;return t.jsx(Ga,{id:C,path:b,labelX:S,labelY:E,label:l,labelStyle:c,labelShowBg:u,labelBgStyle:d,labelBgPadding:h,labelBgBorderRadius:f,style:g,markerEnd:y,markerStart:v,interactionWidth:w})}))}Ja.displayName="SimpleBezierEdge",es.displayName="SimpleBezierEdgeInternal";const ns=ts({isInternal:!1}),os=ts({isInternal:!0});function rs(e){return n.memo((({id:o,...r})=>{const i=e.isInternal?void 0:o;return t.jsx(ns,{...r,id:i,pathOptions:n.useMemo((()=>({borderRadius:0,offset:r.pathOptions?.offset})),[r.pathOptions?.offset])})}))}ns.displayName="SmoothStepEdge",os.displayName="SmoothStepEdgeInternal";const is=rs({isInternal:!1}),as=rs({isInternal:!0});function ss(e){return n.memo((({id:n,sourceX:o,sourceY:r,targetX:i,targetY:a,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:f,markerEnd:g,markerStart:p,interactionWidth:m})=>{const[y,v,x]=rr({sourceX:o,sourceY:r,targetX:i,targetY:a}),w=e.isInternal?void 0:n;return t.jsx(Ga,{id:w,path:y,labelX:v,labelY:x,label:s,labelStyle:l,labelShowBg:c,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:h,style:f,markerEnd:g,markerStart:p,interactionWidth:m})}))}is.displayName="StepEdge",as.displayName="StepEdgeInternal";const ls=ss({isInternal:!1}),cs=ss({isInternal:!0});function us(o){return n.memo((({id:n,sourceX:r,sourceY:i,targetX:a,targetY:s,sourcePosition:l=e.Position.Bottom,targetPosition:c=e.Position.Top,label:u,labelStyle:d,labelShowBg:h,labelBgStyle:f,labelBgPadding:g,labelBgBorderRadius:p,style:m,markerEnd:y,markerStart:v,pathOptions:x,interactionWidth:w})=>{const[b,S,E]=Jo({sourceX:r,sourceY:i,sourcePosition:l,targetX:a,targetY:s,targetPosition:c,curvature:x?.curvature}),C=o.isInternal?void 0:n;return t.jsx(Ga,{id:C,path:b,labelX:S,labelY:E,label:u,labelStyle:d,labelShowBg:h,labelBgStyle:f,labelBgPadding:g,labelBgBorderRadius:p,style:m,markerEnd:y,markerStart:v,interactionWidth:w})}))}ls.displayName="StraightEdge",cs.displayName="StraightEdgeInternal";const ds=us({isInternal:!1}),hs=us({isInternal:!0});ds.displayName="BezierEdge",hs.displayName="BezierEdgeInternal";const fs={default:hs,straight:cs,step:as,smoothstep:os,simplebezier:es},gs={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},ps=(t,n,o)=>o===e.Position.Left?t-n:o===e.Position.Right?t+n:t,ms=(t,n,o)=>o===e.Position.Top?t-n:o===e.Position.Bottom?t+n:t,ys="react-flow__edgeupdater";function vs({position:e,centerX:n,centerY:o,radius:i=10,onMouseDown:a,onMouseEnter:s,onMouseOut:l,type:c}){return t.jsx("circle",{onMouseDown:a,onMouseEnter:s,onMouseOut:l,className:r([ys,`${ys}-${c}`]),cx:ps(n,i,e),cy:ms(o,i,e),r:i,stroke:"transparent",fill:"transparent"})}function xs({isReconnectable:e,reconnectRadius:n,edge:o,targetHandleId:r,sourceHandleId:i,sourceX:a,sourceY:s,targetX:l,targetY:c,sourcePosition:u,targetPosition:d,onReconnect:h,onReconnectStart:f,onReconnectEnd:g,setReconnecting:p,setUpdateHover:m}){const y=pi(),v=(e,t)=>{if(0!==e.button)return;const{autoPanOnConnect:n,domNode:a,isValidConnection:s,connectionMode:l,connectionRadius:c,lib:u,onConnectStart:d,onConnectEnd:m,cancelConnection:v,nodeLookup:x,rfId:w,panBy:b,updateConnection:S}=y.getState(),E=t?o.target:o.source,C=(t?r:i)||null,_=t?"target":"source",M=t;p(!0),f?.(e,o,_);Or.onPointerDown(e.nativeEvent,{autoPanOnConnect:n,connectionMode:l,connectionRadius:c,domNode:a,handleId:C,nodeId:E,nodeLookup:x,isTarget:M,edgeUpdaterType:_,lib:u,flowId:w,cancelConnection:v,panBy:b,isValidConnection:s,onConnect:e=>h?.(o,e),onConnectStart:d,onConnectEnd:m,onReconnectEnd:e=>{p(!1),g?.(e,o,_)},updateConnection:S,getTransform:()=>y.getState().transform,getConnectionStartHandle:()=>y.getState().connectionStartHandle})},x=()=>m(!0),w=()=>m(!1);return t.jsxs(t.Fragment,{children:[("source"===e||!0===e)&&t.jsx(vs,{position:u,centerX:a,centerY:s,radius:n,onMouseDown:e=>v(e,!0),onMouseEnter:x,onMouseOut:w,type:"source"}),("target"===e||!0===e)&&t.jsx(vs,{position:d,centerX:l,centerY:c,radius:n,onMouseDown:e=>v(e,!1),onMouseEnter:x,onMouseOut:w,type:"target"})]})}function ws({id:o,edgesFocusable:i,edgesReconnectable:a,elementsSelectable:s,onClick:l,onDoubleClick:c,onContextMenu:u,onMouseEnter:d,onMouseMove:h,onMouseLeave:f,reconnectRadius:g,onReconnect:p,onReconnectStart:m,onReconnectEnd:y,rfId:v,edgeTypes:x,noPanClassName:w,onError:b,disableKeyboardA11y:S}){let E=gi((e=>e.edgeLookup.get(o)));const C=gi((e=>e.defaultEdgeOptions));E=C?{...C,...E}:E;let _=E.type||"default",M=x?.[_]||fs[_];void 0===M&&(b?.("011",Qn.error011(_)),_="default",M=fs.default);const N=!!(E.focusable||i&&void 0===E.focusable),k=void 0!==p&&(E.reconnectable||a&&void 0===E.reconnectable),P=!!(E.selectable||s&&void 0===E.selectable),z=n.useRef(null),[O,I]=n.useState(!1),[A,R]=n.useState(!1),D=pi(),{zIndex:$,sourceX:L,sourceY:T,targetX:B,targetY:j,sourcePosition:V,targetPosition:H}=gi(n.useCallback((t=>{const n=t.nodeLookup.get(E.source),r=t.nodeLookup.get(E.target);if(!n||!r)return{zIndex:E.zIndex,...gs};const i=function(t){const{sourceNode:n,targetNode:o}=t;if(!cr(n)||!cr(o))return null;const r=n.internals.handleBounds||ur(n.handles),i=o.internals.handleBounds||ur(o.handles),a=hr(r?.source??[],t.sourceHandle),s=hr(t.connectionMode===e.ConnectionMode.Strict?i?.target??[]:(i?.target??[]).concat(i?.source??[]),t.targetHandle);if(!a||!s)return t.onError?.("008",Qn.error008(a?"target":"source",{id:t.id,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle})),null;const l=a?.position||e.Position.Bottom,c=s?.position||e.Position.Top,[u,d]=dr(n,a,l),[h,f]=dr(o,s,c);return{sourceX:u,sourceY:d,targetX:h,targetY:f,sourcePosition:l,targetPosition:c}}({id:o,sourceNode:n,targetNode:r,sourceHandle:E.sourceHandle||null,targetHandle:E.targetHandle||null,connectionMode:t.connectionMode,onError:b}),a=function({sourceNode:e,targetNode:t,selected:n=!1,zIndex:o=0,elevateOnSelect:r=!1}){if(!r)return o;const i=n||t.selected||e.selected,a=Math.max(e.internals.z||0,t.internals.z||0,1e3);return o+(i?a:0)}({selected:E.selected,zIndex:E.zIndex,sourceNode:n,targetNode:r,elevateOnSelect:t.elevateEdgesOnSelect});return{zIndex:a,...i||gs}}),[E.source,E.target,E.sourceHandle,E.targetHandle,E.selected,E.zIndex]),Ni),X=n.useMemo((()=>E.markerStart?`url('#${fr(E.markerStart,v)}')`:void 0),[E.markerStart,v]),Y=n.useMemo((()=>E.markerEnd?`url('#${fr(E.markerEnd,v)}')`:void 0),[E.markerEnd,v]);if(E.hidden||null===L||null===T||null===B||null===j)return null;const Z=c?e=>{c(e,{...E})}:void 0,W=u?e=>{u(e,{...E})}:void 0,F=d?e=>{d(e,{...E})}:void 0,K=h?e=>{h(e,{...E})}:void 0,G=f?e=>{f(e,{...E})}:void 0;return t.jsx("svg",{style:{zIndex:$},children:t.jsxs("g",{className:r(["react-flow__edge",`react-flow__edge-${_}`,E.className,w,{selected:E.selected,animated:E.animated,inactive:!P&&!l,updating:O,selectable:P}]),onClick:e=>{const{addSelectedEdges:t,unselectNodesAndEdges:n,multiSelectionActive:r}=D.getState();P&&(D.setState({nodesSelectionActive:!1}),E.selected&&r?(n({nodes:[],edges:[E]}),z.current?.blur()):t([o])),l&&l(e,E)},onDoubleClick:Z,onContextMenu:W,onMouseEnter:F,onMouseMove:K,onMouseLeave:G,onKeyDown:N?e=>{if(!S&&eo.includes(e.key)&&P){const{unselectNodesAndEdges:t,addSelectedEdges:n}=D.getState();"Escape"===e.key?(z.current?.blur(),t({edges:[E]})):n([o])}}:void 0,tabIndex:N?0:void 0,role:N?"button":"img","data-id":o,"data-testid":`rf__edge-${o}`,"aria-label":null===E.ariaLabel?void 0:E.ariaLabel||`Edge from ${E.source} to ${E.target}`,"aria-describedby":N?`${xi}-${v}`:void 0,ref:z,children:[!A&&t.jsx(M,{id:o,source:E.source,target:E.target,type:E.type,selected:E.selected,animated:E.animated,selectable:P,deletable:E.deletable??!0,label:E.label,labelStyle:E.labelStyle,labelShowBg:E.labelShowBg,labelBgStyle:E.labelBgStyle,labelBgPadding:E.labelBgPadding,labelBgBorderRadius:E.labelBgBorderRadius,sourceX:L,sourceY:T,targetX:B,targetY:j,sourcePosition:V,targetPosition:H,data:E.data,style:E.style,sourceHandleId:E.sourceHandle,targetHandleId:E.targetHandle,markerStart:X,markerEnd:Y,pathOptions:"pathOptions"in E?E.pathOptions:void 0,interactionWidth:E.interactionWidth}),k&&t.jsx(xs,{edge:E,isReconnectable:k,reconnectRadius:g,onReconnect:p,onReconnectStart:m,onReconnectEnd:y,sourceX:L,sourceY:T,targetX:B,targetY:j,sourcePosition:V,targetPosition:H,setUpdateHover:I,setReconnecting:R,sourceHandleId:E.sourceHandle,targetHandleId:E.targetHandle})]})})}const bs=e=>({width:e.width,height:e.height,edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function Ss({defaultMarkerColor:e,onlyRenderVisibleElements:o,rfId:r,edgeTypes:i,noPanClassName:a,onReconnect:s,onEdgeContextMenu:l,onEdgeMouseEnter:c,onEdgeMouseMove:u,onEdgeMouseLeave:d,onEdgeClick:h,reconnectRadius:f,onEdgeDoubleClick:g,onReconnectStart:p,onReconnectEnd:m,disableKeyboardA11y:y}){const{edgesFocusable:v,edgesReconnectable:x,elementsSelectable:w,onError:b}=gi(bs,Ni),S=(E=o,gi(n.useCallback((e=>{if(!E)return e.edges.map((e=>e.id));const t=[];if(e.width&&e.height)for(const n of e.edges){const o=e.nodeLookup.get(n.source),r=e.nodeLookup.get(n.target);o&&r&&tr({sourceNode:o,targetNode:r,width:e.width,height:e.height,transform:e.transform})&&t.push(n.id)}return t}),[E]),Ni));var E;return t.jsxs("div",{className:"react-flow__edges",children:[t.jsx(Wa,{defaultColor:e,rfId:r}),S.map((e=>t.jsx(ws,{id:e,edgesFocusable:v,edgesReconnectable:x,elementsSelectable:w,noPanClassName:a,onReconnect:s,onContextMenu:l,onMouseEnter:c,onMouseMove:u,onMouseLeave:d,onClick:h,reconnectRadius:f,onDoubleClick:g,onReconnectStart:p,onReconnectEnd:m,rfId:r,onError:b,edgeTypes:i,disableKeyboardA11y:y},e)))]})}Ss.displayName="EdgeRenderer";const Es=n.memo(Ss),Cs=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function _s({children:e}){const n=gi(Cs);return t.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:n},children:e})}const Ms=e=>e.panZoom?.syncViewport;const Ns={[e.Position.Left]:e.Position.Right,[e.Position.Right]:e.Position.Left,[e.Position.Top]:e.Position.Bottom,[e.Position.Bottom]:e.Position.Top},ks=({nodeId:o,handleType:r,style:i,type:a=e.ConnectionLineType.Bezier,CustomComponent:s,connectionStatus:l})=>{const{fromNode:c,handleId:u,toX:d,toY:h,connectionMode:f,endPosition:g,isValid:p}=gi(n.useCallback((e=>({fromNode:e.nodeLookup.get(o),handleId:e.connectionStartHandle?.handleId,toX:(e.connectionPosition.x-e.transform[0])/e.transform[2],toY:(e.connectionPosition.y-e.transform[1])/e.transform[2],connectionMode:e.connectionMode,endPosition:e.connectionEndHandle?.position,isValid:"valid"===e.connectionStatus})),[o]),Ni),m=c?.internals.handleBounds;let y=m?.[r];if(f===e.ConnectionMode.Loose&&(y=y||m?.["source"===r?"target":"source"]),!c||!y)return null;const v=u?y.find((e=>e.id===u)):y[0],x=v?v.x+v.width/2:(c.measured.width??0)/2,w=v?v.y+v.height/2:c.measured.height??0,b=c.internals.positionAbsolute.x+x,S=c.internals.positionAbsolute.y+w,E=v?.position,C=p&&g?g:E?Ns[E]:null;if(!E||!C)return null;if(s)return t.jsx(s,{connectionLineType:a,connectionLineStyle:i,fromNode:c,fromHandle:v,fromX:b,fromY:S,toX:d,toY:h,fromPosition:E,toPosition:C,connectionStatus:l});let _="";const M={sourceX:b,sourceY:S,sourcePosition:E,targetX:d,targetY:h,targetPosition:C};return a===e.ConnectionLineType.Bezier?[_]=Jo(M):a===e.ConnectionLineType.Step?[_]=lr({...M,borderRadius:0}):a===e.ConnectionLineType.SmoothStep?[_]=lr(M):a===e.ConnectionLineType.SimpleBezier?[_]=Ua(M):_=`M${b},${S} ${d},${h}`,t.jsx("path",{d:_,fill:"none",className:"react-flow__connection-path",style:i})};ks.displayName="ConnectionLine";const Ps=e=>({nodeId:e.connectionStartHandle?.nodeId,handleType:e.connectionStartHandle?.type,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function zs({containerStyle:e,style:n,type:o,component:i}){const{nodeId:a,handleType:s,nodesConnectable:l,width:c,height:u,connectionStatus:d}=gi(Ps,Ni);return!!(a&&s&&c&&l)?t.jsx("svg",{style:e,width:c,height:u,className:"react-flow__connectionline react-flow__container",children:t.jsx("g",{className:r(["react-flow__connection",d]),children:t.jsx(ks,{nodeId:a,handleType:s,style:n,type:o,CustomComponent:i,connectionStatus:d})})}):null}const Os={};function Is(e=Os){n.useRef(e),pi(),n.useEffect((()=>{}),[e])}function As({nodeTypes:e,edgeTypes:o,onInit:r,onNodeClick:i,onEdgeClick:a,onNodeDoubleClick:s,onEdgeDoubleClick:l,onNodeMouseEnter:c,onNodeMouseMove:u,onNodeMouseLeave:d,onNodeContextMenu:h,onSelectionContextMenu:f,onSelectionStart:g,onSelectionEnd:p,connectionLineType:m,connectionLineStyle:y,connectionLineComponent:v,connectionLineContainerStyle:x,selectionKeyCode:w,selectionOnDrag:b,selectionMode:S,multiSelectionKeyCode:E,panActivationKeyCode:C,zoomActivationKeyCode:_,deleteKeyCode:M,onlyRenderVisibleElements:N,elementsSelectable:k,defaultViewport:P,translateExtent:z,minZoom:O,maxZoom:I,preventScrolling:A,defaultMarkerColor:R,zoomOnScroll:D,zoomOnPinch:$,panOnScroll:L,panOnScrollSpeed:T,panOnScrollMode:B,zoomOnDoubleClick:j,panOnDrag:V,onPaneClick:H,onPaneMouseEnter:X,onPaneMouseMove:Y,onPaneMouseLeave:Z,onPaneScroll:W,onPaneContextMenu:F,onEdgeContextMenu:K,onEdgeMouseEnter:G,onEdgeMouseMove:q,onEdgeMouseLeave:U,reconnectRadius:Q,onReconnect:J,onReconnectStart:ee,onReconnectEnd:te,noDragClassName:ne,noWheelClassName:oe,noPanClassName:re,disableKeyboardA11y:ie,nodeOrigin:ae,nodeExtent:se,rfId:le,viewport:ce,onViewportChange:ue}){return Is(e),Is(o),pi(),n.useRef(!1),n.useEffect((()=>{}),[]),function(e){const t=la(),o=n.useRef(!1);n.useEffect((()=>{!o.current&&t.viewportInitialized&&e&&(setTimeout((()=>e(t)),1),o.current=!0)}),[e,t.viewportInitialized])}(r),function(e){const t=gi(Ms),o=pi();n.useEffect((()=>{e&&(t?.(e),o.setState({transform:[e.x,e.y,e.zoom]}))}),[e,t])}(ce),t.jsx($a,{onPaneClick:H,onPaneMouseEnter:X,onPaneMouseMove:Y,onPaneMouseLeave:Z,onPaneContextMenu:F,onPaneScroll:W,deleteKeyCode:M,selectionKeyCode:w,selectionOnDrag:b,selectionMode:S,onSelectionStart:g,onSelectionEnd:p,multiSelectionKeyCode:E,panActivationKeyCode:C,zoomActivationKeyCode:_,elementsSelectable:k,zoomOnScroll:D,zoomOnPinch:$,zoomOnDoubleClick:j,panOnScroll:L,panOnScrollSpeed:T,panOnScrollMode:B,panOnDrag:V,defaultViewport:P,translateExtent:z,minZoom:O,maxZoom:I,onSelectionContextMenu:f,preventScrolling:A,noDragClassName:ne,noWheelClassName:oe,noPanClassName:re,disableKeyboardA11y:ie,onViewportChange:ue,isControlledViewport:!!ce,children:t.jsxs(_s,{children:[t.jsx(Es,{edgeTypes:o,onEdgeClick:a,onEdgeDoubleClick:l,onReconnect:J,onReconnectStart:ee,onReconnectEnd:te,onlyRenderVisibleElements:N,onEdgeContextMenu:K,onEdgeMouseEnter:G,onEdgeMouseMove:q,onEdgeMouseLeave:U,reconnectRadius:Q,defaultMarkerColor:R,noPanClassName:re,disableKeyboardA11y:ie,rfId:le}),t.jsx(zs,{style:y,type:m,component:v,containerStyle:x}),t.jsx("div",{className:"react-flow__edgelabel-renderer"}),t.jsx(Ha,{nodeTypes:e,onNodeClick:i,onNodeDoubleClick:s,onNodeMouseEnter:c,onNodeMouseMove:u,onNodeMouseLeave:d,onNodeContextMenu:h,onlyRenderVisibleElements:N,noPanClassName:re,noDragClassName:ne,disableKeyboardA11y:ie,nodeOrigin:ae,nodeExtent:se,rfId:le}),t.jsx("div",{className:"react-flow__viewport-portal"})]})})}As.displayName="GraphView";const Rs=n.memo(As),Ds=({nodes:t,edges:n,defaultNodes:o,defaultEdges:r,width:i,height:a,fitView:s}={})=>{const l=new Map,c=new Map,u=new Map,d=new Map,h=r??n??[],f=o??t??[];xr(u,d,h),mr(f,l,c,{nodeOrigin:[0,0],elevateNodesOnSelect:!1});let g=[0,0,1];if(s&&i&&a){const e=fo(l,{nodeOrigin:[0,0],filter:e=>!(!e.width&&!e.initialWidth||!e.height&&!e.initialHeight)}),{x:t,y:n,zoom:o}=$o(e,i,a,.5,2,.1);g=[t,n,o]}return{rfId:"1",width:0,height:0,transform:g,nodes:f,nodeLookup:l,parentLookup:c,edges:h,edgeLookup:d,connectionLookup:u,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:void 0!==o,hasDefaultEdges:void 0!==r,panZoom:null,minZoom:.5,maxZoom:2,translateExtent:Jn,nodeExtent:Jn,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:e.ConnectionMode.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:[0,0],nodeDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!1,fitViewOnInit:!1,fitViewDone:!1,fitViewOnInitOptions:void 0,selectNodesOnDrag:!0,multiSelectionActive:!1,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,connectionRadius:20,onError:Oo,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1}},$s=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:a})=>{return s=(s,l)=>({...Ds({nodes:e,edges:t,width:r,height:i,fitView:a,defaultNodes:n,defaultEdges:o}),setNodes:e=>{const{nodeLookup:t,parentLookup:n,nodeOrigin:o,elevateNodesOnSelect:r}=l();mr(e,t,n,{nodeOrigin:o,elevateNodesOnSelect:r,checkEquality:!0}),s({nodes:e})},setEdges:e=>{const{connectionLookup:t,edgeLookup:n}=l();xr(t,n,e),s({edges:e})},setDefaultNodesAndEdges:(e,t)=>{if(e){const{setNodes:t}=l();t(e),s({hasDefaultNodes:!0})}if(t){const{setEdges:e}=l();e(t),s({hasDefaultEdges:!0})}},updateNodeInternals:e=>{const{triggerNodeChanges:t,fitView:n,nodeLookup:o,parentLookup:r,fitViewOnInit:i,fitViewDone:a,fitViewOnInitOptions:c,domNode:u,nodeOrigin:d,debug:h}=l(),{changes:f,updatedInternals:g}=function(e,t,n,o,r){const i=o?.querySelector(".xyflow__viewport");let a=!1;if(!i)return{changes:[],updatedInternals:a};const s=[],l=window.getComputedStyle(i),{m22:c}=new window.DOMMatrixReadOnly(l.transform),u=[];if(e.forEach((e=>{const n=t.get(e.id);if(n?.hidden)n.internals={...n.internals,handleBounds:void 0},a=!0;else if(n){const t=Xo(e.nodeElement),o=n.measured.width!==t.width||n.measured.height!==t.height;if(t.width&&t.height&&(o||!n.internals.handleBounds||e.force)){const i=e.nodeElement.getBoundingClientRect();n.measured=t,n.internals={...n.internals,handleBounds:{source:Go(".source",e.nodeElement,i,c,n.origin||r),target:Go(".target",e.nodeElement,i,c,n.origin||r)}},a=!0,o&&(s.push({id:n.id,type:"dimensions",dimensions:t}),n.expandParent&&n.parentId&&u.push({id:n.id,parentId:n.parentId,rect:_o(n,r)}))}}})),u.length>0){const e=vr(u,t,n,r);s.push(...e)}return{changes:s,updatedInternals:a}}(e,o,r,u,d);if(!g)return;pr(o,{nodeOrigin:d});let p=a;!a&&i&&(p=n({...c,nodes:c?.nodes})),s({fitViewDone:p}),f?.length>0&&(h&&console.log("React Flow: trigger node changes",f),t?.(f))},updateNodePositions:(e,t=!1)=>{const n=[],o=[];for(const[r,i]of e){const e={id:r,type:"position",position:i.position,dragging:t};i?.expandParent&&i?.parentId&&e.position&&(n.push({id:r,parentId:i.parentId,rect:{...i.internals.positionAbsolute,width:i.measured.width,height:i.measured.height}}),e.position.x=Math.max(0,e.position.x),e.position.y=Math.max(0,e.position.y)),o.push(e)}if(n.length>0){const{nodeLookup:e,parentLookup:t}=l(),r=vr(n,e,t);o.push(...r)}l().triggerNodeChanges(o)},triggerNodeChanges:e=>{const{onNodesChange:t,setNodes:n,nodes:o,hasDefaultNodes:r,debug:i}=l();e?.length&&(r&&n(Ki(e,o)),i&&console.log("React Flow: trigger node changes",e),t?.(e))},triggerEdgeChanges:e=>{const{onEdgesChange:t,setEdges:n,edges:o,hasDefaultEdges:r,debug:i}=l();e?.length&&(r&&n(Gi(e,o)),i&&console.log("React Flow: trigger edge changes",e),t?.(e))},addSelectedNodes:e=>{const{multiSelectionActive:t,edgeLookup:n,nodeLookup:o,triggerNodeChanges:r,triggerEdgeChanges:i}=l();t?r(e.map((e=>qi(e,!0)))):(r(Ui(o,new Set([...e]),!0)),i(Ui(n)))},addSelectedEdges:e=>{const{multiSelectionActive:t,edgeLookup:n,nodeLookup:o,triggerNodeChanges:r,triggerEdgeChanges:i}=l();t?i(e.map((e=>qi(e,!0)))):(i(Ui(n,new Set([...e]))),r(Ui(o,new Set,!0)))},unselectNodesAndEdges:({nodes:e,edges:t}={})=>{const{edges:n,nodes:o,triggerNodeChanges:r,triggerEdgeChanges:i}=l(),a=t||n,s=(e||o).map((e=>(e.selected=!1,qi(e.id,!1)))),c=a.map((e=>qi(e.id,!1)));r(s),i(c)},setMinZoom:e=>{const{panZoom:t,maxZoom:n}=l();t?.setScaleExtent([e,n]),s({minZoom:e})},setMaxZoom:e=>{const{panZoom:t,minZoom:n}=l();t?.setScaleExtent([n,e]),s({maxZoom:e})},setTranslateExtent:e=>{l().panZoom?.setTranslateExtent(e),s({translateExtent:e})},resetSelectedElements:()=>{const{edges:e,nodes:t,triggerNodeChanges:n,triggerEdgeChanges:o}=l(),r=t.reduce(((e,t)=>t.selected?[...e,qi(t.id,!1)]:e),[]),i=e.reduce(((e,t)=>t.selected?[...e,qi(t.id,!1)]:e),[]);n(r),o(i)},setNodeExtent:e=>{const{nodeLookup:t}=l();for(const[,n]of t){const o=xo(n.position,e);t.set(n.id,{...n,internals:{...n.internals,positionAbsolute:o}})}s({nodeExtent:e})},panBy:e=>{const{transform:t,width:n,height:o,panZoom:r,translateExtent:i}=l();return function({delta:e,panZoom:t,transform:n,translateExtent:o,width:r,height:i}){if(!t||!e.x&&!e.y)return!1;const a=t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,i]],o);return!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2])}({delta:e,panZoom:r,transform:t,translateExtent:i,width:n,height:o})},fitView:e=>{const{panZoom:t,width:n,height:o,minZoom:r,maxZoom:i,nodeOrigin:a,nodeLookup:s}=l();return!!t&&mo({nodeLookup:s,width:n,height:o,panZoom:t,minZoom:r,maxZoom:i,nodeOrigin:a},e)},cancelConnection:()=>s({connectionStatus:null,connectionStartHandle:null,connectionEndHandle:null}),updateConnection:e=>{const{connectionPosition:t}=l(),n={...e,connectionPosition:e.connectionPosition??t};s(n)},reset:()=>s({...Ds()})}),l=Object.is,s?ui(s,l):ui;var s,l};function Ls({initialNodes:e,initialEdges:o,defaultNodes:r,defaultEdges:i,initialWidth:a,initialHeight:s,fitView:l,children:c}){const[u]=n.useState((()=>$s({nodes:e,edges:o,defaultNodes:r,defaultEdges:i,width:a,height:s,fitView:l})));return t.jsx(hi,{value:u,children:t.jsx(aa,{children:c})})}function Ts({children:e,nodes:o,edges:r,defaultNodes:i,defaultEdges:a,width:s,height:l,fitView:c}){return n.useContext(di)?t.jsx(t.Fragment,{children:e}):t.jsx(Ls,{initialNodes:o,initialEdges:r,defaultNodes:i,defaultEdges:a,initialWidth:s,initialHeight:l,fitView:c,children:e})}const Bs={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};var js=na((function({nodes:o,edges:i,defaultNodes:a,defaultEdges:s,className:l,nodeTypes:c,edgeTypes:u,onNodeClick:d,onEdgeClick:h,onInit:f,onMove:g,onMoveStart:p,onMoveEnd:m,onConnect:y,onConnectStart:v,onConnectEnd:x,onClickConnectStart:w,onClickConnectEnd:b,onNodeMouseEnter:S,onNodeMouseMove:E,onNodeMouseLeave:C,onNodeContextMenu:_,onNodeDoubleClick:M,onNodeDragStart:N,onNodeDrag:k,onNodeDragStop:P,onNodesDelete:z,onEdgesDelete:O,onDelete:I,onSelectionChange:A,onSelectionDragStart:R,onSelectionDrag:D,onSelectionDragStop:$,onSelectionContextMenu:L,onSelectionStart:T,onSelectionEnd:B,onBeforeDelete:j,connectionMode:V,connectionLineType:H=e.ConnectionLineType.Bezier,connectionLineStyle:X,connectionLineComponent:Y,connectionLineContainerStyle:Z,deleteKeyCode:W="Backspace",selectionKeyCode:F="Shift",selectionOnDrag:K=!1,selectionMode:G=e.SelectionMode.Full,panActivationKeyCode:q="Space",multiSelectionKeyCode:U=(Lo()?"Meta":"Control"),zoomActivationKeyCode:Q=(Lo()?"Meta":"Control"),snapToGrid:J,snapGrid:ee,onlyRenderVisibleElements:te=!1,selectNodesOnDrag:ne,nodesDraggable:oe,nodesConnectable:re,nodesFocusable:ie,nodeOrigin:ae=Ri,edgesFocusable:se,edgesReconnectable:le,elementsSelectable:ce=!0,defaultViewport:ue=Di,minZoom:de=.5,maxZoom:he=2,translateExtent:fe=Jn,preventScrolling:ge=!0,nodeExtent:pe,defaultMarkerColor:me="#b1b1b7",zoomOnScroll:ye=!0,zoomOnPinch:ve=!0,panOnScroll:xe=!1,panOnScrollSpeed:we=.5,panOnScrollMode:be=e.PanOnScrollMode.Free,zoomOnDoubleClick:Se=!0,panOnDrag:Ee=!0,onPaneClick:Ce,onPaneMouseEnter:_e,onPaneMouseMove:Me,onPaneMouseLeave:Ne,onPaneScroll:ke,onPaneContextMenu:Pe,children:ze,onReconnect:Oe,onReconnectStart:Ie,onReconnectEnd:Ae,onEdgeContextMenu:Re,onEdgeDoubleClick:De,onEdgeMouseEnter:$e,onEdgeMouseMove:Le,onEdgeMouseLeave:Te,reconnectRadius:Be=10,onNodesChange:je,onEdgesChange:Ve,noDragClassName:He="nodrag",noWheelClassName:Xe="nowheel",noPanClassName:Ye="nopan",fitView:Ze,fitViewOptions:We,connectOnClick:Fe,attributionPosition:Ke,proOptions:Ge,defaultEdgeOptions:qe,elevateNodesOnSelect:Ue,elevateEdgesOnSelect:Qe,disableKeyboardA11y:Je=!1,autoPanOnConnect:et,autoPanOnNodeDrag:tt,connectionRadius:nt,isValidConnection:ot,onError:rt,style:it,id:at,nodeDragThreshold:st,viewport:lt,onViewportChange:ct,width:ut,height:dt,colorMode:ht="light",debug:ft,...gt},pt){const mt=at||"1",yt=function(e){const[t,o]=n.useState("system"===e?null:e);return n.useEffect((()=>{if("system"!==e)return void o(e);const t=ji(),n=()=>o(t?.matches?"dark":"light");return n(),t?.addEventListener("change",n),()=>{t?.removeEventListener("change",n)}}),[e]),null!==t?t:ji()?.matches?"dark":"light"}(ht);return t.jsx("div",{...gt,style:{...it,...Bs},ref:pt,className:r(["react-flow",l,yt]),"data-testid":"rf__wrapper",id:at,children:t.jsxs(Ts,{nodes:o,edges:i,width:ut,height:dt,fitView:Ze,children:[t.jsx(Rs,{onInit:f,onNodeClick:d,onEdgeClick:h,onNodeMouseEnter:S,onNodeMouseMove:E,onNodeMouseLeave:C,onNodeContextMenu:_,onNodeDoubleClick:M,nodeTypes:c,edgeTypes:u,connectionLineType:H,connectionLineStyle:X,connectionLineComponent:Y,connectionLineContainerStyle:Z,selectionKeyCode:F,selectionOnDrag:K,selectionMode:G,deleteKeyCode:W,multiSelectionKeyCode:U,panActivationKeyCode:q,zoomActivationKeyCode:Q,onlyRenderVisibleElements:te,defaultViewport:ue,translateExtent:fe,minZoom:de,maxZoom:he,preventScrolling:ge,zoomOnScroll:ye,zoomOnPinch:ve,zoomOnDoubleClick:Se,panOnScroll:xe,panOnScrollSpeed:we,panOnScrollMode:be,panOnDrag:Ee,onPaneClick:Ce,onPaneMouseEnter:_e,onPaneMouseMove:Me,onPaneMouseLeave:Ne,onPaneScroll:ke,onPaneContextMenu:Pe,onSelectionContextMenu:L,onSelectionStart:T,onSelectionEnd:B,onReconnect:Oe,onReconnectStart:Ie,onReconnectEnd:Ae,onEdgeContextMenu:Re,onEdgeDoubleClick:De,onEdgeMouseEnter:$e,onEdgeMouseMove:Le,onEdgeMouseLeave:Te,reconnectRadius:Be,defaultMarkerColor:me,noDragClassName:He,noWheelClassName:Xe,noPanClassName:Ye,rfId:mt,disableKeyboardA11y:Je,nodeOrigin:ae,nodeExtent:pe,viewport:lt,onViewportChange:ct}),t.jsx(Bi,{nodes:o,edges:i,defaultNodes:a,defaultEdges:s,onConnect:y,onConnectStart:v,onConnectEnd:x,onClickConnectStart:w,onClickConnectEnd:b,nodesDraggable:oe,nodesConnectable:re,nodesFocusable:ie,edgesFocusable:se,edgesReconnectable:le,elementsSelectable:ce,elevateNodesOnSelect:Ue,elevateEdgesOnSelect:Qe,minZoom:de,maxZoom:he,nodeExtent:pe,onNodesChange:je,onEdgesChange:Ve,snapToGrid:J,snapGrid:ee,connectionMode:V,translateExtent:fe,connectOnClick:Fe,defaultEdgeOptions:qe,fitView:Ze,fitViewOptions:We,onNodesDelete:z,onEdgesDelete:O,onDelete:I,onNodeDragStart:N,onNodeDrag:k,onNodeDragStop:P,onSelectionDrag:D,onSelectionDragStart:R,onSelectionDragStop:$,onMove:g,onMoveStart:p,onMoveEnd:m,noPanClassName:Ye,nodeOrigin:ae,rfId:mt,autoPanOnConnect:et,autoPanOnNodeDrag:tt,onError:rt,connectionRadius:nt,isValidConnection:ot,selectNodesOnDrag:ne,nodeDragThreshold:st,onBeforeDelete:j,debug:ft}),t.jsx(Ai,{onSelectionChange:A}),ze,t.jsx(Mi,{proOptions:Ge,position:Ke}),t.jsx(Ei,{rfId:mt,disableKeyboardA11y:Je})]})})}));const Vs=e=>e.domNode?.querySelector(".react-flow__edgelabel-renderer");const Hs=e=>e.domNode?.querySelector(".react-flow__viewport-portal");const Xs=e=>e.nodes;const Ys=e=>e.edges;const Zs=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2]});const Ws={includeHiddenNodes:!1};const Fs=e=>({startHandle:e.connectionStartHandle,endHandle:e.connectionEndHandle,status:e.connectionStatus,position:e.connectionStartHandle?e.connectionPosition:null});function Ks({dimensions:e,lineWidth:n,variant:o,className:i}){return t.jsx("path",{strokeWidth:n,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:r(["react-flow__background-pattern",o,i])})}function Gs({radius:e,className:n}){return t.jsx("circle",{cx:e,cy:e,r:e,className:r(["react-flow__background-pattern","dots",n])})}var qs;e.BackgroundVariant=void 0,(qs=e.BackgroundVariant||(e.BackgroundVariant={})).Lines="lines",qs.Dots="dots",qs.Cross="cross";const Us={[e.BackgroundVariant.Dots]:1,[e.BackgroundVariant.Lines]:1,[e.BackgroundVariant.Cross]:6},Qs=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function Js({id:o,variant:i=e.BackgroundVariant.Dots,gap:a=20,size:s,lineWidth:l=1,offset:c=2,color:u,bgColor:d,style:h,className:f,patternClassName:g}){const p=n.useRef(null),{transform:m,patternId:y}=gi(Qs,Ni),v=s||Us[i],x=i===e.BackgroundVariant.Dots,w=i===e.BackgroundVariant.Cross,b=Array.isArray(a)?a:[a,a],S=[b[0]*m[2]||1,b[1]*m[2]||1],E=v*m[2],C=w?[E,E]:S,_=x?[E/c,E/c]:[C[0]/c,C[1]/c],M=`${y}${o||""}`;return t.jsxs("svg",{className:r(["react-flow__background",f]),style:{...h,...ha,"--xy-background-color-props":d,"--xy-background-pattern-color-props":u},ref:p,"data-testid":"rf__background",children:[t.jsx("pattern",{id:M,x:m[0]%S[0],y:m[1]%S[1],width:S[0],height:S[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${_[0]},-${_[1]})`,children:x?t.jsx(Gs,{radius:E/c,className:g}):t.jsx(Ks,{dimensions:C,lineWidth:l,variant:i,className:g})}),t.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${M})`})]})}Js.displayName="Background";const el=n.memo(Js);function tl(){return t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:t.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function nl(){return t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:t.jsx("path",{d:"M0 0h32v4.2H0z"})})}function ol(){return t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:t.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function rl(){return t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:t.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function il(){return t.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:t.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function al({children:e,className:n,...o}){return t.jsx("button",{type:"button",className:r(["react-flow__controls-button",n]),...o,children:e})}const sl=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom});function ll({style:e,showZoom:n=!0,showFitView:o=!0,showInteractive:i=!0,fitViewOptions:a,onZoomIn:s,onZoomOut:l,onFitView:c,onInteractiveChange:u,className:d,children:h,position:f="bottom-left",orientation:g="vertical","aria-label":p="React Flow controls"}){const m=pi(),{isInteractive:y,minZoomReached:v,maxZoomReached:x}=gi(sl,Ni),{zoomIn:w,zoomOut:b,fitView:S}=la(),E="horizontal"===g?"horizontal":"vertical";return t.jsxs(_i,{className:r(["react-flow__controls",E,d]),position:f,style:e,"data-testid":"rf__controls","aria-label":p,children:[n&&t.jsxs(t.Fragment,{children:[t.jsx(al,{onClick:()=>{w(),s?.()},className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:x,children:t.jsx(tl,{})}),t.jsx(al,{onClick:()=>{b(),l?.()},className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:v,children:t.jsx(nl,{})})]}),o&&t.jsx(al,{className:"react-flow__controls-fitview",onClick:()=>{S(a),c?.()},title:"fit view","aria-label":"fit view",children:t.jsx(ol,{})}),i&&t.jsx(al,{className:"react-flow__controls-interactive",onClick:()=>{m.setState({nodesDraggable:!y,nodesConnectable:!y,elementsSelectable:!y}),u?.(!y)},title:"toggle interactivity","aria-label":"toggle interactivity",children:y?t.jsx(il,{}):t.jsx(rl,{})}),h]})}ll.displayName="Controls";const cl=n.memo(ll);const ul=n.memo((function({id:e,x:n,y:o,width:i,height:a,style:s,color:l,strokeColor:c,strokeWidth:u,className:d,borderRadius:h,shapeRendering:f,selected:g,onClick:p}){const{background:m,backgroundColor:y}=s||{},v=l||m||y;return t.jsx("rect",{className:r(["react-flow__minimap-node",{selected:g},d]),x:n,y:o,rx:h,ry:h,width:i,height:a,style:{fill:v,stroke:c,strokeWidth:u},shapeRendering:f,onClick:p?t=>p(t,e):void 0})})),dl=e=>e.nodeOrigin,hl=e=>e.nodes.map((e=>e.id)),fl=e=>e instanceof Function?e:()=>e;const gl=n.memo((function({id:e,nodeOrigin:n,nodeColorFunc:o,nodeStrokeColorFunc:r,nodeClassNameFunc:i,nodeBorderRadius:a,nodeStrokeWidth:s,shapeRendering:l,NodeComponent:c,onClick:u}){const{node:d,x:h,y:f}=gi((t=>{const o=t.nodeLookup.get(e),{x:r,y:i}=uo(o,n).positionAbsolute;return{node:o,x:r,y:i}}),Ni);if(!d||d.hidden||!jo(d))return null;const{width:g,height:p}=Bo(d);return t.jsx(c,{x:h,y:f,width:g,height:p,style:d.style,selected:!!d.selected,className:i(d),color:o(d),borderRadius:a,strokeColor:r(d),strokeWidth:s,shapeRendering:l,onClick:u,id:d.id})}));var pl=n.memo((function({nodeStrokeColor:e,nodeColor:n,nodeClassName:o="",nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a=ul,onClick:s}){const l=gi(hl,Ni),c=gi(dl),u=fl(n),d=fl(e),h=fl(o),f="undefined"==typeof window||window.chrome?"crispEdges":"geometricPrecision";return t.jsx(t.Fragment,{children:l.map((e=>t.jsx(gl,{id:e,nodeOrigin:c,nodeColorFunc:u,nodeStrokeColorFunc:d,nodeClassNameFunc:h,nodeBorderRadius:r,nodeStrokeWidth:i,NodeComponent:a,onClick:s,shapeRendering:f},e)))})}));const ml=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?No(fo(e.nodeLookup,{nodeOrigin:e.nodeOrigin}),t):t,rfId:e.rfId,nodeOrigin:e.nodeOrigin,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height}};function yl({style:e,className:o,nodeStrokeColor:i,nodeColor:a,nodeClassName:s="",nodeBorderRadius:l=5,nodeStrokeWidth:c,nodeComponent:u,bgColor:d,maskColor:h,maskStrokeColor:f,maskStrokeWidth:g,position:p="bottom-right",onClick:m,onNodeClick:y,pannable:v=!1,zoomable:x=!1,ariaLabel:w="React Flow mini map",inversePan:b,zoomStep:S=10,offsetScale:E=5}){const C=pi(),_=n.useRef(null),{boundingRect:M,viewBB:N,rfId:k,panZoom:P,translateExtent:z,flowWidth:O,flowHeight:I}=gi(ml,Ni),A=e?.width??200,R=e?.height??150,D=M.width/A,$=M.height/R,L=Math.max(D,$),T=L*A,B=L*R,j=E*L,V=M.x-(T-M.width)/2-j,H=M.y-(B-M.height)/2-j,X=T+2*j,Y=B+2*j,Z=`react-flow__minimap-desc-${k}`,W=n.useRef(0),F=n.useRef();W.current=L,n.useEffect((()=>{if(_.current&&P)return F.current=function({domNode:e,panZoom:t,getTransform:n,getViewScale:o}){const r=Se(e);return{update:function({translateExtent:e,width:i,height:a,zoomStep:s=10,pannable:l=!0,zoomable:c=!0,inversePan:u=!1}){let d=[0,0];const h=Un().on("start",(e=>{"mousedown"!==e.sourceEvent.type&&"touchstart"!==e.sourceEvent.type||(d=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])})).on("zoom",l?r=>{const s=n();if("mousemove"!==r.sourceEvent.type&&"touchmove"!==r.sourceEvent.type||!t)return;const l=[r.sourceEvent.clientX??r.sourceEvent.touches[0].clientX,r.sourceEvent.clientY??r.sourceEvent.touches[0].clientY],c=[l[0]-d[0],l[1]-d[1]];d=l;const h=o()*Math.max(s[2],Math.log(s[2]))*(u?-1:1),f={x:s[0]-c[0]*h,y:s[1]-c[1]*h},g=[[0,0],[i,a]];t.setViewportConstrained({x:f.x,y:f.y,zoom:s[2]},g,e)}:null).on("zoom.wheel",c?e=>{const o=n();if("wheel"!==e.sourceEvent.type||!t)return;const r=-e.sourceEvent.deltaY*(1===e.sourceEvent.deltaMode?.05:e.sourceEvent.deltaMode?1:.002)*s,i=o[2]*Math.pow(2,r);t.scaleTo(i)}:null);r.call(h,{})},destroy:function(){r.on("zoom",null)},pointer:Ee}}({domNode:_.current,panZoom:P,getTransform:()=>C.getState().transform,getViewScale:()=>W.current}),()=>{F.current?.destroy()}}),[P]),n.useEffect((()=>{F.current?.update({translateExtent:z,width:O,height:I,inversePan:b,pannable:v,zoomStep:S,zoomable:x})}),[v,x,b,S,z,O,I]);const K=m?e=>{const[t,n]=F.current?.pointer(e)||[0,0];m(e,{x:t,y:n})}:void 0,G=y?n.useCallback(((e,t)=>{const n=C.getState().nodeLookup.get(t);y(e,n)}),[]):void 0;return t.jsx(_i,{position:p,style:{...e,"--xy-minimap-background-color-props":"string"==typeof d?d:void 0,"--xy-minimap-mask-background-color-props":"string"==typeof h?h:void 0,"--xy-minimap-mask-stroke-color-props":"string"==typeof f?f:void 0,"--xy-minimap-mask-stroke-width-props":"number"==typeof g?g*L:void 0,"--xy-minimap-node-background-color-props":"string"==typeof a?a:void 0,"--xy-minimap-node-stroke-color-props":"string"==typeof i?i:void 0,"--xy-minimap-node-stroke-width-props":"string"==typeof c?c:void 0},className:r(["react-flow__minimap",o]),"data-testid":"rf__minimap",children:t.jsxs("svg",{width:A,height:R,viewBox:`${V} ${H} ${X} ${Y}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":Z,ref:_,onClick:K,children:[w&&t.jsx("title",{id:Z,children:w}),t.jsx(pl,{onClick:G,nodeColor:a,nodeStrokeColor:i,nodeBorderRadius:l,nodeClassName:s,nodeStrokeWidth:c,nodeComponent:u}),t.jsx("path",{className:"react-flow__minimap-mask",d:`M${V-j},${H-j}h${X+2*j}v${Y+2*j}h${-X-2*j}z\n M${N.x},${N.y}h${N.width}v${N.height}h${-N.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}yl.displayName="MiniMap";const vl=n.memo(yl);const xl=n.memo((function({nodeId:e,position:o,variant:i=jr.Handle,className:a,style:s={},children:l,color:c,minWidth:u=10,minHeight:d=10,maxWidth:h=Number.MAX_VALUE,maxHeight:f=Number.MAX_VALUE,keepAspectRatio:g=!1,shouldResize:p,onResizeStart:m,onResize:y,onResizeEnd:v}){const x=Ma(),w="string"==typeof e?e:x,b=pi(),S=n.useRef(null),E=i===jr.Line?"right":"bottom-right",C=o??E,_=n.useRef(null);n.useEffect((()=>{if(S.current&&w)return _.current||(_.current=qr({domNode:S.current,nodeId:w,getStoreItems:()=>{const{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:o,nodeOrigin:r}=b.getState();return{nodeLookup:e,transform:t,snapGrid:n,snapToGrid:o,nodeOrigin:r}},onChange:(e,t)=>{const{triggerNodeChanges:n,nodeLookup:o,parentLookup:r,nodeOrigin:i}=b.getState(),a=[],s={x:e.x,y:e.y},l=o.get(w);if(l&&l.expandParent&&l.parentId){const t=vr([{id:l.id,parentId:l.parentId,rect:{width:e.width??l.measured.width,height:e.height??l.measured.height,...Vo({x:e.x??l.position.x,y:e.y??l.position.y},l.parentId,o,l.origin??i)}}],o,r,i);a.push(...t),s.x=e.x?Math.max(0,e.x):void 0,s.y=e.y?Math.max(0,e.y):void 0}if(void 0!==s.x&&void 0!==s.y){const e={id:w,type:"position",position:{...s}};a.push(e)}if(void 0!==e.width&&void 0!==e.height){const t={id:w,type:"dimensions",resizing:!0,setAttributes:!0,dimensions:{width:e.width,height:e.height}};a.push(t)}for(const e of t){const t={...e,type:"position"};a.push(t)}n(a)},onEnd:()=>{const e={id:w,type:"dimensions",resizing:!1};b.getState().triggerNodeChanges([e])}})),_.current.update({controlPosition:C,boundaries:{minWidth:u,minHeight:d,maxWidth:h,maxHeight:f},keepAspectRatio:g,onResizeStart:m,onResize:y,onResizeEnd:v,shouldResize:p}),()=>{_.current?.destroy()}}),[C,u,d,h,f,g,m,y,v,p]);const M=C.split("-"),N=i===jr.Line?"borderColor":"backgroundColor",k=c?{...s,[N]:c}:s;return t.jsx("div",{className:r(["react-flow__resize-control","nodrag",...M,i,a]),ref:S,style:k,children:l})}));const wl=e=>e.domNode?.querySelector(".react-flow__renderer");function bl({children:e}){const t=gi(wl);return t?o.createPortal(e,t):null}const Sl=(e,t)=>e.length===t.length&&!e.some(((e,n)=>((e,t)=>e?.internals.positionAbsolute.x!==t?.internals.positionAbsolute.x||e?.internals.positionAbsolute.y!==t?.internals.positionAbsolute.y||e?.measured.width!==t?.measured.width||e?.measured.height!==t?.measured.height||e?.selected!==t?.selected||e?.internals.z!==t?.internals.z)(e,t[n]))),El=e=>({viewport:{x:e.transform[0],y:e.transform[1],zoom:e.transform[2]},nodeOrigin:e.nodeOrigin,selectedNodesCount:e.nodes.filter((e=>e.selected)).length});e.Background=el,e.BaseEdge=Ga,e.BezierEdge=ds,e.ControlButton=al,e.Controls=cl,e.EdgeLabelRenderer=function({children:e}){const t=gi(Vs);return t?o.createPortal(e,t):null},e.EdgeText=Ka,e.Handle=ka,e.MiniMap=vl,e.NodeResizeControl=xl,e.NodeResizer=function({nodeId:e,isVisible:n=!0,handleClassName:o,handleStyle:r,lineClassName:i,lineStyle:a,color:s,minWidth:l=10,minHeight:c=10,maxWidth:u=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:h=!1,shouldResize:f,onResizeStart:g,onResize:p,onResizeEnd:m}){return n?t.jsxs(t.Fragment,{children:[Hr.map((n=>t.jsx(xl,{className:i,style:a,nodeId:e,position:n,variant:jr.Line,color:s,minWidth:l,minHeight:c,maxWidth:u,maxHeight:d,onResizeStart:g,keepAspectRatio:h,shouldResize:f,onResize:p,onResizeEnd:m},n))),Vr.map((n=>t.jsx(xl,{className:o,style:r,nodeId:e,position:n,color:s,minWidth:l,minHeight:c,maxWidth:u,maxHeight:d,onResizeStart:g,keepAspectRatio:h,shouldResize:f,onResize:p,onResizeEnd:m},n)))]}):null},e.NodeToolbar=function({nodeId:o,children:i,className:a,style:s,isVisible:l,position:c=e.Position.Top,offset:u=10,align:d="center",...h}){const f=Ma(),g=n.useCallback((e=>(Array.isArray(o)?o:[o||f||""]).reduce(((t,n)=>{const o=e.nodeLookup.get(n);return o&&t.push(o),t}),[])),[o,f]),p=gi(g,Sl),{viewport:m,nodeOrigin:y,selectedNodesCount:v}=gi(El,Ni);if(!("boolean"==typeof l?l:1===p.length&&p[0].selected&&1===v)||!p.length)return null;const x=ho(p,{nodeOrigin:y}),w=Math.max(...p.map((e=>e.internals.z+1))),b={position:"absolute",transform:gr(x,m,c,u,d),zIndex:w,...s};return t.jsx(bl,{children:t.jsx("div",{style:b,className:r(["react-flow__node-toolbar",a]),...h,"data-id":p.reduce(((e,t)=>`${e}${t.id} `),"").trim(),children:i})})},e.Panel=_i,e.ReactFlow=js,e.ReactFlowProvider=Ls,e.SimpleBezierEdge=Ja,e.SmoothStepEdge=ns,e.StepEdge=is,e.StraightEdge=ls,e.ViewportPortal=function({children:e}){const t=gi(Hs);return t?o.createPortal(e,t):null},e.addEdge=or,e.applyEdgeChanges=Gi,e.applyNodeChanges=Ki,e.getBezierEdgeCenter=qo,e.getBezierPath=Jo,e.getConnectedEdges=po,e.getEdgeCenter=er,e.getIncomers=(e,t,n)=>{if(!e.id)return[];const o=new Set;return n.forEach((t=>{t.target===e.id&&o.add(t.source)})),t.filter((e=>o.has(e.id)))},e.getNodesBounds=ho,e.getOutgoers=(e,t,n)=>{if(!e.id)return[];const o=new Set;return n.forEach((t=>{t.source===e.id&&o.add(t.target)})),t.filter((e=>o.has(e.id)))},e.getSimpleBezierPath=Ua,e.getSmoothStepPath=lr,e.getStraightPath=rr,e.getViewportForBounds=$o,e.isEdge=ta,e.isNode=ea,e.reconnectEdge=(e,t,n,o={shouldReplaceId:!0})=>{const{id:r,...i}=e;if(!t.source||!t.target)return n;if(!n.find((t=>t.id===e.id)))return n;const a={...i,id:o.shouldReplaceId?nr(t):r,source:t.source,target:t.target,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle};return n.filter((e=>e.id!==r)).concat(a)},e.useConnection=function(){return gi(Fs,Ni)},e.useEdges=function(){return gi(Ys,Ni)},e.useEdgesState=function(e){const[t,o]=n.useState(e),r=n.useCallback((e=>o((t=>Gi(e,t)))),[]);return[t,o,r]},e.useHandleConnections=function({type:e,id:t=null,nodeId:o,onConnect:r,onDisconnect:i}){const a=Ma(),s=o??a,l=n.useRef(null),c=gi((n=>n.connectionLookup.get(`${s}-${e}-${t}`)),so);return n.useEffect((()=>{if(l.current&&l.current!==c){const e=c??new Map;lo(l.current,e,i),lo(e,l.current,r)}l.current=c??new Map}),[c,r,i]),n.useMemo((()=>Array.from(c?.values()??[])),[c])},e.useInternalNode=function(e){return gi(n.useCallback((t=>t.nodeLookup.get(e)),[e]),Ni)},e.useKeyPress=Hi,e.useNodeId=Ma,e.useNodes=function(){return gi(Xs,Ni)},e.useNodesData=function(e){return gi(n.useCallback((t=>{const n=[],o=Array.isArray(e),r=o?e:[e];for(const e of r){const o=t.nodeLookup.get(e);o&&n.push({id:o.id,type:o.type,data:o.data})}return o?n:n[0]??null}),[e]),wr)},e.useNodesInitialized=function(e=Ws){return gi((e=>t=>{if(0===t.nodeLookup.size)return!1;for(const[,{hidden:n,internals:o}]of t.nodeLookup)if((e.includeHiddenNodes||!n)&&(void 0===o.handleBounds||!jo(o.userNode)))return!1;return!0})(e))},e.useNodesState=function(e){const[t,o]=n.useState(e),r=n.useCallback((e=>o((t=>Ki(e,t)))),[]);return[t,o,r]},e.useOnSelectionChange=function({onChange:e}){const t=pi();n.useEffect((()=>{const n=[...t.getState().onSelectionChangeHandlers,e];return t.setState({onSelectionChangeHandlers:n}),()=>{const n=t.getState().onSelectionChangeHandlers.filter((t=>t!==e));t.setState({onSelectionChangeHandlers:n})}}),[e])},e.useOnViewportChange=function({onStart:e,onChange:t,onEnd:o}){const r=pi();n.useEffect((()=>{r.setState({onViewportChangeStart:e})}),[e]),n.useEffect((()=>{r.setState({onViewportChange:t})}),[t]),n.useEffect((()=>{r.setState({onViewportChangeEnd:o})}),[o])},e.useReactFlow=la,e.useStore=gi,e.useStoreApi=pi,e.useUpdateNodeInternals=function(){const e=pi();return n.useCallback((t=>{const{domNode:n,updateNodeInternals:o}=e.getState(),r=Array.isArray(t)?t:[t],i=new Map;r.forEach((e=>{const t=n?.querySelector(`.react-flow__node[data-id="${e}"]`);t&&i.set(e,{id:e,nodeElement:t,force:!0})})),requestAnimationFrame((()=>o(i)))}),[])},e.useViewport=function(){return gi(Zs,Ni)}}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyflow/react",
3
- "version": "12.0.0-next.22",
3
+ "version": "12.0.0-next.24",
4
4
  "description": "React Flow - A highly customizable React library for building node-based editors and interactive flow charts.",
5
5
  "keywords": [
6
6
  "react",
@@ -63,8 +63,8 @@
63
63
  "react": "^18.2.0",
64
64
  "typescript": "5.1.3",
65
65
  "@xyflow/tsconfig": "0.0.0",
66
- "@xyflow/eslint-config": "0.0.0",
67
- "@xyflow/rollup-config": "0.0.0"
66
+ "@xyflow/rollup-config": "0.0.0",
67
+ "@xyflow/eslint-config": "0.0.0"
68
68
  },
69
69
  "rollup": {
70
70
  "globals": {