UNPKG

@eventcatalogtest/studio

Version:

A drag and drop UI for distributed systems that keeps your diagrams where they belong – in your repo

1 lines 222 kB
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9689],{2371:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(93552).A)("smile",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]])},3983:(e,t,n)=>{"use strict";n.d(t,{A:()=>r});let r=(0,n(93552).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},4146:(e,t,n)=>{"use strict";n.d(t,{B:()=>s});var r,i=n(49568),o=n(65290),a=(r||(r=n.t(i,2)))[" useId ".trim().toString()]||(()=>void 0),l=0;function s(e){let[t,n]=i.useState(a());return(0,o.N)(()=>{e||n(e=>e??String(l++))},[e]),e||(t?`radix-${t}`:"")}},4782:(e,t,n)=>{"use strict";n.d(t,{Do:()=>a,WZ:()=>r,TG:()=>l,ny:()=>i,yX:()=>s,xN:()=>u,Qc:()=>o,I$:()=>e4,aQ:()=>e7,di:()=>te,kO:()=>ts,ET:()=>ty,zh:()=>tu,V8:()=>tc,rN:()=>eP,bi:()=>eG,_s:()=>eh,aE:()=>F,Hm:()=>eB,tM:()=>R,KE:()=>en,tn:()=>C,xc:()=>M,us:()=>ed,IO:()=>$,e_:()=>eE,Fp:()=>eC,Mi:()=>J,HF:()=>P,Eo:()=>eg,b5:()=>ez,Tq:()=>U,qX:()=>eS,q1:()=>e_,oj:()=>ev,aZ:()=>L,aW:()=>eH,uD:()=>ec,Jo:()=>T,U$:()=>z,X6:()=>Q,oN:()=>eT,ah:()=>eO,R4:()=>el,r8:()=>eZ,ZO:()=>k,bK:()=>S,b$:()=>O,uj:()=>eN,v5:()=>ew,Ue:()=>es,Er:()=>eb,oB:()=>j,kf:()=>et,mW:()=>ee,Q6:()=>em,QE:()=>ef,kM:()=>K,No:()=>eQ,Ff:()=>ei,zj:()=>eo,s_:()=>er,vS:()=>eW,qn:()=>e1,uL:()=>eJ,YN:()=>ep});var r,i,o,a,l,s,u,c=n(95836),f=n(30827),d=n(14752),h=n(50684),p=n(17534);let m=e=>()=>e;function y(e,{sourceEvent:t,subject:n,target:r,identifier:i,active:o,x:a,y:l,dx:s,dy:u,dispatch:c}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:l,enumerable:!0,configurable:!0},dx:{value:s,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:c}})}function g(e){return!e.ctrlKey&&!e.button}function v(){return this.parentNode}function x(e,t){return null==t?{x:e.x,y:e.y}:t}function w(){return navigator.maxTouchPoints||"ontouchstart"in this}function b(){var e,t,n,r,i=g,o=v,a=x,l=w,s={},u=(0,c.A)("start","drag","end"),b=0,_=0;function A(e){e.on("mousedown.drag",E).filter(l).on("touchstart.drag",C).on("touchmove.drag",R,p.vr).on("touchend.drag touchcancel.drag",S).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function E(a,l){if(!r&&i.call(this,a,l)){var s=N(this,o.call(this,a,l),a,l,"mouse");s&&((0,f.A)(a.view).on("mousemove.drag",M,p.Rw).on("mouseup.drag",k,p.Rw),(0,h.A)(a.view),(0,p.GK)(a),n=!1,e=a.clientX,t=a.clientY,s("start",a))}}function M(r){if((0,p.Ay)(r),!n){var i=r.clientX-e,o=r.clientY-t;n=i*i+o*o>_}s.mouse("drag",r)}function k(e){(0,f.A)(e.view).on("mousemove.drag mouseup.drag",null),(0,h.y)(e.view,n),(0,p.Ay)(e),s.mouse("end",e)}function C(e,t){if(i.call(this,e,t)){var n,r,a=e.changedTouches,l=o.call(this,e,t),s=a.length;for(n=0;n<s;++n)(r=N(this,l,e,t,a[n].identifier,a[n]))&&((0,p.GK)(e),r("start",e,a[n]))}}function R(e){var t,n,r=e.changedTouches,i=r.length;for(t=0;t<i;++t)(n=s[r[t].identifier])&&((0,p.Ay)(e),n("drag",e,r[t]))}function S(e){var t,n,i=e.changedTouches,o=i.length;for(r&&clearTimeout(r),r=setTimeout(function(){r=null},500),t=0;t<o;++t)(n=s[i[t].identifier])&&((0,p.GK)(e),n("end",e,i[t]))}function N(e,t,n,r,i,o){var l,c,f,h=u.copy(),p=(0,d.A)(o||n,t);if(null!=(f=a.call(e,new y("beforestart",{sourceEvent:n,target:A,identifier:i,active:b,x:p[0],y:p[1],dx:0,dy:0,dispatch:h}),r)))return l=f.x-p[0]||0,c=f.y-p[1]||0,function n(o,a,u){var m,g=p;switch(o){case"start":s[i]=n,m=b++;break;case"end":delete s[i],--b;case"drag":p=(0,d.A)(u||a,t),m=b}h.call(o,e,new y(o,{sourceEvent:a,subject:f,target:A,identifier:i,active:m,x:p[0]+l,y:p[1]+c,dx:p[0]-g[0],dy:p[1]-g[1],dispatch:h}),r)}}return A.filter=function(e){return arguments.length?(i="function"==typeof e?e:m(!!e),A):i},A.container=function(e){return arguments.length?(o="function"==typeof e?e:m(e),A):o},A.subject=function(e){return arguments.length?(a="function"==typeof e?e:m(e),A):a},A.touchable=function(e){return arguments.length?(l="function"==typeof e?e:m(!!e),A):l},A.on=function(){var e=u.on.apply(u,arguments);return e===u?A:e},A.clickDistance=function(e){return arguments.length?(_=(e*=1)*e,A):Math.sqrt(_)},A}y.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};var _=n(8035),A=n(83544),E=n(90857);let M={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${"source"===e?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},k=[[-1/0,-1/0],[1/0,1/0]],C=["Enter"," ","Escape"],R={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};!function(e){e.Strict="strict",e.Loose="loose"}(r||(r={})),function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"}(i||(i={})),function(e){e.Partial="partial",e.Full="full"}(o||(o={}));let S={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null};!function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"}(a||(a={})),function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"}(l||(l={})),function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"}(s||(s={}));let N={[s.Left]:s.Right,[s.Right]:s.Left,[s.Top]:s.Bottom,[s.Bottom]:s.Top};function P(e){return null===e?null:e?"valid":"invalid"}let O=e=>"id"in e&&"source"in e&&"target"in e,j=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),D=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),I=(e,t=[0,0])=>{let{width:n,height:r}=ec(e),i=e.origin??t,o=n*i[0],a=r*i[1];return{x:e.position.x-o,y:e.position.y-a}},T=(e,t={nodeOrigin:[0,0]})=>0===e.length?{x:0,y:0,width:0,height:0}:X(e.reduce((e,n)=>{let r="string"==typeof n,i=t.nodeLookup||r?void 0:n;return t.nodeLookup&&(i=r?t.nodeLookup.get(n):D(n)?n:t.nodeLookup.get(n.id)),W(e,i?Z(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0})},{x:1/0,y:1/0,x2:-1/0,y2:-1/0})),L=(e,t={})=>{if(0===e.size)return{x:0,y:0,width:0,height:0};let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0};return e.forEach(e=>{if(void 0===t.filter||t.filter(e)){let t=Z(e);n=W(n,t)}}),X(n)},z=(e,t,[n,r,i]=[0,0,1],o=!1,a=!1)=>{let l={...ei(t,[n,r,i]),width:t.width/i,height:t.height/i},s=[];for(let t of e.values()){let{measured:e,selectable:n=!0,hidden:r=!1}=t;if(a&&!n||r)continue;let i=e.width??t.width??t.initialWidth??null,u=e.height??t.height??t.initialHeight??null,c=Q(l,K(t)),f=(i??0)*(u??0),d=o&&c>0;(!t.internals.handleBounds||d||c>=f||t.dragging)&&s.push(t)}return s};async function $({nodes:e,width:t,height:n,panZoom:r,minZoom:i,maxZoom:o},a){if(0===e.size)return Promise.resolve(!0);let l=el(L(function(e,t){let n=new Map,r=t?.nodes?new Set(t.nodes.map(e=>e.id)):null;return e.forEach(e=>{e.measured.width&&e.measured.height&&(t?.includeHiddenNodes||!e.hidden)&&(!r||r.has(e.id))&&n.set(e.id,e)}),n}(e,a)),t,n,a?.minZoom??i,a?.maxZoom??o,a?.padding??.1);return await r.setViewport(l,{duration:a?.duration,ease:a?.ease,interpolate:a?.interpolate}),Promise.resolve(!0)}function F({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:i,onError:o}){let a=n.get(e),l=a.parentId?n.get(a.parentId):void 0,{x:s,y:u}=l?l.internals.positionAbsolute:{x:0,y:0},c=a.origin??r,f=a.extent||i;if("parent"!==a.extent||a.expandParent)l&&eu(a.extent)&&(f=[[a.extent[0][0]+s,a.extent[0][1]+u],[a.extent[1][0]+s,a.extent[1][1]+u]]);else if(l){let e=l.measured.width,t=l.measured.height;e&&t&&(f=[[s,u],[s+e,u+t]])}else o?.("005",M.error005());let d=eu(f)?B(t,f,a.measured):t;return(void 0===a.measured.width||void 0===a.measured.height)&&o?.("015",M.error015()),{position:{x:d.x-s+(a.measured.width??0)*c[0],y:d.y-u+(a.measured.height??0)*c[1]},positionAbsolute:d}}async function U({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:i}){let o=new Set(e.map(e=>e.id)),a=[];for(let e of n){if(!1===e.deletable)continue;let t=o.has(e.id),n=!t&&e.parentId&&a.find(t=>t.id===e.parentId);(t||n)&&a.push(e)}let l=new Set(t.map(e=>e.id)),s=r.filter(e=>!1!==e.deletable),u=((e,t)=>{let n=new Set;return e.forEach(e=>{n.add(e.id)}),t.filter(e=>n.has(e.source)||n.has(e.target))})(a,s);for(let e of s)l.has(e.id)&&!u.find(t=>t.id===e.id)&&u.push(e);if(!i)return{edges:u,nodes:a};let c=await i({nodes:a,edges:u});return"boolean"==typeof c?c?{edges:u,nodes:a}:{edges:[],nodes:[]}:c}let H=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),B=(e={x:0,y:0},t,n)=>({x:H(e.x,t[0][0],t[1][0]-(n?.width??0)),y:H(e.y,t[0][1],t[1][1]-(n?.height??0))});function q(e,t,n){let{width:r,height:i}=ec(n),{x:o,y:a}=n.internals.positionAbsolute;return B(e,[[o,a],[o+r,a+i]],t)}let Y=(e,t,n)=>e<t?H(Math.abs(e-t),1,t)/t:e>n?-H(Math.abs(e-n),1,t)/t:0,V=(e,t,n=15,r=40)=>[Y(e.x,r,t.width-r)*n,Y(e.y,r,t.height-r)*n],W=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),G=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),X=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),K=(e,t=[0,0])=>{let{x:n,y:r}=D(e)?e.internals.positionAbsolute:I(e,t);return{x:n,y:r,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},Z=(e,t=[0,0])=>{let{x:n,y:r}=D(e)?e.internals.positionAbsolute:I(e,t);return{x:n,y:r,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:r+(e.measured?.height??e.height??e.initialHeight??0)}},J=(e,t)=>X(W(G(e),G(t))),Q=(e,t)=>Math.ceil(Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x))*Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y))),ee=e=>et(e.width)&&et(e.height)&&et(e.x)&&et(e.y),et=e=>!isNaN(e)&&isFinite(e),en=(e,t)=>{},er=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),ei=({x:e,y:t},[n,r,i],o=!1,a=[1,1])=>{let l={x:(e-n)/i,y:(t-r)/i};return o?er(l,a):l},eo=({x:e,y:t},[n,r,i])=>({x:e*i+n,y:t*i+r});function ea(e,t){if("number"==typeof e)return Math.floor((t-t/(1+e))*.5);if("string"==typeof e&&e.endsWith("px")){let t=parseFloat(e);if(!Number.isNaN(t))return Math.floor(t)}if("string"==typeof e&&e.endsWith("%")){let n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}let el=(e,t,n,r,i,o)=>{let a=function(e,t,n){if("string"==typeof e||"number"==typeof e){let r=ea(e,n),i=ea(e,t);return{top:r,right:i,bottom:r,left:i,x:2*i,y:2*r}}if("object"==typeof e){let r=ea(e.top??e.y??0,n),i=ea(e.bottom??e.y??0,n),o=ea(e.left??e.x??0,t),a=ea(e.right??e.x??0,t);return{top:r,right:a,bottom:i,left:o,x:o+a,y:r+i}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}(o,t,n),l=H(Math.min((t-a.x)/e.width,(n-a.y)/e.height),r,i),s=e.x+e.width/2,u=e.y+e.height/2,c=t/2-s*l,f=n/2-u*l,d=function(e,t,n,r,i,o){let{x:a,y:l}=eo(e,[t,n,r]),{x:s,y:u}=eo({x:e.x+e.width,y:e.y+e.height},[t,n,r]);return{left:Math.floor(a),top:Math.floor(l),right:Math.floor(i-s),bottom:Math.floor(o-u)}}(e,c,f,l,t,n),h={left:Math.min(d.left-a.left,0),top:Math.min(d.top-a.top,0),right:Math.min(d.right-a.right,0),bottom:Math.min(d.bottom-a.bottom,0)};return{x:c-h.left+h.right,y:f-h.top+h.bottom,zoom:l}},es=()=>"undefined"!=typeof navigator&&navigator?.userAgent?.indexOf("Mac")>=0;function eu(e){return void 0!==e&&"parent"!==e}function ec(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function ef(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function ed(e,t={width:0,height:0},n,r,i){let o={...e},a=r.get(n);if(a){let e=a.origin||i;o.x+=a.internals.positionAbsolute.x-(t.width??0)*e[0],o.y+=a.internals.positionAbsolute.y-(t.height??0)*e[1]}return o}function eh(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}function ep(){let e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function em(e){return{...R,...e||{}}}function ey(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:i}){let{x:o,y:a}=e_(e),l=ei({x:o-(i?.left??0),y:a-(i?.top??0)},r),{x:s,y:u}=n?er(l,t):l;return{xSnapped:s,ySnapped:u,...l}}let eg=e=>({width:e.offsetWidth,height:e.offsetHeight}),ev=e=>e?.getRootNode?.()||window?.document,ex=["INPUT","SELECT","TEXTAREA"];function ew(e){let t=e.composedPath?.()?.[0]||e.target;return t?.nodeType===1&&(ex.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey"))}let eb=e=>"clientX"in e,e_=(e,t)=>{let n=eb(e),r=n?e.clientX:e.touches?.[0].clientX,i=n?e.clientY:e.touches?.[0].clientY;return{x:r-(t?.left??0),y:i-(t?.top??0)}},eA=(e,t,n,r,i)=>{let o=t.querySelectorAll(`.${e}`);return o&&o.length?Array.from(o).map(t=>{let o=t.getBoundingClientRect();return{id:t.getAttribute("data-handleid"),type:e,nodeId:i,position:t.getAttribute("data-handlepos"),x:(o.left-n.left)/r,y:(o.top-n.top)/r,...eg(t)}}):null};function eE({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:i,sourceControlY:o,targetControlX:a,targetControlY:l}){let s=.125*e+.375*i+.375*a+.125*n,u=.125*t+.375*o+.375*l+.125*r,c=Math.abs(s-e),f=Math.abs(u-t);return[s,u,c,f]}function eM(e,t){return e>=0?.5*e:25*t*Math.sqrt(-e)}function ek({pos:e,x1:t,y1:n,x2:r,y2:i,c:o}){switch(e){case s.Left:return[t-eM(t-r,o),n];case s.Right:return[t+eM(r-t,o),n];case s.Top:return[t,n-eM(n-i,o)];case s.Bottom:return[t,n+eM(i-n,o)]}}function eC({sourceX:e,sourceY:t,sourcePosition:n=s.Bottom,targetX:r,targetY:i,targetPosition:o=s.Top,curvature:a=.25}){let[l,u]=ek({pos:n,x1:e,y1:t,x2:r,y2:i,c:a}),[c,f]=ek({pos:o,x1:r,y1:i,x2:e,y2:t,c:a}),[d,h,p,m]=eE({sourceX:e,sourceY:t,targetX:r,targetY:i,sourceControlX:l,sourceControlY:u,targetControlX:c,targetControlY:f});return[`M${e},${t} C${l},${u} ${c},${f} ${r},${i}`,d,h,p,m]}function eR({sourceX:e,sourceY:t,targetX:n,targetY:r}){let i=Math.abs(n-e)/2,o=Math.abs(r-t)/2;return[n<e?n+i:n-i,r<t?r+o:r-o,i,o]}function eS({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r,elevateOnSelect:i=!1}){return void 0!==r?r:(i&&n?1e3:0)+Math.max(e.parentId?e.internals.z:0,t.parentId?t.internals.z:0)}function eN({sourceNode:e,targetNode:t,width:n,height:r,transform:i}){let o=W(Z(e),Z(t));return o.x===o.x2&&(o.x2+=1),o.y===o.y2&&(o.y2+=1),Q({x:-i[0]/i[2],y:-i[1]/i[2],width:n/i[2],height:r/i[2]},X(o))>0}let eP=(e,t)=>{let n;return e.source&&e.target?((e,t)=>t.some(t=>t.source===e.source&&t.target===e.target&&(t.sourceHandle===e.sourceHandle||!t.sourceHandle&&!e.sourceHandle)&&(t.targetHandle===e.targetHandle||!t.targetHandle&&!e.targetHandle)))(n=O(e)?{...e}:{...e,id:(({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`)(e)},t)?t:(null===n.sourceHandle&&delete n.sourceHandle,null===n.targetHandle&&delete n.targetHandle,t.concat(n)):(en("006",M.error006()),t)};function eO({sourceX:e,sourceY:t,targetX:n,targetY:r}){let[i,o,a,l]=eR({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,i,o,a,l]}let ej={[s.Left]:{x:-1,y:0},[s.Right]:{x:1,y:0},[s.Top]:{x:0,y:-1},[s.Bottom]:{x:0,y:1}},eD=({source:e,sourcePosition:t=s.Bottom,target:n})=>t===s.Left||t===s.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},eI=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function eT({sourceX:e,sourceY:t,sourcePosition:n=s.Bottom,targetX:r,targetY:i,targetPosition:o=s.Top,borderRadius:a=5,centerX:l,centerY:u,offset:c=20,stepPosition:f=.5}){let[d,h,p,m,y]=function({source:e,sourcePosition:t=s.Bottom,target:n,targetPosition:r=s.Top,center:i,offset:o,stepPosition:a}){let l,u,c=ej[t],f=ej[r],d={x:e.x+c.x*o,y:e.y+c.y*o},h={x:n.x+f.x*o,y:n.y+f.y*o},p=eD({source:d,sourcePosition:t,target:h}),m=0!==p.x?"x":"y",y=p[m],g=[],v={x:0,y:0},x={x:0,y:0},[,,w,b]=eR({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(c[m]*f[m]==-1){"x"===m?(l=i.x??d.x+(h.x-d.x)*a,u=i.y??(d.y+h.y)/2):(l=i.x??(d.x+h.x)/2,u=i.y??d.y+(h.y-d.y)*a);let e=[{x:l,y:d.y},{x:l,y:h.y}],t=[{x:d.x,y:u},{x:h.x,y:u}];g=c[m]===y?"x"===m?e:t:"x"===m?t:e}else{let i=[{x:d.x,y:h.y}],a=[{x:h.x,y:d.y}];if(g="x"===m?c.x===y?a:i:c.y===y?i:a,t===r){let t=Math.abs(e[m]-n[m]);if(t<=o){let r=Math.min(o-1,o-t);c[m]===y?v[m]=(d[m]>e[m]?-1:1)*r:x[m]=(h[m]>n[m]?-1:1)*r}}if(t!==r){let e="x"===m?"y":"x",t=c[m]===f[e],n=d[e]>h[e],r=d[e]<h[e];(1===c[m]&&(!t&&n||t&&r)||1!==c[m]&&(!t&&r||t&&n))&&(g="x"===m?i:a)}let s={x:d.x+v.x,y:d.y+v.y},p={x:h.x+x.x,y:h.y+x.y};Math.max(Math.abs(s.x-g[0].x),Math.abs(p.x-g[0].x))>=Math.max(Math.abs(s.y-g[0].y),Math.abs(p.y-g[0].y))?(l=(s.x+p.x)/2,u=g[0].y):(l=g[0].x,u=(s.y+p.y)/2)}return[[e,{x:d.x+v.x,y:d.y+v.y},...g,{x:h.x+x.x,y:h.y+x.y},n],l,u,w,b]}({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:i},targetPosition:o,center:{x:l,y:u},offset:c,stepPosition:f});return[d.reduce((e,t,n)=>e+(n>0&&n<d.length-1?function(e,t,n,r){let i=Math.min(eI(e,t)/2,eI(t,n)/2,r),{x:o,y:a}=t;if(e.x===o&&o===n.x||e.y===a&&a===n.y)return`L${o} ${a}`;if(e.y===a){let t=e.x<n.x?-1:1,r=e.y<n.y?1:-1;return`L ${o+i*t},${a}Q ${o},${a} ${o},${a+i*r}`}let l=e.x<n.x?1:-1,s=e.y<n.y?-1:1;return`L ${o},${a+i*s}Q ${o},${a} ${o+i*l},${a}`}(d[n-1],t,d[n+1],a):`${0===n?"M":"L"}${t.x} ${t.y}`),""),h,p,m,y]}function eL(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function ez(e){let{sourceNode:t,targetNode:n}=e;if(!eL(t)||!eL(n))return null;let i=t.internals.handleBounds||e$(t.handles),o=n.internals.handleBounds||e$(n.handles),a=eU(i?.source??[],e.sourceHandle),l=eU(e.connectionMode===r.Strict?o?.target??[]:(o?.target??[]).concat(o?.source??[]),e.targetHandle);if(!a||!l)return e.onError?.("008",M.error008(!a?"source":"target",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;let u=a?.position||s.Bottom,c=l?.position||s.Top,f=eF(t,a,u),d=eF(n,l,c);return{sourceX:f.x,sourceY:f.y,targetX:d.x,targetY:d.y,sourcePosition:u,targetPosition:c}}function e$(e){if(!e)return null;let t=[],n=[];for(let r of e)r.width=r.width??1,r.height=r.height??1,"source"===r.type?t.push(r):"target"===r.type&&n.push(r);return{source:t,target:n}}function eF(e,t,n=s.Left,r=!1){let i=(t?.x??0)+e.internals.positionAbsolute.x,o=(t?.y??0)+e.internals.positionAbsolute.y,{width:a,height:l}=t??ec(e);if(r)return{x:i+a/2,y:o+l/2};switch(t?.position??n){case s.Top:return{x:i+a/2,y:o};case s.Right:return{x:i+a,y:o+l/2};case s.Bottom:return{x:i+a/2,y:o+l};case s.Left:return{x:i,y:o+l/2}}}function eU(e,t){return e&&(t?e.find(e=>e.id===t):e[0])||null}function eH(e,t){if(!e)return"";if("string"==typeof e)return e;let n=t?`${t}__`:"";return`${n}${Object.keys(e).sort().map(t=>`${t}=${e[t]}`).join("&")}`}function eB(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:i}){let o=new Set;return e.reduce((e,a)=>([a.markerStart||r,a.markerEnd||i].forEach(r=>{if(r&&"object"==typeof r){let i=eH(r,t);o.has(i)||(e.push({id:i,color:r.color||n,...r}),o.add(i))}}),e),[]).sort((e,t)=>e.id.localeCompare(t.id))}let eq={nodeOrigin:[0,0],nodeExtent:k,elevateNodesOnSelect:!0,defaults:{}},eY={...eq,checkEquality:!0};function eV(e,t){let n={...e};for(let e in t)void 0!==t[e]&&(n[e]=t[e]);return n}function eW(e,t,n){let r=eV(eq,n);for(let n of e.values())if(n.parentId)eX(n,e,t,r);else{let e=B(I(n,r.nodeOrigin),eu(n.extent)?n.extent:r.nodeExtent,ec(n));n.internals.positionAbsolute=e}}function eG(e,t,n,r){let i=eV(eY,r),o=e.length>0,a=new Map(t),l=1e3*!!i?.elevateNodesOnSelect;for(let s of(t.clear(),n.clear(),e)){let e=a.get(s.id);if(i.checkEquality&&s===e?.internals.userNode)t.set(s.id,e);else{let n=B(I(s,i.nodeOrigin),eu(s.extent)?s.extent:i.nodeExtent,ec(s));e={...i.defaults,...s,measured:{width:s.measured?.width,height:s.measured?.height},internals:{positionAbsolute:n,handleBounds:s.measured?e?.internals.handleBounds:void 0,z:eK(s,l),userNode:s}},t.set(s.id,e)}void 0!==e.measured&&void 0!==e.measured.width&&void 0!==e.measured.height||e.hidden||(o=!1),s.parentId&&eX(e,t,n,r)}return o}function eX(e,t,n,r){let{elevateNodesOnSelect:i,nodeOrigin:o,nodeExtent:a}=eV(eq,r),l=e.parentId,s=t.get(l);if(!s)return void console.warn(`Parent node ${l} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);!function(e,t){if(!e.parentId)return;let n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}(e,n);let{x:u,y:c,z:f}=function(e,t,n,r,i){let{x:o,y:a}=t.internals.positionAbsolute,l=ec(e),s=I(e,n),u=eu(e.extent)?B(s,e.extent,l):s,c=B({x:o+u.x,y:a+u.y},r,l);"parent"===e.extent&&(c=q(c,l,t));let f=eK(e,i),d=t.internals.z??0;return{x:c.x,y:c.y,z:d>=f?d+1:f}}(e,s,o,a,1e3*!!i),{positionAbsolute:d}=e.internals,h=u!==d.x||c!==d.y;(h||f!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:h?{x:u,y:c}:d,z:f}})}function eK(e,t){return(et(e.zIndex)?e.zIndex:0)+(e.selected?t:0)}function eZ(e,t,n,r=[0,0]){let i=[],o=new Map;for(let n of e){let e=t.get(n.parentId);if(!e)continue;let r=J(o.get(n.parentId)?.expandedRect??K(e),n.rect);o.set(n.parentId,{expandedRect:r,parent:e})}return o.size>0&&o.forEach(({expandedRect:t,parent:o},a)=>{let l=o.internals.positionAbsolute,s=ec(o),u=o.origin??r,c=t.x<l.x?Math.round(Math.abs(l.x-t.x)):0,f=t.y<l.y?Math.round(Math.abs(l.y-t.y)):0,d=Math.max(s.width,Math.round(t.width)),h=Math.max(s.height,Math.round(t.height)),p=(d-s.width)*u[0],m=(h-s.height)*u[1];(c>0||f>0||p||m)&&(i.push({id:a,type:"position",position:{x:o.position.x-c+p,y:o.position.y-f+m}}),n.get(a)?.forEach(t=>{e.some(e=>e.id===t.id)||i.push({id:t.id,type:"position",position:{x:t.position.x+c,y:t.position.y+f}})})),(s.width<t.width||s.height<t.height||c||f)&&i.push({id:a,type:"dimensions",setAttributes:!0,dimensions:{width:d+(c?u[0]*c-p:0),height:h+(f?u[1]*f-m:0)}})}),i}function eJ(e,t,n,r,i,o){let a=r?.querySelector(".xyflow__viewport"),l=!1;if(!a)return{changes:[],updatedInternals:l};let s=[],u=window.getComputedStyle(a),{m22:c}=new window.DOMMatrixReadOnly(u.transform),f=[];for(let r of e.values()){let e=t.get(r.id);if(!e)continue;if(e.hidden){t.set(e.id,{...e,internals:{...e.internals,handleBounds:void 0}}),l=!0;continue}let a=eg(r.nodeElement),u=e.measured.width!==a.width||e.measured.height!==a.height;if(a.width&&a.height&&(u||!e.internals.handleBounds||r.force)){let d=r.nodeElement.getBoundingClientRect(),h=eu(e.extent)?e.extent:o,{positionAbsolute:p}=e.internals;e.parentId&&"parent"===e.extent?p=q(p,a,t.get(e.parentId)):h&&(p=B(p,h,a));let m={...e,measured:a,internals:{...e.internals,positionAbsolute:p,handleBounds:{source:eA("source",r.nodeElement,d,c,e.id),target:eA("target",r.nodeElement,d,c,e.id)}}};t.set(e.id,m),e.parentId&&eX(m,t,n,{nodeOrigin:i}),l=!0,u&&(s.push({id:e.id,type:"dimensions",dimensions:a}),e.expandParent&&e.parentId&&f.push({id:e.id,parentId:e.parentId,rect:K(m,i)}))}}if(f.length>0){let e=eZ(f,t,n,i);s.push(...e)}return{changes:s,updatedInternals:l}}async function eQ({delta:e,panZoom:t,transform:n,translateExtent:r,width:i,height:o}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);let a=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[i,o]],r);return Promise.resolve(!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2]))}function e0(e,t,n,r,i,o){let a=i,l=r.get(a)||new Map;r.set(a,l.set(n,t)),a=`${i}-${e}`;let s=r.get(a)||new Map;if(r.set(a,s.set(n,t)),o){a=`${i}-${e}-${o}`;let l=r.get(a)||new Map;r.set(a,l.set(n,t))}}function e1(e,t,n){for(let r of(e.clear(),t.clear(),n)){let{source:n,target:i,sourceHandle:o=null,targetHandle:a=null}=r,l={edgeId:r.id,source:n,target:i,sourceHandle:o,targetHandle:a},s=`${n}-${o}--${i}-${a}`;e0("source",l,`${i}-${a}--${n}-${o}`,e,n,o),e0("target",l,s,e,i,a),t.set(r.id,r)}}function e2(e,t,n){let r=e;do{if(r?.matches?.(t))return!0;if(r===n)break;r=r?.parentElement}while(r);return!1}function e5({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){let i=[];for(let[e,o]of t){let t=n.get(e)?.internals.userNode;t&&i.push({...t,position:o.position,dragging:r})}if(!e)return[i[0],i];let o=n.get(e)?.internals.userNode;return[o?{...o,position:t.get(e)?.position||o.position,dragging:r}:i[0],i]}function e4({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:i}){let o={x:null,y:null},a=0,l=new Map,s=!1,u={x:0,y:0},c=null,d=!1,h=null,p=!1,m=!1;return{update:function({noDragClassName:y,handleSelector:g,domNode:v,isSelectable:x,nodeId:w,nodeClickDistance:_=0}){function A({x:e,y:n},i){let{nodeLookup:a,nodeExtent:s,snapGrid:u,snapToGrid:c,nodeOrigin:f,onNodeDrag:d,onSelectionDrag:h,onError:p,updateNodePositions:y}=t();o={x:e,y:n};let g=!1,v={x:0,y:0,x2:0,y2:0};for(let[t,r]of(l.size>1&&s&&(v=G(L(l))),l)){if(!a.has(t))continue;let i={x:e-r.distance.x,y:n-r.distance.y};c&&(i=er(i,u));let o=[[s[0][0],s[0][1]],[s[1][0],s[1][1]]];if(l.size>1&&s&&!r.extent){let{positionAbsolute:e}=r.internals,t=e.x-v.x+s[0][0],n=e.x+r.measured.width-v.x2+s[1][0];o=[[t,e.y-v.y+s[0][1]],[n,e.y+r.measured.height-v.y2+s[1][1]]]}let{position:d,positionAbsolute:h}=F({nodeId:t,nextPosition:i,nodeLookup:a,nodeExtent:o,nodeOrigin:f,onError:p});g=g||r.position.x!==d.x||r.position.y!==d.y,r.position=d,r.internals.positionAbsolute=h}if(m=m||g,g&&(y(l,!0),i&&(r||d||!w&&h))){let[e,t]=e5({nodeId:w,dragItems:l,nodeLookup:a});r?.(i,l,e,t),d?.(i,e,t),w||h?.(i,t)}}async function E(){if(!c)return;let{transform:e,panBy:n,autoPanSpeed:r,autoPanOnNodeDrag:i}=t();if(!i){s=!1,cancelAnimationFrame(a);return}let[l,f]=V(u,c,r);(0!==l||0!==f)&&(o.x=(o.x??0)-l/e[2],o.y=(o.y??0)-f/e[2],await n({x:l,y:f})&&A(o,null)),a=requestAnimationFrame(E)}function M(r){let{nodeLookup:i,multiSelectionActive:a,nodesDraggable:s,transform:u,snapGrid:f,snapToGrid:h,selectNodesOnDrag:p,onNodeDragStart:m,onSelectionDragStart:y,unselectNodesAndEdges:g}=t();d=!0,p&&x||a||!w||i.get(w)?.selected||g(),x&&p&&w&&e?.(w);let v=ey(r.sourceEvent,{transform:u,snapGrid:f,snapToGrid:h,containerBounds:c});if(o=v,(l=function(e,t,n,r){let i=new Map;for(let[o,a]of e)if((a.selected||a.id===r)&&(!a.parentId||!function e(t,n){if(!t.parentId)return!1;let r=n.get(t.parentId);return!!r&&(!!r.selected||e(r,n))}(a,e))&&(a.draggable||t&&void 0===a.draggable)){let t=e.get(o);t&&i.set(o,{id:o,position:t.position||{x:0,y:0},distance:{x:n.x-t.internals.positionAbsolute.x,y:n.y-t.internals.positionAbsolute.y},extent:t.extent,parentId:t.parentId,origin:t.origin,expandParent:t.expandParent,internals:{positionAbsolute:t.internals.positionAbsolute||{x:0,y:0}},measured:{width:t.measured.width??0,height:t.measured.height??0}})}return i}(i,s,v,w)).size>0&&(n||m||!w&&y)){let[e,t]=e5({nodeId:w,dragItems:l,nodeLookup:i});n?.(r.sourceEvent,l,e,t),m?.(r.sourceEvent,e,t),w||y?.(r.sourceEvent,t)}}h=(0,f.A)(v);let k=b().clickDistance(_).on("start",e=>{let{domNode:n,nodeDragThreshold:r,transform:i,snapGrid:a,snapToGrid:l}=t();c=n?.getBoundingClientRect()||null,p=!1,m=!1,0===r&&M(e),o=ey(e.sourceEvent,{transform:i,snapGrid:a,snapToGrid:l,containerBounds:c}),u=e_(e.sourceEvent,c)}).on("drag",e=>{let{autoPanOnNodeDrag:n,transform:r,snapGrid:i,snapToGrid:a,nodeDragThreshold:f,nodeLookup:h}=t(),m=ey(e.sourceEvent,{transform:r,snapGrid:i,snapToGrid:a,containerBounds:c});if(("touchmove"===e.sourceEvent.type&&e.sourceEvent.touches.length>1||w&&!h.has(w))&&(p=!0),!p){if(!s&&n&&d&&(s=!0,E()),!d){let t=m.xSnapped-(o.x??0),n=m.ySnapped-(o.y??0);Math.sqrt(t*t+n*n)>f&&M(e)}(o.x!==m.xSnapped||o.y!==m.ySnapped)&&l&&d&&(u=e_(e.sourceEvent,c),A(m,e.sourceEvent))}}).on("end",e=>{if(d&&!p&&(s=!1,d=!1,cancelAnimationFrame(a),l.size>0)){let{nodeLookup:n,updateNodePositions:r,onNodeDragStop:o,onSelectionDragStop:a}=t();if(m&&(r(l,!1),m=!1),i||o||!w&&a){let[t,r]=e5({nodeId:w,dragItems:l,nodeLookup:n,dragging:!1});i?.(e.sourceEvent,l,t,r),o?.(e.sourceEvent,t,r),w||a?.(e.sourceEvent,r)}}}).filter(e=>{let t=e.target;return!e.button&&(!y||!e2(t,`.${y}`,v))&&(!g||e2(t,g,v))});h.call(k)},destroy:function(){h?.on(".drag",null)}}}function e9(e,t,n,r,i,o=!1){let a=r.get(e);if(!a)return null;let l="strict"===i?a.internals.handleBounds?.[t]:[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]],s=(n?l?.find(e=>e.id===n):l?.[0])??null;return s&&o?{...s,...eF(a,s,s.position,!0)}:s}function e6(e,t){return e?e:t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null}let e3=()=>!0;function e8(e,{handle:t,connectionMode:n,fromNodeId:i,fromHandleId:o,fromType:a,doc:l,lib:s,flowId:u,isValidConnection:c=e3,nodeLookup:f}){let d="target"===a,h=t?l.querySelector(`.${s}-flow__handle[data-id="${u}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:p,y:m}=e_(e),y=l.elementFromPoint(p,m),g=y?.classList.contains(`${s}-flow__handle`)?y:h,v={handleDomNode:g,isValid:!1,connection:null,toHandle:null};if(g){let e=e6(void 0,g),t=g.getAttribute("data-nodeid"),a=g.getAttribute("data-handleid"),l=g.classList.contains("connectable"),s=g.classList.contains("connectableend");if(!t||!e)return v;let u={source:d?t:i,sourceHandle:d?a:o,target:d?i:t,targetHandle:d?o:a};v.connection=u,v.isValid=l&&s&&(n===r.Strict?d&&"source"===e||!d&&"target"===e:t!==i||a!==o)&&c(u),v.toHandle=e9(t,e,a,f,n,!0)}return v}let e7={onPointerDown:function(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:i,edgeUpdaterType:o,isTarget:a,domNode:l,nodeLookup:u,lib:c,autoPanOnConnect:f,flowId:d,panBy:h,cancelConnection:p,onConnectStart:m,onConnect:y,onConnectEnd:g,isValidConnection:v=e3,onReconnectEnd:x,updateConnection:w,getTransform:b,getFromHandle:_,autoPanSpeed:A,dragThreshold:E=1}){let M,k=ev(e.target),C=0,{x:R,y:S}=e_(e),P=e6(o,k?.elementFromPoint(R,S)),O=l?.getBoundingClientRect(),j=!1;if(!O||!P)return;let D=e9(i,P,r,u,t);if(!D)return;let I=e_(e,O),T=!1,L=null,z=!1,$=null,F={...D,nodeId:i,type:P,position:D.position},U=u.get(i),H={inProgress:!0,isValid:null,from:eF(U,F,s.Left,!0),fromHandle:F,fromPosition:F.position,fromNode:U,to:I,toHandle:null,toPosition:N[F.position],toNode:null};function B(){j=!0,w(H),m?.(e,{nodeId:i,handleId:r,handleType:P})}function q(e){var o,l;let s;if(!j){let{x:t,y:n}=e_(e),r=t-R,i=n-S;if(!(r*r+i*i>E*E))return;B()}if(!_()||!F)return void Y(e);let p=b();M=function(e,t,n,r){let i=[],o=1/0;for(let a of function(e,t,n){let r=[],i={x:e.x-n,y:e.y-n,width:2*n,height:2*n};for(let e of t.values())Q(i,K(e))>0&&r.push(e);return r}(e,n,t+250))for(let n of[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]]){if(r.nodeId===n.nodeId&&r.type===n.type&&r.id===n.id)continue;let{x:l,y:s}=eF(a,n,n.position,!0),u=Math.sqrt(Math.pow(l-e.x,2)+Math.pow(s-e.y,2));u>t||(u<o?(i=[{...n,x:l,y:s}],o=u):u===o&&i.push({...n,x:l,y:s}))}if(!i.length)return null;if(i.length>1){let e="source"===r.type?"target":"source";return i.find(t=>t.type===e)??i[0]}return i[0]}(ei(I=e_(e,O),p,!1,[1,1]),n,u,F),T||(!function e(){if(!f||!O)return;let[t,n]=V(I,O,A);h({x:t,y:n}),C=requestAnimationFrame(e)}(),T=!0);let m=e8(e,{handle:M,connectionMode:t,fromNodeId:i,fromHandleId:r,fromType:a?"target":"source",isValidConnection:v,doc:k,lib:c,flowId:d,nodeLookup:u});$=m.handleDomNode,L=m.connection,o=!!M,l=m.isValid,s=null,l?s=!0:o&&!l&&(s=!1),z=s;let y={...H,isValid:z,to:m.toHandle&&z?eo({x:m.toHandle.x,y:m.toHandle.y},p):I,toHandle:m.toHandle,toPosition:z&&m.toHandle?m.toHandle.position:N[F.position],toNode:m.toHandle?u.get(m.toHandle.nodeId):null};z&&M&&H.toHandle&&y.toHandle&&H.toHandle.type===y.toHandle.type&&H.toHandle.nodeId===y.toHandle.nodeId&&H.toHandle.id===y.toHandle.id&&H.to.x===y.to.x&&H.to.y===y.to.y||(w(y),H=y)}function Y(e){if(j){(M||$)&&L&&z&&y?.(L);let{inProgress:t,...n}=H,r={...n,toPosition:H.toHandle?H.toPosition:null};g?.(e,r),o&&x?.(e,r)}p(),cancelAnimationFrame(C),T=!1,z=!1,L=null,$=null,k.removeEventListener("mousemove",q),k.removeEventListener("mouseup",Y),k.removeEventListener("touchmove",q),k.removeEventListener("touchend",Y)}0===E&&B(),k.addEventListener("mousemove",q),k.addEventListener("mouseup",Y),k.addEventListener("touchmove",q),k.addEventListener("touchend",Y)},isValid:e8};function te({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){let i=(0,f.A)(e);return{update:function({translateExtent:e,width:o,height:a,zoomStep:l=10,pannable:s=!0,zoomable:u=!0,inversePan:c=!1}){let f=[0,0],d=(0,_.s_)().on("start",e=>{("mousedown"===e.sourceEvent.type||"touchstart"===e.sourceEvent.type)&&(f=[e.sourceEvent.clientX??e.sourceEvent.touches[0].clientX,e.sourceEvent.clientY??e.sourceEvent.touches[0].clientY])}).on("zoom",s?i=>{let l=n();if("mousemove"!==i.sourceEvent.type&&"touchmove"!==i.sourceEvent.type||!t)return;let s=[i.sourceEvent.clientX??i.sourceEvent.touches[0].clientX,i.sourceEvent.clientY??i.sourceEvent.touches[0].clientY],u=[s[0]-f[0],s[1]-f[1]];f=s;let d=r()*Math.max(l[2],Math.log(l[2]))*(c?-1:1),h={x:l[0]-u[0]*d,y:l[1]-u[1]*d};t.setViewportConstrained({x:h.x,y:h.y,zoom:l[2]},[[0,0],[o,a]],e)}:null).on("zoom.wheel",u?e=>{let r=n();if("wheel"!==e.sourceEvent.type||!t)return;let i=-e.sourceEvent.deltaY*(1===e.sourceEvent.deltaMode?.05:e.sourceEvent.deltaMode?1:.002)*l,o=r[2]*Math.pow(2,i);t.scaleTo(o)}:null);i.call(d,{})},destroy:function(){i.on("zoom",null)},pointer:d.A}}let tt=e=>({x:e.x,y:e.y,zoom:e.k}),tn=({x:e,y:t,zoom:n})=>_.GS.translate(e,t).scale(n),tr=(e,t)=>e.target.closest(`.${t}`),ti=(e,t)=>2===t&&Array.isArray(e)&&e.includes(2),to=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,ta=(e,t=0,n=to,r=()=>{})=>{let i="number"==typeof t&&t>0;return i||r(),i?e.transition().duration(t).ease(n).on("end",r):e},tl=e=>{let t=e.ctrlKey&&es()?10:1;return-e.deltaY*(1===e.deltaMode?.05:e.deltaMode?1:.002)*t};function ts({domNode:e,minZoom:t,maxZoom:n,paneClickDistance:r,translateExtent:o,viewport:a,onPanZoom:l,onPanZoomStart:s,onPanZoomEnd:u,onDraggingChange:c}){let h={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{x:0,y:0,zoom:0},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},p=e.getBoundingClientRect(),m=(0,_.s_)().clickDistance(!et(r)||r<0?0:r).scaleExtent([t,n]).translateExtent(o),y=(0,f.A)(e).call(m);b({x:a.x,y:a.y,zoom:H(a.zoom,t,n)},[[0,0],[p.width,p.height]],o);let g=y.on("wheel.zoom"),v=y.on("dblclick.zoom");function x(e,t){return y?new Promise(n=>{m?.interpolate(t?.interpolate==="linear"?A.A:E.A).transform(ta(y,t?.duration,t?.ease,()=>n(!0)),e)}):Promise.resolve(!1)}function w(){m.on("zoom",null)}async function b(e,t,n){let r=tn(e),i=m?.constrain()(r,t,n);return i&&await x(i),new Promise(e=>e(i))}return m.wheelDelta(tl),{update:function({noWheelClassName:e,noPanClassName:t,onPaneContextMenu:n,userSelectionActive:r,panOnScroll:o,panOnDrag:a,panOnScrollMode:f,panOnScrollSpeed:p,preventScrolling:x,zoomOnPinch:b,zoomOnScroll:_,zoomOnDoubleClick:A,zoomActivationKeyPressed:E,lib:M,onTransformChange:k}){r&&!h.isZoomingOrPanning&&w();let C=!o||E||r?function({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,i){let o="wheel"===r.type,a=!t&&o&&!r.ctrlKey,l=tr(r,e);if(r.ctrlKey&&o&&l&&r.preventDefault(),a||l)return null;r.preventDefault(),n.call(this,r,i)}}({noWheelClassName:e,preventScrolling:x,d3ZoomHandler:g}):function({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:o,panOnScrollSpeed:a,zoomOnPinch:l,onPanZoomStart:s,onPanZoom:u,onPanZoomEnd:c}){return f=>{if(tr(f,t))return!1;f.preventDefault(),f.stopImmediatePropagation();let h=n.property("__zoom").k||1;if(f.ctrlKey&&l){let e=(0,d.A)(f),t=h*Math.pow(2,tl(f));r.scaleTo(n,t,e,f);return}let p=1===f.deltaMode?20:1,m=o===i.Vertical?0:f.deltaX*p,y=o===i.Horizontal?0:f.deltaY*p;!es()&&f.shiftKey&&o!==i.Vertical&&(m=f.deltaY*p,y=0),r.translateBy(n,-(m/h)*a,-(y/h)*a,{internal:!0});let g=tt(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling||(e.isPanScrolling=!0,s?.(f,g)),e.isPanScrolling&&(u?.(f,g),e.panScrollTimeout=setTimeout(()=>{c?.(f,g),e.isPanScrolling=!1},150))}}({zoomPanValues:h,noWheelClassName:e,d3Selection:y,d3Zoom:m,panOnScrollMode:f,panOnScrollSpeed:p,zoomOnPinch:b,onPanZoomStart:s,onPanZoom:l,onPanZoomEnd:u});if(y.on("wheel.zoom",C,{passive:!1}),!r){let e=function({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{if(r.sourceEvent?.internal)return;let i=tt(r.transform);e.mouseButton=r.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=i,r.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(r.sourceEvent,i)}}({zoomPanValues:h,onDraggingChange:c,onPanZoomStart:s});m.on("start",e);let t=function({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:i}){return o=>{e.usedRightMouseButton=!!(n&&ti(t,e.mouseButton??0)),o.sourceEvent?.sync||r([o.transform.x,o.transform.y,o.transform.k]),i&&!o.sourceEvent?.internal&&i?.(o.sourceEvent,tt(o.transform))}}({zoomPanValues:h,panOnDrag:a,onPaneContextMenu:!!n,onPanZoom:l,onTransformChange:k});m.on("zoom",t);let r=function({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:i,onPaneContextMenu:o}){return a=>{if(!a.sourceEvent?.internal){let l,s;if(e.isZoomingOrPanning=!1,o&&ti(t,e.mouseButton??0)&&!e.usedRightMouseButton&&a.sourceEvent&&o(a.sourceEvent),e.usedRightMouseButton=!1,r(!1),i&&(l=e.prevViewport,s=a.transform,l.x!==s.x||l.y!==s.y||l.zoom!==s.k)){let t=tt(a.transform);e.prevViewport=t,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{i?.(a.sourceEvent,t)},150*!!n)}}}}({zoomPanValues:h,panOnDrag:a,panOnScroll:o,onPaneContextMenu:n,onPanZoomEnd:u,onDraggingChange:c});m.on("end",r)}let R=function({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:i,zoomOnDoubleClick:o,userSelectionActive:a,noWheelClassName:l,noPanClassName:s,lib:u}){return c=>{let f=e||t,d=n&&c.ctrlKey;if(1===c.button&&"mousedown"===c.type&&(tr(c,`${u}-flow__node`)||tr(c,`${u}-flow__edge`)))return!0;if(!r&&!f&&!i&&!o&&!n||a||tr(c,l)&&"wheel"===c.type||tr(c,s)&&("wheel"!==c.type||i&&"wheel"===c.type&&!e)||!n&&c.ctrlKey&&"wheel"===c.type)return!1;if(!n&&"touchstart"===c.type&&c.touches?.length>1)return c.preventDefault(),!1;if(!f&&!i&&!d&&"wheel"===c.type||!r&&("mousedown"===c.type||"touchstart"===c.type)||Array.isArray(r)&&!r.includes(c.button)&&"mousedown"===c.type)return!1;let h=Array.isArray(r)&&r.includes(c.button)||!c.button||c.button<=1;return(!c.ctrlKey||"wheel"===c.type)&&h}}({zoomActivationKeyPressed:E,panOnDrag:a,zoomOnScroll:_,panOnScroll:o,zoomOnDoubleClick:A,zoomOnPinch:b,userSelectionActive:r,noPanClassName:t,noWheelClassName:e,lib:M});m.filter(R),A?y.on("dblclick.zoom",v):y.on("dblclick.zoom",null)},destroy:w,setViewport:async function e(e,t){let n=tn(e);return await x(n,t),new Promise(e=>e(n))},setViewportConstrained:b,getViewport:function(){let e=y?(0,_._V)(y.node()):{x:0,y:0,k:1};return{x:e.x,y:e.y,zoom:e.k}},scaleTo:function(e,t){return y?new Promise(n=>{m?.interpolate(t?.interpolate==="linear"?A.A:E.A).scaleTo(ta(y,t?.duration,t?.ease,()=>n(!0)),e)}):Promise.resolve(!1)},scaleBy:function(e,t){return y?new Promise(n=>{m?.interpolate(t?.interpolate==="linear"?A.A:E.A).scaleBy(ta(y,t?.duration,t?.ease,()=>n(!0)),e)}):Promise.resolve(!1)},setScaleExtent:function(e){m?.scaleExtent(e)},setTranslateExtent:function(e){m?.translateExtent(e)},syncViewport:function(e){if(y){let t=tn(e),n=y.property("__zoom");(n.k!==e.zoom||n.x!==e.x||n.y!==e.y)&&m?.transform(y,t,null,{sync:!0})}},setClickDistance:function(e){let t=!et(e)||e<0?0:e;m?.clickDistance(t)}}}!function(e){e.Line="line",e.Handle="handle"}(u||(u={}));let tu=["top-left","top-right","bottom-left","bottom-right"],tc=["top","right","bottom","left"];function tf(e,t){return Math.max(0,t-e)}function td(e,t){return Math.max(0,e-t)}function th(e,t,n){return Math.max(0,t-e,e-n)}let tp={width:0,height:0,x:0,y:0},tm={...tp,pointerX:0,pointerY:0,aspectRatio:1};function ty({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:i}){let o=(0,f.A)(e);return{update:function({controlPosition:e,boundaries:a,keepAspectRatio:l,resizeDirection:s,onResizeStart:u,onResize:c,onResizeEnd:f,shouldResize:d}){let h,p,m,y,g={...tp},v={...tm},x=function(e){let t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:e.includes("left"),affectsY:e.includes("top")}}(e),w=null,_=[],A=b().on("start",e=>{let{nodeLookup:r,transform:i,snapGrid:o,snapToGrid:a,nodeOrigin:l,paneDomNode:s}=n();if(!(h=r.get(t)))return;w=s?.getBoundingClientRect()??null;let{xSnapped:c,ySnapped:f}=ey(e.sourceEvent,{transform:i,snapGrid:o,snapToGrid:a,containerBounds:w});if(v={...g={width:h.measured.width??0,height:h.measured.height??0,x:h.position.x??0,y:h.position.y??0},pointerX:c,pointerY:f,aspectRatio:g.width/g.height},p=void 0,h.parentId&&("parent"===h.extent||h.expandParent)){var d;m=(p=r.get(h.parentId))&&"parent"===h.extent?[[0,0],[(d=p).measured.width,d.measured.height]]:void 0}for(let[e,n]of(_=[],y=void 0,r))if(n.parentId===t&&(_.push({id:e,position:{...n.position},extent:n.extent}),"parent"===n.extent||n.expandParent)){let e=function(e,t,n){let r=t.position.x+e.position.x,i=t.position.y+e.position.y,o=e.measured.width??0,a=e.measured.height??0,l=n[0]*o,s=n[1]*a;return[[r-l,i-s],[r+o-l,i+a-s]]}(n,h,n.origin??l);y=y?[[Math.min(e[0][0],y[0][0]),Math.min(e[0][1],y[0][1])],[Math.max(e[1][0],y[1][0]),Math.max(e[1][1],y[1][1])]]:e}u?.(e,{...g})}).on("drag",e=>{let{transform:t,snapGrid:i,snapToGrid:o,nodeOrigin:u}=n(),f=ey(e.sourceEvent,{transform:t,snapGrid:i,snapToGrid:o,containerBounds:w}),b=[];if(!h)return;let{x:A,y:E,width:M,height:k}=g,C={},R=h.origin??u,{width:S,height:N,x:P,y:O}=function(e,t,n,r,i,o,a,l){var s,u,c,f;let{affectsX:d,affectsY:h}=t,{isHorizontal:p,isVertical:m}=t,y=p&&m,{xSnapped:g,ySnapped:v}=n,{minWidth:x,maxWidth:w,minHeight:b,maxHeight:_}=r,{x:A,y:E,width:M,height:k,aspectRatio:C}=e,R=Math.floor(p?g-e.pointerX:0),S=Math.floor(m?v-e.pointerY:0),N=M+(d?-R:R),P=k+(h?-S:S),O=-o[0]*M,j=-o[1]*k,D=th(N,x,w),I=th(P,b,_);if(a){let e=0,t=0;d&&R<0?e=tf(A+R+O,a[0][0]):!d&&R>0&&(e=td(A+N+O,a[1][0])),h&&S<0?t=tf(E+S+j,a[0][1]):!h&&S>0&&(t=td(E+P+j,a[1][1])),D=Math.max(D,e),I=Math.max(I,t)}if(l){let e=0,t=0;d&&R>0?e=td(A+R,l[0][0]):!d&&R<0&&(e=tf(A+N,l[1][0])),h&&S>0?t=td(E+S,l[0][1]):!h&&S<0&&(t=tf(E+P,l[1][1])),D=Math.max(D,e),I=Math.max(I,t)}if(i){if(p){(D=Math.max(D,th(N/C,b,_)*C),a)&&(D=Math.max(D,(d||h)&&(!d||h||!y)?tf(E+j+(d?R:-R)/C,a[0][1])*C:td(E+j+N/C,a[1][1])*C));l&&(D=Math.max(D,(d||h)&&(!d||h||!y)?td(E+(d?R:-R)/C,l[0][1])*C:tf(E+N/C,l[1][1])*C))}if(m){(I=Math.max(I,th(P*C,x,w)/C),a)&&(I=Math.max(I,(d||h)&&(!h||d||!y)?tf(A+(h?S:-S)*C+O,a[0][0])/C:td(A+P*C+O,a[1][0])/C));l&&(I=Math.max(I,(d||h)&&(!h||d||!y)?td(A+(h?S:-S)*C,l[0][0])/C:tf(A+P*C,l[1][0])/C))}}S+=S<0?I:-I,R+=R<0?D:-D,i&&(y?N>P*C?S=((s=d,u=h,s?!u:u)?-R:R)/C:R=((c=d,f=h,c?!f:f)?-S:S)*C:p?(S=R/C,h=d):(R=S*C,d=h));let T=d?A+R:A,L=h?E+S:E;return{width:M+(d?-R:R),height:k+(h?-S:S),x:o[0]*R*(d?-1:1)+T,y:o[1]*S*(h?-1:1)+L}}(v,x,f,a,l,R,m,y),j=S!==M,D=N!==k,I=P!==A&&j,T=O!==E&&D;if(!I&&!T&&!j&&!D)return;if((I||T||1===R[0]||1===R[1])&&(C.x=I?P:g.x,C.y=T?O:g.y,g.x=C.x,g.y=C.y,_.length>0)){let e=P-A,t=O-E;for(let n of _)n.position={x:n.position.x-e+R[0]*(S-M),y:n.position.y-t+R[1]*(N-k)},b.push(n)}if((j||D)&&(C.width=j&&(!s||"horizontal"===s)?S:g.width,C.height=D&&(!s||"vertical"===s)?N:g.height,g.width=C.width,g.height=C.height),p&&h.expandParent){let e=R[0]*(C.width??0);C.x&&C.x<e&&(g.x=e,v.x=v.x-(C.x-e));let t=R[1]*(C.height??0);C.y&&C.y<t&&(g.y=t,v.y=v.y-(C.y-t))}let L=function({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:i,affectsY:o}){let a=e-t,l=n-r,s=[a>0?1:a<0?-1:0,l>0?1:l<0?-1:0];return a&&i&&(s[0]=-1*s[0]),l&&o&&(s[1]=-1*s[1]),s}({width:g.width,prevWidth:M,height:g.height,prevHeight:k,affectsX:x.affectsX,affectsY:x.affectsY}),z={...g,direction:L};!1!==d?.(e,z)&&(c?.(e,z),r(C,b))}).on("end",e=>{f?.(e,{...g}),i?.({...g})});o.call(A)},destroy:function(){o.on(".drag",null)}}}},5359:(e,t,n)=>{"use strict";n.d(t,{hO:()=>s,sG:()=>l});var r=n(49568),i=n(96177),o=n(98325),a=n(69644),l=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((e,t)=>{let n=(0,o.TL)(`Primitive.${t}`),i=r.forwardRef((e,r)=>{let{asChild:i,...o}=e;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,a.jsx)(i?n:t,{...o,ref:r})});return i.displayName=`Primitive.${t}`,{...e,[t]:i}},{});function s(e,t){e&&i.flushSync(()=>e.dispatchEvent(t))}},5510:(e,t,n)=>{"use strict";function r(e,t,n){if(!t.has(e))throw TypeError("attempted to "+n+" private field on non-instance");return t.get(e)}function i(e,t){var n=r(e,t,"get");return n.get?n.get.call(e):n.value}function o(e,t,n){var i=r(e,t,"set");if(i.set)i.set.call(e,n);else{if(!i.writable)throw TypeError("attempted to set read only private field");i.value=n}return n}n.d(t,{N:()=>d});var a,l=n(49568),s=n(92911),u=n(99745),c=n(98325),f=n(69644);function d(e){let t=e+"CollectionProvider",[n,r]=(0,s.A)(t),[i,o]=n(t,{collectionRef:{current:null},itemMap:new Map}),a=e=>{let{scope:t,children:n}=e,r=l.useRef(null),o=l.useRef(new Map).current;return(0,f.jsx)(i,{scope:t,itemMap:o,collectionRef:r,children:n})};a.displayName=t;let d=e+"CollectionSlot",h=(0,c.TL)(d),p=l.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=o(d,n),a=(0,u.s)(t,i.collectionRef);return(0,f.jsx)(h,{ref:a,children:r})});p.displayName=d;let m=e+"CollectionItemSlot",y="data-radix-collection-item",g=(0,c.TL)(m),v=l.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,a=l.useRef(null),s=(0,u.s)(t,a),c=o(m,n);return l.useEffect(()=>(c.itemMap.set(a,{ref:a,...i}),()=>void c.itemMap.delete(a))),(0,f.jsx)(g,{...{[y]:""},ref:s,children:r})});return v.displayName=m,[{Provider:a,Slot:p,ItemSlot:v},function(t){let n=o(e+"CollectionConsumer",t);return l.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll("[".concat(y,"]")));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])},r]}var h=new WeakMap;function p(e,t){if("at"in Array.prototype)return Array.prototype.at.call(e,t);let n=function(e,t){let n=e.length,r=m(t),i=r>=0?r:n+r;return i<0||i>=n?-1:i}(e,t);return -1===n?void 0:e[n]}function m(e){return e!=e||0===e?0:Math.trunc(e)}a=new WeakMap,class e extends Map{set(e,t){return h.get(this)&&(this.has(e)?i(this,a)[i(this,a).indexOf(e)]=e:i(this,a).push(e)),super.set(e,t),this}insert(e,t,n){let r,o=this.has(t),l=i(this,a).length,s=m(e),u=s>=0?s:l+s,c=u<0||u>=l?-1:u;if(c===this.size||o&&c===this.size-1||-1===c)return this.set(t,n),this;let f=this.size+ +!o;s<0&&u++;let d=[...i(this,a)],h=!1;for(let e=u;e<f;e++)if(u===e){let i=d[e];d[e]===t&&(i=d[e+1]),o&&this.delete(t),r=this.get(i),this.set(t,n)}else{h||d[e-1]!==t||(h=!0);let n=d[h?e:e-1],i=r;r=this.get(n),this.delete(n),this.set(n,i)}return this}with(t,n,r){let i=new e(this);return i.insert(t,n,r),i}before(e){let t=i(this,a).indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,n){let r=i(this,a).indexOf(e);return -1===r?this:this.insert(r,t,n)}after(e){let t=i(this,a).indexOf(e);if(-1!==(t=-1===t||t===this.size-1?-1:t+1))return this.entryAt(t)}setAfter(e,t,n){let r=i(this,a).indexOf(e);return -1===r?this:this.insert(r+1,t,n)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return o(this,a,[]),super.clear()}delete(e){let t=super.delete(e);return t&&i(this,a).splice(i(this,a).indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return void 0!==t&&this.delete(t)}at(e){let t=p(i(this,a),e);if(void 0!==t)return this.get(t)}entryAt(e){let t=p(i(this,a),e);if(void 0!==t)return[t,this.get(t)]}indexOf(e){return i(this,a).indexOf(e)}keyAt(e){return p(i(this,a),e)}from(e,t){let n=this.indexOf(e);if(-1===n)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.at(r)}keyFrom(e,t){let n=this.