@actalk/inkos-studio 1.6.3 → 1.7.0

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.
Files changed (67) hide show
  1. package/dist/api/server.d.ts.map +1 -1
  2. package/dist/api/server.js +402 -113
  3. package/dist/api/server.js.map +1 -1
  4. package/dist/assets/FilmWizard-DMFBbaXo.js +1 -0
  5. package/dist/assets/FlowView-C1NMbKwK.js +7 -0
  6. package/dist/assets/{_baseUniq-B-ZYRDWx.js → _baseUniq-DSlQQdBD.js} +1 -1
  7. package/dist/assets/{arc-Ciw3FGtr.js → arc-Dns2Uhcf.js} +1 -1
  8. package/dist/assets/{architectureDiagram-Q4EWVU46-mC_rz2X6.js → architectureDiagram-Q4EWVU46-C4o80QfP.js} +1 -1
  9. package/dist/assets/{blockDiagram-DXYQGD6D-D_GMBRzY.js → blockDiagram-DXYQGD6D-v8Jrngon.js} +1 -1
  10. package/dist/assets/{c4Diagram-AHTNJAMY-CvmmAOg5.js → c4Diagram-AHTNJAMY-B1Fujpc3.js} +1 -1
  11. package/dist/assets/channel-DYtAlgfX.js +1 -0
  12. package/dist/assets/{chunk-4BX2VUAB-BPr0k8sP.js → chunk-4BX2VUAB-BaFvLxj9.js} +1 -1
  13. package/dist/assets/{chunk-4TB4RGXK-D-Y1Qj_T.js → chunk-4TB4RGXK-B-9uyAsr.js} +1 -1
  14. package/dist/assets/{chunk-55IACEB6-Bug_ufgD.js → chunk-55IACEB6-DhZyrHsN.js} +1 -1
  15. package/dist/assets/{chunk-EDXVE4YY-C7tD8L3k.js → chunk-EDXVE4YY-OD0vcvaC.js} +1 -1
  16. package/dist/assets/{chunk-FMBD7UC4-BU7HNA1K.js → chunk-FMBD7UC4-Dp2GQRr5.js} +1 -1
  17. package/dist/assets/{chunk-OYMX7WX6-DQ_CIv08.js → chunk-OYMX7WX6-D3r5Nwmb.js} +1 -1
  18. package/dist/assets/{chunk-QZHKN3VN-HODyXosI.js → chunk-QZHKN3VN-DnYd3GKf.js} +1 -1
  19. package/dist/assets/{chunk-YZCP3GAM-7Y8K_8MD.js → chunk-YZCP3GAM-DYexb8Gp.js} +1 -1
  20. package/dist/assets/classDiagram-6PBFFD2Q-DQWMsmEX.js +1 -0
  21. package/dist/assets/classDiagram-v2-HSJHXN6E-DQWMsmEX.js +1 -0
  22. package/dist/assets/clone-Cax418xZ.js +1 -0
  23. package/dist/assets/{cose-bilkent-S5V4N54A-D2kYbpZy.js → cose-bilkent-S5V4N54A-CVl0lUPg.js} +1 -1
  24. package/dist/assets/{dagre-KV5264BT-BlyZQ0n0.js → dagre-KV5264BT-BjmDwv13.js} +1 -1
  25. package/dist/assets/{diagram-5BDNPKRD-C3lJ6ObZ.js → diagram-5BDNPKRD-CPHkNiE-.js} +1 -1
  26. package/dist/assets/{diagram-G4DWMVQ6-hx-WGqJX.js → diagram-G4DWMVQ6-BhmoLr3O.js} +1 -1
  27. package/dist/assets/{diagram-MMDJMWI5-CdI5Z_ZJ.js → diagram-MMDJMWI5-D16xeq7f.js} +1 -1
  28. package/dist/assets/{diagram-TYMM5635-BmtYRsNe.js → diagram-TYMM5635-BaELRM0R.js} +1 -1
  29. package/dist/assets/{erDiagram-SMLLAGMA-DPokxoLy.js → erDiagram-SMLLAGMA-B2aLymvv.js} +1 -1
  30. package/dist/assets/{flowDiagram-DWJPFMVM-DFnf6GAZ.js → flowDiagram-DWJPFMVM-DdKH_wgd.js} +1 -1
  31. package/dist/assets/{ganttDiagram-T4ZO3ILL-ymFoiBFD.js → ganttDiagram-T4ZO3ILL-B6bjg7qJ.js} +1 -1
  32. package/dist/assets/{gitGraphDiagram-UUTBAWPF-BOAZqylM.js → gitGraphDiagram-UUTBAWPF-CY2CyY-W.js} +1 -1
  33. package/dist/assets/{graph-BMumGBmN.js → graph-C0NBXw-9.js} +1 -1
  34. package/dist/assets/{highlighted-body-OFNGDK62-DRX5PypI.js → highlighted-body-OFNGDK62-CkWd2EdN.js} +1 -1
  35. package/dist/assets/index-BMp83egq.css +1 -0
  36. package/dist/assets/{index-MiIZL4f3.js → index-Bx0bFhkr.js} +326 -316
  37. package/dist/assets/{infoDiagram-42DDH7IO-D0iCgAlu.js → infoDiagram-42DDH7IO-D0Q7gFDt.js} +1 -1
  38. package/dist/assets/{ishikawaDiagram-UXIWVN3A-WtqHTEzb.js → ishikawaDiagram-UXIWVN3A-CrrH-P2c.js} +1 -1
  39. package/dist/assets/{journeyDiagram-VCZTEJTY-DUlKzcQ-.js → journeyDiagram-VCZTEJTY-C0fvpM7W.js} +1 -1
  40. package/dist/assets/{kanban-definition-6JOO6SKY-COYae0oO.js → kanban-definition-6JOO6SKY-CMM-2rp8.js} +1 -1
  41. package/dist/assets/{layout-Et_h2gsr.js → layout-B2QGzq_V.js} +1 -1
  42. package/dist/assets/{linear-DY_vot7D.js → linear-BQ-iBxey.js} +1 -1
  43. package/dist/assets/{min-CImNjYIc.js → min-D505DuPN.js} +1 -1
  44. package/dist/assets/{mindmap-definition-QFDTVHPH-zOJ7uKnl.js → mindmap-definition-QFDTVHPH-CYRf42pX.js} +2 -2
  45. package/dist/assets/{pieDiagram-DEJITSTG-BftexWKs.js → pieDiagram-DEJITSTG-CC8K2Mwc.js} +1 -1
  46. package/dist/assets/{quadrantDiagram-34T5L4WZ-CHmM6MYD.js → quadrantDiagram-34T5L4WZ-DPopTEAi.js} +1 -1
  47. package/dist/assets/{requirementDiagram-MS252O5E-eMzrziUe.js → requirementDiagram-MS252O5E-C3ewlVOB.js} +1 -1
  48. package/dist/assets/{sankeyDiagram-XADWPNL6-B-Bgmxmu.js → sankeyDiagram-XADWPNL6-B_OEE-2a.js} +1 -1
  49. package/dist/assets/{sequenceDiagram-FGHM5R23-cFT-__W_.js → sequenceDiagram-FGHM5R23-DOcJot11.js} +1 -1
  50. package/dist/assets/{stateDiagram-FHFEXIEX-CVnHwqCo.js → stateDiagram-FHFEXIEX-CxQZgNz4.js} +1 -1
  51. package/dist/assets/stateDiagram-v2-QKLJ7IA2-D2VCh5-K.js +1 -0
  52. package/dist/assets/{timeline-definition-GMOUNBTQ-CKbNRuf9.js → timeline-definition-GMOUNBTQ-ZC7OAV2y.js} +1 -1
  53. package/dist/assets/{value-IOfiG7E7.js → value-Cr6rlNd8.js} +1 -1
  54. package/dist/assets/{vennDiagram-DHZGUBPP-BDoxftwQ.js → vennDiagram-DHZGUBPP-ClWvcTEE.js} +4 -4
  55. package/dist/assets/{wardley-RL74JXVD-5TXAieIJ.js → wardley-RL74JXVD-BGm2zW6Q.js} +1 -1
  56. package/dist/assets/{wardleyDiagram-NUSXRM2D-CFpD2tIy.js → wardleyDiagram-NUSXRM2D-BKVs8NMK.js} +1 -1
  57. package/dist/assets/{xychartDiagram-5P7HB3ND-cP5C2vcw.js → xychartDiagram-5P7HB3ND-DTIdAaRC.js} +1 -1
  58. package/dist/index.html +2 -2
  59. package/package.json +2 -2
  60. package/dist/assets/FilmWizard-C_1W4acq.js +0 -1
  61. package/dist/assets/FlowView-DvrwPvo2.js +0 -7
  62. package/dist/assets/channel-F10GB4f_.js +0 -1
  63. package/dist/assets/classDiagram-6PBFFD2Q-BqBb7BDW.js +0 -1
  64. package/dist/assets/classDiagram-v2-HSJHXN6E-BqBb7BDW.js +0 -1
  65. package/dist/assets/clone-DOQmcAsj.js +0 -1
  66. package/dist/assets/index-BZMnkfN7.css +0 -1
  67. package/dist/assets/stateDiagram-v2-QKLJ7IA2-nhhJvKGq.js +0 -1
