@openez-graph/cli 1.0.3 → 1.2.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.
Binary file
@@ -1 +1 @@
1
- import{r as C,g as bt,a as xt,j as rt}from"./index-BMNDu0y4.js";function Yt(t,n){var e,r=1;t==null&&(t=0),n==null&&(n=0);function i(){var o,l=e.length,s,h=0,c=0;for(o=0;o<l;++o)s=e[o],h+=s.x,c+=s.y;for(h=(h/l-t)*r,c=(c/l-n)*r,o=0;o<l;++o)s=e[o],s.x-=h,s.y-=c}return i.initialize=function(o){e=o},i.x=function(o){return arguments.length?(t=+o,i):t},i.y=function(o){return arguments.length?(n=+o,i):n},i.strength=function(o){return arguments.length?(r=+o,i):r},i}function St(t){const n=+this._x.call(null,t),e=+this._y.call(null,t);return Tt(this.cover(n,e),n,e,t)}function Tt(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o=t._root,l={data:r},s=t._x0,h=t._y0,c=t._x1,x=t._y1,M,w,a,m,g,f,y,d;if(!o)return t._root=l,t;for(;o.length;)if((g=n>=(M=(s+c)/2))?s=M:c=M,(f=e>=(w=(h+x)/2))?h=w:x=w,i=o,!(o=o[y=f<<1|g]))return i[y]=l,t;if(a=+t._x.call(null,o.data),m=+t._y.call(null,o.data),n===a&&e===m)return l.next=o,i?i[y]=l:t._root=l,t;do i=i?i[y]=new Array(4):t._root=new Array(4),(g=n>=(M=(s+c)/2))?s=M:c=M,(f=e>=(w=(h+x)/2))?h=w:x=w;while((y=f<<1|g)===(d=(m>=w)<<1|a>=M));return i[d]=o,i[y]=l,t}function Xt(t){var n,e,r=t.length,i,o,l=new Array(r),s=new Array(r),h=1/0,c=1/0,x=-1/0,M=-1/0;for(e=0;e<r;++e)isNaN(i=+this._x.call(null,n=t[e]))||isNaN(o=+this._y.call(null,n))||(l[e]=i,s[e]=o,i<h&&(h=i),i>x&&(x=i),o<c&&(c=o),o>M&&(M=o));if(h>x||c>M)return this;for(this.cover(h,c).cover(x,M),e=0;e<r;++e)Tt(this,l[e],s[e],t[e]);return this}function Dt(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,o=(r=Math.floor(n))+1;else{for(var l=i-e||1,s=this._root,h,c;e>t||t>=i||r>n||n>=o;)switch(c=(n<r)<<1|t<e,h=new Array(4),h[c]=s,s=h,l*=2,c){case 0:i=e+l,o=r+l;break;case 1:e=i-l,o=r+l;break;case 2:i=e+l,r=o-l;break;case 3:e=i-l,r=o-l;break}this._root&&this._root.length&&(this._root=s)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this}function Bt(){var t=[];return this.visit(function(n){if(!n.length)do t.push(n.data);while(n=n.next)}),t}function Ft(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 H(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function Wt(t,n,e){var r,i=this._x0,o=this._y0,l,s,h,c,x=this._x1,M=this._y1,w=[],a=this._root,m,g;for(a&&w.push(new H(a,i,o,x,M)),e==null?e=1/0:(i=t-e,o=n-e,x=t+e,M=n+e,e*=e);m=w.pop();)if(!(!(a=m.node)||(l=m.x0)>x||(s=m.y0)>M||(h=m.x1)<i||(c=m.y1)<o))if(a.length){var f=(l+h)/2,y=(s+c)/2;w.push(new H(a[3],f,y,h,c),new H(a[2],l,y,f,c),new H(a[1],f,s,h,y),new H(a[0],l,s,f,y)),(g=(n>=y)<<1|t>=f)&&(m=w[w.length-1],w[w.length-1]=w[w.length-1-g],w[w.length-1-g]=m)}else{var d=t-+this._x.call(null,a.data),N=n-+this._y.call(null,a.data),p=d*d+N*N;if(p<e){var A=Math.sqrt(e=p);i=t-A,o=n-A,x=t+A,M=n+A,r=a.data}}return r}function Ot(t){if(isNaN(x=+this._x.call(null,t))||isNaN(M=+this._y.call(null,t)))return this;var n,e=this._root,r,i,o,l=this._x0,s=this._y0,h=this._x1,c=this._y1,x,M,w,a,m,g,f,y;if(!e)return this;if(e.length)for(;;){if((m=x>=(w=(l+h)/2))?l=w:h=w,(g=M>=(a=(s+c)/2))?s=a:c=a,n=e,!(e=e[f=g<<1|m]))return this;if(!e.length)break;(n[f+1&3]||n[f+2&3]||n[f+3&3])&&(r=n,y=f)}for(;e.data!==t;)if(i=e,!(e=e.next))return this;return(o=e.next)&&delete e.next,i?(o?i.next=o:delete i.next,this):n?(o?n[f]=o:delete n[f],(e=n[0]||n[1]||n[2]||n[3])&&e===(n[3]||n[2]||n[1]||n[0])&&!e.length&&(r?r[y]=e:this._root=e),this):(this._root=o,this)}function Ht(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this}function $t(){return this._root}function Gt(){var t=0;return this.visit(function(n){if(!n.length)do++t;while(n=n.next)}),t}function Kt(t){var n=[],e,r=this._root,i,o,l,s,h;for(r&&n.push(new H(r,this._x0,this._y0,this._x1,this._y1));e=n.pop();)if(!t(r=e.node,o=e.x0,l=e.y0,s=e.x1,h=e.y1)&&r.length){var c=(o+s)/2,x=(l+h)/2;(i=r[3])&&n.push(new H(i,c,x,s,h)),(i=r[2])&&n.push(new H(i,o,x,c,h)),(i=r[1])&&n.push(new H(i,c,l,s,x)),(i=r[0])&&n.push(new H(i,o,l,c,x))}return this}function Qt(t){var n=[],e=[],r;for(this._root&&n.push(new H(this._root,this._x0,this._y0,this._x1,this._y1));r=n.pop();){var i=r.node;if(i.length){var o,l=r.x0,s=r.y0,h=r.x1,c=r.y1,x=(l+h)/2,M=(s+c)/2;(o=i[0])&&n.push(new H(o,l,s,x,M)),(o=i[1])&&n.push(new H(o,x,s,h,M)),(o=i[2])&&n.push(new H(o,l,M,x,c)),(o=i[3])&&n.push(new H(o,x,M,h,c))}e.push(r)}for(;r=e.pop();)t(r.node,r.x0,r.y0,r.x1,r.y1);return this}function Zt(t){return t[0]}function Jt(t){return arguments.length?(this._x=t,this):this._x}function Ut(t){return t[1]}function Vt(t){return arguments.length?(this._y=t,this):this._y}function wt(t,n,e){var r=new mt(n??Zt,e??Ut,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function mt(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function kt(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}var G=wt.prototype=mt.prototype;G.copy=function(){var t=new mt(this._x,this._y,this._x0,this._y0,this._x1,this._y1),n=this._root,e,r;if(!n)return t;if(!n.length)return t._root=kt(n),t;for(e=[{source:n,target:t._root=new Array(4)}];n=e.pop();)for(var i=0;i<4;++i)(r=n.source[i])&&(r.length?e.push({source:r,target:n.target[i]=new Array(4)}):n.target[i]=kt(r));return t};G.add=St;G.addAll=Xt;G.cover=Dt;G.data=Bt;G.extent=Ft;G.find=Wt;G.remove=Ot;G.removeAll=Ht;G.root=$t;G.size=Gt;G.visit=Kt;G.visitAfter=Qt;G.x=Jt;G.y=Vt;function $(t){return function(){return t}}function tt(t){return(t()-.5)*1e-6}function qt(t){return t.x+t.vx}function tn(t){return t.y+t.vy}function nn(t){var n,e,r,i=1,o=1;typeof t!="function"&&(t=$(t==null?1:+t));function l(){for(var c,x=n.length,M,w,a,m,g,f,y=0;y<o;++y)for(M=wt(n,qt,tn).visitAfter(s),c=0;c<x;++c)w=n[c],g=e[w.index],f=g*g,a=w.x+w.vx,m=w.y+w.vy,M.visit(d);function d(N,p,A,F,W){var L=N.data,K=N.r,j=g+K;if(L){if(L.index>w.index){var U=a-L.x-L.vx,V=m-L.y-L.vy,Z=U*U+V*V;Z<j*j&&(U===0&&(U=tt(r),Z+=U*U),V===0&&(V=tt(r),Z+=V*V),Z=(j-(Z=Math.sqrt(Z)))/Z*i,w.vx+=(U*=Z)*(j=(K*=K)/(f+K)),w.vy+=(V*=Z)*j,L.vx-=U*(j=1-j),L.vy-=V*j)}return}return p>a+j||F<a-j||A>m+j||W<m-j}}function s(c){if(c.data)return c.r=e[c.data.index];for(var x=c.r=0;x<4;++x)c[x]&&c[x].r>c.r&&(c.r=c[x].r)}function h(){if(n){var c,x=n.length,M;for(e=new Array(x),c=0;c<x;++c)M=n[c],e[M.index]=+t(M,c,n)}}return l.initialize=function(c,x){n=c,r=x,h()},l.iterations=function(c){return arguments.length?(o=+c,l):o},l.strength=function(c){return arguments.length?(i=+c,l):i},l.radius=function(c){return arguments.length?(t=typeof c=="function"?c:$(+c),h(),l):t},l}function en(t){return t.index}function Mt(t,n){var e=t.get(n);if(!e)throw new Error("node not found: "+n);return e}function rn(t){var n=en,e=M,r,i=$(30),o,l,s,h,c,x=1;t==null&&(t=[]);function M(f){return 1/Math.min(s[f.source.index],s[f.target.index])}function w(f){for(var y=0,d=t.length;y<x;++y)for(var N=0,p,A,F,W,L,K,j;N<d;++N)p=t[N],A=p.source,F=p.target,W=F.x+F.vx-A.x-A.vx||tt(c),L=F.y+F.vy-A.y-A.vy||tt(c),K=Math.sqrt(W*W+L*L),K=(K-o[N])/K*f*r[N],W*=K,L*=K,F.vx-=W*(j=h[N]),F.vy-=L*j,A.vx+=W*(j=1-j),A.vy+=L*j}function a(){if(l){var f,y=l.length,d=t.length,N=new Map(l.map((A,F)=>[n(A,F,l),A])),p;for(f=0,s=new Array(y);f<d;++f)p=t[f],p.index=f,typeof p.source!="object"&&(p.source=Mt(N,p.source)),typeof p.target!="object"&&(p.target=Mt(N,p.target)),s[p.source.index]=(s[p.source.index]||0)+1,s[p.target.index]=(s[p.target.index]||0)+1;for(f=0,h=new Array(d);f<d;++f)p=t[f],h[f]=s[p.source.index]/(s[p.source.index]+s[p.target.index]);r=new Array(d),m(),o=new Array(d),g()}}function m(){if(l)for(var f=0,y=t.length;f<y;++f)r[f]=+e(t[f],f,t)}function g(){if(l)for(var f=0,y=t.length;f<y;++f)o[f]=+i(t[f],f,t)}return w.initialize=function(f,y){l=f,c=y,a()},w.links=function(f){return arguments.length?(t=f,a(),w):t},w.id=function(f){return arguments.length?(n=f,w):n},w.iterations=function(f){return arguments.length?(x=+f,w):x},w.strength=function(f){return arguments.length?(e=typeof f=="function"?f:$(+f),m(),w):e},w.distance=function(f){return arguments.length?(i=typeof f=="function"?f:$(+f),g(),w):i},w}var on={value:()=>{}};function Ct(){for(var t=0,n=arguments.length,e={},r;t<n;++t){if(!(r=arguments[t]+"")||r in e||/[\s.]/.test(r))throw new Error("illegal type: "+r);e[r]=[]}return new ft(e)}function ft(t){this._=t}function sn(t,n){return t.trim().split(/^|\s+/).map(function(e){var r="",i=e.indexOf(".");if(i>=0&&(r=e.slice(i+1),e=e.slice(0,i)),e&&!n.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:r}})}ft.prototype=Ct.prototype={constructor:ft,on:function(t,n){var e=this._,r=sn(t+"",e),i,o=-1,l=r.length;if(arguments.length<2){for(;++o<l;)if((i=(t=r[o]).type)&&(i=un(e[i],t.name)))return i;return}if(n!=null&&typeof n!="function")throw new Error("invalid callback: "+n);for(;++o<l;)if(i=(t=r[o]).type)e[i]=Rt(e[i],t.name,n);else if(n==null)for(i in e)e[i]=Rt(e[i],t.name,null);return this},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new ft(t)},call:function(t,n){if((i=arguments.length-2)>0)for(var e=new Array(i),r=0,i,o;r<i;++r)e[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=this._[t],r=0,i=o.length;r<i;++r)o[r].value.apply(n,e)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};function un(t,n){for(var e=0,r=t.length,i;e<r;++e)if((i=t[e]).name===n)return i.value}function Rt(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=on,t=t.slice(0,r).concat(t.slice(r+1));break}return e!=null&&t.push({name:n,value:e}),t}var it=0,st=0,ot=0,Pt=1e3,ht,ut,gt=0,et=0,yt=0,ct=typeof performance=="object"&&performance.now?performance:Date,zt=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function It(){return et||(zt(cn),et=ct.now()+yt)}function cn(){et=0}function pt(){this._call=this._time=this._next=null}pt.prototype=Lt.prototype={constructor:pt,restart:function(t,n,e){if(typeof t!="function")throw new TypeError("callback is not a function");e=(e==null?It():+e)+(n==null?0:+n),!this._next&&ut!==this&&(ut?ut._next=this:ht=this,ut=this),this._call=t,this._time=e,dt()},stop:function(){this._call&&(this._call=null,this._time=1/0,dt())}};function Lt(t,n,e){var r=new pt;return r.restart(t,n,e),r}function ln(){It(),++it;for(var t=ht,n;t;)(n=et-t._time)>=0&&t._call.call(void 0,n),t=t._next;--it}function At(){et=(gt=ct.now())+yt,it=st=0;try{ln()}finally{it=0,fn(),et=0}}function an(){var t=ct.now(),n=t-gt;n>Pt&&(yt-=n,gt=t)}function fn(){for(var t,n=ht,e,r=1/0;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:ht=e);ut=t,dt(r)}function dt(t){if(!it){st&&(st=clearTimeout(st));var n=t-et;n>24?(t<1/0&&(st=setTimeout(At,t-ct.now()-yt)),ot&&(ot=clearInterval(ot))):(ot||(gt=ct.now(),ot=setInterval(an,Pt)),it=1,zt(At))}}const hn=1664525,gn=1013904223,Nt=4294967296;function yn(){let t=1;return()=>(t=(hn*t+gn)%Nt)/Nt}function xn(t){return t.x}function vn(t){return t.y}var pn=10,dn=Math.PI*(3-Math.sqrt(5));function wn(t){var n,e=1,r=.001,i=1-Math.pow(r,1/300),o=0,l=.6,s=new Map,h=Lt(M),c=Ct("tick","end"),x=yn();t==null&&(t=[]);function M(){w(),c.call("tick",n),e<r&&(h.stop(),c.call("end",n))}function w(g){var f,y=t.length,d;g===void 0&&(g=1);for(var N=0;N<g;++N)for(e+=(o-e)*i,s.forEach(function(p){p(e)}),f=0;f<y;++f)d=t[f],d.fx==null?d.x+=d.vx*=l:(d.x=d.fx,d.vx=0),d.fy==null?d.y+=d.vy*=l:(d.y=d.fy,d.vy=0);return n}function a(){for(var g=0,f=t.length,y;g<f;++g){if(y=t[g],y.index=g,y.fx!=null&&(y.x=y.fx),y.fy!=null&&(y.y=y.fy),isNaN(y.x)||isNaN(y.y)){var d=pn*Math.sqrt(.5+g),N=g*dn;y.x=d*Math.cos(N),y.y=d*Math.sin(N)}(isNaN(y.vx)||isNaN(y.vy))&&(y.vx=y.vy=0)}}function m(g){return g.initialize&&g.initialize(t,x),g}return a(),n={tick:w,restart:function(){return h.restart(M),n},stop:function(){return h.stop(),n},nodes:function(g){return arguments.length?(t=g,a(),s.forEach(m),n):t},alpha:function(g){return arguments.length?(e=+g,n):e},alphaMin:function(g){return arguments.length?(r=+g,n):r},alphaDecay:function(g){return arguments.length?(i=+g,n):+i},alphaTarget:function(g){return arguments.length?(o=+g,n):o},velocityDecay:function(g){return arguments.length?(l=1-g,n):1-l},randomSource:function(g){return arguments.length?(x=g,s.forEach(m),n):x},force:function(g,f){return arguments.length>1?(f==null?s.delete(g):s.set(g,m(f)),n):s.get(g)},find:function(g,f,y){var d=0,N=t.length,p,A,F,W,L;for(y==null?y=1/0:y*=y,d=0;d<N;++d)W=t[d],p=g-W.x,A=f-W.y,F=p*p+A*A,F<y&&(L=W,y=F);return L},on:function(g,f){return arguments.length>1?(c.on(g,f),n):c.on(g)}}}function mn(){var t,n,e,r,i=$(-30),o,l=1,s=1/0,h=.81;function c(a){var m,g=t.length,f=wt(t,xn,vn).visitAfter(M);for(r=a,m=0;m<g;++m)n=t[m],f.visit(w)}function x(){if(t){var a,m=t.length,g;for(o=new Array(m),a=0;a<m;++a)g=t[a],o[g.index]=+i(g,a,t)}}function M(a){var m=0,g,f,y=0,d,N,p;if(a.length){for(d=N=p=0;p<4;++p)(g=a[p])&&(f=Math.abs(g.value))&&(m+=g.value,y+=f,d+=f*g.x,N+=f*g.y);a.x=d/y,a.y=N/y}else{g=a,g.x=g.data.x,g.y=g.data.y;do m+=o[g.data.index];while(g=g.next)}a.value=m}function w(a,m,g,f){if(!a.value)return!0;var y=a.x-n.x,d=a.y-n.y,N=f-m,p=y*y+d*d;if(N*N/h<p)return p<s&&(y===0&&(y=tt(e),p+=y*y),d===0&&(d=tt(e),p+=d*d),p<l&&(p=Math.sqrt(l*p)),n.vx+=y*a.value*r/p,n.vy+=d*a.value*r/p),!0;if(a.length||p>=s)return;(a.data!==n||a.next)&&(y===0&&(y=tt(e),p+=y*y),d===0&&(d=tt(e),p+=d*d),p<l&&(p=Math.sqrt(l*p)));do a.data!==n&&(N=o[a.data.index]*r/p,n.vx+=y*N,n.vy+=d*N);while(a=a.next)}return c.initialize=function(a,m){t=a,e=m,x()},c.strength=function(a){return arguments.length?(i=typeof a=="function"?a:$(+a),x(),c):i},c.distanceMin=function(a){return arguments.length?(l=a*a,c):Math.sqrt(l)},c.distanceMax=function(a){return arguments.length?(s=a*a,c):Math.sqrt(s)},c.theta=function(a){return arguments.length?(h=a*a,c):Math.sqrt(h)},c}function _n(t){var n=$(.1),e,r,i;typeof t!="function"&&(t=$(t==null?0:+t));function o(s){for(var h=0,c=e.length,x;h<c;++h)x=e[h],x.vx+=(i[h]-x.x)*r[h]*s}function l(){if(e){var s,h=e.length;for(r=new Array(h),i=new Array(h),s=0;s<h;++s)r[s]=isNaN(i[s]=+t(e[s],s,e))?0:+n(e[s],s,e)}}return o.initialize=function(s){e=s,l()},o.strength=function(s){return arguments.length?(n=typeof s=="function"?s:$(+s),l(),o):n},o.x=function(s){return arguments.length?(t=typeof s=="function"?s:$(+s),l(),o):t},o}function bn(t){var n=$(.1),e,r,i;typeof t!="function"&&(t=$(t==null?0:+t));function o(s){for(var h=0,c=e.length,x;h<c;++h)x=e[h],x.vy+=(i[h]-x.y)*r[h]*s}function l(){if(e){var s,h=e.length;for(r=new Array(h),i=new Array(h),s=0;s<h;++s)r[s]=isNaN(i[s]=+t(e[s],s,e))?0:+n(e[s],s,e)}}return o.initialize=function(s){e=s,l()},o.strength=function(s){return arguments.length?(n=typeof s=="function"?s:$(+s),l(),o):n},o.y=function(s){return arguments.length?(t=typeof s=="function"?s:$(+s),l(),o):t},o}function kn(t){return 4+Math.min(Math.sqrt(t)*1.2,10)}const Mn="#1a1a2e",Rn="#e0e0e0";function Et(t,n,e){let r=1/0,i=-1/0,o=1/0,l=-1/0;for(const h of t)h.x==null||h.y==null||(r=Math.min(r,h.x),i=Math.max(i,h.x),o=Math.min(o,h.y),l=Math.max(l,h.y));if(!Number.isFinite(r))return{x:0,y:0,k:1};const s=Math.max(.1,Math.min(4,Math.min((n-80)/Math.max(1,i-r),(e-80)/Math.max(1,l-o))));return{x:n/2-(r+i)/2*s,y:e/2-(o+l)/2*s,k:s}}function Nn({nodes:t,edges:n,selectedNodeId:e,onNodeClick:r,onNodeHover:i,className:o=""}){const l=C.useRef(null),s=C.useRef(null),h=C.useRef(null),c=C.useRef([]),x=C.useRef([]),M=C.useRef(null),w=C.useRef(null),a=C.useRef({x:0,y:0,k:1}),m=C.useRef(!1),g=C.useRef({x:0,y:0}),f=C.useRef({x:0,y:0}),y=C.useRef(!1),d=C.useRef(null),N=C.useRef(e??null),p=C.useRef(null),A=C.useRef(!0),F=C.useRef(new Map),W=C.useRef(r);W.current=r;const L=C.useRef(i);L.current=i,N.current=e??null,C.useEffect(()=>{var T;if(t.length===0){c.current=[],x.current=[],F.current=new Map,w.current=null,A.current=!0,(T=h.current)==null||T.stop(),h.current=null;return}const _=new Map,u=t.map((R,E)=>(_.set(R.id,E),{id:R.id,label:R.label,type:R.type,degree:R.degree,r:kn(R.degree)}));c.current=u;const S=[];for(const R of n){const E=_.get(R.source),z=_.get(R.target);E===void 0||z===void 0||S.push({source:u[E],target:u[z],type:R.type,weight:R.weight})}x.current=S;const D=new Map;for(const R of S){const E=bt(R.type);let z=D.get(E);z||(z=[],D.set(E,z)),z.push(R)}F.current=D;const X=l.current,O=(X==null?void 0:X.clientWidth)||800,B=(X==null?void 0:X.clientHeight)||600,v=u.length>5e3,k=wn(u).force("link",rn(S).id(R=>R.id).distance(R=>30+60/Math.max(1,R.source.degree+R.target.degree)).strength(v?.08:.3)).force("charge",v?null:mn().strength(R=>-30-R.degree*2)).force("center",Yt(O/2,B/2)).force("x",v?null:_n(O/2).strength(.04)).force("y",v?null:bn(B/2).strength(.04)).force("collide",v?null:nn().radius(R=>R.r+4)).alphaDecay(v?.08:.02);return k.on("tick.fit",()=>{k.alpha()<.35&&(a.current=Et(u,O,B),k.on("tick.fit",null))}),k.on("tick.dirty",()=>{A.current=!0}),h.current=k,A.current=!0,()=>{k.stop()}},[t,n]),C.useEffect(()=>{if(!e){M.current=null,A.current=!0;return}const _=new Set([e]);for(const u of x.current)u.source.id===e&&_.add(u.target.id),u.target.id===e&&_.add(u.source.id);M.current=_,A.current=!0},[e,t,n]);const K=C.useCallback(()=>{const _=l.current;if(!_)return;const u=_.getContext("2d");if(!u)return;const S=Math.min(devicePixelRatio,2),D=_.width/S,X=_.height/S;u.save(),u.clearRect(0,0,D,X),u.fillStyle=Mn,u.fillRect(0,0,D,X);const{x:O,y:B,k:v}=a.current;u.translate(O,B),u.scale(v,v);const k=c.current,T=x.current,R=N.current,E=d.current,z=M.current,Q=!!(R||E),nt=R||E,I=R?z:w.current;if(Q&&nt){u.save(),u.globalAlpha=.03,u.strokeStyle="#64748b",u.lineWidth=1/v,u.beginPath();for(const b of T){const P=b.source,Y=b.target;P.x==null||P.y==null||Y.x==null||Y.y==null||I!=null&&I.has(P.id)&&(I!=null&&I.has(Y.id))||(u.moveTo(P.x,P.y),u.lineTo(Y.x,Y.y))}u.stroke(),u.restore(),u.save(),u.globalAlpha=.6,u.lineWidth=1.5/v,u.beginPath();for(const b of T){const P=b.source,Y=b.target;P.x==null||P.y==null||Y.x==null||Y.y==null||I!=null&&I.has(P.id)&&(I!=null&&I.has(Y.id))&&(u.moveTo(P.x,P.y),u.lineTo(Y.x,Y.y))}u.strokeStyle=bt("default"),u.stroke(),u.restore()}else{u.save(),u.globalAlpha=.4,u.lineWidth=1.2/v;for(const[b,P]of F.current){u.strokeStyle=b,u.beginPath();for(const Y of P){const q=Y.source,J=Y.target;q.x==null||q.y==null||J.x==null||J.y==null||(u.moveTo(q.x,q.y),u.lineTo(J.x,J.y))}u.stroke()}u.restore()}for(const b of k){if(b.x==null||b.y==null)continue;const P=b.id===R,Y=b.id===E;if(!P&&!Y)continue;const q=P?b.r*1.7:b.r*1.35;u.globalAlpha=P?.35:.22,u.fillStyle=xt(b.type),u.beginPath(),u.arc(b.x,b.y,q*2.8,0,Math.PI*2),u.fill()}for(const b of k){if(b.x==null||b.y==null)continue;const P=b.id===R,Y=b.id===E,q=!Q||((I==null?void 0:I.has(b.id))??b.id===nt);let J=1;Q&&!q&&(J=.1);const at=P?b.r*1.7:Y?b.r*1.35:b.r;u.globalAlpha=J,u.fillStyle=xt(b.type),u.beginPath(),u.arc(b.x,b.y,at,0,Math.PI*2),u.fill(),u.globalAlpha=J*.8,u.strokeStyle="rgba(255,255,255,0.3)",u.lineWidth=1/v,u.stroke(),(P||Y)&&(u.globalAlpha=1,u.strokeStyle=P?"#ffffff":xt(b.type),u.lineWidth=(P?2:1.5)/v,u.stroke())}u.globalAlpha=1;const lt=k.length>5e3?30:k.length>1e3?8:3,jt=v>1.8&&k.length<3e3;u.font=`600 ${12/v}px system-ui, -apple-system, sans-serif`,u.textAlign="center",u.textBaseline="middle";for(const b of k){if(b.x==null||b.y==null)continue;const P=b.id===R,Y=b.id===E,q=b.degree>=lt,J=!Q||((I==null?void 0:I.has(b.id))??b.id===nt);if(!(P||Y||q||jt)||Q&&!J&&!P&&!Y)continue;const at=b.y-b.r-8/v,_t=b.label.length>48?`${b.label.slice(0,45)}…`:b.label;u.globalAlpha=J?.9:.3,u.lineJoin="round",u.lineWidth=3/v,u.strokeStyle="rgba(23,23,23,0.95)",u.strokeText(_t,b.x,at),u.fillStyle=P||Y?"#ffffff":Rn,u.fillText(_t,b.x,at),u.globalAlpha=1}u.restore(),A.current=!1},[]);C.useEffect(()=>{const _=l.current,u=s.current;if(!_||!u)return;const S=()=>{const v=Math.min(devicePixelRatio,2),k=u.clientWidth,T=u.clientHeight;_.width=k*v,_.height=T*v,_.style.width=k+"px",_.style.height=T+"px";const R=_.getContext("2d");R&&R.setTransform(v,0,0,v,0,0),A.current=!0};S();const D=new ResizeObserver(S);D.observe(u);let X=0,O=0;const B=v=>{X=requestAnimationFrame(B),A.current&&(c.current.length>5e3&&v-O<33||(O=v,K()))};return X=requestAnimationFrame(B),()=>{cancelAnimationFrame(X),D.disconnect()}},[K]);const j=C.useCallback((_,u)=>{const S=l.current;if(!S)return null;const D=S.getBoundingClientRect(),{x:X,y:O,k:B}=a.current,v=(_-D.left-X)/B,k=(u-D.top-O)/B,T=c.current;for(let R=T.length-1;R>=0;R--){const E=T[R];if(E.x==null||E.y==null)continue;const z=E.x-v,Q=E.y-k;if(z*z+Q*Q<=(E.r+3)*(E.r+3))return E}return null},[]);C.useEffect(()=>{const _=l.current;if(!_)return;const u=_;function S(v){f.current={x:v.clientX,y:v.clientY},y.current=!1;const k=j(v.clientX,v.clientY);if(k){p.current=k;const T=h.current;T&&(T.alphaTarget(.3).restart(),k.fx=k.x,k.fy=k.y),u.setPointerCapture(v.pointerId)}else m.current=!0,g.current={x:v.clientX,y:v.clientY},u.setPointerCapture(v.pointerId)}function D(v){var R;if(Math.hypot(v.clientX-f.current.x,v.clientY-f.current.y)>3&&(y.current=!0),p.current){const E=p.current,z=u.getBoundingClientRect(),{x:Q,y:nt,k:I}=a.current;E.fx=(v.clientX-z.left-Q)/I,E.fy=(v.clientY-z.top-nt)/I,A.current=!0;return}if(m.current){const E=v.clientX-g.current.x,z=v.clientY-g.current.y;a.current.x+=E,a.current.y+=z,g.current={x:v.clientX,y:v.clientY},A.current=!0;return}const k=j(v.clientX,v.clientY),T=(k==null?void 0:k.id)??null;if(T!==d.current){d.current=T;const E=T?new Set([T]):null;if(E)for(const z of x.current)z.source.id===T&&E.add(z.target.id),z.target.id===T&&E.add(z.source.id);w.current=E,(R=L.current)==null||R.call(L,T),u.style.cursor=T?"pointer":"default",A.current=!0}}function X(v){if(p.current){const k=p.current,T=h.current;T&&T.alphaTarget(0),k.fx=null,k.fy=null,p.current=null}m.current=!1,u.hasPointerCapture(v.pointerId)&&u.releasePointerCapture(v.pointerId)}function O(v){var T;if(y.current)return;const k=j(v.clientX,v.clientY);(T=W.current)==null||T.call(W,(k==null?void 0:k.id)??"")}function B(v){v.preventDefault();const k=u.getBoundingClientRect(),T=v.clientX-k.left,R=v.clientY-k.top,{x:E,y:z,k:Q}=a.current,nt=-v.deltaY*.001,I=Math.max(.1,Math.min(8,Q*Math.exp(nt))),lt=I/Q;a.current.x=T-(T-E)*lt,a.current.y=R-(R-z)*lt,a.current.k=I,A.current=!0}return u.addEventListener("pointerdown",S),u.addEventListener("pointermove",D),u.addEventListener("pointerup",X),u.addEventListener("click",O),u.addEventListener("wheel",B,{passive:!1}),()=>{u.removeEventListener("pointerdown",S),u.removeEventListener("pointermove",D),u.removeEventListener("pointerup",X),u.removeEventListener("click",O),u.removeEventListener("wheel",B)}},[j]);const U=C.useCallback(()=>{const _=l.current;if(!_)return;const u=_.getBoundingClientRect(),S=u.width/2,D=u.height/2,{x:X,y:O,k:B}=a.current,v=Math.min(8,B*1.3),k=v/B;a.current.x=S-(S-X)*k,a.current.y=D-(D-O)*k,a.current.k=v,A.current=!0},[]),V=C.useCallback(()=>{const _=l.current;if(!_)return;const u=_.getBoundingClientRect(),S=u.width/2,D=u.height/2,{x:X,y:O,k:B}=a.current,v=Math.max(.1,B/1.3),k=v/B;a.current.x=S-(S-X)*k,a.current.y=D-(D-O)*k,a.current.k=v,A.current=!0},[]),Z=C.useCallback(()=>{const _=l.current;_&&(a.current=Et(c.current,_.clientWidth,_.clientHeight),A.current=!0)},[]);return rt.jsxs("div",{ref:s,style:{position:"relative",width:"100%",height:"100%"},className:o,children:[rt.jsx("canvas",{ref:l,style:{width:"100%",height:"100%",display:"block",cursor:"default",touchAction:"none"}}),rt.jsxs("div",{style:{position:"absolute",bottom:12,right:12,display:"flex",flexDirection:"column",gap:2},children:[rt.jsx("button",{onClick:U,"aria-label":"Zoom in",style:vt,onMouseEnter:_=>_.currentTarget.style.background="rgba(255,255,255,0.12)",onMouseLeave:_=>_.currentTarget.style.background="rgba(0,0,0,0.5)",children:"+"}),rt.jsx("button",{onClick:V,"aria-label":"Zoom out",style:vt,onMouseEnter:_=>_.currentTarget.style.background="rgba(255,255,255,0.12)",onMouseLeave:_=>_.currentTarget.style.background="rgba(0,0,0,0.5)",children:"−"}),rt.jsx("button",{onClick:Z,"aria-label":"Fit graph to view",style:vt,onMouseEnter:_=>_.currentTarget.style.background="rgba(255,255,255,0.12)",onMouseLeave:_=>_.currentTarget.style.background="rgba(0,0,0,0.5)",children:"⛶"})]})]})}const vt={width:32,height:32,border:"1px solid rgba(255,255,255,0.1)",borderRadius:6,background:"rgba(0,0,0,0.5)",color:"#fff",fontSize:18,lineHeight:1,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",backdropFilter:"blur(8px)"};export{Nn as WorkspaceGraph};
1
+ import{r as C,g as bt,a as xt,j as rt}from"./index-BFGg8xfE.js";function Yt(t,n){var e,r=1;t==null&&(t=0),n==null&&(n=0);function i(){var o,l=e.length,s,h=0,c=0;for(o=0;o<l;++o)s=e[o],h+=s.x,c+=s.y;for(h=(h/l-t)*r,c=(c/l-n)*r,o=0;o<l;++o)s=e[o],s.x-=h,s.y-=c}return i.initialize=function(o){e=o},i.x=function(o){return arguments.length?(t=+o,i):t},i.y=function(o){return arguments.length?(n=+o,i):n},i.strength=function(o){return arguments.length?(r=+o,i):r},i}function St(t){const n=+this._x.call(null,t),e=+this._y.call(null,t);return Tt(this.cover(n,e),n,e,t)}function Tt(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o=t._root,l={data:r},s=t._x0,h=t._y0,c=t._x1,x=t._y1,M,w,a,m,g,f,y,d;if(!o)return t._root=l,t;for(;o.length;)if((g=n>=(M=(s+c)/2))?s=M:c=M,(f=e>=(w=(h+x)/2))?h=w:x=w,i=o,!(o=o[y=f<<1|g]))return i[y]=l,t;if(a=+t._x.call(null,o.data),m=+t._y.call(null,o.data),n===a&&e===m)return l.next=o,i?i[y]=l:t._root=l,t;do i=i?i[y]=new Array(4):t._root=new Array(4),(g=n>=(M=(s+c)/2))?s=M:c=M,(f=e>=(w=(h+x)/2))?h=w:x=w;while((y=f<<1|g)===(d=(m>=w)<<1|a>=M));return i[d]=o,i[y]=l,t}function Xt(t){var n,e,r=t.length,i,o,l=new Array(r),s=new Array(r),h=1/0,c=1/0,x=-1/0,M=-1/0;for(e=0;e<r;++e)isNaN(i=+this._x.call(null,n=t[e]))||isNaN(o=+this._y.call(null,n))||(l[e]=i,s[e]=o,i<h&&(h=i),i>x&&(x=i),o<c&&(c=o),o>M&&(M=o));if(h>x||c>M)return this;for(this.cover(h,c).cover(x,M),e=0;e<r;++e)Tt(this,l[e],s[e],t[e]);return this}function Dt(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,o=(r=Math.floor(n))+1;else{for(var l=i-e||1,s=this._root,h,c;e>t||t>=i||r>n||n>=o;)switch(c=(n<r)<<1|t<e,h=new Array(4),h[c]=s,s=h,l*=2,c){case 0:i=e+l,o=r+l;break;case 1:e=i-l,o=r+l;break;case 2:i=e+l,r=o-l;break;case 3:e=i-l,r=o-l;break}this._root&&this._root.length&&(this._root=s)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this}function Bt(){var t=[];return this.visit(function(n){if(!n.length)do t.push(n.data);while(n=n.next)}),t}function Ft(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 H(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function Wt(t,n,e){var r,i=this._x0,o=this._y0,l,s,h,c,x=this._x1,M=this._y1,w=[],a=this._root,m,g;for(a&&w.push(new H(a,i,o,x,M)),e==null?e=1/0:(i=t-e,o=n-e,x=t+e,M=n+e,e*=e);m=w.pop();)if(!(!(a=m.node)||(l=m.x0)>x||(s=m.y0)>M||(h=m.x1)<i||(c=m.y1)<o))if(a.length){var f=(l+h)/2,y=(s+c)/2;w.push(new H(a[3],f,y,h,c),new H(a[2],l,y,f,c),new H(a[1],f,s,h,y),new H(a[0],l,s,f,y)),(g=(n>=y)<<1|t>=f)&&(m=w[w.length-1],w[w.length-1]=w[w.length-1-g],w[w.length-1-g]=m)}else{var d=t-+this._x.call(null,a.data),N=n-+this._y.call(null,a.data),p=d*d+N*N;if(p<e){var A=Math.sqrt(e=p);i=t-A,o=n-A,x=t+A,M=n+A,r=a.data}}return r}function Ot(t){if(isNaN(x=+this._x.call(null,t))||isNaN(M=+this._y.call(null,t)))return this;var n,e=this._root,r,i,o,l=this._x0,s=this._y0,h=this._x1,c=this._y1,x,M,w,a,m,g,f,y;if(!e)return this;if(e.length)for(;;){if((m=x>=(w=(l+h)/2))?l=w:h=w,(g=M>=(a=(s+c)/2))?s=a:c=a,n=e,!(e=e[f=g<<1|m]))return this;if(!e.length)break;(n[f+1&3]||n[f+2&3]||n[f+3&3])&&(r=n,y=f)}for(;e.data!==t;)if(i=e,!(e=e.next))return this;return(o=e.next)&&delete e.next,i?(o?i.next=o:delete i.next,this):n?(o?n[f]=o:delete n[f],(e=n[0]||n[1]||n[2]||n[3])&&e===(n[3]||n[2]||n[1]||n[0])&&!e.length&&(r?r[y]=e:this._root=e),this):(this._root=o,this)}function Ht(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this}function $t(){return this._root}function Gt(){var t=0;return this.visit(function(n){if(!n.length)do++t;while(n=n.next)}),t}function Kt(t){var n=[],e,r=this._root,i,o,l,s,h;for(r&&n.push(new H(r,this._x0,this._y0,this._x1,this._y1));e=n.pop();)if(!t(r=e.node,o=e.x0,l=e.y0,s=e.x1,h=e.y1)&&r.length){var c=(o+s)/2,x=(l+h)/2;(i=r[3])&&n.push(new H(i,c,x,s,h)),(i=r[2])&&n.push(new H(i,o,x,c,h)),(i=r[1])&&n.push(new H(i,c,l,s,x)),(i=r[0])&&n.push(new H(i,o,l,c,x))}return this}function Qt(t){var n=[],e=[],r;for(this._root&&n.push(new H(this._root,this._x0,this._y0,this._x1,this._y1));r=n.pop();){var i=r.node;if(i.length){var o,l=r.x0,s=r.y0,h=r.x1,c=r.y1,x=(l+h)/2,M=(s+c)/2;(o=i[0])&&n.push(new H(o,l,s,x,M)),(o=i[1])&&n.push(new H(o,x,s,h,M)),(o=i[2])&&n.push(new H(o,l,M,x,c)),(o=i[3])&&n.push(new H(o,x,M,h,c))}e.push(r)}for(;r=e.pop();)t(r.node,r.x0,r.y0,r.x1,r.y1);return this}function Zt(t){return t[0]}function Jt(t){return arguments.length?(this._x=t,this):this._x}function Ut(t){return t[1]}function Vt(t){return arguments.length?(this._y=t,this):this._y}function wt(t,n,e){var r=new mt(n??Zt,e??Ut,NaN,NaN,NaN,NaN);return t==null?r:r.addAll(t)}function mt(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function kt(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}var G=wt.prototype=mt.prototype;G.copy=function(){var t=new mt(this._x,this._y,this._x0,this._y0,this._x1,this._y1),n=this._root,e,r;if(!n)return t;if(!n.length)return t._root=kt(n),t;for(e=[{source:n,target:t._root=new Array(4)}];n=e.pop();)for(var i=0;i<4;++i)(r=n.source[i])&&(r.length?e.push({source:r,target:n.target[i]=new Array(4)}):n.target[i]=kt(r));return t};G.add=St;G.addAll=Xt;G.cover=Dt;G.data=Bt;G.extent=Ft;G.find=Wt;G.remove=Ot;G.removeAll=Ht;G.root=$t;G.size=Gt;G.visit=Kt;G.visitAfter=Qt;G.x=Jt;G.y=Vt;function $(t){return function(){return t}}function tt(t){return(t()-.5)*1e-6}function qt(t){return t.x+t.vx}function tn(t){return t.y+t.vy}function nn(t){var n,e,r,i=1,o=1;typeof t!="function"&&(t=$(t==null?1:+t));function l(){for(var c,x=n.length,M,w,a,m,g,f,y=0;y<o;++y)for(M=wt(n,qt,tn).visitAfter(s),c=0;c<x;++c)w=n[c],g=e[w.index],f=g*g,a=w.x+w.vx,m=w.y+w.vy,M.visit(d);function d(N,p,A,F,W){var L=N.data,K=N.r,j=g+K;if(L){if(L.index>w.index){var U=a-L.x-L.vx,V=m-L.y-L.vy,Z=U*U+V*V;Z<j*j&&(U===0&&(U=tt(r),Z+=U*U),V===0&&(V=tt(r),Z+=V*V),Z=(j-(Z=Math.sqrt(Z)))/Z*i,w.vx+=(U*=Z)*(j=(K*=K)/(f+K)),w.vy+=(V*=Z)*j,L.vx-=U*(j=1-j),L.vy-=V*j)}return}return p>a+j||F<a-j||A>m+j||W<m-j}}function s(c){if(c.data)return c.r=e[c.data.index];for(var x=c.r=0;x<4;++x)c[x]&&c[x].r>c.r&&(c.r=c[x].r)}function h(){if(n){var c,x=n.length,M;for(e=new Array(x),c=0;c<x;++c)M=n[c],e[M.index]=+t(M,c,n)}}return l.initialize=function(c,x){n=c,r=x,h()},l.iterations=function(c){return arguments.length?(o=+c,l):o},l.strength=function(c){return arguments.length?(i=+c,l):i},l.radius=function(c){return arguments.length?(t=typeof c=="function"?c:$(+c),h(),l):t},l}function en(t){return t.index}function Mt(t,n){var e=t.get(n);if(!e)throw new Error("node not found: "+n);return e}function rn(t){var n=en,e=M,r,i=$(30),o,l,s,h,c,x=1;t==null&&(t=[]);function M(f){return 1/Math.min(s[f.source.index],s[f.target.index])}function w(f){for(var y=0,d=t.length;y<x;++y)for(var N=0,p,A,F,W,L,K,j;N<d;++N)p=t[N],A=p.source,F=p.target,W=F.x+F.vx-A.x-A.vx||tt(c),L=F.y+F.vy-A.y-A.vy||tt(c),K=Math.sqrt(W*W+L*L),K=(K-o[N])/K*f*r[N],W*=K,L*=K,F.vx-=W*(j=h[N]),F.vy-=L*j,A.vx+=W*(j=1-j),A.vy+=L*j}function a(){if(l){var f,y=l.length,d=t.length,N=new Map(l.map((A,F)=>[n(A,F,l),A])),p;for(f=0,s=new Array(y);f<d;++f)p=t[f],p.index=f,typeof p.source!="object"&&(p.source=Mt(N,p.source)),typeof p.target!="object"&&(p.target=Mt(N,p.target)),s[p.source.index]=(s[p.source.index]||0)+1,s[p.target.index]=(s[p.target.index]||0)+1;for(f=0,h=new Array(d);f<d;++f)p=t[f],h[f]=s[p.source.index]/(s[p.source.index]+s[p.target.index]);r=new Array(d),m(),o=new Array(d),g()}}function m(){if(l)for(var f=0,y=t.length;f<y;++f)r[f]=+e(t[f],f,t)}function g(){if(l)for(var f=0,y=t.length;f<y;++f)o[f]=+i(t[f],f,t)}return w.initialize=function(f,y){l=f,c=y,a()},w.links=function(f){return arguments.length?(t=f,a(),w):t},w.id=function(f){return arguments.length?(n=f,w):n},w.iterations=function(f){return arguments.length?(x=+f,w):x},w.strength=function(f){return arguments.length?(e=typeof f=="function"?f:$(+f),m(),w):e},w.distance=function(f){return arguments.length?(i=typeof f=="function"?f:$(+f),g(),w):i},w}var on={value:()=>{}};function Ct(){for(var t=0,n=arguments.length,e={},r;t<n;++t){if(!(r=arguments[t]+"")||r in e||/[\s.]/.test(r))throw new Error("illegal type: "+r);e[r]=[]}return new ft(e)}function ft(t){this._=t}function sn(t,n){return t.trim().split(/^|\s+/).map(function(e){var r="",i=e.indexOf(".");if(i>=0&&(r=e.slice(i+1),e=e.slice(0,i)),e&&!n.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:r}})}ft.prototype=Ct.prototype={constructor:ft,on:function(t,n){var e=this._,r=sn(t+"",e),i,o=-1,l=r.length;if(arguments.length<2){for(;++o<l;)if((i=(t=r[o]).type)&&(i=un(e[i],t.name)))return i;return}if(n!=null&&typeof n!="function")throw new Error("invalid callback: "+n);for(;++o<l;)if(i=(t=r[o]).type)e[i]=Rt(e[i],t.name,n);else if(n==null)for(i in e)e[i]=Rt(e[i],t.name,null);return this},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new ft(t)},call:function(t,n){if((i=arguments.length-2)>0)for(var e=new Array(i),r=0,i,o;r<i;++r)e[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=this._[t],r=0,i=o.length;r<i;++r)o[r].value.apply(n,e)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};function un(t,n){for(var e=0,r=t.length,i;e<r;++e)if((i=t[e]).name===n)return i.value}function Rt(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=on,t=t.slice(0,r).concat(t.slice(r+1));break}return e!=null&&t.push({name:n,value:e}),t}var it=0,st=0,ot=0,Pt=1e3,ht,ut,gt=0,et=0,yt=0,ct=typeof performance=="object"&&performance.now?performance:Date,zt=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function It(){return et||(zt(cn),et=ct.now()+yt)}function cn(){et=0}function pt(){this._call=this._time=this._next=null}pt.prototype=Lt.prototype={constructor:pt,restart:function(t,n,e){if(typeof t!="function")throw new TypeError("callback is not a function");e=(e==null?It():+e)+(n==null?0:+n),!this._next&&ut!==this&&(ut?ut._next=this:ht=this,ut=this),this._call=t,this._time=e,dt()},stop:function(){this._call&&(this._call=null,this._time=1/0,dt())}};function Lt(t,n,e){var r=new pt;return r.restart(t,n,e),r}function ln(){It(),++it;for(var t=ht,n;t;)(n=et-t._time)>=0&&t._call.call(void 0,n),t=t._next;--it}function At(){et=(gt=ct.now())+yt,it=st=0;try{ln()}finally{it=0,fn(),et=0}}function an(){var t=ct.now(),n=t-gt;n>Pt&&(yt-=n,gt=t)}function fn(){for(var t,n=ht,e,r=1/0;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:ht=e);ut=t,dt(r)}function dt(t){if(!it){st&&(st=clearTimeout(st));var n=t-et;n>24?(t<1/0&&(st=setTimeout(At,t-ct.now()-yt)),ot&&(ot=clearInterval(ot))):(ot||(gt=ct.now(),ot=setInterval(an,Pt)),it=1,zt(At))}}const hn=1664525,gn=1013904223,Nt=4294967296;function yn(){let t=1;return()=>(t=(hn*t+gn)%Nt)/Nt}function xn(t){return t.x}function vn(t){return t.y}var pn=10,dn=Math.PI*(3-Math.sqrt(5));function wn(t){var n,e=1,r=.001,i=1-Math.pow(r,1/300),o=0,l=.6,s=new Map,h=Lt(M),c=Ct("tick","end"),x=yn();t==null&&(t=[]);function M(){w(),c.call("tick",n),e<r&&(h.stop(),c.call("end",n))}function w(g){var f,y=t.length,d;g===void 0&&(g=1);for(var N=0;N<g;++N)for(e+=(o-e)*i,s.forEach(function(p){p(e)}),f=0;f<y;++f)d=t[f],d.fx==null?d.x+=d.vx*=l:(d.x=d.fx,d.vx=0),d.fy==null?d.y+=d.vy*=l:(d.y=d.fy,d.vy=0);return n}function a(){for(var g=0,f=t.length,y;g<f;++g){if(y=t[g],y.index=g,y.fx!=null&&(y.x=y.fx),y.fy!=null&&(y.y=y.fy),isNaN(y.x)||isNaN(y.y)){var d=pn*Math.sqrt(.5+g),N=g*dn;y.x=d*Math.cos(N),y.y=d*Math.sin(N)}(isNaN(y.vx)||isNaN(y.vy))&&(y.vx=y.vy=0)}}function m(g){return g.initialize&&g.initialize(t,x),g}return a(),n={tick:w,restart:function(){return h.restart(M),n},stop:function(){return h.stop(),n},nodes:function(g){return arguments.length?(t=g,a(),s.forEach(m),n):t},alpha:function(g){return arguments.length?(e=+g,n):e},alphaMin:function(g){return arguments.length?(r=+g,n):r},alphaDecay:function(g){return arguments.length?(i=+g,n):+i},alphaTarget:function(g){return arguments.length?(o=+g,n):o},velocityDecay:function(g){return arguments.length?(l=1-g,n):1-l},randomSource:function(g){return arguments.length?(x=g,s.forEach(m),n):x},force:function(g,f){return arguments.length>1?(f==null?s.delete(g):s.set(g,m(f)),n):s.get(g)},find:function(g,f,y){var d=0,N=t.length,p,A,F,W,L;for(y==null?y=1/0:y*=y,d=0;d<N;++d)W=t[d],p=g-W.x,A=f-W.y,F=p*p+A*A,F<y&&(L=W,y=F);return L},on:function(g,f){return arguments.length>1?(c.on(g,f),n):c.on(g)}}}function mn(){var t,n,e,r,i=$(-30),o,l=1,s=1/0,h=.81;function c(a){var m,g=t.length,f=wt(t,xn,vn).visitAfter(M);for(r=a,m=0;m<g;++m)n=t[m],f.visit(w)}function x(){if(t){var a,m=t.length,g;for(o=new Array(m),a=0;a<m;++a)g=t[a],o[g.index]=+i(g,a,t)}}function M(a){var m=0,g,f,y=0,d,N,p;if(a.length){for(d=N=p=0;p<4;++p)(g=a[p])&&(f=Math.abs(g.value))&&(m+=g.value,y+=f,d+=f*g.x,N+=f*g.y);a.x=d/y,a.y=N/y}else{g=a,g.x=g.data.x,g.y=g.data.y;do m+=o[g.data.index];while(g=g.next)}a.value=m}function w(a,m,g,f){if(!a.value)return!0;var y=a.x-n.x,d=a.y-n.y,N=f-m,p=y*y+d*d;if(N*N/h<p)return p<s&&(y===0&&(y=tt(e),p+=y*y),d===0&&(d=tt(e),p+=d*d),p<l&&(p=Math.sqrt(l*p)),n.vx+=y*a.value*r/p,n.vy+=d*a.value*r/p),!0;if(a.length||p>=s)return;(a.data!==n||a.next)&&(y===0&&(y=tt(e),p+=y*y),d===0&&(d=tt(e),p+=d*d),p<l&&(p=Math.sqrt(l*p)));do a.data!==n&&(N=o[a.data.index]*r/p,n.vx+=y*N,n.vy+=d*N);while(a=a.next)}return c.initialize=function(a,m){t=a,e=m,x()},c.strength=function(a){return arguments.length?(i=typeof a=="function"?a:$(+a),x(),c):i},c.distanceMin=function(a){return arguments.length?(l=a*a,c):Math.sqrt(l)},c.distanceMax=function(a){return arguments.length?(s=a*a,c):Math.sqrt(s)},c.theta=function(a){return arguments.length?(h=a*a,c):Math.sqrt(h)},c}function _n(t){var n=$(.1),e,r,i;typeof t!="function"&&(t=$(t==null?0:+t));function o(s){for(var h=0,c=e.length,x;h<c;++h)x=e[h],x.vx+=(i[h]-x.x)*r[h]*s}function l(){if(e){var s,h=e.length;for(r=new Array(h),i=new Array(h),s=0;s<h;++s)r[s]=isNaN(i[s]=+t(e[s],s,e))?0:+n(e[s],s,e)}}return o.initialize=function(s){e=s,l()},o.strength=function(s){return arguments.length?(n=typeof s=="function"?s:$(+s),l(),o):n},o.x=function(s){return arguments.length?(t=typeof s=="function"?s:$(+s),l(),o):t},o}function bn(t){var n=$(.1),e,r,i;typeof t!="function"&&(t=$(t==null?0:+t));function o(s){for(var h=0,c=e.length,x;h<c;++h)x=e[h],x.vy+=(i[h]-x.y)*r[h]*s}function l(){if(e){var s,h=e.length;for(r=new Array(h),i=new Array(h),s=0;s<h;++s)r[s]=isNaN(i[s]=+t(e[s],s,e))?0:+n(e[s],s,e)}}return o.initialize=function(s){e=s,l()},o.strength=function(s){return arguments.length?(n=typeof s=="function"?s:$(+s),l(),o):n},o.y=function(s){return arguments.length?(t=typeof s=="function"?s:$(+s),l(),o):t},o}function kn(t){return 4+Math.min(Math.sqrt(t)*1.2,10)}const Mn="#1a1a2e",Rn="#e0e0e0";function Et(t,n,e){let r=1/0,i=-1/0,o=1/0,l=-1/0;for(const h of t)h.x==null||h.y==null||(r=Math.min(r,h.x),i=Math.max(i,h.x),o=Math.min(o,h.y),l=Math.max(l,h.y));if(!Number.isFinite(r))return{x:0,y:0,k:1};const s=Math.max(.1,Math.min(4,Math.min((n-80)/Math.max(1,i-r),(e-80)/Math.max(1,l-o))));return{x:n/2-(r+i)/2*s,y:e/2-(o+l)/2*s,k:s}}function Nn({nodes:t,edges:n,selectedNodeId:e,onNodeClick:r,onNodeHover:i,className:o=""}){const l=C.useRef(null),s=C.useRef(null),h=C.useRef(null),c=C.useRef([]),x=C.useRef([]),M=C.useRef(null),w=C.useRef(null),a=C.useRef({x:0,y:0,k:1}),m=C.useRef(!1),g=C.useRef({x:0,y:0}),f=C.useRef({x:0,y:0}),y=C.useRef(!1),d=C.useRef(null),N=C.useRef(e??null),p=C.useRef(null),A=C.useRef(!0),F=C.useRef(new Map),W=C.useRef(r);W.current=r;const L=C.useRef(i);L.current=i,N.current=e??null,C.useEffect(()=>{var T;if(t.length===0){c.current=[],x.current=[],F.current=new Map,w.current=null,A.current=!0,(T=h.current)==null||T.stop(),h.current=null;return}const _=new Map,u=t.map((R,E)=>(_.set(R.id,E),{id:R.id,label:R.label,type:R.type,degree:R.degree,r:kn(R.degree)}));c.current=u;const S=[];for(const R of n){const E=_.get(R.source),z=_.get(R.target);E===void 0||z===void 0||S.push({source:u[E],target:u[z],type:R.type,weight:R.weight})}x.current=S;const D=new Map;for(const R of S){const E=bt(R.type);let z=D.get(E);z||(z=[],D.set(E,z)),z.push(R)}F.current=D;const X=l.current,O=(X==null?void 0:X.clientWidth)||800,B=(X==null?void 0:X.clientHeight)||600,v=u.length>5e3,k=wn(u).force("link",rn(S).id(R=>R.id).distance(R=>30+60/Math.max(1,R.source.degree+R.target.degree)).strength(v?.08:.3)).force("charge",v?null:mn().strength(R=>-30-R.degree*2)).force("center",Yt(O/2,B/2)).force("x",v?null:_n(O/2).strength(.04)).force("y",v?null:bn(B/2).strength(.04)).force("collide",v?null:nn().radius(R=>R.r+4)).alphaDecay(v?.08:.02);return k.on("tick.fit",()=>{k.alpha()<.35&&(a.current=Et(u,O,B),k.on("tick.fit",null))}),k.on("tick.dirty",()=>{A.current=!0}),h.current=k,A.current=!0,()=>{k.stop()}},[t,n]),C.useEffect(()=>{if(!e){M.current=null,A.current=!0;return}const _=new Set([e]);for(const u of x.current)u.source.id===e&&_.add(u.target.id),u.target.id===e&&_.add(u.source.id);M.current=_,A.current=!0},[e,t,n]);const K=C.useCallback(()=>{const _=l.current;if(!_)return;const u=_.getContext("2d");if(!u)return;const S=Math.min(devicePixelRatio,2),D=_.width/S,X=_.height/S;u.save(),u.clearRect(0,0,D,X),u.fillStyle=Mn,u.fillRect(0,0,D,X);const{x:O,y:B,k:v}=a.current;u.translate(O,B),u.scale(v,v);const k=c.current,T=x.current,R=N.current,E=d.current,z=M.current,Q=!!(R||E),nt=R||E,I=R?z:w.current;if(Q&&nt){u.save(),u.globalAlpha=.03,u.strokeStyle="#64748b",u.lineWidth=1/v,u.beginPath();for(const b of T){const P=b.source,Y=b.target;P.x==null||P.y==null||Y.x==null||Y.y==null||I!=null&&I.has(P.id)&&(I!=null&&I.has(Y.id))||(u.moveTo(P.x,P.y),u.lineTo(Y.x,Y.y))}u.stroke(),u.restore(),u.save(),u.globalAlpha=.6,u.lineWidth=1.5/v,u.beginPath();for(const b of T){const P=b.source,Y=b.target;P.x==null||P.y==null||Y.x==null||Y.y==null||I!=null&&I.has(P.id)&&(I!=null&&I.has(Y.id))&&(u.moveTo(P.x,P.y),u.lineTo(Y.x,Y.y))}u.strokeStyle=bt("default"),u.stroke(),u.restore()}else{u.save(),u.globalAlpha=.4,u.lineWidth=1.2/v;for(const[b,P]of F.current){u.strokeStyle=b,u.beginPath();for(const Y of P){const q=Y.source,J=Y.target;q.x==null||q.y==null||J.x==null||J.y==null||(u.moveTo(q.x,q.y),u.lineTo(J.x,J.y))}u.stroke()}u.restore()}for(const b of k){if(b.x==null||b.y==null)continue;const P=b.id===R,Y=b.id===E;if(!P&&!Y)continue;const q=P?b.r*1.7:b.r*1.35;u.globalAlpha=P?.35:.22,u.fillStyle=xt(b.type),u.beginPath(),u.arc(b.x,b.y,q*2.8,0,Math.PI*2),u.fill()}for(const b of k){if(b.x==null||b.y==null)continue;const P=b.id===R,Y=b.id===E,q=!Q||((I==null?void 0:I.has(b.id))??b.id===nt);let J=1;Q&&!q&&(J=.1);const at=P?b.r*1.7:Y?b.r*1.35:b.r;u.globalAlpha=J,u.fillStyle=xt(b.type),u.beginPath(),u.arc(b.x,b.y,at,0,Math.PI*2),u.fill(),u.globalAlpha=J*.8,u.strokeStyle="rgba(255,255,255,0.3)",u.lineWidth=1/v,u.stroke(),(P||Y)&&(u.globalAlpha=1,u.strokeStyle=P?"#ffffff":xt(b.type),u.lineWidth=(P?2:1.5)/v,u.stroke())}u.globalAlpha=1;const lt=k.length>5e3?30:k.length>1e3?8:3,jt=v>1.8&&k.length<3e3;u.font=`600 ${12/v}px system-ui, -apple-system, sans-serif`,u.textAlign="center",u.textBaseline="middle";for(const b of k){if(b.x==null||b.y==null)continue;const P=b.id===R,Y=b.id===E,q=b.degree>=lt,J=!Q||((I==null?void 0:I.has(b.id))??b.id===nt);if(!(P||Y||q||jt)||Q&&!J&&!P&&!Y)continue;const at=b.y-b.r-8/v,_t=b.label.length>48?`${b.label.slice(0,45)}…`:b.label;u.globalAlpha=J?.9:.3,u.lineJoin="round",u.lineWidth=3/v,u.strokeStyle="rgba(23,23,23,0.95)",u.strokeText(_t,b.x,at),u.fillStyle=P||Y?"#ffffff":Rn,u.fillText(_t,b.x,at),u.globalAlpha=1}u.restore(),A.current=!1},[]);C.useEffect(()=>{const _=l.current,u=s.current;if(!_||!u)return;const S=()=>{const v=Math.min(devicePixelRatio,2),k=u.clientWidth,T=u.clientHeight;_.width=k*v,_.height=T*v,_.style.width=k+"px",_.style.height=T+"px";const R=_.getContext("2d");R&&R.setTransform(v,0,0,v,0,0),A.current=!0};S();const D=new ResizeObserver(S);D.observe(u);let X=0,O=0;const B=v=>{X=requestAnimationFrame(B),A.current&&(c.current.length>5e3&&v-O<33||(O=v,K()))};return X=requestAnimationFrame(B),()=>{cancelAnimationFrame(X),D.disconnect()}},[K]);const j=C.useCallback((_,u)=>{const S=l.current;if(!S)return null;const D=S.getBoundingClientRect(),{x:X,y:O,k:B}=a.current,v=(_-D.left-X)/B,k=(u-D.top-O)/B,T=c.current;for(let R=T.length-1;R>=0;R--){const E=T[R];if(E.x==null||E.y==null)continue;const z=E.x-v,Q=E.y-k;if(z*z+Q*Q<=(E.r+3)*(E.r+3))return E}return null},[]);C.useEffect(()=>{const _=l.current;if(!_)return;const u=_;function S(v){f.current={x:v.clientX,y:v.clientY},y.current=!1;const k=j(v.clientX,v.clientY);if(k){p.current=k;const T=h.current;T&&(T.alphaTarget(.3).restart(),k.fx=k.x,k.fy=k.y),u.setPointerCapture(v.pointerId)}else m.current=!0,g.current={x:v.clientX,y:v.clientY},u.setPointerCapture(v.pointerId)}function D(v){var R;if(Math.hypot(v.clientX-f.current.x,v.clientY-f.current.y)>3&&(y.current=!0),p.current){const E=p.current,z=u.getBoundingClientRect(),{x:Q,y:nt,k:I}=a.current;E.fx=(v.clientX-z.left-Q)/I,E.fy=(v.clientY-z.top-nt)/I,A.current=!0;return}if(m.current){const E=v.clientX-g.current.x,z=v.clientY-g.current.y;a.current.x+=E,a.current.y+=z,g.current={x:v.clientX,y:v.clientY},A.current=!0;return}const k=j(v.clientX,v.clientY),T=(k==null?void 0:k.id)??null;if(T!==d.current){d.current=T;const E=T?new Set([T]):null;if(E)for(const z of x.current)z.source.id===T&&E.add(z.target.id),z.target.id===T&&E.add(z.source.id);w.current=E,(R=L.current)==null||R.call(L,T),u.style.cursor=T?"pointer":"default",A.current=!0}}function X(v){if(p.current){const k=p.current,T=h.current;T&&T.alphaTarget(0),k.fx=null,k.fy=null,p.current=null}m.current=!1,u.hasPointerCapture(v.pointerId)&&u.releasePointerCapture(v.pointerId)}function O(v){var T;if(y.current)return;const k=j(v.clientX,v.clientY);(T=W.current)==null||T.call(W,(k==null?void 0:k.id)??"")}function B(v){v.preventDefault();const k=u.getBoundingClientRect(),T=v.clientX-k.left,R=v.clientY-k.top,{x:E,y:z,k:Q}=a.current,nt=-v.deltaY*.001,I=Math.max(.1,Math.min(8,Q*Math.exp(nt))),lt=I/Q;a.current.x=T-(T-E)*lt,a.current.y=R-(R-z)*lt,a.current.k=I,A.current=!0}return u.addEventListener("pointerdown",S),u.addEventListener("pointermove",D),u.addEventListener("pointerup",X),u.addEventListener("click",O),u.addEventListener("wheel",B,{passive:!1}),()=>{u.removeEventListener("pointerdown",S),u.removeEventListener("pointermove",D),u.removeEventListener("pointerup",X),u.removeEventListener("click",O),u.removeEventListener("wheel",B)}},[j]);const U=C.useCallback(()=>{const _=l.current;if(!_)return;const u=_.getBoundingClientRect(),S=u.width/2,D=u.height/2,{x:X,y:O,k:B}=a.current,v=Math.min(8,B*1.3),k=v/B;a.current.x=S-(S-X)*k,a.current.y=D-(D-O)*k,a.current.k=v,A.current=!0},[]),V=C.useCallback(()=>{const _=l.current;if(!_)return;const u=_.getBoundingClientRect(),S=u.width/2,D=u.height/2,{x:X,y:O,k:B}=a.current,v=Math.max(.1,B/1.3),k=v/B;a.current.x=S-(S-X)*k,a.current.y=D-(D-O)*k,a.current.k=v,A.current=!0},[]),Z=C.useCallback(()=>{const _=l.current;_&&(a.current=Et(c.current,_.clientWidth,_.clientHeight),A.current=!0)},[]);return rt.jsxs("div",{ref:s,style:{position:"relative",width:"100%",height:"100%"},className:o,children:[rt.jsx("canvas",{ref:l,style:{width:"100%",height:"100%",display:"block",cursor:"default",touchAction:"none"}}),rt.jsxs("div",{style:{position:"absolute",bottom:12,right:12,display:"flex",flexDirection:"column",gap:2},children:[rt.jsx("button",{onClick:U,"aria-label":"Zoom in",style:vt,onMouseEnter:_=>_.currentTarget.style.background="rgba(255,255,255,0.12)",onMouseLeave:_=>_.currentTarget.style.background="rgba(0,0,0,0.5)",children:"+"}),rt.jsx("button",{onClick:V,"aria-label":"Zoom out",style:vt,onMouseEnter:_=>_.currentTarget.style.background="rgba(255,255,255,0.12)",onMouseLeave:_=>_.currentTarget.style.background="rgba(0,0,0,0.5)",children:"−"}),rt.jsx("button",{onClick:Z,"aria-label":"Fit graph to view",style:vt,onMouseEnter:_=>_.currentTarget.style.background="rgba(255,255,255,0.12)",onMouseLeave:_=>_.currentTarget.style.background="rgba(0,0,0,0.5)",children:"⛶"})]})]})}const vt={width:32,height:32,border:"1px solid rgba(255,255,255,0.1)",borderRadius:6,background:"rgba(0,0,0,0.5)",color:"#fff",fontSize:18,lineHeight:1,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",backdropFilter:"blur(8px)"};export{Nn as WorkspaceGraph};