!(function(){var KB=Object.defineProperty,QB=Object.defineProperties;var qB=Object.getOwnPropertyDescriptors;var cw=Object.getOwnPropertySymbols;var JB=Object.prototype.hasOwnProperty,$B=Object.prototype.propertyIsEnumerable;var is=Math.pow,V0=(Y,Q,S)=>Q in Y?KB(Y,Q,{enumerable:!0,configurable:!0,writable:!0,value:S}):Y[Q]=S,Io=(Y,Q)=>{for(var S in Q||(Q={}))JB.call(Q,S)&&V0(Y,S,Q[S]);if(cw)for(var S of cw(Q))$B.call(Q,S)&&V0(Y,S,Q[S]);return Y},U0=(Y,Q)=>QB(Y,qB(Q));var On=(Y,Q,S)=>V0(Y,typeof Q!="symbol"?Q+"":Q,S);(self.webpackChunk=self.webpackChunk||[]).push([[8044],{21043:function(Y,Q,S){"use strict";S.d(Q,{kJ:function(){return cd},RN:function(){return RB}});var A={};S.r(A),S.d(A,{add:function(){return mw},adjoint:function(){return Kt},clone:function(){return vn},copy:function(){return me},create:function(){return oe},decompose:function(){return bd},determinant:function(){return gn},equals:function(){return xw},exactEquals:function(){return Ed},frob:function(){return pw},fromQuat:function(){return Go},fromQuat2:function(){return yd},fromRotation:function(){return Kn},fromRotationTranslation:function(){return Jl},fromRotationTranslationScale:function(){return xd},fromRotationTranslationScaleOrigin:function(){return ls},fromScaling:function(){return _e},fromTranslation:function(){return cr},fromValues:function(){return xe},fromXRotation:function(){return Tr},fromYRotation:function(){return Or},fromZRotation:function(){return Cn},frustum:function(){return uw},getRotation:function(){return qs},getScaling:function(){return Na},getTranslation:function(){return Qs},identity:function(){return Et},invert:function(){return te},lookAt:function(){return lg},mul:function(){return ug},multiply:function(){return Pe},multiplyScalar:function(){return yw},multiplyScalarAndAdd:function(){return bw},ortho:function(){return sg},orthoNO:function(){return ag},orthoZO:function(){return og},perspective:function(){return hw},perspectiveFromFieldOfView:function(){return fw},perspectiveNO:function(){return ig},perspectiveZO:function(){return dw},rotate:function(){return nr},rotateX:function(){return Zr},rotateY:function(){return Ln},rotateZ:function(){return yi},scale:function(){return pn},set:function(){return nn},str:function(){return gw},sub:function(){return Ew},subtract:function(){return cg},targetTo:function(){return vw},translate:function(){return qe},transpose:function(){return Ut}});var G={};S.r(G),S.d(G,{circle:function(){return C3},diamond:function(){return N3},rect:function(){return P3},simple:function(){return L3},triangle:function(){return y1},triangleRect:function(){return R3},vee:function(){return k3}});var F=S(33885),C=S(67732),T=S(83652),N=S(94480),D=S(58289),P=S(75538),_=S(85458);function I(n,t,e){return t=(0,D.Z)(t),(0,_.Z)(n,(0,P.Z)()?Reflect.construct(t,e||[],(0,D.Z)(n).constructor):t.apply(n,e))}var L=S(42403),W=S(42978),K=S(37271),X=K,et=1e-6,tt=typeof Float32Array!="undefined"?Float32Array:Array,q=Math.random,it="zyx";function at(n){return n>=0?Math.round(n):n%.5===0?Math.floor(n):Math.round(n)}function ut(n){tt=n}var ht=Math.PI/180,yt=180/Math.PI;function St(n){return n*ht}function Mt(n){return n*yt}function mt(n,t){var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:et;return Math.abs(n-t)<=e*Math.max(1,Math.abs(n),Math.abs(t))}function xt(){var n=new tt(3);return tt!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0),n}function kt(n){var t=new tt(3);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t}function Wt(n){var t=n[0],e=n[1],r=n[2];return Math.sqrt(t*t+e*e+r*r)}function zt(n,t,e){var r=new tt(3);return r[0]=n,r[1]=t,r[2]=e,r}function Ht(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n}function fe(n,t,e,r){return n[0]=t,n[1]=e,n[2]=r,n}function we(n,t,e){return n[0]=t[0]+e[0],n[1]=t[1]+e[1],n[2]=t[2]+e[2],n}function He(n,t,e){return n[0]=t[0]-e[0],n[1]=t[1]-e[1],n[2]=t[2]-e[2],n}function Yn(n,t,e){return n[0]=t[0]*e[0],n[1]=t[1]*e[1],n[2]=t[2]*e[2],n}function pi(n,t,e){return n[0]=t[0]/e[0],n[1]=t[1]/e[1],n[2]=t[2]/e[2],n}function Oa(n,t){return n[0]=Math.ceil(t[0]),n[1]=Math.ceil(t[1]),n[2]=Math.ceil(t[2]),n}function as(n,t){return n[0]=Math.floor(t[0]),n[1]=Math.floor(t[1]),n[2]=Math.floor(t[2]),n}function Rt(n,t,e){return n[0]=Math.min(t[0],e[0]),n[1]=Math.min(t[1],e[1]),n[2]=Math.min(t[2],e[2]),n}function _t(n,t,e){return n[0]=Math.max(t[0],e[0]),n[1]=Math.max(t[1],e[1]),n[2]=Math.max(t[2],e[2]),n}function Bt(n,t){return n[0]=glMatrix.round(t[0]),n[1]=glMatrix.round(t[1]),n[2]=glMatrix.round(t[2]),n}function dt(n,t,e){return n[0]=t[0]*e,n[1]=t[1]*e,n[2]=t[2]*e,n}function wt(n,t,e,r){return n[0]=t[0]+e[0]*r,n[1]=t[1]+e[1]*r,n[2]=t[2]+e[2]*r,n}function Ot(n,t){var e=t[0]-n[0],r=t[1]-n[1],i=t[2]-n[2];return Math.sqrt(e*e+r*r+i*i)}function Zt(n,t){var e=t[0]-n[0],r=t[1]-n[1],i=t[2]-n[2];return e*e+r*r+i*i}function ve(n){var t=n[0],e=n[1],r=n[2];return t*t+e*e+r*r}function Ie(n,t){return n[0]=-t[0],n[1]=-t[1],n[2]=-t[2],n}function ge(n,t){return n[0]=1/t[0],n[1]=1/t[1],n[2]=1/t[2],n}function Ne(n,t){var e=t[0],r=t[1],i=t[2],a=e*e+r*r+i*i;return a>0&&(a=1/Math.sqrt(a)),n[0]=t[0]*a,n[1]=t[1]*a,n[2]=t[2]*a,n}function Ze(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function fn(n,t,e){var r=t[0],i=t[1],a=t[2],s=e[0],o=e[1],l=e[2];return n[0]=i*l-a*o,n[1]=a*s-r*l,n[2]=r*o-i*s,n}function Oe(n,t,e,r){var i=t[0],a=t[1],s=t[2];return n[0]=i+r*(e[0]-i),n[1]=a+r*(e[1]-a),n[2]=s+r*(e[2]-s),n}function Se(n,t,e,r){var i=Math.acos(Math.min(Math.max(Ze(t,e),-1),1)),a=Math.sin(i),s=Math.sin((1-r)*i)/a,o=Math.sin(r*i)/a;return n[0]=s*t[0]+o*e[0],n[1]=s*t[1]+o*e[1],n[2]=s*t[2]+o*e[2],n}function ye(n,t,e,r,i,a){var s=a*a,o=s*(2*a-3)+1,l=s*(a-2)+a,c=s*(a-1),u=s*(3-2*a);return n[0]=t[0]*o+e[0]*l+r[0]*c+i[0]*u,n[1]=t[1]*o+e[1]*l+r[1]*c+i[1]*u,n[2]=t[2]*o+e[2]*l+r[2]*c+i[2]*u,n}function ke(n,t,e,r,i,a){var s=1-a,o=s*s,l=a*a,c=o*s,u=3*a*o,h=3*l*s,d=l*a;return n[0]=t[0]*c+e[0]*u+r[0]*h+i[0]*d,n[1]=t[1]*c+e[1]*u+r[1]*h+i[1]*d,n[2]=t[2]*c+e[2]*u+r[2]*h+i[2]*d,n}function gr(n,t){t=t===void 0?1:t;var e=glMatrix.RANDOM()*2*Math.PI,r=glMatrix.RANDOM()*2-1,i=Math.sqrt(1-r*r)*t;return n[0]=Math.cos(e)*i,n[1]=Math.sin(e)*i,n[2]=r*t,n}function wn(n,t,e){var r=t[0],i=t[1],a=t[2],s=e[3]*r+e[7]*i+e[11]*a+e[15];return s=s||1,n[0]=(e[0]*r+e[4]*i+e[8]*a+e[12])/s,n[1]=(e[1]*r+e[5]*i+e[9]*a+e[13])/s,n[2]=(e[2]*r+e[6]*i+e[10]*a+e[14])/s,n}function ne(n,t,e){var r=t[0],i=t[1],a=t[2];return n[0]=r*e[0]+i*e[3]+a*e[6],n[1]=r*e[1]+i*e[4]+a*e[7],n[2]=r*e[2]+i*e[5]+a*e[8],n}function Ca(n,t,e){var r=e[0],i=e[1],a=e[2],s=e[3],o=t[0],l=t[1],c=t[2],u=i*c-a*l,h=a*o-r*c,d=r*l-i*o;return u=u+u,h=h+h,d=d+d,n[0]=o+s*u+i*d-a*h,n[1]=l+s*h+a*u-r*d,n[2]=c+s*d+r*h-i*u,n}function Dr(n,t,e,r){var i=[],a=[];return i[0]=t[0]-e[0],i[1]=t[1]-e[1],i[2]=t[2]-e[2],a[0]=i[0],a[1]=i[1]*Math.cos(r)-i[2]*Math.sin(r),a[2]=i[1]*Math.sin(r)+i[2]*Math.cos(r),n[0]=a[0]+e[0],n[1]=a[1]+e[1],n[2]=a[2]+e[2],n}function Hn(n,t,e,r){var i=[],a=[];return i[0]=t[0]-e[0],i[1]=t[1]-e[1],i[2]=t[2]-e[2],a[0]=i[2]*Math.sin(r)+i[0]*Math.cos(r),a[1]=i[1],a[2]=i[2]*Math.cos(r)-i[0]*Math.sin(r),n[0]=a[0]+e[0],n[1]=a[1]+e[1],n[2]=a[2]+e[2],n}function Ir(n,t,e,r){var i=[],a=[];return i[0]=t[0]-e[0],i[1]=t[1]-e[1],i[2]=t[2]-e[2],a[0]=i[0]*Math.cos(r)-i[1]*Math.sin(r),a[1]=i[0]*Math.sin(r)+i[1]*Math.cos(r),a[2]=i[2],n[0]=a[0]+e[0],n[1]=a[1]+e[1],n[2]=a[2]+e[2],n}function ss(n,t){var e=n[0],r=n[1],i=n[2],a=t[0],s=t[1],o=t[2],l=Math.sqrt((e*e+r*r+i*i)*(a*a+s*s+o*o)),c=l&&Ze(n,t)/l;return Math.acos(Math.min(Math.max(c,-1),1))}function Xl(n){return n[0]=0,n[1]=0,n[2]=0,n}function Bo(n){return"vec3("+n[0]+", "+n[1]+", "+n[2]+")"}function ha(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]}function Hi(n,t){var e=n[0],r=n[1],i=n[2],a=t[0],s=t[1],o=t[2];return Math.abs(e-a)<=et*Math.max(1,Math.abs(e),Math.abs(a))&&Math.abs(r-s)<=et*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(i-o)<=et*Math.max(1,Math.abs(i),Math.abs(o))}var Xs=He,os=null,Fo=null,ni=Ot,ki=null,Ar=Wt,X0=null,zo=function(){var n=xt();return function(t,e,r,i,a,s){var o,l;for(e||(e=3),r||(r=0),i?l=Math.min(i*e+r,t.length):l=t.length,o=r;o0&&(s=1/Math.sqrt(s)),n[0]=e*s,n[1]=r*s,n[2]=i*s,n[3]=a*s,n}function m(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function M(n,t,e,r){var i=e[0]*r[1]-e[1]*r[0],a=e[0]*r[2]-e[2]*r[0],s=e[0]*r[3]-e[3]*r[0],o=e[1]*r[2]-e[2]*r[1],l=e[1]*r[3]-e[3]*r[1],c=e[2]*r[3]-e[3]*r[2],u=t[0],h=t[1],d=t[2],f=t[3];return n[0]=h*c-d*l+f*o,n[1]=-(u*c)+d*s-f*a,n[2]=u*l-h*s+f*i,n[3]=-(u*o)+h*a-d*i,n}function j(n,t,e,r){var i=t[0],a=t[1],s=t[2],o=t[3];return n[0]=i+r*(e[0]-i),n[1]=a+r*(e[1]-a),n[2]=s+r*(e[2]-s),n[3]=o+r*(e[3]-o),n}function rt(n,t){t=t===void 0?1:t;var e,r,i,a,s,o,l;l=glMatrix.RANDOM(),e=l*2-1,r=(4*glMatrix.RANDOM()-2)*Math.sqrt(l*-l+l),s=e*e+r*r,l=glMatrix.RANDOM(),i=l*2-1,a=(4*glMatrix.RANDOM()-2)*Math.sqrt(l*-l+l),o=i*i+a*a;var c=Math.sqrt((1-s)/o);return n[0]=t*e,n[1]=t*r,n[2]=t*i*c,n[3]=t*a*c,n}function nt(n,t,e){var r=t[0],i=t[1],a=t[2],s=t[3];return n[0]=e[0]*r+e[4]*i+e[8]*a+e[12]*s,n[1]=e[1]*r+e[5]*i+e[9]*a+e[13]*s,n[2]=e[2]*r+e[6]*i+e[10]*a+e[14]*s,n[3]=e[3]*r+e[7]*i+e[11]*a+e[15]*s,n}function ot(n,t,e){var r=e[0],i=e[1],a=e[2],s=e[3],o=t[0],l=t[1],c=t[2],u=i*c-a*l,h=a*o-r*c,d=r*l-i*o;return u=u+u,h=h+h,d=d+d,n[0]=o+s*u+i*d-a*h,n[1]=l+s*h+a*u-r*d,n[2]=c+s*d+r*h-i*u,n[3]=t[3],n}function lt(n){return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n}function Tt(n){return"vec4("+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+")"}function vt(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]}function Ft(n,t){var e=n[0],r=n[1],i=n[2],a=n[3],s=t[0],o=t[1],l=t[2],c=t[3];return Math.abs(e-s)<=glMatrix.EPSILON*Math.max(1,Math.abs(e),Math.abs(s))&&Math.abs(r-o)<=glMatrix.EPSILON*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-l)<=glMatrix.EPSILON*Math.max(1,Math.abs(i),Math.abs(l))&&Math.abs(a-c)<=glMatrix.EPSILON*Math.max(1,Math.abs(a),Math.abs(c))}var qt=null,Lt=null,Gt=null,se=null,bt=null,Qt=null,he=null,Ae=function(){var n=Xn();return function(t,e,r,i,a,s){var o,l;for(e||(e=4),r||(r=0),i?l=Math.min(i*e+r,t.length):l=t.length,o=r;o0?(e[0]=(o*s+u*r+l*a-c*i)*2/h,e[1]=(l*s+u*i+c*r-o*a)*2/h,e[2]=(c*s+u*a+o*i-l*r)*2/h):(e[0]=(o*s+u*r+l*a-c*i)*2,e[1]=(l*s+u*i+c*r-o*a)*2,e[2]=(c*s+u*a+o*i-l*r)*2),Jl(n,t,e),n}function Qs(n,t){return n[0]=t[12],n[1]=t[13],n[2]=t[14],n}function Na(n,t){var e=t[0],r=t[1],i=t[2],a=t[4],s=t[5],o=t[6],l=t[8],c=t[9],u=t[10];return n[0]=Math.sqrt(e*e+r*r+i*i),n[1]=Math.sqrt(a*a+s*s+o*o),n[2]=Math.sqrt(l*l+c*c+u*u),n}function qs(n,t){var e=new tt(3);Na(e,t);var r=1/e[0],i=1/e[1],a=1/e[2],s=t[0]*r,o=t[1]*i,l=t[2]*a,c=t[4]*r,u=t[5]*i,h=t[6]*a,d=t[8]*r,f=t[9]*i,v=t[10]*a,g=s+u+v,p=0;return g>0?(p=Math.sqrt(g+1)*2,n[3]=.25*p,n[0]=(h-f)/p,n[1]=(d-l)/p,n[2]=(o-c)/p):s>u&&s>v?(p=Math.sqrt(1+s-u-v)*2,n[3]=(h-f)/p,n[0]=.25*p,n[1]=(o+c)/p,n[2]=(d+l)/p):u>v?(p=Math.sqrt(1+u-s-v)*2,n[3]=(d-l)/p,n[0]=(o+c)/p,n[1]=.25*p,n[2]=(h+f)/p):(p=Math.sqrt(1+v-s-u)*2,n[3]=(o-c)/p,n[0]=(d+l)/p,n[1]=(h+f)/p,n[2]=.25*p),n}function bd(n,t,e,r){t[0]=r[12],t[1]=r[13],t[2]=r[14];var i=r[0],a=r[1],s=r[2],o=r[4],l=r[5],c=r[6],u=r[8],h=r[9],d=r[10];e[0]=Math.sqrt(i*i+a*a+s*s),e[1]=Math.sqrt(o*o+l*l+c*c),e[2]=Math.sqrt(u*u+h*h+d*d);var f=1/e[0],v=1/e[1],g=1/e[2],p=i*f,y=a*v,b=s*g,E=o*f,O=l*v,k=c*g,R=u*f,z=h*v,B=d*g,V=p+O+B,U=0;return V>0?(U=Math.sqrt(V+1)*2,n[3]=.25*U,n[0]=(k-z)/U,n[1]=(R-b)/U,n[2]=(y-E)/U):p>O&&p>B?(U=Math.sqrt(1+p-O-B)*2,n[3]=(k-z)/U,n[0]=.25*U,n[1]=(y+E)/U,n[2]=(R+b)/U):O>B?(U=Math.sqrt(1+O-p-B)*2,n[3]=(R-b)/U,n[0]=(y+E)/U,n[1]=.25*U,n[2]=(k+z)/U):(U=Math.sqrt(1+B-p-O)*2,n[3]=(y-E)/U,n[0]=(R+b)/U,n[1]=(k+z)/U,n[2]=.25*U),n}function xd(n,t,e,r){var i=t[0],a=t[1],s=t[2],o=t[3],l=i+i,c=a+a,u=s+s,h=i*l,d=i*c,f=i*u,v=a*c,g=a*u,p=s*u,y=o*l,b=o*c,E=o*u,O=r[0],k=r[1],R=r[2];return n[0]=(1-(v+p))*O,n[1]=(d+E)*O,n[2]=(f-b)*O,n[3]=0,n[4]=(d-E)*k,n[5]=(1-(h+p))*k,n[6]=(g+y)*k,n[7]=0,n[8]=(f+b)*R,n[9]=(g-y)*R,n[10]=(1-(h+v))*R,n[11]=0,n[12]=e[0],n[13]=e[1],n[14]=e[2],n[15]=1,n}function ls(n,t,e,r,i){var a=t[0],s=t[1],o=t[2],l=t[3],c=a+a,u=s+s,h=o+o,d=a*c,f=a*u,v=a*h,g=s*u,p=s*h,y=o*h,b=l*c,E=l*u,O=l*h,k=r[0],R=r[1],z=r[2],B=i[0],V=i[1],U=i[2],J=(1-(g+y))*k,$=(f+O)*k,st=(v-E)*k,ct=(f-O)*R,ft=(1-(d+y))*R,Nt=(p+b)*R,Ct=(v+E)*z,gt=(p-b)*z,pt=(1-(d+g))*z;return n[0]=J,n[1]=$,n[2]=st,n[3]=0,n[4]=ct,n[5]=ft,n[6]=Nt,n[7]=0,n[8]=Ct,n[9]=gt,n[10]=pt,n[11]=0,n[12]=e[0]+B-(J*B+ct*V+Ct*U),n[13]=e[1]+V-($*B+ft*V+gt*U),n[14]=e[2]+U-(st*B+Nt*V+pt*U),n[15]=1,n}function Go(n,t){var e=t[0],r=t[1],i=t[2],a=t[3],s=e+e,o=r+r,l=i+i,c=e*s,u=r*s,h=r*o,d=i*s,f=i*o,v=i*l,g=a*s,p=a*o,y=a*l;return n[0]=1-h-v,n[1]=u+y,n[2]=d-p,n[3]=0,n[4]=u-y,n[5]=1-c-v,n[6]=f+g,n[7]=0,n[8]=d+p,n[9]=f-g,n[10]=1-c-h,n[11]=0,n[12]=0,n[13]=0,n[14]=0,n[15]=1,n}function uw(n,t,e,r,i,a,s){var o=1/(e-t),l=1/(i-r),c=1/(a-s);return n[0]=a*2*o,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=a*2*l,n[6]=0,n[7]=0,n[8]=(e+t)*o,n[9]=(i+r)*l,n[10]=(s+a)*c,n[11]=-1,n[12]=0,n[13]=0,n[14]=s*a*2*c,n[15]=0,n}function ig(n,t,e,r,i){var a=1/Math.tan(t/2);if(n[0]=a/e,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=a,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=-1,n[12]=0,n[13]=0,n[15]=0,i!=null&&i!==1/0){var s=1/(r-i);n[10]=(i+r)*s,n[14]=2*i*r*s}else n[10]=-1,n[14]=-2*r;return n}var hw=ig;function dw(n,t,e,r,i){var a=1/Math.tan(t/2);if(n[0]=a/e,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=a,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[11]=-1,n[12]=0,n[13]=0,n[15]=0,i!=null&&i!==1/0){var s=1/(r-i);n[10]=i*s,n[14]=i*r*s}else n[10]=-1,n[14]=-r;return n}function fw(n,t,e,r){var i=Math.tan(t.upDegrees*Math.PI/180),a=Math.tan(t.downDegrees*Math.PI/180),s=Math.tan(t.leftDegrees*Math.PI/180),o=Math.tan(t.rightDegrees*Math.PI/180),l=2/(s+o),c=2/(i+a);return n[0]=l,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=c,n[6]=0,n[7]=0,n[8]=-((s-o)*l*.5),n[9]=(i-a)*c*.5,n[10]=r/(e-r),n[11]=-1,n[12]=0,n[13]=0,n[14]=r*e/(e-r),n[15]=0,n}function ag(n,t,e,r,i,a,s){var o=1/(t-e),l=1/(r-i),c=1/(a-s);return n[0]=-2*o,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=-2*l,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=2*c,n[11]=0,n[12]=(t+e)*o,n[13]=(i+r)*l,n[14]=(s+a)*c,n[15]=1,n}var sg=ag;function og(n,t,e,r,i,a,s){var o=1/(t-e),l=1/(r-i),c=1/(a-s);return n[0]=-2*o,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=-2*l,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=c,n[11]=0,n[12]=(t+e)*o,n[13]=(i+r)*l,n[14]=a*c,n[15]=1,n}function lg(n,t,e,r){var i,a,s,o,l,c,u,h,d,f,v=t[0],g=t[1],p=t[2],y=r[0],b=r[1],E=r[2],O=e[0],k=e[1],R=e[2];return Math.abs(v-O)0&&(f=1/Math.sqrt(f),u*=f,h*=f,d*=f);var v=l*d-c*h,g=c*u-o*d,p=o*h-l*u;return f=v*v+g*g+p*p,f>0&&(f=1/Math.sqrt(f),v*=f,g*=f,p*=f),n[0]=v,n[1]=g,n[2]=p,n[3]=0,n[4]=h*p-d*g,n[5]=d*v-u*p,n[6]=u*g-h*v,n[7]=0,n[8]=u,n[9]=h,n[10]=d,n[11]=0,n[12]=i,n[13]=a,n[14]=s,n[15]=1,n}function gw(n){return"mat4("+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+", "+n[4]+", "+n[5]+", "+n[6]+", "+n[7]+", "+n[8]+", "+n[9]+", "+n[10]+", "+n[11]+", "+n[12]+", "+n[13]+", "+n[14]+", "+n[15]+")"}function pw(n){return Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]+n[3]*n[3]+n[4]*n[4]+n[5]*n[5]+n[6]*n[6]+n[7]*n[7]+n[8]*n[8]+n[9]*n[9]+n[10]*n[10]+n[11]*n[11]+n[12]*n[12]+n[13]*n[13]+n[14]*n[14]+n[15]*n[15])}function mw(n,t,e){return n[0]=t[0]+e[0],n[1]=t[1]+e[1],n[2]=t[2]+e[2],n[3]=t[3]+e[3],n[4]=t[4]+e[4],n[5]=t[5]+e[5],n[6]=t[6]+e[6],n[7]=t[7]+e[7],n[8]=t[8]+e[8],n[9]=t[9]+e[9],n[10]=t[10]+e[10],n[11]=t[11]+e[11],n[12]=t[12]+e[12],n[13]=t[13]+e[13],n[14]=t[14]+e[14],n[15]=t[15]+e[15],n}function cg(n,t,e){return n[0]=t[0]-e[0],n[1]=t[1]-e[1],n[2]=t[2]-e[2],n[3]=t[3]-e[3],n[4]=t[4]-e[4],n[5]=t[5]-e[5],n[6]=t[6]-e[6],n[7]=t[7]-e[7],n[8]=t[8]-e[8],n[9]=t[9]-e[9],n[10]=t[10]-e[10],n[11]=t[11]-e[11],n[12]=t[12]-e[12],n[13]=t[13]-e[13],n[14]=t[14]-e[14],n[15]=t[15]-e[15],n}function yw(n,t,e){return n[0]=t[0]*e,n[1]=t[1]*e,n[2]=t[2]*e,n[3]=t[3]*e,n[4]=t[4]*e,n[5]=t[5]*e,n[6]=t[6]*e,n[7]=t[7]*e,n[8]=t[8]*e,n[9]=t[9]*e,n[10]=t[10]*e,n[11]=t[11]*e,n[12]=t[12]*e,n[13]=t[13]*e,n[14]=t[14]*e,n[15]=t[15]*e,n}function bw(n,t,e,r){return n[0]=t[0]+e[0]*r,n[1]=t[1]+e[1]*r,n[2]=t[2]+e[2]*r,n[3]=t[3]+e[3]*r,n[4]=t[4]+e[4]*r,n[5]=t[5]+e[5]*r,n[6]=t[6]+e[6]*r,n[7]=t[7]+e[7]*r,n[8]=t[8]+e[8]*r,n[9]=t[9]+e[9]*r,n[10]=t[10]+e[10]*r,n[11]=t[11]+e[11]*r,n[12]=t[12]+e[12]*r,n[13]=t[13]+e[13]*r,n[14]=t[14]+e[14]*r,n[15]=t[15]+e[15]*r,n}function Ed(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]&&n[4]===t[4]&&n[5]===t[5]&&n[6]===t[6]&&n[7]===t[7]&&n[8]===t[8]&&n[9]===t[9]&&n[10]===t[10]&&n[11]===t[11]&&n[12]===t[12]&&n[13]===t[13]&&n[14]===t[14]&&n[15]===t[15]}function xw(n,t){var e=n[0],r=n[1],i=n[2],a=n[3],s=n[4],o=n[5],l=n[6],c=n[7],u=n[8],h=n[9],d=n[10],f=n[11],v=n[12],g=n[13],p=n[14],y=n[15],b=t[0],E=t[1],O=t[2],k=t[3],R=t[4],z=t[5],B=t[6],V=t[7],U=t[8],J=t[9],$=t[10],st=t[11],ct=t[12],ft=t[13],Nt=t[14],Ct=t[15];return Math.abs(e-b)<=et*Math.max(1,Math.abs(e),Math.abs(b))&&Math.abs(r-E)<=et*Math.max(1,Math.abs(r),Math.abs(E))&&Math.abs(i-O)<=et*Math.max(1,Math.abs(i),Math.abs(O))&&Math.abs(a-k)<=et*Math.max(1,Math.abs(a),Math.abs(k))&&Math.abs(s-R)<=et*Math.max(1,Math.abs(s),Math.abs(R))&&Math.abs(o-z)<=et*Math.max(1,Math.abs(o),Math.abs(z))&&Math.abs(l-B)<=et*Math.max(1,Math.abs(l),Math.abs(B))&&Math.abs(c-V)<=et*Math.max(1,Math.abs(c),Math.abs(V))&&Math.abs(u-U)<=et*Math.max(1,Math.abs(u),Math.abs(U))&&Math.abs(h-J)<=et*Math.max(1,Math.abs(h),Math.abs(J))&&Math.abs(d-$)<=et*Math.max(1,Math.abs(d),Math.abs($))&&Math.abs(f-st)<=et*Math.max(1,Math.abs(f),Math.abs(st))&&Math.abs(v-ct)<=et*Math.max(1,Math.abs(v),Math.abs(ct))&&Math.abs(g-ft)<=et*Math.max(1,Math.abs(g),Math.abs(ft))&&Math.abs(p-Nt)<=et*Math.max(1,Math.abs(p),Math.abs(Nt))&&Math.abs(y-Ct)<=et*Math.max(1,Math.abs(y),Math.abs(Ct))}var ug=Pe,Ew=cg;function hg(){var n=new tt(9);return tt!=Float32Array&&(n[1]=0,n[2]=0,n[3]=0,n[5]=0,n[6]=0,n[7]=0),n[0]=1,n[4]=1,n[8]=1,n}function ww(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[4],n[4]=t[5],n[5]=t[6],n[6]=t[8],n[7]=t[9],n[8]=t[10],n}function tF(n){var t=new glMatrix.ARRAY_TYPE(9);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t[4]=n[4],t[5]=n[5],t[6]=n[6],t[7]=n[7],t[8]=n[8],t}function eF(n,t){return n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n}function Sw(n,t,e,r,i,a,s,o,l){var c=new tt(9);return c[0]=n,c[1]=t,c[2]=e,c[3]=r,c[4]=i,c[5]=a,c[6]=s,c[7]=o,c[8]=l,c}function nF(n,t,e,r,i,a,s,o,l,c){return n[0]=t,n[1]=e,n[2]=r,n[3]=i,n[4]=a,n[5]=s,n[6]=o,n[7]=l,n[8]=c,n}function rF(n){return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=1,n[5]=0,n[6]=0,n[7]=0,n[8]=1,n}function iF(n,t){if(n===t){var e=t[1],r=t[2],i=t[5];n[1]=t[3],n[2]=t[6],n[3]=e,n[5]=t[7],n[6]=r,n[7]=i}else n[0]=t[0],n[1]=t[3],n[2]=t[6],n[3]=t[1],n[4]=t[4],n[5]=t[7],n[6]=t[2],n[7]=t[5],n[8]=t[8];return n}function aF(n,t){var e=t[0],r=t[1],i=t[2],a=t[3],s=t[4],o=t[5],l=t[6],c=t[7],u=t[8],h=u*s-o*c,d=-u*a+o*l,f=c*a-s*l,v=e*h+r*d+i*f;return v?(v=1/v,n[0]=h*v,n[1]=(-u*r+i*c)*v,n[2]=(o*r-i*s)*v,n[3]=d*v,n[4]=(u*e-i*l)*v,n[5]=(-o*e+i*a)*v,n[6]=f*v,n[7]=(-c*e+r*l)*v,n[8]=(s*e-r*a)*v,n):null}function sF(n,t){var e=t[0],r=t[1],i=t[2],a=t[3],s=t[4],o=t[5],l=t[6],c=t[7],u=t[8];return n[0]=s*u-o*c,n[1]=i*c-r*u,n[2]=r*o-i*s,n[3]=o*l-a*u,n[4]=e*u-i*l,n[5]=i*a-e*o,n[6]=a*c-s*l,n[7]=r*l-e*c,n[8]=e*s-r*a,n}function oF(n){var t=n[0],e=n[1],r=n[2],i=n[3],a=n[4],s=n[5],o=n[6],l=n[7],c=n[8];return t*(c*a-s*l)+e*(-c*i+s*o)+r*(l*i-a*o)}function lF(n,t,e){var r=t[0],i=t[1],a=t[2],s=t[3],o=t[4],l=t[5],c=t[6],u=t[7],h=t[8],d=e[0],f=e[1],v=e[2],g=e[3],p=e[4],y=e[5],b=e[6],E=e[7],O=e[8];return n[0]=d*r+f*s+v*c,n[1]=d*i+f*o+v*u,n[2]=d*a+f*l+v*h,n[3]=g*r+p*s+y*c,n[4]=g*i+p*o+y*u,n[5]=g*a+p*l+y*h,n[6]=b*r+E*s+O*c,n[7]=b*i+E*o+O*u,n[8]=b*a+E*l+O*h,n}function cF(n,t,e){var r=t[0],i=t[1],a=t[2],s=t[3],o=t[4],l=t[5],c=t[6],u=t[7],h=t[8],d=e[0],f=e[1];return n[0]=r,n[1]=i,n[2]=a,n[3]=s,n[4]=o,n[5]=l,n[6]=d*r+f*s+c,n[7]=d*i+f*o+u,n[8]=d*a+f*l+h,n}function uF(n,t,e){var r=t[0],i=t[1],a=t[2],s=t[3],o=t[4],l=t[5],c=t[6],u=t[7],h=t[8],d=Math.sin(e),f=Math.cos(e);return n[0]=f*r+d*s,n[1]=f*i+d*o,n[2]=f*a+d*l,n[3]=f*s-d*r,n[4]=f*o-d*i,n[5]=f*l-d*a,n[6]=c,n[7]=u,n[8]=h,n}function hF(n,t,e){var r=e[0],i=e[1];return n[0]=r*t[0],n[1]=r*t[1],n[2]=r*t[2],n[3]=i*t[3],n[4]=i*t[4],n[5]=i*t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n}function dF(n,t){return n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=1,n[5]=0,n[6]=t[0],n[7]=t[1],n[8]=1,n}function fF(n,t){var e=Math.sin(t),r=Math.cos(t);return n[0]=r,n[1]=e,n[2]=0,n[3]=-e,n[4]=r,n[5]=0,n[6]=0,n[7]=0,n[8]=1,n}function vF(n,t){return n[0]=t[0],n[1]=0,n[2]=0,n[3]=0,n[4]=t[1],n[5]=0,n[6]=0,n[7]=0,n[8]=1,n}function gF(n,t){return n[0]=t[0],n[1]=t[1],n[2]=0,n[3]=t[2],n[4]=t[3],n[5]=0,n[6]=t[4],n[7]=t[5],n[8]=1,n}function pF(n,t){var e=t[0],r=t[1],i=t[2],a=t[3],s=e+e,o=r+r,l=i+i,c=e*s,u=r*s,h=r*o,d=i*s,f=i*o,v=i*l,g=a*s,p=a*o,y=a*l;return n[0]=1-h-v,n[3]=u-y,n[6]=d+p,n[1]=u+y,n[4]=1-c-v,n[7]=f-g,n[2]=d-p,n[5]=f+g,n[8]=1-c-h,n}function mF(n,t){var e=t[0],r=t[1],i=t[2],a=t[3],s=t[4],o=t[5],l=t[6],c=t[7],u=t[8],h=t[9],d=t[10],f=t[11],v=t[12],g=t[13],p=t[14],y=t[15],b=e*o-r*s,E=e*l-i*s,O=e*c-a*s,k=r*l-i*o,R=r*c-a*o,z=i*c-a*l,B=u*g-h*v,V=u*p-d*v,U=u*y-f*v,J=h*p-d*g,$=h*y-f*g,st=d*y-f*p,ct=b*st-E*$+O*J+k*U-R*V+z*B;return ct?(ct=1/ct,n[0]=(o*st-l*$+c*J)*ct,n[1]=(l*U-s*st-c*V)*ct,n[2]=(s*$-o*U+c*B)*ct,n[3]=(i*$-r*st-a*J)*ct,n[4]=(e*st-i*U+a*V)*ct,n[5]=(r*U-e*$-a*B)*ct,n[6]=(g*z-p*R+y*k)*ct,n[7]=(p*O-v*z-y*E)*ct,n[8]=(v*R-g*O+y*b)*ct,n):null}function yF(n,t,e){return n[0]=2/t,n[1]=0,n[2]=0,n[3]=0,n[4]=-2/e,n[5]=0,n[6]=-1,n[7]=1,n[8]=1,n}function bF(n){return"mat3("+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+", "+n[4]+", "+n[5]+", "+n[6]+", "+n[7]+", "+n[8]+")"}function xF(n){return Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]+n[3]*n[3]+n[4]*n[4]+n[5]*n[5]+n[6]*n[6]+n[7]*n[7]+n[8]*n[8])}function EF(n,t,e){return n[0]=t[0]+e[0],n[1]=t[1]+e[1],n[2]=t[2]+e[2],n[3]=t[3]+e[3],n[4]=t[4]+e[4],n[5]=t[5]+e[5],n[6]=t[6]+e[6],n[7]=t[7]+e[7],n[8]=t[8]+e[8],n}function wF(n,t,e){return n[0]=t[0]-e[0],n[1]=t[1]-e[1],n[2]=t[2]-e[2],n[3]=t[3]-e[3],n[4]=t[4]-e[4],n[5]=t[5]-e[5],n[6]=t[6]-e[6],n[7]=t[7]-e[7],n[8]=t[8]-e[8],n}function SF(n,t,e){return n[0]=t[0]*e,n[1]=t[1]*e,n[2]=t[2]*e,n[3]=t[3]*e,n[4]=t[4]*e,n[5]=t[5]*e,n[6]=t[6]*e,n[7]=t[7]*e,n[8]=t[8]*e,n}function MF(n,t,e,r){return n[0]=t[0]+e[0]*r,n[1]=t[1]+e[1]*r,n[2]=t[2]+e[2]*r,n[3]=t[3]+e[3]*r,n[4]=t[4]+e[4]*r,n[5]=t[5]+e[5]*r,n[6]=t[6]+e[6]*r,n[7]=t[7]+e[7]*r,n[8]=t[8]+e[8]*r,n}function AF(n,t){return n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2]&&n[3]===t[3]&&n[4]===t[4]&&n[5]===t[5]&&n[6]===t[6]&&n[7]===t[7]&&n[8]===t[8]}function TF(n,t){var e=n[0],r=n[1],i=n[2],a=n[3],s=n[4],o=n[5],l=n[6],c=n[7],u=n[8],h=t[0],d=t[1],f=t[2],v=t[3],g=t[4],p=t[5],y=t[6],b=t[7],E=t[8];return Math.abs(e-h)<=glMatrix.EPSILON*Math.max(1,Math.abs(e),Math.abs(h))&&Math.abs(r-d)<=glMatrix.EPSILON*Math.max(1,Math.abs(r),Math.abs(d))&&Math.abs(i-f)<=glMatrix.EPSILON*Math.max(1,Math.abs(i),Math.abs(f))&&Math.abs(a-v)<=glMatrix.EPSILON*Math.max(1,Math.abs(a),Math.abs(v))&&Math.abs(s-g)<=glMatrix.EPSILON*Math.max(1,Math.abs(s),Math.abs(g))&&Math.abs(o-p)<=glMatrix.EPSILON*Math.max(1,Math.abs(o),Math.abs(p))&&Math.abs(l-y)<=glMatrix.EPSILON*Math.max(1,Math.abs(l),Math.abs(y))&&Math.abs(c-b)<=glMatrix.EPSILON*Math.max(1,Math.abs(c),Math.abs(b))&&Math.abs(u-E)<=glMatrix.EPSILON*Math.max(1,Math.abs(u),Math.abs(E))}var OF=null,CF=null;function Qn(){var n=new tt(4);return tt!=Float32Array&&(n[0]=0,n[1]=0,n[2]=0),n[3]=1,n}function NF(n){return n[0]=0,n[1]=0,n[2]=0,n[3]=1,n}function ka(n,t,e){e=e*.5;var r=Math.sin(e);return n[0]=r*t[0],n[1]=r*t[1],n[2]=r*t[2],n[3]=Math.cos(e),n}function kF(n,t){var e=Math.acos(t[3])*2,r=Math.sin(e/2);return r>glMatrix.EPSILON?(n[0]=t[0]/r,n[1]=t[1]/r,n[2]=t[2]/r):(n[0]=1,n[1]=0,n[2]=0),e}function PF(n,t){var e=Nw(n,t);return Math.acos(2*e*e-1)}function Pa(n,t,e){var r=t[0],i=t[1],a=t[2],s=t[3],o=e[0],l=e[1],c=e[2],u=e[3];return n[0]=r*u+s*o+i*c-a*l,n[1]=i*u+s*l+a*o-r*c,n[2]=a*u+s*c+r*l-i*o,n[3]=s*u-r*o-i*l-a*c,n}function RF(n,t,e){e*=.5;var r=t[0],i=t[1],a=t[2],s=t[3],o=Math.sin(e),l=Math.cos(e);return n[0]=r*l+s*o,n[1]=i*l+a*o,n[2]=a*l-i*o,n[3]=s*l-r*o,n}function LF(n,t,e){e*=.5;var r=t[0],i=t[1],a=t[2],s=t[3],o=Math.sin(e),l=Math.cos(e);return n[0]=r*l-a*o,n[1]=i*l+s*o,n[2]=a*l+r*o,n[3]=s*l-i*o,n}function _F(n,t,e){e*=.5;var r=t[0],i=t[1],a=t[2],s=t[3],o=Math.sin(e),l=Math.cos(e);return n[0]=r*l+i*o,n[1]=i*l-r*o,n[2]=a*l+s*o,n[3]=s*l-a*o,n}function DF(n,t){var e=t[0],r=t[1],i=t[2];return n[0]=e,n[1]=r,n[2]=i,n[3]=Math.sqrt(Math.abs(1-e*e-r*r-i*i)),n}function Mw(n,t){var e=t[0],r=t[1],i=t[2],a=t[3],s=Math.sqrt(e*e+r*r+i*i),o=Math.exp(a),l=s>0?o*Math.sin(s)/s:0;return n[0]=e*l,n[1]=r*l,n[2]=i*l,n[3]=o*Math.cos(s),n}function Aw(n,t){var e=t[0],r=t[1],i=t[2],a=t[3],s=Math.sqrt(e*e+r*r+i*i),o=s>0?Math.atan2(s,a)/s:0;return n[0]=e*o,n[1]=r*o,n[2]=i*o,n[3]=.5*Math.log(e*e+r*r+i*i+a*a),n}function IF(n,t,e){return Aw(n,t),Cw(n,n,e),Mw(n,n),n}function wd(n,t,e,r){var i=t[0],a=t[1],s=t[2],o=t[3],l=e[0],c=e[1],u=e[2],h=e[3],d,f,v,g,p;return f=i*l+a*c+s*u+o*h,f<0&&(f=-f,l=-l,c=-c,u=-u,h=-h),1-f>et?(d=Math.acos(f),v=Math.sin(d),g=Math.sin((1-r)*d)/v,p=Math.sin(r*d)/v):(g=1-r,p=r),n[0]=g*i+p*l,n[1]=g*a+p*c,n[2]=g*s+p*u,n[3]=g*o+p*h,n}function BF(n){var t=glMatrix.RANDOM(),e=glMatrix.RANDOM(),r=glMatrix.RANDOM(),i=Math.sqrt(1-t),a=Math.sqrt(t);return n[0]=i*Math.sin(2*Math.PI*e),n[1]=i*Math.cos(2*Math.PI*e),n[2]=a*Math.sin(2*Math.PI*r),n[3]=a*Math.cos(2*Math.PI*r),n}function Sd(n,t){var e=t[0],r=t[1],i=t[2],a=t[3],s=e*e+r*r+i*i+a*a,o=s?1/s:0;return n[0]=-e*o,n[1]=-r*o,n[2]=-i*o,n[3]=a*o,n}function FF(n,t){return n[0]=-t[0],n[1]=-t[1],n[2]=-t[2],n[3]=t[3],n}function Tw(n,t){var e=t[0]+t[4]+t[8],r;if(e>0)r=Math.sqrt(e+1),n[3]=.5*r,r=.5/r,n[0]=(t[5]-t[7])*r,n[1]=(t[6]-t[2])*r,n[2]=(t[1]-t[3])*r;else{var i=0;t[4]>t[0]&&(i=1),t[8]>t[i*3+i]&&(i=2);var a=(i+1)%3,s=(i+2)%3;r=Math.sqrt(t[i*3+i]-t[a*3+a]-t[s*3+s]+1),n[i]=.5*r,r=.5/r,n[3]=(t[a*3+s]-t[s*3+a])*r,n[a]=(t[a*3+i]+t[i*3+a])*r,n[s]=(t[s*3+i]+t[i*3+s])*r}return n}function $l(n,t,e,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:it,a=Math.PI/360;t*=a,r*=a,e*=a;var s=Math.sin(t),o=Math.cos(t),l=Math.sin(e),c=Math.cos(e),u=Math.sin(r),h=Math.cos(r);switch(i){case"xyz":n[0]=s*c*h+o*l*u,n[1]=o*l*h-s*c*u,n[2]=o*c*u+s*l*h,n[3]=o*c*h-s*l*u;break;case"xzy":n[0]=s*c*h-o*l*u,n[1]=o*l*h-s*c*u,n[2]=o*c*u+s*l*h,n[3]=o*c*h+s*l*u;break;case"yxz":n[0]=s*c*h+o*l*u,n[1]=o*l*h-s*c*u,n[2]=o*c*u-s*l*h,n[3]=o*c*h+s*l*u;break;case"yzx":n[0]=s*c*h+o*l*u,n[1]=o*l*h+s*c*u,n[2]=o*c*u-s*l*h,n[3]=o*c*h-s*l*u;break;case"zxy":n[0]=s*c*h-o*l*u,n[1]=o*l*h+s*c*u,n[2]=o*c*u+s*l*h,n[3]=o*c*h-s*l*u;break;case"zyx":n[0]=s*c*h-o*l*u,n[1]=o*l*h+s*c*u,n[2]=o*c*u-s*l*h,n[3]=o*c*h+s*l*u;break;default:throw new Error("Unknown angle order "+i)}return n}function zF(n){return"quat("+n[0]+", "+n[1]+", "+n[2]+", "+n[3]+")"}var jF=jo,Ow=mi,tc=gd,dg=Kl,WF=Ks,fg=Pa,Cw=md,Nw=m,GF=j,ZF=Ql,VF=null,UF=ql,YF=null,ec=w,HF=vt;function XF(n,t){return Math.abs(vec4.dot(n,t))>=1-glMatrix.EPSILON}var KF=function(){var n=xt(),t=zt(1,0,0),e=zt(0,1,0);return function(r,i,a){var s=Ze(i,a);return s<-.999999?(fn(n,t,i),Ar(n)<1e-6&&fn(n,e,i),Ne(n,n),ka(r,n,Math.PI),r):s>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(fn(n,i,a),r[0]=n[0],r[1]=n[1],r[2]=n[2],r[3]=1+s,ec(r,r))}}(),QF=function(){var n=Qn(),t=Qn();return function(e,r,i,a,s,o){return wd(n,r,s,o),wd(t,i,a,o),wd(e,n,t,2*o*(1-o)),e}}(),qF=function(){var n=hg();return function(t,e,r,i){return n[0]=r[0],n[3]=r[1],n[6]=r[2],n[1]=i[0],n[4]=i[1],n[7]=i[2],n[2]=-e[0],n[5]=-e[1],n[8]=-e[2],ec(t,Tw(t,n))}}();function Md(){var n=new tt(2);return tt!=Float32Array&&(n[0]=0,n[1]=0),n}function JF(n){var t=new glMatrix.ARRAY_TYPE(2);return t[0]=n[0],t[1]=n[1],t}function $F(n,t){var e=new glMatrix.ARRAY_TYPE(2);return e[0]=n,e[1]=t,e}function kw(n,t){return n[0]=t[0],n[1]=t[1],n}function Pw(n,t,e){return n[0]=t,n[1]=e,n}function t8(n,t,e){return n[0]=t[0]+e[0],n[1]=t[1]+e[1],n}function e8(n,t,e){return n[0]=t[0]-e[0],n[1]=t[1]-e[1],n}function n8(n,t,e){return n[0]=t[0]*e[0],n[1]=t[1]*e[1],n}function r8(n,t,e){return n[0]=t[0]/e[0],n[1]=t[1]/e[1],n}function i8(n,t){return n[0]=Math.ceil(t[0]),n[1]=Math.ceil(t[1]),n}function a8(n,t){return n[0]=Math.floor(t[0]),n[1]=Math.floor(t[1]),n}function s8(n,t,e){return n[0]=Math.min(t[0],e[0]),n[1]=Math.min(t[1],e[1]),n}function o8(n,t,e){return n[0]=Math.max(t[0],e[0]),n[1]=Math.max(t[1],e[1]),n}function l8(n,t){return n[0]=glMatrix.round(t[0]),n[1]=glMatrix.round(t[1]),n}function c8(n,t,e){return n[0]=t[0]*e,n[1]=t[1]*e,n}function u8(n,t,e,r){return n[0]=t[0]+e[0]*r,n[1]=t[1]+e[1]*r,n}function h8(n,t){var e=t[0]-n[0],r=t[1]-n[1];return Math.sqrt(e*e+r*r)}function d8(n,t){var e=t[0]-n[0],r=t[1]-n[1];return e*e+r*r}function f8(n){var t=n[0],e=n[1];return Math.sqrt(t*t+e*e)}function v8(n){var t=n[0],e=n[1];return t*t+e*e}function g8(n,t){return n[0]=-t[0],n[1]=-t[1],n}function p8(n,t){return n[0]=1/t[0],n[1]=1/t[1],n}function Rw(n,t){var e=t[0],r=t[1],i=e*e+r*r;return i>0&&(i=1/Math.sqrt(i)),n[0]=t[0]*i,n[1]=t[1]*i,n}function Lw(n,t){return n[0]*t[0]+n[1]*t[1]}function m8(n,t,e){var r=t[0]*e[1]-t[1]*e[0];return n[0]=n[1]=0,n[2]=r,n}function y8(n,t,e,r){var i=t[0],a=t[1];return n[0]=i+r*(e[0]-i),n[1]=a+r*(e[1]-a),n}function b8(n,t){t=t===void 0?1:t;var e=glMatrix.RANDOM()*2*Math.PI;return n[0]=Math.cos(e)*t,n[1]=Math.sin(e)*t,n}function x8(n,t,e){var r=t[0],i=t[1];return n[0]=e[0]*r+e[2]*i,n[1]=e[1]*r+e[3]*i,n}function E8(n,t,e){var r=t[0],i=t[1];return n[0]=e[0]*r+e[2]*i+e[4],n[1]=e[1]*r+e[3]*i+e[5],n}function w8(n,t,e){var r=t[0],i=t[1];return n[0]=e[0]*r+e[3]*i+e[6],n[1]=e[1]*r+e[4]*i+e[7],n}function S8(n,t,e){var r=t[0],i=t[1];return n[0]=e[0]*r+e[4]*i+e[12],n[1]=e[1]*r+e[5]*i+e[13],n}function M8(n,t,e,r){var i=t[0]-e[0],a=t[1]-e[1],s=Math.sin(r),o=Math.cos(r);return n[0]=i*o-a*s+e[0],n[1]=i*s+a*o+e[1],n}function A8(n,t){var e=n[0],r=n[1],i=t[0],a=t[1];return Math.abs(Math.atan2(r*i-e*a,e*i+r*a))}function T8(n,t){var e=n[0],r=n[1],i=t[0],a=t[1];return Math.atan2(e*a-r*i,e*i+r*a)}function O8(n){return n[0]=0,n[1]=0,n}function C8(n){return"vec2("+n[0]+", "+n[1]+")"}function _w(n,t){return n[0]===t[0]&&n[1]===t[1]}function N8(n,t){var e=n[0],r=n[1],i=t[0],a=t[1];return Math.abs(e-i)<=glMatrix.EPSILON*Math.max(1,Math.abs(e),Math.abs(i))&&Math.abs(r-a)<=glMatrix.EPSILON*Math.max(1,Math.abs(r),Math.abs(a))}var k8=null,P8=null,R8=null,L8=null,_8=null,D8=null,I8=null,B8=function(){var n=Md();return function(t,e,r,i,a,s){var o,l;for(e||(e=2),r||(r=0),i?l=Math.min(i*e+r,t.length):l=t.length,o=r;oe?e:n},Nn=Dw,Z=S(80813),Zo={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0};function vg(n){return Array.isArray(n)&&n.every(function(t){var e=t[0].toLowerCase();return Zo[e]===t.length-1&&"achlmqstvz".includes(e)})}function gg(n){return vg(n)&&n.every(function(t){var e=t[0];return e===e.toUpperCase()})}function pg(n){return gg(n)&&n.every(function(t){var e=t[0];return"ACLMQZ".includes(e)})}var mg={x1:0,y1:0,x2:0,y2:0,x:0,y:0,qx:null,qy:null};function yg(n){for(var t=n.pathValue[n.segmentStart],e=t.toLowerCase(),r=n.data;r.length>=Zo[e]&&(e==="m"&&r.length>2?(n.segments.push([t].concat(r.splice(0,2))),e="l",t=t==="m"?"l":"L"):n.segments.push([t].concat(r.splice(0,Zo[e]))),!!Zo[e]););}function Iw(n){var t=n.index,e=n.pathValue,r=e.charCodeAt(t);if(r===48){n.param=0,n.index+=1;return}if(r===49){n.param=1,n.index+=1;return}n.err='[path-util]: invalid Arc flag "'.concat(e[t],'", expecting 0 or 1 at index ').concat(t)}function Bw(n){return n>=48&&n<=57||n===43||n===45||n===46}function Js(n){return n>=48&&n<=57}function Fw(n){var t=n.max,e=n.pathValue,r=n.index,i=r,a=!1,s=!1,o=!1,l=!1,c;if(i>=t){n.err="[path-util]: Invalid path value at index ".concat(i,', "pathValue" is missing param');return}if(c=e.charCodeAt(i),(c===43||c===45)&&(i+=1,c=e.charCodeAt(i)),!Js(c)&&c!==46){n.err="[path-util]: Invalid path value at index ".concat(i,', "').concat(e[i],'" is not a number');return}if(c!==46){if(a=c===48,i+=1,c=e.charCodeAt(i),a&&i=5760&&t.includes(n)}function nc(n){for(var t=n.pathValue,e=n.max;n.index0;s-=1){if(Ww(i)&&(s===3||s===4)?Iw(n):Fw(n),n.err.length)return;n.data.push(n.param),nc(n),n.index=n.max||!Bw(e.charCodeAt(n.index)))break}yg(n)}var Zw=function(){function n(t){this.pathValue=t,this.segments=[],this.max=t.length,this.index=0,this.param=0,this.segmentStart=0,this.data=[],this.err=""}return n}();function Vw(n){if(vg(n))return[].concat(n);var t=new Zw(n);for(nc(t);t.index=a)s={x:e,y:r};else{var o=Ra([n,t],[e,r],i/a),l=o[0],c=o[1];s={x:l,y:c}}return{length:a,point:s,min:{x:Math.min(n,e),y:Math.min(t,r)},max:{x:Math.max(n,e),y:Math.max(t,r)}}}function bg(n,t){var e=n.x,r=n.y,i=t.x,a=t.y,s=e*i+r*a,o=Math.sqrt((Math.pow(e,2)+Math.pow(r,2))*(Math.pow(i,2)+Math.pow(a,2))),l=e*a-r*i<0?-1:1,c=l*Math.acos(s/o);return c}function Hw(n,t,e,r,i,a,s,o,l,c){var u=Math.abs,h=Math.sin,d=Math.cos,f=Math.sqrt,v=Math.PI,g=u(e),p=u(r),y=(i%360+360)%360,b=y*(v/180);if(n===o&&t===l)return{x:n,y:t};if(g===0||p===0)return Ad(n,t,o,l,c).point;var E=(n-o)/2,O=(t-l)/2,k={x:d(b)*E+h(b)*O,y:-h(b)*E+d(b)*O},R=Math.pow(k.x,2)/Math.pow(g,2)+Math.pow(k.y,2)/Math.pow(p,2);R>1&&(g*=f(R),p*=f(R));var z=Math.pow(g,2)*Math.pow(p,2)-Math.pow(g,2)*Math.pow(k.y,2)-Math.pow(p,2)*Math.pow(k.x,2),B=Math.pow(g,2)*Math.pow(k.y,2)+Math.pow(p,2)*Math.pow(k.x,2),V=z/B;V=V<0?0:V;var U=(a!==s?1:-1)*f(V),J={x:U*(g*k.y/p),y:U*(-(p*k.x)/g)},$={x:d(b)*J.x-h(b)*J.y+(n+o)/2,y:h(b)*J.x+d(b)*J.y+(t+l)/2},st={x:(k.x-J.x)/g,y:(k.y-J.y)/p},ct=bg({x:1,y:0},st),ft={x:(-k.x-J.x)/g,y:(-k.y-J.y)/p},Nt=bg(st,ft);!s&&Nt>0?Nt-=2*v:s&&Nt<0&&(Nt+=2*v),Nt%=2*v;var Ct=ct+Nt*c,gt=g*d(Ct),pt=p*h(Ct),Pt={x:d(b)*gt-h(b)*pt+$.x,y:h(b)*gt+d(b)*pt+$.y};return Pt}function Xw(n,t,e,r,i,a,s,o,l,c,u){var h,d=u.bbox,f=d===void 0?!0:d,v=u.length,g=v===void 0?!0:v,p=u.sampleSize,y=p===void 0?30:p,b=typeof c=="number",E=n,O=t,k=0,R=[E,O,k],z=[E,O],B=0,V={x:0,y:0},U=[{x:E,y:O}];b&&c<=0&&(V={x:E,y:O});for(var J=0;J<=y;J+=1){if(B=J/y,h=Hw(n,t,e,r,i,a,s,o,l,B),E=h.x,O=h.y,f&&U.push({x:E,y:O}),g&&(k+=Vr(z,[E,O])),z=[E,O],b&&k>=c&&c>R[2]){var $=(k-c)/(k-R[2]);V={x:z[0]*(1-$)+R[0]*$,y:z[1]*(1-$)+R[1]*$}}R=[E,O,k]}return b&&c>=k&&(V={x:o,y:l}),{length:k,point:V,min:{x:Math.min.apply(null,U.map(function(st){return st.x})),y:Math.min.apply(null,U.map(function(st){return st.y}))},max:{x:Math.max.apply(null,U.map(function(st){return st.x})),y:Math.max.apply(null,U.map(function(st){return st.y}))}}}function Kw(n,t,e,r,i,a,s,o,l){var c=1-l;return{x:Math.pow(c,3)*n+3*Math.pow(c,2)*l*e+3*c*Math.pow(l,2)*i+Math.pow(l,3)*s,y:Math.pow(c,3)*t+3*Math.pow(c,2)*l*r+3*c*Math.pow(l,2)*a+Math.pow(l,3)*o}}function xg(n,t,e,r,i,a,s,o,l,c){var u,h=c.bbox,d=h===void 0?!0:h,f=c.length,v=f===void 0?!0:f,g=c.sampleSize,p=g===void 0?10:g,y=typeof l=="number",b=n,E=t,O=0,k=[b,E,O],R=[b,E],z=0,B={x:0,y:0},V=[{x:b,y:E}];y&&l<=0&&(B={x:b,y:E});for(var U=0;U<=p;U+=1){if(z=U/p,u=Kw(n,t,e,r,i,a,s,o,z),b=u.x,E=u.y,d&&V.push({x:b,y:E}),v&&(O+=Vr(R,[b,E])),R=[b,E],y&&O>=l&&l>k[2]){var J=(O-l)/(O-k[2]);B={x:R[0]*(1-J)+k[0]*J,y:R[1]*(1-J)+k[1]*J}}k=[b,E,O]}return y&&l>=O&&(B={x:s,y:o}),{length:O,point:B,min:{x:Math.min.apply(null,V.map(function($){return $.x})),y:Math.min.apply(null,V.map(function($){return $.y}))},max:{x:Math.max.apply(null,V.map(function($){return $.x})),y:Math.max.apply(null,V.map(function($){return $.y}))}}}function Qw(n,t,e,r,i,a,s){var o=1-s;return{x:Math.pow(o,2)*n+2*o*s*e+Math.pow(s,2)*i,y:Math.pow(o,2)*t+2*o*s*r+Math.pow(s,2)*a}}function qw(n,t,e,r,i,a,s,o){var l,c=o.bbox,u=c===void 0?!0:c,h=o.length,d=h===void 0?!0:h,f=o.sampleSize,v=f===void 0?10:f,g=typeof s=="number",p=n,y=t,b=0,E=[p,y,b],O=[p,y],k=0,R={x:0,y:0},z=[{x:p,y}];g&&s<=0&&(R={x:p,y});for(var B=0;B<=v;B+=1){if(k=B/v,l=Qw(n,t,e,r,i,a,k),p=l.x,y=l.y,u&&z.push({x:p,y}),d&&(b+=Vr(O,[p,y])),O=[p,y],g&&b>=s&&s>E[2]){var V=(b-s)/(b-E[2]);R={x:O[0]*(1-V)+E[0]*V,y:O[1]*(1-V)+E[1]*V}}E=[p,y,b]}return g&&s>=b&&(R={x:i,y:a}),{length:b,point:R,min:{x:Math.min.apply(null,z.map(function(U){return U.x})),y:Math.min.apply(null,z.map(function(U){return U.y}))},max:{x:Math.max.apply(null,z.map(function(U){return U.x})),y:Math.max.apply(null,z.map(function(U){return U.y}))}}}function Eg(n,t,e){for(var r,i,a,s,o,l,c=rc(n),u=typeof t=="number",h,d=[],f,v=0,g=0,p=0,y=0,b,E=[],O=[],k=0,R={x:0,y:0},z=R,B=R,V=R,U=0,J=0,$=c.length;J<$;J+=1)b=c[J],f=b[0],h=f==="M",d=h?d:[v,g].concat(b.slice(1)),h?(p=b[1],y=b[2],R={x:p,y},z=R,k=0,u&&t<.001&&(V=R)):f==="L"?(r=Ad(d[0],d[1],d[2],d[3],(t||0)-U),k=r.length,R=r.min,z=r.max,B=r.point):f==="A"?(i=Xw(d[0],d[1],d[2],d[3],d[4],d[5],d[6],d[7],d[8],(t||0)-U,e||{}),k=i.length,R=i.min,z=i.max,B=i.point):f==="C"?(a=xg(d[0],d[1],d[2],d[3],d[4],d[5],d[6],d[7],(t||0)-U,e||{}),k=a.length,R=a.min,z=a.max,B=a.point):f==="Q"?(s=qw(d[0],d[1],d[2],d[3],d[4],d[5],(t||0)-U,e||{}),k=s.length,R=s.min,z=s.max,B=s.point):f==="Z"&&(d=[v,g,p,y],o=Ad(d[0],d[1],d[2],d[3],(t||0)-U),k=o.length,R=o.min,z=o.max,B=o.point),u&&U=t&&(V=B),O.push(z),E.push(R),U+=k,l=f!=="Z"?b.slice(-2):[p,y],v=l[0],g=l[1];return u&&t>=U&&(V={x:v,y:g}),{length:U,point:V,min:{x:Math.min.apply(null,E.map(function(st){return st.x})),y:Math.min.apply(null,E.map(function(st){return st.y}))},max:{x:Math.max.apply(null,O.map(function(st){return st.x})),y:Math.max.apply(null,O.map(function(st){return st.y}))}}}function Jw(n,t){return Eg(n,void 0,(0,Z.pi)((0,Z.pi)({},t),{bbox:!1,length:!0})).length}function Ur(n){return Array.isArray(n)}var ic=function(n){if(Ur(n))return n.reduce(function(t,e){return Math.min(t,e)},n[0])};function ac(n){if(!Array.isArray(n))return-1/0;var t=n.length;if(!t)return-1/0;for(var e=n[0],r=1;r7){n[e].shift();for(var r=n[e],i=e;r.length;)t[e]="A",n.splice(i+=1,0,["C"].concat(r.splice(0,6)));n.splice(e,1)}}function n2(n){return pg(n)&&n.every(function(t){var e=t[0];return"MC".includes(e)})}function sc(n,t,e){var r=n*Math.cos(e)-t*Math.sin(e),i=n*Math.sin(e)+t*Math.cos(e);return{x:r,y:i}}function Td(n,t,e,r,i,a,s,o,l,c){var u=n,h=t,d=e,f=r,v=o,g=l,p=Math.PI*120/180,y=Math.PI/180*(+i||0),b=[],E,O,k,R,z;if(c)O=c[0],k=c[1],R=c[2],z=c[3];else{E=sc(u,h,-y),u=E.x,h=E.y,E=sc(v,g,-y),v=E.x,g=E.y;var B=(u-v)/2,V=(h-g)/2,U=B*B/(d*d)+V*V/(f*f);U>1&&(U=Math.sqrt(U),d*=U,f*=U);var J=d*d,$=f*f,st=(a===s?-1:1)*Math.sqrt(Math.abs((J*$-J*V*V-$*B*B)/(J*V*V+$*B*B)));R=st*d*V/f+(u+v)/2,z=st*-f*B/d+(h+g)/2,O=Math.asin(((h-z)/f*Math.pow(10,9)>>0)/Math.pow(10,9)),k=Math.asin(((g-z)/f*Math.pow(10,9)>>0)/Math.pow(10,9)),O=uk&&(O-=Math.PI*2),!s&&k>O&&(k-=Math.PI*2)}var ct=k-O;if(Math.abs(ct)>p){var ft=k,Nt=v,Ct=g;k=O+p*(s&&k>O?1:-1),v=R+d*Math.cos(k),g=z+f*Math.sin(k),b=Td(v,g,d,f,i,0,s,Nt,Ct,[k,ft,R,z])}ct=k-O;var gt=Math.cos(O),pt=Math.sin(O),Pt=Math.cos(k),jt=Math.sin(k),Yt=Math.tan(ct/4),ee=4/3*d*Yt,ie=4/3*f*Yt,ce=[u,h],le=[u+ee*pt,h-ie*gt],Ee=[v+ee*jt,g-ie*Pt],Ce=[v,g];if(le[0]=2*ce[0]-le[0],le[1]=2*ce[1]-le[1],c)return le.concat(Ee,Ce,b);b=le.concat(Ee,Ce,b);for(var We=[],Ye=0,or=b.length;Yea2)return console.warn("Maximum recursion depth reached in equalizeSegments"),[n,t];var i=Mg(n),a=Mg(t),s=i.length,o=a.length,l=i.filter(function(y){return y.l}).length,c=a.filter(function(y){return y.l}).length,u=i.filter(function(y){return y.l}).reduce(function(y,b){var E=b.l;return y+E},0)/l||0,h=a.filter(function(y){return y.l}).reduce(function(y,b){var E=b.l;return y+E},0)/c||0,d=e||Math.max(s,o),f=[u,h],v=[d-s,d-o],g=0,p=[i,a].map(function(y,b){return y.l===d?y.map(function(E){return E.s}):y.map(function(E,O){return g=O&&v[b]&&E.l>=f[b],v[b]-=g?1:0,g?E.ss:[E.s]}).flat()});return p[0].length===p[1].length?p:Ag(p[0],p[1],d,r+1)}function o2(n,t,e,r,i,a,s,o){return 3*((o-t)*(e+i)-(s-n)*(r+a)+r*(n-i)-e*(t-a)+o*(i+n/3)-s*(a+t/3))/20}function l2(n){var t=0,e=0,r=0;return Od(n).map(function(i){var a;switch(i[0]){case"M":return t=i[1],e=i[2],0;default:var s=i.slice(1),o=s[0],l=s[1],c=s[2],u=s[3],h=s[4],d=s[5];return r=o2(t,e,o,l,c,u,h,d),a=i.slice(-2),t=a[0],e=a[1],r}}).reduce(function(i,a){return i+a},0)}function Tg(n){return l2(n)>=0}function c2(n){var t=n.slice(1).map(function(e,r,i){return r?i[r-1].slice(-2).concat(e.slice(1)):n[0].slice(1).concat(e.slice(1))}).map(function(e){return e.map(function(r,i){return e[e.length-i-2*(1-i%2)]})}).reverse();return[["M"].concat(t[0].slice(0,2))].concat(t.map(function(e){return["C"].concat(e.slice(2))}))}function u2(n){return n.map(function(t){return Array.isArray(t)?[].concat(t):t})}function h2(n){var t=n.length,e=t-1;return n.map(function(r,i){return n.map(function(a,s){var o=i+s,l;return s===0||n[o]&&n[o][0]==="M"?(l=n[o],["M"].concat(l.slice(-2))):(o>=t&&(o-=e),n[o])})})}function d2(n,t){var e=n.length-1,r=[],i=0,a=0,s=h2(n);return s.forEach(function(o,l){n.slice(1).forEach(function(c,u){a+=Vr(n[(l+u)%e].slice(-2),t[u%e].slice(-2))}),r[l]=a,a=0}),i=r.indexOf(Math.min.apply(null,r)),s[i]}var f2=function(n){return n===void 0},Te=f2,v2={}.toString,g2=function(n,t){return v2.call(n)==="[object "+t+"]"},Og=g2,p2=function(n){return Og(n,"Boolean")},Uo=p2;function ue(n){return typeof n=="function"}var Fn=function(n){var t=typeof n;return n!==null&&t==="object"||t==="function"};function m2(n,t,e){return Eg(n,t,(0,Z.pi)((0,Z.pi)({},e),{bbox:!1,length:!0})).point}var ae=S(20068);function y2(n,t){for(;!{}.hasOwnProperty.call(n,t)&&(n=(0,D.Z)(n))!==null;);return n}function Cd(){return Cd=typeof Reflect!="undefined"&&Reflect.get?Reflect.get.bind():function(n,t,e){var r=y2(n,t);if(r){var i=Object.getOwnPropertyDescriptor(r,t);return i.get?i.get.call(arguments.length<3?n:e):i.value}},Cd.apply(null,arguments)}function Cg(n,t,e,r){var i=Cd((0,D.Z)(1&r?n.prototype:n),t,e);return 2&r&&typeof i=="function"?function(a){return i.apply(e,a)}:i}function Cr(n,t,e,r){var i=n-e,a=t-r;return Math.sqrt(i*i+a*a)}function oc(n,t){var e=Math.min.apply(Math,(0,N.Z)(n)),r=Math.min.apply(Math,(0,N.Z)(t)),i=Math.max.apply(Math,(0,N.Z)(n)),a=Math.max.apply(Math,(0,N.Z)(t));return{x:e,y:r,width:i-e,height:a-r}}function Ng(n){return(n+Math.PI*2)%(Math.PI*2)}function kg(n,t){var e=Math.abs(n);return t>0?e:e*-1}function b2(n,t,e,r,i,a){var s=e,o=r;if(s===0||o===0)return{x:n,y:t};for(var l=i-n,c=a-t,u=Math.abs(l),h=Math.abs(c),d=s*s,f=o*o,v=Math.PI/4,g=0,p=0,y=0;y<4;y++){g=s*Math.cos(v),p=o*Math.sin(v);var b=(d-f)*Math.pow(Math.cos(v),3)/s,E=(f-d)*Math.pow(Math.sin(v),3)/o,O=g-b,k=p-E,R=u-b,z=h-E,B=Math.hypot(k,O),V=Math.hypot(z,R),U=B*Math.asin((O*z-k*R)/(B*V)),J=U/Math.sqrt(d+f-g*g-p*p);v+=J,v=Math.min(Math.PI/2,Math.max(0,v))}return{x:n+kg(g,l),y:t+kg(p,c)}}function x2(n,t,e,r,i,a,s,o){return-1*e*Math.cos(i)*Math.sin(o)-r*Math.sin(i)*Math.cos(o)}function E2(n,t,e,r,i,a,s,o){return-1*e*Math.sin(i)*Math.sin(o)+r*Math.cos(i)*Math.cos(o)}function w2(n,t,e){return Math.atan(-t/n*Math.tan(e))}function S2(n,t,e){return Math.atan(t/(n*Math.tan(e)))}function M2(n,t,e,r,i,a){return e*Math.cos(i)*Math.cos(a)-r*Math.sin(i)*Math.sin(a)+n}function A2(n,t,e,r,i,a){return e*Math.sin(i)*Math.cos(a)+r*Math.cos(i)*Math.sin(a)+t}function T2(n,t,e,r){var i=Math.atan2(r*n,e*t);return(i+Math.PI*2)%(Math.PI*2)}function Pg(n,t,e){return{x:n*Math.cos(e),y:t*Math.sin(e)}}function Rg(n,t,e){var r=Math.cos(e),i=Math.sin(e);return[n*r-t*i,n*i+t*r]}function O2(n,t,e,r,i,a,s){for(var o=w2(e,r,i),l=1/0,c=-1/0,u=[a,s],h=-Math.PI*2;h<=Math.PI*2;h+=Math.PI){var d=o+h;ac&&(c=v)}for(var g=S2(e,r,i),p=1/0,y=-1/0,b=[a,s],E=-Math.PI*2;E<=Math.PI*2;E+=Math.PI){var O=g+E;ay&&(y=R)}return{x:l,y:p,width:c-l,height:y-p}}function F8(n,t,e,r,i,a,s,o,l){var c=Rg(o-n,l-t,-i),u=_slicedToArray(c,2),h=u[0],d=u[1],f=b2(0,0,e,r,h,d),v=T2(e,r,f.x,f.y);vs&&(f=Pg(e,r,s));var g=Rg(f.x,f.y,i);return{x:g[0]+n,y:g[1]+t}}function z8(n,t,e,r,i,a,s,o){var l=(s-a)*o+a,c=x2(n,t,e,r,i,a,s,l),u=E2(n,t,e,r,i,a,s,l);return Ng(Math.atan2(u,c))}var C2=1e-4;function Lg(n,t,e,r,i,a){var s=-1,o=1/0,l=[e,r],c=20;a&&a>200&&(c=a/10);for(var u=1/c,h=u/10,d=0;d<=c;d++){var f=d*u,v=[i.apply(void 0,(0,N.Z)(n.concat([f]))),i.apply(void 0,(0,N.Z)(t.concat([f])))],g=Cr(l[0],l[1],v[0],v[1]);g=0&&ko?Cr(e,r,i,a):Dg(n,t,e,r,i,a)}function Dg(n,t,e,r,i,a){var s=[e-n,r-t];if(_w(s,[0,0]))return Math.sqrt((i-n)*(i-n)+(a-t)*(a-t));var o=[-s[1],s[0]];Rw(o,o);var l=[i-n,a-t];return Math.abs(Lw(l,o))}function W8(n,t,e,r){return Math.atan2(r-t,e-n)}function cs(n,t,e,r,i){var a=1-i;return a*a*a*n+3*t*i*a*a+3*e*i*i*a+r*i*i*i}function Ig(n,t,e,r,i){var a=1-i;return 3*(a*a*(t-n)+2*a*i*(e-t)+i*i*(r-e))}function Bg(n,t,e,r){var i=-3*n+9*t-9*e+3*r,a=6*n-12*t+6*e,s=3*t-3*n,o=[],l,c,u;if(Vo(i,0))Vo(a,0)||(l=-s/a,l>=0&&l<=1&&o.push(l));else{var h=a*a-4*i*s;Vo(h,0)?o.push(-a/(2*i)):h>0&&(u=Math.sqrt(h),l=(-a+u)/(2*i),c=(-a-u)/(2*i),l>=0&&l<=1&&o.push(l),c>=0&&c<=1&&o.push(c))}return o}function P2(n,t,e,r,i,a,s,o,l){var c=cs(n,e,i,s,l),u=cs(t,r,a,o,l),h=Xi(n,t,e,r,l),d=Xi(e,r,i,a,l),f=Xi(i,a,s,o,l),v=Xi(h.x,h.y,d.x,d.y,l),g=Xi(d.x,d.y,f.x,f.y,l);return[[n,t,h.x,h.y,v.x,v.y,c,u],[c,u,g.x,g.y,f.x,f.y,s,o]]}function Nd(n,t,e,r,i,a,s,o,l){if(l===0)return N2([n,e,i,s],[t,r,a,o]);var c=P2(n,t,e,r,i,a,s,o,.5),u=[].concat(_toConsumableArray(c[0]),[l-1]),h=[].concat(_toConsumableArray(c[1]),[l-1]);return Nd.apply(void 0,_toConsumableArray(u))+Nd.apply(void 0,_toConsumableArray(h))}function R2(n,t,e,r,i,a,s,o){for(var l=[n,s],c=[t,o],u=Bg(n,e,i,s),h=Bg(t,r,a,o),d=0;d1||t<0||n.length<2)return null;var e=zg(n),r=e.segments,i=e.totalLength;if(i===0)return{x:n[0][0],y:n[0][1]};for(var a=0,s=null,o=0;o=a&&t<=a+h){var d=(t-a)/h;s=Xi(c[0],c[1],u[0],u[1],d);break}a+=h}return s}function Gg(n,t){if(t>1||t<0||n.length<2)return 0;for(var e=zg(n),r=e.segments,i=e.totalLength,a=0,s=0,o=0;o=a&&t<=a+h){s=Math.atan2(u[1]-c[1],u[0]-c[0]);break}a+=h}return s}function Zg(n,t,e){for(var r=1/0,i=0;i=0?[i]:[]}function I2(n,t,e,r,i,a,s){var o=Yo(n,e,i,s),l=Yo(t,r,a,s),c=Xi(n,t,e,r,s),u=Xi(e,r,i,a,s);return[[n,t,c.x,c.y,o,l],[o,l,u.x,u.y,i,a]]}function kd(n,t,e,r,i,a,s){if(s===0)return(Cr(n,t,e,r)+Cr(e,r,i,a)+Cr(n,t,i,a))/2;var o=I2(n,t,e,r,i,a,.5),l=o[0],c=o[1];return l.push(s-1),c.push(s-1),kd.apply(void 0,_toConsumableArray(l))+kd.apply(void 0,_toConsumableArray(c))}function B2(n,t,e,r,i,a){var s=Vg(n,e,i)[0],o=Vg(t,r,a)[0],l=[n,i],c=[t,a];return s!==void 0&&l.push(Yo(n,e,i,s)),o!==void 0&&c.push(Yo(t,r,a,o)),oc(l,c)}function $8(n,t,e,r,i,a){return kd(n,t,e,r,i,a,3)}function F2(n,t,e,r,i,a,s,o){return Lg([n,e,i],[t,r,a],s,o,Yo)}function z2(n,t,e,r,i,a,s,o){var l=F2(n,t,e,r,i,a,s,o);return Cr(l.x,l.y,s,o)}var Nr=S(75044),La=S(3202),j2=S(3208);function us(n,t){var e=typeof Symbol!="undefined"&&n[Symbol.iterator]||n["@@iterator"];if(!e){if(Array.isArray(n)||(e=(0,j2.Z)(n))||t&&n&&typeof n.length=="number"){e&&(n=e);var r=0,i=function(){};return{s:i,n:function(){return r>=n.length?{done:!0}:{done:!1,value:n[r++]}},e:function(c){throw c},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,s=!0,o=!1;return{s:function(){e=e.call(n)},n:function(){var c=e.next();return s=c.done,c},e:function(c){o=!0,a=c},f:function(){try{s||e.return==null||e.return()}finally{if(o)throw a}}}}var hs=S(75931);var W2=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof S.g!="undefined"?S.g:typeof self!="undefined"?self:{},Ug={exports:{}};(function(n,t){(function(e,r){n.exports=r()})(W2,function(){function e(k,R,z,B,V){r(k,R,z||0,B||k.length-1,V||a)}function r(k,R,z,B,V){for(;B>z;){if(B-z>600){var U=B-z+1,J=R-z+1,$=Math.log(U),st=.5*Math.exp(2*$/3),ct=.5*Math.sqrt($*st*(U-st)/U)*(J-U/2<0?-1:1),ft=Math.max(z,Math.floor(R-J*st/U+ct)),Nt=Math.min(B,Math.floor(R+(U-J)*st/U+ct));r(k,R,ft,Nt,V)}var Ct=k[R],gt=z,pt=B;for(i(k,z,R),V(k[B],Ct)>0&&i(k,z,B);gt0;)pt--}V(k[z],Ct)===0?i(k,z,pt):(pt++,i(k,pt,B)),pt<=R&&(z=pt+1),R<=pt&&(B=pt-1)}}function i(k,R,z){var B=k[R];k[R]=k[z],k[z]=B}function a(k,R){return kR?1:0}var s=function(R){R===void 0&&(R=9),this._maxEntries=Math.max(4,R),this._minEntries=Math.max(2,Math.ceil(this._maxEntries*.4)),this.clear()};s.prototype.all=function(){return this._all(this.data,[])},s.prototype.search=function(R){var z=this.data,B=[];if(!b(R,z))return B;for(var V=this.toBBox,U=[];z;){for(var J=0;J=0&&U[z].children.length>this._maxEntries;)this._split(U,z),z--;this._adjustParentBBoxes(V,U,z)},s.prototype._split=function(R,z){var B=R[z],V=B.children.length,U=this._minEntries;this._chooseSplitAxis(B,U,V);var J=this._chooseSplitIndex(B,U,V),$=E(B.children.splice(J,B.children.length-J));$.height=B.height,$.leaf=B.leaf,l(B,this.toBBox),l($,this.toBBox),z?R[z-1].children.push($):this._splitRoot(B,$)},s.prototype._splitRoot=function(R,z){this.data=E([R,z]),this.data.height=R.height+1,this.data.leaf=!1,l(this.data,this.toBBox)},s.prototype._chooseSplitIndex=function(R,z,B){for(var V,U=1/0,J=1/0,$=z;$<=B-z;$++){var st=c(R,0,$,this.toBBox),ct=c(R,$,B,this.toBBox),ft=p(st,ct),Nt=f(st)+f(ct);ft=z;Nt--){var Ct=R.children[Nt];u($,R.leaf?U(Ct):Ct),st+=v($)}return st},s.prototype._adjustParentBBoxes=function(R,z,B){for(var V=B;V>=0;V--)u(z[V],R)},s.prototype._condense=function(R){for(var z=R.length-1,B=void 0;z>=0;z--)R[z].children.length===0?z>0?(B=R[z-1].children,B.splice(B.indexOf(R[z]),1)):this.clear():l(R[z],this.toBBox)};function o(k,R,z){if(!z)return R.indexOf(k);for(var B=0;B=k.minX&&R.maxY>=k.minY}function E(k){return{children:k,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function O(k,R,z,B,V){for(var U=[R,z];U.length;)if(z=U.pop(),R=U.pop(),!(z-R<=B)){var J=R+Math.ceil((z-R)/B/2)*B;e(k,J,R,z,V),U.push(R,J,J,z)}}return s})})(Ug);var G2=Ug.exports,Dt=function(n){return n.GROUP="g",n.FRAGMENT="fragment",n.CIRCLE="circle",n.ELLIPSE="ellipse",n.IMAGE="image",n.RECT="rect",n.LINE="line",n.POLYLINE="polyline",n.POLYGON="polygon",n.TEXT="text",n.PATH="path",n.HTML="html",n.MESH="mesh",n}({}),cc=function(n){return n[n.ZERO=0]="ZERO",n[n.NEGATIVE_ONE=1]="NEGATIVE_ONE",n}({}),_a=function(){function n(){(0,C.Z)(this,n),this.plugins=[]}return(0,T.Z)(n,[{key:"addRenderingPlugin",value:function(e){this.plugins.push(e),this.context.renderingPlugins.push(e)}},{key:"removeAllRenderingPlugins",value:function(){var e=this;this.plugins.forEach(function(r){var i=e.context.renderingPlugins.indexOf(r);i>=0&&e.context.renderingPlugins.splice(i,1)})}}])}(),Z2=function(){function n(t){(0,C.Z)(this,n),this.clipSpaceNearZ=cc.NEGATIVE_ONE,this.plugins=[],this.config=(0,F.Z)({enableDirtyCheck:!0,enableCulling:!1,enableAutoRendering:!0,enableDirtyRectangleRendering:!0,enableDirtyRectangleRenderingDebug:!1,enableSizeAttenuation:!0,enableRenderingOptimization:!1},t)}return(0,T.Z)(n,[{key:"registerPlugin",value:function(e){var r=this.plugins.findIndex(function(i){return i===e});r===-1&&this.plugins.push(e)}},{key:"unregisterPlugin",value:function(e){var r=this.plugins.findIndex(function(i){return i===e});r>-1&&this.plugins.splice(r,1)}},{key:"getPlugins",value:function(){return this.plugins}},{key:"getPlugin",value:function(e){return this.plugins.find(function(r){return r.name===e})}},{key:"getConfig",value:function(){return this.config}},{key:"setConfig",value:function(e){Object.assign(this.config,e)}}])}(),Pd=we,$s=Ht,V2=_t,U2=Rt,Yg=dt,Rd=Xs,mn=function(){function n(){(0,C.Z)(this,n),this.center=[0,0,0],this.halfExtents=[0,0,0],this.min=[0,0,0],this.max=[0,0,0]}return(0,T.Z)(n,[{key:"update",value:function(e,r){$s(this.center,e),$s(this.halfExtents,r),Rd(this.min,this.center,this.halfExtents),Pd(this.max,this.center,this.halfExtents)}},{key:"setMinMax",value:function(e,r){Pd(this.center,r,e),Yg(this.center,this.center,.5),Rd(this.halfExtents,r,e),Yg(this.halfExtents,this.halfExtents,.5),$s(this.min,e),$s(this.max,r)}},{key:"getMin",value:function(){return this.min}},{key:"getMax",value:function(){return this.max}},{key:"add",value:function(e){if(!n.isEmpty(e)){if(n.isEmpty(this)){this.setMinMax(e.getMin(),e.getMax());return}var r=this.center,i=r[0],a=r[1],s=r[2],o=this.halfExtents,l=o[0],c=o[1],u=o[2],h=i-l,d=i+l,f=a-c,v=a+c,g=s-u,p=s+u,y=e.center,b=y[0],E=y[1],O=y[2],k=e.halfExtents,R=k[0],z=k[1],B=k[2],V=b-R,U=b+R,J=E-z,$=E+z,st=O-B,ct=O+B;Vd&&(d=U),Jv&&(v=$),stp&&(p=ct),r[0]=(h+d)*.5,r[1]=(f+v)*.5,r[2]=(g+p)*.5,o[0]=(d-h)*.5,o[1]=(v-f)*.5,o[2]=(p-g)*.5,this.min[0]=h,this.min[1]=f,this.min[2]=g,this.max[0]=d,this.max[1]=v,this.max[2]=p}}},{key:"setFromTransformedAABB",value:function(e,r){var i=this.center,a=this.halfExtents,s=e.center,o=e.halfExtents,l=r[0],c=r[4],u=r[8],h=r[1],d=r[5],f=r[9],v=r[2],g=r[6],p=r[10],y=Math.abs(l),b=Math.abs(c),E=Math.abs(u),O=Math.abs(h),k=Math.abs(d),R=Math.abs(f),z=Math.abs(v),B=Math.abs(g),V=Math.abs(p);i[0]=r[12]+l*s[0]+c*s[1]+u*s[2],i[1]=r[13]+h*s[0]+d*s[1]+f*s[2],i[2]=r[14]+v*s[0]+g*s[1]+p*s[2],a[0]=y*o[0]+b*o[1]+E*o[2],a[1]=O*o[0]+k*o[1]+R*o[2],a[2]=z*o[0]+B*o[1]+V*o[2],Rd(this.min,i,a),Pd(this.max,i,a)}},{key:"intersects",value:function(e){var r=this.getMax(),i=this.getMin(),a=e.getMax(),s=e.getMin();return i[0]<=a[0]&&r[0]>=s[0]&&i[1]<=a[1]&&r[1]>=s[1]&&i[2]<=a[2]&&r[2]>=s[2]}},{key:"intersection",value:function(e){if(!this.intersects(e))return null;var r=new n,i=V2([0,0,0],this.getMin(),e.getMin()),a=U2([0,0,0],this.getMax(),e.getMax());return r.setMinMax(i,a),r}},{key:"getNegativeFarPoint",value:function(e){return e.pnVertexFlag===273?$s([0,0,0],this.min):e.pnVertexFlag===272?[this.min[0],this.min[1],this.max[2]]:e.pnVertexFlag===257?[this.min[0],this.max[1],this.min[2]]:e.pnVertexFlag===256?[this.min[0],this.max[1],this.max[2]]:e.pnVertexFlag===17?[this.max[0],this.min[1],this.min[2]]:e.pnVertexFlag===16?[this.max[0],this.min[1],this.max[2]]:e.pnVertexFlag===1?[this.max[0],this.max[1],this.min[2]]:[this.max[0],this.max[1],this.max[2]]}},{key:"getPositiveFarPoint",value:function(e){return e.pnVertexFlag===273?$s([0,0,0],this.max):e.pnVertexFlag===272?[this.max[0],this.max[1],this.min[2]]:e.pnVertexFlag===257?[this.max[0],this.min[1],this.max[2]]:e.pnVertexFlag===256?[this.max[0],this.min[1],this.min[2]]:e.pnVertexFlag===17?[this.min[0],this.max[1],this.max[2]]:e.pnVertexFlag===16?[this.min[0],this.max[1],this.min[2]]:e.pnVertexFlag===1?[this.min[0],this.min[1],this.max[2]]:[this.min[0],this.min[1],this.min[2]]}}],[{key:"isEmpty",value:function(e){return!e||e.halfExtents[0]===0&&e.halfExtents[1]===0&&e.halfExtents[2]===0}}])}(),Y2=function(){function n(t,e){(0,C.Z)(this,n),this.distance=t||0,this.normal=e||zt(0,1,0),this.updatePNVertexFlag()}return(0,T.Z)(n,[{key:"updatePNVertexFlag",value:function(){this.pnVertexFlag=(+(this.normal[0]>=0)<<8)+(+(this.normal[1]>=0)<<4)+ +(this.normal[2]>=0)}},{key:"distanceToPoint",value:function(e){return Ze(e,this.normal)-this.distance}},{key:"normalize",value:function(){var e=1/Ar(this.normal);dt(this.normal,this.normal,e),this.distance*=e}},{key:"intersectsLine",value:function(e,r,i){var a=this.distanceToPoint(e),s=this.distanceToPoint(r),o=a/(a-s),l=o>=0&&o<=1;return l&&i&&Oe(i,e,r,o),l}}])}(),to=function(n){return n[n.OUTSIDE=4294967295]="OUTSIDE",n[n.INSIDE=0]="INSIDE",n[n.INDETERMINATE=2147483647]="INDETERMINATE",n}({}),H2=function(){function n(t){if((0,C.Z)(this,n),this.planes=[],t)this.planes=t;else for(var e=0;e<6;e++)this.planes.push(new Y2)}return(0,T.Z)(n,[{key:"extractFromVPMatrix",value:function(e){var r=(0,W.Z)(e,16),i=r[0],a=r[1],s=r[2],o=r[3],l=r[4],c=r[5],u=r[6],h=r[7],d=r[8],f=r[9],v=r[10],g=r[11],p=r[12],y=r[13],b=r[14],E=r[15];fe(this.planes[0].normal,o-i,h-l,g-d),this.planes[0].distance=E-p,fe(this.planes[1].normal,o+i,h+l,g+d),this.planes[1].distance=E+p,fe(this.planes[2].normal,o+a,h+c,g+f),this.planes[2].distance=E+y,fe(this.planes[3].normal,o-a,h-c,g-f),this.planes[3].distance=E-y,fe(this.planes[4].normal,o-s,h-u,g-v),this.planes[4].distance=E-b,fe(this.planes[5].normal,o+s,h+u,g+v),this.planes[5].distance=E+b,this.planes.forEach(function(O){O.normalize(),O.updatePNVertexFlag()})}}])}(),pr=function(){function n(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;(0,C.Z)(this,n),this.x=0,this.y=0,this.x=t,this.y=e}return(0,T.Z)(n,[{key:"clone",value:function(){return new n(this.x,this.y)}},{key:"copyFrom",value:function(e){this.x=e.x,this.y=e.y}}])}(),eo=function(){function n(t,e,r,i){(0,C.Z)(this,n),this.x=t,this.y=e,this.width=r,this.height=i,this.left=t,this.right=t+r,this.top=e,this.bottom=e+i}return(0,T.Z)(n,[{key:"toJSON",value:function(){}}],[{key:"fromRect",value:function(e){return new n(e.x,e.y,e.width,e.height)}},{key:"applyTransform",value:function(e,r){var i=mi(e.x,e.y,0,1),a=mi(e.x+e.width,e.y,0,1),s=mi(e.x,e.y+e.height,0,1),o=mi(e.x+e.width,e.y+e.height,0,1),l=Xn(),c=Xn(),u=Xn(),h=Xn();nt(l,i,r),nt(c,a,r),nt(u,s,r),nt(h,o,r);var d=Math.min(l[0],c[0],u[0],h[0]),f=Math.min(l[1],c[1],u[1],h[1]),v=Math.max(l[0],c[0],u[0],h[0]),g=Math.max(l[1],c[1],u[1],h[1]);return n.fromRect({x:d,y:f,width:v-d,height:g-f})}}])}(),sn="Method not implemented.",no="Use document.documentElement instead.",X2="Cannot append a destroyed element.";function ro(n){return n===void 0?0:n>360||n<-360?n%360:n}var Ld=xt();function Br(n){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;return Array.isArray(n)&&n.length===3?r?kt(n):Ht(Ld,n):re(n)?r?zt(n,t,e):fe(Ld,n,t,e):r?zt(n[0],n[1]||t,n[2]||e):fe(Ld,n[0],n[1]||t,n[2]||e)}var K2=Math.PI/180;function on(n){return n*K2}var Q2=180/Math.PI;function Yr(n){return n*Q2}var q2=.9;function t9(n){return n%=400,n<0&&(n+=400),n*q2}function e9(n){return n/360}function J2(n){return 360*n}var uc=Math.PI/2;function $2(n,t){var e=t[0],r=t[1],i=t[2],a=t[3],s=e*e,o=r*r,l=i*i,c=a*a,u=s+o+l+c,h=e*a-r*i;return h>.499995*u?(n[0]=uc,n[1]=2*Math.atan2(r,e),n[2]=0):h<-.499995*u?(n[0]=-uc,n[1]=2*Math.atan2(r,e),n[2]=0):(n[0]=Math.asin(2*(e*i-a*r)),n[1]=Math.atan2(2*(e*a+r*i),1-2*(l+c)),n[2]=Math.atan2(2*(e*r+i*a),1-2*(o+l))),n}function tS(n,t){var e,r,i=Na(xt(),t),a=(0,W.Z)(i,3),s=a[0],o=a[1],l=a[2],c=Math.asin(-t[2]/s);return c-uc?(e=Math.atan2(t[6]/o,t[10]/l),r=Math.atan2(t[1]/s,t[0]/s)):(r=0,e=-Math.atan2(t[4]/o,t[5]/o)):(r=0,e=Math.atan2(t[4]/o,t[5]/o)),n[0]=e,n[1]=c,n[2]=r,n}function _d(n,t){return t.length===16?tS(n,t):$2(n,t)}function eS(n,t,e,r,i){var a=Math.cos(n),s=Math.sin(n);return Sw(r*a,i*s,0,-r*s,i*a,0,t,e,1)}function nS(n,t,e,r,i,a,s){var o=arguments.length>7&&arguments[7]!==void 0?arguments[7]:!1,l=2*a,c=e-t,u=r-i,h=l/c,d=l/u,f=(e+t)/c,v=(r+i)/u,g,p,y=s-a,b=s*a;return o?(g=-s/y,p=-b/y):(g=-(s+a)/y,p=-2*b/y),n[0]=h,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=d,n[6]=0,n[7]=0,n[8]=f,n[9]=v,n[10]=g,n[11]=-1,n[12]=0,n[13]=0,n[14]=p,n[15]=0,n}function Hg(n){var t=n[0],e=n[1],r=n[3],i=n[4],a=Math.sqrt(t*t+e*e),s=Math.sqrt(r*r+i*i),o=t*i-e*r;if(o<0&&(tMe[1][2]&&(a[0]=-a[0]),Me[0][2]>Me[2][0]&&(a[1]=-a[1]),Me[1][0]>Me[0][1]&&(a[2]=-a[2]),!0}function iS(n,t){var e=t[15];if(e===0)return!1;for(var r=1/e,i=0;i<16;i++)n[i]=t[i]*r;return!0}function aS(n,t){n[0][0]=t[0],n[0][1]=t[1],n[0][2]=t[2],n[1][0]=t[4],n[1][1]=t[5],n[1][2]=t[6],n[2][0]=t[8],n[2][1]=t[9],n[2][2]=t[10]}function Dd(n,t,e,r,i){n[0]=t[0]*r+e[0]*i,n[1]=t[1]*r+e[1]*i,n[2]=t[2]*r+e[2]*i}var ln=function(n){return n[n.ORBITING=0]="ORBITING",n[n.EXPLORING=1]="EXPLORING",n[n.TRACKING=2]="TRACKING",n}({}),Id=function(n){return n[n.DEFAULT=0]="DEFAULT",n[n.ROTATIONAL=1]="ROTATIONAL",n[n.TRANSLATIONAL=2]="TRANSLATIONAL",n[n.CINEMATIC=3]="CINEMATIC",n}({}),bi=function(n){return n[n.ORTHOGRAPHIC=0]="ORTHOGRAPHIC",n[n.PERSPECTIVE=1]="PERSPECTIVE",n}({}),Kg={UPDATED:"updated"},Qg=2e-4,qg=function(){function n(){(0,C.Z)(this,n),this.clipSpaceNearZ=cc.NEGATIVE_ONE,this.eventEmitter=new X,this.matrix=oe(),this.right=zt(1,0,0),this.up=zt(0,1,0),this.forward=zt(0,0,1),this.position=zt(0,0,1),this.focalPoint=zt(0,0,0),this.distanceVector=zt(0,0,-1),this.distance=1,this.azimuth=0,this.elevation=0,this.roll=0,this.relAzimuth=0,this.relElevation=0,this.relRoll=0,this.dollyingStep=0,this.maxDistance=1/0,this.minDistance=-1/0,this.zoom=1,this.rotateWorld=!1,this.fov=30,this.near=.1,this.far=1e3,this.aspect=1,this.projectionMatrix=oe(),this.projectionMatrixInverse=oe(),this.jitteredProjectionMatrix=void 0,this.enableUpdate=!0,this.type=ln.EXPLORING,this.trackingMode=Id.DEFAULT,this.projectionMode=bi.PERSPECTIVE,this.frustum=new H2,this.orthoMatrix=oe()}return(0,T.Z)(n,[{key:"isOrtho",value:function(){return this.projectionMode===bi.ORTHOGRAPHIC}},{key:"getProjectionMode",value:function(){return this.projectionMode}},{key:"getPerspective",value:function(){return this.jitteredProjectionMatrix||this.projectionMatrix}},{key:"getPerspectiveInverse",value:function(){return this.projectionMatrixInverse}},{key:"getFrustum",value:function(){return this.frustum}},{key:"getPosition",value:function(){return this.position}},{key:"getFocalPoint",value:function(){return this.focalPoint}},{key:"getDollyingStep",value:function(){return this.dollyingStep}},{key:"getNear",value:function(){return this.near}},{key:"getFar",value:function(){return this.far}},{key:"getZoom",value:function(){return this.zoom}},{key:"getOrthoMatrix",value:function(){return this.orthoMatrix}},{key:"getView",value:function(){return this.view}},{key:"setEnableUpdate",value:function(e){this.enableUpdate=e}},{key:"setType",value:function(e,r){return this.type=e,this.type===ln.EXPLORING?this.setWorldRotation(!0):this.setWorldRotation(!1),this._getAngles(),this.type===ln.TRACKING&&r!==void 0&&this.setTrackingMode(r),this}},{key:"setProjectionMode",value:function(e){return this.projectionMode=e,this}},{key:"setTrackingMode",value:function(e){if(this.type!==ln.TRACKING)throw new Error("Impossible to set a tracking mode if the camera is not of tracking type");return this.trackingMode=e,this}},{key:"setWorldRotation",value:function(e){return this.rotateWorld=e,this._getAngles(),this}},{key:"getViewTransform",value:function(){return te(oe(),this.matrix)}},{key:"getWorldTransform",value:function(){return this.matrix}},{key:"jitterProjectionMatrix",value:function(e,r){var i=cr(oe(),[e,r,0]);this.jitteredProjectionMatrix=Pe(oe(),i,this.projectionMatrix)}},{key:"clearJitterProjectionMatrix",value:function(){this.jitteredProjectionMatrix=void 0}},{key:"setMatrix",value:function(e){return this.matrix=e,this._update(),this}},{key:"setProjectionMatrix",value:function(e){this.projectionMatrix=e}},{key:"setFov",value:function(e){return this.setPerspective(this.near,this.far,e,this.aspect),this}},{key:"setAspect",value:function(e){return this.setPerspective(this.near,this.far,this.fov,e),this}},{key:"setNear",value:function(e){return this.projectionMode===bi.PERSPECTIVE?this.setPerspective(e,this.far,this.fov,this.aspect):this.setOrthographic(this.left,this.rright,this.top,this.bottom,e,this.far),this}},{key:"setFar",value:function(e){return this.projectionMode===bi.PERSPECTIVE?this.setPerspective(this.near,e,this.fov,this.aspect):this.setOrthographic(this.left,this.rright,this.top,this.bottom,this.near,e),this}},{key:"setViewOffset",value:function(e,r,i,a,s,o){return this.aspect=e/r,this.view===void 0&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=r,this.view.offsetX=i,this.view.offsetY=a,this.view.width=s,this.view.height=o,this.projectionMode===bi.PERSPECTIVE?this.setPerspective(this.near,this.far,this.fov,this.aspect):this.setOrthographic(this.left,this.rright,this.top,this.bottom,this.near,this.far),this}},{key:"clearViewOffset",value:function(){return this.view!==void 0&&(this.view.enabled=!1),this.projectionMode===bi.PERSPECTIVE?this.setPerspective(this.near,this.far,this.fov,this.aspect):this.setOrthographic(this.left,this.rright,this.top,this.bottom,this.near,this.far),this}},{key:"setZoom",value:function(e){return this.zoom=e,this.projectionMode===bi.ORTHOGRAPHIC?this.setOrthographic(this.left,this.rright,this.top,this.bottom,this.near,this.far):this.projectionMode===bi.PERSPECTIVE&&this.setPerspective(this.near,this.far,this.fov,this.aspect),this}},{key:"setZoomByViewportPoint",value:function(e,r){var i=this.canvas.viewport2Canvas({x:r[0],y:r[1]}),a=i.x,s=i.y,o=this.roll;this.rotate(0,0,-o),this.setPosition(a,s),this.setFocalPoint(a,s),this.setZoom(e),this.rotate(0,0,o);var l=this.canvas.viewport2Canvas({x:r[0],y:r[1]}),c=l.x,u=l.y,h=zt(c-a,u-s,0),d=Ze(h,this.right)/Wt(this.right),f=Ze(h,this.up)/Wt(this.up),v=this.getPosition(),g=(0,W.Z)(v,2),p=g[0],y=g[1],b=this.getFocalPoint(),E=(0,W.Z)(b,2),O=E[0],k=E[1];return this.setPosition(p-d,y-f),this.setFocalPoint(O-d,k-f),this}},{key:"setPerspective",value:function(e,r,i,a){var s;this.projectionMode=bi.PERSPECTIVE,this.fov=i,this.near=e,this.far=r,this.aspect=a;var o=this.near*Math.tan(on(.5*this.fov))/this.zoom,l=2*o,c=this.aspect*l,u=-.5*c;if((s=this.view)!==null&&s!==void 0&&s.enabled){var h=this.view.fullWidth,d=this.view.fullHeight;u+=this.view.offsetX*c/h,o-=this.view.offsetY*l/d,c*=this.view.width/h,l*=this.view.height/d}return nS(this.projectionMatrix,u,u+c,o-l,o,e,this.far,this.clipSpaceNearZ===cc.ZERO),te(this.projectionMatrixInverse,this.projectionMatrix),this.triggerUpdate(),this}},{key:"setOrthographic",value:function(e,r,i,a,s,o){var l;this.projectionMode=bi.ORTHOGRAPHIC,this.rright=r,this.left=e,this.top=i,this.bottom=a,this.near=s,this.far=o;var c=(this.rright-this.left)/(2*this.zoom),u=(this.top-this.bottom)/(2*this.zoom),h=(this.rright+this.left)/2,d=(this.top+this.bottom)/2,f=h-c,v=h+c,g=d+u,p=d-u;if((l=this.view)!==null&&l!==void 0&&l.enabled){var y=(this.rright-this.left)/this.view.fullWidth/this.zoom,b=(this.top-this.bottom)/this.view.fullHeight/this.zoom;f+=y*this.view.offsetX,v=f+y*this.view.width,g-=b*this.view.offsetY,p=g-b*this.view.height}return this.clipSpaceNearZ===cc.NEGATIVE_ONE?sg(this.projectionMatrix,f,v,g,p,s,o):og(this.projectionMatrix,f,v,g,p,s,o),te(this.projectionMatrixInverse,this.projectionMatrix),this._getOrthoMatrix(),this.triggerUpdate(),this}},{key:"setPosition",value:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.position[1],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.position[2],a=Br(e,r,i);return this._setPosition(a),this.setFocalPoint(this.focalPoint),this.triggerUpdate(),this}},{key:"setFocalPoint",value:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.focalPoint[1],i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.focalPoint[2],a=zt(0,1,0);if(this.focalPoint=Br(e,r,i),this.trackingMode===Id.CINEMATIC){var s=He(xt(),this.focalPoint,this.position);e=s[0],r=s[1],i=s[2];var o=Wt(s),l=Yr(Math.asin(r/o)),c=90+Yr(Math.atan2(i,e)),u=oe();Ln(u,u,on(c)),Zr(u,u,on(l)),a=wn(xt(),[0,1,0],u)}return te(this.matrix,lg(oe(),this.position,this.focalPoint,a)),this._getAxes(),this._getDistance(),this._getAngles(),this.triggerUpdate(),this}},{key:"getDistance",value:function(){return this.distance}},{key:"getDistanceVector",value:function(){return this.distanceVector}},{key:"setDistance",value:function(e){if(this.distance===e||e<0)return this;this.distance=e,this.distance>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):e===8?vc(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):e===4?vc(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=hS.exec(n))?new Hr(t[1],t[2],t[3],1):(t=dS.exec(n))?new Hr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=fS.exec(n))?vc(t[1],t[2],t[3],t[4]):(t=vS.exec(n))?vc(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=gS.exec(n))?op(t[1],t[2]/100,t[3]/100,1):(t=pS.exec(n))?op(t[1],t[2]/100,t[3]/100,t[4]):ep.hasOwnProperty(n)?ip(ep[n]):n==="transparent"?new Hr(NaN,NaN,NaN,0):null}function ip(n){return new Hr(n>>16&255,n>>8&255,n&255,1)}function vc(n,t,e,r){return r<=0&&(n=t=e=NaN),new Hr(n,t,e,r)}function bS(n){return n instanceof Ko||(n=fc(n)),n?(n=n.rgb(),new Hr(n.r,n.g,n.b,n.opacity)):new Hr}function xS(n,t,e,r){return arguments.length===1?bS(n):new Hr(n,t,e,r==null?1:r)}function Hr(n,t,e,r){this.r=+n,this.g=+t,this.b=+e,this.opacity=+r}Bd(Hr,xS,tp(Ko,{brighter(n){return n=n==null?dc:Math.pow(dc,n),new Hr(this.r*n,this.g*n,this.b*n,this.opacity)},darker(n){return n=n==null?Qo:Math.pow(Qo,n),new Hr(this.r*n,this.g*n,this.b*n,this.opacity)},rgb(){return this},clamp(){return new Hr(ds(this.r),ds(this.g),ds(this.b),gc(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:ap,formatHex:ap,formatHex8:ES,formatRgb:sp,toString:sp}));function ap(){return`#${fs(this.r)}${fs(this.g)}${fs(this.b)}`}function ES(){return`#${fs(this.r)}${fs(this.g)}${fs(this.b)}${fs((isNaN(this.opacity)?1:this.opacity)*255)}`}function sp(){const n=gc(this.opacity);return`${n===1?"rgb(":"rgba("}${ds(this.r)}, ${ds(this.g)}, ${ds(this.b)}${n===1?")":`, ${n})`}`}function gc(n){return isNaN(n)?1:Math.max(0,Math.min(1,n))}function ds(n){return Math.max(0,Math.min(255,Math.round(n)||0))}function fs(n){return n=ds(n),(n<16?"0":"")+n.toString(16)}function op(n,t,e,r){return r<=0?n=t=e=NaN:e<=0||e>=1?n=t=NaN:t<=0&&(n=NaN),new Ri(n,t,e,r)}function lp(n){if(n instanceof Ri)return new Ri(n.h,n.s,n.l,n.opacity);if(n instanceof Ko||(n=fc(n)),!n)return new Ri;if(n instanceof Ri)return n;n=n.rgb();var t=n.r/255,e=n.g/255,r=n.b/255,i=Math.min(t,e,r),a=Math.max(t,e,r),s=NaN,o=a-i,l=(a+i)/2;return o?(t===a?s=(e-r)/o+(e0&&l<1?0:s,new Ri(s,o,l,n.opacity)}function wS(n,t,e,r){return arguments.length===1?lp(n):new Ri(n,t,e,r==null?1:r)}function Ri(n,t,e,r){this.h=+n,this.s=+t,this.l=+e,this.opacity=+r}Bd(Ri,wS,tp(Ko,{brighter(n){return n=n==null?dc:Math.pow(dc,n),new Ri(this.h,this.s,this.l*n,this.opacity)},darker(n){return n=n==null?Qo:Math.pow(Qo,n),new Ri(this.h,this.s,this.l*n,this.opacity)},rgb(){var n=this.h%360+(this.h<0)*360,t=isNaN(n)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*t,i=2*e-r;return new Hr(Fd(n>=240?n-240:n+120,i,r),Fd(n,i,r),Fd(n<120?n+240:n-120,i,r),this.opacity)},clamp(){return new Ri(cp(this.h),pc(this.s),pc(this.l),gc(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const n=gc(this.opacity);return`${n===1?"hsl(":"hsla("}${cp(this.h)}, ${pc(this.s)*100}%, ${pc(this.l)*100}%${n===1?")":`, ${n})`}`}}));function cp(n){return n=(n||0)%360,n<0?n+360:n}function pc(n){return Math.max(0,Math.min(1,n||0))}function Fd(n,t,e){return(n<60?t+(e-t)*n/60:n<180?e:n<240?t+(e-t)*(240-n)/60:t)*255}function zn(n,t){if(typeof n!="function"||t!=null&&typeof t!="function")throw new TypeError("Expected a function");var e=function(){for(var i=arguments.length,a=new Array(i),s=0;s=ao.kUnitType&&this.getType()<=ao.kClampType}}],[{key:"isAngle",value:function(e){return e===$t.kDegrees||e===$t.kRadians||e===$t.kGradians||e===$t.kTurns}},{key:"isLength",value:function(e){return e>=$t.kEms&&e<$t.kDegrees}},{key:"isRelativeUnit",value:function(e){return e===$t.kPercentage||e===$t.kEms||e===$t.kRems}},{key:"isTime",value:function(e){return e===$t.kSeconds||e===$t.kMilliseconds}}])}(),kS=function(n){function t(e){var r;return(0,C.Z)(this,t),r=I(this,t),r.colorSpace=e,r}return(0,L.Z)(t,n),(0,T.Z)(t,[{key:"getType",value:function(){return ao.kColorType}},{key:"to",value:function(r){return this}}])}(mc),Da=function(n){return n[n.Constant=0]="Constant",n[n.LinearGradient=1]="LinearGradient",n[n.RadialGradient=2]="RadialGradient",n}({}),yc=function(n){function t(e,r){var i;return(0,C.Z)(this,t),i=I(this,t),i.type=e,i.value=r,i}return(0,L.Z)(t,n),(0,T.Z)(t,[{key:"clone",value:function(){return new t(this.type,this.value)}},{key:"buildCSSText",value:function(r,i,a){return a}},{key:"getType",value:function(){return ao.kColorType}}])}(mc),xi=function(n){function t(e){var r;return(0,C.Z)(this,t),r=I(this,t),r.value=e,r}return(0,L.Z)(t,n),(0,T.Z)(t,[{key:"clone",value:function(){return new t(this.value)}},{key:"getType",value:function(){return ao.kKeywordType}},{key:"buildCSSText",value:function(r,i,a){return a+this.value}}])}(mc),PS=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",r="";return Number.isFinite(t)?r="NaN":t>0?r="infinity":r="-infinity",r+=e},jd=function(t){return NS(CS(t))},cn=function(n){function t(e){var r,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:$t.kNumber;(0,C.Z)(this,t),r=I(this,t);var a;return typeof i=="string"?a=OS(i):a=i,r.unit=a,r.value=e,r}return(0,L.Z)(t,n),(0,T.Z)(t,[{key:"clone",value:function(){return new t(this.value,this.unit)}},{key:"equals",value:function(r){var i=r;return this.value===i.value&&this.unit===i.unit}},{key:"getType",value:function(){return ao.kUnitType}},{key:"convertTo",value:function(r){if(this.unit===r)return new t(this.value,this.unit);var i=jd(this.unit);if(i!==jd(r)||i===$t.kUnknown)return null;var a=up(this.unit)/up(r);return new t(this.value*a,r)}},{key:"buildCSSText",value:function(r,i,a){var s;switch(this.unit){case $t.kUnknown:break;case $t.kInteger:s=Number(this.value).toFixed(0);break;case $t.kNumber:case $t.kPercentage:case $t.kEms:case $t.kRems:case $t.kPixels:case $t.kDegrees:case $t.kRadians:case $t.kGradians:case $t.kMilliseconds:case $t.kSeconds:case $t.kTurns:{var o=-999999,l=999999,c=this.value,u=zd(this.unit);if(cl){var h=zd(this.unit);!Number.isFinite(c)||Number.isNaN(c)?s=PS(c,h):s=c+(h||"")}else s="".concat(c).concat(u)}}return a+=s,a}}])}(mc),_i=new cn(0,"px");new cn(1,"px");var vs=new cn(0,"deg"),Wd=function(n){function t(e,r,i){var a,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:1,o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;return(0,C.Z)(this,t),a=I(this,t,["rgb"]),a.r=e,a.g=r,a.b=i,a.alpha=s,a.isNone=o,a}return(0,L.Z)(t,n),(0,T.Z)(t,[{key:"clone",value:function(){return new t(this.r,this.g,this.b,this.alpha)}},{key:"buildCSSText",value:function(r,i,a){return"".concat(a,"rgba(").concat(this.r,",").concat(this.g,",").concat(this.b,",").concat(this.alpha,")")}}])}(kS),hp=new xi("unset"),RS=new xi("initial"),LS=new xi("inherit"),Gd={"":hp,unset:hp,initial:RS,inherit:LS},_S=function(t){return Gd[t]||(Gd[t]=new xi(t)),Gd[t]},dp=new Wd(0,0,0,0,!0),fp=new Wd(0,0,0,0),DS=zn(function(n,t,e,r){return new Wd(n,t,e,r)},function(n,t,e,r){return"rgba(".concat(n,",").concat(t,",").concat(e,",").concat(r,")")}),Sn=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:$t.kNumber;return new cn(t,e)};new cn(50,"%");function IS(n){var t=n.type,e=n.value;return t==="hex"?"#".concat(e):t==="literal"?e:t==="rgb"?"rgb(".concat(e.join(","),")"):"rgba(".concat(e.join(","),")")}var BS=function(){var n={linearGradient:/^(linear\-gradient)/i,repeatingLinearGradient:/^(repeating\-linear\-gradient)/i,radialGradient:/^(radial\-gradient)/i,repeatingRadialGradient:/^(repeating\-radial\-gradient)/i,conicGradient:/^(conic\-gradient)/i,sideOrCorner:/^to (left (top|bottom)|right (top|bottom)|top (left|right)|bottom (left|right)|left|right|top|bottom)/i,extentKeywords:/^(closest\-side|closest\-corner|farthest\-side|farthest\-corner|contain|cover)/,positionKeywords:/^(left|center|right|top|bottom)/i,pixelValue:/^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))px/,percentageValue:/^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))\%/,emValue:/^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))em/,angleValue:/^(-?(([0-9]*\.[0-9]+)|([0-9]+\.?)))deg/,startCall:/^\(/,endCall:/^\)/,comma:/^,/,hexColor:/^\#([0-9a-fA-F]+)/,literalColor:/^([a-zA-Z]+)/,rgbColor:/^rgb/i,rgbaColor:/^rgba/i,number:/^(([0-9]*\.[0-9]+)|([0-9]+\.?))/},t="";function e(Ct){throw new Error("".concat(t,": ").concat(Ct))}function r(){var Ct=i();return t.length>0&&e("Invalid input not EOF"),Ct}function i(){return E(a)}function a(){return s("linear-gradient",n.linearGradient,l)||s("repeating-linear-gradient",n.repeatingLinearGradient,l)||s("radial-gradient",n.radialGradient,h)||s("repeating-radial-gradient",n.repeatingRadialGradient,h)||s("conic-gradient",n.conicGradient,h)}function s(Ct,gt,pt){return o(gt,function(Pt){var jt=pt();return jt&&(ft(n.comma)||e("Missing comma before color stops")),{type:Ct,orientation:jt,colorStops:E(O)}})}function o(Ct,gt){var pt=ft(Ct);if(pt){ft(n.startCall)||e("Missing (");var Pt=gt(pt);return ft(n.endCall)||e("Missing )"),Pt}}function l(){return c()||u()}function c(){return ct("directional",n.sideOrCorner,1)}function u(){return ct("angular",n.angleValue,1)}function h(){var Ct,gt=d(),pt;return gt&&(Ct=[],Ct.push(gt),pt=t,ft(n.comma)&&(gt=d(),gt?Ct.push(gt):t=pt)),Ct}function d(){var Ct=f()||v();if(Ct)Ct.at=p();else{var gt=g();if(gt){Ct=gt;var pt=p();pt&&(Ct.at=pt)}else{var Pt=y();Pt&&(Ct={type:"default-radial",at:Pt})}}return Ct}function f(){var Ct=ct("shape",/^(circle)/i,0);return Ct&&(Ct.style=st()||g()),Ct}function v(){var Ct=ct("shape",/^(ellipse)/i,0);return Ct&&(Ct.style=J()||g()),Ct}function g(){return ct("extent-keyword",n.extentKeywords,1)}function p(){if(ct("position",/^at/,0)){var Ct=y();return Ct||e("Missing positioning value"),Ct}}function y(){var Ct=b();if(Ct.x||Ct.y)return{type:"position",value:Ct}}function b(){return{x:J(),y:J()}}function E(Ct){var gt=Ct(),pt=[];if(gt)for(pt.push(gt);ft(n.comma);)gt=Ct(),gt?pt.push(gt):e("One extra comma");return pt}function O(){var Ct=k();return Ct||e("Expected color definition"),Ct.length=J(),Ct}function k(){return z()||V()||B()||R()}function R(){return ct("literal",n.literalColor,0)}function z(){return ct("hex",n.hexColor,1)}function B(){return o(n.rgbColor,function(){return{type:"rgb",value:E(U)}})}function V(){return o(n.rgbaColor,function(){return{type:"rgba",value:E(U)}})}function U(){return ft(n.number)[1]}function J(){return ct("%",n.percentageValue,1)||$()||st()}function $(){return ct("position-keyword",n.positionKeywords,1)}function st(){return ct("px",n.pixelValue,1)||ct("em",n.emValue,1)}function ct(Ct,gt,pt){var Pt=ft(gt);if(Pt)return{type:Ct,value:Pt[pt]}}function ft(Ct){var gt=/^[\n\r\t\s]+/.exec(t);gt&&Nt(gt[0].length);var pt=Ct.exec(t);return pt&&Nt(pt[0].length),pt}function Nt(Ct){t=t.substring(Ct)}return function(Ct){return t=Ct,r()}}();function FS(n,t,e,r){var i=on(r.value),a=0,s=0,o=a+t/2,l=s+e/2,c=Math.abs(t*Math.cos(i))+Math.abs(e*Math.sin(i)),u=n[0]+o-Math.cos(i)*c/2,h=n[1]+l-Math.sin(i)*c/2,d=n[0]+o+Math.cos(i)*c/2,f=n[1]+l+Math.sin(i)*c/2;return{x1:u,y1:h,x2:d,y2:f}}function zS(n,t,e,r,i,a){var s=r.value,o=i.value;r.unit===$t.kPercentage&&(s=r.value/100*t),i.unit===$t.kPercentage&&(o=i.value/100*e);var l=Math.max(Vr([0,0],[s,o]),Vr([0,e],[s,o]),Vr([t,e],[s,o]),Vr([t,0],[s,o]));return a&&(a instanceof cn?l=a.value:a instanceof xi&&(a.value==="closest-side"?l=Math.min(s,t-s,o,e-o):a.value==="farthest-side"?l=Math.max(s,t-s,o,e-o):a.value==="closest-corner"&&(l=Math.min(Vr([0,0],[s,o]),Vr([0,e],[s,o]),Vr([t,e],[s,o]),Vr([t,0],[s,o]))))),{x:s+n[0],y:o+n[1],r:l}}var jS=/^l\s*\(\s*([\d.]+)\s*\)\s*(.*)/i,WS=/^r\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)\s*(.*)/i,GS=/^p\s*\(\s*([axyn])\s*\)\s*(.*)/i,vp=/[\d.]+:(#[^\s]+|[^\)]+\))/gi;function ZS(n){var t,e=n.length;if(n[e-1].length=(t=n[e-1].length)!==null&&t!==void 0?t:{type:"%",value:"100"},e>1){var r;n[0].length=(r=n[0].length)!==null&&r!==void 0?r:{type:"%",value:"0"}}for(var i=0,a=Number(n[0].length.value),s=1;s-1||n.indexOf("radial")>-1){var t=BS(n);return t.map(function(o){var l=o.type,c=o.orientation,u=o.colorStops;ZS(u);var h=u.map(function(E){return{offset:Sn(Number(E.length.value),"%"),color:IS(E)}});if(l==="linear-gradient")return new yc(Da.LinearGradient,{angle:c?US(c):vs,steps:h});if(l==="radial-gradient"&&(c||(c=[{type:"shape",value:"circle"}]),c[0].type==="shape"&&c[0].value==="circle")){var d=YS(c[0].at),f=d.cx,v=d.cy,g;if(c[0].style){var p=c[0].style,y=p.type,b=p.value;y==="extent-keyword"?g=_S(b):g=Sn(b,y)}return new yc(Da.RadialGradient,{cx:f,cy:v,size:g,steps:h})}})}var e=n[0];if(n[1]==="("||n[2]==="("){if(e==="l"){var r=jS.exec(n);if(r){var i,a=((i=r[2].match(vp))===null||i===void 0?void 0:i.map(function(o){return o.split(":")}))||[];return[new yc(Da.LinearGradient,{angle:Sn(parseFloat(r[1]),"deg"),steps:a.map(function(o){var l=(0,W.Z)(o,2),c=l[0],u=l[1];return{offset:Sn(Number(c)*100,"%"),color:u}})})]}}else if(e==="r"){var s=XS(n);if(s)if(Ve(s))n=s;else return[new yc(Da.RadialGradient,s)]}else if(e==="p")return KS(n)}});function XS(n){var t=WS.exec(n);if(t){var e,r=((e=t[4].match(vp))===null||e===void 0?void 0:e.map(function(i){return i.split(":")}))||[];return{cx:Sn(50,"%"),cy:Sn(50,"%"),steps:r.map(function(i){var a=(0,W.Z)(i,2),s=a[0],o=a[1];return{offset:Sn(Number(s)*100,"%"),color:o}})}}return null}function KS(n){var t=GS.exec(n);if(t){var e=t[1],r=t[2];switch(e){case"a":e="repeat";break;case"x":e="repeat-x";break;case"y":e="repeat-y";break;case"n":e="no-repeat";break;default:e="no-repeat"}return{image:r,repetition:e}}return null}function n9(n){return!!n.type&&!!n.value}function gs(n){return n&&!!n.image}function bc(n){return n&&!be(n.r)&&!be(n.g)&&!be(n.b)}var Jo=zn(function(n){if(gs(n))return(0,F.Z)({repetition:"repeat"},n);if(be(n)&&(n=""),n==="transparent")return fp;if(n==="currentColor")n="black";else if(n==="none")return dp;var t=HS(n);if(t)return t;var e=fc(n),r=[0,0,0,0];return e!==null&&(r[0]=e.r||0,r[1]=e.g||0,r[2]=e.b||0,r[3]=e.opacity),DS.apply(void 0,r)});function QS(n,t){if(!(!bc(n)||!bc(t)))return[[Number(n.r),Number(n.g),Number(n.b),Number(n.alpha)],[Number(t.r),Number(t.g),Number(t.b),Number(t.alpha)],function(e){var r=e.slice();if(r[3])for(var i=0;i<3;i++)r[i]=Math.round(Nn(r[i],0,255));return r[3]=Nn(r[3],0,1),"rgba(".concat(r.join(","),")")}]}function $o(n,t){if(be(t))return Sn(0,"px");if(t="".concat(t).trim().toLowerCase(),isFinite(Number(t))){if("px".search(n)>=0)return Sn(Number(t),"px");if("deg".search(n)>=0)return Sn(Number(t),"deg")}var e=[];t=t.replace(n,function(i){return e.push(i),"U".concat(i)});var r="U(".concat(n.source,")");return e.map(function(i){return Sn(Number(t.replace(new RegExp("U".concat(i),"g"),"").replace(new RegExp(r,"g"),"*0")),i)})[0]}var gp=function(t){return $o(new RegExp("px","g"),t)},qS=zn(gp),JS=function(t){return $o(new RegExp("%","g"),t)};zn(JS);var pp=function(t){return re(t)||isFinite(Number(t))?Sn(Number(t)||0,"px"):$o(new RegExp("px|%|em|rem","g"),t)},Zd=zn(pp),mp=function(t){return $o(new RegExp("deg|rad|grad|turn","g"),t)},$S=zn(mp);function tM(n,t,e,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,a="",s=n.value||0,o=t.value||0,l=jd(n.unit),c=n.convertTo(l),u=t.convertTo(l);return c&&u?(s=c.value,o=u.value,a=zd(n.unit)):(cn.isLength(n.unit)||cn.isLength(t.unit))&&(s=ri(n,i,e),o=ri(t,i,e),a="px"),[s,o,function(h){return r&&(h=Math.max(h,0)),h+a}]}function Xr(n){var t=0;return n.unit===$t.kDegrees?t=n.value:n.unit===$t.kRadians?t=Yr(Number(n.value)):n.unit===$t.kTurns?t=J2(Number(n.value)):n.value&&(t=n.value),t}function yp(n,t){var e;return Array.isArray(n)?e=n.map(function(r){return Number(r)}):Ve(n)?e=n.split(" ").map(function(r){return Number(r)}):re(n)&&(e=[n]),t===2?e.length===1?[e[0],e[0]]:[e[0],e[1]]:t===4?e.length===1?[e[0],e[0],e[0],e[0]]:e.length===2?[e[0],e[1],e[0],e[1]]:e.length===3?[e[0],e[1],e[2],e[1]]:[e[0],e[1],e[2],e[3]]:t==="even"&&e.length%2===1?[].concat((0,N.Z)(e),(0,N.Z)(e)):e}function ri(n,t,e){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(n.unit===$t.kPixels)return Number(n.value);if(n.unit===$t.kPercentage&&e){var i=e.nodeName===Dt.GROUP?e.getLocalBounds():e.getGeometryBounds();return(r?i.min[t]:0)+n.value/100*i.halfExtents[t]*2}return 0}var eM=function(t){return $o(/deg|rad|grad|turn|px|%/g,t)},nM=["blur","brightness","drop-shadow","contrast","grayscale","sepia","saturate","hue-rotate","invert"];function rM(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";if(n=n.toLowerCase().trim(),n==="none")return[];for(var t=/\s*([\w-]+)\(([^)]*)\)/g,e=[],r,i=0;r=t.exec(n);){if(r.index!==i)return[];if(i=r.index+r[0].length,nM.indexOf(r[1])>-1&&e.push({name:r[1],params:r[2].split(" ").map(function(a){return eM(a)||Jo(a)})}),t.lastIndex===n.length)return e}return[]}function bp(n){return n.toString()}var xp=function(t){return typeof t=="number"?Sn(t):/^\s*[-+]?(\d*\.)?\d+\s*$/.test(t)?Sn(Number(t)):Sn(0)},Vd=zn(xp);zn(function(n){return Ve(n)?n.split(" ").map(Vd):n.map(Vd)});function Ud(n,t){return[n,t,bp]}function Yd(n,t){return function(e,r){return[e,r,function(i){return bp(Nn(i,n,t))}]}}function Ep(n,t){if(n.length===t.length)return[n,t,function(e){return e}]}function Hd(n){return n.parsedStyle.d.totalLength===0&&(n.parsedStyle.d.totalLength=Jw(n.parsedStyle.d.absolutePath)),n.parsedStyle.d.totalLength}function iM(n){return n.parsedStyle.points.totalLength===0&&(n.parsedStyle.points.totalLength=D2(n.parsedStyle.points.points)),n.parsedStyle.points.totalLength}function aM(n){for(var t=0;t0&&e.push(r),{polygons:t,polylines:e}}function xc(n,t){return n[0]===t[0]&&n[1]===t[1]}function lM(n,t){for(var e=[],r=[],i=[],a=0;aMath.PI/2?Math.PI-c:c,u=u>Math.PI/2?Math.PI-u:u;var h={xExtra:Math.cos(l/2-c)*(t/2*(1/Math.sin(l/2)))-t/2||0,yExtra:Math.cos(u-l/2)*(t/2*(1/Math.sin(l/2)))-t/2||0};return h}function wp(n,t){return[t[0]+(t[0]-n[0]),t[1]+(t[1]-n[1])]}var Sp=function(t,e){var r=t.x*e.x+t.y*e.y,i=Math.sqrt((Math.pow(t.x,2)+Math.pow(t.y,2))*(Math.pow(e.x,2)+Math.pow(e.y,2))),a=t.x*e.y-t.y*e.x<0?-1:1,s=a*Math.acos(r/i);return s},Mp=function(t,e,r,i,a,s,o,l){e=Math.abs(e),r=Math.abs(r),i=wg(i,360);var c=on(i);if(t.x===o.x&&t.y===o.y)return{x:t.x,y:t.y,ellipticalArcAngle:0};if(e===0||r===0)return{x:0,y:0,ellipticalArcAngle:0};var u=(t.x-o.x)/2,h=(t.y-o.y)/2,d={x:Math.cos(c)*u+Math.sin(c)*h,y:-Math.sin(c)*u+Math.cos(c)*h},f=Math.pow(d.x,2)/Math.pow(e,2)+Math.pow(d.y,2)/Math.pow(r,2);f>1&&(e*=Math.sqrt(f),r*=Math.sqrt(f));var v=Math.pow(e,2)*Math.pow(r,2)-Math.pow(e,2)*Math.pow(d.y,2)-Math.pow(r,2)*Math.pow(d.x,2),g=Math.pow(e,2)*Math.pow(d.y,2)+Math.pow(r,2)*Math.pow(d.x,2),p=v/g;p=p<0?0:p;var y=(a!==s?1:-1)*Math.sqrt(p),b={x:y*(e*d.y/r),y:y*(-(r*d.x)/e)},E={x:Math.cos(c)*b.x-Math.sin(c)*b.y+(t.x+o.x)/2,y:Math.sin(c)*b.x+Math.cos(c)*b.y+(t.y+o.y)/2},O={x:(d.x-b.x)/e,y:(d.y-b.y)/r},k=Sp({x:1,y:0},O),R={x:(-d.x-b.x)/e,y:(-d.y-b.y)/r},z=Sp(O,R);!s&&z>0?z-=2*Math.PI:s&&z<0&&(z+=2*Math.PI),z%=2*Math.PI;var B=k+z*l,V=e*Math.cos(B),U=r*Math.sin(B),J={x:Math.cos(c)*V-Math.sin(c)*U+E.x,y:Math.sin(c)*V+Math.cos(c)*U+E.y,ellipticalArcStartAngle:k,ellipticalArcEndAngle:k+z,ellipticalArcAngle:B,ellipticalArcCenter:E,resultantRx:e,resultantRy:r};return J};function cM(n){for(var t=[],e=null,r=null,i=null,a=0,s=n.length,o=0;o2&&arguments[2]!==void 0?arguments[2]:!0,r=n.arcParams,i=r.rx,a=i===void 0?0:i,s=r.ry,o=s===void 0?0:s,l=r.xRotation,c=r.arcFlag,u=r.sweepFlag,h=Mp({x:n.prePoint[0],y:n.prePoint[1]},a,o,l,!!c,!!u,{x:n.currentPoint[0],y:n.currentPoint[1]},t),d=Mp({x:n.prePoint[0],y:n.prePoint[1]},a,o,l,!!c,!!u,{x:n.currentPoint[0],y:n.currentPoint[1]},e?t+.005:t-.005),f=d.x-h.x,v=d.y-h.y,g=Math.sqrt(f*f+v*v);return{x:-f/g,y:-v/g}}function wc(n){return Math.sqrt(n[0]*n[0]+n[1]*n[1])}function Xd(n,t){return wc(n)*wc(t)?(n[0]*t[0]+n[1]*t[1])/(wc(n)*wc(t)):1}function Tp(n,t){return(n[0]*t[1]1&&(e*=Math.sqrt(f),r*=Math.sqrt(f));var v=e*e*(d*d)+r*r*(h*h),g=v?Math.sqrt((e*e*(r*r)-v)/v):1;a===s&&(g*=-1),isNaN(g)&&(g=0);var p=r?g*e*d/r:0,y=e?g*-r*h/e:0,b=(o+c)/2+Math.cos(i)*p-Math.sin(i)*y,E=(l+u)/2+Math.sin(i)*p+Math.cos(i)*y,O=[(h-p)/e,(d-y)/r],k=[(-1*h-p)/e,(-1*d-y)/r],R=Tp([1,0],O),z=Tp(O,k);return Xd(O,k)<=-1&&(z=Math.PI),Xd(O,k)>=1&&(z=0),s===0&&z>0&&(z-=2*Math.PI),s===1&&z<0&&(z+=2*Math.PI),{cx:b,cy:E,rx:xc(n,[c,u])?0:e,ry:xc(n,[c,u])?0:r,startAngle:R,endAngle:R+z,xRotation:i,arcFlag:a,sweepFlag:s}}function hM(n,t,e){return n.reduce(function(r,i){var a="";if(i[0]==="M"||i[0]==="L"){var s=vec3.fromValues(i[1],i[2],0);e&&vec3.transformMat4(s,s,e),a="".concat(i[0]).concat(s[0],",").concat(s[1])}else if(i[0]==="Z")a=i[0];else if(i[0]==="C"){var o=vec3.fromValues(i[1],i[2],0),l=vec3.fromValues(i[3],i[4],0),c=vec3.fromValues(i[5],i[6],0);e&&(vec3.transformMat4(o,o,e),vec3.transformMat4(l,l,e),vec3.transformMat4(c,c,e)),a="".concat(i[0]).concat(o[0],",").concat(o[1],",").concat(l[0],",").concat(l[1],",").concat(c[0],",").concat(c[1])}else if(i[0]==="A"){var u=vec3.fromValues(i[6],i[7],0);e&&vec3.transformMat4(u,u,e),a="".concat(i[0]).concat(i[1],",").concat(i[2],",").concat(i[3],",").concat(i[4],",").concat(i[5],",").concat(u[0],",").concat(u[1])}else if(i[0]==="Q"){var h=vec3.fromValues(i[1],i[2],0),d=vec3.fromValues(i[3],i[4],0);e&&(vec3.transformMat4(h,h,e),vec3.transformMat4(d,d,e)),a="".concat(i[0]).concat(i[1],",").concat(i[2],",").concat(i[3],",").concat(i[4],"}")}return r+=a},"")}function dM(n,t,e,r){return[["M",n,t],["L",e,r]]}function Op(n,t,e,r){var i=(-1+Math.sqrt(2))/3*4,a=n*i,s=t*i,o=e-n,l=e+n,c=r-t,u=r+t;return[["M",o,r],["C",o,r-s,e-a,c,e,c],["C",e+a,c,l,r-s,l,r],["C",l,r+s,e+a,u,e,u],["C",e-a,u,o,r+s,o,r],["Z"]]}function fM(n,t){var e=n.map(function(r,i){return[i===0?"M":"L",r[0],r[1]]});return t&&e.push(["Z"]),e}function vM(n,t,e,r,i){if(i){var a=_slicedToArray(i,4),s=a[0],o=a[1],l=a[2],c=a[3],u=n>0?1:-1,h=t>0?1:-1,d=u+h!==0?1:0;return[["M",u*s+e,r],["L",n-u*o+e,r],o?["A",o,o,0,0,d,n+e,h*o+r]:null,["L",n+e,t-h*l+r],l?["A",l,l,0,0,d,n+e-u*l,t+r]:null,["L",e+u*c,t+r],c?["A",c,c,0,0,d,e,t+r-h*c]:null,["L",e,h*s+r],s?["A",s,s,0,0,d,u*s+e,r]:null,["Z"]].filter(function(f){return f})}return[["M",e,r],["L",e+n,r],["L",e+n,r+t],["L",e,r+t],["Z"]]}function r9(n){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:n.getLocalTransform(),e=[];switch(n.nodeName){case Dt.LINE:var r=n.parsedStyle,i=r.x1,a=i===void 0?0:i,s=r.y1,o=s===void 0?0:s,l=r.x2,c=l===void 0?0:l,u=r.y2,h=u===void 0?0:u;e=dM(a,o,c,h);break;case Dt.CIRCLE:{var d=n.parsedStyle,f=d.r,v=f===void 0?0:f,g=d.cx,p=g===void 0?0:g,y=d.cy,b=y===void 0?0:y;e=Op(v,v,p,b);break}case Dt.ELLIPSE:{var E=n.parsedStyle,O=E.rx,k=O===void 0?0:O,R=E.ry,z=R===void 0?0:R,B=E.cx,V=B===void 0?0:B,U=E.cy,J=U===void 0?0:U;e=Op(k,z,V,J);break}case Dt.POLYLINE:case Dt.POLYGON:var $=n.parsedStyle.points;e=fM($.points,n.nodeName===Dt.POLYGON);break;case Dt.RECT:var st=n.parsedStyle,ct=st.width,ft=ct===void 0?0:ct,Nt=st.height,Ct=Nt===void 0?0:Nt,gt=st.x,pt=gt===void 0?0:gt,Pt=st.y,jt=Pt===void 0?0:Pt,Yt=st.radius,ee=Yt&&Yt.some(function(ce){return ce!==0});e=vM(ft,Ct,pt,jt,ee&&Yt.map(function(ce){return clamp(ce,0,Math.min(Math.abs(ft)/2,Math.abs(Ct)/2))}));break;case Dt.PATH:var ie=n.parsedStyle.d.absolutePath;e=_toConsumableArray(ie);break}if(e.length)return hM(e,n,t)}function i9(n){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,a=n.map(function(s,o){var l=s[0],c=n[o+1],u=o===0&&(t!==0||e!==0),h=(o===n.length-1||c&&(c[0]==="M"||c[0]==="Z"))&&r!==0&&i!==0,d=u?[t,e]:[0,0],f=_slicedToArray(d,2),v=f[0],g=f[1],p=h?[r,i]:[0,0],y=_slicedToArray(p,2),b=y[0],E=y[1];switch(l){case"M":return"M ".concat(s[1]+v,",").concat(s[2]+g);case"L":return"L ".concat(s[1]+b,",").concat(s[2]+E);case"Q":return"Q ".concat(s[1]," ").concat(s[2],",").concat(s[3]+b," ").concat(s[4]+E);case"C":return"C ".concat(s[1]," ").concat(s[2],",").concat(s[3]," ").concat(s[4],",").concat(s[5]+b," ").concat(s[6]+E);case"A":return"A ".concat(s[1]," ").concat(s[2]," ").concat(s[3]," ").concat(s[4]," ").concat(s[5]," ").concat(s[6]," ").concat(s[7]).concat(h?" L ".concat(s[6]+r,",").concat(s[7]+i):"");case"Z":return"Z";default:return null}}).filter(function(s){return s!==null}).join(" ");return~a.indexOf("NaN")?"":a}var Cp=function(t){if(t===""||Array.isArray(t)&&t.length===0)return{absolutePath:[],hasArc:!1,segments:[],polygons:[],polylines:[],curve:null,totalLength:0,rect:{x:0,y:0,width:0,height:0}};var e;try{e=rc(t)}catch(f){e=rc(""),console.error("[g]: Invalid SVG Path definition: ".concat(t))}aM(e);var r=sM(e),i=oM(e),a=i.polygons,s=i.polylines,o=cM(e),l=lM(o,0),c=l.x,u=l.y,h=l.width,d=l.height;return{absolutePath:e,hasArc:r,segments:o,polygons:a,polylines:s,totalLength:0,rect:{x:Number.isFinite(c)?c:0,y:Number.isFinite(u)?u:0,width:Number.isFinite(h)?h:0,height:Number.isFinite(d)?d:0}}},gM=zn(Cp);function Np(n){return Ve(n)?gM(n):Cp(n)}function pM(n,t,e){var r=n.curve,i=t.curve;(!r||r.length===0)&&(r=Od(n.absolutePath,!1),n.curve=r),(!i||i.length===0)&&(i=Od(t.absolutePath,!1),t.curve=i);var a=[r,i];r.length!==i.length&&(a=Ag(r,i));var s=Tg(a[0])!==Tg(a[1])?c2(a[0]):u2(a[0]);return[s,d2(a[1],s),function(o){return o}]}function mM(n,t){var e;return Ve(n)?e=n.split(" ").map(function(r){var i=r.split(","),a=(0,W.Z)(i,2),s=a[0],o=a[1];return[Number(s),Number(o)]}):e=n,{points:e,totalLength:0,segments:[]}}function yM(n,t){return[n.points,t.points,function(e){return e}]}var kn=null,so=/\s*(\w+)\(([^)]*)\)/g;function Kr(n){return function(t){var e=0;return n.map(function(r){return r===kn?t[e++]:r})}}function ps(n){return n}var tl={matrix:["NNNNNN",[kn,kn,0,0,kn,kn,0,0,0,0,1,0,kn,kn,0,1],ps],matrix3d:["NNNNNNNNNNNNNNNN",ps],rotate:["A"],rotateX:["A"],rotateY:["A"],rotateZ:["A"],rotate3d:["NNNA"],perspective:["L"],scale:["Nn",Kr([kn,kn,new cn(1)]),ps],scaleX:["N",Kr([kn,new cn(1),new cn(1)]),Kr([kn,new cn(1)])],scaleY:["N",Kr([new cn(1),kn,new cn(1)]),Kr([new cn(1),kn])],scaleZ:["N",Kr([new cn(1),new cn(1),kn])],scale3d:["NNN",ps],skew:["Aa",null,ps],skewX:["A",null,Kr([kn,vs])],skewY:["A",null,Kr([vs,kn])],translate:["Tt",Kr([kn,kn,_i]),ps],translateX:["T",Kr([kn,_i,_i]),Kr([kn,_i])],translateY:["T",Kr([_i,kn,_i]),Kr([_i,kn])],translateZ:["L",Kr([_i,_i,kn])],translate3d:["TTL",ps]};function kp(n){for(var t=[],e=n.length,r=0;r2&&arguments[2]!==void 0?arguments[2]:{skipUpdateAttribute:!1,skipParse:!1,forceUpdateGeometry:!1,usedAttributes:[],memoize:!0};Object.assign(e.attributes,r);var a=e.parsedStyle.clipPath,s=e.parsedStyle.offsetPath;RM(e,r);var o=!!i.forceUpdateGeometry;if(!o){for(var l in r)if(kM.has(l)){o=!0;break}}var c=Dp(e);c.has("fill")&&r.fill&&(e.parsedStyle.fill=Jo(r.fill)),c.has("stroke")&&r.stroke&&(e.parsedStyle.stroke=Jo(r.stroke)),c.has("shadowColor")&&r.shadowColor&&(e.parsedStyle.shadowColor=Jo(r.shadowColor)),c.has("filter")&&r.filter&&(e.parsedStyle.filter=rM(r.filter)),c.has("radius")&&!be(r.radius)&&(e.parsedStyle.radius=yp(r.radius,4)),c.has("lineDash")&&!be(r.lineDash)&&(e.parsedStyle.lineDash=yp(r.lineDash,"even")),c.has("points")&&r.points&&(e.parsedStyle.points=mM(r.points)),c.has("d")&&r.d===""&&(e.parsedStyle.d=(0,F.Z)({},$g)),c.has("d")&&r.d&&(e.parsedStyle.d=Np(r.d)),c.has("textTransform")&&r.textTransform&&this.runtime.CSSPropertySyntaxFactory[Jt.TEXT_TRANSFORM].calculator(null,null,{value:r.textTransform},e,null),c.has("clipPath")&&!Te(r.clipPath)&&this.runtime.CSSPropertySyntaxFactory[Jt.DEFINED_PATH].calculator("clipPath",a,r.clipPath,e,this.runtime),c.has("offsetPath")&&r.offsetPath&&this.runtime.CSSPropertySyntaxFactory[Jt.DEFINED_PATH].calculator("offsetPath",s,r.offsetPath,e,this.runtime),c.has("transform")&&r.transform&&(e.parsedStyle.transform=Pp(r.transform)),c.has("transformOrigin")&&r.transformOrigin&&(e.parsedStyle.transformOrigin=NM(r.transformOrigin)),c.has("markerStart")&&r.markerStart&&(e.parsedStyle.markerStart=this.runtime.CSSPropertySyntaxFactory[Jt.MARKER].calculator(null,r.markerStart,r.markerStart,null,null)),c.has("markerEnd")&&r.markerEnd&&(e.parsedStyle.markerEnd=this.runtime.CSSPropertySyntaxFactory[Jt.MARKER].calculator(null,r.markerEnd,r.markerEnd,null,null)),c.has("markerMid")&&r.markerMid&&(e.parsedStyle.markerMid=this.runtime.CSSPropertySyntaxFactory[Jt.MARKER].calculator("",r.markerMid,r.markerMid,null,null)),c.has("zIndex")&&!be(r.zIndex)&&this.runtime.CSSPropertySyntaxFactory[Jt.Z_INDEX].postProcessor(e),c.has("offsetDistance")&&!be(r.offsetDistance)&&this.runtime.CSSPropertySyntaxFactory[Jt.OFFSET_DISTANCE].postProcessor(e),c.has("transform")&&r.transform&&this.runtime.CSSPropertySyntaxFactory[Jt.TRANSFORM].postProcessor(e),c.has("transformOrigin")&&r.transformOrigin&&this.runtime.CSSPropertySyntaxFactory[Jt.TRANSFORM_ORIGIN].postProcessor(e),o&&(e.geometry.dirty=!0,e.dirty(!0,!0),i.forceUpdateGeometry||this.runtime.sceneGraphService.dirtyToRoot(e))}},{key:"updateGeometry",value:function(e){var r=e.nodeName,i=this.runtime.geometryUpdaterFactory[r];if(i){var a=e.geometry;a.contentBounds||(a.contentBounds=new mn),a.renderBounds||(a.renderBounds=new mn);var s=e.parsedStyle,o=i.update(s,e),l=o.cx,c=l===void 0?0:l,u=o.cy,h=u===void 0?0:u,d=o.cz,f=d===void 0?0:d,v=o.hwidth,g=v===void 0?0:v,p=o.hheight,y=p===void 0?0:p,b=o.hdepth,E=b===void 0?0:b,O=[Math.abs(g),Math.abs(y),E],k=s.stroke,R=s.lineWidth,z=R===void 0?1:R,B=s.increasedLineWidthForHitTesting,V=B===void 0?0:B,U=s.shadowType,J=U===void 0?"outer":U,$=s.shadowColor,st=s.filter,ct=st===void 0?[]:st,ft=s.transformOrigin,Nt=[c,h,f];a.contentBounds.update(Nt,O);var Ct=r===Dt.POLYLINE||r===Dt.POLYGON||r===Dt.PATH?Math.SQRT2:.5,gt=k&&!k.isNone;if(gt){var pt=((z||0)+(V||0))*Ct;O[0]+=pt,O[1]+=pt}if(a.renderBounds.update(Nt,O),$&&J&&J!=="inner"){var Pt=a.renderBounds,jt=Pt.min,Yt=Pt.max,ee=s.shadowBlur,ie=s.shadowOffsetX,ce=s.shadowOffsetY,le=ee||0,Ee=ie||0,Ce=ce||0,We=jt[0]-le+Ee,Ye=Yt[0]+le+Ee,or=jt[1]-le+Ce,Je=Yt[1]+le+Ce;jt[0]=Math.min(jt[0],We),Yt[0]=Math.max(Yt[0],Ye),jt[1]=Math.min(jt[1],or),Yt[1]=Math.max(Yt[1],Je),a.renderBounds.setMinMax(jt,Yt)}ct.forEach(function(vr){var Ma=vr.name,Mr=vr.params;if(Ma==="blur"){var ei=Mr[0].value;a.renderBounds.update(a.renderBounds.center,we(a.renderBounds.halfExtents,a.renderBounds.halfExtents,[ei,ei,0]))}else if(Ma==="drop-shadow"){var ze=Mr[0].value,$e=Mr[1].value,je=Mr[2].value,Xe=a.renderBounds,an=Xe.min,pe=Xe.max,Ke=an[0]-je+ze,tn=pe[0]+je+ze,er=an[1]-je+$e,en=pe[1]+je+$e;an[0]=Math.min(an[0],Ke),pe[0]=Math.max(pe[0],tn),an[1]=Math.min(an[1],er),pe[1]=Math.max(pe[1],en),a.renderBounds.setMinMax(an,pe)}}),e.geometry.dirty=!1;var fi=g<0,_r=y<0,ns=(fi?-1:1)*(ft?ri(ft[0],0,e,!0):0),Sr=(_r?-1:1)*(ft?ri(ft[1],1,e,!0):0);(ns||Sr)&&e.setOrigin(ns,Sr)}}},{key:"updateSizeAttenuation",value:function(e,r){e.style.isSizeAttenuation?(e.style.rawLineWidth||(e.style.rawLineWidth=e.style.lineWidth),e.style.lineWidth=(e.style.rawLineWidth||1)/r,e.nodeName===Dt.CIRCLE&&(e.style.rawR||(e.style.rawR=e.style.r),e.style.r=(e.style.rawR||1)/r)):(e.style.rawLineWidth&&(e.style.lineWidth=e.style.rawLineWidth,delete e.style.rawLineWidth),e.nodeName===Dt.CIRCLE&&e.style.rawR&&(e.style.r=e.style.rawR,delete e.style.rawR))}}])}();function RM(n,t){var e=Dp(n);for(var r in t)e.has(r)&&(n.parsedStyle[r]=t[r])}function Dp(n){return n.constructor.PARSED_STYLE_LIST}var LM=function(){function n(){(0,C.Z)(this,n),this.mixer=Ud}return(0,T.Z)(n,[{key:"calculator",value:function(e,r,i,a){return Xr(i)}}])}(),_M=function(){function n(){(0,C.Z)(this,n)}return(0,T.Z)(n,[{key:"calculator",value:function(e,r,i,a,s){return i instanceof xi&&(i=null),s.sceneGraphService.updateDisplayObjectDependency(e,r,i,a),e==="clipPath"&&a.forEach(function(o){o.childNodes.length===0&&s.sceneGraphService.dirtyToRoot(o)}),i}}])}(),DM=function(){function n(){(0,C.Z)(this,n),this.parser=Jo,this.mixer=QS}return(0,T.Z)(n,[{key:"calculator",value:function(e,r,i,a){return i instanceof xi?i.value==="none"?dp:fp:i}}])}(),IM=function(){function n(){(0,C.Z)(this,n)}return(0,T.Z)(n,[{key:"calculator",value:function(e,r,i){return i instanceof xi?[]:i}}])}();function Ip(n){var t=n.parsedStyle,e=t.fontSize;return be(e)?null:e}var $d=function(){function n(){(0,C.Z)(this,n),this.mixer=Ud}return(0,T.Z)(n,[{key:"calculator",value:function(e,r,i,a,s){if(re(i))return i;if(cn.isRelativeUnit(i.unit)){if(i.unit===$t.kPercentage)return 0;if(i.unit===$t.kEms){if(a.parentNode){var o=Ip(a.parentNode);if(o)return o*=i.value,o}return 0}if(i.unit===$t.kRems){var l;if(a!=null&&(l=a.ownerDocument)!==null&&l!==void 0&&l.documentElement){var c=Ip(a.ownerDocument.documentElement);if(c)return c*=i.value,c}return 0}}else return i.value}}])}(),BM=function(){function n(){(0,C.Z)(this,n),this.mixer=Ep}return(0,T.Z)(n,[{key:"calculator",value:function(e,r,i){return i.map(function(a){return a.value})}}])}(),FM=function(){function n(){(0,C.Z)(this,n),this.mixer=Ep}return(0,T.Z)(n,[{key:"calculator",value:function(e,r,i){return i.map(function(a){return a.value})}}])}(),zM=function(){function n(){(0,C.Z)(this,n)}return(0,T.Z)(n,[{key:"calculator",value:function(e,r,i,a){var s;i instanceof xi&&(i=null);var o=(s=i)===null||s===void 0?void 0:s.cloneNode(!0);return o&&(o.style.isMarker=!0),o}}])}(),jM=function(){function n(){(0,C.Z)(this,n),this.mixer=Ud}return(0,T.Z)(n,[{key:"calculator",value:function(e,r,i){return i.value}}])}(),WM=function(){function n(){(0,C.Z)(this,n),this.mixer=Yd(0,1)}return(0,T.Z)(n,[{key:"calculator",value:function(e,r,i){return i.value}},{key:"postProcessor",value:function(e){var r=e.parsedStyle,i=r.offsetPath,a=r.offsetDistance;if(i){var s=i.nodeName;if(s===Dt.LINE||s===Dt.PATH||s===Dt.POLYLINE){var o=i.getPoint(a);o&&e.setLocalPosition(o.x,o.y)}}}}])}(),GM=function(){function n(){(0,C.Z)(this,n),this.mixer=Yd(0,1)}return(0,T.Z)(n,[{key:"calculator",value:function(e,r,i){return i.value}}])}(),ZM=function(){function n(){(0,C.Z)(this,n),this.parser=Np,this.mixer=pM}return(0,T.Z)(n,[{key:"calculator",value:function(e,r,i){return i instanceof xi&&i.value==="unset"?{absolutePath:[],hasArc:!1,segments:[],polygons:[],polylines:[],curve:null,totalLength:0,rect:new eo(0,0,0,0)}:i}}])}(),VM=(0,T.Z)(function n(){(0,C.Z)(this,n),this.mixer=yM}),UM=function(n){function t(){var e;(0,C.Z)(this,t);for(var r=arguments.length,i=new Array(r),a=0;a>>1;Bp(n[i],t)<0?e=i+1:r=i}return e}function Bp(n,t){var e=Number(n.parsedStyle.zIndex||0),r=Number(t.parsedStyle.zIndex||0);if(e===r){var i=n.parentNode;if(i){var a=i.childNodes||[];return a.indexOf(n)-a.indexOf(t)}}return e-r}function Fp(n){var t=n;do{var e,r=(e=t.parsedStyle)===null||e===void 0?void 0:e.clipPath;if(r)return t;t=t.parentElement}while(t!==null);return null}var zp="px";function qM(n,t,e){ef&&n.style&&(n.style.width=t+zp,n.style.height=e+zp)}function jp(n,t){if(ef)return document.defaultView.getComputedStyle(n,null).getPropertyValue(t)}function JM(n){var t=jp(n,"width");return t==="auto"?n.offsetWidth:parseFloat(t)}function $M(n){var t=jp(n,"height");return t==="auto"?n.offsetHeight:parseFloat(t)}var tA=1,eA={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},nf=typeof performance=="object"&&performance.now?performance:Date;function Sc(n){return n.nodeName===Dt.FRAGMENT?!0:n.getRootNode().nodeName===Dt.FRAGMENT}function ms(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"auto",t=arguments.length>1?arguments[1]:void 0,e=arguments.length>2?arguments[2]:void 0,r=!1,i=!1,a=!!t&&!t.isNone,s=!!e&&!e.isNone;return n==="visiblepainted"||n==="painted"||n==="auto"?(r=a,i=s):n==="visiblefill"||n==="fill"?r=!0:n==="visiblestroke"||n==="stroke"?i=!0:(n==="visible"||n==="all")&&(r=!0,i=!0),[r,i]}var nA=1,rA=function(){return nA++},qi=typeof self=="object"&&self.self===self?self:typeof S.g=="object"&&S.g.global===S.g?S.g:{},iA=Date.now(),aA=function(){return qi.performance&&typeof qi.performance.now=="function"?qi.performance.now():Date.now()-iA},el={},Wp=Date.now(),sA=function(t){if(typeof t!="function")throw new TypeError("".concat(t," is not a function"));var e=Date.now(),r=e-Wp,i=r>16?0:16-r,a=rA();return el[a]=t,Object.keys(el).length>1||setTimeout(function(){Wp=e;var s=el;el={},Object.keys(s).forEach(function(o){return s[o](aA())})},i),a},oA=function(t){delete el[t]},lA=["","webkit","moz","ms","o"],Gp=function(t){return typeof t!="string"?sA:t===""?qi.requestAnimationFrame:qi["".concat(t,"RequestAnimationFrame")]},cA=function(t){return typeof t!="string"?oA:t===""?qi.cancelAnimationFrame:qi["".concat(t,"CancelAnimationFrame")]||qi["".concat(t,"CancelRequestAnimationFrame")]},uA=function(t,e){for(var r=0;t[r]!==void 0;){if(e(t[r]))return t[r];r+=1}},Zp=uA(lA,function(n){return!!Gp(n)}),rf=Gp(Zp),Vp=cA(Zp);qi.requestAnimationFrame=rf,qi.cancelAnimationFrame=Vp;var hA=function(){function n(){(0,C.Z)(this,n),this.callbacks=[]}return(0,T.Z)(n,[{key:"getCallbacksNum",value:function(){return this.callbacks.length}},{key:"tapPromise",value:function(e,r){this.callbacks.push(r)}},{key:"promise",value:function(){for(var e=arguments.length,r=new Array(e),i=0;i=0;u--){var h=c[u].trim();!vA.test(h)&&fA.indexOf(h)<0&&(h='"'.concat(h,'"')),c[u]=h}return"".concat(a," ").concat(s," ").concat(o," ").concat(l," ").concat(c.join(","))},function(n){var t=Up(n),e=t.fontSize,r=t.fontFamily,i=t.fontStyle,a=t.fontVariant,s=t.fontWeight;return"".concat(i,"_").concat(a,"_").concat(s,"_").concat(e,"_").concat(r)}),gA=1e-6,nl=function(t){return Math.max(t,gA)};function sf(n,t,e){return Et(n),n[4]=Math.tan(t),n[1]=Math.tan(e),n}var jn=oe(),pA=oe(),mA={scale:function(t){_e(jn,[t[0].value,t[1].value,1].map(function(e){return nl(e)}))},scaleX:function(t){_e(jn,[t[0].value,1,1].map(function(e){return nl(e)}))},scaleY:function(t){_e(jn,[1,t[0].value,1].map(function(e){return nl(e)}))},scaleZ:function(t){_e(jn,[1,1,t[0].value].map(function(e){return nl(e)}))},scale3d:function(t){_e(jn,[t[0].value,t[1].value,t[2].value].map(function(e){return nl(e)}))},translate:function(t){cr(jn,[t[0].value,t[1].value,0])},translateX:function(t){cr(jn,[t[0].value,0,0])},translateY:function(t){cr(jn,[0,t[0].value,0])},translateZ:function(t){cr(jn,[0,0,t[0].value])},translate3d:function(t){cr(jn,[t[0].value,t[1].value,t[2].value])},rotate:function(t){Cn(jn,on(Xr(t[0])))},rotateX:function(t){Tr(jn,on(Xr(t[0])))},rotateY:function(t){Or(jn,on(Xr(t[0])))},rotateZ:function(t){Cn(jn,on(Xr(t[0])))},rotate3d:function(t){Kn(jn,on(Xr(t[3])),[t[0].value,t[1].value,t[2].value])},skew:function(t){sf(jn,on(t[0].value),on(t[1].value))},skewX:function(t){sf(jn,on(t[0].value),0)},skewY:function(t){sf(jn,0,on(t[0].value))},matrix:function(t){nn(jn,t[0].value,t[1].value,0,0,t[2].value,t[3].value,0,0,0,0,1,0,t[4].value,t[5].value,0,1)},matrix3d:function(t){nn.apply(A,[jn].concat((0,N.Z)(t.map(function(e){return e.value}))))}},yA=zt(1,1,1),bA=xt(),Hp={translate:function(t,e){Vt.sceneGraphService.setLocalScale(t,yA,!1),Vt.sceneGraphService.setLocalEulerAngles(t,bA,void 0,void 0,!1),Vt.sceneGraphService.setLocalPosition(t,[e[0].value,e[1].value,0],!1),Vt.sceneGraphService.dirtyLocalTransform(t,t.transformable)}};function Xp(n,t){if(n.length){if(n.length===1&&Hp[n[0].t]){Hp[n[0].t](t,n[0].d);return}for(var e=Et(pA),r=0;r1&&arguments[1]!==void 0?arguments[1]:!1,i=arguments.length>2?arguments[2]:void 0;if(i)return this.dispatchEventToSelf(e),!0;var a;if(this.document)a=this;else if(this.defaultView)a=this.defaultView;else{var s;a=(s=this.ownerDocument)===null||s===void 0?void 0:s.defaultView}if(a){if(e.manager=a.getEventService(),!e.manager)return!1;e.defaultPrevented=!1,e.path?e.path.length=0:e.page=[],r||(e.target=this),e.manager.dispatchEvent(e,e.type,r)}else this.dispatchEventToSelf(e);return!e.defaultPrevented}}])}(),Tn=function(n){function t(){var e;(0,C.Z)(this,t);for(var r=arguments.length,i=new Array(r),a=0;a0&&arguments[0]!==void 0?arguments[0]:{};return this.parentNode?this.parentNode.getRootNode(r):r.composed&&this.host?this.host.getRootNode(r):this}},{key:"hasChildNodes",value:function(){return this.childNodes.length>0}},{key:"isDefaultNamespace",value:function(r){throw new Error(sn)}},{key:"lookupNamespaceURI",value:function(r){throw new Error(sn)}},{key:"lookupPrefix",value:function(r){throw new Error(sn)}},{key:"normalize",value:function(){throw new Error(sn)}},{key:"isEqualNode",value:function(r){return this===r}},{key:"isSameNode",value:function(r){return this.isEqualNode(r)}},{key:"parent",get:function(){return this.parentNode}},{key:"parentElement",get:function(){return null}},{key:"nextSibling",get:function(){return null}},{key:"previousSibling",get:function(){return null}},{key:"firstChild",get:function(){return this.childNodes.length>0?this.childNodes[0]:null}},{key:"lastChild",get:function(){return this.childNodes.length>0?this.childNodes[this.childNodes.length-1]:null}},{key:"compareDocumentPosition",value:function(r){if(r===this)return 0;for(var i=r,a=this,s=[i],o=[a];(l=i.parentNode)!==null&&l!==void 0?l:a.parentNode;){var l;i=i.parentNode?(s.push(i.parentNode),i.parentNode):i,a=a.parentNode?(o.push(a.parentNode),a.parentNode):a}if(i!==a)return t.DOCUMENT_POSITION_DISCONNECTED|t.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC|t.DOCUMENT_POSITION_PRECEDING;var c=s.length>o.length?s:o,u=c===s?o:s;if(c[c.length-u.length]===u[0])return c===s?t.DOCUMENT_POSITION_CONTAINED_BY|t.DOCUMENT_POSITION_FOLLOWING:t.DOCUMENT_POSITION_CONTAINS|t.DOCUMENT_POSITION_PRECEDING;for(var h=c.length-u.length,d=u.length-1;d>=0;d--){var f=u[d],v=c[h+d];if(v!==f){var g=f.parentNode.childNodes;return g.indexOf(f)0&&i;)i=i.parentNode,r--;return i}},{key:"forEach",value:function(r){for(var i=[this];i.length>0;){var a=i.pop(),s=r(a);if(s===!1)break;for(var o=a.childNodes.length-1;o>=0;o--)i.push(a.childNodes[o])}}}],[{key:"isNode",value:function(r){return!!r.childNodes}}])}(Qp);Tn.DOCUMENT_POSITION_DISCONNECTED=1,Tn.DOCUMENT_POSITION_PRECEDING=2,Tn.DOCUMENT_POSITION_FOLLOWING=4,Tn.DOCUMENT_POSITION_CONTAINS=8,Tn.DOCUMENT_POSITION_CONTAINED_BY=16,Tn.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC=32;var RA=2048,LA=function(){function n(t,e){var r=this;(0,C.Z)(this,n),this.nativeHTMLMap=new WeakMap,this.cursor="default",this.mappingTable={},this.mappingState={trackingData:{}},this.eventPool=new Map,this.tmpMatrix=oe(),this.tmpVec3=xt(),this.onPointerDown=function(i){var a=r.createPointerEvent(i);if(r.dispatchEvent(a,"pointerdown"),a.pointerType==="touch")r.dispatchEvent(a,"touchstart");else if(a.pointerType==="mouse"||a.pointerType==="pen"){var s=a.button===2;r.dispatchEvent(a,s?"rightdown":"mousedown")}var o=r.trackingData(i.pointerId);o.pressTargetsByButton[i.button]=a.composedPath(),r.freeEvent(a)},this.onPointerUp=function(i){var a=nf.now(),s=r.createPointerEvent(i,void 0,void 0,r.context.config.alwaysTriggerPointerEventOnCanvas?r.rootTarget:void 0);if(r.dispatchEvent(s,"pointerup"),s.pointerType==="touch")r.dispatchEvent(s,"touchend");else if(s.pointerType==="mouse"||s.pointerType==="pen"){var o=s.button===2;r.dispatchEvent(s,o?"rightup":"mouseup")}var l=r.trackingData(i.pointerId),c=r.findMountedTarget(l.pressTargetsByButton[i.button]),u=c;if(c&&!s.composedPath().includes(c)){for(var h=c;h&&!s.composedPath().includes(h);){if(s.currentTarget=h,r.notifyTarget(s,"pointerupoutside"),s.pointerType==="touch")r.notifyTarget(s,"touchendoutside");else if(s.pointerType==="mouse"||s.pointerType==="pen"){var d=s.button===2;r.notifyTarget(s,d?"rightupoutside":"mouseupoutside")}Tn.isNode(h)&&(h=h.parentNode)}delete l.pressTargetsByButton[i.button],u=h}if(u){var f,v=r.clonePointerEvent(s,"click");v.target=u,v.path=[],l.clicksByButton[i.button]||(l.clicksByButton[i.button]={clickCount:0,target:v.target,timeStamp:a});var g=r.context.renderingContext.root.ownerDocument.defaultView,p=l.clicksByButton[i.button];p.target===v.target&&a-p.timeStamp=1;a--)if(e.currentTarget=i[a],this.notifyTarget(e,r),e.propagationStopped||e.propagationImmediatelyStopped)return;if(e.eventPhase=e.AT_TARGET,e.currentTarget=e.target,this.notifyTarget(e,r),!(e.propagationStopped||e.propagationImmediatelyStopped)){var s=i.indexOf(e.currentTarget);e.eventPhase=e.BUBBLING_PHASE;for(var o=s+1;os||i>o?null:!l&&this.pickHandler(e)||this.rootTarget||null}},{key:"isNativeEventFromCanvas",value:function(e,r){var i,a=r==null?void 0:r.target;if((i=a)!==null&&i!==void 0&&i.shadowRoot&&(a=r.composedPath()[0]),a){if(a===e)return!0;if(e&&e.contains)return e.contains(a)}return r!=null&&r.composedPath?r.composedPath().indexOf(e)>-1:!1}},{key:"getExistedHTML",value:function(e){if(e.nativeEvent.composedPath)for(var r=0,i=e.nativeEvent.composedPath();r=0;i--){var a=e[i];if(a===this.rootTarget||Tn.isNode(a)&&a.parentNode===r)r=e[i];else break}return r}},{key:"getCursor",value:function(e){for(var r=e;r;){var i=KM(r)&&r.getAttribute("cursor");if(i)return i;r=Tn.isNode(r)&&r.parentNode}}}])}(),lf=function(){function n(){(0,C.Z)(this,n)}return(0,T.Z)(n,[{key:"getOrCreateCanvas",value:function(e,r){if(this.canvas)return this.canvas;if(e||Vt.offscreenCanvas)this.canvas=e||Vt.offscreenCanvas,this.context=this.canvas.getContext("2d",(0,F.Z)({willReadFrequently:!0},r));else try{this.canvas=new window.OffscreenCanvas(0,0),this.context=this.canvas.getContext("2d",(0,F.Z)({willReadFrequently:!0},r)),(!this.context||!this.context.measureText)&&(this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"))}catch(i){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d",(0,F.Z)({willReadFrequently:!0},r))}return this.canvas.width=10,this.canvas.height=10,this.canvas}},{key:"getOrCreateContext",value:function(e,r){return this.context?this.context:(this.getOrCreateCanvas(e,r),this.context)}}],[{key:"createCanvas",value:function(){try{return new window.OffscreenCanvas(0,0)}catch(e){}try{return document.createElement("canvas")}catch(e){}return null}}])}(),oo=function(n){return n[n.CAMERA_CHANGED=0]="CAMERA_CHANGED",n[n.DISPLAY_OBJECT_CHANGED=1]="DISPLAY_OBJECT_CHANGED",n[n.NONE=2]="NONE",n}({}),_A=function(){function n(t,e){(0,C.Z)(this,n),this.inited=!1,this.stats={total:0,rendered:0},this.zIndexCounter=0,this.hooks={init:new Fr,initAsync:new hA,dirtycheck:new af,cull:new af,beginFrame:new Fr,beforeRender:new Fr,render:new Fr,afterRender:new Fr,endFrame:new Fr,destroy:new Fr,pick:new dA,pickSync:new af,pointerDown:new Fr,pointerUp:new Fr,pointerMove:new Fr,pointerOut:new Fr,pointerOver:new Fr,pointerWheel:new Fr,pointerCancel:new Fr,click:new Fr},this.globalRuntime=t,this.context=e}return(0,T.Z)(n,[{key:"init",value:function(e){var r=this,i=(0,F.Z)((0,F.Z)({},this.globalRuntime),this.context);this.context.renderingPlugins.forEach(function(a){a.apply(i,r.globalRuntime)}),this.hooks.init.call(),this.hooks.initAsync.getCallbacksNum()===0?(this.inited=!0,e()):this.hooks.initAsync.promise().then(function(){r.inited=!0,e()}).catch(function(a){})}},{key:"getStats",value:function(){return this.stats}},{key:"disableDirtyRectangleRendering",value:function(){var e=this.context.config.renderer,r=e.getConfig(),i=r.enableDirtyRectangleRendering;return!i||this.context.renderingContext.renderReasons.has(oo.CAMERA_CHANGED)}},{key:"render",value:function(e,r,i){var a=this;this.stats.total=0,this.stats.rendered=0,this.zIndexCounter=0;var s=this.context.renderingContext;if(this.globalRuntime.sceneGraphService.syncHierarchy(s.root),this.globalRuntime.sceneGraphService.triggerPendingEvents(),s.renderReasons.size&&this.inited){s.dirtyRectangleRenderingDisabled=this.disableDirtyRectangleRendering();var o=s.renderReasons.size===1&&s.renderReasons.has(oo.CAMERA_CHANGED),l=!e.disableRenderHooks||!o;l&&this.renderDisplayObject(s.root,e,s),this.hooks.beginFrame.call(r),l&&s.renderListCurrentFrame.forEach(function(c){a.hooks.beforeRender.call(c),a.hooks.render.call(c),a.hooks.afterRender.call(c)}),this.hooks.endFrame.call(r),s.renderListCurrentFrame=[],s.renderReasons.clear(),i()}}},{key:"renderDisplayObject",value:function(e,r,i){var a=this,s=r.renderer.getConfig(),o=s.enableDirtyCheck,l=s.enableCulling;function c(g){var p=g.renderable,y=g.sortable,b=o?p.dirty||i.dirtyRectangleRenderingDisabled?g:null:g,E=null;b&&(E=l?a.hooks.cull.call(b,a.context.camera):b,E&&(a.stats.rendered+=1,i.renderListCurrentFrame.push(E))),g.dirty(!1),y.renderOrder=a.zIndexCounter,a.zIndexCounter+=1,a.stats.total+=1,y.dirty&&(a.sort(g,y),y.dirty=!1,y.dirtyChildren=[],y.dirtyReason=void 0)}for(var u=[e];u.length>0;){var h,d=u.pop();c(d);for(var f=((h=d.sortable)===null||h===void 0||(h=h.sorted)===null||h===void 0?void 0:h.length)>0?d.sortable.sorted:d.childNodes,v=f.length-1;v>=0;v--)u.push(f[v])}}},{key:"sort",value:function(e,r){var i,a;(r==null||(i=r.sorted)===null||i===void 0?void 0:i.length)>0&&r.dirtyReason!==hc.Z_INDEX_CHANGED?r.dirtyChildren.forEach(function(s){var o=r.sorted.indexOf(s);o>-1&&r.sorted.splice(o,1);var l=e.childNodes.indexOf(s);if(l>-1)if(r.sorted.length===0)r.sorted.push(s);else{var c=QM(r.sorted,s);r.sorted.splice(c,0,s)}}):r.sorted=e.childNodes.slice().sort(Bp),((a=r.sorted)===null||a===void 0?void 0:a.length)>0&&e.childNodes.filter(function(s){return s.parsedStyle.zIndex}).length===0&&(r.sorted=[])}},{key:"destroy",value:function(){this.inited=!1,this.hooks.destroy.call(),this.globalRuntime.sceneGraphService.clearPendingEvents()}},{key:"dirtify",value:function(){this.context.renderingContext.renderReasons.add(oo.DISPLAY_OBJECT_CHANGED)}}])}(),DA=/\[\s*(.*)=(.*)\s*\]/,IA=function(){function n(){(0,C.Z)(this,n)}return(0,T.Z)(n,[{key:"selectOne",value:function(e,r){var i=this;if(e.startsWith("."))return r.find(function(l){return((l==null?void 0:l.classList)||[]).indexOf(i.getIdOrClassname(e))>-1});if(e.startsWith("#"))return r.find(function(l){return l.id===i.getIdOrClassname(e)});if(e.startsWith("[")){var a=this.getAttribute(e),s=a.name,o=a.value;return s?r.find(function(l){return r!==l&&(s==="name"?l.name===o:i.attributeToString(l,s)===o)}):null}return r.find(function(l){return r!==l&&l.nodeName===e})}},{key:"selectAll",value:function(e,r){var i=this;if(e.startsWith("."))return r.findAll(function(l){return r!==l&&((l==null?void 0:l.classList)||[]).indexOf(i.getIdOrClassname(e))>-1});if(e.startsWith("#"))return r.findAll(function(l){return r!==l&&l.id===i.getIdOrClassname(e)});if(e.startsWith("[")){var a=this.getAttribute(e),s=a.name,o=a.value;return s?r.findAll(function(l){return r!==l&&(s==="name"?l.name===o:i.attributeToString(l,s)===o)}):[]}return r.findAll(function(l){return r!==l&&l.nodeName===e})}},{key:"is",value:function(e,r){if(e.startsWith("."))return r.className===this.getIdOrClassname(e);if(e.startsWith("#"))return r.id===this.getIdOrClassname(e);if(e.startsWith("[")){var i=this.getAttribute(e),a=i.name,s=i.value;return a==="name"?r.name===s:this.attributeToString(r,a)===s}return r.nodeName===e}},{key:"getIdOrClassname",value:function(e){return e.substring(1)}},{key:"getAttribute",value:function(e){var r=e.match(DA),i="",a="";return r&&r.length>2&&(i=r[1].replace(/"/g,""),a=r[2].replace(/"/g,"")),{name:i,value:a}}},{key:"attributeToString",value:function(e,r){if(!e.getAttribute)return"";var i=e.getAttribute(r);return be(i)?"":i.toString?i.toString():""}}])}(),Be=function(n){return n.ATTR_MODIFIED="DOMAttrModified",n.INSERTED="DOMNodeInserted",n.MOUNTED="DOMNodeInsertedIntoDocument",n.REMOVED="removed",n.UNMOUNTED="DOMNodeRemovedFromDocument",n.REPARENT="reparent",n.DESTROY="destroy",n.BOUNDS_CHANGED="bounds-changed",n.CULLED="culled",n}({}),Ji=function(n){function t(e,r,i,a,s,o,l,c){var u;return(0,C.Z)(this,t),u=I(this,t,[null]),u.relatedNode=r,u.prevValue=i,u.newValue=a,u.attrName=s,u.attrChange=o,u.prevParsedValue=l,u.newParsedValue=c,u.type=e,u}return(0,L.Z)(t,n),(0,T.Z)(t)}(Mc);Ji.ADDITION=2,Ji.MODIFICATION=1,Ji.REMOVAL=3;var BA=new Ji(Be.REPARENT,null,"","","",0,"",""),FA=Md(),Tc=xt(),zA=zt(1,1,1),jA=oe(),WA=Md(),ys=xt(),GA=oe(),bs=Qn(),ZA=xt(),VA=Qn(),UA=xt(),rl=xt(),xs=xt(),Oc=oe(),qp=Qn(),Jp=Qn(),Cc=Qn(),Nc={affectChildren:!0},YA=function(){function n(t){(0,C.Z)(this,n),this.pendingEvents=new Map,this.boundsChangedEvent=new qn(Be.BOUNDS_CHANGED),this.displayObjectDependencyMap=new WeakMap,this.runtime=t}return(0,T.Z)(n,[{key:"matches",value:function(e,r){return this.runtime.sceneGraphSelector.is(e,r)}},{key:"querySelector",value:function(e,r){return this.runtime.sceneGraphSelector.selectOne(e,r)}},{key:"querySelectorAll",value:function(e,r){return this.runtime.sceneGraphSelector.selectAll(e,r)}},{key:"attach",value:function(e,r,i){var a,s=!1;e.parentNode&&(s=e.parentNode!==r,this.detach(e));var o=e.nodeName===Dt.FRAGMENT,l=Sc(r);e.parentNode=r;var c=o?e.childNodes:[e];re(i)?c.forEach(function(g){r.childNodes.splice(i,0,g),g.parentNode=r}):c.forEach(function(g){r.childNodes.push(g),g.parentNode=r});var u=r,h=u.sortable;if((h!=null&&(a=h.sorted)!==null&&a!==void 0&&a.length||h.dirty||e.parsedStyle.zIndex)&&(h.dirtyChildren.indexOf(e)===-1&&h.dirtyChildren.push(e),h.dirty=!0,h.dirtyReason=hc.ADDED),!l){if(o)this.dirtifyFragment(e);else{var d=e.transformable;d&&this.dirtyWorldTransform(e,d)}if(s){var f,v=((f=r.ownerDocument)===null||f===void 0||(f=f.defaultView)===null||f===void 0||(f=f.getConfig())===null||f===void 0||(f=f.future)===null||f===void 0?void 0:f.experimentalCancelEventPropagation)===!0;e.dispatchEvent(BA,v,v)}}}},{key:"detach",value:function(e){var r,i;if(e.parentNode){var a=e.transformable,s=e.parentNode,o=s.sortable;(o!=null&&(r=o.sorted)!==null&&r!==void 0&&r.length||(i=e.style)!==null&&i!==void 0&&i.zIndex)&&(o.dirtyChildren.indexOf(e)===-1&&o.dirtyChildren.push(e),o.dirty=!0,o.dirtyReason=hc.REMOVED);var l=e.parentNode.childNodes.indexOf(e);l>-1&&e.parentNode.childNodes.splice(l,1),a&&this.dirtyWorldTransform(e,a),e.parentNode=null}}},{key:"getLocalPosition",value:function(e){return e.transformable.localPosition}},{key:"getLocalRotation",value:function(e){return e.transformable.localRotation}},{key:"getLocalScale",value:function(e){return e.transformable.localScale}},{key:"getLocalSkew",value:function(e){return e.transformable.localSkew}},{key:"getLocalTransform",value:function(e){var r=e.transformable;return Jg(r),r.localTransform}},{key:"setLocalPosition",value:function(e,r){var i,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=e.transformable;rl[0]=r[0],rl[1]=r[1],rl[2]=(i=r[2])!==null&&i!==void 0?i:0,!Hi(s.localPosition,rl)&&(Ht(s.localPosition,rl),a&&this.dirtyLocalTransform(e,s))}},{key:"translateLocal",value:function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof r=="number"&&(r=zt(r,i,a));var s=e.transformable;Hi(r,Tc)||(Ca(r,r,s.localRotation),we(s.localPosition,s.localPosition,r),this.dirtyLocalTransform(e,s))}},{key:"setLocalRotation",value:function(e,r,i,a,s){var o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;typeof r=="number"&&(r=dg(bs,r,i,a,s));var l=e.transformable;tc(l.localRotation,r),o&&this.dirtyLocalTransform(e,l)}},{key:"rotateLocal",value:function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof r=="number"&&(r=zt(r,i,a));var s=e.transformable;$l(Jp,r[0],r[1],r[2]),fg(s.localRotation,s.localRotation,Jp),this.dirtyLocalTransform(e,s)}},{key:"setLocalScale",value:function(e,r){var i,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=e.transformable;fe(ys,r[0],r[1],(i=r[2])!==null&&i!==void 0?i:s.localScale[2]),!Hi(ys,s.localScale)&&(Ht(s.localScale,ys),a&&this.dirtyLocalTransform(e,s))}},{key:"scaleLocal",value:function(e,r){var i,a=e.transformable;Yn(a.localScale,a.localScale,fe(ys,r[0],r[1],(i=r[2])!==null&&i!==void 0?i:1)),this.dirtyLocalTransform(e,a)}},{key:"setLocalSkew",value:function(e,r,i){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;typeof r=="number"&&(r=Pw(WA,r,i));var s=e.transformable;kw(s.localSkew,r),a&&this.dirtyLocalTransform(e,s)}},{key:"setLocalEulerAngles",value:function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;typeof r=="number"&&(r=zt(r,i,a));var o=e.transformable;$l(o.localRotation,r[0],r[1],r[2]),s&&this.dirtyLocalTransform(e,o)}},{key:"setLocalTransform",value:function(e,r){var i=Qs(ZA,r),a=qs(VA,r),s=Na(UA,r);this.setLocalScale(e,s,!1),this.setLocalPosition(e,i,!1),this.setLocalRotation(e,a,void 0,void 0,void 0,!1),this.dirtyLocalTransform(e,e.transformable)}},{key:"resetLocalTransform",value:function(e){this.setLocalScale(e,zA,!1),this.setLocalPosition(e,Tc,!1),this.setLocalEulerAngles(e,Tc,void 0,void 0,!1),this.setLocalSkew(e,FA,void 0,!1),this.dirtyLocalTransform(e,e.transformable)}},{key:"getPosition",value:function(e){var r=e.transformable;return Qs(r.position,this.getWorldTransform(e,r))}},{key:"getRotation",value:function(e){var r=e.transformable;return qs(r.rotation,this.getWorldTransform(e,r))}},{key:"getScale",value:function(e){var r=e.transformable;return Na(r.scaling,this.getWorldTransform(e,r))}},{key:"getOrigin",value:function(e){return e.getGeometryBounds(),e.transformable.origin}},{key:"getWorldTransform",value:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.transformable;return!r.localDirtyFlag&&!r.dirtyFlag||(e.parentNode&&e.parentNode.transformable&&this.getWorldTransform(e.parentNode),this.internalUpdateTransform(e)),r.worldTransform}},{key:"setPosition",value:function(e,r){var i,a=e.transformable;if(xs[0]=r[0],xs[1]=r[1],xs[2]=(i=r[2])!==null&&i!==void 0?i:0,!Hi(this.getPosition(e),xs)){if(Ht(a.position,xs),e.parentNode===null||!e.parentNode.transformable)Ht(a.localPosition,xs);else{var s=e.parentNode.transformable;me(Oc,s.worldTransform),te(Oc,Oc),wn(a.localPosition,xs,Oc)}this.dirtyLocalTransform(e,a)}}},{key:"translate",value:function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof r=="number"&&(r=fe(ys,r,i,a)),!Hi(r,Tc)&&(we(ys,this.getPosition(e),r),this.setPosition(e,ys))}},{key:"setRotation",value:function(e,r,i,a,s){var o=e.transformable;if(typeof r=="number"&&(r=Ow(r,i,a,s)),e.parentNode===null||!e.parentNode.transformable)this.setLocalRotation(e,r);else{var l=this.getRotation(e.parentNode);tc(bs,l),Sd(bs,bs),Pa(o.localRotation,bs,r),ec(o.localRotation,o.localRotation),this.dirtyLocalTransform(e,o)}}},{key:"rotate",value:function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof r=="number"&&(r=zt(r,i,a));var s=e.transformable;if(e.parentNode===null||!e.parentNode.transformable)this.rotateLocal(e,r);else{var o=bs;$l(o,r[0],r[1],r[2]);var l=this.getRotation(e),c=this.getRotation(e.parentNode);tc(Cc,c),Sd(Cc,Cc),Pa(o,Cc,o),Pa(s.localRotation,o,l),ec(s.localRotation,s.localRotation),this.dirtyLocalTransform(e,s)}}},{key:"setOrigin",value:function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof r=="number"&&(r=[r,i,a]);var s=e.transformable;if(!(r[0]===s.origin[0]&&r[1]===s.origin[1]&&r[2]===s.origin[2])){var o=s.origin;o[0]=r[0],o[1]=r[1],o[2]=r[2]||0,this.dirtyLocalTransform(e,s)}}},{key:"setEulerAngles",value:function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof r=="number"&&(r=zt(r,i,a));var s=e.transformable;if(e.parentNode===null||!e.parentNode.transformable)this.setLocalEulerAngles(e,r);else{$l(s.localRotation,r[0],r[1],r[2]);var o=this.getRotation(e.parentNode);tc(qp,Sd(bs,o)),fg(s.localRotation,s.localRotation,qp),this.dirtyLocalTransform(e,s)}}},{key:"getTransformedGeometryBounds",value:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=arguments.length>2?arguments[2]:void 0,a=this.getGeometryBounds(e,r);if(!mn.isEmpty(a)){var s=i||new mn;return s.setFromTransformedAABB(a,this.getWorldTransform(e)),s}return null}},{key:"getGeometryBounds",value:function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=e,a=i.geometry;a.dirty&&Vt.styleValueRegistry.updateGeometry(e);var s=r?a.renderBounds:a.contentBounds||null;return s||new mn}},{key:"getBounds",value:function(e){var r=this,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,a=e,s=a.renderable;if(!s.boundsDirty&&!i&&s.bounds)return s.bounds;if(!s.renderBoundsDirty&&i&&s.renderBounds)return s.renderBounds;var o=i?s.renderBounds:s.bounds,l=this.getTransformedGeometryBounds(e,i,o),c=e.childNodes;if(c.forEach(function(d){var f=r.getBounds(d,i);f&&(l?l.add(f):(l=o||new mn,l.update(f.center,f.halfExtents)))}),l||(l=new mn),i){var u=Fp(e);if(u){var h=u.parsedStyle.clipPath.getBounds(i);l?h&&(l=h.intersection(l)):l.update(h.center,h.halfExtents)}}return i?(s.renderBounds=l,s.renderBoundsDirty=!1):(s.bounds=l,s.boundsDirty=!1),l}},{key:"getLocalBounds",value:function(e){if(e.parentNode){var r=jA;e.parentNode.transformable&&(r=te(GA,this.getWorldTransform(e.parentNode)));var i=this.getBounds(e);if(!mn.isEmpty(i)){var a=new mn;return a.setFromTransformedAABB(i,r),a}}return this.getBounds(e)}},{key:"getBoundingClientRect",value:function(e){var r,i,a=this.getGeometryBounds(e);mn.isEmpty(a)||(i=new mn,i.setFromTransformedAABB(a,this.getWorldTransform(e)));var s=(r=e.ownerDocument)===null||r===void 0||(r=r.defaultView)===null||r===void 0?void 0:r.getContextService().getBoundingClientRect();if(i){var o=i.getMin(),l=(0,W.Z)(o,2),c=l[0],u=l[1],h=i.getMax(),d=(0,W.Z)(h,2),f=d[0],v=d[1];return new eo(c+((s==null?void 0:s.left)||0),u+((s==null?void 0:s.top)||0),f-c,v-u)}return new eo((s==null?void 0:s.left)||0,(s==null?void 0:s.top)||0,0,0)}},{key:"internalUpdateTransform",value:function(e){var r,i=(r=e.parentNode)===null||r===void 0?void 0:r.transformable;Jg(e.transformable),cS(e.transformable,i)}},{key:"internalUpdateElement",value:function(e,r){var i,a,s,o,l=((i=e.ownerDocument)===null||i===void 0||(i=i.defaultView)===null||i===void 0||(i=i.getConfig())===null||i===void 0||(i=i.future)===null||i===void 0?void 0:i.experimentalAttributeUpdateOptimization)===!0,c=r[r.length-1],u=(c==null?void 0:c.transformDirty)||((a=e.transformable)===null||a===void 0?void 0:a.localDirtyFlag);if(e.transformable){var h;(h=e.transformable).dirtyFlag||(h.dirtyFlag=u)}if(this.internalUpdateTransform(e),u){var d;(d=e.dirty)===null||d===void 0||d.call(e,!0,!0)}var f=((s=e.renderable)===null||s===void 0?void 0:s.boundsDirty)||((o=e.renderable)===null||o===void 0?void 0:o.renderBoundsDirty);if((u||f)&&(c==null?void 0:c.shapeUpdated)===!1&&l)for(var v=r.length-1;v>=0;){var g,p,y=r[v];if(y.shapeUpdated)break;(g=(p=y.node).dirty)===null||g===void 0||g.call(p,!0,!0),y.shapeUpdated=!0,v-=1}return u}},{key:"syncHierarchy",value:function(e){for(var r,i,a=[e],s=e.parentNode?[{node:e.parentNode,transformDirty:((r=e.parentNode.transformable)===null||r===void 0?void 0:r.localDirtyFlag)||((i=e.parentNode.transformable)===null||i===void 0?void 0:i.dirtyFlag),shapeUpdated:!1}]:[];a.length>0;){for(var o=a.pop(),l=s[s.length-1];s.length>0&&o.parentNode!==l.node;)l=s.pop();var c=this.internalUpdateElement(o,s);if(o.childNodes.length>0){for(var u=o.childNodes.length-1;u>=0;u--)a.push(o.childNodes[u]);s.push({node:o,transformDirty:c,shapeUpdated:!1})}}}},{key:"dirtyLocalTransform",value:function(e,r){Sc(e)||r.localDirtyFlag||(r.localDirtyFlag=!0,r.dirtyFlag||this.dirtyWorldTransform(e,r))}},{key:"dirtyWorldTransform",value:function(e,r){this.dirtifyWorldInternal(e,r),this.dirtyToRoot(e,!0)}},{key:"dirtifyWorldInternal",value:function(e,r){var i,a=this,s=((i=e.ownerDocument)===null||i===void 0||(i=i.defaultView)===null||i===void 0||(i=i.getConfig())===null||i===void 0||(i=i.future)===null||i===void 0?void 0:i.experimentalAttributeUpdateOptimization)===!0;r.dirtyFlag||(r.dirtyFlag=!0,e.dirty(!0,!0),s||e.childNodes.forEach(function(o){var l=o.transformable;a.dirtifyWorldInternal(o,l)}))}},{key:"dirtyToRoot",value:function(e){for(var r,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,a=e,s=((r=e.ownerDocument)===null||r===void 0||(r=r.defaultView)===null||r===void 0||(r=r.getConfig())===null||r===void 0||(r=r.future)===null||r===void 0?void 0:r.experimentalAttributeUpdateOptimization)===!0;a;){var o,l;if((o=(l=a).dirty)===null||o===void 0||o.call(l,!0,!0),s)break;a=a.parentNode}i&&e.forEach(function(c){var u;(u=c.dirty)===null||u===void 0||u.call(c,!0,!0)}),this.informDependentDisplayObjects(e),this.pendingEvents.set(e,i)}},{key:"dirtifyFragment",value:function(e){var r,i,a=e.transformable;a&&(a.dirtyFlag=!0,a.localDirtyFlag=!0),(r=(i=e).dirty)===null||r===void 0||r.call(i,!0,!0);for(var s=e.childNodes.length,o=0;othis.capacity){var i=this.cache.keys().next().value;this.cache.delete(i)}}},{key:"len",value:function(){return this.cache.size}},{key:"clear",value:function(){this.cache.clear()}}])}(),Es={MetricsString:"|\xC9q\xC5",BaselineSymbol:"M",BaselineMultiplier:1.4,HeightMultiplier:2,Newlines:[10,13],BreakingSpaces:[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288]},tm=/[a-zA-Z0-9\u00C0-\u00D6\u00D8-\u00f6\u00f8-\u00ff!"#$%&'()*+,-./:;]/,HA=/[!%),.:;?\]}¢°·'""†‡›℃∶、。〃〆〕〗〞﹚﹜!"%'),.:;?!]}~]/,XA=/[$(£¥·'"〈《「『【〔〖〝﹙﹛$(.[{£¥]/,KA=/[!),.:;?\]}¢·–—'"•"、。〆〞〕〉》」︰︱︲︳﹐﹑﹒﹓﹔﹕﹖﹘﹚﹜!),.:;?︶︸︺︼︾﹀﹂﹗]|}、]/,QA=/[([{£¥'"‵〈《「『〔〝︴﹙﹛({︵︷︹︻︽︿﹁﹃﹏]/,qA=/[)\]}〕〉》」』】〙〗〟'"⦆»ヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻‐゠–〜?!‼⁇⁈⁉・、:;,。.]/,JA=/[([{〔〈《「『【〘〖〝'"⦅«—...‥〳〴〵]/,$A=/[!%),.:;?\]}¢°'"†‡℃〆〈《「『〕!%),.:;?]}]/,tT=/[$([{£¥'"々〇〉》」〔$([{⦆¥₩#]/,eT=new RegExp("".concat(HA.source,"|").concat(KA.source,"|").concat(qA.source,"|").concat($A.source)),nT=new RegExp("".concat(XA.source,"|").concat(QA.source,"|").concat(JA.source,"|").concat(tT.source)),rT=function(){function n(t){var e=this;(0,C.Z)(this,n),this.fontMetricsCache={},this.shouldBreakByKinsokuShorui=function(r,i){return e.isBreakingSpace(i)?!1:!!(r&&(nT.exec(i)||eT.exec(r)))},this.trimByKinsokuShorui=function(r){var i=(0,N.Z)(r),a=i[i.length-2];if(!a)return r;var s=a[a.length-1];return i[i.length-2]=a.slice(0,-1),i[i.length-1]=s+i[i.length-1],i},this.runtime=t,this.charWidthCache=new $p(100)}return(0,T.Z)(n,[{key:"measureFont",value:function(e,r){if(this.fontMetricsCache[e])return this.fontMetricsCache[e];var i={ascent:0,descent:0,fontSize:0},a=this.runtime.offscreenCanvasCreator.getOrCreateCanvas(r),s=this.runtime.offscreenCanvasCreator.getOrCreateContext(r,{willReadFrequently:!0});s.font=e;var o=Es.MetricsString+Es.BaselineSymbol,l=Math.ceil(s.measureText(o).width),c=Math.ceil(s.measureText(Es.BaselineSymbol).width),u=Es.HeightMultiplier*c;c=c*Es.BaselineMultiplier|0,a.width=l,a.height=u,s.fillStyle="#f00",s.fillRect(0,0,l,u),s.font=e,s.textBaseline="alphabetic",s.fillStyle="#000",s.fillText(o,0,c);var h=s.getImageData(0,0,l||1,u||1).data,d=h.length,f=l*4,v=0,g=0,p=!1;for(v=0;vc;--v){for(var b=0;bjt&&pt>=Pt;)pt-=1,gt=gt.slice(0,-1);return{lineTxt:gt,txtLastCharIndex:pt}}function J(gt,pt){if(!(V<=0||V>p)){if(!b[gt]){b[gt]=y;return}var Pt=U(b[gt],pt,k+1,p-V);b[gt]=Pt.lineTxt+y}}for(var $=0;$=f){$p){J(E,$-1),r.isOverflowing=!0;break}if(O>0&&O+Nt>p){var Ct=U(b[E],$-1,k+1,p);if(Ct.txtLastCharIndex!==$-1){if(b[E]=Ct.lineTxt,Ct.txtLastCharIndex===s.length-1)break;$=Ct.txtLastCharIndex+1,st=s[$],ct=s[$-1],ft=s[$+1],Nt=B(st)}if(E+1>=f){J(E,$-1),r.isOverflowing=!0;break}if(k=$-1,E+=1,O=0,b[E]="",this.isBreakingSpace(st))continue;this.canBreakInLastChar(st)||(b=this.trimToBreakable(b),O=this.sumTextWidthByCache(b[E]||"",B)),this.shouldBreakByKinsokuShorui(st,ft)&&(b=this.trimByKinsokuShorui(b),O+=B(ct||""))}O+=Nt,b[E]+=st}return b.join(` `)}},{key:"isBreakingSpace",value:function(e){return typeof e!="string"?!1:Es.BreakingSpaces.indexOf(e.charCodeAt(0))>=0}},{key:"isNewline",value:function(e){return typeof e!="string"?!1:Es.Newlines.indexOf(e.charCodeAt(0))>=0}},{key:"trimToBreakable",value:function(e){var r=(0,N.Z)(e),i=r[r.length-2],a=this.findBreakableIndex(i);if(a===-1||!i)return r;var s=i.slice(a,a+1),o=this.isBreakingSpace(s),l=a+1,c=a+(o?0:1);return r[r.length-1]+=i.slice(l,i.length),r[r.length-2]=i.slice(0,c),r}},{key:"canBreakInLastChar",value:function(e){return!(e&&tm.test(e))}},{key:"sumTextWidthByCache",value:function(e,r){return e.split("").reduce(function(i,a){return i+r(a)},0)}},{key:"findBreakableIndex",value:function(e){for(var r=e.length-1;r>=0;r--)if(!tm.test(e[r]))return r;return-1}},{key:"getFromCache",value:function(e,r,i,a){var s=i.get(e);if(typeof s!="number"){var o=e.length*r,l=a.measureText(e);s=l.width+o,i.put(e,s)}return s}},{key:"clearCache",value:function(){this.fontMetricsCache={},this.charWidthCache.clear()}}])}(),Vt={},iT=function(n){var t=new CA,e=new OA;return n={},(0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)(n,Dt.FRAGMENT,null),Dt.CIRCLE,new SA),Dt.ELLIPSE,new MA),Dt.RECT,t),Dt.IMAGE,t),Dt.GROUP,new kA),Dt.LINE,new AA),Dt.TEXT,new NA(Vt)),Dt.POLYLINE,e),Dt.POLYGON,e),(0,ae.Z)((0,ae.Z)((0,ae.Z)(n,Dt.PATH,new TA),Dt.HTML,new PA),Dt.MESH,null)}(),aT=function(n){var t=new DM,e=new $d;return n={},(0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)(n,Jt.PERCENTAGE,null),Jt.NUMBER,new jM),Jt.ANGLE,new LM),Jt.DEFINED_PATH,new _M),Jt.PAINT,t),Jt.COLOR,t),Jt.FILTER,new IM),Jt.LENGTH,e),Jt.LENGTH_PERCENTAGE,e),Jt.LENGTH_PERCENTAGE_12,new BM),(0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)(n,Jt.LENGTH_PERCENTAGE_14,new FM),Jt.COORDINATE,new $d),Jt.OFFSET_DISTANCE,new WM),Jt.OPACITY_VALUE,new GM),Jt.PATH,new ZM),Jt.LIST_OF_POINTS,new VM),Jt.SHADOW_BLUR,new UM),Jt.TEXT,new YM),Jt.TEXT_TRANSFORM,new HM),Jt.TRANSFORM,new xA),(0,ae.Z)((0,ae.Z)((0,ae.Z)(n,Jt.TRANSFORM_ORIGIN,new EA),Jt.Z_INDEX,new wA),Jt.MARKER,new zM)}(),sT=function(){return typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof S.g!="undefined"?S.g:{}};Vt.CameraContribution=qg,Vt.AnimationTimeline=null,Vt.EasingFunction=null,Vt.offscreenCanvasCreator=new lf,Vt.sceneGraphSelector=new IA,Vt.sceneGraphService=new YA(Vt),Vt.textService=new rT(Vt),Vt.geometryUpdaterFactory=iT,Vt.CSSPropertySyntaxFactory=aT,Vt.styleValueRegistry=new PM(Vt),Vt.layoutRegistry=null,Vt.globalThis=sT(),Vt.enableStyleSyntax=!0,Vt.enableSizeAttenuation=!1;var em=0;function o9(){em=0}var cf=new Ji(Be.INSERTED,null,"","","",0,"",""),uf=new Ji(Be.REMOVED,null,"","","",0,"",""),nm=new qn(Be.DESTROY),oT=function(n){function t(){var e;(0,C.Z)(this,t);for(var r=arguments.length,i=new Array(r),a=0;a0&&arguments[0]!==void 0?arguments[0]:!0,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;this.renderable.dirty=r,i&&(this.renderable.boundsDirty=r,this.renderable.renderBoundsDirty=r)}},{key:"className",get:function(){return this.getAttribute("class")||""},set:function(r){this.setAttribute("class",r)}},{key:"classList",get:function(){return this.className.split(" ").filter(function(r){return r!==""})}},{key:"tagName",get:function(){return this.nodeName}},{key:"children",get:function(){return this.childNodes}},{key:"childElementCount",get:function(){return this.childNodes.length}},{key:"firstElementChild",get:function(){return this.firstChild}},{key:"lastElementChild",get:function(){return this.lastChild}},{key:"parentElement",get:function(){return this.parentNode}},{key:"nextSibling",get:function(){if(this.parentNode){var r=this.parentNode.childNodes.indexOf(this);return this.parentNode.childNodes[r+1]||null}return null}},{key:"previousSibling",get:function(){if(this.parentNode){var r=this.parentNode.childNodes.indexOf(this);return this.parentNode.childNodes[r-1]||null}return null}},{key:"cloneNode",value:function(r){throw new Error(sn)}},{key:"appendChild",value:function(r,i){var a;if(r.destroyed)throw new Error(X2);return Vt.sceneGraphService.attach(r,this,i),(a=this.ownerDocument)!==null&&a!==void 0&&a.defaultView&&(!Sc(this)&&r.nodeName===Dt.FRAGMENT?this.ownerDocument.defaultView.mountFragment(r):this.ownerDocument.defaultView.mountChildren(r)),this.isMutationObserved&&(cf.relatedNode=this,r.dispatchEvent(cf)),r}},{key:"insertBefore",value:function(r,i){if(!i)this.appendChild(r);else{r.parentElement&&r.parentElement.removeChild(r);var a=this.childNodes.indexOf(i);a===-1?this.appendChild(r):this.appendChild(r,a)}return r}},{key:"replaceChild",value:function(r,i){var a=this.childNodes.indexOf(i);return this.removeChild(i),this.appendChild(r,a),i}},{key:"removeChild",value:function(r){var i,a,s=((i=this.ownerDocument)===null||i===void 0||(i=i.defaultView)===null||i===void 0||(i=i.getConfig().future)===null||i===void 0?void 0:i.experimentalCancelEventPropagation)===!0;return uf.relatedNode=this,r.dispatchEvent(uf,s,s),(a=r.ownerDocument)!==null&&a!==void 0&&a.defaultView&&r.ownerDocument.defaultView.unmountChildren(r),Vt.sceneGraphService.detach(r),r}},{key:"removeChildren",value:function(){for(var r=this.childNodes.length-1;r>=0;r--){var i=this.childNodes[r];this.removeChild(i)}}},{key:"destroyChildren",value:function(){for(var r=this.childNodes.length-1;r>=0;r--){var i=this.childNodes[r];i.childNodes.length>0&&i.destroyChildren(),i.destroy()}}},{key:"matches",value:function(r){return Vt.sceneGraphService.matches(r,this)}},{key:"getElementById",value:function(r){return Vt.sceneGraphService.querySelector("#".concat(r),this)}},{key:"getElementsByName",value:function(r){return Vt.sceneGraphService.querySelectorAll('[name="'.concat(r,'"]'),this)}},{key:"getElementsByClassName",value:function(r){return Vt.sceneGraphService.querySelectorAll(".".concat(r),this)}},{key:"getElementsByTagName",value:function(r){return Vt.sceneGraphService.querySelectorAll(r,this)}},{key:"querySelector",value:function(r){return Vt.sceneGraphService.querySelector(r,this)}},{key:"querySelectorAll",value:function(r){return Vt.sceneGraphService.querySelectorAll(r,this)}},{key:"closest",value:function(r){var i=this;do{if(Vt.sceneGraphService.matches(r,i))return i;i=i.parentElement}while(i!==null);return null}},{key:"find",value:function(r){var i=this,a=null;return this.forEach(function(s){return s!==i&&r(s)?(a=s,!1):!0}),a}},{key:"findAll",value:function(r){var i=this,a=[];return this.forEach(function(s){s!==i&&r(s)&&a.push(s)}),a}},{key:"after",value:function(){var r=this;if(this.parentNode){for(var i=this.parentNode.childNodes.indexOf(this),a=arguments.length,s=new Array(a),o=0;o0&&arguments[0]!==void 0?arguments[0]:{},i={forceUpdateGeometry:!0};Vt.styleValueRegistry.processProperties(this,r,i),this.dirty()}},{key:"setAttribute",value:function(r,i){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;Te(i)||(a||i!==this.attributes[r])&&(this.internalSetAttribute(r,i,{memoize:s}),Cg(t,"setAttribute",this,3)([r,i]))}},{key:"internalSetAttribute",value:function(r,i){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},s=this.attributes[r],o=this.parsedStyle[r];Vt.styleValueRegistry.processProperties(this,(0,ae.Z)({},r,i),a),this.dirty();var l=this.parsedStyle[r];if(this.isConnected)if($i.relatedNode=this,$i.prevValue=s,$i.newValue=i,$i.attrName=r,$i.prevParsedValue=o,$i.newParsedValue=l,this.isMutationObserved)this.dispatchEvent($i);else{var c,u=((c=this.ownerDocument.defaultView.getConfig().future)===null||c===void 0?void 0:c.experimentalCancelEventPropagation)===!0;$i.target=this,this.ownerDocument.defaultView.dispatchEvent($i,!0,u)}if(this.isCustomElement&&this.isConnected||!this.isCustomElement){var h,d;(h=(d=this).attributeChangedCallback)===null||h===void 0||h.call(d,r,s,i,o,l)}}},{key:"getBBox",value:function(){var r=this.getBounds(),i=r.getMin(),a=(0,W.Z)(i,2),s=a[0],o=a[1],l=r.getMax(),c=(0,W.Z)(l,2),u=c[0],h=c[1];return new eo(s,o,u-s,h-o)}},{key:"setOrigin",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return Vt.sceneGraphService.setOrigin(this,Br(r,i,a,!1)),this}},{key:"getOrigin",value:function(){return Vt.sceneGraphService.getOrigin(this)}},{key:"setPosition",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return Vt.sceneGraphService.setPosition(this,Br(r,i,a,!1)),this}},{key:"setLocalPosition",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return Vt.sceneGraphService.setLocalPosition(this,Br(r,i,a,!1)),this}},{key:"translate",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return Vt.sceneGraphService.translate(this,Br(r,i,a,!1)),this}},{key:"translateLocal",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return Vt.sceneGraphService.translateLocal(this,Br(r,i,a,!1)),this}},{key:"getPosition",value:function(){return Vt.sceneGraphService.getPosition(this)}},{key:"getLocalPosition",value:function(){return Vt.sceneGraphService.getLocalPosition(this)}},{key:"scale",value:function(r,i,a){return this.scaleLocal(r,i,a)}},{key:"scaleLocal",value:function(r,i,a){return typeof r=="number"&&(i=i||r,a=a||r,r=Br(r,i,a,!1)),Vt.sceneGraphService.scaleLocal(this,r),this}},{key:"setLocalScale",value:function(r,i,a){return typeof r=="number"&&(i=i||r,a=a||r,r=Br(r,i,a,!1)),Vt.sceneGraphService.setLocalScale(this,r),this}},{key:"getLocalScale",value:function(){return Vt.sceneGraphService.getLocalScale(this)}},{key:"getScale",value:function(){return Vt.sceneGraphService.getScale(this)}},{key:"getEulerAngles",value:function(){var r=_d(il,Vt.sceneGraphService.getWorldTransform(this)),i=(0,W.Z)(r,3),a=i[2];return Yr(a)}},{key:"getLocalEulerAngles",value:function(){var r=_d(il,Vt.sceneGraphService.getLocalRotation(this)),i=(0,W.Z)(r,3),a=i[2];return Yr(a)}},{key:"setEulerAngles",value:function(r){return Vt.sceneGraphService.setEulerAngles(this,0,0,r),this}},{key:"setLocalEulerAngles",value:function(r){return Vt.sceneGraphService.setLocalEulerAngles(this,0,0,r),this}},{key:"rotateLocal",value:function(r,i,a){return be(i)&&be(a)?Vt.sceneGraphService.rotateLocal(this,0,0,r):Vt.sceneGraphService.rotateLocal(this,r,i,a),this}},{key:"rotate",value:function(r,i,a){return be(i)&&be(a)?Vt.sceneGraphService.rotate(this,0,0,r):Vt.sceneGraphService.rotate(this,r,i,a),this}},{key:"setRotation",value:function(r,i,a,s){return Vt.sceneGraphService.setRotation(this,r,i,a,s),this}},{key:"setLocalRotation",value:function(r,i,a,s){return Vt.sceneGraphService.setLocalRotation(this,r,i,a,s),this}},{key:"setLocalSkew",value:function(r,i){return Vt.sceneGraphService.setLocalSkew(this,r,i),this}},{key:"getRotation",value:function(){return Vt.sceneGraphService.getRotation(this)}},{key:"getLocalRotation",value:function(){return Vt.sceneGraphService.getLocalRotation(this)}},{key:"getLocalSkew",value:function(){return Vt.sceneGraphService.getLocalSkew(this)}},{key:"getLocalTransform",value:function(){return Vt.sceneGraphService.getLocalTransform(this)}},{key:"getWorldTransform",value:function(){return Vt.sceneGraphService.getWorldTransform(this)}},{key:"setLocalTransform",value:function(r){return Vt.sceneGraphService.setLocalTransform(this,r),this}},{key:"resetLocalTransform",value:function(){Vt.sceneGraphService.resetLocalTransform(this)}},{key:"getAnimations",value:function(){return this.activeAnimations}},{key:"animate",value:function(r,i){var a,s=(a=this.ownerDocument)===null||a===void 0?void 0:a.timeline;return s?s.play(this,r,i):null}},{key:"isVisible",value:function(){var r;return((r=this.parsedStyle)===null||r===void 0?void 0:r.visibility)!=="hidden"}},{key:"interactive",get:function(){return this.isInteractive()},set:function(r){this.style.pointerEvents=r?"auto":"none"}},{key:"isInteractive",value:function(){var r;return((r=this.parsedStyle)===null||r===void 0?void 0:r.pointerEvents)!=="none"}},{key:"isCulled",value:function(){return!!(this.cullable&&this.cullable.enable&&!this.cullable.visible)}},{key:"toFront",value:function(){return this.parentNode&&(this.style.zIndex=Math.max.apply(Math,(0,N.Z)(this.parentNode.children.map(function(r){return Number(r.style.zIndex)})))+1),this}},{key:"toBack",value:function(){return this.parentNode&&(this.style.zIndex=Math.min.apply(Math,(0,N.Z)(this.parentNode.children.map(function(r){return Number(r.style.zIndex)})))-1),this}},{key:"getConfig",value:function(){return this.config}},{key:"attr",value:function(){for(var r=this,i=arguments.length,a=new Array(i),s=0;s1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return this.setPosition(r,i,a),this}},{key:"move",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return this.setPosition(r,i,a),this}},{key:"setZIndex",value:function(r){return this.style.zIndex=r,this}}])}(oT);bn.PARSED_STYLE_LIST=new Set(["class","className","clipPath","cursor","display","draggable","droppable","fill","fillOpacity","fillRule","filter","increasedLineWidthForHitTesting","lineCap","lineDash","lineDashOffset","lineJoin","lineWidth","miterLimit","hitArea","offsetDistance","offsetPath","offsetX","offsetY","opacity","pointerEvents","shadowColor","shadowType","shadowBlur","shadowOffsetX","shadowOffsetY","stroke","strokeOpacity","strokeWidth","strokeLinecap","strokeLineJoin","strokeDasharray","strokeDashoffset","transform","transformOrigin","textTransform","visibility","zIndex"]);var ta=function(n){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return(0,C.Z)(this,t),I(this,t,[(0,F.Z)({type:Dt.CIRCLE},e)])}return(0,L.Z)(t,n),(0,T.Z)(t)}(bn);ta.PARSED_STYLE_LIST=new Set([].concat((0,N.Z)(bn.PARSED_STYLE_LIST),["cx","cy","cz","r","isBillboard","isSizeAttenuation"]));var uT=["style"],hf=function(n){function t(){var e,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=r.style,a=(0,hs.Z)(r,uT);return(0,C.Z)(this,t),e=I(this,t,[(0,F.Z)({style:i},a)]),e.isCustomElement=!0,e}return(0,L.Z)(t,n),(0,T.Z)(t)}(bn);hf.PARSED_STYLE_LIST=new Set(["class","className","clipPath","cursor","draggable","droppable","opacity","pointerEvents","transform","transformOrigin","zIndex","visibility"]);var al=function(n){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return(0,C.Z)(this,t),I(this,t,[(0,F.Z)({type:Dt.ELLIPSE},e)])}return(0,L.Z)(t,n),(0,T.Z)(t)}(bn);al.PARSED_STYLE_LIST=new Set([].concat((0,N.Z)(bn.PARSED_STYLE_LIST),["cx","cy","cz","rx","ry","isBillboard","isSizeAttenuation"]));var hT=function(n){function t(){return(0,C.Z)(this,t),I(this,t,[{type:Dt.FRAGMENT}])}return(0,L.Z)(t,n),(0,T.Z)(t)}(bn);hT.PARSED_STYLE_LIST=new Set(["class","className"]);var rr=function(n){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return(0,C.Z)(this,t),I(this,t,[(0,F.Z)({type:Dt.GROUP},e)])}return(0,L.Z)(t,n),(0,T.Z)(t)}(bn);rr.PARSED_STYLE_LIST=new Set(["class","className","clipPath","cursor","draggable","droppable","opacity","pointerEvents","transform","transformOrigin","zIndex","visibility"]);var dT=["style"],lo=function(n){function t(){var e,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=r.style,a=(0,hs.Z)(r,dT);return(0,C.Z)(this,t),e=I(this,t,[(0,F.Z)({type:Dt.HTML,style:i},a)]),e.cullable.enable=!1,e}return(0,L.Z)(t,n),(0,T.Z)(t,[{key:"getDomElement",value:function(){return this.parsedStyle.$el}},{key:"getClientRects",value:function(){return[this.getBoundingClientRect()]}},{key:"getLocalBounds",value:function(){if(this.parentNode){var r=te(oe(),this.parentNode.getWorldTransform()),i=this.getBounds();if(!mn.isEmpty(i)){var a=new mn;return a.setFromTransformedAABB(i,r),a}}return this.getBounds()}}])}(bn);lo.PARSED_STYLE_LIST=new Set([].concat((0,N.Z)(bn.PARSED_STYLE_LIST),["x","y","$el","innerHTML","width","height"]));var sl=function(n){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return(0,C.Z)(this,t),I(this,t,[(0,F.Z)({type:Dt.IMAGE},e)])}return(0,L.Z)(t,n),(0,T.Z)(t)}(bn);sl.PARSED_STYLE_LIST=new Set([].concat((0,N.Z)(bn.PARSED_STYLE_LIST),["x","y","z","src","width","height","isBillboard","billboardRotation","isSizeAttenuation","keepAspectRatio"]));var fT=["style"],ws=function(n){function t(){var e,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=r.style,a=(0,hs.Z)(r,fT);(0,C.Z)(this,t),e=I(this,t,[(0,F.Z)({type:Dt.LINE,style:(0,F.Z)({x1:0,y1:0,x2:0,y2:0,z1:0,z2:0},i)},a)]),e.markerStartAngle=0,e.markerEndAngle=0;var s=e.parsedStyle,o=s.markerStart,l=s.markerEnd;return o&&Ue(o)&&(e.markerStartAngle=o.getLocalEulerAngles(),e.appendChild(o)),l&&Ue(l)&&(e.markerEndAngle=l.getLocalEulerAngles(),e.appendChild(l)),e.transformMarker(!0),e.transformMarker(!1),e}return(0,L.Z)(t,n),(0,T.Z)(t,[{key:"attributeChangedCallback",value:function(r,i,a,s,o){r==="x1"||r==="y1"||r==="x2"||r==="y2"||r==="markerStartOffset"||r==="markerEndOffset"?(this.transformMarker(!0),this.transformMarker(!1)):r==="markerStart"?(s&&Ue(s)&&(this.markerStartAngle=0,s.remove()),o&&Ue(o)&&(this.markerStartAngle=o.getLocalEulerAngles(),this.appendChild(o),this.transformMarker(!0))):r==="markerEnd"&&(s&&Ue(s)&&(this.markerEndAngle=0,s.remove()),o&&Ue(o)&&(this.markerEndAngle=o.getLocalEulerAngles(),this.appendChild(o),this.transformMarker(!1)))}},{key:"transformMarker",value:function(r){var i=this.parsedStyle,a=i.markerStart,s=i.markerEnd,o=i.markerStartOffset,l=i.markerEndOffset,c=i.x1,u=i.x2,h=i.y1,d=i.y2,f=r?a:s;if(!(!f||!Ue(f))){var v=0,g,p,y,b,E,O;r?(y=c,b=h,g=u-c,p=d-h,E=o||0,O=this.markerStartAngle):(y=u,b=d,g=c-u,p=h-d,E=l||0,O=this.markerEndAngle),v=Math.atan2(p,g),f.setLocalEulerAngles(v*180/Math.PI+O),f.setLocalPosition(y+Math.cos(v)*E,b+Math.sin(v)*E)}}},{key:"getPoint",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,a=this.parsedStyle,s=a.x1,o=a.y1,l=a.x2,c=a.y2,u=Xi(s,o,l,c,r),h=u.x,d=u.y,f=wn(xt(),zt(h,d,0),i?this.getWorldTransform():this.getLocalTransform());return new pr(f[0],f[1])}},{key:"getPointAtLength",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return this.getPoint(r/this.getTotalLength(),i)}},{key:"getTotalLength",value:function(){var r=this.parsedStyle,i=r.x1,a=r.y1,s=r.x2,o=r.y2;return _g(i,a,s,o)}}])}(bn);ws.PARSED_STYLE_LIST=new Set([].concat((0,N.Z)(bn.PARSED_STYLE_LIST),["x1","y1","x2","y2","z1","z2","isBillboard","isSizeAttenuation","markerStart","markerEnd","markerStartOffset","markerEndOffset"]));var vT=["style"],ii=function(n){function t(){var e,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=r.style,a=(0,hs.Z)(r,vT);(0,C.Z)(this,t),e=I(this,t,[(0,F.Z)({type:Dt.PATH,style:i,initialParsedStyle:{miterLimit:4,d:(0,F.Z)({},$g)}},a)]),e.markerStartAngle=0,e.markerEndAngle=0,e.markerMidList=[];var s=e.parsedStyle,o=s.markerStart,l=s.markerEnd,c=s.markerMid;return o&&Ue(o)&&(e.markerStartAngle=o.getLocalEulerAngles(),e.appendChild(o)),c&&Ue(c)&&e.placeMarkerMid(c),l&&Ue(l)&&(e.markerEndAngle=l.getLocalEulerAngles(),e.appendChild(l)),e.transformMarker(!0),e.transformMarker(!1),e}return(0,L.Z)(t,n),(0,T.Z)(t,[{key:"attributeChangedCallback",value:function(r,i,a,s,o){r==="d"?(this.transformMarker(!0),this.transformMarker(!1),this.placeMarkerMid(this.parsedStyle.markerMid)):r==="markerStartOffset"||r==="markerEndOffset"?(this.transformMarker(!0),this.transformMarker(!1)):r==="markerStart"?(s&&Ue(s)&&(this.markerStartAngle=0,s.remove()),o&&Ue(o)&&(this.markerStartAngle=o.getLocalEulerAngles(),this.appendChild(o),this.transformMarker(!0))):r==="markerEnd"?(s&&Ue(s)&&(this.markerEndAngle=0,s.remove()),o&&Ue(o)&&(this.markerEndAngle=o.getLocalEulerAngles(),this.appendChild(o),this.transformMarker(!1))):r==="markerMid"&&this.placeMarkerMid(o)}},{key:"transformMarker",value:function(r){var i=this.parsedStyle,a=i.markerStart,s=i.markerEnd,o=i.markerStartOffset,l=i.markerEndOffset,c=r?a:s;if(!(!c||!Ue(c))){var u=0,h,d,f,v,g,p;if(r){var y=this.getStartTangent(),b=(0,W.Z)(y,2),E=b[0],O=b[1];f=O[0],v=O[1],h=E[0]-O[0],d=E[1]-O[1],g=o||0,p=this.markerStartAngle}else{var k=this.getEndTangent(),R=(0,W.Z)(k,2),z=R[0],B=R[1];f=B[0],v=B[1],h=z[0]-B[0],d=z[1]-B[1],g=l||0,p=this.markerEndAngle}u=Math.atan2(d,h),c.setLocalEulerAngles(u*180/Math.PI+p),c.setLocalPosition(f+Math.cos(u)*g,v+Math.sin(u)*g)}}},{key:"placeMarkerMid",value:function(r){var i=this.parsedStyle.d.segments;if(this.markerMidList.forEach(function(u){u.remove()}),r&&Ue(r))for(var a=1;a1&&arguments[1]!==void 0?arguments[1]:!1,a=this.parsedStyle.d.absolutePath,s=m2(a,r),o=s.x,l=s.y,c=wn(xt(),zt(o,l,0),i?this.getWorldTransform():this.getLocalTransform());return new pr(c[0],c[1])}},{key:"getPoint",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return this.getPointAtLength(r*Hd(this),i)}},{key:"getStartTangent",value:function(){var r=this.parsedStyle.d.segments,i=[];if(r.length>1){var a=r[0].currentPoint,s=r[1].currentPoint,o=r[1].startTangent;i=[],o?(i.push([a[0]-o[0],a[1]-o[1]]),i.push([a[0],a[1]])):(i.push([s[0],s[1]]),i.push([a[0],a[1]]))}return i}},{key:"getEndTangent",value:function(){var r=this.parsedStyle.d.segments,i=r.length,a=[];if(i>1){var s=r[i-2].currentPoint,o=r[i-1].currentPoint,l=r[i-1].endTangent;a=[],l?(a.push([o[0]-l[0],o[1]-l[1]]),a.push([o[0],o[1]])):(a.push([s[0],s[1]]),a.push([o[0],o[1]]))}return a}}])}(bn);ii.PARSED_STYLE_LIST=new Set([].concat((0,N.Z)(bn.PARSED_STYLE_LIST),["d","markerStart","markerMid","markerEnd","markerStartOffset","markerEndOffset","isBillboard","isSizeAttenuation"]));var gT=["style"],Ss=function(n){function t(){var e,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=r.style,a=(0,hs.Z)(r,gT);(0,C.Z)(this,t),e=I(this,t,[(0,F.Z)({type:Dt.POLYGON,style:i,initialParsedStyle:{points:{points:[],totalLength:0,segments:[]},miterLimit:4,isClosed:!0}},a)]),e.markerStartAngle=0,e.markerEndAngle=0,e.markerMidList=[];var s=e.parsedStyle,o=s.markerStart,l=s.markerEnd,c=s.markerMid;return o&&Ue(o)&&(e.markerStartAngle=o.getLocalEulerAngles(),e.appendChild(o)),c&&Ue(c)&&e.placeMarkerMid(c),l&&Ue(l)&&(e.markerEndAngle=l.getLocalEulerAngles(),e.appendChild(l)),e.transformMarker(!0),e.transformMarker(!1),e}return(0,L.Z)(t,n),(0,T.Z)(t,[{key:"attributeChangedCallback",value:function(r,i,a,s,o){r==="points"?(this.transformMarker(!0),this.transformMarker(!1),this.placeMarkerMid(this.parsedStyle.markerMid)):r==="markerStartOffset"||r==="markerEndOffset"?(this.transformMarker(!0),this.transformMarker(!1)):r==="markerStart"?(s&&Ue(s)&&(this.markerStartAngle=0,s.remove()),o&&Ue(o)&&(this.markerStartAngle=o.getLocalEulerAngles(),this.appendChild(o),this.transformMarker(!0))):r==="markerEnd"?(s&&Ue(s)&&(this.markerEndAngle=0,s.remove()),o&&Ue(o)&&(this.markerEndAngle=o.getLocalEulerAngles(),this.appendChild(o),this.transformMarker(!1))):r==="markerMid"&&this.placeMarkerMid(o)}},{key:"transformMarker",value:function(r){var i=this.parsedStyle,a=i.markerStart,s=i.markerEnd,o=i.markerStartOffset,l=i.markerEndOffset,c=i.points,u=c||{},h=u.points,d=r?a:s;if(!(!d||!Ue(d)||!h)){var f=0,v,g,p,y,b,E;if(p=h[0][0],y=h[0][1],r)v=h[1][0]-h[0][0],g=h[1][1]-h[0][1],b=o||0,E=this.markerStartAngle;else{var O=h.length;this.parsedStyle.isClosed?(v=h[O-1][0]-h[0][0],g=h[O-1][1]-h[0][1]):(p=h[O-1][0],y=h[O-1][1],v=h[O-2][0]-h[O-1][0],g=h[O-2][1]-h[O-1][1]),b=l||0,E=this.markerEndAngle}f=Math.atan2(g,v),d.setLocalEulerAngles(f*180/Math.PI+E),d.setLocalPosition(p+Math.cos(f)*b,y+Math.sin(f)*b)}}},{key:"placeMarkerMid",value:function(r){var i=this.parsedStyle.points,a=i||{},s=a.points;if(this.markerMidList.forEach(function(h){h.remove()}),this.markerMidList=[],r&&Ue(r)&&s)for(var o=1;o<(this.parsedStyle.isClosed?s.length:s.length-1);o++){var l=s[o][0],c=s[o][1],u=o===1?r:r.cloneNode(!0);this.markerMidList.push(u),this.appendChild(u),u.setLocalPosition(l,c)}}}])}(bn);Ss.PARSED_STYLE_LIST=new Set([].concat((0,N.Z)(bn.PARSED_STYLE_LIST),["points","markerStart","markerMid","markerEnd","markerStartOffset","markerEndOffset","isClosed","isBillboard","isSizeAttenuation"]));var pT=["style"],kc=function(n){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=e.style,i=(0,hs.Z)(e,pT);return(0,C.Z)(this,t),I(this,t,[(0,F.Z)({type:Dt.POLYLINE,style:r,initialParsedStyle:{points:{points:[],totalLength:0,segments:[]},miterLimit:4,isClosed:!1}},i)])}return(0,L.Z)(t,n),(0,T.Z)(t,[{key:"getTotalLength",value:function(){return iM(this)}},{key:"getPointAtLength",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return this.getPoint(r/this.getTotalLength(),i)}},{key:"getPoint",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,a=this.parsedStyle.points.points;if(this.parsedStyle.points.segments.length===0){var s=[],o=0,l,c,u=this.getTotalLength();a.forEach(function(y,b){a[b+1]&&(l=[0,0],l[0]=o/u,c=_g(y[0],y[1],a[b+1][0],a[b+1][1]),o+=c,l[1]=o/u,s.push(l))}),this.parsedStyle.points.segments=s}var h=0,d=0;this.parsedStyle.points.segments.forEach(function(y,b){r>=y[0]&&r<=y[1]&&(h=(r-y[0])/(y[1]-y[0]),d=b)});var f=Xi(a[d][0],a[d][1],a[d+1][0],a[d+1][1],h),v=f.x,g=f.y,p=wn(xt(),zt(v,g,0),i?this.getWorldTransform():this.getLocalTransform());return new pr(p[0],p[1])}},{key:"getStartTangent",value:function(){var r=this.parsedStyle.points.points,i=[];return i.push([r[1][0],r[1][1]]),i.push([r[0][0],r[0][1]]),i}},{key:"getEndTangent",value:function(){var r=this.parsedStyle.points.points,i=r.length-1,a=[];return a.push([r[i-1][0],r[i-1][1]]),a.push([r[i][0],r[i][1]]),a}}])}(Ss);kc.PARSED_STYLE_LIST=new Set([].concat((0,N.Z)(Ss.PARSED_STYLE_LIST),["points","markerStart","markerMid","markerEnd","markerStartOffset","markerEndOffset","isBillboard"]));var mr=function(n){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return(0,C.Z)(this,t),I(this,t,[(0,F.Z)({type:Dt.RECT},e)])}return(0,L.Z)(t,n),(0,T.Z)(t)}(bn);mr.PARSED_STYLE_LIST=new Set([].concat((0,N.Z)(bn.PARSED_STYLE_LIST),["x","y","z","width","height","isBillboard","isSizeAttenuation","radius"]));var mT=["style"],Ms=function(n){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=e.style,i=(0,hs.Z)(e,mT);return(0,C.Z)(this,t),I(this,t,[(0,F.Z)({type:Dt.TEXT,style:(0,F.Z)({fill:"black"},r)},i)])}return(0,L.Z)(t,n),(0,T.Z)(t,[{key:"getComputedTextLength",value:function(){var r;return this.getGeometryBounds(),((r=this.parsedStyle.metrics)===null||r===void 0?void 0:r.maxLineWidth)||0}},{key:"getLineBoundingRects",value:function(){var r;return this.getGeometryBounds(),((r=this.parsedStyle.metrics)===null||r===void 0?void 0:r.lineMetrics)||[]}},{key:"isOverflowing",value:function(){return this.getGeometryBounds(),!!this.parsedStyle.isOverflowing}}])}(bn);Ms.PARSED_STYLE_LIST=new Set([].concat((0,N.Z)(bn.PARSED_STYLE_LIST),["x","y","z","isBillboard","billboardRotation","isSizeAttenuation","text","textAlign","textBaseline","fontStyle","fontSize","fontFamily","fontWeight","fontVariant","lineHeight","letterSpacing","leading","wordWrap","wordWrapWidth","maxLines","textOverflow","isOverflowing","textPath","textDecorationLine","textDecorationColor","textDecorationStyle","textPathSide","textPathStartOffset","metrics","dx","dy"]));var yT=function(){function n(){(0,C.Z)(this,n),this.registry={},this.define(Dt.CIRCLE,ta),this.define(Dt.ELLIPSE,al),this.define(Dt.RECT,mr),this.define(Dt.IMAGE,sl),this.define(Dt.LINE,ws),this.define(Dt.GROUP,rr),this.define(Dt.PATH,ii),this.define(Dt.POLYGON,Ss),this.define(Dt.POLYLINE,kc),this.define(Dt.TEXT,Ms),this.define(Dt.HTML,lo)}return(0,T.Z)(n,[{key:"define",value:function(e,r){this.registry[e]=r}},{key:"get",value:function(e){return this.registry[e]}}])}(),l9={number:function(t){return new cn(t)},percent:function(t){return new cn(t,"%")},px:function(t){return new cn(t,"px")},em:function(t){return new cn(t,"em")},rem:function(t){return new cn(t,"rem")},deg:function(t){return new cn(t,"deg")},grad:function(t){return new cn(t,"grad")},rad:function(t){return new cn(t,"rad")},turn:function(t){return new cn(t,"turn")},s:function(t){return new cn(t,"s")},ms:function(t){return new cn(t,"ms")},registerProperty:function(t){var e=t.name,r=t.inherits,i=t.interpolable,a=t.initialValue,s=t.syntax;Vt.styleValueRegistry.registerMetadata({n:e,inh:r,int:i,d:a,syntax:s})},registerLayout:function(t,e){Vt.layoutRegistry.registerLayout(t,e)}},rm=function(n){function t(){var e;(0,C.Z)(this,t),e=I(this,t),e.defaultView=null,e.ownerDocument=null,e.nodeName="document";try{e.timeline=new Vt.AnimationTimeline(e)}catch(i){}var r={};return Jd.forEach(function(i){var a=i.n,s=i.inh,o=i.d;s&&o&&(r[a]=ue(o)?o(Dt.GROUP):o)}),e.documentElement=new rr({id:"g-root",style:r}),e.documentElement.ownerDocument=e,e.documentElement.parentNode=e,e.childNodes=[e.documentElement],e}return(0,L.Z)(t,n),(0,T.Z)(t,[{key:"children",get:function(){return this.childNodes}},{key:"childElementCount",get:function(){return this.childNodes.length}},{key:"firstElementChild",get:function(){return this.firstChild}},{key:"lastElementChild",get:function(){return this.lastChild}},{key:"createElement",value:function(r,i){if(r==="svg")return this.documentElement;var a=this.defaultView.customElements.get(r);a||(console.warn("Unsupported tagName: ",r),a=r==="tspan"?Ms:rr);var s=new a(i);return s.ownerDocument=this,s}},{key:"createElementNS",value:function(r,i,a){return this.createElement(i,a)}},{key:"cloneNode",value:function(r){throw new Error(sn)}},{key:"destroy",value:function(){try{this.documentElement.destroyChildren(),this.timeline.destroy()}catch(r){}}},{key:"elementsFromBBox",value:function(r,i,a,s){var o=this.defaultView.context.rBushRoot,l=o.search({minX:r,minY:i,maxX:a,maxY:s}),c=[];return l.forEach(function(u){var h=u.displayObject,d=h.parsedStyle.pointerEvents,f=d===void 0?"auto":d,v=["auto","visiblepainted","visiblefill","visiblestroke","visible"].includes(f);(!v||v&&h.isVisible())&&!h.isCulled()&&h.isInteractive()&&c.push(h)}),c.sort(function(u,h){return h.sortable.renderOrder-u.sortable.renderOrder}),c}},{key:"elementFromPointSync",value:function(r,i){var a=this.defaultView.canvas2Viewport({x:r,y:i}),s=a.x,o=a.y,l=this.defaultView.getConfig(),c=l.width,u=l.height;if(s<0||o<0||s>c||o>u)return null;var h=this.defaultView.viewport2Client({x:s,y:o}),d=h.x,f=h.y,v=this.defaultView.getRenderingService().hooks.pickSync.call({topmost:!0,position:{x:r,y:i,viewportX:s,viewportY:o,clientX:d,clientY:f},picked:[]}),g=v.picked;return g&&g[0]||this.documentElement}},{key:"elementFromPoint",value:function(){var e=(0,La.Z)((0,Nr.Z)().mark(function i(a,s){var o,l,c,u,h,d,f,v,g,p,y;return(0,Nr.Z)().wrap(function(b){for(;;)switch(b.prev=b.next){case 0:if(o=this.defaultView.canvas2Viewport({x:a,y:s}),l=o.x,c=o.y,u=this.defaultView.getConfig(),h=u.width,d=u.height,!(l<0||c<0||l>h||c>d)){b.next=1;break}return b.abrupt("return",null);case 1:return f=this.defaultView.viewport2Client({x:l,y:c}),v=f.x,g=f.y,b.next=2,this.defaultView.getRenderingService().hooks.pick.promise({topmost:!0,position:{x:a,y:s,viewportX:l,viewportY:c,clientX:v,clientY:g},picked:[]});case 2:return p=b.sent,y=p.picked,b.abrupt("return",y&&y[0]||this.documentElement);case 3:case"end":return b.stop()}},i,this)}));function r(i,a){return e.apply(this,arguments)}return r}()},{key:"elementsFromPointSync",value:function(r,i){var a=this.defaultView.canvas2Viewport({x:r,y:i}),s=a.x,o=a.y,l=this.defaultView.getConfig(),c=l.width,u=l.height;if(s<0||o<0||s>c||o>u)return[];var h=this.defaultView.viewport2Client({x:s,y:o}),d=h.x,f=h.y,v=this.defaultView.getRenderingService().hooks.pickSync.call({topmost:!1,position:{x:r,y:i,viewportX:s,viewportY:o,clientX:d,clientY:f},picked:[]}),g=v.picked;return g[g.length-1]!==this.documentElement&&g.push(this.documentElement),g}},{key:"elementsFromPoint",value:function(){var e=(0,La.Z)((0,Nr.Z)().mark(function i(a,s){var o,l,c,u,h,d,f,v,g,p,y;return(0,Nr.Z)().wrap(function(b){for(;;)switch(b.prev=b.next){case 0:if(o=this.defaultView.canvas2Viewport({x:a,y:s}),l=o.x,c=o.y,u=this.defaultView.getConfig(),h=u.width,d=u.height,!(l<0||c<0||l>h||c>d)){b.next=1;break}return b.abrupt("return",[]);case 1:return f=this.defaultView.viewport2Client({x:l,y:c}),v=f.x,g=f.y,b.next=2,this.defaultView.getRenderingService().hooks.pick.promise({topmost:!1,position:{x:a,y:s,viewportX:l,viewportY:c,clientX:v,clientY:g},picked:[]});case 2:return p=b.sent,y=p.picked,y[y.length-1]!==this.documentElement&&y.push(this.documentElement),b.abrupt("return",y);case 3:case"end":return b.stop()}},i,this)}));function r(i,a){return e.apply(this,arguments)}return r}()},{key:"appendChild",value:function(r,i){throw new Error(no)}},{key:"insertBefore",value:function(r,i){throw new Error(no)}},{key:"removeChild",value:function(r,i){throw new Error(no)}},{key:"replaceChild",value:function(r,i,a){throw new Error(no)}},{key:"append",value:function(){throw new Error(no)}},{key:"prepend",value:function(){throw new Error(no)}},{key:"getElementById",value:function(r){return this.documentElement.getElementById(r)}},{key:"getElementsByName",value:function(r){return this.documentElement.getElementsByName(r)}},{key:"getElementsByTagName",value:function(r){return this.documentElement.getElementsByTagName(r)}},{key:"getElementsByClassName",value:function(r){return this.documentElement.getElementsByClassName(r)}},{key:"querySelector",value:function(r){return this.documentElement.querySelector(r)}},{key:"querySelectorAll",value:function(r){return this.documentElement.querySelectorAll(r)}},{key:"find",value:function(r){return this.documentElement.find(r)}},{key:"findAll",value:function(r){return this.documentElement.findAll(r)}}])}(Tn),im=function(){function n(t){(0,C.Z)(this,n),this.strategies=t}return(0,T.Z)(n,[{key:"apply",value:function(e){var r=e.config,i=e.camera,a=e.renderingService,s=e.renderingContext,o=this.strategies;a.hooks.cull.tap(n.tag,function(l){if(l){var c,u=l.cullable;if(o.length===0?u.visible=s.unculledEntities.indexOf(l.entity)>-1:u.visible=o.every(function(d){return d.isVisible(i,l)}),!l.isCulled()&&l.isVisible())return l;var h=((c=r.future)===null||c===void 0?void 0:c.experimentalCancelEventPropagation)===!0;return l.dispatchEvent(new qn(Be.CULLED),h,h),null}return l}),a.hooks.afterRender.tap(n.tag,function(l){l.cullable.visibilityPlaneMask=-1})}}])}();im.tag="Culling";var am=function(){function n(){var t=this;(0,C.Z)(this,n),this.autoPreventDefault=!1,this.rootPointerEvent=new Ac(null),this.rootWheelEvent=new of(null),this.onPointerMove=function(e){var r,i=(r=t.context.renderingContext.root)===null||r===void 0||(r=r.ownerDocument)===null||r===void 0?void 0:r.defaultView;if(!(i.supportsTouchEvents&&e.pointerType==="touch")){var a=t.normalizeToPointerEvent(e,i),s=us(a),o;try{for(s.s();!(o=s.n()).done;){var l=o.value,c=t.bootstrapEvent(t.rootPointerEvent,l,i,e);t.context.eventService.mapEvent(c)}}catch(u){s.e(u)}finally{s.f()}t.setCursor(t.context.eventService.cursor)}},this.onClick=function(e){var r,i=(r=t.context.renderingContext.root)===null||r===void 0||(r=r.ownerDocument)===null||r===void 0?void 0:r.defaultView,a=t.normalizeToPointerEvent(e,i),s=us(a),o;try{for(s.s();!(o=s.n()).done;){var l=o.value,c=t.bootstrapEvent(t.rootPointerEvent,l,i,e);t.context.eventService.mapEvent(c)}}catch(u){s.e(u)}finally{s.f()}t.setCursor(t.context.eventService.cursor)}}return(0,T.Z)(n,[{key:"apply",value:function(e){var r=this;this.context=e;var i=e.renderingService,a=this.context.renderingContext.root.ownerDocument.defaultView;this.context.eventService.setPickHandler(function(s){var o=r.context.renderingService.hooks.pickSync.call({position:s,picked:[],topmost:!0}),l=o.picked;return l[0]||null}),i.hooks.pointerWheel.tap(n.tag,function(s){var o=r.normalizeWheelEvent(s);r.context.eventService.mapEvent(o)}),i.hooks.pointerDown.tap(n.tag,function(s){if(!(a.supportsTouchEvents&&s.pointerType==="touch")){var o=r.normalizeToPointerEvent(s,a);if(r.autoPreventDefault&&o[0].isNormalized){var l=s.cancelable||!("cancelable"in s);l&&s.preventDefault()}var c=us(o),u;try{for(c.s();!(u=c.n()).done;){var h=u.value,d=r.bootstrapEvent(r.rootPointerEvent,h,a,s);r.context.eventService.mapEvent(d)}}catch(f){c.e(f)}finally{c.f()}r.setCursor(r.context.eventService.cursor)}}),i.hooks.pointerUp.tap(n.tag,function(s){if(!(a.supportsTouchEvents&&s.pointerType==="touch")){var o=r.context.contextService.getDomElement(),l=r.context.eventService.isNativeEventFromCanvas(o,s),c=l?"":"outside",u=r.normalizeToPointerEvent(s,a),h=us(u),d;try{for(h.s();!(d=h.n()).done;){var f=d.value,v=r.bootstrapEvent(r.rootPointerEvent,f,a,s);v.type+=c,r.context.eventService.mapEvent(v)}}catch(g){h.e(g)}finally{h.f()}r.setCursor(r.context.eventService.cursor)}}),i.hooks.pointerMove.tap(n.tag,this.onPointerMove),i.hooks.pointerOver.tap(n.tag,this.onPointerMove),i.hooks.pointerOut.tap(n.tag,this.onPointerMove),i.hooks.click.tap(n.tag,this.onClick),i.hooks.pointerCancel.tap(n.tag,function(s){var o=r.normalizeToPointerEvent(s,a),l=us(o),c;try{for(l.s();!(c=l.n()).done;){var u=c.value,h=r.bootstrapEvent(r.rootPointerEvent,u,a,s);r.context.eventService.mapEvent(h)}}catch(d){l.e(d)}finally{l.f()}r.setCursor(r.context.eventService.cursor)})}},{key:"bootstrapEvent",value:function(e,r,i,a){e.view=i,e.originalEvent=null,e.nativeEvent=a,e.pointerId=r.pointerId,e.width=r.width,e.height=r.height,e.isPrimary=r.isPrimary,e.pointerType=r.pointerType,e.pressure=r.pressure,e.tangentialPressure=r.tangentialPressure,e.tiltX=r.tiltX,e.tiltY=r.tiltY,e.twist=r.twist,this.transferMouseData(e,r);var s=this.context.eventService.client2Viewport({x:r.clientX,y:r.clientY}),o=s.x,l=s.y;e.viewport.x=o,e.viewport.y=l;var c=this.context.eventService.viewport2Canvas(e.viewport),u=c.x,h=c.y;return e.canvas.x=u,e.canvas.y=h,e.global.copyFrom(e.canvas),e.offset.copyFrom(e.canvas),e.isTrusted=a.isTrusted,e.type==="pointerleave"&&(e.type="pointerout"),e.type.startsWith("mouse")&&(e.type=e.type.replace("mouse","pointer")),e.type.startsWith("touch")&&(e.type=eA[e.type]||e.type),e}},{key:"normalizeWheelEvent",value:function(e){var r=this.rootWheelEvent;this.transferMouseData(r,e),r.deltaMode=e.deltaMode,r.deltaX=e.deltaX,r.deltaY=e.deltaY,r.deltaZ=e.deltaZ;var i=this.context.eventService.client2Viewport({x:e.clientX,y:e.clientY}),a=i.x,s=i.y;r.viewport.x=a,r.viewport.y=s;var o=this.context.eventService.viewport2Canvas(r.viewport),l=o.x,c=o.y;return r.canvas.x=l,r.canvas.y=c,r.global.copyFrom(r.canvas),r.offset.copyFrom(r.canvas),r.nativeEvent=e,r.type=e.type,r}},{key:"transferMouseData",value:function(e,r){e.isTrusted=r.isTrusted,e.srcElement=r.srcElement,e.timeStamp=nf.now(),e.type=r.type,e.altKey=r.altKey,e.metaKey=r.metaKey,e.shiftKey=r.shiftKey,e.ctrlKey=r.ctrlKey,e.button=r.button,e.buttons=r.buttons,e.client.x=r.clientX,e.client.y=r.clientY,e.movement.x=r.movementX,e.movement.y=r.movementY,e.page.x=r.pageX,e.page.y=r.pageY,e.screen.x=r.screenX,e.screen.y=r.screenY,e.relatedTarget=null}},{key:"setCursor",value:function(e){this.context.contextService.applyCursorStyle(e||this.context.config.cursor||"default")}},{key:"normalizeToPointerEvent",value:function(e,r){var i=[];if(r.isTouchEvent(e))for(var a=0;a-1,l=0,c=a.length;l1&&arguments[1]!==void 0?arguments[1]:!1;if(e.isConnected){var i=e.rBushNode;i.aabb&&this.rBush.remove(i.aabb);var a=e.getRenderBounds();if(a){var s=e.renderable;r&&(s.dirtyRenderBounds||(s.dirtyRenderBounds=new mn),s.dirtyRenderBounds.update(a.center,a.halfExtents));var o=a.getMin(),l=(0,W.Z)(o,2),c=l[0],u=l[1],h=a.getMax(),d=(0,W.Z)(h,2),f=d[0],v=d[1];i.aabb||(i.aabb={}),i.aabb.displayObject=e,i.aabb.minX=c,i.aabb.minY=u,i.aabb.maxX=f,i.aabb.maxY=v}if(i.aabb&&!isNaN(i.aabb.maxX)&&!isNaN(i.aabb.maxX)&&!isNaN(i.aabb.minX)&&!isNaN(i.aabb.minY))return i.aabb}}},{key:"syncRTree",value:function(){var e=this,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if(!(!r&&(this.syncing||this.syncTasks.size===0))){this.syncing=!0;var i=[],a=new Set,s=function(l){if(!a.has(l)&&l.renderable){var c=e.syncNode(l,r);c&&(i.push(c),a.add(l))}};this.syncTasks.forEach(function(o,l){o&&l.forEach(s);for(var c=l;c;)s(c),c=c.parentElement}),this.rBush.load(i),i.length=0,this.syncing=!1}}}])}();sm.tag="Prepare";function c9(n){return!!n.document}var ai=function(n){return n.READY="ready",n.BEFORE_RENDER="beforerender",n.RERENDER="rerender",n.AFTER_RENDER="afterrender",n.BEFORE_DESTROY="beforedestroy",n.AFTER_DESTROY="afterdestroy",n.RESIZE="resize",n.DIRTY_RECTANGLE="dirtyrectangle",n.RENDERER_CHANGED="rendererchanged",n}({}),om=500,ET=.1,wT=1e3,Pc=new qn(Be.MOUNTED),Rc=new qn(Be.UNMOUNTED),df=new qn(ai.BEFORE_RENDER),lm=new qn(ai.RERENDER),ff=new qn(ai.AFTER_RENDER),vf=function(n){function t(e){var r;(0,C.Z)(this,t),r=I(this,t),r.Element=bn,r.inited=!1,r.context={};var i=e.container,a=e.canvas,s=e.renderer,o=e.width,l=e.height,c=e.background,u=e.cursor,h=e.supportsMutipleCanvasesInOneContainer,d=e.cleanUpOnDestroy,f=d===void 0?!0:d,v=e.offscreenCanvas,g=e.devicePixelRatio,p=e.requestAnimationFrame,y=e.cancelAnimationFrame,b=e.createImage,E=e.supportsTouchEvents,O=e.supportsPointerEvents,k=e.isTouchEvent,R=e.isMouseEvent,z=e.dblClickSpeed,B=o,V=l,U=g||ef&&window.devicePixelRatio||1;return U=U>=1?Math.ceil(U):1,a&&(B=o||JM(a)||a.width/U,V=l||$M(a)||a.height/U),r.customElements=new yT,r.devicePixelRatio=U,r.requestAnimationFrame=p!=null?p:rf.bind(Vt.globalThis),r.cancelAnimationFrame=y!=null?y:Vp.bind(Vt.globalThis),r.createImage=b!=null?b:function(){return new window.Image},r.supportsTouchEvents=E!=null?E:"ontouchstart"in Vt.globalThis,r.supportsPointerEvents=O!=null?O:!!Vt.globalThis.PointerEvent,r.isTouchEvent=k!=null?k:function(J){return r.supportsTouchEvents&&J instanceof Vt.globalThis.TouchEvent},r.isMouseEvent=R!=null?R:function(J){return!Vt.globalThis.MouseEvent||J instanceof Vt.globalThis.MouseEvent&&(!r.supportsPointerEvents||!(J instanceof Vt.globalThis.PointerEvent))},v&&(Vt.offscreenCanvas=v),r.document=new rm,r.document.defaultView=r,h||XM(i,r,f),r.initRenderingContext((0,F.Z)((0,F.Z)({},e),{},{width:B,height:V,background:c!=null?c:"transparent",cursor:u!=null?u:"default",cleanUpOnDestroy:f,devicePixelRatio:U,requestAnimationFrame:r.requestAnimationFrame,cancelAnimationFrame:r.cancelAnimationFrame,createImage:r.createImage,supportsTouchEvents:r.supportsTouchEvents,supportsPointerEvents:r.supportsPointerEvents,isTouchEvent:r.isTouchEvent,isMouseEvent:r.isMouseEvent,dblClickSpeed:z!=null?z:200})),r.initDefaultCamera(B,V,s.clipSpaceNearZ),r.initRenderer(s,!0),r}return(0,L.Z)(t,n),(0,T.Z)(t,[{key:"initRenderingContext",value:function(r){this.context.config=r,this.context.renderingContext={root:this.document.documentElement,unculledEntities:[],renderListCurrentFrame:[],renderReasons:new Set,force:!1,dirty:!1}}},{key:"initDefaultCamera",value:function(r,i,a){var s=this,o=new Vt.CameraContribution;o.clipSpaceNearZ=a,o.setType(ln.EXPLORING,Id.DEFAULT).setPosition(r/2,i/2,om).setFocalPoint(r/2,i/2,0).setOrthographic(r/-2,r/2,i/2,i/-2,ET,wT),o.canvas=this,o.eventEmitter.on(Kg.UPDATED,function(){s.context.renderingContext.renderReasons.add(oo.CAMERA_CHANGED),Vt.enableSizeAttenuation&&s.getConfig().renderer.getConfig().enableSizeAttenuation&&s.updateSizeAttenuation()}),this.context.camera=o}},{key:"updateSizeAttenuation",value:function(){var r=this.getCamera().getZoom();this.document.documentElement.forEach(function(i){Vt.styleValueRegistry.updateSizeAttenuation(i,r)})}},{key:"getConfig",value:function(){return this.context.config}},{key:"getRoot",value:function(){return this.document.documentElement}},{key:"getCamera",value:function(){return this.context.camera}},{key:"getContextService",value:function(){return this.context.contextService}},{key:"getEventService",value:function(){return this.context.eventService}},{key:"getRenderingService",value:function(){return this.context.renderingService}},{key:"getRenderingContext",value:function(){return this.context.renderingContext}},{key:"getStats",value:function(){return this.getRenderingService().getStats()}},{key:"ready",get:function(){var r=this;return this.readyPromise||(this.readyPromise=new Promise(function(i){r.resolveReadyPromise=function(){i(r)}}),this.inited&&this.resolveReadyPromise()),this.readyPromise}},{key:"destroy",value:function(){var r,i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,a=arguments.length>1?arguments[1]:void 0;zn.clearCache();var s=((r=this.getConfig().future)===null||r===void 0?void 0:r.experimentalCancelEventPropagation)===!0;a||this.dispatchEvent(new qn(ai.BEFORE_DESTROY),s,s),this.frameId&&this.cancelAnimationFrame(this.frameId);var o=this.getRoot();i&&(this.unmountChildren(o),this.document.destroy(),this.getEventService().destroy()),this.getRenderingService().destroy(),this.getContextService().destroy(),this.context.rBushRoot&&this.context.rBushRoot.clear(),a||this.dispatchEvent(new qn(ai.AFTER_DESTROY),s,s);var l=function(u){u.currentTarget=null,u.manager=null,u.target=null,u.relatedNode=null};l(Pc),l(Rc),l(df),l(lm),l(ff),l($i),l(cf),l(uf),l(nm),Vt.textService.clearCache()}},{key:"changeSize",value:function(r,i){this.resize(r,i)}},{key:"resize",value:function(r,i){var a,s=this.context.config;s.width=r,s.height=i,this.getContextService().resize(r,i);var o=this.context.camera,l=o.getProjectionMode();o.setPosition(r/2,i/2,om).setFocalPoint(r/2,i/2,0),l===bi.ORTHOGRAPHIC?o.setOrthographic(r/-2,r/2,i/2,i/-2,o.getNear(),o.getFar()):o.setAspect(r/i);var c=((a=s.future)===null||a===void 0?void 0:a.experimentalCancelEventPropagation)===!0;this.dispatchEvent(new qn(ai.RESIZE,{width:r,height:i}),c,c)}},{key:"appendChild",value:function(r,i){return this.document.documentElement.appendChild(r,i)}},{key:"insertBefore",value:function(r,i){return this.document.documentElement.insertBefore(r,i)}},{key:"removeChild",value:function(r){return this.document.documentElement.removeChild(r)}},{key:"removeChildren",value:function(){this.document.documentElement.removeChildren()}},{key:"destroyChildren",value:function(){this.document.documentElement.destroyChildren()}},{key:"render",value:function(r){var i,a=this;r&&(df.detail=r,ff.detail=r);var s=((i=this.getConfig().future)===null||i===void 0?void 0:i.experimentalCancelEventPropagation)===!0;this.dispatchEvent(df,s,s);var o=this.getRenderingService();o.render(this.getConfig(),r,function(){a.dispatchEvent(lm,s,s)}),this.dispatchEvent(ff,s,s)}},{key:"run",value:function(){var r=this,i=function(s,o){r.render(o),r.frameId=r.requestAnimationFrame(i)};i()}},{key:"initRenderer",value:function(r){var i=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(!r)throw new Error("Renderer is required.");this.inited=!1,this.readyPromise=void 0,this.context.rBushRoot=new G2,this.context.renderingPlugins=[],this.context.renderingPlugins.push(new am,new sm,new im([new xT])),this.loadRendererContainerModule(r),this.context.contextService=new this.context.ContextService((0,F.Z)((0,F.Z)({},Vt),this.context)),this.context.renderingService=new _A(Vt,this.context),this.context.eventService=new LA(Vt,this.context),this.context.eventService.init(),this.context.contextService.init?(this.context.contextService.init(),this.initRenderingService(r,a,!0)):this.context.contextService.initAsync().then(function(){i.initRenderingService(r,a)}).catch(function(s){console.error(s)})}},{key:"initRenderingService",value:function(r){var i=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.context.renderingService.init(function(){var o;i.inited=!0;var l=((o=i.getConfig().future)===null||o===void 0?void 0:o.experimentalCancelEventPropagation)===!0;a?s?i.requestAnimationFrame(function(){i.dispatchEvent(new qn(ai.READY),l,l)}):i.dispatchEvent(new qn(ai.READY),l,l):i.dispatchEvent(new qn(ai.RENDERER_CHANGED),l,l),i.readyPromise&&i.resolveReadyPromise(),a||i.getRoot().forEach(function(c){var u,h;(u=(h=c).dirty)===null||u===void 0||u.call(h,!0,!0)}),i.mountChildren(i.getRoot()),r.getConfig().enableAutoRendering&&i.run()})}},{key:"loadRendererContainerModule",value:function(r){var i=this,a=r.getPlugins();a.forEach(function(s){s.context=i.context,s.init(Vt)})}},{key:"setRenderer",value:function(r){var i=this.getConfig();if(i.renderer!==r){var a=i.renderer;i.renderer=r,this.destroy(!1,!0),(0,N.Z)((a==null?void 0:a.getPlugins())||[]).reverse().forEach(function(s){s.destroy(Vt)}),this.initRenderer(r)}}},{key:"setCursor",value:function(r){var i=this.getConfig();i.cursor=r,this.getContextService().applyCursorStyle(r)}},{key:"unmountChildren",value:function(r){var i=this;if(r.childNodes.forEach(function(o){i.unmountChildren(o)}),this.inited){if(r.isMutationObserved)r.dispatchEvent(Rc);else{var a,s=((a=this.getConfig().future)===null||a===void 0?void 0:a.experimentalCancelEventPropagation)===!0;Rc.target=r,this.dispatchEvent(Rc,!0,s)}r!==this.document.documentElement&&(r.ownerDocument=null),r.isConnected=!1}r.isCustomElement&&r.disconnectedCallback&&r.disconnectedCallback()}},{key:"mountChildren",value:function(r){var i=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Sc(r);if(this.inited){if(!r.isConnected&&(r.ownerDocument=this.document,r.isConnected=!0,!a))if(r.isMutationObserved)r.dispatchEvent(Pc);else{var s,o=((s=this.getConfig().future)===null||s===void 0?void 0:s.experimentalCancelEventPropagation)===!0;Pc.target=r,this.dispatchEvent(Pc,!0,o)}}else console.warn("[g]: You are trying to call `canvas.appendChild` before canvas' initialization finished. You can either await `canvas.ready` or listen to `CanvasEvent.READY` manually.","appended child: ",r.nodeName);r.childNodes.forEach(function(l){i.mountChildren(l,a)}),r.isCustomElement&&r.connectedCallback&&r.connectedCallback()}},{key:"mountFragment",value:function(r){this.mountChildren(r,!1)}},{key:"client2Viewport",value:function(r){return this.getEventService().client2Viewport(r)}},{key:"viewport2Client",value:function(r){return this.getEventService().viewport2Client(r)}},{key:"viewport2Canvas",value:function(r){return this.getEventService().viewport2Canvas(r)}},{key:"canvas2Viewport",value:function(r){return this.getEventService().canvas2Viewport(r)}},{key:"getPointByClient",value:function(r,i){return this.client2Viewport({x:r,y:i})}},{key:"getClientByPoint",value:function(r,i){return this.viewport2Client({x:r,y:i})}}])}(Qp);var ST=function(n){function t(){var e;(0,C.Z)(this,t);for(var r=arguments.length,i=new Array(r),a=0;a90)return this;this.computeMatrix()}return this._getAxes(),this.type===ln.ORBITING||this.type===ln.EXPLORING?this._getPosition():this.type===ln.TRACKING&&this._getFocalPoint(),this._update(),this}},{key:"pan",value:function(r,i){var a=Br(r,i,0),s=kt(this.position);return we(s,s,dt(xt(),this.right,a[0])),we(s,s,dt(xt(),this.up,a[1])),this._setPosition(s),this.triggerUpdate(),this}},{key:"dolly",value:function(r){var i=this.forward,a=kt(this.position),s=r*this.dollyingStep,o=this.distance+r*this.dollyingStep;return s=Math.max(Math.min(o,this.maxDistance),this.minDistance)-this.distance,a[0]+=s*i[0],a[1]+=s*i[1],a[2]+=s*i[2],this._setPosition(a),this.type===ln.ORBITING||this.type===ln.EXPLORING?this._getDistance():this.type===ln.TRACKING&&we(this.focalPoint,a,this.distanceVector),this.triggerUpdate(),this}},{key:"cancelLandmarkAnimation",value:function(){this.landmarkAnimationID!==void 0&&this.canvas.cancelAnimationFrame(this.landmarkAnimationID)}},{key:"createLandmark",value:function(r){var i,a,s,o,l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},c=l.position,u=c===void 0?this.position:c,h=l.focalPoint,d=h===void 0?this.focalPoint:h,f=l.roll,v=l.zoom,g=new Vt.CameraContribution;g.setType(this.type,void 0),g.setPosition(u[0],(i=u[1])!==null&&i!==void 0?i:this.position[1],(a=u[2])!==null&&a!==void 0?a:this.position[2]),g.setFocalPoint(d[0],(s=d[1])!==null&&s!==void 0?s:this.focalPoint[1],(o=d[2])!==null&&o!==void 0?o:this.focalPoint[2]),g.setRoll(f!=null?f:this.roll),g.setZoom(v!=null?v:this.zoom);var p={name:r,matrix:vn(g.getWorldTransform()),right:kt(g.right),up:kt(g.up),forward:kt(g.forward),position:kt(g.getPosition()),focalPoint:kt(g.getFocalPoint()),distanceVector:kt(g.getDistanceVector()),distance:g.getDistance(),dollyingStep:g.getDollyingStep(),azimuth:g.getAzimuth(),elevation:g.getElevation(),roll:g.getRoll(),relAzimuth:g.relAzimuth,relElevation:g.relElevation,relRoll:g.relRoll,zoom:g.getZoom()};return this.landmarks.push(p),p}},{key:"gotoLandmark",value:function(r){var i=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=Ve(r)?this.landmarks.find(function(J){return J.name===r}):r;if(s){var o=re(a)?{duration:a}:a,l=o.easing,c=l===void 0?"linear":l,u=o.duration,h=u===void 0?100:u,d=o.easingFunction,f=d===void 0?void 0:d,v=o.onfinish,g=v===void 0?void 0:v,p=o.onframe,y=p===void 0?void 0:p,b=.01;this.cancelLandmarkAnimation();var E=s.position,O=s.focalPoint,k=s.zoom,R=s.roll,z=f||Vt.EasingFunction(c),B,V=function(){i.setFocalPoint(O),i.setPosition(E),i.setRoll(R),i.setZoom(k),i.computeMatrix(),i.triggerUpdate(),g==null||g()};if(h===0)return V();var U=function($){B===void 0&&(B=$);var st=$-B;if(st>=h){V();return}var ct=z(st/h),ft=xt(),Nt=xt(),Ct=1,gt=0;Oe(ft,i.focalPoint,O,ct),Oe(Nt,i.position,E,ct),gt=i.roll*(1-ct)+R*ct,Ct=i.zoom*(1-ct)+k*ct,i.setFocalPoint(ft),i.setPosition(Nt),i.setRoll(gt),i.setZoom(Ct);var pt=ni(ft,O)+ni(Nt,E);if(pt<=b&&k===void 0&&R===void 0)return V();i.computeMatrix(),i.triggerUpdate(),st0&&Number(this._currentTime)>=this._totalDuration||this._playbackRate<0&&Number(this._currentTime)<=0)}},{key:"totalDuration",get:function(){return this._totalDuration}},{key:"_needsTick",get:function(){return this.pending||this.playState==="running"||!this._finishedFlag}},{key:"updatePromises",value:function(){var e;if((e=this.effect.target)!==null&&e!==void 0&&e.destroyed)return this.readyPromise=void 0,this.finishedPromise=void 0,!1;var r=this.oldPlayState,i=this.pending?"pending":this.playState;return this.readyPromise&&i!==r&&(i==="idle"?(this.rejectReadyPromise(),this.readyPromise=void 0):r==="pending"?this.resolveReadyPromise():i==="pending"&&(this.readyPromise=void 0)),this.finishedPromise&&i!==r&&(i==="idle"?(this.rejectFinishedPromise(),this.finishedPromise=void 0):i==="finished"?this.resolveFinishedPromise():r==="finished"&&(this.finishedPromise=void 0)),this.oldPlayState=i,this.readyPromise||this.finishedPromise}},{key:"play",value:function(){this.updatePromises(),this._paused=!1,(this._isFinished||this._idle)&&(this.rewind(),this._startTime=null),this._finishedFlag=!1,this._idle=!1,this.ensureAlive(),this.timeline.applyDirtiedAnimation(this),this.timeline.animations.indexOf(this)===-1&&this.timeline.animations.push(this),this.updatePromises()}},{key:"pause",value:function(){this.updatePromises(),this.currentTime&&(this._holdTime=this.currentTime),!this._isFinished&&!this._paused&&!this._idle?this.currentTimePending=!0:this._idle&&(this.rewind(),this._idle=!1),this._startTime=null,this._paused=!0,this.updatePromises()}},{key:"finish",value:function(){this.updatePromises(),!this._idle&&(this.currentTime=this._playbackRate>0?this._totalDuration:0,this._startTime=this._totalDuration-this.currentTime,this.currentTimePending=!1,this.timeline.applyDirtiedAnimation(this),this.updatePromises())}},{key:"cancel",value:function(){var e=this;if(this.updatePromises(),!!this._inEffect&&(this._inEffect=!1,this._idle=!0,this._paused=!1,this._finishedFlag=!0,this._currentTime=0,this._startTime=null,this.effect.update(null),this.timeline.applyDirtiedAnimation(this),this.updatePromises(),this.oncancel)){var r=new yf(null,this,this.currentTime,null);setTimeout(function(){e.oncancel(r)})}}},{key:"reverse",value:function(){this.updatePromises();var e=this.currentTime;this.playbackRate*=-1,this.play(),e!==null&&(this.currentTime=e),this.updatePromises()}},{key:"updatePlaybackRate",value:function(e){this.playbackRate=e}},{key:"targetAnimations",value:function(){var e,r=(e=this.effect)===null||e===void 0?void 0:e.target;return r.getAnimations()}},{key:"markTarget",value:function(){var e=this.targetAnimations();e.indexOf(this)===-1&&e.push(this)}},{key:"unmarkTarget",value:function(){var e=this.targetAnimations(),r=e.indexOf(this);r!==-1&&e.splice(r,1)}},{key:"tick",value:function(e,r){!this._idle&&!this._paused&&(this._startTime===null?r&&(this.startTime=e-this._currentTime/this.playbackRate):this._isFinished||this.tickCurrentTime((e-this._startTime)*this.playbackRate)),r&&(this.currentTimePending=!1,this.fireEvents(e))}},{key:"rewind",value:function(){if(this.playbackRate>=0)this.currentTime=0;else if(this._totalDuration<1/0)this.currentTime=this._totalDuration;else throw new Error("Unable to rewind negative playback rate animation with infinite duration")}},{key:"persist",value:function(){throw new Error(sn)}},{key:"addEventListener",value:function(e,r,i){throw new Error(sn)}},{key:"removeEventListener",value:function(e,r,i){throw new Error(sn)}},{key:"dispatchEvent",value:function(e){throw new Error(sn)}},{key:"commitStyles",value:function(){throw new Error(sn)}},{key:"ensureAlive",value:function(){if(this.playbackRate<0&&this.currentTime===0){var e;this._inEffect=!!((e=this.effect)!==null&&e!==void 0&&e.update(-1))}else{var r;this._inEffect=!!((r=this.effect)!==null&&r!==void 0&&r.update(this.currentTime))}!this._inTimeline&&(this._inEffect||!this._finishedFlag)&&(this._inTimeline=!0,this.timeline.animations.push(this))}},{key:"tickCurrentTime",value:function(e,r){e!==this._currentTime&&(this._currentTime=e,this._isFinished&&!r&&(this._currentTime=this._playbackRate>0?this._totalDuration:0),this.ensureAlive())}},{key:"fireEvents",value:function(e){var r=this;if(this._isFinished){if(!this._finishedFlag){if(this.onfinish){var i=new yf(null,this,this.currentTime,e);setTimeout(function(){r.onfinish&&r.onfinish(i)})}this._finishedFlag=!0}}else{if(this.onframe&&this.playState==="running"){var a=new yf(null,this,this.currentTime,e);this.onframe(a)}this._finishedFlag=!1}}}])}(),CT=4,NT=.001,kT=1e-7,PT=10,ol=11,_c=1/(ol-1),RT=typeof Float32Array=="function",hm=function(t,e){return 1-3*e+3*t},dm=function(t,e){return 3*e-6*t},fm=function(t){return 3*t},Dc=function(t,e,r){return((hm(e,r)*t+dm(e,r))*t+fm(e))*t},vm=function(t,e,r){return 3*hm(e,r)*t*t+2*dm(e,r)*t+fm(e)},LT=function(t,e,r,i,a){var s,o,l=0;do o=e+(r-e)/2,s=Dc(o,i,a)-t,s>0?r=o:e=o;while(Math.abs(s)>kT&&++l=0&&t<=1&&r>=0&&r<=1))throw new Error("bezier x values must be in [0, 1] range");if(t===e&&r===i)return function(l){return l};for(var a=RT?new Float32Array(ol):new Array(ol),s=0;s=NT?_T(c,v,t,r):g===0?v:LT(c,u,u+_c,t,r)};return function(l){return l===0||l===1?l:Dc(o(l),e,i)}},DT=function(t){return t=t.replace(/([A-Z])/g,function(e){return"-".concat(e.toLowerCase())}),t.charAt(0)==="-"?t.substring(1):t},Ic=function(t){return Math.pow(t,2)},Bc=function(t){return Math.pow(t,3)},Fc=function(t){return Math.pow(t,4)},zc=function(t){return Math.pow(t,5)},jc=function(t){return Math.pow(t,6)},Wc=function(t){return 1-Math.cos(t*Math.PI/2)},Gc=function(t){return 1-Math.sqrt(1-t*t)},Zc=function(t){return t*t*(3*t-2)},Vc=function(t){for(var e,r=4;t<((e=Math.pow(2,--r))-1)/11;);return 1/Math.pow(4,3-r)-7.5625*Math.pow((e*3-2)/22-t,2)},Uc=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=(0,W.Z)(e,2),i=r[0],a=i===void 0?1:i,s=r[1],o=s===void 0?.5:s,l=Nn(Number(a),1,10),c=Nn(Number(o),.1,2);return t===0||t===1?t:-l*Math.pow(2,10*(t-1))*Math.sin((t-1-c/(Math.PI*2)*Math.asin(1/l))*(Math.PI*2)/c)},ll=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0,i=(0,W.Z)(e,4),a=i[0],s=a===void 0?1:a,o=i[1],l=o===void 0?100:o,c=i[2],u=c===void 0?10:c,h=i[3],d=h===void 0?0:h;s=Nn(s,.1,1e3),l=Nn(l,.1,1e3),u=Nn(u,.1,1e3),d=Nn(d,.1,1e3);var f=Math.sqrt(l/s),v=u/(2*Math.sqrt(l*s)),g=v<1?f*Math.sqrt(1-v*v):0,p=1,y=v<1?(v*f+-d)/g:-d+f,b=r?r*t/1e3:t;return v<1?b=Math.exp(-b*v*f)*(p*Math.cos(g*b)+y*Math.sin(g*b)):b=(p+y*b)*Math.exp(-b*f),t===0||t===1?t:1-b},xf=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=e,i=(0,W.Z)(r,2),a=i[0],s=a===void 0?10:a,o=i[1],l=o==="start"?Math.ceil:Math.floor;return l(Nn(t,0,1)*s)/s},gm=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=(0,W.Z)(e,4),i=r[0],a=r[1],s=r[2],o=r[3];return bf(i,a,s,o)(t)},Yc=bf(.42,0,1,1),Ei=function(t){return function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0;return 1-t(1-e,r,i)}},wi=function(t){return function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0;return e<.5?t(e*2,r,i)/2:1-t(e*-2+2,r,i)/2}},Si=function(t){return function(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0;return e<.5?(1-t(1-e*2,r,i))/2:(t(e*2-1,r,i)+1)/2}},pm={steps:xf,"step-start":function(t){return xf(t,[1,"start"])},"step-end":function(t){return xf(t,[1,"end"])},linear:function(t){return t},"cubic-bezier":gm,ease:function(t){return gm(t,[.25,.1,.25,1])},in:Yc,out:Ei(Yc),"in-out":wi(Yc),"out-in":Si(Yc),"in-quad":Ic,"out-quad":Ei(Ic),"in-out-quad":wi(Ic),"out-in-quad":Si(Ic),"in-cubic":Bc,"out-cubic":Ei(Bc),"in-out-cubic":wi(Bc),"out-in-cubic":Si(Bc),"in-quart":Fc,"out-quart":Ei(Fc),"in-out-quart":wi(Fc),"out-in-quart":Si(Fc),"in-quint":zc,"out-quint":Ei(zc),"in-out-quint":wi(zc),"out-in-quint":Si(zc),"in-expo":jc,"out-expo":Ei(jc),"in-out-expo":wi(jc),"out-in-expo":Si(jc),"in-sine":Wc,"out-sine":Ei(Wc),"in-out-sine":wi(Wc),"out-in-sine":Si(Wc),"in-circ":Gc,"out-circ":Ei(Gc),"in-out-circ":wi(Gc),"out-in-circ":Si(Gc),"in-back":Zc,"out-back":Ei(Zc),"in-out-back":wi(Zc),"out-in-back":Si(Zc),"in-bounce":Vc,"out-bounce":Ei(Vc),"in-out-bounce":wi(Vc),"out-in-bounce":Si(Vc),"in-elastic":Uc,"out-elastic":Ei(Uc),"in-out-elastic":wi(Uc),"out-in-elastic":Si(Uc),spring:ll,"spring-in":ll,"spring-out":Ei(ll),"spring-in-out":wi(ll),"spring-out-in":Si(ll)},IT=function(t){return DT(t).replace(/^ease-/,"").replace(/(\(|\s).+/,"").toLowerCase().trim()},BT=function(t){return pm[IT(t)]||pm.linear},FT=function(t){return t},zT=1,jT=.5,mm=0;function ym(n,t){return function(e){if(e>=1)return 1;var r=1/n;return e+=t*r,e-e%r}}var Hc="\\s*(-?\\d+\\.?\\d*|-?\\.\\d+)\\s*",WT=new RegExp("cubic-bezier\\(".concat(Hc,",").concat(Hc,",").concat(Hc,",").concat(Hc,"\\)")),GT=/steps\(\s*(\d+)\s*\)/,ZT=/steps\(\s*(\d+)\s*,\s*(start|middle|end)\s*\)/;function Ef(n){var t=WT.exec(n);if(t)return bf.apply(void 0,(0,N.Z)(t.slice(1).map(Number)));var e=GT.exec(n);if(e)return ym(Number(e[1]),mm);var r=ZT.exec(n);return r?ym(Number(r[1]),{start:zT,middle:jT,end:mm}[r[2]]):BT(n)}function VT(n){return Math.abs(UT(n)/(n.playbackRate||1))}function UT(n){var t;return n.duration===0||n.iterations===0?0:(n.duration==="auto"?0:Number(n.duration))*((t=n.iterations)!==null&&t!==void 0?t:1)}var bm=0,wf=1,Xc=2,xm=3;function YT(n,t,e){if(t===null)return bm;var r=e.endTime;return t=Math.min(e.delay+n+e.endDelay,r)?Xc:xm}function HT(n,t,e,r,i){switch(r){case wf:return t==="backwards"||t==="both"?0:null;case xm:return e-i;case Xc:return t==="forwards"||t==="both"?n:null;case bm:return null}}function XT(n,t,e,r,i){var a=i;return n===0?t!==wf&&(a+=e):a+=r/n,a}function KT(n,t,e,r,i,a){var s=n===1/0?t%1:n%1;return s===0&&e===Xc&&r!==0&&(i!==0||a===0)&&(s=1),s}function QT(n,t,e,r){return n===Xc&&t===1/0?1/0:e===1?Math.floor(r)-1:Math.floor(r)}function qT(n,t,e){var r=n;if(n!=="normal"&&n!=="reverse"){var i=t;n==="alternate-reverse"&&(i+=1),r="normal",i!==1/0&&i%2!==0&&(r="reverse")}return r==="normal"?e:1-e}function JT(n,t,e){var r=YT(n,t,e),i=HT(n,e.fill,t,r,e.delay);if(i===null)return null;var a=e.duration==="auto"?0:e.duration,s=XT(a,r,e.iterations,i,e.iterationStart),o=KT(s,e.iterationStart,r,e.iterations,i,a),l=QT(r,e.iterations,o,s),c=qT(e.direction,l,o);return e.currentIteration=l,e.progress=c,e.easingFunction(c)}function $T(n,t,e){var r=tO(n,t),i=eO(r,e);return function(a,s){if(s!==null)i.filter(function(l){return s>=l.applyFrom&&s1)throw new Error("Keyframe offsets must be between 0 and 1.");c.computedOffset=h}}else if(u==="composite"&&["replace","add","accumulate","auto"].indexOf(h)===-1)throw new Error("".concat(h," compositing is not supported"));c[u]=h}return c.offset===void 0&&(c.offset=null),c.easing===void 0&&(c.easing=(t==null?void 0:t.easing)||"linear"),c.composite===void 0&&(c.composite="auto"),c}),r=!0,i=-1/0,a=0;a=0&&Number(l.offset)<=1});function o(){var l,c=e,u=c.length;if(e[u-1].computedOffset=Number((l=e[u-1].offset)!==null&&l!==void 0?l:1),u>1){var h;e[0].computedOffset=Number((h=e[0].offset)!==null&&h!==void 0?h:0)}for(var d=0,f=Number(e[0].computedOffset),v=1;v{!qr.mute&&console.debug(ga(n))},info:n=>{!qr.mute&&console.info(ga(n))},warn:n=>{!qr.mute&&console.warn(ga(n))},error:n=>{!qr.mute&&console.error(ga(n))}};function Om(n){const{theme:t}=n;if(!t)return{};const e=va(ul.THEME,t);return e||(qr.warn(`The theme of ${t} is not registered.`),{})}function Tf(n,t){if(Array.isArray(n)&&n.length===0)return null;const e=Array.isArray(n)?n[0]:n,r=Array.isArray(n)?n.slice(1):t||[];return new Proxy(e,{get(i,a){return typeof i[a]=="function"&&!["onframe","onfinish"].includes(a)?(...s)=>{i[a](...s),r.forEach(o=>{var l;return(l=o[a])===null||l===void 0?void 0:l.call(o,...s)})}:a==="finished"?Promise.all([e.finished,...r.map(s=>s.finished)]):Reflect.get(i,a)},set(i,a,s){return["onframe","onfinish"].includes(a)||r.forEach(o=>{o[a]=s}),Reflect.set(i,a,s)}})}function Of(n){const t=n.reduce((r,i)=>(Object.entries(i).forEach(([a,s])=>{r[a]===void 0?r[a]=[s]:r[a].push(s)}),r),{});Object.entries(t).forEach(([r,i])=>{(i.length!==n.length||i.some(a=>be(a))||i.every(a=>!["sourceNode","targetNode","childrenNode"].includes(r)&&Wn(a,i[0])))&&delete t[r]});const e=Object.entries(t).reduce((r,[i,a])=>(a.forEach((s,o)=>{r[o]?r[o][i]=s:r[o]={[i]:s}}),r),[]);return n.length!==0&&e.length===0&&e.push({_:0},{_:0}),e}function hl(n){switch(n){case"opacity":return 1;case"x":case"y":case"z":case"zIndex":return 0;case"visibility":return"visible";case"collapsed":return!1;case"states":return[];default:return}}function Cm(n,t){const{animation:e}=n;if(e===!1||t===!1)return!1;const r=Object.assign({},gO);return Fn(e)&&Object.assign(r,e),Fn(t)&&Object.assign(r,t),r}function bO(n){if(typeof n=="string"){const t=va(ul.ANIMATION,n);return t||(qr.warn(`The animation of ${n} is not registered.`),[])}return n}function xO(n,t,e,r){var i,a;const{animation:s}=n;if(s===!1||r===!1)return[];const o=(i=n==null?void 0:n[t])===null||i===void 0?void 0:i.animation;if(o===!1)return[];const l=o==null?void 0:o[e];if(l===!1)return[];const c=(a=Om(n)[t])===null||a===void 0?void 0:a.animation,u=(d=[])=>bO(d).map(f=>Object.assign(Object.assign(Object.assign(Object.assign({},pO),Fn(s)&&s),f),Fn(r)&&r));if(l)return u(l);if(!c)return[];const h=c[e];return h===!1?[]:u(h)}function Nm(n,t,e,r=[]){if(!r&&n===0&&t===0&&e===0)return null;if(Array.isArray(r)){let a=-1;const s=[];for(let o=0;o{if(!e.length)return null;const[r,i]=t,a=c=>{var u;if(c){const h=n.getShape(c);if(!h)return null;const d=`get${Kc(c)}Style`,f=((u=n==null?void 0:n[d])===null||u===void 0?void 0:u.bind(n))||(p=>p),v=(f==null?void 0:f(r))||{},g=(f==null?void 0:f(i))||{};return{shape:h,fromStyle:v,toStyle:g}}else return{shape:n,fromStyle:r,toStyle:i}};let s;const o=e.map(c=>{var{fields:u,shape:h,states:d}=c,f=EO(c,["fields","shape","states"]);const v=a(h);if(!v)return null;const{shape:g,fromStyle:p,toStyle:y}=v,b=[{},{}];if(u.forEach(O=>{var k,R;Object.assign(b[0],{[O]:(k=p[O])!==null&&k!==void 0?k:hl(O)}),Object.assign(b[1],{[O]:(R=y[O])!==null&&R!==void 0?R:hl(O)})}),b.some(O=>Object.keys(O).some(k=>["x","y","z"].includes(k)))){const{x:O=0,y:k=0,z:R,transform:z=""}=g.attributes||{};b.forEach(B=>{var V,U,J;B.transform=Nm((V=B.x)!==null&&V!==void 0?V:O,(U=B.y)!==null&&U!==void 0?U:k,(J=B.z)!==null&&J!==void 0?J:R,z)})}const E=g.animate(Of(b),f);return h===void 0&&(s=E),E}).filter(Boolean),l=s||(o==null?void 0:o[0]);return l?Tf(l,o.filter(c=>c!==c)):null},SO=[{fields:["opacity"]}],MO=[{fields:["x","y"]}],km=[{fields:["x","y"]}],AO=km,Pm=[{fields:["sourceNode","targetNode"]}],TO=Pm,Rm=[{fields:["childrenNode","x","y"]}],OO=Rm,E9=[{fields:["childrenNode","x","y"]}];var CO=Object.prototype.hasOwnProperty;function NO(n,t){if(!t||!Ur(n))return{};for(var e={},r=ue(t)?t:function(o){return o[t]},i,a=0;at?(r&&(clearTimeout(r),r=null),o=u,s=n.apply(i,a),r||(i=a=null)):!r&&e.trailing!==!1&&(r=setTimeout(l,h)),s};return c.cancel=function(){clearTimeout(r),o=0,r=i=a=null},c},Cf=function(n){if(typeof n!="object"||n===null)return n;var t;if(Ur(n)){t=[];for(var e=0,r=n.length;etypeof t=="number"):!1}function ea(n,t,e){return n>=t&&n<=e}function oi(n=0){if(Array.isArray(n)){const[t=0,e=t,r=t,i=e]=n;return[t,e,r,i]}return[n,n,n,n]}function RO(n=0){const t=oi(n);return t[0]+t[2]}function S9(n=0){const t=oi(n);return t[1]+t[3]}function na(n){return n.max[0]-n.min[0]}function ra(n){return n.max[1]-n.min[1]}function Ba(n){return[na(n),ra(n)]}function Fa(n,t){const e=ho(n)?Nf(n):n.getShape("key").getBounds();return t?za(e,t):e}function Nf(n){const[t,e,r=0]=n,i=new mn;return i.setMinMax([t,e,r],[t,e,r]),i}function za(n,t){const[e,r,i,a]=oi(t),[s,o,l]=n.min,[c,u,h]=n.max,d=new mn;return d.setMinMax([s-a,o-e,l],[c+r,u+i,h]),d}function dl(n){if(n.length===0)return new mn;if(n.length===1)return n[0];const t=new mn;t.setMinMax(n[0].min,n[0].max);for(let e=1;e=s&&i<=l&&r>=o&&a<=c}function Di(n,t){return ea(n[0],t.min[0],t.max[0])&&ea(n[1],t.min[1],t.max[1])}function _m(n,t,e=!1){const{min:[r,i],max:[a,s]}=t,o=(n[1]===i||n[1]===s)&&(e||ea(n[0],r,a)),l=(n[0]===r||n[0]===a)&&(e||ea(n[1],i,s));return o||l}function _O(n,t){return!Di(n,t)}function Jc(n,t){const{center:e}=t;return n[0]===e[0]&&n[1]===e[1]}function fl(n,t){const[e,r]=n,[i,a]=t.min,[s,o]=t.max,l=e-i,c=s-e,u=r-a,h=o-r,d=Math.min(l,c,u,h);return d===l?"left":d===c?"right":d===u?"top":d===h?"bottom":"left"}function Ts(n,t){const e=uo(n);if(Di(n,t))switch(fl(n,t)){case"left":e[0]=t.min[0];break;case"right":e[0]=t.max[0];break;case"top":e[1]=t.min[1];break;case"bottom":e[1]=t.max[1];break}else{const[r,i]=n,[a,s]=t.min,[o,l]=t.max;e[0]=ea(r,a,o)?r:r0&&f(k[0])}},y=0;y0;)d.push(l.pop());s.push(d)}}return s},Fm=function(t){for(var e=t.nodes,r=e===void 0?[]:e,i=t.edges,a=i===void 0?[]:i,s=[],o={},l={},c={},u=[],h=0,d=function p(y){l[y.id]=h,c[y.id]=h,h+=1,s.push(y),o[y.id]=!0;for(var b=Ai(y.id,a,"target").filter(function(z){return r.map(function(B){return B.id}).indexOf(z)>-1}),E=function(B){var V=b[B];if(!l[V]&&l[V]!==0){var U=r.filter(function(J){return J.id===V});U.length>0&&p(U[0]),c[y.id]=Math.min(c[y.id],c[V])}else o[V]&&(c[y.id]=Math.min(c[y.id],l[V]))},O=0;O0;){var R=s.pop();if(o[R.id]=!1,k.push(R),R===y)break}k.length>0&&u.push(k)}},f=0,v=r;f0;)for(var p=f.pop(),y=p.id,b=Ai(y,t.edges),E=function(R){var z,B=b[R],V=t.nodes.find(function(ft){return ft.id===B});if(B===y)s.push((z={},z[B]=p,z));else if(!(B in g))v[B]=p,f.push(V),g[B]=new Set([p]);else if(!g[y].has(V)){for(var U=!0,J=[V,p],$=v[y];g[B].size&&!g[B].has($)&&(J.push($),$!==v[$.id]);)$=v[$.id];if(J.push($),e&&r?(U=!1,J.findIndex(function(ft){return e.indexOf(ft.id)>-1})>-1&&(U=!0)):e&&!r&&J.findIndex(function(ft){return e.indexOf(ft.id)>-1})>-1&&(U=!1),U){for(var st={},ct=1;ct0;){var ct=st.pop();a.has(ct)&&(a.delete(ct),s[ct.id].forEach(function(ft){st.push(ft)}),s[ct.id].clear())}},h=function J($,st,ct){var ft=!1;if(e&&r===!1&&e.indexOf($.id)>-1)return ft;i.push($),a.add($);for(var Nt=ct[$.id],Ct=0;Ct-1});ee-1)?o.push((st={},st[Yt.id]=Yt,st)):jt[Yt.id].push(c[ce])}}return{component:Pt,adjList:jt,minIdx:ft}},E=0;E=E}),k=Fm({nodes:O,edges:t.edges}).filter(function(J){return J.length>1});if(k.length===0)break;var R=b(k),z=R.minIdx,B=R.adjList,V=R.component;if(V.length>1){V.forEach(function(J){s[J.id]=new Set});var U=l[z];if(e&&r&&e.indexOf(U.id)===-1)return o;h(U,U,B),E=z+1}else break}return o},JO=function(t,e,r,i){return i===void 0&&(i=!0),e?Zm(t,r,i):Gm(t,r,i)},Vm=qO,$O={}.toString,tC=function(n,t){return $O.call(n)==="[object "+t+"]"},eu=tC,Pf=function(n){return eu(n,"Function")},Rf=function(n){return Array.isArray?Array.isArray(n):eu(n,"Array")},eC=function(n){var t=typeof n;return n!==null&&t==="object"||t==="function"};function nC(n,t){if(n){var e;if(Rf(n))for(var r=0,i=n.length;r-1;)iC.call(n,a,1);return n},G9=null,sC=Array.prototype.splice,Z9=function(t,e){if(!isArrayLike(t))return[];for(var r=t?e.length:0,i=r-1;r--;){var a=void 0,s=e[r];(r===i||s!==a)&&(a=s,sC.call(t,s,1))}return t},V9=null,U9=function(n,t,e){if(!isArray(n)&&!isPlainObject(n))return n;var r=e;return each(n,function(i,a){r=t(r,i,a)}),r},Y9=null,H9=function(n,t){var e=[];if(!isArrayLike(n))return e;for(var r=-1,i=[],a=n.length;++ra[o])return 1;if(i[o]0},Ez=null,wz=function(n,t){if(isArray(n)){for(var e,r=-1/0,i=0;ir&&(e=a,r=s)}return e}},Sz=function(n,t){if(isArray(n)){for(var e,r=1/0,i=0;io&&u>o);)if(l.push(c),o-=u,s=s.substr(i),!s)return l.join("");for(;c=s.substr(0,1),u=measureTextWidth(c,e),!(u+a>o);)if(l.push(c),o-=u,s=s.substr(1),!s)return l.join("");return""+l.join("")+r},o7=function(){function n(){this.map={}}return n.prototype.has=function(t){return this.map[t]!==void 0},n.prototype.get=function(t,e){var r=this.map[t];return r===void 0?e:r},n.prototype.set=function(t,e){this.map[t]=e},n.prototype.clear=function(){this.map={}},n.prototype.delete=function(t){delete this.map[t]},n.prototype.size=function(){return Object.keys(this.map).length},n}(),l7=null,SC=function(t,e,r){for(var i=1/0,a,s=0;sh[k.id]+$?(h[J]=h[k.id]+$,d[J]=[k.id]):h[J]===h[k.id]+$&&d[J].push(k.id)})},g=0;g0&&u.length>0;){var f=u[u.length-1];if(f.length){var v=f.shift();v&&(l.push(v),c[v]=!0,d=i?Ai(v,o,"target"):Ai(v,o),u.push(d.filter(function(y){return!c[y]})))}else{var g=l.pop();c[g]=!1,u.pop();continue}if(l[l.length-1]===r){var p=l.map(function(b){return b});h.push(p);var g=l.pop();c[g]=!1,u.pop()}}return h},TC=function(t,e){for(var r=$c(t,e),i=[],a=r.length,s=0;si[s][l]+i[l][o]&&(i[s][o]=i[s][l]+i[l][o]);return i},Ff=TC,OC=function(t,e,r,i){e===void 0&&(e=!1),r===void 0&&(r="weight"),i===void 0&&(i=1e3);var a=t.nodes,s=a===void 0?[]:a,o=t.edges,l=o===void 0?[]:o,c={},u={};s.forEach(function(O,k){var R=Bm();O.clusterId=R,c[R]={id:R,nodes:[O]},u[O.id]={node:O,idx:k}});var h=$c(t,e),d=[],f={};h.forEach(function(O,k){var R=0,z=s[k].id;f[z]={},O.forEach(function(B,V){if(B){R+=B;var U=s[V].id;f[z][U]=B}}),d.push(R)});for(var v=0,g=function(){var k=!1;if(s.forEach(function(R){var z={};Object.keys(f[R.id]).forEach(function(ft){var Nt=f[R.id][ft],Ct=u[ft].node,gt=Ct.clusterId;z[gt]||(z[gt]=0),z[gt]+=Nt});var B=-1/0,V=[];if(Object.keys(z).forEach(function(ft){B=0&&V.splice(U,1),V&&V.length){k=!0;var J=c[R.clusterId],$=J.nodes.indexOf(R);J.nodes.splice($,1);var st=Math.floor(Math.random()*V.length),ct=c[V[st]];ct.nodes.push(R),R.clusterId=ct.id}}}),!k)return"break";v++};v0&&B>V&&B-VV&&(J=h.map(function(pt){return{node:pt,clusterId:pt.clusterId}}),$=gl(b),V=B),st||U>100)break;U++,Object.keys(b).forEach(function(pt){var Pt=0;f.forEach(function(jt){var Yt=jt.source,ee=jt.target,ie=E[Yt].node.clusterId,ce=E[ee].node.clusterId;(ie===pt&&ce!==pt||ce===pt&&ie!==pt)&&(Pt=Pt+(jt[r]||1))}),b[pt].sumTot=Pt}),h.forEach(function(pt,Pt){var jt=b[pt.clusterId],Yt=0,ee,ie=k[Pt]/(2*z),ce=0,le=jt.nodes;le.forEach(function(Sr){var vr=E[Sr.id].idx;ce+=O[Pt][vr]||0});var Ee=ce-jt.sumTot*ie,Ce=le.filter(function(Sr){return Sr.id!==pt.id}),We=[];Ce.forEach(function(Sr,vr){We[vr]=v[Sr.originIndex]});var Ye=jf(Ce,v)*c,or=R[pt.id];if(Object.keys(or).forEach(function(Sr){var vr=E[Sr].node,Ma=vr.clusterId;if(Ma!==pt.clusterId){var Mr=b[Ma],ei=Mr.nodes;if(!(!ei||!ei.length)){var ze=0;ei.forEach(function(Ke){var tn=E[Ke.id].idx;ze+=O[Pt][tn]||0});var $e=ze-Mr.sumTot*ie,je=ei.concat([pt]),Xe=[];je.forEach(function(Ke,tn){Xe[tn]=v[Ke.originIndex]});var an=jf(je,v)*c,pe=$e-Ee;a&&(pe=$e+an-(Ee+Ye)),pe>Yt&&(Yt=pe,ee=Mr)}}}),Yt>0){ee.nodes.push(pt);var Je=pt.clusterId;pt.clusterId=ee.id;var fi=jt.nodes.indexOf(pt);jt.nodes.splice(fi,1);var _r=0,ns=0;f.forEach(function(Sr){var vr=Sr.source,Ma=Sr.target,Mr=E[vr].node.clusterId,ei=E[Ma].node.clusterId;(Mr===ee.id&&ei!==ee.id||ei===ee.id&&Mr!==ee.id)&&(_r=_r+(Sr[r]||1)),(Mr===Je&&ei!==Je||ei===Je&&Mr!==Je)&&(ns=ns+(Sr[r]||1))}),ee.sumTot=_r,jt.sumTot=ns}})}var ct={},ft=0;Object.keys($).forEach(function(pt){var Pt=$[pt];if(!Pt.nodes||!Pt.nodes.length){delete $[pt];return}var jt=String(ft+1);jt!==pt&&(Pt.id=jt,Pt.nodes=Pt.nodes.map(function(Yt){return{id:Yt.id,clusterId:jt}}),$[jt]=Pt,ct[pt]=jt,delete $[pt],ft++)}),J.forEach(function(pt){var Pt=pt.node,jt=pt.clusterId;Pt&&(Pt.clusterId=jt,Pt.clusterId&&ct[Pt.clusterId]&&(Pt.clusterId=ct[Pt.clusterId]))});var Nt=[],Ct={};f.forEach(function(pt){var Pt=pt.source,jt=pt.target,Yt=pt[r]||1,ee=E[Pt].node.clusterId,ie=E[jt].node.clusterId;if(!(!ee||!ie)){var ce="".concat(ee,"---").concat(ie);if(Ct[ce])Ct[ce].weight+=Yt,Ct[ce].count++;else{var le={source:ee,target:ie,weight:Yt,count:1};Ct[ce]=le,Nt.push(le)}}});var gt=[];return Object.keys($).forEach(function(pt){gt.push($[pt])}),{clusters:gt,clusterEdges:Nt}},ey=_C,DC=function(t,e,r,i,a,s,o,l){return e===void 0&&(e=!1),r===void 0&&(r="weight"),i===void 0&&(i=1e-4),a===void 0&&(a=void 0),s===void 0&&(s=[]),o===void 0&&(o=["id"]),l===void 0&&(l=1),ey(t,e,r,i,!0,a,s,o,l)},IC=DC,BC=function(t,e){var r;e===void 0&&(e=1);for(var i=gl(t),a=i.nodes,s=a===void 0?[]:a,o=i.edges,l=o===void 0?[]:o,c=function(){var d=kf({nodes:s,edges:l}),f=Object.keys(d);f.sort(function(p,y){var b,E;return((b=d[p])===null||b===void 0?void 0:b.degree)-((E=d[y])===null||E===void 0?void 0:E.degree)});var v=f[0];if(!s.length||((r=d[v])===null||r===void 0?void 0:r.degree)>=e)return"break";var g=s.findIndex(function(p){return p.id===v});s.splice(g,1),l=l.filter(function(p){return!(p.source===v||p.target===v)})};;){var u=c();if(u==="break")break}return{nodes:s,edges:l}},FC=BC,ny=function(t,e,r){var i=[];switch(t){case Ii.EuclideanDistance:i=e[r];break;default:i=[];break}return i},zC=function(t,e,r,i,a,s){e===void 0&&(e=3),r===void 0&&(r=void 0),i===void 0&&(i=[]),a===void 0&&(a=["id"]),s===void 0&&(s=Ii.EuclideanDistance);var o=t.nodes,l=o===void 0?[]:o,c=t.edges,u=c===void 0?[]:c,h={clusters:[{id:"0",nodes:l}],clusterEdges:[]};if(s===Ii.EuclideanDistance&&!l.every(function(jt){return jt.hasOwnProperty(r)}))return h;var d=[],f=[];if(s===Ii.EuclideanDistance&&(d=au(l,r),f=su(d,i,a)),!f.length)return h;for(var v=_f(f.map(function(jt){return jt.join("")})),g=Math.min(e,l.length,v.length),p=0;pk&&!y.find(function(Ce){return EC(Ce,ny(s,f,l[ee].originIndex))})&&(k=Ee,R=ee)}},B=0;B=0;ct--)E[Number(l[p].clusterId)][ct].id===l[p].id&&E[Number(l[p].clusterId)].splice(ct,1);l[p].clusterId=String(U),E[U].push(l[p])}}for(var ft=!1,p=0;p=1e3)break}var pt=[],Pt={};return u.forEach(function(jt){var Yt,ee,ie=jt.source,ce=jt.target,le=(Yt=l.find(function(Ye){return Ye.id===ie}))===null||Yt===void 0?void 0:Yt.clusterId,Ee=(ee=l.find(function(Ye){return Ye.id===ce}))===null||ee===void 0?void 0:ee.clusterId,Ce="".concat(le,"---").concat(Ee);if(Pt[Ce])Pt[Ce].count++;else{var We={source:le,target:Ee,count:1};Pt[Ce]=We,pt.push(We)}}),{clusters:E,clusterEdges:pt}},jC=zC,WC=function(t,e){var r=new Ti(e),i=r.norm2(),a=new Ti(t),s=a.norm2(),o=r.dot(a),l=i*s,c=l?o/l:0;return c},ry=WC,GC=function(t,e,r,i,a){t===void 0&&(t=[]),r===void 0&&(r=void 0),i===void 0&&(i=[]),a===void 0&&(a=[]);var s=gl(t.filter(function(d){return d.id!==e.id})),o=t.findIndex(function(d){return d.id===e.id}),l=au(t,r),c=su(l,i,a),u=c[o],h=[];return s.forEach(function(d,f){if(d.id!==e.id){var v=c[f],g=ry(v,u);h.push(g),d.cosineSimilarity=g}}),s.sort(function(d,f){return f.cosineSimilarity-d.cosineSimilarity}),{allCosineSimilarity:h,similarNodes:s}},ZC=GC,VC=function(){function n(t){this.count=t.length,this.parent={};for(var e=0,r=t;e0&&(this.list[0]=e,this.moveDown(0)),t},n.prototype.insert=function(t){if(t!==null){this.list.push(t);var e=this.list.length-1;return this.moveUp(e),!0}return!1},n.prototype.moveUp=function(t){for(var e=this.getParent(t);t&&t>0&&this.compareFn(this.list[e],this.list[t])>0;){var r=this.list[e];this.list[e]=this.list[t],this.list[t]=r,t=e,e=this.getParent(t)}},n.prototype.moveDown=function(t){var e,r=t,i=this.getLeft(t),a=this.getRight(t),s=this.list.length;i!==null&&i0?r=i:a!==null&&a0&&(r=a),t!==r&&(e=[this.list[r],this.list[t]],this.list[t]=e[0],this.list[r]=e[1],this.moveDown(r))},n}(),XC=HC,KC=function(t,e){var r=[],i=t.nodes,a=i===void 0?[]:i,s=t.edges,o=s===void 0?[]:s;if(a.length===0)return r;var l=a[0],c=new Set;c.add(l);var u=function(p,y){return e?p.weight-y.weight:0},h=new XC(u);for(tu(l.id,o).forEach(function(g){h.insert(g)});!h.isEmpty();){var d=h.delMin(),f=d.source,v=d.target;c.has(f)&&c.has(v)||(r.push(d),c.has(f)||(c.add(f),tu(f,o).forEach(function(g){h.insert(g)})),c.has(v)||(c.add(v),tu(v,o).forEach(function(g){h.insert(g)})))}return r},iy=function(t,e){var r=[],i=t.nodes,a=i===void 0?[]:i,s=t.edges,o=s===void 0?[]:s;if(a.length===0)return r;var l=o.map(function(f){return f});e&&l.sort(function(f,v){return f.weight-v.weight});for(var c=new UC(a.map(function(f){return f.id}));l.length>0;){var u=l.shift(),h=u.source,d=u.target;c.connected(h,d)||(r.push(u),c.union(h,d))}return r},QC=function(t,e,r){var i={prim:KC,kruskal:iy};return r?i[r](t,e):iy(t,e)},qC=QC,JC=function(t,e,r){typeof e!="number"&&(e=1e-6),typeof r!="number"&&(r=.85);for(var i=1,a=0,s=1e3,o=t.nodes,l=o===void 0?[]:o,c=t.edges,u=c===void 0?[]:c,h=l.length,d,f={},v={},g=0;g0&&i>e;){a=0;for(var g=0;g0&&(d+=v[k]/R)}f[y]=r*d,a+=f[y]}}a=(1-a)/h,i=0;for(var g=0;g=0;r--){var i=this.dfsEdgeList[r],a=i.fromNode,s=i.toNode;af||i.hasNode(s[d.to])||(e.labelE;k--){var R=O(k);if(R==="break")break}if(y){var z=t.findMinLabel(p);s.dfsEdgeList.push(new Os(g,b,ia,z.edgeLabel,ia));var B=s.dfsEdgeList.length-1;return t.dfsCode.dfsEdgeList[B]!==s.dfsEdgeList[B]?!1:h(p[z.edgeLabel].projected)}var V={};y=!1;var U=0;d.forEach(function(Nt){var Ct=new lu(Nt),gt=t.findForwardPureEdges(i,Ct.edges[f[0]],v,Ct);gt.length>0&&(y=!0,U=g,gt.forEach(function(pt){var Pt="".concat(pt.label,"-").concat(a[pt.to].label);V[Pt]||(V[Pt]={projected:[],edgeLabel:pt.label,nodeLabel2:a[pt.to].label}),V[Pt].projected.push({graphId:i.id,edge:pt,preNode:Nt})}))});for(var J=f.length,$=function(Ct){if(y)return"break";var gt=f[Ct];d.forEach(function(pt){var Pt=new lu(pt),jt=t.findForwardRmpathEdges(i,Pt.edges[gt],v,Pt);jt.length>0&&(y=!0,U=s.dfsEdgeList[gt].fromNode,jt.forEach(function(Yt){var ee="".concat(Yt.label,"-").concat(a[Yt.to].label);V[ee]||(V[ee]={projected:[],edgeLabel:Yt.label,nodeLabel2:a[Yt.to].label}),V[ee].projected.push({graphId:i.id,edge:Yt,preNode:pt})}))})},k=0;k=0;v--){var g=e.findBackwardEdge(h,f.edges[a[v]],f.edges[a[0]],f);if(g){var p="".concat(e.dfsCode.dfsEdgeList[a[v]].fromNode,"-").concat(g.label);c[p]||(c[p]={projected:[],toNodeId:e.dfsCode.dfsEdgeList[a[v]].fromNode,edgeLabel:g.label}),c[p].projected.push({graphId:u.graphId,edge:g,preNode:u})}}if(!(i>=e.maxNodeNum)){var y=e.findForwardPureEdges(h,f.edges[a[0]],o,f);y.forEach(function(E){var O="".concat(s,"-").concat(E.label,"-").concat(d[E.to].label);l[O]||(l[O]={projected:[],fromNodeId:s,edgeLabel:E.label,nodeLabel2:d[E.to].label}),l[O].projected.push({graphId:u.graphId,edge:E,preNode:u})});for(var b=function(O){var k=e.findForwardRmpathEdges(h,f.edges[a[O]],o,f);k.forEach(function(R){var z="".concat(e.dfsCode.dfsEdgeList[a[O]].fromNode,"-").concat(R.label,"-").concat(d[R.to].label);l[z]||(l[z]={projected:[],fromNodeId:e.dfsCode.dfsEdgeList[a[O]].fromNode,edgeLabel:R.label,nodeLabel2:d[R.to].label}),l[z].projected.push({graphId:u.graphId,edge:R,preNode:u})})},v=0;vE){var O=E;E=b,b=O}var k=y.label,R="".concat(c,"-").concat(b,"-").concat(k,"-").concat(E),z="".concat(b,"-").concat(k,"-").concat(E);if(!s[z]){var B=s[z]||0;B++,s[z]=B}l[R]={graphId:c,nodeLabel1:b,edgeLabel:k,nodeLabel2:E}})})}),Object.keys(a).forEach(function(c){var u=a[c];if(!(u2*e)););if(p<2*e&&(o["".concat(u,"-").concat(g)]={start:u,end:g,distance:a[u][g]},h++,l++,l>=r))return o;if(d++,d>2*e)break}if(hd&&(l=d);var f=r[h.id].inDegree;c>f&&(c=f);var v=r[h.id].outDegree;u>v&&(u=v)}),t[e]={degree:l,inDegree:c,outDegree:u}),{minPatternNodeLabelDegree:l,minPatternNodeLabelInDegree:c,minPatternNodeLabelOutDegree:u}},cN=function(t,e,r,i,a,s,o){var l;if(r===void 0&&(r=!1),s===void 0&&(s="cluster"),o===void 0&&(o="cluster"),!(!t||!t.nodes)){var c=t.nodes.length;if(c){var u=Ff(t,r),h=Ff(e,r),d=py(t.nodes,u,r),f=py(e.nodes,h,r),v=vy(t.nodes,s),g=v.nodeMap,p=v.nodeLabelMap,y=vy(e.nodes,s),b=y.nodeMap,E=y.nodeLabelMap;gy(t.edges,o,g);var O=gy(e.edges,o,b).edgeLabelMap,k=[];h==null||h.forEach(function(ze){k=k.concat(ze)}),a||(a=Math.max.apply(Math,(0,Z.ev)((0,Z.ev)([],k,!1),[2],!1))),i||(i=a);var R=dy(t,u,s,i),z=dy(e,h,s,i),B=Math.min(100,c*(c-1)/2),V=sN(i,c,B,R,u),U=cu(V,R,t),J=10,$=1,st=1,ct=4,ft={graphs:U,nodeLabelProp:s,edgeLabelProp:o,minSupport:$,minNodeNum:st,maxNodeNum:ct,directed:r},Nt=aN(ft).slice(0,J),Ct=Nt.length,gt=[];Nt.forEach(function(ze,$e){gt[$e]={},Object.keys(U).forEach(function(je){var Xe=U[je],an=uu(Xe,ze,s,o);gt[$e][je]=an})});var pt=oN(gt,Ct,Nt),Pt=pt.structure,jt=pt.structureCountMap,Yt=e.nodes[0],ee=[],ie=(l=e.nodes[0])===null||l===void 0?void 0:l[s],ce=-1/0;e.nodes.forEach(function(ze){var $e=ze[s],je=p[$e];(je==null?void 0:je.length)>ce&&(ce=je.length,ee=je,ie=$e,Yt=ze)});var le={},Ee={},Ce={},We={},Ye={},or={};Object.keys(E).forEach(function(ze,$e){Ye[ze]=[],r&&(or[ze]=[]);var je=-1/0,Xe=E[ze],an={};Xe.forEach(function(en){var Qe=f["".concat(Yt.id,"-").concat(en.id)];if(Qe&&Ye[ze].push(Qe),jeYe[ze][Wr]){Do=!0;break}if(Do)return ee.splice(Qe,1),"continue";var Ni={};vi.neighbors.forEach(function(Gr){var Yi=d["".concat(Bn.id,"-").concat(Gr.id)];Ni["".concat(Bn.id,"-").concat(Gr.id)]={start:g[Bn.id].idx,end:g[Gr.id].idx,distance:Yi}}),U=cu(Ni,R,t,U);var ca=[];Object.keys(Ni).forEach(function(Gr){if(jt[Gr]){ca.push(jt[Gr]);return}var Yi=U[Gr];jt[Gr]=uu(Yi,Pt,s,o),ca.push(jt[Gr])}),ca=ca.sort(function(Gr,Yi){return Yi-Gr});for(var rs=!1,Wr=0;Wr=0;er--)tn(er)});var Je=[];ee==null||ee.forEach(function(ze){for(var $e=g[ze.id].idx,je=fy(t.nodes,u[$e],$e,s,a),Xe=je.neighbors,an=Xe.length,pe=!1,Ke=an-1;Ke>=0;Ke--){if(Xe.length+1vi){Xe.splice(Ke,1);continue}if(r){var Un="".concat(tn.id,"-").concat(ze.id),Ys=d[Un];Bn=or[er].length-1;var Do=or[er][Bn];if(Ys>Do){Xe.splice(Ke,1);continue}}var Wr=jt[en]?jt[en]:lN(t,ze,tn,g,Qe,R,Pt,s,o,jt,U),Ni="".concat(Yt.id,"-").concat(er),ca=We[Ni][We[Ni].length-1];if(Wr=0;Qe--){var Do=Ys(Qe);if(Do==="break")break}if(Un)return Je.splice($e,1),"continue";je.edges=Ke;var Wr=iu(je,je.nodes[0].id,!1).length;if(Object.keys(Wr).reverse().forEach(function(En){if(!(En===je.nodes[0].id||Un)){if(Wr[En]===1/0){var gi=pe[En].node[s];if(an[gi]--,an[gi]_r[ua][_r[ua].length-1]){var gi=pe[En].node[s];if(an[gi]--,an[gi]=0;Yi--){var Aa=je.nodes[Yi],nw=pe[Aa.id].degree,ZB=pe[Aa.id].inDegree,VB=pe[Aa.id].outDegree,UB=Aa[s],G0=my(le,UB,b,E),rw=G0.minPatternNodeLabelDegree,YB=G0.minPatternNodeLabelInDegree,HB=G0.minPatternNodeLabelOutDegree,XB=r?nw=0;fd--){var Ta=Ke[fd];if(!pe[Ta.source]||!pe[Ta.target]){Ke.splice(fd,1);var vd=Ta[o];if(tn[vd]--,pe[Ta.source]&&(pe[Ta.source].degree--,pe[Ta.source].outDegree--),pe[Ta.target]&&(pe[Ta.target].degree--,pe[Ta.target].inDegree--),O[vd]&&tn[vd]=0;vr--){var Ma=Sr(vr);if(Ma==="break")break}for(var Mr=Je.length,ei=function($e){var je=Je[$e],Xe={};je.edges.forEach(function(Ke){var tn="".concat(Ke.source,"-").concat(Ke.target,"-").concat(Ke.label);Xe[tn]?Xe[tn]++:Xe[tn]=1});for(var an=function(tn){var er=Je[tn],en={};er.edges.forEach(function(Bn){var vi="".concat(Bn.source,"-").concat(Bn.target,"-").concat(Bn.label);en[vi]?en[vi]++:en[vi]=1});var Qe=!0;Object.keys(en).length!==Object.keys(Xe).length?Qe=!1:Object.keys(Xe).forEach(function(Bn){en[Bn]!==Xe[Bn]&&(Qe=!1)}),Qe&&Je.splice(tn,1)},pe=Mr-1;pe>$e;pe--)an(pe);Mr=Je.length},vr=0;vr<=Mr-1;vr++)ei(vr);return Je}}},uN=cN,hN=function(){function n(t){t===void 0&&(t=10),this.linkedList=new Im,this.maxStep=t}return Object.defineProperty(n.prototype,"length",{get:function(){return this.linkedList.toArray().length},enumerable:!1,configurable:!0}),n.prototype.isEmpty=function(){return!this.linkedList.head},n.prototype.isMaxStack=function(){return this.toArray().length>=this.maxStep},n.prototype.peek=function(){return this.isEmpty()?null:this.linkedList.head.value},n.prototype.push=function(t){this.linkedList.prepend(t),this.length>this.maxStep&&this.linkedList.deleteTail()},n.prototype.pop=function(){var t=this.linkedList.deleteHead();return t?t.value:null},n.prototype.toArray=function(){return this.linkedList.toArray().map(function(t){return t.value})},n.prototype.clear=function(){for(;!this.isEmpty();)this.pop()},n}(),dN=hN,fN=Vm,d7={getAdjMatrix:$c,breadthFirstSearch:YO,connectedComponent:zm,getDegree:kf,getInDegree:XO,getOutDegree:KO,detectCycle:Vm,detectDirectedCycle:fN,detectAllCycles:JO,detectAllDirectedCycle:Zm,detectAllUndirectedCycle:Gm,depthFirstSearch:Wm,dijkstra:iu,findAllPath:AC,findShortestPath:Bf,floydWarshall:Ff,labelPropagation:CC,louvain:ey,iLouvain:IC,kCore:FC,kMeans:jC,cosineSimilarity:ry,nodesCosineSimilarity:ZC,minimumSpanningTree:qC,pageRank:ay,getNeighbors:Ai,Stack:dN,GADDI:uN};function At(n){if(n.id!==void 0)return n.id;if(n.source!==void 0&&n.target!==void 0)return`${n.source}-${n.target}`;throw new Error(ga("The datum does not have available id."))}function hu(n){return n.combo}function yy(n,t){const e={nodes:(n.nodes||[]).map(At),edges:(n.edges||[]).map(At),combos:(n.combos||[]).map(At)};return t?Object.values(e).flat():e}const by=(n,t,e)=>{var r;switch(e.type){case"degree":{const i=new Map;return(r=n.nodes)===null||r===void 0||r.forEach(a=>{const s=t(At(a),e.direction).length;i.set(At(a),s)}),i}case"betweenness":return vN(n,e.directed,e.weightPropertyName);case"closeness":return gN(n,e.directed,e.weightPropertyName);case"eigenvector":return mN(n,e.directed);case"pagerank":return pN(n,e.epsilon,e.linkProb);default:return xy(n)}},xy=n=>{var t;const e=new Map;return(t=n.nodes)===null||t===void 0||t.forEach(r=>{e.set(At(r),0)}),e},vN=(n,t,e)=>{const r=xy(n),{nodes:i=[]}=n;return i.forEach(a=>{i.forEach(s=>{if(a!==s){const{allPath:o}=Bf(n,At(a),At(s),t,e),l=o.length;o.flat().forEach(c=>{c!==At(a)&&c!==At(s)&&r.set(c,r.get(c)+1/l)})}})}),r},gN=(n,t,e)=>{const r=new Map,{nodes:i=[]}=n;return i.forEach(a=>{const s=i.reduce((o,l)=>{if(a!==l){const{length:c}=Bf(n,At(a),At(l),t,e);o+=c}return o},0);r.set(At(a),1/s)}),r},pN=(n,t,e)=>{var r;const i=new Map,a=ay(n,t,e);return(r=n.nodes)===null||r===void 0||r.forEach(s=>{i.set(At(s),a[At(s)])}),i},mN=(n,t)=>{const{nodes:e=[]}=n,r=yN(n,t),i=bN(r,e.length),a=new Map;return e.forEach((s,o)=>{a.set(At(s),i[o])}),a},yN=(n,t)=>{const{nodes:e=[],edges:r=[]}=n,i=Array(e.length).fill(null).map(()=>Array(e.length).fill(0));return r.forEach(({source:a,target:s})=>{const o=e.findIndex(c=>At(c)===a),l=e.findIndex(c=>At(c)===s);t?i[o][l]=1:(i[o][l]=1,i[l][o]=1)}),i},bN=(n,t,e=100,r=1e-6)=>{let i=Array(t).fill(1),a=1/0;for(let s=0;sr;s++){const o=Array(t).fill(0);for(let c=0;cc+u*u,0));for(let c=0;cc+(u-i[h])*u,0)),i=o}return i};function ja(n,t,e,r=Wn){const i=new Map(n.map(d=>[e(d),d])),a=new Map(t.map(d=>[e(d),d])),s=new Set(i.keys()),o=new Set(a.keys()),l=[],c=[],u=[],h=[];return o.forEach(d=>{s.has(d)?r(i.get(d),a.get(d))?h.push(a.get(d)):c.push(a.get(d)):l.push(a.get(d))}),s.forEach(d=>{o.has(d)||u.push(i.get(d))}),{enter:l,exit:u,keep:h,update:c}}function Cs(n,t,e){const r=i=>{e&&!e(i)||(i.style.visibility=t)};n.forEach(i=>{r(i)})}function xN(n,t,e){const r={},i=a=>(a in r||(r[a]=0),`${t}-${a}-${r[a]++}`);return e.map(a=>typeof a=="string"?{type:a,key:i(a)}:typeof a=="function"?a.call(n):a.key?a:Object.assign(Object.assign({},a),{key:i(a.type)}))}class Wf{constructor(t){this.extensions=[],this.extensionMap={},this.context=t}setExtensions(t){const e=xN(this.context.graph,this.category,t),{enter:r,update:i,exit:a,keep:s}=ja(this.extensions,e,o=>o.key);this.createExtensions(r),this.updateExtensions([...i,...s]),this.destroyExtensions(a),this.extensions=e}createExtension(t){const{category:e}=this,{key:r,type:i}=t,a=va(e,i);if(!a)return qr.warn(`The extension ${i} of ${e} is not registered.`);const s=new a(this.context,t);s.initialized=!0,this.extensionMap[r]=s}createExtensions(t){t.forEach(e=>this.createExtension(e))}updateExtension(t){const{key:e}=t,r=this.extensionMap[e];r&&r.update(t)}updateExtensions(t){t.forEach(e=>this.updateExtension(e))}destroyExtension(t){const e=this.extensionMap[t];e&&(e.initialized&&!e.destroyed&&e.destroy(),delete this.extensionMap[t])}destroyExtensions(t){t.forEach(({key:e})=>this.destroyExtension(e))}destroy(){this.destroyExtensions(this.extensions),this.context={},this.extensions=[],this.extensionMap={}}}class Gf{constructor(t,e){this.events=[],this.initialized=!1,this.destroyed=!1,this.context=t,this.options=e}update(t){this.options=Object.assign(this.options,t)}destroy(){this.context={},this.options={},this.destroyed=!0}}class li extends Gf{}class du extends li{constructor(t,e){super(t,Object.assign({},du.defaultOptions,e)),this.isOverlapping=(r,i)=>i.some(a=>r.intersects(a)),this.occupiedBounds=[],this.detectLabelCollision=r=>{const i=this.context.viewport,a={show:[],hide:[]};return this.occupiedBounds=[],r.forEach(s=>{const o=s.getShape("label").getRenderBounds();i.isInViewport(o,!0)&&!this.isOverlapping(o,this.occupiedBounds)?(a.show.push(s),this.occupiedBounds.push(za(o,this.options.padding))):a.hide.push(s)}),a},this.hideLabelIfExceedViewport=(r,i)=>{const{exit:a}=ja(r,i,s=>s.id);a==null||a.forEach(this.hideLabel)},this.nodeCentralities=new Map,this.sortNodesByCentrality=(r,i)=>{const{model:a}=this.context,s=a.getData(),o=a.getRelatedEdgesData.bind(a);return r.map(c=>(this.nodeCentralities.has(c.id)||(this.nodeCentralities=by(s,o,i)),{node:c,centrality:this.nodeCentralities.get(c.id)})).sort((c,u)=>u.centrality-c.centrality).map(c=>c.node)},this.sortLabelElementsInView=r=>{const{sort:i,sortNode:a,sortCombo:s,sortEdge:o}=this.options,{model:l}=this.context;if(ue(i))return r.sort((g,p)=>i(l.getElementDataById(g.id),l.getElementDataById(p.id)));const{node:c=[],edge:u=[],combo:h=[]}=qc(r,g=>g.type),d=ue(s)?h.sort((g,p)=>s(...l.getComboData([g.id,p.id]))):h,f=ue(a)?c.sort((g,p)=>a(...l.getNodeData([g.id,p.id]))):this.sortNodesByCentrality(c,a),v=ue(o)?u.sort((g,p)=>o(...l.getEdgeData([g.id,p.id]))):u;return[...d,...f,...v]},this.labelElementsInView=[],this.isFirstRender=!0,this.onToggleVisibility=r=>{var i;if(((i=r.data)===null||i===void 0?void 0:i.stage)==="zIndex")return;if(!this.validate(r)){this.hiddenElements.size>0&&(this.hiddenElements.forEach(this.showLabel),this.hiddenElements.clear());return}const a=this.isFirstRender?this.getLabelElements():this.getLabelElementsInView();this.hideLabelIfExceedViewport(this.labelElementsInView,a),this.labelElementsInView=a;const s=this.sortLabelElementsInView(this.labelElementsInView),{show:o,hide:l}=this.detectLabelCollision(s);for(let c=o.length-1;c>=0;c--)this.showLabel(o[c]);l.forEach(this.hideLabel)},this.hiddenElements=new Map,this.hideLabel=r=>{const i=r.getShape("label");i&&Cs(i,"hidden"),this.hiddenElements.set(r.id,r)},this.showLabel=r=>{const i=r.getShape("label");i&&Cs(i,"visible"),r.toFront(),this.hiddenElements.delete(r.id)},this.onTransform=Lm(this.onToggleVisibility,this.options.throttle,{leading:!0}),this.enableToggle=!0,this.toggle=r=>{this.enableToggle&&this.onToggleVisibility(r)},this.onBeforeRender=()=>{this.enableToggle=!1},this.onAfterRender=r=>{this.onToggleVisibility(r),this.enableToggle=!0},this.bindEvents()}update(t){this.unbindEvents(),super.update(t),this.bindEvents(),this.onToggleVisibility({})}getLabelElements(){const{elementMap:t}=this.context.element,e=[];for(const r in t){const i=t[r];i.isVisible()&&i.getShape("label")&&e.push(i)}return e}getLabelElementsInView(){const t=this.context.viewport;return this.getLabelElements().filter(e=>t.isInViewport(e.getShape("key").getRenderBounds()))}bindEvents(){const{graph:t}=this.context;t.on(Xt.BEFORE_RENDER,this.onBeforeRender),t.on(Xt.AFTER_RENDER,this.onAfterRender),t.on(Xt.AFTER_DRAW,this.toggle),t.on(Xt.AFTER_LAYOUT,this.toggle),t.on(Xt.AFTER_TRANSFORM,this.onTransform)}unbindEvents(){const{graph:t}=this.context;t.off(Xt.BEFORE_RENDER,this.onBeforeRender),t.off(Xt.AFTER_RENDER,this.onAfterRender),t.off(Xt.AFTER_DRAW,this.toggle),t.off(Xt.AFTER_LAYOUT,this.toggle),t.off(Xt.AFTER_TRANSFORM,this.onTransform)}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return ue(e)?e(t):!!e}destroy(){this.unbindEvents(),super.destroy()}}du.defaultOptions={enable:!0,throttle:100,padding:0,sortNode:{type:"degree"}};var EN=function(n){if(!Sf(n)||!Og(n,"Object"))return!1;if(Object.getPrototypeOf(n)===null)return!0;for(var t=n;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(n)===t},fo=EN,wN=5;function SN(n,t){if(Object.hasOwn)return Object.hasOwn(n,t);if(n==null)throw new TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(n),t)}function Ey(n,t,e,r){e=e||0,r=r||wN;for(var i in t)if(SN(t,i)){var a=t[i];a!==null&&fo(a)?(fo(n[i])||(n[i]={}),ee+t[r])}function un(n,t){return n.map((e,r)=>e-t[r])}function Bi(n,t){return typeof t=="number"?n.map(e=>e*t):n.map((e,r)=>e*t[r])}function Fi(n,t){return typeof t=="number"?n.map(e=>e/t):n.map((e,r)=>e/t[r])}function AN(n,t){return n.reduce((e,r,i)=>e+r*t[i],0)}function TN(n,t){const e=pl(n),r=pl(t);return[e[1]*r[2]-e[2]*r[1],e[2]*r[0]-e[0]*r[2],e[0]*r[1]-e[1]*r[0]]}function Wa(n,t){return n.map(e=>e*t)}function xn(n,t){return Math.sqrt(n.reduce((e,r,i)=>e+Math.pow(r-t[i]||0,2),0))}function fu(n,t){return n.reduce((e,r,i)=>e+Math.abs(r-t[i]),0)}function pa(n){const t=n.reduce((e,r)=>e+Math.pow(r,2),0);return n.map(e=>e/Math.sqrt(t))}function Zf(n,t,e=!1){const r=n[0]*t[1]-n[1]*t[0];let i=Math.acos(Bi(n,t).reduce((a,s)=>a+s,0)/(xn(n,wy)*xn(t,wy)));return e&&r<0&&(i=2*Math.PI-i),i}function f7(n,t){return n.every((e,r)=>e===t[r])}function vu(n,t=!0){return t?[-n[1],n[0]]:[n[1],-n[0]]}function Vf(n,t){return n.map(e=>e%t)}function Ns(n){return[n[0],n[1]]}function pl(n){return PO(n)?[n[0],n[1],0]:n}function Sy(n){const[t,e]=n;return!t&&!e?0:Math.atan2(e,t)}function My(n,t){const[e,r]=n;if(t%360===0)return[e,r];const i=t*Math.PI/180,a=Math.cos(i),s=Math.sin(i);return[e*a-r*s,e*s+r*a]}function Ay(n,t){const[e,r]=n,[i,a]=t,s=un(e,r),o=un(i,a);return TN(s,o).every(l=>l===0)}function Uf(n,t,e=!1){if(Ay(n,t))return;const[r,i]=n,[a,s]=t,o=((r[0]-a[0])*(a[1]-s[1])-(r[1]-a[1])*(a[0]-s[0]))/((r[0]-i[0])*(a[1]-s[1])-(r[1]-i[1])*(a[0]-s[0])),l=s[0]-a[0]?(r[0]-a[0]+o*(i[0]-r[0]))/(s[0]-a[0]):(r[1]-a[1]+o*(i[1]-r[1]))/(s[1]-a[1]);if(!(!e&&(!ea(o,0,1)||!ea(l,0,1))))return[r[0]+o*(i[0]-r[0]),r[1]+o*(i[1]-r[1])]}function Ty(n){if(Array.isArray(n))return ea(n[0],0,1)&&ea(n[1],0,1)?n:[.5,.5];const t=n.split("-"),e=t.includes("left")?0:t.includes("right")?1:.5,r=t.includes("top")?0:t.includes("bottom")?1:.5;return[e,r]}function ir(n){const{x:t=0,y:e=0,z:r=0}=n.style||{};return[+t,+e,+r]}function ON(n){const{x:t,y:e,z:r}=n.style||{};return t!==void 0||e!==void 0||r!==void 0}function Oy(n,t){const[e,r]=t,{min:i,max:a}=n;return[i[0]+e*(a[0]-i[0]),i[1]+r*(a[1]-i[1])]}function ma(n,t="center"){const e=Ty(t);return Oy(n,e)}function v7(n,t){const e=parseAnchor(t);return Oy(n,e)}const g7=n=>{const[t,e]=n;return{left:Math.min(t[0],e[0]),right:Math.max(t[0],e[0]),top:Math.min(t[1],e[1]),bottom:Math.max(t[1],e[1])}};function br(n){var t;return[n.x,n.y,(t=n.z)!==null&&t!==void 0?t:0]}function zi(n){var t;return{x:n[0],y:n[1],z:(t=n[2])!==null&&t!==void 0?t:0}}function p7(n){return n.sort((t,e)=>t[0]-e[0]||t[1]-e[1])}function m7(n){const t=new Set;return n.filter(e=>{const r=e.join(",");return t.has(r)?!1:(t.add(r),!0)})}function ml(n,t=0){return n.map(e=>parseFloat(e.toFixed(t)))}function Ga(n,t,e,r=!1){if(Wn(n,t))return n;const i=r?un(n,t):un(t,n),a=pa(i),s=[a[0]*e,a[1]*e];return Re(Ns(n),s)}function Cy(n,t){return n[1]===t[1]}function CN(n,t){return n[0]===t[0]}function NN(n,t){return Cy(n,t)||CN(n,t)}function Ny(n,t,e){return Ay([n,t],[t,e])}function ky(n,t){return[2*t[0]-n[0],2*t[1]-n[1]]}function Py(n,t,e,r=!0,i=!1){for(let a=0;aa!=f>a&&i<(d-u)*(a-h)/(f-h)+u&&(s=!s)}return s}function PN(n,t,e=!1){const r=ma(t,"center"),i=[ma(t,"left-top"),ma(t,"right-top"),ma(t,"right-bottom"),ma(t,"left-bottom")];return Py(n,r,i,!1,e).point}function gu(n,t,e=!1){const r=t.center,i=e?ky(n,r):n,a=un(i,t.center),s=Math.atan2(a[1],a[0]);if(isNaN(s))return r;const o=na(t)/2,l=ra(t)/2,c=r[0]+o*Math.cos(s),u=r[1]+l*Math.sin(s);return[c,u]}function RN(n,t){let e=1/0,r=[n[0],t[0]];return n.forEach(i=>{t.forEach(a=>{const s=xn(i,a);s{const a=_N(n,i);a1?u=1:u<0&&(u=0);const h=e+u*l,d=r+u*c;return[h,d]}function DN(n){const t=n.reduce((e,r)=>Re(e,r),[0,0]);return Fi(t,n.length)}function Yf(n,t=!0){const e=DN(n);return n.sort(([r,i],[a,s])=>{const o=Math.atan2(i-e[1],r-e[0]),l=Math.atan2(s-e[1],a-e[0]);return t?l-o:o-l})}function Ly(n,t){return[n,[n[0],t[1]],t,[t[0],n[1]]]}class Gn{constructor(t,e,r){if(this.phase=e,this.pointerByTouch=[],this.initialDistance=null,this.emitter=t,Gn.instance)return Gn.callbacks[this.phase].push(r),Gn.instance;this.onPointerDown=this.onPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.bindEvents(),Gn.instance=this,Gn.callbacks[this.phase].push(r)}bindEvents(){const{emitter:t}=this;t.on(It.POINTER_DOWN,this.onPointerDown),t.on(It.POINTER_MOVE,this.onPointerMove),t.on(It.POINTER_UP,this.onPointerUp)}updatePointerPosition(t,e,r){const i=this.pointerByTouch.findIndex(a=>a.pointerId===t);i>=0&&(this.pointerByTouch[i]={x:e,y:r,pointerId:t})}onPointerDown(t){const{x:e,y:r}=t.client||{};if(!(e===void 0||r===void 0)&&(this.pointerByTouch.push({x:e,y:r,pointerId:t.pointerId}),t.pointerType==="touch"&&this.pointerByTouch.length===2)){Gn.isPinching=!0;const i=this.pointerByTouch[0].x-this.pointerByTouch[1].x,a=this.pointerByTouch[0].y-this.pointerByTouch[1].y;this.initialDistance=Math.sqrt(i*i+a*a),Gn.callbacks.pinchstart.forEach(s=>s(t,{scale:0}))}}onPointerMove(t){if(this.pointerByTouch.length!==2||this.initialDistance===null)return;const{x:e,y:r}=t.client||{};if(e===void 0||r===void 0)return;this.updatePointerPosition(t.pointerId,e,r);const i=this.pointerByTouch[0].x-this.pointerByTouch[1].x,a=this.pointerByTouch[0].y-this.pointerByTouch[1].y,o=Math.sqrt(i*i+a*a)/this.initialDistance;Gn.callbacks.pinchmove.forEach(l=>l(t,{scale:(o-1)*5}))}onPointerUp(t){var e;Gn.callbacks.pinchend.forEach(r=>r(t,{scale:0})),Gn.isPinching=!1,this.initialDistance=null,this.pointerByTouch=[],(e=Gn.instance)===null||e===void 0||e.tryDestroy()}destroy(){this.emitter.off(It.POINTER_DOWN,this.onPointerDown),this.emitter.off(It.POINTER_MOVE,this.onPointerMove),this.emitter.off(It.POINTER_UP,this.onPointerUp),Gn.instance=null}off(t,e){const r=Gn.callbacks[t].indexOf(e);r>-1&&Gn.callbacks[t].splice(r,1),this.tryDestroy()}tryDestroy(){Object.values(Gn.callbacks).every(t=>t.length===0)&&this.destroy()}}Gn.isPinching=!1,Gn.instance=null,Gn.callbacks={pinchstart:[],pinchmove:[],pinchend:[]};const _y=n=>n.map(t=>Ve(t)?t.toLocaleLowerCase():t);class vo{constructor(t){this.map=new Map,this.boundHandlePinch=()=>{},this.recordKey=new Set,this.onKeyDown=e=>{e!=null&&e.key&&(this.recordKey.add(e.key),this.trigger(e))},this.onKeyUp=e=>{e!=null&&e.key&&this.recordKey.delete(e.key)},this.onWheel=e=>{this.triggerExtendKey(It.WHEEL,e)},this.onDrag=e=>{this.triggerExtendKey(It.DRAG,e)},this.handlePinch=(e,r)=>{this.triggerExtendKey(It.PINCH,Object.assign(Object.assign({},e),r))},this.onFocus=()=>{this.recordKey.clear()},this.emitter=t,this.bindEvents()}bind(t,e){t.length!==0&&(t.includes(It.PINCH)&&!this.pinchHandler&&(this.boundHandlePinch=this.handlePinch.bind(this),this.pinchHandler=new Gn(this.emitter,"pinchmove",this.boundHandlePinch)),this.map.set(t,e))}unbind(t,e){this.map.forEach((r,i)=>{Wn(i,t)&&(!e||e===r)&&this.map.delete(i)})}unbindAll(){this.map.clear()}match(t){const e=_y(Array.from(this.recordKey)).sort(),r=_y(t).sort();return Wn(e,r)}bindEvents(){var t;const{emitter:e}=this;e.on(It.KEY_DOWN,this.onKeyDown),e.on(It.KEY_UP,this.onKeyUp),e.on(It.WHEEL,this.onWheel),e.on(It.DRAG,this.onDrag),(t=globalThis.addEventListener)===null||t===void 0||t.call(globalThis,"focus",this.onFocus)}trigger(t){this.map.forEach((e,r)=>{this.match(r)&&e(t)})}triggerExtendKey(t,e){this.map.forEach((r,i)=>{i.includes(t)&&Wn(Array.from(this.recordKey),i.filter(a=>a!==t))&&r(e)})}destroy(){var t,e;this.unbindAll(),this.emitter.off(It.KEY_DOWN,this.onKeyDown),this.emitter.off(It.KEY_UP,this.onKeyUp),this.emitter.off(It.WHEEL,this.onWheel),this.emitter.off(It.DRAG,this.onDrag),(t=this.pinchHandler)===null||t===void 0||t.off("pinchmove",this.boundHandlePinch),(e=globalThis.removeEventListener)===null||e===void 0||e.call(globalThis,"blur",this.onFocus)}}class yl extends li{constructor(t,e){super(t,yr({},yl.defaultOptions,e)),this.shortcut=new vo(t.graph),this.onPointerDown=this.onPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.clearStates=this.clearStates.bind(this),this.bindEvents()}onPointerDown(t){if(!this.validate(t)||!this.isKeydown()||this.startPoint)return;const{canvas:e,graph:r}=this.context,i=Object.assign({},this.options.style);this.options.style.lineWidth&&(i.lineWidth=+this.options.style.lineWidth/r.getZoom()),this.rectShape=new mr({id:"g6-brush-select",style:i}),e.appendChild(this.rectShape),this.startPoint=[t.canvas.x,t.canvas.y]}onPointerMove(t){var e;if(!this.startPoint)return;const{immediately:r,mode:i}=this.options;this.endPoint=pu(t,this.context.graph),(e=this.rectShape)===null||e===void 0||e.attr({x:Math.min(this.endPoint[0],this.startPoint[0]),y:Math.min(this.endPoint[1],this.startPoint[1]),width:Math.abs(this.endPoint[0]-this.startPoint[0]),height:Math.abs(this.endPoint[1]-this.startPoint[1])}),r&&i==="default"&&this.updateElementsStates(Ly(this.startPoint,this.endPoint))}onPointerUp(t){if(this.startPoint){if(!this.endPoint){this.clearBrush();return}this.endPoint=pu(t,this.context.graph),this.updateElementsStates(Ly(this.startPoint,this.endPoint)),this.clearBrush()}}clearStates(){this.endPoint||this.clearElementsStates()}clearElementsStates(){const{graph:t}=this.context,e=Object.values(t.getData()).reduce((r,i)=>Object.assign({},r,i.reduce((a,s)=>{var o;const l=(o=s.states||[])===null||o===void 0?void 0:o.filter(c=>c!==this.options.state);return a[At(s)]=l,a},{})),{});t.setElementState(e,this.options.animation)}updateElementsStates(t){const{graph:e}=this.context,{enableElements:r,state:i,mode:a,onSelect:s}=this.options,o=this.selector(e,t,r);let l={};switch(a){case"union":o.forEach(c=>{l[c]=[...e.getElementState(c),i]});break;case"diff":o.forEach(c=>{const u=e.getElementState(c);l[c]=u.includes(i)?u.filter(h=>h!==i):[...u,i]});break;case"intersect":o.forEach(c=>{const u=e.getElementState(c);l[c]=u.includes(i)?[i]:[]});break;case"default":default:o.forEach(c=>{l[c]=[i]});break}ue(s)&&(l=s(l)),e.setElementState(l,this.options.animation)}selector(t,e,r){if(!r||r.length===0)return[];const i=[],a=t.getData();if(r.forEach(s=>{a[`${s}s`].forEach(o=>{const l=At(o);t.getElementVisibility(l)!=="hidden"&&kN(t.getElementPosition(l),e)&&i.push(l)})}),r.includes("edge")){const s=a.edges;s==null||s.forEach(o=>{const{source:l,target:c}=o;i.includes(l)&&i.includes(c)&&i.push(At(o))})}return i}clearBrush(){var t;(t=this.rectShape)===null||t===void 0||t.remove(),this.rectShape=void 0,this.startPoint=void 0,this.endPoint=void 0}isKeydown(){const{trigger:t}=this.options,e=Array.isArray(t)?t:[t];return this.shortcut.match(e.filter(r=>r!=="drag"))}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return ue(e)?e(t):!!e}bindEvents(){const{graph:t}=this.context;t.on(It.POINTER_DOWN,this.onPointerDown),t.on(It.POINTER_MOVE,this.onPointerMove),t.on(It.POINTER_UP,this.onPointerUp),t.on(fa.CLICK,this.clearStates)}unbindEvents(){const{graph:t}=this.context;t.off(It.POINTER_DOWN,this.onPointerDown),t.off(It.POINTER_MOVE,this.onPointerMove),t.off(It.POINTER_UP,this.onPointerUp),t.off(fa.CLICK,this.clearStates)}update(t){this.unbindEvents(),this.options=yr(this.options,t),this.bindEvents()}destroy(){this.unbindEvents(),super.destroy()}}yl.defaultOptions={animation:!1,enable:!0,enableElements:["node","combo","edge"],immediately:!1,mode:"default",state:"selected",trigger:["shift"],style:{width:0,height:0,lineWidth:1,fill:"#1677FF",stroke:"#1677FF",fillOpacity:.1,zIndex:2,pointerEvents:"none"}};const pu=(n,t)=>{if((n.targetType==="node"||n.targetType==="combo")&&!(n.nativeEvent.target instanceof HTMLCanvasElement)){const[e,r]=t.getCanvasByClient([n.client.x,n.client.y]);return[e,r]}return[n.canvas.x,n.canvas.y]},ya=.8,ks=["node","edge","combo"];function Ps(n,t,e,r,i=0){r==="TB"&&t(n,i);const a=e(n);if(a)for(const s of a)Ps(s,t,e,r,i+1);r==="BT"&&t(n,i)}function IN(n,t,e){const r=[[n,0]];for(;r.length;){const[i,a]=r.shift();t(i,a);const s=e(i);if(s)for(const o of s)r.push([o,a+1])}}function Dy(n,t,e,r,i="both"){if(t==="combo"||t==="node")return Hf(n,e,r,i);const a=n.getEdgeData(e);if(!a)return[];const s=Hf(n,a.source,r-1,i),o=Hf(n,a.target,r-1,i);return Array.from(new Set([...s,...o,e]))}function Hf(n,t,e,r="both"){const i=new Set,a=new Set,s=new Set;return IN(t,(o,l)=>{l>e||(s.add(o),n.getRelatedEdgesData(o,r).forEach(c=>{const u=At(c);!a.has(u)&&ln.getRelatedEdgesData(o,r).map(l=>l.source===o?l.target:l.source).filter(l=>i.has(l)?!1:(i.add(l),!0))),Array.from(s)}function Xf(n){return n.states||[]}var mu=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};class yu extends li{constructor(t,e){super(t,Object.assign({},yu.defaultOptions,e)),this.onClickSelect=r=>mu(this,void 0,void 0,function*(){var i,a;this.validate(r)&&(yield this.updateState(r),(a=(i=this.options).onClick)===null||a===void 0||a.call(i,r))}),this.onClickCanvas=r=>mu(this,void 0,void 0,function*(){var i,a;this.validate(r)&&(yield this.clearState(),(a=(i=this.options).onClick)===null||a===void 0||a.call(i,r))}),this.shortcut=new vo(t.graph),this.bindEvents()}bindEvents(){const{graph:t}=this.context;this.unbindEvents(),ks.forEach(e=>{t.on(`${e}:${It.CLICK}`,this.onClickSelect)}),t.on(fa.CLICK,this.onClickCanvas)}get isMultipleSelect(){const{multiple:t,trigger:e}=this.options;return t&&this.shortcut.match(e)}getNeighborIds(t){const{target:e,targetType:r}=t,{graph:i}=this.context,{degree:a}=this.options;return Dy(i,r,e.id,typeof a=="function"?a(t):a).filter(s=>s!==e.id)}updateState(t){return mu(this,void 0,void 0,function*(){const{state:e,unselectedState:r,neighborState:i,animation:a}=this.options;if(!e&&!i&&!r)return;const{target:s}=t,{graph:o}=this.context,l=o.getElementData(s.id),c=Xf(l).includes(e)?"unselect":"select",u={},h=this.isMultipleSelect,d=[s.id],f=this.getNeighborIds(t);if(h)if(Object.assign(u,this.getDataStates()),c==="select"){const v=(g,p)=>{g.forEach(y=>{const b=new Set(o.getElementState(y));b.add(p),b.delete(r),u[y]=Array.from(b)})};v(d,e),v(f,i),r&&Object.keys(u).forEach(g=>{const p=u[g];!p.includes(e)&&!p.includes(i)&&!p.includes(r)&&u[g].push(r)})}else{const v=u[s.id];u[s.id]=v.filter(g=>g!==e&&g!==i),v.includes(r)||u[s.id].push(r),f.forEach(g=>{u[g]=u[g].filter(p=>p!==i),u[g].includes(e)||u[g].push(r)})}else if(c==="select"){Object.assign(u,this.getClearStates(!!r));const v=(g,p)=>{g.forEach(y=>{u[y]||(u[y]=o.getElementState(y)),u[y].push(p)})};v(d,e),v(f,i),r&&Object.keys(u).forEach(g=>{!d.includes(g)&&!f.includes(g)&&u[g].push(r)})}else Object.assign(u,this.getClearStates());yield o.setElementState(u,a)})}getDataStates(){const{graph:t}=this.context,{nodes:e,edges:r,combos:i}=t.getData(),a={};return[...e,...r,...i].forEach(s=>{a[At(s)]=Xf(s)}),a}getClearStates(t=!1){const{graph:e}=this.context,{state:r,unselectedState:i,neighborState:a}=this.options,s=new Set([r,i,a]),{nodes:o,edges:l,combos:c}=e.getData(),u={};return[...o,...l,...c].forEach(h=>{const d=Xf(h),f=d.filter(v=>!s.has(v));(t||f.length!==d.length)&&(u[At(h)]=f)}),u}clearState(){return mu(this,void 0,void 0,function*(){const{graph:t}=this.context;yield t.setElementState(this.getClearStates(),this.options.animation)})}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return ue(e)?e(t):!!e}unbindEvents(){const{graph:t}=this.context;ks.forEach(e=>{t.off(`${e}:${It.CLICK}`,this.onClickSelect)}),t.off(fa.CLICK,this.onClickCanvas)}destroy(){this.unbindEvents(),super.destroy()}}yu.defaultOptions={animation:!0,enable:!0,multiple:!1,trigger:["shift"],state:"selected",neighborState:"selected",unselectedState:void 0,degree:0};function Jr(n){var t;return!!(!((t=n.style)===null||t===void 0)&&t.collapsed)}var xr=function(n,t,e){for(var r=0,i=Ve(t)?t.split("."):t;n&&r="A"&&e<="Z"}function Iy(n,t){return`${t}${Kc(n)}`}function By(n,t,e=!0){if(!t||!xl(n,t))return n;const r=n.slice(t.length);return e?FN(r):r}function _n(n,t){const e=Object.entries(n).reduce((r,[i,a])=>(i==="className"||i==="class"||xl(i,t)&&Object.assign(r,{[By(i,t)]:a}),r),{});if("opacity"in n){const r=Iy("opacity",t),i=n.opacity;if(r in n){const a=n[r];Object.assign(e,{opacity:i*a})}else Object.assign(e,{opacity:i})}return e}function Kf(n,t){const e=t.length;return Object.keys(n).reduce((r,i)=>{if(i.startsWith(t)){const a=i.slice(e);r[a]=n[i]}return r},{})}function Fy(n,t){const e=typeof t=="string"?[t]:t,r={};return Object.keys(n).forEach(i=>{e.find(a=>i.startsWith(a))||(r[i]=n[i])}),r}function y7(n,t,e){return Object.entries(n).reduce((r,[i,a])=>(xl(i,t)?r[Iy(By(i,t,!1),e)]=a:r[i]=a,r),{})}function ci(n=0){if(typeof n=="number")return[n,n,n];const[t,e=t,r=t]=n;return[t,e,r]}var zN=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(n);itypeof a=="function"?[i,a.call(r,e)]:[i,a]))}function ur(n,t){const e=(n==null?void 0:n.style)||{},r=(t==null?void 0:t.style)||{};for(const i in e)i in r||(r[i]=e[i]);return Object.assign({},n,t,{style:r})}function jN(n){const{x:t,y:e,z:r,class:i,className:a,transform:s,transformOrigin:o,zIndex:l,visibility:c}=n;return zN(n,["x","y","z","class","className","transform","transformOrigin","zIndex","visibility"])}function WN(n,t){const e=ci(n);let r={};return t.text&&!t.fontSize&&(r={fontSize:Math.min(...e)*.5}),t.src&&(!t.width||!t.height)&&(r={width:e[0]*.5,height:e[1]*.5}),r}function jy(n){if(n)return typeof n=="string"||typeof n=="function"||Array.isArray(n)?{type:"group",field:t=>t.id,color:n,invert:!1}:n}function GN(n,t){if(!t)return{};const{type:e,color:r,field:i,invert:a}=t,s=l=>{const c=typeof r=="string"?va("palette",r):r;if(typeof c=="function"){const u={};return l.forEach(([h,d])=>{u[h]=c(a?1-d:d)}),u}else if(Array.isArray(c)){const u=a?[...c].reverse():c,h={};return l.forEach(([d,f])=>{h[d]=u[f%c.length]}),h}return{}},o=(l,c)=>{var u;return typeof l=="string"?(u=c.data)===null||u===void 0?void 0:u[l]:l==null?void 0:l(c)};if(e==="group"){const l=qc(n,d=>{if(!i)return"default";const f=o(i,d);return f?String(f):"default"}),c=Object.keys(l),u=s(c.map((d,f)=>[d,f])),h={};return Object.entries(l).forEach(([d,f])=>{f.forEach(v=>{h[At(v)]=u[d]})}),h}else if(e==="value"){const[l,c]=n.reduce(([h,d],f)=>{const v=o(i,f);if(typeof v!="number")throw new Error(ga(`Palette field ${i} is not a number`));return[Math.min(h,v),Math.max(d,v)]},[1/0,-1/0]),u=c-l;return s(n.map(h=>[h.id,(o(i,h)-l)/u]))}}function Wy(n){const t=typeof n=="string"?va("palette",n):n;if(typeof t!="function")return t}function Gy(n,t){let e=2*n;return typeof t=="string"?e=n*Number(t.replace("%",""))/100:typeof t=="number"&&(e=t),isNaN(e)&&(e=2*n),e}function Zy(n,t,e=1,r=!1){const i=r?e:1,a=(n.max[0]-n.min[0])*i;return Gy(a,t)}function ZN(n,t,e=1){const r=xn(n[0],n[1])*e;return Gy(r,t)}var VN={}.toString,UN=function(n){return VN.call(n).replace(/^\[object /,"").replace(/]$/,"")},YN=UN,HN=Object.prototype,XN=function(n){var t=n&&n.constructor,e=typeof t=="function"&&t.prototype||HN;return n===e},KN=XN,QN=Object.prototype.hasOwnProperty;function qN(n){if(be(n))return!0;if(cl(n))return!n.length;var t=YN(n);if(t==="Map"||t==="Set")return!n.size;if(KN(n))return!Object.keys(n).length;for(var e in n)if(QN.call(n,e))return!1;return!0}var aa=qN;class El extends hf{constructor(t){Vy(t.style),super(t),this.shapeMap={},this.animateMap={},this.render(this.attributes,this),this.setVisibility(),this.bindEvents()}get parsedAttributes(){return this.attributes}upsert(t,e,r,i,a){var s,o,l,c,u,h,d,f;const v=this.shapeMap[t];if(r===!1){v&&((s=a==null?void 0:a.beforeDestroy)===null||s===void 0||s.call(a,v),i.removeChild(v),delete this.shapeMap[t],(o=a==null?void 0:a.afterDestroy)===null||o===void 0||o.call(a,v));return}const g=typeof e=="string"?va(ul.SHAPE,e):e;if(!g)throw new Error(ga(`Shape ${e} not found`));if(!v||v.destroyed||!(v instanceof g)){v&&((l=a==null?void 0:a.beforeDestroy)===null||l===void 0||l.call(a,v),v==null||v.destroy(),(c=a==null?void 0:a.afterDestroy)===null||c===void 0||c.call(a,v)),(u=a==null?void 0:a.beforeCreate)===null||u===void 0||u.call(a);const p=new g({className:t,style:r});return i.appendChild(p),this.shapeMap[t]=p,(h=a==null?void 0:a.afterCreate)===null||h===void 0||h.call(a,p),p}return(d=a==null?void 0:a.beforeUpdate)===null||d===void 0||d.call(a,v),mv(v,r),(f=a==null?void 0:a.afterUpdate)===null||f===void 0||f.call(a,v),v}update(t={}){const e=Object.assign({},this.attributes,t);Vy(e),J3(this,e),this.render(e,this),this.setVisibility()}bindEvents(){}getGraphicStyle(t){return jN(t)}get compositeShapes(){return[["badges","badge-"],["ports","port-"]]}animate(t,e){if(t.length===0)return null;const r=[];if(t[0].x!==void 0||t[0].y!==void 0||t[0].z!==void 0){const{x:a=0,y:s=0,z:o=0}=this.attributes;t.forEach(l=>{const{x:c=a,y:u=s,z:h=o}=l;Object.assign(l,{transform:h?[["translate3d",c,u,h]]:[["translate",c,u]]})})}const i=super.animate(t,e);if(i&&(Qf(this,i),r.push(i)),Array.isArray(t)&&t.length>0){const a=["transform","transformOrigin","x","y","z","zIndex"];if(Object.keys(t[0]).some(s=>!a.includes(s))){Object.entries(this.shapeMap).forEach(([o,l])=>{const c=`get${Kc(o)}Style`,u=this[c];if(ue(u)){const h=t.map(f=>u.call(this,Object.assign(Object.assign({},this.attributes),f))),d=l.animate(Of(h),e);d&&(Qf(l,d),r.push(d))}});const s=(o,l)=>{if(!aa(o)){const c=`get${Kc(l)}Style`,u=this[c];if(ue(u)){const h=t.map(d=>u.call(this,Object.assign(Object.assign({},this.attributes),d)));Object.entries(h[0]).map(([d])=>{const f=h.map(g=>g[d]),v=o[d];if(v){const g=v.animate(Of(f),e);g&&(Qf(v,g),r.push(g))}})}}};this.compositeShapes.forEach(([o,l])=>{const c=Kf(this.shapeMap,l);s(c,o)})}}return Tf(r)}getShape(t){return this.shapeMap[t]}setVisibility(){const{visibility:t}=this.attributes;Cs(this,t)}destroy(){this.shapeMap={},this.animateMap={},super.destroy()}}function Qf(n,t){t==null||t.finished.then(()=>{const e=n.activeAnimations.findIndex(r=>r===t);e>-1&&n.activeAnimations.splice(e,1)})}function Vy(n){if(!n)return{};if("x"in n||"y"in n||"z"in n){const{x:t=0,y:e=0,z:r,transform:i}=n,a=Nm(t,e,r,i);a&&(n.transform=a)}return n}var JN=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(n);i{e.push([i===0?"M":"L",...r])}),t&&e.push(["Z"]),e}const Uy={M:["x","y"],m:["dx","dy"],H:["x"],h:["dx"],V:["y"],v:["dy"],L:["x","y"],l:["dx","dy"],Z:[],z:[],C:["x1","y1","x2","y2","x","y"],c:["dx1","dy1","dx2","dy2","dx","dy"],S:["x2","y2","x","y"],s:["dx2","dy2","dx","dy"],Q:["x1","y1","x","y"],q:["dx1","dy1","dx","dy"],T:["x","y"],t:["dx","dy"],A:["rx","ry","rotation","large-arc","sweep","x","y"],a:["rx","ry","rotation","large-arc","sweep","dx","dy"]};function tk(n){const t=n.replace(/[\n\r]/g,"").replace(/-/g," -").replace(/(\d*\.)(\d+)(?=\.)/g,"$1$2 ").trim().split(/\s*,|\s+/),e=[];let r="",i={};for(;t.length>0;){let a=t.shift();a in Uy?r=a:t.unshift(a),i={type:r},Uy[r].forEach(l=>{a=t.shift(),i[l]=a}),r==="M"?r="L":r==="m"&&(r="l");const[s,...o]=Object.values(i);e.push([s,...o.map(Number)])}return e}function ek(n){const t=[];return(typeof n=="string"?tk(n):n).forEach(r=>{const i=r[0];if(i==="Z"){t.push(t[0]);return}if(i!=="A")for(let a=1;a{if(n.length<2)return[["M",0,0],["L",0,0]];const t=n[0],e=n[1],r=n[n.length-1],i=n[n.length-2];n.unshift(i,r),n.push(t,e);const a=[["M",r[0],r[1]]];for(let s=1;s{const p=v,y=u[(g+1)%u.length];return Wn(p,y)?null:[p,y]}).filter(Boolean),d=LN([o,l],h),f=Ry([o,l],d);if(f&&d&&(c.transform=[["translate",f[0]+e,f[1]+r]],s)){const v=Math.atan((d[0][1]-d[1][1])/(d[0][0]-d[1][0]));c.transform.push(["rotate",v/Math.PI*180]),c.textAlign="center",(t==="right"||t==="left")&&(v>0?c.textBaseline=t==="right"?"bottom":"top":c.textBaseline=t==="right"?"top":"bottom")}return c}var rk=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(n);i{r!=null&&r.children.length&&r.children.forEach(i=>{t.push(i),e(i)})};return e(n),t}function ak(n){const t=[];let e=n.parentNode;for(;e;)t.push(e),e=e.parentNode;return t}class qf extends sl{constructor(t){super(t),this.onMounted=()=>{this.handleRadius()},this.onAttrModified=()=>{this.handleRadius()},po=this,this.isMutationObserved=!0,this.addEventListener(Be.MOUNTED,this.onMounted),this.addEventListener(Be.ATTR_MODIFIED,this.onAttrModified)}handleRadius(){const{radius:t,clipPath:e,width:r=0,height:i=0}=this.attributes;if(t&&r&&i){const[a,s]=this.getBounds().min,o={x:a,y:s,radius:t,width:r,height:i};if(e)Object.assign(this.parsedStyle.clipPath.style,o);else{const l=new mr({style:o});this.style.clipPath=l}}else e&&(this.style.clipPath=null)}}const Jf=new WeakMap;let po=null;const $f=n=>{if(po&&ak(po).includes(n)){const t=Jf.get(n);t?t.includes(po)||t.push(po):Jf.set(n,[po])}},tv=n=>{const t=Jf.get(n);t&&t.forEach(e=>e.handleRadius())};class Hy extends El{constructor(t){super(t)}isImage(){const{src:t}=this.attributes;return!!t}getIconStyle(t=this.attributes){const{width:e=0,height:r=0}=t,i=this.getGraphicStyle(t);return this.isImage()?Object.assign({x:-e/2,y:-r/2},i):Object.assign({textBaseline:"middle",textAlign:"center"},i)}render(t=this.attributes,e=this){this.upsert("icon",this.isImage()?qf:Ms,this.getIconStyle(t),e)}}class Xy extends El{get context(){return this.config.context}get parsedAttributes(){return this.attributes}onframe(){}animate(t,e){const r=super.animate(t,e);return r&&(r.onframe=()=>this.onframe(),r.finished.then(()=>this.onframe())),r}}var bu=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(n);i{i[h]=!1}),t.badge===!1||!(!((e=t.badges)===null||e===void 0)&&e.length))return i;const{badges:a=[],badgePalette:s,opacity:o=1}=t,l=bu(t,["badges","badgePalette","opacity"]),c=Wy(s),u=_n(this.getGraphicStyle(l),"badge");return a.forEach((h,d)=>{i[d]=Object.assign(Object.assign({backgroundFill:c?c[d%(c==null?void 0:c.length)]:void 0,opacity:o},u),this.getBadgeStyle(h))}),i}getBadgeStyle(t){const e=this.getShape("key"),{placement:r="top",offsetX:i,offsetY:a}=t,s=bu(t,["placement","offsetX","offsetY"]),o=O1(e.getLocalBounds(),r,i,a,!0);return Object.assign(Object.assign({},o),s)}getPortsStyle(t){var e;const r=this.getPorts(),i={};if(Object.keys(r).forEach(o=>{i[o]=!1}),t.port===!1||!(!((e=t.ports)===null||e===void 0)&&e.length))return i;const a=_n(this.getGraphicStyle(t),"port"),{ports:s=[]}=t;return s.forEach((o,l)=>{const c=o.key||l,u=Object.assign(Object.assign({},a),o);if(M1(u))i[c]=!1;else{const[h,d]=this.getPortXY(t,o);i[c]=Object.assign({transform:[["translate",h,d]]},u)}}),i}getPortXY(t,e){const{placement:r="left"}=e,i=this.getShape("key");return vv(sk(this.context,i),r)}getPorts(){return Kf(this.shapeMap,"port-")}getCenter(){return this.getShape("key").getBounds().center}getIntersectPoint(t,e=!1){const r=this.getShape("key").getBounds();return PN(t,r,e)}drawHaloShape(t,e){const r=this.getHaloStyle(t),i=this.getShape("key");this.upsert("halo",i.constructor,r,e)}drawIconShape(t,e){const r=this.getIconStyle(t);this.upsert("icon",Hy,r,e),$f(this)}drawBadgeShapes(t,e){const r=this.getBadgesStyle(t);Object.keys(r).forEach(i=>{const a=r[i];this.upsert(`badge-${i}`,go,a,e)})}drawPortShapes(t,e){const r=this.getPortsStyle(t);Object.keys(r).forEach(i=>{const a=r[i],s=`port-${i}`;this.upsert(s,ta,a,e)})}drawLabelShape(t,e){const r=this.getLabelStyle(t);this.upsert("label",sa,r,e)}_drawKeyShape(t,e){return this.drawKeyShape(t,e)}render(t=this.parsedAttributes,e=this){this._drawKeyShape(t,e),this.getShape("key")&&(this.drawHaloShape(t,e),this.drawIconShape(t,e),this.drawBadgeShapes(t,e),this.drawLabelShape(t,e),this.drawPortShapes(t,e))}update(t){super.update(t),t&&("x"in t||"y"in t||"z"in t)&&tv(this)}onframe(){this.drawBadgeShapes(this.parsedAttributes,this),this.drawLabelShape(this.parsedAttributes,this)}}ji.defaultStyleProps={x:0,y:0,size:32,droppable:!0,draggable:!0,port:!0,ports:[],portZIndex:2,portLinkToCenter:!1,badge:!0,badges:[],badgeZIndex:3,halo:!1,haloDroppable:!1,haloLineDash:0,haloLineWidth:12,haloStrokeOpacity:.25,haloPointerEvents:"none",haloZIndex:-1,icon:!0,iconZIndex:1,label:!0,labelIsBillboard:!0,labelMaxWidth:"200%",labelPlacement:"bottom",labelWordWrap:!1,labelZIndex:0};function sk(n,t){if(!n)return t.getLocalBounds();const e=n.canvas.getLayer(),r=t.cloneNode();Cs(r,"hidden"),e.appendChild(r);const i=r.getLocalBounds();return r.destroy(),i}class Rs extends ji{constructor(t){super(ur({style:Rs.defaultStyleProps},t))}drawKeyShape(t,e){return this.upsert("key",ta,this.getKeyStyle(t),e)}getKeyStyle(t){const e=super.getKeyStyle(t);return Object.assign(Object.assign({},e),{r:Math.min(...this.getSize(t))/2})}getIconStyle(t){const e=super.getIconStyle(t),{r}=this.getShape("key").attributes,i=r*2*ya;return e?Object.assign({width:i,height:i},e):!1}getIntersectPoint(t,e=!1){const r=this.getShape("key").getBounds();return gu(t,r,e)}}Rs.defaultStyleProps={size:32};class xu extends ji{constructor(t){super(t)}get parsedAttributes(){return this.attributes}drawKeyShape(t,e){return this.upsert("key",Ss,this.getKeyStyle(t),e)}getKeyStyle(t){const e=super.getKeyStyle(t);return Object.assign(Object.assign({},e),{points:this.getPoints(t)})}getIntersectPoint(t,e=!1){var r,i;const{points:a}=this.getShape("key").attributes,s=[+(((r=this.attributes)===null||r===void 0?void 0:r.x)||0),+(((i=this.attributes)===null||i===void 0?void 0:i.y)||0)];return Py(t,s,a,!0,e).point}}class ok extends xu{constructor(t){super(t)}getPoints(t){const[e,r]=this.getSize(t);return q3(e,r)}}var lk=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(n);ire(h)?{value:h}:h),a=_n(this.getGraphicStyle(t),"donut"),s=Wy(t.donutPalette);if(!s)return;const o=i.reduce((h,d)=>{var f;return h+((f=d.value)!==null&&f!==void 0?f:0)},0),l=this.parseOuterR(),c=this.parseInnerR();let u=0;i.forEach((h,d)=>{const{value:f=0,color:v=s[d%s.length]}=h,g=lk(h,["value","color"]),p=(o===0?1/i.length:f/o)*360;this.upsert(`round${d}`,ii,Object.assign(Object.assign(Object.assign({},a),{d:hk(l,c,u,u+p),fill:v}),g),e),u+=p})}render(t,e=this){super.render(t,e),this.drawDonutShape(t,e)}}Eu.defaultStyleProps={innerR:"50%",donuts:[],donutPalette:"tableau"};const wu=(n,t,e,r)=>[n+Math.sin(r)*e,t-Math.cos(r)*e],ck=(n,t,e,r)=>r<=0||e<=r?[["M",n-e,t],["A",e,e,0,1,1,n+e,t],["A",e,e,0,1,1,n-e,t],["Z"]]:[["M",n-e,t],["A",e,e,0,1,1,n+e,t],["A",e,e,0,1,1,n-e,t],["Z"],["M",n+r,t],["A",r,r,0,1,0,n-r,t],["A",r,r,0,1,0,n+r,t],["Z"]],uk=(n,t,e,r,i,a)=>{const[s,o]=[i/360*2*Math.PI,a/360*2*Math.PI],l=[wu(n,t,r,s),wu(n,t,e,s),wu(n,t,e,o),wu(n,t,r,o)],c=o-s>Math.PI?1:0;return[["M",l[0][0],l[0][1]],["L",l[1][0],l[1][1]],["A",e,e,0,c,1,l[2][0],l[2][1]],["L",l[3][0],l[3][1]],["A",r,r,0,c,0,l[0][0],l[0][1]],["Z"]]},hk=(n=0,t=0,e,r)=>{const[i,a]=[0,0];return Math.abs(e-r)%360<1e-6?ck(i,a,n,t):uk(i,a,n,t,e,r)};class Su extends ji{constructor(t){super(ur({style:Su.defaultStyleProps},t))}drawKeyShape(t,e){return this.upsert("key",al,this.getKeyStyle(t),e)}getKeyStyle(t){const e=super.getKeyStyle(t),[r,i]=this.getSize(t);return Object.assign(Object.assign({},e),{rx:r/2,ry:i/2})}getIconStyle(t){const e=super.getIconStyle(t),{rx:r,ry:i}=this.getShape("key").attributes,a=Math.min(+r,+i)*2*ya;return e?Object.assign({width:a,height:a},e):!1}getIntersectPoint(t,e=!1){const r=this.getShape("key").getBounds();return gu(t,r,e)}}Su.defaultStyleProps={size:[45,35]};class dk extends xu{constructor(t){super(t)}getOuterR(t){return t.outerR||Math.min(...this.getSize(t))/2}getPoints(t){return $3(this.getOuterR(t))}getIconStyle(t){const e=super.getIconStyle(t),r=this.getOuterR(t)*ya;return e?Object.assign({width:r,height:r},e):!1}}function fk(n,t){var e=t.cx,r=e===void 0?0:e,i=t.cy,a=i===void 0?0:i,s=t.r;n.arc(r,a,s,0,Math.PI*2,!1)}function vk(n,t){var e=t.cx,r=e===void 0?0:e,i=t.cy,a=i===void 0?0:i,s=t.rx,o=t.ry;if(n.ellipse)n.ellipse(r,a,s,o,0,0,Math.PI*2,!1);else{var l=s>o?s:o,c=s>o?1:s/o,u=s>o?o/s:1;n.save(),n.scale(c,u),n.arc(r,a,l,0,Math.PI*2)}}function gk(n,t){var e=t.x1,r=t.y1,i=t.x2,a=t.y2,s=t.markerStart,o=t.markerEnd,l=t.markerStartOffset,c=t.markerEndOffset,u=0,h=0,d=0,f=0,v=0,g,p;s&&Ue(s)&&l&&(g=i-e,p=a-r,v=Math.atan2(p,g),u=Math.cos(v)*(l||0),h=Math.sin(v)*(l||0)),o&&Ue(o)&&c&&(g=e-i,p=r-a,v=Math.atan2(p,g),d=Math.cos(v)*(c||0),f=Math.sin(v)*(c||0)),n.moveTo(e+u,r+h),n.lineTo(i+d,a+f)}function pk(n,t){var e=t.markerStart,r=t.markerEnd,i=t.markerStartOffset,a=t.markerEndOffset,s=t.d,o=s.absolutePath,l=s.segments,c=0,u=0,h=0,d=0,f=0,v,g;if(e&&Ue(e)&&i){var p=e.parentNode.getStartTangent(),y=(0,W.Z)(p,2),b=y[0],E=y[1];v=b[0]-E[0],g=b[1]-E[1],f=Math.atan2(g,v),c=Math.cos(f)*(i||0),u=Math.sin(f)*(i||0)}if(r&&Ue(r)&&a){var O=r.parentNode.getEndTangent(),k=(0,W.Z)(O,2),R=k[0],z=k[1];v=R[0]-z[0],g=R[1]-z[1],f=Math.atan2(g,v),h=Math.cos(f)*(a||0),d=Math.sin(f)*(a||0)}for(var B=0;Ble?ce:le,Je=ce>le?1:ce/le,fi=ce>le?le/ce:1;n.translate(ee,ie),n.rotate(We),n.scale(Je,fi),n.arc(0,0,or,Ee,Ce,!!(1-Ye)),n.scale(1/Je,1/fi),n.rotate(-We),n.translate(-ee,-ie)}st&&n.lineTo(V[6]+h,V[7]+d);break}case"Z":n.closePath();break}}}function mk(n,t){var e=t.markerStart,r=t.markerEnd,i=t.markerStartOffset,a=t.markerEndOffset,s=t.points.points,o=s.length,l=s[0][0],c=s[0][1],u=s[o-1][0],h=s[o-1][1],d=0,f=0,v=0,g=0,p=0,y,b;e&&Ue(e)&&i&&(y=s[1][0]-s[0][0],b=s[1][1]-s[0][1],p=Math.atan2(b,y),d=Math.cos(p)*(i||0),f=Math.sin(p)*(i||0)),r&&Ue(r)&&a&&(y=s[o-1][0]-s[0][0],b=s[o-1][1]-s[0][1],p=Math.atan2(b,y),v=Math.cos(p)*(a||0),g=Math.sin(p)*(a||0)),n.moveTo(l+(d||v),c+(f||g));for(var E=1;E0?1:-1,f=l>0?1:-1,v=d+f===0,g=s.map(function(k){return Nn(k,0,Math.min(Math.abs(c)/2,Math.abs(u)/2))}),p=(0,W.Z)(g,4),y=p[0],b=p[1],E=p[2],O=p[3];n.moveTo(d*y+r,a),n.lineTo(c-d*b+r,a),b!==0&&n.arc(c-d*b+r,f*b+a,b,-f*Math.PI/2,d>0?0:Math.PI,v),n.lineTo(c+r,u-f*E+a),E!==0&&n.arc(c-d*E+r,u-f*E+a,E,d>0?0:Math.PI,f>0?Math.PI/2:1.5*Math.PI,v),n.lineTo(d*O+r,u+a),O!==0&&n.arc(d*O+r,u-f*O+a,O,f>0?Math.PI/2:-Math.PI/2,d>0?Math.PI:0,v),n.lineTo(r,f*y+a),y!==0&&n.arc(d*y+r,f*y+a,y,d>0?Math.PI:0,f>0?Math.PI*1.5:Math.PI/2,v)}}var xk=function(n){function t(){var e;(0,C.Z)(this,t);for(var r=arguments.length,i=new Array(r),a=0;a=l-y&&b<=l+y:!1}function Mu(n,t,e,r){return n/(e*e)+t/(r*r)}function Tk(n,t,e){var r=n.parsedStyle,i=r.cx,a=i===void 0?0:i,s=r.cy,o=s===void 0?0:s,l=r.rx,c=r.ry,u=r.fill,h=r.stroke,d=r.lineWidth,f=d===void 0?1:d,v=r.increasedLineWidthForHitTesting,g=v===void 0?0:v,p=r.pointerEvents,y=p===void 0?"auto":p,b=t.x,E=t.y,O=ms(y,u,h),k=(0,W.Z)(O,2),R=k[0],z=k[1],B=(f+g)/2,V=(b-a)*(b-a),U=(E-o)*(E-o);return R&&z||e?Mu(V,U,l+B,c+B)<=1:R?Mu(V,U,l,c)<=1:z?Mu(V,U,l-B,c-B)>=1&&Mu(V,U,l+B,c+B)<=1:!1}function Ls(n,t,e,r,i,a){return i>=n&&i<=n+e&&a>=t&&a<=t+r}function Ok(n,t,e,r,i,a,s){var o=i/2;return Ls(n-o,t-o,e,i,a,s)||Ls(n+e-o,t-o,i,r,a,s)||Ls(n+o,t+r-o,e,i,a,s)||Ls(n-o,t+o,i,r,a,s)}function Au(n,t,e,r,i,a,s,o){var l=(Math.atan2(o-t,s-n)+Math.PI*2)%(Math.PI*2),c={x:n+e*Math.cos(l),y:t+e*Math.sin(l)};return Cr(c.x,c.y,s,o)<=a/2}function Za(n,t,e,r,i,a,s){var o=Math.min(n,e),l=Math.max(n,e),c=Math.min(t,r),u=Math.max(t,r),h=i/2;return a>=o-h&&a<=l+h&&s>=c-h&&s<=u+h?Dg(n,t,e,r,a,s)<=i/2:!1}function Qy(n,t,e,r,i){var a=n.length;if(a<2)return!1;for(var s=0;s0!=ev(o[1]-e)>0&&ev(t-(e-s[1])*(s[0]-o[0])/(s[1]-o[1])-s[0])<0&&(r=!r)}return r}function Jy(n,t,e){for(var r=!1,i=0;i=i.min[0]&&t.y>=i.min[1]&&t.x<=i.max[0]&&t.y<=i.max[1]}var zk=function(n){function t(){var e;(0,C.Z)(this,t);for(var r=arguments.length,i=new Array(r),a=0;a0&&arguments[0]!==void 0?arguments[0]:n.api;n.rafId&&(e.cancelAnimationFrame(n.rafId),n.rafId=null)}},{key:"executeTask",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:n.api;nv.length<=0&&rv.length<=0||(rv.forEach(function(r){return r()}),rv=nv.splice(0,n.TASK_NUM_PER_FRAME),n.rafId=e.requestAnimationFrame(function(){n.executeTask(e)}))}},{key:"sliceImage",value:function(e,r,i,a){for(var s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:n.api,l=e.naturalWidth||e.width,c=e.naturalHeight||e.height,u=r-s,h=i-s,d=Math.ceil(l/u),f=Math.ceil(c/h),v={tileSize:[r,i],gridSize:[f,d],tiles:Array(f).fill(null).map(function(){return Array(d).fill(null)})},g=function(b){for(var E=function(R){nv.push(function(){var z=R*u,B=b*h,V=[Math.min(r,l-z),Math.min(i,c-B)],U=V[0],J=V[1],$=o.createCanvas();$.width=r,$.height=i;var st=$.getContext("2d");st.drawImage(e,z,B,U,J,0,0,U,J),v.tiles[b][R]={x:z,y:B,tileX:R,tileY:b,data:$},a()})},O=0;OU&&ft>J,k&&(typeof k.resetTransform=="function"?k.resetTransform():k.setTransform(1,0,0,1,0,0),i.clearFullScreen&&i.clearRect(k,0,0,z*R,B*R,s.background))},b=function(O,k){for(var R=[O];R.length>0;){var z,B=R.pop();B.isVisible()&&!B.isCulled()&&(d?i.renderDisplayObjectOptimized(B,k,i.context,oa(i,Zn)[Zn],r):i.renderDisplayObject(B,k,i.context,oa(i,Zn)[Zn],r));for(var V=((z=B.sortable)===null||z===void 0||(z=z.sorted)===null||z===void 0?void 0:z.length)>0?B.sortable.sorted:B.childNodes,U=V.length-1;U>=0;U--)R.push(V[U])}};l.hooks.endFrame.tap(n.tag,function(){if(y(),c.root.childNodes.length===0){i.clearFullScreenLastFrame=!0;return}d=s.renderer.getConfig().enableRenderingOptimization,oa(i,Zn)[Zn]={restoreStack:[],prevObject:null,currentContext:oa(i,Zn)[Zn].currentContext},oa(i,Zn)[Zn].currentContext.clear(),i.clearFullScreenLastFrame=!1;var E=f.getContext(),O=f.getDPR();if(_e(i.dprMatrix,[O,O,1]),Pe(i.vpMatrix,i.dprMatrix,o.getOrthoMatrix()),i.clearFullScreen)d?(E.save(),b(c.root,E),E.restore()):b(c.root,E),i.removedRBushNodeAABBs=[];else{var k=i.safeMergeAABB.apply(i,[i.mergeDirtyAABBs(i.renderQueue)].concat((0,N.Z)(i.removedRBushNodeAABBs.map(function(le){var Ee=le.minX,Ce=le.minY,We=le.maxX,Ye=le.maxY,or=new mn;return or.setMinMax([Ee,Ce,0],[We,Ye,0]),or}))));if(i.removedRBushNodeAABBs=[],mn.isEmpty(k)){i.renderQueue=[];return}var R=i.convertAABB2Rect(k),z=R.x,B=R.y,V=R.width,U=R.height,J=wn(i.vec3a,[z,B,0],i.vpMatrix),$=wn(i.vec3b,[z+V,B,0],i.vpMatrix),st=wn(i.vec3c,[z,B+U,0],i.vpMatrix),ct=wn(i.vec3d,[z+V,B+U,0],i.vpMatrix),ft=Math.min(J[0],$[0],ct[0],st[0]),Nt=Math.min(J[1],$[1],ct[1],st[1]),Ct=Math.max(J[0],$[0],ct[0],st[0]),gt=Math.max(J[1],$[1],ct[1],st[1]),pt=Math.floor(ft),Pt=Math.floor(Nt),jt=Math.ceil(Ct-ft),Yt=Math.ceil(gt-Nt);E.save(),i.clearRect(E,pt,Pt,jt,Yt,s.background),E.beginPath(),E.rect(pt,Pt,jt,Yt),E.clip(),E.setTransform(i.vpMatrix[0],i.vpMatrix[1],i.vpMatrix[4],i.vpMatrix[5],i.vpMatrix[12],i.vpMatrix[13]);var ee=s.renderer.getConfig(),ie=ee.enableDirtyRectangleRenderingDebug;ie&&v.dispatchEvent(new qn(ai.DIRTY_RECTANGLE,{dirtyRect:{x:pt,y:Pt,width:jt,height:Yt}}));var ce=i.searchDirtyObjects(k);ce.sort(function(le,Ee){return le.sortable.renderOrder-Ee.sortable.renderOrder}).forEach(function(le){le&&le.isVisible()&&!le.isCulled()&&i.renderDisplayObject(le,E,i.context,oa(i,Zn)[Zn],r)}),E.restore(),i.renderQueue.forEach(function(le){i.saveDirtyAABB(le)}),i.renderQueue=[]}oa(i,Zn)[Zn].restoreStack.forEach(function(){E.restore()}),oa(i,Zn)[Zn].restoreStack=[]}),l.hooks.render.tap(n.tag,function(E){i.clearFullScreen||i.renderQueue.push(E)})}},{key:"clearRect",value:function(e,r,i,a,s,o){e.clearRect(r,i,a,s),o&&(e.fillStyle=o,e.fillRect(r,i,a,s))}},{key:"renderDisplayObjectOptimized",value:function(e,r,i,a,s){var o=e.nodeName,l=!1,c=!1,u=this.context.styleRendererFactory[o],h=this.pathGeneratorFactory[o],d=e.parsedStyle.clipPath;if(d){l=!a.prevObject||!Ed(d.getWorldTransform(),a.prevObject.getWorldTransform()),l&&(this.applyWorldTransform(r,d),a.prevObject=null);var f=this.pathGeneratorFactory[d.nodeName];f&&(r.save(),c=!0,r.beginPath(),f(r,d.parsedStyle),r.closePath(),r.clip())}if(u){l=!a.prevObject||!Ed(e.getWorldTransform(),a.prevObject.getWorldTransform()),l&&this.applyWorldTransform(r,e);var v=!a.prevObject;if(!v){var g=a.prevObject.nodeName;o===Dt.TEXT?v=g!==Dt.TEXT:o===Dt.IMAGE?v=g!==Dt.IMAGE:v=g===Dt.TEXT||g===Dt.IMAGE}u.applyStyleToContext(r,e,v,a),a.prevObject=e}h&&(r.beginPath(),h(r,e.parsedStyle),o!==Dt.LINE&&o!==Dt.PATH&&o!==Dt.POLYLINE&&r.closePath()),u&&u.drawToContext(r,e,oa(this,Zn)[Zn],this,s),c&&r.restore(),e.dirty(!1)}},{key:"renderDisplayObject",value:function(e,r,i,a,s){var o=e.nodeName,l=a.restoreStack[a.restoreStack.length-1];l&&!(e.compareDocumentPosition(l)&Tn.DOCUMENT_POSITION_CONTAINS)&&(r.restore(),a.restoreStack.pop());var c=this.context.styleRendererFactory[o],u=this.pathGeneratorFactory[o],h=e.parsedStyle.clipPath;if(h){this.applyWorldTransform(r,h);var d=this.pathGeneratorFactory[h.nodeName];d&&(r.save(),a.restoreStack.push(e),r.beginPath(),d(r,h.parsedStyle),r.closePath(),r.clip())}c&&(this.applyWorldTransform(r,e),r.save(),this.applyAttributesToContext(r,e)),u&&(r.beginPath(),u(r,e.parsedStyle),o!==Dt.LINE&&o!==Dt.PATH&&o!==Dt.POLYLINE&&r.closePath()),c&&(c.render(r,e.parsedStyle,e,i,this,s),r.restore()),e.dirty(!1)}},{key:"applyAttributesToContext",value:function(e,r){var i=r.parsedStyle,a=i.stroke,s=i.fill,o=i.opacity,l=i.lineDash,c=i.lineDashOffset;l&&e.setLineDash(l),be(c)||(e.lineDashOffset=c),be(o)||(e.globalAlpha*=o),!be(a)&&!Array.isArray(a)&&!a.isNone&&(e.strokeStyle=r.attributes.stroke),!be(s)&&!Array.isArray(s)&&!s.isNone&&(e.fillStyle=r.attributes.fill)}},{key:"convertAABB2Rect",value:function(e){var r=e.getMin(),i=e.getMax(),a=Math.floor(r[0]),s=Math.floor(r[1]),o=Math.ceil(i[0]),l=Math.ceil(i[1]),c=o-a,u=l-s;return{x:a,y:s,width:c,height:u}}},{key:"mergeDirtyAABBs",value:function(e){var r=new mn;return e.forEach(function(i){var a=i.getRenderBounds();r.add(a);var s=i.renderable.dirtyRenderBounds;s&&r.add(s)}),r}},{key:"searchDirtyObjects",value:function(e){var r=e.getMin(),i=(0,W.Z)(r,2),a=i[0],s=i[1],o=e.getMax(),l=(0,W.Z)(o,2),c=l[0],u=l[1],h=this.rBush.search({minX:a,minY:s,maxX:c,maxY:u});return h.map(function(d){var f=d.displayObject;return f})}},{key:"saveDirtyAABB",value:function(e){var r=e.renderable;r.dirtyRenderBounds||(r.dirtyRenderBounds=new mn);var i=e.getRenderBounds();i&&r.dirtyRenderBounds.update(i.center,i.halfExtents)}},{key:"applyWorldTransform",value:function(e,r,i){i?(me(this.tmpMat4,r.getLocalTransform()),Pe(this.tmpMat4,i,this.tmpMat4),Pe(this.tmpMat4,this.vpMatrix,this.tmpMat4)):(me(this.tmpMat4,r.getWorldTransform()),Pe(this.tmpMat4,this.vpMatrix,this.tmpMat4)),e.setTransform(this.tmpMat4[0],this.tmpMat4[1],this.tmpMat4[4],this.tmpMat4[5],this.tmpMat4[12],this.tmpMat4[13])}},{key:"safeMergeAABB",value:function(){for(var e=new mn,r=arguments.length,i=new Array(r),a=0;a0;if(h){if(i||r.attributes.stroke!==a.prevObject.attributes.stroke){var d=!be(o.stroke)&&!Array.isArray(o.stroke)&&!o.stroke.isNone?r.attributes.stroke:Jn.strokeStyle;Pn(e,"strokeStyle",d,a.currentContext)}(i||o.lineWidth!==s.lineWidth)&&Pn(e,"lineWidth",be(o.lineWidth)?Jn.lineWidth:o.lineWidth,a.currentContext),(i||o.lineDash!==s.lineDash)&&Pn(e,"lineDash",o.lineDash||Jn.lineDash,a.currentContext),(i||o.lineDashOffset!==s.lineDashOffset)&&Pn(e,"lineDashOffset",be(o.lineDashOffset)?Jn.lineDashOffset:o.lineDashOffset,a.currentContext);for(var f=0;f4&&arguments[4]!==void 0?arguments[4]:!1;if(r){Pn(e,"shadowColor",Jn.shadowColor,a.currentContext);for(var o=0;o-1&&Pn(e,"filter",c.replace(/drop-shadow\([^)]*\)/,"").trim()||Jn.filter,a.currentContext)}else Pn(e,"filter",Jn.filter,a.currentContext)}},{key:"fillToContext",value:function(e,r,i,a,s){var o=this,l=r.parsedStyle,c=l.fill,u=l.fillRule,h=null;if(Array.isArray(c)&&c.length>0)c.forEach(function(f){var v=Pn(e,"fillStyle",Cu(f,r,e,o.imagePool),i.currentContext);h=h!=null?h:v,u?e.fill(u):e.fill()});else{if(gs(c)){var d=Ou(c,r,e,r.ownerDocument.defaultView.context,a,s,this.imagePool);d&&(e.fillStyle=d,h=!0)}u?e.fill(u):e.fill()}h!==null&&Pn(e,"fillStyle",h,i.currentContext)}},{key:"strokeToContext",value:function(e,r,i,a,s){var o=this,l=r.parsedStyle.stroke,c=null;if(Array.isArray(l)&&l.length>0)l.forEach(function(d){var f=Pn(e,"strokeStyle",Cu(d,r,e,o.imagePool),i.currentContext);c=c!=null?c:f,e.stroke()});else{if(gs(l)){var u=Ou(l,r,e,r.ownerDocument.defaultView.context,a,s,this.imagePool);if(u){var h=Pn(e,"strokeStyle",u,i.currentContext);c=c!=null?c:h}}e.stroke()}c!==null&&Pn(e,"strokeStyle",c,i.currentContext)}},{key:"drawToContext",value:function(e,r,i,a,s){var o,l=r.nodeName,c=r.parsedStyle,u=c.opacity,h=u===void 0?Jn.globalAlpha:u,d=c.fillOpacity,f=d===void 0?Jn.fillOpacity:d,v=c.strokeOpacity,g=v===void 0?Jn.strokeOpacity:v,p=c.lineWidth,y=p===void 0?Jn.lineWidth:p,b=c.fill&&!c.fill.isNone,E=c.stroke&&!c.stroke.isNone&&y>0;if(!(!b&&!E)){var O=!be(c.shadowColor)&&c.shadowBlur>0,k=c.shadowType==="inner",R=((o=c.fill)===null||o===void 0?void 0:o.alpha)===0,z=!!(c.filter&&c.filter.length),B=O&&E&&(l===Dt.PATH||l===Dt.LINE||l===Dt.POLYLINE||R||k),V=null;if(b){B||this.applyShadowAndFilterStyleToContext(e,r,O,i);var U=h*f;V=Pn(e,"globalAlpha",U,i.currentContext),this.fillToContext(e,r,i,a,s),B||this.clearShadowAndFilterStyleForContext(e,O,z,i)}if(E){var J=!1,$=h*g,st=Pn(e,"globalAlpha",$,i.currentContext);if(V=b?V:st,B&&(this.applyShadowAndFilterStyleToContext(e,r,O,i),J=!0,k)){var ct=e.globalCompositeOperation;e.globalCompositeOperation="source-atop",this.strokeToContext(e,r,i,a,s),e.globalCompositeOperation=ct,this.clearShadowAndFilterStyleForContext(e,O,z,i,!0)}this.strokeToContext(e,r,i,a,s),J&&this.clearShadowAndFilterStyleForContext(e,O,z,i)}V!==null&&Pn(e,"globalAlpha",V,i.currentContext)}}}])}(),sv=function(n){function t(){return(0,C.Z)(this,t),I(this,t,arguments)}return(0,L.Z)(t,n),(0,T.Z)(t,[{key:"render",value:function(r,i,a,s,o,l){var c=i.fill,u=i.fillRule,h=i.opacity,d=h===void 0?1:h,f=i.fillOpacity,v=f===void 0?1:f,g=i.stroke,p=i.strokeOpacity,y=p===void 0?1:p,b=i.lineWidth,E=b===void 0?1:b,O=i.lineCap,k=i.lineJoin,R=i.shadowType,z=i.shadowColor,B=i.shadowBlur,V=i.filter,U=i.miterLimit,J=c&&!c.isNone,$=g&&!g.isNone&&E>0,st=(c==null?void 0:c.alpha)===0,ct=!!(V&&V.length),ft=!be(z)&&B>0,Nt=a.nodeName,Ct=R==="inner",gt=$&&ft&&(Nt===Dt.PATH||Nt===Dt.LINE||Nt===Dt.POLYLINE||st||Ct);J&&(r.globalAlpha=d*v,gt||ku(a,r,ft),r1(r,a,c,u,s,o,l,this.imagePool),gt||this.clearShadowAndFilter(r,ct,ft)),$&&(r.globalAlpha=d*y,r.lineWidth=E,be(U)||(r.miterLimit=U),be(O)||(r.lineCap=O),be(k)||(r.lineJoin=k),gt&&(Ct&&(r.globalCompositeOperation="source-atop"),ku(a,r,!0),Ct&&(ov(r,a,g,s,o,l,this.imagePool),r.globalCompositeOperation=Jn.globalCompositeOperation,this.clearShadowAndFilter(r,ct,!0))),ov(r,a,g,s,o,l,this.imagePool))}},{key:"clearShadowAndFilter",value:function(r,i,a){if(a&&(r.shadowColor="transparent",r.shadowBlur=0),i){var s=r.filter;!be(s)&&s.indexOf("drop-shadow")>-1&&(r.filter=s.replace(/drop-shadow\([^)]*\)/,"").trim()||"none")}}}])}(Vk);function ku(n,t,e){var r=n.parsedStyle,i=r.filter,a=r.shadowColor,s=r.shadowBlur,o=r.shadowOffsetX,l=r.shadowOffsetY;i&&i.length&&(t.filter=n.style.filter),e&&(t.shadowColor=a.toString(),t.shadowBlur=s||0,t.shadowOffsetX=o||0,t.shadowOffsetY=l||0)}function r1(n,t,e,r,i,a,s,o){var l=arguments.length>8&&arguments[8]!==void 0?arguments[8]:!1;Array.isArray(e)?e.forEach(function(c){n.fillStyle=Cu(c,t,n,o),l||(r?n.fill(r):n.fill())}):(gs(e)&&(n.fillStyle=Ou(e,t,n,i,a,s,o)),l||(r?n.fill(r):n.fill()))}function ov(n,t,e,r,i,a,s){var o=arguments.length>7&&arguments[7]!==void 0?arguments[7]:!1;Array.isArray(e)?e.forEach(function(l){n.strokeStyle=Cu(l,t,n,s),o||n.stroke()}):(gs(e)&&(n.strokeStyle=Ou(e,t,n,r,i,a,s)),o||n.stroke())}function Uk(n,t){var e=(0,W.Z)(n,4),r=e[0],i=e[1],a=e[2],s=e[3],o=(0,W.Z)(t,4),l=o[0],c=o[1],u=o[2],h=o[3],d=Math.max(r,l),f=Math.max(i,c),v=Math.min(r+a,l+u),g=Math.min(i+s,c+h);return v<=d||g<=f?null:[d,f,v-d,g-f]}function Yk(n,t){var e=wn(xt(),[n[0],n[1],0],t),r=wn(xt(),[n[0]+n[2],n[1],0],t),i=wn(xt(),[n[0],n[1]+n[3],0],t),a=wn(xt(),[n[0]+n[2],n[1]+n[3],0],t);return[Math.min(e[0],r[0],i[0],a[0]),Math.min(e[1],r[1],i[1],a[1]),Math.max(e[0],r[0],i[0],a[0])-Math.min(e[0],r[0],i[0],a[0]),Math.max(e[1],r[1],i[1],a[1])-Math.min(e[1],r[1],i[1],a[1])]}var Hk=function(n){function t(){return(0,C.Z)(this,t),I(this,t,arguments)}return(0,L.Z)(t,n),(0,T.Z)(t,[{key:"renderDownSampled",value:function(r,i,a,s){var o=s.src,l=s.imageCache;if(!l.downSampled){this.imagePool.createDownSampledImage(o,a).then(function(){a.ownerDocument&&(a.dirty(),a.ownerDocument.defaultView.context.renderingService.dirtify())}).catch(function(c){console.error(c)});return}r.drawImage(l.downSampled,Math.floor(s.drawRect[0]),Math.floor(s.drawRect[1]),Math.ceil(s.drawRect[2]),Math.ceil(s.drawRect[3]))}},{key:"renderTile",value:function(r,i,a,s){var o=s.src,l=s.imageCache,c=s.imageRect,u=s.drawRect,h=l.size,d=r.getTransform(),f=d.a,v=d.b,g=d.c,p=d.d,y=d.e,b=d.f;if(r.resetTransform(),!(l!=null&&l.gridSize)){this.imagePool.createImageTiles(o,[],function(){a.ownerDocument&&(a.dirty(),a.ownerDocument.defaultView.context.renderingService.dirtify())},a).catch(function(ft){console.error(ft)});return}for(var E=[h[0]/c[2],h[1]/c[3]],O=[l.tileSize[0]/E[0],l.tileSize[1]/E[1]],k=[Math.floor((u[0]-c[0])/O[0]),Math.ceil((u[0]+u[2]-c[0])/O[0])],R=k[0],z=k[1],B=[Math.floor((u[1]-c[1])/O[1]),Math.ceil((u[1]+u[3]-c[1])/O[1])],V=B[0],U=B[1],J=V;J<=U;J++)for(var $=R;$<=z;$++){var st=l.tiles[J][$];if(st){var ct=[Math.floor(c[0]+st.tileX*O[0]),Math.floor(c[1]+st.tileY*O[1]),Math.ceil(O[0]),Math.ceil(O[1])];r.drawImage(st.data,ct[0],ct[1],ct[2],ct[3])}}r.setTransform(f,v,g,p,y,b)}},{key:"render",value:function(r,i,a){var s=i.x,o=s===void 0?0:s,l=i.y,c=l===void 0?0:l,u=i.width,h=i.height,d=i.src,f=i.shadowColor,v=i.shadowBlur,g=this.imagePool.getImageSync(d,a),p=g==null?void 0:g.img,y=u,b=h;if(p){y||(y=p.width),b||(b=p.height);var E=!be(f)&&v>0;ku(a,r,E);try{var O=a.ownerDocument.defaultView.getContextService().getDomElement(),k=O.width,R=O.height,z=r.getTransform(),B=z.a,V=z.b,U=z.c,J=z.d,$=z.e,st=z.f,ct=xe(B,U,0,0,V,J,0,0,0,0,1,0,$,st,0,1),ft=Yk([o,c,y,b],ct),Nt=Uk([0,0,k,R],ft);if(!Nt)return;if(!a.ownerDocument.defaultView.getConfig().enableLargeImageOptimization){t.renderFull(r,i,a,{image:p,drawRect:[o,c,y,b]});return}var Ct=ft[2]/g.size[0];if(Ct<(g.downSamplingRate||.5)){this.renderDownSampled(r,i,a,{src:d,imageCache:g,drawRect:[o,c,y,b]});return}if(!av.isSupportTile){t.renderFull(r,i,a,{image:p,drawRect:[o,c,y,b]});return}this.renderTile(r,i,a,{src:d,imageCache:g,imageRect:ft,drawRect:Nt})}catch(gt){}}}},{key:"drawToContext",value:function(r,i,a,s,o){this.render(r,i.parsedStyle,i)}}],[{key:"renderFull",value:function(r,i,a,s){r.drawImage(s.image,Math.floor(s.drawRect[0]),Math.floor(s.drawRect[1]),Math.ceil(s.drawRect[2]),Math.ceil(s.drawRect[3]))}}])}(sv),Xk=function(n){function t(){return(0,C.Z)(this,t),I(this,t,arguments)}return(0,L.Z)(t,n),(0,T.Z)(t,[{key:"render",value:function(r,i,a,s,o,l){a.getBounds();var c=i.lineWidth,u=c===void 0?1:c,h=i.textAlign,d=h===void 0?"start":h,f=i.textBaseline,v=f===void 0?"alphabetic":f,g=i.lineJoin,p=g===void 0?"miter":g,y=i.miterLimit,b=y===void 0?10:y,E=i.letterSpacing,O=E===void 0?0:E,k=i.stroke,R=i.fill,z=i.fillRule,B=i.fillOpacity,V=B===void 0?1:B,U=i.strokeOpacity,J=U===void 0?1:U,$=i.opacity,st=$===void 0?1:$,ct=i.metrics,ft=i.x,Nt=ft===void 0?0:ft,Ct=i.y,gt=Ct===void 0?0:Ct,pt=i.dx,Pt=i.dy,jt=i.shadowColor,Yt=i.shadowBlur,ee=ct.font,ie=ct.lines,ce=ct.height,le=ct.lineHeight,Ee=ct.lineMetrics;r.font=ee,r.lineWidth=u,r.textAlign=d==="middle"?"center":d;var Ce=v;Ce==="alphabetic"&&(Ce="bottom"),r.lineJoin=p,be(b)||(r.miterLimit=b);var We=gt;v==="middle"?We+=-ce/2-le/2:v==="bottom"||v==="alphabetic"||v==="ideographic"?We+=-ce:(v==="top"||v==="hanging")&&(We+=-le);var Ye=Nt+(pt||0);We+=Pt||0,ie.length===1&&(Ce==="bottom"?(Ce="middle",We-=.5*ce):Ce==="top"&&(Ce="middle",We+=.5*ce)),r.textBaseline=Ce;var or=!be(jt)&&Yt>0;ku(a,r,or);for(var Je=0;Je0&&arguments[0]!==void 0?arguments[0]:{};return(0,C.Z)(this,t),e=I(this,t),e.name="canvas-renderer",e.options=r,e}return(0,L.Z)(t,n),(0,T.Z)(t,[{key:"init",value:function(){var r,i=(0,F.Z)({dirtyObjectNumThreshold:500,dirtyObjectRatioThreshold:.8},this.options),a=this.context.imagePool,s=new sv(a),o=(r={},(0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)((0,ae.Z)(r,Dt.CIRCLE,s),Dt.ELLIPSE,s),Dt.RECT,s),Dt.IMAGE,new Hk(a)),Dt.TEXT,new Xk(a)),Dt.LINE,s),Dt.POLYLINE,s),Dt.POLYGON,s),Dt.PATH,s),Dt.GROUP,void 0),(0,ae.Z)((0,ae.Z)((0,ae.Z)(r,Dt.HTML,void 0),Dt.MESH,void 0),Dt.FRAGMENT,void 0));this.context.defaultStyleRendererFactory=o,this.context.styleRendererFactory=o,this.addRenderingPlugin(new t1(i))}},{key:"destroy",value:function(){this.removeAllRenderingPlugins(),delete this.context.defaultStyleRendererFactory,delete this.context.styleRendererFactory}}])}(_a);var i1=function(){function n(){(0,C.Z)(this,n)}return(0,T.Z)(n,[{key:"apply",value:function(e,r){var i=this,a=e.renderingService,s=e.renderingContext,o=e.config;this.context=e;var l=s.root.ownerDocument.defaultView,c=function(B){a.hooks.pointerMove.call(B)},u=function(B){a.hooks.pointerUp.call(B)},h=function(B){a.hooks.pointerDown.call(B)},d=function(B){a.hooks.pointerOver.call(B)},f=function(B){a.hooks.pointerOut.call(B)},v=function(B){a.hooks.pointerCancel.call(B)},g=function(B){a.hooks.pointerWheel.call(B)},p=function(B){a.hooks.click.call(B)},y=function(B){r.globalThis.document.addEventListener("pointermove",c,!0),B.addEventListener("pointerdown",h,!0),B.addEventListener("pointerleave",f,!0),B.addEventListener("pointerover",d,!0),r.globalThis.addEventListener("pointerup",u,!0),r.globalThis.addEventListener("pointercancel",v,!0)},b=function(B){B.addEventListener("touchstart",h,!0),B.addEventListener("touchend",u,!0),B.addEventListener("touchmove",c,!0),B.addEventListener("touchcancel",v,!0)},E=function(B){r.globalThis.document.addEventListener("mousemove",c,!0),B.addEventListener("mousedown",h,!0),B.addEventListener("mouseout",f,!0),B.addEventListener("mouseover",d,!0),r.globalThis.addEventListener("mouseup",u,!0)},O=function(B){r.globalThis.document.removeEventListener("pointermove",c,!0),B.removeEventListener("pointerdown",h,!0),B.removeEventListener("pointerleave",f,!0),B.removeEventListener("pointerover",d,!0),r.globalThis.removeEventListener("pointerup",u,!0),r.globalThis.removeEventListener("pointercancel",v,!0)},k=function(B){B.removeEventListener("touchstart",h,!0),B.removeEventListener("touchend",u,!0),B.removeEventListener("touchmove",c,!0),B.removeEventListener("touchcancel",v,!0)},R=function(B){r.globalThis.document.removeEventListener("mousemove",c,!0),B.removeEventListener("mousedown",h,!0),B.removeEventListener("mouseout",f,!0),B.removeEventListener("mouseover",d,!0),r.globalThis.removeEventListener("mouseup",u,!0)};a.hooks.init.tap(n.tag,function(){var z=i.context.contextService.getDomElement();r.globalThis.navigator.msPointerEnabled?(z.style.msContentZooming="none",z.style.msTouchAction="none"):l.supportsPointerEvents&&(z.style.touchAction="none"),l.supportsPointerEvents?y(z):E(z),l.supportsTouchEvents&&b(z),o.useNativeClickEvent&&z.addEventListener("click",p,!0),z.addEventListener("wheel",g,{passive:!0,capture:!0})}),a.hooks.destroy.tap(n.tag,function(){var z=i.context.contextService.getDomElement();r.globalThis.navigator.msPointerEnabled?(z.style.msContentZooming="",z.style.msTouchAction=""):l.supportsPointerEvents&&(z.style.touchAction=""),l.supportsPointerEvents?O(z):R(z),l.supportsTouchEvents&&k(z),o.useNativeClickEvent&&z.removeEventListener("click",p,!0),z.removeEventListener("wheel",g,!0)})}}])}();i1.tag="DOMInteraction";var Qk=function(n){function t(){var e;(0,C.Z)(this,t);for(var r=arguments.length,i=new Array(r),a=0;a1&&arguments[1]!==void 0?arguments[1]:[0,0,0];return"matrix(".concat([e[0],e[1],e[4],e[5],e[12]+r[0],e[13]+r[1]].join(","),")")}},{key:"apply",value:function(e,r){var i=this,a=e.camera,s=e.renderingContext,o=e.renderingService;this.context=e;var l=s.root.ownerDocument.defaultView,c=l.context.eventService.nativeHTMLMap,u=function(y,b){b.style.transform=i.joinTransformMatrix(y.getWorldTransform(),y.getOrigin())},h=function(y){var b=y.target;if(b.nodeName===Dt.HTML){i.$camera||(i.$camera=i.createCamera(a));var E=i.getOrCreateEl(b);i.$camera.appendChild(E),Object.keys(b.attributes).forEach(function(O){i.updateAttribute(O,b)}),u(b,E),c.set(E,b)}},d=function(y){var b=y.target;if(b.nodeName===Dt.HTML&&i.$camera){var E=i.getOrCreateEl(b);E&&(E.remove(),c.delete(E))}},f=function(y){var b=y.target;if(b.nodeName===Dt.HTML){var E=y.attrName;i.updateAttribute(E,b)}},v=function(y){var b=y.target,E=b.nodeName===Dt.FRAGMENT?b.childNodes:[b];E.forEach(function(O){if(O.nodeName===Dt.HTML){var k=i.getOrCreateEl(O);u(O,k)}})},g=function(){if(i.$camera){var y=i.context.config,b=y.width,E=y.height;i.$camera.parentElement.style.width="".concat(b||0,"px"),i.$camera.parentElement.style.height="".concat(E||0,"px")}};o.hooks.init.tap(n.tag,function(){l.addEventListener(ai.RESIZE,g),l.addEventListener(Be.MOUNTED,h),l.addEventListener(Be.UNMOUNTED,d),l.addEventListener(Be.ATTR_MODIFIED,f),l.addEventListener(Be.BOUNDS_CHANGED,v)}),o.hooks.endFrame.tap(n.tag,function(){i.$camera&&s.renderReasons.has(oo.CAMERA_CHANGED)&&(i.$camera.style.transform=i.joinTransformMatrix(a.getOrthoMatrix()))}),o.hooks.destroy.tap(n.tag,function(){i.$camera&&i.$camera.remove(),l.removeEventListener(ai.RESIZE,g),l.removeEventListener(Be.MOUNTED,h),l.removeEventListener(Be.UNMOUNTED,d),l.removeEventListener(Be.ATTR_MODIFIED,f),l.removeEventListener(Be.BOUNDS_CHANGED,v)})}},{key:"createCamera",value:function(e){var r=this.context.config,i=r.document,a=r.width,s=r.height,o=this.context.contextService.getDomElement(),l=o.parentNode;if(l){var c=qk,u=l.querySelector("#".concat(c));if(!u){var h=(i||document).createElement("div");h.style.overflow="hidden",h.style.pointerEvents="none",h.style.position="absolute",h.style.left="0px",h.style.top="0px",h.style.width="".concat(a||0,"px"),h.style.height="".concat(s||0,"px");var d=(i||document).createElement("div");u=d,d.id=c,d.style.position="absolute",d.style.left="".concat(o.offsetLeft||0,"px"),d.style.top="".concat(o.offsetTop||0,"px"),d.style.transformOrigin="left top",d.style.transform=this.joinTransformMatrix(e.getOrthoMatrix()),d.style.pointerEvents="none",d.style.width="100%",d.style.height="100%",h.appendChild(d),l.appendChild(h)}return u}return null}},{key:"getOrCreateEl",value:function(e){var r=this.context.config.document,i=this.displayObjectHTMLElementMap.get(e);return i||(i=(r||document).createElement("div"),e.parsedStyle.$el=i,this.displayObjectHTMLElementMap.set(e,i),e.id&&(i.id=e.id),e.name&&i.setAttribute("name",e.name),e.className&&(i.className=e.className),i.style.position="absolute",i.style["will-change"]="transform",i.style.transform=this.joinTransformMatrix(e.getWorldTransform(),e.getOrigin())),i}},{key:"updateAttribute",value:function(e,r){var i=this.getOrCreateEl(r);switch(e){case"innerHTML":var a=r.parsedStyle.innerHTML;Ve(a)?i.innerHTML=a:(i.innerHTML="",i.appendChild(a));break;case"x":i.style.left="".concat(r.parsedStyle.x,"px");break;case"y":i.style.top="".concat(r.parsedStyle.y,"px");break;case"transformOrigin":var s=r.parsedStyle.transformOrigin;i.style["transform-origin"]="".concat(s[0].buildCSSText(null,null,"")," ").concat(s[1].buildCSSText(null,null,""));break;case"width":var o=r.parsedStyle.width;i.style.width=re(o)?"".concat(o,"px"):o.toString();break;case"height":var l=r.parsedStyle.height;i.style.height=re(l)?"".concat(l,"px"):l.toString();break;case"zIndex":var c=r.parsedStyle.zIndex;i.style["z-index"]="".concat(c);break;case"visibility":var u=r.parsedStyle.visibility;i.style.visibility=u;break;case"pointerEvents":var h=r.parsedStyle.pointerEvents,d=h===void 0?"auto":h;i.style.pointerEvents=d;break;case"opacity":var f=r.parsedStyle.opacity;i.style.opacity="".concat(f);break;case"fill":var v=r.parsedStyle.fill,g="";bc(v)?v.isNone?g="transparent":g=r.getAttribute("fill"):Array.isArray(v)?g=r.getAttribute("fill"):gs(v),i.style.background=g;break;case"stroke":var p=r.parsedStyle.stroke,y="";bc(p)?p.isNone?y="transparent":y=r.getAttribute("stroke"):Array.isArray(p)?y=r.getAttribute("stroke"):gs(p),i.style["border-color"]=y,i.style["border-style"]="solid";break;case"lineWidth":var b=r.parsedStyle.lineWidth;i.style["border-width"]="".concat(b||0,"px");break;case"lineDash":i.style["border-style"]="dashed";break;case"filter":var E=r.style.filter;i.style.filter=E;break;default:!be(r.style[e])&&r.style[e]!==""&&(i.style[e]=r.style[e])}}}])}();a1.tag="HTMLRendering";var Jk=function(n){function t(){var e;(0,C.Z)(this,t);for(var r=arguments.length,i=new Array(r),a=0;a0&&o[0]!==void 0?o[0]:{},a=i.type,s=i.encoderOptions,l.abrupt("return",this.context.canvas.toDataURL(a,s));case 1:case"end":return l.stop()}},r,this)}));function e(){return t.apply(this,arguments)}return e}()}])}(),t3=function(n){function t(){var e;(0,C.Z)(this,t);for(var r=arguments.length,i=new Array(r),a=0;a{const r=this.context.canvas,i=r.context.renderingContext.root.ownerDocument.defaultView;this.normalizeToPointerEvent(e,i).forEach(s=>{const o=this.bootstrapEvent(this.rootPointerEvent,s,i,e);bl(r.context.eventService,"mappingTable.pointerupoutside",[]),r.context.eventService.mapEvent(o)})}}get eventService(){return this.context.canvas.context.eventService}get events(){return[It.CLICK,It.POINTER_DOWN,It.POINTER_MOVE,It.POINTER_UP,It.POINTER_OVER,It.POINTER_LEAVE]}getDomElement(){return this.getShape("key").getDomElement()}render(t=this.parsedAttributes,e=this){this.drawKeyShape(t,e),this.drawPortShapes(t,e)}getKeyStyle(t){const e=_s(t,["dx","dy","innerHTML","pointerEvents","cursor"]),{dx:r=0,dy:i=0}=e,a=r3(e,["dx","dy"]),[s,o]=this.getSize(t);return Object.assign(Object.assign({x:r,y:i},a),{width:s,height:o})}drawKeyShape(t,e){const r=this.getKeyStyle(t),{x:i,y:a,width:s=0,height:o=0}=r,l=this.upsert("key-container",mr,{x:i,y:a,width:s,height:o,opacity:0},e);return this.upsert("key",lo,r,l)}connectedCallback(){if(!(this.context.canvas.getRenderer("main")instanceof Sl))return;const r=this.getDomElement();this.events.forEach(i=>{r.addEventListener(i,this.forwardEvents)})}attributeChangedCallback(t,e,r){t==="zIndex"&&e!==r&&(this.getDomElement().style.zIndex=r)}destroy(){const t=this.getDomElement();this.events.forEach(e=>{t.removeEventListener(e,this.forwardEvents)}),super.destroy()}normalizeToPointerEvent(t,e){const r=[];if(e.isTouchEvent(t))for(let i=0;ithis.context.element.getElement(s)).filter(Boolean);if(i.length===0){const s=new mn,{x:o=0,y:l=0,size:c}=t,[u,h]=ci(c);return s.setMinMax([o-u/2,l-h/2,0],[o+u/2,l+h/2,0]),s}const a=dl(i.map(s=>s.getBounds()));return r?za(a,r):a}drawCollapsedMarkerShape(t,e){const r=this.getCollapsedMarkerStyle(t);this.upsert("collapsed-marker",Hy,r,e),$f(this)}getCollapsedMarkerStyle(t){if(!t.collapsed||!t.collapsedMarker)return!1;const e=_n(this.getGraphicStyle(t),"collapsedMarker"),{type:r}=e,i=l1(e,["type"]),a=this.getShape("key"),[s,o]=ma(a.getLocalBounds(),"center"),l=Object.assign(Object.assign({},i),{x:s,y:o});if(r){const c=this.getCollapsedMarkerText(r,t);Object.assign(l,{text:c})}return l}getCollapsedMarkerText(t,e){const{childrenData:r=[]}=e,{model:i}=this.context;return t==="descendant-count"?i.getDescendantsData(this.id).length.toString():t==="child-count"?r.length.toString():t==="node-count"?i.getDescendantsData(this.id).filter(a=>i.getElementType(At(a))==="node").length.toString():ue(t)?t(r):""}getComboPosition(t){const{x:e=0,y:r=0,collapsed:i,childrenData:a=[]}=t;if(a.length===0)return[+e,+r,0];if(i){const{model:s}=this.context,o=s.getDescendantsData(this.id).filter(l=>!s.isCombo(At(l)));if(o.length>0&&o.some(ON)){const l=o.reduce((c,u)=>Re(c,ir(u)),[0,0,0]);return Fi(l,o.length)}return[+e,+r,0]}return this.getContentBBox(t).center}getComboStyle(t){const[e,r]=this.getComboPosition(t);return{x:e,y:r,transform:[["translate",e,r]]}}updateComboPosition(t){const e=this.getComboStyle(t);Object.assign(this.style,e);const{x:r,y:i}=e;this.context.model.syncNodeLikeDatum({id:this.id,style:{x:r,y:i}}),tv(this)}render(t,e=this){super.render(t,e),this.drawCollapsedMarkerShape(t,e)}update(t={}){super.update(t),this.updateComboPosition(this.parsedAttributes)}onframe(){super.onframe(),this.attributes.collapsed||this.updateComboPosition(this.parsedAttributes),this.drawKeyShape(this.parsedAttributes,this)}animate(t,e){const r=super.animate(this.attributes.collapsed?t:t.map(i=>{var{x:a,y:s,z:o,transform:l}=i,c=l1(i,["x","y","z","transform"]);return c}),e);return r&&new Proxy(r,{set:(i,a,s)=>(a==="currentTime"&&Promise.resolve().then(()=>this.onframe()),Reflect.set(i,a,s))})}}mo.defaultStyleProps={childrenNode:[],droppable:!0,draggable:!0,collapsed:!1,collapsedSize:32,collapsedMarker:!0,collapsedMarkerZIndex:1,collapsedMarkerFontSize:12,collapsedMarkerTextAlign:"center",collapsedMarkerTextBaseline:"middle",collapsedMarkerType:"child-count"};class s3 extends mo{constructor(t){super(t)}drawKeyShape(t,e){return this.upsert("key",ta,this.getKeyStyle(t),e)}getKeyStyle(t){const{collapsed:e}=t,r=super.getKeyStyle(t),[i]=this.getKeySize(t);return Object.assign(Object.assign(Object.assign({},r),e&&_n(r,"collapsed")),{r:i/2})}getCollapsedKeySize(t){const[e,r]=ci(t.collapsedSize),i=Math.max(e,r)/2;return[i*2,i*2,0]}getExpandedKeySize(t){const e=this.getContentBBox(t),[r,i]=Ba(e),a=Math.sqrt(Math.pow(r,2)+Math.pow(i,2))/2;return[a*2,a*2,0]}getIntersectPoint(t,e=!1){const r=this.getShape("key").getBounds();return gu(t,r,e)}}class o3 extends mo{constructor(t){super(t)}drawKeyShape(t,e){return this.upsert("key",mr,this.getKeyStyle(t),e)}getKeyStyle(t){const e=super.getKeyStyle(t),[r,i]=this.getKeySize(t);return Object.assign(Object.assign(Object.assign({},e),t.collapsed&&_n(e,"collapsed")),{width:r,height:i,x:-r/2,y:-i/2})}}var l3=function(n,t){if(!cl(n))return n;for(var e=[],r=0;r-1:!1},h3=u3,d3=function(n,t){return t===void 0&&(t=[]),c3(n,function(e){return!h3(t,e)})},f3=d3;const v3={padding:10};function c1(n,t,e,r,i,a){const{padding:s}=Object.assign(v3,a),o=Fa(e,s),l=Fa(r,s),c=[n,...i,t];let u=null;const h=[];for(let d=0,f=c.length;da?"N":"S":r===a?e>i?"W":"E":null}function lv(n,t){return t==="N"||t==="S"?ra(n):na(n)}function h1(n,t,e){const r=[n[0],t[1]],i=[t[0],n[1]],a=zr(n,r),s=zr(n,i),o=e?g3[e]:null,l=a===e||a!==o&&s!==e?r:i;return{points:[l],direction:zr(l,t)}}function _u(n,t,e){if(Jc(n,e)){const r=Ml(n,t,e);return{points:[r],direction:zr(r,t)}}else{const r=Ts(n,e),a=["left","right"].includes(fl(n,e))?[t[0],r[1]]:[r[0],t[1]];return{points:[a],direction:zr(a,t)}}}function d1(n,t,e,r){const i=Jc(t,e)?t:Ts(t,e),a=[[i[0],n[1]],[n[0],i[1]]],s=a.filter(l=>_O(l,e)&&!_m(l,e,!0)),o=s.filter(l=>zr(l,n)!==r);if(o.length>0){const l=o.find(c=>zr(n,c)===r)||o[0];return{points:[l],direction:zr(l,t)}}else{const l=f3(a,s)[0],c=Ga(t,l,lv(e,r)/2);return{points:[Ml(c,n,e),c],direction:zr(c,t)}}}function p3(n,t,e,r){let i=_u(n,t,e);const a=pl(i.points[0]);if(Di(a,r)){i=_u(t,n,r);const s=pl(i.points[0]);if(Di(s,e)){const o=Ga(n,a,lv(e,zr(n,a))/2),l=Ga(t,s,lv(r,zr(t,s))/2),c=[(o[0]+l[0])/2,(o[1]+l[1])/2],u=_u(n,c,e),h=d1(c,t,r,u.direction);i.points=[u.points[0],h.points[0]],i.direction=h.direction}}return i}function cv(n,t,e,r,i){const s=dl([e,r]),o=xn(t,s.center)>xn(n,s.center),[l,c]=o?[t,n]:[n,t],u=ra(s)+na(s);let h;if(i){const v=[l[0]+u*Math.cos(u1[i]),l[1]+u*Math.sin(u1[i])];h=Ga(Ts(v,s),v,.01)}else h=Ga(Ts(l,s),l,-.01);let d=Ml(h,c,s),f=[ml(h,2),ml(d,2)];if(Wn(ml(h),ml(d))){const v=Zf(un(h,l),[1,0,0])+Math.PI/2;d=[c[0]+u*Math.cos(v),c[1]+u*Math.sin(v),0],d=ml(Ga(Ts(d,s),c,-.01),2);const g=Ml(h,d,s);f=[h,g,d]}return{points:o?f.reverse():f,direction:zr(o?h:d,t)}}function Ml(n,t,e){let r=[n[0],t[1]];return Di(r,e)&&(r=[t[0],n[1]]),r}function f1(n,t,e,r,i){let l=typeof t=="number"?t:.5;t==="start"&&(l=0),t==="end"&&(l=.99);const c=br(n.getPoint(l)),u=br(n.getPoint(l+.01));let h=t==="start"?"left":t==="end"?"right":"center";if(Cy(c,u)||!e){const[y,b]=v1(n,l,r,i);return{transform:[["translate",y,b]],textAlign:h}}let d=Math.atan2(u[1]-c[1],u[0]-c[0]);u[0]{const u=s[c-1]||i,h=s[c+1]||a;if(!Ny(u,l,h)&&t){const[d,f]=E3(u,l,h,t);o.push(["L",d[0],d[1]],["Q",l[0],l[1],f[0],f[1]],["L",f[0],f[1]])}else o.push(["L",l[0],l[1]])}),o.push(["L",a[0],a[1]]),e&&o.push(["Z"]),o}function E3(n,t,e,r){const i=fu(n,t),a=fu(e,t),s=Math.min(r,Math.min(i,a)/2),o=[t[0]-s/i*(t[0]-n[0]),t[1]-s/i*(t[1]-n[1])],l=[t[0]-s/a*(t[0]-e[0]),t[1]-s/a*(t[1]-e[1])];return[o,l]}const w3=n=>{const t=Math.PI/2,e=ra(n)/2,r=na(n)/2,i=Math.atan2(e,r)/2,a=Math.atan2(r,e)/2;return{top:[-t-a,-t+a],"top-right":[-t+a,-i],"right-top":[-t+a,-i],right:[-i,i],"bottom-right":[i,t-a],"right-bottom":[i,t-a],bottom:[t-a,t+a],"bottom-left":[t+a,Math.PI-i],"left-bottom":[t+a,Math.PI-i],left:[Math.PI-i,Math.PI+i],"top-left":[Math.PI+i,-t-a],"left-top":[Math.PI+i,-t-a]}};function p1(n,t,e,r,i){const a=Fa(n),s=n.getCenter();let o=r&&Ua(r),l=i&&Ua(i);if(!o||!l){const c=w3(a),u=c[t][0],h=c[t][1],[d,f]=Ba(a),v=Math.max(d,f),g=Re(s,[v*Math.cos(u),v*Math.sin(u),0]),p=Re(s,[v*Math.cos(h),v*Math.sin(h),0]);o=pv(n,g),l=pv(n,p),e||([o,l]=[l,o])}return[o,l]}function S3(n,t,e,r,i,a){const s=n.getPorts()[i||a],o=n.getPorts()[a||i];let[l,c]=p1(n,t,e,s,o);const u=M3(n,l,c,r);return s&&(l=Tl(s,u[0])),o&&(c=Tl(o,u.at(-1))),g1(l,c,u)}function M3(n,t,e,r){const i=n.getCenter();if(Wn(t,e)){const a=un(t,i),s=[r*Math.sign(a[0])||r/2,r*Math.sign(a[1])||-r/2,0];return[Re(t,s),Re(e,Bi(s,[1,-1,1]))]}return[Ga(i,t,xn(i,t)+r),Ga(i,e,xn(i,e)+r)]}function A3(n,t,e,r,i,a,s){const o=gv(n),l=o[a||s],c=o[s||a];let[u,h]=p1(n,e,r,l,c);const d=T3(n,u,h,i);return l&&(u=Tl(l,d[0])),c&&(h=Tl(c,d.at(-1))),hv([u,...d,h],t)}function T3(n,t,e,r){const i=[],a=Fa(n);if(Wn(t,e))switch(fl(t,a)){case"left":i.push([t[0]-r,t[1]]),i.push([t[0]-r,t[1]+r]),i.push([t[0],t[1]+r]);break;case"right":i.push([t[0]+r,t[1]]),i.push([t[0]+r,t[1]+r]),i.push([t[0],t[1]+r]);break;case"top":i.push([t[0],t[1]-r]),i.push([t[0]+r,t[1]-r]),i.push([t[0]+r,t[1]]);break;case"bottom":i.push([t[0],t[1]+r]),i.push([t[0]+r,t[1]+r]),i.push([t[0]+r,t[1]]);break}else{const s=fl(t,a),o=fl(e,a);if(s===o){const l=s;let c,u;switch(l){case"left":c=Math.min(t[0],e[0])-r,i.push([c,t[1]]),i.push([c,e[1]]);break;case"right":c=Math.max(t[0],e[0])+r,i.push([c,t[1]]),i.push([c,e[1]]);break;case"top":u=Math.min(t[1],e[1])-r,i.push([t[0],u]),i.push([e[0],u]);break;case"bottom":u=Math.max(t[1],e[1])+r,i.push([t[0],u]),i.push([e[0],u]);break}}else{const l=(d,f)=>({left:[f[0]-r,f[1]],right:[f[0]+r,f[1]],top:[f[0],f[1]-r],bottom:[f[0],f[1]+r]})[d],c=l(s,t),u=l(o,e),h=Ml(c,u,a);i.push(c,h,u)}}return i}function dv(n,t){const e=new Set,r=new Set,i=new Set;return n.forEach(a=>{t(a).forEach(o=>{e.add(o),n.includes(o.source)&&n.includes(o.target)?r.add(o):i.add(o)})}),{edges:Array.from(e),internal:Array.from(r),external:Array.from(i)}}function m1(n,t){const e=[];let r=n;for(;r;){e.push(r);const i=t(At(r));if(i)r=i;else break}if(e.some(i=>{var a;return(a=i.style)===null||a===void 0?void 0:a.collapsed})){const i=e.reverse().findIndex(Jr);return e[i]||e.at(-1)}return n}function O3(n,t){return t||(n<4?10:n===4?12:n*2.5)}const C3=(n,t)=>{const e=Math.max(n,t)/2;return[["M",-n/2,0],["A",e,e,0,1,0,2*e-n/2,0],["A",e,e,0,1,0,-n/2,0],["Z"]]},y1=(n,t)=>[["M",-n/2,0],["L",n/2,-t/2],["L",n/2,t/2],["Z"]],N3=(n,t)=>[["M",-n/2,0],["L",0,-t/2],["L",n/2,0],["L",0,t/2],["Z"]],k3=(n,t)=>[["M",-n/2,0],["L",n/2,-t/2],["L",4*n/5-n/2,0],["L",n/2,t/2],["Z"]],P3=(n,t)=>[["M",-n/2,-t/2],["L",n/2,-t/2],["L",n/2,t/2],["L",-n/2,t/2],["Z"]],R3=(n,t)=>{const e=n/2,r=n/7,i=n-r;return[["M",-e,0],["L",0,-t/2],["L",0,t/2],["Z"],["M",i-e,-t/2],["L",i+r-e,-t/2],["L",i+r-e,t/2],["L",i-e,t/2],["Z"]]},L3=(n,t)=>[["M",n/2,-t/2],["L",-n/2,0],["L",n/2,0],["L",-n/2,0],["L",n/2,t/2]];var Du=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(n);i{c in i&&(l[c]=i[c])}),l}getLoopPath(t){const{sourcePort:e,targetPort:r}=t,i=this.sourceNode,a=Fa(i),s=Math.max(na(a),ra(a)),{placement:o,clockwise:l,dist:c=s}=_n(this.getGraphicStyle(t),"loop");return S3(i,o,l,c,e,r)}getEndpoints(t,e=!0,r=[]){const{sourcePort:i,targetPort:a}=t,{sourceNode:s,targetNode:o}=this,[l,c]=U3(s,o,i,a);if(!e){const f=l?Ua(l):s.getCenter(),v=c?Ua(c):o.getCenter();return[f,v]}const u=typeof r=="function"?r():r,h=T1(l||s,u[0]||c||o),d=T1(c||o,u[u.length-1]||l||s);return[h,d]}getHaloStyle(t){if(t.halo===!1)return!1;const e=this.getKeyStyle(t),r=_n(this.getGraphicStyle(t),"halo");return Object.assign(Object.assign({},e),r)}getLabelStyle(t){if(t.label===!1||!t.labelText)return!1;const e=_n(this.getGraphicStyle(t),"label"),{placement:r,offsetX:i,offsetY:a,autoRotate:s,maxWidth:o}=e,l=Du(e,["placement","offsetX","offsetY","autoRotate","maxWidth"]),c=f1(this.shapeMap.key,r,s,i,a),u=this.shapeMap.key.getLocalBounds(),h=ZN([u.min,u.max],o);return Object.assign({wordWrapWidth:h},c,l)}getBadgeStyle(t){if(t.badge===!1||!t.badgeText)return!1;const e=_n(t,"badge"),{offsetX:r,offsetY:i,placement:a}=e,s=Du(e,["offsetX","offsetY","placement"]);return Object.assign(s,m3(this.shapeMap,a,t.labelPlacement,r,i))}drawArrow(t,e){var r;const i=e==="start",s=t[e==="start"?"startArrow":"endArrow"],o=this.shapeMap.key;if(s){const l=this.getArrowStyle(t,i),[c,u,h]=i?["markerStart","markerStartOffset","startArrowOffset"]:["markerEnd","markerEndOffset","endArrowOffset"],d=o.parsedStyle[c];if(d)d.attr(l);else{const f=l.src?sl:ii,v=new f({style:l});o.style[c]=v}o.style[u]=t[h]||l.width/2+ +l.lineWidth}else{const l=i?"markerStart":"markerEnd";(r=o.style[l])===null||r===void 0||r.destroy(),o.style[l]=null}}getArrowStyle(t,e){const r=this.getShape("key").attributes,i=e?"startArrow":"endArrow",a=_n(this.getGraphicStyle(t),i),{size:s,type:o}=a,l=Du(a,["size","type"]),[c,u]=ci(O3(r.lineWidth,s)),d=(ue(o)?o:G[o]||y1)(c,u);return Object.assign(_s(r,["stroke","strokeOpacity","fillOpacity"]),{width:c,height:u},Object.assign({},d&&{d,fill:o==="simple"?"":r.stroke}),l)}drawLabelShape(t,e){const r=this.getLabelStyle(t);this.upsert("label",sa,r,e)}drawHaloShape(t,e){const r=this.getHaloStyle(t);this.upsert("halo",ii,r,e)}drawBadgeShape(t,e){const r=this.getBadgeStyle(t);this.upsert("badge",go,r,e)}drawSourceArrow(t){this.drawArrow(t,"start")}drawTargetArrow(t){this.drawArrow(t,"end")}drawKeyShape(t,e){const r=this.getKeyStyle(t);return this.upsert("key",ii,r,e)}render(t=this.parsedAttributes,e=this){this.drawKeyShape(t,e),this.getShape("key")&&(this.drawSourceArrow(t),this.drawTargetArrow(t),this.drawLabelShape(t,e),this.drawHaloShape(t,e),this.drawBadgeShape(t,e))}onframe(){this.drawKeyShape(this.parsedAttributes,this),this.drawSourceArrow(this.parsedAttributes),this.drawTargetArrow(this.parsedAttributes),this.drawHaloShape(this.parsedAttributes,this),this.drawLabelShape(this.parsedAttributes,this),this.drawBadgeShape(this.parsedAttributes,this)}animate(t,e){const r=super.animate(t,e);return r&&new Proxy(r,{set:(i,a,s)=>(a==="currentTime"&&Promise.resolve().then(()=>this.onframe()),Reflect.set(i,a,s))})}}Va.defaultStyleProps={badge:!0,badgeOffsetX:0,badgeOffsetY:0,badgePlacement:"suffix",isBillboard:!0,label:!0,labelAutoRotate:!0,labelIsBillboard:!0,labelMaxWidth:"80%",labelOffsetX:4,labelOffsetY:0,labelPlacement:"center",labelTextBaseline:"middle",labelWordWrap:!1,halo:!1,haloDroppable:!1,haloLineDash:0,haloLineWidth:12,haloPointerEvents:"none",haloStrokeOpacity:.25,haloZIndex:-1,loop:!0,startArrow:!1,startArrowLineDash:0,startArrowLineJoin:"round",startArrowLineWidth:1,startArrowTransformOrigin:"center",startArrowType:"vee",endArrow:!1,endArrowLineDash:0,endArrowLineJoin:"round",endArrowLineWidth:1,endArrowTransformOrigin:"center",endArrowType:"vee",loopPlacement:"top",loopClockwise:!0};class Ds extends Va{constructor(t){super(ur({style:Ds.defaultStyleProps},t))}getKeyPath(t){const[e,r]=this.getEndpoints(t),{controlPoints:i,curvePosition:a,curveOffset:s}=t,o=this.getControlPoints(e,r,b3(a),y3(s),i);return g1(e,r,o)}getControlPoints(t,e,r,i,a){return(a==null?void 0:a.length)===2?a:[uv(t,e,r[0],i[0]),uv(t,e,r[1],i[1])]}}Ds.defaultStyleProps={curvePosition:.5,curveOffset:20};class Iu extends Ds{constructor(t){super(ur({style:Iu.defaultStyleProps},t))}getControlPoints(t,e,r,i){const a=e[0]-t[0];return[[t[0]+a*r[0]+i[0],t[1]],[e[0]-a*r[1]+i[1],e[1]]]}}Iu.defaultStyleProps={curvePosition:[.5,.5],curveOffset:[0,0]};class Bu extends Ds{constructor(t){super(ur({style:Bu.defaultStyleProps},t))}get ref(){return this.context.model.getRootsData()[0]}getEndpoints(t){if(this.sourceNode.id===this.ref.id)return super.getEndpoints(t);const e=ir(this.ref),r=this.sourceNode.getIntersectPoint(e,!0),i=this.targetNode.getIntersectPoint(e);return[r,i]}toRadialCoordinate(t){const e=ir(this.ref),r=xn(t,e),i=Sy(un(t,e));return[r,i]}getControlPoints(t,e,r,i){const[a,s]=this.toRadialCoordinate(t),[o]=this.toRadialCoordinate(e),l=o-a;return[[t[0]+(l*r[0]+i[0])*Math.cos(s),t[1]+(l*r[0]+i[0])*Math.sin(s)],[e[0]-(l*r[1]-i[0])*Math.cos(s),e[1]-(l*r[1]-i[0])*Math.sin(s)]]}}Bu.defaultStyleProps={curvePosition:.5,curveOffset:20};class Fu extends Ds{constructor(t){super(ur({style:Fu.defaultStyleProps},t))}getControlPoints(t,e,r,i){const a=e[1]-t[1];return[[t[0],t[1]+a*r[0]+i[0]],[e[0],e[1]-a*r[1]+i[1]]]}}Fu.defaultStyleProps={curvePosition:[.5,.5],curveOffset:[0,0]};class zu extends Va{constructor(t){super(ur({style:zu.defaultStyleProps},t))}getKeyPath(t){const[e,r]=this.getEndpoints(t);return[["M",e[0],e[1]],["L",r[0],r[1]]]}}zu.defaultStyleProps={};const _3={enableObstacleAvoidance:!1,offset:10,maxAllowedDirectionChange:Math.PI/2,maximumLoops:3e3,gridSize:5,startDirections:["top","right","bottom","left"],endDirections:["top","right","bottom","left"],directionMap:{right:{stepX:1,stepY:0},left:{stepX:-1,stepY:0},bottom:{stepX:0,stepY:1},top:{stepX:0,stepY:-1}},penalties:{0:0,90:0},distFunc:fu},ba=n=>`${Math.round(n[0])}|||${Math.round(n[1])}`;function Is(n,t){const e=r=>Math.round(r/t);return re(n)?e(n):n.map(e)}function D3(n,t){const e=Math.abs(n-t);return e>Math.PI?2*Math.PI-e:e}function b1(n,t){const e=t[0]-n[0],r=t[1]-n[1];return!e&&!r?0:Math.atan2(r,e)}function x1(n,t,e,r){const i=b1(n,t),a=e[ba(n)],o=b1(a||r,n);return D3(o,i)}const I3=(n,t)=>{const{offset:e,gridSize:r}=t,i={};return n.forEach(a=>{if(!a||a.destroyed||!a.isVisible())return;const s=za(a.getRenderBounds(),e);for(let o=Is(s.min[0],r);o<=Is(s.max[0],r);o+=1)for(let l=Is(s.min[1],r);l<=Is(s.max[1],r);l+=1)i[`${o}|||${l}`]=!0}),i};function E1(n,t,e){return Math.min(...t.map(r=>e(n,r)))}function B3(n,t,e){let r=n[0],i=e(n[0],t);for(let a=0;a{if(!t)return[n];const{directionMap:i,offset:a}=r,s=za(t.getRenderBounds(),a),o=Object.keys(i).reduce((l,c)=>{if(e.includes(c)){const u=i[c],[h,d]=Ba(s),f=[n[0]+u.stepX*h,n[1]+u.stepY*d],v=BO(s);for(let g=0;gIs(l,r.gridSize))},F3=(n,t,e,r,i,a,s)=>{const o=[];let l=[a[0]===r[0]?r[0]:n[0]*s,a[1]===r[1]?r[1]:n[1]*s];o.unshift(l);let c=n,u=t[ba(c)];for(;u;){const f=u,v=c;x1(f,v,t,e)&&(l=[f[0]===v[0]?l[0]:f[0]*s,f[1]===v[1]?l[1]:f[1]*s],o.unshift(l)),u=t[ba(f)],c=f}const h=i.map(f=>[f[0]*s,f[1]*s]),d=B3(h,l,fu);return o.unshift(d),o};function z3(n,t,e,r){const i=Ns(n.getCenter()),a=Ns(t.getCenter()),s=Object.assign(_3,r),{gridSize:o}=s,l=s.enableObstacleAvoidance?e:[n,t],c=I3(l,s),u=Is(i,o),h=Is(a,o),d=w1(i,n,s.startDirections,s),f=w1(a,t,s.endDirections,s);d.forEach(B=>delete c[ba(B)]),f.forEach(B=>delete c[ba(B)]);const v={},g={},p={},y={},b={},E=new j3;for(let B=0;Bba(B));let k=s.maximumLoops,R,z=1/0;for(const[B,V]of Object.entries(v))b[B]<=z&&(z=b[B],R=V);for(;Object.keys(v).length>0&&k>0;){const B=E.minId(!1);if(B)R=v[B];else break;const V=ba(R);if(O.includes(V))return F3(R,p,u,a,d,h,o);delete v[V],E.remove(V),g[V]=!0;for(const U of Object.values(s.directionMap)){const J=Re(R,[U.stepX,U.stepY]),$=ba(J);if(g[$])continue;const st=x1(R,J,p,u);if(st>s.maxAllowedDirectionChange||c[$])continue;v[$]||(v[$]=J);const ct=s.penalties[st],ft=s.distFunc(R,J)+(isNaN(ct)?o:ct),Nt=y[V]+ft,Ct=y[$];Ct&&Nt>=Ct||(p[$]=R,y[$]=Nt,b[$]=Nt+E1(J,f,s.distFunc),E.add({id:$,value:b[$]}))}k-=1}return[]}class j3{constructor(){this.arr=[],this.map={},this.arr=[],this.map={}}_innerAdd(t,e){let r=0,i=e-1;for(;i-r>1;){const a=Math.floor((r+i)/2);if(this.arr[a].value>t.value)i=a;else if(this.arr[a].value=0;e--)this.map[this.arr[e].id]?t=this.arr[e].id:this.arr.splice(e,1);return t}_findFirstId(){for(;this.arr.length;){const t=this.arr.shift();if(this.map[t.id])return t.id}}minId(t){return t?this._clearAndGetMinId():this._findFirstId()}}class ju extends Va{constructor(t){super(ur({style:ju.defaultStyleProps},t))}getControlPoints(t){const{router:e}=t,{sourceNode:r,targetNode:i}=this,[a,s]=this.getEndpoints(t,!1);let o=[];if(!e)o=t.controlPoints;else if(e.type==="shortest-path"){const l=this.context.element.getNodes();o=z3(r,i,l,e),o.length||(o=c1(a,s,r,i,t.controlPoints,{padding:e.offset}))}else e.type==="orth"&&(o=c1(a,s,r,i,t.controlPoints,e));return o}getPoints(t){const e=this.getControlPoints(t),[r,i]=this.getEndpoints(t,!0,e);return[r,...e,i]}getKeyPath(t){const e=this.getPoints(t);return hv(e,t.radius)}getLoopPath(t){const{sourcePort:e,targetPort:r,radius:i}=t,a=this.sourceNode,s=Fa(a),o=Math.max(na(s),ra(s))/4,{placement:l,clockwise:c,dist:u=o}=_n(this.getGraphicStyle(t),"loop");return A3(a,i,l,c,u,e,r)}}ju.defaultStyleProps={radius:0,controlPoints:[],router:!1};class Wu extends Va{constructor(t){super(ur({style:Wu.defaultStyleProps},t))}getKeyPath(t){const{curvePosition:e,curveOffset:r}=t,[i,a]=this.getEndpoints(t),s=t.controlPoint||uv(i,a,e,r);return x3(i,a,s)}}Wu.defaultStyleProps={curvePosition:.5,curveOffset:30};var W3=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(n);i{var a;const{key:s,placement:o}=r;M1(r)&&(t[a=s||i]||(t[a]=ma(n.getShape("key").getBounds(),o)))}),t}function M1(n){const{r:t}=n;return!t||Number(t)===0}function Ua(n){return ho(n)?n:n.getPosition()}function U3(n,t,e,r){const i=A1(n,t,e,r),a=A1(t,n,r,e);return[i,a]}function A1(n,t,e,r){const i=gv(n);if(e)return i[e];const a=Object.values(i);if(a.length===0)return;const s=a.map(c=>Ua(c)),o=Y3(t,r),[l]=RN(s,o);return a.find(c=>Ua(c)===l)}function Y3(n,t){const e=gv(n);if(t)return[Ua(e[t])];const r=Object.values(e);return r.length>0?r.map(i=>Ua(i)):[n.getCenter()]}function T1(n,t){return fv(n)||Al(n)?pv(n,t):Tl(n,t)}function Tl(n,t){if(!n||!t)return[0,0,0];if(ho(n))return n;if(n.attributes.linkToCenter)return n.getPosition();const e=ho(t)?t:Al(t)?t.getCenter():t.getPosition();return gu(e,n.getBounds())}function pv(n,t){if(!n||!t)return[0,0,0];const e=ho(t)?t:Al(t)?t.getCenter():t.getPosition();return n.getIntersectPoint(e)||n.getCenter()}function O1(n,t="bottom",e=0,r=0,i=!1){const a=t.split("-"),[s,o]=ma(n,t),[l,c]=i?["bottom","top"]:["top","bottom"],u=a.includes("top")?c:a.includes("bottom")?l:"middle",h=a.includes("left")?"right":a.includes("right")?"left":"center";return{transform:[["translate",s+e,o+r]],textBaseline:u,textAlign:h}}function H3(n,t){return[[0,-n],[t*Math.cos(3*Math.PI/10),-t*Math.sin(3*Math.PI/10)],[n*Math.cos(Math.PI/10),-n*Math.sin(Math.PI/10)],[t*Math.cos(Math.PI/10),t*Math.sin(Math.PI/10)],[n*Math.cos(3*Math.PI/10),n*Math.sin(3*Math.PI/10)],[0,t],[-n*Math.cos(3*Math.PI/10),n*Math.sin(3*Math.PI/10)],[-t*Math.cos(Math.PI/10),t*Math.sin(Math.PI/10)],[-n*Math.cos(Math.PI/10),-n*Math.sin(Math.PI/10)],[-t*Math.cos(3*Math.PI/10),-t*Math.sin(3*Math.PI/10)]]}function X3(n,t){const e={};return e.top=[0,-n],e.left=[-n*Math.cos(Math.PI/10),-n*Math.sin(Math.PI/10)],e["left-bottom"]=[-n*Math.cos(3*Math.PI/10),n*Math.sin(3*Math.PI/10)],e.bottom=[0,t],e["right-bottom"]=[n*Math.cos(3*Math.PI/10),n*Math.sin(3*Math.PI/10)],e.right=e.default=[n*Math.cos(Math.PI/10),-n*Math.sin(Math.PI/10)],e}function K3(n,t,e){const r=t/2,i=n/2,a={up:[[-i,r],[i,r],[0,-r]],left:[[-i,0],[i,r],[i,-r]],right:[[-i,r],[-i,-r],[i,0]],down:[[-i,-r],[i,-r],[0,r]]};return a[e]||a.up}function Q3(n,t,e){const r=t/2,i=n/2,a={};return e==="down"?(a.bottom=a.default=[0,r],a.right=[i,-r],a.left=[-i,-r]):e==="left"?(a.top=[i,-r],a.bottom=[i,r],a.left=a.default=[-i,0]):e==="right"?(a.top=[-i,-r],a.bottom=[-i,r],a.right=a.default=[i,0]):(a.left=[-i,r],a.top=a.default=[0,-r],a.right=[i,r]),a}function b7(n,t){return[[n/2,-t/2],[n/2,t/2],[-n/2,t/2],[-n/2,-t/2]]}function q3(n,t){return[[0,-t/2],[n/2,0],[0,t/2],[-n/2,0]]}function C1(n){return xr(n,["style","visibility"])!=="hidden"}function J3(n,t){const{zIndex:e,transform:r,transformOrigin:i,visibility:a,cursor:s,clipPath:o,component:l}=t,c=W3(t,["zIndex","transform","transformOrigin","visibility","cursor","clipPath","component"]);Object.assign(n.attributes,c),r&&n.setAttribute("transform",r),re(e)&&n.setAttribute("zIndex",e),i&&n.setAttribute("transformOrigin",i),a&&n.setAttribute("visibility",a),s&&n.setAttribute("cursor",s),o&&n.setAttribute("clipPath",o),l&&n.setAttribute("component",l)}function mv(n,t){"update"in n?n.update(t):n.attr(t)}function $3(n){return[[0,n],[n*Math.sqrt(3)/2,n/2],[n*Math.sqrt(3)/2,-n/2],[0,-n],[-n*Math.sqrt(3)/2,-n/2],[-n*Math.sqrt(3)/2,n/2]]}function tP(n){bl(n,"__to_be_destroyed__",!0)}function Ol(n){return xr(n,"__to_be_destroyed__",!1)}var eP=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};class Gu extends li{constructor(t,e){super(t,Object.assign({},Gu.defaultOptions,e)),this.onCollapseExpand=r=>eP(this,void 0,void 0,function*(){if(!this.validate(r))return;const{target:i}=r;if(!G3(i))return;const a=i.id,{model:s,graph:o}=this.context,l=s.getElementDataById(a);if(!l)return!1;const{onCollapse:c,onExpand:u,animation:h,align:d}=this.options;Jr(l)?(yield o.expandElement(a,{animation:h,align:d}),u==null||u(a)):(yield o.collapseElement(a,{animation:h,align:d}),c==null||c(a))}),this.bindEvents()}update(t){this.unbindEvents(),super.update(t),this.bindEvents()}bindEvents(){const{graph:t}=this.context,{trigger:e}=this.options;t.on(`node:${e}`,this.onCollapseExpand),t.on(`combo:${e}`,this.onCollapseExpand)}unbindEvents(){const{graph:t}=this.context,{trigger:e}=this.options;t.off(`node:${e}`,this.onCollapseExpand),t.off(`combo:${e}`,this.onCollapseExpand)}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return ue(e)?e(t):!!e}destroy(){this.unbindEvents(),super.destroy()}}Gu.defaultOptions={enable:!0,animation:!0,trigger:It.DBLCLICK,align:!0};var Zu={},nP=function(n){return n=n||"g",Zu[n]?Zu[n]+=1:Zu[n]=1,n+Zu[n]},Vu=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};const rP="g6-create-edge-assist-edge-id",Uu="g6-create-edge-assist-node-id";class Yu extends li{constructor(t,e){super(t,Object.assign({},Yu.defaultOptions,e)),this.drop=r=>Vu(this,void 0,void 0,function*(){const{targetType:i}=r;["combo","node"].includes(i)&&this.source?yield this.handleCreateEdge(r):yield this.cancelEdge()}),this.handleCreateEdge=r=>Vu(this,void 0,void 0,function*(){var i,a,s;if(!this.validate(r))return;const{graph:o,canvas:l,batch:c,element:u}=this.context,{style:h}=this.options;if(this.source){this.createEdge(r),yield this.cancelEdge();return}c.startBatch(),l.setCursor("crosshair"),this.source=this.getSelectedNodeIDs([r.target.id])[0];const d=o.getElementData(this.source);o.addNodeData([{id:Uu,style:{visibility:"hidden",ports:[{key:"port-1",placement:[.5,.5]}],x:(i=d.style)===null||i===void 0?void 0:i.x,y:(a=d.style)===null||a===void 0?void 0:a.y}}]),o.addEdgeData([{id:rP,source:this.source,target:Uu,style:Object.assign({pointerEvents:"none"},h)}]),yield(s=u.draw({animation:!1}))===null||s===void 0?void 0:s.finished}),this.updateAssistEdge=r=>Vu(this,void 0,void 0,function*(){var i;if(!this.source)return;const{model:a,element:s}=this.context;a.translateNodeTo(Uu,[r.canvas.x,r.canvas.y]),yield(i=s.draw({animation:!1,silence:!0}))===null||i===void 0?void 0:i.finished}),this.createEdge=r=>{var i,a;const{graph:s}=this.context,{style:o,onFinish:l,onCreate:c}=this.options;if(((i=r.target)===null||i===void 0?void 0:i.id)===void 0||this.source===void 0)return;const h=(a=this.getSelectedNodeIDs([r.target.id]))===null||a===void 0?void 0:a[0],d=`${this.source}-${h}-${nP()}`,f=c({id:d,source:this.source,target:h,style:o});f&&(s.addEdgeData([f]),l(f))},this.cancelEdge=()=>Vu(this,void 0,void 0,function*(){var r;if(!this.source)return;const{graph:i,element:a,batch:s}=this.context;i.removeNodeData([Uu]),this.source=void 0,yield(r=a.draw({animation:!1}))===null||r===void 0?void 0:r.finished,s.endBatch()}),this.bindEvents()}update(t){super.update(t),this.bindEvents()}bindEvents(){const{graph:t}=this.context,{trigger:e}=this.options;this.unbindEvents(),e==="click"?(t.on(Mi.CLICK,this.handleCreateEdge),t.on(As.CLICK,this.handleCreateEdge),t.on(fa.CLICK,this.cancelEdge),t.on(Qc.CLICK,this.cancelEdge)):(t.on(Mi.DRAG_START,this.handleCreateEdge),t.on(As.DRAG_START,this.handleCreateEdge),t.on(It.POINTER_UP,this.drop)),t.on(It.POINTER_MOVE,this.updateAssistEdge)}getSelectedNodeIDs(t){return Array.from(new Set(this.context.graph.getElementDataByState("node",this.options.state).map(e=>e.id).concat(t)))}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return ue(e)?e(t):!!e}unbindEvents(){const{graph:t}=this.context;t.off(Mi.CLICK,this.handleCreateEdge),t.off(As.CLICK,this.handleCreateEdge),t.off(fa.CLICK,this.cancelEdge),t.off(Qc.CLICK,this.cancelEdge),t.off(Mi.DRAG_START,this.handleCreateEdge),t.off(As.DRAG_START,this.handleCreateEdge),t.off(It.POINTER_UP,this.drop),t.off(It.POINTER_MOVE,this.updateAssistEdge)}destroy(){this.unbindEvents(),super.destroy()}}Yu.defaultOptions={animation:!0,enable:!0,style:{},trigger:"drag",onCreate:n=>n,onFinish:()=>{}};function iP(n,t,e){var r;return function(){var i=this,a=arguments,s=function(){r=null,e||n.apply(i,a)},o=e&&!r;clearTimeout(r),r=setTimeout(s,t),o&&n.apply(i,a)}}var Cl=iP,N1=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};class Hu extends li{constructor(t,e){super(t,Object.assign({},Hu.defaultOptions,e)),this.isDragging=!1,this.onDragStart=r=>{this.validate(r)&&(this.isDragging=!0,this.context.canvas.setCursor("grabbing"))},this.onDrag=r=>{var i,a,s,o;if(!this.isDragging||Gn.isPinching)return;const l=(a=(i=r.movement)===null||i===void 0?void 0:i.x)!==null&&a!==void 0?a:r.dx,c=(o=(s=r.movement)===null||s===void 0?void 0:s.y)!==null&&o!==void 0?o:r.dy;l|c&&this.translate([l,c],!1)},this.onDragEnd=()=>{var r,i;this.isDragging=!1,this.context.canvas.setCursor(this.defaultCursor),(i=(r=this.options).onFinish)===null||i===void 0||i.call(r)},this.invokeOnFinish=Cl(()=>{var r,i;(i=(r=this.options).onFinish)===null||i===void 0||i.call(r)},300),this.shortcut=new vo(t.graph),this.bindEvents(),this.defaultCursor=this.context.canvas.getConfig().cursor||"default"}update(t){this.unbindEvents(),super.update(t),this.bindEvents()}bindEvents(){const{trigger:t}=this.options;if(Fn(t)){const{up:e=[],down:r=[],left:i=[],right:a=[]}=t;this.shortcut.bind(e,s=>this.onTranslate([0,1],s)),this.shortcut.bind(r,s=>this.onTranslate([0,-1],s)),this.shortcut.bind(i,s=>this.onTranslate([1,0],s)),this.shortcut.bind(a,s=>this.onTranslate([-1,0],s))}else{const{graph:e}=this.context;e.on(It.DRAG_START,this.onDragStart),e.on(It.DRAG,this.onDrag),e.on(It.DRAG_END,this.onDragEnd)}}onTranslate(t,e){return N1(this,void 0,void 0,function*(){if(!this.validate(e))return;const{sensitivity:r}=this.options,i=r*-1;yield this.translate(Bi(t,i),this.options.animation),this.invokeOnFinish()})}translate(t,e){return N1(this,void 0,void 0,function*(){t=this.clampByDirection(t),t=this.clampByRange(t),t=this.clampByRotation(t),yield this.context.graph.translateBy(t,e)})}clampByRotation([t,e]){const r=this.context.graph.getRotation();return My([t,e],r)}clampByDirection([t,e]){const{direction:r}=this.options;return r==="x"?e=0:r==="y"&&(t=0),[t,e]}clampByRange([t,e]){const{viewport:r,canvas:i}=this.context,[a,s]=i.getSize(),[o,l,c,u]=oi(this.options.range),h=[s*o,a*l,s*c,a*u],d=za(Nf(r.getCanvasCenter()),h),f=un(r.getViewportCenter(),[t,e,0]);if(!Di(f,d)){const{min:[v,g],max:[p,y]}=d;(f[0]0||f[0]>p&&t<0)&&(t=0),(f[1]0||f[1]>y&&e<0)&&(e=0)}return[t,e]}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return typeof e=="function"?e(t):!!e}unbindEvents(){this.shortcut.unbindAll();const{graph:t}=this.context;t.off(It.DRAG_START,this.onDragStart),t.off(It.DRAG,this.onDrag),t.off(It.DRAG_END,this.onDragEnd)}destroy(){this.shortcut.destroy(),this.unbindEvents(),this.context.canvas.setCursor(this.defaultCursor),super.destroy()}}Hu.defaultOptions={enable:n=>"targetType"in n?n.targetType==="canvas":!0,sensitivity:10,direction:"both",range:1/0};var k1=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};class Nl extends li{constructor(t,e){super(t,Object.assign({},Nl.defaultOptions,e)),this.enable=!1,this.enableElements=["node","combo"],this.target=[],this.shadowOrigin=[0,0],this.hiddenEdges=[],this.isDragging=!1,this.onDrop=r=>k1(this,void 0,void 0,function*(){var i;if(this.options.dropEffect!=="link")return;const{model:a,element:s}=this.context,o=r.target.id;this.target.forEach(l=>{const c=a.getParentData(l,dn);c&&At(c)===o&&a.refreshComboData(o),a.setParent(l,o,dn)}),yield(i=s==null?void 0:s.draw({animation:!0}))===null||i===void 0?void 0:i.finished}),this.setCursor=r=>{if(this.isDragging)return;const{type:i}=r,{canvas:a}=this.context,{cursor:s}=this.options;i===It.POINTER_ENTER?a.setCursor((s==null?void 0:s.grab)||"grab"):a.setCursor((s==null?void 0:s.default)||"default")},this.onDragStart=this.onDragStart.bind(this),this.onDrag=this.onDrag.bind(this),this.onDragEnd=this.onDragEnd.bind(this),this.onDrop=this.onDrop.bind(this),this.bindEvents()}update(t){this.unbindEvents(),super.update(t),this.bindEvents()}bindEvents(){const{graph:t,canvas:e}=this.context,r=e.getLayer().getContextService().$canvas;r&&(r.addEventListener("blur",this.onDragEnd),r.addEventListener("contextmenu",this.onDragEnd)),this.enableElements.forEach(i=>{t.on(`${i}:${It.DRAG_START}`,this.onDragStart),t.on(`${i}:${It.DRAG}`,this.onDrag),t.on(`${i}:${It.DRAG_END}`,this.onDragEnd),t.on(`${i}:${It.POINTER_ENTER}`,this.setCursor),t.on(`${i}:${It.POINTER_LEAVE}`,this.setCursor)}),["link"].includes(this.options.dropEffect)&&(t.on(As.DROP,this.onDrop),t.on(fa.DROP,this.onDrop))}getSelectedNodeIDs(t){return Array.from(new Set(this.context.graph.getElementDataByState("node",this.options.state).map(e=>e.id).concat(t)))}getDelta(t){const e=this.context.graph.getZoom();return Fi([t.dx,t.dy],e)}onDragStart(t){var e;if(this.enable=this.validate(t),!this.enable)return;const{batch:r,canvas:i,graph:a}=this.context;i.setCursor(((e=this.options.cursor)===null||e===void 0?void 0:e.grabbing)||"grabbing"),this.isDragging=!0,r.startBatch();const s=t.target.id;a.getElementState(s).includes(this.options.state)?this.target=this.getSelectedNodeIDs([s]):this.target=[s],this.hideEdge(),this.context.graph.frontElement(this.target),this.options.shadow&&this.createShadow(this.target)}onDrag(t){if(!this.enable)return;const e=this.getDelta(t);this.options.shadow?this.moveShadow(e):this.moveElement(this.target,e)}onDragEnd(){var t,e,r;if(!this.enable)return;if(this.enable=!1,this.options.shadow){if(!this.shadow)return;this.shadow.style.visibility="hidden";const{x:s=0,y:o=0}=this.shadow.attributes,[l,c]=un([+s,+o],this.shadowOrigin);this.moveElement(this.target,[l,c])}this.showEdges(),(e=(t=this.options).onFinish)===null||e===void 0||e.call(t,this.target);const{batch:i,canvas:a}=this.context;i.endBatch(),a.setCursor(((r=this.options.cursor)===null||r===void 0?void 0:r.grab)||"grab"),this.isDragging=!1,this.target=[]}validate(t){if(this.destroyed||Ol(t.target)||this.context.graph.isCollapsingExpanding)return!1;const{enable:e}=this.options;return ue(e)?e(t):!!e}clampByRotation([t,e]){const r=this.context.graph.getRotation();return My([t,e],r)}moveElement(t,e){return k1(this,void 0,void 0,function*(){const{graph:r,model:i}=this.context,{dropEffect:a}=this.options;a==="move"&&t.forEach(s=>i.refreshComboData(s)),r.translateElementBy(Object.fromEntries(t.map(s=>[s,this.clampByRotation(e)])),!1)})}moveShadow(t){if(!this.shadow)return;const{x:e=0,y:r=0}=this.shadow.attributes,[i,a]=t;this.shadow.attr({x:+e+i,y:+r+a})}createShadow(t){const e=_n(this.options,"shadow"),r=dl(t.map(c=>this.context.element.getElement(c).getBounds())),[i,a]=r.min;this.shadowOrigin=[i,a];const[s,o]=Ba(r),l={width:s,height:o,x:i,y:a};this.shadow?this.shadow.attr(Object.assign(Object.assign(Object.assign({},e),l),{visibility:"visible"})):(this.shadow=new mr({style:Object.assign(Object.assign(Object.assign({$layer:"transient"},e),l),{pointerEvents:"none"})}),this.context.canvas.appendChild(this.shadow))}showEdges(){this.options.shadow||this.hiddenEdges.length===0||(this.context.graph.showElement(this.hiddenEdges),this.hiddenEdges=[])}hideEdge(){const{hideEdge:t,shadow:e}=this.options;if(t==="none"||e)return;const{graph:r}=this.context;t==="all"?this.hiddenEdges=r.getEdgeData().map(At):this.hiddenEdges=Array.from(new Set(this.target.map(i=>r.getRelatedEdgesData(i,t).map(At)).flat())),r.hideElement(this.hiddenEdges)}unbindEvents(){const{graph:t,canvas:e}=this.context,r=e.getLayer().getContextService().$canvas;r&&(r.removeEventListener("blur",this.onDragEnd),r.removeEventListener("contextmenu",this.onDragEnd)),this.enableElements.forEach(i=>{t.off(`${i}:${It.DRAG_START}`,this.onDragStart),t.off(`${i}:${It.DRAG}`,this.onDrag),t.off(`${i}:${It.DRAG_END}`,this.onDragEnd),t.off(`${i}:${It.POINTER_ENTER}`,this.setCursor),t.off(`${i}:${It.POINTER_LEAVE}`,this.setCursor)}),t.off(`combo:${It.DROP}`,this.onDrop),t.off(`canvas:${It.DROP}`,this.onDrop)}destroy(){var t;this.unbindEvents(),(t=this.shadow)===null||t===void 0||t.destroy(),super.destroy()}}Nl.defaultOptions={animation:!0,enable:n=>["node","combo"].includes(n.targetType),dropEffect:"move",state:"selected",hideEdge:"none",shadow:!1,shadowZIndex:100,shadowFill:"#F3F9FF",shadowFillOpacity:.5,shadowStroke:"#1890FF",shadowStrokeOpacity:.9,shadowLineDash:[5,5],cursor:{default:"default",grab:"grab",grabbing:"grabbing"}};var aP="*",sP=function(){function n(){this._events={}}return n.prototype.on=function(t,e,r){return this._events[t]||(this._events[t]=[]),this._events[t].push({callback:e,once:!!r}),this},n.prototype.once=function(t,e){return this.on(t,e,!0)},n.prototype.emit=function(t){for(var e=this,r=[],i=1;i{t.has(s.id)||(t.add(s.id),n.push(s))})}return!1}function Ku(n,t,e,r){if(e(n))return!0;t.add(n.id);for(const a of r(n.id))if(!t.has(a.id)&&Ku(a,t,e,r))return!0;return!1}const P1=()=>!0;class oP{constructor(t){On(this,"graph");On(this,"nodeFilter");On(this,"edgeFilter");On(this,"cacheEnabled");On(this,"inEdgesMap",new Map);On(this,"outEdgesMap",new Map);On(this,"bothEdgesMap",new Map);On(this,"allNodesMap",new Map);On(this,"allEdgesMap",new Map);On(this,"clearCache",()=>{this.inEdgesMap.clear(),this.outEdgesMap.clear(),this.bothEdgesMap.clear(),this.allNodesMap.clear(),this.allEdgesMap.clear()});On(this,"refreshCache",()=>{this.clearCache(),this.updateCache(this.graph.getAllNodes().map(t=>t.id))});On(this,"updateCache",t=>{const e=new Set;t.forEach(r=>{const i=this.bothEdgesMap.get(r);if(i&&i.forEach(a=>e.add(a.id)),!this.hasNode(r))this.inEdgesMap.delete(r),this.outEdgesMap.delete(r),this.bothEdgesMap.delete(r),this.allNodesMap.delete(r);else{const a=this.graph.getRelatedEdges(r,"in").filter(this.edgeFilter),s=this.graph.getRelatedEdges(r,"out").filter(this.edgeFilter),o=Array.from(new Set([...a,...s]));o.forEach(l=>e.add(l.id)),this.inEdgesMap.set(r,a),this.outEdgesMap.set(r,s),this.bothEdgesMap.set(r,o),this.allNodesMap.set(r,this.graph.getNode(r))}}),e.forEach(r=>{this.hasEdge(r)?this.allEdgesMap.set(r,this.graph.getEdge(r)):this.allEdgesMap.delete(r)})});On(this,"handleGraphChanged",t=>{const e=new Set;t.changes.forEach(r=>{switch(r.type){case"NodeAdded":e.add(r.value.id);break;case"NodeDataUpdated":e.add(r.id);break;case"EdgeAdded":e.add(r.value.source),e.add(r.value.target);break;case"EdgeUpdated":(r.propertyName==="source"||r.propertyName==="target")&&(e.add(r.oldValue),e.add(r.newValue));break;case"EdgeDataUpdated":if(t.graph.hasEdge(r.id)){const i=t.graph.getEdge(r.id);e.add(i.source),e.add(i.target)}break;case"EdgeRemoved":e.add(r.value.source),e.add(r.value.target);break;case"NodeRemoved":e.add(r.value.id);break;default:break}}),this.updateCache(e)});this.graph=t.graph;const e=t.nodeFilter||P1,r=t.edgeFilter||P1;this.nodeFilter=e,this.edgeFilter=i=>{const{source:a,target:s}=this.graph.getEdgeDetail(i.id);return!e(a)||!e(s)?!1:r(i,a,s)},t.cache==="auto"?(this.cacheEnabled=!0,this.startAutoCache()):t.cache==="manual"?this.cacheEnabled=!0:this.cacheEnabled=!1}startAutoCache(){this.refreshCache(),this.graph.on("changed",this.handleGraphChanged)}stopAutoCache(){this.graph.off("changed",this.handleGraphChanged)}checkNodeExistence(t){this.getNode(t)}hasNode(t){if(!this.graph.hasNode(t))return!1;const e=this.graph.getNode(t);return this.nodeFilter(e)}areNeighbors(t,e){return this.checkNodeExistence(t),this.getNeighbors(e).some(r=>r.id===t)}getNode(t){const e=this.graph.getNode(t);if(!this.nodeFilter(e))throw new Error("Node not found for id: "+t);return e}getRelatedEdges(t,e){return this.checkNodeExistence(t),this.cacheEnabled?e==="in"?this.inEdgesMap.get(t):e==="out"?this.outEdgesMap.get(t):this.bothEdgesMap.get(t):this.graph.getRelatedEdges(t,e).filter(this.edgeFilter)}getDegree(t,e){return this.getRelatedEdges(t,e).length}getSuccessors(t){const r=this.getRelatedEdges(t,"out").map(i=>this.getNode(i.target));return Array.from(new Set(r))}getPredecessors(t){const r=this.getRelatedEdges(t,"in").map(i=>this.getNode(i.source));return Array.from(new Set(r))}getNeighbors(t){const e=this.getPredecessors(t),r=this.getSuccessors(t);return Array.from(new Set([...e,...r]))}hasEdge(t){if(!this.graph.hasEdge(t))return!1;const e=this.graph.getEdge(t);return this.edgeFilter(e)}getEdge(t){const e=this.graph.getEdge(t);if(!this.edgeFilter(e))throw new Error("Edge not found for id: "+t);return e}getEdgeDetail(t){const e=this.getEdge(t);return{edge:e,source:this.getNode(e.source),target:this.getNode(e.target)}}hasTreeStructure(t){return this.graph.hasTreeStructure(t)}getRoots(t){return this.graph.getRoots(t).filter(this.nodeFilter)}getChildren(t,e){return this.checkNodeExistence(t),this.graph.getChildren(t,e).filter(this.nodeFilter)}getParent(t,e){this.checkNodeExistence(t);const r=this.graph.getParent(t,e);return!r||!this.nodeFilter(r)?null:r}getAllNodes(){return this.cacheEnabled?Array.from(this.allNodesMap.values()):this.graph.getAllNodes().filter(this.nodeFilter)}getAllEdges(){return this.cacheEnabled?Array.from(this.allEdgesMap.values()):this.graph.getAllEdges().filter(this.edgeFilter)}bfs(t,e,r="out"){const i={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[r];yv([this.getNode(t)],new Set,e,i)}dfs(t,e,r="out"){const i={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[r];Ku(this.getNode(t),new Set,e,i)}}class Vn extends Xu{constructor(e){super();On(this,"nodeMap",new Map);On(this,"edgeMap",new Map);On(this,"inEdgesMap",new Map);On(this,"outEdgesMap",new Map);On(this,"bothEdgesMap",new Map);On(this,"treeIndices",new Map);On(this,"changes",[]);On(this,"batchCount",0);On(this,"onChanged",()=>{});On(this,"batch",e=>{this.batchCount+=1,e(),this.batchCount-=1,this.batchCount||this.commit()});e&&(e.nodes&&this.addNodes(e.nodes),e.edges&&this.addEdges(e.edges),e.tree&&this.addTree(e.tree),e.onChanged&&(this.onChanged=e.onChanged))}commit(){const e=this.changes;this.changes=[];const r={graph:this,changes:e};this.emit("changed",r),this.onChanged(r)}reduceChanges(e){let r=[];return e.forEach(i=>{switch(i.type){case"NodeRemoved":{let a=!1;r=r.filter(s=>{if(s.type==="NodeAdded"){const o=s.value.id===i.value.id;return o&&(a=!0),!o}else{if(s.type==="NodeDataUpdated")return s.id!==i.value.id;if(s.type==="TreeStructureChanged")return s.nodeId!==i.value.id}return!0}),a||r.push(i);break}case"EdgeRemoved":{let a=!1;r=r.filter(s=>{if(s.type==="EdgeAdded"){const o=s.value.id===i.value.id;return o&&(a=!0),!o}else if(s.type==="EdgeDataUpdated"||s.type==="EdgeUpdated")return s.id!==i.value.id;return!0}),a||r.push(i);break}case"NodeDataUpdated":case"EdgeDataUpdated":case"EdgeUpdated":{const a=r.findIndex(o=>o.type===i.type&&o.id===i.id&&(i.propertyName===void 0||o.propertyName===i.propertyName)),s=r[a];s?i.propertyName!==void 0?s.newValue=i.newValue:(r.splice(a,1),r.push(i)):r.push(i);break}case"TreeStructureDetached":{r=r.filter(a=>a.type==="TreeStructureAttached"||a.type==="TreeStructureChanged"?a.treeKey!==i.treeKey:!0),r.push(i);break}case"TreeStructureChanged":{const a=r.find(s=>s.type==="TreeStructureChanged"&&s.treeKey===i.treeKey&&s.nodeId===i.nodeId);a?a.newParentId=i.newParentId:r.push(i);break}default:r.push(i);break}}),r}checkNodeExistence(e){this.getNode(e)}hasNode(e){return this.nodeMap.has(e)}areNeighbors(e,r){return this.getNeighbors(r).some(i=>i.id===e)}getNode(e){const r=this.nodeMap.get(e);if(!r)throw new Error("Node not found for id: "+e);return r}getRelatedEdges(e,r){if(this.checkNodeExistence(e),r==="in"){const i=this.inEdgesMap.get(e);return Array.from(i)}else if(r==="out"){const i=this.outEdgesMap.get(e);return Array.from(i)}else{const i=this.bothEdgesMap.get(e);return Array.from(i)}}getDegree(e,r){return this.getRelatedEdges(e,r).length}getSuccessors(e){const i=this.getRelatedEdges(e,"out").map(a=>this.getNode(a.target));return Array.from(new Set(i))}getPredecessors(e){const i=this.getRelatedEdges(e,"in").map(a=>this.getNode(a.source));return Array.from(new Set(i))}getNeighbors(e){const r=this.getPredecessors(e),i=this.getSuccessors(e);return Array.from(new Set([...r,...i]))}doAddNode(e){if(this.hasNode(e.id))throw new Error("Node already exists: "+e.id);this.nodeMap.set(e.id,e),this.inEdgesMap.set(e.id,new Set),this.outEdgesMap.set(e.id,new Set),this.bothEdgesMap.set(e.id,new Set),this.treeIndices.forEach(r=>{r.childrenMap.set(e.id,new Set)}),this.changes.push({type:"NodeAdded",value:e})}addNodes(e){this.batch(()=>{for(const r of e)this.doAddNode(r)})}addNode(e){this.addNodes([e])}doRemoveNode(e){const r=this.getNode(e),i=this.bothEdgesMap.get(e);i==null||i.forEach(a=>this.doRemoveEdge(a.id)),this.nodeMap.delete(e),this.treeIndices.forEach(a=>{var o,l;(o=a.childrenMap.get(e))==null||o.forEach(c=>{a.parentMap.delete(c.id)});const s=a.parentMap.get(e);s&&((l=a.childrenMap.get(s.id))==null||l.delete(r)),a.parentMap.delete(e),a.childrenMap.delete(e)}),this.bothEdgesMap.delete(e),this.inEdgesMap.delete(e),this.outEdgesMap.delete(e),this.changes.push({type:"NodeRemoved",value:r})}removeNodes(e){this.batch(()=>{e.forEach(r=>this.doRemoveNode(r))})}removeNode(e){this.removeNodes([e])}updateNodeDataProperty(e,r,i){const a=this.getNode(e);this.batch(()=>{const s=a.data[r],o=i;a.data[r]=o,this.changes.push({type:"NodeDataUpdated",id:e,propertyName:r,oldValue:s,newValue:o})})}mergeNodeData(e,r){this.batch(()=>{Object.entries(r).forEach(([i,a])=>{this.updateNodeDataProperty(e,i,a)})})}updateNodeData(...e){const r=e[0],i=this.getNode(r);if(typeof e[1]=="string"){this.updateNodeDataProperty(r,e[1],e[2]);return}let a;if(typeof e[1]=="function"){const s=e[1];a=s(i.data)}else typeof e[1]=="object"&&(a=e[1]);this.batch(()=>{const s=i.data,o=a;i.data=a,this.changes.push({type:"NodeDataUpdated",id:r,oldValue:s,newValue:o})})}checkEdgeExistence(e){if(!this.hasEdge(e))throw new Error("Edge not found for id: "+e)}hasEdge(e){return this.edgeMap.has(e)}getEdge(e){return this.checkEdgeExistence(e),this.edgeMap.get(e)}getEdgeDetail(e){const r=this.getEdge(e);return{edge:r,source:this.getNode(r.source),target:this.getNode(r.target)}}doAddEdge(e){if(this.hasEdge(e.id))throw new Error("Edge already exists: "+e.id);this.checkNodeExistence(e.source),this.checkNodeExistence(e.target),this.edgeMap.set(e.id,e);const r=this.inEdgesMap.get(e.target),i=this.outEdgesMap.get(e.source),a=this.bothEdgesMap.get(e.source),s=this.bothEdgesMap.get(e.target);r.add(e),i.add(e),a.add(e),s.add(e),this.changes.push({type:"EdgeAdded",value:e})}addEdges(e){this.batch(()=>{for(const r of e)this.doAddEdge(r)})}addEdge(e){this.addEdges([e])}doRemoveEdge(e){const r=this.getEdge(e),i=this.outEdgesMap.get(r.source),a=this.inEdgesMap.get(r.target),s=this.bothEdgesMap.get(r.source),o=this.bothEdgesMap.get(r.target);i.delete(r),a.delete(r),s.delete(r),o.delete(r),this.edgeMap.delete(e),this.changes.push({type:"EdgeRemoved",value:r})}removeEdges(e){this.batch(()=>{e.forEach(r=>this.doRemoveEdge(r))})}removeEdge(e){this.removeEdges([e])}updateEdgeSource(e,r){const i=this.getEdge(e);this.checkNodeExistence(r);const a=i.source,s=r;this.outEdgesMap.get(a).delete(i),this.bothEdgesMap.get(a).delete(i),this.outEdgesMap.get(s).add(i),this.bothEdgesMap.get(s).add(i),i.source=r,this.batch(()=>{this.changes.push({type:"EdgeUpdated",id:e,propertyName:"source",oldValue:a,newValue:s})})}updateEdgeTarget(e,r){const i=this.getEdge(e);this.checkNodeExistence(r);const a=i.target,s=r;this.inEdgesMap.get(a).delete(i),this.bothEdgesMap.get(a).delete(i),this.inEdgesMap.get(s).add(i),this.bothEdgesMap.get(s).add(i),i.target=r,this.batch(()=>{this.changes.push({type:"EdgeUpdated",id:e,propertyName:"target",oldValue:a,newValue:s})})}updateEdgeDataProperty(e,r,i){const a=this.getEdge(e);this.batch(()=>{const s=a.data[r],o=i;a.data[r]=o,this.changes.push({type:"EdgeDataUpdated",id:e,propertyName:r,oldValue:s,newValue:o})})}updateEdgeData(...e){const r=e[0],i=this.getEdge(r);if(typeof e[1]=="string"){this.updateEdgeDataProperty(r,e[1],e[2]);return}let a;if(typeof e[1]=="function"){const s=e[1];a=s(i.data)}else typeof e[1]=="object"&&(a=e[1]);this.batch(()=>{const s=i.data,o=a;i.data=a,this.changes.push({type:"EdgeDataUpdated",id:r,oldValue:s,newValue:o})})}mergeEdgeData(e,r){this.batch(()=>{Object.entries(r).forEach(([i,a])=>{this.updateEdgeDataProperty(e,i,a)})})}checkTreeExistence(e){if(!this.hasTreeStructure(e))throw new Error("Tree structure not found for treeKey: "+e)}hasTreeStructure(e){return this.treeIndices.has(e)}attachTreeStructure(e){this.treeIndices.has(e)||(this.treeIndices.set(e,{parentMap:new Map,childrenMap:new Map}),this.batch(()=>{this.changes.push({type:"TreeStructureAttached",treeKey:e})}))}detachTreeStructure(e){this.checkTreeExistence(e),this.treeIndices.delete(e),this.batch(()=>{this.changes.push({type:"TreeStructureDetached",treeKey:e})})}addTree(e,r){this.batch(()=>{this.attachTreeStructure(r);const i=[],a=Array.isArray(e)?e:[e];for(;a.length;){const s=a.shift();i.push(s),s.children&&a.push(...s.children)}this.addNodes(i),i.forEach(s=>{var o;(o=s.children)==null||o.forEach(l=>{this.setParent(l.id,s.id,r)})})})}getRoots(e){return this.checkTreeExistence(e),this.getAllNodes().filter(r=>!this.getParent(r.id,e))}getChildren(e,r){this.checkNodeExistence(e),this.checkTreeExistence(r);const a=this.treeIndices.get(r).childrenMap.get(e);return Array.from(a||[])}getParent(e,r){return this.checkNodeExistence(e),this.checkTreeExistence(r),this.treeIndices.get(r).parentMap.get(e)||null}getAncestors(e,r){const i=[];let a=this.getNode(e),s;for(;s=this.getParent(a.id,r);)i.push(s),a=s;return i}setParent(e,r,i){var u,h;this.checkTreeExistence(i);const a=this.treeIndices.get(i);if(!a)return;const s=this.getNode(e),o=a.parentMap.get(e);if((o==null?void 0:o.id)===r)return;if(r==null){o&&((u=a.childrenMap.get(o.id))==null||u.delete(s)),a.parentMap.delete(e);return}const l=this.getNode(r);a.parentMap.set(e,l),o&&((h=a.childrenMap.get(o.id))==null||h.delete(s));let c=a.childrenMap.get(l.id);c||(c=new Set,a.childrenMap.set(l.id,c)),c.add(s),this.batch(()=>{this.changes.push({type:"TreeStructureChanged",treeKey:i,nodeId:e,oldParentId:o==null?void 0:o.id,newParentId:l.id})})}dfsTree(e,r,i){const a=s=>this.getChildren(s,i);return Ku(this.getNode(e),new Set,r,a)}bfsTree(e,r,i){const a=s=>this.getChildren(s,i);return yv([this.getNode(e)],new Set,r,a)}getAllNodes(){return Array.from(this.nodeMap.values())}getAllEdges(){return Array.from(this.edgeMap.values())}bfs(e,r,i="out"){const a={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[i];return yv([this.getNode(e)],new Set,r,a)}dfs(e,r,i="out"){const a={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[i];return Ku(this.getNode(e),new Set,r,a)}clone(){const e=this.getAllNodes().map(a=>U0(Io({},a),{data:Io({},a.data)})),r=this.getAllEdges().map(a=>U0(Io({},a),{data:Io({},a.data)})),i=new Vn({nodes:e,edges:r});return this.treeIndices.forEach(({parentMap:a,childrenMap:s},o)=>{const l=new Map;a.forEach((u,h)=>{l.set(h,i.getNode(u.id))});const c=new Map;s.forEach((u,h)=>{c.set(h,new Set(Array.from(u).map(d=>i.getNode(d.id))))}),i.treeIndices.set(o,{parentMap:l,childrenMap:c})}),i}toJSON(){return JSON.stringify({nodes:this.getAllNodes(),edges:this.getAllEdges()})}createView(e){return new oP(Io({graph:this},e))}}class Qu{constructor(t,e){this.context=t,this.options=e||{}}}var lP=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})},cP=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(n);i{const a=i.data._isCombo?r.combos:r.nodes,{x:s,y:o,z:l=0}=i.data;a==null||a.push({id:i.id,style:{x:s,y:o,z:l}})}),e.forEach(i=>{const{id:a,source:s,target:o,data:{points:l=[],controlPoints:c=l.slice(1,l.length-1)}}=i;r.edges.push({id:a,source:s,target:o,style:Object.assign({},c!=null&&c.length?{controlPoints:c.map(br)}:{})})}),r}function dP(n,t){class e extends Qu{constructor(i,a){if(super(i,a),this.instance=new n({}),this.id=this.instance.id,"stop"in this.instance&&"tick"in this.instance){const s=this.instance;this.stop=s.stop.bind(s),this.tick=o=>{const l=s.tick(o);return qu(l)}}}execute(i,a){return lP(this,void 0,void 0,function*(){return qu(yield this.instance.execute(this.graphData2LayoutModel(i),this.transformOptions(yr({},this.options,a))))})}transformOptions(i){if(!("onTick"in i))return i;const a=i.onTick;return i.onTick=s=>a(qu(s)),i}graphData2LayoutModel(i){const{nodes:a=[],edges:s=[],combos:o=[]}=i,l=a.map(f=>{const v=At(f),{data:g,style:p,combo:y}=f,b=cP(f,["data","style","combo"]),E={id:v,data:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},g),{data:g}),y?{parentId:y}:{}),{style:p}),b)};return p!=null&&p.x&&Object.assign(E.data,{x:p.x}),p!=null&&p.y&&Object.assign(E.data,{y:p.y}),p!=null&&p.z&&Object.assign(E.data,{z:p.z}),E}),c=new Map(l.map(f=>[f.id,f])),u=s.filter(f=>{const{source:v,target:g}=f;return c.has(v)&&c.has(g)}).map(f=>{const{source:v,target:g,data:p,style:y}=f;return{id:At(f),source:v,target:g,data:Object.assign({},p),style:Object.assign({},y)}}),h=o.map(f=>({id:At(f),data:Object.assign({_isCombo:!0},f.data),style:Object.assign({},f.style)})),d=new Vn({nodes:[...l,...h],edges:u});return t.model.model.hasTreeStructure(dn)&&(d.attachTreeStructure(dn),l.forEach(f=>{const v=t.model.model.getParent(f.id,dn);v&&d.hasNode(v.id)&&d.setParent(f.id,v.id,dn)})),d}}return e}function bv(n,t,...e){if(t in n)return n[t](...e);if("instance"in n){const r=n.instance;if(t in r)return r[t](...e)}return null}function R1(n,t){if(t in n)return n[t];if("instance"in n){const e=n.instance;if(t in e)return e[t]}return null}var fP=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};class vP extends Nl{get forceLayoutInstance(){return this.context.layout.getLayoutInstance().find(t=>["d3-force","d3-force-3d"].includes(t==null?void 0:t.id))}validate(t){return this.context.layout?this.forceLayoutInstance?super.validate(t):(qr.warn("DragElementForce only works with d3-force or d3-force-3d layout"),!1):!1}moveElement(t,e){return fP(this,void 0,void 0,function*(){const r=this.forceLayoutInstance;this.context.graph.getNodeData(t).forEach((i,a)=>{const{x:s=0,y:o=0}=i.style||{};r&&bv(r,"setFixedPosition",t[a],[...Re([+s,+o],this.clampByRotation(e))])})})}onDragStart(t){if(this.enable=this.validate(t),!this.enable)return;this.target=this.getSelectedNodeIDs([t.target.id]),this.hideEdge(),this.context.graph.frontElement(this.target);const e=this.forceLayoutInstance;e&&R1(e,"simulation").alphaTarget(.3).restart(),this.context.graph.getNodeData(this.target).forEach(r=>{const{x:i=0,y:a=0}=r.style||{};e&&bv(e,"setFixedPosition",At(r),[+i,+a])})}onDrag(t){if(!this.enable)return;const e=this.getDelta(t);this.moveElement(this.target,e)}onDragEnd(){const t=this.forceLayoutInstance;t&&R1(t,"simulation").alphaTarget(0),!this.options.fixed&&this.context.graph.getNodeData(this.target).forEach(e=>{t&&bv(t,"setFixedPosition",At(e),[null,null,null])})}}var L1=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};class Ju extends li{constructor(t,e){super(t,Object.assign({},Ju.defaultOptions,e)),this.isZoomEvent=r=>!!(r.data&&"scale"in r.data),this.relatedEdgeToUpdate=new Set,this.zoom=this.context.graph.getZoom(),this.fixElementSize=r=>L1(this,void 0,void 0,function*(){if(!this.validate(r))return;const{graph:i}=this.context,{state:a,nodeFilter:s,edgeFilter:o,comboFilter:l}=this.options,c=(a?i.getElementDataByState("node",a):i.getNodeData()).filter(s),u=(a?i.getElementDataByState("edge",a):i.getEdgeData()).filter(o),h=(a?i.getElementDataByState("combo",a):i.getComboData()).filter(l),d=this.isZoomEvent(r)?this.zoom=Math.max(.01,Math.min(r.data.scale,10)):this.zoom,f=[...c,...h];f.length>0&&f.forEach(v=>this.fixNodeLike(v,d)),this.updateRelatedEdges(),u.length>0&&u.forEach(v=>this.fixEdge(v,d))}),this.cachedStyles=new Map,this.getOriginalFieldValue=(r,i,a)=>{var s;const o=this.cachedStyles.get(r)||[],l=((s=o.find(c=>c.shape===i))===null||s===void 0?void 0:s.style)||{};return a in l||(l[a]=i.attributes[a],this.cachedStyles.set(r,[...o.filter(c=>c.shape!==i),{shape:i,style:l}])),l[a]},this.scaleEntireElement=(r,i,a)=>{i.setLocalScale(1/a);const s=this.cachedStyles.get(r)||[];s.push({shape:i}),this.cachedStyles.set(r,s)},this.scaleSpecificShapes=(r,i,a)=>{const s=ik(r);(Array.isArray(a)?a:[a]).forEach(l=>{const{shape:c,fields:u}=l,h=typeof c=="function"?c(s):r.getShape(c);if(h){if(!u){this.scaleEntireElement(r.id,h,i);return}u.forEach(d=>{const f=this.getOriginalFieldValue(r.id,h,d);re(f)&&(h.style[d]=f/i)})}})},this.skipIfExceedViewport=r=>{const{viewport:i}=this.context;return!(i!=null&&i.isInViewport(r.getRenderBounds(),!1,30))},this.fixNodeLike=(r,i)=>{const a=At(r),{element:s,model:o}=this.context,l=s.getElement(a);if(!l||this.skipIfExceedViewport(l))return;o.getRelatedEdgesData(a).forEach(h=>this.relatedEdgeToUpdate.add(At(h)));const u=this.options[l.type];if(!u){this.scaleEntireElement(a,l,i);return}this.scaleSpecificShapes(l,i,u)},this.fixEdge=(r,i)=>{const a=At(r),s=this.context.element.getElement(a);if(!s||this.skipIfExceedViewport(s))return;const o=this.options.edge;if(!o){s.style.transformOrigin="center",this.scaleEntireElement(a,s,i);return}this.scaleSpecificShapes(s,i,o)},this.updateRelatedEdges=()=>{const{element:r}=this.context;this.relatedEdgeToUpdate.size>0&&this.relatedEdgeToUpdate.forEach(i=>{const a=r.getElement(i);a==null||a.update({})}),this.relatedEdgeToUpdate.clear()},this.resetTransform=r=>L1(this,void 0,void 0,function*(){var i;!((i=r.data)===null||i===void 0)&&i.firstRender||(this.options.reset?this.restoreCachedStyles():this.fixElementSize({data:{scale:this.zoom}}))}),this.bindEvents()}restoreCachedStyles(){if(this.cachedStyles.size>0){this.cachedStyles.forEach(i=>{i.forEach(({shape:a,style:s})=>{if(aa(s))a.setLocalScale(1);else{if(this.options.state)return;Object.entries(s).forEach(([o,l])=>a.style[o]=l)}})});const{graph:t,element:e}=this.context,r=Object.keys(Object.fromEntries(this.cachedStyles)).filter(i=>i&&t.getElementType(i)==="node");if(r.length>0){const i=new Set;r.forEach(a=>{t.getRelatedEdgesData(a).forEach(s=>i.add(At(s)))}),i.forEach(a=>{const s=e==null?void 0:e.getElement(a);s==null||s.update({})})}}}bindEvents(){const{graph:t}=this.context;t.on(Xt.AFTER_DRAW,this.resetTransform),t.on(Xt.AFTER_TRANSFORM,this.fixElementSize)}unbindEvents(){const{graph:t}=this.context;t.off(Xt.AFTER_DRAW,this.resetTransform),t.off(Xt.AFTER_TRANSFORM,this.fixElementSize)}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return ue(e)?e(t):!!e}destroy(){this.unbindEvents(),super.destroy()}}Ju.defaultOptions={enable:n=>n.data.scale<1,nodeFilter:()=>!0,edgeFilter:()=>!0,comboFilter:()=>!0,edge:[{shape:"key",fields:["lineWidth"]},{shape:"halo",fields:["lineWidth"]},{shape:"label"}],reset:!1};var gP=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};class $u extends li{constructor(t,e){super(t,Object.assign({},$u.defaultOptions,e)),this.focus=r=>gP(this,void 0,void 0,function*(){if(!this.validate(r))return;const{graph:i}=this.context;yield i.focusElement(r.target.id,this.options.animation)}),this.bindEvents()}bindEvents(){const{graph:t}=this.context;this.unbindEvents(),ks.forEach(e=>{t.on(`${e}:${It.CLICK}`,this.focus)})}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return ue(e)?e(t):!!e}unbindEvents(){const{graph:t}=this.context;ks.forEach(e=>{t.off(`${e}:${It.CLICK}`,this.focus)})}destroy(){this.unbindEvents(),super.destroy()}}$u.defaultOptions={animation:{easing:"ease-in",duration:500},enable:!0};class th extends li{constructor(t,e){super(t,Object.assign({},th.defaultOptions,e)),this.isFrozen=!1,this.toggleFrozen=r=>{this.isFrozen=r.type==="dragstart"},this.hoverElement=r=>{if(!this.validate(r))return;const i=r.type===It.POINTER_ENTER;this.updateElementsState(r,i);const{onHover:a,onHoverEnd:s}=this.options;i?a==null||a(r):s==null||s(r)},this.updateElementsState=(r,i)=>{if(!this.options.state&&!this.options.inactiveState)return;const{graph:a}=this.context,{state:s,animation:o,inactiveState:l}=this.options,c=this.getActiveIds(r),u={};if(s&&Object.assign(u,this.getElementsState(c,s,i)),l){const h=yy(a.getData(),!0).filter(d=>!c.includes(d));Object.assign(u,this.getElementsState(h,l,i))}a.setElementState(u,o)},this.getElementsState=(r,i,a)=>{const{graph:s}=this.context,o={};return r.forEach(l=>{const c=s.getElementState(l);a?o[l]=c.includes(i)?c:[...c,i]:o[l]=c.filter(u=>u!==i)}),o},this.bindEvents()}bindEvents(){const{graph:t}=this.context;this.unbindEvents(),ks.forEach(r=>{t.on(`${r}:${It.POINTER_ENTER}`,this.hoverElement),t.on(`${r}:${It.POINTER_LEAVE}`,this.hoverElement)});const e=this.context.canvas.document;e.addEventListener(`${It.DRAG_START}`,this.toggleFrozen),e.addEventListener(`${It.DRAG_END}`,this.toggleFrozen)}getActiveIds(t){const{graph:e}=this.context,{degree:r,direction:i}=this.options,a=t.target.id;return r?Dy(e,t.targetType,a,typeof r=="function"?r(t):r,i):[a]}validate(t){if(this.destroyed||this.isFrozen||Ol(t.target)||this.context.graph.isCollapsingExpanding)return!1;const{enable:e}=this.options;return ue(e)?e(t):!!e}unbindEvents(){const{graph:t}=this.context;ks.forEach(r=>{t.off(`${r}:${It.POINTER_ENTER}`,this.hoverElement),t.off(`${r}:${It.POINTER_LEAVE}`,this.hoverElement)});const e=this.context.canvas.document;e.removeEventListener(`${It.DRAG_START}`,this.toggleFrozen),e.removeEventListener(`${It.DRAG_END}`,this.toggleFrozen)}destroy(){this.unbindEvents(),super.destroy()}}th.defaultOptions={animation:!1,enable:!0,degree:0,direction:"both",state:"active",inactiveState:void 0};class pP extends yl{onPointerDown(t){if(!super.validate(t)||!super.isKeydown()||this.points)return;const{canvas:e,graph:r}=this.context;this.pathShape=new ii({id:"g6-lasso-select",style:this.options.style}),e.appendChild(this.pathShape),this.points=[pu(t,r)]}onPointerMove(t){var e;if(!this.points)return;const{immediately:r,mode:i}=this.options;this.points.push(pu(t,this.context.graph)),(e=this.pathShape)===null||e===void 0||e.setAttribute("d",$N(this.points)),r&&i==="default"&&this.points.length>2&&super.updateElementsStates(this.points)}onPointerUp(){if(this.points){if(this.points.length<2){this.clearLasso();return}super.updateElementsStates(this.points),this.clearLasso()}}clearLasso(){var t;(t=this.pathShape)===null||t===void 0||t.remove(),this.pathShape=void 0,this.points=void 0}}class eh extends li{constructor(t,e){super(t,Object.assign({},eh.defaultOptions,e)),this.hiddenShapes=[],this.isVisible=!0,this.setElementsVisibility=(r,i,a)=>{r.filter(Boolean).forEach(s=>{i==="hidden"&&!s.isVisible()?this.hiddenShapes.push(s):i==="visible"&&this.hiddenShapes.includes(s)?this.hiddenShapes.splice(this.hiddenShapes.indexOf(s),1):Cs(s,i,a)})},this.filterShapes=(r,i)=>{if(ue(i))return s=>!i(r,s);const a=i==null?void 0:i[r];return s=>s.className?!(a!=null&&a.includes(s.className)):!0},this.hideShapes=r=>{if(!this.validate(r)||!this.isVisible)return;const{element:i}=this.context,{shapes:a={}}=this.options;this.setElementsVisibility(i.getNodes(),"hidden",this.filterShapes("node",a)),this.setElementsVisibility(i.getEdges(),"hidden",this.filterShapes("edge",a)),this.setElementsVisibility(i.getCombos(),"hidden",this.filterShapes("combo",a)),this.isVisible=!1},this.showShapes=Cl(r=>{if(!this.validate(r)||this.isVisible)return;const{element:i}=this.context;this.setElementsVisibility(i.getNodes(),"visible"),this.setElementsVisibility(i.getEdges(),"visible"),this.setElementsVisibility(i.getCombos(),"visible"),this.isVisible=!0},this.options.debounce),this.bindEvents()}bindEvents(){const{graph:t}=this.context;t.on(Xt.BEFORE_TRANSFORM,this.hideShapes),t.on(Xt.AFTER_TRANSFORM,this.showShapes)}unbindEvents(){const{graph:t}=this.context;t.off(Xt.BEFORE_TRANSFORM,this.hideShapes),t.off(Xt.AFTER_TRANSFORM,this.showShapes)}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return ue(e)?e(t):!!e}update(t){this.unbindEvents(),super.update(t),this.bindEvents()}destroy(){this.unbindEvents(),super.destroy()}}eh.defaultOptions={enable:!0,debounce:200,shapes:n=>n==="node"};var _1=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};class nh extends li{constructor(t,e){super(t,Object.assign({},nh.defaultOptions,e)),this.onWheel=r=>_1(this,void 0,void 0,function*(){this.options.preventDefault&&r.preventDefault();const i=r.deltaX,a=r.deltaY;yield this.scroll([-i,-a],r)}),this.shortcut=new vo(t.graph),this.bindEvents()}update(t){super.update(t),this.bindEvents()}bindEvents(){var t,e;const{trigger:r}=this.options;if(this.shortcut.unbindAll(),Fn(r)){(t=this.graphDom)===null||t===void 0||t.removeEventListener(It.WHEEL,this.onWheel);const{up:i=[],down:a=[],left:s=[],right:o=[]}=r;this.shortcut.bind(i,l=>this.scroll([0,-10],l)),this.shortcut.bind(a,l=>this.scroll([0,10],l)),this.shortcut.bind(s,l=>this.scroll([-10,0],l)),this.shortcut.bind(o,l=>this.scroll([10,0],l))}else(e=this.graphDom)===null||e===void 0||e.addEventListener(It.WHEEL,this.onWheel,{passive:!1})}get graphDom(){return this.context.graph.getCanvas().getContextService().getDomElement()}formatDisplacement(t){const{sensitivity:e}=this.options;return t=Bi(t,e),t=this.clampByDirection(t),t=this.clampByRange(t),t}clampByDirection([t,e]){const{direction:r}=this.options;return r==="x"?e=0:r==="y"&&(t=0),[t,e]}clampByRange([t,e]){const{viewport:r,canvas:i}=this.context,[a,s]=i.getSize(),[o,l,c,u]=oi(this.options.range),h=[s*o,a*l,s*c,a*u],d=za(Nf(r.getCanvasCenter()),h),f=un(r.getViewportCenter(),[t,e,0]);if(!Di(f,d)){const{min:[v,g],max:[p,y]}=d;(f[0]0||f[0]>p&&t<0)&&(t=0),(f[1]0||f[1]>y&&e<0)&&(e=0)}return[t,e]}scroll(t,e){return _1(this,void 0,void 0,function*(){if(!this.validate(e))return;const{onFinish:r}=this.options,i=this.context.graph,a=this.formatDisplacement(t);yield i.translateBy(a,!1),r==null||r()})}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return ue(e)?e(t):!!e}destroy(){var t;this.shortcut.destroy(),(t=this.graphDom)===null||t===void 0||t.removeEventListener(It.WHEEL,this.onWheel),super.destroy()}}nh.defaultOptions={enable:!0,sensitivity:1,preventDefault:!0,range:1/0};var D1=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};class rh extends li{constructor(t,e){super(t,Object.assign({},rh.defaultOptions,e)),this.zoom=(r,i,a)=>D1(this,void 0,void 0,function*(){if(!this.validate(i))return;const{graph:s}=this.context;let o=this.options.origin;!o&&"viewport"in i&&(o=br(i.viewport));const{sensitivity:l,onFinish:c}=this.options,u=1+Nn(r,-50,50)*l/100,h=s.getZoom();yield s.zoomTo(h*u,a,o),c==null||c()}),this.onReset=()=>D1(this,void 0,void 0,function*(){yield this.context.graph.zoomTo(1,this.options.animation)}),this.preventDefault=r=>{this.options.preventDefault&&r.preventDefault()},this.shortcut=new vo(t.graph),this.bindEvents()}update(t){super.update(t),this.bindEvents()}bindEvents(){const{trigger:t}=this.options;if(this.shortcut.unbindAll(),Array.isArray(t))if(t.includes(It.PINCH))this.shortcut.bind([It.PINCH],e=>{this.zoom(e.scale,e,!1)});else{const e=this.context.canvas.getContainer();e==null||e.addEventListener(It.WHEEL,this.preventDefault),this.shortcut.bind([...t,It.WHEEL],r=>{const{deltaX:i,deltaY:a}=r;this.zoom(-(a!=null?a:i),r,!1)})}if(typeof t=="object"){const{zoomIn:e=[],zoomOut:r=[],reset:i=[]}=t;this.shortcut.bind(e,a=>this.zoom(10,a,this.options.animation)),this.shortcut.bind(r,a=>this.zoom(-10,a,this.options.animation)),this.shortcut.bind(i,this.onReset)}}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return ue(e)?e(t):!!e}destroy(){var t;this.shortcut.destroy(),(t=this.context.canvas.getContainer())===null||t===void 0||t.removeEventListener(It.WHEEL,this.preventDefault),super.destroy()}}rh.defaultOptions={animation:{duration:200},enable:!0,sensitivity:1,trigger:[],preventDefault:!0};var ih=S(13722);const mP=(n,t)=>{if(n!=="next"&&n!=="prev")return t},I1=n=>{n.prev.next=n.next,n.next.prev=n.prev,delete n.next,delete n.prev};class yP{constructor(){const t={};t.prev=t,t.next=t.prev,this.shortcut=t}dequeue(){const t=this.shortcut,e=t.prev;if(e&&e!==t)return I1(e),e}enqueue(t){const e=this.shortcut;t.prev&&t.next&&I1(t),t.next=e.next,e.next.prev=t,e.next=t,t.prev=e}toString(){const t=[],e=this.shortcut;let r=e.prev;for(;r!==e;)t.push(JSON.stringify(r,mP)),r=r==null?void 0:r.prev;return`[${t.join(", ")}]`}}class bP extends yP{}const xP=()=>1,EP=(n,t)=>{var e;if(n.getAllNodes().length<=1)return[];const r=SP(n,t||xP);return(e=wP(r.graph,r.buckets,r.zeroIdx).map(a=>n.getRelatedEdges(a.v,"out").filter(({target:s})=>s===a.w)))===null||e===void 0?void 0:e.flat()},wP=(n,t,e)=>{let r=[];const i=t[t.length-1],a=t[0];let s;for(;n.getAllNodes().length;){for(;s=a.dequeue();)xv(n,t,e,s);for(;s=i.dequeue();)xv(n,t,e,s);if(n.getAllNodes().length){for(let o=t.length-2;o>0;--o)if(s=t[o].dequeue(),s){r=r.concat(xv(n,t,e,s,!0));break}}}return r},xv=(n,t,e,r,i)=>{var a,s;const o=[];return n.hasNode(r.v)&&((a=n.getRelatedEdges(r.v,"in"))===null||a===void 0||a.forEach(l=>{const c=l.data.weight,u=n.getNode(l.source);i&&o.push({v:l.source,w:l.target,in:0,out:0}),u.data.out===void 0&&(u.data.out=0),u.data.out-=c,Ev(t,e,Object.assign({v:u.id},u.data))}),(s=n.getRelatedEdges(r.v,"out"))===null||s===void 0||s.forEach(l=>{const c=l.data.weight,u=l.target,h=n.getNode(u);h.data.in===void 0&&(h.data.in=0),h.data.in-=c,Ev(t,e,Object.assign({v:h.id},h.data))}),n.removeNode(r.v)),i?o:void 0},SP=(n,t)=>{const e=new Vn;let r=0,i=0;n.getAllNodes().forEach(l=>{e.addNode({id:l.id,data:{v:l.id,in:0,out:0}})}),n.getAllEdges().forEach(l=>{const c=e.getRelatedEdges(l.source,"out").find(h=>h.target===l.target),u=(t==null?void 0:t(l))||1;c?e.updateEdgeData(c==null?void 0:c.id,Object.assign(Object.assign({},c.data),{weight:c.data.weight+u})):e.addEdge({id:l.id,source:l.source,target:l.target,data:{weight:u}}),i=Math.max(i,e.getNode(l.source).data.out+=u),r=Math.max(r,e.getNode(l.target).data.in+=u)});const a=[],s=i+r+3;for(let l=0;l{Ev(a,o,Object.assign({v:l.id},e.getNode(l.id).data))}),{buckets:a,zeroIdx:o,graph:e}},Ev=(n,t,e)=>{e.out?e.in?n[e.out-e.in+t].enqueue(e):n[n.length-1].enqueue(e):n[0].enqueue(e)},MP=(n,t)=>{const r=t==="greedy"?EP(n,(i=>a=>a.data.weight||1)(n)):AP(n);r==null||r.forEach(i=>{const a=i.data;n.removeEdge(i.id),a.forwardName=i.data.name,a.reversed=!0,n.addEdge({id:i.id,source:i.target,target:i.source,data:Object.assign({},a)})})},AP=n=>{const t=[],e={},r={},i=a=>{r[a]||(r[a]=!0,e[a]=!0,n.getRelatedEdges(a,"out").forEach(s=>{e[s.target]?t.push(s):i(s.target)}),delete e[a])};return n.getAllNodes().forEach(a=>i(a.id)),t},TP=n=>{n.getAllEdges().forEach(t=>{const e=t.data;if(e.reversed){n.removeEdge(t.id);const r=e.forwardName;delete e.reversed,delete e.forwardName,n.addEdge({id:t.id,source:t.target,target:t.source,data:Object.assign(Object.assign({},e),{forwardName:r})})}})},OP=(n,t)=>Number(n)-Number(t),yo=(n,t,e,r)=>{let i;do i=`${r}${Math.random()}`;while(n.hasNode(i));return e.dummy=t,n.addNode({id:i,data:e}),i},CP=n=>{const t=new Vn;return n.getAllNodes().forEach(e=>{t.addNode(Object.assign({},e))}),n.getAllEdges().forEach(e=>{const r=t.getRelatedEdges(e.source,"out").find(i=>i.target===e.target);r?t.updateEdgeData(r==null?void 0:r.id,Object.assign(Object.assign({},r.data),{weight:r.data.weight+e.data.weight||0,minlen:Math.max(r.data.minlen,e.data.minlen||1)})):t.addEdge({id:e.id,source:e.source,target:e.target,data:{weight:e.data.weight||0,minlen:e.data.minlen||1}})}),t},B1=n=>{const t=new Vn;return n.getAllNodes().forEach(e=>{n.getChildren(e.id).length||t.addNode(Object.assign({},e))}),n.getAllEdges().forEach(e=>{t.addEdge(e)}),t},F1=(n,t)=>n==null?void 0:n.reduce((e,r,i)=>(e[r]=t[i],e),{}),w7=n=>{const t={};return n.getAllNodes().forEach(e=>{const r={};n.getRelatedEdges(e.id,"out").forEach(i=>{r[i.target]=(r[i.target]||0)+(i.data.weight||0)}),t[e.id]=r}),t},S7=n=>{const t=n.getAllNodes(),e=t.map(r=>{const i={};return n.getRelatedEdges(r.id,"in").forEach(a=>{i[a.source]=(i[a.source]||0)+a.data.weight}),i});return F1(t.map(r=>r.id),e)},z1=(n,t)=>{const e=Number(n.x),r=Number(n.y),i=Number(t.x)-e,a=Number(t.y)-r;let s=Number(n.width)/2,o=Number(n.height)/2;if(!i&&!a)return{x:0,y:0};let l,c;return Math.abs(a)*s>Math.abs(i)*o?(a<0&&(o=-o),l=o*i/a,c=o):(i<0&&(s=-s),l=s,c=s*a/i),{x:e+l,y:r+c}},kl=n=>{const t=[],e=W1(n)+1;for(let r=0;r{const i=r.data.rank;i!==void 0&&t[i]&&t[i].push(r.id)});for(let r=0;rOP(n.getNode(i).data.order,n.getNode(a).data.order));return t},NP=n=>{const t=n.getAllNodes().filter(r=>r.data.rank!==void 0).map(r=>r.data.rank),e=Math.min(...t);n.getAllNodes().forEach(r=>{r.data.hasOwnProperty("rank")&&e!==1/0&&(r.data.rank-=e)})},kP=(n,t=0)=>{const e=n.getAllNodes(),r=e.filter(o=>o.data.rank!==void 0).map(o=>o.data.rank),i=Math.min(...r),a=[];e.forEach(o=>{const l=(o.data.rank||0)-i;a[l]||(a[l]=[]),a[l].push(o.id)});let s=0;for(let o=0;o{const u=n.getNode(c);u&&(u.data.rank=u.data.rank||0,u.data.rank+=s)}))}},j1=(n,t,e,r)=>{const i={width:0,height:0};return re(e)&&re(r)&&(i.rank=e,i.order=r),yo(n,"border",i,t)},W1=n=>{let t;return n.getAllNodes().forEach(e=>{const r=e.data.rank;r!==void 0&&(t===void 0||r>t)&&(t=r)}),t||(t=0),t},PP=(n,t)=>{const e={lhs:[],rhs:[]};return n==null||n.forEach(r=>{t(r)?e.lhs.push(r):e.rhs.push(r)}),e},wv=(n,t)=>n.reduce((e,r)=>{const i=t(e),a=t(r);return i>a?r:e}),G1=(n,t,e,r,i,a)=>{r.includes(t.id)||(r.push(t.id),e||a.push(t.id),i(t.id).forEach(s=>G1(n,s,e,r,i,a)),e&&a.push(t.id))},Z1=(n,t,e,r)=>{const i=Array.isArray(t)?t:[t],a=l=>r?n.getSuccessors(l):n.getNeighbors(l),s=[],o=[];return i.forEach(l=>{if(n.hasNode(l.id))G1(n,l,e==="post",o,a,s);else throw new Error(`Graph does not have node: ${l}`)}),s},RP=n=>{const t=e=>{const r=n.getChildren(e),i=n.getNode(e);if(r!=null&&r.length&&r.forEach(a=>t(a.id)),i.data.hasOwnProperty("minRank")){i.data.borderLeft=[],i.data.borderRight=[];for(let a=i.data.minRank,s=i.data.maxRank+1;at(e.id))},V1=(n,t,e,r,i,a)=>{const s={rank:a,borderType:t,width:0,height:0},o=i.data[t][a-1],l=yo(n,"border",s,e);i.data[t][a]=l,n.setParent(l,r),o&&n.addEdge({id:`e${Math.random()}`,source:o,target:l,data:{weight:1}})},LP=(n,t)=>{const e=t.toLowerCase();(e==="lr"||e==="rl")&&U1(n)},_P=(n,t)=>{const e=t.toLowerCase();(e==="bt"||e==="rl")&&DP(n),(e==="lr"||e==="rl")&&(IP(n),U1(n))},U1=n=>{n.getAllNodes().forEach(t=>{Y1(t)}),n.getAllEdges().forEach(t=>{Y1(t)})},Y1=n=>{const t=n.data.width;n.data.width=n.data.height,n.data.height=t},DP=n=>{n.getAllNodes().forEach(t=>{Sv(t.data)}),n.getAllEdges().forEach(t=>{var e;(e=t.data.points)===null||e===void 0||e.forEach(r=>Sv(r)),t.data.hasOwnProperty("y")&&Sv(t.data)})},Sv=n=>{n!=null&&n.y&&(n.y=-n.y)},IP=n=>{n.getAllNodes().forEach(t=>{Mv(t.data)}),n.getAllEdges().forEach(t=>{var e;(e=t.data.points)===null||e===void 0||e.forEach(r=>Mv(r)),t.data.hasOwnProperty("x")&&Mv(t.data)})},Mv=n=>{const t=n.x;n.x=n.y,n.y=t},BP=n=>{const t=yo(n,"root",{},"_root"),e=FP(n);let r=Math.max(...Object.values(e));Math.abs(r)===1/0&&(r=1);const i=r-1,a=2*i+1;n.getAllEdges().forEach(o=>{o.data.minlen*=a});const s=zP(n)+1;return n.getRoots().forEach(o=>{H1(n,t,a,s,i,e,o.id)}),{nestingRoot:t,nodeRankFactor:a}},H1=(n,t,e,r,i,a,s)=>{const o=n.getChildren(s);if(!(o!=null&&o.length)){s!==t&&n.addEdge({id:`e${Math.random()}`,source:t,target:s,data:{weight:0,minlen:e}});return}const l=j1(n,"_bt"),c=j1(n,"_bb"),u=n.getNode(s);n.setParent(l,s),u.data.borderTop=l,n.setParent(c,s),u.data.borderBottom=c,o==null||o.forEach(h=>{H1(n,t,e,r,i,a,h.id);const d=h.data.borderTop?h.data.borderTop:h.id,f=h.data.borderBottom?h.data.borderBottom:h.id,v=h.data.borderTop?r:2*r,g=d!==f?1:i-a[s]+1;n.addEdge({id:`e${Math.random()}`,source:l,target:d,data:{minlen:g,weight:v,nestingEdge:!0}}),n.addEdge({id:`e${Math.random()}`,source:f,target:c,data:{minlen:g,weight:v,nestingEdge:!0}})}),n.getParent(s)||n.addEdge({id:`e${Math.random()}`,source:t,target:l,data:{weight:0,minlen:i+a[s]}})},FP=n=>{const t={},e=(r,i)=>{const a=n.getChildren(r);a==null||a.forEach(s=>e(s.id,i+1)),t[r]=i};return n.getRoots().forEach(r=>e(r.id,1)),t},zP=n=>{let t=0;return n.getAllEdges().forEach(e=>{t+=e.data.weight}),t},jP=(n,t)=>{t&&n.removeNode(t),n.getAllEdges().forEach(e=>{e.data.nestingEdge&&n.removeEdge(e.id)})},WP="edge",X1="edge-label",GP=(n,t)=>{n.getAllEdges().forEach(e=>ZP(n,e,t))},ZP=(n,t,e)=>{let r=t.source,i=n.getNode(r).data.rank;const a=t.target,s=n.getNode(a).data.rank,o=t.data.labelRank;if(s===i+1)return;n.removeEdge(t.id);let l,c,u;for(u=0,++i;i{t.forEach(e=>{let r=n.getNode(e);const{data:i}=r,a=i.originalEdge;let s;a&&n.addEdge(a);let o=e;for(;r.data.dummy;)s=n.getSuccessors(o)[0],n.removeNode(o),a.data.points.push({x:r.data.x,y:r.data.y}),r.data.dummy===X1&&(a.data.x=r.data.x,a.data.y=r.data.y,a.data.width=r.data.width,a.data.height=r.data.height),o=s.id,r=n.getNode(o)})},UP=(n,t,e)=>{const r={};let i;e==null||e.forEach(a=>{let s=n.getParent(a),o,l;for(;s;){if(o=n.getParent(s.id),o?(l=r[o.id],r[o.id]=s.id):(l=i,i=s.id),l&&l!==s.id){t.hasNode(l)||t.addNode({id:l,data:{}}),t.hasNode(s.id)||t.addNode({id:s.id,data:{}}),t.hasEdge(`e${l}-${s.id}`)||t.addEdge({id:`e${l}-${s.id}`,source:l,target:s.id,data:{}});return}s=o}})},YP=(n,t,e)=>{const r=HP(n),i=new Vn({tree:[{id:r,children:[],data:{}}]});return n.getAllNodes().forEach(a=>{const s=n.getParent(a.id);(a.data.rank===t||a.data.minRank<=t&&t<=a.data.maxRank)&&(i.hasNode(a.id)||i.addNode(Object.assign({},a)),s!=null&&s.id&&!i.hasNode(s==null?void 0:s.id)&&i.addNode(Object.assign({},s)),i.setParent(a.id,(s==null?void 0:s.id)||r),n.getRelatedEdges(a.id,e).forEach(o=>{const l=o.source===a.id?o.target:o.source;i.hasNode(l)||i.addNode(Object.assign({},n.getNode(l)));const c=i.getRelatedEdges(l,"out").find(({target:h})=>h===a.id),u=c!==void 0?c.data.weight:0;c?i.updateEdgeData(c.id,Object.assign(Object.assign({},c.data),{weight:o.data.weight+u})):i.addEdge({id:o.id,source:l,target:a.id,data:{weight:o.data.weight+u}})}),a.data.hasOwnProperty("minRank")&&i.updateNodeData(a.id,Object.assign(Object.assign({},a.data),{borderLeft:a.data.borderLeft[t],borderRight:a.data.borderRight[t]})))}),i},HP=n=>{let t;for(;n.hasNode(t=`_root${Math.random()}`););return t},XP=(n,t,e)=>{const r=F1(e,e.map((u,h)=>h)),a=t.map(u=>{const h=n.getRelatedEdges(u,"out").map(d=>({pos:r[d.target]||0,weight:d.data.weight}));return h==null?void 0:h.sort((d,f)=>d.pos-f.pos)}).flat().filter(u=>u!==void 0);let s=1;for(;s{if(u){let h=u.pos+s;l[h]+=u.weight;let d=0;for(;h>0;)h%2&&(d+=l[h+1]),h=h-1>>1,l[h]+=u.weight;c+=u.weight*d}}),c},K1=(n,t)=>{let e=0;for(let r=1;r<(t==null?void 0:t.length);r+=1)e+=XP(n,t[r-1],t[r]);return e},Q1=n=>{const t={},e=n.getAllNodes(),r=e.map(c=>{var u;return(u=c.data.rank)!==null&&u!==void 0?u:-1/0}),i=Math.max(...r),a=[];for(let c=0;cn.getNode(c.id).data.rank-n.getNode(u.id).data.rank),l=s.filter(c=>n.getNode(c.id).data.fixorder!==void 0).sort((c,u)=>n.getNode(c.id).data.fixorder-n.getNode(u.id).data.fixorder);return l==null||l.forEach(c=>{isNaN(n.getNode(c.id).data.rank)||a[n.getNode(c.id).data.rank].push(c.id),t[c.id]=!0}),s==null||s.forEach(c=>n.dfsTree(c.id,u=>{if(t.hasOwnProperty(u.id))return!0;t[u.id]=!0,isNaN(u.data.rank)||a[u.data.rank].push(u.id)})),a},KP=(n,t)=>t.map(e=>{const r=n.getRelatedEdges(e,"in");if(!(r!=null&&r.length))return{v:e};const i={sum:0,weight:0};return r==null||r.forEach(a=>{const s=n.getNode(a.source);i.sum+=a.data.weight*s.data.order,i.weight+=a.data.weight}),{v:e,barycenter:i.sum/i.weight,weight:i.weight}}),QP=(n,t)=>{var e,r,i;const a={};n==null||n.forEach((o,l)=>{a[o.v]={i:l,indegree:0,in:[],out:[],vs:[o.v]};const c=a[o.v];o.barycenter!==void 0&&(c.barycenter=o.barycenter,c.weight=o.weight)}),(e=t.getAllEdges())===null||e===void 0||e.forEach(o=>{const l=a[o.source],c=a[o.target];l!==void 0&&c!==void 0&&(c.indegree++,l.out.push(a[o.target]))});const s=(i=(r=Object.values(a)).filter)===null||i===void 0?void 0:i.call(r,o=>!o.indegree);return qP(s)},qP=n=>{var t,e;const r=[],i=l=>c=>{c.merged||(c.barycenter===void 0||l.barycenter===void 0||c.barycenter>=l.barycenter)&&JP(l,c)},a=l=>c=>{c.in.push(l),--c.indegree===0&&n.push(c)};for(;n!=null&&n.length;){const l=n.pop();r.push(l),(t=l.in.reverse())===null||t===void 0||t.forEach(c=>i(l)(c)),(e=l.out)===null||e===void 0||e.forEach(c=>a(l)(c))}const s=r.filter(l=>!l.merged),o=["vs","i","barycenter","weight"];return s.map(l=>{const c={};return o==null||o.forEach(u=>{l[u]!==void 0&&(c[u]=l[u])}),c})},JP=(n,t)=>{var e;let r=0,i=0;n.weight&&(r+=n.barycenter*n.weight,i+=n.weight),t.weight&&(r+=t.barycenter*t.weight,i+=t.weight),n.vs=(e=t.vs)===null||e===void 0?void 0:e.concat(n.vs),n.barycenter=r/i,n.weight=i,n.i=Math.min(t.i,n.i),t.merged=!0};var $P=QP;const tR=(n,t,e,r)=>{const i=PP(n,d=>{const f=d.hasOwnProperty("fixorder")&&!isNaN(d.fixorder);return r?!f&&d.hasOwnProperty("barycenter"):f||d.hasOwnProperty("barycenter")}),a=i.lhs,s=i.rhs.sort((d,f)=>-d.i- -f.i),o=[];let l=0,c=0,u=0;a==null||a.sort(eR(!!t,!!e)),u=q1(o,s,u),a==null||a.forEach(d=>{var f;u+=(f=d.vs)===null||f===void 0?void 0:f.length,o.push(d.vs),l+=d.barycenter*d.weight,c+=d.weight,u=q1(o,s,u)});const h={vs:o.flat()};return c&&(h.barycenter=l/c,h.weight=c),h},q1=(n,t,e)=>{let r=e,i;for(;t.length&&(i=t[t.length-1]).i<=r;)t.pop(),n==null||n.push(i.vs),r++;return r},eR=(n,t)=>(e,r)=>{if(e.fixorder!==void 0&&r.fixorder!==void 0)return e.fixorder-r.fixorder;if(e.barycenterr.barycenter)return 1;if(t&&e.order!==void 0&&r.order!==void 0){if(e.orderr.order)return 1}return n?r.i-e.i:e.i-r.i},J1=(n,t,e,r,i,a)=>{var s,o,l,c;let u=n.getChildren(t).map(b=>b.id);const h=n.getNode(t),d=h?h.data.borderLeft:void 0,f=h?h.data.borderRight:void 0,v={};d&&(u=u==null?void 0:u.filter(b=>b!==d&&b!==f));const g=KP(n,u||[]);g==null||g.forEach(b=>{var E;if(!((E=n.getChildren(b.v))===null||E===void 0)&&E.length){const O=J1(n,b.v,e,r,a);v[b.v]=O,O.hasOwnProperty("barycenter")&&rR(b,O)}});const p=$P(g,e);nR(p,v),(s=p.filter(b=>b.vs.length>0))===null||s===void 0||s.forEach(b=>{const E=n.getNode(b.vs[0]);E&&(b.fixorder=E.data.fixorder,b.order=E.data.order)});const y=tR(p,r,i,a);if(d&&(y.vs=[d,y.vs,f].flat(),!((o=n.getPredecessors(d))===null||o===void 0)&&o.length)){const b=n.getNode(((l=n.getPredecessors(d))===null||l===void 0?void 0:l[0].id)||""),E=n.getNode(((c=n.getPredecessors(f))===null||c===void 0?void 0:c[0].id)||"");y.hasOwnProperty("barycenter")||(y.barycenter=0,y.weight=0),y.barycenter=(y.barycenter*y.weight+b.data.order+E.data.order)/(y.weight+2),y.weight+=2}return y},nR=(n,t)=>{n==null||n.forEach(e=>{var r;const i=(r=e.vs)===null||r===void 0?void 0:r.map(a=>t[a]?t[a].vs:a);e.vs=i.flat()})},rR=(n,t)=>{n.barycenter!==void 0?(n.barycenter=(n.barycenter*n.weight+t.barycenter*t.weight)/(n.weight+t.weight),n.weight+=t.weight):(n.barycenter=t.barycenter,n.weight=t.weight)},iR=(n,t)=>{const e=W1(n),r=[],i=[];for(let u=1;u-1;u--)i.push(u);const a=$1(n,r,"in"),s=$1(n,i,"out");let o=Q1(n);Av(n,o);let l=Number.POSITIVE_INFINITY,c;for(let u=0,h=0;h<4;++u,++h){tb(u%2?a:s,u%4>=2,!1,t),o=kl(n);const d=K1(n,o);d=2,!0,t),o=kl(n);const d=K1(n,o);dt.map(r=>YP(n,r,e)),tb=(n,t,e,r)=>{const i=new Vn;n==null||n.forEach(a=>{var s;const o=a.getRoots()[0].id,l=J1(a,o,i,t,e,r);for(let c=0;c<((s=l.vs)===null||s===void 0?void 0:s.length);c++){const u=a.getNode(l.vs[c]);u&&(u.data.order=c)}UP(a,i,l.vs)})},Av=(n,t)=>{t==null||t.forEach(e=>{e==null||e.forEach((r,i)=>{n.getNode(r).data.order=i})})},aR=(n,t)=>{const r=n.getAllNodes().filter(s=>{var o;return!(!((o=n.getChildren(s.id))===null||o===void 0)&&o.length)}).map(s=>s.data.rank),i=Math.max(...r),a=[];for(let s=0;s{const o=n.getNode(s);!o||o.data.dummy||isNaN(o.data.rank)||(o.data.fixorder=a[o.data.rank].length,a[o.data.rank].push(s))})},sR=n=>{const t={};let e=0;const r=i=>{const a=e;n.getChildren(i).forEach(s=>r(s.id)),t[i]={low:a,lim:e++}};return n.getRoots().forEach(i=>r(i.id)),t},oR=(n,t,e,r)=>{var i,a;const s=[],o=[],l=Math.min(t[e].low,t[r].low),c=Math.max(t[e].lim,t[r].lim);let u,h;u=e;do u=(i=n.getParent(u))===null||i===void 0?void 0:i.id,s.push(u);while(u&&(t[u].low>l||c>t[u].lim));for(h=u,u=r;u&&u!==h;)o.push(u),u=(a=n.getParent(u))===null||a===void 0?void 0:a.id;return{lca:h,path:s.concat(o.reverse())}},lR=(n,t)=>{const e=sR(n);t.forEach(r=>{var i,a;let s=r,o=n.getNode(s);const l=o.data.originalEdge;if(!l)return;const c=oR(n,e,l.source,l.target),u=c.path,h=c.lca;let d=0,f=u[d],v=!0;for(;s!==l.target;){if(o=n.getNode(s),v){for(;f!==h&&((i=n.getNode(f))===null||i===void 0?void 0:i.data.maxRank){const e={},r=(i,a)=>{let s=0,o=0;const l=i.length,c=a==null?void 0:a[(a==null?void 0:a.length)-1];return a==null||a.forEach((u,h)=>{var d;const f=cR(n,u),v=f?n.getNode(f.id).data.order:l;(f||u===c)&&((d=a.slice(o,h+1))===null||d===void 0||d.forEach(g=>{var p;(p=n.getPredecessors(g))===null||p===void 0||p.forEach(y=>{var b;const E=n.getNode(y.id),O=E.data.order;(O{const e={};function r(o,l,c,u,h){var d,f;let v;for(let g=l;g{const y=n.getNode(p.id);y.data.dummy&&(y.data.orderh)&&rb(e,p.id,v)}))}function i(o){return JSON.stringify(o.slice(1))}function a(o,l){const c=i(o);l.get(c)||(r(...o),l.set(c,!0))}const s=(o,l)=>{let c=-1,u,h=0;const d=new Map;return l==null||l.forEach((f,v)=>{var g;if(((g=n.getNode(f))===null||g===void 0?void 0:g.data.dummy)==="border"){const p=n.getPredecessors(f)||[];p.length&&(u=n.getNode(p[0].id).data.order,a([l,h,v,c,u],d),h=v,c=u)}a([l,h,l.length,u,o.length],d)}),l};return t!=null&&t.length&&t.reduce(s),e},cR=(n,t)=>{var e,r;if(!((e=n.getNode(t))===null||e===void 0)&&e.data.dummy)return(r=n.getPredecessors(t))===null||r===void 0?void 0:r.find(i=>n.getNode(i.id).data.dummy)},rb=(n,t,e)=>{let r=t,i=e;if(r>i){const s=r;r=i,i=s}let a=n[r];a||(n[r]=a={}),a[i]=!0},uR=(n,t,e)=>{let r=t,i=e;if(r>i){const a=t;r=i,i=a}return!!n[r]},ib=(n,t,e,r)=>{const i={},a={},s={};return t==null||t.forEach(o=>{o==null||o.forEach((l,c)=>{i[l]=l,a[l]=l,s[l]=c})}),t==null||t.forEach(o=>{let l=-1;o==null||o.forEach(c=>{let u=r(c).map(h=>h.id);if(u.length){u=u.sort((d,f)=>s[d]-s[f]);const h=(u.length-1)/2;for(let d=Math.floor(h),f=Math.ceil(h);d<=f;++d){const v=u[d];a[c]===c&&l{var o;const l={},c=hR(n,t,e,i,a,s),u=s?"borderLeft":"borderRight",h=(v,g)=>{let p=c.getAllNodes(),y=p.pop();const b={};for(;y;)b[y.id]?v(y.id):(b[y.id]=!0,p.push(y),p=p.concat(g(y.id))),y=p.pop()},d=v=>{l[v]=(c.getRelatedEdges(v,"in")||[]).reduce((g,p)=>Math.max(g,(l[p.source]||0)+p.data.weight),0)},f=v=>{const g=(c.getRelatedEdges(v,"out")||[]).reduce((y,b)=>Math.min(y,(l[b.target]||0)-b.data.weight),Number.POSITIVE_INFINITY),p=n.getNode(v);g!==Number.POSITIVE_INFINITY&&p.data.borderType!==u&&(l[v]=Math.max(l[v],g))};return h(d,c.getPredecessors.bind(c)),h(f,c.getSuccessors.bind(c)),(o=Object.values(r))===null||o===void 0||o.forEach(v=>{l[v]=l[e[v]]}),l},hR=(n,t,e,r,i,a)=>{const s=new Vn,o=dR(r,i,a);return t==null||t.forEach(l=>{let c;l==null||l.forEach(u=>{const h=e[u];if(s.hasNode(h)||s.addNode({id:h,data:{}}),c){const d=e[c],f=s.getRelatedEdges(d,"out").find(v=>v.target===h);f?s.updateEdgeData(f.id,Object.assign(Object.assign({},f.data),{weight:Math.max(o(n,u,c),f.data.weight||0)})):s.addEdge({id:`e${Math.random()}`,source:d,target:h,data:{weight:Math.max(o(n,u,c),0)}})}c=u})}),s},sb=(n,t)=>wv(Object.values(t),e=>{var r;let i=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY;return(r=Object.keys(e))===null||r===void 0||r.forEach(s=>{const o=e[s],l=fR(n,s)/2;i=Math.max(o+l,i),a=Math.min(o-l,a)}),i-a});function ob(n,t){const e=Object.values(t),r=Math.min(...e),i=Math.max(...e);["u","d"].forEach(a=>{["l","r"].forEach(s=>{const o=a+s,l=n[o];let c;if(l===t)return;const u=Object.values(l);c=s==="l"?r-Math.min(...u):i-Math.max(...u),c&&(n[o]={},Object.keys(l).forEach(h=>{n[o][h]=l[h]+c}))})})}const lb=(n,t)=>{const e={};return Object.keys(n.ul).forEach(r=>{if(t)e[r]=n[t.toLowerCase()][r];else{const i=Object.values(n).map(a=>a[r]);e[r]=(i[0]+i[1])/2}}),e},M7=(n,t)=>{const{align:e,nodesep:r=0,edgesep:i=0}=t||{},a=buildLayerMatrix(n),s=Object.assign(eb(n,a),nb(n,a)),o={};let l;["u","d"].forEach(u=>{l=u==="u"?a:Object.values(a).reverse(),["l","r"].forEach(h=>{h==="r"&&(l=l.map(g=>Object.values(g).reverse()));const d=(u==="u"?n.getPredecessors:n.getSuccessors).bind(n),f=ib(n,l,s,d),v=ab(n,l,f.root,f.align,r,i,h==="r");h==="r"&&Object.keys(v).forEach(g=>{v[g]=-v[g]}),o[u+h]=v})});const c=sb(n,o);return ob(o,c),lb(o,e)},dR=(n,t,e)=>(r,i,a)=>{const s=r.getNode(i),o=r.getNode(a);let l=0,c=0;if(l+=s.data.width/2,s.data.hasOwnProperty("labelpos"))switch((s.data.labelpos||"").toLowerCase()){case"l":c=-s.data.width/2;break;case"r":c=s.data.width/2;break}if(c&&(l+=e?c:-c),c=0,l+=(s.data.dummy?t:n)/2,l+=(o.data.dummy?t:n)/2,l+=o.data.width/2,o.data.labelpos)switch((o.data.labelpos||"").toLowerCase()){case"l":c=o.data.width/2;break;case"r":c=-o.data.width/2;break}return c&&(l+=e?c:-c),c=0,l},fR=(n,t)=>n.getNode(t).data.width||0,vR=(n,t)=>{const{ranksep:e=0}=t||{},r=kl(n);let i=0;r==null||r.forEach(a=>{const s=a.map(l=>n.getNode(l).data.height),o=Math.max(...s,0);a==null||a.forEach(l=>{n.getNode(l).data.y=i+o/2}),i+=o+e})},gR=(n,t)=>{const{align:e,nodesep:r=0,edgesep:i=0}=t||{},a=kl(n),s=Object.assign(eb(n,a),nb(n,a)),o={};let l=[];["u","d"].forEach(u=>{l=u==="u"?a:Object.values(a).reverse(),["l","r"].forEach(h=>{h==="r"&&(l=l.map(g=>Object.values(g).reverse()));const d=(u==="u"?n.getPredecessors:n.getSuccessors).bind(n),f=ib(n,l,s,d),v=ab(n,l,f.root,f.align,r,i,h==="r");h==="r"&&Object.keys(v).forEach(g=>v[g]=-v[g]),o[u+h]=v})});const c=sb(n,o);return c&&ob(o,c),lb(o,e)},pR=(n,t)=>{var e;const r=B1(n);vR(r,t);const i=gR(r,t);(e=Object.keys(i))===null||e===void 0||e.forEach(a=>{r.getNode(a).data.x=i[a]})},cb=n=>{const t={},e=r=>{var i;const a=n.getNode(r);if(!a)return 0;if(t[r])return a.data.rank;t[r]=!0;let s;return(i=n.getRelatedEdges(r,"out"))===null||i===void 0||i.forEach(o=>{const l=e(o.target),c=o.data.minlen,u=l-c;u&&(s===void 0||un.getRelatedEdges(r.id,"in").length===0).forEach(r=>e(r.id))},mR=n=>{const t={};let e;const r=s=>{var o;const l=n.getNode(s);if(!l)return 0;if(t[s])return l.data.rank;t[s]=!0;let c;return(o=n.getRelatedEdges(s,"out"))===null||o===void 0||o.forEach(u=>{const h=r(u.target),d=u.data.minlen,f=h-d;f&&(c===void 0||fn.getRelatedEdges(s.id,"in").length===0).forEach(s=>{s&&r(s.id)}),e===void 0&&(e=0);const i={},a=(s,o)=>{var l;const c=n.getNode(s),u=isNaN(c.data.layer)?o:c.data.layer;(c.data.rank===void 0||c.data.rank{a(h.target,u+h.data.minlen)}))};n.getAllNodes().forEach(s=>{const o=s.data;o&&(isNaN(o.layer)?o.rank-=e:a(s.id,o.layer))})},Ya=(n,t)=>n.getNode(t.target).data.rank-n.getNode(t.source).data.rank-t.data.minlen,yR=n=>{const t=new Vn({tree:[]}),e=n.getAllNodes()[0],r=n.getAllNodes().length;t.addNode(e);let i,a;for(;bR(t,n){const e=r=>{t.getRelatedEdges(r,"both").forEach(i=>{const a=i.source,s=r===a?i.target:a;!n.hasNode(s)&&!Ya(t,i)&&(n.addNode({id:s,data:{}}),n.addEdge({id:i.id,source:r,target:s,data:{}}),e(s))})};return n.getAllNodes().forEach(r=>e(r.id)),n.getAllNodes().length},xR=n=>{const t=new Vn({tree:[]}),e=n.getAllNodes()[0],r=n.getAllNodes().length;t.addNode(e);let i,a;for(;ER(t,n){const e=r=>{var i;(i=t.getRelatedEdges(r,"both"))===null||i===void 0||i.forEach(a=>{const s=a.source,o=r===s?a.target:s;!n.hasNode(o)&&(t.getNode(o).data.layer!==void 0||!Ya(t,a))&&(n.addNode({id:o,data:{}}),n.addEdge({id:a.id,source:r,target:o,data:{}}),e(o))})};return n.getAllNodes().forEach(r=>e(r.id)),n.getAllNodes().length},ub=(n,t)=>wv(t.getAllEdges(),e=>n.hasNode(e.source)!==n.hasNode(e.target)?Ya(t,e):1/0),hb=(n,t,e)=>{n.getAllNodes().forEach(r=>{const i=t.getNode(r.id);i.data.rank||(i.data.rank=0),i.data.rank+=e})},wR=n=>{const t=CP(n);cb(t);const e=yR(t);fb(e),db(e,t);let r,i;for(;r=AR(e);)i=TR(e,t,r),OR(e,t,r,i)},db=(n,t)=>{let e=Z1(n,n.getAllNodes(),"post",!1);e=e.slice(0,(e==null?void 0:e.length)-1),e.forEach(r=>{SR(n,t,r)})},SR=(n,t,e)=>{const i=n.getNode(e).data.parent,a=n.getRelatedEdges(e,"both").find(s=>s.target===i||s.source===i);a.data.cutvalue=MR(n,t,e)},MR=(n,t,e)=>{const i=n.getNode(e).data.parent;let a=!0,s=t.getRelatedEdges(e,"out").find(l=>l.target===i),o=0;return s||(a=!1,s=t.getRelatedEdges(i,"out").find(l=>l.target===e)),o=s.data.weight,t.getRelatedEdges(e,"both").forEach(l=>{const c=l.source===e,u=c?l.target:l.source;if(u!==i){const h=c===a,d=l.data.weight;if(o+=h?d:-d,NR(n,e,u)){const f=n.getRelatedEdges(e,"both").find(v=>v.source===u||v.target===u).data.cutvalue;o+=h?-f:f}}}),o},fb=(n,t=n.getAllNodes()[0].id)=>{vb(n,{},1,t)},vb=(n,t,e,r,i)=>{var a;const s=e;let o=e;const l=n.getNode(r);return t[r]=!0,(a=n.getNeighbors(r))===null||a===void 0||a.forEach(c=>{t[c.id]||(o=vb(n,t,o,c.id,r))}),l.data.low=s,l.data.lim=o++,i?l.data.parent=i:delete l.data.parent,o},AR=n=>n.getAllEdges().find(t=>t.data.cutvalue<0),TR=(n,t,e)=>{let r=e.source,i=e.target;t.getRelatedEdges(r,"out").find(u=>u.target===i)||(r=e.target,i=e.source);const a=n.getNode(r),s=n.getNode(i);let o=a,l=!1;a.data.lim>s.data.lim&&(o=s,l=!0);const c=t.getAllEdges().filter(u=>l===gb(n.getNode(u.source),o)&&l!==gb(n.getNode(u.target),o));return wv(c,u=>Ya(t,u))},OR=(n,t,e,r)=>{const i=n.getRelatedEdges(e.source,"both").find(a=>a.source===e.target||a.target===e.target);i&&n.removeEdge(i.id),n.addEdge({id:`e${Math.random()}`,source:r.source,target:r.target,data:{}}),fb(n),db(n,t),CR(n,t)},CR=(n,t)=>{const e=n.getAllNodes().find(i=>!i.data.parent);let r=Z1(n,e,"pre",!1);r=r.slice(1),r.forEach(i=>{const a=n.getNode(i).data.parent;let s=t.getRelatedEdges(i,"out").find(l=>l.target===a),o=!1;!s&&t.hasNode(a)&&(s=t.getRelatedEdges(a,"out").find(l=>l.target===i),o=!0),t.getNode(i).data.rank=(t.hasNode(a)&&t.getNode(a).data.rank||0)+(o?s==null?void 0:s.data.minlen:-(s==null?void 0:s.data.minlen))})},NR=(n,t,e)=>n.getRelatedEdges(t,"both").find(r=>r.source===e||r.target===e),gb=(n,t)=>t.data.low<=n.data.lim&&n.data.lim<=t.data.lim,kR=(n,t)=>{switch(t){case"network-simplex":RR(n);break;case"tight-tree":pb(n);break;case"longest-path":PR(n);break;default:pb(n)}},PR=cb,pb=n=>{mR(n),xR(n)},RR=n=>{wR(n)},LR=(n,t)=>{const{edgeLabelSpace:e,keepNodeOrder:r,prevGraph:i,rankdir:a,ranksep:s}=t;!r&&i&&DR(n,i);const o=WR(n);e&&(t.ranksep=GR(o,{rankdir:a,ranksep:s}));let l;try{l=_R(o,t)}catch(c){if(c.message==="Not possible to find intersection inside of the rectangle"){console.error(`The following error may be caused by improper layer setting, please make sure your manual layer setting does not violate the graph's structure: `,c);return}throw c}return IR(n,o),l},_R=(n,t)=>{const{acyclicer:e,ranker:r,rankdir:i="tb",nodeOrder:a,keepNodeOrder:s,align:o,nodesep:l=50,edgesep:c=20,ranksep:u=50}=t;qR(n),MP(n,e);const{nestingRoot:h,nodeRankFactor:d}=BP(n);kR(B1(n),r),ZR(n),kP(n,d),jP(n,h),NP(n),VR(n),UR(n);const f=[];GP(n,f),lR(n,f),RP(n),s&&aR(n,a),iR(n,s),JR(n),LP(n,i),pR(n,{align:o,nodesep:l,edgesep:c,ranksep:u}),$R(n),QR(n),VP(n,f),XR(n),_P(n,i);const{width:v,height:g}=YR(n);return HR(n),KR(n),TP(n),{width:v,height:g}},DR=(n,t)=>{n.getAllNodes().forEach(e=>{const r=n.getNode(e.id);if(t.hasNode(e.id)){const i=t.getNode(e.id);r.data.fixorder=i.data._order,delete i.data._order}else delete r.data.fixorder})},IR=(n,t)=>{n.getAllNodes().forEach(e=>{var r;const i=n.getNode(e.id);if(i){const a=t.getNode(e.id);i.data.x=a.data.x,i.data.y=a.data.y,i.data._order=a.data.order,i.data._rank=a.data.rank,!((r=t.getChildren(e.id))===null||r===void 0)&&r.length&&(i.data.width=a.data.width,i.data.height=a.data.height)}}),n.getAllEdges().forEach(e=>{const r=n.getEdge(e.id),i=t.getEdge(e.id);r.data.points=i?i.data.points:[],i&&i.data.hasOwnProperty("x")&&(r.data.x=i.data.x,r.data.y=i.data.y)})},BR=["width","height","layer","fixorder"],FR={width:0,height:0},zR=["minlen","weight","width","height","labeloffset"],jR={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},Tv=["labelpos"],WR=n=>{const t=new Vn({tree:[]});return n.getAllNodes().forEach(e=>{const r=yb(n.getNode(e.id).data),i=Object.assign(Object.assign({},FR),r),a=mb(i,BR);t.hasNode(e.id)||t.addNode({id:e.id,data:Object.assign({},a)});const s=n.hasTreeStructure("combo")?n.getParent(e.id,"combo"):n.getParent(e.id);be(s)||(t.hasNode(s.id)||t.addNode(Object.assign({},s)),t.setParent(e.id,s.id))}),n.getAllEdges().forEach(e=>{const r=yb(n.getEdge(e.id).data),i={};Tv==null||Tv.forEach(a=>{r[a]!==void 0&&(i[a]=r[a])}),t.addEdge({id:e.id,source:e.source,target:e.target,data:Object.assign({},jR,mb(r,zR),i)})}),t},GR=(n,t)=>{const{ranksep:e=0,rankdir:r}=t;return n.getAllNodes().forEach(i=>{isNaN(i.data.layer)||i.data.layer||(i.data.layer=0)}),n.getAllEdges().forEach(i=>{var a;i.data.minlen*=2,((a=i.data.labelpos)===null||a===void 0?void 0:a.toLowerCase())!=="c"&&(r==="TB"||r==="BT"?i.data.width+=i.data.labeloffset:i.data.height+=i.data.labeloffset)}),e/2},ZR=n=>{n.getAllEdges().forEach(t=>{if(t.data.width&&t.data.height){const e=n.getNode(t.source),r=n.getNode(t.target),i={e:t,rank:(r.data.rank-e.data.rank)/2+e.data.rank};yo(n,"edge-proxy",i,"_ep")}})},VR=n=>{let t=0;return n.getAllNodes().forEach(e=>{var r,i;e.data.borderTop&&(e.data.minRank=(r=n.getNode(e.data.borderTop))===null||r===void 0?void 0:r.data.rank,e.data.maxRank=(i=n.getNode(e.data.borderBottom))===null||i===void 0?void 0:i.data.rank,t=Math.max(t,e.data.maxRank||-1/0))}),t},UR=n=>{n.getAllNodes().forEach(t=>{t.data.dummy==="edge-proxy"&&(n.getEdge(t.data.e.id).data.labelRank=t.data.rank,n.removeNode(t.id))})},YR=(n,t)=>{let e,r=0,i,a=0;const{marginx:s=0,marginy:o=0}=t||{},l=c=>{if(!c.data)return;const u=c.data.x,h=c.data.y,d=c.data.width,f=c.data.height;!isNaN(u)&&!isNaN(d)&&(e===void 0&&(e=u-d/2),e=Math.min(e,u-d/2),r=Math.max(r,u+d/2)),!isNaN(h)&&!isNaN(f)&&(i===void 0&&(i=h-f/2),i=Math.min(i,h-f/2),a=Math.max(a,h+f/2))};return n.getAllNodes().forEach(c=>{l(c)}),n.getAllEdges().forEach(c=>{c!=null&&c.data.hasOwnProperty("x")&&l(c)}),e-=s,i-=o,n.getAllNodes().forEach(c=>{c.data.x-=e,c.data.y-=i}),n.getAllEdges().forEach(c=>{var u;(u=c.data.points)===null||u===void 0||u.forEach(h=>{h.x-=e,h.y-=i}),c.data.hasOwnProperty("x")&&(c.data.x-=e),c.data.hasOwnProperty("y")&&(c.data.y-=i)}),{width:r-e+s,height:a-i+o}},HR=n=>{n.getAllEdges().forEach(t=>{const e=n.getNode(t.source),r=n.getNode(t.target);let i,a;t.data.points?(i=t.data.points[0],a=t.data.points[t.data.points.length-1]):(t.data.points=[],i={x:r.data.x,y:r.data.y},a={x:e.data.x,y:e.data.y}),t.data.points.unshift(z1(e.data,i)),t.data.points.push(z1(r.data,a))})},XR=n=>{n.getAllEdges().forEach(t=>{if(t.data.hasOwnProperty("x"))switch((t.data.labelpos==="l"||t.data.labelpos==="r")&&(t.data.width-=t.data.labeloffset),t.data.labelpos){case"l":t.data.x-=t.data.width/2+t.data.labeloffset;break;case"r":t.data.x+=t.data.width/2+t.data.labeloffset;break}})},KR=n=>{n.getAllEdges().forEach(t=>{var e;t.data.reversed&&((e=t.data.points)===null||e===void 0||e.reverse())})},QR=n=>{n.getAllNodes().forEach(t=>{var e,r,i;if(!((e=n.getChildren(t.id))===null||e===void 0)&&e.length){const a=n.getNode(t.id),s=n.getNode(a.data.borderTop),o=n.getNode(a.data.borderBottom),l=n.getNode(a.data.borderLeft[((r=a.data.borderLeft)===null||r===void 0?void 0:r.length)-1]),c=n.getNode(a.data.borderRight[((i=a.data.borderRight)===null||i===void 0?void 0:i.length)-1]);a.data.width=Math.abs((c==null?void 0:c.data.x)-(l==null?void 0:l.data.x))||10,a.data.height=Math.abs((o==null?void 0:o.data.y)-(s==null?void 0:s.data.y))||10,a.data.x=((l==null?void 0:l.data.x)||0)+a.data.width/2,a.data.y=((s==null?void 0:s.data.y)||0)+a.data.height/2}}),n.getAllNodes().forEach(t=>{t.data.dummy==="border"&&n.removeNode(t.id)})},qR=n=>{n.getAllEdges().forEach(t=>{if(t.source===t.target){const e=n.getNode(t.source);e.data.selfEdges||(e.data.selfEdges=[]),e.data.selfEdges.push(t),n.removeEdge(t.id)}})},JR=n=>{const t=kl(n);t==null||t.forEach(e=>{let r=0;e==null||e.forEach((i,a)=>{var s;const o=n.getNode(i);o.data.order=a+r,(s=o.data.selfEdges)===null||s===void 0||s.forEach(l=>{yo(n,"selfedge",{width:l.data.width,height:l.data.height,rank:o.data.rank,order:a+ ++r,e:l},"_se")}),delete o.data.selfEdges})})},$R=n=>{n.getAllNodes().forEach(t=>{const e=n.getNode(t.id);if(e.data.dummy==="selfedge"){const r=n.getNode(e.data.e.source),i=r.data.x+r.data.width/2,a=r.data.y,s=e.data.x-i,o=r.data.height/2;n.hasEdge(e.data.e.id)?n.updateEdgeData(e.data.e.id,e.data.e.data):n.addEdge({id:e.data.e.id,source:e.data.e.source,target:e.data.e.target,data:e.data.e.data}),n.removeNode(t.id),e.data.e.data.points=[{x:i+2*s/3,y:a-o},{x:i+5*s/6,y:a-o},{y:a,x:i+s},{x:i+5*s/6,y:a+o},{x:i+2*s/3,y:a+o}],e.data.e.data.x=e.data.x,e.data.e.data.y=e.data.y}})},mb=(n,t)=>{const e={};return t==null||t.forEach(r=>{n[r]!==void 0&&(e[r]=+n[r])}),e},yb=(n={})=>{const t={};return Object.keys(n).forEach(e=>{t[e.toLowerCase()]=n[e]}),t};function Pl(n){if(!n)return[0,0,0];if(re(n))return[n,n,n];if(n.length===0)return[0,0,0];const[t,e=t,r=t]=n;return[t,e,r]}function Bs(n,t){let e;return ue(t)?e=t:re(t)?e=()=>t:e=()=>n,e}function Ov(n,t,e=!0){return!t&&t!==0?r=>{const{size:i}=r.data||{};return i?Array.isArray(i)?e?Math.max(...i)||n:i:Fn(i)&&i.width&&i.height?e?Math.max(i.width,i.height)||n:[i.width,i.height]:i:n}:ue(t)?t:re(t)?()=>t:Array.isArray(t)?()=>e?Math.max(...t)||n:t:Fn(t)&&t.width&&t.height?()=>e?Math.max(t.width,t.height)||n:[t.width,t.height]:()=>n}const Cv=(n,t,e=10)=>{let r;const i=typeof t=="function"?t:()=>t||0;return n?Array.isArray(n)?r=s=>n:ue(n)?r=n:r=s=>n:r=s=>{var o,l,c;if(!((o=s.data)===null||o===void 0)&&o.bboxSize)return(l=s.data)===null||l===void 0?void 0:l.bboxSize;if(!((c=s.data)===null||c===void 0)&&c.size){const u=s.data.size;return Array.isArray(u)?u:Fn(u)?[u.width,u.height]:u}return e},s=>{const o=r(s),l=i(s);return Math.max(...Pl(o))+l}},Nv=n=>{if(n===null)return n;if(n instanceof Date)return new Date(n.getTime());if(n instanceof Array){const t=[];return n.forEach(e=>{t.push(e)}),t.map(e=>Nv(e))}if(typeof n=="object"){const t={};return Object.keys(n).forEach(e=>{t[e]=Nv(n[e])}),t}return n},hi=(n,t)=>{const e=Nv(n);return e.data=e.data||{},t&&(re(e.data.x)||(e.data.x=Math.random()*t[0]),re(e.data.y)||(e.data.y=Math.random()*t[1])),e},tL={rankdir:"TB",nodesep:50,ranksep:50,edgeLabelSpace:!0,ranker:"tight-tree",controlPoints:!1,radial:!1,focusNode:null};class eL{constructor(t={}){this.options=t,this.id="antv-dagre",this.options=Object.assign(Object.assign({},tL),t)}execute(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){return this.genericDagreLayout(!1,t,e)})}assign(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){yield this.genericDagreLayout(!0,t,e)})}genericDagreLayout(t,e,r){return(0,Z.mG)(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{nodeSize:a,align:s,rankdir:o="TB",ranksep:l,nodesep:c,ranksepFunc:u,nodesepFunc:h,edgeLabelSpace:d,ranker:f,nodeOrder:v,begin:g,controlPoints:p,radial:y,sortByCombo:b,preset:E}=i,O=new Vn({tree:[]}),k=Bs(l||50,u),R=Bs(c||50,h);let z=R,B=k;(o==="LR"||o==="RL")&&(z=k,B=R);const V=Ov(10,a,!1),U=e.getAllNodes(),J=e.getAllEdges();U.forEach(gt=>{const pt=Pl(V(gt)),Pt=B(gt),jt=z(gt),Yt=pt[0]+2*jt,ee=pt[1]+2*Pt,ie=gt.data.layer;re(ie)?O.addNode({id:gt.id,data:{width:Yt,height:ee,layer:ie}}):O.addNode({id:gt.id,data:{width:Yt,height:ee}})}),b&&(O.attachTreeStructure("combo"),U.forEach(gt=>{const{parentId:pt}=gt.data;pt!==void 0&&O.hasNode(pt)&&O.setParent(gt.id,pt,"combo")})),J.forEach(gt=>{O.addEdge({id:gt.id,source:gt.source,target:gt.target,data:{weight:gt.data.weight||1}})});let $;E!=null&&E.length&&($=new Vn({nodes:E})),LR(O,{prevGraph:$,edgeLabelSpace:d,keepNodeOrder:!!v,nodeOrder:v||[],acyclicer:"greedy",ranker:f,rankdir:o,nodesep:c,align:s});const st=[0,0];if(g){let gt=1/0,pt=1/0;O.getAllNodes().forEach(Pt=>{gt>Pt.data.x&&(gt=Pt.data.x),pt>Pt.data.y&&(pt=Pt.data.y)}),O.getAllEdges().forEach(Pt=>{var jt;(jt=Pt.data.points)===null||jt===void 0||jt.forEach(Yt=>{gt>Yt.x&&(gt=Yt.x),pt>Yt.y&&(pt=Yt.y)})}),st[0]=g[0]-gt,st[1]=g[1]-pt}const ct=o==="LR"||o==="RL";if(!y){const gt=new Set,Pt=o==="BT"||o==="RL"?(ie,ce)=>ce-ie:(ie,ce)=>ie-ce;O.getAllNodes().forEach(ie=>{ie.data.x=ie.data.x+st[0],ie.data.y=ie.data.y+st[1],gt.add(ct?ie.data.x:ie.data.y)});const jt=Array.from(gt).sort(Pt),Yt=ct?(ie,ce)=>ie.x!==ce.x:(ie,ce)=>ie.y!==ce.y,ee=ct?(ie,ce,le)=>{const Ee=Math.max(ce.y,le.y),Ce=Math.min(ce.y,le.y);return ie.filter(We=>We.y<=Ee&&We.y>=Ce)}:(ie,ce,le)=>{const Ee=Math.max(ce.x,le.x),Ce=Math.min(ce.x,le.x);return ie.filter(We=>We.x<=Ee&&We.x>=Ce)};O.getAllEdges().forEach((ie,ce)=>{var le;d&&p&&ie.data.type!=="loop"&&(ie.data.controlPoints=nL((le=ie.data.points)===null||le===void 0?void 0:le.map(({x:Ee,y:Ce})=>({x:Ee+st[0],y:Ce+st[1]})),O.getNode(ie.source),O.getNode(ie.target),jt,ct,Yt,ee))})}let ft=[];ft=O.getAllNodes().map(gt=>hi(gt));const Nt=O.getAllEdges();return t&&(ft.forEach(gt=>{e.mergeNodeData(gt.id,{x:gt.data.x,y:gt.data.y})}),Nt.forEach(gt=>{e.mergeEdgeData(gt.id,{controlPoints:gt.data.controlPoints})})),{nodes:ft,edges:Nt}})}}const nL=(n,t,e,r,i,a,s)=>{let o=(n==null?void 0:n.slice(1,n.length-1))||[];if(t&&e){let{x:l,y:c}=t.data,{x:u,y:h}=e.data;if(i&&(l=t.data.y,c=t.data.x,u=e.data.y,h=e.data.x),h!==c&&l!==u){const d=r.indexOf(c),f=r[d+1];if(f){const p=o[0],y=i?{x:(c+f)/2,y:(p==null?void 0:p.y)||u}:{x:(p==null?void 0:p.x)||u,y:(c+f)/2};(!p||a(p,y))&&o.unshift(y)}const v=r.indexOf(h),g=Math.abs(v-d);if(g===1)o=s(o,t.data,e.data),o.length||o.push(i?{x:(c+h)/2,y:l}:{x:l,y:(c+h)/2});else if(g>1){const p=r[v-1];if(p){const y=o[o.length-1],b=i?{x:(h+p)/2,y:(y==null?void 0:y.y)||u}:{x:(y==null?void 0:y.x)||l,y:(h+p)/2};(!y||a(y,b))&&o.push(b)}}}}return o},Fs=(n,t,e)=>{const r=n.getAllNodes(),i=n.getAllEdges();if(!(r!=null&&r.length))return{nodes:[],edges:i};if(r.length===1)return t&&n.mergeNodeData(r[0].id,{x:e[0],y:e[1]}),{nodes:[Object.assign(Object.assign({},r[0]),{data:Object.assign(Object.assign({},r[0].data),{x:e[0],y:e[1]})})],edges:i}},rL={radius:null,startRadius:null,endRadius:null,startAngle:0,endAngle:2*Math.PI,clockwise:!0,divisions:1,ordering:null,angleRatio:1};class iL{constructor(t={}){this.options=t,this.id="circular",this.options=Object.assign(Object.assign({},rL),t)}execute(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){return this.genericCircularLayout(!1,t,e)})}assign(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){yield this.genericCircularLayout(!0,t,e)})}genericCircularLayout(t,e,r){return(0,Z.mG)(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{width:a,height:s,center:o,divisions:l,startAngle:c=0,endAngle:u=2*Math.PI,angleRatio:h,ordering:d,clockwise:f,nodeSpacing:v,nodeSize:g}=i,p=e.getAllNodes(),y=e.getAllEdges(),[b,E,O]=sL(a,s,o),k=p==null?void 0:p.length;if(!k||k===1)return Fs(e,t,O);const R=(u-c)/k;let{radius:z,startRadius:B,endRadius:V}=i;if(v){const ct=Bs(10,v),ft=Ov(10,g);let Nt=-1/0;p.forEach(gt=>{const pt=ft(gt);Nt{pt===0?Ct+=Nt||10:Ct+=(ct(gt)||0)+(Nt||10)}),z=Ct/(2*Math.PI)}else!z&&!B&&!V?z=Math.min(E,b)/2:!B&&V?B=V:B&&!V&&(V=B);const U=R*h;let J=[];d==="topology"?J=bb(e,p):d==="topology-directed"?J=bb(e,p,!0):d==="degree"?J=aL(e,p):J=p.map(ct=>hi(ct));const $=Math.ceil(k/l);for(let ct=0;ct{e.mergeNodeData(ct.id,{x:ct.data.x,y:ct.data.y})}),{nodes:J,edges:y}})}}const bb=(n,t,e=!1)=>{const r=[hi(t[0])],i={},a=t.length;i[t[0].id]=!0;let s=0;return t.forEach((o,l)=>{if(l!==0)if((l===a-1||n.getDegree(o.id,"both")!==n.getDegree(t[l+1].id,"both")||n.areNeighbors(r[s].id,o.id))&&!i[o.id])r.push(hi(o)),i[o.id]=!0,s++;else{const c=e?n.getSuccessors(r[s].id):n.getNeighbors(r[s].id);let u=!1;for(let d=0;d{e.push(hi(r))}),e.sort((r,i)=>n.getDegree(r.id,"both")-n.getDegree(i.id,"both")),e}const sL=(n,t,e)=>{let r=n,i=t,a=e;return!r&&typeof window!="undefined"&&(r=window.innerWidth),!i&&typeof window!="undefined"&&(i=window.innerHeight),a||(a=[r/2,i/2]),[r,i,a]},xa=Array.isArray,oL={nodeSize:30,nodeSpacing:10,preventOverlap:!1,sweep:void 0,equidistant:!1,startAngle:3/2*Math.PI,clockwise:!0,maxLevelDiff:void 0,sortBy:"degree"};class kv{constructor(t={}){this.options=t,this.id="concentric",this.options=Object.assign(Object.assign({},oL),t)}execute(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){return this.genericConcentricLayout(!1,t,e)})}assign(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){yield this.genericConcentricLayout(!0,t,e)})}genericConcentricLayout(t,e,r){return(0,Z.mG)(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{center:a,width:s,height:o,sortBy:l,maxLevelDiff:c,sweep:u,clockwise:h,equidistant:d,preventOverlap:f,startAngle:v=3/2*Math.PI,nodeSize:g,nodeSpacing:p}=i,y=e.getAllNodes(),b=e.getAllEdges(),E=!s&&typeof window!="undefined"?window.innerWidth:s,O=!o&&typeof window!="undefined"?window.innerHeight:o,k=a||[E/2,O/2];if(!(y!=null&&y.length)||y.length===1)return Fs(e,t,k);const R=[];let z,B=0;xa(g)?z=Math.max(g[0],g[1]):ue(g)?(z=-1/0,y.forEach(gt=>{const pt=Math.max(...Pl(g(gt)));pt>z&&(z=pt)})):z=g,xa(p)?B=Math.max(p[0],p[1]):re(p)&&(B=p),y.forEach(gt=>{const pt=hi(gt);R.push(pt);let Pt=z;const{data:jt}=pt;xa(jt.size)?Pt=Math.max(jt.size[0],jt.size[1]):re(jt.size)?Pt=jt.size:Fn(jt.size)&&(Pt=Math.max(jt.size.width,jt.size.height)),z=Math.max(z,Pt),ue(p)&&(B=Math.max(p(gt),B))});const V={};R.forEach((gt,pt)=>{V[gt.id]=pt});let U=l;(!Ve(U)||R[0].data[U]===void 0)&&(U="degree"),U==="degree"?R.sort((gt,pt)=>e.getDegree(pt.id,"both")-e.getDegree(gt.id,"both")):R.sort((gt,pt)=>pt.data[U]-gt.data[U]);const J=R[0],$=(c||(U==="degree"?e.getDegree(J.id,"both"):J.data[U]))/4,st=[{nodes:[]}];let ct=st[0];R.forEach(gt=>{if(ct.nodes.length>0){const pt=Math.abs(U==="degree"?e.getDegree(ct.nodes[0].id,"both")-e.getDegree(gt.id,"both"):ct.nodes[0].data[U]-gt.data[U]);$&&pt>=$&&(ct={nodes:[]},st.push(ct))}ct.nodes.push(gt)});let ft=z+B;if(!f){const gt=st.length>0&&st[0].nodes.length>1,Pt=(Math.min(E,O)/2-ft)/(st.length+(gt?1:0));ft=Math.min(ft,Pt)}let Nt=0;if(st.forEach(gt=>{const pt=u===void 0?2*Math.PI-2*Math.PI/gt.nodes.length:u;if(gt.dTheta=pt/Math.max(1,gt.nodes.length-1),gt.nodes.length>1&&f){const Pt=Math.cos(gt.dTheta)-Math.cos(0),jt=Math.sin(gt.dTheta)-Math.sin(0),Yt=Math.sqrt(ft*ft/(Pt*Pt+jt*jt));Nt=Math.max(Yt,Nt)}gt.r=Nt,Nt+=ft}),d){let gt=0,pt=0;for(let Pt=0;Pt{jt===0&&(pt=Pt.r||0),Pt.r=pt,pt+=gt})}return st.forEach(gt=>{const pt=gt.dTheta||0,Pt=gt.r||0;gt.nodes.forEach((jt,Yt)=>{const ee=v+(h?1:-1)*pt*Yt;jt.data.x=k[0]+Pt*Math.cos(ee),jt.data.y=k[1]+Pt*Math.sin(ee)})}),t&&R.forEach(gt=>e.mergeNodeData(gt.id,{x:gt.data.x,y:gt.data.y})),{nodes:R,edges:b}})}}var Pv=S(14301),lL=S(7695);const cL=.81,Rv=.1;function uL(n,t,e,r,i=2){const a=t/e,s=n.getAllNodes(),o=s.map((u,h)=>{const{nodeStrength:d,x:f,y:v,z:g,size:p}=u.data;return{x:f,y:v,z:g,size:p,index:h,id:u.id,vx:0,vy:0,vz:0,weight:a*d}}),l=(i===2?(0,Pv.Z)(o,u=>u.x,u=>u.y):(0,lL.Z)(o,u=>u.x,u=>u.y,u=>u.z)).visitAfter(hL),c=new Map;return o.forEach(u=>{c.set(u.id,u),fL(u,l,i)}),o.map((u,h)=>{const{id:d,data:f}=s[h],{mass:v=1}=f;r[d]={x:u.vx/v,y:u.vy/v,z:u.vz/v}}),r}function hL(n){let t=0,e=0,r=0,i=0,a=0;const s=n.length;if(s){for(let o=0;o{var o;if(((o=n.data)===null||o===void 0?void 0:o.id)===a.id)return;const l=[e,r,i][s-1],c=a.x-n.x||Rv,u=a.y-n.y||Rv,h=a.z-n.z||Rv,d=[c,u,h],f=l-t;let v=0;for(let y=0;ydL(r,i,a,s,o,n,e))}const vL={dimensions:2,maxIteration:500,gravity:10,factor:1,edgeStrength:50,nodeStrength:1e3,coulombDisScale:.005,damping:.9,maxSpeed:200,minMovement:.4,interval:.02,linkDistance:200,clusterNodeStrength:20,preventOverlap:!0,distanceThresholdMode:"mean"};class xb{constructor(t={}){this.options=t,this.id="force",this.timeInterval=0,this.judgingDistance=0,this.running=!1,this.options=Object.assign(Object.assign({},vL),t)}execute(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){return this.genericForceLayout(!1,t,e)})}assign(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){yield this.genericForceLayout(!0,t,e)})}stop(){this.timeInterval&&typeof window!="undefined"&&window.clearInterval(this.timeInterval),this.running=!1}tick(t=this.options.maxIteration||1){if(this.lastResult)return this.lastResult;for(let r=0;(this.judgingDistance>this.lastOptions.minMovement||r<1)&&rthis.lastGraph.mergeNodeData(r.id,{x:r.data.x,y:r.data.y,z:this.options.dimensions===3?r.data.z:void 0})),e}genericForceLayout(t,e,r){return(0,Z.mG)(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),a=e.getAllNodes(),s=e.getAllEdges(),o=this.formatOptions(i,e),{dimensions:l,width:c,height:u,nodeSize:h,getMass:d,nodeStrength:f,edgeStrength:v,linkDistance:g}=o,p=a.map((B,V)=>Object.assign(Object.assign({},B),{data:Object.assign(Object.assign({},B.data),{x:re(B.data.x)?B.data.x:Math.random()*c,y:re(B.data.y)?B.data.y:Math.random()*u,z:re(B.data.z)?B.data.z:Math.random()*Math.sqrt(c*u),size:h(B)||30,mass:d(B),nodeStrength:f(B)})})),y=s.map(B=>Object.assign(Object.assign({},B),{data:Object.assign(Object.assign({},B.data),{edgeStrength:v(B),linkDistance:g(B,e.getNode(B.source),e.getNode(B.target))})}));if(!(a!=null&&a.length))return this.lastResult={nodes:[],edges:s},{nodes:[],edges:s};const b={};a.forEach((B,V)=>{b[B.id]={x:0,y:0,z:0}});const E=new Vn({nodes:p,edges:y});this.formatCentripetal(o,E);const{maxIteration:O,minMovement:k,onTick:R}=o;if(this.lastLayoutNodes=p,this.lastLayoutEdges=y,this.lastAssign=t,this.lastGraph=e,this.lastCalcGraph=E,this.lastOptions=o,this.lastVelMap=b,typeof window=="undefined")return;let z=0;return new Promise(B=>{this.timeInterval=window.setInterval(()=>{(!a||!this.running)&&B({nodes:Lv(e,p),edges:s}),this.runOneStep(E,e,z,b,o),this.updatePosition(e,E,b,o),t&&p.forEach(V=>e.mergeNodeData(V.id,{x:V.data.x,y:V.data.y,z:l===3?V.data.z:void 0})),R==null||R({nodes:Lv(e,p),edges:s}),z++,(z>=O||this.judgingDistance{let c=1;re(l==null?void 0:l.data.mass)&&(c=l==null?void 0:l.data.mass);const u=e.getDegree(l.id,"both");return!u||u<5?c:u*5*c}),r.nodeSize=Cv(t.nodeSize,t.nodeSpacing);const o=t.linkDistance?Bs(1,t.linkDistance):l=>1+r.nodeSize(e.getNode(l.source))+r.nodeSize(e.getNode(l.target));return r.linkDistance=o,r.nodeStrength=Bs(1,t.nodeStrength),r.edgeStrength=Bs(1,t.edgeStrength),r}formatCentripetal(t,e){const{dimensions:r,centripetalOptions:i,center:a,clusterNodeStrength:s,leafCluster:o,clustering:l,nodeClusterBy:c}=t,u=e.getAllNodes(),h=i||{leaf:2,single:2,others:1,center:y=>({x:a[0],y:a[1],z:r===3?a[2]:void 0})};typeof s!="function"&&(t.clusterNodeStrength=y=>s);let d,f;if(o&&c&&(d=Eb(e,c),f=Array.from(new Set(u==null?void 0:u.map(y=>y.data[c])))||[],t.centripetalOptions=Object.assign(h,{single:100,leaf:y=>{const{siblingLeaves:b,sameTypeLeaves:E}=d[y.id]||{};return(E==null?void 0:E.length)===(b==null?void 0:b.length)||(f==null?void 0:f.length)===1?1:t.clusterNodeStrength(y)},others:1,center:y=>{const b=e.getDegree(y.id,"both");if(!b)return{x:100,y:100,z:0};let E;if(b===1){const{sameTypeLeaves:O=[]}=d[y.id]||{};O.length===1?E=void 0:O.length>1&&(E=wb(O))}else E=void 0;return{x:E==null?void 0:E.x,y:E==null?void 0:E.y,z:E==null?void 0:E.z}}})),l&&c){d||(d=Eb(e,c)),f||(f=Array.from(new Set(u.map(b=>b.data[c])))),f=f.filter(b=>b!==void 0);const y={};f.forEach(b=>{const E=u.filter(O=>O.data[c]===b).map(O=>e.getNode(O.id));y[b]=wb(E)}),t.centripetalOptions=Object.assign(h,{single:b=>t.clusterNodeStrength(b),leaf:b=>t.clusterNodeStrength(b),others:b=>t.clusterNodeStrength(b),center:b=>{const E=y[b.data[c]];return{x:E==null?void 0:E.x,y:E==null?void 0:E.y,z:E==null?void 0:E.z}}})}const{leaf:v,single:g,others:p}=t.centripetalOptions||{};v&&typeof v!="function"&&(t.centripetalOptions.leaf=()=>v),g&&typeof g!="function"&&(t.centripetalOptions.single=()=>g),p&&typeof p!="function"&&(t.centripetalOptions.others=()=>p)}runOneStep(t,e,r,i,a){const s={},o=t.getAllNodes(),l=t.getAllEdges();if(!(o!=null&&o.length))return;const{monitor:c}=a;if(this.calRepulsive(t,s,a),l&&this.calAttractive(t,s,a),this.calGravity(t,e,s,a),this.updateVelocity(t,s,i,a),c){const u=this.calTotalEnergy(s,o);c({energy:u,nodes:e.getAllNodes(),edges:e.getAllEdges(),iterations:r})}}calTotalEnergy(t,e){if(!(e!=null&&e.length))return 0;let r=0;return e.forEach((i,a)=>{const s=t[i.id].x,o=t[i.id].y,l=this.options.dimensions===3?t[i.id].z:0,c=s*s+o*o+l*l,{mass:u=1}=i.data;r+=u*c*.5}),r}calRepulsive(t,e,r){const{dimensions:i,factor:a,coulombDisScale:s}=r;uL(t,a,s*s,e,i)}calAttractive(t,e,r){const{dimensions:i,nodeSize:a}=r;t.getAllEdges().forEach((s,o)=>{const{source:l,target:c}=s,u=t.getNode(l),h=t.getNode(c);if(!u||!h)return;let d=h.data.x-u.data.x,f=h.data.y-u.data.y,v=i===3?h.data.z-u.data.z:0;!d&&!f&&(d=Math.random()*.01,f=Math.random()*.01,i===3&&!v&&(v=Math.random()*.01));const g=Math.sqrt(d*d+f*f+v*v);if(g{const{id:g,data:p}=v,{mass:y,x:b,y:E,z:O}=p,k=e.getNode(g);let R=0,z=0,B=0,V=d;const U=t.getDegree(g,"in"),J=t.getDegree(g,"out"),$=t.getDegree(g,"both"),st=a==null?void 0:a(k,$);if(st){const[ct,ft,Nt]=st;R=b-ct,z=E-ft,V=Nt}else R=b-h[0],z=E-h[1],B=O-h[2];if(V&&(r[g].x-=V*R/y,r[g].y-=V*z/y,r[g].z-=V*B/y),f){const{leaf:ct,single:ft,others:Nt,center:Ct}=f,{x:gt,y:pt,z:Pt,centerStrength:jt}=(Ct==null?void 0:Ct(k,o,l,c,u))||{x:0,y:0,z:0,centerStrength:0};if(!re(gt)||!re(pt))return;const Yt=(b-gt)/y,ee=(E-pt)/y,ie=(O-Pt)/y;if(jt&&(r[g].x-=jt*Yt,r[g].y-=jt*ee,r[g].z-=jt*ie),$===0){const le=ft(k);if(!le)return;r[g].x-=le*Yt,r[g].y-=le*ee,r[g].z-=le*ie;return}if(U===0||J===0){const le=ct(k,o,l);if(!le)return;r[g].x-=le*Yt,r[g].y-=le*ee,r[g].z-=le*ie;return}const ce=Nt(k);if(!ce)return;r[g].x-=ce*Yt,r[g].y-=ce*ee,r[g].z-=ce*ie}})}updateVelocity(t,e,r,i){const{damping:a,maxSpeed:s,interval:o,dimensions:l}=i,c=t.getAllNodes();c!=null&&c.length&&c.forEach(u=>{const{id:h}=u;let d=(r[h].x+e[h].x*o)*a||.01,f=(r[h].y+e[h].y*o)*a||.01,v=l===3?(r[h].z+e[h].z*o)*a||.01:0;const g=Math.sqrt(d*d+f*f+v*v);if(g>s){const p=s/g;d=p*d,f=p*f,v=p*v}r[h]={x:d,y:f,z:v}})}updatePosition(t,e,r,i){const{distanceThresholdMode:a,interval:s,dimensions:o}=i,l=e.getAllNodes();if(!(l!=null&&l.length)){this.judgingDistance=0;return}let c=0;a==="max"?this.judgingDistance=-1/0:a==="min"&&(this.judgingDistance=1/0),l.forEach(u=>{const{id:h}=u,d=t.getNode(h);if(re(d.data.fx)&&re(d.data.fy)){e.mergeNodeData(h,{x:d.data.fx,y:d.data.fy,z:o===3?d.data.fz:void 0});return}const f=r[h].x*s,v=r[h].y*s,g=o===3?r[h].z*s:0;e.mergeNodeData(h,{x:u.data.x+f,y:u.data.y+v,z:u.data.z+g});const p=Math.sqrt(f*f+v*v+g*g);switch(a){case"max":this.judgingDistancep&&(this.judgingDistance=p);break;default:c=c+p;break}}),(!a||a==="mean")&&(this.judgingDistance=c/l.length)}}const Eb=(n,t)=>{const e=n.getAllNodes();if(!(e!=null&&e.length))return{};const r={};return e.forEach((i,a)=>{n.getDegree(i.id,"both")===1&&(r[i.id]=gL(n,"leaf",i,t))}),r},gL=(n,t,e,r)=>{const i=n.getDegree(e.id,"in"),a=n.getDegree(e.id,"out");let s=e,o=[];i===0?(s=n.getSuccessors(e.id)[0],o=n.getNeighbors(s.id)):a===0&&(s=n.getPredecessors(e.id)[0],o=n.getNeighbors(s.id)),o=o.filter(c=>n.getDegree(c.id,"in")===0||n.getDegree(c.id,"out")===0);const l=pL(n,t,r,e,o);return{coreNode:s,siblingLeaves:o,sameTypeLeaves:l}},pL=(n,t,e,r,i)=>{const a=r.data[e]||"";let s=(i==null?void 0:i.filter(o=>o.data[e]===a))||[];return t==="leaf"&&(s=s.filter(o=>n.getDegree(o.id,"in")===0||n.getDegree(o.id,"out")===0)),s},wb=n=>{const t={x:0,y:0};n.forEach(r=>{const{x:i,y:a}=r.data;t.x+=i||0,t.y+=a||0});const e=n.length||1;return{x:t.x/e,y:t.y/e}},Lv=(n,t)=>t.map(e=>{const{id:r,data:i}=e,a=n.getNode(r);return Object.assign(Object.assign({},a),{data:Object.assign(Object.assign({},a.data),{x:i.x,y:i.y,z:i.z})})});var Ge=S(13393);const A7=Ge.XA,T7=Ge.a_,O7=Ge.yQ,C7=Ge.Hs,N7=Ge.Ec,k7=Ge.dx,P7=Ge.LU,R7=Ge.Rm,Ha=Ge.y3,L7=Ge.qK,_7=Ge.pb,D7=Ge.j,I7=Ge.sO,B7=Ge.BZ,F7=Ge.EK,z7=Ge.Db,j7=Ge.Fx,W7=Ge.tU,G7=Ge.Ym,Z7=Ge.rs,V7=Ge.QR,U7=Ge.TB,Y7=Ge.oH,Sb=Ge.Sc,H7=Ge.BN,X7=Ge.it,K7=Ge.$r,Q7=Ge.QM,q7=Ge.AV;var J7=(Ge.y3,Ge.y3);const $7=Ge.GH,tj=Ge.SO,ej=Ge.uZ,nj=Ge.yU,rj=Ge.F1,ij=Ge.re,Mb=n=>{const t=[],e=n.length;for(let r=0;rt[i][r]+t[r][a]&&(t[i][a]=t[i][r]+t[r][a]);return t},Ab=(n,t)=>{const{nodes:e,edges:r}=n,i=[],a={};if(!e)throw new Error("invalid nodes data!");return e&&e.forEach((s,o)=>{a[s.id]=o;const l=[];i.push(l)}),r==null||r.forEach(s=>{const{source:o,target:l}=s,c=a[o],u=a[l];c===void 0||u===void 0||(i[c][u]=1,t||(i[u][c]=1))}),i},mL=(n,t)=>{const e=[];return n.forEach(r=>{const i=[];r.forEach(a=>{i.push(a*t)}),e.push(i)}),e},yL=n=>{let t=1/0,e=1/0,r=-1/0,i=-1/0;return n.forEach(a=>{let s=a.data.size;xa(s)?s.length===1&&(s=[s[0],s[0]]):re(s)?s=[s,s]:(s===void 0||isNaN(s))&&(s=[30,30]);const o=[s[0]/2,s[1]/2],l=a.data.x-o[0],c=a.data.x+o[0],u=a.data.y-o[1],h=a.data.y+o[1];t>l&&(t=l),e>u&&(e=u),rMath.sqrt((n.x-t.x)*(n.x-t.x)+(n.y-t.y)*(n.y-t.y)),_v=(n,t,e,r="TB",i,a={})=>{if(!(t!=null&&t.length))return;const{stopBranchFn:s,stopAllFn:o}=a;for(let l=0;l{const y=hi(o[p]);y.data.x=g[0]+a[0],y.data.y=g[1]+a[1],f.push(y)}),t&&f.forEach(g=>e.mergeNodeData(g.id,{x:g.data.x,y:g.data.y})),{nodes:f,edges:l}})}}const xL=n=>{let t=-999999;n.forEach(e=>{e.forEach(r=>{r!==1/0&&t{e.forEach((i,a)=>{i===1/0&&(n[r][a]=t)})})},EL=n=>{const e=Ha.mul(Ha.pow(n,2),-.5),r=e.mean("row"),i=e.mean("column"),a=e.mean();e.add(a).subRowVector(r).subColumnVector(i);const s=new Sb(e),o=Ha.sqrt(s.diagonalMatrix).diagonal();return s.leftSingularVectors.toJSON().map(l=>Ha.mul([l],[o]).toJSON()[0].splice(0,2))};function Dv(n){return!!n.tick&&!!n.stop}const wL={gForce:!0,force2:!0,d3force:!0,fruchterman:!0,forceAtlas2:!0,force:!0,"graphin-force":!0},SL={center:[0,0],comboPadding:10,treeKey:"combo"};class ML{constructor(t={}){this.options=t,this.id="comboCombined",this.options=Object.assign(Object.assign({},SL),t)}execute(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){return this.genericComboCombinedLayout(!1,t,e)})}assign(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){yield this.genericComboCombinedLayout(!0,t,e)})}genericComboCombinedLayout(t,e,r){return(0,Z.mG)(this,void 0,void 0,function*(){const i=this.initVals(Object.assign(Object.assign({},this.options),r)),{center:a,treeKey:s,outerLayout:o}=i,l=e.getAllNodes().filter(B=>!B.data._isCombo),c=e.getAllNodes().filter(B=>B.data._isCombo),u=e.getAllEdges(),h=l==null?void 0:l.length;if(!h||h===1)return Fs(e,t,a);const d=[],f=new Map;l.forEach(B=>{f.set(B.id,B)});const v=new Map;c.forEach(B=>{v.set(B.id,B)});const g=new Map,p=this.getInnerGraphs(e,s,f,v,u,i,g);yield Promise.all(p);const y=new Map,b=[],E=new Map;let O=!0;e.getRoots(s).forEach(B=>{const V=g.get(B.id),U=v.get(B.id)||f.get(B.id),J={id:B.id,data:Object.assign(Object.assign({},B.data),{x:V.data.x||U.data.x,y:V.data.y||U.data.y,fx:V.data.fx||U.data.fx,fy:V.data.fy||U.data.fy,mass:V.data.mass||U.data.mass,size:V.data.size})};b.push(J),y.set(B.id,!0),!isNaN(J.data.x)&&J.data.x!==0&&!isNaN(J.data.y)&&J.data.y!==0?O=!1:(J.data.x=Math.random()*100,J.data.y=Math.random()*100),_v(e,[B],$=>{$.id!==B.id&&E.set($.id,B.id)},"TB",s)});const k=[];u.forEach(B=>{const V=E.get(B.source)||B.source,U=E.get(B.target)||B.target;V!==U&&y.has(V)&&y.has(U)&&k.push({id:B.id,source:V,target:U,data:{}})});let R;if(b!=null&&b.length){if(b.length===1)b[0].data.x=a[0],b[0].data.y=a[1];else{const B=new Vn({nodes:b,edges:k}),V=o||new xb;O&&wL[V.id]&&(yield(b.length<100?new Ob:new kv).assign(B));const U=Object.assign({center:a,kg:5,preventOverlap:!0,animate:!1},V.id==="force"?{gravity:1,factor:4,linkDistance:(J,$,st)=>{const ct=Math.max(...$.data.size)||32,ft=Math.max(...st.data.size)||32;return ct/2+ft/2+200}}:{});R=yield Cb(V,B,U)}g.forEach(B=>{var V;const U=R.nodes.find(st=>st.id===B.id);if(U){const{x:st,y:ct}=U.data;B.data.visited=!0,B.data.x=st,B.data.y=ct,d.push({id:B.id,data:{x:st,y:ct}})}const{x:J,y:$}=B.data;(V=B.data.nodes)===null||V===void 0||V.forEach(st=>{d.push({id:st.id,data:{x:st.data.x+J,y:st.data.y+$}})})}),g.forEach(({data:B})=>{const{x:V,y:U,visited:J,nodes:$}=B;$==null||$.forEach(st=>{if(!J){const ct=d.find(ft=>ft.id===st.id);ct.data.x+=V||0,ct.data.y+=U||0}})})}return t&&d.forEach(B=>{e.mergeNodeData(B.id,{x:B.data.x,y:B.data.y})}),{nodes:d,edges:u}})}initVals(t){const e=Object.assign({},t),{nodeSize:r,spacing:i,comboPadding:a}=t;let s,o;if(re(i)?o=()=>i:ue(i)?o=i:o=()=>0,e.spacing=o,!r)s=c=>{const u=o(c);return c.size?xa(c.size)?((c.size[0]>c.size[1]?c.size[0]:c.size[1])+u)/2:Fn(c.size)?((c.size.width>c.size.height?c.size.width:c.size.height)+u)/2:(c.size+u)/2:32+u/2};else if(ue(r))s=c=>{const u=r(c),h=o(c);return xa(c.size)?((c.size[0]>c.size[1]?c.size[0]:c.size[1])+h)/2:((u||32)+h)/2};else if(xa(r)){const u=(r[0]>r[1]?r[0]:r[1])/2;s=h=>u+o(h)/2}else{const c=r/2;s=u=>c+o(u)/2}e.nodeSize=s;let l;return re(a)?l=()=>a:xa(a)?l=()=>Math.max.apply(null,a):ue(a)?l=a:l=()=>0,e.comboPadding=l,e}getInnerGraphs(t,e,r,i,a,s,o){const{nodeSize:l,comboPadding:c,spacing:u,innerLayout:h}=s,d=h||new kv({}),f={center:[0,0],preventOverlap:!0,nodeSpacing:u},v=[],g=p=>{let y=(c==null?void 0:c(p))||10;return xa(y)&&(y=Math.max(...y)),{size:y?[y*2,y*2]:[30,30],padding:y}};return t.getRoots(e).forEach(p=>{o.set(p.id,{id:p.id,data:{nodes:[],size:g(p).size}});let y=Promise.resolve();_v(t,[p],b=>{var E;if(!b.data._isCombo)return;const{size:O,padding:k}=g(b);if(!(!((E=t.getChildren(b.id,e))===null||E===void 0)&&E.length))o.set(b.id,{id:b.id,data:Object.assign(Object.assign({},b.data),{size:O})});else{const R=o.get(b.id);o.set(b.id,{id:b.id,data:Object.assign({nodes:[]},R==null?void 0:R.data)});const z=new Map,B=t.getChildren(b.id,e).map(J=>{if(J.data._isCombo)return o.has(J.id)||o.set(J.id,{id:J.id,data:Object.assign({},J.data)}),z.set(J.id,!0),o.get(J.id);const $=r.get(J.id)||i.get(J.id);return z.set(J.id,!0),{id:J.id,data:Object.assign(Object.assign({},$.data),J.data)}}),V={nodes:B,edges:a.filter(J=>z.has(J.source)&&z.has(J.target))};let U=1/0;B.forEach(J=>{var $;let{size:st}=J.data;st||(st=(($=o.get(J.id))===null||$===void 0?void 0:$.data.size)||(l==null?void 0:l(J))||[30,30]),re(st)&&(st=[st,st]);const[ct,ft]=st;U>ct&&(U=ct),U>ft&&(U=ft),J.data.size=st}),y=y.then(()=>(0,Z.mG)(this,void 0,void 0,function*(){const J=new Vn(V);yield Cb(d,J,f,!0);const{minX:$,minY:st,maxX:ct,maxY:ft}=yL(B),Nt={x:(ct+$)/2,y:(ft+st)/2};V.nodes.forEach(gt=>{gt.data.x-=Nt.x,gt.data.y-=Nt.y});const Ct=[Math.max(ct-$,U)+k*2,Math.max(ft-st,U)+k*2];o.get(b.id).data.size=Ct,o.get(b.id).data.nodes=B}))}return!0},"BT",e),v.push(y)}),v}}function Cb(n,t,e,r){var i;return(0,Z.mG)(this,void 0,void 0,function*(){return Dv(n)?(n.execute(t,e),n.stop(),n.tick((i=e.iterations)!==null&&i!==void 0?i:300)):r?yield n.assign(t,e):yield n.execute(t,e)})}function ar(n){return function(){return n}}function Xa(n){return(n()-.5)*1e-6}function AL(n){return n.index}function Nb(n,t){var e=n.get(t);if(!e)throw new Error("node not found: "+t);return e}function TL(n){var t=AL,e=h,r,i=ar(30),a,s,o,l,c,u=1;n==null&&(n=[]);function h(p){return 1/Math.min(o[p.source.index],o[p.target.index])}function d(p){for(var y=0,b=n.length;y[t(k,R,s),k])),O;for(p=0,o=new Array(y);p(n=(NL*n+kL)%kb)/kb}function RL(n){return n.x}function LL(n){return n.y}var _L=10,DL=Math.PI*(3-Math.sqrt(5));function IL(n){var t,e=1,r=.001,i=1-Math.pow(r,1/300),a=0,s=.6,o=new Map,l=(0,CL.HT)(h),c=(0,OL.Z)("tick","end"),u=PL();n==null&&(n=[]);function h(){d(),c.call("tick",t),e1?(p==null?o.delete(g):o.set(g,v(p)),t):o.get(g)},find:function(g,p,y){var b=0,E=n.length,O,k,R,z,B;for(y==null?y=1/0:y*=y,b=0;b1?(c.on(g,p),t):c.on(g)}}}function BL(){var n,t,e,r,i=ar(-30),a,s=1,o=1/0,l=.81;function c(f){var v,g=n.length,p=(0,Pv.Z)(n,RL,LL).visitAfter(h);for(r=f,v=0;v=o)return;(f.data!==t||f.next)&&(y===0&&(y=Xa(e),O+=y*y),b===0&&(b=Xa(e),O+=b*b),Od.index){var J=f-B.x-B.vx,$=v-B.y-B.vy,st=J*J+$*$;stf+U||Rv+U||zc.r&&(c.r=c[u].r)}function l(){if(t){var c,u=t.length,h;for(e=new Array(u),c=0;ce.id},manyBody:{},center:{x:0,y:0}},this.context={options:{},assign:!1,nodes:[],edges:[]},yr(this.options,t),this.options.forceSimulation&&(this.simulation=this.options.forceSimulation)}execute(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){return this.genericLayout(!1,t,e)})}assign(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){yield this.genericLayout(!0,t,e)})}stop(){this.simulation.stop()}tick(t){return this.simulation.tick(t),this.getResult()}restart(){this.simulation.restart()}setFixedPosition(t,e){const r=this.context.nodes.find(i=>i.id===t);r&&e.forEach((i,a)=>{if(typeof i=="number"||i===null){const s=["fx","fy","fz"][a];r[s]=i}})}getOptions(t){var e,r;const i=yr({},this.options,t);return i.collide&&((e=i.collide)===null||e===void 0?void 0:e.radius)===void 0&&(i.collide=i.collide||{},i.collide.radius=(r=i.nodeSize)!==null&&r!==void 0?r:10),i.iterations===void 0&&(i.link&&i.link.iterations===void 0&&(i.iterations=i.link.iterations),i.collide&&i.collide.iterations===void 0&&(i.iterations=i.collide.iterations)),this.context.options=i,i}genericLayout(t,e,r){var i;return(0,Z.mG)(this,void 0,void 0,function*(){const a=this.getOptions(r),s=e.getAllNodes().map(({id:u,data:h})=>Object.assign(Object.assign({id:u},h),_s(h.data,this.config.inputNodeAttrs))),o=e.getAllEdges().map(u=>Object.assign({},u));Object.assign(this.context,{assign:t,nodes:s,edges:o,graph:e});const l=new Promise(u=>{this.resolver=u}),c=this.setSimulation(a);return c.nodes(s),(i=c.force("link"))===null||i===void 0||i.links(o),l})}getResult(){const{assign:t,nodes:e,edges:r,graph:i}=this.context,a=e.map(o=>({id:o.id,data:Object.assign(Object.assign({},o.data),_s(o,this.config.outputNodeAttrs))})),s=r.map(({id:o,source:l,target:c,data:u})=>({id:o,source:typeof l=="object"?l.id:l,target:typeof c=="object"?c.id:c,data:u}));return t&&a.forEach(o=>i.mergeNodeData(o.id,o.data)),{nodes:a,edges:s}}initSimulation(){return IL()}setSimulation(t){const e=this.simulation||this.options.forceSimulation||this.initSimulation();return this.simulation||(this.simulation=e.on("tick",()=>{var r;return(r=t.onTick)===null||r===void 0?void 0:r.call(t,this.getResult())}).on("end",()=>{var r;return(r=this.resolver)===null||r===void 0?void 0:r.call(this,this.getResult())})),Pb(e,this.config.simulationAttrs.map(r=>[r,t[r]])),Object.entries(this.forceMap).forEach(([r,i])=>{const a=r;if(t[r]){let s=e.force(a);s||(s=i(),e.force(a,s)),Pb(s,Object.entries(t[a]))}else e.force(a,null)}),e}}const Pb=(n,t)=>t.reduce((e,[r,i])=>!e[r]||i===void 0?e:e[r].call(n,i),n);var Rb=S(92546),YL=S.n(Rb);class ah{constructor(t){this.id="dagre",this.options={},Object.assign(this.options,ah.defaultOptions,t)}execute(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){return this.genericDagreLayout(!1,t,Object.assign(Object.assign({},this.options),e))})}assign(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){yield this.genericDagreLayout(!0,t,Object.assign(Object.assign({},this.options),e))})}genericDagreLayout(t,e,r){return(0,Z.mG)(this,void 0,void 0,function*(){const{nodeSize:i}=r,a=new Rb.graphlib.Graph;a.setGraph(r),a.setDefaultEdgeLabel(()=>({}));const s=e.getAllNodes(),o=e.getAllEdges();[...s,...o].some(({id:c})=>re(c))&&console.error("Dagre layout only support string id, it will convert number to string."),e.getAllNodes().forEach(c=>{const{id:u}=c,h=Object.assign({},c.data);if(i!==void 0){const[d,f]=Pl(ue(i)?i(c):i);Object.assign(h,{width:d,height:f})}a.setNode(u.toString(),h)}),e.getAllEdges().forEach(({id:c,source:u,target:h})=>{a.setEdge(u.toString(),h.toString(),{id:c})}),YL().layout(a);const l={nodes:[],edges:[]};return a.nodes().forEach(c=>{const u=a.node(c);l.nodes.push({id:c,data:u}),t&&e.mergeNodeData(c,u)}),a.edges().forEach(c=>{const u=a.edge(c),{id:h}=u,d=(0,Z._T)(u,["id"]),{v:f,w:v}=c;l.edges.push({id:h,source:f,target:v,data:d}),t&&e.mergeEdgeData(h,d)}),l})}}ah.defaultOptions={};class Iv{constructor(t){this.id=t.id||0,this.rx=t.rx,this.ry=t.ry,this.fx=0,this.fy=0,this.mass=t.mass,this.degree=t.degree,this.g=t.g||0}distanceTo(t){const e=this.rx-t.rx,r=this.ry-t.ry;return Math.hypot(e,r)}setPos(t,e){this.rx=t,this.ry=e}resetForce(){this.fx=0,this.fy=0}addForce(t){const e=t.rx-this.rx,r=t.ry-this.ry;let i=Math.hypot(e,r);i=i<1e-4?1e-4:i;const a=this.g*(this.degree+1)*(t.degree+1)/i;this.fx+=a*e/i,this.fy+=a*r/i}in(t){return t.contains(this.rx,this.ry)}add(t){const e=this.mass+t.mass,r=(this.rx*this.mass+t.rx*t.mass)/e,i=(this.ry*this.mass+t.ry*t.mass)/e,a=this.degree+t.degree,s={rx:r,ry:i,mass:e,degree:a};return new Iv(s)}}class bo{constructor(t){this.xmid=t.xmid,this.ymid=t.ymid,this.length=t.length,this.massCenter=t.massCenter||[0,0],this.mass=t.mass||1}getLength(){return this.length}contains(t,e){const r=this.length/2;return t<=this.xmid+r&&t>=this.xmid-r&&e<=this.ymid+r&&e>=this.ymid-r}NW(){const t=this.xmid-this.length/4,e=this.ymid+this.length/4,r=this.length/2,i={xmid:t,ymid:e,length:r};return new bo(i)}NE(){const t=this.xmid+this.length/4,e=this.ymid+this.length/4,r=this.length/2,i={xmid:t,ymid:e,length:r};return new bo(i)}SW(){const t=this.xmid-this.length/4,e=this.ymid-this.length/4,r=this.length/2,i={xmid:t,ymid:e,length:r};return new bo(i)}SE(){const t=this.xmid+this.length/4,e=this.ymid-this.length/4,r=this.length/2,i={xmid:t,ymid:e,length:r};return new bo(i)}}class xo{constructor(t){this.body=null,this.quad=null,this.NW=null,this.NE=null,this.SW=null,this.SE=null,this.theta=.5,t!=null&&(this.quad=t)}insert(t){if(this.body==null){this.body=t;return}this._isExternal()?(this.quad&&(this.NW=new xo(this.quad.NW()),this.NE=new xo(this.quad.NE()),this.SW=new xo(this.quad.SW()),this.SE=new xo(this.quad.SE())),this._putBody(this.body),this._putBody(t),this.body=this.body.add(t)):(this.body=this.body.add(t),this._putBody(t))}_putBody(t){this.quad&&(t.in(this.quad.NW())&&this.NW?this.NW.insert(t):t.in(this.quad.NE())&&this.NE?this.NE.insert(t):t.in(this.quad.SW())&&this.SW?this.SW.insert(t):t.in(this.quad.SE())&&this.SE&&this.SE.insert(t))}_isExternal(){return this.NW==null&&this.NE==null&&this.SW==null&&this.SE==null}updateForce(t){if(!(this.body==null||t===this.body))if(this._isExternal())t.addForce(this.body);else{const e=this.quad?this.quad.getLength():0,r=this.body.distanceTo(t);e/rhi(y,[o,l])),v=i.filter(y=>{const{source:b,target:E}=y;return b!==E}),g=new Vn({nodes:f,edges:v}),p=this.getSizes(g,h);if(this.run(g,e,u,p,t,s),c){for(let b=0;b250&&(r.barnesHut=!0),l===void 0&&e>100&&(r.prune=!0),c===0&&!l?(r.maxIteration=250,e<=200&&e>100?r.maxIteration=1e3:e>200&&(r.maxIteration=1200)):c===0&&l&&(r.maxIteration=100,e<=200&&e>100?r.maxIteration=500:e>200&&(r.maxIteration=950)),u||(r.kr=50,e>100&&e<=500?r.kr=20:e>500&&(r.kr=1)),h||(r.kg=20,e>100&&e<=500?r.kg=10:e>500&&(r.kg=1)),r}run(t,e,r,i,a,s){const{kr:o,barnesHut:l,onTick:c}=s,u=t.getAllNodes();let h=0,d=r;const f={},v={},g={};for(let p=0;p0;)h=this.oneStep(t,{iter:d,preventOverlapIters:50,krPrime:100,sg:h,forces:f,preForces:v,bodies:g,sizes:i},s),d--,c==null||c({nodes:u,edges:e.getAllEdges()});return t}oneStep(t,e,r){const{iter:i,preventOverlapIters:a,krPrime:s,sg:o,preForces:l,bodies:c,sizes:u}=e;let{forces:h}=e;const{preventOverlap:d,barnesHut:f}=r,v=t.getAllNodes();for(let g=0;ga||!d)?h=this.getOptRepGraForces(t,h,c,r):h=this.getRepGraForces(t,i,a,h,s,u,r),this.updatePos(t,h,l,o,r)}getAttrForces(t,e,r,i,a,s){const{preventOverlap:o,dissuadeHubs:l,mode:c,prune:u}=s,h=t.getAllEdges();for(let d=0;d0&&(k=O,R=O),a[f][0]+=k*E[0],a[v][0]-=R*E[0],a[f][1]+=k*E[1],a[v][1]-=R*E[1]}return a}getOptRepGraForces(t,e,r,i){const{kg:a,center:s,prune:o}=i,l=t.getAllNodes(),c=l.length;let u=9e10,h=-9e10,d=9e10,f=-9e10;for(let b=0;b=h&&(h=O.x),O.x<=u&&(u=O.x),O.y>=f&&(f=O.y),O.y<=d&&(d=O.y))}const v=Math.max(h-u,f-d),g={xmid:(h+u)/2,ymid:(f+d)/2,length:v,massCenter:s,mass:c},p=new bo(g),y=new xo(p);for(let b=0;b0&&(U=c*(y+1)*(z+1)/V),i[p.id][0]-=U*B[0],i[R.id][0]+=U*B[0],i[p.id][1]-=U*B[1],i[R.id][1]+=U*B[1]}const b=[p.data.x-h[0],p.data.y-h[1]],E=Math.hypot(b[0],b[1]);b[0]=b[0]/E,b[1]=b[1]/E;const O=u*(y+1);i[p.id][0]-=O*b[0],i[p.id][1]-=O*b[1]}return i}updatePos(t,e,r,i,a){const{ks:s,tao:o,prune:l,ksmax:c}=a,u=t.getAllNodes(),h=u.length,d=[],f=[];let v=0,g=0,p=i;for(let b=0;b1.5*y?1.5*y:p);for(let b=0;bB?B:R;const V=R*e[E][0],U=R*e[E][1];t.mergeNodeData(E,{x:O.x+V,y:O.y+U})}return p}}const KL={maxIteration:1e3,gravity:10,speed:5,clustering:!1,clusterGravity:10,width:300,height:300,nodeClusterBy:"cluster"},QL=800;class qL{constructor(t={}){this.options=t,this.id="fruchterman",this.timeInterval=0,this.running=!1,this.options=Object.assign(Object.assign({},KL),t)}execute(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){return this.genericFruchtermanLayout(!1,t,e)})}assign(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){yield this.genericFruchtermanLayout(!0,t,e)})}stop(){this.timeInterval&&typeof window!="undefined"&&window.clearInterval(this.timeInterval),this.running=!1}tick(t=this.options.maxIteration||1){if(this.lastResult)return this.lastResult;for(let r=0;rthis.lastGraph.mergeNodeData(r.id,{x:r.data.x,y:r.data.y,z:this.options.dimensions===3?r.data.z:void 0})),e}genericFruchtermanLayout(t,e,r){return(0,Z.mG)(this,void 0,void 0,function*(){if(this.running)return;const i=this.formatOptions(r),{dimensions:a,width:s,height:o,center:l,clustering:c,nodeClusterBy:u,maxIteration:h,onTick:d}=i,f=e.getAllNodes(),v=e.getAllEdges();if(!(f!=null&&f.length)){const E={nodes:[],edges:v};return this.lastResult=E,E}if(f.length===1){t&&e.mergeNodeData(f[0].id,{x:l[0],y:l[1],z:a===3?l[2]:void 0});const E={nodes:[Object.assign(Object.assign({},f[0]),{data:Object.assign(Object.assign({},f[0].data),{x:l[0],y:l[1],z:a===3?l[2]:void 0})})],edges:v};return this.lastResult=E,E}const g=f.map(E=>hi(E,[s,o])),p=new Vn({nodes:g,edges:v}),y={};if(c&&g.forEach(E=>{const O=E.data[u];y[O]||(y[O]={name:O,cx:0,cy:0,count:0})}),this.lastLayoutNodes=g,this.lastLayoutEdges=v,this.lastAssign=t,this.lastGraph=p,this.lastOptions=i,this.lastClusterMap=y,typeof window=="undefined")return;let b=0;return new Promise(E=>{this.timeInterval=window.setInterval(()=>{if(!this.running){E({nodes:g,edges:v});return}this.runOneStep(p,y,i),t&&g.forEach(({id:O,data:k})=>e.mergeNodeData(O,{x:k.x,y:k.y,z:a===3?k.z:void 0})),d==null||d({nodes:g,edges:v}),b++,b>=h&&(window.clearInterval(this.timeInterval),E({nodes:g,edges:v}))},0),this.running=!0})})}formatOptions(t={}){const e=Object.assign(Object.assign({},this.options),t),{clustering:r,nodeClusterBy:i}=e,{center:a,width:s,height:o}=e;return e.width=!s&&typeof window!="undefined"?window.innerWidth:s,e.height=!o&&typeof window!="undefined"?window.innerHeight:o,e.center=a||[e.width/2,e.height/2],e.clustering=r&&!!i,e}runOneStep(t,e,r){const{dimensions:i,height:a,width:s,gravity:o,center:l,speed:c,clustering:u,nodeClusterBy:h,clusterGravity:d}=r,f=a*s,v=Math.sqrt(f)/10,g=t.getAllNodes(),p=f/(g.length+1),y=Math.sqrt(p),b={};if(this.applyCalculate(t,b,y,p),u){for(const O in e)e[O].cx=0,e[O].cy=0,e[O].count=0;g.forEach(O=>{const{data:k}=O,R=e[k[h]];re(k.x)&&(R.cx+=k.x),re(k.y)&&(R.cy+=k.y),R.count++});for(const O in e)e[O].cx/=e[O].count,e[O].cy/=e[O].count;const E=d||o;g.forEach((O,k)=>{const{id:R,data:z}=O;if(!re(z.x)||!re(z.y))return;const B=e[z[h]],V=Math.sqrt((z.x-B.cx)*(z.x-B.cx)+(z.y-B.cy)*(z.y-B.cy)),U=y*E;b[R].x-=U*(z.x-B.cx)/V,b[R].y-=U*(z.y-B.cy)/V})}g.forEach((E,O)=>{const{id:k,data:R}=E;if(!re(R.x)||!re(R.y))return;const z=.01*y*o;b[k].x-=z*(R.x-l[0]),b[k].y-=z*(R.y-l[1]),i===3&&(b[k].z-=z*(R.z-l[2]))}),g.forEach((E,O)=>{const{id:k,data:R}=E;if(re(R.fx)&&re(R.fy)){R.x=R.fx,R.y=R.fy,i===3&&(R.z=R.fz);return}if(!re(R.x)||!re(R.y))return;const z=Math.sqrt(b[k].x*b[k].x+b[k].y*b[k].y+(i===3?b[k].z*b[k].z:0));if(z>0){const B=Math.min(v*(c/QL),z);t.mergeNodeData(k,{x:R.x+b[k].x/z*B,y:R.y+b[k].y/z*B,z:i===3?R.z+b[k].z/z*B:void 0})}})}applyCalculate(t,e,r,i){this.calRepulsive(t,e,i),this.calAttractive(t,e,r)}calRepulsive(t,e,r){const i=t.getAllNodes();i.forEach(({data:a,id:s},o)=>{e[s]={x:0,y:0,z:0},i.forEach(({data:l,id:c},u)=>{if(o<=u||!re(a.x)||!re(l.x)||!re(a.y)||!re(l.y))return;let h=a.x-l.x,d=a.y-l.y,f=this.options.dimensions===3?a.z-l.z:0,v=h*h+d*d+f*f;v===0&&(v=1,h=.01,d=.01,f=.01);const g=r/v,p=h*g,y=d*g,b=f*g;e[s].x+=p,e[s].y+=y,e[c].x-=p,e[c].y-=y,this.options.dimensions===3&&(e[s].z+=b,e[c].z-=b)})})}calAttractive(t,e,r){t.getAllEdges().forEach(a=>{const{source:s,target:o}=a;if(!s||!o||s===o)return;const{data:l}=t.getNode(s),{data:c}=t.getNode(o);if(!re(c.x)||!re(l.x)||!re(c.y)||!re(l.y))return;const u=c.x-l.x,h=c.y-l.y,d=this.options.dimensions===3?c.z-l.z:0,f=Math.sqrt(u*u+h*h+d*d)/r,v=u*f,g=h*f,p=d*f;e[s].x+=v,e[s].y+=g,e[o].x-=v,e[o].y-=g,this.options.dimensions===3&&(e[s].z+=p,e[o].z-=p)})}}const JL={begin:[0,0],preventOverlap:!0,preventOverlapPadding:10,condense:!1,rows:void 0,cols:void 0,position:void 0,sortBy:"degree",nodeSize:30,width:300,height:300};class $L{constructor(t={}){this.options=t,this.id="grid",this.options=Object.assign(Object.assign({},JL),t)}execute(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){return this.genericGridLayout(!1,t,e)})}assign(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){yield this.genericGridLayout(!0,t,e)})}genericGridLayout(t,e,r){return(0,Z.mG)(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{begin:a=[0,0],condense:s,preventOverlapPadding:o,preventOverlap:l,rows:c,cols:u,nodeSpacing:h,nodeSize:d,width:f,height:v,position:g}=i;let{sortBy:p}=i;const y=e.getAllNodes(),b=e.getAllEdges(),E=y==null?void 0:y.length;if(!E||E===1)return Fs(e,t,a);const O=y.map(ft=>hi(ft));p!=="id"&&(!Ve(p)||O[0].data[p]===void 0)&&(p="degree"),p==="degree"?O.sort((ft,Nt)=>e.getDegree(Nt.id,"both")-e.getDegree(ft.id,"both")):p==="id"?O.sort((ft,Nt)=>re(Nt.id)&&re(ft.id)?Nt.id-ft.id:`${ft.id}`.localeCompare(`${Nt.id}`)):O.sort((ft,Nt)=>Nt.data[p]-ft.data[p]);const k=!f&&typeof window!="undefined"?window.innerWidth:f,R=!v&&typeof window!="undefined"?window.innerHeight:v,z=E,B={rows:c,cols:u};if(c!=null&&u!=null)B.rows=c,B.cols=u;else if(c!=null&&u==null)B.rows=c,B.cols=Math.ceil(z/B.rows);else if(c==null&&u!=null)B.cols=u,B.rows=Math.ceil(z/B.cols);else{const ft=Math.sqrt(z*R/k);B.rows=Math.round(ft),B.cols=Math.round(k/R*ft)}if(B.rows=Math.max(B.rows,1),B.cols=Math.max(B.cols,1),B.cols*B.rows>z){const ft=sh(B),Nt=oh(B);(ft-1)*Nt>=z?sh(B,ft-1):(Nt-1)*ft>=z&&oh(B,Nt-1)}else for(;B.cols*B.rows=z?oh(B,Nt+1):sh(B,ft+1)}let V=s?0:k/B.cols,U=s?0:R/B.rows;if(l||h){const ft=Bs(10,h),Nt=Ov(30,d,!1);O.forEach(Ct=>{(!Ct.data.x||!Ct.data.y)&&(Ct.data.x=0,Ct.data.y=0);const gt=e.getNode(Ct.id),[pt,Pt]=Pl(Nt(gt)||30),jt=ft!==void 0?ft(Ct):o,Yt=pt+jt,ee=Pt+jt;V=Math.max(V,Yt),U=Math.max(U,ee)})}const J={},$={row:0,col:0},st={};for(let ft=0;ft{e.mergeNodeData(ft.id,{x:ft.data.x,y:ft.data.y})}),ct})}}const sh=(n,t)=>{let e;const r=n.rows||5,i=n.cols||5;return t==null?e=Math.min(r,i):Math.min(r,i)===n.rows?n.rows=t:n.cols=t,e},oh=(n,t)=>{let e;const r=n.rows||5,i=n.cols||5;return t==null?e=Math.max(r,i):Math.max(r,i)===n.rows?n.rows=t:n.cols=t,e},Bv=(n,t)=>n[`c-${t.row}-${t.col}`]||!1,Lb=(n,t)=>n[`c-${t.row}-${t.col}`]=!0,_b=(n,t)=>{const e=n.cols||5;t.col++,t.col>=e&&(t.col=0,t.row++)},t_=(n,t,e,r,i,a,s,o)=>{let l,c;const u=i[n.id];if(u)l=u.col*e+e/2+t[0],c=u.row*r+r/2+t[1];else{for(;Bv(o,s);)_b(a,s);l=s.col*e+e/2+t[0],c=s.row*r+r/2+t[1],Lb(o,s),_b(a,s)}n.data.x=l,n.data.y=c},e_=(n,t,e)=>{try{const r=Ha.mul(Ha.pow(t,2),-.5),i=r.mean("row"),a=r.mean("column"),s=r.mean();r.add(s).subRowVector(i).subColumnVector(a);const o=new Sb(r),l=Ha.sqrt(o.diagonalMatrix).diagonal();return o.leftSingularVectors.toJSON().map(c=>Ha.mul([c],[l]).toJSON()[0].splice(0,n))}catch(r){const i=[];for(let a=0;a{const e=Object.assign(Object.assign({},r_),t),{positions:r,iterations:i,width:a,k:s,speed:o=100,strictRadial:l,focusIdx:c,radii:u=[],nodeSizeFunc:h}=e,d=n.getAllNodes(),f=[],v=a/10;for(let g=0;g{f[y]={x:0,y:0}}),a_(d,r,f,s,u,h),s_(r,f,o,l,c,v,a,u);return r},a_=(n,t,e,r,i,a)=>{t.forEach((s,o)=>{e[o]={x:0,y:0},t.forEach((l,c)=>{if(o===c||i[o]!==i[c])return;let u=s.x-l.x,h=s.y-l.y,d=Math.sqrt(u*u+h*h);if(d===0){d=1;const f=o>c?1:-1;u=.01*f,h=.01*f}if(d{const l=a||s/10;return r&&t.forEach((c,u)=>{const h=n[u].x-n[i].x,d=n[u].y-n[i].y,f=Math.sqrt(h*h+d*d);let v=d/f,g=-h/f;const p=Math.sqrt(c.x*c.x+c.y*c.y);let y=Math.acos((v*c.x+g*c.y)/p);y>Math.PI/2&&(y-=Math.PI/2,v*=-1,g*=-1);const b=Math.cos(y)*p;c.x=v*b,c.y=g*b}),n.forEach((c,u)=>{if(u===i)return;const h=Math.sqrt(t[u].x*t[u].x+t[u].y*t[u].y);if(h>0&&u!==i){const d=Math.min(l*(e/n_),h);if(c.x+=t[u].x/h*d,c.y+=t[u].y/h*d,r){let f=c.x-n[i].x,v=c.y-n[i].y;const g=Math.sqrt(f*f+v*v);f=f/g*o[u],v=v/g*o[u],c.x=n[i].x+f,c.y=n[i].y+v}}}),n},o_={maxIteration:1e3,focusNode:null,unitRadius:null,linkDistance:50,preventOverlap:!1,strictRadial:!0,maxPreventOverlapIteration:200,sortStrength:10};class l_{constructor(t={}){this.options=t,this.id="radial",this.options=Object.assign(Object.assign({},o_),t)}execute(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){return this.genericRadialLayout(!1,t,e)})}assign(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){yield this.genericRadialLayout(!0,t,e)})}genericRadialLayout(t,e,r){return(0,Z.mG)(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{width:a,height:s,center:o,focusNode:l,unitRadius:c,nodeSize:u,nodeSpacing:h,strictRadial:d,preventOverlap:f,maxPreventOverlapIteration:v,sortBy:g,linkDistance:p=50,sortStrength:y=10,maxIteration:b=1e3}=i,E=e.getAllNodes(),O=e.getAllEdges(),k=!a&&typeof window!="undefined"?window.innerWidth:a,R=!s&&typeof window!="undefined"?window.innerHeight:s,z=o||[k/2,R/2];if(!(E!=null&&E.length)||E.length===1)return Fs(e,t,z);let B=E[0];if(Ve(l)){for(let Ee=0;Eez[0]?z[0]:k-z[0],ft=R-z[1]>z[1]?z[1]:R-z[1];ct===0&&(ct=k/2),ft===0&&(ft=R/2);const Nt=Math.min(ct,ft),Ct=Math.max(...st),gt=[],pt=c||Nt/Ct;st.forEach((Ee,Ce)=>{gt[Ce]=Ee*pt});const Pt=c_(E,J,p,gt,pt,g,y),jt=u_(Pt),Yt=e_(p,Pt,p);let ee=Yt.map(([Ee,Ce])=>({x:(isNaN(Ee)?Math.random()*p:Ee)-Yt[V][0],y:(isNaN(Ce)?Math.random()*p:Ce)-Yt[V][1]}));this.run(b,ee,jt,Pt,gt,V);let ie;if(f){ie=Cv(u,h);const Ee={nodes:E,nodeSizeFunc:ie,positions:ee,radii:gt,height:R,width:k,strictRadial:!!d,focusIdx:V,iterations:v||200,k:ee.length/4.5};ee=i_(e,Ee)}const ce=[];return ee.forEach((Ee,Ce)=>{const We=hi(E[Ce]);We.data.x=Ee.x+z[0],We.data.y=Ee.y+z[1],ce.push(We)}),t&&ce.forEach(Ee=>e.mergeNodeData(Ee.id,{x:Ee.data.x,y:Ee.data.y})),{nodes:ce,edges:O}})}run(t,e,r,i,a,s){for(let o=0;o<=t;o++){const l=o/t;this.oneIteration(l,e,a,i,r,s)}}oneIteration(t,e,r,i,a,s){const o=1-t;e.forEach((l,c)=>{const u=Tb(l,{x:0,y:0}),h=u===0?0:1/u;if(c===s)return;let d=0,f=0,v=0;e.forEach((p,y)=>{if(c===y)return;const b=Tb(l,p),E=b===0?0:1/b,O=i[y][c];v+=a[c][y],d+=a[c][y]*(p.x+O*(l.x-p.x)*E),f+=a[c][y]*(p.y+O*(l.y-p.y)*E)});const g=r[c]===0?0:1/r[c];v*=o,v+=t*g*g,d*=o,d+=t*g*l.x*h,l.x=d/v,f*=o,f+=t*g*l.y*h,l.y=f/v})}}const c_=(n,t,e,r,i,a,s)=>{if(!n)return[];const o=[];if(t){const l={};t.forEach((c,u)=>{const h=[];c.forEach((d,f)=>{var v,g;if(u===f)h.push(0);else if(r[u]===r[f])if(a==="data")h.push(d*(Math.abs(u-f)*s)/(r[u]/i));else if(a){let p,y;if(l[n[u].id])p=l[n[u].id];else{const b=(a==="id"?n[u].id:(v=n[u].data)===null||v===void 0?void 0:v[a])||0;Ve(b)?p=b.charCodeAt(0):p=b,l[n[u].id]=p}if(l[n[f].id])y=l[n[f].id];else{const b=(a==="id"?n[f].id:(g=n[f].data)===null||g===void 0?void 0:g[a])||0;Ve(b)?y=b.charCodeAt(0):y=b,l[n[f].id]=y}h.push(d*(Math.abs(p-y)*s)/(r[u]/i))}else h.push(d*e/(r[u]/i));else{const p=(e+i)/2;h.push(d*p)}}),o.push(h)})}return o},u_=n=>{const t=n.length,e=n[0].length,r=[];for(let i=0;i{let e=-1;return n.forEach((r,i)=>{r.id===t&&(e=i)}),Math.max(e,0)},d_=(n,t,e)=>{const r=n.length;for(let i=0;i{let e=0;for(let r=0;re?n[t][r]:e);return e},v_={center:[0,0],width:300,height:300};class g_{constructor(t={}){this.options=t,this.id="random",this.options=Object.assign(Object.assign({},v_),t)}execute(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){return this.genericRandomLayout(!1,t,e)})}assign(t,e){return(0,Z.mG)(this,void 0,void 0,function*(){yield this.genericRandomLayout(!0,t,e)})}genericRandomLayout(t,e,r){return(0,Z.mG)(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{center:a,width:s,height:o}=i,l=e.getAllNodes(),c=.9,u=!s&&typeof window!="undefined"?window.innerWidth:s,h=!o&&typeof window!="undefined"?window.innerHeight:o,d=a||[u/2,h/2],f=[];return l&&l.forEach(g=>{f.push({id:g.id,data:{x:(Math.random()-.5)*c*u+d[0],y:(Math.random()-.5)*c*h+d[1]}})}),t&&f.forEach(g=>e.mergeNodeData(g.id,{x:g.data.x,y:g.data.y})),{nodes:f,edges:e.getAllEdges()}})}}function p_(n){var t,e,r,i=n||1;function a(o,l){++t>i&&(r=e,s(1),++t),e[o]=l}function s(o){t=0,e=Object.create(null),o||(r=Object.create(null))}return s(),{clear:s,has:function(o){return e[o]!==void 0||r[o]!==void 0},get:function(o){var l=e[o];if(l!==void 0)return l;if((l=r[o])!==void 0)return a(o,l),l},set:function(o,l){e[o]!==void 0?e[o]=l:a(o,l)}}}var Fv=new Map;function zv(n,t,e){e===void 0&&(e=128);var r=function(){for(var i=[],a=0;a2))return t[0]}formatSize(t){const e=typeof t=="function"?t:()=>t;return r=>ci(e(r))}doLayout(t,e){const{hGap:r,getRibSep:i,vGap:a,nodeSize:s,height:o}=e,{model:l}=this.context,c=this.formatSize(s);let u=c(t)[0]+i(t);const h=(E,O=0)=>{var k;return O+=r*((E.children||[]).length+1),(k=E.children)===null||k===void 0||k.forEach(R=>{var z;(z=l.getNodeLikeDatum(R).children)===null||z===void 0||z.forEach(V=>{const U=l.getNodeLikeDatum(V);O=h(U,O)})}),O},d=E=>{if(E.depth===1)return u;const O=l.getParentData(E.id,"tree");if(Eo(E)){const k=l.getParentData(O.id,"tree"),R=g(E)-g(k);return d(O)+R*r/a}else{const k=(O.children||[]).indexOf(E.id),R=l.getNodeData((O.children||[]).slice(k));return f(O)-R.reduce((z,B)=>z+h(B),0)-c(O)[0]/2}},f=zv(E=>{if(jv(E))return c(E)[0]/2;const O=l.getParentData(E.id,"tree");if(Eo(E))return d(E)+h(E)+c(E)[0]/2;{const k=g(E)-g(O),R=r/a;return d(E)+k*R}},E=>E.id),v=E=>g(l.getParentData(E,"tree")),g=zv(E=>{if(jv(E))return o/2;if(Eo(E)){const O=l.getParentData(E.id,"tree"),k=O.children.indexOf(E.id);if(k===0)return v(O.id)+a;const R=l.getNodeLikeDatum(O.children[k-1]);if(aa(R.children))return g(R)+a;const z=l.getDescendantsData(R.id);return Math.max(...z.map(B=>Eo(B)?v(B.id):g(B)))+a}else{if(aa(E.children))return v(E.id)+a;const O=l.getNodeLikeDatum(E.children.slice(-1)[0]);if(aa(O.children))return g(O)+a;const k=l.getDescendantsData(E.id).slice(-1)[0];return(Eo(k)?v(k.id):g(k))+a}},E=>E.id);let p=0;const y={nodes:[],edges:[]},b=E=>{var O;(O=E.children)===null||O===void 0||O.forEach(V=>b(l.getNodeLikeDatum(V)));const k=g(E),R=f(E);if(y.nodes.push({id:E.id,x:R,y:k}),jv(E))return;const z=l.getRelatedEdgesData(E.id,"in")[0],B=[d(E),Eo(E)?k:v(E.id)];y.edges.push({id:At(z),controlPoints:[B],relatedNodeId:E.id}),p=Math.max(p,R+i(E)),E.depth===1&&(u=p)};return b(t),y}placeAlterative(t,e){const r=(e.children||[]).filter((o,l)=>l%2!==0);if(r.length===0)return t;const{model:i}=this.context,a=t.nodes.find(o=>o.id===e.id).y,s=o=>{const l=i.getAncestorsData(o,"tree");if(aa(l))return!1;const c=l.length===1?o:l[l.length-2].id;return r.includes(c)};t.nodes.forEach(o=>{s(o.id)&&(o.y=2*a-o.y)}),t.edges.forEach(o=>{s(o.relatedNodeId)&&(o.controlPoints=o.controlPoints.map(l=>[l[0],2*a-l[1]]))})}rightToLeft(t,e){return t.nodes.forEach(r=>r.x=e.width-r.x),t.edges.forEach(r=>{r.controlPoints=r.controlPoints.map(i=>[e.width-i[0],i[1]])}),t}execute(t,e){return m_(this,void 0,void 0,function*(){const r=Object.assign(Object.assign(Object.assign({},lh.defaultOptions),this.options),e),{direction:i,nodeSize:a}=r,s=this.getRoot();if(!s)return t;const o=this.formatSize(a);r.vGap||(r.vGap=Math.max(...(t.nodes||[]).map(d=>o(d)[1]))),r.hGap||(r.hGap=Math.max(...(t.nodes||[]).map(d=>o(d)[0])));let l=this.doLayout(s,r);this.placeAlterative(l,s),i==="RL"&&(l=this.rightToLeft(l,r));const{model:c}=this.context,u=[],h=[];return l.nodes.forEach(d=>{const{id:f,x:v,y:g}=d,p=c.getNodeLikeDatum(f);u.push(Db(p,{x:v,y:g}))}),l.edges.forEach(d=>{const{id:f,controlPoints:v}=d,g=c.getEdgeDatum(f);h.push(Db(g,{controlPoints:v}))}),{nodes:u,edges:h}})}}lh.defaultOptions={direction:"RL",getRibSep:()=>60};const Db=(n,t)=>Object.assign(Object.assign({},n),{style:Object.assign(Object.assign({},n.style||{}),t)}),jv=n=>n.depth===0,Eo=n=>(n.depth||(n.depth=0))%2===0;var y_=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};class ch extends Qu{constructor(){super(...arguments),this.id="snake"}formatSize(t,e){const r=typeof e=="function"?e:()=>e;return t.reduce((i,a)=>{const[s,o]=ci(r(a))||[0,0];return[Math.max(i[0],s),Math.max(i[1],o)]},[0,0])}validate(t){const{nodes:e=[],edges:r=[]}=t,i={},a={},s={};e.forEach(d=>{i[d.id]=0,a[d.id]=0,s[d.id]=[]}),r.forEach(d=>{i[d.target]++,a[d.source]++,s[d.source].push(d.target)});const o=new Set,l=d=>{o.has(d)||(o.add(d),s[d].forEach(l))};if(l(e[0].id),o.size!==e.length)return!1;const c=e.filter(d=>i[d.id]===0),u=e.filter(d=>a[d.id]===0);return!(c.length!==1||u.length!==1||e.filter(d=>i[d.id]===1&&a[d.id]===1).length!==e.length-2)}execute(t,e){return y_(this,void 0,void 0,function*(){var r;if(!this.validate(t))return t;const{nodeSize:i,padding:a,sortBy:s,cols:o,colGap:l,rowGap:c,clockwise:u,width:h,height:d}=Object.assign({},ch.defaultOptions,this.options,e),[f,v,g,p]=oi(a),y=this.formatSize(t.nodes||[],i),b=Math.ceil((t.nodes||[]).length/o);let E=l||(h-p-v-o*y[0])/(o-1),O=c||(d-f-g-b*y[1])/(b-1);return(O===1/0||O<0)&&(O=0),(E===1/0||E<0)&&(E=0),{nodes:((s?(r=t.nodes)===null||r===void 0?void 0:r.sort(s):b_(t))||[]).map((z,B)=>{const V=Math.floor(B/o),U=B%o,J=u?V%2===0?U:o-1-U:V%2===0?o-1-U:U,$=p+J*(y[0]+E)+y[0]/2,st=f+V*(y[1]+O)+y[1]/2;return{id:z.id,style:{x:$,y:st}}})}})}}ch.defaultOptions={padding:0,cols:5,clockwise:!0};function b_(n){const{nodes:t=[],edges:e=[]}=n,r={},i={};t.forEach(o=>{r[o.id]=0,i[o.id]=[]}),e.forEach(o=>{r[o.target]++,i[o.source].push(o.target)});const a=[],s=[];for(t.forEach(o=>{r[o.id]===0&&a.push(o.id)});a.length>0;){const o=a.shift(),l=t.find(c=>c.id===o);s.push(l),i[o].forEach(c=>{r[c]--,r[c]===0&&a.push(c)})}return s}const x_=["rgb(158, 1, 66)","rgb(213, 62, 79)","rgb(244, 109, 67)","rgb(253, 174, 97)","rgb(254, 224, 139)","rgb(255, 255, 191)","rgb(230, 245, 152)","rgb(171, 221, 164)","rgb(102, 194, 165)","rgb(50, 136, 189)","rgb(94, 79, 162)"],E_=["rgb(78, 121, 167)","rgb(242, 142, 44)","rgb(225, 87, 89)","rgb(118, 183, 178)","rgb(89, 161, 79)","rgb(237, 201, 73)","rgb(175, 122, 161)","rgb(255, 157, 167)","rgb(156, 117, 95)","rgb(186, 176, 171)"],w_=["rgb(255, 245, 235)","rgb(254, 230, 206)","rgb(253, 208, 162)","rgb(253, 174, 107)","rgb(253, 141, 60)","rgb(241, 105, 19)","rgb(217, 72, 1)","rgb(166, 54, 3)","rgb(127, 39, 4)"],S_=["rgb(247, 252, 245)","rgb(229, 245, 224)","rgb(199, 233, 192)","rgb(161, 217, 155)","rgb(116, 196, 118)","rgb(65, 171, 93)","rgb(35, 139, 69)","rgb(0, 109, 44)","rgb(0, 68, 27)"],M_=["rgb(247, 251, 255)","rgb(222, 235, 247)","rgb(198, 219, 239)","rgb(158, 202, 225)","rgb(107, 174, 214)","rgb(66, 146, 198)","rgb(33, 113, 181)","rgb(8, 81, 156)","rgb(8, 48, 107)"];var A_=function(n,t,e){if(!Ur(n)&&!fo(n))return n;var r=e;return s1(n,function(i,a){r=t(r,i,a)}),r},T_=A_,Wv=function(n,t){return T_(n,function(e,r,i){return t.includes(i)||(e[i]=r),e},{})};class hr extends Gf{}function wo(n,t=!0,e){const r=document.createElement("div");return r.setAttribute("class",`g6-${n}`),Object.assign(r.style,{position:"absolute",display:"block"}),t&&Object.assign(r.style,{position:"unset",gridArea:"1 / 1 / 2 / 2",inset:"0px",height:"100%",width:"100%",overflow:"hidden",pointerEvents:"none"}),e&&Object.assign(r.style,e),r}function Gv(n,t="div",e={},r="",i=document.body){const a=document.getElementById(n);a&&a.remove();const s=document.createElement(t);return s.innerHTML=r,s.id=n,Object.assign(s.style,e),i.appendChild(s),s}var O_=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};class uh extends hr{constructor(t,e){super(t,Object.assign({},uh.defaultOptions,e)),this.$element=wo("background"),this.context.canvas.getContainer().prepend(this.$element),this.update(e)}update(t){const e=Object.create(null,{update:{get:()=>super.update}});return O_(this,void 0,void 0,function*(){e.update.call(this,t),Object.assign(this.$element.style,Wv(this.options,["key","type"]))})}destroy(){super.destroy(),this.$element.remove()}}uh.defaultOptions={transition:"background 0.5s",backgroundSize:"cover",zIndex:"-1"};function Zv(n,t,e,r,i,a){const s=n,o=t,l=e-s,c=r-o;let u=i-s,h=a-o,d=u*l+h*c,f=0;d<=0?f=0:(u=l-u,h=c-h,d=u*l+h*c,d<=0?f=0:f=d*d/(l*l+c*c));const v=u*u+h*h-f;return v<0?0:v}function Ka(n,t,e,r){return(n-e)*(n-e)+(t-r)*(t-r)}function Ib(n,t,e,r,i){return Ka(n,t,e,r)e;if(n===0)return Math.round;const t=Math.pow(10,n);return e=>Math.round(e*t)/t}function Bb(n){const t=Math.min(n.x1,n.x2),e=Math.max(n.x1,n.x2),r=Math.min(n.y1,n.y2),i=Math.max(n.y1,n.y2);return{x:t,y:r,x2:e,y2:i,width:e-t,height:i-r}}class dr{constructor(t,e,r,i){this.x1=t,this.y1=e,this.x2=r,this.y2=i}equals(t){return this.x1===t.x1&&this.y1===t.y1&&this.x2===t.x2&&this.y2===t.y2}draw(t){t.moveTo(this.x1,this.y1),t.lineTo(this.x2,this.y2)}toString(){return`Line(from=(${this.x1},${this.y1}),to=(${this.x2},${this.y2}))`}static from(t){return new dr(t.x1,t.y1,t.x2,t.y2)}cuts(t,e){if(this.y1===this.y2||ethis.y1&&e>=this.y2||t>this.x1&&t>=this.x2)return!1;if(tthis.x2+r)return!1}else if(tthis.x1+r)return!1;if(this.y1this.y2+r)return!1}else if(ethis.y1+r)return!1;return!0}}var Dn;(function(n){n[n.POINT=1]="POINT",n[n.PARALLEL=2]="PARALLEL",n[n.COINCIDENT=3]="COINCIDENT",n[n.NONE=4]="NONE"})(Dn||(Dn={}));class Vv{constructor(t,e=0,r=0){this.state=t,this.x=e,this.y=r}}function hh(n,t){const e=(t.x2-t.x1)*(n.y1-t.y1)-(t.y2-t.y1)*(n.x1-t.x1),r=(n.x2-n.x1)*(n.y1-t.y1)-(n.y2-n.y1)*(n.x1-t.x1),i=(t.y2-t.y1)*(n.x2-n.x1)-(t.x2-t.x1)*(n.y2-n.y1);if(i){const a=e/i,s=r/i;return 0<=a&&a<=1&&0<=s&&s<=1?new Vv(Dn.POINT,n.x1+a*(n.x2-n.x1),n.y1+a*(n.y2-n.y1)):new Vv(Dn.NONE)}return new Vv(e===0||r===0?Dn.COINCIDENT:Dn.PARALLEL)}function Fb(n,t){const e=(t.x2-t.x1)*(n.y1-t.y1)-(t.y2-t.y1)*(n.x1-t.x1),r=(n.x2-n.x1)*(n.y1-t.y1)-(n.y2-n.y1)*(n.x1-t.x1),i=(t.y2-t.y1)*(n.x2-n.x1)-(t.x2-t.x1)*(n.y2-n.y1);if(i){const a=e/i,s=r/i;if(0<=a&&a<=1&&0<=s&&s<=1)return a}return Number.POSITIVE_INFINITY}function N_(n,t){function e(i,a,s,o){let l=Fb(t,new dr(i,a,s,o));return l=Math.abs(l-.5),l>=0&&l<=1?1:0}let r=e(n.x,n.y,n.x2,n.y);return r+=e(n.x,n.y,n.x,n.y2),r>1||(r+=e(n.x,n.y2,n.x2,n.y2),r>1)?!0:(r+=e(n.x2,n.y,n.x2,n.y2),r>0)}var In;(function(n){n[n.LEFT=0]="LEFT",n[n.TOP=1]="TOP",n[n.RIGHT=2]="RIGHT",n[n.BOTTOM=3]="BOTTOM"})(In||(In={}));function dh(n,t,e){const r=new Set;return n.width<=0?(r.add(In.LEFT),r.add(In.RIGHT)):tn.x+n.width&&r.add(In.RIGHT),n.height<=0?(r.add(In.TOP),r.add(In.BOTTOM)):en.y+n.height&&r.add(In.BOTTOM),r}function zb(n,t){let e=t.x1,r=t.y1;const i=t.x2,a=t.y2,s=Array.from(dh(n,i,a));if(s.length===0)return!0;let o=dh(n,e,r);for(;o.size!==0;){for(const l of s)if(o.has(l))return!1;if(o.has(In.RIGHT)||o.has(In.LEFT)){let l=n.x;o.has(In.RIGHT)&&(l+=n.width),r=r+(l-e)*(a-r)/(i-e),e=l}else{let l=n.y;o.has(In.BOTTOM)&&(l+=n.height),e=e+(l-r)*(i-e)/(a-r),r=l}o=dh(n,e,r)}return!0}function k_(n,t){let e=Number.POSITIVE_INFINITY,r=0;function i(a,s,o,l){let c=Fb(t,new dr(a,s,o,l));c=Math.abs(c-.5),c>=0&&c<=1&&(r++,c1||(i(n.x,n.y2,n.x2,n.y2),r>1)?e:(i(n.x2,n.y,n.x2,n.y2),r===0?-1:e)}function P_(n,t){let e=0;const r=hh(n,new dr(t.x,t.y,t.x2,t.y));e+=r.state===Dn.POINT?1:0;const i=hh(n,new dr(t.x,t.y,t.x,t.y2));e+=i.state===Dn.POINT?1:0;const a=hh(n,new dr(t.x,t.y2,t.x2,t.y2));e+=a.state===Dn.POINT?1:0;const s=hh(n,new dr(t.x2,t.y,t.x2,t.y2));return e+=s.state===Dn.POINT?1:0,{top:r,left:i,bottom:a,right:s,count:e}}class kr{constructor(t,e,r,i){this.x=t,this.y=e,this.width=r,this.height=i}get x2(){return this.x+this.width}get y2(){return this.y+this.height}get cx(){return this.x+this.width/2}get cy(){return this.y+this.height/2}get radius(){return Math.max(this.width,this.height)/2}static from(t){return new kr(t.x,t.y,t.width,t.height)}equals(t){return this.x===t.x&&this.y===t.y&&this.width===t.width&&this.height===t.height}clone(){return new kr(this.x,this.y,this.width,this.height)}add(t){const e=Math.min(this.x,t.x),r=Math.min(this.y,t.y),i=Math.max(this.x2,t.x+t.width),a=Math.max(this.y2,t.y+t.height);this.x=e,this.y=r,this.width=i-e,this.height=a-r}addPoint(t){const e=Math.min(this.x,t.x),r=Math.min(this.y,t.y),i=Math.max(this.x2,t.x),a=Math.max(this.y2,t.y);this.x=e,this.y=r,this.width=i-e,this.height=a-r}toString(){return`Rectangle[x=${this.x}, y=${this.y}, w=${this.width}, h=${this.height}]`}draw(t){t.rect(this.x,this.y,this.width,this.height)}containsPt(t,e){return t>=this.x&&t<=this.x2&&e>=this.y&&e<=this.y2}get area(){return this.width*this.height}intersects(t){return this.area<=0||t.width<=0||t.height<=0?!1:t.x+t.width>this.x&&t.y+t.height>this.y&&t.x=this.width?this.width-1:t}boundY(t){return t=this.height?this.height-1:t}scaleX(t){return this.boundX(Math.floor((t-this.pixelX)/this.pixelGroup))}scaleY(t){return this.boundY(Math.floor((t-this.pixelY)/this.pixelGroup))}scale(t){const e=this.scaleX(t.x),r=this.scaleY(t.y),i=this.boundX(Math.ceil((t.x+t.width-this.pixelX)/this.pixelGroup)),a=this.boundY(Math.ceil((t.y+t.height-this.pixelY)/this.pixelGroup)),s=i-e,o=a-r;return new kr(e,r,s,o)}invertScaleX(t){return Math.round(t*this.pixelGroup+this.pixelX)}invertScaleY(t){return Math.round(t*this.pixelGroup+this.pixelY)}addPadding(t,e){const r=Math.ceil(e/this.pixelGroup),i=this.boundX(t.x-r),a=this.boundY(t.y-r),s=this.boundX(t.x2+r),o=this.boundY(t.y2+r),l=s-i,c=o-a;return new kr(i,a,l,c)}get(t,e){return t<0||e<0||t>=this.width||e>=this.height?Number.NaN:this.area[t+e*this.width]}inc(t,e,r){t<0||e<0||t>=this.width||e>=this.height||(this.area[t+e*this.width]+=r)}set(t,e,r){t<0||e<0||t>=this.width||e>=this.height||(this.area[t+e*this.width]=r)}incArea(t,e){if(t.width<=0||t.height<=0||e===0)return;const r=this.width,i=t.width,a=Math.max(0,t.i),s=Math.max(0,t.j),o=Math.min(t.i+t.width,r),l=Math.min(t.j+t.height,this.height);if(!(l<=0||o<=0||a>=r||l>=this.height))for(let c=s;cMath.min(s,o),Number.POSITIVE_INFINITY),i=this.area.reduce((s,o)=>Math.max(s,o),Number.NEGATIVE_INFINITY),a=s=>(s-r)/(i-r);t.scale(this.pixelGroup,this.pixelGroup);for(let s=0;se?"black":"white",t.fillRect(i,a,1,1)}t.restore()}}}function jb(n,t){const e=r=>({x:r.x-t,y:r.y-t,width:r.width+2*t,height:r.height+2*t});return Array.isArray(n)?n.map(e):e(n)}function Wb(n,t,e){return Gb(Object.assign(Bb(n),{distSquare:(r,i)=>Zv(n.x1,n.y1,n.x2,n.y2,r,i)}),t,e)}function Gb(n,t,e){const r=jb(n,e),i=t.scale(r),a=t.createSub(i,r);return L_(a,t,e,(s,o)=>n.distSquare(s,o)),a}function L_(n,t,e,r){const i=e*e;for(let a=0;a{const o=i.slice(0,s);return I_(t,a,o,e,r)}).flat()}function I_(n,t,e,r,i){const a=An(t.cx,t.cy),s=z_(a,e,n);if(s==null)return[];const o=new dr(a.x,a.y,s.cx,s.cy),l=B_(o,n,r,i);return F_(l,n)}function B_(n,t,e,r){const i=[],a=[];a.push(n);let s=!0;for(let o=0;o0;){const l=a.pop(),c=Zb(t,l),u=c?P_(l,c):null;if(!c||!u||u.count!==2){s||i.push(l);continue}let h=r,d=gh(c,h,u,!0),f=Qa(d,a)||Qa(d,i),v=vh(d,t);for(;!f&&v&&h>=1;)h/=1.5,d=gh(c,h,u,!0),f=Qa(d,a)||Qa(d,i),v=vh(d,t);if(d&&!f&&!v&&(a.push(new dr(l.x1,l.y1,d.x,d.y)),a.push(new dr(d.x,d.y,l.x2,l.y2)),s=!0),s)continue;h=r,d=gh(c,h,u,!1);let g=Qa(d,a)||Qa(d,i);for(v=vh(d,t);!g&&v&&h>=1;)h/=1.5,d=gh(c,h,u,!1),g=Qa(d,a)||Qa(d,i),v=vh(d,t);d&&!g&&(a.push(new dr(l.x1,l.y1,d.x,d.y)),a.push(new dr(d.x,d.y,l.x2,l.y2)),s=!0),s||i.push(l)}for(;a.length>0;)i.push(a.pop());return i}function F_(n,t){const e=[];for(;n.length>0;){const r=n.pop();if(n.length===0){e.push(r);break}const i=n.pop(),a=new dr(r.x1,r.y1,i.x2,i.y2);Zb(t,a)?(e.push(r),n.push(i)):n.push(a)}return e}function z_(n,t,e){let r=Number.POSITIVE_INFINITY;return t.reduce((i,a)=>{const s=Ka(n.x,n.y,a.cx,a.cy);if(s>r)return i;const o=new dr(n.x,n.y,a.cx,a.cy),l=W_(e,o);return s*(l+1)*(l+1){t+=r.cx,e+=r.cy}),t/=n.length,e/=n.length,n.map(r=>{const i=t-r.cx,a=e-r.cy,s=i*i+a*a;return[r,s]}).sort((r,i)=>r[1]-i[1]).map(r=>r[0])}function vh(n,t){return t.some(e=>e.containsPt(n.x,n.y))}function Qa(n,t){return t.some(e=>!!(Ib(e.x1,e.y1,n.x,n.y,.001)||Ib(e.x2,e.y2,n.x,n.y,.001)))}function Zb(n,t){let e=Number.POSITIVE_INFINITY,r=null;for(const i of n){if(!zb(i,t))continue;const a=k_(i,t);a>=0&&azb(r,t)&&N_(r,t)?e+1:e,0)}function gh(n,t,e,r){const i=e.top,a=e.left,s=e.bottom,o=e.right;if(r){if(a.state===Dn.POINT){if(i.state===Dn.POINT)return An(n.x-t,n.y-t);if(s.state===Dn.POINT)return An(n.x-t,n.y2+t);const d=n.width*n.height;return n.width*((a.y-n.y+(o.y-n.y))*.5)o.y?An(n.x-t,n.y-t):An(n.x2+t,n.y-t):a.ys.x?An(n.x-t,n.y-t):An(n.x-t,n.y2+t):i.xo.y?An(n.x2+t,n.y2+t):An(n.x-t,n.y2+t):a.ys.x?An(n.x2+t,n.y2+t):An(n.x2+t,n.y-t):i.xr)return!1}return!0}function Z_(n=0){return t=>{if(n<0||t.length<3)return t;const e=[];let r=0;const i=n*n;for(;r{if(s.length<3)return s;const o=[],l=s.closed,c=s.length+3-1+(l?0:2);o.push(a(s,2-(l?0:2),0));for(let u=2-(l?0:2);u{let e=n,r=t.length;if(e>1)for(r=Math.floor(t.length/e);r<3&&e>1;)e-=1,r=Math.floor(t.length/e);const i=[];for(let a=0,s=0;s=r?this.closed?this.get(t-r):this.points[r-1]:this.points[e]}get length(){return this.points.length}toString(t=1/0){const e=this.points;if(e.length===0)return"";const r=typeof t=="function"?t:C_(t);let i="M";for(const a of e)i+=`${r(a.x)},${r(a.y)} L`;return i=i.slice(0,-1),this.closed&&(i+=" Z"),i}draw(t){const e=this.points;if(e.length!==0){t.beginPath(),t.moveTo(e[0].x,e[0].y);for(const r of e)t.lineTo(r.x,r.y);this.closed&&t.closePath()}}sample(t){return Y_(t)(this)}simplify(t){return Z_(t)(this)}bSplines(t){return U_(t)(this)}apply(t){return t(this)}containsElements(t){const e=R_(this.points);return e?t.every(r=>e.containsPt(r.cx,r.cy)&&this.withinArea(r.cx,r.cy)):!1}withinArea(t,e){if(this.length===0)return!1;let r=0;const i=this.points[0],a=new dr(i.x,i.y,i.x,i.y);for(let s=1;st?u+h:u}function a(l,c){let u=Rl;return u=i(l,c,u,1),u=i(l+1,c,u,2),u=i(l,c+1,u,4),u=i(l+1,c+1,u,8),Number.isNaN(u)?-1:u}let s=ph;function o(l,c){let u=l,h=c,d=n.invertScaleX(u),f=n.invertScaleY(h);for(let v=0;vVb(r.raw,t));return e<0?!1:(this.members.splice(e,1),this.dirty.add(Wi.MEMBERS),!0)}removeNonMember(t){const e=this.nonMembers.findIndex(r=>Vb(r.raw,t));return e<0?!1:(this.nonMembers.splice(e,1),this.dirty.add(Wi.NON_MEMBERS),!0)}removeEdge(t){const e=this.edges.findIndex(r=>r.obj.equals(t));return e<0?!1:(this.edges.splice(e,1),this.dirty.add(Wi.NON_MEMBERS),!0)}pushNonMember(...t){if(t.length!==0){this.dirty.add(Wi.NON_MEMBERS);for(const e of t)this.nonMembers.push({raw:e,obj:Ll(e)?fh.from(e):kr.from(e),area:null})}}pushEdge(...t){if(t.length!==0){this.dirty.add(Wi.EDGES);for(const e of t)this.edges.push({raw:e,obj:dr.from(e),area:null})}}update(){const t=this.dirty.has(Wi.MEMBERS),e=this.dirty.has(Wi.NON_MEMBERS);let r=this.dirty.has(Wi.EDGES);this.dirty.clear();const i=this.members.map(c=>c.obj);if(this.o.virtualEdges&&(t||e)){const c=this.nonMembers.map(d=>d.obj),u=D_(i,c,this.o.maxRoutingIterations,this.o.morphBuffer),h=new Map(this.virtualEdges.map(d=>[d.obj.toString(),d.area]));this.virtualEdges=u.map(d=>{var f;return{raw:d,obj:d,area:(f=h.get(d.toString()))!==null&&f!==void 0?f:null}}),r=!0}let a=!1;if(t||r){const c=this.virtualEdges.concat(this.edges).map(f=>f.obj),u=Q_(i,c),h=Math.max(this.o.edgeR1,this.o.nodeR1)+this.o.morphBuffer,d=kr.from(jb(u,h));d.equals(this.activeRegion)||(a=!0,this.activeRegion=d)}if(a){const c=Math.ceil(this.activeRegion.width/this.o.pixelGroup),u=Math.ceil(this.activeRegion.height/this.o.pixelGroup);this.activeRegion.x!==this.potentialArea.pixelX||this.activeRegion.y!==this.potentialArea.pixelY?(this.potentialArea=zs.fromPixelRegion(this.activeRegion,this.o.pixelGroup),this.members.forEach(h=>h.area=null),this.nonMembers.forEach(h=>h.area=null),this.edges.forEach(h=>h.area=null),this.virtualEdges.forEach(h=>h.area=null)):(c!==this.potentialArea.width||u!==this.potentialArea.height)&&(this.potentialArea=zs.fromPixelRegion(this.activeRegion,this.o.pixelGroup))}const s=new Map,o=c=>{if(c.area){const u=`${c.obj.width}x${c.obj.height}x${c.obj instanceof kr?"R":"C"}`;s.set(u,c.area)}},l=c=>{if(c.area)return;const u=`${c.obj.width}x${c.obj.height}x${c.obj instanceof kr?"R":"C"}`;if(s.has(u)){const d=s.get(u);c.area=this.potentialArea.copy(d,{x:c.obj.x-this.o.nodeR1,y:c.obj.y-this.o.nodeR1});return}const h=c.obj instanceof kr?__(c.obj,this.potentialArea,this.o.nodeR1):Gb(c.obj,this.potentialArea,this.o.nodeR1);c.area=h,s.set(u,h)};this.members.forEach(o),this.nonMembers.forEach(o),this.members.forEach(l),this.nonMembers.forEach(c=>{this.activeRegion.intersects(c.obj)?l(c):c.area=null}),this.edges.forEach(c=>{c.area||(c.area=Wb(c.obj,this.potentialArea,this.o.edgeR1))}),this.virtualEdges.forEach(c=>{c.area||(c.area=Wb(c.obj,this.potentialArea,this.o.edgeR1))})}drawMembers(t){for(const e of this.members)e.obj.draw(t)}drawNonMembers(t){for(const e of this.nonMembers)e.obj.draw(t)}drawEdges(t){for(const e of this.edges)e.obj.draw(t)}drawPotentialArea(t,e=!0){this.potentialArea.draw(t,e)}compute(){if(this.members.length===0)return new js([]);this.dirty.size>0&&this.update();const{o:t,potentialArea:e}=this,r=this.members.map(o=>o.area),i=this.virtualEdges.concat(this.edges).map(o=>o.area),a=this.nonMembers.filter(o=>o.area!=null).map(o=>o.area),s=this.members.map(o=>o.obj);return K_(e,r,i,a,o=>o.containsElements(s),t)}}function K_(n,t,e,r,i,a={}){const s=Object.assign({},yh,a);let o=s.threshold,l=s.memberInfluenceFactor,c=s.edgeInfluenceFactor,u=s.nonMemberInfluenceFactor;const h=(s.nodeR0-s.nodeR1)*(s.nodeR0-s.nodeR1),d=(s.edgeR0-s.edgeR1)*(s.edgeR0-s.edgeR1);for(let f=0;f0)u*=.8;else break}return new js([])}function Q_(n,t){if(n.length===0)return new kr(0,0,0,0);const e=kr.from(n[0]);for(const r of n)e.add(r);for(const r of t)e.add(Bb(r));return e}function lj(n,t=[],e=[],r={}){if(n.length===0)return new js([]);const i=new Yv(r);return i.pushMember(...n),i.pushNonMember(...t),i.pushEdge(...e),i.compute()}var q_=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(n);i{const{style:r,bubbleSetOptions:i}=this.parseOptions();Wn(this.bubbleSetOptions,i)||this.init(),this.bubbleSetOptions=Object.assign({},i);const a=Object.assign(Object.assign({},r),{d:this.getPath()});this.shape?this.shape.update(a):(this.shape=new wl({style:a}),this.context.canvas.appendChild(this.shape))},this.updateBubbleSetsPath=r=>{if(!this.shape)return;const i=At(r.data);[...this.options.members,...this.options.avoidMembers].includes(i)&&this.shape.update(Object.assign(Object.assign({},this.parseOptions().style),{d:this.getPath(i)}))},this.getPath=r=>{const{graph:i}=this.context,a=this.options.members,s=[...this.members.keys()],o=this.options.avoidMembers,l=[...this.avoidMembers.keys()];if(!r&&Wn(a,s)&&Wn(o,l))return this.path;const{enter:c=[],exit:u=[]}=ja(s,a,p=>p),{enter:h=[],exit:d=[]}=ja(l,o,p=>p);r&&(u.push(r),c.push(r));const f=(p,y,b)=>{p.forEach(E=>{const O=b?this.members:this.avoidMembers,k=b?"pushMember":"pushNonMember",R=b?"removeMember":"removeNonMember";if(y){let z;i.getElementType(E)==="edge"?([z]=$_(i,E),this.bubbleSets.pushEdge(z)):([z]=J_(i,E),this.bubbleSets[k](z)),O.set(E,z)}else{const z=O.get(E);z&&(i.getElementType(E)==="edge"?this.bubbleSets.removeEdge(z):this.bubbleSets[R](z),O.delete(E))}})};f(u,!1,!0),f(c,!0,!0),f(d,!1,!1),f(h,!0,!1);const g=this.bubbleSets.compute().sample(8).simplify(0).bSplines().simplify(0);return this.path=Yy(g.points.map(br)),this.path},this.bindEvents(),this.bubbleSets=new Yv(this.options)}bindEvents(){this.context.graph.on(Xt.AFTER_RENDER,this.drawBubbleSets),this.context.graph.on(Xt.AFTER_ELEMENT_UPDATE,this.updateBubbleSetsPath)}init(){this.bubbleSets=new Yv(this.options),this.members=new Map,this.avoidMembers=new Map}parseOptions(){const t=this.options,{type:e,key:r,members:i,avoidMembers:a}=t,s=q_(t,["type","key","members","avoidMembers"]),o=Object.keys(s).reduce((l,c)=>(c in yh?l.bubbleSetOptions[c]=s[c]:l.style[c]=s[c],l),{style:{},bubbleSetOptions:{}});return Object.assign({type:e,key:r,members:i,avoidMembers:a},o)}addMember(t){const e=Array.isArray(t)?t:[t];e.some(r=>this.options.avoidMembers.includes(r))&&(this.options.avoidMembers=this.options.avoidMembers.filter(r=>!e.includes(r))),this.options.members=[...new Set([...this.options.members,...e])],this.drawBubbleSets()}removeMember(t){const e=Array.isArray(t)?t:[t];this.options.members=this.options.members.filter(r=>!e.includes(r)),this.drawBubbleSets()}updateMember(t){this.options.members=ue(t)?t(this.options.members):t,this.drawBubbleSets()}getMember(){return this.options.members}addAvoidMember(t){const e=Array.isArray(t)?t:[t];e.some(r=>this.options.members.includes(r))&&(this.options.members=this.options.members.filter(r=>!e.includes(r))),this.options.avoidMembers=[...new Set([...this.options.avoidMembers,...e])],this.drawBubbleSets()}removeAvoidMember(t){const e=Array.isArray(t)?t:[t];this.options.avoidMembers.some(r=>e.includes(r))&&(this.options.avoidMembers=this.options.avoidMembers.filter(r=>!e.includes(r)),this.drawBubbleSets())}updateAvoidMember(t){this.options.avoidMembers=Array.isArray(t)?t:[t],this.drawBubbleSets()}getAvoidMember(){return this.options.avoidMembers}destroy(){this.context.graph.off(Xt.AFTER_RENDER,this.drawBubbleSets),this.context.graph.off(Xt.AFTER_ELEMENT_UPDATE,this.updateBubbleSetsPath),this.shape.destroy(),super.destroy()}}bh.defaultOptions=Object.assign({members:[],avoidMembers:[],fill:"lightblue",fillOpacity:.2,stroke:"blue",strokeOpacity:.2},yh);const J_=(n,t)=>(Array.isArray(t)?t:[t]).map(r=>{const i=n.getElementRenderBounds(r);return new kr(i.min[0],i.min[1],na(i),ra(i))}),$_=(n,t)=>(Array.isArray(t)?t:[t]).map(r=>{const i=n.getEdgeData(r),a=n.getElementPosition(i.source),s=n.getElementPosition(i.target);return dr.from({x1:a[0],y1:a[1],x2:s[0],y2:s[1]})});class cj extends null{constructor(t,e){super(t,e),this.setOptions=r=>{const i={cameraType:"setType",near:"setNear",far:"setFar",fov:"setFov",aspect:"setAspect",projectionMode:"setProjectionMode",distance:"setDistance",minDistance:"setMinDistance",maxDistance:"setMaxDistance",roll:"setRoll",elevation:"setElevation",azimuth:"setAzimuth"},a=(s,o)=>{switch(s){case"projectionMode":return o==="perspective"?1:0;case"cameraType":return{orbiting:0,exploring:1,tracking:2}[o];case"aspect":return typeof o=="number"?o:this.getCanvasAspect();default:return o}};Object.entries(i).forEach(([s,o])=>{const l=r[s];if(l!==void 0){const c=a(s,l);this.context.canvas.getCamera()[o](c)}})},this.bindEvents()}update(t){this.setOptions(t),super.update(t)}bindEvents(){this.context.graph.once(GraphEvent.BEFORE_DRAW,()=>this.setOptions(this.options))}getCanvasAspect(){const[t,e]=this.context.viewport.getCanvasSize();return t/e}}function tD(n){return`
    ${n.map(t=>`
  • ${t.name}
  • `).join("")}
`}const eD=` .g6-contextmenu { font-size: 12px; background-color: rgba(255, 255, 255, 0.96); border-radius: 4px; overflow: hidden; box-shadow: rgba(0, 0, 0, 0.12) 0px 6px 12px 0px; transition: visibility 0.2s cubic-bezier(0.23, 1, 0.32, 1) 0s, left 0.4s cubic-bezier(0.23, 1, 0.32, 1) 0s, top 0.4s cubic-bezier(0.23, 1, 0.32, 1) 0s; } .g6-contextmenu-ul { max-width: 256px; min-width: 96px; list-style: none; padding: 0; margin: 0; } .g6-contextmenu-li { padding: 8px 12px; cursor: pointer; user-select: none; } .g6-contextmenu-li:hover { background-color: #f5f5f5; cursor: pointer; } `;var Ub=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};class xh extends hr{constructor(t,e){super(t,Object.assign({},xh.defaultOptions,e)),this.targetElement=null,this.onTriggerEvent=r=>{var i;(i=r.preventDefault)===null||i===void 0||i.call(r),this.show(r)},this.onMenuItemClick=r=>{const{onClick:i,trigger:a}=this.options;if(r.target instanceof HTMLElement&&r.target.className.includes("g6-contextmenu-li")){const s=r.target.getAttribute("value");i==null||i(s,r.target,this.targetElement),this.hide()}a!=="click"&&this.hide()},this.initElement(),this.update(e)}initElement(){this.$element=wo("contextmenu",!1,{zIndex:"99"});const{className:t}=this.options;t&&this.$element.classList.add(t),this.context.canvas.getContainer().appendChild(this.$element),Gv("g6-contextmenu-css","style",{},eD,document.head)}show(t){return Ub(this,void 0,void 0,function*(){const{enable:e,offset:r}=this.options;if(typeof e=="function"&&!e(t)||!e){this.hide();return}const i=yield this.getDOMContent(t);i instanceof HTMLElement?(this.$element.innerHTML="",this.$element.appendChild(i)):this.$element.innerHTML=i;const a=this.context.graph.getCanvas().getContainer().getBoundingClientRect();this.$element.style.left=`${t.client.x-a.left+r[0]}px`,this.$element.style.top=`${t.client.y-a.top+r[1]}px`,this.$element.style.display="block",this.targetElement=t.target})}hide(){this.$element.style.display="none",this.targetElement=null}update(t){this.unbindEvents(),super.update(t),this.bindEvents()}destroy(){this.unbindEvents(),super.destroy(),this.$element.remove()}getDOMContent(t){return Ub(this,void 0,void 0,function*(){const{getContent:e,getItems:r}=this.options;return r?tD(yield r(t)):yield e(t)})}bindEvents(){const{graph:t}=this.context,{trigger:e}=this.options;t.on(`canvas:${e}`,this.onTriggerEvent),t.on(`node:${e}`,this.onTriggerEvent),t.on(`edge:${e}`,this.onTriggerEvent),t.on(`combo:${e}`,this.onTriggerEvent),document.addEventListener("click",this.onMenuItemClick)}unbindEvents(){const{graph:t}=this.context,{trigger:e}=this.options;t.off(`canvas:${e}`,this.onTriggerEvent),t.off(`node:${e}`,this.onTriggerEvent),t.off(`edge:${e}`,this.onTriggerEvent),t.off(`combo:${e}`,this.onTriggerEvent),document.removeEventListener("click",this.onMenuItemClick)}}xh.defaultOptions={trigger:"contextmenu",offset:[4,4],loadingContent:'
Loading...
',getContent:()=>"It is a empty context menu.",enable:()=>!0};class Eh extends hr{constructor(t,e){super(t,Object.assign({},Eh.defaultOptions,e)),this.edgeBundles={},this.edgePoints={},this.onBundle=()=>{const{model:r,element:i}=this.context,a=r.getEdgeData();this.divideEdges(this.options.divisions);const{cycles:s,iterRate:o,divRate:l}=this.options;let{lambda:c,divisions:u,iterations:h}=this.options;for(let d=0;d{var p;if(g.source===g.target)return;const y=At(g);v[y]=this.getEdgeForces(g,u,c);for(let b=0;b{const f=At(d),v=i.getElement(f);v==null||v.update({d:hv(this.edgePoints[f])})})},this.bindEvents()}get nodeMap(){const t=this.context.model.getNodeData();return Object.fromEntries(t.map(e=>[At(e),Ns(ir(e))]))}divideEdges(t){this.context.model.getEdgeData().forEach(r=>{var i;const a=At(r);(i=this.edgePoints)[a]||(i[a]=[]);const s=this.nodeMap[r.source],o=this.nodeMap[r.target];if(t===1)this.edgePoints[a].push(s),this.edgePoints[a].push(Fi(Re(s,o),2)),this.edgePoints[a].push(o);else{const c=(this.edgePoints[a].length===0?xn(s,o):sD(this.edgePoints[a]))/(t+1);let u=c;const h=[s];for(let d=1;du;){const p=u/g,y=Re(f,Bi(un(v,f),p));h.push(y),g-=u,u=c}u-=g}h.push(o),this.edgePoints[a]=h}})}getVectorPosition(t){const e=this.nodeMap[t.source],r=this.nodeMap[t.target],[i,a]=un(r,e),s=xn(e,r);return{source:e,target:r,vx:i,vy:a,length:s}}measureEdgeCompatibility(t,e){const r=this.getVectorPosition(t),i=this.getVectorPosition(e),a=nD(r,i),s=rD(r,i),o=iD(r,i),l=aD(r,i);return a*s*o*l}getEdgeBundles(){const t={},e=this.options.bundleThreshold,r=this.context.model.getEdgeData();return r.forEach((i,a)=>{r.forEach((s,o)=>{var l,c;if(o<=a)return;this.measureEdgeCompatibility(i,s)>=e&&(t[l=At(i)]||(t[l]=[]),t[At(i)].push(s),t[c=At(s)]||(t[c]=[]),t[At(s)].push(i))})}),t}getSpringForce(t,e){const{pre:r,cur:i,next:a}=t;return Bi(un(Re(r,a),Bi(i,2)),e)}getElectrostaticForce(t,e){aa(this.edgeBundles)&&(this.edgeBundles=this.getEdgeBundles());const r=this.edgeBundles[At(e)];let i=[0,0];return r==null||r.forEach(a=>{const s=this.edgePoints[At(a)][t],o=this.edgePoints[At(e)][t],l=un(s,o),c=xn(s,o);i=Re(i,Bi(l,1/c))}),i}getEdgeForces(t,e,r){const i=this.nodeMap[t.source],a=this.nodeMap[t.target],s=this.options.K/(xn(i,a)*(e+1)),o=[[0,0]],l=At(t);for(let c=1;cMath.abs(AN([n.vx,n.vy],[t.vx,t.vy])/(n.length*t.length)),rD=(n,t)=>{const e=(n.length+t.length)/2;return 2/(e/Math.min(n.length,t.length)+Math.max(n.length,t.length)/e)},iD=(n,t)=>{const e=(n.length+t.length)/2,r=Fi(Re(n.source,n.target),2),i=Fi(Re(t.source,t.target),2);return e/(e+xn(r,i))},Yb=(n,t)=>{if(t.source[0]===t.target[0])return[t.source[0],n[1]];if(t.source[1]===t.target[1])return[n[0],t.source[1]];const e=(t.source[1]-t.target[1])/(t.source[0]-t.target[0]),r=(e*e*t.source[0]+e*(n[1]-t.source[1])+n[0])/(e*e+1),i=e*(r-t.source[0])+t.source[1];return[r,i]},Hb=(n,t)=>{const e=Yb(t.source,n),r=Yb(t.target,n),i=Fi(Re(e,r),2),a=Fi(Re(n.source,n.target),2);return xn(e,r)===0?0:Math.max(0,1-2*xn(a,i)/xn(e,r))},aD=(n,t)=>Math.min(Hb(n,t),Hb(t,n)),sD=n=>{let t=0;for(let e=1;e{if(this.options.trigger==="drag"&&this.isLensOn)return;const i=br(r.canvas);this.renderLens(i),this.renderFocusElements()},this.renderLens=r=>{const i=Object.assign({},oD,this.options.style);this.isLensOn||(this.lens=new Rs({style:i}),this.canvas.appendChild(this.lens)),Object.assign(i,zi(r),{size:this.r*2}),this.lens.update(i)},this.getFilterData=()=>{const{filter:r}=this.options,{model:i}=this.context,a=i.getData();if(!r)return a;const{nodes:s,edges:o,combos:l}=a;return{nodes:s.filter(c=>r(At(c),"node")),edges:o.filter(c=>r(At(c),"edge")),combos:l.filter(c=>r(At(c),"combo"))}},this.getFocusElements=r=>{const{nodes:i,edges:a}=this.getFilterData(),s=i.filter(c=>xn(ir(c),r)At(c)),l=a.filter(c=>{const{source:u,target:h}=c,d=o.includes(u),f=o.includes(h);switch(this.options.nodeType){case"both":return d&&f;case"either":return d!==f;case"source":return d&&!f;case"target":return!d&&f;default:return!1}});return{nodes:s,edges:l}},this.renderFocusElements=()=>{const{element:r,graph:i}=this.context;if(!this.isLensOn)return;const a=this.lens.getCenter(),{nodes:s,edges:o}=this.getFocusElements(a),l=new Set,c=u=>{const h=At(u);l.add(h);const d=r.getElement(h);if(!d)return;const f=this.shapes.get(h)||d.cloneNode();f.setPosition(d.getPosition()),f.id=d.id,this.shapes.has(h)?Object.entries(d.attributes).forEach(([p,y])=>{f.style[p]!==y&&(f.style[p]=y)}):(this.canvas.appendChild(f),this.shapes.set(h,f));const v=i.getElementType(h),g=this.getElementStyle(v,u);f.update(g)};s.forEach(c),o.forEach(c),this.shapes.forEach((u,h)=>{l.has(h)||(u.destroy(),this.shapes.delete(h))})},this.scaleRByWheel=r=>{var i;this.options.preventDefault&&r.preventDefault();const{clientX:a,clientY:s,deltaX:o,deltaY:l}=r,{graph:c,canvas:u}=this.context,h=c.getCanvasByClient([a,s]),d=(i=this.lens)===null||i===void 0?void 0:i.getCenter();if(!this.isLensOn||xn(h,d)>this.r)return;const{maxR:f,minR:v}=this.options,g=o+l>0?1/(1-Xb):1-Xb,p=Math.min(...u.getSize())/2;this.r=Math.max(v||0,Math.min(f||p,this.r*g)),this.renderLens(d),this.renderFocusElements()},this.isLensDragging=!1,this.onDragStart=r=>{var i;const a=br(r.canvas),s=(i=this.lens)===null||i===void 0?void 0:i.getCenter();!this.isLensOn||xn(a,s)>this.r||(this.isLensDragging=!0)},this.onDrag=r=>{if(!this.isLensDragging)return;const i=br(r.canvas);this.renderLens(i),this.renderFocusElements()},this.onDragEnd=()=>{this.isLensDragging=!1},this.bindEvents()}get canvas(){return this.context.canvas.getLayer("transient")}get isLensOn(){return this.lens&&!this.lens.destroyed}getElementStyle(t,e){const r=t==="node"?this.options.nodeStyle:this.options.edgeStyle;return typeof r=="function"?r(e):r}get graphDom(){return this.context.graph.getCanvas().getContextService().getDomElement()}bindEvents(){var t;const{graph:e}=this.context,{trigger:r,scaleRBy:i}=this.options,a=e.getCanvas().getLayer();["click","drag"].includes(r)&&a.addEventListener(It.CLICK,this.onEdgeFilter),r==="pointermove"?a.addEventListener(It.POINTER_MOVE,this.onEdgeFilter):r==="drag"&&(a.addEventListener(It.DRAG_START,this.onDragStart),a.addEventListener(It.DRAG,this.onDrag),a.addEventListener(It.DRAG_END,this.onDragEnd)),i==="wheel"&&((t=this.graphDom)===null||t===void 0||t.addEventListener(It.WHEEL,this.scaleRByWheel,{passive:!1}))}unbindEvents(){var t;const{graph:e}=this.context,{trigger:r,scaleRBy:i}=this.options,a=e.getCanvas().getLayer();["click","drag"].includes(r)&&a.removeEventListener(It.CLICK,this.onEdgeFilter),r==="pointermove"?a.removeEventListener(It.POINTER_MOVE,this.onEdgeFilter):r==="drag"&&(a.removeEventListener(It.DRAG_START,this.onDragStart),a.removeEventListener(It.DRAG,this.onDrag),a.removeEventListener(It.DRAG_END,this.onDragEnd)),i==="wheel"&&((t=this.graphDom)===null||t===void 0||t.removeEventListener(It.WHEEL,this.scaleRByWheel))}update(t){var e;this.unbindEvents(),super.update(t),this.r=(e=t.r)!==null&&e!==void 0?e:this.r,this.bindEvents()}destroy(){this.unbindEvents(),this.isLensOn&&this.lens.destroy(),this.shapes.forEach((t,e)=>{t.destroy(),this.shapes.delete(e)}),super.destroy()}}wh.defaultOptions={trigger:"pointermove",r:60,nodeType:"both",filter:()=>!0,style:{lineWidth:2},nodeStyle:{label:!1},edgeStyle:{label:!0},scaleRBy:"wheel",preventDefault:!0};const lD={fill:"#ccc",fillOpacity:.1,lineWidth:2,stroke:"#000",strokeOpacity:.8,labelFontSize:12},Kb=.05,Qb=.1;class Sh extends hr{constructor(t,e){super(t,Object.assign({},Sh.defaultOptions,e)),this.r=this.options.r,this.d=this.options.d,this.onCreateFisheye=r=>{if(this.options.trigger==="drag"&&this.isLensOn)return;const i=br(r.canvas);this.onMagnify(i)},this.onMagnify=r=>{r.some(isNaN)||(this.renderLens(r),this.renderFocusElements())},this.renderLens=r=>{const i=Object.assign({},lD,this.options.style);this.isLensOn||(this.lens=new Rs({style:i}),this.canvas.appendChild(this.lens)),Object.assign(i,zi(r),{size:this.r*2,label:this.options.showDPercent,labelText:this.getDPercent()}),this.lens.update(i)},this.getDPercent=()=>{const{minD:r,maxD:i}=this.options;return`${Math.round((this.d-r)/(i-r)*100)}%`},this.prevMagnifiedStyleMap=new Map,this.prevOriginStyleMap=new Map,this.renderFocusElements=()=>{if(!this.isLensOn)return;const{graph:r}=this.context,i=this.lens.getCenter(),a=(this.d+1)*this.r,s=new Map,o=new Map;r.getNodeData().forEach(c=>{const u=ir(c),h=xn(u,i);if(h>this.r)return;const d=a*h/(this.d*h+this.r),[f,v]=u,[g,p]=i,y=(f-g)/h,b=(v-p)/h,E=[g+d*y,p+d*b],O=At(c),k=this.getNodeStyle(c),R=_s(r.getElementRenderStyle(O),Object.keys(k));s.set(O,Object.assign(Object.assign({},zi(E)),k)),o.set(O,Object.assign(Object.assign({},zi(u)),R))}),this.updateStyle(s,o)},this.getNodeStyle=r=>{const{nodeStyle:i}=this.options;return typeof i=="function"?i(r):i},this.updateStyle=(r,i)=>{const{graph:a,element:s}=this.context,{enter:o,exit:l,keep:c}=ja(Array.from(this.prevMagnifiedStyleMap.keys()),Array.from(r.keys()),d=>d),u=new Set,h=(d,f)=>{const v=s.getElement(d);v==null||v.update(f),a.getRelatedEdgesData(d).forEach(g=>{u.add(At(g))})};[...o,...c].forEach(d=>{h(d,r.get(d))}),l.forEach(d=>{h(d,this.prevOriginStyleMap.get(d)),this.prevOriginStyleMap.delete(d)}),u.forEach(d=>{const f=s.getElement(d);f==null||f.update({})}),this.prevMagnifiedStyleMap=r,i.forEach((d,f)=>{this.prevOriginStyleMap.has(f)||this.prevOriginStyleMap.set(f,d)})},this.isWheelValid=r=>{if(this.options.preventDefault&&r.preventDefault(),!this.isLensOn)return!1;const{clientX:i,clientY:a}=r,s=this.context.graph.getCanvasByClient([i,a]),o=this.lens.getCenter();return!(xn(s,o)>this.r)},this.scaleR=r=>{const{maxR:i,minR:a}=this.options,s=r?1/(1-Kb):1-Kb,o=Math.min(...this.context.canvas.getSize())/2;this.r=Math.max(a||0,Math.min(i||o,this.r*s))},this.scaleD=r=>{const{maxD:i,minD:a}=this.options,s=r?this.d+Qb:this.d-Qb;this.d=Math.max(a,Math.min(i,s))},this.scaleRByWheel=r=>{if(!this.isWheelValid(r))return;const{deltaX:i,deltaY:a}=r;this.scaleR(i+a>0);const s=this.lens.getCenter();this.onMagnify(s)},this.scaleDByWheel=r=>{if(!this.isWheelValid(r))return;const{deltaX:i,deltaY:a}=r;this.scaleD(i+a>0);const s=this.lens.getCenter();this.onMagnify(s)},this.isDragValid=r=>{if(this.options.preventDefault&&r.preventDefault(),!this.isLensOn)return!1;const i=br(r.canvas),a=this.lens.getCenter();return!(xn(i,a)>this.r)},this.isLensDragging=!1,this.onDragStart=r=>{this.isDragValid(r)&&(this.isLensDragging=!0)},this.onDrag=r=>{if(!this.isLensDragging)return;const i=br(r.canvas);this.onMagnify(i)},this.onDragEnd=()=>{this.isLensDragging=!1},this.scaleRByDrag=r=>{if(!this.isLensDragging)return;const{dx:i,dy:a}=r;this.scaleR(i-a>0);const s=this.lens.getCenter();this.onMagnify(s)},this.scaleDByDrag=r=>{if(!this.isLensDragging)return;const{dx:i,dy:a}=r;this.scaleD(i-a>0);const s=this.lens.getCenter();this.onMagnify(s)},this.bindEvents()}get canvas(){return this.context.canvas.getLayer("transient")}get isLensOn(){return this.lens&&!this.lens.destroyed}get graphDom(){return this.context.graph.getCanvas().getContextService().getDomElement()}bindEvents(){var t;const{graph:e}=this.context,{trigger:r,scaleRBy:i,scaleDBy:a}=this.options,s=e.getCanvas().getLayer();if(["click","drag"].includes(r)&&s.addEventListener(It.CLICK,this.onCreateFisheye),r==="pointermove"&&s.addEventListener(It.POINTER_MOVE,this.onCreateFisheye),r==="drag"||i==="drag"||a==="drag"){s.addEventListener(It.DRAG_START,this.onDragStart),s.addEventListener(It.DRAG_END,this.onDragEnd);const o=r==="drag"?this.onDrag:i==="drag"?this.scaleRByDrag:this.scaleDByDrag;s.addEventListener(It.DRAG,o)}if(i==="wheel"||a==="wheel"){const o=i==="wheel"?this.scaleRByWheel:this.scaleDByWheel;(t=this.graphDom)===null||t===void 0||t.addEventListener(It.WHEEL,o,{passive:!1})}}unbindEvents(){var t;const{graph:e}=this.context,{trigger:r,scaleRBy:i,scaleDBy:a}=this.options,s=e.getCanvas().getLayer();if(["click","drag"].includes(r)&&s.removeEventListener(It.CLICK,this.onCreateFisheye),r==="pointermove"&&s.removeEventListener(It.POINTER_MOVE,this.onCreateFisheye),r==="drag"||i==="drag"||a==="drag"){s.removeEventListener(It.DRAG_START,this.onDragStart),s.removeEventListener(It.DRAG_END,this.onDragEnd);const o=r==="drag"?this.onDrag:i==="drag"?this.scaleRByDrag:this.scaleDByDrag;s.removeEventListener(It.DRAG,o)}if(i==="wheel"||a==="wheel"){const o=i==="wheel"?this.scaleRByWheel:this.scaleDByWheel;(t=this.graphDom)===null||t===void 0||t.removeEventListener(It.WHEEL,o)}}update(t){var e,r;this.unbindEvents(),super.update(t),this.r=(e=t.r)!==null&&e!==void 0?e:this.r,this.d=(r=t.d)!==null&&r!==void 0?r:this.d,this.bindEvents()}destroy(){var t;this.unbindEvents(),this.isLensOn&&((t=this.lens)===null||t===void 0||t.destroy()),this.prevMagnifiedStyleMap.clear(),this.prevOriginStyleMap.clear(),super.destroy()}}Sh.defaultOptions={trigger:"pointermove",r:120,d:1.5,maxD:5,minD:0,showDPercent:!0,style:{},nodeStyle:{label:!0},preventDefault:!0};class Mh extends hr{constructor(t,e){super(t,Object.assign({},Mh.defaultOptions,e)),this.$el=this.context.canvas.getContainer(),this.graphSize=[0,0],this.onFullscreenChange=()=>{var r,i,a,s;const o=!!document.fullscreenElement;this.options.autoFit&&this.setGraphSize(o),o?(i=(r=this.options).onEnter)===null||i===void 0||i.call(r):(s=(a=this.options).onExit)===null||s===void 0||s.call(a)},this.shortcut=new vo(t.graph),this.bindEvents(),this.style=document.createElement("style"),document.head.appendChild(this.style),this.style.innerHTML=` :not(:root):fullscreen::backdrop { background: transparent; } `}bindEvents(){this.unbindEvents(),this.shortcut.unbindAll();const{request:t=[],exit:e=[]}=this.options.trigger;this.shortcut.bind(t,this.request),this.shortcut.bind(e,this.exit),["webkitfullscreenchange","mozfullscreenchange","fullscreenchange","MSFullscreenChange"].forEach(i=>{document.addEventListener(i,this.onFullscreenChange,!1)})}unbindEvents(){this.shortcut.unbindAll(),["webkitfullscreenchange","mozfullscreenchange","fullscreenchange","MSFullscreenChange"].forEach(e=>{document.removeEventListener(e,this.onFullscreenChange,!1)})}setGraphSize(t=!0){var e,r;let i,a;t?(i=((e=globalThis.screen)===null||e===void 0?void 0:e.width)||0,a=((r=globalThis.screen)===null||r===void 0?void 0:r.height)||0,this.graphSize=this.context.graph.getSize()):[i,a]=this.graphSize,this.context.graph.setSize(i,a),this.context.graph.render()}request(){document.fullscreenElement||!cD()||this.$el.requestFullscreen().catch(t=>{qr.warn(`Error attempting to enable full-screen: ${t.message} (${t.name})`)})}exit(){document.fullscreenElement&&document.exitFullscreen()}update(t){this.unbindEvents(),super.update(t),this.bindEvents()}destroy(){this.exit(),this.style.remove(),super.destroy()}}Mh.defaultOptions={trigger:{},autoFit:!0};function cD(){return document.fullscreenEnabled||Reflect.get(document,"webkitFullscreenEnabled")||Reflect.get(document,"mozFullscreenEnabled")||Reflect.get(document,"msFullscreenEnabled")}class Ah extends hr{constructor(t,e){super(t,Object.assign({},Ah.defaultOptions,e)),this.$element=wo("grid-line",!0),this.offset=[0,0],this.currentScale=1,this.followZoom=i=>{const{data:{scale:a,origin:s}}=i;if(!a||s===void 0&&this.context.viewport===void 0)return;const o=this.currentScale;this.currentScale=a;const l=a/o,c=Bi(s||this.context.graph.getCanvasCenter(),1-l),u=this.baseSize*a,h=Bi(this.offset,l),d=Vf(h,u),f=Re(d,c);this.$element.style.backgroundSize=`${u}px ${u}px`,this.$element.style.backgroundPosition=`${f[0]}px ${f[1]}px`,this.offset=Vf(f,u)},this.followTranslate=i=>{if(!this.options.follow)return;const{data:{translate:a}}=i;a&&this.updateOffset(a)},this.onTransform=i=>{const a=this.parseFollow(this.options.follow);a.zoom&&this.followZoom(i),a.translate&&this.followTranslate(i)},this.context.canvas.getContainer().prepend(this.$element),this.baseSize=this.options.size,this.updateStyle(),this.bindEvents()}update(t){super.update(t),t.size!==void 0&&(this.baseSize=t.size),this.updateStyle()}bindEvents(){const{graph:t}=this.context;t.on(Xt.AFTER_TRANSFORM,this.onTransform)}updateStyle(){const{stroke:t,lineWidth:e,border:r,borderLineWidth:i,borderStroke:a,borderStyle:s}=this.options,o=this.baseSize*this.currentScale;Object.assign(this.$element.style,{border:r?`${i}px ${s} ${a}`:"none",backgroundImage:`linear-gradient(${t} ${e}px, transparent ${e}px), linear-gradient(90deg, ${t} ${e}px, transparent ${e}px)`,backgroundSize:`${o}px ${o}px`,backgroundRepeat:"repeat"})}updateOffset(t){const e=this.baseSize*this.currentScale;this.offset=Vf(Re(this.offset,t),e),this.$element.style.backgroundPosition=`${this.offset[0]}px ${this.offset[1]}px`}parseFollow(t){var e,r;return Uo(t)?{translate:t,zoom:t}:{translate:(e=t==null?void 0:t.translate)!==null&&e!==void 0?e:!1,zoom:(r=t==null?void 0:t.zoom)!==null&&r!==void 0?r:!1}}destroy(){this.context.graph.off(Xt.AFTER_TRANSFORM,this.onTransform),this.$element.remove(),super.destroy()}}Ah.defaultOptions={border:!0,borderLineWidth:1,borderStroke:"#eee",borderStyle:"solid",lineWidth:1,size:20,stroke:"#eee"};function Hv(n){const t={Added:new Map,Updated:new Map,Removed:new Map};return n.forEach(e=>{const{type:r,value:i}=e,a=At(i);if(r==="NodeAdded"||r==="EdgeAdded"||r==="ComboAdded")t.Added.set(a,e);else if(r==="NodeUpdated"||r==="EdgeUpdated"||r==="ComboUpdated")if(t.Added.has(a))t.Added.set(a,{type:r.replace("Updated","Added"),value:i});else if(t.Updated.has(a)){const{original:s}=t.Updated.get(a);t.Updated.set(a,{type:r,value:i,original:s})}else t.Removed.has(a)||t.Updated.set(a,e);else(r==="NodeRemoved"||r==="EdgeRemoved"||r==="ComboRemoved")&&(t.Added.has(a)?t.Added.delete(a):(t.Updated.has(a)&&t.Updated.delete(a),t.Removed.set(a,e)))}),[...Array.from(t.Added.values()),...Array.from(t.Updated.values()),...Array.from(t.Removed.values())]}function qb(n){const{NodeAdded:t=[],NodeUpdated:e=[],NodeRemoved:r=[],EdgeAdded:i=[],EdgeUpdated:a=[],EdgeRemoved:s=[],ComboAdded:o=[],ComboUpdated:l=[],ComboRemoved:c=[]}=qc(n,u=>u.type);return{add:{nodes:t,edges:i,combos:o},update:{nodes:e,edges:a,combos:l},remove:{nodes:r,edges:s,combos:c}}}function Jb(n,t){for(const e in n)Fn(n[e])&&!Array.isArray(n[e])&&n[e]!==null?(t[e]||(t[e]={}),Jb(n[e],t[e])):t[e]===void 0&&(t[e]=hl(e))}function uD(n,t=!1,e){const r={animation:t,current:{add:{},update:{},remove:{}},original:{add:{},update:{},remove:{}}},{add:i,update:a,remove:s}=qb(Hv(n));return["nodes","edges","combos"].forEach(o=>{a[o]&&a[o].forEach(l=>{var c,u;const h=Object.assign({},l.value);let d=Object.assign({},l.original);if(e){const f=e.graph.getElementType(At(l.original)),v=f==="edge"?"stroke":"fill",g=e.element.getElementComputedStyle(f,l.original);d=Object.assign(Object.assign({},l.original),{style:Object.assign({[v]:g[v]},l.original.style)})}Jb(h,d),(c=r.current.update)[o]||(c[o]=[]),r.current.update[o].push(h),(u=r.original.update)[o]||(u[o]=[]),r.original.update[o].push(d)}),i[o]&&i[o].forEach(l=>{var c,u;const h=Object.assign({},l.value);(c=r.current.add)[o]||(c[o]=[]),r.current.add[o].push(h),(u=r.original.remove)[o]||(u[o]=[]),r.original.remove[o].push(h)}),s[o]&&s[o].forEach(l=>{var c,u;const h=Object.assign({},l.value);(c=r.current.remove)[o]||(c[o]=[]),r.current.remove[o].push(h),(u=r.original.add)[o]||(u[o]=[]),r.original.add[o].push(h)})}),r}class Th extends hr{constructor(t,e){super(t,Object.assign({},Th.defaultOptions,e)),this.batchChanges=null,this.batchAnimation=!1,this.undoStack=[],this.redoStack=[],this.freezed=!1,this.executeCommand=(i,a=!0)=>{var s,o,l;this.freezed=!0,(o=(s=this.options).executeCommand)===null||o===void 0||o.call(s,i);const c=a?i.original:i.current;this.context.graph.addData(c.add),this.context.graph.updateData(c.update),this.context.graph.removeData(yy(c.remove,!1)),(l=this.context.element)===null||l===void 0||l.draw({silence:!0,animation:i.animation}),this.freezed=!1},this.addCommand=i=>{var a;if(!this.freezed){if(i.type===Xt.AFTER_DRAW){const{dataChanges:s=[],animation:o=!0}=i.data;if(!((a=this.context.batch)===null||a===void 0)&&a.isBatching){if(!this.batchChanges)return;this.batchChanges.push(s),this.batchAnimation&&(this.batchAnimation=o);return}this.batchChanges=[s],this.batchAnimation=o}this.undoStackPush(uD(this.batchChanges.flat(),this.batchAnimation,this.context)),this.notify(Ia.ADD,this.undoStack[this.undoStack.length-1])}},this.initBatchCommand=i=>{const{initiate:a}=i.data;this.batchAnimation=!1,a?this.batchChanges=[]:this.undoStack.pop()||(this.batchChanges=null)},this.emitter=new Xu;const{graph:r}=this.context;r.on(Xt.AFTER_DRAW,this.addCommand),r.on(Xt.BATCH_START,this.initBatchCommand),r.on(Xt.BATCH_END,this.addCommand)}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}undo(){var t,e,r,i;const a=this.undoStack.pop();if(a){if(this.executeCommand(a),((e=(t=this.options).beforeAddCommand)===null||e===void 0?void 0:e.call(t,a,!1))===!1)return;this.redoStack.push(a),(i=(r=this.options).afterAddCommand)===null||i===void 0||i.call(r,a,!1),this.notify(Ia.UNDO,a)}return this}redo(){const t=this.redoStack.pop();return t&&(this.executeCommand(t,!1),this.undoStackPush(t),this.notify(Ia.REDO,t)),this}undoAndCancel(){const t=this.undoStack.pop();return t&&(this.executeCommand(t,!1),this.redoStack=[],this.notify(Ia.CANCEL,t)),this}undoStackPush(t){var e,r,i,a;const{stackSize:s}=this.options;s!==0&&this.undoStack.length>=s&&this.undoStack.shift(),((r=(e=this.options).beforeAddCommand)===null||r===void 0?void 0:r.call(e,t,!0))!==!1&&(this.undoStack.push(t),(a=(i=this.options).afterAddCommand)===null||a===void 0||a.call(i,t,!0))}clear(){this.undoStack=[],this.redoStack=[],this.batchChanges=null,this.batchAnimation=!1,this.notify(Ia.CLEAR,null)}notify(t,e){this.emitter.emit(t,{cmd:e}),this.emitter.emit(Ia.CHANGE,{cmd:e})}on(t,e){this.emitter.on(t,e)}destroy(){const{graph:t}=this.context;t.off(Xt.AFTER_DRAW,this.addCommand),t.off(Xt.BATCH_START,this.initBatchCommand),t.off(Xt.BATCH_END,this.addCommand),this.emitter.off(),super.destroy(),this.undoStack=[],this.redoStack=[]}}Th.defaultOptions={stackSize:0};const Xv={toXy(n,t){if(!t)return[...n];const e=t[0].slice(1),r=t[1].slice(1);return n.map(i=>[i[e],i[r]])},fromXy(n,t){if(!t)return[...n];const e=t[0].slice(1),r=t[1].slice(1);return n.map(([i,a])=>({[e]:i,[r]:a}))}};class hD{constructor(t,e){this._cells=[],this._cellSize=e,this._reverseCellSize=1/e;for(const r of t){const i=this.coordToCellNum(r[0]),a=this.coordToCellNum(r[1]);this._cells[i]||(this._cells[i]=[]),this._cells[i][a]||(this._cells[i][a]=[]),this._cells[i][a].push(r)}}cellPoints(t,e){var r;return((r=this._cells[t])===null||r===void 0?void 0:r[e])||[]}rangePoints(t){const e=this.coordToCellNum(t[0]),r=this.coordToCellNum(t[1]),i=this.coordToCellNum(t[2]),a=this.coordToCellNum(t[3]),s=[];for(let o=e;o<=i;o++)for(let l=r;l<=a;l++){const c=this.cellPoints(o,l);for(const u of c)s.push(u)}return s}removePoint(t){const e=this.coordToCellNum(t[0]),r=this.coordToCellNum(t[1]),i=this._cells[e][r],a=i.findIndex(([s,o])=>s===t[0]&&o===t[1]);return a>-1&&i.splice(a,1),i}trunc(t){return Math.trunc(t)}coordToCellNum(t){return this.trunc(t*this._reverseCellSize)}extendBbox(t,e){return[t[0]-e*this._cellSize,t[1]-e*this._cellSize,t[2]+e*this._cellSize,t[3]+e*this._cellSize]}}function dD(n,t){return new hD(n,t)}const $b=+(Math.pow(2,27)+1);function Oh(n,t,e){const r=n*t,i=$b*n,a=i-n,s=i-a,o=n-s,l=$b*t,c=l-t,u=l-c,h=t-u,v=r-s*u-o*u-s*h,g=o*h-v;return e?(e[0]=g,e[1]=r,e):[g,r]}function fD(n,t,e){const r=n+t,i=r-n,a=r-i,s=t-i,o=n-a;return e?(e[0]=o+s,e[1]=r,e):[o+s,r]}function vD(n,t){const e=n.length;if(e===1){const o=Oh(n[0],t);return o[0]?o:[o[1]]}const r=new Array(2*e),i=[.1,.1],a=[.1,.1];let s=0;Oh(n[0],t,i),i[0]&&(r[s++]=i[0]);for(let o=1;o=r?(v=u,o+=1,o=r?(v=u,o+=1,o0){if(a<=0)return s;o=i+a}else if(i<0){if(a>=0)return s;o=-(i+a)}else return s;const l=bD*o;return s>=l||s<=-l?s:MD(t,e,r)},function(t,e,r,i){const a=t[0]-i[0],s=e[0]-i[0],o=r[0]-i[0],l=t[1]-i[1],c=e[1]-i[1],u=r[1]-i[1],h=t[2]-i[2],d=e[2]-i[2],f=r[2]-i[2],v=s*u,g=o*c,p=o*l,y=a*u,b=a*c,E=s*l,O=h*(v-g)+d*(p-y)+f*(b-E),k=(Math.abs(v)+Math.abs(g))*Math.abs(h)+(Math.abs(p)+Math.abs(y))*Math.abs(d)+(Math.abs(b)+Math.abs(E))*Math.abs(f),R=xD*k;return O>R||-O>R?O:AD(t,e,r,i)}];function TD(n){let t=Ws[n.length];return t||(t=Ws[n.length]=Nh(n.length)),t.apply(void 0,...n)}function OD(n,t,e,r,i,a,s){return function(...l){switch(l.length){case 0:case 1:return 0;case 2:return r(l[0],l[1]);case 3:return i(l[0],l[1],l[2]);case 4:return a(l[0],l[1],l[2],l[3]);case 5:return s(l[0],l[1],l[2],l[3],l[4])}return n(l)}}function CD(){for(;Ws.length<=tx;)Ws.push(Nh(Ws.length));const n=OD(void 0,TD,...Ws);for(let t=0;t<=tx;++t)n[t]=Ws[t];return n}var _l=CD();const ex=_l[3];function ND(n){const t=n.length;if(t<3){const o=new Array(t);for(let l=0;l{const c=n[o][0]-n[l][0];return c||n[o][1]-n[l][1]});const r=[e[0],e[1]],i=[e[0],e[1]];for(let o=2;o1&&ex(n[r[u-2]],n[r[u-1]],c)<=0;)u-=1,r.pop();for(r.push(l),u=i.length;u>1&&ex(n[i[u-2]],n[i[u-1]],c)>=0;)u-=1,i.pop();i.push(l)}const a=new Array(i.length+r.length-2);let s=0;for(let o=0,l=r.length;o0;--o)a[s++]=i[o];return a}function kD(n,t,e,r){for(let i=0;i<2;++i){const a=n[i],s=t[i],[o,l]=[Math.min(a,s),Math.max(a,s)],c=e[i],u=r[i],[h,d]=[Math.min(c,u),Math.max(c,u)];if(d0&&a>0||i<0&&a<0)return!1;const s=_l(e,n,t),o=_l(r,n,t);return s>0&&o>0||s<0&&o<0?!1:i===0&&a===0&&s===0&&o===0?kD(n,t,e,r):!0}function RD(n){const t=[n[0]];let e=n[0];for(let r=1;r=0;a--)n[a][0]r&&(r=n[a][0]),n[a][1]>i&&(i=n[a][1]);return[r-t,i-e]}function DD(n){return[Math.min(n[0][0],n[1][0]),Math.min(n[0][1],n[1][1]),Math.max(n[0][0],n[1][0]),Math.max(n[0][1],n[1][1])]}function ID(n,t,e){let r=null,i=ax,a=ax,s,o;for(let l=0;li&&o>a&&!rx([n[0],t[l]],e)&&!rx([n[1],t[l]],e)&&(i=s,a=o,r=t[l]);return r}function ix(n,t,e,r,i){let a=!1;for(let s=0;sh||e[1]>d));h>=e[0]&&d>=e[1]&&i.add(l),f!==null&&(n.splice(s+1,0,f),r.removePoint(f),a=!0)}return a?ix(n,t,e,r,i):n}function BD(n,t,e){const r=t||20,i=RD(LD(Xv.toXy(n,e)));if(i.length<4){const h=i.concat([i[0]]);return e?Xv.fromXy(h,e):h}const a=_D(i),s=[a[0]*sx,a[1]*sx],o=ND(i).reverse().map(h=>i[h]);o.push(o[0]);const l=i.filter(function(h){return o.indexOf(h)<0}),c=Math.ceil(1/(i.length/(a[0]*a[1]))),u=ix(o,Math.pow(r,2),s,dD(l,c),new Set);return e?Xv.fromXy(u,e):u}const ax=Math.cos(90/(180/Math.PI)),sx=.6;function FD(n,t,e){if(n.length===1)return zD(n[0],t,e);if(n.length===2)return ox(n,t,e);if(n.length===3){const[r,i,a]=Yf(n);if(Ny(r,i,a))return ox([r,a],t,e)}switch(e){case"smooth":return WD(n,t);case"sharp":return GD(n,t);case"rounded":default:return jD(n,t)}}const zD=(n,t,e)=>{if(e==="sharp")return[["M",n[0]-t,n[1]-t],["L",n[0]+t,n[1]-t],["L",n[0]+t,n[1]+t],["L",n[0]-t,n[1]+t],["Z"]];const r=[t,t,0,0,0];return[["M",n[0],n[1]-t],["A",...r,n[0],n[1]+t],["A",...r,n[0],n[1]-t]]},ox=(n,t,e)=>{const r=[t,t,0,0,0],i=e==="sharp"?Re(n[0],Wa(pa(un(n[0],n[1])),t)):n[0],a=e==="sharp"?Re(n[1],Wa(pa(un(n[1],n[0])),t)):n[1],s=Wa(pa(vu(un(i,a),!1)),t),o=Wa(s,-1),l=Re(i,s),c=Re(a,s),u=Re(a,o),h=Re(i,o);return e==="sharp"?[["M",l[0],l[1]],["L",c[0],c[1]],["L",u[0],u[1]],["L",h[0],h[1]],["Z"]]:[["M",l[0],l[1]],["L",c[0],c[1]],["A",...r,u[0],u[1]],["L",h[0],h[1]],["A",...r,l[0],l[1]]]},jD=(n,t)=>{const e=Yf(n).map((o,l)=>{const c=(l-2+n.length)%n.length,u=(l-1+n.length)%n.length,h=(l+1)%n.length,d=n[c],f=n[u],v=n[h],g=un(d,f),p=un(f,o),y=un(o,v),b=(z,B)=>Zf(z,B,!0)Wa(pa(vu(z,!1)),t),R=k(p);return[{p:Ns(E?Re(f,k(g)):Re(f,R)),concave:E&&f},{p:Ns(O?Re(o,k(y)):Re(o,R)),concave:O&&o}]}),r=[t,t,0,0,0],i=e.findIndex((o,l)=>!e[(l-1+e.length)%e.length][0].concave&&!e[(l-1+e.length)%e.length][1].concave&&!o[0].concave&&!o[0].concave&&!o[1].concave),a=e.slice(i).concat(e.slice(0,i));let s=[];return a.flatMap((o,l)=>{const c=[],u=a[e.length-1];return l===0&&c.push(["M",...u[1].p]),o[0].concave?s.push(o[0].p,o[1].p):c.push(["A",...r,...o[0].p]),o[1].concave?s.unshift(o[1].p):c.push(["L",...o[1].p]),s.length===3&&(c.pop(),c.push(["C",...s.flat()]),s=[]),c})},WD=(n,t)=>{const e=Yf(n).map((r,i)=>{const a=n[(i+1)%n.length];return{p:r,v:pa(un(a,r))}});return e.forEach((r,i)=>{const a=i>0?i-1:n.length-1,s=e[a].v,o=pa(Re(s,Wa(r.v,Zf(s,r.v,!0)r.p))},GD=(n,t)=>{const r=n.map((a,s)=>{const o=n[s===0?n.length-1:s-1],l=pl(Wa(pa(vu(un(o,a),!1)),t));return[Re(o,l),Re(a,l)]}).flat();return r.map((a,s)=>{if(s%2===0)return null;const o=[r[(s-1)%r.length],r[s%r.length]],l=[r[(s+1)%r.length],r[(s+2)%r.length]];return Uf(o,l,!0)}).filter(Boolean).map((a,s)=>[s===0?"M":"L",a[0],a[1]]).concat([["Z"]])};var ZD=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(n);i{if(!this.shape)this.shape=new wl({style:this.getHullStyle()}),this.context.canvas.appendChild(this.shape);else{const r=!Wn(this.optionsCache,this.options);this.shape.update(this.getHullStyle(r))}this.optionsCache=Object.assign({},this.options)},this.updateHullPath=r=>{this.shape&&this.options.members.includes(At(r.data))&&this.shape.update({d:this.getHullPath(!0)})},this.getHullPath=(r=!1)=>{const{graph:i}=this.context,a=this.getMember();if(a.length===0)return"";const s=a.map(c=>i.getNodeData(c)),o=BD(s.map(ir),this.options.concavity).slice(1).reverse(),l=o.flatMap(c=>s.filter(u=>Wn(ir(u),c)).map(At));return Wn(l,this.hullMemberIds)&&!r?this.path:(this.hullMemberIds=l,this.path=FD(o,this.getPadding(),this.options.corner),this.path)},this.bindEvents()}bindEvents(){this.context.graph.on(Xt.AFTER_RENDER,this.drawHull),this.context.graph.on(Xt.AFTER_ELEMENT_UPDATE,this.updateHullPath)}unbindEvents(){this.context.graph.off(Xt.AFTER_RENDER,this.drawHull),this.context.graph.off(Xt.AFTER_ELEMENT_UPDATE,this.updateHullPath)}getHullStyle(t){const e=this.options,{members:r,padding:i,corner:a}=e,s=ZD(e,["members","padding","corner"]);return Object.assign(Object.assign({},s),{d:this.getHullPath(t)})}getPadding(){const{graph:t}=this.context;return this.hullMemberIds.reduce((r,i)=>{const{halfExtents:a}=t.getElementRenderBounds(i),s=Math.max(a[0],a[1]);return Math.max(r,s)},0)+this.options.padding}addMember(t){const e=Array.isArray(t)?t:[t];this.options.members=[...new Set([...this.options.members,...e])],this.shape.update({d:this.getHullPath()})}removeMember(t){const e=Array.isArray(t)?t:[t];this.options.members=this.options.members.filter(r=>!e.includes(r)),e.some(r=>this.hullMemberIds.includes(r))&&this.shape.update({d:this.getHullPath()})}updateMember(t){this.options.members=ue(t)?t(this.options.members):t,this.shape.update(this.getHullStyle(!0))}getMember(){return this.options.members}destroy(){this.unbindEvents(),this.shape.destroy(),this.hullMemberIds=[],super.destroy()}}kh.defaultOptions={members:[],padding:10,corner:"rounded",concavity:1/0,fill:"lightblue",fillOpacity:.2,labelOpacity:1,stroke:"blue",strokeOpacity:.2};function lx(n,t){t(n),n.children&&n.children.forEach(function(e){e&&lx(e,t)})}function Dl(n){Ph(n,!0)}function Gi(n){Ph(n,!1)}function Ph(n,t){var e=t?"visible":"hidden";lx(n,function(r){r.attr("visibility",e)})}var VD=5,cx=function(n,t,e,r){e===void 0&&(e=0),r===void 0&&(r=VD),Object.entries(t).forEach(function(i){var a=(0,Z.CR)(i,2),s=a[0],o=a[1],l=n;Object.prototype.hasOwnProperty.call(t,s)&&(o?fo(o)?(fo(n[s])||(l[s]={}),e="A"&&e<="Z"};function Le(n,t,e){e===void 0&&(e=!1);var r={};return Object.entries(n).forEach(function(i){var a=(0,Z.CR)(i,2),s=a[0],o=a[1];if(!(s==="className"||s==="class")){if(Rh(s,"show")&&Rh(hx(s,"show"),t)!==e)s===KD(t,"show")?r[s]=o:r[s.replace(new RegExp(Qv(t)),"")]=o;else if(!Rh(s,"show")&&Rh(s,t)!==e){var l=hx(s,t);l==="filter"&&typeof o=="function"||(r[l]=o)}}}),r}function So(n,t){return Object.entries(n).reduce(function(e,r){var i=(0,Z.CR)(r,2),a=i[0],s=i[1];return a.startsWith("show")?e["show".concat(t).concat(a.slice(4))]=s:e["".concat(t).concat(Qv(a))]=s,e},{})}function Ea(n,t){t===void 0&&(t=["x","y","class","className"]);var e=["transform","transformOrigin","anchor","visibility","pointerEvents","zIndex","cursor","clipPath","clipPathTargets","offsetPath","offsetPathTargets","offsetDistance","draggable","droppable"],r={},i={};return Object.entries(n).forEach(function(a){var s=(0,Z.CR)(a,2),o=s[0],l=s[1];t.includes(o)||(e.indexOf(o)!==-1?i[o]=l:r[o]=l)}),[r,i]}var qD=function(n){if(!Ur(n))return[];for(var t=[],e=0;e=this.left&&t<=this.right&&e>=this.top&&e<=this.bottom},n}();function uj(n){var t=n.getRenderBounds(),e=__read(t.min,2),r=e[0],i=e[1],a=__read(t.max,2),s=a[0],o=a[1],l=s-r,c=o-i;return new Pr(r,i,l,c)}var Zi=function(n,t){var e=function(i){return"".concat(t,"-").concat(i)},r=Object.fromEntries(Object.entries(n).map(function(i){var a=(0,Z.CR)(i,2),s=a[0],o=a[1],l=e(o);return[s,{name:l,class:".".concat(l),id:"#".concat(l),toString:function(){return l}}]}));return Object.assign(r,{prefix:e}),r};function Lh(n){return/\S+-\S+/g.test(n)?n.split("-").map(function(t){return t[0]}):n.length>2?[n[0]]:n.split("")}function Er(n){if(re(n))return[n,n,n,n];if(Ur(n)){var t=n.length;if(t===1)return[n[0],n[0],n[0],n[0]];if(t===2)return[n[0],n[1],n[0],n[1]];if(t===3)return[n[0],n[1],n[2],n[1]];if(t===4)return n}return[0,0,0,0]}function $r(n,t,e,r,i){return r===void 0&&(r=!0),i===void 0&&(i=function(a){a.node().removeChildren()}),n?e(t):(r&&i(t),null)}var dx=Zi({text:"text"},"title");function rI(n,t){var e=n.attributes,r=e.position,i=e.spacing,a=e.inset,s=e.text,o=n.getBBox(),l=t.getBBox(),c=Lh(r),u=(0,Z.CR)(Er(s?i:0),4),h=u[0],d=u[1],f=u[2],v=u[3],g=(0,Z.CR)(Er(a),4),p=g[0],y=g[1],b=g[2],E=g[3],O=(0,Z.CR)([v+d,h+f],2),k=O[0],R=O[1],z=(0,Z.CR)([E+y,p+b],2),B=z[0],V=z[1];if(c[0]==="l")return new Pr(o.x,o.y,l.width+o.width+k+B,Math.max(l.height+V,o.height));if(c[0]==="t")return new Pr(o.x,o.y,Math.max(l.width+B,o.width),l.height+o.height+R+V);var U=(0,Z.CR)([t.attributes.width||l.width,t.attributes.height||l.height],2),J=U[0],$=U[1];return new Pr(l.x,l.y,J+o.width+k+B,$+o.height+R+V)}function iI(n,t){var e=Object.entries(t).reduce(function(r,i){var a=(0,Z.CR)(i,2),s=a[0],o=a[1],l=n.node().attr(s);return l||(r[s]=o),r},{});n.styles(e)}function aI(n){var t,e,r,i,a=n,s=a.width,o=a.height,l=a.position,c=(0,Z.CR)([+s/2,+o/2],2),u=c[0],h=c[1],d=(0,Z.CR)([+u,+h,"center","middle"],4),f=d[0],v=d[1],g=d[2],p=d[3],y=Lh(l);return y.includes("l")&&(t=(0,Z.CR)([0,"start"],2),f=t[0],g=t[1]),y.includes("r")&&(e=(0,Z.CR)([+s,"end"],2),f=e[0],g=e[1]),y.includes("t")&&(r=(0,Z.CR)([0,"top"],2),v=r[0],p=r[1]),y.includes("b")&&(i=(0,Z.CR)([+o,"bottom"],2),v=i[0],p=i[1]),{x:f,y:v,textAlign:g,textBaseline:p}}var sI=function(n){(0,Z.ZT)(t,n);function t(e){return n.call(this,e,{text:"",width:0,height:0,fill:"#4a505a",fontWeight:"bold",fontSize:12,fontFamily:"sans-serif",inset:0,spacing:0,position:"top-left"})||this}return t.prototype.getAvailableSpace=function(){var e=this,r=this.attributes,i=r.width,a=r.height,s=r.position,o=r.spacing,l=r.inset,c=e.querySelector(dx.text.class);if(!c)return new Pr(0,0,+i,+a);var u=c.getBBox(),h=u.width,d=u.height,f=(0,Z.CR)(Er(o),4),v=f[0],g=f[1],p=f[2],y=f[3],b=(0,Z.CR)([0,0,+i,+a],4),E=b[0],O=b[1],k=b[2],R=b[3],z=Lh(s);if(z.includes("i"))return new Pr(E,O,k,R);z.forEach(function(Nt,Ct){var gt,pt,Pt,jt;Nt==="t"&&(gt=(0,Z.CR)(Ct===0?[d+p,+a-d-p]:[0,+a],2),O=gt[0],R=gt[1]),Nt==="r"&&(pt=(0,Z.CR)([+i-h-y],1),k=pt[0]),Nt==="b"&&(Pt=(0,Z.CR)([+a-d-v],1),R=Pt[0]),Nt==="l"&&(jt=(0,Z.CR)(Ct===0?[h+g,+i-h-g]:[0,+i],2),E=jt[0],k=jt[1])});var B=(0,Z.CR)(Er(l),4),V=B[0],U=B[1],J=B[2],$=B[3],st=(0,Z.CR)([$+U,V+J],2),ct=st[0],ft=st[1];return new Pr(E+$,O+V,k-ct,R-ft)},t.prototype.getBBox=function(){return this.title?this.title.getBBox():new Pr(0,0,0,0)},t.prototype.render=function(e,r){var i=this,a=e.width,s=e.height,o=e.position,l=e.spacing,c=(0,Z._T)(e,["width","height","position","spacing"]),u=(0,Z.CR)(Ea(c),1),h=u[0],d=aI(e),f=d.x,v=d.y,g=d.textAlign,p=d.textBaseline;$r(!!c.text,de(r),function(y){i.title=y.maybeAppendByClassName(dx.text,"text").styles(h).call(iI,{x:f,y:v,textAlign:g,textBaseline:p}).node()})},t}(Rn),Jv=function(){};function ti(n,t){return ue(n)?n.apply(void 0,(0,Z.ev)([],(0,Z.CR)(t),!1)):n}function oI(n,t){return n.reduce(function(e,r){return(e[r[t]]=e[r[t]]||[]).push(r),e},{})}function lI(n){return typeof n=="boolean"?!1:"enter"in n&&"update"in n&&"exit"in n}function fx(n){if(!n)return{enter:!1,update:!1,exit:!1};var t=["enter","update","exit"],e=Object.fromEntries(Object.entries(n).filter(function(r){var i=(0,Z.CR)(r,1),a=i[0];return!t.includes(a)}));return Object.fromEntries(t.map(function(r){return lI(n)?n[r]===!1?[r,!1]:[r,(0,Z.pi)((0,Z.pi)({},n[r]),e)]:[r,e]}))}function Mo(n,t){n?n.finished.then(t):t()}function cI(n,t){n.length===0?t():Promise.all(n.map(function(e){return e==null?void 0:e.finished})).then(t)}function vx(n,t){"update"in n?n.update(t):n.attr(t)}function gx(n,t,e){if(t.length===0)return null;if(!e){var r=t.slice(-1)[0];return vx(n,{style:r}),null}return n.animate(t,e)}function uI(n,t){return!(n.nodeName!=="text"||t.nodeName!=="text"||n.attributes.text!==t.attributes.text)}function hI(n,t,e,r){if(r===void 0&&(r="destroy"),uI(n,t))return n.remove(),[null];var i=function(){r==="destroy"?n.destroy():r==="hide"&&Gi(n),t.isVisible()&&Dl(t)};if(!e)return i(),[null];var a=e.duration,s=a===void 0?0:a,o=e.delay,l=o===void 0?0:o,c=Math.ceil(+s/2),u=+s/4,h=(0,Z.CR)(n.getGeometryBounds().center,2),d=h[0],f=h[1],v=(0,Z.CR)(t.getGeometryBounds().center,2),g=v[0],p=v[1],y=(0,Z.CR)([(d+g)/2-d,(f+p)/2-f],2),b=y[0],E=y[1],O=n.style.opacity,k=O===void 0?1:O,R=t.style.opacity,z=R===void 0?1:R,B=n.style.transform||"",V=t.style.transform||"",U=n.animate([{opacity:k,transform:"translate(0, 0) ".concat(B)},{opacity:0,transform:"translate(".concat(b,", ").concat(E,") ").concat(B)}],(0,Z.pi)((0,Z.pi)({fill:"both"},e),{duration:l+c+u})),J=t.animate([{opacity:0,transform:"translate(".concat(-b,", ").concat(-E,") ").concat(V),offset:.01},{opacity:z,transform:"translate(0, 0) ".concat(V)}],(0,Z.pi)((0,Z.pi)({fill:"both"},e),{duration:c+u,delay:l+c-u}));return Mo(J,i),[U,J]}function Vi(n,t,e){var r={},i={};return Object.entries(t).forEach(function(a){var s=(0,Z.CR)(a,2),o=s[0],l=s[1];if(!be(l)){var c=n.style[o]||n.parsedStyle[o]||0;c!==l&&(r[o]=c,i[o]=l)}}),e?gx(n,[r,i],(0,Z.pi)({fill:"both"},e)):(vx(n,i),null)}function dI(n){var t;return((t=n[0])===null||t===void 0?void 0:t.map(function(e,r){return n.map(function(i){return i[r]})}))||[]}function $v(n,t,e){e===void 0&&(e=!1);var r=n.getBBox(),i=r.width,a=r.height,s=t/Math.max(i,a);return e&&(n.style.transform="scale(".concat(s,")")),s}var px=function(n,t,e){return[["M",n-e,t],["A",e,e,0,1,0,n+e,t],["A",e,e,0,1,0,n-e,t],["Z"]]},fI=px,vI=function(n,t,e){return[["M",n-e,t-e],["L",n+e,t-e],["L",n+e,t+e],["L",n-e,t+e],["Z"]]},gI=function(n,t,e){return[["M",n-e,t],["L",n,t-e],["L",n+e,t],["L",n,t+e],["Z"]]},pI=function(n,t,e){var r=e*Math.sin(.3333333333333333*Math.PI);return[["M",n-e,t+r],["L",n,t-r],["L",n+e,t+r],["Z"]]},mI=function(n,t,e){var r=e*Math.sin(.3333333333333333*Math.PI);return[["M",n-e,t-r],["L",n+e,t-r],["L",n,t+r],["Z"]]},yI=function(n,t,e){var r=e/2*Math.sqrt(3);return[["M",n,t-e],["L",n+r,t-e/2],["L",n+r,t+e/2],["L",n,t+e],["L",n-r,t+e/2],["L",n-r,t-e/2],["Z"]]},bI=function(n,t,e){var r=e-1.5;return[["M",n-e,t-r],["L",n+e,t+r],["L",n+e,t-r],["L",n-e,t+r],["Z"]]},mx=function(n,t,e){return[["M",n,t+e],["L",n,t-e]]},xI=function(n,t,e){return[["M",n-e,t-e],["L",n+e,t+e],["M",n+e,t-e],["L",n-e,t+e]]},EI=function(n,t,e){return[["M",n-e/2,t-e],["L",n+e/2,t-e],["M",n,t-e],["L",n,t+e],["M",n-e/2,t+e],["L",n+e/2,t+e]]},wI=function(n,t,e){return[["M",n-e,t],["L",n+e,t],["M",n,t-e],["L",n,t+e]]},SI=function(n,t,e){return[["M",n-e,t],["L",n+e,t]]},yx=function(n,t,e){return[["M",n-e,t],["L",n+e,t]]},MI=yx,AI=function(n,t,e){return[["M",n-e,t],["A",e/2,e/2,0,1,1,n,t],["A",e/2,e/2,0,1,0,n+e,t]]},TI=function(n,t,e){return[["M",n-e-1,t-2.5],["L",n,t-2.5],["L",n,t+2.5],["L",n+e+1,t+2.5]]},OI=function(n,t,e){return[["M",n-e-1,t+2.5],["L",n,t+2.5],["L",n,t-2.5],["L",n+e+1,t-2.5]]},CI=function(n,t,e){return[["M",n-(e+1),t+2.5],["L",n-e/2,t+2.5],["L",n-e/2,t-2.5],["L",n+e/2,t-2.5],["L",n+e/2,t+2.5],["L",n+e+1,t+2.5]]};function NI(n,t){return[["M",n-5,t+2.5],["L",n-5,t],["L",n,t],["L",n,t-3],["L",n,t+3],["L",n+6.5,t+3]]}var kI=function(n,t,e){return[["M",n-e,t-e],["L",n+e,t],["L",n-e,t+e],["Z"]]},PI=function(n,t,e){var r=e,i=e*.2,a=e*.7;return[["M",n-r,t],["A",r,r,0,1,0,n+r,t],["A",r,r,0,1,0,n-r,t],["Z"],["M",n-a,t],["L",n-i,t],["M",n+i,t],["L",n+a,t],["M",n,t-a],["L",n,t-i],["M",n,t+i],["L",n,t+a]]},Oi=Zi({prevBtnGroup:"prev-btn-group",prevBtn:"prev-btn",nextBtnGroup:"next-btn-group",nextBtn:"next-btn",pageInfoGroup:"page-info-group",pageInfo:"page-info",playWindow:"play-window",contentGroup:"content-group",controller:"controller",clipPath:"clip-path"},"navigator"),RI=function(n){(0,Z.ZT)(t,n);function t(e){var r=n.call(this,e,{x:0,y:0,animate:{easing:"linear",duration:200,fill:"both"},buttonCursor:"pointer",buttonFill:"black",buttonD:kI(0,0,6),buttonSize:12,controllerPadding:5,controllerSpacing:5,formatter:function(i,a){return"".concat(i,"/").concat(a)},defaultPage:0,loop:!1,orientation:"horizontal",pageNumFill:"black",pageNumFontSize:12,pageNumTextAlign:"start",pageNumTextBaseline:"middle"})||this;return r.playState="idle",r.contentGroup=r.appendChild(new rr({class:Oi.contentGroup.name})),r.playWindow=r.contentGroup.appendChild(new rr({class:Oi.playWindow.name})),r.innerCurrPage=r.defaultPage,r}return Object.defineProperty(t.prototype,"defaultPage",{get:function(){var e=this.attributes.defaultPage;return Nn(e,0,Math.max(this.pageViews.length-1,0))},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"pageViews",{get:function(){return this.playWindow.children},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"controllerShape",{get:function(){return this.totalPages>1?{width:55,height:0}:{width:0,height:0}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"pageShape",{get:function(){var e=this.pageViews,r=(0,Z.CR)(dI(e.map(function(h){var d=h.getBBox(),f=d.width,v=d.height;return[f,v]})).map(function(h){return Math.max.apply(Math,(0,Z.ev)([],(0,Z.CR)(h),!1))}),2),i=r[0],a=r[1],s=this.attributes,o=s.pageWidth,l=o===void 0?i:o,c=s.pageHeight,u=c===void 0?a:c;return{pageWidth:l,pageHeight:u}},enumerable:!1,configurable:!0}),t.prototype.getContainer=function(){return this.playWindow},Object.defineProperty(t.prototype,"totalPages",{get:function(){return this.pageViews.length},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"currPage",{get:function(){return this.innerCurrPage},enumerable:!1,configurable:!0}),t.prototype.getBBox=function(){var e=n.prototype.getBBox.call(this),r=e.x,i=e.y,a=this.controllerShape,s=this.pageShape,o=s.pageWidth,l=s.pageHeight;return new Pr(r,i,o+a.width,l)},t.prototype.goTo=function(e){var r=this,i=this.attributes.animate,a=this,s=a.currPage,o=a.playState,l=a.playWindow,c=a.pageViews;if(o!=="idle"||e<0||c.length<=0||e>=c.length)return null;c[s].setLocalPosition(0,0),this.prepareFollowingPage(e);var u=(0,Z.CR)(this.getFollowingPageDiff(e),2),h=u[0],d=u[1];this.playState="running";var f=gx(l,[{transform:"translate(0, 0)"},{transform:"translate(".concat(-h,", ").concat(-d,")")}],i);return Mo(f,function(){r.innerCurrPage=e,r.playState="idle",r.setVisiblePages([e]),r.updatePageInfo()}),f},t.prototype.prev=function(){var e=this.attributes.loop,r=this.pageViews.length,i=this.currPage;if(!e&&i<=0)return null;var a=e?(i-1+r)%r:Nn(i-1,0,r);return this.goTo(a)},t.prototype.next=function(){var e=this.attributes.loop,r=this.pageViews.length,i=this.currPage;if(!e&&i>=r-1)return null;var a=e?(i+1)%r:Nn(i+1,0,r);return this.goTo(a)},t.prototype.renderClipPath=function(e){var r=this.pageShape,i=r.pageWidth,a=r.pageHeight;if(!i||!a){this.contentGroup.style.clipPath=void 0;return}this.clipPath=e.maybeAppendByClassName(Oi.clipPath,"rect").styles({width:i,height:a}),this.contentGroup.attr("clipPath",this.clipPath.node())},t.prototype.setVisiblePages=function(e){this.playWindow.children.forEach(function(r,i){e.includes(i)?Dl(r):Gi(r)})},t.prototype.adjustControllerLayout=function(){var e=this,r=e.prevBtnGroup,i=e.nextBtnGroup,a=e.pageInfoGroup,s=this.attributes,o=s.orientation,l=s.controllerPadding,c=a.getBBox(),u=c.width,h=c.height,d=(0,Z.CR)(o==="horizontal"?[-180,0]:[-90,90],2),f=d[0],v=d[1];r.setLocalEulerAngles(f),i.setLocalEulerAngles(v);var g=r.getBBox(),p=g.width,y=g.height,b=i.getBBox(),E=b.width,O=b.height,k=Math.max(p,u,E),R=o==="horizontal"?{offset:[[0,0],[p/2+l,0],[p+u+l*2,0]],textAlign:"start"}:{offset:[[k/2,-y-l],[k/2,0],[k/2,O+l]],textAlign:"center"},z=(0,Z.CR)(R.offset,3),B=(0,Z.CR)(z[0],2),V=B[0],U=B[1],J=(0,Z.CR)(z[1],2),$=J[0],st=J[1],ct=(0,Z.CR)(z[2],2),ft=ct[0],Nt=ct[1],Ct=R.textAlign,gt=a.querySelector("text");gt&&(gt.style.textAlign=Ct),r.setLocalPosition(V,U),a.setLocalPosition($,st),i.setLocalPosition(ft,Nt)},t.prototype.updatePageInfo=function(){var e,r=this,i=r.currPage,a=r.pageViews,s=r.attributes.formatter;a.length<2||((e=this.pageInfoGroup.querySelector(Oi.pageInfo.class))===null||e===void 0||e.attr("text",s(i+1,a.length)),this.adjustControllerLayout())},t.prototype.getFollowingPageDiff=function(e){var r=this.currPage;if(r===e)return[0,0];var i=this.attributes.orientation,a=this.pageShape,s=a.pageWidth,o=a.pageHeight,l=e=2,c=e.maybeAppendByClassName(Oi.controller,"g");if(Ph(c.node(),l),!!l){var u=Le(this.attributes,"button"),h=Le(this.attributes,"pageNum"),d=(0,Z.CR)(Ea(u),2),f=d[0],v=d[1],g=f.size,p=(0,Z._T)(f,["size"]),y=!c.select(Oi.prevBtnGroup.class).node(),b=c.maybeAppendByClassName(Oi.prevBtnGroup,"g").styles(v);this.prevBtnGroup=b.node();var E=b.maybeAppendByClassName(Oi.prevBtn,"path"),O=c.maybeAppendByClassName(Oi.nextBtnGroup,"g").styles(v);this.nextBtnGroup=O.node();var k=O.maybeAppendByClassName(Oi.nextBtn,"path");[E,k].forEach(function(z){z.styles((0,Z.pi)((0,Z.pi)({},p),{transformOrigin:"center"})),$v(z.node(),g,!0)});var R=c.maybeAppendByClassName(Oi.pageInfoGroup,"g");this.pageInfoGroup=R.node(),R.maybeAppendByClassName(Oi.pageInfo,"text").styles(h),this.updatePageInfo(),c.node().setLocalPosition(s+i,o/2),y&&(this.prevBtnGroup.addEventListener("click",function(){r.prev()}),this.nextBtnGroup.addEventListener("click",function(){r.next()}))}},t.prototype.render=function(e,r){var i=e.x,a=i===void 0?0:i,s=e.y,o=s===void 0?0:s;this.attr("transform","translate(".concat(a,", ").concat(o,")"));var l=de(r);this.renderClipPath(l),this.renderController(l),this.setVisiblePages([this.defaultPage]),this.goTo(this.defaultPage)},t.prototype.bindEvents=function(){var e=this,r=Cl(function(){return e.render(e.attributes,e)},50);this.playWindow.addEventListener(Be.INSERTED,r),this.playWindow.addEventListener(Be.REMOVED,r)},t}(Rn);function LI(n){var t="default";if(Fn(n)&&n instanceof Image)t="image";else if(ue(n))t="symbol";else if(Ve(n)){var e=new RegExp("data:(image|text)");n.match(e)?t="base64":/^(https?:\/\/(([a-zA-Z0-9]+-?)+[a-zA-Z0-9]+\.)+[a-zA-Z]+)(:\d+)?(\/.*)?(\?.*)?(#.*)?$/.test(n)?t="url":t="symbol"}return t}function _I(n){var t=LI(n);return["base64","url","image"].includes(t)?"image":n&&t==="symbol"?"path":null}var rn=function(n){(0,Z.ZT)(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.render=function(e,r){var i=e.x,a=i===void 0?0:i,s=e.y,o=s===void 0?0:s,l=this.getSubShapeStyle(e),c=l.symbol,u=l.size,h=u===void 0?16:u,d=(0,Z._T)(l,["symbol","size"]),f=_I(c);$r(!!f,de(r),function(v){v.maybeAppendByClassName("marker",f).attr("className","marker ".concat(f,"-marker")).call(function(g){if(f==="image"){var p=h*2;g.styles({img:c,width:p,height:p,x:a-h,y:o-h})}else{var p=h/2,y=ue(c)?c:t.getSymbol(c);g.styles((0,Z.pi)({d:y==null?void 0:y(a,o,p)},d))}})})},t.MARKER_SYMBOL_MAP=new Map,t.registerSymbol=function(e,r){t.MARKER_SYMBOL_MAP.set(e,r)},t.getSymbol=function(e){return t.MARKER_SYMBOL_MAP.get(e)},t.getSymbols=function(){return Array.from(t.MARKER_SYMBOL_MAP.keys())},t}(Rn);rn.registerSymbol("cross",xI),rn.registerSymbol("hyphen",SI),rn.registerSymbol("line",mx),rn.registerSymbol("plus",wI),rn.registerSymbol("tick",EI),rn.registerSymbol("circle",px),rn.registerSymbol("point",fI),rn.registerSymbol("bowtie",bI),rn.registerSymbol("hexagon",yI),rn.registerSymbol("square",vI),rn.registerSymbol("diamond",gI),rn.registerSymbol("triangle",pI),rn.registerSymbol("triangle-down",mI),rn.registerSymbol("line",mx),rn.registerSymbol("dot",yx),rn.registerSymbol("dash",MI),rn.registerSymbol("smooth",AI),rn.registerSymbol("hv",TI),rn.registerSymbol("vh",OI),rn.registerSymbol("hvh",CI),rn.registerSymbol("vhv",NI),rn.registerSymbol("focus",PI);function hj(n,t,e){var r=Math.round((n-e)/t);return e+r*t}function DI(n,t,e){var r=1.4,i=r*e;return[["M",n-e,t-i],["L",n+e,t-i],["L",n+e,t+i],["L",n-e,t+i],["Z"]]}var bx=1.4,xx=.4;function II(n,t,e){var r=e,i=r*bx,a=r/2,s=r/6,o=n+i*xx;return[["M",n,t],["L",o,t+a],["L",n+i,t+a],["L",n+i,t-a],["L",o,t-a],["Z"],["M",o,t+s],["L",n+i-2,t+s],["M",o,t-s],["L",n+i-2,t-s]]}function BI(n,t,e){var r=e,i=r*bx,a=r/2,s=r/6,o=t+i*xx;return[["M",n,t],["L",n-a,o],["L",n-a,t+i],["L",n+a,t+i],["L",n+a,o],["Z"],["M",n-s,o],["L",n-s,t+i-2],["M",n+s,o],["L",n+s,t+i-2]]}rn.registerSymbol("hiddenHandle",DI),rn.registerSymbol("verticalHandle",II),rn.registerSymbol("horizontalHandle",BI);var dj=function(n,t,e){return n===void 0&&(n="horizontal"),n==="horizontal"?t:e};function fj(n,t,e,r){var i;r===void 0&&(r=4);var a=__read(n,2),s=a[0],o=a[1],l=__read(t,2),c=l[0],u=l[1],h=__read(e,2),d=h[0],f=h[1],v=__read([c,u],2),g=v[0],p=v[1],y=p-g;return g>p&&(i=__read([p,g],2),g=i[0],p=i[1]),y>o-s?[s,o]:go?f===o&&d===g?[g,o]:[o-y,o]:[g,p]}function t0(n,t,e){return n===void 0&&(n="horizontal"),n==="horizontal"?t:e}function vj(n){var t=n&&n.getRenderBounds();if(!t)return{width:0,height:0};var e=t.getMax(),r=t.getMin();return{width:e[0]-r[0],height:e[1]-r[1]}}function Ex(n){var t=n.getLocalBounds(),e=t.min,r=t.max,i=(0,Z.CR)([e,r],2),a=(0,Z.CR)(i[0],2),s=a[0],o=a[1],l=(0,Z.CR)(i[1],2),c=l[0],u=l[1];return{x:s,y:o,width:c-s,height:u-o,left:s,bottom:u,top:o,right:c}}function gj(n,t){var e=select(n).append("text").node();return e.attr(__assign(__assign({},t),{visibility:"hidden"})),e}function FI(n,t){var e=(0,Z.CR)(n,2),r=e[0],i=e[1],a=(0,Z.CR)(t,2),s=a[0],o=a[1];return r!==s&&i===o}function pj(n,t){var e=__read(n,2),r=e[0],i=e[1],a=__read(t,2),s=a[0],o=a[1];return r===s&&i!==o}function zI(n,t){var e,r,i=t.attributes;try{for(var a=(0,Z.XA)(Object.entries(i)),s=a.next();!s.done;s=a.next()){var o=(0,Z.CR)(s.value,2),l=o[0],c=o[1];l!=="id"&&l!=="className"&&n.attr(l,c)}}catch(u){e={error:u}}finally{try{s&&!s.done&&(r=a.return)&&r.call(a)}finally{if(e)throw e.error}}}function wa(n){return typeof n=="function"?n():Ve(n)||re(n)?new qv({style:{text:String(n)}}):n}function jI(n,t){return typeof n=="function"?n():Ve(n)||re(n)?new lo({style:(0,Z.pi)((0,Z.pi)({},t),{innerHTML:String(n)})}):n}var _h,e0;function mj(n){e0=n}var WI=zv(function(n,t){var e=t.fontSize,r=t.fontFamily,i=t.fontWeight,a=t.fontStyle,s=t.fontVariant;return e0?e0(n,e):(_h||(_h=Vt.offscreenCanvasCreator.getOrCreateContext(void 0)),_h.font=[a,s,i,"".concat(e,"px"),r].join(" "),_h.measureText(n).width)},function(n,t){return[n,Object.values(t||wx(n)).join()].join("")},4096),wx=function(n){var t=n.style.fontFamily||"sans-serif",e=n.style.fontWeight||"normal",r=n.style.fontStyle||"normal",i=n.style.fontVariant,a=n.style.fontSize;return a=typeof a=="object"?a.value:a,{fontSize:a,fontFamily:t,fontWeight:e,fontStyle:r,fontVariant:i}};function Sx(n){return n.nodeName==="text"?n:n.nodeName==="g"&&n.children.length===1&&n.children[0].nodeName==="text"?n.children[0]:null}function Mx(n,t){var e=Sx(n);e&&e.attr(t)}function n0(n,t,e){e===void 0&&(e="..."),Mx(n,{wordWrap:!0,wordWrapWidth:t,maxLines:1,textOverflow:e})}function r0(n,t){for(var e in t)t.hasOwnProperty(e)&&e!=="constructor"&&t[e]!==void 0&&(n[e]=t[e])}function GI(n,t,e,r){return t&&r0(n,t),e&&r0(n,e),r&&r0(n,r),n}function ZI(n){return n instanceof Element||n instanceof Document}var Fe,VI="component-poptip",De={CONTAINER:"component-poptip",ARROW:"component-poptip-arrow",TEXT:"component-poptip-text"},Ax=(Fe={},Fe[".".concat(De.CONTAINER)]={visibility:"visible",position:"absolute","background-color":"rgba(0, 0, 0)","box-shadow":"0px 0px 10px #aeaeae","border-radius":"3px",color:"#fff",opacity:.8,"font-size":"12px",padding:"4px 6px",display:"flex","justify-content":"center","align-items":"center","z-index":8,transition:"visibility 50ms"},Fe[".".concat(De.TEXT)]={"text-align":"center"},Fe[".".concat(De.CONTAINER,"[data-position='top']")]={transform:"translate(-50%, -100%)"},Fe[".".concat(De.CONTAINER,"[data-position='left']")]={transform:"translate(-100%, -50%)"},Fe[".".concat(De.CONTAINER,"[data-position='right']")]={transform:"translate(0, -50%)"},Fe[".".concat(De.CONTAINER,"[data-position='bottom']")]={transform:"translate(-50%, 0)"},Fe[".".concat(De.CONTAINER,"[data-position='top-left']")]={transform:"translate(0,-100%)"},Fe[".".concat(De.CONTAINER,"[data-position='top-right']")]={transform:"translate(-100%,-100%)"},Fe[".".concat(De.CONTAINER,"[data-position='left-top']")]={transform:"translate(-100%, 0)"},Fe[".".concat(De.CONTAINER,"[data-position='left-bottom']")]={transform:"translate(-100%, -100%)"},Fe[".".concat(De.CONTAINER,"[data-position='right-top']")]={transform:"translate(0, 0)"},Fe[".".concat(De.CONTAINER,"[data-position='right-bottom']")]={transform:"translate(0, -100%)"},Fe[".".concat(De.CONTAINER,"[data-position='bottom-left']")]={transform:"translate(0, 0)"},Fe[".".concat(De.CONTAINER,"[data-position='bottom-right']")]={transform:"translate(-100%, 0)"},Fe[".".concat(De.ARROW)]={width:"4px",height:"4px",transform:"rotate(45deg)","background-color":"rgba(0, 0, 0)",position:"absolute","z-index":-1},Fe[".".concat(De.CONTAINER,"[data-position='top']")]={transform:"translate(-50%, calc(-100% - 5px))"},Fe["[data-position='top'] .".concat(De.ARROW)]={bottom:"-2px"},Fe[".".concat(De.CONTAINER,"[data-position='left']")]={transform:"translate(calc(-100% - 5px), -50%)"},Fe["[data-position='left'] .".concat(De.ARROW)]={right:"-2px"},Fe[".".concat(De.CONTAINER,"[data-position='right']")]={transform:"translate(5px, -50%)"},Fe["[data-position='right'] .".concat(De.ARROW)]={left:"-2px"},Fe[".".concat(De.CONTAINER,"[data-position='bottom']")]={transform:"translate(-50%, 5px)"},Fe["[data-position='bottom'] .".concat(De.ARROW)]={top:"-2px"},Fe[".".concat(De.CONTAINER,"[data-position='top-left']")]={transform:"translate(0, calc(-100% - 5px))"},Fe["[data-position='top-left'] .".concat(De.ARROW)]={left:"10px",bottom:"-2px"},Fe[".".concat(De.CONTAINER,"[data-position='top-right']")]={transform:"translate(-100%, calc(-100% - 5px))"},Fe["[data-position='top-right'] .".concat(De.ARROW)]={right:"10px",bottom:"-2px"},Fe[".".concat(De.CONTAINER,"[data-position='left-top']")]={transform:"translate(calc(-100% - 5px), 0)"},Fe["[data-position='left-top'] .".concat(De.ARROW)]={right:"-2px",top:"8px"},Fe[".".concat(De.CONTAINER,"[data-position='left-bottom']")]={transform:"translate(calc(-100% - 5px), -100%)"},Fe["[data-position='left-bottom'] .".concat(De.ARROW)]={right:"-2px",bottom:"8px"},Fe[".".concat(De.CONTAINER,"[data-position='right-top']")]={transform:"translate(5px, 0)"},Fe["[data-position='right-top'] .".concat(De.ARROW)]={left:"-2px",top:"8px"},Fe[".".concat(De.CONTAINER,"[data-position='right-bottom']")]={transform:"translate(5px, -100%)"},Fe["[data-position='right-bottom'] .".concat(De.ARROW)]={left:"-2px",bottom:"8px"},Fe[".".concat(De.CONTAINER,"[data-position='bottom-left']")]={transform:"translate(0, 5px)"},Fe["[data-position='bottom-left'] .".concat(De.ARROW)]={top:"-2px",left:"8px"},Fe[".".concat(De.CONTAINER,"[data-position='bottom-right']")]={transform:"translate(-100%, 5px)"},Fe["[data-position='bottom-right'] .".concat(De.ARROW)]={top:"-2px",right:"8px"},Fe),UI=void 0;function YI(n,t,e,r,i,a){if(i===void 0&&(i=!1),a===void 0&&(a=!1),a)return[n,t];var s=e.getBoundingClientRect(),o=s.x,l=s.y,c=s.width,u=s.height;switch(r){case"top":return i?[o+c/2,l]:[n,l];case"left":return i?[o,l+u/2]:[o,t];case"bottom":return i?[o+c/2,l+u]:[n,l+u];case"right":return i?[o+c,l+u/2]:[o+c,t];case"top-right":case"right-top":return[o+c,l];case"left-bottom":case"bottom-left":return[o,l+u];case"right-bottom":case"bottom-right":return[o+c,l+u];case"top-left":case"left-top":default:return[o,l]}}var HI=function(n){var t;return function(){for(var e=[],r=0;r');e.innerHTML=o,Ve(a)?e.innerHTML+=a:a&&ZI(a)&&e.appendChild(a),s&&(e.getElementsByClassName(De.TEXT)[0].textContent=s),this.applyStyles(),this.container.style.visibility=this.visibility},t.prototype.applyStyles=function(){var e=$n({},Ax,this.style.domStyles),r=Object.entries(e).reduce(function(a,s){var o=(0,Z.CR)(s,2),l=o[0],c=o[1],u=Object.entries(c).reduce(function(h,d){var f=(0,Z.CR)(d,2),v=f[0],g=f[1];return"".concat(h).concat(v,": ").concat(g,";")},"");return"".concat(a).concat(l,"{").concat(u,"}")},"");if(this.domStyles!==r){this.domStyles=r;var i=this.container.querySelector("style");i&&this.container.removeChild(i),i=document.createElement("style"),i.innerHTML=r,this.container.appendChild(i)}},t.prototype.setOffsetPosition=function(e,r,i){i===void 0&&(i=this.style.offset);var a=(0,Z.CR)(i,2),s=a[0],o=s===void 0?0:s,l=a[1],c=l===void 0?0:l;this.container.style.left="".concat(e+o,"px"),this.container.style.top="".concat(r+c,"px")},t.tag="poptip",t.defaultOptions={style:{x:0,y:0,width:0,height:0,target:null,visibility:"hidden",text:"",position:"top",follow:!1,offset:[0,0],domStyles:Ax,template:'
')}},t}(Rn),Rr=Zi({layout:"flex",markerGroup:"marker-group",marker:"marker",labelGroup:"label-group",label:"label",valueGroup:"value-group",focusGroup:"focus-group",focus:"focus",value:"value",backgroundGroup:"background-group",background:"background"},"legend-category-item"),qI={offset:[0,20],domStyles:{".component-poptip":{opacity:"1",padding:"8px 12px",background:"#fff",boxShadow:"0 2px 8px rgba(0, 0, 0, 0.15)"},".component-poptip-arrow":{display:"none"},".component-poptip-text":{color:"#000",lineHeight:"20px"}}};function JI(n){var t=n.querySelector(Rr.marker.class);return t?t.style:{}}var $I=function(n){(0,Z.ZT)(t,n);function t(e){return n.call(this,e,{span:[1,1],marker:function(){return new ta({style:{r:6}})},markerSize:10,labelFill:"#646464",valueFill:"#646464",labelFontSize:12,valueFontSize:12,labelTextBaseline:"middle",valueTextBaseline:"middle"})||this}return Object.defineProperty(t.prototype,"showValue",{get:function(){var e=this.attributes.valueText;return e?typeof e=="string"||typeof e=="number"?e!=="":typeof e=="function"?!0:e.attr("text")!=="":!1},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"actualSpace",{get:function(){var e=this.labelGroup,r=this.valueGroup,i=this.attributes,a=i.markerSize,s=i.focus,o=i.focusMarkerSize,l=e.node().getBBox(),c=l.width,u=l.height,h=r.node().getBBox(),d=h.width,f=h.height,v=s?o!=null?o:12:0;return{markerWidth:a,labelWidth:c,valueWidth:d,focusWidth:v,height:Math.max(a,u,f)}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"span",{get:function(){var e=this.attributes.span;if(!e)return[1,1];var r=(0,Z.CR)(Er(e),2),i=r[0],a=r[1],s=this.showValue?a:0,o=i+s;return[i/o,s/o]},enumerable:!1,configurable:!0}),t.prototype.setAttribute=function(e,r){n.prototype.setAttribute.call(this,e,r)},Object.defineProperty(t.prototype,"shape",{get:function(){var e,r=this.attributes,i=r.markerSize,a=r.width,s=this.actualSpace,o=s.markerWidth,l=s.focusWidth,c=s.height,u=this.actualSpace,h=u.labelWidth,d=u.valueWidth,f=(0,Z.CR)(this.spacing,3),v=f[0],g=f[1],p=f[2];if(a){var y=a-i-v-g-l-p,b=(0,Z.CR)(this.span,2),E=b[0],O=b[1];e=(0,Z.CR)([E*y,O*y],2),h=e[0],d=e[1]}var k=o+h+d+v+g+l+p;return{width:k,height:c,markerWidth:o,labelWidth:h,valueWidth:d,focusWidth:l}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"spacing",{get:function(){var e=this.attributes,r=e.spacing,i=e.focus;if(!r)return[0,0,0];var a=(0,Z.CR)(Er(r),3),s=a[0],o=a[1],l=a[2];return[s,this.showValue?o:0,i?l:0]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"layout",{get:function(){var e=this.shape,r=e.markerWidth,i=e.labelWidth,a=e.valueWidth,s=e.focusWidth,o=e.width,l=e.height,c=(0,Z.CR)(this.spacing,3),u=c[0],h=c[1],d=c[2];return{height:l,width:o,markerWidth:r,labelWidth:i,valueWidth:a,focusWidth:s,position:[r/2,r+u,r+i+u+h,r+i+a+u+h+d+s/2]}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"scaleSize",{get:function(){var e=JI(this.markerGroup.node()),r=this.attributes,i=r.markerSize,a=r.markerStrokeWidth,s=a===void 0?e.strokeWidth:a,o=r.markerLineWidth,l=o===void 0?e.lineWidth:o,c=r.markerStroke,u=c===void 0?e.stroke:c,h=+(s||l||(u?1:0))*Math.sqrt(2),d=this.markerGroup.node().getBBox(),f=d.width,v=d.height;return(1-h/Math.max(f,v))*i},enumerable:!1,configurable:!0}),t.prototype.renderMarker=function(e){var r=this,i=this.attributes.marker,a=Le(this.attributes,"marker");this.markerGroup=e.maybeAppendByClassName(Rr.markerGroup,"g").style("zIndex",0),$r(!!i,this.markerGroup,function(){var s,o=r.markerGroup.node(),l=(s=o.childNodes)===null||s===void 0?void 0:s[0],c=typeof i=="string"?new rn({style:{symbol:i},className:Rr.marker.name}):i();l?c.nodeName===l.nodeName?l instanceof rn?l.update((0,Z.pi)((0,Z.pi)({},a),{symbol:i})):(zI(l,c),de(l).styles(a)):(l.remove(),de(c).attr("className",Rr.marker.name).styles(a),o.appendChild(c)):(c instanceof rn||de(c).attr("className",Rr.marker.name).styles(a),o.appendChild(c)),r.markerGroup.node().scale(1/r.markerGroup.node().getScale()[0]);var u=$v(r.markerGroup.node(),r.scaleSize,!0);r.markerGroup.node().style._transform="scale(".concat(u,")")})},t.prototype.renderLabel=function(e){var r=Le(this.attributes,"label"),i=r.text,a=(0,Z._T)(r,["text"]);this.labelGroup=e.maybeAppendByClassName(Rr.labelGroup,"g").style("zIndex",0),this.labelGroup.maybeAppendByClassName(Rr.label,function(){return wa(i)}).styles(a)},t.prototype.renderValue=function(e){var r=this,i=Le(this.attributes,"value"),a=i.text,s=(0,Z._T)(i,["text"]);this.valueGroup=e.maybeAppendByClassName(Rr.valueGroup,"g").style("zIndex",0),$r(this.showValue,this.valueGroup,function(){r.valueGroup.maybeAppendByClassName(Rr.value,function(){return wa(a)}).styles(s)})},t.prototype.createPoptip=function(){var e=this.attributes.poptip,r=e||{},i=r.render,a=(0,Z._T)(r,["render"]),s=new QI({style:$n(qI,a)});return this.poptipGroup=s,s},t.prototype.bindPoptip=function(e){var r=this,i=this.attributes.poptip;if(i){var a=this.poptipGroup||this.createPoptip();a.bind(e,function(){var s=r.attributes,o=s.labelText,l=s.valueText,c=s.markerFill,u=typeof o=="string"?o:o==null?void 0:o.attr("text"),h=typeof l=="string"?l:l==null?void 0:l.attr("text");if(typeof i.render=="function")return{html:i.render({label:u,value:h,color:c})};var d="";return(typeof u=="string"||typeof u=="number")&&(d+='
'.concat(u,"
")),(typeof h=="string"||typeof h=="number")&&(d+='
'.concat(h,"
")),{html:d}})}},t.prototype.renderFocus=function(e){var r=this,i=this.attributes,a=i.focus,s=i.focusMarkerSize,o={x:0,y:0,size:s,opacity:.6,symbol:"focus",stroke:"#aaaaaa",lineWidth:1};Te(a)||(this.focusGroup=e.maybeAppendByClassName(Rr.focusGroup,"g").style("zIndex",0),$r(a,this.focusGroup,function(){var l=new rn({style:(0,Z.pi)((0,Z.pi)({},o),{symbol:"focus"})}),c=new ta({style:{r:o.size/2,fill:"transparent"}}),u=r.focusGroup.node();u.appendChild(c),u.appendChild(l),l.update({opacity:0}),e.node().addEventListener("pointerenter",function(){l.update({opacity:1})}),e.node().addEventListener("pointerleave",function(){l.update({opacity:0})})}))},t.prototype.renderPoptip=function(e){var r=this,i=this.attributes.poptip;if(i){var a=e.maybeAppendByClassName(Rr.value,"g").node(),s=e.maybeAppendByClassName(Rr.label,"g").node();[a,s].forEach(function(o){o&&r.bindPoptip(o)})}},t.prototype.renderBackground=function(e){var r=this.shape,i=r.width,a=r.height,s=Le(this.attributes,"background");this.background=e.maybeAppendByClassName(Rr.backgroundGroup,"g").style("zIndex",-1),this.background.maybeAppendByClassName(Rr.background,"rect").styles((0,Z.pi)({width:i,height:a},s))},t.prototype.adjustLayout=function(){var e=this.layout,r=e.labelWidth,i=e.valueWidth,a=e.height,s=(0,Z.CR)(e.position,4),o=s[0],l=s[1],c=s[2],u=s[3],h=a/2;this.markerGroup.styles({transform:"translate(".concat(o,", ").concat(h,")").concat(this.markerGroup.node().style._transform)}),this.labelGroup.styles({transform:"translate(".concat(l,", ").concat(h,")")}),this.focusGroup&&this.focusGroup.styles({transform:"translate(".concat(u,", ").concat(h,")")}),n0(this.labelGroup.select(Rr.label.class).node(),Math.ceil(r)),this.showValue&&(this.valueGroup.styles({transform:"translate(".concat(c,", ").concat(h,")")}),n0(this.valueGroup.select(Rr.value.class).node(),Math.ceil(i)))},t.prototype.render=function(e,r){var i=de(r),a=e.x,s=a===void 0?0:a,o=e.y,l=o===void 0?0:o;i.styles({transform:"translate(".concat(s,", ").concat(l,")")}),this.renderMarker(i),this.renderLabel(i),this.renderValue(i),this.renderBackground(i),this.renderPoptip(i),this.renderFocus(i),this.adjustLayout()},t}(Rn),Gs=Zi({page:"item-page",navigator:"navigator",item:"item"},"items"),Tx=function(n,t,e){return e===void 0&&(e=!0),n?t(n):e},t6=function(n){(0,Z.ZT)(t,n);function t(e){var r=n.call(this,e,{data:[],gridRow:1/0,gridCol:void 0,padding:0,width:1e3,height:100,rowPadding:0,colPadding:0,layout:"flex",orientation:"horizontal",click:Jv,mouseenter:Jv,mouseleave:Jv})||this;return r.navigatorShape=[0,0],r}return Object.defineProperty(t.prototype,"pageViews",{get:function(){return this.navigator.getContainer()},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"grid",{get:function(){var e=this.attributes,r=e.gridRow,i=e.gridCol,a=e.data;if(!r&&!i)throw new Error("gridRow and gridCol can not be set null at the same time");return r&&i?[r,i]:r?[r,a.length]:[a.length,i]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"renderData",{get:function(){var e=this.attributes,r=e.data,i=e.layout,a=e.poptip,s=e.focus,o=e.focusMarkerSize,l=Le(this.attributes,"item"),c=r.map(function(u,h){var d=u.id,f=d===void 0?h:d,v=u.label,g=u.value;return{id:"".concat(f),index:h,style:(0,Z.pi)({layout:i,labelText:v,valueText:g,poptip:a,focus:s,focusMarkerSize:o},Object.fromEntries(Object.entries(l).map(function(p){var y=(0,Z.CR)(p,2),b=y[0],E=y[1];return[b,ti(E,[u,h,r])]})))}});return c},enumerable:!1,configurable:!0}),t.prototype.getGridLayout=function(){var e=this,r=this.attributes,i=r.orientation,a=r.width,s=r.rowPadding,o=r.colPadding,l=(0,Z.CR)(this.navigatorShape,1),c=l[0],u=(0,Z.CR)(this.grid,2),h=u[0],d=u[1],f=d*h,v=0;return this.pageViews.children.map(function(g,p){var y,b,E=Math.floor(p/f),O=p%f,k=e.ifHorizontal(d,h),R=[Math.floor(O/k),O%k];i==="vertical"&&R.reverse();var z=(0,Z.CR)(R,2),B=z[0],V=z[1],U=(a-c-(d-1)*o)/d,J=g.getBBox().height,$=(0,Z.CR)([0,0],2),st=$[0],ct=$[1];return i==="horizontal"?(y=(0,Z.CR)([v,B*(J+s)],2),st=y[0],ct=y[1],v=V===d-1?0:v+U+o):(b=(0,Z.CR)([V*(U+o),v],2),st=b[0],ct=b[1],v=B===h-1?0:v+J+s),{page:E,index:p,row:B,col:V,pageIndex:O,width:U,height:J,x:st,y:ct}})},t.prototype.getFlexLayout=function(){var e=this.attributes,r=e.width,i=e.height,a=e.rowPadding,s=e.colPadding,o=(0,Z.CR)(this.navigatorShape,1),l=o[0],c=(0,Z.CR)(this.grid,2),u=c[0],h=c[1],d=(0,Z.CR)([r-l,i],2),f=d[0],v=d[1],g=(0,Z.CR)([0,0,0,0,0,0,0,0],8),p=g[0],y=g[1],b=g[2],E=g[3],O=g[4],k=g[5],R=g[6],z=g[7];return this.pageViews.children.map(function(B,V){var U,J,$,st,ct=B.getBBox(),ft=ct.width,Nt=ct.height,Ct=R===0?0:s,gt=R+Ct+ft;if(gt<=f&&Tx(O,function(Pt){return Pt0?(this.navigatorShape=[55,0],e.call(this)):r},enumerable:!1,configurable:!0}),t.prototype.ifHorizontal=function(e,r){var i=this.attributes.orientation;return t0(i,e,r)},t.prototype.flattenPage=function(e){e.querySelectorAll(Gs.item.class).forEach(function(r){e.appendChild(r)}),e.querySelectorAll(Gs.page.class).forEach(function(r){var i=e.removeChild(r);i.destroy()})},t.prototype.renderItems=function(e){var r=this.attributes,i=r.click,a=r.mouseenter,s=r.mouseleave;this.flattenPage(e);var o=this.dispatchCustomEvent.bind(this);de(e).selectAll(Gs.item.class).data(this.renderData,function(l){return l.id}).join(function(l){return l.append(function(c){var u=c.style;return new $I({style:u})}).attr("className",Gs.item.name).on("click",function(){i==null||i(this),o("itemClick",{item:this})}).on("pointerenter",function(){a==null||a(this),o("itemMouseenter",{item:this})}).on("pointerleave",function(){s==null||s(this),o("itemMouseleave",{item:this})})},function(l){return l.each(function(c){var u=c.style;this.update(u)})},function(l){return l.remove()})},t.prototype.relayoutNavigator=function(){var e,r=this.attributes,i=r.layout,a=r.width,s=((e=this.pageViews.children[0])===null||e===void 0?void 0:e.getBBox().height)||0,o=(0,Z.CR)(this.navigatorShape,2),l=o[0],c=o[1];this.navigator.update(i==="grid"?{pageWidth:a-l,pageHeight:s-c}:{})},t.prototype.adjustLayout=function(){var e=this,r=Object.entries(oI(this.itemsLayout,"page")).map(function(a){var s=(0,Z.CR)(a,2),o=s[0],l=s[1];return{page:o,layouts:l}}),i=(0,Z.ev)([],(0,Z.CR)(this.navigator.getContainer().children),!1);r.forEach(function(a){var s=a.layouts,o=e.pageViews.appendChild(new rr({className:Gs.page.name}));s.forEach(function(l){var c=l.x,u=l.y,h=l.index,d=l.width,f=l.height,v=i[h];o.appendChild(v),bl(v,"__layout__",l),v.update({x:c,y:u,width:d,height:f})})}),this.relayoutNavigator()},t.prototype.renderNavigator=function(e){var r=this.attributes.orientation,i=Le(this.attributes,"nav"),a=$n({orientation:r},i),s=this;return e.selectAll(Gs.navigator.class).data(["nav"]).join(function(o){return o.append(function(){return new RI({style:a})}).attr("className",Gs.navigator.name).each(function(){s.navigator=this})},function(o){return o.each(function(){this.update(a)})},function(o){return o.remove()}),this.navigator},t.prototype.getBBox=function(){return this.navigator.getBBox()},t.prototype.render=function(e,r){var i=this.attributes.data;if(!(!i||i.length===0)){var a=this.renderNavigator(de(r));this.renderItems(a.getContainer()),this.adjustLayout()}},t.prototype.dispatchCustomEvent=function(e,r){var i=new qn(e,{detail:r});this.dispatchEvent(i)},t}(Rn),Il=Zi({markerGroup:"marker-group",marker:"marker",labelGroup:"label-group",label:"label"},"handle"),Ox={showLabel:!0,formatter:function(n){return n.toString()},markerSize:25,markerStroke:"#c5c5c5",markerFill:"#fff",markerLineWidth:1,labelFontSize:12,labelFill:"#c5c5c5",labelText:"",orientation:"vertical",spacing:0},yj=function(n){(0,Z.ZT)(t,n);function t(e){return n.call(this,e,Ox)||this}return t.prototype.render=function(e,r){var i=de(r).maybeAppendByClassName(Il.markerGroup,"g");this.renderMarker(i);var a=de(r).maybeAppendByClassName(Il.labelGroup,"g");this.renderLabel(a)},t.prototype.renderMarker=function(e){var r=this,i=this.attributes,a=i.orientation,s=i.markerSymbol,o=s===void 0?t0(a,"horizontalHandle","verticalHandle"):s;$r(!!o,e,function(l){var c=Le(r.attributes,"marker"),u=(0,Z.pi)({symbol:o},c);r.marker=l.maybeAppendByClassName(Il.marker,function(){return new rn({style:u})}).update(u)})},t.prototype.renderLabel=function(e){var r=this,i=this.attributes,a=i.showLabel,s=i.orientation,o=i.spacing,l=o===void 0?0:o,c=i.formatter;$r(a,e,function(u){var h,d=Le(r.attributes,"label"),f=d.text,v=(0,Z._T)(d,["text"]),g=((h=u.select(Il.marker.class))===null||h===void 0?void 0:h.node().getBBox())||{},p=g.width,y=p===void 0?0:p,b=g.height,E=b===void 0?0:b,O=(0,Z.CR)(t0(s,[0,E+l,"center","top"],[y+l,0,"start","middle"]),4),k=O[0],R=O[1],z=O[2],B=O[3];u.maybeAppendByClassName(Il.label,"text").styles((0,Z.pi)((0,Z.pi)({},v),{x:k,y:R,text:c(f).toString(),textAlign:z,textBaseline:B}))})},t}(Rn),Cx={showTitle:!0,padding:0,orientation:"horizontal",backgroundFill:"transparent",titleText:"",titleSpacing:4,titlePosition:"top-left",titleFill:"#2C3542",titleFontWeight:"bold",titleFontFamily:"sans-serif",titleFontSize:12},e6=$n({},Cx,{}),bj=$n({},Cx,So(Ox,"handle"),{color:["#d0e3fa","#acc7f6","#8daaf2","#6d8eea","#4d73cd","#325bb1","#5a3e75","#8c3c79","#e23455","#e7655b"],indicatorBackgroundFill:"#262626",indicatorLabelFill:"white",indicatorLabelFontSize:12,indicatorVisibility:"hidden",labelAlign:"value",labelDirection:"positive",labelSpacing:5,showHandle:!0,showIndicator:!0,showLabel:!0,slidable:!0,titleText:"",type:"continuous"}),xj=.01,Ej=.5,Bl=Zi({title:"title",titleGroup:"title-group",items:"items",itemsGroup:"items-group",contentGroup:"content-group",ribbonGroup:"ribbon-group",ribbon:"ribbon",handlesGroup:"handles-group",handle:"handle",startHandle:"start-handle",endHandle:"end-handle",labelGroup:"label-group",label:"label",indicator:"indicator"},"legend"),n6=function(n){(0,Z.ZT)(t,n);function t(e){return n.call(this,e,e6)||this}return t.prototype.renderTitle=function(e,r,i){var a=this.attributes,s=a.showTitle,o=a.titleText,l=Le(this.attributes,"title"),c=(0,Z.CR)(Ea(l),2),u=c[0],h=c[1];this.titleGroup=e.maybeAppendByClassName(Bl.titleGroup,"g").styles(h);var d=(0,Z.pi)((0,Z.pi)({width:r,height:i},u),{text:s?o:""});this.title=this.titleGroup.maybeAppendByClassName(Bl.title,function(){return new sI({style:d})}).update(d)},t.prototype.renderItems=function(e,r){var i=r.x,a=r.y,s=r.width,o=r.height,l=Le(this.attributes,"title",!0),c=(0,Z.CR)(Ea(l),2),u=c[0],h=c[1],d=(0,Z.pi)((0,Z.pi)({},u),{width:s,height:o,x:0,y:0});this.itemsGroup=e.maybeAppendByClassName(Bl.itemsGroup,"g").styles((0,Z.pi)((0,Z.pi)({},h),{transform:"translate(".concat(i,", ").concat(a,")")}));var f=this;this.itemsGroup.selectAll(Bl.items.class).data(["items"]).join(function(v){return v.append(function(){return new t6({style:d})}).attr("className",Bl.items.name).each(function(){f.items=de(this)})},function(v){return v.update(d)},function(v){return v.remove()})},t.prototype.adjustLayout=function(){var e=this.attributes.showTitle;if(e){var r=this.title.node().getAvailableSpace(),i=r.x,a=r.y;this.itemsGroup.node().style.transform="translate(".concat(i,", ").concat(a,")")}},Object.defineProperty(t.prototype,"availableSpace",{get:function(){var e=this.attributes,r=e.showTitle,i=e.width,a=e.height;return r?this.title.node().getAvailableSpace():new Pr(0,0,i,a)},enumerable:!1,configurable:!0}),t.prototype.getBBox=function(){var e,r,i=(e=this.title)===null||e===void 0?void 0:e.node(),a=(r=this.items)===null||r===void 0?void 0:r.node();return!i||!a?n.prototype.getBBox.call(this):rI(i,a)},t.prototype.render=function(e,r){var i=this.attributes,a=i.width,s=i.height,o=i.x,l=o===void 0?0:o,c=i.y,u=c===void 0?0:c,h=de(r);r.style.transform="translate(".concat(l,", ").concat(u,")"),this.renderTitle(h,a,s),this.renderItems(h,this.availableSpace),this.adjustLayout()},t}(Rn);function Dh(n){const{width:t,height:e,renderer:r}=n,i=r6(n),a=new vf({width:t,height:e,container:i,renderer:r||new Sl});return[i,a]}function r6(n){var t;const{container:e,className:r,graphCanvas:i}=n;if(e)return typeof e=="string"?document.getElementById(e):e;const a=wo(r,!1),{width:s,height:o,containerStyle:l}=n,[c,u]=i6(n);return Object.assign(a.style,Object.assign({position:"absolute",left:c+"px",top:u+"px",width:s+"px",height:o+"px"},l)),(t=i.getContainer())===null||t===void 0||t.appendChild(a),a}function i6(n){const{width:t,height:e,placement:r,graphCanvas:i}=n,[a,s]=i.getSize(),[o,l]=Ty(r);return[o*(a-t),l*(s-e)]}var a6=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(n);i{const{graph:r}=this.context;r.on(Xt.AFTER_DRAW,this.createElement)},this.changeState=(r,i)=>{const{graph:a}=this.context,{typePrefix:s}=this,o=xr(r,[s,"id"]),l=xr(r,[s,"style","labelText"]),[c]=o.split("__"),u=this.fieldMap[c].get(l)||[];a.setElementState(Object.fromEntries(u==null?void 0:u.map(h=>[h,i])))},this.click=r=>{if(this.options.trigger==="hover")return;const i=xr(r,[this.typePrefix,"id"]);this.selectedItems.includes(i)?(this.selectedItems=this.selectedItems.filter(a=>a!==i),this.changeState(r,[])):(this.selectedItems.push(i),this.changeState(r,"selected"))},this.mouseleave=r=>{this.options.trigger!=="click"&&(this.selectedItems=[],this.changeState(r,[]))},this.mouseenter=r=>{if(this.options.trigger==="click")return;const i=xr(r,[this.typePrefix,"id"]);this.selectedItems.includes(i)?this.selectedItems=this.selectedItems.filter(a=>a!==i):(this.selectedItems.push(i),this.changeState(r,"active"))},this.setFieldMap=(r,i,a)=>{if(!r)return;const s=this.fieldMap[a];if(s)if(!s.has(r))s.set(r,[i]);else{const o=s.get(r);o&&(o.push(i),s.set(r,o))}},this.getEvents=()=>({mouseenter:this.mouseenter,mouseleave:this.mouseleave,click:this.click}),this.getMarkerData=(r,i)=>{if(!r)return[];const{model:a,element:s}=this.context,{nodes:o,edges:l,combos:c}=a.getData(),u={},h=p=>ue(r)?r(p):r,d={node:"circle",edge:"line",combo:"rect"},f={circle:"circle",ellipse:"circle",image:"bowtie",rect:"square",star:"cross",triangle:"triangle",diamond:"diamond",cubic:"dot",line:"hyphen",polyline:"hyphen",quadratic:"hv","cubic-horizontal":"hyphen","cubic-vertical":"line"},v=(p,y)=>s==null?void 0:s.getElementComputedStyle(p,y),g=(p,y)=>{p.forEach(b=>{const{id:E}=b,O=xr(b,["data",h(b)]),k=(s==null?void 0:s.getElementType(y,b))||"circle",R=v(y,b),z=(y==="edge"?R==null?void 0:R.stroke:R==null?void 0:R.fill)||"#1783ff";E&&O&&O.replace(/\s+/g,"")&&(this.setFieldMap(O,E,y),u[O]||(u[O]={id:`${y}__${E}`,label:O,marker:f[k]||d[y],elementType:y,lineWidth:1,stroke:z,fill:z}))})};switch(i){case"node":g(o,"node");break;case"edge":g(l,"edge");break;case"combo":g(c,"combo");break;default:return[]}return Object.values(u)},this.createElement=()=>{if(this.draw){this.updateElement();return}const r=this.options,{width:i,height:a,nodeField:s,edgeField:o,comboField:l,trigger:c,position:u,container:h,containerStyle:d,className:f}=r,v=a6(r,["width","height","nodeField","edgeField","comboField","trigger","position","container","containerStyle","className"]),g=this.getMarkerData(s,"node"),p=this.getMarkerData(o,"edge"),y=this.getMarkerData(l,"combo"),b=[...g,...y,...p],E=Object.assign({width:i,height:a,data:b,itemMarkerLineWidth:({lineWidth:R})=>R,itemMarker:({marker:R})=>R,itemMarkerStroke:({stroke:R})=>R,itemMarkerFill:({fill:R})=>R,gridCol:g.length},v,this.getEvents()),O=new n6({className:"legend",style:E});this.category=O,this.upsertCanvas().appendChild(O),this.draw=!0},this.bindEvents()}update(t){super.update(t),this.clear(),this.createElement()}clear(){var t,e;(t=this.canvas)===null||t===void 0||t.destroy(),(e=this.container)===null||e===void 0||e.remove(),this.canvas=void 0,this.container=void 0,this.draw=!1}updateElement(){this.category&&this.category.update({itemMarkerOpacity:({id:t})=>!this.selectedItems.length||this.selectedItems.includes(t)?1:.5,itemLabelOpacity:({id:t})=>!this.selectedItems.length||this.selectedItems.includes(t)?1:.5})}upsertCanvas(){if(this.canvas)return this.canvas;const t=this.context.canvas,[e,r]=t.getSize(),{width:i=e,height:a=r,position:s,container:o,containerStyle:l,className:c}=this.options,[u,h]=Dh({width:i,height:a,graphCanvas:t,container:o,containerStyle:l,placement:s,className:"legend"});return this.container=u,c&&u.classList.add(c),this.canvas=h,this.canvas}destroy(){this.clear(),this.context.graph.off(Xt.AFTER_DRAW,this.createElement),super.destroy()}}Ih.defaultOptions={position:"bottom",trigger:"hover",orientation:"horizontal",layout:"flex",itemSpacing:4,rowPadding:10,colPadding:10,itemMarkerSize:16,itemLabelFontSize:16,width:240,height:160};class Bh extends hr{constructor(t,e){super(t,Object.assign({},Bh.defaultOptions,e)),this.onDraw=r=>{var i;!((i=r==null?void 0:r.data)===null||i===void 0)&&i.render||this.onRender()},this.landmarkMap=new Map,this.mask=null,this.isMaskDragging=!1,this.onMaskDragStart=r=>{this.mask&&(this.isMaskDragging=!0,this.mask.setPointerCapture(r.pointerId),this.mask.addEventListener("pointermove",this.onMaskDrag),this.mask.addEventListener("pointerup",this.onMaskDragEnd),this.mask.addEventListener("pointercancel",this.onMaskDragEnd))},this.onMaskDrag=r=>{if(!this.mask||!this.isMaskDragging)return;const{size:[i,a]}=this.options,{movementX:s,movementY:o}=r,{left:l,top:c,width:u,height:h}=this.mask.style,[,,d,f]=this.maskBBox;let v=parseInt(l)+s,g=parseInt(c)+o,p=parseInt(u),y=parseInt(h);v<0&&(v=0),g<0&&(g=0),v+p>i&&(v=Ja(i-p,0)),g+y>a&&(g=Ja(a-y,0)),p0?(v=Ja(v-s,0),p=qa(p+s,i)):s<0&&(p=qa(p-s,i))),y0?(g=Ja(g-o,0),y=qa(y+o,a)):o<0&&(y=qa(y-o,a))),Object.assign(this.mask.style,{left:v+"px",top:g+"px",width:p+"px",height:y+"px"});const b=parseInt(l)-v,E=parseInt(c)-g;if(b===0&&E===0)return;const O=this.context.canvas.getCamera().getZoom(),k=this.canvas.getCamera().getZoom(),R=O/k;this.context.graph.translateBy([b*R,E*R],!1)},this.onMaskDragEnd=r=>{this.mask&&(this.isMaskDragging=!1,this.mask.releasePointerCapture(r.pointerId),this.mask.removeEventListener("pointermove",this.onMaskDrag),this.mask.removeEventListener("pointerup",this.onMaskDragEnd),this.mask.removeEventListener("pointercancel",this.onMaskDragEnd))},this.onTransform=Lm(()=>{this.isMaskDragging||(this.updateMask(),this.setCamera())},32,{leading:!0}),this.setOnRender(),this.bindEvents()}update(t){this.unbindEvents(),super.update(t),"delay"in t&&this.setOnRender(),this.bindEvents()}setOnRender(){this.onRender=Cl(()=>{this.renderMinimap(),this.renderMask()},this.options.delay)}bindEvents(){const{graph:t}=this.context;t.on(Xt.AFTER_DRAW,this.onDraw),t.on(Xt.AFTER_RENDER,this.onRender),t.on(Xt.AFTER_ANIMATE,this.onRender),t.on(Xt.AFTER_TRANSFORM,this.onTransform)}unbindEvents(){const{graph:t}=this.context;t.off(Xt.AFTER_DRAW,this.onDraw),t.off(Xt.AFTER_RENDER,this.onRender),t.off(Xt.AFTER_ANIMATE,this.onRender),t.off(Xt.AFTER_TRANSFORM,this.onTransform)}renderMinimap(){const t=this.getElements(),e=this.initCanvas();this.setShapes(e,t)}getElements(){const{filter:t}=this.options,{model:e,element:r}=this.context,i=e.getData(),a={nodes:i.nodes.filter(c=>r==null?void 0:r.getElement(At(c))),edges:i.edges.filter(c=>{const u=r==null?void 0:r.getElement(At(c));return u&&C1(u)}),combos:i.combos.filter(c=>r==null?void 0:r.getElement(At(c)))};if(!t)return a;const{nodes:s,edges:o,combos:l}=a;return{nodes:s.filter(c=>t(At(c),"node")),edges:o.filter(c=>t(At(c),"edge")),combos:l.filter(c=>t(At(c),"combo"))}}setShapes(t,e){const{nodes:r,edges:i,combos:a}=e,{shape:s}=this.options,{element:o}=this.context,l=(c,u)=>{const h=At(c),d=o==null?void 0:o.getElement(h);if(!d)return;const f=d.getShape("key");let v;if(typeof s=="string"){const g=s;v=d.getShape(g).cloneNode()}else{const g=s(h,u,d);g===d?v=g.cloneNode(!0):v=g}v.setPosition(f.getPosition()),d.style.zIndex&&(v.style.zIndex=d.style.zIndex),v.id=d.id,t.appendChild(v)};t.removeChildren(),i.forEach(c=>l(c,"edge")),a.forEach(c=>l(c,"combo")),r.forEach(c=>l(c,"node"))}initCanvas(){const{renderer:t,size:[e,r]}=this.options;if(this.canvas){const{width:i,height:a}=this.canvas.getConfig();(e!==i||r!==a)&&this.canvas.resize(e,r),t&&this.canvas.setRenderer(t)}else{const{className:i,position:a,container:s,containerStyle:o}=this.options,[l,c]=Dh({renderer:t,width:e,height:r,placement:a,className:"minimap",container:s,containerStyle:o,graphCanvas:this.context.canvas});i&&l.classList.add(i),this.container=l,this.canvas=c}return this.setCamera(),this.canvas}createLandmark(t,e,r){const i=`${t.join(",")}-${e.join(",")}-${r}`;if(this.landmarkMap.has(i))return this.landmarkMap.get(i);const s=this.canvas.getCamera().createLandmark(i,{position:t,focalPoint:e,zoom:r});return this.landmarkMap.set(i,s),s}setCamera(){var t;const{canvas:e}=this.context,r=(t=this.canvas)===null||t===void 0?void 0:t.getCamera();if(!r)return;const{size:[i,a],padding:s}=this.options,[o,l,c,u]=oi(s),{min:h,max:d,center:f}=e.getBounds("elements"),v=d[0]-h[0],g=d[1]-h[1],p=i-u-l,y=a-o-c,b=p/v,E=y/g,O=Math.min(b,E),k=this.createLandmark(f,f,O);r.gotoLandmark(k,0)}get maskBBox(){const{canvas:t}=this.context,e=t.getSize(),r=t.getCanvasByViewport([0,0]),i=t.getCanvasByViewport(e),a=this.canvas.canvas2Viewport(zi(r)),s=this.canvas.canvas2Viewport(zi(i)),o=s.x-a.x,l=s.y-a.y;return[a.x,a.y,o,l]}calculateMaskBBox(){const{size:[t,e]}=this.options;let[r,i,a,s]=this.maskBBox;return r<0&&(a=qa(a+r,t),r=0),i<0&&(s=qa(s+i,e),i=0),r+a>t&&(a=Ja(t-r,0)),i+s>e&&(s=Ja(e-i,0)),[qa(r,t),qa(i,e),Ja(a,0),Ja(s,0)]}renderMask(){const{maskStyle:t}=this.options;this.mask||(this.mask=document.createElement("div"),this.mask.addEventListener("pointerdown",this.onMaskDragStart),this.mask.draggable=!0,this.mask.addEventListener("dragstart",e=>e.preventDefault&&e.preventDefault())),this.container.appendChild(this.mask),Object.assign(this.mask.style,Object.assign(Object.assign({},t),{cursor:"move",position:"absolute",pointerEvents:"auto"})),this.updateMask()}updateMask(){if(!this.mask)return;const[t,e,r,i]=this.calculateMaskBBox();Object.assign(this.mask.style,{top:e+"px",left:t+"px",width:r+"px",height:i+"px"})}destroy(){var t,e,r;this.unbindEvents(),(t=this.canvas)===null||t===void 0||t.destroy(),(e=this.mask)===null||e===void 0||e.remove(),(r=this.container)===null||r===void 0||r.remove(),super.destroy()}}Bh.defaultOptions={size:[240,160],shape:"key",padding:10,position:"right-bottom",maskStyle:{border:"1px solid #ddd",background:"rgba(0, 0, 0, 0.1)"},containerStyle:{border:"1px solid #ddd",background:"#fff"},delay:128};const qa=(n,t)=>Math.min(n,t),Ja=(n,t)=>Math.max(n,t);var i0=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};const a0={x1:0,y1:0,x2:0,y2:0,visibility:"hidden"};class Fh extends hr{constructor(t,e){super(t,Object.assign({},Fh.defaultOptions,e)),this.initSnapline=()=>{const r=this.context.canvas.getLayer("transient");this.horizontalLine||(this.horizontalLine=r.appendChild(new ws({style:Object.assign(Object.assign({},a0),this.options.horizontalLineStyle)}))),this.verticalLine||(this.verticalLine=r.appendChild(new ws({style:Object.assign(Object.assign({},a0),this.options.verticalLineStyle)})))},this.isHorizontalSticking=!1,this.isVerticalSticking=!1,this.enableStick=!0,this.autoSnapToLine=(r,i,a)=>i0(this,void 0,void 0,function*(){const{verticalX:s,horizontalY:o}=a,{tolerance:l}=this.options,{min:[c,u],max:[h,d],center:[f,v]}=i;let g=0,p=0;s!==null&&(Lr(h,s){const{target:i}=r,a=.5;if(this.isHorizontalSticking||this.isVerticalSticking){const[s,o]=this.getDelta(r);if(this.isHorizontalSticking&&this.isVerticalSticking&&Math.abs(s)<=a&&Math.abs(o)<=a)return this.context.graph.translateElementBy({[i.id]:[-s,-o]},!1),!1;if(this.isHorizontalSticking&&Math.abs(o)<=a)return this.context.graph.translateElementBy({[i.id]:[0,-o]},!1),!1;if(this.isVerticalSticking&&Math.abs(s)<=a)return this.context.graph.translateElementBy({[i.id]:[-s,0]},!1),!1;this.isHorizontalSticking=!1,this.isVerticalSticking=!1,this.enableStick=!1,setTimeout(()=>{this.enableStick=!0},200)}return this.enableStick},this.calcSnaplineMetadata=(r,i)=>{const{tolerance:a,shape:s}=this.options,{min:[o,l],max:[c,u],center:[h,d]}=i;let f=null,v=null,g=null,p=null,y=null,b=null;return this.getNodes().some(E=>{if(Wn(r.id,E.id))return!1;const O=Nx(E,s).getRenderBounds(),{min:[k,R],max:[z,B],center:[V,U]}=O;return f===null&&(Lr(V,h){this.initSnapline()},this.onDrag=r=>i0(this,void 0,void 0,function*(){const{target:i}=r;if(this.options.autoSnap&&!this.enableSnap(r))return;const a=Nx(i,this.options.shape).getRenderBounds(),s=this.calcSnaplineMetadata(i,a);this.hideSnapline(),(s.verticalX!==null||s.horizontalY!==null)&&this.updateSnapline(s),this.options.autoSnap&&(yield this.autoSnapToLine(i.id,a,s))}),this.onDragEnd=()=>{this.hideSnapline()},this.bindEvents()}getNodes(){var t;const{filter:e}=this.options,i=(((t=this.context.element)===null||t===void 0?void 0:t.getNodes())||[]).filter(a=>{var s;return C1(a)&&((s=this.context.viewport)===null||s===void 0?void 0:s.isInViewport(a.getRenderBounds()))});return e?i.filter(a=>e(a)):i}hideSnapline(){this.horizontalLine.style.visibility="hidden",this.verticalLine.style.visibility="hidden"}getLineWidth(t){const{lineWidth:e}=this.options[`${t}LineStyle`];return+(e||a0.lineWidth||1)/this.context.graph.getZoom()}updateSnapline(t){const{verticalX:e,verticalMinY:r,verticalMaxY:i,horizontalY:a,horizontalMinX:s,horizontalMaxX:o}=t,[l,c]=this.context.canvas.getSize(),{offset:u}=this.options;a!==null?Object.assign(this.horizontalLine.style,{x1:u===1/0?0:s-u,y1:a,x2:u===1/0?l:o+u,y2:a,visibility:"visible",lineWidth:this.getLineWidth("horizontal")}):this.horizontalLine.style.visibility="hidden",e!==null?Object.assign(this.verticalLine.style,{x1:e,y1:u===1/0?0:r-u,x2:e,y2:u===1/0?c:i+u,visibility:"visible",lineWidth:this.getLineWidth("vertical")}):this.verticalLine.style.visibility="hidden"}getDelta(t){const e=this.context.graph.getZoom();return Fi([t.dx,t.dy],e)}bindEvents(){return i0(this,void 0,void 0,function*(){const{graph:t}=this.context;t.on(Mi.DRAG_START,this.onDragStart),t.on(Mi.DRAG,this.onDrag),t.on(Mi.DRAG_END,this.onDragEnd)})}unbindEvents(){const{graph:t}=this.context;t.off(Mi.DRAG_START,this.onDragStart),t.off(Mi.DRAG,this.onDrag),t.off(Mi.DRAG_END,this.onDragEnd)}destroyElements(){var t,e;(t=this.horizontalLine)===null||t===void 0||t.destroy(),(e=this.verticalLine)===null||e===void 0||e.destroy()}destroy(){this.destroyElements(),this.unbindEvents(),super.destroy()}}Fh.defaultOptions={tolerance:5,offset:20,autoSnap:!0,shape:"key",verticalLineStyle:{stroke:"#1783FF"},horizontalLineStyle:{stroke:"#1783FF"},filter:()=>!0};const Lr=(n,t)=>Math.abs(n-t),Nx=(n,t)=>typeof t=="function"?t(n):n.getShape(t);var kx=null,s6=null;function zh(n){return n instanceof Date?n:new Date(n)}function o6(n){for(var t=__read(n,2),e=t[0],r=t[1],i=kx.indexOf(e),a=kx.indexOf(r),s="",o=i;o<=a;o+=1)if(s+=s6[o],o2&&(l=":"),s+=l}return s}function jr(n,t){var e={YYYY:n.getFullYear(),MM:n.getMonth()+1,DD:n.getDate(),HH:n.getHours(),mm:n.getMinutes(),ss:n.getSeconds()},r=t;return Object.keys(e).forEach(function(i){var a=e[i];r=r.replace(i,i==="YYYY"?"".concat(a):"".concat(a).padStart(2,"0"))}),r}function wj(n,t){return zh(n).getTime()-zh(t).getTime()}function Sj(n,t){var e=__read([zh(n),zh(t)],2),r=e[0],i=e[1];return r.getFullYear()!==i.getFullYear()?"year":r.getMonth()!==i.getMonth()?"month":r.getDay()!==i.getDay()?"day":r.getHours()!==i.getHours()?"hour":r.getMinutes()!==i.getMinutes()?"minute":"second"}function Mj(n,t){var e=new Date(n),r={year:function(i){i.setMonth(0),i.setHours(0,0,0,0)},month:function(i){i.setDate(1),i.setHours(0,0,0,0)},day:function(i){return i.setHours(0,0,0,0)},hour:function(i){return i.setMinutes(0,0,0)},minute:function(i){return i.setSeconds(0,0)},second:function(i){return i.setMilliseconds(0)}};return r[t](e),jr(e,o6(["year",t]))}function l6(n,t){if(n.length<=t)return n;for(var e=Math.floor(n.length/t),r=[],i=0;i180?1:0,B=n>t?0:1,V=!1;return V?"M".concat(e,",").concat(r,",L").concat(v,",").concat(g,",A").concat(o,",").concat(l,",0,").concat(z,",").concat(B,",").concat(y,",").concat(b,",L").concat(e,",").concat(r):"M".concat(v,",").concat(g,",A").concat(o,",").concat(l,",0,").concat(z,",").concat(B,",").concat(y,",").concat(b)}function M6(n){var t=n.attributes,e=t.startAngle,r=t.endAngle,i=t.center,a=t.radius;return(0,Z.ev)((0,Z.ev)([e,r],(0,Z.CR)(i),!1),[a],!1)}function A6(n,t,e,r){var i=t.startAngle,a=t.endAngle,s=t.center,o=t.radius;return n.selectAll(hn.line.class).data([{d:jx.apply(void 0,(0,Z.ev)((0,Z.ev)([i,a],(0,Z.CR)(s),!1),[o],!1))}],function(l,c){return c}).join(function(l){return l.append("path").attr("className",hn.line.name).styles(t).styles({d:function(c){return c.d}})},function(l){return l.transition(function(){var c=this,u=E6(this,M6(this),(0,Z.ev)((0,Z.ev)([i,a],(0,Z.CR)(s),!1),[o],!1),r.update);if(u){var h=function(){var d=xr(c.attributes,"__keyframe_data__");c.style.d=jx.apply(void 0,(0,Z.ev)([],(0,Z.CR)(d),!1))};u.onframe=h,u.onfinish=h}return u}).styles(t)},function(l){return l.remove()}).styles(e).transitions()}function T6(n,t){var e=t.truncRange,r=t.truncShape,i=t.lineExtension}function O6(n,t,e){e===void 0&&(e=[0,0]);var r=(0,Z.CR)([n,t,e],3),i=(0,Z.CR)(r[0],2),a=i[0],s=i[1],o=(0,Z.CR)(r[1],2),l=o[0],c=o[1],u=(0,Z.CR)(r[2],2),h=u[0],d=u[1],f=(0,Z.CR)([l-a,c-s],2),v=f[0],g=f[1],p=Math.sqrt(Math.pow(v,2)+Math.pow(g,2)),y=(0,Z.CR)([-h/p,d/p],2),b=y[0],E=y[1];return[b*v,b*g,E*v,E*g]}function Wx(n){var t=(0,Z.CR)(n,2),e=(0,Z.CR)(t[0],2),r=e[0],i=e[1],a=(0,Z.CR)(t[1],2),s=a[0],o=a[1];return{x1:r,y1:i,x2:s,y2:o}}function C6(n,t,e,r){var i=t.showTrunc,a=t.startPos,s=t.endPos,o=t.truncRange,l=t.lineExtension,c=(0,Z.CR)([a,s],2),u=(0,Z.CR)(c[0],2),h=u[0],d=u[1],f=(0,Z.CR)(c[1],2),v=f[0],g=f[1],p=(0,Z.CR)(l?O6(a,s,l):new Array(4).fill(0),4),y=p[0],b=p[1],E=p[2],O=p[3],k=function(gt){return n.selectAll(hn.line.class).data(gt,function(pt,Pt){return Pt}).join(function(pt){return pt.append("line").attr("className",function(Pt){return"".concat(hn.line.name," ").concat(Pt.className)}).styles(e).transition(function(Pt){return Vi(this,Wx(Pt.line),!1)})},function(pt){return pt.styles(e).transition(function(Pt){var jt=Pt.line;return Vi(this,Wx(jt),r.update)})},function(pt){return pt.remove()}).transitions()};if(!i||!o)return k([{line:[[h+y,d+b],[v+E,g+O]],className:hn.line.name}]);var R=(0,Z.CR)(o,2),z=R[0],B=R[1],V=v-h,U=g-d,J=(0,Z.CR)([h+V*z,d+U*z],2),$=J[0],st=J[1],ct=(0,Z.CR)([h+V*B,d+U*B],2),ft=ct[0],Nt=ct[1],Ct=k([{line:[[h+y,d+b],[$,st]],className:hn.lineFirst.name},{line:[[ft,Nt],[v+E,g+O]],className:hn.lineSecond.name}]);return T6(n,t),Ct}function N6(n,t,e,r){var i=e.showArrow,a=e.showTrunc,s=e.lineArrow,o=e.lineArrowOffset,l=e.lineArrowSize,c;if(t==="arc"?c=n.select(hn.line.class):a?c=n.select(hn.lineSecond.class):c=n.select(hn.line.class),!i||!s||e.type==="arc"&&zx(e.startAngle,e.endAngle)){var u=c.node();u&&(u.style.markerEnd=void 0);return}var h=wa(s);h.attr(r),$v(h,l,!0),c.style("markerEnd",h).style("markerEndOffset",-o)}function k6(n,t,e){var r=t.type,i,a=Le(t,"line");return r==="linear"?i=C6(n,t,Dx(a,"arrow"),e):i=A6(n,t,Dx(a,"arrow"),e),N6(n,r,t,a),i}function P6(n,t){return h0(n,t.gridDirection,t)}function Gx(n){var t=n.type,e=n.gridCenter;return t==="linear"?e:e||n.center}function R6(n,t){var e=t.gridLength;return n.map(function(r,i){var a=r.value,s=(0,Z.CR)(Gh(a,t),2),o=s[0],l=s[1],c=(0,Z.CR)(Sa(P6(a,t),e),2),u=c[0],h=c[1];return{id:i,points:[[o,l],[o+u,l+h]]}})}function L6(n,t){var e=t.gridControlAngles,r=Gx(t);if(!r)throw new Error("grid center is not provide");if(n.length<2)throw new Error("Invalid grid data");if(!e||e.length===0)throw new Error("Invalid gridControlAngles");var i=(0,Z.CR)(r,2),a=i[0],s=i[1];return n.map(function(o,l){var c=o.value,u=(0,Z.CR)(Gh(c,t),2),h=u[0],d=u[1],f=(0,Z.CR)([h-a,d-s],2),v=f[0],g=f[1],p=[];return e.forEach(function(y){var b=Ao(y),E=(0,Z.CR)([Math.cos(b),Math.sin(b)],2),O=E[0],k=E[1],R=v*O-g*k+a,z=v*k+g*O+s;p.push([R,z])}),{points:p,id:l}})}function _6(n,t,e,r){var i=Le(e,"grid"),a=i.type,s=i.areaFill,o=Gx(e),l=u0(t,e.gridFilter),c=a==="segment"?R6(l,e):L6(l,e),u=(0,Z.pi)((0,Z.pi)({},i),{center:o,areaFill:ue(s)?l.map(function(h,d){return ti(s,[h,d,l])}):s,animate:r,data:c});return n.selectAll(hn.grid.class).data([1]).join(function(h){return h.append(function(){return new m6({style:u})}).attr("className",hn.grid.name)},function(h){return h.transition(function(){return this.update(u)})},function(h){return h.remove()}).transitions()}function wr(n,t,e,r,i){return r===void 0&&(r=!0),i===void 0&&(i=!1),r&&n===t||i&&n===e?!0:n>t&&n0,b=r-l,E=i-c,O=d*E-f*b;if(O<0===y)return!1;var k=v*E-g*b;return!(k<0===y||O>p===y||k>p===y)}function Ux(n,t){var e=[[n[0],n[1],n[2],n[3]],[n[2],n[3],n[4],n[5]],[n[4],n[5],n[6],n[7]],[n[6],n[7],n[0],n[1]]];return e.some(function(r){return Vx(t,r)})}var Nj={lineToLine:Vx,intersectBoxLine:Ux,getBounds:Zh};function G6(n,t,e){var r,i,a=Zh(n,e).flat(1),s=Zh(t,e).flat(1),o=[[a[0],a[1],a[2],a[3]],[a[0],a[1],a[4],a[5]],[a[4],a[5],a[6],a[7]],[a[2],a[3],a[6],a[7]]];try{for(var l=(0,Z.XA)(o),c=l.next();!c.done;c=l.next()){var u=c.value;if(Ux(s,u))return!0}}catch(h){r={error:h}}finally{try{c&&!c.done&&(i=l.return)&&i.call(l)}finally{if(r)throw r.error}}return!1}function Z6(n,t){var e=n.type,r=n.labelDirection,i=n.crossSize;if(!i)return!1;if(e==="arc"){var a=n.center,s=n.radius,o=(0,Z.CR)(a,2),l=o[0],c=o[1],u=r==="negative"?0:i,h=-s-u,d=s+u,f=(0,Z.CR)(Er(t),4),v=f[0],g=f[1],p=f[2],y=f[3];return new f0(l+h-y,c+h-v,l+d+g,c+d+p)}var b=(0,Z.CR)(n.startPos,2),E=b[0],O=b[1],k=(0,Z.CR)(n.endPos,2),R=k[0],z=k[1],B=(0,Z.CR)(Fx(n)?[-t,0,t,0]:[0,t,0,-t],4),V=B[0],U=B[1],J=B[2],$=B[3],st=Oo(0,n),ct=Sa(st,i),ft=new f0(E,O,R,z);return ft.x1+=$,ft.y1+=V,ft.x2+=U+ct[0],ft.y2+=J+ct[1],ft}function Vh(n,t,e){var r,i,a=t.crossPadding,s=new Set,o=null,l=Z6(t,a),c=function(v){return l?W6(l,v):!0},u=function(v,g){return!v||!v.firstChild?!0:!G6(v.firstChild,g.firstChild,Er(e))};try{for(var h=(0,Z.XA)(n),d=h.next();!d.done;d=h.next()){var f=d.value;c(f)?!o||u(o,f)?o=f:(s.add(o),s.add(f)):s.add(f)}}catch(v){r={error:v}}finally{try{d&&!d.done&&(i=h.return)&&i.call(h)}finally{if(r)throw r.error}}return Array.from(s)}function v0(n,t){return t===void 0&&(t={}),be(n)?0:typeof n=="number"?n:Math.floor(WI(n,t))}function V6(n,t,e,r){if(!(n.length<=0)){var i=t.suffix,a=i===void 0?"...":i,s=t.minLength,o=t.maxLength,l=o===void 0?1/0:o,c=t.step,u=c===void 0?" ":c,h=t.margin,d=h===void 0?[0,0,0,0]:h,f=wx(r.getTextShape(n[0])),v=v0(u,f),g=s?v0(s,f):v,p=v0(l,f);(be(p)||p===1/0)&&(p=Math.max.apply(null,n.map(function(ct){return ct.getBBox().width})));for(var y=n.slice(),b=(0,Z.CR)(d,4),E=b[0],O=E===void 0?0:E,k=b[1],R=k===void 0?0:k,z=b[2],B=z===void 0?O:z,V=b[3],U=V===void 0?R:V,J=function(ct){if(y.forEach(function(ft){r.ellipsis(r.getTextShape(ft),ct,a)}),y=Vh(n,e,d),y.length<1)return{value:void 0}},$=p;$>g+v;$-=v){var st=J($);if(typeof st=="object")return st.value}}}var U6=function(n){return n!==void 0&&n!=null&&!Number.isNaN(n)},Y6={parity:function(n,t){var e=t.seq,r=e===void 0?2:e;return n.filter(function(i,a){return a%r?(Gi(i),!1):!0})}},H6=function(n){return n.filter(U6)};function X6(n,t,e,r){var i=n.length,a=t.keepHeader,s=t.keepTail;if(!(i<=1||i===2&&a&&s)){var o=Y6.parity,l=function(E){return E.forEach(r.show),E},c=2,u=n.slice(),h=n.slice(),d=Math.min.apply(Math,(0,Z.ev)([1],(0,Z.CR)(n.map(function(E){return E.getBBox().width})),!1));if(e.type==="linear"&&(d0(e)||Fx(e))){var f=Ex(n[0]).left,v=Ex(n[i-1]).right,g=Math.abs(v-f)||1;c=Math.max(Math.floor(i*d/g),c)}var p,y;for(a&&(p=u.splice(0,1)[0]),s&&(y=u.splice(-1,1)[0],u.reverse()),l(u);co)){if(e.type==="linear"&&d0(e)){if(y(o),g())return}else for(var b=v;b<=o;b++)if(y(b),g())return;c&&y(f)}}var J6=new Map([["hide",X6],["rotate",K6],["ellipsis",V6],["wrap",q6]]);function $6(n,t,e){return t.labelOverlap.length<1?!1:e==="hide"?!YD(n[0]):e==="rotate"?!n.some(function(r){var i;return!!(!((i=r.attr("transform"))===null||i===void 0)&&i.includes("rotate"))}):e==="ellipsis"||e==="wrap"?n.filter(function(r){return r.querySelector("text")}).length>=1:!0}function t5(n,t,e,r){var i=t.labelOverlap,a=i===void 0?[]:i;a.length&&a.forEach(function(s){var o=s.type,l=J6.get(o);$6(n,t,o)&&(l==null||l(n,s,t,r,e))})}function e5(){for(var n=[],t=0;td[0]&&R0&&Number.isFinite(n)?t:e},Dj=function(n,t){return n*t},Ij=function(n,t){return n/2+(t||0)/2},m0=function(n){return n};class nE{constructor(t){this.options=yr({},this.getDefaultOptions()),this.update(t)}getOptions(){return this.options}update(t={}){this.options=yr({},this.options,t),this.rescale(t)}rescale(t){}}function y0(n,t){return t-n?e=>(e-n)/(t-n):e=>.5}function Uh(n,...t){return t.reduce((e,r)=>i=>e(r(i)),n)}function y5(n,t,e,r,i){let a=e||0,s=r||n.length;const o=i||(l=>l);for(;at?s=l:a=l+1}return a}var b5=S(75196),x5=S.n(b5);function b0(n,t,e){let r=e;return r<0&&(r+=1),r>1&&(r-=1),r<1/6?n+(t-n)*6*r:r<1/2?t:r<2/3?n+(t-n)*(2/3-r)*6:n}function E5(n){const t=n[0]/360,e=n[1]/100,r=n[2]/100,i=n[3];if(e===0)return[r*255,r*255,r*255,i];const a=r<.5?r*(1+e):r+e-r*e,s=2*r-a,o=b0(s,a,t+1/3),l=b0(s,a,t),c=b0(s,a,t-1/3);return[o*255,l*255,c*255,i]}function rE(n){const t=x5().get(n);if(!t)return null;const{model:e,value:r}=t;return e==="rgb"?r:e==="hsl"?E5(r):null}const Yh=(n,t)=>e=>n*(1-e)+t*e,w5=(n,t)=>{const e=rE(n),r=rE(t);return e===null||r===null?e?()=>n:()=>t:i=>{const a=new Array(4);for(let u=0;u<4;u+=1){const h=e[u],d=r[u];a[u]=h*(1-i)+d*i}const[s,o,l,c]=a;return`rgba(${Math.round(s)}, ${Math.round(o)}, ${Math.round(l)}, ${c})`}},S5=(n,t)=>typeof n=="number"&&typeof t=="number"?Yh(n,t):typeof n=="string"&&typeof t=="string"?w5(n,t):()=>n,M5=(n,t)=>{const e=Yh(n,t);return r=>Math.round(e(r))};function A5(n){return n===null}function iE(n){return!Te(n)&&!A5(n)&&!Number.isNaN(n)}const x0=Math.sqrt(50),E0=Math.sqrt(10),w0=Math.sqrt(2);function Hh(n,t,e){const r=(t-n)/Math.max(0,e),i=Math.floor(Math.log(r)/Math.LN10),a=r/is(10,i);return i>=0?(a>=x0?10:a>=E0?5:a>=w0?2:1)*is(10,i):-is(10,-i)/(a>=x0?10:a>=E0?5:a>=w0?2:1)}function Bj(n,t,e){const r=Math.abs(t-n)/Math.max(0,e);let i=is(10,Math.floor(Math.log(r)/Math.LN10));const a=r/i;return a>=x0?i*=10:a>=E0?i*=5:a>=w0&&(i*=2),t{const r=[n,t];let i=0,a=r.length-1,s=r[i],o=r[a],l;return o0?(s=Math.floor(s/l)*l,o=Math.ceil(o/l)*l,l=Hh(s,o,e)):l<0&&(s=Math.ceil(s*l)/l,o=Math.floor(o*l)/l,l=Hh(s,o,e)),l>0?(r[i]=Math.floor(s/l)*l,r[a]=Math.ceil(o/l)*l):l<0&&(r[i]=Math.ceil(s*l)/l,r[a]=Math.floor(o*l)/l),r};function O5(n,t){const e=tt?n:t;return i=>Math.min(Math.max(e,i),r)}const C5=(n,t,e)=>{const[r,i]=n,[a,s]=t;let o,l;return r{const r=Math.min(n.length,t.length)-1,i=new Array(r),a=new Array(r),s=n[0]>n[r],o=s?[...n].reverse():n,l=s?[...t].reverse():t;for(let c=0;c{const u=y5(n,c,1,r)-1,h=i[u],d=a[u];return Uh(d,h)(c)}},aE=(n,t,e,r)=>(Math.min(n.length,t.length)>2?N5:C5)(n,t,r?M5:e);class k5 extends nE{getDefaultOptions(){return{domain:[0,1],range:[0,1],nice:!1,clamp:!1,round:!1,interpolate:Yh,tickCount:5}}map(t){return iE(t)?this.output(t):this.options.unknown}invert(t){return iE(t)?this.input(t):this.options.unknown}nice(){if(!this.options.nice)return;const[t,e,r,...i]=this.getTickMethodOptions();this.options.domain=this.chooseNice()(t,e,r,...i)}getTicks(){const{tickMethod:t}=this.options,[e,r,i,...a]=this.getTickMethodOptions();return t(e,r,i,...a)}getTickMethodOptions(){const{domain:t,tickCount:e}=this.options,r=t[0],i=t[t.length-1];return[r,i,e]}chooseNice(){return T5}rescale(){this.nice();const[t,e]=this.chooseTransforms();this.composeOutput(t,this.chooseClamp(t)),this.composeInput(t,e,this.chooseClamp(e))}chooseClamp(t){const{clamp:e,range:r}=this.options,i=this.options.domain.map(t),a=Math.min(i.length,r.length);return e?O5(i[0],i[a-1]):m0}composeOutput(t,e){const{domain:r,range:i,round:a,interpolate:s}=this.options,o=aE(r.map(t),i,s,a);this.output=Uh(o,e,t)}composeInput(t,e,r){const{domain:i,range:a}=this.options,s=aE(a,i.map(t),Yh);this.input=Uh(e,r,s)}}const P5=(n,t,e)=>{let r,i,a=n,s=t;if(a===s&&e>0)return[a];let o=Hh(a,s,e);if(o===0||!Number.isFinite(o))return[];if(o>0){a=Math.ceil(a/o),s=Math.floor(s/o),i=new Array(r=Math.ceil(s-a+1));for(let l=0;l`${t}`:typeof n=="object"?t=>JSON.stringify(t):t=>t}class M0 extends nE{getDefaultOptions(){return{domain:[],range:[],unknown:S0}}constructor(t){super(t)}map(t){return this.domainIndexMap.size===0&&lE(this.domainIndexMap,this.getDomain(),this.domainKey),cE({value:this.domainKey(t),mapper:this.domainIndexMap,from:this.getDomain(),to:this.getRange(),notFoundReturn:this.options.unknown})}invert(t){return this.rangeIndexMap.size===0&&lE(this.rangeIndexMap,this.getRange(),this.rangeKey),cE({value:this.rangeKey(t),mapper:this.rangeIndexMap,from:this.getRange(),to:this.getDomain(),notFoundReturn:this.options.unknown})}rescale(t){const[e]=this.options.domain,[r]=this.options.range;if(this.domainKey=uE(e),this.rangeKey=uE(r),!this.rangeIndexMap){this.rangeIndexMap=new Map,this.domainIndexMap=new Map;return}(!t||t.range)&&this.rangeIndexMap.clear(),(!t||t.domain||t.compare)&&(this.domainIndexMap.clear(),this.sortedDomain=void 0)}clone(){return new M0(this.options)}getRange(){return this.options.range}getDomain(){if(this.sortedDomain)return this.sortedDomain;const{domain:t,compare:e}=this.options;return this.sortedDomain=e?[...t].sort(e):t,this.sortedDomain}}function D5(n){const t=Math.min(...n);return n.map(e=>e/t)}function I5(n,t){const e=n.length,r=t-e;return r>0?[...n,...new Array(r).fill(1)]:r<0?n.slice(0,t):n}function B5(n){return Math.round(n*1e12)/1e12}function F5(n){const{domain:t,range:e,paddingOuter:r,paddingInner:i,flex:a,round:s,align:o}=n,l=t.length,c=I5(a,l),[u,h]=e,d=h-u,f=2/l*r+1-1/l*i,v=d/f,g=v*i/l,p=v-l*g,y=D5(c),b=y.reduce(($,st)=>$+st),E=p/b,O=new oE(t.map(($,st)=>{const ct=y[st]*E;return[$,s?Math.floor(ct):ct]})),k=new oE(t.map(($,st)=>{const ft=y[st]*E+g;return[$,s?Math.floor(ft):ft]})),R=Array.from(k.values()).reduce(($,st)=>$+st),B=(d-(R-R/l*i))*o,V=u+B;let U=s?Math.round(V):V;const J=new Array(l);for(let $=0;$d+E*u);return{valueStep:u,valueBandWidth:h,adjustedRange:y}}class A0 extends M0{getDefaultOptions(){return{domain:[],range:[0,1],align:.5,round:!1,paddingInner:0,paddingOuter:0,padding:0,unknown:S0,flex:[]}}constructor(t){super(t)}clone(){return new A0(this.options)}getStep(t){return this.valueStep===void 0?1:typeof this.valueStep=="number"?this.valueStep:t===void 0?Array.from(this.valueStep.values())[0]:this.valueStep.get(t)}getBandWidth(t){return this.valueBandWidth===void 0?1:typeof this.valueBandWidth=="number"?this.valueBandWidth:t===void 0?Array.from(this.valueBandWidth.values())[0]:this.valueBandWidth.get(t)}getRange(){return this.adjustedRange}getPaddingInner(){const{padding:t,paddingInner:e}=this.options;return t>0?t:e}getPaddingOuter(){const{padding:t,paddingOuter:e}=this.options;return t>0?t:e}rescale(){super.rescale();const{align:t,domain:e,range:r,round:i,flex:a}=this.options,{adjustedRange:s,valueBandWidth:o,valueStep:l}=z5({align:t,range:r,round:i,flex:a,paddingInner:this.getPaddingInner(),paddingOuter:this.getPaddingOuter(),domain:e});this.valueStep=l,this.valueBandWidth=o,this.adjustedRange=s}}var j5=function(n){(0,Z.ZT)(t,n);function t(e){var r=this,i=e.style,a=(0,Z._T)(e,["style"]);return r=n.call(this,yr({},{type:"column"},(0,Z.pi)({style:i},a)))||this,r.columnsGroup=new rr({name:"columns"}),r.appendChild(r.columnsGroup),r.render(),r}return t.prototype.render=function(){var e=this.attributes,r=e.columns,i=e.x,a=e.y;this.columnsGroup.style.transform="translate(".concat(i,", ").concat(a,")"),de(this.columnsGroup).selectAll(".column").data(r.flat()).join(function(s){return s.append("rect").attr("className","column").each(function(o){this.attr(o)})},function(s){return s.each(function(o){this.attr(o)})},function(s){return s.remove()})},t.prototype.update=function(e){this.attr($n({},this.attributes,e)),this.render()},t.prototype.clear=function(){this.removeChildren()},t}(bn),W5=function(n){(0,Z.ZT)(t,n);function t(e){var r=this,i=e.style,a=(0,Z._T)(e,["style"]);return r=n.call(this,yr({},{type:"lines"},(0,Z.pi)({style:i},a)))||this,r.linesGroup=r.appendChild(new rr),r.areasGroup=r.appendChild(new rr),r.render(),r}return t.prototype.render=function(){var e=this.attributes,r=e.lines,i=e.areas,a=e.x,s=e.y;this.style.transform="translate(".concat(a,", ").concat(s,")"),r&&this.renderLines(r),i&&this.renderAreas(i)},t.prototype.clear=function(){this.linesGroup.removeChildren(),this.areasGroup.removeChildren()},t.prototype.update=function(e){this.attr($n({},this.attributes,e)),this.render()},t.prototype.renderLines=function(e){de(this.linesGroup).selectAll(".line").data(e).join(function(r){return r.append("path").attr("className","line").each(function(i){this.attr(i)})},function(r){return r.each(function(i){this.attr(i)})},function(r){return r.remove()})},t.prototype.renderAreas=function(e){de(this.linesGroup).selectAll(".area").data(e).join(function(r){return r.append("path").attr("className","area").each(function(i){this.attr(i)})},function(r){return r.each(function(i){this.style(i)})},function(r){return r.remove()})},t}(bn);function G5(n,t,e,r){var i,a=[],s=!!r,o,l,c=[1/0,1/0],u=[-1/0,-1/0],h,d,f;if(s){i=(0,Z.CR)(r,2),c=i[0],u=i[1];for(var v=0,g=n.length;vs&&(e=(0,Z.CR)([s,o],2),o=e[0],s=e[1]),n.map(function(l){var c=l.map(function(u,h){return[r.map(h),Nn(i.map(u),o,s)]});return c})}function Zl(n,t){t===void 0&&(t=!1);var e=t?n.length-1:0,r=n.map(function(i,a){return(0,Z.ev)([a===e?"M":"L"],(0,Z.CR)(i),!1)});return t?r.reverse():r}function Xh(n,t){if(t===void 0&&(t=!1),n.length<=2)return Zl(n);for(var e=[],r=n.length,i=0;i=0;i-=1){var a=n[i],s=Zl(a),o=void 0;if(i===0)o=T0(s,t,e);else{var l=n[i-1],c=Zl(l,!0);c[0][0]="L",o=(0,Z.ev)((0,Z.ev)((0,Z.ev)([],(0,Z.CR)(s),!1),(0,Z.CR)(c),!1),[["Z"]],!1)}r.push(o)}return r}function H5(n,t,e){for(var r=[],i=n.length-1;i>=0;i-=1){var a=n[i],s=Xh(a),o=void 0;if(i===0)o=T0(s,t,e);else{var l=n[i-1],c=Xh(l,!0),u=a[0];c[0][0]="L",o=(0,Z.ev)((0,Z.ev)((0,Z.ev)([],(0,Z.CR)(s),!1),(0,Z.CR)(c),!1),[(0,Z.ev)(["M"],(0,Z.CR)(u),!1),["Z"]],!1)}r.push(o)}return r}var X5=function(n,t){if(Ur(n)){for(var e,r=1/0,i=0;ir&&(e=a,r=s)}return e}};function hE(n){return n.length===0?[0,0]:[ic(X5(n,function(t){return ic(t)||0})),ac(K5(n,function(t){return ac(t)||0}))]}function dE(n){for(var t=uo(n),e=t[0].length,r=(0,Z.CR)([Array(e).fill(0),Array(e).fill(0)],2),i=r[0],a=r[1],s=0;s=0?(o[l]+=i[l],i[l]=o[l]):(o[l]+=a[l],a[l]=o[l]);return t}var Q5=function(n){(0,Z.ZT)(t,n);function t(e){return n.call(this,e,{type:"line",x:0,y:0,width:200,height:20,isStack:!1,color:["#83daad","#edbf45","#d2cef9","#e290b3","#6f63f4"],smooth:!0,lineLineWidth:1,areaOpacity:0,isGroup:!1,columnLineWidth:1,columnStroke:"#fff",scale:1,spacing:0})||this}return Object.defineProperty(t.prototype,"rawData",{get:function(){var e=this.attributes.data;if(!e||(e==null?void 0:e.length)===0)return[[]];var r=uo(e);return re(r[0])?[r]:r},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"data",{get:function(){return this.attributes.isStack?dE(this.rawData):this.rawData},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"scales",{get:function(){return this.createScales(this.data)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"baseline",{get:function(){var e=this.scales.y,r=(0,Z.CR)(e.getOptions().domain||[0,0],2),i=r[0],a=r[1];return a<0?e.map(a):e.map(i<0?0:i)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"containerShape",{get:function(){var e=this.attributes,r=e.width,i=e.height;return{width:r,height:i}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"linesStyle",{get:function(){var e=this,r=this.attributes,i=r.type,a=r.isStack,s=r.smooth;if(i!=="line")throw new Error("linesStyle can only be used in line type");var o=Le(this.attributes,"area"),l=Le(this.attributes,"line"),c=this.containerShape.width,u=this.data;if(u[0].length===0)return{lines:[],areas:[]};var h=this.scales,d=h.x,f=h.y,v=V5(u,{type:"line",x:d,y:f}),g=[];if(o){var p=this.baseline;a?g=s?H5(v,c,p):Y5(v,c,p):g=U5(v,s,c,p)}return{lines:v.map(function(y,b){return(0,Z.pi)({stroke:e.getColor(b),d:s?Xh(y):Zl(y)},l)}),areas:g.map(function(y,b){return(0,Z.pi)({d:y,fill:e.getColor(b)},o)})}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"columnsStyle",{get:function(){var e=this,r=Le(this.attributes,"column"),i=this.attributes,a=i.isStack,s=i.type,o=i.scale;if(s!=="column")throw new Error("columnsStyle can only be used in column type");var l=this.containerShape.height,c=this.rawData;if(!c)return{columns:[]};a&&(c=dE(c));var u=this.createScales(c),h=u.x,d=u.y,f=(0,Z.CR)(hE(c),2),v=f[0],g=f[1],p=new Gl({domain:[0,g-(v>0?0:v)],range:[0,l*o]}),y=h.getBandWidth(),b=this.rawData;return{columns:c.map(function(E,O){return E.map(function(k,R){var z=y/c.length,B=function(){return{x:h.map(R)+z*O,y:k>=0?d.map(k):d.map(0),width:z,height:p.map(Math.abs(k))}},V=function(){return{x:h.map(R),y:d.map(k),width:y,height:p.map(b[O][R])}};return(0,Z.pi)((0,Z.pi)({fill:e.getColor(O)},r),a?V():B())})})}},enumerable:!1,configurable:!0}),t.prototype.render=function(e,r){nI(r,".container","rect").attr("className","container").node();var i=e.type,a=e.x,s=e.y,o="spark".concat(i),l=(0,Z.pi)({x:a,y:s},i==="line"?this.linesStyle:this.columnsStyle);de(r).selectAll(".spark").data([i]).join(function(c){return c.append(function(u){return u==="line"?new W5({className:o,style:l}):new j5({className:o,style:l})}).attr("className","spark ".concat(o))},function(c){return c.update(l)},function(c){return c.remove()})},t.prototype.getColor=function(e){var r=this.attributes.color;return Ur(r)?r[e%r.length]:ue(r)?r.call(null,e):r},t.prototype.createScales=function(e){var r,i,a=this.attributes,s=a.type,o=a.scale,l=a.range,c=l===void 0?[]:l,u=a.spacing,h=this.containerShape,d=h.width,f=h.height,v=(0,Z.CR)(hE(e),2),g=v[0],p=v[1],y=new Gl({domain:[(r=c[0])!==null&&r!==void 0?r:g,(i=c[1])!==null&&i!==void 0?i:p],range:[f,f*(1-o)]});return s==="line"?{type:s,x:new Gl({domain:[0,e[0].length-1],range:[0,d]}),y}:{type:s,x:new A0({domain:e[0].map(function(b,E){return E}),range:[0,d],paddingInner:u,paddingOuter:u/2,align:.5}),y}},t.tag="sparkline",t}(Rn),fE={fill:"#fff",lineWidth:1,radius:2,size:10,stroke:"#bfbfbf",strokeOpacity:1,zIndex:0},vE={fill:"#000",fillOpacity:.45,fontSize:12,textAlign:"center",textBaseline:"middle",zIndex:1},gE={x:0,y:0,orientation:"horizontal",showLabel:!0,type:"start"},la=Zi({foreground:"foreground",handle:"handle",selection:"selection",sparkline:"sparkline",sparklineGroup:"sparkline-group",track:"track",brushArea:"brush-area"},"slider"),$a=Zi({labelGroup:"label-group",label:"label",iconGroup:"icon-group",icon:"icon",iconRect:"icon-rect",iconLine:"icon-line"},"handle"),q5=function(n){(0,Z.ZT)(t,n);function t(){return n!==null&&n.apply(this,arguments)||this}return t.prototype.render=function(e,r){var i=e.x,a=e.y,s=e.size,o=s===void 0?10:s,l=e.radius,c=l===void 0?o/4:l,u=e.orientation,h=(0,Z._T)(e,["x","y","size","radius","orientation"]),d=o,f=d*2.4,v=de(r).maybeAppendByClassName($a.iconRect,"rect").styles((0,Z.pi)((0,Z.pi)({},h),{width:d,height:f,radius:c,x:i-d/2,y:a-f/2,transformOrigin:"center"})),g=i+1/3*d-d/2,p=i+2/3*d-d/2,y=a+1/4*f-f/2,b=a+3/4*f-f/2;v.maybeAppendByClassName("".concat($a.iconLine,"-1"),"line").styles((0,Z.pi)({x1:g,x2:g,y1:y,y2:b},h)),v.maybeAppendByClassName("".concat($a.iconLine,"-2"),"line").styles((0,Z.pi)({x1:p,x2:p,y1:y,y2:b},h)),u==="vertical"&&(v.node().style.transform="rotate(90)")},t}(Rn),J5=function(n){(0,Z.ZT)(t,n);function t(e){return n.call(this,e,gE)||this}return t.prototype.renderLabel=function(e){var r=this,i=this.attributes,a=i.x,s=i.y,o=i.showLabel,l=Le(this.attributes,"label"),c=l.x,u=c===void 0?0:c,h=l.y,d=h===void 0?0:h,f=l.transform,v=l.transformOrigin,g=(0,Z._T)(l,["x","y","transform","transformOrigin"]),p=(0,Z.CR)(Ea(g,[]),2),y=p[0],b=p[1],E=de(e).maybeAppendByClassName($a.labelGroup,"g").styles(b),O=(0,Z.pi)((0,Z.pi)({},vE),y),k=O.text,R=(0,Z._T)(O,["text"]);$r(!!o,E,function(z){r.label=z.maybeAppendByClassName($a.label,"text").styles((0,Z.pi)((0,Z.pi)({},R),{x:a+u,y:s+d,transform:f,transformOrigin:v,text:"".concat(k)})),r.label.on("mousedown",function(B){B.stopPropagation()}),r.label.on("touchstart",function(B){B.stopPropagation()})})},t.prototype.renderIcon=function(e){var r=this.attributes,i=r.x,a=r.y,s=r.orientation,o=r.type,l=(0,Z.pi)((0,Z.pi)({x:i,y:a,orientation:s},fE),Le(this.attributes,"icon")),c=this.attributes.iconShape,u=c===void 0?function(){return new q5({style:l})}:c,h=de(e).maybeAppendByClassName($a.iconGroup,"g");h.selectAll($a.icon.class).data([u]).join(function(d){return d.append(typeof u=="string"?u:function(){return u(o)}).attr("className",$a.icon.name)},function(d){return d.update(l)},function(d){return d.remove()})},t.prototype.render=function(e,r){this.renderIcon(r),this.renderLabel(r)},t}(Rn),$5=function(n){(0,Z.ZT)(t,n);function t(e){var r=n.call(this,e,(0,Z.pi)((0,Z.pi)((0,Z.pi)({x:0,y:0,animate:{duration:100,fill:"both"},brushable:!0,formatter:function(i){return i.toString()},handleSpacing:2,orientation:"horizontal",padding:0,autoFitLabel:!0,scrollable:!0,selectionFill:"#5B8FF9",selectionFillOpacity:.45,selectionZIndex:2,showHandle:!0,showLabel:!0,slidable:!0,trackFill:"#416180",trackLength:200,trackOpacity:.05,trackSize:20,trackZIndex:-1,values:[0,1],type:"range",selectionType:"select",handleIconOffset:0},So(gE,"handle")),So(fE,"handleIcon")),So(vE,"handleLabel")))||this;return r.range=[0,1],r.onDragStart=function(i){return function(a){a.stopPropagation(),r.target=i,r.prevPos=r.getOrientVal(eE(a));var s=r.availableSpace,o=s.x,l=s.y,c=r.getBBox(),u=c.x,h=c.y;r.selectionStartPos=r.getRatio(r.prevPos-r.getOrientVal([o,l])-r.getOrientVal([+u,+h])),r.selectionWidth=0,document.addEventListener("pointermove",r.onDragging),document.addEventListener("pointerup",r.onDragEnd)}},r.onDragging=function(i){var a=r.attributes,s=a.slidable,o=a.brushable,l=a.type;i.stopPropagation();var c=r.getOrientVal(eE(i)),u=c-r.prevPos;if(u){var h=r.getRatio(u);switch(r.target){case"start":s&&r.setValuesOffset(h);break;case"end":s&&r.setValuesOffset(0,h);break;case"selection":s&&r.setValuesOffset(h,h);break;case"track":if(!o)return;r.selectionWidth+=h,l==="range"?r.innerSetValues([r.selectionStartPos,r.selectionStartPos+r.selectionWidth].sort(),!0):r.innerSetValues([0,r.selectionStartPos+r.selectionWidth],!0);break;default:break}r.prevPos=c}},r.onDragEnd=function(){document.removeEventListener("pointermove",r.onDragging),document.removeEventListener("pointermove",r.onDragging),document.removeEventListener("pointerup",r.onDragEnd),r.target="",r.updateHandlesPosition(!1)},r.onValueChange=function(i){var a=r.attributes,s=a.onChange,o=a.type,l=o==="range"?i:i[1],c=o==="range"?r.getValues():r.getValues()[1],u=new qn("valuechange",{detail:{oldValue:l,value:c}});r.dispatchEvent(u),s==null||s(c)},r.selectionStartPos=0,r.selectionWidth=0,r.prevPos=0,r.target="",r}return Object.defineProperty(t.prototype,"values",{get:function(){return this.attributes.values},set:function(e){this.attributes.values=this.clampValues(e)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"sparklineStyle",{get:function(){var e=this.attributes.orientation;if(e!=="horizontal")return null;var r=Le(this.attributes,"sparkline");return(0,Z.pi)((0,Z.pi)({zIndex:0},this.availableSpace),r)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"shape",{get:function(){var e=this.attributes,r=e.trackLength,i=e.trackSize,a=(0,Z.CR)(this.getOrientVal([[r,i],[i,r]]),2),s=a[0],o=a[1];return{width:s,height:o}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"availableSpace",{get:function(){var e=this.attributes,r=e.x,i=e.y,a=e.padding,s=(0,Z.CR)(Er(a),4),o=s[0],l=s[1],c=s[2],u=s[3],h=this.shape,d=h.width,f=h.height;return{x:u,y:o,width:d-(u+l),height:f-(o+c)}},enumerable:!1,configurable:!0}),t.prototype.getValues=function(){return this.values},t.prototype.setValues=function(e,r){e===void 0&&(e=[0,0]),r===void 0&&(r=!1),this.attributes.values=e;var i=r===!1?!1:this.attributes.animate;this.updateSelectionArea(i),this.updateHandlesPosition(i)},t.prototype.updateSelectionArea=function(e){var r=this.calcSelectionArea();this.foregroundGroup.selectAll(la.selection.class).each(function(i,a){Vi(this,r[a],e)})},t.prototype.updateHandlesPosition=function(e){this.attributes.showHandle&&(this.startHandle&&Vi(this.startHandle,this.getHandleStyle("start"),e),this.endHandle&&Vi(this.endHandle,this.getHandleStyle("end"),e))},t.prototype.innerSetValues=function(e,r){e===void 0&&(e=[0,0]),r===void 0&&(r=!1);var i=this.values,a=this.clampValues(e);this.attributes.values=a,this.setValues(a),r&&this.onValueChange(i)},t.prototype.renderTrack=function(e){var r=this.attributes,i=r.x,a=r.y,s=Le(this.attributes,"track");this.trackShape=de(e).maybeAppendByClassName(la.track,"rect").styles((0,Z.pi)((0,Z.pi)({x:i,y:a},this.shape),s))},t.prototype.renderBrushArea=function(e){var r=this.attributes,i=r.x,a=r.y,s=r.brushable;this.brushArea=de(e).maybeAppendByClassName(la.brushArea,"rect").styles((0,Z.pi)({x:i,y:a,fill:"transparent",cursor:s?"crosshair":"default"},this.shape))},t.prototype.renderSparkline=function(e){var r=this,i=this.attributes,a=i.x,s=i.y,o=i.orientation,l=de(e).maybeAppendByClassName(la.sparklineGroup,"g");$r(o==="horizontal",l,function(c){var u=(0,Z.pi)((0,Z.pi)({},r.sparklineStyle),{x:a,y:s});c.maybeAppendByClassName(la.sparkline,function(){return new Q5({style:u})}).update(u)})},t.prototype.renderHandles=function(){var e=this,r,i=this.attributes,a=i.showHandle,s=i.type,o=s==="range"?["start","end"]:["end"],l=a?o:[],c=this;(r=this.foregroundGroup)===null||r===void 0||r.selectAll(la.handle.class).data(l.map(function(u){return{type:u}}),function(u){return u.type}).join(function(u){return u.append(function(h){var d=h.type;return new J5({style:e.getHandleStyle(d)})}).each(function(h){var d=h.type;this.attr("class","".concat(la.handle.name," ").concat(d,"-handle"));var f="".concat(d,"Handle");c[f]=this,this.addEventListener("pointerdown",c.onDragStart(d))})},function(u){return u.each(function(h){var d=h.type;this.update(c.getHandleStyle(d))})},function(u){return u.each(function(h){var d=h.type,f="".concat(d,"Handle");c[f]=void 0}).remove()})},t.prototype.renderSelection=function(e){var r=this.attributes,i=r.x,a=r.y,s=r.type,o=r.selectionType;this.foregroundGroup=de(e).maybeAppendByClassName(la.foreground,"g");var l=Le(this.attributes,"selection"),c=function(h){return h.style("visibility",function(d){return d.show?"visible":"hidden"}).style("cursor",function(d){return o==="select"?"grab":o==="invert"?"crosshair":"default"}).styles((0,Z.pi)((0,Z.pi)({},l),{transform:"translate(".concat(i,", ").concat(a,")")}))},u=this;this.foregroundGroup.selectAll(la.selection.class).data(s==="value"?[]:this.calcSelectionArea().map(function(h,d){return{style:(0,Z.pi)({},h),index:d,show:o==="select"?d===1:d!==1}}),function(h){return h.index}).join(function(h){return h.append("rect").attr("className",la.selection.name).call(c).each(function(d,f){var v=this;f===1?(u.selectionShape=de(this),this.on("pointerdown",function(g){v.attr("cursor","grabbing"),u.onDragStart("selection")(g)}),u.dispatchCustomEvent(this,"pointerenter","selectionMouseenter"),u.dispatchCustomEvent(this,"pointerleave","selectionMouseleave"),u.dispatchCustomEvent(this,"click","selectionClick"),this.addEventListener("pointerdown",function(){v.attr("cursor","grabbing")}),this.addEventListener("pointerup",function(){v.attr("cursor","pointer")}),this.addEventListener("pointerover",function(){v.attr("cursor","pointer")})):this.on("pointerdown",u.onDragStart("track"))})},function(h){return h.call(c)},function(h){return h.remove()}),this.updateSelectionArea(!1),this.renderHandles()},t.prototype.render=function(e,r){this.renderTrack(r),this.renderSparkline(r),this.renderBrushArea(r),this.renderSelection(r)},t.prototype.clampValues=function(e,r){var i;r===void 0&&(r=4);var a=(0,Z.CR)(this.range,2),s=a[0],o=a[1],l=(0,Z.CR)(this.getValues().map(function(p){return p0(p,r)}),2),c=l[0],u=l[1],h=Array.isArray(e)?e:[c,e!=null?e:u],d=(0,Z.CR)((h||[c,u]).map(function(p){return p0(p,r)}),2),f=d[0],v=d[1];if(this.attributes.type==="value")return[0,Nn(v,s,o)];f>v&&(i=(0,Z.CR)([v,f],2),f=i[0],v=i[1]);var g=v-f;return g>o-s?[s,o]:fo?u===o&&c===f?[f,o]:[o-g,o]:[f,v]},t.prototype.calcSelectionArea=function(e){var r=(0,Z.CR)(this.clampValues(e),2),i=r[0],a=r[1],s=this.availableSpace,o=s.x,l=s.y,c=s.width,u=s.height;return this.getOrientVal([[{y:l,height:u,x:o,width:i*c},{y:l,height:u,x:i*c+o,width:(a-i)*c},{y:l,height:u,x:a*c,width:(1-a)*c}],[{x:o,width:c,y:l,height:i*u},{x:o,width:c,y:i*u+l,height:(a-i)*u},{x:o,width:c,y:a*u,height:(1-a)*u}]])},t.prototype.calcHandlePosition=function(e){var r=this.attributes.handleIconOffset,i=this.availableSpace,a=i.x,s=i.y,o=i.width,l=i.height,c=(0,Z.CR)(this.clampValues(),2),u=c[0],h=c[1],d=e==="start"?-r:r,f=(e==="start"?u:h)*this.getOrientVal([o,l])+d;return{x:a+this.getOrientVal([f,o/2]),y:s+this.getOrientVal([l/2,f])}},t.prototype.inferTextStyle=function(e){var r=this.attributes.orientation;return r==="horizontal"?{}:e==="start"?{transformOrigin:"left center",transform:"rotate(90)",textAlign:"start"}:e==="end"?{transformOrigin:"right center",transform:"rotate(90)",textAlign:"end"}:{}},t.prototype.calcHandleText=function(e){var r,i=this.attributes,a=i.type,s=i.orientation,o=i.formatter,l=i.autoFitLabel,c=Le(this.attributes,"handle"),u=Le(c,"label"),h=c.spacing,d=this.getHandleSize(),f=this.clampValues(),v=e==="start"?f[0]:f[1],g=o(v),p=new qv({style:(0,Z.pi)((0,Z.pi)((0,Z.pi)({},u),this.inferTextStyle(e)),{text:g})}),y=p.getBBox(),b=y.width,E=y.height;if(p.destroy(),!l){if(a==="value")return{text:g,x:0,y:-E-h};var O=h+d+(s==="horizontal"?b/2:0);return r={text:g},r[s==="horizontal"?"x":"y"]=e==="start"?-O:O,r}var k=0,R=0,z=this.availableSpace,B=z.width,V=z.height,U=this.calcSelectionArea()[1],J=U.x,$=U.y,st=U.width,ct=U.height,ft=h+d;if(s==="horizontal"){var Nt=ft+b/2;if(e==="start"){var Ct=J-ft-b;k=Ct>0?-Nt:Nt}else{var gt=B-J-st-ft>b;k=gt?Nt:-Nt}}else{var pt=ft,Pt=E+ft;e==="start"?R=$-d>E?-Pt:pt:R=V-($+ct)-d>E?Pt:-pt}return{x:k,y:R,text:g}},t.prototype.getHandleLabelStyle=function(e){var r=Le(this.attributes,"handleLabel");return(0,Z.pi)((0,Z.pi)((0,Z.pi)({},r),this.calcHandleText(e)),this.inferTextStyle(e))},t.prototype.getHandleIconStyle=function(){var e=this.attributes.handleIconShape,r=Le(this.attributes,"handleIcon"),i=this.getOrientVal(["ew-resize","ns-resize"]),a=this.getHandleSize();return(0,Z.pi)({cursor:i,shape:e,size:a},r)},t.prototype.getHandleStyle=function(e){var r=this.attributes,i=r.x,a=r.y,s=r.showLabel,o=r.showLabelOnInteraction,l=r.orientation,c=this.calcHandlePosition(e),u=c.x,h=c.y,d=this.calcHandleText(e),f=s;return!s&&o&&(this.target?f=!0:f=!1),(0,Z.pi)((0,Z.pi)((0,Z.pi)({},So(this.getHandleIconStyle(),"icon")),So((0,Z.pi)((0,Z.pi)({},this.getHandleLabelStyle(e)),d),"label")),{transform:"translate(".concat(u+i,", ").concat(h+a,")"),orientation:l,showLabel:f,type:e,zIndex:3})},t.prototype.getHandleSize=function(){var e=this.attributes,r=e.handleIconSize,i=e.width,a=e.height;return r||Math.floor((this.getOrientVal([+a,+i])+4)/2.4)},t.prototype.getOrientVal=function(e){var r=(0,Z.CR)(e,2),i=r[0],a=r[1],s=this.attributes.orientation;return s==="horizontal"?i:a},t.prototype.setValuesOffset=function(e,r){r===void 0&&(r=0);var i=this.attributes.type,a=(0,Z.CR)(this.getValues(),2),s=a[0],o=a[1],l=i==="range"?e:0,c=[s+l,o+r].sort();this.innerSetValues(c,!0)},t.prototype.getRatio=function(e){var r=this.availableSpace,i=r.width,a=r.height;return e/this.getOrientVal([i,a])},t.prototype.dispatchCustomEvent=function(e,r,i){var a=this;e.on(r,function(s){s.stopPropagation(),a.dispatchEvent(new qn(i,{detail:s}))})},t.prototype.bindEvents=function(){this.addEventListener("wheel",this.onScroll);var e=this.brushArea;this.dispatchCustomEvent(e,"click","trackClick"),this.dispatchCustomEvent(e,"pointerenter","trackMouseenter"),this.dispatchCustomEvent(e,"pointerleave","trackMouseleave"),e.on("pointerdown",this.onDragStart("track"))},t.prototype.onScroll=function(e){var r=this.attributes.scrollable;if(r){var i=e.deltaX,a=e.deltaY,s=a||i,o=this.getRatio(s);this.setValuesOffset(o,o)}},t.tag="slider",t}(Rn),t4={backgroundFill:"#262626",backgroundLineCap:"round",backgroundLineWidth:1,backgroundStroke:"#333",backgroundZIndex:-1,formatter:function(n){return n.toString()},labelFill:"#fff",labelFontSize:12,labelTextBaseline:"middle",padding:[2,4],position:"right",radius:0,zIndex:999},O0=Zi({background:"background",labelGroup:"label-group",label:"label"},"indicator"),e4=function(n){(0,Z.ZT)(t,n);function t(e){var r=n.call(this,e,t4)||this;return r.point=[0,0],r.group=r.appendChild(new rr({})),r.isMutationObserved=!0,r}return t.prototype.renderBackground=function(){if(this.label){var e=this.attributes,r=e.position,i=e.padding,a=(0,Z.CR)(Er(i),4),s=a[0],o=a[1],l=a[2],c=a[3],u=this.label.node().getLocalBounds(),h=u.min,d=u.max,f=new Pr(h[0]-c,h[1]-s,d[0]+o-h[0]+c,d[1]+l-h[1]+s),v=this.getPath(r,f),g=Le(this.attributes,"background");this.background=de(this.group).maybeAppendByClassName(O0.background,"path").styles((0,Z.pi)((0,Z.pi)({},g),{d:v})),this.group.appendChild(this.label.node())}},t.prototype.renderLabel=function(){var e=this.attributes,r=e.formatter,i=e.labelText,a=Le(this.attributes,"label"),s=(0,Z.CR)(Ea(a),2),o=s[0],l=s[1],c=o.text,u=(0,Z._T)(o,["text"]);if(this.label=de(this.group).maybeAppendByClassName(O0.labelGroup,"g").styles(l),!!i){var h=this.label.maybeAppendByClassName(O0.label,function(){return wa(r(i))}).style("text",r(i).toString());h.selectAll("text").styles(u)}},t.prototype.adjustLayout=function(){var e=(0,Z.CR)(this.point,2),r=e[0],i=e[1],a=this.attributes,s=a.x,o=a.y;this.group.attr("transform","translate(".concat(s-r,", ").concat(o-i,")"))},t.prototype.getPath=function(e,r){var i=this.attributes.radius,a=r.x,s=r.y,o=r.width,l=r.height,c=[["M",a+i,s],["L",a+o-i,s],["A",i,i,0,0,1,a+o,s+i],["L",a+o,s+l-i],["A",i,i,0,0,1,a+o-i,s+l],["L",a+i,s+l],["A",i,i,0,0,1,a,s+l-i],["L",a,s+i],["A",i,i,0,0,1,a+i,s],["Z"]],u={top:4,right:6,bottom:0,left:2},h=u[e],d=this.createCorner([c[h].slice(-2),c[h+1].slice(-2)]);return c.splice.apply(c,(0,Z.ev)([h+1,1],(0,Z.CR)(d),!1)),c[0][0]="M",c},t.prototype.createCorner=function(e,r){r===void 0&&(r=10);var i=.8,a=FI.apply(void 0,(0,Z.ev)([],(0,Z.CR)(e),!1)),s=(0,Z.CR)(e,2),o=(0,Z.CR)(s[0],2),l=o[0],c=o[1],u=(0,Z.CR)(s[1],2),h=u[0],d=u[1],f=(0,Z.CR)(a?[h-l,[l,h]]:[d-c,[c,d]],2),v=f[0],g=(0,Z.CR)(f[1],2),p=g[0],y=g[1],b=v/2,E=v/Math.abs(v),O=r*E,k=O/2,R=O*Math.sqrt(3)/2*i,z=(0,Z.CR)([p,p+b-k,p+b,p+b+k,y],5),B=z[0],V=z[1],U=z[2],J=z[3],$=z[4];return a?(this.point=[U,c-R],[["L",B,c],["L",V,c],["L",U,c-R],["L",J,c],["L",$,c]]):(this.point=[l+R,U],[["L",l,B],["L",l,V],["L",l+R,U],["L",l,J],["L",l,$]])},t.prototype.applyVisibility=function(){var e=this.attributes.visibility;e==="hidden"?Gi(this):Dl(this)},t.prototype.bindEvents=function(){this.label.on(Be.BOUNDS_CHANGED,this.renderBackground)},t.prototype.render=function(){this.renderLabel(),this.renderBackground(),this.adjustLayout(),this.applyVisibility()},t}(Rn),n4=function(n){(0,Z.ZT)(t,n);function t(e){var r=n.call(this,$n({},t.defaultOptions,e))||this;return r.hoverColor="#f5f5f5",r.selectedColor="#e6f7ff",r.background=r.appendChild(new mr({})),r.label=r.background.appendChild(new rr({})),r}return Object.defineProperty(t.prototype,"padding",{get:function(){return Er(this.style.padding)},enumerable:!1,configurable:!0}),t.prototype.renderLabel=function(){var e=this.style,r=e.label,i=e.value,a=Le(this.attributes,"label");de(this.label).maybeAppend(".label",function(){return wa(r)}).attr("className","label").styles(a),this.label.attr("__data__",i)},t.prototype.renderBackground=function(){var e=this.label.getBBox(),r=(0,Z.CR)(this.padding,4),i=r[0],a=r[1],s=r[2],o=r[3],l=e.width,c=e.height,u=l+o+a,h=c+i+s,d=Le(this.attributes,"background"),f=this.style,v=f.width,g=v===void 0?0:v,p=f.height,y=p===void 0?0:p,b=f.selected;this.background.attr((0,Z.pi)((0,Z.pi)({},d),{width:Math.max(u,g),height:Math.max(h,y),fill:b?this.selectedColor:"#fff"})),this.label.attr({transform:"translate(".concat(o,", ").concat((h-c)/2,")")})},t.prototype.render=function(){this.renderLabel(),this.renderBackground()},t.prototype.bindEvents=function(){var e=this;this.addEventListener("pointerenter",function(){e.style.selected||e.background.attr("fill",e.hoverColor)}),this.addEventListener("pointerleave",function(){e.style.selected||e.background.attr("fill",e.style.backgroundFill)});var r=this;this.addEventListener("click",function(){var i=e.style,a=i.label,s=i.value,o=i.onClick;o==null||o(s,{label:a,value:s},r)})},t.defaultOptions={style:{value:"",label:"",cursor:"pointer"}},t}(Rn),r4=function(n){(0,Z.ZT)(t,n);function t(e){var r,i,a=n.call(this,$n({},t.defaultOptions,e))||this;a.currentValue=(r=t.defaultOptions.style)===null||r===void 0?void 0:r.defaultValue,a.isPointerInSelect=!1,a.select=a.appendChild(new mr({className:"select",style:{cursor:"pointer",width:0,height:0}})),a.dropdown=a.appendChild(new mr({className:"dropdown"}));var s=a.style.defaultValue;return s&&(!((i=a.style.options)===null||i===void 0)&&i.some(function(o){return o.value===s}))&&(a.currentValue=s),a}return t.prototype.setValue=function(e){this.currentValue=e,this.render()},t.prototype.getValue=function(){return this.currentValue},Object.defineProperty(t.prototype,"dropdownPadding",{get:function(){return Er(this.style.dropdownPadding)},enumerable:!1,configurable:!0}),t.prototype.renderSelect=function(){var e=this,r,i=this.style,a=i.x,s=i.y,o=i.width,l=i.height,c=i.bordered,u=i.showDropdownIcon,h=Le(this.attributes,"select"),d=Le(this.attributes,"placeholder");this.select.attr((0,Z.pi)((0,Z.pi)({x:a,y:s,width:o,height:l},h),{fill:"#fff",strokeWidth:c?1:0}));var f=this.dropdownPadding,v=10;u&&de(this.select).maybeAppend(".dropdown-icon","path").style("d","M-5,-3.5 L0,3.5 L5,-3.5").style("transform","translate(".concat(a+o-v-f[1]-f[3],", ").concat(s+l/2,")")).style("lineWidth",1).style("stroke",this.select.style.stroke);var g=(r=this.style.options)===null||r===void 0?void 0:r.find(function(E){return E.value===e.currentValue}),p=(0,Z.pi)({x:a+f[3]},d);de(this.select).selectAll(".placeholder").data(g?[]:[1]).join(function(E){return E.append("text").attr("className","placeholder").styles(p).style("y",function(){var O=this.getBBox();return s+(l-O.height)/2})},function(E){return E.styles(p)},function(E){return E.remove()});var y=Le(this.attributes,"optionLabel"),b=(0,Z.pi)({x:a+f[3]},y);de(this.select).selectAll(".value").data(g?[g]:[]).join(function(E){return E.append(function(O){return wa(O.label)}).attr("className","value").styles(b).style("y",function(){var O=this.getBBox();return s+(l-O.height)/2})},function(E){return E.styles(b)},function(E){return E.remove()})},t.prototype.renderDropdown=function(){var e=this,r,i,a=this.style,s=a.x,o=a.y,l=a.width,c=a.height,u=a.options,h=a.onSelect,d=a.open,f=Le(this.attributes,"dropdown"),v=Le(this.attributes,"option"),g=this.dropdownPadding;de(this.dropdown).maybeAppend(".dropdown-container","g").attr("className","dropdown-container").selectAll(".dropdown-item").data(u,function(b){return b.value}).join(function(b){return b.append(function(E){return new n4({className:"dropdown-item",style:(0,Z.pi)((0,Z.pi)((0,Z.pi)({},E),v),{width:l-g[1]-g[3],selected:E.value===e.currentValue,onClick:function(O,k,R){e.setValue(O),h==null||h(O,k,R),e.dispatchEvent(new qn("change",{detail:{value:O,option:k,item:R}})),Gi(e.dropdown)}})})}).each(function(E,O){var k,R=(k=this.parentNode)===null||k===void 0?void 0:k.children,z=R.reduce(function(B,V,U){return Ua.time?1:0};return e.sort(r)},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"space",{get:function(){var e=this.attributes,r=e.x,i=e.y,a=e.width,s=e.height,o=e.type,l=e.controllerHeight,c=Nn(+s-l,0,+s),u=new Pr(r,i+ +s-l,+a,l),h,d=0;o==="chart"?(d=35,h=new Pr(r,i+c-d,+a,d)):h=new Pr;var f=o==="time"?10:c,v=new Pr(r,i+(o==="time"?c:c-f),+a,f-d);return{axisBBox:h,controllerBBox:u,timelineBBox:v}},enumerable:!1,configurable:!0}),t.prototype.setBySliderValues=function(e){var r,i,a=this.data,s=(0,Z.CR)(Array.isArray(e)?e:[0,e],2),o=s[0],l=s[1],c=a.length,u=a[Math.floor(o*c)],h=a[Math.ceil(l*c)-(Array.isArray(e)?0:1)];this.states.values=[(r=u==null?void 0:u.time)!==null&&r!==void 0?r:a[0].time,(i=h==null?void 0:h.time)!==null&&i!==void 0?i:1/0]},t.prototype.setByTimebarValues=function(e){var r,i,a,s=this.data,o=(0,Z.CR)(Array.isArray(e)?e:[void 0,e],2),l=o[0],c=o[1],u=s.find(function(d){var f=d.time;return f===l}),h=s.find(function(d){var f=d.time;return f===c});this.states.values=[(r=u==null?void 0:u.time)!==null&&r!==void 0?r:(i=s[0])===null||i===void 0?void 0:i.time,(a=h==null?void 0:h.time)!==null&&a!==void 0?a:1/0]},t.prototype.setByIndex=function(e){var r,i,a,s,o=this.data,l=(0,Z.CR)(e,2),c=l[0],u=l[1];this.states.values=[(i=(r=o[c])===null||r===void 0?void 0:r.time)!==null&&i!==void 0?i:o[0].time,(s=(a=this.data[u])===null||a===void 0?void 0:a.time)!==null&&s!==void 0?s:1/0]},Object.defineProperty(t.prototype,"sliderValues",{get:function(){var e=this.states,r=e.values,i=e.selectionType,a=(0,Z.CR)(Array.isArray(r)?r:[void 0,r],2),s=a[0],o=a[1],l=this.data,c=l.length,u=i==="value",h=function(){var f=l.findIndex(function(v){var g=v.time;return g===s});return u?0:f>-1?f/c:0},d=function(){if(o===1/0)return 1;var f=l.findIndex(function(v){var g=v.time;return g===o});return f>-1?f/c:u?.5:1};return[h(),d()]},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"values",{get:function(){var e=this.states,r=e.values,i=e.selectionType,a=(0,Z.CR)(Array.isArray(r)?r:[this.data[0].time,r],2),s=a[0],o=a[1];return i==="value"?o:[s,o]},enumerable:!1,configurable:!0}),t.prototype.getDatumByRatio=function(e){var r=this.data,i=r.length,a=Math.floor(e*(i-1));return r[a]},Object.defineProperty(t.prototype,"chartHandleIconShape",{get:function(){var e=this.states.selectionType,r=this.space.timelineBBox.height;return e==="range"?function(i){return new m4({style:{type:i,height:r,iconSize:r/6}})}:function(){return new ws({style:{x1:0,y1:-r/2,x2:0,y2:r/2,lineWidth:2,stroke:"#c8c8c8"}})}},enumerable:!1,configurable:!0}),t.prototype.getChartStyle=function(e){var r=this,i=e.x,a=e.y,s=e.width,o=e.height,l=this.states,c=l.selectionType,u=l.chartType,h=this.data,d=this.attributes,f=d.type,v=d.labelFormatter,g=Le(this.attributes,"chart"),p=g.type,y=(0,Z._T)(g,["type"]),b=c==="range";if(f==="time")return(0,Z.pi)({handleIconShape:function(){return new p4({})},selectionFill:"#2e7ff8",selectionFillOpacity:1,showLabelOnInteraction:!0,handleLabelDy:b?-15:0,autoFitLabel:b,handleSpacing:b?-15:0,trackFill:"#edeeef",trackLength:s,trackOpacity:.5,trackRadius:o/2,trackSize:o/2,type:c,values:this.sliderValues,formatter:function(k){if(v)return v(k);var R=r.getDatumByRatio(k).time;return typeof R=="number"?mE(R):jr(R,"YYYY-MM-DD HH:mm:ss")},transform:"translate(".concat(i,", ").concat(a,")"),zIndex:1},y);var E=c==="range"?5:0,O=h.map(function(k){var R=k.value;return R});return(0,Z.pi)({handleIconOffset:E,handleIconShape:this.chartHandleIconShape,selectionFill:"#fff",selectionFillOpacity:.5,selectionType:"invert",sparklineSpacing:.1,sparklineColumnLineWidth:0,sparklineColor:"#d4e5fd",sparklineAreaOpacity:1,sparklineAreaLineWidth:0,sparklineData:O,sparklineType:u,sparklineScale:.8,trackLength:s,trackSize:o,type:c,values:this.sliderValues,transform:"translate(".concat(i,", ").concat(a,")"),zIndex:1},y)},t.prototype.renderChart=function(e){e===void 0&&(e=this.space.timelineBBox),this.timeline.update(this.getChartStyle(e))},t.prototype.updateSelection=function(){this.timeline.setValues(this.sliderValues,!0),this.handleSliderChange(this.sliderValues)},t.prototype.getAxisStyle=function(e){var r=this.data,i=this.attributes,a=i.interval,s=i.labelFormatter,o=Le(this.attributes,"axis"),l=e.x,c=e.y,u=e.width,h=(0,Z.ev)((0,Z.ev)([],(0,Z.CR)(r),!1),[{time:0}],!1).map(function(f,v,g){var p=f.time;return{label:"".concat(p),value:v/(g.length-1),time:p}}),d=(0,Z.pi)({startPos:[l,c],endPos:[l+u,c],data:h,labelFilter:function(f,v){return va?l==="value"?[0,0]:c==="acc"?[z(k),z(k)]:[0,z(R-k)]:k<0?c==="acc"?[0,z(R)]:[z(k+a-R),a]:[z(k),z(R)]},b=y(p);return this.setByIndex(b),this.updateSelection(),b},t.prototype.internalBackward=function(e){var r,i,a=this.moveSelection("backward",e);return e||((i=(r=this.attributes)===null||r===void 0?void 0:r.onBackward)===null||i===void 0||i.call(r),this.dispatchOnChange()),a},t.prototype.backward=function(){this.internalBackward()},t.prototype.internalPlay=function(e){var r=this,i,a,s=this.data,o=this.attributes.loop,l=this.states.speed,c=l===void 0?1:l;this.playInterval=window.setInterval(function(){var u=r.internalForward();u[1]===s.length&&!o&&(r.internalPause(),r.renderController())},1e3/c),this.states.state="play",!e&&((a=(i=this.attributes)===null||i===void 0?void 0:i.onPlay)===null||a===void 0||a.call(i))},t.prototype.play=function(){this.internalPlay()},t.prototype.internalPause=function(e){var r,i;clearInterval(this.playInterval),this.states.state="pause",!e&&((i=(r=this.attributes)===null||r===void 0?void 0:r.onPause)===null||i===void 0||i.call(r))},t.prototype.pause=function(){this.internalPause()},t.prototype.internalForward=function(e){var r,i,a=this.moveSelection("forward",e);return e||((i=(r=this.attributes)===null||r===void 0?void 0:r.onForward)===null||i===void 0||i.call(r),this.dispatchOnChange()),a},t.prototype.forward=function(){this.internalForward()},t.prototype.handleSpeedChange=function(e){var r,i;this.states.speed=e;var a=this.states.state;a==="play"&&(this.internalPause(!0),this.internalPlay(!0)),(i=(r=this.attributes)===null||r===void 0?void 0:r.onSpeedChange)===null||i===void 0||i.call(r,e)},t.prototype.handleSelectionTypeChange=function(e){var r,i;this.states.selectionType=e,this.renderChart(),(i=(r=this.attributes)===null||r===void 0?void 0:r.onSelectionTypeChange)===null||i===void 0||i.call(r,e)},t.prototype.handleChartTypeChange=function(e){var r,i;this.states.chartType=e,this.renderChart(),(i=(r=this.attributes)===null||r===void 0?void 0:r.onChartTypeChange)===null||i===void 0||i.call(r,e)},t.prototype.render=function(){var e=this.space,r=e.axisBBox,i=e.controllerBBox,a=e.timelineBBox;this.renderController(i),this.renderAxis(r),this.renderChart(a),this.states.state==="play"&&this.internalPlay()},t.prototype.destroy=function(){n.prototype.destroy.call(this),this.internalPause(!0)},t.defaultOptions={style:{x:0,y:0,axisLabelFill:"#6e6e6e",axisLabelTextAlign:"left",axisLabelTextBaseline:"top",axisLabelTransform:"translate(5, -12)",axisLineLineWidth:1,axisLineStroke:"#cacdd1",axisTickLength:15,axisTickLineWidth:1,axisTickStroke:"#cacdd1",chartShowLabel:!1,chartType:"line",controllerAlign:"center",controllerHeight:40,data:[],interval:"day",loop:!1,playMode:"acc",selectionType:"range",type:"time"}},t}(Rn);function E4(n){return n instanceof Date}var w4=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})},S4=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(n);i{var v;const g=Object.assign(Object.assign({x:d[0]/2-l/2,y:f,onChange:p=>{const y=(Ur(p)?p:[p,p]).map(b=>E4(b)?b.getTime():b);this.options.mode==="modify"?this.filterElements(y):this.hiddenElements(y),r==null||r(y)}},h),{data:a.map(p=>re(p)?{time:p,value:0}:p),width:l,height:c,type:i});this.timebar?this.timebar.update(g):(this.timebar=new x4({style:g}),(v=this.canvas)===null||v===void 0||v.appendChild(this.timebar))})}upsertCanvas(){if(this.canvas)return this.canvas;const{className:t,height:e,position:r}=this.options,i=this.context.canvas,[a]=i.getSize(),[s,,o]=this.padding,[l,c]=Dh({width:a,height:e+s+o,graphCanvas:i,className:"timebar",placement:r});return this.container=l,t&&l.classList.add(t),this.canvas=c,this.canvas}filterElements(t){return w4(this,void 0,void 0,function*(){var e;if(!this.originalData)return;const{elementTypes:r,getTime:i}=this.options,{graph:a,element:s}=this.context,o=yE(this.originalData);r.forEach(c=>{const u=`${c}s`;o[u]=(this.originalData[u]||[]).filter(h=>{const d=i(h);return!!bE(d,t)})});const l=[...o.nodes,...o.combos].map(c=>At(c));o.edges=o.edges.filter(c=>{const u=c.source,h=c.target;return l.includes(u)&&l.includes(h)}),a.setData(o),yield(e=s.draw({animation:!1,silence:!0}))===null||e===void 0?void 0:e.finished})}hiddenElements(t){const{graph:e}=this.context,{elementTypes:r,getTime:i}=this.options,a=[],s=[];r.forEach(o=>{var l;const c=`${o}s`;(((l=this.originalData)===null||l===void 0?void 0:l[c])||[]).forEach(h=>{const d=At(h),f=i(h);bE(f,t)?s.push(d):a.push(d)})}),e.hideElement(a,!1),e.showElement(s,!1)}destroy(){var t,e,r;const{graph:i}=this.context;this.originalData&&i.setData(Object.assign({},this.originalData)),(t=this.timebar)===null||t===void 0||t.destroy(),(e=this.canvas)===null||e===void 0||e.destroy(),(r=this.container)===null||r===void 0||r.remove(),this.originalData=void 0,this.container=void 0,this.timebar=void 0,this.canvas=void 0,super.destroy()}}Kh.defaultOptions={position:"bottom",enable:!0,timebarType:"time",className:"g6-timebar",width:450,height:60,zIndex:3,elementTypes:["node"],padding:10,mode:"modify",getTime:n=>A4(n,M4,void 0),loop:!1};const yE=n=>{const{nodes:t=[],edges:e=[],combos:r=[]}=n;return{nodes:[...t],edges:[...e],combos:[...r]}},bE=(n,t)=>{if(re(t))return n===t;const[e,r]=t;return n>=e&&n<=r},A4=(n,t,e)=>{var r;for(let i=0;i{const i=this.updateCanvas();this.renderTitle(i)},this.bindEvents()}bindEvents(){const{graph:t}=this.context;t.on(Xt.AFTER_RENDER,this.onRender),t.on(Xt.AFTER_ANIMATE,this.onRender)}unbindEvents(){const{graph:t}=this.context;t.off(Xt.AFTER_RENDER,this.onRender),t.off(Xt.AFTER_ANIMATE,this.onRender)}destroy(){var t,e;this.unbindEvents(),(t=this.canvas)===null||t===void 0||t.destroy(),(e=this.container)===null||e===void 0||e.remove(),super.destroy()}updateCanvas(){const{size:t,className:e,align:r}=this.options,[i]=this.context.canvas.getSize(),[a=0,,s=0]=this.padding,o=t+a+s;if(this.canvas){const{width:l,height:c}=this.canvas.getConfig();(i!==l||o!==c)&&this.canvas.resize(i,o)}else{const l={left:"left-top",center:"top",right:"right-top"},[c,u]=Dh({width:i,height:o,placement:l[r]||l.left,className:"title-canvas",graphCanvas:this.context.canvas});e&&c.classList.add(e),this.container=c,this.canvas=u}return this.canvas}renderTitle(t){const e=new P4({options:this.options,ctx:this.context});t.removeChildren(),e.getTitle().forEach(r=>{r&&t.appendChild(r)})}}class P4{get padding(){return oi(this.options.padding)}constructor(t){const{options:e,ctx:r}=t;this.options=e,this.context=r}getTitle(){const t=this.options,e=L0,r=t[e],i=EE,a=t[i],{spacing:s=44,padding:o,align:l}=t,c=T4(t,[typeof e=="symbol"?e:e+"",typeof i=="symbol"?i:i+"","spacing","padding","align"]),u=r,h=a,d=_n(c,L0),f=_n(c,EE),[v]=this.context.graph.getSize(),[g=0,p=0,,y=0]=this.padding,b=v,E=b-y-p;let O=null,k=y,R="left";switch(l){case"left":k=y,R="left";break;case"center":k=b/2,R="center";break;case"right":k=b-p,R="right";break;default:k=y,R="left"}const z=new sa({className:L0,style:Object.assign(Object.assign(Object.assign(Object.assign({},O4),{wordWrapWidth:E-5,x:k,y:g,textAlign:R}),d),{text:u})}),B=z.getBBox();return h&&(O=new sa({className:"subTitle",style:Object.assign(Object.assign(Object.assign(Object.assign({},C4),{wordWrapWidth:E-5,x:k,y:B.height+s+g,textAlign:R}),f),{text:h})})),[z,O]}}function R4(n){const t={top:"unset",right:"unset",bottom:"unset",left:"unset"};return n.split("-").forEach(r=>{t[r]="8px"}),t.flexDirection=n.startsWith("top")||n.startsWith("bottom")?"row":"column",t}const L4=` .g6-toolbar { position: absolute; z-index: 100; display: flex; flex-direction: row; align-items: center; justify-content: center; border-radius: 4px; box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.1); opacity: 0.65; } .g6-toolbar .g6-toolbar-item { display: inline-block; width: 16px; height: 16px; padding: 4px; cursor: pointer; box-sizing: content-box; } .g6-toolbar .g6-toolbar-item:hover { background-color: #f0f0f0; } .g6-toolbar .g6-toolbar-item svg { display: inline-block; width: 100%; height: 100%; pointer-events: none; } `,_4=` `;var wE=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};class Qh extends hr{constructor(t,e){super(t,Object.assign({},Qh.defaultOptions,e)),this.$element=wo("toolbar",!1),this.onToolbarItemClick=i=>{const{onClick:a}=this.options;if(i.target instanceof Element&&i.target.className.includes("g6-toolbar-item")){const s=i.target.getAttribute("value");a==null||a(s,i.target)}};const r=this.context.canvas.getContainer();this.$element.style.display="flex",r.appendChild(this.$element),Gv("g6-toolbar-css","style",{},L4,document.head),Gv("g6-toolbar-svgicon","div",{display:"none"},_4),this.$element.addEventListener("click",this.onToolbarItemClick),this.update(e)}update(t){const e=Object.create(null,{update:{get:()=>super.update}});return wE(this,void 0,void 0,function*(){e.update.call(this,t);const{className:r,position:i,style:a}=this.options;this.$element.className=`g6-toolbar ${r||""}`,Object.assign(this.$element.style,a,R4(i)),this.$element.innerHTML=yield this.getDOMContent()})}destroy(){this.$element.removeEventListener("click",this.onToolbarItemClick),this.$element.remove(),super.destroy()}getDOMContent(){return wE(this,void 0,void 0,function*(){return(yield this.options.getItems()).map(e=>{var r;return`
`}).join("")})}}Qh.defaultOptions={position:"top-left"};function _0(n){var t=document.createElement("div");t.innerHTML=n;var e=t.childNodes[0];return e&&t.contains(e)&&t.removeChild(e),e}function D4(n,t){return!n||!t?n:n.replace(/\\?\{([^{}]+)\}/g,function(e,r){return e.charAt(0)==="\\"?e.slice(1):t[r]===void 0?"":t[r]})}var I4=D4,SE=function(n,t){if(t==null){n.innerHTML="";return}n.replaceChildren?Array.isArray(t)?n.replaceChildren.apply(n,(0,Z.ev)([],(0,Z.CR)(t),!1)):n.replaceChildren(t):(n.innerHTML="",Array.isArray(t)?t.forEach(function(e){return n.appendChild(e)}):n.appendChild(t))};function D0(n){return n===void 0&&(n=""),{CONTAINER:"".concat(n,"tooltip"),TITLE:"".concat(n,"tooltip-title"),LIST:"".concat(n,"tooltip-list"),LIST_ITEM:"".concat(n,"tooltip-list-item"),NAME:"".concat(n,"tooltip-list-item-name"),MARKER:"".concat(n,"tooltip-list-item-marker"),NAME_LABEL:"".concat(n,"tooltip-list-item-name-label"),VALUE:"".concat(n,"tooltip-list-item-value"),CROSSHAIR_X:"".concat(n,"tooltip-crosshair-x"),CROSSHAIR_Y:"".concat(n,"tooltip-crosshair-y")}}var ME={overflow:"hidden","white-space":"nowrap","text-overflow":"ellipsis"};function B4(n){var t;n===void 0&&(n="");var e=D0(n);return t={},t[".".concat(e.CONTAINER)]={position:"absolute",visibility:"visible","z-index":8,transition:"visibility 0.2s cubic-bezier(0.23, 1, 0.32, 1), left 0.4s cubic-bezier(0.23, 1, 0.32, 1), top 0.4s cubic-bezier(0.23, 1, 0.32, 1)","background-color":"rgba(255, 255, 255, 0.96)","box-shadow":"0 6px 12px 0 rgba(0, 0, 0, 0.12)","border-radius":"4px",color:"rgba(0, 0, 0, 0.65)","font-size":"12px","line-height":"20px",padding:"12px","min-width":"120px","max-width":"360px","font-family":"Roboto-Regular"},t[".".concat(e.TITLE)]={color:"rgba(0, 0, 0, 0.45)"},t[".".concat(e.LIST)]={margin:"0px","list-style-type":"none",padding:"0px"},t[".".concat(e.LIST_ITEM)]={"list-style-type":"none",display:"flex","line-height":"2em","align-items":"center","justify-content":"space-between","white-space":"nowrap"},t[".".concat(e.MARKER)]={width:"8px",height:"8px","border-radius":"50%",display:"inline-block","margin-right":"4px"},t[".".concat(e.NAME)]={display:"flex","align-items":"center","max-width":"216px"},t[".".concat(e.NAME_LABEL)]=(0,Z.pi)({flex:1},ME),t[".".concat(e.VALUE)]=(0,Z.pi)({display:"inline-block",float:"right",flex:1,"text-align":"right","min-width":"28px","margin-left":"30px",color:"rgba(0, 0, 0, 0.85)"},ME),t[".".concat(e.CROSSHAIR_X)]={position:"absolute",width:"1px","background-color":"rgba(0, 0, 0, 0.25)"},t[".".concat(e.CROSSHAIR_Y)]={position:"absolute",height:"1px","background-color":"rgba(0, 0, 0, 0.25)"},t}var F4=function(n){(0,Z.ZT)(t,n);function t(e){var r=this,i,a,s=(a=(i=e.style)===null||i===void 0?void 0:i.template)===null||a===void 0?void 0:a.prefixCls,o=D0(s);return r=n.call(this,e,{data:[],x:0,y:0,visibility:"visible",title:"",position:"bottom-right",offset:[5,5],enterable:!1,container:{x:0,y:0},bounding:null,template:{prefixCls:"",container:'
'),title:'
'),item:'
  • {name} {value}
  • `)},style:B4(s)})||this,r.timestamp=-1,r.prevCustomContentKey=r.attributes.contentKey,r.initShape(),r.render(r.attributes,r),r}return Object.defineProperty(t.prototype,"HTMLTooltipElement",{get:function(){return this.element},enumerable:!1,configurable:!0}),t.prototype.getContainer=function(){return this.element},Object.defineProperty(t.prototype,"elementSize",{get:function(){var e=this.element.offsetWidth,r=this.element.offsetHeight;return{width:e,height:r}},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"HTMLTooltipItemsElements",{get:function(){var e=this.attributes,r=e.data,i=e.template;return r.map(function(a,s){var o=a.name,l=o===void 0?"":o,c=a.color,u=c===void 0?"black":c,h=a.index,d=(0,Z._T)(a,["name","color","index"]),f=(0,Z.pi)({name:l,color:u,index:h!=null?h:s},d);return _0(I4(i.item,f))})},enumerable:!1,configurable:!0}),t.prototype.render=function(e,r){this.renderHTMLTooltipElement(),this.updatePosition()},t.prototype.destroy=function(){var e;(e=this.element)===null||e===void 0||e.remove(),n.prototype.destroy.call(this)},t.prototype.show=function(e,r){var i=this;if(e!==void 0&&r!==void 0){var a=this.element.style.visibility==="hidden",s=function(){i.attributes.x=e!=null?e:i.attributes.x,i.attributes.y=r!=null?r:i.attributes.y,i.updatePosition()};a?this.closeTransition(s):s()}this.element.style.visibility="visible"},t.prototype.hide=function(e,r){e===void 0&&(e=0),r===void 0&&(r=0);var i=this.attributes.enterable;i&&this.isCursorEntered(e,r)||(this.element.style.visibility="hidden")},t.prototype.initShape=function(){var e=this.attributes.template;this.element=_0(e.container),this.id&&this.element.setAttribute("id",this.id)},t.prototype.renderCustomContent=function(){if(!(this.prevCustomContentKey!==void 0&&this.prevCustomContentKey===this.attributes.contentKey)){this.prevCustomContentKey=this.attributes.contentKey;var e=this.attributes.content;e&&(typeof e=="string"?this.element.innerHTML=e:SE(this.element,e))}},t.prototype.renderHTMLTooltipElement=function(){var e,r,i=this.attributes,a=i.template,s=i.title,o=i.enterable,l=i.style,c=i.content,u=D0(a.prefixCls),h=this.element;if(this.element.style.pointerEvents=o?"auto":"none",c)this.renderCustomContent();else{s?(h.innerHTML=a.title,h.getElementsByClassName(u.TITLE)[0].innerHTML=s):(r=(e=h.getElementsByClassName(u.TITLE))===null||e===void 0?void 0:e[0])===null||r===void 0||r.remove();var d=this.HTMLTooltipItemsElements,f=document.createElement("ul");f.className=u.LIST,SE(f,d);var v=this.element.querySelector(".".concat(u.LIST));v?v.replaceWith(f):h.appendChild(f)}QD(h,l)},t.prototype.getRelativeOffsetFromCursor=function(e){var r=this.attributes,i=r.position,a=r.offset,s=e||i,o=s.split("-"),l={left:[-1,0],right:[1,0],top:[0,-1],bottom:[0,1]},c=this.elementSize,u=c.width,h=c.height,d=[-u/2,-h/2];return o.forEach(function(f){var v=(0,Z.CR)(d,2),g=v[0],p=v[1],y=(0,Z.CR)(l[f],2),b=y[0],E=y[1];d=[g+(u/2+a[0])*b,p+(h/2+a[1])*E]}),d},t.prototype.setOffsetPosition=function(e){var r=(0,Z.CR)(e,2),i=r[0],a=r[1],s=this.attributes,o=s.x,l=o===void 0?0:o,c=s.y,u=c===void 0?0:c,h=s.container,d=h.x,f=h.y;this.element.style.left="".concat(+l+d+i,"px"),this.element.style.top="".concat(+u+f+a,"px")},t.prototype.updatePosition=function(){var e=this.attributes.showDelay,r=e===void 0?60:e,i=Date.now();this.timestamp>0&&i-this.timestampb+O,top:pE+k},z=[];u.split("-").forEach(function(V){R[V]?z.push(y[V]):z.push(V)});var B=z.join("-");return this.getRelativeOffsetFromCursor(B)},t.prototype.isCursorEntered=function(e,r){if(this.element){var i=this.element.getBoundingClientRect(),a=i.x,s=i.y,o=i.width,l=i.height;return new Pr(a,s,o,l).isPointIn(e,r)}return!1},t.prototype.closeTransition=function(e){var r=this,i=this.element.style.transition;this.element.style.transition="none",e(),setTimeout(function(){r.element.style.transition=i},10)},t.tag="tooltip",t}(Rn),AE=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};class qh extends hr{constructor(t,e){super(t,Object.assign({},qh.defaultOptions,e)),this.currentTarget=null,this.tooltipElement=null,this.container=null,this.isEnable=(r,i)=>{const{enable:a}=this.options;return typeof a=="function"?a(r,i):a},this.onClick=r=>{const{target:{id:i}}=r;this.currentTarget===i?this.hide(r):this.show(r)},this.onPointerMove=r=>{const{target:i}=r;!this.currentTarget||i.id===this.currentTarget||this.show(r)},this.onPointerLeave=r=>{this.hide(r)},this.onCanvasMove=r=>{this.hide(r)},this.onPointerOver=r=>{this.show(r)},this.showById=r=>AE(this,void 0,void 0,function*(){const i={target:{id:r}};yield this.show(i)}),this.getElementData=(r,i)=>{const{model:a}=this.context;switch(i){case"node":return a.getNodeData([r]);case"edge":return a.getEdgeData([r]);case"combo":return a.getComboData([r]);default:return[]}},this.show=r=>AE(this,void 0,void 0,function*(){var i,a;const{client:s,target:{id:o}}=r;if(Ol(r.target))return;const l=this.context.graph.getElementType(o),{getContent:c,title:u}=this.options,h=this.getElementData(o,l);if(!this.tooltipElement||!this.isEnable(r,h))return;let d={};if(c){if(d.content=yield c(r,h),!d.content)return}else{const g=this.context.graph.getElementRenderStyle(o),p=l==="node"?g.fill:g.stroke;d={title:u||l,data:h.map(y=>({name:"ID",value:y.id||`${y.source} -> ${y.target}`,color:p}))}}this.currentTarget=o;let f,v;if(s)f=s.x,v=s.y;else{const g=xr(h,"0.style",{x:0,y:0});f=g.x,v=g.y}(a=(i=this.options).onOpenChange)===null||a===void 0||a.call(i,!0),this.tooltipElement.update(Object.assign(Object.assign(Object.assign({},this.tooltipStyleProps),{x:f,y:v,style:{".tooltip":{visibility:"visible"}}}),d))}),this.hide=r=>{var i,a,s,o,l;if(!r){(a=(i=this.options).onOpenChange)===null||a===void 0||a.call(i,!1),(s=this.tooltipElement)===null||s===void 0||s.hide(),this.currentTarget=null;return}if(!this.tooltipElement||!this.currentTarget)return;const{client:{x:c,y:u}}=r;(l=(o=this.options).onOpenChange)===null||l===void 0||l.call(o,!1),this.tooltipElement.hide(c,u),this.currentTarget=null},this.initTooltip=()=>{var r;const i=new F4({className:"tooltip",style:this.tooltipStyleProps});return(r=this.container)===null||r===void 0||r.appendChild(i.HTMLTooltipElement),i},this.render(),this.bindEvents()}getEvents(){return this.options.trigger==="click"?{"node:click":this.onClick,"edge:click":this.onClick,"combo:click":this.onClick,"canvas:click":this.onPointerLeave,contextmenu:this.onPointerLeave,drag:this.onPointerLeave}:{"node:pointerover":this.onPointerOver,"node:pointermove":this.onPointerMove,"canvas:pointermove":this.onCanvasMove,"edge:pointerover":this.onPointerOver,"edge:pointermove":this.onPointerMove,"combo:pointerover":this.onPointerOver,"combo:pointermove":this.onPointerMove,contextmenu:this.onPointerLeave,"node:drag":this.onPointerLeave}}update(t){var e;this.unbindEvents(),super.update(t),this.tooltipElement&&((e=this.container)===null||e===void 0||e.removeChild(this.tooltipElement.HTMLTooltipElement)),this.tooltipElement=this.initTooltip(),this.bindEvents()}render(){const{canvas:t}=this.context,e=t.getContainer();e&&(this.container=e,this.tooltipElement=this.initTooltip())}unbindEvents(){const{graph:t}=this.context,e=this.getEvents();Object.keys(e).forEach(r=>{t.off(r,e[r])})}bindEvents(){const{graph:t}=this.context,e=this.getEvents();Object.keys(e).forEach(r=>{t.on(r,e[r])})}get tooltipStyleProps(){const{canvas:t}=this.context,{center:e}=t.getBounds(),r=t.getContainer(),{top:i,left:a}=r.getBoundingClientRect(),{style:s,position:o,enterable:l,container:c={x:-a,y:-i},title:u,offset:h}=this.options,[d,f]=e,[v,g]=t.getSize();return{x:d,y:f,container:c,title:u,bounding:{x:0,y:0,width:v,height:g},position:o,enterable:l,offset:h,style:s}}destroy(){var t;this.unbindEvents(),this.tooltipElement&&((t=this.container)===null||t===void 0||t.removeChild(this.tooltipElement.HTMLTooltipElement)),super.destroy()}}qh.defaultOptions={trigger:"hover",position:"top-right",enterable:!1,enable:!0,offset:[10,10],style:{".tooltip":{visibility:"hidden"}}};var TE=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};let Co;function OE(n,t){return Co||(Co=document.createElement("canvas")),Co.width=n,Co.height=t,Co.getContext("2d").clearRect(0,0,n,t),Co}function z4(n,t,e,r){return TE(this,void 0,void 0,function*(){const i=OE(n,t),a=i.getContext("2d"),{rotate:s,opacity:o,textFill:l,textFontSize:c,textFontFamily:u,textFontVariant:h,textFontWeight:d,textAlign:f,textBaseline:v}=r;return a.textAlign=f,a.textBaseline=v,a.translate(n/2,t/2),a.font=`${c}px ${u} ${h} ${d}`,s&&a.rotate(s),o&&(a.globalAlpha=o),l&&(a.fillStyle=l,a.fillText(`${e}`,0,0)),i.toDataURL()})}function j4(n,t,e,r){return TE(this,void 0,void 0,function*(){const i=OE(n,t),a=i.getContext("2d"),{rotate:s,opacity:o}=r;s&&a.rotate(s),o&&(a.globalAlpha=o);const l=new Image;return l.crossOrigin="anonymous",l.src=e,new Promise(c=>{l.onload=function(){const u=n>l.width?(n-l.width)/2:0,h=t>l.height?(t-l.height)/2:0;a.drawImage(l,0,0,l.width,l.height,u,h,n-u*2,t-h*2),c(i.toDataURL())}})})}var W4=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})},G4=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(n);isuper.update}});return W4(this,void 0,void 0,function*(){e.update.call(this,t);const r=this.options,{width:i,height:a,text:s,imageURL:o}=r,l=G4(r,["width","height","text","imageURL"]);Object.keys(l).forEach(u=>{u.startsWith("background")&&(this.$element.style[u]=t[u])});const c=o?yield j4(i,a,o,l):yield z4(i,a,s,l);this.$element.style.backgroundImage=`url(${c})`})}destroy(){super.destroy(),this.$element.remove()}}Jh.defaultOptions={width:200,height:100,opacity:.2,rotate:Math.PI/12,text:"",textFill:"#000",textFontSize:16,textAlign:"center",textBaseline:"middle",backgroundRepeat:"repeat"};const Z4=["#7E92B5","#F4664A","#FFBE3A"],V4={type:"group",color:["#1783FF","#00C9C9","#F08F56","#D580FF","#7863FF","#DB9D0D","#60C42D","#FF80CA","#2491B3","#17C76F"]},U4={type:"group",color:["#99ADD1","#1783FF","#00C9C9","#F08F56","#D580FF","#7863FF","#DB9D0D","#60C42D","#FF80CA","#2491B3","#17C76F"]};function CE(n){const{bgColor:t,textColor:e,nodeColor:r,nodeColorDisabled:i,nodeStroke:a,nodeHaloStrokeOpacityActive:s=.15,nodeHaloStrokeOpacitySelected:o=.25,nodeOpacityDisabled:l=.06,nodeIconOpacityInactive:c=.85,nodeOpacityInactive:u=.25,nodeBadgePalette:h=Z4,nodePaletteOptions:d=V4,edgeColor:f,edgeColorDisabled:v,edgePaletteOptions:g=U4,comboColor:p,comboColorDisabled:y,comboStroke:b,comboStrokeDisabled:E,edgeColorInactive:O}=n;return{background:t,node:{palette:d,style:{donutOpacity:1,badgeBackgroundOpacity:1,badgeFill:"#fff",badgeFontSize:8,badgePadding:[0,4],badgePalette:h,fill:r,fillOpacity:1,halo:!1,iconFill:"#fff",iconOpacity:1,labelBackground:!1,labelBackgroundFill:t,labelBackgroundLineWidth:0,labelBackgroundOpacity:.75,labelFill:e,labelFillOpacity:.85,labelLineHeight:16,labelPadding:[0,2],labelFontSize:12,labelFontWeight:400,labelOpacity:1,labelOffsetY:2,lineWidth:0,portFill:r,portLineWidth:1,portStroke:a,portStrokeOpacity:.65,size:32,stroke:a,strokeOpacity:1,zIndex:2},state:{selected:{halo:!0,haloLineWidth:24,haloStrokeOpacity:o,labelFontSize:12,labelFontWeight:"bold",lineWidth:4,stroke:a},active:{halo:!0,haloLineWidth:12,haloStrokeOpacity:s},highlight:{labelFontWeight:"bold",lineWidth:4,stroke:a,strokeOpacity:.85},inactive:{badgeBackgroundOpacity:u,donutOpacity:u,fillOpacity:u,iconOpacity:c,labelFill:e,labelFillOpacity:u,strokeOpacity:u},disabled:{badgeBackgroundOpacity:.25,donutOpacity:l,fill:i,fillOpacity:l,iconFill:i,iconOpacity:.25,labelFill:e,labelFillOpacity:.25,strokeOpacity:l}},animation:{enter:"fade",exit:"fade",show:"fade",hide:"fade",expand:"node-expand",collapse:"node-collapse",update:[{fields:["x","y","fill","stroke"]}],translate:[{fields:["x","y"]}]}},edge:{palette:g,style:{badgeBackgroundFill:f,badgeFill:"#fff",badgeFontSize:8,badgeOffsetX:10,badgeBackgroundOpacity:1,fillOpacity:1,halo:!1,haloLineWidth:12,haloStrokeOpacity:1,increasedLineWidthForHitTesting:2,labelBackground:!1,labelBackgroundFill:t,labelBackgroundLineWidth:0,labelBackgroundOpacity:.75,labelBackgroundPadding:[4,4,4,4],labelFill:e,labelFontSize:12,labelFontWeight:400,labelOpacity:1,labelPlacement:"center",labelTextBaseline:"middle",lineWidth:1,stroke:f,strokeOpacity:1,zIndex:1},state:{selected:{halo:!0,haloStrokeOpacity:.25,labelFontSize:14,labelFontWeight:"bold",lineWidth:3},active:{halo:!0,haloStrokeOpacity:.15},highlight:{labelFontWeight:"bold",lineWidth:3},inactive:{stroke:O,fillOpacity:.08,labelOpacity:.25,strokeOpacity:.08,badgeBackgroundOpacity:.25},disabled:{stroke:v,fillOpacity:.45,strokeOpacity:.45,labelOpacity:.25,badgeBackgroundOpacity:.45}},animation:{enter:"fade",exit:"fade",expand:"path-in",collapse:"path-out",show:"fade",hide:"fade",update:[{fields:["sourceNode","targetNode"]},{fields:["stroke"],shape:"key"}],translate:[{fields:["sourceNode","targetNode"]}]}},combo:{style:{collapsedMarkerFill:t,collapsedMarkerFontSize:12,collapsedMarkerFillOpacity:1,collapsedSize:32,collapsedFillOpacity:1,fill:p,halo:!1,haloLineWidth:12,haloStroke:b,haloStrokeOpacity:.25,labelBackground:!1,labelBackgroundFill:t,labelBackgroundLineWidth:0,labelBackgroundOpacity:.75,labelBackgroundPadding:[2,4,2,4],labelFill:e,labelFontSize:12,labelFontWeight:400,labelOpacity:1,lineDash:0,lineWidth:1,fillOpacity:.04,strokeOpacity:1,padding:10,stroke:b},state:{selected:{halo:!0,labelFontSize:14,labelFontWeight:700,lineWidth:4},active:{halo:!0},highlight:{labelFontWeight:700,lineWidth:4},inactive:{fillOpacity:.65,labelOpacity:.25,strokeOpacity:.65},disabled:{fill:y,fillOpacity:.25,labelOpacity:.25,stroke:E,strokeOpacity:.25}},animation:{enter:"fade",exit:"fade",show:"fade",hide:"fade",expand:"combo-expand",collapse:"combo-collapse",update:[{fields:["x","y"]},{fields:["fill","stroke","lineWidth"],shape:"key"}],translate:[{fields:["x","y"]}]}}}}const Y4=CE({bgColor:"#000000",comboColor:"#fdfdfd",comboColorDisabled:"#d0e4ff",comboStroke:"#99add1",comboStrokeDisabled:"#969696",edgeColor:"#637088",edgeColorDisabled:"#637088",edgeColorInactive:"#D0E4FF",edgePaletteOptions:{type:"group",color:["#637088","#0F55A6","#008383","#9C5D38","#8B53A6","#4E40A6","#8F6608","#3E801D","#A65383","#175E75","#0F8248"]},nodeColor:"#1783ff",nodeColorDisabled:"#D0E4FF",nodeHaloStrokeOpacityActive:.25,nodeHaloStrokeOpacitySelected:.45,nodeIconOpacityInactive:.45,nodeOpacityDisabled:.25,nodeOpacityInactive:.45,nodeStroke:"#d0e4ff",textColor:"#ffffff"}),H4=CE({bgColor:"#ffffff",comboColor:"#99ADD1",comboColorDisabled:"#f0f0f0",comboStroke:"#99add1",comboStrokeDisabled:"#d9d9d9",edgeColor:"#99add1",edgeColorDisabled:"#d9d9d9",edgeColorInactive:"#1B324F",nodeColor:"#1783ff",nodeColorDisabled:"#1B324F",nodeHaloStrokeOpacityActive:.15,nodeHaloStrokeOpacitySelected:.25,nodeIconOpacityInactive:.85,nodeOpacityDisabled:.06,nodeOpacityInactive:.25,nodeStroke:"#000000",textColor:"#000000"});class ts extends Gf{beforeDraw(t,e){return t}afterLayout(t,e){}}class X4 extends ts{beforeDraw(t){const{model:e}=this.context,r=t.add.combos,i=a=>{const s=[];return a.forEach((o,l)=>{const u=e.getAncestorsData(l,"combo").map(h=>At(h)).reverse();s.push([l,o,u.length])}),new Map(s.sort(([,,o],[,,l])=>l-o).map(([o,l])=>[o,l]))};return t.add.combos=i(r),t.update.combos=i(t.update.combos),t}}function di(n,t,e,r,i){const a=At(r),s=`${e}s`,o=i?r:n.add[s].get(a)||n.update[s].get(a)||n.remove[s].get(a)||r;Object.entries(n).forEach(([l,c])=>{t===l?c[s].set(a,o):c[s].delete(a)})}function $h(n,t){return Object.keys(n).every(e=>n[e]===t[e])}class K4 extends ts{beforeDraw(t,e){if(e.stage==="visibility"||!this.context.model.model.hasTreeStructure(dn))return t;const{model:r}=this.context,{add:i,update:a}=t,s=[...t.update.combos.entries(),...t.add.combos.entries()];for(;s.length;){const[o,l]=s.pop();if(Jr(l)){const c=r.getDescendantsData(o),u=c.map(At),{internal:h,external:d}=dv(u,f=>r.getRelatedEdgesData(f));c.forEach(f=>{const v=At(f),g=s.findIndex(([y])=>y===v);g!==-1&&s.splice(g,1);const p=r.getElementType(v);di(t,"remove",p,f)}),h.forEach(f=>di(t,"remove","edge",f)),d.forEach(f=>{var v;const g=At(f);((v=this.context.element)===null||v===void 0?void 0:v.getElement(g))?a.edges.set(g,f):i.edges.set(g,f)})}else{const c=r.getChildrenData(o),u=c.map(At),{edges:h}=dv(u,d=>r.getRelatedEdgesData(d));[...c,...h].forEach(d=>{var f;const v=At(d),g=r.getElementType(v);((f=this.context.element)===null||f===void 0?void 0:f.getElement(v))?di(t,"update",g,d):di(t,"add",g,d),g==="combo"&&s.push([v,d])})}}return t}}const NE=(n,t,e,r)=>{const i=`${e}s`,a=At(r);!n.add[i].has(a)&&!n.update[i].has(a)&&n[t][i].set(At(r),r)};class Q4 extends ts{getElement(t){return this.context.element.getElement(t)}handleExpand(t,e){if(NE(e,"add","node",t),Jr(t))return;const r=At(t);NE(e,"add","node",t),this.context.model.getRelatedEdgesData(r).forEach(s=>{di(e,"add","edge",s)}),this.context.model.getChildrenData(r).forEach(s=>{this.handleExpand(s,e)})}beforeDraw(t){const{graph:e,model:r}=this.context;if(!r.model.hasTreeStructure(si))return t;const{add:{nodes:i,edges:a},update:{nodes:s}}=t,o=new Map,l=new Map;i.forEach((u,h)=>{Jr(u)&&o.set(h,u)}),a.forEach(u=>{if(e.getElementType(u.source)!=="node")return;const h=e.getNodeData(u.source);Jr(h)&&o.set(u.source,h)}),s.forEach((u,h)=>{const d=this.getElement(h);if(!d)return;const f=d.attributes.collapsed;Jr(u)?f||o.set(h,u):f&&l.set(h,u)});const c=new Set;return o.forEach((u,h)=>{r.getDescendantsData(h).forEach(f=>{const v=At(f);if(c.has(v))return;di(t,"remove","node",f),r.getRelatedEdgesData(v).forEach(p=>{di(t,"remove","edge",p)}),c.add(v)})}),l.forEach((u,h)=>{if(r.getAncestorsData(h,si).some(Jr)){di(t,"remove","node",u);return}this.handleExpand(u,t)}),t}}const I0=new WeakMap;function Wj(n,t,e){I0.has(n)||I0.set(n,{});const r=I0.get(n);if(!r[t])return r[t]=e,!0;const i=r[t];return kE(i,e)?!1:(r[t]=e,!0)}const kE=(n,t,e=2)=>{if(typeof n!="object"||typeof t!="object")return n===t;const r=Object.keys(n),i=Object.keys(t);if(r.length!==i.length)return!1;for(const a of r){const s=n[a],o=t[a];if(e>1&&typeof s=="object"&&typeof o=="object"){if(!kE(s,o,e-1))return!1}else if(s!==o)return!1}return!0};function q4(n,t,e){Af[n][t]&&qr.warn(`The extension ${t} of ${n} has been registered before, and will be overridden.`),Object.assign(Af[n],{[t]:e})}var PE=function(){function n(t){(0,C.Z)(this,n),this.dragndropPluginOptions=t}return(0,T.Z)(n,[{key:"apply",value:function(e){var r=this,i=e.renderingService,a=e.renderingContext,s=a.root.ownerDocument,o=s.defaultView,l=function(u){var h=u.target,d=h===s,f=d&&r.dragndropPluginOptions.isDocumentDraggable?s:h.closest&&h.closest("[draggable=true]");if(f){var v=!1,g=u.timeStamp,p=[u.clientX,u.clientY],y=null,b=[u.clientX,u.clientY],E=function(){var k=(0,La.Z)((0,Nr.Z)().mark(function R(z){var B,V,U,J,$,st;return(0,Nr.Z)().wrap(function(ct){for(;;)switch(ct.prev=ct.next){case 0:if(v){ct.next=2;break}if(B=z.timeStamp-g,V=Vr([z.clientX,z.clientY],p),!(B<=r.dragndropPluginOptions.dragstartTimeThreshold||V<=r.dragndropPluginOptions.dragstartDistanceThreshold)){ct.next=1;break}return ct.abrupt("return");case 1:z.type="dragstart",f.dispatchEvent(z),v=!0;case 2:if(z.type="drag",z.dx=z.clientX-b[0],z.dy=z.clientY-b[1],f.dispatchEvent(z),b=[z.clientX,z.clientY],d){ct.next=4;break}return U=r.dragndropPluginOptions.overlap==="pointer"?[z.canvasX,z.canvasY]:h.getBounds().center,ct.next=3,s.elementsFromPoint(U[0],U[1]);case 3:J=ct.sent,$=J[J.indexOf(h)+1],st=($==null?void 0:$.closest("[droppable=true]"))||(r.dragndropPluginOptions.isDocumentDroppable?s:null),y!==st&&(y&&(z.type="dragleave",z.target=y,y.dispatchEvent(z)),st&&(z.type="dragenter",z.target=st,st.dispatchEvent(z)),y=st,y&&(z.type="dragover",z.target=y,y.dispatchEvent(z)));case 4:case"end":return ct.stop()}},R)}));return function(z){return k.apply(this,arguments)}}();o.addEventListener("pointermove",E);var O=function(R){if(v){R.detail={preventClick:!0};var z=R.clone();y&&(z.type="drop",z.target=y,y.dispatchEvent(z)),z.type="dragend",f.dispatchEvent(z),v=!1}o.removeEventListener("pointermove",E)};h.addEventListener("pointerup",O,{once:!0}),h.addEventListener("pointerupoutside",O,{once:!0})}};i.hooks.init.tap(n.tag,function(){o.addEventListener("pointerdown",l)}),i.hooks.destroy.tap(n.tag,function(){o.removeEventListener("pointerdown",l)})}}])}();PE.tag="Dragndrop";var J4=function(n){function t(){var e,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return(0,C.Z)(this,t),e=I(this,t),e.name="dragndrop",e.options=r,e}return(0,L.Z)(t,n),(0,T.Z)(t,[{key:"init",value:function(){this.addRenderingPlugin(new PE((0,F.Z)({overlap:"pointer",isDocumentDraggable:!1,isDocumentDroppable:!1,dragstartDistanceThreshold:0,dragstartTimeThreshold:0},this.options)))}},{key:"destroy",value:function(){this.removeAllRenderingPlugins()}},{key:"setOptions",value:function(r){Object.assign(this.plugins[0].dragndropPluginOptions,r)}}])}(_a),RE=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})},LE=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(n);i{const d=new vf(Object.assign(Object.assign({},o),{supportsMutipleCanvasesInOneContainer:s,renderer:c[h],background:s?h==="background"?i:void 0:i}));return[h,d]}));FE(u),this.extends={config:this.config,renderer:r,renderers:c,layers:u}}get ready(){return Promise.all(Object.entries(this.getLayers()).map(([,t])=>t.ready))}resize(t,e){Object.assign(this.extends.config,{width:t,height:e}),Object.values(this.getLayers()).forEach(r=>{const i=r.getCamera(),a=i.getPosition(),s=i.getFocalPoint();r.resize(t,e),i.setPosition(a),i.setFocalPoint(s)})}getBounds(t){return dl(Object.values(this.getLayers()).map(e=>t?e.getRoot().childNodes.find(i=>i.classList.includes(t)):e.getRoot()).filter(e=>(e==null?void 0:e.childNodes.length)>0).map(e=>e.getBounds()))}getContainer(){const t=this.extends.config.container;return typeof t=="string"?document.getElementById(t):t}getSize(){return[this.extends.config.width||0,this.extends.config.height||0]}appendChild(t,e){var r;const i=((r=t.style)===null||r===void 0?void 0:r.$layer)||"main";return this.getLayer(i).appendChild(t,e)}setRenderer(t){if(t===this.extends.renderer)return;const e=BE(t,this.config.enableMultiLayer?DE:_E);this.extends.renderers=e,Object.entries(e).forEach(([r,i])=>this.getLayer(r).setRenderer(i)),FE(this.getLayers())}getCanvasByViewport(t){return br(this.getLayer().viewport2Canvas(zi(t)))}getViewportByCanvas(t){return br(this.getLayer().canvas2Viewport(zi(t)))}getViewportByClient(t){return br(this.getLayer().client2Viewport(zi(t)))}getClientByViewport(t){return br(this.getLayer().viewport2Client(zi(t)))}getClientByCanvas(t){return this.getClientByViewport(this.getViewportByCanvas(t))}getCanvasByClient(t){const e=this.getLayer(),r=e.client2Viewport(zi(t));return br(e.viewport2Canvas(r))}toDataURL(){return RE(this,arguments,void 0,function*(t={}){const e=globalThis.devicePixelRatio||1,{mode:r="viewport"}=t,i=LE(t,["mode"]);let[a,s,o,l]=[0,0,0,0];if(r==="viewport")[o,l]=this.getSize();else if(r==="overall"){const y=this.getBounds(),b=Ba(y);[a,s]=y.min,[o,l]=b}const c=_0('
    '),u=new vf({width:o,height:l,renderer:new Sl,devicePixelRatio:e,container:c,background:this.extends.config.background});yield u.ready,u.appendChild(this.getLayer("background").getRoot().cloneNode(!0)),u.appendChild(this.getRoot().cloneNode(!0));const h=this.getLayer("label").getRoot().cloneNode(!0),d=u.viewport2Canvas({x:0,y:0}),f=this.getCanvasByViewport([0,0]);h.translate([f[0]-d.x,f[1]-d.y]),h.scale(1/this.getCamera().getZoom()),u.appendChild(h),u.appendChild(this.getLayer("transient").getRoot().cloneNode(!0));const v=this.getCamera(),g=u.getCamera();if(r==="viewport")g.setZoom(v.getZoom()),g.setPosition(v.getPosition()),g.setFocalPoint(v.getFocalPoint());else if(r==="overall"){const[y,b,E]=g.getPosition(),[O,k,R]=g.getFocalPoint();g.setPosition([y+a,b+s,E]),g.setFocalPoint([O+a,k+s,R])}const p=u.getContextService();return new Promise(y=>{u.addEventListener(ai.RERENDER,()=>RE(this,void 0,void 0,function*(){yield new Promise(E=>setTimeout(E,300));const b=yield p.toDataURL(i);y(b)}))})})}destroy(){Object.values(this.getLayers()).forEach(t=>{t.getCamera().cancelLandmarkAnimation(),t.destroy()})}}function BE(n,t){return Object.fromEntries(t.map(e=>{const r=(n==null?void 0:n(e))||new Sl;return r instanceof Sl&&r.setConfig({enableDirtyRectangleRendering:!1}),e==="main"?r.registerPlugin(new J4({isDocumentDraggable:!0,isDocumentDroppable:!0,dragstartDistanceThreshold:10,dragstartTimeThreshold:100})):r.unregisterPlugin(r.getPlugin("dom-interaction")),[e,r]}))}function FE(n){Object.entries(n).forEach(([t,e])=>{const r=e.getContextService().getDomElement();r!=null&&r.style&&(r.style.gridArea="1 / 1 / 2 / 2",r.style.outline="none",r.tabIndex=1,t!=="main"&&(r.style.pointerEvents="none")),r!=null&&r.parentElement&&(r.parentElement.style.display="grid",r.parentElement.style.isolation="isolate")})}const No=n=>n?parseInt(n):0;function tB(n){const t=getComputedStyle(n),e=n.clientWidth||No(t.width),r=n.clientHeight||No(t.height),i=No(t.paddingLeft)+No(t.paddingRight),a=No(t.paddingTop)+No(t.paddingBottom);return[e-i,r-a]}function zE(n){if(!n)return[0,0];let t=640,e=480;const[r,i]=tB(n);t=r||t,e=i||e;const a=1,s=1;return[Math.max(re(t)?t:a,a),Math.max(re(e)?e:s,s)]}class td{constructor(t){this.type=t}}class tr extends td{constructor(t,e){super(t),this.data=e}}class Ci extends td{constructor(t,e,r,i){super(t),this.animationType=e,this.animation=r,this.data=i}}class ko extends td{constructor(t,e,r){super(t),this.elementType=e,this.data=r}}class ed extends td{constructor(t,e){super(t),this.data=e}}function sr(n,t){n.emit(t.type,t)}function eB(n){if(!n)return null;if(n instanceof rm)return{type:"canvas",element:n};let t=n;for(;t;){if(Al(t))return{type:"node",element:t};if(S1(t))return{type:"edge",element:t};if(fv(t))return{type:"combo",element:t};t=t.parentElement}return null}function jE(n){var t;return((t=n==null?void 0:n.style)===null||t===void 0?void 0:t.zIndex)||0}const Po="cachedStyle",nd=n=>`__${n}__`;function nB(n,t){const e=Array.isArray(t)?t:[t];xr(n,Po)||bl(n,Po,{}),e.forEach(r=>{bl(xr(n,Po),nd(r),n.attributes[r])})}function WE(n,t){return xr(n,[Po,nd(t)])}function rB(n,t){return nd(t)in(xr(n,Po)||{})}function Gj(n,t,e){set(n,[Po,nd(t)],e)}class iB{constructor(t){this.tasks=[],this.animations=new Set,this.context=t}getTasks(){const t=[...this.tasks];return this.tasks=[],t}add(t,e){this.tasks.push([t,e])}animate(t,e,r){var i,a,s;(i=e==null?void 0:e.before)===null||i===void 0||i.call(e);const o=this.getTasks().map(([c,u])=>{var h,d,f;const{element:v,elementType:g,stage:p}=c,y=xO(this.context.options,g,p,t);(h=u==null?void 0:u.before)===null||h===void 0||h.call(u);const b=y.length?wO(v,this.inferStyle(c,r),y):null;return b?((d=u==null?void 0:u.beforeAnimate)===null||d===void 0||d.call(u,b),b.finished.then(()=>{var E,O;(E=u==null?void 0:u.afterAnimate)===null||E===void 0||E.call(u,b),(O=u==null?void 0:u.after)===null||O===void 0||O.call(u),this.animations.delete(b)})):(f=u==null?void 0:u.after)===null||f===void 0||f.call(u),b}).filter(Boolean);o.forEach(c=>this.animations.add(c));const l=Tf(o);return l?((a=e==null?void 0:e.beforeAnimate)===null||a===void 0||a.call(e,l),l.finished.then(()=>{var c,u;(c=e==null?void 0:e.afterAnimate)===null||c===void 0||c.call(e,l),(u=e==null?void 0:e.after)===null||u===void 0||u.call(e),this.release()})):(s=e==null?void 0:e.after)===null||s===void 0||s.call(e),l}inferStyle(t,e){var r,i;const{element:a,elementType:s,stage:o,originalStyle:l,updatedStyle:c={}}=t;t.modifiedStyle||(t.modifiedStyle=Object.assign(Object.assign({},l),c));const{modifiedStyle:u}=t,h={},d={};if(o==="enter")Object.assign(h,{opacity:0});else if(o==="exit")Object.assign(d,{opacity:0});else if(o==="show")Object.assign(h,{opacity:0}),Object.assign(d,{opacity:(r=WE(a,"opacity"))!==null&&r!==void 0?r:hl("opacity")});else if(o==="hide")Object.assign(h,{opacity:(i=WE(a,"opacity"))!==null&&i!==void 0?i:hl("opacity")}),Object.assign(d,{opacity:0});else if(o==="collapse"){const{collapse:f}=e||{},{target:v,descendants:g,position:p}=f;if(s==="node"){if(g.includes(a.id)){const[y,b,E]=p;Object.assign(d,{x:y,y:b,z:E})}}else if(s==="combo"){if(a.id===v||g.includes(a.id)){const[y,b]=p;Object.assign(d,{x:y,y:b,childrenNode:l.childrenNode})}}else s==="edge"&&Object.assign(d,{sourceNode:u.sourceNode,targetNode:u.targetNode})}else if(o==="expand"){const{expand:f}=e||{},{target:v,descendants:g,position:p}=f;if(s==="node"){if(a.id===v||g.includes(a.id)){const[y,b,E]=p;Object.assign(h,{x:y,y:b,z:E})}}else if(s==="combo"){if(a.id===v||g.includes(a.id)){const[y,b,E]=p;Object.assign(h,{x:y,y:b,z:E,childrenNode:u.childrenNode})}}else s==="edge"&&Object.assign(h,{sourceNode:u.sourceNode,targetNode:u.targetNode})}return[Object.keys(h).length>0?Object.assign({},l,h):l,Object.keys(d).length>0?Object.assign({},u,d):u]}stop(){this.animations.forEach(t=>t.cancel())}clear(){this.tasks=[]}release(){var t,e;const{canvas:r}=this.context,i=(e=(t=r.document)===null||t===void 0?void 0:t.timeline)===null||e===void 0?void 0:e.animationsWithPromises;i&&(r.document.timeline.animationsWithPromises=i.filter(a=>a.playState!=="finished"))}destroy(){this.stop(),this.animations.clear(),this.tasks=[]}}class aB{constructor(t){this.batchCount=0,this.context=t}emit(t){const{graph:e}=this.context;e.emit(t.type,t)}startBatch(t=!0){this.batchCount++,this.batchCount===1&&this.emit(new tr(Xt.BATCH_START,{initiate:t}))}endBatch(){this.batchCount--,this.batchCount===0&&this.emit(new tr(Xt.BATCH_END))}get isBatching(){return this.batchCount>0}destroy(){this.context=null}}class sB extends Wf{constructor(t){super(t),this.currentTarget=null,this.currentTargetType=null,this.category="behavior",this.forwardCanvasEvents=e=>{const{target:r}=e,i=eB(r);if(!i)return;const{graph:a,canvas:s}=this.context,{type:o,element:l}=i;if("destroyed"in l&&(Ol(l)||l.destroyed))return;const{type:c,detail:u,button:h}=e,d=Object.assign(Object.assign({},e),{target:l,targetType:o,originalTarget:r});c===It.POINTER_MOVE&&(this.currentTarget!==l&&(this.currentTarget&&a.emit(`${this.currentTargetType}:${It.POINTER_LEAVE}`,Object.assign(Object.assign({},d),{type:It.POINTER_LEAVE,target:this.currentTarget,targetType:this.currentTargetType})),l&&(Object.assign(d,{type:It.POINTER_ENTER}),a.emit(`${o}:${It.POINTER_ENTER}`,d))),this.currentTarget=l,this.currentTargetType=o),c===It.CLICK&&h===2||(a.emit(`${o}:${c}`,d),a.emit(c,d)),c===It.CLICK&&u===2&&(Object.assign(d,{type:It.DBLCLICK}),a.emit(`${o}:${It.DBLCLICK}`,d),a.emit(It.DBLCLICK,d)),c===It.POINTER_DOWN&&h===2&&(Object.assign(d,{type:It.CONTEXT_MENU,preventDefault:()=>{var f;(f=s.getContainer())===null||f===void 0||f.addEventListener(It.CONTEXT_MENU,v=>v.preventDefault(),{once:!0})}}),a.emit(`${o}:${It.CONTEXT_MENU}`,d),a.emit(It.CONTEXT_MENU,d))},this.forwardContainerEvents=e=>{this.context.graph.emit(e.type,e)},this.forwardEvents(),this.setBehaviors(this.context.options.behaviors||[])}setBehaviors(t){this.setExtensions(t)}forwardEvents(){const t=this.context.canvas.getContainer();t&&[co.KEY_DOWN,co.KEY_UP].forEach(r=>{t.addEventListener(r,this.forwardContainerEvents)});const e=this.context.canvas.document;e&&[It.CLICK,It.DBLCLICK,It.POINTER_OVER,It.POINTER_LEAVE,It.POINTER_ENTER,It.POINTER_MOVE,It.POINTER_OUT,It.POINTER_DOWN,It.POINTER_UP,It.CONTEXT_MENU,It.DRAG_START,It.DRAG,It.DRAG_END,It.DRAG_ENTER,It.DRAG_OVER,It.DRAG_LEAVE,It.DROP,It.WHEEL].forEach(r=>{e.addEventListener(r,this.forwardCanvasEvents)})}destroy(){const t=this.context.canvas.getContainer();t&&[co.KEY_DOWN,co.KEY_UP].forEach(e=>{t.removeEventListener(e,this.forwardContainerEvents)}),this.context.canvas.document.removeAllEventListeners(),super.destroy()}}function oB(n,t){t===void 0&&(t=new Map);var e=[];if(Array.isArray(n))for(var r=0,i=n.length;rv.length!==g.length?!1:v.every((p,y)=>p===g[y]),f=(v,g)=>{const p=Object.keys(v),y=Object.keys(g);return p.length!==y.length?!1:p.every(b=>v[b]===g[b])};return!(!f(s,h)||!d(a,u)||!d(e,o)||!f(r,l)||!f(i,c))}var lB=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(n);i0}silence(t){this.isTraceless=!0,t(),this.isTraceless=!1}isCombo(t){return this.comboIds.has(t)||this.latestRemovedComboIds.has(t)}getData(){return{nodes:this.getNodeData(),edges:this.getEdgeData(),combos:this.getComboData()}}getNodeData(t){return this.model.getAllNodes().reduce((e,r)=>{const i=fr(r);return this.isCombo(At(i))||(t===void 0||t.includes(At(i)))&&e.push(i),e},[])}getEdgeDatum(t){return fr(this.model.getEdge(t))}getEdgeData(t){return this.model.getAllEdges().reduce((e,r)=>{const i=fr(r);return(t===void 0||t.includes(At(i)))&&e.push(i),e},[])}getComboData(t){return this.model.getAllNodes().reduce((e,r)=>{const i=fr(r);return this.isCombo(At(i))&&(t===void 0||t.includes(At(i)))&&e.push(i),e},[])}getRootsData(t=si){return this.model.getRoots(t).map(fr)}getAncestorsData(t,e){const{model:r}=this;return!r.hasNode(t)||!r.hasTreeStructure(e)?[]:r.getAncestors(t,e).map(fr)}getDescendantsData(t){const e=this.getElementDataById(t),r=[];return Ps(e,i=>{i!==e&&r.push(i)},i=>this.getChildrenData(At(i)),"TB"),r}getParentData(t,e){const{model:r}=this;if(!e){qr.warn("The hierarchy structure key is not specified");return}if(!r.hasNode(t)||!r.hasTreeStructure(e))return;const i=r.getParent(t,e);return i?fr(i):void 0}getChildrenData(t){const e=this.getElementType(t)==="node"?si:dn,{model:r}=this;return!r.hasNode(t)||!r.hasTreeStructure(e)?[]:r.getChildren(t,e).map(fr)}getElementsDataByType(t){return t==="node"?this.getNodeData():t==="edge"?this.getEdgeData():t==="combo"?this.getComboData():[]}getElementDataById(t){return this.getElementType(t)==="edge"?this.getEdgeDatum(t):this.getNodeLikeDatum(t)}getNodeLikeDatum(t){const e=this.model.getNode(t);return fr(e)}getNodeLikeData(t){return this.model.getAllNodes().reduce((e,r)=>{const i=fr(r);return t?t.includes(At(i))&&e.push(i):e.push(i),e},[])}getElementDataByState(t,e){return this.getElementsDataByType(t).filter(i=>{var a;return(a=i.states)===null||a===void 0?void 0:a.includes(e)})}getElementState(t){var e;return((e=this.getElementDataById(t))===null||e===void 0?void 0:e.states)||[]}hasNode(t){return this.model.hasNode(t)&&!this.isCombo(t)}hasEdge(t){return this.model.hasEdge(t)}hasCombo(t){return this.model.hasNode(t)&&this.isCombo(t)}getRelatedEdgesData(t,e="both"){return this.model.getRelatedEdges(t,e).map(fr)}getNeighborNodesData(t){return this.model.getNeighbors(t).map(fr)}setData(t){const{nodes:e=[],edges:r=[],combos:i=[]}=t,{nodes:a,edges:s,combos:o}=this.getData(),l=ja(a,e,h=>At(h),Ro),c=ja(s,r,h=>At(h),Ro),u=ja(o,i,h=>At(h),Ro);this.batch(()=>{const h={nodes:l.enter,edges:c.enter,combos:u.enter};this.addData(h),this.computeZIndex(h,"add",!0);const d={nodes:l.update,edges:c.update,combos:u.update};this.updateData(d),this.computeZIndex(d,"update",!0);const f={nodes:l.exit.map(At),edges:c.exit.map(At),combos:u.exit.map(At)};this.removeData(f)})}addData(t){const{nodes:e,edges:r,combos:i}=t;this.batch(()=>{this.addComboData(i),this.addNodeData(e),this.addEdgeData(r)}),this.computeZIndex(t,"add")}addNodeData(t=[]){t.length&&(this.model.addNodes(t.map(e=>(this.pushChange({value:e,type:Mn.NodeAdded}),F0(e)))),this.updateNodeLikeHierarchy(t),this.computeZIndex({nodes:t},"add"))}addEdgeData(t=[]){t.length&&(this.model.addEdges(t.map(e=>(this.pushChange({value:e,type:Mn.EdgeAdded}),F0(e)))),this.computeZIndex({edges:t},"add"))}addComboData(t=[]){if(!t.length)return;const{model:e}=this;e.hasTreeStructure(dn)||e.attachTreeStructure(dn),e.addNodes(t.map(r=>(this.comboIds.add(At(r)),this.pushChange({value:r,type:Mn.ComboAdded}),F0(r)))),this.updateNodeLikeHierarchy(t),this.computeZIndex({combos:t},"add")}addChildrenData(t,e){const r=this.getNodeLikeDatum(t),i=e.map(At);this.addNodeData(e),this.updateNodeData([{id:t,children:[...r.children||[],...i]}]),this.addEdgeData(i.map(a=>({source:t,target:a})))}computeZIndex(t,e,r=!1){!r&&this.isBatching()||this.batch(()=>{const{nodes:i=[],edges:a=[],combos:s=[]}=t;s.forEach(o=>{var l,c,u;const h=At(o);if(e==="add"&&re((l=o.style)===null||l===void 0?void 0:l.zIndex)||e==="update"&&!("combo"in o))return;const d=this.getParentData(h,dn),f=d?((u=(c=d.style)===null||c===void 0?void 0:c.zIndex)!==null&&u!==void 0?u:0)+1:0;this.preventUpdateNodeLikeHierarchy(()=>{this.updateComboData([{id:h,style:{zIndex:f}}])})}),i.forEach(o=>{var l,c,u;const h=At(o);if(e==="add"&&re((l=o.style)===null||l===void 0?void 0:l.zIndex)||e==="update"&&!("combo"in o)&&!("children"in o))return;let d=0;const f=this.getParentData(h,dn);if(f)d=(((c=f.style)===null||c===void 0?void 0:c.zIndex)||0)+1;else{const v=this.getParentData(h,si);v&&(d=((u=v==null?void 0:v.style)===null||u===void 0?void 0:u.zIndex)||0)}this.preventUpdateNodeLikeHierarchy(()=>{this.updateNodeData([{id:h,style:{zIndex:d}}])})}),a.forEach(o=>{var l,c,u,h,d;if(re((l=o.style)===null||l===void 0?void 0:l.zIndex))return;let{id:f,source:v,target:g}=o;if(!f)f=At(o);else{const b=this.getEdgeDatum(f);v=b.source,g=b.target}if(!v||!g)return;const p=((u=(c=this.getNodeLikeDatum(v))===null||c===void 0?void 0:c.style)===null||u===void 0?void 0:u.zIndex)||0,y=((d=(h=this.getNodeLikeDatum(g))===null||h===void 0?void 0:h.style)===null||d===void 0?void 0:d.zIndex)||0;this.updateEdgeData([{id:At(o),style:{zIndex:Math.max(p,y)-1}}])})})}getFrontZIndex(t){var e;const r=this.getElementType(t),i=this.getElementDataById(t),a=this.getData();if(Object.assign(a,{[`${r}s`]:a[`${r}s`].filter(s=>At(s)!==t)}),r==="combo"&&!Jr(i)){const s=new Set(this.getAncestorsData(t,dn).map(At));a.nodes=a.nodes.filter(o=>!s.has(At(o))),a.combos=a.combos.filter(o=>!s.has(At(o))),a.edges=a.edges.filter(({source:o,target:l})=>!s.has(o)&&!s.has(l))}return Math.max(((e=i.style)===null||e===void 0?void 0:e.zIndex)||0,0,...Object.values(a).flat().map(s=>{var o;return(((o=s==null?void 0:s.style)===null||o===void 0?void 0:o.zIndex)||0)+1}))}updateNodeLikeHierarchy(t){if(!this.enableUpdateNodeLikeHierarchy)return;const{model:e}=this;t.forEach(r=>{const i=At(r),a=hu(r);a!==void 0&&(e.hasTreeStructure(dn)||e.attachTreeStructure(dn),a===null&&this.refreshComboData(i),this.setParent(i,hu(r),dn));const s=r.children||[];if(s.length){e.hasTreeStructure(si)||e.attachTreeStructure(si);const o=s.filter(l=>e.hasNode(l));o.forEach(l=>this.setParent(l,i,si)),o.length!==s.length&&this.updateNodeData([{id:i,children:o}])}})}preventUpdateNodeLikeHierarchy(t){this.enableUpdateNodeLikeHierarchy=!1,t(),this.enableUpdateNodeLikeHierarchy=!0}updateData(t){const{nodes:e,edges:r,combos:i}=t;this.batch(()=>{this.updateNodeData(e),this.updateComboData(i),this.updateEdgeData(r)}),this.computeZIndex(t,"update")}updateNodeData(t=[]){if(!t.length)return;const{model:e}=this;this.batch(()=>{const r=[];t.forEach(i=>{const a=At(i),s=fr(e.getNode(a));if(Ro(s,i))return;const o=es(s,i);this.pushChange({value:o,original:s,type:Mn.NodeUpdated}),e.mergeNodeData(a,o),r.push(o)}),this.updateNodeLikeHierarchy(r)}),this.computeZIndex({nodes:t},"update")}refreshData(){const{nodes:t,edges:e,combos:r}=this.getData();t.forEach(i=>{this.pushChange({value:i,original:i,type:Mn.NodeUpdated})}),e.forEach(i=>{this.pushChange({value:i,original:i,type:Mn.EdgeUpdated})}),r.forEach(i=>{this.pushChange({value:i,original:i,type:Mn.ComboUpdated})})}syncNodeLikeDatum(t){const{model:e}=this,r=At(t);if(!e.hasNode(r))return;const i=fr(e.getNode(r)),a=es(i,t);e.mergeNodeData(r,a)}syncEdgeDatum(t){const{model:e}=this,r=At(t);if(!e.hasEdge(r))return;const i=fr(e.getEdge(r)),a=es(i,t);e.mergeEdgeData(r,a)}updateEdgeData(t=[]){if(!t.length)return;const{model:e}=this;this.batch(()=>{t.forEach(r=>{const i=At(r),a=fr(e.getEdge(i));if(Ro(a,r))return;r.source&&a.source!==r.source&&e.updateEdgeSource(i,r.source),r.target&&a.target!==r.target&&e.updateEdgeTarget(i,r.target);const s=es(a,r);this.pushChange({value:s,original:a,type:Mn.EdgeUpdated}),e.mergeEdgeData(i,s)})}),this.computeZIndex({edges:t},"update")}updateComboData(t=[]){if(!t.length)return;const{model:e}=this;e.batch(()=>{const r=[];t.forEach(i=>{const a=At(i),s=fr(e.getNode(a));if(Ro(s,i))return;const o=es(s,i);this.pushChange({value:o,original:s,type:Mn.ComboUpdated}),e.mergeNodeData(a,o),r.push(o)}),this.updateNodeLikeHierarchy(r)}),this.computeZIndex({combos:t},"update")}setParent(t,e,r,i=!0){if(t===e)return;const a=this.getNodeLikeDatum(t),s=hu(a);if(s!==e&&r===dn){const o={id:t,combo:e};this.isCombo(t)?this.syncNodeLikeDatum(o):this.syncNodeLikeDatum(o)}this.model.setParent(t,e,r),i&&r===dn&&oB([s,e]).forEach(o=>{o!==void 0&&this.refreshComboData(o)})}refreshComboData(t){const e=this.getComboData([t])[0],r=this.getAncestorsData(t,dn);e&&this.pushChange({value:e,original:e,type:Mn.ComboUpdated}),r.forEach(i=>{this.pushChange({value:i,original:i,type:Mn.ComboUpdated})})}getElementPosition(t){const e=this.getElementDataById(t);return ir(e)}translateNodeLikeBy(t,e){this.isCombo(t)?this.translateComboBy(t,e):this.translateNodeBy(t,e)}translateNodeLikeTo(t,e){this.isCombo(t)?this.translateComboTo(t,e):this.translateNodeTo(t,e)}translateNodeBy(t,e){const r=this.getElementPosition(t),i=Re(r,[...e,0].slice(0,3));this.translateNodeTo(t,i)}translateNodeTo(t,e){const[r=0,i=0,a=0]=e;this.preventUpdateNodeLikeHierarchy(()=>{this.updateNodeData([{id:t,style:{x:r,y:i,z:a}}])})}translateComboBy(t,e){const[r=0,i=0,a=0]=e;if([r,i,a].some(isNaN)||[r,i,a].every(l=>l===0))return;const s=this.getComboData([t])[0];if(!s)return;const o=new Set;Ps(s,l=>{const c=At(l);if(o.has(c))return;o.add(c);const[u,h,d]=ir(l),f=es(l,{style:{x:u+r,y:h+i,z:d+a}});this.pushChange({value:f,original:l,type:this.isCombo(c)?Mn.ComboUpdated:Mn.NodeUpdated}),this.model.mergeNodeData(c,f)},l=>this.getChildrenData(At(l)),"BT")}translateComboTo(t,e){var r;if(e.some(isNaN))return;const[i=0,a=0,s=0]=e,o=(r=this.getComboData([t]))===null||r===void 0?void 0:r[0];if(!o)return;const[l,c,u]=ir(o),h=i-l,d=a-c,f=s-u;Ps(o,v=>{const g=At(v),[p,y,b]=ir(v),E=es(v,{style:{x:p+h,y:y+d,z:b+f}});this.pushChange({value:E,original:v,type:this.isCombo(g)?Mn.ComboUpdated:Mn.NodeUpdated}),this.model.mergeNodeData(g,E)},v=>this.getChildrenData(At(v)),"BT")}removeData(t){const{nodes:e,edges:r,combos:i}=t;this.batch(()=>{this.removeEdgeData(r),this.removeNodeData(e),this.removeComboData(i),this.latestRemovedComboIds=new Set(i)})}removeNodeData(t=[]){t.length&&this.batch(()=>{t.forEach(e=>{this.removeEdgeData(this.getRelatedEdgesData(e).map(At)),this.pushChange({value:this.getNodeData([e])[0],type:Mn.NodeRemoved}),this.removeNodeLikeHierarchy(e)}),this.model.removeNodes(t)})}removeEdgeData(t=[]){t.length&&(t.forEach(e=>this.pushChange({value:this.getEdgeData([e])[0],type:Mn.EdgeRemoved})),this.model.removeEdges(t))}removeComboData(t=[]){t.length&&this.batch(()=>{t.forEach(e=>{this.pushChange({value:this.getComboData([e])[0],type:Mn.ComboRemoved}),this.removeNodeLikeHierarchy(e),this.comboIds.delete(e)}),this.model.removeNodes(t)})}removeNodeLikeHierarchy(t){if(this.model.hasTreeStructure(dn)){const e=hu(this.getNodeLikeDatum(t));this.setParent(t,void 0,dn,!1),this.model.getChildren(t,dn).forEach(r=>{const i=fr(r),a=At(i);this.setParent(At(i),e,dn,!1);const s=es(i,{id:At(i),combo:e});this.pushChange({value:s,original:i,type:this.isCombo(a)?Mn.ComboUpdated:Mn.NodeUpdated}),this.model.mergeNodeData(At(i),s)}),be(e)||this.refreshComboData(e)}}getElementType(t){if(this.model.hasNode(t))return this.isCombo(t)?"combo":"node";if(this.model.hasEdge(t))return"edge";throw new Error(ga(`Unknown element type of id: ${t}`))}destroy(){const{model:t}=this,e=t.getAllNodes(),r=t.getAllEdges();t.removeEdges(r.map(i=>i.id)),t.removeNodes(e.map(i=>i.id)),this.context={}}}var Yl=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};class hB{constructor(t){this.elementMap={},this.shapeTypeMap={},this.paletteStyle={},this.defaultStyle={},this.stateStyle={},this.visibilityCache=new WeakMap,this.context=t}init(){this.initContainer()}initContainer(){if(!this.container||this.container.destroyed){const{canvas:t}=this.context;this.container=t.appendChild(new rr({className:"elements"}))}}emit(t,e){e.silence||sr(this.context.graph,t)}forEachElementData(t){ks.forEach(e=>{const r=this.context.model.getElementsDataByType(e);t(e,r)})}getElementType(t,e){var r;const{options:i,graph:a}=this.context,s=((r=i[t])===null||r===void 0?void 0:r.type)||e.type;return s?typeof s=="string"?s:s.call(a,e):t==="edge"?"line":"circle"}getTheme(t){return Om(this.context.options)[t]||{}}getThemeStyle(t){return this.getTheme(t).style||{}}getThemeStateStyle(t,e){const{state:r={}}=this.getTheme(t);return Object.assign({},...e.map(i=>r[i]||{}))}computePaletteStyle(){const{options:t}=this.context;this.paletteStyle={},this.forEachElementData((e,r)=>{var i,a;const s=Object.assign({},jy((i=this.getTheme(e))===null||i===void 0?void 0:i.palette),jy((a=t[e])===null||a===void 0?void 0:a.palette));s!=null&&s.field&&Object.assign(this.paletteStyle,GN(r,s))})}getPaletteStyle(t,e){const r=this.paletteStyle[e];return r?t==="edge"?{stroke:r}:{fill:r}:{}}computeElementDefaultStyle(t,e){var r;const{options:i}=this.context,a=((r=i[t])===null||r===void 0?void 0:r.style)||{};"transform"in a&&Array.isArray(a.transform)&&(a.transform=[...a.transform]),this.defaultStyle[At(e.datum)]=zy(a,e)}computeElementsDefaultStyle(t){const{graph:e}=this.context;this.forEachElementData((r,i)=>{const a=i.length;for(let s=0;sthis.getElementStateStyle(t,i,r)))}computeElementsStatesStyle(t){const{graph:e}=this.context;this.forEachElementData((r,i)=>{const a=i.length;for(let s=0;sthis.elementMap[t])}getEdges(){return this.context.model.getEdgeData().map(t=>this.elementMap[At(t)])}getCombos(){return this.context.model.getComboData().map(({id:t})=>this.elementMap[t])}getElementComputedStyle(t,e){const r=At(e),i=this.getThemeStyle(t),a=this.getPaletteStyle(t,r),s=e.style||{},o=this.getDefaultStyle(r),l=this.getThemeStateStyle(t,this.getElementState(r)),c=this.getStateStyle(r),u=Object.assign({},i,a,s,o,l,c);if(t==="combo"){const h=this.context.model.getChildrenData(r),f=!!u.collapsed?[]:h.map(At).filter(v=>this.getElement(v));Object.assign(u,{childrenNode:f,childrenData:h})}return u}getDrawData(t){this.init();const e=this.computeChangesAndDrawData(t);if(!e)return null;const{type:r="draw",stage:i=r}=t;return this.markDestroyElement(e.drawData),this.computeStyle(i),{type:r,stage:i,data:e}}draw(t={animation:!0}){const e=this.getDrawData(t);if(!e)return;const{data:{drawData:{add:r,update:i,remove:a}}}=e;return this.destroyElements(a,t),this.createElements(r,t),this.updateElements(i,t),this.setAnimationTask(t,e)}preLayoutDraw(){return Yl(this,arguments,void 0,function*(t={animation:!0}){var e,r;const i=this.getDrawData(t);if(!i)return;const{data:{drawData:a}}=i;yield(r=(e=this.context.layout)===null||e===void 0?void 0:e.preLayout)===null||r===void 0?void 0:r.call(e,a);const{add:s,update:o,remove:l}=a;return this.destroyElements(l,t),this.createElements(s,t),this.updateElements(o,t),this.setAnimationTask(t,i)})}setAnimationTask(t,e){const{animation:r,silence:i}=t,{data:{dataChanges:a,drawData:s},stage:o,type:l}=e;return this.context.animation.animate(r,i?{}:{before:()=>this.emit(new tr(Xt.BEFORE_DRAW,{dataChanges:a,animation:r,stage:o,render:l==="render"}),t),beforeAnimate:c=>this.emit(new Ci(Xt.BEFORE_ANIMATE,Qr.DRAW,c,s),t),afterAnimate:c=>this.emit(new Ci(Xt.AFTER_ANIMATE,Qr.DRAW,c,s),t),after:()=>this.emit(new tr(Xt.AFTER_DRAW,{dataChanges:a,animation:r,stage:o,render:l==="render",firstRender:this.context.graph.rendered===!1}),t)})}computeChangesAndDrawData(t){const{model:e}=this.context,r=e.getChanges(),i=Hv(r);if(i.length===0)return null;const{NodeAdded:a=[],NodeUpdated:s=[],NodeRemoved:o=[],EdgeAdded:l=[],EdgeUpdated:c=[],EdgeRemoved:u=[],ComboAdded:h=[],ComboUpdated:d=[],ComboRemoved:f=[]}=qc(i,y=>y.type),v=y=>new Map(y.map(b=>{const E=b.value;return[At(E),E]})),g={add:{nodes:v(a),edges:v(l),combos:v(h)},update:{nodes:v(s),edges:v(c),combos:v(d)},remove:{nodes:v(o),edges:v(u),combos:v(f)}},p=this.transformData(g,t);return e.clearChanges(),{dataChanges:r,drawData:p}}transformData(t,e){const r=this.context.transform.getTransformInstance();return Object.values(r).reduce((i,a)=>a.beforeDraw(i,e),t)}createElement(t,e,r){var i;const a=At(e);if(this.getElement(a))return;const o=this.getElementType(t,e),l=this.getElementComputedStyle(t,e),c=va(t,o);if(!c)return qr.warn(`The element ${o} of ${t} is not registered.`);this.emit(new ko(Xt.BEFORE_ELEMENT_CREATE,t,e),r);const u=this.container.appendChild(new c({id:a,context:this.context,style:l}));this.shapeTypeMap[a]=o,this.elementMap[a]=u;const{stage:h="enter"}=r;(i=this.context.animation)===null||i===void 0||i.add({element:u,elementType:t,stage:h,originalStyle:Object.assign({},u.attributes),updatedStyle:l},{after:()=>{var d;this.emit(new ko(Xt.AFTER_ELEMENT_CREATE,t,e),r),(d=u.onCreate)===null||d===void 0||d.call(u)}})}createElements(t,e){const{nodes:r,edges:i,combos:a}=t;[["node",r],["combo",a],["edge",i]].forEach(([o,l])=>{l.forEach(c=>this.createElement(o,c,e))})}getUpdateStageStyle(t,e,r){const{stage:i="update"}=r;if(i==="translate")if(t==="node"||t==="combo"){const{style:{x:a=0,y:s=0,z:o=0}={}}=e;return{x:a,y:s,z:o}}else return{};return this.getElementComputedStyle(t,e)}updateElement(t,e,r){var i;const a=At(e),{stage:s="update"}=r,o=this.getElement(a);if(!o)return()=>null;this.emit(new ko(Xt.BEFORE_ELEMENT_UPDATE,t,e),r);const l=this.getElementType(t,e),c=this.getUpdateStageStyle(t,e,r);this.shapeTypeMap[a]!==l&&(o.destroy(),delete this.shapeTypeMap[a],delete this.elementMap[a],this.createElement(t,e,{animation:!1,silence:!0}));const u=s!=="visibility"?s:c.visibility==="hidden"?"hide":"show";u==="hide"&&delete c.visibility,(i=this.context.animation)===null||i===void 0||i.add({element:o,elementType:t,stage:u,originalStyle:Object.assign({},o.attributes),updatedStyle:c},{before:()=>{const h=this.elementMap[a];s!=="collapse"&&mv(h,c),s==="visibility"&&(rB(h,"opacity")||nB(h,"opacity"),this.visibilityCache.set(h,u==="show"?"visible":"hidden"),u==="show"&&Cs(h,"visible"))},after:()=>{var h;const d=this.elementMap[a];s==="collapse"&&mv(d,c),u==="hide"&&Cs(d,this.visibilityCache.get(d)),this.emit(new ko(Xt.AFTER_ELEMENT_UPDATE,t,e),r),(h=d.onUpdate)===null||h===void 0||h.call(d)}})}updateElements(t,e){const{nodes:r,edges:i,combos:a}=t;[["node",r],["combo",a],["edge",i]].forEach(([o,l])=>{l.forEach(c=>this.updateElement(o,c,e))})}markDestroyElement(t){Object.values(t.remove).forEach(e=>{e.forEach(r=>{const i=At(r),a=this.getElement(i);a&&tP(a)})})}destroyElement(t,e,r){var i;const{stage:a="exit"}=r,s=At(e),o=this.elementMap[s];if(!o)return()=>null;this.emit(new ko(Xt.BEFORE_ELEMENT_DESTROY,t,e),r),(i=this.context.animation)===null||i===void 0||i.add({element:o,elementType:t,stage:a,originalStyle:Object.assign({},o.attributes),updatedStyle:{}},{after:()=>{var l;this.clearElement(s),o.destroy(),(l=o.onDestroy)===null||l===void 0||l.call(o),this.emit(new ko(Xt.AFTER_ELEMENT_DESTROY,t,e),r)}})}destroyElements(t,e){const{nodes:r,edges:i,combos:a}=t;[["combo",a],["edge",i],["node",r]].forEach(([o,l])=>{l.forEach(c=>this.destroyElement(o,c,e))})}clearElement(t){delete this.paletteStyle[t],delete this.defaultStyle[t],delete this.stateStyle[t],delete this.elementMap[t],delete this.shapeTypeMap[t]}alignLayoutResultToElement(t,e){var r,i;const a=(r=t.nodes)===null||r===void 0?void 0:r.find(s=>At(s)===e);if(a){const s=ir(this.context.model.getNodeLikeDatum(e)),o=ir(a),l=un(s,o);(i=t.nodes)===null||i===void 0||i.forEach(c=>{var u,h,d;!((u=c.style)===null||u===void 0)&&u.x&&(c.style.x+=l[0]),!((h=c.style)===null||h===void 0)&&h.y&&(c.style.y+=l[1]),!((d=c.style)===null||d===void 0)&&d.z&&(c.style.z+=l[2]||0)})}}collapseNode(t,e){return Yl(this,void 0,void 0,function*(){var r;const{animation:i}=e,{model:a}=this.context,s=this.computeChangesAndDrawData({stage:"collapse",animation:i});if(!s)return;const{drawData:o}=s,{add:l,remove:c,update:u}=o;this.markDestroyElement(o);const h={animation:i,stage:"collapse",data:o};this.destroyElements(c,h),this.createElements(l,h),this.updateElements(u,h),yield(r=this.context.animation.animate(i,{beforeAnimate:d=>this.emit(new Ci(Xt.BEFORE_ANIMATE,Qr.COLLAPSE,d,o),h),afterAnimate:d=>this.emit(new Ci(Xt.AFTER_ANIMATE,Qr.COLLAPSE,d,o),h)},{collapse:{target:t,descendants:Array.from(c.nodes).map(([,d])=>At(d)),position:ir(u.nodes.get(t))}}))===null||r===void 0?void 0:r.finished})}expandNode(t,e){return Yl(this,void 0,void 0,function*(){var r;const{model:i,layout:a}=this.context,{animation:s,align:o}=e,l=ir(i.getNodeData([t])[0]),c=this.computeChangesAndDrawData({stage:"expand",animation:s});if(this.createElements(c.drawData.add,{animation:!1,stage:"expand",target:t}),this.context.animation.clear(),this.computeStyle("expand"),!c)return;const{drawData:u}=c,{update:h,add:d}=u,f={animation:s,stage:"expand",data:u};d.edges.forEach(v=>h.edges.set(At(v),v)),d.nodes.forEach(v=>h.nodes.set(At(v),v)),this.updateElements(h,f),yield(r=this.context.animation.animate(s,{beforeAnimate:v=>this.emit(new Ci(Xt.BEFORE_ANIMATE,Qr.EXPAND,v,u),f),afterAnimate:v=>this.emit(new Ci(Xt.AFTER_ANIMATE,Qr.EXPAND,v,u),f)},{expand:{target:t,descendants:Array.from(d.nodes).map(([,v])=>At(v)),position:l}}))===null||r===void 0?void 0:r.finished})}collapseCombo(t,e){return Yl(this,void 0,void 0,function*(){var r;const{model:i,element:a}=this.context;if(i.getAncestorsData(t,dn).some(g=>Jr(g)))return;const s=a.getElement(t),o=s.getComboPosition(Object.assign(Object.assign({},s.attributes),{collapsed:!0})),l=this.computeChangesAndDrawData({stage:"collapse",animation:e});if(!l)return;const{dataChanges:c,drawData:u}=l;this.markDestroyElement(u);const{update:h,remove:d}=u,f={animation:e,stage:"collapse",data:u};this.destroyElements(d,f),this.updateElements(h,f);const v=g=>Array.from(g).map(([,p])=>At(p));yield(r=this.context.animation.animate(e,{before:()=>this.emit(new tr(Xt.BEFORE_DRAW,{dataChanges:c,animation:e}),f),beforeAnimate:g=>this.emit(new Ci(Xt.BEFORE_ANIMATE,Qr.COLLAPSE,g,u),f),afterAnimate:g=>this.emit(new Ci(Xt.AFTER_ANIMATE,Qr.COLLAPSE,g,u),f),after:()=>this.emit(new tr(Xt.AFTER_DRAW,{dataChanges:c,animation:e}),f)},{collapse:{target:t,descendants:[...v(d.nodes),...v(d.combos)],position:o}}))===null||r===void 0?void 0:r.finished})}expandCombo(t,e){return Yl(this,void 0,void 0,function*(){var r;const{model:i}=this.context,a=ir(i.getComboData([t])[0]);this.computeStyle("expand");const s=this.computeChangesAndDrawData({stage:"expand",animation:e});if(!s)return;const{dataChanges:o,drawData:l}=s,{add:c,update:u}=l,h={animation:e,stage:"expand",data:l,target:t};this.createElements(c,h),this.updateElements(u,h);const d=f=>Array.from(f).map(([,v])=>At(v));yield(r=this.context.animation.animate(e,{before:()=>this.emit(new tr(Xt.BEFORE_DRAW,{dataChanges:o,animation:e}),h),beforeAnimate:f=>this.emit(new Ci(Xt.BEFORE_ANIMATE,Qr.EXPAND,f,l),h),afterAnimate:f=>this.emit(new Ci(Xt.AFTER_ANIMATE,Qr.EXPAND,f,l),h),after:()=>this.emit(new tr(Xt.AFTER_DRAW,{dataChanges:o,animation:e}),h)},{expand:{target:t,descendants:[...d(c.nodes),...d(c.combos)],position:a}}))===null||r===void 0?void 0:r.finished})}clear(){this.container.destroy(),this.initContainer(),this.elementMap={},this.shapeTypeMap={},this.defaultStyle={},this.stateStyle={},this.paletteStyle={}}destroy(){this.clear(),this.container.destroy(),this.context={}}}const GE=Symbol("Comlink.proxy"),dB=Symbol("Comlink.endpoint"),ZE=Symbol("Comlink.releaseProxy"),z0=Symbol("Comlink.finalizer"),rd=Symbol("Comlink.thrown"),VE=n=>typeof n=="object"&&n!==null||typeof n=="function",fB={canHandle:n=>VE(n)&&n[GE],serialize(n){const{port1:t,port2:e}=new MessageChannel;return YE(n,t),[e,[e]]},deserialize(n){return n.start(),XE(n)}},vB={canHandle:n=>VE(n)&&rd in n,serialize({value:n}){let t;return n instanceof Error?t={isError:!0,value:{message:n.message,name:n.name,stack:n.stack}}:t={isError:!1,value:n},[t,[]]},deserialize(n){throw n.isError?Object.assign(new Error(n.value.message),n.value):n.value}},UE=new Map([["proxy",fB],["throw",vB]]);function gB(n,t){for(const e of n)if(t===e||e==="*"||e instanceof RegExp&&e.test(t))return!0;return!1}function YE(n,t=globalThis,e=["*"]){t.addEventListener("message",function r(i){if(!i||!i.data)return;if(!gB(e,i.origin)){console.warn(`Invalid origin '${i.origin}' for comlink proxy`);return}const{id:a,type:s,path:o}=Object.assign({path:[]},i.data),l=(i.data.argumentList||[]).map(Us);let c;try{const u=o.slice(0,-1).reduce((d,f)=>d[f],n),h=o.reduce((d,f)=>d[f],n);switch(s){case"GET":c=h;break;case"SET":u[o.slice(-1)[0]]=Us(i.data.value),c=!0;break;case"APPLY":c=h.apply(u,l);break;case"CONSTRUCT":{const d=new h(...l);c=EB(d)}break;case"ENDPOINT":{const{port1:d,port2:f}=new MessageChannel;YE(n,f),c=xB(d,[d])}break;case"RELEASE":c=void 0;break;default:return}}catch(u){c={value:u,[rd]:0}}Promise.resolve(c).catch(u=>({value:u,[rd]:0})).then(u=>{const[h,d]=od(u);t.postMessage(Object.assign(Object.assign({},h),{id:a}),d),s==="RELEASE"&&(t.removeEventListener("message",r),HE(t),z0 in n&&typeof n[z0]=="function"&&n[z0]())}).catch(u=>{const[h,d]=od({value:new TypeError("Unserializable return value"),[rd]:0});t.postMessage(Object.assign(Object.assign({},h),{id:a}),d)})}),t.start&&t.start()}function pB(n){return n.constructor.name==="MessagePort"}function HE(n){pB(n)&&n.close()}function XE(n,t){const e=new Map;return n.addEventListener("message",function(i){const{data:a}=i;if(!a||!a.id)return;const s=e.get(a.id);if(s)try{s(a)}finally{e.delete(a.id)}}),j0(n,e,[],t)}function id(n){if(n)throw new Error("Proxy has been released and is not useable")}function KE(n){return Lo(n,new Map,{type:"RELEASE"}).then(()=>{HE(n)})}const ad=new WeakMap,sd="FinalizationRegistry"in globalThis&&new FinalizationRegistry(n=>{const t=(ad.get(n)||0)-1;ad.set(n,t),t===0&&KE(n)});function mB(n,t){const e=(ad.get(t)||0)+1;ad.set(t,e),sd&&sd.register(n,t,n)}function yB(n){sd&&sd.unregister(n)}function j0(n,t,e=[],r=function(){}){let i=!1;const a=new Proxy(r,{get(s,o){if(id(i),o===ZE)return()=>{yB(a),KE(n),t.clear(),i=!0};if(o==="then"){if(e.length===0)return{then:()=>a};const l=Lo(n,t,{type:"GET",path:e.map(c=>c.toString())}).then(Us);return l.then.bind(l)}return j0(n,t,[...e,o])},set(s,o,l){id(i);const[c,u]=od(l);return Lo(n,t,{type:"SET",path:[...e,o].map(h=>h.toString()),value:c},u).then(Us)},apply(s,o,l){id(i);const c=e[e.length-1];if(c===dB)return Lo(n,t,{type:"ENDPOINT"}).then(Us);if(c==="bind")return j0(n,t,e.slice(0,-1));const[u,h]=QE(l);return Lo(n,t,{type:"APPLY",path:e.map(d=>d.toString()),argumentList:u},h).then(Us)},construct(s,o){id(i);const[l,c]=QE(o);return Lo(n,t,{type:"CONSTRUCT",path:e.map(u=>u.toString()),argumentList:l},c).then(Us)}});return mB(a,n),a}function bB(n){return Array.prototype.concat.apply([],n)}function QE(n){const t=n.map(od);return[t.map(e=>e[0]),bB(t.map(e=>e[1]))]}const qE=new WeakMap;function xB(n,t){return qE.set(n,t),n}function EB(n){return Object.assign(n,{[GE]:!0})}function Vj(n,t=globalThis,e="*"){return{postMessage:(r,i)=>n.postMessage(r,e,i),addEventListener:t.addEventListener.bind(t),removeEventListener:t.removeEventListener.bind(t)}}function od(n){for(const[t,e]of UE)if(e.canHandle(n)){const[r,i]=e.serialize(n);return[{type:"HANDLER",name:t,value:r},i]}return[{type:"RAW",value:n},qE.get(n)||[]]}function Us(n){switch(n.type){case"HANDLER":return UE.get(n.name).deserialize(n.value);case"RAW":return n.value}}function Lo(n,t,e,r){return new Promise(i=>{const a=wB();t.set(a,i),n.start&&n.start(),n.postMessage(Object.assign({id:a},e),r)})}function wB(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}class SB extends Xu{constructor(t,e,r){super(),this.graph=t,this.layout=e,this.options=r,this.spawnWorker()}spawnWorker(){this.proxy=XE(new Worker(new URL(S.p+S.u(1750),S.b),{type:void 0})),this.running&&(this.running=!1,this.execute())}execute(){var t;return(0,Z.mG)(this,void 0,void 0,function*(){if(this.running)return this;this.running=!0;const e=this.layout.options,{onTick:r}=e,i=(0,Z._T)(e,["onTick"]),a={};Object.keys(i).forEach(c=>{ue(i[c])||(a[c]=i[c])});const s={layout:{id:this.layout.id,options:a,iterations:(t=this.options)===null||t===void 0?void 0:t.iterations},nodes:this.graph.getAllNodes(),edges:this.graph.getAllEdges()},o=new Float32Array([0]),[l]=yield this.proxy.calculateLayout(s,[o]);return l})}stop(){return this.running=!1,this.proxy.stopLayout(),this}kill(){this.proxy[ZE]()}isRunning(){return this.running}}var _o=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})},MB=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(n);i{const h=At(u),d=l.nodes.get(h);o.syncNodeLikeDatum(u),d&&Object.assign(d.style,u.style)}),(i=c==null?void 0:c.edges)===null||i===void 0||i.forEach(u=>{const h=At(u),d=l.edges.get(h);o.syncEdgeDatum(u),d&&Object.assign(d.style,u.style)}),(a=c==null?void 0:c.combos)===null||a===void 0||a.forEach(u=>{const h=At(u),d=l.combos.get(h);o.syncNodeLikeDatum(u),d&&Object.assign(d.style,u.style)}),sr(s,new tr(Xt.AFTER_LAYOUT,{type:"pre"})),this.transformDataAfterLayout("pre",t)})}postLayout(){return _o(this,arguments,void 0,function*(t=this.options){if(!t)return;const e=Array.isArray(t)?t:[t],{graph:r}=this.context;sr(r,new tr(Xt.BEFORE_LAYOUT,{type:"post"}));for(let i=0;ii.afterLayout(t,e))}simulate(){return _o(this,void 0,void 0,function*(){if(!this.options)return{};const t=Array.isArray(this.options)?this.options:[this.options];let e={};for(let r=0;r{this.updateElementPosition(c,!1)}}):(o.execute(t),o.stop(),o.tick(s));const l=yield o.execute(t);if(i){const c=this.updateElementPosition(l,i);yield c==null?void 0:c.finished}return l})}treeLayout(t,e,r){return _o(this,void 0,void 0,function*(){const{type:i,animation:a}=e,s=va("layout",i);if(!s)return{};const{nodes:o=[],edges:l=[]}=t,c=new Vn({nodes:o.map(v=>({id:At(v),data:v.data||{}})),edges:l.map(v=>({id:At(v),source:v.source,target:v.target,data:v.data||{}}))});cB(c);const u={nodes:[],edges:[]},h={nodes:[],edges:[]};c.getRoots(si).forEach(v=>{Ps(v,E=>{E.children=c.getSuccessors(E.id)},E=>c.getSuccessors(E.id),"TB");const g=s(v,e),{x:p,y,z:b=0}=g;Ps(g,E=>{const{id:O,x:k,y:R,z=0}=E;u.nodes.push({id:O,style:{x:p,y,z:b}}),h.nodes.push({id:O,style:{x:k,y:R,z}})},E=>E.children,"TB")});const f=this.inferTreeLayoutOffset(h);if(JE(h,f),a){JE(u,f),this.updateElementPosition(u,!1);const v=this.updateElementPosition(h,a);yield v==null?void 0:v.finished}return h})}inferTreeLayoutOffset(t){var e;let[r,i]=[1/0,-1/0],[a,s]=[1/0,-1/0];(e=t.nodes)===null||e===void 0||e.forEach(g=>{const{x:p=0,y=0}=g.style||{};r=Math.min(r,p),i=Math.max(i,p),a=Math.min(a,y),s=Math.max(s,y)});const{canvas:o}=this.context,l=o.getSize(),[c,u]=o.getCanvasByViewport([0,0]),[h,d]=o.getCanvasByViewport(l);if(r>=c&&i<=h&&a>=u&&s<=d)return[0,0];const f=(c+h)/2,v=(u+d)/2;return[f-(r+i)/2,v-(a+s)/2]}stopLayout(){this.instance&&Dv(this.instance)&&(this.instance.stop(),this.instance=void 0),this.supervisor&&(this.supervisor.stop(),this.supervisor=void 0),this.animationResult&&(this.animationResult.finish(),this.animationResult=void 0)}getLayoutData(t){const{nodeFilter:e=()=>!0,comboFilter:r=()=>!0,preLayout:i=!1,isLayoutInvisibleNodes:a=!1}=t,{nodes:s,edges:o,combos:l}=this.context.model.getData(),{element:c,model:u}=this.context,h=y=>c.getElement(y),d=i?y=>{var b;return!a&&(((b=y.style)===null||b===void 0?void 0:b.visibility)==="hidden"||u.getAncestorsData(y.id,si).some(Jr)||u.getAncestorsData(y.id,dn).some(Jr))?!1:e(y)}:y=>{const b=At(y),E=h(b);return!E||Ol(E)?!1:e(y)},f=s.filter(d),v=l.filter(r),g=new Map(f.map(y=>[At(y),y]));v.forEach(y=>g.set(At(y),y));const p=o.filter(({source:y,target:b})=>g.has(y)&&g.has(b));return{nodes:f,edges:p,combos:v}}initGraphLayout(t){var e;const{element:r,viewport:i}=this.context,{type:a,enableWorker:s,animation:o,iterations:l}=t,c=MB(t,["type","enableWorker","animation","iterations"]),[u,h]=i.getCanvasSize(),d=[u/2,h/2],f=(e=t==null?void 0:t.nodeSize)!==null&&e!==void 0?e:b=>{const E=r==null?void 0:r.getElement(b.id);return E?E.attributes.size:r==null?void 0:r.getElementComputedStyle("node",b).size},v=va("layout",a);if(!v)return qr.warn(`The layout of ${a} is not registered.`);const g=Object.getPrototypeOf(v.prototype)===Qu.prototype?v:dP(v,this.context),p=new g(this.context),y={nodeSize:f,width:u,height:h,center:d};switch(p.id){case"d3-force":case"d3-force-3d":Object.assign(y,{center:{x:u/2,y:h/2,z:0}});break;default:break}return yr(p.options,y,c),p}updateElementPosition(t,e){const{model:r,element:i}=this.context;return i?(r.updateData(t),i.draw({animation:e,silence:!0})):null}destroy(){var t;this.stopLayout(),this.context={},(t=this.supervisor)===null||t===void 0||t.kill(),this.supervisor=void 0,this.instance=void 0,this.instances=[],this.animationResult=void 0}}const JE=(n,t)=>{var e;const[r,i]=t;(e=n.nodes)===null||e===void 0||e.forEach(a=>{if(a.style){const{x:s=0,y:o=0}=a.style;a.style.x=s+r,a.style.y=o+i}else a.style={x:r,y:i}})};function TB(n){return[OB].reduce((e,r)=>r(e),n)}function OB(n){return!n.layout||Array.isArray(n.layout)||"preLayout"in n.layout||["antv-dagre","combo-combined","compact-box","circular","concentric","dagre","fishbone","grid","indented","mds","radial","random","snake","dendrogram","mindmap"].includes(n.layout.type)&&(n.layout.preLayout=!0),n}class CB extends Wf{constructor(t){super(t),this.category="plugin",this.setPlugins(this.context.options.plugins||[])}setPlugins(t){this.setExtensions(t)}getPluginInstance(t){const e=this.extensionMap[t];if(e)return e;qr.warn(`Cannot find the plugin ${t}, will try to find it by type.`);const r=this.extensions.find(i=>i.type===t);if(r)return this.extensionMap[r.key]}}const ld=["update-related-edges","collapse-expand-node","collapse-expand-combo","get-edge-actual-ends","arrange-draw-order"];class NB extends Wf{constructor(t){super(t),this.category="transform",this.setTransforms(this.context.options.transforms||[])}getTransforms(){}setTransforms(t){this.setExtensions([...ld.slice(0,ld.length-1),...t,ld[ld.length-1]])}getTransformInstance(t){return t?this.extensionMap[t]:this.extensionMap}}var Hl=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};class kB{get padding(){return oi(this.context.options.padding)}get paddingOffset(){const[t,e,r,i]=this.padding,[a,s,o]=[(i-e)/2,(t-r)/2,0];return[a,s,o]}constructor(t){this.landmarkCounter=0,this.context=t;const[e,r]=this.paddingOffset,{zoom:i,rotation:a,x:s=e,y:o=r}=t.options;this.transform({mode:"absolute",scale:i,translate:[s,o],rotate:a},!1)}get camera(){const{canvas:t}=this.context;return new Proxy(t.getCamera(),{get:(e,r)=>{const a=Object.entries(t.getLayers()).filter(([o])=>!["main"].includes(o)).map(([,o])=>o.getCamera()),s=e[r];if(typeof s=="function")return(...o)=>{const l=s.apply(e,o);return a.forEach(c=>{c[r].apply(c,o)}),l}}})}createLandmark(t){return this.camera.createLandmark(`landmark-${this.landmarkCounter++}`,t)}getAnimation(t){const e=Cm(this.context.options,t);return e?_s(Object.assign({},e),["easing","duration"]):!1}getCanvasSize(){const{canvas:t}=this.context,{width:e=0,height:r=0}=t.getConfig();return[e,r]}getCanvasCenter(){const{canvas:t}=this.context,{width:e=0,height:r=0}=t.getConfig();return[e/2,r/2,0]}getViewportCenter(){const[t,e]=this.camera.getPosition();return[t,e,0]}getGraphCenter(){return this.context.graph.getViewportByCanvas(this.getCanvasCenter())}getZoom(){return this.camera.getZoom()}getRotation(){return this.camera.getRoll()}getTranslateOptions(t){const{camera:e}=this,{mode:r,translate:i=[]}=t,a=this.getZoom(),s=e.getPosition(),o=e.getFocalPoint(),[l,c]=this.getCanvasCenter(),[u=0,h=0,d=0]=i,f=Fi([-u,-h,-d],a);return r==="relative"?{position:Re(s,f),focalPoint:Re(o,f)}:{position:Re([l,c,s[2]],f),focalPoint:Re([l,c,o[2]],f)}}getRotateOptions(t){const{mode:e,rotate:r=0}=t;return{roll:e==="relative"?this.camera.getRoll()+r:r}}getZoomOptions(t){const{zoomRange:e}=this.context.options,r=this.camera.getZoom(),{mode:i,scale:a=1}=t;return Nn(i==="relative"?r*a:a,...e)}transform(t,e){return Hl(this,void 0,void 0,function*(){const{graph:r}=this.context,{translate:i,rotate:a,scale:s,origin:o}=t;this.cancelAnimation();const l=this.getAnimation(e);if(sr(r,new ed(Xt.BEFORE_TRANSFORM,t)),!a&&s&&!i&&o&&!l){this.camera.setZoomByViewportPoint(this.getZoomOptions(t),o),sr(r,new ed(Xt.AFTER_TRANSFORM,t));return}const c={};if(i&&Object.assign(c,this.getTranslateOptions(t)),re(a)&&Object.assign(c,this.getRotateOptions(t)),re(s)&&Object.assign(c,{zoom:this.getZoomOptions(t)}),l)return sr(r,new Ci(Xt.BEFORE_ANIMATE,Qr.TRANSFORM,null,t)),new Promise(u=>{this.transformResolver=u,this.camera.gotoLandmark(this.createLandmark(c),Object.assign(Object.assign({},l),{onfinish:()=>{sr(r,new Ci(Xt.AFTER_ANIMATE,Qr.TRANSFORM,null,t)),sr(r,new ed(Xt.AFTER_TRANSFORM,t)),this.transformResolver=void 0,u()}}))});this.camera.gotoLandmark(this.createLandmark(c),{duration:0}),sr(r,new ed(Xt.AFTER_TRANSFORM,t))})}fitView(t,e){return Hl(this,void 0,void 0,function*(){const[r,i,a,s]=this.padding,{when:o="always",direction:l="both"}=t||{},[c,u]=this.context.canvas.getSize(),h=c-s-i,d=u-r-a,f=this.context.canvas.getBounds(),v=this.getBBoxInViewport(f),[g,p]=Ba(v),y=l==="x"&&g>=h||l==="y"&&p>=d||l==="both"&&g>=h&&p>=d;if(o==="overflow"&&!y)return yield this.fitCenter({animation:e});const b=h/g,E=d/p,O=l==="x"?b:l==="y"?E:Math.min(b,E),k=this.getAnimation(e);Number.isFinite(O)&&(yield this.transform({mode:"relative",scale:O,translate:Re(un(this.getCanvasCenter(),this.getBBoxInViewport(f).center),Fi(this.paddingOffset,O))},k))})}fitCenter(t){return Hl(this,void 0,void 0,function*(){const e=this.context.canvas.getBounds();yield this.focus(e,t)})}focusElements(t){return Hl(this,arguments,void 0,function*(e,r={}){const{element:i}=this.context;if(!i)return;const a=o=>r.shapes?o.getShape(r.shapes).getRenderBounds():o.getRenderBounds(),s=dl(e.map(o=>a(i.getElement(o))));yield this.focus(s,r)})}focus(t,e){return Hl(this,void 0,void 0,function*(){const r=this.context.graph.getViewportByCanvas(t.center),i=e.position||this.getCanvasCenter(),a=un(i,r);yield this.transform({mode:"relative",translate:Re(a,this.paddingOffset)},e.animation)})}getBBoxInViewport(t){const{min:e,max:r}=t,{graph:i}=this.context,[a,s]=i.getViewportByCanvas(e),[o,l]=i.getViewportByCanvas(r),c=new mn;return c.setMinMax([a,s,0],[o,l,0]),c}isInViewport(t,e=!1,r=0){const{graph:i}=this.context,a=this.getCanvasSize(),[s,o]=i.getCanvasByViewport([0,0]),[l,c]=i.getCanvasByViewport(a);let u=new mn;return u.setMinMax([s,o,0],[l,c,0]),r&&(u=za(u,r)),ho(t)?Di(t,u):e?LO(t,u):u.intersects(t)}cancelAnimation(){var t,e;!((t=this.camera.landmarks)===null||t===void 0)&&t.length&&this.camera.cancelLandmarkAnimation(),(e=this.transformResolver)===null||e===void 0||e.call(this)}}var yn=function(n,t,e,r){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(u){try{c(r.next(u))}catch(h){s(h)}}function l(u){try{c(r.throw(u))}catch(h){s(h)}}function c(u){u.done?a(u.value):i(u.value).then(o,l)}c((r=r.apply(n,t||[])).next())})};class cd extends Xu{constructor(t){var e;super(),this.options={},this.rendered=!1,this.destroyed=!1,this.context={model:new uB},this.isCollapsingExpanding=!1,this.onResize=Cl(()=>{this.resize()},300),this._setOptions(Object.assign({},cd.defaultOptions,t),!0),this.context.graph=this,this.options.autoResize&&((e=globalThis.addEventListener)===null||e===void 0||e.call(globalThis,"resize",this.onResize))}getOptions(){return this.options}setOptions(t){this._setOptions(t,!1)}_setOptions(t,e){if(this.updateCanvas(t),Object.assign(this.options,TB(t)),e){const{data:d}=t;d&&this.addData(d);return}const{behaviors:r,combo:i,data:a,edge:s,layout:o,node:l,plugins:c,theme:u,transforms:h}=t;r&&this.setBehaviors(r),a&&this.setData(a),l&&this.setNode(l),s&&this.setEdge(s),i&&this.setCombo(i),o&&this.setLayout(o),u&&this.setTheme(u),c&&this.setPlugins(c),h&&this.setTransforms(h)}getSize(){return this.context.canvas?this.context.canvas.getSize():[this.options.width||0,this.options.height||0]}setSize(t,e){t&&(this.options.width=t),e&&(this.options.height=e),this.resize(t,e)}setZoomRange(t){this.options.zoomRange=t}getZoomRange(){return this.options.zoomRange}setNode(t){this.options.node=t,this.context.model.refreshData()}setEdge(t){this.options.edge=t,this.context.model.refreshData()}setCombo(t){this.options.combo=t,this.context.model.refreshData()}getTheme(){return this.options.theme}setTheme(t){this.options.theme=ue(t)?t(this.getTheme()):t}setLayout(t){this.options.layout=ue(t)?t(this.getLayout()):t}getLayout(){return this.options.layout}setBehaviors(t){var e;this.options.behaviors=ue(t)?t(this.getBehaviors()):t,(e=this.context.behavior)===null||e===void 0||e.setBehaviors(this.options.behaviors)}updateBehavior(t){this.setBehaviors(e=>e.map(r=>typeof r=="object"&&r.key===t.key?Object.assign(Object.assign({},r),t):r))}getBehaviors(){return this.options.behaviors||[]}setPlugins(t){var e;this.options.plugins=ue(t)?t(this.getPlugins()):t,(e=this.context.plugin)===null||e===void 0||e.setPlugins(this.options.plugins)}updatePlugin(t){this.setPlugins(e=>e.map(r=>typeof r=="object"&&r.key===t.key?Object.assign(Object.assign({},r),t):r))}getPlugins(){return this.options.plugins||[]}getPluginInstance(t){return this.context.plugin.getPluginInstance(t)}setTransforms(t){var e;this.options.transforms=ue(t)?t(this.getTransforms()):t,(e=this.context.transform)===null||e===void 0||e.setTransforms(this.options.transforms)}updateTransform(t){this.setTransforms(e=>e.map(r=>typeof r=="object"&&r.key===t.key?Object.assign(Object.assign({},r),t):r)),this.context.model.refreshData()}getTransforms(){return this.options.transforms||[]}getData(){return this.context.model.getData()}hasNode(t){return this.context.model.hasNode(t)}hasEdge(t){return this.context.model.hasEdge(t)}hasCombo(t){return this.context.model.hasCombo(t)}getElementData(t){return Array.isArray(t)?t.map(e=>this.context.model.getElementDataById(e)):this.context.model.getElementDataById(t)}getNodeData(t){return t===void 0?this.context.model.getNodeData():Array.isArray(t)?this.context.model.getNodeData(t):this.context.model.getNodeLikeDatum(t)}getEdgeData(t){return t===void 0?this.context.model.getEdgeData():Array.isArray(t)?this.context.model.getEdgeData(t):this.context.model.getEdgeDatum(t)}getComboData(t){return t===void 0?this.context.model.getComboData():Array.isArray(t)?this.context.model.getComboData(t):this.context.model.getNodeLikeDatum(t)}setData(t){this.context.model.setData(ue(t)?t(this.getData()):t)}addData(t){this.context.model.addData(ue(t)?t(this.getData()):t)}addNodeData(t){this.context.model.addNodeData(ue(t)?t(this.getNodeData()):t)}addEdgeData(t){this.context.model.addEdgeData(ue(t)?t(this.getEdgeData()):t)}addComboData(t){this.context.model.addComboData(ue(t)?t(this.getComboData()):t)}addChildrenData(t,e){this.context.model.addChildrenData(t,e)}updateData(t){this.context.model.updateData(ue(t)?t(this.getData()):t)}updateNodeData(t){this.context.model.updateNodeData(ue(t)?t(this.getNodeData()):t)}updateEdgeData(t){this.context.model.updateEdgeData(ue(t)?t(this.getEdgeData()):t)}updateComboData(t){this.context.model.updateComboData(ue(t)?t(this.getComboData()):t)}removeData(t){this.context.model.removeData(ue(t)?t(this.getData()):t)}removeNodeData(t){this.context.model.removeNodeData(ue(t)?t(this.getNodeData()):t)}removeEdgeData(t){this.context.model.removeEdgeData(ue(t)?t(this.getEdgeData()):t)}removeComboData(t){this.context.model.removeComboData(ue(t)?t(this.getComboData()):t)}getElementType(t){return this.context.model.getElementType(t)}getRelatedEdgesData(t,e="both"){return this.context.model.getRelatedEdgesData(t,e)}getNeighborNodesData(t){return this.context.model.getNeighborNodesData(t)}getAncestorsData(t,e){return this.context.model.getAncestorsData(t,e)}getParentData(t,e){return this.context.model.getParentData(t,e)}getChildrenData(t){return this.context.model.getChildrenData(t)}getDescendantsData(t){return this.context.model.getDescendantsData(t)}getElementDataByState(t,e){return this.context.model.getElementDataByState(t,e)}initCanvas(){return yn(this,void 0,void 0,function*(){var t;if(this.context.canvas)return yield this.context.canvas.ready;const{container:e="container",width:r,height:i,renderer:a,cursor:s,background:o,canvas:l,devicePixelRatio:c=(t=globalThis.devicePixelRatio)!==null&&t!==void 0?t:1}=this.options;if(e instanceof IE)this.context.canvas=e,s&&e.setCursor(s),a&&e.setRenderer(a),yield e.ready;else{const u=Ve(e)?document.getElementById(e):e,h=zE(u);this.emit(Xt.BEFORE_CANVAS_INIT,{container:u,width:r,height:i});const d=Object.assign(Object.assign({},l),{container:u,width:r||h[0],height:i||h[1],background:o,renderer:a,cursor:s,devicePixelRatio:c}),f=new IE(d);this.context.canvas=f,yield f.ready,this.emit(Xt.AFTER_CANVAS_INIT,{canvas:f})}})}updateCanvas(t){var e,r;const{renderer:i,cursor:a,height:s,width:o}=t,l=this.context.canvas;l&&(i&&(this.emit(Xt.BEFORE_RENDERER_CHANGE,{renderer:this.options.renderer}),l.setRenderer(i),this.emit(Xt.AFTER_RENDERER_CHANGE,{renderer:i})),a&&l.setCursor(a),(re(o)||re(s))&&this.setSize((e=o!=null?o:this.options.width)!==null&&e!==void 0?e:0,(r=s!=null?s:this.options.height)!==null&&r!==void 0?r:0))}initRuntime(){this.context.options=this.options,this.context.batch||(this.context.batch=new aB(this.context)),this.context.plugin||(this.context.plugin=new CB(this.context)),this.context.viewport||(this.context.viewport=new kB(this.context)),this.context.transform||(this.context.transform=new NB(this.context)),this.context.element||(this.context.element=new hB(this.context)),this.context.animation||(this.context.animation=new iB(this.context)),this.context.layout||(this.context.layout=new AB(this.context)),this.context.behavior||(this.context.behavior=new sB(this.context))}prepare(){return yn(this,void 0,void 0,function*(){if(yield Promise.resolve(),this.destroyed){console.error(ga("The graph instance has been destroyed"));return}yield this.initCanvas(),this.initRuntime()})}render(){return yn(this,void 0,void 0,function*(){if(yield this.prepare(),sr(this,new tr(Xt.BEFORE_RENDER)),this.options.layout)if(!this.rendered&&hP(this.options.layout)){const t=yield this.context.element.preLayoutDraw({type:"render"});yield Promise.all([t==null?void 0:t.finished,this.autoFit()])}else{const t=this.context.element.draw({type:"render"});yield Promise.all([t==null?void 0:t.finished,this.context.layout.postLayout()]),yield this.autoFit()}else{const t=this.context.element.draw({type:"render"});yield Promise.all([t==null?void 0:t.finished,this.autoFit()])}this.rendered=!0,sr(this,new tr(Xt.AFTER_RENDER))})}draw(){return yn(this,void 0,void 0,function*(){var t;yield this.prepare(),yield(t=this.context.element.draw())===null||t===void 0?void 0:t.finished})}layout(t){return yn(this,void 0,void 0,function*(){yield this.context.layout.postLayout(t)})}stopLayout(){this.context.layout.stopLayout()}clear(){return yn(this,void 0,void 0,function*(){const{model:t,element:e}=this.context;t.setData({}),t.clearChanges(),e==null||e.clear()})}destroy(){var t;sr(this,new tr(Xt.BEFORE_DESTROY));const{layout:e,animation:r,element:i,model:a,canvas:s,behavior:o,plugin:l}=this.context;l==null||l.destroy(),o==null||o.destroy(),e==null||e.destroy(),r==null||r.destroy(),i==null||i.destroy(),a.destroy(),s==null||s.destroy(),this.options={},this.context={},this.off(),(t=globalThis.removeEventListener)===null||t===void 0||t.call(globalThis,"resize",this.onResize),this.destroyed=!0,sr(this,new tr(Xt.AFTER_DESTROY))}getCanvas(){return this.context.canvas}resize(t,e){var r;const i=zE((r=this.context.canvas)===null||r===void 0?void 0:r.getContainer()),a=[t||i[0],e||i[1]];if(!this.context.canvas)return;const s=this.context.canvas.getSize();Wn(a,s)||(sr(this,new tr(Xt.BEFORE_SIZE_CHANGE,{size:a})),this.context.canvas.resize(...a),sr(this,new tr(Xt.AFTER_SIZE_CHANGE,{size:a})))}fitView(t,e){return yn(this,void 0,void 0,function*(){var r;yield(r=this.context.viewport)===null||r===void 0?void 0:r.fitView(t,e)})}fitCenter(t){return yn(this,void 0,void 0,function*(){var e;yield(e=this.context.viewport)===null||e===void 0?void 0:e.fitCenter({animation:t})})}autoFit(){return yn(this,void 0,void 0,function*(){const{autoFit:t}=this.context.options;if(t)if(Ve(t))t==="view"?yield this.fitView():t==="center"&&(yield this.fitCenter());else{const{type:e,animation:r}=t;e==="view"?yield this.fitView(t.options,r):e==="center"&&(yield this.fitCenter(r))}})}focusElement(t,e){return yn(this,void 0,void 0,function*(){var r;yield(r=this.context.viewport)===null||r===void 0?void 0:r.focusElements(Array.isArray(t)?t:[t],{animation:e})})}zoomBy(t,e,r){return yn(this,void 0,void 0,function*(){yield this.context.viewport.transform({mode:"relative",scale:t,origin:r},e)})}zoomTo(t,e,r){return yn(this,void 0,void 0,function*(){yield this.context.viewport.transform({mode:"absolute",scale:t,origin:r},e)})}getZoom(){return this.context.viewport.getZoom()}rotateBy(t,e,r){return yn(this,void 0,void 0,function*(){yield this.context.viewport.transform({mode:"relative",rotate:t,origin:r},e)})}rotateTo(t,e,r){return yn(this,void 0,void 0,function*(){yield this.context.viewport.transform({mode:"absolute",rotate:t,origin:r},e)})}getRotation(){return this.context.viewport.getRotation()}translateBy(t,e){return yn(this,void 0,void 0,function*(){yield this.context.viewport.transform({mode:"relative",translate:t},e)})}translateTo(t,e){return yn(this,void 0,void 0,function*(){yield this.context.viewport.transform({mode:"absolute",translate:t},e)})}getPosition(){return un([0,0],this.getCanvasByViewport([0,0]))}translateElementBy(t,e){return yn(this,arguments,void 0,function*(r,i,a=!0){var s,o;const[l,c]=Fn(r)?[r,(s=i)!==null&&s!==void 0?s:!0]:[{[r]:i},a];Object.entries(l).forEach(([u,h])=>this.context.model.translateNodeLikeBy(u,h)),yield(o=this.context.element.draw({animation:c,stage:"translate"}))===null||o===void 0?void 0:o.finished})}translateElementTo(t,e){return yn(this,arguments,void 0,function*(r,i,a=!0){var s,o;const[l,c]=Fn(r)?[r,(s=i)!==null&&s!==void 0?s:!0]:[{[r]:i},a];Object.entries(l).forEach(([u,h])=>this.context.model.translateNodeLikeTo(u,h)),yield(o=this.context.element.draw({animation:c,stage:"translate"}))===null||o===void 0?void 0:o.finished})}getElementPosition(t){return this.context.model.getElementPosition(t)}getElementRenderStyle(t){return Wv(this.context.element.getElement(t).attributes,["context"])}setElementVisibility(t,e){return yn(this,arguments,void 0,function*(r,i,a=!0){var s,o;const[l,c]=Fn(r)?[r,(s=i)!==null&&s!==void 0?s:!0]:[{[r]:i},a],u={nodes:[],edges:[],combos:[]};Object.entries(l).forEach(([f,v])=>{const g=this.getElementType(f);u[`${g}s`].push({id:f,style:{visibility:v}})});const{model:h,element:d}=this.context;h.preventUpdateNodeLikeHierarchy(()=>{h.updateData(u)}),yield(o=d.draw({animation:c,stage:"visibility"}))===null||o===void 0?void 0:o.finished})}showElement(t,e){return yn(this,void 0,void 0,function*(){const r=Array.isArray(t)?t:[t];yield this.setElementVisibility(Object.fromEntries(r.map(i=>[i,"visible"])),e)})}hideElement(t,e){return yn(this,void 0,void 0,function*(){const r=Array.isArray(t)?t:[t];yield this.setElementVisibility(Object.fromEntries(r.map(i=>[i,"hidden"])),e)})}getElementVisibility(t){var e,r;const i=this.context.element.getElement(t);return(r=(e=i==null?void 0:i.style)===null||e===void 0?void 0:e.visibility)!==null&&r!==void 0?r:"visible"}setElementZIndex(t,e){return yn(this,void 0,void 0,function*(){var r;const i={nodes:[],edges:[],combos:[]},a=Fn(t)?t:{[t]:e};Object.entries(a).forEach(([l,c])=>{const u=this.getElementType(l);i[`${u}s`].push({id:l,style:{zIndex:c}})});const{model:s,element:o}=this.context;s.preventUpdateNodeLikeHierarchy(()=>s.updateData(i)),yield(r=o.draw({animation:!1,stage:"zIndex"}))===null||r===void 0?void 0:r.finished})}frontElement(t){return yn(this,void 0,void 0,function*(){const e=Array.isArray(t)?t:[t],{model:r}=this.context,i={};e.map(a=>{const s=r.getFrontZIndex(a);if(r.getElementType(a)==="combo"){const l=r.getAncestorsData(a,dn).at(-1)||this.getComboData(a),c=[l,...r.getDescendantsData(At(l))],u=s-jE(l);c.forEach(d=>{i[At(d)]=this.getElementZIndex(At(d))+u});const{internal:h}=dv(c.map(At),d=>r.getRelatedEdgesData(d));h.forEach(d=>{const f=At(d);i[f]=this.getElementZIndex(f)+u})}else i[a]=s}),yield this.setElementZIndex(i)})}getElementZIndex(t){return jE(this.context.model.getElementDataById(t))}setElementState(t,e){return yn(this,arguments,void 0,function*(r,i,a=!0){var s,o;const[l,c]=Fn(r)?[r,(s=i)!==null&&s!==void 0?s:!0]:[{[r]:i},a],u=d=>d?Array.isArray(d)?d:[d]:[],h={nodes:[],edges:[],combos:[]};Object.entries(l).forEach(([d,f])=>{const v=this.getElementType(d);h[`${v}s`].push({id:d,states:u(f)})}),this.updateData(h),yield(o=this.context.element.draw({animation:c,stage:"state"}))===null||o===void 0?void 0:o.finished})}getElementState(t){return this.context.model.getElementState(t)}getElementRenderBounds(t){return this.context.element.getElement(t).getRenderBounds()}collapseElement(t){return yn(this,arguments,void 0,function*(e,r=!0){const{model:i,element:a}=this.context;if(Jr(i.getNodeLikeData([e])[0])||this.isCollapsingExpanding)return;typeof r=="boolean"&&(r={animation:r,align:!0});const s=i.getElementType(e);yield this.frontElement(e),this.isCollapsingExpanding=!0,i.updateData(s==="node"?{nodes:[{id:e,style:{collapsed:!0}}]}:{combos:[{id:e,style:{collapsed:!0}}]}),s==="node"?yield a.collapseNode(e,r):s==="combo"&&(yield a.collapseCombo(e,!!r.animation)),this.isCollapsingExpanding=!1})}expandElement(t){return yn(this,arguments,void 0,function*(e,r=!0){const{model:i,element:a}=this.context;if(!Jr(i.getNodeLikeData([e])[0])||this.isCollapsingExpanding)return;typeof r=="boolean"&&(r={animation:r,align:!0});const s=i.getElementType(e);this.isCollapsingExpanding=!0,i.updateData(s==="node"?{nodes:[{id:e,style:{collapsed:!1}}]}:{combos:[{id:e,style:{collapsed:!1}}]}),s==="node"?yield a.expandNode(e,r):s==="combo"&&(yield a.expandCombo(e,!!r.animation)),this.isCollapsingExpanding=!1})}setElementCollapsibility(t,e){const r=this.getElementType(t);r==="node"?this.updateNodeData([{id:t,style:{collapsed:e}}]):r==="combo"&&this.updateComboData([{id:t,style:{collapsed:e}}])}toDataURL(){return yn(this,arguments,void 0,function*(t={}){return this.context.canvas.toDataURL(t)})}getCanvasByViewport(t){return this.context.canvas.getCanvasByViewport(t)}getViewportByCanvas(t){return this.context.canvas.getViewportByCanvas(t)}getClientByCanvas(t){return this.context.canvas.getClientByCanvas(t)}getCanvasByClient(t){return this.context.canvas.getCanvasByClient(t)}getViewportCenter(){return this.context.viewport.getViewportCenter()}getCanvasCenter(){return this.context.viewport.getCanvasCenter()}on(t,e,r){return super.on(t,e,r)}once(t,e){return super.once(t,e)}off(t,e){return super.off(t,e)}}cd.defaultOptions={autoResize:!1,theme:"light",rotation:0,zoom:1,zoomRange:[.01,10]};var PB=function(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(n);i{if(o.depth=l,!o.children)return o;const{children:c}=o,u=PB(o,["children"]);return Object.assign(Object.assign({},u),{children:c.map(h=>h.id)})},getEdgeData:r=(o,l)=>({source:o.id,target:l.id}),getChildren:i=o=>o.children||[]}=t||{},a=[],s=[];return Ps(n,(o,l)=>{a.push(e(o,l));const c=i(o);for(const u of c)s.push(r(o,u))},o=>i(o),"TB"),{nodes:a,edges:s}}class LB extends ts{beforeDraw(t){const{add:e,update:r}=t,{model:i}=this.context;return[...e.edges.entries(),...r.edges.entries()].forEach(([,a])=>{$E(i,a)}),t}}const $E=(n,t)=>{const{source:e,target:r}=t,i=n.getElementDataById(e),a=n.getElementDataById(r),s=m1(i,h=>n.getParentData(h,dn)),o=m1(a,h=>n.getParentData(h,dn)),l=At(s),c=At(o),u={sourceNode:l,targetNode:c};return t.style?Object.assign(t.style,u):t.style=u,t},_B=(n,t,e)=>{const[r,i]=t,[a,s]=e;if(i===r)return a;const o=(n-r)/(i-r);return a+o*(s-a)},DB=(n,t,e)=>{const[r,i]=t,[a,s]=e,o=Math.log(n-r+1)/Math.log(i-r+1);return a+o*(s-a)},IB=(n,t,e,r=2)=>{const[i,a]=t,[s,o]=e,l=Math.pow((n-i)/(a-i),r);return s+l*(o-s)},BB=(n,t,e)=>{const[r,i]=t,[a,s]=e,o=Math.sqrt((n-r)/(i-r));return a+o*(s-a)};class ud extends ts{constructor(t,e){super(t,yr({},ud.defaultOptions,e)),this.assignSizeByCentrality=(r,i,a,s,o,l)=>{const c=[i,a],u=[s[0],o[0]],h=[s[1],o[1]],d=[s[2],o[2]],f=(v,g)=>{if(typeof l=="function")return l(v,c,g);switch(l){case"linear":return _B(v,c,g);case"log":return DB(v,c,g);case"pow":return IB(v,c,g,2);case"sqrt":return BB(v,c,g);default:return g[0]}};return[f(r,u),f(r,h),f(r,d)]}}beforeDraw(t){const{model:e}=this.context,r=e.getNodeData(),i=ci(this.options.maxSize),a=ci(this.options.minSize),s=this.getCentralities(this.options.centrality),o=s.size>0?Math.max(...s.values()):0,l=s.size>0?Math.min(...s.values()):0;return r.forEach(c=>{var u;const h=this.assignSizeByCentrality(s.get(At(c))||0,l,o,a,i,this.options.scale),d=(u=this.context.element)===null||u===void 0?void 0:u.getElement(At(c)),f={size:h};this.assignLabelStyle(f,h,c,d),(!d||!$h(f,d.attributes))&&di(t,d?"update":"add","node",yr(c,{style:f}),!0)}),t}assignLabelStyle(t,e,r,i){var a;const s=i?i.config.style:(a=this.context.element)===null||a===void 0?void 0:a.getElementComputedStyle("node",r);if(Object.assign(t,_s(s,["labelFontSize","labelLineHeight"])),this.options.mapLabelSize){const o=this.getLabelSizeByNodeSize(e,1/0,Number(t.labelFontSize));Object.assign(t,{labelFontSize:o,labelLineHeight:o+RO(t.labelPadding)})}return t}getLabelSizeByNodeSize(t,e,r){const i=Math.min(...t)/2,[a,s]=Array.isArray(this.options.mapLabelSize)?this.options.mapLabelSize:[r,e];return Math.min(s,Math.max(i,a))}getCentralities(t){const{model:e}=this.context,r=e.getData();if(typeof t=="function")return t(r);const i=e.getRelatedEdgesData.bind(e);return by(r,i,t)}}ud.defaultOptions={centrality:{type:"degree"},maxSize:80,minSize:20,scale:"linear",mapLabelSize:!1};class hd extends ts{constructor(t,e){super(t,Object.assign({},hd.defaultOptions,e))}get ref(){return this.context.model.getRootsData()[0]}afterLayout(){var t;const e=ir(this.ref),{graph:r,model:i}=this.context;(t=i.getData().nodes)===null||t===void 0||t.forEach(s=>{var o;if(At(s)===At(this.ref))return;const l=Sy(un(ir(s),e)),c=Math.abs(l)>Math.PI/2,u=!s.children||s.children.length===0,h=At(s),d=(o=this.context.element)===null||o===void 0?void 0:o.getElement(h);if(!d||!d.isVisible())return;const f=ci(r.getElementRenderStyle(h).size)[0]/2,v=(u?1:-1)*(f+this.options.offset),g=[["translate",v*Math.cos(l),v*Math.sin(l)],["rotate",c?Yr(l)+180:Yr(l)]];i.updateNodeData([{id:At(s),style:{labelTextAlign:c===u?"right":"left",labelTextBaseline:"middle",labelTransform:g}}])}),r.draw()}}hd.defaultOptions={offset:5};const FB="quadratic",tw=["top","top-right","right","right-bottom","bottom","bottom-left","left","left-top"];class dd extends ts{constructor(t,e){super(t,Object.assign({},dd.defaultOptions,e)),this.cacheMergeStyle=new Map,this.getAffectedParallelEdges=r=>{const{add:{edges:i},update:{nodes:a,edges:s,combos:o},remove:{edges:l}}=r,{model:c}=this.context,u=new Map,h=(v,g)=>{c.getRelatedEdgesData(g).forEach(y=>!u.has(At(y))&&u.set(At(y),y))};a.forEach(h),o.forEach(h);const d=v=>{const g=new Set(r.remove.edges.keys()),p=c.getEdgeData().filter(y=>!g.has(At(y))).map(y=>$E(c,y));zB(v,p,!0).forEach(y=>{const b=At(y);u.has(b)||u.set(b,y)})};if(l.size&&l.forEach(d),i.size&&i.forEach(d),s.size){const v=qb(Hv(c.getChanges())).update.edges;s.forEach(g=>{var p;d(g);const y=(p=v.find(b=>At(b.value)===At(g)))===null||p===void 0?void 0:p.original;y&&!W0(g,y)&&d(y)})}aa(this.options.edges)||u.forEach((v,g)=>!this.options.edges.includes(g)&&u.delete(g));const f=c.getEdgeData().map(At);return new Map([...u].sort((v,g)=>f.indexOf(v[0])-f.indexOf(g[0])))},this.applyBundlingStyle=(r,i,a)=>{const{edgeMap:s,reverses:o}=ew(i);s.forEach(l=>{l.forEach((c,u,h)=>{var d;const f=h.length,v=c.style||{};if(c.source===c.target){const y=tw.length;v.loopPlacement=tw[u%y],v.loopDist=Math.floor(u/y)*a+50}else if(f===1)v.curveOffset=0;else{const y=(u%2===0?1:-1)*(o[`${c.source}|${c.target}|${u}`]?-1:1);v.curveOffset=f%2===1?y*Math.ceil(u/2)*a*2:y*(Math.floor(u/2)*a*2+a)}const g=Object.assign(c,{type:FB,style:v}),p=(d=this.context.element)===null||d===void 0?void 0:d.getElement(At(c));(!p||!$h(g.style,p.attributes))&&di(r,p?"update":"add","edge",g,!0)})})},this.resetEdgeStyle=r=>{const i=r.style||{},a=this.cacheMergeStyle.get(At(r))||{};return Object.keys(a).forEach(s=>{Wn(i[s],a[s])&&(r[s]?i[s]=r[s]:delete i[s])}),Object.assign(r,{style:i})},this.applyMergingStyle=(r,i)=>{const{edgeMap:a,reverses:s}=ew(i);a.forEach(o=>{var l;if(o.length===1){const u=o[0],h=(l=this.context.element)===null||l===void 0?void 0:l.getElement(At(u)),d=this.resetEdgeStyle(u);(!h||!$h(d,h.attributes))&&di(r,h?"update":"add","edge",d);return}const c=o.map(({source:u,target:h,style:d={}},f)=>{const{startArrow:v,endArrow:g}=d,p={},[y,b]=s[`${u}|${h}|${f}`]?["endArrow","startArrow"]:["startArrow","endArrow"];return Uo(v)&&(p[y]=v),Uo(g)&&(p[b]=g),p}).reduce((u,h)=>Object.assign(Object.assign({},u),h),{});o.forEach((u,h,d)=>{var f;if(h!==0){di(r,"remove","edge",u);return}const v=Object.assign({},ue(this.options.style)?this.options.style(d):this.options.style,{childrenData:d});this.cacheMergeStyle.set(At(u),v);const g=Object.assign(Object.assign({},u),{type:"line",style:Object.assign(Object.assign(Object.assign({},u.style),c),v)}),p=(f=this.context.element)===null||f===void 0?void 0:f.getElement(At(u));(!p||!$h(g.style,p.attributes))&&di(r,p?"update":"add","edge",g,!0)})})}}beforeDraw(t){const e=this.getAffectedParallelEdges(t);return e.size===0||(this.options.mode==="bundle"?this.applyBundlingStyle(t,e,this.options.distance):this.applyMergingStyle(t,e)),t}}dd.defaultOptions={mode:"bundle",distance:15};const ew=n=>{const t=new Map,e=new Set,r={},i=new Map;for(const[a,s]of n){if(e.has(a))continue;const{source:o,target:l}=s,c=`${o}-${l}`;t.has(c)||(t.set(c,[]),i.set(c,new Set));const u=t.get(c),h=i.get(c);u&&h&&!h.has(a)&&(u.push(s),h.add(a),e.add(a));for(const[d,f]of n)if(!(e.has(d)||d===a)&&W0(s,f)){const v=t.get(c),g=i.get(c);v&&g&&!g.has(d)&&(v.push(f),g.add(d),o===f.target&&l===f.source&&(r[`${f.source}|${f.target}|${v.length-1}`]=!0),e.add(d))}}return{edgeMap:t,reverses:r}},zB=(n,t,e)=>t.filter(r=>(e||At(r)!==At(n))&&W0(r,n)),W0=(n,t)=>{const{sourceNode:e,targetNode:r}=n.style||{},{sourceNode:i,targetNode:a}=t.style||{};return e===i&&r===a||e===a&&r===i};class jB extends ts{beforeDraw(t,e){const{stage:r}=e;if(r==="visibility")return t;const{model:i}=this.context,{update:{nodes:a,edges:s,combos:o}}=t,l=(c,u)=>{i.getRelatedEdgesData(u).forEach(d=>!s.has(At(d))&&s.set(At(d),d))};return a.forEach(l),o.forEach(l),t}}const WB={animation:{"combo-collapse":Rm,"combo-expand":OO,"node-collapse":km,"node-expand":AO,"path-in":Pm,"path-out":TO,fade:SO,translate:MO},behavior:{"brush-select":yl,"click-select":yu,"collapse-expand":Gu,"create-edge":Yu,"drag-canvas":Hu,"drag-element-force":vP,"drag-element":Nl,"fix-element-size":Ju,"focus-element":$u,"hover-activate":th,"lasso-select":pP,"auto-adapt-label":du,"optimize-viewport-transform":eh,"scroll-canvas":nh,"zoom-canvas":rh},combo:{circle:s3,rect:o3},edge:{cubic:Ds,line:zu,polyline:ju,quadratic:Wu,"cubic-horizontal":Iu,"cubic-radial":Bu,"cubic-vertical":Fu},layout:{"antv-dagre":eL,"combo-combined":ML,"compact-box":ih.compactBox,"d3-force":UL,"force-atlas2":XL,circular:iL,concentric:kv,dagre:ah,dendrogram:ih.dendrogram,fishbone:lh,force:xb,fruchterman:qL,grid:$L,indented:ih.indented,mds:Ob,mindmap:ih.mindmap,radial:l_,random:g_,snake:ch},node:{circle:Rs,diamond:ok,ellipse:Su,hexagon:dk,html:Pu,image:Ru,rect:i3,star:a3,donut:Eu,triangle:Lu},palette:{spectral:x_,tableau:E_,oranges:w_,greens:S_,blues:M_},theme:{dark:Y4,light:H4},plugin:{"bubble-sets":bh,"edge-bundling":Eh,"edge-filter-lens":wh,"grid-line":Ah,background:uh,contextmenu:xh,fisheye:Sh,fullscreen:Mh,history:Th,hull:kh,legend:Ih,minimap:Bh,snapline:Fh,timebar:Kh,title:k4,toolbar:Qh,tooltip:qh,watermark:Jh},transform:{"arrange-draw-order":X4,"collapse-expand-combo":K4,"collapse-expand-node":Q4,"get-edge-actual-ends":LB,"map-node-size":ud,"place-radial-labels":hd,"process-parallel-edges":dd,"update-related-edges":jB},shape:{circle:ta,ellipse:al,group:rr,html:lo,image:qf,line:ws,path:ii,polygon:Ss,polyline:kc,rect:mr,text:Ms,label:sa,badge:go}};function GB(){Object.entries(WB).forEach(([n,t])=>{Object.entries(t).forEach(([e,r])=>{q4(n,e,r)})})}GB();const Uj={css:"//at.alicdn.com/t/a/font_470089_8hnbbf8n4u8.css",js:"//at.alicdn.com/t/a/font_470089_8hnbbf8n4u8.js"}},13722:function(Y){(function(S,A){Y.exports=A()})(typeof self!="undefined"?self:this,function(){return function(Q){var S={};function A(G){if(S[G])return S[G].exports;var F=S[G]={i:G,l:!1,exports:{}};return Q[G].call(F.exports,F,F.exports,A),F.l=!0,F.exports}return A.m=Q,A.c=S,A.d=function(G,F,C){A.o(G,F)||Object.defineProperty(G,F,{configurable:!1,enumerable:!0,get:C})},A.n=function(G){var F=G&&G.__esModule?function(){return G.default}:function(){return G};return A.d(F,"a",F),F},A.o=function(G,F){return Object.prototype.hasOwnProperty.call(G,F)},A.p="",A(A.s=5)}([function(Q,S){function A(G,F,C,T){return T===void 0&&(T="height"),C==="center"?(G[T]+F[T])/2:G.height}Q.exports={assign:Object.assign,getHeight:A}},function(Q,S,A){var G=A(3),F=function(){function C(N,D){D===void 0&&(D={});var P=this;P.options=D,P.rootNode=G(N,D)}var T=C.prototype;return T.execute=function(){throw new Error("please override this method")},C}();Q.exports=F},function(Q,S,A){var G=A(4),F=["LR","RL","TB","BT","H","V"],C=["LR","RL","H"],T=function(_){return C.indexOf(_)>-1},N=F[0];Q.exports=function(P,_,I){var L=_.direction||N;if(_.isHorizontal=T(L),L&&F.indexOf(L)===-1)throw new TypeError("Invalid direction: "+L);if(L===F[0])I(P,_);else if(L===F[1])I(P,_),P.right2left();else if(L===F[2])I(P,_);else if(L===F[3])I(P,_),P.bottom2top();else if(L===F[4]||L===F[5]){var W=G(P,_),K=W.left,X=W.right;I(K,_),I(X,_),_.isHorizontal?K.right2left():K.bottom2top(),X.translate(K.x-X.x,K.y-X.y),P.x=K.x,P.y=X.y;var et=P.getBoundingBox();_.isHorizontal?et.top<0&&P.translate(0,-et.top):et.left<0&&P.translate(-et.left,0)}var tt=_.fixedRoot;return tt===void 0&&(tt=!0),tt&&P.translate(-(P.x+P.width/2+P.hgap),-(P.y+P.height/2+P.vgap)),D(P,_),P};function D(P,_){if(_.radial){var I=_.isHorizontal?["x","y"]:["y","x"],L=I[0],W=I[1],K={x:1/0,y:1/0},X={x:-1/0,y:-1/0},et=0;P.DFTraverse(function(it){et++;var at=it.x,ut=it.y;K.x=Math.min(K.x,at),K.y=Math.min(K.y,ut),X.x=Math.max(X.x,at),X.y=Math.max(X.y,ut)});var tt=X[W]-K[W];if(tt===0)return;var q=Math.PI*2/et;P.DFTraverse(function(it){var at=(it[W]-K[W])/tt*(Math.PI*2-q)+q,ut=it[L]-P[L];it.x=Math.cos(at)*ut,it.y=Math.sin(at)*ut})}}},function(Q,S,A){var G=A(0),F=18,C=F*2,T=F,N={getId:function(I){return I.id||I.name},getPreH:function(I){return I.preH||0},getPreV:function(I){return I.preV||0},getHGap:function(I){return I.hgap||T},getVGap:function(I){return I.vgap||T},getChildren:function(I){return I.children},getHeight:function(I){return I.height||C},getWidth:function(I){var L=I.label||" ";return I.width||L.split("").length*F}};function D(_,I){var L=this;if(L.vgap=L.hgap=0,_ instanceof D)return _;L.data=_;var W=I.getHGap(_),K=I.getVGap(_);return L.preH=I.getPreH(_),L.preV=I.getPreV(_),L.width=I.getWidth(_),L.height=I.getHeight(_),L.width+=L.preH,L.height+=L.preV,L.id=I.getId(_),L.x=L.y=0,L.depth=0,L.children||(L.children=[]),L.addGap(W,K),L}G.assign(D.prototype,{isRoot:function(){return this.depth===0},isLeaf:function(){return this.children.length===0},addGap:function(I,L){var W=this;W.hgap+=I,W.vgap+=L,W.width+=2*I,W.height+=2*L},eachNode:function(I){for(var L=this,W=[L],K;K=W.shift();)I(K),W=K.children.concat(W)},DFTraverse:function(I){this.eachNode(I)},BFTraverse:function(I){for(var L=this,W=[L],K;K=W.shift();)I(K),W=W.concat(K.children)},getBoundingBox:function(){var I={left:Number.MAX_VALUE,top:Number.MAX_VALUE,width:0,height:0};return this.eachNode(function(L){I.left=Math.min(I.left,L.x),I.top=Math.min(I.top,L.y),I.width=Math.max(I.width,L.x+L.width),I.height=Math.max(I.height,L.y+L.height)}),I},translate:function(I,L){I===void 0&&(I=0),L===void 0&&(L=0),this.eachNode(function(W){W.x+=I,W.y+=L,W.x+=W.preH,W.y+=W.preV})},right2left:function(){var I=this,L=I.getBoundingBox();I.eachNode(function(W){W.x=W.x-(W.x-L.left)*2-W.width}),I.translate(L.width,0)},bottom2top:function(){var I=this,L=I.getBoundingBox();I.eachNode(function(W){W.y=W.y-(W.y-L.top)*2-W.height}),I.translate(0,L.height)}});function P(_,I,L){I===void 0&&(I={}),I=G.assign({},N,I);var W=new D(_,I),K=[W],X;if(!L&&!_.collapsed){for(;X=K.shift();)if(!X.data.collapsed){var et=I.getChildren(X.data),tt=et?et.length:0;if(X.children=new Array(tt),et&&tt)for(var q=0;qkt.low&&(kt=kt.nxt);var we=zt+Wt.prelim+Wt.w-(fe+Ht.prelim);we>0&&(fe+=we,K(mt,xt,kt.index,we));var He=tt(Wt),Yn=tt(Ht);He<=Yn&&(Wt=et(Wt),Wt!==null&&(zt+=Wt.mod)),He>=Yn&&(Ht=X(Ht),Ht!==null&&(fe+=Ht.mod))}!Wt&&Ht?q(mt,xt,Ht,fe):Wt&&!Ht&&it(mt,xt,Wt,zt)}function K(mt,xt,kt,Wt){mt.c[xt].mod+=Wt,mt.c[xt].msel+=Wt,mt.c[xt].mser+=Wt,ht(mt,xt,kt,Wt)}function X(mt){return mt.cs===0?mt.tl:mt.c[0]}function et(mt){return mt.cs===0?mt.tr:mt.c[mt.cs-1]}function tt(mt){return mt.y+mt.h}function q(mt,xt,kt,Wt){var zt=mt.c[0].el;zt.tl=kt;var Ht=Wt-kt.mod-mt.c[0].msel;zt.mod+=Ht,zt.prelim-=Ht,mt.c[0].el=mt.c[xt].el,mt.c[0].msel=mt.c[xt].msel}function it(mt,xt,kt,Wt){var zt=mt.c[xt].er;zt.tr=kt;var Ht=Wt-kt.mod-mt.c[xt].mser;zt.mod+=Ht,zt.prelim-=Ht,mt.c[xt].er=mt.c[xt-1].er,mt.c[xt].mser=mt.c[xt-1].mser}function at(mt){mt.prelim=(mt.c[0].prelim+mt.c[0].mod+mt.c[mt.cs-1].mod+mt.c[mt.cs-1].prelim+mt.c[mt.cs-1].w)/2-mt.w/2}function ut(mt,xt){xt+=mt.mod,mt.x=mt.prelim+xt,yt(mt);for(var kt=0;kt=kt.low;)kt=kt.nxt;return{low:mt,index:xt,nxt:kt}}N(D,_);var Mt=A.fromNode(D,_);return I(Mt),ut(Mt,0),T(Mt,D,_),C(D,_),D}},function(Q,S,A){function G(L,W){L.prototype=Object.create(W.prototype),L.prototype.constructor=L,F(L,W)}function F(L,W){return F=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(K,X){return K.__proto__=X,K},F(L,W)}var C=A(1),T=A(9),N=A(2),D=A(0),P=function(L){function W(){return L.apply(this,arguments)||this}G(W,L);var K=W.prototype;return K.execute=function(){var et=this;return et.rootNode.width=0,N(et.rootNode,et.options,T)},W}(C),_={};function I(L,W){return W=D.assign({},_,W),new P(L,W).execute()}Q.exports=I},function(Q,S,A){var G=A(0);function F(N,D){N===void 0&&(N=0),D===void 0&&(D=[]);var P=this;P.x=P.y=0,P.leftChild=P.rightChild=null,P.height=0,P.children=D}var C={isHorizontal:!0,nodeSep:20,nodeSize:20,rankSep:200,subTreeSep:10};function T(N,D,P){P?(D.x=N.x,D.y=N.y):(D.x=N.y,D.y=N.x),N.children.forEach(function(_,I){T(_,D.children[I],P)})}Q.exports=function(N,D){D===void 0&&(D={}),D=G.assign({},C,D);var P=0;function _(X){if(!X)return null;X.width=0,X.depth&&X.depth>P&&(P=X.depth);var et=X.children,tt=et.length,q=new F(X.height,[]);return et.forEach(function(it,at){var ut=_(it);q.children.push(ut),at===0&&(q.leftChild=ut),at===tt-1&&(q.rightChild=ut)}),q.originNode=X,q.isLeaf=X.isLeaf(),q}function I(X){if(X.isLeaf||X.children.length===0)X.drawingDepth=P;else{var et=X.children.map(function(q){return I(q)}),tt=Math.min.apply(null,et);X.drawingDepth=tt-1}return X.drawingDepth}var L;function W(X){X.x=X.drawingDepth*D.rankSep,X.isLeaf?(X.y=0,L&&(X.y=L.y+L.height+D.nodeSep,X.originNode.parent!==L.originNode.parent&&(X.y+=D.subTreeSep)),L=X):(X.children.forEach(function(et){W(et)}),X.y=(X.leftChild.y+X.rightChild.y)/2)}var K=_(N);return I(K),W(K),T(K,N,D.isHorizontal),N}},function(Q,S,A){function G(K,X){K.prototype=Object.create(X.prototype),K.prototype.constructor=K,F(K,X)}function F(K,X){return F=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(et,tt){return et.__proto__=tt,et},F(K,X)}var C=A(1),T=A(11),N=A(4),D=A(0),P=["LR","RL","H"],_=P[0],I=function(K){function X(){return K.apply(this,arguments)||this}G(X,K);var et=X.prototype;return et.execute=function(){var q=this,it=q.options,at=q.rootNode;it.isHorizontal=!0;var ut=it.indent,ht=ut===void 0?20:ut,yt=it.dropCap,St=yt===void 0?!0:yt,Mt=it.direction,mt=Mt===void 0?_:Mt,xt=it.align;if(mt&&P.indexOf(mt)===-1)throw new TypeError("Invalid direction: "+mt);if(mt===P[0])T(at,ht,St,xt);else if(mt===P[1])T(at,ht,St,xt),at.right2left();else if(mt===P[2]){var kt=N(at,it),Wt=kt.left,zt=kt.right;T(Wt,ht,St,xt),Wt.right2left(),T(zt,ht,St,xt);var Ht=Wt.getBoundingBox();zt.translate(Ht.width,0),at.x=zt.x-at.width/2}return at},X}(C),L={};function W(K,X){return X=D.assign({},L,X),new I(K,X).execute()}Q.exports=W},function(Q,S,A){var G=A(0);function F(C,T,N,D,P){var _=(typeof N=="function"?N(C):N)*C.depth;if(!D)try{if(C.id===C.parent.children[0].id){C.x+=_,C.y=T?T.y:0;return}}catch(W){}if(C.x+=_,T){if(C.y=T.y+G.getHeight(T,C,P),T.parent&&C.parent.id!==T.parent.id){var I=T.parent,L=I.y+G.getHeight(I,C,P);C.y=L>C.y?L:C.y}}else C.y=0}Q.exports=function(C,T,N,D){var P=null;C.eachNode(function(_){F(_,P,T,N,D),P=_})}},function(Q,S,A){function G(L,W){L.prototype=Object.create(W.prototype),L.prototype.constructor=L,F(L,W)}function F(L,W){return F=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(K,X){return K.__proto__=X,K},F(L,W)}var C=A(1),T=A(13),N=A(2),D=A(0),P=function(L){function W(){return L.apply(this,arguments)||this}G(W,L);var K=W.prototype;return K.execute=function(){var et=this;return N(et.rootNode,et.options,T)},W}(C),_={};function I(L,W){return W=D.assign({},_,W),new P(L,W).execute()}Q.exports=I},function(Q,S,A){var G=A(0);function F(N,D){var P=0;return N.children.length?N.children.forEach(function(_){P+=F(_,D)}):P=N.height,N._subTreeSep=D.getSubTreeSep(N.data),N.totalHeight=Math.max(N.height,P)+2*N._subTreeSep,N.totalHeight}function C(N){var D=N.children,P=D.length;if(P){D.forEach(function(X){C(X)});var _=D[0],I=D[P-1],L=I.y-_.y+I.height,W=0;if(D.forEach(function(X){W+=X.totalHeight}),L>N.height)N.y=_.y+L/2-N.height/2;else if(D.length!==1||N.height>W){var K=N.y+(N.height-L)/2-_.y;D.forEach(function(X){X.translate(0,K)})}else N.y=(_.y+_.height/2+I.y+I.height/2)/2-N.height/2}}var T={getSubTreeSep:function(){return 0}};Q.exports=function(N,D){D===void 0&&(D={}),D=G.assign({},T,D),N.parent={x:0,width:0,height:0,y:0},N.BFTraverse(function(P){P.x=P.parent.x+P.parent.width}),N.parent=null,F(N,D),N.startY=0,N.y=N.totalHeight/2-N.height/2,N.eachNode(function(P){var _=P.children,I=_.length;if(I){var L=_[0];if(L.startY=P.startY+P._subTreeSep,I===1)L.y=P.y+P.height/2-L.height/2;else{L.y=L.startY+L.totalHeight/2-L.height/2;for(var W=1;Wit in q?T(q,it,{enumerable:!0,configurable:!0,writable:!0,value:at}):q[it]=at,W=(q,it)=>{for(var at in it||(it={}))_.call(it,at)&&L(q,at,it[at]);if(P)for(var at of P(it))I.call(it,at)&&L(q,at,it[at]);return q},K=(q,it)=>N(q,D(it));function X(q,it,at=1/3,ut){let ht=q*Math.PI*2,yt=it*Math.PI*2;return{u:{min:-Math.PI,max:Math.PI*3,step:Math.PI/32},v:{min:0,max:Math.PI*2,step:Math.PI/20},x:function(St,Mt){return Styt?Math.cos(yt)*(1+Math.cos(Mt)*at):Math.cos(St)*(1+Math.cos(Mt)*at)},y:function(St,Mt){return Styt?Math.sin(yt)*(1+Math.cos(Mt)*at):Math.sin(St)*(1+Math.cos(Mt)*at)},z:function(St,Mt){return St<-Math.PI*.5?Math.sin(St):St>Math.PI*2.5?Math.sin(St)*ut*.1:Math.sin(Mt)>0?1*ut*.1:-1}}}function et({pieData:q=[],internalDiameterRatio:it=1/3}){var at,ut,ht,yt;const St=[],Mt=q==null?void 0:q.reduce((zt,Ht)=>(zt||0)+((Ht==null?void 0:Ht.value)||0),0);let mt=0,xt=0;const kt=[];for(let zt=0;zt<(q==null?void 0:q.length);zt++){xt=mt+(Mt==0?1:((at=q==null?void 0:q[zt])==null?void 0:at.value)||0);const Ht={itemStyle:((ut=q==null?void 0:q[zt])==null?void 0:ut.itemStyle)||{},name:((ht=q==null?void 0:q[zt])==null?void 0:ht.name)||`name${zt}`,type:"surface",parametric:!0,parametricEquation:X(mt/(Mt||(q==null?void 0:q.length)),xt/(Mt||(q==null?void 0:q.length)),it,((yt=q==null?void 0:q[zt])==null?void 0:yt.value)||(Mt==0?25:0)),wireframe:{show:!1},pieData:q==null?void 0:q[zt]};kt.push(Ht.name),St.push(Ht),mt=xt}return St.push({name:"pie2d",type:"pie",showEmptyCircle:!0,label:{show:!0,formatter:zt=>`${zt.value} ${zt.name}`},startAngle:-35,radius:["49%","50%"],center:["50%","40%"],data:[...q||[]].reverse(),itemStyle:{opacity:0}}),{legend:{left:"50%",top:"center",textStyle:{fontSize:12},data:kt},xAxis3D:{},yAxis3D:{},zAxis3D:{},grid3D:{viewControl:{alpha:45,rotateSensitivity:0,zoomSensitivity:0,panSensitivity:0,autoRotate:!1},left:"center",top:"-10%",show:!1,boxHeight:25},series:St}}const tt=({dataSource:q=[{name:"\u638C\u63E1\u738780%~100%",value:0,itemStyle:{color:"rgb(223,209,38)"}},{name:"\u638C\u63D0\u738760%~79%",value:0,itemStyle:{color:"rgb(6,234,230)"}},{name:"\u638C\u63A8\u738759%\u4EE5\u4E0B",value:0,itemStyle:{color:"rgb(6,110,247)"}}],className:it="",style:at={},legend:ut={},internalDiameterRatio:ht=1/3})=>{const[yt,St]=(0,A.useState)([]),Mt=(0,A.useCallback)(kt=>{const Wt=kt.selected||{},zt=q.map(Ht=>Ht.name).filter(Ht=>Wt[Ht]===!1);St(zt)},[q]),mt=(0,A.useMemo)(()=>q.filter(kt=>!yt.includes(kt.name)),[q,yt]),xt=(0,A.useMemo)(()=>{const kt=et({pieData:mt,internalDiameterRatio:ht}),Wt=q.map(Ht=>Ht.name),zt=q.reduce((Ht,fe)=>(Ht[fe.name]=!yt.includes(fe.name),Ht),{});return kt.legend=K(W(W({},kt.legend),ut),{data:Wt,selected:zt}),kt},[mt,ut,ht,q,yt]);return A.createElement(G.Z,{onEvents:{legendselectchanged:Mt},className:`w-full h-full ${it}`,option:xt,style:W({height:"100%"},at)})};Q.Z=tt},13393:function(Y,Q,S){"use strict";var A,G=Object.defineProperty,F=H=>{throw TypeError(H)},C=Math.pow,T=(H,x,w)=>x in H?G(H,x,{enumerable:!0,configurable:!0,writable:!0,value:w}):H[x]=w,N=(H,x,w)=>T(H,typeof x!="symbol"?x+"":x,w),D=(H,x,w)=>x.has(H)||F("Cannot "+w),P=(H,x,w)=>(D(H,x,"read from private field"),w?w.call(H):x.get(H)),_=(H,x,w)=>x.has(H)?F("Cannot add the same private member more than once"):x instanceof WeakSet?x.add(H):x.set(H,w),I=(H,x,w,m)=>(D(H,x,"write to private field"),m?m.call(H,w):x.set(H,w),w),L=(H,x,w)=>(D(H,x,"access private method"),w),W,K,X;A={value:!0};var et=S(34634),tt=S(34402);const q=" ".repeat(2),it=" ".repeat(4);function at(){return ut(this)}function ut(H,x={}){const{maxRows:w=15,maxColumns:m=10,maxNumSize:M=8,padMinus:j="auto"}=x;return`${H.constructor.name} { ${q}[ ${it}${ht(H,w,m,M,j)} ${q}] ${q}rows: ${H.rows} ${q}columns: ${H.columns} }`}function ht(H,x,w,m,M){const{rows:j,columns:rt}=H,nt=Math.min(j,x),ot=Math.min(rt,w),lt=[];if(M==="auto"){M=!1;t:for(let Tt=0;Tt=0&&w?` ${St(H,x-1)}`:St(H,x)).padEnd(x)}function St(H,x){let w=H.toString();if(w.length<=x)return w;let m=H.toFixed(x);if(m.length>x&&(m=H.toFixed(Math.max(0,x-(m.length-x)))),m.length<=x&&!m.startsWith("0.000")&&!m.startsWith("-0.000"))return m;let M=H.toExponential(x);return M.length>x&&(M=H.toExponential(Math.max(0,x-(M.length-x)))),M.slice(0)}function Mt(H,x){H.prototype.add=function(m){return typeof m=="number"?this.addS(m):this.addM(m)},H.prototype.addS=function(m){for(let M=0;M>m);return this},H.prototype.signPropagatingRightShiftM=function(m){if(m=x.checkMatrix(m),this.rows!==m.rows||this.columns!==m.columns)throw new RangeError("Matrices dimensions must be equal");for(let M=0;M>m.get(M,j));return this},H.signPropagatingRightShift=function(m,M){return new x(m).signPropagatingRightShift(M)},H.prototype.rightShift=function(m){return typeof m=="number"?this.rightShiftS(m):this.rightShiftM(m)},H.prototype.rightShiftS=function(m){for(let M=0;M>>m);return this},H.prototype.rightShiftM=function(m){if(m=x.checkMatrix(m),this.rows!==m.rows||this.columns!==m.columns)throw new RangeError("Matrices dimensions must be equal");for(let M=0;M>>m.get(M,j));return this},H.rightShift=function(m,M){return new x(m).rightShift(M)},H.prototype.zeroFillRightShift=H.prototype.rightShift,H.prototype.zeroFillRightShiftS=H.prototype.rightShiftS,H.prototype.zeroFillRightShiftM=H.prototype.rightShiftM,H.zeroFillRightShift=H.rightShift,H.prototype.not=function(){for(let m=0;mm)throw new RangeError("Row index out of range")}function xt(H,x,w){let m=w?H.columns:H.columns-1;if(x<0||x>m)throw new RangeError("Column index out of range")}function kt(H,x){if(x.to1DArray&&(x=x.to1DArray()),x.length!==H.columns)throw new RangeError("vector size must be the same as the number of columns");return x}function Wt(H,x){if(x.to1DArray&&(x=x.to1DArray()),x.length!==H.rows)throw new RangeError("vector size must be the same as the number of rows");return x}function zt(H,x){if(!et.isAnyArray(x))throw new TypeError("row indices must be an array");for(let w=0;w=H.rows)throw new RangeError("row indices are out of range")}function Ht(H,x){if(!et.isAnyArray(x))throw new TypeError("column indices must be an array");for(let w=0;w=H.columns)throw new RangeError("column indices are out of range")}function fe(H,x,w,m,M){if(arguments.length!==5)throw new RangeError("expected 4 arguments");if(He("startRow",x),He("endRow",w),He("startColumn",m),He("endColumn",M),x>w||m>M||x<0||x>=H.rows||w<0||w>=H.rows||m<0||m>=H.columns||M<0||M>=H.columns)throw new RangeError("Submatrix indices are out of range")}function we(H,x=0){let w=[];for(let m=0;m=j)throw new RangeError("min must be smaller than max");let nt=j-M,ot=new ne(x,w);for(let lt=0;ltm?(j=!0,m=w):(M=!1,j=!0);x++}return M}isReducedEchelonForm(){let x=0,w=0,m=-1,M=!0,j=!1;for(;xm?(j=!0,m=w):(M=!1,j=!0);for(let rt=w+1;rtx.get(M,m)&&(M=j);if(x.get(M,m)===0)m++;else{x.swapRows(w,M);let j=x.get(w,m);for(let rt=m;rt=0;)if(x.maxRow(M)===0)M--;else{let j=0,rt=!1;for(;jw[m]&&(w[m]=this.get(m,M));return w}case"column":{const w=new Array(this.columns).fill(Number.NEGATIVE_INFINITY);for(let m=0;mw[M]&&(w[M]=this.get(m,M));return w}case void 0:{let w=this.get(0,0);for(let m=0;mw&&(w=this.get(m,M));return w}default:throw new Error(`invalid option: ${x}`)}}maxIndex(){Yn(this);let x=this.get(0,0),w=[0,0];for(let m=0;mx&&(x=this.get(m,M),w[0]=m,w[1]=M);return w}min(x){if(this.isEmpty())return NaN;switch(x){case"row":{const w=new Array(this.rows).fill(Number.POSITIVE_INFINITY);for(let m=0;mw&&(w=this.get(x,m));return w}maxRowIndex(x){mt(this,x),Yn(this);let w=this.get(x,0),m=[x,0];for(let M=1;Mw&&(w=this.get(x,M),m[1]=M);return m}minRow(x){if(mt(this,x),this.isEmpty())return NaN;let w=this.get(x,0);for(let m=1;mw&&(w=this.get(m,x));return w}maxColumnIndex(x){xt(this,x),Yn(this);let w=this.get(0,x),m=[0,x];for(let M=1;Mw&&(w=this.get(M,x),m[0]=M);return m}minColumn(x){if(xt(this,x),this.isEmpty())return NaN;let w=this.get(0,x);for(let m=1;m=1;M/=2)M&1&&(w=w.mmul(m)),m=m.mmul(m);return w}strassen2x2(x){x=ne.checkMatrix(x);let w=new ne(2,2);const m=this.get(0,0),M=x.get(0,0),j=this.get(0,1),rt=x.get(0,1),nt=this.get(1,0),ot=x.get(1,0),lt=this.get(1,1),Tt=x.get(1,1),vt=(m+lt)*(M+Tt),Ft=(nt+lt)*M,qt=m*(rt-Tt),Lt=lt*(ot-M),Gt=(m+j)*Tt,se=(nt-m)*(M+rt),bt=(j-lt)*(ot+Tt),Qt=vt+Lt-Gt+bt,he=qt+Gt,Ae=Ft+Lt,oe=vt-Ft+qt+se;return w.set(0,0,Qt),w.set(0,1,he),w.set(1,0,Ae),w.set(1,1,oe),w}strassen3x3(x){x=ne.checkMatrix(x);let w=new ne(3,3);const m=this.get(0,0),M=this.get(0,1),j=this.get(0,2),rt=this.get(1,0),nt=this.get(1,1),ot=this.get(1,2),lt=this.get(2,0),Tt=this.get(2,1),vt=this.get(2,2),Ft=x.get(0,0),qt=x.get(0,1),Lt=x.get(0,2),Gt=x.get(1,0),se=x.get(1,1),bt=x.get(1,2),Qt=x.get(2,0),he=x.get(2,1),Ae=x.get(2,2),oe=(m+M+j-rt-nt-Tt-vt)*se,vn=(m-rt)*(-qt+se),me=nt*(-Ft+qt+Gt-se-bt-Qt+Ae),xe=(-m+rt+nt)*(Ft-qt+se),nn=(rt+nt)*(-Ft+qt),Et=m*Ft,Ut=(-m+lt+Tt)*(Ft-Lt+bt),te=(-m+lt)*(Lt-bt),Kt=(lt+Tt)*(-Ft+Lt),gn=(m+M+j-nt-ot-lt-Tt)*bt,Pe=Tt*(-Ft+Lt+Gt-se-bt-Qt+he),qe=(-j+Tt+vt)*(se+Qt-he),pn=(j-vt)*(se-he),nr=j*Qt,Zr=(Tt+vt)*(-Qt+he),Ln=(-j+nt+ot)*(bt+Qt-Ae),yi=(j-ot)*(bt-Ae),cr=(nt+ot)*(-Qt+Ae),_e=M*Gt,Kn=ot*he,Tr=rt*Lt,Or=lt*qt,Cn=vt*Ae,Jl=Et+nr+_e,yd=oe+xe+nn+Et+qe+nr+Zr,Qs=Et+Ut+Kt+gn+nr+Ln+cr,Na=vn+me+xe+Et+nr+Ln+yi,qs=vn+xe+nn+Et+Kn,bd=nr+Ln+yi+cr+Tr,xd=Et+Ut+te+Pe+qe+pn+nr,ls=qe+pn+nr+Zr+Or,Go=Et+Ut+te+Kt+Cn;return w.set(0,0,Jl),w.set(0,1,yd),w.set(0,2,Qs),w.set(1,0,Na),w.set(1,1,qs),w.set(1,2,bd),w.set(2,0,xd),w.set(2,1,ls),w.set(2,2,Go),w}mmulStrassen(x){x=ne.checkMatrix(x);let w=this.clone(),m=w.rows,M=w.columns,j=x.rows,rt=x.columns;M!==j&&console.warn(`Multiplying ${m} x ${M} and ${j} x ${rt} matrix: dimensions do not match.`);function nt(vt,Ft,qt){let Lt=vt.rows,Gt=vt.columns;if(Lt===Ft&&Gt===qt)return vt;{let se=ye.zeros(Ft,qt);return se=se.setSubMatrix(vt,0,0),se}}let ot=Math.max(m,j),lt=Math.max(M,rt);w=nt(w,ot,lt),x=nt(x,ot,lt);function Tt(vt,Ft,qt,Lt){if(qt<=512||Lt<=512)return vt.mmul(Ft);qt%2===1&&Lt%2===1?(vt=nt(vt,qt+1,Lt+1),Ft=nt(Ft,qt+1,Lt+1)):qt%2===1?(vt=nt(vt,qt+1,Lt),Ft=nt(Ft,qt+1,Lt)):Lt%2===1&&(vt=nt(vt,qt,Lt+1),Ft=nt(Ft,qt,Lt+1));let Gt=parseInt(vt.rows/2,10),se=parseInt(vt.columns/2,10),bt=vt.subMatrix(0,Gt-1,0,se-1),Qt=Ft.subMatrix(0,Gt-1,0,se-1),he=vt.subMatrix(0,Gt-1,se,vt.columns-1),Ae=Ft.subMatrix(0,Gt-1,se,Ft.columns-1),oe=vt.subMatrix(Gt,vt.rows-1,0,se-1),vn=Ft.subMatrix(Gt,Ft.rows-1,0,se-1),me=vt.subMatrix(Gt,vt.rows-1,se,vt.columns-1),xe=Ft.subMatrix(Gt,Ft.rows-1,se,Ft.columns-1),nn=Tt(ye.add(bt,me),ye.add(Qt,xe),Gt,se),Et=Tt(ye.add(oe,me),Qt,Gt,se),Ut=Tt(bt,ye.sub(Ae,xe),Gt,se),te=Tt(me,ye.sub(vn,Qt),Gt,se),Kt=Tt(ye.add(bt,he),xe,Gt,se),gn=Tt(ye.sub(oe,bt),ye.add(Qt,Ae),Gt,se),Pe=Tt(ye.sub(he,me),ye.add(vn,xe),Gt,se),qe=ye.add(nn,te);qe.sub(Kt),qe.add(Pe);let pn=ye.add(Ut,Kt),nr=ye.add(Et,te),Zr=ye.sub(nn,Et);Zr.add(Ut),Zr.add(gn);let Ln=ye.zeros(2*qe.rows,2*qe.columns);return Ln=Ln.setSubMatrix(qe,0,0),Ln=Ln.setSubMatrix(pn,qe.rows,0),Ln=Ln.setSubMatrix(nr,0,qe.columns),Ln=Ln.setSubMatrix(Zr,qe.rows,qe.columns),Ln.subMatrix(0,qt-1,0,Lt-1)}return Tt(w,x,ot,lt)}scaleRows(x={}){if(typeof x!="object")throw new TypeError("options must be an object");const{min:w=0,max:m=1}=x;if(!Number.isFinite(w))throw new TypeError("min must be a number");if(!Number.isFinite(m))throw new TypeError("max must be a number");if(w>=m)throw new RangeError("min must be smaller than max");let M=new ne(this.rows,this.columns);for(let j=0;j0&&tt(rt,{min:w,max:m,output:rt}),M.setRow(j,rt)}return M}scaleColumns(x={}){if(typeof x!="object")throw new TypeError("options must be an object");const{min:w=0,max:m=1}=x;if(!Number.isFinite(w))throw new TypeError("min must be a number");if(!Number.isFinite(m))throw new TypeError("max must be a number");if(w>=m)throw new RangeError("min must be smaller than max");let M=new ne(this.rows,this.columns);for(let j=0;jm||w<0||w>=this.columns||m<0||m>=this.columns)throw new RangeError("Argument out of range");let M=new ne(x.length,m-w+1);for(let j=0;j=this.rows)throw new RangeError(`Row index out of range: ${x[j]}`);M.set(j,rt-w,this.get(x[j],rt))}return M}subMatrixColumn(x,w,m){if(w===void 0&&(w=0),m===void 0&&(m=this.rows-1),w>m||w<0||w>=this.rows||m<0||m>=this.rows)throw new RangeError("Argument out of range");let M=new ne(m-w+1,x.length);for(let j=0;j=this.columns)throw new RangeError(`Column index out of range: ${x[j]}`);M.set(rt-w,j,this.get(rt,x[j]))}return M}setSubMatrix(x,w,m){if(x=ne.checkMatrix(x),x.isEmpty())return this;let M=w+x.rows-1,j=m+x.columns-1;fe(this,w,M,m,j);for(let rt=0;rttypeof x=="number")}ye.random=ye.rand,ye.randomInt=ye.randInt,ye.diagonal=ye.diag,ye.prototype.diagonal=ye.prototype.diag,ye.identity=ye.eye,ye.prototype.negate=ye.prototype.neg,ye.prototype.tensorProduct=ye.prototype.kroneckerProduct;const wn=class Y0 extends ye{constructor(x,w){if(super(),_(this,W),N(this,"data"),Y0.isMatrix(x))L(this,W,K).call(this,x.rows,x.columns),Y0.copy(x,this);else if(Number.isInteger(x)&&x>=0)L(this,W,K).call(this,x,w);else if(et.isAnyArray(x)){const m=x;if(x=m.length,w=x?m[0].length:0,typeof w!="number")throw new TypeError("Data must be a 2D array with at least one element");this.data=[];for(let M=0;M=0)for(let w=0;w=0)I(this,X,new ne(x,x));else if(I(this,X,new ne(x)),!this.isSymmetric())throw new TypeError("not symmetric data")}get size(){return P(this,X).size}get rows(){return P(this,X).rows}get columns(){return P(this,X).columns}get diagonalSize(){return this.rows}static isSymmetricMatrix(x){return ne.isMatrix(x)&&x.klassType==="SymmetricMatrix"}static zeros(x){return new this(x)}static ones(x){return new this(x).fill(1)}clone(){const x=new H0(this.diagonalSize);for(const[w,m,M]of this.upperRightEntries())x.set(w,m,M);return x}toMatrix(){return new ne(this)}get(x,w){return P(this,X).get(x,w)}set(x,w,m){return P(this,X).set(x,w,m),P(this,X).set(w,x,m),this}removeCross(x){return P(this,X).removeRow(x),P(this,X).removeColumn(x),this}addCross(x,w){w===void 0&&(w=x,x=this.diagonalSize);const m=w.slice();return m.splice(x,1),P(this,X).addRow(x,m),P(this,X).addColumn(x,w),this}applyMask(x){if(x.length!==this.diagonalSize)throw new RangeError("Mask size do not match with matrix size");const w=[];for(const[m,M]of x.entries())M||w.push(m);w.reverse();for(const m of w)this.removeCross(m);return this}toCompact(){const{diagonalSize:x}=this,w=new Array(x*(x+1)/2);for(let m=0,M=0,j=0;j=x&&(m=++M);return w}static fromCompact(x){const w=x.length,m=(Math.sqrt(8*w+1)-1)/2;if(!Number.isInteger(m))throw new TypeError(`This array is not a compact representation of a Symmetric Matrix, ${JSON.stringify(x)}`);const M=new H0(m);for(let j=0,rt=0,nt=0;nt=m&&(j=++rt);return M}*upperRightEntries(){for(let x=0,w=0;x=this.diagonalSize&&(w=++x)}}*upperRightValues(){for(let x=0,w=0;x=this.diagonalSize&&(w=++x)}};X=new WeakMap;let Dr=Ca;Dr.prototype.klassType="SymmetricMatrix";class Hn extends Dr{static isDistanceMatrix(x){return Dr.isSymmetricMatrix(x)&&x.klassSubType==="DistanceMatrix"}constructor(x){if(super(x),!this.isDistance())throw new TypeError("Provided arguments do no produce a distance matrix")}set(x,w,m){return x===w&&(m=0),super.set(x,w,m)}addCross(x,w){return w===void 0&&(w=x,x=this.diagonalSize),w=w.slice(),w[x]=0,super.addCross(x,w)}toSymmetricMatrix(){return new Dr(this)}clone(){const x=new Hn(this.diagonalSize);for(const[w,m,M]of this.upperRightEntries())w!==m&&x.set(w,m,M);return x}toCompact(){const{diagonalSize:x}=this,w=(x-1)*x/2,m=new Array(w);for(let M=1,j=0,rt=0;rt=x&&(M=++j+1);return m}static fromCompact(x){const w=x.length;if(w===0)return new this(0);const m=(Math.sqrt(8*w+1)+1)/2;if(!Number.isInteger(m))throw new TypeError(`This array is not a compact representation of a DistanceMatrix, ${JSON.stringify(x)}`);const M=new this(m);for(let j=1,rt=0,nt=0;nt=m&&(j=++rt+1);return M}}Hn.prototype.klassSubType="DistanceMatrix";class Ir extends ye{constructor(x,w,m){super(),this.matrix=x,this.rows=w,this.columns=m}}class ss extends Ir{constructor(x,w){xt(x,w),super(x,x.rows,1),this.column=w}set(x,w,m){return this.matrix.set(x,this.column,m),this}get(x){return this.matrix.get(x,this.column)}}class Xl extends Ir{constructor(x,w){Ht(x,w),super(x,x.rows,w.length),this.columnIndices=w}set(x,w,m){return this.matrix.set(x,this.columnIndices[w],m),this}get(x,w){return this.matrix.get(x,this.columnIndices[w])}}class Bo extends Ir{constructor(x){super(x,x.rows,x.columns)}set(x,w,m){return this.matrix.set(x,this.columns-w-1,m),this}get(x,w){return this.matrix.get(x,this.columns-w-1)}}class ha extends Ir{constructor(x){super(x,x.rows,x.columns)}set(x,w,m){return this.matrix.set(this.rows-x-1,w,m),this}get(x,w){return this.matrix.get(this.rows-x-1,w)}}class Hi extends Ir{constructor(x,w){mt(x,w),super(x,1,x.columns),this.row=w}set(x,w,m){return this.matrix.set(this.row,w,m),this}get(x,w){return this.matrix.get(this.row,w)}}class Xs extends Ir{constructor(x,w){zt(x,w),super(x,w.length,x.columns),this.rowIndices=w}set(x,w,m){return this.matrix.set(this.rowIndices[x],w,m),this}get(x,w){return this.matrix.get(this.rowIndices[x],w)}}class os extends Ir{constructor(x,w,m){zt(x,w),Ht(x,m),super(x,w.length,m.length),this.rowIndices=w,this.columnIndices=m}set(x,w,m){return this.matrix.set(this.rowIndices[x],this.columnIndices[w],m),this}get(x,w){return this.matrix.get(this.rowIndices[x],this.columnIndices[w])}}class Fo extends Ir{constructor(x,w,m,M,j){fe(x,w,m,M,j),super(x,m-w+1,j-M+1),this.startRow=w,this.startColumn=M}set(x,w,m){return this.matrix.set(this.startRow+x,this.startColumn+w,m),this}get(x,w){return this.matrix.get(this.startRow+x,this.startColumn+w)}}class ni extends Ir{constructor(x){super(x,x.columns,x.rows)}set(x,w,m){return this.matrix.set(w,x,m),this}get(x,w){return this.matrix.get(w,x)}}class ki extends ye{constructor(x,w={}){const{rows:m=1}=w;if(x.length%m!==0)throw new Error("the data length is not divisible by the number of rows");super(),this.rows=m,this.columns=x.length/m,this.data=x}set(x,w,m){let M=this._calculateIndex(x,w);return this.data[M]=m,this}get(x,w){let m=this._calculateIndex(x,w);return this.data[m]}_calculateIndex(x,w){return x*this.columns+w}}class Ar extends ye{constructor(x){super(),this.data=x,this.rows=x.length,this.columns=x[0].length}set(x,w,m){return this.data[x][w]=m,this}get(x,w){return this.data[x][w]}}function X0(H,x){if(et.isAnyArray(H))return H[0]&&et.isAnyArray(H[0])?new Ar(H):new ki(H,x);throw new Error("the argument is not an array")}class zo{constructor(x){x=Ar.checkMatrix(x);let w=x.clone(),m=w.rows,M=w.columns,j=new Float64Array(m),rt=1,nt,ot,lt,Tt,vt,Ft,qt,Lt,Gt;for(nt=0;ntMath.abs(Lt[Tt])&&(Tt=nt);if(Tt!==ot){for(lt=0;lt=0;lt--){for(ot=0;otrt?M.set(j,rt,x.get(j,rt)):j===rt?M.set(j,rt,1):M.set(j,rt,0);return M}get upperTriangularMatrix(){let x=this.LU,w=x.rows,m=x.columns,M=new ne(w,m);for(let j=0;jMath.abs(x)?(w=x/H,Math.abs(H)*Math.sqrt(1+w*w)):x!==0?(w=H/x,Math.abs(x)*Math.sqrt(1+w*w)):0}class jo{constructor(x){x=Ar.checkMatrix(x);let w=x.clone(),m=x.rows,M=x.columns,j=new Float64Array(M),rt,nt,ot,lt;for(ot=0;ot=0;lt--){for(ot=0;ot=0;nt--){for(j=0;j=0;Et--)if(Lt[Et]!==0){for(let Ut=Et+1;Ut=0;Et--){if(Et0;){let Et,Ut;for(Et=me-2;Et>=-1&&Et!==-1;Et--){const te=Number.MIN_VALUE+nn*Math.abs(Lt[Et]+Math.abs(Lt[Et+1]));if(Math.abs(bt[Et])<=te||Number.isNaN(bt[Et])){bt[Et]=0;break}}if(Et===me-2)Ut=4;else{let te;for(te=me-1;te>=Et&&te!==Et;te--){let Kt=(te!==me?Math.abs(bt[te]):0)+(te!==Et+1?Math.abs(bt[te-1]):0);if(Math.abs(Lt[te])<=nn*Kt){Lt[te]=0;break}}te===Et?Ut=3:te===me-1?Ut=1:(Ut=2,Et=te)}switch(Et++,Ut){case 1:{let te=bt[me-2];bt[me-2]=0;for(let Kt=me-2;Kt>=Et;Kt--){let gn=Xn(Lt[Kt],te),Pe=Lt[Kt]/gn,qe=te/gn;if(Lt[Kt]=gn,Kt!==Et&&(te=-qe*bt[Kt-1],bt[Kt-1]=Pe*bt[Kt-1]),lt)for(let pn=0;pn=Lt[Et+1]);){let te=Lt[Et];if(Lt[Et]=Lt[Et+1],Lt[Et+1]=te,lt&&Etw&&j.set(Tt,vt,x.get(Tt,vt)/this.s[vt]);let rt=this.U,nt=rt.rows,ot=rt.columns,lt=new ne(m,nt);for(let Tt=0;Ttx&&w++;return w}get diagonal(){return Array.from(this.s)}get threshold(){return Number.EPSILON/2*Math.max(this.m,this.n)*this.s[0]}get leftSingularVectors(){return this.U}get rightSingularVectors(){return this.V}get diagonalMatrix(){return ne.diag(this.s)}}function gd(H,x=!1){return H=Ar.checkMatrix(H),x?new mi(H).inverse():Kl(H,ne.eye(H.rows))}function Kl(H,x,w=!1){return H=Ar.checkMatrix(H),x=Ar.checkMatrix(x),w?new mi(H).solve(x):H.isSquare()?new zo(H).solve(x):new jo(H).solve(x)}function Ks(H){if(H=ne.checkMatrix(H),H.isSquare()){if(H.columns===0)return 1;let x,w,m,M;if(H.columns===2)return x=H.get(0,0),w=H.get(0,1),m=H.get(1,0),M=H.get(1,1),x*M-w*m;if(H.columns===3){let j,rt,nt;return j=new os(H,[1,2],[1,2]),rt=new os(H,[1,2],[0,2]),nt=new os(H,[1,2],[0,1]),x=H.get(0,0),w=H.get(0,1),m=H.get(0,2),x*Ks(j)-w*Ks(rt)+m*Ks(nt)}else return new zo(H).determinant}else throw Error("determinant can only be calculated for a square matrix")}function K0(H,x){let w=[];for(let m=0;mM)return new Array(x.rows+1).fill(0);{let j=x.addRow(w,[0]);for(let rt=0;rtx?j[rt]=1/j[rt]:j[rt]=0;return M.mmul(ne.diag(j).mmul(m.transpose()))}function $0(H,x=H,w={}){H=new ne(H);let m=!1;if(typeof x=="object"&&!ne.isMatrix(x)&&!et.isAnyArray(x)?(w=x,x=H,m=!0):x=new ne(x),H.rows!==x.rows)throw new TypeError("Both matrices must have the same number of rows");const{center:M=!0}=w;M&&(H=H.center("column"),m||(x=x.center("column")));const j=H.transpose().mmul(x);for(let rt=0;rt0?M.set(j,j+1,w[j]):w[j]<0&&M.set(j,j-1,w[j])}return M}}function eg(H,x,w,m){let M,j,rt,nt,ot,lt,Tt,vt;for(ot=0;ot0;nt--){for(vt=0,rt=0,lt=0;lt0&&(j=-j),x[nt]=vt*j,rt=rt-M*j,w[nt-1]=M-j,ot=0;otlt)do{for(M=w[lt],vt=(w[lt+1]-M)/(2*x[lt]),Ft=Xn(vt,1),vt<0&&(Ft=-Ft),w[lt]=x[lt]/(vt+Ft),w[lt+1]=x[lt]*(vt+Ft),qt=w[lt+1],j=M-w[lt],rt=lt+2;rt=lt;rt--)for(se=Gt,Gt=Lt,he=Qt,M=Lt*x[rt],j=Lt*vt,Ft=Xn(vt,x[rt]),x[rt+1]=Qt*Ft,Qt=x[rt]/Ft,Lt=vt/Ft,vt=Lt*w[rt]-Qt*M,w[rt+1]=j+Qt*(Lt*M+Qt*w[rt]),ot=0;otvn*oe);w[lt]=w[lt]+Ae,x[lt]=0}for(rt=0;rt=vt;lt--)w[lt]=x.get(lt,vt-1)/Ft,ot+=w[lt]*w[lt];for(nt=Math.sqrt(ot),w[vt]>0&&(nt=-nt),ot=ot-w[vt]*nt,w[vt]=w[vt]-nt,Tt=vt;Tt=vt;lt--)rt+=w[lt]*x.get(lt,Tt);for(rt=rt/ot,lt=vt;lt<=j;lt++)x.set(lt,Tt,x.get(lt,Tt)-rt*w[lt])}for(lt=0;lt<=j;lt++){for(rt=0,Tt=j;Tt>=vt;Tt--)rt+=w[Tt]*x.get(lt,Tt);for(rt=rt/ot,Tt=vt;Tt<=j;Tt++)x.set(lt,Tt,x.get(lt,Tt)-rt*w[Tt])}w[vt]=Ft*w[vt],x.set(vt,vt-1,Ft*nt)}}for(lt=0;lt=M+1;vt--)if(x.get(vt,vt-1)!==0){for(lt=vt+1;lt<=j;lt++)w[lt]=x.get(lt,vt-1);for(Tt=vt;Tt<=j;Tt++){for(nt=0,lt=vt;lt<=j;lt++)nt+=w[lt]*m.get(lt,Tt);for(nt=nt/w[vt]/x.get(vt,vt-1),lt=vt;lt<=j;lt++)m.set(lt,Tt,m.get(lt,Tt)+nt*w[lt])}}}function rg(H,x,w,m,M){let j=H-1,rt=0,nt=H-1,ot=Number.EPSILON,lt=0,Tt=0,vt=0,Ft=0,qt=0,Lt=0,Gt=0,se=0,bt,Qt,he,Ae,oe,vn,me,xe,nn,Et,Ut,te,Kt,gn,Pe;for(bt=0;btnt)&&(w[bt]=M.get(bt,bt),x[bt]=0),Qt=Math.max(bt-1,0);Qt=rt;){for(Ae=j;Ae>rt&&(Lt=Math.abs(M.get(Ae-1,Ae-1))+Math.abs(M.get(Ae,Ae)),Lt===0&&(Lt=Tt),!(Math.abs(M.get(Ae,Ae-1))=0){for(Gt=vt>=0?vt+Gt:vt-Gt,w[j-1]=xe+Gt,w[j]=w[j-1],Gt!==0&&(w[j]=xe-me/Gt),x[j-1]=0,x[j]=0,xe=M.get(j,j-1),Lt=Math.abs(xe)+Math.abs(Gt),vt=xe/Lt,Ft=Gt/Lt,qt=Math.sqrt(vt*vt+Ft*Ft),vt=vt/qt,Ft=Ft/qt,Qt=j-1;Qt0)){for(Lt=Math.sqrt(Lt),nn=Ae&&(Gt=M.get(oe,oe),qt=xe-Gt,Lt=nn-Gt,vt=(qt*Lt-me)/M.get(oe+1,oe)+M.get(oe,oe+1),Ft=M.get(oe+1,oe+1)-Gt-qt-Lt,qt=M.get(oe+2,oe+1),Lt=Math.abs(vt)+Math.abs(Ft)+Math.abs(qt),vt=vt/Lt,Ft=Ft/Lt,qt=qt/Lt,!(oe===Ae||Math.abs(M.get(oe,oe-1))*(Math.abs(Ft)+Math.abs(qt))oe+2&&M.set(bt,bt-3,0);for(he=oe;he<=j-1&&(gn=he!==j-1,he!==oe&&(vt=M.get(he,he-1),Ft=M.get(he+1,he-1),qt=gn?M.get(he+2,he-1):0,xe=Math.abs(vt)+Math.abs(Ft)+Math.abs(qt),xe!==0&&(vt=vt/xe,Ft=Ft/xe,qt=qt/xe)),xe!==0);he++)if(Lt=Math.sqrt(vt*vt+Ft*Ft+qt*qt),vt<0&&(Lt=-Lt),Lt!==0){for(he!==oe?M.set(he,he-1,-Lt*xe):Ae!==oe&&M.set(he,he-1,-M.get(he,he-1)),vt=vt+Lt,xe=vt/Lt,nn=Ft/Lt,Gt=qt/Lt,Ft=Ft/vt,qt=qt/vt,Qt=he;Qt=0;j--)if(vt=w[j],Ft=x[j],Ft===0)for(Ae=j,M.set(j,j,1),bt=j-1;bt>=0;bt--){for(me=M.get(bt,bt)-vt,qt=0,Qt=Ae;Qt<=j;Qt++)qt=qt+M.get(bt,Qt)*M.get(Qt,j);if(x[bt]<0)Gt=me,Lt=qt;else if(Ae=bt,x[bt]===0?M.set(bt,j,me!==0?-qt/me:-qt/(ot*Tt)):(xe=M.get(bt,bt+1),nn=M.get(bt+1,bt),Ft=(w[bt]-vt)*(w[bt]-vt)+x[bt]*x[bt],vn=(xe*Lt-Gt*qt)/Ft,M.set(bt,j,vn),M.set(bt+1,j,Math.abs(xe)>Math.abs(Gt)?(-qt-me*vn)/xe:(-Lt-nn*vn)/Gt)),vn=Math.abs(M.get(bt,j)),ot*vn*vn>1)for(Qt=bt;Qt<=j;Qt++)M.set(Qt,j,M.get(Qt,j)/vn)}else if(Ft<0)for(Ae=j-1,Math.abs(M.get(j,j-1))>Math.abs(M.get(j-1,j))?(M.set(j-1,j-1,Ft/M.get(j,j-1)),M.set(j-1,j,-(M.get(j,j)-vt)/M.get(j,j-1))):(Pe=Wo(0,-M.get(j-1,j),M.get(j-1,j-1)-vt,Ft),M.set(j-1,j-1,Pe[0]),M.set(j-1,j,Pe[1])),M.set(j,j-1,0),M.set(j,j,1),bt=j-2;bt>=0;bt--){for(Et=0,Ut=0,Qt=Ae;Qt<=j;Qt++)Et=Et+M.get(bt,Qt)*M.get(Qt,j-1),Ut=Ut+M.get(bt,Qt)*M.get(Qt,j);if(me=M.get(bt,bt)-vt,x[bt]<0)Gt=me,qt=Et,Lt=Ut;else if(Ae=bt,x[bt]===0?(Pe=Wo(-Et,-Ut,me,Ft),M.set(bt,j-1,Pe[0]),M.set(bt,j,Pe[1])):(xe=M.get(bt,bt+1),nn=M.get(bt+1,bt),te=(w[bt]-vt)*(w[bt]-vt)+x[bt]*x[bt]-Ft*Ft,Kt=(w[bt]-vt)*2*Ft,te===0&&Kt===0&&(te=ot*Tt*(Math.abs(me)+Math.abs(Ft)+Math.abs(xe)+Math.abs(nn)+Math.abs(Gt))),Pe=Wo(xe*qt-Gt*Et+Ft*Ut,xe*Lt-Gt*Ut-Ft*Et,te,Kt),M.set(bt,j-1,Pe[0]),M.set(bt,j,Pe[1]),Math.abs(xe)>Math.abs(Gt)+Math.abs(Ft)?(M.set(bt+1,j-1,(-Et-me*M.get(bt,j-1)+Ft*M.get(bt,j))/xe),M.set(bt+1,j,(-Ut-me*M.get(bt,j)-Ft*M.get(bt,j-1))/xe)):(Pe=Wo(-qt-nn*M.get(bt,j-1),-Lt-nn*M.get(bt,j),Gt,Ft),M.set(bt+1,j-1,Pe[0]),M.set(bt+1,j,Pe[1]))),vn=Math.max(Math.abs(M.get(bt,j-1)),Math.abs(M.get(bt,j))),ot*vn*vn>1)for(Qt=bt;Qt<=j;Qt++)M.set(Qt,j-1,M.get(Qt,j-1)/vn),M.set(Qt,j,M.get(Qt,j)/vn)}for(bt=0;btnt)for(Qt=bt;Qt=rt;Qt--)for(bt=rt;bt<=nt;bt++){for(Gt=0,he=rt;he<=Math.min(Qt,nt);he++)Gt=Gt+m.get(bt,he)*M.get(he,Qt);m.set(bt,Qt,Gt)}}}function Wo(H,x,w,m){let M,j;return Math.abs(w)>Math.abs(m)?(M=m/w,j=w+M*m,[(H+M*x)/j,(x-M*H)/j]):(M=w/m,j=m+M*w,[(M*H+x)/j,(M*x-H)/j])}class Ql{constructor(x){if(x=Ar.checkMatrix(x),!x.isSymmetric())throw new Error("Matrix is not symmetric");let w=x,m=w.rows,M=new ne(m,m),j=!0,rt,nt,ot;for(nt=0;nt0),M.set(nt,nt,Math.sqrt(Math.max(lt,0))),ot=nt+1;ot=0;ot--)for(nt=0;ntrt;qt++)vt=x.transpose().mmul(nt).div(nt.transpose().mmul(nt).get(0,0)),vt=vt.div(vt.norm()),lt=x.mmul(vt).div(vt.transpose().mmul(vt).get(0,0)),qt>0&&(ot=lt.clone().sub(Ft).pow(2).sum()),Ft=lt.clone(),m?(Tt=m.transpose().mmul(lt).div(lt.transpose().mmul(lt).get(0,0)),Tt=Tt.div(Tt.norm()),nt=m.mmul(Tt).div(Tt.transpose().mmul(Tt).get(0,0))):nt=lt;if(m){let qt=x.transpose().mmul(lt).div(lt.transpose().mmul(lt).get(0,0));qt=qt.div(qt.norm());let Lt=x.clone().sub(lt.clone().mmul(qt.transpose())),Gt=nt.transpose().mmul(lt).div(lt.transpose().mmul(lt).get(0,0)),se=m.clone().sub(lt.clone().mulS(Gt.get(0,0)).mmul(Tt.transpose()));this.t=lt,this.p=qt.transpose(),this.w=vt.transpose(),this.q=Tt,this.u=nt,this.s=lt.transpose().mmul(lt),this.xResidual=Lt,this.yResidual=se,this.betas=Gt}else this.w=vt.transpose(),this.s=lt.transpose().mmul(lt).sqrt(),M?this.t=lt.clone().div(this.s.get(0,0)):this.t=lt,this.xResidual=x.sub(lt.mmul(vt.transpose()))}}Q.XA=ye,Q.a_=Ql,Q.yQ=Ql,Q.Hs=Hn,Q.Ec=pd,Q.dx=pd,Q.LU=zo,Q.Rm=zo,Q.y3=ne,Q.qK=Xl,Q.pb=ss,Q.j=Bo,Q.sO=ha,Q.BZ=Xs,Q.EK=Hi,Q.Db=os,Q.Fx=Fo,Q.tU=ni,Q.Ym=ql,Q.rs=ql,Q.QR=jo,Q.TB=jo,Q.oH=mi,Q.Sc=mi,Q.BN=Dr,Q.it=ki,Q.$r=Ar,Q.QM=tg,Q.AV=$0,A=ne,Q.GH=Ks,Q.SO=gd,Q.uZ=q0,Q.yU=J0,Q.F1=Kl,Q.re=X0},45411:function(Y){"use strict";Y.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},75196:function(Y,Q,S){var A=S(45411),G=S(81683),F=Object.hasOwnProperty,C=Object.create(null);for(var T in A)F.call(A,T)&&(C[A[T]]=T);var N=Y.exports={to:{},get:{}};N.get=function(_){var I=_.substring(0,3).toLowerCase(),L,W;switch(I){case"hsl":L=N.get.hsl(_),W="hsl";break;case"hwb":L=N.get.hwb(_),W="hwb";break;default:L=N.get.rgb(_),W="rgb";break}return L?{model:W,value:L}:null},N.get.rgb=function(_){if(!_)return null;var I=/^#([a-f0-9]{3,4})$/i,L=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,W=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,K=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,X=/^(\w+)$/,et=[0,0,0,1],tt,q,it;if(tt=_.match(L)){for(it=tt[2],tt=tt[1],q=0;q<3;q++){var at=q*2;et[q]=parseInt(tt.slice(at,at+2),16)}it&&(et[3]=parseInt(it,16)/255)}else if(tt=_.match(I)){for(tt=tt[1],it=tt[3],q=0;q<3;q++)et[q]=parseInt(tt[q]+tt[q],16);it&&(et[3]=parseInt(it+it,16)/255)}else if(tt=_.match(W)){for(q=0;q<3;q++)et[q]=parseInt(tt[q+1],0);tt[4]&&(tt[5]?et[3]=parseFloat(tt[4])*.01:et[3]=parseFloat(tt[4]))}else if(tt=_.match(K)){for(q=0;q<3;q++)et[q]=Math.round(parseFloat(tt[q+1])*2.55);tt[4]&&(tt[5]?et[3]=parseFloat(tt[4])*.01:et[3]=parseFloat(tt[4]))}else return(tt=_.match(X))?tt[1]==="transparent"?[0,0,0,0]:F.call(A,tt[1])?(et=A[tt[1]],et[3]=1,et):null:null;for(q=0;q<3;q++)et[q]=D(et[q],0,255);return et[3]=D(et[3],0,1),et},N.get.hsl=function(_){if(!_)return null;var I=/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,L=_.match(I);if(L){var W=parseFloat(L[4]),K=(parseFloat(L[1])%360+360)%360,X=D(parseFloat(L[2]),0,100),et=D(parseFloat(L[3]),0,100),tt=D(isNaN(W)?1:W,0,1);return[K,X,et,tt]}return null},N.get.hwb=function(_){if(!_)return null;var I=/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/,L=_.match(I);if(L){var W=parseFloat(L[4]),K=(parseFloat(L[1])%360+360)%360,X=D(parseFloat(L[2]),0,100),et=D(parseFloat(L[3]),0,100),tt=D(isNaN(W)?1:W,0,1);return[K,X,et,tt]}return null},N.to.hex=function(){var _=G(arguments);return"#"+P(_[0])+P(_[1])+P(_[2])+(_[3]<1?P(Math.round(_[3]*255)):"")},N.to.rgb=function(){var _=G(arguments);return _.length<4||_[3]===1?"rgb("+Math.round(_[0])+", "+Math.round(_[1])+", "+Math.round(_[2])+")":"rgba("+Math.round(_[0])+", "+Math.round(_[1])+", "+Math.round(_[2])+", "+_[3]+")"},N.to.rgb.percent=function(){var _=G(arguments),I=Math.round(_[0]/255*100),L=Math.round(_[1]/255*100),W=Math.round(_[2]/255*100);return _.length<4||_[3]===1?"rgb("+I+"%, "+L+"%, "+W+"%)":"rgba("+I+"%, "+L+"%, "+W+"%, "+_[3]+")"},N.to.hsl=function(){var _=G(arguments);return _.length<4||_[3]===1?"hsl("+_[0]+", "+_[1]+"%, "+_[2]+"%)":"hsla("+_[0]+", "+_[1]+"%, "+_[2]+"%, "+_[3]+")"},N.to.hwb=function(){var _=G(arguments),I="";return _.length>=4&&_[3]!==1&&(I=", "+_[3]),"hwb("+_[0]+", "+_[1]+"%, "+_[2]+"%"+I+")"},N.to.keyword=function(_){return C[_.slice(0,3)]};function D(_,I,L){return Math.min(Math.max(I,_),L)}function P(_){var I=Math.round(_).toString(16).toUpperCase();return I.length<2?"0"+I:I}},92546:function(Y,Q,S){Y.exports={graphlib:S(76626),layout:S(47194),debug:S(11303),util:{time:S(53063).time,notime:S(53063).notime},version:S(11897)}},81255:function(Y,Q,S){"use strict";var A=S(72361),G=S(39240);Y.exports={run:F,undo:T};function F(N){var D=N.graph().acyclicer==="greedy"?G(N,P(N)):C(N);A.forEach(D,function(_){var I=N.edge(_);N.removeEdge(_),I.forwardName=_.name,I.reversed=!0,N.setEdge(_.w,_.v,I,A.uniqueId("rev"))});function P(_){return function(I){return _.edge(I).weight}}}function C(N){var D=[],P={},_={};function I(L){A.has(_,L)||(_[L]=!0,P[L]=!0,A.forEach(N.outEdges(L),function(W){A.has(P,W.w)?D.push(W):I(W.w)}),delete P[L])}return A.forEach(N.nodes(),I),D}function T(N){A.forEach(N.edges(),function(D){var P=N.edge(D);if(P.reversed){N.removeEdge(D);var _=P.forwardName;delete P.reversed,delete P.forwardName,N.setEdge(D.w,D.v,P,_)}})}},60765:function(Y,Q,S){var A=S(72361),G=S(53063);Y.exports=F;function F(T){function N(D){var P=T.children(D),_=T.node(D);if(P.length&&A.forEach(P,N),A.has(_,"minRank")){_.borderLeft=[],_.borderRight=[];for(var I=_.minRank,L=_.maxRank+1;I0;--q)if(tt=L[q].dequeue(),tt){K=K.concat(D(I,L,W,tt,!0));break}}}return K}function D(I,L,W,K,X){var et=X?[]:void 0;return A.forEach(I.inEdges(K.v),function(tt){var q=I.edge(tt),it=I.node(tt.v);X&&et.push({v:tt.v,w:tt.w}),it.out-=q,_(L,W,it)}),A.forEach(I.outEdges(K.v),function(tt){var q=I.edge(tt),it=tt.w,at=I.node(it);at.in-=q,_(L,W,at)}),I.removeNode(K.v),et}function P(I,L){var W=new G,K=0,X=0;A.forEach(I.nodes(),function(q){W.setNode(q,{v:q,in:0,out:0})}),A.forEach(I.edges(),function(q){var it=W.edge(q.v,q.w)||0,at=L(q),ut=it+at;W.setEdge(q.v,q.w,ut),X=Math.max(X,W.node(q.v).out+=at),K=Math.max(K,W.node(q.w).in+=at)});var et=A.range(X+K+3).map(function(){return new F}),tt=K+1;return A.forEach(W.nodes(),function(q){_(et,tt,W.node(q))}),{graph:W,buckets:et,zeroIdx:tt}}function _(I,L,W){W.out?W.in?I[W.out-W.in+L].enqueue(W):I[I.length-1].enqueue(W):I[0].enqueue(W)}},47194:function(Y,Q,S){"use strict";var A=S(72361),G=S(81255),F=S(27163),C=S(64505),T=S(53063).normalizeRanks,N=S(71970),D=S(53063).removeEmptyRanks,P=S(31733),_=S(60765),I=S(13257),L=S(62852),W=S(93021),K=S(53063),X=S(76626).Graph;Y.exports=et;function et(dt,wt){var Ot=wt&&wt.debugTiming?K.time:K.notime;Ot("layout",function(){var Zt=Ot(" buildLayoutGraph",function(){return xt(dt)});Ot(" runLayout",function(){tt(Zt,Ot)}),Ot(" updateInputGraph",function(){q(dt,Zt)})})}function tt(dt,wt){wt(" makeSpaceForEdgeLabels",function(){kt(dt)}),wt(" removeSelfEdges",function(){Oa(dt)}),wt(" acyclic",function(){G.run(dt)}),wt(" nestingGraph.run",function(){P.run(dt)}),wt(" rank",function(){C(K.asNonCompoundGraph(dt))}),wt(" injectEdgeLabelProxies",function(){Wt(dt)}),wt(" removeEmptyRanks",function(){D(dt)}),wt(" nestingGraph.cleanup",function(){P.cleanup(dt)}),wt(" normalizeRanks",function(){T(dt)}),wt(" assignRankMinMax",function(){zt(dt)}),wt(" removeEdgeLabelProxies",function(){Ht(dt)}),wt(" normalize.run",function(){F.run(dt)}),wt(" parentDummyChains",function(){N(dt)}),wt(" addBorderSegments",function(){_(dt)}),wt(" order",function(){L(dt)}),wt(" insertSelfEdges",function(){as(dt)}),wt(" adjustCoordinateSystem",function(){I.adjust(dt)}),wt(" position",function(){W(dt)}),wt(" positionSelfEdges",function(){Rt(dt)}),wt(" removeBorderNodes",function(){pi(dt)}),wt(" normalize.undo",function(){F.undo(dt)}),wt(" fixupEdgeLabelCoords",function(){He(dt)}),wt(" undoCoordinateSystem",function(){I.undo(dt)}),wt(" translateGraph",function(){fe(dt)}),wt(" assignNodeIntersects",function(){we(dt)}),wt(" reversePoints",function(){Yn(dt)}),wt(" acyclic.undo",function(){G.undo(dt)})}function q(dt,wt){A.forEach(dt.nodes(),function(Ot){var Zt=dt.node(Ot),ve=wt.node(Ot);Zt&&(Zt.x=ve.x,Zt.y=ve.y,wt.children(Ot).length&&(Zt.width=ve.width,Zt.height=ve.height))}),A.forEach(dt.edges(),function(Ot){var Zt=dt.edge(Ot),ve=wt.edge(Ot);Zt.points=ve.points,A.has(ve,"x")&&(Zt.x=ve.x,Zt.y=ve.y)}),dt.graph().width=wt.graph().width,dt.graph().height=wt.graph().height}var it=["nodesep","edgesep","ranksep","marginx","marginy"],at={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},ut=["acyclicer","ranker","rankdir","align"],ht=["width","height"],yt={width:0,height:0},St=["minlen","weight","width","height","labeloffset"],Mt={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},mt=["labelpos"];function xt(dt){var wt=new X({multigraph:!0,compound:!0}),Ot=Bt(dt.graph());return wt.setGraph(A.merge({},at,_t(Ot,it),A.pick(Ot,ut))),A.forEach(dt.nodes(),function(Zt){var ve=Bt(dt.node(Zt));wt.setNode(Zt,A.defaults(_t(ve,ht),yt)),wt.setParent(Zt,dt.parent(Zt))}),A.forEach(dt.edges(),function(Zt){var ve=Bt(dt.edge(Zt));wt.setEdge(Zt,A.merge({},Mt,_t(ve,St),A.pick(ve,mt)))}),wt}function kt(dt){var wt=dt.graph();wt.ranksep/=2,A.forEach(dt.edges(),function(Ot){var Zt=dt.edge(Ot);Zt.minlen*=2,Zt.labelpos.toLowerCase()!=="c"&&(wt.rankdir==="TB"||wt.rankdir==="BT"?Zt.width+=Zt.labeloffset:Zt.height+=Zt.labeloffset)})}function Wt(dt){A.forEach(dt.edges(),function(wt){var Ot=dt.edge(wt);if(Ot.width&&Ot.height){var Zt=dt.node(wt.v),ve=dt.node(wt.w),Ie={rank:(ve.rank-Zt.rank)/2+Zt.rank,e:wt};K.addDummyNode(dt,"edge-proxy",Ie,"_ep")}})}function zt(dt){var wt=0;A.forEach(dt.nodes(),function(Ot){var Zt=dt.node(Ot);Zt.borderTop&&(Zt.minRank=dt.node(Zt.borderTop).rank,Zt.maxRank=dt.node(Zt.borderBottom).rank,wt=A.max(wt,Zt.maxRank))}),dt.graph().maxRank=wt}function Ht(dt){A.forEach(dt.nodes(),function(wt){var Ot=dt.node(wt);Ot.dummy==="edge-proxy"&&(dt.edge(Ot.e).labelRank=Ot.rank,dt.removeNode(wt))})}function fe(dt){var wt=Number.POSITIVE_INFINITY,Ot=0,Zt=Number.POSITIVE_INFINITY,ve=0,Ie=dt.graph(),ge=Ie.marginx||0,Ne=Ie.marginy||0;function Ze(fn){var Oe=fn.x,Se=fn.y,ye=fn.width,ke=fn.height;wt=Math.min(wt,Oe-ye/2),Ot=Math.max(Ot,Oe+ye/2),Zt=Math.min(Zt,Se-ke/2),ve=Math.max(ve,Se+ke/2)}A.forEach(dt.nodes(),function(fn){Ze(dt.node(fn))}),A.forEach(dt.edges(),function(fn){var Oe=dt.edge(fn);A.has(Oe,"x")&&Ze(Oe)}),wt-=ge,Zt-=Ne,A.forEach(dt.nodes(),function(fn){var Oe=dt.node(fn);Oe.x-=wt,Oe.y-=Zt}),A.forEach(dt.edges(),function(fn){var Oe=dt.edge(fn);A.forEach(Oe.points,function(Se){Se.x-=wt,Se.y-=Zt}),A.has(Oe,"x")&&(Oe.x-=wt),A.has(Oe,"y")&&(Oe.y-=Zt)}),Ie.width=Ot-wt+ge,Ie.height=ve-Zt+Ne}function we(dt){A.forEach(dt.edges(),function(wt){var Ot=dt.edge(wt),Zt=dt.node(wt.v),ve=dt.node(wt.w),Ie,ge;Ot.points?(Ie=Ot.points[0],ge=Ot.points[Ot.points.length-1]):(Ot.points=[],Ie=ve,ge=Zt),Ot.points.unshift(K.intersectRect(Zt,Ie)),Ot.points.push(K.intersectRect(ve,ge))})}function He(dt){A.forEach(dt.edges(),function(wt){var Ot=dt.edge(wt);if(A.has(Ot,"x"))switch((Ot.labelpos==="l"||Ot.labelpos==="r")&&(Ot.width-=Ot.labeloffset),Ot.labelpos){case"l":Ot.x-=Ot.width/2+Ot.labeloffset;break;case"r":Ot.x+=Ot.width/2+Ot.labeloffset;break}})}function Yn(dt){A.forEach(dt.edges(),function(wt){var Ot=dt.edge(wt);Ot.reversed&&Ot.points.reverse()})}function pi(dt){A.forEach(dt.nodes(),function(wt){if(dt.children(wt).length){var Ot=dt.node(wt),Zt=dt.node(Ot.borderTop),ve=dt.node(Ot.borderBottom),Ie=dt.node(A.last(Ot.borderLeft)),ge=dt.node(A.last(Ot.borderRight));Ot.width=Math.abs(ge.x-Ie.x),Ot.height=Math.abs(ve.y-Zt.y),Ot.x=Ie.x+Ot.width/2,Ot.y=Zt.y+Ot.height/2}}),A.forEach(dt.nodes(),function(wt){dt.node(wt).dummy==="border"&&dt.removeNode(wt)})}function Oa(dt){A.forEach(dt.edges(),function(wt){if(wt.v===wt.w){var Ot=dt.node(wt.v);Ot.selfEdges||(Ot.selfEdges=[]),Ot.selfEdges.push({e:wt,label:dt.edge(wt)}),dt.removeEdge(wt)}})}function as(dt){var wt=K.buildLayerMatrix(dt);A.forEach(wt,function(Ot){var Zt=0;A.forEach(Ot,function(ve,Ie){var ge=dt.node(ve);ge.order=Ie+Zt,A.forEach(ge.selfEdges,function(Ne){K.addDummyNode(dt,"selfedge",{width:Ne.label.width,height:Ne.label.height,rank:ge.rank,order:Ie+ ++Zt,e:Ne.e,label:Ne.label},"_se")}),delete ge.selfEdges})})}function Rt(dt){A.forEach(dt.nodes(),function(wt){var Ot=dt.node(wt);if(Ot.dummy==="selfedge"){var Zt=dt.node(Ot.e.v),ve=Zt.x+Zt.width/2,Ie=Zt.y,ge=Ot.x-ve,Ne=Zt.height/2;dt.setEdge(Ot.e,Ot.label),dt.removeNode(wt),Ot.label.points=[{x:ve+2*ge/3,y:Ie-Ne},{x:ve+5*ge/6,y:Ie-Ne},{x:ve+ge,y:Ie},{x:ve+5*ge/6,y:Ie+Ne},{x:ve+2*ge/3,y:Ie+Ne}],Ot.label.x=Ot.x,Ot.label.y=Ot.y}})}function _t(dt,wt){return A.mapValues(A.pick(dt,wt),Number)}function Bt(dt){var wt={};return A.forEach(dt,function(Ot,Zt){wt[Zt.toLowerCase()]=Ot}),wt}},72361:function(Y,Q,S){var A;try{A={cloneDeep:S(20250),constant:S(13503),defaults:S(28548),each:S(76934),filter:S(64725),find:S(79785),flatten:S(40151),forEach:S(99204),forIn:S(23190),has:S(99946),isUndefined:S(16513),last:S(10611),map:S(9924),mapValues:S(70642),max:S(95987),merge:S(28440),min:S(73376),minBy:S(83296),now:S(5795),pick:S(89409),range:S(60859),reduce:S(16473),sortBy:S(351),uniqueId:S(95708),values:S(81229),zipObject:S(65441)}}catch(G){}A||(A=window._),Y.exports=A},31733:function(Y,Q,S){var A=S(72361),G=S(53063);Y.exports={run:F,cleanup:D};function F(P){var _=G.addDummyNode(P,"root",{},"_root"),I=T(P),L=A.max(A.values(I))-1,W=2*L+1;P.graph().nestingRoot=_,A.forEach(P.edges(),function(X){P.edge(X).minlen*=W});var K=N(P)+1;A.forEach(P.children(),function(X){C(P,_,W,K,L,I,X)}),P.graph().nodeRankFactor=W}function C(P,_,I,L,W,K,X){var et=P.children(X);if(!et.length){X!==_&&P.setEdge(_,X,{weight:0,minlen:I});return}var tt=G.addBorderNode(P,"_bt"),q=G.addBorderNode(P,"_bb"),it=P.node(X);P.setParent(tt,X),it.borderTop=tt,P.setParent(q,X),it.borderBottom=q,A.forEach(et,function(at){C(P,_,I,L,W,K,at);var ut=P.node(at),ht=ut.borderTop?ut.borderTop:at,yt=ut.borderBottom?ut.borderBottom:at,St=ut.borderTop?L:2*L,Mt=ht!==yt?1:W-K[X]+1;P.setEdge(tt,ht,{weight:St,minlen:Mt,nestingEdge:!0}),P.setEdge(yt,q,{weight:St,minlen:Mt,nestingEdge:!0})}),P.parent(X)||P.setEdge(_,tt,{weight:0,minlen:W+K[X]})}function T(P){var _={};function I(L,W){var K=P.children(L);K&&K.length&&A.forEach(K,function(X){I(X,W+1)}),_[L]=W}return A.forEach(P.children(),function(L){I(L,1)}),_}function N(P){return A.reduce(P.edges(),function(_,I){return _+P.edge(I).weight},0)}function D(P){var _=P.graph();P.removeNode(_.nestingRoot),delete _.nestingRoot,A.forEach(P.edges(),function(I){var L=P.edge(I);L.nestingEdge&&P.removeEdge(I)})}},27163:function(Y,Q,S){"use strict";var A=S(72361),G=S(53063);Y.exports={run:F,undo:T};function F(N){N.graph().dummyChains=[],A.forEach(N.edges(),function(D){C(N,D)})}function C(N,D){var P=D.v,_=N.node(P).rank,I=D.w,L=N.node(I).rank,W=D.name,K=N.edge(D),X=K.labelRank;if(L!==_+1){N.removeEdge(D);var et,tt,q;for(q=0,++_;_0;)X%2&&(et+=L[X+1]),X=X-1>>1,L[X]+=K.weight;W+=K.weight*et})),W}},62852:function(Y,Q,S){"use strict";var A=S(72361),G=S(18043),F=S(45456),C=S(86490),T=S(59105),N=S(52205),D=S(76626).Graph,P=S(53063);Y.exports=_;function _(K){var X=P.maxRank(K),et=I(K,A.range(1,X+1),"inEdges"),tt=I(K,A.range(X-1,-1,-1),"outEdges"),q=G(K);W(K,q);for(var it=Number.POSITIVE_INFINITY,at,ut=0,ht=0;ht<4;++ut,++ht){L(ut%2?et:tt,ut%4>=2),q=P.buildLayerMatrix(K);var yt=F(K,q);yt=I.barycenter)&&C(I,L)}}function P(I){return function(L){L.in.push(I),--L.indegree===0&&T.push(L)}}for(;T.length;){var _=T.pop();N.push(_),A.forEach(_.in.reverse(),D(_)),A.forEach(_.out,P(_))}return A.map(A.filter(N,function(I){return!I.merged}),function(I){return A.pick(I,["vs","i","barycenter","weight"])})}function C(T,N){var D=0,P=0;T.weight&&(D+=T.barycenter*T.weight,P+=T.weight),N.weight&&(D+=N.barycenter*N.weight,P+=N.weight),T.vs=N.vs.concat(T.vs),T.barycenter=D/P,T.weight=P,T.i=Math.min(N.i,T.i),N.merged=!0}},86490:function(Y,Q,S){var A=S(72361),G=S(99506),F=S(45926),C=S(1349);Y.exports=T;function T(P,_,I,L){var W=P.children(_),K=P.node(_),X=K?K.borderLeft:void 0,et=K?K.borderRight:void 0,tt={};X&&(W=A.filter(W,function(yt){return yt!==X&&yt!==et}));var q=G(P,W);A.forEach(q,function(yt){if(P.children(yt.v).length){var St=T(P,yt.v,I,L);tt[yt.v]=St,A.has(St,"barycenter")&&D(yt,St)}});var it=F(q,I);N(it,tt);var at=C(it,L);if(X&&(at.vs=A.flatten([X,at.vs,et],!0),P.predecessors(X).length)){var ut=P.node(P.predecessors(X)[0]),ht=P.node(P.predecessors(et)[0]);A.has(at,"barycenter")||(at.barycenter=0,at.weight=0),at.barycenter=(at.barycenter*at.weight+ut.order+ht.order)/(at.weight+2),at.weight+=2}return at}function N(P,_){A.forEach(P,function(I){I.vs=A.flatten(I.vs.map(function(L){return _[L]?_[L].vs:L}),!0)})}function D(P,_){A.isUndefined(P.barycenter)?(P.barycenter=_.barycenter,P.weight=_.weight):(P.barycenter=(P.barycenter*P.weight+_.barycenter*_.weight)/(P.weight+_.weight),P.weight+=_.weight)}},1349:function(Y,Q,S){var A=S(72361),G=S(53063);Y.exports=F;function F(N,D){var P=G.partition(N,function(tt){return A.has(tt,"barycenter")}),_=P.lhs,I=A.sortBy(P.rhs,function(tt){return-tt.i}),L=[],W=0,K=0,X=0;_.sort(T(!!D)),X=C(L,I,X),A.forEach(_,function(tt){X+=tt.vs.length,L.push(tt.vs),W+=tt.barycenter*tt.weight,K+=tt.weight,X=C(L,I,X)});var et={vs:A.flatten(L,!0)};return K&&(et.barycenter=W/K,et.weight=K),et}function C(N,D,P){for(var _;D.length&&(_=A.last(D)).i<=P;)D.pop(),N.push(_.vs),P++;return P}function T(N){return function(D,P){return D.barycenterP.barycenter?1:N?P.i-D.i:D.i-P.i}}},71970:function(Y,Q,S){var A=S(72361);Y.exports=G;function G(T){var N=C(T);A.forEach(T.graph().dummyChains,function(D){for(var P=T.node(D),_=P.edgeObj,I=F(T,N,_.v,_.w),L=I.path,W=I.lca,K=0,X=L[K],et=!0;D!==_.w;){if(P=T.node(D),et){for(;(X=L[K])!==W&&T.node(X).maxRankL||W>N[K].lim));for(X=K,K=P;(K=T.parent(K))!==X;)I.push(K);return{path:_.concat(I.reverse()),lca:X}}function C(T){var N={},D=0;function P(_){var I=D;A.forEach(T.children(_),P),N[_]={low:I,lim:D++}}return A.forEach(T.children(),P),N}},92080:function(Y,Q,S){"use strict";var A=S(72361),G=S(76626).Graph,F=S(53063);Y.exports={positionX:et,findType1Conflicts:C,findType2Conflicts:T,addConflict:D,hasConflict:P,verticalAlignment:_,horizontalCompaction:I,alignCoordinates:K,findSmallestWidthAlignment:W,balance:X};function C(it,at){var ut={};function ht(yt,St){var Mt=0,mt=0,xt=yt.length,kt=A.last(St);return A.forEach(St,function(Wt,zt){var Ht=N(it,Wt),fe=Ht?it.node(Ht).order:xt;(Ht||Wt===kt)&&(A.forEach(St.slice(mt,zt+1),function(we){A.forEach(it.predecessors(we),function(He){var Yn=it.node(He),pi=Yn.order;(pikt)&&D(ut,Ht,Wt)})})}function yt(St,Mt){var mt=-1,xt,kt=0;return A.forEach(Mt,function(Wt,zt){if(it.node(Wt).dummy==="border"){var Ht=it.predecessors(Wt);Ht.length&&(xt=it.node(Ht[0]).order,ht(Mt,kt,zt,mt,xt),kt=zt,mt=xt)}ht(Mt,kt,Mt.length,xt,St.length)}),Mt}return A.reduce(at,yt),ut}function N(it,at){if(it.node(at).dummy)return A.find(it.predecessors(at),function(ut){return it.node(ut).dummy})}function D(it,at,ut){if(at>ut){var ht=at;at=ut,ut=ht}var yt=it[at];yt||(it[at]=yt={}),yt[ut]=!0}function P(it,at,ut){if(at>ut){var ht=at;at=ut,ut=ht}return A.has(it[at],ut)}function _(it,at,ut,ht){var yt={},St={},Mt={};return A.forEach(at,function(mt){A.forEach(mt,function(xt,kt){yt[xt]=xt,St[xt]=xt,Mt[xt]=kt})}),A.forEach(at,function(mt){var xt=-1;A.forEach(mt,function(kt){var Wt=ht(kt);if(Wt.length){Wt=A.sortBy(Wt,function(He){return Mt[He]});for(var zt=(Wt.length-1)/2,Ht=Math.floor(zt),fe=Math.ceil(zt);Ht<=fe;++Ht){var we=Wt[Ht];St[kt]===kt&&xtxt.lim&&(kt=xt,Wt=!0);var zt=A.filter(ht.edges(),function(Ht){return Wt===at(ut,ut.node(Ht.v),kt)&&Wt!==at(ut,ut.node(Ht.w),kt)});return A.minBy(zt,function(Ht){return F(ht,Ht)})}function tt(ut,ht,yt,St){var Mt=yt.v,mt=yt.w;ut.removeEdge(Mt,mt),ut.setEdge(St.v,St.w,{}),W(ut),_(ut,ht),q(ut,ht)}function q(ut,ht){var yt=A.find(ut.nodes(),function(Mt){return!ht.node(Mt).parent}),St=T(ut,yt);St=St.slice(1),A.forEach(St,function(Mt){var mt=ut.node(Mt).parent,xt=ht.edge(Mt,mt),kt=!1;xt||(xt=ht.edge(mt,Mt),kt=!0),ht.node(Mt).rank=ht.node(mt).rank+(kt?xt.minlen:-xt.minlen)})}function it(ut,ht,yt){return ut.hasEdge(ht,yt)}function at(ut,ht,yt){return yt.low<=ht.lim&&ht.lim<=yt.lim}},2416:function(Y,Q,S){"use strict";var A=S(72361);Y.exports={longestPath:G,slack:F};function G(C){var T={};function N(D){var P=C.node(D);if(A.has(T,D))return P.rank;T[D]=!0;var _=A.min(A.map(C.outEdges(D),function(I){return N(I.w)-C.edge(I).minlen}));return(_===Number.POSITIVE_INFINITY||_===void 0||_===null)&&(_=0),P.rank=_}A.forEach(C.sources(),N)}function F(C,T){return C.node(T.w).rank-C.node(T.v).rank-C.edge(T).minlen}},53063:function(Y,Q,S){"use strict";var A=S(72361),G=S(76626).Graph;Y.exports={addDummyNode:F,simplify:C,asNonCompoundGraph:T,successorWeights:N,predecessorWeights:D,intersectRect:P,buildLayerMatrix:_,normalizeRanks:I,removeEmptyRanks:L,addBorderNode:W,maxRank:K,partition:X,time:et,notime:tt};function F(q,it,at,ut){var ht;do ht=A.uniqueId(ut);while(q.hasNode(ht));return at.dummy=it,q.setNode(ht,at),ht}function C(q){var it=new G().setGraph(q.graph());return A.forEach(q.nodes(),function(at){it.setNode(at,q.node(at))}),A.forEach(q.edges(),function(at){var ut=it.edge(at.v,at.w)||{weight:0,minlen:1},ht=q.edge(at);it.setEdge(at.v,at.w,{weight:ut.weight+ht.weight,minlen:Math.max(ut.minlen,ht.minlen)})}),it}function T(q){var it=new G({multigraph:q.isMultigraph()}).setGraph(q.graph());return A.forEach(q.nodes(),function(at){q.children(at).length||it.setNode(at,q.node(at))}),A.forEach(q.edges(),function(at){it.setEdge(at,q.edge(at))}),it}function N(q){var it=A.map(q.nodes(),function(at){var ut={};return A.forEach(q.outEdges(at),function(ht){ut[ht.w]=(ut[ht.w]||0)+q.edge(ht).weight}),ut});return A.zipObject(q.nodes(),it)}function D(q){var it=A.map(q.nodes(),function(at){var ut={};return A.forEach(q.inEdges(at),function(ht){ut[ht.v]=(ut[ht.v]||0)+q.edge(ht).weight}),ut});return A.zipObject(q.nodes(),it)}function P(q,it){var at=q.x,ut=q.y,ht=it.x-at,yt=it.y-ut,St=q.width/2,Mt=q.height/2;if(!ht&&!yt)throw new Error("Not possible to find intersection inside of the rectangle");var mt,xt;return Math.abs(yt)*St>Math.abs(ht)*Mt?(yt<0&&(Mt=-Mt),mt=Mt*ht/yt,xt=Mt):(ht<0&&(St=-St),mt=St,xt=St*yt/ht),{x:at+mt,y:ut+xt}}function _(q){var it=A.map(A.range(K(q)+1),function(){return[]});return A.forEach(q.nodes(),function(at){var ut=q.node(at),ht=ut.rank;A.isUndefined(ht)||(it[ht][ut.order]=at)}),it}function I(q){var it=A.min(A.map(q.nodes(),function(at){return q.node(at).rank}));A.forEach(q.nodes(),function(at){var ut=q.node(at);A.has(ut,"rank")&&(ut.rank-=it)})}function L(q){var it=A.min(A.map(q.nodes(),function(yt){return q.node(yt).rank})),at=[];A.forEach(q.nodes(),function(yt){var St=q.node(yt).rank-it;at[St]||(at[St]=[]),at[St].push(yt)});var ut=0,ht=q.graph().nodeRankFactor;A.forEach(at,function(yt,St){A.isUndefined(yt)&&St%ht!==0?--ut:ut&&A.forEach(yt,function(Mt){q.node(Mt).rank+=ut})})}function W(q,it,at,ut){var ht={width:0,height:0};return arguments.length>=4&&(ht.rank=at,ht.order=ut),F(q,"border",ht,it)}function K(q){return A.max(A.map(q.nodes(),function(it){var at=q.node(it).rank;if(!A.isUndefined(at))return at}))}function X(q,it){var at={lhs:[],rhs:[]};return A.forEach(q,function(ut){it(ut)?at.lhs.push(ut):at.rhs.push(ut)}),at}function et(q,it){var at=A.now();try{return it()}finally{console.log(q+" time: "+(A.now()-at)+"ms")}}function tt(q,it){return it()}},11897:function(Y){Y.exports="0.8.5"},37271:function(Y){"use strict";var Q=Object.prototype.hasOwnProperty,S="~";function A(){}Object.create&&(A.prototype=Object.create(null),new A().__proto__||(S=!1));function G(N,D,P){this.fn=N,this.context=D,this.once=P||!1}function F(N,D,P,_,I){if(typeof P!="function")throw new TypeError("The listener must be a function");var L=new G(P,_||N,I),W=S?S+D:D;return N._events[W]?N._events[W].fn?N._events[W]=[N._events[W],L]:N._events[W].push(L):(N._events[W]=L,N._eventsCount++),N}function C(N,D){--N._eventsCount===0?N._events=new A:delete N._events[D]}function T(){this._events=new A,this._eventsCount=0}T.prototype.eventNames=function(){var D=[],P,_;if(this._eventsCount===0)return D;for(_ in P=this._events)Q.call(P,_)&&D.push(S?_.slice(1):_);return Object.getOwnPropertySymbols?D.concat(Object.getOwnPropertySymbols(P)):D},T.prototype.listeners=function(D){var P=S?S+D:D,_=this._events[P];if(!_)return[];if(_.fn)return[_.fn];for(var I=0,L=_.length,W=new Array(L);I0&&(W=L.removeMin(),K=I[W],K.distance!==Number.POSITIVE_INFINITY);)_(W).forEach(X);return I}},59324:function(Y,Q,S){var A=S(95329),G=S(94558);Y.exports=F;function F(C){return A.filter(G(C),function(T){return T.length>1||T.length===1&&C.hasEdge(T[0],T[0])})}},22893:function(Y,Q,S){var A=S(95329);Y.exports=F;var G=A.constant(1);function F(T,N,D){return C(T,N||G,D||function(P){return T.outEdges(P)})}function C(T,N,D){var P={},_=T.nodes();return _.forEach(function(I){P[I]={},P[I][I]={distance:0},_.forEach(function(L){I!==L&&(P[I][L]={distance:Number.POSITIVE_INFINITY})}),D(I).forEach(function(L){var W=L.v===I?L.w:L.v,K=N(L);P[I][W]={distance:K,predecessor:I}})}),_.forEach(function(I){var L=P[I];_.forEach(function(W){var K=P[W];_.forEach(function(X){var et=K[I],tt=L[X],q=K[X],it=et.distance+tt.distance;it0;){if(I=_.removeMin(),A.has(P,I))D.setEdge(I,P[I]);else{if(W)throw new Error("Input graph is not connected: "+T);W=!0}T.nodeEdges(I).forEach(L)}return D}},94558:function(Y,Q,S){var A=S(95329);Y.exports=G;function G(F){var C=0,T=[],N={},D=[];function P(_){var I=N[_]={onStack:!0,lowlink:C,index:C++};if(T.push(_),F.successors(_).forEach(function(K){A.has(N,K)?N[K].onStack&&(I.lowlink=Math.min(I.lowlink,N[K].index)):(P(K),I.lowlink=Math.min(I.lowlink,N[K].lowlink))}),I.lowlink===I.index){var L=[],W;do W=T.pop(),N[W].onStack=!1,L.push(W);while(_!==W);D.push(L)}}return F.nodes().forEach(function(_){A.has(N,_)||P(_)}),D}},7793:function(Y,Q,S){var A=S(95329);Y.exports=G,G.CycleException=F;function G(C){var T={},N={},D=[];function P(_){if(A.has(N,_))throw new F;A.has(T,_)||(N[_]=!0,T[_]=!0,A.each(C.predecessors(_),P),delete N[_],D.push(_))}if(A.each(C.sinks(),P),A.size(T)!==C.nodeCount())throw new F;return D}function F(){}F.prototype=new Error},36614:function(Y,Q,S){var A=S(95329);Y.exports=G;function G(){this._arr=[],this._keyIndices={}}G.prototype.size=function(){return this._arr.length},G.prototype.keys=function(){return this._arr.map(function(F){return F.key})},G.prototype.has=function(F){return A.has(this._keyIndices,F)},G.prototype.priority=function(F){var C=this._keyIndices[F];if(C!==void 0)return this._arr[C].priority},G.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},G.prototype.add=function(F,C){var T=this._keyIndices;if(F=String(F),!A.has(T,F)){var N=this._arr,D=N.length;return T[F]=D,N.push({key:F,priority:C}),this._decrease(D),!0}return!1},G.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var F=this._arr.pop();return delete this._keyIndices[F.key],this._heapify(0),F.key},G.prototype.decrease=function(F,C){var T=this._keyIndices[F];if(C>this._arr[T].priority)throw new Error("New priority is greater than current priority. Key: "+F+" Old: "+this._arr[T].priority+" New: "+C);this._arr[T].priority=C,this._decrease(T)},G.prototype._heapify=function(F){var C=this._arr,T=2*F,N=T+1,D=F;T>1,!(C[N].priority1?X.setNode(et,W):X.setNode(et)}),this},T.prototype.setNode=function(L,W){return A.has(this._nodes,L)?(arguments.length>1&&(this._nodes[L]=W),this):(this._nodes[L]=arguments.length>1?W:this._defaultNodeLabelFn(L),this._isCompound&&(this._parent[L]=F,this._children[L]={},this._children[F][L]=!0),this._in[L]={},this._preds[L]={},this._out[L]={},this._sucs[L]={},++this._nodeCount,this)},T.prototype.node=function(L){return this._nodes[L]},T.prototype.hasNode=function(L){return A.has(this._nodes,L)},T.prototype.removeNode=function(L){var W=this;if(A.has(this._nodes,L)){var K=function(X){W.removeEdge(W._edgeObjs[X])};delete this._nodes[L],this._isCompound&&(this._removeFromParentsChildList(L),delete this._parent[L],A.each(this.children(L),function(X){W.setParent(X)}),delete this._children[L]),A.each(A.keys(this._in[L]),K),delete this._in[L],delete this._preds[L],A.each(A.keys(this._out[L]),K),delete this._out[L],delete this._sucs[L],--this._nodeCount}return this},T.prototype.setParent=function(L,W){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(A.isUndefined(W))W=F;else{W+="";for(var K=W;!A.isUndefined(K);K=this.parent(K))if(K===L)throw new Error("Setting "+W+" as parent of "+L+" would create a cycle");this.setNode(W)}return this.setNode(L),this._removeFromParentsChildList(L),this._parent[L]=W,this._children[W][L]=!0,this},T.prototype._removeFromParentsChildList=function(L){delete this._children[this._parent[L]][L]},T.prototype.parent=function(L){if(this._isCompound){var W=this._parent[L];if(W!==F)return W}},T.prototype.children=function(L){if(A.isUndefined(L)&&(L=F),this._isCompound){var W=this._children[L];if(W)return A.keys(W)}else{if(L===F)return this.nodes();if(this.hasNode(L))return[]}},T.prototype.predecessors=function(L){var W=this._preds[L];if(W)return A.keys(W)},T.prototype.successors=function(L){var W=this._sucs[L];if(W)return A.keys(W)},T.prototype.neighbors=function(L){var W=this.predecessors(L);if(W)return A.union(W,this.successors(L))},T.prototype.isLeaf=function(L){var W;return this.isDirected()?W=this.successors(L):W=this.neighbors(L),W.length===0},T.prototype.filterNodes=function(L){var W=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});W.setGraph(this.graph());var K=this;A.each(this._nodes,function(tt,q){L(q)&&W.setNode(q,tt)}),A.each(this._edgeObjs,function(tt){W.hasNode(tt.v)&&W.hasNode(tt.w)&&W.setEdge(tt,K.edge(tt))});var X={};function et(tt){var q=K.parent(tt);return q===void 0||W.hasNode(q)?(X[tt]=q,q):q in X?X[q]:et(q)}return this._isCompound&&A.each(W.nodes(),function(tt){W.setParent(tt,et(tt))}),W},T.prototype.setDefaultEdgeLabel=function(L){return A.isFunction(L)||(L=A.constant(L)),this._defaultEdgeLabelFn=L,this},T.prototype.edgeCount=function(){return this._edgeCount},T.prototype.edges=function(){return A.values(this._edgeObjs)},T.prototype.setPath=function(L,W){var K=this,X=arguments;return A.reduce(L,function(et,tt){return X.length>1?K.setEdge(et,tt,W):K.setEdge(et,tt),tt}),this},T.prototype.setEdge=function(){var L,W,K,X,et=!1,tt=arguments[0];typeof tt=="object"&&tt!==null&&"v"in tt?(L=tt.v,W=tt.w,K=tt.name,arguments.length===2&&(X=arguments[1],et=!0)):(L=tt,W=arguments[1],K=arguments[3],arguments.length>2&&(X=arguments[2],et=!0)),L=""+L,W=""+W,A.isUndefined(K)||(K=""+K);var q=P(this._isDirected,L,W,K);if(A.has(this._edgeLabels,q))return et&&(this._edgeLabels[q]=X),this;if(!A.isUndefined(K)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(L),this.setNode(W),this._edgeLabels[q]=et?X:this._defaultEdgeLabelFn(L,W,K);var it=_(this._isDirected,L,W,K);return L=it.v,W=it.w,Object.freeze(it),this._edgeObjs[q]=it,N(this._preds[W],L),N(this._sucs[L],W),this._in[W][q]=it,this._out[L][q]=it,this._edgeCount++,this},T.prototype.edge=function(L,W,K){var X=arguments.length===1?I(this._isDirected,arguments[0]):P(this._isDirected,L,W,K);return this._edgeLabels[X]},T.prototype.hasEdge=function(L,W,K){var X=arguments.length===1?I(this._isDirected,arguments[0]):P(this._isDirected,L,W,K);return A.has(this._edgeLabels,X)},T.prototype.removeEdge=function(L,W,K){var X=arguments.length===1?I(this._isDirected,arguments[0]):P(this._isDirected,L,W,K),et=this._edgeObjs[X];return et&&(L=et.v,W=et.w,delete this._edgeLabels[X],delete this._edgeObjs[X],D(this._preds[W],L),D(this._sucs[L],W),delete this._in[W][X],delete this._out[L][X],this._edgeCount--),this},T.prototype.inEdges=function(L,W){var K=this._in[L];if(K){var X=A.values(K);return W?A.filter(X,function(et){return et.v===W}):X}},T.prototype.outEdges=function(L,W){var K=this._out[L];if(K){var X=A.values(K);return W?A.filter(X,function(et){return et.w===W}):X}},T.prototype.nodeEdges=function(L,W){var K=this.inEdges(L,W);if(K)return K.concat(this.outEdges(L,W))};function N(L,W){L[W]?L[W]++:L[W]=1}function D(L,W){--L[W]||delete L[W]}function P(L,W,K,X){var et=""+W,tt=""+K;if(!L&&et>tt){var q=et;et=tt,tt=q}return et+C+tt+C+(A.isUndefined(X)?G:X)}function _(L,W,K,X){var et=""+W,tt=""+K;if(!L&&et>tt){var q=et;et=tt,tt=q}var it={v:et,w:tt};return X&&(it.name=X),it}function I(L,W){return P(L,W.v,W.w,W.name)}},89224:function(Y,Q,S){Y.exports={Graph:S(6349),version:S(16544)}},17401:function(Y,Q,S){var A=S(95329),G=S(6349);Y.exports={write:F,read:N};function F(D){var P={options:{directed:D.isDirected(),multigraph:D.isMultigraph(),compound:D.isCompound()},nodes:C(D),edges:T(D)};return A.isUndefined(D.graph())||(P.value=A.clone(D.graph())),P}function C(D){return A.map(D.nodes(),function(P){var _=D.node(P),I=D.parent(P),L={v:P};return A.isUndefined(_)||(L.value=_),A.isUndefined(I)||(L.parent=I),L})}function T(D){return A.map(D.edges(),function(P){var _=D.edge(P),I={v:P.v,w:P.w};return A.isUndefined(P.name)||(I.name=P.name),A.isUndefined(_)||(I.value=_),I})}function N(D){var P=new G(D.options).setGraph(D.value);return A.each(D.nodes,function(_){P.setNode(_.v,_.value),_.parent&&P.setParent(_.v,_.parent)}),A.each(D.edges,function(_){P.setEdge({v:_.v,w:_.w,name:_.name},_.value)}),P}},95329:function(Y,Q,S){var A;try{A={clone:S(76833),constant:S(13503),each:S(76934),filter:S(64725),has:S(99946),isArray:S(80744),isEmpty:S(61627),isFunction:S(9363),isUndefined:S(16513),keys:S(55451),map:S(9924),reduce:S(16473),size:S(40617),transform:S(91116),union:S(44065),values:S(81229)}}catch(G){}A||(A=window._),Y.exports=A},16544:function(Y){Y.exports="2.1.8"},34634:function(Y,Q,S){"use strict";S.r(Q),S.d(Q,{isAnyArray:function(){return G}});const A=Object.prototype.toString;function G(F){const C=A.call(F);return C.endsWith("Array]")&&!C.includes("Big")}},55973:function(Y){Y.exports=function(S){return!S||typeof S=="string"?!1:S instanceof Array||Array.isArray(S)||S.length>=0&&(S.splice instanceof Function||Object.getOwnPropertyDescriptor(S,S.length-1)&&S.constructor.name!=="String")}},15584:function(Y,Q,S){var A=S(73893),G=S(33152),F=A(G,"DataView");Y.exports=F},97288:function(Y,Q,S){var A=S(73893),G=S(33152),F=A(G,"Promise");Y.exports=F},23599:function(Y,Q,S){var A=S(73893),G=S(33152),F=A(G,"Set");Y.exports=F},98924:function(Y,Q,S){var A=S(52166),G=S(34776),F=S(40393);function C(T){var N=-1,D=T==null?0:T.length;for(this.__data__=new A;++N-1}Y.exports=G},94874:function(Y){function Q(S,A,G){for(var F=-1,C=S==null?0:S.length;++F0&&N(L)?T>1?F(L,T-1,N,D,P):A(P,L):D||(P[P.length]=L)}return P}Y.exports=F},85605:function(Y,Q,S){var A=S(14018),G=S(55451);function F(C,T){return C&&A(C,T,G)}Y.exports=F},89147:function(Y,Q,S){var A=S(1186),G=S(9171);function F(C,T){T=A(T,C);for(var N=0,D=T.length;C!=null&&NA}Y.exports=Q},3251:function(Y){var Q=Object.prototype,S=Q.hasOwnProperty;function A(G,F){return G!=null&&S.call(G,F)}Y.exports=A},62348:function(Y){function Q(S,A){return S!=null&&A in Object(S)}Y.exports=Q},17424:function(Y,Q,S){var A=S(51533),G=S(8373),F=S(49237);function C(T,N,D){return N===N?F(T,N,D):A(T,G,D)}Y.exports=C},77295:function(Y,Q,S){var A=S(84412),G=S(93913);function F(C,T,N,D,P){return C===T?!0:C==null||T==null||!G(C)&&!G(T)?C!==C&&T!==T:A(C,T,N,D,F,P)}Y.exports=F},84412:function(Y,Q,S){var A=S(91866),G=S(50401),F=S(57710),C=S(4983),T=S(66139),N=S(80744),D=S(57835),P=S(18397),_=1,I="[object Arguments]",L="[object Array]",W="[object Object]",K=Object.prototype,X=K.hasOwnProperty;function et(tt,q,it,at,ut,ht){var yt=N(tt),St=N(q),Mt=yt?L:T(tt),mt=St?L:T(q);Mt=Mt==I?W:Mt,mt=mt==I?W:mt;var xt=Mt==W,kt=mt==W,Wt=Mt==mt;if(Wt&&D(tt)){if(!D(q))return!1;yt=!0,xt=!1}if(Wt&&!xt)return ht||(ht=new A),yt||P(tt)?G(tt,q,it,at,ut,ht):F(tt,q,Mt,it,at,ut,ht);if(!(it&_)){var zt=xt&&X.call(tt,"__wrapped__"),Ht=kt&&X.call(q,"__wrapped__");if(zt||Ht){var fe=zt?tt.value():tt,we=Ht?q.value():q;return ht||(ht=new A),ut(fe,we,it,at,ht)}}return Wt?(ht||(ht=new A),C(tt,q,it,at,ut,ht)):!1}Y.exports=et},55005:function(Y,Q,S){var A=S(66139),G=S(93913),F="[object Map]";function C(T){return G(T)&&A(T)==F}Y.exports=C},51524:function(Y,Q,S){var A=S(91866),G=S(77295),F=1,C=2;function T(N,D,P,_){var I=P.length,L=I,W=!_;if(N==null)return!L;for(N=Object(N);I--;){var K=P[I];if(W&&K[2]?K[1]!==N[K[0]]:!(K[0]in N))return!1}for(;++I=D){var it=I?null:T(_);if(it)return N(it);et=!1,K=C,q=new A}else q=I?[]:tt;t:for(;++WC||P&&_&&L&&!I&&!W||N&&_&&L||!T&&L||!D)return 1;if(!N&&!P&&!W&&F=I)return L;var W=T[N];return L*(W=="desc"?-1:1)}}return F.index-C.index}Y.exports=G},15168:function(Y,Q,S){var A=S(95378),G=S(58966);function F(C,T){return A(C,G(C),T)}Y.exports=F},71678:function(Y,Q,S){var A=S(95378),G=S(66817);function F(C,T){return A(C,G(C),T)}Y.exports=F},49164:function(Y,Q,S){var A=S(24665);function G(F,C){return function(T,N){if(T==null)return T;if(!A(T))return F(T,N);for(var D=T.length,P=C?D:-1,_=Object(T);(C?P--:++P-1?_[I?N[L]:L]:void 0}}Y.exports=C},76106:function(Y,Q,S){var A=S(36121),G=S(8138),F=S(97341);function C(T){return function(N,D,P){return P&&typeof P!="number"&&G(N,D,P)&&(D=P=void 0),N=F(N),D===void 0?(D=N,N=0):D=F(D),P=P===void 0?NX))return!1;var tt=W.get(D),q=W.get(P);if(tt&&q)return tt==P&&q==D;var it=-1,at=!0,ut=_&T?new A:void 0;for(W.set(D,P),W.set(P,D);++it2?_[2]:void 0;for(W&&F(_[0],_[1],W)&&(L=1);++I1&&C(N,D[0],D[1])?D=[]:P>2&&C(D[0],D[1],D[2])&&(D=[D[0]]),G(N,A(D,1),[])});Y.exports=T},4134:function(Y){function Q(){return[]}Y.exports=Q},97341:function(Y,Q,S){var A=S(59406),G=1/0,F=17976931348623157e292;function C(T){if(!T)return T===0?T:0;if(T=A(T),T===G||T===-G){var N=T<0?-1:1;return N*F}return T===T?T:0}Y.exports=C},12824:function(Y,Q,S){var A=S(97341);function G(F){var C=A(F),T=C%1;return C===C?T?C-T:C:0}Y.exports=G},59406:function(Y,Q,S){var A=S(13927),G=S(20816),F=S(45029),C=NaN,T=/^[-+]0x[0-9a-f]+$/i,N=/^0b[01]+$/i,D=/^0o[0-7]+$/i,P=parseInt;function _(I){if(typeof I=="number")return I;if(F(I))return C;if(G(I)){var L=typeof I.valueOf=="function"?I.valueOf():I;I=G(L)?L+"":L}if(typeof I!="string")return I===0?I:+I;I=A(I);var W=N.test(I);return W||D.test(I)?P(I.slice(2),W?2:8):T.test(I)?C:+I}Y.exports=_},44140:function(Y,Q,S){var A=S(50230);function G(F){return F==null?"":A(F)}Y.exports=G},91116:function(Y,Q,S){var A=S(74809),G=S(35024),F=S(85605),C=S(95979),T=S(49217),N=S(80744),D=S(57835),P=S(9363),_=S(20816),I=S(18397);function L(W,K,X){var et=N(W),tt=et||D(W)||I(W);if(K=C(K,4),X==null){var q=W&&W.constructor;tt?X=et?new q:[]:_(W)?X=P(q)?G(T(W)):{}:X={}}return(tt?A:F)(W,function(it,at,ut){return K(X,it,at,ut)}),X}Y.exports=L},44065:function(Y,Q,S){var A=S(9256),G=S(92918),F=S(29098),C=S(41590),T=G(function(N){return F(A(N,1,C,!0))});Y.exports=T},95708:function(Y,Q,S){var A=S(44140),G=0;function F(C){var T=++G;return A(C)+T}Y.exports=F},81229:function(Y,Q,S){var A=S(20720),G=S(55451);function F(C){return C==null?[]:A(C,G(C))}Y.exports=F},65441:function(Y,Q,S){var A=S(60348),G=S(94484);function F(C,T){return G(C||[],T||[],A)}Y.exports=F},34402:function(Y,Q,S){"use strict";S.r(Q),S.d(Q,{default:function(){return C}});var A=S(34634);function G(T){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!(0,A.isAnyArray)(T))throw new TypeError("input must be an array");if(T.length===0)throw new TypeError("input must not be empty");var D=N.fromIndex,P=D===void 0?0:D,_=N.toIndex,I=_===void 0?T.length:_;if(P<0||P>=T.length||!Number.isInteger(P))throw new Error("fromIndex must be a positive integer smaller than length");if(I<=P||I>T.length||!Number.isInteger(I))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var L=T[P],W=P+1;WL&&(L=T[W]);return L}function F(T){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!(0,A.isAnyArray)(T))throw new TypeError("input must be an array");if(T.length===0)throw new TypeError("input must not be empty");var D=N.fromIndex,P=D===void 0?0:D,_=N.toIndex,I=_===void 0?T.length:_;if(P<0||P>=T.length||!Number.isInteger(P))throw new Error("fromIndex must be a positive integer smaller than length");if(I<=P||I>T.length||!Number.isInteger(I))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var L=T[P],W=P+1;W1&&arguments[1]!==void 0?arguments[1]:{};if((0,A.isAnyArray)(T)){if(T.length===0)throw new TypeError("input must not be empty")}else throw new TypeError("input must be an array");var D;if(N.output!==void 0){if(!(0,A.isAnyArray)(N.output))throw new TypeError("output option must be an array if specified");D=N.output}else D=new Array(T.length);var P=F(T),_=G(T);if(P===_)throw new RangeError("minimum and maximum input values are equal. Cannot rescale a constant array");var I=N.min,L=I===void 0?N.autoMinMax?P:0:I,W=N.max,K=W===void 0?N.autoMinMax?_:1:W;if(L>=K)throw new RangeError("min option must be smaller than max option");for(var X=(K-L)/(_-P),et=0;et{}};function A(){for(var N=0,D=arguments.length,P={},_;N=0&&(_=P.slice(I+1),P=P.slice(0,I)),P&&!D.hasOwnProperty(P))throw new Error("unknown type: "+P);return{type:P,name:_}})}G.prototype=A.prototype={constructor:G,on:function(N,D){var P=this._,_=F(N+"",P),I,L=-1,W=_.length;if(arguments.length<2){for(;++L0)for(var P=new Array(I),_=0,I,L;_=(it=(W+et)/2))?W=it:et=it,(mt=N>=(at=(K+tt)/2))?K=at:tt=at,(xt=D>=(ut=(X+q)/2))?X=ut:q=ut,_=I,!(I=I[kt=xt<<2|mt<<1|Mt]))return _[kt]=L,C;if(ht=+C._x.call(null,I.data),yt=+C._y.call(null,I.data),St=+C._z.call(null,I.data),T===ht&&N===yt&&D===St)return L.next=I,_?_[kt]=L:C._root=L,C;do _=_?_[kt]=new Array(8):C._root=new Array(8),(Mt=T>=(it=(W+et)/2))?W=it:et=it,(mt=N>=(at=(K+tt)/2))?K=at:tt=at,(xt=D>=(ut=(X+q)/2))?X=ut:q=ut;while((kt=xt<<2|mt<<1|Mt)===(Wt=(St>=ut)<<2|(yt>=at)<<1|ht>=it));return _[Wt]=I,_[kt]=L,C}function F(C){Array.isArray(C)||(C=Array.from(C));const T=C.length,N=new Float64Array(T),D=new Float64Array(T),P=new Float64Array(T);let _=1/0,I=1/0,L=1/0,W=-1/0,K=-1/0,X=-1/0;for(let et=0,tt,q,it,at;etW&&(W=q),itK&&(K=it),atX&&(X=at));if(_>W||I>K||L>X)return this;this.cover(_,I,L).cover(W,K,X);for(let et=0;etG||G>=P||N>F||F>=_||D>C||C>=I;)switch(X=(Cq||(W=yt.y0)>it||(K=yt.z0)>at||(X=yt.x1)=xt)<<2|(C>=mt)<<1|F>=Mt)&&(yt=ut[ut.length-1],ut[ut.length-1]=ut[ut.length-1-St],ut[ut.length-1-St]=yt)}else{var kt=F-+this._x.call(null,ht.data),Wt=C-+this._y.call(null,ht.data),zt=T-+this._z.call(null,ht.data),Ht=kt*kt+Wt*Wt+zt*zt;if(HtMath.sqrt(is(F-N,2)+is(C-D,2)+is(T-P,2));function G(F,C,T,N){const D=[],P=F-N,_=C-N,I=T-N,L=F+N,W=C+N,K=T+N;return this.visit((X,et,tt,q,it,at,ut)=>{if(!X.length)do{const ht=X.data;A(F,C,T,this._x(ht),this._y(ht),this._z(ht))<=N&&D.push(ht)}while(X=X.next);return et>L||tt>W||q>K||it=(it=(_+W)/2))?_=it:W=it,(yt=tt>=(at=(I+K)/2))?I=at:K=at,(St=q>=(ut=(L+X)/2))?L=ut:X=ut,C=T,!(T=T[Mt=St<<2|yt<<1|ht]))return this;if(!T.length)break;(C[Mt+1&7]||C[Mt+2&7]||C[Mt+3&7]||C[Mt+4&7]||C[Mt+5&7]||C[Mt+6&7]||C[Mt+7&7])&&(N=C,mt=Mt)}for(;T.data!==F;)if(D=T,!(T=T.next))return this;return(P=T.next)&&delete T.next,D?(P?D.next=P:delete D.next,this):C?(P?C[Mt]=P:delete C[Mt],(T=C[0]||C[1]||C[2]||C[3]||C[4]||C[5]||C[6]||C[7])&&T===(C[7]||C[6]||C[5]||C[4]||C[3]||C[2]||C[1]||C[0])&&!T.length&&(N?N[mt]=T:this._root=T),this):(this._root=P,this)}function G(F){for(var C=0,T=F.length;C=(et=(L+K)/2))?L=et:K=et,(ut=N>=(tt=(W+X)/2))?W=tt:X=tt,P=_,!(_=_[ht=ut<<1|at]))return P[ht]=I,C;if(q=+C._x.call(null,_.data),it=+C._y.call(null,_.data),T===q&&N===it)return I.next=_,P?P[ht]=I:C._root=I,C;do P=P?P[ht]=new Array(4):C._root=new Array(4),(at=T>=(et=(L+K)/2))?L=et:K=et,(ut=N>=(tt=(W+X)/2))?W=tt:X=tt;while((ht=ut<<1|at)===(yt=(it>=tt)<<1|q>=et));return P[yt]=_,P[ht]=I,C}function F(C){var T,N,D=C.length,P,_,I=new Array(D),L=new Array(D),W=1/0,K=1/0,X=-1/0,et=-1/0;for(N=0;NX&&(X=P),_et&&(et=_));if(W>X||K>et)return this;for(this.cover(W,K).cover(X,et),N=0;NG||G>=N||T>F||F>=D;)switch(L=(FK||(I=q.y0)>X||(L=q.x1)=ut)<<1|F>=at)&&(q=et[et.length-1],et[et.length-1]=et[et.length-1-it],et[et.length-1-it]=q)}else{var ht=F-+this._x.call(null,tt.data),yt=C-+this._y.call(null,tt.data),St=ht*ht+yt*yt;if(St=(et=(_+L)/2))?_=et:L=et,(it=X>=(tt=(I+W)/2))?I=tt:W=tt,C=T,!(T=T[at=it<<1|q]))return this;if(!T.length)break;(C[at+1&3]||C[at+2&3]||C[at+3&3])&&(N=C,ut=at)}for(;T.data!==F;)if(D=T,!(T=T.next))return this;return(P=T.next)&&delete T.next,D?(P?D.next=P:delete D.next,this):C?(P?C[at]=P:delete C[at],(T=C[0]||C[1]||C[2]||C[3])&&T===(C[3]||C[2]||C[1]||C[0])&&!T.length&&(N?N[ut]=T:this._root=T),this):(this._root=P,this)}function G(F){for(var C=0,T=F.length;C=0&&ht._call.call(void 0,yt),ht=ht._next;--A}function q(){P=(D=I.now())+_,A=G=0;try{tt()}finally{A=0,at(),P=0}}function it(){var ht=I.now(),yt=ht-D;yt>C&&(_-=yt,D=ht)}function at(){for(var ht,yt=T,St,Mt=1/0;yt;)yt._call?(Mt>yt._time&&(Mt=yt._time),ht=yt,yt=yt._next):(St=yt._next,yt._next=null,yt=ht?ht._next=St:T=St);N=ht,ut(Mt)}function ut(ht){if(!A){G&&(G=clearTimeout(G));var yt=ht-P;yt>24?(ht<1/0&&(G=setTimeout(q,ht-I.now()-_)),F&&(F=clearInterval(F))):(F||(D=I.now(),F=setInterval(it,C)),A=1,L(q))}}},80813:function(Y,Q,S){"use strict";S.d(Q,{CR:function(){return q},Jh:function(){return K},Q_:function(){return Ht},XA:function(){return tt},ZT:function(){return G},_T:function(){return C},ev:function(){return ut},mG:function(){return W},pi:function(){return F},pr:function(){return at}});var A=function(Rt,_t){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(Bt,dt){Bt.__proto__=dt}||function(Bt,dt){for(var wt in dt)Object.prototype.hasOwnProperty.call(dt,wt)&&(Bt[wt]=dt[wt])},A(Rt,_t)};function G(Rt,_t){if(typeof _t!="function"&&_t!==null)throw new TypeError("Class extends value "+String(_t)+" is not a constructor or null");A(Rt,_t);function Bt(){this.constructor=Rt}Rt.prototype=_t===null?Object.create(_t):(Bt.prototype=_t.prototype,new Bt)}var F=function(){return F=Object.assign||function(_t){for(var Bt,dt=1,wt=arguments.length;dt=0;ve--)(Zt=Rt[ve])&&(Ot=(wt<3?Zt(Ot):wt>3?Zt(_t,Bt,Ot):Zt(_t,Bt))||Ot);return wt>3&&Ot&&Object.defineProperty(_t,Bt,Ot),Ot}function N(Rt,_t){return function(Bt,dt){_t(Bt,dt,Rt)}}function D(Rt,_t,Bt,dt,wt,Ot){function Zt(gr){if(gr!==void 0&&typeof gr!="function")throw new TypeError("Function expected");return gr}for(var ve=dt.kind,Ie=ve==="getter"?"get":ve==="setter"?"set":"value",ge=!_t&&Rt?dt.static?Rt:Rt.prototype:null,Ne=_t||(ge?Object.getOwnPropertyDescriptor(ge,dt.name):{}),Ze,fn=!1,Oe=Bt.length-1;Oe>=0;Oe--){var Se={};for(var ye in dt)Se[ye]=ye==="access"?{}:dt[ye];for(var ye in dt.access)Se.access[ye]=dt.access[ye];Se.addInitializer=function(gr){if(fn)throw new TypeError("Cannot add initializers after decoration has completed");Ot.push(Zt(gr||null))};var ke=(0,Bt[Oe])(ve==="accessor"?{get:Ne.get,set:Ne.set}:Ne[Ie],Se);if(ve==="accessor"){if(ke===void 0)continue;if(ke===null||typeof ke!="object")throw new TypeError("Object expected");(Ze=Zt(ke.get))&&(Ne.get=Ze),(Ze=Zt(ke.set))&&(Ne.set=Ze),(Ze=Zt(ke.init))&&wt.unshift(Ze)}else(Ze=Zt(ke))&&(ve==="field"?wt.unshift(Ze):Ne[Ie]=Ze)}ge&&Object.defineProperty(ge,dt.name,Ne),fn=!0}function P(Rt,_t,Bt){for(var dt=arguments.length>2,wt=0;wt<_t.length;wt++)Bt=dt?_t[wt].call(Rt,Bt):_t[wt].call(Rt);return dt?Bt:void 0}function _(Rt){return typeof Rt=="symbol"?Rt:"".concat(Rt)}function I(Rt,_t,Bt){return typeof _t=="symbol"&&(_t=_t.description?"[".concat(_t.description,"]"):""),Object.defineProperty(Rt,"name",{configurable:!0,value:Bt?"".concat(Bt," ",_t):_t})}function L(Rt,_t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(Rt,_t)}function W(Rt,_t,Bt,dt){function wt(Ot){return Ot instanceof Bt?Ot:new Bt(function(Zt){Zt(Ot)})}return new(Bt||(Bt=Promise))(function(Ot,Zt){function ve(Ne){try{ge(dt.next(Ne))}catch(Ze){Zt(Ze)}}function Ie(Ne){try{ge(dt.throw(Ne))}catch(Ze){Zt(Ze)}}function ge(Ne){Ne.done?Ot(Ne.value):wt(Ne.value).then(ve,Ie)}ge((dt=dt.apply(Rt,_t||[])).next())})}function K(Rt,_t){var Bt={label:0,sent:function(){if(Ot[0]&1)throw Ot[1];return Ot[1]},trys:[],ops:[]},dt,wt,Ot,Zt=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return Zt.next=ve(0),Zt.throw=ve(1),Zt.return=ve(2),typeof Symbol=="function"&&(Zt[Symbol.iterator]=function(){return this}),Zt;function ve(ge){return function(Ne){return Ie([ge,Ne])}}function Ie(ge){if(dt)throw new TypeError("Generator is already executing.");for(;Zt&&(Zt=0,ge[0]&&(Bt=0)),Bt;)try{if(dt=1,wt&&(Ot=ge[0]&2?wt.return:ge[0]?wt.throw||((Ot=wt.return)&&Ot.call(wt),0):wt.next)&&!(Ot=Ot.call(wt,ge[1])).done)return Ot;switch(wt=0,Ot&&(ge=[ge[0]&2,Ot.value]),ge[0]){case 0:case 1:Ot=ge;break;case 4:return Bt.label++,{value:ge[1],done:!1};case 5:Bt.label++,wt=ge[1],ge=[0];continue;case 7:ge=Bt.ops.pop(),Bt.trys.pop();continue;default:if(Ot=Bt.trys,!(Ot=Ot.length>0&&Ot[Ot.length-1])&&(ge[0]===6||ge[0]===2)){Bt=0;continue}if(ge[0]===3&&(!Ot||ge[1]>Ot[0]&&ge[1]=Rt.length&&(Rt=void 0),{value:Rt&&Rt[dt++],done:!Rt}}};throw new TypeError(_t?"Object is not iterable.":"Symbol.iterator is not defined.")}function q(Rt,_t){var Bt=typeof Symbol=="function"&&Rt[Symbol.iterator];if(!Bt)return Rt;var dt=Bt.call(Rt),wt,Ot=[],Zt;try{for(;(_t===void 0||_t-- >0)&&!(wt=dt.next()).done;)Ot.push(wt.value)}catch(ve){Zt={error:ve}}finally{try{wt&&!wt.done&&(Bt=dt.return)&&Bt.call(dt)}finally{if(Zt)throw Zt.error}}return Ot}function it(){for(var Rt=[],_t=0;_t1||Ie(Oe,ye)})},Se&&(wt[Oe]=Se(wt[Oe])))}function Ie(Oe,Se){try{ge(dt[Oe](Se))}catch(ye){fn(Ot[0][3],ye)}}function ge(Oe){Oe.value instanceof ht?Promise.resolve(Oe.value.v).then(Ne,Ze):fn(Ot[0][2],Oe)}function Ne(Oe){Ie("next",Oe)}function Ze(Oe){Ie("throw",Oe)}function fn(Oe,Se){Oe(Se),Ot.shift(),Ot.length&&Ie(Ot[0][0],Ot[0][1])}}function St(Rt){var _t,Bt;return _t={},dt("next"),dt("throw",function(wt){throw wt}),dt("return"),_t[Symbol.iterator]=function(){return this},_t;function dt(wt,Ot){_t[wt]=Rt[wt]?function(Zt){return(Bt=!Bt)?{value:ht(Rt[wt](Zt)),done:!1}:Ot?Ot(Zt):Zt}:Ot}}function Mt(Rt){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var _t=Rt[Symbol.asyncIterator],Bt;return _t?_t.call(Rt):(Rt=typeof tt=="function"?tt(Rt):Rt[Symbol.iterator](),Bt={},dt("next"),dt("throw"),dt("return"),Bt[Symbol.asyncIterator]=function(){return this},Bt);function dt(Ot){Bt[Ot]=Rt[Ot]&&function(Zt){return new Promise(function(ve,Ie){Zt=Rt[Ot](Zt),wt(ve,Ie,Zt.done,Zt.value)})}}function wt(Ot,Zt,ve,Ie){Promise.resolve(Ie).then(function(ge){Ot({value:ge,done:ve})},Zt)}}function mt(Rt,_t){return Object.defineProperty?Object.defineProperty(Rt,"raw",{value:_t}):Rt.raw=_t,Rt}var xt=Object.create?function(Rt,_t){Object.defineProperty(Rt,"default",{enumerable:!0,value:_t})}:function(Rt,_t){Rt.default=_t},kt=function(Rt){return kt=Object.getOwnPropertyNames||function(_t){var Bt=[];for(var dt in _t)Object.prototype.hasOwnProperty.call(_t,dt)&&(Bt[Bt.length]=dt);return Bt},kt(Rt)};function Wt(Rt){if(Rt&&Rt.__esModule)return Rt;var _t={};if(Rt!=null)for(var Bt=kt(Rt),dt=0;dt