!(function(){var cV=Object.defineProperty,hV=Object.defineProperties;var fV=Object.getOwnPropertyDescriptors;var oA=Object.getOwnPropertySymbols;var dV=Object.prototype.hasOwnProperty,vV=Object.prototype.propertyIsEnumerable;var $c=Math.pow,Fy=(Q,re,w)=>re in Q?cV(Q,re,{enumerable:!0,configurable:!0,writable:!0,value:w}):Q[re]=w,mu=(Q,re)=>{for(var w in re||(re={}))dV.call(re,w)&&Fy(Q,w,re[w]);if(oA)for(var w of oA(re))vV.call(re,w)&&Fy(Q,w,re[w]);return Q},jy=(Q,re)=>hV(Q,fV(re));var Jn=(Q,re,w)=>Fy(Q,typeof re!="symbol"?re+"":re,w);(self.webpackChunk=self.webpackChunk||[]).push([[2519],{65051:function(Q,re,w){"use strict";w.d(re,{kJ:function(){return ng},RN:function(){return WW}});var M={};w.r(M),w.d(M,{add:function(){return mA},adjoint:function(){return wr},clone:function(){return Tn},copy:function(){return _n},create:function(){return mt},determinant:function(){return Lr},equals:function(){return xA},exactEquals:function(){return wg},frob:function(){return pA},fromQuat:function(){return ku},fromQuat2:function(){return lA},fromRotation:function(){return Tu},fromRotationTranslation:function(){return Uy},fromRotationTranslationScale:function(){return uA},fromRotationTranslationScaleOrigin:function(){return vs},fromScaling:function(){return vi},fromTranslation:function(){return Dr},fromValues:function(){return di},fromXRotation:function(){return Au},fromYRotation:function(){return yg},fromZRotation:function(){return Ou},frustum:function(){return cA},getRotation:function(){return bo},getScaling:function(){return Wa},getTranslation:function(){return yo},identity:function(){return Zn},invert:function(){return Ot},lookAt:function(){return Eg},mul:function(){return Pg},multiply:function(){return Ut},multiplyScalar:function(){return yA},multiplyScalarAndAdd:function(){return bA},ortho:function(){return bg},orthoNO:function(){return Ky},orthoZO:function(){return xg},perspective:function(){return hA},perspectiveFromFieldOfView:function(){return dA},perspectiveNO:function(){return Zy},perspectiveZO:function(){return fA},rotate:function(){return pg},rotateX:function(){return Mu},rotateY:function(){return Su},rotateZ:function(){return mg},scale:function(){return rh},set:function(){return Hn},str:function(){return gA},sub:function(){return EA},subtract:function(){return Qy},targetTo:function(){return vA},translate:function(){return gn},transpose:function(){return Oi}});var G={};w.r(G),w.d(G,{circle:function(){return f6},diamond:function(){return d6},rect:function(){return g6},simple:function(){return m6},triangle:function(){return Gw},triangleRect:function(){return p6},vee:function(){return v6}});function z(r){"@babel/helpers - typeof";return z=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},z(r)}function I(r,e){if(z(r)!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var n=t.call(r,e||"default");if(z(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function R(r){var e=I(r,"string");return z(e)=="symbol"?e:e+""}function L(r,e,t){return(e=R(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function B(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),t.push.apply(t,n)}return t}function D(r){for(var e=1;er.length)&&(e=r.length);for(var t=0,n=Array(e);t0&&(a=1/Math.sqrt(a)),r[0]=e[0]*a,r[1]=e[1]*a,r[2]=e[2]*a,r}function dn(r,e){return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]}function Yi(r,e,t){var n=e[0],i=e[1],a=e[2],s=t[0],o=t[1],l=t[2];return r[0]=i*l-a*o,r[1]=a*s-n*l,r[2]=n*o-i*s,r}function Ha(r,e,t,n){var i=e[0],a=e[1],s=e[2];return r[0]=i+n*(t[0]-i),r[1]=a+n*(t[1]-a),r[2]=s+n*(t[2]-s),r}function yu(r,e,t,n,i,a){var s=a*a,o=s*(2*a-3)+1,l=s*(a-2)+a,u=s*(a-1),c=s*(3-2*a);return r[0]=e[0]*o+t[0]*l+n[0]*u+i[0]*c,r[1]=e[1]*o+t[1]*l+n[1]*u+i[1]*c,r[2]=e[2]*o+t[2]*l+n[2]*u+i[2]*c,r}function fs(r,e,t,n,i,a){var s=1-a,o=s*s,l=a*a,u=o*s,c=3*a*o,h=3*l*s,f=l*a;return r[0]=e[0]*u+t[0]*c+n[0]*h+i[0]*f,r[1]=e[1]*u+t[1]*c+n[1]*h+i[1]*f,r[2]=e[2]*u+t[2]*c+n[2]*h+i[2]*f,r}function bu(r,e){e=e||1;var t=glMatrix.RANDOM()*2*Math.PI,n=glMatrix.RANDOM()*2-1,i=Math.sqrt(1-n*n)*e;return r[0]=Math.cos(t)*i,r[1]=Math.sin(t)*i,r[2]=n*e,r}function Dn(r,e,t){var n=e[0],i=e[1],a=e[2],s=t[3]*n+t[7]*i+t[11]*a+t[15];return s=s||1,r[0]=(t[0]*n+t[4]*i+t[8]*a+t[12])/s,r[1]=(t[1]*n+t[5]*i+t[9]*a+t[13])/s,r[2]=(t[2]*n+t[6]*i+t[10]*a+t[14])/s,r}function ds(r,e,t){var n=e[0],i=e[1],a=e[2];return r[0]=n*t[0]+i*t[3]+a*t[6],r[1]=n*t[1]+i*t[4]+a*t[7],r[2]=n*t[2]+i*t[5]+a*t[8],r}function mo(r,e,t){var n=t[0],i=t[1],a=t[2],s=t[3],o=e[0],l=e[1],u=e[2],c=i*u-a*l,h=a*o-n*u,f=n*l-i*o,d=i*f-a*h,v=a*c-n*f,g=n*h-i*c,p=s*2;return c*=p,h*=p,f*=p,d*=2,v*=2,g*=2,r[0]=o+c+d,r[1]=l+h+v,r[2]=u+f+g,r}function ga(r,e,t,n){var i=[],a=[];return i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],a[0]=i[0],a[1]=i[1]*Math.cos(n)-i[2]*Math.sin(n),a[2]=i[1]*Math.sin(n)+i[2]*Math.cos(n),r[0]=a[0]+t[0],r[1]=a[1]+t[1],r[2]=a[2]+t[2],r}function pa(r,e,t,n){var i=[],a=[];return i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],a[0]=i[2]*Math.sin(n)+i[0]*Math.cos(n),a[1]=i[1],a[2]=i[2]*Math.cos(n)-i[0]*Math.sin(n),r[0]=a[0]+t[0],r[1]=a[1]+t[1],r[2]=a[2]+t[2],r}function fi(r,e,t,n){var i=[],a=[];return i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],a[0]=i[0]*Math.cos(n)-i[1]*Math.sin(n),a[1]=i[0]*Math.sin(n)+i[1]*Math.cos(n),a[2]=i[2],r[0]=a[0]+t[0],r[1]=a[1]+t[1],r[2]=a[2]+t[2],r}function Xy(r,e){var t=r[0],n=r[1],i=r[2],a=e[0],s=e[1],o=e[2],l=Math.sqrt(t*t+n*n+i*i),u=Math.sqrt(a*a+s*s+o*o),c=l*u,h=c&&dn(r,e)/c;return Math.acos(Math.min(Math.max(h,-1),1))}function xu(r){return r[0]=0,r[1]=0,r[2]=0,r}function Xa(r){return"vec3("+r[0]+", "+r[1]+", "+r[2]+")"}function eh(r,e){return r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]}function Rr(r,e){var t=r[0],n=r[1],i=r[2],a=e[0],s=e[1],o=e[2];return Math.abs(t-a)<=at*Math.max(1,Math.abs(t),Math.abs(a))&&Math.abs(n-s)<=at*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(i-o)<=at*Math.max(1,Math.abs(i),Math.abs(o))}var th=xt,cg=null,Eu=null,ll=Sr,Wy=null,wu=ze,Vy=null,Yy=function(){var r=Me();return function(e,t,n,i,a,s){var o,l;for(t||(t=3),n||(n=0),i?l=Math.min(i*t+n,e.length):l=e.length,o=n;o0&&(s=1/Math.sqrt(s)),r[0]=t*s,r[1]=n*s,r[2]=i*s,r[3]=a*s,r}function Fe(r,e){return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]+r[3]*e[3]}function Ue(r,e,t,n){var i=t[0]*n[1]-t[1]*n[0],a=t[0]*n[2]-t[2]*n[0],s=t[0]*n[3]-t[3]*n[0],o=t[1]*n[2]-t[2]*n[1],l=t[1]*n[3]-t[3]*n[1],u=t[2]*n[3]-t[3]*n[2],c=e[0],h=e[1],f=e[2],d=e[3];return r[0]=h*u-f*l+d*o,r[1]=-(c*u)+f*s-d*a,r[2]=c*l-h*s+d*i,r[3]=-(c*o)+h*a-f*i,r}function dt(r,e,t,n){var i=e[0],a=e[1],s=e[2],o=e[3];return r[0]=i+n*(t[0]-i),r[1]=a+n*(t[1]-a),r[2]=s+n*(t[2]-s),r[3]=o+n*(t[3]-o),r}function Se(r,e){e=e||1;var t,n,i,a,s,o;do t=glMatrix.RANDOM()*2-1,n=glMatrix.RANDOM()*2-1,s=t*t+n*n;while(s>=1);do i=glMatrix.RANDOM()*2-1,a=glMatrix.RANDOM()*2-1,o=i*i+a*a;while(o>=1);var l=Math.sqrt((1-s)/o);return r[0]=e*t,r[1]=e*n,r[2]=e*i*l,r[3]=e*a*l,r}function Ze(r,e,t){var n=e[0],i=e[1],a=e[2],s=e[3];return r[0]=t[0]*n+t[4]*i+t[8]*a+t[12]*s,r[1]=t[1]*n+t[5]*i+t[9]*a+t[13]*s,r[2]=t[2]*n+t[6]*i+t[10]*a+t[14]*s,r[3]=t[3]*n+t[7]*i+t[11]*a+t[15]*s,r}function Pt(r,e,t){var n=e[0],i=e[1],a=e[2],s=t[0],o=t[1],l=t[2],u=t[3],c=u*n+o*a-l*i,h=u*i+l*n-s*a,f=u*a+s*i-o*n,d=-s*n-o*i-l*a;return r[0]=c*u+d*-s+h*-l-f*-o,r[1]=h*u+d*-o+f*-s-c*-l,r[2]=f*u+d*-l+c*-o-h*-s,r[3]=e[3],r}function Lt(r){return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r}function Bt(r){return"vec4("+r[0]+", "+r[1]+", "+r[2]+", "+r[3]+")"}function In(r,e){return r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]&&r[3]===e[3]}function At(r,e){var t=r[0],n=r[1],i=r[2],a=r[3],s=e[0],o=e[1],l=e[2],u=e[3];return Math.abs(t-s)<=at*Math.max(1,Math.abs(t),Math.abs(s))&&Math.abs(n-o)<=at*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(i-l)<=at*Math.max(1,Math.abs(i),Math.abs(l))&&Math.abs(a-u)<=at*Math.max(1,Math.abs(a),Math.abs(u))}var kt=null,Sn=null,Ce=null,Qe=null,gt=null,$e=null,Gn=null,mn=function(){var r=hr();return function(e,t,n,i,a,s){var o,l;for(t||(t=4),n||(n=0),i?l=Math.min(i*t+n,e.length):l=e.length,o=n;o0?(t[0]=(o*s+c*n+l*a-u*i)*2/h,t[1]=(l*s+c*i+u*n-o*a)*2/h,t[2]=(u*s+c*a+o*i-l*n)*2/h):(t[0]=(o*s+c*n+l*a-u*i)*2,t[1]=(l*s+c*i+u*n-o*a)*2,t[2]=(u*s+c*a+o*i-l*n)*2),Uy(r,e,t),r}function yo(r,e){return r[0]=e[12],r[1]=e[13],r[2]=e[14],r}function Wa(r,e){var t=e[0],n=e[1],i=e[2],a=e[4],s=e[5],o=e[6],l=e[8],u=e[9],c=e[10];return r[0]=Math.hypot(t,n,i),r[1]=Math.hypot(a,s,o),r[2]=Math.hypot(l,u,c),r}function bo(r,e){var t=new bt(3);Wa(t,e);var n=1/t[0],i=1/t[1],a=1/t[2],s=e[0]*n,o=e[1]*i,l=e[2]*a,u=e[4]*n,c=e[5]*i,h=e[6]*a,f=e[8]*n,d=e[9]*i,v=e[10]*a,g=s+c+v,p=0;return g>0?(p=Math.sqrt(g+1)*2,r[3]=.25*p,r[0]=(h-d)/p,r[1]=(f-l)/p,r[2]=(o-u)/p):s>c&&s>v?(p=Math.sqrt(1+s-c-v)*2,r[3]=(h-d)/p,r[0]=.25*p,r[1]=(o+u)/p,r[2]=(f+l)/p):c>v?(p=Math.sqrt(1+c-s-v)*2,r[3]=(f-l)/p,r[0]=(o+u)/p,r[1]=.25*p,r[2]=(h+d)/p):(p=Math.sqrt(1+v-s-c)*2,r[3]=(o-u)/p,r[0]=(f+l)/p,r[1]=(h+d)/p,r[2]=.25*p),r}function uA(r,e,t,n){var i=e[0],a=e[1],s=e[2],o=e[3],l=i+i,u=a+a,c=s+s,h=i*l,f=i*u,d=i*c,v=a*u,g=a*c,p=s*c,m=o*l,b=o*u,x=o*c,O=n[0],T=n[1],S=n[2];return r[0]=(1-(v+p))*O,r[1]=(f+x)*O,r[2]=(d-b)*O,r[3]=0,r[4]=(f-x)*T,r[5]=(1-(h+p))*T,r[6]=(g+m)*T,r[7]=0,r[8]=(d+b)*S,r[9]=(g-m)*S,r[10]=(1-(h+v))*S,r[11]=0,r[12]=t[0],r[13]=t[1],r[14]=t[2],r[15]=1,r}function vs(r,e,t,n,i){var a=e[0],s=e[1],o=e[2],l=e[3],u=a+a,c=s+s,h=o+o,f=a*u,d=a*c,v=a*h,g=s*c,p=s*h,m=o*h,b=l*u,x=l*c,O=l*h,T=n[0],S=n[1],k=n[2],C=i[0],W=i[1],U=i[2],J=(1-(g+m))*T,te=(d+O)*T,ie=(v-x)*T,ae=(d-O)*S,ve=(1-(f+m))*S,Z=(p+b)*S,H=(v+x)*k,X=(p-b)*k,q=(1-(f+g))*k;return r[0]=J,r[1]=te,r[2]=ie,r[3]=0,r[4]=ae,r[5]=ve,r[6]=Z,r[7]=0,r[8]=H,r[9]=X,r[10]=q,r[11]=0,r[12]=t[0]+C-(J*C+ae*W+H*U),r[13]=t[1]+W-(te*C+ve*W+X*U),r[14]=t[2]+U-(ie*C+Z*W+q*U),r[15]=1,r}function ku(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=t+t,o=n+n,l=i+i,u=t*s,c=n*s,h=n*o,f=i*s,d=i*o,v=i*l,g=a*s,p=a*o,m=a*l;return r[0]=1-h-v,r[1]=c+m,r[2]=f-p,r[3]=0,r[4]=c-m,r[5]=1-u-v,r[6]=d+g,r[7]=0,r[8]=f+p,r[9]=d-g,r[10]=1-u-h,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function cA(r,e,t,n,i,a,s){var o=1/(t-e),l=1/(i-n),u=1/(a-s);return r[0]=a*2*o,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=a*2*l,r[6]=0,r[7]=0,r[8]=(t+e)*o,r[9]=(i+n)*l,r[10]=(s+a)*u,r[11]=-1,r[12]=0,r[13]=0,r[14]=s*a*2*u,r[15]=0,r}function Zy(r,e,t,n,i){var a=1/Math.tan(e/2),s;return r[0]=a/t,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=a,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[11]=-1,r[12]=0,r[13]=0,r[15]=0,i!=null&&i!==1/0?(s=1/(n-i),r[10]=(i+n)*s,r[14]=2*i*n*s):(r[10]=-1,r[14]=-2*n),r}var hA=Zy;function fA(r,e,t,n,i){var a=1/Math.tan(e/2),s;return r[0]=a/t,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=a,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[11]=-1,r[12]=0,r[13]=0,r[15]=0,i!=null&&i!==1/0?(s=1/(n-i),r[10]=i*s,r[14]=i*n*s):(r[10]=-1,r[14]=-n),r}function dA(r,e,t,n){var i=Math.tan(e.upDegrees*Math.PI/180),a=Math.tan(e.downDegrees*Math.PI/180),s=Math.tan(e.leftDegrees*Math.PI/180),o=Math.tan(e.rightDegrees*Math.PI/180),l=2/(s+o),u=2/(i+a);return r[0]=l,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=u,r[6]=0,r[7]=0,r[8]=-((s-o)*l*.5),r[9]=(i-a)*u*.5,r[10]=n/(t-n),r[11]=-1,r[12]=0,r[13]=0,r[14]=n*t/(t-n),r[15]=0,r}function Ky(r,e,t,n,i,a,s){var o=1/(e-t),l=1/(n-i),u=1/(a-s);return r[0]=-2*o,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=-2*l,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=2*u,r[11]=0,r[12]=(e+t)*o,r[13]=(i+n)*l,r[14]=(s+a)*u,r[15]=1,r}var bg=Ky;function xg(r,e,t,n,i,a,s){var o=1/(e-t),l=1/(n-i),u=1/(a-s);return r[0]=-2*o,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=-2*l,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=u,r[11]=0,r[12]=(e+t)*o,r[13]=(i+n)*l,r[14]=a*u,r[15]=1,r}function Eg(r,e,t,n){var i,a,s,o,l,u,c,h,f,d,v=e[0],g=e[1],p=e[2],m=n[0],b=n[1],x=n[2],O=t[0],T=t[1],S=t[2];return Math.abs(v-O)0&&(d=1/Math.sqrt(d),c*=d,h*=d,f*=d);var v=l*f-u*h,g=u*c-o*f,p=o*h-l*c;return d=v*v+g*g+p*p,d>0&&(d=1/Math.sqrt(d),v*=d,g*=d,p*=d),r[0]=v,r[1]=g,r[2]=p,r[3]=0,r[4]=h*p-f*g,r[5]=f*v-c*p,r[6]=c*g-h*v,r[7]=0,r[8]=c,r[9]=h,r[10]=f,r[11]=0,r[12]=i,r[13]=a,r[14]=s,r[15]=1,r}function gA(r){return"mat4("+r[0]+", "+r[1]+", "+r[2]+", "+r[3]+", "+r[4]+", "+r[5]+", "+r[6]+", "+r[7]+", "+r[8]+", "+r[9]+", "+r[10]+", "+r[11]+", "+r[12]+", "+r[13]+", "+r[14]+", "+r[15]+")"}function pA(r){return Math.hypot(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8],r[9],r[10],r[11],r[12],r[13],r[14],r[15])}function mA(r,e,t){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r}function Qy(r,e,t){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r}function yA(r,e,t){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r}function bA(r,e,t,n){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r[2]=e[2]+t[2]*n,r[3]=e[3]+t[3]*n,r[4]=e[4]+t[4]*n,r[5]=e[5]+t[5]*n,r[6]=e[6]+t[6]*n,r[7]=e[7]+t[7]*n,r[8]=e[8]+t[8]*n,r[9]=e[9]+t[9]*n,r[10]=e[10]+t[10]*n,r[11]=e[11]+t[11]*n,r[12]=e[12]+t[12]*n,r[13]=e[13]+t[13]*n,r[14]=e[14]+t[14]*n,r[15]=e[15]+t[15]*n,r}function wg(r,e){return r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]&&r[3]===e[3]&&r[4]===e[4]&&r[5]===e[5]&&r[6]===e[6]&&r[7]===e[7]&&r[8]===e[8]&&r[9]===e[9]&&r[10]===e[10]&&r[11]===e[11]&&r[12]===e[12]&&r[13]===e[13]&&r[14]===e[14]&&r[15]===e[15]}function xA(r,e){var t=r[0],n=r[1],i=r[2],a=r[3],s=r[4],o=r[5],l=r[6],u=r[7],c=r[8],h=r[9],f=r[10],d=r[11],v=r[12],g=r[13],p=r[14],m=r[15],b=e[0],x=e[1],O=e[2],T=e[3],S=e[4],k=e[5],C=e[6],W=e[7],U=e[8],J=e[9],te=e[10],ie=e[11],ae=e[12],ve=e[13],Z=e[14],H=e[15];return Math.abs(t-b)<=at*Math.max(1,Math.abs(t),Math.abs(b))&&Math.abs(n-x)<=at*Math.max(1,Math.abs(n),Math.abs(x))&&Math.abs(i-O)<=at*Math.max(1,Math.abs(i),Math.abs(O))&&Math.abs(a-T)<=at*Math.max(1,Math.abs(a),Math.abs(T))&&Math.abs(s-S)<=at*Math.max(1,Math.abs(s),Math.abs(S))&&Math.abs(o-k)<=at*Math.max(1,Math.abs(o),Math.abs(k))&&Math.abs(l-C)<=at*Math.max(1,Math.abs(l),Math.abs(C))&&Math.abs(u-W)<=at*Math.max(1,Math.abs(u),Math.abs(W))&&Math.abs(c-U)<=at*Math.max(1,Math.abs(c),Math.abs(U))&&Math.abs(h-J)<=at*Math.max(1,Math.abs(h),Math.abs(J))&&Math.abs(f-te)<=at*Math.max(1,Math.abs(f),Math.abs(te))&&Math.abs(d-ie)<=at*Math.max(1,Math.abs(d),Math.abs(ie))&&Math.abs(v-ae)<=at*Math.max(1,Math.abs(v),Math.abs(ae))&&Math.abs(g-ve)<=at*Math.max(1,Math.abs(g),Math.abs(ve))&&Math.abs(p-Z)<=at*Math.max(1,Math.abs(p),Math.abs(Z))&&Math.abs(m-H)<=at*Math.max(1,Math.abs(m),Math.abs(H))}var Pg=Ut,EA=Qy;function Mg(){var r=new bt(9);return bt!=Float32Array&&(r[1]=0,r[2]=0,r[3]=0,r[5]=0,r[6]=0,r[7]=0),r[0]=1,r[4]=1,r[8]=1,r}function Jy(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[4],r[4]=e[5],r[5]=e[6],r[6]=e[8],r[7]=e[9],r[8]=e[10],r}function gV(r){var e=new glMatrix.ARRAY_TYPE(9);return e[0]=r[0],e[1]=r[1],e[2]=r[2],e[3]=r[3],e[4]=r[4],e[5]=r[5],e[6]=r[6],e[7]=r[7],e[8]=r[8],e}function pV(r,e){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r}function qy(r,e,t,n,i,a,s,o,l){var u=new bt(9);return u[0]=r,u[1]=e,u[2]=t,u[3]=n,u[4]=i,u[5]=a,u[6]=s,u[7]=o,u[8]=l,u}function mV(r,e,t,n,i,a,s,o,l,u){return r[0]=e,r[1]=t,r[2]=n,r[3]=i,r[4]=a,r[5]=s,r[6]=o,r[7]=l,r[8]=u,r}function yV(r){return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=1,r[5]=0,r[6]=0,r[7]=0,r[8]=1,r}function bV(r,e){if(r===e){var t=e[1],n=e[2],i=e[5];r[1]=e[3],r[2]=e[6],r[3]=t,r[5]=e[7],r[6]=n,r[7]=i}else r[0]=e[0],r[1]=e[3],r[2]=e[6],r[3]=e[1],r[4]=e[4],r[5]=e[7],r[6]=e[2],r[7]=e[5],r[8]=e[8];return r}function xV(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=e[4],o=e[5],l=e[6],u=e[7],c=e[8],h=c*s-o*u,f=-c*a+o*l,d=u*a-s*l,v=t*h+n*f+i*d;return v?(v=1/v,r[0]=h*v,r[1]=(-c*n+i*u)*v,r[2]=(o*n-i*s)*v,r[3]=f*v,r[4]=(c*t-i*l)*v,r[5]=(-o*t+i*a)*v,r[6]=d*v,r[7]=(-u*t+n*l)*v,r[8]=(s*t-n*a)*v,r):null}function EV(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=e[4],o=e[5],l=e[6],u=e[7],c=e[8];return r[0]=s*c-o*u,r[1]=i*u-n*c,r[2]=n*o-i*s,r[3]=o*l-a*c,r[4]=t*c-i*l,r[5]=i*a-t*o,r[6]=a*u-s*l,r[7]=n*l-t*u,r[8]=t*s-n*a,r}function wV(r){var e=r[0],t=r[1],n=r[2],i=r[3],a=r[4],s=r[5],o=r[6],l=r[7],u=r[8];return e*(u*a-s*l)+t*(-u*i+s*o)+n*(l*i-a*o)}function PV(r,e,t){var n=e[0],i=e[1],a=e[2],s=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],f=t[0],d=t[1],v=t[2],g=t[3],p=t[4],m=t[5],b=t[6],x=t[7],O=t[8];return r[0]=f*n+d*s+v*u,r[1]=f*i+d*o+v*c,r[2]=f*a+d*l+v*h,r[3]=g*n+p*s+m*u,r[4]=g*i+p*o+m*c,r[5]=g*a+p*l+m*h,r[6]=b*n+x*s+O*u,r[7]=b*i+x*o+O*c,r[8]=b*a+x*l+O*h,r}function MV(r,e,t){var n=e[0],i=e[1],a=e[2],s=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],f=t[0],d=t[1];return r[0]=n,r[1]=i,r[2]=a,r[3]=s,r[4]=o,r[5]=l,r[6]=f*n+d*s+u,r[7]=f*i+d*o+c,r[8]=f*a+d*l+h,r}function SV(r,e,t){var n=e[0],i=e[1],a=e[2],s=e[3],o=e[4],l=e[5],u=e[6],c=e[7],h=e[8],f=Math.sin(t),d=Math.cos(t);return r[0]=d*n+f*s,r[1]=d*i+f*o,r[2]=d*a+f*l,r[3]=d*s-f*n,r[4]=d*o-f*i,r[5]=d*l-f*a,r[6]=u,r[7]=c,r[8]=h,r}function TV(r,e,t){var n=t[0],i=t[1];return r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=i*e[3],r[4]=i*e[4],r[5]=i*e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r}function AV(r,e){return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=1,r[5]=0,r[6]=e[0],r[7]=e[1],r[8]=1,r}function OV(r,e){var t=Math.sin(e),n=Math.cos(e);return r[0]=n,r[1]=t,r[2]=0,r[3]=-t,r[4]=n,r[5]=0,r[6]=0,r[7]=0,r[8]=1,r}function kV(r,e){return r[0]=e[0],r[1]=0,r[2]=0,r[3]=0,r[4]=e[1],r[5]=0,r[6]=0,r[7]=0,r[8]=1,r}function CV(r,e){return r[0]=e[0],r[1]=e[1],r[2]=0,r[3]=e[2],r[4]=e[3],r[5]=0,r[6]=e[4],r[7]=e[5],r[8]=1,r}function NV(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=t+t,o=n+n,l=i+i,u=t*s,c=n*s,h=n*o,f=i*s,d=i*o,v=i*l,g=a*s,p=a*o,m=a*l;return r[0]=1-h-v,r[3]=c-m,r[6]=f+p,r[1]=c+m,r[4]=1-u-v,r[7]=d-g,r[2]=f-p,r[5]=d+g,r[8]=1-u-h,r}function _V(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=e[4],o=e[5],l=e[6],u=e[7],c=e[8],h=e[9],f=e[10],d=e[11],v=e[12],g=e[13],p=e[14],m=e[15],b=t*o-n*s,x=t*l-i*s,O=t*u-a*s,T=n*l-i*o,S=n*u-a*o,k=i*u-a*l,C=c*g-h*v,W=c*p-f*v,U=c*m-d*v,J=h*p-f*g,te=h*m-d*g,ie=f*m-d*p,ae=b*ie-x*te+O*J+T*U-S*W+k*C;return ae?(ae=1/ae,r[0]=(o*ie-l*te+u*J)*ae,r[1]=(l*U-s*ie-u*W)*ae,r[2]=(s*te-o*U+u*C)*ae,r[3]=(i*te-n*ie-a*J)*ae,r[4]=(t*ie-i*U+a*W)*ae,r[5]=(n*U-t*te-a*C)*ae,r[6]=(g*k-p*S+m*T)*ae,r[7]=(p*O-v*k-m*x)*ae,r[8]=(v*S-g*O+m*b)*ae,r):null}function RV(r,e,t){return r[0]=2/e,r[1]=0,r[2]=0,r[3]=0,r[4]=-2/t,r[5]=0,r[6]=-1,r[7]=1,r[8]=1,r}function LV(r){return"mat3("+r[0]+", "+r[1]+", "+r[2]+", "+r[3]+", "+r[4]+", "+r[5]+", "+r[6]+", "+r[7]+", "+r[8]+")"}function DV(r){return Math.hypot(r[0],r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8])}function IV(r,e,t){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r}function BV(r,e,t){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r}function zV(r,e,t){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r}function FV(r,e,t,n){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r[2]=e[2]+t[2]*n,r[3]=e[3]+t[3]*n,r[4]=e[4]+t[4]*n,r[5]=e[5]+t[5]*n,r[6]=e[6]+t[6]*n,r[7]=e[7]+t[7]*n,r[8]=e[8]+t[8]*n,r}function jV(r,e){return r[0]===e[0]&&r[1]===e[1]&&r[2]===e[2]&&r[3]===e[3]&&r[4]===e[4]&&r[5]===e[5]&&r[6]===e[6]&&r[7]===e[7]&&r[8]===e[8]}function GV(r,e){var t=r[0],n=r[1],i=r[2],a=r[3],s=r[4],o=r[5],l=r[6],u=r[7],c=r[8],h=e[0],f=e[1],d=e[2],v=e[3],g=e[4],p=e[5],m=e[6],b=e[7],x=e[8];return Math.abs(t-h)<=glMatrix.EPSILON*Math.max(1,Math.abs(t),Math.abs(h))&&Math.abs(n-f)<=glMatrix.EPSILON*Math.max(1,Math.abs(n),Math.abs(f))&&Math.abs(i-d)<=glMatrix.EPSILON*Math.max(1,Math.abs(i),Math.abs(d))&&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-m)<=glMatrix.EPSILON*Math.max(1,Math.abs(l),Math.abs(m))&&Math.abs(u-b)<=glMatrix.EPSILON*Math.max(1,Math.abs(u),Math.abs(b))&&Math.abs(c-x)<=glMatrix.EPSILON*Math.max(1,Math.abs(c),Math.abs(x))}var HV=null,XV=null;function en(){var r=new bt(4);return bt!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r[3]=1,r}function WV(r){return r[0]=0,r[1]=0,r[2]=0,r[3]=1,r}function Jr(r,e,t){t=t*.5;var n=Math.sin(t);return r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=Math.cos(t),r}function VV(r,e){var t=Math.acos(e[3])*2,n=Math.sin(t/2);return n>glMatrix.EPSILON?(r[0]=e[0]/n,r[1]=e[1]/n,r[2]=e[2]/n):(r[0]=1,r[1]=0,r[2]=0),t}function YV(r,e){var t=TA(r,e);return Math.acos(2*t*t-1)}function qr(r,e,t){var n=e[0],i=e[1],a=e[2],s=e[3],o=t[0],l=t[1],u=t[2],c=t[3];return r[0]=n*c+s*o+i*u-a*l,r[1]=i*c+s*l+a*o-n*u,r[2]=a*c+s*u+n*l-i*o,r[3]=s*c-n*o-i*l-a*u,r}function UV(r,e,t){t*=.5;var n=e[0],i=e[1],a=e[2],s=e[3],o=Math.sin(t),l=Math.cos(t);return r[0]=n*l+s*o,r[1]=i*l+a*o,r[2]=a*l-i*o,r[3]=s*l-n*o,r}function ZV(r,e,t){t*=.5;var n=e[0],i=e[1],a=e[2],s=e[3],o=Math.sin(t),l=Math.cos(t);return r[0]=n*l-a*o,r[1]=i*l+s*o,r[2]=a*l+n*o,r[3]=s*l-i*o,r}function KV(r,e,t){t*=.5;var n=e[0],i=e[1],a=e[2],s=e[3],o=Math.sin(t),l=Math.cos(t);return r[0]=n*l+i*o,r[1]=i*l-n*o,r[2]=a*l+s*o,r[3]=s*l-a*o,r}function QV(r,e){var t=e[0],n=e[1],i=e[2];return r[0]=t,r[1]=n,r[2]=i,r[3]=Math.sqrt(Math.abs(1-t*t-n*n-i*i)),r}function wA(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=Math.sqrt(t*t+n*n+i*i),o=Math.exp(a),l=s>0?o*Math.sin(s)/s:0;return r[0]=t*l,r[1]=n*l,r[2]=i*l,r[3]=o*Math.cos(s),r}function PA(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=Math.sqrt(t*t+n*n+i*i),o=s>0?Math.atan2(s,a)/s:0;return r[0]=t*o,r[1]=n*o,r[2]=i*o,r[3]=.5*Math.log(t*t+n*n+i*i+a*a),r}function JV(r,e,t){return PA(r,e),SA(r,r,t),wA(r,r),r}function Sg(r,e,t,n){var i=e[0],a=e[1],s=e[2],o=e[3],l=t[0],u=t[1],c=t[2],h=t[3],f,d,v,g,p;return d=i*l+a*u+s*c+o*h,d<0&&(d=-d,l=-l,u=-u,c=-c,h=-h),1-d>at?(f=Math.acos(d),v=Math.sin(f),g=Math.sin((1-n)*f)/v,p=Math.sin(n*f)/v):(g=1-n,p=n),r[0]=g*i+p*l,r[1]=g*a+p*u,r[2]=g*s+p*c,r[3]=g*o+p*h,r}function qV(r){var e=glMatrix.RANDOM(),t=glMatrix.RANDOM(),n=glMatrix.RANDOM(),i=Math.sqrt(1-e),a=Math.sqrt(e);return r[0]=i*Math.sin(2*Math.PI*t),r[1]=i*Math.cos(2*Math.PI*t),r[2]=a*Math.sin(2*Math.PI*n),r[3]=a*Math.cos(2*Math.PI*n),r}function ul(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=t*t+n*n+i*i+a*a,o=s?1/s:0;return r[0]=-t*o,r[1]=-n*o,r[2]=-i*o,r[3]=a*o,r}function $V(r,e){return r[0]=-e[0],r[1]=-e[1],r[2]=-e[2],r[3]=e[3],r}function MA(r,e){var t=e[0]+e[4]+e[8],n;if(t>0)n=Math.sqrt(t+1),r[3]=.5*n,n=.5/n,r[0]=(e[5]-e[7])*n,r[1]=(e[6]-e[2])*n,r[2]=(e[1]-e[3])*n;else{var i=0;e[4]>e[0]&&(i=1),e[8]>e[i*3+i]&&(i=2);var a=(i+1)%3,s=(i+2)%3;n=Math.sqrt(e[i*3+i]-e[a*3+a]-e[s*3+s]+1),r[i]=.5*n,n=.5/n,r[3]=(e[a*3+s]-e[s*3+a])*n,r[a]=(e[a*3+i]+e[i*3+a])*n,r[s]=(e[s*3+i]+e[i*3+s])*n}return r}function Rs(r,e,t,n){var i=.5*Math.PI/180;e*=i,t*=i,n*=i;var a=Math.sin(e),s=Math.cos(e),o=Math.sin(t),l=Math.cos(t),u=Math.sin(n),c=Math.cos(n);return r[0]=a*l*c-s*o*u,r[1]=s*o*c+a*l*u,r[2]=s*l*u-a*o*c,r[3]=s*l*c+a*o*u,r}function eY(r){return"quat("+r[0]+", "+r[1]+", "+r[2]+", "+r[3]+")"}var tY=nh,$y=ma,Ls=hg,ih=fg,nY=dg,ah=qr,SA=F,TA=Fe,rY=dt,iY=ge,aY=null,sY=_e,oY=null,cl=et,lY=In,uY=At,cY=function(){var r=Me(),e=me(1,0,0),t=me(0,1,0);return function(n,i,a){var s=dn(i,a);return s<-.999999?(Yi(r,e,i),wu(r)<1e-6&&Yi(r,t,i),fn(r,r),Jr(n,r,Math.PI),n):s>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(Yi(r,i,a),n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=1+s,cl(n,n))}}(),hY=function(){var r=en(),e=en();return function(t,n,i,a,s,o){return Sg(r,n,s,o),Sg(e,i,a,o),Sg(t,r,e,2*o*(1-o)),t}}(),fY=function(){var r=Mg();return function(e,t,n,i){return r[0]=n[0],r[3]=n[1],r[6]=n[2],r[1]=i[0],r[4]=i[1],r[7]=i[2],r[2]=-t[0],r[5]=-t[1],r[8]=-t[2],cl(e,MA(e,r))}}();function Cu(){var r=new bt(2);return bt!=Float32Array&&(r[0]=0,r[1]=0),r}function dY(r){var e=new glMatrix.ARRAY_TYPE(2);return e[0]=r[0],e[1]=r[1],e}function vY(r,e){var t=new glMatrix.ARRAY_TYPE(2);return t[0]=r,t[1]=e,t}function e1(r,e){return r[0]=e[0],r[1]=e[1],r}function t1(r,e,t){return r[0]=e,r[1]=t,r}function gY(r,e,t){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r}function pY(r,e,t){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r}function mY(r,e,t){return r[0]=e[0]*t[0],r[1]=e[1]*t[1],r}function yY(r,e,t){return r[0]=e[0]/t[0],r[1]=e[1]/t[1],r}function bY(r,e){return r[0]=Math.ceil(e[0]),r[1]=Math.ceil(e[1]),r}function xY(r,e){return r[0]=Math.floor(e[0]),r[1]=Math.floor(e[1]),r}function EY(r,e,t){return r[0]=Math.min(e[0],t[0]),r[1]=Math.min(e[1],t[1]),r}function wY(r,e,t){return r[0]=Math.max(e[0],t[0]),r[1]=Math.max(e[1],t[1]),r}function PY(r,e){return r[0]=Math.round(e[0]),r[1]=Math.round(e[1]),r}function MY(r,e,t){return r[0]=e[0]*t,r[1]=e[1]*t,r}function SY(r,e,t,n){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r}function TY(r,e){var t=e[0]-r[0],n=e[1]-r[1];return Math.hypot(t,n)}function AY(r,e){var t=e[0]-r[0],n=e[1]-r[1];return t*t+n*n}function OY(r){var e=r[0],t=r[1];return Math.hypot(e,t)}function kY(r){var e=r[0],t=r[1];return e*e+t*t}function CY(r,e){return r[0]=-e[0],r[1]=-e[1],r}function NY(r,e){return r[0]=1/e[0],r[1]=1/e[1],r}function AA(r,e){var t=e[0],n=e[1],i=t*t+n*n;return i>0&&(i=1/Math.sqrt(i)),r[0]=e[0]*i,r[1]=e[1]*i,r}function OA(r,e){return r[0]*e[0]+r[1]*e[1]}function _Y(r,e,t){var n=e[0]*t[1]-e[1]*t[0];return r[0]=r[1]=0,r[2]=n,r}function RY(r,e,t,n){var i=e[0],a=e[1];return r[0]=i+n*(t[0]-i),r[1]=a+n*(t[1]-a),r}function LY(r,e){e=e||1;var t=glMatrix.RANDOM()*2*Math.PI;return r[0]=Math.cos(t)*e,r[1]=Math.sin(t)*e,r}function DY(r,e,t){var n=e[0],i=e[1];return r[0]=t[0]*n+t[2]*i,r[1]=t[1]*n+t[3]*i,r}function IY(r,e,t){var n=e[0],i=e[1];return r[0]=t[0]*n+t[2]*i+t[4],r[1]=t[1]*n+t[3]*i+t[5],r}function BY(r,e,t){var n=e[0],i=e[1];return r[0]=t[0]*n+t[3]*i+t[6],r[1]=t[1]*n+t[4]*i+t[7],r}function zY(r,e,t){var n=e[0],i=e[1];return r[0]=t[0]*n+t[4]*i+t[12],r[1]=t[1]*n+t[5]*i+t[13],r}function FY(r,e,t,n){var i=e[0]-t[0],a=e[1]-t[1],s=Math.sin(n),o=Math.cos(n);return r[0]=i*o-a*s+t[0],r[1]=i*s+a*o+t[1],r}function jY(r,e){var t=r[0],n=r[1],i=e[0],a=e[1],s=Math.sqrt(t*t+n*n)*Math.sqrt(i*i+a*a),o=s&&(t*i+n*a)/s;return Math.acos(Math.min(Math.max(o,-1),1))}function GY(r){return r[0]=0,r[1]=0,r}function HY(r){return"vec2("+r[0]+", "+r[1]+")"}function kA(r,e){return r[0]===e[0]&&r[1]===e[1]}function XY(r,e){var t=r[0],n=r[1],i=e[0],a=e[1];return Math.abs(t-i)<=glMatrix.EPSILON*Math.max(1,Math.abs(t),Math.abs(i))&&Math.abs(n-a)<=glMatrix.EPSILON*Math.max(1,Math.abs(n),Math.abs(a))}var WY=null,VY=null,YY=null,UY=null,ZY=null,KY=null,QY=null,JY=function(){var r=Cu();return function(e,t,n,i,a,s){var o,l;for(t||(t=2),n||(n=0),i?l=Math.min(i*t+n,e.length):l=e.length,o=n;ot?t:r},on=CA,Y=w(97582),Nu={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0};function n1(r){return Array.isArray(r)&&r.every(function(e){var t=e[0].toLowerCase();return Nu[t]===e.length-1&&"achlmqstvz".includes(t)})}function r1(r){return n1(r)&&r.every(function(e){var t=e[0];return t===t.toUpperCase()})}function i1(r){return r1(r)&&r.every(function(e){var t=e[0];return"ACLMQZ".includes(t)})}var a1={x1:0,y1:0,x2:0,y2:0,x:0,y:0,qx:null,qy:null};function s1(r){for(var e=r.pathValue[r.segmentStart],t=e.toLowerCase(),n=r.data;n.length>=Nu[t]&&(t==="m"&&n.length>2?(r.segments.push([e].concat(n.splice(0,2))),t="l",e=e==="m"?"l":"L"):r.segments.push([e].concat(n.splice(0,Nu[t]))),!!Nu[t]););}function NA(r){var e=r.index,t=r.pathValue,n=t.charCodeAt(e);if(n===48){r.param=0,r.index+=1;return}if(n===49){r.param=1,r.index+=1;return}r.err='[path-util]: invalid Arc flag "'.concat(t[e],'", expecting 0 or 1 at index ').concat(e)}function _A(r){return r>=48&&r<=57||r===43||r===45||r===46}function hl(r){return r>=48&&r<=57}function RA(r){var e=r.max,t=r.pathValue,n=r.index,i=n,a=!1,s=!1,o=!1,l=!1,u;if(i>=e){r.err="[path-util]: Invalid path value at index ".concat(i,', "pathValue" is missing param');return}if(u=t.charCodeAt(i),(u===43||u===45)&&(i+=1,u=t.charCodeAt(i)),!hl(u)&&u!==46){r.err="[path-util]: Invalid path value at index ".concat(i,', "').concat(t[i],'" is not a number');return}if(u!==46){if(a=u===48,i+=1,u=t.charCodeAt(i),a&&i=5760&&e.includes(r)}function sh(r){for(var e=r.pathValue,t=r.max;r.index0;s-=1){if(IA(i)&&(s===3||s===4)?NA(r):RA(r),r.err.length)return;r.data.push(r.param),sh(r),r.index=r.max||!_A(t.charCodeAt(r.index)))break}s1(r)}var zA=function(){function r(e){this.pathValue=e,this.segments=[],this.max=e.length,this.index=0,this.param=0,this.segmentStart=0,this.data=[],this.err=""}return r}();function FA(r){if(n1(r))return[].concat(r);var e=new zA(r);for(sh(e);e.index=a)s={x:t,y:n};else{var o=Ds([r,e],[t,n],i/a),l=o[0],u=o[1];s={x:l,y:u}}return{length:a,point:s,min:{x:Math.min(r,t),y:Math.min(e,n)},max:{x:Math.max(r,t),y:Math.max(e,n)}}}function o1(r,e){var t=r.x,n=r.y,i=e.x,a=e.y,s=t*i+n*a,o=Math.sqrt((Math.pow(t,2)+Math.pow(n,2))*(Math.pow(i,2)+Math.pow(a,2))),l=t*a-n*i<0?-1:1,u=l*Math.acos(s/o);return u}function HA(r,e,t,n,i,a,s,o,l,u){var c=Math.abs,h=Math.sin,f=Math.cos,d=Math.sqrt,v=Math.PI,g=c(t),p=c(n),m=(i%360+360)%360,b=m*(v/180);if(r===o&&e===l)return{x:r,y:e};if(g===0||p===0)return Tg(r,e,o,l,u).point;var x=(r-o)/2,O=(e-l)/2,T={x:f(b)*x+h(b)*O,y:-h(b)*x+f(b)*O},S=Math.pow(T.x,2)/Math.pow(g,2)+Math.pow(T.y,2)/Math.pow(p,2);S>1&&(g*=d(S),p*=d(S));var k=Math.pow(g,2)*Math.pow(p,2)-Math.pow(g,2)*Math.pow(T.y,2)-Math.pow(p,2)*Math.pow(T.x,2),C=Math.pow(g,2)*Math.pow(T.y,2)+Math.pow(p,2)*Math.pow(T.x,2),W=k/C;W=W<0?0:W;var U=(a!==s?1:-1)*d(W),J={x:U*(g*T.y/p),y:U*(-(p*T.x)/g)},te={x:f(b)*J.x-h(b)*J.y+(r+o)/2,y:h(b)*J.x+f(b)*J.y+(e+l)/2},ie={x:(T.x-J.x)/g,y:(T.y-J.y)/p},ae=o1({x:1,y:0},ie),ve={x:(-T.x-J.x)/g,y:(-T.y-J.y)/p},Z=o1(ie,ve);!s&&Z>0?Z-=2*v:s&&Z<0&&(Z+=2*v),Z%=2*v;var H=ae+Z*u,X=g*f(H),q=p*h(H),oe={x:f(b)*X-h(b)*q+te.x,y:h(b)*X+f(b)*q+te.y};return oe}function XA(r,e,t,n,i,a,s,o,l,u,c){var h,f=c.bbox,d=f===void 0?!0:f,v=c.length,g=v===void 0?!0:v,p=c.sampleSize,m=p===void 0?30:p,b=typeof u=="number",x=r,O=e,T=0,S=[x,O,T],k=[x,O],C=0,W={x:0,y:0},U=[{x,y:O}];b&&u<=0&&(W={x,y:O});for(var J=0;J<=m;J+=1){if(C=J/m,h=HA(r,e,t,n,i,a,s,o,l,C),x=h.x,O=h.y,d&&U.push({x,y:O}),g&&(T+=gi(k,[x,O])),k=[x,O],b&&T>=u&&u>S[2]){var te=(T-u)/(T-S[2]);W={x:k[0]*(1-te)+S[0]*te,y:k[1]*(1-te)+S[1]*te}}S=[x,O,T]}return b&&u>=T&&(W={x:o,y:l}),{length:T,point:W,min:{x:Math.min.apply(null,U.map(function(ie){return ie.x})),y:Math.min.apply(null,U.map(function(ie){return ie.y}))},max:{x:Math.max.apply(null,U.map(function(ie){return ie.x})),y:Math.max.apply(null,U.map(function(ie){return ie.y}))}}}function WA(r,e,t,n,i,a,s,o,l){var u=1-l;return{x:Math.pow(u,3)*r+3*Math.pow(u,2)*l*t+3*u*Math.pow(l,2)*i+Math.pow(l,3)*s,y:Math.pow(u,3)*e+3*Math.pow(u,2)*l*n+3*u*Math.pow(l,2)*a+Math.pow(l,3)*o}}function l1(r,e,t,n,i,a,s,o,l,u){var c,h=u.bbox,f=h===void 0?!0:h,d=u.length,v=d===void 0?!0:d,g=u.sampleSize,p=g===void 0?10:g,m=typeof l=="number",b=r,x=e,O=0,T=[b,x,O],S=[b,x],k=0,C={x:0,y:0},W=[{x:b,y:x}];m&&l<=0&&(C={x:b,y:x});for(var U=0;U<=p;U+=1){if(k=U/p,c=WA(r,e,t,n,i,a,s,o,k),b=c.x,x=c.y,f&&W.push({x:b,y:x}),v&&(O+=gi(S,[b,x])),S=[b,x],m&&O>=l&&l>T[2]){var J=(O-l)/(O-T[2]);C={x:S[0]*(1-J)+T[0]*J,y:S[1]*(1-J)+T[1]*J}}T=[b,x,O]}return m&&l>=O&&(C={x:s,y:o}),{length:O,point:C,min:{x:Math.min.apply(null,W.map(function(te){return te.x})),y:Math.min.apply(null,W.map(function(te){return te.y}))},max:{x:Math.max.apply(null,W.map(function(te){return te.x})),y:Math.max.apply(null,W.map(function(te){return te.y}))}}}function VA(r,e,t,n,i,a,s){var o=1-s;return{x:Math.pow(o,2)*r+2*o*s*t+Math.pow(s,2)*i,y:Math.pow(o,2)*e+2*o*s*n+Math.pow(s,2)*a}}function YA(r,e,t,n,i,a,s,o){var l,u=o.bbox,c=u===void 0?!0:u,h=o.length,f=h===void 0?!0:h,d=o.sampleSize,v=d===void 0?10:d,g=typeof s=="number",p=r,m=e,b=0,x=[p,m,b],O=[p,m],T=0,S={x:0,y:0},k=[{x:p,y:m}];g&&s<=0&&(S={x:p,y:m});for(var C=0;C<=v;C+=1){if(T=C/v,l=VA(r,e,t,n,i,a,T),p=l.x,m=l.y,c&&k.push({x:p,y:m}),f&&(b+=gi(O,[p,m])),O=[p,m],g&&b>=s&&s>x[2]){var W=(b-s)/(b-x[2]);S={x:O[0]*(1-W)+x[0]*W,y:O[1]*(1-W)+x[1]*W}}x=[p,m,b]}return g&&s>=b&&(S={x:i,y:a}),{length:b,point:S,min:{x:Math.min.apply(null,k.map(function(U){return U.x})),y:Math.min.apply(null,k.map(function(U){return U.y}))},max:{x:Math.max.apply(null,k.map(function(U){return U.x})),y:Math.max.apply(null,k.map(function(U){return U.y}))}}}function u1(r,e,t){for(var n,i,a,s,o,l,u=fl(r),c=typeof e=="number",h,f=[],d,v=0,g=0,p=0,m=0,b,x=[],O=[],T=0,S={x:0,y:0},k=S,C=S,W=S,U=0,J=0,te=u.length;J=e&&(W=C),O.push(k),x.push(S),U+=T,l=d!=="Z"?b.slice(-2):[p,m],v=l[0],g=l[1];return c&&e>=U&&(W={x:v,y:g}),{length:U,point:W,min:{x:Math.min.apply(null,x.map(function(ie){return ie.x})),y:Math.min.apply(null,x.map(function(ie){return ie.y}))},max:{x:Math.max.apply(null,O.map(function(ie){return ie.x})),y:Math.max.apply(null,O.map(function(ie){return ie.y}))}}}function c1(r,e){return u1(r,void 0,(0,Y.pi)((0,Y.pi)({},e),{bbox:!1,length:!0})).length}function pi(r){return Array.isArray(r)}var dl=function(r){if(pi(r))return r.reduce(function(e,t){return Math.min(e,t)},r[0])};function vl(r){if(!Array.isArray(r))return-1/0;var e=r.length;if(!e)return-1/0;for(var t=r[0],n=1;n7){r[t].shift();for(var n=r[t],i=t;n.length;)e[t]="A",r.splice(i+=1,0,["C"].concat(n.splice(0,6)));r.splice(t,1)}}function QA(r){return i1(r)&&r.every(function(e){var t=e[0];return"MC".includes(t)})}function lh(r,e,t){var n=r*Math.cos(t)-e*Math.sin(t),i=r*Math.sin(t)+e*Math.cos(t);return{x:n,y:i}}function Ag(r,e,t,n,i,a,s,o,l,u){var c=r,h=e,f=t,d=n,v=o,g=l,p=Math.PI*120/180,m=Math.PI/180*(+i||0),b=[],x,O,T,S,k;if(u)O=u[0],T=u[1],S=u[2],k=u[3];else{x=lh(c,h,-m),c=x.x,h=x.y,x=lh(v,g,-m),v=x.x,g=x.y;var C=(c-v)/2,W=(h-g)/2,U=C*C/(f*f)+W*W/(d*d);U>1&&(U=Math.sqrt(U),f*=U,d*=U);var J=f*f,te=d*d,ie=(a===s?-1:1)*Math.sqrt(Math.abs((J*te-J*W*W-te*C*C)/(J*W*W+te*C*C)));S=ie*f*W/d+(c+v)/2,k=ie*-d*C/f+(h+g)/2,O=Math.asin(((h-k)/d*Math.pow(10,9)>>0)/Math.pow(10,9)),T=Math.asin(((g-k)/d*Math.pow(10,9)>>0)/Math.pow(10,9)),O=cT&&(O-=Math.PI*2),!s&&T>O&&(T-=Math.PI*2)}var ae=T-O;if(Math.abs(ae)>p){var ve=T,Z=v,H=g;T=O+p*(s&&T>O?1:-1),v=S+f*Math.cos(T),g=k+d*Math.sin(T),b=Ag(v,g,f,d,i,0,s,Z,H,[T,ve,S,k])}ae=T-O;var X=Math.cos(O),q=Math.sin(O),oe=Math.cos(T),de=Math.sin(T),Oe=Math.tan(ae/4),Be=4/3*f*Oe,Ge=4/3*d*Oe,Ve=[c,h],qe=[c+Be*q,h-Ge*X],lt=[v+Be*de,g-Ge*oe],Ct=[v,g];if(qe[0]=2*Ve[0]-qe[0],qe[1]=2*Ve[1]-qe[1],u)return qe.concat(lt,Ct,b);b=qe.concat(lt,Ct,b);for(var Vt=[],qt=0,Nr=b.length;qt=f[m],d[m]-=v?1:0,v?b.ss:[b.s]}).flat()});return g[0].length===g[1].length?g:Og(g[0],g[1],h)}function eO(r,e,t,n,i,a,s,o){return 3*((o-e)*(t+i)-(s-r)*(n+a)+n*(r-i)-t*(e-a)+o*(i+r/3)-s*(a+e/3))/20}function tO(r){var e=0,t=0,n=0;return _u(r).map(function(i){var a;switch(i[0]){case"M":return e=i[1],t=i[2],0;default:var s=i.slice(1),o=s[0],l=s[1],u=s[2],c=s[3],h=s[4],f=s[5];return n=eO(e,t,o,l,u,c,h,f),a=i.slice(-2),e=a[0],t=a[1],n}}).reduce(function(i,a){return i+a},0)}function uh(r){return tO(r)>=0}function d1(r){var e=r.slice(1).map(function(t,n,i){return n?i[n-1].slice(-2).concat(t.slice(1)):r[0].slice(1).concat(t.slice(1))}).map(function(t){return t.map(function(n,i){return t[t.length-i-2*(1-i%2)]})}).reverse();return[["M"].concat(e[0].slice(0,2))].concat(e.map(function(t){return["C"].concat(t.slice(2))}))}function v1(r){return r.map(function(e){return Array.isArray(e)?[].concat(e):e})}function nO(r){var e=r.length,t=e-1;return r.map(function(n,i){return r.map(function(a,s){var o=i+s,l;return s===0||r[o]&&r[o][0]==="M"?(l=r[o],["M"].concat(l.slice(-2))):(o>=e&&(o-=t),r[o])})})}function g1(r,e){var t=r.length-1,n=[],i=0,a=0,s=nO(r);return s.forEach(function(o,l){r.slice(1).forEach(function(u,c){a+=gi(r[(l+c)%t].slice(-2),e[c%t].slice(-2))}),n[l]=a,a=0}),i=n.indexOf(Math.min.apply(null,n)),s[i]}var rO=function(r){return r===void 0},Et=rO,iO={}.toString,aO=function(r,e){return iO.call(r)==="[object "+e+"]"},p1=aO,sO=function(r){return p1(r,"Boolean")},pl=sO;function pt(r){return typeof r=="function"}var nr=function(r){var e=typeof r;return r!==null&&e==="object"||e==="function"};function m1(r,e,t){return u1(r,e,(0,Y.pi)((0,Y.pi)({},t),{bbox:!1,length:!0})).point}function oO(r,e){for(;!{}.hasOwnProperty.call(r,e)&&(r=se(r))!==null;);return r}function kg(){return kg=typeof Reflect!="undefined"&&Reflect.get?Reflect.get.bind():function(r,e,t){var n=oO(r,e);if(n){var i=Object.getOwnPropertyDescriptor(n,e);return i.get?i.get.call(arguments.length<3?r:t):i.value}},kg.apply(null,arguments)}function y1(r,e,t,n){var i=kg(se(1&n?r.prototype:r),e,t);return 2&n&&typeof i=="function"?function(a){return i.apply(t,a)}:i}function Cg(r,e,t){r.prototype=e.prototype=t,t.constructor=r}function b1(r,e){var t=Object.create(r.prototype);for(var n in e)t[n]=e[n];return t}function Ru(){}var Lu=.7,ch=1/Lu,ml="\\s*([+-]?\\d+)\\s*",Du="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Va="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",lO=/^#([0-9a-f]{3,8})$/,uO=new RegExp(`^rgb\\(${ml},${ml},${ml}\\)$`),cO=new RegExp(`^rgb\\(${Va},${Va},${Va}\\)$`),hO=new RegExp(`^rgba\\(${ml},${ml},${ml},${Du}\\)$`),fO=new RegExp(`^rgba\\(${Va},${Va},${Va},${Du}\\)$`),dO=new RegExp(`^hsl\\(${Du},${Va},${Va}\\)$`),vO=new RegExp(`^hsla\\(${Du},${Va},${Va},${Du}\\)$`),x1={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Cg(Ru,hh,{copy(r){return Object.assign(new this.constructor,this,r)},displayable(){return this.rgb().displayable()},hex:E1,formatHex:E1,formatHex8:gO,formatHsl:pO,formatRgb:w1,toString:w1});function E1(){return this.rgb().formatHex()}function gO(){return this.rgb().formatHex8()}function pO(){return A1(this).formatHsl()}function w1(){return this.rgb().formatRgb()}function hh(r){var e,t;return r=(r+"").trim().toLowerCase(),(e=lO.exec(r))?(t=e[1].length,e=parseInt(e[1],16),t===6?P1(e):t===3?new mi(e>>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):t===8?fh(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):t===4?fh(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=uO.exec(r))?new mi(e[1],e[2],e[3],1):(e=cO.exec(r))?new mi(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=hO.exec(r))?fh(e[1],e[2],e[3],e[4]):(e=fO.exec(r))?fh(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=dO.exec(r))?T1(e[1],e[2]/100,e[3]/100,1):(e=vO.exec(r))?T1(e[1],e[2]/100,e[3]/100,e[4]):x1.hasOwnProperty(r)?P1(x1[r]):r==="transparent"?new mi(NaN,NaN,NaN,0):null}function P1(r){return new mi(r>>16&255,r>>8&255,r&255,1)}function fh(r,e,t,n){return n<=0&&(r=e=t=NaN),new mi(r,e,t,n)}function mO(r){return r instanceof Ru||(r=hh(r)),r?(r=r.rgb(),new mi(r.r,r.g,r.b,r.opacity)):new mi}function yO(r,e,t,n){return arguments.length===1?mO(r):new mi(r,e,t,n==null?1:n)}function mi(r,e,t,n){this.r=+r,this.g=+e,this.b=+t,this.opacity=+n}Cg(mi,yO,b1(Ru,{brighter(r){return r=r==null?ch:Math.pow(ch,r),new mi(this.r*r,this.g*r,this.b*r,this.opacity)},darker(r){return r=r==null?Lu:Math.pow(Lu,r),new mi(this.r*r,this.g*r,this.b*r,this.opacity)},rgb(){return this},clamp(){return new mi(xo(this.r),xo(this.g),xo(this.b),dh(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:M1,formatHex:M1,formatHex8:bO,formatRgb:S1,toString:S1}));function M1(){return`#${Eo(this.r)}${Eo(this.g)}${Eo(this.b)}`}function bO(){return`#${Eo(this.r)}${Eo(this.g)}${Eo(this.b)}${Eo((isNaN(this.opacity)?1:this.opacity)*255)}`}function S1(){const r=dh(this.opacity);return`${r===1?"rgb(":"rgba("}${xo(this.r)}, ${xo(this.g)}, ${xo(this.b)}${r===1?")":`, ${r})`}`}function dh(r){return isNaN(r)?1:Math.max(0,Math.min(1,r))}function xo(r){return Math.max(0,Math.min(255,Math.round(r)||0))}function Eo(r){return r=xo(r),(r<16?"0":"")+r.toString(16)}function T1(r,e,t,n){return n<=0?r=e=t=NaN:t<=0||t>=1?r=e=NaN:e<=0&&(r=NaN),new ya(r,e,t,n)}function A1(r){if(r instanceof ya)return new ya(r.h,r.s,r.l,r.opacity);if(r instanceof Ru||(r=hh(r)),!r)return new ya;if(r instanceof ya)return r;r=r.rgb();var e=r.r/255,t=r.g/255,n=r.b/255,i=Math.min(e,t,n),a=Math.max(e,t,n),s=NaN,o=a-i,l=(a+i)/2;return o?(e===a?s=(t-n)/o+(t0&&l<1?0:s,new ya(s,o,l,r.opacity)}function xO(r,e,t,n){return arguments.length===1?A1(r):new ya(r,e,t,n==null?1:n)}function ya(r,e,t,n){this.h=+r,this.s=+e,this.l=+t,this.opacity=+n}Cg(ya,xO,b1(Ru,{brighter(r){return r=r==null?ch:Math.pow(ch,r),new ya(this.h,this.s,this.l*r,this.opacity)},darker(r){return r=r==null?Lu:Math.pow(Lu,r),new ya(this.h,this.s,this.l*r,this.opacity)},rgb(){var r=this.h%360+(this.h<0)*360,e=isNaN(r)||isNaN(this.s)?0:this.s,t=this.l,n=t+(t<.5?t:1-t)*e,i=2*t-n;return new mi(Ng(r>=240?r-240:r+120,i,n),Ng(r,i,n),Ng(r<120?r+240:r-120,i,n),this.opacity)},clamp(){return new ya(O1(this.h),vh(this.s),vh(this.l),dh(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 r=dh(this.opacity);return`${r===1?"hsl(":"hsla("}${O1(this.h)}, ${vh(this.s)*100}%, ${vh(this.l)*100}%${r===1?")":`, ${r})`}`}}));function O1(r){return r=(r||0)%360,r<0?r+360:r}function vh(r){return Math.max(0,Math.min(1,r||0))}function Ng(r,e,t){return(r<60?e+(t-e)*r/60:r<180?t:r<240?e+(t-e)*(240-r)/60:e)*255}function Vr(r,e,t,n){var i=r-t,a=e-n;return Math.sqrt(i*i+a*a)}function gh(r,e){var t=Math.min.apply(Math,(0,Y.ev)([],(0,Y.CR)(r),!1)),n=Math.min.apply(Math,(0,Y.ev)([],(0,Y.CR)(e),!1)),i=Math.max.apply(Math,(0,Y.ev)([],(0,Y.CR)(r),!1)),a=Math.max.apply(Math,(0,Y.ev)([],(0,Y.CR)(e),!1));return{x:t,y:n,width:i-t,height:a-n}}function k1(r){return(r+Math.PI*2)%(Math.PI*2)}function C1(r,e){var t=Math.abs(r);return e>0?t:t*-1}function EO(r,e,t,n,i,a){var s=t,o=n;if(s===0||o===0)return{x:r,y:e};for(var l=i-r,u=a-e,c=Math.abs(l),h=Math.abs(u),f=s*s,d=o*o,v=Math.PI/4,g=0,p=0,m=0;m<4;m++){g=s*Math.cos(v),p=o*Math.sin(v);var b=(f-d)*Math.pow(Math.cos(v),3)/s,x=(d-f)*Math.pow(Math.sin(v),3)/o,O=g-b,T=p-x,S=c-b,k=h-x,C=Math.hypot(T,O),W=Math.hypot(k,S),U=C*Math.asin((O*k-T*S)/(C*W)),J=U/Math.sqrt(f+d-g*g-p*p);v+=J,v=Math.min(Math.PI/2,Math.max(0,v))}return{x:r+C1(g,l),y:e+C1(p,u)}}function wO(r,e,t,n,i,a,s,o){return-1*t*Math.cos(i)*Math.sin(o)-n*Math.sin(i)*Math.cos(o)}function PO(r,e,t,n,i,a,s,o){return-1*t*Math.sin(i)*Math.sin(o)+n*Math.cos(i)*Math.cos(o)}function MO(r,e,t){return Math.atan(-e/r*Math.tan(t))}function SO(r,e,t){return Math.atan(e/(r*Math.tan(t)))}function TO(r,e,t,n,i,a){return t*Math.cos(i)*Math.cos(a)-n*Math.sin(i)*Math.sin(a)+r}function AO(r,e,t,n,i,a){return t*Math.sin(i)*Math.cos(a)+n*Math.cos(i)*Math.sin(a)+e}function OO(r,e,t,n){var i=Math.atan2(n*r,t*e);return(i+Math.PI*2)%(Math.PI*2)}function N1(r,e,t){return{x:r*Math.cos(t),y:e*Math.sin(t)}}function _1(r,e,t){var n=Math.cos(t),i=Math.sin(t);return[r*n-e*i,r*i+e*n]}function R1(r,e,t,n,i,a,s){for(var o=MO(t,n,i),l=1/0,u=-1/0,c=[a,s],h=-Math.PI*2;h<=Math.PI*2;h+=Math.PI){var f=o+h;au&&(u=d)}for(var v=SO(t,n,i),g=1/0,p=-1/0,m=[a,s],h=-Math.PI*2;h<=Math.PI*2;h+=Math.PI){var b=v+h;ap&&(p=x)}return{x:l,y:g,width:u-l,height:p-g}}function qY(r,e,t,n,i,a,s,o,l){var u=_1(o-r,l-e,-i),c=__read(u,2),h=c[0],f=c[1],d=EO(0,0,t,n,h,f),v=OO(t,n,d.x,d.y);vs&&(d=N1(t,n,s));var g=_1(d.x,d.y,i);return{x:g[0]+r,y:g[1]+e}}function $Y(r,e,t,n,i,a,s,o){var l=(s-a)*o+a,u=wO(r,e,t,n,i,a,s,l),c=PO(r,e,t,n,i,a,s,l);return k1(Math.atan2(c,u))}var kO=1e-4;function L1(r,e,t,n,i,a){var s=-1,o=1/0,l=[t,n],u=20;a&&a>200&&(u=a/10);for(var c=1/u,h=c/10,f=0;f<=u;f++){var d=f*c,v=[i.apply(void 0,(0,Y.ev)([],(0,Y.CR)(r.concat([d])),!1)),i.apply(void 0,(0,Y.ev)([],(0,Y.CR)(e.concat([d])),!1))],g=Vr(l[0],l[1],v[0],v[1]);g=0&&go?Vr(t,n,i,a):D1(r,e,t,n,i,a)}function D1(r,e,t,n,i,a){var s=[t-r,n-e];if(kA(s,[0,0]))return Math.sqrt((i-r)*(i-r)+(a-e)*(a-e));var o=[-s[1],s[0]];AA(o,o);var l=[i-r,a-e];return Math.abs(OA(l,o))}function tU(r,e,t,n){return Math.atan2(n-e,t-r)}function wo(r,e,t,n,i){var a=1-i;return a*a*a*r+3*e*i*a*a+3*t*i*i*a+n*i*i*i}function I1(r,e,t,n,i){var a=1-i;return 3*(a*a*(e-r)+2*a*i*(t-e)+i*i*(n-t))}function B1(r,e,t,n){var i=-3*r+9*e-9*t+3*n,a=6*r-12*e+6*t,s=3*e-3*r,o=[],l,u,c;if(gl(i,0))gl(a,0)||(l=-s/a,l>=0&&l<=1&&o.push(l));else{var h=a*a-4*i*s;gl(h,0)?o.push(-a/(2*i)):h>0&&(c=Math.sqrt(h),l=(-a+c)/(2*i),u=(-a-c)/(2*i),l>=0&&l<=1&&o.push(l),u>=0&&u<=1&&o.push(u))}return o}function _O(r,e,t,n,i,a,s,o,l){var u=wo(r,t,i,s,l),c=wo(e,n,a,o,l),h=Ui(r,e,t,n,l),f=Ui(t,n,i,a,l),d=Ui(i,a,s,o,l),v=Ui(h.x,h.y,f.x,f.y,l),g=Ui(f.x,f.y,d.x,d.y,l);return[[r,e,h.x,h.y,v.x,v.y,u,c],[u,c,g.x,g.y,d.x,d.y,s,o]]}function _g(r,e,t,n,i,a,s,o,l){if(l===0)return CO([r,t,i,s],[e,n,a,o]);var u=_O(r,e,t,n,i,a,s,o,.5),c=__spreadArray(__spreadArray([],__read(u[0]),!1),[l-1],!1),h=__spreadArray(__spreadArray([],__read(u[1]),!1),[l-1],!1);return _g.apply(void 0,__spreadArray([],__read(c),!1))+_g.apply(void 0,__spreadArray([],__read(h),!1))}function z1(r,e,t,n,i,a,s,o){for(var l=[r,s],u=[e,o],c=B1(r,t,i,s),h=B1(e,n,a,o),f=0;f1||e<0||r.length<2)return null;var t=j1(r),n=t.segments,i=t.totalLength;if(i===0)return{x:r[0][0],y:r[0][1]};for(var a=0,s=null,o=0;o=a&&e<=a+h){var f=(e-a)/h;s=Ui(u[0],u[1],c[0],c[1],f);break}a+=h}return s}function X1(r,e){if(e>1||e<0||r.length<2)return 0;for(var t=j1(r),n=t.segments,i=t.totalLength,a=0,s=0,o=0;o=a&&e<=a+h){s=Math.atan2(c[1]-u[1],c[0]-u[0]);break}a+=h}return s}function W1(r,e,t){for(var n=1/0,i=0;i=0?[i]:[]}function DO(r,e,t,n,i,a,s){var o=Iu(r,t,i,s),l=Iu(e,n,a,s),u=Ui(r,e,t,n,s),c=Ui(t,n,i,a,s);return[[r,e,u.x,u.y,o,l],[o,l,c.x,c.y,i,a]]}function Rg(r,e,t,n,i,a,s){if(s===0)return(Vr(r,e,t,n)+Vr(t,n,i,a)+Vr(r,e,i,a))/2;var o=DO(r,e,t,n,i,a,.5),l=o[0],u=o[1];return l.push(s-1),u.push(s-1),Rg.apply(void 0,__spreadArray([],__read(l),!1))+Rg.apply(void 0,__spreadArray([],__read(u),!1))}function U1(r,e,t,n,i,a){var s=Y1(r,t,i)[0],o=Y1(e,n,a)[0],l=[r,i],u=[e,a];return s!==void 0&&l.push(Iu(r,t,i,s)),o!==void 0&&u.push(Iu(e,n,a,o)),gh(l,u)}function dU(r,e,t,n,i,a){return Rg(r,e,t,n,i,a,3)}function IO(r,e,t,n,i,a,s,o){return L1([r,t,i],[e,n,a],s,o,Iu)}function BO(r,e,t,n,i,a,s,o){var l=IO(r,e,t,n,i,a,s,o);return Vr(l.x,l.y,s,o)}function Po(){"use strict";Po=function(){return e};var r,e={},t=Object.prototype,n=t.hasOwnProperty,i=Object.defineProperty||function(Z,H,X){Z[H]=X.value},a=typeof Symbol=="function"?Symbol:{},s=a.iterator||"@@iterator",o=a.asyncIterator||"@@asyncIterator",l=a.toStringTag||"@@toStringTag";function u(Z,H,X){return Object.defineProperty(Z,H,{value:X,enumerable:!0,configurable:!0,writable:!0}),Z[H]}try{u({},"")}catch(Z){u=function(X,q,oe){return X[q]=oe}}function c(Z,H,X,q){var oe=H&&H.prototype instanceof m?H:m,de=Object.create(oe.prototype),Oe=new ae(q||[]);return i(de,"_invoke",{value:U(Z,X,Oe)}),de}function h(Z,H,X){try{return{type:"normal",arg:Z.call(H,X)}}catch(q){return{type:"throw",arg:q}}}e.wrap=c;var f="suspendedStart",d="suspendedYield",v="executing",g="completed",p={};function m(){}function b(){}function x(){}var O={};u(O,s,function(){return this});var T=Object.getPrototypeOf,S=T&&T(T(ve([])));S&&S!==t&&n.call(S,s)&&(O=S);var k=x.prototype=m.prototype=Object.create(O);function C(Z){["next","throw","return"].forEach(function(H){u(Z,H,function(X){return this._invoke(H,X)})})}function W(Z,H){function X(oe,de,Oe,Be){var Ge=h(Z[oe],Z,de);if(Ge.type!=="throw"){var Ve=Ge.arg,qe=Ve.value;return qe&&z(qe)=="object"&&n.call(qe,"__await")?H.resolve(qe.__await).then(function(lt){X("next",lt,Oe,Be)},function(lt){X("throw",lt,Oe,Be)}):H.resolve(qe).then(function(lt){Ve.value=lt,Oe(Ve)},function(lt){return X("throw",lt,Oe,Be)})}Be(Ge.arg)}var q;i(this,"_invoke",{value:function(de,Oe){function Be(){return new H(function(Ge,Ve){X(de,Oe,Ge,Ve)})}return q=q?q.then(Be,Be):Be()}})}function U(Z,H,X){var q=f;return function(oe,de){if(q===v)throw Error("Generator is already running");if(q===g){if(oe==="throw")throw de;return{value:r,done:!0}}for(X.method=oe,X.arg=de;;){var Oe=X.delegate;if(Oe){var Be=J(Oe,X);if(Be){if(Be===p)continue;return Be}}if(X.method==="next")X.sent=X._sent=X.arg;else if(X.method==="throw"){if(q===f)throw q=g,X.arg;X.dispatchException(X.arg)}else X.method==="return"&&X.abrupt("return",X.arg);q=v;var Ge=h(Z,H,X);if(Ge.type==="normal"){if(q=X.done?g:d,Ge.arg===p)continue;return{value:Ge.arg,done:X.done}}Ge.type==="throw"&&(q=g,X.method="throw",X.arg=Ge.arg)}}}function J(Z,H){var X=H.method,q=Z.iterator[X];if(q===r)return H.delegate=null,X==="throw"&&Z.iterator.return&&(H.method="return",H.arg=r,J(Z,H),H.method==="throw")||X!=="return"&&(H.method="throw",H.arg=new TypeError("The iterator does not provide a '"+X+"' method")),p;var oe=h(q,Z.iterator,H.arg);if(oe.type==="throw")return H.method="throw",H.arg=oe.arg,H.delegate=null,p;var de=oe.arg;return de?de.done?(H[Z.resultName]=de.value,H.next=Z.nextLoc,H.method!=="return"&&(H.method="next",H.arg=r),H.delegate=null,p):de:(H.method="throw",H.arg=new TypeError("iterator result is not an object"),H.delegate=null,p)}function te(Z){var H={tryLoc:Z[0]};1 in Z&&(H.catchLoc=Z[1]),2 in Z&&(H.finallyLoc=Z[2],H.afterLoc=Z[3]),this.tryEntries.push(H)}function ie(Z){var H=Z.completion||{};H.type="normal",delete H.arg,Z.completion=H}function ae(Z){this.tryEntries=[{tryLoc:"root"}],Z.forEach(te,this),this.reset(!0)}function ve(Z){if(Z||Z===""){var H=Z[s];if(H)return H.call(Z);if(typeof Z.next=="function")return Z;if(!isNaN(Z.length)){var X=-1,q=function oe(){for(;++X=0;--oe){var de=this.tryEntries[oe],Oe=de.completion;if(de.tryLoc==="root")return q("end");if(de.tryLoc<=this.prev){var Be=n.call(de,"catchLoc"),Ge=n.call(de,"finallyLoc");if(Be&&Ge){if(this.prev=0;--q){var oe=this.tryEntries[q];if(oe.tryLoc<=this.prev&&n.call(oe,"finallyLoc")&&this.prev=0;--X){var q=this.tryEntries[X];if(q.finallyLoc===H)return this.complete(q.completion,q.afterLoc),ie(q),p}},catch:function(H){for(var X=this.tryEntries.length-1;X>=0;--X){var q=this.tryEntries[X];if(q.tryLoc===H){var oe=q.completion;if(oe.type==="throw"){var de=oe.arg;ie(q)}return de}}throw Error("illegal catch attempt")},delegateYield:function(H,X,q){return this.delegate={iterator:ve(H),resultName:X,nextLoc:q},this.method==="next"&&(this.arg=r),p}},e}function Z1(r,e,t,n,i,a,s){try{var o=r[a](s),l=o.value}catch(u){return void t(u)}o.done?e(l):Promise.resolve(l).then(n,i)}function Lg(r){return function(){var e=this,t=arguments;return new Promise(function(n,i){var a=r.apply(e,t);function s(l){Z1(a,n,i,s,o,"next",l)}function o(l){Z1(a,n,i,s,o,"throw",l)}s(void 0)})}}function yl(r,e){var t=typeof Symbol!="undefined"&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=fe(r))||e&&r&&typeof r.length=="number"){t&&(r=t);var n=0,i=function(){};return{s:i,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(u){throw u},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(){t=t.call(r)},n:function(){var u=t.next();return s=u.done,u},e:function(u){o=!0,a=u},f:function(){try{s||t.return==null||t.return()}finally{if(o)throw a}}}}function zO(r,e){if(r==null)return{};var t={};for(var n in r)if({}.hasOwnProperty.call(r,n)){if(e.includes(n))continue;t[n]=r[n]}return t}function Mo(r,e){if(r==null)return{};var t,n,i=zO(r,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(r);for(n=0;nk;){if(C-k>600){var U=C-k+1,J=S-k+1,te=Math.log(U),ie=.5*Math.exp(2*te/3),ae=.5*Math.sqrt(te*ie*(U-ie)/U)*(J-U/2<0?-1:1),ve=Math.max(k,Math.floor(S-J*ie/U+ae)),Z=Math.min(C,Math.floor(S+(U-J)*ie/U+ae));n(T,S,ve,Z,W)}var H=T[S],X=k,q=C;for(i(T,k,S),W(T[C],H)>0&&i(T,k,C);X0;)q--}W(T[k],H)===0?i(T,k,q):(q++,i(T,q,C)),q<=S&&(k=q+1),S<=q&&(C=q-1)}}function i(T,S,k){var C=T[S];T[S]=T[k],T[k]=C}function a(T,S){return TS?1:0}var s=function(S){S===void 0&&(S=9),this._maxEntries=Math.max(4,S),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(S){var k=this.data,C=[];if(!b(S,k))return C;for(var W=this.toBBox,U=[];k;){for(var J=0;J=0&&U[k].children.length>this._maxEntries;)this._split(U,k),k--;this._adjustParentBBoxes(W,U,k)},s.prototype._split=function(S,k){var C=S[k],W=C.children.length,U=this._minEntries;this._chooseSplitAxis(C,U,W);var J=this._chooseSplitIndex(C,U,W),te=x(C.children.splice(J,C.children.length-J));te.height=C.height,te.leaf=C.leaf,l(C,this.toBBox),l(te,this.toBBox),k?S[k-1].children.push(te):this._splitRoot(C,te)},s.prototype._splitRoot=function(S,k){this.data=x([S,k]),this.data.height=S.height+1,this.data.leaf=!1,l(this.data,this.toBBox)},s.prototype._chooseSplitIndex=function(S,k,C){for(var W,U=1/0,J=1/0,te=k;te<=C-k;te++){var ie=u(S,0,te,this.toBBox),ae=u(S,te,C,this.toBBox),ve=p(ie,ae),Z=d(ie)+d(ae);ve=k;Z--){var H=S.children[Z];c(te,S.leaf?U(H):H),ie+=v(te)}return ie},s.prototype._adjustParentBBoxes=function(S,k,C){for(var W=C;W>=0;W--)c(k[W],S)},s.prototype._condense=function(S){for(var k=S.length-1,C=void 0;k>=0;k--)S[k].children.length===0?k>0?(C=S[k-1].children,C.splice(C.indexOf(S[k]),1)):this.clear():l(S[k],this.toBBox)};function o(T,S,k){if(!k)return S.indexOf(T);for(var C=0;C=T.minX&&S.maxY>=T.minY}function x(T){return{children:T,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function O(T,S,k,C,W){for(var U=[S,k];U.length;)if(k=U.pop(),S=U.pop(),!(k-S<=C)){var J=S+Math.ceil((k-S)/C/2)*C;t(T,J,S,k,W),U.push(S,J,J,k)}}return s})})(K1);var jO=K1.exports,je=function(r){return r.GROUP="g",r.FRAGMENT="fragment",r.CIRCLE="circle",r.ELLIPSE="ellipse",r.IMAGE="image",r.RECT="rect",r.LINE="line",r.POLYLINE="polyline",r.POLYGON="polygon",r.TEXT="text",r.PATH="path",r.HTML="html",r.MESH="mesh",r}({}),yh=function(r){return r[r.ZERO=0]="ZERO",r[r.NEGATIVE_ONE=1]="NEGATIVE_ONE",r}({}),Is=function(){function r(){_(this,r),this.plugins=[]}return N(r,[{key:"addRenderingPlugin",value:function(t){this.plugins.push(t),this.context.renderingPlugins.push(t)}},{key:"removeAllRenderingPlugins",value:function(){var t=this;this.plugins.forEach(function(n){var i=t.context.renderingPlugins.indexOf(n);i>=0&&t.context.renderingPlugins.splice(i,1)})}}])}(),GO=function(){function r(e){_(this,r),this.clipSpaceNearZ=yh.NEGATIVE_ONE,this.plugins=[],this.config=D({enableDirtyCheck:!0,enableCulling:!1,enableAutoRendering:!0,enableDirtyRectangleRendering:!0,enableDirtyRectangleRenderingDebug:!1,enableSizeAttenuation:!0,enableRenderingOptimization:!1},e)}return N(r,[{key:"registerPlugin",value:function(t){var n=this.plugins.findIndex(function(i){return i===t});n===-1&&this.plugins.push(t)}},{key:"unregisterPlugin",value:function(t){var n=this.plugins.findIndex(function(i){return i===t});n>-1&&this.plugins.splice(n,1)}},{key:"getPlugins",value:function(){return this.plugins}},{key:"getPlugin",value:function(t){return this.plugins.find(function(n){return n.name===t})}},{key:"getConfig",value:function(){return this.config}},{key:"setConfig",value:function(t){Object.assign(this.config,t)}}])}(),Dg=He,bl=Te,HO=Dt,XO=jn,Q1=wt,Ig=th,Rn=function(){function r(){_(this,r),this.center=[0,0,0],this.halfExtents=[0,0,0],this.min=[0,0,0],this.max=[0,0,0]}return N(r,[{key:"update",value:function(t,n){bl(this.center,t),bl(this.halfExtents,n),Ig(this.min,this.center,this.halfExtents),Dg(this.max,this.center,this.halfExtents)}},{key:"setMinMax",value:function(t,n){Dg(this.center,n,t),Q1(this.center,this.center,.5),Ig(this.halfExtents,n,t),Q1(this.halfExtents,this.halfExtents,.5),bl(this.min,t),bl(this.max,n)}},{key:"getMin",value:function(){return this.min}},{key:"getMax",value:function(){return this.max}},{key:"add",value:function(t){if(!r.isEmpty(t)){if(r.isEmpty(this)){this.setMinMax(t.getMin(),t.getMax());return}var n=this.center,i=n[0],a=n[1],s=n[2],o=this.halfExtents,l=o[0],u=o[1],c=o[2],h=i-l,f=i+l,d=a-u,v=a+u,g=s-c,p=s+c,m=t.center,b=m[0],x=m[1],O=m[2],T=t.halfExtents,S=T[0],k=T[1],C=T[2],W=b-S,U=b+S,J=x-k,te=x+k,ie=O-C,ae=O+C;Wf&&(f=U),Jv&&(v=te),iep&&(p=ae),n[0]=(h+f)*.5,n[1]=(d+v)*.5,n[2]=(g+p)*.5,o[0]=(f-h)*.5,o[1]=(v-d)*.5,o[2]=(p-g)*.5,this.min[0]=h,this.min[1]=d,this.min[2]=g,this.max[0]=f,this.max[1]=v,this.max[2]=p}}},{key:"setFromTransformedAABB",value:function(t,n){var i=this.center,a=this.halfExtents,s=t.center,o=t.halfExtents,l=n[0],u=n[4],c=n[8],h=n[1],f=n[5],d=n[9],v=n[2],g=n[6],p=n[10],m=Math.abs(l),b=Math.abs(u),x=Math.abs(c),O=Math.abs(h),T=Math.abs(f),S=Math.abs(d),k=Math.abs(v),C=Math.abs(g),W=Math.abs(p);i[0]=n[12]+l*s[0]+u*s[1]+c*s[2],i[1]=n[13]+h*s[0]+f*s[1]+d*s[2],i[2]=n[14]+v*s[0]+g*s[1]+p*s[2],a[0]=m*o[0]+b*o[1]+x*o[2],a[1]=O*o[0]+T*o[1]+S*o[2],a[2]=k*o[0]+C*o[1]+W*o[2],Ig(this.min,i,a),Dg(this.max,i,a)}},{key:"intersects",value:function(t){var n=this.getMax(),i=this.getMin(),a=t.getMax(),s=t.getMin();return i[0]<=a[0]&&n[0]>=s[0]&&i[1]<=a[1]&&n[1]>=s[1]&&i[2]<=a[2]&&n[2]>=s[2]}},{key:"intersection",value:function(t){if(!this.intersects(t))return null;var n=new r,i=HO([0,0,0],this.getMin(),t.getMin()),a=XO([0,0,0],this.getMax(),t.getMax());return n.setMinMax(i,a),n}},{key:"getNegativeFarPoint",value:function(t){return t.pnVertexFlag===273?bl([0,0,0],this.min):t.pnVertexFlag===272?[this.min[0],this.min[1],this.max[2]]:t.pnVertexFlag===257?[this.min[0],this.max[1],this.min[2]]:t.pnVertexFlag===256?[this.min[0],this.max[1],this.max[2]]:t.pnVertexFlag===17?[this.max[0],this.min[1],this.min[2]]:t.pnVertexFlag===16?[this.max[0],this.min[1],this.max[2]]:t.pnVertexFlag===1?[this.max[0],this.max[1],this.min[2]]:[this.max[0],this.max[1],this.max[2]]}},{key:"getPositiveFarPoint",value:function(t){return t.pnVertexFlag===273?bl([0,0,0],this.max):t.pnVertexFlag===272?[this.max[0],this.max[1],this.min[2]]:t.pnVertexFlag===257?[this.max[0],this.min[1],this.max[2]]:t.pnVertexFlag===256?[this.max[0],this.min[1],this.min[2]]:t.pnVertexFlag===17?[this.min[0],this.max[1],this.max[2]]:t.pnVertexFlag===16?[this.min[0],this.max[1],this.min[2]]:t.pnVertexFlag===1?[this.min[0],this.min[1],this.max[2]]:[this.min[0],this.min[1],this.min[2]]}}],[{key:"isEmpty",value:function(t){return!t||t.halfExtents[0]===0&&t.halfExtents[1]===0&&t.halfExtents[2]===0}}])}(),WO=function(){function r(e,t){_(this,r),this.distance=e||0,this.normal=t||me(0,1,0),this.updatePNVertexFlag()}return N(r,[{key:"updatePNVertexFlag",value:function(){this.pnVertexFlag=(+(this.normal[0]>=0)<<8)+(+(this.normal[1]>=0)<<4)+ +(this.normal[2]>=0)}},{key:"distanceToPoint",value:function(t){return dn(t,this.normal)-this.distance}},{key:"normalize",value:function(){var t=1/wu(this.normal);wt(this.normal,this.normal,t),this.distance*=t}},{key:"intersectsLine",value:function(t,n,i){var a=this.distanceToPoint(t),s=this.distanceToPoint(n),o=a/(a-s),l=o>=0&&o<=1;return l&&i&&Ha(i,t,n,o),l}}])}(),xl=function(r){return r[r.OUTSIDE=4294967295]="OUTSIDE",r[r.INSIDE=0]="INSIDE",r[r.INDETERMINATE=2147483647]="INDETERMINATE",r}({}),VO=function(){function r(e){if(_(this,r),this.planes=[],e)this.planes=e;else for(var t=0;t<6;t++)this.planes.push(new WO)}return N(r,[{key:"extractFromVPMatrix",value:function(t){var n=Ie(t,16),i=n[0],a=n[1],s=n[2],o=n[3],l=n[4],u=n[5],c=n[6],h=n[7],f=n[8],d=n[9],v=n[10],g=n[11],p=n[12],m=n[13],b=n[14],x=n[15];Ae(this.planes[0].normal,o-i,h-l,g-f),this.planes[0].distance=x-p,Ae(this.planes[1].normal,o+i,h+l,g+f),this.planes[1].distance=x+p,Ae(this.planes[2].normal,o+a,h+u,g+d),this.planes[2].distance=x+m,Ae(this.planes[3].normal,o-a,h-u,g-d),this.planes[3].distance=x-m,Ae(this.planes[4].normal,o-s,h-c,g-v),this.planes[4].distance=x-b,Ae(this.planes[5].normal,o+s,h+c,g+v),this.planes[5].distance=x+b,this.planes.forEach(function(O){O.normalize(),O.updatePNVertexFlag()})}}])}(),Ir=function(){function r(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;_(this,r),this.x=0,this.y=0,this.x=e,this.y=t}return N(r,[{key:"clone",value:function(){return new r(this.x,this.y)}},{key:"copyFrom",value:function(t){this.x=t.x,this.y=t.y}}])}(),El=function(){function r(e,t,n,i){_(this,r),this.x=e,this.y=t,this.width=n,this.height=i,this.left=e,this.right=e+n,this.top=t,this.bottom=t+i}return N(r,[{key:"toJSON",value:function(){}}],[{key:"fromRect",value:function(t){return new r(t.x,t.y,t.width,t.height)}},{key:"applyTransform",value:function(t,n){var i=ma(t.x,t.y,0,1),a=ma(t.x+t.width,t.y,0,1),s=ma(t.x,t.y+t.height,0,1),o=ma(t.x+t.width,t.y+t.height,0,1),l=hr(),u=hr(),c=hr(),h=hr();Ze(l,i,n),Ze(u,a,n),Ze(c,s,n),Ze(h,o,n);var f=Math.min(l[0],u[0],c[0],h[0]),d=Math.min(l[1],u[1],c[1],h[1]),v=Math.max(l[0],u[0],c[0],h[0]),g=Math.max(l[1],u[1],c[1],h[1]);return r.fromRect({x:f,y:d,width:v-f,height:g-d})}}])}(),yn="Method not implemented.",wl="Use document.documentElement instead.",YO="Cannot append a destroyed element.";function Pl(r){return r===void 0?0:r>360||r<-360?r%360:r}var Bg=Me();function $r(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;return Array.isArray(r)&&r.length===3?n?De(r):Te(Bg,r):ht(r)?n?me(r,e,t):Ae(Bg,r,e,t):n?me(r[0],r[1]||e,r[2]||t):Ae(Bg,r[0],r[1]||e,r[2]||t)}var UO=Math.PI/180;function bn(r){return r*UO}var ZO=180/Math.PI;function yi(r){return r*ZO}var KO=.9;function vU(r){return r%=400,r<0&&(r+=400),r*KO}function gU(r){return r/360}function QO(r){return 360*r}var bh=Math.PI/2;function JO(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=t*t,o=n*n,l=i*i,u=a*a,c=s+o+l+u,h=t*a-n*i;return h>.499995*c?(r[0]=bh,r[1]=2*Math.atan2(n,t),r[2]=0):h<-.499995*c?(r[0]=-bh,r[1]=2*Math.atan2(n,t),r[2]=0):(r[0]=Math.asin(2*(t*i-a*n)),r[1]=Math.atan2(2*(t*a+n*i),1-2*(l+u)),r[2]=Math.atan2(2*(t*n+i*a),1-2*(o+l))),r}function qO(r,e){var t,n,i=Wa(Me(),e),a=Ie(i,3),s=a[0],o=a[1],l=a[2],u=Math.asin(-e[2]/s);return u-bh?(t=Math.atan2(e[6]/o,e[10]/l),n=Math.atan2(e[1]/s,e[0]/s)):(n=0,t=-Math.atan2(e[4]/o,e[5]/o)):(n=0,t=Math.atan2(e[4]/o,e[5]/o)),r[0]=t,r[1]=u,r[2]=n,r}function zg(r,e){return e.length===16?qO(r,e):JO(r,e)}function $O(r,e,t,n,i){var a=Math.cos(r),s=Math.sin(r);return qy(n*a,i*s,0,-n*s,i*a,0,e,t,1)}function ek(r,e,t,n,i,a,s){var o=arguments.length>7&&arguments[7]!==void 0?arguments[7]:!1,l=2*a,u=t-e,c=n-i,h=l/u,f=l/c,d=(t+e)/u,v=(n+i)/c,g,p,m=s-a,b=s*a;return o?(g=-s/m,p=-b/m):(g=-(s+a)/m,p=-2*b/m),r[0]=h,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=f,r[6]=0,r[7]=0,r[8]=d,r[9]=v,r[10]=g,r[11]=-1,r[12]=0,r[13]=0,r[14]=p,r[15]=0,r}function J1(r){var e=r[0],t=r[1],n=r[3],i=r[4],a=Math.sqrt(e*e+t*t),s=Math.sqrt(n*n+i*i),o=e*i-t*n;if(o<0&&(e_t[1][2]&&(a[0]=-a[0]),_t[0][2]>_t[2][0]&&(a[1]=-a[1]),_t[1][0]>_t[0][1]&&(a[2]=-a[2]),!0}function nk(r,e){var t=e[15];if(t===0)return!1;for(var n=1/t,i=0;i<16;i++)r[i]=e[i]*n;return!0}function rk(r,e){r[0][0]=e[0],r[0][1]=e[1],r[0][2]=e[2],r[1][0]=e[4],r[1][1]=e[5],r[1][2]=e[6],r[2][0]=e[8],r[2][1]=e[9],r[2][2]=e[10]}function Fg(r,e,t,n,i){r[0]=e[0]*n+t[0]*i,r[1]=e[1]*n+t[1]*i,r[2]=e[2]*n+t[2]*i}var xn=function(r){return r[r.ORBITING=0]="ORBITING",r[r.EXPLORING=1]="EXPLORING",r[r.TRACKING=2]="TRACKING",r}({}),jg=function(r){return r[r.DEFAULT=0]="DEFAULT",r[r.ROTATIONAL=1]="ROTATIONAL",r[r.TRANSLATIONAL=2]="TRANSLATIONAL",r[r.CINEMATIC=3]="CINEMATIC",r}({}),Zi=function(r){return r[r.ORTHOGRAPHIC=0]="ORTHOGRAPHIC",r[r.PERSPECTIVE=1]="PERSPECTIVE",r}({}),$1={UPDATED:"updated"},eb=2e-4,tb=function(){function r(){_(this,r),this.clipSpaceNearZ=yh.NEGATIVE_ONE,this.eventEmitter=new Je,this.matrix=mt(),this.right=me(1,0,0),this.up=me(0,1,0),this.forward=me(0,0,1),this.position=me(0,0,1),this.focalPoint=me(0,0,0),this.distanceVector=me(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=mt(),this.projectionMatrixInverse=mt(),this.jitteredProjectionMatrix=void 0,this.enableUpdate=!0,this.type=xn.EXPLORING,this.trackingMode=jg.DEFAULT,this.projectionMode=Zi.PERSPECTIVE,this.frustum=new VO,this.orthoMatrix=mt()}return N(r,[{key:"isOrtho",value:function(){return this.projectionMode===Zi.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(t){this.enableUpdate=t}},{key:"setType",value:function(t,n){return this.type=t,this.type===xn.EXPLORING?this.setWorldRotation(!0):this.setWorldRotation(!1),this._getAngles(),this.type===xn.TRACKING&&n!==void 0&&this.setTrackingMode(n),this}},{key:"setProjectionMode",value:function(t){return this.projectionMode=t,this}},{key:"setTrackingMode",value:function(t){if(this.type!==xn.TRACKING)throw new Error("Impossible to set a tracking mode if the camera is not of tracking type");return this.trackingMode=t,this}},{key:"setWorldRotation",value:function(t){return this.rotateWorld=t,this._getAngles(),this}},{key:"getViewTransform",value:function(){return Ot(mt(),this.matrix)}},{key:"getWorldTransform",value:function(){return this.matrix}},{key:"jitterProjectionMatrix",value:function(t,n){var i=Dr(mt(),[t,n,0]);this.jitteredProjectionMatrix=Ut(mt(),i,this.projectionMatrix)}},{key:"clearJitterProjectionMatrix",value:function(){this.jitteredProjectionMatrix=void 0}},{key:"setMatrix",value:function(t){return this.matrix=t,this._update(),this}},{key:"setProjectionMatrix",value:function(t){this.projectionMatrix=t}},{key:"setFov",value:function(t){return this.setPerspective(this.near,this.far,t,this.aspect),this}},{key:"setAspect",value:function(t){return this.setPerspective(this.near,this.far,this.fov,t),this}},{key:"setNear",value:function(t){return this.projectionMode===Zi.PERSPECTIVE?this.setPerspective(t,this.far,this.fov,this.aspect):this.setOrthographic(this.left,this.rright,this.top,this.bottom,t,this.far),this}},{key:"setFar",value:function(t){return this.projectionMode===Zi.PERSPECTIVE?this.setPerspective(this.near,t,this.fov,this.aspect):this.setOrthographic(this.left,this.rright,this.top,this.bottom,this.near,t),this}},{key:"setViewOffset",value:function(t,n,i,a,s,o){return this.aspect=t/n,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=t,this.view.fullHeight=n,this.view.offsetX=i,this.view.offsetY=a,this.view.width=s,this.view.height=o,this.projectionMode===Zi.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===Zi.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(t){return this.zoom=t,this.projectionMode===Zi.ORTHOGRAPHIC?this.setOrthographic(this.left,this.rright,this.top,this.bottom,this.near,this.far):this.projectionMode===Zi.PERSPECTIVE&&this.setPerspective(this.near,this.far,this.fov,this.aspect),this}},{key:"setZoomByViewportPoint",value:function(t,n){var i=this.canvas.viewport2Canvas({x:n[0],y:n[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(t),this.rotate(0,0,o);var l=this.canvas.viewport2Canvas({x:n[0],y:n[1]}),u=l.x,c=l.y,h=me(u-a,c-s,0),f=dn(h,this.right)/ze(this.right),d=dn(h,this.up)/ze(this.up),v=this.getPosition(),g=Ie(v,2),p=g[0],m=g[1],b=this.getFocalPoint(),x=Ie(b,2),O=x[0],T=x[1];return this.setPosition(p-f,m-d),this.setFocalPoint(O-f,T-d),this}},{key:"setPerspective",value:function(t,n,i,a){var s;this.projectionMode=Zi.PERSPECTIVE,this.fov=i,this.near=t,this.far=n,this.aspect=a;var o=this.near*Math.tan(bn(.5*this.fov))/this.zoom,l=2*o,u=this.aspect*l,c=-.5*u;if((s=this.view)!==null&&s!==void 0&&s.enabled){var h=this.view.fullWidth,f=this.view.fullHeight;c+=this.view.offsetX*u/h,o-=this.view.offsetY*l/f,u*=this.view.width/h,l*=this.view.height/f}return ek(this.projectionMatrix,c,c+u,o-l,o,t,this.far,this.clipSpaceNearZ===yh.ZERO),Ot(this.projectionMatrixInverse,this.projectionMatrix),this.triggerUpdate(),this}},{key:"setOrthographic",value:function(t,n,i,a,s,o){var l;this.projectionMode=Zi.ORTHOGRAPHIC,this.rright=n,this.left=t,this.top=i,this.bottom=a,this.near=s,this.far=o;var u=(this.rright-this.left)/(2*this.zoom),c=(this.top-this.bottom)/(2*this.zoom),h=(this.rright+this.left)/2,f=(this.top+this.bottom)/2,d=h-u,v=h+u,g=f+c,p=f-c;if((l=this.view)!==null&&l!==void 0&&l.enabled){var m=(this.rright-this.left)/this.view.fullWidth/this.zoom,b=(this.top-this.bottom)/this.view.fullHeight/this.zoom;d+=m*this.view.offsetX,v=d+m*this.view.width,g-=b*this.view.offsetY,p=g-b*this.view.height}return this.clipSpaceNearZ===yh.NEGATIVE_ONE?bg(this.projectionMatrix,d,v,g,p,s,o):xg(this.projectionMatrix,d,v,g,p,s,o),Ot(this.projectionMatrixInverse,this.projectionMatrix),this._getOrthoMatrix(),this.triggerUpdate(),this}},{key:"setPosition",value:function(t){var n=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=$r(t,n,i);return this._setPosition(a),this.setFocalPoint(this.focalPoint),this.triggerUpdate(),this}},{key:"setFocalPoint",value:function(t){var n=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=me(0,1,0);if(this.focalPoint=$r(t,n,i),this.trackingMode===jg.CINEMATIC){var s=xt(Me(),this.focalPoint,this.position);t=s[0],n=s[1],i=s[2];var o=ze(s),l=yi(Math.asin(n/o)),u=90+yi(Math.atan2(i,t)),c=mt();Su(c,c,bn(u)),Mu(c,c,bn(l)),a=Dn(Me(),[0,1,0],c)}return Ot(this.matrix,Eg(mt(),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(t){if(this.distance===t||t<0)return this;this.distance=t,this.distance=Ml.kUnitType&&this.getType()<=Ml.kClampType}}],[{key:"isAngle",value:function(t){return t===ut.kDegrees||t===ut.kRadians||t===ut.kGradians||t===ut.kTurns}},{key:"isLength",value:function(t){return t>=ut.kEms&&t1&&arguments[1]!==void 0?arguments[1]:"",n="";return Number.isFinite(e)?n="NaN":e>0?n="infinity":n="-infinity",n+=t},Hg=function(e){return hk(ck(e))},En=function(r){function e(t){var n,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ut.kNumber;_(this,e),n=Ee(this,e);var a;return typeof i=="string"?a=uk(i):a=i,n.unit=a,n.value=t,n}return Pe(e,r),N(e,[{key:"clone",value:function(){return new e(this.value,this.unit)}},{key:"equals",value:function(n){var i=n;return this.value===i.value&&this.unit===i.unit}},{key:"getType",value:function(){return Ml.kUnitType}},{key:"convertTo",value:function(n){if(this.unit===n)return new e(this.value,this.unit);var i=Hg(this.unit);if(i!==Hg(n)||i===ut.kUnknown)return null;var a=rb(this.unit)/rb(n);return new e(this.value*a,n)}},{key:"buildCSSText",value:function(n,i,a){var s;switch(this.unit){case ut.kUnknown:break;case ut.kInteger:s=Number(this.value).toFixed(0);break;case ut.kNumber:case ut.kPercentage:case ut.kEms:case ut.kRems:case ut.kPixels:case ut.kDegrees:case ut.kRadians:case ut.kGradians:case ut.kMilliseconds:case ut.kSeconds:case ut.kTurns:{var o=-999999,l=999999,u=this.value,c=Gg(this.unit);if(ul){var h=Gg(this.unit);!Number.isFinite(u)||Number.isNaN(u)?s=dk(u,h):s=u+(h||"")}else s="".concat(u).concat(c)}}return a+=s,a}}])}(Eh),Ea=new En(0,"px");new En(1,"px");var So=new En(0,"deg"),Xg=function(r){function e(t,n,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 _(this,e),a=Ee(this,e,["rgb"]),a.r=t,a.g=n,a.b=i,a.alpha=s,a.isNone=o,a}return Pe(e,r),N(e,[{key:"clone",value:function(){return new e(this.r,this.g,this.b,this.alpha)}},{key:"buildCSSText",value:function(n,i,a){return"".concat(a,"rgba(").concat(this.r,",").concat(this.g,",").concat(this.b,",").concat(this.alpha,")")}}])}(fk),ib=new Ki("unset"),vk=new Ki("initial"),gk=new Ki("inherit"),Wg={"":ib,unset:ib,initial:vk,inherit:gk},pk=function(e){return Wg[e]||(Wg[e]=new Ki(e)),Wg[e]},ab=new Xg(0,0,0,0,!0),sb=new Xg(0,0,0,0),mk=ei(function(r,e,t,n){return new Xg(r,e,t,n)},function(r,e,t,n){return"rgba(".concat(r,",").concat(e,",").concat(t,",").concat(n,")")}),Xn=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ut.kNumber;return new En(e,t)};new En(50,"%");function yk(r){var e=r.type,t=r.value;return e==="hex"?"#".concat(t):e==="literal"?t:e==="rgb"?"rgb(".concat(t.join(","),")"):"rgba(".concat(t.join(","),")")}var bk=function(){var r={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]+\.?))/},e="";function t(H){throw new Error("".concat(e,": ").concat(H))}function n(){var H=i();return e.length>0&&t("Invalid input not EOF"),H}function i(){return x(a)}function a(){return s("linear-gradient",r.linearGradient,l)||s("repeating-linear-gradient",r.repeatingLinearGradient,l)||s("radial-gradient",r.radialGradient,h)||s("repeating-radial-gradient",r.repeatingRadialGradient,h)||s("conic-gradient",r.conicGradient,h)}function s(H,X,q){return o(X,function(oe){var de=q();return de&&(ve(r.comma)||t("Missing comma before color stops")),{type:H,orientation:de,colorStops:x(O)}})}function o(H,X){var q=ve(H);if(q){ve(r.startCall)||t("Missing (");var oe=X(q);return ve(r.endCall)||t("Missing )"),oe}}function l(){return u()||c()}function u(){return ae("directional",r.sideOrCorner,1)}function c(){return ae("angular",r.angleValue,1)}function h(){var H,X=f(),q;return X&&(H=[],H.push(X),q=e,ve(r.comma)&&(X=f(),X?H.push(X):e=q)),H}function f(){var H=d()||v();if(H)H.at=p();else{var X=g();if(X){H=X;var q=p();q&&(H.at=q)}else{var oe=m();oe&&(H={type:"default-radial",at:oe})}}return H}function d(){var H=ae("shape",/^(circle)/i,0);return H&&(H.style=ie()||g()),H}function v(){var H=ae("shape",/^(ellipse)/i,0);return H&&(H.style=J()||g()),H}function g(){return ae("extent-keyword",r.extentKeywords,1)}function p(){if(ae("position",/^at/,0)){var H=m();return H||t("Missing positioning value"),H}}function m(){var H=b();if(H.x||H.y)return{type:"position",value:H}}function b(){return{x:J(),y:J()}}function x(H){var X=H(),q=[];if(X)for(q.push(X);ve(r.comma);)X=H(),X?q.push(X):t("One extra comma");return q}function O(){var H=T();return H||t("Expected color definition"),H.length=J(),H}function T(){return k()||W()||C()||S()}function S(){return ae("literal",r.literalColor,0)}function k(){return ae("hex",r.hexColor,1)}function C(){return o(r.rgbColor,function(){return{type:"rgb",value:x(U)}})}function W(){return o(r.rgbaColor,function(){return{type:"rgba",value:x(U)}})}function U(){return ve(r.number)[1]}function J(){return ae("%",r.percentageValue,1)||te()||ie()}function te(){return ae("position-keyword",r.positionKeywords,1)}function ie(){return ae("px",r.pixelValue,1)||ae("em",r.emValue,1)}function ae(H,X,q){var oe=ve(X);if(oe)return{type:H,value:oe[q]}}function ve(H){var X=/^[\n\r\t\s]+/.exec(e);X&&Z(X[0].length);var q=H.exec(e);return q&&Z(q[0].length),q}function Z(H){e=e.substring(H)}return function(H){return e=H,n()}}();function xk(r,e,t,n){var i=bn(n.value),a=0,s=0,o=a+e/2,l=s+t/2,u=Math.abs(e*Math.cos(i))+Math.abs(t*Math.sin(i)),c=r[0]+o-Math.cos(i)*u/2,h=r[1]+l-Math.sin(i)*u/2,f=r[0]+o+Math.cos(i)*u/2,d=r[1]+l+Math.sin(i)*u/2;return{x1:c,y1:h,x2:f,y2:d}}function Ek(r,e,t,n,i,a){var s=n.value,o=i.value;n.unit===ut.kPercentage&&(s=n.value/100*e),i.unit===ut.kPercentage&&(o=i.value/100*t);var l=Math.max(gi([0,0],[s,o]),gi([0,t],[s,o]),gi([e,t],[s,o]),gi([e,0],[s,o]));return a&&(a instanceof En?l=a.value:a instanceof Ki&&(a.value==="closest-side"?l=Math.min(s,e-s,o,t-o):a.value==="farthest-side"?l=Math.max(s,e-s,o,t-o):a.value==="closest-corner"&&(l=Math.min(gi([0,0],[s,o]),gi([0,t],[s,o]),gi([e,t],[s,o]),gi([e,0],[s,o]))))),{x:s+r[0],y:o+r[1],r:l}}var wk=/^l\s*\(\s*([\d.]+)\s*\)\s*(.*)/i,Pk=/^r\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)\s*(.*)/i,Mk=/^p\s*\(\s*([axyn])\s*\)\s*(.*)/i,ob=/[\d.]+:(#[^\s]+|[^\)]+\))/gi;function Sk(r){var e,t=r.length;if(r[t-1].length=(e=r[t-1].length)!==null&&e!==void 0?e:{type:"%",value:"100"},t>1){var n;r[0].length=(n=r[0].length)!==null&&n!==void 0?n:{type:"%",value:"0"}}for(var i=0,a=Number(r[0].length.value),s=1;s-1||r.indexOf("radial")>-1){var e=bk(r);return e.map(function(o){var l=o.type,u=o.orientation,c=o.colorStops;Sk(c);var h=c.map(function(x){return{offset:Xn(Number(x.length.value),"%"),color:yk(x)}});if(l==="linear-gradient")return new wh(Bs.LinearGradient,{angle:u?Ak(u):So,steps:h});if(l==="radial-gradient"&&(u||(u=[{type:"shape",value:"circle"}]),u[0].type==="shape"&&u[0].value==="circle")){var f=Ok(u[0].at),d=f.cx,v=f.cy,g;if(u[0].style){var p=u[0].style,m=p.type,b=p.value;m==="extent-keyword"?g=pk(b):g=Xn(b,m)}return new wh(Bs.RadialGradient,{cx:d,cy:v,size:g,steps:h})}})}var t=r[0];if(r[1]==="("||r[2]==="("){if(t==="l"){var n=wk.exec(r);if(n){var i,a=((i=n[2].match(ob))===null||i===void 0?void 0:i.map(function(o){return o.split(":")}))||[];return[new wh(Bs.LinearGradient,{angle:Xn(parseFloat(n[1]),"deg"),steps:a.map(function(o){var l=Ie(o,2),u=l[0],c=l[1];return{offset:Xn(Number(u)*100,"%"),color:c}})})]}}else if(t==="r"){var s=Ck(r);if(s)if(Xt(s))r=s;else return[new wh(Bs.RadialGradient,s)]}else if(t==="p")return Nk(r)}});function Ck(r){var e=Pk.exec(r);if(e){var t,n=((t=e[4].match(ob))===null||t===void 0?void 0:t.map(function(i){return i.split(":")}))||[];return{cx:Xn(50,"%"),cy:Xn(50,"%"),steps:n.map(function(i){var a=Ie(i,2),s=a[0],o=a[1];return{offset:Xn(Number(s)*100,"%"),color:o}})}}return null}function Nk(r){var e=Mk.exec(r);if(e){var t=e[1],n=e[2];switch(t){case"a":t="repeat";break;case"x":t="repeat-x";break;case"y":t="repeat-y";break;case"n":t="no-repeat";break;default:t="no-repeat"}return{image:n,repetition:t}}return null}function pU(r){return!!r.type&&!!r.value}function To(r){return r&&!!r.image}function Ph(r){return r&&!vt(r.r)&&!vt(r.g)&&!vt(r.b)}var zu=ei(function(r){if(To(r))return D({repetition:"repeat"},r);if(vt(r)&&(r=""),r==="transparent")return sb;if(r==="currentColor")r="black";else if(r==="none")return ab;var e=kk(r);if(e)return e;var t=hh(r),n=[0,0,0,0];return t!==null&&(n[0]=t.r||0,n[1]=t.g||0,n[2]=t.b||0,n[3]=t.opacity),mk.apply(void 0,n)});function _k(r,e){if(!(!Ph(r)||!Ph(e)))return[[Number(r.r),Number(r.g),Number(r.b),Number(r.alpha)],[Number(e.r),Number(e.g),Number(e.b),Number(e.alpha)],function(t){var n=t.slice();if(n[3])for(var i=0;i<3;i++)n[i]=Math.round(on(n[i],0,255));return n[3]=on(n[3],0,1),"rgba(".concat(n.join(","),")")}]}function Fu(r,e){if(vt(e))return Xn(0,"px");if(e="".concat(e).trim().toLowerCase(),isFinite(Number(e))){if("px".search(r)>=0)return Xn(Number(e),"px");if("deg".search(r)>=0)return Xn(Number(e),"deg")}var t=[];e=e.replace(r,function(i){return t.push(i),"U".concat(i)});var n="U(".concat(r.source,")");return t.map(function(i){return Xn(Number(e.replace(new RegExp("U".concat(i),"g"),"").replace(new RegExp(n,"g"),"*0")),i)})[0]}var lb=function(e){return Fu(new RegExp("px","g"),e)},Rk=ei(lb),Lk=function(e){return Fu(new RegExp("%","g"),e)};ei(Lk);var ub=function(e){return ht(e)||isFinite(Number(e))?Xn(Number(e)||0,"px"):Fu(new RegExp("px|%|em|rem","g"),e)},Vg=ei(ub),cb=function(e){return Fu(new RegExp("deg|rad|grad|turn","g"),e)},Dk=ei(cb);function Ik(r,e,t,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,a="",s=r.value||0,o=e.value||0,l=Hg(r.unit),u=r.convertTo(l),c=e.convertTo(l);return u&&c?(s=u.value,o=c.value,a=Gg(r.unit)):(En.isLength(r.unit)||En.isLength(e.unit))&&(s=ki(r,i,t),o=ki(e,i,t),a="px"),[s,o,function(h){return n&&(h=Math.max(h,0)),h+a}]}function bi(r){var e=0;return r.unit===ut.kDegrees?e=r.value:r.unit===ut.kRadians?e=yi(Number(r.value)):r.unit===ut.kTurns?e=QO(Number(r.value)):r.value&&(e=r.value),e}function hb(r,e){var t;return Array.isArray(r)?t=r.map(function(n){return Number(n)}):Xt(r)?t=r.split(" ").map(function(n){return Number(n)}):ht(r)&&(t=[r]),e===2?t.length===1?[t[0],t[0]]:[t[0],t[1]]:t.length===1?[t[0],t[0],t[0],t[0]]:t.length===2?[t[0],t[1],t[0],t[1]]:t.length===3?[t[0],t[1],t[2],t[1]]:[t[0],t[1],t[2],t[3]]}function ki(r,e,t){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(r.unit===ut.kPixels)return Number(r.value);if(r.unit===ut.kPercentage&&t){var i=t.nodeName===je.GROUP?t.getLocalBounds():t.getGeometryBounds();return(n?i.min[e]:0)+r.value/100*i.halfExtents[e]*2}return 0}var Bk=function(e){return Fu(/deg|rad|grad|turn|px|%/g,e)},zk=["blur","brightness","drop-shadow","contrast","grayscale","sepia","saturate","hue-rotate","invert"];function Fk(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";if(r=r.toLowerCase().trim(),r==="none")return[];for(var e=/\s*([\w-]+)\(([^)]*)\)/g,t=[],n,i=0;n=e.exec(r);){if(n.index!==i)return[];if(i=n.index+n[0].length,zk.indexOf(n[1])>-1&&t.push({name:n[1],params:n[2].split(" ").map(function(a){return Bk(a)||zu(a)})}),e.lastIndex===r.length)return t}return[]}function fb(r){return r.toString()}var db=function(e){return typeof e=="number"?Xn(e):/^\s*[-+]?(\d*\.)?\d+\s*$/.test(e)?Xn(Number(e)):Xn(0)},Yg=ei(db);ei(function(r){return Xt(r)?r.split(" ").map(Yg):r.map(Yg)});function Ug(r,e){return[r,e,fb]}function Zg(r,e){return function(t,n){return[t,n,function(i){return fb(on(i,r,e))}]}}function vb(r,e){if(r.length===e.length)return[r,e,function(t){return t}]}function Kg(r){return r.parsedStyle.d.totalLength===0&&(r.parsedStyle.d.totalLength=c1(r.parsedStyle.d.absolutePath)),r.parsedStyle.d.totalLength}function jk(r){return r.parsedStyle.points.totalLength===0&&(r.parsedStyle.points.totalLength=V1(r.parsedStyle.points.points)),r.parsedStyle.points.totalLength}function Gk(r){for(var e=0;e0&&t.push(n),{polygons:e,polylines:t}}function Mh(r,e){return r[0]===e[0]&&r[1]===e[1]}function Wk(r,e){for(var t=[],n=[],i=[],a=0;aMath.PI/2?Math.PI-u:u,c=c>Math.PI/2?Math.PI-c:c;var h={xExtra:Math.cos(l/2-u)*(e/2*(1/Math.sin(l/2)))-e/2||0,yExtra:Math.cos(c-l/2)*(e/2*(1/Math.sin(l/2)))-e/2||0};return h}function gb(r,e){return[e[0]+(e[0]-r[0]),e[1]+(e[1]-r[1])]}var pb=function(e,t){var n=e.x*t.x+e.y*t.y,i=Math.sqrt((Math.pow(e.x,2)+Math.pow(e.y,2))*(Math.pow(t.x,2)+Math.pow(t.y,2))),a=e.x*t.y-e.y*t.x<0?-1:1,s=a*Math.acos(n/i);return s},mb=function(e,t,n,i,a,s,o,l){t=Math.abs(t),n=Math.abs(n),i=oh(i,360);var u=bn(i);if(e.x===o.x&&e.y===o.y)return{x:e.x,y:e.y,ellipticalArcAngle:0};if(t===0||n===0)return{x:0,y:0,ellipticalArcAngle:0};var c=(e.x-o.x)/2,h=(e.y-o.y)/2,f={x:Math.cos(u)*c+Math.sin(u)*h,y:-Math.sin(u)*c+Math.cos(u)*h},d=Math.pow(f.x,2)/Math.pow(t,2)+Math.pow(f.y,2)/Math.pow(n,2);d>1&&(t*=Math.sqrt(d),n*=Math.sqrt(d));var v=Math.pow(t,2)*Math.pow(n,2)-Math.pow(t,2)*Math.pow(f.y,2)-Math.pow(n,2)*Math.pow(f.x,2),g=Math.pow(t,2)*Math.pow(f.y,2)+Math.pow(n,2)*Math.pow(f.x,2),p=v/g;p=p<0?0:p;var m=(a!==s?1:-1)*Math.sqrt(p),b={x:m*(t*f.y/n),y:m*(-(n*f.x)/t)},x={x:Math.cos(u)*b.x-Math.sin(u)*b.y+(e.x+o.x)/2,y:Math.sin(u)*b.x+Math.cos(u)*b.y+(e.y+o.y)/2},O={x:(f.x-b.x)/t,y:(f.y-b.y)/n},T=pb({x:1,y:0},O),S={x:(-f.x-b.x)/t,y:(-f.y-b.y)/n},k=pb(O,S);!s&&k>0?k-=2*Math.PI:s&&k<0&&(k+=2*Math.PI),k%=2*Math.PI;var C=T+k*l,W=t*Math.cos(C),U=n*Math.sin(C),J={x:Math.cos(u)*W-Math.sin(u)*U+x.x,y:Math.sin(u)*W+Math.cos(u)*U+x.y,ellipticalArcStartAngle:T,ellipticalArcEndAngle:T+k,ellipticalArcAngle:C,ellipticalArcCenter:x,resultantRx:t,resultantRy:n};return J};function Vk(r){for(var e=[],t=null,n=null,i=null,a=0,s=r.length,o=0;o2&&arguments[2]!==void 0?arguments[2]:!0,n=r.arcParams,i=n.rx,a=i===void 0?0:i,s=n.ry,o=s===void 0?0:s,l=n.xRotation,u=n.arcFlag,c=n.sweepFlag,h=mb({x:r.prePoint[0],y:r.prePoint[1]},a,o,l,!!u,!!c,{x:r.currentPoint[0],y:r.currentPoint[1]},e),f=mb({x:r.prePoint[0],y:r.prePoint[1]},a,o,l,!!u,!!c,{x:r.currentPoint[0],y:r.currentPoint[1]},t?e+.005:e-.005),d=f.x-h.x,v=f.y-h.y,g=Math.sqrt(d*d+v*v);return{x:-d/g,y:-v/g}}function Th(r){return Math.sqrt(r[0]*r[0]+r[1]*r[1])}function Qg(r,e){return Th(r)*Th(e)?(r[0]*e[0]+r[1]*e[1])/(Th(r)*Th(e)):1}function bb(r,e){return(r[0]*e[1]1&&(t*=Math.sqrt(d),n*=Math.sqrt(d));var v=t*t*(f*f)+n*n*(h*h),g=v?Math.sqrt((t*t*(n*n)-v)/v):1;a===s&&(g*=-1),isNaN(g)&&(g=0);var p=n?g*t*f/n:0,m=t?g*-n*h/t:0,b=(o+u)/2+Math.cos(i)*p-Math.sin(i)*m,x=(l+c)/2+Math.sin(i)*p+Math.cos(i)*m,O=[(h-p)/t,(f-m)/n],T=[(-1*h-p)/t,(-1*f-m)/n],S=bb([1,0],O),k=bb(O,T);return Qg(O,T)<=-1&&(k=Math.PI),Qg(O,T)>=1&&(k=0),s===0&&k>0&&(k-=2*Math.PI),s===1&&k<0&&(k+=2*Math.PI),{cx:b,cy:x,rx:Mh(r,[u,c])?0:t,ry:Mh(r,[u,c])?0:n,startAngle:S,endAngle:S+k,xRotation:i,arcFlag:a,sweepFlag:s}}function Uk(r,e,t){return r.reduce(function(n,i){var a="";if(i[0]==="M"||i[0]==="L"){var s=vec3.fromValues(i[1],i[2],0);t&&vec3.transformMat4(s,s,t),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),u=vec3.fromValues(i[5],i[6],0);t&&(vec3.transformMat4(o,o,t),vec3.transformMat4(l,l,t),vec3.transformMat4(u,u,t)),a="".concat(i[0]).concat(o[0],",").concat(o[1],",").concat(l[0],",").concat(l[1],",").concat(u[0],",").concat(u[1])}else if(i[0]==="A"){var c=vec3.fromValues(i[6],i[7],0);t&&vec3.transformMat4(c,c,t),a="".concat(i[0]).concat(i[1],",").concat(i[2],",").concat(i[3],",").concat(i[4],",").concat(i[5],",").concat(c[0],",").concat(c[1])}else if(i[0]==="Q"){var h=vec3.fromValues(i[1],i[2],0),f=vec3.fromValues(i[3],i[4],0);t&&(vec3.transformMat4(h,h,t),vec3.transformMat4(f,f,t)),a="".concat(i[0]).concat(i[1],",").concat(i[2],",").concat(i[3],",").concat(i[4],"}")}return n+=a},"")}function Zk(r,e,t,n){return[["M",r,e],["L",t,n]]}function xb(r,e,t,n){var i=(-1+Math.sqrt(2))/3*4,a=r*i,s=e*i,o=t-r,l=t+r,u=n-e,c=n+e;return[["M",o,n],["C",o,n-s,t-a,u,t,u],["C",t+a,u,l,n-s,l,n],["C",l,n+s,t+a,c,t,c],["C",t-a,c,o,n+s,o,n],["Z"]]}function Kk(r,e){var t=r.map(function(n,i){return[i===0?"M":"L",n[0],n[1]]});return e&&t.push(["Z"]),t}function Qk(r,e,t,n,i){if(i){var a=_slicedToArray(i,4),s=a[0],o=a[1],l=a[2],u=a[3],c=r>0?1:-1,h=e>0?1:-1,f=c+h!==0?1:0;return[["M",c*s+t,n],["L",r-c*o+t,n],o?["A",o,o,0,0,f,r+t,h*o+n]:null,["L",r+t,e-h*l+n],l?["A",l,l,0,0,f,r+t-c*l,e+n]:null,["L",t+c*u,e+n],u?["A",u,u,0,0,f,t,e+n-h*u]:null,["L",t,h*s+n],s?["A",s,s,0,0,f,c*s+t,n]:null,["Z"]].filter(function(d){return d})}return[["M",t,n],["L",t+r,n],["L",t+r,n+e],["L",t,n+e],["Z"]]}function mU(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:r.getLocalTransform(),t=[];switch(r.nodeName){case je.LINE:var n=r.parsedStyle,i=n.x1,a=i===void 0?0:i,s=n.y1,o=s===void 0?0:s,l=n.x2,u=l===void 0?0:l,c=n.y2,h=c===void 0?0:c;t=Zk(a,o,u,h);break;case je.CIRCLE:{var f=r.parsedStyle,d=f.r,v=d===void 0?0:d,g=f.cx,p=g===void 0?0:g,m=f.cy,b=m===void 0?0:m;t=xb(v,v,p,b);break}case je.ELLIPSE:{var x=r.parsedStyle,O=x.rx,T=O===void 0?0:O,S=x.ry,k=S===void 0?0:S,C=x.cx,W=C===void 0?0:C,U=x.cy,J=U===void 0?0:U;t=xb(T,k,W,J);break}case je.POLYLINE:case je.POLYGON:var te=r.parsedStyle.points;t=Kk(te.points,r.nodeName===je.POLYGON);break;case je.RECT:var ie=r.parsedStyle,ae=ie.width,ve=ae===void 0?0:ae,Z=ie.height,H=Z===void 0?0:Z,X=ie.x,q=X===void 0?0:X,oe=ie.y,de=oe===void 0?0:oe,Oe=ie.radius,Be=Oe&&Oe.some(function(Ve){return Ve!==0});t=Qk(ve,H,q,de,Be&&Oe.map(function(Ve){return clamp(Ve,0,Math.min(Math.abs(ve)/2,Math.abs(H)/2))}));break;case je.PATH:var Ge=r.parsedStyle.d.absolutePath;t=_toConsumableArray(Ge);break}if(t.length)return Uk(t,r,e)}function yU(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,a=r.map(function(s,o){var l=s[0],u=r[o+1],c=o===0&&(e!==0||t!==0),h=(o===r.length-1||u&&(u[0]==="M"||u[0]==="Z"))&&n!==0&&i!==0,f=c?[e,t]:[0,0],d=_slicedToArray(f,2),v=d[0],g=d[1],p=h?[n,i]:[0,0],m=_slicedToArray(p,2),b=m[0],x=m[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]+x);case"Q":return"Q ".concat(s[1]," ").concat(s[2],",").concat(s[3]+b," ").concat(s[4]+x);case"C":return"C ".concat(s[1]," ").concat(s[2],",").concat(s[3]," ").concat(s[4],",").concat(s[5]+b," ").concat(s[6]+x);case"A":return"A ".concat(s[1]," ").concat(s[2]," ").concat(s[3]," ").concat(s[4]," ").concat(s[5]," ").concat(s[6]+b," ").concat(s[7]+x);case"Z":return"Z";default:return null}}).filter(function(s){return s!==null}).join(" ");return~a.indexOf("NaN")?"":a}var Eb=function(e){if(e===""||Array.isArray(e)&&e.length===0)return{absolutePath:[],hasArc:!1,segments:[],polygons:[],polylines:[],curve:null,totalLength:0,rect:{x:0,y:0,width:0,height:0}};var t;try{t=fl(e)}catch(d){t=fl(""),console.error("[g]: Invalid SVG Path definition: ".concat(e))}Gk(t);var n=Hk(t),i=Xk(t),a=i.polygons,s=i.polylines,o=Vk(t),l=Wk(o,0),u=l.x,c=l.y,h=l.width,f=l.height;return{absolutePath:t,hasArc:n,segments:o,polygons:a,polylines:s,totalLength:0,rect:{x:Number.isFinite(u)?u:0,y:Number.isFinite(c)?c:0,width:Number.isFinite(h)?h:0,height:Number.isFinite(f)?f:0}}},Jk=ei(Eb);function wb(r){return Xt(r)?Jk(r):Eb(r)}function qk(r,e,t){var n=r.curve,i=e.curve;(!n||n.length===0)&&(n=_u(r.absolutePath,!1),r.curve=n),(!i||i.length===0)&&(i=_u(e.absolutePath,!1),e.curve=i);var a=[n,i];n.length!==i.length&&(a=Og(n,i));var s=uh(a[0])!==uh(a[1])?d1(a[0]):v1(a[0]);return[s,g1(a[1],s),function(o){return o}]}function $k(r,e){var t;return Xt(r)?t=r.split(" ").map(function(n){var i=n.split(","),a=Ie(i,2),s=a[0],o=a[1];return[Number(s),Number(o)]}):t=r,{points:t,totalLength:0,segments:[]}}function eC(r,e){return[r.points,e.points,function(t){return t}]}var qn=null,Sl=/\s*(\w+)\(([^)]*)\)/g;function xi(r){return function(e){var t=0;return r.map(function(n){return n===qn?e[t++]:n})}}function Ao(r){return r}var ju={matrix:["NNNNNN",[qn,qn,0,0,qn,qn,0,0,0,0,1,0,qn,qn,0,1],Ao],matrix3d:["NNNNNNNNNNNNNNNN",Ao],rotate:["A"],rotateX:["A"],rotateY:["A"],rotateZ:["A"],rotate3d:["NNNA"],perspective:["L"],scale:["Nn",xi([qn,qn,new En(1)]),Ao],scaleX:["N",xi([qn,new En(1),new En(1)]),xi([qn,new En(1)])],scaleY:["N",xi([new En(1),qn,new En(1)]),xi([new En(1),qn])],scaleZ:["N",xi([new En(1),new En(1),qn])],scale3d:["NNN",Ao],skew:["Aa",null,Ao],skewX:["A",null,xi([qn,So])],skewY:["A",null,xi([So,qn])],translate:["Tt",xi([qn,qn,Ea]),Ao],translateX:["T",xi([qn,Ea,Ea]),xi([qn,Ea])],translateY:["T",xi([Ea,qn,Ea]),xi([Ea,qn])],translateZ:["L",xi([Ea,Ea,qn])],translate3d:["TTL",Ao]};function Pb(r){for(var e=[],t=r.length,n=0;n2&&arguments[2]!==void 0?arguments[2]:{skipUpdateAttribute:!1,skipParse:!1,forceUpdateGeometry:!1,usedAttributes:[],memoize:!0};Object.assign(t.attributes,n);var a=t.parsedStyle.clipPath,s=t.parsedStyle.offsetPath;vC(t,n);var o=!!i.forceUpdateGeometry;if(!o){for(var l in n)if(fC.has(l)){o=!0;break}}n.fill&&(t.parsedStyle.fill=zu(n.fill)),n.stroke&&(t.parsedStyle.stroke=zu(n.stroke)),n.shadowColor&&(t.parsedStyle.shadowColor=zu(n.shadowColor)),n.filter&&(t.parsedStyle.filter=Fk(n.filter)),vt(n.radius)||(t.parsedStyle.radius=hb(n.radius,4)),vt(n.lineDash)||(t.parsedStyle.lineDash=hb(n.lineDash,2)),n.points&&(t.parsedStyle.points=$k(n.points)),n.d===""&&(t.parsedStyle.d=D({},nb)),n.d&&(t.parsedStyle.d=wb(n.d)),n.textTransform&&this.runtime.CSSPropertySyntaxFactory[st.TEXT_TRANSFORM].calculator(null,null,{value:n.textTransform},t,null),Et(n.clipPath)||this.runtime.CSSPropertySyntaxFactory[st.DEFINED_PATH].calculator("clipPath",a,n.clipPath,t,this.runtime),n.offsetPath&&this.runtime.CSSPropertySyntaxFactory[st.DEFINED_PATH].calculator("offsetPath",s,n.offsetPath,t,this.runtime),n.transform&&(t.parsedStyle.transform=Mb(n.transform)),n.transformOrigin&&(t.parsedStyle.transformOrigin=hC(n.transformOrigin)),n.markerStart&&(t.parsedStyle.markerStart=this.runtime.CSSPropertySyntaxFactory[st.MARKER].calculator(null,n.markerStart,n.markerStart,null,null)),n.markerEnd&&(t.parsedStyle.markerEnd=this.runtime.CSSPropertySyntaxFactory[st.MARKER].calculator(null,n.markerEnd,n.markerEnd,null,null)),n.markerMid&&(t.parsedStyle.markerMid=this.runtime.CSSPropertySyntaxFactory[st.MARKER].calculator("",n.markerMid,n.markerMid,null,null)),vt(n.zIndex)||this.runtime.CSSPropertySyntaxFactory[st.Z_INDEX].postProcessor(t),vt(n.offsetDistance)||this.runtime.CSSPropertySyntaxFactory[st.OFFSET_DISTANCE].postProcessor(t),n.transform&&this.runtime.CSSPropertySyntaxFactory[st.TRANSFORM].postProcessor(t),n.transformOrigin&&this.runtime.CSSPropertySyntaxFactory[st.TRANSFORM_ORIGIN].postProcessor(t),o&&(t.geometry.dirty=!0,t.renderable.boundsDirty=!0,t.renderable.renderBoundsDirty=!0,i.forceUpdateGeometry||this.runtime.sceneGraphService.dirtifyToRoot(t))}},{key:"updateGeometry",value:function(t){var n=t.nodeName,i=this.runtime.geometryUpdaterFactory[n];if(i){var a=t.geometry;a.contentBounds||(a.contentBounds=new Rn),a.renderBounds||(a.renderBounds=new Rn);var s=t.parsedStyle,o=i.update(s,t),l=o.cx,u=l===void 0?0:l,c=o.cy,h=c===void 0?0:c,f=o.cz,d=f===void 0?0:f,v=o.hwidth,g=v===void 0?0:v,p=o.hheight,m=p===void 0?0:p,b=o.hdepth,x=b===void 0?0:b,O=[Math.abs(g),Math.abs(m),x],T=s.stroke,S=s.lineWidth,k=S===void 0?1:S,C=s.increasedLineWidthForHitTesting,W=C===void 0?0:C,U=s.shadowType,J=U===void 0?"outer":U,te=s.shadowColor,ie=s.filter,ae=ie===void 0?[]:ie,ve=s.transformOrigin,Z=[u,h,d];a.contentBounds.update(Z,O);var H=n===je.POLYLINE||n===je.POLYGON||n===je.PATH?Math.SQRT2:.5,X=T&&!T.isNone;if(X){var q=((k||0)+(W||0))*H;O[0]+=q,O[1]+=q}if(a.renderBounds.update(Z,O),te&&J&&J!=="inner"){var oe=a.renderBounds,de=oe.min,Oe=oe.max,Be=s.shadowBlur,Ge=s.shadowOffsetX,Ve=s.shadowOffsetY,qe=Be||0,lt=Ge||0,Ct=Ve||0,Vt=de[0]-qe+lt,qt=Oe[0]+qe+lt,Nr=de[1]-qe+Ct,un=Oe[1]+qe+Ct;de[0]=Math.min(de[0],Vt),Oe[0]=Math.max(Oe[0],qt),de[1]=Math.min(de[1],Nr),Oe[1]=Math.max(Oe[1],un),a.renderBounds.setMinMax(de,Oe)}ae.forEach(function(mr){var da=mr.name,lr=mr.params;if(da==="blur"){var Xr=lr[0].value;a.renderBounds.update(a.renderBounds.center,He(a.renderBounds.halfExtents,a.renderBounds.halfExtents,[Xr,Xr,0]))}else if(da==="drop-shadow"){var Ht=lr[0].value,an=lr[1].value,Gt=lr[2].value,tn=a.renderBounds,Kt=tn.min,yt=tn.max,sn=Kt[0]-Gt+Ht,cn=yt[0]+Gt+Ht,ur=Kt[1]-Gt+an,hn=yt[1]+Gt+an;Kt[0]=Math.min(Kt[0],sn),yt[0]=Math.max(yt[0],cn),Kt[1]=Math.min(Kt[1],ur),yt[1]=Math.max(yt[1],hn),a.renderBounds.setMinMax(Kt,yt)}}),t.geometry.dirty=!1;var ui=g<0,_r=m<0,Fa=(ui?-1:1)*(ve?ki(ve[0],0,t,!0):0),Er=(_r?-1:1)*(ve?ki(ve[1],1,t,!0):0);(Fa||Er)&&t.setOrigin(Fa,Er)}}},{key:"updateSizeAttenuation",value:function(t,n){t.style.isSizeAttenuation?(t.style.rawLineWidth||(t.style.rawLineWidth=t.style.lineWidth),t.style.lineWidth=(t.style.rawLineWidth||1)/n,t.nodeName===je.CIRCLE&&(t.style.rawR||(t.style.rawR=t.style.r),t.style.r=(t.style.rawR||1)/n)):(t.style.rawLineWidth&&(t.style.lineWidth=t.style.rawLineWidth,delete t.style.rawLineWidth),t.nodeName===je.CIRCLE&&t.style.rawR&&(t.style.r=t.style.rawR,delete t.style.rawR))}}])}();function vC(r,e){if(!Ke.enableMassiveParsedStyleAssignOptimization){Object.assign(r.parsedStyle,e);return}var t=r.constructor.PARSED_STYLE_LIST;for(var n in e)t.has(n)&&(r.parsedStyle[n]=e[n])}var gC=function(){function r(){_(this,r),this.mixer=Ug}return N(r,[{key:"calculator",value:function(t,n,i,a){return bi(i)}}])}(),pC=function(){function r(){_(this,r)}return N(r,[{key:"calculator",value:function(t,n,i,a,s){return i instanceof Ki&&(i=null),s.sceneGraphService.updateDisplayObjectDependency(t,n,i,a),t==="clipPath"&&a.forEach(function(o){o.childNodes.length===0&&s.sceneGraphService.dirtifyToRoot(o)}),i}}])}(),mC=function(){function r(){_(this,r),this.parser=zu,this.mixer=_k}return N(r,[{key:"calculator",value:function(t,n,i,a){return i instanceof Ki?i.value==="none"?ab:sb:i}}])}(),yC=function(){function r(){_(this,r)}return N(r,[{key:"calculator",value:function(t,n,i){return i instanceof Ki?[]:i}}])}();function Ob(r){var e=r.parsedStyle,t=e.fontSize;return vt(t)?null:t}var tp=function(){function r(){_(this,r),this.mixer=Ug}return N(r,[{key:"calculator",value:function(t,n,i,a,s){if(ht(i))return i;if(En.isRelativeUnit(i.unit)){if(i.unit===ut.kPercentage)return 0;if(i.unit===ut.kEms){if(a.parentNode){var o=Ob(a.parentNode);if(o)return o*=i.value,o}return 0}if(i.unit===ut.kRems){var l;if(a!=null&&(l=a.ownerDocument)!==null&&l!==void 0&&l.documentElement){var u=Ob(a.ownerDocument.documentElement);if(u)return u*=i.value,u}return 0}}else return i.value}}])}(),bC=function(){function r(){_(this,r),this.mixer=vb}return N(r,[{key:"calculator",value:function(t,n,i){return i.map(function(a){return a.value})}}])}(),xC=function(){function r(){_(this,r),this.mixer=vb}return N(r,[{key:"calculator",value:function(t,n,i){return i.map(function(a){return a.value})}}])}(),EC=function(){function r(){_(this,r)}return N(r,[{key:"calculator",value:function(t,n,i,a){var s;i instanceof Ki&&(i=null);var o=(s=i)===null||s===void 0?void 0:s.cloneNode(!0);return o&&(o.style.isMarker=!0),o}}])}(),wC=function(){function r(){_(this,r),this.mixer=Ug}return N(r,[{key:"calculator",value:function(t,n,i){return i.value}}])}(),PC=function(){function r(){_(this,r),this.mixer=Zg(0,1)}return N(r,[{key:"calculator",value:function(t,n,i){return i.value}},{key:"postProcessor",value:function(t){var n=t.parsedStyle,i=n.offsetPath,a=n.offsetDistance;if(i){var s=i.nodeName;if(s===je.LINE||s===je.PATH||s===je.POLYLINE){var o=i.getPoint(a);o&&t.setLocalPosition(o.x,o.y)}}}}])}(),MC=function(){function r(){_(this,r),this.mixer=Zg(0,1)}return N(r,[{key:"calculator",value:function(t,n,i){return i.value}}])}(),SC=function(){function r(){_(this,r),this.parser=wb,this.mixer=qk}return N(r,[{key:"calculator",value:function(t,n,i){return i instanceof Ki&&i.value==="unset"?{absolutePath:[],hasArc:!1,segments:[],polygons:[],polylines:[],curve:null,totalLength:0,rect:new El(0,0,0,0)}:i}}])}(),TC=N(function r(){_(this,r),this.mixer=eC}),AC=function(r){function e(){var t;_(this,e);for(var n=arguments.length,i=new Array(n),a=0;a>>1;kb(r[i],e)<0?t=i+1:n=i}return t}function kb(r,e){var t=Number(r.parsedStyle.zIndex||0),n=Number(e.parsedStyle.zIndex||0);if(t===n){var i=r.parentNode;if(i){var a=i.childNodes||[];return a.indexOf(r)-a.indexOf(e)}}return t-n}function Cb(r){var e=r;do{var t,n=(t=e.parsedStyle)===null||t===void 0?void 0:t.clipPath;if(n)return e;e=e.parentElement}while(e!==null);return null}var Nb="px";function RC(r,e,t){Gu&&r.style&&(r.style.width=e+Nb,r.style.height=t+Nb)}function _b(r,e){if(Gu)return document.defaultView.getComputedStyle(r,null).getPropertyValue(e)}function LC(r){var e=_b(r,"width");return e==="auto"?r.offsetWidth:parseFloat(e)}function DC(r){var e=_b(r,"height");return e==="auto"?r.offsetHeight:parseFloat(e)}var IC=1,BC={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},rp=typeof performance=="object"&&performance.now?performance:Date;function Ah(r){return r.nodeName===je.FRAGMENT?!0:r.getRootNode().nodeName===je.FRAGMENT}function Oo(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"auto",e=arguments.length>1?arguments[1]:void 0,t=arguments.length>2?arguments[2]:void 0,n=!1,i=!1,a=!!e&&!e.isNone,s=!!t&&!t.isNone;return r==="visiblepainted"||r==="painted"||r==="auto"?(n=a,i=s):r==="visiblefill"||r==="fill"?n=!0:r==="visiblestroke"||r==="stroke"?i=!0:(r==="visible"||r==="all")&&(n=!0,i=!0),[n,i]}var zC=1,FC=function(){return zC++},Ua=typeof self=="object"&&self.self===self?self:typeof w.g=="object"&&w.g.global===w.g?w.g:{},jC=Date.now(),GC=function(){return Ua.performance&&typeof Ua.performance.now=="function"?Ua.performance.now():Date.now()-jC},Hu={},Rb=Date.now(),HC=function(e){if(typeof e!="function")throw new TypeError("".concat(e," is not a function"));var t=Date.now(),n=t-Rb,i=n>16?0:16-n,a=FC();return Hu[a]=e,Object.keys(Hu).length>1||setTimeout(function(){Rb=t;var s=Hu;Hu={},Object.keys(s).forEach(function(o){return s[o](GC())})},i),a},XC=function(e){delete Hu[e]},WC=["","webkit","moz","ms","o"],Lb=function(e){return typeof e!="string"?HC:e===""?Ua.requestAnimationFrame:Ua["".concat(e,"RequestAnimationFrame")]},VC=function(e){return typeof e!="string"?XC:e===""?Ua.cancelAnimationFrame:Ua["".concat(e,"CancelAnimationFrame")]||Ua["".concat(e,"CancelRequestAnimationFrame")]},YC=function(e,t){for(var n=0;e[n]!==void 0;){if(t(e[n]))return e[n];n+=1}},Db=YC(WC,function(r){return!!Lb(r)}),ip=Lb(Db),Ib=VC(Db);Ua.requestAnimationFrame=ip,Ua.cancelAnimationFrame=Ib;var UC=function(){function r(){_(this,r),this.callbacks=[]}return N(r,[{key:"getCallbacksNum",value:function(){return this.callbacks.length}},{key:"tapPromise",value:function(t,n){this.callbacks.push(n)}},{key:"promise",value:function(){for(var t=arguments.length,n=new Array(t),i=0;i=0;d--){var v=f[d].trim();!QC.test(v)&&KC.indexOf(v)<0&&(v='"'.concat(v,'"')),f[d]=v}return"".concat(s," ").concat(l," ").concat(c," ").concat(h," ").concat(f.join(","))}function sp(r,e,t){return Zn(r),r[4]=Math.tan(e),r[1]=Math.tan(t),r}var fr=mt(),qC=mt(),$C={scale:function(e){vi(fr,[e[0].value,e[1].value,1])},scaleX:function(e){vi(fr,[e[0].value,1,1])},scaleY:function(e){vi(fr,[1,e[0].value,1])},scaleZ:function(e){vi(fr,[1,1,e[0].value])},scale3d:function(e){vi(fr,[e[0].value,e[1].value,e[2].value])},translate:function(e){Dr(fr,[e[0].value,e[1].value,0])},translateX:function(e){Dr(fr,[e[0].value,0,0])},translateY:function(e){Dr(fr,[0,e[0].value,0])},translateZ:function(e){Dr(fr,[0,0,e[0].value])},translate3d:function(e){Dr(fr,[e[0].value,e[1].value,e[2].value])},rotate:function(e){Ou(fr,bn(bi(e[0])))},rotateX:function(e){Au(fr,bn(bi(e[0])))},rotateY:function(e){yg(fr,bn(bi(e[0])))},rotateZ:function(e){Ou(fr,bn(bi(e[0])))},rotate3d:function(e){Tu(fr,bn(bi(e[3])),[e[0].value,e[1].value,e[2].value])},skew:function(e){sp(fr,bn(e[0].value),bn(e[1].value))},skewX:function(e){sp(fr,bn(e[0].value),0)},skewY:function(e){sp(fr,0,bn(e[0].value))},matrix:function(e){Hn(fr,e[0].value,e[1].value,0,0,e[2].value,e[3].value,0,0,0,0,1,0,e[4].value,e[5].value,0,1)},matrix3d:function(e){Hn.apply(M,[fr].concat(K(e.map(function(t){return t.value}))))}},eN=me(1,1,1),tN=Me(),Bb={translate:function(e,t){Ke.sceneGraphService.setLocalScale(e,eN,!1),Ke.sceneGraphService.setLocalEulerAngles(e,tN,void 0,void 0,!1),Ke.sceneGraphService.setLocalPosition(e,[t[0].value,t[1].value,0],!1),Ke.sceneGraphService.dirtifyLocal(e,e.transformable)}};function zb(r,e){if(r.length){if(r.length===1&&Bb[r[0].t]){Bb[r[0].t](e,r[0].d);return}for(var t=Zn(qC),n=0;n1&&arguments[1]!==void 0?arguments[1]:!1,i=jb.get(this);if(!i){var a;this.document?i=this:this.defaultView?i=this.defaultView:i=(a=this.ownerDocument)===null||a===void 0?void 0:a.defaultView,i&&jb.set(this,i)}if(i){if(t.manager=i.getEventService(),!t.manager)return!1;t.defaultPrevented=!1,t.path?t.path.length=0:t.page=[],n||(t.target=this),t.manager.dispatchEvent(t,t.type,n)}else this.emitter.emit(t.type,t);return!t.defaultPrevented}}])}(),Kn=function(r){function e(){var t;_(this,e);for(var n=arguments.length,i=new Array(n),a=0;a0&&arguments[0]!==void 0?arguments[0]:{};return this.parentNode?this.parentNode.getRootNode(n):n.composed&&this.host?this.host.getRootNode(n):this}},{key:"hasChildNodes",value:function(){return this.childNodes.length>0}},{key:"isDefaultNamespace",value:function(n){throw new Error(yn)}},{key:"lookupNamespaceURI",value:function(n){throw new Error(yn)}},{key:"lookupPrefix",value:function(n){throw new Error(yn)}},{key:"normalize",value:function(){throw new Error(yn)}},{key:"isEqualNode",value:function(n){return this===n}},{key:"isSameNode",value:function(n){return this.isEqualNode(n)}},{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(n){if(n===this)return 0;for(var i=n,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 e.DOCUMENT_POSITION_DISCONNECTED|e.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC|e.DOCUMENT_POSITION_PRECEDING;var u=s.length>o.length?s:o,c=u===s?o:s;if(u[u.length-c.length]===c[0])return u===s?e.DOCUMENT_POSITION_CONTAINED_BY|e.DOCUMENT_POSITION_FOLLOWING:e.DOCUMENT_POSITION_CONTAINS|e.DOCUMENT_POSITION_PRECEDING;for(var h=u.length-c.length,f=c.length-1;f>=0;f--){var d=c[f],v=u[h+f];if(v!==d){var g=d.parentNode.childNodes;return g.indexOf(d)0&&i;)i=i.parentNode,n--;return i}},{key:"forEach",value:function(n){for(var i=[this];i.length>0;){var a=i.pop(),s=n(a);if(s===!1)break;for(var o=a.childNodes.length-1;o>=0;o--)i.push(a.childNodes[o])}}}],[{key:"isNode",value:function(n){return!!n.childNodes}}])}(Gb);Kn.DOCUMENT_POSITION_DISCONNECTED=1,Kn.DOCUMENT_POSITION_PRECEDING=2,Kn.DOCUMENT_POSITION_FOLLOWING=4,Kn.DOCUMENT_POSITION_CONTAINS=8,Kn.DOCUMENT_POSITION_CONTAINED_BY=16,Kn.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC=32;var vN=2048,gN=function(){function r(e,t){var n=this;_(this,r),this.emitter=new Je,this.nativeHTMLMap=new WeakMap,this.cursor="default",this.mappingTable={},this.mappingState={trackingData:{}},this.eventPool=new Map,this.tmpMatrix=mt(),this.tmpVec3=Me(),this.onPointerDown=function(i){var a=n.createPointerEvent(i);if(n.dispatchEvent(a,"pointerdown"),a.pointerType==="touch")n.dispatchEvent(a,"touchstart");else if(a.pointerType==="mouse"||a.pointerType==="pen"){var s=a.button===2;n.dispatchEvent(a,s?"rightdown":"mousedown")}var o=n.trackingData(i.pointerId);o.pressTargetsByButton[i.button]=a.composedPath(),n.freeEvent(a)},this.onPointerUp=function(i){var a=rp.now(),s=n.createPointerEvent(i,void 0,void 0,n.context.config.alwaysTriggerPointerEventOnCanvas?n.rootTarget:void 0);if(n.dispatchEvent(s,"pointerup"),s.pointerType==="touch")n.dispatchEvent(s,"touchend");else if(s.pointerType==="mouse"||s.pointerType==="pen"){var o=s.button===2;n.dispatchEvent(s,o?"rightup":"mouseup")}var l=n.trackingData(i.pointerId),u=n.findMountedTarget(l.pressTargetsByButton[i.button]),c=u;if(u&&!s.composedPath().includes(u)){for(var h=u;h&&!s.composedPath().includes(h);){if(s.currentTarget=h,n.notifyTarget(s,"pointerupoutside"),s.pointerType==="touch")n.notifyTarget(s,"touchendoutside");else if(s.pointerType==="mouse"||s.pointerType==="pen"){var f=s.button===2;n.notifyTarget(s,f?"rightupoutside":"mouseupoutside")}Kn.isNode(h)&&(h=h.parentNode)}delete l.pressTargetsByButton[i.button],c=h}if(c){var d,v=n.clonePointerEvent(s,"click");v.target=c,v.path=[],l.clicksByButton[i.button]||(l.clicksByButton[i.button]={clickCount:0,target:v.target,timeStamp:a});var g=n.context.renderingContext.root.ownerDocument.defaultView,p=l.clicksByButton[i.button];p.target===v.target&&a-p.timeStamp=1;a--)if(t.currentTarget=i[a],this.notifyTarget(t,n),t.propagationStopped||t.propagationImmediatelyStopped)return;if(t.eventPhase=t.AT_TARGET,t.currentTarget=t.target,this.notifyTarget(t,n),!(t.propagationStopped||t.propagationImmediatelyStopped)){var s=i.indexOf(t.currentTarget);t.eventPhase=t.BUBBLING_PHASE;for(var o=s+1;os||i>o?null:!l&&this.pickHandler(t)||this.rootTarget||null}},{key:"isNativeEventFromCanvas",value:function(t,n){var i,a=n==null?void 0:n.target;if((i=a)!==null&&i!==void 0&&i.shadowRoot&&(a=n.composedPath()[0]),a){if(a===t)return!0;if(t&&t.contains)return t.contains(a)}return n!=null&&n.composedPath?n.composedPath().indexOf(t)>-1:!1}},{key:"getExistedHTML",value:function(t){if(t.nativeEvent.composedPath)for(var n=0,i=t.nativeEvent.composedPath();n=0;i--){var a=t[i];if(a===this.rootTarget||Kn.isNode(a)&&a.parentNode===n)n=t[i];else break}return n}},{key:"getCursor",value:function(t){for(var n=t;n;){var i=NC(n)&&n.getAttribute("cursor");if(i)return i;n=Kn.isNode(n)&&n.parentNode}}}])}(),lp=function(){function r(){_(this,r)}return N(r,[{key:"getOrCreateCanvas",value:function(t,n){if(this.canvas)return this.canvas;if(t||Ke.offscreenCanvas)this.canvas=t||Ke.offscreenCanvas,this.context=this.canvas.getContext("2d",D({willReadFrequently:!0},n));else try{this.canvas=new window.OffscreenCanvas(0,0),this.context=this.canvas.getContext("2d",D({willReadFrequently:!0},n)),(!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",D({willReadFrequently:!0},n))}return this.canvas.width=10,this.canvas.height=10,this.canvas}},{key:"getOrCreateContext",value:function(t,n){return this.context?this.context:(this.getOrCreateCanvas(t,n),this.context)}}],[{key:"createCanvas",value:function(){try{return new window.OffscreenCanvas(0,0)}catch(t){}try{return document.createElement("canvas")}catch(t){}return null}}])}(),Tl=function(r){return r[r.CAMERA_CHANGED=0]="CAMERA_CHANGED",r[r.DISPLAY_OBJECT_CHANGED=1]="DISPLAY_OBJECT_CHANGED",r[r.NONE=2]="NONE",r}({}),pN=function(){function r(e,t){_(this,r),this.inited=!1,this.stats={total:0,rendered:0},this.zIndexCounter=0,this.hooks={init:new ti,initAsync:new UC,dirtycheck:new ap,cull:new ap,beginFrame:new ti,beforeRender:new ti,render:new ti,afterRender:new ti,endFrame:new ti,destroy:new ti,pick:new ZC,pickSync:new ap,pointerDown:new ti,pointerUp:new ti,pointerMove:new ti,pointerOut:new ti,pointerOver:new ti,pointerWheel:new ti,pointerCancel:new ti,click:new ti},this.globalRuntime=e,this.context=t}return N(r,[{key:"init",value:function(t){var n=this,i=D(D({},this.globalRuntime),this.context);this.context.renderingPlugins.forEach(function(a){a.apply(i,n.globalRuntime)}),this.hooks.init.call(),this.hooks.initAsync.getCallbacksNum()===0?(this.inited=!0,t()):this.hooks.initAsync.promise().then(function(){n.inited=!0,t()}).catch(function(a){})}},{key:"getStats",value:function(){return this.stats}},{key:"disableDirtyRectangleRendering",value:function(){var t=this.context.config.renderer,n=t.getConfig(),i=n.enableDirtyRectangleRendering;return!i||this.context.renderingContext.renderReasons.has(Tl.CAMERA_CHANGED)}},{key:"render",value:function(t,n,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(Tl.CAMERA_CHANGED),l=!t.disableRenderHooks||!(t.disableRenderHooks&&o);l&&this.renderDisplayObject(s.root,t,s),this.hooks.beginFrame.call(n),l&&s.renderListCurrentFrame.forEach(function(u){a.hooks.beforeRender.call(u),a.hooks.render.call(u),a.hooks.afterRender.call(u)}),this.hooks.endFrame.call(n),s.renderListCurrentFrame=[],s.renderReasons.clear(),i()}}},{key:"renderDisplayObject",value:function(t,n,i){var a=this,s=n.renderer.getConfig(),o=s.enableDirtyCheck,l=s.enableCulling;function u(v){var g=v.renderable,p=v.sortable,m=o?g.dirty||i.dirtyRectangleRenderingDisabled?v:null:v;if(m){var b=l?a.hooks.cull.call(m,a.context.camera):m;b&&(a.stats.rendered+=1,i.renderListCurrentFrame.push(b))}g.dirty=!1,p.renderOrder=a.zIndexCounter,a.zIndexCounter+=1,a.stats.total+=1,p.dirty&&(a.sort(v,p),p.dirty=!1,p.dirtyChildren=[],p.dirtyReason=void 0)}for(var c=[t];c.length>0;){var h=c.pop();u(h);for(var f=h.sortable.sorted||h.childNodes,d=f.length-1;d>=0;d--)c.push(f[d])}}},{key:"sort",value:function(t,n){n.sorted&&n.dirtyReason!==xh.Z_INDEX_CHANGED?n.dirtyChildren.forEach(function(i){var a=t.childNodes.indexOf(i);if(a===-1){var s=n.sorted.indexOf(i);s>=0&&n.sorted.splice(s,1)}else if(n.sorted.length===0)n.sorted.push(i);else{var o=_C(n.sorted,i);n.sorted.splice(o,0,i)}}):n.sorted=t.childNodes.slice().sort(kb)}},{key:"destroy",value:function(){this.inited=!1,this.hooks.destroy.call(),this.globalRuntime.sceneGraphService.clearPendingEvents()}},{key:"dirtify",value:function(){this.context.renderingContext.renderReasons.add(Tl.DISPLAY_OBJECT_CHANGED)}}])}(),mN=/\[\s*(.*)=(.*)\s*\]/,yN=function(){function r(){_(this,r)}return N(r,[{key:"selectOne",value:function(t,n){var i=this;if(t.startsWith("."))return n.find(function(l){return((l==null?void 0:l.classList)||[]).indexOf(i.getIdOrClassname(t))>-1});if(t.startsWith("#"))return n.find(function(l){return l.id===i.getIdOrClassname(t)});if(t.startsWith("[")){var a=this.getAttribute(t),s=a.name,o=a.value;return s?n.find(function(l){return n!==l&&(s==="name"?l.name===o:i.attributeToString(l,s)===o)}):null}return n.find(function(l){return n!==l&&l.nodeName===t})}},{key:"selectAll",value:function(t,n){var i=this;if(t.startsWith("."))return n.findAll(function(l){return n!==l&&((l==null?void 0:l.classList)||[]).indexOf(i.getIdOrClassname(t))>-1});if(t.startsWith("#"))return n.findAll(function(l){return n!==l&&l.id===i.getIdOrClassname(t)});if(t.startsWith("[")){var a=this.getAttribute(t),s=a.name,o=a.value;return s?n.findAll(function(l){return n!==l&&(s==="name"?l.name===o:i.attributeToString(l,s)===o)}):[]}return n.findAll(function(l){return n!==l&&l.nodeName===t})}},{key:"is",value:function(t,n){if(t.startsWith("."))return n.className===this.getIdOrClassname(t);if(t.startsWith("#"))return n.id===this.getIdOrClassname(t);if(t.startsWith("[")){var i=this.getAttribute(t),a=i.name,s=i.value;return a==="name"?n.name===s:this.attributeToString(n,a)===s}return n.nodeName===t}},{key:"getIdOrClassname",value:function(t){return t.substring(1)}},{key:"getAttribute",value:function(t){var n=t.match(mN),i="",a="";return n&&n.length>2&&(i=n[1].replace(/"/g,""),a=n[2].replace(/"/g,"")),{name:i,value:a}}},{key:"attributeToString",value:function(t,n){if(!t.getAttribute)return"";var i=t.getAttribute(n);return vt(i)?"":i.toString?i.toString():""}}])}(),Qt=function(r){return r.REPARENT="reparent",r.DESTROY="destroy",r.ATTR_MODIFIED="DOMAttrModified",r.INSERTED="DOMNodeInserted",r.REMOVED="removed",r.MOUNTED="DOMNodeInsertedIntoDocument",r.UNMOUNTED="DOMNodeRemovedFromDocument",r.BOUNDS_CHANGED="bounds-changed",r.CULLED="culled",r}({}),Za=function(r){function e(t,n,i,a,s,o,l,u){var c;return _(this,e),c=Ee(this,e,[null]),c.relatedNode=n,c.prevValue=i,c.newValue=a,c.attrName=s,c.attrChange=o,c.prevParsedValue=l,c.newParsedValue=u,c.type=t,c}return Pe(e,r),N(e)}(Oh);Za.ADDITION=2,Za.MODIFICATION=1,Za.REMOVAL=3;function Hb(r){var e=r.renderable;e&&(e.renderBoundsDirty=!0,e.boundsDirty=!0)}var bN=new Za(Qt.REPARENT,null,"","","",0,"",""),xN=Cu(),Ch=Me(),EN=me(1,1,1),wN=mt(),PN=Cu(),zs=Me(),Al=mt(),Fs=en(),MN=Me(),SN=en(),TN=Me(),Xu=Me(),ko=Me(),Nh=mt(),Xb=en(),Wb=en(),_h=en(),up={affectChildren:!0},AN=function(){function r(e){_(this,r),this.pendingEvents=new Map,this.boundsChangedEvent=new Yr(Qt.BOUNDS_CHANGED),this.displayObjectDependencyMap=new WeakMap,this.runtime=e}return N(r,[{key:"matches",value:function(t,n){return this.runtime.sceneGraphSelector.is(t,n)}},{key:"querySelector",value:function(t,n){return this.runtime.sceneGraphSelector.selectOne(t,n)}},{key:"querySelectorAll",value:function(t,n){return this.runtime.sceneGraphSelector.selectAll(t,n)}},{key:"attach",value:function(t,n,i){var a,s=!1;t.parentNode&&(s=t.parentNode!==n,this.detach(t));var o=t.nodeName===je.FRAGMENT,l=Ah(n);t.parentNode=n;var u=o?t.childNodes:[t];ht(i)?u.forEach(function(d){n.childNodes.splice(i,0,d),d.parentNode=n}):u.forEach(function(d){n.childNodes.push(d),d.parentNode=n});var c=n,h=c.sortable;if((h!=null&&(a=h.sorted)!==null&&a!==void 0&&a.length||t.parsedStyle.zIndex)&&(h.dirtyChildren.indexOf(t)===-1&&h.dirtyChildren.push(t),h.dirty=!0,h.dirtyReason=xh.ADDED),!l){if(o)this.dirtifyFragment(t);else{var f=t.transformable;f&&this.dirtifyWorld(t,f)}s&&t.dispatchEvent(bN)}}},{key:"detach",value:function(t){if(t.parentNode){var n,i,a=t.transformable,s=t.parentNode,o=s.sortable;(o!=null&&(n=o.sorted)!==null&&n!==void 0&&n.length||(i=t.style)!==null&&i!==void 0&&i.zIndex)&&(o.dirtyChildren.indexOf(t)===-1&&o.dirtyChildren.push(t),o.dirty=!0,o.dirtyReason=xh.REMOVED);var l=t.parentNode.childNodes.indexOf(t);l>-1&&t.parentNode.childNodes.splice(l,1),a&&this.dirtifyWorld(t,a),t.parentNode=null}}},{key:"getOrigin",value:function(t){return t.getGeometryBounds(),t.transformable.origin}},{key:"setOrigin",value:function(t,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof n=="number"&&(n=[n,i,a]);var s=t.transformable;if(!(n[0]===s.origin[0]&&n[1]===s.origin[1]&&n[2]===s.origin[2])){var o=s.origin;o[0]=n[0],o[1]=n[1],o[2]=n[2]||0,this.dirtifyLocal(t,s)}}},{key:"rotate",value:function(t,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof n=="number"&&(n=me(n,i,a));var s=t.transformable;if(t.parentNode===null||!t.parentNode.transformable)this.rotateLocal(t,n);else{var o=Fs;Rs(o,n[0],n[1],n[2]);var l=this.getRotation(t),u=this.getRotation(t.parentNode);Ls(_h,u),ul(_h,_h),qr(o,_h,o),qr(s.localRotation,o,l),cl(s.localRotation,s.localRotation),this.dirtifyLocal(t,s)}}},{key:"rotateLocal",value:function(t,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof n=="number"&&(n=me(n,i,a));var s=t.transformable;Rs(Wb,n[0],n[1],n[2]),ah(s.localRotation,s.localRotation,Wb),this.dirtifyLocal(t,s)}},{key:"setEulerAngles",value:function(t,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof n=="number"&&(n=me(n,i,a));var s=t.transformable;if(t.parentNode===null||!t.parentNode.transformable)this.setLocalEulerAngles(t,n);else{Rs(s.localRotation,n[0],n[1],n[2]);var o=this.getRotation(t.parentNode);Ls(Xb,ul(Fs,o)),ah(s.localRotation,s.localRotation,Xb),this.dirtifyLocal(t,s)}}},{key:"setLocalEulerAngles",value:function(t,n){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 n=="number"&&(n=me(n,i,a));var o=t.transformable;Rs(o.localRotation,n[0],n[1],n[2]),s&&this.dirtifyLocal(t,o)}},{key:"translateLocal",value:function(t,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof n=="number"&&(n=me(n,i,a));var s=t.transformable;Rr(n,Ch)||(mo(n,n,s.localRotation),He(s.localPosition,s.localPosition,n),this.dirtifyLocal(t,s))}},{key:"setPosition",value:function(t,n){var i,a=t.transformable;if(ko[0]=n[0],ko[1]=n[1],ko[2]=(i=n[2])!==null&&i!==void 0?i:0,!Rr(this.getPosition(t),ko)){if(Te(a.position,ko),t.parentNode===null||!t.parentNode.transformable)Te(a.localPosition,ko);else{var s=t.parentNode.transformable;_n(Nh,s.worldTransform),Ot(Nh,Nh),Dn(a.localPosition,ko,Nh)}this.dirtifyLocal(t,a)}}},{key:"setLocalPosition",value:function(t,n){var i,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=t.transformable;Xu[0]=n[0],Xu[1]=n[1],Xu[2]=(i=n[2])!==null&&i!==void 0?i:0,!Rr(s.localPosition,Xu)&&(Te(s.localPosition,Xu),a&&this.dirtifyLocal(t,s))}},{key:"scaleLocal",value:function(t,n){var i,a=t.transformable;Ft(a.localScale,a.localScale,Ae(zs,n[0],n[1],(i=n[2])!==null&&i!==void 0?i:1)),this.dirtifyLocal(t,a)}},{key:"setLocalScale",value:function(t,n){var i,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=t.transformable;Ae(zs,n[0],n[1],(i=n[2])!==null&&i!==void 0?i:s.localScale[2]),!Rr(zs,s.localScale)&&(Te(s.localScale,zs),a&&this.dirtifyLocal(t,s))}},{key:"translate",value:function(t,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof n=="number"&&(n=Ae(zs,n,i,a)),!Rr(n,Ch)&&(He(zs,this.getPosition(t),n),this.setPosition(t,zs))}},{key:"setRotation",value:function(t,n,i,a,s){var o=t.transformable;if(typeof n=="number"&&(n=$y(n,i,a,s)),t.parentNode===null||!t.parentNode.transformable)this.setLocalRotation(t,n);else{var l=this.getRotation(t.parentNode);Ls(Fs,l),ul(Fs,Fs),qr(o.localRotation,Fs,n),cl(o.localRotation,o.localRotation),this.dirtifyLocal(t,o)}}},{key:"setLocalRotation",value:function(t,n,i,a,s){var o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;typeof n=="number"&&(n=ih(Fs,n,i,a,s));var l=t.transformable;Ls(l.localRotation,n),o&&this.dirtifyLocal(t,l)}},{key:"setLocalSkew",value:function(t,n,i){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;typeof n=="number"&&(n=t1(PN,n,i));var s=t.transformable;e1(s.localSkew,n),a&&this.dirtifyLocal(t,s)}},{key:"dirtifyLocal",value:function(t,n){Ah(t)||n.localDirtyFlag||(n.localDirtyFlag=!0,n.dirtyFlag||this.dirtifyWorld(t,n))}},{key:"dirtifyWorld",value:function(t,n){n.dirtyFlag||this.unfreezeParentToRoot(t),this.dirtifyWorldInternal(t,n),this.dirtifyToRoot(t,!0)}},{key:"dirtifyFragment",value:function(t){var n=t.transformable;n&&(n.frozen=!1,n.dirtyFlag=!0,n.localDirtyFlag=!0);var i=t.renderable;i&&(i.renderBoundsDirty=!0,i.boundsDirty=!0,i.dirty=!0);for(var a=t.childNodes.length,s=0;s1&&arguments[1]!==void 0?arguments[1]:!1,i=t;for(i.renderable&&(i.renderable.dirty=!0);i;)Hb(i),i=i.parentNode;n&&t.forEach(function(a){Hb(a)}),this.informDependentDisplayObjects(t),this.pendingEvents.set(t,n)}},{key:"updateDisplayObjectDependency",value:function(t,n,i,a){if(n&&n!==i){var s=this.displayObjectDependencyMap.get(n);if(s&&s[t]){var o=s[t].indexOf(a);s[t].splice(o,1)}}if(i){var l=this.displayObjectDependencyMap.get(i);l||(this.displayObjectDependencyMap.set(i,{}),l=this.displayObjectDependencyMap.get(i)),l[t]||(l[t]=[]),l[t].push(a)}}},{key:"informDependentDisplayObjects",value:function(t){var n=this,i=this.displayObjectDependencyMap.get(t);i&&Object.keys(i).forEach(function(a){i[a].forEach(function(s){n.dirtifyToRoot(s,!0),s.dispatchEvent(new Za(Qt.ATTR_MODIFIED,s,n,n,a,Za.MODIFICATION,n,n)),s.isCustomElement&&s.isConnected&&s.attributeChangedCallback&&s.attributeChangedCallback(a,n,n)})})}},{key:"getPosition",value:function(t){var n=t.transformable;return yo(n.position,this.getWorldTransform(t,n))}},{key:"getRotation",value:function(t){var n=t.transformable;return bo(n.rotation,this.getWorldTransform(t,n))}},{key:"getScale",value:function(t){var n=t.transformable;return Wa(n.scaling,this.getWorldTransform(t,n))}},{key:"getWorldTransform",value:function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t.transformable;return!n.localDirtyFlag&&!n.dirtyFlag||(t.parentNode&&t.parentNode.transformable&&this.getWorldTransform(t.parentNode),this.sync(t,n)),n.worldTransform}},{key:"getLocalPosition",value:function(t){return t.transformable.localPosition}},{key:"getLocalRotation",value:function(t){return t.transformable.localRotation}},{key:"getLocalScale",value:function(t){return t.transformable.localScale}},{key:"getLocalSkew",value:function(t){return t.transformable.localSkew}},{key:"calcLocalTransform",value:function(t){var n=t.localSkew[0]!==0||t.localSkew[1]!==0;if(n){vs(t.localTransform,t.localRotation,t.localPosition,me(1,1,1),t.origin),(t.localSkew[0]!==0||t.localSkew[1]!==0)&&(Zn(Al),Al[4]=Math.tan(t.localSkew[0]),Al[1]=Math.tan(t.localSkew[1]),Ut(t.localTransform,t.localTransform,Al));var i=vs(Al,ih(Fs,0,0,0,1),Ae(zs,1,1,1),t.localScale,t.origin);Ut(t.localTransform,t.localTransform,i)}else{var a=t.localTransform,s=t.localPosition,o=t.localRotation,l=t.localScale,u=t.origin,c=s[0]!==0||s[1]!==0||s[2]!==0,h=o[3]!==1||o[0]!==0||o[1]!==0||o[2]!==0,f=l[0]!==1||l[1]!==1||l[2]!==1,d=u[0]!==0||u[1]!==0||u[2]!==0;!h&&!f&&!d?c?Dr(a,s):Zn(a):vs(a,o,s,l,u)}}},{key:"getLocalTransform",value:function(t){var n=t.transformable;return n.localDirtyFlag&&(this.calcLocalTransform(n),n.localDirtyFlag=!1),n.localTransform}},{key:"setLocalTransform",value:function(t,n){var i=yo(MN,n),a=bo(SN,n),s=Wa(TN,n);this.setLocalScale(t,s,!1),this.setLocalPosition(t,i,!1),this.setLocalRotation(t,a,void 0,void 0,void 0,!1),this.dirtifyLocal(t,t.transformable)}},{key:"resetLocalTransform",value:function(t){this.setLocalScale(t,EN,!1),this.setLocalPosition(t,Ch,!1),this.setLocalEulerAngles(t,Ch,void 0,void 0,!1),this.setLocalSkew(t,xN,void 0,!1),this.dirtifyLocal(t,t.transformable)}},{key:"getTransformedGeometryBounds",value:function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=arguments.length>2?arguments[2]:void 0,a=this.getGeometryBounds(t,n);if(!Rn.isEmpty(a)){var s=i||new Rn;return s.setFromTransformedAABB(a,this.getWorldTransform(t)),s}return null}},{key:"getGeometryBounds",value:function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=t,a=i.geometry;a.dirty&&Ke.styleValueRegistry.updateGeometry(t);var s=n?a.renderBounds:a.contentBounds||null;return s||new Rn}},{key:"getBounds",value:function(t){var n=this,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,a=t,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(t,i,o),u=t.childNodes;if(u.forEach(function(f){var d=n.getBounds(f,i);d&&(l?l.add(d):(l=o||new Rn,l.update(d.center,d.halfExtents)))}),l||(l=new Rn),i){var c=Cb(t);if(c){var h=c.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(t){if(t.parentNode){var n=wN;t.parentNode.transformable&&(n=Ot(Al,this.getWorldTransform(t.parentNode)));var i=this.getBounds(t);if(!Rn.isEmpty(i)){var a=new Rn;return a.setFromTransformedAABB(i,n),a}}return this.getBounds(t)}},{key:"getBoundingClientRect",value:function(t){var n,i,a=this.getGeometryBounds(t);Rn.isEmpty(a)||(i=new Rn,i.setFromTransformedAABB(a,this.getWorldTransform(t)));var s=(n=t.ownerDocument)===null||n===void 0||(n=n.defaultView)===null||n===void 0?void 0:n.getContextService().getBoundingClientRect();if(i){var o=i.getMin(),l=Ie(o,2),u=l[0],c=l[1],h=i.getMax(),f=Ie(h,2),d=f[0],v=f[1];return new El(u+((s==null?void 0:s.left)||0),c+((s==null?void 0:s.top)||0),d-u,v-c)}return new El((s==null?void 0:s.left)||0,(s==null?void 0:s.top)||0,0,0)}},{key:"dirtifyWorldInternal",value:function(t,n){var i=this;if(!n.dirtyFlag){n.dirtyFlag=!0,n.frozen=!1,t.childNodes.forEach(function(o){var l=o.transformable;l.dirtyFlag||i.dirtifyWorldInternal(o,l)});var a=t,s=a.renderable;s&&(s.renderBoundsDirty=!0,s.boundsDirty=!0,s.dirty=!0)}}},{key:"syncHierarchy",value:function(t){var n=t.transformable;if(!n.frozen){n.frozen=!0,(n.localDirtyFlag||n.dirtyFlag)&&this.sync(t,n);for(var i=t.childNodes,a=0;au;--v){for(var b=0;bv)){for(var ae=p[ie].length,ve=0,Z=ae,H=0;Hv){Z=H;break}ve+=X}p[ie]=(p[ie]||"").slice(0,Z)+g}}for(var k=Array.from(t),C=0;C=h){n.isOverflowing=!0,C0&&b+te>v){if(m+1>=h){n.isOverflowing=!0,S(m);break}if(m++,b=0,p[m]="",this.isBreakingSpace(W))continue;this.canBreakInLastChar(W)||(p=this.trimToBreakable(p),b=this.sumTextWidthByCache(p[m]||"",x)),this.shouldBreakByKinsokuShorui(W,J)&&(p=this.trimByKinsokuShorui(p),b+=O(U||""))}b+=te,p[m]=(p[m]||"")+W}return p.join(` `)}},{key:"isBreakingSpace",value:function(t){return typeof t!="string"?!1:Co.BreakingSpaces.indexOf(t.charCodeAt(0))>=0}},{key:"isNewline",value:function(t){return typeof t!="string"?!1:Co.Newlines.indexOf(t.charCodeAt(0))>=0}},{key:"trimToBreakable",value:function(t){var n=K(t),i=n[n.length-2],a=this.findBreakableIndex(i);if(a===-1||!i)return n;var s=i.slice(a,a+1),o=this.isBreakingSpace(s),l=a+1,u=a+(o?0:1);return n[n.length-1]+=i.slice(l,i.length),n[n.length-2]=i.slice(0,u),n}},{key:"canBreakInLastChar",value:function(t){return!(t&&Vb.test(t))}},{key:"sumTextWidthByCache",value:function(t,n){return t.split("").reduce(function(i,a){if(!n[a])throw Error("cannot count the word without cache");return i+n[a]},0)}},{key:"findBreakableIndex",value:function(t){for(var n=t.length-1;n>=0;n--)if(!Vb.test(t[n]))return n;return-1}},{key:"getFromCache",value:function(t,n,i,a){var s=i[t];if(typeof s!="number"){var o=t.length*n;s=a.measureText(t).width+o,i[t]=s}return s}}])}(),Ke={},FN=function(r){var e=new cN,t=new uN;return r={},L(L(L(L(L(L(L(L(L(L(r,je.FRAGMENT,null),je.CIRCLE,new aN),je.ELLIPSE,new sN),je.RECT,e),je.IMAGE,e),je.GROUP,new fN),je.LINE,new oN),je.TEXT,new hN(Ke)),je.POLYLINE,t),je.POLYGON,t),L(L(L(r,je.PATH,new lN),je.HTML,new dN),je.MESH,null)}(),jN=function(r){var e=new mC,t=new tp;return r={},L(L(L(L(L(L(L(L(L(L(r,st.PERCENTAGE,null),st.NUMBER,new wC),st.ANGLE,new gC),st.DEFINED_PATH,new pC),st.PAINT,e),st.COLOR,e),st.FILTER,new yC),st.LENGTH,t),st.LENGTH_PERCENTAGE,t),st.LENGTH_PERCENTAGE_12,new bC),L(L(L(L(L(L(L(L(L(L(r,st.LENGTH_PERCENTAGE_14,new xC),st.COORDINATE,new tp),st.OFFSET_DISTANCE,new PC),st.OPACITY_VALUE,new MC),st.PATH,new SC),st.LIST_OF_POINTS,new TC),st.SHADOW_BLUR,new AC),st.TEXT,new OC),st.TEXT_TRANSFORM,new kC),st.TRANSFORM,new nN),L(L(L(r,st.TRANSFORM_ORIGIN,new rN),st.Z_INDEX,new iN),st.MARKER,new EC)}(),GN=function(){return typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof w.g!="undefined"?w.g:{}};Ke.CameraContribution=tb,Ke.AnimationTimeline=null,Ke.EasingFunction=null,Ke.offscreenCanvasCreator=new lp,Ke.sceneGraphSelector=new yN,Ke.sceneGraphService=new AN(Ke),Ke.textService=new zN(Ke),Ke.geometryUpdaterFactory=FN,Ke.CSSPropertySyntaxFactory=jN,Ke.styleValueRegistry=new dC(Ke),Ke.layoutRegistry=null,Ke.globalThis=GN(),Ke.enableStyleSyntax=!0,Ke.enableSizeAttenuation=!1;var Yb=0;function EU(){Yb=0}var cp=new Za(Qt.INSERTED,null,"","","",0,"",""),hp=new Za(Qt.REMOVED,null,"","","",0,"",""),Ub=new Yr(Qt.DESTROY),HN=function(r){function e(){var t;_(this,e);for(var n=arguments.length,i=new Array(n),a=0;a=0;n--){var i=this.childNodes[n];this.removeChild(i)}}},{key:"destroyChildren",value:function(){for(var n=this.childNodes.length-1;n>=0;n--){var i=this.childNodes[n];i.childNodes.length>0&&i.destroyChildren(),i.destroy()}}},{key:"matches",value:function(n){return Ke.sceneGraphService.matches(n,this)}},{key:"getElementById",value:function(n){return Ke.sceneGraphService.querySelector("#".concat(n),this)}},{key:"getElementsByName",value:function(n){return Ke.sceneGraphService.querySelectorAll('[name="'.concat(n,'"]'),this)}},{key:"getElementsByClassName",value:function(n){return Ke.sceneGraphService.querySelectorAll(".".concat(n),this)}},{key:"getElementsByTagName",value:function(n){return Ke.sceneGraphService.querySelectorAll(n,this)}},{key:"querySelector",value:function(n){return Ke.sceneGraphService.querySelector(n,this)}},{key:"querySelectorAll",value:function(n){return Ke.sceneGraphService.querySelectorAll(n,this)}},{key:"closest",value:function(n){var i=this;do{if(Ke.sceneGraphService.matches(n,i))return i;i=i.parentElement}while(i!==null);return null}},{key:"find",value:function(n){var i=this,a=null;return this.forEach(function(s){return s!==i&&n(s)?(a=s,!1):!0}),a}},{key:"findAll",value:function(n){var i=this,a=[];return this.forEach(function(s){s!==i&&n(s)&&a.push(s)}),a}},{key:"after",value:function(){var n=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};Ke.styleValueRegistry.processProperties(this,n,i),this.renderable.dirty=!0}},{key:"setAttribute",value:function(n,i){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;Et(i)||(a||i!==this.attributes[n])&&(this.internalSetAttribute(n,i,{memoize:s}),y1(e,"setAttribute",this,3)([n,i]))}},{key:"internalSetAttribute",value:function(n,i){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},s=this.renderable,o=this.attributes[n],l=this.parsedStyle[n];Ke.styleValueRegistry.processProperties(this,L({},n,i),a),s.dirty=!0;var u=this.parsedStyle[n];if(this.isConnected&&(Ka.relatedNode=this,Ka.prevValue=o,Ka.newValue=i,Ka.attrName=n,Ka.prevParsedValue=l,Ka.newParsedValue=u,this.isMutationObserved?this.dispatchEvent(Ka):(Ka.target=this,this.ownerDocument.defaultView.dispatchEvent(Ka,!0))),this.isCustomElement&&this.isConnected||!this.isCustomElement){var c,h;(c=(h=this).attributeChangedCallback)===null||c===void 0||c.call(h,n,o,i,l,u)}}},{key:"getBBox",value:function(){var n=this.getBounds(),i=n.getMin(),a=Ie(i,2),s=a[0],o=a[1],l=n.getMax(),u=Ie(l,2),c=u[0],h=u[1];return new El(s,o,c-s,h-o)}},{key:"setOrigin",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return Ke.sceneGraphService.setOrigin(this,$r(n,i,a,!1)),this}},{key:"getOrigin",value:function(){return Ke.sceneGraphService.getOrigin(this)}},{key:"setPosition",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return Ke.sceneGraphService.setPosition(this,$r(n,i,a,!1)),this}},{key:"setLocalPosition",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return Ke.sceneGraphService.setLocalPosition(this,$r(n,i,a,!1)),this}},{key:"translate",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return Ke.sceneGraphService.translate(this,$r(n,i,a,!1)),this}},{key:"translateLocal",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return Ke.sceneGraphService.translateLocal(this,$r(n,i,a,!1)),this}},{key:"getPosition",value:function(){return Ke.sceneGraphService.getPosition(this)}},{key:"getLocalPosition",value:function(){return Ke.sceneGraphService.getLocalPosition(this)}},{key:"scale",value:function(n,i,a){return this.scaleLocal(n,i,a)}},{key:"scaleLocal",value:function(n,i,a){return typeof n=="number"&&(i=i||n,a=a||n,n=$r(n,i,a,!1)),Ke.sceneGraphService.scaleLocal(this,n),this}},{key:"setLocalScale",value:function(n,i,a){return typeof n=="number"&&(i=i||n,a=a||n,n=$r(n,i,a,!1)),Ke.sceneGraphService.setLocalScale(this,n),this}},{key:"getLocalScale",value:function(){return Ke.sceneGraphService.getLocalScale(this)}},{key:"getScale",value:function(){return Ke.sceneGraphService.getScale(this)}},{key:"getEulerAngles",value:function(){var n=zg(Wu,Ke.sceneGraphService.getWorldTransform(this)),i=Ie(n,3),a=i[2];return yi(a)}},{key:"getLocalEulerAngles",value:function(){var n=zg(Wu,Ke.sceneGraphService.getLocalRotation(this)),i=Ie(n,3),a=i[2];return yi(a)}},{key:"setEulerAngles",value:function(n){return Ke.sceneGraphService.setEulerAngles(this,0,0,n),this}},{key:"setLocalEulerAngles",value:function(n){return Ke.sceneGraphService.setLocalEulerAngles(this,0,0,n),this}},{key:"rotateLocal",value:function(n,i,a){return vt(i)&&vt(a)?Ke.sceneGraphService.rotateLocal(this,0,0,n):Ke.sceneGraphService.rotateLocal(this,n,i,a),this}},{key:"rotate",value:function(n,i,a){return vt(i)&&vt(a)?Ke.sceneGraphService.rotate(this,0,0,n):Ke.sceneGraphService.rotate(this,n,i,a),this}},{key:"setRotation",value:function(n,i,a,s){return Ke.sceneGraphService.setRotation(this,n,i,a,s),this}},{key:"setLocalRotation",value:function(n,i,a,s){return Ke.sceneGraphService.setLocalRotation(this,n,i,a,s),this}},{key:"setLocalSkew",value:function(n,i){return Ke.sceneGraphService.setLocalSkew(this,n,i),this}},{key:"getRotation",value:function(){return Ke.sceneGraphService.getRotation(this)}},{key:"getLocalRotation",value:function(){return Ke.sceneGraphService.getLocalRotation(this)}},{key:"getLocalSkew",value:function(){return Ke.sceneGraphService.getLocalSkew(this)}},{key:"getLocalTransform",value:function(){return Ke.sceneGraphService.getLocalTransform(this)}},{key:"getWorldTransform",value:function(){return Ke.sceneGraphService.getWorldTransform(this)}},{key:"setLocalTransform",value:function(n){return Ke.sceneGraphService.setLocalTransform(this,n),this}},{key:"resetLocalTransform",value:function(){Ke.sceneGraphService.resetLocalTransform(this)}},{key:"getAnimations",value:function(){return this.activeAnimations}},{key:"animate",value:function(n,i){var a,s=(a=this.ownerDocument)===null||a===void 0?void 0:a.timeline;return s?s.play(this,n,i):null}},{key:"isVisible",value:function(){var n;return((n=this.parsedStyle)===null||n===void 0?void 0:n.visibility)!=="hidden"}},{key:"interactive",get:function(){return this.isInteractive()},set:function(n){this.style.pointerEvents=n?"auto":"none"}},{key:"isInteractive",value:function(){var n;return((n=this.parsedStyle)===null||n===void 0?void 0:n.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,K(this.parentNode.children.map(function(n){return Number(n.style.zIndex)})))+1),this}},{key:"toBack",value:function(){return this.parentNode&&(this.style.zIndex=Math.min.apply(Math,K(this.parentNode.children.map(function(n){return Number(n.style.zIndex)})))-1),this}},{key:"getConfig",value:function(){return this.config}},{key:"attr",value:function(){for(var n=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(n,i,a),this}},{key:"move",value:function(n){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(n,i,a),this}},{key:"setZIndex",value:function(n){return this.style.zIndex=n,this}}])}(HN);Qn.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 Ol=function(r){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return _(this,e),Ee(this,e,[D({type:je.CIRCLE},t)])}return Pe(e,r),N(e)}(Qn);Ol.PARSED_STYLE_LIST=new Set([].concat(K(Qn.PARSED_STYLE_LIST),["cx","cy","cz","r","isBillboard","isSizeAttenuation"]));var VN=["style"],YN=function(r){function e(){var t,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.style,a=Mo(n,VN);return _(this,e),t=Ee(this,e,[D({style:i},a)]),t.isCustomElement=!0,t}return Pe(e,r),N(e)}(Qn),Rh=function(r){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return _(this,e),Ee(this,e,[D({type:je.ELLIPSE},t)])}return Pe(e,r),N(e)}(Qn);Rh.PARSED_STYLE_LIST=new Set([].concat(K(Qn.PARSED_STYLE_LIST),["cx","cy","cz","rx","ry","isBillboard","isSizeAttenuation"]));var wU=null,kl=function(r){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return _(this,e),Ee(this,e,[D({type:je.GROUP},t)])}return Pe(e,r),N(e)}(Qn);kl.PARSED_STYLE_LIST=new Set([].concat(K(Qn.PARSED_STYLE_LIST),["width","height"]));var UN=["style"],Lh=function(r){function e(){var t,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.style,a=Mo(n,UN);return _(this,e),t=Ee(this,e,[D({type:je.HTML,style:i},a)]),t.cullable.enable=!1,t}return Pe(e,r),N(e,[{key:"getDomElement",value:function(){return this.parsedStyle.$el}},{key:"getClientRects",value:function(){return[this.getBoundingClientRect()]}},{key:"getLocalBounds",value:function(){if(this.parentNode){var n=Ot(mt(),this.parentNode.getWorldTransform()),i=this.getBounds();if(!Rn.isEmpty(i)){var a=new Rn;return a.setFromTransformedAABB(i,n),a}}return this.getBounds()}}])}(Qn);Lh.PARSED_STYLE_LIST=new Set([].concat(K(Qn.PARSED_STYLE_LIST),["x","y","$el","innerHTML","width","height"]));var Dh=function(r){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return _(this,e),Ee(this,e,[D({type:je.IMAGE},t)])}return Pe(e,r),N(e)}(Qn);Dh.PARSED_STYLE_LIST=new Set([].concat(K(Qn.PARSED_STYLE_LIST),["x","y","z","src","width","height","isBillboard","billboardRotation","isSizeAttenuation","keepAspectRatio"]));var ZN=["style"],Vu=function(r){function e(){var t,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.style,a=Mo(n,ZN);_(this,e),t=Ee(this,e,[D({type:je.LINE,style:D({x1:0,y1:0,x2:0,y2:0,z1:0,z2:0},i)},a)]),t.markerStartAngle=0,t.markerEndAngle=0;var s=t.parsedStyle,o=s.markerStart,l=s.markerEnd;return o&&ln(o)&&(t.markerStartAngle=o.getLocalEulerAngles(),t.appendChild(o)),l&&ln(l)&&(t.markerEndAngle=l.getLocalEulerAngles(),t.appendChild(l)),t.transformMarker(!0),t.transformMarker(!1),t}return Pe(e,r),N(e,[{key:"attributeChangedCallback",value:function(n,i,a,s,o){n==="x1"||n==="y1"||n==="x2"||n==="y2"||n==="markerStartOffset"||n==="markerEndOffset"?(this.transformMarker(!0),this.transformMarker(!1)):n==="markerStart"?(s&&ln(s)&&(this.markerStartAngle=0,s.remove()),o&&ln(o)&&(this.markerStartAngle=o.getLocalEulerAngles(),this.appendChild(o),this.transformMarker(!0))):n==="markerEnd"&&(s&&ln(s)&&(this.markerEndAngle=0,s.remove()),o&&ln(o)&&(this.markerEndAngle=o.getLocalEulerAngles(),this.appendChild(o),this.transformMarker(!1)))}},{key:"transformMarker",value:function(n){var i=this.parsedStyle,a=i.markerStart,s=i.markerEnd,o=i.markerStartOffset,l=i.markerEndOffset,u=i.x1,c=i.x2,h=i.y1,f=i.y2,d=n?a:s;if(!(!d||!ln(d))){var v=0,g,p,m,b,x,O;n?(m=u,b=h,g=c-u,p=f-h,x=o||0,O=this.markerStartAngle):(m=c,b=f,g=u-c,p=h-f,x=l||0,O=this.markerEndAngle),v=Math.atan2(p,g),d.setLocalEulerAngles(v*180/Math.PI+O),d.setLocalPosition(m+Math.cos(v)*x,b+Math.sin(v)*x)}}},{key:"getPoint",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,a=this.parsedStyle,s=a.x1,o=a.y1,l=a.x2,u=a.y2,c=Ui(s,o,l,u,n),h=c.x,f=c.y,d=Dn(Me(),me(h,f,0),i?this.getWorldTransform():this.getLocalTransform());return new Ir(d[0],d[1])}},{key:"getPointAtLength",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return this.getPoint(n/this.getTotalLength(),i)}},{key:"getTotalLength",value:function(){var n=this.parsedStyle,i=n.x1,a=n.y1,s=n.x2,o=n.y2;return ph(i,a,s,o)}}])}(Qn);Vu.PARSED_STYLE_LIST=new Set([].concat(K(Qn.PARSED_STYLE_LIST),["x1","y1","x2","y2","z1","z2","isBillboard","isSizeAttenuation","markerStart","markerEnd","markerStartOffset","markerEndOffset"]));var KN=["style"],gs=function(r){function e(){var t,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.style,a=Mo(n,KN);_(this,e),t=Ee(this,e,[D({type:je.PATH,style:i,initialParsedStyle:{miterLimit:4,d:D({},nb)}},a)]),t.markerStartAngle=0,t.markerEndAngle=0,t.markerMidList=[];var s=t.parsedStyle,o=s.markerStart,l=s.markerEnd,u=s.markerMid;return o&&ln(o)&&(t.markerStartAngle=o.getLocalEulerAngles(),t.appendChild(o)),u&&ln(u)&&t.placeMarkerMid(u),l&&ln(l)&&(t.markerEndAngle=l.getLocalEulerAngles(),t.appendChild(l)),t.transformMarker(!0),t.transformMarker(!1),t}return Pe(e,r),N(e,[{key:"attributeChangedCallback",value:function(n,i,a,s,o){n==="d"?(this.transformMarker(!0),this.transformMarker(!1),this.placeMarkerMid(this.parsedStyle.markerMid)):n==="markerStartOffset"||n==="markerEndOffset"?(this.transformMarker(!0),this.transformMarker(!1)):n==="markerStart"?(s&&ln(s)&&(this.markerStartAngle=0,s.remove()),o&&ln(o)&&(this.markerStartAngle=o.getLocalEulerAngles(),this.appendChild(o),this.transformMarker(!0))):n==="markerEnd"?(s&&ln(s)&&(this.markerEndAngle=0,s.remove()),o&&ln(o)&&(this.markerEndAngle=o.getLocalEulerAngles(),this.appendChild(o),this.transformMarker(!1))):n==="markerMid"&&this.placeMarkerMid(o)}},{key:"transformMarker",value:function(n){var i=this.parsedStyle,a=i.markerStart,s=i.markerEnd,o=i.markerStartOffset,l=i.markerEndOffset,u=n?a:s;if(!(!u||!ln(u))){var c=0,h,f,d,v,g,p;if(n){var m=this.getStartTangent(),b=Ie(m,2),x=b[0],O=b[1];d=O[0],v=O[1],h=x[0]-O[0],f=x[1]-O[1],g=o||0,p=this.markerStartAngle}else{var T=this.getEndTangent(),S=Ie(T,2),k=S[0],C=S[1];d=C[0],v=C[1],h=k[0]-C[0],f=k[1]-C[1],g=l||0,p=this.markerEndAngle}c=Math.atan2(f,h),u.setLocalEulerAngles(c*180/Math.PI+p),u.setLocalPosition(d+Math.cos(c)*g,v+Math.sin(c)*g)}}},{key:"placeMarkerMid",value:function(n){var i=this.parsedStyle.d.segments;if(this.markerMidList.forEach(function(c){c.remove()}),n&&ln(n))for(var a=1;a1&&arguments[1]!==void 0?arguments[1]:!1,a=this.parsedStyle.d.absolutePath,s=m1(a,n),o=s.x,l=s.y,u=Dn(Me(),me(o,l,0),i?this.getWorldTransform():this.getLocalTransform());return new Ir(u[0],u[1])}},{key:"getPoint",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return this.getPointAtLength(n*Kg(this),i)}},{key:"getStartTangent",value:function(){var n=this.parsedStyle.d.segments,i=[];if(n.length>1){var a=n[0].currentPoint,s=n[1].currentPoint,o=n[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 n=this.parsedStyle.d.segments,i=n.length,a=[];if(i>1){var s=n[i-2].currentPoint,o=n[i-1].currentPoint,l=n[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}}])}(Qn);gs.PARSED_STYLE_LIST=new Set([].concat(K(Qn.PARSED_STYLE_LIST),["d","markerStart","markerMid","markerEnd","markerStartOffset","markerEndOffset","isBillboard","isSizeAttenuation"]));var QN=["style"],Cl=function(r){function e(){var t,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.style,a=Mo(n,QN);_(this,e),t=Ee(this,e,[D({type:je.POLYGON,style:i,initialParsedStyle:{points:{points:[],totalLength:0,segments:[]},miterLimit:4,isClosed:!0}},a)]),t.markerStartAngle=0,t.markerEndAngle=0,t.markerMidList=[];var s=t.parsedStyle,o=s.markerStart,l=s.markerEnd,u=s.markerMid;return o&&ln(o)&&(t.markerStartAngle=o.getLocalEulerAngles(),t.appendChild(o)),u&&ln(u)&&t.placeMarkerMid(u),l&&ln(l)&&(t.markerEndAngle=l.getLocalEulerAngles(),t.appendChild(l)),t.transformMarker(!0),t.transformMarker(!1),t}return Pe(e,r),N(e,[{key:"attributeChangedCallback",value:function(n,i,a,s,o){n==="points"?(this.transformMarker(!0),this.transformMarker(!1),this.placeMarkerMid(this.parsedStyle.markerMid)):n==="markerStartOffset"||n==="markerEndOffset"?(this.transformMarker(!0),this.transformMarker(!1)):n==="markerStart"?(s&&ln(s)&&(this.markerStartAngle=0,s.remove()),o&&ln(o)&&(this.markerStartAngle=o.getLocalEulerAngles(),this.appendChild(o),this.transformMarker(!0))):n==="markerEnd"?(s&&ln(s)&&(this.markerEndAngle=0,s.remove()),o&&ln(o)&&(this.markerEndAngle=o.getLocalEulerAngles(),this.appendChild(o),this.transformMarker(!1))):n==="markerMid"&&this.placeMarkerMid(o)}},{key:"transformMarker",value:function(n){var i=this.parsedStyle,a=i.markerStart,s=i.markerEnd,o=i.markerStartOffset,l=i.markerEndOffset,u=i.points,c=u||{},h=c.points,f=n?a:s;if(!(!f||!ln(f)||!h)){var d=0,v,g,p,m,b,x;if(p=h[0][0],m=h[0][1],n)v=h[1][0]-h[0][0],g=h[1][1]-h[0][1],b=o||0,x=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],m=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,x=this.markerEndAngle}d=Math.atan2(g,v),f.setLocalEulerAngles(d*180/Math.PI+x),f.setLocalPosition(p+Math.cos(d)*b,m+Math.sin(d)*b)}}},{key:"placeMarkerMid",value:function(n){var i=this.parsedStyle.points,a=i||{},s=a.points;if(this.markerMidList.forEach(function(h){h.remove()}),this.markerMidList=[],n&&ln(n)&&s)for(var o=1;o<(this.parsedStyle.isClosed?s.length:s.length-1);o++){var l=s[o][0],u=s[o][1],c=o===1?n:n.cloneNode(!0);this.markerMidList.push(c),this.appendChild(c),c.setLocalPosition(l,u)}}}])}(Qn);Cl.PARSED_STYLE_LIST=new Set([].concat(K(Qn.PARSED_STYLE_LIST),["points","markerStart","markerMid","markerEnd","markerStartOffset","markerEndOffset","isClosed","isBillboard","isSizeAttenuation"]));var JN=["style"],fp=function(r){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.style,i=Mo(t,JN);return _(this,e),Ee(this,e,[D({type:je.POLYLINE,style:n,initialParsedStyle:{points:{points:[],totalLength:0,segments:[]},miterLimit:4,isClosed:!1}},i)])}return Pe(e,r),N(e,[{key:"getTotalLength",value:function(){return jk(this)}},{key:"getPointAtLength",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return this.getPoint(n/this.getTotalLength(),i)}},{key:"getPoint",value:function(n){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,u,c=this.getTotalLength();a.forEach(function(m,b){a[b+1]&&(l=[0,0],l[0]=o/c,u=ph(m[0],m[1],a[b+1][0],a[b+1][1]),o+=u,l[1]=o/c,s.push(l))}),this.parsedStyle.points.segments=s}var h=0,f=0;this.parsedStyle.points.segments.forEach(function(m,b){n>=m[0]&&n<=m[1]&&(h=(n-m[0])/(m[1]-m[0]),f=b)});var d=Ui(a[f][0],a[f][1],a[f+1][0],a[f+1][1],h),v=d.x,g=d.y,p=Dn(Me(),me(v,g,0),i?this.getWorldTransform():this.getLocalTransform());return new Ir(p[0],p[1])}},{key:"getStartTangent",value:function(){var n=this.parsedStyle.points.points,i=[];return i.push([n[1][0],n[1][1]]),i.push([n[0][0],n[0][1]]),i}},{key:"getEndTangent",value:function(){var n=this.parsedStyle.points.points,i=n.length-1,a=[];return a.push([n[i-1][0],n[i-1][1]]),a.push([n[i][0],n[i][1]]),a}}])}(Cl);fp.PARSED_STYLE_LIST=new Set([].concat(K(Cl.PARSED_STYLE_LIST),["points","markerStart","markerMid","markerEnd","markerStartOffset","markerEndOffset","isBillboard"]));var wa=function(r){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return _(this,e),Ee(this,e,[D({type:je.RECT},t)])}return Pe(e,r),N(e)}(Qn);wa.PARSED_STYLE_LIST=new Set([].concat(K(Qn.PARSED_STYLE_LIST),["x","y","z","width","height","isBillboard","isSizeAttenuation","radius"]));var qN=["style"],Nl=function(r){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.style,i=Mo(t,qN);return _(this,e),Ee(this,e,[D({type:je.TEXT,style:D({fill:"black"},n)},i)])}return Pe(e,r),N(e,[{key:"getComputedTextLength",value:function(){var n;return this.getGeometryBounds(),((n=this.parsedStyle.metrics)===null||n===void 0?void 0:n.maxLineWidth)||0}},{key:"getLineBoundingRects",value:function(){var n;return this.getGeometryBounds(),((n=this.parsedStyle.metrics)===null||n===void 0?void 0:n.lineMetrics)||[]}},{key:"isOverflowing",value:function(){return this.getGeometryBounds(),!!this.parsedStyle.isOverflowing}}])}(Qn);Nl.PARSED_STYLE_LIST=new Set([].concat(K(Qn.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 $N=function(){function r(){_(this,r),this.registry={},this.define(je.CIRCLE,Ol),this.define(je.ELLIPSE,Rh),this.define(je.RECT,wa),this.define(je.IMAGE,Dh),this.define(je.LINE,Vu),this.define(je.GROUP,kl),this.define(je.PATH,gs),this.define(je.POLYGON,Cl),this.define(je.POLYLINE,fp),this.define(je.TEXT,Nl),this.define(je.HTML,Lh)}return N(r,[{key:"define",value:function(t,n){this.registry[t]=n}},{key:"get",value:function(t){return this.registry[t]}}])}(),PU={number:function(e){return new En(e)},percent:function(e){return new En(e,"%")},px:function(e){return new En(e,"px")},em:function(e){return new En(e,"em")},rem:function(e){return new En(e,"rem")},deg:function(e){return new En(e,"deg")},grad:function(e){return new En(e,"grad")},rad:function(e){return new En(e,"rad")},turn:function(e){return new En(e,"turn")},s:function(e){return new En(e,"s")},ms:function(e){return new En(e,"ms")},registerProperty:function(e){var t=e.name,n=e.inherits,i=e.interpolable,a=e.initialValue,s=e.syntax;Ke.styleValueRegistry.registerMetadata({n:t,inh:n,int:i,d:a,syntax:s})},registerLayout:function(e,t){Ke.layoutRegistry.registerLayout(e,t)}},Zb=function(r){function e(){var t;_(this,e),t=Ee(this,e),t.defaultView=null,t.ownerDocument=null,t.nodeName="document";try{t.timeline=new Ke.AnimationTimeline(t)}catch(i){}var n={};return ep.forEach(function(i){var a=i.n,s=i.inh,o=i.d;s&&o&&(n[a]=pt(o)?o(je.GROUP):o)}),t.documentElement=new kl({id:"g-root",style:n}),t.documentElement.ownerDocument=t,t.documentElement.parentNode=t,t.childNodes=[t.documentElement],t}return Pe(e,r),N(e,[{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(n,i){if(n==="svg")return this.documentElement;var a=this.defaultView.customElements.get(n);a||(console.warn("Unsupported tagName: ",n),a=n==="tspan"?Nl:kl);var s=new a(i);return s.ownerDocument=this,s}},{key:"createElementNS",value:function(n,i,a){return this.createElement(i,a)}},{key:"cloneNode",value:function(n){throw new Error(yn)}},{key:"destroy",value:function(){try{this.documentElement.destroyChildren(),this.timeline.destroy()}catch(n){}}},{key:"elementsFromBBox",value:function(n,i,a,s){var o=this.defaultView.context.rBushRoot,l=o.search({minX:n,minY:i,maxX:a,maxY:s}),u=[];return l.forEach(function(c){var h=c.displayObject,f=h.parsedStyle.pointerEvents,d=f===void 0?"auto":f,v=["auto","visiblepainted","visiblefill","visiblestroke","visible"].includes(d);(!v||v&&h.isVisible())&&!h.isCulled()&&h.isInteractive()&&u.push(h)}),u.sort(function(c,h){return h.sortable.renderOrder-c.sortable.renderOrder}),u}},{key:"elementFromPointSync",value:function(n,i){var a=this.defaultView.canvas2Viewport({x:n,y:i}),s=a.x,o=a.y,l=this.defaultView.getConfig(),u=l.width,c=l.height;if(s<0||o<0||s>u||o>c)return null;var h=this.defaultView.viewport2Client({x:s,y:o}),f=h.x,d=h.y,v=this.defaultView.getRenderingService().hooks.pickSync.call({topmost:!0,position:{x:n,y:i,viewportX:s,viewportY:o,clientX:f,clientY:d},picked:[]}),g=v.picked;return g&&g[0]||this.documentElement}},{key:"elementFromPoint",value:function(){var t=Lg(Po().mark(function i(a,s){var o,l,u,c,h,f,d,v,g,p,m;return Po().wrap(function(x){for(;;)switch(x.prev=x.next){case 0:if(o=this.defaultView.canvas2Viewport({x:a,y:s}),l=o.x,u=o.y,c=this.defaultView.getConfig(),h=c.width,f=c.height,!(l<0||u<0||l>h||u>f)){x.next=4;break}return x.abrupt("return",null);case 4:return d=this.defaultView.viewport2Client({x:l,y:u}),v=d.x,g=d.y,x.next=7,this.defaultView.getRenderingService().hooks.pick.promise({topmost:!0,position:{x:a,y:s,viewportX:l,viewportY:u,clientX:v,clientY:g},picked:[]});case 7:return p=x.sent,m=p.picked,x.abrupt("return",m&&m[0]||this.documentElement);case 10:case"end":return x.stop()}},i,this)}));function n(i,a){return t.apply(this,arguments)}return n}()},{key:"elementsFromPointSync",value:function(n,i){var a=this.defaultView.canvas2Viewport({x:n,y:i}),s=a.x,o=a.y,l=this.defaultView.getConfig(),u=l.width,c=l.height;if(s<0||o<0||s>u||o>c)return[];var h=this.defaultView.viewport2Client({x:s,y:o}),f=h.x,d=h.y,v=this.defaultView.getRenderingService().hooks.pickSync.call({topmost:!1,position:{x:n,y:i,viewportX:s,viewportY:o,clientX:f,clientY:d},picked:[]}),g=v.picked;return g[g.length-1]!==this.documentElement&&g.push(this.documentElement),g}},{key:"elementsFromPoint",value:function(){var t=Lg(Po().mark(function i(a,s){var o,l,u,c,h,f,d,v,g,p,m;return Po().wrap(function(x){for(;;)switch(x.prev=x.next){case 0:if(o=this.defaultView.canvas2Viewport({x:a,y:s}),l=o.x,u=o.y,c=this.defaultView.getConfig(),h=c.width,f=c.height,!(l<0||u<0||l>h||u>f)){x.next=4;break}return x.abrupt("return",[]);case 4:return d=this.defaultView.viewport2Client({x:l,y:u}),v=d.x,g=d.y,x.next=7,this.defaultView.getRenderingService().hooks.pick.promise({topmost:!1,position:{x:a,y:s,viewportX:l,viewportY:u,clientX:v,clientY:g},picked:[]});case 7:return p=x.sent,m=p.picked,m[m.length-1]!==this.documentElement&&m.push(this.documentElement),x.abrupt("return",m);case 11:case"end":return x.stop()}},i,this)}));function n(i,a){return t.apply(this,arguments)}return n}()},{key:"appendChild",value:function(n,i){throw new Error(wl)}},{key:"insertBefore",value:function(n,i){throw new Error(wl)}},{key:"removeChild",value:function(n,i){throw new Error(wl)}},{key:"replaceChild",value:function(n,i,a){throw new Error(wl)}},{key:"append",value:function(){throw new Error(wl)}},{key:"prepend",value:function(){throw new Error(wl)}},{key:"getElementById",value:function(n){return this.documentElement.getElementById(n)}},{key:"getElementsByName",value:function(n){return this.documentElement.getElementsByName(n)}},{key:"getElementsByTagName",value:function(n){return this.documentElement.getElementsByTagName(n)}},{key:"getElementsByClassName",value:function(n){return this.documentElement.getElementsByClassName(n)}},{key:"querySelector",value:function(n){return this.documentElement.querySelector(n)}},{key:"querySelectorAll",value:function(n){return this.documentElement.querySelectorAll(n)}},{key:"find",value:function(n){return this.documentElement.find(n)}},{key:"findAll",value:function(n){return this.documentElement.findAll(n)}}])}(Kn),Kb=function(){function r(e){_(this,r),this.strategies=e}return N(r,[{key:"apply",value:function(t){var n=t.camera,i=t.renderingService,a=t.renderingContext,s=this.strategies;i.hooks.cull.tap(r.tag,function(o){if(o){var l=o.cullable;return s.length===0?l.visible=a.unculledEntities.indexOf(o.entity)>-1:l.visible=s.every(function(u){return u.isVisible(n,o)}),!o.isCulled()&&o.isVisible()?o:(o.dispatchEvent(new Yr(Qt.CULLED)),null)}return o}),i.hooks.afterRender.tap(r.tag,function(o){o.cullable.visibilityPlaneMask=-1})}}])}();Kb.tag="Culling";var Qb=function(){function r(){var e=this;_(this,r),this.autoPreventDefault=!1,this.rootPointerEvent=new kh(null),this.rootWheelEvent=new op(null),this.onPointerMove=function(t){var n,i=(n=e.context.renderingContext.root)===null||n===void 0||(n=n.ownerDocument)===null||n===void 0?void 0:n.defaultView;if(!(i.supportsTouchEvents&&t.pointerType==="touch")){var a=e.normalizeToPointerEvent(t,i),s=yl(a),o;try{for(s.s();!(o=s.n()).done;){var l=o.value,u=e.bootstrapEvent(e.rootPointerEvent,l,i,t);e.context.eventService.mapEvent(u)}}catch(c){s.e(c)}finally{s.f()}e.setCursor(e.context.eventService.cursor)}},this.onClick=function(t){var n,i=(n=e.context.renderingContext.root)===null||n===void 0||(n=n.ownerDocument)===null||n===void 0?void 0:n.defaultView,a=e.normalizeToPointerEvent(t,i),s=yl(a),o;try{for(s.s();!(o=s.n()).done;){var l=o.value,u=e.bootstrapEvent(e.rootPointerEvent,l,i,t);e.context.eventService.mapEvent(u)}}catch(c){s.e(c)}finally{s.f()}e.setCursor(e.context.eventService.cursor)}}return N(r,[{key:"apply",value:function(t){var n=this;this.context=t;var i=t.renderingService,a=this.context.renderingContext.root.ownerDocument.defaultView;this.context.eventService.setPickHandler(function(s){var o=n.context.renderingService.hooks.pickSync.call({position:s,picked:[],topmost:!0}),l=o.picked;return l[0]||null}),i.hooks.pointerWheel.tap(r.tag,function(s){var o=n.normalizeWheelEvent(s);n.context.eventService.mapEvent(o)}),i.hooks.pointerDown.tap(r.tag,function(s){if(!(a.supportsTouchEvents&&s.pointerType==="touch")){var o=n.normalizeToPointerEvent(s,a);if(n.autoPreventDefault&&o[0].isNormalized){var l=s.cancelable||!("cancelable"in s);l&&s.preventDefault()}var u=yl(o),c;try{for(u.s();!(c=u.n()).done;){var h=c.value,f=n.bootstrapEvent(n.rootPointerEvent,h,a,s);n.context.eventService.mapEvent(f)}}catch(d){u.e(d)}finally{u.f()}n.setCursor(n.context.eventService.cursor)}}),i.hooks.pointerUp.tap(r.tag,function(s){if(!(a.supportsTouchEvents&&s.pointerType==="touch")){var o=n.context.contextService.getDomElement(),l=n.context.eventService.isNativeEventFromCanvas(o,s),u=l?"":"outside",c=n.normalizeToPointerEvent(s,a),h=yl(c),f;try{for(h.s();!(f=h.n()).done;){var d=f.value,v=n.bootstrapEvent(n.rootPointerEvent,d,a,s);v.type+=u,n.context.eventService.mapEvent(v)}}catch(g){h.e(g)}finally{h.f()}n.setCursor(n.context.eventService.cursor)}}),i.hooks.pointerMove.tap(r.tag,this.onPointerMove),i.hooks.pointerOver.tap(r.tag,this.onPointerMove),i.hooks.pointerOut.tap(r.tag,this.onPointerMove),i.hooks.click.tap(r.tag,this.onClick),i.hooks.pointerCancel.tap(r.tag,function(s){var o=n.normalizeToPointerEvent(s,a),l=yl(o),u;try{for(l.s();!(u=l.n()).done;){var c=u.value,h=n.bootstrapEvent(n.rootPointerEvent,c,a,s);n.context.eventService.mapEvent(h)}}catch(f){l.e(f)}finally{l.f()}n.setCursor(n.context.eventService.cursor)})}},{key:"bootstrapEvent",value:function(t,n,i,a){t.view=i,t.originalEvent=null,t.nativeEvent=a,t.pointerId=n.pointerId,t.width=n.width,t.height=n.height,t.isPrimary=n.isPrimary,t.pointerType=n.pointerType,t.pressure=n.pressure,t.tangentialPressure=n.tangentialPressure,t.tiltX=n.tiltX,t.tiltY=n.tiltY,t.twist=n.twist,this.transferMouseData(t,n);var s=this.context.eventService.client2Viewport({x:n.clientX,y:n.clientY}),o=s.x,l=s.y;t.viewport.x=o,t.viewport.y=l;var u=this.context.eventService.viewport2Canvas(t.viewport),c=u.x,h=u.y;return t.canvas.x=c,t.canvas.y=h,t.global.copyFrom(t.canvas),t.offset.copyFrom(t.canvas),t.isTrusted=a.isTrusted,t.type==="pointerleave"&&(t.type="pointerout"),t.type.startsWith("mouse")&&(t.type=t.type.replace("mouse","pointer")),t.type.startsWith("touch")&&(t.type=BC[t.type]||t.type),t}},{key:"normalizeWheelEvent",value:function(t){var n=this.rootWheelEvent;this.transferMouseData(n,t),n.deltaMode=t.deltaMode,n.deltaX=t.deltaX,n.deltaY=t.deltaY,n.deltaZ=t.deltaZ;var i=this.context.eventService.client2Viewport({x:t.clientX,y:t.clientY}),a=i.x,s=i.y;n.viewport.x=a,n.viewport.y=s;var o=this.context.eventService.viewport2Canvas(n.viewport),l=o.x,u=o.y;return n.canvas.x=l,n.canvas.y=u,n.global.copyFrom(n.canvas),n.offset.copyFrom(n.canvas),n.nativeEvent=t,n.type=t.type,n}},{key:"transferMouseData",value:function(t,n){t.isTrusted=n.isTrusted,t.srcElement=n.srcElement,t.timeStamp=rp.now(),t.type=n.type,t.altKey=n.altKey,t.metaKey=n.metaKey,t.shiftKey=n.shiftKey,t.ctrlKey=n.ctrlKey,t.button=n.button,t.buttons=n.buttons,t.client.x=n.clientX,t.client.y=n.clientY,t.movement.x=n.movementX,t.movement.y=n.movementY,t.page.x=n.pageX,t.page.y=n.pageY,t.screen.x=n.screenX,t.screen.y=n.screenY,t.relatedTarget=null}},{key:"setCursor",value:function(t){this.context.contextService.applyCursorStyle(t||this.context.config.cursor||"default")}},{key:"normalizeToPointerEvent",value:function(t,n){var i=[];if(n.isTouchEvent(t))for(var a=0;a-1,l=0,u=a.length;l1&&arguments[1]!==void 0?arguments[1]:!1;if(t.isConnected){var i=t.rBushNode;i.aabb&&this.rBush.remove(i.aabb);var a=t.getRenderBounds();if(a){var s=t.renderable;n&&(s.dirtyRenderBounds||(s.dirtyRenderBounds=new Rn),s.dirtyRenderBounds.update(a.center,a.halfExtents));var o=a.getMin(),l=Ie(o,2),u=l[0],c=l[1],h=a.getMax(),f=Ie(h,2),d=f[0],v=f[1];i.aabb||(i.aabb={}),i.aabb.displayObject=t,i.aabb.minX=u,i.aabb.minY=c,i.aabb.maxX=d,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 t=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if(!(!n&&(this.syncing||this.syncTasks.size===0))){this.syncing=!0;var i=[],a=new Set,s=function(l){if(!a.has(l)&&l.renderable){var u=t.syncNode(l,n);u&&(i.push(u),a.add(l))}};this.syncTasks.forEach(function(o,l){o&&l.forEach(s);for(var u=l;u;)s(u),u=u.parentElement}),this.rBush.load(i),i.length=0,this.syncing=!1}}}])}();Jb.tag="Prepare";function MU(r){return!!r.document}var Ci=function(r){return r.READY="ready",r.BEFORE_RENDER="beforerender",r.RERENDER="rerender",r.AFTER_RENDER="afterrender",r.BEFORE_DESTROY="beforedestroy",r.AFTER_DESTROY="afterdestroy",r.RESIZE="resize",r.DIRTY_RECTANGLE="dirtyrectangle",r.RENDERER_CHANGED="rendererchanged",r}({}),qb=500,n3=.1,r3=1e3,Ih=new Yr(Qt.MOUNTED),Bh=new Yr(Qt.UNMOUNTED),dp=new Yr(Ci.BEFORE_RENDER),$b=new Yr(Ci.RERENDER),vp=new Yr(Ci.AFTER_RENDER),gp=function(r){function e(t){var n;_(this,e),n=Ee(this,e),n.Element=Qn,n.inited=!1,n.context={},n.document=new Zb,n.document.defaultView=n,n.customElements=new $N;var i=t.container,a=t.canvas,s=t.offscreenCanvas,o=t.width,l=t.height,u=t.devicePixelRatio,c=t.renderer,h=t.background,f=t.cursor,d=t.document,v=t.requestAnimationFrame,g=t.cancelAnimationFrame,p=t.createImage,m=t.enableLargeImageOptimization,b=t.supportsPointerEvents,x=t.supportsTouchEvents,O=t.supportsCSSTransform,T=t.cleanUpOnDestroy,S=T===void 0?!0:T,k=t.supportsMutipleCanvasesInOneContainer,C=t.useNativeClickEvent,W=t.alwaysTriggerPointerEventOnCanvas,U=t.isTouchEvent,J=t.isMouseEvent,te=t.dblClickSpeed;k||CC(i,n,S);var ie=o,ae=l,ve=u;return a&&(ve=u||Gu&&window.devicePixelRatio||1,ve=ve>=1?Math.ceil(ve):1,ie=o||LC(a)||a.width/ve,ae=l||DC(a)||a.height/ve),s&&(Ke.offscreenCanvas=s),n.devicePixelRatio=ve,n.requestAnimationFrame=v!=null?v:ip.bind(Ke.globalThis),n.cancelAnimationFrame=g!=null?g:Ib.bind(Ke.globalThis),n.supportsTouchEvents=x!=null?x:"ontouchstart"in Ke.globalThis,n.supportsPointerEvents=b!=null?b:!!Ke.globalThis.PointerEvent,n.isTouchEvent=U!=null?U:function(Z){return n.supportsTouchEvents&&Z instanceof Ke.globalThis.TouchEvent},n.isMouseEvent=J!=null?J:function(Z){return!Ke.globalThis.MouseEvent||Z instanceof Ke.globalThis.MouseEvent&&(!n.supportsPointerEvents||!(Z instanceof Ke.globalThis.PointerEvent))},n.dblClickSpeed=te!=null?te:200,n.initRenderingContext({container:i,canvas:a,width:ie,height:ae,renderer:c,offscreenCanvas:s,devicePixelRatio:ve,cursor:f||"default",background:h||"transparent",createImage:p,enableLargeImageOptimization:m,document:d,supportsCSSTransform:O,useNativeClickEvent:C,cleanUpOnDestroy:S,alwaysTriggerPointerEventOnCanvas:W}),n.initDefaultCamera(ie,ae,c.clipSpaceNearZ),n.initRenderer(c,!0),n}return Pe(e,r),N(e,[{key:"initRenderingContext",value:function(n){this.context.config=n,this.context.renderingContext={root:this.document.documentElement,renderListCurrentFrame:[],unculledEntities:[],renderReasons:new Set,force:!1,dirty:!1}}},{key:"initDefaultCamera",value:function(n,i,a){var s=this,o=new Ke.CameraContribution;o.clipSpaceNearZ=a,o.setType(xn.EXPLORING,jg.DEFAULT).setPosition(n/2,i/2,qb).setFocalPoint(n/2,i/2,0).setOrthographic(n/-2,n/2,i/2,i/-2,n3,r3),o.canvas=this,o.eventEmitter.on($1.UPDATED,function(){s.context.renderingContext.renderReasons.add(Tl.CAMERA_CHANGED),Ke.enableSizeAttenuation&&s.getConfig().renderer.getConfig().enableSizeAttenuation&&s.updateSizeAttenuation()}),this.context.camera=o}},{key:"updateSizeAttenuation",value:function(){var n=this.getCamera().getZoom();this.document.documentElement.forEach(function(i){Ke.styleValueRegistry.updateSizeAttenuation(i,n)})}},{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 n=this;return this.readyPromise||(this.readyPromise=new Promise(function(i){n.resolveReadyPromise=function(){i(n)}}),this.inited&&this.resolveReadyPromise()),this.readyPromise}},{key:"destroy",value:function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,i=arguments.length>1?arguments[1]:void 0;i===void 0&&(i=this.getConfig().fastCleanExistingCanvas),i||this.dispatchEvent(new Yr(Ci.BEFORE_DESTROY)),this.frameId&&this.cancelAnimationFrame(this.frameId);var a=this.getRoot();this.unmountChildren(a),n&&(this.document.destroy(),this.getEventService().destroy()),this.getRenderingService().destroy(),this.getContextService().destroy(),n&&this.context.rBushRoot&&(this.context.rBushRoot.clear(),this.context.rBushRoot=null,this.context.renderingContext.root=null),i||this.dispatchEvent(new Yr(Ci.AFTER_DESTROY));var s=function(l){l.currentTarget=null,l.manager=null,l.target=null,l.relatedNode=null};s(Ih),s(Bh),s(dp),s($b),s(vp),s(Ka),s(cp),s(hp),s(Ub)}},{key:"changeSize",value:function(n,i){this.resize(n,i)}},{key:"resize",value:function(n,i){var a=this.context.config;a.width=n,a.height=i,this.getContextService().resize(n,i);var s=this.context.camera,o=s.getProjectionMode();s.setPosition(n/2,i/2,qb).setFocalPoint(n/2,i/2,0),o===Zi.ORTHOGRAPHIC?s.setOrthographic(n/-2,n/2,i/2,i/-2,s.getNear(),s.getFar()):s.setAspect(n/i),this.dispatchEvent(new Yr(Ci.RESIZE,{width:n,height:i}))}},{key:"appendChild",value:function(n,i){return this.document.documentElement.appendChild(n,i)}},{key:"insertBefore",value:function(n,i){return this.document.documentElement.insertBefore(n,i)}},{key:"removeChild",value:function(n){return this.document.documentElement.removeChild(n)}},{key:"removeChildren",value:function(){this.document.documentElement.removeChildren()}},{key:"destroyChildren",value:function(){this.document.documentElement.destroyChildren()}},{key:"render",value:function(n){var i=this;n&&(dp.detail=n,vp.detail=n),this.dispatchEvent(dp);var a=this.getRenderingService();a.render(this.getConfig(),n,function(){i.dispatchEvent($b)}),this.dispatchEvent(vp)}},{key:"run",value:function(){var n=this,i=function(s,o){n.render(o),n.frameId=n.requestAnimationFrame(i)};i()}},{key:"initRenderer",value:function(n){var i=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(!n)throw new Error("Renderer is required.");this.inited=!1,this.readyPromise=void 0,this.context.rBushRoot=new jO,this.context.renderingPlugins=[],this.context.renderingPlugins.push(new Qb,new Jb,new Kb([new t3])),this.loadRendererContainerModule(n),this.context.contextService=new this.context.ContextService(D(D({},Ke),this.context)),this.context.renderingService=new pN(Ke,this.context),this.context.eventService=new gN(Ke,this.context),this.context.eventService.init(),this.context.contextService.init?(this.context.contextService.init(),this.initRenderingService(n,a,!0)):this.context.contextService.initAsync().then(function(){i.initRenderingService(n,a)})}},{key:"initRenderingService",value:function(n){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(){i.inited=!0,a?s?i.requestAnimationFrame(function(){i.dispatchEvent(new Yr(Ci.READY))}):i.dispatchEvent(new Yr(Ci.READY)):i.dispatchEvent(new Yr(Ci.RENDERER_CHANGED)),i.readyPromise&&i.resolveReadyPromise(),a||i.getRoot().forEach(function(o){var l=o,u=l.renderable;u&&(u.renderBoundsDirty=!0,u.boundsDirty=!0,u.dirty=!0)}),i.mountChildren(i.getRoot()),n.getConfig().enableAutoRendering&&i.run()})}},{key:"loadRendererContainerModule",value:function(n){var i=this,a=n.getPlugins();a.forEach(function(s){s.context=i.context,s.init(Ke)})}},{key:"setRenderer",value:function(n){var i=this.getConfig();if(i.renderer!==n){var a=i.renderer;i.renderer=n,this.destroy(!1,!0),K((a==null?void 0:a.getPlugins())||[]).reverse().forEach(function(s){s.destroy(Ke)}),this.initRenderer(n)}}},{key:"setCursor",value:function(n){var i=this.getConfig();i.cursor=n,this.getContextService().applyCursorStyle(n)}},{key:"unmountChildren",value:function(n){var i=this;n.childNodes.forEach(function(a){i.unmountChildren(a)}),this.inited&&(n.isMutationObserved?n.dispatchEvent(Bh):(Bh.target=n,this.dispatchEvent(Bh,!0)),n!==this.document.documentElement&&(n.ownerDocument=null),n.isConnected=!1),n.isCustomElement&&n.disconnectedCallback&&n.disconnectedCallback()}},{key:"mountChildren",value:function(n){var i=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ah(n);this.inited?n.isConnected||(n.ownerDocument=this.document,n.isConnected=!0,a||(n.isMutationObserved?n.dispatchEvent(Ih):(Ih.target=n,this.dispatchEvent(Ih,!0)))):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: ",n.nodeName),n.childNodes.forEach(function(s){i.mountChildren(s,a)}),n.isCustomElement&&n.connectedCallback&&n.connectedCallback()}},{key:"mountFragment",value:function(n){this.mountChildren(n,!1)}},{key:"client2Viewport",value:function(n){return this.getEventService().client2Viewport(n)}},{key:"viewport2Client",value:function(n){return this.getEventService().viewport2Client(n)}},{key:"viewport2Canvas",value:function(n){return this.getEventService().viewport2Canvas(n)}},{key:"canvas2Viewport",value:function(n){return this.getEventService().canvas2Viewport(n)}},{key:"getPointByClient",value:function(n,i){return this.client2Viewport({x:n,y:i})}},{key:"getClientByPoint",value:function(n,i){return this.viewport2Client({x:n,y:i})}}])}(Gb);function tt(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}function js(r){"@babel/helpers - typeof";return js=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},js(r)}function i3(r,e){if(js(r)!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var n=t.call(r,e||"default");if(js(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function ex(r){var e=i3(r,"string");return js(e)=="symbol"?e:e+""}function tx(r,e){for(var t=0;t90)return this;this.computeMatrix()}return this._getAxes(),this.type===xn.ORBITING||this.type===xn.EXPLORING?this._getPosition():this.type===xn.TRACKING&&this._getFocalPoint(),this._update(),this}},{key:"pan",value:function(n,i){var a=$r(n,i,0),s=De(this.position);return He(s,s,wt(Me(),this.right,a[0])),He(s,s,wt(Me(),this.up,a[1])),this._setPosition(s),this.triggerUpdate(),this}},{key:"dolly",value:function(n){var i=this.forward,a=De(this.position),s=n*this.dollyingStep,o=this.distance+n*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===xn.ORBITING||this.type===xn.EXPLORING?this._getDistance():this.type===xn.TRACKING&&He(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(n){var i,a,s,o,l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},u=l.position,c=u===void 0?this.position:u,h=l.focalPoint,f=h===void 0?this.focalPoint:h,d=l.roll,v=l.zoom,g=new Ke.CameraContribution;g.setType(this.type,void 0),g.setPosition(c[0],(i=c[1])!==null&&i!==void 0?i:this.position[1],(a=c[2])!==null&&a!==void 0?a:this.position[2]),g.setFocalPoint(f[0],(s=f[1])!==null&&s!==void 0?s:this.focalPoint[1],(o=f[2])!==null&&o!==void 0?o:this.focalPoint[2]),g.setRoll(d!=null?d:this.roll),g.setZoom(v!=null?v:this.zoom);var p={name:n,matrix:Tn(g.getWorldTransform()),right:De(g.right),up:De(g.up),forward:De(g.forward),position:De(g.getPosition()),focalPoint:De(g.getFocalPoint()),distanceVector:De(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(n){var i=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=Xt(n)?this.landmarks.find(function(J){return J.name===n}):n;if(s){var o=ht(a)?{duration:a}:a,l=o.easing,u=l===void 0?"linear":l,c=o.duration,h=c===void 0?100:c,f=o.easingFunction,d=f===void 0?void 0:f,v=o.onfinish,g=v===void 0?void 0:v,p=o.onframe,m=p===void 0?void 0:p,b=.01;this.cancelLandmarkAnimation();var x=s.position,O=s.focalPoint,T=s.zoom,S=s.roll,k=d||Ke.EasingFunction(u),C,W=function(){i.setFocalPoint(O),i.setPosition(x),i.setRoll(S),i.setZoom(T),i.computeMatrix(),i.triggerUpdate(),g==null||g()};if(h===0)return W();var U=function(te){C===void 0&&(C=te);var ie=te-C;if(ie>=h){W();return}var ae=k(ie/h),ve=Me(),Z=Me(),H=1,X=0;Ha(ve,i.focalPoint,O,ae),Ha(Z,i.position,x,ae),X=i.roll*(1-ae)+S*ae,H=i.zoom*(1-ae)+T*ae,i.setFocalPoint(ve),i.setPosition(Z),i.setRoll(X),i.setZoom(H);var q=ll(ve,O)+ll(Z,x);if(q<=b&&T===void 0&&S===void 0)return W();i.computeMatrix(),i.triggerUpdate(),ier.length)&&(e=r.length);for(var t=0,n=Array(e);t0&&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 t=this.oldPlayState,n=this.pending?"pending":this.playState;return this.readyPromise&&n!==t&&(n==="idle"?(this.rejectReadyPromise(),this.readyPromise=void 0):t==="pending"?this.resolveReadyPromise():n==="pending"&&(this.readyPromise=void 0)),this.finishedPromise&&n!==t&&(n==="idle"?(this.rejectFinishedPromise(),this.finishedPromise=void 0):n==="finished"?this.resolveFinishedPromise():t==="finished"&&(this.finishedPromise=void 0)),this.oldPlayState=n,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 t=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 n=new wp(null,this,this.currentTime,null);setTimeout(function(){t.oncancel(n)})}}},{key:"reverse",value:function(){this.updatePromises();var t=this.currentTime;this.playbackRate*=-1,this.play(),t!==null&&(this.currentTime=t),this.updatePromises()}},{key:"updatePlaybackRate",value:function(t){this.playbackRate=t}},{key:"targetAnimations",value:function(){var t,n=(t=this.effect)===null||t===void 0?void 0:t.target;return n.getAnimations()}},{key:"markTarget",value:function(){var t=this.targetAnimations();t.indexOf(this)===-1&&t.push(this)}},{key:"unmarkTarget",value:function(){var t=this.targetAnimations(),n=t.indexOf(this);n!==-1&&t.splice(n,1)}},{key:"tick",value:function(t,n){!this._idle&&!this._paused&&(this._startTime===null?n&&(this.startTime=t-this._currentTime/this.playbackRate):this._isFinished||this.tickCurrentTime((t-this._startTime)*this.playbackRate)),n&&(this.currentTimePending=!1,this.fireEvents(t))}},{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(yn)}},{key:"addEventListener",value:function(t,n,i){throw new Error(yn)}},{key:"removeEventListener",value:function(t,n,i){throw new Error(yn)}},{key:"dispatchEvent",value:function(t){throw new Error(yn)}},{key:"commitStyles",value:function(){throw new Error(yn)}},{key:"ensureAlive",value:function(){if(this.playbackRate<0&&this.currentTime===0){var t;this._inEffect=!!((t=this.effect)!==null&&t!==void 0&&t.update(-1))}else{var n;this._inEffect=!!((n=this.effect)!==null&&n!==void 0&&n.update(this.currentTime))}!this._inTimeline&&(this._inEffect||!this._finishedFlag)&&(this._inTimeline=!0,this.timeline.animations.push(this))}},{key:"tickCurrentTime",value:function(t,n){t!==this._currentTime&&(this._currentTime=t,this._isFinished&&!n&&(this._currentTime=this._playbackRate>0?this._totalDuration:0),this.ensureAlive())}},{key:"fireEvents",value:function(t){var n=this;if(this._isFinished){if(!this._finishedFlag){if(this.onfinish){var i=new wp(null,this,this.currentTime,t);setTimeout(function(){n.onfinish&&n.onfinish(i)})}this._finishedFlag=!0}}else{if(this.onframe&&this.playState==="running"){var a=new wp(null,this,this.currentTime,t);this.onframe(a)}this._finishedFlag=!1}}}])}(),y3=4,b3=.001,x3=1e-7,E3=10,Yu=11,Fh=1/(Yu-1),w3=typeof Float32Array=="function",ax=function(e,t){return 1-3*t+3*e},sx=function(e,t){return 3*t-6*e},ox=function(e){return 3*e},jh=function(e,t,n){return((ax(t,n)*e+sx(t,n))*e+ox(t))*e},lx=function(e,t,n){return 3*ax(t,n)*e*e+2*sx(t,n)*e+ox(t)},P3=function(e,t,n,i,a){var s,o,l=0;do o=t+(n-t)/2,s=jh(o,i,a)-e,s>0?n=o:t=o;while(Math.abs(s)>x3&&++l=0&&e<=1&&n>=0&&n<=1))throw new Error("bezier x values must be in [0, 1] range");if(e===t&&n===i)return function(l){return l};for(var a=w3?new Float32Array(Yu):new Array(Yu),s=0;s=b3?M3(u,v,e,n):g===0?v:P3(u,c,c+Fh,e,n)};return function(l){return l===0||l===1?l:jh(o(l),t,i)}},S3=function(e){return e=e.replace(/([A-Z])/g,function(t){return"-".concat(t.toLowerCase())}),e.charAt(0)==="-"?e.substring(1):e},Gh=function(e){return Math.pow(e,2)},Hh=function(e){return Math.pow(e,3)},Xh=function(e){return Math.pow(e,4)},Wh=function(e){return Math.pow(e,5)},Vh=function(e){return Math.pow(e,6)},Yh=function(e){return 1-Math.cos(e*Math.PI/2)},Uh=function(e){return 1-Math.sqrt(1-e*e)},Zh=function(e){return e*e*(3*e-2)},Kh=function(e){for(var t,n=4;e<((t=Math.pow(2,--n))-1)/11;);return 1/Math.pow(4,3-n)-7.5625*Math.pow((t*3-2)/22-e,2)},Qh=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=pn(t,2),i=n[0],a=i===void 0?1:i,s=n[1],o=s===void 0?.5:s,l=on(Number(a),1,10),u=on(Number(o),.1,2);return e===0||e===1?e:-l*Math.pow(2,10*(e-1))*Math.sin((e-1-u/(Math.PI*2)*Math.asin(1/l))*(Math.PI*2)/u)},Uu=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2?arguments[2]:void 0,i=pn(t,4),a=i[0],s=a===void 0?1:a,o=i[1],l=o===void 0?100:o,u=i[2],c=u===void 0?10:u,h=i[3],f=h===void 0?0:h;s=on(s,.1,1e3),l=on(l,.1,1e3),c=on(c,.1,1e3),f=on(f,.1,1e3);var d=Math.sqrt(l/s),v=c/(2*Math.sqrt(l*s)),g=v<1?d*Math.sqrt(1-v*v):0,p=1,m=v<1?(v*d+-f)/g:-f+d,b=n?n*e/1e3:e;return v<1?b=Math.exp(-b*v*d)*(p*Math.cos(g*b)+m*Math.sin(g*b)):b=(p+m*b)*Math.exp(-b*d),e===0||e===1?e:1-b},Mp=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=t,i=pn(n,2),a=i[0],s=a===void 0?10:a,o=i[1],l=o==="start"?Math.ceil:Math.floor;return l(on(e,0,1)*s)/s},ux=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=pn(t,4),i=n[0],a=n[1],s=n[2],o=n[3];return Pp(i,a,s,o)(e)},Jh=Pp(.42,0,1,1),Qi=function(e){return function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0;return 1-e(1-t,n,i)}},Ji=function(e){return function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0;return t<.5?e(t*2,n,i)/2:1-e(t*-2+2,n,i)/2}},qi=function(e){return function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0;return t<.5?(1-e(1-t*2,n,i))/2:(e(t*2-1,n,i)+1)/2}},cx={steps:Mp,"step-start":function(e){return Mp(e,[1,"start"])},"step-end":function(e){return Mp(e,[1,"end"])},linear:function(e){return e},"cubic-bezier":ux,ease:function(e){return ux(e,[.25,.1,.25,1])},in:Jh,out:Qi(Jh),"in-out":Ji(Jh),"out-in":qi(Jh),"in-quad":Gh,"out-quad":Qi(Gh),"in-out-quad":Ji(Gh),"out-in-quad":qi(Gh),"in-cubic":Hh,"out-cubic":Qi(Hh),"in-out-cubic":Ji(Hh),"out-in-cubic":qi(Hh),"in-quart":Xh,"out-quart":Qi(Xh),"in-out-quart":Ji(Xh),"out-in-quart":qi(Xh),"in-quint":Wh,"out-quint":Qi(Wh),"in-out-quint":Ji(Wh),"out-in-quint":qi(Wh),"in-expo":Vh,"out-expo":Qi(Vh),"in-out-expo":Ji(Vh),"out-in-expo":qi(Vh),"in-sine":Yh,"out-sine":Qi(Yh),"in-out-sine":Ji(Yh),"out-in-sine":qi(Yh),"in-circ":Uh,"out-circ":Qi(Uh),"in-out-circ":Ji(Uh),"out-in-circ":qi(Uh),"in-back":Zh,"out-back":Qi(Zh),"in-out-back":Ji(Zh),"out-in-back":qi(Zh),"in-bounce":Kh,"out-bounce":Qi(Kh),"in-out-bounce":Ji(Kh),"out-in-bounce":qi(Kh),"in-elastic":Qh,"out-elastic":Qi(Qh),"in-out-elastic":Ji(Qh),"out-in-elastic":qi(Qh),spring:Uu,"spring-in":Uu,"spring-out":Qi(Uu),"spring-in-out":Ji(Uu),"spring-out-in":qi(Uu)},T3=function(e){return S3(e).replace(/^ease-/,"").replace(/(\(|\s).+/,"").toLowerCase().trim()},A3=function(e){return cx[T3(e)]||cx.linear},O3=function(e){return e},k3=1,C3=.5,hx=0;function fx(r,e){return function(t){if(t>=1)return 1;var n=1/r;return t+=e*n,t-t%n}}var qh="\\s*(-?\\d+\\.?\\d*|-?\\.\\d+)\\s*",N3=new RegExp("cubic-bezier\\(".concat(qh,",").concat(qh,",").concat(qh,",").concat(qh,"\\)")),_3=/steps\(\s*(\d+)\s*\)/,R3=/steps\(\s*(\d+)\s*,\s*(start|middle|end)\s*\)/;function Sp(r){var e=N3.exec(r);if(e)return Pp.apply(void 0,ni(e.slice(1).map(Number)));var t=_3.exec(r);if(t)return fx(Number(t[1]),hx);var n=R3.exec(r);return n?fx(Number(n[1]),{start:k3,middle:C3,end:hx}[n[2]]):A3(r)}function L3(r){return Math.abs(D3(r)/(r.playbackRate||1))}function D3(r){var e;return r.duration===0||r.iterations===0?0:(r.duration==="auto"?0:Number(r.duration))*((e=r.iterations)!==null&&e!==void 0?e:1)}var dx=0,Tp=1,$h=2,vx=3;function I3(r,e,t){if(e===null)return dx;var n=t.endTime;return e=Math.min(t.delay+r+t.endDelay,n)?$h:vx}function B3(r,e,t,n,i){switch(n){case Tp:return e==="backwards"||e==="both"?0:null;case vx:return t-i;case $h:return e==="forwards"||e==="both"?r:null;case dx:return null}}function z3(r,e,t,n,i){var a=i;return r===0?e!==Tp&&(a+=t):a+=n/r,a}function F3(r,e,t,n,i,a){var s=r===1/0?e%1:r%1;return s===0&&t===$h&&n!==0&&(i!==0||a===0)&&(s=1),s}function j3(r,e,t,n){return r===$h&&e===1/0?1/0:t===1?Math.floor(n)-1:Math.floor(n)}function G3(r,e,t){var n=r;if(r!=="normal"&&r!=="reverse"){var i=e;r==="alternate-reverse"&&(i+=1),n="normal",i!==1/0&&i%2!==0&&(n="reverse")}return n==="normal"?t:1-t}function H3(r,e,t){var n=I3(r,e,t),i=B3(r,t.fill,e,n,t.delay);if(i===null)return null;var a=t.duration==="auto"?0:t.duration,s=z3(a,n,t.iterations,i,t.iterationStart),o=F3(s,t.iterationStart,n,t.iterations,i,a),l=j3(n,t.iterations,o,s),u=G3(t.direction,l,o);return t.currentIteration=l,t.progress=u,t.easingFunction(u)}function X3(r,e,t){var n=W3(r,e),i=V3(n,t);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.");u.computedOffset=h}}else if(c==="composite"&&["replace","add","accumulate","auto"].indexOf(h)===-1)throw new Error("".concat(h," compositing is not supported"));u[c]=h}return u.offset===void 0&&(u.offset=null),u.easing===void 0&&(u.easing=(e==null?void 0:e.easing)||"linear"),u.composite===void 0&&(u.composite="auto"),u}),n=!0,i=-1/0,a=0;a=0&&Number(l.offset)<=1});function o(){var l,u=t,c=u.length;if(t[c-1].computedOffset=Number((l=t[c-1].offset)!==null&&l!==void 0?l:1),c>1){var h;t[0].computedOffset=Number((h=t[0].offset)!==null&&h!==void 0?h:0)}for(var f=0,d=Number(t[0].computedOffset),v=1;v{!wi.mute&&console.debug(bs(r))},info:r=>{!wi.mute&&console.info(bs(r))},warn:r=>{!wi.mute&&console.warn(bs(r))},error:r=>{!wi.mute&&console.error(bs(r))}};function Ex(r){const{theme:e}=r;if(!e)return{};const t=ys(Ku.THEME,e);return t||(wi.warn(`The theme of ${e} is not registered.`),{})}function Cp(r,e){if(Array.isArray(r)&&r.length===0)return null;const t=Array.isArray(r)?r[0]:r,n=Array.isArray(r)?r.slice(1):e||[];return new Proxy(t,{get(i,a){return typeof i[a]=="function"&&!["onframe","onfinish"].includes(a)?(...s)=>{i[a](...s),n.forEach(o=>{var l;return(l=o[a])===null||l===void 0?void 0:l.call(o,...s)})}:a==="finished"?Promise.all([t.finished,...n.map(s=>s.finished)]):Reflect.get(i,a)},set(i,a,s){return["onframe","onfinish"].includes(a)||n.forEach(o=>{o[a]=s}),Reflect.set(i,a,s)}})}function Np(r){const e=r.reduce((n,i)=>(Object.entries(i).forEach(([a,s])=>{n[a]===void 0?n[a]=[s]:n[a].push(s)}),n),{});Object.entries(e).forEach(([n,i])=>{(i.length!==r.length||i.some(a=>vt(a))||i.every(a=>!["sourceNode","targetNode","childrenNode"].includes(n)&&dr(a,i[0])))&&delete e[n]});const t=Object.entries(e).reduce((n,[i,a])=>(a.forEach((s,o)=>{n[o]?n[o][i]=s:n[o]={[i]:s}}),n),[]);return r.length!==0&&t.length===0&&t.push({_:0},{_:0}),t}function Qu(r){switch(r){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 wx(r,e){const{animation:t}=r;if(t===!1||e===!1)return!1;const n=Object.assign({},a_);return nr(t)&&Object.assign(n,t),nr(e)&&Object.assign(n,e),n}function u_(r){if(typeof r=="string"){const e=ys(Ku.ANIMATION,r);return e||(wi.warn(`The animation of ${r} is not registered.`),[])}return r}function c_(r,e,t,n){var i,a;const{animation:s}=r,o=(i=r==null?void 0:r[e])===null||i===void 0?void 0:i.animation;if(o===!1)return[];const l=o==null?void 0:o[t];if(l===!1)return[];if(s===!1||n===!1)return[];const u=(a=Ex(r)[e])===null||a===void 0?void 0:a.animation,c=(f=[])=>u_(f).map(d=>Object.assign(Object.assign(Object.assign(Object.assign({},s_),nr(s)&&s),d),nr(n)&&n));if(l)return c(l);if(!u)return[];const h=u[t];return h===!1?[]:c(h)}function Px(r,e,t,n){if(Array.isArray(n)){let a=!1;const s=[];for(let o=0;o{if(!t.length)return null;const[n,i]=e,a=u=>{var c;if(u){const h=r.getShape(u);if(!h)return null;const f=`get${ef(u)}Style`,d=((c=r==null?void 0:r[f])===null||c===void 0?void 0:c.bind(r))||(p=>p),v=(d==null?void 0:d(n))||{},g=(d==null?void 0:d(i))||{};return{shape:h,fromStyle:v,toStyle:g}}else return{shape:r,fromStyle:n,toStyle:i}};let s;const o=t.map(u=>{var{fields:c,shape:h,states:f}=u,d=h_(u,["fields","shape","states"]);const v=a(h);if(!v)return null;const{shape:g,fromStyle:p,toStyle:m}=v,b=[{},{}];if(c.forEach(O=>{var T,S;Object.assign(b[0],{[O]:(T=p[O])!==null&&T!==void 0?T:Qu(O)}),Object.assign(b[1],{[O]:(S=m[O])!==null&&S!==void 0?S:Qu(O)})}),b.some(O=>Object.keys(O).some(T=>["x","y","z"].includes(T)))){const{x:O=0,y:T=0,z:S=0,transform:k=""}=g.attributes||{};b.forEach(C=>{C.transform=Px(C.x||O,C.y||T,C.z||S,k)})}const x=g.animate(Np(b),d);return h===void 0&&(s=x),x}).filter(Boolean),l=s||(o==null?void 0:o[0]);return l?Cp(l,o.filter(u=>u!==u)):null},d_=[{fields:["opacity"]}],v_=[{fields:["x","y"]}],Mx=[{fields:["x","y"]}],g_=Mx,Sx=[{fields:["sourceNode","targetNode"]}],p_=Sx,Tx=[{fields:["childrenNode","x","y"]}],m_=Tx,IU=[{fields:["childrenNode","x","y"]}];var y_=Object.prototype.hasOwnProperty;function b_(r,e){if(!e||!pi(r))return{};for(var t={},n=pt(e)?e:function(o){return o[e]},i,a=0;ae?(n&&(clearTimeout(n),n=null),o=c,s=r.apply(i,a),n||(i=a=null)):!n&&t.trailing!==!1&&(n=setTimeout(l,h)),s};return u.cancel=function(){clearTimeout(n),o=0,n=i=a=null},u},_p=function(r){if(typeof r!="object"||r===null)return r;var e;if(pi(r)){e=[];for(var t=0,n=r.length;ttypeof e=="number"):!1}function Qa(r,e,t){return r>=e&&r<=t}function Ja(r=0){if(Array.isArray(r)){const[e=0,t=e,n=e,i=t]=r;return[e,t,n,i]}return[r,r,r,r]}function w_(r=0){const e=Ja(r);return e[0]+e[2]}function zU(r=0){const e=Ja(r);return e[1]+e[3]}function qa(r){return r.max[0]-r.min[0]}function $a(r){return r.max[1]-r.min[1]}function Hs(r){return[qa(r),$a(r)]}function Xs(r,e){const t=Dl(r)?Rp(r):r.getShape("key").getBounds();return e?Ws(t,e):t}function Rp(r){const[e,t,n=0]=r,i=new Rn;return i.setMinMax([e,t,n],[e,t,n]),i}function Ws(r,e){const[t,n,i,a]=Ja(e),[s,o,l]=r.min,[u,c,h]=r.max,f=new Rn;return f.setMinMax([s-a,o-t,l],[u+n,c+i,h]),f}function Ju(r){if(r.length===0)return new Rn;if(r.length===1)return r[0];const e=new Rn;e.setMinMax(r[0].min,r[0].max);for(let t=1;t=s&&i<=l&&n>=o&&a<=u}function Pa(r,e){return Qa(r[0],e.min[0],e.max[0])&&Qa(r[1],e.min[1],e.max[1])}function Ox(r,e,t=!1){const{min:[n,i],max:[a,s]}=e,o=(r[1]===i||r[1]===s)&&(t||Qa(r[0],n,a)),l=(r[0]===n||r[0]===a)&&(t||Qa(r[1],i,s));return o||l}function M_(r,e){return!Pa(r,e)}function rf(r,e){const{center:t}=e;return r[0]===t[0]&&r[1]===t[1]}function qu(r,e){const[t,n]=r,[i,a]=e.min,[s,o]=e.max,l=t-i,u=s-t,c=n-a,h=o-n,f=Math.min(l,u,c,h);return f===l?"left":f===u?"right":f===c?"top":f===h?"bottom":"left"}function _o(r,e){const t=Ll(r);if(Pa(r,e))switch(qu(r,e)){case"left":t[0]=e.min[0];break;case"right":t[0]=e.max[0];break;case"top":t[1]=e.min[1];break;case"bottom":t[1]=e.max[1];break}else{const[n,i]=r,[a,s]=e.min,[o,l]=e.max;t[0]=Qa(n,a,o)?n:n0&&d(T[0])}},m=0;m0;)f.push(l.pop());s.push(f)}}return s},_x=function(e){for(var t=e.nodes,n=t===void 0?[]:t,i=e.edges,a=i===void 0?[]:i,s=[],o={},l={},u={},c=[],h=0,f=function p(m){l[m.id]=h,u[m.id]=h,h+=1,s.push(m),o[m.id]=!0;for(var b=ta(m.id,a,"target").filter(function(k){return n.map(function(C){return C.id}).indexOf(k)>-1}),x=function(C){var W=b[C];if(!l[W]&&l[W]!==0){var U=n.filter(function(J){return J.id===W});U.length>0&&p(U[0]),u[m.id]=Math.min(u[m.id],u[W])}else o[W]&&(u[m.id]=Math.min(u[m.id],l[W]))},O=0;O0;){var S=s.pop();if(o[S.id]=!1,T.push(S),S===m)break}T.length>0&&c.push(T)}},d=0,v=n;d0;)for(var p=d.pop(),m=p.id,b=ta(m,e.edges),x=function(S){var k,C=b[S],W=e.nodes.find(function(ve){return ve.id===C});if(C===m)s.push((k={},k[C]=p,k));else if(!(C in g))v[C]=p,d.push(W),g[C]=new Set([p]);else if(!g[m].has(W)){for(var U=!0,J=[W,p],te=v[m];g[C].size&&!g[C].has(te)&&(J.push(te),te!==v[te.id]);)te=v[te.id];if(J.push(te),t&&n?(U=!1,J.findIndex(function(ve){return t.indexOf(ve.id)>-1})>-1&&(U=!0)):t&&!n&&J.findIndex(function(ve){return t.indexOf(ve.id)>-1})>-1&&(U=!1),U){for(var ie={},ae=1;ae0;){var ae=ie.pop();a.has(ae)&&(a.delete(ae),s[ae.id].forEach(function(ve){ie.push(ve)}),s[ae.id].clear())}},h=function J(te,ie,ae){var ve=!1;if(t&&n===!1&&t.indexOf(te.id)>-1)return ve;i.push(te),a.add(te);for(var Z=ae[te.id],H=0;H-1});Be-1)?o.push((ie={},ie[Oe.id]=Oe,ie)):de[Oe.id].push(u[Ve])}}return{component:oe,adjList:de,minIdx:ve}},x=0;x=x}),T=_x({nodes:O,edges:e.edges}).filter(function(J){return J.length>1});if(T.length===0)break;var S=b(T),k=S.minIdx,C=S.adjList,W=S.component;if(W.length>1){W.forEach(function(J){s[J.id]=new Set});var U=l[k];if(t&&n&&t.indexOf(U.id)===-1)return o;h(U,U,C),x=k+1}else break}return o},H_=function(e,t,n,i){return i===void 0&&(i=!0),t?Bx(e,n,i):Ix(e,n,i)},zx=G_,Dp=function(r,e){return Dp=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])},Dp(r,e)};function FU(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");Dp(r,e);function t(){this.constructor=r}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var Fx=function(){return Fx=Object.assign||function(e){for(var t,n=1,i=arguments.length;n=0;o--)(s=r[o])&&(a=(i<3?s(a):i>3?s(e,t,a):s(e,t))||a);return i>3&&a&&Object.defineProperty(e,t,a),a}function HU(r,e){return function(t,n){e(t,n,r)}}function XU(r,e,t,n,i,a){function s(m){if(m!==void 0&&typeof m!="function")throw new TypeError("Function expected");return m}for(var o=n.kind,l=o==="getter"?"get":o==="setter"?"set":"value",u=!e&&r?n.static?r:r.prototype:null,c=e||(u?Object.getOwnPropertyDescriptor(u,n.name):{}),h,f=!1,d=t.length-1;d>=0;d--){var v={};for(var g in n)v[g]=g==="access"?{}:n[g];for(var g in n.access)v.access[g]=n.access[g];v.addInitializer=function(m){if(f)throw new TypeError("Cannot add initializers after decoration has completed");a.push(s(m||null))};var p=(0,t[d])(o==="accessor"?{get:c.get,set:c.set}:c[l],v);if(o==="accessor"){if(p===void 0)continue;if(p===null||typeof p!="object")throw new TypeError("Object expected");(h=s(p.get))&&(c.get=h),(h=s(p.set))&&(c.set=h),(h=s(p.init))&&i.push(h)}else(h=s(p))&&(o==="field"?i.push(h):c[l]=h)}u&&Object.defineProperty(u,n.name,c),f=!0}function WU(r,e,t){for(var n=arguments.length>2,i=0;i0&&a[a.length-1])&&(u[0]===6||u[0]===2)){t=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]=r.length&&(r=void 0),{value:r&&r[n++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function X_(r,e){var t=typeof Symbol=="function"&&r[Symbol.iterator];if(!t)return r;var n=t.call(r),i,a=[],s;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)a.push(i.value)}catch(o){s={error:o}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(s)throw s.error}}return a}function JU(){for(var r=[],e=0;e1||o(f,d)})})}function o(f,d){try{l(n[f](d))}catch(v){h(a[0][3],v)}}function l(f){f.value instanceof lf?Promise.resolve(f.value.v).then(u,c):h(a[0][2],f)}function u(f){o("next",f)}function c(f){o("throw",f)}function h(f,d){f(d),a.shift(),a.length&&o(a[0][0],a[0][1])}}function $U(r){var e,t;return e={},n("next"),n("throw",function(i){throw i}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(i,a){e[i]=r[i]?function(s){return(t=!t)?{value:lf(r[i](s)),done:!1}:a?a(s):s}:a}}function eZ(r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=r[Symbol.asyncIterator],t;return e?e.call(r):(r=typeof Gx=="function"?Gx(r):r[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(a){t[a]=r[a]&&function(s){return new Promise(function(o,l){s=r[a](s),i(o,l,s.done,s.value)})}}function i(a,s,o,l){Promise.resolve(l).then(function(u){a({value:u,done:o})},s)}}function tZ(r,e){return Object.defineProperty?Object.defineProperty(r,"raw",{value:e}):r.raw=e,r}var V_=Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e};function nZ(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&jx(e,r,t);return V_(e,r),e}function rZ(r){return r&&r.__esModule?r:{default:r}}function iZ(r,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(r):n?n.value:e.get(r)}function aZ(r,e,t,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?r!==e||!i:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(r,t):i?i.value=t:e.set(r,t),t}function sZ(r,e){if(e===null||typeof e!="object"&&typeof e!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof r=="function"?e===r:r.has(e)}var Y_={}.toString,U_=function(r,e){return Y_.call(r)==="[object "+e+"]"},uf=U_,Ip=function(r){return uf(r,"Function")},Bp=function(r){return Array.isArray?Array.isArray(r):uf(r,"Array")},Z_=function(r){var e=typeof r;return r!==null&&e==="object"||e==="function"};function K_(r,e){if(r){var t;if(Bp(r))for(var n=0,i=r.length;n-1;)J_.call(r,a,1);return r},SZ=null,$_=Array.prototype.splice,TZ=function(e,t){if(!isArrayLike(e))return[];for(var n=e?t.length:0,i=n-1;n--;){var a=void 0,s=t[n];(n===i||s!==a)&&(a=s,$_.call(e,s,1))}return e},AZ=null,OZ=function(r,e,t){if(!isArray(r)&&!isPlainObject(r))return r;var n=t;return each(r,function(i,a){n=e(n,i,a)}),n},kZ=null,CZ=function(r,e){var t=[];if(!isArrayLike(r))return t;for(var n=-1,i=[],a=r.length;++na[o])return 1;if(i[o]0},iK=null,aK=function(r,e){if(isArray(r)){for(var t,n=-1/0,i=0;in&&(t=a,n=s)}return t}},sK=function(r,e){if(isArray(r)){for(var t,n=1/0,i=0;io&&c>o);)if(l.push(u),o-=c,s=s.substr(i),!s)return l.join("");for(;u=s.substr(0,1),c=measureTextWidth(u,t),!(c+a>o);)if(l.push(u),o-=c,s=s.substr(1),!s)return l.join("");return""+l.join("")+n},WK=function(){function r(){this.map={}}return r.prototype.has=function(e){return this.map[e]!==void 0},r.prototype.get=function(e,t){var n=this.map[e];return n===void 0?t:n},r.prototype.set=function(e,t){this.map[e]=t},r.prototype.clear=function(){this.map={}},r.prototype.delete=function(e){delete this.map[e]},r.prototype.size=function(){return Object.keys(this.map).length},r}(),VK=null,pR=function(e,t,n){for(var i=1/0,a,s=0;sh[T.id]+te?(h[J]=h[T.id]+te,f[J]=[T.id]):h[J]===h[T.id]+te&&f[J].push(T.id)})},g=0;g0&&c.length>0;){var d=c[c.length-1];if(d.length){var v=d.shift();v&&(l.push(v),u[v]=!0,f=i?ta(v,o,"target"):ta(v,o),c.push(f.filter(function(m){return!u[m]})))}else{var g=l.pop();u[g]=!1,c.pop();continue}if(l[l.length-1]===n){var p=l.map(function(b){return b});h.push(p);var g=l.pop();u[g]=!1,c.pop()}}return h},bR=function(e,t){for(var n=af(e,t),i=[],a=n.length,s=0;si[s][l]+i[l][o]&&(i[s][o]=i[s][l]+i[l][o]);return i},Xp=bR,xR=function(e,t,n,i){t===void 0&&(t=!1),n===void 0&&(n="weight"),i===void 0&&(i=1e3);var a=e.nodes,s=a===void 0?[]:a,o=e.edges,l=o===void 0?[]:o,u={},c={};s.forEach(function(O,T){var S=Nx();O.clusterId=S,u[S]={id:S,nodes:[O]},c[O.id]={node:O,idx:T}});var h=af(e,t),f=[],d={};h.forEach(function(O,T){var S=0,k=s[T].id;d[k]={},O.forEach(function(C,W){if(C){S+=C;var U=s[W].id;d[k][U]=C}}),f.push(S)});for(var v=0,g=function(){var T=!1;if(s.forEach(function(S){var k={};Object.keys(d[S.id]).forEach(function(ve){var Z=d[S.id][ve],H=c[ve].node,X=H.clusterId;k[X]||(k[X]=0),k[X]+=Z});var C=-1/0,W=[];if(Object.keys(k).forEach(function(ve){C=0&&W.splice(U,1),W&&W.length){T=!0;var J=u[S.clusterId],te=J.nodes.indexOf(S);J.nodes.splice(te,1);var ie=Math.floor(Math.random()*W.length),ae=u[W[ie]];ae.nodes.push(S),S.clusterId=ae.id}}}),!T)return"break";v++};v0&&C>W&&C-WW&&(J=h.map(function(q){return{node:q,clusterId:q.clusterId}}),te=ec(b),W=C),ie||U>100)break;U++,Object.keys(b).forEach(function(q){var oe=0;d.forEach(function(de){var Oe=de.source,Be=de.target,Ge=x[Oe].node.clusterId,Ve=x[Be].node.clusterId;(Ge===q&&Ve!==q||Ve===q&&Ge!==q)&&(oe=oe+(de[n]||1))}),b[q].sumTot=oe}),h.forEach(function(q,oe){var de=b[q.clusterId],Oe=0,Be,Ge=T[oe]/(2*k),Ve=0,qe=de.nodes;qe.forEach(function(Er){var mr=x[Er.id].idx;Ve+=O[oe][mr]||0});var lt=Ve-de.sumTot*Ge,Ct=qe.filter(function(Er){return Er.id!==q.id}),Vt=[];Ct.forEach(function(Er,mr){Vt[mr]=v[Er.originIndex]});var qt=Vp(Ct,v)*u,Nr=S[q.id];if(Object.keys(Nr).forEach(function(Er){var mr=x[Er].node,da=mr.clusterId;if(da!==q.clusterId){var lr=b[da],Xr=lr.nodes;if(!(!Xr||!Xr.length)){var Ht=0;Xr.forEach(function(sn){var cn=x[sn.id].idx;Ht+=O[oe][cn]||0});var an=Ht-lr.sumTot*Ge,Gt=Xr.concat([q]),tn=[];Gt.forEach(function(sn,cn){tn[cn]=v[sn.originIndex]});var Kt=Vp(Gt,v)*u,yt=an-lt;a&&(yt=an+Kt-(lt+qt)),yt>Oe&&(Oe=yt,Be=lr)}}}),Oe>0){Be.nodes.push(q);var un=q.clusterId;q.clusterId=Be.id;var ui=de.nodes.indexOf(q);de.nodes.splice(ui,1);var _r=0,Fa=0;d.forEach(function(Er){var mr=Er.source,da=Er.target,lr=x[mr].node.clusterId,Xr=x[da].node.clusterId;(lr===Be.id&&Xr!==Be.id||Xr===Be.id&&lr!==Be.id)&&(_r=_r+(Er[n]||1)),(lr===un&&Xr!==un||Xr===un&&lr!==un)&&(Fa=Fa+(Er[n]||1))}),Be.sumTot=_r,de.sumTot=Fa}})}var ae={},ve=0;Object.keys(te).forEach(function(q){var oe=te[q];if(!oe.nodes||!oe.nodes.length){delete te[q];return}var de=String(ve+1);de!==q&&(oe.id=de,oe.nodes=oe.nodes.map(function(Oe){return{id:Oe.id,clusterId:de}}),te[de]=oe,ae[q]=de,delete te[q],ve++)}),J.forEach(function(q){var oe=q.node,de=q.clusterId;oe&&(oe.clusterId=de,oe.clusterId&&ae[oe.clusterId]&&(oe.clusterId=ae[oe.clusterId]))});var Z=[],H={};d.forEach(function(q){var oe=q.source,de=q.target,Oe=q[n]||1,Be=x[oe].node.clusterId,Ge=x[de].node.clusterId;if(!(!Be||!Ge)){var Ve="".concat(Be,"---").concat(Ge);if(H[Ve])H[Ve].weight+=Oe,H[Ve].count++;else{var qe={source:Be,target:Ge,weight:Oe,count:1};H[Ve]=qe,Z.push(qe)}}});var X=[];return Object.keys(te).forEach(function(q){X.push(te[q])}),{clusters:X,clusterEdges:Z}},qx=AR,OR=function(e,t,n,i,a,s,o,l){return t===void 0&&(t=!1),n===void 0&&(n="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),qx(e,t,n,i,!0,a,s,o,l)},kR=OR,CR=function(e,t){var n;t===void 0&&(t=1);for(var i=ec(e),a=i.nodes,s=a===void 0?[]:a,o=i.edges,l=o===void 0?[]:o,u=function(){var f=Lp({nodes:s,edges:l}),d=Object.keys(f);d.sort(function(p,m){var b,x;return((b=f[p])===null||b===void 0?void 0:b.degree)-((x=f[m])===null||x===void 0?void 0:x.degree)});var v=d[0];if(!s.length||((n=f[v])===null||n===void 0?void 0:n.degree)>=t)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 c=u();if(c==="break")break}return{nodes:s,edges:l}},NR=CR,$x=function(e,t,n){var i=[];switch(e){case Ma.EuclideanDistance:i=t[n];break;default:i=[];break}return i},_R=function(e,t,n,i,a,s){t===void 0&&(t=3),n===void 0&&(n=void 0),i===void 0&&(i=[]),a===void 0&&(a=["id"]),s===void 0&&(s=Ma.EuclideanDistance);var o=e.nodes,l=o===void 0?[]:o,u=e.edges,c=u===void 0?[]:u,h={clusters:[{id:"0",nodes:l}],clusterEdges:[]};if(s===Ma.EuclideanDistance&&!l.every(function(de){return de.hasOwnProperty(n)}))return h;var f=[],d=[];if(s===Ma.EuclideanDistance&&(f=df(l,n),d=vf(f,i,a)),!d.length)return h;for(var v=Fp(d.map(function(de){return de.join("")})),g=Math.min(t,l.length,v.length),p=0;pT&&!m.find(function(Ct){return vR(Ct,$x(s,d,l[Be].originIndex))})&&(T=lt,S=Be)}},C=0;C=0;ae--)x[Number(l[p].clusterId)][ae].id===l[p].id&&x[Number(l[p].clusterId)].splice(ae,1);l[p].clusterId=String(U),x[U].push(l[p])}}for(var ve=!1,p=0;p=1e3)break}var q=[],oe={};return c.forEach(function(de){var Oe,Be,Ge=de.source,Ve=de.target,qe=(Oe=l.find(function(qt){return qt.id===Ge}))===null||Oe===void 0?void 0:Oe.clusterId,lt=(Be=l.find(function(qt){return qt.id===Ve}))===null||Be===void 0?void 0:Be.clusterId,Ct="".concat(qe,"---").concat(lt);if(oe[Ct])oe[Ct].count++;else{var Vt={source:qe,target:lt,count:1};oe[Ct]=Vt,q.push(Vt)}}),{clusters:x,clusterEdges:q}},RR=_R,LR=function(e,t){var n=new na(t),i=n.norm2(),a=new na(e),s=a.norm2(),o=n.dot(a),l=i*s,u=l?o/l:0;return u},eE=LR,DR=function(e,t,n,i,a){e===void 0&&(e=[]),n===void 0&&(n=void 0),i===void 0&&(i=[]),a===void 0&&(a=[]);var s=ec(e.filter(function(f){return f.id!==t.id})),o=e.findIndex(function(f){return f.id===t.id}),l=df(e,n),u=vf(l,i,a),c=u[o],h=[];return s.forEach(function(f,d){if(f.id!==t.id){var v=u[d],g=eE(v,c);h.push(g),f.cosineSimilarity=g}}),s.sort(function(f,d){return d.cosineSimilarity-f.cosineSimilarity}),{allCosineSimilarity:h,similarNodes:s}},IR=DR,BR=function(){function r(e){this.count=e.length,this.parent={};for(var t=0,n=e;t0&&(this.list[0]=t,this.moveDown(0)),e},r.prototype.insert=function(e){if(e!==null){this.list.push(e);var t=this.list.length-1;return this.moveUp(t),!0}return!1},r.prototype.moveUp=function(e){for(var t=this.getParent(e);e&&e>0&&this.compareFn(this.list[t],this.list[e])>0;){var n=this.list[t];this.list[t]=this.list[e],this.list[e]=n,e=t,t=this.getParent(e)}},r.prototype.moveDown=function(e){var t,n=e,i=this.getLeft(e),a=this.getRight(e),s=this.list.length;i!==null&&i0?n=i:a!==null&&a0&&(n=a),e!==n&&(t=[this.list[n],this.list[e]],this.list[e]=t[0],this.list[n]=t[1],this.moveDown(n))},r}(),GR=jR,HR=function(e,t){var n=[],i=e.nodes,a=i===void 0?[]:i,s=e.edges,o=s===void 0?[]:s;if(a.length===0)return n;var l=a[0],u=new Set;u.add(l);var c=function(p,m){return t?p.weight-m.weight:0},h=new GR(c);for(sf(l.id,o).forEach(function(g){h.insert(g)});!h.isEmpty();){var f=h.delMin(),d=f.source,v=f.target;u.has(d)&&u.has(v)||(n.push(f),u.has(d)||(u.add(d),sf(d,o).forEach(function(g){h.insert(g)})),u.has(v)||(u.add(v),sf(v,o).forEach(function(g){h.insert(g)})))}return n},tE=function(e,t){var n=[],i=e.nodes,a=i===void 0?[]:i,s=e.edges,o=s===void 0?[]:s;if(a.length===0)return n;var l=o.map(function(d){return d});t&&l.sort(function(d,v){return d.weight-v.weight});for(var u=new zR(a.map(function(d){return d.id}));l.length>0;){var c=l.shift(),h=c.source,f=c.target;u.connected(h,f)||(n.push(c),u.union(h,f))}return n},XR=function(e,t,n){var i={prim:HR,kruskal:tE};return n?i[n](e,t):tE(e,t)},WR=XR,VR=function(e,t,n){typeof t!="number"&&(t=1e-6),typeof n!="number"&&(n=.85);for(var i=1,a=0,s=1e3,o=e.nodes,l=o===void 0?[]:o,u=e.edges,c=u===void 0?[]:u,h=l.length,f,d={},v={},g=0;g0&&i>t;){a=0;for(var g=0;g0&&(f+=v[T]/S)}d[m]=n*f,a+=d[m]}}a=(1-a)/h,i=0;for(var g=0;g=0;n--){var i=this.dfsEdgeList[n],a=i.fromNode,s=i.toNode;ad||i.hasNode(s[f.to])||(t.labelx;T--){var S=O(T);if(S==="break")break}if(m){var k=e.findMinLabel(p);s.dfsEdgeList.push(new Ro(g,b,es,k.edgeLabel,es));var C=s.dfsEdgeList.length-1;return e.dfsCode.dfsEdgeList[C]!==s.dfsEdgeList[C]?!1:h(p[k.edgeLabel].projected)}var W={};m=!1;var U=0;f.forEach(function(Z){var H=new pf(Z),X=e.findForwardPureEdges(i,H.edges[d[0]],v,H);X.length>0&&(m=!0,U=g,X.forEach(function(q){var oe="".concat(q.label,"-").concat(a[q.to].label);W[oe]||(W[oe]={projected:[],edgeLabel:q.label,nodeLabel2:a[q.to].label}),W[oe].projected.push({graphId:i.id,edge:q,preNode:Z})}))});for(var J=d.length,te=function(H){if(m)return"break";var X=d[H];f.forEach(function(q){var oe=new pf(q),de=e.findForwardRmpathEdges(i,oe.edges[X],v,oe);de.length>0&&(m=!0,U=s.dfsEdgeList[X].fromNode,de.forEach(function(Oe){var Be="".concat(Oe.label,"-").concat(a[Oe.to].label);W[Be]||(W[Be]={projected:[],edgeLabel:Oe.label,nodeLabel2:a[Oe.to].label}),W[Be].projected.push({graphId:i.id,edge:Oe,preNode:q})}))})},T=0;T=0;v--){var g=t.findBackwardEdge(h,d.edges[a[v]],d.edges[a[0]],d);if(g){var p="".concat(t.dfsCode.dfsEdgeList[a[v]].fromNode,"-").concat(g.label);u[p]||(u[p]={projected:[],toNodeId:t.dfsCode.dfsEdgeList[a[v]].fromNode,edgeLabel:g.label}),u[p].projected.push({graphId:c.graphId,edge:g,preNode:c})}}if(!(i>=t.maxNodeNum)){var m=t.findForwardPureEdges(h,d.edges[a[0]],o,d);m.forEach(function(x){var O="".concat(s,"-").concat(x.label,"-").concat(f[x.to].label);l[O]||(l[O]={projected:[],fromNodeId:s,edgeLabel:x.label,nodeLabel2:f[x.to].label}),l[O].projected.push({graphId:c.graphId,edge:x,preNode:c})});for(var b=function(O){var T=t.findForwardRmpathEdges(h,d.edges[a[O]],o,d);T.forEach(function(S){var k="".concat(t.dfsCode.dfsEdgeList[a[O]].fromNode,"-").concat(S.label,"-").concat(f[S.to].label);l[k]||(l[k]={projected:[],fromNodeId:t.dfsCode.dfsEdgeList[a[O]].fromNode,edgeLabel:S.label,nodeLabel2:f[S.to].label}),l[k].projected.push({graphId:c.graphId,edge:S,preNode:c})})},v=0;vx){var O=x;x=b,b=O}var T=m.label,S="".concat(u,"-").concat(b,"-").concat(T,"-").concat(x),k="".concat(b,"-").concat(T,"-").concat(x);if(!s[k]){var C=s[k]||0;C++,s[k]=C}l[S]={graphId:u,nodeLabel1:b,edgeLabel:T,nodeLabel2:x}})})}),Object.keys(a).forEach(function(u){var c=a[u];if(!(c2*t)););if(p<2*t&&(o["".concat(c,"-").concat(g)]={start:c,end:g,distance:a[c][g]},h++,l++,l>=n))return o;if(f++,f>2*t)break}if(hf&&(l=f);var d=n[h.id].inDegree;u>d&&(u=d);var v=n[h.id].outDegree;c>v&&(c=v)}),e[t]={degree:l,inDegree:u,outDegree:c}),{minPatternNodeLabelDegree:l,minPatternNodeLabelInDegree:u,minPatternNodeLabelOutDegree:c}},nL=function(e,t,n,i,a,s,o){var l;if(n===void 0&&(n=!1),s===void 0&&(s="cluster"),o===void 0&&(o="cluster"),!(!e||!e.nodes)){var u=e.nodes.length;if(u){var c=Xp(e,n),h=Xp(t,n),f=dE(e.nodes,c,n),d=dE(t.nodes,h,n),v=hE(e.nodes,s),g=v.nodeMap,p=v.nodeLabelMap,m=hE(t.nodes,s),b=m.nodeMap,x=m.nodeLabelMap;fE(e.edges,o,g);var O=fE(t.edges,o,b).edgeLabelMap,T=[];h==null||h.forEach(function(Ht){T=T.concat(Ht)}),a||(a=Math.max.apply(Math,of(of([],T,!1),[2],!1))),i||(i=a);var S=uE(e,c,s,i),k=uE(t,h,s,i),C=Math.min(100,u*(u-1)/2),W=$R(i,u,C,S,c),U=mf(W,S,e),J=10,te=1,ie=1,ae=4,ve={graphs:U,nodeLabelProp:s,edgeLabelProp:o,minSupport:te,minNodeNum:ie,maxNodeNum:ae,directed:n},Z=qR(ve).slice(0,J),H=Z.length,X=[];Z.forEach(function(Ht,an){X[an]={},Object.keys(U).forEach(function(Gt){var tn=U[Gt],Kt=yf(tn,Ht,s,o);X[an][Gt]=Kt})});var q=eL(X,H,Z),oe=q.structure,de=q.structureCountMap,Oe=t.nodes[0],Be=[],Ge=(l=t.nodes[0])===null||l===void 0?void 0:l[s],Ve=-1/0;t.nodes.forEach(function(Ht){var an=Ht[s],Gt=p[an];(Gt==null?void 0:Gt.length)>Ve&&(Ve=Gt.length,Be=Gt,Ge=an,Oe=Ht)});var qe={},lt={},Ct={},Vt={},qt={},Nr={};Object.keys(x).forEach(function(Ht,an){qt[Ht]=[],n&&(Nr[Ht]=[]);var Gt=-1/0,tn=x[Ht],Kt={};tn.forEach(function(hn){var vn=d["".concat(Oe.id,"-").concat(hn.id)];if(vn&&qt[Ht].push(vn),Gtqt[Ht][ci]){pu=!0;break}if(pu)return Be.splice(vn,1),"continue";var va={};Wi.neighbors.forEach(function(hi){var ja=f["".concat(cr.id,"-").concat(hi.id)];va["".concat(cr.id,"-").concat(hi.id)]={start:g[cr.id].idx,end:g[hi.id].idx,distance:ja}}),U=mf(va,S,e,U);var ls=[];Object.keys(va).forEach(function(hi){if(de[hi]){ls.push(de[hi]);return}var ja=U[hi];de[hi]=yf(ja,oe,s,o),ls.push(de[hi])}),ls=ls.sort(function(hi,ja){return ja-hi});for(var go=!1,ci=0;ci=0;ur--)cn(ur)});var un=[];Be==null||Be.forEach(function(Ht){for(var an=g[Ht.id].idx,Gt=cE(e.nodes,c[an],an,s,a),tn=Gt.neighbors,Kt=tn.length,yt=!1,sn=Kt-1;sn>=0;sn--){if(tn.length+1Wi){tn.splice(sn,1);continue}if(n){var yr="".concat(cn.id,"-").concat(Ht.id),sl=f[yr];cr=Nr[ur].length-1;var pu=Nr[ur][cr];if(sl>pu){tn.splice(sn,1);continue}}var ci=de[hn]?de[hn]:tL(e,Ht,cn,g,vn,S,oe,s,o,de,U),va="".concat(Oe.id,"-").concat(ur),ls=Vt[va][Vt[va].length-1];if(ci=0;vn--){var pu=sl(vn);if(pu==="break")break}if(yr)return un.splice(an,1),"continue";Gt.edges=sn;var ci=ff(Gt,Gt.nodes[0].id,!1).length;if(Object.keys(ci).reverse().forEach(function(Fn){if(!(Fn===Gt.nodes[0].id||yr)){if(ci[Fn]===1/0){var Vi=yt[Fn].node[s];if(Kt[Vi]--,Kt[Vi]_r[us][_r[us].length-1]){var Vi=yt[Fn].node[s];if(Kt[Vi]--,Kt[Vi]=0;ja--){var Ns=Gt.nodes[ja],eA=yt[Ns.id].degree,iV=yt[Ns.id].inDegree,aV=yt[Ns.id].outDegree,sV=Ns[s],By=vE(qe,sV,b,x),tA=By.minPatternNodeLabelDegree,oV=By.minPatternNodeLabelInDegree,lV=By.minPatternNodeLabelOutDegree,uV=n?eA=0;lg--){var _s=sn[lg];if(!yt[_s.source]||!yt[_s.target]){sn.splice(lg,1);var ug=_s[o];if(cn[ug]--,yt[_s.source]&&(yt[_s.source].degree--,yt[_s.source].outDegree--),yt[_s.target]&&(yt[_s.target].degree--,yt[_s.target].inDegree--),O[ug]&&cn[ug]=0;mr--){var da=Er(mr);if(da==="break")break}for(var lr=un.length,Xr=function(an){var Gt=un[an],tn={};Gt.edges.forEach(function(sn){var cn="".concat(sn.source,"-").concat(sn.target,"-").concat(sn.label);tn[cn]?tn[cn]++:tn[cn]=1});for(var Kt=function(cn){var ur=un[cn],hn={};ur.edges.forEach(function(cr){var Wi="".concat(cr.source,"-").concat(cr.target,"-").concat(cr.label);hn[Wi]?hn[Wi]++:hn[Wi]=1});var vn=!0;Object.keys(hn).length!==Object.keys(tn).length?vn=!1:Object.keys(tn).forEach(function(cr){hn[cr]!==tn[cr]&&(vn=!1)}),vn&&un.splice(cn,1)},yt=lr-1;yt>an;yt--)Kt(yt);lr=un.length},mr=0;mr<=lr-1;mr++)Xr(mr);return un}}},rL=nL,iL=function(){function r(e){e===void 0&&(e=10),this.linkedList=new Cx,this.maxStep=e}return Object.defineProperty(r.prototype,"length",{get:function(){return this.linkedList.toArray().length},enumerable:!1,configurable:!0}),r.prototype.isEmpty=function(){return!this.linkedList.head},r.prototype.isMaxStack=function(){return this.toArray().length>=this.maxStep},r.prototype.peek=function(){return this.isEmpty()?null:this.linkedList.head.value},r.prototype.push=function(e){this.linkedList.prepend(e),this.length>this.maxStep&&this.linkedList.deleteTail()},r.prototype.pop=function(){var e=this.linkedList.deleteHead();return e?e.value:null},r.prototype.toArray=function(){return this.linkedList.toArray().map(function(e){return e.value})},r.prototype.clear=function(){for(;!this.isEmpty();)this.pop()},r}(),aL=iL,sL=zx,KK={getAdjMatrix:af,breadthFirstSearch:I_,connectedComponent:Rx,getDegree:Lp,getInDegree:z_,getOutDegree:F_,detectCycle:zx,detectDirectedCycle:sL,detectAllCycles:H_,detectAllDirectedCycle:Bx,detectAllUndirectedCycle:Ix,depthFirstSearch:Dx,dijkstra:ff,findAllPath:yR,findShortestPath:Hp,floydWarshall:Xp,labelPropagation:ER,louvain:qx,iLouvain:kR,kCore:NR,kMeans:RR,cosineSimilarity:eE,nodesCosineSimilarity:IR,minimumSpanningTree:WR,pageRank:nE,getNeighbors:ta,Stack:aL,GADDI:rL};function Re(r){if(r.id!==void 0)return r.id;if(r.source!==void 0&&r.target!==void 0)return`${r.source}-${r.target}`;throw new Error(bs("The datum does not have available id."))}function bf(r){return r.combo}function gE(r,e){const t={nodes:(r.nodes||[]).map(Re),edges:(r.edges||[]).map(Re),combos:(r.combos||[]).map(Re)};return e?Object.values(t).flat():t}const pE=(r,e,t)=>{var n;switch(t.type){case"degree":{const i=new Map;return(n=r.nodes)===null||n===void 0||n.forEach(a=>{const s=e(Re(a),t.direction).length;i.set(Re(a),s)}),i}case"betweenness":return oL(r,t.directed,t.weightPropertyName);case"closeness":return lL(r,t.directed,t.weightPropertyName);case"eigenvector":return cL(r,t.directed);case"pagerank":return uL(r,t.epsilon,t.linkProb);default:return mE(r)}},mE=r=>{var e;const t=new Map;return(e=r.nodes)===null||e===void 0||e.forEach(n=>{t.set(Re(n),0)}),t},oL=(r,e,t)=>{const n=mE(r),{nodes:i=[]}=r;return i.forEach(a=>{i.forEach(s=>{if(a!==s){const{allPath:o}=Hp(r,Re(a),Re(s),e,t),l=o.length;o.flat().forEach(u=>{u!==Re(a)&&u!==Re(s)&&n.set(u,n.get(u)+1/l)})}})}),n},lL=(r,e,t)=>{const n=new Map,{nodes:i=[]}=r;return i.forEach(a=>{const s=i.reduce((o,l)=>{if(a!==l){const{length:u}=Hp(r,Re(a),Re(l),e,t);o+=u}return o},0);n.set(Re(a),1/s)}),n},uL=(r,e,t)=>{var n;const i=new Map,a=nE(r,e,t);return(n=r.nodes)===null||n===void 0||n.forEach(s=>{i.set(Re(s),a[Re(s)])}),i},cL=(r,e)=>{const{nodes:t=[]}=r,n=hL(r,e),i=fL(n,t.length),a=new Map;return t.forEach((s,o)=>{a.set(Re(s),i[o])}),a},hL=(r,e)=>{const{nodes:t=[],edges:n=[]}=r,i=Array(t.length).fill(null).map(()=>Array(t.length).fill(0));return n.forEach(({source:a,target:s})=>{const o=t.findIndex(u=>Re(u)===a),l=t.findIndex(u=>Re(u)===s);e?i[o][l]=1:(i[o][l]=1,i[l][o]=1)}),i},fL=(r,e,t=100,n=1e-6)=>{let i=Array(e).fill(1),a=1/0;for(let s=0;sn;s++){const o=Array(e).fill(0);for(let u=0;uu+c*c,0));for(let u=0;uu+(c-i[h])*c,0)),i=o}return i};function Vs(r,e,t,n=dr){const i=new Map(r.map(f=>[t(f),f])),a=new Map(e.map(f=>[t(f),f])),s=new Set(i.keys()),o=new Set(a.keys()),l=[],u=[],c=[],h=[];return o.forEach(f=>{s.has(f)?n(i.get(f),a.get(f))?h.push(a.get(f)):u.push(a.get(f)):l.push(a.get(f))}),s.forEach(f=>{o.has(f)||c.push(i.get(f))}),{enter:l,exit:c,keep:h,update:u}}const tc=new WeakMap;function Lo(r,e,t=!1,n){if(e===void 0)return;const i=(a,s=e)=>{const o=(l=s)=>a.childNodes.forEach(u=>i(u,l));if(n&&!n(a))return o();if(!t&&a===r)r.style.visibility=e,tc.delete(r),o(e);else{tc.has(a)||tc.set(a,a.style.visibility);const l=s==="hidden"||dL(a)==="hidden"?"hidden":"visible";a.style.visibility=l,o(l)}};i(r)}function dL(r){return tc.has(r)?tc.get(r):r.style.visibility}function vL(r,e,t){const n={},i=a=>(a in n||(n[a]=0),`${e}-${a}-${n[a]++}`);return t.map(a=>typeof a=="string"?{type:a,key:i(a)}:typeof a=="function"?a.call(r):a.key?a:Object.assign(Object.assign({},a),{key:i(a.type)}))}class Yp{constructor(e){this.extensions=[],this.extensionMap={},this.context=e}setExtensions(e){const t=vL(this.context.graph,this.category,e),{enter:n,update:i,exit:a,keep:s}=Vs(this.extensions,t,o=>o.key);this.createExtensions(n),this.updateExtensions([...i,...s]),this.destroyExtensions(a),this.extensions=t}createExtension(e){const{category:t}=this,{key:n,type:i}=e,a=ys(t,i);if(!a)return wi.warn(`The extension ${i} of ${t} is not registered.`);const s=new a(this.context,e);this.extensionMap[n]=s}createExtensions(e){e.forEach(t=>this.createExtension(t))}updateExtension(e){const{key:t}=e,n=this.extensionMap[t];n&&n.update(e)}updateExtensions(e){e.forEach(t=>this.updateExtension(t))}destroyExtension(e){const t=this.extensionMap[e];t&&(t.destroy(),delete this.extensionMap[e])}destroyExtensions(e){e.forEach(({key:t})=>this.destroyExtension(t))}destroy(){Object.values(this.extensionMap).forEach(e=>e.destroy()),this.context={},this.extensions=[],this.extensionMap={}}}class Up{constructor(e,t){this.events=[],this.destroyed=!1,this.context=e,this.options=t}update(e){this.options=Object.assign(this.options,e)}destroy(){this.context={},this.options={},this.destroyed=!0}}class Ni extends Up{}class xf extends Ni{constructor(e,t){super(e,Object.assign({},xf.defaultOptions,t)),this.isOverlapping=(n,i)=>i.some(a=>n.intersects(a)),this.occupiedBounds=[],this.detectLabelCollision=n=>{const i=this.context.viewport,a={show:[],hide:[]};return this.occupiedBounds=[],n.forEach(s=>{const o=s.getShape("label").getRenderBounds();i.isInViewport(o,!0)&&!this.isOverlapping(o,this.occupiedBounds)?(a.show.push(s),this.occupiedBounds.push(Ws(o,this.options.padding))):a.hide.push(s)}),a},this.hideLabelIfExceedViewport=(n,i)=>{const{exit:a}=Vs(n,i,s=>s.id);a==null||a.forEach(this.hideLabel)},this.nodeCentralities=new Map,this.sortNodesByCentrality=(n,i)=>{const{model:a}=this.context,s=a.getData(),o=a.getRelatedEdgesData.bind(a);return n.map(u=>(this.nodeCentralities.has(u.id)||(this.nodeCentralities=pE(s,o,i)),{node:u,centrality:this.nodeCentralities.get(u.id)})).sort((u,c)=>c.centrality-u.centrality).map(u=>u.node)},this.sortLabelElementsInView=n=>{const{sort:i,sortNode:a,sortCombo:s,sortEdge:o}=this.options,{model:l}=this.context;if(pt(i))return n.sort((g,p)=>i(l.getElementDataById(g.id),l.getElementDataById(p.id)));const{node:u=[],edge:c=[],combo:h=[]}=nf(n,g=>g.type),f=pt(s)?h.sort((g,p)=>s(...l.getComboData([g.id,p.id]))):h,d=pt(a)?u.sort((g,p)=>a(...l.getNodeData([g.id,p.id]))):this.sortNodesByCentrality(u,a),v=pt(o)?c.sort((g,p)=>o(...l.getEdgeData([g.id,p.id]))):c;return[...f,...d,...v]},this.labelElementsInView=[],this.isFirstRender=!0,this.onToggleVisibility=n=>{var i;if(((i=n.data)===null||i===void 0?void 0:i.stage)==="zIndex")return;if(!this.validate(n)){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 u=o.length-1;u>=0;u--)this.showLabel(o[u]);l.forEach(this.hideLabel)},this.hiddenElements=new Map,this.hideLabel=n=>{const i=n.getShape("label");i&&Lo(i,"hidden"),this.hiddenElements.set(n.id,n)},this.showLabel=n=>{const i=n.getShape("label");i&&Lo(i,"visible"),n.toFront(),this.hiddenElements.delete(n.id)},this.onTransform=Ax(this.onToggleVisibility,this.options.throttle,{leading:!0}),this.enableToggle=!0,this.toggle=n=>{this.enableToggle&&this.onToggleVisibility(n)},this.onBeforeRender=()=>{this.enableToggle=!1},this.onAfterRender=n=>{this.onToggleVisibility(n),this.enableToggle=!0},this.bindEvents()}update(e){this.unbindEvents(),super.update(e),this.bindEvents(),this.onToggleVisibility({})}getLabelElements(){const{elementMap:e}=this.context.element,t=[];for(const n in e){const i=e[n];i.isVisible()&&i.getShape("label")&&t.push(i)}return t}getLabelElementsInView(){const e=this.context.viewport;return this.getLabelElements().filter(t=>e.isInViewport(t.getShape("key").getRenderBounds()))}bindEvents(){const{graph:e}=this.context;e.on(rt.BEFORE_RENDER,this.onBeforeRender),e.on(rt.AFTER_RENDER,this.onAfterRender),e.on(rt.AFTER_DRAW,this.toggle),e.on(rt.AFTER_LAYOUT,this.toggle),e.on(rt.AFTER_TRANSFORM,this.onTransform)}unbindEvents(){const{graph:e}=this.context;e.off(rt.BEFORE_RENDER,this.onBeforeRender),e.off(rt.AFTER_RENDER,this.onAfterRender),e.off(rt.AFTER_DRAW,this.toggle),e.off(rt.AFTER_LAYOUT,this.toggle),e.off(rt.AFTER_TRANSFORM,this.onTransform)}validate(e){if(this.destroyed)return!1;const{enable:t}=this.options;return pt(t)?t(e):!!t}destroy(){this.unbindEvents(),super.destroy()}}xf.defaultOptions={enable:!0,throttle:100,padding:0,sortNode:{type:"degree"}};var gL=function(r){if(!Ap(r)||!p1(r,"Object"))return!1;if(Object.getPrototypeOf(r)===null)return!0;for(var e=r;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(r)===e},Il=gL,pL=5;function mL(r,e){if(Object.hasOwn)return Object.hasOwn(r,e);if(r==null)throw new TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(r),e)}function yE(r,e,t,n){t=t||0,n=n||pL;for(var i in e)if(mL(e,i)){var a=e[i];a!==null&&Il(a)?(Il(r[i])||(r[i]={}),tt+e[n])}function On(r,e){return r.map((t,n)=>t-e[n])}function xs(r,e){return typeof e=="number"?r.map(t=>t*e):r.map((t,n)=>t*e[n])}function Sa(r,e){return typeof e=="number"?r.map(t=>t/e):r.map((t,n)=>t/e[n])}function bL(r,e){return r.reduce((t,n,i)=>t+n*e[i],0)}function xL(r,e){const t=nc(r),n=nc(e);return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function Ys(r,e){return r.map(t=>t*e)}function Bn(r,e){return Math.sqrt(r.reduce((t,n,i)=>t+Math.pow(n-e[i]||0,2),0))}function Ef(r,e){return r.reduce((t,n,i)=>t+Math.abs(n-e[i]),0)}function Es(r){const e=r.reduce((t,n)=>t+Math.pow(n,2),0);return r.map(t=>t/Math.sqrt(e))}function Zp(r,e,t=!1){const n=r[0]*e[1]-r[1]*e[0];let i=Math.acos(xs(r,e).reduce((a,s)=>a+s,0)/(Bn(r,bE)*Bn(e,bE)));return t&&n<0&&(i=2*Math.PI-i),i}function QK(r,e){return r.every((t,n)=>t===e[n])}function wf(r,e=!0){return e?[-r[1],r[0]]:[r[1],-r[0]]}function EL(r,e){return r.map(t=>t%e)}function Do(r){return[r[0],r[1]]}function nc(r){return E_(r)?[r[0],r[1],0]:r}function xE(r){const[e,t]=r;return!e&&!t?0:Math.atan2(t,e)}function EE(r,e){const[t,n]=r,[i,a]=e,s=On(t,n),o=On(i,a);return xL(s,o).every(l=>l===0)}function Kp(r,e,t=!1){if(EE(r,e))return;const[n,i]=r,[a,s]=e,o=((n[0]-a[0])*(a[1]-s[1])-(n[1]-a[1])*(a[0]-s[0]))/((n[0]-i[0])*(a[1]-s[1])-(n[1]-i[1])*(a[0]-s[0])),l=s[0]-a[0]?(n[0]-a[0]+o*(i[0]-n[0]))/(s[0]-a[0]):(n[1]-a[1]+o*(i[1]-n[1]))/(s[1]-a[1]);if(!(!t&&(!Qa(o,0,1)||!Qa(l,0,1))))return[n[0]+o*(i[0]-n[0]),n[1]+o*(i[1]-n[1])]}function wE(r){if(Array.isArray(r))return Qa(r[0],0,1)&&Qa(r[1],0,1)?r:[.5,.5];const e=r.split("-"),t=e.includes("left")?0:e.includes("right")?1:.5,n=e.includes("top")?0:e.includes("bottom")?1:.5;return[t,n]}function Br(r){const{x:e=0,y:t=0,z:n=0}=r.style||{};return[+e,+t,+n]}function wL(r){const{x:e,y:t,z:n}=r.style||{};return e!==void 0||t!==void 0||n!==void 0}function PE(r,e){const[t,n]=e,{min:i,max:a}=r;return[i[0]+t*(a[0]-i[0]),i[1]+n*(a[1]-i[1])]}function ws(r,e="center"){const t=wE(e);return PE(r,t)}function JK(r,e){const t=parseAnchor(e);return PE(r,t)}const qK=r=>{const[e,t]=r;return{left:Math.min(e[0],t[0]),right:Math.max(e[0],t[0]),top:Math.min(e[1],t[1]),bottom:Math.max(e[1],t[1])}};function zr(r){var e;return[r.x,r.y,(e=r.z)!==null&&e!==void 0?e:0]}function Ta(r){var e;return{x:r[0],y:r[1],z:(e=r[2])!==null&&e!==void 0?e:0}}function $K(r){return r.sort((e,t)=>e[0]-t[0]||e[1]-t[1])}function eQ(r){const e=new Set;return r.filter(t=>{const n=t.join(",");return e.has(n)?!1:(e.add(n),!0)})}function rc(r,e=0){return r.map(t=>parseFloat(t.toFixed(e)))}function Us(r,e,t,n=!1){if(dr(r,e))return r;const i=n?On(r,e):On(e,r),a=Es(i),s=[a[0]*t,a[1]*t];return jt(Do(r),s)}function ME(r,e){return r[1]===e[1]}function PL(r,e){return r[0]===e[0]}function ML(r,e){return ME(r,e)||PL(r,e)}function SL(r,e,t){return EE([r,e],[e,t])}function SE(r,e){return[2*e[0]-r[0],2*e[1]-r[1]]}function TE(r,e,t,n=!0,i=!1){for(let a=0;aa!=d>a&&i<(f-c)*(a-h)/(d-h)+c&&(s=!s)}return s}function AL(r,e,t=!1){const n=ws(e,"center"),i=[ws(e,"left-top"),ws(e,"right-top"),ws(e,"right-bottom"),ws(e,"left-bottom")];return TE(r,n,i,!1,t).point}function Pf(r,e,t=!1){const n=e.center,i=t?SE(r,n):r,a=On(i,e.center),s=Math.atan2(a[1],a[0]);if(isNaN(s))return n;const o=qa(e)/2,l=$a(e)/2,u=n[0]+o*Math.cos(s),c=n[1]+l*Math.sin(s);return[u,c]}function OL(r,e){let t=1/0,n=[r[0],e[0]];return r.forEach(i=>{e.forEach(a=>{const s=Bn(i,a);s{const a=CL(r,i);a1?c=1:c<0&&(c=0);const h=t+c*l,f=n+c*u;return[h,f]}function NL(r){const e=r.reduce((t,n)=>jt(t,n),[0,0]);return Sa(e,r.length)}function OE(r,e=!0){const t=NL(r);return r.sort(([n,i],[a,s])=>{const o=Math.atan2(i-t[1],n-t[0]),l=Math.atan2(s-t[1],a-t[0]);return e?l-o:o-l})}function kE(r,e){return[r,[r[0],e[1]],e,[e[0],r[1]]]}const CE=r=>r.map(e=>Xt(e)?e.toLocaleLowerCase():e);class Bl{constructor(e){this.map=new Map,this.recordKey=new Set,this.onKeyDown=t=>{t!=null&&t.key&&(this.recordKey.add(t.key),this.trigger(t))},this.onKeyUp=t=>{t!=null&&t.key&&this.recordKey.delete(t.key)},this.onWheel=t=>{this.triggerExtendKey(We.WHEEL,t)},this.onDrag=t=>{this.triggerExtendKey(We.DRAG,t)},this.onFocus=()=>{this.recordKey.clear()},this.emitter=e,this.bindEvents()}bind(e,t){e.length!==0&&this.map.set(e,t)}unbind(e,t){this.map.forEach((n,i)=>{dr(i,e)&&(!t||t===n)&&this.map.delete(i)})}unbindAll(){this.map.clear()}match(e){const t=CE(Array.from(this.recordKey)).sort(),n=CE(e).sort();return dr(t,n)}bindEvents(){var e;const{emitter:t}=this;t.on(We.KEY_DOWN,this.onKeyDown),t.on(We.KEY_UP,this.onKeyUp),t.on(We.WHEEL,this.onWheel),t.on(We.DRAG,this.onDrag),(e=globalThis.addEventListener)===null||e===void 0||e.call(globalThis,"focus",this.onFocus)}trigger(e){this.map.forEach((t,n)=>{this.match(n)&&t(e)})}triggerExtendKey(e,t){this.map.forEach((n,i)=>{i.includes(e)&&dr(Array.from(this.recordKey),i.filter(a=>a!==e))&&n(t)})}destroy(){var e;this.unbindAll(),this.emitter.off(We.KEY_DOWN,this.onKeyDown),this.emitter.off(We.KEY_UP,this.onKeyUp),this.emitter.off(We.WHEEL,this.onWheel),this.emitter.off(We.DRAG,this.onDrag),(e=globalThis.removeEventListener)===null||e===void 0||e.call(globalThis,"blur",this.onFocus)}}class ic extends Ni{constructor(e,t){super(e,ri({},ic.defaultOptions,t)),this.shortcut=new Bl(e.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(e){if(!this.validate(e)||!this.isKeydown()||this.startPoint)return;const{canvas:t,graph:n}=this.context,i=Object.assign({},this.options.style);this.options.style.lineWidth&&(i.lineWidth=+this.options.style.lineWidth/n.getZoom()),this.rectShape=new wa({id:"g6-brush-select",style:i}),t.appendChild(this.rectShape),this.startPoint=[e.canvas.x,e.canvas.y]}onPointerMove(e){var t;if(!this.startPoint)return;const{immediately:n,mode:i}=this.options;this.endPoint=Mf(e),(t=this.rectShape)===null||t===void 0||t.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])}),n&&i==="default"&&this.updateElementsStates(kE(this.startPoint,this.endPoint))}onPointerUp(e){if(this.startPoint){if(!this.endPoint){this.clearBrush();return}this.endPoint=Mf(e),this.updateElementsStates(kE(this.startPoint,this.endPoint)),this.clearBrush()}}clearStates(){this.endPoint||this.clearElementsStates()}clearElementsStates(){const{graph:e}=this.context,t=Object.values(e.getData()).reduce((n,i)=>Object.assign({},n,i.reduce((a,s)=>(a[Re(s)]=[],a),{})),{});e.setElementState(t,this.options.animation)}updateElementsStates(e){const{graph:t}=this.context,{enableElements:n,state:i,mode:a,onSelect:s}=this.options,o=this.selector(t,e,n);let l={};switch(a){case"union":o.forEach(u=>{l[u]=[...t.getElementState(u),i]});break;case"diff":o.forEach(u=>{const c=t.getElementState(u);l[u]=c.includes(i)?c.filter(h=>h!==i):[...c,i]});break;case"intersect":o.forEach(u=>{const c=t.getElementState(u);l[u]=c.includes(i)?[i]:[]});break;case"default":default:o.forEach(u=>{l[u]=[i]});break}pt(s)&&(l=s(l)),t.setElementState(l,this.options.animation)}selector(e,t,n){if(!n||n.length===0)return[];const i=[],a=e.getData();if(n.forEach(s=>{a[`${s}s`].forEach(o=>{const l=Re(o);e.getElementVisibility(l)!=="hidden"&&TL(e.getElementPosition(l),t)&&i.push(l)})}),n.includes("edge")){const s=a.edges;s==null||s.forEach(o=>{const{source:l,target:u}=o;i.includes(l)&&i.includes(u)&&i.push(Re(o))})}return i}clearBrush(){var e;(e=this.rectShape)===null||e===void 0||e.remove(),this.rectShape=void 0,this.startPoint=void 0,this.endPoint=void 0}isKeydown(){const{trigger:e}=this.options,t=Array.isArray(e)?e:[e];return this.shortcut.match(t.filter(n=>n!=="drag"))}validate(e){if(this.destroyed)return!1;const{enable:t}=this.options;return pt(t)?t(e):!!t}bindEvents(){const{graph:e}=this.context;e.on(We.POINTER_DOWN,this.onPointerDown),e.on(We.POINTER_MOVE,this.onPointerMove),e.on(We.POINTER_UP,this.onPointerUp),e.on(ms.CLICK,this.clearStates)}unbindEvents(){const{graph:e}=this.context;e.off(We.POINTER_DOWN,this.onPointerDown),e.off(We.POINTER_MOVE,this.onPointerMove),e.off(We.POINTER_UP,this.onPointerUp),e.off(ms.CLICK,this.clearStates)}update(e){this.unbindEvents(),this.options=ri(this.options,e),this.bindEvents()}destroy(){this.unbindEvents(),super.destroy()}}ic.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 Mf=r=>[r.canvas.x,r.canvas.y],Ps=.8,Io=["node","edge","combo"];function Bo(r,e,t,n,i=0){n==="TB"&&e(r,i);const a=t(r);if(a)for(const s of a)Bo(s,e,t,n,i+1);n==="BT"&&e(r,i)}function _L(r,e,t){const n=[[r,0]];for(;n.length;){const[i,a]=n.shift();e(i,a);const s=t(i);if(s)for(const o of s)n.push([o,a+1])}}function NE(r,e,t,n,i="both"){if(e==="combo"||e==="node")return Qp(r,t,n,i);const a=r.getEdgeData(t);if(!a)return[];const s=Qp(r,a.source,n-1,i),o=Qp(r,a.target,n-1,i);return Array.from(new Set([...s,...o,t]))}function Qp(r,e,t,n="both"){const i=new Set,a=new Set,s=new Set;return _L(e,(o,l)=>{l>t||(s.add(o),r.getRelatedEdgesData(o,n).forEach(u=>{const c=Re(u);!a.has(c)&&lr.getRelatedEdgesData(o,n).map(l=>l.source===o?l.target:l.source).filter(l=>i.has(l)?!1:(i.add(l),!0))),Array.from(s)}function Jp(r){return r.states||[]}var Sf=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})};class Tf extends Ni{constructor(e,t){super(e,Object.assign({},Tf.defaultOptions,t)),this.onClickSelect=n=>Sf(this,void 0,void 0,function*(){var i,a;this.validate(n)&&(yield this.updateState(n),(a=(i=this.options).onClick)===null||a===void 0||a.call(i,n))}),this.onClickCanvas=n=>Sf(this,void 0,void 0,function*(){var i,a;this.validate(n)&&(yield this.clearState(),(a=(i=this.options).onClick)===null||a===void 0||a.call(i,n))}),this.shortcut=new Bl(e.graph),this.bindEvents()}bindEvents(){const{graph:e}=this.context;this.unbindEvents(),Io.forEach(t=>{e.on(`${t}:${We.CLICK}`,this.onClickSelect)}),e.on(ms.CLICK,this.onClickCanvas)}get isMultipleSelect(){const{multiple:e,trigger:t}=this.options;return e&&this.shortcut.match(t)}getNeighborIds(e){const{target:t,targetType:n}=e,{graph:i}=this.context,{degree:a}=this.options;return NE(i,n,t.id,typeof a=="function"?a(e):a).filter(s=>s!==t.id)}updateState(e){return Sf(this,void 0,void 0,function*(){const{state:t,unselectedState:n,neighborState:i,animation:a}=this.options;if(!t&&!i&&!n)return;const{target:s}=e,{graph:o}=this.context,l=o.getElementData(s.id),u=Jp(l).includes(t)?"unselect":"select",c={},h=this.isMultipleSelect,f=[s.id],d=this.getNeighborIds(e);if(h)if(Object.assign(c,this.getDataStates()),u==="select"){const v=(g,p)=>{g.forEach(m=>{const b=new Set(o.getElementState(m));b.add(p),b.delete(n),c[m]=Array.from(b)})};v(f,t),v(d,i),n&&Object.keys(c).forEach(g=>{const p=c[g];!p.includes(t)&&!p.includes(i)&&!p.includes(n)&&c[g].push(n)})}else{const v=c[s.id];c[s.id]=v.filter(g=>g!==t&&g!==i),v.includes(n)||c[s.id].push(n),d.forEach(g=>{c[g]=c[g].filter(p=>p!==i),c[g].includes(t)||c[g].push(n)})}else if(u==="select"){Object.assign(c,this.getClearStates(!!n));const v=(g,p)=>{g.forEach(m=>{c[m]||(c[m]=o.getElementState(m)),c[m].push(p)})};v(f,t),v(d,i),n&&Object.keys(c).forEach(g=>{!f.includes(g)&&!d.includes(g)&&c[g].push(n)})}else Object.assign(c,this.getClearStates());yield o.setElementState(c,a)})}getDataStates(){const{graph:e}=this.context,{nodes:t,edges:n,combos:i}=e.getData(),a={};return[...t,...n,...i].forEach(s=>{a[Re(s)]=Jp(s)}),a}getClearStates(e=!1){const{graph:t}=this.context,{state:n,unselectedState:i,neighborState:a}=this.options,s=new Set([n,i,a]),{nodes:o,edges:l,combos:u}=t.getData(),c={};return[...o,...l,...u].forEach(h=>{const f=Jp(h),d=f.filter(v=>!s.has(v));(e||d.length!==f.length)&&(c[Re(h)]=d)}),c}clearState(){return Sf(this,void 0,void 0,function*(){const{graph:e}=this.context;yield e.setElementState(this.getClearStates(),this.options.animation)})}validate(e){if(this.destroyed)return!1;const{enable:t}=this.options;return pt(t)?t(e):!!t}unbindEvents(){const{graph:e}=this.context;Io.forEach(t=>{e.off(`${t}:${We.CLICK}`,this.onClickSelect)}),e.off(ms.CLICK,this.onClickCanvas)}destroy(){this.unbindEvents(),super.destroy()}}Tf.defaultOptions={animation:!0,enable:!0,multiple:!1,trigger:["shift"],state:"selected",neighborState:"selected",unselectedState:void 0,degree:0};function _i(r){var e;return!!(!((e=r.style)===null||e===void 0)&&e.collapsed)}var ii=function(r,e,t){for(var n=0,i=Xt(e)?e.split("."):e;r&&n="A"&&t<="Z"}function _E(r,e){return`${e}${ef(r)}`}function RE(r,e,t=!0){if(!e||!sc(r,e))return r;const n=r.slice(e.length);return t?LL(n):n}function br(r,e){const t=Object.entries(r).reduce((n,[i,a])=>(i==="className"||i==="class"||sc(i,e)&&Object.assign(n,{[RE(i,e)]:a}),n),{});if("opacity"in r){const n=_E("opacity",e),i=r.opacity;if(n in r){const a=r[n];Object.assign(t,{opacity:i*a})}else Object.assign(t,{opacity:i})}return t}function qp(r,e){const t=e.length;return Object.keys(r).reduce((n,i)=>{if(i.startsWith(e)){const a=i.slice(t);n[a]=r[i]}return n},{})}function $p(r,e){const t=typeof e=="string"?[e]:e,n={};return Object.keys(r).forEach(i=>{t.find(a=>i.startsWith(a))||(n[i]=r[i])}),n}function tQ(r,e,t){return Object.entries(r).reduce((n,[i,a])=>(sc(i,e)?n[_E(RE(i,e,!1),t)]=a:n[i]=a,n),{})}function ra(r=0){if(typeof r=="number")return[r,r,r];const[e,t=e,n=e]=r;return[e,t,n]}var DL=function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);itypeof a=="function"?[i,a.call(n,t)]:[i,a]))}function Tr(r,e){const t=(r==null?void 0:r.style)||{},n=(e==null?void 0:e.style)||{};return Object.assign({},r,e,{style:r!=null&&r.style?Object.assign({},t,n):n})}function IL(r){const{x:e,y:t,z:n,class:i,className:a,transform:s,transformOrigin:o,zIndex:l,visibility:u}=r;return DL(r,["x","y","z","class","className","transform","transformOrigin","zIndex","visibility"])}const e0=new WeakMap;function Aa(r,e,t){e0.has(r)||e0.set(r,{});const n=e0.get(r);if(!n[e])return n[e]=t,!0;const i=n[e];return DE(i,t)?!1:(n[e]=t,!0)}const DE=(r,e,t=2)=>{if(typeof r!="object"||typeof e!="object")return r===e;const n=Object.keys(r),i=Object.keys(e);if(n.length!==i.length)return!1;for(const a of n){const s=r[a],o=e[a];if(t>1&&typeof s=="object"&&typeof o=="object"){if(!DE(s,o,t-1))return!1}else if(s!==o)return!1}return!0};function BL(r,e){const t=ra(r);let n={};return e.text&&!e.fontSize&&(n={fontSize:Math.min(...t)*.5}),e.src&&(!e.width||!e.height)&&(n={width:t[0]*.5,height:t[1]*.5}),n}function IE(r){if(r)return typeof r=="string"||typeof r=="function"||Array.isArray(r)?{type:"group",field:e=>e.id,color:r,invert:!1}:r}function zL(r,e){if(!e)return{};const{type:t,color:n,field:i,invert:a}=e,s=l=>{const u=typeof n=="string"?ys("palette",n):n;if(typeof u=="function"){const c={};return l.forEach(([h,f])=>{c[h]=u(a?1-f:f)}),c}else if(Array.isArray(u)){const c=a?[...u].reverse():u,h={};return l.forEach(([f,d])=>{h[f]=c[d%u.length]}),h}return{}},o=(l,u)=>{var c;return typeof l=="string"?(c=u.data)===null||c===void 0?void 0:c[l]:l==null?void 0:l(u)};if(t==="group"){const l=nf(r,f=>{if(!i)return"default";const d=o(i,f);return d?String(d):"default"}),u=Object.keys(l),c=s(u.map((f,d)=>[f,d])),h={};return Object.entries(l).forEach(([f,d])=>{d.forEach(v=>{h[Re(v)]=c[f]})}),h}else if(t==="value"){const[l,u]=r.reduce(([h,f],d)=>{const v=o(i,d);if(typeof v!="number")throw new Error(bs(`Palette field ${i} is not a number`));return[Math.min(h,v),Math.max(f,v)]},[1/0,-1/0]),c=u-l;return s(r.map(h=>[h.id,(o(i,h)-l)/c]))}}function BE(r){const e=typeof r=="string"?ys("palette",r):r;if(typeof e!="function")return e}function zE(r,e){let t=2*r;return typeof e=="string"?t=r*Number(e.replace("%",""))/100:typeof e=="number"&&(t=e),isNaN(t)&&(t=2*r),t}function FE(r,e,t=1,n=!1){const i=n?t:1,a=(r.max[0]-r.min[0])*i;return zE(a,e)}function FL(r,e,t=1){const n=Bn(r[0],r[1])*t;return zE(n,e)}var jL={}.toString,GL=function(r){return jL.call(r).replace(/^\[object /,"").replace(/]$/,"")},HL=GL,XL=Object.prototype,WL=function(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||XL;return r===t},VL=WL,YL=Object.prototype.hasOwnProperty;function UL(r){if(vt(r))return!0;if(Zu(r))return!r.length;var e=HL(r);if(e==="Map"||e==="Set")return!r.size;if(VL(r))return!Object.keys(r).length;for(var t in r)if(YL.call(r,t))return!1;return!0}var ts=UL;class oc extends YN{constructor(e){super(e),this.shapeMap={},this.animateMap={},this.transformPosition(this.attributes),this.render(this.attributes,this),this.setVisibility(),this.bindEvents()}get parsedAttributes(){return this.attributes}upsert(e,t,n,i,a){var s,o,l,u,c,h,f,d;const v=this.shapeMap[e];if(n===!1){v&&((s=a==null?void 0:a.beforeDestroy)===null||s===void 0||s.call(a,v),i.removeChild(v),delete this.shapeMap[e],(o=a==null?void 0:a.afterDestroy)===null||o===void 0||o.call(a,v));return}const g=typeof t=="string"?ys(Ku.SHAPE,t):t;if(!g)throw new Error(bs(`Shape ${t} 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(),(u=a==null?void 0:a.afterDestroy)===null||u===void 0||u.call(a,v)),(c=a==null?void 0:a.beforeCreate)===null||c===void 0||c.call(a);const p=new g({className:e,style:n});return i.appendChild(p),this.shapeMap[e]=p,(h=a==null?void 0:a.afterCreate)===null||h===void 0||h.call(a,p),p}return(f=a==null?void 0:a.beforeUpdate)===null||f===void 0||f.call(a,v),k0(v,n),(d=a==null?void 0:a.afterUpdate)===null||d===void 0||d.call(a,v),v}transformPosition(e){if("x"in e||"y"in e||"z"in e){const{x:t=0,y:n=0,z:i=0,transform:a}=e,s=Px(+t,+n,+i,a);s&&(this.style.transform=s)}}update(e={}){const t=Object.assign({},this.attributes,e);this.attr(t),this.render(t,this),this.transformPosition(t),this.setVisibility()}bindEvents(){}getGraphicStyle(e){return IL(e)}get compositeShapes(){return[["badges","badge-"],["ports","port-"]]}animate(e,t){if(e.length===0)return null;const n=[];if(e[0].x!==void 0||e[0].y!==void 0||e[0].z!==void 0){const{x:a=0,y:s=0,z:o=0}=this.attributes;e.forEach(l=>{const{x:u=a,y:c=s,z:h=o}=l;Object.assign(l,{transform:h?[["translate3d",u,c,h]]:[["translate",u,c]]})})}const i=super.animate(e,t);if(i&&(t0(this,i),n.push(i)),Array.isArray(e)&&e.length>0){const a=["transform","transformOrigin","x","y","z","zIndex"];if(Object.keys(e[0]).some(s=>!a.includes(s))){Object.entries(this.shapeMap).forEach(([o,l])=>{const u=`get${ef(o)}Style`,c=this[u];if(pt(c)){const h=e.map(d=>c.call(this,Object.assign(Object.assign({},this.attributes),d))),f=l.animate(Np(h),t);f&&(t0(l,f),n.push(f))}});const s=(o,l)=>{if(!ts(o)){const u=`get${ef(l)}Style`,c=this[u];if(pt(c)){const h=e.map(f=>c.call(this,Object.assign(Object.assign({},this.attributes),f)));Object.entries(h[0]).map(([f])=>{const d=h.map(g=>g[f]),v=o[f];if(v){const g=v.animate(Np(d),t);g&&(t0(v,g),n.push(g))}})}}};this.compositeShapes.forEach(([o,l])=>{const u=qp(this.shapeMap,l);s(u,o)})}}return Cp(n)}getShape(e){return this.shapeMap[e]}setVisibility(){const{visibility:e}=this.attributes;Lo(this,e,!0)}destroy(){this.shapeMap={},this.animateMap={},super.destroy()}}function t0(r,e){e==null||e.finished.then(()=>{const t=r.activeAnimations.findIndex(n=>n===e);t>-1&&r.activeAnimations.splice(t,1)})}var ZL=function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i{t.push([i===0?"M":"L",...n])}),e&&t.push(["Z"]),t}const jE={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 QL(r){const e=r.replace(/[\n\r]/g,"").replace(/-/g," -").replace(/(\d*\.)(\d+)(?=\.)/g,"$1$2 ").trim().split(/\s*,|\s+/),t=[];let n="",i={};for(;e.length>0;){let a=e.shift();a in jE?n=a:e.unshift(a),i={type:n},jE[n].forEach(l=>{a=e.shift(),i[l]=a}),n==="M"?n="L":n==="m"&&(n="l");const[s,...o]=Object.values(i);t.push([s,...o.map(Number)])}return t}function JL(r){const e=[];return(typeof r=="string"?QL(r):r).forEach(n=>{const i=n[0];if(i==="Z"){e.push(e[0]);return}if(i!=="A")for(let a=1;a{if(r.length<2)return[["M",0,0],["L",0,0]];const e=r[0],t=r[1],n=r[r.length-1],i=r[r.length-2];r.unshift(i,n),r.push(e,t);const a=[["M",n[0],n[1]]];for(let s=1;s{const p=v,m=c[(g+1)%c.length];return dr(p,m)?null:[p,m]}).filter(Boolean),f=kL([o,l],h),d=AE([o,l],f);if(d&&f&&(u.transform=[["translate",d[0]+t,d[1]+n]],s)){const v=Math.atan((f[0][1]-f[1][1])/(f[0][0]-f[1][0]));u.transform.push(["rotate",v/Math.PI*180]),u.textAlign="center",(e==="right"||e==="left")&&(v>0?u.textBaseline=e==="right"?"bottom":"top":u.textBaseline=e==="right"?"top":"bottom")}return u}var $L=function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i{n!=null&&n.children.length&&n.children.forEach(i=>{e.push(i),t(i)})};return t(r),e}function tD(r){const e=[];let t=r.parentNode;for(;t;)e.push(t),t=t.parentNode;return e}class n0 extends Dh{constructor(e){super(e),this.onMounted=()=>{this.handleRadius()},this.onAttrModified=()=>{this.handleRadius()},Fl=this,this.isMutationObserved=!0,this.addEventListener(Qt.MOUNTED,this.onMounted),this.addEventListener(Qt.ATTR_MODIFIED,this.onAttrModified)}handleRadius(){const{radius:e,clipPath:t,width:n=0,height:i=0}=this.attributes;if(e&&n&&i){const[a,s]=this.getBounds().min,o={x:a,y:s,radius:e,width:n,height:i};if(t)Object.assign(this.parsedStyle.clipPath.style,o);else{const l=new wa({style:o});this.style.clipPath=l}}else t&&(this.style.clipPath=null)}}const r0=new WeakMap;let Fl=null;const i0=r=>{if(Fl&&tD(Fl).includes(r)){const e=r0.get(r);e?e.includes(Fl)||e.push(Fl):r0.set(r,[Fl])}},a0=r=>{const e=r0.get(r);e&&e.forEach(t=>t.handleRadius())};class HE extends oc{constructor(e){super(e)}isImage(){const{src:e}=this.attributes;return!!e}getIconStyle(e=this.attributes){const{width:t=0,height:n=0}=e,i=this.getGraphicStyle(e);return this.isImage()?Object.assign({x:-t/2,y:-n/2},i):Object.assign({textBaseline:"middle",textAlign:"center"},i)}render(e=this.attributes,t=this){this.upsert("icon",this.isImage()?n0:Nl,this.getIconStyle(e),t)}}class XE extends oc{get context(){return this.config.context}get parsedAttributes(){return this.attributes}onframe(){}animate(e,t){const n=super.animate(e,t);return n&&(n.onframe=()=>this.onframe(),n.finished.then(()=>this.onframe())),n}}var Af=function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i{i[h]=!1}),e.badge===!1||!(!((t=e.badges)===null||t===void 0)&&t.length))return i;const{badges:a=[],badgePalette:s,opacity:o=1}=e,l=Af(e,["badges","badgePalette","opacity"]),u=BE(s),c=br(this.getGraphicStyle(l),"badge");return a.forEach((h,f)=>{i[f]=Object.assign(Object.assign({backgroundFill:u?u[f%(u==null?void 0:u.length)]:void 0,opacity:o},c),this.getBadgeStyle(h))}),i}getBadgeStyle(e){const t=this.getShape("key"),{placement:n="top",offsetX:i,offsetY:a}=e,s=Af(e,["placement","offsetX","offsetY"]),o=Qw(t.getLocalBounds(),n,i,a,!0);return Object.assign(Object.assign({},o),s)}getPortsStyle(e){var t;const n=this.getPorts(),i={};if(Object.keys(n).forEach(o=>{i[o]=!1}),e.port===!1||!(!((t=e.ports)===null||t===void 0)&&t.length))return i;const a=br(this.getGraphicStyle(e),"port"),{ports:s=[]}=e;return s.forEach((o,l)=>{const u=o.key||l,c=Object.assign(Object.assign({},a),o);if(Uw(c))i[u]=!1;else{const[h,f]=this.getPortXY(e,o);i[u]=Object.assign({transform:[["translate",h,f]]},c)}}),i}getPortXY(e,t){const{placement:n="left"}=t,i=this.getShape("key");return T0(nD(this.context,i),n)}getPorts(){return qp(this.shapeMap,"port-")}getCenter(){return this.getShape("key").getBounds().center}getIntersectPoint(e,t=!1){const n=this.getShape("key").getBounds();return AL(e,n,t)}drawHaloShape(e,t){const n=this.getHaloStyle(e);if(!Aa(this,"halo",n))return;const i=this.getShape("key");this.upsert("halo",i.constructor,n,t)}drawIconShape(e,t){const n=this.getIconStyle(e);Aa(this,"icon",n)&&(this.upsert("icon",HE,n,t),i0(this))}drawBadgeShapes(e,t){const n=this.getBadgesStyle(e);Object.keys(n).forEach(i=>{const a=n[i];Aa(this,`badge-${i}`,a)&&this.upsert(`badge-${i}`,zl,a,t)})}drawPortShapes(e,t){const n=this.getPortsStyle(e);Object.keys(n).forEach(i=>{const a=n[i],s=`port-${i}`;Aa(this,s,a)&&this.upsert(s,Ol,a,t)})}drawLabelShape(e,t){const n=this.getLabelStyle(e);Aa(this,"label",n)&&this.upsert("label",Zs,n,t)}_drawKeyShape(e,t){return this.drawKeyShape(e,t)}render(e=this.parsedAttributes,t=this){this._drawKeyShape(e,t),this.getShape("key")&&(this.drawHaloShape(e,t),this.drawIconShape(e,t),this.drawBadgeShapes(e,t),this.drawLabelShape(e,t),this.drawPortShapes(e,t))}update(e){super.update(e),e&&("x"in e||"y"in e||"z"in e)&&a0(this)}onframe(){this.drawBadgeShapes(this.parsedAttributes,this),this.drawLabelShape(this.parsedAttributes,this)}}Oa.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 nD(r,e){if(!r)return e.getLocalBounds();const t=r.canvas.getLayer(),n=e.cloneNode();Lo(n,"hidden"),t.appendChild(n);const i=n.getLocalBounds();return n.destroy(),i}class zo extends Oa{constructor(e){super(Tr({style:zo.defaultStyleProps},e))}drawKeyShape(e,t){return this.upsert("key",Ol,this.getKeyStyle(e),t)}getKeyStyle(e){const t=super.getKeyStyle(e);return Object.assign(Object.assign({},t),{r:Math.min(...this.getSize(e))/2})}getIconStyle(e){const t=super.getIconStyle(e),{r:n}=this.getShape("key").attributes,i=n*2*Ps;return t?Object.assign({width:i,height:i},t):!1}getIntersectPoint(e,t=!1){const n=this.getShape("key").getBounds();return Pf(e,n,t)}}zo.defaultStyleProps={size:32};class Of extends Oa{constructor(e){super(e)}get parsedAttributes(){return this.attributes}drawKeyShape(e,t){return this.upsert("key",Cl,this.getKeyStyle(e),t)}getKeyStyle(e){const t=super.getKeyStyle(e);return Object.assign(Object.assign({},t),{points:this.getPoints(e)})}getIntersectPoint(e,t=!1){var n,i;const{points:a}=this.getShape("key").attributes,s=[+(((n=this.attributes)===null||n===void 0?void 0:n.x)||0),+(((i=this.attributes)===null||i===void 0?void 0:i.y)||0)];return TE(e,s,a,!0,t).point}}class rD extends Of{constructor(e){super(e)}getPoints(e){const[t,n]=this.getSize(e);return L6(t,n)}}var iD=function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);iht(h)?{value:h}:h),a=br(this.getGraphicStyle(e),"donut"),s=BE(e.donutPalette);if(!s)return;const o=i.reduce((h,f)=>{var d;return h+((d=f.value)!==null&&d!==void 0?d:0)},0),l=this.parseOuterR(),u=this.parseInnerR();let c=0;i.forEach((h,f)=>{const{value:d=0,color:v=s[f%s.length]}=h,g=iD(h,["value","color"]),p=(o===0?1/i.length:d/o)*360;this.upsert(`round${f}`,gs,Object.assign(Object.assign(Object.assign({},a),{d:oD(l,u,c,c+p),fill:v}),g),t),c+=p})}render(e,t=this){super.render(e,t),this.drawDonutShape(e,t)}}kf.defaultStyleProps={innerR:"50%",donuts:[],donutPalette:"tableau"};const Cf=(r,e,t,n)=>[r+Math.sin(n)*t,e-Math.cos(n)*t],aD=(r,e,t,n)=>n<=0||t<=n?[["M",r-t,e],["A",t,t,0,1,1,r+t,e],["A",t,t,0,1,1,r-t,e],["Z"]]:[["M",r-t,e],["A",t,t,0,1,1,r+t,e],["A",t,t,0,1,1,r-t,e],["Z"],["M",r+n,e],["A",n,n,0,1,0,r-n,e],["A",n,n,0,1,0,r+n,e],["Z"]],sD=(r,e,t,n,i,a)=>{const[s,o]=[i/360*2*Math.PI,a/360*2*Math.PI],l=[Cf(r,e,n,s),Cf(r,e,t,s),Cf(r,e,t,o),Cf(r,e,n,o)],u=o-s>Math.PI?1:0;return[["M",l[0][0],l[0][1]],["L",l[1][0],l[1][1]],["A",t,t,0,u,1,l[2][0],l[2][1]],["L",l[3][0],l[3][1]],["A",n,n,0,u,0,l[0][0],l[0][1]],["Z"]]},oD=(r=0,e=0,t,n)=>{const[i,a]=[0,0];return Math.abs(t-n)%360<1e-6?aD(i,a,r,e):sD(i,a,r,e,t,n)};class Nf extends Oa{constructor(e){super(Tr({style:Nf.defaultStyleProps},e))}drawKeyShape(e,t){return this.upsert("key",Rh,this.getKeyStyle(e),t)}getKeyStyle(e){const t=super.getKeyStyle(e),[n,i]=this.getSize(e);return Object.assign(Object.assign({},t),{rx:n/2,ry:i/2})}getIconStyle(e){const t=super.getIconStyle(e),{rx:n,ry:i}=this.getShape("key").attributes,a=Math.min(+n,+i)*2*Ps;return t?Object.assign({width:a,height:a},t):!1}getIntersectPoint(e,t=!1){const n=this.getShape("key").getBounds();return Pf(e,n,t)}}Nf.defaultStyleProps={size:[45,35]};class lD extends Of{constructor(e){super(e)}getOuterR(e){return e.outerR||Math.min(...this.getSize(e))/2}getPoints(e){return I6(this.getOuterR(e))}getIconStyle(e){const t=super.getIconStyle(e),n=this.getOuterR(e)*Ps;return t?Object.assign({width:n,height:n},t):!1}}function jl(r){"@babel/helpers - typeof";return jl=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},jl(r)}function uD(r,e){if(jl(r)!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var n=t.call(r,e||"default");if(jl(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(r)}function WE(r){var e=uD(r,"string");return jl(e)=="symbol"?e:e+""}function Ri(r,e,t){return(e=WE(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function cD(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}function VE(r,e){for(var t=0;tr.length)&&(e=r.length);for(var t=0,n=Array(e);to?s:o,u=s>o?1:s/o,c=s>o?o/s:1;r.save(),r.scale(u,c),r.arc(n,a,l,0,Math.PI*2)}}function wD(r,e){var t=e.x1,n=e.y1,i=e.x2,a=e.y2,s=e.markerStart,o=e.markerEnd,l=e.markerStartOffset,u=e.markerEndOffset,c=0,h=0,f=0,d=0,v=0,g,p;s&&ln(s)&&l&&(g=i-t,p=a-n,v=Math.atan2(p,g),c=Math.cos(v)*(l||0),h=Math.sin(v)*(l||0)),o&&ln(o)&&u&&(g=t-i,p=n-a,v=Math.atan2(p,g),f=Math.cos(v)*(u||0),d=Math.sin(v)*(u||0)),r.moveTo(t+c,n+h),r.lineTo(i+f,a+d)}function PD(r,e){var t=e.markerStart,n=e.markerEnd,i=e.markerStartOffset,a=e.markerEndOffset,s=e.d,o=s.absolutePath,l=s.segments,u=0,c=0,h=0,f=0,d=0,v,g;if(t&&ln(t)&&i){var p=t.parentNode.getStartTangent(),m=uc(p,2),b=m[0],x=m[1];v=b[0]-x[0],g=b[1]-x[1],d=Math.atan2(g,v),u=Math.cos(d)*(i||0),c=Math.sin(d)*(i||0)}if(n&&ln(n)&&a){var O=n.parentNode.getEndTangent(),T=uc(O,2),S=T[0],k=T[1];v=S[0]-k[0],g=S[1]-k[1],d=Math.atan2(g,v),h=Math.cos(d)*(a||0),f=Math.sin(d)*(a||0)}for(var C=0;Cqe?Ve:qe,un=Ve>qe?1:Ve/qe,ui=Ve>qe?qe/Ve:1;r.translate(Be,Ge),r.rotate(Vt),r.scale(un,ui),r.arc(0,0,Nr,lt,Ct,!!(1-qt)),r.scale(1/un,1/ui),r.rotate(-Vt),r.translate(-Be,-Ge)}ie&&r.lineTo(W[6]+h,W[7]+f);break}case"Z":r.closePath();break}}}function MD(r,e){var t=e.markerStart,n=e.markerEnd,i=e.markerStartOffset,a=e.markerEndOffset,s=e.points.points,o=s.length,l=s[0][0],u=s[0][1],c=s[o-1][0],h=s[o-1][1],f=0,d=0,v=0,g=0,p=0,m,b;t&&ln(t)&&i&&(m=s[1][0]-s[0][0],b=s[1][1]-s[0][1],p=Math.atan2(b,m),f=Math.cos(p)*(i||0),d=Math.sin(p)*(i||0)),n&&ln(n)&&a&&(m=s[o-1][0]-s[0][0],b=s[o-1][1]-s[0][1],p=Math.atan2(b,m),v=Math.cos(p)*(a||0),g=Math.sin(p)*(a||0)),r.moveTo(l+(f||v),u+(d||g));for(var x=1;x0?1:-1,d=l>0?1:-1,v=f+d===0,g=s.map(function(T){return on(T,0,Math.min(Math.abs(u)/2,Math.abs(c)/2))}),p=uc(g,4),m=p[0],b=p[1],x=p[2],O=p[3];r.moveTo(f*m+n,a),r.lineTo(u-f*b+n,a),b!==0&&r.arc(u-f*b+n,d*b+a,b,-d*Math.PI/2,f>0?0:Math.PI,v),r.lineTo(u+n,c-d*x+a),x!==0&&r.arc(u-f*x+n,c-d*x+a,x,f>0?0:Math.PI,d>0?Math.PI/2:1.5*Math.PI,v),r.lineTo(f*O+n,c+a),O!==0&&r.arc(f*O+n,c-d*O+a,O,d>0?Math.PI/2:-Math.PI/2,f>0?Math.PI:0,v),r.lineTo(n,d*m+a),m!==0&&r.arc(f*m+n,d*m+a,m,f>0?Math.PI:0,d>0?Math.PI*1.5:Math.PI/2,v)}}var AD=function(r){function e(){var t;cD(this,e);for(var n=arguments.length,i=new Array(n),a=0;ar.length)&&(e=r.length);for(var t=0,n=Array(e);t=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(u){throw u},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(){t=t.call(r)},n:function(){var u=t.next();return s=u.done,u},e:function(u){o=!0,a=u},f:function(){try{s||t.return==null||t.return()}finally{if(o)throw a}}}}function l0(){"use strict";l0=function(){return e};var r,e={},t=Object.prototype,n=t.hasOwnProperty,i=Object.defineProperty||function(Z,H,X){Z[H]=X.value},a=typeof Symbol=="function"?Symbol:{},s=a.iterator||"@@iterator",o=a.asyncIterator||"@@asyncIterator",l=a.toStringTag||"@@toStringTag";function u(Z,H,X){return Object.defineProperty(Z,H,{value:X,enumerable:!0,configurable:!0,writable:!0}),Z[H]}try{u({},"")}catch(Z){u=function(X,q,oe){return X[q]=oe}}function c(Z,H,X,q){var oe=H&&H.prototype instanceof m?H:m,de=Object.create(oe.prototype),Oe=new ae(q||[]);return i(de,"_invoke",{value:U(Z,X,Oe)}),de}function h(Z,H,X){try{return{type:"normal",arg:Z.call(H,X)}}catch(q){return{type:"throw",arg:q}}}e.wrap=c;var f="suspendedStart",d="suspendedYield",v="executing",g="completed",p={};function m(){}function b(){}function x(){}var O={};u(O,s,function(){return this});var T=Object.getPrototypeOf,S=T&&T(T(ve([])));S&&S!==t&&n.call(S,s)&&(O=S);var k=x.prototype=m.prototype=Object.create(O);function C(Z){["next","throw","return"].forEach(function(H){u(Z,H,function(X){return this._invoke(H,X)})})}function W(Z,H){function X(oe,de,Oe,Be){var Ge=h(Z[oe],Z,de);if(Ge.type!=="throw"){var Ve=Ge.arg,qe=Ve.value;return qe&&Ks(qe)=="object"&&n.call(qe,"__await")?H.resolve(qe.__await).then(function(lt){X("next",lt,Oe,Be)},function(lt){X("throw",lt,Oe,Be)}):H.resolve(qe).then(function(lt){Ve.value=lt,Oe(Ve)},function(lt){return X("throw",lt,Oe,Be)})}Be(Ge.arg)}var q;i(this,"_invoke",{value:function(de,Oe){function Be(){return new H(function(Ge,Ve){X(de,Oe,Ge,Ve)})}return q=q?q.then(Be,Be):Be()}})}function U(Z,H,X){var q=f;return function(oe,de){if(q===v)throw Error("Generator is already running");if(q===g){if(oe==="throw")throw de;return{value:r,done:!0}}for(X.method=oe,X.arg=de;;){var Oe=X.delegate;if(Oe){var Be=J(Oe,X);if(Be){if(Be===p)continue;return Be}}if(X.method==="next")X.sent=X._sent=X.arg;else if(X.method==="throw"){if(q===f)throw q=g,X.arg;X.dispatchException(X.arg)}else X.method==="return"&&X.abrupt("return",X.arg);q=v;var Ge=h(Z,H,X);if(Ge.type==="normal"){if(q=X.done?g:d,Ge.arg===p)continue;return{value:Ge.arg,done:X.done}}Ge.type==="throw"&&(q=g,X.method="throw",X.arg=Ge.arg)}}}function J(Z,H){var X=H.method,q=Z.iterator[X];if(q===r)return H.delegate=null,X==="throw"&&Z.iterator.return&&(H.method="return",H.arg=r,J(Z,H),H.method==="throw")||X!=="return"&&(H.method="throw",H.arg=new TypeError("The iterator does not provide a '"+X+"' method")),p;var oe=h(q,Z.iterator,H.arg);if(oe.type==="throw")return H.method="throw",H.arg=oe.arg,H.delegate=null,p;var de=oe.arg;return de?de.done?(H[Z.resultName]=de.value,H.next=Z.nextLoc,H.method!=="return"&&(H.method="next",H.arg=r),H.delegate=null,p):de:(H.method="throw",H.arg=new TypeError("iterator result is not an object"),H.delegate=null,p)}function te(Z){var H={tryLoc:Z[0]};1 in Z&&(H.catchLoc=Z[1]),2 in Z&&(H.finallyLoc=Z[2],H.afterLoc=Z[3]),this.tryEntries.push(H)}function ie(Z){var H=Z.completion||{};H.type="normal",delete H.arg,Z.completion=H}function ae(Z){this.tryEntries=[{tryLoc:"root"}],Z.forEach(te,this),this.reset(!0)}function ve(Z){if(Z||Z===""){var H=Z[s];if(H)return H.call(Z);if(typeof Z.next=="function")return Z;if(!isNaN(Z.length)){var X=-1,q=function oe(){for(;++X=0;--oe){var de=this.tryEntries[oe],Oe=de.completion;if(de.tryLoc==="root")return q("end");if(de.tryLoc<=this.prev){var Be=n.call(de,"catchLoc"),Ge=n.call(de,"finallyLoc");if(Be&&Ge){if(this.prev=0;--q){var oe=this.tryEntries[q];if(oe.tryLoc<=this.prev&&n.call(oe,"finallyLoc")&&this.prev=0;--X){var q=this.tryEntries[X];if(q.finallyLoc===H)return this.complete(q.completion,q.afterLoc),ie(q),p}},catch:function(H){for(var X=this.tryEntries.length-1;X>=0;--X){var q=this.tryEntries[X];if(q.tryLoc===H){var oe=q.completion;if(oe.type==="throw"){var de=oe.arg;ie(q)}return de}}throw Error("illegal catch attempt")},delegateYield:function(H,X,q){return this.delegate={iterator:ve(H),resultName:X,nextLoc:q},this.method==="next"&&(this.arg=r),p}},e}function tw(r,e,t,n,i,a,s){try{var o=r[a](s),l=o.value}catch(u){return void t(u)}o.done?e(l):Promise.resolve(l).then(n,i)}function LD(r){return function(){var e=this,t=arguments;return new Promise(function(n,i){var a=r.apply(e,t);function s(l){tw(a,n,i,s,o,"next",l)}function o(l){tw(a,n,i,s,o,"throw",l)}s(void 0)})}}function DD(r){if(Array.isArray(r))return r}function ID(r,e){var t=r==null?null:typeof Symbol!="undefined"&&r[Symbol.iterator]||r["@@iterator"];if(t!=null){var n,i,a,s,o=[],l=!0,u=!1;try{if(a=(t=t.call(r)).next,e===0){if(Object(t)!==t)return;l=!1}else for(;!(l=(n=a.call(t)).done)&&(o.push(n.value),o.length!==e);l=!0);}catch(c){u=!0,i=c}finally{try{if(!l&&t.return!=null&&(s=t.return(),Object(s)!==s))return}finally{if(u)throw i}}return o}}function BD(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Qs(r,e){return DD(r)||ID(r,e)||ew(r,e)||BD()}function nw(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),t.push.apply(t,n)}return t}function rw(r){for(var e=1;e=l-m&&b<=l+m:!1}function Lf(r,e,t,n){return r/(t*t)+e/(n*n)}function XD(r,e,t){var n=r.parsedStyle,i=n.cx,a=i===void 0?0:i,s=n.cy,o=s===void 0?0:s,l=n.rx,u=n.ry,c=n.fill,h=n.stroke,f=n.lineWidth,d=f===void 0?1:f,v=n.increasedLineWidthForHitTesting,g=v===void 0?0:v,p=n.pointerEvents,m=p===void 0?"auto":p,b=e.x,x=e.y,O=Oo(m,c,h),T=Qs(O,2),S=T[0],k=T[1],C=(d+g)/2,W=(b-a)*(b-a),U=(x-o)*(x-o);return S&&k||t?Lf(W,U,l+C,u+C)<=1:S?Lf(W,U,l,u)<=1:k?Lf(W,U,l-C,u-C)>=1&&Lf(W,U,l+C,u+C)<=1:!1}function Fo(r,e,t,n,i,a){return i>=r&&i<=r+t&&a>=e&&a<=e+n}function WD(r,e,t,n,i,a,s){var o=i/2;return Fo(r-o,e-o,t,i,a,s)||Fo(r+t-o,e-o,i,n,a,s)||Fo(r+o,e+n-o,t,i,a,s)||Fo(r-o,e+o,i,n,a,s)}function Df(r,e,t,n,i,a,s,o){var l=(Math.atan2(o-e,s-r)+Math.PI*2)%(Math.PI*2),u={x:r+t*Math.cos(l),y:e+t*Math.sin(l)};return Vr(u.x,u.y,s,o)<=a/2}function Js(r,e,t,n,i,a,s){var o=Math.min(r,t),l=Math.max(r,t),u=Math.min(e,n),c=Math.max(e,n),h=i/2;return a>=o-h&&a<=l+h&&s>=u-h&&s<=c+h?D1(r,e,t,n,a,s)<=i/2:!1}function aw(r,e,t,n,i){var a=r.length;if(a<2)return!1;for(var s=0;s0!=u0(o[1]-t)>0&&u0(e-(t-s[1])*(s[0]-o[0])/(s[1]-o[1])-s[0])<0&&(n=!n)}return n}function ow(r,e,t){for(var n=!1,i=0;i=i.min[0]&&e.y>=i.min[1]&&e.x<=i.max[0]&&e.y<=i.max[1]}var nI=function(r){function e(){var t;KE(this,e);for(var n=arguments.length,i=new Array(n),a=0;ar.length)&&(e=r.length);for(var t=0,n=Array(e);t=0;--oe){var de=this.tryEntries[oe],Oe=de.completion;if(de.tryLoc==="root")return q("end");if(de.tryLoc<=this.prev){var Be=n.call(de,"catchLoc"),Ge=n.call(de,"finallyLoc");if(Be&&Ge){if(this.prev=0;--q){var oe=this.tryEntries[q];if(oe.tryLoc<=this.prev&&n.call(oe,"finallyLoc")&&this.prev=0;--X){var q=this.tryEntries[X];if(q.finallyLoc===H)return this.complete(q.completion,q.afterLoc),ie(q),p}},catch:function(H){for(var X=this.tryEntries.length-1;X>=0;--X){var q=this.tryEntries[X];if(q.tryLoc===H){var oe=q.completion;if(oe.type==="throw"){var de=oe.arg;ie(q)}return de}}throw Error("illegal catch attempt")},delegateYield:function(H,X,q){return this.delegate={iterator:ve(H),resultName:X,nextLoc:q},this.method==="next"&&(this.arg=r),p}},e}function xI(r,e,t){return(e=dw(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function pw(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),t.push.apply(t,n)}return t}function $s(r){for(var e=1;er.length)&&(e=r.length);for(var t=0,n=Array(e);t0&&arguments[0]!==void 0?arguments[0]:r.api;r.rafId&&(t.cancelAnimationFrame(r.rafId),r.rafId=null)}},{key:"executeTask",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:r.api;v0.length<=0&&g0.length<=0||(g0.forEach(function(n){return n()}),g0=v0.splice(0,r.TASK_NUM_PER_FRAME),r.rafId=t.requestAnimationFrame(function(){r.executeTask(t)}))}},{key:"sliceImage",value:function(t,n,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]:r.api,l=t.naturalWidth||t.width,u=t.naturalHeight||t.height,c=n-s,h=i-s,f=Math.ceil(l/c),d=Math.ceil(u/h),v={tileSize:[n,i],gridSize:[d,f],tiles:Array(d).fill(null).map(function(){return Array(f).fill(null)})},g=function(b){for(var x=function(S){v0.push(function(){var k=S*c,C=b*h,W=[Math.min(n,l-k),Math.min(i,u-C)],U=W[0],J=W[1],te=o.createCanvas();te.width=n,te.height=i;var ie=te.getContext("2d");ie.drawImage(t,k,C,U,J,0,0,U,J),v.tiles[b][S]={x:k,y:C,tileX:S,tileY:b,data:te},a()})},O=0;OC&&ie>W,x&&(typeof x.resetTransform=="function"?x.resetTransform():x.setTransform(1,0,0,1,0,0),i.clearFullScreen&&i.clearRect(x,0,0,T*O,S*O,s.background))});var m=function(x,O){for(var T=[x];T.length>0;){var S=T.pop();S.isVisible()&&!S.isCulled()&&(f?i.renderDisplayObjectOptimized(S,O,i.context,ns(i,vr)[vr],n):i.renderDisplayObject(S,O,i.context,ns(i,vr)[vr],n));for(var k=S.sortable.sorted||S.childNodes,C=k.length-1;C>=0;C--)T.push(k[C])}};l.hooks.endFrame.tap(r.tag,function(){if(u.root.childNodes.length===0){i.clearFullScreenLastFrame=!0;return}f=s.renderer.getConfig().enableRenderingOptimization,ns(i,vr)[vr]={restoreStack:[],prevObject:null,currentContext:ns(i,vr)[vr].currentContext},ns(i,vr)[vr].currentContext.clear(),i.clearFullScreenLastFrame=!1;var b=d.getContext(),x=d.getDPR();if(vi(i.dprMatrix,[x,x,1]),Ut(i.vpMatrix,i.dprMatrix,o.getOrthoMatrix()),i.clearFullScreen)f?(b.save(),m(u.root,b),b.restore()):m(u.root,b),i.removedRBushNodeAABBs=[];else{var O=i.safeMergeAABB.apply(i,[i.mergeDirtyAABBs(i.renderQueue)].concat(fI(i.removedRBushNodeAABBs.map(function(Ve){var qe=Ve.minX,lt=Ve.minY,Ct=Ve.maxX,Vt=Ve.maxY,qt=new Rn;return qt.setMinMax([qe,lt,0],[Ct,Vt,0]),qt}))));if(i.removedRBushNodeAABBs=[],Rn.isEmpty(O)){i.renderQueue=[];return}var T=i.convertAABB2Rect(O),S=T.x,k=T.y,C=T.width,W=T.height,U=Dn(i.vec3a,[S,k,0],i.vpMatrix),J=Dn(i.vec3b,[S+C,k,0],i.vpMatrix),te=Dn(i.vec3c,[S,k+W,0],i.vpMatrix),ie=Dn(i.vec3d,[S+C,k+W,0],i.vpMatrix),ae=Math.min(U[0],J[0],ie[0],te[0]),ve=Math.min(U[1],J[1],ie[1],te[1]),Z=Math.max(U[0],J[0],ie[0],te[0]),H=Math.max(U[1],J[1],ie[1],te[1]),X=Math.floor(ae),q=Math.floor(ve),oe=Math.ceil(Z-ae),de=Math.ceil(H-ve);b.save(),i.clearRect(b,X,q,oe,de,s.background),b.beginPath(),b.rect(X,q,oe,de),b.clip(),b.setTransform(i.vpMatrix[0],i.vpMatrix[1],i.vpMatrix[4],i.vpMatrix[5],i.vpMatrix[12],i.vpMatrix[13]);var Oe=s.renderer.getConfig(),Be=Oe.enableDirtyRectangleRenderingDebug;Be&&v.dispatchEvent(new Yr(Ci.DIRTY_RECTANGLE,{dirtyRect:{x:X,y:q,width:oe,height:de}}));var Ge=i.searchDirtyObjects(O);Ge.sort(function(Ve,qe){return Ve.sortable.renderOrder-qe.sortable.renderOrder}).forEach(function(Ve){Ve&&Ve.isVisible()&&!Ve.isCulled()&&i.renderDisplayObject(Ve,b,i.context,ns(i,vr)[vr],n)}),b.restore(),i.renderQueue.forEach(function(Ve){i.saveDirtyAABB(Ve)}),i.renderQueue=[]}ns(i,vr)[vr].restoreStack.forEach(function(){b.restore()}),ns(i,vr)[vr].restoreStack=[]}),l.hooks.render.tap(r.tag,function(b){i.clearFullScreen||i.renderQueue.push(b)})}},{key:"clearRect",value:function(t,n,i,a,s,o){t.clearRect(n,i,a,s),o&&(t.fillStyle=o,t.fillRect(n,i,a,s))}},{key:"renderDisplayObjectOptimized",value:function(t,n,i,a,s){var o=t.nodeName,l=!1,u=!1,c=this.context.styleRendererFactory[o],h=this.pathGeneratorFactory[o],f=t.parsedStyle.clipPath;if(f){l=!a.prevObject||!wg(f.getWorldTransform(),a.prevObject.getWorldTransform()),l&&(this.applyWorldTransform(n,f),a.prevObject=null);var d=this.pathGeneratorFactory[f.nodeName];d&&(n.save(),u=!0,n.beginPath(),d(n,f.parsedStyle),n.closePath(),n.clip())}if(c){l=!a.prevObject||!wg(t.getWorldTransform(),a.prevObject.getWorldTransform()),l&&this.applyWorldTransform(n,t);var v=!a.prevObject;if(!v){var g=a.prevObject.nodeName;o===je.TEXT?v=g!==je.TEXT:o===je.IMAGE?v=g!==je.IMAGE:v=g===je.TEXT||g===je.IMAGE}c.applyStyleToContext(n,t,v,a),a.prevObject=t}h&&(n.beginPath(),h(n,t.parsedStyle),o!==je.LINE&&o!==je.PATH&&o!==je.POLYLINE&&n.closePath()),c&&c.drawToContext(n,t,ns(this,vr)[vr],this,s),u&&n.restore(),t.renderable.dirty=!1}},{key:"renderDisplayObject",value:function(t,n,i,a,s){var o=t.nodeName,l=a.restoreStack[a.restoreStack.length-1];l&&!(t.compareDocumentPosition(l)&Kn.DOCUMENT_POSITION_CONTAINS)&&(n.restore(),a.restoreStack.pop());var u=this.context.styleRendererFactory[o],c=this.pathGeneratorFactory[o],h=t.parsedStyle.clipPath;if(h){this.applyWorldTransform(n,h);var f=this.pathGeneratorFactory[h.nodeName];f&&(n.save(),a.restoreStack.push(t),n.beginPath(),f(n,h.parsedStyle),n.closePath(),n.clip())}u&&(this.applyWorldTransform(n,t),n.save(),this.applyAttributesToContext(n,t)),c&&(n.beginPath(),c(n,t.parsedStyle),o!==je.LINE&&o!==je.PATH&&o!==je.POLYLINE&&n.closePath()),u&&(u.render(n,t.parsedStyle,t,i,this,s),n.restore()),t.renderable.dirty=!1}},{key:"applyAttributesToContext",value:function(t,n){var i=n.parsedStyle,a=i.stroke,s=i.fill,o=i.opacity,l=i.lineDash,u=i.lineDashOffset;l&&t.setLineDash(l),vt(u)||(t.lineDashOffset=u),vt(o)||(t.globalAlpha*=o),!vt(a)&&!Array.isArray(a)&&!a.isNone&&(t.strokeStyle=n.attributes.stroke),!vt(s)&&!Array.isArray(s)&&!s.isNone&&(t.fillStyle=n.attributes.fill)}},{key:"convertAABB2Rect",value:function(t){var n=t.getMin(),i=t.getMax(),a=Math.floor(n[0]),s=Math.floor(n[1]),o=Math.ceil(i[0]),l=Math.ceil(i[1]),u=o-a,c=l-s;return{x:a,y:s,width:u,height:c}}},{key:"mergeDirtyAABBs",value:function(t){var n=new Rn;return t.forEach(function(i){var a=i.getRenderBounds();n.add(a);var s=i.renderable.dirtyRenderBounds;s&&n.add(s)}),n}},{key:"searchDirtyObjects",value:function(t){var n=t.getMin(),i=Ff(n,2),a=i[0],s=i[1],o=t.getMax(),l=Ff(o,2),u=l[0],c=l[1],h=this.rBush.search({minX:a,minY:s,maxX:u,maxY:c});return h.map(function(f){var d=f.displayObject;return d})}},{key:"saveDirtyAABB",value:function(t){var n=t.renderable;n.dirtyRenderBounds||(n.dirtyRenderBounds=new Rn);var i=t.getRenderBounds();i&&n.dirtyRenderBounds.update(i.center,i.halfExtents)}},{key:"applyWorldTransform",value:function(t,n,i){i?(_n(this.tmpMat4,n.getLocalTransform()),Ut(this.tmpMat4,i,this.tmpMat4),Ut(this.tmpMat4,this.vpMatrix,this.tmpMat4)):(_n(this.tmpMat4,n.getWorldTransform()),Ut(this.tmpMat4,this.vpMatrix,this.tmpMat4)),t.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 t=new Rn,n=arguments.length,i=new Array(n),a=0;a0;if(h){if(i||n.attributes.stroke!==a.prevObject.attributes.stroke){var f=!vt(o.stroke)&&!Array.isArray(o.stroke)&&!o.stroke.isNone?n.attributes.stroke:xr.strokeStyle;$n(t,"strokeStyle",f,a.currentContext)}(i||o.lineWidth!==s.lineWidth)&&$n(t,"lineWidth",vt(o.lineWidth)?xr.lineWidth:o.lineWidth,a.currentContext),(i||o.lineDash!==s.lineDash)&&$n(t,"lineDash",o.lineDash||xr.lineDash,a.currentContext),(i||o.lineDashOffset!==s.lineDashOffset)&&$n(t,"lineDashOffset",vt(o.lineDashOffset)?xr.lineDashOffset:o.lineDashOffset,a.currentContext);for(var d=0;d4&&arguments[4]!==void 0?arguments[4]:!1;if(n){$n(t,"shadowColor",xr.shadowColor,a.currentContext);for(var o=0;o-1&&$n(t,"filter",u.replace(/drop-shadow\([^)]*\)/,"").trim()||xr.filter,a.currentContext)}else $n(t,"filter",xr.filter,a.currentContext)}},{key:"fillToContext",value:function(t,n,i,a,s){var o=this,l=n.parsedStyle,u=l.fill,c=l.fillRule,h=null;if(Array.isArray(u)&&u.length>0)u.forEach(function(d){var v,g=$n(t,"fillStyle",Xf(d,n,t,o.imagePool),i.currentContext);h=(v=h)!==null&&v!==void 0?v:g,c?t.fill(c):t.fill()});else{if(To(u)){var f=Hf(u,n,t,n.ownerDocument.defaultView.context,a,s,this.imagePool);f&&(t.fillStyle=f,h=!0)}c?t.fill(c):t.fill()}h!==null&&$n(t,"fillStyle",h,i.currentContext)}},{key:"strokeToContext",value:function(t,n,i,a,s){var o=this,l=n.parsedStyle.stroke,u=null;if(Array.isArray(l)&&l.length>0)l.forEach(function(d){var v,g=$n(t,"strokeStyle",Xf(d,n,t,o.imagePool),i.currentContext);u=(v=u)!==null&&v!==void 0?v:g,t.stroke()});else{if(To(l)){var c=Hf(l,n,t,n.ownerDocument.defaultView.context,a,s,this.imagePool);if(c){var h,f=$n(t,"strokeStyle",c,i.currentContext);u=(h=u)!==null&&h!==void 0?h:f}}t.stroke()}u!==null&&$n(t,"strokeStyle",u,i.currentContext)}},{key:"drawToContext",value:function(t,n,i,a,s){var o,l=n.nodeName,u=n.parsedStyle,c=u.opacity,h=c===void 0?xr.globalAlpha:c,f=u.fillOpacity,d=f===void 0?xr.fillOpacity:f,v=u.strokeOpacity,g=v===void 0?xr.strokeOpacity:v,p=u.lineWidth,m=p===void 0?xr.lineWidth:p,b=u.fill&&!u.fill.isNone,x=u.stroke&&!u.stroke.isNone&&m>0;if(!(!b&&!x)){var O=!vt(u.shadowColor)&&u.shadowBlur>0,T=u.shadowType==="inner",S=((o=u.fill)===null||o===void 0?void 0:o.alpha)===0,k=!!(u.filter&&u.filter.length),C=O&&x&&(l===je.PATH||l===je.LINE||l===je.POLYLINE||S||T),W=null;if(b){C||this.applyShadowAndFilterStyleToContext(t,n,O,i);var U=h*d;W=$n(t,"globalAlpha",U,i.currentContext),this.fillToContext(t,n,i,a,s),C||this.clearShadowAndFilterStyleForContext(t,O,k,i)}if(x){var J=!1,te=h*g,ie=$n(t,"globalAlpha",te,i.currentContext);if(W=b?W:ie,C&&(this.applyShadowAndFilterStyleToContext(t,n,O,i),J=!0,T)){var ae=t.globalCompositeOperation;t.globalCompositeOperation="source-atop",this.strokeToContext(t,n,i,a,s),t.globalCompositeOperation=ae,this.clearShadowAndFilterStyleForContext(t,O,k,i,!0)}this.strokeToContext(t,n,i,a,s),J&&this.clearShadowAndFilterStyleForContext(t,O,k,i)}W!==null&&$n(t,"globalAlpha",W,i.currentContext)}}}])}(),y0=function(r){function e(){return Hl(this,e),Bf(this,e,arguments)}return zf(e,r),Xl(e,[{key:"render",value:function(n,i,a,s,o,l){var u=i.fill,c=i.fillRule,h=i.opacity,f=h===void 0?1:h,d=i.fillOpacity,v=d===void 0?1:d,g=i.stroke,p=i.strokeOpacity,m=p===void 0?1:p,b=i.lineWidth,x=b===void 0?1:b,O=i.lineCap,T=i.lineJoin,S=i.shadowType,k=i.shadowColor,C=i.shadowBlur,W=i.filter,U=i.miterLimit,J=u&&!u.isNone,te=g&&!g.isNone&&x>0,ie=(u==null?void 0:u.alpha)===0,ae=!!(W&&W.length),ve=!vt(k)&&C>0,Z=a.nodeName,H=S==="inner",X=te&&ve&&(Z===je.PATH||Z===je.LINE||Z===je.POLYLINE||ie||H);J&&(n.globalAlpha=f*v,X||Vf(a,n,ve),Mw(n,a,u,c,s,o,l,this.imagePool),X||this.clearShadowAndFilter(n,ae,ve)),te&&(n.globalAlpha=f*m,n.lineWidth=x,vt(U)||(n.miterLimit=U),vt(O)||(n.lineCap=O),vt(T)||(n.lineJoin=T),X&&(H&&(n.globalCompositeOperation="source-atop"),Vf(a,n,!0),H&&(b0(n,a,g,s,o,l,this.imagePool),n.globalCompositeOperation=xr.globalCompositeOperation,this.clearShadowAndFilter(n,ae,!0))),b0(n,a,g,s,o,l,this.imagePool))}},{key:"clearShadowAndFilter",value:function(n,i,a){if(a&&(n.shadowColor="transparent",n.shadowBlur=0),i){var s=n.filter;!vt(s)&&s.indexOf("drop-shadow")>-1&&(n.filter=s.replace(/drop-shadow\([^)]*\)/,"").trim()||"none")}}}])}(OI);function Vf(r,e,t){var n=r.parsedStyle,i=n.filter,a=n.shadowColor,s=n.shadowBlur,o=n.shadowOffsetX,l=n.shadowOffsetY;i&&i.length&&(e.filter=r.style.filter),t&&(e.shadowColor=a.toString(),e.shadowBlur=s||0,e.shadowOffsetX=o||0,e.shadowOffsetY=l||0)}function Mw(r,e,t,n,i,a,s,o){var l=arguments.length>8&&arguments[8]!==void 0?arguments[8]:!1;Array.isArray(t)?t.forEach(function(u){r.fillStyle=Xf(u,e,r,o),l||(n?r.fill(n):r.fill())}):(To(t)&&(r.fillStyle=Hf(t,e,r,i,a,s,o)),l||(n?r.fill(n):r.fill()))}function b0(r,e,t,n,i,a,s){var o=arguments.length>7&&arguments[7]!==void 0?arguments[7]:!1;Array.isArray(t)?t.forEach(function(l){r.strokeStyle=Xf(l,e,r,s),o||r.stroke()}):(To(t)&&(r.strokeStyle=Hf(t,e,r,n,i,a,s)),o||r.stroke())}function kI(r,e){var t=Ff(r,4),n=t[0],i=t[1],a=t[2],s=t[3],o=Ff(e,4),l=o[0],u=o[1],c=o[2],h=o[3],f=Math.max(n,l),d=Math.max(i,u),v=Math.min(n+a,l+c),g=Math.min(i+s,u+h);return v<=f||g<=d?null:[f,d,v-f,g-d]}function CI(r,e){var t=Dn(Me(),[r[0],r[1],0],e),n=Dn(Me(),[r[0]+r[2],r[1],0],e),i=Dn(Me(),[r[0],r[1]+r[3],0],e),a=Dn(Me(),[r[0]+r[2],r[1]+r[3],0],e);return[Math.min(t[0],n[0],i[0],a[0]),Math.min(t[1],n[1],i[1],a[1]),Math.max(t[0],n[0],i[0],a[0])-Math.min(t[0],n[0],i[0],a[0]),Math.max(t[1],n[1],i[1],a[1])-Math.min(t[1],n[1],i[1],a[1])]}var NI=function(r){function e(){return Hl(this,e),Bf(this,e,arguments)}return zf(e,r),Xl(e,[{key:"renderDownSampled",value:function(n,i,a,s){var o=s.src,l=s.imageCache;if(!l.downSampled){this.imagePool.createDownSampledImage(o,a).then(function(u){a.renderable.dirty=!0,a.ownerDocument.defaultView.context.renderingService.dirtify()}).catch(function(){});return}n.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(n,i,a,s){var o=s.src,l=s.imageCache,u=s.imageRect,c=s.drawRect,h=l.size,f=n.getTransform(),d=f.a,v=f.b,g=f.c,p=f.d,m=f.e,b=f.f;if(n.resetTransform(),!(l!=null&&l.gridSize)){this.imagePool.createImageTiles(o,[],function(){a.renderable.dirty=!0,a.ownerDocument.defaultView.context.renderingService.dirtify()},a).catch(function(){});return}for(var x=[h[0]/u[2],h[1]/u[3]],O=[l.tileSize[0]/x[0],l.tileSize[1]/x[1]],T=[Math.floor((c[0]-u[0])/O[0]),Math.ceil((c[0]+c[2]-u[0])/O[0])],S=T[0],k=T[1],C=[Math.floor((c[1]-u[1])/O[1]),Math.ceil((c[1]+c[3]-u[1])/O[1])],W=C[0],U=C[1],J=W;J<=U;J++)for(var te=S;te<=k;te++){var ie=l.tiles[J][te];if(ie){var ae=[Math.floor(u[0]+ie.tileX*O[0]),Math.floor(u[1]+ie.tileY*O[1]),Math.ceil(O[0]),Math.ceil(O[1])];n.drawImage(ie.data,ae[0],ae[1],ae[2],ae[3])}}n.setTransform(d,v,g,p,m,b)}},{key:"render",value:function(n,i,a){var s=i.x,o=s===void 0?0:s,l=i.y,u=l===void 0?0:l,c=i.width,h=i.height,f=i.src,d=i.shadowColor,v=i.shadowBlur,g=this.imagePool.getImageSync(f,a),p=g==null?void 0:g.img,m=c,b=h;if(p){m||(m=p.width),b||(b=p.height);var x=!vt(d)&&v>0;Vf(a,n,x);try{var O=a.ownerDocument.defaultView.getContextService().getDomElement(),T=O.width,S=O.height,k=n.getTransform(),C=k.a,W=k.b,U=k.c,J=k.d,te=k.e,ie=k.f,ae=di(C,U,0,0,W,J,0,0,0,0,1,0,te,ie,0,1),ve=CI([o,u,m,b],ae),Z=kI([0,0,T,S],ve);if(!Z)return;if(!a.ownerDocument.defaultView.getConfig().enableLargeImageOptimization){e.renderFull(n,i,a,{image:p,drawRect:[o,u,m,b]});return}var H=ve[2]/g.size[0];if(H<(g.downSamplingRate||.5)){this.renderDownSampled(n,i,a,{src:f,imageCache:g,drawRect:[o,u,m,b]});return}if(!m0.isSupportTile){e.renderFull(n,i,a,{image:p,drawRect:[o,u,m,b]});return}this.renderTile(n,i,a,{src:f,imageCache:g,imageRect:ve,drawRect:Z})}catch(X){}}}},{key:"drawToContext",value:function(n,i,a,s,o){this.render(n,i.parsedStyle,i)}}],[{key:"renderFull",value:function(n,i,a,s){n.drawImage(s.image,Math.floor(s.drawRect[0]),Math.floor(s.drawRect[1]),Math.ceil(s.drawRect[2]),Math.ceil(s.drawRect[3]))}}])}(y0),_I=function(r){function e(){return Hl(this,e),Bf(this,e,arguments)}return zf(e,r),Xl(e,[{key:"render",value:function(n,i,a,s,o,l){a.getBounds();var u=i.lineWidth,c=u===void 0?1:u,h=i.textAlign,f=h===void 0?"start":h,d=i.textBaseline,v=d===void 0?"alphabetic":d,g=i.lineJoin,p=g===void 0?"miter":g,m=i.miterLimit,b=m===void 0?10:m,x=i.letterSpacing,O=x===void 0?0:x,T=i.stroke,S=i.fill,k=i.fillRule,C=i.fillOpacity,W=C===void 0?1:C,U=i.strokeOpacity,J=U===void 0?1:U,te=i.opacity,ie=te===void 0?1:te,ae=i.metrics,ve=i.x,Z=ve===void 0?0:ve,H=i.y,X=H===void 0?0:H,q=i.dx,oe=i.dy,de=i.shadowColor,Oe=i.shadowBlur,Be=ae.font,Ge=ae.lines,Ve=ae.height,qe=ae.lineHeight,lt=ae.lineMetrics;n.font=Be,n.lineWidth=c,n.textAlign=f==="middle"?"center":f;var Ct=v;Ct==="alphabetic"&&(Ct="bottom"),n.lineJoin=p,vt(b)||(n.miterLimit=b);var Vt=X;v==="middle"?Vt+=-Ve/2-qe/2:v==="bottom"||v==="alphabetic"||v==="ideographic"?Vt+=-Ve:(v==="top"||v==="hanging")&&(Vt+=-qe);var qt=Z+(q||0);Vt+=oe||0,Ge.length===1&&(Ct==="bottom"?(Ct="middle",Vt-=.5*Ve):Ct==="top"&&(Ct="middle",Vt+=.5*Ve)),n.textBaseline=Ct;var Nr=!vt(de)&&Oe>0;Vf(a,n,Nr);for(var un=0;un0&&arguments[0]!==void 0?arguments[0]:{};return Hl(this,e),t=Bf(this,e),t.name="canvas-renderer",t.options=n,t}return zf(e,r),Xl(e,[{key:"init",value:function(){var n,i=c0({dirtyObjectNumThreshold:500,dirtyObjectRatioThreshold:.8},this.options),a=this.context.imagePool,s=new y0(a),o=(n={},Pi(Pi(Pi(Pi(Pi(Pi(Pi(Pi(Pi(Pi(n,je.CIRCLE,s),je.ELLIPSE,s),je.RECT,s),je.IMAGE,new NI(a)),je.TEXT,new _I(a)),je.LINE,s),je.POLYLINE,s),je.POLYGON,s),je.PATH,s),je.GROUP,void 0),Pi(Pi(Pi(n,je.HTML,void 0),je.MESH,void 0),je.FRAGMENT,void 0));this.context.defaultStyleRendererFactory=o,this.context.styleRendererFactory=o,this.addRenderingPlugin(new Ew(i))}},{key:"destroy",value:function(){this.removeAllRenderingPlugins(),delete this.context.defaultStyleRendererFactory,delete this.context.styleRendererFactory}}])}(Is);var Sw=function(){function r(){tt(this,r)}return nt(r,[{key:"apply",value:function(t,n){var i=this,a=t.renderingService,s=t.renderingContext,o=t.config;this.context=t;var l=s.root.ownerDocument.defaultView,u=function(C){a.hooks.pointerMove.call(C)},c=function(C){a.hooks.pointerUp.call(C)},h=function(C){a.hooks.pointerDown.call(C)},f=function(C){a.hooks.pointerOver.call(C)},d=function(C){a.hooks.pointerOut.call(C)},v=function(C){a.hooks.pointerCancel.call(C)},g=function(C){a.hooks.pointerWheel.call(C)},p=function(C){a.hooks.click.call(C)},m=function(C){n.globalThis.document.addEventListener("pointermove",u,!0),C.addEventListener("pointerdown",h,!0),C.addEventListener("pointerleave",d,!0),C.addEventListener("pointerover",f,!0),n.globalThis.addEventListener("pointerup",c,!0),n.globalThis.addEventListener("pointercancel",v,!0)},b=function(C){C.addEventListener("touchstart",h,!0),C.addEventListener("touchend",c,!0),C.addEventListener("touchmove",u,!0),C.addEventListener("touchcancel",v,!0)},x=function(C){n.globalThis.document.addEventListener("mousemove",u,!0),C.addEventListener("mousedown",h,!0),C.addEventListener("mouseout",d,!0),C.addEventListener("mouseover",f,!0),n.globalThis.addEventListener("mouseup",c,!0)},O=function(C){n.globalThis.document.removeEventListener("pointermove",u,!0),C.removeEventListener("pointerdown",h,!0),C.removeEventListener("pointerleave",d,!0),C.removeEventListener("pointerover",f,!0),n.globalThis.removeEventListener("pointerup",c,!0),n.globalThis.removeEventListener("pointercancel",v,!0)},T=function(C){C.removeEventListener("touchstart",h,!0),C.removeEventListener("touchend",c,!0),C.removeEventListener("touchmove",u,!0),C.removeEventListener("touchcancel",v,!0)},S=function(C){n.globalThis.document.removeEventListener("mousemove",u,!0),C.removeEventListener("mousedown",h,!0),C.removeEventListener("mouseout",d,!0),C.removeEventListener("mouseover",f,!0),n.globalThis.removeEventListener("mouseup",c,!0)};a.hooks.init.tap(r.tag,function(){var k=i.context.contextService.getDomElement();n.globalThis.navigator.msPointerEnabled?(k.style.msContentZooming="none",k.style.msTouchAction="none"):l.supportsPointerEvents&&(k.style.touchAction="none"),l.supportsPointerEvents?m(k):x(k),l.supportsTouchEvents&&b(k),o.useNativeClickEvent&&k.addEventListener("click",p,!0),k.addEventListener("wheel",g,{passive:!0,capture:!0})}),a.hooks.destroy.tap(r.tag,function(){var k=i.context.contextService.getDomElement();n.globalThis.navigator.msPointerEnabled?(k.style.msContentZooming="",k.style.msTouchAction=""):l.supportsPointerEvents&&(k.style.touchAction=""),l.supportsPointerEvents?O(k):S(k),l.supportsTouchEvents&&T(k),o.useNativeClickEvent&&k.removeEventListener("click",p,!0),k.removeEventListener("wheel",g,!0)})}}])}();Sw.tag="DOMInteraction";var LI=function(r){function e(){var t;tt(this,e);for(var n=arguments.length,i=new Array(n),a=0;a1&&arguments[1]!==void 0?arguments[1]:[0,0,0];return"matrix(".concat([t[0],t[1],t[4],t[5],t[12]+n[0],t[13]+n[1]].join(","),")")}},{key:"apply",value:function(t,n){var i=this,a=t.camera,s=t.renderingContext,o=t.renderingService;this.context=t;var l=s.root.ownerDocument.defaultView,u=l.context.eventService.nativeHTMLMap,c=function(m,b){b.style.transform=i.joinTransformMatrix(m.getWorldTransform(),m.getOrigin())},h=function(m){var b=m.target;if(b.nodeName===je.HTML){i.$camera||(i.$camera=i.createCamera(a));var x=i.getOrCreateEl(b);i.$camera.appendChild(x),Object.keys(b.attributes).forEach(function(O){i.updateAttribute(O,b)}),c(b,x),u.set(x,b)}},f=function(m){var b=m.target;if(b.nodeName===je.HTML&&i.$camera){var x=i.getOrCreateEl(b);x&&(x.remove(),u.delete(x))}},d=function(m){var b=m.target;if(b.nodeName===je.HTML){var x=m.attrName;i.updateAttribute(x,b)}},v=function(m){var b=m.target,x=b.nodeName===je.FRAGMENT?b.childNodes:[b];x.forEach(function(O){if(O.nodeName===je.HTML){var T=i.getOrCreateEl(O);c(O,T)}})},g=function(){if(i.$camera){var m=i.context.config,b=m.width,x=m.height;i.$camera.parentElement.style.width="".concat(b||0,"px"),i.$camera.parentElement.style.height="".concat(x||0,"px")}};o.hooks.init.tap(r.tag,function(){l.addEventListener(Ci.RESIZE,g),l.addEventListener(Qt.MOUNTED,h),l.addEventListener(Qt.UNMOUNTED,f),l.addEventListener(Qt.ATTR_MODIFIED,d),l.addEventListener(Qt.BOUNDS_CHANGED,v)}),o.hooks.endFrame.tap(r.tag,function(){i.$camera&&s.renderReasons.has(Tl.CAMERA_CHANGED)&&(i.$camera.style.transform=i.joinTransformMatrix(a.getOrthoMatrix()))}),o.hooks.destroy.tap(r.tag,function(){i.$camera&&i.$camera.remove(),l.removeEventListener(Ci.RESIZE,g),l.removeEventListener(Qt.MOUNTED,h),l.removeEventListener(Qt.UNMOUNTED,f),l.removeEventListener(Qt.ATTR_MODIFIED,d),l.removeEventListener(Qt.BOUNDS_CHANGED,v)})}},{key:"createCamera",value:function(t){var n=this.context.config,i=n.document,a=n.width,s=n.height,o=this.context.contextService.getDomElement(),l=o.parentNode;if(l){var u=DI,c=l.querySelector("#".concat(u));if(!c){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 f=(i||document).createElement("div");c=f,f.id=u,f.style.position="absolute",f.style.left="".concat(o.offsetLeft||0,"px"),f.style.top="".concat(o.offsetTop||0,"px"),f.style.transformOrigin="left top",f.style.transform=this.joinTransformMatrix(t.getOrthoMatrix()),f.style.pointerEvents="none",f.style.width="100%",f.style.height="100%",h.appendChild(f),l.appendChild(h)}return c}return null}},{key:"getOrCreateEl",value:function(t){var n=this.context.config.document,i=this.displayObjectHTMLElementMap.get(t);return i||(i=(n||document).createElement("div"),t.parsedStyle.$el=i,this.displayObjectHTMLElementMap.set(t,i),t.id&&(i.id=t.id),t.name&&i.setAttribute("name",t.name),t.className&&(i.className=t.className),i.style.position="absolute",i.style["will-change"]="transform",i.style.transform=this.joinTransformMatrix(t.getWorldTransform(),t.getOrigin())),i}},{key:"updateAttribute",value:function(t,n){var i=this.getOrCreateEl(n);switch(t){case"innerHTML":var a=n.parsedStyle.innerHTML;Xt(a)?i.innerHTML=a:(i.innerHTML="",i.appendChild(a));break;case"x":i.style.left="".concat(n.parsedStyle.x,"px");break;case"y":i.style.top="".concat(n.parsedStyle.y,"px");break;case"transformOrigin":var s=n.parsedStyle.transformOrigin;i.style["transform-origin"]="".concat(s[0].buildCSSText(null,null,"")," ").concat(s[1].buildCSSText(null,null,""));break;case"width":var o=n.parsedStyle.width;i.style.width=ht(o)?"".concat(o,"px"):o.toString();break;case"height":var l=n.parsedStyle.height;i.style.height=ht(l)?"".concat(l,"px"):l.toString();break;case"zIndex":var u=n.parsedStyle.zIndex;i.style["z-index"]="".concat(u);break;case"visibility":var c=n.parsedStyle.visibility;i.style.visibility=c;break;case"pointerEvents":var h=n.parsedStyle.pointerEvents,f=h===void 0?"auto":h;i.style.pointerEvents=f;break;case"opacity":var d=n.parsedStyle.opacity;i.style.opacity="".concat(d);break;case"fill":var v=n.parsedStyle.fill,g="";Ph(v)?v.isNone?g="transparent":g=n.getAttribute("fill"):Array.isArray(v)?g=n.getAttribute("fill"):To(v),i.style.background=g;break;case"stroke":var p=n.parsedStyle.stroke,m="";Ph(p)?p.isNone?m="transparent":m=n.getAttribute("stroke"):Array.isArray(p)?m=n.getAttribute("stroke"):To(p),i.style["border-color"]=m,i.style["border-style"]="solid";break;case"lineWidth":var b=n.parsedStyle.lineWidth;i.style["border-width"]="".concat(b||0,"px");break;case"lineDash":i.style["border-style"]="dashed";break;case"filter":var x=n.style.filter;i.style.filter=x;break;default:!vt(n.style[t])&&n.style[t]!==""&&(i.style[t]=n.style[t])}}}])}();Tw.tag="HTMLRendering";var II=function(r){function e(){var t;tt(this,e);for(var n=arguments.length,i=new Array(n),a=0;a=0;--oe){var de=this.tryEntries[oe],Oe=de.completion;if(de.tryLoc==="root")return q("end");if(de.tryLoc<=this.prev){var Be=n.call(de,"catchLoc"),Ge=n.call(de,"finallyLoc");if(Be&&Ge){if(this.prev=0;--q){var oe=this.tryEntries[q];if(oe.tryLoc<=this.prev&&n.call(oe,"finallyLoc")&&this.prev=0;--X){var q=this.tryEntries[X];if(q.finallyLoc===H)return this.complete(q.completion,q.afterLoc),ie(q),p}},catch:function(H){for(var X=this.tryEntries.length-1;X>=0;--X){var q=this.tryEntries[X];if(q.tryLoc===H){var oe=q.completion;if(oe.type==="throw"){var de=oe.arg;ie(q)}return de}}throw Error("illegal catch attempt")},delegateYield:function(H,X,q){return this.delegate={iterator:ve(H),resultName:X,nextLoc:q},this.method==="next"&&(this.arg=r),p}},e}function Aw(r,e,t,n,i,a,s){try{var o=r[a](s),l=o.value}catch(u){return void t(u)}o.done?e(l):Promise.resolve(l).then(n,i)}function Ow(r){return function(){var e=this,t=arguments;return new Promise(function(n,i){var a=r.apply(e,t);function s(l){Aw(a,n,i,s,o,"next",l)}function o(l){Aw(a,n,i,s,o,"throw",l)}s(void 0)})}}var BI=function(){function r(e){tt(this,r),this.renderingContext=e.renderingContext,this.canvasConfig=e.config}return nt(r,[{key:"init",value:function(){var t=this.canvasConfig,n=t.container,i=t.canvas;if(i)this.$canvas=i,n&&i.parentElement!==n&&n.appendChild(i),this.$container=i.parentElement,this.canvasConfig.container=this.$container;else if(n&&(this.$container=Xt(n)?document.getElementById(n):n,this.$container)){var a=document.createElement("canvas");this.$container.appendChild(a),this.$container.style.position||(this.$container.style.position="relative"),this.$canvas=a}this.context=this.$canvas.getContext("2d"),this.resize(this.canvasConfig.width,this.canvasConfig.height)}},{key:"getContext",value:function(){return this.context}},{key:"getDomElement",value:function(){return this.$canvas}},{key:"getDPR",value:function(){return this.dpr}},{key:"getBoundingClientRect",value:function(){if(this.$canvas.getBoundingClientRect)return this.$canvas.getBoundingClientRect()}},{key:"destroy",value:function(){this.$container&&this.$canvas&&this.$canvas.parentNode&&this.$container.removeChild(this.$canvas)}},{key:"resize",value:function(t,n){var i=this.canvasConfig.devicePixelRatio,a=i||Gu&&window.devicePixelRatio||1;a=a>=1?Math.ceil(a):1,this.dpr=a,this.$canvas&&(this.$canvas.width=this.dpr*t,this.$canvas.height=this.dpr*n,RC(this.$canvas,t,n)),this.renderingContext.renderReasons.add(Tl.CAMERA_CHANGED)}},{key:"applyCursorStyle",value:function(t){this.$container&&this.$container.style&&(this.$container.style.cursor=t)}},{key:"toDataURL",value:function(){var e=Ow(dc().mark(function n(){var i,a,s,o=arguments;return dc().wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return i=o.length>0&&o[0]!==void 0?o[0]:{},a=i.type,s=i.encoderOptions,u.abrupt("return",this.context.canvas.toDataURL(a,s));case 3:case"end":return u.stop()}},n,this)}));function t(){return e.apply(this,arguments)}return t}()}])}(),zI=function(r){function e(){var t;tt(this,e);for(var n=arguments.length,i=new Array(n),a=0;a{const n=this.context.canvas,i=n.context.renderingContext.root.ownerDocument.defaultView;this.normalizeToPointerEvent(t,i).forEach(s=>{const o=this.bootstrapEvent(this.rootPointerEvent,s,i,t);ac(n.context.eventService,"mappingTable.pointerupoutside",[]),n.context.eventService.mapEvent(o)})}}get eventService(){return this.context.canvas.context.eventService}get events(){return[We.CLICK,We.POINTER_DOWN,We.POINTER_MOVE,We.POINTER_UP,We.POINTER_OVER,We.POINTER_LEAVE]}getDomElement(){return this.getShape("key").getDomElement()}getKeyStyle(e){const t=jo(e,["dx","dy","innerHTML","pointerEvents","cursor"]),{dx:n=0,dy:i=0}=t,a=GI(t,["dx","dy"]),[s,o]=this.getSize(e);return Object.assign(Object.assign({x:n,y:i},a),{width:s,height:o})}drawKeyShape(e,t){const n=this.getKeyStyle(e),{x:i,y:a,width:s=0,height:o=0}=n,l=this.upsert("key-container",wa,{x:i,y:a,width:s,height:o,opacity:0},t);return this.upsert("key",Lh,n,l)}connectedCallback(){if(!(this.context.canvas.getRenderer("main")instanceof Yf))return;const n=this.getDomElement();this.events.forEach(i=>{n.addEventListener(i,this.forwardEvents)})}attributeChangedCallback(e,t,n){e==="zIndex"&&t!==n&&(this.getDomElement().style.zIndex=n)}destroy(){const e=this.getDomElement();this.events.forEach(t=>{e.removeEventListener(t,this.forwardEvents)}),super.destroy()}normalizeToPointerEvent(e,t){const n=[];if(t.isTouchEvent(e))for(let i=0;ithis.context.element.getElement(s)).filter(Boolean);if(i.length===0){const s=new Rn,{x:o=0,y:l=0,size:u}=e,[c,h]=ra(u);return s.setMinMax([o-c/2,l-h/2,0],[o+c/2,l+h/2,0]),s}const a=Ju(i.map(s=>s.getBounds()));return n?Ws(a,n):a}drawCollapsedMarkerShape(e,t){const n=this.getCollapsedMarkerStyle(e);Aa(this,"collapsedMarker",n)&&(this.upsert("collapsed-marker",HE,n,t),i0(this))}getCollapsedMarkerStyle(e){if(!e.collapsed||!e.collapsedMarker)return!1;const t=br(this.getGraphicStyle(e),"collapsedMarker"),{type:n}=t,i=Nw(t,["type"]),a=this.getShape("key"),[s,o]=ws(a.getLocalBounds(),"center"),l=Object.assign(Object.assign({},i),{x:s,y:o});if(n){const u=this.getCollapsedMarkerText(n,e);Object.assign(l,{text:u})}return l}getCollapsedMarkerText(e,t){const{childrenData:n=[]}=t,{model:i}=this.context;return e==="descendant-count"?i.getDescendantsData(this.id).length.toString():e==="child-count"?n.length.toString():e==="node-count"?i.getDescendantsData(this.id).filter(a=>i.getElementType(Re(a))==="node").length.toString():pt(e)?e(n):""}getComboPosition(e){const{x:t=0,y:n=0,collapsed:i,childrenData:a=[]}=e;if(a.length===0)return[+t,+n,0];if(i){const{model:s}=this.context,o=s.getDescendantsData(this.id).filter(l=>!s.isCombo(Re(l)));if(o.length>0&&o.some(wL)){const l=o.reduce((u,c)=>jt(u,Br(c)),[0,0,0]);return Sa(l,o.length)}return[+t,+n,0]}return this.getContentBBox(e).center}getComboStyle(e){const[t,n]=this.getComboPosition(e);return{x:t,y:n,transform:[["translate",t,n]]}}updateComboPosition(e){const t=this.getComboStyle(e);Object.assign(this.style,t);const{x:n,y:i}=t;this.context.model.syncComboDatum({id:this.id,style:{x:n,y:i}}),a0(this)}render(e,t=this){super.render(e,t),this.drawCollapsedMarkerShape(e,t)}update(e={}){super.update(e),this.updateComboPosition(this.parsedAttributes)}onframe(){super.onframe(),this.attributes.collapsed||this.updateComboPosition(this.parsedAttributes),this.drawKeyShape(this.parsedAttributes,this)}animate(e,t){const n=super.animate(this.attributes.collapsed?e:e.map(i=>{var{x:a,y:s,z:o,transform:l}=i,u=Nw(i,["x","y","z","transform"]);return u}),t);return n&&new Proxy(n,{set:(i,a,s)=>(a==="currentTime"&&Promise.resolve().then(()=>this.onframe()),Reflect.set(i,a,s))})}}Wl.defaultStyleProps={childrenNode:[],droppable:!0,draggable:!0,collapsed:!1,collapsedSize:32,collapsedMarker:!0,collapsedMarkerZIndex:1,collapsedMarkerFontSize:12,collapsedMarkerTextAlign:"center",collapsedMarkerTextBaseline:"middle",collapsedMarkerType:"child-count"};class WI extends Wl{constructor(e){super(e)}drawKeyShape(e,t){return this.upsert("key",Ol,this.getKeyStyle(e),t)}getKeyStyle(e){const{collapsed:t}=e,n=super.getKeyStyle(e),[i]=this.getKeySize(e);return Object.assign(Object.assign(Object.assign({},n),t&&br(n,"collapsed")),{r:i/2})}getCollapsedKeySize(e){const[t,n]=ra(e.collapsedSize),i=Math.max(t,n)/2;return[i*2,i*2,0]}getExpandedKeySize(e){const t=this.getContentBBox(e),[n,i]=Hs(t),a=Math.sqrt(Math.pow(n,2)+Math.pow(i,2))/2;return[a*2,a*2,0]}getIntersectPoint(e,t=!1){const n=this.getShape("key").getBounds();return Pf(e,n,t)}}class VI extends Wl{constructor(e){super(e)}drawKeyShape(e,t){return this.upsert("key",wa,this.getKeyStyle(e),t)}getKeyStyle(e){const t=super.getKeyStyle(e),[n,i]=this.getKeySize(e);return Object.assign(Object.assign(Object.assign({},t),e.collapsed&&br(t,"collapsed")),{width:n,height:i,x:-n/2,y:-i/2})}}var YI=function(r,e){if(!Zu(r))return r;for(var t=[],n=0;n-1:!1},KI=ZI,QI=function(r,e){return e===void 0&&(e=[]),UI(r,function(t){return!KI(e,t)})},JI=QI;const qI={padding:10};function _w(r,e,t,n,i,a){const{padding:s}=Object.assign(qI,a),o=Xs(t,s),l=Xs(n,s),u=[r,...i,e];let c=null;const h=[];for(let f=0,d=u.length;fa?"N":"S":n===a?t>i?"W":"E":null}function x0(r,e){return e==="N"||e==="S"?$a(r):qa(r)}function Lw(r,e,t){const n=[r[0],e[1]],i=[e[0],r[1]],a=ai(r,n),s=ai(r,i),o=t?$I[t]:null,l=a===t||a!==o&&s!==t?n:i;return{points:[l],direction:ai(l,e)}}function Qf(r,e,t){if(rf(r,t)){const n=vc(r,e,t);return{points:[n],direction:ai(n,e)}}else{const n=_o(r,t),a=["left","right"].includes(qu(r,t))?[e[0],n[1]]:[n[0],e[1]];return{points:[a],direction:ai(a,e)}}}function Dw(r,e,t,n){const i=rf(e,t)?e:_o(e,t),a=[[i[0],r[1]],[r[0],i[1]]],s=a.filter(l=>M_(l,t)&&!Ox(l,t,!0)),o=s.filter(l=>ai(l,r)!==n);if(o.length>0){const l=o.find(u=>ai(r,u)===n)||o[0];return{points:[l],direction:ai(l,e)}}else{const l=JI(a,s)[0],u=Us(e,l,x0(t,n)/2);return{points:[vc(u,r,t),u],direction:ai(u,e)}}}function e6(r,e,t,n){let i=Qf(r,e,t);const a=nc(i.points[0]);if(Pa(a,n)){i=Qf(e,r,n);const s=nc(i.points[0]);if(Pa(s,t)){const o=Us(r,a,x0(t,ai(r,a))/2),l=Us(e,s,x0(n,ai(e,s))/2),u=[(o[0]+l[0])/2,(o[1]+l[1])/2],c=Qf(r,u,t),h=Dw(u,e,n,c.direction);i.points=[c.points[0],h.points[0]],i.direction=h.direction}}return i}function E0(r,e,t,n,i){const s=Ju([t,n]),o=Bn(e,s.center)>Bn(r,s.center),[l,u]=o?[e,r]:[r,e],c=$a(s)+qa(s);let h;if(i){const v=[l[0]+c*Math.cos(Rw[i]),l[1]+c*Math.sin(Rw[i])];h=Us(_o(v,s),v,.01)}else h=Us(_o(l,s),l,-.01);let f=vc(h,u,s),d=[rc(h,2),rc(f,2)];if(dr(rc(h),rc(f))){const v=Zp(On(h,l),[1,0,0])+Math.PI/2;f=[u[0]+c*Math.cos(v),u[1]+c*Math.sin(v),0],f=rc(Us(_o(f,s),u,-.01),2);const g=vc(h,f,s);d=[h,g,f]}return{points:o?d.reverse():d,direction:ai(o?h:f,e)}}function vc(r,e,t){let n=[r[0],e[1]];return Pa(n,t)&&(n=[e[0],r[1]]),n}function Iw(r,e,t,n,i){let l=typeof e=="number"?e:.5;e==="start"&&(l=0),e==="end"&&(l=.99);const u=zr(r.getPoint(l)),c=zr(r.getPoint(l+.01));let h=e==="start"?"left":e==="end"?"right":"center";if(ME(u,c)||!t){const[m,b]=Bw(r,l,n,i);return{transform:[["translate",m,b]],textAlign:h}}let f=Math.atan2(c[1]-u[1],c[0]-u[0]);c[0]{const u=a[l-1]||n,c=a[l+1]||i;if(!SL(u,o,c)&&e){const[h,f]=a6(u,o,c,e);s.push(["L",h[0],h[1]],["Q",o[0],o[1],f[0],f[1]],["L",f[0],f[1]])}else s.push(["L",o[0],o[1]])}),s.push(["L",i[0],i[1]]),t&&s.push(["Z"]),s}function a6(r,e,t,n){const i=Ef(r,e),a=Ef(t,e),s=Math.min(n,Math.min(i,a)/2),o=[e[0]-s/i*(e[0]-r[0]),e[1]-s/i*(e[1]-r[1])],l=[e[0]-s/a*(e[0]-t[0]),e[1]-s/a*(e[1]-t[1])];return[o,l]}const s6=r=>{const e=Math.PI/2,t=$a(r)/2,n=qa(r)/2,i=Math.atan2(t,n)/2,a=Math.atan2(n,t)/2;return{top:[-e-a,-e+a],"top-right":[-e+a,-i],"right-top":[-e+a,-i],right:[-i,i],"bottom-right":[i,e-a],"right-bottom":[i,e-a],bottom:[e-a,e+a],"bottom-left":[e+a,Math.PI-i],"left-bottom":[e+a,Math.PI-i],left:[Math.PI-i,Math.PI+i],"top-left":[Math.PI+i,-e-a],"left-top":[Math.PI+i,-e-a]}};function Fw(r,e,t,n,i){const a=Xs(r),s=r.getCenter();let o=n&&to(n),l=i&&to(i);if(!o||!l){const u=s6(a),c=u[e][0],h=u[e][1],[f,d]=Hs(a),v=Math.max(f,d),g=jt(s,[v*Math.cos(c),v*Math.sin(c),0]),p=jt(s,[v*Math.cos(h),v*Math.sin(h),0]);o=O0(r,g),l=O0(r,p),t||([o,l]=[l,o])}return[o,l]}function o6(r,e,t,n,i,a){const s=r.getPorts()[i||a],o=r.getPorts()[a||i];let[l,u]=Fw(r,e,t,s,o);const c=l6(r,l,u,n);return s&&(l=pc(s,c[0])),o&&(u=pc(o,c[c.length-1])),zw(l,u,c)}function l6(r,e,t,n){const i=r.getCenter();if(dr(e,t)){const a=On(e,i),s=[n*Math.sign(a[0])||n/2,n*Math.sign(a[1])||-n/2,0];return[jt(e,s),jt(t,xs(s,[1,-1,1]))]}return[Us(i,e,Bn(i,e)+n),Us(i,t,Bn(i,t)+n)]}function u6(r,e,t,n,i,a,s){const o=A0(r),l=o[a||s],u=o[s||a];let[c,h]=Fw(r,t,n,l,u);const f=c6(r,c,h,i);return l&&(c=pc(l,f[0])),u&&(h=pc(u,f[f.length-1])),P0([c,...f,h],e)}function c6(r,e,t,n){const i=[],a=Xs(r);if(dr(e,t))switch(qu(e,a)){case"left":i.push([e[0]-n,e[1]]),i.push([e[0]-n,e[1]+n]),i.push([e[0],e[1]+n]);break;case"right":i.push([e[0]+n,e[1]]),i.push([e[0]+n,e[1]+n]),i.push([e[0],e[1]+n]);break;case"top":i.push([e[0],e[1]-n]),i.push([e[0]+n,e[1]-n]),i.push([e[0]+n,e[1]]);break;case"bottom":i.push([e[0],e[1]+n]),i.push([e[0]+n,e[1]+n]),i.push([e[0]+n,e[1]]);break}else{const s=qu(e,a),o=qu(t,a);if(s===o){const l=s;let u,c;switch(l){case"left":u=Math.min(e[0],t[0])-n,i.push([u,e[1]]),i.push([u,t[1]]);break;case"right":u=Math.max(e[0],t[0])+n,i.push([u,e[1]]),i.push([u,t[1]]);break;case"top":c=Math.min(e[1],t[1])-n,i.push([e[0],c]),i.push([t[0],c]);break;case"bottom":c=Math.max(e[1],t[1])+n,i.push([e[0],c]),i.push([t[0],c]);break}}else{const l=(f,d)=>({left:[d[0]-n,d[1]],right:[d[0]+n,d[1]],top:[d[0],d[1]-n],bottom:[d[0],d[1]+n]})[f],u=l(s,e),c=l(o,t),h=vc(u,c,a);i.push(u,h,c)}}return i}function M0(r,e){const t=new Set,n=new Set,i=new Set;return r.forEach(a=>{e(a).forEach(o=>{t.add(o),r.includes(o.source)&&r.includes(o.target)?n.add(o):i.add(o)})}),{edges:Array.from(t),internal:Array.from(n),external:Array.from(i)}}function jw(r,e){const t=[];let n=r;for(;n;){t.push(n);const i=e(Re(n));if(i)n=i;else break}if(t.some(i=>{var a;return(a=i.style)===null||a===void 0?void 0:a.collapsed})){const i=t.reverse().findIndex(_i);return t[i]||t.at(-1)}return r}function h6(r,e){return e||(r<4?10:r===4?12:r*2.5)}const f6=(r,e)=>{const t=Math.max(r,e)/2;return[["M",-r/2,0],["A",t,t,0,1,0,2*t-r/2,0],["A",t,t,0,1,0,-r/2,0],["Z"]]},Gw=(r,e)=>[["M",-r/2,0],["L",r/2,-e/2],["L",r/2,e/2],["Z"]],d6=(r,e)=>[["M",-r/2,0],["L",0,-e/2],["L",r/2,0],["L",0,e/2],["Z"]],v6=(r,e)=>[["M",-r/2,0],["L",r/2,-e/2],["L",4*r/5-r/2,0],["L",r/2,e/2],["Z"]],g6=(r,e)=>[["M",-r/2,-e/2],["L",r/2,-e/2],["L",r/2,e/2],["L",-r/2,e/2],["Z"]],p6=(r,e)=>{const t=r/2,n=r/7,i=r-n;return[["M",-t,0],["L",0,-e/2],["L",0,e/2],["Z"],["M",i-t,-e/2],["L",i+n-t,-e/2],["L",i+n-t,e/2],["L",i-t,e/2],["Z"]]},m6=(r,e)=>[["M",r/2,-e/2],["L",-r/2,0],["L",r/2,0],["L",-r/2,0],["L",r/2,e/2]];var Jf=function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i(a==="currentTime"&&Promise.resolve().then(()=>this.onframe()),Reflect.set(i,a,s))})}}eo.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 Go extends eo{constructor(e){super(Tr({style:Go.defaultStyleProps},e))}getKeyPath(e){const[t,n]=this.getEndpoints(e),{controlPoints:i,curvePosition:a,curveOffset:s}=e,o=this.getControlPoints(t,n,r6(a),n6(s),i);return zw(t,n,o)}getControlPoints(e,t,n,i,a){return(a==null?void 0:a.length)===2?a:[w0(e,t,n[0],i[0]),w0(e,t,n[1],i[1])]}}Go.defaultStyleProps={curvePosition:.5,curveOffset:20};class qf extends Go{constructor(e){super(Tr({style:qf.defaultStyleProps},e))}getControlPoints(e,t,n,i){const a=t[0]-e[0];return[[e[0]+a*n[0]+i[0],e[1]],[t[0]-a*n[1]+i[1],t[1]]]}}qf.defaultStyleProps={curvePosition:[.5,.5],curveOffset:[0,0]};class $f extends Go{constructor(e){super(Tr({style:$f.defaultStyleProps},e))}get ref(){return this.context.model.getRootsData()[0]}getEndpoints(e){if(this.sourceNode.id===this.ref.id)return super.getEndpoints(e);const t=Br(this.ref),n=this.sourceNode.getIntersectPoint(t,!0),i=this.targetNode.getIntersectPoint(t);return[n,i]}toRadialCoordinate(e){const t=Br(this.ref),n=Bn(e,t),i=xE(On(e,t));return[n,i]}getControlPoints(e,t,n,i){const[a,s]=this.toRadialCoordinate(e),[o]=this.toRadialCoordinate(t),l=o-a;return[[e[0]+(l*n[0]+i[0])*Math.cos(s),e[1]+(l*n[0]+i[0])*Math.sin(s)],[t[0]-(l*n[1]-i[0])*Math.cos(s),t[1]-(l*n[1]-i[0])*Math.sin(s)]]}}$f.defaultStyleProps={curvePosition:.5,curveOffset:20};class ed extends Go{constructor(e){super(Tr({style:ed.defaultStyleProps},e))}getControlPoints(e,t,n,i){const a=t[1]-e[1];return[[e[0],e[1]+a*n[0]+i[0]],[t[0],t[1]-a*n[1]+i[1]]]}}ed.defaultStyleProps={curvePosition:[.5,.5],curveOffset:[0,0]};class td extends eo{constructor(e){super(Tr({style:td.defaultStyleProps},e))}getKeyPath(e){const[t,n]=this.getEndpoints(e);return[["M",t[0],t[1]],["L",n[0],n[1]]]}}td.defaultStyleProps={};const y6={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:Ef},Ms=r=>`${Math.round(r[0])}|||${Math.round(r[1])}`;function Ho(r,e){const t=n=>Math.round(n/e);return ht(r)?t(r):r.map(t)}function b6(r,e){const t=Math.abs(r-e);return t>Math.PI?2*Math.PI-t:t}function Hw(r,e){const t=e[0]-r[0],n=e[1]-r[1];return!t&&!n?0:Math.atan2(n,t)}function Xw(r,e,t,n){const i=Hw(r,e),a=t[Ms(r)],o=Hw(a||n,r);return b6(o,i)}const x6=(r,e)=>{const{offset:t,gridSize:n}=e,i={};return r.forEach(a=>{if(!a||a.destroyed||!a.isVisible())return;const s=Ws(a.getRenderBounds(),t);for(let o=Ho(s.min[0],n);o<=Ho(s.max[0],n);o+=1)for(let l=Ho(s.min[1],n);l<=Ho(s.max[1],n);l+=1)i[`${o}|||${l}`]=!0}),i};function Ww(r,e,t){return Math.min(...e.map(n=>t(r,n)))}function E6(r,e,t){let n=r[0],i=t(r[0],e);for(let a=0;a{if(!e)return[r];const{directionMap:i,offset:a}=n,s=Ws(e.getRenderBounds(),a),o=Object.keys(i).reduce((l,u)=>{if(t.includes(u)){const c=i[u],[h,f]=Hs(s),d=[r[0]+c.stepX*h,r[1]+c.stepY*f],v=A_(s);for(let g=0;gHo(l,n.gridSize))},w6=(r,e,t,n,i,a,s)=>{const o=[];let l=[a[0]===n[0]?n[0]:r[0]*s,a[1]===n[1]?n[1]:r[1]*s];o.unshift(l);let u=r,c=e[Ms(u)];for(;c;){const d=c,v=u;Xw(d,v,e,t)&&(l=[d[0]===v[0]?l[0]:d[0]*s,d[1]===v[1]?l[1]:d[1]*s],o.unshift(l)),c=e[Ms(d)],u=d}const h=i.map(d=>[d[0]*s,d[1]*s]),f=E6(h,l,Ef);return o.unshift(f),o};function P6(r,e,t,n){const i=Do(r.getCenter()),a=Do(e.getCenter()),s=Object.assign(y6,n),{gridSize:o}=s,l=s.enableObstacleAvoidance?t:[r,e],u=x6(l,s),c=Ho(i,o),h=Ho(a,o),f=Vw(i,r,s.startDirections,s),d=Vw(a,e,s.endDirections,s);f.forEach(C=>delete u[Ms(C)]),d.forEach(C=>delete u[Ms(C)]);const v={},g={},p={},m={},b={},x=new M6;for(let C=0;CMs(C));let T=s.maximumLoops,S,k=1/0;for(const[C,W]of Object.entries(v))b[C]<=k&&(k=b[C],S=W);for(;Object.keys(v).length>0&&T>0;){const C=x.minId(!1);if(C)S=v[C];else break;const W=Ms(S);if(O.includes(W))return w6(S,p,c,a,f,h,o);delete v[W],x.remove(W),g[W]=!0;for(const U of Object.values(s.directionMap)){const J=jt(S,[U.stepX,U.stepY]),te=Ms(J);if(g[te])continue;const ie=Xw(S,J,p,c);if(ie>s.maxAllowedDirectionChange||u[te])continue;v[te]||(v[te]=J);const ae=s.penalties[ie],ve=s.distFunc(S,J)+(isNaN(ae)?o:ae),Z=m[W]+ve,H=m[te];H&&Z>=H||(p[te]=S,m[te]=Z,b[te]=Z+Ww(J,d,s.distFunc),x.add({id:te,value:b[te]}))}T-=1}return[]}class M6{constructor(){this.arr=[],this.map={},this.arr=[],this.map={}}_innerAdd(e,t){let n=0,i=t-1;for(;i-n>1;){const a=Math.floor((n+i)/2);if(this.arr[a].value>e.value)i=a;else if(this.arr[a].value=0;t--)this.map[this.arr[t].id]?e=this.arr[t].id:this.arr.splice(t,1);return e}_findFirstId(){for(;this.arr.length;){const e=this.arr.shift();if(this.map[e.id])return e.id}}minId(e){return e?this._clearAndGetMinId():this._findFirstId()}}class nd extends eo{constructor(e){super(Tr({style:nd.defaultStyleProps},e))}getControlPoints(e){const{router:t}=e,{sourceNode:n,targetNode:i}=this,[a,s]=this.getEndpoints(e,!1);let o=[];if(!t)o=e.controlPoints;else if(t.type==="shortest-path"){const l=this.context.element.getNodes();o=P6(n,i,l,t),o.length||(o=_w(a,s,n,i,e.controlPoints,{padding:t.offset}))}else t.type==="orth"&&(o=_w(a,s,n,i,e.controlPoints,t));return o}getPoints(e){const t=this.getControlPoints(e),[n,i]=this.getEndpoints(e,!0,t);return[n,...t,i]}getKeyPath(e){const t=this.getPoints(e);return P0(t,e.radius)}getLoopPath(e){const{sourcePort:t,targetPort:n,radius:i}=e,a=this.sourceNode,s=Xs(a),o=Math.max(qa(s),$a(s))/4,{placement:l,clockwise:u,dist:c=o}=br(this.getGraphicStyle(e),"loop");return u6(a,i,l,u,c,t,n)}}nd.defaultStyleProps={radius:0,controlPoints:[],router:!1};class rd extends eo{constructor(e){super(Tr({style:rd.defaultStyleProps},e))}getKeyPath(e){const{curvePosition:t,curveOffset:n}=e,[i,a]=this.getEndpoints(e),s=e.controlPoint||w0(i,a,t,n);return i6(i,a,s)}}rd.defaultStyleProps={curvePosition:.5,curveOffset:30};function gc(r){return r instanceof Oa&&r.type==="node"}function Yw(r){return r instanceof eo}function S0(r){return r instanceof Wl}function S6(r){return gc(r)||Yw(r)||S0(r)}function T6(r,e){return!r||!e?!1:r===e}const A6={top:[.5,0],right:[1,.5],bottom:[.5,1],left:[0,.5],default:[.5,.5]};function T0(r,e,t=A6,n=!0){const i=[.5,.5],a=Xt(e)?ii(t,e.toLocaleLowerCase(),i):e;if(!n&&Xt(e))return a;const[s,o]=a||i;return[r.min[0]+qa(r)*s,r.min[1]+$a(r)*o]}function A0(r){if(!r)return{};const e=r.getPorts();return(r.attributes.ports||[]).forEach((n,i)=>{var a;const{key:s,placement:o}=n;Uw(n)&&(e[a=s||i]||(e[a]=ws(r.getShape("key").getBounds(),o)))}),e}function Uw(r){const{r:e}=r;return!e||Number(e)===0}function to(r){return Dl(r)?r:r.getPosition()}function O6(r,e,t,n){const i=Zw(r,e,t,n),a=Zw(e,r,n,t);return[i,a]}function Zw(r,e,t,n){const i=A0(r);if(t)return i[t];const a=Object.values(i);if(a.length===0)return;const s=a.map(u=>to(u)),o=k6(e,n),[l]=OL(s,o);return a.find(u=>to(u)===l)}function k6(r,e){const t=A0(r);if(e)return[to(t[e])];const n=Object.values(t);return n.length>0?n.map(i=>to(i)):[r.getCenter()]}function Kw(r,e){return S0(r)||gc(r)?O0(r,e):pc(r,e)}function pc(r,e){if(!r||!e)return[0,0,0];if(Dl(r))return r;if(r.attributes.linkToCenter)return r.getPosition();const t=Dl(e)?e:gc(e)?e.getCenter():e.getPosition();return Pf(t,r.getBounds())}function O0(r,e){if(!r||!e)return[0,0,0];const t=Dl(e)?e:gc(e)?e.getCenter():e.getPosition();return r.getIntersectPoint(t)||r.getCenter()}function Qw(r,e="bottom",t=0,n=0,i=!1){const a=e.split("-"),[s,o]=ws(r,e),l=a.includes("left")?"right":a.includes("right")?"left":"center";let u=a.includes("top")?"bottom":a.includes("bottom")?"top":"middle";return i&&(u=u==="top"?"bottom":u==="bottom"?"top":u),{transform:[["translate",s+t,o+n]],textBaseline:u,textAlign:l}}function C6(r,e){return[[0,-r],[e*Math.cos(3*Math.PI/10),-e*Math.sin(3*Math.PI/10)],[r*Math.cos(Math.PI/10),-r*Math.sin(Math.PI/10)],[e*Math.cos(Math.PI/10),e*Math.sin(Math.PI/10)],[r*Math.cos(3*Math.PI/10),r*Math.sin(3*Math.PI/10)],[0,e],[-r*Math.cos(3*Math.PI/10),r*Math.sin(3*Math.PI/10)],[-e*Math.cos(Math.PI/10),e*Math.sin(Math.PI/10)],[-r*Math.cos(Math.PI/10),-r*Math.sin(Math.PI/10)],[-e*Math.cos(3*Math.PI/10),-e*Math.sin(3*Math.PI/10)]]}function N6(r,e){const t={};return t.top=[0,-r],t.left=[-r*Math.cos(Math.PI/10),-r*Math.sin(Math.PI/10)],t["left-bottom"]=[-r*Math.cos(3*Math.PI/10),r*Math.sin(3*Math.PI/10)],t.bottom=[0,e],t["right-bottom"]=[r*Math.cos(3*Math.PI/10),r*Math.sin(3*Math.PI/10)],t.right=t.default=[r*Math.cos(Math.PI/10),-r*Math.sin(Math.PI/10)],t}function _6(r,e,t){const n=e/2,i=r/2,a={up:[[-i,n],[i,n],[0,-n]],left:[[-i,0],[i,n],[i,-n]],right:[[-i,n],[-i,-n],[i,0]],down:[[-i,-n],[i,-n],[0,n]]};return a[t]||a.up}function R6(r,e,t){const n=e/2,i=r/2,a={};return t==="down"?(a.bottom=a.default=[0,n],a.right=[i,-n],a.left=[-i,-n]):t==="left"?(a.top=[i,-n],a.bottom=[i,n],a.left=a.default=[-i,0]):t==="right"?(a.top=[-i,-n],a.bottom=[-i,n],a.right=a.default=[i,0]):(a.left=[-i,n],a.top=a.default=[0,-n],a.right=[i,n]),a}function nQ(r,e){return[[r/2,-e/2],[r/2,e/2],[-r/2,e/2],[-r/2,-e/2]]}function L6(r,e){return[[0,-e/2],[r/2,0],[0,e/2],[-r/2,0]]}function D6(r){return ii(r,["style","visibility"])!=="hidden"}function k0(r,e){"update"in r?r.update(e):r.attr(e)}function I6(r){return[[0,r],[r*Math.sqrt(3)/2,r/2],[r*Math.sqrt(3)/2,-r/2],[0,-r],[-r*Math.sqrt(3)/2,-r/2],[-r*Math.sqrt(3)/2,r/2]]}function B6(r){ac(r,"__to_be_destroyed__",!0)}function id(r){return ii(r,"__to_be_destroyed__",!1)}var z6=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})};class ad extends Ni{constructor(e,t){super(e,Object.assign({},ad.defaultOptions,t)),this.onCollapseExpand=n=>z6(this,void 0,void 0,function*(){if(!this.validate(n))return;const{target:i}=n;if(!S6(i))return;const a=i.id,{model:s,graph:o}=this.context,l=s.getElementDataById(a);if(!l)return!1;const{onCollapse:u,onExpand:c,animation:h}=this.options;_i(l)?(yield o.expandElement(a,h),c==null||c(a)):(yield o.collapseElement(a,h),u==null||u(a))}),this.bindEvents()}update(e){this.unbindEvents(),super.update(e),this.bindEvents()}bindEvents(){const{graph:e}=this.context,{trigger:t}=this.options;e.on(`node:${t}`,this.onCollapseExpand),e.on(`combo:${t}`,this.onCollapseExpand)}unbindEvents(){const{graph:e}=this.context,{trigger:t}=this.options;e.off(`node:${t}`,this.onCollapseExpand),e.off(`combo:${t}`,this.onCollapseExpand)}validate(e){if(this.destroyed)return!1;const{enable:t}=this.options;return pt(t)?t(e):!!t}destroy(){this.unbindEvents(),super.destroy()}}ad.defaultOptions={enable:!0,animation:!0,trigger:We.DBLCLICK};var sd={},F6=function(r){return r=r||"g",sd[r]?sd[r]+=1:sd[r]=1,r+sd[r]},od=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})};const j6="g6-create-edge-assist-edge-id",ld="g6-create-edge-assist-node-id";class ud extends Ni{constructor(e,t){super(e,Object.assign({},ud.defaultOptions,t)),this.drop=n=>od(this,void 0,void 0,function*(){const{targetType:i}=n;["combo","node"].includes(i)&&this.source?yield this.handleCreateEdge(n):yield this.cancelEdge()}),this.handleCreateEdge=n=>od(this,void 0,void 0,function*(){var i,a,s;if(!this.validate(n))return;const{graph:o,canvas:l,batch:u,element:c}=this.context,{style:h}=this.options;if(this.source){this.createEdge(n),yield this.cancelEdge();return}u.startBatch(),l.setCursor("crosshair"),this.source=this.getSelectedNodeIDs([n.target.id])[0];const f=o.getElementData(this.source);o.addNodeData([{id:ld,style:{visibility:"hidden",ports:[{key:"port-1",placement:[.5,.5]}],x:(i=f.style)===null||i===void 0?void 0:i.x,y:(a=f.style)===null||a===void 0?void 0:a.y}}]),o.addEdgeData([{id:j6,source:this.source,target:ld,style:Object.assign({pointerEvents:"none"},h)}]),yield(s=c.draw({animation:!1}))===null||s===void 0?void 0:s.finished}),this.updateAssistEdge=n=>od(this,void 0,void 0,function*(){var i;if(!this.source)return;const{model:a,element:s}=this.context;a.translateNodeTo(ld,[n.canvas.x,n.canvas.y]),yield(i=s.draw({animation:!1,silence:!0}))===null||i===void 0?void 0:i.finished}),this.createEdge=n=>{var i,a;const{graph:s}=this.context,{style:o,onFinish:l,onCreate:u}=this.options;if(((i=n.target)===null||i===void 0?void 0:i.id)===void 0||this.source===void 0)return;const h=(a=this.getSelectedNodeIDs([n.target.id]))===null||a===void 0?void 0:a[0],f=`${this.source}-${h}-${F6()}`,d=u({id:f,source:this.source,target:h,style:o});s.addEdgeData([d]),l(d)},this.cancelEdge=()=>od(this,void 0,void 0,function*(){var n;if(!this.source)return;const{graph:i,element:a,batch:s}=this.context;i.removeNodeData([ld]),this.source=void 0,yield(n=a.draw({animation:!1}))===null||n===void 0?void 0:n.finished,s.endBatch()}),this.bindEvents()}update(e){super.update(e),this.bindEvents()}bindEvents(){const{graph:e}=this.context,{trigger:t}=this.options;this.unbindEvents(),t==="click"?(e.on($i.CLICK,this.handleCreateEdge),e.on(No.CLICK,this.handleCreateEdge),e.on(ms.CLICK,this.cancelEdge),e.on(tf.CLICK,this.cancelEdge)):(e.on($i.DRAG_START,this.handleCreateEdge),e.on(No.DRAG_START,this.handleCreateEdge),e.on(We.POINTER_UP,this.drop)),e.on(We.POINTER_MOVE,this.updateAssistEdge)}getSelectedNodeIDs(e){return Array.from(new Set(this.context.graph.getElementDataByState("node",this.options.state).map(t=>t.id).concat(e)))}validate(e){if(this.destroyed)return!1;const{enable:t}=this.options;return pt(t)?t(e):!!t}unbindEvents(){const{graph:e}=this.context;e.off($i.CLICK,this.handleCreateEdge),e.off(No.CLICK,this.handleCreateEdge),e.off(ms.CLICK,this.cancelEdge),e.off(tf.CLICK,this.cancelEdge),e.off($i.DRAG_START,this.handleCreateEdge),e.off(No.DRAG_START,this.handleCreateEdge),e.off(We.POINTER_UP,this.drop),e.off(We.POINTER_MOVE,this.updateAssistEdge)}destroy(){this.unbindEvents(),super.destroy()}}ud.defaultOptions={animation:!0,enable:!0,style:{},trigger:"drag",onCreate:r=>r,onFinish:()=>{}};function G6(r,e,t){var n;return function(){var i=this,a=arguments,s=function(){n=null,t||r.apply(i,a)},o=t&&!n;clearTimeout(n),n=setTimeout(s,e),o&&r.apply(i,a)}}var mc=G6,Jw=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})};class cd extends Ni{constructor(e,t){super(e,Object.assign({},cd.defaultOptions,t)),this.isDragging=!1,this.onDragStart=n=>{this.validate(n)&&(this.isDragging=!0,this.context.canvas.setCursor("grabbing"))},this.onDrag=n=>{if(!this.isDragging)return;const{x:i,y:a}=n.movement;i|a&&this.translate([i,a],!1)},this.onDragEnd=()=>{var n,i;this.isDragging=!1,this.context.canvas.setCursor(this.defaultCursor),(i=(n=this.options).onFinish)===null||i===void 0||i.call(n)},this.invokeOnFinish=mc(()=>{var n,i;(i=(n=this.options).onFinish)===null||i===void 0||i.call(n)},300),this.shortcut=new Bl(e.graph),this.bindEvents(),this.defaultCursor=this.context.canvas.getConfig().cursor||"default"}update(e){this.unbindEvents(),super.update(e),this.bindEvents()}bindEvents(){const{trigger:e}=this.options;if(nr(e)){const{up:t=[],down:n=[],left:i=[],right:a=[]}=e;this.shortcut.bind(t,s=>this.onTranslate([0,1],s)),this.shortcut.bind(n,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:t}=this.context;t.on(We.DRAG_START,this.onDragStart),t.on(We.DRAG,this.onDrag),t.on(We.DRAG_END,this.onDragEnd)}}onTranslate(e,t){return Jw(this,void 0,void 0,function*(){if(!this.validate(t))return;const{sensitivity:n}=this.options,i=n*-1;yield this.translate(xs(e,i),this.options.animation),this.invokeOnFinish()})}translate(e,t){return Jw(this,void 0,void 0,function*(){e=this.clampByDirection(e),e=this.clampByRange(e),yield this.context.graph.translateBy(e,t)})}clampByDirection([e,t]){const{direction:n}=this.options;return n==="x"?t=0:n==="y"&&(e=0),[e,t]}clampByRange([e,t]){const{viewport:n,canvas:i}=this.context,[a,s]=i.getSize(),[o,l,u,c]=Ja(this.options.range),h=[s*o,a*l,s*u,a*c],f=Ws(Rp(n.getCanvasCenter()),h),d=On(n.getViewportCenter(),[e,t,0]);if(!Pa(d,f)){const{min:[v,g],max:[p,m]}=f;(d[0]0||d[0]>p&&e<0)&&(e=0),(d[1]0||d[1]>m&&t<0)&&(t=0)}return[e,t]}validate(e){if(this.destroyed)return!1;const{enable:t}=this.options;return typeof t=="function"?t(e):!!t}unbindEvents(){this.shortcut.unbindAll();const{graph:e}=this.context;e.off(We.DRAG_START,this.onDragStart),e.off(We.DRAG,this.onDrag),e.off(We.DRAG_END,this.onDragEnd)}destroy(){this.shortcut.destroy(),this.unbindEvents(),this.context.canvas.setCursor(this.defaultCursor),super.destroy()}}cd.defaultOptions={enable:r=>"targetType"in r?r.targetType==="canvas":!0,sensitivity:10,direction:"both",range:1/0};var qw=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})};class yc extends Ni{constructor(e,t){super(e,Object.assign({},yc.defaultOptions,t)),this.enable=!1,this.enableElements=["node","combo"],this.target=[],this.shadowOrigin=[0,0],this.hiddenEdges=[],this.isDragging=!1,this.onDrop=n=>qw(this,void 0,void 0,function*(){var i;if(this.options.dropEffect!=="link")return;const{model:a,element:s}=this.context,o=n.target.id;this.target.forEach(l=>{const u=a.getParentData(l,An);u&&Re(u)===o&&a.refreshComboData(o),a.setParent(l,o,An)}),yield(i=s==null?void 0:s.draw({animation:!0}))===null||i===void 0?void 0:i.finished}),this.setCursor=n=>{if(this.isDragging)return;const{type:i}=n,{canvas:a}=this.context,{cursor:s}=this.options;i===We.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(e){this.unbindEvents(),super.update(e),this.bindEvents()}bindEvents(){const{graph:e,canvas:t}=this.context,n=t.getLayer().getContextService().$canvas;n&&(n.addEventListener("blur",this.onDragEnd),n.addEventListener("contextmenu",this.onDragEnd)),this.enableElements.forEach(i=>{e.on(`${i}:${We.DRAG_START}`,this.onDragStart),e.on(`${i}:${We.DRAG}`,this.onDrag),e.on(`${i}:${We.DRAG_END}`,this.onDragEnd),e.on(`${i}:${We.POINTER_ENTER}`,this.setCursor),e.on(`${i}:${We.POINTER_LEAVE}`,this.setCursor)}),["link"].includes(this.options.dropEffect)&&(e.on(No.DROP,this.onDrop),e.on(ms.DROP,this.onDrop))}getSelectedNodeIDs(e){return Array.from(new Set(this.context.graph.getElementDataByState("node",this.options.state).map(t=>t.id).concat(e)))}getDelta(e){const t=this.context.graph.getZoom();return Sa([e.dx,e.dy],t)}onDragStart(e){var t;if(this.enable=this.validate(e),!this.enable)return;const{batch:n,canvas:i}=this.context;i.setCursor(((t=this.options.cursor)===null||t===void 0?void 0:t.grabbing)||"grabbing"),this.isDragging=!0,n.startBatch(),this.target=this.getSelectedNodeIDs([e.target.id]),this.hideEdge(),this.context.graph.frontElement(this.target),this.options.shadow&&this.createShadow(this.target)}onDrag(e){if(!this.enable)return;const t=this.getDelta(e);this.options.shadow?this.moveShadow(t):this.moveElement(this.target,t)}onDragEnd(){var e,t,n;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,u]=On([+s,+o],this.shadowOrigin);this.moveElement(this.target,[l,u])}this.showEdges(),(t=(e=this.options).onFinish)===null||t===void 0||t.call(e,this.target);const{batch:i,canvas:a}=this.context;i.endBatch(),a.setCursor(((n=this.options.cursor)===null||n===void 0?void 0:n.grab)||"grab"),this.isDragging=!1,this.target=[]}validate(e){if(this.destroyed)return!1;const{enable:t}=this.options;return pt(t)?t(e):!!t}moveElement(e,t){return qw(this,void 0,void 0,function*(){const{graph:n,model:i}=this.context,{dropEffect:a}=this.options;a==="move"&&e.forEach(s=>i.refreshComboData(s)),n.translateElementBy(Object.fromEntries(e.map(s=>[s,t])),!1)})}moveShadow(e){if(!this.shadow)return;const{x:t=0,y:n=0}=this.shadow.attributes,[i,a]=e;this.shadow.attr({x:+t+i,y:+n+a})}createShadow(e){const t=br(this.options,"shadow"),n=Ju(e.map(u=>this.context.element.getElement(u).getBounds())),[i,a]=n.min;this.shadowOrigin=[i,a];const[s,o]=Hs(n),l={width:s,height:o,x:i,y:a};this.shadow?this.shadow.attr(Object.assign(Object.assign(Object.assign({},t),l),{visibility:"visible"})):(this.shadow=new wa({style:Object.assign(Object.assign(Object.assign({$layer:"transient"},t),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:e,shadow:t}=this.options;if(e==="none"||t)return;const{graph:n}=this.context;e==="all"?this.hiddenEdges=n.getEdgeData().map(Re):this.hiddenEdges=Array.from(new Set(this.target.map(i=>n.getRelatedEdgesData(i,e).map(Re)).flat())),n.hideElement(this.hiddenEdges)}unbindEvents(){const{graph:e,canvas:t}=this.context,n=t.getLayer().getContextService().$canvas;n&&(n.removeEventListener("blur",this.onDragEnd),n.removeEventListener("contextmenu",this.onDragEnd)),this.enableElements.forEach(i=>{e.off(`${i}:${We.DRAG_START}`,this.onDragStart),e.off(`${i}:${We.DRAG}`,this.onDrag),e.off(`${i}:${We.DRAG_END}`,this.onDragEnd),e.off(`${i}:${We.POINTER_ENTER}`,this.setCursor),e.off(`${i}:${We.POINTER_LEAVE}`,this.setCursor)}),e.off(`combo:${We.DROP}`,this.onDrop),e.off(`canvas:${We.DROP}`,this.onDrop)}destroy(){var e;this.unbindEvents(),(e=this.shadow)===null||e===void 0||e.destroy(),super.destroy()}}yc.defaultOptions={animation:!0,enable:r=>["node","combo"].includes(r.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 H6="*",X6=function(){function r(){this._events={}}return r.prototype.on=function(e,t,n){return this._events[e]||(this._events[e]=[]),this._events[e].push({callback:t,once:!!n}),this},r.prototype.once=function(e,t){return this.on(e,t,!0)},r.prototype.emit=function(e){for(var t=this,n=[],i=1;i{e.has(s.id)||(e.add(s.id),r.push(s))})}return!1}function fd(r,e,t,n){if(t(r))return!0;e.add(r.id);for(const a of n(r.id))if(!e.has(a.id)&&fd(a,e,t,n))return!0;return!1}const $w=()=>!0;class W6{constructor(e){Jn(this,"graph");Jn(this,"nodeFilter");Jn(this,"edgeFilter");Jn(this,"cacheEnabled");Jn(this,"inEdgesMap",new Map);Jn(this,"outEdgesMap",new Map);Jn(this,"bothEdgesMap",new Map);Jn(this,"allNodesMap",new Map);Jn(this,"allEdgesMap",new Map);Jn(this,"clearCache",()=>{this.inEdgesMap.clear(),this.outEdgesMap.clear(),this.bothEdgesMap.clear(),this.allNodesMap.clear(),this.allEdgesMap.clear()});Jn(this,"refreshCache",()=>{this.clearCache(),this.updateCache(this.graph.getAllNodes().map(e=>e.id))});Jn(this,"updateCache",e=>{const t=new Set;e.forEach(n=>{const i=this.bothEdgesMap.get(n);if(i&&i.forEach(a=>t.add(a.id)),!this.hasNode(n))this.inEdgesMap.delete(n),this.outEdgesMap.delete(n),this.bothEdgesMap.delete(n),this.allNodesMap.delete(n);else{const a=this.graph.getRelatedEdges(n,"in").filter(this.edgeFilter),s=this.graph.getRelatedEdges(n,"out").filter(this.edgeFilter),o=Array.from(new Set([...a,...s]));o.forEach(l=>t.add(l.id)),this.inEdgesMap.set(n,a),this.outEdgesMap.set(n,s),this.bothEdgesMap.set(n,o),this.allNodesMap.set(n,this.graph.getNode(n))}}),t.forEach(n=>{this.hasEdge(n)?this.allEdgesMap.set(n,this.graph.getEdge(n)):this.allEdgesMap.delete(n)})});Jn(this,"handleGraphChanged",e=>{const t=new Set;e.changes.forEach(n=>{switch(n.type){case"NodeAdded":t.add(n.value.id);break;case"NodeDataUpdated":t.add(n.id);break;case"EdgeAdded":t.add(n.value.source),t.add(n.value.target);break;case"EdgeUpdated":(n.propertyName==="source"||n.propertyName==="target")&&(t.add(n.oldValue),t.add(n.newValue));break;case"EdgeDataUpdated":if(e.graph.hasEdge(n.id)){const i=e.graph.getEdge(n.id);t.add(i.source),t.add(i.target)}break;case"EdgeRemoved":t.add(n.value.source),t.add(n.value.target);break;case"NodeRemoved":t.add(n.value.id);break;default:break}}),this.updateCache(t)});this.graph=e.graph;const t=e.nodeFilter||$w,n=e.edgeFilter||$w;this.nodeFilter=t,this.edgeFilter=i=>{const{source:a,target:s}=this.graph.getEdgeDetail(i.id);return!t(a)||!t(s)?!1:n(i,a,s)},e.cache==="auto"?(this.cacheEnabled=!0,this.startAutoCache()):e.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(e){this.getNode(e)}hasNode(e){if(!this.graph.hasNode(e))return!1;const t=this.graph.getNode(e);return this.nodeFilter(t)}areNeighbors(e,t){return this.checkNodeExistence(e),this.getNeighbors(t).some(n=>n.id===e)}getNode(e){const t=this.graph.getNode(e);if(!this.nodeFilter(t))throw new Error("Node not found for id: "+e);return t}getRelatedEdges(e,t){return this.checkNodeExistence(e),this.cacheEnabled?t==="in"?this.inEdgesMap.get(e):t==="out"?this.outEdgesMap.get(e):this.bothEdgesMap.get(e):this.graph.getRelatedEdges(e,t).filter(this.edgeFilter)}getDegree(e,t){return this.getRelatedEdges(e,t).length}getSuccessors(e){const n=this.getRelatedEdges(e,"out").map(i=>this.getNode(i.target));return Array.from(new Set(n))}getPredecessors(e){const n=this.getRelatedEdges(e,"in").map(i=>this.getNode(i.source));return Array.from(new Set(n))}getNeighbors(e){const t=this.getPredecessors(e),n=this.getSuccessors(e);return Array.from(new Set([...t,...n]))}hasEdge(e){if(!this.graph.hasEdge(e))return!1;const t=this.graph.getEdge(e);return this.edgeFilter(t)}getEdge(e){const t=this.graph.getEdge(e);if(!this.edgeFilter(t))throw new Error("Edge not found for id: "+e);return t}getEdgeDetail(e){const t=this.getEdge(e);return{edge:t,source:this.getNode(t.source),target:this.getNode(t.target)}}hasTreeStructure(e){return this.graph.hasTreeStructure(e)}getRoots(e){return this.graph.getRoots(e).filter(this.nodeFilter)}getChildren(e,t){return this.checkNodeExistence(e),this.graph.getChildren(e,t).filter(this.nodeFilter)}getParent(e,t){this.checkNodeExistence(e);const n=this.graph.getParent(e,t);return!n||!this.nodeFilter(n)?null:n}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(e,t,n="out"){const i={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[n];C0([this.getNode(e)],new Set,t,i)}dfs(e,t,n="out"){const i={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[n];fd(this.getNode(e),new Set,t,i)}}class gr extends hd{constructor(t){super();Jn(this,"nodeMap",new Map);Jn(this,"edgeMap",new Map);Jn(this,"inEdgesMap",new Map);Jn(this,"outEdgesMap",new Map);Jn(this,"bothEdgesMap",new Map);Jn(this,"treeIndices",new Map);Jn(this,"changes",[]);Jn(this,"batchCount",0);Jn(this,"onChanged",()=>{});Jn(this,"batch",t=>{this.batchCount+=1,t(),this.batchCount-=1,this.batchCount||this.commit()});t&&(t.nodes&&this.addNodes(t.nodes),t.edges&&this.addEdges(t.edges),t.tree&&this.addTree(t.tree),t.onChanged&&(this.onChanged=t.onChanged))}commit(){const t=this.changes;this.changes=[];const n={graph:this,changes:t};this.emit("changed",n),this.onChanged(n)}reduceChanges(t){let n=[];return t.forEach(i=>{switch(i.type){case"NodeRemoved":{let a=!1;n=n.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||n.push(i);break}case"EdgeRemoved":{let a=!1;n=n.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||n.push(i);break}case"NodeDataUpdated":case"EdgeDataUpdated":case"EdgeUpdated":{const a=n.findIndex(o=>o.type===i.type&&o.id===i.id&&(i.propertyName===void 0||o.propertyName===i.propertyName)),s=n[a];s?i.propertyName!==void 0?s.newValue=i.newValue:(n.splice(a,1),n.push(i)):n.push(i);break}case"TreeStructureDetached":{n=n.filter(a=>a.type==="TreeStructureAttached"||a.type==="TreeStructureChanged"?a.treeKey!==i.treeKey:!0),n.push(i);break}case"TreeStructureChanged":{const a=n.find(s=>s.type==="TreeStructureChanged"&&s.treeKey===i.treeKey&&s.nodeId===i.nodeId);a?a.newParentId=i.newParentId:n.push(i);break}default:n.push(i);break}}),n}checkNodeExistence(t){this.getNode(t)}hasNode(t){return this.nodeMap.has(t)}areNeighbors(t,n){return this.getNeighbors(n).some(i=>i.id===t)}getNode(t){const n=this.nodeMap.get(t);if(!n)throw new Error("Node not found for id: "+t);return n}getRelatedEdges(t,n){if(this.checkNodeExistence(t),n==="in"){const i=this.inEdgesMap.get(t);return Array.from(i)}else if(n==="out"){const i=this.outEdgesMap.get(t);return Array.from(i)}else{const i=this.bothEdgesMap.get(t);return Array.from(i)}}getDegree(t,n){return this.getRelatedEdges(t,n).length}getSuccessors(t){const i=this.getRelatedEdges(t,"out").map(a=>this.getNode(a.target));return Array.from(new Set(i))}getPredecessors(t){const i=this.getRelatedEdges(t,"in").map(a=>this.getNode(a.source));return Array.from(new Set(i))}getNeighbors(t){const n=this.getPredecessors(t),i=this.getSuccessors(t);return Array.from(new Set([...n,...i]))}doAddNode(t){if(this.hasNode(t.id))throw new Error("Node already exists: "+t.id);this.nodeMap.set(t.id,t),this.inEdgesMap.set(t.id,new Set),this.outEdgesMap.set(t.id,new Set),this.bothEdgesMap.set(t.id,new Set),this.treeIndices.forEach(n=>{n.childrenMap.set(t.id,new Set)}),this.changes.push({type:"NodeAdded",value:t})}addNodes(t){this.batch(()=>{for(const n of t)this.doAddNode(n)})}addNode(t){this.addNodes([t])}doRemoveNode(t){const n=this.getNode(t),i=this.bothEdgesMap.get(t);i==null||i.forEach(a=>this.doRemoveEdge(a.id)),this.nodeMap.delete(t),this.treeIndices.forEach(a=>{var o,l;(o=a.childrenMap.get(t))==null||o.forEach(u=>{a.parentMap.delete(u.id)});const s=a.parentMap.get(t);s&&((l=a.childrenMap.get(s.id))==null||l.delete(n)),a.parentMap.delete(t),a.childrenMap.delete(t)}),this.bothEdgesMap.delete(t),this.inEdgesMap.delete(t),this.outEdgesMap.delete(t),this.changes.push({type:"NodeRemoved",value:n})}removeNodes(t){this.batch(()=>{t.forEach(n=>this.doRemoveNode(n))})}removeNode(t){this.removeNodes([t])}updateNodeDataProperty(t,n,i){const a=this.getNode(t);this.batch(()=>{const s=a.data[n],o=i;a.data[n]=o,this.changes.push({type:"NodeDataUpdated",id:t,propertyName:n,oldValue:s,newValue:o})})}mergeNodeData(t,n){this.batch(()=>{Object.entries(n).forEach(([i,a])=>{this.updateNodeDataProperty(t,i,a)})})}updateNodeData(...t){const n=t[0],i=this.getNode(n);if(typeof t[1]=="string"){this.updateNodeDataProperty(n,t[1],t[2]);return}let a;if(typeof t[1]=="function"){const s=t[1];a=s(i.data)}else typeof t[1]=="object"&&(a=t[1]);this.batch(()=>{const s=i.data,o=a;i.data=a,this.changes.push({type:"NodeDataUpdated",id:n,oldValue:s,newValue:o})})}checkEdgeExistence(t){if(!this.hasEdge(t))throw new Error("Edge not found for id: "+t)}hasEdge(t){return this.edgeMap.has(t)}getEdge(t){return this.checkEdgeExistence(t),this.edgeMap.get(t)}getEdgeDetail(t){const n=this.getEdge(t);return{edge:n,source:this.getNode(n.source),target:this.getNode(n.target)}}doAddEdge(t){if(this.hasEdge(t.id))throw new Error("Edge already exists: "+t.id);this.checkNodeExistence(t.source),this.checkNodeExistence(t.target),this.edgeMap.set(t.id,t);const n=this.inEdgesMap.get(t.target),i=this.outEdgesMap.get(t.source),a=this.bothEdgesMap.get(t.source),s=this.bothEdgesMap.get(t.target);n.add(t),i.add(t),a.add(t),s.add(t),this.changes.push({type:"EdgeAdded",value:t})}addEdges(t){this.batch(()=>{for(const n of t)this.doAddEdge(n)})}addEdge(t){this.addEdges([t])}doRemoveEdge(t){const n=this.getEdge(t),i=this.outEdgesMap.get(n.source),a=this.inEdgesMap.get(n.target),s=this.bothEdgesMap.get(n.source),o=this.bothEdgesMap.get(n.target);i.delete(n),a.delete(n),s.delete(n),o.delete(n),this.edgeMap.delete(t),this.changes.push({type:"EdgeRemoved",value:n})}removeEdges(t){this.batch(()=>{t.forEach(n=>this.doRemoveEdge(n))})}removeEdge(t){this.removeEdges([t])}updateEdgeSource(t,n){const i=this.getEdge(t);this.checkNodeExistence(n);const a=i.source,s=n;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=n,this.batch(()=>{this.changes.push({type:"EdgeUpdated",id:t,propertyName:"source",oldValue:a,newValue:s})})}updateEdgeTarget(t,n){const i=this.getEdge(t);this.checkNodeExistence(n);const a=i.target,s=n;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=n,this.batch(()=>{this.changes.push({type:"EdgeUpdated",id:t,propertyName:"target",oldValue:a,newValue:s})})}updateEdgeDataProperty(t,n,i){const a=this.getEdge(t);this.batch(()=>{const s=a.data[n],o=i;a.data[n]=o,this.changes.push({type:"EdgeDataUpdated",id:t,propertyName:n,oldValue:s,newValue:o})})}updateEdgeData(...t){const n=t[0],i=this.getEdge(n);if(typeof t[1]=="string"){this.updateEdgeDataProperty(n,t[1],t[2]);return}let a;if(typeof t[1]=="function"){const s=t[1];a=s(i.data)}else typeof t[1]=="object"&&(a=t[1]);this.batch(()=>{const s=i.data,o=a;i.data=a,this.changes.push({type:"EdgeDataUpdated",id:n,oldValue:s,newValue:o})})}mergeEdgeData(t,n){this.batch(()=>{Object.entries(n).forEach(([i,a])=>{this.updateEdgeDataProperty(t,i,a)})})}checkTreeExistence(t){if(!this.hasTreeStructure(t))throw new Error("Tree structure not found for treeKey: "+t)}hasTreeStructure(t){return this.treeIndices.has(t)}attachTreeStructure(t){this.treeIndices.has(t)||(this.treeIndices.set(t,{parentMap:new Map,childrenMap:new Map}),this.batch(()=>{this.changes.push({type:"TreeStructureAttached",treeKey:t})}))}detachTreeStructure(t){this.checkTreeExistence(t),this.treeIndices.delete(t),this.batch(()=>{this.changes.push({type:"TreeStructureDetached",treeKey:t})})}addTree(t,n){this.batch(()=>{this.attachTreeStructure(n);const i=[],a=Array.isArray(t)?t:[t];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,n)})})})}getRoots(t){return this.checkTreeExistence(t),this.getAllNodes().filter(n=>!this.getParent(n.id,t))}getChildren(t,n){this.checkNodeExistence(t),this.checkTreeExistence(n);const a=this.treeIndices.get(n).childrenMap.get(t);return Array.from(a||[])}getParent(t,n){return this.checkNodeExistence(t),this.checkTreeExistence(n),this.treeIndices.get(n).parentMap.get(t)||null}getAncestors(t,n){const i=[];let a=this.getNode(t),s;for(;s=this.getParent(a.id,n);)i.push(s),a=s;return i}setParent(t,n,i){var c,h;this.checkTreeExistence(i);const a=this.treeIndices.get(i),s=this.getNode(t),o=a.parentMap.get(t);if((o==null?void 0:o.id)===n)return;if(n===void 0){o&&((c=a.childrenMap.get(o.id))==null||c.delete(s)),a.parentMap.delete(t);return}const l=this.getNode(n);a.parentMap.set(t,l),o&&((h=a.childrenMap.get(o.id))==null||h.delete(s));let u=a.childrenMap.get(l.id);u||(u=new Set,a.childrenMap.set(l.id,u)),u.add(s),this.batch(()=>{this.changes.push({type:"TreeStructureChanged",treeKey:i,nodeId:t,oldParentId:o==null?void 0:o.id,newParentId:l.id})})}dfsTree(t,n,i){const a=s=>this.getChildren(s,i);return fd(this.getNode(t),new Set,n,a)}bfsTree(t,n,i){const a=s=>this.getChildren(s,i);return C0([this.getNode(t)],new Set,n,a)}getAllNodes(){return Array.from(this.nodeMap.values())}getAllEdges(){return Array.from(this.edgeMap.values())}bfs(t,n,i="out"){const a={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[i];return C0([this.getNode(t)],new Set,n,a)}dfs(t,n,i="out"){const a={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[i];return fd(this.getNode(t),new Set,n,a)}clone(){const t=this.getAllNodes().map(a=>jy(mu({},a),{data:mu({},a.data)})),n=this.getAllEdges().map(a=>jy(mu({},a),{data:mu({},a.data)})),i=new gr({nodes:t,edges:n});return this.treeIndices.forEach(({parentMap:a,childrenMap:s},o)=>{const l=new Map;a.forEach((c,h)=>{l.set(h,i.getNode(c.id))});const u=new Map;s.forEach((c,h)=>{u.set(h,new Set(Array.from(c).map(f=>i.getNode(f.id))))}),i.treeIndices.set(o,{parentMap:l,childrenMap:u})}),i}toJSON(){return JSON.stringify({nodes:this.getAllNodes(),edges:this.getAllEdges()})}createView(t){return new W6(mu({graph:this},t))}}class N0{constructor(e,t){this.context=e,this.options=t||{}}}var V6=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})},Y6=function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i{const a=i.data._isCombo?n.combos:n.nodes,{x:s,y:o,z:l=0}=i.data;a==null||a.push({id:i.id,style:{x:s,y:o,z:l}})}),t.forEach(i=>{const{id:a,source:s,target:o,data:{points:l=[],controlPoints:u=l.slice(1,l.length-1)}}=i;n.edges.push({id:a,source:s,target:o,style:Object.assign({},u!=null&&u.length?{controlPoints:u.map(zr)}:{})})}),n}function Z6(r,e){class t extends N0{constructor(i,a){if(super(i,a),this.instance=new r({}),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 dd(l)}}}execute(i,a){return V6(this,void 0,void 0,function*(){return dd(yield this.instance.execute(this.graphData2LayoutModel(i),this.transformOptions(ri({},this.options,a))))})}transformOptions(i){const{onTick:a}=i;return a&&(i.onTick=s=>a(dd(s))),i}graphData2LayoutModel(i){const{nodes:a=[],edges:s=[],combos:o=[]}=i,l=a.map(d=>{const v=Re(d),{data:g,style:p,combo:m}=d,b=Y6(d,["data","style","combo"]),x={id:v,data:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},g),{data:g}),m?{parentId:m}:{}),{style:p}),b)};return p!=null&&p.x&&Object.assign(x.data,{x:p.x}),p!=null&&p.y&&Object.assign(x.data,{y:p.y}),p!=null&&p.z&&Object.assign(x.data,{z:p.z}),x}),u=new Map(l.map(d=>[d.id,d])),c=s.filter(d=>{const{source:v,target:g}=d;return u.has(v)&&u.has(g)}).map(d=>{const{source:v,target:g,data:p,style:m}=d;return{id:Re(d),source:v,target:g,data:Object.assign({},p),style:Object.assign({},m)}}),h=o.map(d=>({id:Re(d),data:Object.assign({_isCombo:!0},d.data),style:Object.assign({},d.style)})),f=new gr({nodes:[...l,...h],edges:c});return e.model.model.hasTreeStructure(An)&&(f.attachTreeStructure(An),l.forEach(d=>{const v=e.model.model.getParent(d.id,An);v&&f.hasNode(v.id)&&f.setParent(d.id,v.id,An)})),f}}return t}function _0(r,e,...t){if(e in r)return r[e](...t);if("instance"in r){const n=r.instance;if(e in n)return n[e](...t)}return null}function e2(r,e){if(e in r)return r[e];if("instance"in r){const t=r.instance;if(e in t)return t[e]}return null}var K6=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})};class Q6 extends yc{get forceLayoutInstance(){return this.context.layout.getLayoutInstance().find(e=>["d3-force","d3-force-3d"].includes(e==null?void 0:e.id))}validate(e){return this.context.layout?this.forceLayoutInstance?super.validate(e):(wi.warn("DragElementForce only works with d3-force or d3-force-3d layout"),!1):!1}moveElement(e,t){return K6(this,void 0,void 0,function*(){const n=this.forceLayoutInstance;this.context.graph.getNodeData(e).forEach((i,a)=>{const{x:s=0,y:o=0}=i.style||{};n&&_0(n,"setFixedPosition",e[a],[...jt([+s,+o],t)])})})}onDragStart(e){if(this.enable=this.validate(e),!this.enable)return;this.target=this.getSelectedNodeIDs([e.target.id]),this.hideEdge(),this.context.graph.frontElement(this.target);const t=this.forceLayoutInstance;t&&e2(t,"simulation").alphaTarget(.3).restart(),this.context.graph.getNodeData(this.target).forEach(n=>{const{x:i=0,y:a=0}=n.style||{};t&&_0(t,"setFixedPosition",Re(n),[+i,+a])})}onDrag(e){if(!this.enable)return;const t=this.getDelta(e);this.moveElement(this.target,t)}onDragEnd(){const e=this.forceLayoutInstance;e&&e2(e,"simulation").alphaTarget(0),this.context.graph.getNodeData(this.target).forEach(t=>{e&&_0(e,"setFixedPosition",Re(t),[null,null,null])})}}var t2=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})};class vd extends Ni{constructor(e,t){super(e,Object.assign({},vd.defaultOptions,t)),this.isZoomEvent=n=>!!(n.data&&"scale"in n.data),this.relatedEdgeToUpdate=new Set,this.zoom=this.context.graph.getZoom(),this.fixElementSize=n=>t2(this,void 0,void 0,function*(){if(!this.validate(n))return;const{graph:i}=this.context,{state:a,nodeFilter:s,edgeFilter:o,comboFilter:l}=this.options,u=(a?i.getElementDataByState("node",a):i.getNodeData()).filter(s),c=(a?i.getElementDataByState("edge",a):i.getEdgeData()).filter(o),h=(a?i.getElementDataByState("combo",a):i.getComboData()).filter(l),f=this.isZoomEvent(n)?this.zoom=Math.max(.01,Math.min(n.data.scale,10)):this.zoom,d=[...u,...h];d.length>0&&d.forEach(v=>this.fixNodeLike(v,f)),this.updateRelatedEdges(),c.length>0&&c.forEach(v=>this.fixEdge(v,f))}),this.cachedStyles=new Map,this.getOriginalFieldValue=(n,i,a)=>{var s;const o=this.cachedStyles.get(n)||[],l=((s=o.find(u=>u.shape===i))===null||s===void 0?void 0:s.style)||{};return a in l||(l[a]=i.attributes[a],this.cachedStyles.set(n,[...o.filter(u=>u.shape!==i),{shape:i,style:l}])),l[a]},this.scaleEntireElement=(n,i,a)=>{i.setLocalScale(1/a);const s=this.cachedStyles.get(n)||[];s.push({shape:i}),this.cachedStyles.set(n,s)},this.scaleSpecificShapes=(n,i,a)=>{const s=eD(n);(Array.isArray(a)?a:[a]).forEach(l=>{const{shape:u,fields:c}=l,h=typeof u=="function"?u(s):n.getShape(u);if(h){if(!c){this.scaleEntireElement(n.id,h,i);return}c.forEach(f=>{const d=this.getOriginalFieldValue(n.id,h,f);ht(d)&&(h.style[f]=d/i)})}})},this.skipIfExceedViewport=n=>{const{viewport:i}=this.context;return!(i!=null&&i.isInViewport(n.getRenderBounds(),!1,30))},this.fixNodeLike=(n,i)=>{const a=Re(n),{element:s,model:o}=this.context,l=s.getElement(a);if(!l||this.skipIfExceedViewport(l))return;o.getRelatedEdgesData(a).forEach(h=>this.relatedEdgeToUpdate.add(Re(h)));const c=this.options[l.type];if(!c){this.scaleEntireElement(a,l,i);return}this.scaleSpecificShapes(l,i,c)},this.fixEdge=(n,i)=>{const a=Re(n),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:n}=this.context;this.relatedEdgeToUpdate.size>0&&this.relatedEdgeToUpdate.forEach(i=>{const a=n.getElement(i);a==null||a.update({})}),this.relatedEdgeToUpdate.clear()},this.resetTransform=n=>t2(this,void 0,void 0,function*(){var i;!((i=n.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(ts(s))a.setLocalScale(1);else{if(this.options.state)return;Object.entries(s).forEach(([o,l])=>a.style[o]=l)}})});const{graph:e,element:t}=this.context,n=Object.keys(Object.fromEntries(this.cachedStyles)).filter(i=>i&&e.getElementType(i)==="node");if(n.length>0){const i=new Set;n.forEach(a=>{e.getRelatedEdgesData(a).forEach(s=>i.add(Re(s)))}),i.forEach(a=>{const s=t==null?void 0:t.getElement(a);s==null||s.update({})})}}}bindEvents(){const{graph:e}=this.context;e.on(rt.AFTER_DRAW,this.resetTransform),e.on(rt.AFTER_TRANSFORM,this.fixElementSize)}unbindEvents(){const{graph:e}=this.context;e.off(rt.AFTER_DRAW,this.resetTransform),e.off(rt.AFTER_TRANSFORM,this.fixElementSize)}validate(e){if(this.destroyed)return!1;const{enable:t}=this.options;return pt(t)?t(e):!!t}destroy(){this.unbindEvents(),super.destroy()}}vd.defaultOptions={enable:r=>r.data.scale<1,nodeFilter:()=>!0,edgeFilter:()=>!0,comboFilter:()=>!0,edge:[{shape:"key",fields:["lineWidth"]},{shape:"halo",fields:["lineWidth"]},{shape:"label"}],reset:!1};var J6=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})};class gd extends Ni{constructor(e,t){super(e,Object.assign({},gd.defaultOptions,t)),this.focus=n=>J6(this,void 0,void 0,function*(){if(!this.validate(n))return;const{graph:i}=this.context;yield i.focusElement(n.target.id,this.options.animation)}),this.bindEvents()}bindEvents(){const{graph:e}=this.context;this.unbindEvents(),Io.forEach(t=>{e.on(`${t}:${We.CLICK}`,this.focus)})}validate(e){if(this.destroyed)return!1;const{enable:t}=this.options;return pt(t)?t(e):!!t}unbindEvents(){const{graph:e}=this.context;Io.forEach(t=>{e.off(`${t}:${We.CLICK}`,this.focus)})}destroy(){this.unbindEvents(),super.destroy()}}gd.defaultOptions={animation:{easing:"ease-in",duration:500},enable:!0};class pd extends Ni{constructor(e,t){super(e,Object.assign({},pd.defaultOptions,t)),this.isFrozen=!1,this.toggleFrozen=n=>{this.isFrozen=n.type==="dragstart"},this.hoverElement=n=>{if(!this.validate(n))return;const i=n.type===We.POINTER_ENTER;this.updateElementsState(n,i);const{onHover:a,onHoverEnd:s}=this.options;i?a==null||a(n):s==null||s(n)},this.updateElementsState=(n,i)=>{if(!this.options.state&&!this.options.inactiveState)return;const{graph:a}=this.context,{state:s,animation:o,inactiveState:l}=this.options,u=this.getActiveIds(n),c={};if(s&&Object.assign(c,this.getElementsState(u,s,i)),l){const h=gE(a.getData(),!0).filter(f=>!u.includes(f));Object.assign(c,this.getElementsState(h,l,i))}a.setElementState(c,o)},this.getElementsState=(n,i,a)=>{const{graph:s}=this.context,o={};return n.forEach(l=>{const u=s.getElementState(l);a?o[l]=u.includes(i)?u:[...u,i]:o[l]=u.filter(c=>c!==i)}),o},this.bindEvents()}bindEvents(){const{graph:e}=this.context;this.unbindEvents(),Io.forEach(n=>{e.on(`${n}:${We.POINTER_ENTER}`,this.hoverElement),e.on(`${n}:${We.POINTER_LEAVE}`,this.hoverElement)});const t=this.context.canvas.document;t.addEventListener(`${We.DRAG_START}`,this.toggleFrozen),t.addEventListener(`${We.DRAG_END}`,this.toggleFrozen)}getActiveIds(e){const{graph:t}=this.context,{degree:n,direction:i}=this.options,a=e.target.id;return n?NE(t,e.targetType,a,typeof n=="function"?n(e):n,i):[a]}validate(e){if(this.destroyed||this.isFrozen||id(e.target)||this.context.graph.isCollapsingExpanding)return!1;const{enable:t}=this.options;return pt(t)?t(e):!!t}unbindEvents(){const{graph:e}=this.context;Io.forEach(n=>{e.off(`${n}:${We.POINTER_ENTER}`,this.hoverElement),e.off(`${n}:${We.POINTER_LEAVE}`,this.hoverElement)});const t=this.context.canvas.document;t.removeEventListener(`${We.DRAG_START}`,this.toggleFrozen),t.removeEventListener(`${We.DRAG_END}`,this.toggleFrozen)}destroy(){this.unbindEvents(),super.destroy()}}pd.defaultOptions={animation:!1,enable:!0,degree:0,direction:"both",state:"active",inactiveState:void 0};class q6 extends ic{onPointerDown(e){if(!super.validate(e)||!super.isKeydown()||this.points)return;const{canvas:t}=this.context;this.pathShape=new gs({id:"g6-lasso-select",style:this.options.style}),t.appendChild(this.pathShape),this.points=[Mf(e)]}onPointerMove(e){var t;if(!this.points)return;const{immediately:n,mode:i}=this.options;this.points.push(Mf(e)),(t=this.pathShape)===null||t===void 0||t.setAttribute("d",KL(this.points)),n&&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 e;(e=this.pathShape)===null||e===void 0||e.remove(),this.pathShape=void 0,this.points=void 0}}class md extends Ni{constructor(e,t){super(e,Object.assign({},md.defaultOptions,t)),this.hiddenShapes=[],this.isVisible=!0,this.setElementsVisibility=(n,i,a)=>{n.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):Lo(s,i,!1,a)})},this.filterShapes=(n,i)=>{if(pt(i))return s=>!i(n,s);const a=i==null?void 0:i[n];return s=>s.className?!(a!=null&&a.includes(s.className)):!0},this.hideShapes=n=>{if(!this.validate(n)||!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=mc(n=>{if(!this.validate(n)||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:e}=this.context;e.on(rt.BEFORE_TRANSFORM,this.hideShapes),e.on(rt.AFTER_TRANSFORM,this.showShapes)}unbindEvents(){const{graph:e}=this.context;e.off(rt.BEFORE_TRANSFORM,this.hideShapes),e.off(rt.AFTER_TRANSFORM,this.showShapes)}validate(e){if(this.destroyed)return!1;const{enable:t}=this.options;return pt(t)?t(e):!!t}update(e){this.unbindEvents(),super.update(e),this.bindEvents()}destroy(){this.unbindEvents(),super.destroy()}}md.defaultOptions={enable:!0,debounce:200,shapes:r=>r==="node"};var n2=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})};class yd extends Ni{constructor(e,t){super(e,Object.assign({},yd.defaultOptions,t)),this.onWheel=n=>n2(this,void 0,void 0,function*(){this.options.preventDefault&&n.preventDefault();const i=n.deltaX,a=n.deltaY;yield this.scroll([-i,-a],n)}),this.shortcut=new Bl(e.graph),this.bindEvents()}update(e){super.update(e),this.bindEvents()}bindEvents(){var e,t;const{trigger:n}=this.options;if(this.shortcut.unbindAll(),nr(n)){(e=this.graphDom)===null||e===void 0||e.removeEventListener(We.WHEEL,this.onWheel);const{up:i=[],down:a=[],left:s=[],right:o=[]}=n;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(t=this.graphDom)===null||t===void 0||t.addEventListener(We.WHEEL,this.onWheel,{passive:!1})}get graphDom(){return this.context.graph.getCanvas().getContextService().getDomElement()}formatDisplacement(e){const{sensitivity:t}=this.options;return e=xs(e,t),e=this.clampByDirection(e),e=this.clampByRange(e),e}clampByDirection([e,t]){const{direction:n}=this.options;return n==="x"?t=0:n==="y"&&(e=0),[e,t]}clampByRange([e,t]){const{viewport:n,canvas:i}=this.context,[a,s]=i.getSize(),[o,l,u,c]=Ja(this.options.range),h=[s*o,a*l,s*u,a*c],f=Ws(Rp(n.getCanvasCenter()),h),d=On(n.getViewportCenter(),[e,t,0]);if(!Pa(d,f)){const{min:[v,g],max:[p,m]}=f;(d[0]0||d[0]>p&&e<0)&&(e=0),(d[1]0||d[1]>m&&t<0)&&(t=0)}return[e,t]}scroll(e,t){return n2(this,void 0,void 0,function*(){if(!this.validate(t))return;const{onFinish:n}=this.options,i=this.context.graph,a=this.formatDisplacement(e);yield i.translateBy(a,!1),n==null||n()})}validate(e){if(this.destroyed)return!1;const{enable:t}=this.options;return pt(t)?t(e):!!t}destroy(){var e;this.shortcut.destroy(),(e=this.graphDom)===null||e===void 0||e.removeEventListener(We.WHEEL,this.onWheel),super.destroy()}}yd.defaultOptions={enable:!0,sensitivity:1,preventDefault:!0,range:1/0};var r2=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})};class bd extends Ni{constructor(e,t){super(e,Object.assign({},bd.defaultOptions,t)),this.zoom=(n,i,a)=>r2(this,void 0,void 0,function*(){if(!this.validate(i))return;const{graph:s}=this.context;let o;"viewport"in i&&(o=zr(i.viewport));const{sensitivity:l,onFinish:u}=this.options,c=1+on(n,-50,50)*l/100,h=s.getZoom();yield s.zoomTo(h*c,a,o),u==null||u()}),this.onReset=()=>r2(this,void 0,void 0,function*(){yield this.context.graph.zoomTo(1,this.options.animation)}),this.preventDefault=n=>{this.options.preventDefault&&n.preventDefault()},this.shortcut=new Bl(e.graph),this.bindEvents()}update(e){super.update(e),this.bindEvents()}bindEvents(){var e;const{trigger:t}=this.options;if(this.shortcut.unbindAll(),Array.isArray(t)&&((e=this.context.canvas.getContainer())===null||e===void 0||e.addEventListener(We.WHEEL,this.preventDefault),this.shortcut.bind([...t,We.WHEEL],n=>{const{deltaX:i,deltaY:a}=n;this.zoom(-(a!=null?a:i),n,!1)})),typeof t=="object"){const{zoomIn:n=[],zoomOut:i=[],reset:a=[]}=t;this.shortcut.bind(n,s=>this.zoom(10,s,this.options.animation)),this.shortcut.bind(i,s=>this.zoom(-10,s,this.options.animation)),this.shortcut.bind(a,this.onReset)}}validate(e){if(this.destroyed)return!1;const{enable:t}=this.options;return pt(t)?t(e):!!t}destroy(){var e;this.shortcut.destroy(),(e=this.context.canvas.getContainer())===null||e===void 0||e.removeEventListener(We.WHEEL,this.preventDefault),super.destroy()}}bd.defaultOptions={animation:{duration:200},enable:!0,sensitivity:1,trigger:[],preventDefault:!0};var xd=w(81746),R0=function(r,e){return R0=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,n){t.__proto__=n}||function(t,n){for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])},R0(r,e)};function aQ(r,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");R0(r,e);function t(){this.constructor=r}r.prototype=e===null?Object.create(e):(t.prototype=e.prototype,new t)}var i2=function(){return i2=Object.assign||function(e){for(var t,n=1,i=arguments.length;n=0;o--)(s=r[o])&&(a=(i<3?s(a):i>3?s(e,t,a):s(e,t))||a);return i>3&&a&&Object.defineProperty(e,t,a),a}function oQ(r,e){return function(t,n){e(t,n,r)}}function lQ(r,e,t,n,i,a){function s(m){if(m!==void 0&&typeof m!="function")throw new TypeError("Function expected");return m}for(var o=n.kind,l=o==="getter"?"get":o==="setter"?"set":"value",u=!e&&r?n.static?r:r.prototype:null,c=e||(u?Object.getOwnPropertyDescriptor(u,n.name):{}),h,f=!1,d=t.length-1;d>=0;d--){var v={};for(var g in n)v[g]=g==="access"?{}:n[g];for(var g in n.access)v.access[g]=n.access[g];v.addInitializer=function(m){if(f)throw new TypeError("Cannot add initializers after decoration has completed");a.push(s(m||null))};var p=(0,t[d])(o==="accessor"?{get:c.get,set:c.set}:c[l],v);if(o==="accessor"){if(p===void 0)continue;if(p===null||typeof p!="object")throw new TypeError("Object expected");(h=s(p.get))&&(c.get=h),(h=s(p.set))&&(c.set=h),(h=s(p.init))&&i.push(h)}else(h=s(p))&&(o==="field"?i.push(h):c[l]=h)}u&&Object.defineProperty(u,n.name,c),f=!0}function uQ(r,e,t){for(var n=arguments.length>2,i=0;i0&&a[a.length-1])&&(u[0]===6||u[0]===2)){t=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]=r.length&&(r=void 0),{value:r&&r[n++],done:!r}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function $6(r,e){var t=typeof Symbol=="function"&&r[Symbol.iterator];if(!t)return r;var n=t.call(r),i,a=[],s;try{for(;(e===void 0||e-- >0)&&!(i=n.next()).done;)a.push(i.value)}catch(o){s={error:o}}finally{try{i&&!i.done&&(t=n.return)&&t.call(n)}finally{if(s)throw s.error}}return a}function gQ(){for(var r=[],e=0;e1||o(f,d)})})}function o(f,d){try{l(n[f](d))}catch(v){h(a[0][3],v)}}function l(f){f.value instanceof Ed?Promise.resolve(f.value.v).then(u,c):h(a[0][2],f)}function u(f){o("next",f)}function c(f){o("throw",f)}function h(f,d){f(d),a.shift(),a.length&&o(a[0][0],a[0][1])}}function bQ(r){var e,t;return e={},n("next"),n("throw",function(i){throw i}),n("return"),e[Symbol.iterator]=function(){return this},e;function n(i,a){e[i]=r[i]?function(s){return(t=!t)?{value:Ed(r[i](s)),done:!1}:a?a(s):s}:a}}function xQ(r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=r[Symbol.asyncIterator],t;return e?e.call(r):(r=typeof o2=="function"?o2(r):r[Symbol.iterator](),t={},n("next"),n("throw"),n("return"),t[Symbol.asyncIterator]=function(){return this},t);function n(a){t[a]=r[a]&&function(s){return new Promise(function(o,l){s=r[a](s),i(o,l,s.done,s.value)})}}function i(a,s,o,l){Promise.resolve(l).then(function(u){a({value:u,done:o})},s)}}function EQ(r,e){return Object.defineProperty?Object.defineProperty(r,"raw",{value:e}):r.raw=e,r}var e5=Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e};function wQ(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.prototype.hasOwnProperty.call(r,t)&&s2(e,r,t);return e5(e,r),e}function PQ(r){return r&&r.__esModule?r:{default:r}}function MQ(r,e,t,n){if(t==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?n:t==="a"?n.call(r):n?n.value:e.get(r)}function SQ(r,e,t,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?r!==e||!i:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(r,t):i?i.value=t:e.set(r,t),t}function TQ(r,e){if(e===null||typeof e!="object"&&typeof e!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof r=="function"?e===r:r.has(e)}const t5=(r,e)=>{if(r!=="next"&&r!=="prev")return e},l2=r=>{r.prev.next=r.next,r.next.prev=r.prev,delete r.next,delete r.prev};class n5{constructor(){const e={};e.prev=e,e.next=e.prev,this.shortcut=e}dequeue(){const e=this.shortcut,t=e.prev;if(t&&t!==e)return l2(t),t}enqueue(e){const t=this.shortcut;e.prev&&e.next&&l2(e),e.next=t.next,t.next.prev=e,t.next=e,e.prev=t}toString(){const e=[],t=this.shortcut;let n=t.prev;for(;n!==t;)e.push(JSON.stringify(n,t5)),n=n==null?void 0:n.prev;return`[${e.join(", ")}]`}}class r5 extends n5{}const i5=()=>1,a5=(r,e)=>{var t;if(r.getAllNodes().length<=1)return[];const n=o5(r,e||i5);return(t=s5(n.graph,n.buckets,n.zeroIdx).map(a=>r.getRelatedEdges(a.v,"out").filter(({target:s})=>s===a.w)))===null||t===void 0?void 0:t.flat()},s5=(r,e,t)=>{let n=[];const i=e[e.length-1],a=e[0];let s;for(;r.getAllNodes().length;){for(;s=a.dequeue();)L0(r,e,t,s);for(;s=i.dequeue();)L0(r,e,t,s);if(r.getAllNodes().length){for(let o=e.length-2;o>0;--o)if(s=e[o].dequeue(),s){n=n.concat(L0(r,e,t,s,!0));break}}}return n},L0=(r,e,t,n,i)=>{var a,s;const o=[];return r.hasNode(n.v)&&((a=r.getRelatedEdges(n.v,"in"))===null||a===void 0||a.forEach(l=>{const u=l.data.weight,c=r.getNode(l.source);i&&o.push({v:l.source,w:l.target,in:0,out:0}),c.data.out===void 0&&(c.data.out=0),c.data.out-=u,D0(e,t,Object.assign({v:c.id},c.data))}),(s=r.getRelatedEdges(n.v,"out"))===null||s===void 0||s.forEach(l=>{const u=l.data.weight,c=l.target,h=r.getNode(c);h.data.in===void 0&&(h.data.in=0),h.data.in-=u,D0(e,t,Object.assign({v:h.id},h.data))}),r.removeNode(n.v)),i?o:void 0},o5=(r,e)=>{const t=new gr;let n=0,i=0;r.getAllNodes().forEach(l=>{t.addNode({id:l.id,data:{v:l.id,in:0,out:0}})}),r.getAllEdges().forEach(l=>{const u=t.getRelatedEdges(l.source,"out").find(h=>h.target===l.target),c=(e==null?void 0:e(l))||1;u?t.updateEdgeData(u==null?void 0:u.id,Object.assign(Object.assign({},u.data),{weight:u.data.weight+c})):t.addEdge({id:l.id,source:l.source,target:l.target,data:{weight:c}}),i=Math.max(i,t.getNode(l.source).data.out+=c),n=Math.max(n,t.getNode(l.target).data.in+=c)});const a=[],s=i+n+3;for(let l=0;l{D0(a,o,Object.assign({v:l.id},t.getNode(l.id).data))}),{buckets:a,zeroIdx:o,graph:t}},D0=(r,e,t)=>{t.out?t.in?r[t.out-t.in+e].enqueue(t):r[r.length-1].enqueue(t):r[0].enqueue(t)},l5=(r,e)=>{const n=e==="greedy"?a5(r,(i=>a=>a.data.weight||1)(r)):u5(r);n==null||n.forEach(i=>{const a=i.data;r.removeEdge(i.id),a.forwardName=i.data.name,a.reversed=!0,r.addEdge({id:i.id,source:i.target,target:i.source,data:Object.assign({},a)})})},u5=r=>{const e=[],t={},n={},i=a=>{n[a]||(n[a]=!0,t[a]=!0,r.getRelatedEdges(a,"out").forEach(s=>{t[s.target]?e.push(s):i(s.target)}),delete t[a])};return r.getAllNodes().forEach(a=>i(a.id)),e},c5=r=>{r.getAllEdges().forEach(e=>{const t=e.data;if(t.reversed){r.removeEdge(e.id);const n=t.forwardName;delete t.reversed,delete t.forwardName,r.addEdge({id:e.id,source:e.target,target:e.source,data:Object.assign(Object.assign({},t),{forwardName:n})})}})},h5=(r,e)=>Number(r)-Number(e),Vl=(r,e,t,n)=>{let i;do i=`${n}${Math.random()}`;while(r.hasNode(i));return t.dummy=e,r.addNode({id:i,data:t}),i},f5=r=>{const e=new gr;return r.getAllNodes().forEach(t=>{e.addNode(Object.assign({},t))}),r.getAllEdges().forEach(t=>{const n=e.getRelatedEdges(t.source,"out").find(i=>i.target===t.target);n?e.updateEdgeData(n==null?void 0:n.id,Object.assign(Object.assign({},n.data),{weight:n.data.weight+t.data.weight||0,minlen:Math.max(n.data.minlen,t.data.minlen||1)})):e.addEdge({id:t.id,source:t.source,target:t.target,data:{weight:t.data.weight||0,minlen:t.data.minlen||1}})}),e},u2=r=>{const e=new gr;return r.getAllNodes().forEach(t=>{r.getChildren(t.id).length||e.addNode(Object.assign({},t))}),r.getAllEdges().forEach(t=>{e.addEdge(t)}),e},c2=(r,e)=>r==null?void 0:r.reduce((t,n,i)=>(t[n]=e[i],t),{}),AQ=r=>{const e={};return r.getAllNodes().forEach(t=>{const n={};r.getRelatedEdges(t.id,"out").forEach(i=>{n[i.target]=(n[i.target]||0)+(i.data.weight||0)}),e[t.id]=n}),e},OQ=r=>{const e=r.getAllNodes(),t=e.map(n=>{const i={};return r.getRelatedEdges(n.id,"in").forEach(a=>{i[a.source]=(i[a.source]||0)+a.data.weight}),i});return c2(e.map(n=>n.id),t)},h2=(r,e)=>{const t=Number(r.x),n=Number(r.y),i=Number(e.x)-t,a=Number(e.y)-n;let s=Number(r.width)/2,o=Number(r.height)/2;if(!i&&!a)return{x:0,y:0};let l,u;return Math.abs(a)*s>Math.abs(i)*o?(a<0&&(o=-o),l=o*i/a,u=o):(i<0&&(s=-s),l=s,u=s*a/i),{x:t+l,y:n+u}},bc=r=>{const e=[],t=d2(r)+1;for(let n=0;n{const i=n.data.rank;i!==void 0&&e[i]&&e[i].push(n.id)});for(let n=0;nh5(r.getNode(i).data.order,r.getNode(a).data.order));return e},d5=r=>{const e=r.getAllNodes().filter(n=>n.data.rank!==void 0).map(n=>n.data.rank),t=Math.min(...e);r.getAllNodes().forEach(n=>{n.data.hasOwnProperty("rank")&&t!==1/0&&(n.data.rank-=t)})},v5=(r,e=0)=>{const t=r.getAllNodes(),n=t.filter(o=>o.data.rank!==void 0).map(o=>o.data.rank),i=Math.min(...n),a=[];t.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 c=r.getNode(u);c&&(c.data.rank=c.data.rank||0,c.data.rank+=s)}))}},f2=(r,e,t,n)=>{const i={width:0,height:0};return ht(t)&&ht(n)&&(i.rank=t,i.order=n),Vl(r,"border",i,e)},d2=r=>{let e;return r.getAllNodes().forEach(t=>{const n=t.data.rank;n!==void 0&&(e===void 0||n>e)&&(e=n)}),e||(e=0),e},g5=(r,e)=>{const t={lhs:[],rhs:[]};return r==null||r.forEach(n=>{e(n)?t.lhs.push(n):t.rhs.push(n)}),t},I0=(r,e)=>r.reduce((t,n)=>{const i=e(t),a=e(n);return i>a?n:t}),v2=(r,e,t,n,i,a)=>{n.includes(e.id)||(n.push(e.id),t||a.push(e.id),i(e.id).forEach(s=>v2(r,s,t,n,i,a)),t&&a.push(e.id))},g2=(r,e,t,n)=>{const i=Array.isArray(e)?e:[e],a=l=>n?r.getSuccessors(l):r.getNeighbors(l),s=[],o=[];return i.forEach(l=>{if(r.hasNode(l.id))v2(r,l,t==="post",o,a,s);else throw new Error(`Graph does not have node: ${l}`)}),s},p5=r=>{const e=t=>{const n=r.getChildren(t),i=r.getNode(t);if(n!=null&&n.length&&n.forEach(a=>e(a.id)),i.data.hasOwnProperty("minRank")){i.data.borderLeft=[],i.data.borderRight=[];for(let a=i.data.minRank,s=i.data.maxRank+1;ae(t.id))},p2=(r,e,t,n,i,a)=>{const s={rank:a,borderType:e,width:0,height:0},o=i.data[e][a-1],l=Vl(r,"border",s,t);i.data[e][a]=l,r.setParent(l,n),o&&r.addEdge({id:`e${Math.random()}`,source:o,target:l,data:{weight:1}})},m5=(r,e)=>{const t=e.toLowerCase();(t==="lr"||t==="rl")&&m2(r)},y5=(r,e)=>{const t=e.toLowerCase();(t==="bt"||t==="rl")&&b5(r),(t==="lr"||t==="rl")&&(x5(r),m2(r))},m2=r=>{r.getAllNodes().forEach(e=>{y2(e)}),r.getAllEdges().forEach(e=>{y2(e)})},y2=r=>{const e=r.data.width;r.data.width=r.data.height,r.data.height=e},b5=r=>{r.getAllNodes().forEach(e=>{B0(e.data)}),r.getAllEdges().forEach(e=>{var t;(t=e.data.points)===null||t===void 0||t.forEach(n=>B0(n)),e.data.hasOwnProperty("y")&&B0(e.data)})},B0=r=>{r!=null&&r.y&&(r.y=-r.y)},x5=r=>{r.getAllNodes().forEach(e=>{z0(e.data)}),r.getAllEdges().forEach(e=>{var t;(t=e.data.points)===null||t===void 0||t.forEach(n=>z0(n)),e.data.hasOwnProperty("x")&&z0(e.data)})},z0=r=>{const e=r.x;r.x=r.y,r.y=e},E5=r=>{const e=Vl(r,"root",{},"_root"),t=w5(r);let n=Math.max(...Object.values(t));Math.abs(n)===1/0&&(n=1);const i=n-1,a=2*i+1;r.getAllEdges().forEach(o=>{o.data.minlen*=a});const s=P5(r)+1;return r.getRoots().forEach(o=>{b2(r,e,a,s,i,t,o.id)}),{nestingRoot:e,nodeRankFactor:a}},b2=(r,e,t,n,i,a,s)=>{const o=r.getChildren(s);if(!(o!=null&&o.length)){s!==e&&r.addEdge({id:`e${Math.random()}`,source:e,target:s,data:{weight:0,minlen:t}});return}const l=f2(r,"_bt"),u=f2(r,"_bb"),c=r.getNode(s);r.setParent(l,s),c.data.borderTop=l,r.setParent(u,s),c.data.borderBottom=u,o==null||o.forEach(h=>{b2(r,e,t,n,i,a,h.id);const f=h.data.borderTop?h.data.borderTop:h.id,d=h.data.borderBottom?h.data.borderBottom:h.id,v=h.data.borderTop?n:2*n,g=f!==d?1:i-a[s]+1;r.addEdge({id:`e${Math.random()}`,source:l,target:f,data:{minlen:g,weight:v,nestingEdge:!0}}),r.addEdge({id:`e${Math.random()}`,source:d,target:u,data:{minlen:g,weight:v,nestingEdge:!0}})}),r.getParent(s)||r.addEdge({id:`e${Math.random()}`,source:e,target:l,data:{weight:0,minlen:i+a[s]}})},w5=r=>{const e={},t=(n,i)=>{const a=r.getChildren(n);a==null||a.forEach(s=>t(s.id,i+1)),e[n]=i};return r.getRoots().forEach(n=>t(n.id,1)),e},P5=r=>{let e=0;return r.getAllEdges().forEach(t=>{e+=t.data.weight}),e},M5=(r,e)=>{e&&r.removeNode(e),r.getAllEdges().forEach(t=>{t.data.nestingEdge&&r.removeEdge(t.id)})},S5="edge",x2="edge-label",T5=(r,e)=>{r.getAllEdges().forEach(t=>A5(r,t,e))},A5=(r,e,t)=>{let n=e.source,i=r.getNode(n).data.rank;const a=e.target,s=r.getNode(a).data.rank,o=e.data.labelRank;if(s===i+1)return;r.removeEdge(e.id);let l,u,c;for(c=0,++i;i{e.forEach(t=>{let n=r.getNode(t);const{data:i}=n,a=i.originalEdge;let s;a&&r.addEdge(a);let o=t;for(;n.data.dummy;)s=r.getSuccessors(o)[0],r.removeNode(o),a.data.points.push({x:n.data.x,y:n.data.y}),n.data.dummy===x2&&(a.data.x=n.data.x,a.data.y=n.data.y,a.data.width=n.data.width,a.data.height=n.data.height),o=s.id,n=r.getNode(o)})},k5=(r,e,t)=>{const n={};let i;t==null||t.forEach(a=>{let s=r.getParent(a),o,l;for(;s;){if(o=r.getParent(s.id),o?(l=n[o.id],n[o.id]=s.id):(l=i,i=s.id),l&&l!==s.id){e.hasNode(l)||e.addNode({id:l,data:{}}),e.hasNode(s.id)||e.addNode({id:s.id,data:{}}),e.hasEdge(`e${l}-${s.id}`)||e.addEdge({id:`e${l}-${s.id}`,source:l,target:s.id,data:{}});return}s=o}})},C5=(r,e,t)=>{const n=N5(r),i=new gr({tree:[{id:n,children:[],data:{}}]});return r.getAllNodes().forEach(a=>{const s=r.getParent(a.id);(a.data.rank===e||a.data.minRank<=e&&e<=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)||n),r.getRelatedEdges(a.id,t).forEach(o=>{const l=o.source===a.id?o.target:o.source;i.hasNode(l)||i.addNode(Object.assign({},r.getNode(l)));const u=i.getRelatedEdges(l,"out").find(({target:h})=>h===a.id),c=u!==void 0?u.data.weight:0;u?i.updateEdgeData(u.id,Object.assign(Object.assign({},u.data),{weight:o.data.weight+c})):i.addEdge({id:o.id,source:l,target:a.id,data:{weight:o.data.weight+c}})}),a.data.hasOwnProperty("minRank")&&i.updateNodeData(a.id,Object.assign(Object.assign({},a.data),{borderLeft:a.data.borderLeft[e],borderRight:a.data.borderRight[e]})))}),i},N5=r=>{let e;for(;r.hasNode(e=`_root${Math.random()}`););return e},_5=(r,e,t)=>{const n=c2(t,t.map((c,h)=>h)),a=e.map(c=>{const h=r.getRelatedEdges(c,"out").map(f=>({pos:n[f.target]||0,weight:f.data.weight}));return h==null?void 0:h.sort((f,d)=>f.pos-d.pos)}).flat().filter(c=>c!==void 0);let s=1;for(;s{if(c){let h=c.pos+s;l[h]+=c.weight;let f=0;for(;h>0;)h%2&&(f+=l[h+1]),h=h-1>>1,l[h]+=c.weight;u+=c.weight*f}}),u},E2=(r,e)=>{let t=0;for(let n=1;n<(e==null?void 0:e.length);n+=1)t+=_5(r,e[n-1],e[n]);return t},w2=r=>{const e={},t=r.getAllNodes(),n=t.map(u=>{var c;return(c=u.data.rank)!==null&&c!==void 0?c:-1/0}),i=Math.max(...n),a=[];for(let u=0;ur.getNode(u.id).data.rank-r.getNode(c.id).data.rank),l=s.filter(u=>r.getNode(u.id).data.fixorder!==void 0).sort((u,c)=>r.getNode(u.id).data.fixorder-r.getNode(c.id).data.fixorder);return l==null||l.forEach(u=>{isNaN(r.getNode(u.id).data.rank)||a[r.getNode(u.id).data.rank].push(u.id),e[u.id]=!0}),s==null||s.forEach(u=>r.dfsTree(u.id,c=>{if(e.hasOwnProperty(c.id))return!0;e[c.id]=!0,isNaN(c.data.rank)||a[c.data.rank].push(c.id)})),a},R5=(r,e)=>e.map(t=>{const n=r.getRelatedEdges(t,"in");if(!(n!=null&&n.length))return{v:t};const i={sum:0,weight:0};return n==null||n.forEach(a=>{const s=r.getNode(a.source);i.sum+=a.data.weight*s.data.order,i.weight+=a.data.weight}),{v:t,barycenter:i.sum/i.weight,weight:i.weight}}),L5=(r,e)=>{var t,n,i;const a={};r==null||r.forEach((o,l)=>{a[o.v]={i:l,indegree:0,in:[],out:[],vs:[o.v]};const u=a[o.v];o.barycenter!==void 0&&(u.barycenter=o.barycenter,u.weight=o.weight)}),(t=e.getAllEdges())===null||t===void 0||t.forEach(o=>{const l=a[o.source],u=a[o.target];l!==void 0&&u!==void 0&&(u.indegree++,l.out.push(a[o.target]))});const s=(i=(n=Object.values(a)).filter)===null||i===void 0?void 0:i.call(n,o=>!o.indegree);return D5(s)},D5=r=>{var e,t;const n=[],i=l=>u=>{u.merged||(u.barycenter===void 0||l.barycenter===void 0||u.barycenter>=l.barycenter)&&I5(l,u)},a=l=>u=>{u.in.push(l),--u.indegree===0&&r.push(u)};for(;r!=null&&r.length;){const l=r.pop();n.push(l),(e=l.in.reverse())===null||e===void 0||e.forEach(u=>i(l)(u)),(t=l.out)===null||t===void 0||t.forEach(u=>a(l)(u))}const s=n.filter(l=>!l.merged),o=["vs","i","barycenter","weight"];return s.map(l=>{const u={};return o==null||o.forEach(c=>{l[c]!==void 0&&(u[c]=l[c])}),u})},I5=(r,e)=>{var t;let n=0,i=0;r.weight&&(n+=r.barycenter*r.weight,i+=r.weight),e.weight&&(n+=e.barycenter*e.weight,i+=e.weight),r.vs=(t=e.vs)===null||t===void 0?void 0:t.concat(r.vs),r.barycenter=n/i,r.weight=i,r.i=Math.min(e.i,r.i),e.merged=!0};var B5=L5;const z5=(r,e,t,n)=>{const i=g5(r,f=>{const d=f.hasOwnProperty("fixorder")&&!isNaN(f.fixorder);return n?!d&&f.hasOwnProperty("barycenter"):d||f.hasOwnProperty("barycenter")}),a=i.lhs,s=i.rhs.sort((f,d)=>-f.i- -d.i),o=[];let l=0,u=0,c=0;a==null||a.sort(F5(!!e,!!t)),c=P2(o,s,c),a==null||a.forEach(f=>{var d;c+=(d=f.vs)===null||d===void 0?void 0:d.length,o.push(f.vs),l+=f.barycenter*f.weight,u+=f.weight,c=P2(o,s,c)});const h={vs:o.flat()};return u&&(h.barycenter=l/u,h.weight=u),h},P2=(r,e,t)=>{let n=t,i;for(;e.length&&(i=e[e.length-1]).i<=n;)e.pop(),r==null||r.push(i.vs),n++;return n},F5=(r,e)=>(t,n)=>{if(t.fixorder!==void 0&&n.fixorder!==void 0)return t.fixorder-n.fixorder;if(t.barycentern.barycenter)return 1;if(e&&t.order!==void 0&&n.order!==void 0){if(t.ordern.order)return 1}return r?n.i-t.i:t.i-n.i},M2=(r,e,t,n,i,a)=>{var s,o,l,u;let c=r.getChildren(e).map(b=>b.id);const h=r.getNode(e),f=h?h.data.borderLeft:void 0,d=h?h.data.borderRight:void 0,v={};f&&(c=c==null?void 0:c.filter(b=>b!==f&&b!==d));const g=R5(r,c||[]);g==null||g.forEach(b=>{var x;if(!((x=r.getChildren(b.v))===null||x===void 0)&&x.length){const O=M2(r,b.v,t,n,a);v[b.v]=O,O.hasOwnProperty("barycenter")&&G5(b,O)}});const p=B5(g,t);j5(p,v),(s=p.filter(b=>b.vs.length>0))===null||s===void 0||s.forEach(b=>{const x=r.getNode(b.vs[0]);x&&(b.fixorder=x.data.fixorder,b.order=x.data.order)});const m=z5(p,n,i,a);if(f&&(m.vs=[f,m.vs,d].flat(),!((o=r.getPredecessors(f))===null||o===void 0)&&o.length)){const b=r.getNode(((l=r.getPredecessors(f))===null||l===void 0?void 0:l[0].id)||""),x=r.getNode(((u=r.getPredecessors(d))===null||u===void 0?void 0:u[0].id)||"");m.hasOwnProperty("barycenter")||(m.barycenter=0,m.weight=0),m.barycenter=(m.barycenter*m.weight+b.data.order+x.data.order)/(m.weight+2),m.weight+=2}return m},j5=(r,e)=>{r==null||r.forEach(t=>{var n;const i=(n=t.vs)===null||n===void 0?void 0:n.map(a=>e[a]?e[a].vs:a);t.vs=i.flat()})},G5=(r,e)=>{r.barycenter!==void 0?(r.barycenter=(r.barycenter*r.weight+e.barycenter*e.weight)/(r.weight+e.weight),r.weight+=e.weight):(r.barycenter=e.barycenter,r.weight=e.weight)},H5=(r,e)=>{const t=d2(r),n=[],i=[];for(let c=1;c-1;c--)i.push(c);const a=S2(r,n,"in"),s=S2(r,i,"out");let o=w2(r);F0(r,o);let l=Number.POSITIVE_INFINITY,u;for(let c=0,h=0;h<4;++c,++h){T2(c%2?a:s,c%4>=2,!1,e),o=bc(r);const f=E2(r,o);f=2,!0,e),o=bc(r);const f=E2(r,o);fe.map(n=>C5(r,n,t)),T2=(r,e,t,n)=>{const i=new gr;r==null||r.forEach(a=>{var s;const o=a.getRoots()[0].id,l=M2(a,o,i,e,t,n);for(let u=0;u<((s=l.vs)===null||s===void 0?void 0:s.length);u++){const c=a.getNode(l.vs[u]);c&&(c.data.order=u)}k5(a,i,l.vs)})},F0=(r,e)=>{e==null||e.forEach(t=>{t==null||t.forEach((n,i)=>{r.getNode(n).data.order=i})})},X5=(r,e)=>{const n=r.getAllNodes().filter(s=>{var o;return!(!((o=r.getChildren(s.id))===null||o===void 0)&&o.length)}).map(s=>s.data.rank),i=Math.max(...n),a=[];for(let s=0;s{const o=r.getNode(s);!o||o.data.dummy||isNaN(o.data.rank)||(o.data.fixorder=a[o.data.rank].length,a[o.data.rank].push(s))})},W5=r=>{const e={};let t=0;const n=i=>{const a=t;r.getChildren(i).forEach(s=>n(s.id)),e[i]={low:a,lim:t++}};return r.getRoots().forEach(i=>n(i.id)),e},V5=(r,e,t,n)=>{var i,a;const s=[],o=[],l=Math.min(e[t].low,e[n].low),u=Math.max(e[t].lim,e[n].lim);let c,h;c=t;do c=(i=r.getParent(c))===null||i===void 0?void 0:i.id,s.push(c);while(c&&(e[c].low>l||u>e[c].lim));for(h=c,c=n;c&&c!==h;)o.push(c),c=(a=r.getParent(c))===null||a===void 0?void 0:a.id;return{lca:h,path:s.concat(o.reverse())}},Y5=(r,e)=>{const t=W5(r);e.forEach(n=>{var i,a;let s=n,o=r.getNode(s);const l=o.data.originalEdge;if(!l)return;const u=V5(r,t,l.source,l.target),c=u.path,h=u.lca;let f=0,d=c[f],v=!0;for(;s!==l.target;){if(o=r.getNode(s),v){for(;d!==h&&((i=r.getNode(d))===null||i===void 0?void 0:i.data.maxRank){const t={},n=(i,a)=>{let s=0,o=0;const l=i.length,u=a==null?void 0:a[(a==null?void 0:a.length)-1];return a==null||a.forEach((c,h)=>{var f;const d=U5(r,c),v=d?r.getNode(d.id).data.order:l;(d||c===u)&&((f=a.slice(o,h+1))===null||f===void 0||f.forEach(g=>{var p;(p=r.getPredecessors(g))===null||p===void 0||p.forEach(m=>{var b;const x=r.getNode(m.id),O=x.data.order;(O{const t={};function n(o,l,u,c,h){var f,d;let v;for(let g=l;g{const m=r.getNode(p.id);m.data.dummy&&(m.data.orderh)&&k2(t,p.id,v)}))}function i(o){return JSON.stringify(o.slice(1))}function a(o,l){const u=i(o);l.get(u)||(n(...o),l.set(u,!0))}const s=(o,l)=>{let u=-1,c,h=0;const f=new Map;return l==null||l.forEach((d,v)=>{var g;if(((g=r.getNode(d))===null||g===void 0?void 0:g.data.dummy)==="border"){const p=r.getPredecessors(d)||[];p.length&&(c=r.getNode(p[0].id).data.order,a([l,h,v,u,c],f),h=v,u=c)}a([l,h,l.length,c,o.length],f)}),l};return e!=null&&e.length&&e.reduce(s),t},U5=(r,e)=>{var t,n;if(!((t=r.getNode(e))===null||t===void 0)&&t.data.dummy)return(n=r.getPredecessors(e))===null||n===void 0?void 0:n.find(i=>r.getNode(i.id).data.dummy)},k2=(r,e,t)=>{let n=e,i=t;if(n>i){const s=n;n=i,i=s}let a=r[n];a||(r[n]=a={}),a[i]=!0},Z5=(r,e,t)=>{let n=e,i=t;if(n>i){const a=e;n=i,i=a}return!!r[n]},C2=(r,e,t,n)=>{const i={},a={},s={};return e==null||e.forEach(o=>{o==null||o.forEach((l,u)=>{i[l]=l,a[l]=l,s[l]=u})}),e==null||e.forEach(o=>{let l=-1;o==null||o.forEach(u=>{let c=n(u).map(h=>h.id);if(c.length){c=c.sort((f,d)=>s[f]-s[d]);const h=(c.length-1)/2;for(let f=Math.floor(h),d=Math.ceil(h);f<=d;++f){const v=c[f];a[u]===u&&l{var o;const l={},u=K5(r,e,t,i,a,s),c=s?"borderLeft":"borderRight",h=(v,g)=>{let p=u.getAllNodes(),m=p.pop();const b={};for(;m;)b[m.id]?v(m.id):(b[m.id]=!0,p.push(m),p=p.concat(g(m.id))),m=p.pop()},f=v=>{l[v]=(u.getRelatedEdges(v,"in")||[]).reduce((g,p)=>Math.max(g,(l[p.source]||0)+p.data.weight),0)},d=v=>{const g=(u.getRelatedEdges(v,"out")||[]).reduce((m,b)=>Math.min(m,(l[b.target]||0)-b.data.weight),Number.POSITIVE_INFINITY),p=r.getNode(v);g!==Number.POSITIVE_INFINITY&&p.data.borderType!==c&&(l[v]=Math.max(l[v],g))};return h(f,u.getPredecessors.bind(u)),h(d,u.getSuccessors.bind(u)),(o=Object.values(n))===null||o===void 0||o.forEach(v=>{l[v]=l[t[v]]}),l},K5=(r,e,t,n,i,a)=>{const s=new gr,o=Q5(n,i,a);return e==null||e.forEach(l=>{let u;l==null||l.forEach(c=>{const h=t[c];if(s.hasNode(h)||s.addNode({id:h,data:{}}),u){const f=t[u],d=s.getRelatedEdges(f,"out").find(v=>v.target===h);d?s.updateEdgeData(d.id,Object.assign(Object.assign({},d.data),{weight:Math.max(o(r,c,u),d.data.weight||0)})):s.addEdge({id:`e${Math.random()}`,source:f,target:h,data:{weight:Math.max(o(r,c,u),0)}})}u=c})}),s},_2=(r,e)=>I0(Object.values(e),t=>{var n;let i=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY;return(n=Object.keys(t))===null||n===void 0||n.forEach(s=>{const o=t[s],l=J5(r,s)/2;i=Math.max(o+l,i),a=Math.min(o-l,a)}),i-a});function R2(r,e){const t=Object.values(e),n=Math.min(...t),i=Math.max(...t);["u","d"].forEach(a=>{["l","r"].forEach(s=>{const o=a+s,l=r[o];let u;if(l===e)return;const c=Object.values(l);u=s==="l"?n-Math.min(...c):i-Math.max(...c),u&&(r[o]={},Object.keys(l).forEach(h=>{r[o][h]=l[h]+u}))})})}const L2=(r,e)=>{const t={};return Object.keys(r.ul).forEach(n=>{if(e)t[n]=r[e.toLowerCase()][n];else{const i=Object.values(r).map(a=>a[n]);t[n]=(i[0]+i[1])/2}}),t},kQ=(r,e)=>{const{align:t,nodesep:n=0,edgesep:i=0}=e||{},a=buildLayerMatrix(r),s=Object.assign(A2(r,a),O2(r,a)),o={};let l;["u","d"].forEach(c=>{l=c==="u"?a:Object.values(a).reverse(),["l","r"].forEach(h=>{h==="r"&&(l=l.map(g=>Object.values(g).reverse()));const f=(c==="u"?r.getPredecessors:r.getSuccessors).bind(r),d=C2(r,l,s,f),v=N2(r,l,d.root,d.align,n,i,h==="r");h==="r"&&Object.keys(v).forEach(g=>{v[g]=-v[g]}),o[c+h]=v})});const u=_2(r,o);return R2(o,u),L2(o,t)},Q5=(r,e,t)=>(n,i,a)=>{const s=n.getNode(i),o=n.getNode(a);let l=0,u=0;if(l+=s.data.width/2,s.data.hasOwnProperty("labelpos"))switch((s.data.labelpos||"").toLowerCase()){case"l":u=-s.data.width/2;break;case"r":u=s.data.width/2;break}if(u&&(l+=t?u:-u),u=0,l+=(s.data.dummy?e:r)/2,l+=(o.data.dummy?e:r)/2,l+=o.data.width/2,o.data.labelpos)switch((o.data.labelpos||"").toLowerCase()){case"l":u=o.data.width/2;break;case"r":u=-o.data.width/2;break}return u&&(l+=t?u:-u),u=0,l},J5=(r,e)=>r.getNode(e).data.width||0,q5=(r,e)=>{const{ranksep:t=0}=e||{},n=bc(r);let i=0;n==null||n.forEach(a=>{const s=a.map(l=>r.getNode(l).data.height),o=Math.max(...s,0);a==null||a.forEach(l=>{r.getNode(l).data.y=i+o/2}),i+=o+t})},$5=(r,e)=>{const{align:t,nodesep:n=0,edgesep:i=0}=e||{},a=bc(r),s=Object.assign(A2(r,a),O2(r,a)),o={};let l=[];["u","d"].forEach(c=>{l=c==="u"?a:Object.values(a).reverse(),["l","r"].forEach(h=>{h==="r"&&(l=l.map(g=>Object.values(g).reverse()));const f=(c==="u"?r.getPredecessors:r.getSuccessors).bind(r),d=C2(r,l,s,f),v=N2(r,l,d.root,d.align,n,i,h==="r");h==="r"&&Object.keys(v).forEach(g=>v[g]=-v[g]),o[c+h]=v})});const u=_2(r,o);return u&&R2(o,u),L2(o,t)},e4=(r,e)=>{var t;const n=u2(r);q5(n,e);const i=$5(n,e);(t=Object.keys(i))===null||t===void 0||t.forEach(a=>{n.getNode(a).data.x=i[a]})},D2=r=>{const e={},t=n=>{var i;const a=r.getNode(n);if(!a)return 0;if(e[n])return a.data.rank;e[n]=!0;let s;return(i=r.getRelatedEdges(n,"out"))===null||i===void 0||i.forEach(o=>{const l=t(o.target),u=o.data.minlen,c=l-u;c&&(s===void 0||cr.getRelatedEdges(n.id,"in").length===0).forEach(n=>t(n.id))},t4=r=>{const e={};let t;const n=s=>{var o;const l=r.getNode(s);if(!l)return 0;if(e[s])return l.data.rank;e[s]=!0;let u;return(o=r.getRelatedEdges(s,"out"))===null||o===void 0||o.forEach(c=>{const h=n(c.target),f=c.data.minlen,d=h-f;d&&(u===void 0||dr.getRelatedEdges(s.id,"in").length===0).forEach(s=>{s&&n(s.id)}),t===void 0&&(t=0);const i={},a=(s,o)=>{var l;const u=r.getNode(s),c=isNaN(u.data.layer)?o:u.data.layer;(u.data.rank===void 0||u.data.rank{a(h.target,c+h.data.minlen)}))};r.getAllNodes().forEach(s=>{const o=s.data;o&&(isNaN(o.layer)?o.rank-=t:a(s.id,o.layer))})},no=(r,e)=>r.getNode(e.target).data.rank-r.getNode(e.source).data.rank-e.data.minlen,n4=r=>{const e=new gr({tree:[]}),t=r.getAllNodes()[0],n=r.getAllNodes().length;e.addNode(t);let i,a;for(;r4(e,r){const t=n=>{e.getRelatedEdges(n,"both").forEach(i=>{const a=i.source,s=n===a?i.target:a;!r.hasNode(s)&&!no(e,i)&&(r.addNode({id:s,data:{}}),r.addEdge({id:i.id,source:n,target:s,data:{}}),t(s))})};return r.getAllNodes().forEach(n=>t(n.id)),r.getAllNodes().length},i4=r=>{const e=new gr({tree:[]}),t=r.getAllNodes()[0],n=r.getAllNodes().length;e.addNode(t);let i,a;for(;a4(e,r){const t=n=>{var i;(i=e.getRelatedEdges(n,"both"))===null||i===void 0||i.forEach(a=>{const s=a.source,o=n===s?a.target:s;!r.hasNode(o)&&(e.getNode(o).data.layer!==void 0||!no(e,a))&&(r.addNode({id:o,data:{}}),r.addEdge({id:a.id,source:n,target:o,data:{}}),t(o))})};return r.getAllNodes().forEach(n=>t(n.id)),r.getAllNodes().length},I2=(r,e)=>I0(e.getAllEdges(),t=>r.hasNode(t.source)!==r.hasNode(t.target)?no(e,t):1/0),B2=(r,e,t)=>{r.getAllNodes().forEach(n=>{const i=e.getNode(n.id);i.data.rank||(i.data.rank=0),i.data.rank+=t})},s4=r=>{const e=f5(r);D2(e);const t=n4(e);F2(t),z2(t,e);let n,i;for(;n=u4(t);)i=c4(t,e,n),h4(t,e,n,i)},z2=(r,e)=>{let t=g2(r,r.getAllNodes(),"post",!1);t=t.slice(0,(t==null?void 0:t.length)-1),t.forEach(n=>{o4(r,e,n)})},o4=(r,e,t)=>{const i=r.getNode(t).data.parent,a=r.getRelatedEdges(t,"both").find(s=>s.target===i||s.source===i);a.data.cutvalue=l4(r,e,t)},l4=(r,e,t)=>{const i=r.getNode(t).data.parent;let a=!0,s=e.getRelatedEdges(t,"out").find(l=>l.target===i),o=0;return s||(a=!1,s=e.getRelatedEdges(i,"out").find(l=>l.target===t)),o=s.data.weight,e.getRelatedEdges(t,"both").forEach(l=>{const u=l.source===t,c=u?l.target:l.source;if(c!==i){const h=u===a,f=l.data.weight;if(o+=h?f:-f,d4(r,t,c)){const d=r.getRelatedEdges(t,"both").find(v=>v.source===c||v.target===c).data.cutvalue;o+=h?-d:d}}}),o},F2=(r,e=r.getAllNodes()[0].id)=>{j2(r,{},1,e)},j2=(r,e,t,n,i)=>{var a;const s=t;let o=t;const l=r.getNode(n);return e[n]=!0,(a=r.getNeighbors(n))===null||a===void 0||a.forEach(u=>{e[u.id]||(o=j2(r,e,o,u.id,n))}),l.data.low=s,l.data.lim=o++,i?l.data.parent=i:delete l.data.parent,o},u4=r=>r.getAllEdges().find(e=>e.data.cutvalue<0),c4=(r,e,t)=>{let n=t.source,i=t.target;e.getRelatedEdges(n,"out").find(c=>c.target===i)||(n=t.target,i=t.source);const a=r.getNode(n),s=r.getNode(i);let o=a,l=!1;a.data.lim>s.data.lim&&(o=s,l=!0);const u=e.getAllEdges().filter(c=>l===G2(r.getNode(c.source),o)&&l!==G2(r.getNode(c.target),o));return I0(u,c=>no(e,c))},h4=(r,e,t,n)=>{const i=r.getRelatedEdges(t.source,"both").find(a=>a.source===t.target||a.target===t.target);i&&r.removeEdge(i.id),r.addEdge({id:`e${Math.random()}`,source:n.source,target:n.target,data:{}}),F2(r),z2(r,e),f4(r,e)},f4=(r,e)=>{const t=r.getAllNodes().find(i=>!i.data.parent);let n=g2(r,t,"pre",!1);n=n.slice(1),n.forEach(i=>{const a=r.getNode(i).data.parent;let s=e.getRelatedEdges(i,"out").find(l=>l.target===a),o=!1;!s&&e.hasNode(a)&&(s=e.getRelatedEdges(a,"out").find(l=>l.target===i),o=!0),e.getNode(i).data.rank=(e.hasNode(a)&&e.getNode(a).data.rank||0)+(o?s==null?void 0:s.data.minlen:-(s==null?void 0:s.data.minlen))})},d4=(r,e,t)=>r.getRelatedEdges(e,"both").find(n=>n.source===t||n.target===t),G2=(r,e)=>e.data.low<=r.data.lim&&r.data.lim<=e.data.lim,v4=(r,e)=>{switch(e){case"network-simplex":p4(r);break;case"tight-tree":H2(r);break;case"longest-path":g4(r);break;default:H2(r)}},g4=D2,H2=r=>{t4(r),i4(r)},p4=r=>{s4(r)},m4=(r,e)=>{const{edgeLabelSpace:t,keepNodeOrder:n,prevGraph:i,rankdir:a,ranksep:s}=e;!n&&i&&b4(r,i);const o=S4(r);t&&(e.ranksep=T4(o,{rankdir:a,ranksep:s}));let l;try{l=y4(o,e)}catch(u){if(u.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: `,u);return}throw u}return x4(r,o),l},y4=(r,e)=>{const{acyclicer:t,ranker:n,rankdir:i="tb",nodeOrder:a,keepNodeOrder:s,align:o,nodesep:l=50,edgesep:u=20,ranksep:c=50}=e;D4(r),l5(r,t);const{nestingRoot:h,nodeRankFactor:f}=E5(r);v4(u2(r),n),A4(r),v5(r,f),M5(r,h),d5(r),O4(r),k4(r);const d=[];T5(r,d),Y5(r,d),p5(r),s&&X5(r,a),H5(r,s),I4(r),m5(r,i),e4(r,{align:o,nodesep:l,edgesep:u,ranksep:c}),B4(r),L4(r),O5(r,d),_4(r),y5(r,i);const{width:v,height:g}=C4(r);return N4(r),R4(r),c5(r),{width:v,height:g}},b4=(r,e)=>{r.getAllNodes().forEach(t=>{const n=r.getNode(t.id);if(e.hasNode(t.id)){const i=e.getNode(t.id);n.data.fixorder=i.data._order,delete i.data._order}else delete n.data.fixorder})},x4=(r,e)=>{r.getAllNodes().forEach(t=>{var n;const i=r.getNode(t.id);if(i){const a=e.getNode(t.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,!((n=e.getChildren(t.id))===null||n===void 0)&&n.length&&(i.data.width=a.data.width,i.data.height=a.data.height)}}),r.getAllEdges().forEach(t=>{const n=r.getEdge(t.id),i=e.getEdge(t.id);n.data.points=i?i.data.points:[],i&&i.data.hasOwnProperty("x")&&(n.data.x=i.data.x,n.data.y=i.data.y)})},E4=["width","height","layer","fixorder"],w4={width:0,height:0},P4=["minlen","weight","width","height","labeloffset"],M4={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},j0=["labelpos"],S4=r=>{const e=new gr({tree:[]});return r.getAllNodes().forEach(t=>{const n=W2(r.getNode(t.id).data),i=Object.assign(Object.assign({},w4),n),a=X2(i,E4);e.hasNode(t.id)||e.addNode({id:t.id,data:Object.assign({},a)});const s=r.hasTreeStructure("combo")?r.getParent(t.id,"combo"):r.getParent(t.id);vt(s)||(e.hasNode(s.id)||e.addNode(Object.assign({},s)),e.setParent(t.id,s.id))}),r.getAllEdges().forEach(t=>{const n=W2(r.getEdge(t.id).data),i={};j0==null||j0.forEach(a=>{n[a]!==void 0&&(i[a]=n[a])}),e.addEdge({id:t.id,source:t.source,target:t.target,data:Object.assign({},M4,X2(n,P4),i)})}),e},T4=(r,e)=>{const{ranksep:t=0,rankdir:n}=e;return r.getAllNodes().forEach(i=>{isNaN(i.data.layer)||i.data.layer||(i.data.layer=0)}),r.getAllEdges().forEach(i=>{var a;i.data.minlen*=2,((a=i.data.labelpos)===null||a===void 0?void 0:a.toLowerCase())!=="c"&&(n==="TB"||n==="BT"?i.data.width+=i.data.labeloffset:i.data.height+=i.data.labeloffset)}),t/2},A4=r=>{r.getAllEdges().forEach(e=>{if(e.data.width&&e.data.height){const t=r.getNode(e.source),n=r.getNode(e.target),i={e,rank:(n.data.rank-t.data.rank)/2+t.data.rank};Vl(r,"edge-proxy",i,"_ep")}})},O4=r=>{let e=0;return r.getAllNodes().forEach(t=>{var n,i;t.data.borderTop&&(t.data.minRank=(n=r.getNode(t.data.borderTop))===null||n===void 0?void 0:n.data.rank,t.data.maxRank=(i=r.getNode(t.data.borderBottom))===null||i===void 0?void 0:i.data.rank,e=Math.max(e,t.data.maxRank||-1/0))}),e},k4=r=>{r.getAllNodes().forEach(e=>{e.data.dummy==="edge-proxy"&&(r.getEdge(e.data.e.id).data.labelRank=e.data.rank,r.removeNode(e.id))})},C4=(r,e)=>{let t,n=0,i,a=0;const{marginx:s=0,marginy:o=0}=e||{},l=u=>{if(!u.data)return;const c=u.data.x,h=u.data.y,f=u.data.width,d=u.data.height;!isNaN(c)&&!isNaN(f)&&(t===void 0&&(t=c-f/2),t=Math.min(t,c-f/2),n=Math.max(n,c+f/2)),!isNaN(h)&&!isNaN(d)&&(i===void 0&&(i=h-d/2),i=Math.min(i,h-d/2),a=Math.max(a,h+d/2))};return r.getAllNodes().forEach(u=>{l(u)}),r.getAllEdges().forEach(u=>{u!=null&&u.data.hasOwnProperty("x")&&l(u)}),t-=s,i-=o,r.getAllNodes().forEach(u=>{u.data.x-=t,u.data.y-=i}),r.getAllEdges().forEach(u=>{var c;(c=u.data.points)===null||c===void 0||c.forEach(h=>{h.x-=t,h.y-=i}),u.data.hasOwnProperty("x")&&(u.data.x-=t),u.data.hasOwnProperty("y")&&(u.data.y-=i)}),{width:n-t+s,height:a-i+o}},N4=r=>{r.getAllEdges().forEach(e=>{const t=r.getNode(e.source),n=r.getNode(e.target);let i,a;e.data.points?(i=e.data.points[0],a=e.data.points[e.data.points.length-1]):(e.data.points=[],i={x:n.data.x,y:n.data.y},a={x:t.data.x,y:t.data.y}),e.data.points.unshift(h2(t.data,i)),e.data.points.push(h2(n.data,a))})},_4=r=>{r.getAllEdges().forEach(e=>{if(e.data.hasOwnProperty("x"))switch((e.data.labelpos==="l"||e.data.labelpos==="r")&&(e.data.width-=e.data.labeloffset),e.data.labelpos){case"l":e.data.x-=e.data.width/2+e.data.labeloffset;break;case"r":e.data.x+=e.data.width/2+e.data.labeloffset;break}})},R4=r=>{r.getAllEdges().forEach(e=>{var t;e.data.reversed&&((t=e.data.points)===null||t===void 0||t.reverse())})},L4=r=>{r.getAllNodes().forEach(e=>{var t,n,i;if(!((t=r.getChildren(e.id))===null||t===void 0)&&t.length){const a=r.getNode(e.id),s=r.getNode(a.data.borderTop),o=r.getNode(a.data.borderBottom),l=r.getNode(a.data.borderLeft[((n=a.data.borderLeft)===null||n===void 0?void 0:n.length)-1]),u=r.getNode(a.data.borderRight[((i=a.data.borderRight)===null||i===void 0?void 0:i.length)-1]);a.data.width=Math.abs((u==null?void 0:u.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}}),r.getAllNodes().forEach(e=>{e.data.dummy==="border"&&r.removeNode(e.id)})},D4=r=>{r.getAllEdges().forEach(e=>{if(e.source===e.target){const t=r.getNode(e.source);t.data.selfEdges||(t.data.selfEdges=[]),t.data.selfEdges.push(e),r.removeEdge(e.id)}})},I4=r=>{const e=bc(r);e==null||e.forEach(t=>{let n=0;t==null||t.forEach((i,a)=>{var s;const o=r.getNode(i);o.data.order=a+n,(s=o.data.selfEdges)===null||s===void 0||s.forEach(l=>{Vl(r,"selfedge",{width:l.data.width,height:l.data.height,rank:o.data.rank,order:a+ ++n,e:l},"_se")}),delete o.data.selfEdges})})},B4=r=>{r.getAllNodes().forEach(e=>{const t=r.getNode(e.id);if(t.data.dummy==="selfedge"){const n=r.getNode(t.data.e.source),i=n.data.x+n.data.width/2,a=n.data.y,s=t.data.x-i,o=n.data.height/2;r.hasEdge(t.data.e.id)?r.updateEdgeData(t.data.e.id,t.data.e.data):r.addEdge({id:t.data.e.id,source:t.data.e.source,target:t.data.e.target,data:t.data.e.data}),r.removeNode(e.id),t.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}],t.data.e.data.x=t.data.x,t.data.e.data.y=t.data.y}})},X2=(r,e)=>{const t={};return e==null||e.forEach(n=>{r[n]!==void 0&&(t[n]=+r[n])}),t},W2=(r={})=>{const e={};return Object.keys(r).forEach(t=>{e[t.toLowerCase()]=r[t]}),e};function xc(r){if(!r)return[0,0,0];if(ht(r))return[r,r,r];if(r.length===0)return[0,0,0];const[e,t=e,n=e]=r;return[e,t,n]}function Xo(r,e){let t;return pt(e)?t=e:ht(e)?t=()=>e:t=()=>r,t}function G0(r,e,t=!0){return!e&&e!==0?n=>{const{size:i}=n.data||{};return i?Array.isArray(i)?t?Math.max(...i)||r:i:nr(i)&&i.width&&i.height?t?Math.max(i.width,i.height)||r:[i.width,i.height]:i:r}:pt(e)?e:ht(e)?()=>e:Array.isArray(e)?()=>t?Math.max(...e)||r:e:nr(e)&&e.width&&e.height?()=>t?Math.max(e.width,e.height)||r:[e.width,e.height]:()=>r}const H0=(r,e,t=10)=>{let n;const i=typeof e=="function"?e:()=>e||0;return r?Array.isArray(r)?n=s=>r:pt(r)?n=r:n=s=>r:n=s=>{var o,l,u;if(!((o=s.data)===null||o===void 0)&&o.bboxSize)return(l=s.data)===null||l===void 0?void 0:l.bboxSize;if(!((u=s.data)===null||u===void 0)&&u.size){const c=s.data.size;return Array.isArray(c)?c:nr(c)?[c.width,c.height]:c}return t},s=>{const o=n(s),l=i(s);return Math.max(...xc(o))+l}},X0=r=>{if(r===null)return r;if(r instanceof Date)return new Date(r.getTime());if(r instanceof Array){const e=[];return r.forEach(t=>{e.push(t)}),e.map(t=>X0(t))}if(typeof r=="object"){const e={};return Object.keys(r).forEach(t=>{e[t]=X0(r[t])}),e}return r},Ii=(r,e)=>{const t=X0(r);return t.data=t.data||{},e&&(ht(t.data.x)||(t.data.x=Math.random()*e[0]),ht(t.data.y)||(t.data.y=Math.random()*e[1])),t},z4={rankdir:"TB",nodesep:50,ranksep:50,edgeLabelSpace:!0,ranker:"tight-tree",controlPoints:!1,radial:!1,focusNode:null};class F4{constructor(e={}){this.options=e,this.id="antv-dagre",this.options=Object.assign(Object.assign({},z4),e)}execute(e,t){return Wt(this,void 0,void 0,function*(){return this.genericDagreLayout(!1,e,t)})}assign(e,t){return Wt(this,void 0,void 0,function*(){yield this.genericDagreLayout(!0,e,t)})}genericDagreLayout(e,t,n){return Wt(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),n),{nodeSize:a,align:s,rankdir:o="TB",ranksep:l,nodesep:u,ranksepFunc:c,nodesepFunc:h,edgeLabelSpace:f,ranker:d,nodeOrder:v,begin:g,controlPoints:p,radial:m,sortByCombo:b,preset:x}=i,O=new gr({tree:[]}),T=Xo(l||50,c),S=Xo(u||50,h);let k=S,C=T;(o==="LR"||o==="RL")&&(k=T,C=S);const W=G0(10,a,!1),U=t.getAllNodes(),J=t.getAllEdges();U.forEach(X=>{const q=xc(W(X)),oe=C(X),de=k(X),Oe=q[0]+2*de,Be=q[1]+2*oe,Ge=X.data.layer;ht(Ge)?O.addNode({id:X.id,data:{width:Oe,height:Be,layer:Ge}}):O.addNode({id:X.id,data:{width:Oe,height:Be}})}),b&&(O.attachTreeStructure("combo"),U.forEach(X=>{const{parentId:q}=X.data;q!==void 0&&O.hasNode(q)&&O.setParent(X.id,q,"combo")})),J.forEach(X=>{O.addEdge({id:X.id,source:X.source,target:X.target,data:{weight:X.data.weight||1}})});let te;x!=null&&x.length&&(te=new gr({nodes:x})),m4(O,{prevGraph:te,edgeLabelSpace:f,keepNodeOrder:!!v,nodeOrder:v||[],acyclicer:"greedy",ranker:d,rankdir:o,nodesep:u,align:s});const ie=[0,0];if(g){let X=1/0,q=1/0;O.getAllNodes().forEach(oe=>{X>oe.data.x&&(X=oe.data.x),q>oe.data.y&&(q=oe.data.y)}),O.getAllEdges().forEach(oe=>{var de;(de=oe.data.points)===null||de===void 0||de.forEach(Oe=>{X>Oe.x&&(X=Oe.x),q>Oe.y&&(q=Oe.y)})}),ie[0]=g[0]-X,ie[1]=g[1]-q}const ae=o==="LR"||o==="RL";if(!m){const X=new Set,oe=o==="BT"||o==="RL"?(Ge,Ve)=>Ve-Ge:(Ge,Ve)=>Ge-Ve;O.getAllNodes().forEach(Ge=>{Ge.data.x=Ge.data.x+ie[0],Ge.data.y=Ge.data.y+ie[1],X.add(ae?Ge.data.x:Ge.data.y)});const de=Array.from(X).sort(oe),Oe=ae?(Ge,Ve)=>Ge.x!==Ve.x:(Ge,Ve)=>Ge.y!==Ve.y,Be=ae?(Ge,Ve,qe)=>{const lt=Math.max(Ve.y,qe.y),Ct=Math.min(Ve.y,qe.y);return Ge.filter(Vt=>Vt.y<=lt&&Vt.y>=Ct)}:(Ge,Ve,qe)=>{const lt=Math.max(Ve.x,qe.x),Ct=Math.min(Ve.x,qe.x);return Ge.filter(Vt=>Vt.x<=lt&&Vt.x>=Ct)};O.getAllEdges().forEach((Ge,Ve)=>{var qe;f&&p&&Ge.data.type!=="loop"&&(Ge.data.controlPoints=j4((qe=Ge.data.points)===null||qe===void 0?void 0:qe.map(({x:lt,y:Ct})=>({x:lt+ie[0],y:Ct+ie[1]})),O.getNode(Ge.source),O.getNode(Ge.target),de,ae,Oe,Be))})}let ve=[];ve=O.getAllNodes().map(X=>Ii(X));const Z=O.getAllEdges();return e&&(ve.forEach(X=>{t.mergeNodeData(X.id,{x:X.data.x,y:X.data.y})}),Z.forEach(X=>{t.mergeEdgeData(X.id,{controlPoints:X.data.controlPoints})})),{nodes:ve,edges:Z}})}}const j4=(r,e,t,n,i,a,s)=>{let o=(r==null?void 0:r.slice(1,r.length-1))||[];if(e&&t){let{x:l,y:u}=e.data,{x:c,y:h}=t.data;if(i&&(l=e.data.y,u=e.data.x,c=t.data.y,h=t.data.x),h!==u&&l!==c){const f=n.indexOf(u),d=n[f+1];if(d){const p=o[0],m=i?{x:(u+d)/2,y:(p==null?void 0:p.y)||c}:{x:(p==null?void 0:p.x)||c,y:(u+d)/2};(!p||a(p,m))&&o.unshift(m)}const v=n.indexOf(h),g=Math.abs(v-f);if(g===1)o=s(o,e.data,t.data),o.length||o.push(i?{x:(u+h)/2,y:l}:{x:l,y:(u+h)/2});else if(g>1){const p=n[v-1];if(p){const m=o[o.length-1],b=i?{x:(h+p)/2,y:(m==null?void 0:m.y)||c}:{x:(m==null?void 0:m.x)||l,y:(h+p)/2};(!m||a(m,b))&&o.push(b)}}}}return o},Wo=(r,e,t)=>{const n=r.getAllNodes(),i=r.getAllEdges();if(!(n!=null&&n.length))return{nodes:[],edges:i};if(n.length===1)return e&&r.mergeNodeData(n[0].id,{x:t[0],y:t[1]}),{nodes:[Object.assign(Object.assign({},n[0]),{data:Object.assign(Object.assign({},n[0].data),{x:t[0],y:t[1]})})],edges:i}},G4={radius:null,startRadius:null,endRadius:null,startAngle:0,endAngle:2*Math.PI,clockwise:!0,divisions:1,ordering:null,angleRatio:1};class H4{constructor(e={}){this.options=e,this.id="circular",this.options=Object.assign(Object.assign({},G4),e)}execute(e,t){return Wt(this,void 0,void 0,function*(){return this.genericCircularLayout(!1,e,t)})}assign(e,t){return Wt(this,void 0,void 0,function*(){yield this.genericCircularLayout(!0,e,t)})}genericCircularLayout(e,t,n){return Wt(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),n),{width:a,height:s,center:o,divisions:l,startAngle:u=0,endAngle:c=2*Math.PI,angleRatio:h,ordering:f,clockwise:d,nodeSpacing:v,nodeSize:g}=i,p=t.getAllNodes(),m=t.getAllEdges(),[b,x,O]=W4(a,s,o),T=p==null?void 0:p.length;if(!T||T===1)return Wo(t,e,O);const S=(c-u)/T;let{radius:k,startRadius:C,endRadius:W}=i;if(v){const ae=Xo(10,v),ve=G0(10,g);let Z=-1/0;p.forEach(X=>{const q=ve(X);Z{q===0?H+=Z||10:H+=(ae(X)||0)+(Z||10)}),k=H/(2*Math.PI)}else!k&&!C&&!W?k=Math.min(x,b)/2:!C&&W?C=W:C&&!W&&(W=C);const U=S*h;let J=[];f==="topology"?J=V2(t,p):f==="topology-directed"?J=V2(t,p,!0):f==="degree"?J=X4(t,p):J=p.map(ae=>Ii(ae));const te=Math.ceil(T/l);for(let ae=0;ae{t.mergeNodeData(ae.id,{x:ae.data.x,y:ae.data.y})}),{nodes:J,edges:m}})}}const V2=(r,e,t=!1)=>{const n=[Ii(e[0])],i={},a=e.length;i[e[0].id]=!0;let s=0;return e.forEach((o,l)=>{if(l!==0)if((l===a-1||r.getDegree(o.id,"both")!==r.getDegree(e[l+1].id,"both")||r.areNeighbors(n[s].id,o.id))&&!i[o.id])n.push(Ii(o)),i[o.id]=!0,s++;else{const u=t?r.getSuccessors(n[s].id):r.getNeighbors(n[s].id);let c=!1;for(let f=0;f{t.push(Ii(n))}),t.sort((n,i)=>r.getDegree(n.id,"both")-r.getDegree(i.id,"both")),t}const W4=(r,e,t)=>{let n=r,i=e,a=t;return!n&&typeof window!="undefined"&&(n=window.innerWidth),!i&&typeof window!="undefined"&&(i=window.innerHeight),a||(a=[n/2,i/2]),[n,i,a]},Ss=Array.isArray,V4={nodeSize:30,nodeSpacing:10,preventOverlap:!1,sweep:void 0,equidistant:!1,startAngle:3/2*Math.PI,clockwise:!0,maxLevelDiff:void 0,sortBy:"degree"};class W0{constructor(e={}){this.options=e,this.id="concentric",this.options=Object.assign(Object.assign({},V4),e)}execute(e,t){return Wt(this,void 0,void 0,function*(){return this.genericConcentricLayout(!1,e,t)})}assign(e,t){return Wt(this,void 0,void 0,function*(){yield this.genericConcentricLayout(!0,e,t)})}genericConcentricLayout(e,t,n){return Wt(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),n),{center:a,width:s,height:o,sortBy:l,maxLevelDiff:u,sweep:c,clockwise:h,equidistant:f,preventOverlap:d,startAngle:v=3/2*Math.PI,nodeSize:g,nodeSpacing:p}=i,m=t.getAllNodes(),b=t.getAllEdges(),x=!s&&typeof window!="undefined"?window.innerWidth:s,O=!o&&typeof window!="undefined"?window.innerHeight:o,T=a||[x/2,O/2];if(!(m!=null&&m.length)||m.length===1)return Wo(t,e,T);const S=[];let k,C=0;Ss(g)?k=Math.max(g[0],g[1]):pt(g)?(k=-1/0,m.forEach(X=>{const q=Math.max(...xc(g(X)));q>k&&(k=q)})):k=g,Ss(p)?C=Math.max(p[0],p[1]):ht(p)&&(C=p),m.forEach(X=>{const q=Ii(X);S.push(q);let oe=k;const{data:de}=q;Ss(de.size)?oe=Math.max(de.size[0],de.size[1]):ht(de.size)?oe=de.size:nr(de.size)&&(oe=Math.max(de.size.width,de.size.height)),k=Math.max(k,oe),pt(p)&&(C=Math.max(p(X),C))});const W={};S.forEach((X,q)=>{W[X.id]=q});let U=l;(!Xt(U)||S[0].data[U]===void 0)&&(U="degree"),U==="degree"?S.sort((X,q)=>t.getDegree(q.id,"both")-t.getDegree(X.id,"both")):S.sort((X,q)=>q.data[U]-X.data[U]);const J=S[0],te=(u||(U==="degree"?t.getDegree(J.id,"both"):J.data[U]))/4,ie=[{nodes:[]}];let ae=ie[0];S.forEach(X=>{if(ae.nodes.length>0){const q=Math.abs(U==="degree"?t.getDegree(ae.nodes[0].id,"both")-t.getDegree(X.id,"both"):ae.nodes[0].data[U]-X.data[U]);te&&q>=te&&(ae={nodes:[]},ie.push(ae))}ae.nodes.push(X)});let ve=k+C;if(!d){const X=ie.length>0&&ie[0].nodes.length>1,oe=(Math.min(x,O)/2-ve)/(ie.length+(X?1:0));ve=Math.min(ve,oe)}let Z=0;if(ie.forEach(X=>{const q=c===void 0?2*Math.PI-2*Math.PI/X.nodes.length:c;if(X.dTheta=q/Math.max(1,X.nodes.length-1),X.nodes.length>1&&d){const oe=Math.cos(X.dTheta)-Math.cos(0),de=Math.sin(X.dTheta)-Math.sin(0),Oe=Math.sqrt(ve*ve/(oe*oe+de*de));Z=Math.max(Oe,Z)}X.r=Z,Z+=ve}),f){let X=0,q=0;for(let oe=0;oe{de===0&&(q=oe.r||0),oe.r=q,q+=X})}return ie.forEach(X=>{const q=X.dTheta||0,oe=X.r||0;X.nodes.forEach((de,Oe)=>{const Be=v+(h?1:-1)*q*Oe;de.data.x=T[0]+oe*Math.cos(Be),de.data.y=T[1]+oe*Math.sin(Be)})}),e&&S.forEach(X=>t.mergeNodeData(X.id,{x:X.data.x,y:X.data.y})),{nodes:S,edges:b}})}}var V0=w(46632),Y4=w(67217);const U4=.81,Y0=.1;function Z4(r,e,t,n,i=2){const a=e/t,s=r.getAllNodes(),o=s.map((c,h)=>{const{nodeStrength:f,x:d,y:v,z:g,size:p}=c.data;return{x:d,y:v,z:g,size:p,index:h,id:c.id,vx:0,vy:0,vz:0,weight:a*f}}),l=(i===2?(0,V0.Z)(o,c=>c.x,c=>c.y):(0,Y4.Z)(o,c=>c.x,c=>c.y,c=>c.z)).visitAfter(K4),u=new Map;return o.forEach(c=>{u.set(c.id,c),J4(c,l,i)}),o.map((c,h)=>{const{id:f,data:d}=s[h],{mass:v=1}=d;n[f]={x:c.vx/v,y:c.vy/v,z:c.vz/v}}),n}function K4(r){let e=0,t=0,n=0,i=0,a=0;const s=r.length;if(s){for(let o=0;o{var o;if(((o=r.data)===null||o===void 0?void 0:o.id)===a.id)return;const l=[t,n,i][s-1],u=a.x-r.x||Y0,c=a.y-r.y||Y0,h=a.z-r.z||Y0,f=[u,c,h],d=l-e;let v=0;for(let m=0;mQ4(n,i,a,s,o,r,t))}const q4={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 Y2{constructor(e={}){this.options=e,this.id="force",this.timeInterval=0,this.judgingDistance=0,this.running=!1,this.options=Object.assign(Object.assign({},q4),e)}execute(e,t){return Wt(this,void 0,void 0,function*(){return this.genericForceLayout(!1,e,t)})}assign(e,t){return Wt(this,void 0,void 0,function*(){yield this.genericForceLayout(!0,e,t)})}stop(){this.timeInterval&&typeof window!="undefined"&&window.clearInterval(this.timeInterval),this.running=!1}tick(e=this.options.maxIteration||1){if(this.lastResult)return this.lastResult;for(let n=0;(this.judgingDistance>this.lastOptions.minMovement||n<1)&&nthis.lastGraph.mergeNodeData(n.id,{x:n.data.x,y:n.data.y,z:this.options.dimensions===3?n.data.z:void 0})),t}genericForceLayout(e,t,n){return Wt(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),n),a=t.getAllNodes(),s=t.getAllEdges(),o=this.formatOptions(i,t),{dimensions:l,width:u,height:c,nodeSize:h,getMass:f,nodeStrength:d,edgeStrength:v,linkDistance:g}=o,p=a.map((C,W)=>Object.assign(Object.assign({},C),{data:Object.assign(Object.assign({},C.data),{x:ht(C.data.x)?C.data.x:Math.random()*u,y:ht(C.data.y)?C.data.y:Math.random()*c,z:ht(C.data.z)?C.data.z:Math.random()*Math.sqrt(u*c),size:h(C)||30,mass:f(C),nodeStrength:d(C)})})),m=s.map(C=>Object.assign(Object.assign({},C),{data:Object.assign(Object.assign({},C.data),{edgeStrength:v(C),linkDistance:g(C,t.getNode(C.source),t.getNode(C.target))})}));if(!(a!=null&&a.length))return this.lastResult={nodes:[],edges:s},{nodes:[],edges:s};const b={};a.forEach((C,W)=>{b[C.id]={x:0,y:0,z:0}});const x=new gr({nodes:p,edges:m});this.formatCentripetal(o,x);const{maxIteration:O,minMovement:T,onTick:S}=o;if(this.lastLayoutNodes=p,this.lastLayoutEdges=m,this.lastAssign=e,this.lastGraph=t,this.lastCalcGraph=x,this.lastOptions=o,this.lastVelMap=b,typeof window=="undefined")return;let k=0;return new Promise(C=>{this.timeInterval=window.setInterval(()=>{(!a||!this.running)&&C({nodes:U0(t,p),edges:s}),this.runOneStep(x,t,k,b,o),this.updatePosition(t,x,b,o),e&&p.forEach(W=>t.mergeNodeData(W.id,{x:W.data.x,y:W.data.y,z:l===3?W.data.z:void 0})),S==null||S({nodes:U0(t,p),edges:s}),k++,(k>=O||this.judgingDistance{let u=1;ht(l==null?void 0:l.data.mass)&&(u=l==null?void 0:l.data.mass);const c=t.getDegree(l.id,"both");return!c||c<5?u:c*5*u}),n.nodeSize=H0(e.nodeSize,e.nodeSpacing);const o=e.linkDistance?Xo(1,e.linkDistance):l=>1+n.nodeSize(t.getNode(l.source))+n.nodeSize(t.getNode(l.target));return n.linkDistance=o,n.nodeStrength=Xo(1,e.nodeStrength),n.edgeStrength=Xo(1,e.edgeStrength),n}formatCentripetal(e,t){const{dimensions:n,centripetalOptions:i,center:a,clusterNodeStrength:s,leafCluster:o,clustering:l,nodeClusterBy:u}=e,c=t.getAllNodes(),h=i||{leaf:2,single:2,others:1,center:m=>({x:a[0],y:a[1],z:n===3?a[2]:void 0})};typeof s!="function"&&(e.clusterNodeStrength=m=>s);let f,d;if(o&&u&&(f=U2(t,u),d=Array.from(new Set(c==null?void 0:c.map(m=>m.data[u])))||[],e.centripetalOptions=Object.assign(h,{single:100,leaf:m=>{const{siblingLeaves:b,sameTypeLeaves:x}=f[m.id]||{};return(x==null?void 0:x.length)===(b==null?void 0:b.length)||(d==null?void 0:d.length)===1?1:e.clusterNodeStrength(m)},others:1,center:m=>{const b=t.getDegree(m.id,"both");if(!b)return{x:100,y:100,z:0};let x;if(b===1){const{sameTypeLeaves:O=[]}=f[m.id]||{};O.length===1?x=void 0:O.length>1&&(x=Z2(O))}else x=void 0;return{x:x==null?void 0:x.x,y:x==null?void 0:x.y,z:x==null?void 0:x.z}}})),l&&u){f||(f=U2(t,u)),d||(d=Array.from(new Set(c.map(b=>b.data[u])))),d=d.filter(b=>b!==void 0);const m={};d.forEach(b=>{const x=c.filter(O=>O.data[u]===b).map(O=>t.getNode(O.id));m[b]=Z2(x)}),e.centripetalOptions=Object.assign(h,{single:b=>e.clusterNodeStrength(b),leaf:b=>e.clusterNodeStrength(b),others:b=>e.clusterNodeStrength(b),center:b=>{const x=m[b.data[u]];return{x:x==null?void 0:x.x,y:x==null?void 0:x.y,z:x==null?void 0:x.z}}})}const{leaf:v,single:g,others:p}=e.centripetalOptions||{};v&&typeof v!="function"&&(e.centripetalOptions.leaf=()=>v),g&&typeof g!="function"&&(e.centripetalOptions.single=()=>g),p&&typeof p!="function"&&(e.centripetalOptions.others=()=>p)}runOneStep(e,t,n,i,a){const s={},o=e.getAllNodes(),l=e.getAllEdges();if(!(o!=null&&o.length))return;const{monitor:u}=a;if(this.calRepulsive(e,s,a),l&&this.calAttractive(e,s,a),this.calGravity(e,t,s,a),this.updateVelocity(e,s,i,a),u){const c=this.calTotalEnergy(s,o);u({energy:c,nodes:t.getAllNodes(),edges:t.getAllEdges(),iterations:n})}}calTotalEnergy(e,t){if(!(t!=null&&t.length))return 0;let n=0;return t.forEach((i,a)=>{const s=e[i.id].x,o=e[i.id].y,l=this.options.dimensions===3?e[i.id].z:0,u=s*s+o*o+l*l,{mass:c=1}=i.data;n+=c*u*.5}),n}calRepulsive(e,t,n){const{dimensions:i,factor:a,coulombDisScale:s}=n;Z4(e,a,s*s,t,i)}calAttractive(e,t,n){const{dimensions:i,nodeSize:a}=n;e.getAllEdges().forEach((s,o)=>{const{source:l,target:u}=s,c=e.getNode(l),h=e.getNode(u);if(!c||!h)return;let f=h.data.x-c.data.x,d=h.data.y-c.data.y,v=i===3?h.data.z-c.data.z:0;!f&&!d&&(f=Math.random()*.01,d=Math.random()*.01,i===3&&!v&&(v=Math.random()*.01));const g=Math.sqrt(f*f+d*d+v*v);if(g{const{id:g,data:p}=v,{mass:m,x:b,y:x,z:O}=p,T=t.getNode(g);let S=0,k=0,C=0,W=f;const U=e.getDegree(g,"in"),J=e.getDegree(g,"out"),te=e.getDegree(g,"both"),ie=a==null?void 0:a(T,te);if(ie){const[ae,ve,Z]=ie;S=b-ae,k=x-ve,W=Z}else S=b-h[0],k=x-h[1],C=O-h[2];if(W&&(n[g].x-=W*S/m,n[g].y-=W*k/m,n[g].z-=W*C/m),d){const{leaf:ae,single:ve,others:Z,center:H}=d,{x:X,y:q,z:oe,centerStrength:de}=(H==null?void 0:H(T,o,l,u,c))||{x:0,y:0,z:0,centerStrength:0};if(!ht(X)||!ht(q))return;const Oe=(b-X)/m,Be=(x-q)/m,Ge=(O-oe)/m;if(de&&(n[g].x-=de*Oe,n[g].y-=de*Be,n[g].z-=de*Ge),te===0){const qe=ve(T);if(!qe)return;n[g].x-=qe*Oe,n[g].y-=qe*Be,n[g].z-=qe*Ge;return}if(U===0||J===0){const qe=ae(T,o,l);if(!qe)return;n[g].x-=qe*Oe,n[g].y-=qe*Be,n[g].z-=qe*Ge;return}const Ve=Z(T);if(!Ve)return;n[g].x-=Ve*Oe,n[g].y-=Ve*Be,n[g].z-=Ve*Ge}})}updateVelocity(e,t,n,i){const{damping:a,maxSpeed:s,interval:o,dimensions:l}=i,u=e.getAllNodes();u!=null&&u.length&&u.forEach(c=>{const{id:h}=c;let f=(n[h].x+t[h].x*o)*a||.01,d=(n[h].y+t[h].y*o)*a||.01,v=l===3?(n[h].z+t[h].z*o)*a||.01:0;const g=Math.sqrt(f*f+d*d+v*v);if(g>s){const p=s/g;f=p*f,d=p*d,v=p*v}n[h]={x:f,y:d,z:v}})}updatePosition(e,t,n,i){const{distanceThresholdMode:a,interval:s,dimensions:o}=i,l=t.getAllNodes();if(!(l!=null&&l.length)){this.judgingDistance=0;return}let u=0;a==="max"?this.judgingDistance=-1/0:a==="min"&&(this.judgingDistance=1/0),l.forEach(c=>{const{id:h}=c,f=e.getNode(h);if(ht(f.data.fx)&&ht(f.data.fy)){t.mergeNodeData(h,{x:f.data.fx,y:f.data.fy,z:o===3?f.data.fz:void 0});return}const d=n[h].x*s,v=n[h].y*s,g=o===3?n[h].z*s:0;t.mergeNodeData(h,{x:c.data.x+d,y:c.data.y+v,z:c.data.z+g});const p=Math.sqrt(d*d+v*v+g*g);switch(a){case"max":this.judgingDistancep&&(this.judgingDistance=p);break;default:u=u+p;break}}),(!a||a==="mean")&&(this.judgingDistance=u/l.length)}}const U2=(r,e)=>{const t=r.getAllNodes();if(!(t!=null&&t.length))return{};const n={};return t.forEach((i,a)=>{r.getDegree(i.id,"both")===1&&(n[i.id]=$4(r,"leaf",i,e))}),n},$4=(r,e,t,n)=>{const i=r.getDegree(t.id,"in"),a=r.getDegree(t.id,"out");let s=t,o=[];i===0?(s=r.getSuccessors(t.id)[0],o=r.getNeighbors(s.id)):a===0&&(s=r.getPredecessors(t.id)[0],o=r.getNeighbors(s.id)),o=o.filter(u=>r.getDegree(u.id,"in")===0||r.getDegree(u.id,"out")===0);const l=e8(r,e,n,t,o);return{coreNode:s,siblingLeaves:o,sameTypeLeaves:l}},e8=(r,e,t,n,i)=>{const a=n.data[t]||"";let s=(i==null?void 0:i.filter(o=>o.data[t]===a))||[];return e==="leaf"&&(s=s.filter(o=>r.getDegree(o.id,"in")===0||r.getDegree(o.id,"out")===0)),s},Z2=r=>{const e={x:0,y:0};r.forEach(n=>{const{x:i,y:a}=n.data;e.x+=i||0,e.y+=a||0});const t=r.length||1;return{x:e.x/t,y:e.y/t}},U0=(r,e)=>e.map(t=>{const{id:n,data:i}=t,a=r.getNode(n);return Object.assign(Object.assign({},a),{data:Object.assign(Object.assign({},a.data),{x:i.x,y:i.y,z:i.z})})});var Zt=w(48202);const CQ=Zt.XA,NQ=Zt.a_,_Q=Zt.yQ,RQ=Zt.Hs,LQ=Zt.Ec,DQ=Zt.dx,IQ=Zt.LU,BQ=Zt.Rm,ro=Zt.y3,zQ=Zt.qK,FQ=Zt.pb,jQ=Zt.j,GQ=Zt.sO,HQ=Zt.BZ,XQ=Zt.EK,WQ=Zt.Db,VQ=Zt.Fx,YQ=Zt.tU,UQ=Zt.Ym,ZQ=Zt.rs,KQ=Zt.QR,QQ=Zt.TB,JQ=Zt.oH,K2=Zt.Sc,qQ=Zt.BN,$Q=Zt.it,eJ=Zt.$r,tJ=Zt.QM,nJ=Zt.AV;var rJ=(Zt.y3,Zt.y3);const iJ=Zt.GH,aJ=Zt.SO,sJ=Zt.uZ,oJ=Zt.yU,lJ=Zt.F1,uJ=Zt.re,Q2=r=>{const e=[],t=r.length;for(let n=0;ne[i][n]+e[n][a]&&(e[i][a]=e[i][n]+e[n][a]);return e},J2=(r,e)=>{const{nodes:t,edges:n}=r,i=[],a={};if(!t)throw new Error("invalid nodes data!");return t&&t.forEach((s,o)=>{a[s.id]=o;const l=[];i.push(l)}),n==null||n.forEach(s=>{const{source:o,target:l}=s,u=a[o],c=a[l];u===void 0||c===void 0||(i[u][c]=1,e||(i[c][u]=1))}),i},t8=(r,e)=>{const t=[];return r.forEach(n=>{const i=[];n.forEach(a=>{i.push(a*e)}),t.push(i)}),t},n8=r=>{let e=1/0,t=1/0,n=-1/0,i=-1/0;return r.forEach(a=>{let s=a.data.size;Ss(s)?s.length===1&&(s=[s[0],s[0]]):ht(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],u=a.data.x+o[0],c=a.data.y-o[1],h=a.data.y+o[1];e>l&&(e=l),t>c&&(t=c),nMath.sqrt((r.x-e.x)*(r.x-e.x)+(r.y-e.y)*(r.y-e.y)),Z0=(r,e,t,n="TB",i,a={})=>{if(!(e!=null&&e.length))return;const{stopBranchFn:s,stopAllFn:o}=a;for(let l=0;l{const m=Ii(o[p]);m.data.x=g[0]+a[0],m.data.y=g[1]+a[1],d.push(m)}),e&&d.forEach(g=>t.mergeNodeData(g.id,{x:g.data.x,y:g.data.y})),{nodes:d,edges:l}})}}const i8=r=>{let e=-999999;r.forEach(t=>{t.forEach(n=>{n!==1/0&&e{t.forEach((i,a)=>{i===1/0&&(r[n][a]=e)})})},a8=r=>{const t=ro.mul(ro.pow(r,2),-.5),n=t.mean("row"),i=t.mean("column"),a=t.mean();t.add(a).subRowVector(n).subColumnVector(i);const s=new K2(t),o=ro.sqrt(s.diagonalMatrix).diagonal();return s.leftSingularVectors.toJSON().map(l=>ro.mul([l],[o]).toJSON()[0].splice(0,2))};function K0(r){return!!r.tick&&!!r.stop}const s8={gForce:!0,force2:!0,d3force:!0,fruchterman:!0,forceAtlas2:!0,force:!0,"graphin-force":!0},o8={center:[0,0],comboPadding:10,treeKey:"combo"};class l8{constructor(e={}){this.options=e,this.id="comboCombined",this.options=Object.assign(Object.assign({},o8),e)}execute(e,t){return Wt(this,void 0,void 0,function*(){return this.genericComboCombinedLayout(!1,e,t)})}assign(e,t){return Wt(this,void 0,void 0,function*(){yield this.genericComboCombinedLayout(!0,e,t)})}genericComboCombinedLayout(e,t,n){return Wt(this,void 0,void 0,function*(){const i=this.initVals(Object.assign(Object.assign({},this.options),n)),{center:a,treeKey:s,outerLayout:o}=i,l=t.getAllNodes().filter(C=>!C.data._isCombo),u=t.getAllNodes().filter(C=>C.data._isCombo),c=t.getAllEdges(),h=l==null?void 0:l.length;if(!h||h===1)return Wo(t,e,a);const f=[],d=new Map;l.forEach(C=>{d.set(C.id,C)});const v=new Map;u.forEach(C=>{v.set(C.id,C)});const g=new Map,p=this.getInnerGraphs(t,s,d,v,c,i,g);yield Promise.all(p);const m=new Map,b=[],x=new Map;let O=!0;t.getRoots(s).forEach(C=>{const W=g.get(C.id),U=v.get(C.id)||d.get(C.id),J={id:C.id,data:Object.assign(Object.assign({},C.data),{x:W.data.x||U.data.x,y:W.data.y||U.data.y,fx:W.data.fx||U.data.fx,fy:W.data.fy||U.data.fy,mass:W.data.mass||U.data.mass,size:W.data.size})};b.push(J),m.set(C.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),Z0(t,[C],te=>{te.id!==C.id&&x.set(te.id,C.id)},"TB",s)});const T=[];c.forEach(C=>{const W=x.get(C.source)||C.source,U=x.get(C.target)||C.target;W!==U&&m.has(W)&&m.has(U)&&T.push({id:C.id,source:W,target:U,data:{}})});let S;if(b!=null&&b.length){if(b.length===1)b[0].data.x=a[0],b[0].data.y=a[1];else{const C=new gr({nodes:b,edges:T}),W=o||new Y2;O&&s8[W.id]&&(yield(b.length<100?new $2:new W0).assign(C));const U=Object.assign({center:a,kg:5,preventOverlap:!0,animate:!1},W.id==="force"?{gravity:1,factor:4,linkDistance:(J,te,ie)=>{const ae=Math.max(...te.data.size)||32,ve=Math.max(...ie.data.size)||32;return ae/2+ve/2+200}}:{});S=yield eP(W,C,U)}g.forEach(C=>{var W;const U=S.nodes.find(ie=>ie.id===C.id);if(U){const{x:ie,y:ae}=U.data;C.data.visited=!0,C.data.x=ie,C.data.y=ae,f.push({id:C.id,data:{x:ie,y:ae}})}const{x:J,y:te}=C.data;(W=C.data.nodes)===null||W===void 0||W.forEach(ie=>{f.push({id:ie.id,data:{x:ie.data.x+J,y:ie.data.y+te}})})}),g.forEach(({data:C})=>{const{x:W,y:U,visited:J,nodes:te}=C;te==null||te.forEach(ie=>{if(!J){const ae=f.find(ve=>ve.id===ie.id);ae.data.x+=W||0,ae.data.y+=U||0}})})}return e&&f.forEach(C=>{t.mergeNodeData(C.id,{x:C.data.x,y:C.data.y})}),{nodes:f,edges:c}})}initVals(e){const t=Object.assign({},e),{nodeSize:n,spacing:i,comboPadding:a}=e;let s,o;if(ht(i)?o=()=>i:pt(i)?o=i:o=()=>0,t.spacing=o,!n)s=u=>{const c=o(u);return u.size?Ss(u.size)?((u.size[0]>u.size[1]?u.size[0]:u.size[1])+c)/2:nr(u.size)?((u.size.width>u.size.height?u.size.width:u.size.height)+c)/2:(u.size+c)/2:32+c/2};else if(pt(n))s=u=>{const c=n(u),h=o(u);return Ss(u.size)?((u.size[0]>u.size[1]?u.size[0]:u.size[1])+h)/2:((c||32)+h)/2};else if(Ss(n)){const c=(n[0]>n[1]?n[0]:n[1])/2;s=h=>c+o(h)/2}else{const u=n/2;s=c=>u+o(c)/2}t.nodeSize=s;let l;return ht(a)?l=()=>a:Ss(a)?l=()=>Math.max.apply(null,a):pt(a)?l=a:l=()=>0,t.comboPadding=l,t}getInnerGraphs(e,t,n,i,a,s,o){const{nodeSize:l,comboPadding:u,spacing:c,innerLayout:h}=s,f=h||new W0({}),d={center:[0,0],preventOverlap:!0,nodeSpacing:c},v=[],g=p=>{let m=(u==null?void 0:u(p))||10;return Ss(m)&&(m=Math.max(...m)),{size:m?[m*2,m*2]:[30,30],padding:m}};return e.getRoots(t).forEach(p=>{o.set(p.id,{id:p.id,data:{nodes:[],size:g(p).size}});let m=Promise.resolve();Z0(e,[p],b=>{var x;if(!b.data._isCombo)return;const{size:O,padding:T}=g(b);if(!(!((x=e.getChildren(b.id,t))===null||x===void 0)&&x.length))o.set(b.id,{id:b.id,data:Object.assign(Object.assign({},b.data),{size:O})});else{const S=o.get(b.id);o.set(b.id,{id:b.id,data:Object.assign({nodes:[]},S==null?void 0:S.data)});const k=new Map,C=e.getChildren(b.id,t).map(J=>{if(J.data._isCombo)return o.has(J.id)||o.set(J.id,{id:J.id,data:Object.assign({},J.data)}),k.set(J.id,!0),o.get(J.id);const te=n.get(J.id)||i.get(J.id);return k.set(J.id,!0),{id:J.id,data:Object.assign(Object.assign({},te.data),J.data)}}),W={nodes:C,edges:a.filter(J=>k.has(J.source)&&k.has(J.target))};let U=1/0;C.forEach(J=>{var te;let{size:ie}=J.data;ie||(ie=((te=o.get(J.id))===null||te===void 0?void 0:te.data.size)||(l==null?void 0:l(J))||[30,30]),ht(ie)&&(ie=[ie,ie]);const[ae,ve]=ie;U>ae&&(U=ae),U>ve&&(U=ve),J.data.size=ie}),m=m.then(()=>Wt(this,void 0,void 0,function*(){const J=new gr(W);yield eP(f,J,d,!0);const{minX:te,minY:ie,maxX:ae,maxY:ve}=n8(C),Z={x:(ae+te)/2,y:(ve+ie)/2};W.nodes.forEach(X=>{X.data.x-=Z.x,X.data.y-=Z.y});const H=[Math.max(ae-te,U)+T*2,Math.max(ve-ie,U)+T*2];o.get(b.id).data.size=H,o.get(b.id).data.nodes=C}))}return!0},"BT",t),v.push(m)}),v}}function eP(r,e,t,n){var i;return Wt(this,void 0,void 0,function*(){return K0(r)?(r.execute(e,t),r.stop(),r.tick((i=t.iterations)!==null&&i!==void 0?i:300)):n?yield r.assign(e,t):yield r.execute(e,t)})}function Pr(r){return function(){return r}}function io(r){return(r()-.5)*1e-6}function u8(r){return r.index}function tP(r,e){var t=r.get(e);if(!t)throw new Error("node not found: "+e);return t}function c8(r){var e=u8,t=h,n,i=Pr(30),a,s,o,l,u,c=1;r==null&&(r=[]);function h(p){return 1/Math.min(o[p.source.index],o[p.target.index])}function f(p){for(var m=0,b=r.length;m[e(T,S,s),T])),O;for(p=0,o=new Array(m);p{}};function nP(){for(var r=0,e=arguments.length,t={},n;r=0&&(n=t.slice(i+1),t=t.slice(0,i)),t&&!e.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}})}wd.prototype=nP.prototype={constructor:wd,on:function(r,e){var t=this._,n=f8(r+"",t),i,a=-1,s=n.length;if(arguments.length<2){for(;++a0)for(var t=new Array(i),n=0,i,a;n=0&&r._call.call(void 0,e),r=r._next;--Yl}function lP(){Vo=(Md=Mc.now())+Sd,Yl=Ec=0;try{p8()}finally{Yl=0,y8(),Vo=0}}function m8(){var r=Mc.now(),e=r-Md;e>iP&&(Sd-=e,Md=r)}function y8(){for(var r,e=Pd,t,n=1/0;e;)e._call?(n>e._time&&(n=e._time),r=e,e=e._next):(t=e._next,e._next=null,e=r?r._next=t:Pd=t);Pc=r,J0(n)}function J0(r){if(!Yl){Ec&&(Ec=clearTimeout(Ec));var e=r-Vo;e>24?(r<1/0&&(Ec=setTimeout(lP,r-Mc.now()-Sd)),wc&&(wc=clearInterval(wc))):(wc||(Md=Mc.now(),wc=setInterval(m8,iP)),Yl=1,aP(lP))}}const b8=1664525,x8=1013904223,uP=4294967296;function E8(){let r=1;return()=>(r=(b8*r+x8)%uP)/uP}function w8(r){return r.x}function P8(r){return r.y}var M8=10,S8=Math.PI*(3-Math.sqrt(5));function T8(r){var e,t=1,n=.001,i=1-Math.pow(n,1/300),a=0,s=.6,o=new Map,l=oP(h),u=v8("tick","end"),c=E8();r==null&&(r=[]);function h(){f(),u.call("tick",e),t1?(p==null?o.delete(g):o.set(g,v(p)),e):o.get(g)},find:function(g,p,m){var b=0,x=r.length,O,T,S,k,C;for(m==null?m=1/0:m*=m,b=0;b1?(u.on(g,p),e):u.on(g)}}}function A8(){var r,e,t,n,i=Pr(-30),a,s=1,o=1/0,l=.81;function u(d){var v,g=r.length,p=(0,V0.Z)(r,w8,P8).visitAfter(h);for(n=d,v=0;v=o)return;(d.data!==e||d.next)&&(m===0&&(m=io(t),O+=m*m),b===0&&(b=io(t),O+=b*b),Of.index){var J=d-C.x-C.vx,te=v-C.y-C.vy,ie=J*J+te*te;ied+U||Sv+U||ku.r&&(u.r=u[c].r)}function l(){if(e){var u,c=e.length,h;for(t=new Array(c),u=0;ut.id},manyBody:{},center:{x:0,y:0}},this.context={options:{},assign:!1,nodes:[],edges:[]},ri(this.options,e),this.options.forceSimulation&&(this.simulation=this.options.forceSimulation)}execute(e,t){return Wt(this,void 0,void 0,function*(){return this.genericLayout(!1,e,t)})}assign(e,t){return Wt(this,void 0,void 0,function*(){yield this.genericLayout(!0,e,t)})}stop(){this.simulation.stop()}tick(e){return this.simulation.tick(e),this.getResult()}restart(){this.simulation.restart()}setFixedPosition(e,t){const n=this.context.nodes.find(i=>i.id===e);n&&t.forEach((i,a)=>{if(typeof i=="number"||i===null){const s=["fx","fy","fz"][a];n[s]=i}})}getOptions(e){var t,n;const i=ri({},this.options,e);return i.collide&&((t=i.collide)===null||t===void 0?void 0:t.radius)===void 0&&(i.collide=i.collide||{},i.collide.radius=(n=i.nodeSize)!==null&&n!==void 0?n: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(e,t,n){var i;return Wt(this,void 0,void 0,function*(){const a=this.getOptions(n),s=t.getAllNodes().map(({id:c,data:h})=>Object.assign(Object.assign({id:c},h),jo(h.data,this.config.inputNodeAttrs))),o=t.getAllEdges().map(c=>Object.assign({},c));Object.assign(this.context,{assign:e,nodes:s,edges:o,graph:t});const l=new Promise(c=>{this.resolver=c}),u=this.setSimulation(a);return u.nodes(s),(i=u.force("link"))===null||i===void 0||i.links(o),l})}getResult(){const{assign:e,nodes:t,edges:n,graph:i}=this.context,a=t.map(o=>({id:o.id,data:Object.assign(Object.assign({},o.data),jo(o,this.config.outputNodeAttrs))})),s=n.map(({id:o,source:l,target:u,data:c})=>({id:o,source:typeof l=="object"?l.id:l,target:typeof u=="object"?u.id:u,data:c}));return e&&a.forEach(o=>i.mergeNodeData(o.id,o.data)),{nodes:a,edges:s}}initSimulation(){return T8()}setSimulation(e){const t=this.simulation||this.options.forceSimulation||this.initSimulation();return this.simulation||(this.simulation=t.on("tick",()=>{var n;return(n=e.onTick)===null||n===void 0?void 0:n.call(e,this.getResult())}).on("end",()=>{var n;return(n=this.resolver)===null||n===void 0?void 0:n.call(this,this.getResult())})),cP(t,this.config.simulationAttrs.map(n=>[n,e[n]])),Object.entries(this.forceMap).forEach(([n,i])=>{const a=n;if(e[n]){let s=t.force(a);s||(s=i(),t.force(a,s)),cP(s,Object.entries(e[a]))}else t.force(a,null)}),t}}const cP=(r,e)=>e.reduce((t,[n,i])=>!t[n]||i===void 0?t:t[n].call(r,i),r);var hP=w(70681),I8=w.n(hP);class Td{constructor(e){this.id="dagre",this.options={},Object.assign(this.options,Td.defaultOptions,e)}execute(e,t){return Wt(this,void 0,void 0,function*(){return this.genericDagreLayout(!1,e,Object.assign(Object.assign({},this.options),t))})}assign(e,t){return Wt(this,void 0,void 0,function*(){yield this.genericDagreLayout(!0,e,Object.assign(Object.assign({},this.options),t))})}genericDagreLayout(e,t,n){return Wt(this,void 0,void 0,function*(){const{nodeSize:i}=n,a=new hP.graphlib.Graph;a.setGraph(n),a.setDefaultEdgeLabel(()=>({}));const s=t.getAllNodes(),o=t.getAllEdges();[...s,...o].some(({id:u})=>ht(u))&&console.error("Dagre layout only support string id, it will convert number to string."),t.getAllNodes().forEach(u=>{const{id:c}=u,h=Object.assign({},u.data);if(i!==void 0){const[f,d]=xc(pt(i)?i(u):i);Object.assign(h,{width:f,height:d})}a.setNode(c.toString(),h)}),t.getAllEdges().forEach(({id:u,source:c,target:h})=>{a.setEdge(c.toString(),h.toString(),{id:u})}),I8().layout(a);const l={nodes:[],edges:[]};return a.nodes().forEach(u=>{const c=a.node(u);l.nodes.push({id:u,data:c}),e&&t.mergeNodeData(u,c)}),a.edges().forEach(u=>{const c=a.edge(u),{id:h}=c,f=a2(c,["id"]),{v:d,w:v}=u;l.edges.push({id:h,source:d,target:v,data:f}),e&&t.mergeEdgeData(h,f)}),l})}}Td.defaultOptions={};class q0{constructor(e){this.id=e.id||0,this.rx=e.rx,this.ry=e.ry,this.fx=0,this.fy=0,this.mass=e.mass,this.degree=e.degree,this.g=e.g||0}distanceTo(e){const t=this.rx-e.rx,n=this.ry-e.ry;return Math.hypot(t,n)}setPos(e,t){this.rx=e,this.ry=t}resetForce(){this.fx=0,this.fy=0}addForce(e){const t=e.rx-this.rx,n=e.ry-this.ry;let i=Math.hypot(t,n);i=i<1e-4?1e-4:i;const a=this.g*(this.degree+1)*(e.degree+1)/i;this.fx+=a*t/i,this.fy+=a*n/i}in(e){return e.contains(this.rx,this.ry)}add(e){const t=this.mass+e.mass,n=(this.rx*this.mass+e.rx*e.mass)/t,i=(this.ry*this.mass+e.ry*e.mass)/t,a=this.degree+e.degree,s={rx:n,ry:i,mass:t,degree:a};return new q0(s)}}class Ul{constructor(e){this.xmid=e.xmid,this.ymid=e.ymid,this.length=e.length,this.massCenter=e.massCenter||[0,0],this.mass=e.mass||1}getLength(){return this.length}contains(e,t){const n=this.length/2;return e<=this.xmid+n&&e>=this.xmid-n&&t<=this.ymid+n&&t>=this.ymid-n}NW(){const e=this.xmid-this.length/4,t=this.ymid+this.length/4,n=this.length/2,i={xmid:e,ymid:t,length:n};return new Ul(i)}NE(){const e=this.xmid+this.length/4,t=this.ymid+this.length/4,n=this.length/2,i={xmid:e,ymid:t,length:n};return new Ul(i)}SW(){const e=this.xmid-this.length/4,t=this.ymid-this.length/4,n=this.length/2,i={xmid:e,ymid:t,length:n};return new Ul(i)}SE(){const e=this.xmid+this.length/4,t=this.ymid-this.length/4,n=this.length/2,i={xmid:e,ymid:t,length:n};return new Ul(i)}}class Zl{constructor(e){this.body=null,this.quad=null,this.NW=null,this.NE=null,this.SW=null,this.SE=null,this.theta=.5,e!=null&&(this.quad=e)}insert(e){if(this.body==null){this.body=e;return}this._isExternal()?(this.quad&&(this.NW=new Zl(this.quad.NW()),this.NE=new Zl(this.quad.NE()),this.SW=new Zl(this.quad.SW()),this.SE=new Zl(this.quad.SE())),this._putBody(this.body),this._putBody(e),this.body=this.body.add(e)):(this.body=this.body.add(e),this._putBody(e))}_putBody(e){this.quad&&(e.in(this.quad.NW())&&this.NW?this.NW.insert(e):e.in(this.quad.NE())&&this.NE?this.NE.insert(e):e.in(this.quad.SW())&&this.SW?this.SW.insert(e):e.in(this.quad.SE())&&this.SE&&this.SE.insert(e))}_isExternal(){return this.NW==null&&this.NE==null&&this.SW==null&&this.SE==null}updateForce(e){if(!(this.body==null||e===this.body))if(this._isExternal())e.addForce(this.body);else{const t=this.quad?this.quad.getLength():0,n=this.body.distanceTo(e);t/nIi(m,[o,l])),v=i.filter(m=>{const{source:b,target:x}=m;return b!==x}),g=new gr({nodes:d,edges:v}),p=this.getSizes(g,h);if(this.run(g,t,c,p,e,s),u){for(let b=0;b250&&(n.barnesHut=!0),l===void 0&&t>100&&(n.prune=!0),u===0&&!l?(n.maxIteration=250,t<=200&&t>100?n.maxIteration=1e3:t>200&&(n.maxIteration=1200)):u===0&&l&&(n.maxIteration=100,t<=200&&t>100?n.maxIteration=500:t>200&&(n.maxIteration=950)),c||(n.kr=50,t>100&&t<=500?n.kr=20:t>500&&(n.kr=1)),h||(n.kg=20,t>100&&t<=500?n.kg=10:t>500&&(n.kg=1)),n}run(e,t,n,i,a,s){const{kr:o,barnesHut:l,onTick:u}=s,c=e.getAllNodes();let h=0,f=n;const d={},v={},g={};for(let p=0;p0;)h=this.oneStep(e,{iter:f,preventOverlapIters:50,krPrime:100,sg:h,forces:d,preForces:v,bodies:g,sizes:i},s),f--,u==null||u({nodes:c,edges:t.getAllEdges()});return e}oneStep(e,t,n){const{iter:i,preventOverlapIters:a,krPrime:s,sg:o,preForces:l,bodies:u,sizes:c}=t;let{forces:h}=t;const{preventOverlap:f,barnesHut:d}=n,v=e.getAllNodes();for(let g=0;ga||!f)?h=this.getOptRepGraForces(e,h,u,n):h=this.getRepGraForces(e,i,a,h,s,c,n),this.updatePos(e,h,l,o,n)}getAttrForces(e,t,n,i,a,s){const{preventOverlap:o,dissuadeHubs:l,mode:u,prune:c}=s,h=e.getAllEdges();for(let f=0;f0&&(T=O,S=O),a[d][0]+=T*x[0],a[v][0]-=S*x[0],a[d][1]+=T*x[1],a[v][1]-=S*x[1]}return a}getOptRepGraForces(e,t,n,i){const{kg:a,center:s,prune:o}=i,l=e.getAllNodes(),u=l.length;let c=9e10,h=-9e10,f=9e10,d=-9e10;for(let b=0;b=h&&(h=O.x),O.x<=c&&(c=O.x),O.y>=d&&(d=O.y),O.y<=f&&(f=O.y))}const v=Math.max(h-c,d-f),g={xmid:(h+c)/2,ymid:(d+f)/2,length:v,massCenter:s,mass:u},p=new Ul(g),m=new Zl(p);for(let b=0;b0&&(U=u*(m+1)*(k+1)/W),i[p.id][0]-=U*C[0],i[S.id][0]+=U*C[0],i[p.id][1]-=U*C[1],i[S.id][1]+=U*C[1]}const b=[p.data.x-h[0],p.data.y-h[1]],x=Math.hypot(b[0],b[1]);b[0]=b[0]/x,b[1]=b[1]/x;const O=c*(m+1);i[p.id][0]-=O*b[0],i[p.id][1]-=O*b[1]}return i}updatePos(e,t,n,i,a){const{ks:s,tao:o,prune:l,ksmax:u}=a,c=e.getAllNodes(),h=c.length,f=[],d=[];let v=0,g=0,p=i;for(let b=0;b1.5*m?1.5*m:p);for(let b=0;bC?C:S;const W=S*t[x][0],U=S*t[x][1];e.mergeNodeData(x,{x:O.x+W,y:O.y+U})}return p}}const F8={maxIteration:1e3,gravity:10,speed:5,clustering:!1,clusterGravity:10,width:300,height:300,nodeClusterBy:"cluster"},j8=800;class G8{constructor(e={}){this.options=e,this.id="fruchterman",this.timeInterval=0,this.running=!1,this.options=Object.assign(Object.assign({},F8),e)}execute(e,t){return Wt(this,void 0,void 0,function*(){return this.genericFruchtermanLayout(!1,e,t)})}assign(e,t){return Wt(this,void 0,void 0,function*(){yield this.genericFruchtermanLayout(!0,e,t)})}stop(){this.timeInterval&&typeof window!="undefined"&&window.clearInterval(this.timeInterval),this.running=!1}tick(e=this.options.maxIteration||1){if(this.lastResult)return this.lastResult;for(let n=0;nthis.lastGraph.mergeNodeData(n.id,{x:n.data.x,y:n.data.y,z:this.options.dimensions===3?n.data.z:void 0})),t}genericFruchtermanLayout(e,t,n){return Wt(this,void 0,void 0,function*(){if(this.running)return;const i=this.formatOptions(n),{dimensions:a,width:s,height:o,center:l,clustering:u,nodeClusterBy:c,maxIteration:h,onTick:f}=i,d=t.getAllNodes(),v=t.getAllEdges();if(!(d!=null&&d.length)){const x={nodes:[],edges:v};return this.lastResult=x,x}if(d.length===1){e&&t.mergeNodeData(d[0].id,{x:l[0],y:l[1],z:a===3?l[2]:void 0});const x={nodes:[Object.assign(Object.assign({},d[0]),{data:Object.assign(Object.assign({},d[0].data),{x:l[0],y:l[1],z:a===3?l[2]:void 0})})],edges:v};return this.lastResult=x,x}const g=d.map(x=>Ii(x,[s,o])),p=new gr({nodes:g,edges:v}),m={};if(u&&g.forEach(x=>{const O=x.data[c];m[O]||(m[O]={name:O,cx:0,cy:0,count:0})}),this.lastLayoutNodes=g,this.lastLayoutEdges=v,this.lastAssign=e,this.lastGraph=p,this.lastOptions=i,this.lastClusterMap=m,typeof window=="undefined")return;let b=0;return new Promise(x=>{this.timeInterval=window.setInterval(()=>{if(!this.running){x({nodes:g,edges:v});return}this.runOneStep(p,m,i),e&&g.forEach(({id:O,data:T})=>t.mergeNodeData(O,{x:T.x,y:T.y,z:a===3?T.z:void 0})),f==null||f({nodes:g,edges:v}),b++,b>=h&&(window.clearInterval(this.timeInterval),x({nodes:g,edges:v}))},0),this.running=!0})})}formatOptions(e={}){const t=Object.assign(Object.assign({},this.options),e),{clustering:n,nodeClusterBy:i}=t,{center:a,width:s,height:o}=t;return t.width=!s&&typeof window!="undefined"?window.innerWidth:s,t.height=!o&&typeof window!="undefined"?window.innerHeight:o,t.center=a||[t.width/2,t.height/2],t.clustering=n&&!!i,t}runOneStep(e,t,n){const{dimensions:i,height:a,width:s,gravity:o,center:l,speed:u,clustering:c,nodeClusterBy:h,clusterGravity:f}=n,d=a*s,v=Math.sqrt(d)/10,g=e.getAllNodes(),p=d/(g.length+1),m=Math.sqrt(p),b={};if(this.applyCalculate(e,b,m,p),c){for(const O in t)t[O].cx=0,t[O].cy=0,t[O].count=0;g.forEach(O=>{const{data:T}=O,S=t[T[h]];ht(T.x)&&(S.cx+=T.x),ht(T.y)&&(S.cy+=T.y),S.count++});for(const O in t)t[O].cx/=t[O].count,t[O].cy/=t[O].count;const x=f||o;g.forEach((O,T)=>{const{id:S,data:k}=O;if(!ht(k.x)||!ht(k.y))return;const C=t[k[h]],W=Math.sqrt((k.x-C.cx)*(k.x-C.cx)+(k.y-C.cy)*(k.y-C.cy)),U=m*x;b[S].x-=U*(k.x-C.cx)/W,b[S].y-=U*(k.y-C.cy)/W})}g.forEach((x,O)=>{const{id:T,data:S}=x;if(!ht(S.x)||!ht(S.y))return;const k=.01*m*o;b[T].x-=k*(S.x-l[0]),b[T].y-=k*(S.y-l[1]),i===3&&(b[T].z-=k*(S.z-l[2]))}),g.forEach((x,O)=>{const{id:T,data:S}=x;if(ht(S.fx)&&ht(S.fy)){S.x=S.fx,S.y=S.fy,i===3&&(S.z=S.fz);return}if(!ht(S.x)||!ht(S.y))return;const k=Math.sqrt(b[T].x*b[T].x+b[T].y*b[T].y+(i===3?b[T].z*b[T].z:0));if(k>0){const C=Math.min(v*(u/j8),k);e.mergeNodeData(T,{x:S.x+b[T].x/k*C,y:S.y+b[T].y/k*C,z:i===3?S.z+b[T].z/k*C:void 0})}})}applyCalculate(e,t,n,i){this.calRepulsive(e,t,i),this.calAttractive(e,t,n)}calRepulsive(e,t,n){const i=e.getAllNodes();i.forEach(({data:a,id:s},o)=>{t[s]={x:0,y:0,z:0},i.forEach(({data:l,id:u},c)=>{if(o<=c||!ht(a.x)||!ht(l.x)||!ht(a.y)||!ht(l.y))return;let h=a.x-l.x,f=a.y-l.y,d=this.options.dimensions===3?a.z-l.z:0,v=h*h+f*f+d*d;v===0&&(v=1,h=.01,f=.01,d=.01);const g=n/v,p=h*g,m=f*g,b=d*g;t[s].x+=p,t[s].y+=m,t[u].x-=p,t[u].y-=m,this.options.dimensions===3&&(t[s].z+=b,t[u].z-=b)})})}calAttractive(e,t,n){e.getAllEdges().forEach(a=>{const{source:s,target:o}=a;if(!s||!o||s===o)return;const{data:l}=e.getNode(s),{data:u}=e.getNode(o);if(!ht(u.x)||!ht(l.x)||!ht(u.y)||!ht(l.y))return;const c=u.x-l.x,h=u.y-l.y,f=this.options.dimensions===3?u.z-l.z:0,d=Math.sqrt(c*c+h*h+f*f)/n,v=c*d,g=h*d,p=f*d;t[s].x+=v,t[s].y+=g,t[o].x-=v,t[o].y-=g,this.options.dimensions===3&&(t[s].z+=p,t[o].z-=p)})}}const H8={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 X8{constructor(e={}){this.options=e,this.id="grid",this.options=Object.assign(Object.assign({},H8),e)}execute(e,t){return Wt(this,void 0,void 0,function*(){return this.genericGridLayout(!1,e,t)})}assign(e,t){return Wt(this,void 0,void 0,function*(){yield this.genericGridLayout(!0,e,t)})}genericGridLayout(e,t,n){return Wt(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),n),{begin:a=[0,0],condense:s,preventOverlapPadding:o,preventOverlap:l,rows:u,cols:c,nodeSpacing:h,nodeSize:f,width:d,height:v,position:g}=i;let{sortBy:p}=i;const m=t.getAllNodes(),b=t.getAllEdges(),x=m==null?void 0:m.length;if(!x||x===1)return Wo(t,e,a);const O=m.map(ve=>Ii(ve));p!=="id"&&(!Xt(p)||O[0].data[p]===void 0)&&(p="degree"),p==="degree"?O.sort((ve,Z)=>t.getDegree(Z.id,"both")-t.getDegree(ve.id,"both")):p==="id"?O.sort((ve,Z)=>ht(Z.id)&&ht(ve.id)?Z.id-ve.id:`${ve.id}`.localeCompare(`${Z.id}`)):O.sort((ve,Z)=>Z.data[p]-ve.data[p]);const T=!d&&typeof window!="undefined"?window.innerWidth:d,S=!v&&typeof window!="undefined"?window.innerHeight:v,k=x,C={rows:u,cols:c};if(u!=null&&c!=null)C.rows=u,C.cols=c;else if(u!=null&&c==null)C.rows=u,C.cols=Math.ceil(k/C.rows);else if(u==null&&c!=null)C.cols=c,C.rows=Math.ceil(k/C.cols);else{const ve=Math.sqrt(k*S/T);C.rows=Math.round(ve),C.cols=Math.round(T/S*ve)}if(C.rows=Math.max(C.rows,1),C.cols=Math.max(C.cols,1),C.cols*C.rows>k){const ve=Ad(C),Z=Od(C);(ve-1)*Z>=k?Ad(C,ve-1):(Z-1)*ve>=k&&Od(C,Z-1)}else for(;C.cols*C.rows=k?Od(C,Z+1):Ad(C,ve+1)}let W=s?0:T/C.cols,U=s?0:S/C.rows;if(l||h){const ve=Xo(10,h),Z=G0(30,f,!1);O.forEach(H=>{(!H.data.x||!H.data.y)&&(H.data.x=0,H.data.y=0);const X=t.getNode(H.id),[q,oe]=xc(Z(X)||30),de=ve!==void 0?ve(H):o,Oe=q+de,Be=oe+de;W=Math.max(W,Oe),U=Math.max(U,Be)})}const J={},te={row:0,col:0},ie={};for(let ve=0;ve{t.mergeNodeData(ve.id,{x:ve.data.x,y:ve.data.y})}),ae})}}const Ad=(r,e)=>{let t;const n=r.rows||5,i=r.cols||5;return e==null?t=Math.min(n,i):Math.min(n,i)===r.rows?r.rows=e:r.cols=e,t},Od=(r,e)=>{let t;const n=r.rows||5,i=r.cols||5;return e==null?t=Math.max(n,i):Math.max(n,i)===r.rows?r.rows=e:r.cols=e,t},$0=(r,e)=>r[`c-${e.row}-${e.col}`]||!1,fP=(r,e)=>r[`c-${e.row}-${e.col}`]=!0,dP=(r,e)=>{const t=r.cols||5;e.col++,e.col>=t&&(e.col=0,e.row++)},W8=(r,e,t,n,i,a,s,o)=>{let l,u;const c=i[r.id];if(c)l=c.col*t+t/2+e[0],u=c.row*n+n/2+e[1];else{for(;$0(o,s);)dP(a,s);l=s.col*t+t/2+e[0],u=s.row*n+n/2+e[1],fP(o,s),dP(a,s)}r.data.x=l,r.data.y=u},V8=(r,e,t)=>{try{const n=ro.mul(ro.pow(e,2),-.5),i=n.mean("row"),a=n.mean("column"),s=n.mean();n.add(s).subRowVector(i).subColumnVector(a);const o=new K2(n),l=ro.sqrt(o.diagonalMatrix).diagonal();return o.leftSingularVectors.toJSON().map(u=>ro.mul([u],[l]).toJSON()[0].splice(0,r))}catch(n){const i=[];for(let a=0;a{const t=Object.assign(Object.assign({},U8),e),{positions:n,iterations:i,width:a,k:s,speed:o=100,strictRadial:l,focusIdx:u,radii:c=[],nodeSizeFunc:h}=t,f=r.getAllNodes(),d=[],v=a/10;for(let g=0;g{d[m]={x:0,y:0}}),K8(f,n,d,s,c,h),Q8(n,d,o,l,u,v,a,c);return n},K8=(r,e,t,n,i,a)=>{e.forEach((s,o)=>{t[o]={x:0,y:0},e.forEach((l,u)=>{if(o===u||i[o]!==i[u])return;let c=s.x-l.x,h=s.y-l.y,f=Math.sqrt(c*c+h*h);if(f===0){f=1;const d=o>u?1:-1;c=.01*d,h=.01*d}if(f{const l=a||s/10;return n&&e.forEach((u,c)=>{const h=r[c].x-r[i].x,f=r[c].y-r[i].y,d=Math.sqrt(h*h+f*f);let v=f/d,g=-h/d;const p=Math.sqrt(u.x*u.x+u.y*u.y);let m=Math.acos((v*u.x+g*u.y)/p);m>Math.PI/2&&(m-=Math.PI/2,v*=-1,g*=-1);const b=Math.cos(m)*p;u.x=v*b,u.y=g*b}),r.forEach((u,c)=>{if(c===i)return;const h=Math.sqrt(e[c].x*e[c].x+e[c].y*e[c].y);if(h>0&&c!==i){const f=Math.min(l*(t/Y8),h);if(u.x+=e[c].x/h*f,u.y+=e[c].y/h*f,n){let d=u.x-r[i].x,v=u.y-r[i].y;const g=Math.sqrt(d*d+v*v);d=d/g*o[c],v=v/g*o[c],u.x=r[i].x+d,u.y=r[i].y+v}}}),r},J8={maxIteration:1e3,focusNode:null,unitRadius:null,linkDistance:50,preventOverlap:!1,strictRadial:!0,maxPreventOverlapIteration:200,sortStrength:10};class q8{constructor(e={}){this.options=e,this.id="radial",this.options=Object.assign(Object.assign({},J8),e)}execute(e,t){return Wt(this,void 0,void 0,function*(){return this.genericRadialLayout(!1,e,t)})}assign(e,t){return Wt(this,void 0,void 0,function*(){yield this.genericRadialLayout(!0,e,t)})}genericRadialLayout(e,t,n){return Wt(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),n),{width:a,height:s,center:o,focusNode:l,unitRadius:u,nodeSize:c,nodeSpacing:h,strictRadial:f,preventOverlap:d,maxPreventOverlapIteration:v,sortBy:g,linkDistance:p=50,sortStrength:m=10,maxIteration:b=1e3}=i,x=t.getAllNodes(),O=t.getAllEdges(),T=!a&&typeof window!="undefined"?window.innerWidth:a,S=!s&&typeof window!="undefined"?window.innerHeight:s,k=o||[T/2,S/2];if(!(x!=null&&x.length)||x.length===1)return Wo(t,e,k);let C=x[0];if(Xt(l)){for(let lt=0;ltk[0]?k[0]:T-k[0],ve=S-k[1]>k[1]?k[1]:S-k[1];ae===0&&(ae=T/2),ve===0&&(ve=S/2);const Z=Math.min(ae,ve),H=Math.max(...ie),X=[],q=u||Z/H;ie.forEach((lt,Ct)=>{X[Ct]=lt*q});const oe=$8(x,J,p,X,q,g,m),de=e9(oe),Oe=V8(p,oe,p);let Be=Oe.map(([lt,Ct])=>({x:(isNaN(lt)?Math.random()*p:lt)-Oe[W][0],y:(isNaN(Ct)?Math.random()*p:Ct)-Oe[W][1]}));this.run(b,Be,de,oe,X,W);let Ge;if(d){Ge=H0(c,h);const lt={nodes:x,nodeSizeFunc:Ge,positions:Be,radii:X,height:S,width:T,strictRadial:!!f,focusIdx:W,iterations:v||200,k:Be.length/4.5};Be=Z8(t,lt)}const Ve=[];return Be.forEach((lt,Ct)=>{const Vt=Ii(x[Ct]);Vt.data.x=lt.x+k[0],Vt.data.y=lt.y+k[1],Ve.push(Vt)}),e&&Ve.forEach(lt=>t.mergeNodeData(lt.id,{x:lt.data.x,y:lt.data.y})),{nodes:Ve,edges:O}})}run(e,t,n,i,a,s){for(let o=0;o<=e;o++){const l=o/e;this.oneIteration(l,t,a,i,n,s)}}oneIteration(e,t,n,i,a,s){const o=1-e;t.forEach((l,u)=>{const c=q2(l,{x:0,y:0}),h=c===0?0:1/c;if(u===s)return;let f=0,d=0,v=0;t.forEach((p,m)=>{if(u===m)return;const b=q2(l,p),x=b===0?0:1/b,O=i[m][u];v+=a[u][m],f+=a[u][m]*(p.x+O*(l.x-p.x)*x),d+=a[u][m]*(p.y+O*(l.y-p.y)*x)});const g=n[u]===0?0:1/n[u];v*=o,v+=e*g*g,f*=o,f+=e*g*l.x*h,l.x=f/v,d*=o,d+=e*g*l.y*h,l.y=d/v})}}const $8=(r,e,t,n,i,a,s)=>{if(!r)return[];const o=[];if(e){const l={};e.forEach((u,c)=>{const h=[];u.forEach((f,d)=>{var v,g;if(c===d)h.push(0);else if(n[c]===n[d])if(a==="data")h.push(f*(Math.abs(c-d)*s)/(n[c]/i));else if(a){let p,m;if(l[r[c].id])p=l[r[c].id];else{const b=(a==="id"?r[c].id:(v=r[c].data)===null||v===void 0?void 0:v[a])||0;Xt(b)?p=b.charCodeAt(0):p=b,l[r[c].id]=p}if(l[r[d].id])m=l[r[d].id];else{const b=(a==="id"?r[d].id:(g=r[d].data)===null||g===void 0?void 0:g[a])||0;Xt(b)?m=b.charCodeAt(0):m=b,l[r[d].id]=m}h.push(f*(Math.abs(p-m)*s)/(n[c]/i))}else h.push(f*t/(n[c]/i));else{const p=(t+i)/2;h.push(f*p)}}),o.push(h)})}return o},e9=r=>{const e=r.length,t=r[0].length,n=[];for(let i=0;i{let t=-1;return r.forEach((n,i)=>{n.id===e&&(t=i)}),Math.max(t,0)},n9=(r,e,t)=>{const n=r.length;for(let i=0;i{let t=0;for(let n=0;nt?r[e][n]:t);return t},i9={center:[0,0],width:300,height:300};class a9{constructor(e={}){this.options=e,this.id="random",this.options=Object.assign(Object.assign({},i9),e)}execute(e,t){return Wt(this,void 0,void 0,function*(){return this.genericRandomLayout(!1,e,t)})}assign(e,t){return Wt(this,void 0,void 0,function*(){yield this.genericRandomLayout(!0,e,t)})}genericRandomLayout(e,t,n){return Wt(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),n),{center:a,width:s,height:o}=i,l=t.getAllNodes(),u=.9,c=!s&&typeof window!="undefined"?window.innerWidth:s,h=!o&&typeof window!="undefined"?window.innerHeight:o,f=a||[c/2,h/2],d=[];return l&&l.forEach(g=>{d.push({id:g.id,data:{x:(Math.random()-.5)*u*c+f[0],y:(Math.random()-.5)*u*h+f[1]}})}),e&&d.forEach(g=>t.mergeNodeData(g.id,{x:g.data.x,y:g.data.y})),{nodes:d,edges:t.getAllEdges()}})}}function s9(r){var e,t,n,i=r||1;function a(o,l){++e>i&&(n=t,s(1),++e),t[o]=l}function s(o){e=0,t=Object.create(null),o||(n=Object.create(null))}return s(),{clear:s,has:function(o){return t[o]!==void 0||n[o]!==void 0},get:function(o){var l=t[o];if(l!==void 0)return l;if((l=n[o])!==void 0)return a(o,l),l},set:function(o,l){t[o]!==void 0?t[o]=l:a(o,l)}}}var em=new Map;function tm(r,e,t){t===void 0&&(t=128);var n=function(){for(var i=[],a=0;asuper.update}});return u9(this,void 0,void 0,function*(){t.update.call(this,e),Object.assign(this.$element.style,nm(this.options,["key","type"]))})}destroy(){super.destroy(),this.$element.remove()}}kd.defaultOptions={transition:"background 0.5s",backgroundSize:"cover"};function im(r,e,t,n,i,a){const s=r,o=e,l=t-s,u=n-o;let c=i-s,h=a-o,f=c*l+h*u,d=0;f<=0?d=0:(c=l-c,h=u-h,f=c*l+h*u,f<=0?d=0:d=f*f/(l*l+u*u));const v=c*c+h*h-d;return v<0?0:v}function ao(r,e,t,n){return(r-t)*(r-t)+(e-n)*(e-n)}function vP(r,e,t,n,i){return ao(r,e,t,n)t;if(r===0)return Math.round;const e=Math.pow(10,r);return t=>Math.round(t*e)/e}function gP(r){const e=Math.min(r.x1,r.x2),t=Math.max(r.x1,r.x2),n=Math.min(r.y1,r.y2),i=Math.max(r.y1,r.y2);return{x:e,y:n,x2:t,y2:i,width:t-e,height:i-n}}class Ar{constructor(e,t,n,i){this.x1=e,this.y1=t,this.x2=n,this.y2=i}equals(e){return this.x1===e.x1&&this.y1===e.y1&&this.x2===e.x2&&this.y2===e.y2}draw(e){e.moveTo(this.x1,this.y1),e.lineTo(this.x2,this.y2)}toString(){return`Line(from=(${this.x1},${this.y1}),to=(${this.x2},${this.y2}))`}static from(e){return new Ar(e.x1,e.y1,e.x2,e.y2)}cuts(e,t){if(this.y1===this.y2||tthis.y1&&t>=this.y2||e>this.x1&&e>=this.x2)return!1;if(ethis.x2+n)return!1}else if(ethis.x1+n)return!1;if(this.y1this.y2+n)return!1}else if(tthis.y1+n)return!1;return!0}}var rr;(function(r){r[r.POINT=1]="POINT",r[r.PARALLEL=2]="PARALLEL",r[r.COINCIDENT=3]="COINCIDENT",r[r.NONE=4]="NONE"})(rr||(rr={}));class am{constructor(e,t=0,n=0){this.state=e,this.x=t,this.y=n}}function Cd(r,e){const t=(e.x2-e.x1)*(r.y1-e.y1)-(e.y2-e.y1)*(r.x1-e.x1),n=(r.x2-r.x1)*(r.y1-e.y1)-(r.y2-r.y1)*(r.x1-e.x1),i=(e.y2-e.y1)*(r.x2-r.x1)-(e.x2-e.x1)*(r.y2-r.y1);if(i){const a=t/i,s=n/i;return 0<=a&&a<=1&&0<=s&&s<=1?new am(rr.POINT,r.x1+a*(r.x2-r.x1),r.y1+a*(r.y2-r.y1)):new am(rr.NONE)}return new am(t===0||n===0?rr.COINCIDENT:rr.PARALLEL)}function pP(r,e){const t=(e.x2-e.x1)*(r.y1-e.y1)-(e.y2-e.y1)*(r.x1-e.x1),n=(r.x2-r.x1)*(r.y1-e.y1)-(r.y2-r.y1)*(r.x1-e.x1),i=(e.y2-e.y1)*(r.x2-r.x1)-(e.x2-e.x1)*(r.y2-r.y1);if(i){const a=t/i,s=n/i;if(0<=a&&a<=1&&0<=s&&s<=1)return a}return Number.POSITIVE_INFINITY}function h9(r,e){function t(i,a,s,o){let l=pP(e,new Ar(i,a,s,o));return l=Math.abs(l-.5),l>=0&&l<=1?1:0}let n=t(r.x,r.y,r.x2,r.y);return n+=t(r.x,r.y,r.x,r.y2),n>1||(n+=t(r.x,r.y2,r.x2,r.y2),n>1)?!0:(n+=t(r.x2,r.y,r.x2,r.y2),n>0)}var ir;(function(r){r[r.LEFT=0]="LEFT",r[r.TOP=1]="TOP",r[r.RIGHT=2]="RIGHT",r[r.BOTTOM=3]="BOTTOM"})(ir||(ir={}));function Nd(r,e,t){const n=new Set;return r.width<=0?(n.add(ir.LEFT),n.add(ir.RIGHT)):er.x+r.width&&n.add(ir.RIGHT),r.height<=0?(n.add(ir.TOP),n.add(ir.BOTTOM)):tr.y+r.height&&n.add(ir.BOTTOM),n}function mP(r,e){let t=e.x1,n=e.y1;const i=e.x2,a=e.y2,s=Array.from(Nd(r,i,a));if(s.length===0)return!0;let o=Nd(r,t,n);for(;o.size!==0;){for(const l of s)if(o.has(l))return!1;if(o.has(ir.RIGHT)||o.has(ir.LEFT)){let l=r.x;o.has(ir.RIGHT)&&(l+=r.width),n=n+(l-t)*(a-n)/(i-t),t=l}else{let l=r.y;o.has(ir.BOTTOM)&&(l+=r.height),t=t+(l-n)*(i-t)/(a-n),n=l}o=Nd(r,t,n)}return!0}function f9(r,e){let t=Number.POSITIVE_INFINITY,n=0;function i(a,s,o,l){let u=pP(e,new Ar(a,s,o,l));u=Math.abs(u-.5),u>=0&&u<=1&&(n++,u1||(i(r.x,r.y2,r.x2,r.y2),n>1)?t:(i(r.x2,r.y,r.x2,r.y2),n===0?-1:t)}function d9(r,e){let t=0;const n=Cd(r,new Ar(e.x,e.y,e.x2,e.y));t+=n.state===rr.POINT?1:0;const i=Cd(r,new Ar(e.x,e.y,e.x,e.y2));t+=i.state===rr.POINT?1:0;const a=Cd(r,new Ar(e.x,e.y2,e.x2,e.y2));t+=a.state===rr.POINT?1:0;const s=Cd(r,new Ar(e.x2,e.y,e.x2,e.y2));return t+=s.state===rr.POINT?1:0,{top:n,left:i,bottom:a,right:s,count:t}}class Ur{constructor(e,t,n,i){this.x=e,this.y=t,this.width=n,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(e){return new Ur(e.x,e.y,e.width,e.height)}equals(e){return this.x===e.x&&this.y===e.y&&this.width===e.width&&this.height===e.height}clone(){return new Ur(this.x,this.y,this.width,this.height)}add(e){const t=Math.min(this.x,e.x),n=Math.min(this.y,e.y),i=Math.max(this.x2,e.x+e.width),a=Math.max(this.y2,e.y+e.height);this.x=t,this.y=n,this.width=i-t,this.height=a-n}addPoint(e){const t=Math.min(this.x,e.x),n=Math.min(this.y,e.y),i=Math.max(this.x2,e.x),a=Math.max(this.y2,e.y);this.x=t,this.y=n,this.width=i-t,this.height=a-n}toString(){return`Rectangle[x=${this.x}, y=${this.y}, w=${this.width}, h=${this.height}]`}draw(e){e.rect(this.x,this.y,this.width,this.height)}containsPt(e,t){return e>=this.x&&e<=this.x2&&t>=this.y&&t<=this.y2}get area(){return this.width*this.height}intersects(e){return this.area<=0||e.width<=0||e.height<=0?!1:e.x+e.width>this.x&&e.y+e.height>this.y&&e.x=this.width?this.width-1:e}boundY(e){return e=this.height?this.height-1:e}scaleX(e){return this.boundX(Math.floor((e-this.pixelX)/this.pixelGroup))}scaleY(e){return this.boundY(Math.floor((e-this.pixelY)/this.pixelGroup))}scale(e){const t=this.scaleX(e.x),n=this.scaleY(e.y),i=this.boundX(Math.ceil((e.x+e.width-this.pixelX)/this.pixelGroup)),a=this.boundY(Math.ceil((e.y+e.height-this.pixelY)/this.pixelGroup)),s=i-t,o=a-n;return new Ur(t,n,s,o)}invertScaleX(e){return Math.round(e*this.pixelGroup+this.pixelX)}invertScaleY(e){return Math.round(e*this.pixelGroup+this.pixelY)}addPadding(e,t){const n=Math.ceil(t/this.pixelGroup),i=this.boundX(e.x-n),a=this.boundY(e.y-n),s=this.boundX(e.x2+n),o=this.boundY(e.y2+n),l=s-i,u=o-a;return new Ur(i,a,l,u)}get(e,t){return e<0||t<0||e>=this.width||t>=this.height?Number.NaN:this.area[e+t*this.width]}inc(e,t,n){e<0||t<0||e>=this.width||t>=this.height||(this.area[e+t*this.width]+=n)}set(e,t,n){e<0||t<0||e>=this.width||t>=this.height||(this.area[e+t*this.width]=n)}incArea(e,t){if(e.width<=0||e.height<=0||t===0)return;const n=this.width,i=e.width,a=Math.max(0,e.i),s=Math.max(0,e.j),o=Math.min(e.i+e.width,n),l=Math.min(e.j+e.height,this.height);if(!(l<=0||o<=0||a>=n||l>=this.height))for(let u=s;uMath.min(s,o),Number.POSITIVE_INFINITY),i=this.area.reduce((s,o)=>Math.max(s,o),Number.NEGATIVE_INFINITY),a=s=>(s-n)/(i-n);e.scale(this.pixelGroup,this.pixelGroup);for(let s=0;st?"black":"white",e.fillRect(i,a,1,1)}e.restore()}}}function yP(r,e){const t=n=>({x:n.x-e,y:n.y-e,width:n.width+2*e,height:n.height+2*e});return Array.isArray(r)?r.map(t):t(r)}function bP(r,e,t){return xP(Object.assign(gP(r),{distSquare:(n,i)=>im(r.x1,r.y1,r.x2,r.y2,n,i)}),e,t)}function xP(r,e,t){const n=yP(r,t),i=e.scale(n),a=e.createSub(i,n);return g9(a,e,t,(s,o)=>r.distSquare(s,o)),a}function g9(r,e,t,n){const i=t*t;for(let a=0;a{const o=i.slice(0,s);return y9(e,a,o,t,n)}).flat()}function y9(r,e,t,n,i){const a=Vn(e.cx,e.cy),s=E9(a,t,r);if(s==null)return[];const o=new Ar(a.x,a.y,s.cx,s.cy),l=b9(o,r,n,i);return x9(l,r)}function b9(r,e,t,n){const i=[],a=[];a.push(r);let s=!0;for(let o=0;o0;){const l=a.pop(),u=EP(e,l),c=u?d9(l,u):null;if(!u||!c||c.count!==2){s||i.push(l);continue}let h=n,f=Ld(u,h,c,!0),d=so(f,a)||so(f,i),v=Rd(f,e);for(;!d&&v&&h>=1;)h/=1.5,f=Ld(u,h,c,!0),d=so(f,a)||so(f,i),v=Rd(f,e);if(f&&!d&&!v&&(a.push(new Ar(l.x1,l.y1,f.x,f.y)),a.push(new Ar(f.x,f.y,l.x2,l.y2)),s=!0),s)continue;h=n,f=Ld(u,h,c,!1);let g=so(f,a)||so(f,i);for(v=Rd(f,e);!g&&v&&h>=1;)h/=1.5,f=Ld(u,h,c,!1),g=so(f,a)||so(f,i),v=Rd(f,e);f&&!g&&(a.push(new Ar(l.x1,l.y1,f.x,f.y)),a.push(new Ar(f.x,f.y,l.x2,l.y2)),s=!0),s||i.push(l)}for(;a.length>0;)i.push(a.pop());return i}function x9(r,e){const t=[];for(;r.length>0;){const n=r.pop();if(r.length===0){t.push(n);break}const i=r.pop(),a=new Ar(n.x1,n.y1,i.x2,i.y2);EP(e,a)?(t.push(n),r.push(i)):r.push(a)}return t}function E9(r,e,t){let n=Number.POSITIVE_INFINITY;return e.reduce((i,a)=>{const s=ao(r.x,r.y,a.cx,a.cy);if(s>n)return i;const o=new Ar(r.x,r.y,a.cx,a.cy),l=P9(t,o);return s*(l+1)*(l+1){e+=n.cx,t+=n.cy}),e/=r.length,t/=r.length,r.map(n=>{const i=e-n.cx,a=t-n.cy,s=i*i+a*a;return[n,s]}).sort((n,i)=>n[1]-i[1]).map(n=>n[0])}function Rd(r,e){return e.some(t=>t.containsPt(r.x,r.y))}function so(r,e){return e.some(t=>!!(vP(t.x1,t.y1,r.x,r.y,.001)||vP(t.x2,t.y2,r.x,r.y,.001)))}function EP(r,e){let t=Number.POSITIVE_INFINITY,n=null;for(const i of r){if(!mP(i,e))continue;const a=f9(i,e);a>=0&&amP(n,e)&&h9(n,e)?t+1:t,0)}function Ld(r,e,t,n){const i=t.top,a=t.left,s=t.bottom,o=t.right;if(n){if(a.state===rr.POINT){if(i.state===rr.POINT)return Vn(r.x-e,r.y-e);if(s.state===rr.POINT)return Vn(r.x-e,r.y2+e);const f=r.width*r.height;return r.width*((a.y-r.y+(o.y-r.y))*.5)o.y?Vn(r.x-e,r.y-e):Vn(r.x2+e,r.y-e):a.ys.x?Vn(r.x-e,r.y-e):Vn(r.x-e,r.y2+e):i.xo.y?Vn(r.x2+e,r.y2+e):Vn(r.x-e,r.y2+e):a.ys.x?Vn(r.x2+e,r.y2+e):Vn(r.x2+e,r.y-e):i.xn)return!1}return!0}function S9(r=0){return e=>{if(r<0||e.length<3)return e;const t=[];let n=0;const i=r*r;for(;n{if(s.length<3)return s;const o=[],l=s.closed,u=s.length+3-1+(l?0:2);o.push(a(s,2-(l?0:2),0));for(let c=2-(l?0:2);c{let t=r,n=e.length;if(t>1)for(n=Math.floor(e.length/t);n<3&&t>1;)t-=1,n=Math.floor(e.length/t);const i=[];for(let a=0,s=0;s=n?this.closed?this.get(e-n):this.points[n-1]:this.points[t]}get length(){return this.points.length}toString(e=1/0){const t=this.points;if(t.length===0)return"";const n=typeof e=="function"?e:c9(e);let i="M";for(const a of t)i+=`${n(a.x)},${n(a.y)} L`;return i=i.slice(0,-1),this.closed&&(i+=" Z"),i}draw(e){const t=this.points;if(t.length!==0){e.beginPath(),e.moveTo(t[0].x,t[0].y);for(const n of t)e.lineTo(n.x,n.y);this.closed&&e.closePath()}}sample(e){return O9(e)(this)}simplify(e){return S9(e)(this)}bSplines(e){return A9(e)(this)}apply(e){return e(this)}containsElements(e){const t=v9(this.points);return t?e.every(n=>t.containsPt(n.cx,n.cy)&&this.withinArea(n.cx,n.cy)):!1}withinArea(e,t){if(this.length===0)return!1;let n=0;const i=this.points[0],a=new Ar(i.x,i.y,i.x,i.y);for(let s=1;se?c+h:c}function a(l,u){let c=Sc;return c=i(l,u,c,1),c=i(l+1,u,c,2),c=i(l,u+1,c,4),c=i(l+1,u+1,c,8),Number.isNaN(c)?-1:c}let s=Dd;function o(l,u){let c=l,h=u,f=r.invertScaleX(c),d=r.invertScaleY(h);for(let v=0;vwP(n.raw,e));return t<0?!1:(this.members.splice(t,1),this.dirty.add(ka.MEMBERS),!0)}removeNonMember(e){const t=this.nonMembers.findIndex(n=>wP(n.raw,e));return t<0?!1:(this.nonMembers.splice(t,1),this.dirty.add(ka.NON_MEMBERS),!0)}removeEdge(e){const t=this.edges.findIndex(n=>n.obj.equals(e));return t<0?!1:(this.edges.splice(t,1),this.dirty.add(ka.NON_MEMBERS),!0)}pushNonMember(...e){if(e.length!==0){this.dirty.add(ka.NON_MEMBERS);for(const t of e)this.nonMembers.push({raw:t,obj:Tc(t)?_d.from(t):Ur.from(t),area:null})}}pushEdge(...e){if(e.length!==0){this.dirty.add(ka.EDGES);for(const t of e)this.edges.push({raw:t,obj:Ar.from(t),area:null})}}update(){const e=this.dirty.has(ka.MEMBERS),t=this.dirty.has(ka.NON_MEMBERS);let n=this.dirty.has(ka.EDGES);this.dirty.clear();const i=this.members.map(u=>u.obj);if(this.o.virtualEdges&&(e||t)){const u=this.nonMembers.map(f=>f.obj),c=m9(i,u,this.o.maxRoutingIterations,this.o.morphBuffer),h=new Map(this.virtualEdges.map(f=>[f.obj.toString(),f.area]));this.virtualEdges=c.map(f=>{var d;return{raw:f,obj:f,area:(d=h.get(f.toString()))!==null&&d!==void 0?d:null}}),n=!0}let a=!1;if(e||n){const u=this.virtualEdges.concat(this.edges).map(d=>d.obj),c=_9(i,u),h=Math.max(this.o.edgeR1,this.o.nodeR1)+this.o.morphBuffer,f=Ur.from(yP(c,h));f.equals(this.activeRegion)||(a=!0,this.activeRegion=f)}if(a){const u=Math.ceil(this.activeRegion.width/this.o.pixelGroup),c=Math.ceil(this.activeRegion.height/this.o.pixelGroup);this.activeRegion.x!==this.potentialArea.pixelX||this.activeRegion.y!==this.potentialArea.pixelY?(this.potentialArea=Yo.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)):(u!==this.potentialArea.width||c!==this.potentialArea.height)&&(this.potentialArea=Yo.fromPixelRegion(this.activeRegion,this.o.pixelGroup))}const s=new Map,o=u=>{if(u.area){const c=`${u.obj.width}x${u.obj.height}x${u.obj instanceof Ur?"R":"C"}`;s.set(c,u.area)}},l=u=>{if(u.area)return;const c=`${u.obj.width}x${u.obj.height}x${u.obj instanceof Ur?"R":"C"}`;if(s.has(c)){const f=s.get(c);u.area=this.potentialArea.copy(f,{x:u.obj.x-this.o.nodeR1,y:u.obj.y-this.o.nodeR1});return}const h=u.obj instanceof Ur?p9(u.obj,this.potentialArea,this.o.nodeR1):xP(u.obj,this.potentialArea,this.o.nodeR1);u.area=h,s.set(c,h)};this.members.forEach(o),this.nonMembers.forEach(o),this.members.forEach(l),this.nonMembers.forEach(u=>{this.activeRegion.intersects(u.obj)?l(u):u.area=null}),this.edges.forEach(u=>{u.area||(u.area=bP(u.obj,this.potentialArea,this.o.edgeR1))}),this.virtualEdges.forEach(u=>{u.area||(u.area=bP(u.obj,this.potentialArea,this.o.edgeR1))})}drawMembers(e){for(const t of this.members)t.obj.draw(e)}drawNonMembers(e){for(const t of this.nonMembers)t.obj.draw(e)}drawEdges(e){for(const t of this.edges)t.obj.draw(e)}drawPotentialArea(e,t=!0){this.potentialArea.draw(e,t)}compute(){if(this.members.length===0)return new Uo([]);this.dirty.size>0&&this.update();const{o:e,potentialArea:t}=this,n=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 N9(t,n,i,a,o=>o.containsElements(s),e)}}function N9(r,e,t,n,i,a={}){const s=Object.assign({},Bd,a);let o=s.threshold,l=s.memberInfluenceFactor,u=s.edgeInfluenceFactor,c=s.nonMemberInfluenceFactor;const h=(s.nodeR0-s.nodeR1)*(s.nodeR0-s.nodeR1),f=(s.edgeR0-s.edgeR1)*(s.edgeR0-s.edgeR1);for(let d=0;d0)c*=.8;else break}return new Uo([])}function _9(r,e){if(r.length===0)return new Ur(0,0,0,0);const t=Ur.from(r[0]);for(const n of r)t.add(n);for(const n of e)t.add(gP(n));return t}function dJ(r,e=[],t=[],n={}){if(r.length===0)return new Uo([]);const i=new om(n);return i.pushMember(...r),i.pushNonMember(...e),i.pushEdge(...t),i.compute()}var R9=function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i{const{style:n,bubbleSetOptions:i}=this.parseOptions();dr(this.bubbleSetOptions,i)||this.init(),this.bubbleSetOptions=Object.assign({},i);const a=Object.assign(Object.assign({},n),{d:this.getPath()});this.shape?this.shape.update(a):(this.shape=new lc({style:a}),this.context.canvas.appendChild(this.shape))},this.updateBubbleSetsPath=n=>{if(!this.shape)return;const i=Re(n.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=n=>{const{graph:i}=this.context,a=this.options.members,s=[...this.members.keys()],o=this.options.avoidMembers,l=[...this.avoidMembers.keys()];if(!n&&dr(a,s)&&dr(o,l))return this.path;const{enter:u=[],exit:c=[]}=Vs(s,a,p=>p),{enter:h=[],exit:f=[]}=Vs(l,o,p=>p);n&&(c.push(n),u.push(n));const d=(p,m,b)=>{p.forEach(x=>{const O=b?this.members:this.avoidMembers,T=b?"pushMember":"pushNonMember",S=b?"removeMember":"removeNonMember";if(m){let k;i.getElementType(x)==="edge"?([k]=D9(i,x),this.bubbleSets.pushEdge(k)):([k]=L9(i,x),this.bubbleSets[T](k)),O.set(x,k)}else{const k=O.get(x);k&&(i.getElementType(x)==="edge"?this.bubbleSets.removeEdge(k):this.bubbleSets[S](k),O.delete(x))}})};d(c,!1,!0),d(u,!0,!0),d(f,!1,!1),d(h,!0,!1);const g=this.bubbleSets.compute().sample(8).simplify(0).bSplines().simplify(0);return this.path=GE(g.points.map(zr)),this.path},this.bindEvents(),this.bubbleSets=new om(this.options)}bindEvents(){this.context.graph.on(rt.AFTER_RENDER,this.drawBubbleSets),this.context.graph.on(rt.AFTER_ELEMENT_UPDATE,this.updateBubbleSetsPath)}init(){this.bubbleSets=new om(this.options),this.members=new Map,this.avoidMembers=new Map}parseOptions(){const e=this.options,{type:t,key:n,members:i,avoidMembers:a}=e,s=R9(e,["type","key","members","avoidMembers"]),o=Object.keys(s).reduce((l,u)=>(u in Bd?l.bubbleSetOptions[u]=s[u]:l.style[u]=s[u],l),{style:{},bubbleSetOptions:{}});return Object.assign({type:t,key:n,members:i,avoidMembers:a},o)}addMember(e){const t=Array.isArray(e)?e:[e];t.some(n=>this.options.avoidMembers.includes(n))&&(this.options.avoidMembers=this.options.avoidMembers.filter(n=>!t.includes(n))),this.options.members=[...new Set([...this.options.members,...t])],this.drawBubbleSets()}removeMember(e){const t=Array.isArray(e)?e:[e];this.options.members=this.options.members.filter(n=>!t.includes(n)),this.drawBubbleSets()}updateMember(e){this.options.members=pt(e)?e(this.options.members):e,this.drawBubbleSets()}getMember(){return this.options.members}addAvoidMember(e){const t=Array.isArray(e)?e:[e];t.some(n=>this.options.members.includes(n))&&(this.options.members=this.options.members.filter(n=>!t.includes(n))),this.options.avoidMembers=[...new Set([...this.options.avoidMembers,...t])],this.drawBubbleSets()}removeAvoidMember(e){const t=Array.isArray(e)?e:[e];this.options.avoidMembers.some(n=>t.includes(n))&&(this.options.avoidMembers=this.options.avoidMembers.filter(n=>!t.includes(n)),this.drawBubbleSets())}updateAvoidMember(e){this.options.avoidMembers=Array.isArray(e)?e:[e],this.drawBubbleSets()}getAvoidMember(){return this.options.avoidMembers}destroy(){this.context.graph.off(rt.AFTER_RENDER,this.drawBubbleSets),this.context.graph.off(rt.AFTER_ELEMENT_UPDATE,this.updateBubbleSetsPath),this.shape.destroy(),super.destroy()}}zd.defaultOptions=Object.assign({members:[],avoidMembers:[],fill:"lightblue",fillOpacity:.2,stroke:"blue",strokeOpacity:.2},Bd);const L9=(r,e)=>(Array.isArray(e)?e:[e]).map(n=>{const i=r.getElementRenderBounds(n);return new Ur(i.min[0],i.min[1],qa(i),$a(i))}),D9=(r,e)=>(Array.isArray(e)?e:[e]).map(n=>{const i=r.getEdgeData(n),a=r.getElementPosition(i.source),s=r.getElementPosition(i.target);return Ar.from({x1:a[0],y1:a[1],x2:s[0],y2:s[1]})});class vJ extends null{constructor(e,t){super(e,t),this.setOptions=n=>{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=n[s];if(l!==void 0){const u=a(s,l);this.context.canvas.getCamera()[o](u)}})},this.bindEvents()}update(e){this.setOptions(e),super.update(e)}bindEvents(){this.context.graph.once(GraphEvent.BEFORE_DRAW,()=>this.setOptions(this.options))}getCanvasAspect(){const[e,t]=this.context.viewport.getCanvasSize();return e/t}}function I9(r){return`
    ${r.map(e=>`
  • ${e.name}
  • `).join("")}
`}const B9=` .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 PP=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})};class Fd extends Fr{constructor(e,t){super(e,Object.assign({},Fd.defaultOptions,t)),this.targetElement=null,this.onTriggerEvent=n=>{var i;(i=n.preventDefault)===null||i===void 0||i.call(n),this.show(n)},this.onMenuItemClick=n=>{const{onClick:i,trigger:a}=this.options;if(n.target instanceof HTMLElement&&n.target.className.includes("g6-contextmenu-li")){const s=n.target.getAttribute("value");i==null||i(s,n.target,this.targetElement),this.hide()}a!=="click"&&this.hide()},this.initElement(),this.update(t)}initElement(){this.$element=Kl("contextmenu",!1,{zIndex:"99"});const{className:e}=this.options;e&&this.$element.classList.add(e),this.context.canvas.getContainer().appendChild(this.$element),rm("g6-contextmenu-css","style",{},B9,document.head)}show(e){return PP(this,void 0,void 0,function*(){const{enable:t,offset:n}=this.options;if(typeof t=="function"&&!t(e)||!t){this.hide();return}const i=yield this.getDOMContent(e);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=`${e.client.x-a.left+n[0]}px`,this.$element.style.top=`${e.client.y-a.top+n[1]}px`,this.$element.style.display="block",this.targetElement=e.target})}hide(){this.$element.style.display="none",this.targetElement=null}update(e){this.unbindEvents(),super.update(e),this.bindEvents()}destroy(){this.unbindEvents(),super.destroy(),this.$element.remove()}getDOMContent(e){return PP(this,void 0,void 0,function*(){const{getContent:t,getItems:n}=this.options;return n?I9(yield n(e)):yield t(e)})}bindEvents(){const{graph:e}=this.context,{trigger:t}=this.options;e.on(`canvas:${t}`,this.onTriggerEvent),e.on(`node:${t}`,this.onTriggerEvent),e.on(`edge:${t}`,this.onTriggerEvent),e.on(`combo:${t}`,this.onTriggerEvent),document.addEventListener("click",this.onMenuItemClick)}unbindEvents(){const{graph:e}=this.context,{trigger:t}=this.options;e.off(`canvas:${t}`,this.onTriggerEvent),e.off(`node:${t}`,this.onTriggerEvent),e.off(`edge:${t}`,this.onTriggerEvent),e.off(`combo:${t}`,this.onTriggerEvent),document.removeEventListener("click",this.onMenuItemClick)}}Fd.defaultOptions={trigger:"contextmenu",offset:[4,4],loadingContent:'
Loading...
',getContent:()=>"It is a empty context menu.",enable:()=>!0};class jd extends Fr{constructor(e,t){super(e,Object.assign({},jd.defaultOptions,t)),this.edgeBundles={},this.edgePoints={},this.onBundle=()=>{const{model:n,element:i}=this.context,a=n.getEdgeData();this.divideEdges(this.options.divisions);const{cycles:s,iterRate:o,divRate:l}=this.options;let{lambda:u,divisions:c,iterations:h}=this.options;for(let f=0;f{var p;if(g.source===g.target)return;const m=Re(g);v[m]=this.getEdgeForces(g,c,u);for(let b=0;b{const d=Re(f),v=i.getElement(d);v==null||v.update({d:P0(this.edgePoints[d])})})},this.bindEvents()}get nodeMap(){const e=this.context.model.getNodeData();return Object.fromEntries(e.map(t=>[Re(t),Do(Br(t))]))}divideEdges(e){this.context.model.getEdgeData().forEach(n=>{var i;const a=Re(n);(i=this.edgePoints)[a]||(i[a]=[]);const s=this.nodeMap[n.source],o=this.nodeMap[n.target];if(e===1)this.edgePoints[a].push(s),this.edgePoints[a].push(Sa(jt(s,o),2)),this.edgePoints[a].push(o);else{const u=(this.edgePoints[a].length===0?Bn(s,o):H9(this.edgePoints[a]))/(e+1);let c=u;const h=[s];for(let f=1;fc;){const p=c/g,m=jt(d,xs(On(v,d),p));h.push(m),g-=c,c=u}c-=g}h.push(o),this.edgePoints[a]=h}})}getVectorPosition(e){const t=this.nodeMap[e.source],n=this.nodeMap[e.target],[i,a]=On(n,t),s=Bn(t,n);return{source:t,target:n,vx:i,vy:a,length:s}}measureEdgeCompatibility(e,t){const n=this.getVectorPosition(e),i=this.getVectorPosition(t),a=z9(n,i),s=F9(n,i),o=j9(n,i),l=G9(n,i);return a*s*o*l}getEdgeBundles(){const e={},t=this.options.bundleThreshold,n=this.context.model.getEdgeData();return n.forEach((i,a)=>{n.forEach((s,o)=>{var l,u;if(o<=a)return;this.measureEdgeCompatibility(i,s)>=t&&(e[l=Re(i)]||(e[l]=[]),e[Re(i)].push(s),e[u=Re(s)]||(e[u]=[]),e[Re(s)].push(i))})}),e}getSpringForce(e,t){const{pre:n,cur:i,next:a}=e;return xs(On(jt(n,a),xs(i,2)),t)}getElectrostaticForce(e,t){ts(this.edgeBundles)&&(this.edgeBundles=this.getEdgeBundles());const n=this.edgeBundles[Re(t)];let i=[0,0];return n==null||n.forEach(a=>{const s=this.edgePoints[Re(a)][e],o=this.edgePoints[Re(t)][e],l=On(s,o),u=Bn(s,o);i=jt(i,xs(l,1/u))}),i}getEdgeForces(e,t,n){const i=this.nodeMap[e.source],a=this.nodeMap[e.target],s=this.options.K/(Bn(i,a)*(t+1)),o=[[0,0]],l=Re(e);for(let u=1;uMath.abs(bL([r.vx,r.vy],[e.vx,e.vy])/(r.length*e.length)),F9=(r,e)=>{const t=(r.length+e.length)/2;return 2/(t/Math.min(r.length,e.length)+Math.max(r.length,e.length)/t)},j9=(r,e)=>{const t=(r.length+e.length)/2,n=Sa(jt(r.source,r.target),2),i=Sa(jt(e.source,e.target),2);return t/(t+Bn(n,i))},MP=(r,e)=>{if(e.source[0]===e.target[0])return[e.source[0],r[1]];if(e.source[1]===e.target[1])return[r[0],e.source[1]];const t=(e.source[1]-e.target[1])/(e.source[0]-e.target[0]),n=(t*t*e.source[0]+t*(r[1]-e.source[1])+r[0])/(t*t+1),i=t*(n-e.source[0])+e.source[1];return[n,i]},SP=(r,e)=>{const t=MP(e.source,r),n=MP(e.target,r),i=Sa(jt(t,n),2),a=Sa(jt(r.source,r.target),2);return Bn(t,n)===0?0:Math.max(0,1-2*Bn(a,i)/Bn(t,n))},G9=(r,e)=>Math.min(SP(r,e),SP(e,r)),H9=r=>{let e=0;for(let t=1;t{if(this.options.trigger==="drag"&&this.isLensOn)return;const i=zr(n.canvas);this.renderLens(i),this.renderFocusElements()},this.renderLens=n=>{const i=Object.assign({},X9,this.options.style);this.isLensOn||(this.lens=new zo({style:i}),this.canvas.appendChild(this.lens)),Object.assign(i,Ta(n),{size:this.r*2}),this.lens.update(i)},this.getFilterData=()=>{const{filter:n}=this.options,{model:i}=this.context,a=i.getData();if(!n)return a;const{nodes:s,edges:o,combos:l}=a;return{nodes:s.filter(u=>n(Re(u),"node")),edges:o.filter(u=>n(Re(u),"edge")),combos:l.filter(u=>n(Re(u),"combo"))}},this.getFocusElements=n=>{const{nodes:i,edges:a}=this.getFilterData(),s=i.filter(u=>Bn(Br(u),n)Re(u)),l=a.filter(u=>{const{source:c,target:h}=u,f=o.includes(c),d=o.includes(h);switch(this.options.nodeType){case"both":return f&&d;case"either":return f!==d;case"source":return f&&!d;case"target":return!f&&d;default:return!1}});return{nodes:s,edges:l}},this.renderFocusElements=()=>{const{element:n,graph:i}=this.context;if(!this.isLensOn)return;const a=this.lens.getCenter(),{nodes:s,edges:o}=this.getFocusElements(a),l=new Set,u=c=>{const h=Re(c);l.add(h);const f=n.getElement(h);if(!f)return;const d=this.shapes.get(h)||f.cloneNode();d.setPosition(f.getPosition()),d.id=f.id,this.shapes.has(h)?Object.entries(f.attributes).forEach(([p,m])=>{d.style[p]!==m&&(d.style[p]=m)}):(this.canvas.appendChild(d),this.shapes.set(h,d));const v=i.getElementType(h),g=this.getElementStyle(v,c);d.update(g)};s.forEach(u),o.forEach(u),this.shapes.forEach((c,h)=>{l.has(h)||(c.destroy(),this.shapes.delete(h))})},this.scaleRByWheel=n=>{var i;this.options.preventDefault&&n.preventDefault();const{clientX:a,clientY:s,deltaX:o,deltaY:l}=n,{graph:u,canvas:c}=this.context,h=u.getCanvasByClient([a,s]),f=(i=this.lens)===null||i===void 0?void 0:i.getCenter();if(!this.isLensOn||Bn(h,f)>this.r)return;const{maxR:d,minR:v}=this.options,g=o+l>0?1/(1-TP):1-TP,p=Math.min(...c.getSize())/2;this.r=Math.max(v||0,Math.min(d||p,this.r*g)),this.renderLens(f),this.renderFocusElements()},this.isLensDragging=!1,this.onDragStart=n=>{var i;const a=zr(n.canvas),s=(i=this.lens)===null||i===void 0?void 0:i.getCenter();!this.isLensOn||Bn(a,s)>this.r||(this.isLensDragging=!0)},this.onDrag=n=>{if(!this.isLensDragging)return;const i=zr(n.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(e,t){const n=e==="node"?this.options.nodeStyle:this.options.edgeStyle;return typeof n=="function"?n(t):n}get graphDom(){return this.context.graph.getCanvas().getContextService().getDomElement()}bindEvents(){var e;const{graph:t}=this.context,{trigger:n,scaleRBy:i}=this.options,a=t.getCanvas().getLayer();["click","drag"].includes(n)&&a.addEventListener(We.CLICK,this.onEdgeFilter),n==="pointermove"?a.addEventListener(We.POINTER_MOVE,this.onEdgeFilter):n==="drag"&&(a.addEventListener(We.DRAG_START,this.onDragStart),a.addEventListener(We.DRAG,this.onDrag),a.addEventListener(We.DRAG_END,this.onDragEnd)),i==="wheel"&&((e=this.graphDom)===null||e===void 0||e.addEventListener(We.WHEEL,this.scaleRByWheel,{passive:!1}))}unbindEvents(){var e;const{graph:t}=this.context,{trigger:n,scaleRBy:i}=this.options,a=t.getCanvas().getLayer();["click","drag"].includes(n)&&a.removeEventListener(We.CLICK,this.onEdgeFilter),n==="pointermove"?a.removeEventListener(We.POINTER_MOVE,this.onEdgeFilter):n==="drag"&&(a.removeEventListener(We.DRAG_START,this.onDragStart),a.removeEventListener(We.DRAG,this.onDrag),a.removeEventListener(We.DRAG_END,this.onDragEnd)),i==="wheel"&&((e=this.graphDom)===null||e===void 0||e.removeEventListener(We.WHEEL,this.scaleRByWheel))}update(e){this.unbindEvents(),super.update(e),this.bindEvents()}destroy(){this.unbindEvents(),this.isLensOn&&this.lens.destroy(),this.shapes.forEach((e,t)=>{e.destroy(),this.shapes.delete(t)}),super.destroy()}}Gd.defaultOptions={trigger:"pointermove",r:60,nodeType:"both",filter:()=>!0,style:{lineWidth:2},nodeStyle:{label:!1},edgeStyle:{label:!0},scaleRBy:"wheel",preventDefault:!0};const W9={fill:"#ccc",fillOpacity:.1,lineWidth:2,stroke:"#000",strokeOpacity:.8,labelFontSize:12},AP=.05,OP=.1;class Hd extends Fr{constructor(e,t){super(e,Object.assign({},Hd.defaultOptions,t)),this.r=this.options.r,this.d=this.options.d,this.onCreateFisheye=n=>{if(this.options.trigger==="drag"&&this.isLensOn)return;const i=zr(n.canvas);this.onMagnify(i)},this.onMagnify=n=>{n.some(isNaN)||(this.renderLens(n),this.renderFocusElements())},this.renderLens=n=>{const i=Object.assign({},W9,this.options.style);this.isLensOn||(this.lens=new zo({style:i}),this.canvas.appendChild(this.lens)),Object.assign(i,Ta(n),{size:this.r*2,label:this.options.showDPercent,labelText:this.getDPercent()}),this.lens.update(i)},this.getDPercent=()=>{const{minD:n,maxD:i}=this.options;return`${Math.round((this.d-n)/(i-n)*100)}%`},this.prevMagnifiedStyleMap=new Map,this.prevOriginStyleMap=new Map,this.renderFocusElements=()=>{if(!this.isLensOn)return;const{graph:n}=this.context,i=this.lens.getCenter(),a=(this.d+1)*this.r,s=new Map,o=new Map;n.getNodeData().forEach(u=>{const c=Br(u),h=Bn(c,i);if(h>this.r)return;const f=a*h/(this.d*h+this.r),[d,v]=c,[g,p]=i,m=(d-g)/h,b=(v-p)/h,x=[g+f*m,p+f*b],O=Re(u),T=this.getNodeStyle(u),S=jo(n.getElementRenderStyle(O),Object.keys(T));s.set(O,Object.assign(Object.assign({},Ta(x)),T)),o.set(O,Object.assign(Object.assign({},Ta(c)),S))}),this.updateStyle(s,o)},this.getNodeStyle=n=>{const{nodeStyle:i}=this.options;return typeof i=="function"?i(n):i},this.updateStyle=(n,i)=>{const{graph:a,element:s}=this.context,{enter:o,exit:l,keep:u}=Vs(Array.from(this.prevMagnifiedStyleMap.keys()),Array.from(n.keys()),f=>f),c=new Set,h=(f,d)=>{const v=s.getElement(f);v==null||v.update(d),a.getRelatedEdgesData(f).forEach(g=>{c.add(Re(g))})};[...o,...u].forEach(f=>{h(f,n.get(f))}),l.forEach(f=>{h(f,this.prevOriginStyleMap.get(f)),this.prevOriginStyleMap.delete(f)}),c.forEach(f=>{const d=s.getElement(f);d==null||d.update({})}),this.prevMagnifiedStyleMap=n,i.forEach((f,d)=>{this.prevOriginStyleMap.has(d)||this.prevOriginStyleMap.set(d,f)})},this.isWheelValid=n=>{if(this.options.preventDefault&&n.preventDefault(),!this.isLensOn)return!1;const{clientX:i,clientY:a}=n,s=this.context.graph.getCanvasByClient([i,a]),o=this.lens.getCenter();return!(Bn(s,o)>this.r)},this.scaleR=n=>{const{maxR:i,minR:a}=this.options,s=n?1/(1-AP):1-AP,o=Math.min(...this.context.canvas.getSize())/2;this.r=Math.max(a||0,Math.min(i||o,this.r*s))},this.scaleD=n=>{const{maxD:i,minD:a}=this.options,s=n?this.d+OP:this.d-OP;this.d=Math.max(a,Math.min(i,s))},this.scaleRByWheel=n=>{if(!this.isWheelValid(n))return;const{deltaX:i,deltaY:a}=n;this.scaleR(i+a>0);const s=this.lens.getCenter();this.onMagnify(s)},this.scaleDByWheel=n=>{if(!this.isWheelValid(n))return;const{deltaX:i,deltaY:a}=n;this.scaleD(i+a>0);const s=this.lens.getCenter();this.onMagnify(s)},this.isDragValid=n=>{if(this.options.preventDefault&&n.preventDefault(),!this.isLensOn)return!1;const i=zr(n.canvas),a=this.lens.getCenter();return!(Bn(i,a)>this.r)},this.isLensDragging=!1,this.onDragStart=n=>{this.isDragValid(n)&&(this.isLensDragging=!0)},this.onDrag=n=>{if(!this.isLensDragging)return;const i=zr(n.canvas);this.onMagnify(i)},this.onDragEnd=()=>{this.isLensDragging=!1},this.scaleRByDrag=n=>{if(!this.isLensDragging)return;const{dx:i,dy:a}=n;this.scaleR(i-a>0);const s=this.lens.getCenter();this.onMagnify(s)},this.scaleDByDrag=n=>{if(!this.isLensDragging)return;const{dx:i,dy:a}=n;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 e;const{graph:t}=this.context,{trigger:n,scaleRBy:i,scaleDBy:a}=this.options,s=t.getCanvas().getLayer();if(["click","drag"].includes(n)&&s.addEventListener(We.CLICK,this.onCreateFisheye),n==="pointermove"&&s.addEventListener(We.POINTER_MOVE,this.onCreateFisheye),n==="drag"||i==="drag"||a==="drag"){s.addEventListener(We.DRAG_START,this.onDragStart),s.addEventListener(We.DRAG_END,this.onDragEnd);const o=n==="drag"?this.onDrag:i==="drag"?this.scaleRByDrag:this.scaleDByDrag;s.addEventListener(We.DRAG,o)}if(i==="wheel"||a==="wheel"){const o=i==="wheel"?this.scaleRByWheel:this.scaleDByWheel;(e=this.graphDom)===null||e===void 0||e.addEventListener(We.WHEEL,o,{passive:!1})}}unbindEvents(){var e;const{graph:t}=this.context,{trigger:n,scaleRBy:i,scaleDBy:a}=this.options,s=t.getCanvas().getLayer();if(["click","drag"].includes(n)&&s.removeEventListener(We.CLICK,this.onCreateFisheye),n==="pointermove"&&s.removeEventListener(We.POINTER_MOVE,this.onCreateFisheye),n==="drag"||i==="drag"||a==="drag"){s.removeEventListener(We.DRAG_START,this.onDragStart),s.removeEventListener(We.DRAG_END,this.onDragEnd);const o=n==="drag"?this.onDrag:i==="drag"?this.scaleRByDrag:this.scaleDByDrag;s.removeEventListener(We.DRAG,o)}if(i==="wheel"||a==="wheel"){const o=i==="wheel"?this.scaleRByWheel:this.scaleDByWheel;(e=this.graphDom)===null||e===void 0||e.removeEventListener(We.WHEEL,o)}}update(e){this.unbindEvents(),super.update(e),this.bindEvents()}destroy(){var e;this.unbindEvents(),this.isLensOn&&((e=this.lens)===null||e===void 0||e.destroy()),this.prevMagnifiedStyleMap.clear(),this.prevOriginStyleMap.clear(),super.destroy()}}Hd.defaultOptions={trigger:"pointermove",r:120,d:1.5,maxD:5,minD:0,showDPercent:!0,style:{},nodeStyle:{label:!0},preventDefault:!0};class Xd extends Fr{constructor(e,t){super(e,Object.assign({},Xd.defaultOptions,t)),this.$el=this.context.canvas.getContainer(),this.graphSize=[0,0],this.onFullscreenChange=()=>{var n,i,a,s;const o=!!document.fullscreenElement;this.options.autoFit&&this.setGraphSize(o),o?(i=(n=this.options).onEnter)===null||i===void 0||i.call(n):(s=(a=this.options).onExit)===null||s===void 0||s.call(a)},this.shortcut=new Bl(e.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:e=[],exit:t=[]}=this.options.trigger;this.shortcut.bind(e,this.request),this.shortcut.bind(t,this.exit),["webkitfullscreenchange","mozfullscreenchange","fullscreenchange","MSFullscreenChange"].forEach(i=>{document.addEventListener(i,this.onFullscreenChange,!1)})}unbindEvents(){this.shortcut.unbindAll(),["webkitfullscreenchange","mozfullscreenchange","fullscreenchange","MSFullscreenChange"].forEach(t=>{document.removeEventListener(t,this.onFullscreenChange,!1)})}setGraphSize(e=!0){var t,n;let i,a;e?(i=((t=globalThis.screen)===null||t===void 0?void 0:t.width)||0,a=((n=globalThis.screen)===null||n===void 0?void 0:n.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||!V9()||this.$el.requestFullscreen().catch(e=>{wi.warn(`Error attempting to enable full-screen: ${e.message} (${e.name})`)})}exit(){document.fullscreenElement&&document.exitFullscreen()}update(e){this.unbindEvents(),super.update(e),this.bindEvents()}destroy(){this.exit(),this.style.remove(),super.destroy()}}Xd.defaultOptions={trigger:{},autoFit:!0};function V9(){return document.fullscreenEnabled||Reflect.get(document,"webkitFullscreenEnabled")||Reflect.get(document,"mozFullscreenEnabled")||Reflect.get(document,"msFullscreenEnabled")}class Wd extends Fr{constructor(e,t){super(e,Object.assign({},Wd.defaultOptions,t)),this.$element=Kl("grid-line",!0),this.offset=[0,0],this.onTransform=i=>{if(!this.options.follow)return;const{data:{translate:a}}=i;a&&this.updateOffset(a)},this.context.canvas.getContainer().prepend(this.$element),this.updateStyle(),this.bindEvents()}update(e){super.update(e),this.updateStyle()}bindEvents(){const{graph:e}=this.context;e.on(rt.AFTER_TRANSFORM,this.onTransform)}updateStyle(){const{size:e,stroke:t,lineWidth:n,border:i,borderLineWidth:a,borderStroke:s,borderStyle:o}=this.options;Object.assign(this.$element.style,{border:i?`${a}px ${o} ${s}`:"none",backgroundImage:`linear-gradient(${t} ${n}px, transparent ${n}px), linear-gradient(90deg, ${t} ${n}px, transparent ${n}px)`,backgroundSize:`${e}px ${e}px`})}updateOffset(e){this.offset=EL(jt(this.offset,e),this.options.size),this.$element.style.backgroundPosition=`${this.offset[0]}px ${this.offset[1]}px`}destroy(){this.context.graph.off(rt.AFTER_TRANSFORM,this.onTransform),this.$element.remove(),super.destroy()}}Wd.defaultOptions={border:!0,borderLineWidth:1,borderStroke:"#eee",borderStyle:"solid",lineWidth:1,size:20,stroke:"#eee"};function lm(r){const e={Added:new Map,Updated:new Map,Removed:new Map};return r.forEach(t=>{const{type:n,value:i}=t,a=Re(i);if(n==="NodeAdded"||n==="EdgeAdded"||n==="ComboAdded")e.Added.set(a,t);else if(n==="NodeUpdated"||n==="EdgeUpdated"||n==="ComboUpdated")if(e.Added.has(a))e.Added.set(a,{type:n.replace("Updated","Added"),value:i});else if(e.Updated.has(a)){const{original:s}=e.Updated.get(a);e.Updated.set(a,{type:n,value:i,original:s})}else e.Removed.has(a)||e.Updated.set(a,t);else(n==="NodeRemoved"||n==="EdgeRemoved"||n==="ComboRemoved")&&(e.Added.has(a)?e.Added.delete(a):(e.Updated.has(a)&&e.Updated.delete(a),e.Removed.set(a,t)))}),[...Array.from(e.Added.values()),...Array.from(e.Updated.values()),...Array.from(e.Removed.values())]}function kP(r){const{NodeAdded:e=[],NodeUpdated:t=[],NodeRemoved:n=[],EdgeAdded:i=[],EdgeUpdated:a=[],EdgeRemoved:s=[],ComboAdded:o=[],ComboUpdated:l=[],ComboRemoved:u=[]}=nf(r,c=>c.type);return{add:{nodes:e,edges:i,combos:o},update:{nodes:t,edges:a,combos:l},remove:{nodes:n,edges:s,combos:u}}}function CP(r,e){for(const t in r)nr(r[t])&&!Array.isArray(r[t])&&r[t]!==null?(e[t]||(e[t]={}),CP(r[t],e[t])):e[t]===void 0&&(e[t]=Qu(t))}function Y9(r,e=!1,t){const n={animation:e,current:{add:{},update:{},remove:{}},original:{add:{},update:{},remove:{}}},{add:i,update:a,remove:s}=kP(lm(r));return["nodes","edges","combos"].forEach(o=>{a[o]&&a[o].forEach(l=>{var u,c;const h=Object.assign({},l.value);let f=Object.assign({},l.original);if(t){const d=t.graph.getElementType(Re(l.original)),v=d==="edge"?"stroke":"fill",g=t.element.getElementComputedStyle(d,l.original);f=Object.assign(Object.assign({},l.original),{style:Object.assign({[v]:g[v]},l.original.style)})}CP(h,f),(u=n.current.update)[o]||(u[o]=[]),n.current.update[o].push(h),(c=n.original.update)[o]||(c[o]=[]),n.original.update[o].push(f)}),i[o]&&i[o].forEach(l=>{var u,c;const h=Object.assign({},l.value);(u=n.current.add)[o]||(u[o]=[]),n.current.add[o].push(h),(c=n.original.remove)[o]||(c[o]=[]),n.original.remove[o].push(h)}),s[o]&&s[o].forEach(l=>{var u,c;const h=Object.assign({},l.value);(u=n.current.remove)[o]||(u[o]=[]),n.current.remove[o].push(h),(c=n.original.add)[o]||(c[o]=[]),n.original.add[o].push(h)})}),n}class Vd extends Fr{constructor(e,t){super(e,Object.assign({},Vd.defaultOptions,t)),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 u=a?i.original:i.current;this.context.graph.addData(u.add),this.context.graph.updateData(u.update),this.context.graph.removeData(gE(u.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===rt.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(Y9(this.batchChanges.flat(),this.batchAnimation,this.context)),this.notify(Gs.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 hd;const{graph:n}=this.context;n.on(rt.AFTER_DRAW,this.addCommand),n.on(rt.BATCH_START,this.initBatchCommand),n.on(rt.BATCH_END,this.addCommand)}canUndo(){return this.undoStack.length>0}canRedo(){return this.redoStack.length>0}undo(){var e,t,n,i;const a=this.undoStack.pop();if(a){if(this.executeCommand(a),((t=(e=this.options).beforeAddCommand)===null||t===void 0?void 0:t.call(e,a,!1))===!1)return;this.redoStack.push(a),(i=(n=this.options).afterAddCommand)===null||i===void 0||i.call(n,a,!1),this.notify(Gs.UNDO,a)}return this}redo(){const e=this.redoStack.pop();return e&&(this.executeCommand(e,!1),this.undoStackPush(e),this.notify(Gs.REDO,e)),this}undoAndCancel(){const e=this.undoStack.pop();return e&&(this.executeCommand(e,!1),this.redoStack=[],this.notify(Gs.CANCEL,e)),this}undoStackPush(e){var t,n,i,a;const{stackSize:s}=this.options;s!==0&&this.undoStack.length>=s&&this.undoStack.shift(),((n=(t=this.options).beforeAddCommand)===null||n===void 0?void 0:n.call(t,e,!0))!==!1&&(this.undoStack.push(e),(a=(i=this.options).afterAddCommand)===null||a===void 0||a.call(i,e,!0))}clear(){this.undoStack=[],this.redoStack=[],this.batchChanges=null,this.batchAnimation=!1,this.notify(Gs.CLEAR,null)}notify(e,t){this.emitter.emit(e,{cmd:t}),this.emitter.emit(Gs.CHANGE,{cmd:t})}on(e,t){this.emitter.on(e,t)}destroy(){const{graph:e}=this.context;e.off(rt.AFTER_DRAW,this.addCommand),e.off(rt.BATCH_START,this.initBatchCommand),e.off(rt.BATCH_END,this.addCommand),this.emitter.off(),super.destroy(),this.undoStack=[],this.redoStack=[]}}Vd.defaultOptions={stackSize:0};var U9=w(1344),Z9=w.n(U9);function K9(r,e,t){if(r.length===1)return Q9(r[0],e,t);if(r.length===2)return J9(r,e,t);switch(t){case"smooth":return $9(r,e);case"sharp":return eB(r,e);case"rounded":default:return q9(r,e)}}const Q9=(r,e,t)=>{if(t==="sharp")return[["M",r[0]-e,r[1]-e],["L",r[0]+e,r[1]-e],["L",r[0]+e,r[1]+e],["L",r[0]-e,r[1]+e],["Z"]];const n=[e,e,0,0,0];return[["M",r[0],r[1]-e],["A",...n,r[0],r[1]+e],["A",...n,r[0],r[1]-e]]},J9=(r,e,t)=>{const n=[e,e,0,0,0],i=t==="sharp"?jt(r[0],Ys(Es(On(r[0],r[1])),e)):r[0],a=t==="sharp"?jt(r[1],Ys(Es(On(r[1],r[0])),e)):r[1],s=Ys(Es(wf(On(i,a),!1)),e),o=Ys(s,-1),l=jt(i,s),u=jt(a,s),c=jt(a,o),h=jt(i,o);return t==="sharp"?[["M",l[0],l[1]],["L",u[0],u[1]],["L",c[0],c[1]],["L",h[0],h[1]],["Z"]]:[["M",l[0],l[1]],["L",u[0],u[1]],["A",...n,c[0],c[1]],["L",h[0],h[1]],["A",...n,l[0],l[1]]]},q9=(r,e)=>{const t=OE(r).map((o,l)=>{const u=(l-2+r.length)%r.length,c=(l-1+r.length)%r.length,h=(l+1)%r.length,f=r[u],d=r[c],v=r[h],g=On(f,d),p=On(d,o),m=On(o,v),b=(k,C)=>Zp(k,C,!0)Ys(Es(wf(k,!1)),e),S=T(p);return[{p:Do(x?jt(d,T(g)):jt(d,S)),concave:x&&d},{p:Do(O?jt(o,T(m)):jt(o,S)),concave:O&&o}]}),n=[e,e,0,0,0],i=t.findIndex((o,l)=>!t[(l-1+t.length)%t.length][0].concave&&!t[(l-1+t.length)%t.length][1].concave&&!o[0].concave&&!o[0].concave&&!o[1].concave),a=t.slice(i).concat(t.slice(0,i));let s=[];return a.flatMap((o,l)=>{const u=[],c=a[t.length-1];return l===0&&u.push(["M",...c[1].p]),o[0].concave?s.push(o[0].p,o[1].p):u.push(["A",...n,...o[0].p]),o[1].concave?s.unshift(o[1].p):u.push(["L",...o[1].p]),s.length===3&&(u.pop(),u.push(["C",...s.flat()]),s=[]),u})},$9=(r,e)=>{const t=OE(r).map((n,i)=>{const a=r[(i+1)%r.length];return{p:n,v:Es(On(a,n))}});return t.forEach((n,i)=>{const a=i>0?i-1:r.length-1,s=t[a].v,o=Es(jt(s,Ys(n.v,Zp(s,n.v,!0)n.p))},eB=(r,e)=>{const n=r.map((a,s)=>{const o=r[s===0?r.length-1:s-1],l=nc(Ys(Es(wf(On(o,a),!1)),e));return[jt(o,l),jt(a,l)]}).flat();return n.map((a,s)=>{if(s%2===0)return null;const o=[n[(s-1)%n.length],n[s%n.length]],l=[n[(s+1)%n.length],n[(s+2)%n.length]];return Kp(o,l,!0)}).filter(Boolean).map((a,s)=>[s===0?"M":"L",a[0],a[1]]).concat([["Z"]])};var tB=function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i{if(!this.shape)this.shape=new lc({style:this.getHullStyle()}),this.context.canvas.appendChild(this.shape);else{const n=!dr(this.optionsCache,this.options);this.shape.update(this.getHullStyle(n))}this.optionsCache=Object.assign({},this.options)},this.updateHullPath=n=>{this.shape&&this.options.members.includes(Re(n.data))&&this.shape.update({d:this.getHullPath(!0)})},this.getHullPath=(n=!1)=>{const{graph:i}=this.context,a=this.getMember();if(a.length===0)return"";const s=a.map(u=>i.getNodeData(u)),o=Z9()(s.map(Br),this.options.concavity).slice(1).reverse(),l=o.flatMap(u=>s.filter(c=>dr(Br(c),u)).map(Re));return dr(l,this.hullMemberIds)&&!n?this.path:(this.hullMemberIds=l,this.path=K9(o,this.getPadding(),this.options.corner),this.path)},this.bindEvents()}bindEvents(){this.context.graph.on(rt.AFTER_RENDER,this.drawHull),this.context.graph.on(rt.AFTER_ELEMENT_UPDATE,this.updateHullPath)}getHullStyle(e){const t=this.options,{members:n,padding:i,corner:a}=t,s=tB(t,["members","padding","corner"]);return Object.assign(Object.assign({},s),{d:this.getHullPath(e)})}getPadding(){const{graph:e}=this.context;return this.hullMemberIds.reduce((n,i)=>{const{halfExtents:a}=e.getElementRenderBounds(i),s=Math.max(a[0],a[1]);return Math.max(n,s)},0)+this.options.padding}addMember(e){const t=Array.isArray(e)?e:[e];this.options.members=[...new Set([...this.options.members,...t])],this.shape.update({d:this.getHullPath()})}removeMember(e){const t=Array.isArray(e)?e:[e];this.options.members=this.options.members.filter(n=>!t.includes(n)),t.some(n=>this.hullMemberIds.includes(n))&&this.shape.update({d:this.getHullPath()})}updateMember(e){this.options.members=pt(e)?e(this.options.members):e,this.shape.update(this.getHullStyle(!0))}getMember(){return this.options.members}destroy(){this.context.graph.off(rt.AFTER_DRAW,this.drawHull),this.shape.destroy(),this.hullMemberIds=[],super.destroy()}}Yd.defaultOptions={members:[],padding:10,corner:"rounded",concavity:1/0,fill:"lightblue",fillOpacity:.2,labelOpacity:1,stroke:"blue",strokeOpacity:.2};function Jt(r,e,t){return(e=ex(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function NP(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),t.push.apply(t,n)}return t}function ar(r){for(var e=1;e>8&15|e>>4&240,e>>4&15|e&240,(e&15)<<4|e&15,1):t===8?Kd(e>>24&255,e>>16&255,e>>8&255,(e&255)/255):t===4?Kd(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|e&240,((e&15)<<4|e&15)/255):null):(e=iB.exec(r))?new Mi(e[1],e[2],e[3],1):(e=aB.exec(r))?new Mi(e[1]*255/100,e[2]*255/100,e[3]*255/100,1):(e=sB.exec(r))?Kd(e[1],e[2],e[3],e[4]):(e=oB.exec(r))?Kd(e[1]*255/100,e[2]*255/100,e[3]*255/100,e[4]):(e=lB.exec(r))?jP(e[1],e[2]/100,e[3]/100,1):(e=uB.exec(r))?jP(e[1],e[2]/100,e[3]/100,e[4]):LP.hasOwnProperty(r)?BP(LP[r]):r==="transparent"?new Mi(NaN,NaN,NaN,0):null}function BP(r){return new Mi(r>>16&255,r>>8&255,r&255,1)}function Kd(r,e,t,n){return n<=0&&(r=e=t=NaN),new Mi(r,e,t,n)}function fB(r){return r instanceof Ac||(r=Zd(r)),r?(r=r.rgb(),new Mi(r.r,r.g,r.b,r.opacity)):new Mi}function dB(r,e,t,n){return arguments.length===1?fB(r):new Mi(r,e,t,n==null?1:n)}function Mi(r,e,t,n){this.r=+r,this.g=+e,this.b=+t,this.opacity=+n}cm(Mi,dB,RP(Ac,{brighter(r){return r=r==null?Ud:Math.pow(Ud,r),new Mi(this.r*r,this.g*r,this.b*r,this.opacity)},darker(r){return r=r==null?Oc:Math.pow(Oc,r),new Mi(this.r*r,this.g*r,this.b*r,this.opacity)},rgb(){return this},clamp(){return new Mi(Zo(this.r),Zo(this.g),Zo(this.b),Qd(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:zP,formatHex:zP,formatHex8:vB,formatRgb:FP,toString:FP}));function zP(){return`#${Ko(this.r)}${Ko(this.g)}${Ko(this.b)}`}function vB(){return`#${Ko(this.r)}${Ko(this.g)}${Ko(this.b)}${Ko((isNaN(this.opacity)?1:this.opacity)*255)}`}function FP(){const r=Qd(this.opacity);return`${r===1?"rgb(":"rgba("}${Zo(this.r)}, ${Zo(this.g)}, ${Zo(this.b)}${r===1?")":`, ${r})`}`}function Qd(r){return isNaN(r)?1:Math.max(0,Math.min(1,r))}function Zo(r){return Math.max(0,Math.min(255,Math.round(r)||0))}function Ko(r){return r=Zo(r),(r<16?"0":"")+r.toString(16)}function jP(r,e,t,n){return n<=0?r=e=t=NaN:t<=0||t>=1?r=e=NaN:e<=0&&(r=NaN),new Ca(r,e,t,n)}function GP(r){if(r instanceof Ca)return new Ca(r.h,r.s,r.l,r.opacity);if(r instanceof Ac||(r=Zd(r)),!r)return new Ca;if(r instanceof Ca)return r;r=r.rgb();var e=r.r/255,t=r.g/255,n=r.b/255,i=Math.min(e,t,n),a=Math.max(e,t,n),s=NaN,o=a-i,l=(a+i)/2;return o?(e===a?s=(t-n)/o+(t0&&l<1?0:s,new Ca(s,o,l,r.opacity)}function gB(r,e,t,n){return arguments.length===1?GP(r):new Ca(r,e,t,n==null?1:n)}function Ca(r,e,t,n){this.h=+r,this.s=+e,this.l=+t,this.opacity=+n}cm(Ca,gB,RP(Ac,{brighter(r){return r=r==null?Ud:Math.pow(Ud,r),new Ca(this.h,this.s,this.l*r,this.opacity)},darker(r){return r=r==null?Oc:Math.pow(Oc,r),new Ca(this.h,this.s,this.l*r,this.opacity)},rgb(){var r=this.h%360+(this.h<0)*360,e=isNaN(r)||isNaN(this.s)?0:this.s,t=this.l,n=t+(t<.5?t:1-t)*e,i=2*t-n;return new Mi(hm(r>=240?r-240:r+120,i,n),hm(r,i,n),hm(r<120?r+240:r-120,i,n),this.opacity)},clamp(){return new Ca(HP(this.h),Jd(this.s),Jd(this.l),Qd(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 r=Qd(this.opacity);return`${r===1?"hsl(":"hsla("}${HP(this.h)}, ${Jd(this.s)*100}%, ${Jd(this.l)*100}%${r===1?")":`, ${r})`}`}}));function HP(r){return r=(r||0)%360,r<0?r+360:r}function Jd(r){return Math.max(0,Math.min(1,r||0))}function hm(r,e,t){return(r<60?e+(t-e)*r/60:r<180?t:r<240?e+(t-e)*(240-r)/60:e)*255}function Jl(r,e){var t=typeof Symbol!="undefined"&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=Ep(r))||e&&r&&typeof r.length=="number"){t&&(r=t);var n=0,i=function(){};return{s:i,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(u){throw u},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(){t=t.call(r)},n:function(){var u=t.next();return s=u.done,u},e:function(u){o=!0,a=u},f:function(){try{s||t.return==null||t.return()}finally{if(o)throw a}}}}function pB(r,e){if(r==null)return{};var t={};for(var n in r)if({}.hasOwnProperty.call(r,n)){if(e.includes(n))continue;t[n]=r[n]}return t}function Qo(r,e){if(r==null)return{};var t,n,i=pB(r,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(r);for(n=0;nk;){if(C-k>600){var U=C-k+1,J=S-k+1,te=Math.log(U),ie=.5*Math.exp(2*te/3),ae=.5*Math.sqrt(te*ie*(U-ie)/U)*(J-U/2<0?-1:1),ve=Math.max(k,Math.floor(S-J*ie/U+ae)),Z=Math.min(C,Math.floor(S+(U-J)*ie/U+ae));n(T,S,ve,Z,W)}var H=T[S],X=k,q=C;for(i(T,k,S),W(T[C],H)>0&&i(T,k,C);X0;)q--}W(T[k],H)===0?i(T,k,q):(q++,i(T,q,C)),q<=S&&(k=q+1),S<=q&&(C=q-1)}}function i(T,S,k){var C=T[S];T[S]=T[k],T[k]=C}function a(T,S){return TS?1:0}var s=function(S){S===void 0&&(S=9),this._maxEntries=Math.max(4,S),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(S){var k=this.data,C=[];if(!b(S,k))return C;for(var W=this.toBBox,U=[];k;){for(var J=0;J=0&&U[k].children.length>this._maxEntries;)this._split(U,k),k--;this._adjustParentBBoxes(W,U,k)},s.prototype._split=function(S,k){var C=S[k],W=C.children.length,U=this._minEntries;this._chooseSplitAxis(C,U,W);var J=this._chooseSplitIndex(C,U,W),te=x(C.children.splice(J,C.children.length-J));te.height=C.height,te.leaf=C.leaf,l(C,this.toBBox),l(te,this.toBBox),k?S[k-1].children.push(te):this._splitRoot(C,te)},s.prototype._splitRoot=function(S,k){this.data=x([S,k]),this.data.height=S.height+1,this.data.leaf=!1,l(this.data,this.toBBox)},s.prototype._chooseSplitIndex=function(S,k,C){for(var W,U=1/0,J=1/0,te=k;te<=C-k;te++){var ie=u(S,0,te,this.toBBox),ae=u(S,te,C,this.toBBox),ve=p(ie,ae),Z=d(ie)+d(ae);ve=k;Z--){var H=S.children[Z];c(te,S.leaf?U(H):H),ie+=v(te)}return ie},s.prototype._adjustParentBBoxes=function(S,k,C){for(var W=C;W>=0;W--)c(k[W],S)},s.prototype._condense=function(S){for(var k=S.length-1,C=void 0;k>=0;k--)S[k].children.length===0?k>0?(C=S[k-1].children,C.splice(C.indexOf(S[k]),1)):this.clear():l(S[k],this.toBBox)};function o(T,S,k){if(!k)return S.indexOf(T);for(var C=0;C=T.minX&&S.maxY>=T.minY}function x(T){return{children:T,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function O(T,S,k,C,W){for(var U=[S,k];U.length;)if(k=U.pop(),S=U.pop(),!(k-S<=C)){var J=S+Math.ceil((k-S)/C/2)*C;t(T,J,S,k,W),U.push(S,J,J,k)}}return s})})(XP);var gJ=XP.exports,Tt=function(r){return r.GROUP="g",r.FRAGMENT="fragment",r.CIRCLE="circle",r.ELLIPSE="ellipse",r.IMAGE="image",r.RECT="rect",r.LINE="line",r.POLYLINE="polyline",r.POLYGON="polygon",r.TEXT="text",r.PATH="path",r.HTML="html",r.MESH="mesh",r}({}),fm=function(r){return r[r.ZERO=0]="ZERO",r[r.NEGATIVE_ONE=1]="NEGATIVE_ONE",r}({}),pJ=null,mJ=null,dm=He,ql=Te,yB=Dt,bB=jn,WP=wt,vm=th,Si=function(){function r(){tt(this,r),this.center=[0,0,0],this.halfExtents=[0,0,0],this.min=[0,0,0],this.max=[0,0,0]}return nt(r,[{key:"update",value:function(t,n){ql(this.center,t),ql(this.halfExtents,n),vm(this.min,this.center,this.halfExtents),dm(this.max,this.center,this.halfExtents)}},{key:"setMinMax",value:function(t,n){dm(this.center,n,t),WP(this.center,this.center,.5),vm(this.halfExtents,n,t),WP(this.halfExtents,this.halfExtents,.5),ql(this.min,t),ql(this.max,n)}},{key:"getMin",value:function(){return this.min}},{key:"getMax",value:function(){return this.max}},{key:"add",value:function(t){if(!r.isEmpty(t)){if(r.isEmpty(this)){this.setMinMax(t.getMin(),t.getMax());return}var n=this.center,i=n[0],a=n[1],s=n[2],o=this.halfExtents,l=o[0],u=o[1],c=o[2],h=i-l,f=i+l,d=a-u,v=a+u,g=s-c,p=s+c,m=t.center,b=m[0],x=m[1],O=m[2],T=t.halfExtents,S=T[0],k=T[1],C=T[2],W=b-S,U=b+S,J=x-k,te=x+k,ie=O-C,ae=O+C;Wf&&(f=U),Jv&&(v=te),iep&&(p=ae),n[0]=(h+f)*.5,n[1]=(d+v)*.5,n[2]=(g+p)*.5,o[0]=(f-h)*.5,o[1]=(v-d)*.5,o[2]=(p-g)*.5,this.min[0]=h,this.min[1]=d,this.min[2]=g,this.max[0]=f,this.max[1]=v,this.max[2]=p}}},{key:"setFromTransformedAABB",value:function(t,n){var i=this.center,a=this.halfExtents,s=t.center,o=t.halfExtents,l=n[0],u=n[4],c=n[8],h=n[1],f=n[5],d=n[9],v=n[2],g=n[6],p=n[10],m=Math.abs(l),b=Math.abs(u),x=Math.abs(c),O=Math.abs(h),T=Math.abs(f),S=Math.abs(d),k=Math.abs(v),C=Math.abs(g),W=Math.abs(p);i[0]=n[12]+l*s[0]+u*s[1]+c*s[2],i[1]=n[13]+h*s[0]+f*s[1]+d*s[2],i[2]=n[14]+v*s[0]+g*s[1]+p*s[2],a[0]=m*o[0]+b*o[1]+x*o[2],a[1]=O*o[0]+T*o[1]+S*o[2],a[2]=k*o[0]+C*o[1]+W*o[2],vm(this.min,i,a),dm(this.max,i,a)}},{key:"intersects",value:function(t){var n=this.getMax(),i=this.getMin(),a=t.getMax(),s=t.getMin();return i[0]<=a[0]&&n[0]>=s[0]&&i[1]<=a[1]&&n[1]>=s[1]&&i[2]<=a[2]&&n[2]>=s[2]}},{key:"intersection",value:function(t){if(!this.intersects(t))return null;var n=new r,i=yB([0,0,0],this.getMin(),t.getMin()),a=bB([0,0,0],this.getMax(),t.getMax());return n.setMinMax(i,a),n}},{key:"getNegativeFarPoint",value:function(t){return t.pnVertexFlag===273?ql([0,0,0],this.min):t.pnVertexFlag===272?[this.min[0],this.min[1],this.max[2]]:t.pnVertexFlag===257?[this.min[0],this.max[1],this.min[2]]:t.pnVertexFlag===256?[this.min[0],this.max[1],this.max[2]]:t.pnVertexFlag===17?[this.max[0],this.min[1],this.min[2]]:t.pnVertexFlag===16?[this.max[0],this.min[1],this.max[2]]:t.pnVertexFlag===1?[this.max[0],this.max[1],this.min[2]]:[this.max[0],this.max[1],this.max[2]]}},{key:"getPositiveFarPoint",value:function(t){return t.pnVertexFlag===273?ql([0,0,0],this.max):t.pnVertexFlag===272?[this.max[0],this.max[1],this.min[2]]:t.pnVertexFlag===257?[this.max[0],this.min[1],this.max[2]]:t.pnVertexFlag===256?[this.max[0],this.min[1],this.min[2]]:t.pnVertexFlag===17?[this.min[0],this.max[1],this.max[2]]:t.pnVertexFlag===16?[this.min[0],this.max[1],this.min[2]]:t.pnVertexFlag===1?[this.min[0],this.min[1],this.max[2]]:[this.min[0],this.min[1],this.min[2]]}}],[{key:"isEmpty",value:function(t){return!t||t.halfExtents[0]===0&&t.halfExtents[1]===0&&t.halfExtents[2]===0}}])}(),xB=function(){function r(e,t){tt(this,r),this.distance=e||0,this.normal=t||me(0,1,0),this.updatePNVertexFlag()}return nt(r,[{key:"updatePNVertexFlag",value:function(){this.pnVertexFlag=(+(this.normal[0]>=0)<<8)+(+(this.normal[1]>=0)<<4)+ +(this.normal[2]>=0)}},{key:"distanceToPoint",value:function(t){return dn(t,this.normal)-this.distance}},{key:"normalize",value:function(){var t=1/wu(this.normal);wt(this.normal,this.normal,t),this.distance*=t}},{key:"intersectsLine",value:function(t,n,i){var a=this.distanceToPoint(t),s=this.distanceToPoint(n),o=a/(a-s),l=o>=0&&o<=1;return l&&i&&Ha(i,t,n,o),l}}])}(),yJ=function(r){return r[r.OUTSIDE=4294967295]="OUTSIDE",r[r.INSIDE=0]="INSIDE",r[r.INDETERMINATE=2147483647]="INDETERMINATE",r}({}),EB=function(){function r(e){if(tt(this,r),this.planes=[],e)this.planes=e;else for(var t=0;t<6;t++)this.planes.push(new xB)}return nt(r,[{key:"extractFromVPMatrix",value:function(t){var n=pn(t,16),i=n[0],a=n[1],s=n[2],o=n[3],l=n[4],u=n[5],c=n[6],h=n[7],f=n[8],d=n[9],v=n[10],g=n[11],p=n[12],m=n[13],b=n[14],x=n[15];Ae(this.planes[0].normal,o-i,h-l,g-f),this.planes[0].distance=x-p,Ae(this.planes[1].normal,o+i,h+l,g+f),this.planes[1].distance=x+p,Ae(this.planes[2].normal,o+a,h+u,g+d),this.planes[2].distance=x+m,Ae(this.planes[3].normal,o-a,h-u,g-d),this.planes[3].distance=x-m,Ae(this.planes[4].normal,o-s,h-c,g-v),this.planes[4].distance=x-b,Ae(this.planes[5].normal,o+s,h+c,g+v),this.planes[5].distance=x+b,this.planes.forEach(function(O){O.normalize(),O.updatePNVertexFlag()})}}])}(),ia=function(){function r(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;tt(this,r),this.x=0,this.y=0,this.x=e,this.y=t}return nt(r,[{key:"clone",value:function(){return new r(this.x,this.y)}},{key:"copyFrom",value:function(t){this.x=t.x,this.y=t.y}}])}(),$l=function(){function r(e,t,n,i){tt(this,r),this.x=e,this.y=t,this.width=n,this.height=i,this.left=e,this.right=e+n,this.top=t,this.bottom=t+i}return nt(r,[{key:"toJSON",value:function(){}}],[{key:"fromRect",value:function(t){return new r(t.x,t.y,t.width,t.height)}},{key:"applyTransform",value:function(t,n){var i=ma(t.x,t.y,0,1),a=ma(t.x+t.width,t.y,0,1),s=ma(t.x,t.y+t.height,0,1),o=ma(t.x+t.width,t.y+t.height,0,1),l=hr(),u=hr(),c=hr(),h=hr();Ze(l,i,n),Ze(u,a,n),Ze(c,s,n),Ze(h,o,n);var f=Math.min(l[0],u[0],c[0],h[0]),d=Math.min(l[1],u[1],c[1],h[1]),v=Math.max(l[0],u[0],c[0],h[0]),g=Math.max(l[1],u[1],c[1],h[1]);return r.fromRect({x:f,y:d,width:v-f,height:g-d})}}])}(),kn="Method not implemented.",bJ="Use document.documentElement instead.",wB="Cannot append a destroyed element.";function eu(r){return r===void 0?0:r>360||r<-360?r%360:r}var gm=Me();function si(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;return Array.isArray(r)&&r.length===3?n?De(r):Te(gm,r):ht(r)?n?me(r,e,t):Ae(gm,r,e,t):n?me(r[0],r[1]||e,r[2]||t):Ae(gm,r[0],r[1]||e,r[2]||t)}var PB=Math.PI/180;function wn(r){return r*PB}var MB=180/Math.PI;function aa(r){return r*MB}var SB=.9;function xJ(r){return r%=400,r<0&&(r+=400),r*SB}function EJ(r){return r/360}function TB(r){return 360*r}var qd=Math.PI/2;function AB(r,e){var t=e[0],n=e[1],i=e[2],a=e[3],s=t*t,o=n*n,l=i*i,u=a*a,c=s+o+l+u,h=t*a-n*i;return h>.499995*c?(r[0]=qd,r[1]=2*Math.atan2(n,t),r[2]=0):h<-.499995*c?(r[0]=-qd,r[1]=2*Math.atan2(n,t),r[2]=0):(r[0]=Math.asin(2*(t*i-a*n)),r[1]=Math.atan2(2*(t*a+n*i),1-2*(l+u)),r[2]=Math.atan2(2*(t*n+i*a),1-2*(o+l))),r}function OB(r,e){var t,n,i=Wa(Me(),e),a=pn(i,3),s=a[0],o=a[1],l=a[2],u=Math.asin(-e[2]/s);return u-qd?(t=Math.atan2(e[6]/o,e[10]/l),n=Math.atan2(e[1]/s,e[0]/s)):(n=0,t=-Math.atan2(e[4]/o,e[5]/o)):(n=0,t=Math.atan2(e[4]/o,e[5]/o)),r[0]=t,r[1]=u,r[2]=n,r}function pm(r,e){return e.length===16?OB(r,e):AB(r,e)}function kB(r,e,t,n,i){var a=Math.cos(r),s=Math.sin(r);return qy(n*a,i*s,0,-n*s,i*a,0,e,t,1)}function CB(r,e,t,n,i,a,s){var o=arguments.length>7&&arguments[7]!==void 0?arguments[7]:!1,l=2*a,u=t-e,c=n-i,h=l/u,f=l/c,d=(t+e)/u,v=(n+i)/c,g,p,m=s-a,b=s*a;return o?(g=-s/m,p=-b/m):(g=-(s+a)/m,p=-2*b/m),r[0]=h,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=f,r[6]=0,r[7]=0,r[8]=d,r[9]=v,r[10]=g,r[11]=-1,r[12]=0,r[13]=0,r[14]=p,r[15]=0,r}function VP(r){var e=r[0],t=r[1],n=r[3],i=r[4],a=Math.sqrt(e*e+t*t),s=Math.sqrt(n*n+i*i),o=e*i-t*n;if(o<0&&(eRt[1][2]&&(a[0]=-a[0]),Rt[0][2]>Rt[2][0]&&(a[1]=-a[1]),Rt[1][0]>Rt[0][1]&&(a[2]=-a[2]),!0}function _B(r,e){var t=e[15];if(t===0)return!1;for(var n=1/t,i=0;i<16;i++)r[i]=e[i]*n;return!0}function RB(r,e){r[0][0]=e[0],r[0][1]=e[1],r[0][2]=e[2],r[1][0]=e[4],r[1][1]=e[5],r[1][2]=e[6],r[2][0]=e[8],r[2][1]=e[9],r[2][2]=e[10]}function mm(r,e,t,n,i){r[0]=e[0]*n+t[0]*i,r[1]=e[1]*n+t[1]*i,r[2]=e[2]*n+t[2]*i}var Cn=function(r){return r[r.ORBITING=0]="ORBITING",r[r.EXPLORING=1]="EXPLORING",r[r.TRACKING=2]="TRACKING",r}({}),UP=function(r){return r[r.DEFAULT=0]="DEFAULT",r[r.ROTATIONAL=1]="ROTATIONAL",r[r.TRANSLATIONAL=2]="TRANSLATIONAL",r[r.CINEMATIC=3]="CINEMATIC",r}({}),_a=function(r){return r[r.ORTHOGRAPHIC=0]="ORTHOGRAPHIC",r[r.PERSPECTIVE=1]="PERSPECTIVE",r}({}),LB={UPDATED:"updated"},ZP=2e-4,KP=function(){function r(){tt(this,r),this.clipSpaceNearZ=fm.NEGATIVE_ONE,this.eventEmitter=new Je,this.matrix=mt(),this.right=me(1,0,0),this.up=me(0,1,0),this.forward=me(0,0,1),this.position=me(0,0,1),this.focalPoint=me(0,0,0),this.distanceVector=me(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=mt(),this.projectionMatrixInverse=mt(),this.jitteredProjectionMatrix=void 0,this.enableUpdate=!0,this.type=Cn.EXPLORING,this.trackingMode=UP.DEFAULT,this.projectionMode=_a.PERSPECTIVE,this.frustum=new EB,this.orthoMatrix=mt()}return nt(r,[{key:"isOrtho",value:function(){return this.projectionMode===_a.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(t){this.enableUpdate=t}},{key:"setType",value:function(t,n){return this.type=t,this.type===Cn.EXPLORING?this.setWorldRotation(!0):this.setWorldRotation(!1),this._getAngles(),this.type===Cn.TRACKING&&n!==void 0&&this.setTrackingMode(n),this}},{key:"setProjectionMode",value:function(t){return this.projectionMode=t,this}},{key:"setTrackingMode",value:function(t){if(this.type!==Cn.TRACKING)throw new Error("Impossible to set a tracking mode if the camera is not of tracking type");return this.trackingMode=t,this}},{key:"setWorldRotation",value:function(t){return this.rotateWorld=t,this._getAngles(),this}},{key:"getViewTransform",value:function(){return Ot(mt(),this.matrix)}},{key:"getWorldTransform",value:function(){return this.matrix}},{key:"jitterProjectionMatrix",value:function(t,n){var i=Dr(mt(),[t,n,0]);this.jitteredProjectionMatrix=Ut(mt(),i,this.projectionMatrix)}},{key:"clearJitterProjectionMatrix",value:function(){this.jitteredProjectionMatrix=void 0}},{key:"setMatrix",value:function(t){return this.matrix=t,this._update(),this}},{key:"setProjectionMatrix",value:function(t){this.projectionMatrix=t}},{key:"setFov",value:function(t){return this.setPerspective(this.near,this.far,t,this.aspect),this}},{key:"setAspect",value:function(t){return this.setPerspective(this.near,this.far,this.fov,t),this}},{key:"setNear",value:function(t){return this.projectionMode===_a.PERSPECTIVE?this.setPerspective(t,this.far,this.fov,this.aspect):this.setOrthographic(this.left,this.rright,this.top,this.bottom,t,this.far),this}},{key:"setFar",value:function(t){return this.projectionMode===_a.PERSPECTIVE?this.setPerspective(this.near,t,this.fov,this.aspect):this.setOrthographic(this.left,this.rright,this.top,this.bottom,this.near,t),this}},{key:"setViewOffset",value:function(t,n,i,a,s,o){return this.aspect=t/n,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=t,this.view.fullHeight=n,this.view.offsetX=i,this.view.offsetY=a,this.view.width=s,this.view.height=o,this.projectionMode===_a.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===_a.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(t){return this.zoom=t,this.projectionMode===_a.ORTHOGRAPHIC?this.setOrthographic(this.left,this.rright,this.top,this.bottom,this.near,this.far):this.projectionMode===_a.PERSPECTIVE&&this.setPerspective(this.near,this.far,this.fov,this.aspect),this}},{key:"setZoomByViewportPoint",value:function(t,n){var i=this.canvas.viewport2Canvas({x:n[0],y:n[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(t),this.rotate(0,0,o);var l=this.canvas.viewport2Canvas({x:n[0],y:n[1]}),u=l.x,c=l.y,h=me(u-a,c-s,0),f=dn(h,this.right)/ze(this.right),d=dn(h,this.up)/ze(this.up),v=this.getPosition(),g=pn(v,2),p=g[0],m=g[1],b=this.getFocalPoint(),x=pn(b,2),O=x[0],T=x[1];return this.setPosition(p-f,m-d),this.setFocalPoint(O-f,T-d),this}},{key:"setPerspective",value:function(t,n,i,a){var s;this.projectionMode=_a.PERSPECTIVE,this.fov=i,this.near=t,this.far=n,this.aspect=a;var o=this.near*Math.tan(wn(.5*this.fov))/this.zoom,l=2*o,u=this.aspect*l,c=-.5*u;if((s=this.view)!==null&&s!==void 0&&s.enabled){var h=this.view.fullWidth,f=this.view.fullHeight;c+=this.view.offsetX*u/h,o-=this.view.offsetY*l/f,u*=this.view.width/h,l*=this.view.height/f}return CB(this.projectionMatrix,c,c+u,o-l,o,t,this.far,this.clipSpaceNearZ===fm.ZERO),Ot(this.projectionMatrixInverse,this.projectionMatrix),this.triggerUpdate(),this}},{key:"setOrthographic",value:function(t,n,i,a,s,o){var l;this.projectionMode=_a.ORTHOGRAPHIC,this.rright=n,this.left=t,this.top=i,this.bottom=a,this.near=s,this.far=o;var u=(this.rright-this.left)/(2*this.zoom),c=(this.top-this.bottom)/(2*this.zoom),h=(this.rright+this.left)/2,f=(this.top+this.bottom)/2,d=h-u,v=h+u,g=f+c,p=f-c;if((l=this.view)!==null&&l!==void 0&&l.enabled){var m=(this.rright-this.left)/this.view.fullWidth/this.zoom,b=(this.top-this.bottom)/this.view.fullHeight/this.zoom;d+=m*this.view.offsetX,v=d+m*this.view.width,g-=b*this.view.offsetY,p=g-b*this.view.height}return this.clipSpaceNearZ===fm.NEGATIVE_ONE?bg(this.projectionMatrix,d,v,g,p,s,o):xg(this.projectionMatrix,d,v,g,p,s,o),Ot(this.projectionMatrixInverse,this.projectionMatrix),this._getOrthoMatrix(),this.triggerUpdate(),this}},{key:"setPosition",value:function(t){var n=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=si(t,n,i);return this._setPosition(a),this.setFocalPoint(this.focalPoint),this.triggerUpdate(),this}},{key:"setFocalPoint",value:function(t){var n=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=me(0,1,0);if(this.focalPoint=si(t,n,i),this.trackingMode===UP.CINEMATIC){var s=xt(Me(),this.focalPoint,this.position);t=s[0],n=s[1],i=s[2];var o=ze(s),l=aa(Math.asin(n/o)),u=90+aa(Math.atan2(i,t)),c=mt();Su(c,c,wn(u)),Mu(c,c,wn(l)),a=Dn(Me(),[0,1,0],c)}return Ot(this.matrix,Eg(mt(),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(t){if(this.distance===t||t<0)return this;this.distance=t,this.distance=tu.kUnitType&&this.getType()<=tu.kClampType}}],[{key:"isAngle",value:function(t){return t===ct.kDegrees||t===ct.kRadians||t===ct.kGradians||t===ct.kTurns}},{key:"isLength",value:function(t){return t>=ct.kEms&&t1&&arguments[1]!==void 0?arguments[1]:"",n="";return Number.isFinite(e)?n="NaN":e>0?n="infinity":n="-infinity",n+=t},xm=function(e){return HB(GB(e))},Pn=function(r){function e(t){var n,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ct.kNumber;tt(this,e),n=nn(this,e);var a;return typeof i=="string"?a=jB(i):a=i,n.unit=a,n.value=t,n}return rn(e,r),nt(e,[{key:"clone",value:function(){return new e(this.value,this.unit)}},{key:"equals",value:function(n){var i=n;return this.value===i.value&&this.unit===i.unit}},{key:"getType",value:function(){return tu.kUnitType}},{key:"convertTo",value:function(n){if(this.unit===n)return new e(this.value,this.unit);var i=xm(this.unit);if(i!==xm(n)||i===ct.kUnknown)return null;var a=JP(this.unit)/JP(n);return new e(this.value*a,n)}},{key:"buildCSSText",value:function(n,i,a){var s;switch(this.unit){case ct.kUnknown:break;case ct.kInteger:s=Number(this.value).toFixed(0);break;case ct.kNumber:case ct.kPercentage:case ct.kEms:case ct.kRems:case ct.kPixels:case ct.kDegrees:case ct.kRadians:case ct.kGradians:case ct.kMilliseconds:case ct.kSeconds:case ct.kTurns:{var o=-999999,l=999999,u=this.value,c=bm(this.unit);if(ul){var h=bm(this.unit);!Number.isFinite(u)||Number.isNaN(u)?s=WB(u,h):s=u+(h||"")}else s="".concat(u).concat(c)}}return a+=s,a}}])}($d),La=new Pn(0,"px");new Pn(1,"px");var Jo=new Pn(0,"deg"),Em=function(r){function e(t,n,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 tt(this,e),a=nn(this,e,["rgb"]),a.r=t,a.g=n,a.b=i,a.alpha=s,a.isNone=o,a}return rn(e,r),nt(e,[{key:"clone",value:function(){return new e(this.r,this.g,this.b,this.alpha)}},{key:"buildCSSText",value:function(n,i,a){return"".concat(a,"rgba(").concat(this.r,",").concat(this.g,",").concat(this.b,",").concat(this.alpha,")")}}])}(XB),qP=new sa("unset"),VB=new sa("initial"),YB=new sa("inherit"),wm={"":qP,unset:qP,initial:VB,inherit:YB},UB=function(e){return wm[e]||(wm[e]=new sa(e)),wm[e]},$P=new Em(0,0,0,0,!0),eM=new Em(0,0,0,0),ZB=oi(function(r,e,t,n){return new Em(r,e,t,n)},function(r,e,t,n){return"rgba(".concat(r,",").concat(e,",").concat(t,",").concat(n,")")}),Yn=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ct.kNumber;return new Pn(e,t)};new Pn(50,"%");function KB(r){var e=r.type,t=r.value;return e==="hex"?"#".concat(t):e==="literal"?t:e==="rgb"?"rgb(".concat(t.join(","),")"):"rgba(".concat(t.join(","),")")}var QB=function(){var r={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]+\.?))/},e="";function t(H){throw new Error("".concat(e,": ").concat(H))}function n(){var H=i();return e.length>0&&t("Invalid input not EOF"),H}function i(){return x(a)}function a(){return s("linear-gradient",r.linearGradient,l)||s("repeating-linear-gradient",r.repeatingLinearGradient,l)||s("radial-gradient",r.radialGradient,h)||s("repeating-radial-gradient",r.repeatingRadialGradient,h)||s("conic-gradient",r.conicGradient,h)}function s(H,X,q){return o(X,function(oe){var de=q();return de&&(ve(r.comma)||t("Missing comma before color stops")),{type:H,orientation:de,colorStops:x(O)}})}function o(H,X){var q=ve(H);if(q){ve(r.startCall)||t("Missing (");var oe=X(q);return ve(r.endCall)||t("Missing )"),oe}}function l(){return u()||c()}function u(){return ae("directional",r.sideOrCorner,1)}function c(){return ae("angular",r.angleValue,1)}function h(){var H,X=f(),q;return X&&(H=[],H.push(X),q=e,ve(r.comma)&&(X=f(),X?H.push(X):e=q)),H}function f(){var H=d()||v();if(H)H.at=p();else{var X=g();if(X){H=X;var q=p();q&&(H.at=q)}else{var oe=m();oe&&(H={type:"default-radial",at:oe})}}return H}function d(){var H=ae("shape",/^(circle)/i,0);return H&&(H.style=ie()||g()),H}function v(){var H=ae("shape",/^(ellipse)/i,0);return H&&(H.style=J()||g()),H}function g(){return ae("extent-keyword",r.extentKeywords,1)}function p(){if(ae("position",/^at/,0)){var H=m();return H||t("Missing positioning value"),H}}function m(){var H=b();if(H.x||H.y)return{type:"position",value:H}}function b(){return{x:J(),y:J()}}function x(H){var X=H(),q=[];if(X)for(q.push(X);ve(r.comma);)X=H(),X?q.push(X):t("One extra comma");return q}function O(){var H=T();return H||t("Expected color definition"),H.length=J(),H}function T(){return k()||W()||C()||S()}function S(){return ae("literal",r.literalColor,0)}function k(){return ae("hex",r.hexColor,1)}function C(){return o(r.rgbColor,function(){return{type:"rgb",value:x(U)}})}function W(){return o(r.rgbaColor,function(){return{type:"rgba",value:x(U)}})}function U(){return ve(r.number)[1]}function J(){return ae("%",r.percentageValue,1)||te()||ie()}function te(){return ae("position-keyword",r.positionKeywords,1)}function ie(){return ae("px",r.pixelValue,1)||ae("em",r.emValue,1)}function ae(H,X,q){var oe=ve(X);if(oe)return{type:H,value:oe[q]}}function ve(H){var X=/^[\n\r\t\s]+/.exec(e);X&&Z(X[0].length);var q=H.exec(e);return q&&Z(q[0].length),q}function Z(H){e=e.substring(H)}return function(H){return e=H,n()}}();function wJ(r,e,t,n){var i=wn(n.value),a=0,s=0,o=a+e/2,l=s+t/2,u=Math.abs(e*Math.cos(i))+Math.abs(t*Math.sin(i)),c=r[0]+o-Math.cos(i)*u/2,h=r[1]+l-Math.sin(i)*u/2,f=r[0]+o+Math.cos(i)*u/2,d=r[1]+l+Math.sin(i)*u/2;return{x1:c,y1:h,x2:f,y2:d}}function PJ(r,e,t,n,i,a){var s=n.value,o=i.value;n.unit===ct.kPercentage&&(s=n.value/100*e),i.unit===ct.kPercentage&&(o=i.value/100*t);var l=Math.max(distanceSquareRoot([0,0],[s,o]),distanceSquareRoot([0,t],[s,o]),distanceSquareRoot([e,t],[s,o]),distanceSquareRoot([e,0],[s,o]));return a&&(a instanceof Pn?l=a.value:a instanceof sa&&(a.value==="closest-side"?l=Math.min(s,e-s,o,t-o):a.value==="farthest-side"?l=Math.max(s,e-s,o,t-o):a.value==="closest-corner"&&(l=Math.min(distanceSquareRoot([0,0],[s,o]),distanceSquareRoot([0,t],[s,o]),distanceSquareRoot([e,t],[s,o]),distanceSquareRoot([e,0],[s,o]))))),{x:s+r[0],y:o+r[1],r:l}}var JB=/^l\s*\(\s*([\d.]+)\s*\)\s*(.*)/i,qB=/^r\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)\s*(.*)/i,$B=/^p\s*\(\s*([axyn])\s*\)\s*(.*)/i,tM=/[\d.]+:(#[^\s]+|[^\)]+\))/gi;function e7(r){var e,t=r.length;if(r[t-1].length=(e=r[t-1].length)!==null&&e!==void 0?e:{type:"%",value:"100"},t>1){var n;r[0].length=(n=r[0].length)!==null&&n!==void 0?n:{type:"%",value:"0"}}for(var i=0,a=Number(r[0].length.value),s=1;s-1||r.indexOf("radial")>-1){var e=QB(r);return e.map(function(o){var l=o.type,u=o.orientation,c=o.colorStops;e7(c);var h=c.map(function(x){return{offset:Yn(Number(x.length.value),"%"),color:KB(x)}});if(l==="linear-gradient")return new tv(ev.LinearGradient,{angle:u?n7(u):Jo,steps:h});if(l==="radial-gradient"&&(u||(u=[{type:"shape",value:"circle"}]),u[0].type==="shape"&&u[0].value==="circle")){var f=r7(u[0].at),d=f.cx,v=f.cy,g;if(u[0].style){var p=u[0].style,m=p.type,b=p.value;m==="extent-keyword"?g=UB(b):g=Yn(b,m)}return new tv(ev.RadialGradient,{cx:d,cy:v,size:g,steps:h})}})}var t=r[0];if(r[1]==="("||r[2]==="("){if(t==="l"){var n=JB.exec(r);if(n){var i,a=((i=n[2].match(tM))===null||i===void 0?void 0:i.map(function(o){return o.split(":")}))||[];return[new tv(ev.LinearGradient,{angle:Yn(parseFloat(n[1]),"deg"),steps:a.map(function(o){var l=pn(o,2),u=l[0],c=l[1];return{offset:Yn(Number(u)*100,"%"),color:c}})})]}}else if(t==="r"){var s=a7(r);if(s)if(Xt(s))r=s;else return[new tv(ev.RadialGradient,s)]}else if(t==="p")return s7(r)}});function a7(r){var e=qB.exec(r);if(e){var t,n=((t=e[4].match(tM))===null||t===void 0?void 0:t.map(function(i){return i.split(":")}))||[];return{cx:Yn(50,"%"),cy:Yn(50,"%"),steps:n.map(function(i){var a=pn(i,2),s=a[0],o=a[1];return{offset:Yn(Number(s)*100,"%"),color:o}})}}return null}function s7(r){var e=$B.exec(r);if(e){var t=e[1],n=e[2];switch(t){case"a":t="repeat";break;case"x":t="repeat-x";break;case"y":t="repeat-y";break;case"n":t="no-repeat";break;default:t="no-repeat"}return{image:n,repetition:t}}return null}function MJ(r){return!!r.type&&!!r.value}function o7(r){return r&&!!r.image}function nM(r){return r&&!vt(r.r)&&!vt(r.g)&&!vt(r.b)}var Nc=oi(function(r){if(o7(r))return ar({repetition:"repeat"},r);if(vt(r)&&(r=""),r==="transparent")return eM;if(r==="currentColor")r="black";else if(r==="none")return $P;var e=i7(r);if(e)return e;var t=Zd(r),n=[0,0,0,0];return t!==null&&(n[0]=t.r||0,n[1]=t.g||0,n[2]=t.b||0,n[3]=t.opacity),ZB.apply(void 0,n)});function l7(r,e){if(!(!nM(r)||!nM(e)))return[[Number(r.r),Number(r.g),Number(r.b),Number(r.alpha)],[Number(e.r),Number(e.g),Number(e.b),Number(e.alpha)],function(t){var n=t.slice();if(n[3])for(var i=0;i<3;i++)n[i]=Math.round(on(n[i],0,255));return n[3]=on(n[3],0,1),"rgba(".concat(n.join(","),")")}]}function _c(r,e){if(vt(e))return Yn(0,"px");if(e="".concat(e).trim().toLowerCase(),isFinite(Number(e))){if("px".search(r)>=0)return Yn(Number(e),"px");if("deg".search(r)>=0)return Yn(Number(e),"deg")}var t=[];e=e.replace(r,function(i){return t.push(i),"U".concat(i)});var n="U(".concat(r.source,")");return t.map(function(i){return Yn(Number(e.replace(new RegExp("U".concat(i),"g"),"").replace(new RegExp(n,"g"),"*0")),i)})[0]}var rM=function(e){return _c(new RegExp("px","g"),e)},u7=oi(rM),c7=function(e){return _c(new RegExp("%","g"),e)};oi(c7);var iM=function(e){return ht(e)||isFinite(Number(e))?Yn(Number(e)||0,"px"):_c(new RegExp("px|%|em|rem","g"),e)},Pm=oi(iM),aM=function(e){return _c(new RegExp("deg|rad|grad|turn","g"),e)},h7=oi(aM);function f7(r,e,t,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,a="",s=r.value||0,o=e.value||0,l=xm(r.unit),u=r.convertTo(l),c=e.convertTo(l);return u&&c?(s=u.value,o=c.value,a=bm(r.unit)):(Pn.isLength(r.unit)||Pn.isLength(e.unit))&&(s=Bi(r,i,t),o=Bi(e,i,t),a="px"),[s,o,function(h){return n&&(h=Math.max(h,0)),h+a}]}function Ti(r){var e=0;return r.unit===ct.kDegrees?e=r.value:r.unit===ct.kRadians?e=aa(Number(r.value)):r.unit===ct.kTurns?e=TB(Number(r.value)):r.value&&(e=r.value),e}function sM(r,e){var t;return Array.isArray(r)?t=r.map(function(n){return Number(n)}):Xt(r)?t=r.split(" ").map(function(n){return Number(n)}):ht(r)&&(t=[r]),e===2?t.length===1?[t[0],t[0]]:[t[0],t[1]]:t.length===1?[t[0],t[0],t[0],t[0]]:t.length===2?[t[0],t[1],t[0],t[1]]:t.length===3?[t[0],t[1],t[2],t[1]]:[t[0],t[1],t[2],t[3]]}function Bi(r,e,t){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(r.unit===ct.kPixels)return Number(r.value);if(r.unit===ct.kPercentage&&t){var i=t.nodeName===Tt.GROUP?t.getLocalBounds():t.getGeometryBounds();return(n?i.min[e]:0)+r.value/100*i.halfExtents[e]*2}return 0}var d7=function(e){return _c(/deg|rad|grad|turn|px|%/g,e)},v7=["blur","brightness","drop-shadow","contrast","grayscale","sepia","saturate","hue-rotate","invert"];function g7(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";if(r=r.toLowerCase().trim(),r==="none")return[];for(var e=/\s*([\w-]+)\(([^)]*)\)/g,t=[],n,i=0;n=e.exec(r);){if(n.index!==i)return[];if(i=n.index+n[0].length,v7.indexOf(n[1])>-1&&t.push({name:n[1],params:n[2].split(" ").map(function(a){return d7(a)||Nc(a)})}),e.lastIndex===r.length)return t}return[]}function oM(r){return r.toString()}var lM=function(e){return typeof e=="number"?Yn(e):/^\s*[-+]?(\d*\.)?\d+\s*$/.test(e)?Yn(Number(e)):Yn(0)},Mm=oi(lM);oi(function(r){return Xt(r)?r.split(" ").map(Mm):r.map(Mm)});function Sm(r,e){return[r,e,oM]}function Tm(r,e){return function(t,n){return[t,n,function(i){return oM(on(i,r,e))}]}}function uM(r,e){if(r.length===e.length)return[r,e,function(t){return t}]}function cM(r){return r.parsedStyle.d.totalLength===0&&(r.parsedStyle.d.totalLength=c1(r.parsedStyle.d.absolutePath)),r.parsedStyle.d.totalLength}function p7(r){return r.parsedStyle.points.totalLength===0&&(r.parsedStyle.points.totalLength=V1(r.parsedStyle.points.points)),r.parsedStyle.points.totalLength}function m7(r){for(var e=0;e0&&t.push(n),{polygons:e,polylines:t}}function nv(r,e){return r[0]===e[0]&&r[1]===e[1]}function x7(r,e){for(var t=[],n=[],i=[],a=0;aMath.PI/2?Math.PI-u:u,c=c>Math.PI/2?Math.PI-c:c;var h={xExtra:Math.cos(l/2-u)*(e/2*(1/Math.sin(l/2)))-e/2||0,yExtra:Math.cos(c-l/2)*(e/2*(1/Math.sin(l/2)))-e/2||0};return h}function hM(r,e){return[e[0]+(e[0]-r[0]),e[1]+(e[1]-r[1])]}var fM=function(e,t){var n=e.x*t.x+e.y*t.y,i=Math.sqrt((Math.pow(e.x,2)+Math.pow(e.y,2))*(Math.pow(t.x,2)+Math.pow(t.y,2))),a=e.x*t.y-e.y*t.x<0?-1:1,s=a*Math.acos(n/i);return s},dM=function(e,t,n,i,a,s,o,l){t=Math.abs(t),n=Math.abs(n),i=oh(i,360);var u=wn(i);if(e.x===o.x&&e.y===o.y)return{x:e.x,y:e.y,ellipticalArcAngle:0};if(t===0||n===0)return{x:0,y:0,ellipticalArcAngle:0};var c=(e.x-o.x)/2,h=(e.y-o.y)/2,f={x:Math.cos(u)*c+Math.sin(u)*h,y:-Math.sin(u)*c+Math.cos(u)*h},d=Math.pow(f.x,2)/Math.pow(t,2)+Math.pow(f.y,2)/Math.pow(n,2);d>1&&(t*=Math.sqrt(d),n*=Math.sqrt(d));var v=Math.pow(t,2)*Math.pow(n,2)-Math.pow(t,2)*Math.pow(f.y,2)-Math.pow(n,2)*Math.pow(f.x,2),g=Math.pow(t,2)*Math.pow(f.y,2)+Math.pow(n,2)*Math.pow(f.x,2),p=v/g;p=p<0?0:p;var m=(a!==s?1:-1)*Math.sqrt(p),b={x:m*(t*f.y/n),y:m*(-(n*f.x)/t)},x={x:Math.cos(u)*b.x-Math.sin(u)*b.y+(e.x+o.x)/2,y:Math.sin(u)*b.x+Math.cos(u)*b.y+(e.y+o.y)/2},O={x:(f.x-b.x)/t,y:(f.y-b.y)/n},T=fM({x:1,y:0},O),S={x:(-f.x-b.x)/t,y:(-f.y-b.y)/n},k=fM(O,S);!s&&k>0?k-=2*Math.PI:s&&k<0&&(k+=2*Math.PI),k%=2*Math.PI;var C=T+k*l,W=t*Math.cos(C),U=n*Math.sin(C),J={x:Math.cos(u)*W-Math.sin(u)*U+x.x,y:Math.sin(u)*W+Math.cos(u)*U+x.y,ellipticalArcStartAngle:T,ellipticalArcEndAngle:T+k,ellipticalArcAngle:C,ellipticalArcCenter:x,resultantRx:t,resultantRy:n};return J};function E7(r){for(var e=[],t=null,n=null,i=null,a=0,s=r.length,o=0;o2&&arguments[2]!==void 0?arguments[2]:!0,n=r.arcParams,i=n.rx,a=i===void 0?0:i,s=n.ry,o=s===void 0?0:s,l=n.xRotation,u=n.arcFlag,c=n.sweepFlag,h=dM({x:r.prePoint[0],y:r.prePoint[1]},a,o,l,!!u,!!c,{x:r.currentPoint[0],y:r.currentPoint[1]},e),f=dM({x:r.prePoint[0],y:r.prePoint[1]},a,o,l,!!u,!!c,{x:r.currentPoint[0],y:r.currentPoint[1]},t?e+.005:e-.005),d=f.x-h.x,v=f.y-h.y,g=Math.sqrt(d*d+v*v);return{x:-d/g,y:-v/g}}function iv(r){return Math.sqrt(r[0]*r[0]+r[1]*r[1])}function Am(r,e){return iv(r)*iv(e)?(r[0]*e[0]+r[1]*e[1])/(iv(r)*iv(e)):1}function gM(r,e){return(r[0]*e[1]1&&(t*=Math.sqrt(d),n*=Math.sqrt(d));var v=t*t*(f*f)+n*n*(h*h),g=v?Math.sqrt((t*t*(n*n)-v)/v):1;a===s&&(g*=-1),isNaN(g)&&(g=0);var p=n?g*t*f/n:0,m=t?g*-n*h/t:0,b=(o+u)/2+Math.cos(i)*p-Math.sin(i)*m,x=(l+c)/2+Math.sin(i)*p+Math.cos(i)*m,O=[(h-p)/t,(f-m)/n],T=[(-1*h-p)/t,(-1*f-m)/n],S=gM([1,0],O),k=gM(O,T);return Am(O,T)<=-1&&(k=Math.PI),Am(O,T)>=1&&(k=0),s===0&&k>0&&(k-=2*Math.PI),s===1&&k<0&&(k+=2*Math.PI),{cx:b,cy:x,rx:nv(r,[u,c])?0:t,ry:nv(r,[u,c])?0:n,startAngle:S,endAngle:S+k,xRotation:i,arcFlag:a,sweepFlag:s}}function P7(r,e,t){return r.reduce(function(n,i){var a="";if(i[0]==="M"||i[0]==="L"){var s=vec3.fromValues(i[1],i[2],0);t&&vec3.transformMat4(s,s,t),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),u=vec3.fromValues(i[5],i[6],0);t&&(vec3.transformMat4(o,o,t),vec3.transformMat4(l,l,t),vec3.transformMat4(u,u,t)),a="".concat(i[0]).concat(o[0],",").concat(o[1],",").concat(l[0],",").concat(l[1],",").concat(u[0],",").concat(u[1])}else if(i[0]==="A"){var c=vec3.fromValues(i[6],i[7],0);t&&vec3.transformMat4(c,c,t),a="".concat(i[0]).concat(i[1],",").concat(i[2],",").concat(i[3],",").concat(i[4],",").concat(i[5],",").concat(c[0],",").concat(c[1])}else if(i[0]==="Q"){var h=vec3.fromValues(i[1],i[2],0),f=vec3.fromValues(i[3],i[4],0);t&&(vec3.transformMat4(h,h,t),vec3.transformMat4(f,f,t)),a="".concat(i[0]).concat(i[1],",").concat(i[2],",").concat(i[3],",").concat(i[4],"}")}return n+=a},"")}function M7(r,e,t,n){return[["M",r,e],["L",t,n]]}function pM(r,e,t,n){var i=(-1+Math.sqrt(2))/3*4,a=r*i,s=e*i,o=t-r,l=t+r,u=n-e,c=n+e;return[["M",o,n],["C",o,n-s,t-a,u,t,u],["C",t+a,u,l,n-s,l,n],["C",l,n+s,t+a,c,t,c],["C",t-a,c,o,n+s,o,n],["Z"]]}function S7(r,e){var t=r.map(function(n,i){return[i===0?"M":"L",n[0],n[1]]});return e&&t.push(["Z"]),t}function T7(r,e,t,n,i){if(i){var a=_slicedToArray(i,4),s=a[0],o=a[1],l=a[2],u=a[3],c=r>0?1:-1,h=e>0?1:-1,f=c+h!==0?1:0;return[["M",c*s+t,n],["L",r-c*o+t,n],o?["A",o,o,0,0,f,r+t,h*o+n]:null,["L",r+t,e-h*l+n],l?["A",l,l,0,0,f,r+t-c*l,e+n]:null,["L",t+c*u,e+n],u?["A",u,u,0,0,f,t,e+n-h*u]:null,["L",t,h*s+n],s?["A",s,s,0,0,f,c*s+t,n]:null,["Z"]].filter(function(d){return d})}return[["M",t,n],["L",t+r,n],["L",t+r,n+e],["L",t,n+e],["Z"]]}function SJ(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:r.getLocalTransform(),t=[];switch(r.nodeName){case Tt.LINE:var n=r.parsedStyle,i=n.x1,a=i===void 0?0:i,s=n.y1,o=s===void 0?0:s,l=n.x2,u=l===void 0?0:l,c=n.y2,h=c===void 0?0:c;t=M7(a,o,u,h);break;case Tt.CIRCLE:{var f=r.parsedStyle,d=f.r,v=d===void 0?0:d,g=f.cx,p=g===void 0?0:g,m=f.cy,b=m===void 0?0:m;t=pM(v,v,p,b);break}case Tt.ELLIPSE:{var x=r.parsedStyle,O=x.rx,T=O===void 0?0:O,S=x.ry,k=S===void 0?0:S,C=x.cx,W=C===void 0?0:C,U=x.cy,J=U===void 0?0:U;t=pM(T,k,W,J);break}case Tt.POLYLINE:case Tt.POLYGON:var te=r.parsedStyle.points;t=S7(te.points,r.nodeName===Tt.POLYGON);break;case Tt.RECT:var ie=r.parsedStyle,ae=ie.width,ve=ae===void 0?0:ae,Z=ie.height,H=Z===void 0?0:Z,X=ie.x,q=X===void 0?0:X,oe=ie.y,de=oe===void 0?0:oe,Oe=ie.radius,Be=Oe&&Oe.some(function(Ve){return Ve!==0});t=T7(ve,H,q,de,Be&&Oe.map(function(Ve){return clamp(Ve,0,Math.min(Math.abs(ve)/2,Math.abs(H)/2))}));break;case Tt.PATH:var Ge=r.parsedStyle.d.absolutePath;t=_toConsumableArray(Ge);break}if(t.length)return P7(t,r,e)}function TJ(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,a=r.map(function(s,o){var l=s[0],u=r[o+1],c=o===0&&(e!==0||t!==0),h=(o===r.length-1||u&&(u[0]==="M"||u[0]==="Z"))&&n!==0&&i!==0,f=c?[e,t]:[0,0],d=_slicedToArray(f,2),v=d[0],g=d[1],p=h?[n,i]:[0,0],m=_slicedToArray(p,2),b=m[0],x=m[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]+x);case"Q":return"Q ".concat(s[1]," ").concat(s[2],",").concat(s[3]+b," ").concat(s[4]+x);case"C":return"C ".concat(s[1]," ").concat(s[2],",").concat(s[3]," ").concat(s[4],",").concat(s[5]+b," ").concat(s[6]+x);case"A":return"A ".concat(s[1]," ").concat(s[2]," ").concat(s[3]," ").concat(s[4]," ").concat(s[5]," ").concat(s[6]+b," ").concat(s[7]+x);case"Z":return"Z";default:return null}}).filter(function(s){return s!==null}).join(" ");return~a.indexOf("NaN")?"":a}var mM=function(e){if(e===""||Array.isArray(e)&&e.length===0)return{absolutePath:[],hasArc:!1,segments:[],polygons:[],polylines:[],curve:null,totalLength:0,rect:{x:0,y:0,width:0,height:0}};var t;try{t=fl(e)}catch(d){t=fl(""),console.error("[g]: Invalid SVG Path definition: ".concat(e))}m7(t);var n=y7(t),i=b7(t),a=i.polygons,s=i.polylines,o=E7(t),l=x7(o,0),u=l.x,c=l.y,h=l.width,f=l.height;return{absolutePath:t,hasArc:n,segments:o,polygons:a,polylines:s,totalLength:0,rect:{x:Number.isFinite(u)?u:0,y:Number.isFinite(c)?c:0,width:Number.isFinite(h)?h:0,height:Number.isFinite(f)?f:0}}},A7=oi(mM);function yM(r){return Xt(r)?A7(r):mM(r)}function O7(r,e,t){var n=r.curve,i=e.curve;(!n||n.length===0)&&(n=_u(r.absolutePath,!1),r.curve=n),(!i||i.length===0)&&(i=_u(e.absolutePath,!1),e.curve=i);var a=[n,i];n.length!==i.length&&(a=Og(n,i));var s=uh(a[0])!==uh(a[1])?d1(a[0]):v1(a[0]);return[s,g1(a[1],s),function(o){return o}]}function k7(r,e){var t;return Xt(r)?t=r.split(" ").map(function(n){var i=n.split(","),a=pn(i,2),s=a[0],o=a[1];return[Number(s),Number(o)]}):t=r,{points:t,totalLength:0,segments:[]}}function C7(r,e){return[r.points,e.points,function(t){return t}]}var er=null,nu=/\s*(\w+)\(([^)]*)\)/g;function Ai(r){return function(e){var t=0;return r.map(function(n){return n===er?e[t++]:n})}}function qo(r){return r}var Rc={matrix:["NNNNNN",[er,er,0,0,er,er,0,0,0,0,1,0,er,er,0,1],qo],matrix3d:["NNNNNNNNNNNNNNNN",qo],rotate:["A"],rotateX:["A"],rotateY:["A"],rotateZ:["A"],rotate3d:["NNNA"],perspective:["L"],scale:["Nn",Ai([er,er,new Pn(1)]),qo],scaleX:["N",Ai([er,new Pn(1),new Pn(1)]),Ai([er,new Pn(1)])],scaleY:["N",Ai([new Pn(1),er,new Pn(1)]),Ai([new Pn(1),er])],scaleZ:["N",Ai([new Pn(1),new Pn(1),er])],scale3d:["NNN",qo],skew:["Aa",null,qo],skewX:["A",null,Ai([er,Jo])],skewY:["A",null,Ai([Jo,er])],translate:["Tt",Ai([er,er,La]),qo],translateX:["T",Ai([er,La,La]),Ai([er,La])],translateY:["T",Ai([La,er,La]),Ai([La,er])],translateZ:["L",Ai([La,La,er])],translate3d:["TTL",qo]};function bM(r){for(var e=[],t=r.length,n=0;n2&&arguments[2]!==void 0?arguments[2]:{skipUpdateAttribute:!1,skipParse:!1,forceUpdateGeometry:!1,usedAttributes:[],memoize:!0};Object.assign(t.attributes,n);var a=t.parsedStyle.clipPath,s=t.parsedStyle.offsetPath;Object.assign(t.parsedStyle,n);var o=!!i.forceUpdateGeometry;if(!o){for(var l in n)if(X7.has(l)){o=!0;break}}n.fill&&(t.parsedStyle.fill=Nc(n.fill)),n.stroke&&(t.parsedStyle.stroke=Nc(n.stroke)),n.shadowColor&&(t.parsedStyle.shadowColor=Nc(n.shadowColor)),n.filter&&(t.parsedStyle.filter=g7(n.filter)),vt(n.radius)||(t.parsedStyle.radius=sM(n.radius,4)),vt(n.lineDash)||(t.parsedStyle.lineDash=sM(n.lineDash,2)),n.points&&(t.parsedStyle.points=k7(n.points)),n.d===""&&(t.parsedStyle.d=ar({},QP)),n.d&&(t.parsedStyle.d=yM(n.d)),n.textTransform&&this.runtime.CSSPropertySyntaxFactory[ot.TEXT_TRANSFORM].calculator(null,null,{value:n.textTransform},t,null),Et(n.clipPath)||this.runtime.CSSPropertySyntaxFactory[ot.DEFINED_PATH].calculator("clipPath",a,n.clipPath,t,this.runtime),n.offsetPath&&this.runtime.CSSPropertySyntaxFactory[ot.DEFINED_PATH].calculator("offsetPath",s,n.offsetPath,t,this.runtime),n.transform&&(t.parsedStyle.transform=N7(n.transform)),n.transformOrigin&&(t.parsedStyle.transformOrigin=H7(n.transformOrigin)),n.markerStart&&(t.parsedStyle.markerStart=this.runtime.CSSPropertySyntaxFactory[ot.MARKER].calculator(null,n.markerStart,n.markerStart,null,null)),n.markerEnd&&(t.parsedStyle.markerEnd=this.runtime.CSSPropertySyntaxFactory[ot.MARKER].calculator(null,n.markerEnd,n.markerEnd,null,null)),n.markerMid&&(t.parsedStyle.markerMid=this.runtime.CSSPropertySyntaxFactory[ot.MARKER].calculator("",n.markerMid,n.markerMid,null,null)),vt(n.zIndex)||this.runtime.CSSPropertySyntaxFactory[ot.Z_INDEX].postProcessor(t),vt(n.offsetDistance)||this.runtime.CSSPropertySyntaxFactory[ot.OFFSET_DISTANCE].postProcessor(t),n.transform&&this.runtime.CSSPropertySyntaxFactory[ot.TRANSFORM].postProcessor(t),n.transformOrigin&&this.runtime.CSSPropertySyntaxFactory[ot.TRANSFORM_ORIGIN].postProcessor(t),o&&(t.geometry.dirty=!0,t.renderable.boundsDirty=!0,t.renderable.renderBoundsDirty=!0,i.forceUpdateGeometry||this.runtime.sceneGraphService.dirtifyToRoot(t))}},{key:"updateGeometry",value:function(t){var n=t.nodeName,i=this.runtime.geometryUpdaterFactory[n];if(i){var a=t.geometry;a.contentBounds||(a.contentBounds=new Si),a.renderBounds||(a.renderBounds=new Si);var s=t.parsedStyle,o=i.update(s,t),l=o.cx,u=l===void 0?0:l,c=o.cy,h=c===void 0?0:c,f=o.cz,d=f===void 0?0:f,v=o.hwidth,g=v===void 0?0:v,p=o.hheight,m=p===void 0?0:p,b=o.hdepth,x=b===void 0?0:b,O=[Math.abs(g),Math.abs(m),x],T=s.stroke,S=s.lineWidth,k=S===void 0?1:S,C=s.increasedLineWidthForHitTesting,W=C===void 0?0:C,U=s.shadowType,J=U===void 0?"outer":U,te=s.shadowColor,ie=s.filter,ae=ie===void 0?[]:ie,ve=s.transformOrigin,Z=[u,h,d];a.contentBounds.update(Z,O);var H=n===Tt.POLYLINE||n===Tt.POLYGON||n===Tt.PATH?Math.SQRT2:.5,X=T&&!T.isNone;if(X){var q=((k||0)+(W||0))*H;O[0]+=q,O[1]+=q}if(a.renderBounds.update(Z,O),te&&J&&J!=="inner"){var oe=a.renderBounds,de=oe.min,Oe=oe.max,Be=s.shadowBlur,Ge=s.shadowOffsetX,Ve=s.shadowOffsetY,qe=Be||0,lt=Ge||0,Ct=Ve||0,Vt=de[0]-qe+lt,qt=Oe[0]+qe+lt,Nr=de[1]-qe+Ct,un=Oe[1]+qe+Ct;de[0]=Math.min(de[0],Vt),Oe[0]=Math.max(Oe[0],qt),de[1]=Math.min(de[1],Nr),Oe[1]=Math.max(Oe[1],un),a.renderBounds.setMinMax(de,Oe)}ae.forEach(function(mr){var da=mr.name,lr=mr.params;if(da==="blur"){var Xr=lr[0].value;a.renderBounds.update(a.renderBounds.center,He(a.renderBounds.halfExtents,a.renderBounds.halfExtents,[Xr,Xr,0]))}else if(da==="drop-shadow"){var Ht=lr[0].value,an=lr[1].value,Gt=lr[2].value,tn=a.renderBounds,Kt=tn.min,yt=tn.max,sn=Kt[0]-Gt+Ht,cn=yt[0]+Gt+Ht,ur=Kt[1]-Gt+an,hn=yt[1]+Gt+an;Kt[0]=Math.min(Kt[0],sn),yt[0]=Math.max(yt[0],cn),Kt[1]=Math.min(Kt[1],ur),yt[1]=Math.max(yt[1],hn),a.renderBounds.setMinMax(Kt,yt)}}),t.geometry.dirty=!1;var ui=g<0,_r=m<0,Fa=(ui?-1:1)*(ve?Bi(ve[0],0,t,!0):0),Er=(_r?-1:1)*(ve?Bi(ve[1],1,t,!0):0);(Fa||Er)&&t.setOrigin(Fa,Er)}}},{key:"updateSizeAttenuation",value:function(t,n){t.style.isSizeAttenuation?(t.style.rawLineWidth||(t.style.rawLineWidth=t.style.lineWidth),t.style.lineWidth=(t.style.rawLineWidth||1)/n,t.nodeName===Tt.CIRCLE&&(t.style.rawR||(t.style.rawR=t.style.r),t.style.r=(t.style.rawR||1)/n)):(t.style.rawLineWidth&&(t.style.lineWidth=t.style.rawLineWidth,delete t.style.rawLineWidth),t.nodeName===Tt.CIRCLE&&t.style.rawR&&(t.style.r=t.style.rawR,delete t.style.rawR))}}])}(),V7=function(){function r(){tt(this,r),this.mixer=Sm}return nt(r,[{key:"calculator",value:function(t,n,i,a){return Ti(i)}}])}(),Y7=function(){function r(){tt(this,r)}return nt(r,[{key:"calculator",value:function(t,n,i,a,s){return i instanceof sa&&(i=null),s.sceneGraphService.updateDisplayObjectDependency(t,n,i,a),t==="clipPath"&&a.forEach(function(o){o.childNodes.length===0&&s.sceneGraphService.dirtifyToRoot(o)}),i}}])}(),U7=function(){function r(){tt(this,r),this.parser=Nc,this.mixer=l7}return nt(r,[{key:"calculator",value:function(t,n,i,a){return i instanceof sa?i.value==="none"?$P:eM:i}}])}(),Z7=function(){function r(){tt(this,r)}return nt(r,[{key:"calculator",value:function(t,n,i){return i instanceof sa?[]:i}}])}();function MM(r){var e=r.parsedStyle,t=e.fontSize;return vt(t)?null:t}var Nm=function(){function r(){tt(this,r),this.mixer=Sm}return nt(r,[{key:"calculator",value:function(t,n,i,a,s){if(ht(i))return i;if(Pn.isRelativeUnit(i.unit)){if(i.unit===ct.kPercentage)return 0;if(i.unit===ct.kEms){if(a.parentNode){var o=MM(a.parentNode);if(o)return o*=i.value,o}return 0}if(i.unit===ct.kRems){var l;if(a!=null&&(l=a.ownerDocument)!==null&&l!==void 0&&l.documentElement){var u=MM(a.ownerDocument.documentElement);if(u)return u*=i.value,u}return 0}}else return i.value}}])}(),K7=function(){function r(){tt(this,r),this.mixer=uM}return nt(r,[{key:"calculator",value:function(t,n,i){return i.map(function(a){return a.value})}}])}(),Q7=function(){function r(){tt(this,r),this.mixer=uM}return nt(r,[{key:"calculator",value:function(t,n,i){return i.map(function(a){return a.value})}}])}(),J7=function(){function r(){tt(this,r)}return nt(r,[{key:"calculator",value:function(t,n,i,a){var s;i instanceof sa&&(i=null);var o=(s=i)===null||s===void 0?void 0:s.cloneNode(!0);return o&&(o.style.isMarker=!0),o}}])}(),q7=function(){function r(){tt(this,r),this.mixer=Sm}return nt(r,[{key:"calculator",value:function(t,n,i){return i.value}}])}(),$7=function(){function r(){tt(this,r),this.mixer=Tm(0,1)}return nt(r,[{key:"calculator",value:function(t,n,i){return i.value}},{key:"postProcessor",value:function(t){var n=t.parsedStyle,i=n.offsetPath,a=n.offsetDistance;if(i){var s=i.nodeName;if(s===Tt.LINE||s===Tt.PATH||s===Tt.POLYLINE){var o=i.getPoint(a);o&&t.setLocalPosition(o.x,o.y)}}}}])}(),ez=function(){function r(){tt(this,r),this.mixer=Tm(0,1)}return nt(r,[{key:"calculator",value:function(t,n,i){return i.value}}])}(),tz=function(){function r(){tt(this,r),this.parser=yM,this.mixer=O7}return nt(r,[{key:"calculator",value:function(t,n,i){return i instanceof sa&&i.value==="unset"?{absolutePath:[],hasArc:!1,segments:[],polygons:[],polylines:[],curve:null,totalLength:0,rect:new $l(0,0,0,0)}:i}}])}(),nz=nt(function r(){tt(this,r),this.mixer=C7}),rz=function(r){function e(){var t;tt(this,e);for(var n=arguments.length,i=new Array(n),a=0;a>>1;sz(r[i],e)<0?t=i+1:n=i}return t}function sz(r,e){var t=Number(r.parsedStyle.zIndex||0),n=Number(e.parsedStyle.zIndex||0);if(t===n){var i=r.parentNode;if(i){var a=i.childNodes||[];return a.indexOf(r)-a.indexOf(e)}}return t-n}function oz(r){var e=r;do{var t,n=(t=e.parsedStyle)===null||t===void 0?void 0:t.clipPath;if(n)return e;e=e.parentElement}while(e!==null);return null}var TM="px";function NJ(r,e,t){SM&&r.style&&(r.style.width=e+TM,r.style.height=t+TM)}function AM(r,e){if(SM)return document.defaultView.getComputedStyle(r,null).getPropertyValue(e)}function _J(r){var e=AM(r,"width");return e==="auto"?r.offsetWidth:parseFloat(e)}function RJ(r){var e=AM(r,"height");return e==="auto"?r.offsetHeight:parseFloat(e)}var lz=1,uz={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},cz=typeof performance=="object"&&performance.now?performance:Date;function Rm(r){return r.nodeName===Tt.FRAGMENT?!0:r.getRootNode().nodeName===Tt.FRAGMENT}function LJ(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"auto",e=arguments.length>1?arguments[1]:void 0,t=arguments.length>2?arguments[2]:void 0,n=!1,i=!1,a=!!e&&!e.isNone,s=!!t&&!t.isNone;return r==="visiblepainted"||r==="painted"||r==="auto"?(n=a,i=s):r==="visiblefill"||r==="fill"?n=!0:r==="visiblestroke"||r==="stroke"?i=!0:(r==="visible"||r==="all")&&(n=!0,i=!0),[n,i]}var hz=1,fz=function(){return hz++},as=typeof self=="object"&&self.self===self?self:typeof w.g=="object"&&w.g.global===w.g?w.g:{},dz=Date.now(),vz=function(){return as.performance&&typeof as.performance.now=="function"?as.performance.now():Date.now()-dz},Lc={},OM=Date.now(),gz=function(e){if(typeof e!="function")throw new TypeError("".concat(e," is not a function"));var t=Date.now(),n=t-OM,i=n>16?0:16-n,a=fz();return Lc[a]=e,Object.keys(Lc).length>1||setTimeout(function(){OM=t;var s=Lc;Lc={},Object.keys(s).forEach(function(o){return s[o](vz())})},i),a},pz=function(e){delete Lc[e]},mz=["","webkit","moz","ms","o"],kM=function(e){return typeof e!="string"?gz:e===""?as.requestAnimationFrame:as["".concat(e,"RequestAnimationFrame")]},yz=function(e){return typeof e!="string"?pz:e===""?as.cancelAnimationFrame:as["".concat(e,"CancelAnimationFrame")]||as["".concat(e,"CancelRequestAnimationFrame")]},bz=function(e,t){for(var n=0;e[n]!==void 0;){if(t(e[n]))return e[n];n+=1}},CM=bz(mz,function(r){return!!kM(r)}),NM=kM(CM),xz=yz(CM);as.requestAnimationFrame=NM,as.cancelAnimationFrame=xz;var DJ=null,IJ=null,BJ=null,zJ=null,Ez=["serif","sans-serif","monospace","cursive","fantasy","system-ui"],wz=/([\"\'])[^\'\"]+\1/;function Pz(r){for(var e=r.fontSize,t=e===void 0?16:e,n=r.fontFamily,i=n===void 0?"sans-serif":n,a=r.fontStyle,s=a===void 0?"normal":a,o=r.fontVariant,l=o===void 0?"normal":o,u=r.fontWeight,c=u===void 0?"normal":u,h=ht(t)&&"".concat(t,"px")||"16px",f=i.split(","),d=f.length-1;d>=0;d--){var v=f[d].trim();!wz.test(v)&&Ez.indexOf(v)<0&&(v='"'.concat(v,'"')),f[d]=v}return"".concat(s," ").concat(l," ").concat(c," ").concat(h," ").concat(f.join(","))}function Lm(r,e,t){return Zn(r),r[4]=Math.tan(e),r[1]=Math.tan(t),r}var pr=mt(),Mz=mt(),Sz={scale:function(e){vi(pr,[e[0].value,e[1].value,1])},scaleX:function(e){vi(pr,[e[0].value,1,1])},scaleY:function(e){vi(pr,[1,e[0].value,1])},scaleZ:function(e){vi(pr,[1,1,e[0].value])},scale3d:function(e){vi(pr,[e[0].value,e[1].value,e[2].value])},translate:function(e){Dr(pr,[e[0].value,e[1].value,0])},translateX:function(e){Dr(pr,[e[0].value,0,0])},translateY:function(e){Dr(pr,[0,e[0].value,0])},translateZ:function(e){Dr(pr,[0,0,e[0].value])},translate3d:function(e){Dr(pr,[e[0].value,e[1].value,e[2].value])},rotate:function(e){Ou(pr,wn(Ti(e[0])))},rotateX:function(e){Au(pr,wn(Ti(e[0])))},rotateY:function(e){yg(pr,wn(Ti(e[0])))},rotateZ:function(e){Ou(pr,wn(Ti(e[0])))},rotate3d:function(e){Tu(pr,wn(Ti(e[3])),[e[0].value,e[1].value,e[2].value])},skew:function(e){Lm(pr,wn(e[0].value),wn(e[1].value))},skewX:function(e){Lm(pr,wn(e[0].value),0)},skewY:function(e){Lm(pr,0,wn(e[0].value))},matrix:function(e){Hn(pr,e[0].value,e[1].value,0,0,e[2].value,e[3].value,0,0,0,0,1,0,e[4].value,e[5].value,0,1)},matrix3d:function(e){Hn.apply(M,[pr].concat(ni(e.map(function(t){return t.value}))))}},Tz=me(1,1,1),Az=Me(),_M={translate:function(e,t){it.sceneGraphService.setLocalScale(e,Tz,!1),it.sceneGraphService.setLocalEulerAngles(e,Az,void 0,void 0,!1),it.sceneGraphService.setLocalPosition(e,[t[0].value,t[1].value,0],!1),it.sceneGraphService.dirtifyLocal(e,e.transformable)}};function Oz(r,e){if(r.length){if(r.length===1&&_M[r[0].t]){_M[r[0].t](e,r[0].d);return}for(var t=Zn(Mz),n=0;n1&&arguments[1]!==void 0?arguments[1]:!1,i=LM.get(this);if(!i){var a;this.document?i=this:this.defaultView?i=this.defaultView:i=(a=this.ownerDocument)===null||a===void 0?void 0:a.defaultView,i&&LM.set(this,i)}if(i){if(t.manager=i.getEventService(),!t.manager)return!1;t.defaultPrevented=!1,t.path?t.path.length=0:t.page=[],n||(t.target=this),t.manager.dispatchEvent(t,t.type,n)}else this.emitter.emit(t.type,t);return!t.defaultPrevented}}])}(),$o=function(r){function e(){var t;tt(this,e);for(var n=arguments.length,i=new Array(n),a=0;a0&&arguments[0]!==void 0?arguments[0]:{};return this.parentNode?this.parentNode.getRootNode(n):n.composed&&this.host?this.host.getRootNode(n):this}},{key:"hasChildNodes",value:function(){return this.childNodes.length>0}},{key:"isDefaultNamespace",value:function(n){throw new Error(kn)}},{key:"lookupNamespaceURI",value:function(n){throw new Error(kn)}},{key:"lookupPrefix",value:function(n){throw new Error(kn)}},{key:"normalize",value:function(){throw new Error(kn)}},{key:"isEqualNode",value:function(n){return this===n}},{key:"isSameNode",value:function(n){return this.isEqualNode(n)}},{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(n){if(n===this)return 0;for(var i=n,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 e.DOCUMENT_POSITION_DISCONNECTED|e.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC|e.DOCUMENT_POSITION_PRECEDING;var u=s.length>o.length?s:o,c=u===s?o:s;if(u[u.length-c.length]===c[0])return u===s?e.DOCUMENT_POSITION_CONTAINED_BY|e.DOCUMENT_POSITION_FOLLOWING:e.DOCUMENT_POSITION_CONTAINS|e.DOCUMENT_POSITION_PRECEDING;for(var h=u.length-c.length,f=c.length-1;f>=0;f--){var d=c[f],v=u[h+f];if(v!==d){var g=d.parentNode.childNodes;return g.indexOf(d)0&&i;)i=i.parentNode,n--;return i}},{key:"forEach",value:function(n){for(var i=[this];i.length>0;){var a=i.pop(),s=n(a);if(s===!1)break;for(var o=a.childNodes.length-1;o>=0;o--)i.push(a.childNodes[o])}}}],[{key:"isNode",value:function(n){return!!n.childNodes}}])}(Xz);$o.DOCUMENT_POSITION_DISCONNECTED=1,$o.DOCUMENT_POSITION_PRECEDING=2,$o.DOCUMENT_POSITION_FOLLOWING=4,$o.DOCUMENT_POSITION_CONTAINS=8,$o.DOCUMENT_POSITION_CONTAINED_BY=16,$o.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC=32;var jJ=2048,GJ=null,Wz=function(){function r(){tt(this,r)}return nt(r,[{key:"getOrCreateCanvas",value:function(t,n){if(this.canvas)return this.canvas;if(t||it.offscreenCanvas)this.canvas=t||it.offscreenCanvas,this.context=this.canvas.getContext("2d",ar({willReadFrequently:!0},n));else try{this.canvas=new window.OffscreenCanvas(0,0),this.context=this.canvas.getContext("2d",ar({willReadFrequently:!0},n)),(!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",ar({willReadFrequently:!0},n))}return this.canvas.width=10,this.canvas.height=10,this.canvas}},{key:"getOrCreateContext",value:function(t,n){return this.context?this.context:(this.getOrCreateCanvas(t,n),this.context)}}],[{key:"createCanvas",value:function(){try{return new window.OffscreenCanvas(0,0)}catch(t){}try{return document.createElement("canvas")}catch(t){}return null}}])}(),HJ=function(r){return r[r.CAMERA_CHANGED=0]="CAMERA_CHANGED",r[r.DISPLAY_OBJECT_CHANGED=1]="DISPLAY_OBJECT_CHANGED",r[r.NONE=2]="NONE",r}({}),XJ=null,Vz=/\[\s*(.*)=(.*)\s*\]/,Yz=function(){function r(){tt(this,r)}return nt(r,[{key:"selectOne",value:function(t,n){var i=this;if(t.startsWith("."))return n.find(function(l){return((l==null?void 0:l.classList)||[]).indexOf(i.getIdOrClassname(t))>-1});if(t.startsWith("#"))return n.find(function(l){return l.id===i.getIdOrClassname(t)});if(t.startsWith("[")){var a=this.getAttribute(t),s=a.name,o=a.value;return s?n.find(function(l){return n!==l&&(s==="name"?l.name===o:i.attributeToString(l,s)===o)}):null}return n.find(function(l){return n!==l&&l.nodeName===t})}},{key:"selectAll",value:function(t,n){var i=this;if(t.startsWith("."))return n.findAll(function(l){return n!==l&&((l==null?void 0:l.classList)||[]).indexOf(i.getIdOrClassname(t))>-1});if(t.startsWith("#"))return n.findAll(function(l){return n!==l&&l.id===i.getIdOrClassname(t)});if(t.startsWith("[")){var a=this.getAttribute(t),s=a.name,o=a.value;return s?n.findAll(function(l){return n!==l&&(s==="name"?l.name===o:i.attributeToString(l,s)===o)}):[]}return n.findAll(function(l){return n!==l&&l.nodeName===t})}},{key:"is",value:function(t,n){if(t.startsWith("."))return n.className===this.getIdOrClassname(t);if(t.startsWith("#"))return n.id===this.getIdOrClassname(t);if(t.startsWith("[")){var i=this.getAttribute(t),a=i.name,s=i.value;return a==="name"?n.name===s:this.attributeToString(n,a)===s}return n.nodeName===t}},{key:"getIdOrClassname",value:function(t){return t.substring(1)}},{key:"getAttribute",value:function(t){var n=t.match(Vz),i="",a="";return n&&n.length>2&&(i=n[1].replace(/"/g,""),a=n[2].replace(/"/g,"")),{name:i,value:a}}},{key:"attributeToString",value:function(t,n){if(!t.getAttribute)return"";var i=t.getAttribute(n);return vt(i)?"":i.toString?i.toString():""}}])}(),sr=function(r){return r.REPARENT="reparent",r.DESTROY="destroy",r.ATTR_MODIFIED="DOMAttrModified",r.INSERTED="DOMNodeInserted",r.REMOVED="removed",r.MOUNTED="DOMNodeInsertedIntoDocument",r.UNMOUNTED="DOMNodeRemovedFromDocument",r.BOUNDS_CHANGED="bounds-changed",r.CULLED="culled",r}({}),ss=function(r){function e(t,n,i,a,s,o,l,u){var c;return tt(this,e),c=nn(this,e,[null]),c.relatedNode=n,c.prevValue=i,c.newValue=a,c.attrName=s,c.attrChange=o,c.prevParsedValue=l,c.newParsedValue=u,c.type=t,c}return rn(e,r),nt(e)}(av);ss.ADDITION=2,ss.MODIFICATION=1,ss.REMOVAL=3;function DM(r){var e=r.renderable;e&&(e.renderBoundsDirty=!0,e.boundsDirty=!0)}var Uz=new ss(sr.REPARENT,null,"","","",0,"",""),Zz=Cu(),sv=Me(),Kz=me(1,1,1),Qz=mt(),Jz=Cu(),oo=Me(),ru=mt(),lo=en(),qz=Me(),$z=en(),eF=Me(),Dc=Me(),el=Me(),ov=mt(),IM=en(),BM=en(),lv=en(),Dm={affectChildren:!0},tF=function(){function r(e){tt(this,r),this.pendingEvents=new Map,this.boundsChangedEvent=new zi(sr.BOUNDS_CHANGED),this.displayObjectDependencyMap=new WeakMap,this.runtime=e}return nt(r,[{key:"matches",value:function(t,n){return this.runtime.sceneGraphSelector.is(t,n)}},{key:"querySelector",value:function(t,n){return this.runtime.sceneGraphSelector.selectOne(t,n)}},{key:"querySelectorAll",value:function(t,n){return this.runtime.sceneGraphSelector.selectAll(t,n)}},{key:"attach",value:function(t,n,i){var a,s=!1;t.parentNode&&(s=t.parentNode!==n,this.detach(t));var o=t.nodeName===Tt.FRAGMENT,l=Rm(n);t.parentNode=n;var u=o?t.childNodes:[t];ht(i)?u.forEach(function(d){n.childNodes.splice(i,0,d),d.parentNode=n}):u.forEach(function(d){n.childNodes.push(d),d.parentNode=n});var c=n,h=c.sortable;if((h!=null&&(a=h.sorted)!==null&&a!==void 0&&a.length||t.parsedStyle.zIndex)&&(h.dirtyChildren.indexOf(t)===-1&&h.dirtyChildren.push(t),h.dirty=!0,h.dirtyReason=ym.ADDED),!l){if(o)this.dirtifyFragment(t);else{var f=t.transformable;f&&this.dirtifyWorld(t,f)}s&&t.dispatchEvent(Uz)}}},{key:"detach",value:function(t){if(t.parentNode){var n,i,a=t.transformable,s=t.parentNode,o=s.sortable;(o!=null&&(n=o.sorted)!==null&&n!==void 0&&n.length||(i=t.style)!==null&&i!==void 0&&i.zIndex)&&(o.dirtyChildren.indexOf(t)===-1&&o.dirtyChildren.push(t),o.dirty=!0,o.dirtyReason=ym.REMOVED);var l=t.parentNode.childNodes.indexOf(t);l>-1&&t.parentNode.childNodes.splice(l,1),a&&this.dirtifyWorld(t,a),t.parentNode=null}}},{key:"getOrigin",value:function(t){return t.getGeometryBounds(),t.transformable.origin}},{key:"setOrigin",value:function(t,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof n=="number"&&(n=[n,i,a]);var s=t.transformable;if(!(n[0]===s.origin[0]&&n[1]===s.origin[1]&&n[2]===s.origin[2])){var o=s.origin;o[0]=n[0],o[1]=n[1],o[2]=n[2]||0,this.dirtifyLocal(t,s)}}},{key:"rotate",value:function(t,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof n=="number"&&(n=me(n,i,a));var s=t.transformable;if(t.parentNode===null||!t.parentNode.transformable)this.rotateLocal(t,n);else{var o=lo;Rs(o,n[0],n[1],n[2]);var l=this.getRotation(t),u=this.getRotation(t.parentNode);Ls(lv,u),ul(lv,lv),qr(o,lv,o),qr(s.localRotation,o,l),cl(s.localRotation,s.localRotation),this.dirtifyLocal(t,s)}}},{key:"rotateLocal",value:function(t,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof n=="number"&&(n=me(n,i,a));var s=t.transformable;Rs(BM,n[0],n[1],n[2]),ah(s.localRotation,s.localRotation,BM),this.dirtifyLocal(t,s)}},{key:"setEulerAngles",value:function(t,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof n=="number"&&(n=me(n,i,a));var s=t.transformable;if(t.parentNode===null||!t.parentNode.transformable)this.setLocalEulerAngles(t,n);else{Rs(s.localRotation,n[0],n[1],n[2]);var o=this.getRotation(t.parentNode);Ls(IM,ul(lo,o)),ah(s.localRotation,s.localRotation,IM),this.dirtifyLocal(t,s)}}},{key:"setLocalEulerAngles",value:function(t,n){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 n=="number"&&(n=me(n,i,a));var o=t.transformable;Rs(o.localRotation,n[0],n[1],n[2]),s&&this.dirtifyLocal(t,o)}},{key:"translateLocal",value:function(t,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof n=="number"&&(n=me(n,i,a));var s=t.transformable;Rr(n,sv)||(mo(n,n,s.localRotation),He(s.localPosition,s.localPosition,n),this.dirtifyLocal(t,s))}},{key:"setPosition",value:function(t,n){var i,a=t.transformable;if(el[0]=n[0],el[1]=n[1],el[2]=(i=n[2])!==null&&i!==void 0?i:0,!Rr(this.getPosition(t),el)){if(Te(a.position,el),t.parentNode===null||!t.parentNode.transformable)Te(a.localPosition,el);else{var s=t.parentNode.transformable;_n(ov,s.worldTransform),Ot(ov,ov),Dn(a.localPosition,el,ov)}this.dirtifyLocal(t,a)}}},{key:"setLocalPosition",value:function(t,n){var i,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=t.transformable;Dc[0]=n[0],Dc[1]=n[1],Dc[2]=(i=n[2])!==null&&i!==void 0?i:0,!Rr(s.localPosition,Dc)&&(Te(s.localPosition,Dc),a&&this.dirtifyLocal(t,s))}},{key:"scaleLocal",value:function(t,n){var i,a=t.transformable;Ft(a.localScale,a.localScale,Ae(oo,n[0],n[1],(i=n[2])!==null&&i!==void 0?i:1)),this.dirtifyLocal(t,a)}},{key:"setLocalScale",value:function(t,n){var i,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=t.transformable;Ae(oo,n[0],n[1],(i=n[2])!==null&&i!==void 0?i:s.localScale[2]),!Rr(oo,s.localScale)&&(Te(s.localScale,oo),a&&this.dirtifyLocal(t,s))}},{key:"translate",value:function(t,n){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0;typeof n=="number"&&(n=Ae(oo,n,i,a)),!Rr(n,sv)&&(He(oo,this.getPosition(t),n),this.setPosition(t,oo))}},{key:"setRotation",value:function(t,n,i,a,s){var o=t.transformable;if(typeof n=="number"&&(n=$y(n,i,a,s)),t.parentNode===null||!t.parentNode.transformable)this.setLocalRotation(t,n);else{var l=this.getRotation(t.parentNode);Ls(lo,l),ul(lo,lo),qr(o.localRotation,lo,n),cl(o.localRotation,o.localRotation),this.dirtifyLocal(t,o)}}},{key:"setLocalRotation",value:function(t,n,i,a,s){var o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;typeof n=="number"&&(n=ih(lo,n,i,a,s));var l=t.transformable;Ls(l.localRotation,n),o&&this.dirtifyLocal(t,l)}},{key:"setLocalSkew",value:function(t,n,i){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;typeof n=="number"&&(n=t1(Jz,n,i));var s=t.transformable;e1(s.localSkew,n),a&&this.dirtifyLocal(t,s)}},{key:"dirtifyLocal",value:function(t,n){Rm(t)||n.localDirtyFlag||(n.localDirtyFlag=!0,n.dirtyFlag||this.dirtifyWorld(t,n))}},{key:"dirtifyWorld",value:function(t,n){n.dirtyFlag||this.unfreezeParentToRoot(t),this.dirtifyWorldInternal(t,n),this.dirtifyToRoot(t,!0)}},{key:"dirtifyFragment",value:function(t){var n=t.transformable;n&&(n.frozen=!1,n.dirtyFlag=!0,n.localDirtyFlag=!0);var i=t.renderable;i&&(i.renderBoundsDirty=!0,i.boundsDirty=!0,i.dirty=!0);for(var a=t.childNodes.length,s=0;s1&&arguments[1]!==void 0?arguments[1]:!1,i=t;for(i.renderable&&(i.renderable.dirty=!0);i;)DM(i),i=i.parentNode;n&&t.forEach(function(a){DM(a)}),this.informDependentDisplayObjects(t),this.pendingEvents.set(t,n)}},{key:"updateDisplayObjectDependency",value:function(t,n,i,a){if(n&&n!==i){var s=this.displayObjectDependencyMap.get(n);if(s&&s[t]){var o=s[t].indexOf(a);s[t].splice(o,1)}}if(i){var l=this.displayObjectDependencyMap.get(i);l||(this.displayObjectDependencyMap.set(i,{}),l=this.displayObjectDependencyMap.get(i)),l[t]||(l[t]=[]),l[t].push(a)}}},{key:"informDependentDisplayObjects",value:function(t){var n=this,i=this.displayObjectDependencyMap.get(t);i&&Object.keys(i).forEach(function(a){i[a].forEach(function(s){n.dirtifyToRoot(s,!0),s.dispatchEvent(new ss(sr.ATTR_MODIFIED,s,n,n,a,ss.MODIFICATION,n,n)),s.isCustomElement&&s.isConnected&&s.attributeChangedCallback&&s.attributeChangedCallback(a,n,n)})})}},{key:"getPosition",value:function(t){var n=t.transformable;return yo(n.position,this.getWorldTransform(t,n))}},{key:"getRotation",value:function(t){var n=t.transformable;return bo(n.rotation,this.getWorldTransform(t,n))}},{key:"getScale",value:function(t){var n=t.transformable;return Wa(n.scaling,this.getWorldTransform(t,n))}},{key:"getWorldTransform",value:function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:t.transformable;return!n.localDirtyFlag&&!n.dirtyFlag||(t.parentNode&&t.parentNode.transformable&&this.getWorldTransform(t.parentNode),this.sync(t,n)),n.worldTransform}},{key:"getLocalPosition",value:function(t){return t.transformable.localPosition}},{key:"getLocalRotation",value:function(t){return t.transformable.localRotation}},{key:"getLocalScale",value:function(t){return t.transformable.localScale}},{key:"getLocalSkew",value:function(t){return t.transformable.localSkew}},{key:"calcLocalTransform",value:function(t){var n=t.localSkew[0]!==0||t.localSkew[1]!==0;if(n){vs(t.localTransform,t.localRotation,t.localPosition,me(1,1,1),t.origin),(t.localSkew[0]!==0||t.localSkew[1]!==0)&&(Zn(ru),ru[4]=Math.tan(t.localSkew[0]),ru[1]=Math.tan(t.localSkew[1]),Ut(t.localTransform,t.localTransform,ru));var i=vs(ru,ih(lo,0,0,0,1),Ae(oo,1,1,1),t.localScale,t.origin);Ut(t.localTransform,t.localTransform,i)}else{var a=t.localTransform,s=t.localPosition,o=t.localRotation,l=t.localScale,u=t.origin,c=s[0]!==0||s[1]!==0||s[2]!==0,h=o[3]!==1||o[0]!==0||o[1]!==0||o[2]!==0,f=l[0]!==1||l[1]!==1||l[2]!==1,d=u[0]!==0||u[1]!==0||u[2]!==0;!h&&!f&&!d?c?Dr(a,s):Zn(a):vs(a,o,s,l,u)}}},{key:"getLocalTransform",value:function(t){var n=t.transformable;return n.localDirtyFlag&&(this.calcLocalTransform(n),n.localDirtyFlag=!1),n.localTransform}},{key:"setLocalTransform",value:function(t,n){var i=yo(qz,n),a=bo($z,n),s=Wa(eF,n);this.setLocalScale(t,s,!1),this.setLocalPosition(t,i,!1),this.setLocalRotation(t,a,void 0,void 0,void 0,!1),this.dirtifyLocal(t,t.transformable)}},{key:"resetLocalTransform",value:function(t){this.setLocalScale(t,Kz,!1),this.setLocalPosition(t,sv,!1),this.setLocalEulerAngles(t,sv,void 0,void 0,!1),this.setLocalSkew(t,Zz,void 0,!1),this.dirtifyLocal(t,t.transformable)}},{key:"getTransformedGeometryBounds",value:function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=arguments.length>2?arguments[2]:void 0,a=this.getGeometryBounds(t,n);if(!Si.isEmpty(a)){var s=i||new Si;return s.setFromTransformedAABB(a,this.getWorldTransform(t)),s}return null}},{key:"getGeometryBounds",value:function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=t,a=i.geometry;a.dirty&&it.styleValueRegistry.updateGeometry(t);var s=n?a.renderBounds:a.contentBounds||null;return s||new Si}},{key:"getBounds",value:function(t){var n=this,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,a=t,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(t,i,o),u=t.childNodes;if(u.forEach(function(f){var d=n.getBounds(f,i);d&&(l?l.add(d):(l=o||new Si,l.update(d.center,d.halfExtents)))}),l||(l=new Si),i){var c=oz(t);if(c){var h=c.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(t){if(t.parentNode){var n=Qz;t.parentNode.transformable&&(n=Ot(ru,this.getWorldTransform(t.parentNode)));var i=this.getBounds(t);if(!Si.isEmpty(i)){var a=new Si;return a.setFromTransformedAABB(i,n),a}}return this.getBounds(t)}},{key:"getBoundingClientRect",value:function(t){var n,i,a=this.getGeometryBounds(t);Si.isEmpty(a)||(i=new Si,i.setFromTransformedAABB(a,this.getWorldTransform(t)));var s=(n=t.ownerDocument)===null||n===void 0||(n=n.defaultView)===null||n===void 0?void 0:n.getContextService().getBoundingClientRect();if(i){var o=i.getMin(),l=pn(o,2),u=l[0],c=l[1],h=i.getMax(),f=pn(h,2),d=f[0],v=f[1];return new $l(u+((s==null?void 0:s.left)||0),c+((s==null?void 0:s.top)||0),d-u,v-c)}return new $l((s==null?void 0:s.left)||0,(s==null?void 0:s.top)||0,0,0)}},{key:"dirtifyWorldInternal",value:function(t,n){var i=this;if(!n.dirtyFlag){n.dirtyFlag=!0,n.frozen=!1,t.childNodes.forEach(function(o){var l=o.transformable;l.dirtyFlag||i.dirtifyWorldInternal(o,l)});var a=t,s=a.renderable;s&&(s.renderBoundsDirty=!0,s.boundsDirty=!0,s.dirty=!0)}}},{key:"syncHierarchy",value:function(t){var n=t.transformable;if(!n.frozen){n.frozen=!0,(n.localDirtyFlag||n.dirtyFlag)&&this.sync(t,n);for(var i=t.childNodes,a=0;au;--v){for(var b=0;b=h){n.isOverflowing=!0;break}b=0,p[m]="";continue}if(b>0&&b+J>v){if(m+1>=h){if(n.isOverflowing=!0,T>0&&T<=v){for(var te=p[m].length,ie=0,ae=te,ve=0;vev){ae=ve;break}ie+=Z}p[m]=(p[m]||"").slice(0,ae)+g}break}if(m++,b=0,p[m]="",this.isBreakingSpace(C))continue;this.canBreakInLastChar(C)||(p=this.trimToBreakable(p),b=this.sumTextWidthByCache(p[m]||"",x)),this.shouldBreakByKinsokuShorui(C,U)&&(p=this.trimByKinsokuShorui(p),b+=O(W||""))}b+=J,p[m]=(p[m]||"")+C}return p.join(` `)}},{key:"isBreakingSpace",value:function(t){return typeof t!="string"?!1:tl.BreakingSpaces.indexOf(t.charCodeAt(0))>=0}},{key:"isNewline",value:function(t){return typeof t!="string"?!1:tl.Newlines.indexOf(t.charCodeAt(0))>=0}},{key:"trimToBreakable",value:function(t){var n=ni(t),i=n[n.length-2],a=this.findBreakableIndex(i);if(a===-1||!i)return n;var s=i.slice(a,a+1),o=this.isBreakingSpace(s),l=a+1,u=a+(o?0:1);return n[n.length-1]+=i.slice(l,i.length),n[n.length-2]=i.slice(0,u),n}},{key:"canBreakInLastChar",value:function(t){return!(t&&zM.test(t))}},{key:"sumTextWidthByCache",value:function(t,n){return t.split("").reduce(function(i,a){if(!n[a])throw Error("cannot count the word without cache");return i+n[a]},0)}},{key:"findBreakableIndex",value:function(t){for(var n=t.length-1;n>=0;n--)if(!zM.test(t[n]))return n;return-1}},{key:"getFromCache",value:function(t,n,i,a){var s=i[t];if(typeof s!="number"){var o=t.length*n;s=a.measureText(t).width+o,i[t]=s}return s}}])}(),it={},dF=function(r){var e=new Bz,t=new Iz;return r={},Jt(Jt(Jt(Jt(Jt(Jt(Jt(Jt(Jt(Jt(r,Tt.CIRCLE,new _z),Tt.ELLIPSE,new Rz),Tt.RECT,e),Tt.IMAGE,e),Tt.GROUP,new Fz),Tt.LINE,new Lz),Tt.TEXT,new zz(it)),Tt.POLYLINE,t),Tt.POLYGON,t),Tt.PATH,new Dz),Jt(Jt(r,Tt.HTML,new jz),Tt.MESH,null)}(),vF=function(r){var e=new U7,t=new Nm;return r={},Jt(Jt(Jt(Jt(Jt(Jt(Jt(Jt(Jt(Jt(r,ot.PERCENTAGE,null),ot.NUMBER,new q7),ot.ANGLE,new V7),ot.DEFINED_PATH,new Y7),ot.PAINT,e),ot.COLOR,e),ot.FILTER,new Z7),ot.LENGTH,t),ot.LENGTH_PERCENTAGE,t),ot.LENGTH_PERCENTAGE_12,new K7),Jt(Jt(Jt(Jt(Jt(Jt(Jt(Jt(Jt(Jt(r,ot.LENGTH_PERCENTAGE_14,new Q7),ot.COORDINATE,new Nm),ot.OFFSET_DISTANCE,new $7),ot.OPACITY_VALUE,new ez),ot.PATH,new tz),ot.LIST_OF_POINTS,new nz),ot.SHADOW_BLUR,new rz),ot.TEXT,new iz),ot.TEXT_TRANSFORM,new az),ot.TRANSFORM,new kz),Jt(Jt(Jt(r,ot.TRANSFORM_ORIGIN,new Cz),ot.Z_INDEX,new Nz),ot.MARKER,new J7)}(),gF=function(){return typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof w.g!="undefined"?w.g:{}};it.CameraContribution=KP,it.AnimationTimeline=null,it.EasingFunction=null,it.offscreenCanvasCreator=new Wz,it.sceneGraphSelector=new Yz,it.sceneGraphService=new tF(it),it.textService=new fF(it),it.geometryUpdaterFactory=dF,it.CSSPropertySyntaxFactory=vF,it.styleValueRegistry=new W7(it),it.layoutRegistry=null,it.globalThis=gF(),it.enableStyleSyntax=!0,it.enableSizeAttenuation=!1;var FM=0;function WJ(){FM=0}var jM=new ss(sr.INSERTED,null,"","","",0,"",""),GM=new ss(sr.REMOVED,null,"","","",0,"",""),pF=new zi(sr.DESTROY),mF=function(r){function e(){var t;tt(this,e);for(var n=arguments.length,i=new Array(n),a=0;a=0;n--){var i=this.childNodes[n];this.removeChild(i)}}},{key:"destroyChildren",value:function(){for(var n=this.childNodes.length-1;n>=0;n--){var i=this.childNodes[n];i.childNodes.length>0&&i.destroyChildren(),i.destroy()}}},{key:"matches",value:function(n){return it.sceneGraphService.matches(n,this)}},{key:"getElementById",value:function(n){return it.sceneGraphService.querySelector("#".concat(n),this)}},{key:"getElementsByName",value:function(n){return it.sceneGraphService.querySelectorAll('[name="'.concat(n,'"]'),this)}},{key:"getElementsByClassName",value:function(n){return it.sceneGraphService.querySelectorAll(".".concat(n),this)}},{key:"getElementsByTagName",value:function(n){return it.sceneGraphService.querySelectorAll(n,this)}},{key:"querySelector",value:function(n){return it.sceneGraphService.querySelector(n,this)}},{key:"querySelectorAll",value:function(n){return it.sceneGraphService.querySelectorAll(n,this)}},{key:"closest",value:function(n){var i=this;do{if(it.sceneGraphService.matches(n,i))return i;i=i.parentElement}while(i!==null);return null}},{key:"find",value:function(n){var i=this,a=null;return this.forEach(function(s){return s!==i&&n(s)?(a=s,!1):!0}),a}},{key:"findAll",value:function(n){var i=this,a=[];return this.forEach(function(s){s!==i&&n(s)&&a.push(s)}),a}},{key:"after",value:function(){var n=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};it.styleValueRegistry.processProperties(this,n,i),this.renderable.dirty=!0}},{key:"setAttribute",value:function(n,i){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;Et(i)||(a||i!==this.attributes[n])&&(this.internalSetAttribute(n,i,{memoize:s}),_P(e,"setAttribute",this,3)([n,i]))}},{key:"internalSetAttribute",value:function(n,i){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},s=this.renderable,o=this.attributes[n],l=this.parsedStyle[n];it.styleValueRegistry.processProperties(this,Jt({},n,i),a),s.dirty=!0;var u=this.parsedStyle[n];if(this.isConnected&&(Ts.relatedNode=this,Ts.prevValue=o,Ts.newValue=i,Ts.attrName=n,Ts.prevParsedValue=l,Ts.newParsedValue=u,this.isMutationObserved?this.dispatchEvent(Ts):(Ts.target=this,this.ownerDocument.defaultView.dispatchEvent(Ts,!0))),this.isCustomElement&&this.isConnected||!this.isCustomElement){var c,h;(c=(h=this).attributeChangedCallback)===null||c===void 0||c.call(h,n,o,i,l,u)}}},{key:"getBBox",value:function(){var n=this.getBounds(),i=n.getMin(),a=pn(i,2),s=a[0],o=a[1],l=n.getMax(),u=pn(l,2),c=u[0],h=u[1];return new $l(s,o,c-s,h-o)}},{key:"setOrigin",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return it.sceneGraphService.setOrigin(this,si(n,i,a,!1)),this}},{key:"getOrigin",value:function(){return it.sceneGraphService.getOrigin(this)}},{key:"setPosition",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return it.sceneGraphService.setPosition(this,si(n,i,a,!1)),this}},{key:"setLocalPosition",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return it.sceneGraphService.setLocalPosition(this,si(n,i,a,!1)),this}},{key:"translate",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return it.sceneGraphService.translate(this,si(n,i,a,!1)),this}},{key:"translateLocal",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;return it.sceneGraphService.translateLocal(this,si(n,i,a,!1)),this}},{key:"getPosition",value:function(){return it.sceneGraphService.getPosition(this)}},{key:"getLocalPosition",value:function(){return it.sceneGraphService.getLocalPosition(this)}},{key:"scale",value:function(n,i,a){return this.scaleLocal(n,i,a)}},{key:"scaleLocal",value:function(n,i,a){return typeof n=="number"&&(i=i||n,a=a||n,n=si(n,i,a,!1)),it.sceneGraphService.scaleLocal(this,n),this}},{key:"setLocalScale",value:function(n,i,a){return typeof n=="number"&&(i=i||n,a=a||n,n=si(n,i,a,!1)),it.sceneGraphService.setLocalScale(this,n),this}},{key:"getLocalScale",value:function(){return it.sceneGraphService.getLocalScale(this)}},{key:"getScale",value:function(){return it.sceneGraphService.getScale(this)}},{key:"getEulerAngles",value:function(){var n=pm(Ic,it.sceneGraphService.getWorldTransform(this)),i=pn(n,3),a=i[2];return aa(a)}},{key:"getLocalEulerAngles",value:function(){var n=pm(Ic,it.sceneGraphService.getLocalRotation(this)),i=pn(n,3),a=i[2];return aa(a)}},{key:"setEulerAngles",value:function(n){return it.sceneGraphService.setEulerAngles(this,0,0,n),this}},{key:"setLocalEulerAngles",value:function(n){return it.sceneGraphService.setLocalEulerAngles(this,0,0,n),this}},{key:"rotateLocal",value:function(n,i,a){return vt(i)&&vt(a)?it.sceneGraphService.rotateLocal(this,0,0,n):it.sceneGraphService.rotateLocal(this,n,i,a),this}},{key:"rotate",value:function(n,i,a){return vt(i)&&vt(a)?it.sceneGraphService.rotate(this,0,0,n):it.sceneGraphService.rotate(this,n,i,a),this}},{key:"setRotation",value:function(n,i,a,s){return it.sceneGraphService.setRotation(this,n,i,a,s),this}},{key:"setLocalRotation",value:function(n,i,a,s){return it.sceneGraphService.setLocalRotation(this,n,i,a,s),this}},{key:"setLocalSkew",value:function(n,i){return it.sceneGraphService.setLocalSkew(this,n,i),this}},{key:"getRotation",value:function(){return it.sceneGraphService.getRotation(this)}},{key:"getLocalRotation",value:function(){return it.sceneGraphService.getLocalRotation(this)}},{key:"getLocalSkew",value:function(){return it.sceneGraphService.getLocalSkew(this)}},{key:"getLocalTransform",value:function(){return it.sceneGraphService.getLocalTransform(this)}},{key:"getWorldTransform",value:function(){return it.sceneGraphService.getWorldTransform(this)}},{key:"setLocalTransform",value:function(n){return it.sceneGraphService.setLocalTransform(this,n),this}},{key:"resetLocalTransform",value:function(){it.sceneGraphService.resetLocalTransform(this)}},{key:"getAnimations",value:function(){return this.activeAnimations}},{key:"animate",value:function(n,i){var a,s=(a=this.ownerDocument)===null||a===void 0?void 0:a.timeline;return s?s.play(this,n,i):null}},{key:"isVisible",value:function(){var n;return((n=this.parsedStyle)===null||n===void 0?void 0:n.visibility)!=="hidden"}},{key:"interactive",get:function(){return this.isInteractive()},set:function(n){this.style.pointerEvents=n?"auto":"none"}},{key:"isInteractive",value:function(){var n;return((n=this.parsedStyle)===null||n===void 0?void 0:n.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,ni(this.parentNode.children.map(function(n){return Number(n.style.zIndex)})))+1),this}},{key:"toBack",value:function(){return this.parentNode&&(this.style.zIndex=Math.min.apply(Math,ni(this.parentNode.children.map(function(n){return Number(n.style.zIndex)})))-1),this}},{key:"getConfig",value:function(){return this.config}},{key:"attr",value:function(){for(var n=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(n,i,a),this}},{key:"move",value:function(n){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(n,i,a),this}},{key:"setZIndex",value:function(n){return this.style.zIndex=n,this}}])}(mF),Im=function(r){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return tt(this,e),nn(this,e,[ar({type:Tt.CIRCLE},t)])}return rn(e,r),nt(e)}(Fi),xF=["style"],EF=function(r){function e(){var t,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.style,a=Qo(n,xF);return tt(this,e),t=nn(this,e,[ar({style:i},a)]),t.isCustomElement=!0,t}return rn(e,r),nt(e)}(Fi),wF=function(r){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return tt(this,e),nn(this,e,[ar({type:Tt.ELLIPSE},t)])}return rn(e,r),nt(e)}(Fi),VJ=null,ji=function(r){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return tt(this,e),nn(this,e,[ar({type:Tt.GROUP},t)])}return rn(e,r),nt(e)}(Fi),PF=["style"],MF=function(r){function e(){var t,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.style,a=Qo(n,PF);return tt(this,e),t=nn(this,e,[ar({type:Tt.HTML,style:i},a)]),t.cullable.enable=!1,t}return rn(e,r),nt(e,[{key:"getDomElement",value:function(){return this.parsedStyle.$el}},{key:"getClientRects",value:function(){return[this.getBoundingClientRect()]}},{key:"getLocalBounds",value:function(){if(this.parentNode){var n=Ot(mt(),this.parentNode.getWorldTransform()),i=this.getBounds();if(!Si.isEmpty(i)){var a=new Si;return a.setFromTransformedAABB(i,n),a}}return this.getBounds()}}])}(Fi),SF=function(r){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return tt(this,e),nn(this,e,[ar({type:Tt.IMAGE},t)])}return rn(e,r),nt(e)}(Fi),TF=["style"],HM=function(r){function e(){var t,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.style,a=Qo(n,TF);tt(this,e),t=nn(this,e,[ar({type:Tt.LINE,style:ar({x1:0,y1:0,x2:0,y2:0,z1:0,z2:0},i)},a)]),t.markerStartAngle=0,t.markerEndAngle=0;var s=t.parsedStyle,o=s.markerStart,l=s.markerEnd;return o&&zn(o)&&(t.markerStartAngle=o.getLocalEulerAngles(),t.appendChild(o)),l&&zn(l)&&(t.markerEndAngle=l.getLocalEulerAngles(),t.appendChild(l)),t.transformMarker(!0),t.transformMarker(!1),t}return rn(e,r),nt(e,[{key:"attributeChangedCallback",value:function(n,i,a,s,o){n==="x1"||n==="y1"||n==="x2"||n==="y2"||n==="markerStartOffset"||n==="markerEndOffset"?(this.transformMarker(!0),this.transformMarker(!1)):n==="markerStart"?(s&&zn(s)&&(this.markerStartAngle=0,s.remove()),o&&zn(o)&&(this.markerStartAngle=o.getLocalEulerAngles(),this.appendChild(o),this.transformMarker(!0))):n==="markerEnd"&&(s&&zn(s)&&(this.markerEndAngle=0,s.remove()),o&&zn(o)&&(this.markerEndAngle=o.getLocalEulerAngles(),this.appendChild(o),this.transformMarker(!1)))}},{key:"transformMarker",value:function(n){var i=this.parsedStyle,a=i.markerStart,s=i.markerEnd,o=i.markerStartOffset,l=i.markerEndOffset,u=i.x1,c=i.x2,h=i.y1,f=i.y2,d=n?a:s;if(!(!d||!zn(d))){var v=0,g,p,m,b,x,O;n?(m=u,b=h,g=c-u,p=f-h,x=o||0,O=this.markerStartAngle):(m=c,b=f,g=u-c,p=h-f,x=l||0,O=this.markerEndAngle),v=Math.atan2(p,g),d.setLocalEulerAngles(v*180/Math.PI+O),d.setLocalPosition(m+Math.cos(v)*x,b+Math.sin(v)*x)}}},{key:"getPoint",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,a=this.parsedStyle,s=a.x1,o=a.y1,l=a.x2,u=a.y2,c=Ui(s,o,l,u,n),h=c.x,f=c.y,d=Dn(Me(),me(h,f,0),i?this.getWorldTransform():this.getLocalTransform());return new ia(d[0],d[1])}},{key:"getPointAtLength",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return this.getPoint(n/this.getTotalLength(),i)}},{key:"getTotalLength",value:function(){var n=this.parsedStyle,i=n.x1,a=n.y1,s=n.x2,o=n.y2;return ph(i,a,s,o)}}])}(Fi),AF=["style"],Bm=function(r){function e(){var t,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.style,a=Qo(n,AF);tt(this,e),t=nn(this,e,[ar({type:Tt.PATH,style:i,initialParsedStyle:{miterLimit:4,d:ar({},QP)}},a)]),t.markerStartAngle=0,t.markerEndAngle=0,t.markerMidList=[];var s=t.parsedStyle,o=s.markerStart,l=s.markerEnd,u=s.markerMid;return o&&zn(o)&&(t.markerStartAngle=o.getLocalEulerAngles(),t.appendChild(o)),u&&zn(u)&&t.placeMarkerMid(u),l&&zn(l)&&(t.markerEndAngle=l.getLocalEulerAngles(),t.appendChild(l)),t.transformMarker(!0),t.transformMarker(!1),t}return rn(e,r),nt(e,[{key:"attributeChangedCallback",value:function(n,i,a,s,o){n==="d"?(this.transformMarker(!0),this.transformMarker(!1),this.placeMarkerMid(this.parsedStyle.markerMid)):n==="markerStartOffset"||n==="markerEndOffset"?(this.transformMarker(!0),this.transformMarker(!1)):n==="markerStart"?(s&&zn(s)&&(this.markerStartAngle=0,s.remove()),o&&zn(o)&&(this.markerStartAngle=o.getLocalEulerAngles(),this.appendChild(o),this.transformMarker(!0))):n==="markerEnd"?(s&&zn(s)&&(this.markerEndAngle=0,s.remove()),o&&zn(o)&&(this.markerEndAngle=o.getLocalEulerAngles(),this.appendChild(o),this.transformMarker(!1))):n==="markerMid"&&this.placeMarkerMid(o)}},{key:"transformMarker",value:function(n){var i=this.parsedStyle,a=i.markerStart,s=i.markerEnd,o=i.markerStartOffset,l=i.markerEndOffset,u=n?a:s;if(!(!u||!zn(u))){var c=0,h,f,d,v,g,p;if(n){var m=this.getStartTangent(),b=pn(m,2),x=b[0],O=b[1];d=O[0],v=O[1],h=x[0]-O[0],f=x[1]-O[1],g=o||0,p=this.markerStartAngle}else{var T=this.getEndTangent(),S=pn(T,2),k=S[0],C=S[1];d=C[0],v=C[1],h=k[0]-C[0],f=k[1]-C[1],g=l||0,p=this.markerEndAngle}c=Math.atan2(f,h),u.setLocalEulerAngles(c*180/Math.PI+p),u.setLocalPosition(d+Math.cos(c)*g,v+Math.sin(c)*g)}}},{key:"placeMarkerMid",value:function(n){var i=this.parsedStyle.d.segments;if(this.markerMidList.forEach(function(c){c.remove()}),n&&zn(n))for(var a=1;a1&&arguments[1]!==void 0?arguments[1]:!1,a=this.parsedStyle.d.absolutePath,s=m1(a,n),o=s.x,l=s.y,u=Dn(Me(),me(o,l,0),i?this.getWorldTransform():this.getLocalTransform());return new ia(u[0],u[1])}},{key:"getPoint",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return this.getPointAtLength(n*cM(this),i)}},{key:"getStartTangent",value:function(){var n=this.parsedStyle.d.segments,i=[];if(n.length>1){var a=n[0].currentPoint,s=n[1].currentPoint,o=n[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 n=this.parsedStyle.d.segments,i=n.length,a=[];if(i>1){var s=n[i-2].currentPoint,o=n[i-1].currentPoint,l=n[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}}])}(Fi),OF=["style"],XM=function(r){function e(){var t,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.style,a=Qo(n,OF);tt(this,e),t=nn(this,e,[ar({type:Tt.POLYGON,style:i,initialParsedStyle:{points:{points:[],totalLength:0,segments:[]},miterLimit:4,isClosed:!0}},a)]),t.markerStartAngle=0,t.markerEndAngle=0,t.markerMidList=[];var s=t.parsedStyle,o=s.markerStart,l=s.markerEnd,u=s.markerMid;return o&&zn(o)&&(t.markerStartAngle=o.getLocalEulerAngles(),t.appendChild(o)),u&&zn(u)&&t.placeMarkerMid(u),l&&zn(l)&&(t.markerEndAngle=l.getLocalEulerAngles(),t.appendChild(l)),t.transformMarker(!0),t.transformMarker(!1),t}return rn(e,r),nt(e,[{key:"attributeChangedCallback",value:function(n,i,a,s,o){n==="points"?(this.transformMarker(!0),this.transformMarker(!1),this.placeMarkerMid(this.parsedStyle.markerMid)):n==="markerStartOffset"||n==="markerEndOffset"?(this.transformMarker(!0),this.transformMarker(!1)):n==="markerStart"?(s&&zn(s)&&(this.markerStartAngle=0,s.remove()),o&&zn(o)&&(this.markerStartAngle=o.getLocalEulerAngles(),this.appendChild(o),this.transformMarker(!0))):n==="markerEnd"?(s&&zn(s)&&(this.markerEndAngle=0,s.remove()),o&&zn(o)&&(this.markerEndAngle=o.getLocalEulerAngles(),this.appendChild(o),this.transformMarker(!1))):n==="markerMid"&&this.placeMarkerMid(o)}},{key:"transformMarker",value:function(n){var i=this.parsedStyle,a=i.markerStart,s=i.markerEnd,o=i.markerStartOffset,l=i.markerEndOffset,u=i.points,c=u||{},h=c.points,f=n?a:s;if(!(!f||!zn(f)||!h)){var d=0,v,g,p,m,b,x;if(p=h[0][0],m=h[0][1],n)v=h[1][0]-h[0][0],g=h[1][1]-h[0][1],b=o||0,x=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],m=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,x=this.markerEndAngle}d=Math.atan2(g,v),f.setLocalEulerAngles(d*180/Math.PI+x),f.setLocalPosition(p+Math.cos(d)*b,m+Math.sin(d)*b)}}},{key:"placeMarkerMid",value:function(n){var i=this.parsedStyle.points,a=i||{},s=a.points;if(this.markerMidList.forEach(function(h){h.remove()}),this.markerMidList=[],n&&zn(n)&&s)for(var o=1;o<(this.parsedStyle.isClosed?s.length:s.length-1);o++){var l=s[o][0],u=s[o][1],c=o===1?n:n.cloneNode(!0);this.markerMidList.push(c),this.appendChild(c),c.setLocalPosition(l,u)}}}])}(Fi),kF=["style"],CF=function(r){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.style,i=Qo(t,kF);return tt(this,e),nn(this,e,[ar({type:Tt.POLYLINE,style:n,initialParsedStyle:{points:{points:[],totalLength:0,segments:[]},miterLimit:4,isClosed:!1}},i)])}return rn(e,r),nt(e,[{key:"getTotalLength",value:function(){return p7(this)}},{key:"getPointAtLength",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return this.getPoint(n/this.getTotalLength(),i)}},{key:"getPoint",value:function(n){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,u,c=this.getTotalLength();a.forEach(function(m,b){a[b+1]&&(l=[0,0],l[0]=o/c,u=ph(m[0],m[1],a[b+1][0],a[b+1][1]),o+=u,l[1]=o/c,s.push(l))}),this.parsedStyle.points.segments=s}var h=0,f=0;this.parsedStyle.points.segments.forEach(function(m,b){n>=m[0]&&n<=m[1]&&(h=(n-m[0])/(m[1]-m[0]),f=b)});var d=Ui(a[f][0],a[f][1],a[f+1][0],a[f+1][1],h),v=d.x,g=d.y,p=Dn(Me(),me(v,g,0),i?this.getWorldTransform():this.getLocalTransform());return new ia(p[0],p[1])}},{key:"getStartTangent",value:function(){var n=this.parsedStyle.points.points,i=[];return i.push([n[1][0],n[1][1]]),i.push([n[0][0],n[0][1]]),i}},{key:"getEndTangent",value:function(){var n=this.parsedStyle.points.points,i=n.length-1,a=[];return a.push([n[i-1][0],n[i-1][1]]),a.push([n[i][0],n[i][1]]),a}}])}(XM),iu=function(r){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return tt(this,e),nn(this,e,[ar({type:Tt.RECT},t)])}return rn(e,r),nt(e)}(Fi),NF=["style"],_F=function(r){function e(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.style,i=Qo(t,NF);return tt(this,e),nn(this,e,[ar({type:Tt.TEXT,style:ar({fill:"black"},n)},i)])}return rn(e,r),nt(e,[{key:"getComputedTextLength",value:function(){var n;return this.getGeometryBounds(),((n=this.parsedStyle.metrics)===null||n===void 0?void 0:n.maxLineWidth)||0}},{key:"getLineBoundingRects",value:function(){var n;return this.getGeometryBounds(),((n=this.parsedStyle.metrics)===null||n===void 0?void 0:n.lineMetrics)||[]}},{key:"isOverflowing",value:function(){return this.getGeometryBounds(),!!this.parsedStyle.isOverflowing}}])}(Fi),YJ=null,UJ={number:function(e){return new Pn(e)},percent:function(e){return new Pn(e,"%")},px:function(e){return new Pn(e,"px")},em:function(e){return new Pn(e,"em")},rem:function(e){return new Pn(e,"rem")},deg:function(e){return new Pn(e,"deg")},grad:function(e){return new Pn(e,"grad")},rad:function(e){return new Pn(e,"rad")},turn:function(e){return new Pn(e,"turn")},s:function(e){return new Pn(e,"s")},ms:function(e){return new Pn(e,"ms")},registerProperty:function(e){var t=e.name,n=e.inherits,i=e.interpolable,a=e.initialValue,s=e.syntax;it.styleValueRegistry.registerMetadata({n:t,inh:n,int:i,d:a,syntax:s})},registerLayout:function(e,t){it.layoutRegistry.registerLayout(e,t)}},ZJ=null,RF=function(){function r(e){tt(this,r),this.strategies=e}return nt(r,[{key:"apply",value:function(t){var n=t.camera,i=t.renderingService,a=t.renderingContext,s=this.strategies;i.hooks.cull.tap(r.tag,function(o){if(o){var l=o.cullable;return s.length===0?l.visible=a.unculledEntities.indexOf(o.entity)>-1:l.visible=s.every(function(u){return u.isVisible(n,o)}),!o.isCulled()&&o.isVisible()?o:(o.dispatchEvent(new zi(sr.CULLED)),null)}return o}),i.hooks.afterRender.tap(r.tag,function(o){o.cullable.visibilityPlaneMask=-1})}}])}();RF.tag="Culling";var LF=function(){function r(){var e=this;tt(this,r),this.autoPreventDefault=!1,this.rootPointerEvent=new Gz(null),this.rootWheelEvent=new Hz(null),this.onPointerMove=function(t){var n,i=(n=e.context.renderingContext.root)===null||n===void 0||(n=n.ownerDocument)===null||n===void 0?void 0:n.defaultView;if(!(i.supportsTouchEvents&&t.pointerType==="touch")){var a=e.normalizeToPointerEvent(t,i),s=Jl(a),o;try{for(s.s();!(o=s.n()).done;){var l=o.value,u=e.bootstrapEvent(e.rootPointerEvent,l,i,t);e.context.eventService.mapEvent(u)}}catch(c){s.e(c)}finally{s.f()}e.setCursor(e.context.eventService.cursor)}},this.onClick=function(t){var n,i=(n=e.context.renderingContext.root)===null||n===void 0||(n=n.ownerDocument)===null||n===void 0?void 0:n.defaultView,a=e.normalizeToPointerEvent(t,i),s=Jl(a),o;try{for(s.s();!(o=s.n()).done;){var l=o.value,u=e.bootstrapEvent(e.rootPointerEvent,l,i,t);e.context.eventService.mapEvent(u)}}catch(c){s.e(c)}finally{s.f()}e.setCursor(e.context.eventService.cursor)}}return nt(r,[{key:"apply",value:function(t){var n=this;this.context=t;var i=t.renderingService,a=this.context.renderingContext.root.ownerDocument.defaultView;this.context.eventService.setPickHandler(function(s){var o=n.context.renderingService.hooks.pickSync.call({position:s,picked:[],topmost:!0}),l=o.picked;return l[0]||null}),i.hooks.pointerWheel.tap(r.tag,function(s){var o=n.normalizeWheelEvent(s);n.context.eventService.mapEvent(o)}),i.hooks.pointerDown.tap(r.tag,function(s){if(!(a.supportsTouchEvents&&s.pointerType==="touch")){var o=n.normalizeToPointerEvent(s,a);if(n.autoPreventDefault&&o[0].isNormalized){var l=s.cancelable||!("cancelable"in s);l&&s.preventDefault()}var u=Jl(o),c;try{for(u.s();!(c=u.n()).done;){var h=c.value,f=n.bootstrapEvent(n.rootPointerEvent,h,a,s);n.context.eventService.mapEvent(f)}}catch(d){u.e(d)}finally{u.f()}n.setCursor(n.context.eventService.cursor)}}),i.hooks.pointerUp.tap(r.tag,function(s){if(!(a.supportsTouchEvents&&s.pointerType==="touch")){var o=n.context.contextService.getDomElement(),l=n.context.eventService.isNativeEventFromCanvas(o,s),u=l?"":"outside",c=n.normalizeToPointerEvent(s,a),h=Jl(c),f;try{for(h.s();!(f=h.n()).done;){var d=f.value,v=n.bootstrapEvent(n.rootPointerEvent,d,a,s);v.type+=u,n.context.eventService.mapEvent(v)}}catch(g){h.e(g)}finally{h.f()}n.setCursor(n.context.eventService.cursor)}}),i.hooks.pointerMove.tap(r.tag,this.onPointerMove),i.hooks.pointerOver.tap(r.tag,this.onPointerMove),i.hooks.pointerOut.tap(r.tag,this.onPointerMove),i.hooks.click.tap(r.tag,this.onClick),i.hooks.pointerCancel.tap(r.tag,function(s){var o=n.normalizeToPointerEvent(s,a),l=Jl(o),u;try{for(l.s();!(u=l.n()).done;){var c=u.value,h=n.bootstrapEvent(n.rootPointerEvent,c,a,s);n.context.eventService.mapEvent(h)}}catch(f){l.e(f)}finally{l.f()}n.setCursor(n.context.eventService.cursor)})}},{key:"bootstrapEvent",value:function(t,n,i,a){t.view=i,t.originalEvent=null,t.nativeEvent=a,t.pointerId=n.pointerId,t.width=n.width,t.height=n.height,t.isPrimary=n.isPrimary,t.pointerType=n.pointerType,t.pressure=n.pressure,t.tangentialPressure=n.tangentialPressure,t.tiltX=n.tiltX,t.tiltY=n.tiltY,t.twist=n.twist,this.transferMouseData(t,n);var s=this.context.eventService.client2Viewport({x:n.clientX,y:n.clientY}),o=s.x,l=s.y;t.viewport.x=o,t.viewport.y=l;var u=this.context.eventService.viewport2Canvas(t.viewport),c=u.x,h=u.y;return t.canvas.x=c,t.canvas.y=h,t.global.copyFrom(t.canvas),t.offset.copyFrom(t.canvas),t.isTrusted=a.isTrusted,t.type==="pointerleave"&&(t.type="pointerout"),t.type.startsWith("mouse")&&(t.type=t.type.replace("mouse","pointer")),t.type.startsWith("touch")&&(t.type=uz[t.type]||t.type),t}},{key:"normalizeWheelEvent",value:function(t){var n=this.rootWheelEvent;this.transferMouseData(n,t),n.deltaMode=t.deltaMode,n.deltaX=t.deltaX,n.deltaY=t.deltaY,n.deltaZ=t.deltaZ;var i=this.context.eventService.client2Viewport({x:t.clientX,y:t.clientY}),a=i.x,s=i.y;n.viewport.x=a,n.viewport.y=s;var o=this.context.eventService.viewport2Canvas(n.viewport),l=o.x,u=o.y;return n.canvas.x=l,n.canvas.y=u,n.global.copyFrom(n.canvas),n.offset.copyFrom(n.canvas),n.nativeEvent=t,n.type=t.type,n}},{key:"transferMouseData",value:function(t,n){t.isTrusted=n.isTrusted,t.srcElement=n.srcElement,t.timeStamp=cz.now(),t.type=n.type,t.altKey=n.altKey,t.metaKey=n.metaKey,t.shiftKey=n.shiftKey,t.ctrlKey=n.ctrlKey,t.button=n.button,t.buttons=n.buttons,t.client.x=n.clientX,t.client.y=n.clientY,t.movement.x=n.movementX,t.movement.y=n.movementY,t.page.x=n.pageX,t.page.y=n.pageY,t.screen.x=n.screenX,t.screen.y=n.screenY,t.relatedTarget=null}},{key:"setCursor",value:function(t){this.context.contextService.applyCursorStyle(t||this.context.config.cursor||"default")}},{key:"normalizeToPointerEvent",value:function(t,n){var i=[];if(n.isTouchEvent(t))for(var a=0;a1&&arguments[1]!==void 0?arguments[1]:!1;if(t.isConnected){var i=t.rBushNode;i.aabb&&this.rBush.remove(i.aabb);var a=t.getRenderBounds();if(a){var s=t.renderable;n&&(s.dirtyRenderBounds||(s.dirtyRenderBounds=new Si),s.dirtyRenderBounds.update(a.center,a.halfExtents));var o=a.getMin(),l=pn(o,2),u=l[0],c=l[1],h=a.getMax(),f=pn(h,2),d=f[0],v=f[1];i.aabb||(i.aabb={}),i.aabb.displayObject=t,i.aabb.minX=u,i.aabb.minY=c,i.aabb.maxX=d,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 t=this,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if(!(!n&&(this.syncing||this.syncTasks.size===0))){this.syncing=!0;var i=[],a=new Set,s=function(l){if(!a.has(l)&&l.renderable){var u=t.syncNode(l,n);u&&(i.push(u),a.add(l))}};this.syncTasks.forEach(function(o,l){o&&l.forEach(s);for(var u=l;u;)s(u),u=u.parentElement}),this.rBush.load(i),i.length=0,this.syncing=!1}}}])}();DF.tag="Prepare";function JJ(r){return!!r.document}var zm=function(r){return r.READY="ready",r.BEFORE_RENDER="beforerender",r.RERENDER="rerender",r.AFTER_RENDER="afterrender",r.BEFORE_DESTROY="beforedestroy",r.AFTER_DESTROY="afterdestroy",r.RESIZE="resize",r.DIRTY_RECTANGLE="dirtyrectangle",r.RENDERER_CHANGED="rendererchanged",r}({}),qJ=500,$J=.1,eq=1e3,tq=new zi(sr.MOUNTED),nq=new zi(sr.UNMOUNTED),rq=new zi(zm.BEFORE_RENDER),iq=new zi(zm.RERENDER),aq=new zi(zm.AFTER_RENDER),sq=null;var IF=function(r){function e(){var t;tt(this,e);for(var n=arguments.length,i=new Array(n),a=0;a90)return this;this.computeMatrix()}return this._getAxes(),this.type===Cn.ORBITING||this.type===Cn.EXPLORING?this._getPosition():this.type===Cn.TRACKING&&this._getFocalPoint(),this._update(),this}},{key:"pan",value:function(n,i){var a=si(n,i,0),s=De(this.position);return He(s,s,wt(Me(),this.right,a[0])),He(s,s,wt(Me(),this.up,a[1])),this._setPosition(s),this.triggerUpdate(),this}},{key:"dolly",value:function(n){var i=this.forward,a=De(this.position),s=n*this.dollyingStep,o=this.distance+n*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===Cn.ORBITING||this.type===Cn.EXPLORING?this._getDistance():this.type===Cn.TRACKING&&He(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(n){var i,a,s,o,l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},u=l.position,c=u===void 0?this.position:u,h=l.focalPoint,f=h===void 0?this.focalPoint:h,d=l.roll,v=l.zoom,g=new it.CameraContribution;g.setType(this.type,void 0),g.setPosition(c[0],(i=c[1])!==null&&i!==void 0?i:this.position[1],(a=c[2])!==null&&a!==void 0?a:this.position[2]),g.setFocalPoint(f[0],(s=f[1])!==null&&s!==void 0?s:this.focalPoint[1],(o=f[2])!==null&&o!==void 0?o:this.focalPoint[2]),g.setRoll(d!=null?d:this.roll),g.setZoom(v!=null?v:this.zoom);var p={name:n,matrix:Tn(g.getWorldTransform()),right:De(g.right),up:De(g.up),forward:De(g.forward),position:De(g.getPosition()),focalPoint:De(g.getFocalPoint()),distanceVector:De(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(n){var i=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=Xt(n)?this.landmarks.find(function(J){return J.name===n}):n;if(s){var o=ht(a)?{duration:a}:a,l=o.easing,u=l===void 0?"linear":l,c=o.duration,h=c===void 0?100:c,f=o.easingFunction,d=f===void 0?void 0:f,v=o.onfinish,g=v===void 0?void 0:v,p=o.onframe,m=p===void 0?void 0:p,b=.01;this.cancelLandmarkAnimation();var x=s.position,O=s.focalPoint,T=s.zoom,S=s.roll,k=d||it.EasingFunction(u),C,W=function(){i.setFocalPoint(O),i.setPosition(x),i.setRoll(S),i.setZoom(T),i.computeMatrix(),i.triggerUpdate(),g==null||g()};if(h===0)return W();var U=function(te){C===void 0&&(C=te);var ie=te-C;if(ie>=h){W();return}var ae=k(ie/h),ve=Me(),Z=Me(),H=1,X=0;Ha(ve,i.focalPoint,O,ae),Ha(Z,i.position,x,ae),X=i.roll*(1-ae)+S*ae,H=i.zoom*(1-ae)+T*ae,i.setFocalPoint(ve),i.setPosition(Z),i.setRoll(X),i.setZoom(H);var q=ll(ve,O)+ll(Z,x);if(q<=b&&T===void 0&&S===void 0)return W();i.computeMatrix(),i.triggerUpdate(),ie0&&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 t=this.oldPlayState,n=this.pending?"pending":this.playState;return this.readyPromise&&n!==t&&(n==="idle"?(this.rejectReadyPromise(),this.readyPromise=void 0):t==="pending"?this.resolveReadyPromise():n==="pending"&&(this.readyPromise=void 0)),this.finishedPromise&&n!==t&&(n==="idle"?(this.rejectFinishedPromise(),this.finishedPromise=void 0):n==="finished"?this.resolveFinishedPromise():t==="finished"&&(this.finishedPromise=void 0)),this.oldPlayState=n,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 t=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 n=new Hm(null,this,this.currentTime,null);setTimeout(function(){t.oncancel(n)})}}},{key:"reverse",value:function(){this.updatePromises();var t=this.currentTime;this.playbackRate*=-1,this.play(),t!==null&&(this.currentTime=t),this.updatePromises()}},{key:"updatePlaybackRate",value:function(t){this.playbackRate=t}},{key:"targetAnimations",value:function(){var t,n=(t=this.effect)===null||t===void 0?void 0:t.target;return n.getAnimations()}},{key:"markTarget",value:function(){var t=this.targetAnimations();t.indexOf(this)===-1&&t.push(this)}},{key:"unmarkTarget",value:function(){var t=this.targetAnimations(),n=t.indexOf(this);n!==-1&&t.splice(n,1)}},{key:"tick",value:function(t,n){!this._idle&&!this._paused&&(this._startTime===null?n&&(this.startTime=t-this._currentTime/this.playbackRate):this._isFinished||this.tickCurrentTime((t-this._startTime)*this.playbackRate)),n&&(this.currentTimePending=!1,this.fireEvents(t))}},{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(kn)}},{key:"addEventListener",value:function(t,n,i){throw new Error(kn)}},{key:"removeEventListener",value:function(t,n,i){throw new Error(kn)}},{key:"dispatchEvent",value:function(t){throw new Error(kn)}},{key:"commitStyles",value:function(){throw new Error(kn)}},{key:"ensureAlive",value:function(){if(this.playbackRate<0&&this.currentTime===0){var t;this._inEffect=!!((t=this.effect)!==null&&t!==void 0&&t.update(-1))}else{var n;this._inEffect=!!((n=this.effect)!==null&&n!==void 0&&n.update(this.currentTime))}!this._inTimeline&&(this._inEffect||!this._finishedFlag)&&(this._inTimeline=!0,this.timeline.animations.push(this))}},{key:"tickCurrentTime",value:function(t,n){t!==this._currentTime&&(this._currentTime=t,this._isFinished&&!n&&(this._currentTime=this._playbackRate>0?this._totalDuration:0),this.ensureAlive())}},{key:"fireEvents",value:function(t){var n=this;if(this._isFinished){if(!this._finishedFlag){if(this.onfinish){var i=new Hm(null,this,this.currentTime,t);setTimeout(function(){n.onfinish&&n.onfinish(i)})}this._finishedFlag=!0}}else{if(this.onframe&&this.playState==="running"){var a=new Hm(null,this,this.currentTime,t);this.onframe(a)}this._finishedFlag=!1}}}])}(),GF=4,HF=.001,XF=1e-7,WF=10,Bc=11,cv=1/(Bc-1),VF=typeof Float32Array=="function",YM=function(e,t){return 1-3*t+3*e},UM=function(e,t){return 3*t-6*e},ZM=function(e){return 3*e},hv=function(e,t,n){return((YM(t,n)*e+UM(t,n))*e+ZM(t))*e},KM=function(e,t,n){return 3*YM(t,n)*e*e+2*UM(t,n)*e+ZM(t)},YF=function(e,t,n,i,a){var s,o,l=0;do o=t+(n-t)/2,s=hv(o,i,a)-e,s>0?n=o:t=o;while(Math.abs(s)>XF&&++l=0&&e<=1&&n>=0&&n<=1))throw new Error("bezier x values must be in [0, 1] range");if(e===t&&n===i)return function(l){return l};for(var a=VF?new Float32Array(Bc):new Array(Bc),s=0;s=HF?UF(u,v,e,n):g===0?v:YF(u,c,c+cv,e,n)};return function(l){return l===0||l===1?l:hv(o(l),t,i)}},ZF=function(e){return e=e.replace(/([A-Z])/g,function(t){return"-".concat(t.toLowerCase())}),e.charAt(0)==="-"?e.substring(1):e},fv=function(e){return Math.pow(e,2)},dv=function(e){return Math.pow(e,3)},vv=function(e){return Math.pow(e,4)},gv=function(e){return Math.pow(e,5)},pv=function(e){return Math.pow(e,6)},mv=function(e){return 1-Math.cos(e*Math.PI/2)},yv=function(e){return 1-Math.sqrt(1-e*e)},bv=function(e){return e*e*(3*e-2)},xv=function(e){for(var t,n=4;e<((t=Math.pow(2,--n))-1)/11;);return 1/Math.pow(4,3-n)-7.5625*Math.pow((t*3-2)/22-e,2)},Ev=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=pn(t,2),i=n[0],a=i===void 0?1:i,s=n[1],o=s===void 0?.5:s,l=on(Number(a),1,10),u=on(Number(o),.1,2);return e===0||e===1?e:-l*Math.pow(2,10*(e-1))*Math.sin((e-1-u/(Math.PI*2)*Math.asin(1/l))*(Math.PI*2)/u)},zc=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2?arguments[2]:void 0,i=pn(t,4),a=i[0],s=a===void 0?1:a,o=i[1],l=o===void 0?100:o,u=i[2],c=u===void 0?10:u,h=i[3],f=h===void 0?0:h;s=on(s,.1,1e3),l=on(l,.1,1e3),c=on(c,.1,1e3),f=on(f,.1,1e3);var d=Math.sqrt(l/s),v=c/(2*Math.sqrt(l*s)),g=v<1?d*Math.sqrt(1-v*v):0,p=1,m=v<1?(v*d+-f)/g:-f+d,b=n?n*e/1e3:e;return v<1?b=Math.exp(-b*v*d)*(p*Math.cos(g*b)+m*Math.sin(g*b)):b=(p+m*b)*Math.exp(-b*d),e===0||e===1?e:1-b},Wm=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=t,i=pn(n,2),a=i[0],s=a===void 0?10:a,o=i[1],l=o==="start"?Math.ceil:Math.floor;return l(on(e,0,1)*s)/s},QM=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=pn(t,4),i=n[0],a=n[1],s=n[2],o=n[3];return Xm(i,a,s,o)(e)},wv=Xm(.42,0,1,1),oa=function(e){return function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0;return 1-e(1-t,n,i)}},la=function(e){return function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0;return t<.5?e(t*2,n,i)/2:1-e(t*-2+2,n,i)/2}},ua=function(e){return function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0;return t<.5?(1-e(1-t*2,n,i))/2:(e(t*2-1,n,i)+1)/2}},JM={steps:Wm,"step-start":function(e){return Wm(e,[1,"start"])},"step-end":function(e){return Wm(e,[1,"end"])},linear:function(e){return e},"cubic-bezier":QM,ease:function(e){return QM(e,[.25,.1,.25,1])},in:wv,out:oa(wv),"in-out":la(wv),"out-in":ua(wv),"in-quad":fv,"out-quad":oa(fv),"in-out-quad":la(fv),"out-in-quad":ua(fv),"in-cubic":dv,"out-cubic":oa(dv),"in-out-cubic":la(dv),"out-in-cubic":ua(dv),"in-quart":vv,"out-quart":oa(vv),"in-out-quart":la(vv),"out-in-quart":ua(vv),"in-quint":gv,"out-quint":oa(gv),"in-out-quint":la(gv),"out-in-quint":ua(gv),"in-expo":pv,"out-expo":oa(pv),"in-out-expo":la(pv),"out-in-expo":ua(pv),"in-sine":mv,"out-sine":oa(mv),"in-out-sine":la(mv),"out-in-sine":ua(mv),"in-circ":yv,"out-circ":oa(yv),"in-out-circ":la(yv),"out-in-circ":ua(yv),"in-back":bv,"out-back":oa(bv),"in-out-back":la(bv),"out-in-back":ua(bv),"in-bounce":xv,"out-bounce":oa(xv),"in-out-bounce":la(xv),"out-in-bounce":ua(xv),"in-elastic":Ev,"out-elastic":oa(Ev),"in-out-elastic":la(Ev),"out-in-elastic":ua(Ev),spring:zc,"spring-in":zc,"spring-out":oa(zc),"spring-in-out":la(zc),"spring-out-in":ua(zc)},KF=function(e){return ZF(e).replace(/^ease-/,"").replace(/(\(|\s).+/,"").toLowerCase().trim()},QF=function(e){return JM[KF(e)]||JM.linear},JF=function(e){return e},qF=1,$F=.5,qM=0;function $M(r,e){return function(t){if(t>=1)return 1;var n=1/r;return t+=e*n,t-t%n}}var Pv="\\s*(-?\\d+\\.?\\d*|-?\\.\\d+)\\s*",ej=new RegExp("cubic-bezier\\(".concat(Pv,",").concat(Pv,",").concat(Pv,",").concat(Pv,"\\)")),tj=/steps\(\s*(\d+)\s*\)/,nj=/steps\(\s*(\d+)\s*,\s*(start|middle|end)\s*\)/;function Vm(r){var e=ej.exec(r);if(e)return Xm.apply(void 0,ni(e.slice(1).map(Number)));var t=tj.exec(r);if(t)return $M(Number(t[1]),qM);var n=nj.exec(r);return n?$M(Number(n[1]),{start:qF,middle:$F,end:qM}[n[2]]):QF(r)}function rj(r){return Math.abs(ij(r)/(r.playbackRate||1))}function ij(r){var e;return r.duration===0||r.iterations===0?0:(r.duration==="auto"?0:Number(r.duration))*((e=r.iterations)!==null&&e!==void 0?e:1)}var eS=0,Ym=1,Mv=2,tS=3;function aj(r,e,t){if(e===null)return eS;var n=t.endTime;return e=Math.min(t.delay+r+t.endDelay,n)?Mv:tS}function sj(r,e,t,n,i){switch(n){case Ym:return e==="backwards"||e==="both"?0:null;case tS:return t-i;case Mv:return e==="forwards"||e==="both"?r:null;case eS:return null}}function oj(r,e,t,n,i){var a=i;return r===0?e!==Ym&&(a+=t):a+=n/r,a}function lj(r,e,t,n,i,a){var s=r===1/0?e%1:r%1;return s===0&&t===Mv&&n!==0&&(i!==0||a===0)&&(s=1),s}function uj(r,e,t,n){return r===Mv&&e===1/0?1/0:t===1?Math.floor(n)-1:Math.floor(n)}function cj(r,e,t){var n=r;if(r!=="normal"&&r!=="reverse"){var i=e;r==="alternate-reverse"&&(i+=1),n="normal",i!==1/0&&i%2!==0&&(n="reverse")}return n==="normal"?t:1-t}function hj(r,e,t){var n=aj(r,e,t),i=sj(r,t.fill,e,n,t.delay);if(i===null)return null;var a=t.duration==="auto"?0:t.duration,s=oj(a,n,t.iterations,i,t.iterationStart),o=lj(s,t.iterationStart,n,t.iterations,i,a),l=uj(n,t.iterations,o,s),u=cj(t.direction,l,o);return t.currentIteration=l,t.progress=u,t.easingFunction(u)}function fj(r,e,t){var n=dj(r,e),i=vj(n,t);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.");u.computedOffset=h}}else if(c==="composite"&&["replace","add","accumulate","auto"].indexOf(h)===-1)throw new Error("".concat(h," compositing is not supported"));u[c]=h}return u.offset===void 0&&(u.offset=null),u.easing===void 0&&(u.easing=(e==null?void 0:e.easing)||"linear"),u.composite===void 0&&(u.composite="auto"),u}),n=!0,i=-1/0,a=0;a=0&&Number(l.offset)<=1});function o(){var l,u=t,c=u.length;if(t[c-1].computedOffset=Number((l=t[c-1].offset)!==null&&l!==void 0?l:1),c>1){var h;t[0].computedOffset=Number((h=t[0].offset)!==null&&h!==void 0?h:0)}for(var f=0,d=Number(t[0].computedOffset),v=1;v="A"&&t<="Z"};function zt(r,e,t){t===void 0&&(t=!1);var n={};return Object.entries(r).forEach(function(i){var a=(0,Y.CR)(i,2),s=a[0],o=a[1];if(!(s==="className"||s==="class")){if(Tv(s,"show")&&Tv(cS(s,"show"),e)!==t)s===Cj(e,"show")?n[s]=o:n[s.replace(new RegExp(Um(e)),"")]=o;else if(!Tv(s,"show")&&Tv(s,e)!==t){var l=cS(s,e);l==="filter"&&typeof o=="function"||(n[l]=o)}}}),n}function au(r,e){return Object.entries(r).reduce(function(t,n){var i=(0,Y.CR)(n,2),a=i[0],s=i[1];return a.startsWith("show")?t["show".concat(e).concat(a.slice(4))]=s:t["".concat(e).concat(Um(a))]=s,t},{})}function Os(r,e){e===void 0&&(e=["x","y","class","className"]);var t=["transform","transformOrigin","anchor","visibility","pointerEvents","zIndex","cursor","clipPath","clipPathTargets","offsetPath","offsetPathTargets","offsetDistance","draggable","droppable"],n={},i={};return Object.entries(r).forEach(function(a){var s=(0,Y.CR)(a,2),o=s[0],l=s[1];e.includes(o)||(t.indexOf(o)!==-1?i[o]=l:n[o]=l)}),[n,i]}var Zm=function(r){(0,Y.ZT)(e,r);function e(t){t===void 0&&(t={});var n=t.style,i=(0,Y._T)(t,["style"]);return r.call(this,(0,Y.pi)({style:(0,Y.pi)({text:"",fill:"black",fontFamily:"sans-serif",fontSize:16,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",lineWidth:1,textAlign:"start",textBaseline:"middle"},n)},i))||this}return Object.defineProperty(e.prototype,"offscreenGroup",{get:function(){return this._offscreen||(this._offscreen=uS(this)),this._offscreen},enumerable:!1,configurable:!0}),e.prototype.disconnectedCallback=function(){var t;(t=this._offscreen)===null||t===void 0||t.destroy()},e}(_F);function _j(r,e){var t=new Map;return r.forEach(function(n){var i=e(n);t.has(i)||t.set(i,[]),t.get(i).push(n)}),t}function Rj(r){throw new Error(r)}var Lj=function(){function r(i,a,s,o,l,u,c){i===void 0&&(i=null),a===void 0&&(a=null),s===void 0&&(s=null),o===void 0&&(o=null),l===void 0&&(l=[null,null,null,null,null]),u===void 0&&(u=[]),c===void 0&&(c=[]),e.add(this),this._elements=Array.from(i),this._data=a,this._parent=s,this._document=o,this._enter=l[0],this._update=l[1],this._exit=l[2],this._merge=l[3],this._split=l[4],this._transitions=u,this._facetElements=c}r.prototype.selectAll=function(i){var a=typeof i=="string"?this._parent.querySelectorAll(i):i;return new t(a,null,this._elements[0],this._document)},r.prototype.selectFacetAll=function(i){var a=typeof i=="string"?this._parent.querySelectorAll(i):i;return new t(this._elements,null,this._parent,this._document,void 0,void 0,a)},r.prototype.select=function(i){var a=typeof i=="string"?this._parent.querySelectorAll(i)[0]||null:i;return new t([a],null,a,this._document)},r.prototype.append=function(i){var a=this,s=typeof i=="function"?i:function(){return a.createElement(i)},o=[];if(this._data!==null){for(var l=0;l=this.left&&e<=this.right&&t>=this.top&&t<=this.bottom},r}();function pq(r){var e=r.getRenderBounds(),t=__read(e.min,2),n=t[0],i=t[1],a=__read(e.max,2),s=a[0],o=a[1],l=s-n,u=o-i;return new Zr(n,i,l,u)}var Ia=function(r,e){var t=function(i){return"".concat(e,"-").concat(i)},n=Object.fromEntries(Object.entries(r).map(function(i){var a=(0,Y.CR)(i,2),s=a[0],o=a[1],l=t(o);return[s,{name:l,class:".".concat(l),id:"#".concat(l),toString:function(){return l}}]}));return Object.assign(n,{prefix:t}),n};function jr(r){if(ht(r))return[r,r,r,r];if(pi(r)){var e=r.length;if(e===1)return[r[0],r[0],r[0],r[0]];if(e===2)return[r[0],r[1],r[0],r[1]];if(e===3)return[r[0],r[1],r[2],r[1]];if(e===4)return r}return[0,0,0,0]}function Gi(r,e,t,n,i){return n===void 0&&(n=!0),i===void 0&&(i=function(a){a.node().removeChildren()}),r?t(e):(n&&i(e),null)}var hS=Ia({text:"text"},"title");function Av(r){return/\S+-\S+/g.test(r)?r.split("-").map(function(e){return e[0]}):r.length>2?[r[0]]:r.split("")}function Ij(r,e){var t=r.attributes,n=t.position,i=t.spacing,a=t.inset,s=t.text,o=r.getBBox(),l=e.getBBox(),u=Av(n),c=(0,Y.CR)(jr(s?i:0),4),h=c[0],f=c[1],d=c[2],v=c[3],g=(0,Y.CR)(jr(a),4),p=g[0],m=g[1],b=g[2],x=g[3],O=(0,Y.CR)([v+f,h+d],2),T=O[0],S=O[1],k=(0,Y.CR)([x+m,p+b],2),C=k[0],W=k[1];if(u[0]==="l")return new Zr(o.x,o.y,l.width+o.width+T+C,Math.max(l.height+W,o.height));if(u[0]==="t")return new Zr(o.x,o.y,Math.max(l.width+C,o.width),l.height+o.height+S+W);var U=(0,Y.CR)([e.attributes.width||l.width,e.attributes.height||l.height],2),J=U[0],te=U[1];return new Zr(l.x,l.y,J+o.width+T+C,te+o.height+S+W)}function Bj(r,e){var t=Object.entries(e).reduce(function(n,i){var a=(0,Y.CR)(i,2),s=a[0],o=a[1],l=r.node().attr(s);return l||(n[s]=o),n},{});r.styles(t)}function zj(r){var e,t,n,i,a=r,s=a.width,o=a.height,l=a.position,u=(0,Y.CR)([+s/2,+o/2],2),c=u[0],h=u[1],f=(0,Y.CR)([+c,+h,"center","middle"],4),d=f[0],v=f[1],g=f[2],p=f[3],m=Av(l);return m.includes("l")&&(e=(0,Y.CR)([0,"start"],2),d=e[0],g=e[1]),m.includes("r")&&(t=(0,Y.CR)([+s,"end"],2),d=t[0],g=t[1]),m.includes("t")&&(n=(0,Y.CR)([0,"top"],2),v=n[0],p=n[1]),m.includes("b")&&(i=(0,Y.CR)([+o,"bottom"],2),v=i[0],p=i[1]),{x:d,y:v,textAlign:g,textBaseline:p}}var Fj=function(r){(0,Y.ZT)(e,r);function e(t){return r.call(this,t,{text:"",width:0,height:0,fill:"#4a505a",fontWeight:"bold",fontSize:12,fontFamily:"sans-serif",inset:0,spacing:0,position:"top-left"})||this}return e.prototype.getAvailableSpace=function(){var t=this,n=this.attributes,i=n.width,a=n.height,s=n.position,o=n.spacing,l=n.inset,u=t.querySelector(hS.text.class);if(!u)return new Zr(0,0,+i,+a);var c=u.getBBox(),h=c.width,f=c.height,d=(0,Y.CR)(jr(o),4),v=d[0],g=d[1],p=d[2],m=d[3],b=(0,Y.CR)([0,0,+i,+a],4),x=b[0],O=b[1],T=b[2],S=b[3],k=Av(s);if(k.includes("i"))return new Zr(x,O,T,S);k.forEach(function(Z,H){var X,q,oe,de;Z==="t"&&(X=(0,Y.CR)(H===0?[f+p,+a-f-p]:[0,+a],2),O=X[0],S=X[1]),Z==="r"&&(q=(0,Y.CR)([+i-h-m],1),T=q[0]),Z==="b"&&(oe=(0,Y.CR)([+a-f-v],1),S=oe[0]),Z==="l"&&(de=(0,Y.CR)(H===0?[h+g,+i-h-g]:[0,+i],2),x=de[0],T=de[1])});var C=(0,Y.CR)(jr(l),4),W=C[0],U=C[1],J=C[2],te=C[3],ie=(0,Y.CR)([te+U,W+J],2),ae=ie[0],ve=ie[1];return new Zr(x+te,O+W,T-ae,S-ve)},e.prototype.getBBox=function(){return this.title?this.title.getBBox():new Zr(0,0,0,0)},e.prototype.render=function(t,n){var i=this,a=t.width,s=t.height,o=t.position,l=t.spacing,u=(0,Y._T)(t,["width","height","position","spacing"]),c=(0,Y.CR)(Os(u),1),h=c[0],f=zj(t),d=f.x,v=f.y,g=f.textAlign,p=f.textBaseline;Gi(!!u.text,Mt(n),function(m){i.title=m.maybeAppendByClassName(hS.text,"text").styles(h).call(Bj,{x:d,y:v,textAlign:g,textBaseline:p}).node()})},e}(or),Km=function(){};function ca(r,e){return pt(r)?r.apply(void 0,(0,Y.ev)([],(0,Y.CR)(e),!1)):r}function jj(r,e){return r.reduce(function(t,n){return(t[n[e]]=t[n[e]]||[]).push(n),t},{})}function Gj(r){return typeof r=="boolean"?!1:"enter"in r&&"update"in r&&"exit"in r}function fS(r){if(!r)return{enter:!1,update:!1,exit:!1};var e=["enter","update","exit"],t=Object.fromEntries(Object.entries(r).filter(function(n){var i=(0,Y.CR)(n,1),a=i[0];return!e.includes(a)}));return Object.fromEntries(e.map(function(n){return Gj(r)?r[n]===!1?[n,!1]:[n,(0,Y.pi)((0,Y.pi)({},r[n]),t)]:[n,t]}))}function su(r,e){r?r.finished.then(e):e()}function Hj(r,e){r.length===0?e():Promise.all(r.map(function(t){return t==null?void 0:t.finished})).then(e)}function dS(r,e){"update"in r?r.update(e):r.attr(e)}function vS(r,e,t){if(e.length===0)return null;if(!t){var n=e.slice(-1)[0];return dS(r,{style:n}),null}return r.animate(e,t)}function Xj(r,e){return!(r.nodeName!=="text"||e.nodeName!=="text"||r.attributes.text!==e.attributes.text)}function Wj(r,e,t,n){if(n===void 0&&(n="destroy"),Xj(r,e))return r.remove(),[null];var i=function(){n==="destroy"?r.destroy():n==="hide"&&Da(r),e.isVisible()&&Fc(e)};if(!t)return i(),[null];var a=t.duration,s=a===void 0?0:a,o=t.delay,l=o===void 0?0:o,u=Math.ceil(+s/2),c=+s/4,h=(0,Y.CR)(r.getGeometryBounds().center,2),f=h[0],d=h[1],v=(0,Y.CR)(e.getGeometryBounds().center,2),g=v[0],p=v[1],m=(0,Y.CR)([(f+g)/2-f,(d+p)/2-d],2),b=m[0],x=m[1],O=r.style.opacity,T=O===void 0?1:O,S=e.style.opacity,k=S===void 0?1:S,C=r.style.transform||"",W=e.style.transform||"",U=r.animate([{opacity:T,transform:"translate(0, 0) ".concat(C)},{opacity:0,transform:"translate(".concat(b,", ").concat(x,") ").concat(C)}],(0,Y.pi)((0,Y.pi)({fill:"both"},t),{duration:l+u+c})),J=e.animate([{opacity:0,transform:"translate(".concat(-b,", ").concat(-x,") ").concat(W),offset:.01},{opacity:k,transform:"translate(0, 0) ".concat(W)}],(0,Y.pi)((0,Y.pi)({fill:"both"},t),{duration:u+c,delay:l+u-c}));return su(J,i),[U,J]}function Ba(r,e,t){var n={},i={};return Object.entries(e).forEach(function(a){var s=(0,Y.CR)(a,2),o=s[0],l=s[1];if(!vt(l)){var u=r.style[o]||r.parsedStyle[o]||0;u!==l&&(n[o]=u,i[o]=l)}}),t?vS(r,[n,i],(0,Y.pi)({fill:"both"},t)):(dS(r,i),null)}function Vj(r){var e;return((e=r[0])===null||e===void 0?void 0:e.map(function(t,n){return r.map(function(i){return i[n]})}))||[]}function Qm(r,e,t){t===void 0&&(t=!1);var n=r.getBBox(),i=n.width,a=n.height,s=e/Math.max(i,a);return t&&(r.style.transform="scale(".concat(s,")")),s}var gS=function(r,e,t){return[["M",r-t,e],["A",t,t,0,1,0,r+t,e],["A",t,t,0,1,0,r-t,e],["Z"]]},Yj=gS,Uj=function(r,e,t){return[["M",r-t,e-t],["L",r+t,e-t],["L",r+t,e+t],["L",r-t,e+t],["Z"]]},Zj=function(r,e,t){return[["M",r-t,e],["L",r,e-t],["L",r+t,e],["L",r,e+t],["Z"]]},Kj=function(r,e,t){var n=t*Math.sin(.3333333333333333*Math.PI);return[["M",r-t,e+n],["L",r,e-n],["L",r+t,e+n],["Z"]]},Qj=function(r,e,t){var n=t*Math.sin(.3333333333333333*Math.PI);return[["M",r-t,e-n],["L",r+t,e-n],["L",r,e+n],["Z"]]},Jj=function(r,e,t){var n=t/2*Math.sqrt(3);return[["M",r,e-t],["L",r+n,e-t/2],["L",r+n,e+t/2],["L",r,e+t],["L",r-n,e+t/2],["L",r-n,e-t/2],["Z"]]},qj=function(r,e,t){var n=t-1.5;return[["M",r-t,e-n],["L",r+t,e+n],["L",r+t,e-n],["L",r-t,e+n],["Z"]]},pS=function(r,e,t){return[["M",r,e+t],["L",r,e-t]]},$j=function(r,e,t){return[["M",r-t,e-t],["L",r+t,e+t],["M",r+t,e-t],["L",r-t,e+t]]},eG=function(r,e,t){return[["M",r-t/2,e-t],["L",r+t/2,e-t],["M",r,e-t],["L",r,e+t],["M",r-t/2,e+t],["L",r+t/2,e+t]]},tG=function(r,e,t){return[["M",r-t,e],["L",r+t,e],["M",r,e-t],["L",r,e+t]]},nG=function(r,e,t){return[["M",r-t,e],["L",r+t,e]]},mS=function(r,e,t){return[["M",r-t,e],["L",r+t,e]]},rG=mS,iG=function(r,e,t){return[["M",r-t,e],["A",t/2,t/2,0,1,1,r,e],["A",t/2,t/2,0,1,0,r+t,e]]},aG=function(r,e,t){return[["M",r-t-1,e-2.5],["L",r,e-2.5],["L",r,e+2.5],["L",r+t+1,e+2.5]]},sG=function(r,e,t){return[["M",r-t-1,e+2.5],["L",r,e+2.5],["L",r,e-2.5],["L",r+t+1,e-2.5]]},oG=function(r,e,t){return[["M",r-(t+1),e+2.5],["L",r-t/2,e+2.5],["L",r-t/2,e-2.5],["L",r+t/2,e-2.5],["L",r+t/2,e+2.5],["L",r+t+1,e+2.5]]};function lG(r,e){return[["M",r-5,e+2.5],["L",r-5,e],["L",r,e],["L",r,e-3],["L",r,e+3],["L",r+6.5,e+3]]}var uG=function(r,e,t){return[["M",r-t,e-t],["L",r+t,e],["L",r-t,e+t],["Z"]]},ha=Ia({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"),cG=function(r){(0,Y.ZT)(e,r);function e(t){var n=r.call(this,t,{x:0,y:0,animate:{easing:"linear",duration:200,fill:"both"},buttonCursor:"pointer",buttonFill:"black",buttonD:uG(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 n.playState="idle",n.contentGroup=n.appendChild(new ji({class:ha.contentGroup.name})),n.playWindow=n.contentGroup.appendChild(new ji({class:ha.playWindow.name})),n.innerCurrPage=n.defaultPage,n}return Object.defineProperty(e.prototype,"defaultPage",{get:function(){var t=this.attributes.defaultPage;return on(t,0,Math.max(this.pageViews.length-1,0))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"pageViews",{get:function(){return this.playWindow.children},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"controllerShape",{get:function(){return this.totalPages>1?{width:55,height:0}:{width:0,height:0}},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"pageShape",{get:function(){var t=this.pageViews,n=(0,Y.CR)(Vj(t.map(function(h){var f=h.getBBox(),d=f.width,v=f.height;return[d,v]})).map(function(h){return Math.max.apply(Math,(0,Y.ev)([],(0,Y.CR)(h),!1))}),2),i=n[0],a=n[1],s=this.attributes,o=s.pageWidth,l=o===void 0?i:o,u=s.pageHeight,c=u===void 0?a:u;return{pageWidth:l,pageHeight:c}},enumerable:!1,configurable:!0}),e.prototype.getContainer=function(){return this.playWindow},Object.defineProperty(e.prototype,"totalPages",{get:function(){return this.pageViews.length},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currPage",{get:function(){return this.innerCurrPage},enumerable:!1,configurable:!0}),e.prototype.getBBox=function(){var t=r.prototype.getBBox.call(this),n=t.x,i=t.y,a=this.controllerShape,s=this.pageShape,o=s.pageWidth,l=s.pageHeight;return new Zr(n,i,o+a.width,l)},e.prototype.goTo=function(t){var n=this,i=this.attributes.animate,a=this,s=a.currPage,o=a.playState,l=a.playWindow,u=a.pageViews;if(o!=="idle"||t<0||u.length<=0||t>=u.length)return null;u[s].setLocalPosition(0,0),this.prepareFollowingPage(t);var c=(0,Y.CR)(this.getFollowingPageDiff(t),2),h=c[0],f=c[1];this.playState="running";var d=vS(l,[{transform:"translate(0, 0)"},{transform:"translate(".concat(-h,", ").concat(-f,")")}],i);return su(d,function(){n.innerCurrPage=t,n.playState="idle",n.setVisiblePages([t]),n.updatePageInfo()}),d},e.prototype.prev=function(){var t=this.attributes.loop,n=this.pageViews.length,i=this.currPage;if(!t&&i<=0)return null;var a=t?(i-1+n)%n:on(i-1,0,n);return this.goTo(a)},e.prototype.next=function(){var t=this.attributes.loop,n=this.pageViews.length,i=this.currPage;if(!t&&i>=n-1)return null;var a=t?(i+1)%n:on(i+1,0,n);return this.goTo(a)},e.prototype.renderClipPath=function(t){var n=this.pageShape,i=n.pageWidth,a=n.pageHeight;if(!i||!a){this.contentGroup.style.clipPath=void 0;return}this.clipPath=t.maybeAppendByClassName(ha.clipPath,"rect").styles({width:i,height:a}),this.contentGroup.attr("clipPath",this.clipPath.node())},e.prototype.setVisiblePages=function(t){this.playWindow.children.forEach(function(n,i){t.includes(i)?Fc(n):Da(n)})},e.prototype.adjustControllerLayout=function(){var t=this,n=t.prevBtnGroup,i=t.nextBtnGroup,a=t.pageInfoGroup,s=this.attributes,o=s.orientation,l=s.controllerPadding,u=a.getBBox(),c=u.width,h=u.height,f=(0,Y.CR)(o==="horizontal"?[-180,0]:[-90,90],2),d=f[0],v=f[1];n.setLocalEulerAngles(d),i.setLocalEulerAngles(v);var g=n.getBBox(),p=g.width,m=g.height,b=i.getBBox(),x=b.width,O=b.height,T=Math.max(p,c,x),S=o==="horizontal"?{offset:[[0,0],[p/2+l,0],[p+c+l*2,0]],textAlign:"start"}:{offset:[[T/2,-m-l],[T/2,0],[T/2,O+l]],textAlign:"center"},k=(0,Y.CR)(S.offset,3),C=(0,Y.CR)(k[0],2),W=C[0],U=C[1],J=(0,Y.CR)(k[1],2),te=J[0],ie=J[1],ae=(0,Y.CR)(k[2],2),ve=ae[0],Z=ae[1],H=S.textAlign,X=a.querySelector("text");X&&(X.style.textAlign=H),n.setLocalPosition(W,U),a.setLocalPosition(te,ie),i.setLocalPosition(ve,Z)},e.prototype.updatePageInfo=function(){var t,n=this,i=n.currPage,a=n.pageViews,s=n.attributes.formatter;a.length<2||((t=this.pageInfoGroup.querySelector(ha.pageInfo.class))===null||t===void 0||t.attr("text",s(i+1,a.length)),this.adjustControllerLayout())},e.prototype.getFollowingPageDiff=function(t){var n=this.currPage;if(n===t)return[0,0];var i=this.attributes.orientation,a=this.pageShape,s=a.pageWidth,o=a.pageHeight,l=t=2,u=t.maybeAppendByClassName(ha.controller,"g");if(Sv(u.node(),l),!!l){var c=zt(this.attributes,"button"),h=zt(this.attributes,"pageNum"),f=(0,Y.CR)(Os(c),2),d=f[0],v=f[1],g=d.size,p=(0,Y._T)(d,["size"]),m=!u.select(ha.prevBtnGroup.class).node(),b=u.maybeAppendByClassName(ha.prevBtnGroup,"g").styles(v);this.prevBtnGroup=b.node();var x=b.maybeAppendByClassName(ha.prevBtn,"path"),O=u.maybeAppendByClassName(ha.nextBtnGroup,"g").styles(v);this.nextBtnGroup=O.node();var T=O.maybeAppendByClassName(ha.nextBtn,"path");[x,T].forEach(function(k){k.styles((0,Y.pi)((0,Y.pi)({},p),{transformOrigin:"center"})),Qm(k.node(),g,!0)});var S=u.maybeAppendByClassName(ha.pageInfoGroup,"g");this.pageInfoGroup=S.node(),S.maybeAppendByClassName(ha.pageInfo,"text").styles(h),this.updatePageInfo(),u.node().setLocalPosition(s+i,o/2),m&&(this.prevBtnGroup.addEventListener("click",function(){n.prev()}),this.nextBtnGroup.addEventListener("click",function(){n.next()}))}},e.prototype.render=function(t,n){var i=t.x,a=i===void 0?0:i,s=t.y,o=s===void 0?0:s;this.attr("transform","translate(".concat(a,", ").concat(o,")"));var l=Mt(n);this.renderClipPath(l),this.renderController(l),this.setVisiblePages([this.defaultPage]),this.goTo(this.defaultPage)},e.prototype.bindEvents=function(){var t=this,n=mc(function(){return t.render(t.attributes,t)},50);this.playWindow.addEventListener(sr.INSERTED,n),this.playWindow.addEventListener(sr.REMOVED,n)},e}(or);function hG(r){var e="default";if(nr(r)&&r instanceof Image)e="image";else if(pt(r))e="symbol";else if(Xt(r)){var t=new RegExp("data:(image|text)");r.match(t)?e="base64":/^(https?:\/\/(([a-zA-Z0-9]+-?)+[a-zA-Z0-9]+\.)+[a-zA-Z]+)(:\d+)?(\/.*)?(\?.*)?(#.*)?$/.test(r)?e="url":e="symbol"}return e}function fG(r){var e=hG(r);return["base64","url","image"].includes(e)?"image":r&&e==="symbol"?"path":null}var Nn=function(r){(0,Y.ZT)(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.render=function(t,n){var i=t.x,a=i===void 0?0:i,s=t.y,o=s===void 0?0:s,l=this.getSubShapeStyle(t),u=l.symbol,c=l.size,h=c===void 0?16:c,f=(0,Y._T)(l,["symbol","size"]),d=fG(u);Gi(!!d,Mt(n),function(v){v.maybeAppendByClassName("marker",d).attr("className","marker ".concat(d,"-marker")).call(function(g){if(d==="image"){var p=h*2;g.styles({img:u,width:p,height:p,x:a-h,y:o-h})}else{var p=h/2,m=pt(u)?u:e.getSymbol(u);g.styles((0,Y.pi)({d:m==null?void 0:m(a,o,p)},f))}})})},e.MARKER_SYMBOL_MAP=new Map,e.registerSymbol=function(t,n){e.MARKER_SYMBOL_MAP.set(t,n)},e.getSymbol=function(t){return e.MARKER_SYMBOL_MAP.get(t)},e.getSymbols=function(){return Array.from(e.MARKER_SYMBOL_MAP.keys())},e}(or);Nn.registerSymbol("cross",$j),Nn.registerSymbol("hyphen",nG),Nn.registerSymbol("line",pS),Nn.registerSymbol("plus",tG),Nn.registerSymbol("tick",eG),Nn.registerSymbol("circle",gS),Nn.registerSymbol("point",Yj),Nn.registerSymbol("bowtie",qj),Nn.registerSymbol("hexagon",Jj),Nn.registerSymbol("square",Uj),Nn.registerSymbol("diamond",Zj),Nn.registerSymbol("triangle",Kj),Nn.registerSymbol("triangle-down",Qj),Nn.registerSymbol("line",pS),Nn.registerSymbol("dot",mS),Nn.registerSymbol("dash",rG),Nn.registerSymbol("smooth",iG),Nn.registerSymbol("hv",aG),Nn.registerSymbol("vh",sG),Nn.registerSymbol("hvh",oG),Nn.registerSymbol("vhv",lG);function mq(r,e,t){var n=Math.round((r-t)/e);return t+n*e}function dG(r,e,t){var n=1.4,i=n*t;return[["M",r-t,e-i],["L",r+t,e-i],["L",r+t,e+i],["L",r-t,e+i],["Z"]]}var yS=1.4,bS=.4;function vG(r,e,t){var n=t,i=n*yS,a=n/2,s=n/6,o=r+i*bS;return[["M",r,e],["L",o,e+a],["L",r+i,e+a],["L",r+i,e-a],["L",o,e-a],["Z"],["M",o,e+s],["L",r+i-2,e+s],["M",o,e-s],["L",r+i-2,e-s]]}function gG(r,e,t){var n=t,i=n*yS,a=n/2,s=n/6,o=e+i*bS;return[["M",r,e],["L",r-a,o],["L",r-a,e+i],["L",r+a,e+i],["L",r+a,o],["Z"],["M",r-s,o],["L",r-s,e+i-2],["M",r+s,o],["L",r+s,e+i-2]]}Nn.registerSymbol("hiddenHandle",dG),Nn.registerSymbol("verticalHandle",vG),Nn.registerSymbol("horizontalHandle",gG);var yq=function(r,e,t){return r===void 0&&(r="horizontal"),r==="horizontal"?e:t};function bq(r,e,t,n){var i;n===void 0&&(n=4);var a=__read(r,2),s=a[0],o=a[1],l=__read(e,2),u=l[0],c=l[1],h=__read(t,2),f=h[0],d=h[1],v=__read([u,c],2),g=v[0],p=v[1],m=p-g;return g>p&&(i=__read([p,g],2),g=i[0],p=i[1]),m>o-s?[s,o]:go?d===o&&f===g?[g,o]:[o-m,o]:[g,p]}function Jm(r,e,t){return r===void 0&&(r="horizontal"),r==="horizontal"?e:t}function xq(r){var e=r&&r.getRenderBounds();if(!e)return{width:0,height:0};var t=e.getMax(),n=e.getMin();return{width:t[0]-n[0],height:t[1]-n[1]}}function xS(r){var e=r.getLocalBounds(),t=e.min,n=e.max,i=(0,Y.CR)([t,n],2),a=(0,Y.CR)(i[0],2),s=a[0],o=a[1],l=(0,Y.CR)(i[1],2),u=l[0],c=l[1];return{x:s,y:o,width:u-s,height:c-o,left:s,bottom:c,top:o,right:u}}function Eq(r,e){var t=select(r).append("text").node();return t.attr(__assign(__assign({},e),{visibility:"hidden"})),t}function pG(r,e){var t=(0,Y.CR)(r,2),n=t[0],i=t[1],a=(0,Y.CR)(e,2),s=a[0],o=a[1];return n!==s&&i===o}function wq(r,e){var t=__read(r,2),n=t[0],i=t[1],a=__read(e,2),s=a[0],o=a[1];return n===s&&i!==o}function mG(r,e){var t,n,i=e.attributes;try{for(var a=(0,Y.XA)(Object.entries(i)),s=a.next();!s.done;s=a.next()){var o=(0,Y.CR)(s.value,2),l=o[0],u=o[1];l!=="id"&&l!=="className"&&r.attr(l,u)}}catch(c){t={error:c}}finally{try{s&&!s.done&&(n=a.return)&&n.call(a)}finally{if(t)throw t.error}}}function ks(r){return typeof r=="function"?r():Xt(r)||ht(r)?new Zm({style:{text:String(r)}}):r}var Ov,qm;function Pq(r){qm=r}var yG=tm(function(r,e){var t=e.fontSize,n=e.fontFamily,i=e.fontWeight,a=e.fontStyle,s=e.fontVariant;return qm?qm(r,t):(Ov||(Ov=it.offscreenCanvasCreator.getOrCreateContext(void 0)),Ov.font=[a,s,i,"".concat(t,"px"),n].join(" "),Ov.measureText(r).width)},function(r,e){return[r,Object.values(e||ES(r)).join()].join("")},4096),ES=function(r){var e=r.style.fontFamily||"sans-serif",t=r.style.fontWeight||"normal",n=r.style.fontStyle||"normal",i=r.style.fontVariant,a=r.style.fontSize;return a=typeof a=="object"?a.value:a,{fontSize:a,fontFamily:e,fontWeight:t,fontStyle:n,fontVariant:i}};function wS(r){return r.nodeName==="text"?r:r.nodeName==="g"&&r.children.length===1&&r.children[0].nodeName==="text"?r.children[0]:null}function PS(r,e){var t=wS(r);t&&t.attr(e)}function $m(r,e,t){t===void 0&&(t="..."),PS(r,{wordWrap:!0,wordWrapWidth:e,maxLines:1,textOverflow:t})}var Hi=Ia({layout:"flex",markerGroup:"marker-group",marker:"marker",labelGroup:"label-group",label:"label",valueGroup:"value-group",value:"value",backgroundGroup:"background-group",background:"background"},"legend-category-item");function bG(r){var e=r.querySelector(Hi.marker.class);return e?e.style:{}}var xG=function(r){(0,Y.ZT)(e,r);function e(t){return r.call(this,t,{span:[1,1],marker:function(){return new Im({style:{r:6}})},markerSize:10,labelFill:"#646464",valueFill:"#646464",labelFontSize:12,valueFontSize:12,labelTextBaseline:"middle",valueTextBaseline:"middle"})||this}return Object.defineProperty(e.prototype,"showValue",{get:function(){var t=this.attributes.valueText;return t?typeof t=="string"||typeof t=="number"?t!=="":typeof t=="function"?!0:t.attr("text")!=="":!1},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"actualSpace",{get:function(){var t=this.labelGroup,n=this.valueGroup,i=this.attributes.markerSize,a=t.node().getBBox(),s=a.width,o=a.height,l=n.node().getBBox(),u=l.width,c=l.height;return{markerWidth:i,labelWidth:s,valueWidth:u,height:Math.max(i,o,c)}},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"span",{get:function(){var t=this.attributes.span;if(!t)return[1,1];var n=(0,Y.CR)(jr(t),2),i=n[0],a=n[1],s=this.showValue?a:0,o=i+s;return[i/o,s/o]},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"shape",{get:function(){var t,n=this.attributes,i=n.markerSize,a=n.width,s=this.actualSpace,o=s.markerWidth,l=s.height,u=this.actualSpace,c=u.labelWidth,h=u.valueWidth,f=(0,Y.CR)(this.spacing,2),d=f[0],v=f[1];if(a){var g=a-i-d-v,p=(0,Y.CR)(this.span,2),m=p[0],b=p[1];t=(0,Y.CR)([m*g,b*g],2),c=t[0],h=t[1]}var x=o+c+h+d+v;return{width:x,height:l,markerWidth:o,labelWidth:c,valueWidth:h}},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"spacing",{get:function(){var t=this.attributes.spacing;if(!t)return[0,0];var n=(0,Y.CR)(jr(t),2),i=n[0],a=n[1];return this.showValue?[i,a]:[i,0]},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"layout",{get:function(){var t=this.shape,n=t.markerWidth,i=t.labelWidth,a=t.valueWidth,s=t.width,o=t.height,l=(0,Y.CR)(this.spacing,2),u=l[0],c=l[1];return{height:o,width:s,markerWidth:n,labelWidth:i,valueWidth:a,position:[n/2,n+u,n+i+u+c]}},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"scaleSize",{get:function(){var t=bG(this.markerGroup.node()),n=this.attributes,i=n.markerSize,a=n.markerStrokeWidth,s=a===void 0?t.strokeWidth:a,o=n.markerLineWidth,l=o===void 0?t.lineWidth:o,u=n.markerStroke,c=u===void 0?t.stroke:u,h=+(s||l||(c?1:0))*Math.sqrt(2),f=this.markerGroup.node().getBBox(),d=f.width,v=f.height;return(1-h/Math.max(d,v))*i},enumerable:!1,configurable:!0}),e.prototype.renderMarker=function(t){var n=this,i=this.attributes.marker,a=zt(this.attributes,"marker");this.markerGroup=t.maybeAppendByClassName(Hi.markerGroup,"g").style("zIndex",0),Gi(!!i,this.markerGroup,function(){var s,o=n.markerGroup.node(),l=(s=o.childNodes)===null||s===void 0?void 0:s[0],u=typeof i=="string"?new Nn({style:{symbol:i},className:Hi.marker.name}):i();l?u.nodeName===l.nodeName?l instanceof Nn?l.update((0,Y.pi)((0,Y.pi)({},a),{symbol:i})):(mG(l,u),Mt(l).styles(a)):(l.remove(),Mt(u).attr("className",Hi.marker.name).styles(a),o.appendChild(u)):(u instanceof Nn||Mt(u).attr("className",Hi.marker.name).styles(a),o.appendChild(u)),n.markerGroup.node().scale(1/n.markerGroup.node().getScale()[0]);var c=Qm(n.markerGroup.node(),n.scaleSize,!0);n.markerGroup.node().style._transform="scale(".concat(c,")")})},e.prototype.renderLabel=function(t){var n=zt(this.attributes,"label"),i=n.text,a=(0,Y._T)(n,["text"]);this.labelGroup=t.maybeAppendByClassName(Hi.labelGroup,"g").style("zIndex",0),this.labelGroup.maybeAppendByClassName(Hi.label,function(){return ks(i)}).styles(a)},e.prototype.renderValue=function(t){var n=this,i=zt(this.attributes,"value"),a=i.text,s=(0,Y._T)(i,["text"]);this.valueGroup=t.maybeAppendByClassName(Hi.valueGroup,"g").style("zIndex",0),Gi(this.showValue,this.valueGroup,function(){n.valueGroup.maybeAppendByClassName(Hi.value,function(){return ks(a)}).styles(s)})},e.prototype.renderBackground=function(t){var n=this.shape,i=n.width,a=n.height,s=zt(this.attributes,"background");this.background=t.maybeAppendByClassName(Hi.backgroundGroup,"g").style("zIndex",-1),this.background.maybeAppendByClassName(Hi.background,"rect").styles((0,Y.pi)({width:i,height:a},s))},e.prototype.adjustLayout=function(){var t=this.layout,n=t.labelWidth,i=t.valueWidth,a=t.height,s=(0,Y.CR)(t.position,3),o=s[0],l=s[1],u=s[2],c=a/2;this.markerGroup.styles({transform:"translate(".concat(o,", ").concat(c,")").concat(this.markerGroup.node().style._transform)}),this.labelGroup.styles({transform:"translate(".concat(l,", ").concat(c,")")}),$m(this.labelGroup.select(Hi.label.class).node(),Math.ceil(n)),this.showValue&&(this.valueGroup.styles({transform:"translate(".concat(u,", ").concat(c,")")}),$m(this.valueGroup.select(Hi.value.class).node(),Math.ceil(i)))},e.prototype.render=function(t,n){var i=Mt(n),a=t.x,s=a===void 0?0:a,o=t.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.adjustLayout()},e}(or),nl=Ia({page:"item-page",navigator:"navigator",item:"item"},"items"),MS=function(r,e,t){return t===void 0&&(t=!0),r?e(r):t},EG=function(r){(0,Y.ZT)(e,r);function e(t){var n=r.call(this,t,{data:[],gridRow:1/0,gridCol:void 0,padding:0,width:1e3,height:100,rowPadding:0,colPadding:0,layout:"flex",orientation:"horizontal",click:Km,mouseenter:Km,mouseleave:Km})||this;return n.navigatorShape=[0,0],n}return Object.defineProperty(e.prototype,"pageViews",{get:function(){return this.navigator.getContainer()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"grid",{get:function(){var t=this.attributes,n=t.gridRow,i=t.gridCol,a=t.data;if(!n&&!i)throw new Error("gridRow and gridCol can not be set null at the same time");return n&&i?[n,i]:n?[n,a.length]:[a.length,i]},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"renderData",{get:function(){var t=this.attributes,n=t.data,i=t.layout,a=zt(this.attributes,"item"),s=n.map(function(o,l){var u=o.id,c=u===void 0?l:u,h=o.label,f=o.value;return{id:"".concat(c),index:l,style:(0,Y.pi)({layout:i,labelText:h,valueText:f},Object.fromEntries(Object.entries(a).map(function(d){var v=(0,Y.CR)(d,2),g=v[0],p=v[1];return[g,ca(p,[o,l,n])]})))}});return s},enumerable:!1,configurable:!0}),e.prototype.getGridLayout=function(){var t=this,n=this.attributes,i=n.orientation,a=n.width,s=n.rowPadding,o=n.colPadding,l=(0,Y.CR)(this.navigatorShape,1),u=l[0],c=(0,Y.CR)(this.grid,2),h=c[0],f=c[1],d=f*h,v=0;return this.pageViews.children.map(function(g,p){var m,b,x=Math.floor(p/d),O=p%d,T=t.ifHorizontal(f,h),S=[Math.floor(O/T),O%T];i==="vertical"&&S.reverse();var k=(0,Y.CR)(S,2),C=k[0],W=k[1],U=(a-u-(f-1)*o)/f,J=g.getBBox().height,te=(0,Y.CR)([0,0],2),ie=te[0],ae=te[1];return i==="horizontal"?(m=(0,Y.CR)([v,C*(J+s)],2),ie=m[0],ae=m[1],v=W===f-1?0:v+U+o):(b=(0,Y.CR)([W*(U+o),v],2),ie=b[0],ae=b[1],v=C===h-1?0:v+J+s),{page:x,index:p,row:C,col:W,pageIndex:O,width:U,height:J,x:ie,y:ae}})},e.prototype.getFlexLayout=function(){var t=this.attributes,n=t.width,i=t.height,a=t.rowPadding,s=t.colPadding,o=(0,Y.CR)(this.navigatorShape,1),l=o[0],u=(0,Y.CR)(this.grid,2),c=u[0],h=u[1],f=(0,Y.CR)([n-l,i],2),d=f[0],v=f[1],g=(0,Y.CR)([0,0,0,0,0,0,0,0],8),p=g[0],m=g[1],b=g[2],x=g[3],O=g[4],T=g[5],S=g[6],k=g[7];return this.pageViews.children.map(function(C,W){var U,J,te,ie,ae=C.getBBox(),ve=ae.width,Z=ae.height,H=S===0?0:s,X=S+H+ve;if(X<=d&&MS(O,function(oe){return oe0?(this.navigatorShape=[55,0],t.call(this)):n},enumerable:!1,configurable:!0}),e.prototype.ifHorizontal=function(t,n){var i=this.attributes.orientation;return Jm(i,t,n)},e.prototype.flattenPage=function(t){t.querySelectorAll(nl.item.class).forEach(function(n){t.appendChild(n)}),t.querySelectorAll(nl.page.class).forEach(function(n){var i=t.removeChild(n);i.destroy()})},e.prototype.renderItems=function(t){var n=this.attributes,i=n.click,a=n.mouseenter,s=n.mouseleave;this.flattenPage(t);var o=this.dispatchCustomEvent.bind(this);Mt(t).selectAll(nl.item.class).data(this.renderData,function(l){return l.id}).join(function(l){return l.append(function(u){var c=u.style;return new xG({style:c})}).attr("className",nl.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(u){var c=u.style;this.update(c)})},function(l){return l.remove()})},e.prototype.relayoutNavigator=function(){var t,n=this.attributes,i=n.layout,a=n.width,s=((t=this.pageViews.children[0])===null||t===void 0?void 0:t.getBBox().height)||0,o=(0,Y.CR)(this.navigatorShape,2),l=o[0],u=o[1];this.navigator.update(i==="grid"?{pageWidth:a-l,pageHeight:s-u}:{})},e.prototype.adjustLayout=function(){var t=this,n=Object.entries(jj(this.itemsLayout,"page")).map(function(a){var s=(0,Y.CR)(a,2),o=s[0],l=s[1];return{page:o,layouts:l}}),i=(0,Y.ev)([],(0,Y.CR)(this.navigator.getContainer().children),!1);n.forEach(function(a){var s=a.layouts,o=t.pageViews.appendChild(new ji({className:nl.page.name}));s.forEach(function(l){var u=l.x,c=l.y,h=l.index,f=l.width,d=l.height,v=i[h];o.appendChild(v),ac(v,"__layout__",l),v.update({x:u,y:c,width:f,height:d})})}),this.relayoutNavigator()},e.prototype.renderNavigator=function(t){var n=this.attributes.orientation,i=zt(this.attributes,"nav"),a=Or({orientation:n},i),s=this;return t.selectAll(nl.navigator.class).data(["nav"]).join(function(o){return o.append(function(){return new cG({style:a})}).attr("className",nl.navigator.name).each(function(){s.navigator=this})},function(o){return o.each(function(){this.update(a)})},function(o){return o.remove()}),this.navigator},e.prototype.getBBox=function(){return this.navigator.getBBox()},e.prototype.render=function(t,n){var i=this.attributes.data;if(!(!i||i.length===0)){var a=this.renderNavigator(Mt(n));this.renderItems(a.getContainer()),this.adjustLayout()}},e.prototype.dispatchCustomEvent=function(t,n){var i=new zi(t,{detail:n});this.dispatchEvent(i)},e}(or),jc=Ia({markerGroup:"marker-group",marker:"marker",labelGroup:"label-group",label:"label"},"handle"),SS={showLabel:!0,formatter:function(r){return r.toString()},markerSize:25,markerStroke:"#c5c5c5",markerFill:"#fff",markerLineWidth:1,labelFontSize:12,labelFill:"#c5c5c5",labelText:"",orientation:"vertical",spacing:0},Mq=function(r){(0,Y.ZT)(e,r);function e(t){return r.call(this,t,SS)||this}return e.prototype.render=function(t,n){var i=Mt(n).maybeAppendByClassName(jc.markerGroup,"g");this.renderMarker(i);var a=Mt(n).maybeAppendByClassName(jc.labelGroup,"g");this.renderLabel(a)},e.prototype.renderMarker=function(t){var n=this,i=this.attributes,a=i.orientation,s=i.markerSymbol,o=s===void 0?Jm(a,"horizontalHandle","verticalHandle"):s;Gi(!!o,t,function(l){var u=zt(n.attributes,"marker"),c=(0,Y.pi)({symbol:o},u);n.marker=l.maybeAppendByClassName(jc.marker,function(){return new Nn({style:c})}).update(c)})},e.prototype.renderLabel=function(t){var n=this,i=this.attributes,a=i.showLabel,s=i.orientation,o=i.spacing,l=o===void 0?0:o,u=i.formatter;Gi(a,t,function(c){var h,f=zt(n.attributes,"label"),d=f.text,v=(0,Y._T)(f,["text"]),g=((h=c.select(jc.marker.class))===null||h===void 0?void 0:h.node().getBBox())||{},p=g.width,m=p===void 0?0:p,b=g.height,x=b===void 0?0:b,O=(0,Y.CR)(Jm(s,[0,x+l,"center","top"],[m+l,0,"start","middle"]),4),T=O[0],S=O[1],k=O[2],C=O[3];c.maybeAppendByClassName(jc.label,"text").styles((0,Y.pi)((0,Y.pi)({},v),{x:T,y:S,text:u(d).toString(),textAlign:k,textBaseline:C}))})},e}(or),TS={showTitle:!0,padding:0,orientation:"horizontal",backgroundFill:"transparent",titleText:"",titleSpacing:4,titlePosition:"top-left",titleFill:"#2C3542",titleFontWeight:"bold",titleFontFamily:"sans-serif",titleFontSize:12},wG=Or({},TS,{}),Sq=Or({},TS,au(SS,"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"}),Tq=.01,Aq=.5,Gc=Ia({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"),PG=function(r){(0,Y.ZT)(e,r);function e(t){return r.call(this,t,wG)||this}return e.prototype.renderTitle=function(t,n,i){var a=this.attributes,s=a.showTitle,o=a.titleText,l=zt(this.attributes,"title"),u=(0,Y.CR)(Os(l),2),c=u[0],h=u[1];this.titleGroup=t.maybeAppendByClassName(Gc.titleGroup,"g").styles(h);var f=(0,Y.pi)((0,Y.pi)({width:n,height:i},c),{text:s?o:""});this.title=this.titleGroup.maybeAppendByClassName(Gc.title,function(){return new Fj({style:f})}).update(f)},e.prototype.renderItems=function(t,n){var i=n.x,a=n.y,s=n.width,o=n.height,l=zt(this.attributes,"title",!0),u=(0,Y.CR)(Os(l),2),c=u[0],h=u[1],f=(0,Y.pi)((0,Y.pi)({},c),{width:s,height:o,x:0,y:0});this.itemsGroup=t.maybeAppendByClassName(Gc.itemsGroup,"g").styles((0,Y.pi)((0,Y.pi)({},h),{transform:"translate(".concat(i,", ").concat(a,")")}));var d=this;this.itemsGroup.selectAll(Gc.items.class).data(["items"]).join(function(v){return v.append(function(){return new EG({style:f})}).attr("className",Gc.items.name).each(function(){d.items=Mt(this)})},function(v){return v.update(f)},function(v){return v.remove()})},e.prototype.adjustLayout=function(){var t=this.attributes.showTitle;if(t){var n=this.title.node().getAvailableSpace(),i=n.x,a=n.y;this.itemsGroup.node().style.transform="translate(".concat(i,", ").concat(a,")")}},Object.defineProperty(e.prototype,"availableSpace",{get:function(){var t=this.attributes,n=t.showTitle,i=t.width,a=t.height;return n?this.title.node().getAvailableSpace():new Zr(0,0,i,a)},enumerable:!1,configurable:!0}),e.prototype.getBBox=function(){var t,n,i=(t=this.title)===null||t===void 0?void 0:t.node(),a=(n=this.items)===null||n===void 0?void 0:n.node();return!i||!a?r.prototype.getBBox.call(this):Ij(i,a)},e.prototype.render=function(t,n){var i=this.attributes,a=i.width,s=i.height,o=i.x,l=o===void 0?0:o,u=i.y,c=u===void 0?0:u,h=Mt(n);n.style.transform="translate(".concat(l,", ").concat(c,")"),this.renderTitle(h,a,s),this.renderItems(h,this.availableSpace),this.adjustLayout()},e}(or);function ey(r){const{width:e,height:t,renderer:n,containerStyle:i}=r,a=MG(r),[s,o]=SG(r);Object.assign(a.style,Object.assign({position:"absolute",left:s+"px",top:o+"px",width:e+"px",height:t+"px"},i));const l=new gp({width:e,height:t,container:a,renderer:n||new Yf});return[a,l]}function MG(r){var e;const{container:t,className:n,graphCanvas:i}=r;if(t)return typeof t=="string"?document.getElementById(t):t;const a=Kl(n,!1);return(e=i.getContainer())===null||e===void 0||e.appendChild(a),a}function SG(r){const{width:e,height:t,placement:n,graphCanvas:i}=r,[a,s]=i.getSize(),[o,l]=wE(n);return[o*(a-e),l*(s-t)]}var TG=function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i{const{graph:n}=this.context;n.on(rt.AFTER_DRAW,this.createElement)},this.changeState=(n,i)=>{const{graph:a}=this.context,{typePrefix:s}=this,o=ii(n,[s,"id"]),l=ii(n,[s,"style","labelText"]),[u]=o.split("__"),c=this.fieldMap[u].get(l)||[];a.setElementState(Object.fromEntries(c==null?void 0:c.map(h=>[h,i])))},this.click=n=>{if(this.options.trigger==="hover")return;const i=ii(n,[this.typePrefix,"id"]);this.selectedItems.includes(i)?(this.selectedItems=this.selectedItems.filter(a=>a!==i),this.changeState(n,[])):(this.selectedItems.push(i),this.changeState(n,"selected"))},this.mouseleave=n=>{this.options.trigger!=="click"&&(this.selectedItems=[],this.changeState(n,[]))},this.mouseenter=n=>{if(this.options.trigger==="click")return;const i=ii(n,[this.typePrefix,"id"]);this.selectedItems.includes(i)?this.selectedItems=this.selectedItems.filter(a=>a!==i):(this.selectedItems.push(i),this.changeState(n,"active"))},this.setFieldMap=(n,i,a)=>{if(!n)return;const s=this.fieldMap[a];if(s)if(!s.has(n))s.set(n,[i]);else{const o=s.get(n);o&&(o.push(i),s.set(n,o))}},this.getEvents=()=>({mouseenter:this.mouseenter,mouseleave:this.mouseleave,click:this.click}),this.getMarkerData=(n,i)=>{if(!n)return[];const{model:a,element:s}=this.context,{nodes:o,edges:l,combos:u}=a.getData(),c={},h=p=>pt(n)?n(p):n,f={node:"circle",edge:"line",combo:"rect"},d={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,m)=>s==null?void 0:s.getElementComputedStyle(p,m),g=(p,m)=>{p.forEach(b=>{const{id:x}=b,O=ii(b,["data",h(b)]),T=(s==null?void 0:s.getElementType(m,b))||"circle",S=v(m,b),k=(m==="edge"?S==null?void 0:S.stroke:S==null?void 0:S.fill)||"#1783ff";x&&O&&O.replace(/\s+/g,"")&&(this.setFieldMap(O,x,m),c[O]||(c[O]={id:`${m}__${x}`,label:O,marker:d[T]||f[m],elementType:m,lineWidth:1,stroke:k,fill:k}))})};switch(i){case"node":g(o,"node");break;case"edge":g(l,"edge");break;case"combo":g(u,"combo");break;default:return[]}return Object.values(c)},this.createElement=()=>{if(this.draw){this.updateElement();return}const n=this.options,{width:i,height:a,nodeField:s,edgeField:o,comboField:l,trigger:u,position:c,container:h,containerStyle:f,className:d}=n,v=TG(n,["width","height","nodeField","edgeField","comboField","trigger","position","container","containerStyle","className"]),g=this.getMarkerData(s,"node"),p=this.getMarkerData(o,"edge"),m=this.getMarkerData(l,"combo"),b=[...g,...m,...p],x=Object.assign({width:i,height:a,data:b,itemMarkerLineWidth:({lineWidth:S})=>S,itemMarker:({marker:S})=>S,itemMarkerStroke:({stroke:S})=>S,itemMarkerFill:({fill:S})=>S,gridCol:g.length},v,this.getEvents()),O=new PG({className:"legend",style:x});this.category=O,this.upsertCanvas().appendChild(O),this.draw=!0},this.bindEvents()}update(e){super.update(e),this.clear(),this.createElement()}clear(){var e,t;(e=this.canvas)===null||e===void 0||e.destroy(),(t=this.container)===null||t===void 0||t.remove(),this.canvas=void 0,this.container=void 0,this.draw=!1}updateElement(){this.category&&this.category.update({itemMarkerOpacity:({id:e})=>!this.selectedItems.length||this.selectedItems.includes(e)?1:.5,itemLabelOpacity:({id:e})=>!this.selectedItems.length||this.selectedItems.includes(e)?1:.5})}upsertCanvas(){if(this.canvas)return this.canvas;const e=this.context.canvas,[t,n]=e.getSize(),{width:i=t,height:a=n,position:s,container:o,containerStyle:l,className:u}=this.options,[c,h]=ey({width:i,height:a,graphCanvas:e,container:o,containerStyle:l,placement:s,className:"legend"});return this.container=c,u&&c.classList.add(u),this.canvas=h,this.canvas}destroy(){this.clear(),this.context.graph.off(rt.AFTER_DRAW,this.createElement),super.destroy()}}kv.defaultOptions={position:"bottom",trigger:"hover",orientation:"horizontal",layout:"flex",itemSpacing:4,rowPadding:10,colPadding:10,itemMarkerSize:16,itemLabelFontSize:16,width:240,height:160};class Cv extends Fr{constructor(e,t){super(e,Object.assign({},Cv.defaultOptions,t)),this.onDraw=n=>{var i;!((i=n==null?void 0:n.data)===null||i===void 0)&&i.render||this.onRender()},this.shapes=new Map,this.landmarkMap=new Map,this.mask=null,this.isMaskDragging=!1,this.onMaskDragStart=n=>{this.mask&&(this.isMaskDragging=!0,this.mask.setPointerCapture(n.pointerId),this.mask.addEventListener("pointermove",this.onMaskDrag),this.mask.addEventListener("pointerup",this.onMaskDragEnd),this.mask.addEventListener("pointercancel",this.onMaskDragEnd))},this.onMaskDrag=n=>{if(!this.mask||!this.isMaskDragging)return;const{size:[i,a]}=this.options,{movementX:s,movementY:o}=n,{left:l,top:u,width:c,height:h}=this.mask.style,[,,f,d]=this.maskBBox;let v=parseInt(l)+s,g=parseInt(u)+o,p=parseInt(c),m=parseInt(h);v<0&&(v=0),g<0&&(g=0),v+p>i&&(v=co(i-p,0)),g+m>a&&(g=co(a-m,0)),p0?(v=co(v-s,0),p=uo(p+s,i)):s<0&&(p=uo(p-s,i))),m0?(g=co(g-o,0),m=uo(m+o,a)):o<0&&(m=uo(m-o,a))),Object.assign(this.mask.style,{left:v+"px",top:g+"px",width:p+"px",height:m+"px"});const b=parseInt(l)-v,x=parseInt(u)-g;if(b===0&&x===0)return;const O=this.context.canvas.getCamera().getZoom(),T=this.canvas.getCamera().getZoom(),S=O/T;this.context.graph.translateBy([b*S,x*S],!1)},this.onMaskDragEnd=n=>{this.mask&&(this.isMaskDragging=!1,this.mask.releasePointerCapture(n.pointerId),this.mask.removeEventListener("pointermove",this.onMaskDrag),this.mask.removeEventListener("pointerup",this.onMaskDragEnd),this.mask.removeEventListener("pointercancel",this.onMaskDragEnd))},this.onTransform=Ax(()=>{this.isMaskDragging||(this.updateMask(),this.setCamera())},32,{leading:!0}),this.setOnRender(),this.bindEvents()}update(e){this.unbindEvents(),super.update(e),"delay"in e&&this.setOnRender(),this.bindEvents()}setOnRender(){this.onRender=mc(()=>{this.renderMinimap(),this.renderMask()},this.options.delay,!0)}bindEvents(){const{graph:e}=this.context;e.on(rt.AFTER_DRAW,this.onDraw),e.on(rt.AFTER_RENDER,this.onRender),e.on(rt.AFTER_TRANSFORM,this.onTransform)}unbindEvents(){const{graph:e}=this.context;e.off(rt.AFTER_DRAW,this.onDraw),e.off(rt.AFTER_RENDER,this.onRender),e.off(rt.AFTER_TRANSFORM,this.onTransform)}renderMinimap(){const e=this.getElements(),t=this.initCanvas();this.setShapes(t,e)}getElements(){const{filter:e}=this.options,{model:t}=this.context,n=t.getData();if(!e)return n;const{nodes:i,edges:a,combos:s}=n;return{nodes:i.filter(o=>e(Re(o),"node")),edges:a.filter(o=>e(Re(o),"edge")),combos:s.filter(o=>e(Re(o),"combo"))}}setShapes(e,t){const{nodes:n,edges:i,combos:a}=t,{shape:s}=this.options,{element:o}=this.context;if(s==="key"){const u=new Set,c=h=>{const f=Re(h);u.add(f);const d=o.getElement(f);if(!d)return;const v=d.getShape("key"),g=this.shapes.get(f)||v.cloneNode();g.setPosition(v.getPosition()),d.style.zIndex&&(g.style.zIndex=d.style.zIndex),g.id=d.id,this.shapes.has(f)?Object.entries(v.attributes).forEach(([p,m])=>{g.style[p]!==m&&(g.style[p]=m)}):(e.appendChild(g),this.shapes.set(f,g))};i.forEach(c),a.forEach(c),n.forEach(c),this.shapes.forEach((h,f)=>{u.has(f)||(e.removeChild(h),this.shapes.delete(f))});return}const l=(u,c)=>{const f=o.getElement(u).getPosition();return c.setPosition(f),c};e.removeChildren(),i.forEach(u=>e.appendChild(s(Re(u),"edge"))),a.forEach(u=>{e.appendChild(l(Re(u),s(Re(u),"combo")))}),n.forEach(u=>{e.appendChild(l(Re(u),s(Re(u),"node")))})}initCanvas(){const{renderer:e,size:[t,n]}=this.options;if(this.canvas){const{width:i,height:a}=this.canvas.getConfig();(t!==i||n!==a)&&this.canvas.resize(t,n),e&&this.canvas.setRenderer(e)}else{const{className:i,position:a,container:s,containerStyle:o}=this.options,[l,u]=ey({renderer:e,width:t,height:n,placement:a,className:"minimap",container:s,containerStyle:o,graphCanvas:this.context.canvas});i&&l.classList.add(i),this.container=l,this.canvas=u}return this.setCamera(),this.canvas}createLandmark(e,t,n){const i=`${e.join(",")}-${t.join(",")}-${n}`;if(this.landmarkMap.has(i))return this.landmarkMap.get(i);const s=this.canvas.getCamera().createLandmark(i,{position:e,focalPoint:t,zoom:n});return this.landmarkMap.set(i,s),s}setCamera(){var e;const{canvas:t}=this.context,n=(e=this.canvas)===null||e===void 0?void 0:e.getCamera();if(!n)return;const{size:[i,a],padding:s}=this.options,[o,l,u,c]=Ja(s),{min:h,max:f,center:d}=t.getBounds("elements"),v=f[0]-h[0],g=f[1]-h[1],p=i-c-l,m=a-o-u,b=p/v,x=m/g,O=Math.min(b,x),T=this.createLandmark(d,d,O);n.gotoLandmark(T,0)}get maskBBox(){const{canvas:e}=this.context,t=e.getSize(),n=e.getCanvasByViewport([0,0]),i=e.getCanvasByViewport(t),a=this.canvas.canvas2Viewport(Ta(n)),s=this.canvas.canvas2Viewport(Ta(i)),o=s.x-a.x,l=s.y-a.y;return[a.x,a.y,o,l]}calculateMaskBBox(){const{size:[e,t]}=this.options;let[n,i,a,s]=this.maskBBox;return n<0&&(a=uo(a+n,e),n=0),i<0&&(s=uo(s+i,t),i=0),n+a>e&&(a=co(e-n,0)),i+s>t&&(s=co(t-i,0)),[uo(n,e),uo(i,t),co(a,0),co(s,0)]}renderMask(){const{maskStyle:e}=this.options;this.mask||(this.mask=document.createElement("div"),this.mask.addEventListener("pointerdown",this.onMaskDragStart)),this.container.appendChild(this.mask),Object.assign(this.mask.style,Object.assign(Object.assign({},e),{cursor:"move",position:"absolute",pointerEvents:"auto"})),this.updateMask()}updateMask(){if(!this.mask)return;const[e,t,n,i]=this.calculateMaskBBox();Object.assign(this.mask.style,{top:t+"px",left:e+"px",width:n+"px",height:i+"px"})}destroy(){var e;this.unbindEvents(),this.canvas.destroy(),(e=this.mask)===null||e===void 0||e.remove(),super.destroy()}}Cv.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 uo=(r,e)=>Math.min(r,e),co=(r,e)=>Math.max(r,e);var ty=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})};const ny={x1:0,y1:0,x2:0,y2:0,visibility:"hidden"};class Nv extends Fr{constructor(e,t){super(e,Object.assign({},Nv.defaultOptions,t)),this.initSnapline=()=>{const n=this.context.canvas.getLayer("transient");this.horizontalLine||(this.horizontalLine=n.appendChild(new Vu({style:Object.assign(Object.assign({},ny),this.options.horizontalLineStyle)}))),this.verticalLine||(this.verticalLine=n.appendChild(new Vu({style:Object.assign(Object.assign({},ny),this.options.verticalLineStyle)})))},this.isHorizontalSticking=!1,this.isVerticalSticking=!1,this.enableStick=!0,this.autoSnapToLine=(n,i,a)=>ty(this,void 0,void 0,function*(){const{verticalX:s,horizontalY:o}=a,{tolerance:l}=this.options,{min:[u,c],max:[h,f],center:[d,v]}=i;let g=0,p=0;s!==null&&(Kr(h,s){const{target:i}=n,a=.5;if(this.isHorizontalSticking||this.isVerticalSticking){const[s,o]=this.getDelta(n);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=(n,i)=>{const{tolerance:a,shape:s}=this.options,{min:[o,l],max:[u,c],center:[h,f]}=i;let d=null,v=null,g=null,p=null,m=null,b=null;return this.getNodes().some(x=>{if(dr(n.id,x.id))return!1;const O=AS(x,s).getRenderBounds(),{min:[T,S],max:[k,C],center:[W,U]}=O;return d===null&&(Kr(W,h){this.initSnapline()},this.onDrag=n=>ty(this,void 0,void 0,function*(){const{target:i}=n;if(this.options.autoSnap&&!this.enableSnap(n))return;const a=AS(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 e;const{filter:t}=this.options,i=(((e=this.context.element)===null||e===void 0?void 0:e.getNodes())||[]).filter(a=>{var s;return D6(a)&&((s=this.context.viewport)===null||s===void 0?void 0:s.isInViewport(a.getRenderBounds()))});return t?i.filter(a=>t(a)):i}hideSnapline(){this.horizontalLine.style.visibility="hidden",this.verticalLine.style.visibility="hidden"}getLineWidth(e){const{lineWidth:t}=this.options[`${e}LineStyle`];return+(t||ny.lineWidth||1)/this.context.graph.getZoom()}updateSnapline(e){const{verticalX:t,verticalMinY:n,verticalMaxY:i,horizontalY:a,horizontalMinX:s,horizontalMaxX:o}=e,[l,u]=this.context.canvas.getSize(),{offset:c}=this.options;a!==null?Object.assign(this.horizontalLine.style,{x1:c===1/0?0:s-c,y1:a,x2:c===1/0?l:o+c,y2:a,visibility:"visible",lineWidth:this.getLineWidth("horizontal")}):this.horizontalLine.style.visibility="hidden",t!==null?Object.assign(this.verticalLine.style,{x1:t,y1:c===1/0?0:n-c,x2:t,y2:c===1/0?u:i+c,visibility:"visible",lineWidth:this.getLineWidth("vertical")}):this.verticalLine.style.visibility="hidden"}getDelta(e){const t=this.context.graph.getZoom();return Sa([e.dx,e.dy],t)}bindEvents(){return ty(this,void 0,void 0,function*(){const{graph:e}=this.context;e.on($i.DRAG_START,this.onDragStart),e.on($i.DRAG,this.onDrag),e.on($i.DRAG_END,this.onDragEnd)})}unbindEvents(){const{graph:e}=this.context;e.off($i.DRAG_START,this.onDragStart),e.off($i.DRAG,this.onDrag),e.off($i.DRAG_END,this.onDragEnd)}destroyElements(){var e,t;(e=this.horizontalLine)===null||e===void 0||e.destroy(),(t=this.verticalLine)===null||t===void 0||t.destroy()}destroy(){this.destroyElements(),this.unbindEvents(),super.destroy()}}Nv.defaultOptions={tolerance:5,offset:20,autoSnap:!0,shape:"key",verticalLineStyle:{stroke:"#1783FF"},horizontalLineStyle:{stroke:"#1783FF"},filter:()=>!0};const Kr=(r,e)=>Math.abs(r-e),AS=(r,e)=>typeof e=="function"?e(r):r.getShape(e);var OS=null,AG=null;function _v(r){return r instanceof Date?r:new Date(r)}function OG(r){for(var e=__read(r,2),t=e[0],n=e[1],i=OS.indexOf(t),a=OS.indexOf(n),s="",o=i;o<=a;o+=1)if(s+=AG[o],o2&&(l=":"),s+=l}return s}function li(r,e){var t={YYYY:r.getFullYear(),MM:r.getMonth()+1,DD:r.getDate(),HH:r.getHours(),mm:r.getMinutes(),ss:r.getSeconds()},n=e;return Object.keys(t).forEach(function(i){var a=t[i];n=n.replace(i,i==="YYYY"?"".concat(a):"".concat(a).padStart(2,"0"))}),n}function Oq(r,e){return _v(r).getTime()-_v(e).getTime()}function kq(r,e){var t=__read([_v(r),_v(e)],2),n=t[0],i=t[1];return n.getFullYear()!==i.getFullYear()?"year":n.getMonth()!==i.getMonth()?"month":n.getDay()!==i.getDay()?"day":n.getHours()!==i.getHours()?"hour":n.getMinutes()!==i.getMinutes()?"minute":"second"}function Cq(r,e){var t=new Date(r),n={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 n[e](t),li(t,OG(["year",e]))}function kG(r,e){if(r.length<=e)return r;for(var t=Math.floor(r.length/e),n=[],i=0;i180?1:0,C=r>e?0:1,W=!1;return W?"M".concat(t,",").concat(n,",L").concat(v,",").concat(g,",A").concat(o,",").concat(l,",0,").concat(k,",").concat(C,",").concat(m,",").concat(b,",L").concat(t,",").concat(n):"M".concat(v,",").concat(g,",A").concat(o,",").concat(l,",0,").concat(k,",").concat(C,",").concat(m,",").concat(b)}function VG(r){var e=r.attributes,t=e.startAngle,n=e.endAngle,i=e.center,a=e.radius;return(0,Y.ev)((0,Y.ev)([t,n],(0,Y.CR)(i),!1),[a],!1)}function YG(r,e,t,n){var i=e.startAngle,a=e.endAngle,s=e.center,o=e.radius;return r.selectAll(Mn.line.class).data([{d:FS.apply(void 0,(0,Y.ev)((0,Y.ev)([i,a],(0,Y.CR)(s),!1),[o],!1))}],function(l,u){return u}).join(function(l){return l.append("path").attr("className",Mn.line.name).styles(e).styles({d:function(u){return u.d}})},function(l){return l.transition(function(){var u=this,c=HG(this,VG(this),(0,Y.ev)((0,Y.ev)([i,a],(0,Y.CR)(s),!1),[o],!1),n.update);if(c){var h=function(){var f=ii(u.attributes,"__keyframe_data__");u.style.d=FS.apply(void 0,(0,Y.ev)([],(0,Y.CR)(f),!1))};c.onframe=h,c.onfinish=h}return c}).styles(e)},function(l){return l.remove()}).styles(t).transitions()}function UG(r,e){var t=e.truncRange,n=e.truncShape,i=e.lineExtension}function ZG(r,e,t){t===void 0&&(t=[0,0]);var n=(0,Y.CR)([r,e,t],3),i=(0,Y.CR)(n[0],2),a=i[0],s=i[1],o=(0,Y.CR)(n[1],2),l=o[0],u=o[1],c=(0,Y.CR)(n[2],2),h=c[0],f=c[1],d=(0,Y.CR)([l-a,u-s],2),v=d[0],g=d[1],p=Math.sqrt(Math.pow(v,2)+Math.pow(g,2)),m=(0,Y.CR)([-h/p,f/p],2),b=m[0],x=m[1];return[b*v,b*g,x*v,x*g]}function jS(r){var e=(0,Y.CR)(r,2),t=(0,Y.CR)(e[0],2),n=t[0],i=t[1],a=(0,Y.CR)(e[1],2),s=a[0],o=a[1];return{x1:n,y1:i,x2:s,y2:o}}function KG(r,e,t,n){var i=e.showTrunc,a=e.startPos,s=e.endPos,o=e.truncRange,l=e.lineExtension,u=(0,Y.CR)([a,s],2),c=(0,Y.CR)(u[0],2),h=c[0],f=c[1],d=(0,Y.CR)(u[1],2),v=d[0],g=d[1],p=(0,Y.CR)(l?ZG(a,s,l):new Array(4).fill(0),4),m=p[0],b=p[1],x=p[2],O=p[3],T=function(X){return r.selectAll(Mn.line.class).data(X,function(q,oe){return oe}).join(function(q){return q.append("line").attr("className",function(oe){return"".concat(Mn.line.name," ").concat(oe.className)}).styles(t).transition(function(oe){return Ba(this,jS(oe.line),!1)})},function(q){return q.styles(t).transition(function(oe){var de=oe.line;return Ba(this,jS(de),n.update)})},function(q){return q.remove()}).transitions()};if(!i||!o)return T([{line:[[h+m,f+b],[v+x,g+O]],className:Mn.line.name}]);var S=(0,Y.CR)(o,2),k=S[0],C=S[1],W=v-h,U=g-f,J=(0,Y.CR)([h+W*k,f+U*k],2),te=J[0],ie=J[1],ae=(0,Y.CR)([h+W*C,f+U*C],2),ve=ae[0],Z=ae[1],H=T([{line:[[h+m,f+b],[te,ie]],className:Mn.lineFirst.name},{line:[[ve,Z],[v+x,g+O]],className:Mn.lineSecond.name}]);return UG(r,e),H}function QG(r,e,t,n){var i=t.showArrow,a=t.showTrunc,s=t.lineArrow,o=t.lineArrowOffset,l=t.lineArrowSize,u;if(e==="arc"?u=r.select(Mn.line.class):a?u=r.select(Mn.lineSecond.class):u=r.select(Mn.line.class),!i||!s||t.type==="arc"&&zS(t.startAngle,t.endAngle)){var c=u.node();c&&(c.style.markerEnd=void 0);return}var h=ks(s);h.attr(n),Qm(h,l,!0),u.style("markerEnd",h).style("markerEndOffset",-o)}function JG(r,e,t){var n=e.type,i,a=zt(e,"line");return n==="linear"?i=KG(r,e,RS(a,"arrow"),t):i=YG(r,e,RS(a,"arrow"),t),QG(r,n,e,a),i}function qG(r,e){return ly(r,e.gridDirection,e)}function GS(r){var e=r.type,t=r.gridCenter;return e==="linear"?t:t||r.center}function $G(r,e){var t=e.gridLength;return r.map(function(n,i){var a=n.value,s=(0,Y.CR)(Dv(a,e),2),o=s[0],l=s[1],u=(0,Y.CR)(Cs(qG(a,e),t),2),c=u[0],h=u[1];return{id:i,points:[[o,l],[o+c,l+h]]}})}function eH(r,e){var t=e.gridControlAngles,n=GS(e);if(!n)throw new Error("grid center is not provide");if(r.length<2)throw new Error("Invalid grid data");if(!t||t.length===0)throw new Error("Invalid gridControlAngles");var i=(0,Y.CR)(n,2),a=i[0],s=i[1];return r.map(function(o,l){var u=o.value,c=(0,Y.CR)(Dv(u,e),2),h=c[0],f=c[1],d=(0,Y.CR)([h-a,f-s],2),v=d[0],g=d[1],p=[];return t.forEach(function(m){var b=ou(m),x=(0,Y.CR)([Math.cos(b),Math.sin(b)],2),O=x[0],T=x[1],S=v*O-g*T+a,k=v*T+g*O+s;p.push([S,k])}),{points:p,id:l}})}function tH(r,e,t,n){var i=zt(t,"grid"),a=i.type,s=i.areaFill,o=GS(t),l=oy(e,t.gridFilter),u=a==="segment"?$G(l,t):eH(l,t),c=(0,Y.pi)((0,Y.pi)({},i),{center:o,areaFill:pt(s)?l.map(function(h,f){return ca(s,[h,f,l])}):s,animate:n,data:u});return r.selectAll(Mn.grid.class).data([1]).join(function(h){return h.append(function(){return new zG({style:c})}).attr("className",Mn.grid.name)},function(h){return h.transition(function(){return this.update(c)})},function(h){return h.remove()}).transitions()}function Gr(r,e,t,n,i){return n===void 0&&(n=!0),i===void 0&&(i=!1),n&&r===e||i&&r===t?!0:r>e&&r0,b=n-l,x=i-u,O=f*x-d*b;if(O<0===m)return!1;var T=v*x-g*b;return!(T<0===m||O>p===m||T>p===m)}function VS(r,e){var t=[[r[0],r[1],r[2],r[3]],[r[2],r[3],r[4],r[5]],[r[4],r[5],r[6],r[7]],[r[6],r[7],r[0],r[1]]];return t.some(function(n){return WS(e,n)})}var Dq={lineToLine:WS,intersectBoxLine:VS,getBounds:Iv};function lH(r,e,t){var n,i,a=Iv(r,t).flat(1),s=Iv(e,t).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,Y.XA)(o),u=l.next();!u.done;u=l.next()){var c=u.value;if(VS(s,c))return!0}}catch(h){n={error:h}}finally{try{u&&!u.done&&(i=l.return)&&i.call(l)}finally{if(n)throw n.error}}return!1}function uH(r,e){var t=r.type,n=r.labelDirection,i=r.crossSize;if(!i)return!1;if(t==="arc"){var a=r.center,s=r.radius,o=(0,Y.CR)(a,2),l=o[0],u=o[1],c=n==="negative"?0:i,h=-s-c,f=s+c,d=(0,Y.CR)(jr(e),4),v=d[0],g=d[1],p=d[2],m=d[3];return new uy(l+h-m,u+h-v,l+f+g,u+f+p)}var b=(0,Y.CR)(r.startPos,2),x=b[0],O=b[1],T=(0,Y.CR)(r.endPos,2),S=T[0],k=T[1],C=(0,Y.CR)(BS(r)?[-e,0,e,0]:[0,e,0,-e],4),W=C[0],U=C[1],J=C[2],te=C[3],ie=Wc(0,r),ae=Cs(ie,i),ve=new uy(x,O,S,k);return ve.x1+=te,ve.y1+=W,ve.x2+=U+ae[0],ve.y2+=J+ae[1],ve}function Bv(r,e,t){var n,i,a=e.crossPadding,s=new Set,o=null,l=uH(e,a),u=function(v){return l?oH(l,v):!0},c=function(v,g){return!v||!v.firstChild?!0:!lH(v.firstChild,g.firstChild,jr(t))};try{for(var h=(0,Y.XA)(r),f=h.next();!f.done;f=h.next()){var d=f.value;u(d)?!o||c(o,d)?o=d:(s.add(o),s.add(d)):s.add(d)}}catch(v){n={error:v}}finally{try{f&&!f.done&&(i=h.return)&&i.call(h)}finally{if(n)throw n.error}}return Array.from(s)}function cy(r,e){return e===void 0&&(e={}),vt(r)?0:typeof r=="number"?r:Math.floor(yG(r,e))}function cH(r,e,t,n){if(!(r.length<=1)){var i=e.suffix,a=i===void 0?"...":i,s=e.minLength,o=e.maxLength,l=o===void 0?1/0:o,u=e.step,c=u===void 0?" ":u,h=e.margin,f=h===void 0?[0,0,0,0]:h,d=ES(n.getTextShape(r[0])),v=cy(c,d),g=s?cy(s,d):v,p=cy(l,d);(vt(p)||p===1/0)&&(p=Math.max.apply(null,r.map(function(ae){return ae.getBBox().width})));for(var m=r.slice(),b=(0,Y.CR)(f,4),x=b[0],O=x===void 0?0:x,T=b[1],S=T===void 0?0:T,k=b[2],C=k===void 0?O:k,W=b[3],U=W===void 0?S:W,J=function(ae){if(m.forEach(function(ve){n.ellipsis(n.getTextShape(ve),ae,a)}),m=Bv(r,t,f),m.length<1)return{value:void 0}},te=p;te>g+v;te-=v){var ie=J(te);if(typeof ie=="object")return ie.value}}}var hH={parity:function(r,e){var t=e.seq,n=t===void 0?2:t;return r.filter(function(i,a){return a%n?(Da(i),!1):!0})}},fH=function(r){return r.filter(XS)};function dH(r,e,t,n){var i=r.length,a=e.keepHeader,s=e.keepTail;if(!(i<=1||i===2&&a&&s)){var o=hH.parity,l=function(x){return x.forEach(n.show),x},u=2,c=r.slice(),h=r.slice(),f=Math.min.apply(Math,(0,Y.ev)([1],(0,Y.CR)(r.map(function(x){return x.getBBox().width})),!1));if(t.type==="linear"&&(IS(t)||BS(t))){var d=xS(r[0]).left,v=xS(r[i-1]).right,g=Math.abs(v-d)||1;u=Math.max(Math.floor(i*f/g),u)}var p,m;for(a&&(p=c.splice(0,1)[0]),s&&(m=c.splice(-1,1)[0],c.reverse()),l(c);uo)){for(var m=d;m<=o;m++)if(p(m),v())return;u&&p(f)}}var mH=new Map([["hide",dH],["rotate",vH],["ellipsis",cH],["wrap",pH]]);function yH(r,e,t){return e.labelOverlap.length<1?!1:t==="hide"?!Aj(r[0]):t==="rotate"?!r.some(function(n){var i;return!!(!((i=n.attr("transform"))===null||i===void 0)&&i.includes("rotate"))}):t==="ellipsis"||t==="wrap"?r.filter(function(n){return n.querySelector("text")}).length>1:!0}function bH(r,e,t){var n=e.labelOverlap,i=n===void 0?[]:n;i.length&&i.forEach(function(a){var s=a.type,o=mH.get(s);yH(r,e,s)&&(o==null||o(r,a,e,t))})}function xH(){for(var r=[],e=0;ef[0]&&S0&&Number.isFinite(r)?e:t},Gq=function(r,e){return r*e},Hq=function(r,e){return r/2+(e||0)/2},dy=function(r){return r};class rT{constructor(e){this.options=ri({},this.getDefaultOptions()),this.update(e)}getOptions(){return this.options}update(e={}){this.options=ri({},this.options,e),this.rescale(e)}rescale(e){}}function vy(r,e){return e-r?t=>(t-r)/(e-r):t=>.5}function zv(r,...e){return e.reduce((t,n)=>i=>t(n(i)),r)}function DH(r,e,t,n,i){let a=t||0,s=n||r.length;const o=i||(l=>l);for(;ae?s=l:a=l+1}return a}var IH=w(19818),BH=w.n(IH);function gy(r,e,t){let n=t;return n<0&&(n+=1),n>1&&(n-=1),n<1/6?r+(e-r)*6*n:n<1/2?e:n<2/3?r+(e-r)*(2/3-n)*6:r}function zH(r){const e=r[0]/360,t=r[1]/100,n=r[2]/100,i=r[3];if(t===0)return[n*255,n*255,n*255,i];const a=n<.5?n*(1+t):n+t-n*t,s=2*n-a,o=gy(s,a,e+1/3),l=gy(s,a,e),u=gy(s,a,e-1/3);return[o*255,l*255,u*255,i]}function iT(r){const e=BH().get(r);if(!e)return null;const{model:t,value:n}=e;return t==="rgb"?n:t==="hsl"?zH(n):null}const Fv=(r,e)=>t=>r*(1-t)+e*t,FH=(r,e)=>{const t=iT(r),n=iT(e);return t===null||n===null?t?()=>r:()=>e:i=>{const a=new Array(4);for(let c=0;c<4;c+=1){const h=t[c],f=n[c];a[c]=h*(1-i)+f*i}const[s,o,l,u]=a;return`rgba(${Math.round(s)}, ${Math.round(o)}, ${Math.round(l)}, ${u})`}},jH=(r,e)=>typeof r=="number"&&typeof e=="number"?Fv(r,e):typeof r=="string"&&typeof e=="string"?FH(r,e):()=>r,GH=(r,e)=>{const t=Fv(r,e);return n=>Math.round(t(n))};function HH(r){return r===null}function aT(r){return!Et(r)&&!HH(r)&&!Number.isNaN(r)}const py=Math.sqrt(50),my=Math.sqrt(10),yy=Math.sqrt(2);function jv(r,e,t){const n=(e-r)/Math.max(0,t),i=Math.floor(Math.log(n)/Math.LN10),a=n/$c(10,i);return i>=0?(a>=py?10:a>=my?5:a>=yy?2:1)*$c(10,i):-$c(10,-i)/(a>=py?10:a>=my?5:a>=yy?2:1)}function Xq(r,e,t){const n=Math.abs(e-r)/Math.max(0,t);let i=$c(10,Math.floor(Math.log(n)/Math.LN10));const a=n/i;return a>=py?i*=10:a>=my?i*=5:a>=yy&&(i*=2),e{const n=[r,e];let i=0,a=n.length-1,s=n[i],o=n[a],l;return o0?(s=Math.floor(s/l)*l,o=Math.ceil(o/l)*l,l=jv(s,o,t)):l<0&&(s=Math.ceil(s*l)/l,o=Math.floor(o*l)/l,l=jv(s,o,t)),l>0?(n[i]=Math.floor(s/l)*l,n[a]=Math.ceil(o/l)*l):l<0&&(n[i]=Math.ceil(s*l)/l,n[a]=Math.floor(o*l)/l),n};function WH(r,e){const t=ee?r:e;return i=>Math.min(Math.max(t,i),n)}const VH=(r,e,t)=>{const[n,i]=r,[a,s]=e;let o,l;return n{const n=Math.min(r.length,e.length)-1,i=new Array(n),a=new Array(n),s=r[0]>r[n],o=s?[...r].reverse():r,l=s?[...e].reverse():e;for(let u=0;u{const c=DH(r,u,1,n)-1,h=i[c],f=a[c];return zv(f,h)(u)}},sT=(r,e,t,n)=>(Math.min(r.length,e.length)>2?YH:VH)(r,e,n?GH:t);class UH extends rT{getDefaultOptions(){return{domain:[0,1],range:[0,1],nice:!1,clamp:!1,round:!1,interpolate:Fv,tickCount:5}}map(e){return aT(e)?this.output(e):this.options.unknown}invert(e){return aT(e)?this.input(e):this.options.unknown}nice(){if(!this.options.nice)return;const[e,t,n,...i]=this.getTickMethodOptions();this.options.domain=this.chooseNice()(e,t,n,...i)}getTicks(){const{tickMethod:e}=this.options,[t,n,i,...a]=this.getTickMethodOptions();return e(t,n,i,...a)}getTickMethodOptions(){const{domain:e,tickCount:t}=this.options,n=e[0],i=e[e.length-1];return[n,i,t]}chooseNice(){return XH}rescale(){this.nice();const[e,t]=this.chooseTransforms();this.composeOutput(e,this.chooseClamp(e)),this.composeInput(e,t,this.chooseClamp(t))}chooseClamp(e){const{clamp:t,range:n}=this.options,i=this.options.domain.map(e),a=Math.min(i.length,n.length);return t?WH(i[0],i[a-1]):dy}composeOutput(e,t){const{domain:n,range:i,round:a,interpolate:s}=this.options,o=sT(n.map(e),i,s,a);this.output=zv(o,t,e)}composeInput(e,t,n){const{domain:i,range:a}=this.options,s=sT(a,i.map(e),Fv);this.input=zv(t,n,s)}}const ZH=(r,e,t)=>{let n,i,a=r,s=e;if(a===s&&t>0)return[a];let o=jv(a,s,t);if(o===0||!Number.isFinite(o))return[];if(o>0){a=Math.ceil(a/o),s=Math.floor(s/o),i=new Array(n=Math.ceil(s-a+1));for(let l=0;l`${e}`:typeof r=="object"?e=>JSON.stringify(e):e=>e}class xy extends rT{getDefaultOptions(){return{domain:[],range:[],unknown:by}}constructor(e){super(e)}map(e){return this.domainIndexMap.size===0&&uT(this.domainIndexMap,this.getDomain(),this.domainKey),cT({value:this.domainKey(e),mapper:this.domainIndexMap,from:this.getDomain(),to:this.getRange(),notFoundReturn:this.options.unknown})}invert(e){return this.rangeIndexMap.size===0&&uT(this.rangeIndexMap,this.getRange(),this.rangeKey),cT({value:this.rangeKey(e),mapper:this.rangeIndexMap,from:this.getRange(),to:this.getDomain(),notFoundReturn:this.options.unknown})}rescale(e){const[t]=this.options.domain,[n]=this.options.range;if(this.domainKey=hT(t),this.rangeKey=hT(n),!this.rangeIndexMap){this.rangeIndexMap=new Map,this.domainIndexMap=new Map;return}(!e||e.range)&&this.rangeIndexMap.clear(),(!e||e.domain||e.compare)&&(this.domainIndexMap.clear(),this.sortedDomain=void 0)}clone(){return new xy(this.options)}getRange(){return this.options.range}getDomain(){if(this.sortedDomain)return this.sortedDomain;const{domain:e,compare:t}=this.options;return this.sortedDomain=t?[...e].sort(t):e,this.sortedDomain}}function qH(r){const e=Math.min(...r);return r.map(t=>t/e)}function $H(r,e){const t=r.length,n=e-t;return n>0?[...r,...new Array(n).fill(1)]:n<0?r.slice(0,e):r}function eX(r){return Math.round(r*1e12)/1e12}function tX(r){const{domain:e,range:t,paddingOuter:n,paddingInner:i,flex:a,round:s,align:o}=r,l=e.length,u=$H(a,l),[c,h]=t,f=h-c,d=2/l*n+1-1/l*i,v=f/d,g=v*i/l,p=v-l*g,m=qH(u),b=m.reduce((te,ie)=>te+ie),x=p/b,O=new lT(e.map((te,ie)=>{const ae=m[ie]*x;return[te,s?Math.floor(ae):ae]})),T=new lT(e.map((te,ie)=>{const ve=m[ie]*x+g;return[te,s?Math.floor(ve):ve]})),S=Array.from(T.values()).reduce((te,ie)=>te+ie),C=(f-(S-S/l*i))*o,W=c+C;let U=s?Math.round(W):W;const J=new Array(l);for(let te=0;tef+x*c);return{valueStep:c,valueBandWidth:h,adjustedRange:m}}class Ey extends xy{getDefaultOptions(){return{domain:[],range:[0,1],align:.5,round:!1,paddingInner:0,paddingOuter:0,padding:0,unknown:by,flex:[]}}constructor(e){super(e)}clone(){return new Ey(this.options)}getStep(e){return this.valueStep===void 0?1:typeof this.valueStep=="number"?this.valueStep:e===void 0?Array.from(this.valueStep.values())[0]:this.valueStep.get(e)}getBandWidth(e){return this.valueBandWidth===void 0?1:typeof this.valueBandWidth=="number"?this.valueBandWidth:e===void 0?Array.from(this.valueBandWidth.values())[0]:this.valueBandWidth.get(e)}getRange(){return this.adjustedRange}getPaddingInner(){const{padding:e,paddingInner:t}=this.options;return e>0?e:t}getPaddingOuter(){const{padding:e,paddingOuter:t}=this.options;return e>0?e:t}rescale(){super.rescale();const{align:e,domain:t,range:n,round:i,flex:a}=this.options,{adjustedRange:s,valueBandWidth:o,valueStep:l}=nX({align:e,range:n,round:i,flex:a,paddingInner:this.getPaddingInner(),paddingOuter:this.getPaddingOuter(),domain:t});this.valueStep=l,this.valueBandWidth=o,this.adjustedRange=s}}var rX=function(r){(0,Y.ZT)(e,r);function e(t){var n=this,i=t.style,a=(0,Y._T)(t,["style"]);return n=r.call(this,ri({},{type:"column"},(0,Y.pi)({style:i},a)))||this,n.columnsGroup=new ji({name:"columns"}),n.appendChild(n.columnsGroup),n.render(),n}return e.prototype.render=function(){var t=this.attributes,n=t.columns,i=t.x,a=t.y;this.columnsGroup.style.transform="translate(".concat(i,", ").concat(a,")"),Mt(this.columnsGroup).selectAll(".column").data(n.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()})},e.prototype.update=function(t){this.attr(Or({},this.attributes,t)),this.render()},e.prototype.clear=function(){this.removeChildren()},e}(Fi),iX=function(r){(0,Y.ZT)(e,r);function e(t){var n=this,i=t.style,a=(0,Y._T)(t,["style"]);return n=r.call(this,ri({},{type:"lines"},(0,Y.pi)({style:i},a)))||this,n.linesGroup=n.appendChild(new ji),n.areasGroup=n.appendChild(new ji),n.render(),n}return e.prototype.render=function(){var t=this.attributes,n=t.lines,i=t.areas,a=t.x,s=t.y;this.style.transform="translate(".concat(a,", ").concat(s,")"),n&&this.renderLines(n),i&&this.renderAreas(i)},e.prototype.clear=function(){this.linesGroup.removeChildren(),this.areasGroup.removeChildren()},e.prototype.update=function(t){this.attr(Or({},this.attributes,t)),this.render()},e.prototype.renderLines=function(t){Mt(this.linesGroup).selectAll(".line").data(t).join(function(n){return n.append("path").attr("className","line").each(function(i){this.attr(i)})},function(n){return n.each(function(i){this.attr(i)})},function(n){return n.remove()})},e.prototype.renderAreas=function(t){Mt(this.linesGroup).selectAll(".area").data(t).join(function(n){return n.append("path").attr("className","area").each(function(i){this.attr(i)})},function(n){return n.each(function(i){this.style(i)})},function(n){return n.remove()})},e}(Fi);function aX(r,e,t,n){var i,a=[],s=!!n,o,l,u=[1/0,1/0],c=[-1/0,-1/0],h,f,d;if(s){i=(0,Y.CR)(n,2),u=i[0],c=i[1];for(var v=0,g=r.length;vs&&(t=(0,Y.CR)([s,o],2),o=t[0],s=t[1]),r.map(function(l){var u=l.map(function(c,h){return[n.map(h),on(i.map(c),o,s)]});return u})}function Zc(r,e){e===void 0&&(e=!1);var t=e?r.length-1:0,n=r.map(function(i,a){return(0,Y.ev)([a===t?"M":"L"],(0,Y.CR)(i),!1)});return e?n.reverse():n}function Gv(r,e){if(e===void 0&&(e=!1),r.length<=2)return Zc(r);for(var t=[],n=r.length,i=0;i=0;i-=1){var a=r[i],s=Zc(a),o=void 0;if(i===0)o=wy(s,e,t);else{var l=r[i-1],u=Zc(l,!0);u[0][0]="L",o=(0,Y.ev)((0,Y.ev)((0,Y.ev)([],(0,Y.CR)(s),!1),(0,Y.CR)(u),!1),[["Z"]],!1)}n.push(o)}return n}function cX(r,e,t){for(var n=[],i=r.length-1;i>=0;i-=1){var a=r[i],s=Gv(a),o=void 0;if(i===0)o=wy(s,e,t);else{var l=r[i-1],u=Gv(l,!0),c=a[0];u[0][0]="L",o=(0,Y.ev)((0,Y.ev)((0,Y.ev)([],(0,Y.CR)(s),!1),(0,Y.CR)(u),!1),[(0,Y.ev)(["M"],(0,Y.CR)(c),!1),["Z"]],!1)}n.push(o)}return n}var hX=function(r,e){if(pi(r)){for(var t,n=1/0,i=0;in&&(t=a,n=s)}return t}};function fT(r){return r.length===0?[0,0]:[dl(hX(r,function(e){return dl(e)||0})),vl(fX(r,function(e){return vl(e)||0}))]}function dT(r){for(var e=Ll(r),t=e[0].length,n=(0,Y.CR)([Array(t).fill(0),Array(t).fill(0)],2),i=n[0],a=n[1],s=0;s=0?(o[l]+=i[l],i[l]=o[l]):(o[l]+=a[l],a[l]=o[l]);return e}var dX=function(r){(0,Y.ZT)(e,r);function e(t){return r.call(this,t,{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(e.prototype,"rawData",{get:function(){var t=this.attributes.data;if(!t||(t==null?void 0:t.length)===0)return[[]];var n=Ll(t);return ht(n[0])?[n]:n},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"data",{get:function(){return this.attributes.isStack?dT(this.rawData):this.rawData},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"scales",{get:function(){return this.createScales(this.data)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"baseline",{get:function(){var t=this.scales.y,n=(0,Y.CR)(t.getOptions().domain||[0,0],2),i=n[0],a=n[1];return a<0?t.map(a):t.map(i<0?0:i)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"containerShape",{get:function(){var t=this.attributes,n=t.width,i=t.height;return{width:n,height:i}},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"linesStyle",{get:function(){var t=this,n=this.attributes,i=n.type,a=n.isStack,s=n.smooth;if(i!=="line")throw new Error("linesStyle can only be used in line type");var o=zt(this.attributes,"area"),l=zt(this.attributes,"line"),u=this.containerShape.width,c=this.data;if(c[0].length===0)return{lines:[],areas:[]};var h=this.scales,f=h.x,d=h.y,v=oX(c,{type:"line",x:f,y:d}),g=[];if(o){var p=this.baseline;a?g=s?cX(v,u,p):uX(v,u,p):g=lX(v,s,u,p)}return{lines:v.map(function(m,b){return(0,Y.pi)({stroke:t.getColor(b),d:s?Gv(m):Zc(m)},l)}),areas:g.map(function(m,b){return(0,Y.pi)({d:m,fill:t.getColor(b)},o)})}},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"columnsStyle",{get:function(){var t=this,n=zt(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,u=this.rawData;if(!u)return{columns:[]};a&&(u=dT(u));var c=this.createScales(u),h=c.x,f=c.y,d=(0,Y.CR)(fT(u),2),v=d[0],g=d[1],p=new Uc({domain:[0,g-(v>0?0:v)],range:[0,l*o]}),m=h.getBandWidth(),b=this.rawData;return{columns:u.map(function(x,O){return x.map(function(T,S){var k=m/u.length,C=function(){return{x:h.map(S)+k*O,y:T>=0?f.map(T):f.map(0),width:k,height:p.map(Math.abs(T))}},W=function(){return{x:h.map(S),y:f.map(T),width:m,height:p.map(b[O][S])}};return(0,Y.pi)((0,Y.pi)({fill:t.getColor(O)},n),a?W():C())})})}},enumerable:!1,configurable:!0}),e.prototype.render=function(t,n){Dj(n,".container","rect").attr("className","container").node();var i=t.type,a=t.x,s=t.y,o="spark".concat(i),l=(0,Y.pi)({x:a,y:s},i==="line"?this.linesStyle:this.columnsStyle);Mt(n).selectAll(".spark").data([i]).join(function(u){return u.append(function(c){return c==="line"?new iX({className:o,style:l}):new rX({className:o,style:l})}).attr("className","spark ".concat(o))},function(u){return u.update(l)},function(u){return u.remove()})},e.prototype.getColor=function(t){var n=this.attributes.color;return pi(n)?n[t%n.length]:pt(n)?n.call(null,t):n},e.prototype.createScales=function(t){var n,i,a=this.attributes,s=a.type,o=a.scale,l=a.range,u=l===void 0?[]:l,c=a.spacing,h=this.containerShape,f=h.width,d=h.height,v=(0,Y.CR)(fT(t),2),g=v[0],p=v[1],m=new Uc({domain:[(n=u[0])!==null&&n!==void 0?n:g,(i=u[1])!==null&&i!==void 0?i:p],range:[d,d*(1-o)]});return s==="line"?{type:s,x:new Uc({domain:[0,t[0].length-1],range:[0,f]}),y:m}:{type:s,x:new Ey({domain:t[0].map(function(b,x){return x}),range:[0,f],paddingInner:c,paddingOuter:c/2,align:.5}),y:m}},e.tag="sparkline",e}(or),vT={fill:"#fff",lineWidth:1,radius:2,size:10,stroke:"#bfbfbf",strokeOpacity:1,zIndex:0},gT={fill:"#000",fillOpacity:.45,fontSize:12,textAlign:"center",textBaseline:"middle",zIndex:1},pT={x:0,y:0,orientation:"horizontal",showLabel:!0,type:"start"},os=Ia({foreground:"foreground",handle:"handle",selection:"selection",sparkline:"sparkline",sparklineGroup:"sparkline-group",track:"track",brushArea:"brush-area"},"slider"),ho=Ia({labelGroup:"label-group",label:"label",iconGroup:"icon-group",icon:"icon",iconRect:"icon-rect",iconLine:"icon-line"},"handle"),vX=function(r){(0,Y.ZT)(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.render=function(t,n){var i=t.x,a=t.y,s=t.size,o=s===void 0?10:s,l=t.radius,u=l===void 0?o/4:l,c=t.orientation,h=(0,Y._T)(t,["x","y","size","radius","orientation"]),f=o,d=f*2.4,v=Mt(n).maybeAppendByClassName(ho.iconRect,"rect").styles((0,Y.pi)((0,Y.pi)({},h),{width:f,height:d,radius:u,x:i-f/2,y:a-d/2,transformOrigin:"center"})),g=i+1/3*f-f/2,p=i+2/3*f-f/2,m=a+1/4*d-d/2,b=a+3/4*d-d/2;v.maybeAppendByClassName("".concat(ho.iconLine,"-1"),"line").styles((0,Y.pi)({x1:g,x2:g,y1:m,y2:b},h)),v.maybeAppendByClassName("".concat(ho.iconLine,"-2"),"line").styles((0,Y.pi)({x1:p,x2:p,y1:m,y2:b},h)),c==="vertical"&&(v.node().style.transform="rotate(90)")},e}(or),gX=function(r){(0,Y.ZT)(e,r);function e(t){return r.call(this,t,pT)||this}return e.prototype.renderLabel=function(t){var n=this,i=this.attributes,a=i.x,s=i.y,o=i.showLabel,l=zt(this.attributes,"label"),u=l.x,c=u===void 0?0:u,h=l.y,f=h===void 0?0:h,d=l.transform,v=l.transformOrigin,g=(0,Y._T)(l,["x","y","transform","transformOrigin"]),p=(0,Y.CR)(Os(g,[]),2),m=p[0],b=p[1],x=Mt(t).maybeAppendByClassName(ho.labelGroup,"g").styles(b),O=(0,Y.pi)((0,Y.pi)({},gT),m),T=O.text,S=(0,Y._T)(O,["text"]);Gi(!!o,x,function(k){n.label=k.maybeAppendByClassName(ho.label,"text").styles((0,Y.pi)((0,Y.pi)({},S),{x:a+c,y:s+f,transform:d,transformOrigin:v,text:"".concat(T)})),n.label.on("mousedown",function(C){C.stopPropagation()}),n.label.on("touchstart",function(C){C.stopPropagation()})})},e.prototype.renderIcon=function(t){var n=this.attributes,i=n.x,a=n.y,s=n.orientation,o=n.type,l=(0,Y.pi)((0,Y.pi)({x:i,y:a,orientation:s},vT),zt(this.attributes,"icon")),u=this.attributes.iconShape,c=u===void 0?function(){return new vX({style:l})}:u,h=Mt(t).maybeAppendByClassName(ho.iconGroup,"g");h.selectAll(ho.icon.class).data([c]).join(function(f){return f.append(typeof c=="string"?c:function(){return c(o)}).attr("className",ho.icon.name)},function(f){return f.update(l)},function(f){return f.remove()})},e.prototype.render=function(t,n){this.renderIcon(n),this.renderLabel(n)},e}(or),pX=function(r){(0,Y.ZT)(e,r);function e(t){var n=r.call(this,t,(0,Y.pi)((0,Y.pi)((0,Y.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},au(pT,"handle")),au(vT,"handleIcon")),au(gT,"handleLabel")))||this;return n.range=[0,1],n.onDragStart=function(i){return function(a){a.stopPropagation(),n.target=i,n.prevPos=n.getOrientVal(nT(a));var s=n.availableSpace,o=s.x,l=s.y,u=n.getBBox(),c=u.x,h=u.y;n.selectionStartPos=n.getRatio(n.prevPos-n.getOrientVal([o,l])-n.getOrientVal([+c,+h])),n.selectionWidth=0,document.addEventListener("pointermove",n.onDragging),document.addEventListener("pointerup",n.onDragEnd)}},n.onDragging=function(i){var a=n.attributes,s=a.slidable,o=a.brushable,l=a.type;i.stopPropagation();var u=n.getOrientVal(nT(i)),c=u-n.prevPos;if(c){var h=n.getRatio(c);switch(n.target){case"start":s&&n.setValuesOffset(h);break;case"end":s&&n.setValuesOffset(0,h);break;case"selection":s&&n.setValuesOffset(h,h);break;case"track":if(!o)return;n.selectionWidth+=h,l==="range"?n.innerSetValues([n.selectionStartPos,n.selectionStartPos+n.selectionWidth].sort(),!0):n.innerSetValues([0,n.selectionStartPos+n.selectionWidth],!0);break;default:break}n.prevPos=u}},n.onDragEnd=function(){document.removeEventListener("pointermove",n.onDragging),document.removeEventListener("pointermove",n.onDragging),document.removeEventListener("pointerup",n.onDragEnd),n.target="",n.updateHandlesPosition(!1)},n.onValueChange=function(i){var a=n.attributes,s=a.onChange,o=a.type,l=o==="range"?i:i[1],u=o==="range"?n.getValues():n.getValues()[1],c=new zi("valuechange",{detail:{oldValue:l,value:u}});n.dispatchEvent(c),s==null||s(u)},n.selectionStartPos=0,n.selectionWidth=0,n.prevPos=0,n.target="",n}return Object.defineProperty(e.prototype,"values",{get:function(){return this.attributes.values},set:function(t){this.attributes.values=this.clampValues(t)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"sparklineStyle",{get:function(){var t=this.attributes.orientation;if(t!=="horizontal")return null;var n=zt(this.attributes,"sparkline");return(0,Y.pi)((0,Y.pi)({zIndex:0},this.availableSpace),n)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"shape",{get:function(){var t=this.attributes,n=t.trackLength,i=t.trackSize,a=(0,Y.CR)(this.getOrientVal([[n,i],[i,n]]),2),s=a[0],o=a[1];return{width:s,height:o}},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"availableSpace",{get:function(){var t=this.attributes,n=t.x,i=t.y,a=t.padding,s=(0,Y.CR)(jr(a),4),o=s[0],l=s[1],u=s[2],c=s[3],h=this.shape,f=h.width,d=h.height;return{x:c,y:o,width:f-(c+l),height:d-(o+u)}},enumerable:!1,configurable:!0}),e.prototype.getValues=function(){return this.values},e.prototype.setValues=function(t,n){t===void 0&&(t=[0,0]),n===void 0&&(n=!1),this.attributes.values=t;var i=n===!1?!1:this.attributes.animate;this.updateSelectionArea(i),this.updateHandlesPosition(i)},e.prototype.updateSelectionArea=function(t){var n=this.calcSelectionArea();this.foregroundGroup.selectAll(os.selection.class).each(function(i,a){Ba(this,n[a],t)})},e.prototype.updateHandlesPosition=function(t){this.attributes.showHandle&&(this.startHandle&&Ba(this.startHandle,this.getHandleStyle("start"),t),this.endHandle&&Ba(this.endHandle,this.getHandleStyle("end"),t))},e.prototype.innerSetValues=function(t,n){t===void 0&&(t=[0,0]),n===void 0&&(n=!1);var i=this.values,a=this.clampValues(t);this.attributes.values=a,this.setValues(a),n&&this.onValueChange(i)},e.prototype.renderTrack=function(t){var n=this.attributes,i=n.x,a=n.y,s=zt(this.attributes,"track");this.trackShape=Mt(t).maybeAppendByClassName(os.track,"rect").styles((0,Y.pi)((0,Y.pi)({x:i,y:a},this.shape),s))},e.prototype.renderBrushArea=function(t){var n=this.attributes,i=n.x,a=n.y,s=n.brushable;this.brushArea=Mt(t).maybeAppendByClassName(os.brushArea,"rect").styles((0,Y.pi)({x:i,y:a,fill:"transparent",cursor:s?"crosshair":"default"},this.shape))},e.prototype.renderSparkline=function(t){var n=this,i=this.attributes,a=i.x,s=i.y,o=i.orientation,l=Mt(t).maybeAppendByClassName(os.sparklineGroup,"g");Gi(o==="horizontal",l,function(u){var c=(0,Y.pi)((0,Y.pi)({},n.sparklineStyle),{x:a,y:s});u.maybeAppendByClassName(os.sparkline,function(){return new dX({style:c})}).update(c)})},e.prototype.renderHandles=function(){var t=this,n,i=this.attributes,a=i.showHandle,s=i.type,o=s==="range"?["start","end"]:["end"],l=a?o:[],u=this;(n=this.foregroundGroup)===null||n===void 0||n.selectAll(os.handle.class).data(l.map(function(c){return{type:c}}),function(c){return c.type}).join(function(c){return c.append(function(h){var f=h.type;return new gX({style:t.getHandleStyle(f)})}).each(function(h){var f=h.type;this.attr("class","".concat(os.handle.name," ").concat(f,"-handle"));var d="".concat(f,"Handle");u[d]=this,this.addEventListener("pointerdown",u.onDragStart(f))})},function(c){return c.each(function(h){var f=h.type;this.update(u.getHandleStyle(f))})},function(c){return c.each(function(h){var f=h.type,d="".concat(f,"Handle");u[d]=void 0}).remove()})},e.prototype.renderSelection=function(t){var n=this.attributes,i=n.x,a=n.y,s=n.type,o=n.selectionType;this.foregroundGroup=Mt(t).maybeAppendByClassName(os.foreground,"g");var l=zt(this.attributes,"selection"),u=function(h){return h.style("visibility",function(f){return f.show?"visible":"hidden"}).style("cursor",function(f){return o==="select"?"grab":o==="invert"?"crosshair":"default"}).styles((0,Y.pi)((0,Y.pi)({},l),{transform:"translate(".concat(i,", ").concat(a,")")}))},c=this;this.foregroundGroup.selectAll(os.selection.class).data(s==="value"?[]:this.calcSelectionArea().map(function(h,f){return{style:(0,Y.pi)({},h),index:f,show:o==="select"?f===1:f!==1}}),function(h){return h.index}).join(function(h){return h.append("rect").attr("className",os.selection.name).call(u).each(function(f,d){var v=this;d===1?(c.selectionShape=Mt(this),this.on("pointerdown",function(g){v.attr("cursor","grabbing"),c.onDragStart("selection")(g)}),c.dispatchCustomEvent(this,"pointerenter","selectionMouseenter"),c.dispatchCustomEvent(this,"pointerleave","selectionMouseleave"),c.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",c.onDragStart("track"))})},function(h){return h.call(u)},function(h){return h.remove()}),this.updateSelectionArea(!1),this.renderHandles()},e.prototype.render=function(t,n){this.renderTrack(n),this.renderSparkline(n),this.renderBrushArea(n),this.renderSelection(n)},e.prototype.clampValues=function(t,n){var i;n===void 0&&(n=4);var a=(0,Y.CR)(this.range,2),s=a[0],o=a[1],l=(0,Y.CR)(this.getValues().map(function(p){return fy(p,n)}),2),u=l[0],c=l[1],h=Array.isArray(t)?t:[u,t!=null?t:c],f=(0,Y.CR)((h||[u,c]).map(function(p){return fy(p,n)}),2),d=f[0],v=f[1];if(this.attributes.type==="value")return[0,on(v,s,o)];d>v&&(i=(0,Y.CR)([v,d],2),d=i[0],v=i[1]);var g=v-d;return g>o-s?[s,o]:do?c===o&&u===d?[d,o]:[o-g,o]:[d,v]},e.prototype.calcSelectionArea=function(t){var n=(0,Y.CR)(this.clampValues(t),2),i=n[0],a=n[1],s=this.availableSpace,o=s.x,l=s.y,u=s.width,c=s.height;return this.getOrientVal([[{y:l,height:c,x:o,width:i*u},{y:l,height:c,x:i*u+o,width:(a-i)*u},{y:l,height:c,x:a*u,width:(1-a)*u}],[{x:o,width:u,y:l,height:i*c},{x:o,width:u,y:i*c+l,height:(a-i)*c},{x:o,width:u,y:a*c,height:(1-a)*c}]])},e.prototype.calcHandlePosition=function(t){var n=this.attributes.handleIconOffset,i=this.availableSpace,a=i.x,s=i.y,o=i.width,l=i.height,u=(0,Y.CR)(this.clampValues(),2),c=u[0],h=u[1],f=t==="start"?-n:n,d=(t==="start"?c:h)*this.getOrientVal([o,l])+f;return{x:a+this.getOrientVal([d,o/2]),y:s+this.getOrientVal([l/2,d])}},e.prototype.inferTextStyle=function(t){var n=this.attributes.orientation;return n==="horizontal"?{}:t==="start"?{transformOrigin:"left center",transform:"rotate(90)",textAlign:"start"}:t==="end"?{transformOrigin:"right center",transform:"rotate(90)",textAlign:"end"}:{}},e.prototype.calcHandleText=function(t){var n,i=this.attributes,a=i.type,s=i.orientation,o=i.formatter,l=i.autoFitLabel,u=zt(this.attributes,"handle"),c=zt(u,"label"),h=u.spacing,f=this.getHandleSize(),d=this.clampValues(),v=t==="start"?d[0]:d[1],g=o(v),p=new Zm({style:(0,Y.pi)((0,Y.pi)((0,Y.pi)({},c),this.inferTextStyle(t)),{text:g})}),m=p.getBBox(),b=m.width,x=m.height;if(p.destroy(),!l){if(a==="value")return{text:g,x:0,y:-x-h};var O=h+f+(s==="horizontal"?b/2:0);return n={text:g},n[s==="horizontal"?"x":"y"]=t==="start"?-O:O,n}var T=0,S=0,k=this.availableSpace,C=k.width,W=k.height,U=this.calcSelectionArea()[1],J=U.x,te=U.y,ie=U.width,ae=U.height,ve=h+f;if(s==="horizontal"){var Z=ve+b/2;if(t==="start"){var H=J-ve-b;T=H>0?-Z:Z}else{var X=C-J-ie-ve>b;T=X?Z:-Z}}else{var q=ve,oe=x+ve;t==="start"?S=te-f>x?-oe:q:S=W-(te+ae)-f>x?oe:-q}return{x:T,y:S,text:g}},e.prototype.getHandleLabelStyle=function(t){var n=zt(this.attributes,"handleLabel");return(0,Y.pi)((0,Y.pi)((0,Y.pi)({},n),this.calcHandleText(t)),this.inferTextStyle(t))},e.prototype.getHandleIconStyle=function(){var t=this.attributes.handleIconShape,n=zt(this.attributes,"handleIcon"),i=this.getOrientVal(["ew-resize","ns-resize"]),a=this.getHandleSize();return(0,Y.pi)({cursor:i,shape:t,size:a},n)},e.prototype.getHandleStyle=function(t){var n=this.attributes,i=n.x,a=n.y,s=n.showLabel,o=n.showLabelOnInteraction,l=n.orientation,u=this.calcHandlePosition(t),c=u.x,h=u.y,f=this.calcHandleText(t),d=s;return!s&&o&&(this.target?d=!0:d=!1),(0,Y.pi)((0,Y.pi)((0,Y.pi)({},au(this.getHandleIconStyle(),"icon")),au((0,Y.pi)((0,Y.pi)({},this.getHandleLabelStyle(t)),f),"label")),{transform:"translate(".concat(c+i,", ").concat(h+a,")"),orientation:l,showLabel:d,type:t,zIndex:3})},e.prototype.getHandleSize=function(){var t=this.attributes,n=t.handleIconSize,i=t.width,a=t.height;return n||Math.floor((this.getOrientVal([+a,+i])+4)/2.4)},e.prototype.getOrientVal=function(t){var n=(0,Y.CR)(t,2),i=n[0],a=n[1],s=this.attributes.orientation;return s==="horizontal"?i:a},e.prototype.setValuesOffset=function(t,n,i){n===void 0&&(n=0),i===void 0&&(i=!1);var a=this.attributes.type,s=(0,Y.CR)(this.getValues(),2),o=s[0],l=s[1],u=a==="range"?t:0,c=[o+u,l+n].sort();i?this.setValues(c):this.innerSetValues(c,!0)},e.prototype.getRatio=function(t){var n=this.availableSpace,i=n.width,a=n.height;return t/this.getOrientVal([i,a])},e.prototype.dispatchCustomEvent=function(t,n,i){var a=this;t.on(n,function(s){s.stopPropagation(),a.dispatchEvent(new zi(i,{detail:s}))})},e.prototype.bindEvents=function(){this.addEventListener("wheel",this.onScroll);var t=this.brushArea;this.dispatchCustomEvent(t,"click","trackClick"),this.dispatchCustomEvent(t,"pointerenter","trackMouseenter"),this.dispatchCustomEvent(t,"pointerleave","trackMouseleave"),t.on("pointerdown",this.onDragStart("track"))},e.prototype.onScroll=function(t){var n=this.attributes.scrollable;if(n){var i=t.deltaX,a=t.deltaY,s=a||i,o=this.getRatio(s);this.setValuesOffset(o,o,!0)}},e.tag="slider",e}(or),mX={backgroundFill:"#262626",backgroundLineCap:"round",backgroundLineWidth:1,backgroundStroke:"#333",backgroundZIndex:-1,formatter:function(r){return r.toString()},labelFill:"#fff",labelFontSize:12,labelTextBaseline:"middle",padding:[2,4],position:"right",radius:0,zIndex:999},Py=Ia({background:"background",labelGroup:"label-group",label:"label"},"indicator"),yX=function(r){(0,Y.ZT)(e,r);function e(t){var n=r.call(this,t,mX)||this;return n.point=[0,0],n.group=n.appendChild(new ji({})),n.isMutationObserved=!0,n}return e.prototype.renderBackground=function(){if(this.label){var t=this.attributes,n=t.position,i=t.padding,a=(0,Y.CR)(jr(i),4),s=a[0],o=a[1],l=a[2],u=a[3],c=this.label.node().getLocalBounds(),h=c.min,f=c.max,d=new Zr(h[0]-u,h[1]-s,f[0]+o-h[0]+u,f[1]+l-h[1]+s),v=this.getPath(n,d),g=zt(this.attributes,"background");this.background=Mt(this.group).maybeAppendByClassName(Py.background,"path").styles((0,Y.pi)((0,Y.pi)({},g),{d:v})),this.group.appendChild(this.label.node())}},e.prototype.renderLabel=function(){var t=this.attributes,n=t.formatter,i=t.labelText,a=zt(this.attributes,"label"),s=(0,Y.CR)(Os(a),2),o=s[0],l=s[1],u=o.text,c=(0,Y._T)(o,["text"]);if(this.label=Mt(this.group).maybeAppendByClassName(Py.labelGroup,"g").styles(l),!!i){var h=this.label.maybeAppendByClassName(Py.label,function(){return ks(n(i))}).style("text",n(i).toString());h.selectAll("text").styles(c)}},e.prototype.adjustLayout=function(){var t=(0,Y.CR)(this.point,2),n=t[0],i=t[1],a=this.attributes,s=a.x,o=a.y;this.group.attr("transform","translate(".concat(s-n,", ").concat(o-i,")"))},e.prototype.getPath=function(t,n){var i=this.attributes.radius,a=n.x,s=n.y,o=n.width,l=n.height,u=[["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"]],c={top:4,right:6,bottom:0,left:2},h=c[t],f=this.createCorner([u[h].slice(-2),u[h+1].slice(-2)]);return u.splice.apply(u,(0,Y.ev)([h+1,1],(0,Y.CR)(f),!1)),u[0][0]="M",u},e.prototype.createCorner=function(t,n){n===void 0&&(n=10);var i=.8,a=pG.apply(void 0,(0,Y.ev)([],(0,Y.CR)(t),!1)),s=(0,Y.CR)(t,2),o=(0,Y.CR)(s[0],2),l=o[0],u=o[1],c=(0,Y.CR)(s[1],2),h=c[0],f=c[1],d=(0,Y.CR)(a?[h-l,[l,h]]:[f-u,[u,f]],2),v=d[0],g=(0,Y.CR)(d[1],2),p=g[0],m=g[1],b=v/2,x=v/Math.abs(v),O=n*x,T=O/2,S=O*Math.sqrt(3)/2*i,k=(0,Y.CR)([p,p+b-T,p+b,p+b+T,m],5),C=k[0],W=k[1],U=k[2],J=k[3],te=k[4];return a?(this.point=[U,u-S],[["L",C,u],["L",W,u],["L",U,u-S],["L",J,u],["L",te,u]]):(this.point=[l+S,U],[["L",l,C],["L",l,W],["L",l+S,U],["L",l,J],["L",l,te]])},e.prototype.applyVisibility=function(){var t=this.attributes.visibility;t==="hidden"?Da(this):Fc(this)},e.prototype.bindEvents=function(){this.label.on(sr.BOUNDS_CHANGED,this.renderBackground)},e.prototype.render=function(){this.renderLabel(),this.renderBackground(),this.adjustLayout(),this.applyVisibility()},e}(or),bX=function(r){(0,Y.ZT)(e,r);function e(t){var n=r.call(this,Or({},e.defaultOptions,t))||this;return n.hoverColor="#f5f5f5",n.selectedColor="#e6f7ff",n.background=n.appendChild(new iu({})),n.label=n.background.appendChild(new ji({})),n}return Object.defineProperty(e.prototype,"padding",{get:function(){return jr(this.style.padding)},enumerable:!1,configurable:!0}),e.prototype.renderLabel=function(){var t=this.style,n=t.label,i=t.value,a=zt(this.attributes,"label");Mt(this.label).maybeAppend(".label",function(){return ks(n)}).attr("className","label").styles(a),this.label.attr("__data__",i)},e.prototype.renderBackground=function(){var t=this.label.getBBox(),n=(0,Y.CR)(this.padding,4),i=n[0],a=n[1],s=n[2],o=n[3],l=t.width,u=t.height,c=l+o+a,h=u+i+s,f=zt(this.attributes,"background"),d=this.style,v=d.width,g=v===void 0?0:v,p=d.height,m=p===void 0?0:p,b=d.selected;this.background.attr((0,Y.pi)((0,Y.pi)({},f),{width:Math.max(c,g),height:Math.max(h,m),fill:b?this.selectedColor:"#fff"})),this.label.attr({transform:"translate(".concat(o,", ").concat((h-u)/2,")")})},e.prototype.render=function(){this.renderLabel(),this.renderBackground()},e.prototype.bindEvents=function(){var t=this;this.addEventListener("pointerenter",function(){t.style.selected||t.background.attr("fill",t.hoverColor)}),this.addEventListener("pointerleave",function(){t.style.selected||t.background.attr("fill",t.style.backgroundFill)});var n=this;this.addEventListener("click",function(){var i=t.style,a=i.label,s=i.value,o=i.onClick;o==null||o(s,{label:a,value:s},n)})},e.defaultOptions={style:{value:"",label:"",cursor:"pointer"}},e}(or),xX=function(r){(0,Y.ZT)(e,r);function e(t){var n,i,a=r.call(this,Or({},e.defaultOptions,t))||this;a.currentValue=(n=e.defaultOptions.style)===null||n===void 0?void 0:n.defaultValue,a.isPointerInSelect=!1,a.select=a.appendChild(new iu({className:"select",style:{cursor:"pointer",width:0,height:0}})),a.dropdown=a.appendChild(new iu({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 e.prototype.setValue=function(t){this.currentValue=t,this.render()},e.prototype.getValue=function(){return this.currentValue},Object.defineProperty(e.prototype,"dropdownPadding",{get:function(){return jr(this.style.dropdownPadding)},enumerable:!1,configurable:!0}),e.prototype.renderSelect=function(){var t=this,n,i=this.style,a=i.x,s=i.y,o=i.width,l=i.height,u=i.bordered,c=i.showDropdownIcon,h=zt(this.attributes,"select"),f=zt(this.attributes,"placeholder");this.select.attr((0,Y.pi)((0,Y.pi)({x:a,y:s,width:o,height:l},h),{fill:"#fff",strokeWidth:u?1:0}));var d=this.dropdownPadding,v=10;c&&Mt(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-d[1]-d[3],", ").concat(s+l/2,")")).style("lineWidth",1).style("stroke",this.select.style.stroke);var g=(n=this.style.options)===null||n===void 0?void 0:n.find(function(x){return x.value===t.currentValue}),p=(0,Y.pi)({x:a+d[3]},f);Mt(this.select).selectAll(".placeholder").data(g?[]:[1]).join(function(x){return x.append("text").attr("className","placeholder").styles(p).style("y",function(){var O=this.getBBox();return s+(l-O.height)/2})},function(x){return x.styles(p)},function(x){return x.remove()});var m=zt(this.attributes,"optionLabel"),b=(0,Y.pi)({x:a+d[3]},m);Mt(this.select).selectAll(".value").data(g?[g]:[]).join(function(x){return x.append(function(O){return ks(O.label)}).attr("className","value").styles(b).style("y",function(){var O=this.getBBox();return s+(l-O.height)/2})},function(x){return x.styles(b)},function(x){return x.remove()})},e.prototype.renderDropdown=function(){var t=this,n,i,a=this.style,s=a.x,o=a.y,l=a.width,u=a.height,c=a.options,h=a.onSelect,f=a.open,d=zt(this.attributes,"dropdown"),v=zt(this.attributes,"option"),g=this.dropdownPadding;Mt(this.dropdown).maybeAppend(".dropdown-container","g").attr("className","dropdown-container").selectAll(".dropdown-item").data(c,function(b){return b.value}).join(function(b){return b.append(function(x){return new bX({className:"dropdown-item",style:(0,Y.pi)((0,Y.pi)((0,Y.pi)({},x),v),{width:l-g[1]-g[3],selected:x.value===t.currentValue,onClick:function(O,T,S){t.setValue(O),h==null||h(O,T,S),t.dispatchEvent(new zi("change",{detail:{value:O,option:T,item:S}})),Da(t.dropdown)}})})}).each(function(x,O){var T,S=(T=this.parentNode)===null||T===void 0?void 0:T.children,k=S.reduce(function(C,W,U){return Ua.time?1:0};return t.sort(n)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"space",{get:function(){var t=this.attributes,n=t.x,i=t.y,a=t.width,s=t.height,o=t.type,l=t.controllerHeight,u=on(+s-l,0,+s),c=new Zr(n,i+ +s-l,+a,l),h,f=0;o==="chart"?(f=35,h=new Zr(n,i+u-f,+a,f)):h=new Zr;var d=o==="time"?10:u,v=new Zr(n,i+(o==="time"?u:u-d),+a,d-f);return{axisBBox:h,controllerBBox:c,timelineBBox:v}},enumerable:!1,configurable:!0}),e.prototype.setBySliderValues=function(t){var n,i,a=this.data,s=(0,Y.CR)(Array.isArray(t)?t:[0,t],2),o=s[0],l=s[1],u=a.length,c=a[Math.floor(o*u)],h=a[Math.ceil(l*u)-(Array.isArray(t)?0:1)];this.states.values=[(n=c==null?void 0:c.time)!==null&&n!==void 0?n:a[0].time,(i=h==null?void 0:h.time)!==null&&i!==void 0?i:1/0]},e.prototype.setByTimebarValues=function(t){var n,i,a,s=this.data,o=(0,Y.CR)(Array.isArray(t)?t:[void 0,t],2),l=o[0],u=o[1],c=s.find(function(f){var d=f.time;return d===l}),h=s.find(function(f){var d=f.time;return d===u});this.states.values=[(n=c==null?void 0:c.time)!==null&&n!==void 0?n:(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]},e.prototype.setByIndex=function(t){var n,i,a,s,o=this.data,l=(0,Y.CR)(t,2),u=l[0],c=l[1];this.states.values=[(i=(n=o[u])===null||n===void 0?void 0:n.time)!==null&&i!==void 0?i:o[0].time,(s=(a=this.data[c])===null||a===void 0?void 0:a.time)!==null&&s!==void 0?s:1/0]},Object.defineProperty(e.prototype,"sliderValues",{get:function(){var t=this.states,n=t.values,i=t.selectionType,a=(0,Y.CR)(Array.isArray(n)?n:[void 0,n],2),s=a[0],o=a[1],l=this.data,u=l.length,c=i==="value",h=function(){var d=l.findIndex(function(v){var g=v.time;return g===s});return c?0:d>-1?d/u:0},f=function(){if(o===1/0)return 1;var d=l.findIndex(function(v){var g=v.time;return g===o});return d>-1?d/u:c?.5:1};return[h(),f()]},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"values",{get:function(){var t=this.states,n=t.values,i=t.selectionType,a=(0,Y.CR)(Array.isArray(n)?n:[this.data[0].time,n],2),s=a[0],o=a[1];return i==="value"?o:[s,o]},enumerable:!1,configurable:!0}),e.prototype.getDatumByRatio=function(t){var n=this.data,i=n.length,a=Math.floor(t*(i-1));return n[a]},Object.defineProperty(e.prototype,"chartHandleIconShape",{get:function(){var t=this.states.selectionType,n=this.space.timelineBBox.height;return t==="range"?function(i){return new LX({style:{type:i,height:n,iconSize:n/6}})}:function(){return new HM({style:{x1:0,y1:-n/2,x2:0,y2:n/2,lineWidth:2,stroke:"#c8c8c8"}})}},enumerable:!1,configurable:!0}),e.prototype.getChartStyle=function(t){var n=this,i=t.x,a=t.y,s=t.width,o=t.height,l=this.states,u=l.selectionType,c=l.chartType,h=this.data,f=this.attributes,d=f.type,v=f.labelFormatter,g=zt(this.attributes,"chart"),p=g.type,m=(0,Y._T)(g,["type"]),b=u==="range";if(d==="time")return(0,Y.pi)({handleIconShape:function(){return new RX({})},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:u,values:this.sliderValues,formatter:function(T){if(v)return v(T);var S=n.getDatumByRatio(T).time;return typeof S=="number"?yT(S):li(S,"YYYY-MM-DD HH:mm:ss")},transform:"translate(".concat(i,", ").concat(a,")"),zIndex:1},m);var x=u==="range"?5:0,O=h.map(function(T){var S=T.value;return S});return(0,Y.pi)({handleIconOffset:x,handleIconShape:this.chartHandleIconShape,selectionFill:"#fff",selectionFillOpacity:.5,selectionType:"invert",sparklineSpacing:.1,sparklineColumnLineWidth:0,sparklineColor:"#d4e5fd",sparklineAreaOpacity:1,sparklineAreaLineWidth:0,sparklineData:O,sparklineType:c,sparklineScale:.8,trackLength:s,trackSize:o,type:u,values:this.sliderValues,transform:"translate(".concat(i,", ").concat(a,")"),zIndex:1},m)},e.prototype.renderChart=function(t){t===void 0&&(t=this.space.timelineBBox),this.timeline.update(this.getChartStyle(t))},e.prototype.updateSelection=function(){this.timeline.setValues(this.sliderValues,!0),this.handleSliderChange(this.sliderValues)},e.prototype.getAxisStyle=function(t){var n=this.data,i=this.attributes,a=i.interval,s=i.labelFormatter,o=zt(this.attributes,"axis"),l=t.x,u=t.y,c=t.width,h=(0,Y.ev)((0,Y.ev)([],(0,Y.CR)(n),!1),[{time:0}],!1).map(function(d,v,g){var p=d.time;return{label:"".concat(p),value:v/(g.length-1),time:p}}),f=(0,Y.pi)({startPos:[l,u],endPos:[l+c,u],data:h,labelFilter:function(d,v){return va?l==="value"?[0,0]:u==="acc"?[k(T),k(T)]:[0,k(S-T)]:T<0?u==="acc"?[0,k(S)]:[k(T+a-S),a]:[k(T),k(S)]},b=m(p);return this.setByIndex(b),this.updateSelection(),b},e.prototype.internalBackward=function(t){var n,i,a=this.moveSelection("backward",t);return t||((i=(n=this.attributes)===null||n===void 0?void 0:n.onBackward)===null||i===void 0||i.call(n),this.dispatchOnChange()),a},e.prototype.backward=function(){this.internalBackward()},e.prototype.internalPlay=function(t){var n=this,i,a,s=this.data,o=this.attributes.loop,l=this.states.speed,u=l===void 0?1:l;this.playInterval=window.setInterval(function(){var c=n.internalForward();c[1]===s.length&&!o&&(n.internalPause(),n.renderController())},1e3/u),this.states.state="play",!t&&((a=(i=this.attributes)===null||i===void 0?void 0:i.onPlay)===null||a===void 0||a.call(i))},e.prototype.play=function(){this.internalPlay()},e.prototype.internalPause=function(t){var n,i;clearInterval(this.playInterval),this.states.state="pause",!t&&((i=(n=this.attributes)===null||n===void 0?void 0:n.onPause)===null||i===void 0||i.call(n))},e.prototype.pause=function(){this.internalPause()},e.prototype.internalForward=function(t){var n,i,a=this.moveSelection("forward",t);return t||((i=(n=this.attributes)===null||n===void 0?void 0:n.onForward)===null||i===void 0||i.call(n),this.dispatchOnChange()),a},e.prototype.forward=function(){this.internalForward()},e.prototype.handleSpeedChange=function(t){var n,i;this.states.speed=t;var a=this.states.state;a==="play"&&(this.internalPause(!0),this.internalPlay(!0)),(i=(n=this.attributes)===null||n===void 0?void 0:n.onSpeedChange)===null||i===void 0||i.call(n,t)},e.prototype.handleSelectionTypeChange=function(t){var n,i;this.states.selectionType=t,this.renderChart(),(i=(n=this.attributes)===null||n===void 0?void 0:n.onSelectionTypeChange)===null||i===void 0||i.call(n,t)},e.prototype.handleChartTypeChange=function(t){var n,i;this.states.chartType=t,this.renderChart(),(i=(n=this.attributes)===null||n===void 0?void 0:n.onChartTypeChange)===null||i===void 0||i.call(n,t)},e.prototype.render=function(){var t=this.space,n=t.axisBBox,i=t.controllerBBox,a=t.timelineBBox;this.renderController(i),this.renderAxis(n),this.renderChart(a),this.states.state==="play"&&this.internalPlay()},e.prototype.destroy=function(){r.prototype.destroy.call(this),this.internalPause(!0)},e.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"}},e}(or);function zX(r){return r instanceof Date}var FX=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})},jX=function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i{var v;const g=Object.assign(Object.assign({x:f[0]/2-l/2,y:d,onChange:p=>{const m=(pi(p)?p:[p,p]).map(b=>zX(b)?b.getTime():b);this.options.mode==="modify"?this.filterElements(m):this.hiddenElements(m),n==null||n(m)}},h),{data:a.map(p=>ht(p)?{time:p,value:0}:p),width:l,height:u,type:i});this.timebar?this.timebar.update(g):(this.timebar=new BX({style:g}),(v=this.canvas)===null||v===void 0||v.appendChild(this.timebar))})}upsertCanvas(){if(this.canvas)return this.canvas;const{className:e,height:t,position:n}=this.options,i=this.context.canvas,[a]=i.getSize(),[s,,o]=this.padding,[l,u]=ey({width:a,height:t+s+o,graphCanvas:i,className:"timebar",placement:n});return this.container=l,e&&l.classList.add(e),this.canvas=u,this.canvas}filterElements(e){return FX(this,void 0,void 0,function*(){var t;if(!this.originalData)return;const{elementTypes:n,getTime:i}=this.options,{graph:a,element:s}=this.context,o=bT(this.originalData);n.forEach(u=>{const c=`${u}s`;o[c]=(this.originalData[c]||[]).filter(h=>{const f=i(h);return!!xT(f,e)})});const l=[...o.nodes,...o.combos].map(u=>Re(u));o.edges=o.edges.filter(u=>{const c=u.source,h=u.target;return l.includes(c)&&l.includes(h)}),a.setData(o),yield(t=s.draw({animation:!1,silence:!0}))===null||t===void 0?void 0:t.finished})}hiddenElements(e){const{graph:t}=this.context,{elementTypes:n,getTime:i}=this.options,a=[],s=[];n.forEach(o=>{var l;const u=`${o}s`;(((l=this.originalData)===null||l===void 0?void 0:l[u])||[]).forEach(h=>{const f=Re(h),d=i(h);xT(d,e)?s.push(f):a.push(f)})}),t.hideElement(a,!1),t.showElement(s,!1)}destroy(){var e,t,n;const{graph:i}=this.context;this.originalData&&i.setData(Object.assign({},this.originalData)),(e=this.timebar)===null||e===void 0||e.destroy(),(t=this.canvas)===null||t===void 0||t.destroy(),(n=this.container)===null||n===void 0||n.remove(),this.originalData=void 0,this.container=void 0,this.timebar=void 0,this.canvas=void 0,super.destroy()}}Hv.defaultOptions={position:"bottom",enable:!0,timebarType:"time",className:"g6-timebar",width:450,height:60,zIndex:3,elementTypes:["node"],padding:10,mode:"modify",getTime:r=>HX(r,GX,void 0),loop:!1};const bT=r=>{const{nodes:e=[],edges:t=[],combos:n=[]}=r;return{nodes:[...e],edges:[...t],combos:[...n]}},xT=(r,e)=>{if(ht(e))return r===e;const[t,n]=e;return r>=t&&r<=n},HX=(r,e,t)=>{var n;for(let i=0;i{e[n]="8px"}),e.flexDirection=r.startsWith("top")||r.startsWith("bottom")?"row":"column",e}const WX=` .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; } `,VX=` `;var ET=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})};class Xv extends Fr{constructor(e,t){super(e,Object.assign({},Xv.defaultOptions,t)),this.$element=Kl("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 n=this.context.canvas.getContainer();this.$element.style.display="flex",n.appendChild(this.$element),rm("g6-toolbar-css","style",{},WX,document.head),rm("g6-toolbar-svgicon","div",{display:"none"},VX),this.$element.addEventListener("click",this.onToolbarItemClick),this.update(t)}update(e){const t=Object.create(null,{update:{get:()=>super.update}});return ET(this,void 0,void 0,function*(){t.update.call(this,e);const{className:n,position:i,style:a}=this.options;this.$element.className=`g6-toolbar ${n||""}`,Object.assign(this.$element.style,a,XX(i)),this.$element.innerHTML=yield this.getDOMContent()})}destroy(){this.$element.removeEventListener("click",this.onToolbarItemClick),this.$element.remove(),super.destroy()}getDOMContent(){return ET(this,void 0,void 0,function*(){return(yield this.options.getItems()).map(t=>`
`).join("")})}}Xv.defaultOptions={position:"top-left"};function ky(r){var e=document.createElement("div");e.innerHTML=r;var t=e.childNodes[0];return t&&e.contains(t)&&e.removeChild(t),t}function YX(r,e){return!r||!e?r:r.replace(/\\?\{([^{}]+)\}/g,function(t,n){return t.charAt(0)==="\\"?t.slice(1):e[n]===void 0?"":e[n]})}var UX=YX,wT=function(r,e){if(e==null){r.innerHTML="";return}r.replaceChildren?Array.isArray(e)?r.replaceChildren.apply(r,(0,Y.ev)([],(0,Y.CR)(e),!1)):r.replaceChildren(e):(r.innerHTML="",Array.isArray(e)?e.forEach(function(t){return r.appendChild(t)}):r.appendChild(e))};function Cy(r){return r===void 0&&(r=""),{CONTAINER:"".concat(r,"tooltip"),TITLE:"".concat(r,"tooltip-title"),LIST:"".concat(r,"tooltip-list"),LIST_ITEM:"".concat(r,"tooltip-list-item"),NAME:"".concat(r,"tooltip-list-item-name"),MARKER:"".concat(r,"tooltip-list-item-marker"),NAME_LABEL:"".concat(r,"tooltip-list-item-name-label"),VALUE:"".concat(r,"tooltip-list-item-value"),CROSSHAIR_X:"".concat(r,"tooltip-crosshair-x"),CROSSHAIR_Y:"".concat(r,"tooltip-crosshair-y")}}var PT={overflow:"hidden","white-space":"nowrap","text-overflow":"ellipsis"};function ZX(r){var e;r===void 0&&(r="");var t=Cy(r);return e={},e[".".concat(t.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"},e[".".concat(t.TITLE)]={color:"rgba(0, 0, 0, 0.45)"},e[".".concat(t.LIST)]={margin:"0px","list-style-type":"none",padding:"0px"},e[".".concat(t.LIST_ITEM)]={"list-style-type":"none",display:"flex","line-height":"2em","align-items":"center","justify-content":"space-between","white-space":"nowrap"},e[".".concat(t.MARKER)]={width:"8px",height:"8px","border-radius":"50%",display:"inline-block","margin-right":"4px"},e[".".concat(t.NAME)]={display:"flex","align-items":"center","max-width":"216px"},e[".".concat(t.NAME_LABEL)]=(0,Y.pi)({flex:1},PT),e[".".concat(t.VALUE)]=(0,Y.pi)({display:"inline-block",float:"right",flex:1,"text-align":"right","min-width":"28px","margin-left":"30px",color:"rgba(0, 0, 0, 0.85)"},PT),e[".".concat(t.CROSSHAIR_X)]={position:"absolute",width:"1px","background-color":"rgba(0, 0, 0, 0.25)"},e[".".concat(t.CROSSHAIR_Y)]={position:"absolute",height:"1px","background-color":"rgba(0, 0, 0, 0.25)"},e}var KX=function(r){(0,Y.ZT)(e,r);function e(t){var n=this,i,a,s=(a=(i=t.style)===null||i===void 0?void 0:i.template)===null||a===void 0?void 0:a.prefixCls,o=Cy(s);return n=r.call(this,t,{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:ZX(s)})||this,n.timestamp=-1,n.prevCustomContentKey=n.attributes.contentKey,n.initShape(),n.render(n.attributes,n),n}return Object.defineProperty(e.prototype,"HTMLTooltipElement",{get:function(){return this.element},enumerable:!1,configurable:!0}),e.prototype.getContainer=function(){return this.element},Object.defineProperty(e.prototype,"elementSize",{get:function(){var t=this.element.offsetWidth,n=this.element.offsetHeight;return{width:t,height:n}},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"HTMLTooltipItemsElements",{get:function(){var t=this.attributes,n=t.data,i=t.template;return n.map(function(a,s){var o=a.name,l=o===void 0?"":o,u=a.color,c=u===void 0?"black":u,h=a.index,f=(0,Y._T)(a,["name","color","index"]),d=(0,Y.pi)({name:l,color:c,index:h!=null?h:s},f);return ky(UX(i.item,d))})},enumerable:!1,configurable:!0}),e.prototype.render=function(t,n){this.renderHTMLTooltipElement(),this.updatePosition()},e.prototype.destroy=function(){var t;(t=this.element)===null||t===void 0||t.remove(),r.prototype.destroy.call(this)},e.prototype.show=function(t,n){var i=this;if(t!==void 0&&n!==void 0){var a=this.element.style.visibility==="hidden",s=function(){i.attributes.x=t!=null?t:i.attributes.x,i.attributes.y=n!=null?n:i.attributes.y,i.updatePosition()};a?this.closeTransition(s):s()}this.element.style.visibility="visible"},e.prototype.hide=function(t,n){t===void 0&&(t=0),n===void 0&&(n=0);var i=this.attributes.enterable;i&&this.isCursorEntered(t,n)||(this.element.style.visibility="hidden")},e.prototype.initShape=function(){var t=this.attributes.template;this.element=ky(t.container),this.id&&this.element.setAttribute("id",this.id)},e.prototype.renderCustomContent=function(){if(!(this.prevCustomContentKey!==void 0&&this.prevCustomContentKey===this.attributes.contentKey)){this.prevCustomContentKey=this.attributes.contentKey;var t=this.attributes.content;t&&(typeof t=="string"?this.element.innerHTML=t:wT(this.element,t))}},e.prototype.renderHTMLTooltipElement=function(){var t,n,i=this.attributes,a=i.template,s=i.title,o=i.enterable,l=i.style,u=i.content,c=Cy(a.prefixCls),h=this.element;if(this.element.style.pointerEvents=o?"auto":"none",u)this.renderCustomContent();else{s?(h.innerHTML=a.title,h.getElementsByClassName(c.TITLE)[0].innerHTML=s):(n=(t=h.getElementsByClassName(c.TITLE))===null||t===void 0?void 0:t[0])===null||n===void 0||n.remove();var f=this.HTMLTooltipItemsElements,d=document.createElement("ul");d.className=c.LIST,wT(d,f);var v=this.element.querySelector(".".concat(c.LIST));v?v.replaceWith(d):h.appendChild(d)}Nj(h,l)},e.prototype.getRelativeOffsetFromCursor=function(t){var n=this.attributes,i=n.position,a=n.offset,s=t||i,o=s.split("-"),l={left:[-1,0],right:[1,0],top:[0,-1],bottom:[0,1]},u=this.elementSize,c=u.width,h=u.height,f=[-c/2,-h/2];return o.forEach(function(d){var v=(0,Y.CR)(f,2),g=v[0],p=v[1],m=(0,Y.CR)(l[d],2),b=m[0],x=m[1];f=[g+(c/2+a[0])*b,p+(h/2+a[1])*x]}),f},e.prototype.setOffsetPosition=function(t){var n=(0,Y.CR)(t,2),i=n[0],a=n[1],s=this.attributes,o=s.x,l=o===void 0?0:o,u=s.y,c=u===void 0?0:u,h=s.container,f=h.x,d=h.y;this.element.style.left="".concat(+l+f+i,"px"),this.element.style.top="".concat(+c+d+a,"px")},e.prototype.updatePosition=function(){var t=this.attributes.showDelay,n=t===void 0?60:t,i=Date.now();this.timestamp>0&&i-this.timestampb+O,top:px+T},k=[];c.split("-").forEach(function(W){S[W]?k.push(m[W]):k.push(W)});var C=k.join("-");return this.getRelativeOffsetFromCursor(C)},e.prototype.isCursorEntered=function(t,n){if(this.element){var i=this.element.getBoundingClientRect(),a=i.x,s=i.y,o=i.width,l=i.height;return new Zr(a,s,o,l).isPointIn(t,n)}return!1},e.prototype.closeTransition=function(t){var n=this,i=this.element.style.transition;this.element.style.transition="none",t(),setTimeout(function(){n.element.style.transition=i},10)},e.tag="tooltip",e}(or);class Wv extends Fr{constructor(e,t){super(e,Object.assign({},Wv.defaultOptions,t)),this.currentTarget=null,this.tooltipElement=null,this.container=null,this.isEnable=n=>{const{enable:i}=this.options;return typeof i=="function"?i(n):i},this.onClick=n=>{const{target:{id:i}}=n;this.currentTarget===i?(this.hide(n),this.currentTarget=null):(this.currentTarget=i,this.show(n))},this.onPointerMove=n=>{const{target:i}=n;!this.currentTarget||i.id===this.currentTarget||this.show(n)},this.onPointerLeave=n=>{this.hide(n),this.currentTarget=null},this.onCanvasMove=n=>{this.hide(n),this.currentTarget=null},this.onPointerEnter=n=>{this.show(n)},this.showById=n=>{const i={target:{id:n}};this.show(i)},this.getElementData=(n,i)=>{const{model:a}=this.context;switch(i){case"node":return a.getNodeData([n]);case"edge":return a.getEdgeData([n]);case"combo":return a.getComboData([n]);default:return[]}},this.show=n=>{const{client:i,target:{id:a}}=n;if(id(n.target)||!this.tooltipElement||!this.isEnable(n))return;const s=this.context.graph.getElementType(a),{getContent:o,title:l}=this.options;this.currentTarget=a;const u=this.getElementData(a,s);let c,h;if(i)c=i.x,h=i.y;else{const d=ii(u,"0.style",{x:0,y:0});c=d.x,h=d.y}let f={};if(o)f.content=o(n,u);else{const d=this.context.graph.getElementRenderStyle(a),v=s==="node"?d.fill:d.stroke;f={title:l||s,data:u.map(g=>({name:"ID",value:g.id||`${g.source} -> ${g.target}`,color:v}))}}this.tooltipElement.update(Object.assign(Object.assign(Object.assign({},this.tooltipStyleProps),{x:c,y:h,style:{".tooltip":{visibility:"visible"}}}),f))},this.hide=n=>{var i;if(!n){(i=this.tooltipElement)===null||i===void 0||i.hide();return}if(!this.tooltipElement||!this.currentTarget)return;const{client:{x:a,y:s}}=n;this.tooltipElement.hide(a,s)},this.initTooltip=()=>{var n;const i=new KX({className:"tooltip",style:this.tooltipStyleProps});return(n=this.container)===null||n===void 0||n.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:pointerenter":this.onPointerEnter,"node:pointermove":this.onPointerMove,"canvas:pointermove":this.onCanvasMove,"edge:pointerenter":this.onPointerEnter,"edge:pointermove":this.onPointerMove,"combo:pointerenter":this.onPointerEnter,"combo:pointermove":this.onPointerMove,contextmenu:this.onPointerLeave,"node:drag":this.onPointerLeave}}update(e){var t;this.unbindEvents(),super.update(e),this.tooltipElement&&((t=this.container)===null||t===void 0||t.removeChild(this.tooltipElement.HTMLTooltipElement)),this.tooltipElement=this.initTooltip(),this.bindEvents()}render(){const{canvas:e}=this.context,t=e.getContainer();t&&(this.container=t,this.tooltipElement=this.initTooltip())}unbindEvents(){const{graph:e}=this.context,t=this.getEvents();Object.keys(t).forEach(n=>{e.off(n,t[n])})}bindEvents(){const{graph:e}=this.context,t=this.getEvents();Object.keys(t).forEach(n=>{e.on(n,t[n])})}get tooltipStyleProps(){const{canvas:e}=this.context,{center:t}=e.getBounds(),n=e.getContainer(),{top:i,left:a}=n.getBoundingClientRect(),{style:s,position:o,enterable:l,container:u={x:-a,y:-i},title:c,offset:h}=this.options,[f,d]=t,[v,g]=e.getSize();return{x:f,y:d,container:u,title:c,bounding:{x:0,y:0,width:v,height:g},position:o,enterable:l,offset:h,style:s}}destroy(){var e;this.unbindEvents(),this.tooltipElement&&((e=this.container)===null||e===void 0||e.removeChild(this.tooltipElement.HTMLTooltipElement)),super.destroy()}}Wv.defaultOptions={trigger:"hover",position:"top-right",enterable:!1,enable:!0,offset:[10,10],style:{".tooltip":{visibility:"hidden"}}};var MT=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})};let uu;function ST(r,e){return uu||(uu=document.createElement("canvas")),uu.width=r,uu.height=e,uu.getContext("2d").clearRect(0,0,r,e),uu}function QX(r,e,t,n){return MT(this,void 0,void 0,function*(){const i=ST(r,e),a=i.getContext("2d"),{rotate:s,opacity:o,textFill:l,textFontSize:u,textFontFamily:c,textFontVariant:h,textFontWeight:f,textAlign:d,textBaseline:v}=n;return a.textAlign=d,a.textBaseline=v,a.translate(r/2,e/2),a.font=`${u}px ${c} ${h} ${f}`,s&&a.rotate(s),o&&(a.globalAlpha=o),l&&(a.fillStyle=l,a.fillText(`${t}`,0,0)),i.toDataURL()})}function JX(r,e,t,n){return MT(this,void 0,void 0,function*(){const i=ST(r,e),a=i.getContext("2d"),{rotate:s,opacity:o}=n;s&&a.rotate(s),o&&(a.globalAlpha=o);const l=new Image;return l.crossOrigin="anonymous",l.src=t,new Promise(u=>{l.onload=function(){const c=r>l.width?(r-l.width)/2:0,h=e>l.height?(e-l.height)/2:0;a.drawImage(l,0,0,l.width,l.height,c,h,r-c*2,e-h*2),u(i.toDataURL())}})})}var qX=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})},$X=function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);isuper.update}});return qX(this,void 0,void 0,function*(){t.update.call(this,e);const n=this.options,{width:i,height:a,text:s,imageURL:o}=n,l=$X(n,["width","height","text","imageURL"]);Object.keys(l).forEach(c=>{c.startsWith("background")&&(this.$element.style[c]=e[c])});const u=o?yield JX(i,a,o,l):yield QX(i,a,s,l);this.$element.style.backgroundImage=`url(${u})`})}destroy(){super.destroy(),this.$element.remove()}}Vv.defaultOptions={width:200,height:100,opacity:.2,rotate:Math.PI/12,text:"",textFill:"#000",textFontSize:16,textAlign:"center",textBaseline:"middle",backgroundRepeat:"repeat"};function eW(r,e,t,n=!1){const i=kp[r][e];!n&&i?i!==t&&wi.warn(`The extension ${e} of ${r} has been registered before.`):Object.assign(kp[r],{[e]:t})}var TT=function(){function r(e){tt(this,r),this.dragndropPluginOptions=e}return nt(r,[{key:"apply",value:function(t){var n=this,i=t.renderingService,a=t.renderingContext,s=a.root.ownerDocument,o=s.defaultView,l=function(c){var h=c.target,f=h===s,d=f&&n.dragndropPluginOptions.isDocumentDraggable?s:h.closest&&h.closest("[draggable=true]");if(d){var v=!1,g=c.timeStamp,p=[c.clientX,c.clientY],m=null,b=[c.clientX,c.clientY],x=function(){var T=Ow(dc().mark(function S(k){var C,W,U,J,te,ie;return dc().wrap(function(ve){for(;;)switch(ve.prev=ve.next){case 0:if(v){ve.next=8;break}if(C=k.timeStamp-g,W=gi([k.clientX,k.clientY],p),!(C<=n.dragndropPluginOptions.dragstartTimeThreshold||W<=n.dragndropPluginOptions.dragstartDistanceThreshold)){ve.next=5;break}return ve.abrupt("return");case 5:k.type="dragstart",d.dispatchEvent(k),v=!0;case 8:if(k.type="drag",k.dx=k.clientX-b[0],k.dy=k.clientY-b[1],d.dispatchEvent(k),b=[k.clientX,k.clientY],f){ve.next=21;break}return U=n.dragndropPluginOptions.overlap==="pointer"?[k.canvasX,k.canvasY]:h.getBounds().center,ve.next=17,s.elementsFromPoint(U[0],U[1]);case 17:J=ve.sent,te=J[J.indexOf(h)+1],ie=(te==null?void 0:te.closest("[droppable=true]"))||(n.dragndropPluginOptions.isDocumentDroppable?s:null),m!==ie&&(m&&(k.type="dragleave",k.target=m,m.dispatchEvent(k)),ie&&(k.type="dragenter",k.target=ie,ie.dispatchEvent(k)),m=ie,m&&(k.type="dragover",k.target=m,m.dispatchEvent(k)));case 21:case"end":return ve.stop()}},S)}));return function(k){return T.apply(this,arguments)}}();o.addEventListener("pointermove",x);var O=function(S){if(v){S.detail={preventClick:!0};var k=S.clone();m&&(k.type="drop",k.target=m,m.dispatchEvent(k)),k.type="dragend",d.dispatchEvent(k),v=!1}o.removeEventListener("pointermove",x)};h.addEventListener("pointerup",O,{once:!0}),h.addEventListener("pointerupoutside",O,{once:!0})}};i.hooks.init.tap(r.tag,function(){o.addEventListener("pointerdown",l)}),i.hooks.destroy.tap(r.tag,function(){o.removeEventListener("pointerdown",l)})}}])}();TT.tag="Dragndrop";var tW=function(r){function e(){var t,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return tt(this,e),t=nn(this,e),t.name="dragndrop",t.options=n,t}return rn(e,r),nt(e,[{key:"init",value:function(){this.addRenderingPlugin(new TT(ar({overlap:"pointer",isDocumentDraggable:!1,isDocumentDroppable:!1,dragstartDistanceThreshold:0,dragstartTimeThreshold:0},this.options)))}},{key:"destroy",value:function(){this.removeAllRenderingPlugins()}},{key:"setOptions",value:function(n){Object.assign(this.plugins[0].dragndropPluginOptions,n)}}])}(Is),AT=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})},OT=function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i{const f=new gp(Object.assign(Object.assign({},o),{supportsMutipleCanvasesInOneContainer:s,renderer:u[h],background:s?h==="background"?i:void 0:i}));return[h,f]}));RT(c),this.extends={config:this.config,renderer:n,renderers:u,layers:c}}get ready(){return Promise.all(Object.entries(this.getLayers()).map(([,e])=>e.ready))}resize(e,t){Object.assign(this.extends.config,{width:e,height:t}),Object.values(this.getLayers()).forEach(n=>{const i=n.getCamera(),a=i.getPosition(),s=i.getFocalPoint();n.resize(e,t),i.setPosition(a),i.setFocalPoint(s)})}getBounds(e){return Ju(Object.values(this.getLayers()).map(t=>e?t.getRoot().childNodes.find(i=>i.classList.includes(e)):t.getRoot()).filter(t=>(t==null?void 0:t.childNodes.length)>0).map(t=>t.getBounds()))}getContainer(){const e=this.extends.config.container;return typeof e=="string"?document.getElementById(e):e}getSize(){return[this.extends.config.width||0,this.extends.config.height||0]}appendChild(e,t){var n;const i=((n=e.style)===null||n===void 0?void 0:n.$layer)||"main";return this.getLayer(i).appendChild(e,t)}setRenderer(e){if(e===this.extends.renderer)return;const t=_T(e,this.config.enableMultiLayer?CT:kT);this.extends.renderers=t,Object.entries(t).forEach(([n,i])=>this.getLayer(n).setRenderer(i)),RT(this.getLayers())}getCanvasByViewport(e){return zr(this.getLayer().viewport2Canvas(Ta(e)))}getViewportByCanvas(e){return zr(this.getLayer().canvas2Viewport(Ta(e)))}getViewportByClient(e){return zr(this.getLayer().client2Viewport(Ta(e)))}getClientByViewport(e){return zr(this.getLayer().viewport2Client(Ta(e)))}getClientByCanvas(e){return this.getClientByViewport(this.getViewportByCanvas(e))}getCanvasByClient(e){const t=this.getLayer(),n=t.client2Viewport(Ta(e));return zr(t.viewport2Canvas(n))}toDataURL(){return AT(this,arguments,void 0,function*(e={}){const t=globalThis.devicePixelRatio||1,{mode:n="viewport"}=e,i=OT(e,["mode"]);let[a,s,o,l]=[0,0,0,0];if(n==="viewport")[o,l]=this.getSize();else if(n==="overall"){const m=this.getBounds(),b=Hs(m);[a,s]=m.min,[o,l]=b}const u=ky('
    '),c=new gp({width:o,height:l,renderer:new Yf,devicePixelRatio:t,container:u,background:this.extends.config.background});yield c.ready,c.appendChild(this.getLayer("background").getRoot().cloneNode(!0)),c.appendChild(this.getRoot().cloneNode(!0));const h=this.getLayer("label").getRoot().cloneNode(!0),f=c.viewport2Canvas({x:0,y:0}),d=this.getCanvasByViewport([0,0]);h.translate([d[0]-f.x,d[1]-f.y]),h.scale(1/this.getCamera().getZoom()),c.appendChild(h),c.appendChild(this.getLayer("transient").getRoot().cloneNode(!0));const v=this.getCamera(),g=c.getCamera();if(n==="viewport")g.setZoom(v.getZoom()),g.setPosition(v.getPosition()),g.setFocalPoint(v.getFocalPoint());else if(n==="overall"){const[m,b,x]=g.getPosition(),[O,T,S]=g.getFocalPoint();g.setPosition([m+a,b+s,x]),g.setFocalPoint([O+a,T+s,S])}const p=c.getContextService();return new Promise(m=>{c.addEventListener(Ci.RERENDER,()=>AT(this,void 0,void 0,function*(){yield new Promise(x=>setTimeout(x,300));const b=yield p.toDataURL(i);m(b)}))})})}destroy(){Object.values(this.getLayers()).forEach(e=>{e.getCamera().cancelLandmarkAnimation(),e.destroy()})}}function _T(r,e){return Object.fromEntries(e.map(t=>{const n=(r==null?void 0:r(t))||new Yf;return t==="main"?n.registerPlugin(new tW({isDocumentDraggable:!0,isDocumentDroppable:!0,dragstartDistanceThreshold:10,dragstartTimeThreshold:100})):n.unregisterPlugin(n.getPlugin("dom-interaction")),[t,n]}))}function RT(r){Object.entries(r).forEach(([e,t])=>{const n=t.getContextService().getDomElement();n!=null&&n.style&&(n.style.gridArea="1 / 1 / 2 / 2",n.style.outline="none",n.tabIndex=1,e!=="main"&&(n.style.pointerEvents="none")),n!=null&&n.parentElement&&(n.parentElement.style.display="grid")})}const cu=r=>r?parseInt(r):0;function rW(r){const e=getComputedStyle(r),t=r.clientWidth||cu(e.width),n=r.clientHeight||cu(e.height),i=cu(e.paddingLeft)+cu(e.paddingRight),a=cu(e.paddingTop)+cu(e.paddingBottom);return[t-i,n-a]}function LT(r){if(!r)return[0,0];let e=640,t=480;const[n,i]=rW(r);e=n||e,t=i||t;const a=1,s=1;return[Math.max(ht(e)?e:a,a),Math.max(ht(t)?t:s,s)]}class Yv{constructor(e){this.type=e}}class kr extends Yv{constructor(e,t){super(e),this.data=t}}class fa extends Yv{constructor(e,t,n,i){super(e),this.animationType=t,this.animation=n,this.data=i}}class hu extends Yv{constructor(e,t,n){super(e),this.elementType=t,this.data=n}}class Uv extends Yv{constructor(e,t){super(e),this.data=t}}function Hr(r,e){r.emit(e.type,e)}function iW(r){if(!r)return null;if(r instanceof Zb)return{type:"canvas",element:r};let e=r;for(;e;){if(gc(e))return{type:"node",element:e};if(Yw(e))return{type:"edge",element:e};if(S0(e))return{type:"combo",element:e};e=e.parentElement}return null}function DT(r){var e;return((e=r==null?void 0:r.style)===null||e===void 0?void 0:e.zIndex)||0}const fu="cachedStyle",Zv=r=>`__${r}__`;function aW(r,e){const t=Array.isArray(e)?e:[e];ii(r,fu)||ac(r,fu,{}),t.forEach(n=>{ac(ii(r,fu),Zv(n),r.attributes[n])})}function IT(r,e){return ii(r,[fu,Zv(e)])}function sW(r,e){return Zv(e)in(ii(r,fu)||{})}function Wq(r,e,t){set(r,[fu,Zv(e)],t)}class oW{constructor(e){this.tasks=[],this.animations=new Set,this.context=e}getTasks(){const e=[...this.tasks];return this.tasks=[],e}add(e,t){this.tasks.push([e,t])}animate(e,t,n){var i,a,s;(i=t==null?void 0:t.before)===null||i===void 0||i.call(t);const o=this.getTasks().map(([u,c])=>{var h,f,d;const{element:v,elementType:g,stage:p}=u,m=c_(this.context.options,g,p,e);(h=c==null?void 0:c.before)===null||h===void 0||h.call(c);const b=m.length?f_(v,this.inferStyle(u,n),m):null;return b?((f=c==null?void 0:c.beforeAnimate)===null||f===void 0||f.call(c,b),b.finished.then(()=>{var x,O;(x=c==null?void 0:c.afterAnimate)===null||x===void 0||x.call(c,b),(O=c==null?void 0:c.after)===null||O===void 0||O.call(c),this.animations.delete(b)})):(d=c==null?void 0:c.after)===null||d===void 0||d.call(c),b}).filter(Boolean);o.forEach(u=>this.animations.add(u));const l=Cp(o);return l?((a=t==null?void 0:t.beforeAnimate)===null||a===void 0||a.call(t,l),l.finished.then(()=>{var u,c;(u=t==null?void 0:t.afterAnimate)===null||u===void 0||u.call(t,l),(c=t==null?void 0:t.after)===null||c===void 0||c.call(t),this.release()})):(s=t==null?void 0:t.after)===null||s===void 0||s.call(t),l}inferStyle(e,t){var n,i;const{element:a,elementType:s,stage:o,originalStyle:l,updatedStyle:u={}}=e;e.modifiedStyle||(e.modifiedStyle=Object.assign(Object.assign({},l),u));const{modifiedStyle:c}=e,h={},f={};if(o==="enter")Object.assign(h,{opacity:0});else if(o==="exit")Object.assign(f,{opacity:0});else if(o==="show")Object.assign(h,{opacity:0}),Object.assign(f,{opacity:(n=IT(a,"opacity"))!==null&&n!==void 0?n:Qu("opacity")});else if(o==="hide")Object.assign(h,{opacity:(i=IT(a,"opacity"))!==null&&i!==void 0?i:Qu("opacity")}),Object.assign(f,{opacity:0});else if(o==="collapse"){const{collapse:d}=t||{},{target:v,descendants:g,position:p}=d;if(s==="node"){if(g.includes(a.id)){const[m,b,x]=p;Object.assign(f,{x:m,y:b,z:x})}}else if(s==="combo"){if(a.id===v||g.includes(a.id)){const[m,b]=p;Object.assign(f,{x:m,y:b,childrenNode:l.childrenNode})}}else s==="edge"&&Object.assign(f,{sourceNode:c.sourceNode,targetNode:c.targetNode})}else if(o==="expand"){const{expand:d}=t||{},{target:v,descendants:g,position:p}=d;if(s==="node"){if(a.id===v||g.includes(a.id)){const[m,b,x]=p;Object.assign(h,{x:m,y:b,z:x})}}else if(s==="combo"){if(a.id===v||g.includes(a.id)){const[m,b,x]=p;Object.assign(h,{x:m,y:b,z:x,childrenNode:c.childrenNode})}}else s==="edge"&&Object.assign(h,{sourceNode:c.sourceNode,targetNode:c.targetNode})}return[Object.keys(h).length>0?Object.assign({},l,h):l,Object.keys(f).length>0?Object.assign({},c,f):c]}stop(){this.animations.forEach(e=>e.cancel())}clear(){this.tasks=[]}release(){var e,t;const{canvas:n}=this.context,i=(t=(e=n.document)===null||e===void 0?void 0:e.timeline)===null||t===void 0?void 0:t.animationsWithPromises;i&&(n.document.timeline.animationsWithPromises=i.filter(a=>a.playState!=="finished"))}destroy(){this.stop(),this.animations.clear(),this.tasks=[]}}class lW{constructor(e){this.batchCount=0,this.context=e}emit(e){const{graph:t}=this.context;t.emit(e.type,e)}startBatch(e=!0){this.batchCount++,this.batchCount===1&&this.emit(new kr(rt.BATCH_START,{initiate:e}))}endBatch(){this.batchCount--,this.batchCount===0&&this.emit(new kr(rt.BATCH_END))}get isBatching(){return this.batchCount>0}destroy(){this.context=null}}class uW extends Yp{constructor(e){super(e),this.currentTarget=null,this.currentTargetType=null,this.category="behavior",this.forwardCanvasEvents=t=>{const{target:n}=t,i=iW(n);if(!i)return;const{graph:a,canvas:s}=this.context,{type:o,element:l}=i;if("destroyed"in l&&(id(l)||l.destroyed))return;const{type:u,detail:c,button:h}=t,f=Object.assign(Object.assign({},t),{target:l,targetType:o,originalTarget:n});u===We.POINTER_MOVE&&(this.currentTarget!==l&&(this.currentTarget&&a.emit(`${this.currentTargetType}:${We.POINTER_LEAVE}`,Object.assign(Object.assign({},f),{type:We.POINTER_LEAVE,target:this.currentTarget,targetType:this.currentTargetType})),l&&(Object.assign(f,{type:We.POINTER_ENTER}),a.emit(`${o}:${We.POINTER_ENTER}`,f))),this.currentTarget=l,this.currentTargetType=o),u===We.CLICK&&h===2||(a.emit(`${o}:${u}`,f),a.emit(u,f)),u===We.CLICK&&c===2&&(Object.assign(f,{type:We.DBLCLICK}),a.emit(`${o}:${We.DBLCLICK}`,f),a.emit(We.DBLCLICK,f)),u===We.POINTER_DOWN&&h===2&&(Object.assign(f,{type:We.CONTEXT_MENU,preventDefault:()=>{var d;(d=s.getContainer())===null||d===void 0||d.addEventListener(We.CONTEXT_MENU,v=>v.preventDefault(),{once:!0})}}),a.emit(`${o}:${We.CONTEXT_MENU}`,f),a.emit(We.CONTEXT_MENU,f))},this.forwardContainerEvents=t=>{this.context.graph.emit(t.type,t)},this.forwardEvents(),this.setBehaviors(this.context.options.behaviors||[])}setBehaviors(e){this.setExtensions(e)}forwardEvents(){const e=this.context.canvas.getContainer();e&&[Rl.KEY_DOWN,Rl.KEY_UP].forEach(n=>{e.addEventListener(n,this.forwardContainerEvents)});const t=this.context.canvas.document;t&&[We.CLICK,We.DBLCLICK,We.POINTER_OVER,We.POINTER_LEAVE,We.POINTER_ENTER,We.POINTER_MOVE,We.POINTER_OUT,We.POINTER_DOWN,We.POINTER_UP,We.CONTEXT_MENU,We.DRAG_START,We.DRAG,We.DRAG_END,We.DRAG_ENTER,We.DRAG_OVER,We.DRAG_LEAVE,We.DROP,We.WHEEL].forEach(n=>{t.addEventListener(n,this.forwardCanvasEvents)})}destroy(){const e=this.context.canvas.getContainer();e&&[Rl.KEY_DOWN,Rl.KEY_UP].forEach(t=>{e.removeEventListener(t,this.forwardContainerEvents)}),this.context.canvas.document.removeAllEventListeners(),super.destroy()}}function cW(r,e){e===void 0&&(e=new Map);var t=[];if(Array.isArray(r))for(var n=0,i=r.length;nv.length!==g.length?!1:v.every((p,m)=>p===g[m]),d=(v,g)=>{const p=Object.keys(v),m=Object.keys(g);return p.length!==m.length?!1:p.every(b=>v[b]===g[b])};return!(!d(s,h)||!f(a,c)||!f(t,o)||!d(n,l)||!d(i,u))}var hW=function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i0}silence(e){this.isTraceless=!0,e(),this.isTraceless=!1}isCombo(e){return this.comboIds.has(e)||this.latestRemovedComboIds.has(e)}getData(){return{nodes:this.getNodeData(),edges:this.getEdgeData(),combos:this.getComboData()}}getNodeData(e){return this.model.getAllNodes().reduce((t,n)=>{const i=Cr(n);return this.isCombo(Re(i))||(e===void 0||e.includes(Re(i)))&&t.push(i),t},[])}getEdgeDatum(e){return Cr(this.model.getEdge(e))}getEdgeData(e){return this.model.getAllEdges().reduce((t,n)=>{const i=Cr(n);return(e===void 0||e.includes(Re(i)))&&t.push(i),t},[])}getComboData(e){return this.model.getAllNodes().reduce((t,n)=>{const i=Cr(n);return this.isCombo(Re(i))&&(e===void 0||e.includes(Re(i)))&&t.push(i),t},[])}getRootsData(e=ea){return this.model.getRoots(e).map(Cr)}getAncestorsData(e,t){const{model:n}=this;return!n.hasNode(e)||!n.hasTreeStructure(t)?[]:n.getAncestors(e,t).map(Cr)}getDescendantsData(e){const t=this.getElementDataById(e),n=[];return Bo(t,i=>{i!==t&&n.push(i)},i=>this.getChildrenData(Re(i)),"TB"),n}getParentData(e,t){const{model:n}=this;if(!t){wi.warn("The hierarchy structure key is not specified");return}if(!n.hasNode(e)||!n.hasTreeStructure(t))return;const i=n.getParent(e,t);return i?Cr(i):void 0}getChildrenData(e){const t=this.getElementType(e)==="node"?ea:An,{model:n}=this;return!n.hasNode(e)||!n.hasTreeStructure(t)?[]:n.getChildren(e,t).map(Cr)}getElementsDataByType(e){return e==="node"?this.getNodeData():e==="edge"?this.getEdgeData():e==="combo"?this.getComboData():[]}getElementDataById(e){return this.getElementType(e)==="edge"?this.getEdgeDatum(e):this.getNodeLikeDatum(e)}getNodeLikeDatum(e){const t=this.model.getNode(e);return Cr(t)}getNodeLikeData(e){return this.model.getAllNodes().reduce((t,n)=>{const i=Cr(n);return e?e.includes(Re(i))&&t.push(i):t.push(i),t},[])}getElementDataByState(e,t){return this.getElementsDataByType(e).filter(i=>{var a;return(a=i.states)===null||a===void 0?void 0:a.includes(t)})}getElementState(e){var t;return((t=this.getElementDataById(e))===null||t===void 0?void 0:t.states)||[]}hasNode(e){return this.model.hasNode(e)&&!this.isCombo(e)}hasEdge(e){return this.model.hasEdge(e)}hasCombo(e){return this.model.hasNode(e)&&this.isCombo(e)}getRelatedEdgesData(e,t="both"){return this.model.getRelatedEdges(e,t).map(Cr)}getNeighborNodesData(e){return this.model.getNeighbors(e).map(Cr)}setData(e){const{nodes:t=[],edges:n=[],combos:i=[]}=e,{nodes:a,edges:s,combos:o}=this.getData(),l=Vs(a,t,h=>Re(h),du),u=Vs(s,n,h=>Re(h),du),c=Vs(o,i,h=>Re(h),du);this.batch(()=>{const h={nodes:l.enter,edges:u.enter,combos:c.enter};this.addData(h),this.computeZIndex(h,"add",!0);const f={nodes:l.update,edges:u.update,combos:c.update};this.updateData(f),this.computeZIndex(f,"update",!0);const d={nodes:l.exit.map(Re),edges:u.exit.map(Re),combos:c.exit.map(Re)};this.removeData(d)})}addData(e){const{nodes:t,edges:n,combos:i}=e;this.batch(()=>{this.addComboData(i),this.addNodeData(t),this.addEdgeData(n)}),this.computeZIndex(e,"add")}addNodeData(e=[]){e.length&&(this.model.addNodes(e.map(t=>(this.pushChange({value:t,type:Wn.NodeAdded}),_y(t)))),this.updateNodeLikeHierarchy(e),this.computeZIndex({nodes:e},"add"))}addEdgeData(e=[]){e.length&&(this.model.addEdges(e.map(t=>(this.pushChange({value:t,type:Wn.EdgeAdded}),_y(t)))),this.computeZIndex({edges:e},"add"))}addComboData(e=[]){if(!e.length)return;const{model:t}=this;t.hasTreeStructure(An)||t.attachTreeStructure(An),t.addNodes(e.map(n=>(this.comboIds.add(Re(n)),this.pushChange({value:n,type:Wn.ComboAdded}),_y(n)))),this.updateNodeLikeHierarchy(e),this.computeZIndex({combos:e},"add")}addChildrenData(e,t){const n=this.getNodeLikeDatum(e),i=t.map(Re);this.addNodeData(t),this.updateNodeData([{id:e,children:[...n.children||[],...i]}]),this.addEdgeData(i.map(a=>({source:e,target:a})))}computeZIndex(e,t,n=!1){!n&&this.isBatching()||this.batch(()=>{const{nodes:i=[],edges:a=[],combos:s=[]}=e;s.forEach(o=>{var l,u,c;const h=Re(o);if(t==="add"&&ht((l=o.style)===null||l===void 0?void 0:l.zIndex)||t==="update"&&!("combo"in o))return;const f=this.getParentData(h,An),d=f?((c=(u=f.style)===null||u===void 0?void 0:u.zIndex)!==null&&c!==void 0?c:0)+1:0;this.preventUpdateNodeLikeHierarchy(()=>{this.updateComboData([{id:h,style:{zIndex:d}}])})}),i.forEach(o=>{var l,u,c;const h=Re(o);if(t==="add"&&ht((l=o.style)===null||l===void 0?void 0:l.zIndex)||t==="update"&&!("combo"in o)&&!("children"in o))return;let f=0;const d=this.getParentData(h,An);if(d)f=(((u=d.style)===null||u===void 0?void 0:u.zIndex)||0)+1;else{const v=this.getParentData(h,ea);v&&(f=((c=v==null?void 0:v.style)===null||c===void 0?void 0:c.zIndex)||0)}this.preventUpdateNodeLikeHierarchy(()=>{this.updateNodeData([{id:h,style:{zIndex:f}}])})}),a.forEach(o=>{var l,u,c,h,f;if(ht((l=o.style)===null||l===void 0?void 0:l.zIndex))return;let{id:d,source:v,target:g}=o;if(!d)d=Re(o);else{const b=this.getEdgeDatum(d);v=b.source,g=b.target}if(!v||!g)return;const p=((c=(u=this.getNodeLikeDatum(v))===null||u===void 0?void 0:u.style)===null||c===void 0?void 0:c.zIndex)||0,m=((f=(h=this.getNodeLikeDatum(g))===null||h===void 0?void 0:h.style)===null||f===void 0?void 0:f.zIndex)||0;this.updateEdgeData([{id:Re(o),style:{zIndex:Math.max(p,m)-1}}])})})}getFrontZIndex(e){var t;const n=this.getElementType(e),i=this.getElementDataById(e),a=this.getData();if(Object.assign(a,{[`${n}s`]:a[`${n}s`].filter(s=>Re(s)!==e)}),n==="combo"&&!_i(i)){const s=new Set(this.getAncestorsData(e,An).map(Re));a.nodes=a.nodes.filter(o=>!s.has(Re(o))),a.combos=a.combos.filter(o=>!s.has(Re(o))),a.edges=a.edges.filter(({source:o,target:l})=>!s.has(o)&&!s.has(l))}return Math.max(((t=i.style)===null||t===void 0?void 0:t.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(e){if(!this.enableUpdateNodeLikeHierarchy)return;const{model:t}=this;e.forEach(n=>{const i=Re(n);bf(n)&&(t.hasTreeStructure(An)||t.attachTreeStructure(An),this.setParent(i,bf(n),An));const s=n.children||[];if(s.length){t.hasTreeStructure(ea)||t.attachTreeStructure(ea);const o=s.filter(l=>t.hasNode(l));o.forEach(l=>this.setParent(l,i,ea)),o.length!==s.length&&this.updateNodeData([{id:i,children:o}])}})}preventUpdateNodeLikeHierarchy(e){this.enableUpdateNodeLikeHierarchy=!1,e(),this.enableUpdateNodeLikeHierarchy=!0}updateData(e){const{nodes:t,edges:n,combos:i}=e;this.batch(()=>{this.updateNodeData(t),this.updateComboData(i),this.updateEdgeData(n)}),this.computeZIndex(e,"update")}updateNodeData(e=[]){if(!e.length)return;const{model:t}=this;this.batch(()=>{const n=[];e.forEach(i=>{const a=Re(i),s=Cr(t.getNode(a));if(du(s,i))return;const o=fo(s,i);this.pushChange({value:o,original:s,type:Wn.NodeUpdated}),t.mergeNodeData(a,o),n.push(o)}),this.updateNodeLikeHierarchy(n)}),this.computeZIndex({nodes:e},"update")}refreshData(){const{nodes:e,edges:t,combos:n}=this.getData();e.forEach(i=>{this.pushChange({value:i,original:i,type:Wn.NodeUpdated})}),t.forEach(i=>{this.pushChange({value:i,original:i,type:Wn.EdgeUpdated})}),n.forEach(i=>{this.pushChange({value:i,original:i,type:Wn.ComboUpdated})})}syncNodeDatum(e){const{model:t}=this,n=Re(e),i=Cr(t.getNode(n)),a=fo(i,e);t.mergeNodeData(n,a)}updateEdgeData(e=[]){if(!e.length)return;const{model:t}=this;this.batch(()=>{e.forEach(n=>{const i=Re(n),a=Cr(t.getEdge(i));if(du(a,n))return;n.source&&a.source!==n.source&&t.updateEdgeSource(i,n.source),n.target&&a.target!==n.target&&t.updateEdgeTarget(i,n.target);const s=fo(a,n);this.pushChange({value:s,original:a,type:Wn.EdgeUpdated}),t.mergeEdgeData(i,s)})}),this.computeZIndex({edges:e},"update")}updateComboData(e=[]){if(!e.length)return;const{model:t}=this;t.batch(()=>{const n=[];e.forEach(i=>{const a=Re(i),s=Cr(t.getNode(a));if(du(s,i))return;const o=fo(s,i);this.pushChange({value:o,original:s,type:Wn.ComboUpdated}),t.mergeNodeData(a,o),n.push(o)}),this.updateNodeLikeHierarchy(n)}),this.computeZIndex({combos:e},"update")}setParent(e,t,n,i=!0){if(e===t)return;const a=this.getNodeLikeDatum(e),s=bf(a);if(s!==t&&n===An){const o={id:e,combo:t};this.isCombo(e)?this.syncComboDatum(o):this.syncNodeDatum(o)}this.model.setParent(e,t,n),i&&n===An&&cW([s,t]).forEach(o=>{o!==void 0&&this.refreshComboData(o)})}refreshComboData(e){const t=this.getComboData([e])[0],n=this.getAncestorsData(e,An);t&&this.pushChange({value:t,original:t,type:Wn.ComboUpdated}),n.forEach(i=>{this.pushChange({value:i,original:i,type:Wn.ComboUpdated})})}syncComboDatum(e){const{model:t}=this,n=Re(e);if(!t.hasNode(n))return;const i=Cr(t.getNode(n)),a=fo(i,e);t.mergeNodeData(n,a)}getElementPosition(e){const t=this.getElementDataById(e);return Br(t)}translateNodeLikeBy(e,t){this.isCombo(e)?this.translateComboBy(e,t):this.translateNodeBy(e,t)}translateNodeLikeTo(e,t){this.isCombo(e)?this.translateComboTo(e,t):this.translateNodeTo(e,t)}translateNodeBy(e,t){const n=this.getElementPosition(e),i=jt(n,[...t,0].slice(0,3));this.translateNodeTo(e,i)}translateNodeTo(e,t){const[n=0,i=0,a=0]=t;this.preventUpdateNodeLikeHierarchy(()=>{this.updateNodeData([{id:e,style:{x:n,y:i,z:a}}])})}translateComboBy(e,t){const[n=0,i=0,a=0]=t;if([n,i,a].some(isNaN)||[n,i,a].every(l=>l===0))return;const s=this.getComboData([e])[0];if(!s)return;const o=new Set;Bo(s,l=>{const u=Re(l);if(o.has(u))return;o.add(u);const[c,h,f]=Br(l),d=fo(l,{style:{x:c+n,y:h+i,z:f+a}});this.pushChange({value:d,original:l,type:this.isCombo(u)?Wn.ComboUpdated:Wn.NodeUpdated}),this.model.mergeNodeData(u,d)},l=>this.getChildrenData(Re(l)),"BT")}translateComboTo(e,t){var n;if(t.some(isNaN))return;const[i=0,a=0,s=0]=t,o=(n=this.getComboData([e]))===null||n===void 0?void 0:n[0];if(!o)return;const[l,u,c]=Br(o),h=i-l,f=a-u,d=s-c;Bo(o,v=>{const g=Re(v),[p,m,b]=Br(v),x=fo(v,{style:{x:p+h,y:m+f,z:b+d}});this.pushChange({value:x,original:v,type:this.isCombo(g)?Wn.ComboUpdated:Wn.NodeUpdated}),this.model.mergeNodeData(g,x)},v=>this.getChildrenData(Re(v)),"BT")}removeData(e){const{nodes:t,edges:n,combos:i}=e;this.batch(()=>{this.removeEdgeData(n),this.removeNodeData(t),this.removeComboData(i),this.latestRemovedComboIds=new Set(i)})}removeNodeData(e=[]){e.length&&this.batch(()=>{e.forEach(t=>{this.removeEdgeData(this.getRelatedEdgesData(t).map(Re)),this.pushChange({value:this.getNodeData([t])[0],type:Wn.NodeRemoved}),this.removeNodeLikeHierarchy(t)}),this.model.removeNodes(e)})}removeEdgeData(e=[]){e.length&&(e.forEach(t=>this.pushChange({value:this.getEdgeData([t])[0],type:Wn.EdgeRemoved})),this.model.removeEdges(e))}removeComboData(e=[]){e.length&&this.batch(()=>{e.forEach(t=>{this.pushChange({value:this.getComboData([t])[0],type:Wn.ComboRemoved}),this.removeNodeLikeHierarchy(t),this.comboIds.delete(t)}),this.model.removeNodes(e)})}removeNodeLikeHierarchy(e){if(this.model.hasTreeStructure(An)){const t=bf(this.getNodeLikeDatum(e));this.setParent(e,void 0,An,!1),this.model.getChildren(e,An).forEach(n=>{const i=Cr(n),a=Re(i);this.setParent(Re(i),t,An,!1);const s=fo(i,{id:Re(i),combo:t});this.pushChange({value:s,original:i,type:this.isCombo(a)?Wn.ComboUpdated:Wn.NodeUpdated}),this.model.mergeNodeData(Re(i),s)}),Et(t)||this.refreshComboData(t)}}getElementType(e){if(this.model.hasNode(e))return this.isCombo(e)?"combo":"node";if(this.model.hasEdge(e))return"edge";throw new Error(bs(`Unknown element type of id: ${e}`))}destroy(){const{model:e}=this,t=e.getAllNodes(),n=e.getAllEdges();e.removeEdges(n.map(i=>i.id)),e.removeNodes(t.map(i=>i.id)),this.context={}}}var Kv=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})};class vW{constructor(e){this.elementMap={},this.shapeTypeMap={},this.paletteStyle={},this.defaultStyle={},this.stateStyle={},this.visibilityCache=new WeakMap,this.context=e}init(){if(!this.container){const{canvas:e}=this.context;this.container=e.appendChild(new kl({className:"elements"}))}}emit(e,t){t.silence||Hr(this.context.graph,e)}forEachElementData(e){Io.forEach(t=>{const n=this.context.model.getElementsDataByType(t);e(t,n)})}getElementType(e,t){var n;const{options:i,graph:a}=this.context,s=((n=i[e])===null||n===void 0?void 0:n.type)||t.type;return s?typeof s=="string"?s:s.call(a,t):e==="edge"?"line":"circle"}getTheme(e){return Ex(this.context.options)[e]||{}}getThemeStyle(e){return this.getTheme(e).style||{}}getThemeStateStyle(e,t){const{state:n={}}=this.getTheme(e);return Object.assign({},...t.map(i=>n[i]||{}))}computePaletteStyle(){const{options:e}=this.context;this.paletteStyle={},this.forEachElementData((t,n)=>{var i,a;const s=Object.assign({},IE((i=this.getTheme(t))===null||i===void 0?void 0:i.palette),IE((a=e[t])===null||a===void 0?void 0:a.palette));s!=null&&s.field&&Object.assign(this.paletteStyle,zL(n,s))})}getPaletteStyle(e,t){const n=this.paletteStyle[t];return n?e==="edge"?{stroke:n}:{fill:n}:{}}computeElementDefaultStyle(e,t){var n;const{options:i}=this.context,a=((n=i[e])===null||n===void 0?void 0:n.style)||{};"transform"in a&&Array.isArray(a.transform)&&(a.transform=[...a.transform]),this.defaultStyle[Re(t.datum)]=LE(a,t)}computeElementsDefaultStyle(e){const{graph:t}=this.context;this.forEachElementData((n,i)=>{const a=i.length;for(let s=0;sthis.getElementStateStyle(e,i,n)))}computeElementsStatesStyle(e){const{graph:t}=this.context;this.forEachElementData((n,i)=>{const a=i.length;for(let s=0;sthis.elementMap[e])}getEdges(){return this.context.model.getEdgeData().map(e=>this.elementMap[Re(e)])}getCombos(){return this.context.model.getComboData().map(({id:e})=>this.elementMap[e])}getElementComputedStyle(e,t){const n=Re(t),i=this.getThemeStyle(e),a=this.getPaletteStyle(e,n),s=t.style||{},o=this.getDefaultStyle(n),l=this.getThemeStateStyle(e,this.getElementState(n)),u=this.getStateStyle(n),c=Object.assign({},i,a,s,o,l,u);if(e==="combo"){const h=this.context.model.getChildrenData(n),d=!!c.collapsed?[]:h.map(Re).filter(v=>this.getElement(v));Object.assign(c,{childrenNode:d,childrenData:h})}return c}draw(e={animation:!0}){this.init();const t=this.computeChangesAndDrawData(e);if(!t)return null;const{type:n="draw",stage:i=n,animation:a,silence:s}=e,{dataChanges:o,drawData:l}=t;this.markDestroyElement(l),this.computeStyle(i);const{add:u,update:c,remove:h}=l;return this.destroyElements(h,e),this.createElements(u,e),this.updateElements(c,e),this.context.animation.animate(a,s?{}:{before:()=>this.emit(new kr(rt.BEFORE_DRAW,{dataChanges:o,animation:a,stage:i,render:n==="render"}),e),beforeAnimate:f=>this.emit(new fa(rt.BEFORE_ANIMATE,Ei.DRAW,f,l),e),afterAnimate:f=>this.emit(new fa(rt.AFTER_ANIMATE,Ei.DRAW,f,l),e),after:()=>this.emit(new kr(rt.AFTER_DRAW,{dataChanges:o,animation:a,stage:i,render:n==="render",firstRender:this.context.graph.rendered===!1}),e)})}computeChangesAndDrawData(e){const{model:t}=this.context,n=t.getChanges(),i=lm(n);if(i.length===0)return null;const{NodeAdded:a=[],NodeUpdated:s=[],NodeRemoved:o=[],EdgeAdded:l=[],EdgeUpdated:u=[],EdgeRemoved:c=[],ComboAdded:h=[],ComboUpdated:f=[],ComboRemoved:d=[]}=nf(i,m=>m.type),v=m=>new Map(m.map(b=>{const x=b.value;return[Re(x),x]})),g={add:{nodes:v(a),edges:v(l),combos:v(h)},update:{nodes:v(s),edges:v(u),combos:v(f)},remove:{nodes:v(o),edges:v(c),combos:v(d)}},p=this.transformData(g,e);return t.clearChanges(),{dataChanges:n,drawData:p}}transformData(e,t){const n=this.context.transform.getTransformInstance();return Object.values(n).reduce((i,a)=>a.beforeDraw(i,t),e)}createElement(e,t,n){var i;const a=Re(t);if(this.getElement(a))return;const o=this.getElementType(e,t),l=this.getElementComputedStyle(e,t),u=ys(e,o);if(!u)return wi.warn(`The element ${o} of ${e} is not registered.`);this.emit(new hu(rt.BEFORE_ELEMENT_CREATE,e,t),n);const c=this.container.appendChild(new u({id:a,context:this.context,style:Object.assign({},l)}));this.shapeTypeMap[a]=o,this.elementMap[a]=c;const{stage:h="enter"}=n;(i=this.context.animation)===null||i===void 0||i.add({element:c,elementType:e,stage:h,originalStyle:Object.assign({},c.attributes),updatedStyle:l},{after:()=>{var f;this.emit(new hu(rt.AFTER_ELEMENT_CREATE,e,t),n),(f=c.onCreate)===null||f===void 0||f.call(c)}})}createElements(e,t){const{nodes:n,edges:i,combos:a}=e;[["node",n],["combo",a],["edge",i]].forEach(([o,l])=>{l.forEach(u=>this.createElement(o,u,t))})}getUpdateStageStyle(e,t,n){const{stage:i="update"}=n;if(i==="translate")if(e==="node"||e==="combo"){const{style:{x:a=0,y:s=0,z:o=0}={}}=t;return{x:a,y:s,z:o}}else return{};return this.getElementComputedStyle(e,t)}updateElement(e,t,n){var i;const a=Re(t),{stage:s="update"}=n,o=this.getElement(a);if(!o)return()=>null;this.emit(new hu(rt.BEFORE_ELEMENT_UPDATE,e,t),n);const l=this.getElementType(e,t),u=this.getUpdateStageStyle(e,t,n);this.shapeTypeMap[a]!==l&&(o.destroy(),delete this.shapeTypeMap[a],delete this.elementMap[a],this.createElement(e,t,{animation:!1,silence:!0}));const c=s!=="visibility"?s:u.visibility==="hidden"?"hide":"show";c==="hide"&&delete u.visibility,(i=this.context.animation)===null||i===void 0||i.add({element:o,elementType:e,stage:c,originalStyle:Object.assign({},o.attributes),updatedStyle:u},{before:()=>{const h=this.elementMap[a];s!=="collapse"&&k0(h,u),s==="visibility"&&(sW(h,"opacity")||aW(h,"opacity"),this.visibilityCache.set(h,c==="show"?"visible":"hidden"),c==="show"&&Lo(h,"visible"))},after:()=>{var h;const f=this.elementMap[a];s==="collapse"&&k0(f,u),c==="hide"&&Lo(f,this.visibilityCache.get(f)),this.emit(new hu(rt.AFTER_ELEMENT_UPDATE,e,t),n),(h=f.onUpdate)===null||h===void 0||h.call(f)}})}updateElements(e,t){const{nodes:n,edges:i,combos:a}=e;[["node",n],["combo",a],["edge",i]].forEach(([o,l])=>{l.forEach(u=>this.updateElement(o,u,t))})}markDestroyElement(e){Object.values(e.remove).forEach(t=>{t.forEach(n=>{const i=Re(n),a=this.getElement(i);a&&B6(a)})})}destroyElement(e,t,n){var i;const{stage:a="exit"}=n,s=Re(t),o=this.elementMap[s];if(!o)return()=>null;this.emit(new hu(rt.BEFORE_ELEMENT_DESTROY,e,t),n),(i=this.context.animation)===null||i===void 0||i.add({element:o,elementType:e,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 hu(rt.AFTER_ELEMENT_DESTROY,e,t),n)}})}destroyElements(e,t){const{nodes:n,edges:i,combos:a}=e;[["combo",a],["edge",i],["node",n]].forEach(([o,l])=>{l.forEach(u=>this.destroyElement(o,u,t))})}clearElement(e){delete this.paletteStyle[e],delete this.defaultStyle[e],delete this.stateStyle[e],delete this.elementMap[e],delete this.shapeTypeMap[e]}collapseNode(e,t){return Kv(this,void 0,void 0,function*(){var n;const{model:i,layout:a}=this.context,s=this.computeChangesAndDrawData({stage:"collapse",animation:t});if(!s)return;this.markDestroyElement(s.drawData);const o=yield a.simulate();i.updateData(o);const l=this.computeChangesAndDrawData({stage:"collapse",animation:t});if(!l)return;const{drawData:u}=l,{add:c,remove:h,update:f}=u;this.markDestroyElement(u);const d={animation:t,stage:"collapse",data:u};this.destroyElements(h,d),this.createElements(c,d),this.updateElements(f,d),yield(n=this.context.animation.animate(t,{beforeAnimate:v=>this.emit(new fa(rt.BEFORE_ANIMATE,Ei.COLLAPSE,v,u),d),afterAnimate:v=>this.emit(new fa(rt.AFTER_ANIMATE,Ei.COLLAPSE,v,u),d)},{collapse:{target:e,descendants:Array.from(h.nodes).map(([,v])=>Re(v)),position:Br(f.nodes.get(e))}}))===null||n===void 0?void 0:n.finished})}expandNode(e,t){return Kv(this,void 0,void 0,function*(){var n;const{model:i,layout:a}=this.context;if(!i.getAncestorsData(e,An).every(v=>_i(v)))return;const s=Br(i.getNodeData([e])[0]),o=this.computeChangesAndDrawData({stage:"expand",animation:t});if(!o)return;const{drawData:{add:l}}=o;this.createElements(l,{animation:!1,stage:"expand",target:e}),this.context.animation.clear();const u=yield a.simulate();i.updateData(u),this.computeStyle("expand");const c=this.computeChangesAndDrawData({stage:"collapse",animation:t});if(!c)return;const{drawData:h}=c,{update:f}=h,d={animation:t,stage:"expand",data:h};l.edges.forEach(v=>f.edges.set(Re(v),v)),l.nodes.forEach(v=>f.nodes.set(Re(v),v)),this.updateElements(f,d),yield(n=this.context.animation.animate(t,{beforeAnimate:v=>this.emit(new fa(rt.BEFORE_ANIMATE,Ei.EXPAND,v,h),d),afterAnimate:v=>this.emit(new fa(rt.AFTER_ANIMATE,Ei.EXPAND,v,h),d)},{expand:{target:e,descendants:Array.from(l.nodes).map(([,v])=>Re(v)),position:s}}))===null||n===void 0?void 0:n.finished})}collapseCombo(e,t){return Kv(this,void 0,void 0,function*(){var n;const{model:i,element:a}=this.context;if(i.getAncestorsData(e,An).some(g=>_i(g)))return;const s=a.getElement(e),o=s.getComboPosition(Object.assign(Object.assign({},s.attributes),{collapsed:!0})),l=this.computeChangesAndDrawData({stage:"collapse",animation:t});if(!l)return;const{dataChanges:u,drawData:c}=l;this.markDestroyElement(c);const{update:h,remove:f}=c,d={animation:t,stage:"collapse",data:c};this.destroyElements(f,d),this.updateElements(h,d);const v=g=>Array.from(g).map(([,p])=>Re(p));yield(n=this.context.animation.animate(t,{before:()=>this.emit(new kr(rt.BEFORE_DRAW,{dataChanges:u,animation:t}),d),beforeAnimate:g=>this.emit(new fa(rt.BEFORE_ANIMATE,Ei.COLLAPSE,g,c),d),afterAnimate:g=>this.emit(new fa(rt.AFTER_ANIMATE,Ei.COLLAPSE,g,c),d),after:()=>this.emit(new kr(rt.AFTER_DRAW,{dataChanges:u,animation:t}),d)},{collapse:{target:e,descendants:[...v(f.nodes),...v(f.combos)],position:o}}))===null||n===void 0?void 0:n.finished})}expandCombo(e,t){return Kv(this,void 0,void 0,function*(){var n;const{model:i}=this.context,a=Br(i.getComboData([e])[0]);this.computeStyle("expand");const s=this.computeChangesAndDrawData({stage:"expand",animation:t});if(!s)return;const{dataChanges:o,drawData:l}=s,{add:u,update:c}=l,h={animation:t,stage:"expand",data:l,target:e};this.createElements(u,h),this.updateElements(c,h);const f=d=>Array.from(d).map(([,v])=>Re(v));yield(n=this.context.animation.animate(t,{before:()=>this.emit(new kr(rt.BEFORE_DRAW,{dataChanges:o,animation:t}),h),beforeAnimate:d=>this.emit(new fa(rt.BEFORE_ANIMATE,Ei.EXPAND,d,l),h),afterAnimate:d=>this.emit(new fa(rt.AFTER_ANIMATE,Ei.EXPAND,d,l),h),after:()=>this.emit(new kr(rt.AFTER_DRAW,{dataChanges:o,animation:t}),h)},{expand:{target:e,descendants:[...f(u.nodes),...f(u.combos)],position:a}}))===null||n===void 0?void 0:n.finished})}destroy(){this.container.destroy(),this.elementMap={},this.shapeTypeMap={},this.defaultStyle={},this.stateStyle={},this.paletteStyle={},this.context={}}}const BT=Symbol("Comlink.proxy"),gW=Symbol("Comlink.endpoint"),zT=Symbol("Comlink.releaseProxy"),Ry=Symbol("Comlink.finalizer"),Qv=Symbol("Comlink.thrown"),FT=r=>typeof r=="object"&&r!==null||typeof r=="function",pW={canHandle:r=>FT(r)&&r[BT],serialize(r){const{port1:e,port2:t}=new MessageChannel;return GT(r,e),[t,[t]]},deserialize(r){return r.start(),XT(r)}},mW={canHandle:r=>FT(r)&&Qv in r,serialize({value:r}){let e;return r instanceof Error?e={isError:!0,value:{message:r.message,name:r.name,stack:r.stack}}:e={isError:!1,value:r},[e,[]]},deserialize(r){throw r.isError?Object.assign(new Error(r.value.message),r.value):r.value}},jT=new Map([["proxy",pW],["throw",mW]]);function yW(r,e){for(const t of r)if(e===t||t==="*"||t instanceof RegExp&&t.test(e))return!0;return!1}function GT(r,e=globalThis,t=["*"]){e.addEventListener("message",function n(i){if(!i||!i.data)return;if(!yW(t,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(al);let u;try{const c=o.slice(0,-1).reduce((f,d)=>f[d],r),h=o.reduce((f,d)=>f[d],r);switch(s){case"GET":u=h;break;case"SET":c[o.slice(-1)[0]]=al(i.data.value),u=!0;break;case"APPLY":u=h.apply(c,l);break;case"CONSTRUCT":{const f=new h(...l);u=MW(f)}break;case"ENDPOINT":{const{port1:f,port2:d}=new MessageChannel;GT(r,d),u=PW(f,[f])}break;case"RELEASE":u=void 0;break;default:return}}catch(c){u={value:c,[Qv]:0}}Promise.resolve(u).catch(c=>({value:c,[Qv]:0})).then(c=>{const[h,f]=eg(c);e.postMessage(Object.assign(Object.assign({},h),{id:a}),f),s==="RELEASE"&&(e.removeEventListener("message",n),HT(e),Ry in r&&typeof r[Ry]=="function"&&r[Ry]())}).catch(c=>{const[h,f]=eg({value:new TypeError("Unserializable return value"),[Qv]:0});e.postMessage(Object.assign(Object.assign({},h),{id:a}),f)})}),e.start&&e.start()}function bW(r){return r.constructor.name==="MessagePort"}function HT(r){bW(r)&&r.close()}function XT(r,e){return Ly(r,[],e)}function Jv(r){if(r)throw new Error("Proxy has been released and is not useable")}function WT(r){return vu(r,{type:"RELEASE"}).then(()=>{HT(r)})}const qv=new WeakMap,$v="FinalizationRegistry"in globalThis&&new FinalizationRegistry(r=>{const e=(qv.get(r)||0)-1;qv.set(r,e),e===0&&WT(r)});function xW(r,e){const t=(qv.get(e)||0)+1;qv.set(e,t),$v&&$v.register(r,e,r)}function EW(r){$v&&$v.unregister(r)}function Ly(r,e=[],t=function(){}){let n=!1;const i=new Proxy(t,{get(a,s){if(Jv(n),s===zT)return()=>{EW(i),WT(r),n=!0};if(s==="then"){if(e.length===0)return{then:()=>i};const o=vu(r,{type:"GET",path:e.map(l=>l.toString())}).then(al);return o.then.bind(o)}return Ly(r,[...e,s])},set(a,s,o){Jv(n);const[l,u]=eg(o);return vu(r,{type:"SET",path:[...e,s].map(c=>c.toString()),value:l},u).then(al)},apply(a,s,o){Jv(n);const l=e[e.length-1];if(l===gW)return vu(r,{type:"ENDPOINT"}).then(al);if(l==="bind")return Ly(r,e.slice(0,-1));const[u,c]=VT(o);return vu(r,{type:"APPLY",path:e.map(h=>h.toString()),argumentList:u},c).then(al)},construct(a,s){Jv(n);const[o,l]=VT(s);return vu(r,{type:"CONSTRUCT",path:e.map(u=>u.toString()),argumentList:o},l).then(al)}});return xW(i,r),i}function wW(r){return Array.prototype.concat.apply([],r)}function VT(r){const e=r.map(eg);return[e.map(t=>t[0]),wW(e.map(t=>t[1]))]}const YT=new WeakMap;function PW(r,e){return YT.set(r,e),r}function MW(r){return Object.assign(r,{[BT]:!0})}function Yq(r,e=globalThis,t="*"){return{postMessage:(n,i)=>r.postMessage(n,t,i),addEventListener:e.addEventListener.bind(e),removeEventListener:e.removeEventListener.bind(e)}}function eg(r){for(const[e,t]of jT)if(t.canHandle(r)){const[n,i]=t.serialize(r);return[{type:"HANDLER",name:e,value:n},i]}return[{type:"RAW",value:r},YT.get(r)||[]]}function al(r){switch(r.type){case"HANDLER":return jT.get(r.name).deserialize(r.value);case"RAW":return r.value}}function vu(r,e,t){return new Promise(n=>{const i=SW();r.addEventListener("message",function a(s){!s.data||!s.data.id||s.data.id!==i||(r.removeEventListener("message",a),n(s.data))}),r.start&&r.start(),r.postMessage(Object.assign({id:i},e),t)})}function SW(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}class TW extends hd{constructor(e,t,n){super(),this.graph=e,this.layout=t,this.options=n,this.spawnWorker()}spawnWorker(){this.proxy=XT(new Worker(new URL(w.p+w.u(7509),w.b),{type:void 0})),this.running&&(this.running=!1,this.execute())}execute(){var e;return Wt(this,void 0,void 0,function*(){if(this.running)return this;this.running=!0;const t=this.layout.options,{onTick:n}=t,i=a2(t,["onTick"]),a={};Object.keys(i).forEach(u=>{pt(i[u])||(a[u]=i[u])});const s={layout:{id:this.layout.id,options:a,iterations:(e=this.options)===null||e===void 0?void 0:e.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[zT]()}isRunning(){return this.running}}var Jc=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})},AW=function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);it.afterLayout())}simulate(){return Jc(this,void 0,void 0,function*(){if(!this.options)return{};const e=Array.isArray(this.options)?this.options:[this.options];let t={};for(const n of e){const i=e.indexOf(n),a=this.getLayoutData(n);t=yield this.stepLayout(a,Object.assign(Object.assign(Object.assign({},this.presetOptions),n),{animation:!1}),i)}return t})}stepLayout(e,t,n){return Jc(this,void 0,void 0,function*(){return U6(t)?yield this.treeLayout(e,t,n):yield this.graphLayout(e,t,n)})}graphLayout(e,t,n){return Jc(this,void 0,void 0,function*(){const{animation:i,enableWorker:a,iterations:s=300}=t,o=this.initGraphLayout(t);if(!o)return{};if(this.instances[n]=o,this.instance=o,a){const u=o;return this.supervisor=new TW(u.graphData2LayoutModel(e),u.instance,{iterations:s}),dd(yield this.supervisor.execute())}if(K0(o))return i?yield o.execute(e,{onTick:u=>{this.updateElementPosition(u,!1)}}):(o.execute(e),o.stop(),o.tick(s));const l=yield o.execute(e);if(i){const u=this.updateElementPosition(l,i);yield u==null?void 0:u.finished}return l})}treeLayout(e,t,n){return Jc(this,void 0,void 0,function*(){const{type:i,animation:a}=t,s=ys("layout",i);if(!s)return{};const{nodes:o=[],edges:l=[]}=e,u=new gr({nodes:o.map(v=>({id:Re(v),data:v.data||{}})),edges:l.map(v=>({id:Re(v),source:v.source,target:v.target,data:v.data||{}}))});fW(u);const c={nodes:[],edges:[]},h={nodes:[],edges:[]};u.getRoots(ea).forEach(v=>{Bo(v,x=>{x.children=u.getSuccessors(x.id)},x=>u.getSuccessors(x.id),"TB");const g=s(v,t),{x:p,y:m,z:b=0}=g;Bo(g,x=>{const{id:O,x:T,y:S,z:k=0}=x;c.nodes.push({id:O,style:{x:p,y:m,z:b}}),h.nodes.push({id:O,style:{x:T,y:S,z:k}})},x=>x.children,"TB")});const d=this.inferTreeLayoutOffset(h);if(UT(h,d),a){UT(c,d),this.updateElementPosition(c,!1);const v=this.updateElementPosition(h,a);yield v==null?void 0:v.finished}return h})}inferTreeLayoutOffset(e){var t;let[n,i]=[1/0,-1/0],[a,s]=[1/0,-1/0];(t=e.nodes)===null||t===void 0||t.forEach(g=>{const{x:p=0,y:m=0}=g.style||{};n=Math.min(n,p),i=Math.max(i,p),a=Math.min(a,m),s=Math.max(s,m)});const{canvas:o}=this.context,l=o.getSize(),[u,c]=o.getCanvasByViewport([0,0]),[h,f]=o.getCanvasByViewport(l);if(n>=u&&i<=h&&a>=c&&s<=f)return[0,0];const d=(u+h)/2,v=(c+f)/2;return[d-(n+i)/2,v-(a+s)/2]}stopLayout(){this.instance&&K0(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(e){const{nodeFilter:t=()=>!0}=e,{nodes:n,edges:i,combos:a}=this.context.model.getData(),s=c=>this.context.element.getElement(c),o=n.filter(c=>{const h=Re(c),f=s(h);return!f||id(f)?!1:t(c)}),l=new Map(o.map(c=>[Re(c),c])),u=i.filter(c=>{const{source:h,target:f}=c;return!(!l.has(h)||!l.has(f))});return{nodes:o,edges:u,combos:a}}initGraphLayout(e){var t;const{element:n,viewport:i}=this.context,{type:a,enableWorker:s,animation:o,iterations:l}=e,u=AW(e,["type","enableWorker","animation","iterations"]),[c,h]=i.getCanvasSize(),f=[c/2,h/2],d=(t=e==null?void 0:e.nodeSize)!==null&&t!==void 0?t:b=>{const x=n==null?void 0:n.getElement(b.id),{size:O}=(x==null?void 0:x.attributes)||{};return O},v=ys("layout",a);if(!v)return wi.warn(`The layout of ${a} is not registered.`);const g=Object.getPrototypeOf(v.prototype)===N0.prototype?v:Z6(v,this.context),p=new g(this.context),m={nodeSize:d,width:c,height:h,center:f};switch(p.id){case"d3-force":case"d3-force-3d":Object.assign(m,{center:{x:c/2,y:h/2,z:0}});break;default:break}return ri(p.options,m,u),p}updateElementPosition(e,t){const{model:n,element:i}=this.context;return i?(n.updateData(e),i.draw({animation:t,silence:!0})):null}destroy(){var e;this.stopLayout(),this.context={},(e=this.supervisor)===null||e===void 0||e.kill(),this.supervisor=void 0,this.instance=void 0,this.instances=[],this.animationResult=void 0}}const UT=(r,e)=>{var t;const[n,i]=e;(t=r.nodes)===null||t===void 0||t.forEach(a=>{if(a.style){const{x:s=0,y:o=0}=a.style;a.style.x=s+n,a.style.y=o+i}else a.style={x:n,y:i}})};class kW extends Yp{constructor(e){super(e),this.category="plugin",this.setPlugins(this.context.options.plugins||[])}setPlugins(e){this.setExtensions(e)}getPluginInstance(e){const t=this.extensionMap[e];if(t)return t;wi.warn(`Cannot find the plugin ${e}, will try to find it by type.`);const n=this.extensions.find(i=>i.type===e);if(n)return this.extensionMap[n.key]}}const tg=["update-related-edges","collapse-expand-node","collapse-expand-combo","get-edge-actual-ends","arrange-draw-order"];class CW extends Yp{constructor(e){super(e),this.category="transform",this.setTransforms(this.context.options.transforms||[])}getTransforms(){}setTransforms(e){this.setExtensions([...tg.slice(0,tg.length-1),...e,tg[tg.length-1]])}getTransformInstance(e){return e?this.extensionMap[e]:this.extensionMap}}var qc=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})};class NW{get padding(){return Ja(this.context.options.padding)}get paddingOffset(){const[e,t,n,i]=this.padding,[a,s,o]=[(i-t)/2,(e-n)/2,0];return[a,s,o]}constructor(e){this.landmarkCounter=0,this.context=e;const[t,n]=this.paddingOffset,{zoom:i,rotation:a,x:s=t,y:o=n}=e.options;this.transform({mode:"absolute",scale:i,translate:[s,o],rotate:a},!1)}get camera(){const{canvas:e}=this.context;return new Proxy(e.getCamera(),{get:(t,n)=>{const a=Object.entries(e.getLayers()).filter(([o])=>!["main"].includes(o)).map(([,o])=>o.getCamera()),s=t[n];if(typeof s=="function")return(...o)=>{const l=s.apply(t,o);return a.forEach(u=>{u[n].apply(u,o)}),l}}})}createLandmark(e){return this.camera.createLandmark(`landmark-${this.landmarkCounter++}`,e)}getAnimation(e){const t=wx(this.context.options,e);return t?jo(Object.assign({},t),["easing","duration"]):!1}getCanvasSize(){const{canvas:e}=this.context,{width:t=0,height:n=0}=e.getConfig();return[t,n]}getCanvasCenter(){const{canvas:e}=this.context,{width:t=0,height:n=0}=e.getConfig();return[t/2,n/2,0]}getViewportCenter(){const[e,t]=this.camera.getPosition();return[e,t,0]}getGraphCenter(){return this.context.graph.getViewportByCanvas(this.getCanvasCenter())}getZoom(){return this.camera.getZoom()}getRotation(){return this.camera.getRoll()}getTranslateOptions(e){const{camera:t}=this,{mode:n,translate:i=[]}=e,a=this.getZoom(),s=t.getPosition(),o=t.getFocalPoint(),[l,u]=this.getCanvasCenter(),[c=0,h=0,f=0]=i,d=Sa([-c,-h,-f],a);return n==="relative"?{position:jt(s,d),focalPoint:jt(o,d)}:{position:jt([l,u,s[2]],d),focalPoint:jt([l,u,o[2]],d)}}getRotateOptions(e){const{mode:t,rotate:n=0}=e;return{roll:t==="relative"?this.camera.getRoll()+n:n}}getZoomOptions(e){const{zoomRange:t}=this.context.options,n=this.camera.getZoom(),{mode:i,scale:a=1}=e;return on(i==="relative"?n*a:a,...t)}transform(e,t){return qc(this,void 0,void 0,function*(){const{graph:n}=this.context,{translate:i,rotate:a,scale:s,origin:o}=e;this.cancelAnimation();const l=this.getAnimation(t);if(Hr(n,new Uv(rt.BEFORE_TRANSFORM,e)),!a&&s&&!i&&o&&!l){this.camera.setZoomByViewportPoint(this.getZoomOptions(e),o),Hr(n,new Uv(rt.AFTER_TRANSFORM,e));return}const u={};if(i&&Object.assign(u,this.getTranslateOptions(e)),ht(a)&&Object.assign(u,this.getRotateOptions(e)),ht(s)&&Object.assign(u,{zoom:this.getZoomOptions(e)}),l)return Hr(n,new fa(rt.BEFORE_ANIMATE,Ei.TRANSFORM,null,e)),new Promise(c=>{this.transformResolver=c,this.camera.gotoLandmark(this.createLandmark(u),Object.assign(Object.assign({},l),{onfinish:()=>{Hr(n,new fa(rt.AFTER_ANIMATE,Ei.TRANSFORM,null,e)),Hr(n,new Uv(rt.AFTER_TRANSFORM,e)),this.transformResolver=void 0,c()}}))});this.camera.gotoLandmark(this.createLandmark(u),{duration:0}),Hr(n,new Uv(rt.AFTER_TRANSFORM,e))})}fitView(e,t){return qc(this,void 0,void 0,function*(){const[n,i,a,s]=this.padding,{when:o="always",direction:l="both"}=e||{},[u,c]=this.context.canvas.getSize(),h=u-s-i,f=c-n-a,d=this.context.canvas.getBounds(),v=this.getBBoxInViewport(d),[g,p]=Hs(v),m=l==="x"&&g>=h||l==="y"&&p>=f||l==="both"&&g>=h&&p>=f;if(o==="overflow"&&!m)return yield this.fitCenter(t);const b=h/g,x=f/p,O=l==="x"?b:l==="y"?x:Math.min(b,x),T=this.getAnimation(t);yield this.transform({mode:"relative",scale:O,translate:jt(On(this.getCanvasCenter(),this.getBBoxInViewport(d).center),Sa(this.paddingOffset,O))},T)})}fitCenter(e){return qc(this,void 0,void 0,function*(){const t=this.context.canvas.getBounds();yield this.focus(t,e)})}focusElements(e,t){return qc(this,void 0,void 0,function*(){const{element:n}=this.context;if(!n)return;const i=Ju(e.map(a=>n.getElement(a).getRenderBounds()));yield this.focus(i,t)})}focus(e,t){return qc(this,void 0,void 0,function*(){const n=this.context.graph.getViewportByCanvas(e.center),i=this.getCanvasCenter(),a=On(i,n);yield this.transform({mode:"relative",translate:jt(a,this.paddingOffset)},t)})}getBBoxInViewport(e){const{min:t,max:n}=e,{graph:i}=this.context,[a,s]=i.getViewportByCanvas(t),[o,l]=i.getViewportByCanvas(n),u=new Rn;return u.setMinMax([a,s,0],[o,l,0]),u}isInViewport(e,t=!1,n=0){const{graph:i}=this.context,a=this.getCanvasSize(),[s,o]=i.getCanvasByViewport([0,0]),[l,u]=i.getCanvasByViewport(a);let c=new Rn;return c.setMinMax([s,o,0],[l,u,0]),n&&(c=Ws(c,n)),Dl(e)?Pa(e,c):t?P_(e,c):c.intersects(e)}cancelAnimation(){var e,t;!((e=this.camera.landmarks)===null||e===void 0)&&e.length&&this.camera.cancelLandmarkAnimation(),(t=this.transformResolver)===null||t===void 0||t.call(this)}}var Ln=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})};class ng extends hd{constructor(e){var t;super(),this.rendered=!1,this.destroyed=!1,this.context={model:new dW},this.isCollapsingExpanding=!1,this.onResize=mc(()=>{this.resize()},300),this.options=Object.assign({},ng.defaultOptions,e),this._setOptions(this.options,!0),this.context.graph=this,this.options.autoResize&&((t=globalThis.addEventListener)===null||t===void 0||t.call(globalThis,"resize",this.onResize))}getOptions(){return this.options}setOptions(e){this._setOptions(e,!1)}_setOptions(e,t){if(this.updateCanvas(e),t){const{data:f}=e;f&&this.addData(f);return}Object.assign(this.options,e);const{behaviors:n,combo:i,data:a,edge:s,layout:o,node:l,plugins:u,theme:c,transforms:h}=e;n&&this.setBehaviors(n),a&&this.setData(a),l&&this.setNode(l),s&&this.setEdge(s),i&&this.setCombo(i),o&&this.setLayout(o),c&&this.setTheme(c),u&&this.setPlugins(u),h&&this.setTransforms(h)}getSize(){return this.context.canvas?this.context.canvas.getSize():[this.options.width||0,this.options.height||0]}setSize(e,t){e&&(this.options.width=e),t&&(this.options.height=t),this.resize(e,t)}setZoomRange(e){this.options.zoomRange=e}getZoomRange(){return this.options.zoomRange}setNode(e){this.options.node=e,this.context.model.refreshData()}setEdge(e){this.options.edge=e,this.context.model.refreshData()}setCombo(e){this.options.combo=e,this.context.model.refreshData()}getTheme(){return this.options.theme}setTheme(e){this.options.theme=pt(e)?e(this.getTheme()):e}setLayout(e){this.options.layout=pt(e)?e(this.getLayout()):e}getLayout(){return this.options.layout}setBehaviors(e){var t;this.options.behaviors=pt(e)?e(this.getBehaviors()):e,(t=this.context.behavior)===null||t===void 0||t.setBehaviors(this.options.behaviors)}updateBehavior(e){this.setBehaviors(t=>t.map(n=>typeof n=="object"&&n.key===e.key?Object.assign(Object.assign({},n),e):n))}getBehaviors(){return this.options.behaviors||[]}setPlugins(e){var t;this.options.plugins=pt(e)?e(this.getPlugins()):e,(t=this.context.plugin)===null||t===void 0||t.setPlugins(this.options.plugins)}updatePlugin(e){this.setPlugins(t=>t.map(n=>typeof n=="object"&&n.key===e.key?Object.assign(Object.assign({},n),e):n))}getPlugins(){return this.options.plugins||[]}getPluginInstance(e){return this.context.plugin.getPluginInstance(e)}setTransforms(e){var t;this.options.transforms=pt(e)?e(this.getTransforms()):e,(t=this.context.transform)===null||t===void 0||t.setTransforms(this.options.transforms)}updateTransform(e){this.setTransforms(t=>t.map(n=>typeof n=="object"&&n.key===e.key?Object.assign(Object.assign({},n),e):n)),this.context.model.refreshData()}getTransforms(){return this.options.transforms||[]}getData(){return this.context.model.getData()}getElementData(e){return Array.isArray(e)?e.map(t=>this.context.model.getElementDataById(t)):this.context.model.getElementDataById(e)}getNodeData(e){var t;return e===void 0?this.context.model.getNodeData():Array.isArray(e)?this.context.model.getNodeData(e):(t=this.context.model.getNodeData([e]))===null||t===void 0?void 0:t[0]}getEdgeData(e){var t;return e===void 0?this.context.model.getEdgeData():Array.isArray(e)?this.context.model.getEdgeData(e):(t=this.context.model.getEdgeData([e]))===null||t===void 0?void 0:t[0]}getComboData(e){var t;return e===void 0?this.context.model.getComboData():Array.isArray(e)?this.context.model.getComboData(e):(t=this.context.model.getComboData([e]))===null||t===void 0?void 0:t[0]}setData(e){this.context.model.setData(pt(e)?e(this.getData()):e)}addData(e){this.context.model.addData(pt(e)?e(this.getData()):e)}addNodeData(e){this.context.model.addNodeData(pt(e)?e(this.getNodeData()):e)}addEdgeData(e){this.context.model.addEdgeData(pt(e)?e(this.getEdgeData()):e)}addComboData(e){this.context.model.addComboData(pt(e)?e(this.getComboData()):e)}addChildrenData(e,t){this.context.model.addChildrenData(e,t)}updateData(e){this.context.model.updateData(pt(e)?e(this.getData()):e)}updateNodeData(e){this.context.model.updateNodeData(pt(e)?e(this.getNodeData()):e)}updateEdgeData(e){this.context.model.updateEdgeData(pt(e)?e(this.getEdgeData()):e)}updateComboData(e){this.context.model.updateComboData(pt(e)?e(this.getComboData()):e)}removeData(e){this.context.model.removeData(pt(e)?e(this.getData()):e)}removeNodeData(e){this.context.model.removeNodeData(pt(e)?e(this.getNodeData()):e)}removeEdgeData(e){this.context.model.removeEdgeData(pt(e)?e(this.getEdgeData()):e)}removeComboData(e){this.context.model.removeComboData(pt(e)?e(this.getComboData()):e)}getElementType(e){return this.context.model.getElementType(e)}getRelatedEdgesData(e,t="both"){return this.context.model.getRelatedEdgesData(e,t)}getNeighborNodesData(e){return this.context.model.getNeighborNodesData(e)}getAncestorsData(e,t){return this.context.model.getAncestorsData(e,t)}getParentData(e,t){return this.context.model.getParentData(e,t)}getChildrenData(e){return this.context.model.getChildrenData(e)}getDescendantsData(e){return this.context.model.getDescendantsData(e)}getElementDataByState(e,t){return this.context.model.getElementDataByState(e,t)}initCanvas(){return Ln(this,void 0,void 0,function*(){var e;if(this.context.canvas)return yield this.context.canvas.ready;const{container:t="container",width:n,height:i,renderer:a,cursor:s,background:o,canvas:l,devicePixelRatio:u=(e=globalThis.devicePixelRatio)!==null&&e!==void 0?e:1}=this.options;if(t instanceof NT)this.context.canvas=t,s&&t.setCursor(s),a&&t.setRenderer(a),yield t.ready;else{const c=Xt(t)?document.getElementById(t):t,h=LT(c);this.emit(rt.BEFORE_CANVAS_INIT,{container:c,width:n,height:i});const f=Object.assign(Object.assign({},l),{container:c,width:n||h[0],height:i||h[1],background:o,renderer:a,cursor:s,devicePixelRatio:u}),d=new NT(f);this.context.canvas=d,yield d.ready,this.emit(rt.AFTER_CANVAS_INIT,{canvas:d})}})}updateCanvas(e){var t,n;const{renderer:i,cursor:a,height:s,width:o}=e,l=this.context.canvas;l&&(i&&(this.emit(rt.BEFORE_RENDERER_CHANGE,{renderer:this.options.renderer}),l.setRenderer(i),this.emit(rt.AFTER_RENDERER_CHANGE,{renderer:i})),a&&l.setCursor(a),(ht(o)||ht(s))&&this.setSize((t=o!=null?o:this.options.width)!==null&&t!==void 0?t:0,(n=s!=null?s:this.options.height)!==null&&n!==void 0?n:0))}initRuntime(){this.context.options=this.options,this.context.batch||(this.context.batch=new lW(this.context)),this.context.plugin||(this.context.plugin=new kW(this.context)),this.context.viewport||(this.context.viewport=new NW(this.context)),this.context.transform||(this.context.transform=new CW(this.context)),this.context.element||(this.context.element=new vW(this.context)),this.context.animation||(this.context.animation=new oW(this.context)),this.context.layout||(this.context.layout=new OW(this.context)),this.context.behavior||(this.context.behavior=new uW(this.context))}prepare(){return Ln(this,void 0,void 0,function*(){if(yield Promise.resolve(),this.destroyed)throw new Error(bs("The graph instance has been destroyed"));yield this.initCanvas(),this.initRuntime()})}render(){return Ln(this,void 0,void 0,function*(){yield this.prepare(),Hr(this,new kr(rt.BEFORE_RENDER));const e=this.context.element.draw({type:"render"});yield Promise.all([e==null?void 0:e.finished,this.context.layout.layout()]),yield this.autoFit(),this.rendered=!0,Hr(this,new kr(rt.AFTER_RENDER))})}draw(){return Ln(this,void 0,void 0,function*(){var e;yield this.prepare(),yield(e=this.context.element.draw())===null||e===void 0?void 0:e.finished})}layout(){return Ln(this,void 0,void 0,function*(){yield this.context.layout.layout()})}stopLayout(){this.context.layout.stopLayout()}clear(){return Ln(this,void 0,void 0,function*(){this.context.model.setData({}),yield this.draw()})}destroy(){var e;Hr(this,new kr(rt.BEFORE_DESTROY));const{layout:t,animation:n,element:i,model:a,canvas:s,behavior:o,plugin:l}=this.context;l==null||l.destroy(),o==null||o.destroy(),t==null||t.destroy(),n==null||n.destroy(),i==null||i.destroy(),a.destroy(),s==null||s.destroy(),this.options={},this.context={},this.off(),(e=globalThis.removeEventListener)===null||e===void 0||e.call(globalThis,"resize",this.onResize),this.destroyed=!0,Hr(this,new kr(rt.AFTER_DESTROY))}getCanvas(){return this.context.canvas}resize(e,t){var n;const i=LT((n=this.context.canvas)===null||n===void 0?void 0:n.getContainer()),a=[e||i[0],t||i[1]];if(!this.context.canvas)return;const s=this.context.canvas.getSize();dr(a,s)||(Hr(this,new kr(rt.BEFORE_SIZE_CHANGE,{size:a})),this.context.canvas.resize(...a),Hr(this,new kr(rt.AFTER_SIZE_CHANGE,{size:a})))}fitView(e,t){return Ln(this,void 0,void 0,function*(){var n;yield(n=this.context.viewport)===null||n===void 0?void 0:n.fitView(e,t)})}fitCenter(e){return Ln(this,void 0,void 0,function*(){var t;yield(t=this.context.viewport)===null||t===void 0?void 0:t.fitCenter(e)})}autoFit(){return Ln(this,void 0,void 0,function*(){const{autoFit:e}=this.context.options;if(e)if(Xt(e))e==="view"?yield this.fitView():e==="center"&&(yield this.fitCenter());else{const{type:t,animation:n}=e;t==="view"?yield this.fitView(e.options,n):t==="center"&&(yield this.fitCenter(n))}})}focusElement(e,t){return Ln(this,void 0,void 0,function*(){var n;yield(n=this.context.viewport)===null||n===void 0?void 0:n.focusElements(Array.isArray(e)?e:[e],t)})}zoomBy(e,t,n){return Ln(this,void 0,void 0,function*(){yield this.context.viewport.transform({mode:"relative",scale:e,origin:n},t)})}zoomTo(e,t,n){return Ln(this,void 0,void 0,function*(){this.context.viewport.transform({mode:"absolute",scale:e,origin:n},t)})}getZoom(){return this.context.viewport.getZoom()}rotateBy(e,t,n){return Ln(this,void 0,void 0,function*(){yield this.context.viewport.transform({mode:"relative",rotate:e,origin:n},t)})}rotateTo(e,t,n){return Ln(this,void 0,void 0,function*(){yield this.context.viewport.transform({mode:"absolute",rotate:e,origin:n},t)})}getRotation(){return this.context.viewport.getRotation()}translateBy(e,t){return Ln(this,void 0,void 0,function*(){yield this.context.viewport.transform({mode:"relative",translate:e},t)})}translateTo(e,t){return Ln(this,void 0,void 0,function*(){yield this.context.viewport.transform({mode:"absolute",translate:e},t)})}getPosition(){return On([0,0],this.getCanvasByViewport([0,0]))}translateElementBy(e,t){return Ln(this,arguments,void 0,function*(n,i,a=!0){var s,o;const[l,u]=nr(n)?[n,(s=i)!==null&&s!==void 0?s:!0]:[{[n]:i},a];Object.entries(l).forEach(([c,h])=>this.context.model.translateNodeLikeBy(c,h)),yield(o=this.context.element.draw({animation:u,stage:"translate"}))===null||o===void 0?void 0:o.finished})}translateElementTo(e,t){return Ln(this,arguments,void 0,function*(n,i,a=!0){var s,o;const[l,u]=nr(n)?[n,(s=i)!==null&&s!==void 0?s:!0]:[{[n]:i},a];Object.entries(l).forEach(([c,h])=>this.context.model.translateNodeLikeTo(c,h)),yield(o=this.context.element.draw({animation:u,stage:"translate"}))===null||o===void 0?void 0:o.finished})}getElementPosition(e){return this.context.model.getElementPosition(e)}getElementRenderStyle(e){return nm(this.context.element.getElement(e).attributes,["context"])}setElementVisibility(e,t){return Ln(this,arguments,void 0,function*(n,i,a=!0){var s,o;const[l,u]=nr(n)?[n,(s=i)!==null&&s!==void 0?s:!0]:[{[n]:i},a],c={nodes:[],edges:[],combos:[]};Object.entries(l).forEach(([d,v])=>{const g=this.getElementType(d);c[`${g}s`].push({id:d,style:{visibility:v}})});const{model:h,element:f}=this.context;h.preventUpdateNodeLikeHierarchy(()=>{h.updateData(c)}),yield(o=f.draw({animation:u,stage:"visibility"}))===null||o===void 0?void 0:o.finished})}showElement(e,t){return Ln(this,void 0,void 0,function*(){const n=Array.isArray(e)?e:[e];yield this.setElementVisibility(Object.fromEntries(n.map(i=>[i,"visible"])),t)})}hideElement(e,t){return Ln(this,void 0,void 0,function*(){const n=Array.isArray(e)?e:[e];yield this.setElementVisibility(Object.fromEntries(n.map(i=>[i,"hidden"])),t)})}getElementVisibility(e){var t,n;const i=this.context.element.getElement(e);return(n=(t=i==null?void 0:i.style)===null||t===void 0?void 0:t.visibility)!==null&&n!==void 0?n:"visible"}setElementZIndex(e,t){return Ln(this,void 0,void 0,function*(){var n;const i={nodes:[],edges:[],combos:[]},a=nr(e)?e:{[e]:t};Object.entries(a).forEach(([l,u])=>{const c=this.getElementType(l);i[`${c}s`].push({id:l,style:{zIndex:u}})});const{model:s,element:o}=this.context;s.preventUpdateNodeLikeHierarchy(()=>s.updateData(i)),yield(n=o.draw({animation:!1,stage:"zIndex"}))===null||n===void 0?void 0:n.finished})}frontElement(e){return Ln(this,void 0,void 0,function*(){const t=Array.isArray(e)?e:[e],{model:n}=this.context,i={};t.map(a=>{const s=n.getFrontZIndex(a);if(n.getElementType(a)==="combo"){const l=n.getAncestorsData(a,An).at(-1)||this.getComboData(a),u=[l,...n.getDescendantsData(Re(l))],c=s-DT(l);u.forEach(f=>{i[Re(f)]=this.getElementZIndex(Re(f))+c});const{internal:h}=M0(u.map(Re),f=>n.getRelatedEdgesData(f));h.forEach(f=>{const d=Re(f);i[d]=this.getElementZIndex(d)+c})}else i[a]=s}),yield this.setElementZIndex(i)})}getElementZIndex(e){return DT(this.context.model.getElementDataById(e))}setElementState(e,t){return Ln(this,arguments,void 0,function*(n,i,a=!0){var s,o;const[l,u]=nr(n)?[n,(s=i)!==null&&s!==void 0?s:!0]:[{[n]:i},a],c=f=>f?Array.isArray(f)?f:[f]:[],h={nodes:[],edges:[],combos:[]};Object.entries(l).forEach(([f,d])=>{const v=this.getElementType(f);h[`${v}s`].push({id:f,states:c(d)})}),this.updateData(h),yield(o=this.context.element.draw({animation:u,stage:"state"}))===null||o===void 0?void 0:o.finished})}getElementState(e){return this.context.model.getElementState(e)}getElementRenderBounds(e){return this.context.element.getElement(e).getRenderBounds()}collapseElement(e){return Ln(this,arguments,void 0,function*(t,n=!0){const{model:i,element:a}=this.context;if(_i(i.getNodeLikeData([t])[0])||this.isCollapsingExpanding)return;const s=i.getElementType(t);yield this.frontElement(t),this.isCollapsingExpanding=!0,this.setElementCollapsibility(t,!0),s==="node"?yield a.collapseNode(t,n):s==="combo"&&(yield a.collapseCombo(t,n)),this.isCollapsingExpanding=!1})}expandElement(e){return Ln(this,arguments,void 0,function*(t,n=!0){const{model:i,element:a}=this.context;if(!_i(i.getNodeLikeData([t])[0])||this.isCollapsingExpanding)return;const s=i.getElementType(t);this.isCollapsingExpanding=!0,this.setElementCollapsibility(t,!1),s==="node"?yield a.expandNode(t,n):s==="combo"&&(yield a.expandCombo(t,n)),this.isCollapsingExpanding=!1})}setElementCollapsibility(e,t){const n=this.getElementType(e);n==="node"?this.updateNodeData([{id:e,style:{collapsed:t}}]):n==="combo"&&this.updateComboData([{id:e,style:{collapsed:t}}])}toDataURL(){return Ln(this,arguments,void 0,function*(e={}){return this.context.canvas.toDataURL(e)})}getCanvasByViewport(e){return this.context.canvas.getCanvasByViewport(e)}getViewportByCanvas(e){return this.context.canvas.getViewportByCanvas(e)}getClientByCanvas(e){return this.context.canvas.getClientByCanvas(e)}getCanvasByClient(e){return this.context.canvas.getCanvasByClient(e)}getViewportCenter(){return this.context.viewport.getViewportCenter()}getCanvasCenter(){return this.context.viewport.getCanvasCenter()}on(e,t,n){return super.on(e,t,n)}once(e,t){return super.once(e,t)}off(e,t){return super.off(e,t)}}ng.defaultOptions={autoResize:!1,theme:"light",rotation:0,zoom:1,zoomRange:[.01,10]};class vo extends Up{beforeDraw(e,t){return e}afterLayout(){}}class _W extends vo{beforeDraw(e){const{model:t}=this.context,n=e.add.combos,i=a=>{const s=[];return a.forEach((o,l)=>{const c=t.getAncestorsData(l,"combo").map(h=>Re(h)).reverse();s.push([l,o,c.length])}),new Map(s.sort(([,,o],[,,l])=>l-o).map(([o,l])=>[o,l]))};return e.add.combos=i(n),e.update.combos=i(e.update.combos),e}}function Xi(r,e,t,n,i){const a=Re(n),s=`${t}s`,o=i?n:r.add[s].get(a)||r.update[s].get(a)||r.remove[s].get(a)||n;Object.entries(r).forEach(([l,u])=>{e===l?u[s].set(a,o):u[s].delete(a)})}function rg(r,e){return Object.keys(r).every(t=>r[t]===e[t])}class RW extends vo{beforeDraw(e,t){if(t.stage==="visibility"||!this.context.model.model.hasTreeStructure(An))return e;const{model:n}=this.context,{add:i,update:a}=e,s=[...e.update.combos.entries(),...e.add.combos.entries()];for(;s.length;){const[o,l]=s.pop();if(_i(l)){const u=n.getDescendantsData(o),c=u.map(Re),{internal:h,external:f}=M0(c,d=>n.getRelatedEdgesData(d));u.forEach(d=>{const v=Re(d),g=s.findIndex(([m])=>m===v);g!==-1&&s.splice(g,1);const p=n.getElementType(v);Xi(e,"remove",p,d)}),h.forEach(d=>Xi(e,"remove","edge",d)),f.forEach(d=>{var v;const g=Re(d);((v=this.context.element)===null||v===void 0?void 0:v.getElement(g))?a.edges.set(g,d):i.edges.set(g,d)})}else{const u=n.getChildrenData(o),c=u.map(Re),{edges:h}=M0(c,f=>n.getRelatedEdgesData(f));[...u,...h].forEach(f=>{var d;const v=Re(f),g=n.getElementType(v);((d=this.context.element)===null||d===void 0?void 0:d.getElement(v))?Xi(e,"update",g,f):Xi(e,"add",g,f),g==="combo"&&s.push([v,f])})}}return e}}const ZT=(r,e,t,n)=>{const i=`${t}s`,a=Re(n);!r.add[i].has(a)&&!r.update[i].has(a)&&r[e][i].set(Re(n),n)};class LW extends vo{getElement(e){return this.context.element.getElement(e)}handleExpand(e,t){if(ZT(t,"add","node",e),_i(e))return;const n=Re(e);ZT(t,"add","node",e),this.context.model.getRelatedEdgesData(n,"out").forEach(s=>{Xi(t,"add","edge",s)}),this.context.model.getChildrenData(n).forEach(s=>{this.handleExpand(s,t)})}beforeDraw(e){const{graph:t,model:n}=this.context;if(!n.model.hasTreeStructure(ea))return e;const{add:{nodes:i,edges:a},update:{nodes:s}}=e,o=new Map,l=new Map;i.forEach((c,h)=>{_i(c)&&o.set(h,c)}),a.forEach(c=>{if(t.getElementType(c.source)!=="node")return;const h=t.getNodeData(c.source);_i(h)&&o.set(c.source,h)}),s.forEach((c,h)=>{const f=this.getElement(h);if(!f)return;const d=f.attributes.collapsed;_i(c)?d||o.set(h,c):d&&l.set(h,c)});const u=new Set;return o.forEach((c,h)=>{n.getDescendantsData(h).forEach(d=>{const v=Re(d);if(u.has(v))return;Xi(e,"remove","node",d),n.getRelatedEdgesData(v).forEach(p=>{Xi(e,"remove","edge",p)}),u.add(v)})}),l.forEach((c,h)=>{if(n.getAncestorsData(h,ea).some(_i)){Xi(e,"remove","node",c);return}this.handleExpand(c,e)}),e}}class DW extends vo{beforeDraw(e){const{add:t,update:n}=e,{model:i}=this.context;return[...t.edges.entries(),...n.edges.entries()].forEach(([,a])=>{KT(i,a)}),e}}const KT=(r,e)=>{const{source:t,target:n}=e,i=r.getElementDataById(t),a=r.getElementDataById(n),s=jw(i,h=>r.getParentData(h,An)),o=jw(a,h=>r.getParentData(h,An)),l=Re(s),u=Re(o),c={sourceNode:l,targetNode:u};return e.style?Object.assign(e.style,c):e.style=c,e},IW=(r,e,t)=>{const[n,i]=e,[a,s]=t;if(i===n)return a;const o=(r-n)/(i-n);return a+o*(s-a)},BW=(r,e,t)=>{const[n,i]=e,[a,s]=t,o=Math.log(r-n+1)/Math.log(i-n+1);return a+o*(s-a)},zW=(r,e,t,n=2)=>{const[i,a]=e,[s,o]=t,l=Math.pow((r-i)/(a-i),n);return s+l*(o-s)},FW=(r,e,t)=>{const[n,i]=e,[a,s]=t,o=Math.sqrt((r-n)/(i-n));return a+o*(s-a)};class ig extends vo{constructor(e,t){super(e,ri({},ig.defaultOptions,t)),this.assignSizeByCentrality=(n,i,a,s,o,l)=>{const u=[i,a],c=[s[0],o[0]],h=[s[1],o[1]],f=[s[2],o[2]],d=(v,g)=>{if(typeof l=="function")return l(v,u,g);switch(l){case"linear":return IW(v,u,g);case"log":return BW(v,u,g);case"pow":return zW(v,u,g,2);case"sqrt":return FW(v,u,g);default:return g[0]}};return[d(n,c),d(n,h),d(n,f)]}}beforeDraw(e){const{model:t}=this.context,n=t.getNodeData(),i=ra(this.options.maxSize),a=ra(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 n.forEach(u=>{var c;const h=this.assignSizeByCentrality(s.get(Re(u))||0,l,o,a,i,this.options.scale),f=(c=this.context.element)===null||c===void 0?void 0:c.getElement(Re(u)),d={size:h};this.assignLabelStyle(d,h,u,f),(!f||!rg(d,f.attributes))&&Xi(e,f?"update":"add","node",ri(u,{style:d}),!0)}),e}assignLabelStyle(e,t,n,i){var a;const s=i?i.config.style:(a=this.context.element)===null||a===void 0?void 0:a.getElementComputedStyle("node",n);if(Object.assign(e,jo(s,["labelFontSize","labelLineHeight"])),this.options.mapLabelSize){const o=this.getLabelSizeByNodeSize(t,1/0,Number(e.labelFontSize));Object.assign(e,{labelFontSize:o,labelLineHeight:o+w_(e.labelPadding)})}return e}getLabelSizeByNodeSize(e,t,n){const i=Math.min(...e)/2,[a,s]=Array.isArray(this.options.mapLabelSize)?this.options.mapLabelSize:[n,t];return Math.min(s,Math.max(i,a))}getCentralities(e){const{model:t}=this.context,n=t.getData();if(typeof e=="function")return e(n);const i=t.getRelatedEdgesData.bind(t);return pE(n,i,e)}}ig.defaultOptions={centrality:{type:"degree"},maxSize:80,minSize:20,scale:"linear",mapLabelSize:!1};class ag extends vo{constructor(e,t){super(e,Object.assign({},ag.defaultOptions,t))}get ref(){return this.context.model.getRootsData()[0]}afterLayout(){var e;const t=Br(this.ref),{graph:n,model:i}=this.context;(e=i.getData().nodes)===null||e===void 0||e.forEach(s=>{if(Re(s)===Re(this.ref))return;const o=xE(On(Br(s),t)),l=Math.abs(o)>Math.PI/2,u=!s.children||s.children.length===0,c=ra(n.getElementRenderStyle(Re(s)).size)[0]/2,h=(u?1:-1)*(c+this.options.offset),f=[["translate",h*Math.cos(o),h*Math.sin(o)],["rotate",l?yi(o)+180:yi(o)]];i.updateNodeData([{id:Re(s),style:{labelTextAlign:l===u?"right":"left",labelTextBaseline:"middle",labelTransform:f}}])}),n.draw()}}ag.defaultOptions={offset:5};const jW="quadratic",QT=["top","top-right","right","right-bottom","bottom","bottom-left","left","left-top"];class sg extends vo{constructor(e,t){super(e,Object.assign({},sg.defaultOptions,t)),this.cacheMergeStyle=new Map,this.getAffectedParallelEdges=n=>{const{add:{edges:i},update:{nodes:a,edges:s,combos:o},remove:{edges:l}}=n,{model:u}=this.context,c=new Map,h=(v,g)=>{u.getRelatedEdgesData(g).forEach(m=>!c.has(Re(m))&&c.set(Re(m),m))};a.forEach(h),o.forEach(h);const f=v=>{const g=u.getEdgeData().map(m=>KT(u,m));GW(v,g,!0).forEach(m=>!c.has(Re(m))&&c.set(Re(m),m))};if(l.size&&l.forEach(f),i.size&&i.forEach(f),s.size){const v=kP(lm(u.getChanges())).update.edges;s.forEach(g=>{var p;f(g);const m=(p=v.find(b=>Re(b.value)===Re(g)))===null||p===void 0?void 0:p.original;m&&!Dy(g,m)&&f(m)})}ts(this.options.edges)||c.forEach((v,g)=>!this.options.edges.includes(g)&&c.delete(g));const d=u.getEdgeData().map(Re);return new Map([...c].sort((v,g)=>d.indexOf(v[0])-d.indexOf(g[0])))},this.applyBundlingStyle=(n,i,a)=>{const{edgeMap:s,reverses:o}=JT(i);s.forEach(l=>{l.forEach((u,c,h)=>{var f;const d=h.length,v=u.style||{};if(u.source===u.target){const m=QT.length;v.loopPlacement=QT[c%m],v.loopDist=Math.floor(c/m)*a+50}else if(d===1)v.curveOffset=0;else{const m=(c%2===0?1:-1)*(o[`${u.source}|${u.target}|${c}`]?-1:1);v.curveOffset=d%2===1?m*Math.ceil(c/2)*a*2:m*(Math.floor(c/2)*a*2+a)}const g=Object.assign(u,{type:jW,style:v}),p=(f=this.context.element)===null||f===void 0?void 0:f.getElement(Re(u));(!p||!rg(g.style,p.attributes))&&Xi(n,p?"update":"add","edge",g,!0)})})},this.resetEdgeStyle=n=>{const i=n.style||{},a=this.cacheMergeStyle.get(Re(n))||{};return Object.keys(a).forEach(s=>{dr(i[s],a[s])&&(n[s]?i[s]=n[s]:delete i[s])}),Object.assign(n,{style:i})},this.applyMergingStyle=(n,i)=>{const{edgeMap:a,reverses:s}=JT(i);a.forEach(o=>{var l;if(o.length===1){const c=o[0],h=(l=this.context.element)===null||l===void 0?void 0:l.getElement(Re(c)),f=this.resetEdgeStyle(c);(!h||!rg(f,h.attributes))&&Xi(n,h?"update":"add","edge",f);return}const u=o.map(({source:c,target:h,style:f={}},d)=>{const{startArrow:v,endArrow:g}=f,p={},[m,b]=s[`${c}|${h}|${d}`]?["endArrow","startArrow"]:["startArrow","endArrow"];return pl(v)&&(p[m]=v),pl(g)&&(p[b]=g),p}).reduce((c,h)=>Object.assign(Object.assign({},c),h),{});o.forEach((c,h,f)=>{var d;if(h!==0){Xi(n,"remove","edge",c);return}const v=Object.assign({},pt(this.options.style)?this.options.style(f):this.options.style,{childrenData:f});this.cacheMergeStyle.set(Re(c),v);const g=Object.assign(Object.assign({},c),{type:"line",style:Object.assign(Object.assign(Object.assign({},c.style),u),v)}),p=(d=this.context.element)===null||d===void 0?void 0:d.getElement(Re(c));(!p||!rg(g.style,p.attributes))&&Xi(n,p?"update":"add","edge",g,!0)})})}}beforeDraw(e){const t=this.getAffectedParallelEdges(e);return t.size===0||(this.options.mode==="bundle"?this.applyBundlingStyle(e,t,this.options.distance):this.applyMergingStyle(e,t)),e}}sg.defaultOptions={mode:"bundle",distance:15};const JT=r=>{const e=new Map,t=new Set,n={};for(const[i,a]of r){if(t.has(i))continue;const{source:s,target:o}=a,l=`${s}-${o}`;e.has(l)||e.set(l,[]),e.get(l).push(a),t.add(i);for(const[u,c]of r)t.has(u)||Dy(a,c)&&(e.get(l).push(c),t.add(u),s===c.target&&o===c.source&&(n[`${c.source}|${c.target}|${e.get(l).length-1}`]=!0))}return{edgeMap:e,reverses:n}},GW=(r,e,t)=>e.filter(n=>(t||Re(n)!==Re(r))&&Dy(n,r)),Dy=(r,e)=>{const{sourceNode:t,targetNode:n}=r.style||{},{sourceNode:i,targetNode:a}=e.style||{};return t===i&&n===a||t===a&&n===i};class HW extends vo{beforeDraw(e,t){const{stage:n}=t;if(n==="visibility")return e;const{model:i}=this.context,{update:{nodes:a,edges:s,combos:o}}=e,l=(u,c)=>{i.getRelatedEdgesData(c).forEach(f=>!s.has(Re(f))&&s.set(Re(f),f))};return a.forEach(l),o.forEach(l),e}}var XW=function(r,e){var t={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i{if(o.depth=l,!o.children)return o;const{children:u}=o,c=XW(o,["children"]);return Object.assign(Object.assign({},c),{children:u.map(h=>h.id)})},getEdgeData:n=(o,l)=>({source:o.id,target:l.id}),getChildren:i=o=>o.children||[]}=e||{},a=[],s=[];return Bo(r,(o,l)=>{a.push(t(o,l));const u=i(o);for(const c of u)s.push(n(o,c))},o=>i(o),"TB"),{nodes:a,edges:s}}var VW=function(r,e,t,n){function i(a){return a instanceof t?a:new t(function(s){s(a)})}return new(t||(t=Promise))(function(a,s){function o(c){try{u(n.next(c))}catch(h){s(h)}}function l(c){try{u(n.throw(c))}catch(h){s(h)}}function u(c){c.done?a(c.value):i(c.value).then(o,l)}u((n=n.apply(r,e||[])).next())})};class og extends N0{constructor(){super(...arguments),this.id="fishbone"}getRoot(){const e=this.context.model.getRootsData();if(!(ts(e)||e.length>2))return e[0]}formatSize(e){const t=typeof e=="function"?e:()=>e;return n=>ra(t(n))}doLayout(e,t){const{hGap:n,getRibSep:i,vGap:a,nodeSize:s,height:o}=t,{model:l}=this.context,u=this.formatSize(s);let c=u(e)[0]+i(e);const h=(x,O=0)=>{var T;return O+=n*((x.children||[]).length+1),(T=x.children)===null||T===void 0||T.forEach(S=>{var k;(k=l.getNodeLikeDatum(S).children)===null||k===void 0||k.forEach(W=>{const U=l.getNodeLikeDatum(W);O=h(U,O)})}),O},f=x=>{if(x.depth===1)return c;const O=l.getParentData(x.id,"tree");if(gu(x)){const T=l.getParentData(O.id,"tree"),S=g(x)-g(T);return f(O)+S*n/a}else{const T=(O.children||[]).indexOf(x.id),S=l.getNodeData((O.children||[]).slice(T));return d(O)-S.reduce((k,C)=>k+h(C),0)-u(O)[0]/2}},d=tm(x=>{if(Iy(x))return u(x)[0]/2;const O=l.getParentData(x.id,"tree");if(gu(x))return f(x)+h(x)+u(x)[0]/2;{const T=g(x)-g(O),S=n/a;return f(x)+T*S}},x=>x.id),v=x=>g(l.getParentData(x,"tree")),g=tm(x=>{if(Iy(x))return o/2;if(gu(x)){const O=l.getParentData(x.id,"tree"),T=O.children.indexOf(x.id);if(T===0)return v(O.id)+a;const S=l.getNodeLikeDatum(O.children[T-1]);if(ts(S.children))return g(S)+a;const k=l.getDescendantsData(S.id);return Math.max(...k.map(C=>gu(C)?v(C.id):g(C)))+a}else{if(ts(x.children))return v(x.id)+a;const O=l.getNodeLikeDatum(x.children.slice(-1)[0]);if(ts(O.children))return g(O)+a;const T=l.getDescendantsData(x.id).slice(-1)[0];return(gu(T)?v(T.id):g(T))+a}},x=>x.id);let p=0;const m={nodes:[],edges:[]},b=x=>{var O;(O=x.children)===null||O===void 0||O.forEach(W=>b(l.getNodeLikeDatum(W)));const T=g(x),S=d(x);if(m.nodes.push({id:x.id,x:S,y:T}),Iy(x))return;const k=l.getRelatedEdgesData(x.id,"in")[0],C=[f(x),gu(x)?T:v(x.id)];m.edges.push({id:Re(k),controlPoints:[C],relatedNodeId:x.id}),p=Math.max(p,S+i(x)),x.depth===1&&(c=p)};return b(e),m}placeAlterative(e,t){const n=(t.children||[]).filter((o,l)=>l%2!==0);if(n.length===0)return e;const{model:i}=this.context,a=e.nodes.find(o=>o.id===t.id).y,s=o=>{const l=i.getAncestorsData(o,"tree");if(ts(l))return!1;const u=l.length===1?o:l[l.length-2].id;return n.includes(u)};e.nodes.forEach(o=>{s(o.id)&&(o.y=2*a-o.y)}),e.edges.forEach(o=>{s(o.relatedNodeId)&&(o.controlPoints=o.controlPoints.map(l=>[l[0],2*a-l[1]]))})}rightToLeft(e,t){return e.nodes.forEach(n=>n.x=t.width-n.x),e.edges.forEach(n=>{n.controlPoints=n.controlPoints.map(i=>[t.width-i[0],i[1]])}),e}execute(e,t){return VW(this,void 0,void 0,function*(){const n=Object.assign(Object.assign(Object.assign({},og.defaultOptions),this.options),t),{direction:i,nodeSize:a}=n,s=this.getRoot();if(!s)return e;const o=this.formatSize(a);n.vGap||(n.vGap=Math.max(...(e.nodes||[]).map(f=>o(f)[1]))),n.hGap||(n.hGap=Math.max(...(e.nodes||[]).map(f=>o(f)[0])));let l=this.doLayout(s,n);this.placeAlterative(l,s),i==="RL"&&(l=this.rightToLeft(l,n));const{model:u}=this.context,c=[],h=[];return l.nodes.forEach(f=>{const{id:d,x:v,y:g}=f,p=u.getNodeLikeDatum(d);c.push(qT(p,{x:v,y:g}))}),l.edges.forEach(f=>{const{id:d,controlPoints:v}=f,g=u.getEdgeDatum(d);h.push(qT(g,{controlPoints:v}))}),{nodes:c,edges:h}})}}og.defaultOptions={direction:"RL",getRibSep:()=>60};const qT=(r,e)=>Object.assign(Object.assign({},r),{style:Object.assign(Object.assign({},r.style||{}),e)}),Iy=r=>r.depth===0,gu=r=>(r.depth||(r.depth=0))%2===0,YW=["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)"],UW=["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)"],ZW=["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)"],KW=["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)"],QW=["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)"],JW=["#7E92B5","#F4664A","#FFBE3A"],qW={type:"group",color:["#1783FF","#00C9C9","#F08F56","#D580FF","#7863FF","#DB9D0D","#60C42D","#FF80CA","#2491B3","#17C76F"]},$W={type:"group",color:["#99ADD1","#1783FF","#00C9C9","#F08F56","#D580FF","#7863FF","#DB9D0D","#60C42D","#FF80CA","#2491B3","#17C76F"]};function $T(r){const{bgColor:e,textColor:t,nodeColor:n,nodeColorDisabled:i,nodeStroke:a,nodeHaloStrokeOpacityActive:s=.15,nodeHaloStrokeOpacitySelected:o=.25,nodeOpacityDisabled:l=.06,nodeIconOpacityInactive:u=.85,nodeOpacityInactive:c=.25,nodeBadgePalette:h=JW,nodePaletteOptions:f=qW,edgeColor:d,edgeColorDisabled:v,edgePaletteOptions:g=$W,comboColor:p,comboColorDisabled:m,comboStroke:b,comboStrokeDisabled:x,edgeColorInactive:O}=r;return{background:e,node:{palette:f,style:{donutOpacity:1,badgeBackgroundOpacity:1,badgeFill:"#fff",badgeFontSize:8,badgePadding:[0,4],badgePalette:h,fill:n,fillOpacity:1,halo:!1,iconFill:"#fff",iconOpacity:1,labelBackground:!1,labelBackgroundFill:e,labelBackgroundLineWidth:0,labelBackgroundOpacity:.75,labelFill:t,labelFillOpacity:.85,labelLineHeight:16,labelPadding:[0,2],labelFontSize:12,labelFontWeight:400,labelOpacity:1,labelOffsetY:2,lineWidth:0,portFill:n,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:c,donutOpacity:c,fillOpacity:c,iconOpacity:u,labelFill:t,labelFillOpacity:c,strokeOpacity:c},disabled:{badgeBackgroundOpacity:.25,donutOpacity:l,fill:i,fillOpacity:l,iconFill:i,iconOpacity:.25,labelFill:t,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:d,badgeFill:"#fff",badgeFontSize:8,badgeOffsetX:10,fillOpacity:1,halo:!1,haloLineWidth:12,haloStrokeOpacity:1,increasedLineWidthForHitTesting:2,labelBackground:!1,labelBackgroundFill:e,labelBackgroundLineWidth:0,labelBackgroundOpacity:.75,labelBackgroundPadding:[4,4,4,4],labelFill:t,labelFontSize:12,labelFontWeight:400,labelOpacity:1,labelPlacement:"center",labelTextBaseline:"middle",lineWidth:1,stroke:d,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:e,collapsedMarkerFontSize:12,collapsedMarkerFillOpacity:1,collapsedSize:32,collapsedFillOpacity:1,fill:p,halo:!1,haloLineWidth:12,haloStroke:b,haloStrokeOpacity:.25,labelBackground:!1,labelBackgroundFill:e,labelBackgroundLineWidth:0,labelBackgroundOpacity:.75,labelBackgroundPadding:[2,4,2,4],labelFill:t,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:m,fillOpacity:.25,labelOpacity:.25,stroke:x,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 eV=$T({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"}),tV=$T({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"}),nV={animation:{"combo-collapse":Tx,"combo-expand":m_,"node-collapse":Mx,"node-expand":g_,"path-in":Sx,"path-out":p_,fade:d_,translate:v_},behavior:{"brush-select":ic,"click-select":Tf,"collapse-expand":ad,"create-edge":ud,"drag-canvas":cd,"drag-element-force":Q6,"drag-element":yc,"fix-element-size":vd,"focus-element":gd,"hover-activate":pd,"lasso-select":q6,"auto-adapt-label":xf,"optimize-viewport-transform":md,"scroll-canvas":yd,"zoom-canvas":bd},combo:{circle:WI,rect:VI},edge:{cubic:Go,line:td,polyline:nd,quadratic:rd,"cubic-horizontal":qf,"cubic-radial":$f,"cubic-vertical":ed},layout:{"antv-dagre":F4,"combo-combined":l8,"compact-box":xd.compactBox,"d3-force":D8,"force-atlas2":z8,circular:H4,concentric:W0,dagre:Td,dendrogram:xd.dendrogram,fishbone:og,force:Y2,fruchterman:G8,grid:X8,indented:xd.indented,mds:$2,mindmap:xd.mindmap,radial:q8,random:a9},node:{circle:zo,diamond:rD,ellipse:Nf,hexagon:lD,html:Uf,image:Zf,rect:HI,star:XI,donut:kf,triangle:Kf},palette:{spectral:YW,tableau:UW,oranges:ZW,greens:KW,blues:QW},theme:{dark:eV,light:tV},plugin:{"bubble-sets":zd,"edge-bundling":jd,"edge-filter-lens":Gd,"grid-line":Wd,background:kd,contextmenu:Fd,fisheye:Hd,fullscreen:Xd,history:Vd,hull:Yd,legend:kv,minimap:Cv,snapline:Nv,timebar:Hv,toolbar:Xv,tooltip:Wv,watermark:Vv},transform:{"arrange-draw-order":_W,"collapse-expand-combo":RW,"collapse-expand-node":LW,"get-edge-actual-ends":DW,"map-node-size":ig,"place-radial-labels":ag,"process-parallel-edges":sg,"update-related-edges":HW},shape:{circle:Ol,ellipse:Rh,group:kl,html:Lh,image:n0,line:Vu,path:gs,polygon:Cl,polyline:fp,rect:wa,text:Nl,label:Zs,badge:zl}};function rV(){Object.entries(nV).forEach(([r,e])=>{Object.entries(e).forEach(([t,n])=>{eW(r,t,n)})})}Ke.enableMassiveParsedStyleAssignOptimization=!0,rV();const Qq={css:"//at.alicdn.com/t/a/font_470089_8hnbbf8n4u8.css",js:"//at.alicdn.com/t/a/font_470089_8hnbbf8n4u8.js"}},81746:function(Q){(function(w,M){Q.exports=M()})(typeof self!="undefined"?self:this,function(){return function(re){var w={};function M(G){if(w[G])return w[G].exports;var z=w[G]={i:G,l:!1,exports:{}};return re[G].call(z.exports,z,z.exports,M),z.l=!0,z.exports}return M.m=re,M.c=w,M.d=function(G,z,I){M.o(G,z)||Object.defineProperty(G,z,{configurable:!1,enumerable:!0,get:I})},M.n=function(G){var z=G&&G.__esModule?function(){return G.default}:function(){return G};return M.d(z,"a",z),z},M.o=function(G,z){return Object.prototype.hasOwnProperty.call(G,z)},M.p="",M(M.s=5)}([function(re,w){function M(G,z,I,R){return R===void 0&&(R="height"),I==="center"?(G[R]+z[R])/2:G.height}re.exports={assign:Object.assign,getHeight:M}},function(re,w,M){var G=M(3),z=function(){function I(L,B){B===void 0&&(B={});var D=this;D.options=B,D.rootNode=G(L,B)}var R=I.prototype;return R.execute=function(){throw new Error("please override this method")},I}();re.exports=z},function(re,w,M){var G=M(4),z=["LR","RL","TB","BT","H","V"],I=["LR","RL","H"],R=function(_){return I.indexOf(_)>-1},L=z[0];re.exports=function(D,_,j){var N=_.direction||L;if(_.isHorizontal=R(N),N&&z.indexOf(N)===-1)throw new TypeError("Invalid direction: "+N);if(N===z[0])j(D,_);else if(N===z[1])j(D,_),D.right2left();else if(N===z[2])j(D,_);else if(N===z[3])j(D,_),D.bottom2top();else if(N===z[4]||N===z[5]){var V=G(D,_),ne=V.left,ee=V.right;j(ne,_),j(ee,_),_.isHorizontal?ne.right2left():ne.bottom2top(),ee.translate(ne.x-ee.x,ne.y-ee.y),D.x=ne.x,D.y=ee.y;var fe=D.getBoundingBox();_.isHorizontal?fe.top<0&&D.translate(0,-fe.top):fe.left<0&&D.translate(-fe.left,0)}var he=_.fixedRoot;return he===void 0&&(he=!0),he&&D.translate(-(D.x+D.width/2+D.hgap),-(D.y+D.height/2+D.vgap)),B(D,_),D};function B(D,_){if(_.radial){var j=_.isHorizontal?["x","y"]:["y","x"],N=j[0],V=j[1],ne={x:1/0,y:1/0},ee={x:-1/0,y:-1/0},fe=0;D.DFTraverse(function(se){fe++;var le=se.x,ye=se.y;ne.x=Math.min(ne.x,le),ne.y=Math.min(ne.y,ye),ee.x=Math.max(ee.x,le),ee.y=Math.max(ee.y,ye)});var he=ee[V]-ne[V];if(he===0)return;var K=Math.PI*2/fe;D.DFTraverse(function(se){var le=(se[V]-ne[V])/he*(Math.PI*2-K)+K,ye=se[N]-D[N];se.x=Math.cos(le)*ye,se.y=Math.sin(le)*ye})}}},function(re,w,M){var G=M(0),z=18,I=z*2,R=z,L={getId:function(j){return j.id||j.name},getPreH:function(j){return j.preH||0},getPreV:function(j){return j.preV||0},getHGap:function(j){return j.hgap||R},getVGap:function(j){return j.vgap||R},getChildren:function(j){return j.children},getHeight:function(j){return j.height||I},getWidth:function(j){var N=j.label||" ";return j.width||N.split("").length*z}};function B(_,j){var N=this;if(N.vgap=N.hgap=0,_ instanceof B)return _;N.data=_;var V=j.getHGap(_),ne=j.getVGap(_);return N.preH=j.getPreH(_),N.preV=j.getPreV(_),N.width=j.getWidth(_),N.height=j.getHeight(_),N.width+=N.preH,N.height+=N.preV,N.id=j.getId(_),N.x=N.y=0,N.depth=0,N.children||(N.children=[]),N.addGap(V,ne),N}G.assign(B.prototype,{isRoot:function(){return this.depth===0},isLeaf:function(){return this.children.length===0},addGap:function(j,N){var V=this;V.hgap+=j,V.vgap+=N,V.width+=2*j,V.height+=2*N},eachNode:function(j){for(var N=this,V=[N],ne;ne=V.shift();)j(ne),V=ne.children.concat(V)},DFTraverse:function(j){this.eachNode(j)},BFTraverse:function(j){for(var N=this,V=[N],ne;ne=V.shift();)j(ne),V=V.concat(ne.children)},getBoundingBox:function(){var j={left:Number.MAX_VALUE,top:Number.MAX_VALUE,width:0,height:0};return this.eachNode(function(N){j.left=Math.min(j.left,N.x),j.top=Math.min(j.top,N.y),j.width=Math.max(j.width,N.x+N.width),j.height=Math.max(j.height,N.y+N.height)}),j},translate:function(j,N){j===void 0&&(j=0),N===void 0&&(N=0),this.eachNode(function(V){V.x+=j,V.y+=N,V.x+=V.preH,V.y+=V.preV})},right2left:function(){var j=this,N=j.getBoundingBox();j.eachNode(function(V){V.x=V.x-(V.x-N.left)*2-V.width}),j.translate(N.width,0)},bottom2top:function(){var j=this,N=j.getBoundingBox();j.eachNode(function(V){V.y=V.y-(V.y-N.top)*2-V.height}),j.translate(0,N.height)}});function D(_,j,N){j===void 0&&(j={}),j=G.assign({},L,j);var V=new B(_,j),ne=[V],ee;if(!N&&!_.collapsed){for(;ee=ne.shift();)if(!ee.data.collapsed){var fe=j.getChildren(ee.data),he=fe?fe.length:0;if(ee.children=new Array(he),fe&&he)for(var K=0;KLe.low&&(Le=Le.nxt);var bt=Ye+Ie.prelim+Ie.w-(at+Je.prelim);bt>0&&(at+=bt,ne(xe,ke,Le.index,bt));var $t=he(Ie),tr=he(Je);$t<=tr&&(Ie=fe(Ie),Ie!==null&&(Ye+=Ie.mod)),$t>=tr&&(Je=ee(Je),Je!==null&&(at+=Je.mod))}!Ie&&Je?K(xe,ke,Je,at):Ie&&!Je&&se(xe,ke,Ie,Ye)}function ne(xe,ke,Le,Ie){xe.c[ke].mod+=Ie,xe.c[ke].msel+=Ie,xe.c[ke].mser+=Ie,be(xe,ke,Le,Ie)}function ee(xe){return xe.cs===0?xe.tl:xe.c[0]}function fe(xe){return xe.cs===0?xe.tr:xe.c[xe.cs-1]}function he(xe){return xe.y+xe.h}function K(xe,ke,Le,Ie){var Ye=xe.c[0].el;Ye.tl=Le;var Je=Ie-Le.mod-xe.c[0].msel;Ye.mod+=Je,Ye.prelim-=Je,xe.c[0].el=xe.c[ke].el,xe.c[0].msel=xe.c[ke].msel}function se(xe,ke,Le,Ie){var Ye=xe.c[ke].er;Ye.tr=Le;var Je=Ie-Le.mod-xe.c[ke].mser;Ye.mod+=Je,Ye.prelim-=Je,xe.c[ke].er=xe.c[ke-1].er,xe.c[ke].mser=xe.c[ke-1].mser}function le(xe){xe.prelim=(xe.c[0].prelim+xe.c[0].mod+xe.c[xe.cs-1].mod+xe.c[xe.cs-1].prelim+xe.c[xe.cs-1].w)/2-xe.w/2}function ye(xe,ke){ke+=xe.mod,xe.x=xe.prelim+ke,Ee(xe);for(var Le=0;Le=Le.low;)Le=Le.nxt;return{low:xe,index:ke,nxt:Le}}L(B,_);var Pe=M.fromNode(B,_);return j(Pe),ye(Pe,0),R(Pe,B,_),I(B,_),B}},function(re,w,M){function G(N,V){N.prototype=Object.create(V.prototype),N.prototype.constructor=N,z(N,V)}function z(N,V){return z=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(ne,ee){return ne.__proto__=ee,ne},z(N,V)}var I=M(1),R=M(9),L=M(2),B=M(0),D=function(N){function V(){return N.apply(this,arguments)||this}G(V,N);var ne=V.prototype;return ne.execute=function(){var fe=this;return fe.rootNode.width=0,L(fe.rootNode,fe.options,R)},V}(I),_={};function j(N,V){return V=B.assign({},_,V),new D(N,V).execute()}re.exports=j},function(re,w,M){var G=M(0);function z(L,B){L===void 0&&(L=0),B===void 0&&(B=[]);var D=this;D.x=D.y=0,D.leftChild=D.rightChild=null,D.height=0,D.children=B}var I={isHorizontal:!0,nodeSep:20,nodeSize:20,rankSep:200,subTreeSep:10};function R(L,B,D){D?(B.x=L.x,B.y=L.y):(B.x=L.y,B.y=L.x),L.children.forEach(function(_,j){R(_,B.children[j],D)})}re.exports=function(L,B){B===void 0&&(B={}),B=G.assign({},I,B);var D=0;function _(ee){if(!ee)return null;ee.width=0,ee.depth&&ee.depth>D&&(D=ee.depth);var fe=ee.children,he=fe.length,K=new z(ee.height,[]);return fe.forEach(function(se,le){var ye=_(se);K.children.push(ye),le===0&&(K.leftChild=ye),le===he-1&&(K.rightChild=ye)}),K.originNode=ee,K.isLeaf=ee.isLeaf(),K}function j(ee){if(ee.isLeaf||ee.children.length===0)ee.drawingDepth=D;else{var fe=ee.children.map(function(K){return j(K)}),he=Math.min.apply(null,fe);ee.drawingDepth=he-1}return ee.drawingDepth}var N;function V(ee){ee.x=ee.drawingDepth*B.rankSep,ee.isLeaf?(ee.y=0,N&&(ee.y=N.y+N.height+B.nodeSep,ee.originNode.parent!==N.originNode.parent&&(ee.y+=B.subTreeSep)),N=ee):(ee.children.forEach(function(fe){V(fe)}),ee.y=(ee.leftChild.y+ee.rightChild.y)/2)}var ne=_(L);return j(ne),V(ne),R(ne,L,B.isHorizontal),L}},function(re,w,M){function G(ne,ee){ne.prototype=Object.create(ee.prototype),ne.prototype.constructor=ne,z(ne,ee)}function z(ne,ee){return z=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(fe,he){return fe.__proto__=he,fe},z(ne,ee)}var I=M(1),R=M(11),L=M(4),B=M(0),D=["LR","RL","H"],_=D[0],j=function(ne){function ee(){return ne.apply(this,arguments)||this}G(ee,ne);var fe=ee.prototype;return fe.execute=function(){var K=this,se=K.options,le=K.rootNode;se.isHorizontal=!0;var ye=se.indent,be=ye===void 0?20:ye,Ee=se.dropCap,Ne=Ee===void 0?!0:Ee,Pe=se.direction,xe=Pe===void 0?_:Pe,ke=se.align;if(xe&&D.indexOf(xe)===-1)throw new TypeError("Invalid direction: "+xe);if(xe===D[0])R(le,be,Ne,ke);else if(xe===D[1])R(le,be,Ne,ke),le.right2left();else if(xe===D[2]){var Le=L(le,se),Ie=Le.left,Ye=Le.right;R(Ie,be,Ne,ke),Ie.right2left(),R(Ye,be,Ne,ke);var Je=Ie.getBoundingBox();Ye.translate(Je.width,0),le.x=Ye.x-le.width/2}return le},ee}(I),N={};function V(ne,ee){return ee=B.assign({},N,ee),new j(ne,ee).execute()}re.exports=V},function(re,w,M){var G=M(0);function z(I,R,L,B,D){var _=(typeof L=="function"?L(I):L)*I.depth;if(!B)try{if(I.id===I.parent.children[0].id){I.x+=_,I.y=R?R.y:0;return}}catch(V){}if(I.x+=_,R){if(I.y=R.y+G.getHeight(R,I,D),R.parent&&I.parent.id!==R.parent.id){var j=R.parent,N=j.y+G.getHeight(j,I,D);I.y=N>I.y?N:I.y}}else I.y=0}re.exports=function(I,R,L,B){var D=null;I.eachNode(function(_){z(_,D,R,L,B),D=_})}},function(re,w,M){function G(N,V){N.prototype=Object.create(V.prototype),N.prototype.constructor=N,z(N,V)}function z(N,V){return z=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(ne,ee){return ne.__proto__=ee,ne},z(N,V)}var I=M(1),R=M(13),L=M(2),B=M(0),D=function(N){function V(){return N.apply(this,arguments)||this}G(V,N);var ne=V.prototype;return ne.execute=function(){var fe=this;return L(fe.rootNode,fe.options,R)},V}(I),_={};function j(N,V){return V=B.assign({},_,V),new D(N,V).execute()}re.exports=j},function(re,w,M){var G=M(0);function z(L,B){var D=0;return L.children.length?L.children.forEach(function(_){D+=z(_,B)}):D=L.height,L._subTreeSep=B.getSubTreeSep(L.data),L.totalHeight=Math.max(L.height,D)+2*L._subTreeSep,L.totalHeight}function I(L){var B=L.children,D=B.length;if(D){B.forEach(function(ee){I(ee)});var _=B[0],j=B[D-1],N=j.y-_.y+j.height,V=0;if(B.forEach(function(ee){V+=ee.totalHeight}),N>L.height)L.y=_.y+N/2-L.height/2;else if(B.length!==1||L.height>V){var ne=L.y+(L.height-N)/2-_.y;B.forEach(function(ee){ee.translate(0,ne)})}else L.y=(_.y+_.height/2+j.y+j.height/2)/2-L.height/2}}var R={getSubTreeSep:function(){return 0}};re.exports=function(L,B){B===void 0&&(B={}),B=G.assign({},R,B),L.parent={x:0,width:0,height:0,y:0},L.BFTraverse(function(D){D.x=D.parent.x+D.parent.width}),L.parent=null,z(L,B),L.startY=0,L.y=L.totalHeight/2-L.height/2,L.eachNode(function(D){var _=D.children,j=_.length;if(j){var N=_[0];if(N.startY=D.startY+D._subTreeSep,j===1)N.y=D.y+D.height/2-N.height/2;else{N.y=N.startY+N.totalHeight/2-N.height/2;for(var V=1;Vse in K?R(K,se,{enumerable:!0,configurable:!0,writable:!0,value:le}):K[se]=le,V=(K,se)=>{for(var le in se||(se={}))_.call(se,le)&&N(K,le,se[le]);if(D)for(var le of D(se))j.call(se,le)&&N(K,le,se[le]);return K},ne=(K,se)=>L(K,B(se));function ee(K,se,le=1/3,ye){let be=K*Math.PI*2,Ee=se*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(Ne,Pe){return NeEe?Math.cos(Ee)*(1+Math.cos(Pe)*le):Math.cos(Ne)*(1+Math.cos(Pe)*le)},y:function(Ne,Pe){return NeEe?Math.sin(Ee)*(1+Math.cos(Pe)*le):Math.sin(Ne)*(1+Math.cos(Pe)*le)},z:function(Ne,Pe){return Ne<-Math.PI*.5?Math.sin(Ne):Ne>Math.PI*2.5?Math.sin(Ne)*ye*.1:Math.sin(Pe)>0?1*ye*.1:-1}}}function fe({pieData:K=[],internalDiameterRatio:se=1/3}){var le,ye,be,Ee;const Ne=[],Pe=K==null?void 0:K.reduce((Ye,Je)=>(Ye||0)+((Je==null?void 0:Je.value)||0),0);let xe=0,ke=0;const Le=[];for(let Ye=0;Ye<(K==null?void 0:K.length);Ye++){ke=xe+(Pe==0?1:((le=K==null?void 0:K[Ye])==null?void 0:le.value)||0);const Je={itemStyle:((ye=K==null?void 0:K[Ye])==null?void 0:ye.itemStyle)||{},name:((be=K==null?void 0:K[Ye])==null?void 0:be.name)||`name${Ye}`,type:"surface",parametric:!0,parametricEquation:ee(xe/(Pe||(K==null?void 0:K.length)),ke/(Pe||(K==null?void 0:K.length)),se,((Ee=K==null?void 0:K[Ye])==null?void 0:Ee.value)||(Pe==0?25:0)),wireframe:{show:!1},pieData:K==null?void 0:K[Ye]};Le.push(Je.name),Ne.push(Je),xe=ke}return Ne.push({name:"pie2d",type:"pie",showEmptyCircle:!0,label:{show:!0,formatter:Ye=>`${Ye.value} ${Ye.name}`},startAngle:-35,radius:["49%","50%"],center:["50%","40%"],data:[...K||[]].reverse(),itemStyle:{opacity:0}}),{legend:{left:"50%",top:"center",textStyle:{fontSize:12},data:Le},xAxis3D:{},yAxis3D:{},zAxis3D:{},grid3D:{viewControl:{alpha:45,rotateSensitivity:0,zoomSensitivity:0,panSensitivity:0,autoRotate:!1},left:"center",top:"-10%",show:!1,boxHeight:25},series:Ne}}const he=({dataSource:K=[{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:se="",style:le={},legend:ye={},internalDiameterRatio:be=1/3})=>{const[Ee,Ne]=(0,M.useState)([]),Pe=(0,M.useCallback)(Le=>{const Ie=Le.selected||{},Ye=K.map(Je=>Je.name).filter(Je=>Ie[Je]===!1);Ne(Ye)},[K]),xe=(0,M.useMemo)(()=>K.filter(Le=>!Ee.includes(Le.name)),[K,Ee]),ke=(0,M.useMemo)(()=>{const Le=fe({pieData:xe,internalDiameterRatio:be}),Ie=K.map(Je=>Je.name),Ye=K.reduce((Je,at)=>(Je[at.name]=!Ee.includes(at.name),Je),{});return Le.legend=ne(V(V({},Le.legend),ye),{data:Ie,selected:Ye}),Le},[xe,ye,be,K,Ee]);return M.createElement(G.Z,{onEvents:{legendselectchanged:Pe},className:`w-full h-full ${se}`,option:ke,style:V({height:"100%"},le)})};re.Z=he},58201:function(Q,re,w){"use strict";w.d(re,{Z:function(){return Pe}});var M=w(83062),G=w(67294),z=w(35973),I=w(28706),R=w.p+"static/nltpbg.f01aad4b.png",L=w.p+"static/nltpbg2.303fcb0b.png",B={title:"title___m9Fww",bg:"bg___f9tLu"},D="data:image/png;base64,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",_=w.p+"static/2.3612d2e5.png",j=w.p+"static/3.0ae7bccf.png",N=w.p+"static/4.d75cb058.png",V=w.p+"static/5.89f1948f.png",ne=w.p+"static/6.cc2d55ef.png",ee=w.p+"static/7.3afb9435.png",fe=w.p+"static/8.5401d4a7.png",he=Object.defineProperty,K=Object.getOwnPropertySymbols,se=Object.prototype.hasOwnProperty,le=Object.prototype.propertyIsEnumerable,ye=(xe,ke,Le)=>ke in xe?he(xe,ke,{enumerable:!0,configurable:!0,writable:!0,value:Le}):xe[ke]=Le,be=(xe,ke)=>{for(var Le in ke||(ke={}))se.call(ke,Le)&&ye(xe,Le,ke[Le]);if(K)for(var Le of K(ke))le.call(ke,Le)&&ye(xe,Le,ke[Le]);return xe};const Ee=({DataProps:xe=[],baifenbi:ke=1,pathsDetail:Le,isShow:Ie,item:Ye,i:Je})=>{const at=(0,z.useParams)(),[bt,$t]=(0,G.useState)(0),tr=33,Wr=Math.PI/2+Je*(Math.PI*2/(xe==null?void 0:xe.length)),Ga=tr*Math.cos(Wr)/100,cs=tr*Math.sin(Wr)/100;return G.createElement(M.Z,{color:"#444FC2",title:Ie?null:G.createElement("div",{style:{fontSize:`${14*ke}rem`}},G.createElement("div",null,"\u8986\u76D6",(Ye==null?void 0:Ye.children_count)||0,"\u4E2A\u5B50\u80FD\u529B\u3001",(Ye==null?void 0:Ye.subject_knowledge_graph_count)||0,"\u4E2A\u77E5\u8BC6\u70B9"),G.createElement("div",{style:{marginTop:"10rem"}},"\u70B9\u51FB\u67E5\u770B\u8BE6\u60C5"))},G.createElement("div",{className:`flex flex-col item-center justify-center absolute ${Ie?"":"current"} ${B.title}`,onClick:()=>{Ie||(0,I.xg)(`/knowledgegraph/${at==null?void 0:at.pathId}/abilityMap/detail/${Ye==null?void 0:Ye.id}${window.location.search}`)},onMouseOver:()=>{Ie||$t(2)},onMouseOut:()=>{Ie||$t(0)},style:{left:`calc(50% - ${Ga*100}%)`,top:`calc(50% - ${cs*100}%)`,transform:"translate(-50%,-50%)",width:"20%",fontSize:`${(14+bt)*ke}rem`}},G.createElement("div",{style:{opacity:"0.8"}},"\u4E3B\u80FD\u529B"),G.createElement("div",{className:"multi_ellipsis1",style:{fontSize:`${18*ke}rem`,fontWeight:500}},Ye==null?void 0:Ye.name),!(Le!=null&&Le.detail.can_managed)&&G.createElement("div",null,"\u638C\u63E1\u7387 ",Ye==null?void 0:Ye.grasp_rate," %")))},Ne=({DataProps:xe=[],className:ke="",style:Le={},baifenbi:Ie=1,pathsDetail:Ye,isShow:Je})=>{const at=(0,G.useMemo)(()=>{const bt=["",D,_,j,N,V,ne,ee,fe];return bt==null?void 0:bt[(xe==null?void 0:xe.length)||0]},[xe]);return G.createElement("div",{className:`w-full h-full flex item-center justify-center relative overflow_hidden ${ke} ${B.bg}`,style:be({backgroundImage:`url(${xe!=null&&xe.length?L:R})`,backgroundSize:"auto 100%",height:"100%"},Le)},((xe==null?void 0:xe.length)||0)>0&&G.createElement("img",{className:`absolute ${B.bg}`,src:at,style:{width:"95%",height:"95%",left:"50%",top:"50%",transform:`translate(-50%, -50%) ${[2,3,6].includes(xe==null?void 0:xe.length)?"rotate(90deg)":(xe==null?void 0:xe.length)==7?"rotate(25deg)":""}`}}),xe==null?void 0:xe.map((bt,$t)=>G.createElement(Ee,{key:$t,i:$t,item:bt,DataProps:xe,className:ke,style:Le,baifenbi:Ie,pathsDetail:Ye,isShow:Je})),G.createElement("div",{className:"text-center"},G.createElement("div",{style:{fontSize:`${28*Ie}rem`}},"\u80FD\u529B\u76EE\u6807"),G.createElement("div",{style:{fontSize:`${12*Ie}rem`}},"\u70B9\u51FB\u73AF\u56FE\u67E5\u770B\u80FD\u529B\u8BE6\u60C5")))};var Pe=(0,z.connect)(({pathsDetail:xe})=>({pathsDetail:xe}))(Ne)},48202:function(Q,re,w){"use strict";var M,G=Object.defineProperty,z=$=>{throw TypeError($)},I=Math.pow,R=($,E,P)=>E in $?G($,E,{enumerable:!0,configurable:!0,writable:!0,value:P}):$[E]=P,L=($,E,P)=>R($,typeof E!="symbol"?E+"":E,P),B=($,E,P)=>E.has($)||z("Cannot "+P),D=($,E,P)=>(B($,E,"read from private field"),P?P.call($):E.get($)),_=($,E,P)=>E.has($)?z("Cannot add the same private member more than once"):E instanceof WeakSet?E.add($):E.set($,P),j=($,E,P,y)=>(B($,E,"write to private field"),y?y.call($,P):E.set($,P),P),N=($,E,P)=>(B($,E,"access private method"),P),V,ne,ee;M={value:!0};var fe=w(44091),he=w(75823);const K=" ".repeat(2),se=" ".repeat(4);function le(){return ye(this)}function ye($,E={}){const{maxRows:P=15,maxColumns:y=10,maxNumSize:A=8,padMinus:F="auto"}=E;return`${$.constructor.name} { ${K}[ ${se}${be($,P,y,A,F)} ${K}] ${K}rows: ${$.rows} ${K}columns: ${$.columns} }`}function be($,E,P,y,A){const{rows:F,columns:ue}=$,ce=Math.min(F,E),pe=Math.min(ue,P),ge=[];if(A==="auto"){A=!1;e:for(let _e=0;_e=0&&P?` ${Ne($,E-1)}`:Ne($,E)).padEnd(E)}function Ne($,E){let P=$.toString();if(P.length<=E)return P;let y=$.toFixed(E);if(y.length>E&&(y=$.toFixed(Math.max(0,E-(y.length-E)))),y.length<=E&&!y.startsWith("0.000")&&!y.startsWith("-0.000"))return y;let A=$.toExponential(E);return A.length>E&&(A=$.toExponential(Math.max(0,E-(A.length-E)))),A.slice(0)}function Pe($,E){$.prototype.add=function(y){return typeof y=="number"?this.addS(y):this.addM(y)},$.prototype.addS=function(y){for(let A=0;A>y);return this},$.prototype.signPropagatingRightShiftM=function(y){if(y=E.checkMatrix(y),this.rows!==y.rows||this.columns!==y.columns)throw new RangeError("Matrices dimensions must be equal");for(let A=0;A>y.get(A,F));return this},$.signPropagatingRightShift=function(y,A){return new E(y).signPropagatingRightShift(A)},$.prototype.rightShift=function(y){return typeof y=="number"?this.rightShiftS(y):this.rightShiftM(y)},$.prototype.rightShiftS=function(y){for(let A=0;A>>y);return this},$.prototype.rightShiftM=function(y){if(y=E.checkMatrix(y),this.rows!==y.rows||this.columns!==y.columns)throw new RangeError("Matrices dimensions must be equal");for(let A=0;A>>y.get(A,F));return this},$.rightShift=function(y,A){return new E(y).rightShift(A)},$.prototype.zeroFillRightShift=$.prototype.rightShift,$.prototype.zeroFillRightShiftS=$.prototype.rightShiftS,$.prototype.zeroFillRightShiftM=$.prototype.rightShiftM,$.zeroFillRightShift=$.rightShift,$.prototype.not=function(){for(let y=0;yy)throw new RangeError("Row index out of range")}function ke($,E,P){let y=P?$.columns:$.columns-1;if(E<0||E>y)throw new RangeError("Column index out of range")}function Le($,E){if(E.to1DArray&&(E=E.to1DArray()),E.length!==$.columns)throw new RangeError("vector size must be the same as the number of columns");return E}function Ie($,E){if(E.to1DArray&&(E=E.to1DArray()),E.length!==$.rows)throw new RangeError("vector size must be the same as the number of rows");return E}function Ye($,E){if(!fe.isAnyArray(E))throw new TypeError("row indices must be an array");for(let P=0;P=$.rows)throw new RangeError("row indices are out of range")}function Je($,E){if(!fe.isAnyArray(E))throw new TypeError("column indices must be an array");for(let P=0;P=$.columns)throw new RangeError("column indices are out of range")}function at($,E,P,y,A){if(arguments.length!==5)throw new RangeError("expected 4 arguments");if($t("startRow",E),$t("endRow",P),$t("startColumn",y),$t("endColumn",A),E>P||y>A||E<0||E>=$.rows||P<0||P>=$.rows||y<0||y>=$.columns||A<0||A>=$.columns)throw new RangeError("Submatrix indices are out of range")}function bt($,E=0){let P=[];for(let y=0;y<$;y++)P.push(E);return P}function $t($,E){if(typeof E!="number")throw new TypeError(`${$} must be a number`)}function tr($){if($.isEmpty())throw new Error("Empty matrix has no elements to index")}function Wr($){let E=bt($.rows);for(let P=0;P<$.rows;++P)for(let y=0;y<$.columns;++y)E[P]+=$.get(P,y);return E}function Ga($){let E=bt($.columns);for(let P=0;P<$.rows;++P)for(let y=0;y<$.columns;++y)E[y]+=$.get(P,y);return E}function cs($){let E=0;for(let P=0;P<$.rows;P++)for(let y=0;y<$.columns;y++)E+=$.get(P,y);return E}function Me($){let E=bt($.rows,1);for(let P=0;P<$.rows;++P)for(let y=0;y<$.columns;++y)E[P]*=$.get(P,y);return E}function De($){let E=bt($.columns,1);for(let P=0;P<$.rows;++P)for(let y=0;y<$.columns;++y)E[y]*=$.get(P,y);return E}function ze($){let E=1;for(let P=0;P<$.rows;P++)for(let y=0;y<$.columns;y++)E*=$.get(P,y);return E}function me($,E,P){const y=$.rows,A=$.columns,F=[];for(let ue=0;ue=F)throw new RangeError("min must be smaller than max");let ce=F-A,pe=new ft(E,P);for(let ge=0;gey?(F=!0,y=P):(A=!1,F=!0);E++}return A}isReducedEchelonForm(){let E=0,P=0,y=-1,A=!0,F=!1;for(;Ey?(F=!0,y=P):(A=!1,F=!0);for(let ue=P+1;ueE.get(A,y)&&(A=F);if(E.get(A,y)===0)y++;else{E.swapRows(P,A);let F=E.get(P,y);for(let ue=y;ue=0;)if(E.maxRow(A)===0)A--;else{let F=0,ue=!1;for(;FP[y]&&(P[y]=this.get(y,A));return P}case"column":{const P=new Array(this.columns).fill(Number.NEGATIVE_INFINITY);for(let y=0;yP[A]&&(P[A]=this.get(y,A));return P}case void 0:{let P=this.get(0,0);for(let y=0;yP&&(P=this.get(y,A));return P}default:throw new Error(`invalid option: ${E}`)}}maxIndex(){tr(this);let E=this.get(0,0),P=[0,0];for(let y=0;yE&&(E=this.get(y,A),P[0]=y,P[1]=A);return P}min(E){if(this.isEmpty())return NaN;switch(E){case"row":{const P=new Array(this.rows).fill(Number.POSITIVE_INFINITY);for(let y=0;yP&&(P=this.get(E,y));return P}maxRowIndex(E){xe(this,E),tr(this);let P=this.get(E,0),y=[E,0];for(let A=1;AP&&(P=this.get(E,A),y[1]=A);return y}minRow(E){if(xe(this,E),this.isEmpty())return NaN;let P=this.get(E,0);for(let y=1;yP&&(P=this.get(y,E));return P}maxColumnIndex(E){ke(this,E),tr(this);let P=this.get(0,E),y=[0,E];for(let A=1;AP&&(P=this.get(A,E),y[0]=A);return y}minColumn(E){if(ke(this,E),this.isEmpty())return NaN;let P=this.get(0,E);for(let y=1;y1;A/=2)A&1&&(P=P.mmul(y)),y=y.mmul(y);return P}strassen2x2(E){E=ft.checkMatrix(E);let P=new ft(2,2);const y=this.get(0,0),A=E.get(0,0),F=this.get(0,1),ue=E.get(0,1),ce=this.get(1,0),pe=E.get(1,0),ge=this.get(1,1),_e=E.get(1,1),we=(y+ge)*(A+_e),Xe=(ce+ge)*A,et=y*(ue-_e),Fe=ge*(pe-A),Ue=(y+F)*_e,dt=(ce-y)*(A+ue),Se=(F-ge)*(pe+_e),Ze=we+Fe-Ue+Se,Pt=et+Ue,Lt=Xe+Fe,Bt=we-Xe+et+dt;return P.set(0,0,Ze),P.set(0,1,Pt),P.set(1,0,Lt),P.set(1,1,Bt),P}strassen3x3(E){E=ft.checkMatrix(E);let P=new ft(3,3);const y=this.get(0,0),A=this.get(0,1),F=this.get(0,2),ue=this.get(1,0),ce=this.get(1,1),pe=this.get(1,2),ge=this.get(2,0),_e=this.get(2,1),we=this.get(2,2),Xe=E.get(0,0),et=E.get(0,1),Fe=E.get(0,2),Ue=E.get(1,0),dt=E.get(1,1),Se=E.get(1,2),Ze=E.get(2,0),Pt=E.get(2,1),Lt=E.get(2,2),Bt=(y+A+F-ue-ce-_e-we)*dt,In=(y-ue)*(-et+dt),At=ce*(-Xe+et+Ue-dt-Se-Ze+Lt),kt=(-y+ue+ce)*(Xe-et+dt),Sn=(ue+ce)*(-Xe+et),Ce=y*Xe,Qe=(-y+ge+_e)*(Xe-Fe+Se),gt=(-y+ge)*(Fe-Se),$e=(ge+_e)*(-Xe+Fe),Gn=(y+A+F-ce-pe-ge-_e)*Se,mn=_e*(-Xe+Fe+Ue-dt-Se-Ze+Pt),mt=(-F+_e+we)*(dt+Ze-Pt),Tn=(F-we)*(dt-Pt),_n=F*Ze,di=(_e+we)*(-Ze+Pt),Hn=(-F+ce+pe)*(Se+Ze-Lt),Zn=(F-pe)*(Se-Lt),Oi=(ce+pe)*(-Ze+Lt),Ot=A*Ue,wr=pe*Pt,Lr=ue*Fe,Ut=ge*et,gn=we*Lt,rh=Ce+_n+Ot,pg=Bt+kt+Sn+Ce+mt+_n+di,Mu=Ce+Qe+$e+Gn+_n+Hn+Oi,Su=In+At+kt+Ce+_n+Hn+Zn,mg=In+kt+Sn+Ce+wr,Dr=_n+Hn+Zn+Oi+Lr,vi=Ce+Qe+gt+mn+mt+Tn+_n,Tu=mt+Tn+_n+di+Ut,Au=Ce+Qe+gt+$e+gn;return P.set(0,0,rh),P.set(0,1,pg),P.set(0,2,Mu),P.set(1,0,Su),P.set(1,1,mg),P.set(1,2,Dr),P.set(2,0,vi),P.set(2,1,Tu),P.set(2,2,Au),P}mmulStrassen(E){E=ft.checkMatrix(E);let P=this.clone(),y=P.rows,A=P.columns,F=E.rows,ue=E.columns;A!==F&&console.warn(`Multiplying ${y} x ${A} and ${F} x ${ue} matrix: dimensions do not match.`);function ce(we,Xe,et){let Fe=we.rows,Ue=we.columns;if(Fe===Xe&&Ue===et)return we;{let dt=wt.zeros(Xe,et);return dt=dt.setSubMatrix(we,0,0),dt}}let pe=Math.max(y,F),ge=Math.max(A,ue);P=ce(P,pe,ge),E=ce(E,pe,ge);function _e(we,Xe,et,Fe){if(et<=512||Fe<=512)return we.mmul(Xe);et%2===1&&Fe%2===1?(we=ce(we,et+1,Fe+1),Xe=ce(Xe,et+1,Fe+1)):et%2===1?(we=ce(we,et+1,Fe),Xe=ce(Xe,et+1,Fe)):Fe%2===1&&(we=ce(we,et,Fe+1),Xe=ce(Xe,et,Fe+1));let Ue=parseInt(we.rows/2,10),dt=parseInt(we.columns/2,10),Se=we.subMatrix(0,Ue-1,0,dt-1),Ze=Xe.subMatrix(0,Ue-1,0,dt-1),Pt=we.subMatrix(0,Ue-1,dt,we.columns-1),Lt=Xe.subMatrix(0,Ue-1,dt,Xe.columns-1),Bt=we.subMatrix(Ue,we.rows-1,0,dt-1),In=Xe.subMatrix(Ue,Xe.rows-1,0,dt-1),At=we.subMatrix(Ue,we.rows-1,dt,we.columns-1),kt=Xe.subMatrix(Ue,Xe.rows-1,dt,Xe.columns-1),Sn=_e(wt.add(Se,At),wt.add(Ze,kt),Ue,dt),Ce=_e(wt.add(Bt,At),Ze,Ue,dt),Qe=_e(Se,wt.sub(Lt,kt),Ue,dt),gt=_e(At,wt.sub(In,Ze),Ue,dt),$e=_e(wt.add(Se,Pt),kt,Ue,dt),Gn=_e(wt.sub(Bt,Se),wt.add(Ze,Lt),Ue,dt),mn=_e(wt.sub(Pt,At),wt.add(In,kt),Ue,dt),mt=wt.add(Sn,gt);mt.sub($e),mt.add(mn);let Tn=wt.add(Qe,$e),_n=wt.add(Ce,gt),di=wt.sub(Sn,Ce);di.add(Qe),di.add(Gn);let Hn=wt.zeros(2*mt.rows,2*mt.columns);return Hn=Hn.setSubMatrix(mt,0,0),Hn=Hn.setSubMatrix(Tn,mt.rows,0),Hn=Hn.setSubMatrix(_n,0,mt.columns),Hn=Hn.setSubMatrix(di,mt.rows,mt.columns),Hn.subMatrix(0,et-1,0,Fe-1)}return _e(P,E,pe,ge)}scaleRows(E={}){if(typeof E!="object")throw new TypeError("options must be an object");const{min:P=0,max:y=1}=E;if(!Number.isFinite(P))throw new TypeError("min must be a number");if(!Number.isFinite(y))throw new TypeError("max must be a number");if(P>=y)throw new RangeError("min must be smaller than max");let A=new ft(this.rows,this.columns);for(let F=0;F0&&he(ue,{min:P,max:y,output:ue}),A.setRow(F,ue)}return A}scaleColumns(E={}){if(typeof E!="object")throw new TypeError("options must be an object");const{min:P=0,max:y=1}=E;if(!Number.isFinite(P))throw new TypeError("min must be a number");if(!Number.isFinite(y))throw new TypeError("max must be a number");if(P>=y)throw new RangeError("min must be smaller than max");let A=new ft(this.rows,this.columns);for(let F=0;Fy||P<0||P>=this.columns||y<0||y>=this.columns)throw new RangeError("Argument out of range");let A=new ft(E.length,y-P+1);for(let F=0;F=this.rows)throw new RangeError(`Row index out of range: ${E[F]}`);A.set(F,ue-P,this.get(E[F],ue))}return A}subMatrixColumn(E,P,y){if(P===void 0&&(P=0),y===void 0&&(y=this.rows-1),P>y||P<0||P>=this.rows||y<0||y>=this.rows)throw new RangeError("Argument out of range");let A=new ft(y-P+1,E.length);for(let F=0;F=this.columns)throw new RangeError(`Column index out of range: ${E[F]}`);A.set(ue-P,F,this.get(ue,E[F]))}return A}setSubMatrix(E,P,y){if(E=ft.checkMatrix(E),E.isEmpty())return this;let A=P+E.rows-1,F=y+E.columns-1;at(this,P,A,y,F);for(let ue=0;uetypeof E=="number")}wt.random=wt.rand,wt.randomInt=wt.randInt,wt.diagonal=wt.diag,wt.prototype.diagonal=wt.prototype.diag,wt.identity=wt.eye,wt.prototype.negate=wt.prototype.neg,wt.prototype.tensorProduct=wt.prototype.kroneckerProduct;const hs=class Gy extends wt{constructor(E,P){if(super(),_(this,V),L(this,"data"),Gy.isMatrix(E))N(this,V,ne).call(this,E.rows,E.columns),Gy.copy(E,this);else if(Number.isInteger(E)&&E>=0)N(this,V,ne).call(this,E,P);else if(fe.isAnyArray(E)){const y=E;if(E=y.length,P=E?y[0].length:0,typeof P!="number")throw new TypeError("Data must be a 2D array with at least one element");this.data=[];for(let A=0;A=0)for(let P=0;P<$;P++)this.data.push(new Float64Array(E));else throw new TypeError("nColumns must be a positive integer");this.rows=$,this.columns=E};let ft=hs;Pe(wt,ft);const po=class Hy extends wt{constructor(E){if(super(),_(this,ee),ft.isMatrix(E)){if(!E.isSymmetric())throw new TypeError("not symmetric data");j(this,ee,ft.copy(E,new ft(E.rows,E.rows)))}else if(Number.isInteger(E)&&E>=0)j(this,ee,new ft(E,E));else if(j(this,ee,new ft(E)),!this.isSymmetric())throw new TypeError("not symmetric data")}get size(){return D(this,ee).size}get rows(){return D(this,ee).rows}get columns(){return D(this,ee).columns}get diagonalSize(){return this.rows}static isSymmetricMatrix(E){return ft.isMatrix(E)&&E.klassType==="SymmetricMatrix"}static zeros(E){return new this(E)}static ones(E){return new this(E).fill(1)}clone(){const E=new Hy(this.diagonalSize);for(const[P,y,A]of this.upperRightEntries())E.set(P,y,A);return E}toMatrix(){return new ft(this)}get(E,P){return D(this,ee).get(E,P)}set(E,P,y){return D(this,ee).set(E,P,y),D(this,ee).set(P,E,y),this}removeCross(E){return D(this,ee).removeRow(E),D(this,ee).removeColumn(E),this}addCross(E,P){P===void 0&&(P=E,E=this.diagonalSize);const y=P.slice();return y.splice(E,1),D(this,ee).addRow(E,y),D(this,ee).addColumn(E,P),this}applyMask(E){if(E.length!==this.diagonalSize)throw new RangeError("Mask size do not match with matrix size");const P=[];for(const[y,A]of E.entries())A||P.push(y);P.reverse();for(const y of P)this.removeCross(y);return this}toCompact(){const{diagonalSize:E}=this,P=new Array(E*(E+1)/2);for(let y=0,A=0,F=0;F=E&&(y=++A);return P}static fromCompact(E){const P=E.length,y=(Math.sqrt(8*P+1)-1)/2;if(!Number.isInteger(y))throw new TypeError(`This array is not a compact representation of a Symmetric Matrix, ${JSON.stringify(E)}`);const A=new Hy(y);for(let F=0,ue=0,ce=0;ce=y&&(F=++ue);return A}*upperRightEntries(){for(let E=0,P=0;E=this.diagonalSize&&(P=++E)}}*upperRightValues(){for(let E=0,P=0;E=this.diagonalSize&&(P=++E)}};ee=new WeakMap;let Qr=po;Qr.prototype.klassType="SymmetricMatrix";class fn extends Qr{static isDistanceMatrix(E){return Qr.isSymmetricMatrix(E)&&E.klassSubType==="DistanceMatrix"}constructor(E){if(super(E),!this.isDistance())throw new TypeError("Provided arguments do no produce a distance matrix")}set(E,P,y){return E===P&&(y=0),super.set(E,P,y)}addCross(E,P){return P===void 0&&(P=E,E=this.diagonalSize),P=P.slice(),P[E]=0,super.addCross(E,P)}toSymmetricMatrix(){return new Qr(this)}clone(){const E=new fn(this.diagonalSize);for(const[P,y,A]of this.upperRightEntries())P!==y&&E.set(P,y,A);return E}toCompact(){const{diagonalSize:E}=this,P=(E-1)*E/2,y=new Array(P);for(let A=1,F=0,ue=0;ue=E&&(A=++F+1);return y}static fromCompact(E){const P=E.length;if(P===0)return new this(0);const y=(Math.sqrt(8*P+1)+1)/2;if(!Number.isInteger(y))throw new TypeError(`This array is not a compact representation of a DistanceMatrix, ${JSON.stringify(E)}`);const A=new this(y);for(let F=1,ue=0,ce=0;ce=y&&(F=++ue+1);return A}}fn.prototype.klassSubType="DistanceMatrix";class dn extends wt{constructor(E,P,y){super(),this.matrix=E,this.rows=P,this.columns=y}}class Yi extends dn{constructor(E,P){ke(E,P),super(E,E.rows,1),this.column=P}set(E,P,y){return this.matrix.set(E,this.column,y),this}get(E){return this.matrix.get(E,this.column)}}class Ha extends dn{constructor(E,P){Je(E,P),super(E,E.rows,P.length),this.columnIndices=P}set(E,P,y){return this.matrix.set(E,this.columnIndices[P],y),this}get(E,P){return this.matrix.get(E,this.columnIndices[P])}}class yu extends dn{constructor(E){super(E,E.rows,E.columns)}set(E,P,y){return this.matrix.set(E,this.columns-P-1,y),this}get(E,P){return this.matrix.get(E,this.columns-P-1)}}class fs extends dn{constructor(E){super(E,E.rows,E.columns)}set(E,P,y){return this.matrix.set(this.rows-E-1,P,y),this}get(E,P){return this.matrix.get(this.rows-E-1,P)}}class bu extends dn{constructor(E,P){xe(E,P),super(E,1,E.columns),this.row=P}set(E,P,y){return this.matrix.set(this.row,P,y),this}get(E,P){return this.matrix.get(this.row,P)}}class Dn extends dn{constructor(E,P){Ye(E,P),super(E,P.length,E.columns),this.rowIndices=P}set(E,P,y){return this.matrix.set(this.rowIndices[E],P,y),this}get(E,P){return this.matrix.get(this.rowIndices[E],P)}}class ds extends dn{constructor(E,P,y){Ye(E,P),Je(E,y),super(E,P.length,y.length),this.rowIndices=P,this.columnIndices=y}set(E,P,y){return this.matrix.set(this.rowIndices[E],this.columnIndices[P],y),this}get(E,P){return this.matrix.get(this.rowIndices[E],this.columnIndices[P])}}class mo extends dn{constructor(E,P,y,A,F){at(E,P,y,A,F),super(E,y-P+1,F-A+1),this.startRow=P,this.startColumn=A}set(E,P,y){return this.matrix.set(this.startRow+E,this.startColumn+P,y),this}get(E,P){return this.matrix.get(this.startRow+E,this.startColumn+P)}}class ga extends dn{constructor(E){super(E,E.columns,E.rows)}set(E,P,y){return this.matrix.set(P,E,y),this}get(E,P){return this.matrix.get(P,E)}}class pa extends wt{constructor(E,P={}){const{rows:y=1}=P;if(E.length%y!==0)throw new Error("the data length is not divisible by the number of rows");super(),this.rows=y,this.columns=E.length/y,this.data=E}set(E,P,y){let A=this._calculateIndex(E,P);return this.data[A]=y,this}get(E,P){let y=this._calculateIndex(E,P);return this.data[y]}_calculateIndex(E,P){return E*this.columns+P}}class fi extends wt{constructor(E){super(),this.data=E,this.rows=E.length,this.columns=E[0].length}set(E,P,y){return this.data[E][P]=y,this}get(E,P){return this.data[E][P]}}function Xy($,E){if(fe.isAnyArray($))return $[0]&&fe.isAnyArray($[0])?new fi($):new pa($,E);throw new Error("the argument is not an array")}class xu{constructor(E){E=fi.checkMatrix(E);let P=E.clone(),y=P.rows,A=P.columns,F=new Float64Array(y),ue=1,ce,pe,ge,_e,we,Xe,et,Fe,Ue;for(ce=0;ceMath.abs(Fe[_e])&&(_e=ce);if(_e!==pe){for(ge=0;ge=0;ge--){for(pe=0;peue?A.set(F,ue,E.get(F,ue)):F===ue?A.set(F,ue,1):A.set(F,ue,0);return A}get upperTriangularMatrix(){let E=this.LU,P=E.rows,y=E.columns,A=new ft(P,y);for(let F=0;FMath.abs(E)?(P=E/$,Math.abs($)*Math.sqrt(1+P*P)):E!==0?(P=$/E,Math.abs(E)*Math.sqrt(1+P*P)):0}class eh{constructor(E){E=fi.checkMatrix(E);let P=E.clone(),y=E.rows,A=E.columns,F=new Float64Array(A),ue,ce,pe,ge;for(pe=0;pe=0;ge--){for(pe=0;pe=0;ce--){for(F=0;F=0;Ce--)if(Fe[Ce]!==0){for(let Qe=Ce+1;Qe=0;Ce--){if(Ce0;){let Ce,Qe;for(Ce=At-2;Ce>=-1&&Ce!==-1;Ce--){const gt=Number.MIN_VALUE+Sn*Math.abs(Fe[Ce]+Math.abs(Fe[Ce+1]));if(Math.abs(Se[Ce])<=gt||Number.isNaN(Se[Ce])){Se[Ce]=0;break}}if(Ce===At-2)Qe=4;else{let gt;for(gt=At-1;gt>=Ce&>!==Ce;gt--){let $e=(gt!==At?Math.abs(Se[gt]):0)+(gt!==Ce+1?Math.abs(Se[gt-1]):0);if(Math.abs(Fe[gt])<=Sn*$e){Fe[gt]=0;break}}gt===Ce?Qe=3:gt===At-1?Qe=1:(Qe=2,Ce=gt)}switch(Ce++,Qe){case 1:{let gt=Se[At-2];Se[At-2]=0;for(let $e=At-2;$e>=Ce;$e--){let Gn=Xa(Fe[$e],gt),mn=Fe[$e]/Gn,mt=gt/Gn;if(Fe[$e]=Gn,$e!==Ce&&(gt=-mt*Se[$e-1],Se[$e-1]=mn*Se[$e-1]),ge)for(let Tn=0;Tn=Fe[Ce+1]);){let gt=Fe[Ce];if(Fe[Ce]=Fe[Ce+1],Fe[Ce+1]=gt,ge&&CeP&&F.set(_e,we,E.get(_e,we)/this.s[we]);let ue=this.U,ce=ue.rows,pe=ue.columns,ge=new ft(y,ce);for(let _e=0;_eE&&P++;return P}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 ft.diag(this.s)}}function th($,E=!1){return $=fi.checkMatrix($),E?new Rr($).inverse():cg($,ft.eye($.rows))}function cg($,E,P=!1){return $=fi.checkMatrix($),E=fi.checkMatrix(E),P?new Rr($).solve(E):$.isSquare()?new xu($).solve(E):new eh($).solve(E)}function Eu($){if($=ft.checkMatrix($),$.isSquare()){if($.columns===0)return 1;let E,P,y,A;if($.columns===2)return E=$.get(0,0),P=$.get(0,1),y=$.get(1,0),A=$.get(1,1),E*A-P*y;if($.columns===3){let F,ue,ce;return F=new ds($,[1,2],[1,2]),ue=new ds($,[1,2],[0,2]),ce=new ds($,[1,2],[0,1]),E=$.get(0,0),P=$.get(0,1),y=$.get(0,2),E*Eu(F)-P*Eu(ue)+y*Eu(ce)}else return new xu($).determinant}else throw Error("determinant can only be calculated for a square matrix")}function ll($,E){let P=[];for(let y=0;y<$;y++)y!==E&&P.push(y);return P}function Wy($,E,P,y=1e-9,A=1e-9){if($>A)return new Array(E.rows+1).fill(0);{let F=E.addRow(P,[0]);for(let ue=0;ueE?F[ue]=1/F[ue]:F[ue]=0;return A.mmul(ft.diag(F).mmul(y.transpose()))}function Yy($,E=$,P={}){$=new ft($);let y=!1;if(typeof E=="object"&&!ft.isMatrix(E)&&!fe.isAnyArray(E)?(P=E,E=$,y=!0):E=new ft(E),$.rows!==E.rows)throw new TypeError("Both matrices must have the same number of rows");const{center:A=!0}=P;A&&($=$.center("column"),y||(E=E.center("column")));const F=$.transpose().mmul(E);for(let ue=0;ue0?A.set(F,F+1,P[F]):P[F]<0&&A.set(F,F-1,P[F])}return A}}function ma($,E,P,y){let A,F,ue,ce,pe,ge,_e,we;for(pe=0;pe<$;pe++)P[pe]=y.get($-1,pe);for(ce=$-1;ce>0;ce--){for(we=0,ue=0,ge=0;ge0&&(F=-F),E[ce]=we*F,ue=ue-A*F,P[ce-1]=A-F,pe=0;pege)do{for(A=P[ge],we=(P[ge+1]-A)/(2*E[ge]),Xe=Xa(we,1),we<0&&(Xe=-Xe),P[ge]=E[ge]/(we+Xe),P[ge+1]=E[ge]*(we+Xe),et=P[ge+1],F=A-P[ge],ue=ge+2;ue<$;ue++)P[ue]-=F;for(Lt=Lt+F,we=P[_e],Fe=1,Ue=Fe,dt=Fe,Se=E[ge+1],Ze=0,Pt=0,ue=_e-1;ue>=ge;ue--)for(dt=Ue,Ue=Fe,Pt=Ze,A=Fe*E[ue],F=Fe*we,Xe=Xa(we,E[ue]),E[ue+1]=Ze*Xe,Ze=E[ue]/Xe,Fe=we/Xe,we=Fe*P[ue]-Ze*A,P[ue+1]=F+Ze*(Fe*A+Ze*P[ue]),pe=0;pe<$;pe++)F=y.get(pe,ue+1),y.set(pe,ue+1,Ze*y.get(pe,ue)+Fe*F),y.set(pe,ue,Fe*y.get(pe,ue)-Ze*F);we=-Ze*Pt*dt*Se*E[ge]/et,E[ge]=Ze*we,P[ge]=Fe*we}while(Math.abs(E[ge])>In*Bt);P[ge]=P[ge]+Lt,E[ge]=0}for(ue=0;ue<$-1;ue++){for(pe=ue,we=P[ue],ce=ue+1;ce<$;ce++)P[ce]=we;ge--)P[ge]=E.get(ge,we-1)/Xe,pe+=P[ge]*P[ge];for(ce=Math.sqrt(pe),P[we]>0&&(ce=-ce),pe=pe-P[we]*ce,P[we]=P[we]-ce,_e=we;_e<$;_e++){for(ue=0,ge=F;ge>=we;ge--)ue+=P[ge]*E.get(ge,_e);for(ue=ue/pe,ge=we;ge<=F;ge++)E.set(ge,_e,E.get(ge,_e)-ue*P[ge])}for(ge=0;ge<=F;ge++){for(ue=0,_e=F;_e>=we;_e--)ue+=P[_e]*E.get(ge,_e);for(ue=ue/pe,_e=we;_e<=F;_e++)E.set(ge,_e,E.get(ge,_e)-ue*P[_e])}P[we]=Xe*P[we],E.set(we,we-1,Xe*ce)}}for(ge=0;ge<$;ge++)for(_e=0;_e<$;_e++)y.set(ge,_e,ge===_e?1:0);for(we=F-1;we>=A+1;we--)if(E.get(we,we-1)!==0){for(ge=we+1;ge<=F;ge++)P[ge]=E.get(ge,we-1);for(_e=we;_e<=F;_e++){for(ce=0,ge=we;ge<=F;ge++)ce+=P[ge]*y.get(ge,_e);for(ce=ce/P[we]/E.get(we,we-1),ge=we;ge<=F;ge++)y.set(ge,_e,y.get(ge,_e)+ce*P[ge])}}}function dg($,E,P,y,A){let F=$-1,ue=0,ce=$-1,pe=Number.EPSILON,ge=0,_e=0,we=0,Xe=0,et=0,Fe=0,Ue=0,dt=0,Se,Ze,Pt,Lt,Bt,In,At,kt,Sn,Ce,Qe,gt,$e,Gn,mn;for(Se=0;Se<$;Se++)for((Sece)&&(P[Se]=A.get(Se,Se),E[Se]=0),Ze=Math.max(Se-1,0);Ze<$;Ze++)_e=_e+Math.abs(A.get(Se,Ze));for(;F>=ue;){for(Lt=F;Lt>ue&&(Fe=Math.abs(A.get(Lt-1,Lt-1))+Math.abs(A.get(Lt,Lt)),Fe===0&&(Fe=_e),!(Math.abs(A.get(Lt,Lt-1))=0){for(Ue=we>=0?we+Ue:we-Ue,P[F-1]=kt+Ue,P[F]=P[F-1],Ue!==0&&(P[F]=kt-At/Ue),E[F-1]=0,E[F]=0,kt=A.get(F,F-1),Fe=Math.abs(kt)+Math.abs(Ue),we=kt/Fe,Xe=Ue/Fe,et=Math.sqrt(we*we+Xe*Xe),we=we/et,Xe=Xe/et,Ze=F-1;Ze<$;Ze++)Ue=A.get(F-1,Ze),A.set(F-1,Ze,Xe*Ue+we*A.get(F,Ze)),A.set(F,Ze,Xe*A.get(F,Ze)-we*Ue);for(Se=0;Se<=F;Se++)Ue=A.get(Se,F-1),A.set(Se,F-1,Xe*Ue+we*A.get(Se,F)),A.set(Se,F,Xe*A.get(Se,F)-we*Ue);for(Se=ue;Se<=ce;Se++)Ue=y.get(Se,F-1),y.set(Se,F-1,Xe*Ue+we*y.get(Se,F)),y.set(Se,F,Xe*y.get(Se,F)-we*Ue)}else P[F-1]=kt+we,P[F]=kt+we,E[F-1]=Ue,E[F]=-Ue;F=F-2,dt=0}else{if(kt=A.get(F,F),Sn=0,At=0,Lt0)){for(Fe=Math.sqrt(Fe),Sn=Lt&&(Ue=A.get(Bt,Bt),et=kt-Ue,Fe=Sn-Ue,we=(et*Fe-At)/A.get(Bt+1,Bt)+A.get(Bt,Bt+1),Xe=A.get(Bt+1,Bt+1)-Ue-et-Fe,et=A.get(Bt+2,Bt+1),Fe=Math.abs(we)+Math.abs(Xe)+Math.abs(et),we=we/Fe,Xe=Xe/Fe,et=et/Fe,!(Bt===Lt||Math.abs(A.get(Bt,Bt-1))*(Math.abs(Xe)+Math.abs(et))Bt+2&&A.set(Se,Se-3,0);for(Pt=Bt;Pt<=F-1&&(Gn=Pt!==F-1,Pt!==Bt&&(we=A.get(Pt,Pt-1),Xe=A.get(Pt+1,Pt-1),et=Gn?A.get(Pt+2,Pt-1):0,kt=Math.abs(we)+Math.abs(Xe)+Math.abs(et),kt!==0&&(we=we/kt,Xe=Xe/kt,et=et/kt)),kt!==0);Pt++)if(Fe=Math.sqrt(we*we+Xe*Xe+et*et),we<0&&(Fe=-Fe),Fe!==0){for(Pt!==Bt?A.set(Pt,Pt-1,-Fe*kt):Lt!==Bt&&A.set(Pt,Pt-1,-A.get(Pt,Pt-1)),we=we+Fe,kt=we/Fe,Sn=Xe/Fe,Ue=et/Fe,Xe=Xe/we,et=et/we,Ze=Pt;Ze<$;Ze++)we=A.get(Pt,Ze)+Xe*A.get(Pt+1,Ze),Gn&&(we=we+et*A.get(Pt+2,Ze),A.set(Pt+2,Ze,A.get(Pt+2,Ze)-we*Ue)),A.set(Pt,Ze,A.get(Pt,Ze)-we*kt),A.set(Pt+1,Ze,A.get(Pt+1,Ze)-we*Sn);for(Se=0;Se<=Math.min(F,Pt+3);Se++)we=kt*A.get(Se,Pt)+Sn*A.get(Se,Pt+1),Gn&&(we=we+Ue*A.get(Se,Pt+2),A.set(Se,Pt+2,A.get(Se,Pt+2)-we*et)),A.set(Se,Pt,A.get(Se,Pt)-we),A.set(Se,Pt+1,A.get(Se,Pt+1)-we*Xe);for(Se=ue;Se<=ce;Se++)we=kt*y.get(Se,Pt)+Sn*y.get(Se,Pt+1),Gn&&(we=we+Ue*y.get(Se,Pt+2),y.set(Se,Pt+2,y.get(Se,Pt+2)-we*et)),y.set(Se,Pt,y.get(Se,Pt)-we),y.set(Se,Pt+1,y.get(Se,Pt+1)-we*Xe)}}}if(_e!==0){for(F=$-1;F>=0;F--)if(we=P[F],Xe=E[F],Xe===0)for(Lt=F,A.set(F,F,1),Se=F-1;Se>=0;Se--){for(At=A.get(Se,Se)-we,et=0,Ze=Lt;Ze<=F;Ze++)et=et+A.get(Se,Ze)*A.get(Ze,F);if(E[Se]<0)Ue=At,Fe=et;else if(Lt=Se,E[Se]===0?A.set(Se,F,At!==0?-et/At:-et/(pe*_e)):(kt=A.get(Se,Se+1),Sn=A.get(Se+1,Se),Xe=(P[Se]-we)*(P[Se]-we)+E[Se]*E[Se],In=(kt*Fe-Ue*et)/Xe,A.set(Se,F,In),A.set(Se+1,F,Math.abs(kt)>Math.abs(Ue)?(-et-At*In)/kt:(-Fe-Sn*In)/Ue)),In=Math.abs(A.get(Se,F)),pe*In*In>1)for(Ze=Se;Ze<=F;Ze++)A.set(Ze,F,A.get(Ze,F)/In)}else if(Xe<0)for(Lt=F-1,Math.abs(A.get(F,F-1))>Math.abs(A.get(F-1,F))?(A.set(F-1,F-1,Xe/A.get(F,F-1)),A.set(F-1,F,-(A.get(F,F)-we)/A.get(F,F-1))):(mn=Pu(0,-A.get(F-1,F),A.get(F-1,F-1)-we,Xe),A.set(F-1,F-1,mn[0]),A.set(F-1,F,mn[1])),A.set(F,F-1,0),A.set(F,F,1),Se=F-2;Se>=0;Se--){for(Ce=0,Qe=0,Ze=Lt;Ze<=F;Ze++)Ce=Ce+A.get(Se,Ze)*A.get(Ze,F-1),Qe=Qe+A.get(Se,Ze)*A.get(Ze,F);if(At=A.get(Se,Se)-we,E[Se]<0)Ue=At,et=Ce,Fe=Qe;else if(Lt=Se,E[Se]===0?(mn=Pu(-Ce,-Qe,At,Xe),A.set(Se,F-1,mn[0]),A.set(Se,F,mn[1])):(kt=A.get(Se,Se+1),Sn=A.get(Se+1,Se),gt=(P[Se]-we)*(P[Se]-we)+E[Se]*E[Se]-Xe*Xe,$e=(P[Se]-we)*2*Xe,gt===0&&$e===0&&(gt=pe*_e*(Math.abs(At)+Math.abs(Xe)+Math.abs(kt)+Math.abs(Sn)+Math.abs(Ue))),mn=Pu(kt*et-Ue*Ce+Xe*Qe,kt*Fe-Ue*Qe-Xe*Ce,gt,$e),A.set(Se,F-1,mn[0]),A.set(Se,F,mn[1]),Math.abs(kt)>Math.abs(Ue)+Math.abs(Xe)?(A.set(Se+1,F-1,(-Ce-At*A.get(Se,F-1)+Xe*A.get(Se,F))/kt),A.set(Se+1,F,(-Qe-At*A.get(Se,F)-Xe*A.get(Se,F-1))/kt)):(mn=Pu(-et-Sn*A.get(Se,F-1),-Fe-Sn*A.get(Se,F),Ue,Xe),A.set(Se+1,F-1,mn[0]),A.set(Se+1,F,mn[1]))),In=Math.max(Math.abs(A.get(Se,F-1)),Math.abs(A.get(Se,F))),pe*In*In>1)for(Ze=Se;Ze<=F;Ze++)A.set(Ze,F-1,A.get(Ze,F-1)/In),A.set(Ze,F,A.get(Ze,F)/In)}for(Se=0;Se<$;Se++)if(Sece)for(Ze=Se;Ze<$;Ze++)y.set(Se,Ze,A.get(Se,Ze));for(Ze=$-1;Ze>=ue;Ze--)for(Se=ue;Se<=ce;Se++){for(Ue=0,Pt=ue;Pt<=Math.min(Ze,ce);Pt++)Ue=Ue+y.get(Se,Pt)*A.get(Pt,Ze);y.set(Se,Ze,Ue)}}}function Pu($,E,P,y){let A,F;return Math.abs(P)>Math.abs(y)?(A=y/P,F=P+A*y,[($+A*E)/F,(E-A*$)/F]):(A=P/y,F=y+A*P,[(A*$+E)/F,(A*E-$)/F])}class vg{constructor(E){if(E=fi.checkMatrix(E),!E.isSymmetric())throw new Error("Matrix is not symmetric");let P=E,y=P.rows,A=new ft(y,y),F=!0,ue,ce,pe;for(ce=0;ce0),A.set(ce,ce,Math.sqrt(Math.max(ge,0))),pe=ce+1;pe=0;pe--)for(ce=0;ceue;et++)we=E.transpose().mmul(ce).div(ce.transpose().mmul(ce).get(0,0)),we=we.div(we.norm()),ge=E.mmul(we).div(we.transpose().mmul(we).get(0,0)),et>0&&(pe=ge.clone().sub(Xe).pow(2).sum()),Xe=ge.clone(),y?(_e=y.transpose().mmul(ge).div(ge.transpose().mmul(ge).get(0,0)),_e=_e.div(_e.norm()),ce=y.mmul(_e).div(_e.transpose().mmul(_e).get(0,0))):ce=ge;if(y){let et=E.transpose().mmul(ge).div(ge.transpose().mmul(ge).get(0,0));et=et.div(et.norm());let Fe=E.clone().sub(ge.clone().mmul(et.transpose())),Ue=ce.transpose().mmul(ge).div(ge.transpose().mmul(ge).get(0,0)),dt=y.clone().sub(ge.clone().mulS(Ue.get(0,0)).mmul(_e.transpose()));this.t=ge,this.p=et.transpose(),this.w=we.transpose(),this.q=_e,this.u=ce,this.s=ge.transpose().mmul(ge),this.xResidual=Fe,this.yResidual=dt,this.betas=Ue}else this.w=we.transpose(),this.s=ge.transpose().mmul(ge).sqrt(),A?this.t=ge.clone().div(this.s.get(0,0)):this.t=ge,this.xResidual=E.sub(ge.mmul(we.transpose()))}}re.XA=wt,re.a_=vg,re.yQ=vg,re.Hs=fn,re.Ec=nh,re.dx=nh,re.LU=xu,re.Rm=xu,re.y3=ft,re.qK=Ha,re.pb=Yi,re.j=yu,re.sO=fs,re.BZ=Dn,re.EK=bu,re.Db=ds,re.Fx=mo,re.tU=ga,re.Ym=gg,re.rs=gg,re.QR=eh,re.TB=eh,re.oH=Rr,re.Sc=Rr,re.BN=Qr,re.it=pa,re.$r=fi,re.QM=hr,re.AV=Yy,M=ft,re.GH=Eu,re.SO=th,re.uZ=wu,re.yU=Vy,re.F1=cg,re.re=Xy},8874:function(Q){"use strict";Q.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]}},19818:function(Q,re,w){var M=w(8874),G=w(86851),z=Object.hasOwnProperty,I=Object.create(null);for(var R in M)z.call(M,R)&&(I[M[R]]=R);var L=Q.exports={to:{},get:{}};L.get=function(_){var j=_.substring(0,3).toLowerCase(),N,V;switch(j){case"hsl":N=L.get.hsl(_),V="hsl";break;case"hwb":N=L.get.hwb(_),V="hwb";break;default:N=L.get.rgb(_),V="rgb";break}return N?{model:V,value:N}:null},L.get.rgb=function(_){if(!_)return null;var j=/^#([a-f0-9]{3,4})$/i,N=/^#([a-f0-9]{6})([a-f0-9]{2})?$/i,V=/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,ne=/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*,?\s*([+-]?[\d\.]+)\%\s*(?:[,|\/]\s*([+-]?[\d\.]+)(%?)\s*)?\)$/,ee=/^(\w+)$/,fe=[0,0,0,1],he,K,se;if(he=_.match(N)){for(se=he[2],he=he[1],K=0;K<3;K++){var le=K*2;fe[K]=parseInt(he.slice(le,le+2),16)}se&&(fe[3]=parseInt(se,16)/255)}else if(he=_.match(j)){for(he=he[1],se=he[3],K=0;K<3;K++)fe[K]=parseInt(he[K]+he[K],16);se&&(fe[3]=parseInt(se+se,16)/255)}else if(he=_.match(V)){for(K=0;K<3;K++)fe[K]=parseInt(he[K+1],0);he[4]&&(he[5]?fe[3]=parseFloat(he[4])*.01:fe[3]=parseFloat(he[4]))}else if(he=_.match(ne)){for(K=0;K<3;K++)fe[K]=Math.round(parseFloat(he[K+1])*2.55);he[4]&&(he[5]?fe[3]=parseFloat(he[4])*.01:fe[3]=parseFloat(he[4]))}else return(he=_.match(ee))?he[1]==="transparent"?[0,0,0,0]:z.call(M,he[1])?(fe=M[he[1]],fe[3]=1,fe):null:null;for(K=0;K<3;K++)fe[K]=B(fe[K],0,255);return fe[3]=B(fe[3],0,1),fe},L.get.hsl=function(_){if(!_)return null;var j=/^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*)?\)$/,N=_.match(j);if(N){var V=parseFloat(N[4]),ne=(parseFloat(N[1])%360+360)%360,ee=B(parseFloat(N[2]),0,100),fe=B(parseFloat(N[3]),0,100),he=B(isNaN(V)?1:V,0,1);return[ne,ee,fe,he]}return null},L.get.hwb=function(_){if(!_)return null;var j=/^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*)?\)$/,N=_.match(j);if(N){var V=parseFloat(N[4]),ne=(parseFloat(N[1])%360+360)%360,ee=B(parseFloat(N[2]),0,100),fe=B(parseFloat(N[3]),0,100),he=B(isNaN(V)?1:V,0,1);return[ne,ee,fe,he]}return null},L.to.hex=function(){var _=G(arguments);return"#"+D(_[0])+D(_[1])+D(_[2])+(_[3]<1?D(Math.round(_[3]*255)):"")},L.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]+")"},L.to.rgb.percent=function(){var _=G(arguments),j=Math.round(_[0]/255*100),N=Math.round(_[1]/255*100),V=Math.round(_[2]/255*100);return _.length<4||_[3]===1?"rgb("+j+"%, "+N+"%, "+V+"%)":"rgba("+j+"%, "+N+"%, "+V+"%, "+_[3]+")"},L.to.hsl=function(){var _=G(arguments);return _.length<4||_[3]===1?"hsl("+_[0]+", "+_[1]+"%, "+_[2]+"%)":"hsla("+_[0]+", "+_[1]+"%, "+_[2]+"%, "+_[3]+")"},L.to.hwb=function(){var _=G(arguments),j="";return _.length>=4&&_[3]!==1&&(j=", "+_[3]),"hwb("+_[0]+", "+_[1]+"%, "+_[2]+"%"+j+")"},L.to.keyword=function(_){return I[_.slice(0,3)]};function B(_,j,N){return Math.min(Math.max(j,_),N)}function D(_){var j=Math.round(_).toString(16).toUpperCase();return j.length<2?"0"+j:j}},70681:function(Q,re,w){Q.exports={graphlib:w(70574),layout:w(98123),debug:w(27570),util:{time:w(11138).time,notime:w(11138).notime},version:w(88177)}},92188:function(Q,re,w){"use strict";var M=w(38436),G=w(74079);Q.exports={run:z,undo:R};function z(L){var B=L.graph().acyclicer==="greedy"?G(L,D(L)):I(L);M.forEach(B,function(_){var j=L.edge(_);L.removeEdge(_),j.forwardName=_.name,j.reversed=!0,L.setEdge(_.w,_.v,j,M.uniqueId("rev"))});function D(_){return function(j){return _.edge(j).weight}}}function I(L){var B=[],D={},_={};function j(N){M.has(_,N)||(_[N]=!0,D[N]=!0,M.forEach(L.outEdges(N),function(V){M.has(D,V.w)?B.push(V):j(V.w)}),delete D[N])}return M.forEach(L.nodes(),j),B}function R(L){M.forEach(L.edges(),function(B){var D=L.edge(B);if(D.reversed){L.removeEdge(B);var _=D.forwardName;delete D.reversed,delete D.forwardName,L.setEdge(B.w,B.v,D,_)}})}},61133:function(Q,re,w){var M=w(38436),G=w(11138);Q.exports=z;function z(R){function L(B){var D=R.children(B),_=R.node(B);if(D.length&&M.forEach(D,L),M.has(_,"minRank")){_.borderLeft=[],_.borderRight=[];for(var j=_.minRank,N=_.maxRank+1;j0;--K)if(he=N[K].dequeue(),he){ne=ne.concat(B(j,N,V,he,!0));break}}}return ne}function B(j,N,V,ne,ee){var fe=ee?[]:void 0;return M.forEach(j.inEdges(ne.v),function(he){var K=j.edge(he),se=j.node(he.v);ee&&fe.push({v:he.v,w:he.w}),se.out-=K,_(N,V,se)}),M.forEach(j.outEdges(ne.v),function(he){var K=j.edge(he),se=he.w,le=j.node(se);le.in-=K,_(N,V,le)}),j.removeNode(ne.v),fe}function D(j,N){var V=new G,ne=0,ee=0;M.forEach(j.nodes(),function(K){V.setNode(K,{v:K,in:0,out:0})}),M.forEach(j.edges(),function(K){var se=V.edge(K.v,K.w)||0,le=N(K),ye=se+le;V.setEdge(K.v,K.w,ye),ee=Math.max(ee,V.node(K.v).out+=le),ne=Math.max(ne,V.node(K.w).in+=le)});var fe=M.range(ee+ne+3).map(function(){return new z}),he=ne+1;return M.forEach(V.nodes(),function(K){_(fe,he,V.node(K))}),{graph:V,buckets:fe,zeroIdx:he}}function _(j,N,V){V.out?V.in?j[V.out-V.in+N].enqueue(V):j[j.length-1].enqueue(V):j[0].enqueue(V)}},98123:function(Q,re,w){"use strict";var M=w(38436),G=w(92188),z=w(45995),I=w(78093),R=w(11138).normalizeRanks,L=w(17942),B=w(11138).removeEmptyRanks,D=w(72981),_=w(61133),j=w(53258),N=w(53408),V=w(17873),ne=w(11138),ee=w(70574).Graph;Q.exports=fe;function fe(me,Te){var Ae=Te&&Te.debugTiming?ne.time:ne.notime;Ae("layout",function(){var He=Ae(" buildLayoutGraph",function(){return ke(me)});Ae(" runLayout",function(){he(He,Ae)}),Ae(" updateInputGraph",function(){K(me,He)})})}function he(me,Te){Te(" makeSpaceForEdgeLabels",function(){Le(me)}),Te(" removeSelfEdges",function(){Ga(me)}),Te(" acyclic",function(){G.run(me)}),Te(" nestingGraph.run",function(){D.run(me)}),Te(" rank",function(){I(ne.asNonCompoundGraph(me))}),Te(" injectEdgeLabelProxies",function(){Ie(me)}),Te(" removeEmptyRanks",function(){B(me)}),Te(" nestingGraph.cleanup",function(){D.cleanup(me)}),Te(" normalizeRanks",function(){R(me)}),Te(" assignRankMinMax",function(){Ye(me)}),Te(" removeEdgeLabelProxies",function(){Je(me)}),Te(" normalize.run",function(){z.run(me)}),Te(" parentDummyChains",function(){L(me)}),Te(" addBorderSegments",function(){_(me)}),Te(" order",function(){N(me)}),Te(" insertSelfEdges",function(){cs(me)}),Te(" adjustCoordinateSystem",function(){j.adjust(me)}),Te(" position",function(){V(me)}),Te(" positionSelfEdges",function(){Me(me)}),Te(" removeBorderNodes",function(){Wr(me)}),Te(" normalize.undo",function(){z.undo(me)}),Te(" fixupEdgeLabelCoords",function(){$t(me)}),Te(" undoCoordinateSystem",function(){j.undo(me)}),Te(" translateGraph",function(){at(me)}),Te(" assignNodeIntersects",function(){bt(me)}),Te(" reversePoints",function(){tr(me)}),Te(" acyclic.undo",function(){G.undo(me)})}function K(me,Te){M.forEach(me.nodes(),function(Ae){var He=me.node(Ae),xt=Te.node(Ae);He&&(He.x=xt.x,He.y=xt.y,Te.children(Ae).length&&(He.width=xt.width,He.height=xt.height))}),M.forEach(me.edges(),function(Ae){var He=me.edge(Ae),xt=Te.edge(Ae);He.points=xt.points,M.has(xt,"x")&&(He.x=xt.x,He.y=xt.y)}),me.graph().width=Te.graph().width,me.graph().height=Te.graph().height}var se=["nodesep","edgesep","ranksep","marginx","marginy"],le={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},ye=["acyclicer","ranker","rankdir","align"],be=["width","height"],Ee={width:0,height:0},Ne=["minlen","weight","width","height","labeloffset"],Pe={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},xe=["labelpos"];function ke(me){var Te=new ee({multigraph:!0,compound:!0}),Ae=ze(me.graph());return Te.setGraph(M.merge({},le,De(Ae,se),M.pick(Ae,ye))),M.forEach(me.nodes(),function(He){var xt=ze(me.node(He));Te.setNode(He,M.defaults(De(xt,be),Ee)),Te.setParent(He,me.parent(He))}),M.forEach(me.edges(),function(He){var xt=ze(me.edge(He));Te.setEdge(He,M.merge({},Pe,De(xt,Ne),M.pick(xt,xe)))}),Te}function Le(me){var Te=me.graph();Te.ranksep/=2,M.forEach(me.edges(),function(Ae){var He=me.edge(Ae);He.minlen*=2,He.labelpos.toLowerCase()!=="c"&&(Te.rankdir==="TB"||Te.rankdir==="BT"?He.width+=He.labeloffset:He.height+=He.labeloffset)})}function Ie(me){M.forEach(me.edges(),function(Te){var Ae=me.edge(Te);if(Ae.width&&Ae.height){var He=me.node(Te.v),xt=me.node(Te.w),Ft={rank:(xt.rank-He.rank)/2+He.rank,e:Te};ne.addDummyNode(me,"edge-proxy",Ft,"_ep")}})}function Ye(me){var Te=0;M.forEach(me.nodes(),function(Ae){var He=me.node(Ae);He.borderTop&&(He.minRank=me.node(He.borderTop).rank,He.maxRank=me.node(He.borderBottom).rank,Te=M.max(Te,He.maxRank))}),me.graph().maxRank=Te}function Je(me){M.forEach(me.nodes(),function(Te){var Ae=me.node(Te);Ae.dummy==="edge-proxy"&&(me.edge(Ae.e).labelRank=Ae.rank,me.removeNode(Te))})}function at(me){var Te=Number.POSITIVE_INFINITY,Ae=0,He=Number.POSITIVE_INFINITY,xt=0,Ft=me.graph(),St=Ft.marginx||0,Yt=Ft.marginy||0;function Un(jn){var Dt=jn.x,Nt=jn.y,wt=jn.width,It=jn.height;Te=Math.min(Te,Dt-wt/2),Ae=Math.max(Ae,Dt+wt/2),He=Math.min(He,Nt-It/2),xt=Math.max(xt,Nt+It/2)}M.forEach(me.nodes(),function(jn){Un(me.node(jn))}),M.forEach(me.edges(),function(jn){var Dt=me.edge(jn);M.has(Dt,"x")&&Un(Dt)}),Te-=St,He-=Yt,M.forEach(me.nodes(),function(jn){var Dt=me.node(jn);Dt.x-=Te,Dt.y-=He}),M.forEach(me.edges(),function(jn){var Dt=me.edge(jn);M.forEach(Dt.points,function(Nt){Nt.x-=Te,Nt.y-=He}),M.has(Dt,"x")&&(Dt.x-=Te),M.has(Dt,"y")&&(Dt.y-=He)}),Ft.width=Ae-Te+St,Ft.height=xt-He+Yt}function bt(me){M.forEach(me.edges(),function(Te){var Ae=me.edge(Te),He=me.node(Te.v),xt=me.node(Te.w),Ft,St;Ae.points?(Ft=Ae.points[0],St=Ae.points[Ae.points.length-1]):(Ae.points=[],Ft=xt,St=He),Ae.points.unshift(ne.intersectRect(He,Ft)),Ae.points.push(ne.intersectRect(xt,St))})}function $t(me){M.forEach(me.edges(),function(Te){var Ae=me.edge(Te);if(M.has(Ae,"x"))switch((Ae.labelpos==="l"||Ae.labelpos==="r")&&(Ae.width-=Ae.labeloffset),Ae.labelpos){case"l":Ae.x-=Ae.width/2+Ae.labeloffset;break;case"r":Ae.x+=Ae.width/2+Ae.labeloffset;break}})}function tr(me){M.forEach(me.edges(),function(Te){var Ae=me.edge(Te);Ae.reversed&&Ae.points.reverse()})}function Wr(me){M.forEach(me.nodes(),function(Te){if(me.children(Te).length){var Ae=me.node(Te),He=me.node(Ae.borderTop),xt=me.node(Ae.borderBottom),Ft=me.node(M.last(Ae.borderLeft)),St=me.node(M.last(Ae.borderRight));Ae.width=Math.abs(St.x-Ft.x),Ae.height=Math.abs(xt.y-He.y),Ae.x=Ft.x+Ae.width/2,Ae.y=He.y+Ae.height/2}}),M.forEach(me.nodes(),function(Te){me.node(Te).dummy==="border"&&me.removeNode(Te)})}function Ga(me){M.forEach(me.edges(),function(Te){if(Te.v===Te.w){var Ae=me.node(Te.v);Ae.selfEdges||(Ae.selfEdges=[]),Ae.selfEdges.push({e:Te,label:me.edge(Te)}),me.removeEdge(Te)}})}function cs(me){var Te=ne.buildLayerMatrix(me);M.forEach(Te,function(Ae){var He=0;M.forEach(Ae,function(xt,Ft){var St=me.node(xt);St.order=Ft+He,M.forEach(St.selfEdges,function(Yt){ne.addDummyNode(me,"selfedge",{width:Yt.label.width,height:Yt.label.height,rank:St.rank,order:Ft+ ++He,e:Yt.e,label:Yt.label},"_se")}),delete St.selfEdges})})}function Me(me){M.forEach(me.nodes(),function(Te){var Ae=me.node(Te);if(Ae.dummy==="selfedge"){var He=me.node(Ae.e.v),xt=He.x+He.width/2,Ft=He.y,St=Ae.x-xt,Yt=He.height/2;me.setEdge(Ae.e,Ae.label),me.removeNode(Te),Ae.label.points=[{x:xt+2*St/3,y:Ft-Yt},{x:xt+5*St/6,y:Ft-Yt},{x:xt+St,y:Ft},{x:xt+5*St/6,y:Ft+Yt},{x:xt+2*St/3,y:Ft+Yt}],Ae.label.x=Ae.x,Ae.label.y=Ae.y}})}function De(me,Te){return M.mapValues(M.pick(me,Te),Number)}function ze(me){var Te={};return M.forEach(me,function(Ae,He){Te[He.toLowerCase()]=Ae}),Te}},38436:function(Q,re,w){var M;try{M={cloneDeep:w(50361),constant:w(75703),defaults:w(91747),each:w(85768),filter:w(63105),find:w(13311),flatten:w(85564),forEach:w(84486),forIn:w(62620),has:w(18721),isUndefined:w(52353),last:w(10928),map:w(35161),mapValues:w(8521),max:w(6162),merge:w(82492),min:w(53632),minBy:w(22762),now:w(7771),pick:w(78718),range:w(96026),reduce:w(54061),sortBy:w(89734),uniqueId:w(73955),values:w(52628),zipObject:w(7287)}}catch(G){}M||(M=window._),Q.exports=M},72981:function(Q,re,w){var M=w(38436),G=w(11138);Q.exports={run:z,cleanup:B};function z(D){var _=G.addDummyNode(D,"root",{},"_root"),j=R(D),N=M.max(M.values(j))-1,V=2*N+1;D.graph().nestingRoot=_,M.forEach(D.edges(),function(ee){D.edge(ee).minlen*=V});var ne=L(D)+1;M.forEach(D.children(),function(ee){I(D,_,V,ne,N,j,ee)}),D.graph().nodeRankFactor=V}function I(D,_,j,N,V,ne,ee){var fe=D.children(ee);if(!fe.length){ee!==_&&D.setEdge(_,ee,{weight:0,minlen:j});return}var he=G.addBorderNode(D,"_bt"),K=G.addBorderNode(D,"_bb"),se=D.node(ee);D.setParent(he,ee),se.borderTop=he,D.setParent(K,ee),se.borderBottom=K,M.forEach(fe,function(le){I(D,_,j,N,V,ne,le);var ye=D.node(le),be=ye.borderTop?ye.borderTop:le,Ee=ye.borderBottom?ye.borderBottom:le,Ne=ye.borderTop?N:2*N,Pe=be!==Ee?1:V-ne[ee]+1;D.setEdge(he,be,{weight:Ne,minlen:Pe,nestingEdge:!0}),D.setEdge(Ee,K,{weight:Ne,minlen:Pe,nestingEdge:!0})}),D.parent(ee)||D.setEdge(_,he,{weight:0,minlen:V+ne[ee]})}function R(D){var _={};function j(N,V){var ne=D.children(N);ne&&ne.length&&M.forEach(ne,function(ee){j(ee,V+1)}),_[N]=V}return M.forEach(D.children(),function(N){j(N,1)}),_}function L(D){return M.reduce(D.edges(),function(_,j){return _+D.edge(j).weight},0)}function B(D){var _=D.graph();D.removeNode(_.nestingRoot),delete _.nestingRoot,M.forEach(D.edges(),function(j){var N=D.edge(j);N.nestingEdge&&D.removeEdge(j)})}},45995:function(Q,re,w){"use strict";var M=w(38436),G=w(11138);Q.exports={run:z,undo:R};function z(L){L.graph().dummyChains=[],M.forEach(L.edges(),function(B){I(L,B)})}function I(L,B){var D=B.v,_=L.node(D).rank,j=B.w,N=L.node(j).rank,V=B.name,ne=L.edge(B),ee=ne.labelRank;if(N!==_+1){L.removeEdge(B);var fe,he,K;for(K=0,++_;_0;)ee%2&&(fe+=N[ee+1]),ee=ee-1>>1,N[ee]+=ne.weight;V+=ne.weight*fe})),V}},53408:function(Q,re,w){"use strict";var M=w(38436),G=w(2588),z=w(56630),I=w(61026),R=w(23128),L=w(55093),B=w(70574).Graph,D=w(11138);Q.exports=_;function _(ne){var ee=D.maxRank(ne),fe=j(ne,M.range(1,ee+1),"inEdges"),he=j(ne,M.range(ee-1,-1,-1),"outEdges"),K=G(ne);V(ne,K);for(var se=Number.POSITIVE_INFINITY,le,ye=0,be=0;be<4;++ye,++be){N(ye%2?fe:he,ye%4>=2),K=D.buildLayerMatrix(ne);var Ee=z(ne,K);Ee=j.barycenter)&&I(j,N)}}function D(j){return function(N){N.in.push(j),--N.indegree===0&&R.push(N)}}for(;R.length;){var _=R.pop();L.push(_),M.forEach(_.in.reverse(),B(_)),M.forEach(_.out,D(_))}return M.map(M.filter(L,function(j){return!j.merged}),function(j){return M.pick(j,["vs","i","barycenter","weight"])})}function I(R,L){var B=0,D=0;R.weight&&(B+=R.barycenter*R.weight,D+=R.weight),L.weight&&(B+=L.barycenter*L.weight,D+=L.weight),R.vs=L.vs.concat(R.vs),R.barycenter=B/D,R.weight=D,R.i=Math.min(L.i,R.i),L.merged=!0}},61026:function(Q,re,w){var M=w(38436),G=w(35439),z=w(83678),I=w(87304);Q.exports=R;function R(D,_,j,N){var V=D.children(_),ne=D.node(_),ee=ne?ne.borderLeft:void 0,fe=ne?ne.borderRight:void 0,he={};ee&&(V=M.filter(V,function(Ee){return Ee!==ee&&Ee!==fe}));var K=G(D,V);M.forEach(K,function(Ee){if(D.children(Ee.v).length){var Ne=R(D,Ee.v,j,N);he[Ee.v]=Ne,M.has(Ne,"barycenter")&&B(Ee,Ne)}});var se=z(K,j);L(se,he);var le=I(se,N);if(ee&&(le.vs=M.flatten([ee,le.vs,fe],!0),D.predecessors(ee).length)){var ye=D.node(D.predecessors(ee)[0]),be=D.node(D.predecessors(fe)[0]);M.has(le,"barycenter")||(le.barycenter=0,le.weight=0),le.barycenter=(le.barycenter*le.weight+ye.order+be.order)/(le.weight+2),le.weight+=2}return le}function L(D,_){M.forEach(D,function(j){j.vs=M.flatten(j.vs.map(function(N){return _[N]?_[N].vs:N}),!0)})}function B(D,_){M.isUndefined(D.barycenter)?(D.barycenter=_.barycenter,D.weight=_.weight):(D.barycenter=(D.barycenter*D.weight+_.barycenter*_.weight)/(D.weight+_.weight),D.weight+=_.weight)}},87304:function(Q,re,w){var M=w(38436),G=w(11138);Q.exports=z;function z(L,B){var D=G.partition(L,function(he){return M.has(he,"barycenter")}),_=D.lhs,j=M.sortBy(D.rhs,function(he){return-he.i}),N=[],V=0,ne=0,ee=0;_.sort(R(!!B)),ee=I(N,j,ee),M.forEach(_,function(he){ee+=he.vs.length,N.push(he.vs),V+=he.barycenter*he.weight,ne+=he.weight,ee=I(N,j,ee)});var fe={vs:M.flatten(N,!0)};return ne&&(fe.barycenter=V/ne,fe.weight=ne),fe}function I(L,B,D){for(var _;B.length&&(_=M.last(B)).i<=D;)B.pop(),L.push(_.vs),D++;return D}function R(L){return function(B,D){return B.barycenterD.barycenter?1:L?D.i-B.i:B.i-D.i}}},17942:function(Q,re,w){var M=w(38436);Q.exports=G;function G(R){var L=I(R);M.forEach(R.graph().dummyChains,function(B){for(var D=R.node(B),_=D.edgeObj,j=z(R,L,_.v,_.w),N=j.path,V=j.lca,ne=0,ee=N[ne],fe=!0;B!==_.w;){if(D=R.node(B),fe){for(;(ee=N[ne])!==V&&R.node(ee).maxRankN||V>L[ne].lim));for(ee=ne,ne=D;(ne=R.parent(ne))!==ee;)j.push(ne);return{path:_.concat(j.reverse()),lca:ee}}function I(R){var L={},B=0;function D(_){var j=B;M.forEach(R.children(_),D),L[_]={low:j,lim:B++}}return M.forEach(R.children(),D),L}},3573:function(Q,re,w){"use strict";var M=w(38436),G=w(70574).Graph,z=w(11138);Q.exports={positionX:fe,findType1Conflicts:I,findType2Conflicts:R,addConflict:B,hasConflict:D,verticalAlignment:_,horizontalCompaction:j,alignCoordinates:ne,findSmallestWidthAlignment:V,balance:ee};function I(se,le){var ye={};function be(Ee,Ne){var Pe=0,xe=0,ke=Ee.length,Le=M.last(Ne);return M.forEach(Ne,function(Ie,Ye){var Je=L(se,Ie),at=Je?se.node(Je).order:ke;(Je||Ie===Le)&&(M.forEach(Ne.slice(xe,Ye+1),function(bt){M.forEach(se.predecessors(bt),function($t){var tr=se.node($t),Wr=tr.order;(WrLe)&&B(ye,Je,Ie)})})}function Ee(Ne,Pe){var xe=-1,ke,Le=0;return M.forEach(Pe,function(Ie,Ye){if(se.node(Ie).dummy==="border"){var Je=se.predecessors(Ie);Je.length&&(ke=se.node(Je[0]).order,be(Pe,Le,Ye,xe,ke),Le=Ye,xe=ke)}be(Pe,Le,Pe.length,ke,Ne.length)}),Pe}return M.reduce(le,Ee),ye}function L(se,le){if(se.node(le).dummy)return M.find(se.predecessors(le),function(ye){return se.node(ye).dummy})}function B(se,le,ye){if(le>ye){var be=le;le=ye,ye=be}var Ee=se[le];Ee||(se[le]=Ee={}),Ee[ye]=!0}function D(se,le,ye){if(le>ye){var be=le;le=ye,ye=be}return M.has(se[le],ye)}function _(se,le,ye,be){var Ee={},Ne={},Pe={};return M.forEach(le,function(xe){M.forEach(xe,function(ke,Le){Ee[ke]=ke,Ne[ke]=ke,Pe[ke]=Le})}),M.forEach(le,function(xe){var ke=-1;M.forEach(xe,function(Le){var Ie=be(Le);if(Ie.length){Ie=M.sortBy(Ie,function($t){return Pe[$t]});for(var Ye=(Ie.length-1)/2,Je=Math.floor(Ye),at=Math.ceil(Ye);Je<=at;++Je){var bt=Ie[Je];Ne[Le]===Le&&keke.lim&&(Le=ke,Ie=!0);var Ye=M.filter(be.edges(),function(Je){return Ie===le(ye,ye.node(Je.v),Le)&&Ie!==le(ye,ye.node(Je.w),Le)});return M.minBy(Ye,function(Je){return z(be,Je)})}function he(ye,be,Ee,Ne){var Pe=Ee.v,xe=Ee.w;ye.removeEdge(Pe,xe),ye.setEdge(Ne.v,Ne.w,{}),V(ye),_(ye,be),K(ye,be)}function K(ye,be){var Ee=M.find(ye.nodes(),function(Pe){return!be.node(Pe).parent}),Ne=R(ye,Ee);Ne=Ne.slice(1),M.forEach(Ne,function(Pe){var xe=ye.node(Pe).parent,ke=be.edge(Pe,xe),Le=!1;ke||(ke=be.edge(xe,Pe),Le=!0),be.node(Pe).rank=be.node(xe).rank+(Le?ke.minlen:-ke.minlen)})}function se(ye,be,Ee){return ye.hasEdge(be,Ee)}function le(ye,be,Ee){return Ee.low<=be.lim&&be.lim<=Ee.lim}},76681:function(Q,re,w){"use strict";var M=w(38436);Q.exports={longestPath:G,slack:z};function G(I){var R={};function L(B){var D=I.node(B);if(M.has(R,B))return D.rank;R[B]=!0;var _=M.min(M.map(I.outEdges(B),function(j){return L(j.w)-I.edge(j).minlen}));return(_===Number.POSITIVE_INFINITY||_===void 0||_===null)&&(_=0),D.rank=_}M.forEach(I.sources(),L)}function z(I,R){return I.node(R.w).rank-I.node(R.v).rank-I.edge(R).minlen}},11138:function(Q,re,w){"use strict";var M=w(38436),G=w(70574).Graph;Q.exports={addDummyNode:z,simplify:I,asNonCompoundGraph:R,successorWeights:L,predecessorWeights:B,intersectRect:D,buildLayerMatrix:_,normalizeRanks:j,removeEmptyRanks:N,addBorderNode:V,maxRank:ne,partition:ee,time:fe,notime:he};function z(K,se,le,ye){var be;do be=M.uniqueId(ye);while(K.hasNode(be));return le.dummy=se,K.setNode(be,le),be}function I(K){var se=new G().setGraph(K.graph());return M.forEach(K.nodes(),function(le){se.setNode(le,K.node(le))}),M.forEach(K.edges(),function(le){var ye=se.edge(le.v,le.w)||{weight:0,minlen:1},be=K.edge(le);se.setEdge(le.v,le.w,{weight:ye.weight+be.weight,minlen:Math.max(ye.minlen,be.minlen)})}),se}function R(K){var se=new G({multigraph:K.isMultigraph()}).setGraph(K.graph());return M.forEach(K.nodes(),function(le){K.children(le).length||se.setNode(le,K.node(le))}),M.forEach(K.edges(),function(le){se.setEdge(le,K.edge(le))}),se}function L(K){var se=M.map(K.nodes(),function(le){var ye={};return M.forEach(K.outEdges(le),function(be){ye[be.w]=(ye[be.w]||0)+K.edge(be).weight}),ye});return M.zipObject(K.nodes(),se)}function B(K){var se=M.map(K.nodes(),function(le){var ye={};return M.forEach(K.inEdges(le),function(be){ye[be.v]=(ye[be.v]||0)+K.edge(be).weight}),ye});return M.zipObject(K.nodes(),se)}function D(K,se){var le=K.x,ye=K.y,be=se.x-le,Ee=se.y-ye,Ne=K.width/2,Pe=K.height/2;if(!be&&!Ee)throw new Error("Not possible to find intersection inside of the rectangle");var xe,ke;return Math.abs(Ee)*Ne>Math.abs(be)*Pe?(Ee<0&&(Pe=-Pe),xe=Pe*be/Ee,ke=Pe):(be<0&&(Ne=-Ne),xe=Ne,ke=Ne*Ee/be),{x:le+xe,y:ye+ke}}function _(K){var se=M.map(M.range(ne(K)+1),function(){return[]});return M.forEach(K.nodes(),function(le){var ye=K.node(le),be=ye.rank;M.isUndefined(be)||(se[be][ye.order]=le)}),se}function j(K){var se=M.min(M.map(K.nodes(),function(le){return K.node(le).rank}));M.forEach(K.nodes(),function(le){var ye=K.node(le);M.has(ye,"rank")&&(ye.rank-=se)})}function N(K){var se=M.min(M.map(K.nodes(),function(Ee){return K.node(Ee).rank})),le=[];M.forEach(K.nodes(),function(Ee){var Ne=K.node(Ee).rank-se;le[Ne]||(le[Ne]=[]),le[Ne].push(Ee)});var ye=0,be=K.graph().nodeRankFactor;M.forEach(le,function(Ee,Ne){M.isUndefined(Ee)&&Ne%be!==0?--ye:ye&&M.forEach(Ee,function(Pe){K.node(Pe).rank+=ye})})}function V(K,se,le,ye){var be={width:0,height:0};return arguments.length>=4&&(be.rank=le,be.order=ye),z(K,"border",be,se)}function ne(K){return M.max(M.map(K.nodes(),function(se){var le=K.node(se).rank;if(!M.isUndefined(le))return le}))}function ee(K,se){var le={lhs:[],rhs:[]};return M.forEach(K,function(ye){se(ye)?le.lhs.push(ye):le.rhs.push(ye)}),le}function fe(K,se){var le=M.now();try{return se()}finally{console.log(K+" time: "+(M.now()-le)+"ms")}}function he(K,se){return se()}},88177:function(Q){Q.exports="0.8.5"},26729:function(Q){"use strict";var re=Object.prototype.hasOwnProperty,w="~";function M(){}Object.create&&(M.prototype=Object.create(null),new M().__proto__||(w=!1));function G(L,B,D){this.fn=L,this.context=B,this.once=D||!1}function z(L,B,D,_,j){if(typeof D!="function")throw new TypeError("The listener must be a function");var N=new G(D,_||L,j),V=w?w+B:B;return L._events[V]?L._events[V].fn?L._events[V]=[L._events[V],N]:L._events[V].push(N):(L._events[V]=N,L._eventsCount++),L}function I(L,B){--L._eventsCount===0?L._events=new M:delete L._events[B]}function R(){this._events=new M,this._eventsCount=0}R.prototype.eventNames=function(){var B=[],D,_;if(this._eventsCount===0)return B;for(_ in D=this._events)re.call(D,_)&&B.push(w?_.slice(1):_);return Object.getOwnPropertySymbols?B.concat(Object.getOwnPropertySymbols(D)):B},R.prototype.listeners=function(B){var D=w?w+B:B,_=this._events[D];if(!_)return[];if(_.fn)return[_.fn];for(var j=0,N=_.length,V=new Array(N);j0&&(V=N.removeMin(),ne=j[V],ne.distance!==Number.POSITIVE_INFINITY);)_(V).forEach(ee);return j}},9096:function(Q,re,w){var M=w(89126),G=w(5023);Q.exports=z;function z(I){return M.filter(G(I),function(R){return R.length>1||R.length===1&&I.hasEdge(R[0],R[0])})}},38924:function(Q,re,w){var M=w(89126);Q.exports=z;var G=M.constant(1);function z(R,L,B){return I(R,L||G,B||function(D){return R.outEdges(D)})}function I(R,L,B){var D={},_=R.nodes();return _.forEach(function(j){D[j]={},D[j][j]={distance:0},_.forEach(function(N){j!==N&&(D[j][N]={distance:Number.POSITIVE_INFINITY})}),B(j).forEach(function(N){var V=N.v===j?N.w:N.v,ne=L(N);D[j][V]={distance:ne,predecessor:j}})}),_.forEach(function(j){var N=D[j];_.forEach(function(V){var ne=D[V];_.forEach(function(ee){var fe=ne[j],he=N[ee],K=ne[ee],se=fe.distance+he.distance;se0;){if(j=_.removeMin(),M.has(D,j))B.setEdge(j,D[j]);else{if(V)throw new Error("Input graph is not connected: "+R);V=!0}R.nodeEdges(j).forEach(N)}return B}},5023:function(Q,re,w){var M=w(89126);Q.exports=G;function G(z){var I=0,R=[],L={},B=[];function D(_){var j=L[_]={onStack:!0,lowlink:I,index:I++};if(R.push(_),z.successors(_).forEach(function(ne){M.has(L,ne)?L[ne].onStack&&(j.lowlink=Math.min(j.lowlink,L[ne].index)):(D(ne),j.lowlink=Math.min(j.lowlink,L[ne].lowlink))}),j.lowlink===j.index){var N=[],V;do V=R.pop(),L[V].onStack=!1,N.push(V);while(_!==V);B.push(N)}}return z.nodes().forEach(function(_){M.has(L,_)||D(_)}),B}},2166:function(Q,re,w){var M=w(89126);Q.exports=G,G.CycleException=z;function G(I){var R={},L={},B=[];function D(_){if(M.has(L,_))throw new z;M.has(R,_)||(L[_]=!0,R[_]=!0,M.each(I.predecessors(_),D),delete L[_],B.push(_))}if(M.each(I.sinks(),D),M.size(R)!==I.nodeCount())throw new z;return B}function z(){}z.prototype=new Error},75639:function(Q,re,w){var M=w(89126);Q.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(z){return z.key})},G.prototype.has=function(z){return M.has(this._keyIndices,z)},G.prototype.priority=function(z){var I=this._keyIndices[z];if(I!==void 0)return this._arr[I].priority},G.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},G.prototype.add=function(z,I){var R=this._keyIndices;if(z=String(z),!M.has(R,z)){var L=this._arr,B=L.length;return R[z]=B,L.push({key:z,priority:I}),this._decrease(B),!0}return!1},G.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var z=this._arr.pop();return delete this._keyIndices[z.key],this._heapify(0),z.key},G.prototype.decrease=function(z,I){var R=this._keyIndices[z];if(I>this._arr[R].priority)throw new Error("New priority is greater than current priority. Key: "+z+" Old: "+this._arr[R].priority+" New: "+I);this._arr[R].priority=I,this._decrease(R)},G.prototype._heapify=function(z){var I=this._arr,R=2*z,L=R+1,B=z;R>1,!(I[L].priority1?ee.setNode(fe,V):ee.setNode(fe)}),this},R.prototype.setNode=function(N,V){return M.has(this._nodes,N)?(arguments.length>1&&(this._nodes[N]=V),this):(this._nodes[N]=arguments.length>1?V:this._defaultNodeLabelFn(N),this._isCompound&&(this._parent[N]=z,this._children[N]={},this._children[z][N]=!0),this._in[N]={},this._preds[N]={},this._out[N]={},this._sucs[N]={},++this._nodeCount,this)},R.prototype.node=function(N){return this._nodes[N]},R.prototype.hasNode=function(N){return M.has(this._nodes,N)},R.prototype.removeNode=function(N){var V=this;if(M.has(this._nodes,N)){var ne=function(ee){V.removeEdge(V._edgeObjs[ee])};delete this._nodes[N],this._isCompound&&(this._removeFromParentsChildList(N),delete this._parent[N],M.each(this.children(N),function(ee){V.setParent(ee)}),delete this._children[N]),M.each(M.keys(this._in[N]),ne),delete this._in[N],delete this._preds[N],M.each(M.keys(this._out[N]),ne),delete this._out[N],delete this._sucs[N],--this._nodeCount}return this},R.prototype.setParent=function(N,V){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(M.isUndefined(V))V=z;else{V+="";for(var ne=V;!M.isUndefined(ne);ne=this.parent(ne))if(ne===N)throw new Error("Setting "+V+" as parent of "+N+" would create a cycle");this.setNode(V)}return this.setNode(N),this._removeFromParentsChildList(N),this._parent[N]=V,this._children[V][N]=!0,this},R.prototype._removeFromParentsChildList=function(N){delete this._children[this._parent[N]][N]},R.prototype.parent=function(N){if(this._isCompound){var V=this._parent[N];if(V!==z)return V}},R.prototype.children=function(N){if(M.isUndefined(N)&&(N=z),this._isCompound){var V=this._children[N];if(V)return M.keys(V)}else{if(N===z)return this.nodes();if(this.hasNode(N))return[]}},R.prototype.predecessors=function(N){var V=this._preds[N];if(V)return M.keys(V)},R.prototype.successors=function(N){var V=this._sucs[N];if(V)return M.keys(V)},R.prototype.neighbors=function(N){var V=this.predecessors(N);if(V)return M.union(V,this.successors(N))},R.prototype.isLeaf=function(N){var V;return this.isDirected()?V=this.successors(N):V=this.neighbors(N),V.length===0},R.prototype.filterNodes=function(N){var V=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});V.setGraph(this.graph());var ne=this;M.each(this._nodes,function(he,K){N(K)&&V.setNode(K,he)}),M.each(this._edgeObjs,function(he){V.hasNode(he.v)&&V.hasNode(he.w)&&V.setEdge(he,ne.edge(he))});var ee={};function fe(he){var K=ne.parent(he);return K===void 0||V.hasNode(K)?(ee[he]=K,K):K in ee?ee[K]:fe(K)}return this._isCompound&&M.each(V.nodes(),function(he){V.setParent(he,fe(he))}),V},R.prototype.setDefaultEdgeLabel=function(N){return M.isFunction(N)||(N=M.constant(N)),this._defaultEdgeLabelFn=N,this},R.prototype.edgeCount=function(){return this._edgeCount},R.prototype.edges=function(){return M.values(this._edgeObjs)},R.prototype.setPath=function(N,V){var ne=this,ee=arguments;return M.reduce(N,function(fe,he){return ee.length>1?ne.setEdge(fe,he,V):ne.setEdge(fe,he),he}),this},R.prototype.setEdge=function(){var N,V,ne,ee,fe=!1,he=arguments[0];typeof he=="object"&&he!==null&&"v"in he?(N=he.v,V=he.w,ne=he.name,arguments.length===2&&(ee=arguments[1],fe=!0)):(N=he,V=arguments[1],ne=arguments[3],arguments.length>2&&(ee=arguments[2],fe=!0)),N=""+N,V=""+V,M.isUndefined(ne)||(ne=""+ne);var K=D(this._isDirected,N,V,ne);if(M.has(this._edgeLabels,K))return fe&&(this._edgeLabels[K]=ee),this;if(!M.isUndefined(ne)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(N),this.setNode(V),this._edgeLabels[K]=fe?ee:this._defaultEdgeLabelFn(N,V,ne);var se=_(this._isDirected,N,V,ne);return N=se.v,V=se.w,Object.freeze(se),this._edgeObjs[K]=se,L(this._preds[V],N),L(this._sucs[N],V),this._in[V][K]=se,this._out[N][K]=se,this._edgeCount++,this},R.prototype.edge=function(N,V,ne){var ee=arguments.length===1?j(this._isDirected,arguments[0]):D(this._isDirected,N,V,ne);return this._edgeLabels[ee]},R.prototype.hasEdge=function(N,V,ne){var ee=arguments.length===1?j(this._isDirected,arguments[0]):D(this._isDirected,N,V,ne);return M.has(this._edgeLabels,ee)},R.prototype.removeEdge=function(N,V,ne){var ee=arguments.length===1?j(this._isDirected,arguments[0]):D(this._isDirected,N,V,ne),fe=this._edgeObjs[ee];return fe&&(N=fe.v,V=fe.w,delete this._edgeLabels[ee],delete this._edgeObjs[ee],B(this._preds[V],N),B(this._sucs[N],V),delete this._in[V][ee],delete this._out[N][ee],this._edgeCount--),this},R.prototype.inEdges=function(N,V){var ne=this._in[N];if(ne){var ee=M.values(ne);return V?M.filter(ee,function(fe){return fe.v===V}):ee}},R.prototype.outEdges=function(N,V){var ne=this._out[N];if(ne){var ee=M.values(ne);return V?M.filter(ee,function(fe){return fe.w===V}):ee}},R.prototype.nodeEdges=function(N,V){var ne=this.inEdges(N,V);if(ne)return ne.concat(this.outEdges(N,V))};function L(N,V){N[V]?N[V]++:N[V]=1}function B(N,V){--N[V]||delete N[V]}function D(N,V,ne,ee){var fe=""+V,he=""+ne;if(!N&&fe>he){var K=fe;fe=he,he=K}return fe+I+he+I+(M.isUndefined(ee)?G:ee)}function _(N,V,ne,ee){var fe=""+V,he=""+ne;if(!N&&fe>he){var K=fe;fe=he,he=K}var se={v:fe,w:he};return ee&&(se.name=ee),se}function j(N,V){return D(N,V.v,V.w,V.name)}},82354:function(Q,re,w){Q.exports={Graph:w(30771),version:w(49631)}},28974:function(Q,re,w){var M=w(89126),G=w(30771);Q.exports={write:z,read:L};function z(B){var D={options:{directed:B.isDirected(),multigraph:B.isMultigraph(),compound:B.isCompound()},nodes:I(B),edges:R(B)};return M.isUndefined(B.graph())||(D.value=M.clone(B.graph())),D}function I(B){return M.map(B.nodes(),function(D){var _=B.node(D),j=B.parent(D),N={v:D};return M.isUndefined(_)||(N.value=_),M.isUndefined(j)||(N.parent=j),N})}function R(B){return M.map(B.edges(),function(D){var _=B.edge(D),j={v:D.v,w:D.w};return M.isUndefined(D.name)||(j.name=D.name),M.isUndefined(_)||(j.value=_),j})}function L(B){var D=new G(B.options).setGraph(B.value);return M.each(B.nodes,function(_){D.setNode(_.v,_.value),_.parent&&D.setParent(_.v,_.parent)}),M.each(B.edges,function(_){D.setEdge({v:_.v,w:_.w,name:_.name},_.value)}),D}},89126:function(Q,re,w){var M;try{M={clone:w(66678),constant:w(75703),each:w(85768),filter:w(63105),has:w(18721),isArray:w(1469),isEmpty:w(41609),isFunction:w(23560),isUndefined:w(52353),keys:w(3674),map:w(35161),reduce:w(54061),size:w(84238),transform:w(68718),union:w(93386),values:w(52628)}}catch(G){}M||(M=window._),Q.exports=M},49631:function(Q){Q.exports="2.1.8"},80817:function(Q){function re(z,I,R){return(I[0]-z[0])*(R[1]-z[1])-(I[1]-z[1])*(R[0]-z[0])}function w(z){const I=[];for(let R=0;R=2&&re(I[I.length-2],I[I.length-1],z[R])<=0;)I.pop();I.push(z[R])}return I.pop(),I}function M(z){const I=z.reverse(),R=[];for(let L=0;L=2&&re(R[R.length-2],R[R.length-1],I[L])<=0;)R.pop();R.push(I[L])}return R.pop(),R}function G(z){const I=w(z),L=M(z).concat(I);return L.push(z[0]),L}Q.exports=G},63652:function(Q){Q.exports={toXy:function(re,w){return w===void 0?re.slice():re.map(function(M){return new Function("pt","return [pt"+w[0]+",pt"+w[1]+"];")(M)})},fromXy:function(re,w){return w===void 0?re.slice():re.map(function(M){return new Function("pt","const o = {}; o"+w[0]+"= pt[0]; o"+w[1]+"= pt[1]; return o;")(M)})}}},58867:function(Q){function re(M,G){this._cells=[],this._cellSize=G,this._reverseCellSize=1/G;for(let z=0;z=0;Ee--)K[Ee][0]ye&&(ye=K[Ee][0]),K[Ee][1]>be&&(be=K[Ee][1]);return[ye-se,be-le]}function N(K){return[Math.min(K[0][0],K[1][0]),Math.min(K[0][1],K[1][1]),Math.max(K[0][0],K[1][0]),Math.max(K[0][1],K[1][1])]}function V(K,se,le){let ye=null,be=fe,Ee=fe,Ne,Pe;for(let xe=0;xebe&&Pe>Ee&&!_([K[0],se[xe]],le)&&!_([K[1],se[xe]],le)&&(be=Ne,Ee=Pe,ye=se[xe]);return ye}function ne(K,se,le,ye,be){let Ee=!1;for(let Ne=0;NeIe||le[1]>Ye));Ie>=le[0]&&Ye>=le[1]&&be.add(xe),Je!==null&&(K.splice(Ne+1,0,Je),ye.removePoint(Je),Ee=!0)}return Ee?ne(K,se,le,ye,be):K}function ee(K,se,le){let ye=se||20;const be=R(L(z.toXy(K,le)));if(be.length<4){const Ie=be.concat([be[0]]);return le?z.fromXy(Ie,le):Ie}const Ee=j(be),Ne=[Ee[0]*he,Ee[1]*he],Pe=I(be),xe=be.filter(function(Ie){return Pe.indexOf(Ie)<0}),ke=Math.ceil(1/(be.length/(Ee[0]*Ee[1]))),Le=ne(Pe,Math.pow(ye,2),Ne,G(xe,ke),new Set);return le?z.fromXy(Le,le):Le}const fe=Math.cos(90/(180/Math.PI)),he=.6;Q.exports=ee},77444:function(Q){function re(M,G,z,I,R,L){const B=(L-G)*(z-M)-(I-G)*(R-M);return B>0?!0:!(B<0)}function w(M,G){const z=M[0][0],I=M[0][1],R=M[1][0],L=M[1][1],B=G[0][0],D=G[0][1],_=G[1][0],j=G[1][1];return re(z,I,B,D,_,j)!==re(R,L,B,D,_,j)&&re(z,I,R,L,B,D)!==re(z,I,R,L,_,j)}Q.exports=w},44091:function(Q,re,w){"use strict";w.r(re),w.d(re,{isAnyArray:function(){return G}});const M=Object.prototype.toString;function G(z){const I=M.call(z);return I.endsWith("Array]")&&!I.includes("Big")}},18552:function(Q,re,w){var M=w(10852),G=w(55639),z=M(G,"DataView");Q.exports=z},53818:function(Q,re,w){var M=w(10852),G=w(55639),z=M(G,"Promise");Q.exports=z},58525:function(Q,re,w){var M=w(10852),G=w(55639),z=M(G,"Set");Q.exports=z},88668:function(Q,re,w){var M=w(83369),G=w(90619),z=w(72385);function I(R){var L=-1,B=R==null?0:R.length;for(this.__data__=new M;++L-1}Q.exports=G},1196:function(Q){function re(w,M,G){for(var z=-1,I=w==null?0:w.length;++z0&&L(N)?R>1?z(N,R-1,L,B,D):M(D,N):B||(D[D.length]=N)}return D}Q.exports=z},47816:function(Q,re,w){var M=w(28483),G=w(3674);function z(I,R){return I&&M(I,R,G)}Q.exports=z},97786:function(Q,re,w){var M=w(71811),G=w(40327);function z(I,R){R=M(R,I);for(var L=0,B=R.length;I!=null&&LM}Q.exports=re},78565:function(Q){var re=Object.prototype,w=re.hasOwnProperty;function M(G,z){return G!=null&&w.call(G,z)}Q.exports=M},13:function(Q){function re(w,M){return w!=null&&M in Object(w)}Q.exports=re},42118:function(Q,re,w){var M=w(41848),G=w(62722),z=w(42351);function I(R,L,B){return L===L?z(R,L,B):M(R,G,B)}Q.exports=I},90939:function(Q,re,w){var M=w(2492),G=w(37005);function z(I,R,L,B,D){return I===R?!0:I==null||R==null||!G(I)&&!G(R)?I!==I&&R!==R:M(I,R,L,B,z,D)}Q.exports=z},2492:function(Q,re,w){var M=w(46384),G=w(67114),z=w(18351),I=w(16096),R=w(64160),L=w(1469),B=w(44144),D=w(36719),_=1,j="[object Arguments]",N="[object Array]",V="[object Object]",ne=Object.prototype,ee=ne.hasOwnProperty;function fe(he,K,se,le,ye,be){var Ee=L(he),Ne=L(K),Pe=Ee?N:R(he),xe=Ne?N:R(K);Pe=Pe==j?V:Pe,xe=xe==j?V:xe;var ke=Pe==V,Le=xe==V,Ie=Pe==xe;if(Ie&&B(he)){if(!B(K))return!1;Ee=!0,ke=!1}if(Ie&&!ke)return be||(be=new M),Ee||D(he)?G(he,K,se,le,ye,be):z(he,K,Pe,se,le,ye,be);if(!(se&_)){var Ye=ke&&ee.call(he,"__wrapped__"),Je=Le&&ee.call(K,"__wrapped__");if(Ye||Je){var at=Ye?he.value():he,bt=Je?K.value():K;return be||(be=new M),ye(at,bt,se,le,be)}}return Ie?(be||(be=new M),I(he,K,se,le,ye,be)):!1}Q.exports=fe},25588:function(Q,re,w){var M=w(64160),G=w(37005),z="[object Map]";function I(R){return G(R)&&M(R)==z}Q.exports=I},2958:function(Q,re,w){var M=w(46384),G=w(90939),z=1,I=2;function R(L,B,D,_){var j=D.length,N=j,V=!_;if(L==null)return!N;for(L=Object(L);j--;){var ne=D[j];if(V&&ne[2]?ne[1]!==L[ne[0]]:!(ne[0]in L))return!1}for(;++j=B){var se=j?null:R(_);if(se)return L(se);fe=!1,ne=I,K=new M}else K=j?[]:he;e:for(;++VI||D&&_&&N&&!j&&!V||L&&_&&N||!R&&N||!B)return 1;if(!L&&!D&&!V&&z=j)return N;var V=R[L];return N*(V=="desc"?-1:1)}}return z.index-I.index}Q.exports=G},18805:function(Q,re,w){var M=w(98363),G=w(99551);function z(I,R){return M(I,G(I),R)}Q.exports=z},1911:function(Q,re,w){var M=w(98363),G=w(51442);function z(I,R){return M(I,G(I),R)}Q.exports=z},99291:function(Q,re,w){var M=w(98612);function G(z,I){return function(R,L){if(R==null)return R;if(!M(R))return z(R,L);for(var B=R.length,D=I?B:-1,_=Object(R);(I?D--:++D-1?_[j?L[N]:N]:void 0}}Q.exports=I},47445:function(Q,re,w){var M=w(40098),G=w(16612),z=w(18601);function I(R){return function(L,B,D){return D&&typeof D!="number"&&G(L,B,D)&&(B=D=void 0),L=z(L),B===void 0?(B=L,L=0):B=z(B),D=D===void 0?Lee))return!1;var he=V.get(B),K=V.get(D);if(he&&K)return he==D&&K==B;var se=-1,le=!0,ye=_&R?new M:void 0;for(V.set(B,D),V.set(D,B);++se2?_[2]:void 0;for(V&&z(_[0],_[1],V)&&(N=1);++j1&&I(L,B[0],B[1])?B=[]:D>2&&I(B[0],B[1],B[2])&&(B=[B[0]]),G(L,M(B,1),[])});Q.exports=R},70479:function(Q){function re(){return[]}Q.exports=re},18601:function(Q,re,w){var M=w(14841),G=1/0,z=17976931348623157e292;function I(R){if(!R)return R===0?R:0;if(R=M(R),R===G||R===-G){var L=R<0?-1:1;return L*z}return R===R?R:0}Q.exports=I},40554:function(Q,re,w){var M=w(18601);function G(z){var I=M(z),R=I%1;return I===I?R?I-R:I:0}Q.exports=G},14841:function(Q,re,w){var M=w(27561),G=w(13218),z=w(33448),I=NaN,R=/^[-+]0x[0-9a-f]+$/i,L=/^0b[01]+$/i,B=/^0o[0-7]+$/i,D=parseInt;function _(j){if(typeof j=="number")return j;if(z(j))return I;if(G(j)){var N=typeof j.valueOf=="function"?j.valueOf():j;j=G(N)?N+"":N}if(typeof j!="string")return j===0?j:+j;j=M(j);var V=L.test(j);return V||B.test(j)?D(j.slice(2),V?2:8):R.test(j)?I:+j}Q.exports=_},79833:function(Q,re,w){var M=w(80531);function G(z){return z==null?"":M(z)}Q.exports=G},68718:function(Q,re,w){var M=w(77412),G=w(3118),z=w(47816),I=w(67206),R=w(85924),L=w(1469),B=w(44144),D=w(23560),_=w(13218),j=w(36719);function N(V,ne,ee){var fe=L(V),he=fe||B(V)||j(V);if(ne=I(ne,4),ee==null){var K=V&&V.constructor;he?ee=fe?new K:[]:_(V)?ee=D(K)?G(R(V)):{}:ee={}}return(he?M:z)(V,function(se,le,ye){return ne(ee,se,le,ye)}),ee}Q.exports=N},93386:function(Q,re,w){var M=w(21078),G=w(5976),z=w(45652),I=w(29246),R=G(function(L){return z(M(L,1,I,!0))});Q.exports=R},73955:function(Q,re,w){var M=w(79833),G=0;function z(I){var R=++G;return M(I)+R}Q.exports=z},52628:function(Q,re,w){var M=w(47415),G=w(3674);function z(I){return I==null?[]:M(I,G(I))}Q.exports=z},7287:function(Q,re,w){var M=w(34865),G=w(1757);function z(I,R){return G(I||[],R||[],M)}Q.exports=z},75823:function(Q,re,w){"use strict";w.r(re),w.d(re,{default:function(){return I}});var M=w(44091);function G(R){var L=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!(0,M.isAnyArray)(R))throw new TypeError("input must be an array");if(R.length===0)throw new TypeError("input must not be empty");var B=L.fromIndex,D=B===void 0?0:B,_=L.toIndex,j=_===void 0?R.length:_;if(D<0||D>=R.length||!Number.isInteger(D))throw new Error("fromIndex must be a positive integer smaller than length");if(j<=D||j>R.length||!Number.isInteger(j))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var N=R[D],V=D+1;VN&&(N=R[V]);return N}function z(R){var L=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!(0,M.isAnyArray)(R))throw new TypeError("input must be an array");if(R.length===0)throw new TypeError("input must not be empty");var B=L.fromIndex,D=B===void 0?0:B,_=L.toIndex,j=_===void 0?R.length:_;if(D<0||D>=R.length||!Number.isInteger(D))throw new Error("fromIndex must be a positive integer smaller than length");if(j<=D||j>R.length||!Number.isInteger(j))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var N=R[D],V=D+1;V1&&arguments[1]!==void 0?arguments[1]:{};if((0,M.isAnyArray)(R)){if(R.length===0)throw new TypeError("input must not be empty")}else throw new TypeError("input must be an array");var B;if(L.output!==void 0){if(!(0,M.isAnyArray)(L.output))throw new TypeError("output option must be an array if specified");B=L.output}else B=new Array(R.length);var D=z(R),_=G(R);if(D===_)throw new RangeError("minimum and maximum input values are equal. Cannot rescale a constant array");var j=L.min,N=j===void 0?L.autoMinMax?D:0:j,V=L.max,ne=V===void 0?L.autoMinMax?_:1:V;if(N>=ne)throw new RangeError("min option must be smaller than max option");for(var ee=(ne-N)/(_-D),fe=0;fe=0&&(w.splice instanceof Function||Object.getOwnPropertyDescriptor(w,w.length-1)&&w.constructor.name!=="String")}},99755:function(Q){"use strict";Q.exports="data:image/png;base64,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"},92691:function(Q){"use strict";Q.exports="data:image/png;base64,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"},46016:function(Q){"use strict";Q.exports="data:image/png;base64,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"},37426:function(Q){"use strict";Q.exports="data:image/png;base64,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"},19150:function(Q){"use strict";Q.exports="data:image/png;base64,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"},55303:function(Q){"use strict";Q.exports="data:image/png;base64,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"},64849:function(Q,re,w){"use strict";w.d(re,{H:function(){return z},Z:function(){return M}});function M(I){const R=+this._x.call(null,I),L=+this._y.call(null,I),B=+this._z.call(null,I);return G(this.cover(R,L,B),R,L,B,I)}function G(I,R,L,B,D){if(isNaN(R)||isNaN(L)||isNaN(B))return I;var _,j=I._root,N={data:D},V=I._x0,ne=I._y0,ee=I._z0,fe=I._x1,he=I._y1,K=I._z1,se,le,ye,be,Ee,Ne,Pe,xe,ke,Le,Ie;if(!j)return I._root=N,I;for(;j.length;)if((Pe=R>=(se=(V+fe)/2))?V=se:fe=se,(xe=L>=(le=(ne+he)/2))?ne=le:he=le,(ke=B>=(ye=(ee+K)/2))?ee=ye:K=ye,_=j,!(j=j[Le=ke<<2|xe<<1|Pe]))return _[Le]=N,I;if(be=+I._x.call(null,j.data),Ee=+I._y.call(null,j.data),Ne=+I._z.call(null,j.data),R===be&&L===Ee&&B===Ne)return N.next=j,_?_[Le]=N:I._root=N,I;do _=_?_[Le]=new Array(8):I._root=new Array(8),(Pe=R>=(se=(V+fe)/2))?V=se:fe=se,(xe=L>=(le=(ne+he)/2))?ne=le:he=le,(ke=B>=(ye=(ee+K)/2))?ee=ye:K=ye;while((Le=ke<<2|xe<<1|Pe)===(Ie=(Ne>=ye)<<2|(Ee>=le)<<1|be>=se));return _[Ie]=j,_[Le]=N,I}function z(I){Array.isArray(I)||(I=Array.from(I));const R=I.length,L=new Float64Array(R),B=new Float64Array(R),D=new Float64Array(R);let _=1/0,j=1/0,N=1/0,V=-1/0,ne=-1/0,ee=-1/0;for(let fe=0,he,K,se,le;feV&&(V=K),sene&&(ne=se),leee&&(ee=le));if(_>V||j>ne||N>ee)return this;this.cover(_,j,N).cover(V,ne,ee);for(let fe=0;feG||G>=D||L>z||z>=_||B>I||I>=j;)switch(ee=(IK||(V=Ee.y0)>se||(ne=Ee.z0)>le||(ee=Ee.x1)=ke)<<2|(I>=xe)<<1|z>=Pe)&&(Ee=ye[ye.length-1],ye[ye.length-1]=ye[ye.length-1-Ne],ye[ye.length-1-Ne]=Ee)}else{var Le=z-+this._x.call(null,be.data),Ie=I-+this._y.call(null,be.data),Ye=R-+this._z.call(null,be.data),Je=Le*Le+Ie*Ie+Ye*Ye;if(Je=(se=(_+V)/2))?_=se:V=se,(Ee=he>=(le=(j+ne)/2))?j=le:ne=le,(Ne=K>=(ye=(N+ee)/2))?N=ye:ee=ye,I=R,!(R=R[Pe=Ne<<2|Ee<<1|be]))return this;if(!R.length)break;(I[Pe+1&7]||I[Pe+2&7]||I[Pe+3&7]||I[Pe+4&7]||I[Pe+5&7]||I[Pe+6&7]||I[Pe+7&7])&&(L=I,xe=Pe)}for(;R.data!==z;)if(B=R,!(R=R.next))return this;return(D=R.next)&&delete R.next,B?(D?B.next=D:delete B.next,this):I?(D?I[Pe]=D:delete I[Pe],(R=I[0]||I[1]||I[2]||I[3]||I[4]||I[5]||I[6]||I[7])&&R===(I[7]||I[6]||I[5]||I[4]||I[3]||I[2]||I[1]||I[0])&&!R.length&&(L?L[xe]=R:this._root=R),this):(this._root=D,this)}function G(z){for(var I=0,R=z.length;I=(fe=(N+ne)/2))?N=fe:ne=fe,(ye=L>=(he=(V+ee)/2))?V=he:ee=he,D=_,!(_=_[be=ye<<1|le]))return D[be]=j,I;if(K=+I._x.call(null,_.data),se=+I._y.call(null,_.data),R===K&&L===se)return j.next=_,D?D[be]=j:I._root=j,I;do D=D?D[be]=new Array(4):I._root=new Array(4),(le=R>=(fe=(N+ne)/2))?N=fe:ne=fe,(ye=L>=(he=(V+ee)/2))?V=he:ee=he;while((be=ye<<1|le)===(Ee=(se>=he)<<1|K>=fe));return D[Ee]=_,D[be]=j,I}function z(I){var R,L,B=I.length,D,_,j=new Array(B),N=new Array(B),V=1/0,ne=1/0,ee=-1/0,fe=-1/0;for(L=0;Lee&&(ee=D),_fe&&(fe=_));if(V>ee||ne>fe)return this;for(this.cover(V,ne).cover(ee,fe),L=0;LG||G>=L||R>z||z>=B;)switch(N=(zne||(j=K.y0)>ee||(N=K.x1)=ye)<<1|z>=le)&&(K=fe[fe.length-1],fe[fe.length-1]=fe[fe.length-1-se],fe[fe.length-1-se]=K)}else{var be=z-+this._x.call(null,he.data),Ee=I-+this._y.call(null,he.data),Ne=be*be+Ee*Ee;if(Ne=(fe=(_+N)/2))?_=fe:N=fe,(se=ee>=(he=(j+V)/2))?j=he:V=he,I=R,!(R=R[le=se<<1|K]))return this;if(!R.length)break;(I[le+1&3]||I[le+2&3]||I[le+3&3])&&(L=I,ye=le)}for(;R.data!==z;)if(B=R,!(R=R.next))return this;return(D=R.next)&&delete R.next,B?(D?B.next=D:delete B.next,this):I?(D?I[le]=D:delete I[le],(R=I[0]||I[1]||I[2]||I[3])&&R===(I[3]||I[2]||I[1]||I[0])&&!R.length&&(L?L[ye]=R:this._root=R),this):(this._root=D,this)}function G(z){for(var I=0,R=z.length;I=0;xt--)(He=Me[xt])&&(Ae=(Te<3?He(Ae):Te>3?He(De,ze,Ae):He(De,ze))||Ae);return Te>3&&Ae&&Object.defineProperty(De,ze,Ae),Ae}function L(Me,De){return function(ze,me){De(ze,me,Me)}}function B(Me,De,ze,me,Te,Ae){function He(Sr){if(Sr!==void 0&&typeof Sr!="function")throw new TypeError("Function expected");return Sr}for(var xt=me.kind,Ft=xt==="getter"?"get":xt==="setter"?"set":"value",St=!De&&Me?me.static?Me:Me.prototype:null,Yt=De||(St?Object.getOwnPropertyDescriptor(St,me.name):{}),Un,jn=!1,Dt=ze.length-1;Dt>=0;Dt--){var Nt={};for(var wt in me)Nt[wt]=wt==="access"?{}:me[wt];for(var wt in me.access)Nt.access[wt]=me.access[wt];Nt.addInitializer=function(Sr){if(jn)throw new TypeError("Cannot add initializers after decoration has completed");Ae.push(He(Sr||null))};var It=(0,ze[Dt])(xt==="accessor"?{get:Yt.get,set:Yt.set}:Yt[Ft],Nt);if(xt==="accessor"){if(It===void 0)continue;if(It===null||typeof It!="object")throw new TypeError("Object expected");(Un=He(It.get))&&(Yt.get=Un),(Un=He(It.set))&&(Yt.set=Un),(Un=He(It.init))&&Te.unshift(Un)}else(Un=He(It))&&(xt==="field"?Te.unshift(Un):Yt[Ft]=Un)}St&&Object.defineProperty(St,me.name,Yt),jn=!0}function D(Me,De,ze){for(var me=arguments.length>2,Te=0;Te0&&Ae[Ae.length-1])&&(St[0]===6||St[0]===2)){ze=0;continue}if(St[0]===3&&(!Ae||St[1]>Ae[0]&&St[1]=Me.length&&(Me=void 0),{value:Me&&Me[me++],done:!Me}}};throw new TypeError(De?"Object is not iterable.":"Symbol.iterator is not defined.")}function K(Me,De){var ze=typeof Symbol=="function"&&Me[Symbol.iterator];if(!ze)return Me;var me=ze.call(Me),Te,Ae=[],He;try{for(;(De===void 0||De-- >0)&&!(Te=me.next()).done;)Ae.push(Te.value)}catch(xt){He={error:xt}}finally{try{Te&&!Te.done&&(ze=me.return)&&ze.call(me)}finally{if(He)throw He.error}}return Ae}function se(){for(var Me=[],De=0;De1||Ft(Dt,wt)})},Nt&&(Te[Dt]=Nt(Te[Dt])))}function Ft(Dt,Nt){try{St(me[Dt](Nt))}catch(wt){jn(Ae[0][3],wt)}}function St(Dt){Dt.value instanceof be?Promise.resolve(Dt.value.v).then(Yt,Un):jn(Ae[0][2],Dt)}function Yt(Dt){Ft("next",Dt)}function Un(Dt){Ft("throw",Dt)}function jn(Dt,Nt){Dt(Nt),Ae.shift(),Ae.length&&Ft(Ae[0][0],Ae[0][1])}}function Ne(Me){var De,ze;return De={},me("next"),me("throw",function(Te){throw Te}),me("return"),De[Symbol.iterator]=function(){return this},De;function me(Te,Ae){De[Te]=Me[Te]?function(He){return(ze=!ze)?{value:be(Me[Te](He)),done:!1}:Ae?Ae(He):He}:Ae}}function Pe(Me){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var De=Me[Symbol.asyncIterator],ze;return De?De.call(Me):(Me=typeof he=="function"?he(Me):Me[Symbol.iterator](),ze={},me("next"),me("throw"),me("return"),ze[Symbol.asyncIterator]=function(){return this},ze);function me(Ae){ze[Ae]=Me[Ae]&&function(He){return new Promise(function(xt,Ft){He=Me[Ae](He),Te(xt,Ft,He.done,He.value)})}}function Te(Ae,He,xt,Ft){Promise.resolve(Ft).then(function(St){Ae({value:St,done:xt})},He)}}function xe(Me,De){return Object.defineProperty?Object.defineProperty(Me,"raw",{value:De}):Me.raw=De,Me}var ke=Object.create?function(Me,De){Object.defineProperty(Me,"default",{enumerable:!0,value:De})}:function(Me,De){Me.default=De},Le=function(Me){return Le=Object.getOwnPropertyNames||function(De){var ze=[];for(var me in De)Object.prototype.hasOwnProperty.call(De,me)&&(ze[ze.length]=me);return ze},Le(Me)};function Ie(Me){if(Me&&Me.__esModule)return Me;var De={};if(Me!=null)for(var ze=Le(Me),me=0;me