sample-ui-component-library 0.0.4-dev → 0.0.5-dev
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js
CHANGED
|
@@ -43,5 +43,5 @@ object-assign
|
|
|
43
43
|
*
|
|
44
44
|
* This source code is licensed under the MIT license found in the
|
|
45
45
|
* LICENSE file in the root directory of this source tree.
|
|
46
|
-
*/var Yc=(Hc||(Hc=1,"production"===process.env.NODE_ENV?Pc.exports=function(){if(Lc)return Rc;Lc=1;var n=e,t=Vc(),r="function"==typeof Object.is?Object.is:function(n,e){return n===e&&(0!==n||1/n==1/e)||n!=n&&e!=e},o=t.useSyncExternalStore,a=n.useRef,i=n.useEffect,s=n.useMemo,l=n.useDebugValue;return Rc.useSyncExternalStoreWithSelector=function(n,e,t,d,c){var p=a(null);if(null===p.current){var u={hasValue:!1,value:null};p.current=u}else u=p.current;p=s(function(){function n(n){if(!i){if(i=!0,o=n,n=d(n),void 0!==c&&u.hasValue){var e=u.value;if(c(e,n))return a=e}return a=n}if(e=a,r(o,n))return e;var t=d(n);return void 0!==c&&c(e,t)?(o=n,e):(o=n,a=t)}var o,a,i=!1,s=void 0===t?null:t;return[function(){return n(e())},null===s?void 0:function(){return n(s())}]},[e,t,d,c]);var b=o(n,p[0],p[1]);return i(function(){u.hasValue=!0,u.value=b},[b]),l(b),b},Rc}():Pc.exports=($c||($c=1,"production"!==process.env.NODE_ENV&&function(){"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var n=e,t=Vc(),r="function"==typeof Object.is?Object.is:function(n,e){return n===e&&(0!==n||1/n==1/e)||n!=n&&e!=e},o=t.useSyncExternalStore,a=n.useRef,i=n.useEffect,s=n.useMemo,l=n.useDebugValue;Fc.useSyncExternalStoreWithSelector=function(n,e,t,d,c){var p=a(null);if(null===p.current){var u={hasValue:!1,value:null};p.current=u}else u=p.current;p=s(function(){function n(n){if(!i){if(i=!0,o=n,n=d(n),void 0!==c&&u.hasValue){var e=u.value;if(c(e,n))return a=e}return a=n}if(e=a,r(o,n))return e;var t=d(n);return void 0!==c&&c(e,t)?(o=n,e):(o=n,a=t)}var o,a,i=!1,s=void 0===t?null:t;return[function(){return n(e())},null===s?void 0:function(){return n(s())}]},[e,t,d,c]);var b=o(n,p[0],p[1]);return i(function(){u.hasValue=!0,u.value=b},[b]),l(b),b},"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),Fc)),Pc.exports),Gc=i(Yc);const Xc=n=>{let e;const t=new Set,r=(n,r)=>{const o="function"==typeof n?n(e):n;if(!Object.is(o,e)){const n=e;e=(null!=r?r:"object"!=typeof o||null===o)?o:Object.assign({},e,o),t.forEach(t=>t(e,n))}},o=()=>e,a={setState:r,getState:o,getInitialState:()=>i,subscribe:n=>(t.add(n),()=>t.delete(n)),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."),t.clear()}},i=e=n(r,o,a);return a},{useDebugValue:qc}=e,{useSyncExternalStoreWithSelector:Wc}=Gc,Zc=n=>n;function Kc(n,e=Zc,t){const r=Wc(n.subscribe,n.getState,n.getServerState||n.getInitialState,e,t);return qc(r),r}const Uc=(n,e)=>{const t=(n=>n?Xc(n):Xc)(n),r=(n,r=e)=>Kc(t,n,r);return Object.assign(r,t),r};function Qc(n,e){if(Object.is(n,e))return!0;if("object"!=typeof n||null===n||"object"!=typeof e||null===e)return!1;if(n instanceof Map&&e instanceof Map){if(n.size!==e.size)return!1;for(const[t,r]of n)if(!Object.is(r,e.get(t)))return!1;return!0}if(n instanceof Set&&e instanceof Set){if(n.size!==e.size)return!1;for(const t of n)if(!e.has(t))return!1;return!0}const t=Object.keys(n);if(t.length!==Object.keys(e).length)return!1;for(const r of t)if(!Object.prototype.hasOwnProperty.call(e,r)||!Object.is(n[r],e[r]))return!1;return!0}const Jc=e.createContext(null),np=Jc.Provider,ep=vl();function tp(n,t){const r=e.useContext(Jc);if(null===r)throw new Error(ep);return Kc(r,n,t)}function rp(){const n=e.useContext(Jc);if(null===n)throw new Error(ep);return e.useMemo(()=>({getState:n.getState,setState:n.setState,subscribe:n.subscribe}),[n])}const op={display:"none"},ap={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},ip="react-flow__node-desc",sp="react-flow__edge-desc",lp=n=>n.ariaLiveMessage,dp=n=>n.ariaLabelConfig;function cp({rfId:e}){const t=tp(lp);return n.jsx("div",{id:`react-flow__aria-live-${e}`,"aria-live":"assertive","aria-atomic":"true",style:ap,children:t})}function pp({rfId:e,disableKeyboardA11y:t}){const r=tp(dp);return n.jsxs(n.Fragment,{children:[n.jsx("div",{id:`${ip}-${e}`,style:op,children:t?r["node.a11yDescription.default"]:r["node.a11yDescription.keyboardDisabled"]}),n.jsx("div",{id:`${sp}-${e}`,style:op,children:r["edge.a11yDescription.default"]}),!t&&n.jsx(cp,{rfId:e})]})}const up=e.forwardRef(({position:e="top-left",children:t,className:r,style:o,...a},i)=>{const s=`${e}`.split("-");return n.jsx("div",{className:No(["react-flow__panel",r,...s]),style:o,ref:i,...a,children:t})});function bp({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:n.jsx(up,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:n.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}up.displayName="Panel";const mp=n=>{const e=[],t=[];for(const[,t]of n.nodeLookup)t.selected&&e.push(t.internals.userNode);for(const[,e]of n.edgeLookup)e.selected&&t.push(e);return{selectedNodes:e,selectedEdges:t}},fp=n=>n.id;function gp(n,e){return Qc(n.selectedNodes.map(fp),e.selectedNodes.map(fp))&&Qc(n.selectedEdges.map(fp),e.selectedEdges.map(fp))}function hp({onSelectionChange:n}){const t=rp(),{selectedNodes:r,selectedEdges:o}=tp(mp,gp);return e.useEffect(()=>{const e={nodes:r,edges:o};n?.(e),t.getState().onSelectionChangeHandlers.forEach(n=>n(e))},[r,o,n]),null}const vp=n=>!!n.onSelectionChangeHandlers;function xp({onSelectionChange:e}){const t=tp(vp);return e||t?n.jsx(hp,{onSelectionChange:e}):null}const wp=[0,0],yp={x:0,y:0,zoom:1},kp=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","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","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","paneClickDistance","ariaLabelConfig","rfId"],Ep=n=>({setNodes:n.setNodes,setEdges:n.setEdges,setMinZoom:n.setMinZoom,setMaxZoom:n.setMaxZoom,setTranslateExtent:n.setTranslateExtent,setNodeExtent:n.setNodeExtent,reset:n.reset,setDefaultNodesAndEdges:n.setDefaultNodesAndEdges,setPaneClickDistance:n.setPaneClickDistance}),_p={translateExtent:Ml,nodeOrigin:wp,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1",paneClickDistance:0};function Sp(n){const{setNodes:t,setEdges:r,setMinZoom:o,setMaxZoom:a,setTranslateExtent:i,setNodeExtent:s,reset:l,setDefaultNodesAndEdges:d,setPaneClickDistance:c}=tp(Ep,Qc),p=rp();e.useEffect(()=>(d(n.defaultNodes,n.defaultEdges),()=>{u.current=_p,l()}),[]);const u=e.useRef(_p);return e.useEffect(()=>{for(const e of kp){const l=n[e];l!==u.current[e]&&(void 0!==n[e]&&("nodes"===e?t(l):"edges"===e?r(l):"minZoom"===e?o(l):"maxZoom"===e?a(l):"translateExtent"===e?i(l):"nodeExtent"===e?s(l):"paneClickDistance"===e?c(l):"ariaLabelConfig"===e?p.setState({ariaLabelConfig:Ed(l)}):"fitView"===e?p.setState({fitViewQueued:l}):"fitViewOptions"===e?p.setState({fitViewOptions:l}):p.setState({[e]:l})))}u.current=n},kp.map(e=>n[e])),null}function Op(){return"undefined"!=typeof window&&window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)"):null}const Cp="undefined"!=typeof document?document:null;function Np(n=null,t={target:Cp,actInsideInputWithModifier:!0}){const[r,o]=e.useState(!1),a=e.useRef(!1),i=e.useRef(new Set([])),[s,l]=e.useMemo(()=>{if(null!==n){const e=(Array.isArray(n)?n:[n]).filter(n=>"string"==typeof n).map(n=>n.replace("+","\n").replace("\n\n","\n+").split("\n")),t=e.reduce((n,e)=>n.concat(...e),[]);return[e,t]}return[[],[]]},[n]);return e.useEffect(()=>{const e=t?.target??Cp,r=t?.actInsideInputWithModifier??!0;if(null!==n){const n=n=>{a.current=n.ctrlKey||n.metaKey||n.shiftKey||n.altKey;if((!a.current||a.current&&!r)&&Nd(n))return!1;const e=zp(n.code,l);if(i.current.add(n[e]),jp(s,i.current,!1)){const e=n.composedPath?.()?.[0]||n.target,r="BUTTON"===e?.nodeName||"A"===e?.nodeName;!1===t.preventDefault||!a.current&&r||n.preventDefault(),o(!0)}},d=n=>{const e=zp(n.code,l);jp(s,i.current,!0)?(o(!1),i.current.clear()):i.current.delete(n[e]),"Meta"===n.key&&i.current.clear(),a.current=!1},c=()=>{i.current.clear(),o(!1)};return e?.addEventListener("keydown",n),e?.addEventListener("keyup",d),window.addEventListener("blur",c),window.addEventListener("contextmenu",c),()=>{e?.removeEventListener("keydown",n),e?.removeEventListener("keyup",d),window.removeEventListener("blur",c),window.removeEventListener("contextmenu",c)}}},[n,o]),r}function jp(n,e,t){return n.filter(n=>t||n.length===e.size).some(n=>n.every(n=>e.has(n)))}function zp(n,e){return e.includes(n)?"code":"key"}function Mp(n,e){const t=[],r=new Map,o=[];for(const e of n)if("add"!==e.type)if("remove"===e.type||"replace"===e.type)r.set(e.id,[e]);else{const n=r.get(e.id);n?n.push(e):r.set(e.id,[e])}else o.push(e);for(const n of e){const e=r.get(n.id);if(!e){t.push(n);continue}if("remove"===e[0].type)continue;if("replace"===e[0].type){t.push({...e[0].item});continue}const o={...n};for(const n of e)Pp(n,o);t.push(o)}return o.length&&o.forEach(n=>{void 0!==n.index?t.splice(n.index,0,{...n.item}):t.push({...n.item})}),t}function Pp(n,e){switch(n.type){case"select":e.selected=n.selected;break;case"position":void 0!==n.position&&(e.position=n.position),void 0!==n.dragging&&(e.dragging=n.dragging);break;case"dimensions":void 0!==n.dimensions&&(e.measured??={},e.measured.width=n.dimensions.width,e.measured.height=n.dimensions.height,n.setAttributes&&(!0!==n.setAttributes&&"width"!==n.setAttributes||(e.width=n.dimensions.width),!0!==n.setAttributes&&"height"!==n.setAttributes||(e.height=n.dimensions.height))),"boolean"==typeof n.resizing&&(e.resizing=n.resizing)}}function Rp(n,e){return Mp(n,e)}function Ip(n,e){return Mp(n,e)}function Ap(n,e){return{id:n,type:"select",selected:e}}function Dp(n,e=new Set,t=!1){const r=[];for(const[o,a]of n){const n=e.has(o);void 0===a.selected&&!n||a.selected===n||(t&&(a.selected=n),r.push(Ap(a.id,n)))}return r}function Tp({items:n=[],lookup:e}){const t=[],r=new Map(n.map(n=>[n.id,n]));for(const[r,o]of n.entries()){const n=e.get(o.id),a=n?.internals?.userNode??n;void 0!==a&&a!==o&&t.push({id:o.id,item:o,type:"replace"}),void 0===a&&t.push({item:o,type:"add",index:r})}for(const[n]of e){void 0===r.get(n)&&t.push({id:n,type:"remove"})}return t}function Lp(n){return{id:n.id,type:"remove"}}const Bp=n=>(n=>"id"in n&&"position"in n&&!("source"in n)&&!("target"in n))(n);function Vp(n){return e.forwardRef(n)}const $p="undefined"!=typeof window?e.useLayoutEffect:e.useEffect;function Hp(n){const[t,r]=e.useState(BigInt(0)),[o]=e.useState(()=>function(n){let e=[];return{get:()=>e,reset:()=>{e=[]},push:t=>{e.push(t),n()}}}(()=>r(n=>n+BigInt(1))));return $p(()=>{const e=o.get();e.length&&(n(e),o.reset())},[t]),o}const Fp=e.createContext(null);function Yp({children:t}){const r=rp(),o=Hp(e.useCallback(n=>{const{nodes:e=[],setNodes:t,hasDefaultNodes:o,onNodesChange:a,nodeLookup:i,fitViewQueued:s}=r.getState();let l=e;for(const e of n)l="function"==typeof e?e(l):e;const d=Tp({items:l,lookup:i});o&&t(l),d.length>0?a?.(d):s&&window.requestAnimationFrame(()=>{const{fitViewQueued:n,nodes:e,setNodes:t}=r.getState();n&&t(e)})},[])),a=Hp(e.useCallback(n=>{const{edges:e=[],setEdges:t,hasDefaultEdges:o,onEdgesChange:a,edgeLookup:i}=r.getState();let s=e;for(const e of n)s="function"==typeof e?e(s):e;o?t(s):a&&a(Tp({items:s,lookup:i}))},[])),i=e.useMemo(()=>({nodeQueue:o,edgeQueue:a}),[]);return n.jsx(Fp.Provider,{value:i,children:t})}const Gp=n=>!!n.panZoom;function Xp(){const n=(()=>{const n=rp();return e.useMemo(()=>({zoomIn:e=>{const{panZoom:t}=n.getState();return t?t.scaleBy(1.2,{duration:e?.duration}):Promise.resolve(!1)},zoomOut:e=>{const{panZoom:t}=n.getState();return t?t.scaleBy(1/1.2,{duration:e?.duration}):Promise.resolve(!1)},zoomTo:(e,t)=>{const{panZoom:r}=n.getState();return r?r.scaleTo(e,{duration:t?.duration}):Promise.resolve(!1)},getZoom:()=>n.getState().transform[2],setViewport:async(e,t)=>{const{transform:[r,o,a],panZoom:i}=n.getState();return i?(await i.setViewport({x:e.x??r,y:e.y??o,zoom:e.zoom??a},t),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[e,t,r]=n.getState().transform;return{x:e,y:t,zoom:r}},setCenter:async(e,t,r)=>n.getState().setCenter(e,t,r),fitBounds:async(e,t)=>{const{width:r,height:o,minZoom:a,maxZoom:i,panZoom:s}=n.getState(),l=gd(e,r,o,a,i,t?.padding??.1);return s?(await s.setViewport(l,{duration:t?.duration,ease:t?.ease,interpolate:t?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(e,t={})=>{const{transform:r,snapGrid:o,snapToGrid:a,domNode:i}=n.getState();if(!i)return e;const{x:s,y:l}=i.getBoundingClientRect(),d={x:e.x-s,y:e.y-l},c=t.snapGrid??o,p=t.snapToGrid??a;return bd(d,r,p,c)},flowToScreenPosition:e=>{const{transform:t,domNode:r}=n.getState();if(!r)return e;const{x:o,y:a}=r.getBoundingClientRect(),i=md(e,t);return{x:i.x+o,y:i.y+a}}}),[])})(),t=rp(),r=function(){const n=e.useContext(Fp);if(!n)throw new Error("useBatchContext must be used within a BatchProvider");return n}(),o=tp(Gp),a=e.useMemo(()=>{const n=n=>t.getState().nodeLookup.get(n),e=n=>{r.nodeQueue.push(n)},o=n=>{r.edgeQueue.push(n)},a=n=>{const{nodeLookup:e,nodeOrigin:r}=t.getState(),o=Bp(n)?n:e.get(n.id),a=o.parentId?yd(o.position,o.measured,o.parentId,e,r):o.position,i={...o,position:a,width:o.measured?.width??o.width,height:o.measured?.height??o.height};return ad(i)},i=(n,t,r={replace:!1})=>{e(e=>e.map(e=>{if(e.id===n){const n="function"==typeof t?t(e):t;return r.replace&&Bp(n)?n:{...e,...n}}return e}))},s=(n,e,t={replace:!1})=>{o(r=>r.map(r=>{if(r.id===n){const n="function"==typeof e?e(r):e;return t.replace&&Fl(n)?n:{...r,...n}}return r}))};return{getNodes:()=>t.getState().nodes.map(n=>({...n})),getNode:e=>n(e)?.internals.userNode,getInternalNode:n,getEdges:()=>{const{edges:n=[]}=t.getState();return n.map(n=>({...n}))},getEdge:n=>t.getState().edgeLookup.get(n),setNodes:e,setEdges:o,addNodes:n=>{const e=Array.isArray(n)?n:[n];r.nodeQueue.push(n=>[...n,...e])},addEdges:n=>{const e=Array.isArray(n)?n:[n];r.edgeQueue.push(n=>[...n,...e])},toObject:()=>{const{nodes:n=[],edges:e=[],transform:r}=t.getState(),[o,a,i]=r;return{nodes:n.map(n=>({...n})),edges:e.map(n=>({...n})),viewport:{x:o,y:a,zoom:i}}},deleteElements:async({nodes:n=[],edges:e=[]})=>{const{nodes:r,edges:o,onNodesDelete:a,onEdgesDelete:i,triggerNodeChanges:s,triggerEdgeChanges:l,onDelete:d,onBeforeDelete:c}=t.getState(),{nodes:p,edges:u}=await Kl({nodesToRemove:n,edgesToRemove:e,nodes:r,edges:o,onBeforeDelete:c}),b=u.length>0,m=p.length>0;if(b){const n=u.map(Lp);i?.(u),l(n)}if(m){const n=p.map(Lp);a?.(p),s(n)}return(m||b)&&d?.({nodes:p,edges:u}),{deletedNodes:p,deletedEdges:u}},getIntersectingNodes:(n,e=!0,r)=>{const o=dd(n),i=o?n:a(n),s=void 0!==r;return i?(r||t.getState().nodes).filter(r=>{const a=t.getState().nodeLookup.get(r.id);if(a&&!o&&(r.id===n.id||!a.internals.positionAbsolute))return!1;const l=ad(s?r:a),d=ld(l,i);return e&&d>0||d>=l.width*l.height||d>=i.width*i.height}):[]},isNodeIntersecting:(n,e,t=!0)=>{const r=dd(n)?n:a(n);if(!r)return!1;const o=ld(r,e);return t&&o>0||o>=r.width*r.height},updateNode:i,updateNodeData:(n,e,t={replace:!1})=>{i(n,n=>{const r="function"==typeof e?e(n):e;return t.replace?{...n,data:r}:{...n,data:{...n.data,...r}}},t)},updateEdge:s,updateEdgeData:(n,e,t={replace:!1})=>{s(n,n=>{const r="function"==typeof e?e(n):e;return t.replace?{...n,data:r}:{...n,data:{...n.data,...r}}},t)},getNodesBounds:n=>{const{nodeLookup:e,nodeOrigin:r}=t.getState();return((n,e={nodeOrigin:[0,0]})=>{if("development"!==process.env.NODE_ENV||e.nodeLookup||console.warn("Please use `getNodesBounds` from `useReactFlow`/`useSvelteFlow` hook to ensure correct values for sub flows. If not possible, you have to provide a nodeLookup to support sub flows."),0===n.length)return{x:0,y:0,width:0,height:0};const t=n.reduce((n,t)=>{const r="string"==typeof t;let o=e.nodeLookup||r?void 0:t;e.nodeLookup&&(o=r?e.nodeLookup.get(t):Yl(t)?t:e.nodeLookup.get(t.id));const a=o?id(o,e.nodeOrigin):{x:0,y:0,x2:0,y2:0};return td(n,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return od(t)})(n,{nodeLookup:e,nodeOrigin:r})},getHandleConnections:({type:n,id:e,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${n}${e?`-${e}`:""}`)?.values()??[]),getNodeConnections:({type:n,handleId:e,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${n?e?`-${n}-${e}`:`-${n}`:""}`)?.values()??[]),fitView:async n=>{const e=t.getState().fitViewResolver??function(){let n,e;return{promise:new Promise((t,r)=>{n=t,e=r}),resolve:n,reject:e}}();return t.setState({fitViewQueued:!0,fitViewOptions:n,fitViewResolver:e}),r.nodeQueue.push(n=>[...n]),e.promise}}},[]);return e.useMemo(()=>({...a,...n,viewportInitialized:o}),[o])}const qp=n=>n.selected,Wp="undefined"!=typeof window?window:void 0;const Zp={position:"absolute",width:"100%",height:"100%",top:0,left:0},Kp=n=>({userSelectionActive:n.userSelectionActive,lib:n.lib});function Up({onPaneContextMenu:t,zoomOnScroll:r=!0,zoomOnPinch:o=!0,panOnScroll:a=!1,panOnScrollSpeed:i=.5,panOnScrollMode:s=Al.Free,zoomOnDoubleClick:l=!0,panOnDrag:d=!0,defaultViewport:c,translateExtent:p,minZoom:u,maxZoom:b,zoomActivationKeyCode:m,preventScrolling:f=!0,children:g,noWheelClassName:h,noPanClassName:v,onViewportChange:x,isControlledViewport:w,paneClickDistance:y}){const k=rp(),E=e.useRef(null),{userSelectionActive:_,lib:S}=tp(Kp,Qc),O=Np(m),C=e.useRef();!function(n){const t=rp();e.useEffect(()=>{const e=()=>{if(!n.current)return!1;const e=Sd(n.current);0!==e.height&&0!==e.width||t.getState().onError?.("004",yl()),t.setState({width:e.width||500,height:e.height||500})};if(n.current){e(),window.addEventListener("resize",e);const t=new ResizeObserver(()=>e());return t.observe(n.current),()=>{window.removeEventListener("resize",e),t&&n.current&&t.unobserve(n.current)}}},[])}(E);const N=e.useCallback(n=>{x?.({x:n[0],y:n[1],zoom:n[2]}),w||k.setState({transform:n})},[x,w]);return e.useEffect(()=>{if(E.current){C.current=yc({domNode:E.current,minZoom:u,maxZoom:b,translateExtent:p,viewport:c,paneClickDistance:y,onDraggingChange:n=>k.setState({paneDragging:n}),onPanZoomStart:(n,e)=>{const{onViewportChangeStart:t,onMoveStart:r}=k.getState();r?.(n,e),t?.(e)},onPanZoom:(n,e)=>{const{onViewportChange:t,onMove:r}=k.getState();r?.(n,e),t?.(e)},onPanZoomEnd:(n,e)=>{const{onViewportChangeEnd:t,onMoveEnd:r}=k.getState();r?.(n,e),t?.(e)}});const{x:n,y:e,zoom:t}=C.current.getViewport();return k.setState({panZoom:C.current,transform:[n,e,t],domNode:E.current.closest(".react-flow")}),()=>{C.current?.destroy()}}},[]),e.useEffect(()=>{C.current?.update({onPaneContextMenu:t,zoomOnScroll:r,zoomOnPinch:o,panOnScroll:a,panOnScrollSpeed:i,panOnScrollMode:s,zoomOnDoubleClick:l,panOnDrag:d,zoomActivationKeyPressed:O,preventScrolling:f,noPanClassName:v,userSelectionActive:_,noWheelClassName:h,lib:S,onTransformChange:N})},[t,r,o,a,i,s,l,d,O,f,v,_,h,S,N]),n.jsx("div",{className:"react-flow__renderer",ref:E,style:Zp,children:g})}const Qp=n=>({userSelectionActive:n.userSelectionActive,userSelectionRect:n.userSelectionRect});function Jp(){const{userSelectionActive:e,userSelectionRect:t}=tp(Qp,Qc);return e&&t?n.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const nu=(n,e)=>t=>{t.target===e.current&&n?.(t)},eu=n=>({userSelectionActive:n.userSelectionActive,elementsSelectable:n.elementsSelectable,connectionInProgress:n.connection.inProgress,dragging:n.paneDragging});function tu({isSelecting:t,selectionKeyPressed:r,selectionMode:o=Dl.Full,panOnDrag:a,selectionOnDrag:i,onSelectionStart:s,onSelectionEnd:l,onPaneClick:d,onPaneContextMenu:c,onPaneScroll:p,onPaneMouseEnter:u,onPaneMouseMove:b,onPaneMouseLeave:m,children:f}){const g=rp(),{userSelectionActive:h,elementsSelectable:v,dragging:x,connectionInProgress:w}=tp(eu,Qc),y=v&&(t||h),k=e.useRef(null),E=e.useRef(),_=e.useRef(new Set),S=e.useRef(new Set),O=e.useRef(!1),C=e.useRef(!1),N=n=>{O.current||w?O.current=!1:(d?.(n),g.getState().resetSelectedElements(),g.setState({nodesSelectionActive:!1}))},j=p?n=>p(n):void 0,z=!0===a||Array.isArray(a)&&a.includes(0);return n.jsxs("div",{className:No(["react-flow__pane",{draggable:z,dragging:x,selection:t}]),onClick:y?void 0:nu(N,k),onContextMenu:nu(n=>{Array.isArray(a)&&a?.includes(2)?n.preventDefault():c?.(n)},k),onWheel:nu(j,k),onPointerEnter:y?void 0:u,onPointerDown:y?n=>{const{resetSelectedElements:e,domNode:r}=g.getState();if(E.current=r?.getBoundingClientRect(),!v||!t||0!==n.button||n.target!==k.current||!E.current)return;n.target?.setPointerCapture?.(n.pointerId),C.current=!0,O.current=!1;const{x:o,y:a}=zd(n.nativeEvent,E.current);e(),g.setState({userSelectionRect:{width:0,height:0,startX:o,startY:a,x:o,y:a}}),s?.(n)}:b,onPointerMove:y?n=>{const{userSelectionRect:e,transform:t,nodeLookup:r,edgeLookup:a,connectionLookup:i,triggerNodeChanges:s,triggerEdgeChanges:l,defaultEdgeOptions:d}=g.getState();if(!E.current||!e)return;O.current=!0;const{x:c,y:p}=zd(n.nativeEvent,E.current),{startX:u,startY:b}=e,m={startX:u,startY:b,x:c<u?c:u,y:p<b?p:b,width:Math.abs(c-u),height:Math.abs(p-b)},f=_.current,h=S.current;_.current=new Set(ql(r,m,t,o===Dl.Partial,!0).map(n=>n.id)),S.current=new Set;const v=d?.selectable??!0;for(const n of _.current){const e=i.get(n);if(e)for(const{edgeId:n}of e.values()){const e=a.get(n);e&&(e.selectable??v)&&S.current.add(n)}}if(!kd(f,_.current)){s(Dp(r,_.current,!0))}if(!kd(h,S.current)){l(Dp(a,S.current))}g.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}:b,onPointerUp:y?n=>{if(0!==n.button||!C.current)return;n.target?.releasePointerCapture?.(n.pointerId);const{userSelectionRect:e}=g.getState();!h&&e&&n.target===k.current&&N?.(n),g.setState({userSelectionActive:!1,userSelectionRect:null,nodesSelectionActive:_.current.size>0}),l?.(n),(r||i)&&(O.current=!1),C.current=!1}:void 0,onPointerLeave:m,ref:k,style:Zp,children:[f,n.jsx(Jp,{})]})}function ru({id:n,store:e,unselect:t=!1,nodeRef:r}){const{addSelectedNodes:o,unselectNodesAndEdges:a,multiSelectionActive:i,nodeLookup:s,onError:l}=e.getState(),d=s.get(n);d?(e.setState({nodesSelectionActive:!1}),d.selected?(t||d.selected&&i)&&(a({nodes:[d],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):o([n])):l?.("012",Nl(n))}function ou({nodeRef:n,disabled:t=!1,noDragClassName:r,handleSelector:o,nodeId:a,isSelectable:i,nodeClickDistance:s}){const l=rp(),[d,c]=e.useState(!1),p=e.useRef();return e.useEffect(()=>{p.current=sc({getStoreItems:()=>l.getState(),onNodeMouseDown:e=>{ru({id:e,store:l,nodeRef:n})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}})},[]),e.useEffect(()=>{if(t)p.current?.destroy();else if(n.current)return p.current?.update({noDragClassName:r,handleSelector:o,domNode:n.current,isSelectable:i,nodeId:a,nodeClickDistance:s}),()=>{p.current?.destroy()}},[r,o,t,i,n,a]),d}function au(){const n=rp();return e.useCallback(e=>{const{nodeExtent:t,snapToGrid:r,snapGrid:o,nodesDraggable:a,onError:i,updateNodePositions:s,nodeLookup:l,nodeOrigin:d}=n.getState(),c=new Map,p=(n=>e=>e.selected&&(e.draggable||n&&void 0===e.draggable))(a),u=r?o[0]:5,b=r?o[1]:5,m=e.direction.x*u*e.factor,f=e.direction.y*b*e.factor;for(const[,n]of l){if(!p(n))continue;let e={x:n.internals.positionAbsolute.x+m,y:n.internals.positionAbsolute.y+f};r&&(e=ud(e,o));const{position:a,positionAbsolute:s}=Zl({nodeId:n.id,nextPosition:e,nodeLookup:l,nodeExtent:t,nodeOrigin:d,onError:i});n.position=a,n.internals.positionAbsolute=s,c.set(n.id,n)}s(c)},[])}const iu=e.createContext(null),su=iu.Provider;iu.Consumer;const lu=()=>e.useContext(iu),du=n=>({connectOnClick:n.connectOnClick,noPanClassName:n.noPanClassName,rfId:n.rfId});const cu=e.memo(Vp(function({type:e="source",position:t=Vl.Top,isValidConnection:r,isConnectable:o=!0,isConnectableStart:a=!0,isConnectableEnd:i=!0,id:s,onConnect:l,children:d,className:c,onMouseDown:p,onTouchStart:u,...b},m){const f=s||null,g="target"===e,h=rp(),v=lu(),{connectOnClick:x,noPanClassName:w,rfId:y}=tp(du,Qc),{connectingFrom:k,connectingTo:E,clickConnecting:_,isPossibleEndHandle:S,connectionInProcess:O,clickConnectionInProcess:C,valid:N}=tp(((n,e,t)=>r=>{const{connectionClickStartHandle:o,connectionMode:a,connection:i}=r,{fromHandle:s,toHandle:l,isValid:d}=i,c=l?.nodeId===n&&l?.id===e&&l?.type===t;return{connectingFrom:s?.nodeId===n&&s?.id===e&&s?.type===t,connectingTo:c,clickConnecting:o?.nodeId===n&&o?.id===e&&o?.type===t,isPossibleEndHandle:a===Il.Strict?s?.type!==t:n!==s?.nodeId||e!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!o,valid:c&&d}})(v,f,e),Qc);v||h.getState().onError?.("010",Ol());const j=n=>{const{defaultEdgeOptions:e,onConnect:t,hasDefaultEdges:r}=h.getState(),o={...e,...n};if(r){const{edges:n,setEdges:e}=h.getState();e(((n,e)=>{if(!n.source||!n.target)return pd("006",El()),e;let t;return t=Fl(n)?{...n}:{...n,id:Ld(n)},((n,e)=>e.some(e=>!(e.source!==n.source||e.target!==n.target||e.sourceHandle!==n.sourceHandle&&(e.sourceHandle||n.sourceHandle)||e.targetHandle!==n.targetHandle&&(e.targetHandle||n.targetHandle))))(t,e)?e:(null===t.sourceHandle&&delete t.sourceHandle,null===t.targetHandle&&delete t.targetHandle,e.concat(t))})(o,n))}t?.(o),l?.(o)},z=n=>{if(!v)return;const e=jd(n.nativeEvent);if(a&&(e&&0===n.button||!e)){const e=h.getState();bc.onPointerDown(n.nativeEvent,{autoPanOnConnect:e.autoPanOnConnect,connectionMode:e.connectionMode,connectionRadius:e.connectionRadius,domNode:e.domNode,nodeLookup:e.nodeLookup,lib:e.lib,isTarget:g,handleId:f,nodeId:v,flowId:e.rfId,panBy:e.panBy,cancelConnection:e.cancelConnection,onConnectStart:e.onConnectStart,onConnectEnd:e.onConnectEnd,updateConnection:e.updateConnection,onConnect:j,isValidConnection:r||e.isValidConnection,getTransform:()=>h.getState().transform,getFromHandle:()=>h.getState().connection.fromHandle,autoPanSpeed:e.autoPanSpeed,dragThreshold:e.connectionDragThreshold})}e?p?.(n):u?.(n)};return n.jsx("div",{"data-handleid":f,"data-nodeid":v,"data-handlepos":t,"data-id":`${y}-${v}-${f}-${e}`,className:No(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",w,c,{source:!g,target:g,connectable:o,connectablestart:a,connectableend:i,clickconnecting:_,connectingfrom:k,connectingto:E,valid:N,connectionindicator:o&&(!O||S)&&(O||C?i:a)}]),onMouseDown:z,onTouchStart:z,onClick:x?n=>{const{onClickConnectStart:t,onClickConnectEnd:o,connectionClickStartHandle:i,connectionMode:s,isValidConnection:l,lib:d,rfId:c,nodeLookup:p,connection:u}=h.getState();if(!v||!i&&!a)return;if(!i)return t?.(n.nativeEvent,{nodeId:v,handleId:f,handleType:e}),void h.setState({connectionClickStartHandle:{nodeId:v,type:e,id:f}});const b=Od(n.target),m=r||l,{connection:g,isValid:x}=bc.isValid(n.nativeEvent,{handle:{nodeId:v,id:f,type:e},connectionMode:s,fromNodeId:i.nodeId,fromHandleId:i.id||null,fromType:i.type,isValidConnection:m,flowId:c,doc:b,lib:d,nodeLookup:p});x&&g&&j(g);const w=structuredClone(u);delete w.inProgress,w.toPosition=w.toHandle?w.toHandle.position:null,o?.(n,w),h.setState({connectionClickStartHandle:null})}:void 0,ref:m,...b,children:d})}));const pu={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},uu={input:function({data:e,isConnectable:t,sourcePosition:r=Vl.Bottom}){return n.jsxs(n.Fragment,{children:[e?.label,n.jsx(cu,{type:"source",position:r,isConnectable:t})]})},default:function({data:e,isConnectable:t,targetPosition:r=Vl.Top,sourcePosition:o=Vl.Bottom}){return n.jsxs(n.Fragment,{children:[n.jsx(cu,{type:"target",position:r,isConnectable:t}),e?.label,n.jsx(cu,{type:"source",position:o,isConnectable:t})]})},output:function({data:e,isConnectable:t,targetPosition:r=Vl.Top}){return n.jsxs(n.Fragment,{children:[n.jsx(cu,{type:"target",position:r,isConnectable:t}),e?.label]})},group:function(){return null}};const bu=n=>{const{width:e,height:t,x:r,y:o}=Xl(n.nodeLookup,{filter:n=>!!n.selected});return{width:cd(e)?e:null,height:cd(t)?t:null,userSelectionActive:n.userSelectionActive,transformString:`translate(${n.transform[0]}px,${n.transform[1]}px) scale(${n.transform[2]}) translate(${r}px,${o}px)`}};function mu({onSelectionContextMenu:t,noPanClassName:r,disableKeyboardA11y:o}){const a=rp(),{width:i,height:s,transformString:l,userSelectionActive:d}=tp(bu,Qc),c=au(),p=e.useRef(null);if(e.useEffect(()=>{o||p.current?.focus({preventScroll:!0})},[o]),ou({nodeRef:p}),d||!i||!s)return null;const u=t?n=>{const e=a.getState().nodes.filter(n=>n.selected);t(n,e)}:void 0;return n.jsx("div",{className:No(["react-flow__nodesselection","react-flow__container",r]),style:{transform:l},children:n.jsx("div",{ref:p,className:"react-flow__nodesselection-rect",onContextMenu:u,tabIndex:o?void 0:-1,onKeyDown:o?void 0:n=>{Object.prototype.hasOwnProperty.call(pu,n.key)&&(n.preventDefault(),c({direction:pu[n.key],factor:n.shiftKey?4:1}))},style:{width:i,height:s}})})}const fu="undefined"!=typeof window?window:void 0,gu=n=>({nodesSelectionActive:n.nodesSelectionActive,userSelectionActive:n.userSelectionActive});function hu({children:t,onPaneClick:r,onPaneMouseEnter:o,onPaneMouseMove:a,onPaneMouseLeave:i,onPaneContextMenu:s,onPaneScroll:l,paneClickDistance:d,deleteKeyCode:c,selectionKeyCode:p,selectionOnDrag:u,selectionMode:b,onSelectionStart:m,onSelectionEnd:f,multiSelectionKeyCode:g,panActivationKeyCode:h,zoomActivationKeyCode:v,elementsSelectable:x,zoomOnScroll:w,zoomOnPinch:y,panOnScroll:k,panOnScrollSpeed:E,panOnScrollMode:_,zoomOnDoubleClick:S,panOnDrag:O,defaultViewport:C,translateExtent:N,minZoom:j,maxZoom:z,preventScrolling:M,onSelectionContextMenu:P,noWheelClassName:R,noPanClassName:I,disableKeyboardA11y:A,onViewportChange:D,isControlledViewport:T}){const{nodesSelectionActive:L,userSelectionActive:B}=tp(gu),V=Np(p,{target:fu}),$=Np(h,{target:fu}),H=$||O,F=$||k,Y=u&&!0!==H,G=V||B||Y;return function({deleteKeyCode:n,multiSelectionKeyCode:t}){const r=rp(),{deleteElements:o}=Xp(),a=Np(n,{actInsideInputWithModifier:!1}),i=Np(t,{target:Wp});e.useEffect(()=>{if(a){const{edges:n,nodes:e}=r.getState();o({nodes:e.filter(qp),edges:n.filter(qp)}),r.setState({nodesSelectionActive:!1})}},[a]),e.useEffect(()=>{r.setState({multiSelectionActive:i})},[i])}({deleteKeyCode:c,multiSelectionKeyCode:g}),n.jsx(Up,{onPaneContextMenu:s,elementsSelectable:x,zoomOnScroll:w,zoomOnPinch:y,panOnScroll:F,panOnScrollSpeed:E,panOnScrollMode:_,zoomOnDoubleClick:S,panOnDrag:!V&&H,defaultViewport:C,translateExtent:N,minZoom:j,maxZoom:z,zoomActivationKeyCode:v,preventScrolling:M,noWheelClassName:R,noPanClassName:I,onViewportChange:D,isControlledViewport:T,paneClickDistance:d,children:n.jsxs(tu,{onSelectionStart:m,onSelectionEnd:f,onPaneClick:r,onPaneMouseEnter:o,onPaneMouseMove:a,onPaneMouseLeave:i,onPaneContextMenu:s,onPaneScroll:l,panOnDrag:H,isSelecting:!!G,selectionMode:b,selectionKeyPressed:V,selectionOnDrag:Y,children:[t,L&&n.jsx(mu,{onSelectionContextMenu:P,noPanClassName:I,disableKeyboardA11y:A})]})})}hu.displayName="FlowRenderer";const vu=e.memo(hu);function xu(n){return tp(e.useCallback((n=>e=>n?ql(e.nodeLookup,{x:0,y:0,width:e.width,height:e.height},e.transform,!0).map(n=>n.id):Array.from(e.nodeLookup.keys()))(n),[n]),Qc)}const wu=n=>n.updateNodeInternals;function yu({id:t,onClick:r,onMouseEnter:o,onMouseMove:a,onMouseLeave:i,onContextMenu:s,onDoubleClick:l,nodesDraggable:d,elementsSelectable:c,nodesConnectable:p,nodesFocusable:u,resizeObserver:b,noDragClassName:m,noPanClassName:f,disableKeyboardA11y:g,rfId:h,nodeTypes:v,nodeClickDistance:x,onError:w}){const{node:y,internals:k,isParent:E}=tp(n=>{const e=n.nodeLookup.get(t),r=n.parentLookup.has(t);return{node:e,internals:e.internals,isParent:r}},Qc);let _=y.type||"default",S=v?.[_]||uu[_];void 0===S&&(w?.("003",wl(_)),_="default",S=v?.default||uu.default);const O=!!(y.draggable||d&&void 0===y.draggable),C=!!(y.selectable||c&&void 0===y.selectable),N=!!(y.connectable||p&&void 0===y.connectable),j=!!(y.focusable||u&&void 0===y.focusable),z=rp(),M=wd(y),P=function({node:n,nodeType:t,hasDimensions:r,resizeObserver:o}){const a=rp(),i=e.useRef(null),s=e.useRef(null),l=e.useRef(n.sourcePosition),d=e.useRef(n.targetPosition),c=e.useRef(t),p=r&&!!n.internals.handleBounds;return e.useEffect(()=>{!i.current||n.hidden||p&&s.current===i.current||(s.current&&o?.unobserve(s.current),o?.observe(i.current),s.current=i.current)},[p,n.hidden]),e.useEffect(()=>()=>{s.current&&(o?.unobserve(s.current),s.current=null)},[]),e.useEffect(()=>{if(i.current){const e=c.current!==t,r=l.current!==n.sourcePosition,o=d.current!==n.targetPosition;(e||r||o)&&(c.current=t,l.current=n.sourcePosition,d.current=n.targetPosition,a.getState().updateNodeInternals(new Map([[n.id,{id:n.id,nodeElement:i.current,force:!0}]])))}},[n.id,t,n.sourcePosition,n.targetPosition]),i}({node:y,nodeType:_,hasDimensions:M,resizeObserver:b}),R=ou({nodeRef:P,disabled:y.hidden||!O,noDragClassName:m,handleSelector:y.dragHandle,nodeId:t,isSelectable:C,nodeClickDistance:x}),I=au();if(y.hidden)return null;const A=xd(y),D=function(n){return void 0===n.internals.handleBounds?{width:n.width??n.initialWidth??n.style?.width,height:n.height??n.initialHeight??n.style?.height}:{width:n.width??n.style?.width,height:n.height??n.style?.height}}(y),T=C||O||r||o||a||i,L=o?n=>o(n,{...k.userNode}):void 0,B=a?n=>a(n,{...k.userNode}):void 0,V=i?n=>i(n,{...k.userNode}):void 0,$=s?n=>s(n,{...k.userNode}):void 0,H=l?n=>l(n,{...k.userNode}):void 0;return n.jsx("div",{className:No(["react-flow__node",`react-flow__node-${_}`,{[f]:O},y.className,{selected:y.selected,selectable:C,parent:E,draggable:O,dragging:R}]),ref:P,style:{zIndex:k.z,transform:`translate(${k.positionAbsolute.x}px,${k.positionAbsolute.y}px)`,pointerEvents:T?"all":"none",visibility:M?"visible":"hidden",...y.style,...D},"data-id":t,"data-testid":`rf__node-${t}`,onMouseEnter:L,onMouseMove:B,onMouseLeave:V,onContextMenu:$,onClick:n=>{const{selectNodesOnDrag:e,nodeDragThreshold:o}=z.getState();C&&(!e||!O||o>0)&&ru({id:t,store:z,nodeRef:P}),r&&r(n,{...k.userNode})},onDoubleClick:H,onKeyDown:j?n=>{if(!Nd(n.nativeEvent)&&!g)if(Pl.includes(n.key)&&C){const e="Escape"===n.key;ru({id:t,store:z,unselect:e,nodeRef:P})}else if(O&&y.selected&&Object.prototype.hasOwnProperty.call(pu,n.key)){n.preventDefault();const{ariaLabelConfig:e}=z.getState();z.setState({ariaLiveMessage:e["node.a11yDescription.ariaLiveMessage"]({direction:n.key.replace("Arrow","").toLowerCase(),x:~~k.positionAbsolute.x,y:~~k.positionAbsolute.y})}),I({direction:pu[n.key],factor:n.shiftKey?4:1})}}:void 0,tabIndex:j?0:void 0,onFocus:j?()=>{if(g||!P.current?.matches(":focus-visible"))return;const{transform:n,width:e,height:r,autoPanOnNodeFocus:o,setCenter:a}=z.getState();if(!o)return;ql(new Map([[t,y]]),{x:0,y:0,width:e,height:r},n,!0).length>0||a(y.position.x+A.width/2,y.position.y+A.height/2,{zoom:n[2]})}:void 0,role:y.ariaRole??(j?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${ip}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:n.jsx(su,{value:t,children:n.jsx(S,{id:t,data:y.data,type:_,positionAbsoluteX:k.positionAbsolute.x,positionAbsoluteY:k.positionAbsolute.y,selected:y.selected??!1,selectable:C,draggable:O,deletable:y.deletable??!0,isConnectable:N,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:R,dragHandle:y.dragHandle,zIndex:k.z,parentId:y.parentId,...A})})})}const ku=n=>({nodesDraggable:n.nodesDraggable,nodesConnectable:n.nodesConnectable,nodesFocusable:n.nodesFocusable,elementsSelectable:n.elementsSelectable,onError:n.onError});function Eu(t){const{nodesDraggable:r,nodesConnectable:o,nodesFocusable:a,elementsSelectable:i,onError:s}=tp(ku,Qc),l=xu(t.onlyRenderVisibleElements),d=function(){const n=tp(wu),[t]=e.useState(()=>"undefined"==typeof ResizeObserver?null:new ResizeObserver(e=>{const t=new Map;e.forEach(n=>{const e=n.target.getAttribute("data-id");t.set(e,{id:e,nodeElement:n.target,force:!0})}),n(t)}));return e.useEffect(()=>()=>{t?.disconnect()},[t]),t}();return n.jsx("div",{className:"react-flow__nodes",style:Zp,children:l.map(e=>n.jsx(yu,{id:e,nodeTypes:t.nodeTypes,nodeExtent:t.nodeExtent,onClick:t.onNodeClick,onMouseEnter:t.onNodeMouseEnter,onMouseMove:t.onNodeMouseMove,onMouseLeave:t.onNodeMouseLeave,onContextMenu:t.onNodeContextMenu,onDoubleClick:t.onNodeDoubleClick,noDragClassName:t.noDragClassName,noPanClassName:t.noPanClassName,rfId:t.rfId,disableKeyboardA11y:t.disableKeyboardA11y,resizeObserver:d,nodesDraggable:r,nodesConnectable:o,nodesFocusable:a,elementsSelectable:i,nodeClickDistance:t.nodeClickDistance,onError:s},e))})}Eu.displayName="NodeRenderer";const _u=e.memo(Eu);const Su={[Bl.Arrow]:({color:e="none",strokeWidth:t=1})=>n.jsx("polyline",{style:{stroke:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),[Bl.ArrowClosed]:({color:e="none",strokeWidth:t=1})=>n.jsx("polyline",{style:{stroke:e,fill:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})};const Ou=({id:t,type:r,color:o,width:a=12.5,height:i=12.5,markerUnits:s="strokeWidth",strokeWidth:l,orient:d="auto-start-reverse"})=>{const c=function(n){const t=rp();return e.useMemo(()=>Object.prototype.hasOwnProperty.call(Su,n)?Su[n]:(t.getState().onError?.("009",_l(n)),null),[n])}(r);return c?n.jsx("marker",{className:"react-flow__arrowhead",id:t,markerWidth:`${a}`,markerHeight:`${i}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:d,refX:"0",refY:"0",children:n.jsx(c,{color:o,strokeWidth:l})}):null},Cu=({defaultColor:t,rfId:r})=>{const o=tp(n=>n.edges),a=tp(n=>n.defaultEdgeOptions),i=e.useMemo(()=>{const n=function(n,{id:e,defaultColor:t,defaultMarkerStart:r,defaultMarkerEnd:o}){const a=new Set;return n.reduce((n,i)=>([i.markerStart||r,i.markerEnd||o].forEach(r=>{if(r&&"object"==typeof r){const o=Wd(r,e);a.has(o)||(n.push({id:o,color:r.color||t,...r}),a.add(o))}}),n),[]).sort((n,e)=>n.id.localeCompare(e.id))}(o,{id:r,defaultColor:t,defaultMarkerStart:a?.markerStart,defaultMarkerEnd:a?.markerEnd});return n},[o,a,r,t]);return i.length?n.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:n.jsx("defs",{children:i.map(e=>n.jsx(Ou,{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};Cu.displayName="MarkerDefinitions";var Nu=e.memo(Cu);function ju({x:t,y:r,label:o,labelStyle:a,labelShowBg:i=!0,labelBgStyle:s,labelBgPadding:l=[2,4],labelBgBorderRadius:d=2,children:c,className:p,...u}){const[b,m]=e.useState({x:1,y:0,width:0,height:0}),f=No(["react-flow__edge-textwrapper",p]),g=e.useRef(null);return e.useEffect(()=>{if(g.current){const n=g.current.getBBox();m({x:n.x,y:n.y,width:n.width,height:n.height})}},[o]),o?n.jsxs("g",{transform:`translate(${t-b.width/2} ${r-b.height/2})`,className:f,visibility:b.width?"visible":"hidden",...u,children:[i&&n.jsx("rect",{width:b.width+2*l[0],x:-l[0],y:-l[1],height:b.height+2*l[1],className:"react-flow__edge-textbg",style:s,rx:d,ry:d}),n.jsx("text",{className:"react-flow__edge-text",y:b.height/2,dy:"0.3em",ref:g,style:a,children:o}),c]}):null}ju.displayName="EdgeText";const zu=e.memo(ju);function Mu({path:e,labelX:t,labelY:r,label:o,labelStyle:a,labelShowBg:i,labelBgStyle:s,labelBgPadding:l,labelBgBorderRadius:d,interactionWidth:c=20,...p}){return n.jsxs(n.Fragment,{children:[n.jsx("path",{...p,d:e,fill:"none",className:No(["react-flow__edge-path",p.className])}),c&&n.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:c,className:"react-flow__edge-interaction"}),o&&cd(t)&&cd(r)?n.jsx(zu,{x:t,y:r,label:o,labelStyle:a,labelShowBg:i,labelBgStyle:s,labelBgPadding:l,labelBgBorderRadius:d}):null]})}function Pu({pos:n,x1:e,y1:t,x2:r,y2:o}){return n===Vl.Left||n===Vl.Right?[.5*(e+r),t]:[e,.5*(t+o)]}function Ru({sourceX:n,sourceY:e,sourcePosition:t=Vl.Bottom,targetX:r,targetY:o,targetPosition:a=Vl.Top}){const[i,s]=Pu({pos:t,x1:n,y1:e,x2:r,y2:o}),[l,d]=Pu({pos:a,x1:r,y1:o,x2:n,y2:e}),[c,p,u,b]=Pd({sourceX:n,sourceY:e,targetX:r,targetY:o,sourceControlX:i,sourceControlY:s,targetControlX:l,targetControlY:d});return[`M${n},${e} C${i},${s} ${l},${d} ${r},${o}`,c,p,u,b]}function Iu(t){return e.memo(({id:e,sourceX:r,sourceY:o,targetX:a,targetY:i,sourcePosition:s,targetPosition:l,label:d,labelStyle:c,labelShowBg:p,labelBgStyle:u,labelBgPadding:b,labelBgBorderRadius:m,style:f,markerEnd:g,markerStart:h,interactionWidth:v})=>{const[x,w,y]=Ru({sourceX:r,sourceY:o,sourcePosition:s,targetX:a,targetY:i,targetPosition:l}),k=t.isInternal?void 0:e;return n.jsx(Mu,{id:k,path:x,labelX:w,labelY:y,label:d,labelStyle:c,labelShowBg:p,labelBgStyle:u,labelBgPadding:b,labelBgBorderRadius:m,style:f,markerEnd:g,markerStart:h,interactionWidth:v})})}const Au=Iu({isInternal:!1}),Du=Iu({isInternal:!0});function Tu(t){return e.memo(({id:e,sourceX:r,sourceY:o,targetX:a,targetY:i,label:s,labelStyle:l,labelShowBg:d,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:u,style:b,sourcePosition:m=Vl.Bottom,targetPosition:f=Vl.Top,markerEnd:g,markerStart:h,pathOptions:v,interactionWidth:x})=>{const[w,y,k]=Fd({sourceX:r,sourceY:o,sourcePosition:m,targetX:a,targetY:i,targetPosition:f,borderRadius:v?.borderRadius,offset:v?.offset,stepPosition:v?.stepPosition}),E=t.isInternal?void 0:e;return n.jsx(Mu,{id:E,path:w,labelX:y,labelY:k,label:s,labelStyle:l,labelShowBg:d,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:u,style:b,markerEnd:g,markerStart:h,interactionWidth:x})})}Au.displayName="SimpleBezierEdge",Du.displayName="SimpleBezierEdgeInternal";const Lu=Tu({isInternal:!1}),Bu=Tu({isInternal:!0});function Vu(t){return e.memo(({id:r,...o})=>{const a=t.isInternal?void 0:r;return n.jsx(Lu,{...o,id:a,pathOptions:e.useMemo(()=>({borderRadius:0,offset:o.pathOptions?.offset}),[o.pathOptions?.offset])})})}Lu.displayName="SmoothStepEdge",Bu.displayName="SmoothStepEdgeInternal";const $u=Vu({isInternal:!1}),Hu=Vu({isInternal:!0});function Fu(t){return e.memo(({id:e,sourceX:r,sourceY:o,targetX:a,targetY:i,label:s,labelStyle:l,labelShowBg:d,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:u,style:b,markerEnd:m,markerStart:f,interactionWidth:g})=>{const[h,v,x]=Bd({sourceX:r,sourceY:o,targetX:a,targetY:i}),w=t.isInternal?void 0:e;return n.jsx(Mu,{id:w,path:h,labelX:v,labelY:x,label:s,labelStyle:l,labelShowBg:d,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:u,style:b,markerEnd:m,markerStart:f,interactionWidth:g})})}$u.displayName="StepEdge",Hu.displayName="StepEdgeInternal";const Yu=Fu({isInternal:!1}),Gu=Fu({isInternal:!0});function Xu(t){return e.memo(({id:e,sourceX:r,sourceY:o,targetX:a,targetY:i,sourcePosition:s=Vl.Bottom,targetPosition:l=Vl.Top,label:d,labelStyle:c,labelShowBg:p,labelBgStyle:u,labelBgPadding:b,labelBgBorderRadius:m,style:f,markerEnd:g,markerStart:h,pathOptions:v,interactionWidth:x})=>{const[w,y,k]=Ad({sourceX:r,sourceY:o,sourcePosition:s,targetX:a,targetY:i,targetPosition:l,curvature:v?.curvature}),E=t.isInternal?void 0:e;return n.jsx(Mu,{id:E,path:w,labelX:y,labelY:k,label:d,labelStyle:c,labelShowBg:p,labelBgStyle:u,labelBgPadding:b,labelBgBorderRadius:m,style:f,markerEnd:g,markerStart:h,interactionWidth:x})})}Yu.displayName="StraightEdge",Gu.displayName="StraightEdgeInternal";const qu=Xu({isInternal:!1}),Wu=Xu({isInternal:!0});qu.displayName="BezierEdge",Wu.displayName="BezierEdgeInternal";const Zu={default:Wu,straight:Gu,step:Hu,smoothstep:Bu,simplebezier:Du},Ku={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},Uu=(n,e,t)=>t===Vl.Left?n-e:t===Vl.Right?n+e:n,Qu=(n,e,t)=>t===Vl.Top?n-e:t===Vl.Bottom?n+e:n,Ju="react-flow__edgeupdater";function nb({position:e,centerX:t,centerY:r,radius:o=10,onMouseDown:a,onMouseEnter:i,onMouseOut:s,type:l}){return n.jsx("circle",{onMouseDown:a,onMouseEnter:i,onMouseOut:s,className:No([Ju,`${Ju}-${l}`]),cx:Uu(t,o,e),cy:Qu(r,o,e),r:o,stroke:"transparent",fill:"transparent"})}function eb({isReconnectable:e,reconnectRadius:t,edge:r,sourceX:o,sourceY:a,targetX:i,targetY:s,sourcePosition:l,targetPosition:d,onReconnect:c,onReconnectStart:p,onReconnectEnd:u,setReconnecting:b,setUpdateHover:m}){const f=rp(),g=(n,e)=>{if(0!==n.button)return;const{autoPanOnConnect:t,domNode:o,isValidConnection:a,connectionMode:i,connectionRadius:s,lib:l,onConnectStart:d,onConnectEnd:m,cancelConnection:g,nodeLookup:h,rfId:v,panBy:x,updateConnection:w}=f.getState(),y="target"===e.type;bc.onPointerDown(n.nativeEvent,{autoPanOnConnect:t,connectionMode:i,connectionRadius:s,domNode:o,handleId:e.id,nodeId:e.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:e.type,lib:l,flowId:v,cancelConnection:g,panBy:x,isValidConnection:a,onConnect:n=>c?.(r,n),onConnectStart:(t,o)=>{b(!0),p?.(n,r,e.type),d?.(t,o)},onConnectEnd:m,onReconnectEnd:(n,t)=>{b(!1),u?.(n,r,e.type,t)},updateConnection:w,getTransform:()=>f.getState().transform,getFromHandle:()=>f.getState().connection.fromHandle,dragThreshold:f.getState().connectionDragThreshold})},h=()=>m(!0),v=()=>m(!1);return n.jsxs(n.Fragment,{children:[(!0===e||"source"===e)&&n.jsx(nb,{position:l,centerX:o,centerY:a,radius:t,onMouseDown:n=>g(n,{nodeId:r.target,id:r.targetHandle??null,type:"target"}),onMouseEnter:h,onMouseOut:v,type:"source"}),(!0===e||"target"===e)&&n.jsx(nb,{position:d,centerX:i,centerY:s,radius:t,onMouseDown:n=>g(n,{nodeId:r.source,id:r.sourceHandle??null,type:"source"}),onMouseEnter:h,onMouseOut:v,type:"target"})]})}function tb({id:t,edgesFocusable:r,edgesReconnectable:o,elementsSelectable:a,onClick:i,onDoubleClick:s,onContextMenu:l,onMouseEnter:d,onMouseMove:c,onMouseLeave:p,reconnectRadius:u,onReconnect:b,onReconnectStart:m,onReconnectEnd:f,rfId:g,edgeTypes:h,noPanClassName:v,onError:x,disableKeyboardA11y:w}){let y=tp(n=>n.edgeLookup.get(t));const k=tp(n=>n.defaultEdgeOptions);y=k?{...k,...y}:y;let E=y.type||"default",_=h?.[E]||Zu[E];void 0===_&&(x?.("011",Cl(E)),E="default",_=h?.default||Zu.default);const S=!!(y.focusable||r&&void 0===y.focusable),O=void 0!==b&&(y.reconnectable||o&&void 0===y.reconnectable),C=!!(y.selectable||a&&void 0===y.selectable),N=e.useRef(null),[j,z]=e.useState(!1),[M,P]=e.useState(!1),R=rp(),{zIndex:I,sourceX:A,sourceY:D,targetX:T,targetY:L,sourcePosition:B,targetPosition:V}=tp(e.useCallback(n=>{const e=n.nodeLookup.get(y.source),r=n.nodeLookup.get(y.target);if(!e||!r)return{zIndex:y.zIndex,...Ku};const o=function(n){const{sourceNode:e,targetNode:t}=n;if(!Yd(e)||!Yd(t))return null;const r=e.internals.handleBounds||Gd(e.handles),o=t.internals.handleBounds||Gd(t.handles),a=qd(r?.source??[],n.sourceHandle),i=qd(n.connectionMode===Il.Strict?o?.target??[]:(o?.target??[]).concat(o?.source??[]),n.targetHandle);if(!a||!i)return n.onError?.("008",Sl(a?"target":"source",{id:n.id,sourceHandle:n.sourceHandle,targetHandle:n.targetHandle})),null;const s=a?.position||Vl.Bottom,l=i?.position||Vl.Top,d=Xd(e,a,s),c=Xd(t,i,l);return{sourceX:d.x,sourceY:d.y,targetX:c.x,targetY:c.y,sourcePosition:s,targetPosition:l}}({id:t,sourceNode:e,targetNode:r,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:n.connectionMode,onError:x}),a=function({sourceNode:n,targetNode:e,selected:t=!1,zIndex:r,elevateOnSelect:o=!1}){return void 0!==r?r:(o&&t?1e3:0)+Math.max(n.parentId?n.internals.z:0,e.parentId?e.internals.z:0)}({selected:y.selected,zIndex:y.zIndex,sourceNode:e,targetNode:r,elevateOnSelect:n.elevateEdgesOnSelect});return{zIndex:a,...o||Ku}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex]),Qc),$=e.useMemo(()=>y.markerStart?`url('#${Wd(y.markerStart,g)}')`:void 0,[y.markerStart,g]),H=e.useMemo(()=>y.markerEnd?`url('#${Wd(y.markerEnd,g)}')`:void 0,[y.markerEnd,g]);if(y.hidden||null===A||null===D||null===T||null===L)return null;const F=s?n=>{s(n,{...y})}:void 0,Y=l?n=>{l(n,{...y})}:void 0,G=d?n=>{d(n,{...y})}:void 0,X=c?n=>{c(n,{...y})}:void 0,q=p?n=>{p(n,{...y})}:void 0;return n.jsx("svg",{style:{zIndex:I},children:n.jsxs("g",{className:No(["react-flow__edge",`react-flow__edge-${E}`,y.className,v,{selected:y.selected,animated:y.animated,inactive:!C&&!i,updating:j,selectable:C}]),onClick:n=>{const{addSelectedEdges:e,unselectNodesAndEdges:r,multiSelectionActive:o}=R.getState();C&&(R.setState({nodesSelectionActive:!1}),y.selected&&o?(r({nodes:[],edges:[y]}),N.current?.blur()):e([t])),i&&i(n,y)},onDoubleClick:F,onContextMenu:Y,onMouseEnter:G,onMouseMove:X,onMouseLeave:q,onKeyDown:S?n=>{if(!w&&Pl.includes(n.key)&&C){const{unselectNodesAndEdges:e,addSelectedEdges:r}=R.getState();"Escape"===n.key?(N.current?.blur(),e({edges:[y]})):r([t])}}:void 0,tabIndex:S?0:void 0,role:y.ariaRole??(S?"group":"img"),"aria-roledescription":"edge","data-id":t,"data-testid":`rf__edge-${t}`,"aria-label":null===y.ariaLabel?void 0:y.ariaLabel||`Edge from ${y.source} to ${y.target}`,"aria-describedby":S?`${sp}-${g}`:void 0,ref:N,...y.domAttributes,children:[!M&&n.jsx(_,{id:t,source:y.source,target:y.target,type:y.type,selected:y.selected,animated:y.animated,selectable:C,deletable:y.deletable??!0,label:y.label,labelStyle:y.labelStyle,labelShowBg:y.labelShowBg,labelBgStyle:y.labelBgStyle,labelBgPadding:y.labelBgPadding,labelBgBorderRadius:y.labelBgBorderRadius,sourceX:A,sourceY:D,targetX:T,targetY:L,sourcePosition:B,targetPosition:V,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:$,markerEnd:H,pathOptions:"pathOptions"in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),O&&n.jsx(eb,{edge:y,isReconnectable:O,reconnectRadius:u,onReconnect:b,onReconnectStart:m,onReconnectEnd:f,sourceX:A,sourceY:D,targetX:T,targetY:L,sourcePosition:B,targetPosition:V,setUpdateHover:z,setReconnecting:P})]})})}const rb=n=>({edgesFocusable:n.edgesFocusable,edgesReconnectable:n.edgesReconnectable,elementsSelectable:n.elementsSelectable,connectionMode:n.connectionMode,onError:n.onError});function ob({defaultMarkerColor:t,onlyRenderVisibleElements:r,rfId:o,edgeTypes:a,noPanClassName:i,onReconnect:s,onEdgeContextMenu:l,onEdgeMouseEnter:d,onEdgeMouseMove:c,onEdgeMouseLeave:p,onEdgeClick:u,reconnectRadius:b,onEdgeDoubleClick:m,onReconnectStart:f,onReconnectEnd:g,disableKeyboardA11y:h}){const{edgesFocusable:v,edgesReconnectable:x,elementsSelectable:w,onError:y}=tp(rb,Qc),k=(E=r,tp(e.useCallback(n=>{if(!E)return n.edges.map(n=>n.id);const e=[];if(n.width&&n.height)for(const t of n.edges){const r=n.nodeLookup.get(t.source),o=n.nodeLookup.get(t.target);r&&o&&Td({sourceNode:r,targetNode:o,width:n.width,height:n.height,transform:n.transform})&&e.push(t.id)}return e},[E]),Qc));var E;return n.jsxs("div",{className:"react-flow__edges",children:[n.jsx(Nu,{defaultColor:t,rfId:o}),k.map(e=>n.jsx(tb,{id:e,edgesFocusable:v,edgesReconnectable:x,elementsSelectable:w,noPanClassName:i,onReconnect:s,onContextMenu:l,onMouseEnter:d,onMouseMove:c,onMouseLeave:p,onClick:u,reconnectRadius:b,onDoubleClick:m,onReconnectStart:f,onReconnectEnd:g,rfId:o,onError:y,edgeTypes:a,disableKeyboardA11y:h},e))]})}ob.displayName="EdgeRenderer";const ab=e.memo(ob),ib=n=>`translate(${n.transform[0]}px,${n.transform[1]}px) scale(${n.transform[2]})`;function sb({children:e}){const t=tp(ib);return n.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}const lb=n=>n.panZoom?.syncViewport;function db(n){return n.connection.inProgress?{...n.connection,to:bd(n.connection.to,n.transform)}:{...n.connection}}function cb(n){return tp(db,Qc)}const pb=n=>({nodesConnectable:n.nodesConnectable,isValid:n.connection.isValid,inProgress:n.connection.inProgress,width:n.width,height:n.height});function ub({containerStyle:e,style:t,type:r,component:o}){const{nodesConnectable:a,width:i,height:s,isValid:l,inProgress:d}=tp(pb,Qc);return!!(i&&a&&d)?n.jsx("svg",{style:e,width:i,height:s,className:"react-flow__connectionline react-flow__container",children:n.jsx("g",{className:No(["react-flow__connection",Hl(l)]),children:n.jsx(bb,{style:t,type:r,CustomComponent:o,isValid:l})})}):null}const bb=({style:e,type:t=Ll.Bezier,CustomComponent:r,isValid:o})=>{const{inProgress:a,from:i,fromNode:s,fromHandle:l,fromPosition:d,to:c,toNode:p,toHandle:u,toPosition:b}=cb();if(!a)return;if(r)return n.jsx(r,{connectionLineType:t,connectionLineStyle:e,fromNode:s,fromHandle:l,fromX:i.x,fromY:i.y,toX:c.x,toY:c.y,fromPosition:d,toPosition:b,connectionStatus:Hl(o),toNode:p,toHandle:u});let m="";const f={sourceX:i.x,sourceY:i.y,sourcePosition:d,targetX:c.x,targetY:c.y,targetPosition:b};switch(t){case Ll.Bezier:[m]=Ad(f);break;case Ll.SimpleBezier:[m]=Ru(f);break;case Ll.Step:[m]=Fd({...f,borderRadius:0});break;case Ll.SmoothStep:[m]=Fd(f);break;default:[m]=Bd(f)}return n.jsx("path",{d:m,fill:"none",className:"react-flow__connection-path",style:e})};bb.displayName="ConnectionLine";const mb={};function fb(n=mb){const t=e.useRef(n),r=rp();e.useEffect(()=>{if("development"===process.env.NODE_ENV){const e=new Set([...Object.keys(t.current),...Object.keys(n)]);for(const o of e)if(t.current[o]!==n[o]){r.getState().onError?.("002",xl());break}t.current=n}},[n])}function gb({nodeTypes:t,edgeTypes:r,onInit:o,onNodeClick:a,onEdgeClick:i,onNodeDoubleClick:s,onEdgeDoubleClick:l,onNodeMouseEnter:d,onNodeMouseMove:c,onNodeMouseLeave:p,onNodeContextMenu:u,onSelectionContextMenu:b,onSelectionStart:m,onSelectionEnd:f,connectionLineType:g,connectionLineStyle:h,connectionLineComponent:v,connectionLineContainerStyle:x,selectionKeyCode:w,selectionOnDrag:y,selectionMode:k,multiSelectionKeyCode:E,panActivationKeyCode:_,zoomActivationKeyCode:S,deleteKeyCode:O,onlyRenderVisibleElements:C,elementsSelectable:N,defaultViewport:j,translateExtent:z,minZoom:M,maxZoom:P,preventScrolling:R,defaultMarkerColor:I,zoomOnScroll:A,zoomOnPinch:D,panOnScroll:T,panOnScrollSpeed:L,panOnScrollMode:B,zoomOnDoubleClick:V,panOnDrag:$,onPaneClick:H,onPaneMouseEnter:F,onPaneMouseMove:Y,onPaneMouseLeave:G,onPaneScroll:X,onPaneContextMenu:q,paneClickDistance:W,nodeClickDistance:Z,onEdgeContextMenu:K,onEdgeMouseEnter:U,onEdgeMouseMove:Q,onEdgeMouseLeave:J,reconnectRadius:nn,onReconnect:en,onReconnectStart:tn,onReconnectEnd:rn,noDragClassName:on,noWheelClassName:an,noPanClassName:sn,disableKeyboardA11y:ln,nodeExtent:dn,rfId:cn,viewport:pn,onViewportChange:un}){return fb(t),fb(r),function(){const n=rp(),t=e.useRef(!1);e.useEffect(()=>{if("development"===process.env.NODE_ENV&&!t.current){const e=document.querySelector(".react-flow__pane");e&&"1"!==window.getComputedStyle(e).zIndex&&n.getState().onError?.("013",jl("react")),t.current=!0}},[])}(),function(n){const t=Xp(),r=e.useRef(!1);e.useEffect(()=>{!r.current&&t.viewportInitialized&&n&&(setTimeout(()=>n(t),1),r.current=!0)},[n,t.viewportInitialized])}(o),function(n){const t=tp(lb),r=rp();e.useEffect(()=>{n&&(t?.(n),r.setState({transform:[n.x,n.y,n.zoom]}))},[n,t])}(pn),n.jsx(vu,{onPaneClick:H,onPaneMouseEnter:F,onPaneMouseMove:Y,onPaneMouseLeave:G,onPaneContextMenu:q,onPaneScroll:X,paneClickDistance:W,deleteKeyCode:O,selectionKeyCode:w,selectionOnDrag:y,selectionMode:k,onSelectionStart:m,onSelectionEnd:f,multiSelectionKeyCode:E,panActivationKeyCode:_,zoomActivationKeyCode:S,elementsSelectable:N,zoomOnScroll:A,zoomOnPinch:D,zoomOnDoubleClick:V,panOnScroll:T,panOnScrollSpeed:L,panOnScrollMode:B,panOnDrag:$,defaultViewport:j,translateExtent:z,minZoom:M,maxZoom:P,onSelectionContextMenu:b,preventScrolling:R,noDragClassName:on,noWheelClassName:an,noPanClassName:sn,disableKeyboardA11y:ln,onViewportChange:un,isControlledViewport:!!pn,children:n.jsxs(sb,{children:[n.jsx(ab,{edgeTypes:r,onEdgeClick:i,onEdgeDoubleClick:l,onReconnect:en,onReconnectStart:tn,onReconnectEnd:rn,onlyRenderVisibleElements:C,onEdgeContextMenu:K,onEdgeMouseEnter:U,onEdgeMouseMove:Q,onEdgeMouseLeave:J,reconnectRadius:nn,defaultMarkerColor:I,noPanClassName:sn,disableKeyboardA11y:ln,rfId:cn}),n.jsx(ub,{style:h,type:g,component:v,containerStyle:x}),n.jsx("div",{className:"react-flow__edgelabel-renderer"}),n.jsx(_u,{nodeTypes:t,onNodeClick:a,onNodeDoubleClick:s,onNodeMouseEnter:d,onNodeMouseMove:c,onNodeMouseLeave:p,onNodeContextMenu:u,nodeClickDistance:Z,onlyRenderVisibleElements:C,noPanClassName:sn,noDragClassName:on,disableKeyboardA11y:ln,nodeExtent:dn,rfId:cn}),n.jsx("div",{className:"react-flow__viewport-portal"})]})})}gb.displayName="GraphView";const hb=e.memo(gb),vb=({nodes:n,edges:e,defaultNodes:t,defaultEdges:r,width:o,height:a,fitView:i,fitViewOptions:s,minZoom:l=.5,maxZoom:d=2,nodeOrigin:c,nodeExtent:p}={})=>{const u=new Map,b=new Map,m=new Map,f=new Map,g=r??e??[],h=t??n??[],v=c??[0,0],x=p??Ml;rc(m,f,g);const w=Qd(h,u,b,{nodeOrigin:v,nodeExtent:x,elevateNodesOnSelect:!1});let y=[0,0,1];if(i&&o&&a){const n=Xl(u,{filter:n=>!(!n.width&&!n.initialWidth||!n.height&&!n.initialHeight)}),{x:e,y:t,zoom:r}=gd(n,o,a,l,d,s?.padding??.1);y=[e,t,r]}return{rfId:"1",width:0,height:0,transform:y,nodes:h,nodesInitialized:w,nodeLookup:u,parentLookup:b,edges:g,edgeLookup:f,connectionLookup:m,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:void 0!==t,hasDefaultEdges:void 0!==r,panZoom:null,minZoom:l,maxZoom:d,translateExtent:Ml,nodeExtent:x,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Il.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:v,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!1,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:i??!1,fitViewOptions:s,fitViewResolver:null,connection:{...Tl},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:pd,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Rl}},xb=({nodes:n,edges:e,defaultNodes:t,defaultEdges:r,width:o,height:a,fitView:i,fitViewOptions:s,minZoom:l,maxZoom:d,nodeOrigin:c,nodeExtent:p})=>{return u=(u,b)=>{async function m(){const{nodeLookup:n,panZoom:e,fitViewOptions:t,fitViewResolver:r,width:o,height:a,minZoom:i,maxZoom:s}=b();e&&(await Wl({nodes:n,width:o,height:a,panZoom:e,minZoom:i,maxZoom:s},t),r?.resolve(!0),u({fitViewResolver:null}))}return{...vb({nodes:n,edges:e,width:o,height:a,fitView:i,fitViewOptions:s,minZoom:l,maxZoom:d,nodeOrigin:c,nodeExtent:p,defaultNodes:t,defaultEdges:r}),setNodes:n=>{const{nodeLookup:e,parentLookup:t,nodeOrigin:r,elevateNodesOnSelect:o,fitViewQueued:a}=b(),i=Qd(n,e,t,{nodeOrigin:r,nodeExtent:p,elevateNodesOnSelect:o,checkEquality:!0});a&&i?(m(),u({nodes:n,nodesInitialized:i,fitViewQueued:!1,fitViewOptions:void 0})):u({nodes:n,nodesInitialized:i})},setEdges:n=>{const{connectionLookup:e,edgeLookup:t}=b();rc(e,t,n),u({edges:n})},setDefaultNodesAndEdges:(n,e)=>{if(n){const{setNodes:e}=b();e(n),u({hasDefaultNodes:!0})}if(e){const{setEdges:n}=b();n(e),u({hasDefaultEdges:!0})}},updateNodeInternals:n=>{const{triggerNodeChanges:e,nodeLookup:t,parentLookup:r,domNode:o,nodeOrigin:a,nodeExtent:i,debug:s,fitViewQueued:l}=b(),{changes:d,updatedInternals:c}=function(n,e,t,r,o,a){const i=r?.querySelector(".xyflow__viewport");let s=!1;if(!i)return{changes:[],updatedInternals:s};const l=[],d=window.getComputedStyle(i),{m22:c}=new window.DOMMatrixReadOnly(d.transform),p=[];for(const r of n.values()){const n=e.get(r.id);if(!n)continue;if(n.hidden){e.set(n.id,{...n,internals:{...n.internals,handleBounds:void 0}}),s=!0;continue}const i=Sd(r.nodeElement),d=n.measured.width!==i.width||n.measured.height!==i.height;if(i.width&&i.height&&(d||!n.internals.handleBounds||r.force)){const u=r.nodeElement.getBoundingClientRect(),b=vd(n.extent)?n.extent:a;let{positionAbsolute:m}=n.internals;n.parentId&&"parent"===n.extent?m=Jl(m,i,e.get(n.parentId)):b&&(m=Ql(m,b,i));const f={...n,measured:i,internals:{...n.internals,positionAbsolute:m,handleBounds:{source:Md("source",r.nodeElement,u,c,n.id),target:Md("target",r.nodeElement,u,c,n.id)}}};e.set(n.id,f),n.parentId&&Jd(f,e,t,{nodeOrigin:o}),s=!0,d&&(l.push({id:n.id,type:"dimensions",dimensions:i}),n.expandParent&&n.parentId&&p.push({id:n.id,parentId:n.parentId,rect:ad(f,o)}))}}if(p.length>0){const n=ec(p,e,t,o);l.push(...n)}return{changes:l,updatedInternals:s}}(n,t,r,o,a,i);c&&(function(n,e,t){const r=Ud(Zd,t);for(const t of n.values())if(t.parentId)Jd(t,n,e,r);else{const n=Gl(t,r.nodeOrigin),e=vd(t.extent)?t.extent:r.nodeExtent,o=Ql(n,e,xd(t));t.internals.positionAbsolute=o}}(t,r,{nodeOrigin:a,nodeExtent:i}),l?(m(),u({fitViewQueued:!1,fitViewOptions:void 0})):u({}),d?.length>0&&(s&&console.log("React Flow: trigger node changes",d),e?.(d)))},updateNodePositions:(n,e=!1)=>{const t=[],r=[],{nodeLookup:o,triggerNodeChanges:a}=b();for(const[a,i]of n){const n=o.get(a),s=!!(n?.expandParent&&n?.parentId&&i?.position),l={id:a,type:"position",position:s?{x:Math.max(0,i.position.x),y:Math.max(0,i.position.y)}:i.position,dragging:e};s&&n.parentId&&t.push({id:a,parentId:n.parentId,rect:{...i.internals.positionAbsolute,width:i.measured.width??0,height:i.measured.height??0}}),r.push(l)}if(t.length>0){const{parentLookup:n,nodeOrigin:e}=b(),a=ec(t,o,n,e);r.push(...a)}a(r)},triggerNodeChanges:n=>{const{onNodesChange:e,setNodes:t,nodes:r,hasDefaultNodes:o,debug:a}=b();n?.length&&(o&&t(Rp(n,r)),a&&console.log("React Flow: trigger node changes",n),e?.(n))},triggerEdgeChanges:n=>{const{onEdgesChange:e,setEdges:t,edges:r,hasDefaultEdges:o,debug:a}=b();n?.length&&(o&&t(Ip(n,r)),a&&console.log("React Flow: trigger edge changes",n),e?.(n))},addSelectedNodes:n=>{const{multiSelectionActive:e,edgeLookup:t,nodeLookup:r,triggerNodeChanges:o,triggerEdgeChanges:a}=b();e?o(n.map(n=>Ap(n,!0))):(o(Dp(r,new Set([...n]),!0)),a(Dp(t)))},addSelectedEdges:n=>{const{multiSelectionActive:e,edgeLookup:t,nodeLookup:r,triggerNodeChanges:o,triggerEdgeChanges:a}=b();e?a(n.map(n=>Ap(n,!0))):(a(Dp(t,new Set([...n]))),o(Dp(r,new Set,!0)))},unselectNodesAndEdges:({nodes:n,edges:e}={})=>{const{edges:t,nodes:r,nodeLookup:o,triggerNodeChanges:a,triggerEdgeChanges:i}=b(),s=e||t,l=(n||r).map(n=>{const e=o.get(n.id);return e&&(e.selected=!1),Ap(n.id,!1)}),d=s.map(n=>Ap(n.id,!1));a(l),i(d)},setMinZoom:n=>{const{panZoom:e,maxZoom:t}=b();e?.setScaleExtent([n,t]),u({minZoom:n})},setMaxZoom:n=>{const{panZoom:e,minZoom:t}=b();e?.setScaleExtent([t,n]),u({maxZoom:n})},setTranslateExtent:n=>{b().panZoom?.setTranslateExtent(n),u({translateExtent:n})},setPaneClickDistance:n=>{b().panZoom?.setClickDistance(n)},resetSelectedElements:()=>{const{edges:n,nodes:e,triggerNodeChanges:t,triggerEdgeChanges:r,elementsSelectable:o}=b();if(!o)return;const a=e.reduce((n,e)=>e.selected?[...n,Ap(e.id,!1)]:n,[]),i=n.reduce((n,e)=>e.selected?[...n,Ap(e.id,!1)]:n,[]);t(a),r(i)},setNodeExtent:n=>{const{nodes:e,nodeLookup:t,parentLookup:r,nodeOrigin:o,elevateNodesOnSelect:a,nodeExtent:i}=b();n[0][0]===i[0][0]&&n[0][1]===i[0][1]&&n[1][0]===i[1][0]&&n[1][1]===i[1][1]||(Qd(e,t,r,{nodeOrigin:o,nodeExtent:n,elevateNodesOnSelect:a,checkEquality:!1}),u({nodeExtent:n}))},panBy:n=>{const{transform:e,width:t,height:r,panZoom:o,translateExtent:a}=b();return async function({delta:n,panZoom:e,transform:t,translateExtent:r,width:o,height:a}){if(!e||!n.x&&!n.y)return Promise.resolve(!1);const i=await e.setViewportConstrained({x:t[0]+n.x,y:t[1]+n.y,zoom:t[2]},[[0,0],[o,a]],r),s=!!i&&(i.x!==t[0]||i.y!==t[1]||i.k!==t[2]);return Promise.resolve(s)}({delta:n,panZoom:o,transform:e,translateExtent:a,width:t,height:r})},setCenter:async(n,e,t)=>{const{width:r,height:o,maxZoom:a,panZoom:i}=b();if(!i)return Promise.resolve(!1);const s=void 0!==t?.zoom?t.zoom:a;return await i.setViewport({x:r/2-n*s,y:o/2-e*s,zoom:s},{duration:t?.duration,ease:t?.ease,interpolate:t?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{u({connection:{...Tl}})},updateConnection:n=>{u({connection:n})},reset:()=>u({...vb()})}},b=Object.is,u?Uc(u,b):Uc;var u,b};function wb({initialNodes:t,initialEdges:r,defaultNodes:o,defaultEdges:a,initialWidth:i,initialHeight:s,initialMinZoom:l,initialMaxZoom:d,initialFitViewOptions:c,fitView:p,nodeOrigin:u,nodeExtent:b,children:m}){const[f]=e.useState(()=>xb({nodes:t,edges:r,defaultNodes:o,defaultEdges:a,width:i,height:s,fitView:p,minZoom:l,maxZoom:d,fitViewOptions:c,nodeOrigin:u,nodeExtent:b}));return n.jsx(np,{value:f,children:n.jsx(Yp,{children:m})})}function yb({children:t,nodes:r,edges:o,defaultNodes:a,defaultEdges:i,width:s,height:l,fitView:d,fitViewOptions:c,minZoom:p,maxZoom:u,nodeOrigin:b,nodeExtent:m}){return e.useContext(Jc)?n.jsx(n.Fragment,{children:t}):n.jsx(wb,{initialNodes:r,initialEdges:o,defaultNodes:a,defaultEdges:i,initialWidth:s,initialHeight:l,fitView:d,initialFitViewOptions:c,initialMinZoom:p,initialMaxZoom:u,nodeOrigin:b,nodeExtent:m,children:t})}const kb={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};var Eb,_b=Vp(function({nodes:t,edges:r,defaultNodes:o,defaultEdges:a,className:i,nodeTypes:s,edgeTypes:l,onNodeClick:d,onEdgeClick:c,onInit:p,onMove:u,onMoveStart:b,onMoveEnd:m,onConnect:f,onConnectStart:g,onConnectEnd:h,onClickConnectStart:v,onClickConnectEnd:x,onNodeMouseEnter:w,onNodeMouseMove:y,onNodeMouseLeave:k,onNodeContextMenu:E,onNodeDoubleClick:_,onNodeDragStart:S,onNodeDrag:O,onNodeDragStop:C,onNodesDelete:N,onEdgesDelete:j,onDelete:z,onSelectionChange:M,onSelectionDragStart:P,onSelectionDrag:R,onSelectionDragStop:I,onSelectionContextMenu:A,onSelectionStart:D,onSelectionEnd:T,onBeforeDelete:L,connectionMode:B,connectionLineType:V=Ll.Bezier,connectionLineStyle:$,connectionLineComponent:H,connectionLineContainerStyle:F,deleteKeyCode:Y="Backspace",selectionKeyCode:G="Shift",selectionOnDrag:X=!1,selectionMode:q=Dl.Full,panActivationKeyCode:W="Space",multiSelectionKeyCode:Z=(hd()?"Meta":"Control"),zoomActivationKeyCode:K=(hd()?"Meta":"Control"),snapToGrid:U,snapGrid:Q,onlyRenderVisibleElements:J=!1,selectNodesOnDrag:nn,nodesDraggable:en,autoPanOnNodeFocus:tn,nodesConnectable:rn,nodesFocusable:on,nodeOrigin:an=wp,edgesFocusable:sn,edgesReconnectable:ln,elementsSelectable:dn=!0,defaultViewport:cn=yp,minZoom:pn=.5,maxZoom:un=2,translateExtent:bn=Ml,preventScrolling:mn=!0,nodeExtent:fn,defaultMarkerColor:gn="#b1b1b7",zoomOnScroll:hn=!0,zoomOnPinch:vn=!0,panOnScroll:xn=!1,panOnScrollSpeed:wn=.5,panOnScrollMode:yn=Al.Free,zoomOnDoubleClick:kn=!0,panOnDrag:En=!0,onPaneClick:_n,onPaneMouseEnter:Sn,onPaneMouseMove:On,onPaneMouseLeave:Cn,onPaneScroll:Nn,onPaneContextMenu:jn,paneClickDistance:zn=0,nodeClickDistance:Mn=0,children:Pn,onReconnect:Rn,onReconnectStart:In,onReconnectEnd:An,onEdgeContextMenu:Dn,onEdgeDoubleClick:Tn,onEdgeMouseEnter:Ln,onEdgeMouseMove:Bn,onEdgeMouseLeave:Vn,reconnectRadius:$n=10,onNodesChange:Hn,onEdgesChange:Fn,noDragClassName:Yn="nodrag",noWheelClassName:Gn="nowheel",noPanClassName:Xn="nopan",fitView:qn,fitViewOptions:Wn,connectOnClick:Zn,attributionPosition:Kn,proOptions:Un,defaultEdgeOptions:Qn,elevateNodesOnSelect:Jn,elevateEdgesOnSelect:ne,disableKeyboardA11y:ee=!1,autoPanOnConnect:te,autoPanOnNodeDrag:re,autoPanSpeed:oe,connectionRadius:ae,isValidConnection:ie,onError:se,style:le,id:de,nodeDragThreshold:ce,connectionDragThreshold:pe,viewport:ue,onViewportChange:be,width:me,height:fe,colorMode:ge="light",debug:he,onScroll:ve,ariaLabelConfig:xe,...we},ye){const ke=de||"1",Ee=function(n){const[t,r]=e.useState("system"===n?null:n);return e.useEffect(()=>{if("system"!==n)return void r(n);const e=Op(),t=()=>r(e?.matches?"dark":"light");return t(),e?.addEventListener("change",t),()=>{e?.removeEventListener("change",t)}},[n]),null!==t?t:Op()?.matches?"dark":"light"}(ge),_e=e.useCallback(n=>{n.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),ve?.(n)},[ve]);return n.jsx("div",{"data-testid":"rf__wrapper",...we,onScroll:_e,style:{...le,...kb},ref:ye,className:No(["react-flow",i,Ee]),id:de,role:"application",children:n.jsxs(yb,{nodes:t,edges:r,width:me,height:fe,fitView:qn,fitViewOptions:Wn,minZoom:pn,maxZoom:un,nodeOrigin:an,nodeExtent:fn,children:[n.jsx(hb,{onInit:p,onNodeClick:d,onEdgeClick:c,onNodeMouseEnter:w,onNodeMouseMove:y,onNodeMouseLeave:k,onNodeContextMenu:E,onNodeDoubleClick:_,nodeTypes:s,edgeTypes:l,connectionLineType:V,connectionLineStyle:$,connectionLineComponent:H,connectionLineContainerStyle:F,selectionKeyCode:G,selectionOnDrag:X,selectionMode:q,deleteKeyCode:Y,multiSelectionKeyCode:Z,panActivationKeyCode:W,zoomActivationKeyCode:K,onlyRenderVisibleElements:J,defaultViewport:cn,translateExtent:bn,minZoom:pn,maxZoom:un,preventScrolling:mn,zoomOnScroll:hn,zoomOnPinch:vn,zoomOnDoubleClick:kn,panOnScroll:xn,panOnScrollSpeed:wn,panOnScrollMode:yn,panOnDrag:En,onPaneClick:_n,onPaneMouseEnter:Sn,onPaneMouseMove:On,onPaneMouseLeave:Cn,onPaneScroll:Nn,onPaneContextMenu:jn,paneClickDistance:zn,nodeClickDistance:Mn,onSelectionContextMenu:A,onSelectionStart:D,onSelectionEnd:T,onReconnect:Rn,onReconnectStart:In,onReconnectEnd:An,onEdgeContextMenu:Dn,onEdgeDoubleClick:Tn,onEdgeMouseEnter:Ln,onEdgeMouseMove:Bn,onEdgeMouseLeave:Vn,reconnectRadius:$n,defaultMarkerColor:gn,noDragClassName:Yn,noWheelClassName:Gn,noPanClassName:Xn,rfId:ke,disableKeyboardA11y:ee,nodeExtent:fn,viewport:ue,onViewportChange:be}),n.jsx(Sp,{nodes:t,edges:r,defaultNodes:o,defaultEdges:a,onConnect:f,onConnectStart:g,onConnectEnd:h,onClickConnectStart:v,onClickConnectEnd:x,nodesDraggable:en,autoPanOnNodeFocus:tn,nodesConnectable:rn,nodesFocusable:on,edgesFocusable:sn,edgesReconnectable:ln,elementsSelectable:dn,elevateNodesOnSelect:Jn,elevateEdgesOnSelect:ne,minZoom:pn,maxZoom:un,nodeExtent:fn,onNodesChange:Hn,onEdgesChange:Fn,snapToGrid:U,snapGrid:Q,connectionMode:B,translateExtent:bn,connectOnClick:Zn,defaultEdgeOptions:Qn,fitView:qn,fitViewOptions:Wn,onNodesDelete:N,onEdgesDelete:j,onDelete:z,onNodeDragStart:S,onNodeDrag:O,onNodeDragStop:C,onSelectionDrag:R,onSelectionDragStart:P,onSelectionDragStop:I,onMove:u,onMoveStart:b,onMoveEnd:m,noPanClassName:Xn,nodeOrigin:an,rfId:ke,autoPanOnConnect:te,autoPanOnNodeDrag:re,autoPanSpeed:oe,onError:se,connectionRadius:ae,isValidConnection:ie,selectNodesOnDrag:nn,nodeDragThreshold:ce,connectionDragThreshold:pe,onBeforeDelete:L,paneClickDistance:zn,debug:he,ariaLabelConfig:xe}),n.jsx(xp,{onSelectionChange:M}),Pn,n.jsx(bp,{proOptions:Un,position:Kn}),n.jsx(pp,{rfId:ke,disableKeyboardA11y:ee})]})})});function Sb({dimensions:e,lineWidth:t,variant:r,className:o}){return n.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:No(["react-flow__background-pattern",r,o])})}function Ob({radius:e,className:t}){return n.jsx("circle",{cx:e,cy:e,r:e,className:No(["react-flow__background-pattern","dots",t])})}!function(n){n.Lines="lines",n.Dots="dots",n.Cross="cross"}(Eb||(Eb={}));const Cb={[Eb.Dots]:1,[Eb.Lines]:1,[Eb.Cross]:6},Nb=n=>({transform:n.transform,patternId:`pattern-${n.rfId}`});function jb({id:t,variant:r=Eb.Dots,gap:o=20,size:a,lineWidth:i=1,offset:s=0,color:l,bgColor:d,style:c,className:p,patternClassName:u}){const b=e.useRef(null),{transform:m,patternId:f}=tp(Nb,Qc),g=a||Cb[r],h=r===Eb.Dots,v=r===Eb.Cross,x=Array.isArray(o)?o:[o,o],w=[x[0]*m[2]||1,x[1]*m[2]||1],y=g*m[2],k=Array.isArray(s)?s:[s,s],E=v?[y,y]:w,_=[k[0]*m[2]||1+E[0]/2,k[1]*m[2]||1+E[1]/2],S=`${f}${t||""}`;return n.jsxs("svg",{className:No(["react-flow__background",p]),style:{...c,...Zp,"--xy-background-color-props":d,"--xy-background-pattern-color-props":l},ref:b,"data-testid":"rf__background",children:[n.jsx("pattern",{id:S,x:m[0]%w[0],y:m[1]%w[1],width:w[0],height:w[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${_[0]},-${_[1]})`,children:h?n.jsx(Ob,{radius:y/2,className:u}):n.jsx(Sb,{dimensions:E,lineWidth:i,variant:r,className:u})}),n.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${S})`})]})}function zb(){return n.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:n.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function Mb(){return n.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:n.jsx("path",{d:"M0 0h32v4.2H0z"})})}function Pb(){return n.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:n.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 Rb(){return n.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:n.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 Ib(){return n.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:n.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 Ab({children:e,className:t,...r}){return n.jsx("button",{type:"button",className:No(["react-flow__controls-button",t]),...r,children:e})}jb.displayName="Background",e.memo(jb);const Db=n=>({isInteractive:n.nodesDraggable||n.nodesConnectable||n.elementsSelectable,minZoomReached:n.transform[2]<=n.minZoom,maxZoomReached:n.transform[2]>=n.maxZoom,ariaLabelConfig:n.ariaLabelConfig});function Tb({style:e,showZoom:t=!0,showFitView:r=!0,showInteractive:o=!0,fitViewOptions:a,onZoomIn:i,onZoomOut:s,onFitView:l,onInteractiveChange:d,className:c,children:p,position:u="bottom-left",orientation:b="vertical","aria-label":m}){const f=rp(),{isInteractive:g,minZoomReached:h,maxZoomReached:v,ariaLabelConfig:x}=tp(Db,Qc),{zoomIn:w,zoomOut:y,fitView:k}=Xp(),E="horizontal"===b?"horizontal":"vertical";return n.jsxs(up,{className:No(["react-flow__controls",E,c]),position:u,style:e,"data-testid":"rf__controls","aria-label":m??x["controls.ariaLabel"],children:[t&&n.jsxs(n.Fragment,{children:[n.jsx(Ab,{onClick:()=>{w(),i?.()},className:"react-flow__controls-zoomin",title:x["controls.zoomIn.ariaLabel"],"aria-label":x["controls.zoomIn.ariaLabel"],disabled:v,children:n.jsx(zb,{})}),n.jsx(Ab,{onClick:()=>{y(),s?.()},className:"react-flow__controls-zoomout",title:x["controls.zoomOut.ariaLabel"],"aria-label":x["controls.zoomOut.ariaLabel"],disabled:h,children:n.jsx(Mb,{})})]}),r&&n.jsx(Ab,{className:"react-flow__controls-fitview",onClick:()=>{k(a),l?.()},title:x["controls.fitView.ariaLabel"],"aria-label":x["controls.fitView.ariaLabel"],children:n.jsx(Pb,{})}),o&&n.jsx(Ab,{className:"react-flow__controls-interactive",onClick:()=>{f.setState({nodesDraggable:!g,nodesConnectable:!g,elementsSelectable:!g}),d?.(!g)},title:x["controls.interactive.ariaLabel"],"aria-label":x["controls.interactive.ariaLabel"],children:g?n.jsx(Ib,{}):n.jsx(Rb,{})}),p]})}Tb.displayName="Controls";const Lb=e.memo(Tb);const Bb=e.memo(function({id:e,x:t,y:r,width:o,height:a,style:i,color:s,strokeColor:l,strokeWidth:d,className:c,borderRadius:p,shapeRendering:u,selected:b,onClick:m}){const{background:f,backgroundColor:g}=i||{},h=s||f||g;return n.jsx("rect",{className:No(["react-flow__minimap-node",{selected:b},c]),x:t,y:r,rx:p,ry:p,width:o,height:a,style:{fill:h,stroke:l,strokeWidth:d},shapeRendering:u,onClick:m?n=>m(n,e):void 0})}),Vb=n=>n.nodes.map(n=>n.id),$b=n=>n instanceof Function?n:()=>n;const Hb=e.memo(function({id:e,nodeColorFunc:t,nodeStrokeColorFunc:r,nodeClassNameFunc:o,nodeBorderRadius:a,nodeStrokeWidth:i,shapeRendering:s,NodeComponent:l,onClick:d}){const{node:c,x:p,y:u,width:b,height:m}=tp(n=>{const{internals:t}=n.nodeLookup.get(e),r=t.userNode,{x:o,y:a}=t.positionAbsolute,{width:i,height:s}=xd(r);return{node:r,x:o,y:a,width:i,height:s}},Qc);return c&&!c.hidden&&wd(c)?n.jsx(l,{x:p,y:u,width:b,height:m,style:c.style,selected:!!c.selected,className:o(c),color:t(c),borderRadius:a,strokeColor:r(c),strokeWidth:i,shapeRendering:s,onClick:d,id:c.id}):null});var Fb=e.memo(function({nodeStrokeColor:e,nodeColor:t,nodeClassName:r="",nodeBorderRadius:o=5,nodeStrokeWidth:a,nodeComponent:i=Bb,onClick:s}){const l=tp(Vb,Qc),d=$b(t),c=$b(e),p=$b(r),u="undefined"==typeof window||window.chrome?"crispEdges":"geometricPrecision";return n.jsx(n.Fragment,{children:l.map(e=>n.jsx(Hb,{id:e,nodeColorFunc:d,nodeStrokeColorFunc:c,nodeClassNameFunc:p,nodeBorderRadius:o,nodeStrokeWidth:a,NodeComponent:i,onClick:s,shapeRendering:u},e))})});const Yb=n=>!n.hidden,Gb=n=>{const e={x:-n.transform[0]/n.transform[2],y:-n.transform[1]/n.transform[2],width:n.width/n.transform[2],height:n.height/n.transform[2]};return{viewBB:e,boundingRect:n.nodeLookup.size>0?sd(Xl(n.nodeLookup,{filter:Yb}),e):e,rfId:n.rfId,panZoom:n.panZoom,translateExtent:n.translateExtent,flowWidth:n.width,flowHeight:n.height,ariaLabelConfig:n.ariaLabelConfig}};function Xb({style:t,className:r,nodeStrokeColor:o,nodeColor:a,nodeClassName:i="",nodeBorderRadius:s=5,nodeStrokeWidth:l,nodeComponent:d,bgColor:c,maskColor:p,maskStrokeColor:u,maskStrokeWidth:b,position:m="bottom-right",onClick:f,onNodeClick:g,pannable:h=!1,zoomable:v=!1,ariaLabel:x,inversePan:w,zoomStep:y=10,offsetScale:k=5}){const E=rp(),_=e.useRef(null),{boundingRect:S,viewBB:O,rfId:C,panZoom:N,translateExtent:j,flowWidth:z,flowHeight:M,ariaLabelConfig:P}=tp(Gb,Qc),R=t?.width??200,I=t?.height??150,A=S.width/R,D=S.height/I,T=Math.max(A,D),L=T*R,B=T*I,V=k*T,$=S.x-(L-S.width)/2-V,H=S.y-(B-S.height)/2-V,F=L+2*V,Y=B+2*V,G=`react-flow__minimap-desc-${C}`,X=e.useRef(0),q=e.useRef();X.current=T,e.useEffect(()=>{if(_.current&&N)return q.current=function({domNode:n,panZoom:e,getTransform:t,getViewScale:r}){const o=Xa(n);return{update:function({translateExtent:n,width:a,height:i,zoomStep:s=10,pannable:l=!0,zoomable:d=!0,inversePan:c=!1}){let p=[0,0];const u=hl().on("start",n=>{"mousedown"!==n.sourceEvent.type&&"touchstart"!==n.sourceEvent.type||(p=[n.sourceEvent.clientX??n.sourceEvent.touches[0].clientX,n.sourceEvent.clientY??n.sourceEvent.touches[0].clientY])}).on("zoom",l?o=>{const s=t();if("mousemove"!==o.sourceEvent.type&&"touchmove"!==o.sourceEvent.type||!e)return;const l=[o.sourceEvent.clientX??o.sourceEvent.touches[0].clientX,o.sourceEvent.clientY??o.sourceEvent.touches[0].clientY],d=[l[0]-p[0],l[1]-p[1]];p=l;const u=r()*Math.max(s[2],Math.log(s[2]))*(c?-1:1),b={x:s[0]-d[0]*u,y:s[1]-d[1]*u},m=[[0,0],[a,i]];e.setViewportConstrained({x:b.x,y:b.y,zoom:s[2]},m,n)}:null).on("zoom.wheel",d?n=>{const r=t();if("wheel"!==n.sourceEvent.type||!e)return;const o=-n.sourceEvent.deltaY*(1===n.sourceEvent.deltaMode?.05:n.sourceEvent.deltaMode?1:.002)*s,a=r[2]*Math.pow(2,o);e.scaleTo(a)}:null);o.call(u,{})},destroy:function(){o.on("zoom",null)},pointer:qa}}({domNode:_.current,panZoom:N,getTransform:()=>E.getState().transform,getViewScale:()=>X.current}),()=>{q.current?.destroy()}},[N]),e.useEffect(()=>{q.current?.update({translateExtent:j,width:z,height:M,inversePan:w,pannable:h,zoomStep:y,zoomable:v})},[h,v,w,y,j,z,M]);const W=f?n=>{const[e,t]=q.current?.pointer(n)||[0,0];f(n,{x:e,y:t})}:void 0,Z=g?e.useCallback((n,e)=>{const t=E.getState().nodeLookup.get(e).internals.userNode;g(n,t)},[]):void 0,K=x??P["minimap.ariaLabel"];return n.jsx(up,{position:m,style:{...t,"--xy-minimap-background-color-props":"string"==typeof c?c:void 0,"--xy-minimap-mask-background-color-props":"string"==typeof p?p:void 0,"--xy-minimap-mask-stroke-color-props":"string"==typeof u?u:void 0,"--xy-minimap-mask-stroke-width-props":"number"==typeof b?b*T:void 0,"--xy-minimap-node-background-color-props":"string"==typeof a?a:void 0,"--xy-minimap-node-stroke-color-props":"string"==typeof o?o:void 0,"--xy-minimap-node-stroke-width-props":"number"==typeof l?l:void 0},className:No(["react-flow__minimap",r]),"data-testid":"rf__minimap",children:n.jsxs("svg",{width:R,height:I,viewBox:`${$} ${H} ${F} ${Y}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":G,ref:_,onClick:W,children:[K&&n.jsx("title",{id:G,children:K}),n.jsx(Fb,{onClick:Z,nodeColor:a,nodeStrokeColor:o,nodeBorderRadius:s,nodeClassName:i,nodeStrokeWidth:l,nodeComponent:d}),n.jsx("path",{className:"react-flow__minimap-mask",d:`M${$-V},${H-V}h${F+2*V}v${Y+2*V}h${-F-2*V}z\n M${O.x},${O.y}h${O.width}v${O.height}h${-O.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}Xb.displayName="MiniMap",e.memo(Xb);const qb={[kc.Line]:"right",[kc.Handle]:"bottom-right"};e.memo(function({nodeId:t,position:r,variant:o=kc.Handle,className:a,style:i,children:s,color:l,minWidth:d=10,minHeight:c=10,maxWidth:p=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:b=!1,resizeDirection:m,autoScale:f=!0,shouldResize:g,onResizeStart:h,onResize:v,onResizeEnd:x}){const w=lu(),y="string"==typeof t?t:w,k=rp(),E=e.useRef(null),_=o===kc.Handle,S=tp(e.useCallback((O=_&&f,n=>O?`${Math.max(1/n.transform[2],1)}`:void 0),[_,f]),Qc);var O;const C=e.useRef(null),N=r??qb[o];e.useEffect(()=>{if(E.current&&y)return C.current||(C.current=zc({domNode:E.current,nodeId:y,getStoreItems:()=>{const{nodeLookup:n,transform:e,snapGrid:t,snapToGrid:r,nodeOrigin:o,domNode:a}=k.getState();return{nodeLookup:n,transform:e,snapGrid:t,snapToGrid:r,nodeOrigin:o,paneDomNode:a}},onChange:(n,e)=>{const{triggerNodeChanges:t,nodeLookup:r,parentLookup:o,nodeOrigin:a}=k.getState(),i=[],s={x:n.x,y:n.y},l=r.get(y);if(l&&l.expandParent&&l.parentId){const e=l.origin??a,t=n.width??l.measured.width??0,d=n.height??l.measured.height??0,c=ec([{id:l.id,parentId:l.parentId,rect:{width:t,height:d,...yd({x:n.x??l.position.x,y:n.y??l.position.y},{width:t,height:d},l.parentId,r,e)}}],r,o,a);i.push(...c),s.x=n.x?Math.max(e[0]*t,n.x):void 0,s.y=n.y?Math.max(e[1]*d,n.y):void 0}if(void 0!==s.x&&void 0!==s.y){const n={id:y,type:"position",position:{...s}};i.push(n)}if(void 0!==n.width&&void 0!==n.height){const e={id:y,type:"dimensions",resizing:!0,setAttributes:!m||("horizontal"===m?"width":"height"),dimensions:{width:n.width,height:n.height}};i.push(e)}for(const n of e){const e={...n,type:"position"};i.push(e)}t(i)},onEnd:({width:n,height:e})=>{const t={id:y,type:"dimensions",resizing:!1,dimensions:{width:n,height:e}};k.getState().triggerNodeChanges([t])}})),C.current.update({controlPosition:N,boundaries:{minWidth:d,minHeight:c,maxWidth:p,maxHeight:u},keepAspectRatio:b,resizeDirection:m,onResizeStart:h,onResize:v,onResizeEnd:x,shouldResize:g}),()=>{C.current?.destroy()}},[N,d,c,p,u,b,h,v,x,g]);const j=N.split("-");return n.jsx("div",{className:No(["react-flow__resize-control","nodrag",...j,o,a]),ref:E,style:{...i,scale:S,...l&&{[_?"backgroundColor":"borderColor"]:l}},children:s})});var Wb,Zb,Kb,Ub,Qb,Jb,nm,em,tm,rm,om,am,im,sm,lm,dm,cm,pm,um,bm,mm,fm,gm,hm,vm,xm,wm,ym,km,Em,_m,Sm,Om,Cm,Nm,jm,zm,Mm,Pm,Rm,Im,Am,Dm,Tm,Lm,Bm,Vm,$m,Hm,Fm,Ym,Gm,Xm,qm,Wm,Zm,Km,Um,Qm,Jm,nf,ef,tf,rf,of,af,sf,lf,df,cf,pf,uf,bf,mf,ff,gf,hf,vf,xf,wf,yf,kf,Ef,_f,Sf,Of,Cf,Nf,jf,zf,Mf,Pf,Rf,If;function Af(){if(Zb)return Wb;Zb=1;var n="\0";function e(n,e){n[e]?n[e]++:n[e]=1}function t(n,e){--n[e]||delete n[e]}function r(n,e,t,r){var o=""+e,a=""+t;if(!n&&o>a){var i=o;o=a,a=i}return o+""+a+""+(void 0===r?"\0":r)}function o(n,e){return r(n,e.v,e.w,e.name)}return Wb=class{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>{};_defaultEdgeLabelFn=()=>{};_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(e){e&&(this._isDirected=!Object.hasOwn(e,"directed")||e.directed,this._isMultigraph=!!Object.hasOwn(e,"multigraph")&&e.multigraph,this._isCompound=!!Object.hasOwn(e,"compound")&&e.compound),this._isCompound&&(this._parent={},this._children={},this._children[n]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(n){return this._label=n,this}graph(){return this._label}setDefaultNodeLabel(n){return this._defaultNodeLabelFn=n,"function"!=typeof n&&(this._defaultNodeLabelFn=()=>n),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var n=this;return this.nodes().filter(e=>0===Object.keys(n._in[e]).length)}sinks(){var n=this;return this.nodes().filter(e=>0===Object.keys(n._out[e]).length)}setNodes(n,e){var t=arguments,r=this;return n.forEach(function(n){t.length>1?r.setNode(n,e):r.setNode(n)}),this}setNode(e,t){return Object.hasOwn(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=n,this._children[e]={},this._children[n][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(n){return this._nodes[n]}hasNode(n){return Object.hasOwn(this._nodes,n)}removeNode(n){var e=this;if(Object.hasOwn(this._nodes,n)){var t=n=>e.removeEdge(e._edgeObjs[n]);delete this._nodes[n],this._isCompound&&(this._removeFromParentsChildList(n),delete this._parent[n],this.children(n).forEach(function(n){e.setParent(n)}),delete this._children[n]),Object.keys(this._in[n]).forEach(t),delete this._in[n],delete this._preds[n],Object.keys(this._out[n]).forEach(t),delete this._out[n],delete this._sucs[n],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(void 0===t)t=n;else{for(var r=t+="";void 0!==r;r=this.parent(r))if(r===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}_removeFromParentsChildList(n){delete this._children[this._parent[n]][n]}parent(e){if(this._isCompound){var t=this._parent[e];if(t!==n)return t}}children(e=n){if(this._isCompound){var t=this._children[e];if(t)return Object.keys(t)}else{if(e===n)return this.nodes();if(this.hasNode(e))return[]}}predecessors(n){var e=this._preds[n];if(e)return Object.keys(e)}successors(n){var e=this._sucs[n];if(e)return Object.keys(e)}neighbors(n){var e=this.predecessors(n);if(e){const r=new Set(e);for(var t of this.successors(n))r.add(t);return Array.from(r.values())}}isLeaf(n){return 0===(this.isDirected()?this.successors(n):this.neighbors(n)).length}filterNodes(n){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var t=this;Object.entries(this._nodes).forEach(function([t,r]){n(t)&&e.setNode(t,r)}),Object.values(this._edgeObjs).forEach(function(n){e.hasNode(n.v)&&e.hasNode(n.w)&&e.setEdge(n,t.edge(n))});var r={};function o(n){var a=t.parent(n);return void 0===a||e.hasNode(a)?(r[n]=a,a):a in r?r[a]:o(a)}return this._isCompound&&e.nodes().forEach(n=>e.setParent(n,o(n))),e}setDefaultEdgeLabel(n){return this._defaultEdgeLabelFn=n,"function"!=typeof n&&(this._defaultEdgeLabelFn=()=>n),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(n,e){var t=this,r=arguments;return n.reduce(function(n,o){return r.length>1?t.setEdge(n,o,e):t.setEdge(n,o),o}),this}setEdge(){var n,t,o,a,i=!1,s=arguments[0];"object"==typeof s&&null!==s&&"v"in s?(n=s.v,t=s.w,o=s.name,2===arguments.length&&(a=arguments[1],i=!0)):(n=s,t=arguments[1],o=arguments[3],arguments.length>2&&(a=arguments[2],i=!0)),n=""+n,t=""+t,void 0!==o&&(o=""+o);var l=r(this._isDirected,n,t,o);if(Object.hasOwn(this._edgeLabels,l))return i&&(this._edgeLabels[l]=a),this;if(void 0!==o&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(n),this.setNode(t),this._edgeLabels[l]=i?a:this._defaultEdgeLabelFn(n,t,o);var d=function(n,e,t,r){var o=""+e,a=""+t;if(!n&&o>a){var i=o;o=a,a=i}var s={v:o,w:a};r&&(s.name=r);return s}(this._isDirected,n,t,o);return n=d.v,t=d.w,Object.freeze(d),this._edgeObjs[l]=d,e(this._preds[t],n),e(this._sucs[n],t),this._in[t][l]=d,this._out[n][l]=d,this._edgeCount++,this}edge(n,e,t){var a=1===arguments.length?o(this._isDirected,arguments[0]):r(this._isDirected,n,e,t);return this._edgeLabels[a]}edgeAsObj(){const n=this.edge(...arguments);return"object"!=typeof n?{label:n}:n}hasEdge(n,e,t){var a=1===arguments.length?o(this._isDirected,arguments[0]):r(this._isDirected,n,e,t);return Object.hasOwn(this._edgeLabels,a)}removeEdge(n,e,a){var i=1===arguments.length?o(this._isDirected,arguments[0]):r(this._isDirected,n,e,a),s=this._edgeObjs[i];return s&&(n=s.v,e=s.w,delete this._edgeLabels[i],delete this._edgeObjs[i],t(this._preds[e],n),t(this._sucs[n],e),delete this._in[e][i],delete this._out[n][i],this._edgeCount--),this}inEdges(n,e){var t=this._in[n];if(t){var r=Object.values(t);return e?r.filter(n=>n.v===e):r}}outEdges(n,e){var t=this._out[n];if(t){var r=Object.values(t);return e?r.filter(n=>n.w===e):r}}nodeEdges(n,e){var t=this.inEdges(n,e);if(t)return t.concat(this.outEdges(n,e))}},Wb}function Df(){return Jb?Qb:(Jb=1,Qb={Graph:Af(),version:Ub?Kb:(Ub=1,Kb="2.2.4")})}function Tf(){if(em)return nm;em=1;var n=Af();function e(n){return n.nodes().map(function(e){var t=n.node(e),r=n.parent(e),o={v:e};return void 0!==t&&(o.value=t),void 0!==r&&(o.parent=r),o})}function t(n){return n.edges().map(function(e){var t=n.edge(e),r={v:e.v,w:e.w};return void 0!==e.name&&(r.name=e.name),void 0!==t&&(r.value=t),r})}return nm={write:function(n){var r={options:{directed:n.isDirected(),multigraph:n.isMultigraph(),compound:n.isCompound()},nodes:e(n),edges:t(n)};void 0!==n.graph()&&(r.value=structuredClone(n.graph()));return r},read:function(e){var t=new n(e.options).setGraph(e.value);return e.nodes.forEach(function(n){t.setNode(n.v,n.value),n.parent&&t.setParent(n.v,n.parent)}),e.edges.forEach(function(n){t.setEdge({v:n.v,w:n.w,name:n.name},n.value)}),t}}}function Lf(){if(rm)return tm;return rm=1,tm=function(n){var e,t={},r=[];function o(r){Object.hasOwn(t,r)||(t[r]=!0,e.push(r),n.successors(r).forEach(o),n.predecessors(r).forEach(o))}return n.nodes().forEach(function(n){e=[],o(n),e.length&&r.push(e)}),r},tm}function Bf(){if(am)return om;am=1;return om=class{_arr=[];_keyIndices={};size(){return this._arr.length}keys(){return this._arr.map(function(n){return n.key})}has(n){return Object.hasOwn(this._keyIndices,n)}priority(n){var e=this._keyIndices[n];if(void 0!==e)return this._arr[e].priority}min(){if(0===this.size())throw new Error("Queue underflow");return this._arr[0].key}add(n,e){var t=this._keyIndices;if(n=String(n),!Object.hasOwn(t,n)){var r=this._arr,o=r.length;return t[n]=o,r.push({key:n,priority:e}),this._decrease(o),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var n=this._arr.pop();return delete this._keyIndices[n.key],this._heapify(0),n.key}decrease(n,e){var t=this._keyIndices[n];if(e>this._arr[t].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[t].priority+" New: "+e);this._arr[t].priority=e,this._decrease(t)}_heapify(n){var e=this._arr,t=2*n,r=t+1,o=n;t<e.length&&(o=e[t].priority<e[o].priority?t:o,r<e.length&&(o=e[r].priority<e[o].priority?r:o),o!==n&&(this._swap(n,o),this._heapify(o)))}_decrease(n){for(var e,t=this._arr,r=t[n].priority;0!==n&&!(t[e=n>>1].priority<r);)this._swap(n,e),n=e}_swap(n,e){var t=this._arr,r=this._keyIndices,o=t[n],a=t[e];t[n]=a,t[e]=o,r[a.key]=n,r[o.key]=e}},om}function Vf(){if(sm)return im;sm=1;var n=Bf();im=function(t,r,o,a){return function(e,t,r,o){var a,i,s={},l=new n,d=function(n){var e=n.v!==a?n.v:n.w,t=s[e],o=r(n),d=i.distance+o;if(o<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+n+" Weight: "+o);d<t.distance&&(t.distance=d,t.predecessor=a,l.decrease(e,d))};e.nodes().forEach(function(n){var e=n===t?0:Number.POSITIVE_INFINITY;s[n]={distance:e},l.add(n,e)});for(;l.size()>0&&(a=l.removeMin(),(i=s[a]).distance!==Number.POSITIVE_INFINITY);)o(a).forEach(d);return s}(t,String(r),o||e,a||function(n){return t.outEdges(n)})};var e=()=>1;return im}function $f(){if(dm)return lm;dm=1;var n=Vf();return lm=function(e,t,r){return e.nodes().reduce(function(o,a){return o[a]=n(e,a,t,r),o},{})},lm}function Hf(){if(pm)return cm;return pm=1,cm=function(n){var e=0,t=[],r={},o=[];function a(i){var s=r[i]={onStack:!0,lowlink:e,index:e++};if(t.push(i),n.successors(i).forEach(function(n){Object.hasOwn(r,n)?r[n].onStack&&(s.lowlink=Math.min(s.lowlink,r[n].index)):(a(n),s.lowlink=Math.min(s.lowlink,r[n].lowlink))}),s.lowlink===s.index){var l,d=[];do{l=t.pop(),r[l].onStack=!1,d.push(l)}while(i!==l);o.push(d)}}return n.nodes().forEach(function(n){Object.hasOwn(r,n)||a(n)}),o},cm}function Ff(){if(bm)return um;bm=1;var n=Hf();return um=function(e){return n(e).filter(function(n){return n.length>1||1===n.length&&e.hasEdge(n[0],n[0])})}}function Yf(){if(fm)return mm;fm=1,mm=function(e,t,r){return function(n,e,t){var r={},o=n.nodes();return o.forEach(function(n){r[n]={},r[n][n]={distance:0},o.forEach(function(e){n!==e&&(r[n][e]={distance:Number.POSITIVE_INFINITY})}),t(n).forEach(function(t){var o=t.v===n?t.w:t.v,a=e(t);r[n][o]={distance:a,predecessor:n}})}),o.forEach(function(n){var e=r[n];o.forEach(function(t){var a=r[t];o.forEach(function(t){var r=a[n],o=e[t],i=a[t],s=r.distance+o.distance;s<i.distance&&(i.distance=s,i.predecessor=o.predecessor)})})}),r}(e,t||n,r||function(n){return e.outEdges(n)})};var n=()=>1;return mm}function Gf(){if(hm)return gm;function n(n){var t={},r={},o=[];if(n.sinks().forEach(function a(i){if(Object.hasOwn(r,i))throw new e;Object.hasOwn(t,i)||(r[i]=!0,t[i]=!0,n.predecessors(i).forEach(a),delete r[i],o.push(i))}),Object.keys(t).length!==n.nodeCount())throw new e;return o}hm=1;class e extends Error{constructor(){super(...arguments)}}return gm=n,n.CycleException=e,gm}function Xf(){if(xm)return vm;xm=1;var n=Gf();return vm=function(e){try{n(e)}catch(e){if(e instanceof n.CycleException)return!1;throw e}return!0}}function qf(){if(ym)return wm;function n(n,e,r,o){for(var a=[[n,!1]];a.length>0;){var i=a.pop();i[1]?o.push(i[0]):Object.hasOwn(r,i[0])||(r[i[0]]=!0,a.push([i[0],!0]),t(e(i[0]),n=>a.push([n,!1])))}}function e(n,e,r,o){for(var a=[n];a.length>0;){var i=a.pop();Object.hasOwn(r,i)||(r[i]=!0,o.push(i),t(e(i),n=>a.push(n)))}}function t(n,e){for(var t=n.length;t--;)e(n[t],t,n);return n}return ym=1,wm=function(t,r,o){Array.isArray(r)||(r=[r]);var a=t.isDirected()?n=>t.successors(n):n=>t.neighbors(n),i="post"===o?n:e,s=[],l={};return r.forEach(n=>{if(!t.hasNode(n))throw new Error("Graph does not have node: "+n);i(n,a,l,s)}),s},wm}function Wf(){if(Em)return km;Em=1;var n=qf();return km=function(e,t){return n(e,t,"post")}}function Zf(){if(Sm)return _m;Sm=1;var n=qf();return _m=function(e,t){return n(e,t,"pre")}}function Kf(){if(Cm)return Om;Cm=1;var n=Af(),e=Bf();return Om=function(t,r){var o,a=new n,i={},s=new e;function l(n){var e=n.v===o?n.w:n.v,t=s.priority(e);if(void 0!==t){var a=r(n);a<t&&(i[e]=o,s.decrease(e,a))}}if(0===t.nodeCount())return a;t.nodes().forEach(function(n){s.add(n,Number.POSITIVE_INFINITY),a.setNode(n)}),s.decrease(t.nodes()[0],0);var d=!1;for(;s.size()>0;){if(o=s.removeMin(),Object.hasOwn(i,o))a.setEdge(o,i[o]);else{if(d)throw new Error("Input graph is not connected: "+t);d=!0}t.nodeEdges(o).forEach(l)}return a},Om}function Uf(){if(Mm)return zm;Mm=1;var n=Df();return zm={Graph:n.Graph,json:Tf(),alg:jm?Nm:(jm=1,Nm={components:Lf(),dijkstra:Vf(),dijkstraAll:$f(),findCycles:Ff(),floydWarshall:Yf(),isAcyclic:Xf(),postorder:Wf(),preorder:Zf(),prim:Kf(),tarjan:Hf(),topsort:Gf()}),version:n.version}}function Qf(){if(Am)return Im;Am=1;let n=Uf().Graph,e=function(){if(Rm)return Pm;function n(n){n._prev._next=n._next,n._next._prev=n._prev,delete n._next,delete n._prev}function e(n,e){if("_next"!==n&&"_prev"!==n)return e}return Rm=1,Pm=class{constructor(){let n={};n._next=n._prev=n,this._sentinel=n}dequeue(){let e=this._sentinel,t=e._prev;if(t!==e)return n(t),t}enqueue(e){let t=this._sentinel;e._prev&&e._next&&n(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t}toString(){let n=[],t=this._sentinel,r=t._prev;for(;r!==t;)n.push(JSON.stringify(r,e)),r=r._prev;return"["+n.join(", ")+"]"}}}();Im=function(a,i){if(a.nodeCount()<=1)return[];let s=function(t,r){let a=new n,i=0,s=0;t.nodes().forEach(n=>{a.setNode(n,{v:n,in:0,out:0})}),t.edges().forEach(n=>{let e=a.edge(n.v,n.w)||0,t=r(n),o=e+t;a.setEdge(n.v,n.w,o),s=Math.max(s,a.node(n.v).out+=t),i=Math.max(i,a.node(n.w).in+=t)});let l=function(n){const e=[];for(let t=0;t<n;t++)e.push(t);return e}(s+i+3).map(()=>new e),d=i+1;return a.nodes().forEach(n=>{o(l,d,a.node(n))}),{graph:a,buckets:l,zeroIdx:d}}(a,i||t);return function(n,e,t){let o,a=[],i=e[e.length-1],s=e[0];for(;n.nodeCount();){for(;o=s.dequeue();)r(n,e,t,o);for(;o=i.dequeue();)r(n,e,t,o);if(n.nodeCount())for(let i=e.length-2;i>0;--i)if(o=e[i].dequeue(),o){a=a.concat(r(n,e,t,o,!0));break}}return a}(s.graph,s.buckets,s.zeroIdx).flatMap(n=>a.outEdges(n.v,n.w))};let t=()=>1;function r(n,e,t,r,a){let i=a?[]:void 0;return n.inEdges(r.v).forEach(r=>{let s=n.edge(r),l=n.node(r.v);a&&i.push({v:r.v,w:r.w}),l.out-=s,o(e,t,l)}),n.outEdges(r.v).forEach(r=>{let a=n.edge(r),i=r.w,s=n.node(i);s.in-=a,o(e,t,s)}),n.removeNode(r.v),i}function o(n,e,t){t.out?t.in?n[t.out-t.in+e].enqueue(t):n[n.length-1].enqueue(t):n[0].enqueue(t)}return Im}function Jf(){if(Tm)return Dm;Tm=1;let n=Uf().Graph;function e(n,e,t,r){for(var o=r;n.hasNode(o);)o=i(r);return t.dummy=e,n.setNode(o,t),o}Dm={addBorderNode:function(n,t,r,o){let a={width:0,height:0};arguments.length>=4&&(a.rank=r,a.order=o);return e(n,"border",a,t)},addDummyNode:e,applyWithChunking:r,asNonCompoundGraph:function(e){let t=new n({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(n=>{e.children(n).length||t.setNode(n,e.node(n))}),e.edges().forEach(n=>{t.setEdge(n,e.edge(n))}),t},buildLayerMatrix:function(n){let e=s(o(n)+1).map(()=>[]);return n.nodes().forEach(t=>{let r=n.node(t),o=r.rank;void 0!==o&&(e[o][r.order]=t)}),e},intersectRect:function(n,e){let t,r,o=n.x,a=n.y,i=e.x-o,s=e.y-a,l=n.width/2,d=n.height/2;if(!i&&!s)throw new Error("Not possible to find intersection inside of the rectangle");Math.abs(s)*l>Math.abs(i)*d?(s<0&&(d=-d),t=d*i/s,r=d):(i<0&&(l=-l),t=l,r=l*s/i);return{x:o+t,y:a+r}},mapValues:function(n,e){let t=e;"string"==typeof e&&(t=n=>n[e]);return Object.entries(n).reduce((n,[e,r])=>(n[e]=t(r,e),n),{})},maxRank:o,normalizeRanks:function(n){let e=n.nodes().map(e=>{let t=n.node(e).rank;return void 0===t?Number.MAX_VALUE:t}),t=r(Math.min,e);n.nodes().forEach(e=>{let r=n.node(e);Object.hasOwn(r,"rank")&&(r.rank-=t)})},notime:function(n,e){return e()},partition:function(n,e){let t={lhs:[],rhs:[]};return n.forEach(n=>{e(n)?t.lhs.push(n):t.rhs.push(n)}),t},pick:function(n,e){const t={};for(const r of e)void 0!==n[r]&&(t[r]=n[r]);return t},predecessorWeights:function(n){let e=n.nodes().map(e=>{let t={};return n.inEdges(e).forEach(e=>{t[e.v]=(t[e.v]||0)+n.edge(e).weight}),t});return l(n.nodes(),e)},range:s,removeEmptyRanks:function(n){let e=n.nodes().map(e=>n.node(e).rank),t=r(Math.min,e),o=[];n.nodes().forEach(e=>{let r=n.node(e).rank-t;o[r]||(o[r]=[]),o[r].push(e)});let a=0,i=n.graph().nodeRankFactor;Array.from(o).forEach((e,t)=>{void 0===e&&t%i!==0?--a:void 0!==e&&a&&e.forEach(e=>n.node(e).rank+=a)})},simplify:function(e){let t=(new n).setGraph(e.graph());return e.nodes().forEach(n=>t.setNode(n,e.node(n))),e.edges().forEach(n=>{let r=t.edge(n.v,n.w)||{weight:0,minlen:1},o=e.edge(n);t.setEdge(n.v,n.w,{weight:r.weight+o.weight,minlen:Math.max(r.minlen,o.minlen)})}),t},successorWeights:function(n){let e=n.nodes().map(e=>{let t={};return n.outEdges(e).forEach(e=>{t[e.w]=(t[e.w]||0)+n.edge(e).weight}),t});return l(n.nodes(),e)},time:function(n,e){let t=Date.now();try{return e()}finally{console.log(n+" time: "+(Date.now()-t)+"ms")}},uniqueId:i,zipObject:l};const t=65535;function r(n,e){if(e.length>t){const r=function(n,e=t){const r=[];for(let t=0;t<n.length;t+=e){const o=n.slice(t,t+e);r.push(o)}return r}(e);return n.apply(null,r.map(e=>n.apply(null,e)))}return n.apply(null,e)}function o(n){const e=n.nodes().map(e=>{let t=n.node(e).rank;return void 0===t?Number.MIN_VALUE:t});return r(Math.max,e)}let a=0;function i(n){return n+""+ ++a}function s(n,e,t=1){null==e&&(e=n,n=0);let r=n=>n<e;t<0&&(r=n=>e<n);const o=[];for(let e=n;r(e);e+=t)o.push(e);return o}function l(n,e){return n.reduce((n,t,r)=>(n[t]=e[r],n),{})}return Dm}function ng(){if(Bm)return Lm;Bm=1;let n=Qf(),e=Jf().uniqueId;return Lm={run:function(t){("greedy"===t.graph().acyclicer?n(t,function(n){return e=>n.edge(e).weight}(t)):function(n){let e=[],t={},r={};function o(a){Object.hasOwn(r,a)||(r[a]=!0,t[a]=!0,n.outEdges(a).forEach(n=>{Object.hasOwn(t,n.w)?e.push(n):o(n.w)}),delete t[a])}return n.nodes().forEach(o),e}(t)).forEach(n=>{let r=t.edge(n);t.removeEdge(n),r.forwardName=n.name,r.reversed=!0,t.setEdge(n.w,n.v,r,e("rev"))})},undo:function(n){n.edges().forEach(e=>{let t=n.edge(e);if(t.reversed){n.removeEdge(e);let r=t.forwardName;delete t.reversed,delete t.forwardName,n.setEdge(e.w,e.v,t,r)}})}},Lm}function eg(){if($m)return Vm;$m=1;let n=Jf();return Vm={run:function(e){e.graph().dummyChains=[],e.edges().forEach(t=>function(e,t){let r,o,a,i=t.v,s=e.node(i).rank,l=t.w,d=e.node(l).rank,c=t.name,p=e.edge(t),u=p.labelRank;if(d===s+1)return;for(e.removeEdge(t),a=0,++s;s<d;++a,++s)p.points=[],o={width:0,height:0,edgeLabel:p,edgeObj:t,rank:s},r=n.addDummyNode(e,"edge",o,"_d"),s===u&&(o.width=p.width,o.height=p.height,o.dummy="edge-label",o.labelpos=p.labelpos),e.setEdge(i,r,{weight:p.weight},c),0===a&&e.graph().dummyChains.push(r),i=r;e.setEdge(i,l,{weight:p.weight},c)}(e,t))},undo:function(n){n.graph().dummyChains.forEach(e=>{let t,r=n.node(e),o=r.edgeLabel;for(n.setEdge(r.edgeObj,o);r.dummy;)t=n.successors(e)[0],n.removeNode(e),o.points.push({x:r.x,y:r.y}),"edge-label"===r.dummy&&(o.x=r.x,o.y=r.y,o.width=r.width,o.height=r.height),e=t,r=n.node(e)})}},Vm}function tg(){if(Fm)return Hm;Fm=1;const{applyWithChunking:n}=Jf();return Hm={longestPath:function(e){var t={};e.sources().forEach(function r(o){var a=e.node(o);if(Object.hasOwn(t,o))return a.rank;t[o]=!0;let i=e.outEdges(o).map(n=>null==n?Number.POSITIVE_INFINITY:r(n.w)-e.edge(n).minlen);var s=n(Math.min,i);return s===Number.POSITIVE_INFINITY&&(s=0),a.rank=s})},slack:function(n,e){return n.node(e.w).rank-n.node(e.v).rank-n.edge(e).minlen}},Hm}function rg(){if(Gm)return Ym;Gm=1;var n=Uf().Graph,e=tg().slack;function t(n,t){return n.nodes().forEach(function r(o){t.nodeEdges(o).forEach(a=>{var i=a.v,s=o===i?a.w:i;n.hasNode(s)||e(t,a)||(n.setNode(s,{}),n.setEdge(o,s,{}),r(s))})}),n.nodeCount()}function r(n,t){return t.edges().reduce((r,o)=>{let a=Number.POSITIVE_INFINITY;return n.hasNode(o.v)!==n.hasNode(o.w)&&(a=e(t,o)),a<r[0]?[a,o]:r},[Number.POSITIVE_INFINITY,null])[1]}function o(n,e,t){n.nodes().forEach(n=>e.node(n).rank+=t)}return Ym=function(a){var i,s,l=new n({directed:!1}),d=a.nodes()[0],c=a.nodeCount();l.setNode(d,{});for(;t(l,a)<c;)i=r(l,a),s=l.hasNode(i.v)?e(a,i):-e(a,i),o(l,a,s);return l},Ym}function og(){if(qm)return Xm;qm=1;var n=rg(),e=tg().slack,t=tg().longestPath,r=Uf().alg.preorder,o=Uf().alg.postorder,a=Jf().simplify;function i(e){e=a(e),t(e);var r,o=n(e);for(d(o),s(o,e);r=p(o);)b(o,e,r,u(o,e,r))}function s(n,e){var t=o(n,n.nodes());(t=t.slice(0,t.length-1)).forEach(t=>function(n,e,t){var r=n.node(t),o=r.parent;n.edge(t,o).cutvalue=l(n,e,t)}(n,e,t))}function l(n,e,t){var r=n.node(t).parent,o=!0,a=e.edge(t,r),i=0;return a||(o=!1,a=e.edge(r,t)),i=a.weight,e.nodeEdges(t).forEach(a=>{var s=a.v===t,l=s?a.w:a.v;if(l!==r){var d=s===o,c=e.edge(a).weight;if(i+=d?c:-c,function(n,e,t){return n.hasEdge(e,t)}(n,t,l)){var p=n.edge(t,l).cutvalue;i+=d?-p:p}}}),i}function d(n,e){arguments.length<2&&(e=n.nodes()[0]),c(n,{},1,e)}function c(n,e,t,r,o){var a=t,i=n.node(r);return e[r]=!0,n.neighbors(r).forEach(o=>{Object.hasOwn(e,o)||(t=c(n,e,t,o,r))}),i.low=a,i.lim=t++,o?i.parent=o:delete i.parent,t}function p(n){return n.edges().find(e=>n.edge(e).cutvalue<0)}function u(n,t,r){var o=r.v,a=r.w;t.hasEdge(o,a)||(o=r.w,a=r.v);var i=n.node(o),s=n.node(a),l=i,d=!1;i.lim>s.lim&&(l=s,d=!0);var c=t.edges().filter(e=>d===m(n,n.node(e.v),l)&&d!==m(n,n.node(e.w),l));return c.reduce((n,r)=>e(t,r)<e(t,n)?r:n)}function b(n,e,t,o){var a=t.v,i=t.w;n.removeEdge(a,i),n.setEdge(o.v,o.w,{}),d(n),s(n,e),function(n,e){var t=n.nodes().find(n=>!e.node(n).parent),o=r(n,t);(o=o.slice(1)).forEach(t=>{var r=n.node(t).parent,o=e.edge(t,r),a=!1;o||(o=e.edge(r,t),a=!0),e.node(t).rank=e.node(r).rank+(a?o.minlen:-o.minlen)})}(n,e)}function m(n,e,t){return t.low<=e.lim&&e.lim<=t.lim}return Xm=i,i.initLowLimValues=d,i.initCutValues=s,i.calcCutValue=l,i.leaveEdge=p,i.enterEdge=u,i.exchangeEdges=b,Xm}function ag(){if(Zm)return Wm;Zm=1;var n=tg().longestPath,e=rg(),t=og();Wm=function(t){var a=t.graph().ranker;if(a instanceof Function)return a(t);switch(t.graph().ranker){case"network-simplex":default:o(t);break;case"tight-tree":!function(t){n(t),e(t)}(t);break;case"longest-path":r(t);case"none":}};var r=n;function o(n){t(n)}return Wm}function ig(){if(Um)return Km;return Um=1,Km=function(n){let e=function(n){let e={},t=0;function r(o){let a=t;n.children(o).forEach(r),e[o]={low:a,lim:t++}}return n.children().forEach(r),e}(n);n.graph().dummyChains.forEach(t=>{let r=n.node(t),o=r.edgeObj,a=function(n,e,t,r){let o,a,i=[],s=[],l=Math.min(e[t].low,e[r].low),d=Math.max(e[t].lim,e[r].lim);o=t;do{o=n.parent(o),i.push(o)}while(o&&(e[o].low>l||d>e[o].lim));a=o,o=r;for(;(o=n.parent(o))!==a;)s.push(o);return{path:i.concat(s.reverse()),lca:a}}(n,e,o.v,o.w),i=a.path,s=a.lca,l=0,d=i[l],c=!0;for(;t!==o.w;){if(r=n.node(t),c){for(;(d=i[l])!==s&&n.node(d).maxRank<r.rank;)l++;d===s&&(c=!1)}if(!c){for(;l<i.length-1&&n.node(d=i[l+1]).minRank<=r.rank;)l++;d=i[l]}n.setParent(t,d),t=n.successors(t)[0]}})},Km}function sg(){if(Jm)return Qm;Jm=1;let n=Jf();function e(t,r,o,a,i,s,l){let d=t.children(l);if(!d.length)return void(l!==r&&t.setEdge(r,l,{weight:0,minlen:o}));let c=n.addBorderNode(t,"_bt"),p=n.addBorderNode(t,"_bb"),u=t.node(l);t.setParent(c,l),u.borderTop=c,t.setParent(p,l),u.borderBottom=p,d.forEach(n=>{e(t,r,o,a,i,s,n);let d=t.node(n),u=d.borderTop?d.borderTop:n,b=d.borderBottom?d.borderBottom:n,m=d.borderTop?a:2*a,f=u!==b?1:i-s[l]+1;t.setEdge(c,u,{weight:m,minlen:f,nestingEdge:!0}),t.setEdge(b,p,{weight:m,minlen:f,nestingEdge:!0})}),t.parent(l)||t.setEdge(r,c,{weight:0,minlen:i+s[l]})}return Qm={run:function(t){let r=n.addDummyNode(t,"root",{},"_root"),o=function(n){var e={};function t(r,o){var a=n.children(r);a&&a.length&&a.forEach(n=>t(n,o+1)),e[r]=o}return n.children().forEach(n=>t(n,1)),e}(t),a=Object.values(o),i=n.applyWithChunking(Math.max,a)-1,s=2*i+1;t.graph().nestingRoot=r,t.edges().forEach(n=>t.edge(n).minlen*=s);let l=function(n){return n.edges().reduce((e,t)=>e+n.edge(t).weight,0)}(t)+1;t.children().forEach(n=>e(t,r,s,l,i,o,n)),t.graph().nodeRankFactor=s},cleanup:function(n){var e=n.graph();n.removeNode(e.nestingRoot),delete e.nestingRoot,n.edges().forEach(e=>{n.edge(e).nestingEdge&&n.removeEdge(e)})}},Qm}function lg(){if(rf)return tf;function n(n){n.nodes().forEach(t=>e(n.node(t))),n.edges().forEach(t=>e(n.edge(t)))}function e(n){let e=n.width;n.width=n.height,n.height=e}function t(n){n.y=-n.y}function r(n){let e=n.x;n.x=n.y,n.y=e}return rf=1,tf={adjust:function(e){let t=e.graph().rankdir.toLowerCase();"lr"!==t&&"rl"!==t||n(e)},undo:function(e){let o=e.graph().rankdir.toLowerCase();"bt"!==o&&"rl"!==o||function(n){n.nodes().forEach(e=>t(n.node(e))),n.edges().forEach(e=>{let r=n.edge(e);r.points.forEach(t),Object.hasOwn(r,"y")&&t(r)})}(e);"lr"!==o&&"rl"!==o||(!function(n){n.nodes().forEach(e=>r(n.node(e))),n.edges().forEach(e=>{let t=n.edge(e);t.points.forEach(r),Object.hasOwn(t,"x")&&r(t)})}(e),n(e))}},tf}function dg(){if(uf)return pf;uf=1;let n=Jf();return pf=function(e,t){let r={};return e.forEach((n,e)=>{let t=r[n.v]={indegree:0,in:[],out:[],vs:[n.v],i:e};void 0!==n.barycenter&&(t.barycenter=n.barycenter,t.weight=n.weight)}),t.edges().forEach(n=>{let e=r[n.v],t=r[n.w];void 0!==e&&void 0!==t&&(t.indegree++,e.out.push(r[n.w]))}),function(e){let t=[];function r(n){return e=>{e.merged||(void 0===e.barycenter||void 0===n.barycenter||e.barycenter>=n.barycenter)&&function(n,e){let t=0,r=0;n.weight&&(t+=n.barycenter*n.weight,r+=n.weight);e.weight&&(t+=e.barycenter*e.weight,r+=e.weight);n.vs=e.vs.concat(n.vs),n.barycenter=t/r,n.weight=r,n.i=Math.min(e.i,n.i),e.merged=!0}(n,e)}}function o(n){return t=>{t.in.push(n),0===--t.indegree&&e.push(t)}}for(;e.length;){let n=e.pop();t.push(n),n.in.reverse().forEach(r(n)),n.out.forEach(o(n))}return t.filter(n=>!n.merged).map(e=>n.pick(e,["vs","i","barycenter","weight"]))}(Object.values(r).filter(n=>!n.indegree))},pf}function cg(){if(gf)return ff;gf=1;let n=(cf||(cf=1,df=function(n,e=[]){return e.map(e=>{let t=n.inEdges(e);if(t.length){let r=t.reduce((e,t)=>{let r=n.edge(t),o=n.node(t.v);return{sum:e.sum+r.weight*o.order,weight:e.weight+r.weight}},{sum:0,weight:0});return{v:e,barycenter:r.sum/r.weight,weight:r.weight}}return{v:e}})}),df),e=dg(),t=function(){if(mf)return bf;mf=1;let n=Jf();function e(n,e,t){let r;for(;e.length&&(r=e[e.length-1]).i<=t;)e.pop(),n.push(r.vs),t++;return t}return bf=function(t,r){let o=n.partition(t,n=>Object.hasOwn(n,"barycenter")),a=o.lhs,i=o.rhs.sort((n,e)=>e.i-n.i),s=[],l=0,d=0,c=0;var p;a.sort((p=!!r,(n,e)=>n.barycenter<e.barycenter?-1:n.barycenter>e.barycenter?1:p?e.i-n.i:n.i-e.i)),c=e(s,i,c),a.forEach(n=>{c+=n.vs.length,s.push(n.vs),l+=n.barycenter*n.weight,d+=n.weight,c=e(s,i,c)});let u={vs:s.flat(!0)};return d&&(u.barycenter=l/d,u.weight=d),u}}();return ff=function r(o,a,i,s){let l=o.children(a),d=o.node(a),c=d?d.borderLeft:void 0,p=d?d.borderRight:void 0,u={};c&&(l=l.filter(n=>n!==c&&n!==p));let b=n(o,l);b.forEach(n=>{if(o.children(n.v).length){let a=r(o,n.v,i,s);u[n.v]=a,Object.hasOwn(a,"barycenter")&&(t=a,void 0!==(e=n).barycenter?(e.barycenter=(e.barycenter*e.weight+t.barycenter*t.weight)/(e.weight+t.weight),e.weight+=t.weight):(e.barycenter=t.barycenter,e.weight=t.weight))}var e,t});let m=e(b,i);!function(n,e){n.forEach(n=>{n.vs=n.vs.flatMap(n=>e[n]?e[n].vs:n)})}(m,u);let f=t(m,s);if(c&&(f.vs=[c,f.vs,p].flat(!0),o.predecessors(c).length)){let n=o.node(o.predecessors(c)[0]),e=o.node(o.predecessors(p)[0]);Object.hasOwn(f,"barycenter")||(f.barycenter=0,f.weight=0),f.barycenter=(f.barycenter*f.weight+n.order+e.order)/(f.weight+2),f.weight+=2}return f},ff}function pg(){if(vf)return hf;vf=1;let n=Uf().Graph,e=Jf();return hf=function(t,r,o){let a=function(n){var t;for(;n.hasNode(t=e.uniqueId("_root")););return t}(t),i=new n({compound:!0}).setGraph({root:a}).setDefaultNodeLabel(n=>t.node(n));return t.nodes().forEach(n=>{let e=t.node(n),s=t.parent(n);(e.rank===r||e.minRank<=r&&r<=e.maxRank)&&(i.setNode(n),i.setParent(n,s||a),t[o](n).forEach(e=>{let r=e.v===n?e.w:e.v,o=i.edge(r,n),a=void 0!==o?o.weight:0;i.setEdge(r,n,{weight:t.edge(e).weight+a})}),Object.hasOwn(e,"minRank")&&i.setNode(n,{borderLeft:e.borderLeft[r],borderRight:e.borderRight[r]}))}),i},hf}function ug(){if(kf)return yf;kf=1;let n=function(){if(af)return of;af=1;let n=Jf();return of=function(e){let t={},r=e.nodes().filter(n=>!e.children(n).length),o=r.map(n=>e.node(n).rank),a=n.applyWithChunking(Math.max,o),i=n.range(a+1).map(()=>[]);return r.sort((n,t)=>e.node(n).rank-e.node(t).rank).forEach(function n(r){if(t[r])return;t[r]=!0;let o=e.node(r);i[o.rank].push(r),e.successors(r).forEach(n)}),i},of}(),e=function(){if(lf)return sf;lf=1;let n=Jf().zipObject;function e(e,t,r){let o=n(r,r.map((n,e)=>e)),a=t.flatMap(n=>e.outEdges(n).map(n=>({pos:o[n.w],weight:e.edge(n).weight})).sort((n,e)=>n.pos-e.pos)),i=1;for(;i<r.length;)i<<=1;let s=2*i-1;i-=1;let l=new Array(s).fill(0),d=0;return a.forEach(n=>{let e=n.pos+i;l[e]+=n.weight;let t=0;for(;e>0;)e%2&&(t+=l[e+1]),e=e-1>>1,l[e]+=n.weight;d+=n.weight*t}),d}return sf=function(n,t){let r=0;for(let o=1;o<t.length;++o)r+=e(n,t[o-1],t[o]);return r},sf}(),t=cg(),r=pg(),o=(wf||(wf=1,xf=function(n,e,t){let r,o={};t.forEach(t=>{let a,i,s=n.parent(t);for(;s;){if(a=n.parent(s),a?(i=o[a],o[a]=s):(i=r,r=s),i&&i!==s)return void e.setEdge(i,s);s=a}})}),xf),a=Uf().Graph,i=Jf();function s(n,e,t){return e.map(function(e){return r(n,e,t)})}function l(n,e){let r=new a;n.forEach(function(n){let a=n.graph().root,i=t(n,a,r,e);i.vs.forEach((e,t)=>n.node(e).order=t),o(n,r,i.vs)})}function d(n,e){Object.values(e).forEach(e=>e.forEach((e,t)=>n.node(e).order=t))}return yf=function t(r,o){if(o&&"function"==typeof o.customOrder)return void o.customOrder(r,t);let a=i.maxRank(r),c=s(r,i.range(1,a+1),"inEdges"),p=s(r,i.range(a-1,-1,-1),"outEdges"),u=n(r);if(d(r,u),o&&o.disableOptimalOrderHeuristic)return;let b,m=Number.POSITIVE_INFINITY;for(let n=0,t=0;t<4;++n,++t){l(n%2?c:p,n%4>=2),u=i.buildLayerMatrix(r);let o=e(r,u);o<m&&(t=0,b=Object.assign({},u),m=o)}d(r,b)},yf}function bg(){if(_f)return Ef;_f=1;let n=Uf().Graph,e=Jf();function t(n,e){let t={};return e.length&&e.reduce(function(e,r){let a=0,i=0,s=e.length,l=r[r.length-1];return r.forEach((e,d)=>{let c=function(n,e){if(n.node(e).dummy)return n.predecessors(e).find(e=>n.node(e).dummy)}(n,e),p=c?n.node(c).order:s;(c||e===l)&&(r.slice(i,d+1).forEach(e=>{n.predecessors(e).forEach(r=>{let i=n.node(r),s=i.order;!(s<a||p<s)||i.dummy&&n.node(e).dummy||o(t,r,e)})}),i=d+1,a=p)}),r}),t}function r(n,t){let r={};function a(t,a,i,s,l){let d;e.range(a,i).forEach(e=>{d=t[e],n.node(d).dummy&&n.predecessors(d).forEach(e=>{let t=n.node(e);t.dummy&&(t.order<s||t.order>l)&&o(r,e,d)})})}return t.length&&t.reduce(function(e,t){let r,o=-1,i=0;return t.forEach((s,l)=>{if("border"===n.node(s).dummy){let e=n.predecessors(s);e.length&&(r=n.node(e[0]).order,a(t,i,l,o,r),i=l,o=r)}a(t,i,t.length,r,e.length)}),t}),r}function o(n,e,t){if(e>t){let n=e;e=t,t=n}let r=n[e];r||(n[e]=r={}),r[t]=!0}function a(n,e,t){if(e>t){let n=e;e=t,t=n}return!!n[e]&&Object.hasOwn(n[e],t)}function i(n,e,t,r){let o={},i={},s={};return e.forEach(n=>{n.forEach((n,e)=>{o[n]=n,i[n]=n,s[n]=e})}),e.forEach(n=>{let e=-1;n.forEach(n=>{let l=r(n);if(l.length){l=l.sort((n,e)=>s[n]-s[e]);let r=(l.length-1)/2;for(let d=Math.floor(r),c=Math.ceil(r);d<=c;++d){let r=l[d];i[n]===n&&e<s[r]&&!a(t,n,r)&&(i[r]=n,i[n]=o[n]=o[r],e=s[r])}}})}),{root:o,align:i}}function s(e,t,r,o,a){let i={},s=function(e,t,r,o){let a=new n,i=e.graph(),s=function(n,e,t){return(r,o,a)=>{let i,s=r.node(o),l=r.node(a),d=0;if(d+=s.width/2,Object.hasOwn(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":i=-s.width/2;break;case"r":i=s.width/2}if(i&&(d+=t?i:-i),i=0,d+=(s.dummy?e:n)/2,d+=(l.dummy?e:n)/2,d+=l.width/2,Object.hasOwn(l,"labelpos"))switch(l.labelpos.toLowerCase()){case"l":i=l.width/2;break;case"r":i=-l.width/2}return i&&(d+=t?i:-i),i=0,d}}(i.nodesep,i.edgesep,o);return t.forEach(n=>{let t;n.forEach(n=>{let o=r[n];if(a.setNode(o),t){var i=r[t],l=a.edge(i,o);a.setEdge(i,o,Math.max(s(e,n,t),l||0))}t=n})}),a}(e,t,r,a),l=a?"borderLeft":"borderRight";function d(n,e){let t=s.nodes(),r=t.pop(),o={};for(;r;)o[r]?n(r):(o[r]=!0,t.push(r),t=t.concat(e(r))),r=t.pop()}return d(function(n){i[n]=s.inEdges(n).reduce((n,e)=>Math.max(n,i[e.v]+s.edge(e)),0)},s.predecessors.bind(s)),d(function(n){let t=s.outEdges(n).reduce((n,e)=>Math.min(n,i[e.w]-s.edge(e)),Number.POSITIVE_INFINITY),r=e.node(n);t!==Number.POSITIVE_INFINITY&&r.borderType!==l&&(i[n]=Math.max(i[n],t))},s.successors.bind(s)),Object.keys(o).forEach(n=>i[n]=i[r[n]]),i}function l(n,e){return Object.values(e).reduce((e,t)=>{let r=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY;Object.entries(t).forEach(([e,t])=>{let a=function(n,e){return n.node(e).width}(n,e)/2;r=Math.max(t+a,r),o=Math.min(t-a,o)});const a=r-o;return a<e[0]&&(e=[a,t]),e},[Number.POSITIVE_INFINITY,null])[1]}function d(n,t){let r=Object.values(t),o=e.applyWithChunking(Math.min,r),a=e.applyWithChunking(Math.max,r);["u","d"].forEach(r=>{["l","r"].forEach(i=>{let s=r+i,l=n[s];if(l===t)return;let d=Object.values(l),c=o-e.applyWithChunking(Math.min,d);"l"!==i&&(c=a-e.applyWithChunking(Math.max,d)),c&&(n[s]=e.mapValues(l,n=>n+c))})})}function c(n,t){return e.mapValues(n.ul,(e,r)=>{if(t)return n[t.toLowerCase()][r];{let e=Object.values(n).map(n=>n[r]).sort((n,e)=>n-e);return(e[1]+e[2])/2}})}return Ef={positionX:function(n){let o,a=e.buildLayerMatrix(n),p=Object.assign(t(n,a),r(n,a)),u={};["u","d"].forEach(t=>{o="u"===t?a:Object.values(a).reverse(),["l","r"].forEach(r=>{"r"===r&&(o=o.map(n=>Object.values(n).reverse()));let a=("u"===t?n.predecessors:n.successors).bind(n),l=i(n,o,p,a),d=s(n,o,l.root,l.align,"r"===r);"r"===r&&(d=e.mapValues(d,n=>-n)),u[t+r]=d})});let b=l(n,u);return d(u,b),c(u,n.graph().align)},findType1Conflicts:t,findType2Conflicts:r,addConflict:o,hasConflict:a,verticalAlignment:i,horizontalCompaction:s,alignCoordinates:d,findSmallestWidthAlignment:l,balance:c}}function mg(){if(Of)return Sf;Of=1;let n=Jf(),e=bg().positionX;return Sf=function(t){(function(e){let t=n.buildLayerMatrix(e),r=e.graph().ranksep,o=0;t.forEach(n=>{const t=n.reduce((n,t)=>{const r=e.node(t).height;return n>r?n:r},0);n.forEach(n=>e.node(n).y=o+t/2),o+=t+r})})(t=n.asNonCompoundGraph(t)),Object.entries(e(t)).forEach(([n,e])=>t.node(n).x=e)},Sf}function fg(){if(Nf)return Cf;Nf=1;let n=ng(),e=eg(),t=ag(),r=Jf().normalizeRanks,o=ig(),a=Jf().removeEmptyRanks,i=sg(),s=function(){if(ef)return nf;ef=1;let n=Jf();function e(e,t,r,o,a,i){let s={width:0,height:0,rank:i,borderType:t},l=a[t][i-1],d=n.addDummyNode(e,"border",s,r);a[t][i]=d,e.setParent(d,o),l&&e.setEdge(l,d,{weight:1})}return nf=function(n){n.children().forEach(function t(r){let o=n.children(r),a=n.node(r);if(o.length&&o.forEach(t),Object.hasOwn(a,"minRank")){a.borderLeft=[],a.borderRight=[];for(let t=a.minRank,o=a.maxRank+1;t<o;++t)e(n,"borderLeft","_bl",r,a,t),e(n,"borderRight","_br",r,a,t)}})},nf}(),l=lg(),d=ug(),c=mg(),p=Jf(),u=Uf().Graph;Cf=function(E,_){let S=_&&_.debugTiming?p.time:p.notime;S("layout",()=>{let O=S(" buildLayoutGraph",()=>function(n){let e=new u({multigraph:!0,compound:!0}),t=k(n.graph());return e.setGraph(Object.assign({},m,y(t,b),p.pick(t,f))),n.nodes().forEach(t=>{const r=y(k(n.node(t)),g);Object.keys(h).forEach(n=>{void 0===r[n]&&(r[n]=h[n])}),e.setNode(t,r),e.setParent(t,n.parent(t))}),n.edges().forEach(t=>{let r=k(n.edge(t));e.setEdge(t,Object.assign({},x,y(r,v),p.pick(r,w)))}),e}(E));S(" runLayout",()=>function(u,b,m){b(" makeSpaceForEdgeLabels",()=>function(n){let e=n.graph();e.ranksep/=2,n.edges().forEach(t=>{let r=n.edge(t);r.minlen*=2,"c"!==r.labelpos.toLowerCase()&&("TB"===e.rankdir||"BT"===e.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)})}(u)),b(" removeSelfEdges",()=>function(n){n.edges().forEach(e=>{if(e.v===e.w){var t=n.node(e.v);t.selfEdges||(t.selfEdges=[]),t.selfEdges.push({e:e,label:n.edge(e)}),n.removeEdge(e)}})}(u)),b(" acyclic",()=>n.run(u)),b(" nestingGraph.run",()=>i.run(u)),b(" rank",()=>t(p.asNonCompoundGraph(u))),b(" injectEdgeLabelProxies",()=>function(n){n.edges().forEach(e=>{let t=n.edge(e);if(t.width&&t.height){let t=n.node(e.v),r={rank:(n.node(e.w).rank-t.rank)/2+t.rank,e:e};p.addDummyNode(n,"edge-proxy",r,"_ep")}})}(u)),b(" removeEmptyRanks",()=>a(u)),b(" nestingGraph.cleanup",()=>i.cleanup(u)),b(" normalizeRanks",()=>r(u)),b(" assignRankMinMax",()=>function(n){let e=0;n.nodes().forEach(t=>{let r=n.node(t);r.borderTop&&(r.minRank=n.node(r.borderTop).rank,r.maxRank=n.node(r.borderBottom).rank,e=Math.max(e,r.maxRank))}),n.graph().maxRank=e}(u)),b(" removeEdgeLabelProxies",()=>function(n){n.nodes().forEach(e=>{let t=n.node(e);"edge-proxy"===t.dummy&&(n.edge(t.e).labelRank=t.rank,n.removeNode(e))})}(u)),b(" normalize.run",()=>e.run(u)),b(" parentDummyChains",()=>o(u)),b(" addBorderSegments",()=>s(u)),b(" order",()=>d(u,m)),b(" insertSelfEdges",()=>function(n){var e=p.buildLayerMatrix(n);e.forEach(e=>{var t=0;e.forEach((e,r)=>{var o=n.node(e);o.order=r+t,(o.selfEdges||[]).forEach(e=>{p.addDummyNode(n,"selfedge",{width:e.label.width,height:e.label.height,rank:o.rank,order:r+ ++t,e:e.e,label:e.label},"_se")}),delete o.selfEdges})})}(u)),b(" adjustCoordinateSystem",()=>l.adjust(u)),b(" position",()=>c(u)),b(" positionSelfEdges",()=>function(n){n.nodes().forEach(e=>{var t=n.node(e);if("selfedge"===t.dummy){var r=n.node(t.e.v),o=r.x+r.width/2,a=r.y,i=t.x-o,s=r.height/2;n.setEdge(t.e,t.label),n.removeNode(e),t.label.points=[{x:o+2*i/3,y:a-s},{x:o+5*i/6,y:a-s},{x:o+i,y:a},{x:o+5*i/6,y:a+s},{x:o+2*i/3,y:a+s}],t.label.x=t.x,t.label.y=t.y}})}(u)),b(" removeBorderNodes",()=>function(n){n.nodes().forEach(e=>{if(n.children(e).length){let t=n.node(e),r=n.node(t.borderTop),o=n.node(t.borderBottom),a=n.node(t.borderLeft[t.borderLeft.length-1]),i=n.node(t.borderRight[t.borderRight.length-1]);t.width=Math.abs(i.x-a.x),t.height=Math.abs(o.y-r.y),t.x=a.x+t.width/2,t.y=r.y+t.height/2}}),n.nodes().forEach(e=>{"border"===n.node(e).dummy&&n.removeNode(e)})}(u)),b(" normalize.undo",()=>e.undo(u)),b(" fixupEdgeLabelCoords",()=>function(n){n.edges().forEach(e=>{let t=n.edge(e);if(Object.hasOwn(t,"x"))switch("l"!==t.labelpos&&"r"!==t.labelpos||(t.width-=t.labeloffset),t.labelpos){case"l":t.x-=t.width/2+t.labeloffset;break;case"r":t.x+=t.width/2+t.labeloffset}})}(u)),b(" undoCoordinateSystem",()=>l.undo(u)),b(" translateGraph",()=>function(n){let e=Number.POSITIVE_INFINITY,t=0,r=Number.POSITIVE_INFINITY,o=0,a=n.graph(),i=a.marginx||0,s=a.marginy||0;function l(n){let a=n.x,i=n.y,s=n.width,l=n.height;e=Math.min(e,a-s/2),t=Math.max(t,a+s/2),r=Math.min(r,i-l/2),o=Math.max(o,i+l/2)}n.nodes().forEach(e=>l(n.node(e))),n.edges().forEach(e=>{let t=n.edge(e);Object.hasOwn(t,"x")&&l(t)}),e-=i,r-=s,n.nodes().forEach(t=>{let o=n.node(t);o.x-=e,o.y-=r}),n.edges().forEach(t=>{let o=n.edge(t);o.points.forEach(n=>{n.x-=e,n.y-=r}),Object.hasOwn(o,"x")&&(o.x-=e),Object.hasOwn(o,"y")&&(o.y-=r)}),a.width=t-e+i,a.height=o-r+s}(u)),b(" assignNodeIntersects",()=>function(n){n.edges().forEach(e=>{let t,r,o=n.edge(e),a=n.node(e.v),i=n.node(e.w);o.points?(t=o.points[0],r=o.points[o.points.length-1]):(o.points=[],t=i,r=a),o.points.unshift(p.intersectRect(a,t)),o.points.push(p.intersectRect(i,r))})}(u)),b(" reversePoints",()=>function(n){n.edges().forEach(e=>{let t=n.edge(e);t.reversed&&t.points.reverse()})}(u)),b(" acyclic.undo",()=>n.undo(u))}(O,S,_)),S(" updateInputGraph",()=>function(n,e){n.nodes().forEach(t=>{let r=n.node(t),o=e.node(t);r&&(r.x=o.x,r.y=o.y,r.rank=o.rank,e.children(t).length&&(r.width=o.width,r.height=o.height))}),n.edges().forEach(t=>{let r=n.edge(t),o=e.edge(t);r.points=o.points,Object.hasOwn(o,"x")&&(r.x=o.x,r.y=o.y)}),n.graph().width=e.graph().width,n.graph().height=e.graph().height}(E,O))})};let b=["nodesep","edgesep","ranksep","marginx","marginy"],m={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},f=["acyclicer","ranker","rankdir","align"],g=["width","height","rank"],h={width:0,height:0},v=["minlen","weight","width","height","labeloffset"],x={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},w=["labelpos"];function y(n,e){return p.mapValues(p.pick(n,e),Number)}function k(n){var e={};return n&&Object.entries(n).forEach(([n,t])=>{"string"==typeof n&&(n=n.toLowerCase()),e[n]=t}),e}return Cf}function gg(){if(zf)return jf;zf=1;let n=Jf(),e=Uf().Graph;return jf={debugOrdering:function(t){let r=n.buildLayerMatrix(t),o=new e({compound:!0,multigraph:!0}).setGraph({});return t.nodes().forEach(n=>{o.setNode(n,{label:n}),o.setParent(n,"layer"+t.node(n).rank)}),t.edges().forEach(n=>o.setEdge(n.v,n.w,{},n.name)),r.forEach((n,e)=>{let t="layer"+e;o.setNode(t,{rank:"same"}),n.reduce((n,e)=>(o.setEdge(n,e,{style:"invis"}),e))}),o}},jf}a("/* this gets exported as style.css and can be used for the default theming */\n/* these are the necessary styles for React/Svelte Flow, they get used by base.css and style.css */\n.react-flow {\n direction: ltr;\n\n --xy-edge-stroke-default: #b1b1b7;\n --xy-edge-stroke-width-default: 1;\n --xy-edge-stroke-selected-default: #555;\n\n --xy-connectionline-stroke-default: #b1b1b7;\n --xy-connectionline-stroke-width-default: 1;\n\n --xy-attribution-background-color-default: rgba(255, 255, 255, 0.5);\n\n --xy-minimap-background-color-default: #fff;\n --xy-minimap-mask-background-color-default: rgba(240, 240, 240, 0.6);\n --xy-minimap-mask-stroke-color-default: transparent;\n --xy-minimap-mask-stroke-width-default: 1;\n --xy-minimap-node-background-color-default: #e2e2e2;\n --xy-minimap-node-stroke-color-default: transparent;\n --xy-minimap-node-stroke-width-default: 2;\n\n --xy-background-color-default: transparent;\n --xy-background-pattern-dots-color-default: #91919a;\n --xy-background-pattern-lines-color-default: #eee;\n --xy-background-pattern-cross-color-default: #e2e2e2;\n background-color: var(--xy-background-color, var(--xy-background-color-default));\n --xy-node-color-default: inherit;\n --xy-node-border-default: 1px solid #1a192b;\n --xy-node-background-color-default: #fff;\n --xy-node-group-background-color-default: rgba(240, 240, 240, 0.25);\n --xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, 0.08);\n --xy-node-boxshadow-selected-default: 0 0 0 0.5px #1a192b;\n --xy-node-border-radius-default: 3px;\n\n --xy-handle-background-color-default: #1a192b;\n --xy-handle-border-color-default: #fff;\n\n --xy-selection-background-color-default: rgba(0, 89, 220, 0.08);\n --xy-selection-border-default: 1px dotted rgba(0, 89, 220, 0.8);\n\n --xy-controls-button-background-color-default: #fefefe;\n --xy-controls-button-background-color-hover-default: #f4f4f4;\n --xy-controls-button-color-default: inherit;\n --xy-controls-button-color-hover-default: inherit;\n --xy-controls-button-border-color-default: #eee;\n --xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, 0.08);\n\n --xy-edge-label-background-color-default: #ffffff;\n --xy-edge-label-color-default: inherit;\n --xy-resize-background-color-default: #3367d9;\n}\n.react-flow.dark {\n --xy-edge-stroke-default: #3e3e3e;\n --xy-edge-stroke-width-default: 1;\n --xy-edge-stroke-selected-default: #727272;\n\n --xy-connectionline-stroke-default: #b1b1b7;\n --xy-connectionline-stroke-width-default: 1;\n\n --xy-attribution-background-color-default: rgba(150, 150, 150, 0.25);\n\n --xy-minimap-background-color-default: #141414;\n --xy-minimap-mask-background-color-default: rgba(60, 60, 60, 0.6);\n --xy-minimap-mask-stroke-color-default: transparent;\n --xy-minimap-mask-stroke-width-default: 1;\n --xy-minimap-node-background-color-default: #2b2b2b;\n --xy-minimap-node-stroke-color-default: transparent;\n --xy-minimap-node-stroke-width-default: 2;\n\n --xy-background-color-default: #141414;\n --xy-background-pattern-dots-color-default: #777;\n --xy-background-pattern-lines-color-default: #777;\n --xy-background-pattern-cross-color-default: #777;\n --xy-node-color-default: #f8f8f8;\n --xy-node-border-default: 1px solid #3c3c3c;\n --xy-node-background-color-default: #1e1e1e;\n --xy-node-group-background-color-default: rgba(240, 240, 240, 0.25);\n --xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, 0.08);\n --xy-node-boxshadow-selected-default: 0 0 0 0.5px #999;\n\n --xy-handle-background-color-default: #bebebe;\n --xy-handle-border-color-default: #1e1e1e;\n\n --xy-selection-background-color-default: rgba(200, 200, 220, 0.08);\n --xy-selection-border-default: 1px dotted rgba(200, 200, 220, 0.8);\n\n --xy-controls-button-background-color-default: #2b2b2b;\n --xy-controls-button-background-color-hover-default: #3e3e3e;\n --xy-controls-button-color-default: #f8f8f8;\n --xy-controls-button-color-hover-default: #fff;\n --xy-controls-button-border-color-default: #5b5b5b;\n --xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, 0.08);\n\n --xy-edge-label-background-color-default: #141414;\n --xy-edge-label-color-default: #f8f8f8;\n}\n.react-flow__background {\n background-color: var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));\n pointer-events: none;\n z-index: -1;\n}\n.react-flow__container {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n}\n.react-flow__pane {\n z-index: 1;\n}\n.react-flow__pane.draggable {\n cursor: grab;\n }\n.react-flow__pane.dragging {\n cursor: grabbing;\n }\n.react-flow__pane.selection {\n cursor: pointer;\n }\n.react-flow__viewport {\n transform-origin: 0 0;\n z-index: 2;\n pointer-events: none;\n}\n.react-flow__renderer {\n z-index: 4;\n}\n.react-flow__selection {\n z-index: 6;\n}\n.react-flow__nodesselection-rect:focus,\n.react-flow__nodesselection-rect:focus-visible {\n outline: none;\n}\n.react-flow__edge-path {\n stroke: var(--xy-edge-stroke, var(--xy-edge-stroke-default));\n stroke-width: var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));\n fill: none;\n}\n.react-flow__connection-path {\n stroke: var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));\n stroke-width: var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));\n fill: none;\n}\n.react-flow .react-flow__edges {\n position: absolute;\n}\n.react-flow .react-flow__edges svg {\n overflow: visible;\n position: absolute;\n pointer-events: none;\n }\n.react-flow__edge {\n pointer-events: visibleStroke;\n}\n.react-flow__edge.selectable {\n cursor: pointer;\n }\n.react-flow__edge.animated path {\n stroke-dasharray: 5;\n animation: dashdraw 0.5s linear infinite;\n }\n.react-flow__edge.animated path.react-flow__edge-interaction {\n stroke-dasharray: none;\n animation: none;\n }\n.react-flow__edge.inactive {\n pointer-events: none;\n }\n.react-flow__edge.selected,\n .react-flow__edge:focus,\n .react-flow__edge:focus-visible {\n outline: none;\n }\n.react-flow__edge.selected .react-flow__edge-path,\n .react-flow__edge.selectable:focus .react-flow__edge-path,\n .react-flow__edge.selectable:focus-visible .react-flow__edge-path {\n stroke: var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default));\n }\n.react-flow__edge-textwrapper {\n pointer-events: all;\n }\n.react-flow__edge .react-flow__edge-text {\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n }\n.react-flow__connection {\n pointer-events: none;\n}\n.react-flow__connection .animated {\n stroke-dasharray: 5;\n animation: dashdraw 0.5s linear infinite;\n }\nsvg.react-flow__connectionline {\n z-index: 1001;\n overflow: visible;\n position: absolute;\n}\n.react-flow__nodes {\n pointer-events: none;\n transform-origin: 0 0;\n}\n.react-flow__node {\n position: absolute;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n pointer-events: all;\n transform-origin: 0 0;\n box-sizing: border-box;\n cursor: default;\n}\n.react-flow__node.selectable {\n cursor: pointer;\n }\n.react-flow__node.draggable {\n cursor: grab;\n pointer-events: all;\n }\n.react-flow__node.draggable.dragging {\n cursor: grabbing;\n }\n.react-flow__nodesselection {\n z-index: 3;\n transform-origin: left top;\n pointer-events: none;\n}\n.react-flow__nodesselection-rect {\n position: absolute;\n pointer-events: all;\n cursor: grab;\n }\n.react-flow__handle {\n position: absolute;\n pointer-events: none;\n min-width: 5px;\n min-height: 5px;\n width: 6px;\n height: 6px;\n background-color: var(--xy-handle-background-color, var(--xy-handle-background-color-default));\n border: 1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));\n border-radius: 100%;\n}\n.react-flow__handle.connectingfrom {\n pointer-events: all;\n }\n.react-flow__handle.connectionindicator {\n pointer-events: all;\n cursor: crosshair;\n }\n.react-flow__handle-bottom {\n top: auto;\n left: 50%;\n bottom: 0;\n transform: translate(-50%, 50%);\n }\n.react-flow__handle-top {\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n.react-flow__handle-left {\n top: 50%;\n left: 0;\n transform: translate(-50%, -50%);\n }\n.react-flow__handle-right {\n top: 50%;\n right: 0;\n transform: translate(50%, -50%);\n }\n.react-flow__edgeupdater {\n cursor: move;\n pointer-events: all;\n}\n.react-flow__pane.selection .react-flow__panel {\n pointer-events: none;\n}\n.react-flow__panel {\n position: absolute;\n z-index: 5;\n margin: 15px;\n}\n.react-flow__panel.top {\n top: 0;\n }\n.react-flow__panel.bottom {\n bottom: 0;\n }\n.react-flow__panel.top.center, .react-flow__panel.bottom.center {\n left: 50%;\n transform: translateX(-15px) translateX(-50%);\n }\n.react-flow__panel.left {\n left: 0;\n }\n.react-flow__panel.right {\n right: 0;\n }\n.react-flow__panel.left.center, .react-flow__panel.right.center {\n top: 50%;\n transform: translateY(-15px) translateY(-50%);\n }\n.react-flow__attribution {\n font-size: 10px;\n background: var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));\n padding: 2px 3px;\n margin: 0;\n}\n.react-flow__attribution a {\n text-decoration: none;\n color: #999;\n }\n@keyframes dashdraw {\n from {\n stroke-dashoffset: 10;\n }\n}\n.react-flow__edgelabel-renderer {\n position: absolute;\n width: 100%;\n height: 100%;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n left: 0;\n top: 0;\n}\n.react-flow__viewport-portal {\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.react-flow__minimap {\n background: var(\n --xy-minimap-background-color-props,\n var(--xy-minimap-background-color, var(--xy-minimap-background-color-default))\n );\n}\n.react-flow__minimap-svg {\n display: block;\n }\n.react-flow__minimap-mask {\n fill: var(\n --xy-minimap-mask-background-color-props,\n var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default))\n );\n stroke: var(\n --xy-minimap-mask-stroke-color-props,\n var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default))\n );\n stroke-width: var(\n --xy-minimap-mask-stroke-width-props,\n var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default))\n );\n }\n.react-flow__minimap-node {\n fill: var(\n --xy-minimap-node-background-color-props,\n var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default))\n );\n stroke: var(\n --xy-minimap-node-stroke-color-props,\n var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default))\n );\n stroke-width: var(\n --xy-minimap-node-stroke-width-props,\n var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default))\n );\n }\n.react-flow__background-pattern.dots {\n fill: var(\n --xy-background-pattern-color-props,\n var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default))\n );\n }\n.react-flow__background-pattern.lines {\n stroke: var(\n --xy-background-pattern-color-props,\n var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default))\n );\n }\n.react-flow__background-pattern.cross {\n stroke: var(\n --xy-background-pattern-color-props,\n var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default))\n );\n }\n.react-flow__controls {\n display: flex;\n flex-direction: column;\n box-shadow: var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default));\n}\n.react-flow__controls.horizontal {\n flex-direction: row;\n }\n.react-flow__controls-button {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 26px;\n width: 26px;\n padding: 4px;\n border: none;\n background: var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));\n border-bottom: 1px solid\n var(\n --xy-controls-button-border-color-props,\n var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default))\n );\n color: var(\n --xy-controls-button-color-props,\n var(--xy-controls-button-color, var(--xy-controls-button-color-default))\n );\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n }\n.react-flow__controls-button svg {\n width: 100%;\n max-width: 12px;\n max-height: 12px;\n fill: currentColor;\n }\n.react-flow__edge.updating .react-flow__edge-path {\n stroke: #777;\n }\n.react-flow__edge-text {\n font-size: 10px;\n }\n.react-flow__node.selectable:focus,\n .react-flow__node.selectable:focus-visible {\n outline: none;\n }\n.react-flow__node-input,\n.react-flow__node-default,\n.react-flow__node-output,\n.react-flow__node-group {\n padding: 10px;\n border-radius: var(--xy-node-border-radius, var(--xy-node-border-radius-default));\n width: 150px;\n font-size: 12px;\n color: var(--xy-node-color, var(--xy-node-color-default));\n text-align: center;\n border: var(--xy-node-border, var(--xy-node-border-default));\n background-color: var(--xy-node-background-color, var(--xy-node-background-color-default));\n}\n.react-flow__node-input.selectable:hover, .react-flow__node-default.selectable:hover, .react-flow__node-output.selectable:hover, .react-flow__node-group.selectable:hover {\n box-shadow: var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default));\n }\n.react-flow__node-input.selectable.selected,\n .react-flow__node-input.selectable:focus,\n .react-flow__node-input.selectable:focus-visible,\n .react-flow__node-default.selectable.selected,\n .react-flow__node-default.selectable:focus,\n .react-flow__node-default.selectable:focus-visible,\n .react-flow__node-output.selectable.selected,\n .react-flow__node-output.selectable:focus,\n .react-flow__node-output.selectable:focus-visible,\n .react-flow__node-group.selectable.selected,\n .react-flow__node-group.selectable:focus,\n .react-flow__node-group.selectable:focus-visible {\n box-shadow: var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default));\n }\n.react-flow__node-group {\n background-color: var(--xy-node-group-background-color, var(--xy-node-group-background-color-default));\n}\n.react-flow__nodesselection-rect,\n.react-flow__selection {\n background: var(--xy-selection-background-color, var(--xy-selection-background-color-default));\n border: var(--xy-selection-border, var(--xy-selection-border-default));\n}\n.react-flow__nodesselection-rect:focus,\n .react-flow__nodesselection-rect:focus-visible,\n .react-flow__selection:focus,\n .react-flow__selection:focus-visible {\n outline: none;\n }\n.react-flow__controls-button:hover {\n background: var(\n --xy-controls-button-background-color-hover-props,\n var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default))\n );\n color: var(\n --xy-controls-button-color-hover-props,\n var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default))\n );\n }\n.react-flow__controls-button:disabled {\n pointer-events: none;\n }\n.react-flow__controls-button:disabled svg {\n fill-opacity: 0.4;\n }\n.react-flow__controls-button:last-child {\n border-bottom: none;\n }\n.react-flow__controls.horizontal .react-flow__controls-button {\n border-bottom: none;\n border-right: 1px solid\n var(\n --xy-controls-button-border-color-props,\n var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default))\n );\n }\n.react-flow__controls.horizontal .react-flow__controls-button:last-child {\n border-right: none;\n }\n.react-flow__resize-control {\n position: absolute;\n}\n.react-flow__resize-control.left,\n.react-flow__resize-control.right {\n cursor: ew-resize;\n}\n.react-flow__resize-control.top,\n.react-flow__resize-control.bottom {\n cursor: ns-resize;\n}\n.react-flow__resize-control.top.left,\n.react-flow__resize-control.bottom.right {\n cursor: nwse-resize;\n}\n.react-flow__resize-control.bottom.left,\n.react-flow__resize-control.top.right {\n cursor: nesw-resize;\n}\n/* handle styles */\n.react-flow__resize-control.handle {\n width: 5px;\n height: 5px;\n border: 1px solid #fff;\n border-radius: 1px;\n background-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default));\n translate: -50% -50%;\n}\n.react-flow__resize-control.handle.left {\n left: 0;\n top: 50%;\n}\n.react-flow__resize-control.handle.right {\n left: 100%;\n top: 50%;\n}\n.react-flow__resize-control.handle.top {\n left: 50%;\n top: 0;\n}\n.react-flow__resize-control.handle.bottom {\n left: 50%;\n top: 100%;\n}\n.react-flow__resize-control.handle.top.left {\n left: 0;\n}\n.react-flow__resize-control.handle.bottom.left {\n left: 0;\n}\n.react-flow__resize-control.handle.top.right {\n left: 100%;\n}\n.react-flow__resize-control.handle.bottom.right {\n left: 100%;\n}\n/* line styles */\n.react-flow__resize-control.line {\n border-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default));\n border-width: 0;\n border-style: solid;\n}\n.react-flow__resize-control.line.left,\n.react-flow__resize-control.line.right {\n width: 1px;\n transform: translate(-50%, 0);\n top: 0;\n height: 100%;\n}\n.react-flow__resize-control.line.left {\n left: 0;\n border-left-width: 1px;\n}\n.react-flow__resize-control.line.right {\n left: 100%;\n border-right-width: 1px;\n}\n.react-flow__resize-control.line.top,\n.react-flow__resize-control.line.bottom {\n height: 1px;\n transform: translate(0, -50%);\n left: 0;\n width: 100%;\n}\n.react-flow__resize-control.line.top {\n top: 0;\n border-top-width: 1px;\n}\n.react-flow__resize-control.line.bottom {\n border-bottom-width: 1px;\n top: 100%;\n}\n.react-flow__edge-textbg {\n fill: var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default));\n}\n.react-flow__edge-text {\n fill: var(--xy-edge-label-color, var(--xy-edge-label-color-default));\n}\n");var hg=i(If?Rf:(If=1,Rf={graphlib:Uf(),layout:fg(),debug:gg(),util:{time:Jf().time,notime:Jf().notime},version:Pf?Mf:(Pf=1,Mf="1.1.5")})),vg={type:Bl.ArrowClosed,width:20,height:20,color:"#FF0072"},xg={strokeWidth:2,stroke:"#FF0072"},wg=function(t){var r=t.tree,o=Xp().fitView,a=function(n){const[t,r]=e.useState(n),o=e.useCallback(n=>r(e=>Rp(n,e)),[]);return[t,r,o]}([]),i=G(a,3),s=i[0],l=i[1],d=i[2],c=function(n){const[t,r]=e.useState(n),o=e.useCallback(n=>r(e=>Ip(n,e)),[]);return[t,r,o]}([]),p=G(c,3),u=p[0],b=p[1],m=p[2];return e.useEffect(function(){if(r){var n,e=function(n,e){var t=[],r=[];return Object.keys(n).forEach(function(o,a){n[o].forEach(function(n,a){var i={id:n,flowId:n,position:{x:250,y:200*a},data:{label:String(n)}};if(0==a&&(i.type="input"),a>0){var s=r[r.length-1],l={id:s.flowId+"-"+o+"-"+a+"-"+i.flowId,source:s.flowId,target:i.flowId,animated:e,markerEnd:vg,style:xg};t.push(l)}r.push(i)})}),{nodes:r,edges:t}}(r.data,null!==(n=r.animated)&&void 0!==n&&n),t=function(n,e,t){var r=(new hg.graphlib.Graph).setDefaultEdgeLabel(function(){return{}});return r.setGraph({rankdir:t.direction,ranksep:100,nodesep:170}),e.forEach(function(n){return r.setEdge(n.source,n.target)}),n.forEach(function(n){var e,t,o,a;return r.setNode(n.id,Y(Y({},n),{},{width:null!==(e=null===(t=n.measured)||void 0===t?void 0:t.width)&&void 0!==e?e:0,height:null!==(o=null===(a=n.measured)||void 0===a?void 0:a.height)&&void 0!==o?o:0}))}),hg.layout(r),{nodes:n.map(function(n){var e,t,o,a,i=r.node(n.id),s=i.x-(null!==(e=null===(t=n.measured)||void 0===t?void 0:t.width)&&void 0!==e?e:0)/2,l=i.y-(null!==(o=null===(a=n.measured)||void 0===a?void 0:a.height)&&void 0!==o?o:0)/2;return Y(Y({},n),{},{position:{x:s,y:l}})}),edges:e}}(e.nodes,e.edges,{direction:r.orientation});l(X(t.nodes)),b(X(t.edges)),o()}},[r]),n.jsx(_b,{nodes:s,edges:u,onNodesChange:d,onEdgesChange:m,colorMode:"dark",fitView:!0,children:n.jsx(Lb,{})})};a('.file-browser {\n width: 100%;\n height: 100%;\n padding: 5px;\n color: white;\n}\n\n.file-node-row {\n width: 100%;\n min-width: 200px;\n display: flex;\n padding: 5px 0;\n font-size: 13px;\n font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;\n cursor: pointer;\n}\n\n.indent {\n height: 100%;\n}\n\n.center {\n display: flex;\n align-self: center;\n}\n\n.folder-icon {\n display: flex;\n margin-right: 5px;\n}\n\n.file-icon {\n margin-right: 5px;\n font-size: 16px;\n}\n\n.file-name {\n color: #CCC;\n}');var yg=function(n,e){e||(e=0);for(var t=[],r=0;r<n.length;r++){var o=n[r];o.level=e,t.push(o),null!=o&&o.children&&(t=t.concat(yg(o.children,e+1)))}return t};var kg=function(e){var t=e.node,r=e.onRowClick;return n.jsxs("div",{className:"file-node-row",style:function(){if(t.selected)return{backgroundColor:"#00426b"}}(),onClick:function(){return r(t)},children:[n.jsx("div",{className:"indent",style:{width:20*t.level+"px"}}),"folder"===t.type?n.jsx("span",{className:"center folder-icon",children:t.collapsed?n.jsx(ee,{}):n.jsx(Qn,{})}):n.jsx("span",{className:"center file-icon",children:function(){switch(t.name.split(".").pop()){case"js":return n.jsx(se,{color:"#f1e05a"});case"json":return n.jsx(Zn,{color:"#fffb00"});case"scss":return n.jsx(be,{color:"#f12727"});case"py":return n.jsx(ce,{color:"#686affbd"});default:return n.jsx(oe,{color:"#ffffff"})}}()}),n.jsx("span",{className:"center file-name",children:t.name})]})};a(".editorContainer {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.tabContainer {\n width: 100%;\n height: 40px;\n}\n\n.monacoContainer {\n flex-grow: 1;\n}");a("");var Eg=function(t){var r=t.editorContent,o=e.useRef(null),a=e.useRef();return e.useEffect(function(){a.current=r,null!=o&&o.current&&a.current&&o.current.setValue(a.current)},[r]),n.jsx(Gn,{defaultLanguage:"python",defaultValue:"",onMount:function(n,e){o.current=n,null!=a&&a.current&&o.current.setValue(a.current)},theme:"vs-dark",options:{scrollBeyondLastLine:!1,fontSize:"12px",minimap:{enabled:!1}}})};Eg.propTypes={editorContent:A.string};function _g(e){var r=e.id,o=e.label,a=e.onSelectTab,i=t.useDraggable({id:r}),s=i.attributes,l=i.listeners,d=i.setNodeRef;return i.transform,n.jsx("div",Y(Y(Y({ref:d,id:r,onClick:a,className:"tab"},l),s),{},{children:o}))}function Sg(e){var r=e.id,o=t.useDroppable({id:r}),a=o.setNodeRef,i=o.isOver;return n.jsx("div",{className:"gutter",ref:a,style:{background:i?"white":"#4da3ff33"}})}a(".tabs {\n display: flex;\n flex-direction: row;\n background-color: #1e1e1e;\n height: 100%;\n width: 100%;\n}\n\n.tab {\n padding: 0px 20px;\n background-color: #2d2d2d;\n color: #fff;\n cursor: pointer;\n height: 40px;\n display: flex;\n align-items: center;\n}\n\n.gutter {\n height: 40px;\n width: 1px;\n}");var Og=function(t){t.activeTab;var r=t.tabs,o=t.selectTab,a=G(e.useState(),2),i=a[0],s=a[1];return e.useEffect(function(){if(r){var e=[];r.forEach(function(t,r){e.push(n.jsxs(n.Fragment,{children:[n.jsx(Sg,{id:t.id}),n.jsx(_g,Y({onSelectTab:o},t),t.id)]}))}),s(e)}},[r]),n.jsx("div",{style:{display:"flex",background:"#222425"},children:i})};Og.propTypes={};var Cg=function(t){t.systemTree,t.onFileSelect;var r=G(e.useState("asdf"),2),o=r[0],a=r[1],i=G(e.useState(),2),s=i[0],l=i[1],d=G(e.useState([{id:"tab1",label:"Tab 1"},{id:"tab2",label:"Tab 2"},{id:"tab3",label:"Tab 3"}]),2),c=d[0];d[1],e.useEffect(function(){s&&a(c[s-1].label)},[s]),e.useEffect(function(){c&&(s&&s>c.length||null==s)&&l(c.length)},[c]);return n.jsxs("div",{className:"editorContainer",children:[n.jsx("div",{className:"tabContainer",children:n.jsx(Og,{activeTab:1,tabs:c,selectTab:function(n){var e=c.findIndex(function(e){return e.id===n.target.id});l(e+1)}})}),n.jsx("div",{className:"monacoContainer",children:n.jsx(Eg,{editorContent:o})})]})};Cg.propTypes={systemTree:A.object,onFileSelect:A.func},exports.Editor=Cg,exports.FileBrowser=function(t){var r=t.tree,o=t.onNodeSelect,a=G(e.useState([]),2),i=a[0],s=a[1],l=e.useRef(),d=function(n){var t=e.useRef(n);return e.useLayoutEffect(function(){t.current=n}),e.useCallback(function(){return t.current.apply(t,arguments)},[])}(function(n){!function(n,e){n.forEach(function(n){n.selected=!1}),e.selected=!0,e.collapsed=!e.collapsed}(l.current,n),c(),o&&o(n)});e.useEffect(function(){l.current=yg(r),function(n){n.forEach(function(n){n.collapsed=!1})}(l.current),c()},[]);var c=function(){var e=function(n){for(var e,t,r=[],o=0;o<n.length;o++){if(e){if(!(n[o].level<=t))continue;e=!1}n[o].collapsed&&(e=!0,t=n[o].level),r.push(n[o])}return r}(l.current),t=[];e.forEach(function(e){t.push(n.jsx(kg,{node:e,onRowClick:d},e.id))}),s(t)};return n.jsx("div",{className:"file-browser",children:i})},exports.FlowDiagram=function(t){var r=t.treeInfo,o=G(e.useState(),2),a=o[0],i=o[1];return e.useEffect(function(){i(r)},[r]),n.jsx(wb,{children:n.jsx(wg,{tree:a})})},exports.StackList=V,exports.Viewer=Co;
|
|
46
|
+
*/var Yc=(Hc||(Hc=1,"production"===process.env.NODE_ENV?Pc.exports=function(){if(Lc)return Rc;Lc=1;var n=e,t=Vc(),r="function"==typeof Object.is?Object.is:function(n,e){return n===e&&(0!==n||1/n==1/e)||n!=n&&e!=e},o=t.useSyncExternalStore,a=n.useRef,i=n.useEffect,s=n.useMemo,l=n.useDebugValue;return Rc.useSyncExternalStoreWithSelector=function(n,e,t,d,c){var p=a(null);if(null===p.current){var u={hasValue:!1,value:null};p.current=u}else u=p.current;p=s(function(){function n(n){if(!i){if(i=!0,o=n,n=d(n),void 0!==c&&u.hasValue){var e=u.value;if(c(e,n))return a=e}return a=n}if(e=a,r(o,n))return e;var t=d(n);return void 0!==c&&c(e,t)?(o=n,e):(o=n,a=t)}var o,a,i=!1,s=void 0===t?null:t;return[function(){return n(e())},null===s?void 0:function(){return n(s())}]},[e,t,d,c]);var b=o(n,p[0],p[1]);return i(function(){u.hasValue=!0,u.value=b},[b]),l(b),b},Rc}():Pc.exports=($c||($c=1,"production"!==process.env.NODE_ENV&&function(){"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var n=e,t=Vc(),r="function"==typeof Object.is?Object.is:function(n,e){return n===e&&(0!==n||1/n==1/e)||n!=n&&e!=e},o=t.useSyncExternalStore,a=n.useRef,i=n.useEffect,s=n.useMemo,l=n.useDebugValue;Fc.useSyncExternalStoreWithSelector=function(n,e,t,d,c){var p=a(null);if(null===p.current){var u={hasValue:!1,value:null};p.current=u}else u=p.current;p=s(function(){function n(n){if(!i){if(i=!0,o=n,n=d(n),void 0!==c&&u.hasValue){var e=u.value;if(c(e,n))return a=e}return a=n}if(e=a,r(o,n))return e;var t=d(n);return void 0!==c&&c(e,t)?(o=n,e):(o=n,a=t)}var o,a,i=!1,s=void 0===t?null:t;return[function(){return n(e())},null===s?void 0:function(){return n(s())}]},[e,t,d,c]);var b=o(n,p[0],p[1]);return i(function(){u.hasValue=!0,u.value=b},[b]),l(b),b},"undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())}()),Fc)),Pc.exports),Gc=i(Yc);const Xc=n=>{let e;const t=new Set,r=(n,r)=>{const o="function"==typeof n?n(e):n;if(!Object.is(o,e)){const n=e;e=(null!=r?r:"object"!=typeof o||null===o)?o:Object.assign({},e,o),t.forEach(t=>t(e,n))}},o=()=>e,a={setState:r,getState:o,getInitialState:()=>i,subscribe:n=>(t.add(n),()=>t.delete(n)),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."),t.clear()}},i=e=n(r,o,a);return a},{useDebugValue:qc}=e,{useSyncExternalStoreWithSelector:Wc}=Gc,Zc=n=>n;function Kc(n,e=Zc,t){const r=Wc(n.subscribe,n.getState,n.getServerState||n.getInitialState,e,t);return qc(r),r}const Uc=(n,e)=>{const t=(n=>n?Xc(n):Xc)(n),r=(n,r=e)=>Kc(t,n,r);return Object.assign(r,t),r};function Qc(n,e){if(Object.is(n,e))return!0;if("object"!=typeof n||null===n||"object"!=typeof e||null===e)return!1;if(n instanceof Map&&e instanceof Map){if(n.size!==e.size)return!1;for(const[t,r]of n)if(!Object.is(r,e.get(t)))return!1;return!0}if(n instanceof Set&&e instanceof Set){if(n.size!==e.size)return!1;for(const t of n)if(!e.has(t))return!1;return!0}const t=Object.keys(n);if(t.length!==Object.keys(e).length)return!1;for(const r of t)if(!Object.prototype.hasOwnProperty.call(e,r)||!Object.is(n[r],e[r]))return!1;return!0}const Jc=e.createContext(null),np=Jc.Provider,ep=vl();function tp(n,t){const r=e.useContext(Jc);if(null===r)throw new Error(ep);return Kc(r,n,t)}function rp(){const n=e.useContext(Jc);if(null===n)throw new Error(ep);return e.useMemo(()=>({getState:n.getState,setState:n.setState,subscribe:n.subscribe}),[n])}const op={display:"none"},ap={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},ip="react-flow__node-desc",sp="react-flow__edge-desc",lp=n=>n.ariaLiveMessage,dp=n=>n.ariaLabelConfig;function cp({rfId:e}){const t=tp(lp);return n.jsx("div",{id:`react-flow__aria-live-${e}`,"aria-live":"assertive","aria-atomic":"true",style:ap,children:t})}function pp({rfId:e,disableKeyboardA11y:t}){const r=tp(dp);return n.jsxs(n.Fragment,{children:[n.jsx("div",{id:`${ip}-${e}`,style:op,children:t?r["node.a11yDescription.default"]:r["node.a11yDescription.keyboardDisabled"]}),n.jsx("div",{id:`${sp}-${e}`,style:op,children:r["edge.a11yDescription.default"]}),!t&&n.jsx(cp,{rfId:e})]})}const up=e.forwardRef(({position:e="top-left",children:t,className:r,style:o,...a},i)=>{const s=`${e}`.split("-");return n.jsx("div",{className:No(["react-flow__panel",r,...s]),style:o,ref:i,...a,children:t})});function bp({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:n.jsx(up,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:n.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}up.displayName="Panel";const mp=n=>{const e=[],t=[];for(const[,t]of n.nodeLookup)t.selected&&e.push(t.internals.userNode);for(const[,e]of n.edgeLookup)e.selected&&t.push(e);return{selectedNodes:e,selectedEdges:t}},fp=n=>n.id;function gp(n,e){return Qc(n.selectedNodes.map(fp),e.selectedNodes.map(fp))&&Qc(n.selectedEdges.map(fp),e.selectedEdges.map(fp))}function hp({onSelectionChange:n}){const t=rp(),{selectedNodes:r,selectedEdges:o}=tp(mp,gp);return e.useEffect(()=>{const e={nodes:r,edges:o};n?.(e),t.getState().onSelectionChangeHandlers.forEach(n=>n(e))},[r,o,n]),null}const vp=n=>!!n.onSelectionChangeHandlers;function xp({onSelectionChange:e}){const t=tp(vp);return e||t?n.jsx(hp,{onSelectionChange:e}):null}const wp=[0,0],yp={x:0,y:0,zoom:1},kp=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","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","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","paneClickDistance","ariaLabelConfig","rfId"],Ep=n=>({setNodes:n.setNodes,setEdges:n.setEdges,setMinZoom:n.setMinZoom,setMaxZoom:n.setMaxZoom,setTranslateExtent:n.setTranslateExtent,setNodeExtent:n.setNodeExtent,reset:n.reset,setDefaultNodesAndEdges:n.setDefaultNodesAndEdges,setPaneClickDistance:n.setPaneClickDistance}),_p={translateExtent:Ml,nodeOrigin:wp,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1",paneClickDistance:0};function Sp(n){const{setNodes:t,setEdges:r,setMinZoom:o,setMaxZoom:a,setTranslateExtent:i,setNodeExtent:s,reset:l,setDefaultNodesAndEdges:d,setPaneClickDistance:c}=tp(Ep,Qc),p=rp();e.useEffect(()=>(d(n.defaultNodes,n.defaultEdges),()=>{u.current=_p,l()}),[]);const u=e.useRef(_p);return e.useEffect(()=>{for(const e of kp){const l=n[e];l!==u.current[e]&&(void 0!==n[e]&&("nodes"===e?t(l):"edges"===e?r(l):"minZoom"===e?o(l):"maxZoom"===e?a(l):"translateExtent"===e?i(l):"nodeExtent"===e?s(l):"paneClickDistance"===e?c(l):"ariaLabelConfig"===e?p.setState({ariaLabelConfig:Ed(l)}):"fitView"===e?p.setState({fitViewQueued:l}):"fitViewOptions"===e?p.setState({fitViewOptions:l}):p.setState({[e]:l})))}u.current=n},kp.map(e=>n[e])),null}function Op(){return"undefined"!=typeof window&&window.matchMedia?window.matchMedia("(prefers-color-scheme: dark)"):null}const Cp="undefined"!=typeof document?document:null;function Np(n=null,t={target:Cp,actInsideInputWithModifier:!0}){const[r,o]=e.useState(!1),a=e.useRef(!1),i=e.useRef(new Set([])),[s,l]=e.useMemo(()=>{if(null!==n){const e=(Array.isArray(n)?n:[n]).filter(n=>"string"==typeof n).map(n=>n.replace("+","\n").replace("\n\n","\n+").split("\n")),t=e.reduce((n,e)=>n.concat(...e),[]);return[e,t]}return[[],[]]},[n]);return e.useEffect(()=>{const e=t?.target??Cp,r=t?.actInsideInputWithModifier??!0;if(null!==n){const n=n=>{a.current=n.ctrlKey||n.metaKey||n.shiftKey||n.altKey;if((!a.current||a.current&&!r)&&Nd(n))return!1;const e=zp(n.code,l);if(i.current.add(n[e]),jp(s,i.current,!1)){const e=n.composedPath?.()?.[0]||n.target,r="BUTTON"===e?.nodeName||"A"===e?.nodeName;!1===t.preventDefault||!a.current&&r||n.preventDefault(),o(!0)}},d=n=>{const e=zp(n.code,l);jp(s,i.current,!0)?(o(!1),i.current.clear()):i.current.delete(n[e]),"Meta"===n.key&&i.current.clear(),a.current=!1},c=()=>{i.current.clear(),o(!1)};return e?.addEventListener("keydown",n),e?.addEventListener("keyup",d),window.addEventListener("blur",c),window.addEventListener("contextmenu",c),()=>{e?.removeEventListener("keydown",n),e?.removeEventListener("keyup",d),window.removeEventListener("blur",c),window.removeEventListener("contextmenu",c)}}},[n,o]),r}function jp(n,e,t){return n.filter(n=>t||n.length===e.size).some(n=>n.every(n=>e.has(n)))}function zp(n,e){return e.includes(n)?"code":"key"}function Mp(n,e){const t=[],r=new Map,o=[];for(const e of n)if("add"!==e.type)if("remove"===e.type||"replace"===e.type)r.set(e.id,[e]);else{const n=r.get(e.id);n?n.push(e):r.set(e.id,[e])}else o.push(e);for(const n of e){const e=r.get(n.id);if(!e){t.push(n);continue}if("remove"===e[0].type)continue;if("replace"===e[0].type){t.push({...e[0].item});continue}const o={...n};for(const n of e)Pp(n,o);t.push(o)}return o.length&&o.forEach(n=>{void 0!==n.index?t.splice(n.index,0,{...n.item}):t.push({...n.item})}),t}function Pp(n,e){switch(n.type){case"select":e.selected=n.selected;break;case"position":void 0!==n.position&&(e.position=n.position),void 0!==n.dragging&&(e.dragging=n.dragging);break;case"dimensions":void 0!==n.dimensions&&(e.measured??={},e.measured.width=n.dimensions.width,e.measured.height=n.dimensions.height,n.setAttributes&&(!0!==n.setAttributes&&"width"!==n.setAttributes||(e.width=n.dimensions.width),!0!==n.setAttributes&&"height"!==n.setAttributes||(e.height=n.dimensions.height))),"boolean"==typeof n.resizing&&(e.resizing=n.resizing)}}function Rp(n,e){return Mp(n,e)}function Ip(n,e){return Mp(n,e)}function Ap(n,e){return{id:n,type:"select",selected:e}}function Dp(n,e=new Set,t=!1){const r=[];for(const[o,a]of n){const n=e.has(o);void 0===a.selected&&!n||a.selected===n||(t&&(a.selected=n),r.push(Ap(a.id,n)))}return r}function Tp({items:n=[],lookup:e}){const t=[],r=new Map(n.map(n=>[n.id,n]));for(const[r,o]of n.entries()){const n=e.get(o.id),a=n?.internals?.userNode??n;void 0!==a&&a!==o&&t.push({id:o.id,item:o,type:"replace"}),void 0===a&&t.push({item:o,type:"add",index:r})}for(const[n]of e){void 0===r.get(n)&&t.push({id:n,type:"remove"})}return t}function Lp(n){return{id:n.id,type:"remove"}}const Bp=n=>(n=>"id"in n&&"position"in n&&!("source"in n)&&!("target"in n))(n);function Vp(n){return e.forwardRef(n)}const $p="undefined"!=typeof window?e.useLayoutEffect:e.useEffect;function Hp(n){const[t,r]=e.useState(BigInt(0)),[o]=e.useState(()=>function(n){let e=[];return{get:()=>e,reset:()=>{e=[]},push:t=>{e.push(t),n()}}}(()=>r(n=>n+BigInt(1))));return $p(()=>{const e=o.get();e.length&&(n(e),o.reset())},[t]),o}const Fp=e.createContext(null);function Yp({children:t}){const r=rp(),o=Hp(e.useCallback(n=>{const{nodes:e=[],setNodes:t,hasDefaultNodes:o,onNodesChange:a,nodeLookup:i,fitViewQueued:s}=r.getState();let l=e;for(const e of n)l="function"==typeof e?e(l):e;const d=Tp({items:l,lookup:i});o&&t(l),d.length>0?a?.(d):s&&window.requestAnimationFrame(()=>{const{fitViewQueued:n,nodes:e,setNodes:t}=r.getState();n&&t(e)})},[])),a=Hp(e.useCallback(n=>{const{edges:e=[],setEdges:t,hasDefaultEdges:o,onEdgesChange:a,edgeLookup:i}=r.getState();let s=e;for(const e of n)s="function"==typeof e?e(s):e;o?t(s):a&&a(Tp({items:s,lookup:i}))},[])),i=e.useMemo(()=>({nodeQueue:o,edgeQueue:a}),[]);return n.jsx(Fp.Provider,{value:i,children:t})}const Gp=n=>!!n.panZoom;function Xp(){const n=(()=>{const n=rp();return e.useMemo(()=>({zoomIn:e=>{const{panZoom:t}=n.getState();return t?t.scaleBy(1.2,{duration:e?.duration}):Promise.resolve(!1)},zoomOut:e=>{const{panZoom:t}=n.getState();return t?t.scaleBy(1/1.2,{duration:e?.duration}):Promise.resolve(!1)},zoomTo:(e,t)=>{const{panZoom:r}=n.getState();return r?r.scaleTo(e,{duration:t?.duration}):Promise.resolve(!1)},getZoom:()=>n.getState().transform[2],setViewport:async(e,t)=>{const{transform:[r,o,a],panZoom:i}=n.getState();return i?(await i.setViewport({x:e.x??r,y:e.y??o,zoom:e.zoom??a},t),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[e,t,r]=n.getState().transform;return{x:e,y:t,zoom:r}},setCenter:async(e,t,r)=>n.getState().setCenter(e,t,r),fitBounds:async(e,t)=>{const{width:r,height:o,minZoom:a,maxZoom:i,panZoom:s}=n.getState(),l=gd(e,r,o,a,i,t?.padding??.1);return s?(await s.setViewport(l,{duration:t?.duration,ease:t?.ease,interpolate:t?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(e,t={})=>{const{transform:r,snapGrid:o,snapToGrid:a,domNode:i}=n.getState();if(!i)return e;const{x:s,y:l}=i.getBoundingClientRect(),d={x:e.x-s,y:e.y-l},c=t.snapGrid??o,p=t.snapToGrid??a;return bd(d,r,p,c)},flowToScreenPosition:e=>{const{transform:t,domNode:r}=n.getState();if(!r)return e;const{x:o,y:a}=r.getBoundingClientRect(),i=md(e,t);return{x:i.x+o,y:i.y+a}}}),[])})(),t=rp(),r=function(){const n=e.useContext(Fp);if(!n)throw new Error("useBatchContext must be used within a BatchProvider");return n}(),o=tp(Gp),a=e.useMemo(()=>{const n=n=>t.getState().nodeLookup.get(n),e=n=>{r.nodeQueue.push(n)},o=n=>{r.edgeQueue.push(n)},a=n=>{const{nodeLookup:e,nodeOrigin:r}=t.getState(),o=Bp(n)?n:e.get(n.id),a=o.parentId?yd(o.position,o.measured,o.parentId,e,r):o.position,i={...o,position:a,width:o.measured?.width??o.width,height:o.measured?.height??o.height};return ad(i)},i=(n,t,r={replace:!1})=>{e(e=>e.map(e=>{if(e.id===n){const n="function"==typeof t?t(e):t;return r.replace&&Bp(n)?n:{...e,...n}}return e}))},s=(n,e,t={replace:!1})=>{o(r=>r.map(r=>{if(r.id===n){const n="function"==typeof e?e(r):e;return t.replace&&Fl(n)?n:{...r,...n}}return r}))};return{getNodes:()=>t.getState().nodes.map(n=>({...n})),getNode:e=>n(e)?.internals.userNode,getInternalNode:n,getEdges:()=>{const{edges:n=[]}=t.getState();return n.map(n=>({...n}))},getEdge:n=>t.getState().edgeLookup.get(n),setNodes:e,setEdges:o,addNodes:n=>{const e=Array.isArray(n)?n:[n];r.nodeQueue.push(n=>[...n,...e])},addEdges:n=>{const e=Array.isArray(n)?n:[n];r.edgeQueue.push(n=>[...n,...e])},toObject:()=>{const{nodes:n=[],edges:e=[],transform:r}=t.getState(),[o,a,i]=r;return{nodes:n.map(n=>({...n})),edges:e.map(n=>({...n})),viewport:{x:o,y:a,zoom:i}}},deleteElements:async({nodes:n=[],edges:e=[]})=>{const{nodes:r,edges:o,onNodesDelete:a,onEdgesDelete:i,triggerNodeChanges:s,triggerEdgeChanges:l,onDelete:d,onBeforeDelete:c}=t.getState(),{nodes:p,edges:u}=await Kl({nodesToRemove:n,edgesToRemove:e,nodes:r,edges:o,onBeforeDelete:c}),b=u.length>0,m=p.length>0;if(b){const n=u.map(Lp);i?.(u),l(n)}if(m){const n=p.map(Lp);a?.(p),s(n)}return(m||b)&&d?.({nodes:p,edges:u}),{deletedNodes:p,deletedEdges:u}},getIntersectingNodes:(n,e=!0,r)=>{const o=dd(n),i=o?n:a(n),s=void 0!==r;return i?(r||t.getState().nodes).filter(r=>{const a=t.getState().nodeLookup.get(r.id);if(a&&!o&&(r.id===n.id||!a.internals.positionAbsolute))return!1;const l=ad(s?r:a),d=ld(l,i);return e&&d>0||d>=l.width*l.height||d>=i.width*i.height}):[]},isNodeIntersecting:(n,e,t=!0)=>{const r=dd(n)?n:a(n);if(!r)return!1;const o=ld(r,e);return t&&o>0||o>=r.width*r.height},updateNode:i,updateNodeData:(n,e,t={replace:!1})=>{i(n,n=>{const r="function"==typeof e?e(n):e;return t.replace?{...n,data:r}:{...n,data:{...n.data,...r}}},t)},updateEdge:s,updateEdgeData:(n,e,t={replace:!1})=>{s(n,n=>{const r="function"==typeof e?e(n):e;return t.replace?{...n,data:r}:{...n,data:{...n.data,...r}}},t)},getNodesBounds:n=>{const{nodeLookup:e,nodeOrigin:r}=t.getState();return((n,e={nodeOrigin:[0,0]})=>{if("development"!==process.env.NODE_ENV||e.nodeLookup||console.warn("Please use `getNodesBounds` from `useReactFlow`/`useSvelteFlow` hook to ensure correct values for sub flows. If not possible, you have to provide a nodeLookup to support sub flows."),0===n.length)return{x:0,y:0,width:0,height:0};const t=n.reduce((n,t)=>{const r="string"==typeof t;let o=e.nodeLookup||r?void 0:t;e.nodeLookup&&(o=r?e.nodeLookup.get(t):Yl(t)?t:e.nodeLookup.get(t.id));const a=o?id(o,e.nodeOrigin):{x:0,y:0,x2:0,y2:0};return td(n,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return od(t)})(n,{nodeLookup:e,nodeOrigin:r})},getHandleConnections:({type:n,id:e,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}-${n}${e?`-${e}`:""}`)?.values()??[]),getNodeConnections:({type:n,handleId:e,nodeId:r})=>Array.from(t.getState().connectionLookup.get(`${r}${n?e?`-${n}-${e}`:`-${n}`:""}`)?.values()??[]),fitView:async n=>{const e=t.getState().fitViewResolver??function(){let n,e;return{promise:new Promise((t,r)=>{n=t,e=r}),resolve:n,reject:e}}();return t.setState({fitViewQueued:!0,fitViewOptions:n,fitViewResolver:e}),r.nodeQueue.push(n=>[...n]),e.promise}}},[]);return e.useMemo(()=>({...a,...n,viewportInitialized:o}),[o])}const qp=n=>n.selected,Wp="undefined"!=typeof window?window:void 0;const Zp={position:"absolute",width:"100%",height:"100%",top:0,left:0},Kp=n=>({userSelectionActive:n.userSelectionActive,lib:n.lib});function Up({onPaneContextMenu:t,zoomOnScroll:r=!0,zoomOnPinch:o=!0,panOnScroll:a=!1,panOnScrollSpeed:i=.5,panOnScrollMode:s=Al.Free,zoomOnDoubleClick:l=!0,panOnDrag:d=!0,defaultViewport:c,translateExtent:p,minZoom:u,maxZoom:b,zoomActivationKeyCode:m,preventScrolling:f=!0,children:g,noWheelClassName:h,noPanClassName:v,onViewportChange:x,isControlledViewport:w,paneClickDistance:y}){const k=rp(),E=e.useRef(null),{userSelectionActive:_,lib:S}=tp(Kp,Qc),O=Np(m),C=e.useRef();!function(n){const t=rp();e.useEffect(()=>{const e=()=>{if(!n.current)return!1;const e=Sd(n.current);0!==e.height&&0!==e.width||t.getState().onError?.("004",yl()),t.setState({width:e.width||500,height:e.height||500})};if(n.current){e(),window.addEventListener("resize",e);const t=new ResizeObserver(()=>e());return t.observe(n.current),()=>{window.removeEventListener("resize",e),t&&n.current&&t.unobserve(n.current)}}},[])}(E);const N=e.useCallback(n=>{x?.({x:n[0],y:n[1],zoom:n[2]}),w||k.setState({transform:n})},[x,w]);return e.useEffect(()=>{if(E.current){C.current=yc({domNode:E.current,minZoom:u,maxZoom:b,translateExtent:p,viewport:c,paneClickDistance:y,onDraggingChange:n=>k.setState({paneDragging:n}),onPanZoomStart:(n,e)=>{const{onViewportChangeStart:t,onMoveStart:r}=k.getState();r?.(n,e),t?.(e)},onPanZoom:(n,e)=>{const{onViewportChange:t,onMove:r}=k.getState();r?.(n,e),t?.(e)},onPanZoomEnd:(n,e)=>{const{onViewportChangeEnd:t,onMoveEnd:r}=k.getState();r?.(n,e),t?.(e)}});const{x:n,y:e,zoom:t}=C.current.getViewport();return k.setState({panZoom:C.current,transform:[n,e,t],domNode:E.current.closest(".react-flow")}),()=>{C.current?.destroy()}}},[]),e.useEffect(()=>{C.current?.update({onPaneContextMenu:t,zoomOnScroll:r,zoomOnPinch:o,panOnScroll:a,panOnScrollSpeed:i,panOnScrollMode:s,zoomOnDoubleClick:l,panOnDrag:d,zoomActivationKeyPressed:O,preventScrolling:f,noPanClassName:v,userSelectionActive:_,noWheelClassName:h,lib:S,onTransformChange:N})},[t,r,o,a,i,s,l,d,O,f,v,_,h,S,N]),n.jsx("div",{className:"react-flow__renderer",ref:E,style:Zp,children:g})}const Qp=n=>({userSelectionActive:n.userSelectionActive,userSelectionRect:n.userSelectionRect});function Jp(){const{userSelectionActive:e,userSelectionRect:t}=tp(Qp,Qc);return e&&t?n.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const nu=(n,e)=>t=>{t.target===e.current&&n?.(t)},eu=n=>({userSelectionActive:n.userSelectionActive,elementsSelectable:n.elementsSelectable,connectionInProgress:n.connection.inProgress,dragging:n.paneDragging});function tu({isSelecting:t,selectionKeyPressed:r,selectionMode:o=Dl.Full,panOnDrag:a,selectionOnDrag:i,onSelectionStart:s,onSelectionEnd:l,onPaneClick:d,onPaneContextMenu:c,onPaneScroll:p,onPaneMouseEnter:u,onPaneMouseMove:b,onPaneMouseLeave:m,children:f}){const g=rp(),{userSelectionActive:h,elementsSelectable:v,dragging:x,connectionInProgress:w}=tp(eu,Qc),y=v&&(t||h),k=e.useRef(null),E=e.useRef(),_=e.useRef(new Set),S=e.useRef(new Set),O=e.useRef(!1),C=e.useRef(!1),N=n=>{O.current||w?O.current=!1:(d?.(n),g.getState().resetSelectedElements(),g.setState({nodesSelectionActive:!1}))},j=p?n=>p(n):void 0,z=!0===a||Array.isArray(a)&&a.includes(0);return n.jsxs("div",{className:No(["react-flow__pane",{draggable:z,dragging:x,selection:t}]),onClick:y?void 0:nu(N,k),onContextMenu:nu(n=>{Array.isArray(a)&&a?.includes(2)?n.preventDefault():c?.(n)},k),onWheel:nu(j,k),onPointerEnter:y?void 0:u,onPointerDown:y?n=>{const{resetSelectedElements:e,domNode:r}=g.getState();if(E.current=r?.getBoundingClientRect(),!v||!t||0!==n.button||n.target!==k.current||!E.current)return;n.target?.setPointerCapture?.(n.pointerId),C.current=!0,O.current=!1;const{x:o,y:a}=zd(n.nativeEvent,E.current);e(),g.setState({userSelectionRect:{width:0,height:0,startX:o,startY:a,x:o,y:a}}),s?.(n)}:b,onPointerMove:y?n=>{const{userSelectionRect:e,transform:t,nodeLookup:r,edgeLookup:a,connectionLookup:i,triggerNodeChanges:s,triggerEdgeChanges:l,defaultEdgeOptions:d}=g.getState();if(!E.current||!e)return;O.current=!0;const{x:c,y:p}=zd(n.nativeEvent,E.current),{startX:u,startY:b}=e,m={startX:u,startY:b,x:c<u?c:u,y:p<b?p:b,width:Math.abs(c-u),height:Math.abs(p-b)},f=_.current,h=S.current;_.current=new Set(ql(r,m,t,o===Dl.Partial,!0).map(n=>n.id)),S.current=new Set;const v=d?.selectable??!0;for(const n of _.current){const e=i.get(n);if(e)for(const{edgeId:n}of e.values()){const e=a.get(n);e&&(e.selectable??v)&&S.current.add(n)}}if(!kd(f,_.current)){s(Dp(r,_.current,!0))}if(!kd(h,S.current)){l(Dp(a,S.current))}g.setState({userSelectionRect:m,userSelectionActive:!0,nodesSelectionActive:!1})}:b,onPointerUp:y?n=>{if(0!==n.button||!C.current)return;n.target?.releasePointerCapture?.(n.pointerId);const{userSelectionRect:e}=g.getState();!h&&e&&n.target===k.current&&N?.(n),g.setState({userSelectionActive:!1,userSelectionRect:null,nodesSelectionActive:_.current.size>0}),l?.(n),(r||i)&&(O.current=!1),C.current=!1}:void 0,onPointerLeave:m,ref:k,style:Zp,children:[f,n.jsx(Jp,{})]})}function ru({id:n,store:e,unselect:t=!1,nodeRef:r}){const{addSelectedNodes:o,unselectNodesAndEdges:a,multiSelectionActive:i,nodeLookup:s,onError:l}=e.getState(),d=s.get(n);d?(e.setState({nodesSelectionActive:!1}),d.selected?(t||d.selected&&i)&&(a({nodes:[d],edges:[]}),requestAnimationFrame(()=>r?.current?.blur())):o([n])):l?.("012",Nl(n))}function ou({nodeRef:n,disabled:t=!1,noDragClassName:r,handleSelector:o,nodeId:a,isSelectable:i,nodeClickDistance:s}){const l=rp(),[d,c]=e.useState(!1),p=e.useRef();return e.useEffect(()=>{p.current=sc({getStoreItems:()=>l.getState(),onNodeMouseDown:e=>{ru({id:e,store:l,nodeRef:n})},onDragStart:()=>{c(!0)},onDragStop:()=>{c(!1)}})},[]),e.useEffect(()=>{if(t)p.current?.destroy();else if(n.current)return p.current?.update({noDragClassName:r,handleSelector:o,domNode:n.current,isSelectable:i,nodeId:a,nodeClickDistance:s}),()=>{p.current?.destroy()}},[r,o,t,i,n,a]),d}function au(){const n=rp();return e.useCallback(e=>{const{nodeExtent:t,snapToGrid:r,snapGrid:o,nodesDraggable:a,onError:i,updateNodePositions:s,nodeLookup:l,nodeOrigin:d}=n.getState(),c=new Map,p=(n=>e=>e.selected&&(e.draggable||n&&void 0===e.draggable))(a),u=r?o[0]:5,b=r?o[1]:5,m=e.direction.x*u*e.factor,f=e.direction.y*b*e.factor;for(const[,n]of l){if(!p(n))continue;let e={x:n.internals.positionAbsolute.x+m,y:n.internals.positionAbsolute.y+f};r&&(e=ud(e,o));const{position:a,positionAbsolute:s}=Zl({nodeId:n.id,nextPosition:e,nodeLookup:l,nodeExtent:t,nodeOrigin:d,onError:i});n.position=a,n.internals.positionAbsolute=s,c.set(n.id,n)}s(c)},[])}const iu=e.createContext(null),su=iu.Provider;iu.Consumer;const lu=()=>e.useContext(iu),du=n=>({connectOnClick:n.connectOnClick,noPanClassName:n.noPanClassName,rfId:n.rfId});const cu=e.memo(Vp(function({type:e="source",position:t=Vl.Top,isValidConnection:r,isConnectable:o=!0,isConnectableStart:a=!0,isConnectableEnd:i=!0,id:s,onConnect:l,children:d,className:c,onMouseDown:p,onTouchStart:u,...b},m){const f=s||null,g="target"===e,h=rp(),v=lu(),{connectOnClick:x,noPanClassName:w,rfId:y}=tp(du,Qc),{connectingFrom:k,connectingTo:E,clickConnecting:_,isPossibleEndHandle:S,connectionInProcess:O,clickConnectionInProcess:C,valid:N}=tp(((n,e,t)=>r=>{const{connectionClickStartHandle:o,connectionMode:a,connection:i}=r,{fromHandle:s,toHandle:l,isValid:d}=i,c=l?.nodeId===n&&l?.id===e&&l?.type===t;return{connectingFrom:s?.nodeId===n&&s?.id===e&&s?.type===t,connectingTo:c,clickConnecting:o?.nodeId===n&&o?.id===e&&o?.type===t,isPossibleEndHandle:a===Il.Strict?s?.type!==t:n!==s?.nodeId||e!==s?.id,connectionInProcess:!!s,clickConnectionInProcess:!!o,valid:c&&d}})(v,f,e),Qc);v||h.getState().onError?.("010",Ol());const j=n=>{const{defaultEdgeOptions:e,onConnect:t,hasDefaultEdges:r}=h.getState(),o={...e,...n};if(r){const{edges:n,setEdges:e}=h.getState();e(((n,e)=>{if(!n.source||!n.target)return pd("006",El()),e;let t;return t=Fl(n)?{...n}:{...n,id:Ld(n)},((n,e)=>e.some(e=>!(e.source!==n.source||e.target!==n.target||e.sourceHandle!==n.sourceHandle&&(e.sourceHandle||n.sourceHandle)||e.targetHandle!==n.targetHandle&&(e.targetHandle||n.targetHandle))))(t,e)?e:(null===t.sourceHandle&&delete t.sourceHandle,null===t.targetHandle&&delete t.targetHandle,e.concat(t))})(o,n))}t?.(o),l?.(o)},z=n=>{if(!v)return;const e=jd(n.nativeEvent);if(a&&(e&&0===n.button||!e)){const e=h.getState();bc.onPointerDown(n.nativeEvent,{autoPanOnConnect:e.autoPanOnConnect,connectionMode:e.connectionMode,connectionRadius:e.connectionRadius,domNode:e.domNode,nodeLookup:e.nodeLookup,lib:e.lib,isTarget:g,handleId:f,nodeId:v,flowId:e.rfId,panBy:e.panBy,cancelConnection:e.cancelConnection,onConnectStart:e.onConnectStart,onConnectEnd:e.onConnectEnd,updateConnection:e.updateConnection,onConnect:j,isValidConnection:r||e.isValidConnection,getTransform:()=>h.getState().transform,getFromHandle:()=>h.getState().connection.fromHandle,autoPanSpeed:e.autoPanSpeed,dragThreshold:e.connectionDragThreshold})}e?p?.(n):u?.(n)};return n.jsx("div",{"data-handleid":f,"data-nodeid":v,"data-handlepos":t,"data-id":`${y}-${v}-${f}-${e}`,className:No(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",w,c,{source:!g,target:g,connectable:o,connectablestart:a,connectableend:i,clickconnecting:_,connectingfrom:k,connectingto:E,valid:N,connectionindicator:o&&(!O||S)&&(O||C?i:a)}]),onMouseDown:z,onTouchStart:z,onClick:x?n=>{const{onClickConnectStart:t,onClickConnectEnd:o,connectionClickStartHandle:i,connectionMode:s,isValidConnection:l,lib:d,rfId:c,nodeLookup:p,connection:u}=h.getState();if(!v||!i&&!a)return;if(!i)return t?.(n.nativeEvent,{nodeId:v,handleId:f,handleType:e}),void h.setState({connectionClickStartHandle:{nodeId:v,type:e,id:f}});const b=Od(n.target),m=r||l,{connection:g,isValid:x}=bc.isValid(n.nativeEvent,{handle:{nodeId:v,id:f,type:e},connectionMode:s,fromNodeId:i.nodeId,fromHandleId:i.id||null,fromType:i.type,isValidConnection:m,flowId:c,doc:b,lib:d,nodeLookup:p});x&&g&&j(g);const w=structuredClone(u);delete w.inProgress,w.toPosition=w.toHandle?w.toHandle.position:null,o?.(n,w),h.setState({connectionClickStartHandle:null})}:void 0,ref:m,...b,children:d})}));const pu={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},uu={input:function({data:e,isConnectable:t,sourcePosition:r=Vl.Bottom}){return n.jsxs(n.Fragment,{children:[e?.label,n.jsx(cu,{type:"source",position:r,isConnectable:t})]})},default:function({data:e,isConnectable:t,targetPosition:r=Vl.Top,sourcePosition:o=Vl.Bottom}){return n.jsxs(n.Fragment,{children:[n.jsx(cu,{type:"target",position:r,isConnectable:t}),e?.label,n.jsx(cu,{type:"source",position:o,isConnectable:t})]})},output:function({data:e,isConnectable:t,targetPosition:r=Vl.Top}){return n.jsxs(n.Fragment,{children:[n.jsx(cu,{type:"target",position:r,isConnectable:t}),e?.label]})},group:function(){return null}};const bu=n=>{const{width:e,height:t,x:r,y:o}=Xl(n.nodeLookup,{filter:n=>!!n.selected});return{width:cd(e)?e:null,height:cd(t)?t:null,userSelectionActive:n.userSelectionActive,transformString:`translate(${n.transform[0]}px,${n.transform[1]}px) scale(${n.transform[2]}) translate(${r}px,${o}px)`}};function mu({onSelectionContextMenu:t,noPanClassName:r,disableKeyboardA11y:o}){const a=rp(),{width:i,height:s,transformString:l,userSelectionActive:d}=tp(bu,Qc),c=au(),p=e.useRef(null);if(e.useEffect(()=>{o||p.current?.focus({preventScroll:!0})},[o]),ou({nodeRef:p}),d||!i||!s)return null;const u=t?n=>{const e=a.getState().nodes.filter(n=>n.selected);t(n,e)}:void 0;return n.jsx("div",{className:No(["react-flow__nodesselection","react-flow__container",r]),style:{transform:l},children:n.jsx("div",{ref:p,className:"react-flow__nodesselection-rect",onContextMenu:u,tabIndex:o?void 0:-1,onKeyDown:o?void 0:n=>{Object.prototype.hasOwnProperty.call(pu,n.key)&&(n.preventDefault(),c({direction:pu[n.key],factor:n.shiftKey?4:1}))},style:{width:i,height:s}})})}const fu="undefined"!=typeof window?window:void 0,gu=n=>({nodesSelectionActive:n.nodesSelectionActive,userSelectionActive:n.userSelectionActive});function hu({children:t,onPaneClick:r,onPaneMouseEnter:o,onPaneMouseMove:a,onPaneMouseLeave:i,onPaneContextMenu:s,onPaneScroll:l,paneClickDistance:d,deleteKeyCode:c,selectionKeyCode:p,selectionOnDrag:u,selectionMode:b,onSelectionStart:m,onSelectionEnd:f,multiSelectionKeyCode:g,panActivationKeyCode:h,zoomActivationKeyCode:v,elementsSelectable:x,zoomOnScroll:w,zoomOnPinch:y,panOnScroll:k,panOnScrollSpeed:E,panOnScrollMode:_,zoomOnDoubleClick:S,panOnDrag:O,defaultViewport:C,translateExtent:N,minZoom:j,maxZoom:z,preventScrolling:M,onSelectionContextMenu:P,noWheelClassName:R,noPanClassName:I,disableKeyboardA11y:A,onViewportChange:D,isControlledViewport:T}){const{nodesSelectionActive:L,userSelectionActive:B}=tp(gu),V=Np(p,{target:fu}),$=Np(h,{target:fu}),H=$||O,F=$||k,Y=u&&!0!==H,G=V||B||Y;return function({deleteKeyCode:n,multiSelectionKeyCode:t}){const r=rp(),{deleteElements:o}=Xp(),a=Np(n,{actInsideInputWithModifier:!1}),i=Np(t,{target:Wp});e.useEffect(()=>{if(a){const{edges:n,nodes:e}=r.getState();o({nodes:e.filter(qp),edges:n.filter(qp)}),r.setState({nodesSelectionActive:!1})}},[a]),e.useEffect(()=>{r.setState({multiSelectionActive:i})},[i])}({deleteKeyCode:c,multiSelectionKeyCode:g}),n.jsx(Up,{onPaneContextMenu:s,elementsSelectable:x,zoomOnScroll:w,zoomOnPinch:y,panOnScroll:F,panOnScrollSpeed:E,panOnScrollMode:_,zoomOnDoubleClick:S,panOnDrag:!V&&H,defaultViewport:C,translateExtent:N,minZoom:j,maxZoom:z,zoomActivationKeyCode:v,preventScrolling:M,noWheelClassName:R,noPanClassName:I,onViewportChange:D,isControlledViewport:T,paneClickDistance:d,children:n.jsxs(tu,{onSelectionStart:m,onSelectionEnd:f,onPaneClick:r,onPaneMouseEnter:o,onPaneMouseMove:a,onPaneMouseLeave:i,onPaneContextMenu:s,onPaneScroll:l,panOnDrag:H,isSelecting:!!G,selectionMode:b,selectionKeyPressed:V,selectionOnDrag:Y,children:[t,L&&n.jsx(mu,{onSelectionContextMenu:P,noPanClassName:I,disableKeyboardA11y:A})]})})}hu.displayName="FlowRenderer";const vu=e.memo(hu);function xu(n){return tp(e.useCallback((n=>e=>n?ql(e.nodeLookup,{x:0,y:0,width:e.width,height:e.height},e.transform,!0).map(n=>n.id):Array.from(e.nodeLookup.keys()))(n),[n]),Qc)}const wu=n=>n.updateNodeInternals;function yu({id:t,onClick:r,onMouseEnter:o,onMouseMove:a,onMouseLeave:i,onContextMenu:s,onDoubleClick:l,nodesDraggable:d,elementsSelectable:c,nodesConnectable:p,nodesFocusable:u,resizeObserver:b,noDragClassName:m,noPanClassName:f,disableKeyboardA11y:g,rfId:h,nodeTypes:v,nodeClickDistance:x,onError:w}){const{node:y,internals:k,isParent:E}=tp(n=>{const e=n.nodeLookup.get(t),r=n.parentLookup.has(t);return{node:e,internals:e.internals,isParent:r}},Qc);let _=y.type||"default",S=v?.[_]||uu[_];void 0===S&&(w?.("003",wl(_)),_="default",S=v?.default||uu.default);const O=!!(y.draggable||d&&void 0===y.draggable),C=!!(y.selectable||c&&void 0===y.selectable),N=!!(y.connectable||p&&void 0===y.connectable),j=!!(y.focusable||u&&void 0===y.focusable),z=rp(),M=wd(y),P=function({node:n,nodeType:t,hasDimensions:r,resizeObserver:o}){const a=rp(),i=e.useRef(null),s=e.useRef(null),l=e.useRef(n.sourcePosition),d=e.useRef(n.targetPosition),c=e.useRef(t),p=r&&!!n.internals.handleBounds;return e.useEffect(()=>{!i.current||n.hidden||p&&s.current===i.current||(s.current&&o?.unobserve(s.current),o?.observe(i.current),s.current=i.current)},[p,n.hidden]),e.useEffect(()=>()=>{s.current&&(o?.unobserve(s.current),s.current=null)},[]),e.useEffect(()=>{if(i.current){const e=c.current!==t,r=l.current!==n.sourcePosition,o=d.current!==n.targetPosition;(e||r||o)&&(c.current=t,l.current=n.sourcePosition,d.current=n.targetPosition,a.getState().updateNodeInternals(new Map([[n.id,{id:n.id,nodeElement:i.current,force:!0}]])))}},[n.id,t,n.sourcePosition,n.targetPosition]),i}({node:y,nodeType:_,hasDimensions:M,resizeObserver:b}),R=ou({nodeRef:P,disabled:y.hidden||!O,noDragClassName:m,handleSelector:y.dragHandle,nodeId:t,isSelectable:C,nodeClickDistance:x}),I=au();if(y.hidden)return null;const A=xd(y),D=function(n){return void 0===n.internals.handleBounds?{width:n.width??n.initialWidth??n.style?.width,height:n.height??n.initialHeight??n.style?.height}:{width:n.width??n.style?.width,height:n.height??n.style?.height}}(y),T=C||O||r||o||a||i,L=o?n=>o(n,{...k.userNode}):void 0,B=a?n=>a(n,{...k.userNode}):void 0,V=i?n=>i(n,{...k.userNode}):void 0,$=s?n=>s(n,{...k.userNode}):void 0,H=l?n=>l(n,{...k.userNode}):void 0;return n.jsx("div",{className:No(["react-flow__node",`react-flow__node-${_}`,{[f]:O},y.className,{selected:y.selected,selectable:C,parent:E,draggable:O,dragging:R}]),ref:P,style:{zIndex:k.z,transform:`translate(${k.positionAbsolute.x}px,${k.positionAbsolute.y}px)`,pointerEvents:T?"all":"none",visibility:M?"visible":"hidden",...y.style,...D},"data-id":t,"data-testid":`rf__node-${t}`,onMouseEnter:L,onMouseMove:B,onMouseLeave:V,onContextMenu:$,onClick:n=>{const{selectNodesOnDrag:e,nodeDragThreshold:o}=z.getState();C&&(!e||!O||o>0)&&ru({id:t,store:z,nodeRef:P}),r&&r(n,{...k.userNode})},onDoubleClick:H,onKeyDown:j?n=>{if(!Nd(n.nativeEvent)&&!g)if(Pl.includes(n.key)&&C){const e="Escape"===n.key;ru({id:t,store:z,unselect:e,nodeRef:P})}else if(O&&y.selected&&Object.prototype.hasOwnProperty.call(pu,n.key)){n.preventDefault();const{ariaLabelConfig:e}=z.getState();z.setState({ariaLiveMessage:e["node.a11yDescription.ariaLiveMessage"]({direction:n.key.replace("Arrow","").toLowerCase(),x:~~k.positionAbsolute.x,y:~~k.positionAbsolute.y})}),I({direction:pu[n.key],factor:n.shiftKey?4:1})}}:void 0,tabIndex:j?0:void 0,onFocus:j?()=>{if(g||!P.current?.matches(":focus-visible"))return;const{transform:n,width:e,height:r,autoPanOnNodeFocus:o,setCenter:a}=z.getState();if(!o)return;ql(new Map([[t,y]]),{x:0,y:0,width:e,height:r},n,!0).length>0||a(y.position.x+A.width/2,y.position.y+A.height/2,{zoom:n[2]})}:void 0,role:y.ariaRole??(j?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${ip}-${h}`,"aria-label":y.ariaLabel,...y.domAttributes,children:n.jsx(su,{value:t,children:n.jsx(S,{id:t,data:y.data,type:_,positionAbsoluteX:k.positionAbsolute.x,positionAbsoluteY:k.positionAbsolute.y,selected:y.selected??!1,selectable:C,draggable:O,deletable:y.deletable??!0,isConnectable:N,sourcePosition:y.sourcePosition,targetPosition:y.targetPosition,dragging:R,dragHandle:y.dragHandle,zIndex:k.z,parentId:y.parentId,...A})})})}const ku=n=>({nodesDraggable:n.nodesDraggable,nodesConnectable:n.nodesConnectable,nodesFocusable:n.nodesFocusable,elementsSelectable:n.elementsSelectable,onError:n.onError});function Eu(t){const{nodesDraggable:r,nodesConnectable:o,nodesFocusable:a,elementsSelectable:i,onError:s}=tp(ku,Qc),l=xu(t.onlyRenderVisibleElements),d=function(){const n=tp(wu),[t]=e.useState(()=>"undefined"==typeof ResizeObserver?null:new ResizeObserver(e=>{const t=new Map;e.forEach(n=>{const e=n.target.getAttribute("data-id");t.set(e,{id:e,nodeElement:n.target,force:!0})}),n(t)}));return e.useEffect(()=>()=>{t?.disconnect()},[t]),t}();return n.jsx("div",{className:"react-flow__nodes",style:Zp,children:l.map(e=>n.jsx(yu,{id:e,nodeTypes:t.nodeTypes,nodeExtent:t.nodeExtent,onClick:t.onNodeClick,onMouseEnter:t.onNodeMouseEnter,onMouseMove:t.onNodeMouseMove,onMouseLeave:t.onNodeMouseLeave,onContextMenu:t.onNodeContextMenu,onDoubleClick:t.onNodeDoubleClick,noDragClassName:t.noDragClassName,noPanClassName:t.noPanClassName,rfId:t.rfId,disableKeyboardA11y:t.disableKeyboardA11y,resizeObserver:d,nodesDraggable:r,nodesConnectable:o,nodesFocusable:a,elementsSelectable:i,nodeClickDistance:t.nodeClickDistance,onError:s},e))})}Eu.displayName="NodeRenderer";const _u=e.memo(Eu);const Su={[Bl.Arrow]:({color:e="none",strokeWidth:t=1})=>n.jsx("polyline",{style:{stroke:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),[Bl.ArrowClosed]:({color:e="none",strokeWidth:t=1})=>n.jsx("polyline",{style:{stroke:e,fill:e,strokeWidth:t},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})};const Ou=({id:t,type:r,color:o,width:a=12.5,height:i=12.5,markerUnits:s="strokeWidth",strokeWidth:l,orient:d="auto-start-reverse"})=>{const c=function(n){const t=rp();return e.useMemo(()=>Object.prototype.hasOwnProperty.call(Su,n)?Su[n]:(t.getState().onError?.("009",_l(n)),null),[n])}(r);return c?n.jsx("marker",{className:"react-flow__arrowhead",id:t,markerWidth:`${a}`,markerHeight:`${i}`,viewBox:"-10 -10 20 20",markerUnits:s,orient:d,refX:"0",refY:"0",children:n.jsx(c,{color:o,strokeWidth:l})}):null},Cu=({defaultColor:t,rfId:r})=>{const o=tp(n=>n.edges),a=tp(n=>n.defaultEdgeOptions),i=e.useMemo(()=>{const n=function(n,{id:e,defaultColor:t,defaultMarkerStart:r,defaultMarkerEnd:o}){const a=new Set;return n.reduce((n,i)=>([i.markerStart||r,i.markerEnd||o].forEach(r=>{if(r&&"object"==typeof r){const o=Wd(r,e);a.has(o)||(n.push({id:o,color:r.color||t,...r}),a.add(o))}}),n),[]).sort((n,e)=>n.id.localeCompare(e.id))}(o,{id:r,defaultColor:t,defaultMarkerStart:a?.markerStart,defaultMarkerEnd:a?.markerEnd});return n},[o,a,r,t]);return i.length?n.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:n.jsx("defs",{children:i.map(e=>n.jsx(Ou,{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};Cu.displayName="MarkerDefinitions";var Nu=e.memo(Cu);function ju({x:t,y:r,label:o,labelStyle:a,labelShowBg:i=!0,labelBgStyle:s,labelBgPadding:l=[2,4],labelBgBorderRadius:d=2,children:c,className:p,...u}){const[b,m]=e.useState({x:1,y:0,width:0,height:0}),f=No(["react-flow__edge-textwrapper",p]),g=e.useRef(null);return e.useEffect(()=>{if(g.current){const n=g.current.getBBox();m({x:n.x,y:n.y,width:n.width,height:n.height})}},[o]),o?n.jsxs("g",{transform:`translate(${t-b.width/2} ${r-b.height/2})`,className:f,visibility:b.width?"visible":"hidden",...u,children:[i&&n.jsx("rect",{width:b.width+2*l[0],x:-l[0],y:-l[1],height:b.height+2*l[1],className:"react-flow__edge-textbg",style:s,rx:d,ry:d}),n.jsx("text",{className:"react-flow__edge-text",y:b.height/2,dy:"0.3em",ref:g,style:a,children:o}),c]}):null}ju.displayName="EdgeText";const zu=e.memo(ju);function Mu({path:e,labelX:t,labelY:r,label:o,labelStyle:a,labelShowBg:i,labelBgStyle:s,labelBgPadding:l,labelBgBorderRadius:d,interactionWidth:c=20,...p}){return n.jsxs(n.Fragment,{children:[n.jsx("path",{...p,d:e,fill:"none",className:No(["react-flow__edge-path",p.className])}),c&&n.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:c,className:"react-flow__edge-interaction"}),o&&cd(t)&&cd(r)?n.jsx(zu,{x:t,y:r,label:o,labelStyle:a,labelShowBg:i,labelBgStyle:s,labelBgPadding:l,labelBgBorderRadius:d}):null]})}function Pu({pos:n,x1:e,y1:t,x2:r,y2:o}){return n===Vl.Left||n===Vl.Right?[.5*(e+r),t]:[e,.5*(t+o)]}function Ru({sourceX:n,sourceY:e,sourcePosition:t=Vl.Bottom,targetX:r,targetY:o,targetPosition:a=Vl.Top}){const[i,s]=Pu({pos:t,x1:n,y1:e,x2:r,y2:o}),[l,d]=Pu({pos:a,x1:r,y1:o,x2:n,y2:e}),[c,p,u,b]=Pd({sourceX:n,sourceY:e,targetX:r,targetY:o,sourceControlX:i,sourceControlY:s,targetControlX:l,targetControlY:d});return[`M${n},${e} C${i},${s} ${l},${d} ${r},${o}`,c,p,u,b]}function Iu(t){return e.memo(({id:e,sourceX:r,sourceY:o,targetX:a,targetY:i,sourcePosition:s,targetPosition:l,label:d,labelStyle:c,labelShowBg:p,labelBgStyle:u,labelBgPadding:b,labelBgBorderRadius:m,style:f,markerEnd:g,markerStart:h,interactionWidth:v})=>{const[x,w,y]=Ru({sourceX:r,sourceY:o,sourcePosition:s,targetX:a,targetY:i,targetPosition:l}),k=t.isInternal?void 0:e;return n.jsx(Mu,{id:k,path:x,labelX:w,labelY:y,label:d,labelStyle:c,labelShowBg:p,labelBgStyle:u,labelBgPadding:b,labelBgBorderRadius:m,style:f,markerEnd:g,markerStart:h,interactionWidth:v})})}const Au=Iu({isInternal:!1}),Du=Iu({isInternal:!0});function Tu(t){return e.memo(({id:e,sourceX:r,sourceY:o,targetX:a,targetY:i,label:s,labelStyle:l,labelShowBg:d,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:u,style:b,sourcePosition:m=Vl.Bottom,targetPosition:f=Vl.Top,markerEnd:g,markerStart:h,pathOptions:v,interactionWidth:x})=>{const[w,y,k]=Fd({sourceX:r,sourceY:o,sourcePosition:m,targetX:a,targetY:i,targetPosition:f,borderRadius:v?.borderRadius,offset:v?.offset,stepPosition:v?.stepPosition}),E=t.isInternal?void 0:e;return n.jsx(Mu,{id:E,path:w,labelX:y,labelY:k,label:s,labelStyle:l,labelShowBg:d,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:u,style:b,markerEnd:g,markerStart:h,interactionWidth:x})})}Au.displayName="SimpleBezierEdge",Du.displayName="SimpleBezierEdgeInternal";const Lu=Tu({isInternal:!1}),Bu=Tu({isInternal:!0});function Vu(t){return e.memo(({id:r,...o})=>{const a=t.isInternal?void 0:r;return n.jsx(Lu,{...o,id:a,pathOptions:e.useMemo(()=>({borderRadius:0,offset:o.pathOptions?.offset}),[o.pathOptions?.offset])})})}Lu.displayName="SmoothStepEdge",Bu.displayName="SmoothStepEdgeInternal";const $u=Vu({isInternal:!1}),Hu=Vu({isInternal:!0});function Fu(t){return e.memo(({id:e,sourceX:r,sourceY:o,targetX:a,targetY:i,label:s,labelStyle:l,labelShowBg:d,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:u,style:b,markerEnd:m,markerStart:f,interactionWidth:g})=>{const[h,v,x]=Bd({sourceX:r,sourceY:o,targetX:a,targetY:i}),w=t.isInternal?void 0:e;return n.jsx(Mu,{id:w,path:h,labelX:v,labelY:x,label:s,labelStyle:l,labelShowBg:d,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:u,style:b,markerEnd:m,markerStart:f,interactionWidth:g})})}$u.displayName="StepEdge",Hu.displayName="StepEdgeInternal";const Yu=Fu({isInternal:!1}),Gu=Fu({isInternal:!0});function Xu(t){return e.memo(({id:e,sourceX:r,sourceY:o,targetX:a,targetY:i,sourcePosition:s=Vl.Bottom,targetPosition:l=Vl.Top,label:d,labelStyle:c,labelShowBg:p,labelBgStyle:u,labelBgPadding:b,labelBgBorderRadius:m,style:f,markerEnd:g,markerStart:h,pathOptions:v,interactionWidth:x})=>{const[w,y,k]=Ad({sourceX:r,sourceY:o,sourcePosition:s,targetX:a,targetY:i,targetPosition:l,curvature:v?.curvature}),E=t.isInternal?void 0:e;return n.jsx(Mu,{id:E,path:w,labelX:y,labelY:k,label:d,labelStyle:c,labelShowBg:p,labelBgStyle:u,labelBgPadding:b,labelBgBorderRadius:m,style:f,markerEnd:g,markerStart:h,interactionWidth:x})})}Yu.displayName="StraightEdge",Gu.displayName="StraightEdgeInternal";const qu=Xu({isInternal:!1}),Wu=Xu({isInternal:!0});qu.displayName="BezierEdge",Wu.displayName="BezierEdgeInternal";const Zu={default:Wu,straight:Gu,step:Hu,smoothstep:Bu,simplebezier:Du},Ku={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},Uu=(n,e,t)=>t===Vl.Left?n-e:t===Vl.Right?n+e:n,Qu=(n,e,t)=>t===Vl.Top?n-e:t===Vl.Bottom?n+e:n,Ju="react-flow__edgeupdater";function nb({position:e,centerX:t,centerY:r,radius:o=10,onMouseDown:a,onMouseEnter:i,onMouseOut:s,type:l}){return n.jsx("circle",{onMouseDown:a,onMouseEnter:i,onMouseOut:s,className:No([Ju,`${Ju}-${l}`]),cx:Uu(t,o,e),cy:Qu(r,o,e),r:o,stroke:"transparent",fill:"transparent"})}function eb({isReconnectable:e,reconnectRadius:t,edge:r,sourceX:o,sourceY:a,targetX:i,targetY:s,sourcePosition:l,targetPosition:d,onReconnect:c,onReconnectStart:p,onReconnectEnd:u,setReconnecting:b,setUpdateHover:m}){const f=rp(),g=(n,e)=>{if(0!==n.button)return;const{autoPanOnConnect:t,domNode:o,isValidConnection:a,connectionMode:i,connectionRadius:s,lib:l,onConnectStart:d,onConnectEnd:m,cancelConnection:g,nodeLookup:h,rfId:v,panBy:x,updateConnection:w}=f.getState(),y="target"===e.type;bc.onPointerDown(n.nativeEvent,{autoPanOnConnect:t,connectionMode:i,connectionRadius:s,domNode:o,handleId:e.id,nodeId:e.nodeId,nodeLookup:h,isTarget:y,edgeUpdaterType:e.type,lib:l,flowId:v,cancelConnection:g,panBy:x,isValidConnection:a,onConnect:n=>c?.(r,n),onConnectStart:(t,o)=>{b(!0),p?.(n,r,e.type),d?.(t,o)},onConnectEnd:m,onReconnectEnd:(n,t)=>{b(!1),u?.(n,r,e.type,t)},updateConnection:w,getTransform:()=>f.getState().transform,getFromHandle:()=>f.getState().connection.fromHandle,dragThreshold:f.getState().connectionDragThreshold})},h=()=>m(!0),v=()=>m(!1);return n.jsxs(n.Fragment,{children:[(!0===e||"source"===e)&&n.jsx(nb,{position:l,centerX:o,centerY:a,radius:t,onMouseDown:n=>g(n,{nodeId:r.target,id:r.targetHandle??null,type:"target"}),onMouseEnter:h,onMouseOut:v,type:"source"}),(!0===e||"target"===e)&&n.jsx(nb,{position:d,centerX:i,centerY:s,radius:t,onMouseDown:n=>g(n,{nodeId:r.source,id:r.sourceHandle??null,type:"source"}),onMouseEnter:h,onMouseOut:v,type:"target"})]})}function tb({id:t,edgesFocusable:r,edgesReconnectable:o,elementsSelectable:a,onClick:i,onDoubleClick:s,onContextMenu:l,onMouseEnter:d,onMouseMove:c,onMouseLeave:p,reconnectRadius:u,onReconnect:b,onReconnectStart:m,onReconnectEnd:f,rfId:g,edgeTypes:h,noPanClassName:v,onError:x,disableKeyboardA11y:w}){let y=tp(n=>n.edgeLookup.get(t));const k=tp(n=>n.defaultEdgeOptions);y=k?{...k,...y}:y;let E=y.type||"default",_=h?.[E]||Zu[E];void 0===_&&(x?.("011",Cl(E)),E="default",_=h?.default||Zu.default);const S=!!(y.focusable||r&&void 0===y.focusable),O=void 0!==b&&(y.reconnectable||o&&void 0===y.reconnectable),C=!!(y.selectable||a&&void 0===y.selectable),N=e.useRef(null),[j,z]=e.useState(!1),[M,P]=e.useState(!1),R=rp(),{zIndex:I,sourceX:A,sourceY:D,targetX:T,targetY:L,sourcePosition:B,targetPosition:V}=tp(e.useCallback(n=>{const e=n.nodeLookup.get(y.source),r=n.nodeLookup.get(y.target);if(!e||!r)return{zIndex:y.zIndex,...Ku};const o=function(n){const{sourceNode:e,targetNode:t}=n;if(!Yd(e)||!Yd(t))return null;const r=e.internals.handleBounds||Gd(e.handles),o=t.internals.handleBounds||Gd(t.handles),a=qd(r?.source??[],n.sourceHandle),i=qd(n.connectionMode===Il.Strict?o?.target??[]:(o?.target??[]).concat(o?.source??[]),n.targetHandle);if(!a||!i)return n.onError?.("008",Sl(a?"target":"source",{id:n.id,sourceHandle:n.sourceHandle,targetHandle:n.targetHandle})),null;const s=a?.position||Vl.Bottom,l=i?.position||Vl.Top,d=Xd(e,a,s),c=Xd(t,i,l);return{sourceX:d.x,sourceY:d.y,targetX:c.x,targetY:c.y,sourcePosition:s,targetPosition:l}}({id:t,sourceNode:e,targetNode:r,sourceHandle:y.sourceHandle||null,targetHandle:y.targetHandle||null,connectionMode:n.connectionMode,onError:x}),a=function({sourceNode:n,targetNode:e,selected:t=!1,zIndex:r,elevateOnSelect:o=!1}){return void 0!==r?r:(o&&t?1e3:0)+Math.max(n.parentId?n.internals.z:0,e.parentId?e.internals.z:0)}({selected:y.selected,zIndex:y.zIndex,sourceNode:e,targetNode:r,elevateOnSelect:n.elevateEdgesOnSelect});return{zIndex:a,...o||Ku}},[y.source,y.target,y.sourceHandle,y.targetHandle,y.selected,y.zIndex]),Qc),$=e.useMemo(()=>y.markerStart?`url('#${Wd(y.markerStart,g)}')`:void 0,[y.markerStart,g]),H=e.useMemo(()=>y.markerEnd?`url('#${Wd(y.markerEnd,g)}')`:void 0,[y.markerEnd,g]);if(y.hidden||null===A||null===D||null===T||null===L)return null;const F=s?n=>{s(n,{...y})}:void 0,Y=l?n=>{l(n,{...y})}:void 0,G=d?n=>{d(n,{...y})}:void 0,X=c?n=>{c(n,{...y})}:void 0,q=p?n=>{p(n,{...y})}:void 0;return n.jsx("svg",{style:{zIndex:I},children:n.jsxs("g",{className:No(["react-flow__edge",`react-flow__edge-${E}`,y.className,v,{selected:y.selected,animated:y.animated,inactive:!C&&!i,updating:j,selectable:C}]),onClick:n=>{const{addSelectedEdges:e,unselectNodesAndEdges:r,multiSelectionActive:o}=R.getState();C&&(R.setState({nodesSelectionActive:!1}),y.selected&&o?(r({nodes:[],edges:[y]}),N.current?.blur()):e([t])),i&&i(n,y)},onDoubleClick:F,onContextMenu:Y,onMouseEnter:G,onMouseMove:X,onMouseLeave:q,onKeyDown:S?n=>{if(!w&&Pl.includes(n.key)&&C){const{unselectNodesAndEdges:e,addSelectedEdges:r}=R.getState();"Escape"===n.key?(N.current?.blur(),e({edges:[y]})):r([t])}}:void 0,tabIndex:S?0:void 0,role:y.ariaRole??(S?"group":"img"),"aria-roledescription":"edge","data-id":t,"data-testid":`rf__edge-${t}`,"aria-label":null===y.ariaLabel?void 0:y.ariaLabel||`Edge from ${y.source} to ${y.target}`,"aria-describedby":S?`${sp}-${g}`:void 0,ref:N,...y.domAttributes,children:[!M&&n.jsx(_,{id:t,source:y.source,target:y.target,type:y.type,selected:y.selected,animated:y.animated,selectable:C,deletable:y.deletable??!0,label:y.label,labelStyle:y.labelStyle,labelShowBg:y.labelShowBg,labelBgStyle:y.labelBgStyle,labelBgPadding:y.labelBgPadding,labelBgBorderRadius:y.labelBgBorderRadius,sourceX:A,sourceY:D,targetX:T,targetY:L,sourcePosition:B,targetPosition:V,data:y.data,style:y.style,sourceHandleId:y.sourceHandle,targetHandleId:y.targetHandle,markerStart:$,markerEnd:H,pathOptions:"pathOptions"in y?y.pathOptions:void 0,interactionWidth:y.interactionWidth}),O&&n.jsx(eb,{edge:y,isReconnectable:O,reconnectRadius:u,onReconnect:b,onReconnectStart:m,onReconnectEnd:f,sourceX:A,sourceY:D,targetX:T,targetY:L,sourcePosition:B,targetPosition:V,setUpdateHover:z,setReconnecting:P})]})})}const rb=n=>({edgesFocusable:n.edgesFocusable,edgesReconnectable:n.edgesReconnectable,elementsSelectable:n.elementsSelectable,connectionMode:n.connectionMode,onError:n.onError});function ob({defaultMarkerColor:t,onlyRenderVisibleElements:r,rfId:o,edgeTypes:a,noPanClassName:i,onReconnect:s,onEdgeContextMenu:l,onEdgeMouseEnter:d,onEdgeMouseMove:c,onEdgeMouseLeave:p,onEdgeClick:u,reconnectRadius:b,onEdgeDoubleClick:m,onReconnectStart:f,onReconnectEnd:g,disableKeyboardA11y:h}){const{edgesFocusable:v,edgesReconnectable:x,elementsSelectable:w,onError:y}=tp(rb,Qc),k=(E=r,tp(e.useCallback(n=>{if(!E)return n.edges.map(n=>n.id);const e=[];if(n.width&&n.height)for(const t of n.edges){const r=n.nodeLookup.get(t.source),o=n.nodeLookup.get(t.target);r&&o&&Td({sourceNode:r,targetNode:o,width:n.width,height:n.height,transform:n.transform})&&e.push(t.id)}return e},[E]),Qc));var E;return n.jsxs("div",{className:"react-flow__edges",children:[n.jsx(Nu,{defaultColor:t,rfId:o}),k.map(e=>n.jsx(tb,{id:e,edgesFocusable:v,edgesReconnectable:x,elementsSelectable:w,noPanClassName:i,onReconnect:s,onContextMenu:l,onMouseEnter:d,onMouseMove:c,onMouseLeave:p,onClick:u,reconnectRadius:b,onDoubleClick:m,onReconnectStart:f,onReconnectEnd:g,rfId:o,onError:y,edgeTypes:a,disableKeyboardA11y:h},e))]})}ob.displayName="EdgeRenderer";const ab=e.memo(ob),ib=n=>`translate(${n.transform[0]}px,${n.transform[1]}px) scale(${n.transform[2]})`;function sb({children:e}){const t=tp(ib);return n.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}const lb=n=>n.panZoom?.syncViewport;function db(n){return n.connection.inProgress?{...n.connection,to:bd(n.connection.to,n.transform)}:{...n.connection}}function cb(n){return tp(db,Qc)}const pb=n=>({nodesConnectable:n.nodesConnectable,isValid:n.connection.isValid,inProgress:n.connection.inProgress,width:n.width,height:n.height});function ub({containerStyle:e,style:t,type:r,component:o}){const{nodesConnectable:a,width:i,height:s,isValid:l,inProgress:d}=tp(pb,Qc);return!!(i&&a&&d)?n.jsx("svg",{style:e,width:i,height:s,className:"react-flow__connectionline react-flow__container",children:n.jsx("g",{className:No(["react-flow__connection",Hl(l)]),children:n.jsx(bb,{style:t,type:r,CustomComponent:o,isValid:l})})}):null}const bb=({style:e,type:t=Ll.Bezier,CustomComponent:r,isValid:o})=>{const{inProgress:a,from:i,fromNode:s,fromHandle:l,fromPosition:d,to:c,toNode:p,toHandle:u,toPosition:b}=cb();if(!a)return;if(r)return n.jsx(r,{connectionLineType:t,connectionLineStyle:e,fromNode:s,fromHandle:l,fromX:i.x,fromY:i.y,toX:c.x,toY:c.y,fromPosition:d,toPosition:b,connectionStatus:Hl(o),toNode:p,toHandle:u});let m="";const f={sourceX:i.x,sourceY:i.y,sourcePosition:d,targetX:c.x,targetY:c.y,targetPosition:b};switch(t){case Ll.Bezier:[m]=Ad(f);break;case Ll.SimpleBezier:[m]=Ru(f);break;case Ll.Step:[m]=Fd({...f,borderRadius:0});break;case Ll.SmoothStep:[m]=Fd(f);break;default:[m]=Bd(f)}return n.jsx("path",{d:m,fill:"none",className:"react-flow__connection-path",style:e})};bb.displayName="ConnectionLine";const mb={};function fb(n=mb){const t=e.useRef(n),r=rp();e.useEffect(()=>{if("development"===process.env.NODE_ENV){const e=new Set([...Object.keys(t.current),...Object.keys(n)]);for(const o of e)if(t.current[o]!==n[o]){r.getState().onError?.("002",xl());break}t.current=n}},[n])}function gb({nodeTypes:t,edgeTypes:r,onInit:o,onNodeClick:a,onEdgeClick:i,onNodeDoubleClick:s,onEdgeDoubleClick:l,onNodeMouseEnter:d,onNodeMouseMove:c,onNodeMouseLeave:p,onNodeContextMenu:u,onSelectionContextMenu:b,onSelectionStart:m,onSelectionEnd:f,connectionLineType:g,connectionLineStyle:h,connectionLineComponent:v,connectionLineContainerStyle:x,selectionKeyCode:w,selectionOnDrag:y,selectionMode:k,multiSelectionKeyCode:E,panActivationKeyCode:_,zoomActivationKeyCode:S,deleteKeyCode:O,onlyRenderVisibleElements:C,elementsSelectable:N,defaultViewport:j,translateExtent:z,minZoom:M,maxZoom:P,preventScrolling:R,defaultMarkerColor:I,zoomOnScroll:A,zoomOnPinch:D,panOnScroll:T,panOnScrollSpeed:L,panOnScrollMode:B,zoomOnDoubleClick:V,panOnDrag:$,onPaneClick:H,onPaneMouseEnter:F,onPaneMouseMove:Y,onPaneMouseLeave:G,onPaneScroll:X,onPaneContextMenu:q,paneClickDistance:W,nodeClickDistance:Z,onEdgeContextMenu:K,onEdgeMouseEnter:U,onEdgeMouseMove:Q,onEdgeMouseLeave:J,reconnectRadius:nn,onReconnect:en,onReconnectStart:tn,onReconnectEnd:rn,noDragClassName:on,noWheelClassName:an,noPanClassName:sn,disableKeyboardA11y:ln,nodeExtent:dn,rfId:cn,viewport:pn,onViewportChange:un}){return fb(t),fb(r),function(){const n=rp(),t=e.useRef(!1);e.useEffect(()=>{if("development"===process.env.NODE_ENV&&!t.current){const e=document.querySelector(".react-flow__pane");e&&"1"!==window.getComputedStyle(e).zIndex&&n.getState().onError?.("013",jl("react")),t.current=!0}},[])}(),function(n){const t=Xp(),r=e.useRef(!1);e.useEffect(()=>{!r.current&&t.viewportInitialized&&n&&(setTimeout(()=>n(t),1),r.current=!0)},[n,t.viewportInitialized])}(o),function(n){const t=tp(lb),r=rp();e.useEffect(()=>{n&&(t?.(n),r.setState({transform:[n.x,n.y,n.zoom]}))},[n,t])}(pn),n.jsx(vu,{onPaneClick:H,onPaneMouseEnter:F,onPaneMouseMove:Y,onPaneMouseLeave:G,onPaneContextMenu:q,onPaneScroll:X,paneClickDistance:W,deleteKeyCode:O,selectionKeyCode:w,selectionOnDrag:y,selectionMode:k,onSelectionStart:m,onSelectionEnd:f,multiSelectionKeyCode:E,panActivationKeyCode:_,zoomActivationKeyCode:S,elementsSelectable:N,zoomOnScroll:A,zoomOnPinch:D,zoomOnDoubleClick:V,panOnScroll:T,panOnScrollSpeed:L,panOnScrollMode:B,panOnDrag:$,defaultViewport:j,translateExtent:z,minZoom:M,maxZoom:P,onSelectionContextMenu:b,preventScrolling:R,noDragClassName:on,noWheelClassName:an,noPanClassName:sn,disableKeyboardA11y:ln,onViewportChange:un,isControlledViewport:!!pn,children:n.jsxs(sb,{children:[n.jsx(ab,{edgeTypes:r,onEdgeClick:i,onEdgeDoubleClick:l,onReconnect:en,onReconnectStart:tn,onReconnectEnd:rn,onlyRenderVisibleElements:C,onEdgeContextMenu:K,onEdgeMouseEnter:U,onEdgeMouseMove:Q,onEdgeMouseLeave:J,reconnectRadius:nn,defaultMarkerColor:I,noPanClassName:sn,disableKeyboardA11y:ln,rfId:cn}),n.jsx(ub,{style:h,type:g,component:v,containerStyle:x}),n.jsx("div",{className:"react-flow__edgelabel-renderer"}),n.jsx(_u,{nodeTypes:t,onNodeClick:a,onNodeDoubleClick:s,onNodeMouseEnter:d,onNodeMouseMove:c,onNodeMouseLeave:p,onNodeContextMenu:u,nodeClickDistance:Z,onlyRenderVisibleElements:C,noPanClassName:sn,noDragClassName:on,disableKeyboardA11y:ln,nodeExtent:dn,rfId:cn}),n.jsx("div",{className:"react-flow__viewport-portal"})]})})}gb.displayName="GraphView";const hb=e.memo(gb),vb=({nodes:n,edges:e,defaultNodes:t,defaultEdges:r,width:o,height:a,fitView:i,fitViewOptions:s,minZoom:l=.5,maxZoom:d=2,nodeOrigin:c,nodeExtent:p}={})=>{const u=new Map,b=new Map,m=new Map,f=new Map,g=r??e??[],h=t??n??[],v=c??[0,0],x=p??Ml;rc(m,f,g);const w=Qd(h,u,b,{nodeOrigin:v,nodeExtent:x,elevateNodesOnSelect:!1});let y=[0,0,1];if(i&&o&&a){const n=Xl(u,{filter:n=>!(!n.width&&!n.initialWidth||!n.height&&!n.initialHeight)}),{x:e,y:t,zoom:r}=gd(n,o,a,l,d,s?.padding??.1);y=[e,t,r]}return{rfId:"1",width:0,height:0,transform:y,nodes:h,nodesInitialized:w,nodeLookup:u,parentLookup:b,edges:g,edgeLookup:f,connectionLookup:m,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:void 0!==t,hasDefaultEdges:void 0!==r,panZoom:null,minZoom:l,maxZoom:d,translateExtent:Ml,nodeExtent:x,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Il.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:v,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!1,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:i??!1,fitViewOptions:s,fitViewResolver:null,connection:{...Tl},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:pd,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Rl}},xb=({nodes:n,edges:e,defaultNodes:t,defaultEdges:r,width:o,height:a,fitView:i,fitViewOptions:s,minZoom:l,maxZoom:d,nodeOrigin:c,nodeExtent:p})=>{return u=(u,b)=>{async function m(){const{nodeLookup:n,panZoom:e,fitViewOptions:t,fitViewResolver:r,width:o,height:a,minZoom:i,maxZoom:s}=b();e&&(await Wl({nodes:n,width:o,height:a,panZoom:e,minZoom:i,maxZoom:s},t),r?.resolve(!0),u({fitViewResolver:null}))}return{...vb({nodes:n,edges:e,width:o,height:a,fitView:i,fitViewOptions:s,minZoom:l,maxZoom:d,nodeOrigin:c,nodeExtent:p,defaultNodes:t,defaultEdges:r}),setNodes:n=>{const{nodeLookup:e,parentLookup:t,nodeOrigin:r,elevateNodesOnSelect:o,fitViewQueued:a}=b(),i=Qd(n,e,t,{nodeOrigin:r,nodeExtent:p,elevateNodesOnSelect:o,checkEquality:!0});a&&i?(m(),u({nodes:n,nodesInitialized:i,fitViewQueued:!1,fitViewOptions:void 0})):u({nodes:n,nodesInitialized:i})},setEdges:n=>{const{connectionLookup:e,edgeLookup:t}=b();rc(e,t,n),u({edges:n})},setDefaultNodesAndEdges:(n,e)=>{if(n){const{setNodes:e}=b();e(n),u({hasDefaultNodes:!0})}if(e){const{setEdges:n}=b();n(e),u({hasDefaultEdges:!0})}},updateNodeInternals:n=>{const{triggerNodeChanges:e,nodeLookup:t,parentLookup:r,domNode:o,nodeOrigin:a,nodeExtent:i,debug:s,fitViewQueued:l}=b(),{changes:d,updatedInternals:c}=function(n,e,t,r,o,a){const i=r?.querySelector(".xyflow__viewport");let s=!1;if(!i)return{changes:[],updatedInternals:s};const l=[],d=window.getComputedStyle(i),{m22:c}=new window.DOMMatrixReadOnly(d.transform),p=[];for(const r of n.values()){const n=e.get(r.id);if(!n)continue;if(n.hidden){e.set(n.id,{...n,internals:{...n.internals,handleBounds:void 0}}),s=!0;continue}const i=Sd(r.nodeElement),d=n.measured.width!==i.width||n.measured.height!==i.height;if(i.width&&i.height&&(d||!n.internals.handleBounds||r.force)){const u=r.nodeElement.getBoundingClientRect(),b=vd(n.extent)?n.extent:a;let{positionAbsolute:m}=n.internals;n.parentId&&"parent"===n.extent?m=Jl(m,i,e.get(n.parentId)):b&&(m=Ql(m,b,i));const f={...n,measured:i,internals:{...n.internals,positionAbsolute:m,handleBounds:{source:Md("source",r.nodeElement,u,c,n.id),target:Md("target",r.nodeElement,u,c,n.id)}}};e.set(n.id,f),n.parentId&&Jd(f,e,t,{nodeOrigin:o}),s=!0,d&&(l.push({id:n.id,type:"dimensions",dimensions:i}),n.expandParent&&n.parentId&&p.push({id:n.id,parentId:n.parentId,rect:ad(f,o)}))}}if(p.length>0){const n=ec(p,e,t,o);l.push(...n)}return{changes:l,updatedInternals:s}}(n,t,r,o,a,i);c&&(function(n,e,t){const r=Ud(Zd,t);for(const t of n.values())if(t.parentId)Jd(t,n,e,r);else{const n=Gl(t,r.nodeOrigin),e=vd(t.extent)?t.extent:r.nodeExtent,o=Ql(n,e,xd(t));t.internals.positionAbsolute=o}}(t,r,{nodeOrigin:a,nodeExtent:i}),l?(m(),u({fitViewQueued:!1,fitViewOptions:void 0})):u({}),d?.length>0&&(s&&console.log("React Flow: trigger node changes",d),e?.(d)))},updateNodePositions:(n,e=!1)=>{const t=[],r=[],{nodeLookup:o,triggerNodeChanges:a}=b();for(const[a,i]of n){const n=o.get(a),s=!!(n?.expandParent&&n?.parentId&&i?.position),l={id:a,type:"position",position:s?{x:Math.max(0,i.position.x),y:Math.max(0,i.position.y)}:i.position,dragging:e};s&&n.parentId&&t.push({id:a,parentId:n.parentId,rect:{...i.internals.positionAbsolute,width:i.measured.width??0,height:i.measured.height??0}}),r.push(l)}if(t.length>0){const{parentLookup:n,nodeOrigin:e}=b(),a=ec(t,o,n,e);r.push(...a)}a(r)},triggerNodeChanges:n=>{const{onNodesChange:e,setNodes:t,nodes:r,hasDefaultNodes:o,debug:a}=b();n?.length&&(o&&t(Rp(n,r)),a&&console.log("React Flow: trigger node changes",n),e?.(n))},triggerEdgeChanges:n=>{const{onEdgesChange:e,setEdges:t,edges:r,hasDefaultEdges:o,debug:a}=b();n?.length&&(o&&t(Ip(n,r)),a&&console.log("React Flow: trigger edge changes",n),e?.(n))},addSelectedNodes:n=>{const{multiSelectionActive:e,edgeLookup:t,nodeLookup:r,triggerNodeChanges:o,triggerEdgeChanges:a}=b();e?o(n.map(n=>Ap(n,!0))):(o(Dp(r,new Set([...n]),!0)),a(Dp(t)))},addSelectedEdges:n=>{const{multiSelectionActive:e,edgeLookup:t,nodeLookup:r,triggerNodeChanges:o,triggerEdgeChanges:a}=b();e?a(n.map(n=>Ap(n,!0))):(a(Dp(t,new Set([...n]))),o(Dp(r,new Set,!0)))},unselectNodesAndEdges:({nodes:n,edges:e}={})=>{const{edges:t,nodes:r,nodeLookup:o,triggerNodeChanges:a,triggerEdgeChanges:i}=b(),s=e||t,l=(n||r).map(n=>{const e=o.get(n.id);return e&&(e.selected=!1),Ap(n.id,!1)}),d=s.map(n=>Ap(n.id,!1));a(l),i(d)},setMinZoom:n=>{const{panZoom:e,maxZoom:t}=b();e?.setScaleExtent([n,t]),u({minZoom:n})},setMaxZoom:n=>{const{panZoom:e,minZoom:t}=b();e?.setScaleExtent([t,n]),u({maxZoom:n})},setTranslateExtent:n=>{b().panZoom?.setTranslateExtent(n),u({translateExtent:n})},setPaneClickDistance:n=>{b().panZoom?.setClickDistance(n)},resetSelectedElements:()=>{const{edges:n,nodes:e,triggerNodeChanges:t,triggerEdgeChanges:r,elementsSelectable:o}=b();if(!o)return;const a=e.reduce((n,e)=>e.selected?[...n,Ap(e.id,!1)]:n,[]),i=n.reduce((n,e)=>e.selected?[...n,Ap(e.id,!1)]:n,[]);t(a),r(i)},setNodeExtent:n=>{const{nodes:e,nodeLookup:t,parentLookup:r,nodeOrigin:o,elevateNodesOnSelect:a,nodeExtent:i}=b();n[0][0]===i[0][0]&&n[0][1]===i[0][1]&&n[1][0]===i[1][0]&&n[1][1]===i[1][1]||(Qd(e,t,r,{nodeOrigin:o,nodeExtent:n,elevateNodesOnSelect:a,checkEquality:!1}),u({nodeExtent:n}))},panBy:n=>{const{transform:e,width:t,height:r,panZoom:o,translateExtent:a}=b();return async function({delta:n,panZoom:e,transform:t,translateExtent:r,width:o,height:a}){if(!e||!n.x&&!n.y)return Promise.resolve(!1);const i=await e.setViewportConstrained({x:t[0]+n.x,y:t[1]+n.y,zoom:t[2]},[[0,0],[o,a]],r),s=!!i&&(i.x!==t[0]||i.y!==t[1]||i.k!==t[2]);return Promise.resolve(s)}({delta:n,panZoom:o,transform:e,translateExtent:a,width:t,height:r})},setCenter:async(n,e,t)=>{const{width:r,height:o,maxZoom:a,panZoom:i}=b();if(!i)return Promise.resolve(!1);const s=void 0!==t?.zoom?t.zoom:a;return await i.setViewport({x:r/2-n*s,y:o/2-e*s,zoom:s},{duration:t?.duration,ease:t?.ease,interpolate:t?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{u({connection:{...Tl}})},updateConnection:n=>{u({connection:n})},reset:()=>u({...vb()})}},b=Object.is,u?Uc(u,b):Uc;var u,b};function wb({initialNodes:t,initialEdges:r,defaultNodes:o,defaultEdges:a,initialWidth:i,initialHeight:s,initialMinZoom:l,initialMaxZoom:d,initialFitViewOptions:c,fitView:p,nodeOrigin:u,nodeExtent:b,children:m}){const[f]=e.useState(()=>xb({nodes:t,edges:r,defaultNodes:o,defaultEdges:a,width:i,height:s,fitView:p,minZoom:l,maxZoom:d,fitViewOptions:c,nodeOrigin:u,nodeExtent:b}));return n.jsx(np,{value:f,children:n.jsx(Yp,{children:m})})}function yb({children:t,nodes:r,edges:o,defaultNodes:a,defaultEdges:i,width:s,height:l,fitView:d,fitViewOptions:c,minZoom:p,maxZoom:u,nodeOrigin:b,nodeExtent:m}){return e.useContext(Jc)?n.jsx(n.Fragment,{children:t}):n.jsx(wb,{initialNodes:r,initialEdges:o,defaultNodes:a,defaultEdges:i,initialWidth:s,initialHeight:l,fitView:d,initialFitViewOptions:c,initialMinZoom:p,initialMaxZoom:u,nodeOrigin:b,nodeExtent:m,children:t})}const kb={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};var Eb,_b=Vp(function({nodes:t,edges:r,defaultNodes:o,defaultEdges:a,className:i,nodeTypes:s,edgeTypes:l,onNodeClick:d,onEdgeClick:c,onInit:p,onMove:u,onMoveStart:b,onMoveEnd:m,onConnect:f,onConnectStart:g,onConnectEnd:h,onClickConnectStart:v,onClickConnectEnd:x,onNodeMouseEnter:w,onNodeMouseMove:y,onNodeMouseLeave:k,onNodeContextMenu:E,onNodeDoubleClick:_,onNodeDragStart:S,onNodeDrag:O,onNodeDragStop:C,onNodesDelete:N,onEdgesDelete:j,onDelete:z,onSelectionChange:M,onSelectionDragStart:P,onSelectionDrag:R,onSelectionDragStop:I,onSelectionContextMenu:A,onSelectionStart:D,onSelectionEnd:T,onBeforeDelete:L,connectionMode:B,connectionLineType:V=Ll.Bezier,connectionLineStyle:$,connectionLineComponent:H,connectionLineContainerStyle:F,deleteKeyCode:Y="Backspace",selectionKeyCode:G="Shift",selectionOnDrag:X=!1,selectionMode:q=Dl.Full,panActivationKeyCode:W="Space",multiSelectionKeyCode:Z=(hd()?"Meta":"Control"),zoomActivationKeyCode:K=(hd()?"Meta":"Control"),snapToGrid:U,snapGrid:Q,onlyRenderVisibleElements:J=!1,selectNodesOnDrag:nn,nodesDraggable:en,autoPanOnNodeFocus:tn,nodesConnectable:rn,nodesFocusable:on,nodeOrigin:an=wp,edgesFocusable:sn,edgesReconnectable:ln,elementsSelectable:dn=!0,defaultViewport:cn=yp,minZoom:pn=.5,maxZoom:un=2,translateExtent:bn=Ml,preventScrolling:mn=!0,nodeExtent:fn,defaultMarkerColor:gn="#b1b1b7",zoomOnScroll:hn=!0,zoomOnPinch:vn=!0,panOnScroll:xn=!1,panOnScrollSpeed:wn=.5,panOnScrollMode:yn=Al.Free,zoomOnDoubleClick:kn=!0,panOnDrag:En=!0,onPaneClick:_n,onPaneMouseEnter:Sn,onPaneMouseMove:On,onPaneMouseLeave:Cn,onPaneScroll:Nn,onPaneContextMenu:jn,paneClickDistance:zn=0,nodeClickDistance:Mn=0,children:Pn,onReconnect:Rn,onReconnectStart:In,onReconnectEnd:An,onEdgeContextMenu:Dn,onEdgeDoubleClick:Tn,onEdgeMouseEnter:Ln,onEdgeMouseMove:Bn,onEdgeMouseLeave:Vn,reconnectRadius:$n=10,onNodesChange:Hn,onEdgesChange:Fn,noDragClassName:Yn="nodrag",noWheelClassName:Gn="nowheel",noPanClassName:Xn="nopan",fitView:qn,fitViewOptions:Wn,connectOnClick:Zn,attributionPosition:Kn,proOptions:Un,defaultEdgeOptions:Qn,elevateNodesOnSelect:Jn,elevateEdgesOnSelect:ne,disableKeyboardA11y:ee=!1,autoPanOnConnect:te,autoPanOnNodeDrag:re,autoPanSpeed:oe,connectionRadius:ae,isValidConnection:ie,onError:se,style:le,id:de,nodeDragThreshold:ce,connectionDragThreshold:pe,viewport:ue,onViewportChange:be,width:me,height:fe,colorMode:ge="light",debug:he,onScroll:ve,ariaLabelConfig:xe,...we},ye){const ke=de||"1",Ee=function(n){const[t,r]=e.useState("system"===n?null:n);return e.useEffect(()=>{if("system"!==n)return void r(n);const e=Op(),t=()=>r(e?.matches?"dark":"light");return t(),e?.addEventListener("change",t),()=>{e?.removeEventListener("change",t)}},[n]),null!==t?t:Op()?.matches?"dark":"light"}(ge),_e=e.useCallback(n=>{n.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),ve?.(n)},[ve]);return n.jsx("div",{"data-testid":"rf__wrapper",...we,onScroll:_e,style:{...le,...kb},ref:ye,className:No(["react-flow",i,Ee]),id:de,role:"application",children:n.jsxs(yb,{nodes:t,edges:r,width:me,height:fe,fitView:qn,fitViewOptions:Wn,minZoom:pn,maxZoom:un,nodeOrigin:an,nodeExtent:fn,children:[n.jsx(hb,{onInit:p,onNodeClick:d,onEdgeClick:c,onNodeMouseEnter:w,onNodeMouseMove:y,onNodeMouseLeave:k,onNodeContextMenu:E,onNodeDoubleClick:_,nodeTypes:s,edgeTypes:l,connectionLineType:V,connectionLineStyle:$,connectionLineComponent:H,connectionLineContainerStyle:F,selectionKeyCode:G,selectionOnDrag:X,selectionMode:q,deleteKeyCode:Y,multiSelectionKeyCode:Z,panActivationKeyCode:W,zoomActivationKeyCode:K,onlyRenderVisibleElements:J,defaultViewport:cn,translateExtent:bn,minZoom:pn,maxZoom:un,preventScrolling:mn,zoomOnScroll:hn,zoomOnPinch:vn,zoomOnDoubleClick:kn,panOnScroll:xn,panOnScrollSpeed:wn,panOnScrollMode:yn,panOnDrag:En,onPaneClick:_n,onPaneMouseEnter:Sn,onPaneMouseMove:On,onPaneMouseLeave:Cn,onPaneScroll:Nn,onPaneContextMenu:jn,paneClickDistance:zn,nodeClickDistance:Mn,onSelectionContextMenu:A,onSelectionStart:D,onSelectionEnd:T,onReconnect:Rn,onReconnectStart:In,onReconnectEnd:An,onEdgeContextMenu:Dn,onEdgeDoubleClick:Tn,onEdgeMouseEnter:Ln,onEdgeMouseMove:Bn,onEdgeMouseLeave:Vn,reconnectRadius:$n,defaultMarkerColor:gn,noDragClassName:Yn,noWheelClassName:Gn,noPanClassName:Xn,rfId:ke,disableKeyboardA11y:ee,nodeExtent:fn,viewport:ue,onViewportChange:be}),n.jsx(Sp,{nodes:t,edges:r,defaultNodes:o,defaultEdges:a,onConnect:f,onConnectStart:g,onConnectEnd:h,onClickConnectStart:v,onClickConnectEnd:x,nodesDraggable:en,autoPanOnNodeFocus:tn,nodesConnectable:rn,nodesFocusable:on,edgesFocusable:sn,edgesReconnectable:ln,elementsSelectable:dn,elevateNodesOnSelect:Jn,elevateEdgesOnSelect:ne,minZoom:pn,maxZoom:un,nodeExtent:fn,onNodesChange:Hn,onEdgesChange:Fn,snapToGrid:U,snapGrid:Q,connectionMode:B,translateExtent:bn,connectOnClick:Zn,defaultEdgeOptions:Qn,fitView:qn,fitViewOptions:Wn,onNodesDelete:N,onEdgesDelete:j,onDelete:z,onNodeDragStart:S,onNodeDrag:O,onNodeDragStop:C,onSelectionDrag:R,onSelectionDragStart:P,onSelectionDragStop:I,onMove:u,onMoveStart:b,onMoveEnd:m,noPanClassName:Xn,nodeOrigin:an,rfId:ke,autoPanOnConnect:te,autoPanOnNodeDrag:re,autoPanSpeed:oe,onError:se,connectionRadius:ae,isValidConnection:ie,selectNodesOnDrag:nn,nodeDragThreshold:ce,connectionDragThreshold:pe,onBeforeDelete:L,paneClickDistance:zn,debug:he,ariaLabelConfig:xe}),n.jsx(xp,{onSelectionChange:M}),Pn,n.jsx(bp,{proOptions:Un,position:Kn}),n.jsx(pp,{rfId:ke,disableKeyboardA11y:ee})]})})});function Sb({dimensions:e,lineWidth:t,variant:r,className:o}){return n.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:No(["react-flow__background-pattern",r,o])})}function Ob({radius:e,className:t}){return n.jsx("circle",{cx:e,cy:e,r:e,className:No(["react-flow__background-pattern","dots",t])})}!function(n){n.Lines="lines",n.Dots="dots",n.Cross="cross"}(Eb||(Eb={}));const Cb={[Eb.Dots]:1,[Eb.Lines]:1,[Eb.Cross]:6},Nb=n=>({transform:n.transform,patternId:`pattern-${n.rfId}`});function jb({id:t,variant:r=Eb.Dots,gap:o=20,size:a,lineWidth:i=1,offset:s=0,color:l,bgColor:d,style:c,className:p,patternClassName:u}){const b=e.useRef(null),{transform:m,patternId:f}=tp(Nb,Qc),g=a||Cb[r],h=r===Eb.Dots,v=r===Eb.Cross,x=Array.isArray(o)?o:[o,o],w=[x[0]*m[2]||1,x[1]*m[2]||1],y=g*m[2],k=Array.isArray(s)?s:[s,s],E=v?[y,y]:w,_=[k[0]*m[2]||1+E[0]/2,k[1]*m[2]||1+E[1]/2],S=`${f}${t||""}`;return n.jsxs("svg",{className:No(["react-flow__background",p]),style:{...c,...Zp,"--xy-background-color-props":d,"--xy-background-pattern-color-props":l},ref:b,"data-testid":"rf__background",children:[n.jsx("pattern",{id:S,x:m[0]%w[0],y:m[1]%w[1],width:w[0],height:w[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${_[0]},-${_[1]})`,children:h?n.jsx(Ob,{radius:y/2,className:u}):n.jsx(Sb,{dimensions:E,lineWidth:i,variant:r,className:u})}),n.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${S})`})]})}function zb(){return n.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:n.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function Mb(){return n.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:n.jsx("path",{d:"M0 0h32v4.2H0z"})})}function Pb(){return n.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:n.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 Rb(){return n.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:n.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 Ib(){return n.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:n.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 Ab({children:e,className:t,...r}){return n.jsx("button",{type:"button",className:No(["react-flow__controls-button",t]),...r,children:e})}jb.displayName="Background",e.memo(jb);const Db=n=>({isInteractive:n.nodesDraggable||n.nodesConnectable||n.elementsSelectable,minZoomReached:n.transform[2]<=n.minZoom,maxZoomReached:n.transform[2]>=n.maxZoom,ariaLabelConfig:n.ariaLabelConfig});function Tb({style:e,showZoom:t=!0,showFitView:r=!0,showInteractive:o=!0,fitViewOptions:a,onZoomIn:i,onZoomOut:s,onFitView:l,onInteractiveChange:d,className:c,children:p,position:u="bottom-left",orientation:b="vertical","aria-label":m}){const f=rp(),{isInteractive:g,minZoomReached:h,maxZoomReached:v,ariaLabelConfig:x}=tp(Db,Qc),{zoomIn:w,zoomOut:y,fitView:k}=Xp(),E="horizontal"===b?"horizontal":"vertical";return n.jsxs(up,{className:No(["react-flow__controls",E,c]),position:u,style:e,"data-testid":"rf__controls","aria-label":m??x["controls.ariaLabel"],children:[t&&n.jsxs(n.Fragment,{children:[n.jsx(Ab,{onClick:()=>{w(),i?.()},className:"react-flow__controls-zoomin",title:x["controls.zoomIn.ariaLabel"],"aria-label":x["controls.zoomIn.ariaLabel"],disabled:v,children:n.jsx(zb,{})}),n.jsx(Ab,{onClick:()=>{y(),s?.()},className:"react-flow__controls-zoomout",title:x["controls.zoomOut.ariaLabel"],"aria-label":x["controls.zoomOut.ariaLabel"],disabled:h,children:n.jsx(Mb,{})})]}),r&&n.jsx(Ab,{className:"react-flow__controls-fitview",onClick:()=>{k(a),l?.()},title:x["controls.fitView.ariaLabel"],"aria-label":x["controls.fitView.ariaLabel"],children:n.jsx(Pb,{})}),o&&n.jsx(Ab,{className:"react-flow__controls-interactive",onClick:()=>{f.setState({nodesDraggable:!g,nodesConnectable:!g,elementsSelectable:!g}),d?.(!g)},title:x["controls.interactive.ariaLabel"],"aria-label":x["controls.interactive.ariaLabel"],children:g?n.jsx(Ib,{}):n.jsx(Rb,{})}),p]})}Tb.displayName="Controls";const Lb=e.memo(Tb);const Bb=e.memo(function({id:e,x:t,y:r,width:o,height:a,style:i,color:s,strokeColor:l,strokeWidth:d,className:c,borderRadius:p,shapeRendering:u,selected:b,onClick:m}){const{background:f,backgroundColor:g}=i||{},h=s||f||g;return n.jsx("rect",{className:No(["react-flow__minimap-node",{selected:b},c]),x:t,y:r,rx:p,ry:p,width:o,height:a,style:{fill:h,stroke:l,strokeWidth:d},shapeRendering:u,onClick:m?n=>m(n,e):void 0})}),Vb=n=>n.nodes.map(n=>n.id),$b=n=>n instanceof Function?n:()=>n;const Hb=e.memo(function({id:e,nodeColorFunc:t,nodeStrokeColorFunc:r,nodeClassNameFunc:o,nodeBorderRadius:a,nodeStrokeWidth:i,shapeRendering:s,NodeComponent:l,onClick:d}){const{node:c,x:p,y:u,width:b,height:m}=tp(n=>{const{internals:t}=n.nodeLookup.get(e),r=t.userNode,{x:o,y:a}=t.positionAbsolute,{width:i,height:s}=xd(r);return{node:r,x:o,y:a,width:i,height:s}},Qc);return c&&!c.hidden&&wd(c)?n.jsx(l,{x:p,y:u,width:b,height:m,style:c.style,selected:!!c.selected,className:o(c),color:t(c),borderRadius:a,strokeColor:r(c),strokeWidth:i,shapeRendering:s,onClick:d,id:c.id}):null});var Fb=e.memo(function({nodeStrokeColor:e,nodeColor:t,nodeClassName:r="",nodeBorderRadius:o=5,nodeStrokeWidth:a,nodeComponent:i=Bb,onClick:s}){const l=tp(Vb,Qc),d=$b(t),c=$b(e),p=$b(r),u="undefined"==typeof window||window.chrome?"crispEdges":"geometricPrecision";return n.jsx(n.Fragment,{children:l.map(e=>n.jsx(Hb,{id:e,nodeColorFunc:d,nodeStrokeColorFunc:c,nodeClassNameFunc:p,nodeBorderRadius:o,nodeStrokeWidth:a,NodeComponent:i,onClick:s,shapeRendering:u},e))})});const Yb=n=>!n.hidden,Gb=n=>{const e={x:-n.transform[0]/n.transform[2],y:-n.transform[1]/n.transform[2],width:n.width/n.transform[2],height:n.height/n.transform[2]};return{viewBB:e,boundingRect:n.nodeLookup.size>0?sd(Xl(n.nodeLookup,{filter:Yb}),e):e,rfId:n.rfId,panZoom:n.panZoom,translateExtent:n.translateExtent,flowWidth:n.width,flowHeight:n.height,ariaLabelConfig:n.ariaLabelConfig}};function Xb({style:t,className:r,nodeStrokeColor:o,nodeColor:a,nodeClassName:i="",nodeBorderRadius:s=5,nodeStrokeWidth:l,nodeComponent:d,bgColor:c,maskColor:p,maskStrokeColor:u,maskStrokeWidth:b,position:m="bottom-right",onClick:f,onNodeClick:g,pannable:h=!1,zoomable:v=!1,ariaLabel:x,inversePan:w,zoomStep:y=10,offsetScale:k=5}){const E=rp(),_=e.useRef(null),{boundingRect:S,viewBB:O,rfId:C,panZoom:N,translateExtent:j,flowWidth:z,flowHeight:M,ariaLabelConfig:P}=tp(Gb,Qc),R=t?.width??200,I=t?.height??150,A=S.width/R,D=S.height/I,T=Math.max(A,D),L=T*R,B=T*I,V=k*T,$=S.x-(L-S.width)/2-V,H=S.y-(B-S.height)/2-V,F=L+2*V,Y=B+2*V,G=`react-flow__minimap-desc-${C}`,X=e.useRef(0),q=e.useRef();X.current=T,e.useEffect(()=>{if(_.current&&N)return q.current=function({domNode:n,panZoom:e,getTransform:t,getViewScale:r}){const o=Xa(n);return{update:function({translateExtent:n,width:a,height:i,zoomStep:s=10,pannable:l=!0,zoomable:d=!0,inversePan:c=!1}){let p=[0,0];const u=hl().on("start",n=>{"mousedown"!==n.sourceEvent.type&&"touchstart"!==n.sourceEvent.type||(p=[n.sourceEvent.clientX??n.sourceEvent.touches[0].clientX,n.sourceEvent.clientY??n.sourceEvent.touches[0].clientY])}).on("zoom",l?o=>{const s=t();if("mousemove"!==o.sourceEvent.type&&"touchmove"!==o.sourceEvent.type||!e)return;const l=[o.sourceEvent.clientX??o.sourceEvent.touches[0].clientX,o.sourceEvent.clientY??o.sourceEvent.touches[0].clientY],d=[l[0]-p[0],l[1]-p[1]];p=l;const u=r()*Math.max(s[2],Math.log(s[2]))*(c?-1:1),b={x:s[0]-d[0]*u,y:s[1]-d[1]*u},m=[[0,0],[a,i]];e.setViewportConstrained({x:b.x,y:b.y,zoom:s[2]},m,n)}:null).on("zoom.wheel",d?n=>{const r=t();if("wheel"!==n.sourceEvent.type||!e)return;const o=-n.sourceEvent.deltaY*(1===n.sourceEvent.deltaMode?.05:n.sourceEvent.deltaMode?1:.002)*s,a=r[2]*Math.pow(2,o);e.scaleTo(a)}:null);o.call(u,{})},destroy:function(){o.on("zoom",null)},pointer:qa}}({domNode:_.current,panZoom:N,getTransform:()=>E.getState().transform,getViewScale:()=>X.current}),()=>{q.current?.destroy()}},[N]),e.useEffect(()=>{q.current?.update({translateExtent:j,width:z,height:M,inversePan:w,pannable:h,zoomStep:y,zoomable:v})},[h,v,w,y,j,z,M]);const W=f?n=>{const[e,t]=q.current?.pointer(n)||[0,0];f(n,{x:e,y:t})}:void 0,Z=g?e.useCallback((n,e)=>{const t=E.getState().nodeLookup.get(e).internals.userNode;g(n,t)},[]):void 0,K=x??P["minimap.ariaLabel"];return n.jsx(up,{position:m,style:{...t,"--xy-minimap-background-color-props":"string"==typeof c?c:void 0,"--xy-minimap-mask-background-color-props":"string"==typeof p?p:void 0,"--xy-minimap-mask-stroke-color-props":"string"==typeof u?u:void 0,"--xy-minimap-mask-stroke-width-props":"number"==typeof b?b*T:void 0,"--xy-minimap-node-background-color-props":"string"==typeof a?a:void 0,"--xy-minimap-node-stroke-color-props":"string"==typeof o?o:void 0,"--xy-minimap-node-stroke-width-props":"number"==typeof l?l:void 0},className:No(["react-flow__minimap",r]),"data-testid":"rf__minimap",children:n.jsxs("svg",{width:R,height:I,viewBox:`${$} ${H} ${F} ${Y}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":G,ref:_,onClick:W,children:[K&&n.jsx("title",{id:G,children:K}),n.jsx(Fb,{onClick:Z,nodeColor:a,nodeStrokeColor:o,nodeBorderRadius:s,nodeClassName:i,nodeStrokeWidth:l,nodeComponent:d}),n.jsx("path",{className:"react-flow__minimap-mask",d:`M${$-V},${H-V}h${F+2*V}v${Y+2*V}h${-F-2*V}z\n M${O.x},${O.y}h${O.width}v${O.height}h${-O.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}Xb.displayName="MiniMap",e.memo(Xb);const qb={[kc.Line]:"right",[kc.Handle]:"bottom-right"};e.memo(function({nodeId:t,position:r,variant:o=kc.Handle,className:a,style:i,children:s,color:l,minWidth:d=10,minHeight:c=10,maxWidth:p=Number.MAX_VALUE,maxHeight:u=Number.MAX_VALUE,keepAspectRatio:b=!1,resizeDirection:m,autoScale:f=!0,shouldResize:g,onResizeStart:h,onResize:v,onResizeEnd:x}){const w=lu(),y="string"==typeof t?t:w,k=rp(),E=e.useRef(null),_=o===kc.Handle,S=tp(e.useCallback((O=_&&f,n=>O?`${Math.max(1/n.transform[2],1)}`:void 0),[_,f]),Qc);var O;const C=e.useRef(null),N=r??qb[o];e.useEffect(()=>{if(E.current&&y)return C.current||(C.current=zc({domNode:E.current,nodeId:y,getStoreItems:()=>{const{nodeLookup:n,transform:e,snapGrid:t,snapToGrid:r,nodeOrigin:o,domNode:a}=k.getState();return{nodeLookup:n,transform:e,snapGrid:t,snapToGrid:r,nodeOrigin:o,paneDomNode:a}},onChange:(n,e)=>{const{triggerNodeChanges:t,nodeLookup:r,parentLookup:o,nodeOrigin:a}=k.getState(),i=[],s={x:n.x,y:n.y},l=r.get(y);if(l&&l.expandParent&&l.parentId){const e=l.origin??a,t=n.width??l.measured.width??0,d=n.height??l.measured.height??0,c=ec([{id:l.id,parentId:l.parentId,rect:{width:t,height:d,...yd({x:n.x??l.position.x,y:n.y??l.position.y},{width:t,height:d},l.parentId,r,e)}}],r,o,a);i.push(...c),s.x=n.x?Math.max(e[0]*t,n.x):void 0,s.y=n.y?Math.max(e[1]*d,n.y):void 0}if(void 0!==s.x&&void 0!==s.y){const n={id:y,type:"position",position:{...s}};i.push(n)}if(void 0!==n.width&&void 0!==n.height){const e={id:y,type:"dimensions",resizing:!0,setAttributes:!m||("horizontal"===m?"width":"height"),dimensions:{width:n.width,height:n.height}};i.push(e)}for(const n of e){const e={...n,type:"position"};i.push(e)}t(i)},onEnd:({width:n,height:e})=>{const t={id:y,type:"dimensions",resizing:!1,dimensions:{width:n,height:e}};k.getState().triggerNodeChanges([t])}})),C.current.update({controlPosition:N,boundaries:{minWidth:d,minHeight:c,maxWidth:p,maxHeight:u},keepAspectRatio:b,resizeDirection:m,onResizeStart:h,onResize:v,onResizeEnd:x,shouldResize:g}),()=>{C.current?.destroy()}},[N,d,c,p,u,b,h,v,x,g]);const j=N.split("-");return n.jsx("div",{className:No(["react-flow__resize-control","nodrag",...j,o,a]),ref:E,style:{...i,scale:S,...l&&{[_?"backgroundColor":"borderColor"]:l}},children:s})});var Wb,Zb,Kb,Ub,Qb,Jb,nm,em,tm,rm,om,am,im,sm,lm,dm,cm,pm,um,bm,mm,fm,gm,hm,vm,xm,wm,ym,km,Em,_m,Sm,Om,Cm,Nm,jm,zm,Mm,Pm,Rm,Im,Am,Dm,Tm,Lm,Bm,Vm,$m,Hm,Fm,Ym,Gm,Xm,qm,Wm,Zm,Km,Um,Qm,Jm,nf,ef,tf,rf,of,af,sf,lf,df,cf,pf,uf,bf,mf,ff,gf,hf,vf,xf,wf,yf,kf,Ef,_f,Sf,Of,Cf,Nf,jf,zf,Mf,Pf,Rf,If;function Af(){if(Zb)return Wb;Zb=1;var n="\0";function e(n,e){n[e]?n[e]++:n[e]=1}function t(n,e){--n[e]||delete n[e]}function r(n,e,t,r){var o=""+e,a=""+t;if(!n&&o>a){var i=o;o=a,a=i}return o+""+a+""+(void 0===r?"\0":r)}function o(n,e){return r(n,e.v,e.w,e.name)}return Wb=class{_isDirected=!0;_isMultigraph=!1;_isCompound=!1;_label;_defaultNodeLabelFn=()=>{};_defaultEdgeLabelFn=()=>{};_nodes={};_in={};_preds={};_out={};_sucs={};_edgeObjs={};_edgeLabels={};_nodeCount=0;_edgeCount=0;_parent;_children;constructor(e){e&&(this._isDirected=!Object.hasOwn(e,"directed")||e.directed,this._isMultigraph=!!Object.hasOwn(e,"multigraph")&&e.multigraph,this._isCompound=!!Object.hasOwn(e,"compound")&&e.compound),this._isCompound&&(this._parent={},this._children={},this._children[n]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(n){return this._label=n,this}graph(){return this._label}setDefaultNodeLabel(n){return this._defaultNodeLabelFn=n,"function"!=typeof n&&(this._defaultNodeLabelFn=()=>n),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var n=this;return this.nodes().filter(e=>0===Object.keys(n._in[e]).length)}sinks(){var n=this;return this.nodes().filter(e=>0===Object.keys(n._out[e]).length)}setNodes(n,e){var t=arguments,r=this;return n.forEach(function(n){t.length>1?r.setNode(n,e):r.setNode(n)}),this}setNode(e,t){return Object.hasOwn(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=n,this._children[e]={},this._children[n][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(n){return this._nodes[n]}hasNode(n){return Object.hasOwn(this._nodes,n)}removeNode(n){var e=this;if(Object.hasOwn(this._nodes,n)){var t=n=>e.removeEdge(e._edgeObjs[n]);delete this._nodes[n],this._isCompound&&(this._removeFromParentsChildList(n),delete this._parent[n],this.children(n).forEach(function(n){e.setParent(n)}),delete this._children[n]),Object.keys(this._in[n]).forEach(t),delete this._in[n],delete this._preds[n],Object.keys(this._out[n]).forEach(t),delete this._out[n],delete this._sucs[n],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(void 0===t)t=n;else{for(var r=t+="";void 0!==r;r=this.parent(r))if(r===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}_removeFromParentsChildList(n){delete this._children[this._parent[n]][n]}parent(e){if(this._isCompound){var t=this._parent[e];if(t!==n)return t}}children(e=n){if(this._isCompound){var t=this._children[e];if(t)return Object.keys(t)}else{if(e===n)return this.nodes();if(this.hasNode(e))return[]}}predecessors(n){var e=this._preds[n];if(e)return Object.keys(e)}successors(n){var e=this._sucs[n];if(e)return Object.keys(e)}neighbors(n){var e=this.predecessors(n);if(e){const r=new Set(e);for(var t of this.successors(n))r.add(t);return Array.from(r.values())}}isLeaf(n){return 0===(this.isDirected()?this.successors(n):this.neighbors(n)).length}filterNodes(n){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var t=this;Object.entries(this._nodes).forEach(function([t,r]){n(t)&&e.setNode(t,r)}),Object.values(this._edgeObjs).forEach(function(n){e.hasNode(n.v)&&e.hasNode(n.w)&&e.setEdge(n,t.edge(n))});var r={};function o(n){var a=t.parent(n);return void 0===a||e.hasNode(a)?(r[n]=a,a):a in r?r[a]:o(a)}return this._isCompound&&e.nodes().forEach(n=>e.setParent(n,o(n))),e}setDefaultEdgeLabel(n){return this._defaultEdgeLabelFn=n,"function"!=typeof n&&(this._defaultEdgeLabelFn=()=>n),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(n,e){var t=this,r=arguments;return n.reduce(function(n,o){return r.length>1?t.setEdge(n,o,e):t.setEdge(n,o),o}),this}setEdge(){var n,t,o,a,i=!1,s=arguments[0];"object"==typeof s&&null!==s&&"v"in s?(n=s.v,t=s.w,o=s.name,2===arguments.length&&(a=arguments[1],i=!0)):(n=s,t=arguments[1],o=arguments[3],arguments.length>2&&(a=arguments[2],i=!0)),n=""+n,t=""+t,void 0!==o&&(o=""+o);var l=r(this._isDirected,n,t,o);if(Object.hasOwn(this._edgeLabels,l))return i&&(this._edgeLabels[l]=a),this;if(void 0!==o&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(n),this.setNode(t),this._edgeLabels[l]=i?a:this._defaultEdgeLabelFn(n,t,o);var d=function(n,e,t,r){var o=""+e,a=""+t;if(!n&&o>a){var i=o;o=a,a=i}var s={v:o,w:a};r&&(s.name=r);return s}(this._isDirected,n,t,o);return n=d.v,t=d.w,Object.freeze(d),this._edgeObjs[l]=d,e(this._preds[t],n),e(this._sucs[n],t),this._in[t][l]=d,this._out[n][l]=d,this._edgeCount++,this}edge(n,e,t){var a=1===arguments.length?o(this._isDirected,arguments[0]):r(this._isDirected,n,e,t);return this._edgeLabels[a]}edgeAsObj(){const n=this.edge(...arguments);return"object"!=typeof n?{label:n}:n}hasEdge(n,e,t){var a=1===arguments.length?o(this._isDirected,arguments[0]):r(this._isDirected,n,e,t);return Object.hasOwn(this._edgeLabels,a)}removeEdge(n,e,a){var i=1===arguments.length?o(this._isDirected,arguments[0]):r(this._isDirected,n,e,a),s=this._edgeObjs[i];return s&&(n=s.v,e=s.w,delete this._edgeLabels[i],delete this._edgeObjs[i],t(this._preds[e],n),t(this._sucs[n],e),delete this._in[e][i],delete this._out[n][i],this._edgeCount--),this}inEdges(n,e){var t=this._in[n];if(t){var r=Object.values(t);return e?r.filter(n=>n.v===e):r}}outEdges(n,e){var t=this._out[n];if(t){var r=Object.values(t);return e?r.filter(n=>n.w===e):r}}nodeEdges(n,e){var t=this.inEdges(n,e);if(t)return t.concat(this.outEdges(n,e))}},Wb}function Df(){return Jb?Qb:(Jb=1,Qb={Graph:Af(),version:Ub?Kb:(Ub=1,Kb="2.2.4")})}function Tf(){if(em)return nm;em=1;var n=Af();function e(n){return n.nodes().map(function(e){var t=n.node(e),r=n.parent(e),o={v:e};return void 0!==t&&(o.value=t),void 0!==r&&(o.parent=r),o})}function t(n){return n.edges().map(function(e){var t=n.edge(e),r={v:e.v,w:e.w};return void 0!==e.name&&(r.name=e.name),void 0!==t&&(r.value=t),r})}return nm={write:function(n){var r={options:{directed:n.isDirected(),multigraph:n.isMultigraph(),compound:n.isCompound()},nodes:e(n),edges:t(n)};void 0!==n.graph()&&(r.value=structuredClone(n.graph()));return r},read:function(e){var t=new n(e.options).setGraph(e.value);return e.nodes.forEach(function(n){t.setNode(n.v,n.value),n.parent&&t.setParent(n.v,n.parent)}),e.edges.forEach(function(n){t.setEdge({v:n.v,w:n.w,name:n.name},n.value)}),t}}}function Lf(){if(rm)return tm;return rm=1,tm=function(n){var e,t={},r=[];function o(r){Object.hasOwn(t,r)||(t[r]=!0,e.push(r),n.successors(r).forEach(o),n.predecessors(r).forEach(o))}return n.nodes().forEach(function(n){e=[],o(n),e.length&&r.push(e)}),r},tm}function Bf(){if(am)return om;am=1;return om=class{_arr=[];_keyIndices={};size(){return this._arr.length}keys(){return this._arr.map(function(n){return n.key})}has(n){return Object.hasOwn(this._keyIndices,n)}priority(n){var e=this._keyIndices[n];if(void 0!==e)return this._arr[e].priority}min(){if(0===this.size())throw new Error("Queue underflow");return this._arr[0].key}add(n,e){var t=this._keyIndices;if(n=String(n),!Object.hasOwn(t,n)){var r=this._arr,o=r.length;return t[n]=o,r.push({key:n,priority:e}),this._decrease(o),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var n=this._arr.pop();return delete this._keyIndices[n.key],this._heapify(0),n.key}decrease(n,e){var t=this._keyIndices[n];if(e>this._arr[t].priority)throw new Error("New priority is greater than current priority. Key: "+n+" Old: "+this._arr[t].priority+" New: "+e);this._arr[t].priority=e,this._decrease(t)}_heapify(n){var e=this._arr,t=2*n,r=t+1,o=n;t<e.length&&(o=e[t].priority<e[o].priority?t:o,r<e.length&&(o=e[r].priority<e[o].priority?r:o),o!==n&&(this._swap(n,o),this._heapify(o)))}_decrease(n){for(var e,t=this._arr,r=t[n].priority;0!==n&&!(t[e=n>>1].priority<r);)this._swap(n,e),n=e}_swap(n,e){var t=this._arr,r=this._keyIndices,o=t[n],a=t[e];t[n]=a,t[e]=o,r[a.key]=n,r[o.key]=e}},om}function Vf(){if(sm)return im;sm=1;var n=Bf();im=function(t,r,o,a){return function(e,t,r,o){var a,i,s={},l=new n,d=function(n){var e=n.v!==a?n.v:n.w,t=s[e],o=r(n),d=i.distance+o;if(o<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+n+" Weight: "+o);d<t.distance&&(t.distance=d,t.predecessor=a,l.decrease(e,d))};e.nodes().forEach(function(n){var e=n===t?0:Number.POSITIVE_INFINITY;s[n]={distance:e},l.add(n,e)});for(;l.size()>0&&(a=l.removeMin(),(i=s[a]).distance!==Number.POSITIVE_INFINITY);)o(a).forEach(d);return s}(t,String(r),o||e,a||function(n){return t.outEdges(n)})};var e=()=>1;return im}function $f(){if(dm)return lm;dm=1;var n=Vf();return lm=function(e,t,r){return e.nodes().reduce(function(o,a){return o[a]=n(e,a,t,r),o},{})},lm}function Hf(){if(pm)return cm;return pm=1,cm=function(n){var e=0,t=[],r={},o=[];function a(i){var s=r[i]={onStack:!0,lowlink:e,index:e++};if(t.push(i),n.successors(i).forEach(function(n){Object.hasOwn(r,n)?r[n].onStack&&(s.lowlink=Math.min(s.lowlink,r[n].index)):(a(n),s.lowlink=Math.min(s.lowlink,r[n].lowlink))}),s.lowlink===s.index){var l,d=[];do{l=t.pop(),r[l].onStack=!1,d.push(l)}while(i!==l);o.push(d)}}return n.nodes().forEach(function(n){Object.hasOwn(r,n)||a(n)}),o},cm}function Ff(){if(bm)return um;bm=1;var n=Hf();return um=function(e){return n(e).filter(function(n){return n.length>1||1===n.length&&e.hasEdge(n[0],n[0])})}}function Yf(){if(fm)return mm;fm=1,mm=function(e,t,r){return function(n,e,t){var r={},o=n.nodes();return o.forEach(function(n){r[n]={},r[n][n]={distance:0},o.forEach(function(e){n!==e&&(r[n][e]={distance:Number.POSITIVE_INFINITY})}),t(n).forEach(function(t){var o=t.v===n?t.w:t.v,a=e(t);r[n][o]={distance:a,predecessor:n}})}),o.forEach(function(n){var e=r[n];o.forEach(function(t){var a=r[t];o.forEach(function(t){var r=a[n],o=e[t],i=a[t],s=r.distance+o.distance;s<i.distance&&(i.distance=s,i.predecessor=o.predecessor)})})}),r}(e,t||n,r||function(n){return e.outEdges(n)})};var n=()=>1;return mm}function Gf(){if(hm)return gm;function n(n){var t={},r={},o=[];if(n.sinks().forEach(function a(i){if(Object.hasOwn(r,i))throw new e;Object.hasOwn(t,i)||(r[i]=!0,t[i]=!0,n.predecessors(i).forEach(a),delete r[i],o.push(i))}),Object.keys(t).length!==n.nodeCount())throw new e;return o}hm=1;class e extends Error{constructor(){super(...arguments)}}return gm=n,n.CycleException=e,gm}function Xf(){if(xm)return vm;xm=1;var n=Gf();return vm=function(e){try{n(e)}catch(e){if(e instanceof n.CycleException)return!1;throw e}return!0}}function qf(){if(ym)return wm;function n(n,e,r,o){for(var a=[[n,!1]];a.length>0;){var i=a.pop();i[1]?o.push(i[0]):Object.hasOwn(r,i[0])||(r[i[0]]=!0,a.push([i[0],!0]),t(e(i[0]),n=>a.push([n,!1])))}}function e(n,e,r,o){for(var a=[n];a.length>0;){var i=a.pop();Object.hasOwn(r,i)||(r[i]=!0,o.push(i),t(e(i),n=>a.push(n)))}}function t(n,e){for(var t=n.length;t--;)e(n[t],t,n);return n}return ym=1,wm=function(t,r,o){Array.isArray(r)||(r=[r]);var a=t.isDirected()?n=>t.successors(n):n=>t.neighbors(n),i="post"===o?n:e,s=[],l={};return r.forEach(n=>{if(!t.hasNode(n))throw new Error("Graph does not have node: "+n);i(n,a,l,s)}),s},wm}function Wf(){if(Em)return km;Em=1;var n=qf();return km=function(e,t){return n(e,t,"post")}}function Zf(){if(Sm)return _m;Sm=1;var n=qf();return _m=function(e,t){return n(e,t,"pre")}}function Kf(){if(Cm)return Om;Cm=1;var n=Af(),e=Bf();return Om=function(t,r){var o,a=new n,i={},s=new e;function l(n){var e=n.v===o?n.w:n.v,t=s.priority(e);if(void 0!==t){var a=r(n);a<t&&(i[e]=o,s.decrease(e,a))}}if(0===t.nodeCount())return a;t.nodes().forEach(function(n){s.add(n,Number.POSITIVE_INFINITY),a.setNode(n)}),s.decrease(t.nodes()[0],0);var d=!1;for(;s.size()>0;){if(o=s.removeMin(),Object.hasOwn(i,o))a.setEdge(o,i[o]);else{if(d)throw new Error("Input graph is not connected: "+t);d=!0}t.nodeEdges(o).forEach(l)}return a},Om}function Uf(){if(Mm)return zm;Mm=1;var n=Df();return zm={Graph:n.Graph,json:Tf(),alg:jm?Nm:(jm=1,Nm={components:Lf(),dijkstra:Vf(),dijkstraAll:$f(),findCycles:Ff(),floydWarshall:Yf(),isAcyclic:Xf(),postorder:Wf(),preorder:Zf(),prim:Kf(),tarjan:Hf(),topsort:Gf()}),version:n.version}}function Qf(){if(Am)return Im;Am=1;let n=Uf().Graph,e=function(){if(Rm)return Pm;function n(n){n._prev._next=n._next,n._next._prev=n._prev,delete n._next,delete n._prev}function e(n,e){if("_next"!==n&&"_prev"!==n)return e}return Rm=1,Pm=class{constructor(){let n={};n._next=n._prev=n,this._sentinel=n}dequeue(){let e=this._sentinel,t=e._prev;if(t!==e)return n(t),t}enqueue(e){let t=this._sentinel;e._prev&&e._next&&n(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t}toString(){let n=[],t=this._sentinel,r=t._prev;for(;r!==t;)n.push(JSON.stringify(r,e)),r=r._prev;return"["+n.join(", ")+"]"}}}();Im=function(a,i){if(a.nodeCount()<=1)return[];let s=function(t,r){let a=new n,i=0,s=0;t.nodes().forEach(n=>{a.setNode(n,{v:n,in:0,out:0})}),t.edges().forEach(n=>{let e=a.edge(n.v,n.w)||0,t=r(n),o=e+t;a.setEdge(n.v,n.w,o),s=Math.max(s,a.node(n.v).out+=t),i=Math.max(i,a.node(n.w).in+=t)});let l=function(n){const e=[];for(let t=0;t<n;t++)e.push(t);return e}(s+i+3).map(()=>new e),d=i+1;return a.nodes().forEach(n=>{o(l,d,a.node(n))}),{graph:a,buckets:l,zeroIdx:d}}(a,i||t);return function(n,e,t){let o,a=[],i=e[e.length-1],s=e[0];for(;n.nodeCount();){for(;o=s.dequeue();)r(n,e,t,o);for(;o=i.dequeue();)r(n,e,t,o);if(n.nodeCount())for(let i=e.length-2;i>0;--i)if(o=e[i].dequeue(),o){a=a.concat(r(n,e,t,o,!0));break}}return a}(s.graph,s.buckets,s.zeroIdx).flatMap(n=>a.outEdges(n.v,n.w))};let t=()=>1;function r(n,e,t,r,a){let i=a?[]:void 0;return n.inEdges(r.v).forEach(r=>{let s=n.edge(r),l=n.node(r.v);a&&i.push({v:r.v,w:r.w}),l.out-=s,o(e,t,l)}),n.outEdges(r.v).forEach(r=>{let a=n.edge(r),i=r.w,s=n.node(i);s.in-=a,o(e,t,s)}),n.removeNode(r.v),i}function o(n,e,t){t.out?t.in?n[t.out-t.in+e].enqueue(t):n[n.length-1].enqueue(t):n[0].enqueue(t)}return Im}function Jf(){if(Tm)return Dm;Tm=1;let n=Uf().Graph;function e(n,e,t,r){for(var o=r;n.hasNode(o);)o=i(r);return t.dummy=e,n.setNode(o,t),o}Dm={addBorderNode:function(n,t,r,o){let a={width:0,height:0};arguments.length>=4&&(a.rank=r,a.order=o);return e(n,"border",a,t)},addDummyNode:e,applyWithChunking:r,asNonCompoundGraph:function(e){let t=new n({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(n=>{e.children(n).length||t.setNode(n,e.node(n))}),e.edges().forEach(n=>{t.setEdge(n,e.edge(n))}),t},buildLayerMatrix:function(n){let e=s(o(n)+1).map(()=>[]);return n.nodes().forEach(t=>{let r=n.node(t),o=r.rank;void 0!==o&&(e[o][r.order]=t)}),e},intersectRect:function(n,e){let t,r,o=n.x,a=n.y,i=e.x-o,s=e.y-a,l=n.width/2,d=n.height/2;if(!i&&!s)throw new Error("Not possible to find intersection inside of the rectangle");Math.abs(s)*l>Math.abs(i)*d?(s<0&&(d=-d),t=d*i/s,r=d):(i<0&&(l=-l),t=l,r=l*s/i);return{x:o+t,y:a+r}},mapValues:function(n,e){let t=e;"string"==typeof e&&(t=n=>n[e]);return Object.entries(n).reduce((n,[e,r])=>(n[e]=t(r,e),n),{})},maxRank:o,normalizeRanks:function(n){let e=n.nodes().map(e=>{let t=n.node(e).rank;return void 0===t?Number.MAX_VALUE:t}),t=r(Math.min,e);n.nodes().forEach(e=>{let r=n.node(e);Object.hasOwn(r,"rank")&&(r.rank-=t)})},notime:function(n,e){return e()},partition:function(n,e){let t={lhs:[],rhs:[]};return n.forEach(n=>{e(n)?t.lhs.push(n):t.rhs.push(n)}),t},pick:function(n,e){const t={};for(const r of e)void 0!==n[r]&&(t[r]=n[r]);return t},predecessorWeights:function(n){let e=n.nodes().map(e=>{let t={};return n.inEdges(e).forEach(e=>{t[e.v]=(t[e.v]||0)+n.edge(e).weight}),t});return l(n.nodes(),e)},range:s,removeEmptyRanks:function(n){let e=n.nodes().map(e=>n.node(e).rank),t=r(Math.min,e),o=[];n.nodes().forEach(e=>{let r=n.node(e).rank-t;o[r]||(o[r]=[]),o[r].push(e)});let a=0,i=n.graph().nodeRankFactor;Array.from(o).forEach((e,t)=>{void 0===e&&t%i!==0?--a:void 0!==e&&a&&e.forEach(e=>n.node(e).rank+=a)})},simplify:function(e){let t=(new n).setGraph(e.graph());return e.nodes().forEach(n=>t.setNode(n,e.node(n))),e.edges().forEach(n=>{let r=t.edge(n.v,n.w)||{weight:0,minlen:1},o=e.edge(n);t.setEdge(n.v,n.w,{weight:r.weight+o.weight,minlen:Math.max(r.minlen,o.minlen)})}),t},successorWeights:function(n){let e=n.nodes().map(e=>{let t={};return n.outEdges(e).forEach(e=>{t[e.w]=(t[e.w]||0)+n.edge(e).weight}),t});return l(n.nodes(),e)},time:function(n,e){let t=Date.now();try{return e()}finally{console.log(n+" time: "+(Date.now()-t)+"ms")}},uniqueId:i,zipObject:l};const t=65535;function r(n,e){if(e.length>t){const r=function(n,e=t){const r=[];for(let t=0;t<n.length;t+=e){const o=n.slice(t,t+e);r.push(o)}return r}(e);return n.apply(null,r.map(e=>n.apply(null,e)))}return n.apply(null,e)}function o(n){const e=n.nodes().map(e=>{let t=n.node(e).rank;return void 0===t?Number.MIN_VALUE:t});return r(Math.max,e)}let a=0;function i(n){return n+""+ ++a}function s(n,e,t=1){null==e&&(e=n,n=0);let r=n=>n<e;t<0&&(r=n=>e<n);const o=[];for(let e=n;r(e);e+=t)o.push(e);return o}function l(n,e){return n.reduce((n,t,r)=>(n[t]=e[r],n),{})}return Dm}function ng(){if(Bm)return Lm;Bm=1;let n=Qf(),e=Jf().uniqueId;return Lm={run:function(t){("greedy"===t.graph().acyclicer?n(t,function(n){return e=>n.edge(e).weight}(t)):function(n){let e=[],t={},r={};function o(a){Object.hasOwn(r,a)||(r[a]=!0,t[a]=!0,n.outEdges(a).forEach(n=>{Object.hasOwn(t,n.w)?e.push(n):o(n.w)}),delete t[a])}return n.nodes().forEach(o),e}(t)).forEach(n=>{let r=t.edge(n);t.removeEdge(n),r.forwardName=n.name,r.reversed=!0,t.setEdge(n.w,n.v,r,e("rev"))})},undo:function(n){n.edges().forEach(e=>{let t=n.edge(e);if(t.reversed){n.removeEdge(e);let r=t.forwardName;delete t.reversed,delete t.forwardName,n.setEdge(e.w,e.v,t,r)}})}},Lm}function eg(){if($m)return Vm;$m=1;let n=Jf();return Vm={run:function(e){e.graph().dummyChains=[],e.edges().forEach(t=>function(e,t){let r,o,a,i=t.v,s=e.node(i).rank,l=t.w,d=e.node(l).rank,c=t.name,p=e.edge(t),u=p.labelRank;if(d===s+1)return;for(e.removeEdge(t),a=0,++s;s<d;++a,++s)p.points=[],o={width:0,height:0,edgeLabel:p,edgeObj:t,rank:s},r=n.addDummyNode(e,"edge",o,"_d"),s===u&&(o.width=p.width,o.height=p.height,o.dummy="edge-label",o.labelpos=p.labelpos),e.setEdge(i,r,{weight:p.weight},c),0===a&&e.graph().dummyChains.push(r),i=r;e.setEdge(i,l,{weight:p.weight},c)}(e,t))},undo:function(n){n.graph().dummyChains.forEach(e=>{let t,r=n.node(e),o=r.edgeLabel;for(n.setEdge(r.edgeObj,o);r.dummy;)t=n.successors(e)[0],n.removeNode(e),o.points.push({x:r.x,y:r.y}),"edge-label"===r.dummy&&(o.x=r.x,o.y=r.y,o.width=r.width,o.height=r.height),e=t,r=n.node(e)})}},Vm}function tg(){if(Fm)return Hm;Fm=1;const{applyWithChunking:n}=Jf();return Hm={longestPath:function(e){var t={};e.sources().forEach(function r(o){var a=e.node(o);if(Object.hasOwn(t,o))return a.rank;t[o]=!0;let i=e.outEdges(o).map(n=>null==n?Number.POSITIVE_INFINITY:r(n.w)-e.edge(n).minlen);var s=n(Math.min,i);return s===Number.POSITIVE_INFINITY&&(s=0),a.rank=s})},slack:function(n,e){return n.node(e.w).rank-n.node(e.v).rank-n.edge(e).minlen}},Hm}function rg(){if(Gm)return Ym;Gm=1;var n=Uf().Graph,e=tg().slack;function t(n,t){return n.nodes().forEach(function r(o){t.nodeEdges(o).forEach(a=>{var i=a.v,s=o===i?a.w:i;n.hasNode(s)||e(t,a)||(n.setNode(s,{}),n.setEdge(o,s,{}),r(s))})}),n.nodeCount()}function r(n,t){return t.edges().reduce((r,o)=>{let a=Number.POSITIVE_INFINITY;return n.hasNode(o.v)!==n.hasNode(o.w)&&(a=e(t,o)),a<r[0]?[a,o]:r},[Number.POSITIVE_INFINITY,null])[1]}function o(n,e,t){n.nodes().forEach(n=>e.node(n).rank+=t)}return Ym=function(a){var i,s,l=new n({directed:!1}),d=a.nodes()[0],c=a.nodeCount();l.setNode(d,{});for(;t(l,a)<c;)i=r(l,a),s=l.hasNode(i.v)?e(a,i):-e(a,i),o(l,a,s);return l},Ym}function og(){if(qm)return Xm;qm=1;var n=rg(),e=tg().slack,t=tg().longestPath,r=Uf().alg.preorder,o=Uf().alg.postorder,a=Jf().simplify;function i(e){e=a(e),t(e);var r,o=n(e);for(d(o),s(o,e);r=p(o);)b(o,e,r,u(o,e,r))}function s(n,e){var t=o(n,n.nodes());(t=t.slice(0,t.length-1)).forEach(t=>function(n,e,t){var r=n.node(t),o=r.parent;n.edge(t,o).cutvalue=l(n,e,t)}(n,e,t))}function l(n,e,t){var r=n.node(t).parent,o=!0,a=e.edge(t,r),i=0;return a||(o=!1,a=e.edge(r,t)),i=a.weight,e.nodeEdges(t).forEach(a=>{var s=a.v===t,l=s?a.w:a.v;if(l!==r){var d=s===o,c=e.edge(a).weight;if(i+=d?c:-c,function(n,e,t){return n.hasEdge(e,t)}(n,t,l)){var p=n.edge(t,l).cutvalue;i+=d?-p:p}}}),i}function d(n,e){arguments.length<2&&(e=n.nodes()[0]),c(n,{},1,e)}function c(n,e,t,r,o){var a=t,i=n.node(r);return e[r]=!0,n.neighbors(r).forEach(o=>{Object.hasOwn(e,o)||(t=c(n,e,t,o,r))}),i.low=a,i.lim=t++,o?i.parent=o:delete i.parent,t}function p(n){return n.edges().find(e=>n.edge(e).cutvalue<0)}function u(n,t,r){var o=r.v,a=r.w;t.hasEdge(o,a)||(o=r.w,a=r.v);var i=n.node(o),s=n.node(a),l=i,d=!1;i.lim>s.lim&&(l=s,d=!0);var c=t.edges().filter(e=>d===m(n,n.node(e.v),l)&&d!==m(n,n.node(e.w),l));return c.reduce((n,r)=>e(t,r)<e(t,n)?r:n)}function b(n,e,t,o){var a=t.v,i=t.w;n.removeEdge(a,i),n.setEdge(o.v,o.w,{}),d(n),s(n,e),function(n,e){var t=n.nodes().find(n=>!e.node(n).parent),o=r(n,t);(o=o.slice(1)).forEach(t=>{var r=n.node(t).parent,o=e.edge(t,r),a=!1;o||(o=e.edge(r,t),a=!0),e.node(t).rank=e.node(r).rank+(a?o.minlen:-o.minlen)})}(n,e)}function m(n,e,t){return t.low<=e.lim&&e.lim<=t.lim}return Xm=i,i.initLowLimValues=d,i.initCutValues=s,i.calcCutValue=l,i.leaveEdge=p,i.enterEdge=u,i.exchangeEdges=b,Xm}function ag(){if(Zm)return Wm;Zm=1;var n=tg().longestPath,e=rg(),t=og();Wm=function(t){var a=t.graph().ranker;if(a instanceof Function)return a(t);switch(t.graph().ranker){case"network-simplex":default:o(t);break;case"tight-tree":!function(t){n(t),e(t)}(t);break;case"longest-path":r(t);case"none":}};var r=n;function o(n){t(n)}return Wm}function ig(){if(Um)return Km;return Um=1,Km=function(n){let e=function(n){let e={},t=0;function r(o){let a=t;n.children(o).forEach(r),e[o]={low:a,lim:t++}}return n.children().forEach(r),e}(n);n.graph().dummyChains.forEach(t=>{let r=n.node(t),o=r.edgeObj,a=function(n,e,t,r){let o,a,i=[],s=[],l=Math.min(e[t].low,e[r].low),d=Math.max(e[t].lim,e[r].lim);o=t;do{o=n.parent(o),i.push(o)}while(o&&(e[o].low>l||d>e[o].lim));a=o,o=r;for(;(o=n.parent(o))!==a;)s.push(o);return{path:i.concat(s.reverse()),lca:a}}(n,e,o.v,o.w),i=a.path,s=a.lca,l=0,d=i[l],c=!0;for(;t!==o.w;){if(r=n.node(t),c){for(;(d=i[l])!==s&&n.node(d).maxRank<r.rank;)l++;d===s&&(c=!1)}if(!c){for(;l<i.length-1&&n.node(d=i[l+1]).minRank<=r.rank;)l++;d=i[l]}n.setParent(t,d),t=n.successors(t)[0]}})},Km}function sg(){if(Jm)return Qm;Jm=1;let n=Jf();function e(t,r,o,a,i,s,l){let d=t.children(l);if(!d.length)return void(l!==r&&t.setEdge(r,l,{weight:0,minlen:o}));let c=n.addBorderNode(t,"_bt"),p=n.addBorderNode(t,"_bb"),u=t.node(l);t.setParent(c,l),u.borderTop=c,t.setParent(p,l),u.borderBottom=p,d.forEach(n=>{e(t,r,o,a,i,s,n);let d=t.node(n),u=d.borderTop?d.borderTop:n,b=d.borderBottom?d.borderBottom:n,m=d.borderTop?a:2*a,f=u!==b?1:i-s[l]+1;t.setEdge(c,u,{weight:m,minlen:f,nestingEdge:!0}),t.setEdge(b,p,{weight:m,minlen:f,nestingEdge:!0})}),t.parent(l)||t.setEdge(r,c,{weight:0,minlen:i+s[l]})}return Qm={run:function(t){let r=n.addDummyNode(t,"root",{},"_root"),o=function(n){var e={};function t(r,o){var a=n.children(r);a&&a.length&&a.forEach(n=>t(n,o+1)),e[r]=o}return n.children().forEach(n=>t(n,1)),e}(t),a=Object.values(o),i=n.applyWithChunking(Math.max,a)-1,s=2*i+1;t.graph().nestingRoot=r,t.edges().forEach(n=>t.edge(n).minlen*=s);let l=function(n){return n.edges().reduce((e,t)=>e+n.edge(t).weight,0)}(t)+1;t.children().forEach(n=>e(t,r,s,l,i,o,n)),t.graph().nodeRankFactor=s},cleanup:function(n){var e=n.graph();n.removeNode(e.nestingRoot),delete e.nestingRoot,n.edges().forEach(e=>{n.edge(e).nestingEdge&&n.removeEdge(e)})}},Qm}function lg(){if(rf)return tf;function n(n){n.nodes().forEach(t=>e(n.node(t))),n.edges().forEach(t=>e(n.edge(t)))}function e(n){let e=n.width;n.width=n.height,n.height=e}function t(n){n.y=-n.y}function r(n){let e=n.x;n.x=n.y,n.y=e}return rf=1,tf={adjust:function(e){let t=e.graph().rankdir.toLowerCase();"lr"!==t&&"rl"!==t||n(e)},undo:function(e){let o=e.graph().rankdir.toLowerCase();"bt"!==o&&"rl"!==o||function(n){n.nodes().forEach(e=>t(n.node(e))),n.edges().forEach(e=>{let r=n.edge(e);r.points.forEach(t),Object.hasOwn(r,"y")&&t(r)})}(e);"lr"!==o&&"rl"!==o||(!function(n){n.nodes().forEach(e=>r(n.node(e))),n.edges().forEach(e=>{let t=n.edge(e);t.points.forEach(r),Object.hasOwn(t,"x")&&r(t)})}(e),n(e))}},tf}function dg(){if(uf)return pf;uf=1;let n=Jf();return pf=function(e,t){let r={};return e.forEach((n,e)=>{let t=r[n.v]={indegree:0,in:[],out:[],vs:[n.v],i:e};void 0!==n.barycenter&&(t.barycenter=n.barycenter,t.weight=n.weight)}),t.edges().forEach(n=>{let e=r[n.v],t=r[n.w];void 0!==e&&void 0!==t&&(t.indegree++,e.out.push(r[n.w]))}),function(e){let t=[];function r(n){return e=>{e.merged||(void 0===e.barycenter||void 0===n.barycenter||e.barycenter>=n.barycenter)&&function(n,e){let t=0,r=0;n.weight&&(t+=n.barycenter*n.weight,r+=n.weight);e.weight&&(t+=e.barycenter*e.weight,r+=e.weight);n.vs=e.vs.concat(n.vs),n.barycenter=t/r,n.weight=r,n.i=Math.min(e.i,n.i),e.merged=!0}(n,e)}}function o(n){return t=>{t.in.push(n),0===--t.indegree&&e.push(t)}}for(;e.length;){let n=e.pop();t.push(n),n.in.reverse().forEach(r(n)),n.out.forEach(o(n))}return t.filter(n=>!n.merged).map(e=>n.pick(e,["vs","i","barycenter","weight"]))}(Object.values(r).filter(n=>!n.indegree))},pf}function cg(){if(gf)return ff;gf=1;let n=(cf||(cf=1,df=function(n,e=[]){return e.map(e=>{let t=n.inEdges(e);if(t.length){let r=t.reduce((e,t)=>{let r=n.edge(t),o=n.node(t.v);return{sum:e.sum+r.weight*o.order,weight:e.weight+r.weight}},{sum:0,weight:0});return{v:e,barycenter:r.sum/r.weight,weight:r.weight}}return{v:e}})}),df),e=dg(),t=function(){if(mf)return bf;mf=1;let n=Jf();function e(n,e,t){let r;for(;e.length&&(r=e[e.length-1]).i<=t;)e.pop(),n.push(r.vs),t++;return t}return bf=function(t,r){let o=n.partition(t,n=>Object.hasOwn(n,"barycenter")),a=o.lhs,i=o.rhs.sort((n,e)=>e.i-n.i),s=[],l=0,d=0,c=0;var p;a.sort((p=!!r,(n,e)=>n.barycenter<e.barycenter?-1:n.barycenter>e.barycenter?1:p?e.i-n.i:n.i-e.i)),c=e(s,i,c),a.forEach(n=>{c+=n.vs.length,s.push(n.vs),l+=n.barycenter*n.weight,d+=n.weight,c=e(s,i,c)});let u={vs:s.flat(!0)};return d&&(u.barycenter=l/d,u.weight=d),u}}();return ff=function r(o,a,i,s){let l=o.children(a),d=o.node(a),c=d?d.borderLeft:void 0,p=d?d.borderRight:void 0,u={};c&&(l=l.filter(n=>n!==c&&n!==p));let b=n(o,l);b.forEach(n=>{if(o.children(n.v).length){let a=r(o,n.v,i,s);u[n.v]=a,Object.hasOwn(a,"barycenter")&&(t=a,void 0!==(e=n).barycenter?(e.barycenter=(e.barycenter*e.weight+t.barycenter*t.weight)/(e.weight+t.weight),e.weight+=t.weight):(e.barycenter=t.barycenter,e.weight=t.weight))}var e,t});let m=e(b,i);!function(n,e){n.forEach(n=>{n.vs=n.vs.flatMap(n=>e[n]?e[n].vs:n)})}(m,u);let f=t(m,s);if(c&&(f.vs=[c,f.vs,p].flat(!0),o.predecessors(c).length)){let n=o.node(o.predecessors(c)[0]),e=o.node(o.predecessors(p)[0]);Object.hasOwn(f,"barycenter")||(f.barycenter=0,f.weight=0),f.barycenter=(f.barycenter*f.weight+n.order+e.order)/(f.weight+2),f.weight+=2}return f},ff}function pg(){if(vf)return hf;vf=1;let n=Uf().Graph,e=Jf();return hf=function(t,r,o){let a=function(n){var t;for(;n.hasNode(t=e.uniqueId("_root")););return t}(t),i=new n({compound:!0}).setGraph({root:a}).setDefaultNodeLabel(n=>t.node(n));return t.nodes().forEach(n=>{let e=t.node(n),s=t.parent(n);(e.rank===r||e.minRank<=r&&r<=e.maxRank)&&(i.setNode(n),i.setParent(n,s||a),t[o](n).forEach(e=>{let r=e.v===n?e.w:e.v,o=i.edge(r,n),a=void 0!==o?o.weight:0;i.setEdge(r,n,{weight:t.edge(e).weight+a})}),Object.hasOwn(e,"minRank")&&i.setNode(n,{borderLeft:e.borderLeft[r],borderRight:e.borderRight[r]}))}),i},hf}function ug(){if(kf)return yf;kf=1;let n=function(){if(af)return of;af=1;let n=Jf();return of=function(e){let t={},r=e.nodes().filter(n=>!e.children(n).length),o=r.map(n=>e.node(n).rank),a=n.applyWithChunking(Math.max,o),i=n.range(a+1).map(()=>[]);return r.sort((n,t)=>e.node(n).rank-e.node(t).rank).forEach(function n(r){if(t[r])return;t[r]=!0;let o=e.node(r);i[o.rank].push(r),e.successors(r).forEach(n)}),i},of}(),e=function(){if(lf)return sf;lf=1;let n=Jf().zipObject;function e(e,t,r){let o=n(r,r.map((n,e)=>e)),a=t.flatMap(n=>e.outEdges(n).map(n=>({pos:o[n.w],weight:e.edge(n).weight})).sort((n,e)=>n.pos-e.pos)),i=1;for(;i<r.length;)i<<=1;let s=2*i-1;i-=1;let l=new Array(s).fill(0),d=0;return a.forEach(n=>{let e=n.pos+i;l[e]+=n.weight;let t=0;for(;e>0;)e%2&&(t+=l[e+1]),e=e-1>>1,l[e]+=n.weight;d+=n.weight*t}),d}return sf=function(n,t){let r=0;for(let o=1;o<t.length;++o)r+=e(n,t[o-1],t[o]);return r},sf}(),t=cg(),r=pg(),o=(wf||(wf=1,xf=function(n,e,t){let r,o={};t.forEach(t=>{let a,i,s=n.parent(t);for(;s;){if(a=n.parent(s),a?(i=o[a],o[a]=s):(i=r,r=s),i&&i!==s)return void e.setEdge(i,s);s=a}})}),xf),a=Uf().Graph,i=Jf();function s(n,e,t){return e.map(function(e){return r(n,e,t)})}function l(n,e){let r=new a;n.forEach(function(n){let a=n.graph().root,i=t(n,a,r,e);i.vs.forEach((e,t)=>n.node(e).order=t),o(n,r,i.vs)})}function d(n,e){Object.values(e).forEach(e=>e.forEach((e,t)=>n.node(e).order=t))}return yf=function t(r,o){if(o&&"function"==typeof o.customOrder)return void o.customOrder(r,t);let a=i.maxRank(r),c=s(r,i.range(1,a+1),"inEdges"),p=s(r,i.range(a-1,-1,-1),"outEdges"),u=n(r);if(d(r,u),o&&o.disableOptimalOrderHeuristic)return;let b,m=Number.POSITIVE_INFINITY;for(let n=0,t=0;t<4;++n,++t){l(n%2?c:p,n%4>=2),u=i.buildLayerMatrix(r);let o=e(r,u);o<m&&(t=0,b=Object.assign({},u),m=o)}d(r,b)},yf}function bg(){if(_f)return Ef;_f=1;let n=Uf().Graph,e=Jf();function t(n,e){let t={};return e.length&&e.reduce(function(e,r){let a=0,i=0,s=e.length,l=r[r.length-1];return r.forEach((e,d)=>{let c=function(n,e){if(n.node(e).dummy)return n.predecessors(e).find(e=>n.node(e).dummy)}(n,e),p=c?n.node(c).order:s;(c||e===l)&&(r.slice(i,d+1).forEach(e=>{n.predecessors(e).forEach(r=>{let i=n.node(r),s=i.order;!(s<a||p<s)||i.dummy&&n.node(e).dummy||o(t,r,e)})}),i=d+1,a=p)}),r}),t}function r(n,t){let r={};function a(t,a,i,s,l){let d;e.range(a,i).forEach(e=>{d=t[e],n.node(d).dummy&&n.predecessors(d).forEach(e=>{let t=n.node(e);t.dummy&&(t.order<s||t.order>l)&&o(r,e,d)})})}return t.length&&t.reduce(function(e,t){let r,o=-1,i=0;return t.forEach((s,l)=>{if("border"===n.node(s).dummy){let e=n.predecessors(s);e.length&&(r=n.node(e[0]).order,a(t,i,l,o,r),i=l,o=r)}a(t,i,t.length,r,e.length)}),t}),r}function o(n,e,t){if(e>t){let n=e;e=t,t=n}let r=n[e];r||(n[e]=r={}),r[t]=!0}function a(n,e,t){if(e>t){let n=e;e=t,t=n}return!!n[e]&&Object.hasOwn(n[e],t)}function i(n,e,t,r){let o={},i={},s={};return e.forEach(n=>{n.forEach((n,e)=>{o[n]=n,i[n]=n,s[n]=e})}),e.forEach(n=>{let e=-1;n.forEach(n=>{let l=r(n);if(l.length){l=l.sort((n,e)=>s[n]-s[e]);let r=(l.length-1)/2;for(let d=Math.floor(r),c=Math.ceil(r);d<=c;++d){let r=l[d];i[n]===n&&e<s[r]&&!a(t,n,r)&&(i[r]=n,i[n]=o[n]=o[r],e=s[r])}}})}),{root:o,align:i}}function s(e,t,r,o,a){let i={},s=function(e,t,r,o){let a=new n,i=e.graph(),s=function(n,e,t){return(r,o,a)=>{let i,s=r.node(o),l=r.node(a),d=0;if(d+=s.width/2,Object.hasOwn(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":i=-s.width/2;break;case"r":i=s.width/2}if(i&&(d+=t?i:-i),i=0,d+=(s.dummy?e:n)/2,d+=(l.dummy?e:n)/2,d+=l.width/2,Object.hasOwn(l,"labelpos"))switch(l.labelpos.toLowerCase()){case"l":i=l.width/2;break;case"r":i=-l.width/2}return i&&(d+=t?i:-i),i=0,d}}(i.nodesep,i.edgesep,o);return t.forEach(n=>{let t;n.forEach(n=>{let o=r[n];if(a.setNode(o),t){var i=r[t],l=a.edge(i,o);a.setEdge(i,o,Math.max(s(e,n,t),l||0))}t=n})}),a}(e,t,r,a),l=a?"borderLeft":"borderRight";function d(n,e){let t=s.nodes(),r=t.pop(),o={};for(;r;)o[r]?n(r):(o[r]=!0,t.push(r),t=t.concat(e(r))),r=t.pop()}return d(function(n){i[n]=s.inEdges(n).reduce((n,e)=>Math.max(n,i[e.v]+s.edge(e)),0)},s.predecessors.bind(s)),d(function(n){let t=s.outEdges(n).reduce((n,e)=>Math.min(n,i[e.w]-s.edge(e)),Number.POSITIVE_INFINITY),r=e.node(n);t!==Number.POSITIVE_INFINITY&&r.borderType!==l&&(i[n]=Math.max(i[n],t))},s.successors.bind(s)),Object.keys(o).forEach(n=>i[n]=i[r[n]]),i}function l(n,e){return Object.values(e).reduce((e,t)=>{let r=Number.NEGATIVE_INFINITY,o=Number.POSITIVE_INFINITY;Object.entries(t).forEach(([e,t])=>{let a=function(n,e){return n.node(e).width}(n,e)/2;r=Math.max(t+a,r),o=Math.min(t-a,o)});const a=r-o;return a<e[0]&&(e=[a,t]),e},[Number.POSITIVE_INFINITY,null])[1]}function d(n,t){let r=Object.values(t),o=e.applyWithChunking(Math.min,r),a=e.applyWithChunking(Math.max,r);["u","d"].forEach(r=>{["l","r"].forEach(i=>{let s=r+i,l=n[s];if(l===t)return;let d=Object.values(l),c=o-e.applyWithChunking(Math.min,d);"l"!==i&&(c=a-e.applyWithChunking(Math.max,d)),c&&(n[s]=e.mapValues(l,n=>n+c))})})}function c(n,t){return e.mapValues(n.ul,(e,r)=>{if(t)return n[t.toLowerCase()][r];{let e=Object.values(n).map(n=>n[r]).sort((n,e)=>n-e);return(e[1]+e[2])/2}})}return Ef={positionX:function(n){let o,a=e.buildLayerMatrix(n),p=Object.assign(t(n,a),r(n,a)),u={};["u","d"].forEach(t=>{o="u"===t?a:Object.values(a).reverse(),["l","r"].forEach(r=>{"r"===r&&(o=o.map(n=>Object.values(n).reverse()));let a=("u"===t?n.predecessors:n.successors).bind(n),l=i(n,o,p,a),d=s(n,o,l.root,l.align,"r"===r);"r"===r&&(d=e.mapValues(d,n=>-n)),u[t+r]=d})});let b=l(n,u);return d(u,b),c(u,n.graph().align)},findType1Conflicts:t,findType2Conflicts:r,addConflict:o,hasConflict:a,verticalAlignment:i,horizontalCompaction:s,alignCoordinates:d,findSmallestWidthAlignment:l,balance:c}}function mg(){if(Of)return Sf;Of=1;let n=Jf(),e=bg().positionX;return Sf=function(t){(function(e){let t=n.buildLayerMatrix(e),r=e.graph().ranksep,o=0;t.forEach(n=>{const t=n.reduce((n,t)=>{const r=e.node(t).height;return n>r?n:r},0);n.forEach(n=>e.node(n).y=o+t/2),o+=t+r})})(t=n.asNonCompoundGraph(t)),Object.entries(e(t)).forEach(([n,e])=>t.node(n).x=e)},Sf}function fg(){if(Nf)return Cf;Nf=1;let n=ng(),e=eg(),t=ag(),r=Jf().normalizeRanks,o=ig(),a=Jf().removeEmptyRanks,i=sg(),s=function(){if(ef)return nf;ef=1;let n=Jf();function e(e,t,r,o,a,i){let s={width:0,height:0,rank:i,borderType:t},l=a[t][i-1],d=n.addDummyNode(e,"border",s,r);a[t][i]=d,e.setParent(d,o),l&&e.setEdge(l,d,{weight:1})}return nf=function(n){n.children().forEach(function t(r){let o=n.children(r),a=n.node(r);if(o.length&&o.forEach(t),Object.hasOwn(a,"minRank")){a.borderLeft=[],a.borderRight=[];for(let t=a.minRank,o=a.maxRank+1;t<o;++t)e(n,"borderLeft","_bl",r,a,t),e(n,"borderRight","_br",r,a,t)}})},nf}(),l=lg(),d=ug(),c=mg(),p=Jf(),u=Uf().Graph;Cf=function(E,_){let S=_&&_.debugTiming?p.time:p.notime;S("layout",()=>{let O=S(" buildLayoutGraph",()=>function(n){let e=new u({multigraph:!0,compound:!0}),t=k(n.graph());return e.setGraph(Object.assign({},m,y(t,b),p.pick(t,f))),n.nodes().forEach(t=>{const r=y(k(n.node(t)),g);Object.keys(h).forEach(n=>{void 0===r[n]&&(r[n]=h[n])}),e.setNode(t,r),e.setParent(t,n.parent(t))}),n.edges().forEach(t=>{let r=k(n.edge(t));e.setEdge(t,Object.assign({},x,y(r,v),p.pick(r,w)))}),e}(E));S(" runLayout",()=>function(u,b,m){b(" makeSpaceForEdgeLabels",()=>function(n){let e=n.graph();e.ranksep/=2,n.edges().forEach(t=>{let r=n.edge(t);r.minlen*=2,"c"!==r.labelpos.toLowerCase()&&("TB"===e.rankdir||"BT"===e.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)})}(u)),b(" removeSelfEdges",()=>function(n){n.edges().forEach(e=>{if(e.v===e.w){var t=n.node(e.v);t.selfEdges||(t.selfEdges=[]),t.selfEdges.push({e:e,label:n.edge(e)}),n.removeEdge(e)}})}(u)),b(" acyclic",()=>n.run(u)),b(" nestingGraph.run",()=>i.run(u)),b(" rank",()=>t(p.asNonCompoundGraph(u))),b(" injectEdgeLabelProxies",()=>function(n){n.edges().forEach(e=>{let t=n.edge(e);if(t.width&&t.height){let t=n.node(e.v),r={rank:(n.node(e.w).rank-t.rank)/2+t.rank,e:e};p.addDummyNode(n,"edge-proxy",r,"_ep")}})}(u)),b(" removeEmptyRanks",()=>a(u)),b(" nestingGraph.cleanup",()=>i.cleanup(u)),b(" normalizeRanks",()=>r(u)),b(" assignRankMinMax",()=>function(n){let e=0;n.nodes().forEach(t=>{let r=n.node(t);r.borderTop&&(r.minRank=n.node(r.borderTop).rank,r.maxRank=n.node(r.borderBottom).rank,e=Math.max(e,r.maxRank))}),n.graph().maxRank=e}(u)),b(" removeEdgeLabelProxies",()=>function(n){n.nodes().forEach(e=>{let t=n.node(e);"edge-proxy"===t.dummy&&(n.edge(t.e).labelRank=t.rank,n.removeNode(e))})}(u)),b(" normalize.run",()=>e.run(u)),b(" parentDummyChains",()=>o(u)),b(" addBorderSegments",()=>s(u)),b(" order",()=>d(u,m)),b(" insertSelfEdges",()=>function(n){var e=p.buildLayerMatrix(n);e.forEach(e=>{var t=0;e.forEach((e,r)=>{var o=n.node(e);o.order=r+t,(o.selfEdges||[]).forEach(e=>{p.addDummyNode(n,"selfedge",{width:e.label.width,height:e.label.height,rank:o.rank,order:r+ ++t,e:e.e,label:e.label},"_se")}),delete o.selfEdges})})}(u)),b(" adjustCoordinateSystem",()=>l.adjust(u)),b(" position",()=>c(u)),b(" positionSelfEdges",()=>function(n){n.nodes().forEach(e=>{var t=n.node(e);if("selfedge"===t.dummy){var r=n.node(t.e.v),o=r.x+r.width/2,a=r.y,i=t.x-o,s=r.height/2;n.setEdge(t.e,t.label),n.removeNode(e),t.label.points=[{x:o+2*i/3,y:a-s},{x:o+5*i/6,y:a-s},{x:o+i,y:a},{x:o+5*i/6,y:a+s},{x:o+2*i/3,y:a+s}],t.label.x=t.x,t.label.y=t.y}})}(u)),b(" removeBorderNodes",()=>function(n){n.nodes().forEach(e=>{if(n.children(e).length){let t=n.node(e),r=n.node(t.borderTop),o=n.node(t.borderBottom),a=n.node(t.borderLeft[t.borderLeft.length-1]),i=n.node(t.borderRight[t.borderRight.length-1]);t.width=Math.abs(i.x-a.x),t.height=Math.abs(o.y-r.y),t.x=a.x+t.width/2,t.y=r.y+t.height/2}}),n.nodes().forEach(e=>{"border"===n.node(e).dummy&&n.removeNode(e)})}(u)),b(" normalize.undo",()=>e.undo(u)),b(" fixupEdgeLabelCoords",()=>function(n){n.edges().forEach(e=>{let t=n.edge(e);if(Object.hasOwn(t,"x"))switch("l"!==t.labelpos&&"r"!==t.labelpos||(t.width-=t.labeloffset),t.labelpos){case"l":t.x-=t.width/2+t.labeloffset;break;case"r":t.x+=t.width/2+t.labeloffset}})}(u)),b(" undoCoordinateSystem",()=>l.undo(u)),b(" translateGraph",()=>function(n){let e=Number.POSITIVE_INFINITY,t=0,r=Number.POSITIVE_INFINITY,o=0,a=n.graph(),i=a.marginx||0,s=a.marginy||0;function l(n){let a=n.x,i=n.y,s=n.width,l=n.height;e=Math.min(e,a-s/2),t=Math.max(t,a+s/2),r=Math.min(r,i-l/2),o=Math.max(o,i+l/2)}n.nodes().forEach(e=>l(n.node(e))),n.edges().forEach(e=>{let t=n.edge(e);Object.hasOwn(t,"x")&&l(t)}),e-=i,r-=s,n.nodes().forEach(t=>{let o=n.node(t);o.x-=e,o.y-=r}),n.edges().forEach(t=>{let o=n.edge(t);o.points.forEach(n=>{n.x-=e,n.y-=r}),Object.hasOwn(o,"x")&&(o.x-=e),Object.hasOwn(o,"y")&&(o.y-=r)}),a.width=t-e+i,a.height=o-r+s}(u)),b(" assignNodeIntersects",()=>function(n){n.edges().forEach(e=>{let t,r,o=n.edge(e),a=n.node(e.v),i=n.node(e.w);o.points?(t=o.points[0],r=o.points[o.points.length-1]):(o.points=[],t=i,r=a),o.points.unshift(p.intersectRect(a,t)),o.points.push(p.intersectRect(i,r))})}(u)),b(" reversePoints",()=>function(n){n.edges().forEach(e=>{let t=n.edge(e);t.reversed&&t.points.reverse()})}(u)),b(" acyclic.undo",()=>n.undo(u))}(O,S,_)),S(" updateInputGraph",()=>function(n,e){n.nodes().forEach(t=>{let r=n.node(t),o=e.node(t);r&&(r.x=o.x,r.y=o.y,r.rank=o.rank,e.children(t).length&&(r.width=o.width,r.height=o.height))}),n.edges().forEach(t=>{let r=n.edge(t),o=e.edge(t);r.points=o.points,Object.hasOwn(o,"x")&&(r.x=o.x,r.y=o.y)}),n.graph().width=e.graph().width,n.graph().height=e.graph().height}(E,O))})};let b=["nodesep","edgesep","ranksep","marginx","marginy"],m={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},f=["acyclicer","ranker","rankdir","align"],g=["width","height","rank"],h={width:0,height:0},v=["minlen","weight","width","height","labeloffset"],x={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},w=["labelpos"];function y(n,e){return p.mapValues(p.pick(n,e),Number)}function k(n){var e={};return n&&Object.entries(n).forEach(([n,t])=>{"string"==typeof n&&(n=n.toLowerCase()),e[n]=t}),e}return Cf}function gg(){if(zf)return jf;zf=1;let n=Jf(),e=Uf().Graph;return jf={debugOrdering:function(t){let r=n.buildLayerMatrix(t),o=new e({compound:!0,multigraph:!0}).setGraph({});return t.nodes().forEach(n=>{o.setNode(n,{label:n}),o.setParent(n,"layer"+t.node(n).rank)}),t.edges().forEach(n=>o.setEdge(n.v,n.w,{},n.name)),r.forEach((n,e)=>{let t="layer"+e;o.setNode(t,{rank:"same"}),n.reduce((n,e)=>(o.setEdge(n,e,{style:"invis"}),e))}),o}},jf}a("/* this gets exported as style.css and can be used for the default theming */\n/* these are the necessary styles for React/Svelte Flow, they get used by base.css and style.css */\n.react-flow {\n direction: ltr;\n\n --xy-edge-stroke-default: #b1b1b7;\n --xy-edge-stroke-width-default: 1;\n --xy-edge-stroke-selected-default: #555;\n\n --xy-connectionline-stroke-default: #b1b1b7;\n --xy-connectionline-stroke-width-default: 1;\n\n --xy-attribution-background-color-default: rgba(255, 255, 255, 0.5);\n\n --xy-minimap-background-color-default: #fff;\n --xy-minimap-mask-background-color-default: rgba(240, 240, 240, 0.6);\n --xy-minimap-mask-stroke-color-default: transparent;\n --xy-minimap-mask-stroke-width-default: 1;\n --xy-minimap-node-background-color-default: #e2e2e2;\n --xy-minimap-node-stroke-color-default: transparent;\n --xy-minimap-node-stroke-width-default: 2;\n\n --xy-background-color-default: transparent;\n --xy-background-pattern-dots-color-default: #91919a;\n --xy-background-pattern-lines-color-default: #eee;\n --xy-background-pattern-cross-color-default: #e2e2e2;\n background-color: var(--xy-background-color, var(--xy-background-color-default));\n --xy-node-color-default: inherit;\n --xy-node-border-default: 1px solid #1a192b;\n --xy-node-background-color-default: #fff;\n --xy-node-group-background-color-default: rgba(240, 240, 240, 0.25);\n --xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, 0.08);\n --xy-node-boxshadow-selected-default: 0 0 0 0.5px #1a192b;\n --xy-node-border-radius-default: 3px;\n\n --xy-handle-background-color-default: #1a192b;\n --xy-handle-border-color-default: #fff;\n\n --xy-selection-background-color-default: rgba(0, 89, 220, 0.08);\n --xy-selection-border-default: 1px dotted rgba(0, 89, 220, 0.8);\n\n --xy-controls-button-background-color-default: #fefefe;\n --xy-controls-button-background-color-hover-default: #f4f4f4;\n --xy-controls-button-color-default: inherit;\n --xy-controls-button-color-hover-default: inherit;\n --xy-controls-button-border-color-default: #eee;\n --xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, 0.08);\n\n --xy-edge-label-background-color-default: #ffffff;\n --xy-edge-label-color-default: inherit;\n --xy-resize-background-color-default: #3367d9;\n}\n.react-flow.dark {\n --xy-edge-stroke-default: #3e3e3e;\n --xy-edge-stroke-width-default: 1;\n --xy-edge-stroke-selected-default: #727272;\n\n --xy-connectionline-stroke-default: #b1b1b7;\n --xy-connectionline-stroke-width-default: 1;\n\n --xy-attribution-background-color-default: rgba(150, 150, 150, 0.25);\n\n --xy-minimap-background-color-default: #141414;\n --xy-minimap-mask-background-color-default: rgba(60, 60, 60, 0.6);\n --xy-minimap-mask-stroke-color-default: transparent;\n --xy-minimap-mask-stroke-width-default: 1;\n --xy-minimap-node-background-color-default: #2b2b2b;\n --xy-minimap-node-stroke-color-default: transparent;\n --xy-minimap-node-stroke-width-default: 2;\n\n --xy-background-color-default: #141414;\n --xy-background-pattern-dots-color-default: #777;\n --xy-background-pattern-lines-color-default: #777;\n --xy-background-pattern-cross-color-default: #777;\n --xy-node-color-default: #f8f8f8;\n --xy-node-border-default: 1px solid #3c3c3c;\n --xy-node-background-color-default: #1e1e1e;\n --xy-node-group-background-color-default: rgba(240, 240, 240, 0.25);\n --xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, 0.08);\n --xy-node-boxshadow-selected-default: 0 0 0 0.5px #999;\n\n --xy-handle-background-color-default: #bebebe;\n --xy-handle-border-color-default: #1e1e1e;\n\n --xy-selection-background-color-default: rgba(200, 200, 220, 0.08);\n --xy-selection-border-default: 1px dotted rgba(200, 200, 220, 0.8);\n\n --xy-controls-button-background-color-default: #2b2b2b;\n --xy-controls-button-background-color-hover-default: #3e3e3e;\n --xy-controls-button-color-default: #f8f8f8;\n --xy-controls-button-color-hover-default: #fff;\n --xy-controls-button-border-color-default: #5b5b5b;\n --xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, 0.08);\n\n --xy-edge-label-background-color-default: #141414;\n --xy-edge-label-color-default: #f8f8f8;\n}\n.react-flow__background {\n background-color: var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));\n pointer-events: none;\n z-index: -1;\n}\n.react-flow__container {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n}\n.react-flow__pane {\n z-index: 1;\n}\n.react-flow__pane.draggable {\n cursor: grab;\n }\n.react-flow__pane.dragging {\n cursor: grabbing;\n }\n.react-flow__pane.selection {\n cursor: pointer;\n }\n.react-flow__viewport {\n transform-origin: 0 0;\n z-index: 2;\n pointer-events: none;\n}\n.react-flow__renderer {\n z-index: 4;\n}\n.react-flow__selection {\n z-index: 6;\n}\n.react-flow__nodesselection-rect:focus,\n.react-flow__nodesselection-rect:focus-visible {\n outline: none;\n}\n.react-flow__edge-path {\n stroke: var(--xy-edge-stroke, var(--xy-edge-stroke-default));\n stroke-width: var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));\n fill: none;\n}\n.react-flow__connection-path {\n stroke: var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));\n stroke-width: var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));\n fill: none;\n}\n.react-flow .react-flow__edges {\n position: absolute;\n}\n.react-flow .react-flow__edges svg {\n overflow: visible;\n position: absolute;\n pointer-events: none;\n }\n.react-flow__edge {\n pointer-events: visibleStroke;\n}\n.react-flow__edge.selectable {\n cursor: pointer;\n }\n.react-flow__edge.animated path {\n stroke-dasharray: 5;\n animation: dashdraw 0.5s linear infinite;\n }\n.react-flow__edge.animated path.react-flow__edge-interaction {\n stroke-dasharray: none;\n animation: none;\n }\n.react-flow__edge.inactive {\n pointer-events: none;\n }\n.react-flow__edge.selected,\n .react-flow__edge:focus,\n .react-flow__edge:focus-visible {\n outline: none;\n }\n.react-flow__edge.selected .react-flow__edge-path,\n .react-flow__edge.selectable:focus .react-flow__edge-path,\n .react-flow__edge.selectable:focus-visible .react-flow__edge-path {\n stroke: var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default));\n }\n.react-flow__edge-textwrapper {\n pointer-events: all;\n }\n.react-flow__edge .react-flow__edge-text {\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n }\n.react-flow__connection {\n pointer-events: none;\n}\n.react-flow__connection .animated {\n stroke-dasharray: 5;\n animation: dashdraw 0.5s linear infinite;\n }\nsvg.react-flow__connectionline {\n z-index: 1001;\n overflow: visible;\n position: absolute;\n}\n.react-flow__nodes {\n pointer-events: none;\n transform-origin: 0 0;\n}\n.react-flow__node {\n position: absolute;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n pointer-events: all;\n transform-origin: 0 0;\n box-sizing: border-box;\n cursor: default;\n}\n.react-flow__node.selectable {\n cursor: pointer;\n }\n.react-flow__node.draggable {\n cursor: grab;\n pointer-events: all;\n }\n.react-flow__node.draggable.dragging {\n cursor: grabbing;\n }\n.react-flow__nodesselection {\n z-index: 3;\n transform-origin: left top;\n pointer-events: none;\n}\n.react-flow__nodesselection-rect {\n position: absolute;\n pointer-events: all;\n cursor: grab;\n }\n.react-flow__handle {\n position: absolute;\n pointer-events: none;\n min-width: 5px;\n min-height: 5px;\n width: 6px;\n height: 6px;\n background-color: var(--xy-handle-background-color, var(--xy-handle-background-color-default));\n border: 1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));\n border-radius: 100%;\n}\n.react-flow__handle.connectingfrom {\n pointer-events: all;\n }\n.react-flow__handle.connectionindicator {\n pointer-events: all;\n cursor: crosshair;\n }\n.react-flow__handle-bottom {\n top: auto;\n left: 50%;\n bottom: 0;\n transform: translate(-50%, 50%);\n }\n.react-flow__handle-top {\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n.react-flow__handle-left {\n top: 50%;\n left: 0;\n transform: translate(-50%, -50%);\n }\n.react-flow__handle-right {\n top: 50%;\n right: 0;\n transform: translate(50%, -50%);\n }\n.react-flow__edgeupdater {\n cursor: move;\n pointer-events: all;\n}\n.react-flow__pane.selection .react-flow__panel {\n pointer-events: none;\n}\n.react-flow__panel {\n position: absolute;\n z-index: 5;\n margin: 15px;\n}\n.react-flow__panel.top {\n top: 0;\n }\n.react-flow__panel.bottom {\n bottom: 0;\n }\n.react-flow__panel.top.center, .react-flow__panel.bottom.center {\n left: 50%;\n transform: translateX(-15px) translateX(-50%);\n }\n.react-flow__panel.left {\n left: 0;\n }\n.react-flow__panel.right {\n right: 0;\n }\n.react-flow__panel.left.center, .react-flow__panel.right.center {\n top: 50%;\n transform: translateY(-15px) translateY(-50%);\n }\n.react-flow__attribution {\n font-size: 10px;\n background: var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));\n padding: 2px 3px;\n margin: 0;\n}\n.react-flow__attribution a {\n text-decoration: none;\n color: #999;\n }\n@keyframes dashdraw {\n from {\n stroke-dashoffset: 10;\n }\n}\n.react-flow__edgelabel-renderer {\n position: absolute;\n width: 100%;\n height: 100%;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n left: 0;\n top: 0;\n}\n.react-flow__viewport-portal {\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0;\n top: 0;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.react-flow__minimap {\n background: var(\n --xy-minimap-background-color-props,\n var(--xy-minimap-background-color, var(--xy-minimap-background-color-default))\n );\n}\n.react-flow__minimap-svg {\n display: block;\n }\n.react-flow__minimap-mask {\n fill: var(\n --xy-minimap-mask-background-color-props,\n var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default))\n );\n stroke: var(\n --xy-minimap-mask-stroke-color-props,\n var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default))\n );\n stroke-width: var(\n --xy-minimap-mask-stroke-width-props,\n var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default))\n );\n }\n.react-flow__minimap-node {\n fill: var(\n --xy-minimap-node-background-color-props,\n var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default))\n );\n stroke: var(\n --xy-minimap-node-stroke-color-props,\n var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default))\n );\n stroke-width: var(\n --xy-minimap-node-stroke-width-props,\n var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default))\n );\n }\n.react-flow__background-pattern.dots {\n fill: var(\n --xy-background-pattern-color-props,\n var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default))\n );\n }\n.react-flow__background-pattern.lines {\n stroke: var(\n --xy-background-pattern-color-props,\n var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default))\n );\n }\n.react-flow__background-pattern.cross {\n stroke: var(\n --xy-background-pattern-color-props,\n var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default))\n );\n }\n.react-flow__controls {\n display: flex;\n flex-direction: column;\n box-shadow: var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default));\n}\n.react-flow__controls.horizontal {\n flex-direction: row;\n }\n.react-flow__controls-button {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 26px;\n width: 26px;\n padding: 4px;\n border: none;\n background: var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));\n border-bottom: 1px solid\n var(\n --xy-controls-button-border-color-props,\n var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default))\n );\n color: var(\n --xy-controls-button-color-props,\n var(--xy-controls-button-color, var(--xy-controls-button-color-default))\n );\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n }\n.react-flow__controls-button svg {\n width: 100%;\n max-width: 12px;\n max-height: 12px;\n fill: currentColor;\n }\n.react-flow__edge.updating .react-flow__edge-path {\n stroke: #777;\n }\n.react-flow__edge-text {\n font-size: 10px;\n }\n.react-flow__node.selectable:focus,\n .react-flow__node.selectable:focus-visible {\n outline: none;\n }\n.react-flow__node-input,\n.react-flow__node-default,\n.react-flow__node-output,\n.react-flow__node-group {\n padding: 10px;\n border-radius: var(--xy-node-border-radius, var(--xy-node-border-radius-default));\n width: 150px;\n font-size: 12px;\n color: var(--xy-node-color, var(--xy-node-color-default));\n text-align: center;\n border: var(--xy-node-border, var(--xy-node-border-default));\n background-color: var(--xy-node-background-color, var(--xy-node-background-color-default));\n}\n.react-flow__node-input.selectable:hover, .react-flow__node-default.selectable:hover, .react-flow__node-output.selectable:hover, .react-flow__node-group.selectable:hover {\n box-shadow: var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default));\n }\n.react-flow__node-input.selectable.selected,\n .react-flow__node-input.selectable:focus,\n .react-flow__node-input.selectable:focus-visible,\n .react-flow__node-default.selectable.selected,\n .react-flow__node-default.selectable:focus,\n .react-flow__node-default.selectable:focus-visible,\n .react-flow__node-output.selectable.selected,\n .react-flow__node-output.selectable:focus,\n .react-flow__node-output.selectable:focus-visible,\n .react-flow__node-group.selectable.selected,\n .react-flow__node-group.selectable:focus,\n .react-flow__node-group.selectable:focus-visible {\n box-shadow: var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default));\n }\n.react-flow__node-group {\n background-color: var(--xy-node-group-background-color, var(--xy-node-group-background-color-default));\n}\n.react-flow__nodesselection-rect,\n.react-flow__selection {\n background: var(--xy-selection-background-color, var(--xy-selection-background-color-default));\n border: var(--xy-selection-border, var(--xy-selection-border-default));\n}\n.react-flow__nodesselection-rect:focus,\n .react-flow__nodesselection-rect:focus-visible,\n .react-flow__selection:focus,\n .react-flow__selection:focus-visible {\n outline: none;\n }\n.react-flow__controls-button:hover {\n background: var(\n --xy-controls-button-background-color-hover-props,\n var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default))\n );\n color: var(\n --xy-controls-button-color-hover-props,\n var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default))\n );\n }\n.react-flow__controls-button:disabled {\n pointer-events: none;\n }\n.react-flow__controls-button:disabled svg {\n fill-opacity: 0.4;\n }\n.react-flow__controls-button:last-child {\n border-bottom: none;\n }\n.react-flow__controls.horizontal .react-flow__controls-button {\n border-bottom: none;\n border-right: 1px solid\n var(\n --xy-controls-button-border-color-props,\n var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default))\n );\n }\n.react-flow__controls.horizontal .react-flow__controls-button:last-child {\n border-right: none;\n }\n.react-flow__resize-control {\n position: absolute;\n}\n.react-flow__resize-control.left,\n.react-flow__resize-control.right {\n cursor: ew-resize;\n}\n.react-flow__resize-control.top,\n.react-flow__resize-control.bottom {\n cursor: ns-resize;\n}\n.react-flow__resize-control.top.left,\n.react-flow__resize-control.bottom.right {\n cursor: nwse-resize;\n}\n.react-flow__resize-control.bottom.left,\n.react-flow__resize-control.top.right {\n cursor: nesw-resize;\n}\n/* handle styles */\n.react-flow__resize-control.handle {\n width: 5px;\n height: 5px;\n border: 1px solid #fff;\n border-radius: 1px;\n background-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default));\n translate: -50% -50%;\n}\n.react-flow__resize-control.handle.left {\n left: 0;\n top: 50%;\n}\n.react-flow__resize-control.handle.right {\n left: 100%;\n top: 50%;\n}\n.react-flow__resize-control.handle.top {\n left: 50%;\n top: 0;\n}\n.react-flow__resize-control.handle.bottom {\n left: 50%;\n top: 100%;\n}\n.react-flow__resize-control.handle.top.left {\n left: 0;\n}\n.react-flow__resize-control.handle.bottom.left {\n left: 0;\n}\n.react-flow__resize-control.handle.top.right {\n left: 100%;\n}\n.react-flow__resize-control.handle.bottom.right {\n left: 100%;\n}\n/* line styles */\n.react-flow__resize-control.line {\n border-color: var(--xy-resize-background-color, var(--xy-resize-background-color-default));\n border-width: 0;\n border-style: solid;\n}\n.react-flow__resize-control.line.left,\n.react-flow__resize-control.line.right {\n width: 1px;\n transform: translate(-50%, 0);\n top: 0;\n height: 100%;\n}\n.react-flow__resize-control.line.left {\n left: 0;\n border-left-width: 1px;\n}\n.react-flow__resize-control.line.right {\n left: 100%;\n border-right-width: 1px;\n}\n.react-flow__resize-control.line.top,\n.react-flow__resize-control.line.bottom {\n height: 1px;\n transform: translate(0, -50%);\n left: 0;\n width: 100%;\n}\n.react-flow__resize-control.line.top {\n top: 0;\n border-top-width: 1px;\n}\n.react-flow__resize-control.line.bottom {\n border-bottom-width: 1px;\n top: 100%;\n}\n.react-flow__edge-textbg {\n fill: var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default));\n}\n.react-flow__edge-text {\n fill: var(--xy-edge-label-color, var(--xy-edge-label-color-default));\n}\n");var hg=i(If?Rf:(If=1,Rf={graphlib:Uf(),layout:fg(),debug:gg(),util:{time:Jf().time,notime:Jf().notime},version:Pf?Mf:(Pf=1,Mf="1.1.5")})),vg={type:Bl.ArrowClosed,width:20,height:20,color:"#FF0072"},xg={strokeWidth:2,stroke:"#FF0072"},wg=function(t){var r=t.tree,o=Xp().fitView,a=function(n){const[t,r]=e.useState(n),o=e.useCallback(n=>r(e=>Rp(n,e)),[]);return[t,r,o]}([]),i=G(a,3),s=i[0],l=i[1],d=i[2],c=function(n){const[t,r]=e.useState(n),o=e.useCallback(n=>r(e=>Ip(n,e)),[]);return[t,r,o]}([]),p=G(c,3),u=p[0],b=p[1],m=p[2];return e.useEffect(function(){if(r){var n,e=function(n,e){var t=[],r=[];return Object.keys(n).forEach(function(o,a){n[o].forEach(function(n,a){var i={id:n,flowId:n,position:{x:250,y:200*a},data:{label:String(n)}};if(0==a&&(i.type="input"),a>0){var s=r[r.length-1],l={id:s.flowId+"-"+o+"-"+a+"-"+i.flowId,source:s.flowId,target:i.flowId,animated:e,markerEnd:vg,style:xg};t.push(l)}r.push(i)})}),{nodes:r,edges:t}}(r.data,null!==(n=r.animated)&&void 0!==n&&n),t=function(n,e,t){var r=(new hg.graphlib.Graph).setDefaultEdgeLabel(function(){return{}});return r.setGraph({rankdir:t.direction,ranksep:100,nodesep:170}),e.forEach(function(n){return r.setEdge(n.source,n.target)}),n.forEach(function(n){var e,t,o,a;return r.setNode(n.id,Y(Y({},n),{},{width:null!==(e=null===(t=n.measured)||void 0===t?void 0:t.width)&&void 0!==e?e:0,height:null!==(o=null===(a=n.measured)||void 0===a?void 0:a.height)&&void 0!==o?o:0}))}),hg.layout(r),{nodes:n.map(function(n){var e,t,o,a,i=r.node(n.id),s=i.x-(null!==(e=null===(t=n.measured)||void 0===t?void 0:t.width)&&void 0!==e?e:0)/2,l=i.y-(null!==(o=null===(a=n.measured)||void 0===a?void 0:a.height)&&void 0!==o?o:0)/2;return Y(Y({},n),{},{position:{x:s,y:l}})}),edges:e}}(e.nodes,e.edges,{direction:r.orientation});l(X(t.nodes)),b(X(t.edges)),o()}},[r]),n.jsx(_b,{nodes:s,edges:u,onNodesChange:d,onEdgesChange:m,colorMode:"dark",fitView:!0,children:n.jsx(Lb,{})})};a('.file-browser {\n width: 100%;\n height: 100%;\n padding: 5px;\n color: white;\n}\n\n.file-node-row {\n width: 100%;\n min-width: 200px;\n display: flex;\n padding: 5px 0;\n font-size: 13px;\n font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;\n cursor: pointer;\n}\n\n.indent {\n height: 100%;\n}\n\n.center {\n display: flex;\n align-self: center;\n}\n\n.folder-icon {\n display: flex;\n margin-right: 5px;\n}\n\n.file-icon {\n margin-right: 5px;\n font-size: 16px;\n}\n\n.file-name {\n color: #CCC;\n}');var yg=function(n,e){e||(e=0);for(var t=[],r=0;r<n.length;r++){var o=n[r];o.level=e,t.push(o),null!=o&&o.children&&(t=t.concat(yg(o.children,e+1)))}return t};var kg=function(e){var r=e.id,o=e.node,a=e.onRowClick,i=t.useDraggable({id:r}),s=i.attributes,l=i.listeners,d=i.setNodeRef;i.transform;return n.jsxs("div",Y(Y(Y({className:"file-node-row",ref:d},l),s),{},{style:function(){if(o.selected)return{backgroundColor:"#00426b"}}(),onClick:function(){return a(o)},children:[n.jsx("div",{className:"indent",style:{width:20*o.level+"px"}}),"folder"===o.type?n.jsx("span",{className:"center folder-icon",children:o.collapsed?n.jsx(ee,{}):n.jsx(Qn,{})}):n.jsx("span",{className:"center file-icon",children:function(){switch(o.name.split(".").pop()){case"js":return n.jsx(se,{color:"#f1e05a"});case"json":return n.jsx(Zn,{color:"#fffb00"});case"scss":return n.jsx(be,{color:"#f12727"});case"py":return n.jsx(ce,{color:"#686affbd"});default:return n.jsx(oe,{color:"#ffffff"})}}()}),n.jsx("span",{className:"center file-name",children:o.name})]}))};a(".editorContainer {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.tabContainer {\n width: 100%;\n height: 40px;\n}\n\n.monacoContainer {\n flex-grow: 1;\n}");a("");var Eg=function(t){var r=t.editorContent,o=e.useRef(null),a=e.useRef();return e.useEffect(function(){a.current=r,null!=o&&o.current&&a.current&&o.current.setValue(a.current)},[r]),n.jsx(Gn,{defaultLanguage:"python",defaultValue:"",onMount:function(n,e){o.current=n,null!=a&&a.current&&o.current.setValue(a.current)},theme:"vs-dark",options:{scrollBeyondLastLine:!1,fontSize:"12px",minimap:{enabled:!1}}})};Eg.propTypes={editorContent:A.string};function _g(e){var r=e.id,o=e.label,a=e.onSelectTab,i=t.useDraggable({id:r}),s=i.attributes,l=i.listeners,d=i.setNodeRef;return i.transform,n.jsx("div",Y(Y(Y({ref:d,id:r,onClick:a,className:"tab"},l),s),{},{children:o}))}function Sg(e){var r=e.id,o=t.useDroppable({id:r}),a=o.setNodeRef,i=o.isOver;return n.jsx("div",{className:"gutter",ref:a,style:{background:i?"white":"#4da3ff33"}})}a(".tabs {\n display: flex;\n flex-direction: row;\n background-color: #1e1e1e;\n height: 100%;\n width: 100%;\n}\n\n.tab {\n padding: 0px 20px;\n background-color: #2d2d2d;\n color: #fff;\n cursor: pointer;\n height: 40px;\n display: flex;\n align-items: center;\n}\n\n.gutter {\n height: 40px;\n width: 1px;\n}");var Og=function(t){t.activeTab;var r=t.tabs,o=t.selectTab,a=G(e.useState(),2),i=a[0],s=a[1];return e.useEffect(function(){if(r){var e=[];r.forEach(function(t,r){e.push(n.jsxs(n.Fragment,{children:[n.jsx(Sg,{id:t.id}),n.jsx(_g,Y({onSelectTab:o},t),t.id)]}))}),s(e)}},[r]),n.jsx("div",{style:{display:"flex",background:"#222425"},children:i})};Og.propTypes={};var Cg=function(t){t.systemTree,t.onFileSelect;var r=G(e.useState("asdf"),2),o=r[0],a=r[1],i=G(e.useState(),2),s=i[0],l=i[1],d=G(e.useState([{id:"tab1",label:"Tab 1"},{id:"tab2",label:"Tab 2"},{id:"tab3",label:"Tab 3"}]),2),c=d[0];d[1],e.useEffect(function(){s&&a(c[s-1].label)},[s]),e.useEffect(function(){c&&(s&&s>c.length||null==s)&&l(c.length)},[c]);return n.jsxs("div",{className:"editorContainer",children:[n.jsx("div",{className:"tabContainer",children:n.jsx(Og,{activeTab:1,tabs:c,selectTab:function(n){var e=c.findIndex(function(e){return e.id===n.target.id});l(e+1)}})}),n.jsx("div",{className:"monacoContainer",children:n.jsx(Eg,{editorContent:o})})]})};Cg.propTypes={systemTree:A.object,onFileSelect:A.func},exports.Editor=Cg,exports.FileBrowser=function(t){var r=t.tree,o=t.onNodeSelect,a=G(e.useState([]),2),i=a[0],s=a[1],l=e.useRef(),d=function(n){var t=e.useRef(n);return e.useLayoutEffect(function(){t.current=n}),e.useCallback(function(){return t.current.apply(t,arguments)},[])}(function(n){!function(n,e){n.forEach(function(n){n.selected=!1}),e.selected=!0,e.collapsed=!e.collapsed}(l.current,n),c(),o&&o(n)});e.useEffect(function(){l.current=yg(r),function(n){n.forEach(function(n){n.collapsed=!1})}(l.current),c()},[]);var c=function(){var e=function(n){for(var e,t,r=[],o=0;o<n.length;o++){if(e){if(!(n[o].level<=t))continue;e=!1}n[o].collapsed&&(e=!0,t=n[o].level),r.push(n[o])}return r}(l.current),t=[];e.forEach(function(e){t.push(n.jsx(kg,{node:e,id:e.name,onRowClick:d},e.id))}),s(t)};return n.jsx("div",{className:"file-browser",children:i})},exports.FlowDiagram=function(t){var r=t.treeInfo,o=G(e.useState(),2),a=o[0],i=o[1];return e.useEffect(function(){i(r)},[r]),n.jsx(wb,{children:n.jsx(wg,{tree:a})})},exports.StackList=V,exports.Viewer=Co;
|
|
47
47
|
//# sourceMappingURL=index.js.map
|