@@ -1,7 +0,0 @@
1
- import{d as ae,bp as Zn,bq as Ht,br as vt,bs as Et,bt as yr,bu as xr,bv as wr,r as z,j as C,aJ as br,aI as vr,bw as Er}from"./index-MiIZL4f3.js";import{i as St}from"./value-IOfiG7E7.js";function Sr(e){let t;for(;t=e.sourceEvent;)e=t;return e}function ue(e,t){if(e=Sr(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=e.clientX,o.y=e.clientY,o=o.matrixTransform(t.getScreenCTM().inverse()),[o.x,o.y]}if(t.getBoundingClientRect){var s=t.getBoundingClientRect();return[e.clientX-s.left-t.clientLeft,e.clientY-s.top-t.clientTop]}}return[e.pageX,e.pageY]}const Nr={passive:!1},Ye={capture:!0,passive:!1};function Nt(e){e.stopImmediatePropagation()}function De(e){e.preventDefault(),e.stopImmediatePropagation()}function Kn(e){var t=e.document.documentElement,n=ae(e).on("dragstart.drag",De,Ye);"onselectstart"in t?n.on("selectstart.drag",De,Ye):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function Un(e,t){var n=e.document.documentElement,o=ae(e).on("dragstart.drag",null);t&&(o.on("click.drag",De,Ye),setTimeout(function(){o.on("click.drag",null)},0)),"onselectstart"in n?o.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const tt=e=>()=>e;function _t(e,{sourceEvent:t,subject:n,target:o,identifier:s,active:r,x:i,y:a,dx:d,dy:u,dispatch:h}){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:o,enumerable:!0,configurable:!0},identifier:{value:s,enumerable:!0,configurable:!0},active:{value:r,enumerable:!0,configurable:!0},x:{value:i,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:d,enumerable:!0,configurable:!0},dy:{value:u,enumerable:!0,configurable:!0},_:{value:h}})}_t.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Mr(e){return!e.ctrlKey&&!e.button}function Cr(){return this.parentNode}function Ir(e,t){return t??{x:e.x,y:e.y}}function kr(){return navigator.maxTouchPoints||"ontouchstart"in this}function Qn(){var e=Mr,t=Cr,n=Ir,o=kr,s={},r=Zn("start","drag","end"),i=0,a,d,u,h,c=0;function l(x){x.on("mousedown.drag",m).filter(o).on("touchstart.drag",y).on("touchmove.drag",g,Nr).on("touchend.drag touchcancel.drag",v).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function m(x,k){if(!(h||!e.call(this,x,k))){var S=f(this,t.call(this,x,k),x,k,"mouse");S&&(ae(x.view).on("mousemove.drag",p,Ye).on("mouseup.drag",b,Ye),Kn(x.view),Nt(x),u=!1,a=x.clientX,d=x.clientY,S("start",x))}}function p(x){if(De(x),!u){var k=x.clientX-a,S=x.clientY-d;u=k*k+S*S>c}s.mouse("drag",x)}function b(x){ae(x.view).on("mousemove.drag mouseup.drag",null),Un(x.view,u),De(x),s.mouse("end",x)}function y(x,k){if(e.call(this,x,k)){var S=x.changedTouches,_=t.call(this,x,k),A=S.length,T,V;for(T=0;T<A;++T)(V=f(this,_,x,k,S[T].identifier,S[T]))&&(Nt(x),V("start",x,S[T]))}}function g(x){var k=x.changedTouches,S=k.length,_,A;for(_=0;_<S;++_)(A=s[k[_].identifier])&&(De(x),A("drag",x,k[_]))}function v(x){var k=x.changedTouches,S=k.length,_,A;for(h&&clearTimeout(h),h=setTimeout(function(){h=null},500),_=0;_<S;++_)(A=s[k[_].identifier])&&(Nt(x),A("end",x,k[_]))}function f(x,k,S,_,A,T){var V=r.copy(),I=ue(T||S,k),D,B,w;if((w=n.call(x,new _t("beforestart",{sourceEvent:S,target:l,identifier:A,active:i,x:I[0],y:I[1],dx:0,dy:0,dispatch:V}),_))!=null)return D=w.x-I[0]||0,B=w.y-I[1]||0,function $(N,E,P){var M=I,L;switch(N){case"start":s[A]=$,L=i++;break;case"end":delete s[A],--i;case"drag":I=ue(P||E,k),L=i;break}V.call(N,x,new _t(N,{sourceEvent:E,subject:w,target:l,identifier:A,active:L,x:I[0]+D,y:I[1]+B,dx:I[0]-M[0],dy:I[1]-M[1],dispatch:V}),_)}}return l.filter=function(x){return arguments.length?(e=typeof x=="function"?x:tt(!!x),l):e},l.container=function(x){return arguments.length?(t=typeof x=="function"?x:tt(x),l):t},l.subject=function(x){return arguments.length?(n=typeof x=="function"?x:tt(x),l):n},l.touchable=function(x){return arguments.length?(o=typeof x=="function"?x:tt(!!x),l):o},l.on=function(){var x=r.on.apply(r,arguments);return x===r?l:x},l.clickDistance=function(x){return arguments.length?(c=(x=+x)*x,l):Math.sqrt(c)},l}var Pr=1e-12;function sn(e){return((e=Math.exp(e))+1/e)/2}function $r(e){return((e=Math.exp(e))-1/e)/2}function _r(e){return((e=Math.exp(2*e))-1)/(e+1)}const at=(function e(t,n,o){function s(r,i){var a=r[0],d=r[1],u=r[2],h=i[0],c=i[1],l=i[2],m=h-a,p=c-d,b=m*m+p*p,y,g;if(b<Pr)g=Math.log(l/u)/t,y=function(_){return[a+_*m,d+_*p,u*Math.exp(t*_*g)]};else{var v=Math.sqrt(b),f=(l*l-u*u+o*b)/(2*u*n*v),x=(l*l-u*u-o*b)/(2*l*n*v),k=Math.log(Math.sqrt(f*f+1)-f),S=Math.log(Math.sqrt(x*x+1)-x);g=(S-k)/t,y=function(_){var A=_*g,T=sn(k),V=u/(n*v)*(T*_r(t*A+k)-$r(k));return[a+V*m,d+V*p,u*T/sn(t*A+k)]}}return y.duration=g*1e3*t/Math.SQRT2,y}return s.rho=function(r){var i=Math.max(.001,+r),a=i*i,d=a*a;return e(i,a,d)},s})(Math.SQRT2,2,4),nt=e=>()=>e;function Ar(e,{sourceEvent:t,target:n,transform:o,dispatch:s}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:o,enumerable:!0,configurable:!0},_:{value:s}})}function Mt(e){e.stopImmediatePropagation()}function Fe(e){e.preventDefault(),e.stopImmediatePropagation()}function zr(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function Tr(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function rn(){return this.__zoom||Ht}function Dr(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function Lr(){return navigator.maxTouchPoints||"ontouchstart"in this}function jr(e,t,n){var o=e.invertX(t[0][0])-n[0][0],s=e.invertX(t[1][0])-n[1][0],r=e.invertY(t[0][1])-n[0][1],i=e.invertY(t[1][1])-n[1][1];return e.translate(s>o?(o+s)/2:Math.min(0,o)||Math.max(0,s),i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i))}function Jn(){var e=zr,t=Tr,n=jr,o=Dr,s=Lr,r=[0,1/0],i=[[-1/0,-1/0],[1/0,1/0]],a=250,d=at,u=Zn("start","zoom","end"),h,c,l,m=500,p=150,b=0,y=10;function g(w){w.property("__zoom",rn).on("wheel.zoom",A,{passive:!1}).on("mousedown.zoom",T).on("dblclick.zoom",V).filter(s).on("touchstart.zoom",I).on("touchmove.zoom",D).on("touchend.zoom touchcancel.zoom",B).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}g.transform=function(w,$,N,E){var P=w.selection?w.selection():w;P.property("__zoom",rn),w!==P?k(w,$,N,E):P.interrupt().each(function(){S(this,arguments).event(E).start().zoom(null,typeof $=="function"?$.apply(this,arguments):$).end()})},g.scaleBy=function(w,$,N,E){g.scaleTo(w,function(){var P=this.__zoom.k,M=typeof $=="function"?$.apply(this,arguments):$;return P*M},N,E)},g.scaleTo=function(w,$,N,E){g.transform(w,function(){var P=t.apply(this,arguments),M=this.__zoom,L=N==null?x(P):typeof N=="function"?N.apply(this,arguments):N,j=M.invert(L),H=typeof $=="function"?$.apply(this,arguments):$;return n(f(v(M,H),L,j),P,i)},N,E)},g.translateBy=function(w,$,N,E){g.transform(w,function(){return n(this.__zoom.translate(typeof $=="function"?$.apply(this,arguments):$,typeof N=="function"?N.apply(this,arguments):N),t.apply(this,arguments),i)},null,E)},g.translateTo=function(w,$,N,E,P){g.transform(w,function(){var M=t.apply(this,arguments),L=this.__zoom,j=E==null?x(M):typeof E=="function"?E.apply(this,arguments):E;return n(Ht.translate(j[0],j[1]).scale(L.k).translate(typeof $=="function"?-$.apply(this,arguments):-$,typeof N=="function"?-N.apply(this,arguments):-N),M,i)},E,P)};function v(w,$){return $=Math.max(r[0],Math.min(r[1],$)),$===w.k?w:new vt($,w.x,w.y)}function f(w,$,N){var E=$[0]-N[0]*w.k,P=$[1]-N[1]*w.k;return E===w.x&&P===w.y?w:new vt(w.k,E,P)}function x(w){return[(+w[0][0]+ +w[1][0])/2,(+w[0][1]+ +w[1][1])/2]}function k(w,$,N,E){w.on("start.zoom",function(){S(this,arguments).event(E).start()}).on("interrupt.zoom end.zoom",function(){S(this,arguments).event(E).end()}).tween("zoom",function(){var P=this,M=arguments,L=S(P,M).event(E),j=t.apply(P,M),H=N==null?x(j):typeof N=="function"?N.apply(P,M):N,O=Math.max(j[1][0]-j[0][0],j[1][1]-j[0][1]),Y=P.__zoom,Z=typeof $=="function"?$.apply(P,M):$,Q=d(Y.invert(H).concat(O/Y.k),Z.invert(H).concat(O/Z.k));return function(q){if(q===1)q=Z;else{var R=Q(q),F=O/R[2];q=new vt(F,H[0]-R[0]*F,H[1]-R[1]*F)}L.zoom(null,q)}})}function S(w,$,N){return!N&&w.__zooming||new _(w,$)}function _(w,$){this.that=w,this.args=$,this.active=0,this.sourceEvent=null,this.extent=t.apply(w,$),this.taps=0}_.prototype={event:function(w){return w&&(this.sourceEvent=w),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(w,$){return this.mouse&&w!=="mouse"&&(this.mouse[1]=$.invert(this.mouse[0])),this.touch0&&w!=="touch"&&(this.touch0[1]=$.invert(this.touch0[0])),this.touch1&&w!=="touch"&&(this.touch1[1]=$.invert(this.touch1[0])),this.that.__zoom=$,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(w){var $=ae(this.that).datum();u.call(w,this.that,new Ar(w,{sourceEvent:this.sourceEvent,target:g,transform:this.that.__zoom,dispatch:u}),$)}};function A(w,...$){if(!e.apply(this,arguments))return;var N=S(this,$).event(w),E=this.__zoom,P=Math.max(r[0],Math.min(r[1],E.k*Math.pow(2,o.apply(this,arguments)))),M=ue(w);if(N.wheel)(N.mouse[0][0]!==M[0]||N.mouse[0][1]!==M[1])&&(N.mouse[1]=E.invert(N.mouse[0]=M)),clearTimeout(N.wheel);else{if(E.k===P)return;N.mouse=[M,E.invert(M)],Et(this),N.start()}Fe(w),N.wheel=setTimeout(L,p),N.zoom("mouse",n(f(v(E,P),N.mouse[0],N.mouse[1]),N.extent,i));function L(){N.wheel=null,N.end()}}function T(w,...$){if(l||!e.apply(this,arguments))return;var N=w.currentTarget,E=S(this,$,!0).event(w),P=ae(w.view).on("mousemove.zoom",H,!0).on("mouseup.zoom",O,!0),M=ue(w,N),L=w.clientX,j=w.clientY;Kn(w.view),Mt(w),E.mouse=[M,this.__zoom.invert(M)],Et(this),E.start();function H(Y){if(Fe(Y),!E.moved){var Z=Y.clientX-L,Q=Y.clientY-j;E.moved=Z*Z+Q*Q>b}E.event(Y).zoom("mouse",n(f(E.that.__zoom,E.mouse[0]=ue(Y,N),E.mouse[1]),E.extent,i))}function O(Y){P.on("mousemove.zoom mouseup.zoom",null),Un(Y.view,E.moved),Fe(Y),E.event(Y).end()}}function V(w,...$){if(e.apply(this,arguments)){var N=this.__zoom,E=ue(w.changedTouches?w.changedTouches[0]:w,this),P=N.invert(E),M=N.k*(w.shiftKey?.5:2),L=n(f(v(N,M),E,P),t.apply(this,$),i);Fe(w),a>0?ae(this).transition().duration(a).call(k,L,E,w):ae(this).call(g.transform,L,E,w)}}function I(w,...$){if(e.apply(this,arguments)){var N=w.touches,E=N.length,P=S(this,$,w.changedTouches.length===E).event(w),M,L,j,H;for(Mt(w),L=0;L<E;++L)j=N[L],H=ue(j,this),H=[H,this.__zoom.invert(H),j.identifier],P.touch0?!P.touch1&&P.touch0[2]!==H[2]&&(P.touch1=H,P.taps=0):(P.touch0=H,M=!0,P.taps=1+!!h);h&&(h=clearTimeout(h)),M&&(P.taps<2&&(c=H[0],h=setTimeout(function(){h=null},m)),Et(this),P.start())}}function D(w,...$){if(this.__zooming){var N=S(this,$).event(w),E=w.changedTouches,P=E.length,M,L,j,H;for(Fe(w),M=0;M<P;++M)L=E[M],j=ue(L,this),N.touch0&&N.touch0[2]===L.identifier?N.touch0[0]=j:N.touch1&&N.touch1[2]===L.identifier&&(N.touch1[0]=j);if(L=N.that.__zoom,N.touch1){var O=N.touch0[0],Y=N.touch0[1],Z=N.touch1[0],Q=N.touch1[1],q=(q=Z[0]-O[0])*q+(q=Z[1]-O[1])*q,R=(R=Q[0]-Y[0])*R+(R=Q[1]-Y[1])*R;L=v(L,Math.sqrt(q/R)),j=[(O[0]+Z[0])/2,(O[1]+Z[1])/2],H=[(Y[0]+Q[0])/2,(Y[1]+Q[1])/2]}else if(N.touch0)j=N.touch0[0],H=N.touch0[1];else return;N.zoom("touch",n(f(L,j,H),N.extent,i))}}function B(w,...$){if(this.__zooming){var N=S(this,$).event(w),E=w.changedTouches,P=E.length,M,L;for(Mt(w),l&&clearTimeout(l),l=setTimeout(function(){l=null},m),M=0;M<P;++M)L=E[M],N.touch0&&N.touch0[2]===L.identifier?delete N.touch0:N.touch1&&N.touch1[2]===L.identifier&&delete N.touch1;if(N.touch1&&!N.touch0&&(N.touch0=N.touch1,delete N.touch1),N.touch0)N.touch0[1]=this.__zoom.invert(N.touch0[0]);else if(N.end(),N.taps===2&&(L=ue(L,this),Math.hypot(c[0]-L[0],c[1]-L[1])<y)){var j=ae(this).on("dblclick.zoom");j&&j.apply(this,arguments)}}}return g.wheelDelta=function(w){return arguments.length?(o=typeof w=="function"?w:nt(+w),g):o},g.filter=function(w){return arguments.length?(e=typeof w=="function"?w:nt(!!w),g):e},g.touchable=function(w){return arguments.length?(s=typeof w=="function"?w:nt(!!w),g):s},g.extent=function(w){return arguments.length?(t=typeof w=="function"?w:nt([[+w[0][0],+w[0][1]],[+w[1][0],+w[1][1]]]),g):t},g.scaleExtent=function(w){return arguments.length?(r[0]=+w[0],r[1]=+w[1],g):[r[0],r[1]]},g.translateExtent=function(w){return arguments.length?(i[0][0]=+w[0][0],i[1][0]=+w[1][0],i[0][1]=+w[0][1],i[1][1]=+w[1][1],g):[[i[0][0],i[0][1]],[i[1][0],i[1][1]]]},g.constrain=function(w){return arguments.length?(n=w,g):n},g.duration=function(w){return arguments.length?(a=+w,g):a},g.interpolate=function(w){return arguments.length?(d=w,g):d},g.on=function(){var w=u.on.apply(u,arguments);return w===u?g:w},g.clickDistance=function(w){return arguments.length?(b=(w=+w)*w,g):Math.sqrt(b)},g.tapDistance=function(w){return arguments.length?(y=+w,g):y},g}function ie(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,o;n<e.length;n++)(o=ie(e[n]))!==""&&(t+=(t&&" ")+o);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}const he={error001:(e="react")=>`Seems like you have not used ${e==="svelte"?"SvelteFlowProvider":"ReactFlowProvider"} as an ancestor. Help: https://${e}flow.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 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:o})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:o}", 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.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},Xe=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],eo=["Enter"," ","Escape"],to={"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"};var Le;(function(e){e.Strict="strict",e.Loose="loose"})(Le||(Le={}));var ke;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(ke||(ke={}));var We;(function(e){e.Partial="partial",e.Full="full"})(We||(We={}));const no={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var Ee;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(Ee||(Ee={}));var ct;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(ct||(ct={}));var W;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(W||(W={}));const an={[W.Left]:W.Right,[W.Right]:W.Left,[W.Top]:W.Bottom,[W.Bottom]:W.Top};function oo(e){return e===null?null:e?"valid":"invalid"}const so=e=>"id"in e&&"source"in e&&"target"in e,Hr=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),Rt=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),Ke=(e,t=[0,0])=>{const{width:n,height:o}=we(e),s=e.origin??t,r=n*s[0],i=o*s[1];return{x:e.position.x-r,y:e.position.y-i}},Rr=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((o,s)=>{const r=typeof s=="string";let i=!t.nodeLookup&&!r?s:void 0;t.nodeLookup&&(i=r?t.nodeLookup.get(s):Rt(s)?s:t.nodeLookup.get(s.id));const a=i?lt(i,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return ft(o,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return ht(n)},Ue=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},o=!1;return e.forEach(s=>{(t.filter===void 0||t.filter(s))&&(n=ft(n,lt(s)),o=!0)}),o?ht(n):{x:0,y:0,width:0,height:0}},Bt=(e,t,[n,o,s]=[0,0,1],r=!1,i=!1)=>{const a=(t.x-n)/s,d=(t.y-o)/s,u=t.width/s,h=t.height/s,c=[];for(const l of e.values()){const{measured:m,selectable:p=!0,hidden:b=!1}=l;if(i&&!p||b)continue;const y=m.width??l.width??l.initialWidth??0,g=m.height??l.height??l.initialHeight??0,{x:v,y:f}=l.internals.positionAbsolute,x=co(a,d,u,h,v,f,y,g),k=y*g,S=r&&x>0;(!l.internals.handleBounds||S||x>=k||l.dragging)&&c.push(l)}return c},Br=(e,t)=>{const n=new Set;return e.forEach(o=>{n.add(o.id)}),t.filter(o=>n.has(o.source)||n.has(o.target))};function Vr(e,t){const n=new Map,o=t!=null&&t.nodes?new Set(t.nodes.map(s=>s.id)):null;return e.forEach(s=>{s.measured.width&&s.measured.height&&((t==null?void 0:t.includeHiddenNodes)||!s.hidden)&&(!o||o.has(s.id))&&n.set(s.id,s)}),n}async function Fr({nodes:e,width:t,height:n,panZoom:o,minZoom:s,maxZoom:r},i){if(e.size===0)return!0;const a=Vr(e,i),d=Ue(a),u=Ft(d,t,n,(i==null?void 0:i.minZoom)??s,(i==null?void 0:i.maxZoom)??r,(i==null?void 0:i.padding)??.1);return await o.setViewport(u,{duration:i==null?void 0:i.duration,ease:i==null?void 0:i.ease,interpolate:i==null?void 0:i.interpolate}),!0}function ro({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:o=[0,0],nodeExtent:s,onError:r}){const i=n.get(e),a=i.parentId?n.get(i.parentId):void 0,{x:d,y:u}=a?a.internals.positionAbsolute:{x:0,y:0},h=i.origin??o;let c=i.extent||s;if(i.extent==="parent"&&!i.expandParent)if(!a)r==null||r("005",he.error005());else{const m=a.measured.width,p=a.measured.height;m&&p&&(c=[[d,u],[d+m,u+p]])}else a&&$e(i.extent)&&(c=[[i.extent[0][0]+d,i.extent[0][1]+u],[i.extent[1][0]+d,i.extent[1][1]+u]]);const l=$e(c)?Pe(t,c,i.measured):t;return(i.measured.width===void 0||i.measured.height===void 0)&&(r==null||r("015",he.error015())),{position:{x:l.x-d+(i.measured.width??0)*h[0],y:l.y-u+(i.measured.height??0)*h[1]},positionAbsolute:l}}async function Or({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:o,onBeforeDelete:s}){const r=new Set(e.map(l=>l.id)),i=[];for(const l of n){if(l.deletable===!1)continue;const m=r.has(l.id),p=!m&&l.parentId&&i.find(b=>b.id===l.parentId);(m||p)&&i.push(l)}const a=new Set(t.map(l=>l.id)),d=o.filter(l=>l.deletable!==!1),h=Br(i,d);for(const l of d)a.has(l.id)&&!h.find(p=>p.id===l.id)&&h.push(l);if(!s)return{edges:h,nodes:i};const c=await s({nodes:i,edges:h});return typeof c=="boolean"?c?{edges:h,nodes:i}:{edges:[],nodes:[]}:c}const je=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Pe=(e={x:0,y:0},t,n)=>({x:je(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:je(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function io(e,t,n){const{width:o,height:s}=we(n),{x:r,y:i}=n.internals.positionAbsolute;return Pe(e,[[r,i],[r+o,i+s]],t)}const cn=(e,t,n)=>e<t?je(Math.abs(e-t),1,t)/t:e>n?-je(Math.abs(e-n),1,t)/t:0,Vt=(e,t,n=15,o=40)=>{const s=cn(e.x,o,t.width-o)*n,r=cn(e.y,o,t.height-o)*n;return[s,r]},ft=(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)}),At=({x:e,y:t,width:n,height:o})=>({x:e,y:t,x2:e+n,y2:t+o}),ht=({x:e,y:t,x2:n,y2:o})=>({x:e,y:t,width:n-e,height:o-t}),Ge=(e,t=[0,0])=>{var s,r;const{x:n,y:o}=Rt(e)?e.internals.positionAbsolute:Ke(e,t);return{x:n,y:o,width:((s=e.measured)==null?void 0:s.width)??e.width??e.initialWidth??0,height:((r=e.measured)==null?void 0:r.height)??e.height??e.initialHeight??0}},lt=(e,t=[0,0])=>{var s,r;const{x:n,y:o}=Rt(e)?e.internals.positionAbsolute:Ke(e,t);return{x:n,y:o,x2:n+(((s=e.measured)==null?void 0:s.width)??e.width??e.initialWidth??0),y2:o+(((r=e.measured)==null?void 0:r.height)??e.height??e.initialHeight??0)}},ao=(e,t)=>ht(ft(At(e),At(t))),co=(e,t,n,o,s,r,i,a)=>{const d=Math.max(0,Math.min(e+n,s+i)-Math.max(e,s)),u=Math.max(0,Math.min(t+o,r+a)-Math.max(t,r));return Math.ceil(d*u)},ut=(e,t)=>co(e.x,e.y,e.width,e.height,t.x,t.y,t.width,t.height),ln=e=>de(e.width)&&de(e.height)&&de(e.x)&&de(e.y),de=e=>!isNaN(e)&&isFinite(e),lo=(e,t)=>(n,o)=>{},Qe=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Je=({x:e,y:t},[n,o,s],r=!1,i=[1,1])=>{const a={x:(e-n)/s,y:(t-o)/s};return r?Qe(a,i):a},He=({x:e,y:t},[n,o,s])=>({x:e*s+n,y:t*s+o});function Ae(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function Yr(e,t,n){if(typeof e=="string"||typeof e=="number"){const o=Ae(e,n),s=Ae(e,t);return{top:o,right:s,bottom:o,left:s,x:s*2,y:o*2}}if(typeof e=="object"){const o=Ae(e.top??e.y??0,n),s=Ae(e.bottom??e.y??0,n),r=Ae(e.left??e.x??0,t),i=Ae(e.right??e.x??0,t);return{top:o,right:i,bottom:s,left:r,x:r+i,y:o+s}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function Xr(e,t,n,o,s,r){const{x:i,y:a}=He(e,[t,n,o]),{x:d,y:u}=He({x:e.x+e.width,y:e.y+e.height},[t,n,o]),h=s-d,c=r-u;return{left:Math.floor(i),top:Math.floor(a),right:Math.floor(h),bottom:Math.floor(c)}}const Ft=(e,t,n,o,s,r)=>{const i=Yr(r,t,n),a=(t-i.x)/e.width,d=(n-i.y)/e.height,u=Math.min(a,d),h=je(u,o,s),c=e.x+e.width/2,l=e.y+e.height/2,m=t/2-c*h,p=n/2-l*h,b=Xr(e,m,p,h,t,n),y={left:Math.min(b.left-i.left,0),top:Math.min(b.top-i.top,0),right:Math.min(b.right-i.right,0),bottom:Math.min(b.bottom-i.bottom,0)};return{x:m-y.left+y.right,y:p-y.top+y.bottom,zoom:h}},qe=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function $e(e){return e!=null&&e!=="parent"}function we(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function uo(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function fo(e,t={width:0,height:0},n,o,s){const r={...e},i=o.get(n);if(i){const a=i.origin||s;r.x+=i.internals.positionAbsolute.x-(t.width??0)*a[0],r.y+=i.internals.positionAbsolute.y-(t.height??0)*a[1]}return r}function un(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function Wr(){let e,t;return{promise:new Promise((o,s)=>{e=o,t=s}),resolve:e,reject:t}}function Gr(e){return{...to,...e||{}}}function Oe(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:o,containerBounds:s}){const{x:r,y:i}=fe(e),a=Je({x:r-((s==null?void 0:s.left)??0),y:i-((s==null?void 0:s.top)??0)},o),{x:d,y:u}=n?Qe(a,t):a;return{xSnapped:d,ySnapped:u,...a}}const Ot=e=>({width:e.offsetWidth,height:e.offsetHeight}),ho=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},qr=["INPUT","SELECT","TEXTAREA"];function go(e){var o,s;const t=((s=(o=e.composedPath)==null?void 0:o.call(e))==null?void 0:s[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:qr.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const po=e=>"clientX"in e,fe=(e,t)=>{var r,i;const n=po(e),o=n?e.clientX:(r=e.touches)==null?void 0:r[0].clientX,s=n?e.clientY:(i=e.touches)==null?void 0:i[0].clientY;return{x:o-((t==null?void 0:t.left)??0),y:s-((t==null?void 0:t.top)??0)}},dn=(e,t,n,o,s)=>{const r=t.querySelectorAll(`.${e}`);return!r||!r.length?null:Array.from(r).map(i=>{const a=i.getBoundingClientRect();return{id:i.getAttribute("data-handleid"),type:e,nodeId:s,position:i.getAttribute("data-handlepos"),x:(a.left-n.left)/o,y:(a.top-n.top)/o,...Ot(i)}})};function mo({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:s,sourceControlY:r,targetControlX:i,targetControlY:a}){const d=e*.125+s*.375+i*.375+n*.125,u=t*.125+r*.375+a*.375+o*.125,h=Math.abs(d-e),c=Math.abs(u-t);return[d,u,h,c]}function ot(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function fn({pos:e,x1:t,y1:n,x2:o,y2:s,c:r}){switch(e){case W.Left:return[t-ot(t-o,r),n];case W.Right:return[t+ot(o-t,r),n];case W.Top:return[t,n-ot(n-s,r)];case W.Bottom:return[t,n+ot(s-n,r)]}}function yo({sourceX:e,sourceY:t,sourcePosition:n=W.Bottom,targetX:o,targetY:s,targetPosition:r=W.Top,curvature:i=.25}){const[a,d]=fn({pos:n,x1:e,y1:t,x2:o,y2:s,c:i}),[u,h]=fn({pos:r,x1:o,y1:s,x2:e,y2:t,c:i}),[c,l,m,p]=mo({sourceX:e,sourceY:t,targetX:o,targetY:s,sourceControlX:a,sourceControlY:d,targetControlX:u,targetControlY:h});return[`M${e},${t} C${a},${d} ${u},${h} ${o},${s}`,c,l,m,p]}function xo({sourceX:e,sourceY:t,targetX:n,targetY:o}){const s=Math.abs(n-e)/2,r=n<e?n+s:n-s,i=Math.abs(o-t)/2,a=o<t?o+i:o-i;return[r,a,s,i]}function Zr({sourceNode:e,targetNode:t,selected:n=!1,zIndex:o=0,elevateOnSelect:s=!1,zIndexMode:r="basic"}){if(r==="manual")return o;const i=s&&n?o+1e3:o,a=Math.max(e.parentId||s&&e.selected?e.internals.z:0,t.parentId||s&&t.selected?t.internals.z:0);return i+a}function Kr({sourceNode:e,targetNode:t,width:n,height:o,transform:s}){const r=ft(lt(e),lt(t));r.x===r.x2&&(r.x2+=1),r.y===r.y2&&(r.y2+=1);const i={x:-s[0]/s[2],y:-s[1]/s[2],width:n/s[2],height:o/s[2]};return ut(i,ht(r))>0}const Ur=({source:e,sourceHandle:t,target:n,targetHandle:o})=>`xy-edge__${e}${t||""}-${n}${o||""}`,Qr=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),Jr=(e,t,n={})=>{var r;if(!e.source||!e.target)return(r=n.onError)==null||r.call(n,"006",he.error006()),t;const o=n.getEdgeId||Ur;let s;return so(e)?s={...e}:s={...e,id:o(e)},Qr(s,t)?t:(s.sourceHandle===null&&delete s.sourceHandle,s.targetHandle===null&&delete s.targetHandle,t.concat(s))};function wo({sourceX:e,sourceY:t,targetX:n,targetY:o}){const[s,r,i,a]=xo({sourceX:e,sourceY:t,targetX:n,targetY:o});return[`M ${e},${t}L ${n},${o}`,s,r,i,a]}const hn={[W.Left]:{x:-1,y:0},[W.Right]:{x:1,y:0},[W.Top]:{x:0,y:-1},[W.Bottom]:{x:0,y:1}},ei=({source:e,sourcePosition:t=W.Bottom,target:n})=>t===W.Left||t===W.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},gn=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function ti({source:e,sourcePosition:t=W.Bottom,target:n,targetPosition:o=W.Top,center:s,offset:r,stepPosition:i}){const a=hn[t],d=hn[o],u={x:e.x+a.x*r,y:e.y+a.y*r},h={x:n.x+d.x*r,y:n.y+d.y*r},c=ei({source:u,sourcePosition:t,target:h}),l=c.x!==0?"x":"y",m=c[l];let p=[],b,y;const g={x:0,y:0},v={x:0,y:0},[,,f,x]=xo({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[l]*d[l]===-1){l==="x"?(b=s.x??u.x+(h.x-u.x)*i,y=s.y??(u.y+h.y)/2):(b=s.x??(u.x+h.x)/2,y=s.y??u.y+(h.y-u.y)*i);const A=[{x:b,y:u.y},{x:b,y:h.y}],T=[{x:u.x,y},{x:h.x,y}];a[l]===m?p=l==="x"?A:T:p=l==="x"?T:A}else{const A=[{x:u.x,y:h.y}],T=[{x:h.x,y:u.y}];if(l==="x"?p=a.x===m?T:A:p=a.y===m?A:T,t===o){const w=Math.abs(e[l]-n[l]);if(w<=r){const $=Math.min(r-1,r-w);a[l]===m?g[l]=(u[l]>e[l]?-1:1)*$:v[l]=(h[l]>n[l]?-1:1)*$}}if(t!==o){const w=l==="x"?"y":"x",$=a[l]===d[w],N=u[w]>h[w],E=u[w]<h[w];(a[l]===1&&(!$&&N||$&&E)||a[l]!==1&&(!$&&E||$&&N))&&(p=l==="x"?A:T)}const V={x:u.x+g.x,y:u.y+g.y},I={x:h.x+v.x,y:h.y+v.y},D=Math.max(Math.abs(V.x-p[0].x),Math.abs(I.x-p[0].x)),B=Math.max(Math.abs(V.y-p[0].y),Math.abs(I.y-p[0].y));D>=B?(b=(V.x+I.x)/2,y=p[0].y):(b=p[0].x,y=(V.y+I.y)/2)}const k={x:u.x+g.x,y:u.y+g.y},S={x:h.x+v.x,y:h.y+v.y};return[[e,...k.x!==p[0].x||k.y!==p[0].y?[k]:[],...p,...S.x!==p[p.length-1].x||S.y!==p[p.length-1].y?[S]:[],n],b,y,f,x]}function ni(e,t,n,o){const s=Math.min(gn(e,t)/2,gn(t,n)/2,o),{x:r,y:i}=t;if(e.x===r&&r===n.x||e.y===i&&i===n.y)return`L${r} ${i}`;if(e.y===i){const u=e.x<n.x?-1:1,h=e.y<n.y?1:-1;return`L ${r+s*u},${i}Q ${r},${i} ${r},${i+s*h}`}const a=e.x<n.x?1:-1,d=e.y<n.y?-1:1;return`L ${r},${i+s*d}Q ${r},${i} ${r+s*a},${i}`}function zt({sourceX:e,sourceY:t,sourcePosition:n=W.Bottom,targetX:o,targetY:s,targetPosition:r=W.Top,borderRadius:i=5,centerX:a,centerY:d,offset:u=20,stepPosition:h=.5}){const[c,l,m,p,b]=ti({source:{x:e,y:t},sourcePosition:n,target:{x:o,y:s},targetPosition:r,center:{x:a,y:d},offset:u,stepPosition:h});let y=`M${c[0].x} ${c[0].y}`;for(let g=1;g<c.length-1;g++)y+=ni(c[g-1],c[g],c[g+1],i);return y+=`L${c[c.length-1].x} ${c[c.length-1].y}`,[y,l,m,p,b]}function pn(e){var t;return e&&!!(e.internals.handleBounds||(t=e.handles)!=null&&t.length)&&!!(e.measured.width||e.width||e.initialWidth)}function oi(e){var c;const{sourceNode:t,targetNode:n}=e;if(!pn(t)||!pn(n))return null;const o=t.internals.handleBounds||mn(t.handles),s=n.internals.handleBounds||mn(n.handles),r=yn((o==null?void 0:o.source)??[],e.sourceHandle),i=yn(e.connectionMode===Le.Strict?(s==null?void 0:s.target)??[]:((s==null?void 0:s.target)??[]).concat((s==null?void 0:s.source)??[]),e.targetHandle);if(!r||!i)return(c=e.onError)==null||c.call(e,"008",he.error008(r?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=(r==null?void 0:r.position)||W.Bottom,d=(i==null?void 0:i.position)||W.Top,u=_e(t,r,a),h=_e(n,i,d);return{sourceX:u.x,sourceY:u.y,targetX:h.x,targetY:h.y,sourcePosition:a,targetPosition:d}}function mn(e){if(!e)return null;const t=[],n=[];for(const o of e)o.width=o.width??1,o.height=o.height??1,o.type==="source"?t.push(o):o.type==="target"&&n.push(o);return{source:t,target:n}}function _e(e,t,n=W.Left,o=!1){const s=((t==null?void 0:t.x)??0)+e.internals.positionAbsolute.x,r=((t==null?void 0:t.y)??0)+e.internals.positionAbsolute.y,{width:i,height:a}=t??we(e);if(o)return{x:s+i/2,y:r+a/2};switch((t==null?void 0:t.position)??n){case W.Top:return{x:s+i/2,y:r};case W.Right:return{x:s+i,y:r+a/2};case W.Bottom:return{x:s+i/2,y:r+a};case W.Left:return{x:s,y:r+a/2}}}function yn(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Tt(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(o=>`${o}=${e[o]}`).join("&")}`:""}function si(e,{id:t,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:s}){const r=new Set;return e.reduce((i,a)=>([a.markerStart||o,a.markerEnd||s].forEach(d=>{if(d&&typeof d=="object"){const u=Tt(d,t);r.has(u)||(i.push({id:u,color:d.color||n,...d}),r.add(u))}}),i),[]).sort((i,a)=>i.id.localeCompare(a.id))}const bo=1e3,ri=10,Yt={nodeOrigin:[0,0],nodeExtent:Xe,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},ii={...Yt,checkEquality:!0};function Xt(e,t){const n={...e};for(const o in t)t[o]!==void 0&&(n[o]=t[o]);return n}function ai(e,t,n){const o=Xt(Yt,n);for(const s of e.values())if(s.parentId)Gt(s,e,t,o);else{const r=Ke(s,o.nodeOrigin),i=$e(s.extent)?s.extent:o.nodeExtent,a=Pe(r,i,we(s));s.internals.positionAbsolute=a}}function ci(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],o=[];for(const s of e.handles){const r={id:s.id,width:s.width??1,height:s.height??1,nodeId:e.id,x:s.x,y:s.y,position:s.position,type:s.type};s.type==="source"?n.push(r):s.type==="target"&&o.push(r)}return{source:n,target:o}}function Wt(e){return e==="manual"}function Dt(e,t,n,o={}){var h,c;const s=Xt(ii,o),r={i:0},i=new Map(t),a=s!=null&&s.elevateNodesOnSelect&&!Wt(s.zIndexMode)?bo:0;let d=e.length>0,u=!1;t.clear(),n.clear();for(const l of e){let m=i.get(l.id);if(s.checkEquality&&l===(m==null?void 0:m.internals.userNode))t.set(l.id,m);else{const p=Ke(l,s.nodeOrigin),b=$e(l.extent)?l.extent:s.nodeExtent,y=Pe(p,b,we(l));m={...s.defaults,...l,measured:{width:(h=l.measured)==null?void 0:h.width,height:(c=l.measured)==null?void 0:c.height},internals:{positionAbsolute:y,handleBounds:ci(l,m),z:vo(l,a,s.zIndexMode),userNode:l}},t.set(l.id,m)}(m.measured===void 0||m.measured.width===void 0||m.measured.height===void 0)&&!m.hidden&&(d=!1),l.parentId&&Gt(m,t,n,o,r),u||(u=l.selected??!1)}return{nodesInitialized:d,hasSelectedNodes:u}}function li(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function Gt(e,t,n,o,s){const{elevateNodesOnSelect:r,nodeOrigin:i,nodeExtent:a,zIndexMode:d}=Xt(Yt,o),u=e.parentId,h=t.get(u);if(!h){console.warn(`Parent node ${u} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}li(e,n),s&&!h.parentId&&h.internals.rootParentIndex===void 0&&d==="auto"&&(h.internals.rootParentIndex=++s.i,h.internals.z=h.internals.z+s.i*ri),s&&h.internals.rootParentIndex!==void 0&&(s.i=h.internals.rootParentIndex);const c=r&&!Wt(d)?bo:0,{x:l,y:m,z:p}=ui(e,h,i,a,c,d),{positionAbsolute:b}=e.internals,y=l!==b.x||m!==b.y;(y||p!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:y?{x:l,y:m}:b,z:p}})}function vo(e,t,n){const o=de(e.zIndex)?e.zIndex:0;return Wt(n)?o:o+(e.selected?t:0)}function ui(e,t,n,o,s,r){const{x:i,y:a}=t.internals.positionAbsolute,d=we(e),u=Ke(e,n),h=$e(e.extent)?Pe(u,e.extent,d):u;let c=Pe({x:i+h.x,y:a+h.y},o,d);e.extent==="parent"&&(c=io(c,d,t));const l=vo(e,s,r),m=t.internals.z??0;return{x:c.x,y:c.y,z:m>=l?m+1:l}}function qt(e,t,n,o=[0,0]){var i;const s=[],r=new Map;for(const a of e){const d=t.get(a.parentId);if(!d)continue;const u=((i=r.get(a.parentId))==null?void 0:i.expandedRect)??Ge(d),h=ao(u,a.rect);r.set(a.parentId,{expandedRect:h,parent:d})}return r.size>0&&r.forEach(({expandedRect:a,parent:d},u)=>{var f;const h=d.internals.positionAbsolute,c=we(d),l=d.origin??o,m=a.x<h.x?Math.round(Math.abs(h.x-a.x)):0,p=a.y<h.y?Math.round(Math.abs(h.y-a.y)):0,b=Math.max(c.width,Math.round(a.width)),y=Math.max(c.height,Math.round(a.height)),g=(b-c.width)*l[0],v=(y-c.height)*l[1];(m>0||p>0||g||v)&&(s.push({id:u,type:"position",position:{x:d.position.x-m+g,y:d.position.y-p+v}}),(f=n.get(u))==null||f.forEach(x=>{e.some(k=>k.id===x.id)||s.push({id:x.id,type:"position",position:{x:x.position.x+m,y:x.position.y+p}})})),(c.width<a.width||c.height<a.height||m||p)&&s.push({id:u,type:"dimensions",setAttributes:!0,dimensions:{width:b+(m?l[0]*m-g:0),height:y+(p?l[1]*p-v:0)}})}),s}function di(e,t,n,o,s,r,i){const a=o==null?void 0:o.querySelector(".xyflow__viewport");let d=!1;if(!a)return{changes:[],updatedInternals:d};const u=[],h=window.getComputedStyle(a),{m22:c}=new window.DOMMatrixReadOnly(h.transform),l=[];for(const m of e.values()){const p=t.get(m.id);if(!p)continue;if(p.hidden){t.set(p.id,{...p,internals:{...p.internals,handleBounds:void 0}}),d=!0;continue}const b=Ot(m.nodeElement),y=p.measured.width!==b.width||p.measured.height!==b.height;if(!!(b.width&&b.height&&(y||!p.internals.handleBounds||m.force))){const v=m.nodeElement.getBoundingClientRect(),f=$e(p.extent)?p.extent:r;let{positionAbsolute:x}=p.internals;p.parentId&&p.extent==="parent"?x=io(x,b,t.get(p.parentId)):f&&(x=Pe(x,f,b));const k={...p,measured:b,internals:{...p.internals,positionAbsolute:x,handleBounds:{source:dn("source",m.nodeElement,v,c,p.id),target:dn("target",m.nodeElement,v,c,p.id)}}};t.set(p.id,k),p.parentId&&Gt(k,t,n,{nodeOrigin:s,zIndexMode:i}),d=!0,y&&(u.push({id:p.id,type:"dimensions",dimensions:b}),p.expandParent&&p.parentId&&l.push({id:p.id,parentId:p.parentId,rect:Ge(k,s)}))}}if(l.length>0){const m=qt(l,t,n,s);u.push(...m)}return{changes:u,updatedInternals:d}}async function fi({delta:e,panZoom:t,transform:n,translateExtent:o,width:s,height:r}){if(!t||!e.x&&!e.y)return!1;const i=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[s,r]],o);return!!i&&(i.x!==n[0]||i.y!==n[1]||i.k!==n[2])}function xn(e,t,n,o,s,r){let i=s;const a=o.get(i)||new Map;o.set(i,a.set(n,t)),i=`${s}-${e}`;const d=o.get(i)||new Map;if(o.set(i,d.set(n,t)),r){i=`${s}-${e}-${r}`;const u=o.get(i)||new Map;o.set(i,u.set(n,t))}}function Eo(e,t,n){e.clear(),t.clear();for(const o of n){const{source:s,target:r,sourceHandle:i=null,targetHandle:a=null}=o,d={edgeId:o.id,source:s,target:r,sourceHandle:i,targetHandle:a},u=`${s}-${i}--${r}-${a}`,h=`${r}-${a}--${s}-${i}`;xn("source",d,h,e,s,i),xn("target",d,u,e,r,a),t.set(o.id,o)}}function So(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:So(n,t):!1}function wn(e,t,n){var s;let o=e;do{if((s=o==null?void 0:o.matches)!=null&&s.call(o,t))return!0;if(o===n)return!1;o=o==null?void 0:o.parentElement}while(o);return!1}function hi(e,t,n,o){const s=new Map;for(const[r,i]of e)if((i.selected||i.id===o)&&(!i.parentId||!So(i,e))&&(i.draggable||t&&typeof i.draggable>"u")){const a=e.get(r);a&&s.set(r,{id:r,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return s}function Ct({nodeId:e,dragItems:t,nodeLookup:n,dragging:o=!0}){var i,a,d;const s=[];for(const[u,h]of t){const c=(i=n.get(u))==null?void 0:i.internals.userNode;c&&s.push({...c,position:h.position,dragging:o})}if(!e)return[s[0],s];const r=(a=n.get(e))==null?void 0:a.internals.userNode;return[r?{...r,position:((d=t.get(e))==null?void 0:d.position)||r.position,dragging:o}:s[0],s]}function gi({dragItems:e,snapGrid:t,x:n,y:o}){const s=e.values().next().value;if(!s)return null;const r={x:n-s.distance.x,y:o-s.distance.y},i=Qe(r,t);return{x:i.x-r.x,y:i.y-r.y}}function pi({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:o,onDragStop:s}){let r={x:null,y:null},i=0,a=new Map,d=!1,u={x:0,y:0},h=null,c=!1,l=null,m=!1,p=!1,b=null;function y({noDragClassName:v,handleSelector:f,domNode:x,isSelectable:k,nodeId:S,nodeClickDistance:_=0}){l=ae(x);function A({x:D,y:B}){const{nodeLookup:w,nodeExtent:$,snapGrid:N,snapToGrid:E,nodeOrigin:P,onNodeDrag:M,onSelectionDrag:L,onError:j,updateNodePositions:H}=t();r={x:D,y:B};let O=!1;const Y=a.size>1,Z=Y&&$?At(Ue(a)):null,Q=Y&&E?gi({dragItems:a,snapGrid:N,x:D,y:B}):null;for(const[q,R]of a){if(!w.has(q))continue;let F={x:D-R.distance.x,y:B-R.distance.y};E&&(F=Q?{x:Math.round(F.x+Q.x),y:Math.round(F.y+Q.y)}:Qe(F,N));let U=null;if(Y&&$&&!R.extent&&Z){const{positionAbsolute:X}=R.internals,J=X.x-Z.x+$[0][0],te=X.x+R.measured.width-Z.x2+$[1][0],ne=X.y-Z.y+$[0][1],re=X.y+R.measured.height-Z.y2+$[1][1];U=[[J,ne],[te,re]]}const{position:K,positionAbsolute:G}=ro({nodeId:q,nextPosition:F,nodeLookup:w,nodeExtent:U||$,nodeOrigin:P,onError:j});O=O||R.position.x!==K.x||R.position.y!==K.y,R.position=K,R.internals.positionAbsolute=G}if(p=p||O,!!O&&(H(a,!0),b&&(o||M||!S&&L))){const[q,R]=Ct({nodeId:S,dragItems:a,nodeLookup:w});o==null||o(b,a,q,R),M==null||M(b,q,R),S||L==null||L(b,R)}}async function T(){if(!h)return;const{transform:D,panBy:B,autoPanSpeed:w,autoPanOnNodeDrag:$}=t();if(!$){d=!1,cancelAnimationFrame(i);return}const[N,E]=Vt(u,h,w);(N!==0||E!==0)&&(r.x=(r.x??0)-N/D[2],r.y=(r.y??0)-E/D[2],await B({x:N,y:E})&&A(r)),i=requestAnimationFrame(T)}function V(D){var Y;const{nodeLookup:B,multiSelectionActive:w,nodesDraggable:$,transform:N,snapGrid:E,snapToGrid:P,selectNodesOnDrag:M,onNodeDragStart:L,onSelectionDragStart:j,unselectNodesAndEdges:H}=t();c=!0,(!M||!k)&&!w&&S&&((Y=B.get(S))!=null&&Y.selected||H()),k&&M&&S&&(e==null||e(S));const O=Oe(D.sourceEvent,{transform:N,snapGrid:E,snapToGrid:P,containerBounds:h});if(r=O,a=hi(B,$,O,S),a.size>0&&(n||L||!S&&j)){const[Z,Q]=Ct({nodeId:S,dragItems:a,nodeLookup:B});n==null||n(D.sourceEvent,a,Z,Q),L==null||L(D.sourceEvent,Z,Q),S||j==null||j(D.sourceEvent,Q)}}const I=Qn().clickDistance(_).on("start",D=>{const{domNode:B,nodeDragThreshold:w,transform:$,snapGrid:N,snapToGrid:E}=t();h=(B==null?void 0:B.getBoundingClientRect())||null,m=!1,p=!1,b=D.sourceEvent,w===0&&V(D),r=Oe(D.sourceEvent,{transform:$,snapGrid:N,snapToGrid:E,containerBounds:h}),u=fe(D.sourceEvent,h)}).on("drag",D=>{const{autoPanOnNodeDrag:B,transform:w,snapGrid:$,snapToGrid:N,nodeDragThreshold:E,nodeLookup:P}=t(),M=Oe(D.sourceEvent,{transform:w,snapGrid:$,snapToGrid:N,containerBounds:h});if(b=D.sourceEvent,(D.sourceEvent.type==="touchmove"&&D.sourceEvent.touches.length>1||S&&!P.has(S))&&(m=!0),!m){if(!d&&B&&c&&(d=!0,T()),!c){const L=fe(D.sourceEvent,h),j=L.x-u.x,H=L.y-u.y;Math.sqrt(j*j+H*H)>E&&V(D)}(r.x!==M.xSnapped||r.y!==M.ySnapped)&&a&&c&&(u=fe(D.sourceEvent,h),A(M))}}).on("end",D=>{if(!c||m){m&&a.size>0&&t().updateNodePositions(a,!1);return}if(d=!1,c=!1,cancelAnimationFrame(i),a.size>0){const{nodeLookup:B,updateNodePositions:w,onNodeDragStop:$,onSelectionDragStop:N}=t();if(p&&(w(a,!1),p=!1),s||$||!S&&N){const[E,P]=Ct({nodeId:S,dragItems:a,nodeLookup:B,dragging:!1});s==null||s(D.sourceEvent,a,E,P),$==null||$(D.sourceEvent,E,P),S||N==null||N(D.sourceEvent,P)}}}).filter(D=>{const B=D.target;return!D.button&&(!v||!wn(B,`.${v}`,x))&&(!f||wn(B,f,x))});l.call(I)}function g(){l==null||l.on(".drag",null)}return{update:y,destroy:g}}function mi(e,t,n){const o=[],s={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const r of t.values())ut(s,Ge(r))>0&&o.push(r);return o}const yi=250;function xi(e,t,n,o){var a,d;let s=[],r=1/0;const i=mi(e,n,t+yi);for(const u of i){const h=[...((a=u.internals.handleBounds)==null?void 0:a.source)??[],...((d=u.internals.handleBounds)==null?void 0:d.target)??[]];for(const c of h){if(o.nodeId===c.nodeId&&o.type===c.type&&o.id===c.id)continue;const{x:l,y:m}=_e(u,c,c.position,!0),p=Math.sqrt(Math.pow(l-e.x,2)+Math.pow(m-e.y,2));p>t||(p<r?(s=[{...c,x:l,y:m}],r=p):p===r&&s.push({...c,x:l,y:m}))}}if(!s.length)return null;if(s.length>1){const u=o.type==="source"?"target":"source";return s.find(h=>h.type===u)??s[0]}return s[0]}function No(e,t,n,o,s,r=!1){var u,h,c;const i=o.get(e);if(!i)return null;const a=s==="strict"?(u=i.internals.handleBounds)==null?void 0:u[t]:[...((h=i.internals.handleBounds)==null?void 0:h.source)??[],...((c=i.internals.handleBounds)==null?void 0:c.target)??[]],d=(n?a==null?void 0:a.find(l=>l.id===n):a==null?void 0:a[0])??null;return d&&r?{...d,..._e(i,d,d.position,!0)}:d}function Mo(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function wi(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const Co=()=>!0;function bi(e,{connectionMode:t,connectionRadius:n,handleId:o,nodeId:s,edgeUpdaterType:r,isTarget:i,domNode:a,nodeLookup:d,lib:u,autoPanOnConnect:h,flowId:c,panBy:l,cancelConnection:m,onConnectStart:p,onConnect:b,onConnectEnd:y,isValidConnection:g=Co,onReconnectEnd:v,updateConnection:f,getTransform:x,getFromHandle:k,autoPanSpeed:S,dragThreshold:_=1,handleDomNode:A}){const T=ho(e.target);let V=0,I;const{x:D,y:B}=fe(e),w=Mo(r,A),$=a==null?void 0:a.getBoundingClientRect();let N=!1;if(!$||!w)return;const E=No(s,w,o,d,t);if(!E)return;let P=fe(e,$),M=!1,L=null,j=!1,H=null;function O(){if(!h||!$)return;const[K,G]=Vt(P,$,S);l({x:K,y:G}),V=requestAnimationFrame(O)}const Y={...E,nodeId:s,type:w,position:E.position},Z=d.get(s);let q={inProgress:!0,isValid:null,from:_e(Z,Y,W.Left,!0),fromHandle:Y,fromPosition:Y.position,fromNode:Z,to:P,toHandle:null,toPosition:an[Y.position],toNode:null,pointer:P};function R(){N=!0,f(q),p==null||p(e,{nodeId:s,handleId:o,handleType:w})}_===0&&R();function F(K){if(!N){const{x:re,y:ce}=fe(K),ge=re-D,pe=ce-B;if(!(ge*ge+pe*pe>_*_))return;R()}if(!k()||!Y){U(K);return}const G=x();P=fe(K,$),I=xi(Je(P,G,!1,[1,1]),n,d,Y),M||(O(),M=!0);const X=Io(K,{handle:I,connectionMode:t,fromNodeId:s,fromHandleId:o,fromType:i?"target":"source",isValidConnection:g,doc:T,lib:u,flowId:c,nodeLookup:d});H=X.handleDomNode,L=X.connection,j=wi(!!I,X.isValid);const J=d.get(s),te=J?_e(J,Y,W.Left,!0):q.from,ne={...q,from:te,isValid:j,to:X.toHandle&&j?He({x:X.toHandle.x,y:X.toHandle.y},G):P,toHandle:X.toHandle,toPosition:j&&X.toHandle?X.toHandle.position:an[Y.position],toNode:X.toHandle?d.get(X.toHandle.nodeId):null,pointer:P};f(ne),q=ne}function U(K){if(!("touches"in K&&K.touches.length>0)){if(N){(I||H)&&L&&j&&(b==null||b(L));const{inProgress:G,...X}=q,J={...X,toPosition:q.toHandle?q.toPosition:null};y==null||y(K,J),r&&(v==null||v(K,J))}m(),cancelAnimationFrame(V),M=!1,j=!1,L=null,H=null,T.removeEventListener("mousemove",F),T.removeEventListener("mouseup",U),T.removeEventListener("touchmove",F),T.removeEventListener("touchend",U)}}T.addEventListener("mousemove",F),T.addEventListener("mouseup",U),T.addEventListener("touchmove",F),T.addEventListener("touchend",U)}function Io(e,{handle:t,connectionMode:n,fromNodeId:o,fromHandleId:s,fromType:r,doc:i,lib:a,flowId:d,isValidConnection:u=Co,nodeLookup:h}){const c=r==="target",l=t?i.querySelector(`.${a}-flow__handle[data-id="${d}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:m,y:p}=fe(e),b=i.elementFromPoint(m,p),y=b!=null&&b.classList.contains(`${a}-flow__handle`)?b:l,g={handleDomNode:y,isValid:!1,connection:null,toHandle:null};if(y){const v=Mo(void 0,y),f=y.getAttribute("data-nodeid"),x=y.getAttribute("data-handleid"),k=y.classList.contains("connectable"),S=y.classList.contains("connectableend");if(!f||!v)return g;const _={source:c?f:o,sourceHandle:c?x:s,target:c?o:f,targetHandle:c?s:x};g.connection=_;const T=k&&S&&(n===Le.Strict?c&&v==="source"||!c&&v==="target":f!==o||x!==s);g.isValid=T&&u(_),g.toHandle=No(f,v,x,h,n,!0)}return g}const Lt={onPointerDown:bi,isValid:Io};function vi({domNode:e,panZoom:t,getTransform:n,getViewScale:o}){const s=ae(e);function r({translateExtent:a,width:d,height:u,zoomStep:h=1,pannable:c=!0,zoomable:l=!0,inversePan:m=!1}){const p=f=>{if(f.sourceEvent.type!=="wheel"||!t)return;const x=n(),k=f.sourceEvent.ctrlKey&&qe()?10:1,S=-f.sourceEvent.deltaY*(f.sourceEvent.deltaMode===1?.05:f.sourceEvent.deltaMode?1:.002)*h,_=x[2]*Math.pow(2,S*k);t.scaleTo(_)};let b=[0,0];const y=f=>{(f.sourceEvent.type==="mousedown"||f.sourceEvent.type==="touchstart")&&(b=[f.sourceEvent.clientX??f.sourceEvent.touches[0].clientX,f.sourceEvent.clientY??f.sourceEvent.touches[0].clientY])},g=f=>{const x=n();if(f.sourceEvent.type!=="mousemove"&&f.sourceEvent.type!=="touchmove"||!t)return;const k=[f.sourceEvent.clientX??f.sourceEvent.touches[0].clientX,f.sourceEvent.clientY??f.sourceEvent.touches[0].clientY],S=[k[0]-b[0],k[1]-b[1]];b=k;const _=o()*Math.max(x[2],Math.log(x[2]))*(m?-1:1),A={x:x[0]-S[0]*_,y:x[1]-S[1]*_},T=[[0,0],[d,u]];t.setViewportConstrained({x:A.x,y:A.y,zoom:x[2]},T,a)},v=Jn().on("start",y).on("zoom",c?g:null).on("zoom.wheel",l?p:null);s.call(v,{})}function i(){s.on("zoom",null)}return{update:r,destroy:i,pointer:ue}}const gt=e=>({x:e.x,y:e.y,zoom:e.k}),It=({x:e,y:t,zoom:n})=>Ht.translate(e,t).scale(n),ze=(e,t)=>e.target.closest(`.${t}`),ko=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Ei=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,kt=(e,t=0,n=Ei,o=()=>{})=>{const s=typeof t=="number"&&t>0;return s||o(),s?e.transition().duration(t).ease(n).on("end",o):e},Po=e=>{const t=e.ctrlKey&&qe()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Si({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:o,panOnScrollMode:s,panOnScrollSpeed:r,zoomOnPinch:i,onPanZoomStart:a,onPanZoom:d,onPanZoomEnd:u}){return h=>{if(ze(h,t))return h.ctrlKey&&h.preventDefault(),!1;h.preventDefault(),h.stopImmediatePropagation();const c=n.property("__zoom").k||1;if(h.ctrlKey&&i){const y=ue(h),g=Po(h),v=c*Math.pow(2,g);o.scaleTo(n,v,y,h);return}const l=h.deltaMode===1?20:1;let m=s===ke.Vertical?0:h.deltaX*l,p=s===ke.Horizontal?0:h.deltaY*l;!qe()&&h.shiftKey&&s!==ke.Vertical&&(m=h.deltaY*l,p=0),o.translateBy(n,-(m/c)*r,-(p/c)*r,{internal:!0});const b=gt(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(d==null||d(h,b),e.panScrollTimeout=setTimeout(()=>{u==null||u(h,b),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,a==null||a(h,b))}}function Ni({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(o,s){const r=o.type==="wheel",i=!t&&r&&!o.ctrlKey,a=ze(o,e);if(o.ctrlKey&&r&&a&&o.preventDefault(),i||a)return null;o.preventDefault(),n.call(this,o,s)}}function Mi({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return o=>{var r,i,a;if((r=o.sourceEvent)!=null&&r.internal)return;const s=gt(o.transform);e.mouseButton=((i=o.sourceEvent)==null?void 0:i.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=s,((a=o.sourceEvent)==null?void 0:a.type)==="mousedown"&&t(!0),n&&(n==null||n(o.sourceEvent,s))}}function Ci({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:o,onPanZoom:s}){return r=>{var i,a;e.usedRightMouseButton=!!(n&&ko(t,e.mouseButton??0)),(i=r.sourceEvent)!=null&&i.sync||o([r.transform.x,r.transform.y,r.transform.k]),s&&!((a=r.sourceEvent)!=null&&a.internal)&&(s==null||s(r.sourceEvent,gt(r.transform)))}}function Ii({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:s,onPaneContextMenu:r}){return i=>{var a;if(!((a=i.sourceEvent)!=null&&a.internal)&&(e.isZoomingOrPanning=!1,r&&ko(t,e.mouseButton??0)&&!e.usedRightMouseButton&&i.sourceEvent&&r(i.sourceEvent),e.usedRightMouseButton=!1,o(!1),s)){const d=gt(i.transform);e.prevViewport=d,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{s==null||s(i.sourceEvent,d)},n?150:0)}}}function ki({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:o,panOnScroll:s,zoomOnDoubleClick:r,userSelectionActive:i,noWheelClassName:a,noPanClassName:d,lib:u,connectionInProgress:h}){return c=>{var y;const l=e||t,m=n&&c.ctrlKey,p=c.type==="wheel";if(c.button===1&&c.type==="mousedown"&&(ze(c,`${u}-flow__node`)||ze(c,`${u}-flow__edge`)))return!0;if(!o&&!l&&!s&&!r&&!n||i||h&&!p||ze(c,a)&&p||ze(c,d)&&(!p||s&&p&&!e)||!n&&c.ctrlKey&&p)return!1;if(!n&&c.type==="touchstart"&&((y=c.touches)==null?void 0:y.length)>1)return c.preventDefault(),!1;if(!l&&!s&&!m&&p||!o&&(c.type==="mousedown"||c.type==="touchstart")||Array.isArray(o)&&!o.includes(c.button)&&c.type==="mousedown")return!1;const b=Array.isArray(o)&&o.includes(c.button)||!c.button||c.button<=1;return(!c.ctrlKey||p)&&b}}function Pi({domNode:e,minZoom:t,maxZoom:n,translateExtent:o,viewport:s,onPanZoom:r,onPanZoomStart:i,onPanZoomEnd:a,onDraggingChange:d}){const u={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},h=e.getBoundingClientRect(),c=Jn().scaleExtent([t,n]).translateExtent(o),l=ae(e).call(c);v({x:s.x,y:s.y,zoom:je(s.zoom,t,n)},[[0,0],[h.width,h.height]],o);const m=l.on("wheel.zoom"),p=l.on("dblclick.zoom");c.wheelDelta(Po);async function b(I,D){return l?new Promise(B=>{c==null||c.interpolate((D==null?void 0:D.interpolate)==="linear"?St:at).transform(kt(l,D==null?void 0:D.duration,D==null?void 0:D.ease,()=>B(!0)),I)}):!1}function y({noWheelClassName:I,noPanClassName:D,onPaneContextMenu:B,userSelectionActive:w,panOnScroll:$,panOnDrag:N,panOnScrollMode:E,panOnScrollSpeed:P,preventScrolling:M,zoomOnPinch:L,zoomOnScroll:j,zoomOnDoubleClick:H,zoomActivationKeyPressed:O,lib:Y,onTransformChange:Z,connectionInProgress:Q,paneClickDistance:q,selectionOnDrag:R}){w&&!u.isZoomingOrPanning&&g();const F=$&&!O&&!w;c.clickDistance(R?1/0:!de(q)||q<0?0:q);const U=F?Si({zoomPanValues:u,noWheelClassName:I,d3Selection:l,d3Zoom:c,panOnScrollMode:E,panOnScrollSpeed:P,zoomOnPinch:L,onPanZoomStart:i,onPanZoom:r,onPanZoomEnd:a}):Ni({noWheelClassName:I,preventScrolling:M,d3ZoomHandler:m});l.on("wheel.zoom",U,{passive:!1});const K=Mi({zoomPanValues:u,onDraggingChange:d,onPanZoomStart:i});c.on("start",K);const G=Ci({zoomPanValues:u,panOnDrag:N,onPaneContextMenu:!!B,onPanZoom:r,onTransformChange:Z});c.on("zoom",G);const X=Ii({zoomPanValues:u,panOnDrag:N,panOnScroll:$,onPaneContextMenu:B,onPanZoomEnd:a,onDraggingChange:d});c.on("end",X);const J=ki({zoomActivationKeyPressed:O,panOnDrag:N,zoomOnScroll:j,panOnScroll:$,zoomOnDoubleClick:H,zoomOnPinch:L,userSelectionActive:w,noPanClassName:D,noWheelClassName:I,lib:Y,connectionInProgress:Q});c.filter(J),H?l.on("dblclick.zoom",p):l.on("dblclick.zoom",null)}function g(){c.on("zoom",null)}async function v(I,D,B){const w=It(I),$=c==null?void 0:c.constrain()(w,D,B);return $&&await b($),$}async function f(I,D){const B=It(I);return await b(B,D),B}function x(I){if(l){const D=It(I),B=l.property("__zoom");(B.k!==I.zoom||B.x!==I.x||B.y!==I.y)&&(c==null||c.transform(l,D,null,{sync:!0}))}}function k(){const I=l?yr(l.node()):{x:0,y:0,k:1};return{x:I.x,y:I.y,zoom:I.k}}async function S(I,D){return l?new Promise(B=>{c==null||c.interpolate((D==null?void 0:D.interpolate)==="linear"?St:at).scaleTo(kt(l,D==null?void 0:D.duration,D==null?void 0:D.ease,()=>B(!0)),I)}):!1}async function _(I,D){return l?new Promise(B=>{c==null||c.interpolate((D==null?void 0:D.interpolate)==="linear"?St:at).scaleBy(kt(l,D==null?void 0:D.duration,D==null?void 0:D.ease,()=>B(!0)),I)}):!1}function A(I){c==null||c.scaleExtent(I)}function T(I){c==null||c.translateExtent(I)}function V(I){const D=!de(I)||I<0?0:I;c==null||c.clickDistance(D)}return{update:y,destroy:g,setViewport:f,setViewportConstrained:v,getViewport:k,scaleTo:S,scaleBy:_,setScaleExtent:A,setTranslateExtent:T,syncViewport:x,setClickDistance:V}}var Re;(function(e){e.Line="line",e.Handle="handle"})(Re||(Re={}));function $i({width:e,prevWidth:t,height:n,prevHeight:o,affectsX:s,affectsY:r}){const i=e-t,a=n-o,d=[i>0?1:i<0?-1:0,a>0?1:a<0?-1:0];return i&&s&&(d[0]=d[0]*-1),a&&r&&(d[1]=d[1]*-1),d}function bn(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),o=e.includes("left"),s=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:o,affectsY:s}}function be(e,t){return Math.max(0,t-e)}function ve(e,t){return Math.max(0,e-t)}function st(e,t,n){return Math.max(0,t-e,e-n)}function vn(e,t){return e?!t:t}function _i(e,t,n,o,s,r,i,a){let{affectsX:d,affectsY:u}=t;const{isHorizontal:h,isVertical:c}=t,l=h&&c,{xSnapped:m,ySnapped:p}=n,{minWidth:b,maxWidth:y,minHeight:g,maxHeight:v}=o,{x:f,y:x,width:k,height:S,aspectRatio:_}=e;let A=Math.floor(h?m-e.pointerX:0),T=Math.floor(c?p-e.pointerY:0);const V=k+(d?-A:A),I=S+(u?-T:T),D=-r[0]*k,B=-r[1]*S;let w=st(V,b,y),$=st(I,g,v);if(i){let P=0,M=0;d&&A<0?P=be(f+A+D,i[0][0]):!d&&A>0&&(P=ve(f+V+D,i[1][0])),u&&T<0?M=be(x+T+B,i[0][1]):!u&&T>0&&(M=ve(x+I+B,i[1][1])),w=Math.max(w,P),$=Math.max($,M)}if(a){let P=0,M=0;d&&A>0?P=ve(f+A,a[0][0]):!d&&A<0&&(P=be(f+V,a[1][0])),u&&T>0?M=ve(x+T,a[0][1]):!u&&T<0&&(M=be(x+I,a[1][1])),w=Math.max(w,P),$=Math.max($,M)}if(s){if(h){const P=st(V/_,g,v)*_;if(w=Math.max(w,P),i){let M=0;!d&&!u||d&&!u&&l?M=ve(x+B+V/_,i[1][1])*_:M=be(x+B+(d?A:-A)/_,i[0][1])*_,w=Math.max(w,M)}if(a){let M=0;!d&&!u||d&&!u&&l?M=be(x+V/_,a[1][1])*_:M=ve(x+(d?A:-A)/_,a[0][1])*_,w=Math.max(w,M)}}if(c){const P=st(I*_,b,y)/_;if($=Math.max($,P),i){let M=0;!d&&!u||u&&!d&&l?M=ve(f+I*_+D,i[1][0])/_:M=be(f+(u?T:-T)*_+D,i[0][0])/_,$=Math.max($,M)}if(a){let M=0;!d&&!u||u&&!d&&l?M=be(f+I*_,a[1][0])/_:M=ve(f+(u?T:-T)*_,a[0][0])/_,$=Math.max($,M)}}}T=T+(T<0?$:-$),A=A+(A<0?w:-w),s&&(l?V>I*_?T=(vn(d,u)?-A:A)/_:A=(vn(d,u)?-T:T)*_:h?(T=A/_,u=d):(A=T*_,d=u));const N=d?f+A:f,E=u?x+T:x;return{width:k+(d?-A:A),height:S+(u?-T:T),x:r[0]*A*(d?-1:1)+N,y:r[1]*T*(u?-1:1)+E}}const $o={width:0,height:0,x:0,y:0},Ai={...$o,pointerX:0,pointerY:0,aspectRatio:1};function zi(e,t,n){const o=t.position.x+e.position.x,s=t.position.y+e.position.y,r=e.measured.width??0,i=e.measured.height??0,a=n[0]*r,d=n[1]*i;return[[o-a,s-d],[o+r-a,s+i-d]]}function Ti({domNode:e,nodeId:t,getStoreItems:n,onChange:o,onEnd:s}){const r=ae(e);let i={controlDirection:bn("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function a({controlPosition:u,boundaries:h,keepAspectRatio:c,resizeDirection:l,onResizeStart:m,onResize:p,onResizeEnd:b,shouldResize:y}){let g={...$o},v={...Ai};i={boundaries:h,resizeDirection:l,keepAspectRatio:c,controlDirection:bn(u)};let f,x=null,k=[],S,_,A,T=!1;const V=Qn().on("start",I=>{const{nodeLookup:D,transform:B,snapGrid:w,snapToGrid:$,nodeOrigin:N,paneDomNode:E}=n();if(f=D.get(t),!f)return;x=(E==null?void 0:E.getBoundingClientRect())??null;const{xSnapped:P,ySnapped:M}=Oe(I.sourceEvent,{transform:B,snapGrid:w,snapToGrid:$,containerBounds:x});g={width:f.measured.width??0,height:f.measured.height??0,x:f.position.x??0,y:f.position.y??0},v={...g,pointerX:P,pointerY:M,aspectRatio:g.width/g.height},S=void 0,_=$e(f.extent)?f.extent:void 0,f.parentId&&(f.extent==="parent"||f.expandParent)&&(S=D.get(f.parentId)),S&&f.extent==="parent"&&(_=[[0,0],[S.measured.width,S.measured.height]]),k=[],A=void 0;for(const[L,j]of D)if(j.parentId===t&&(k.push({id:L,position:{...j.position},extent:j.extent}),j.extent==="parent"||j.expandParent)){const H=zi(j,f,j.origin??N);A?A=[[Math.min(H[0][0],A[0][0]),Math.min(H[0][1],A[0][1])],[Math.max(H[1][0],A[1][0]),Math.max(H[1][1],A[1][1])]]:A=H}m==null||m(I,{...g})}).on("drag",I=>{const{transform:D,snapGrid:B,snapToGrid:w,nodeOrigin:$}=n(),N=Oe(I.sourceEvent,{transform:D,snapGrid:B,snapToGrid:w,containerBounds:x}),E=[];if(!f)return;const{x:P,y:M,width:L,height:j}=g,H={},O=f.origin??$,{width:Y,height:Z,x:Q,y:q}=_i(v,i.controlDirection,N,i.boundaries,i.keepAspectRatio,O,_,A),R=Y!==L,F=Z!==j,U=Q!==P&&R,K=q!==M&&F;if(!U&&!K&&!R&&!F)return;if((U||K||O[0]===1||O[1]===1)&&(H.x=U?Q:g.x,H.y=K?q:g.y,g.x=H.x,g.y=H.y,k.length>0)){const te=Q-P,ne=q-M;for(const re of k)re.position={x:re.position.x-te+O[0]*(Y-L),y:re.position.y-ne+O[1]*(Z-j)},E.push(re)}if((R||F)&&(H.width=R&&(!i.resizeDirection||i.resizeDirection==="horizontal")?Y:g.width,H.height=F&&(!i.resizeDirection||i.resizeDirection==="vertical")?Z:g.height,g.width=H.width,g.height=H.height),S&&f.expandParent){const te=O[0]*(H.width??0);H.x&&H.x<te&&(g.x=te,v.x=v.x-(H.x-te));const ne=O[1]*(H.height??0);H.y&&H.y<ne&&(g.y=ne,v.y=v.y-(H.y-ne))}const G=$i({width:g.width,prevWidth:L,height:g.height,prevHeight:j,affectsX:i.controlDirection.affectsX,affectsY:i.controlDirection.affectsY}),X={...g,direction:G};(y==null?void 0:y(I,X))!==!1&&(T=!0,p==null||p(I,X),o(H,E))}).on("end",I=>{T&&(b==null||b(I,{...g}),s==null||s({...g}),T=!1)});r.call(V)}function d(){r.on(".drag",null)}return{update:a,destroy:d}}const Di={},En=e=>{let t;const n=new Set,o=(h,c)=>{const l=typeof h=="function"?h(t):h;if(!Object.is(l,t)){const m=t;t=c??(typeof l!="object"||l===null)?l:Object.assign({},t,l),n.forEach(p=>p(t,m))}},s=()=>t,d={setState:o,getState:s,getInitialState:()=>u,subscribe:h=>(n.add(h),()=>n.delete(h)),destroy:()=>{(Di?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},u=t=e(o,s,d);return d},Li=e=>e?En(e):En,{useDebugValue:ji}=wr,{useSyncExternalStoreWithSelector:Hi}=xr,Ri=e=>e;function _o(e,t=Ri,n){const o=Hi(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return ji(o),o}const Sn=(e,t)=>{const n=Li(e),o=(s,r=t)=>_o(n,s,r);return Object.assign(o,n),o},Bi=(e,t)=>e?Sn(e,t):Sn;function oe(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[o,s]of e)if(!Object.is(s,t.get(o)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const o of e)if(!t.has(o))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const o of n)if(!Object.prototype.hasOwnProperty.call(t,o)||!Object.is(e[o],t[o]))return!1;return!0}const pt=z.createContext(null),Vi=pt.Provider,Ao=he.error001("react");function ee(e,t){const n=z.useContext(pt);if(n===null)throw new Error(Ao);return _o(n,e,t)}function se(){const e=z.useContext(pt);if(e===null)throw new Error(Ao);return z.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const Nn={display:"none"},Fi={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},zo="react-flow__node-desc",To="react-flow__edge-desc",Oi="react-flow__aria-live",Yi=e=>e.ariaLiveMessage,Xi=e=>e.ariaLabelConfig;function Wi({rfId:e}){const t=ee(Yi);return C.jsx("div",{id:`${Oi}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:Fi,children:t})}function Gi({rfId:e,disableKeyboardA11y:t}){const n=ee(Xi);return C.jsxs(C.Fragment,{children:[C.jsx("div",{id:`${zo}-${e}`,style:Nn,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),C.jsx("div",{id:`${To}-${e}`,style:Nn,children:n["edge.a11yDescription.default"]}),!t&&C.jsx(Wi,{rfId:e})]})}const mt=z.forwardRef(({position:e="top-left",children:t,className:n,style:o,...s},r)=>{const i=`${e}`.split("-");return C.jsx("div",{className:ie(["react-flow__panel",n,...i]),style:o,ref:r,...s,children:t})});mt.displayName="Panel";const Mn="https://reactflow.dev?utm_source=attribution";function qi({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:C.jsx(mt,{position:t,className:"react-flow__attribution","data-message":`Please only hide this attribution when you are subscribed to React Flow Pro: ${Mn}`,children:C.jsx("a",{href:Mn,target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const Zi=e=>{const t=[],n=[];for(const[,o]of e.nodeLookup)o.selected&&t.push(o.internals.userNode);for(const[,o]of e.edgeLookup)o.selected&&n.push(o);return{selectedNodes:t,selectedEdges:n}},rt=e=>e.id;function Ki(e,t){return oe(e.selectedNodes.map(rt),t.selectedNodes.map(rt))&&oe(e.selectedEdges.map(rt),t.selectedEdges.map(rt))}function Ui({onSelectionChange:e}){const t=se(),{selectedNodes:n,selectedEdges:o}=ee(Zi,Ki);return z.useEffect(()=>{const s={nodes:n,edges:o};e==null||e(s),t.getState().onSelectionChangeHandlers.forEach(r=>r(s))},[n,o,e]),null}const Qi=e=>!!e.onSelectionChangeHandlers;function Ji({onSelectionChange:e}){const t=ee(Qi);return e||t?C.jsx(Ui,{onSelectionChange:e}):null}const Do=[0,0],ea={x:0,y:0,zoom:1},ta=["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","ariaLabelConfig","zIndexMode"],Cn=[...ta,"rfId"],na=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),In={translateExtent:Xe,nodeOrigin:Do,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function oa(e){const{setNodes:t,setEdges:n,setMinZoom:o,setMaxZoom:s,setTranslateExtent:r,setNodeExtent:i,reset:a,setDefaultNodesAndEdges:d}=ee(na,oe),u=se();z.useEffect(()=>(d(e.defaultNodes,e.defaultEdges),()=>{h.current=In,a()}),[]);const h=z.useRef(In);return z.useEffect(()=>{for(const c of Cn){const l=e[c],m=h.current[c];l!==m&&(typeof e[c]>"u"||(c==="nodes"?t(l):c==="edges"?n(l):c==="minZoom"?o(l):c==="maxZoom"?s(l):c==="translateExtent"?r(l):c==="nodeExtent"?i(l):c==="ariaLabelConfig"?u.setState({ariaLabelConfig:Gr(l)}):c==="fitView"?u.setState({fitViewQueued:l}):c==="fitViewOptions"?u.setState({fitViewOptions:l}):u.setState({[c]:l})))}h.current=e},Cn.map(c=>e[c])),null}function kn(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function sa(e){var o;const[t,n]=z.useState(e==="system"?null:e);return z.useEffect(()=>{if(e!=="system"){n(e);return}const s=kn(),r=()=>n(s!=null&&s.matches?"dark":"light");return r(),s==null||s.addEventListener("change",r),()=>{s==null||s.removeEventListener("change",r)}},[e]),t!==null?t:(o=kn())!=null&&o.matches?"dark":"light"}const Pn=typeof document<"u"?document:null;function Ze(e=null,t={target:Pn,actInsideInputWithModifier:!0}){const[n,o]=z.useState(!1),s=z.useRef(!1),r=z.useRef(new Set([])),[i,a]=z.useMemo(()=>{if(e!==null){const u=(Array.isArray(e)?e:[e]).filter(c=>typeof c=="string").map(c=>c.replace("+",`
2
- `).replace(`
3
-
4
- `,`
5
- +`).split(`
6
- `)),h=u.reduce((c,l)=>c.concat(...l),[]);return[u,h]}return[[],[]]},[e]);return z.useEffect(()=>{const d=(t==null?void 0:t.target)??Pn,u=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const h=m=>{var y,g;if(s.current=m.ctrlKey||m.metaKey||m.shiftKey||m.altKey,(!s.current||s.current&&!u)&&go(m))return!1;const b=_n(m.code,a);if(r.current.add(m[b]),$n(i,r.current,!1)){const v=((g=(y=m.composedPath)==null?void 0:y.call(m))==null?void 0:g[0])||m.target,f=(v==null?void 0:v.nodeName)==="BUTTON"||(v==null?void 0:v.nodeName)==="A";t.preventDefault!==!1&&(s.current||!f)&&m.preventDefault(),o(!0)}},c=m=>{const p=_n(m.code,a);$n(i,r.current,!0)?(o(!1),r.current.clear()):r.current.delete(m[p]),m.key==="Meta"&&r.current.clear(),s.current=!1},l=()=>{r.current.clear(),o(!1)};return d==null||d.addEventListener("keydown",h),d==null||d.addEventListener("keyup",c),window.addEventListener("blur",l),window.addEventListener("contextmenu",l),()=>{d==null||d.removeEventListener("keydown",h),d==null||d.removeEventListener("keyup",c),window.removeEventListener("blur",l),window.removeEventListener("contextmenu",l)}}},[e,o]),n}function $n(e,t,n){return e.filter(o=>n||o.length===t.size).some(o=>o.every(s=>t.has(s)))}function _n(e,t){return t.includes(e)?"code":"key"}const ra=()=>{const e=se();return z.useMemo(()=>({zoomIn:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{const{panZoom:o}=e.getState();return o?o.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[o,s,r],panZoom:i}=e.getState();return i?(await i.setViewport({x:t.x??o,y:t.y??s,zoom:t.zoom??r},n),!0):!1},getViewport:()=>{const[t,n,o]=e.getState().transform;return{x:t,y:n,zoom:o}},setCenter:async(t,n,o)=>e.getState().setCenter(t,n,o),fitBounds:async(t,n)=>{const{width:o,height:s,minZoom:r,maxZoom:i,panZoom:a}=e.getState(),d=Ft(t,o,s,r,i,(n==null?void 0:n.padding)??.1);return a?(await a.setViewport(d,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{const{transform:o,snapGrid:s,snapToGrid:r,domNode:i}=e.getState();if(!i)return t;const{x:a,y:d}=i.getBoundingClientRect(),u={x:t.x-a,y:t.y-d},h=n.snapGrid??s,c=n.snapToGrid??r;return Je(u,o,c,h)},flowToScreenPosition:t=>{const{transform:n,domNode:o}=e.getState();if(!o)return t;const{x:s,y:r}=o.getBoundingClientRect(),i=He(t,n);return{x:i.x+s,y:i.y+r}}}),[])};function Lo(e,t){const n=[],o=new Map,s=[];for(const r of e)if(r.type==="add"){s.push(r);continue}else if(r.type==="remove"||r.type==="replace")o.set(r.id,[r]);else{const i=o.get(r.id);i?i.push(r):o.set(r.id,[r])}for(const r of t){const i=o.get(r.id);if(!i){n.push(r);continue}if(i[0].type==="remove")continue;if(i[0].type==="replace"){n.push({...i[0].item});continue}const a={...r};for(const d of i)ia(d,a);n.push(a)}return s.length&&s.forEach(r=>{r.index!==void 0?n.splice(r.index,0,{...r.item}):n.push({...r.item})}),n}function ia(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function jo(e,t){return Lo(e,t)}function Ho(e,t){return Lo(e,t)}function Ie(e,t){return{id:e,type:"select",selected:t}}function Te(e,t=new Set,n=!1){const o=[];for(const[s,r]of e){const i=t.has(s);!(r.selected===void 0&&!i)&&r.selected!==i&&(n&&(r.selected=i),o.push(Ie(r.id,i)))}return o}function An({items:e=[],lookup:t}){var s;const n=[],o=new Map(e.map(r=>[r.id,r]));for(const[r,i]of e.entries()){const a=t.get(i.id),d=((s=a==null?void 0:a.internals)==null?void 0:s.userNode)??a;d!==void 0&&d!==i&&n.push({id:i.id,item:i,type:"replace"}),d===void 0&&n.push({item:i,type:"add",index:r})}for(const[r]of t)o.get(r)===void 0&&n.push({id:r,type:"remove"});return n}function zn(e){return{id:e.id,type:"remove"}}const aa=lo();function ca(e,t,n={}){return Jr(e,t,{...n,onError:n.onError??aa})}const Tn=e=>Hr(e),la=e=>so(e);function Ro(e){return z.forwardRef(e)}const ua=typeof window<"u"?z.useLayoutEffect:z.useEffect;function Dn(e){const[t,n]=z.useState(BigInt(0)),[o]=z.useState(()=>da(()=>n(s=>s+BigInt(1))));return ua(()=>{const s=o.get();s.length&&(e(s),o.reset())},[t]),o}function da(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const Bo=z.createContext(null);function fa({children:e}){const t=se(),n=z.useCallback(a=>{const{nodes:d=[],setNodes:u,hasDefaultNodes:h,onNodesChange:c,nodeLookup:l,fitViewQueued:m,onNodesChangeMiddlewareMap:p}=t.getState();let b=d;for(const g of a)b=typeof g=="function"?g(b):g;let y=An({items:b,lookup:l});for(const g of p.values())y=g(y);h&&u(b),y.length>0?c==null||c(y):m&&window.requestAnimationFrame(()=>{const{fitViewQueued:g,nodes:v,setNodes:f}=t.getState();g&&f(v)})},[]),o=Dn(n),s=z.useCallback(a=>{const{edges:d=[],setEdges:u,hasDefaultEdges:h,onEdgesChange:c,edgeLookup:l}=t.getState();let m=d;for(const p of a)m=typeof p=="function"?p(m):p;h?u(m):c&&c(An({items:m,lookup:l}))},[]),r=Dn(s),i=z.useMemo(()=>({nodeQueue:o,edgeQueue:r}),[]);return C.jsx(Bo.Provider,{value:i,children:e})}function ha(){const e=z.useContext(Bo);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const ga=e=>!!e.panZoom;function Zt(){const e=ra(),t=se(),n=ha(),o=ee(ga),s=z.useMemo(()=>{const r=c=>t.getState().nodeLookup.get(c),i=c=>{n.nodeQueue.push(c)},a=c=>{n.edgeQueue.push(c)},d=c=>{var g,v;const{nodeLookup:l,nodeOrigin:m}=t.getState(),p=Tn(c)?c:l.get(c.id),b=p.parentId?fo(p.position,p.measured,p.parentId,l,m):p.position,y={...p,position:b,width:((g=p.measured)==null?void 0:g.width)??p.width,height:((v=p.measured)==null?void 0:v.height)??p.height};return Ge(y)},u=(c,l,m={replace:!1})=>{i(p=>p.map(b=>{if(b.id===c){const y=typeof l=="function"?l(b):l;return m.replace&&Tn(y)?y:{...b,...y}}return b}))},h=(c,l,m={replace:!1})=>{a(p=>p.map(b=>{if(b.id===c){const y=typeof l=="function"?l(b):l;return m.replace&&la(y)?y:{...b,...y}}return b}))};return{getNodes:()=>t.getState().nodes.map(c=>({...c})),getNode:c=>{var l;return(l=r(c))==null?void 0:l.internals.userNode},getInternalNode:r,getEdges:()=>{const{edges:c=[]}=t.getState();return c.map(l=>({...l}))},getEdge:c=>t.getState().edgeLookup.get(c),setNodes:i,setEdges:a,addNodes:c=>{const l=Array.isArray(c)?c:[c];n.nodeQueue.push(m=>[...m,...l])},addEdges:c=>{const l=Array.isArray(c)?c:[c];n.edgeQueue.push(m=>[...m,...l])},toObject:()=>{const{nodes:c=[],edges:l=[],transform:m}=t.getState(),[p,b,y]=m;return{nodes:c.map(g=>({...g})),edges:l.map(g=>({...g})),viewport:{x:p,y:b,zoom:y}}},deleteElements:async({nodes:c=[],edges:l=[]})=>{const{nodes:m,edges:p,onNodesDelete:b,onEdgesDelete:y,triggerNodeChanges:g,triggerEdgeChanges:v,onDelete:f,onBeforeDelete:x}=t.getState(),{nodes:k,edges:S}=await Or({nodesToRemove:c,edgesToRemove:l,nodes:m,edges:p,onBeforeDelete:x}),_=S.length>0,A=k.length>0;if(_){const T=S.map(zn);y==null||y(S),v(T)}if(A){const T=k.map(zn);b==null||b(k),g(T)}return(A||_)&&(f==null||f({nodes:k,edges:S})),{deletedNodes:k,deletedEdges:S}},getIntersectingNodes:(c,l=!0,m)=>{const p=ln(c),b=p?c:d(c),y=m!==void 0;return b?(m||t.getState().nodes).filter(g=>{const v=t.getState().nodeLookup.get(g.id);if(v&&!p&&(g.id===c.id||!v.internals.positionAbsolute))return!1;const f=Ge(y?g:v),x=ut(f,b);return l&&x>0||x>=f.width*f.height||x>=b.width*b.height}):[]},isNodeIntersecting:(c,l,m=!0)=>{const b=ln(c)?c:d(c);if(!b)return!1;const y=ut(b,l);return m&&y>0||y>=l.width*l.height||y>=b.width*b.height},updateNode:u,updateNodeData:(c,l,m={replace:!1})=>{u(c,p=>{const b=typeof l=="function"?l(p):l;return m.replace?{...p,data:b}:{...p,data:{...p.data,...b}}},m)},updateEdge:h,updateEdgeData:(c,l,m={replace:!1})=>{h(c,p=>{const b=typeof l=="function"?l(p):l;return m.replace?{...p,data:b}:{...p,data:{...p.data,...b}}},m)},getNodesBounds:c=>{const{nodeLookup:l,nodeOrigin:m}=t.getState();return Rr(c,{nodeLookup:l,nodeOrigin:m})},getHandleConnections:({type:c,id:l,nodeId:m})=>{var p;return Array.from(((p=t.getState().connectionLookup.get(`${m}-${c}${l?`-${l}`:""}`))==null?void 0:p.values())??[])},getNodeConnections:({type:c,handleId:l,nodeId:m})=>{var p;return Array.from(((p=t.getState().connectionLookup.get(`${m}${c?l?`-${c}-${l}`:`-${c}`:""}`))==null?void 0:p.values())??[])},fitView:async c=>{const l=t.getState().fitViewResolver??Wr();return t.setState({fitViewQueued:!0,fitViewOptions:c,fitViewResolver:l}),n.nodeQueue.push(m=>[...m]),l.promise}}},[]);return z.useMemo(()=>({...s,...e,viewportInitialized:o}),[o])}const Ln=e=>e.selected,pa=typeof window<"u"?window:void 0;function ma({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=se(),{deleteElements:o}=Zt(),s=Ze(e,{actInsideInputWithModifier:!1}),r=Ze(t,{target:pa});z.useEffect(()=>{if(s){const{edges:i,nodes:a}=n.getState();o({nodes:a.filter(Ln),edges:i.filter(Ln)}),n.setState({nodesSelectionActive:!1})}},[s]),z.useEffect(()=>{n.setState({multiSelectionActive:r})},[r])}function ya(e){const t=se();z.useEffect(()=>{const n=()=>{var s,r,i,a;if(!e.current||!(((r=(s=e.current).checkVisibility)==null?void 0:r.call(s))??!0))return!1;const o=Ot(e.current);(o.height===0||o.width===0)&&((a=(i=t.getState()).onError)==null||a.call(i,"004",he.error004())),t.setState({width:o.width||500,height:o.height||500})};if(e.current){n(),window.addEventListener("resize",n);const o=new ResizeObserver(()=>n());return o.observe(e.current),()=>{window.removeEventListener("resize",n),o&&e.current&&o.unobserve(e.current)}}},[])}const yt={position:"absolute",width:"100%",height:"100%",top:0,left:0},xa=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function wa({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:o=!1,panOnScrollSpeed:s=.5,panOnScrollMode:r=ke.Free,zoomOnDoubleClick:i=!0,panOnDrag:a=!0,defaultViewport:d,translateExtent:u,minZoom:h,maxZoom:c,zoomActivationKeyCode:l,preventScrolling:m=!0,children:p,noWheelClassName:b,noPanClassName:y,onViewportChange:g,isControlledViewport:v,paneClickDistance:f,selectionOnDrag:x}){const k=se(),S=z.useRef(null),{userSelectionActive:_,lib:A,connectionInProgress:T}=ee(xa,oe),V=Ze(l),I=z.useRef();ya(S);const D=z.useCallback(B=>{g==null||g({x:B[0],y:B[1],zoom:B[2]}),v||k.setState({transform:B})},[g,v]);return z.useEffect(()=>{if(S.current){I.current=Pi({domNode:S.current,minZoom:h,maxZoom:c,translateExtent:u,viewport:d,onDraggingChange:N=>k.setState(E=>E.paneDragging===N?E:{paneDragging:N}),onPanZoomStart:(N,E)=>{const{onViewportChangeStart:P,onMoveStart:M}=k.getState();M==null||M(N,E),P==null||P(E)},onPanZoom:(N,E)=>{const{onViewportChange:P,onMove:M}=k.getState();M==null||M(N,E),P==null||P(E)},onPanZoomEnd:(N,E)=>{const{onViewportChangeEnd:P,onMoveEnd:M}=k.getState();M==null||M(N,E),P==null||P(E)}});const{x:B,y:w,zoom:$}=I.current.getViewport();return k.setState({panZoom:I.current,transform:[B,w,$],domNode:S.current.closest(".react-flow")}),()=>{var N;(N=I.current)==null||N.destroy()}}},[]),z.useEffect(()=>{var B;(B=I.current)==null||B.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:o,panOnScrollSpeed:s,panOnScrollMode:r,zoomOnDoubleClick:i,panOnDrag:a,zoomActivationKeyPressed:V,preventScrolling:m,noPanClassName:y,userSelectionActive:_,noWheelClassName:b,lib:A,onTransformChange:D,connectionInProgress:T,selectionOnDrag:x,paneClickDistance:f})},[e,t,n,o,s,r,i,a,V,m,y,_,b,A,D,T,x,f]),C.jsx("div",{className:"react-flow__renderer",ref:S,style:yt,children:p})}const ba=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function va(){const{userSelectionActive:e,userSelectionRect:t}=ee(ba,oe);return e&&t?C.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 Pt=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},Ea=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function Sa({isSelecting:e,selectionKeyPressed:t,selectionMode:n=We.Full,panOnDrag:o,autoPanOnSelection:s,paneClickDistance:r,selectionOnDrag:i,onSelectionStart:a,onSelectionEnd:d,onPaneClick:u,onPaneContextMenu:h,onPaneScroll:c,onPaneMouseEnter:l,onPaneMouseMove:m,onPaneMouseLeave:p,children:b}){const y=z.useRef(0),g=se(),{userSelectionActive:v,elementsSelectable:f,dragging:x,panBy:k,autoPanSpeed:S}=ee(Ea,oe),_=f&&(e||v),A=z.useRef(null),T=z.useRef(),V=z.useRef(new Set),I=z.useRef(new Set),D=z.useRef(!1),B=z.useRef(!1),w=z.useRef({x:0,y:0}),$=z.useRef(!1),N=R=>{if(B.current||D.current||g.getState().connection.inProgress){B.current=!1,D.current=!1;return}u==null||u(R),g.getState().resetSelectedElements(),g.setState({nodesSelectionActive:!1})},E=R=>{if(Array.isArray(o)&&(o!=null&&o.includes(2))){R.preventDefault();return}h==null||h(R)},P=c?R=>c(R):void 0,M=R=>{B.current&&(R.stopPropagation(),B.current=!1)},L=R=>{var re,ce;const{domNode:F,transform:U}=g.getState();if(T.current=F==null?void 0:F.getBoundingClientRect(),!T.current)return;const K=R.target===A.current;if(!K&&!!R.target.closest(".nokey")||!e||!(i&&K||t)||R.button!==0||!R.isPrimary)return;(ce=(re=R.target)==null?void 0:re.setPointerCapture)==null||ce.call(re,R.pointerId),B.current=!1;const{x:J,y:te}=fe(R.nativeEvent,T.current),ne=Je({x:J,y:te},U);g.setState({userSelectionRect:{width:0,height:0,startX:ne.x,startY:ne.y,x:J,y:te}}),K||(R.stopPropagation(),R.preventDefault())};function j(R,F){const{userSelectionRect:U}=g.getState();if(!U)return;const{transform:K,nodeLookup:G,edgeLookup:X,connectionLookup:J,triggerNodeChanges:te,triggerEdgeChanges:ne,defaultEdgeOptions:re}=g.getState(),ce={x:U.startX,y:U.startY},{x:ge,y:pe}=He(ce,K),me={startX:ce.x,startY:ce.y,x:R<ge?R:ge,y:F<pe?F:pe,width:Math.abs(R-ge),height:Math.abs(F-pe)},Ve=V.current,Ne=I.current;V.current=new Set(Bt(G,me,K,n===We.Partial,!0).map(le=>le.id)),I.current=new Set;const Me=(re==null?void 0:re.selectable)??!0;for(const le of V.current){const ye=J.get(le);if(ye)for(const{edgeId:xe}of ye.values()){const Ce=X.get(xe);Ce&&(Ce.selectable??Me)&&I.current.add(xe)}}if(!un(Ve,V.current)){const le=Te(G,V.current,!0);te(le)}if(!un(Ne,I.current)){const le=Te(X,I.current);ne(le)}g.setState({userSelectionRect:me,userSelectionActive:!0,nodesSelectionActive:!1})}function H(){if(!s||!T.current)return;const[R,F]=Vt(w.current,T.current,S);k({x:R,y:F}).then(U=>{if(!B.current||!U){y.current=requestAnimationFrame(H);return}const{x:K,y:G}=w.current;j(K,G),y.current=requestAnimationFrame(H)})}const O=()=>{cancelAnimationFrame(y.current),y.current=0,$.current=!1};z.useEffect(()=>()=>O(),[]);const Y=R=>{const{userSelectionRect:F,transform:U,resetSelectedElements:K}=g.getState();if(!T.current||!F)return;const{x:G,y:X}=fe(R.nativeEvent,T.current);w.current={x:G,y:X};const J=He({x:F.startX,y:F.startY},U);if(!B.current){const te=t?0:r;if(Math.hypot(G-J.x,X-J.y)<=te)return;K(),a==null||a(R)}B.current=!0,$.current||(H(),$.current=!0),j(G,X)},Z=R=>{var F,U;if(!_){R.target===A.current&&g.getState().connection.inProgress&&(D.current=!0);return}R.button===0&&((U=(F=R.target)==null?void 0:F.releasePointerCapture)==null||U.call(F,R.pointerId),!v&&R.target===A.current&&g.getState().userSelectionRect&&(N==null||N(R)),g.setState({userSelectionActive:!1,userSelectionRect:null}),B.current&&(d==null||d(R),g.setState({nodesSelectionActive:V.current.size>0})),O())},Q=R=>{var F,U;(U=(F=R.target)==null?void 0:F.releasePointerCapture)==null||U.call(F,R.pointerId),O()},q=o===!0||Array.isArray(o)&&o.includes(0);return C.jsxs("div",{className:ie(["react-flow__pane",{draggable:q,dragging:x,selection:e}]),onClick:_?void 0:Pt(N,A),onContextMenu:Pt(E,A),onWheel:Pt(P,A),onPointerEnter:_?void 0:l,onPointerMove:_?Y:m,onPointerUp:Z,onPointerCancel:_?Q:void 0,onPointerDownCapture:_?L:void 0,onClickCapture:_?M:void 0,onPointerLeave:p,ref:A,style:yt,children:[b,C.jsx(va,{})]})}function jt({id:e,store:t,unselect:n=!1,nodeRef:o}){const{addSelectedNodes:s,unselectNodesAndEdges:r,multiSelectionActive:i,nodeLookup:a,onError:d}=t.getState(),u=a.get(e);if(!u){d==null||d("012",he.error012(e));return}t.setState({nodesSelectionActive:!1}),u.selected?(n||u.selected&&i)&&(r({nodes:[u],edges:[]}),requestAnimationFrame(()=>{var h;return(h=o==null?void 0:o.current)==null?void 0:h.blur()})):s([e])}function Vo({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:o,nodeId:s,isSelectable:r,nodeClickDistance:i}){const a=se(),[d,u]=z.useState(!1),h=z.useRef();return z.useEffect(()=>{h.current=pi({getStoreItems:()=>a.getState(),onNodeMouseDown:c=>{jt({id:c,store:a,nodeRef:e})},onDragStart:()=>{u(!0)},onDragStop:()=>{u(!1)}})},[]),z.useEffect(()=>{if(!(t||!e.current||!h.current))return h.current.update({noDragClassName:n,handleSelector:o,domNode:e.current,isSelectable:r,nodeId:s,nodeClickDistance:i}),()=>{var c;(c=h.current)==null||c.destroy()}},[n,o,t,r,e,s,i]),d}const Na=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function Fo(){const e=se();return z.useCallback(n=>{const{nodeExtent:o,snapToGrid:s,snapGrid:r,nodesDraggable:i,onError:a,updateNodePositions:d,nodeLookup:u,nodeOrigin:h}=e.getState(),c=new Map,l=Na(i),m=s?r[0]:5,p=s?r[1]:5,b=n.direction.x*m*n.factor,y=n.direction.y*p*n.factor;for(const[,g]of u){if(!l(g))continue;let v={x:g.internals.positionAbsolute.x+b,y:g.internals.positionAbsolute.y+y};s&&(v=Qe(v,r));const{position:f,positionAbsolute:x}=ro({nodeId:g.id,nextPosition:v,nodeLookup:u,nodeExtent:o,nodeOrigin:h,onError:a});g.position=f,g.internals.positionAbsolute=x,c.set(g.id,g)}d(c)},[])}const Kt=z.createContext(null),Ma=Kt.Provider;Kt.Consumer;const Oo=()=>z.useContext(Kt),Ca=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Yo=z.createContext(null);function Ia({children:e}){const t=ee(Ca,oe);return C.jsx(Yo.Provider,{value:t,children:e})}function ka(){const e=z.useContext(Yo);if(!e)throw new Error("useHandleConfig must be used within a HandleConfigProvider");return e}const Pa={connectingFrom:!1,connectingTo:!1,clickConnecting:!1,isPossibleEndHandle:!0,connectionInProcess:!1,clickConnectionInProcess:!1,valid:!1},$a=(e,t,n)=>o=>{const{connectionClickStartHandle:s,connectionMode:r,connection:i}=o,{fromHandle:a,toHandle:d,isValid:u}=i;if(!a&&!s)return Pa;const h=(d==null?void 0:d.nodeId)===e&&(d==null?void 0:d.id)===t&&(d==null?void 0:d.type)===n;return{connectingFrom:(a==null?void 0:a.nodeId)===e&&(a==null?void 0:a.id)===t&&(a==null?void 0:a.type)===n,connectingTo:h,clickConnecting:(s==null?void 0:s.nodeId)===e&&(s==null?void 0:s.id)===t&&(s==null?void 0:s.type)===n,isPossibleEndHandle:r===Le.Strict?(a==null?void 0:a.type)!==n:e!==(a==null?void 0:a.nodeId)||t!==(a==null?void 0:a.id),connectionInProcess:!!a,clickConnectionInProcess:!!s,valid:h&&u}};function _a({type:e="source",position:t=W.Top,isValidConnection:n,isConnectable:o=!0,isConnectableStart:s=!0,isConnectableEnd:r=!0,id:i,onConnect:a,children:d,className:u,onMouseDown:h,onTouchStart:c,...l},m){var $,N;const p=i||null,b=e==="target",y=se(),g=Oo(),{connectOnClick:v,noPanClassName:f,rfId:x}=ka(),{connectingFrom:k,connectingTo:S,clickConnecting:_,isPossibleEndHandle:A,connectionInProcess:T,clickConnectionInProcess:V,valid:I}=ee($a(g,p,e),oe);g||(N=($=y.getState()).onError)==null||N.call($,"010",he.error010());const D=E=>{const{defaultEdgeOptions:P,onConnect:M,hasDefaultEdges:L}=y.getState(),j={...P,...E};if(L){const{edges:H,setEdges:O,onError:Y}=y.getState();O(ca(j,H,{onError:Y}))}M==null||M(j),a==null||a(j)},B=E=>{if(!g)return;const P=po(E.nativeEvent);if(s&&(P&&E.button===0||!P)){const M=y.getState();Lt.onPointerDown(E.nativeEvent,{handleDomNode:E.currentTarget,autoPanOnConnect:M.autoPanOnConnect,connectionMode:M.connectionMode,connectionRadius:M.connectionRadius,domNode:M.domNode,nodeLookup:M.nodeLookup,lib:M.lib,isTarget:b,handleId:p,nodeId:g,flowId:M.rfId,panBy:M.panBy,cancelConnection:M.cancelConnection,onConnectStart:M.onConnectStart,onConnectEnd:(...L)=>{var j,H;return(H=(j=y.getState()).onConnectEnd)==null?void 0:H.call(j,...L)},updateConnection:M.updateConnection,onConnect:D,isValidConnection:n||((...L)=>{var j,H;return((H=(j=y.getState()).isValidConnection)==null?void 0:H.call(j,...L))??!0}),getTransform:()=>y.getState().transform,getFromHandle:()=>y.getState().connection.fromHandle,autoPanSpeed:M.autoPanSpeed,dragThreshold:M.connectionDragThreshold})}P?h==null||h(E):c==null||c(E)},w=E=>{const{onClickConnectStart:P,onClickConnectEnd:M,connectionClickStartHandle:L,connectionMode:j,isValidConnection:H,lib:O,rfId:Y,nodeLookup:Z,connection:Q}=y.getState();if(!g||!L&&!s)return;if(!L){P==null||P(E.nativeEvent,{nodeId:g,handleId:p,handleType:e}),y.setState({connectionClickStartHandle:{nodeId:g,type:e,id:p}});return}const q=ho(E.target),R=n||H,{connection:F,isValid:U}=Lt.isValid(E.nativeEvent,{handle:{nodeId:g,id:p,type:e},connectionMode:j,fromNodeId:L.nodeId,fromHandleId:L.id||null,fromType:L.type,isValidConnection:R,flowId:Y,doc:q,lib:O,nodeLookup:Z});U&&F&&D(F);const K=structuredClone(Q);delete K.inProgress,K.toPosition=K.toHandle?K.toHandle.position:null,M==null||M(E,K),y.setState({connectionClickStartHandle:null})};return C.jsx("div",{"data-handleid":p,"data-nodeid":g,"data-handlepos":t,"data-id":`${x}-${g}-${p}-${e}`,className:ie(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",f,u,{source:!b,target:b,connectable:o,connectablestart:s,connectableend:r,clickconnecting:_,connectingfrom:k,connectingto:S,valid:I,connectionindicator:o&&(!T||A)&&(T||V?r:s)}]),onMouseDown:B,onTouchStart:B,onClick:v?w:void 0,ref:m,...l,children:d})}const Be=z.memo(Ro(_a));function Aa({data:e,isConnectable:t,sourcePosition:n=W.Bottom}){return C.jsxs(C.Fragment,{children:[e==null?void 0:e.label,C.jsx(Be,{type:"source",position:n,isConnectable:t})]})}function za({data:e,isConnectable:t,targetPosition:n=W.Top,sourcePosition:o=W.Bottom}){return C.jsxs(C.Fragment,{children:[C.jsx(Be,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,C.jsx(Be,{type:"source",position:o,isConnectable:t})]})}function Ta(){return null}function Da({data:e,isConnectable:t,targetPosition:n=W.Top}){return C.jsxs(C.Fragment,{children:[C.jsx(Be,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const dt={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},jn={input:Aa,default:za,output:Da,group:Ta};function La(e){var t,n,o,s;return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??((t=e.style)==null?void 0:t.width),height:e.height??e.initialHeight??((n=e.style)==null?void 0:n.height)}:{width:e.width??((o=e.style)==null?void 0:o.width),height:e.height??((s=e.style)==null?void 0:s.height)}}const ja=e=>{const{width:t,height:n,x:o,y:s}=Ue(e.nodeLookup,{filter:r=>!!r.selected});return{width:de(t)?t:null,height:de(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${o}px,${s}px)`}};function Ha({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const o=se(),{width:s,height:r,transformString:i,userSelectionActive:a}=ee(ja,oe),d=Fo(),u=z.useRef(null);z.useEffect(()=>{var m;n||(m=u.current)==null||m.focus({preventScroll:!0})},[n]);const h=!a&&s!==null&&r!==null;if(Vo({nodeRef:u,disabled:!h}),!h)return null;const c=e?m=>{const p=o.getState().nodes.filter(b=>b.selected);e(m,p)}:void 0,l=m=>{Object.prototype.hasOwnProperty.call(dt,m.key)&&(m.preventDefault(),d({direction:dt[m.key],factor:m.shiftKey?4:1}))};return C.jsx("div",{className:ie(["react-flow__nodesselection","react-flow__container",t]),style:{transform:i},children:C.jsx("div",{ref:u,className:"react-flow__nodesselection-rect",onContextMenu:c,tabIndex:n?void 0:-1,onKeyDown:n?void 0:l,style:{width:s,height:r}})})}const Hn=typeof window<"u"?window:void 0,Ra=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Xo({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:s,onPaneContextMenu:r,onPaneScroll:i,paneClickDistance:a,deleteKeyCode:d,selectionKeyCode:u,selectionOnDrag:h,selectionMode:c,onSelectionStart:l,onSelectionEnd:m,multiSelectionKeyCode:p,panActivationKeyCode:b,zoomActivationKeyCode:y,elementsSelectable:g,zoomOnScroll:v,zoomOnPinch:f,panOnScroll:x,panOnScrollSpeed:k,panOnScrollMode:S,zoomOnDoubleClick:_,panOnDrag:A,autoPanOnSelection:T,defaultViewport:V,translateExtent:I,minZoom:D,maxZoom:B,preventScrolling:w,onSelectionContextMenu:$,noWheelClassName:N,noPanClassName:E,disableKeyboardA11y:P,onViewportChange:M,isControlledViewport:L}){const{nodesSelectionActive:j,userSelectionActive:H}=ee(Ra,oe),O=Ze(u,{target:Hn}),Y=Ze(b,{target:Hn}),Z=Y||A,Q=Y||x,q=h&&Z!==!0,R=O||H||q;return ma({deleteKeyCode:d,multiSelectionKeyCode:p}),C.jsx(wa,{onPaneContextMenu:r,elementsSelectable:g,zoomOnScroll:v,zoomOnPinch:f,panOnScroll:Q,panOnScrollSpeed:k,panOnScrollMode:S,zoomOnDoubleClick:_,panOnDrag:!O&&Z,defaultViewport:V,translateExtent:I,minZoom:D,maxZoom:B,zoomActivationKeyCode:y,preventScrolling:w,noWheelClassName:N,noPanClassName:E,onViewportChange:M,isControlledViewport:L,paneClickDistance:a,selectionOnDrag:q,children:C.jsxs(Sa,{onSelectionStart:l,onSelectionEnd:m,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:s,onPaneContextMenu:r,onPaneScroll:i,panOnDrag:Z,autoPanOnSelection:T,isSelecting:!!R,selectionMode:c,selectionKeyPressed:O,paneClickDistance:a,selectionOnDrag:q,children:[e,j&&C.jsx(Ha,{onSelectionContextMenu:$,noPanClassName:E,disableKeyboardA11y:P})]})})}Xo.displayName="FlowRenderer";const Ba=z.memo(Xo),Va=e=>t=>e?Bt(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function Fa(e){return ee(z.useCallback(Va(e),[e]),oe)}const Oa=e=>e.updateNodeInternals;function Ya(){const e=ee(Oa),[t]=z.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const o=new Map;n.forEach(s=>{const r=s.target.getAttribute("data-id");o.set(r,{id:r,nodeElement:s.target,force:!0})}),e(o)}));return z.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function Xa({node:e,nodeType:t,hasDimensions:n,resizeObserver:o}){const s=se(),r=z.useRef(null),i=z.useRef(null),a=z.useRef(e.sourcePosition),d=z.useRef(e.targetPosition),u=z.useRef(t),h=n&&!!e.internals.handleBounds;return z.useEffect(()=>{r.current&&!e.hidden&&(!h||i.current!==r.current)&&(i.current&&(o==null||o.unobserve(i.current)),o==null||o.observe(r.current),i.current=r.current)},[h,e.hidden]),z.useEffect(()=>()=>{i.current&&(o==null||o.unobserve(i.current),i.current=null)},[]),z.useEffect(()=>{if(r.current){const c=u.current!==t,l=a.current!==e.sourcePosition,m=d.current!==e.targetPosition;(c||l||m)&&(u.current=t,a.current=e.sourcePosition,d.current=e.targetPosition,s.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:r.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),r}function Wa({id:e,onClick:t,onMouseEnter:n,onMouseMove:o,onMouseLeave:s,onContextMenu:r,onDoubleClick:i,nodesDraggable:a,elementsSelectable:d,nodesConnectable:u,nodesFocusable:h,resizeObserver:c,noDragClassName:l,noPanClassName:m,disableKeyboardA11y:p,rfId:b,nodeTypes:y,nodeClickDistance:g,onError:v}){const{node:f,internals:x,isParent:k}=ee(R=>{const F=R.nodeLookup.get(e),U=R.parentLookup.has(e);return{node:F,internals:F.internals,isParent:U}},oe);let S=f.type||"default",_=(y==null?void 0:y[S])||jn[S];_===void 0&&(v==null||v("003",he.error003(S)),S="default",_=(y==null?void 0:y.default)||jn.default);const A=!!(f.draggable||a&&typeof f.draggable>"u"),T=!!(f.selectable||d&&typeof f.selectable>"u"),V=!!(f.connectable||u&&typeof f.connectable>"u"),I=!!(f.focusable||h&&typeof f.focusable>"u"),D=se(),B=uo(f),w=Xa({node:f,nodeType:S,hasDimensions:B,resizeObserver:c}),$=Vo({nodeRef:w,disabled:f.hidden||!A,noDragClassName:l,handleSelector:f.dragHandle,nodeId:e,isSelectable:T,nodeClickDistance:g}),N=Fo();if(f.hidden)return null;const E=we(f),P=La(f),M=T||A||t||n||o||s,L=n?R=>n(R,{...x.userNode}):void 0,j=o?R=>o(R,{...x.userNode}):void 0,H=s?R=>s(R,{...x.userNode}):void 0,O=r?R=>r(R,{...x.userNode}):void 0,Y=i?R=>i(R,{...x.userNode}):void 0,Z=R=>{const{selectNodesOnDrag:F,nodeDragThreshold:U}=D.getState();T&&(!F||!A||U>0)&&jt({id:e,store:D,nodeRef:w}),t&&t(R,{...x.userNode})},Q=R=>{if(!(go(R.nativeEvent)||p)){if(eo.includes(R.key)&&T){const F=R.key==="Escape";jt({id:e,store:D,unselect:F,nodeRef:w})}else if(A&&f.selected&&Object.prototype.hasOwnProperty.call(dt,R.key)){R.preventDefault();const{ariaLabelConfig:F}=D.getState();D.setState({ariaLiveMessage:F["node.a11yDescription.ariaLiveMessage"]({direction:R.key.replace("Arrow","").toLowerCase(),x:~~x.positionAbsolute.x,y:~~x.positionAbsolute.y})}),N({direction:dt[R.key],factor:R.shiftKey?4:1})}}},q=()=>{var J;if(p||!((J=w.current)!=null&&J.matches(":focus-visible")))return;const{transform:R,width:F,height:U,autoPanOnNodeFocus:K,setCenter:G}=D.getState();if(!K)return;Bt(new Map([[e,f]]),{x:0,y:0,width:F,height:U},R,!0).length>0||G(f.position.x+E.width/2,f.position.y+E.height/2,{zoom:R[2]})};return C.jsx("div",{className:ie(["react-flow__node",`react-flow__node-${S}`,{[m]:A},f.className,{selected:f.selected,selectable:T,parent:k,draggable:A,dragging:$}]),ref:w,style:{zIndex:x.z,transform:`translate(${x.positionAbsolute.x}px,${x.positionAbsolute.y}px)`,pointerEvents:M?"all":"none",visibility:B?"visible":"hidden",...f.style,...P},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:L,onMouseMove:j,onMouseLeave:H,onContextMenu:O,onClick:Z,onDoubleClick:Y,onKeyDown:I?Q:void 0,tabIndex:I?0:void 0,onFocus:I?q:void 0,role:f.ariaRole??(I?"group":void 0),"aria-roledescription":"node","aria-describedby":p?void 0:`${zo}-${b}`,"aria-label":f.ariaLabel,...f.domAttributes,children:C.jsx(Ma,{value:e,children:C.jsx(_,{id:e,data:f.data,type:S,positionAbsoluteX:x.positionAbsolute.x,positionAbsoluteY:x.positionAbsolute.y,selected:f.selected??!1,selectable:T,draggable:A,deletable:f.deletable??!0,isConnectable:V,sourcePosition:f.sourcePosition,targetPosition:f.targetPosition,dragging:$,dragHandle:f.dragHandle,zIndex:x.z,parentId:f.parentId,...E})})})}var Ga=z.memo(Wa);const qa=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Wo(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:o,elementsSelectable:s,onError:r}=ee(qa,oe),i=Fa(e.onlyRenderVisibleElements),a=Ya();return C.jsx("div",{className:"react-flow__nodes",style:yt,children:i.map(d=>C.jsx(Ga,{id:d,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:a,nodesDraggable:t,nodesConnectable:n,nodesFocusable:o,elementsSelectable:s,nodeClickDistance:e.nodeClickDistance,onError:r},d))})}Wo.displayName="NodeRenderer";const Za=z.memo(Wo);function Ka(e){return ee(z.useCallback(n=>{if(!e)return n.edges.map(s=>s.id);const o=[];if(n.width&&n.height)for(const s of n.edges){const r=n.nodeLookup.get(s.source),i=n.nodeLookup.get(s.target);r&&i&&Kr({sourceNode:r,targetNode:i,width:n.width,height:n.height,transform:n.transform})&&o.push(s.id)}return o},[e]),oe)}const Ua=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return C.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},Qa=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return C.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},Rn={[ct.Arrow]:Ua,[ct.ArrowClosed]:Qa};function Ja(e){const t=se();return z.useMemo(()=>{var s,r;return Object.prototype.hasOwnProperty.call(Rn,e)?Rn[e]:((r=(s=t.getState()).onError)==null||r.call(s,"009",he.error009(e)),null)},[e])}const ec=({id:e,type:t,color:n,width:o=12.5,height:s=12.5,markerUnits:r="strokeWidth",strokeWidth:i,orient:a="auto-start-reverse"})=>{const d=Ja(t);return d?C.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${s}`,viewBox:"-10 -10 20 20",markerUnits:r,orient:a,refX:"0",refY:"0",children:C.jsx(d,{color:n,strokeWidth:i})}):null},Go=({defaultColor:e,rfId:t})=>{const n=ee(r=>r.edges),o=ee(r=>r.defaultEdgeOptions),s=z.useMemo(()=>si(n,{id:t,defaultColor:e,defaultMarkerStart:o==null?void 0:o.markerStart,defaultMarkerEnd:o==null?void 0:o.markerEnd}),[n,o,t,e]);return s.length?C.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:C.jsx("defs",{children:s.map(r=>C.jsx(ec,{id:r.id,type:r.type,color:r.color,width:r.width,height:r.height,markerUnits:r.markerUnits,strokeWidth:r.strokeWidth,orient:r.orient},r.id))})}):null};Go.displayName="MarkerDefinitions";var tc=z.memo(Go);function qo({x:e,y:t,label:n,labelStyle:o,labelShowBg:s=!0,labelBgStyle:r,labelBgPadding:i=[2,4],labelBgBorderRadius:a=2,children:d,className:u,...h}){const[c,l]=z.useState({x:1,y:0,width:0,height:0}),m=ie(["react-flow__edge-textwrapper",u]),p=z.useRef(null);return z.useEffect(()=>{if(p.current){const b=p.current.getBBox();l({x:b.x,y:b.y,width:b.width,height:b.height})}},[n]),n?C.jsxs("g",{transform:`translate(${e-c.width/2} ${t-c.height/2})`,className:m,visibility:c.width?"visible":"hidden",...h,children:[s&&C.jsx("rect",{width:c.width+2*i[0],x:-i[0],y:-i[1],height:c.height+2*i[1],className:"react-flow__edge-textbg",style:r,rx:a,ry:a}),C.jsx("text",{className:"react-flow__edge-text",y:c.height/2,dy:"0.3em",ref:p,style:o,children:n}),d]}):null}qo.displayName="EdgeText";const nc=z.memo(qo);function xt({path:e,labelX:t,labelY:n,label:o,labelStyle:s,labelShowBg:r,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:d,interactionWidth:u=20,...h}){return C.jsxs(C.Fragment,{children:[C.jsx("path",{...h,d:e,fill:"none",className:ie(["react-flow__edge-path",h.className])}),u?C.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:u,className:"react-flow__edge-interaction"}):null,o&&de(t)&&de(n)?C.jsx(nc,{x:t,y:n,label:o,labelStyle:s,labelShowBg:r,labelBgStyle:i,labelBgPadding:a,labelBgBorderRadius:d}):null]})}function Bn({pos:e,x1:t,y1:n,x2:o,y2:s}){return e===W.Left||e===W.Right?[.5*(t+o),n]:[t,.5*(n+s)]}function Zo({sourceX:e,sourceY:t,sourcePosition:n=W.Bottom,targetX:o,targetY:s,targetPosition:r=W.Top}){const[i,a]=Bn({pos:n,x1:e,y1:t,x2:o,y2:s}),[d,u]=Bn({pos:r,x1:o,y1:s,x2:e,y2:t}),[h,c,l,m]=mo({sourceX:e,sourceY:t,targetX:o,targetY:s,sourceControlX:i,sourceControlY:a,targetControlX:d,targetControlY:u});return[`M${e},${t} C${i},${a} ${d},${u} ${o},${s}`,h,c,l,m]}function Ko(e){return z.memo(({id:t,sourceX:n,sourceY:o,targetX:s,targetY:r,sourcePosition:i,targetPosition:a,label:d,labelStyle:u,labelShowBg:h,labelBgStyle:c,labelBgPadding:l,labelBgBorderRadius:m,style:p,markerEnd:b,markerStart:y,interactionWidth:g})=>{const[v,f,x]=Zo({sourceX:n,sourceY:o,sourcePosition:i,targetX:s,targetY:r,targetPosition:a}),k=e.isInternal?void 0:t;return C.jsx(xt,{id:k,path:v,labelX:f,labelY:x,label:d,labelStyle:u,labelShowBg:h,labelBgStyle:c,labelBgPadding:l,labelBgBorderRadius:m,style:p,markerEnd:b,markerStart:y,interactionWidth:g})})}const oc=Ko({isInternal:!1}),Uo=Ko({isInternal:!0});oc.displayName="SimpleBezierEdge";Uo.displayName="SimpleBezierEdgeInternal";function Qo(e){return z.memo(({id:t,sourceX:n,sourceY:o,targetX:s,targetY:r,label:i,labelStyle:a,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:c,style:l,sourcePosition:m=W.Bottom,targetPosition:p=W.Top,markerEnd:b,markerStart:y,pathOptions:g,interactionWidth:v})=>{const[f,x,k]=zt({sourceX:n,sourceY:o,sourcePosition:m,targetX:s,targetY:r,targetPosition:p,borderRadius:g==null?void 0:g.borderRadius,offset:g==null?void 0:g.offset,stepPosition:g==null?void 0:g.stepPosition}),S=e.isInternal?void 0:t;return C.jsx(xt,{id:S,path:f,labelX:x,labelY:k,label:i,labelStyle:a,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:c,style:l,markerEnd:b,markerStart:y,interactionWidth:v})})}const Jo=Qo({isInternal:!1}),es=Qo({isInternal:!0});Jo.displayName="SmoothStepEdge";es.displayName="SmoothStepEdgeInternal";function ts(e){return z.memo(({id:t,...n})=>{var s;const o=e.isInternal?void 0:t;return C.jsx(Jo,{...n,id:o,pathOptions:z.useMemo(()=>{var r;return{borderRadius:0,offset:(r=n.pathOptions)==null?void 0:r.offset}},[(s=n.pathOptions)==null?void 0:s.offset])})})}const sc=ts({isInternal:!1}),ns=ts({isInternal:!0});sc.displayName="StepEdge";ns.displayName="StepEdgeInternal";function os(e){return z.memo(({id:t,sourceX:n,sourceY:o,targetX:s,targetY:r,label:i,labelStyle:a,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:c,style:l,markerEnd:m,markerStart:p,interactionWidth:b})=>{const[y,g,v]=wo({sourceX:n,sourceY:o,targetX:s,targetY:r}),f=e.isInternal?void 0:t;return C.jsx(xt,{id:f,path:y,labelX:g,labelY:v,label:i,labelStyle:a,labelShowBg:d,labelBgStyle:u,labelBgPadding:h,labelBgBorderRadius:c,style:l,markerEnd:m,markerStart:p,interactionWidth:b})})}const rc=os({isInternal:!1}),ss=os({isInternal:!0});rc.displayName="StraightEdge";ss.displayName="StraightEdgeInternal";function rs(e){return z.memo(({id:t,sourceX:n,sourceY:o,targetX:s,targetY:r,sourcePosition:i=W.Bottom,targetPosition:a=W.Top,label:d,labelStyle:u,labelShowBg:h,labelBgStyle:c,labelBgPadding:l,labelBgBorderRadius:m,style:p,markerEnd:b,markerStart:y,pathOptions:g,interactionWidth:v})=>{const[f,x,k]=yo({sourceX:n,sourceY:o,sourcePosition:i,targetX:s,targetY:r,targetPosition:a,curvature:g==null?void 0:g.curvature}),S=e.isInternal?void 0:t;return C.jsx(xt,{id:S,path:f,labelX:x,labelY:k,label:d,labelStyle:u,labelShowBg:h,labelBgStyle:c,labelBgPadding:l,labelBgBorderRadius:m,style:p,markerEnd:b,markerStart:y,interactionWidth:v})})}const ic=rs({isInternal:!1}),is=rs({isInternal:!0});ic.displayName="BezierEdge";is.displayName="BezierEdgeInternal";const Vn={default:is,straight:ss,step:ns,smoothstep:es,simplebezier:Uo},Fn={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null,zIndex:void 0},ac=(e,t,n)=>n===W.Left?e-t:n===W.Right?e+t:e,cc=(e,t,n)=>n===W.Top?e-t:n===W.Bottom?e+t:e,On="react-flow__edgeupdater";function Yn({position:e,centerX:t,centerY:n,radius:o=10,onMouseDown:s,onMouseEnter:r,onMouseOut:i,type:a}){return C.jsx("circle",{onMouseDown:s,onMouseEnter:r,onMouseOut:i,className:ie([On,`${On}-${a}`]),cx:ac(t,o,e),cy:cc(n,o,e),r:o,stroke:"transparent",fill:"transparent"})}function lc({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:o,sourceY:s,targetX:r,targetY:i,sourcePosition:a,targetPosition:d,onReconnect:u,onReconnectStart:h,onReconnectEnd:c,setReconnecting:l,setUpdateHover:m}){const p=se(),b=(x,k)=>{if(x.button!==0)return;const{autoPanOnConnect:S,domNode:_,connectionMode:A,connectionRadius:T,lib:V,onConnectStart:I,cancelConnection:D,nodeLookup:B,rfId:w,panBy:$,updateConnection:N}=p.getState(),E=k.type==="target",P=(j,H)=>{l(!1),c==null||c(j,n,k.type,H)},M=j=>u==null?void 0:u(n,j),L=(j,H)=>{l(!0),h==null||h(x,n,k.type),I==null||I(j,H)};Lt.onPointerDown(x.nativeEvent,{autoPanOnConnect:S,connectionMode:A,connectionRadius:T,domNode:_,handleId:k.id,nodeId:k.nodeId,nodeLookup:B,isTarget:E,edgeUpdaterType:k.type,lib:V,flowId:w,cancelConnection:D,panBy:$,isValidConnection:(...j)=>{var H,O;return((O=(H=p.getState()).isValidConnection)==null?void 0:O.call(H,...j))??!0},onConnect:M,onConnectStart:L,onConnectEnd:(...j)=>{var H,O;return(O=(H=p.getState()).onConnectEnd)==null?void 0:O.call(H,...j)},onReconnectEnd:P,updateConnection:N,getTransform:()=>p.getState().transform,getFromHandle:()=>p.getState().connection.fromHandle,dragThreshold:p.getState().connectionDragThreshold,handleDomNode:x.currentTarget})},y=x=>b(x,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),g=x=>b(x,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),v=()=>m(!0),f=()=>m(!1);return C.jsxs(C.Fragment,{children:[(e===!0||e==="source")&&C.jsx(Yn,{position:a,centerX:o,centerY:s,radius:t,onMouseDown:y,onMouseEnter:v,onMouseOut:f,type:"source"}),(e===!0||e==="target")&&C.jsx(Yn,{position:d,centerX:r,centerY:i,radius:t,onMouseDown:g,onMouseEnter:v,onMouseOut:f,type:"target"})]})}function uc({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:o,onClick:s,onDoubleClick:r,onContextMenu:i,onMouseEnter:a,onMouseMove:d,onMouseLeave:u,reconnectRadius:h,onReconnect:c,onReconnectStart:l,onReconnectEnd:m,rfId:p,edgeTypes:b,noPanClassName:y,onError:g,disableKeyboardA11y:v}){let f=ee(G=>G.edgeLookup.get(e));const x=ee(G=>G.defaultEdgeOptions);f=x?{...x,...f}:f;let k=f.type||"default",S=(b==null?void 0:b[k])||Vn[k];S===void 0&&(g==null||g("011",he.error011(k)),k="default",S=(b==null?void 0:b.default)||Vn.default);const _=!!(f.focusable||t&&typeof f.focusable>"u"),A=typeof c<"u"&&(f.reconnectable||n&&typeof f.reconnectable>"u"),T=!!(f.selectable||o&&typeof f.selectable>"u"),V=z.useRef(null),[I,D]=z.useState(!1),[B,w]=z.useState(!1),$=se(),{zIndex:N=f.zIndex,sourceX:E,sourceY:P,targetX:M,targetY:L,sourcePosition:j,targetPosition:H}=ee(z.useCallback(G=>{const X=G.nodeLookup.get(f.source),J=G.nodeLookup.get(f.target);if(!X||!J)return Fn;const te=oi({id:e,sourceNode:X,targetNode:J,sourceHandle:f.sourceHandle||null,targetHandle:f.targetHandle||null,connectionMode:G.connectionMode,onError:g}),ne=Zr({selected:f.selected,zIndex:f.zIndex,sourceNode:X,targetNode:J,elevateOnSelect:G.elevateEdgesOnSelect,zIndexMode:G.zIndexMode});return{...te||Fn,zIndex:ne}},[f.source,f.target,f.sourceHandle,f.targetHandle,f.selected,f.zIndex]),oe),O=z.useMemo(()=>f.markerStart?`url('#${Tt(f.markerStart,p)}')`:void 0,[f.markerStart,p]),Y=z.useMemo(()=>f.markerEnd?`url('#${Tt(f.markerEnd,p)}')`:void 0,[f.markerEnd,p]);if(f.hidden||E===null||P===null||M===null||L===null)return null;const Z=G=>{var ne;const{addSelectedEdges:X,unselectNodesAndEdges:J,multiSelectionActive:te}=$.getState();T&&($.setState({nodesSelectionActive:!1}),f.selected&&te?(J({nodes:[],edges:[f]}),(ne=V.current)==null||ne.blur()):X([e])),s&&s(G,f)},Q=r?G=>{r(G,{...f})}:void 0,q=i?G=>{i(G,{...f})}:void 0,R=a?G=>{a(G,{...f})}:void 0,F=d?G=>{d(G,{...f})}:void 0,U=u?G=>{u(G,{...f})}:void 0,K=G=>{var X;if(!v&&eo.includes(G.key)&&T){const{unselectNodesAndEdges:J,addSelectedEdges:te}=$.getState();G.key==="Escape"?((X=V.current)==null||X.blur(),J({edges:[f]})):te([e])}};return C.jsx("svg",{style:{zIndex:N},children:C.jsxs("g",{className:ie(["react-flow__edge",`react-flow__edge-${k}`,f.className,y,{selected:f.selected,animated:f.animated,inactive:!T&&!s,updating:I,selectable:T}]),onClick:Z,onDoubleClick:Q,onContextMenu:q,onMouseEnter:R,onMouseMove:F,onMouseLeave:U,onKeyDown:_?K:void 0,tabIndex:_?0:void 0,role:f.ariaRole??(_?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":f.ariaLabel===null?void 0:f.ariaLabel||`Edge from ${f.source} to ${f.target}`,"aria-describedby":_?`${To}-${p}`:void 0,ref:V,...f.domAttributes,children:[!B&&C.jsx(S,{id:e,source:f.source,target:f.target,type:f.type,selected:f.selected,animated:f.animated,selectable:T,deletable:f.deletable??!0,label:f.label,labelStyle:f.labelStyle,labelShowBg:f.labelShowBg,labelBgStyle:f.labelBgStyle,labelBgPadding:f.labelBgPadding,labelBgBorderRadius:f.labelBgBorderRadius,sourceX:E,sourceY:P,targetX:M,targetY:L,sourcePosition:j,targetPosition:H,data:f.data,style:f.style,sourceHandleId:f.sourceHandle,targetHandleId:f.targetHandle,markerStart:O,markerEnd:Y,pathOptions:"pathOptions"in f?f.pathOptions:void 0,interactionWidth:f.interactionWidth}),A&&C.jsx(lc,{edge:f,isReconnectable:A,reconnectRadius:h,onReconnect:c,onReconnectStart:l,onReconnectEnd:m,sourceX:E,sourceY:P,targetX:M,targetY:L,sourcePosition:j,targetPosition:H,setUpdateHover:D,setReconnecting:w})]})})}var dc=z.memo(uc);const fc=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function as({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:o,noPanClassName:s,onReconnect:r,onEdgeContextMenu:i,onEdgeMouseEnter:a,onEdgeMouseMove:d,onEdgeMouseLeave:u,onEdgeClick:h,reconnectRadius:c,onEdgeDoubleClick:l,onReconnectStart:m,onReconnectEnd:p,disableKeyboardA11y:b}){const{edgesFocusable:y,edgesReconnectable:g,elementsSelectable:v,onError:f}=ee(fc,oe),x=Ka(t);return C.jsxs("div",{className:"react-flow__edges",children:[C.jsx(tc,{defaultColor:e,rfId:n}),x.map(k=>C.jsx(dc,{id:k,edgesFocusable:y,edgesReconnectable:g,elementsSelectable:v,noPanClassName:s,onReconnect:r,onContextMenu:i,onMouseEnter:a,onMouseMove:d,onMouseLeave:u,onClick:h,reconnectRadius:c,onDoubleClick:l,onReconnectStart:m,onReconnectEnd:p,rfId:n,onError:f,edgeTypes:o,disableKeyboardA11y:b},k))]})}as.displayName="EdgeRenderer";const hc=z.memo(as),gc=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function pc({children:e}){const t=ee(gc);return C.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function mc(e){const t=Zt(),n=z.useRef(!1);z.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const yc=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function xc(e){const t=ee(yc),n=se();return z.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function wc(e){return e.connection.inProgress?{...e.connection,to:Je(e.connection.to,e.transform)}:{...e.connection}}function bc(e){return wc}function vc(e){const t=bc();return ee(t,oe)}const Ec=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function Sc({containerStyle:e,style:t,type:n,component:o}){const{nodesConnectable:s,width:r,height:i,isValid:a,inProgress:d}=ee(Ec,oe);return!(r&&s&&d)?null:C.jsx("svg",{style:e,width:r,height:i,className:"react-flow__connectionline react-flow__container",children:C.jsx("g",{className:ie(["react-flow__connection",oo(a)]),children:C.jsx(cs,{style:t,type:n,CustomComponent:o,isValid:a})})})}const cs=({style:e,type:t=Ee.Bezier,CustomComponent:n,isValid:o})=>{const{inProgress:s,from:r,fromNode:i,fromHandle:a,fromPosition:d,to:u,toNode:h,toHandle:c,toPosition:l,pointer:m}=vc();if(!s)return;if(n)return C.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:i,fromHandle:a,fromX:r.x,fromY:r.y,toX:u.x,toY:u.y,fromPosition:d,toPosition:l,connectionStatus:oo(o),toNode:h,toHandle:c,pointer:m});let p="";const b={sourceX:r.x,sourceY:r.y,sourcePosition:d,targetX:u.x,targetY:u.y,targetPosition:l};switch(t){case Ee.Bezier:[p]=yo(b);break;case Ee.SimpleBezier:[p]=Zo(b);break;case Ee.Step:[p]=zt({...b,borderRadius:0});break;case Ee.SmoothStep:[p]=zt(b);break;default:[p]=wo(b)}return C.jsx("path",{d:p,fill:"none",className:"react-flow__connection-path",style:e})};cs.displayName="ConnectionLine";const Nc={};function Xn(e=Nc){z.useRef(e),se(),z.useEffect(()=>{},[e])}function Mc(){se(),z.useRef(!1),z.useEffect(()=>{},[])}function ls({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:o,onEdgeClick:s,onNodeDoubleClick:r,onEdgeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:d,onNodeMouseLeave:u,onNodeContextMenu:h,onSelectionContextMenu:c,onSelectionStart:l,onSelectionEnd:m,connectionLineType:p,connectionLineStyle:b,connectionLineComponent:y,connectionLineContainerStyle:g,selectionKeyCode:v,selectionOnDrag:f,selectionMode:x,multiSelectionKeyCode:k,panActivationKeyCode:S,zoomActivationKeyCode:_,deleteKeyCode:A,onlyRenderVisibleElements:T,elementsSelectable:V,defaultViewport:I,translateExtent:D,minZoom:B,maxZoom:w,preventScrolling:$,defaultMarkerColor:N,zoomOnScroll:E,zoomOnPinch:P,panOnScroll:M,panOnScrollSpeed:L,panOnScrollMode:j,zoomOnDoubleClick:H,panOnDrag:O,autoPanOnSelection:Y,onPaneClick:Z,onPaneMouseEnter:Q,onPaneMouseMove:q,onPaneMouseLeave:R,onPaneScroll:F,onPaneContextMenu:U,paneClickDistance:K,nodeClickDistance:G,onEdgeContextMenu:X,onEdgeMouseEnter:J,onEdgeMouseMove:te,onEdgeMouseLeave:ne,reconnectRadius:re,onReconnect:ce,onReconnectStart:ge,onReconnectEnd:pe,noDragClassName:me,noWheelClassName:Ve,noPanClassName:Ne,disableKeyboardA11y:Me,nodeExtent:le,rfId:ye,viewport:xe,onViewportChange:Ce}){return Xn(e),Xn(t),Mc(),mc(n),xc(xe),C.jsx(Ba,{onPaneClick:Z,onPaneMouseEnter:Q,onPaneMouseMove:q,onPaneMouseLeave:R,onPaneContextMenu:U,onPaneScroll:F,paneClickDistance:K,deleteKeyCode:A,selectionKeyCode:v,selectionOnDrag:f,selectionMode:x,onSelectionStart:l,onSelectionEnd:m,multiSelectionKeyCode:k,panActivationKeyCode:S,zoomActivationKeyCode:_,elementsSelectable:V,zoomOnScroll:E,zoomOnPinch:P,zoomOnDoubleClick:H,panOnScroll:M,panOnScrollSpeed:L,panOnScrollMode:j,panOnDrag:O,autoPanOnSelection:Y,defaultViewport:I,translateExtent:D,minZoom:B,maxZoom:w,onSelectionContextMenu:c,preventScrolling:$,noDragClassName:me,noWheelClassName:Ve,noPanClassName:Ne,disableKeyboardA11y:Me,onViewportChange:Ce,isControlledViewport:!!xe,children:C.jsxs(pc,{children:[C.jsx(hc,{edgeTypes:t,onEdgeClick:s,onEdgeDoubleClick:i,onReconnect:ce,onReconnectStart:ge,onReconnectEnd:pe,onlyRenderVisibleElements:T,onEdgeContextMenu:X,onEdgeMouseEnter:J,onEdgeMouseMove:te,onEdgeMouseLeave:ne,reconnectRadius:re,defaultMarkerColor:N,noPanClassName:Ne,disableKeyboardA11y:Me,rfId:ye}),C.jsx(Sc,{style:b,type:p,component:y,containerStyle:g}),C.jsx("div",{className:"react-flow__edgelabel-renderer"}),C.jsx(Za,{nodeTypes:e,onNodeClick:o,onNodeDoubleClick:r,onNodeMouseEnter:a,onNodeMouseMove:d,onNodeMouseLeave:u,onNodeContextMenu:h,nodeClickDistance:G,onlyRenderVisibleElements:T,noPanClassName:Ne,noDragClassName:me,disableKeyboardA11y:Me,nodeExtent:le,rfId:ye}),C.jsx("div",{className:"react-flow__viewport-portal"})]})})}ls.displayName="GraphView";const Cc=z.memo(ls),Ic=lo(),Wn=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:s,height:r,fitView:i,fitViewOptions:a,minZoom:d=.5,maxZoom:u=2,nodeOrigin:h,nodeExtent:c,zIndexMode:l="basic"}={})=>{const m=new Map,p=new Map,b=new Map,y=new Map,g=o??t??[],v=n??e??[],f=h??[0,0],x=c??Xe;Eo(b,y,g);const{nodesInitialized:k}=Dt(v,m,p,{nodeOrigin:f,nodeExtent:x,zIndexMode:l});let S=[0,0,1];if(i&&s&&r){const _=Ue(m,{filter:I=>!!((I.width||I.initialWidth)&&(I.height||I.initialHeight))}),{x:A,y:T,zoom:V}=Ft(_,s,r,d,u,(a==null?void 0:a.padding)??.1);S=[A,T,V]}return{rfId:"1",width:s??0,height:r??0,transform:S,nodes:v,nodesInitialized:k,nodeLookup:m,parentLookup:p,edges:g,edgeLookup:y,connectionLookup:b,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:o!==void 0,panZoom:null,minZoom:d,maxZoom:u,translateExtent:Xe,nodeExtent:x,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Le.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:f,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:i??!1,fitViewOptions:a,fitViewResolver:null,connection:{...no},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:Ic,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:to,zIndexMode:l,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},kc=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:s,height:r,fitView:i,fitViewOptions:a,minZoom:d,maxZoom:u,nodeOrigin:h,nodeExtent:c,zIndexMode:l})=>Bi((m,p)=>{async function b(){const{nodeLookup:y,panZoom:g,fitViewOptions:v,fitViewResolver:f,width:x,height:k,minZoom:S,maxZoom:_}=p();g&&(await Fr({nodes:y,width:x,height:k,panZoom:g,minZoom:S,maxZoom:_},v),f==null||f.resolve(!0),m({fitViewResolver:null}))}return{...Wn({nodes:e,edges:t,width:s,height:r,fitView:i,fitViewOptions:a,minZoom:d,maxZoom:u,nodeOrigin:h,nodeExtent:c,defaultNodes:n,defaultEdges:o,zIndexMode:l}),setNodes:y=>{const{nodeLookup:g,parentLookup:v,nodeOrigin:f,elevateNodesOnSelect:x,fitViewQueued:k,zIndexMode:S,nodesSelectionActive:_}=p(),{nodesInitialized:A,hasSelectedNodes:T}=Dt(y,g,v,{nodeOrigin:f,nodeExtent:c,elevateNodesOnSelect:x,checkEquality:!0,zIndexMode:S}),V=_&&T;k&&A?(b(),m({nodes:y,nodesInitialized:A,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:V})):m({nodes:y,nodesInitialized:A,nodesSelectionActive:V})},setEdges:y=>{const{connectionLookup:g,edgeLookup:v}=p();Eo(g,v,y),m({edges:y})},setDefaultNodesAndEdges:(y,g)=>{if(y){const{setNodes:v}=p();v(y),m({hasDefaultNodes:!0})}if(g){const{setEdges:v}=p();v(g),m({hasDefaultEdges:!0})}},updateNodeInternals:y=>{const{triggerNodeChanges:g,nodeLookup:v,parentLookup:f,domNode:x,nodeOrigin:k,nodeExtent:S,debug:_,fitViewQueued:A,zIndexMode:T}=p(),{changes:V,updatedInternals:I}=di(y,v,f,x,k,S,T);I&&(ai(v,f,{nodeOrigin:k,nodeExtent:S,zIndexMode:T}),A?(b(),m({fitViewQueued:!1,fitViewOptions:void 0})):m({}),(V==null?void 0:V.length)>0&&(_&&console.log("React Flow: trigger node changes",V),g==null||g(V)))},updateNodePositions:(y,g=!1)=>{const v=[];let f=[];const{nodeLookup:x,triggerNodeChanges:k,connection:S,updateConnection:_,onNodesChangeMiddlewareMap:A}=p();for(const[T,V]of y){const I=x.get(T),D=!!(I!=null&&I.expandParent&&(I!=null&&I.parentId)&&(V!=null&&V.position)),B={id:T,type:"position",position:D?{x:Math.max(0,V.position.x),y:Math.max(0,V.position.y)}:V.position,dragging:g};if(I&&S.inProgress&&S.fromNode.id===I.id){const w=_e(I,S.fromHandle,W.Left,!0);_({...S,from:w})}D&&I.parentId&&v.push({id:T,parentId:I.parentId,rect:{...V.internals.positionAbsolute,width:V.measured.width??0,height:V.measured.height??0}}),f.push(B)}if(v.length>0){const{parentLookup:T,nodeOrigin:V}=p(),I=qt(v,x,T,V);f.push(...I)}for(const T of A.values())f=T(f);k(f)},triggerNodeChanges:y=>{const{onNodesChange:g,setNodes:v,nodes:f,hasDefaultNodes:x,debug:k}=p();if(y!=null&&y.length){if(x){const S=jo(y,f);v(S)}k&&console.log("React Flow: trigger node changes",y),g==null||g(y)}},triggerEdgeChanges:y=>{const{onEdgesChange:g,setEdges:v,edges:f,hasDefaultEdges:x,debug:k}=p();if(y!=null&&y.length){if(x){const S=Ho(y,f);v(S)}k&&console.log("React Flow: trigger edge changes",y),g==null||g(y)}},addSelectedNodes:y=>{const{multiSelectionActive:g,edgeLookup:v,nodeLookup:f,triggerNodeChanges:x,triggerEdgeChanges:k}=p();if(g){const S=y.map(_=>Ie(_,!0));x(S);return}x(Te(f,new Set([...y]),!0)),k(Te(v))},addSelectedEdges:y=>{const{multiSelectionActive:g,edgeLookup:v,nodeLookup:f,triggerNodeChanges:x,triggerEdgeChanges:k}=p();if(g){const S=y.map(_=>Ie(_,!0));k(S);return}k(Te(v,new Set([...y]))),x(Te(f,new Set,!0))},unselectNodesAndEdges:({nodes:y,edges:g}={})=>{const{edges:v,nodes:f,nodeLookup:x,triggerNodeChanges:k,triggerEdgeChanges:S}=p(),_=y||f,A=g||v,T=[];for(const I of _){if(!I.selected)continue;const D=x.get(I.id);D&&(D.selected=!1),T.push(Ie(I.id,!1))}const V=[];for(const I of A)I.selected&&V.push(Ie(I.id,!1));k(T),S(V)},setMinZoom:y=>{const{panZoom:g,maxZoom:v}=p();g==null||g.setScaleExtent([y,v]),m({minZoom:y})},setMaxZoom:y=>{const{panZoom:g,minZoom:v}=p();g==null||g.setScaleExtent([v,y]),m({maxZoom:y})},setTranslateExtent:y=>{var g;(g=p().panZoom)==null||g.setTranslateExtent(y),m({translateExtent:y})},resetSelectedElements:()=>{const{edges:y,nodes:g,triggerNodeChanges:v,triggerEdgeChanges:f,elementsSelectable:x}=p();if(!x)return;const k=g.reduce((_,A)=>A.selected?[..._,Ie(A.id,!1)]:_,[]),S=y.reduce((_,A)=>A.selected?[..._,Ie(A.id,!1)]:_,[]);v(k),f(S)},setNodeExtent:y=>{const{nodes:g,nodeLookup:v,parentLookup:f,nodeOrigin:x,elevateNodesOnSelect:k,nodeExtent:S,zIndexMode:_}=p();y[0][0]===S[0][0]&&y[0][1]===S[0][1]&&y[1][0]===S[1][0]&&y[1][1]===S[1][1]||(Dt(g,v,f,{nodeOrigin:x,nodeExtent:y,elevateNodesOnSelect:k,checkEquality:!1,zIndexMode:_}),m({nodeExtent:y}))},panBy:y=>{const{transform:g,width:v,height:f,panZoom:x,translateExtent:k}=p();return fi({delta:y,panZoom:x,transform:g,translateExtent:k,width:v,height:f})},setCenter:async(y,g,v)=>{const{width:f,height:x,maxZoom:k,panZoom:S}=p();if(!S)return!1;const _=typeof(v==null?void 0:v.zoom)<"u"?v.zoom:k;return await S.setViewport({x:f/2-y*_,y:x/2-g*_,zoom:_},{duration:v==null?void 0:v.duration,ease:v==null?void 0:v.ease,interpolate:v==null?void 0:v.interpolate}),!0},cancelConnection:()=>{m({connection:{...no}})},updateConnection:y=>{m({connection:y})},reset:()=>m({...Wn()})}},Object.is);function Pc({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:o,initialWidth:s,initialHeight:r,initialMinZoom:i,initialMaxZoom:a,initialFitViewOptions:d,fitView:u,nodeOrigin:h,nodeExtent:c,zIndexMode:l,children:m}){const[p]=z.useState(()=>kc({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:s,height:r,fitView:u,minZoom:i,maxZoom:a,fitViewOptions:d,nodeOrigin:h,nodeExtent:c,zIndexMode:l}));return C.jsx(Vi,{value:p,children:C.jsx(fa,{children:C.jsx(Ia,{children:m})})})}function $c({children:e,nodes:t,edges:n,defaultNodes:o,defaultEdges:s,width:r,height:i,fitView:a,fitViewOptions:d,minZoom:u,maxZoom:h,nodeOrigin:c,nodeExtent:l,zIndexMode:m}){return z.useContext(pt)?C.jsx(C.Fragment,{children:e}):C.jsx(Pc,{initialNodes:t,initialEdges:n,defaultNodes:o,defaultEdges:s,initialWidth:r,initialHeight:i,fitView:a,initialFitViewOptions:d,initialMinZoom:u,initialMaxZoom:h,nodeOrigin:c,nodeExtent:l,zIndexMode:m,children:e})}const _c={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function Ac({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,className:s,nodeTypes:r,edgeTypes:i,onNodeClick:a,onEdgeClick:d,onInit:u,onMove:h,onMoveStart:c,onMoveEnd:l,onConnect:m,onConnectStart:p,onConnectEnd:b,onClickConnectStart:y,onClickConnectEnd:g,onNodeMouseEnter:v,onNodeMouseMove:f,onNodeMouseLeave:x,onNodeContextMenu:k,onNodeDoubleClick:S,onNodeDragStart:_,onNodeDrag:A,onNodeDragStop:T,onNodesDelete:V,onEdgesDelete:I,onDelete:D,onSelectionChange:B,onSelectionDragStart:w,onSelectionDrag:$,onSelectionDragStop:N,onSelectionContextMenu:E,onSelectionStart:P,onSelectionEnd:M,onBeforeDelete:L,connectionMode:j,connectionLineType:H=Ee.Bezier,connectionLineStyle:O,connectionLineComponent:Y,connectionLineContainerStyle:Z,deleteKeyCode:Q="Backspace",selectionKeyCode:q="Shift",selectionOnDrag:R=!1,selectionMode:F=We.Full,panActivationKeyCode:U="Space",multiSelectionKeyCode:K=qe()?"Meta":"Control",zoomActivationKeyCode:G=qe()?"Meta":"Control",snapToGrid:X,snapGrid:J,onlyRenderVisibleElements:te=!1,selectNodesOnDrag:ne,nodesDraggable:re,autoPanOnNodeFocus:ce,nodesConnectable:ge,nodesFocusable:pe,nodeOrigin:me=Do,edgesFocusable:Ve,edgesReconnectable:Ne,elementsSelectable:Me=!0,defaultViewport:le=ea,minZoom:ye=.5,maxZoom:xe=2,translateExtent:Ce=Xe,preventScrolling:hs=!0,nodeExtent:wt,defaultMarkerColor:gs="#b1b1b7",zoomOnScroll:ps=!0,zoomOnPinch:ms=!0,panOnScroll:ys=!1,panOnScrollSpeed:xs=.5,panOnScrollMode:ws=ke.Free,zoomOnDoubleClick:bs=!0,panOnDrag:vs=!0,onPaneClick:Es,onPaneMouseEnter:Ss,onPaneMouseMove:Ns,onPaneMouseLeave:Ms,onPaneScroll:Cs,onPaneContextMenu:Is,paneClickDistance:ks=1,nodeClickDistance:Ps=0,children:$s,onReconnect:_s,onReconnectStart:As,onReconnectEnd:zs,onEdgeContextMenu:Ts,onEdgeDoubleClick:Ds,onEdgeMouseEnter:Ls,onEdgeMouseMove:js,onEdgeMouseLeave:Hs,reconnectRadius:Rs=10,onNodesChange:Bs,onEdgesChange:Vs,noDragClassName:Fs="nodrag",noWheelClassName:Os="nowheel",noPanClassName:Ut="nopan",fitView:Qt,fitViewOptions:Jt,connectOnClick:Ys,attributionPosition:Xs,proOptions:Ws,defaultEdgeOptions:Gs,elevateNodesOnSelect:qs=!0,elevateEdgesOnSelect:Zs=!1,disableKeyboardA11y:en=!1,autoPanOnConnect:Ks,autoPanOnNodeDrag:Us,autoPanOnSelection:Qs=!0,autoPanSpeed:Js,connectionRadius:er,isValidConnection:tr,onError:nr,style:or,id:tn,nodeDragThreshold:sr,connectionDragThreshold:rr,viewport:ir,onViewportChange:ar,width:cr,height:lr,colorMode:ur="light",debug:dr,onScroll:et,ariaLabelConfig:fr,zIndexMode:nn="basic",...hr},gr){const bt=tn||"1",pr=sa(ur),mr=z.useCallback(on=>{on.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),et==null||et(on)},[et]);return C.jsx("div",{"data-testid":"rf__wrapper",...hr,onScroll:mr,style:{...or,..._c},ref:gr,className:ie(["react-flow",s,pr]),id:tn,role:"application",children:C.jsxs($c,{nodes:e,edges:t,width:cr,height:lr,fitView:Qt,fitViewOptions:Jt,minZoom:ye,maxZoom:xe,nodeOrigin:me,nodeExtent:wt,zIndexMode:nn,children:[C.jsx(oa,{nodes:e,edges:t,defaultNodes:n,defaultEdges:o,onConnect:m,onConnectStart:p,onConnectEnd:b,onClickConnectStart:y,onClickConnectEnd:g,nodesDraggable:re,autoPanOnNodeFocus:ce,nodesConnectable:ge,nodesFocusable:pe,edgesFocusable:Ve,edgesReconnectable:Ne,elementsSelectable:Me,elevateNodesOnSelect:qs,elevateEdgesOnSelect:Zs,minZoom:ye,maxZoom:xe,nodeExtent:wt,onNodesChange:Bs,onEdgesChange:Vs,snapToGrid:X,snapGrid:J,connectionMode:j,translateExtent:Ce,connectOnClick:Ys,defaultEdgeOptions:Gs,fitView:Qt,fitViewOptions:Jt,onNodesDelete:V,onEdgesDelete:I,onDelete:D,onNodeDragStart:_,onNodeDrag:A,onNodeDragStop:T,onSelectionDrag:$,onSelectionDragStart:w,onSelectionDragStop:N,onMove:h,onMoveStart:c,onMoveEnd:l,noPanClassName:Ut,nodeOrigin:me,rfId:bt,autoPanOnConnect:Ks,autoPanOnNodeDrag:Us,autoPanSpeed:Js,onError:nr,connectionRadius:er,isValidConnection:tr,selectNodesOnDrag:ne,nodeDragThreshold:sr,connectionDragThreshold:rr,onBeforeDelete:L,debug:dr,ariaLabelConfig:fr,zIndexMode:nn}),C.jsx(Cc,{onInit:u,onNodeClick:a,onEdgeClick:d,onNodeMouseEnter:v,onNodeMouseMove:f,onNodeMouseLeave:x,onNodeContextMenu:k,onNodeDoubleClick:S,nodeTypes:r,edgeTypes:i,connectionLineType:H,connectionLineStyle:O,connectionLineComponent:Y,connectionLineContainerStyle:Z,selectionKeyCode:q,selectionOnDrag:R,selectionMode:F,deleteKeyCode:Q,multiSelectionKeyCode:K,panActivationKeyCode:U,zoomActivationKeyCode:G,onlyRenderVisibleElements:te,defaultViewport:le,translateExtent:Ce,minZoom:ye,maxZoom:xe,preventScrolling:hs,zoomOnScroll:ps,zoomOnPinch:ms,zoomOnDoubleClick:bs,panOnScroll:ys,panOnScrollSpeed:xs,panOnScrollMode:ws,panOnDrag:vs,autoPanOnSelection:Qs,onPaneClick:Es,onPaneMouseEnter:Ss,onPaneMouseMove:Ns,onPaneMouseLeave:Ms,onPaneScroll:Cs,onPaneContextMenu:Is,paneClickDistance:ks,nodeClickDistance:Ps,onSelectionContextMenu:E,onSelectionStart:P,onSelectionEnd:M,onReconnect:_s,onReconnectStart:As,onReconnectEnd:zs,onEdgeContextMenu:Ts,onEdgeDoubleClick:Ds,onEdgeMouseEnter:Ls,onEdgeMouseMove:js,onEdgeMouseLeave:Hs,reconnectRadius:Rs,defaultMarkerColor:gs,noDragClassName:Fs,noWheelClassName:Os,noPanClassName:Ut,rfId:bt,disableKeyboardA11y:en,nodeExtent:wt,viewport:ir,onViewportChange:ar}),C.jsx(Ji,{onSelectionChange:B}),$s,C.jsx(qi,{proOptions:Ws,position:Xs}),C.jsx(Gi,{rfId:bt,disableKeyboardA11y:en})]})})}var zc=Ro(Ac);function Tc(e){const[t,n]=z.useState(e),o=z.useCallback(s=>n(r=>jo(s,r)),[]);return[t,n,o]}function Dc(e){const[t,n]=z.useState(e),o=z.useCallback(s=>n(r=>Ho(s,r)),[]);return[t,n,o]}function Lc({dimensions:e,lineWidth:t,variant:n,className:o}){return C.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:ie(["react-flow__background-pattern",n,o])})}function jc({radius:e,className:t}){return C.jsx("circle",{cx:e,cy:e,r:e,className:ie(["react-flow__background-pattern","dots",t])})}var Se;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Se||(Se={}));const Hc={[Se.Dots]:1,[Se.Lines]:1,[Se.Cross]:6},Rc=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function us({id:e,variant:t=Se.Dots,gap:n=20,size:o,lineWidth:s=1,offset:r=0,color:i,bgColor:a,style:d,className:u,patternClassName:h}){const c=z.useRef(null),{transform:l,patternId:m}=ee(Rc,oe),p=o||Hc[t],b=t===Se.Dots,y=t===Se.Cross,g=Array.isArray(n)?n:[n,n],v=[g[0]*l[2]||1,g[1]*l[2]||1],f=p*l[2],x=Array.isArray(r)?r:[r,r],k=y?[f,f]:v,S=[x[0]*l[2]||1+k[0]/2,x[1]*l[2]||1+k[1]/2],_=`${m}${e||""}`;return C.jsxs("svg",{className:ie(["react-flow__background",u]),style:{...d,...yt,"--xy-background-color-props":a,"--xy-background-pattern-color-props":i},ref:c,"data-testid":"rf__background",children:[C.jsx("pattern",{id:_,x:l[0]%v[0],y:l[1]%v[1],width:v[0],height:v[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${S[0]},-${S[1]})`,children:b?C.jsx(jc,{radius:f/2,className:h}):C.jsx(Lc,{dimensions:k,lineWidth:s,variant:t,className:h})}),C.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${_})`})]})}us.displayName="Background";const Bc=z.memo(us);function Vc(){return C.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:C.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function Fc(){return C.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:C.jsx("path",{d:"M0 0h32v4.2H0z"})})}function Oc(){return C.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:C.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 Yc(){return C.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:C.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 Xc(){return C.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:C.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 it({children:e,className:t,...n}){return C.jsx("button",{type:"button",className:ie(["react-flow__controls-button",t]),...n,children:e})}const Wc=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function ds({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:o=!0,fitViewOptions:s,onZoomIn:r,onZoomOut:i,onFitView:a,onInteractiveChange:d,className:u,children:h,position:c="bottom-left",orientation:l="vertical","aria-label":m}){const p=se(),{isInteractive:b,minZoomReached:y,maxZoomReached:g,ariaLabelConfig:v}=ee(Wc,oe),{zoomIn:f,zoomOut:x,fitView:k}=Zt(),S=()=>{f(),r==null||r()},_=()=>{x(),i==null||i()},A=()=>{k(s),a==null||a()},T=()=>{p.setState({nodesDraggable:!b,nodesConnectable:!b,elementsSelectable:!b}),d==null||d(!b)},V=l==="horizontal"?"horizontal":"vertical";return C.jsxs(mt,{className:ie(["react-flow__controls",V,u]),position:c,style:e,"data-testid":"rf__controls","aria-label":m??v["controls.ariaLabel"],children:[t&&C.jsxs(C.Fragment,{children:[C.jsx(it,{onClick:S,className:"react-flow__controls-zoomin",title:v["controls.zoomIn.ariaLabel"],"aria-label":v["controls.zoomIn.ariaLabel"],disabled:g,children:C.jsx(Vc,{})}),C.jsx(it,{onClick:_,className:"react-flow__controls-zoomout",title:v["controls.zoomOut.ariaLabel"],"aria-label":v["controls.zoomOut.ariaLabel"],disabled:y,children:C.jsx(Fc,{})})]}),n&&C.jsx(it,{className:"react-flow__controls-fitview",onClick:A,title:v["controls.fitView.ariaLabel"],"aria-label":v["controls.fitView.ariaLabel"],children:C.jsx(Oc,{})}),o&&C.jsx(it,{className:"react-flow__controls-interactive",onClick:T,title:v["controls.interactive.ariaLabel"],"aria-label":v["controls.interactive.ariaLabel"],children:b?C.jsx(Xc,{}):C.jsx(Yc,{})}),h]})}ds.displayName="Controls";const Gc=z.memo(ds);function qc({id:e,x:t,y:n,width:o,height:s,style:r,color:i,strokeColor:a,strokeWidth:d,className:u,borderRadius:h,shapeRendering:c,selected:l,onClick:m}){const{background:p,backgroundColor:b}=r||{},y=i||p||b;return C.jsx("rect",{className:ie(["react-flow__minimap-node",{selected:l},u]),x:t,y:n,rx:h,ry:h,width:o,height:s,style:{fill:y,stroke:a,strokeWidth:d},shapeRendering:c,onClick:m?g=>m(g,e):void 0})}const Zc=z.memo(qc),Kc=e=>e.nodes.map(t=>t.id),$t=e=>e instanceof Function?e:()=>e;function Uc({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:o=5,nodeStrokeWidth:s,nodeComponent:r=Zc,onClick:i}){const a=ee(Kc,oe),d=$t(t),u=$t(e),h=$t(n),c=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return C.jsx(C.Fragment,{children:a.map(l=>C.jsx(Jc,{id:l,nodeColorFunc:d,nodeStrokeColorFunc:u,nodeClassNameFunc:h,nodeBorderRadius:o,nodeStrokeWidth:s,NodeComponent:r,onClick:i,shapeRendering:c},l))})}function Qc({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:o,nodeBorderRadius:s,nodeStrokeWidth:r,shapeRendering:i,NodeComponent:a,onClick:d}){const{node:u,x:h,y:c,width:l,height:m}=ee(p=>{const b=p.nodeLookup.get(e);if(!b)return{node:void 0,x:0,y:0,width:0,height:0};const y=b.internals.userNode,{x:g,y:v}=b.internals.positionAbsolute,{width:f,height:x}=we(y);return{node:y,x:g,y:v,width:f,height:x}},oe);return!u||u.hidden||!uo(u)?null:C.jsx(a,{x:h,y:c,width:l,height:m,style:u.style,selected:!!u.selected,className:o(u),color:t(u),borderRadius:s,strokeColor:n(u),strokeWidth:r,shapeRendering:i,onClick:d,id:u.id})}const Jc=z.memo(Qc);var el=z.memo(Uc);const tl=200,nl=150,ol=e=>!e.hidden,sl=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?ao(Ue(e.nodeLookup,{filter:ol}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},rl="react-flow__minimap-desc";function fs({style:e,className:t,nodeStrokeColor:n,nodeColor:o,nodeClassName:s="",nodeBorderRadius:r=5,nodeStrokeWidth:i,nodeComponent:a,bgColor:d,maskColor:u,maskStrokeColor:h,maskStrokeWidth:c,position:l="bottom-right",onClick:m,onNodeClick:p,pannable:b=!1,zoomable:y=!1,ariaLabel:g,inversePan:v,zoomStep:f=1,offsetScale:x=5}){const k=se(),S=z.useRef(null),{boundingRect:_,viewBB:A,rfId:T,panZoom:V,translateExtent:I,flowWidth:D,flowHeight:B,ariaLabelConfig:w}=ee(sl,oe),$=(e==null?void 0:e.width)??tl,N=(e==null?void 0:e.height)??nl,E=_.width/$,P=_.height/N,M=Math.max(E,P),L=M*$,j=M*N,H=x*M,O=_.x-(L-_.width)/2-H,Y=_.y-(j-_.height)/2-H,Z=L+H*2,Q=j+H*2,q=`${rl}-${T}`,R=z.useRef(0),F=z.useRef();R.current=M,z.useEffect(()=>{if(S.current&&V)return F.current=vi({domNode:S.current,panZoom:V,getTransform:()=>k.getState().transform,getViewScale:()=>R.current}),()=>{var X;(X=F.current)==null||X.destroy()}},[V]),z.useEffect(()=>{var X;(X=F.current)==null||X.update({translateExtent:I,width:D,height:B,inversePan:v,pannable:b,zoomStep:f,zoomable:y})},[b,y,v,f,I,D,B]);const U=m?X=>{var ne;const[J,te]=((ne=F.current)==null?void 0:ne.pointer(X))||[0,0];m(X,{x:J,y:te})}:void 0,K=p?z.useCallback((X,J)=>{const te=k.getState().nodeLookup.get(J).internals.userNode;p(X,te)},[]):void 0,G=g??w["minimap.ariaLabel"];return C.jsx(mt,{position:l,style:{...e,"--xy-minimap-background-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-background-color-props":typeof u=="string"?u:void 0,"--xy-minimap-mask-stroke-color-props":typeof h=="string"?h:void 0,"--xy-minimap-mask-stroke-width-props":typeof c=="number"?c*M:void 0,"--xy-minimap-node-background-color-props":typeof o=="string"?o:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof i=="number"?i:void 0},className:ie(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:C.jsxs("svg",{width:$,height:N,viewBox:`${O} ${Y} ${Z} ${Q}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":q,ref:S,onClick:U,children:[G&&C.jsx("title",{id:q,children:G}),C.jsx(el,{onClick:K,nodeColor:o,nodeStrokeColor:n,nodeBorderRadius:r,nodeClassName:s,nodeStrokeWidth:i,nodeComponent:a}),C.jsx("path",{className:"react-flow__minimap-mask",d:`M${O-H},${Y-H}h${Z+H*2}v${Q+H*2}h${-Z-H*2}z
7
- M${A.x},${A.y}h${A.width}v${A.height}h${-A.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}fs.displayName="MiniMap";const il=z.memo(fs),al=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,cl={[Re.Line]:"right",[Re.Handle]:"bottom-right"};function ll({nodeId:e,position:t,variant:n=Re.Handle,className:o,style:s=void 0,children:r,color:i,minWidth:a=10,minHeight:d=10,maxWidth:u=Number.MAX_VALUE,maxHeight:h=Number.MAX_VALUE,keepAspectRatio:c=!1,resizeDirection:l,autoScale:m=!0,shouldResize:p,onResizeStart:b,onResize:y,onResizeEnd:g}){const v=Oo(),f=typeof e=="string"?e:v,x=se(),k=z.useRef(null),S=n===Re.Handle,_=ee(z.useCallback(al(S&&m),[S,m]),oe),A=z.useRef(null),T=t??cl[n];z.useEffect(()=>{if(!(!k.current||!f))return A.current||(A.current=Ti({domNode:k.current,nodeId:f,getStoreItems:()=>{const{nodeLookup:I,transform:D,snapGrid:B,snapToGrid:w,nodeOrigin:$,domNode:N}=x.getState();return{nodeLookup:I,transform:D,snapGrid:B,snapToGrid:w,nodeOrigin:$,paneDomNode:N}},onChange:(I,D)=>{const{triggerNodeChanges:B,nodeLookup:w,parentLookup:$,nodeOrigin:N}=x.getState(),E=[],P={x:I.x,y:I.y},M=w.get(f);if(M&&M.expandParent&&M.parentId){const L=M.origin??N,j=I.width??M.measured.width??0,H=I.height??M.measured.height??0,O={id:M.id,parentId:M.parentId,rect:{width:j,height:H,...fo({x:I.x??M.position.x,y:I.y??M.position.y},{width:j,height:H},M.parentId,w,L)}},Y=qt([O],w,$,N);E.push(...Y),P.x=I.x?Math.max(L[0]*j,I.x):void 0,P.y=I.y?Math.max(L[1]*H,I.y):void 0}if(P.x!==void 0&&P.y!==void 0){const L={id:f,type:"position",position:{...P}};E.push(L)}if(I.width!==void 0&&I.height!==void 0){const j={id:f,type:"dimensions",resizing:!0,setAttributes:l?l==="horizontal"?"width":"height":!0,dimensions:{width:I.width,height:I.height}};E.push(j)}for(const L of D){const j={...L,type:"position"};E.push(j)}B(E)},onEnd:({width:I,height:D})=>{const B={id:f,type:"dimensions",resizing:!1,dimensions:{width:I,height:D}};x.getState().triggerNodeChanges([B])}})),A.current.update({controlPosition:T,boundaries:{minWidth:a,minHeight:d,maxWidth:u,maxHeight:h},keepAspectRatio:c,resizeDirection:l,onResizeStart:b,onResize:y,onResizeEnd:g,shouldResize:p}),()=>{var I;(I=A.current)==null||I.destroy()}},[T,a,d,u,h,c,b,y,g,p]);const V=T.split("-");return C.jsx("div",{className:ie(["react-flow__resize-control","nodrag",...V,n,o]),ref:k,style:{...s,scale:_,...i&&{[S?"backgroundColor":"borderColor"]:i}},children:r})}z.memo(ll);const ul=280,dl=140;function fl(e){const t=new Set(e.nodes.map(u=>u.id)),n=new Map(e.nodes.map(u=>[u.id,u])),o=e.nodes.find(u=>u.type==="start")??e.nodes[0],s=new Map;if(o){const u=[{id:o.id,d:0}];for(;u.length>0;){const{id:h,d:c}=u.shift();if(s.has(h))continue;s.set(h,c);const l=n.get(h);if(l)for(const m of l.choices)t.has(m.targetNodeId)&&!s.has(m.targetNodeId)&&u.push({id:m.targetNodeId,d:c+1})}}const r=s.size>0?Math.max(...s.values()):0;for(const u of e.nodes)s.has(u.id)||s.set(u.id,r+1);const i=new Map,a=e.nodes.map(u=>{const h=s.get(u.id)??0,c=i.get(h)??0;return i.set(h,c+1),{id:u.id,position:u.position??{x:h*ul,y:c*dl},data:{label:u.title||u.id,nodeType:u.type},type:"story"}}),d=[];for(const u of e.nodes)for(const h of u.choices)t.has(h.targetNodeId)&&d.push({id:`${u.id}->${h.id}`,source:u.id,target:h.targetNodeId,label:h.text});return{nodes:a,edges:d}}function hl(){return`node-${crypto.randomUUID().slice(0,8)}`}function gl(){return`choice-${crypto.randomUUID().slice(0,8)}`}function pl(e,t,n){return{delta:{nodes:{upsert:[{...e,position:{x:t,y:n}}]}}}}function ml(e){return{delta:{nodes:{upsert:[e]}}}}function yl(e,t){return{delta:{nodes:{upsert:[{...e,choices:[...e.choices,t]}]}}}}function xl(e,t){const n=new Set(t);return{delta:{nodes:{upsert:[{...e,choices:e.choices.filter(o=>!n.has(o.id))}]}}}}function wl(e){return{delta:{nodes:{remove:[e]}}}}const Gn={start:"bg-emerald-500/15 border-emerald-500/50",branch:"bg-amber-500/15 border-amber-500/50",ending:"bg-rose-500/15 border-rose-500/50",merge:"bg-sky-500/15 border-sky-500/50",explore:"bg-violet-500/15 border-violet-500/50",normal:"bg-muted border-border"},qn={start:"#10b981",branch:"#f59e0b",ending:"#f43f5e",merge:"#0ea5e9",explore:"#8b5cf6",normal:"#6b7280"};function bl({id:e,data:t}){const n=Gn[t.nodeType]??Gn.normal;return C.jsxs("div",{"data-testid":`flow-node-${e}`,className:`rounded border text-xs text-foreground ${n}`,style:{width:200,height:90,padding:"8px 12px",boxSizing:"border-box",overflow:"hidden"},children:[C.jsx(Be,{type:"target",position:W.Left}),C.jsx("div",{className:"font-medium line-clamp-2 leading-tight",style:{maxHeight:"2.6em"},children:t.label}),C.jsx("div",{className:"opacity-60 text-xs mt-1",children:t.nodeType}),C.jsx(Be,{type:"source",position:W.Right})]})}const vl={story:bl};function El(e,t){const n=new Set([e]),o=new Set,s=[e],r=new Set([e]),i=new Map(t.nodes.map(a=>[a.id,a]));for(;s.length>0;){const a=s.pop(),d=i.get(a);if(d)for(const u of d.choices)o.add(`${d.id}->${u.id}`),r.has(u.targetNodeId)||(r.add(u.targetNodeId),n.add(u.targetNodeId),s.push(u.targetNodeId))}return{nodeIds:n,edgeIds:o}}function Ml({projectId:e,nav:t,theme:n,t:o,embedded:s=!1}){const r=vr(),{data:i,loading:a,error:d,refetch:u}=br(`/projects/${e}/story-graph`),[h,c,l]=Tc([]),[m,p,b]=Dc([]),[y,g]=z.useState(!1),[v,f]=z.useState(null),[x,k]=z.useState(null);z.useEffect(()=>{if(!i)return;const E=fl(i);c(E.nodes),p(E.edges)},[i,c,p]);const S=z.useMemo(()=>!x||!i?null:El(x,i),[x,i]),_=z.useMemo(()=>i?new Set(i.nodes.filter(E=>E.type==="ending").map(E=>E.id)):new Set,[i]),A=z.useMemo(()=>h.map(E=>{if(!S)return{...E,style:{}};const P=S.nodeIds.has(E.id);return{...E,style:{opacity:P?1:.2,...P?{boxShadow:"0 0 0 2px #8b5cf6"}:{}}}}),[h,S]),T=z.useMemo(()=>m.map(E=>{const P=_.has(E.target),M=S?S.edgeIds.has(E.id):!1,L=S!==null&&!M,H=M?"#8b5cf6":P?"#f59e0b":"#9ca3af",O=typeof E.label=="string"?E.label:"",Y=O.length>14?O.slice(0,14)+"…":O;return{...E,label:Y,animated:M,style:{stroke:H,strokeWidth:M?2.5:1.5,opacity:L?.2:1},labelStyle:{fontSize:10,fill:"currentColor",opacity:L?.2:.7}}}),[m,_,S]),V=z.useMemo(()=>{if(!i)return null;const E=i.nodes.length,P=i.nodes.filter(j=>j.choices.length>1).length,M=i.nodes.filter(j=>j.type==="ending").length,L=i.nodes.filter(j=>j.type!=="ending"&&j.choices.length===0).length;return{total:E,branch:P,ending:M,deadEnd:L}},[i]),I=async E=>{f(null);try{await Er(`/projects/${e}/story-graph/delta`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)}),await u()}catch(P){f(P instanceof Error?P.message:String(P))}},D=async(E,P)=>{if(!i)return;const M=i.nodes.find(L=>L.id===P.id);M&&await I(pl(M,Math.round(P.position.x),Math.round(P.position.y)))},B=async E=>{if(!y||!i||!E.source||!E.target||E.source===E.target)return;const P=i.nodes.find(M=>M.id===E.source);P&&await I(yl(P,{id:gl(),text:"新选项",targetNodeId:E.target}))},w=async E=>{if(y)for(const P of E)await I(wl(P.id))},$=async E=>{if(!y||!i)return;const P=new Map;for(const M of E){const[L,j]=M.id.split("->");if(L&&j){const H=P.get(L)??[];H.push(j),P.set(L,H)}}for(const[M,L]of P){const j=i.nodes.find(H=>H.id===M);j&&await I(xl(j,L))}},N=async()=>{await I(ml({id:hl(),type:"normal",title:"新节点",choices:[],position:{x:80,y:80}}))};return a?C.jsx("div",{className:r.muted,children:o("common.loading")}):d?C.jsxs("div",{className:"text-destructive",children:[o("common.error"),": ",d]}):i?C.jsxs("div",{className:"flex flex-col h-full p-5 gap-3","data-testid":"flow-view",children:[C.jsxs("div",{className:"flex items-center gap-3 text-sm shrink-0",children:[!s&&C.jsxs("button",{onClick:()=>t.toFilm(e),className:r.link,"data-testid":"flow-back",children:["← ",o("bread.film")]}),C.jsx("span",{"data-testid":"flow-title",children:i.title||e}),C.jsx("button",{"data-testid":"flow-edit-toggle",onClick:()=>g(E=>!E),className:`ml-auto px-3 py-1 rounded text-xs ${r.btnSecondary}`,children:y?"完成编辑":"编辑"}),y&&C.jsx("button",{"data-testid":"flow-add-node",onClick:N,className:`px-3 py-1 rounded text-xs ${r.btnSecondary}`,children:"加节点"})]}),v&&C.jsx("div",{"data-testid":"flow-edit-error",className:"text-destructive text-xs",children:v}),V&&C.jsxs("div",{"data-testid":"flow-stats",className:"flex items-center gap-4 text-xs text-muted-foreground border border-border rounded px-3 py-1.5 bg-card shrink-0",children:[C.jsxs("span",{children:["总节点 ",V.total]}),C.jsxs("span",{children:["分支 ",V.branch]}),C.jsxs("span",{children:["结局 ",V.ending]}),C.jsxs("span",{children:["死路 ",V.deadEnd]}),C.jsxs("span",{className:"ml-auto flex items-center gap-3",children:[C.jsxs("span",{className:"flex items-center gap-1",children:[C.jsx("span",{style:{display:"inline-block",width:20,height:2,background:"#9ca3af",borderRadius:1}}),"默认"]}),C.jsxs("span",{className:"flex items-center gap-1",children:[C.jsx("span",{style:{display:"inline-block",width:20,height:2,background:"#f59e0b",borderRadius:1}}),"结局边"]}),C.jsxs("span",{className:"flex items-center gap-1",children:[C.jsx("span",{style:{display:"inline-block",width:20,height:2,background:"#8b5cf6",borderRadius:1}}),"悬停路径"]})]})]}),C.jsx("div",{className:"flex-1 min-h-0 border rounded",children:C.jsxs(zc,{nodes:A,edges:T,onNodesChange:l,onEdgesChange:b,nodeTypes:vl,fitView:!0,colorMode:n==="dark"?"dark":"light",nodesDraggable:!0,nodesConnectable:y,elementsSelectable:y,onNodeDragStop:D,onConnect:B,onNodesDelete:w,onEdgesDelete:$,onNodeMouseEnter:(E,P)=>k(P.id),onNodeMouseLeave:()=>k(null),deleteKeyCode:y?["Delete","Backspace"]:null,children:[C.jsx(Bc,{}),C.jsx(Gc,{}),C.jsx(il,{nodeColor:E=>qn[E.data.nodeType]??qn.normal,nodeBorderRadius:4})]})})]}):null}export{Ml as default};
@@ -1 +0,0 @@
1
- import{U as a,G as n}from"./index-MiIZL4f3.js";const t=(r,o)=>a.lang.round(n.parse(r)[o]);export{t as c};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-4TB4RGXK-D-Y1Qj_T.js";import{_ as i}from"./index-MiIZL4f3.js";import"./chunk-FMBD7UC4-BU7HNA1K.js";import"./chunk-YZCP3GAM-7Y8K_8MD.js";import"./chunk-55IACEB6-Bug_ufgD.js";import"./chunk-EDXVE4YY-C7tD8L3k.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
@@ -1 +0,0 @@
1
- import{s as a,c as s,a as e,C as t}from"./chunk-4TB4RGXK-D-Y1Qj_T.js";import{_ as i}from"./index-MiIZL4f3.js";import"./chunk-FMBD7UC4-BU7HNA1K.js";import"./chunk-YZCP3GAM-7Y8K_8MD.js";import"./chunk-55IACEB6-Bug_ufgD.js";import"./chunk-EDXVE4YY-C7tD8L3k.js";var u={parser:e,get db(){return new t},renderer:s,styles:a,init:i(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{u as diagram};
@@ -1 +0,0 @@
1
- import{b as r}from"./graph-BMumGBmN.js";var e=4;function a(o){return r(o,e)}export{a as c};