@grackle-ai/web 0.70.5 → 0.71.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.
- package/dist/assets/KnowledgePage-DMqJ4jlP.css +1 -0
- package/dist/assets/KnowledgePage-DWFdajx3.js +1 -0
- package/dist/assets/{dagview-EHk2VaeR.js → dagview-BA5TtMAQ.js} +1 -1
- package/dist/assets/index-Bxv7jTE6.css +1 -0
- package/dist/assets/index-Hh6iEU1L.js +112 -0
- package/dist/index.html +3 -3
- package/package.json +10 -2
- package/dist/assets/index-Be6lL6p0.js +0 -111
- package/dist/assets/index-BtTig1d5.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._graphContainer_zxmzw_1{flex:1;width:100%;height:100%;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(var(--accent-blue-rgb, 74, 158, 255),.03) 0%,transparent 70%)}._svg_zxmzw_10{display:block;cursor:grab}._svg_zxmzw_10:active{cursor:grabbing}._link_zxmzw_18{stroke:var(--text-disabled, rgba(255, 255, 255, .2));stroke-width:1.5;opacity:.7;transition:opacity .3s ease,stroke .3s ease}._link_zxmzw_18:hover{opacity:1;stroke:var(--text-secondary, rgba(255, 255, 255, .5));stroke-width:2}._node_zxmzw_30{cursor:pointer;transition:opacity .4s ease}._node_zxmzw_30:hover ._nodeCard_zxmzw_34{filter:url(#glow);stroke:var(--node-color, var(--accent-blue));stroke-width:1.5;fill-opacity:.95}._node_zxmzw_30:hover ._nodeLabel_zxmzw_40{fill-opacity:1}._selected_zxmzw_44 ._nodeCard_zxmzw_34{filter:url(#glow);stroke:var(--node-color, var(--accent-blue));stroke-width:2;fill-opacity:1}._dimmed_zxmzw_51{opacity:.15;pointer-events:none}._dimmedLink_zxmzw_56{opacity:.05}._nodeCard_zxmzw_34{fill:var(--bg-surface, rgba(30, 30, 50, .85));stroke:var(--border-default, rgba(255, 255, 255, .06));stroke-width:1;fill-opacity:.8;transition:fill-opacity .3s ease,stroke .3s ease,stroke-width .2s ease}._nodeIndicator_zxmzw_68{opacity:.9}._nodeLabel_zxmzw_40{fill:var(--text-primary, #e0e0e0);font-family:var(--font-sans, system-ui, -apple-system, sans-serif);font-size:12px;font-weight:500;fill-opacity:.9;pointer-events:none;-webkit-user-select:none;user-select:none}._nodeBadge_zxmzw_82{fill:var(--text-disabled, #666);font-family:var(--font-mono, monospace);font-size:9px;font-weight:400;text-transform:uppercase;letter-spacing:.5px;pointer-events:none;-webkit-user-select:none;user-select:none}._panel_1ml6r_1{position:absolute;top:0;right:0;bottom:0;width:350px;background:var(--bg-surface, #1a1a2e);border-left:1px solid var(--border-default, #333);display:flex;flex-direction:column;overflow-y:auto;z-index:10;animation:_slideIn_1ml6r_1 .2s ease-out}@keyframes _slideIn_1ml6r_1{0%{transform:translate(100%)}to{transform:translate(0)}}._header_1ml6r_24{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border-default, #333)}._title_1ml6r_32{margin:0;font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}._closeButton_1ml6r_42{background:none;border:none;color:var(--text-secondary, #999);font-size:24px;cursor:pointer;padding:0 4px;line-height:1}._closeButton_1ml6r_42:hover{color:var(--text-primary, #fff)}._body_1ml6r_55{padding:16px;flex:1;overflow-y:auto}._badge_1ml6r_61{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500;background:var(--bg-inset, #222);color:var(--text-secondary, #999);margin-bottom:12px}._section_1ml6r_72{margin-bottom:16px}._sectionLabel_1ml6r_76{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-disabled, #666);margin-bottom:6px}._content_1ml6r_84{font-size:14px;line-height:1.5;color:var(--text-primary, #eee);margin:0;white-space:pre-wrap}._tags_1ml6r_92{display:flex;flex-wrap:wrap;gap:4px}._tag_1ml6r_92{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;background:var(--bg-inset, #222);color:var(--text-secondary, #aaa)}._viewLink_1ml6r_107{background:none;border:1px solid var(--accent-blue, #4A9EFF);color:var(--accent-blue, #4A9EFF);padding:6px 12px;border-radius:6px;cursor:pointer;font-size:13px}._viewLink_1ml6r_107:hover{background:var(--accent-blue, #4A9EFF);color:#fff}._edgeList_1ml6r_121{list-style:none;padding:0;margin:0}._edgeItem_1ml6r_127{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--border-default, #2a2a2a);font-size:13px}._edgeType_1ml6r_136{font-family:monospace;font-size:11px;color:var(--text-disabled, #666)}._edgeNodeLink_1ml6r_142{background:none;border:none;color:var(--accent-blue, #4A9EFF);cursor:pointer;font-size:12px;font-family:monospace}._edgeNodeLink_1ml6r_142:hover{text-decoration:underline}._timestamps_1ml6r_154{margin-top:16px;font-size:12px;color:var(--text-disabled, #666)}._layout_n9vg6_1{display:flex;flex-direction:column;height:100%;overflow:hidden}._graphArea_n9vg6_8{flex:1;min-height:0;position:relative;overflow:hidden}._empty_n9vg6_15{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);text-align:center;padding:32px}._empty_n9vg6_15 p{margin:4px 0;font-size:14px}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as z,j as w}from"./markdown-gcy1Jmzi.js";import{u as Z,s as q,t as tt,a as et,B as nt,K as rt}from"./index-Hh6iEU1L.js";import{t as it,b as st,z as at,s as D,c as H}from"./dagview-BA5TtMAQ.js";function ot(t,e){var n,c=1;t==null&&(t=0),e==null&&(e=0);function r(){var a,u=n.length,f,_=0,o=0;for(a=0;a<u;++a)f=n[a],_+=f.x,o+=f.y;for(_=(_/u-t)*c,o=(o/u-e)*c,a=0;a<u;++a)f=n[a],f.x-=_,f.y-=o}return r.initialize=function(a){n=a},r.x=function(a){return arguments.length?(t=+a,r):t},r.y=function(a){return arguments.length?(e=+a,r):e},r.strength=function(a){return arguments.length?(c=+a,r):c},r}function ct(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return J(this.cover(e,n),e,n,t)}function J(t,e,n,c){if(isNaN(e)||isNaN(n))return t;var r,a=t._root,u={data:c},f=t._x0,_=t._y0,o=t._x1,g=t._y1,p,v,h,y,s,i,l,d;if(!a)return t._root=u,t;for(;a.length;)if((s=e>=(p=(f+o)/2))?f=p:o=p,(i=n>=(v=(_+g)/2))?_=v:g=v,r=a,!(a=a[l=i<<1|s]))return r[l]=u,t;if(h=+t._x.call(null,a.data),y=+t._y.call(null,a.data),e===h&&n===y)return u.next=a,r?r[l]=u:t._root=u,t;do r=r?r[l]=new Array(4):t._root=new Array(4),(s=e>=(p=(f+o)/2))?f=p:o=p,(i=n>=(v=(_+g)/2))?_=v:g=v;while((l=i<<1|s)===(d=(y>=v)<<1|h>=p));return r[d]=a,r[l]=u,t}function lt(t){var e,n,c=t.length,r,a,u=new Array(c),f=new Array(c),_=1/0,o=1/0,g=-1/0,p=-1/0;for(n=0;n<c;++n)isNaN(r=+this._x.call(null,e=t[n]))||isNaN(a=+this._y.call(null,e))||(u[n]=r,f[n]=a,r<_&&(_=r),r>g&&(g=r),a<o&&(o=a),a>p&&(p=a));if(_>g||o>p)return this;for(this.cover(_,o).cover(g,p),n=0;n<c;++n)J(this,u[n],f[n],t[n]);return this}function ut(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,c=this._y0,r=this._x1,a=this._y1;if(isNaN(n))r=(n=Math.floor(t))+1,a=(c=Math.floor(e))+1;else{for(var u=r-n||1,f=this._root,_,o;n>t||t>=r||c>e||e>=a;)switch(o=(e<c)<<1|t<n,_=new Array(4),_[o]=f,f=_,u*=2,o){case 0:r=n+u,a=c+u;break;case 1:n=r-u,a=c+u;break;case 2:r=n+u,c=a-u;break;case 3:n=r-u,c=a-u;break}this._root&&this._root.length&&(this._root=f)}return this._x0=n,this._y0=c,this._x1=r,this._y1=a,this}function ft(){var t=[];return this.visit(function(e){if(!e.length)do t.push(e.data);while(e=e.next)}),t}function ht(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function L(t,e,n,c,r){this.node=t,this.x0=e,this.y0=n,this.x1=c,this.y1=r}function dt(t,e,n){var c,r=this._x0,a=this._y0,u,f,_,o,g=this._x1,p=this._y1,v=[],h=this._root,y,s;for(h&&v.push(new L(h,r,a,g,p)),n==null?n=1/0:(r=t-n,a=e-n,g=t+n,p=e+n,n*=n);y=v.pop();)if(!(!(h=y.node)||(u=y.x0)>g||(f=y.y0)>p||(_=y.x1)<r||(o=y.y1)<a))if(h.length){var i=(u+_)/2,l=(f+o)/2;v.push(new L(h[3],i,l,_,o),new L(h[2],u,l,i,o),new L(h[1],i,f,_,l),new L(h[0],u,f,i,l)),(s=(e>=l)<<1|t>=i)&&(y=v[v.length-1],v[v.length-1]=v[v.length-1-s],v[v.length-1-s]=y)}else{var d=t-+this._x.call(null,h.data),N=e-+this._y.call(null,h.data),x=d*d+N*N;if(x<n){var b=Math.sqrt(n=x);r=t-b,a=e-b,g=t+b,p=e+b,c=h.data}}return c}function gt(t){if(isNaN(g=+this._x.call(null,t))||isNaN(p=+this._y.call(null,t)))return this;var e,n=this._root,c,r,a,u=this._x0,f=this._y0,_=this._x1,o=this._y1,g,p,v,h,y,s,i,l;if(!n)return this;if(n.length)for(;;){if((y=g>=(v=(u+_)/2))?u=v:_=v,(s=p>=(h=(f+o)/2))?f=h:o=h,e=n,!(n=n[i=s<<1|y]))return this;if(!n.length)break;(e[i+1&3]||e[i+2&3]||e[i+3&3])&&(c=e,l=i)}for(;n.data!==t;)if(r=n,!(n=n.next))return this;return(a=n.next)&&delete n.next,r?(a?r.next=a:delete r.next,this):e?(a?e[i]=a:delete e[i],(n=e[0]||e[1]||e[2]||e[3])&&n===(e[3]||e[2]||e[1]||e[0])&&!n.length&&(c?c[l]=n:this._root=n),this):(this._root=a,this)}function xt(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this}function _t(){return this._root}function mt(){var t=0;return this.visit(function(e){if(!e.length)do++t;while(e=e.next)}),t}function vt(t){var e=[],n,c=this._root,r,a,u,f,_;for(c&&e.push(new L(c,this._x0,this._y0,this._x1,this._y1));n=e.pop();)if(!t(c=n.node,a=n.x0,u=n.y0,f=n.x1,_=n.y1)&&c.length){var o=(a+f)/2,g=(u+_)/2;(r=c[3])&&e.push(new L(r,o,g,f,_)),(r=c[2])&&e.push(new L(r,a,g,o,_)),(r=c[1])&&e.push(new L(r,o,u,f,g)),(r=c[0])&&e.push(new L(r,a,u,o,g))}return this}function yt(t){var e=[],n=[],c;for(this._root&&e.push(new L(this._root,this._x0,this._y0,this._x1,this._y1));c=e.pop();){var r=c.node;if(r.length){var a,u=c.x0,f=c.y0,_=c.x1,o=c.y1,g=(u+_)/2,p=(f+o)/2;(a=r[0])&&e.push(new L(a,u,f,g,p)),(a=r[1])&&e.push(new L(a,g,f,_,p)),(a=r[2])&&e.push(new L(a,u,p,g,o)),(a=r[3])&&e.push(new L(a,g,p,_,o))}n.push(c)}for(;c=n.pop();)t(c.node,c.x0,c.y0,c.x1,c.y1);return this}function pt(t){return t[0]}function wt(t){return arguments.length?(this._x=t,this):this._x}function Nt(t){return t[1]}function bt(t){return arguments.length?(this._y=t,this):this._y}function U(t,e,n){var c=new P(e??pt,n??Nt,NaN,NaN,NaN,NaN);return t==null?c:c.addAll(t)}function P(t,e,n,c,r,a){this._x=t,this._y=e,this._x0=n,this._y0=c,this._x1=r,this._y1=a,this._root=void 0}function W(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}var M=U.prototype=P.prototype;M.copy=function(){var t=new P(this._x,this._y,this._x0,this._y0,this._x1,this._y1),e=this._root,n,c;if(!e)return t;if(!e.length)return t._root=W(e),t;for(n=[{source:e,target:t._root=new Array(4)}];e=n.pop();)for(var r=0;r<4;++r)(c=e.source[r])&&(c.length?n.push({source:c,target:e.target[r]=new Array(4)}):e.target[r]=W(c));return t};M.add=ct;M.addAll=lt;M.cover=ut;M.data=ft;M.extent=ht;M.find=dt;M.remove=gt;M.removeAll=xt;M.root=_t;M.size=mt;M.visit=vt;M.visitAfter=yt;M.x=wt;M.y=bt;function $(t){return function(){return t}}function S(t){return(t()-.5)*1e-6}function kt(t){return t.x+t.vx}function jt(t){return t.y+t.vy}function zt(t){var e,n,c,r=1,a=1;typeof t!="function"&&(t=$(t==null?1:+t));function u(){for(var o,g=e.length,p,v,h,y,s,i,l=0;l<a;++l)for(p=U(e,kt,jt).visitAfter(f),o=0;o<g;++o)v=e[o],s=n[v.index],i=s*s,h=v.x+v.vx,y=v.y+v.vy,p.visit(d);function d(N,x,b,C,m){var k=N.data,I=N.r,A=s+I;if(k){if(k.index>v.index){var B=h-k.x-k.vx,T=y-k.y-k.vy,R=B*B+T*T;R<A*A&&(B===0&&(B=S(c),R+=B*B),T===0&&(T=S(c),R+=T*T),R=(A-(R=Math.sqrt(R)))/R*r,v.vx+=(B*=R)*(A=(I*=I)/(i+I)),v.vy+=(T*=R)*A,k.vx-=B*(A=1-A),k.vy-=T*A)}return}return x>h+A||C<h-A||b>y+A||m<y-A}}function f(o){if(o.data)return o.r=n[o.data.index];for(var g=o.r=0;g<4;++g)o[g]&&o[g].r>o.r&&(o.r=o[g].r)}function _(){if(e){var o,g=e.length,p;for(n=new Array(g),o=0;o<g;++o)p=e[o],n[p.index]=+t(p,o,e)}}return u.initialize=function(o,g){e=o,c=g,_()},u.iterations=function(o){return arguments.length?(a=+o,u):a},u.strength=function(o){return arguments.length?(r=+o,u):r},u.radius=function(o){return arguments.length?(t=typeof o=="function"?o:$(+o),_(),u):t},u}function At(t){return t.index}function Q(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}function Ct(t){var e=At,n=p,c,r=$(30),a,u,f,_,o,g=1;t==null&&(t=[]);function p(i){return 1/Math.min(f[i.source.index],f[i.target.index])}function v(i){for(var l=0,d=t.length;l<g;++l)for(var N=0,x,b,C,m,k,I,A;N<d;++N)x=t[N],b=x.source,C=x.target,m=C.x+C.vx-b.x-b.vx||S(o),k=C.y+C.vy-b.y-b.vy||S(o),I=Math.sqrt(m*m+k*k),I=(I-a[N])/I*i*c[N],m*=I,k*=I,C.vx-=m*(A=_[N]),C.vy-=k*A,b.vx+=m*(A=1-A),b.vy+=k*A}function h(){if(u){var i,l=u.length,d=t.length,N=new Map(u.map((b,C)=>[e(b,C,u),b])),x;for(i=0,f=new Array(l);i<d;++i)x=t[i],x.index=i,typeof x.source!="object"&&(x.source=Q(N,x.source)),typeof x.target!="object"&&(x.target=Q(N,x.target)),f[x.source.index]=(f[x.source.index]||0)+1,f[x.target.index]=(f[x.target.index]||0)+1;for(i=0,_=new Array(d);i<d;++i)x=t[i],_[i]=f[x.source.index]/(f[x.source.index]+f[x.target.index]);c=new Array(d),y(),a=new Array(d),s()}}function y(){if(u)for(var i=0,l=t.length;i<l;++i)c[i]=+n(t[i],i,t)}function s(){if(u)for(var i=0,l=t.length;i<l;++i)a[i]=+r(t[i],i,t)}return v.initialize=function(i,l){u=i,o=l,h()},v.links=function(i){return arguments.length?(t=i,h(),v):t},v.id=function(i){return arguments.length?(e=i,v):e},v.iterations=function(i){return arguments.length?(g=+i,v):g},v.strength=function(i){return arguments.length?(n=typeof i=="function"?i:$(+i),y(),v):n},v.distance=function(i){return arguments.length?(r=typeof i=="function"?i:$(+i),s(),v):r},v}const Lt=1664525,Mt=1013904223,V=4294967296;function Et(){let t=1;return()=>(t=(Lt*t+Mt)%V)/V}function It(t){return t.x}function Rt(t){return t.y}var Dt=10,Bt=Math.PI*(3-Math.sqrt(5));function Tt(t){var e,n=1,c=.001,r=1-Math.pow(c,1/300),a=0,u=.6,f=new Map,_=it(p),o=st("tick","end"),g=Et();t==null&&(t=[]);function p(){v(),o.call("tick",e),n<c&&(_.stop(),o.call("end",e))}function v(s){var i,l=t.length,d;s===void 0&&(s=1);for(var N=0;N<s;++N)for(n+=(a-n)*r,f.forEach(function(x){x(n)}),i=0;i<l;++i)d=t[i],d.fx==null?d.x+=d.vx*=u:(d.x=d.fx,d.vx=0),d.fy==null?d.y+=d.vy*=u:(d.y=d.fy,d.vy=0);return e}function h(){for(var s=0,i=t.length,l;s<i;++s){if(l=t[s],l.index=s,l.fx!=null&&(l.x=l.fx),l.fy!=null&&(l.y=l.fy),isNaN(l.x)||isNaN(l.y)){var d=Dt*Math.sqrt(.5+s),N=s*Bt;l.x=d*Math.cos(N),l.y=d*Math.sin(N)}(isNaN(l.vx)||isNaN(l.vy))&&(l.vx=l.vy=0)}}function y(s){return s.initialize&&s.initialize(t,g),s}return h(),e={tick:v,restart:function(){return _.restart(p),e},stop:function(){return _.stop(),e},nodes:function(s){return arguments.length?(t=s,h(),f.forEach(y),e):t},alpha:function(s){return arguments.length?(n=+s,e):n},alphaMin:function(s){return arguments.length?(c=+s,e):c},alphaDecay:function(s){return arguments.length?(r=+s,e):+r},alphaTarget:function(s){return arguments.length?(a=+s,e):a},velocityDecay:function(s){return arguments.length?(u=1-s,e):1-u},randomSource:function(s){return arguments.length?(g=s,f.forEach(y),e):g},force:function(s,i){return arguments.length>1?(i==null?f.delete(s):f.set(s,y(i)),e):f.get(s)},find:function(s,i,l){var d=0,N=t.length,x,b,C,m,k;for(l==null?l=1/0:l*=l,d=0;d<N;++d)m=t[d],x=s-m.x,b=i-m.y,C=x*x+b*b,C<l&&(k=m,l=C);return k},on:function(s,i){return arguments.length>1?(o.on(s,i),e):o.on(s)}}}function St(){var t,e,n,c,r=$(-30),a,u=1,f=1/0,_=.81;function o(h){var y,s=t.length,i=U(t,It,Rt).visitAfter(p);for(c=h,y=0;y<s;++y)e=t[y],i.visit(v)}function g(){if(t){var h,y=t.length,s;for(a=new Array(y),h=0;h<y;++h)s=t[h],a[s.index]=+r(s,h,t)}}function p(h){var y=0,s,i,l=0,d,N,x;if(h.length){for(d=N=x=0;x<4;++x)(s=h[x])&&(i=Math.abs(s.value))&&(y+=s.value,l+=i,d+=i*s.x,N+=i*s.y);h.x=d/l,h.y=N/l}else{s=h,s.x=s.data.x,s.y=s.data.y;do y+=a[s.data.index];while(s=s.next)}h.value=y}function v(h,y,s,i){if(!h.value)return!0;var l=h.x-e.x,d=h.y-e.y,N=i-y,x=l*l+d*d;if(N*N/_<x)return x<f&&(l===0&&(l=S(n),x+=l*l),d===0&&(d=S(n),x+=d*d),x<u&&(x=Math.sqrt(u*x)),e.vx+=l*h.value*c/x,e.vy+=d*h.value*c/x),!0;if(h.length||x>=f)return;(h.data!==e||h.next)&&(l===0&&(l=S(n),x+=l*l),d===0&&(d=S(n),x+=d*d),x<u&&(x=Math.sqrt(u*x)));do h.data!==e&&(N=a[h.data.index]*c/x,e.vx+=l*N,e.vy+=d*N);while(h=h.next)}return o.initialize=function(h,y){t=h,n=y,g()},o.strength=function(h){return arguments.length?(r=typeof h=="function"?h:$(+h),g(),o):r},o.distanceMin=function(h){return arguments.length?(u=h*h,o):Math.sqrt(u)},o.distanceMax=function(h){return arguments.length?(f=h*h,o):Math.sqrt(f)},o.theta=function(h){return arguments.length?(_=h*h,o):Math.sqrt(_)},o}const $t="_graphContainer_zxmzw_1",Ot="_svg_zxmzw_10",Gt="_link_zxmzw_18",Ft="_node_zxmzw_30",Kt="_nodeCard_zxmzw_34",Ut="_nodeLabel_zxmzw_40",Pt="_selected_zxmzw_44",Ht="_dimmed_zxmzw_51",Wt="_dimmedLink_zxmzw_56",Qt="_nodeIndicator_zxmzw_68",Vt="_nodeBadge_zxmzw_82",E={graphContainer:$t,svg:Ot,link:Gt,node:Ft,nodeCard:Kt,nodeLabel:Ut,selected:Pt,dimmed:Ht,dimmedLink:Wt,nodeIndicator:Qt,nodeBadge:Vt},F={reference:"#4A9EFF",decision:"#22C55E",insight:"#EAB308",concept:"#A855F7",snippet:"#6B7280"};function X(t){return t.kind==="reference"?F.reference:F[t.category??"insight"]??F.insight}const O=200,G=52,Y=12;function Xt({graphData:t,selectedNodeId:e,onNodeClick:n,onNodeDoubleClick:c}){const r=z.useRef(null),a=z.useRef(null),u=z.useRef(void 0),f=z.useRef(void 0),_=z.useRef(void 0),o=z.useRef(void 0),[g,p]=z.useState({width:800,height:600});z.useEffect(()=>{var l;const s=((l=r.current)==null?void 0:l.parentElement)??null;if(!s)return;const i=new ResizeObserver(d=>{for(const N of d)p({width:N.contentRect.width,height:N.contentRect.height})});return i.observe(s),p({width:s.clientWidth,height:s.clientHeight}),()=>{i.disconnect()}},[]),z.useEffect(()=>{if(!r.current||!a.current)return;const s=r.current,i=a.current,l=at().scaleExtent([.1,4]).filter(d=>d.type!=="dblclick").on("zoom",d=>{D(i).attr("transform",String(d.transform))});return D(s).call(l),f.current=l,()=>{D(s).on(".zoom",null)}},[]);const v=z.useRef(n);v.current=n;const h=z.useRef(c);h.current=c,z.useEffect(()=>{if(!a.current)return;const s=a.current;if(u.current&&(u.current.stop(),u.current=void 0),t.nodes.length===0){D(s).selectAll("*").remove();return}const i=t.nodes.map(m=>({...m})),l=new Map(i.map(m=>[m.id,m])),d=t.links.filter(m=>l.has(m.source)&&l.has(m.target)).map(m=>({source:m.source,target:m.target,type:m.type}));D(s).selectAll("*").remove();const N=D(s).selectAll("line").data(d).enter().append("line").attr("class",E.link);N.append("title").text(m=>m.type),_.current=N;const x=D(s).selectAll("g.kg-node").data(i).enter().append("g").attr("class",`kg-node ${E.node}`).style("cursor","pointer").on("click",(m,k)=>{v.current(k.id)}).on("dblclick",(m,k)=>{h.current(k.id)});o.current=x,x.append("rect").attr("class",E.nodeCard).attr("width",O).attr("height",G).attr("rx",Y).attr("ry",Y).style("--node-color",m=>X(m)),x.append("rect").attr("class",E.nodeIndicator).attr("width",4).attr("height",G).attr("rx",2).attr("fill",m=>X(m)),x.append("text").attr("class",E.nodeLabel).attr("x",O/2).attr("y",G/2-4).attr("text-anchor","middle").attr("dominant-baseline","central").text(m=>m.label.length>26?m.label.substring(0,24)+"...":m.label),x.append("text").attr("class",E.nodeBadge).attr("x",O/2).attr("y",G-8).attr("text-anchor","middle").text(m=>(m.kind==="reference"?m.sourceType??"ref":m.category??"").toUpperCase());const b=Tt(i).force("link",Ct(d).id(m=>m.id).distance(140)).force("charge",St().strength(-400)).force("center",ot(g.width/2,g.height/2)).force("collide",zt(O/2+16)).on("tick",()=>{N.attr("x1",m=>m.source.x??0).attr("y1",m=>m.source.y??0).attr("x2",m=>m.target.x??0).attr("y2",m=>m.target.y??0),x.attr("transform",m=>`translate(${(m.x??0)-O/2},${(m.y??0)-G/2})`)});u.current=b;const C=setTimeout(()=>{if(r.current&&f.current){const m=f.current,k=H.translate(g.width/2,g.height/2).scale(.8).translate(-g.width/2,-g.height/2);D(r.current).transition().duration(500).call(m.transform,k)}},1200);return()=>{clearTimeout(C),b.stop()}},[t,g]),z.useEffect(()=>{if(!a.current||!o.current||!_.current)return;if(!e){o.current.classed(E.dimmed,!1).classed(E.selected,!1),_.current.classed(E.dimmedLink,!1);return}const s=new Set([e]);_.current.each(i=>{const l=i.source.id,d=i.target.id;(l===e||d===e)&&(s.add(l),s.add(d))}),o.current.classed(E.selected,i=>i.id===e).classed(E.dimmed,i=>!s.has(i.id)),_.current.classed(E.dimmedLink,i=>{const l=i.source.id,d=i.target.id;return!s.has(l)||!s.has(d)})},[e,t]);const y=z.useCallback(()=>{if(!e||!u.current||!r.current||!f.current)return;const s=u.current.nodes().find(i=>i.id===e);if(s&&Number.isFinite(s.x)&&Number.isFinite(s.y)){const i=f.current,l=H.translate(g.width/2,g.height/2).scale(1.2).translate(-(s.x??0),-(s.y??0));D(r.current).transition().duration(500).call(i.transform,l)}},[e,g]);return z.useEffect(()=>{y()},[y]),w.jsx("div",{className:E.graphContainer,"data-testid":"knowledge-graph",children:w.jsxs("svg",{ref:r,width:g.width,height:g.height,className:E.svg,children:[w.jsx("defs",{children:w.jsxs("filter",{id:"glow",children:[w.jsx("feGaussianBlur",{stdDeviation:"3",result:"coloredBlur"}),w.jsxs("feMerge",{children:[w.jsx("feMergeNode",{in:"coloredBlur"}),w.jsx("feMergeNode",{in:"SourceGraphic"})]})]})}),w.jsx("g",{ref:a})]})})}const Yt="_panel_1ml6r_1",Jt="_header_1ml6r_24",Zt="_title_1ml6r_32",qt="_closeButton_1ml6r_42",te="_body_1ml6r_55",ee="_badge_1ml6r_61",ne="_section_1ml6r_72",re="_sectionLabel_1ml6r_76",ie="_content_1ml6r_84",se="_tags_1ml6r_92",ae="_tag_1ml6r_92",oe="_viewLink_1ml6r_107",ce="_edgeList_1ml6r_121",le="_edgeItem_1ml6r_127",ue="_edgeType_1ml6r_136",fe="_edgeNodeLink_1ml6r_142",he="_timestamps_1ml6r_154",j={panel:Yt,header:Jt,title:Zt,closeButton:qt,body:te,badge:ee,section:ne,sectionLabel:re,content:ie,tags:se,tag:ae,viewLink:oe,edgeList:ce,edgeItem:le,edgeType:ue,edgeNodeLink:fe,timestamps:he};function de({detail:t,onClose:e,onSelectNode:n}){const c=Z(),{node:r,edges:a}=t;function u(){if(!(r.kind!=="reference"||!r.sourceId))switch(r.sourceType){case"task":c(tt(r.sourceId));break;case"session":c(q(r.sourceId));break}}return w.jsxs("div",{className:j.panel,"data-testid":"knowledge-detail-panel",children:[w.jsxs("div",{className:j.header,children:[w.jsx("h3",{className:j.title,children:r.label}),w.jsx("button",{className:j.closeButton,onClick:e,"aria-label":"Close",children:"×"})]}),w.jsxs("div",{className:j.body,children:[w.jsx("div",{className:j.badge,children:r.kind==="reference"?`Reference (${r.sourceType})`:r.category}),r.content&&w.jsxs("div",{className:j.section,children:[w.jsx("div",{className:j.sectionLabel,children:"Content"}),w.jsx("p",{className:j.content,children:r.content})]}),r.tags&&r.tags.length>0&&w.jsxs("div",{className:j.section,children:[w.jsx("div",{className:j.sectionLabel,children:"Tags"}),w.jsx("div",{className:j.tags,children:r.tags.map(f=>w.jsx("span",{className:j.tag,children:f},f))})]}),r.kind==="reference"&&r.sourceId&&w.jsx("div",{className:j.section,children:w.jsx("button",{className:j.viewLink,onClick:u,children:"View in Grackle →"})}),a.length>0&&w.jsxs("div",{className:j.section,children:[w.jsxs("div",{className:j.sectionLabel,children:["Edges (",a.length,")"]}),w.jsx("ul",{className:j.edgeList,children:a.map(f=>{const _=f.fromId===r.id?f.toId:f.fromId,o=`${f.fromId}:${f.toId}:${f.type}`;return w.jsxs("li",{className:j.edgeItem,children:[w.jsx("span",{className:j.edgeType,children:f.type}),w.jsxs("button",{className:j.edgeNodeLink,onClick:()=>{n(_)},children:[_.substring(0,8),"..."]})]},o)})})]}),w.jsxs("div",{className:j.timestamps,children:[r.createdAt&&w.jsxs("div",{children:["Created: ",new Date(r.createdAt).toLocaleDateString()]}),r.updatedAt&&w.jsxs("div",{children:["Updated: ",new Date(r.updatedAt).toLocaleDateString()]})]})]})]})}const ge="_layout_n9vg6_1",xe="_graphArea_n9vg6_8",_e="_empty_n9vg6_15",K={layout:ge,graphArea:xe,empty:_e};function pe(){const{knowledge:t}=et(),e=z.useCallback(()=>{t.loadRecent()},[t.loadRecent]);z.useEffect(()=>{e()},[e]);const n=z.useCallback(u=>{t.selectNode(u)},[t]),c=z.useCallback(u=>{t.expandNode(u)},[t]),r=z.useCallback(()=>{t.clearSelection()},[t]),a=[{label:"Knowledge",url:rt}];return w.jsxs("div",{className:K.layout,"data-testid":"knowledge-page",children:[w.jsx(nt,{segments:a}),w.jsxs("div",{className:K.graphArea,children:[t.graphData.nodes.length===0&&!t.loading?w.jsxs("div",{className:K.empty,children:[w.jsx("p",{children:"No knowledge nodes found."}),w.jsx("p",{children:"Create knowledge via MCP tools or let agents discover it during tasks."})]}):w.jsx(Xt,{graphData:t.graphData,selectedNodeId:t.selectedId,onNodeClick:n,onNodeDoubleClick:c}),t.selectedNode&&t.selectedId&&w.jsx(de,{detail:t.selectedNode,onClose:r,onSelectNode:n})]})]})}export{pe as KnowledgePage};
|
|
@@ -28,4 +28,4 @@ import{r as Xn,g as pa,R as ma,a as G,j as W}from"./markdown-gcy1Jmzi.js";var yn
|
|
|
28
28
|
`,`
|
|
29
29
|
+`).split(`
|
|
30
30
|
`)),d=u.reduce((l,f)=>l.concat(...f),[]);return[u,d]}return[[],[]]},[e]);return G.useEffect(()=>{const a=(t==null?void 0:t.target)??co,u=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const d=h=>{var b,w;if(o.current=h.ctrlKey||h.metaKey||h.shiftKey||h.altKey,(!o.current||o.current&&!u)&&pi(h))return!1;const x=lo(h.code,c);if(i.current.add(h[x]),uo(s,i.current,!1)){const v=((w=(b=h.composedPath)==null?void 0:b.call(h))==null?void 0:w[0])||h.target,p=(v==null?void 0:v.nodeName)==="BUTTON"||(v==null?void 0:v.nodeName)==="A";t.preventDefault!==!1&&(o.current||!p)&&h.preventDefault(),r(!0)}},l=h=>{const g=lo(h.code,c);uo(s,i.current,!0)?(r(!1),i.current.clear()):i.current.delete(h[g]),h.key==="Meta"&&i.current.clear(),o.current=!1},f=()=>{i.current.clear(),r(!1)};return a==null||a.addEventListener("keydown",d),a==null||a.addEventListener("keyup",l),window.addEventListener("blur",f),window.addEventListener("contextmenu",f),()=>{a==null||a.removeEventListener("keydown",d),a==null||a.removeEventListener("keyup",l),window.removeEventListener("blur",f),window.removeEventListener("contextmenu",f)}}},[e,r]),n}function uo(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(o=>t.has(o)))}function lo(e,t){return t.includes(e)?"code":"key"}const Mf=()=>{const e=ie();return G.useMemo(()=>({zoomIn:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,{duration:t==null?void 0:t.duration}):Promise.resolve(!1)},zoomOut:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,{duration:t==null?void 0:t.duration}):Promise.resolve(!1)},zoomTo:(t,n)=>{const{panZoom:r}=e.getState();return r?r.scaleTo(t,{duration:n==null?void 0:n.duration}):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[r,o,i],panZoom:s}=e.getState();return s?(await s.setViewport({x:t.x??r,y:t.y??o,zoom:t.zoom??i},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{const{width:r,height:o,minZoom:i,maxZoom:s,panZoom:c}=e.getState(),a=tr(t,r,o,i,s,(n==null?void 0:n.padding)??.1);return c?(await c.setViewport(a,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={})=>{const{transform:r,snapGrid:o,snapToGrid:i,domNode:s}=e.getState();if(!s)return t;const{x:c,y:a}=s.getBoundingClientRect(),u={x:t.x-c,y:t.y-a},d=n.snapGrid??o,l=n.snapToGrid??i;return St(u,r,l,d)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:o,y:i}=r.getBoundingClientRect(),s=Zt(t,n);return{x:s.x+o,y:s.y+i}}}),[])};function Di(e,t){const n=[],r=new Map,o=[];for(const i of e)if(i.type==="add"){o.push(i);continue}else if(i.type==="remove"||i.type==="replace")r.set(i.id,[i]);else{const s=r.get(i.id);s?s.push(i):r.set(i.id,[i])}for(const i of t){const s=r.get(i.id);if(!s){n.push(i);continue}if(s[0].type==="remove")continue;if(s[0].type==="replace"){n.push({...s[0].item});continue}const c={...i};for(const a of s)If(a,c);n.push(c)}return o.length&&o.forEach(i=>{i.index!==void 0?n.splice(i.index,0,{...i.item}):n.push({...i.item})}),n}function If(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 Af(e,t){return Di(e,t)}function Tf(e,t){return Di(e,t)}function $e(e,t){return{id:e,type:"select",selected:t}}function Xe(e,t=new Set,n=!1){const r=[];for(const[o,i]of e){const s=t.has(o);!(i.selected===void 0&&!s)&&i.selected!==s&&(n&&(i.selected=s),r.push($e(i.id,s)))}return r}function fo({items:e=[],lookup:t}){var o;const n=[],r=new Map(e.map(i=>[i.id,i]));for(const[i,s]of e.entries()){const c=t.get(s.id),a=((o=c==null?void 0:c.internals)==null?void 0:o.userNode)??c;a!==void 0&&a!==s&&n.push({id:s.id,item:s,type:"replace"}),a===void 0&&n.push({item:s,type:"add",index:i})}for(const[i]of t)r.get(i)===void 0&&n.push({id:i,type:"remove"});return n}function ho(e){return{id:e.id,type:"remove"}}const go=e=>Ql(e),Of=e=>ai(e);function zi(e){return G.forwardRef(e)}const Pf=typeof window<"u"?G.useLayoutEffect:G.useEffect;function po(e){const[t,n]=G.useState(BigInt(0)),[r]=G.useState(()=>$f(()=>n(o=>o+BigInt(1))));return Pf(()=>{const o=r.get();o.length&&(e(o),r.reset())},[t]),r}function $f(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const ji=G.createContext(null);function Lf({children:e}){const t=ie(),n=G.useCallback(c=>{const{nodes:a=[],setNodes:u,hasDefaultNodes:d,onNodesChange:l,nodeLookup:f,fitViewQueued:h,onNodesChangeMiddlewareMap:g}=t.getState();let x=a;for(const w of c)x=typeof w=="function"?w(x):w;let b=fo({items:x,lookup:f});for(const w of g.values())b=w(b);d&&u(x),b.length>0?l==null||l(b):h&&window.requestAnimationFrame(()=>{const{fitViewQueued:w,nodes:v,setNodes:p}=t.getState();w&&p(v)})},[]),r=po(n),o=G.useCallback(c=>{const{edges:a=[],setEdges:u,hasDefaultEdges:d,onEdgesChange:l,edgeLookup:f}=t.getState();let h=a;for(const g of c)h=typeof g=="function"?g(h):g;d?u(h):l&&l(fo({items:h,lookup:f}))},[]),i=po(o),s=G.useMemo(()=>({nodeQueue:r,edgeQueue:i}),[]);return W.jsx(ji.Provider,{value:s,children:e})}function Rf(){const e=G.useContext(ji);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const Df=e=>!!e.panZoom;function cr(){const e=Mf(),t=ie(),n=Rf(),r=ne(Df),o=G.useMemo(()=>{const i=l=>t.getState().nodeLookup.get(l),s=l=>{n.nodeQueue.push(l)},c=l=>{n.edgeQueue.push(l)},a=l=>{var w,v;const{nodeLookup:f,nodeOrigin:h}=t.getState(),g=go(l)?l:f.get(l.id),x=g.parentId?hi(g.position,g.measured,g.parentId,f,h):g.position,b={...g,position:x,width:((w=g.measured)==null?void 0:w.width)??g.width,height:((v=g.measured)==null?void 0:v.height)??g.height};return Qe(b)},u=(l,f,h={replace:!1})=>{s(g=>g.map(x=>{if(x.id===l){const b=typeof f=="function"?f(x):f;return h.replace&&go(b)?b:{...x,...b}}return x}))},d=(l,f,h={replace:!1})=>{c(g=>g.map(x=>{if(x.id===l){const b=typeof f=="function"?f(x):f;return h.replace&&Of(b)?b:{...x,...b}}return x}))};return{getNodes:()=>t.getState().nodes.map(l=>({...l})),getNode:l=>{var f;return(f=i(l))==null?void 0:f.internals.userNode},getInternalNode:i,getEdges:()=>{const{edges:l=[]}=t.getState();return l.map(f=>({...f}))},getEdge:l=>t.getState().edgeLookup.get(l),setNodes:s,setEdges:c,addNodes:l=>{const f=Array.isArray(l)?l:[l];n.nodeQueue.push(h=>[...h,...f])},addEdges:l=>{const f=Array.isArray(l)?l:[l];n.edgeQueue.push(h=>[...h,...f])},toObject:()=>{const{nodes:l=[],edges:f=[],transform:h}=t.getState(),[g,x,b]=h;return{nodes:l.map(w=>({...w})),edges:f.map(w=>({...w})),viewport:{x:g,y:x,zoom:b}}},deleteElements:async({nodes:l=[],edges:f=[]})=>{const{nodes:h,edges:g,onNodesDelete:x,onEdgesDelete:b,triggerNodeChanges:w,triggerEdgeChanges:v,onDelete:p,onBeforeDelete:m}=t.getState(),{nodes:k,edges:S}=await rd({nodesToRemove:l,edgesToRemove:f,nodes:h,edges:g,onBeforeDelete:m}),O=S.length>0,D=k.length>0;if(O){const F=S.map(ho);b==null||b(S),v(F)}if(D){const F=k.map(ho);x==null||x(k),w(F)}return(D||O)&&(p==null||p({nodes:k,edges:S})),{deletedNodes:k,deletedEdges:S}},getIntersectingNodes:(l,f=!0,h)=>{const g=jr(l),x=g?l:a(l),b=h!==void 0;return x?(h||t.getState().nodes).filter(w=>{const v=t.getState().nodeLookup.get(w.id);if(v&&!g&&(w.id===l.id||!v.internals.positionAbsolute))return!1;const p=Qe(b?w:v),m=yt(p,x);return f&&m>0||m>=p.width*p.height||m>=x.width*x.height}):[]},isNodeIntersecting:(l,f,h=!0)=>{const x=jr(l)?l:a(l);if(!x)return!1;const b=yt(x,f);return h&&b>0||b>=f.width*f.height||b>=x.width*x.height},updateNode:u,updateNodeData:(l,f,h={replace:!1})=>{u(l,g=>{const x=typeof f=="function"?f(g):f;return h.replace?{...g,data:x}:{...g,data:{...g.data,...x}}},h)},updateEdge:d,updateEdgeData:(l,f,h={replace:!1})=>{d(l,g=>{const x=typeof f=="function"?f(g):f;return h.replace?{...g,data:x}:{...g,data:{...g.data,...x}}},h)},getNodesBounds:l=>{const{nodeLookup:f,nodeOrigin:h}=t.getState();return Jl(l,{nodeLookup:f,nodeOrigin:h})},getHandleConnections:({type:l,id:f,nodeId:h})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${h}-${l}${f?`-${f}`:""}`))==null?void 0:g.values())??[])},getNodeConnections:({type:l,handleId:f,nodeId:h})=>{var g;return Array.from(((g=t.getState().connectionLookup.get(`${h}${l?f?`-${l}-${f}`:`-${l}`:""}`))==null?void 0:g.values())??[])},fitView:async l=>{const f=t.getState().fitViewResolver??ad();return t.setState({fitViewQueued:!0,fitViewOptions:l,fitViewResolver:f}),n.nodeQueue.push(h=>[...h]),f.promise}}},[]);return G.useMemo(()=>({...o,...e,viewportInitialized:r}),[r])}const mo=e=>e.selected,zf=typeof window<"u"?window:void 0;function jf({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=ie(),{deleteElements:r}=cr(),o=wt(e,{actInsideInputWithModifier:!1}),i=wt(t,{target:zf});G.useEffect(()=>{if(o){const{edges:s,nodes:c}=n.getState();r({nodes:c.filter(mo),edges:s.filter(mo)}),n.setState({nodesSelectionActive:!1})}},[o]),G.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])}function Hf(e){const t=ie();G.useEffect(()=>{const n=()=>{var o,i,s,c;if(!e.current||!(((i=(o=e.current).checkVisibility)==null?void 0:i.call(o))??!0))return!1;const r=nr(e.current);(r.height===0||r.width===0)&&((c=(s=t.getState()).onError)==null||c.call(s,"004",_e.error004())),t.setState({width:r.width||500,height:r.height||500})};if(e.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(e.current),()=>{window.removeEventListener("resize",n),r&&e.current&&r.unobserve(e.current)}}},[])}const fn={position:"absolute",width:"100%",height:"100%",top:0,left:0},Vf=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function Ff({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:o=.5,panOnScrollMode:i=De.Free,zoomOnDoubleClick:s=!0,panOnDrag:c=!0,defaultViewport:a,translateExtent:u,minZoom:d,maxZoom:l,zoomActivationKeyCode:f,preventScrolling:h=!0,children:g,noWheelClassName:x,noPanClassName:b,onViewportChange:w,isControlledViewport:v,paneClickDistance:p,selectionOnDrag:m}){const k=ie(),S=G.useRef(null),{userSelectionActive:O,lib:D,connectionInProgress:F}=ne(Vf,oe),L=wt(f),N=G.useRef();Hf(S);const T=G.useCallback($=>{w==null||w({x:$[0],y:$[1],zoom:$[2]}),v||k.setState({transform:$})},[w,v]);return G.useEffect(()=>{if(S.current){N.current=Yd({domNode:S.current,minZoom:d,maxZoom:l,translateExtent:u,viewport:a,onDraggingChange:E=>k.setState(I=>I.paneDragging===E?I:{paneDragging:E}),onPanZoomStart:(E,I)=>{const{onViewportChangeStart:C,onMoveStart:M}=k.getState();M==null||M(E,I),C==null||C(I)},onPanZoom:(E,I)=>{const{onViewportChange:C,onMove:M}=k.getState();M==null||M(E,I),C==null||C(I)},onPanZoomEnd:(E,I)=>{const{onViewportChangeEnd:C,onMoveEnd:M}=k.getState();M==null||M(E,I),C==null||C(I)}});const{x:$,y,zoom:P}=N.current.getViewport();return k.setState({panZoom:N.current,transform:[$,y,P],domNode:S.current.closest(".react-flow")}),()=>{var E;(E=N.current)==null||E.destroy()}}},[]),G.useEffect(()=>{var $;($=N.current)==null||$.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:o,panOnScrollMode:i,zoomOnDoubleClick:s,panOnDrag:c,zoomActivationKeyPressed:L,preventScrolling:h,noPanClassName:b,userSelectionActive:O,noWheelClassName:x,lib:D,onTransformChange:T,connectionInProgress:F,selectionOnDrag:m,paneClickDistance:p})},[e,t,n,r,o,i,s,c,L,h,b,O,x,D,T,F,m,p]),W.jsx("div",{className:"react-flow__renderer",ref:S,style:fn,children:g})}const Bf=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function Yf(){const{userSelectionActive:e,userSelectionRect:t}=ne(Bf,oe);return e&&t?W.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 In=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},Xf=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function Wf({isSelecting:e,selectionKeyPressed:t,selectionMode:n=mt.Full,panOnDrag:r,paneClickDistance:o,selectionOnDrag:i,onSelectionStart:s,onSelectionEnd:c,onPaneClick:a,onPaneContextMenu:u,onPaneScroll:d,onPaneMouseEnter:l,onPaneMouseMove:f,onPaneMouseLeave:h,children:g}){const x=ie(),{userSelectionActive:b,elementsSelectable:w,dragging:v,connectionInProgress:p}=ne(Xf,oe),m=w&&(e||b),k=G.useRef(null),S=G.useRef(),O=G.useRef(new Set),D=G.useRef(new Set),F=G.useRef(!1),L=C=>{if(F.current||p){F.current=!1;return}a==null||a(C),x.getState().resetSelectedElements(),x.setState({nodesSelectionActive:!1})},N=C=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){C.preventDefault();return}u==null||u(C)},T=d?C=>d(C):void 0,$=C=>{F.current&&(C.stopPropagation(),F.current=!1)},y=C=>{var _,R;const{domNode:M}=x.getState();if(S.current=M==null?void 0:M.getBoundingClientRect(),!S.current)return;const z=C.target===k.current;if(!z&&!!C.target.closest(".nokey")||!e||!(i&&z||t)||C.button!==0||!C.isPrimary)return;(R=(_=C.target)==null?void 0:_.setPointerCapture)==null||R.call(_,C.pointerId),F.current=!1;const{x:X,y:A}=ye(C.nativeEvent,S.current);x.setState({userSelectionRect:{width:0,height:0,startX:X,startY:A,x:X,y:A}}),z||(C.stopPropagation(),C.preventDefault())},P=C=>{const{userSelectionRect:M,transform:z,nodeLookup:V,edgeLookup:B,connectionLookup:X,triggerNodeChanges:A,triggerEdgeChanges:_,defaultEdgeOptions:R,resetSelectedElements:H}=x.getState();if(!S.current||!M)return;const{x:j,y:Y}=ye(C.nativeEvent,S.current),{startX:q,startY:U}=M;if(!F.current){const te=t?0:o;if(Math.hypot(j-q,Y-U)<=te)return;H(),s==null||s(C)}F.current=!0;const K={startX:q,startY:U,x:j<q?j:q,y:Y<U?Y:U,width:Math.abs(j-q),height:Math.abs(Y-U)},Z=O.current,J=D.current;O.current=new Set(er(V,K,z,n===mt.Partial,!0).map(te=>te.id)),D.current=new Set;const ee=(R==null?void 0:R.selectable)??!0;for(const te of O.current){const ce=X.get(te);if(ce)for(const{edgeId:he}of ce.values()){const Ne=B.get(he);Ne&&(Ne.selectable??ee)&&D.current.add(he)}}if(!Hr(Z,O.current)){const te=Xe(V,O.current,!0);A(te)}if(!Hr(J,D.current)){const te=Xe(B,D.current);_(te)}x.setState({userSelectionRect:K,userSelectionActive:!0,nodesSelectionActive:!1})},E=C=>{var M,z;C.button===0&&((z=(M=C.target)==null?void 0:M.releasePointerCapture)==null||z.call(M,C.pointerId),!b&&C.target===k.current&&x.getState().userSelectionRect&&(L==null||L(C)),x.setState({userSelectionActive:!1,userSelectionRect:null}),F.current&&(c==null||c(C),x.setState({nodesSelectionActive:O.current.size>0})))},I=r===!0||Array.isArray(r)&&r.includes(0);return W.jsxs("div",{className:ae(["react-flow__pane",{draggable:I,dragging:v,selection:e}]),onClick:m?void 0:In(L,k),onContextMenu:In(N,k),onWheel:In(T,k),onPointerEnter:m?void 0:l,onPointerMove:m?P:f,onPointerUp:m?E:void 0,onPointerDownCapture:m?y:void 0,onClickCapture:m?$:void 0,onPointerLeave:h,ref:k,style:fn,children:[g,W.jsx(Yf,{})]})}function Yn({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:o,unselectNodesAndEdges:i,multiSelectionActive:s,nodeLookup:c,onError:a}=t.getState(),u=c.get(e);if(!u){a==null||a("012",_e.error012(e));return}t.setState({nodesSelectionActive:!1}),u.selected?(n||u.selected&&s)&&(i({nodes:[u],edges:[]}),requestAnimationFrame(()=>{var d;return(d=r==null?void 0:r.current)==null?void 0:d.blur()})):o([e])}function Hi({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:o,isSelectable:i,nodeClickDistance:s}){const c=ie(),[a,u]=G.useState(!1),d=G.useRef();return G.useEffect(()=>{d.current=Ad({getStoreItems:()=>c.getState(),onNodeMouseDown:l=>{Yn({id:l,store:c,nodeRef:e})},onDragStart:()=>{u(!0)},onDragStop:()=>{u(!1)}})},[]),G.useEffect(()=>{if(!(t||!e.current||!d.current))return d.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:i,nodeId:o,nodeClickDistance:s}),()=>{var l;(l=d.current)==null||l.destroy()}},[n,r,t,i,e,o,s]),a}const Gf=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function Vi(){const e=ie();return G.useCallback(n=>{const{nodeExtent:r,snapToGrid:o,snapGrid:i,nodesDraggable:s,onError:c,updateNodePositions:a,nodeLookup:u,nodeOrigin:d}=e.getState(),l=new Map,f=Gf(s),h=o?i[0]:5,g=o?i[1]:5,x=n.direction.x*h*n.factor,b=n.direction.y*g*n.factor;for(const[,w]of u){if(!f(w))continue;let v={x:w.internals.positionAbsolute.x+x,y:w.internals.positionAbsolute.y+b};o&&(v=Nt(v,i));const{position:p,positionAbsolute:m}=ci({nodeId:w.id,nextPosition:v,nodeLookup:u,nodeExtent:r,nodeOrigin:d,onError:c});w.position=p,w.internals.positionAbsolute=m,l.set(w.id,w)}a(l)},[])}const ur=G.createContext(null),qf=ur.Provider;ur.Consumer;const Fi=()=>G.useContext(ur),Uf=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),Kf=(e,t,n)=>r=>{const{connectionClickStartHandle:o,connectionMode:i,connection:s}=r,{fromHandle:c,toHandle:a,isValid:u}=s,d=(a==null?void 0:a.nodeId)===e&&(a==null?void 0:a.id)===t&&(a==null?void 0:a.type)===n;return{connectingFrom:(c==null?void 0:c.nodeId)===e&&(c==null?void 0:c.id)===t&&(c==null?void 0:c.type)===n,connectingTo:d,clickConnecting:(o==null?void 0:o.nodeId)===e&&(o==null?void 0:o.id)===t&&(o==null?void 0:o.type)===n,isPossibleEndHandle:i===Ke.Strict?(c==null?void 0:c.type)!==n:e!==(c==null?void 0:c.nodeId)||t!==(c==null?void 0:c.id),connectionInProcess:!!c,clickConnectionInProcess:!!o,valid:d&&u}};function Zf({type:e="source",position:t=Q.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:o=!0,isConnectableEnd:i=!0,id:s,onConnect:c,children:a,className:u,onMouseDown:d,onTouchStart:l,...f},h){var P,E;const g=s||null,x=e==="target",b=ie(),w=Fi(),{connectOnClick:v,noPanClassName:p,rfId:m}=ne(Uf,oe),{connectingFrom:k,connectingTo:S,clickConnecting:O,isPossibleEndHandle:D,connectionInProcess:F,clickConnectionInProcess:L,valid:N}=ne(Kf(w,g,e),oe);w||(E=(P=b.getState()).onError)==null||E.call(P,"010",_e.error010());const T=I=>{const{defaultEdgeOptions:C,onConnect:M,hasDefaultEdges:z}=b.getState(),V={...C,...I};if(z){const{edges:B,setEdges:X}=b.getState();X(gd(V,B))}M==null||M(V),c==null||c(V)},$=I=>{if(!w)return;const C=mi(I.nativeEvent);if(o&&(C&&I.button===0||!C)){const M=b.getState();Bn.onPointerDown(I.nativeEvent,{handleDomNode:I.currentTarget,autoPanOnConnect:M.autoPanOnConnect,connectionMode:M.connectionMode,connectionRadius:M.connectionRadius,domNode:M.domNode,nodeLookup:M.nodeLookup,lib:M.lib,isTarget:x,handleId:g,nodeId:w,flowId:M.rfId,panBy:M.panBy,cancelConnection:M.cancelConnection,onConnectStart:M.onConnectStart,onConnectEnd:(...z)=>{var V,B;return(B=(V=b.getState()).onConnectEnd)==null?void 0:B.call(V,...z)},updateConnection:M.updateConnection,onConnect:T,isValidConnection:n||((...z)=>{var V,B;return((B=(V=b.getState()).isValidConnection)==null?void 0:B.call(V,...z))??!0}),getTransform:()=>b.getState().transform,getFromHandle:()=>b.getState().connection.fromHandle,autoPanSpeed:M.autoPanSpeed,dragThreshold:M.connectionDragThreshold})}C?d==null||d(I):l==null||l(I)},y=I=>{const{onClickConnectStart:C,onClickConnectEnd:M,connectionClickStartHandle:z,connectionMode:V,isValidConnection:B,lib:X,rfId:A,nodeLookup:_,connection:R}=b.getState();if(!w||!z&&!o)return;if(!z){C==null||C(I.nativeEvent,{nodeId:w,handleId:g,handleType:e}),b.setState({connectionClickStartHandle:{nodeId:w,type:e,id:g}});return}const H=gi(I.target),j=n||B,{connection:Y,isValid:q}=Bn.isValid(I.nativeEvent,{handle:{nodeId:w,id:g,type:e},connectionMode:V,fromNodeId:z.nodeId,fromHandleId:z.id||null,fromType:z.type,isValidConnection:j,flowId:A,doc:H,lib:X,nodeLookup:_});q&&Y&&T(Y);const U=structuredClone(R);delete U.inProgress,U.toPosition=U.toHandle?U.toHandle.position:null,M==null||M(I,U),b.setState({connectionClickStartHandle:null})};return W.jsx("div",{"data-handleid":g,"data-nodeid":w,"data-handlepos":t,"data-id":`${m}-${w}-${g}-${e}`,className:ae(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",p,u,{source:!x,target:x,connectable:r,connectablestart:o,connectableend:i,clickconnecting:O,connectingfrom:k,connectingto:S,valid:N,connectionindicator:r&&(!F||D)&&(F||L?i:o)}]),onMouseDown:$,onTouchStart:$,onClick:v?y:void 0,ref:h,...f,children:a})}const Qt=G.memo(zi(Zf));function Qf({data:e,isConnectable:t,sourcePosition:n=Q.Bottom}){return W.jsxs(W.Fragment,{children:[e==null?void 0:e.label,W.jsx(Qt,{type:"source",position:n,isConnectable:t})]})}function Jf({data:e,isConnectable:t,targetPosition:n=Q.Top,sourcePosition:r=Q.Bottom}){return W.jsxs(W.Fragment,{children:[W.jsx(Qt,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,W.jsx(Qt,{type:"source",position:r,isConnectable:t})]})}function eh(){return null}function th({data:e,isConnectable:t,targetPosition:n=Q.Top}){return W.jsxs(W.Fragment,{children:[W.jsx(Qt,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const Jt={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},yo={input:Qf,default:Jf,output:th,group:eh};function nh(e){var t,n,r,o;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??((r=e.style)==null?void 0:r.width),height:e.height??((o=e.style)==null?void 0:o.height)}}const rh=e=>{const{width:t,height:n,x:r,y:o}=Et(e.nodeLookup,{filter:i=>!!i.selected});return{width:me(t)?t:null,height:me(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${o}px)`}};function oh({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=ie(),{width:o,height:i,transformString:s,userSelectionActive:c}=ne(rh,oe),a=Vi(),u=G.useRef(null);G.useEffect(()=>{var h;n||(h=u.current)==null||h.focus({preventScroll:!0})},[n]);const d=!c&&o!==null&&i!==null;if(Hi({nodeRef:u,disabled:!d}),!d)return null;const l=e?h=>{const g=r.getState().nodes.filter(x=>x.selected);e(h,g)}:void 0,f=h=>{Object.prototype.hasOwnProperty.call(Jt,h.key)&&(h.preventDefault(),a({direction:Jt[h.key],factor:h.shiftKey?4:1}))};return W.jsx("div",{className:ae(["react-flow__nodesselection","react-flow__container",t]),style:{transform:s},children:W.jsx("div",{ref:u,className:"react-flow__nodesselection-rect",onContextMenu:l,tabIndex:n?void 0:-1,onKeyDown:n?void 0:f,style:{width:o,height:i}})})}const xo=typeof window<"u"?window:void 0,ih=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function Bi({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:s,paneClickDistance:c,deleteKeyCode:a,selectionKeyCode:u,selectionOnDrag:d,selectionMode:l,onSelectionStart:f,onSelectionEnd:h,multiSelectionKeyCode:g,panActivationKeyCode:x,zoomActivationKeyCode:b,elementsSelectable:w,zoomOnScroll:v,zoomOnPinch:p,panOnScroll:m,panOnScrollSpeed:k,panOnScrollMode:S,zoomOnDoubleClick:O,panOnDrag:D,defaultViewport:F,translateExtent:L,minZoom:N,maxZoom:T,preventScrolling:$,onSelectionContextMenu:y,noWheelClassName:P,noPanClassName:E,disableKeyboardA11y:I,onViewportChange:C,isControlledViewport:M}){const{nodesSelectionActive:z,userSelectionActive:V}=ne(ih,oe),B=wt(u,{target:xo}),X=wt(x,{target:xo}),A=X||D,_=X||m,R=d&&A!==!0,H=B||V||R;return jf({deleteKeyCode:a,multiSelectionKeyCode:g}),W.jsx(Ff,{onPaneContextMenu:i,elementsSelectable:w,zoomOnScroll:v,zoomOnPinch:p,panOnScroll:_,panOnScrollSpeed:k,panOnScrollMode:S,zoomOnDoubleClick:O,panOnDrag:!B&&A,defaultViewport:F,translateExtent:L,minZoom:N,maxZoom:T,zoomActivationKeyCode:b,preventScrolling:$,noWheelClassName:P,noPanClassName:E,onViewportChange:C,isControlledViewport:M,paneClickDistance:c,selectionOnDrag:R,children:W.jsxs(Wf,{onSelectionStart:f,onSelectionEnd:h,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:s,panOnDrag:A,isSelecting:!!H,selectionMode:l,selectionKeyPressed:B,paneClickDistance:c,selectionOnDrag:R,children:[e,z&&W.jsx(oh,{onSelectionContextMenu:y,noPanClassName:E,disableKeyboardA11y:I})]})})}Bi.displayName="FlowRenderer";const sh=G.memo(Bi),ah=e=>t=>e?er(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 ch(e){return ne(G.useCallback(ah(e),[e]),oe)}const uh=e=>e.updateNodeInternals;function lh(){const e=ne(uh),[t]=G.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(o=>{const i=o.target.getAttribute("data-id");r.set(i,{id:i,nodeElement:o.target,force:!0})}),e(r)}));return G.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function dh({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const o=ie(),i=G.useRef(null),s=G.useRef(null),c=G.useRef(e.sourcePosition),a=G.useRef(e.targetPosition),u=G.useRef(t),d=n&&!!e.internals.handleBounds;return G.useEffect(()=>{i.current&&!e.hidden&&(!d||s.current!==i.current)&&(s.current&&(r==null||r.unobserve(s.current)),r==null||r.observe(i.current),s.current=i.current)},[d,e.hidden]),G.useEffect(()=>()=>{s.current&&(r==null||r.unobserve(s.current),s.current=null)},[]),G.useEffect(()=>{if(i.current){const l=u.current!==t,f=c.current!==e.sourcePosition,h=a.current!==e.targetPosition;(l||f||h)&&(u.current=t,c.current=e.sourcePosition,a.current=e.targetPosition,o.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:i.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),i}function fh({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:o,onContextMenu:i,onDoubleClick:s,nodesDraggable:c,elementsSelectable:a,nodesConnectable:u,nodesFocusable:d,resizeObserver:l,noDragClassName:f,noPanClassName:h,disableKeyboardA11y:g,rfId:x,nodeTypes:b,nodeClickDistance:w,onError:v}){const{node:p,internals:m,isParent:k}=ne(j=>{const Y=j.nodeLookup.get(e),q=j.parentLookup.has(e);return{node:Y,internals:Y.internals,isParent:q}},oe);let S=p.type||"default",O=(b==null?void 0:b[S])||yo[S];O===void 0&&(v==null||v("003",_e.error003(S)),S="default",O=(b==null?void 0:b.default)||yo.default);const D=!!(p.draggable||c&&typeof p.draggable>"u"),F=!!(p.selectable||a&&typeof p.selectable>"u"),L=!!(p.connectable||u&&typeof p.connectable>"u"),N=!!(p.focusable||d&&typeof p.focusable>"u"),T=ie(),$=fi(p),y=dh({node:p,nodeType:S,hasDimensions:$,resizeObserver:l}),P=Hi({nodeRef:y,disabled:p.hidden||!D,noDragClassName:f,handleSelector:p.dragHandle,nodeId:e,isSelectable:F,nodeClickDistance:w}),E=Vi();if(p.hidden)return null;const I=Me(p),C=nh(p),M=F||D||t||n||r||o,z=n?j=>n(j,{...m.userNode}):void 0,V=r?j=>r(j,{...m.userNode}):void 0,B=o?j=>o(j,{...m.userNode}):void 0,X=i?j=>i(j,{...m.userNode}):void 0,A=s?j=>s(j,{...m.userNode}):void 0,_=j=>{const{selectNodesOnDrag:Y,nodeDragThreshold:q}=T.getState();F&&(!Y||!D||q>0)&&Yn({id:e,store:T,nodeRef:y}),t&&t(j,{...m.userNode})},R=j=>{if(!(pi(j.nativeEvent)||g)){if(ri.includes(j.key)&&F){const Y=j.key==="Escape";Yn({id:e,store:T,unselect:Y,nodeRef:y})}else if(D&&p.selected&&Object.prototype.hasOwnProperty.call(Jt,j.key)){j.preventDefault();const{ariaLabelConfig:Y}=T.getState();T.setState({ariaLiveMessage:Y["node.a11yDescription.ariaLiveMessage"]({direction:j.key.replace("Arrow","").toLowerCase(),x:~~m.positionAbsolute.x,y:~~m.positionAbsolute.y})}),E({direction:Jt[j.key],factor:j.shiftKey?4:1})}}},H=()=>{var J;if(g||!((J=y.current)!=null&&J.matches(":focus-visible")))return;const{transform:j,width:Y,height:q,autoPanOnNodeFocus:U,setCenter:K}=T.getState();if(!U)return;er(new Map([[e,p]]),{x:0,y:0,width:Y,height:q},j,!0).length>0||K(p.position.x+I.width/2,p.position.y+I.height/2,{zoom:j[2]})};return W.jsx("div",{className:ae(["react-flow__node",`react-flow__node-${S}`,{[h]:D},p.className,{selected:p.selected,selectable:F,parent:k,draggable:D,dragging:P}]),ref:y,style:{zIndex:m.z,transform:`translate(${m.positionAbsolute.x}px,${m.positionAbsolute.y}px)`,pointerEvents:M?"all":"none",visibility:$?"visible":"hidden",...p.style,...C},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:z,onMouseMove:V,onMouseLeave:B,onContextMenu:X,onClick:_,onDoubleClick:A,onKeyDown:N?R:void 0,tabIndex:N?0:void 0,onFocus:N?H:void 0,role:p.ariaRole??(N?"group":void 0),"aria-roledescription":"node","aria-describedby":g?void 0:`${$i}-${x}`,"aria-label":p.ariaLabel,...p.domAttributes,children:W.jsx(qf,{value:e,children:W.jsx(O,{id:e,data:p.data,type:S,positionAbsoluteX:m.positionAbsolute.x,positionAbsoluteY:m.positionAbsolute.y,selected:p.selected??!1,selectable:F,draggable:D,deletable:p.deletable??!0,isConnectable:L,sourcePosition:p.sourcePosition,targetPosition:p.targetPosition,dragging:P,dragHandle:p.dragHandle,zIndex:m.z,parentId:p.parentId,...I})})})}var hh=G.memo(fh);const gh=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function Yi(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:o,onError:i}=ne(gh,oe),s=ch(e.onlyRenderVisibleElements),c=lh();return W.jsx("div",{className:"react-flow__nodes",style:fn,children:s.map(a=>W.jsx(hh,{id:a,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:c,nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:o,nodeClickDistance:e.nodeClickDistance,onError:i},a))})}Yi.displayName="NodeRenderer";const ph=G.memo(Yi);function mh(e){return ne(G.useCallback(n=>{if(!e)return n.edges.map(o=>o.id);const r=[];if(n.width&&n.height)for(const o of n.edges){const i=n.nodeLookup.get(o.source),s=n.nodeLookup.get(o.target);i&&s&&dd({sourceNode:i,targetNode:s,width:n.width,height:n.height,transform:n.transform})&&r.push(o.id)}return r},[e]),oe)}const yh=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return W.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},xh=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return W.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},wo={[Ut.Arrow]:yh,[Ut.ArrowClosed]:xh};function wh(e){const t=ie();return G.useMemo(()=>{var o,i;return Object.prototype.hasOwnProperty.call(wo,e)?wo[e]:((i=(o=t.getState()).onError)==null||i.call(o,"009",_e.error009(e)),null)},[e])}const vh=({id:e,type:t,color:n,width:r=12.5,height:o=12.5,markerUnits:i="strokeWidth",strokeWidth:s,orient:c="auto-start-reverse"})=>{const a=wh(t);return a?W.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${o}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:c,refX:"0",refY:"0",children:W.jsx(a,{color:n,strokeWidth:s})}):null},Xi=({defaultColor:e,rfId:t})=>{const n=ne(i=>i.edges),r=ne(i=>i.defaultEdgeOptions),o=G.useMemo(()=>wd(n,{id:t,defaultColor:e,defaultMarkerStart:r==null?void 0:r.markerStart,defaultMarkerEnd:r==null?void 0:r.markerEnd}),[n,r,t,e]);return o.length?W.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:W.jsx("defs",{children:o.map(i=>W.jsx(vh,{id:i.id,type:i.type,color:i.color,width:i.width,height:i.height,markerUnits:i.markerUnits,strokeWidth:i.strokeWidth,orient:i.orient},i.id))})}):null};Xi.displayName="MarkerDefinitions";var bh=G.memo(Xi);function Wi({x:e,y:t,label:n,labelStyle:r,labelShowBg:o=!0,labelBgStyle:i,labelBgPadding:s=[2,4],labelBgBorderRadius:c=2,children:a,className:u,...d}){const[l,f]=G.useState({x:1,y:0,width:0,height:0}),h=ae(["react-flow__edge-textwrapper",u]),g=G.useRef(null);return G.useEffect(()=>{if(g.current){const x=g.current.getBBox();f({x:x.x,y:x.y,width:x.width,height:x.height})}},[n]),n?W.jsxs("g",{transform:`translate(${e-l.width/2} ${t-l.height/2})`,className:h,visibility:l.width?"visible":"hidden",...d,children:[o&&W.jsx("rect",{width:l.width+2*s[0],x:-s[0],y:-s[1],height:l.height+2*s[1],className:"react-flow__edge-textbg",style:i,rx:c,ry:c}),W.jsx("text",{className:"react-flow__edge-text",y:l.height/2,dy:"0.3em",ref:g,style:r,children:n}),a]}):null}Wi.displayName="EdgeText";const _h=G.memo(Wi);function hn({path:e,labelX:t,labelY:n,label:r,labelStyle:o,labelShowBg:i,labelBgStyle:s,labelBgPadding:c,labelBgBorderRadius:a,interactionWidth:u=20,...d}){return W.jsxs(W.Fragment,{children:[W.jsx("path",{...d,d:e,fill:"none",className:ae(["react-flow__edge-path",d.className])}),u?W.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:u,className:"react-flow__edge-interaction"}):null,r&&me(t)&&me(n)?W.jsx(_h,{x:t,y:n,label:r,labelStyle:o,labelShowBg:i,labelBgStyle:s,labelBgPadding:c,labelBgBorderRadius:a}):null]})}function vo({pos:e,x1:t,y1:n,x2:r,y2:o}){return e===Q.Left||e===Q.Right?[.5*(t+r),n]:[t,.5*(n+o)]}function Gi({sourceX:e,sourceY:t,sourcePosition:n=Q.Bottom,targetX:r,targetY:o,targetPosition:i=Q.Top}){const[s,c]=vo({pos:n,x1:e,y1:t,x2:r,y2:o}),[a,u]=vo({pos:i,x1:r,y1:o,x2:e,y2:t}),[d,l,f,h]=yi({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:s,sourceControlY:c,targetControlX:a,targetControlY:u});return[`M${e},${t} C${s},${c} ${a},${u} ${r},${o}`,d,l,f,h]}function qi(e){return G.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:s,targetPosition:c,label:a,labelStyle:u,labelShowBg:d,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:h,style:g,markerEnd:x,markerStart:b,interactionWidth:w})=>{const[v,p,m]=Gi({sourceX:n,sourceY:r,sourcePosition:s,targetX:o,targetY:i,targetPosition:c}),k=e.isInternal?void 0:t;return W.jsx(hn,{id:k,path:v,labelX:p,labelY:m,label:a,labelStyle:u,labelShowBg:d,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:h,style:g,markerEnd:x,markerStart:b,interactionWidth:w})})}const Eh=qi({isInternal:!1}),Ui=qi({isInternal:!0});Eh.displayName="SimpleBezierEdge";Ui.displayName="SimpleBezierEdgeInternal";function Ki(e){return G.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,label:s,labelStyle:c,labelShowBg:a,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:l,style:f,sourcePosition:h=Q.Bottom,targetPosition:g=Q.Top,markerEnd:x,markerStart:b,pathOptions:w,interactionWidth:v})=>{const[p,m,k]=Hn({sourceX:n,sourceY:r,sourcePosition:h,targetX:o,targetY:i,targetPosition:g,borderRadius:w==null?void 0:w.borderRadius,offset:w==null?void 0:w.offset,stepPosition:w==null?void 0:w.stepPosition}),S=e.isInternal?void 0:t;return W.jsx(hn,{id:S,path:p,labelX:m,labelY:k,label:s,labelStyle:c,labelShowBg:a,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:l,style:f,markerEnd:x,markerStart:b,interactionWidth:v})})}const Zi=Ki({isInternal:!1}),Qi=Ki({isInternal:!0});Zi.displayName="SmoothStepEdge";Qi.displayName="SmoothStepEdgeInternal";function Ji(e){return G.memo(({id:t,...n})=>{var o;const r=e.isInternal?void 0:t;return W.jsx(Zi,{...n,id:r,pathOptions:G.useMemo(()=>{var i;return{borderRadius:0,offset:(i=n.pathOptions)==null?void 0:i.offset}},[(o=n.pathOptions)==null?void 0:o.offset])})})}const Nh=Ji({isInternal:!1}),es=Ji({isInternal:!0});Nh.displayName="StepEdge";es.displayName="StepEdgeInternal";function ts(e){return G.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,label:s,labelStyle:c,labelShowBg:a,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:l,style:f,markerEnd:h,markerStart:g,interactionWidth:x})=>{const[b,w,v]=vi({sourceX:n,sourceY:r,targetX:o,targetY:i}),p=e.isInternal?void 0:t;return W.jsx(hn,{id:p,path:b,labelX:w,labelY:v,label:s,labelStyle:c,labelShowBg:a,labelBgStyle:u,labelBgPadding:d,labelBgBorderRadius:l,style:f,markerEnd:h,markerStart:g,interactionWidth:x})})}const Sh=ts({isInternal:!1}),ns=ts({isInternal:!0});Sh.displayName="StraightEdge";ns.displayName="StraightEdgeInternal";function rs(e){return G.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:s=Q.Bottom,targetPosition:c=Q.Top,label:a,labelStyle:u,labelShowBg:d,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:h,style:g,markerEnd:x,markerStart:b,pathOptions:w,interactionWidth:v})=>{const[p,m,k]=xi({sourceX:n,sourceY:r,sourcePosition:s,targetX:o,targetY:i,targetPosition:c,curvature:w==null?void 0:w.curvature}),S=e.isInternal?void 0:t;return W.jsx(hn,{id:S,path:p,labelX:m,labelY:k,label:a,labelStyle:u,labelShowBg:d,labelBgStyle:l,labelBgPadding:f,labelBgBorderRadius:h,style:g,markerEnd:x,markerStart:b,interactionWidth:v})})}const kh=rs({isInternal:!1}),os=rs({isInternal:!0});kh.displayName="BezierEdge";os.displayName="BezierEdgeInternal";const bo={default:os,straight:ns,step:es,smoothstep:Qi,simplebezier:Ui},_o={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},Ch=(e,t,n)=>n===Q.Left?e-t:n===Q.Right?e+t:e,Mh=(e,t,n)=>n===Q.Top?e-t:n===Q.Bottom?e+t:e,Eo="react-flow__edgeupdater";function No({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:o,onMouseEnter:i,onMouseOut:s,type:c}){return W.jsx("circle",{onMouseDown:o,onMouseEnter:i,onMouseOut:s,className:ae([Eo,`${Eo}-${c}`]),cx:Ch(t,r,e),cy:Mh(n,r,e),r,stroke:"transparent",fill:"transparent"})}function Ih({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:o,targetX:i,targetY:s,sourcePosition:c,targetPosition:a,onReconnect:u,onReconnectStart:d,onReconnectEnd:l,setReconnecting:f,setUpdateHover:h}){const g=ie(),x=(m,k)=>{if(m.button!==0)return;const{autoPanOnConnect:S,domNode:O,connectionMode:D,connectionRadius:F,lib:L,onConnectStart:N,cancelConnection:T,nodeLookup:$,rfId:y,panBy:P,updateConnection:E}=g.getState(),I=k.type==="target",C=(V,B)=>{f(!1),l==null||l(V,n,k.type,B)},M=V=>u==null?void 0:u(n,V),z=(V,B)=>{f(!0),d==null||d(m,n,k.type),N==null||N(V,B)};Bn.onPointerDown(m.nativeEvent,{autoPanOnConnect:S,connectionMode:D,connectionRadius:F,domNode:O,handleId:k.id,nodeId:k.nodeId,nodeLookup:$,isTarget:I,edgeUpdaterType:k.type,lib:L,flowId:y,cancelConnection:T,panBy:P,isValidConnection:(...V)=>{var B,X;return((X=(B=g.getState()).isValidConnection)==null?void 0:X.call(B,...V))??!0},onConnect:M,onConnectStart:z,onConnectEnd:(...V)=>{var B,X;return(X=(B=g.getState()).onConnectEnd)==null?void 0:X.call(B,...V)},onReconnectEnd:C,updateConnection:E,getTransform:()=>g.getState().transform,getFromHandle:()=>g.getState().connection.fromHandle,dragThreshold:g.getState().connectionDragThreshold,handleDomNode:m.currentTarget})},b=m=>x(m,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),w=m=>x(m,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),v=()=>h(!0),p=()=>h(!1);return W.jsxs(W.Fragment,{children:[(e===!0||e==="source")&&W.jsx(No,{position:c,centerX:r,centerY:o,radius:t,onMouseDown:b,onMouseEnter:v,onMouseOut:p,type:"source"}),(e===!0||e==="target")&&W.jsx(No,{position:a,centerX:i,centerY:s,radius:t,onMouseDown:w,onMouseEnter:v,onMouseOut:p,type:"target"})]})}function Ah({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:o,onDoubleClick:i,onContextMenu:s,onMouseEnter:c,onMouseMove:a,onMouseLeave:u,reconnectRadius:d,onReconnect:l,onReconnectStart:f,onReconnectEnd:h,rfId:g,edgeTypes:x,noPanClassName:b,onError:w,disableKeyboardA11y:v}){let p=ne(K=>K.edgeLookup.get(e));const m=ne(K=>K.defaultEdgeOptions);p=m?{...m,...p}:p;let k=p.type||"default",S=(x==null?void 0:x[k])||bo[k];S===void 0&&(w==null||w("011",_e.error011(k)),k="default",S=(x==null?void 0:x.default)||bo.default);const O=!!(p.focusable||t&&typeof p.focusable>"u"),D=typeof l<"u"&&(p.reconnectable||n&&typeof p.reconnectable>"u"),F=!!(p.selectable||r&&typeof p.selectable>"u"),L=G.useRef(null),[N,T]=G.useState(!1),[$,y]=G.useState(!1),P=ie(),{zIndex:E,sourceX:I,sourceY:C,targetX:M,targetY:z,sourcePosition:V,targetPosition:B}=ne(G.useCallback(K=>{const Z=K.nodeLookup.get(p.source),J=K.nodeLookup.get(p.target);if(!Z||!J)return{zIndex:p.zIndex,..._o};const ee=xd({id:e,sourceNode:Z,targetNode:J,sourceHandle:p.sourceHandle||null,targetHandle:p.targetHandle||null,connectionMode:K.connectionMode,onError:w});return{zIndex:ld({selected:p.selected,zIndex:p.zIndex,sourceNode:Z,targetNode:J,elevateOnSelect:K.elevateEdgesOnSelect,zIndexMode:K.zIndexMode}),...ee||_o}},[p.source,p.target,p.sourceHandle,p.targetHandle,p.selected,p.zIndex]),oe),X=G.useMemo(()=>p.markerStart?`url('#${Vn(p.markerStart,g)}')`:void 0,[p.markerStart,g]),A=G.useMemo(()=>p.markerEnd?`url('#${Vn(p.markerEnd,g)}')`:void 0,[p.markerEnd,g]);if(p.hidden||I===null||C===null||M===null||z===null)return null;const _=K=>{var te;const{addSelectedEdges:Z,unselectNodesAndEdges:J,multiSelectionActive:ee}=P.getState();F&&(P.setState({nodesSelectionActive:!1}),p.selected&&ee?(J({nodes:[],edges:[p]}),(te=L.current)==null||te.blur()):Z([e])),o&&o(K,p)},R=i?K=>{i(K,{...p})}:void 0,H=s?K=>{s(K,{...p})}:void 0,j=c?K=>{c(K,{...p})}:void 0,Y=a?K=>{a(K,{...p})}:void 0,q=u?K=>{u(K,{...p})}:void 0,U=K=>{var Z;if(!v&&ri.includes(K.key)&&F){const{unselectNodesAndEdges:J,addSelectedEdges:ee}=P.getState();K.key==="Escape"?((Z=L.current)==null||Z.blur(),J({edges:[p]})):ee([e])}};return W.jsx("svg",{style:{zIndex:E},children:W.jsxs("g",{className:ae(["react-flow__edge",`react-flow__edge-${k}`,p.className,b,{selected:p.selected,animated:p.animated,inactive:!F&&!o,updating:N,selectable:F}]),onClick:_,onDoubleClick:R,onContextMenu:H,onMouseEnter:j,onMouseMove:Y,onMouseLeave:q,onKeyDown:O?U:void 0,tabIndex:O?0:void 0,role:p.ariaRole??(O?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":p.ariaLabel===null?void 0:p.ariaLabel||`Edge from ${p.source} to ${p.target}`,"aria-describedby":O?`${Li}-${g}`:void 0,ref:L,...p.domAttributes,children:[!$&&W.jsx(S,{id:e,source:p.source,target:p.target,type:p.type,selected:p.selected,animated:p.animated,selectable:F,deletable:p.deletable??!0,label:p.label,labelStyle:p.labelStyle,labelShowBg:p.labelShowBg,labelBgStyle:p.labelBgStyle,labelBgPadding:p.labelBgPadding,labelBgBorderRadius:p.labelBgBorderRadius,sourceX:I,sourceY:C,targetX:M,targetY:z,sourcePosition:V,targetPosition:B,data:p.data,style:p.style,sourceHandleId:p.sourceHandle,targetHandleId:p.targetHandle,markerStart:X,markerEnd:A,pathOptions:"pathOptions"in p?p.pathOptions:void 0,interactionWidth:p.interactionWidth}),D&&W.jsx(Ih,{edge:p,isReconnectable:D,reconnectRadius:d,onReconnect:l,onReconnectStart:f,onReconnectEnd:h,sourceX:I,sourceY:C,targetX:M,targetY:z,sourcePosition:V,targetPosition:B,setUpdateHover:T,setReconnecting:y})]})})}var Th=G.memo(Ah);const Oh=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function is({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:o,onReconnect:i,onEdgeContextMenu:s,onEdgeMouseEnter:c,onEdgeMouseMove:a,onEdgeMouseLeave:u,onEdgeClick:d,reconnectRadius:l,onEdgeDoubleClick:f,onReconnectStart:h,onReconnectEnd:g,disableKeyboardA11y:x}){const{edgesFocusable:b,edgesReconnectable:w,elementsSelectable:v,onError:p}=ne(Oh,oe),m=mh(t);return W.jsxs("div",{className:"react-flow__edges",children:[W.jsx(bh,{defaultColor:e,rfId:n}),m.map(k=>W.jsx(Th,{id:k,edgesFocusable:b,edgesReconnectable:w,elementsSelectable:v,noPanClassName:o,onReconnect:i,onContextMenu:s,onMouseEnter:c,onMouseMove:a,onMouseLeave:u,onClick:d,reconnectRadius:l,onDoubleClick:f,onReconnectStart:h,onReconnectEnd:g,rfId:n,onError:p,edgeTypes:r,disableKeyboardA11y:x},k))]})}is.displayName="EdgeRenderer";const Ph=G.memo(is),$h=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function Lh({children:e}){const t=ne($h);return W.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function Rh(e){const t=cr(),n=G.useRef(!1);G.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const Dh=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function zh(e){const t=ne(Dh),n=ie();return G.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function jh(e){return e.connection.inProgress?{...e.connection,to:St(e.connection.to,e.transform)}:{...e.connection}}function Hh(e){return jh}function Vh(e){const t=Hh();return ne(t,oe)}const Fh=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function Bh({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:o,width:i,height:s,isValid:c,inProgress:a}=ne(Fh,oe);return!(i&&o&&a)?null:W.jsx("svg",{style:e,width:i,height:s,className:"react-flow__connectionline react-flow__container",children:W.jsx("g",{className:ae(["react-flow__connection",si(c)]),children:W.jsx(ss,{style:t,type:n,CustomComponent:r,isValid:c})})})}const ss=({style:e,type:t=Te.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:o,from:i,fromNode:s,fromHandle:c,fromPosition:a,to:u,toNode:d,toHandle:l,toPosition:f,pointer:h}=Vh();if(!o)return;if(n)return W.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:s,fromHandle:c,fromX:i.x,fromY:i.y,toX:u.x,toY:u.y,fromPosition:a,toPosition:f,connectionStatus:si(r),toNode:d,toHandle:l,pointer:h});let g="";const x={sourceX:i.x,sourceY:i.y,sourcePosition:a,targetX:u.x,targetY:u.y,targetPosition:f};switch(t){case Te.Bezier:[g]=xi(x);break;case Te.SimpleBezier:[g]=Gi(x);break;case Te.Step:[g]=Hn({...x,borderRadius:0});break;case Te.SmoothStep:[g]=Hn(x);break;default:[g]=vi(x)}return W.jsx("path",{d:g,fill:"none",className:"react-flow__connection-path",style:e})};ss.displayName="ConnectionLine";const Yh={};function So(e=Yh){G.useRef(e),ie(),G.useEffect(()=>{},[e])}function Xh(){ie(),G.useRef(!1),G.useEffect(()=>{},[])}function as({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:o,onNodeDoubleClick:i,onEdgeDoubleClick:s,onNodeMouseEnter:c,onNodeMouseMove:a,onNodeMouseLeave:u,onNodeContextMenu:d,onSelectionContextMenu:l,onSelectionStart:f,onSelectionEnd:h,connectionLineType:g,connectionLineStyle:x,connectionLineComponent:b,connectionLineContainerStyle:w,selectionKeyCode:v,selectionOnDrag:p,selectionMode:m,multiSelectionKeyCode:k,panActivationKeyCode:S,zoomActivationKeyCode:O,deleteKeyCode:D,onlyRenderVisibleElements:F,elementsSelectable:L,defaultViewport:N,translateExtent:T,minZoom:$,maxZoom:y,preventScrolling:P,defaultMarkerColor:E,zoomOnScroll:I,zoomOnPinch:C,panOnScroll:M,panOnScrollSpeed:z,panOnScrollMode:V,zoomOnDoubleClick:B,panOnDrag:X,onPaneClick:A,onPaneMouseEnter:_,onPaneMouseMove:R,onPaneMouseLeave:H,onPaneScroll:j,onPaneContextMenu:Y,paneClickDistance:q,nodeClickDistance:U,onEdgeContextMenu:K,onEdgeMouseEnter:Z,onEdgeMouseMove:J,onEdgeMouseLeave:ee,reconnectRadius:te,onReconnect:ce,onReconnectStart:he,onReconnectEnd:Ne,noDragClassName:Pe,noWheelClassName:tt,noPanClassName:nt,disableKeyboardA11y:rt,nodeExtent:gn,rfId:kt,viewport:Fe,onViewportChange:ot}){return So(e),So(t),Xh(),Rh(n),zh(Fe),W.jsx(sh,{onPaneClick:A,onPaneMouseEnter:_,onPaneMouseMove:R,onPaneMouseLeave:H,onPaneContextMenu:Y,onPaneScroll:j,paneClickDistance:q,deleteKeyCode:D,selectionKeyCode:v,selectionOnDrag:p,selectionMode:m,onSelectionStart:f,onSelectionEnd:h,multiSelectionKeyCode:k,panActivationKeyCode:S,zoomActivationKeyCode:O,elementsSelectable:L,zoomOnScroll:I,zoomOnPinch:C,zoomOnDoubleClick:B,panOnScroll:M,panOnScrollSpeed:z,panOnScrollMode:V,panOnDrag:X,defaultViewport:N,translateExtent:T,minZoom:$,maxZoom:y,onSelectionContextMenu:l,preventScrolling:P,noDragClassName:Pe,noWheelClassName:tt,noPanClassName:nt,disableKeyboardA11y:rt,onViewportChange:ot,isControlledViewport:!!Fe,children:W.jsxs(Lh,{children:[W.jsx(Ph,{edgeTypes:t,onEdgeClick:o,onEdgeDoubleClick:s,onReconnect:ce,onReconnectStart:he,onReconnectEnd:Ne,onlyRenderVisibleElements:F,onEdgeContextMenu:K,onEdgeMouseEnter:Z,onEdgeMouseMove:J,onEdgeMouseLeave:ee,reconnectRadius:te,defaultMarkerColor:E,noPanClassName:nt,disableKeyboardA11y:rt,rfId:kt}),W.jsx(Bh,{style:x,type:g,component:b,containerStyle:w}),W.jsx("div",{className:"react-flow__edgelabel-renderer"}),W.jsx(ph,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:i,onNodeMouseEnter:c,onNodeMouseMove:a,onNodeMouseLeave:u,onNodeContextMenu:d,nodeClickDistance:U,onlyRenderVisibleElements:F,noPanClassName:nt,noDragClassName:Pe,disableKeyboardA11y:rt,nodeExtent:gn,rfId:kt}),W.jsx("div",{className:"react-flow__viewport-portal"})]})})}as.displayName="GraphView";const Wh=G.memo(as),ko=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:s,fitViewOptions:c,minZoom:a=.5,maxZoom:u=2,nodeOrigin:d,nodeExtent:l,zIndexMode:f="basic"}={})=>{const h=new Map,g=new Map,x=new Map,b=new Map,w=r??t??[],v=n??e??[],p=d??[0,0],m=l??pt;Ei(x,b,w);const k=Fn(v,h,g,{nodeOrigin:p,nodeExtent:m,zIndexMode:f});let S=[0,0,1];if(s&&o&&i){const O=Et(h,{filter:N=>!!((N.width||N.initialWidth)&&(N.height||N.initialHeight))}),{x:D,y:F,zoom:L}=tr(O,o,i,a,u,(c==null?void 0:c.padding)??.1);S=[D,F,L]}return{rfId:"1",width:o??0,height:i??0,transform:S,nodes:v,nodesInitialized:k,nodeLookup:h,parentLookup:g,edges:w,edgeLookup:b,connectionLookup:x,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:a,maxZoom:u,translateExtent:pt,nodeExtent:m,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:Ke.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:p,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:s??!1,fitViewOptions:c,fitViewResolver:null,connection:{...ii},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:od,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:oi,zIndexMode:f,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},Gh=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:s,fitViewOptions:c,minZoom:a,maxZoom:u,nodeOrigin:d,nodeExtent:l,zIndexMode:f})=>uf((h,g)=>{async function x(){const{nodeLookup:b,panZoom:w,fitViewOptions:v,fitViewResolver:p,width:m,height:k,minZoom:S,maxZoom:O}=g();w&&(await nd({nodes:b,width:m,height:k,panZoom:w,minZoom:S,maxZoom:O},v),p==null||p.resolve(!0),h({fitViewResolver:null}))}return{...ko({nodes:e,edges:t,width:o,height:i,fitView:s,fitViewOptions:c,minZoom:a,maxZoom:u,nodeOrigin:d,nodeExtent:l,defaultNodes:n,defaultEdges:r,zIndexMode:f}),setNodes:b=>{const{nodeLookup:w,parentLookup:v,nodeOrigin:p,elevateNodesOnSelect:m,fitViewQueued:k,zIndexMode:S}=g(),O=Fn(b,w,v,{nodeOrigin:p,nodeExtent:l,elevateNodesOnSelect:m,checkEquality:!0,zIndexMode:S});k&&O?(x(),h({nodes:b,nodesInitialized:O,fitViewQueued:!1,fitViewOptions:void 0})):h({nodes:b,nodesInitialized:O})},setEdges:b=>{const{connectionLookup:w,edgeLookup:v}=g();Ei(w,v,b),h({edges:b})},setDefaultNodesAndEdges:(b,w)=>{if(b){const{setNodes:v}=g();v(b),h({hasDefaultNodes:!0})}if(w){const{setEdges:v}=g();v(w),h({hasDefaultEdges:!0})}},updateNodeInternals:b=>{const{triggerNodeChanges:w,nodeLookup:v,parentLookup:p,domNode:m,nodeOrigin:k,nodeExtent:S,debug:O,fitViewQueued:D,zIndexMode:F}=g(),{changes:L,updatedInternals:N}=kd(b,v,p,m,k,S,F);N&&(_d(v,p,{nodeOrigin:k,nodeExtent:S,zIndexMode:F}),D?(x(),h({fitViewQueued:!1,fitViewOptions:void 0})):h({}),(L==null?void 0:L.length)>0&&(O&&console.log("React Flow: trigger node changes",L),w==null||w(L)))},updateNodePositions:(b,w=!1)=>{const v=[];let p=[];const{nodeLookup:m,triggerNodeChanges:k,connection:S,updateConnection:O,onNodesChangeMiddlewareMap:D}=g();for(const[F,L]of b){const N=m.get(F),T=!!(N!=null&&N.expandParent&&(N!=null&&N.parentId)&&(L!=null&&L.position)),$={id:F,type:"position",position:T?{x:Math.max(0,L.position.x),y:Math.max(0,L.position.y)}:L.position,dragging:w};if(N&&S.inProgress&&S.fromNode.id===N.id){const y=Ve(N,S.fromHandle,Q.Left,!0);O({...S,from:y})}T&&N.parentId&&v.push({id:F,parentId:N.parentId,rect:{...L.internals.positionAbsolute,width:L.measured.width??0,height:L.measured.height??0}}),p.push($)}if(v.length>0){const{parentLookup:F,nodeOrigin:L}=g(),N=ar(v,m,F,L);p.push(...N)}for(const F of D.values())p=F(p);k(p)},triggerNodeChanges:b=>{const{onNodesChange:w,setNodes:v,nodes:p,hasDefaultNodes:m,debug:k}=g();if(b!=null&&b.length){if(m){const S=Af(b,p);v(S)}k&&console.log("React Flow: trigger node changes",b),w==null||w(b)}},triggerEdgeChanges:b=>{const{onEdgesChange:w,setEdges:v,edges:p,hasDefaultEdges:m,debug:k}=g();if(b!=null&&b.length){if(m){const S=Tf(b,p);v(S)}k&&console.log("React Flow: trigger edge changes",b),w==null||w(b)}},addSelectedNodes:b=>{const{multiSelectionActive:w,edgeLookup:v,nodeLookup:p,triggerNodeChanges:m,triggerEdgeChanges:k}=g();if(w){const S=b.map(O=>$e(O,!0));m(S);return}m(Xe(p,new Set([...b]),!0)),k(Xe(v))},addSelectedEdges:b=>{const{multiSelectionActive:w,edgeLookup:v,nodeLookup:p,triggerNodeChanges:m,triggerEdgeChanges:k}=g();if(w){const S=b.map(O=>$e(O,!0));k(S);return}k(Xe(v,new Set([...b]))),m(Xe(p,new Set,!0))},unselectNodesAndEdges:({nodes:b,edges:w}={})=>{const{edges:v,nodes:p,nodeLookup:m,triggerNodeChanges:k,triggerEdgeChanges:S}=g(),O=b||p,D=w||v,F=[];for(const N of O){if(!N.selected)continue;const T=m.get(N.id);T&&(T.selected=!1),F.push($e(N.id,!1))}const L=[];for(const N of D)N.selected&&L.push($e(N.id,!1));k(F),S(L)},setMinZoom:b=>{const{panZoom:w,maxZoom:v}=g();w==null||w.setScaleExtent([b,v]),h({minZoom:b})},setMaxZoom:b=>{const{panZoom:w,minZoom:v}=g();w==null||w.setScaleExtent([v,b]),h({maxZoom:b})},setTranslateExtent:b=>{var w;(w=g().panZoom)==null||w.setTranslateExtent(b),h({translateExtent:b})},resetSelectedElements:()=>{const{edges:b,nodes:w,triggerNodeChanges:v,triggerEdgeChanges:p,elementsSelectable:m}=g();if(!m)return;const k=w.reduce((O,D)=>D.selected?[...O,$e(D.id,!1)]:O,[]),S=b.reduce((O,D)=>D.selected?[...O,$e(D.id,!1)]:O,[]);v(k),p(S)},setNodeExtent:b=>{const{nodes:w,nodeLookup:v,parentLookup:p,nodeOrigin:m,elevateNodesOnSelect:k,nodeExtent:S,zIndexMode:O}=g();b[0][0]===S[0][0]&&b[0][1]===S[0][1]&&b[1][0]===S[1][0]&&b[1][1]===S[1][1]||(Fn(w,v,p,{nodeOrigin:m,nodeExtent:b,elevateNodesOnSelect:k,checkEquality:!1,zIndexMode:O}),h({nodeExtent:b}))},panBy:b=>{const{transform:w,width:v,height:p,panZoom:m,translateExtent:k}=g();return Cd({delta:b,panZoom:m,transform:w,translateExtent:k,width:v,height:p})},setCenter:async(b,w,v)=>{const{width:p,height:m,maxZoom:k,panZoom:S}=g();if(!S)return Promise.resolve(!1);const O=typeof(v==null?void 0:v.zoom)<"u"?v.zoom:k;return await S.setViewport({x:p/2-b*O,y:m/2-w*O,zoom:O},{duration:v==null?void 0:v.duration,ease:v==null?void 0:v.ease,interpolate:v==null?void 0:v.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{h({connection:{...ii}})},updateConnection:b=>{h({connection:b})},reset:()=>h({...ko()})}},Object.is);function qh({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:o,initialHeight:i,initialMinZoom:s,initialMaxZoom:c,initialFitViewOptions:a,fitView:u,nodeOrigin:d,nodeExtent:l,zIndexMode:f,children:h}){const[g]=G.useState(()=>Gh({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:u,minZoom:s,maxZoom:c,fitViewOptions:a,nodeOrigin:d,nodeExtent:l,zIndexMode:f}));return W.jsx(lf,{value:g,children:W.jsx(Lf,{children:h})})}function Uh({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:o,width:i,height:s,fitView:c,fitViewOptions:a,minZoom:u,maxZoom:d,nodeOrigin:l,nodeExtent:f,zIndexMode:h}){return G.useContext(ln)?W.jsx(W.Fragment,{children:e}):W.jsx(qh,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:o,initialWidth:i,initialHeight:s,fitView:c,initialFitViewOptions:a,initialMinZoom:u,initialMaxZoom:d,nodeOrigin:l,nodeExtent:f,zIndexMode:h,children:e})}const Kh={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function Zh({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:o,nodeTypes:i,edgeTypes:s,onNodeClick:c,onEdgeClick:a,onInit:u,onMove:d,onMoveStart:l,onMoveEnd:f,onConnect:h,onConnectStart:g,onConnectEnd:x,onClickConnectStart:b,onClickConnectEnd:w,onNodeMouseEnter:v,onNodeMouseMove:p,onNodeMouseLeave:m,onNodeContextMenu:k,onNodeDoubleClick:S,onNodeDragStart:O,onNodeDrag:D,onNodeDragStop:F,onNodesDelete:L,onEdgesDelete:N,onDelete:T,onSelectionChange:$,onSelectionDragStart:y,onSelectionDrag:P,onSelectionDragStop:E,onSelectionContextMenu:I,onSelectionStart:C,onSelectionEnd:M,onBeforeDelete:z,connectionMode:V,connectionLineType:B=Te.Bezier,connectionLineStyle:X,connectionLineComponent:A,connectionLineContainerStyle:_,deleteKeyCode:R="Backspace",selectionKeyCode:H="Shift",selectionOnDrag:j=!1,selectionMode:Y=mt.Full,panActivationKeyCode:q="Space",multiSelectionKeyCode:U=xt()?"Meta":"Control",zoomActivationKeyCode:K=xt()?"Meta":"Control",snapToGrid:Z,snapGrid:J,onlyRenderVisibleElements:ee=!1,selectNodesOnDrag:te,nodesDraggable:ce,autoPanOnNodeFocus:he,nodesConnectable:Ne,nodesFocusable:Pe,nodeOrigin:tt=Ri,edgesFocusable:nt,edgesReconnectable:rt,elementsSelectable:gn=!0,defaultViewport:kt=Ef,minZoom:Fe=.5,maxZoom:ot=2,translateExtent:lr=pt,preventScrolling:fs=!0,nodeExtent:pn,defaultMarkerColor:hs="#b1b1b7",zoomOnScroll:gs=!0,zoomOnPinch:ps=!0,panOnScroll:ms=!1,panOnScrollSpeed:ys=.5,panOnScrollMode:xs=De.Free,zoomOnDoubleClick:ws=!0,panOnDrag:vs=!0,onPaneClick:bs,onPaneMouseEnter:_s,onPaneMouseMove:Es,onPaneMouseLeave:Ns,onPaneScroll:Ss,onPaneContextMenu:ks,paneClickDistance:Cs=1,nodeClickDistance:Ms=0,children:Is,onReconnect:As,onReconnectStart:Ts,onReconnectEnd:Os,onEdgeContextMenu:Ps,onEdgeDoubleClick:$s,onEdgeMouseEnter:Ls,onEdgeMouseMove:Rs,onEdgeMouseLeave:Ds,reconnectRadius:zs=10,onNodesChange:js,onEdgesChange:Hs,noDragClassName:Vs="nodrag",noWheelClassName:Fs="nowheel",noPanClassName:dr="nopan",fitView:fr,fitViewOptions:hr,connectOnClick:Bs,attributionPosition:Ys,proOptions:Xs,defaultEdgeOptions:Ws,elevateNodesOnSelect:Gs=!0,elevateEdgesOnSelect:qs=!1,disableKeyboardA11y:gr=!1,autoPanOnConnect:Us,autoPanOnNodeDrag:Ks,autoPanSpeed:Zs,connectionRadius:Qs,isValidConnection:Js,onError:ea,style:ta,id:pr,nodeDragThreshold:na,connectionDragThreshold:ra,viewport:oa,onViewportChange:ia,width:sa,height:aa,colorMode:ca="light",debug:ua,onScroll:Ct,ariaLabelConfig:la,zIndexMode:mr="basic",...da},fa){const mn=pr||"1",ha=Cf(ca),ga=G.useCallback(yr=>{yr.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),Ct==null||Ct(yr)},[Ct]);return W.jsx("div",{"data-testid":"rf__wrapper",...da,onScroll:ga,style:{...ta,...Kh},ref:fa,className:ae(["react-flow",o,ha]),id:pr,role:"application",children:W.jsxs(Uh,{nodes:e,edges:t,width:sa,height:aa,fitView:fr,fitViewOptions:hr,minZoom:Fe,maxZoom:ot,nodeOrigin:tt,nodeExtent:pn,zIndexMode:mr,children:[W.jsx(Wh,{onInit:u,onNodeClick:c,onEdgeClick:a,onNodeMouseEnter:v,onNodeMouseMove:p,onNodeMouseLeave:m,onNodeContextMenu:k,onNodeDoubleClick:S,nodeTypes:i,edgeTypes:s,connectionLineType:B,connectionLineStyle:X,connectionLineComponent:A,connectionLineContainerStyle:_,selectionKeyCode:H,selectionOnDrag:j,selectionMode:Y,deleteKeyCode:R,multiSelectionKeyCode:U,panActivationKeyCode:q,zoomActivationKeyCode:K,onlyRenderVisibleElements:ee,defaultViewport:kt,translateExtent:lr,minZoom:Fe,maxZoom:ot,preventScrolling:fs,zoomOnScroll:gs,zoomOnPinch:ps,zoomOnDoubleClick:ws,panOnScroll:ms,panOnScrollSpeed:ys,panOnScrollMode:xs,panOnDrag:vs,onPaneClick:bs,onPaneMouseEnter:_s,onPaneMouseMove:Es,onPaneMouseLeave:Ns,onPaneScroll:Ss,onPaneContextMenu:ks,paneClickDistance:Cs,nodeClickDistance:Ms,onSelectionContextMenu:I,onSelectionStart:C,onSelectionEnd:M,onReconnect:As,onReconnectStart:Ts,onReconnectEnd:Os,onEdgeContextMenu:Ps,onEdgeDoubleClick:$s,onEdgeMouseEnter:Ls,onEdgeMouseMove:Rs,onEdgeMouseLeave:Ds,reconnectRadius:zs,defaultMarkerColor:hs,noDragClassName:Vs,noWheelClassName:Fs,noPanClassName:dr,rfId:mn,disableKeyboardA11y:gr,nodeExtent:pn,viewport:oa,onViewportChange:ia}),W.jsx(kf,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:h,onConnectStart:g,onConnectEnd:x,onClickConnectStart:b,onClickConnectEnd:w,nodesDraggable:ce,autoPanOnNodeFocus:he,nodesConnectable:Ne,nodesFocusable:Pe,edgesFocusable:nt,edgesReconnectable:rt,elementsSelectable:gn,elevateNodesOnSelect:Gs,elevateEdgesOnSelect:qs,minZoom:Fe,maxZoom:ot,nodeExtent:pn,onNodesChange:js,onEdgesChange:Hs,snapToGrid:Z,snapGrid:J,connectionMode:V,translateExtent:lr,connectOnClick:Bs,defaultEdgeOptions:Ws,fitView:fr,fitViewOptions:hr,onNodesDelete:L,onEdgesDelete:N,onDelete:T,onNodeDragStart:O,onNodeDrag:D,onNodeDragStop:F,onSelectionDrag:P,onSelectionDragStart:y,onSelectionDragStop:E,onMove:d,onMoveStart:l,onMoveEnd:f,noPanClassName:dr,nodeOrigin:tt,rfId:mn,autoPanOnConnect:Us,autoPanOnNodeDrag:Ks,autoPanSpeed:Zs,onError:ea,connectionRadius:Qs,isValidConnection:Js,selectNodesOnDrag:te,nodeDragThreshold:na,connectionDragThreshold:ra,onBeforeDelete:z,debug:ua,ariaLabelConfig:la,zIndexMode:mr}),W.jsx(_f,{onSelectionChange:$}),Is,W.jsx(yf,{proOptions:Xs,position:Ys}),W.jsx(mf,{rfId:mn,disableKeyboardA11y:gr})]})})}var Ug=zi(Zh);function Qh({dimensions:e,lineWidth:t,variant:n,className:r}){return W.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:ae(["react-flow__background-pattern",n,r])})}function Jh({radius:e,className:t}){return W.jsx("circle",{cx:e,cy:e,r:e,className:ae(["react-flow__background-pattern","dots",t])})}var Oe;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Oe||(Oe={}));const eg={[Oe.Dots]:1,[Oe.Lines]:1,[Oe.Cross]:6},tg=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function cs({id:e,variant:t=Oe.Dots,gap:n=20,size:r,lineWidth:o=1,offset:i=0,color:s,bgColor:c,style:a,className:u,patternClassName:d}){const l=G.useRef(null),{transform:f,patternId:h}=ne(tg,oe),g=r||eg[t],x=t===Oe.Dots,b=t===Oe.Cross,w=Array.isArray(n)?n:[n,n],v=[w[0]*f[2]||1,w[1]*f[2]||1],p=g*f[2],m=Array.isArray(i)?i:[i,i],k=b?[p,p]:v,S=[m[0]*f[2]||1+k[0]/2,m[1]*f[2]||1+k[1]/2],O=`${h}${e||""}`;return W.jsxs("svg",{className:ae(["react-flow__background",u]),style:{...a,...fn,"--xy-background-color-props":c,"--xy-background-pattern-color-props":s},ref:l,"data-testid":"rf__background",children:[W.jsx("pattern",{id:O,x:f[0]%v[0],y:f[1]%v[1],width:v[0],height:v[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${S[0]},-${S[1]})`,children:x?W.jsx(Jh,{radius:p/2,className:d}):W.jsx(Qh,{dimensions:k,lineWidth:o,variant:t,className:d})}),W.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${O})`})]})}cs.displayName="Background";const Kg=G.memo(cs);function ng(){return W.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:W.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function rg(){return W.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:W.jsx("path",{d:"M0 0h32v4.2H0z"})})}function og(){return W.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:W.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 ig(){return W.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:W.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 sg(){return W.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:W.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 Rt({children:e,className:t,...n}){return W.jsx("button",{type:"button",className:ae(["react-flow__controls-button",t]),...n,children:e})}const ag=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function us({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:o,onZoomIn:i,onZoomOut:s,onFitView:c,onInteractiveChange:a,className:u,children:d,position:l="bottom-left",orientation:f="vertical","aria-label":h}){const g=ie(),{isInteractive:x,minZoomReached:b,maxZoomReached:w,ariaLabelConfig:v}=ne(ag,oe),{zoomIn:p,zoomOut:m,fitView:k}=cr(),S=()=>{p(),i==null||i()},O=()=>{m(),s==null||s()},D=()=>{k(o),c==null||c()},F=()=>{g.setState({nodesDraggable:!x,nodesConnectable:!x,elementsSelectable:!x}),a==null||a(!x)},L=f==="horizontal"?"horizontal":"vertical";return W.jsxs(dn,{className:ae(["react-flow__controls",L,u]),position:l,style:e,"data-testid":"rf__controls","aria-label":h??v["controls.ariaLabel"],children:[t&&W.jsxs(W.Fragment,{children:[W.jsx(Rt,{onClick:S,className:"react-flow__controls-zoomin",title:v["controls.zoomIn.ariaLabel"],"aria-label":v["controls.zoomIn.ariaLabel"],disabled:w,children:W.jsx(ng,{})}),W.jsx(Rt,{onClick:O,className:"react-flow__controls-zoomout",title:v["controls.zoomOut.ariaLabel"],"aria-label":v["controls.zoomOut.ariaLabel"],disabled:b,children:W.jsx(rg,{})})]}),n&&W.jsx(Rt,{className:"react-flow__controls-fitview",onClick:D,title:v["controls.fitView.ariaLabel"],"aria-label":v["controls.fitView.ariaLabel"],children:W.jsx(og,{})}),r&&W.jsx(Rt,{className:"react-flow__controls-interactive",onClick:F,title:v["controls.interactive.ariaLabel"],"aria-label":v["controls.interactive.ariaLabel"],children:x?W.jsx(sg,{}):W.jsx(ig,{})}),d]})}us.displayName="Controls";const Zg=G.memo(us);function cg({id:e,x:t,y:n,width:r,height:o,style:i,color:s,strokeColor:c,strokeWidth:a,className:u,borderRadius:d,shapeRendering:l,selected:f,onClick:h}){const{background:g,backgroundColor:x}=i||{},b=s||g||x;return W.jsx("rect",{className:ae(["react-flow__minimap-node",{selected:f},u]),x:t,y:n,rx:d,ry:d,width:r,height:o,style:{fill:b,stroke:c,strokeWidth:a},shapeRendering:l,onClick:h?w=>h(w,e):void 0})}const ug=G.memo(cg),lg=e=>e.nodes.map(t=>t.id),An=e=>e instanceof Function?e:()=>e;function dg({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:o,nodeComponent:i=ug,onClick:s}){const c=ne(lg,oe),a=An(t),u=An(e),d=An(n),l=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return W.jsx(W.Fragment,{children:c.map(f=>W.jsx(hg,{id:f,nodeColorFunc:a,nodeStrokeColorFunc:u,nodeClassNameFunc:d,nodeBorderRadius:r,nodeStrokeWidth:o,NodeComponent:i,onClick:s,shapeRendering:l},f))})}function fg({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:o,nodeStrokeWidth:i,shapeRendering:s,NodeComponent:c,onClick:a}){const{node:u,x:d,y:l,width:f,height:h}=ne(g=>{const x=g.nodeLookup.get(e);if(!x)return{node:void 0,x:0,y:0,width:0,height:0};const b=x.internals.userNode,{x:w,y:v}=x.internals.positionAbsolute,{width:p,height:m}=Me(b);return{node:b,x:w,y:v,width:p,height:m}},oe);return!u||u.hidden||!fi(u)?null:W.jsx(c,{x:d,y:l,width:f,height:h,style:u.style,selected:!!u.selected,className:r(u),color:t(u),borderRadius:o,strokeColor:n(u),strokeWidth:i,shapeRendering:s,onClick:a,id:u.id})}const hg=G.memo(fg);var gg=G.memo(dg);const pg=200,mg=150,yg=e=>!e.hidden,xg=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?di(Et(e.nodeLookup,{filter:yg}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},wg="react-flow__minimap-desc";function ls({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:o="",nodeBorderRadius:i=5,nodeStrokeWidth:s,nodeComponent:c,bgColor:a,maskColor:u,maskStrokeColor:d,maskStrokeWidth:l,position:f="bottom-right",onClick:h,onNodeClick:g,pannable:x=!1,zoomable:b=!1,ariaLabel:w,inversePan:v,zoomStep:p=1,offsetScale:m=5}){const k=ie(),S=G.useRef(null),{boundingRect:O,viewBB:D,rfId:F,panZoom:L,translateExtent:N,flowWidth:T,flowHeight:$,ariaLabelConfig:y}=ne(xg,oe),P=(e==null?void 0:e.width)??pg,E=(e==null?void 0:e.height)??mg,I=O.width/P,C=O.height/E,M=Math.max(I,C),z=M*P,V=M*E,B=m*M,X=O.x-(z-O.width)/2-B,A=O.y-(V-O.height)/2-B,_=z+B*2,R=V+B*2,H=`${wg}-${F}`,j=G.useRef(0),Y=G.useRef();j.current=M,G.useEffect(()=>{if(S.current&&L)return Y.current=Rd({domNode:S.current,panZoom:L,getTransform:()=>k.getState().transform,getViewScale:()=>j.current}),()=>{var Z;(Z=Y.current)==null||Z.destroy()}},[L]),G.useEffect(()=>{var Z;(Z=Y.current)==null||Z.update({translateExtent:N,width:T,height:$,inversePan:v,pannable:x,zoomStep:p,zoomable:b})},[x,b,v,p,N,T,$]);const q=h?Z=>{var te;const[J,ee]=((te=Y.current)==null?void 0:te.pointer(Z))||[0,0];h(Z,{x:J,y:ee})}:void 0,U=g?G.useCallback((Z,J)=>{const ee=k.getState().nodeLookup.get(J).internals.userNode;g(Z,ee)},[]):void 0,K=w??y["minimap.ariaLabel"];return W.jsx(dn,{position:f,style:{...e,"--xy-minimap-background-color-props":typeof a=="string"?a:void 0,"--xy-minimap-mask-background-color-props":typeof u=="string"?u:void 0,"--xy-minimap-mask-stroke-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-stroke-width-props":typeof l=="number"?l*M:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof s=="number"?s:void 0},className:ae(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:W.jsxs("svg",{width:P,height:E,viewBox:`${X} ${A} ${_} ${R}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":H,ref:S,onClick:q,children:[K&&W.jsx("title",{id:H,children:K}),W.jsx(gg,{onClick:U,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:o,nodeStrokeWidth:s,nodeComponent:c}),W.jsx("path",{className:"react-flow__minimap-mask",d:`M${X-B},${A-B}h${_+B*2}v${R+B*2}h${-_-B*2}z
|
|
31
|
-
M${D.x},${D.y}h${D.width}v${D.height}h${-D.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}ls.displayName="MiniMap";const Qg=G.memo(ls),vg=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,bg={[et.Line]:"right",[et.Handle]:"bottom-right"};function _g({nodeId:e,position:t,variant:n=et.Handle,className:r,style:o=void 0,children:i,color:s,minWidth:c=10,minHeight:a=10,maxWidth:u=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:l=!1,resizeDirection:f,autoScale:h=!0,shouldResize:g,onResizeStart:x,onResize:b,onResizeEnd:w}){const v=Fi(),p=typeof e=="string"?e:v,m=ie(),k=G.useRef(null),S=n===et.Handle,O=ne(G.useCallback(vg(S&&h),[S,h]),oe),D=G.useRef(null),F=t??bg[n];G.useEffect(()=>{if(!(!k.current||!p))return D.current||(D.current=Kd({domNode:k.current,nodeId:p,getStoreItems:()=>{const{nodeLookup:N,transform:T,snapGrid:$,snapToGrid:y,nodeOrigin:P,domNode:E}=m.getState();return{nodeLookup:N,transform:T,snapGrid:$,snapToGrid:y,nodeOrigin:P,paneDomNode:E}},onChange:(N,T)=>{const{triggerNodeChanges:$,nodeLookup:y,parentLookup:P,nodeOrigin:E}=m.getState(),I=[],C={x:N.x,y:N.y},M=y.get(p);if(M&&M.expandParent&&M.parentId){const z=M.origin??E,V=N.width??M.measured.width??0,B=N.height??M.measured.height??0,X={id:M.id,parentId:M.parentId,rect:{width:V,height:B,...hi({x:N.x??M.position.x,y:N.y??M.position.y},{width:V,height:B},M.parentId,y,z)}},A=ar([X],y,P,E);I.push(...A),C.x=N.x?Math.max(z[0]*V,N.x):void 0,C.y=N.y?Math.max(z[1]*B,N.y):void 0}if(C.x!==void 0&&C.y!==void 0){const z={id:p,type:"position",position:{...C}};I.push(z)}if(N.width!==void 0&&N.height!==void 0){const V={id:p,type:"dimensions",resizing:!0,setAttributes:f?f==="horizontal"?"width":"height":!0,dimensions:{width:N.width,height:N.height}};I.push(V)}for(const z of T){const V={...z,type:"position"};I.push(V)}$(I)},onEnd:({width:N,height:T})=>{const $={id:p,type:"dimensions",resizing:!1,dimensions:{width:N,height:T}};m.getState().triggerNodeChanges([$])}})),D.current.update({controlPosition:F,boundaries:{minWidth:c,minHeight:a,maxWidth:u,maxHeight:d},keepAspectRatio:l,resizeDirection:f,onResizeStart:x,onResize:b,onResizeEnd:w,shouldResize:g}),()=>{var N;(N=D.current)==null||N.destroy()}},[F,c,a,u,d,l,x,b,w,g]);const L=F.split("-");return W.jsx("div",{className:ae(["react-flow__resize-control","nodrag",...L,n,r]),ref:k,style:{...o,scale:O,...s&&{[S?"backgroundColor":"borderColor"]:s}},children:i})}G.memo(_g);var re=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),xe=re((e,t)=>{var n=Object.defineProperty,r=($,y,P)=>y in $?n($,y,{enumerable:!0,configurable:!0,writable:!0,value:P}):$[y]=P,o=($,y)=>()=>(y||$((y={exports:{}}).exports,y),y.exports),i=($,y,P)=>r($,typeof y!="symbol"?y+"":y,P),s=o(($,y)=>{var P="\0",E="\0",I="",C=class{constructor(A){i(this,"_isDirected",!0),i(this,"_isMultigraph",!1),i(this,"_isCompound",!1),i(this,"_label"),i(this,"_defaultNodeLabelFn",()=>{}),i(this,"_defaultEdgeLabelFn",()=>{}),i(this,"_nodes",{}),i(this,"_in",{}),i(this,"_preds",{}),i(this,"_out",{}),i(this,"_sucs",{}),i(this,"_edgeObjs",{}),i(this,"_edgeLabels",{}),i(this,"_nodeCount",0),i(this,"_edgeCount",0),i(this,"_parent"),i(this,"_children"),A&&(this._isDirected=Object.hasOwn(A,"directed")?A.directed:!0,this._isMultigraph=Object.hasOwn(A,"multigraph")?A.multigraph:!1,this._isCompound=Object.hasOwn(A,"compound")?A.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[E]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(A){return this._label=A,this}graph(){return this._label}setDefaultNodeLabel(A){return this._defaultNodeLabelFn=A,typeof A!="function"&&(this._defaultNodeLabelFn=()=>A),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var A=this;return this.nodes().filter(_=>Object.keys(A._in[_]).length===0)}sinks(){var A=this;return this.nodes().filter(_=>Object.keys(A._out[_]).length===0)}setNodes(A,_){var R=arguments,H=this;return A.forEach(function(j){R.length>1?H.setNode(j,_):H.setNode(j)}),this}setNode(A,_){return Object.hasOwn(this._nodes,A)?(arguments.length>1&&(this._nodes[A]=_),this):(this._nodes[A]=arguments.length>1?_:this._defaultNodeLabelFn(A),this._isCompound&&(this._parent[A]=E,this._children[A]={},this._children[E][A]=!0),this._in[A]={},this._preds[A]={},this._out[A]={},this._sucs[A]={},++this._nodeCount,this)}node(A){return this._nodes[A]}hasNode(A){return Object.hasOwn(this._nodes,A)}removeNode(A){var _=this;if(Object.hasOwn(this._nodes,A)){var R=H=>_.removeEdge(_._edgeObjs[H]);delete this._nodes[A],this._isCompound&&(this._removeFromParentsChildList(A),delete this._parent[A],this.children(A).forEach(function(H){_.setParent(H)}),delete this._children[A]),Object.keys(this._in[A]).forEach(R),delete this._in[A],delete this._preds[A],Object.keys(this._out[A]).forEach(R),delete this._out[A],delete this._sucs[A],--this._nodeCount}return this}setParent(A,_){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(_===void 0)_=E;else{_+="";for(var R=_;R!==void 0;R=this.parent(R))if(R===A)throw new Error("Setting "+_+" as parent of "+A+" would create a cycle");this.setNode(_)}return this.setNode(A),this._removeFromParentsChildList(A),this._parent[A]=_,this._children[_][A]=!0,this}_removeFromParentsChildList(A){delete this._children[this._parent[A]][A]}parent(A){if(this._isCompound){var _=this._parent[A];if(_!==E)return _}}children(A=E){if(this._isCompound){var _=this._children[A];if(_)return Object.keys(_)}else{if(A===E)return this.nodes();if(this.hasNode(A))return[]}}predecessors(A){var _=this._preds[A];if(_)return Object.keys(_)}successors(A){var _=this._sucs[A];if(_)return Object.keys(_)}neighbors(A){var _=this.predecessors(A);if(_){let H=new Set(_);for(var R of this.successors(A))H.add(R);return Array.from(H.values())}}isLeaf(A){var _;return this.isDirected()?_=this.successors(A):_=this.neighbors(A),_.length===0}filterNodes(A){var _=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});_.setGraph(this.graph());var R=this;Object.entries(this._nodes).forEach(function([Y,q]){A(Y)&&_.setNode(Y,q)}),Object.values(this._edgeObjs).forEach(function(Y){_.hasNode(Y.v)&&_.hasNode(Y.w)&&_.setEdge(Y,R.edge(Y))});var H={};function j(Y){var q=R.parent(Y);return q===void 0||_.hasNode(q)?(H[Y]=q,q):q in H?H[q]:j(q)}return this._isCompound&&_.nodes().forEach(Y=>_.setParent(Y,j(Y))),_}setDefaultEdgeLabel(A){return this._defaultEdgeLabelFn=A,typeof A!="function"&&(this._defaultEdgeLabelFn=()=>A),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(A,_){var R=this,H=arguments;return A.reduce(function(j,Y){return H.length>1?R.setEdge(j,Y,_):R.setEdge(j,Y),Y}),this}setEdge(){var A,_,R,H,j=!1,Y=arguments[0];typeof Y=="object"&&Y!==null&&"v"in Y?(A=Y.v,_=Y.w,R=Y.name,arguments.length===2&&(H=arguments[1],j=!0)):(A=Y,_=arguments[1],R=arguments[3],arguments.length>2&&(H=arguments[2],j=!0)),A=""+A,_=""+_,R!==void 0&&(R=""+R);var q=V(this._isDirected,A,_,R);if(Object.hasOwn(this._edgeLabels,q))return j&&(this._edgeLabels[q]=H),this;if(R!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(A),this.setNode(_),this._edgeLabels[q]=j?H:this._defaultEdgeLabelFn(A,_,R);var U=B(this._isDirected,A,_,R);return A=U.v,_=U.w,Object.freeze(U),this._edgeObjs[q]=U,M(this._preds[_],A),M(this._sucs[A],_),this._in[_][q]=U,this._out[A][q]=U,this._edgeCount++,this}edge(A,_,R){var H=arguments.length===1?X(this._isDirected,arguments[0]):V(this._isDirected,A,_,R);return this._edgeLabels[H]}edgeAsObj(){let A=this.edge(...arguments);return typeof A!="object"?{label:A}:A}hasEdge(A,_,R){var H=arguments.length===1?X(this._isDirected,arguments[0]):V(this._isDirected,A,_,R);return Object.hasOwn(this._edgeLabels,H)}removeEdge(A,_,R){var H=arguments.length===1?X(this._isDirected,arguments[0]):V(this._isDirected,A,_,R),j=this._edgeObjs[H];return j&&(A=j.v,_=j.w,delete this._edgeLabels[H],delete this._edgeObjs[H],z(this._preds[_],A),z(this._sucs[A],_),delete this._in[_][H],delete this._out[A][H],this._edgeCount--),this}inEdges(A,_){return this.isDirected()?this.filterEdges(this._in[A],A,_):this.nodeEdges(A,_)}outEdges(A,_){return this.isDirected()?this.filterEdges(this._out[A],A,_):this.nodeEdges(A,_)}nodeEdges(A,_){if(A in this._nodes)return this.filterEdges({...this._in[A],...this._out[A]},A,_)}filterEdges(A,_,R){if(A){var H=Object.values(A);return R?H.filter(function(j){return j.v===_&&j.w===R||j.v===R&&j.w===_}):H}}};function M(A,_){A[_]?A[_]++:A[_]=1}function z(A,_){--A[_]||delete A[_]}function V(A,_,R,H){var j=""+_,Y=""+R;if(!A&&j>Y){var q=j;j=Y,Y=q}return j+I+Y+I+(H===void 0?P:H)}function B(A,_,R,H){var j=""+_,Y=""+R;if(!A&&j>Y){var q=j;j=Y,Y=q}var U={v:j,w:Y};return H&&(U.name=H),U}function X(A,_){return V(A,_.v,_.w,_.name)}y.exports=C}),c=o(($,y)=>{y.exports="3.0.2"}),a=o(($,y)=>{y.exports={Graph:s(),version:c()}}),u=o(($,y)=>{var P=s();y.exports={write:E,read:M};function E(z){var V={options:{directed:z.isDirected(),multigraph:z.isMultigraph(),compound:z.isCompound()},nodes:I(z),edges:C(z)};return z.graph()!==void 0&&(V.value=structuredClone(z.graph())),V}function I(z){return z.nodes().map(function(V){var B=z.node(V),X=z.parent(V),A={v:V};return B!==void 0&&(A.value=B),X!==void 0&&(A.parent=X),A})}function C(z){return z.edges().map(function(V){var B=z.edge(V),X={v:V.v,w:V.w};return V.name!==void 0&&(X.name=V.name),B!==void 0&&(X.value=B),X})}function M(z){var V=new P(z.options).setGraph(z.value);return z.nodes.forEach(function(B){V.setNode(B.v,B.value),B.parent&&V.setParent(B.v,B.parent)}),z.edges.forEach(function(B){V.setEdge({v:B.v,w:B.w,name:B.name},B.value)}),V}}),d=o(($,y)=>{y.exports=E;var P=()=>1;function E(C,M,z,V){return I(C,String(M),z||P,V||function(B){return C.outEdges(B)})}function I(C,M,z,V){var B={},X=!0,A=0,_=C.nodes(),R=function(q){var U=z(q);B[q.v].distance+U<B[q.w].distance&&(B[q.w]={distance:B[q.v].distance+U,predecessor:q.v},X=!0)},H=function(){_.forEach(function(q){V(q).forEach(function(U){var K=U.v===q?U.v:U.w,Z=K===U.v?U.w:U.v;R({v:K,w:Z})})})};_.forEach(function(q){var U=q===M?0:Number.POSITIVE_INFINITY;B[q]={distance:U}});for(var j=_.length,Y=1;Y<j&&(X=!1,A++,H(),!!X);Y++);if(A===j-1&&(X=!1,H(),X))throw new Error("The graph contains a negative weight cycle");return B}}),l=o(($,y)=>{y.exports=P;function P(E){var I={},C=[],M;function z(V){Object.hasOwn(I,V)||(I[V]=!0,M.push(V),E.successors(V).forEach(z),E.predecessors(V).forEach(z))}return E.nodes().forEach(function(V){M=[],z(V),M.length&&C.push(M)}),C}}),f=o(($,y)=>{var P=class{constructor(){i(this,"_arr",[]),i(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(E){return E.key})}has(E){return Object.hasOwn(this._keyIndices,E)}priority(E){var I=this._keyIndices[E];if(I!==void 0)return this._arr[I].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(E,I){var C=this._keyIndices;if(E=String(E),!Object.hasOwn(C,E)){var M=this._arr,z=M.length;return C[E]=z,M.push({key:E,priority:I}),this._decrease(z),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var E=this._arr.pop();return delete this._keyIndices[E.key],this._heapify(0),E.key}decrease(E,I){var C=this._keyIndices[E];if(I>this._arr[C].priority)throw new Error("New priority is greater than current priority. Key: "+E+" Old: "+this._arr[C].priority+" New: "+I);this._arr[C].priority=I,this._decrease(C)}_heapify(E){var I=this._arr,C=2*E,M=C+1,z=E;C<I.length&&(z=I[C].priority<I[z].priority?C:z,M<I.length&&(z=I[M].priority<I[z].priority?M:z),z!==E&&(this._swap(E,z),this._heapify(z)))}_decrease(E){for(var I=this._arr,C=I[E].priority,M;E!==0&&(M=E>>1,!(I[M].priority<C));)this._swap(E,M),E=M}_swap(E,I){var C=this._arr,M=this._keyIndices,z=C[E],V=C[I];C[E]=V,C[I]=z,M[V.key]=E,M[z.key]=I}};y.exports=P}),h=o(($,y)=>{var P=f();y.exports=I;var E=()=>1;function I(M,z,V,B){var X=function(A){return M.outEdges(A)};return C(M,String(z),V||E,B||X)}function C(M,z,V,B){var X={},A=new P,_,R,H=function(j){var Y=j.v!==_?j.v:j.w,q=X[Y],U=V(j),K=R.distance+U;if(U<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+j+" Weight: "+U);K<q.distance&&(q.distance=K,q.predecessor=_,A.decrease(Y,K))};for(M.nodes().forEach(function(j){var Y=j===z?0:Number.POSITIVE_INFINITY;X[j]={distance:Y},A.add(j,Y)});A.size()>0&&(_=A.removeMin(),R=X[_],R.distance!==Number.POSITIVE_INFINITY);)B(_).forEach(H);return X}}),g=o(($,y)=>{var P=h();y.exports=E;function E(I,C,M){return I.nodes().reduce(function(z,V){return z[V]=P(I,V,C,M),z},{})}}),x=o(($,y)=>{y.exports=P;function P(I,C,M){if(I[C].predecessor!==void 0)throw new Error("Invalid source vertex");if(I[M].predecessor===void 0&&M!==C)throw new Error("Invalid destination vertex");return{weight:I[M].distance,path:E(I,C,M)}}function E(I,C,M){for(var z=[],V=M;V!==C;)z.push(V),V=I[V].predecessor;return z.push(C),z.reverse()}}),b=o(($,y)=>{y.exports=P;function P(E){var I=0,C=[],M={},z=[];function V(B){var X=M[B]={onStack:!0,lowlink:I,index:I++};if(C.push(B),E.successors(B).forEach(function(R){Object.hasOwn(M,R)?M[R].onStack&&(X.lowlink=Math.min(X.lowlink,M[R].index)):(V(R),X.lowlink=Math.min(X.lowlink,M[R].lowlink))}),X.lowlink===X.index){var A=[],_;do _=C.pop(),M[_].onStack=!1,A.push(_);while(B!==_);z.push(A)}}return E.nodes().forEach(function(B){Object.hasOwn(M,B)||V(B)}),z}}),w=o(($,y)=>{var P=b();y.exports=E;function E(I){return P(I).filter(function(C){return C.length>1||C.length===1&&I.hasEdge(C[0],C[0])})}}),v=o(($,y)=>{y.exports=E;var P=()=>1;function E(C,M,z){return I(C,M||P,z||function(V){return C.outEdges(V)})}function I(C,M,z){var V={},B=C.nodes();return B.forEach(function(X){V[X]={},V[X][X]={distance:0},B.forEach(function(A){X!==A&&(V[X][A]={distance:Number.POSITIVE_INFINITY})}),z(X).forEach(function(A){var _=A.v===X?A.w:A.v,R=M(A);V[X][_]={distance:R,predecessor:X}})}),B.forEach(function(X){var A=V[X];B.forEach(function(_){var R=V[_];B.forEach(function(H){var j=R[X],Y=A[H],q=R[H],U=j.distance+Y.distance;U<q.distance&&(q.distance=U,q.predecessor=Y.predecessor)})})}),V}}),p=o(($,y)=>{function P(I){var C={},M={},z=[];function V(B){if(Object.hasOwn(M,B))throw new E;Object.hasOwn(C,B)||(M[B]=!0,C[B]=!0,I.predecessors(B).forEach(V),delete M[B],z.push(B))}if(I.sinks().forEach(V),Object.keys(C).length!==I.nodeCount())throw new E;return z}var E=class extends Error{constructor(){super(...arguments)}};y.exports=P,P.CycleException=E}),m=o(($,y)=>{var P=p();y.exports=E;function E(I){try{P(I)}catch(C){if(C instanceof P.CycleException)return!1;throw C}return!0}}),k=o(($,y)=>{y.exports=P;function P(I,C,M,z,V){Array.isArray(C)||(C=[C]);var B=(I.isDirected()?I.successors:I.neighbors).bind(I),X={};return C.forEach(function(A){if(!I.hasNode(A))throw new Error("Graph does not have node: "+A);V=E(I,A,M==="post",X,B,z,V)}),V}function E(I,C,M,z,V,B,X){return Object.hasOwn(z,C)||(z[C]=!0,M||(X=B(X,C)),V(C).forEach(function(A){X=E(I,A,M,z,V,B,X)}),M&&(X=B(X,C))),X}}),S=o(($,y)=>{var P=k();y.exports=E;function E(I,C,M){return P(I,C,M,function(z,V){return z.push(V),z},[])}}),O=o(($,y)=>{var P=S();y.exports=E;function E(I,C){return P(I,C,"post")}}),D=o(($,y)=>{var P=S();y.exports=E;function E(I,C){return P(I,C,"pre")}}),F=o(($,y)=>{var P=s(),E=f();y.exports=I;function I(C,M){var z=new P,V={},B=new E,X;function A(R){var H=R.v===X?R.w:R.v,j=B.priority(H);if(j!==void 0){var Y=M(R);Y<j&&(V[H]=X,B.decrease(H,Y))}}if(C.nodeCount()===0)return z;C.nodes().forEach(function(R){B.add(R,Number.POSITIVE_INFINITY),z.setNode(R)}),B.decrease(C.nodes()[0],0);for(var _=!1;B.size()>0;){if(X=B.removeMin(),Object.hasOwn(V,X))z.setEdge(X,V[X]);else{if(_)throw new Error("Input graph is not connected: "+C);_=!0}C.nodeEdges(X).forEach(A)}return z}}),L=o(($,y)=>{var P=h(),E=d();y.exports=I;function I(M,z,V,B){return C(M,z,V,B||function(X){return M.outEdges(X)})}function C(M,z,V,B){if(V===void 0)return P(M,z,V,B);for(var X=!1,A=M.nodes(),_=0;_<A.length;_++){for(var R=B(A[_]),H=0;H<R.length;H++){var j=R[H],Y=j.v===A[_]?j.v:j.w,q=Y===j.v?j.w:j.v;V({v:Y,w:q})<0&&(X=!0)}if(X)return E(M,z,V,B)}return P(M,z,V,B)}}),N=o(($,y)=>{y.exports={bellmanFord:d(),components:l(),dijkstra:h(),dijkstraAll:g(),extractPath:x(),findCycles:w(),floydWarshall:v(),isAcyclic:m(),postorder:O(),preorder:D(),prim:F(),shortestPaths:L(),reduce:k(),tarjan:b(),topsort:p()}}),T=a();t.exports={Graph:T.Graph,json:u(),alg:N(),version:T.version}}),Eg=re((e,t)=>{var n=class{constructor(){let i={};i._next=i._prev=i,this._sentinel=i}dequeue(){let i=this._sentinel,s=i._prev;if(s!==i)return r(s),s}enqueue(i){let s=this._sentinel;i._prev&&i._next&&r(i),i._next=s._next,s._next._prev=i,s._next=i,i._prev=s}toString(){let i=[],s=this._sentinel,c=s._prev;for(;c!==s;)i.push(JSON.stringify(c,o)),c=c._prev;return"["+i.join(", ")+"]"}};function r(i){i._prev._next=i._next,i._next._prev=i._prev,delete i._next,delete i._prev}function o(i,s){if(i!=="_next"&&i!=="_prev")return s}t.exports=n}),Ng=re((e,t)=>{var n=xe().Graph,r=Eg();t.exports=i;var o=()=>1;function i(l,f){if(l.nodeCount()<=1)return[];let h=a(l,f||o);return s(h.graph,h.buckets,h.zeroIdx).flatMap(g=>l.outEdges(g.v,g.w))}function s(l,f,h){let g=[],x=f[f.length-1],b=f[0],w;for(;l.nodeCount();){for(;w=b.dequeue();)c(l,f,h,w);for(;w=x.dequeue();)c(l,f,h,w);if(l.nodeCount()){for(let v=f.length-2;v>0;--v)if(w=f[v].dequeue(),w){g=g.concat(c(l,f,h,w,!0));break}}}return g}function c(l,f,h,g,x){let b=x?[]:void 0;return l.inEdges(g.v).forEach(w=>{let v=l.edge(w),p=l.node(w.v);x&&b.push({v:w.v,w:w.w}),p.out-=v,u(f,h,p)}),l.outEdges(g.v).forEach(w=>{let v=l.edge(w),p=w.w,m=l.node(p);m.in-=v,u(f,h,m)}),l.removeNode(g.v),b}function a(l,f){let h=new n,g=0,x=0;l.nodes().forEach(v=>{h.setNode(v,{v,in:0,out:0})}),l.edges().forEach(v=>{let p=h.edge(v.v,v.w)||0,m=f(v),k=p+m;h.setEdge(v.v,v.w,k),x=Math.max(x,h.node(v.v).out+=m),g=Math.max(g,h.node(v.w).in+=m)});let b=d(x+g+3).map(()=>new r),w=g+1;return h.nodes().forEach(v=>{u(b,w,h.node(v))}),{graph:h,buckets:b,zeroIdx:w}}function u(l,f,h){h.out?h.in?l[h.out-h.in+f].enqueue(h):l[l.length-1].enqueue(h):l[0].enqueue(h)}function d(l){let f=[];for(let h=0;h<l;h++)f.push(h);return f}}),se=re((e,t)=>{var n=xe().Graph;t.exports={addBorderNode:f,addDummyNode:r,applyWithChunking:x,asNonCompoundGraph:i,buildLayerMatrix:u,intersectRect:a,mapValues:D,maxRank:b,normalizeRanks:d,notime:p,partition:w,pick:O,predecessorWeights:c,range:S,removeEmptyRanks:l,simplify:o,successorWeights:s,time:v,uniqueId:k,zipObject:F};function r(L,N,T,$){for(var y=$;L.hasNode(y);)y=k($);return T.dummy=N,L.setNode(y,T),y}function o(L){let N=new n().setGraph(L.graph());return L.nodes().forEach(T=>N.setNode(T,L.node(T))),L.edges().forEach(T=>{let $=N.edge(T.v,T.w)||{weight:0,minlen:1},y=L.edge(T);N.setEdge(T.v,T.w,{weight:$.weight+y.weight,minlen:Math.max($.minlen,y.minlen)})}),N}function i(L){let N=new n({multigraph:L.isMultigraph()}).setGraph(L.graph());return L.nodes().forEach(T=>{L.children(T).length||N.setNode(T,L.node(T))}),L.edges().forEach(T=>{N.setEdge(T,L.edge(T))}),N}function s(L){let N=L.nodes().map(T=>{let $={};return L.outEdges(T).forEach(y=>{$[y.w]=($[y.w]||0)+L.edge(y).weight}),$});return F(L.nodes(),N)}function c(L){let N=L.nodes().map(T=>{let $={};return L.inEdges(T).forEach(y=>{$[y.v]=($[y.v]||0)+L.edge(y).weight}),$});return F(L.nodes(),N)}function a(L,N){let T=L.x,$=L.y,y=N.x-T,P=N.y-$,E=L.width/2,I=L.height/2;if(!y&&!P)throw new Error("Not possible to find intersection inside of the rectangle");let C,M;return Math.abs(P)*E>Math.abs(y)*I?(P<0&&(I=-I),C=I*y/P,M=I):(y<0&&(E=-E),C=E,M=E*P/y),{x:T+C,y:$+M}}function u(L){let N=S(b(L)+1).map(()=>[]);return L.nodes().forEach(T=>{let $=L.node(T),y=$.rank;y!==void 0&&(N[y][$.order]=T)}),N}function d(L){let N=L.nodes().map($=>{let y=L.node($).rank;return y===void 0?Number.MAX_VALUE:y}),T=x(Math.min,N);L.nodes().forEach($=>{let y=L.node($);Object.hasOwn(y,"rank")&&(y.rank-=T)})}function l(L){let N=L.nodes().map(E=>L.node(E).rank).filter(E=>E!==void 0),T=x(Math.min,N),$=[];L.nodes().forEach(E=>{let I=L.node(E).rank-T;$[I]||($[I]=[]),$[I].push(E)});let y=0,P=L.graph().nodeRankFactor;Array.from($).forEach((E,I)=>{E===void 0&&I%P!==0?--y:E!==void 0&&y&&E.forEach(C=>L.node(C).rank+=y)})}function f(L,N,T,$){let y={width:0,height:0};return arguments.length>=4&&(y.rank=T,y.order=$),r(L,"border",y,N)}function h(L,N=g){let T=[];for(let $=0;$<L.length;$+=N){let y=L.slice($,$+N);T.push(y)}return T}var g=65535;function x(L,N){if(N.length>g){let T=h(N);return L.apply(null,T.map($=>L.apply(null,$)))}else return L.apply(null,N)}function b(L){let N=L.nodes().map(T=>{let $=L.node(T).rank;return $===void 0?Number.MIN_VALUE:$});return x(Math.max,N)}function w(L,N){let T={lhs:[],rhs:[]};return L.forEach($=>{N($)?T.lhs.push($):T.rhs.push($)}),T}function v(L,N){let T=Date.now();try{return N()}finally{console.log(L+" time: "+(Date.now()-T)+"ms")}}function p(L,N){return N()}var m=0;function k(L){var N=++m;return L+(""+N)}function S(L,N,T=1){N==null&&(N=L,L=0);let $=P=>P<N;T<0&&($=P=>N<P);let y=[];for(let P=L;$(P);P+=T)y.push(P);return y}function O(L,N){let T={};for(let $ of N)L[$]!==void 0&&(T[$]=L[$]);return T}function D(L,N){let T=N;return typeof N=="string"&&(T=$=>$[N]),Object.entries(L).reduce(($,[y,P])=>($[y]=T(P,y),$),{})}function F(L,N){return L.reduce((T,$,y)=>(T[$]=N[y],T),{})}}),Sg=re((e,t)=>{var n=Ng(),r=se().uniqueId;t.exports={run:o,undo:s};function o(c){(c.graph().acyclicer==="greedy"?n(c,a(c)):i(c)).forEach(u=>{let d=c.edge(u);c.removeEdge(u),d.forwardName=u.name,d.reversed=!0,c.setEdge(u.w,u.v,d,r("rev"))});function a(u){return d=>u.edge(d).weight}}function i(c){let a=[],u={},d={};function l(f){Object.hasOwn(d,f)||(d[f]=!0,u[f]=!0,c.outEdges(f).forEach(h=>{Object.hasOwn(u,h.w)?a.push(h):l(h.w)}),delete u[f])}return c.nodes().forEach(l),a}function s(c){c.edges().forEach(a=>{let u=c.edge(a);if(u.reversed){c.removeEdge(a);let d=u.forwardName;delete u.reversed,delete u.forwardName,c.setEdge(a.w,a.v,u,d)}})}}),kg=re((e,t)=>{var n=se();t.exports={run:r,undo:i};function r(s){s.graph().dummyChains=[],s.edges().forEach(c=>o(s,c))}function o(s,c){let a=c.v,u=s.node(a).rank,d=c.w,l=s.node(d).rank,f=c.name,h=s.edge(c),g=h.labelRank;if(l===u+1)return;s.removeEdge(c);let x,b,w;for(w=0,++u;u<l;++w,++u)h.points=[],b={width:0,height:0,edgeLabel:h,edgeObj:c,rank:u},x=n.addDummyNode(s,"edge",b,"_d"),u===g&&(b.width=h.width,b.height=h.height,b.dummy="edge-label",b.labelpos=h.labelpos),s.setEdge(a,x,{weight:h.weight},f),w===0&&s.graph().dummyChains.push(x),a=x;s.setEdge(a,d,{weight:h.weight},f)}function i(s){s.graph().dummyChains.forEach(c=>{let a=s.node(c),u=a.edgeLabel,d;for(s.setEdge(a.edgeObj,u);a.dummy;)d=s.successors(c)[0],s.removeNode(c),u.points.push({x:a.x,y:a.y}),a.dummy==="edge-label"&&(u.x=a.x,u.y=a.y,u.width=a.width,u.height=a.height),c=d,a=s.node(c)})}}),en=re((e,t)=>{var{applyWithChunking:n}=se();t.exports={longestPath:r,slack:o};function r(i){var s={};function c(a){var u=i.node(a);if(Object.hasOwn(s,a))return u.rank;s[a]=!0;let d=i.outEdges(a).map(f=>f==null?Number.POSITIVE_INFINITY:c(f.w)-i.edge(f).minlen);var l=n(Math.min,d);return l===Number.POSITIVE_INFINITY&&(l=0),u.rank=l}i.sources().forEach(c)}function o(i,s){return i.node(s.w).rank-i.node(s.v).rank-i.edge(s).minlen}}),ds=re((e,t)=>{var n=xe().Graph,r=en().slack;t.exports=o;function o(a){var u=new n({directed:!1}),d=a.nodes()[0],l=a.nodeCount();u.setNode(d,{});for(var f,h;i(u,a)<l;)f=s(u,a),h=u.hasNode(f.v)?r(a,f):-r(a,f),c(u,a,h);return u}function i(a,u){function d(l){u.nodeEdges(l).forEach(f=>{var h=f.v,g=l===h?f.w:h;!a.hasNode(g)&&!r(u,f)&&(a.setNode(g,{}),a.setEdge(l,g,{}),d(g))})}return a.nodes().forEach(d),a.nodeCount()}function s(a,u){return u.edges().reduce((d,l)=>{let f=Number.POSITIVE_INFINITY;return a.hasNode(l.v)!==a.hasNode(l.w)&&(f=r(u,l)),f<d[0]?[f,l]:d},[Number.POSITIVE_INFINITY,null])[1]}function c(a,u,d){a.nodes().forEach(l=>u.node(l).rank+=d)}}),Cg=re((e,t)=>{var n=ds(),r=en().slack,o=en().longestPath,i=xe().alg.preorder,s=xe().alg.postorder,c=se().simplify;t.exports=a,a.initLowLimValues=f,a.initCutValues=u,a.calcCutValue=l,a.leaveEdge=g,a.enterEdge=x,a.exchangeEdges=b;function a(m){m=c(m),o(m);var k=n(m);f(k),u(k,m);for(var S,O;S=g(k);)O=x(k,m,S),b(k,m,S,O)}function u(m,k){var S=s(m,m.nodes());S=S.slice(0,S.length-1),S.forEach(O=>d(m,k,O))}function d(m,k,S){var O=m.node(S),D=O.parent;m.edge(S,D).cutvalue=l(m,k,S)}function l(m,k,S){var O=m.node(S),D=O.parent,F=!0,L=k.edge(S,D),N=0;return L||(F=!1,L=k.edge(D,S)),N=L.weight,k.nodeEdges(S).forEach(T=>{var $=T.v===S,y=$?T.w:T.v;if(y!==D){var P=$===F,E=k.edge(T).weight;if(N+=P?E:-E,v(m,S,y)){var I=m.edge(S,y).cutvalue;N+=P?-I:I}}}),N}function f(m,k){arguments.length<2&&(k=m.nodes()[0]),h(m,{},1,k)}function h(m,k,S,O,D){var F=S,L=m.node(O);return k[O]=!0,m.neighbors(O).forEach(N=>{Object.hasOwn(k,N)||(S=h(m,k,S,N,O))}),L.low=F,L.lim=S++,D?L.parent=D:delete L.parent,S}function g(m){return m.edges().find(k=>m.edge(k).cutvalue<0)}function x(m,k,S){var O=S.v,D=S.w;k.hasEdge(O,D)||(O=S.w,D=S.v);var F=m.node(O),L=m.node(D),N=F,T=!1;F.lim>L.lim&&(N=L,T=!0);var $=k.edges().filter(y=>T===p(m,m.node(y.v),N)&&T!==p(m,m.node(y.w),N));return $.reduce((y,P)=>r(k,P)<r(k,y)?P:y)}function b(m,k,S,O){var D=S.v,F=S.w;m.removeEdge(D,F),m.setEdge(O.v,O.w,{}),f(m),u(m,k),w(m,k)}function w(m,k){var S=m.nodes().find(D=>!k.node(D).parent),O=i(m,S);O=O.slice(1),O.forEach(D=>{var F=m.node(D).parent,L=k.edge(D,F),N=!1;L||(L=k.edge(F,D),N=!0),k.node(D).rank=k.node(F).rank+(N?L.minlen:-L.minlen)})}function v(m,k,S){return m.hasEdge(k,S)}function p(m,k,S){return S.low<=k.lim&&k.lim<=S.lim}}),Mg=re((e,t)=>{var n=en(),r=n.longestPath,o=ds(),i=Cg();t.exports=s;function s(d){var l=d.graph().ranker;if(l instanceof Function)return l(d);switch(d.graph().ranker){case"network-simplex":u(d);break;case"tight-tree":a(d);break;case"longest-path":c(d);break;case"none":break;default:u(d)}}var c=r;function a(d){r(d),o(d)}function u(d){i(d)}}),Ig=re((e,t)=>{t.exports=n;function n(i){let s=o(i);i.graph().dummyChains.forEach(c=>{let a=i.node(c),u=a.edgeObj,d=r(i,s,u.v,u.w),l=d.path,f=d.lca,h=0,g=l[h],x=!0;for(;c!==u.w;){if(a=i.node(c),x){for(;(g=l[h])!==f&&i.node(g).maxRank<a.rank;)h++;g===f&&(x=!1)}if(!x){for(;h<l.length-1&&i.node(g=l[h+1]).minRank<=a.rank;)h++;g=l[h]}i.setParent(c,g),c=i.successors(c)[0]}})}function r(i,s,c,a){let u=[],d=[],l=Math.min(s[c].low,s[a].low),f=Math.max(s[c].lim,s[a].lim),h,g;h=c;do h=i.parent(h),u.push(h);while(h&&(s[h].low>l||f>s[h].lim));for(g=h,h=a;(h=i.parent(h))!==g;)d.push(h);return{path:u.concat(d.reverse()),lca:g}}function o(i){let s={},c=0;function a(u){let d=c;i.children(u).forEach(a),s[u]={low:d,lim:c++}}return i.children().forEach(a),s}}),Ag=re((e,t)=>{var n=se();t.exports={run:r,cleanup:c};function r(a){let u=n.addDummyNode(a,"root",{},"_root"),d=i(a),l=Object.values(d),f=n.applyWithChunking(Math.max,l)-1,h=2*f+1;a.graph().nestingRoot=u,a.edges().forEach(x=>a.edge(x).minlen*=h);let g=s(a)+1;a.children().forEach(x=>o(a,u,h,g,f,d,x)),a.graph().nodeRankFactor=h}function o(a,u,d,l,f,h,g){let x=a.children(g);if(!x.length){g!==u&&a.setEdge(u,g,{weight:0,minlen:d});return}let b=n.addBorderNode(a,"_bt"),w=n.addBorderNode(a,"_bb"),v=a.node(g);a.setParent(b,g),v.borderTop=b,a.setParent(w,g),v.borderBottom=w,x.forEach(p=>{o(a,u,d,l,f,h,p);let m=a.node(p),k=m.borderTop?m.borderTop:p,S=m.borderBottom?m.borderBottom:p,O=m.borderTop?l:2*l,D=k!==S?1:f-h[g]+1;a.setEdge(b,k,{weight:O,minlen:D,nestingEdge:!0}),a.setEdge(S,w,{weight:O,minlen:D,nestingEdge:!0})}),a.parent(g)||a.setEdge(u,b,{weight:0,minlen:f+h[g]})}function i(a){var u={};function d(l,f){var h=a.children(l);h&&h.length&&h.forEach(g=>d(g,f+1)),u[l]=f}return a.children().forEach(l=>d(l,1)),u}function s(a){return a.edges().reduce((u,d)=>u+a.edge(d).weight,0)}function c(a){var u=a.graph();a.removeNode(u.nestingRoot),delete u.nestingRoot,a.edges().forEach(d=>{var l=a.edge(d);l.nestingEdge&&a.removeEdge(d)})}}),Tg=re((e,t)=>{var n=se();t.exports=r;function r(i){function s(c){let a=i.children(c),u=i.node(c);if(a.length&&a.forEach(s),Object.hasOwn(u,"minRank")){u.borderLeft=[],u.borderRight=[];for(let d=u.minRank,l=u.maxRank+1;d<l;++d)o(i,"borderLeft","_bl",c,u,d),o(i,"borderRight","_br",c,u,d)}}i.children().forEach(s)}function o(i,s,c,a,u,d){let l={width:0,height:0,rank:d,borderType:s},f=u[s][d-1],h=n.addDummyNode(i,"border",l,c);u[s][d]=h,i.setParent(h,a),f&&i.setEdge(f,h,{weight:1})}}),Og=re((e,t)=>{t.exports={adjust:n,undo:r};function n(d){let l=d.graph().rankdir.toLowerCase();(l==="lr"||l==="rl")&&o(d)}function r(d){let l=d.graph().rankdir.toLowerCase();(l==="bt"||l==="rl")&&s(d),(l==="lr"||l==="rl")&&(a(d),o(d))}function o(d){d.nodes().forEach(l=>i(d.node(l))),d.edges().forEach(l=>i(d.edge(l)))}function i(d){let l=d.width;d.width=d.height,d.height=l}function s(d){d.nodes().forEach(l=>c(d.node(l))),d.edges().forEach(l=>{let f=d.edge(l);f.points.forEach(c),Object.hasOwn(f,"y")&&c(f)})}function c(d){d.y=-d.y}function a(d){d.nodes().forEach(l=>u(d.node(l))),d.edges().forEach(l=>{let f=d.edge(l);f.points.forEach(u),Object.hasOwn(f,"x")&&u(f)})}function u(d){let l=d.x;d.x=d.y,d.y=l}}),Pg=re((e,t)=>{var n=se();t.exports=r;function r(o){let i={},s=o.nodes().filter(l=>!o.children(l).length),c=s.map(l=>o.node(l).rank),a=n.applyWithChunking(Math.max,c),u=n.range(a+1).map(()=>[]);function d(l){if(i[l])return;i[l]=!0;let f=o.node(l);u[f.rank].push(l),o.successors(l).forEach(d)}return s.sort((l,f)=>o.node(l).rank-o.node(f).rank).forEach(d),u}}),$g=re((e,t)=>{var n=se().zipObject;t.exports=r;function r(i,s){let c=0;for(let a=1;a<s.length;++a)c+=o(i,s[a-1],s[a]);return c}function o(i,s,c){let a=n(c,c.map((g,x)=>x)),u=s.flatMap(g=>i.outEdges(g).map(x=>({pos:a[x.w],weight:i.edge(x).weight})).sort((x,b)=>x.pos-b.pos)),d=1;for(;d<c.length;)d<<=1;let l=2*d-1;d-=1;let f=new Array(l).fill(0),h=0;return u.forEach(g=>{let x=g.pos+d;f[x]+=g.weight;let b=0;for(;x>0;)x%2&&(b+=f[x+1]),x=x-1>>1,f[x]+=g.weight;h+=g.weight*b}),h}}),Lg=re((e,t)=>{t.exports=n;function n(r,o=[]){return o.map(i=>{let s=r.inEdges(i);if(s.length){let c=s.reduce((a,u)=>{let d=r.edge(u),l=r.node(u.v);return{sum:a.sum+d.weight*l.order,weight:a.weight+d.weight}},{sum:0,weight:0});return{v:i,barycenter:c.sum/c.weight,weight:c.weight}}else return{v:i}})}}),Rg=re((e,t)=>{var n=se();t.exports=r;function r(s,c){let a={};s.forEach((d,l)=>{let f=a[d.v]={indegree:0,in:[],out:[],vs:[d.v],i:l};d.barycenter!==void 0&&(f.barycenter=d.barycenter,f.weight=d.weight)}),c.edges().forEach(d=>{let l=a[d.v],f=a[d.w];l!==void 0&&f!==void 0&&(f.indegree++,l.out.push(a[d.w]))});let u=Object.values(a).filter(d=>!d.indegree);return o(u)}function o(s){let c=[];function a(d){return l=>{l.merged||(l.barycenter===void 0||d.barycenter===void 0||l.barycenter>=d.barycenter)&&i(d,l)}}function u(d){return l=>{l.in.push(d),--l.indegree===0&&s.push(l)}}for(;s.length;){let d=s.pop();c.push(d),d.in.reverse().forEach(a(d)),d.out.forEach(u(d))}return c.filter(d=>!d.merged).map(d=>n.pick(d,["vs","i","barycenter","weight"]))}function i(s,c){let a=0,u=0;s.weight&&(a+=s.barycenter*s.weight,u+=s.weight),c.weight&&(a+=c.barycenter*c.weight,u+=c.weight),s.vs=c.vs.concat(s.vs),s.barycenter=a/u,s.weight=u,s.i=Math.min(c.i,s.i),c.merged=!0}}),Dg=re((e,t)=>{var n=se();t.exports=r;function r(s,c){let a=n.partition(s,b=>Object.hasOwn(b,"barycenter")),u=a.lhs,d=a.rhs.sort((b,w)=>w.i-b.i),l=[],f=0,h=0,g=0;u.sort(i(!!c)),g=o(l,d,g),u.forEach(b=>{g+=b.vs.length,l.push(b.vs),f+=b.barycenter*b.weight,h+=b.weight,g=o(l,d,g)});let x={vs:l.flat(!0)};return h&&(x.barycenter=f/h,x.weight=h),x}function o(s,c,a){let u;for(;c.length&&(u=c[c.length-1]).i<=a;)c.pop(),s.push(u.vs),a++;return a}function i(s){return(c,a)=>c.barycenter<a.barycenter?-1:c.barycenter>a.barycenter?1:s?a.i-c.i:c.i-a.i}}),zg=re((e,t)=>{var n=Lg(),r=Rg(),o=Dg();t.exports=i;function i(a,u,d,l){let f=a.children(u),h=a.node(u),g=h?h.borderLeft:void 0,x=h?h.borderRight:void 0,b={};g&&(f=f.filter(m=>m!==g&&m!==x));let w=n(a,f);w.forEach(m=>{if(a.children(m.v).length){let k=i(a,m.v,d,l);b[m.v]=k,Object.hasOwn(k,"barycenter")&&c(m,k)}});let v=r(w,d);s(v,b);let p=o(v,l);if(g&&(p.vs=[g,p.vs,x].flat(!0),a.predecessors(g).length)){let m=a.node(a.predecessors(g)[0]),k=a.node(a.predecessors(x)[0]);Object.hasOwn(p,"barycenter")||(p.barycenter=0,p.weight=0),p.barycenter=(p.barycenter*p.weight+m.order+k.order)/(p.weight+2),p.weight+=2}return p}function s(a,u){a.forEach(d=>{d.vs=d.vs.flatMap(l=>u[l]?u[l].vs:l)})}function c(a,u){a.barycenter!==void 0?(a.barycenter=(a.barycenter*a.weight+u.barycenter*u.weight)/(a.weight+u.weight),a.weight+=u.weight):(a.barycenter=u.barycenter,a.weight=u.weight)}}),jg=re((e,t)=>{var n=xe().Graph,r=se();t.exports=o;function o(s,c,a,u){u||(u=s.nodes());let d=i(s),l=new n({compound:!0}).setGraph({root:d}).setDefaultNodeLabel(f=>s.node(f));return u.forEach(f=>{let h=s.node(f),g=s.parent(f);(h.rank===c||h.minRank<=c&&c<=h.maxRank)&&(l.setNode(f),l.setParent(f,g||d),s[a](f).forEach(x=>{let b=x.v===f?x.w:x.v,w=l.edge(b,f),v=w!==void 0?w.weight:0;l.setEdge(b,f,{weight:s.edge(x).weight+v})}),Object.hasOwn(h,"minRank")&&l.setNode(f,{borderLeft:h.borderLeft[c],borderRight:h.borderRight[c]}))}),l}function i(s){for(var c;s.hasNode(c=r.uniqueId("_root")););return c}}),Hg=re((e,t)=>{t.exports=n;function n(r,o,i){let s={},c;i.forEach(a=>{let u=r.parent(a),d,l;for(;u;){if(d=r.parent(u),d?(l=s[d],s[d]=u):(l=c,c=u),l&&l!==u){o.setEdge(l,u);return}u=d}})}}),Vg=re((e,t)=>{var n=Pg(),r=$g(),o=zg(),i=jg(),s=Hg(),c=xe().Graph,a=se();t.exports=u;function u(h,g={}){if(typeof g.customOrder=="function"){g.customOrder(h,u);return}let x=a.maxRank(h),b=d(h,a.range(1,x+1),"inEdges"),w=d(h,a.range(x-1,-1,-1),"outEdges"),v=n(h);if(f(h,v),g.disableOptimalOrderHeuristic)return;let p=Number.POSITIVE_INFINITY,m,k=g.constraints||[];for(let S=0,O=0;O<4;++S,++O){l(S%2?b:w,S%4>=2,k),v=a.buildLayerMatrix(h);let D=r(h,v);D<p?(O=0,m=Object.assign({},v),p=D):D===p&&(m=structuredClone(v))}f(h,m)}function d(h,g,x){let b=new Map,w=(v,p)=>{b.has(v)||b.set(v,[]),b.get(v).push(p)};for(let v of h.nodes()){let p=h.node(v);if(typeof p.rank=="number"&&w(p.rank,v),typeof p.minRank=="number"&&typeof p.maxRank=="number")for(let m=p.minRank;m<=p.maxRank;m++)m!==p.rank&&w(m,v)}return g.map(function(v){return i(h,v,x,b.get(v)||[])})}function l(h,g,x){let b=new c;h.forEach(function(w){x.forEach(m=>b.setEdge(m.left,m.right));let v=w.graph().root,p=o(w,v,b,g);p.vs.forEach((m,k)=>w.node(m).order=k),s(w,b,p.vs)})}function f(h,g){Object.values(g).forEach(x=>x.forEach((b,w)=>h.node(b).order=w))}}),Fg=re((e,t)=>{var n=xe().Graph,r=se();t.exports={positionX:x,findType1Conflicts:o,findType2Conflicts:i,addConflict:c,hasConflict:a,verticalAlignment:u,horizontalCompaction:d,alignCoordinates:h,findSmallestWidthAlignment:f,balance:g};function o(v,p){let m={};function k(S,O){let D=0,F=0,L=S.length,N=O[O.length-1];return O.forEach((T,$)=>{let y=s(v,T),P=y?v.node(y).order:L;(y||T===N)&&(O.slice(F,$+1).forEach(E=>{v.predecessors(E).forEach(I=>{let C=v.node(I),M=C.order;(M<D||P<M)&&!(C.dummy&&v.node(E).dummy)&&c(m,I,E)})}),F=$+1,D=P)}),O}return p.length&&p.reduce(k),m}function i(v,p){let m={};function k(O,D,F,L,N){let T;r.range(D,F).forEach($=>{T=O[$],v.node(T).dummy&&v.predecessors(T).forEach(y=>{let P=v.node(y);P.dummy&&(P.order<L||P.order>N)&&c(m,y,T)})})}function S(O,D){let F=-1,L,N=0;return D.forEach((T,$)=>{if(v.node(T).dummy==="border"){let y=v.predecessors(T);y.length&&(L=v.node(y[0]).order,k(D,N,$,F,L),N=$,F=L)}k(D,N,D.length,L,O.length)}),D}return p.length&&p.reduce(S),m}function s(v,p){if(v.node(p).dummy)return v.predecessors(p).find(m=>v.node(m).dummy)}function c(v,p,m){if(p>m){let S=p;p=m,m=S}let k=v[p];k||(v[p]=k={}),k[m]=!0}function a(v,p,m){if(p>m){let k=p;p=m,m=k}return!!v[p]&&Object.hasOwn(v[p],m)}function u(v,p,m,k){let S={},O={},D={};return p.forEach(F=>{F.forEach((L,N)=>{S[L]=L,O[L]=L,D[L]=N})}),p.forEach(F=>{let L=-1;F.forEach(N=>{let T=k(N);if(T.length){T=T.sort((y,P)=>D[y]-D[P]);let $=(T.length-1)/2;for(let y=Math.floor($),P=Math.ceil($);y<=P;++y){let E=T[y];O[N]===N&&L<D[E]&&!a(m,N,E)&&(O[E]=N,O[N]=S[N]=S[E],L=D[E])}}})}),{root:S,align:O}}function d(v,p,m,k,S){let O={},D=l(v,p,m,S),F=S?"borderLeft":"borderRight";function L($,y){let P=D.nodes().slice(),E={},I=P.pop();for(;I;){if(E[I])$(I);else{E[I]=!0,P.push(I);for(let C of y(I))P.push(C)}I=P.pop()}}function N($){O[$]=D.inEdges($).reduce((y,P)=>Math.max(y,O[P.v]+D.edge(P)),0)}function T($){let y=D.outEdges($).reduce((E,I)=>Math.min(E,O[I.w]-D.edge(I)),Number.POSITIVE_INFINITY),P=v.node($);y!==Number.POSITIVE_INFINITY&&P.borderType!==F&&(O[$]=Math.max(O[$],y))}return L(N,D.predecessors.bind(D)),L(T,D.successors.bind(D)),Object.keys(k).forEach($=>O[$]=O[m[$]]),O}function l(v,p,m,k){let S=new n,O=v.graph(),D=b(O.nodesep,O.edgesep,k);return p.forEach(F=>{let L;F.forEach(N=>{let T=m[N];if(S.setNode(T),L){var $=m[L],y=S.edge($,T);S.setEdge($,T,Math.max(D(v,N,L),y||0))}L=N})}),S}function f(v,p){return Object.values(p).reduce((m,k)=>{let S=Number.NEGATIVE_INFINITY,O=Number.POSITIVE_INFINITY;Object.entries(k).forEach(([F,L])=>{let N=w(v,F)/2;S=Math.max(L+N,S),O=Math.min(L-N,O)});let D=S-O;return D<m[0]&&(m=[D,k]),m},[Number.POSITIVE_INFINITY,null])[1]}function h(v,p){let m=Object.values(p),k=r.applyWithChunking(Math.min,m),S=r.applyWithChunking(Math.max,m);["u","d"].forEach(O=>{["l","r"].forEach(D=>{let F=O+D,L=v[F];if(L===p)return;let N=Object.values(L),T=k-r.applyWithChunking(Math.min,N);D!=="l"&&(T=S-r.applyWithChunking(Math.max,N)),T&&(v[F]=r.mapValues(L,$=>$+T))})})}function g(v,p){return r.mapValues(v.ul,(m,k)=>{if(p)return v[p.toLowerCase()][k];{let S=Object.values(v).map(O=>O[k]).sort((O,D)=>O-D);return(S[1]+S[2])/2}})}function x(v){let p=r.buildLayerMatrix(v),m=Object.assign(o(v,p),i(v,p)),k={},S;["u","d"].forEach(D=>{S=D==="u"?p:Object.values(p).reverse(),["l","r"].forEach(F=>{F==="r"&&(S=S.map($=>Object.values($).reverse()));let L=(D==="u"?v.predecessors:v.successors).bind(v),N=u(v,S,m,L),T=d(v,S,N.root,N.align,F==="r");F==="r"&&(T=r.mapValues(T,$=>-$)),k[D+F]=T})});let O=f(v,k);return h(k,O),g(k,v.graph().align)}function b(v,p,m){return(k,S,O)=>{let D=k.node(S),F=k.node(O),L=0,N;if(L+=D.width/2,Object.hasOwn(D,"labelpos"))switch(D.labelpos.toLowerCase()){case"l":N=-D.width/2;break;case"r":N=D.width/2;break}if(N&&(L+=m?N:-N),N=0,L+=(D.dummy?p:v)/2,L+=(F.dummy?p:v)/2,L+=F.width/2,Object.hasOwn(F,"labelpos"))switch(F.labelpos.toLowerCase()){case"l":N=F.width/2;break;case"r":N=-F.width/2;break}return N&&(L+=m?N:-N),N=0,L}}function w(v,p){return v.node(p).width}}),Bg=re((e,t)=>{var n=se(),r=Fg().positionX;t.exports=o;function o(s){s=n.asNonCompoundGraph(s),i(s),Object.entries(r(s)).forEach(([c,a])=>s.node(c).x=a)}function i(s){let c=n.buildLayerMatrix(s),a=s.graph().ranksep,u=s.graph().rankalign,d=0;c.forEach(l=>{let f=l.reduce((h,g)=>{let x=s.node(g).height;return h>x?h:x},0);l.forEach(h=>{let g=s.node(h);u==="top"?g.y=d+g.height/2:u==="bottom"?g.y=d+f-g.height/2:g.y=d+f/2}),d+=f+a})}}),Yg=re((e,t)=>{var n=Sg(),r=kg(),o=Mg(),i=se().normalizeRanks,s=Ig(),c=se().removeEmptyRanks,a=Ag(),u=Tg(),d=Og(),l=Vg(),f=Bg(),h=se(),g=xe().Graph;t.exports=x;function x(_,R={}){let H=R.debugTiming?h.time:h.notime;return H("layout",()=>{let j=H(" buildLayoutGraph",()=>L(_));return H(" runLayout",()=>b(j,H,R)),H(" updateInputGraph",()=>w(_,j)),j})}function b(_,R,H){R(" makeSpaceForEdgeLabels",()=>N(_)),R(" removeSelfEdges",()=>z(_)),R(" acyclic",()=>n.run(_)),R(" nestingGraph.run",()=>a.run(_)),R(" rank",()=>o(h.asNonCompoundGraph(_))),R(" injectEdgeLabelProxies",()=>T(_)),R(" removeEmptyRanks",()=>c(_)),R(" nestingGraph.cleanup",()=>a.cleanup(_)),R(" normalizeRanks",()=>i(_)),R(" assignRankMinMax",()=>$(_)),R(" removeEdgeLabelProxies",()=>y(_)),R(" normalize.run",()=>r.run(_)),R(" parentDummyChains",()=>s(_)),R(" addBorderSegments",()=>u(_)),R(" order",()=>l(_,H)),R(" insertSelfEdges",()=>V(_)),R(" adjustCoordinateSystem",()=>d.adjust(_)),R(" position",()=>f(_)),R(" positionSelfEdges",()=>B(_)),R(" removeBorderNodes",()=>M(_)),R(" normalize.undo",()=>r.undo(_)),R(" fixupEdgeLabelCoords",()=>I(_)),R(" undoCoordinateSystem",()=>d.undo(_)),R(" translateGraph",()=>P(_)),R(" assignNodeIntersects",()=>E(_)),R(" reversePoints",()=>C(_)),R(" acyclic.undo",()=>n.undo(_))}function w(_,R){_.nodes().forEach(H=>{let j=_.node(H),Y=R.node(H);j&&(j.x=Y.x,j.y=Y.y,j.order=Y.order,j.rank=Y.rank,R.children(H).length&&(j.width=Y.width,j.height=Y.height))}),_.edges().forEach(H=>{let j=_.edge(H),Y=R.edge(H);j.points=Y.points,Object.hasOwn(Y,"x")&&(j.x=Y.x,j.y=Y.y)}),_.graph().width=R.graph().width,_.graph().height=R.graph().height}var v=["nodesep","edgesep","ranksep","marginx","marginy"],p={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb",rankalign:"center"},m=["acyclicer","ranker","rankdir","align","rankalign"],k=["width","height","rank"],S={width:0,height:0},O=["minlen","weight","width","height","labeloffset"],D={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},F=["labelpos"];function L(_){let R=new g({multigraph:!0,compound:!0}),H=A(_.graph());return R.setGraph(Object.assign({},p,X(H,v),h.pick(H,m))),_.nodes().forEach(j=>{let Y=A(_.node(j)),q=X(Y,k);Object.keys(S).forEach(U=>{q[U]===void 0&&(q[U]=S[U])}),R.setNode(j,q),R.setParent(j,_.parent(j))}),_.edges().forEach(j=>{let Y=A(_.edge(j));R.setEdge(j,Object.assign({},D,X(Y,O),h.pick(Y,F)))}),R}function N(_){let R=_.graph();R.ranksep/=2,_.edges().forEach(H=>{let j=_.edge(H);j.minlen*=2,j.labelpos.toLowerCase()!=="c"&&(R.rankdir==="TB"||R.rankdir==="BT"?j.width+=j.labeloffset:j.height+=j.labeloffset)})}function T(_){_.edges().forEach(R=>{let H=_.edge(R);if(H.width&&H.height){let j=_.node(R.v),Y={rank:(_.node(R.w).rank-j.rank)/2+j.rank,e:R};h.addDummyNode(_,"edge-proxy",Y,"_ep")}})}function $(_){let R=0;_.nodes().forEach(H=>{let j=_.node(H);j.borderTop&&(j.minRank=_.node(j.borderTop).rank,j.maxRank=_.node(j.borderBottom).rank,R=Math.max(R,j.maxRank))}),_.graph().maxRank=R}function y(_){_.nodes().forEach(R=>{let H=_.node(R);H.dummy==="edge-proxy"&&(_.edge(H.e).labelRank=H.rank,_.removeNode(R))})}function P(_){let R=Number.POSITIVE_INFINITY,H=0,j=Number.POSITIVE_INFINITY,Y=0,q=_.graph(),U=q.marginx||0,K=q.marginy||0;function Z(J){let ee=J.x,te=J.y,ce=J.width,he=J.height;R=Math.min(R,ee-ce/2),H=Math.max(H,ee+ce/2),j=Math.min(j,te-he/2),Y=Math.max(Y,te+he/2)}_.nodes().forEach(J=>Z(_.node(J))),_.edges().forEach(J=>{let ee=_.edge(J);Object.hasOwn(ee,"x")&&Z(ee)}),R-=U,j-=K,_.nodes().forEach(J=>{let ee=_.node(J);ee.x-=R,ee.y-=j}),_.edges().forEach(J=>{let ee=_.edge(J);ee.points.forEach(te=>{te.x-=R,te.y-=j}),Object.hasOwn(ee,"x")&&(ee.x-=R),Object.hasOwn(ee,"y")&&(ee.y-=j)}),q.width=H-R+U,q.height=Y-j+K}function E(_){_.edges().forEach(R=>{let H=_.edge(R),j=_.node(R.v),Y=_.node(R.w),q,U;H.points?(q=H.points[0],U=H.points[H.points.length-1]):(H.points=[],q=Y,U=j),H.points.unshift(h.intersectRect(j,q)),H.points.push(h.intersectRect(Y,U))})}function I(_){_.edges().forEach(R=>{let H=_.edge(R);if(Object.hasOwn(H,"x"))switch((H.labelpos==="l"||H.labelpos==="r")&&(H.width-=H.labeloffset),H.labelpos){case"l":H.x-=H.width/2+H.labeloffset;break;case"r":H.x+=H.width/2+H.labeloffset;break}})}function C(_){_.edges().forEach(R=>{let H=_.edge(R);H.reversed&&H.points.reverse()})}function M(_){_.nodes().forEach(R=>{if(_.children(R).length){let H=_.node(R),j=_.node(H.borderTop),Y=_.node(H.borderBottom),q=_.node(H.borderLeft[H.borderLeft.length-1]),U=_.node(H.borderRight[H.borderRight.length-1]);H.width=Math.abs(U.x-q.x),H.height=Math.abs(Y.y-j.y),H.x=q.x+H.width/2,H.y=j.y+H.height/2}}),_.nodes().forEach(R=>{_.node(R).dummy==="border"&&_.removeNode(R)})}function z(_){_.edges().forEach(R=>{if(R.v===R.w){var H=_.node(R.v);H.selfEdges||(H.selfEdges=[]),H.selfEdges.push({e:R,label:_.edge(R)}),_.removeEdge(R)}})}function V(_){var R=h.buildLayerMatrix(_);R.forEach(H=>{var j=0;H.forEach((Y,q)=>{var U=_.node(Y);U.order=q+j,(U.selfEdges||[]).forEach(K=>{h.addDummyNode(_,"selfedge",{width:K.label.width,height:K.label.height,rank:U.rank,order:q+ ++j,e:K.e,label:K.label},"_se")}),delete U.selfEdges})})}function B(_){_.nodes().forEach(R=>{var H=_.node(R);if(H.dummy==="selfedge"){var j=_.node(H.e.v),Y=j.x+j.width/2,q=j.y,U=H.x-Y,K=j.height/2;_.setEdge(H.e,H.label),_.removeNode(R),H.label.points=[{x:Y+2*U/3,y:q-K},{x:Y+5*U/6,y:q-K},{x:Y+U,y:q},{x:Y+5*U/6,y:q+K},{x:Y+2*U/3,y:q+K}],H.label.x=H.x,H.label.y=H.y}})}function X(_,R){return h.mapValues(h.pick(_,R),Number)}function A(_){var R={};return _&&Object.entries(_).forEach(([H,j])=>{typeof H=="string"&&(H=H.toLowerCase()),R[H]=j}),R}}),Xg=re((e,t)=>{var n=se(),r=xe().Graph;t.exports={debugOrdering:o};function o(i){let s=n.buildLayerMatrix(i),c=new r({compound:!0,multigraph:!0}).setGraph({});return i.nodes().forEach(a=>{c.setNode(a,{label:a}),c.setParent(a,"layer"+i.node(a).rank)}),i.edges().forEach(a=>c.setEdge(a.v,a.w,{},a.name)),s.forEach((a,u)=>{let d="layer"+u;c.setNode(d,{rank:"same"}),a.reduce((l,f)=>(c.setEdge(l,f,{style:"invis"}),f))}),c}}),Wg=re((e,t)=>{t.exports="2.0.4"}),Gg=re((e,t)=>{t.exports={graphlib:xe(),layout:Yg(),debug:Xg(),util:{time:se().time,notime:se().notime},version:Wg()}});const Jg=Gg();/*! For license information please see dagre.esm.js.LEGAL.txt */export{Kg as B,Zg as C,Qt as H,Qg as M,Q as P,Oe as a,Jg as d,Ug as i,xa as r};
|
|
31
|
+
M${D.x},${D.y}h${D.width}v${D.height}h${-D.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}ls.displayName="MiniMap";const Qg=G.memo(ls),vg=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,bg={[et.Line]:"right",[et.Handle]:"bottom-right"};function _g({nodeId:e,position:t,variant:n=et.Handle,className:r,style:o=void 0,children:i,color:s,minWidth:c=10,minHeight:a=10,maxWidth:u=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:l=!1,resizeDirection:f,autoScale:h=!0,shouldResize:g,onResizeStart:x,onResize:b,onResizeEnd:w}){const v=Fi(),p=typeof e=="string"?e:v,m=ie(),k=G.useRef(null),S=n===et.Handle,O=ne(G.useCallback(vg(S&&h),[S,h]),oe),D=G.useRef(null),F=t??bg[n];G.useEffect(()=>{if(!(!k.current||!p))return D.current||(D.current=Kd({domNode:k.current,nodeId:p,getStoreItems:()=>{const{nodeLookup:N,transform:T,snapGrid:$,snapToGrid:y,nodeOrigin:P,domNode:E}=m.getState();return{nodeLookup:N,transform:T,snapGrid:$,snapToGrid:y,nodeOrigin:P,paneDomNode:E}},onChange:(N,T)=>{const{triggerNodeChanges:$,nodeLookup:y,parentLookup:P,nodeOrigin:E}=m.getState(),I=[],C={x:N.x,y:N.y},M=y.get(p);if(M&&M.expandParent&&M.parentId){const z=M.origin??E,V=N.width??M.measured.width??0,B=N.height??M.measured.height??0,X={id:M.id,parentId:M.parentId,rect:{width:V,height:B,...hi({x:N.x??M.position.x,y:N.y??M.position.y},{width:V,height:B},M.parentId,y,z)}},A=ar([X],y,P,E);I.push(...A),C.x=N.x?Math.max(z[0]*V,N.x):void 0,C.y=N.y?Math.max(z[1]*B,N.y):void 0}if(C.x!==void 0&&C.y!==void 0){const z={id:p,type:"position",position:{...C}};I.push(z)}if(N.width!==void 0&&N.height!==void 0){const V={id:p,type:"dimensions",resizing:!0,setAttributes:f?f==="horizontal"?"width":"height":!0,dimensions:{width:N.width,height:N.height}};I.push(V)}for(const z of T){const V={...z,type:"position"};I.push(V)}$(I)},onEnd:({width:N,height:T})=>{const $={id:p,type:"dimensions",resizing:!1,dimensions:{width:N,height:T}};m.getState().triggerNodeChanges([$])}})),D.current.update({controlPosition:F,boundaries:{minWidth:c,minHeight:a,maxWidth:u,maxHeight:d},keepAspectRatio:l,resizeDirection:f,onResizeStart:x,onResize:b,onResizeEnd:w,shouldResize:g}),()=>{var N;(N=D.current)==null||N.destroy()}},[F,c,a,u,d,l,x,b,w,g]);const L=F.split("-");return W.jsx("div",{className:ae(["react-flow__resize-control","nodrag",...L,n,r]),ref:k,style:{...o,scale:O,...s&&{[S?"backgroundColor":"borderColor"]:s}},children:i})}G.memo(_g);var re=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),xe=re((e,t)=>{var n=Object.defineProperty,r=($,y,P)=>y in $?n($,y,{enumerable:!0,configurable:!0,writable:!0,value:P}):$[y]=P,o=($,y)=>()=>(y||$((y={exports:{}}).exports,y),y.exports),i=($,y,P)=>r($,typeof y!="symbol"?y+"":y,P),s=o(($,y)=>{var P="\0",E="\0",I="",C=class{constructor(A){i(this,"_isDirected",!0),i(this,"_isMultigraph",!1),i(this,"_isCompound",!1),i(this,"_label"),i(this,"_defaultNodeLabelFn",()=>{}),i(this,"_defaultEdgeLabelFn",()=>{}),i(this,"_nodes",{}),i(this,"_in",{}),i(this,"_preds",{}),i(this,"_out",{}),i(this,"_sucs",{}),i(this,"_edgeObjs",{}),i(this,"_edgeLabels",{}),i(this,"_nodeCount",0),i(this,"_edgeCount",0),i(this,"_parent"),i(this,"_children"),A&&(this._isDirected=Object.hasOwn(A,"directed")?A.directed:!0,this._isMultigraph=Object.hasOwn(A,"multigraph")?A.multigraph:!1,this._isCompound=Object.hasOwn(A,"compound")?A.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[E]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(A){return this._label=A,this}graph(){return this._label}setDefaultNodeLabel(A){return this._defaultNodeLabelFn=A,typeof A!="function"&&(this._defaultNodeLabelFn=()=>A),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var A=this;return this.nodes().filter(_=>Object.keys(A._in[_]).length===0)}sinks(){var A=this;return this.nodes().filter(_=>Object.keys(A._out[_]).length===0)}setNodes(A,_){var R=arguments,H=this;return A.forEach(function(j){R.length>1?H.setNode(j,_):H.setNode(j)}),this}setNode(A,_){return Object.hasOwn(this._nodes,A)?(arguments.length>1&&(this._nodes[A]=_),this):(this._nodes[A]=arguments.length>1?_:this._defaultNodeLabelFn(A),this._isCompound&&(this._parent[A]=E,this._children[A]={},this._children[E][A]=!0),this._in[A]={},this._preds[A]={},this._out[A]={},this._sucs[A]={},++this._nodeCount,this)}node(A){return this._nodes[A]}hasNode(A){return Object.hasOwn(this._nodes,A)}removeNode(A){var _=this;if(Object.hasOwn(this._nodes,A)){var R=H=>_.removeEdge(_._edgeObjs[H]);delete this._nodes[A],this._isCompound&&(this._removeFromParentsChildList(A),delete this._parent[A],this.children(A).forEach(function(H){_.setParent(H)}),delete this._children[A]),Object.keys(this._in[A]).forEach(R),delete this._in[A],delete this._preds[A],Object.keys(this._out[A]).forEach(R),delete this._out[A],delete this._sucs[A],--this._nodeCount}return this}setParent(A,_){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(_===void 0)_=E;else{_+="";for(var R=_;R!==void 0;R=this.parent(R))if(R===A)throw new Error("Setting "+_+" as parent of "+A+" would create a cycle");this.setNode(_)}return this.setNode(A),this._removeFromParentsChildList(A),this._parent[A]=_,this._children[_][A]=!0,this}_removeFromParentsChildList(A){delete this._children[this._parent[A]][A]}parent(A){if(this._isCompound){var _=this._parent[A];if(_!==E)return _}}children(A=E){if(this._isCompound){var _=this._children[A];if(_)return Object.keys(_)}else{if(A===E)return this.nodes();if(this.hasNode(A))return[]}}predecessors(A){var _=this._preds[A];if(_)return Object.keys(_)}successors(A){var _=this._sucs[A];if(_)return Object.keys(_)}neighbors(A){var _=this.predecessors(A);if(_){let H=new Set(_);for(var R of this.successors(A))H.add(R);return Array.from(H.values())}}isLeaf(A){var _;return this.isDirected()?_=this.successors(A):_=this.neighbors(A),_.length===0}filterNodes(A){var _=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});_.setGraph(this.graph());var R=this;Object.entries(this._nodes).forEach(function([Y,q]){A(Y)&&_.setNode(Y,q)}),Object.values(this._edgeObjs).forEach(function(Y){_.hasNode(Y.v)&&_.hasNode(Y.w)&&_.setEdge(Y,R.edge(Y))});var H={};function j(Y){var q=R.parent(Y);return q===void 0||_.hasNode(q)?(H[Y]=q,q):q in H?H[q]:j(q)}return this._isCompound&&_.nodes().forEach(Y=>_.setParent(Y,j(Y))),_}setDefaultEdgeLabel(A){return this._defaultEdgeLabelFn=A,typeof A!="function"&&(this._defaultEdgeLabelFn=()=>A),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(A,_){var R=this,H=arguments;return A.reduce(function(j,Y){return H.length>1?R.setEdge(j,Y,_):R.setEdge(j,Y),Y}),this}setEdge(){var A,_,R,H,j=!1,Y=arguments[0];typeof Y=="object"&&Y!==null&&"v"in Y?(A=Y.v,_=Y.w,R=Y.name,arguments.length===2&&(H=arguments[1],j=!0)):(A=Y,_=arguments[1],R=arguments[3],arguments.length>2&&(H=arguments[2],j=!0)),A=""+A,_=""+_,R!==void 0&&(R=""+R);var q=V(this._isDirected,A,_,R);if(Object.hasOwn(this._edgeLabels,q))return j&&(this._edgeLabels[q]=H),this;if(R!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(A),this.setNode(_),this._edgeLabels[q]=j?H:this._defaultEdgeLabelFn(A,_,R);var U=B(this._isDirected,A,_,R);return A=U.v,_=U.w,Object.freeze(U),this._edgeObjs[q]=U,M(this._preds[_],A),M(this._sucs[A],_),this._in[_][q]=U,this._out[A][q]=U,this._edgeCount++,this}edge(A,_,R){var H=arguments.length===1?X(this._isDirected,arguments[0]):V(this._isDirected,A,_,R);return this._edgeLabels[H]}edgeAsObj(){let A=this.edge(...arguments);return typeof A!="object"?{label:A}:A}hasEdge(A,_,R){var H=arguments.length===1?X(this._isDirected,arguments[0]):V(this._isDirected,A,_,R);return Object.hasOwn(this._edgeLabels,H)}removeEdge(A,_,R){var H=arguments.length===1?X(this._isDirected,arguments[0]):V(this._isDirected,A,_,R),j=this._edgeObjs[H];return j&&(A=j.v,_=j.w,delete this._edgeLabels[H],delete this._edgeObjs[H],z(this._preds[_],A),z(this._sucs[A],_),delete this._in[_][H],delete this._out[A][H],this._edgeCount--),this}inEdges(A,_){return this.isDirected()?this.filterEdges(this._in[A],A,_):this.nodeEdges(A,_)}outEdges(A,_){return this.isDirected()?this.filterEdges(this._out[A],A,_):this.nodeEdges(A,_)}nodeEdges(A,_){if(A in this._nodes)return this.filterEdges({...this._in[A],...this._out[A]},A,_)}filterEdges(A,_,R){if(A){var H=Object.values(A);return R?H.filter(function(j){return j.v===_&&j.w===R||j.v===R&&j.w===_}):H}}};function M(A,_){A[_]?A[_]++:A[_]=1}function z(A,_){--A[_]||delete A[_]}function V(A,_,R,H){var j=""+_,Y=""+R;if(!A&&j>Y){var q=j;j=Y,Y=q}return j+I+Y+I+(H===void 0?P:H)}function B(A,_,R,H){var j=""+_,Y=""+R;if(!A&&j>Y){var q=j;j=Y,Y=q}var U={v:j,w:Y};return H&&(U.name=H),U}function X(A,_){return V(A,_.v,_.w,_.name)}y.exports=C}),c=o(($,y)=>{y.exports="3.0.2"}),a=o(($,y)=>{y.exports={Graph:s(),version:c()}}),u=o(($,y)=>{var P=s();y.exports={write:E,read:M};function E(z){var V={options:{directed:z.isDirected(),multigraph:z.isMultigraph(),compound:z.isCompound()},nodes:I(z),edges:C(z)};return z.graph()!==void 0&&(V.value=structuredClone(z.graph())),V}function I(z){return z.nodes().map(function(V){var B=z.node(V),X=z.parent(V),A={v:V};return B!==void 0&&(A.value=B),X!==void 0&&(A.parent=X),A})}function C(z){return z.edges().map(function(V){var B=z.edge(V),X={v:V.v,w:V.w};return V.name!==void 0&&(X.name=V.name),B!==void 0&&(X.value=B),X})}function M(z){var V=new P(z.options).setGraph(z.value);return z.nodes.forEach(function(B){V.setNode(B.v,B.value),B.parent&&V.setParent(B.v,B.parent)}),z.edges.forEach(function(B){V.setEdge({v:B.v,w:B.w,name:B.name},B.value)}),V}}),d=o(($,y)=>{y.exports=E;var P=()=>1;function E(C,M,z,V){return I(C,String(M),z||P,V||function(B){return C.outEdges(B)})}function I(C,M,z,V){var B={},X=!0,A=0,_=C.nodes(),R=function(q){var U=z(q);B[q.v].distance+U<B[q.w].distance&&(B[q.w]={distance:B[q.v].distance+U,predecessor:q.v},X=!0)},H=function(){_.forEach(function(q){V(q).forEach(function(U){var K=U.v===q?U.v:U.w,Z=K===U.v?U.w:U.v;R({v:K,w:Z})})})};_.forEach(function(q){var U=q===M?0:Number.POSITIVE_INFINITY;B[q]={distance:U}});for(var j=_.length,Y=1;Y<j&&(X=!1,A++,H(),!!X);Y++);if(A===j-1&&(X=!1,H(),X))throw new Error("The graph contains a negative weight cycle");return B}}),l=o(($,y)=>{y.exports=P;function P(E){var I={},C=[],M;function z(V){Object.hasOwn(I,V)||(I[V]=!0,M.push(V),E.successors(V).forEach(z),E.predecessors(V).forEach(z))}return E.nodes().forEach(function(V){M=[],z(V),M.length&&C.push(M)}),C}}),f=o(($,y)=>{var P=class{constructor(){i(this,"_arr",[]),i(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(E){return E.key})}has(E){return Object.hasOwn(this._keyIndices,E)}priority(E){var I=this._keyIndices[E];if(I!==void 0)return this._arr[I].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(E,I){var C=this._keyIndices;if(E=String(E),!Object.hasOwn(C,E)){var M=this._arr,z=M.length;return C[E]=z,M.push({key:E,priority:I}),this._decrease(z),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var E=this._arr.pop();return delete this._keyIndices[E.key],this._heapify(0),E.key}decrease(E,I){var C=this._keyIndices[E];if(I>this._arr[C].priority)throw new Error("New priority is greater than current priority. Key: "+E+" Old: "+this._arr[C].priority+" New: "+I);this._arr[C].priority=I,this._decrease(C)}_heapify(E){var I=this._arr,C=2*E,M=C+1,z=E;C<I.length&&(z=I[C].priority<I[z].priority?C:z,M<I.length&&(z=I[M].priority<I[z].priority?M:z),z!==E&&(this._swap(E,z),this._heapify(z)))}_decrease(E){for(var I=this._arr,C=I[E].priority,M;E!==0&&(M=E>>1,!(I[M].priority<C));)this._swap(E,M),E=M}_swap(E,I){var C=this._arr,M=this._keyIndices,z=C[E],V=C[I];C[E]=V,C[I]=z,M[V.key]=E,M[z.key]=I}};y.exports=P}),h=o(($,y)=>{var P=f();y.exports=I;var E=()=>1;function I(M,z,V,B){var X=function(A){return M.outEdges(A)};return C(M,String(z),V||E,B||X)}function C(M,z,V,B){var X={},A=new P,_,R,H=function(j){var Y=j.v!==_?j.v:j.w,q=X[Y],U=V(j),K=R.distance+U;if(U<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+j+" Weight: "+U);K<q.distance&&(q.distance=K,q.predecessor=_,A.decrease(Y,K))};for(M.nodes().forEach(function(j){var Y=j===z?0:Number.POSITIVE_INFINITY;X[j]={distance:Y},A.add(j,Y)});A.size()>0&&(_=A.removeMin(),R=X[_],R.distance!==Number.POSITIVE_INFINITY);)B(_).forEach(H);return X}}),g=o(($,y)=>{var P=h();y.exports=E;function E(I,C,M){return I.nodes().reduce(function(z,V){return z[V]=P(I,V,C,M),z},{})}}),x=o(($,y)=>{y.exports=P;function P(I,C,M){if(I[C].predecessor!==void 0)throw new Error("Invalid source vertex");if(I[M].predecessor===void 0&&M!==C)throw new Error("Invalid destination vertex");return{weight:I[M].distance,path:E(I,C,M)}}function E(I,C,M){for(var z=[],V=M;V!==C;)z.push(V),V=I[V].predecessor;return z.push(C),z.reverse()}}),b=o(($,y)=>{y.exports=P;function P(E){var I=0,C=[],M={},z=[];function V(B){var X=M[B]={onStack:!0,lowlink:I,index:I++};if(C.push(B),E.successors(B).forEach(function(R){Object.hasOwn(M,R)?M[R].onStack&&(X.lowlink=Math.min(X.lowlink,M[R].index)):(V(R),X.lowlink=Math.min(X.lowlink,M[R].lowlink))}),X.lowlink===X.index){var A=[],_;do _=C.pop(),M[_].onStack=!1,A.push(_);while(B!==_);z.push(A)}}return E.nodes().forEach(function(B){Object.hasOwn(M,B)||V(B)}),z}}),w=o(($,y)=>{var P=b();y.exports=E;function E(I){return P(I).filter(function(C){return C.length>1||C.length===1&&I.hasEdge(C[0],C[0])})}}),v=o(($,y)=>{y.exports=E;var P=()=>1;function E(C,M,z){return I(C,M||P,z||function(V){return C.outEdges(V)})}function I(C,M,z){var V={},B=C.nodes();return B.forEach(function(X){V[X]={},V[X][X]={distance:0},B.forEach(function(A){X!==A&&(V[X][A]={distance:Number.POSITIVE_INFINITY})}),z(X).forEach(function(A){var _=A.v===X?A.w:A.v,R=M(A);V[X][_]={distance:R,predecessor:X}})}),B.forEach(function(X){var A=V[X];B.forEach(function(_){var R=V[_];B.forEach(function(H){var j=R[X],Y=A[H],q=R[H],U=j.distance+Y.distance;U<q.distance&&(q.distance=U,q.predecessor=Y.predecessor)})})}),V}}),p=o(($,y)=>{function P(I){var C={},M={},z=[];function V(B){if(Object.hasOwn(M,B))throw new E;Object.hasOwn(C,B)||(M[B]=!0,C[B]=!0,I.predecessors(B).forEach(V),delete M[B],z.push(B))}if(I.sinks().forEach(V),Object.keys(C).length!==I.nodeCount())throw new E;return z}var E=class extends Error{constructor(){super(...arguments)}};y.exports=P,P.CycleException=E}),m=o(($,y)=>{var P=p();y.exports=E;function E(I){try{P(I)}catch(C){if(C instanceof P.CycleException)return!1;throw C}return!0}}),k=o(($,y)=>{y.exports=P;function P(I,C,M,z,V){Array.isArray(C)||(C=[C]);var B=(I.isDirected()?I.successors:I.neighbors).bind(I),X={};return C.forEach(function(A){if(!I.hasNode(A))throw new Error("Graph does not have node: "+A);V=E(I,A,M==="post",X,B,z,V)}),V}function E(I,C,M,z,V,B,X){return Object.hasOwn(z,C)||(z[C]=!0,M||(X=B(X,C)),V(C).forEach(function(A){X=E(I,A,M,z,V,B,X)}),M&&(X=B(X,C))),X}}),S=o(($,y)=>{var P=k();y.exports=E;function E(I,C,M){return P(I,C,M,function(z,V){return z.push(V),z},[])}}),O=o(($,y)=>{var P=S();y.exports=E;function E(I,C){return P(I,C,"post")}}),D=o(($,y)=>{var P=S();y.exports=E;function E(I,C){return P(I,C,"pre")}}),F=o(($,y)=>{var P=s(),E=f();y.exports=I;function I(C,M){var z=new P,V={},B=new E,X;function A(R){var H=R.v===X?R.w:R.v,j=B.priority(H);if(j!==void 0){var Y=M(R);Y<j&&(V[H]=X,B.decrease(H,Y))}}if(C.nodeCount()===0)return z;C.nodes().forEach(function(R){B.add(R,Number.POSITIVE_INFINITY),z.setNode(R)}),B.decrease(C.nodes()[0],0);for(var _=!1;B.size()>0;){if(X=B.removeMin(),Object.hasOwn(V,X))z.setEdge(X,V[X]);else{if(_)throw new Error("Input graph is not connected: "+C);_=!0}C.nodeEdges(X).forEach(A)}return z}}),L=o(($,y)=>{var P=h(),E=d();y.exports=I;function I(M,z,V,B){return C(M,z,V,B||function(X){return M.outEdges(X)})}function C(M,z,V,B){if(V===void 0)return P(M,z,V,B);for(var X=!1,A=M.nodes(),_=0;_<A.length;_++){for(var R=B(A[_]),H=0;H<R.length;H++){var j=R[H],Y=j.v===A[_]?j.v:j.w,q=Y===j.v?j.w:j.v;V({v:Y,w:q})<0&&(X=!0)}if(X)return E(M,z,V,B)}return P(M,z,V,B)}}),N=o(($,y)=>{y.exports={bellmanFord:d(),components:l(),dijkstra:h(),dijkstraAll:g(),extractPath:x(),findCycles:w(),floydWarshall:v(),isAcyclic:m(),postorder:O(),preorder:D(),prim:F(),shortestPaths:L(),reduce:k(),tarjan:b(),topsort:p()}}),T=a();t.exports={Graph:T.Graph,json:u(),alg:N(),version:T.version}}),Eg=re((e,t)=>{var n=class{constructor(){let i={};i._next=i._prev=i,this._sentinel=i}dequeue(){let i=this._sentinel,s=i._prev;if(s!==i)return r(s),s}enqueue(i){let s=this._sentinel;i._prev&&i._next&&r(i),i._next=s._next,s._next._prev=i,s._next=i,i._prev=s}toString(){let i=[],s=this._sentinel,c=s._prev;for(;c!==s;)i.push(JSON.stringify(c,o)),c=c._prev;return"["+i.join(", ")+"]"}};function r(i){i._prev._next=i._next,i._next._prev=i._prev,delete i._next,delete i._prev}function o(i,s){if(i!=="_next"&&i!=="_prev")return s}t.exports=n}),Ng=re((e,t)=>{var n=xe().Graph,r=Eg();t.exports=i;var o=()=>1;function i(l,f){if(l.nodeCount()<=1)return[];let h=a(l,f||o);return s(h.graph,h.buckets,h.zeroIdx).flatMap(g=>l.outEdges(g.v,g.w))}function s(l,f,h){let g=[],x=f[f.length-1],b=f[0],w;for(;l.nodeCount();){for(;w=b.dequeue();)c(l,f,h,w);for(;w=x.dequeue();)c(l,f,h,w);if(l.nodeCount()){for(let v=f.length-2;v>0;--v)if(w=f[v].dequeue(),w){g=g.concat(c(l,f,h,w,!0));break}}}return g}function c(l,f,h,g,x){let b=x?[]:void 0;return l.inEdges(g.v).forEach(w=>{let v=l.edge(w),p=l.node(w.v);x&&b.push({v:w.v,w:w.w}),p.out-=v,u(f,h,p)}),l.outEdges(g.v).forEach(w=>{let v=l.edge(w),p=w.w,m=l.node(p);m.in-=v,u(f,h,m)}),l.removeNode(g.v),b}function a(l,f){let h=new n,g=0,x=0;l.nodes().forEach(v=>{h.setNode(v,{v,in:0,out:0})}),l.edges().forEach(v=>{let p=h.edge(v.v,v.w)||0,m=f(v),k=p+m;h.setEdge(v.v,v.w,k),x=Math.max(x,h.node(v.v).out+=m),g=Math.max(g,h.node(v.w).in+=m)});let b=d(x+g+3).map(()=>new r),w=g+1;return h.nodes().forEach(v=>{u(b,w,h.node(v))}),{graph:h,buckets:b,zeroIdx:w}}function u(l,f,h){h.out?h.in?l[h.out-h.in+f].enqueue(h):l[l.length-1].enqueue(h):l[0].enqueue(h)}function d(l){let f=[];for(let h=0;h<l;h++)f.push(h);return f}}),se=re((e,t)=>{var n=xe().Graph;t.exports={addBorderNode:f,addDummyNode:r,applyWithChunking:x,asNonCompoundGraph:i,buildLayerMatrix:u,intersectRect:a,mapValues:D,maxRank:b,normalizeRanks:d,notime:p,partition:w,pick:O,predecessorWeights:c,range:S,removeEmptyRanks:l,simplify:o,successorWeights:s,time:v,uniqueId:k,zipObject:F};function r(L,N,T,$){for(var y=$;L.hasNode(y);)y=k($);return T.dummy=N,L.setNode(y,T),y}function o(L){let N=new n().setGraph(L.graph());return L.nodes().forEach(T=>N.setNode(T,L.node(T))),L.edges().forEach(T=>{let $=N.edge(T.v,T.w)||{weight:0,minlen:1},y=L.edge(T);N.setEdge(T.v,T.w,{weight:$.weight+y.weight,minlen:Math.max($.minlen,y.minlen)})}),N}function i(L){let N=new n({multigraph:L.isMultigraph()}).setGraph(L.graph());return L.nodes().forEach(T=>{L.children(T).length||N.setNode(T,L.node(T))}),L.edges().forEach(T=>{N.setEdge(T,L.edge(T))}),N}function s(L){let N=L.nodes().map(T=>{let $={};return L.outEdges(T).forEach(y=>{$[y.w]=($[y.w]||0)+L.edge(y).weight}),$});return F(L.nodes(),N)}function c(L){let N=L.nodes().map(T=>{let $={};return L.inEdges(T).forEach(y=>{$[y.v]=($[y.v]||0)+L.edge(y).weight}),$});return F(L.nodes(),N)}function a(L,N){let T=L.x,$=L.y,y=N.x-T,P=N.y-$,E=L.width/2,I=L.height/2;if(!y&&!P)throw new Error("Not possible to find intersection inside of the rectangle");let C,M;return Math.abs(P)*E>Math.abs(y)*I?(P<0&&(I=-I),C=I*y/P,M=I):(y<0&&(E=-E),C=E,M=E*P/y),{x:T+C,y:$+M}}function u(L){let N=S(b(L)+1).map(()=>[]);return L.nodes().forEach(T=>{let $=L.node(T),y=$.rank;y!==void 0&&(N[y][$.order]=T)}),N}function d(L){let N=L.nodes().map($=>{let y=L.node($).rank;return y===void 0?Number.MAX_VALUE:y}),T=x(Math.min,N);L.nodes().forEach($=>{let y=L.node($);Object.hasOwn(y,"rank")&&(y.rank-=T)})}function l(L){let N=L.nodes().map(E=>L.node(E).rank).filter(E=>E!==void 0),T=x(Math.min,N),$=[];L.nodes().forEach(E=>{let I=L.node(E).rank-T;$[I]||($[I]=[]),$[I].push(E)});let y=0,P=L.graph().nodeRankFactor;Array.from($).forEach((E,I)=>{E===void 0&&I%P!==0?--y:E!==void 0&&y&&E.forEach(C=>L.node(C).rank+=y)})}function f(L,N,T,$){let y={width:0,height:0};return arguments.length>=4&&(y.rank=T,y.order=$),r(L,"border",y,N)}function h(L,N=g){let T=[];for(let $=0;$<L.length;$+=N){let y=L.slice($,$+N);T.push(y)}return T}var g=65535;function x(L,N){if(N.length>g){let T=h(N);return L.apply(null,T.map($=>L.apply(null,$)))}else return L.apply(null,N)}function b(L){let N=L.nodes().map(T=>{let $=L.node(T).rank;return $===void 0?Number.MIN_VALUE:$});return x(Math.max,N)}function w(L,N){let T={lhs:[],rhs:[]};return L.forEach($=>{N($)?T.lhs.push($):T.rhs.push($)}),T}function v(L,N){let T=Date.now();try{return N()}finally{console.log(L+" time: "+(Date.now()-T)+"ms")}}function p(L,N){return N()}var m=0;function k(L){var N=++m;return L+(""+N)}function S(L,N,T=1){N==null&&(N=L,L=0);let $=P=>P<N;T<0&&($=P=>N<P);let y=[];for(let P=L;$(P);P+=T)y.push(P);return y}function O(L,N){let T={};for(let $ of N)L[$]!==void 0&&(T[$]=L[$]);return T}function D(L,N){let T=N;return typeof N=="string"&&(T=$=>$[N]),Object.entries(L).reduce(($,[y,P])=>($[y]=T(P,y),$),{})}function F(L,N){return L.reduce((T,$,y)=>(T[$]=N[y],T),{})}}),Sg=re((e,t)=>{var n=Ng(),r=se().uniqueId;t.exports={run:o,undo:s};function o(c){(c.graph().acyclicer==="greedy"?n(c,a(c)):i(c)).forEach(u=>{let d=c.edge(u);c.removeEdge(u),d.forwardName=u.name,d.reversed=!0,c.setEdge(u.w,u.v,d,r("rev"))});function a(u){return d=>u.edge(d).weight}}function i(c){let a=[],u={},d={};function l(f){Object.hasOwn(d,f)||(d[f]=!0,u[f]=!0,c.outEdges(f).forEach(h=>{Object.hasOwn(u,h.w)?a.push(h):l(h.w)}),delete u[f])}return c.nodes().forEach(l),a}function s(c){c.edges().forEach(a=>{let u=c.edge(a);if(u.reversed){c.removeEdge(a);let d=u.forwardName;delete u.reversed,delete u.forwardName,c.setEdge(a.w,a.v,u,d)}})}}),kg=re((e,t)=>{var n=se();t.exports={run:r,undo:i};function r(s){s.graph().dummyChains=[],s.edges().forEach(c=>o(s,c))}function o(s,c){let a=c.v,u=s.node(a).rank,d=c.w,l=s.node(d).rank,f=c.name,h=s.edge(c),g=h.labelRank;if(l===u+1)return;s.removeEdge(c);let x,b,w;for(w=0,++u;u<l;++w,++u)h.points=[],b={width:0,height:0,edgeLabel:h,edgeObj:c,rank:u},x=n.addDummyNode(s,"edge",b,"_d"),u===g&&(b.width=h.width,b.height=h.height,b.dummy="edge-label",b.labelpos=h.labelpos),s.setEdge(a,x,{weight:h.weight},f),w===0&&s.graph().dummyChains.push(x),a=x;s.setEdge(a,d,{weight:h.weight},f)}function i(s){s.graph().dummyChains.forEach(c=>{let a=s.node(c),u=a.edgeLabel,d;for(s.setEdge(a.edgeObj,u);a.dummy;)d=s.successors(c)[0],s.removeNode(c),u.points.push({x:a.x,y:a.y}),a.dummy==="edge-label"&&(u.x=a.x,u.y=a.y,u.width=a.width,u.height=a.height),c=d,a=s.node(c)})}}),en=re((e,t)=>{var{applyWithChunking:n}=se();t.exports={longestPath:r,slack:o};function r(i){var s={};function c(a){var u=i.node(a);if(Object.hasOwn(s,a))return u.rank;s[a]=!0;let d=i.outEdges(a).map(f=>f==null?Number.POSITIVE_INFINITY:c(f.w)-i.edge(f).minlen);var l=n(Math.min,d);return l===Number.POSITIVE_INFINITY&&(l=0),u.rank=l}i.sources().forEach(c)}function o(i,s){return i.node(s.w).rank-i.node(s.v).rank-i.edge(s).minlen}}),ds=re((e,t)=>{var n=xe().Graph,r=en().slack;t.exports=o;function o(a){var u=new n({directed:!1}),d=a.nodes()[0],l=a.nodeCount();u.setNode(d,{});for(var f,h;i(u,a)<l;)f=s(u,a),h=u.hasNode(f.v)?r(a,f):-r(a,f),c(u,a,h);return u}function i(a,u){function d(l){u.nodeEdges(l).forEach(f=>{var h=f.v,g=l===h?f.w:h;!a.hasNode(g)&&!r(u,f)&&(a.setNode(g,{}),a.setEdge(l,g,{}),d(g))})}return a.nodes().forEach(d),a.nodeCount()}function s(a,u){return u.edges().reduce((d,l)=>{let f=Number.POSITIVE_INFINITY;return a.hasNode(l.v)!==a.hasNode(l.w)&&(f=r(u,l)),f<d[0]?[f,l]:d},[Number.POSITIVE_INFINITY,null])[1]}function c(a,u,d){a.nodes().forEach(l=>u.node(l).rank+=d)}}),Cg=re((e,t)=>{var n=ds(),r=en().slack,o=en().longestPath,i=xe().alg.preorder,s=xe().alg.postorder,c=se().simplify;t.exports=a,a.initLowLimValues=f,a.initCutValues=u,a.calcCutValue=l,a.leaveEdge=g,a.enterEdge=x,a.exchangeEdges=b;function a(m){m=c(m),o(m);var k=n(m);f(k),u(k,m);for(var S,O;S=g(k);)O=x(k,m,S),b(k,m,S,O)}function u(m,k){var S=s(m,m.nodes());S=S.slice(0,S.length-1),S.forEach(O=>d(m,k,O))}function d(m,k,S){var O=m.node(S),D=O.parent;m.edge(S,D).cutvalue=l(m,k,S)}function l(m,k,S){var O=m.node(S),D=O.parent,F=!0,L=k.edge(S,D),N=0;return L||(F=!1,L=k.edge(D,S)),N=L.weight,k.nodeEdges(S).forEach(T=>{var $=T.v===S,y=$?T.w:T.v;if(y!==D){var P=$===F,E=k.edge(T).weight;if(N+=P?E:-E,v(m,S,y)){var I=m.edge(S,y).cutvalue;N+=P?-I:I}}}),N}function f(m,k){arguments.length<2&&(k=m.nodes()[0]),h(m,{},1,k)}function h(m,k,S,O,D){var F=S,L=m.node(O);return k[O]=!0,m.neighbors(O).forEach(N=>{Object.hasOwn(k,N)||(S=h(m,k,S,N,O))}),L.low=F,L.lim=S++,D?L.parent=D:delete L.parent,S}function g(m){return m.edges().find(k=>m.edge(k).cutvalue<0)}function x(m,k,S){var O=S.v,D=S.w;k.hasEdge(O,D)||(O=S.w,D=S.v);var F=m.node(O),L=m.node(D),N=F,T=!1;F.lim>L.lim&&(N=L,T=!0);var $=k.edges().filter(y=>T===p(m,m.node(y.v),N)&&T!==p(m,m.node(y.w),N));return $.reduce((y,P)=>r(k,P)<r(k,y)?P:y)}function b(m,k,S,O){var D=S.v,F=S.w;m.removeEdge(D,F),m.setEdge(O.v,O.w,{}),f(m),u(m,k),w(m,k)}function w(m,k){var S=m.nodes().find(D=>!k.node(D).parent),O=i(m,S);O=O.slice(1),O.forEach(D=>{var F=m.node(D).parent,L=k.edge(D,F),N=!1;L||(L=k.edge(F,D),N=!0),k.node(D).rank=k.node(F).rank+(N?L.minlen:-L.minlen)})}function v(m,k,S){return m.hasEdge(k,S)}function p(m,k,S){return S.low<=k.lim&&k.lim<=S.lim}}),Mg=re((e,t)=>{var n=en(),r=n.longestPath,o=ds(),i=Cg();t.exports=s;function s(d){var l=d.graph().ranker;if(l instanceof Function)return l(d);switch(d.graph().ranker){case"network-simplex":u(d);break;case"tight-tree":a(d);break;case"longest-path":c(d);break;case"none":break;default:u(d)}}var c=r;function a(d){r(d),o(d)}function u(d){i(d)}}),Ig=re((e,t)=>{t.exports=n;function n(i){let s=o(i);i.graph().dummyChains.forEach(c=>{let a=i.node(c),u=a.edgeObj,d=r(i,s,u.v,u.w),l=d.path,f=d.lca,h=0,g=l[h],x=!0;for(;c!==u.w;){if(a=i.node(c),x){for(;(g=l[h])!==f&&i.node(g).maxRank<a.rank;)h++;g===f&&(x=!1)}if(!x){for(;h<l.length-1&&i.node(g=l[h+1]).minRank<=a.rank;)h++;g=l[h]}i.setParent(c,g),c=i.successors(c)[0]}})}function r(i,s,c,a){let u=[],d=[],l=Math.min(s[c].low,s[a].low),f=Math.max(s[c].lim,s[a].lim),h,g;h=c;do h=i.parent(h),u.push(h);while(h&&(s[h].low>l||f>s[h].lim));for(g=h,h=a;(h=i.parent(h))!==g;)d.push(h);return{path:u.concat(d.reverse()),lca:g}}function o(i){let s={},c=0;function a(u){let d=c;i.children(u).forEach(a),s[u]={low:d,lim:c++}}return i.children().forEach(a),s}}),Ag=re((e,t)=>{var n=se();t.exports={run:r,cleanup:c};function r(a){let u=n.addDummyNode(a,"root",{},"_root"),d=i(a),l=Object.values(d),f=n.applyWithChunking(Math.max,l)-1,h=2*f+1;a.graph().nestingRoot=u,a.edges().forEach(x=>a.edge(x).minlen*=h);let g=s(a)+1;a.children().forEach(x=>o(a,u,h,g,f,d,x)),a.graph().nodeRankFactor=h}function o(a,u,d,l,f,h,g){let x=a.children(g);if(!x.length){g!==u&&a.setEdge(u,g,{weight:0,minlen:d});return}let b=n.addBorderNode(a,"_bt"),w=n.addBorderNode(a,"_bb"),v=a.node(g);a.setParent(b,g),v.borderTop=b,a.setParent(w,g),v.borderBottom=w,x.forEach(p=>{o(a,u,d,l,f,h,p);let m=a.node(p),k=m.borderTop?m.borderTop:p,S=m.borderBottom?m.borderBottom:p,O=m.borderTop?l:2*l,D=k!==S?1:f-h[g]+1;a.setEdge(b,k,{weight:O,minlen:D,nestingEdge:!0}),a.setEdge(S,w,{weight:O,minlen:D,nestingEdge:!0})}),a.parent(g)||a.setEdge(u,b,{weight:0,minlen:f+h[g]})}function i(a){var u={};function d(l,f){var h=a.children(l);h&&h.length&&h.forEach(g=>d(g,f+1)),u[l]=f}return a.children().forEach(l=>d(l,1)),u}function s(a){return a.edges().reduce((u,d)=>u+a.edge(d).weight,0)}function c(a){var u=a.graph();a.removeNode(u.nestingRoot),delete u.nestingRoot,a.edges().forEach(d=>{var l=a.edge(d);l.nestingEdge&&a.removeEdge(d)})}}),Tg=re((e,t)=>{var n=se();t.exports=r;function r(i){function s(c){let a=i.children(c),u=i.node(c);if(a.length&&a.forEach(s),Object.hasOwn(u,"minRank")){u.borderLeft=[],u.borderRight=[];for(let d=u.minRank,l=u.maxRank+1;d<l;++d)o(i,"borderLeft","_bl",c,u,d),o(i,"borderRight","_br",c,u,d)}}i.children().forEach(s)}function o(i,s,c,a,u,d){let l={width:0,height:0,rank:d,borderType:s},f=u[s][d-1],h=n.addDummyNode(i,"border",l,c);u[s][d]=h,i.setParent(h,a),f&&i.setEdge(f,h,{weight:1})}}),Og=re((e,t)=>{t.exports={adjust:n,undo:r};function n(d){let l=d.graph().rankdir.toLowerCase();(l==="lr"||l==="rl")&&o(d)}function r(d){let l=d.graph().rankdir.toLowerCase();(l==="bt"||l==="rl")&&s(d),(l==="lr"||l==="rl")&&(a(d),o(d))}function o(d){d.nodes().forEach(l=>i(d.node(l))),d.edges().forEach(l=>i(d.edge(l)))}function i(d){let l=d.width;d.width=d.height,d.height=l}function s(d){d.nodes().forEach(l=>c(d.node(l))),d.edges().forEach(l=>{let f=d.edge(l);f.points.forEach(c),Object.hasOwn(f,"y")&&c(f)})}function c(d){d.y=-d.y}function a(d){d.nodes().forEach(l=>u(d.node(l))),d.edges().forEach(l=>{let f=d.edge(l);f.points.forEach(u),Object.hasOwn(f,"x")&&u(f)})}function u(d){let l=d.x;d.x=d.y,d.y=l}}),Pg=re((e,t)=>{var n=se();t.exports=r;function r(o){let i={},s=o.nodes().filter(l=>!o.children(l).length),c=s.map(l=>o.node(l).rank),a=n.applyWithChunking(Math.max,c),u=n.range(a+1).map(()=>[]);function d(l){if(i[l])return;i[l]=!0;let f=o.node(l);u[f.rank].push(l),o.successors(l).forEach(d)}return s.sort((l,f)=>o.node(l).rank-o.node(f).rank).forEach(d),u}}),$g=re((e,t)=>{var n=se().zipObject;t.exports=r;function r(i,s){let c=0;for(let a=1;a<s.length;++a)c+=o(i,s[a-1],s[a]);return c}function o(i,s,c){let a=n(c,c.map((g,x)=>x)),u=s.flatMap(g=>i.outEdges(g).map(x=>({pos:a[x.w],weight:i.edge(x).weight})).sort((x,b)=>x.pos-b.pos)),d=1;for(;d<c.length;)d<<=1;let l=2*d-1;d-=1;let f=new Array(l).fill(0),h=0;return u.forEach(g=>{let x=g.pos+d;f[x]+=g.weight;let b=0;for(;x>0;)x%2&&(b+=f[x+1]),x=x-1>>1,f[x]+=g.weight;h+=g.weight*b}),h}}),Lg=re((e,t)=>{t.exports=n;function n(r,o=[]){return o.map(i=>{let s=r.inEdges(i);if(s.length){let c=s.reduce((a,u)=>{let d=r.edge(u),l=r.node(u.v);return{sum:a.sum+d.weight*l.order,weight:a.weight+d.weight}},{sum:0,weight:0});return{v:i,barycenter:c.sum/c.weight,weight:c.weight}}else return{v:i}})}}),Rg=re((e,t)=>{var n=se();t.exports=r;function r(s,c){let a={};s.forEach((d,l)=>{let f=a[d.v]={indegree:0,in:[],out:[],vs:[d.v],i:l};d.barycenter!==void 0&&(f.barycenter=d.barycenter,f.weight=d.weight)}),c.edges().forEach(d=>{let l=a[d.v],f=a[d.w];l!==void 0&&f!==void 0&&(f.indegree++,l.out.push(a[d.w]))});let u=Object.values(a).filter(d=>!d.indegree);return o(u)}function o(s){let c=[];function a(d){return l=>{l.merged||(l.barycenter===void 0||d.barycenter===void 0||l.barycenter>=d.barycenter)&&i(d,l)}}function u(d){return l=>{l.in.push(d),--l.indegree===0&&s.push(l)}}for(;s.length;){let d=s.pop();c.push(d),d.in.reverse().forEach(a(d)),d.out.forEach(u(d))}return c.filter(d=>!d.merged).map(d=>n.pick(d,["vs","i","barycenter","weight"]))}function i(s,c){let a=0,u=0;s.weight&&(a+=s.barycenter*s.weight,u+=s.weight),c.weight&&(a+=c.barycenter*c.weight,u+=c.weight),s.vs=c.vs.concat(s.vs),s.barycenter=a/u,s.weight=u,s.i=Math.min(c.i,s.i),c.merged=!0}}),Dg=re((e,t)=>{var n=se();t.exports=r;function r(s,c){let a=n.partition(s,b=>Object.hasOwn(b,"barycenter")),u=a.lhs,d=a.rhs.sort((b,w)=>w.i-b.i),l=[],f=0,h=0,g=0;u.sort(i(!!c)),g=o(l,d,g),u.forEach(b=>{g+=b.vs.length,l.push(b.vs),f+=b.barycenter*b.weight,h+=b.weight,g=o(l,d,g)});let x={vs:l.flat(!0)};return h&&(x.barycenter=f/h,x.weight=h),x}function o(s,c,a){let u;for(;c.length&&(u=c[c.length-1]).i<=a;)c.pop(),s.push(u.vs),a++;return a}function i(s){return(c,a)=>c.barycenter<a.barycenter?-1:c.barycenter>a.barycenter?1:s?a.i-c.i:c.i-a.i}}),zg=re((e,t)=>{var n=Lg(),r=Rg(),o=Dg();t.exports=i;function i(a,u,d,l){let f=a.children(u),h=a.node(u),g=h?h.borderLeft:void 0,x=h?h.borderRight:void 0,b={};g&&(f=f.filter(m=>m!==g&&m!==x));let w=n(a,f);w.forEach(m=>{if(a.children(m.v).length){let k=i(a,m.v,d,l);b[m.v]=k,Object.hasOwn(k,"barycenter")&&c(m,k)}});let v=r(w,d);s(v,b);let p=o(v,l);if(g&&(p.vs=[g,p.vs,x].flat(!0),a.predecessors(g).length)){let m=a.node(a.predecessors(g)[0]),k=a.node(a.predecessors(x)[0]);Object.hasOwn(p,"barycenter")||(p.barycenter=0,p.weight=0),p.barycenter=(p.barycenter*p.weight+m.order+k.order)/(p.weight+2),p.weight+=2}return p}function s(a,u){a.forEach(d=>{d.vs=d.vs.flatMap(l=>u[l]?u[l].vs:l)})}function c(a,u){a.barycenter!==void 0?(a.barycenter=(a.barycenter*a.weight+u.barycenter*u.weight)/(a.weight+u.weight),a.weight+=u.weight):(a.barycenter=u.barycenter,a.weight=u.weight)}}),jg=re((e,t)=>{var n=xe().Graph,r=se();t.exports=o;function o(s,c,a,u){u||(u=s.nodes());let d=i(s),l=new n({compound:!0}).setGraph({root:d}).setDefaultNodeLabel(f=>s.node(f));return u.forEach(f=>{let h=s.node(f),g=s.parent(f);(h.rank===c||h.minRank<=c&&c<=h.maxRank)&&(l.setNode(f),l.setParent(f,g||d),s[a](f).forEach(x=>{let b=x.v===f?x.w:x.v,w=l.edge(b,f),v=w!==void 0?w.weight:0;l.setEdge(b,f,{weight:s.edge(x).weight+v})}),Object.hasOwn(h,"minRank")&&l.setNode(f,{borderLeft:h.borderLeft[c],borderRight:h.borderRight[c]}))}),l}function i(s){for(var c;s.hasNode(c=r.uniqueId("_root")););return c}}),Hg=re((e,t)=>{t.exports=n;function n(r,o,i){let s={},c;i.forEach(a=>{let u=r.parent(a),d,l;for(;u;){if(d=r.parent(u),d?(l=s[d],s[d]=u):(l=c,c=u),l&&l!==u){o.setEdge(l,u);return}u=d}})}}),Vg=re((e,t)=>{var n=Pg(),r=$g(),o=zg(),i=jg(),s=Hg(),c=xe().Graph,a=se();t.exports=u;function u(h,g={}){if(typeof g.customOrder=="function"){g.customOrder(h,u);return}let x=a.maxRank(h),b=d(h,a.range(1,x+1),"inEdges"),w=d(h,a.range(x-1,-1,-1),"outEdges"),v=n(h);if(f(h,v),g.disableOptimalOrderHeuristic)return;let p=Number.POSITIVE_INFINITY,m,k=g.constraints||[];for(let S=0,O=0;O<4;++S,++O){l(S%2?b:w,S%4>=2,k),v=a.buildLayerMatrix(h);let D=r(h,v);D<p?(O=0,m=Object.assign({},v),p=D):D===p&&(m=structuredClone(v))}f(h,m)}function d(h,g,x){let b=new Map,w=(v,p)=>{b.has(v)||b.set(v,[]),b.get(v).push(p)};for(let v of h.nodes()){let p=h.node(v);if(typeof p.rank=="number"&&w(p.rank,v),typeof p.minRank=="number"&&typeof p.maxRank=="number")for(let m=p.minRank;m<=p.maxRank;m++)m!==p.rank&&w(m,v)}return g.map(function(v){return i(h,v,x,b.get(v)||[])})}function l(h,g,x){let b=new c;h.forEach(function(w){x.forEach(m=>b.setEdge(m.left,m.right));let v=w.graph().root,p=o(w,v,b,g);p.vs.forEach((m,k)=>w.node(m).order=k),s(w,b,p.vs)})}function f(h,g){Object.values(g).forEach(x=>x.forEach((b,w)=>h.node(b).order=w))}}),Fg=re((e,t)=>{var n=xe().Graph,r=se();t.exports={positionX:x,findType1Conflicts:o,findType2Conflicts:i,addConflict:c,hasConflict:a,verticalAlignment:u,horizontalCompaction:d,alignCoordinates:h,findSmallestWidthAlignment:f,balance:g};function o(v,p){let m={};function k(S,O){let D=0,F=0,L=S.length,N=O[O.length-1];return O.forEach((T,$)=>{let y=s(v,T),P=y?v.node(y).order:L;(y||T===N)&&(O.slice(F,$+1).forEach(E=>{v.predecessors(E).forEach(I=>{let C=v.node(I),M=C.order;(M<D||P<M)&&!(C.dummy&&v.node(E).dummy)&&c(m,I,E)})}),F=$+1,D=P)}),O}return p.length&&p.reduce(k),m}function i(v,p){let m={};function k(O,D,F,L,N){let T;r.range(D,F).forEach($=>{T=O[$],v.node(T).dummy&&v.predecessors(T).forEach(y=>{let P=v.node(y);P.dummy&&(P.order<L||P.order>N)&&c(m,y,T)})})}function S(O,D){let F=-1,L,N=0;return D.forEach((T,$)=>{if(v.node(T).dummy==="border"){let y=v.predecessors(T);y.length&&(L=v.node(y[0]).order,k(D,N,$,F,L),N=$,F=L)}k(D,N,D.length,L,O.length)}),D}return p.length&&p.reduce(S),m}function s(v,p){if(v.node(p).dummy)return v.predecessors(p).find(m=>v.node(m).dummy)}function c(v,p,m){if(p>m){let S=p;p=m,m=S}let k=v[p];k||(v[p]=k={}),k[m]=!0}function a(v,p,m){if(p>m){let k=p;p=m,m=k}return!!v[p]&&Object.hasOwn(v[p],m)}function u(v,p,m,k){let S={},O={},D={};return p.forEach(F=>{F.forEach((L,N)=>{S[L]=L,O[L]=L,D[L]=N})}),p.forEach(F=>{let L=-1;F.forEach(N=>{let T=k(N);if(T.length){T=T.sort((y,P)=>D[y]-D[P]);let $=(T.length-1)/2;for(let y=Math.floor($),P=Math.ceil($);y<=P;++y){let E=T[y];O[N]===N&&L<D[E]&&!a(m,N,E)&&(O[E]=N,O[N]=S[N]=S[E],L=D[E])}}})}),{root:S,align:O}}function d(v,p,m,k,S){let O={},D=l(v,p,m,S),F=S?"borderLeft":"borderRight";function L($,y){let P=D.nodes().slice(),E={},I=P.pop();for(;I;){if(E[I])$(I);else{E[I]=!0,P.push(I);for(let C of y(I))P.push(C)}I=P.pop()}}function N($){O[$]=D.inEdges($).reduce((y,P)=>Math.max(y,O[P.v]+D.edge(P)),0)}function T($){let y=D.outEdges($).reduce((E,I)=>Math.min(E,O[I.w]-D.edge(I)),Number.POSITIVE_INFINITY),P=v.node($);y!==Number.POSITIVE_INFINITY&&P.borderType!==F&&(O[$]=Math.max(O[$],y))}return L(N,D.predecessors.bind(D)),L(T,D.successors.bind(D)),Object.keys(k).forEach($=>O[$]=O[m[$]]),O}function l(v,p,m,k){let S=new n,O=v.graph(),D=b(O.nodesep,O.edgesep,k);return p.forEach(F=>{let L;F.forEach(N=>{let T=m[N];if(S.setNode(T),L){var $=m[L],y=S.edge($,T);S.setEdge($,T,Math.max(D(v,N,L),y||0))}L=N})}),S}function f(v,p){return Object.values(p).reduce((m,k)=>{let S=Number.NEGATIVE_INFINITY,O=Number.POSITIVE_INFINITY;Object.entries(k).forEach(([F,L])=>{let N=w(v,F)/2;S=Math.max(L+N,S),O=Math.min(L-N,O)});let D=S-O;return D<m[0]&&(m=[D,k]),m},[Number.POSITIVE_INFINITY,null])[1]}function h(v,p){let m=Object.values(p),k=r.applyWithChunking(Math.min,m),S=r.applyWithChunking(Math.max,m);["u","d"].forEach(O=>{["l","r"].forEach(D=>{let F=O+D,L=v[F];if(L===p)return;let N=Object.values(L),T=k-r.applyWithChunking(Math.min,N);D!=="l"&&(T=S-r.applyWithChunking(Math.max,N)),T&&(v[F]=r.mapValues(L,$=>$+T))})})}function g(v,p){return r.mapValues(v.ul,(m,k)=>{if(p)return v[p.toLowerCase()][k];{let S=Object.values(v).map(O=>O[k]).sort((O,D)=>O-D);return(S[1]+S[2])/2}})}function x(v){let p=r.buildLayerMatrix(v),m=Object.assign(o(v,p),i(v,p)),k={},S;["u","d"].forEach(D=>{S=D==="u"?p:Object.values(p).reverse(),["l","r"].forEach(F=>{F==="r"&&(S=S.map($=>Object.values($).reverse()));let L=(D==="u"?v.predecessors:v.successors).bind(v),N=u(v,S,m,L),T=d(v,S,N.root,N.align,F==="r");F==="r"&&(T=r.mapValues(T,$=>-$)),k[D+F]=T})});let O=f(v,k);return h(k,O),g(k,v.graph().align)}function b(v,p,m){return(k,S,O)=>{let D=k.node(S),F=k.node(O),L=0,N;if(L+=D.width/2,Object.hasOwn(D,"labelpos"))switch(D.labelpos.toLowerCase()){case"l":N=-D.width/2;break;case"r":N=D.width/2;break}if(N&&(L+=m?N:-N),N=0,L+=(D.dummy?p:v)/2,L+=(F.dummy?p:v)/2,L+=F.width/2,Object.hasOwn(F,"labelpos"))switch(F.labelpos.toLowerCase()){case"l":N=F.width/2;break;case"r":N=-F.width/2;break}return N&&(L+=m?N:-N),N=0,L}}function w(v,p){return v.node(p).width}}),Bg=re((e,t)=>{var n=se(),r=Fg().positionX;t.exports=o;function o(s){s=n.asNonCompoundGraph(s),i(s),Object.entries(r(s)).forEach(([c,a])=>s.node(c).x=a)}function i(s){let c=n.buildLayerMatrix(s),a=s.graph().ranksep,u=s.graph().rankalign,d=0;c.forEach(l=>{let f=l.reduce((h,g)=>{let x=s.node(g).height;return h>x?h:x},0);l.forEach(h=>{let g=s.node(h);u==="top"?g.y=d+g.height/2:u==="bottom"?g.y=d+f-g.height/2:g.y=d+f/2}),d+=f+a})}}),Yg=re((e,t)=>{var n=Sg(),r=kg(),o=Mg(),i=se().normalizeRanks,s=Ig(),c=se().removeEmptyRanks,a=Ag(),u=Tg(),d=Og(),l=Vg(),f=Bg(),h=se(),g=xe().Graph;t.exports=x;function x(_,R={}){let H=R.debugTiming?h.time:h.notime;return H("layout",()=>{let j=H(" buildLayoutGraph",()=>L(_));return H(" runLayout",()=>b(j,H,R)),H(" updateInputGraph",()=>w(_,j)),j})}function b(_,R,H){R(" makeSpaceForEdgeLabels",()=>N(_)),R(" removeSelfEdges",()=>z(_)),R(" acyclic",()=>n.run(_)),R(" nestingGraph.run",()=>a.run(_)),R(" rank",()=>o(h.asNonCompoundGraph(_))),R(" injectEdgeLabelProxies",()=>T(_)),R(" removeEmptyRanks",()=>c(_)),R(" nestingGraph.cleanup",()=>a.cleanup(_)),R(" normalizeRanks",()=>i(_)),R(" assignRankMinMax",()=>$(_)),R(" removeEdgeLabelProxies",()=>y(_)),R(" normalize.run",()=>r.run(_)),R(" parentDummyChains",()=>s(_)),R(" addBorderSegments",()=>u(_)),R(" order",()=>l(_,H)),R(" insertSelfEdges",()=>V(_)),R(" adjustCoordinateSystem",()=>d.adjust(_)),R(" position",()=>f(_)),R(" positionSelfEdges",()=>B(_)),R(" removeBorderNodes",()=>M(_)),R(" normalize.undo",()=>r.undo(_)),R(" fixupEdgeLabelCoords",()=>I(_)),R(" undoCoordinateSystem",()=>d.undo(_)),R(" translateGraph",()=>P(_)),R(" assignNodeIntersects",()=>E(_)),R(" reversePoints",()=>C(_)),R(" acyclic.undo",()=>n.undo(_))}function w(_,R){_.nodes().forEach(H=>{let j=_.node(H),Y=R.node(H);j&&(j.x=Y.x,j.y=Y.y,j.order=Y.order,j.rank=Y.rank,R.children(H).length&&(j.width=Y.width,j.height=Y.height))}),_.edges().forEach(H=>{let j=_.edge(H),Y=R.edge(H);j.points=Y.points,Object.hasOwn(Y,"x")&&(j.x=Y.x,j.y=Y.y)}),_.graph().width=R.graph().width,_.graph().height=R.graph().height}var v=["nodesep","edgesep","ranksep","marginx","marginy"],p={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb",rankalign:"center"},m=["acyclicer","ranker","rankdir","align","rankalign"],k=["width","height","rank"],S={width:0,height:0},O=["minlen","weight","width","height","labeloffset"],D={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},F=["labelpos"];function L(_){let R=new g({multigraph:!0,compound:!0}),H=A(_.graph());return R.setGraph(Object.assign({},p,X(H,v),h.pick(H,m))),_.nodes().forEach(j=>{let Y=A(_.node(j)),q=X(Y,k);Object.keys(S).forEach(U=>{q[U]===void 0&&(q[U]=S[U])}),R.setNode(j,q),R.setParent(j,_.parent(j))}),_.edges().forEach(j=>{let Y=A(_.edge(j));R.setEdge(j,Object.assign({},D,X(Y,O),h.pick(Y,F)))}),R}function N(_){let R=_.graph();R.ranksep/=2,_.edges().forEach(H=>{let j=_.edge(H);j.minlen*=2,j.labelpos.toLowerCase()!=="c"&&(R.rankdir==="TB"||R.rankdir==="BT"?j.width+=j.labeloffset:j.height+=j.labeloffset)})}function T(_){_.edges().forEach(R=>{let H=_.edge(R);if(H.width&&H.height){let j=_.node(R.v),Y={rank:(_.node(R.w).rank-j.rank)/2+j.rank,e:R};h.addDummyNode(_,"edge-proxy",Y,"_ep")}})}function $(_){let R=0;_.nodes().forEach(H=>{let j=_.node(H);j.borderTop&&(j.minRank=_.node(j.borderTop).rank,j.maxRank=_.node(j.borderBottom).rank,R=Math.max(R,j.maxRank))}),_.graph().maxRank=R}function y(_){_.nodes().forEach(R=>{let H=_.node(R);H.dummy==="edge-proxy"&&(_.edge(H.e).labelRank=H.rank,_.removeNode(R))})}function P(_){let R=Number.POSITIVE_INFINITY,H=0,j=Number.POSITIVE_INFINITY,Y=0,q=_.graph(),U=q.marginx||0,K=q.marginy||0;function Z(J){let ee=J.x,te=J.y,ce=J.width,he=J.height;R=Math.min(R,ee-ce/2),H=Math.max(H,ee+ce/2),j=Math.min(j,te-he/2),Y=Math.max(Y,te+he/2)}_.nodes().forEach(J=>Z(_.node(J))),_.edges().forEach(J=>{let ee=_.edge(J);Object.hasOwn(ee,"x")&&Z(ee)}),R-=U,j-=K,_.nodes().forEach(J=>{let ee=_.node(J);ee.x-=R,ee.y-=j}),_.edges().forEach(J=>{let ee=_.edge(J);ee.points.forEach(te=>{te.x-=R,te.y-=j}),Object.hasOwn(ee,"x")&&(ee.x-=R),Object.hasOwn(ee,"y")&&(ee.y-=j)}),q.width=H-R+U,q.height=Y-j+K}function E(_){_.edges().forEach(R=>{let H=_.edge(R),j=_.node(R.v),Y=_.node(R.w),q,U;H.points?(q=H.points[0],U=H.points[H.points.length-1]):(H.points=[],q=Y,U=j),H.points.unshift(h.intersectRect(j,q)),H.points.push(h.intersectRect(Y,U))})}function I(_){_.edges().forEach(R=>{let H=_.edge(R);if(Object.hasOwn(H,"x"))switch((H.labelpos==="l"||H.labelpos==="r")&&(H.width-=H.labeloffset),H.labelpos){case"l":H.x-=H.width/2+H.labeloffset;break;case"r":H.x+=H.width/2+H.labeloffset;break}})}function C(_){_.edges().forEach(R=>{let H=_.edge(R);H.reversed&&H.points.reverse()})}function M(_){_.nodes().forEach(R=>{if(_.children(R).length){let H=_.node(R),j=_.node(H.borderTop),Y=_.node(H.borderBottom),q=_.node(H.borderLeft[H.borderLeft.length-1]),U=_.node(H.borderRight[H.borderRight.length-1]);H.width=Math.abs(U.x-q.x),H.height=Math.abs(Y.y-j.y),H.x=q.x+H.width/2,H.y=j.y+H.height/2}}),_.nodes().forEach(R=>{_.node(R).dummy==="border"&&_.removeNode(R)})}function z(_){_.edges().forEach(R=>{if(R.v===R.w){var H=_.node(R.v);H.selfEdges||(H.selfEdges=[]),H.selfEdges.push({e:R,label:_.edge(R)}),_.removeEdge(R)}})}function V(_){var R=h.buildLayerMatrix(_);R.forEach(H=>{var j=0;H.forEach((Y,q)=>{var U=_.node(Y);U.order=q+j,(U.selfEdges||[]).forEach(K=>{h.addDummyNode(_,"selfedge",{width:K.label.width,height:K.label.height,rank:U.rank,order:q+ ++j,e:K.e,label:K.label},"_se")}),delete U.selfEdges})})}function B(_){_.nodes().forEach(R=>{var H=_.node(R);if(H.dummy==="selfedge"){var j=_.node(H.e.v),Y=j.x+j.width/2,q=j.y,U=H.x-Y,K=j.height/2;_.setEdge(H.e,H.label),_.removeNode(R),H.label.points=[{x:Y+2*U/3,y:q-K},{x:Y+5*U/6,y:q-K},{x:Y+U,y:q},{x:Y+5*U/6,y:q+K},{x:Y+2*U/3,y:q+K}],H.label.x=H.x,H.label.y=H.y}})}function X(_,R){return h.mapValues(h.pick(_,R),Number)}function A(_){var R={};return _&&Object.entries(_).forEach(([H,j])=>{typeof H=="string"&&(H=H.toLowerCase()),R[H]=j}),R}}),Xg=re((e,t)=>{var n=se(),r=xe().Graph;t.exports={debugOrdering:o};function o(i){let s=n.buildLayerMatrix(i),c=new r({compound:!0,multigraph:!0}).setGraph({});return i.nodes().forEach(a=>{c.setNode(a,{label:a}),c.setParent(a,"layer"+i.node(a).rank)}),i.edges().forEach(a=>c.setEdge(a.v,a.w,{},a.name)),s.forEach((a,u)=>{let d="layer"+u;c.setNode(d,{rank:"same"}),a.reduce((l,f)=>(c.setEdge(l,f,{style:"invis"}),f))}),c}}),Wg=re((e,t)=>{t.exports="2.0.4"}),Gg=re((e,t)=>{t.exports={graphlib:xe(),layout:Yg(),debug:Xg(),util:{time:se().time,notime:se().notime},version:Wg()}});const Jg=Gg();/*! For license information please see dagre.esm.js.LEGAL.txt */export{Kg as B,Zg as C,Qt as H,Qg as M,Q as P,Oe as a,tn as b,sn as c,Jg as d,Ug as i,xa as r,de as s,Ko as t,ni as z};
|