!(function(){var D8=Object.defineProperty,P8=Object.defineProperties;var _8=Object.getOwnPropertyDescriptors;var RM=Object.getOwnPropertySymbols;var H8=Object.prototype.hasOwnProperty,G8=Object.prototype.propertyIsEnumerable;var PA=Math.pow,hw=(X,st,T)=>st in X?D8(X,st,{enumerable:!0,configurable:!0,writable:!0,value:T}):X[st]=T,lu=(X,st)=>{for(var T in st||(st={}))H8.call(st,T)&&hw(X,T,st[T]);if(RM)for(var T of RM(st))G8.call(st,T)&&hw(X,T,st[T]);return X},dw=(X,st)=>P8(X,_8(st));var wr=(X,st,T)=>hw(X,typeof st!="symbol"?st+"":st,T);(self.webpackChunk=self.webpackChunk||[]).push([[1791],{88055:function(X,st,T){"use strict";T.d(st,{kJ:function(){return rv},RN:function(){return E8}});var I={};T.r(I),T.d(I,{add:function(){return ad},adjoint:function(){return Ft},clone:function(){return Ee},copy:function(){return He},create:function(){return $t},decompose:function(){return uu},determinant:function(){return te},equals:function(){return gv},exactEquals:function(){return Kr},frob:function(){return id},fromQuat:function(){return KA},fromQuat2:function(){return ei},fromRotation:function(){return qi},fromRotationTranslation:function(){return ti},fromRotationTranslationScale:function(){return go},fromRotationTranslationScaleOrigin:function(){return vo},fromScaling:function(){return Dn},fromTranslation:function(){return Tr},fromValues:function(){return je},fromXRotation:function(){return $i},fromYRotation:function(){return fn},fromZRotation:function(){return Er},frustum:function(){return hu},getRotation:function(){return Xo},getScaling:function(){return Ds},getTranslation:function(){return Pn},identity:function(){return Ie},invert:function(){return on},lookAt:function(){return rd},mul:function(){return po},multiply:function(){return ue},multiplyScalar:function(){return dv},multiplyScalarAndAdd:function(){return fv},ortho:function(){return gu},orthoNO:function(){return fu},orthoZO:function(){return vu},perspective:function(){return du},perspectiveFromFieldOfView:function(){return Za},perspectiveNO:function(){return Xl},perspectiveZO:function(){return cv},rotate:function(){return Qn},rotateX:function(){return jn},rotateY:function(){return qn},rotateZ:function(){return Qr},scale:function(){return Jn},set:function(){return Wn},str:function(){return hv},sub:function(){return vv},subtract:function(){return pu},targetTo:function(){return uv},translate:function(){return se},transpose:function(){return De}});var W={};T.r(W),T.d(W,{circle:function(){return AQ},diamond:function(){return lQ},rect:function(){return uQ},simple:function(){return dQ},triangle:function(){return Ex},triangleRect:function(){return hQ},vee:function(){return cQ}});var z=T(85899),P=T(38705),N=T(17212),G=T(77654),K=T(96885),_=T(39153),H=T(72190),J=T(94856),Z=J,$=1e-6,ct=typeof Float32Array!="undefined"?Float32Array:Array,ht=Math.random,Ct="zyx";function pt(r){return r>=0?Math.round(r):r%.5===0?Math.floor(r):Math.round(r)}function ut(r){ct=r}var Bt=Math.PI/180,wt=180/Math.PI;function Tt(r){return r*Bt}function kt(r){return r*wt}function _t(r,t){var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:$;return Math.abs(r-t)<=e*Math.max(1,Math.abs(r),Math.abs(t))}function Ot(){var r=new ct(3);return ct!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r}function Gt(r){var t=new ct(3);return t[0]=r[0],t[1]=r[1],t[2]=r[2],t}function ae(r){var t=r[0],e=r[1],n=r[2];return Math.sqrt(t*t+e*e+n*n)}function Wt(r,t,e){var n=new ct(3);return n[0]=r,n[1]=t,n[2]=e,n}function ie(r,t){return r[0]=t[0],r[1]=t[1],r[2]=t[2],r}function ve(r,t,e,n){return r[0]=t,r[1]=e,r[2]=n,r}function de(r,t,e){return r[0]=t[0]+e[0],r[1]=t[1]+e[1],r[2]=t[2]+e[2],r}function Oe(r,t,e){return r[0]=t[0]-e[0],r[1]=t[1]-e[1],r[2]=t[2]-e[2],r}function sn(r,t,e){return r[0]=t[0]*e[0],r[1]=t[1]*e[1],r[2]=t[2]*e[2],r}function dn(r,t,e){return r[0]=t[0]/e[0],r[1]=t[1]/e[1],r[2]=t[2]/e[2],r}function Xn(r,t){return r[0]=Math.ceil(t[0]),r[1]=Math.ceil(t[1]),r[2]=Math.ceil(t[2]),r}function Jr(r,t){return r[0]=Math.floor(t[0]),r[1]=Math.floor(t[1]),r[2]=Math.floor(t[2]),r}function ji(r,t,e){return r[0]=Math.min(t[0],e[0]),r[1]=Math.min(t[1],e[1]),r[2]=Math.min(t[2],e[2]),r}function As(r,t,e){return r[0]=Math.max(t[0],e[0]),r[1]=Math.max(t[1],e[1]),r[2]=Math.max(t[2],e[2]),r}function ho(r,t){return r[0]=glMatrix.round(t[0]),r[1]=glMatrix.round(t[1]),r[2]=glMatrix.round(t[2]),r}function Pt(r,t,e){return r[0]=t[0]*e,r[1]=t[1]*e,r[2]=t[2]*e,r}function zt(r,t,e,n){return r[0]=t[0]+e[0]*n,r[1]=t[1]+e[1]*n,r[2]=t[2]+e[2]*n,r}function jt(r,t){var e=t[0]-r[0],n=t[1]-r[1],i=t[2]-r[2];return Math.sqrt(e*e+n*n+i*i)}function gt(r,t){var e=t[0]-r[0],n=t[1]-r[1],i=t[2]-r[2];return e*e+n*n+i*i}function Mt(r){var t=r[0],e=r[1],n=r[2];return t*t+e*e+n*n}function Lt(r,t){return r[0]=-t[0],r[1]=-t[1],r[2]=-t[2],r}function ee(r,t){return r[0]=1/t[0],r[1]=1/t[1],r[2]=1/t[2],r}function be(r,t){var e=t[0],n=t[1],i=t[2],a=e*e+n*n+i*i;return a>0&&(a=1/Math.sqrt(a)),r[0]=t[0]*a,r[1]=t[1]*a,r[2]=t[2]*a,r}function _e(r,t){return r[0]*t[0]+r[1]*t[1]+r[2]*t[2]}function Me(r,t,e){var n=t[0],i=t[1],a=t[2],s=e[0],o=e[1],A=e[2];return r[0]=i*A-a*o,r[1]=a*s-n*A,r[2]=n*o-i*s,r}function nn(r,t,e,n){var i=t[0],a=t[1],s=t[2];return r[0]=i+n*(e[0]-i),r[1]=a+n*(e[1]-a),r[2]=s+n*(e[2]-s),r}function rr(r,t,e,n){var i=Math.acos(Math.min(Math.max(_e(t,e),-1),1)),a=Math.sin(i),s=Math.sin((1-n)*i)/a,o=Math.sin(n*i)/a;return r[0]=s*t[0]+o*e[0],r[1]=s*t[1]+o*e[1],r[2]=s*t[2]+o*e[2],r}function or(r,t,e,n,i,a){var s=a*a,o=s*(2*a-3)+1,A=s*(a-2)+a,l=s*(a-1),c=s*(3-2*a);return r[0]=t[0]*o+e[0]*A+n[0]*l+i[0]*c,r[1]=t[1]*o+e[1]*A+n[1]*l+i[1]*c,r[2]=t[2]*o+e[2]*A+n[2]*l+i[2]*c,r}function Ge(r,t,e,n,i,a){var s=1-a,o=s*s,A=a*a,l=o*s,c=3*a*o,u=3*A*s,h=A*a;return r[0]=t[0]*l+e[0]*c+n[0]*u+i[0]*h,r[1]=t[1]*l+e[1]*c+n[1]*u+i[1]*h,r[2]=t[2]*l+e[2]*c+n[2]*u+i[2]*h,r}function ze(r,t){t=t===void 0?1:t;var e=glMatrix.RANDOM()*2*Math.PI,n=glMatrix.RANDOM()*2-1,i=Math.sqrt(1-n*n)*t;return r[0]=Math.cos(e)*i,r[1]=Math.sin(e)*i,r[2]=n*t,r}function me(r,t,e){var n=t[0],i=t[1],a=t[2],s=e[3]*n+e[7]*i+e[11]*a+e[15];return s=s||1,r[0]=(e[0]*n+e[4]*i+e[8]*a+e[12])/s,r[1]=(e[1]*n+e[5]*i+e[9]*a+e[13])/s,r[2]=(e[2]*n+e[6]*i+e[10]*a+e[14])/s,r}function Ve(r,t,e){var n=t[0],i=t[1],a=t[2];return r[0]=n*e[0]+i*e[3]+a*e[6],r[1]=n*e[1]+i*e[4]+a*e[7],r[2]=n*e[2]+i*e[5]+a*e[8],r}function zr(r,t,e){var n=e[0],i=e[1],a=e[2],s=e[3],o=t[0],A=t[1],l=t[2],c=i*l-a*A,u=a*o-n*l,h=n*A-i*o;return c=c+c,u=u+u,h=h+h,r[0]=o+s*c+i*h-a*u,r[1]=A+s*u+a*c-n*h,r[2]=l+s*h+n*u-i*c,r}function Zi(r,t,e,n){var i=[],a=[];return i[0]=t[0]-e[0],i[1]=t[1]-e[1],i[2]=t[2]-e[2],a[0]=i[0],a[1]=i[1]*Math.cos(n)-i[2]*Math.sin(n),a[2]=i[1]*Math.sin(n)+i[2]*Math.cos(n),r[0]=a[0]+e[0],r[1]=a[1]+e[1],r[2]=a[2]+e[2],r}function pe(r,t,e,n){var i=[],a=[];return i[0]=t[0]-e[0],i[1]=t[1]-e[1],i[2]=t[2]-e[2],a[0]=i[2]*Math.sin(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]+e[0],r[1]=a[1]+e[1],r[2]=a[2]+e[2],r}function Wa(r,t,e,n){var i=[],a=[];return i[0]=t[0]-e[0],i[1]=t[1]-e[1],i[2]=t[2]-e[2],a[0]=i[0]*Math.cos(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]+e[0],r[1]=a[1]+e[1],r[2]=a[2]+e[2],r}function kr(r,t){var e=r[0],n=r[1],i=r[2],a=t[0],s=t[1],o=t[2],A=Math.sqrt((e*e+n*n+i*i)*(a*a+s*s+o*o)),l=A&&_e(r,t)/A;return Math.acos(Math.min(Math.max(l,-1),1))}function Fr(r){return r[0]=0,r[1]=0,r[2]=0,r}function fi(r){return"vec3("+r[0]+", "+r[1]+", "+r[2]+")"}function ls(r,t){return r[0]===t[0]&&r[1]===t[1]&&r[2]===t[2]}function Yi(r,t){var e=r[0],n=r[1],i=r[2],a=t[0],s=t[1],o=t[2];return Math.abs(e-a)<=$*Math.max(1,Math.abs(e),Math.abs(a))&&Math.abs(n-s)<=$*Math.max(1,Math.abs(n),Math.abs(s))&&Math.abs(i-o)<=$*Math.max(1,Math.abs(i),Math.abs(o))}var cs=Oe,Li=null,qr=null,Ba=jt,ba=null,la=ae,xa=null,$r=function(){var r=Ot();return function(t,e,n,i,a,s){var o,A;for(e||(e=3),n||(n=0),i?A=Math.min(i*e+n,t.length):A=t.length,o=n;o0&&(s=1/Math.sqrt(s)),r[0]=e*s,r[1]=n*s,r[2]=i*s,r[3]=a*s,r}function Y(r,t){return r[0]*t[0]+r[1]*t[1]+r[2]*t[2]+r[3]*t[3]}function C(r,t,e,n){var i=e[0]*n[1]-e[1]*n[0],a=e[0]*n[2]-e[2]*n[0],s=e[0]*n[3]-e[3]*n[0],o=e[1]*n[2]-e[2]*n[1],A=e[1]*n[3]-e[3]*n[1],l=e[2]*n[3]-e[3]*n[2],c=t[0],u=t[1],h=t[2],d=t[3];return r[0]=u*l-h*A+d*o,r[1]=-(c*l)+h*s-d*a,r[2]=c*A-u*s+d*i,r[3]=-(c*o)+u*a-h*i,r}function S(r,t,e,n){var i=t[0],a=t[1],s=t[2],o=t[3];return r[0]=i+n*(e[0]-i),r[1]=a+n*(e[1]-a),r[2]=s+n*(e[2]-s),r[3]=o+n*(e[3]-o),r}function w(r,t){t=t===void 0?1:t;var e,n,i,a,s,o,A;A=glMatrix.RANDOM(),e=A*2-1,n=(4*glMatrix.RANDOM()-2)*Math.sqrt(A*-A+A),s=e*e+n*n,A=glMatrix.RANDOM(),i=A*2-1,a=(4*glMatrix.RANDOM()-2)*Math.sqrt(A*-A+A),o=i*i+a*a;var l=Math.sqrt((1-s)/o);return r[0]=t*e,r[1]=t*n,r[2]=t*i*l,r[3]=t*a*l,r}function M(r,t,e){var n=t[0],i=t[1],a=t[2],s=t[3];return r[0]=e[0]*n+e[4]*i+e[8]*a+e[12]*s,r[1]=e[1]*n+e[5]*i+e[9]*a+e[13]*s,r[2]=e[2]*n+e[6]*i+e[10]*a+e[14]*s,r[3]=e[3]*n+e[7]*i+e[11]*a+e[15]*s,r}function k(r,t,e){var n=e[0],i=e[1],a=e[2],s=e[3],o=t[0],A=t[1],l=t[2],c=i*l-a*A,u=a*o-n*l,h=n*A-i*o;return c=c+c,u=u+u,h=h+h,r[0]=o+s*c+i*h-a*u,r[1]=A+s*u+a*c-n*h,r[2]=l+s*h+n*u-i*c,r[3]=t[3],r}function nt(r){return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r}function rt(r){return"vec4("+r[0]+", "+r[1]+", "+r[2]+", "+r[3]+")"}function ot(r,t){return r[0]===t[0]&&r[1]===t[1]&&r[2]===t[2]&&r[3]===t[3]}function At(r,t){var e=r[0],n=r[1],i=r[2],a=r[3],s=t[0],o=t[1],A=t[2],l=t[3];return Math.abs(e-s)<=glMatrix.EPSILON*Math.max(1,Math.abs(e),Math.abs(s))&&Math.abs(n-o)<=glMatrix.EPSILON*Math.max(1,Math.abs(n),Math.abs(o))&&Math.abs(i-A)<=glMatrix.EPSILON*Math.max(1,Math.abs(i),Math.abs(A))&&Math.abs(a-l)<=glMatrix.EPSILON*Math.max(1,Math.abs(a),Math.abs(l))}var It=null,vt=null,Zt=null,ce=null,Ht=null,qt=null,Ce=null,Et=function(){var r=Ar();return function(t,e,n,i,a,s){var o,A;for(e||(e=4),n||(n=0),i?A=Math.min(i*e+n,t.length):A=t.length,o=n;o0?(e[0]=(o*s+c*n+A*a-l*i)*2/u,e[1]=(A*s+c*i+l*n-o*a)*2/u,e[2]=(l*s+c*a+o*i-A*n)*2/u):(e[0]=(o*s+c*n+A*a-l*i)*2,e[1]=(A*s+c*i+l*n-o*a)*2,e[2]=(l*s+c*a+o*i-A*n)*2),ti(r,t,e),r}function Pn(r,t){return r[0]=t[12],r[1]=t[13],r[2]=t[14],r}function Ds(r,t){var e=t[0],n=t[1],i=t[2],a=t[4],s=t[5],o=t[6],A=t[8],l=t[9],c=t[10];return r[0]=Math.sqrt(e*e+n*n+i*i),r[1]=Math.sqrt(a*a+s*s+o*o),r[2]=Math.sqrt(A*A+l*l+c*c),r}function Xo(r,t){var e=new ct(3);Ds(e,t);var n=1/e[0],i=1/e[1],a=1/e[2],s=t[0]*n,o=t[1]*i,A=t[2]*a,l=t[4]*n,c=t[5]*i,u=t[6]*a,h=t[8]*n,d=t[9]*i,f=t[10]*a,g=s+c+f,v=0;return g>0?(v=Math.sqrt(g+1)*2,r[3]=.25*v,r[0]=(u-d)/v,r[1]=(h-A)/v,r[2]=(o-l)/v):s>c&&s>f?(v=Math.sqrt(1+s-c-f)*2,r[3]=(u-d)/v,r[0]=.25*v,r[1]=(o+l)/v,r[2]=(h+A)/v):c>f?(v=Math.sqrt(1+c-s-f)*2,r[3]=(h-A)/v,r[0]=(o+l)/v,r[1]=.25*v,r[2]=(u+d)/v):(v=Math.sqrt(1+f-s-c)*2,r[3]=(o-l)/v,r[0]=(h+A)/v,r[1]=(u+d)/v,r[2]=.25*v),r}function uu(r,t,e,n){t[0]=n[12],t[1]=n[13],t[2]=n[14];var i=n[0],a=n[1],s=n[2],o=n[4],A=n[5],l=n[6],c=n[8],u=n[9],h=n[10];e[0]=Math.sqrt(i*i+a*a+s*s),e[1]=Math.sqrt(o*o+A*A+l*l),e[2]=Math.sqrt(c*c+u*u+h*h);var d=1/e[0],f=1/e[1],g=1/e[2],v=i*d,p=a*f,y=s*g,x=o*d,F=A*f,O=l*g,L=c*d,U=u*f,R=h*g,j=v+F+R,q=0;return j>0?(q=Math.sqrt(j+1)*2,r[3]=.25*q,r[0]=(O-U)/q,r[1]=(L-y)/q,r[2]=(p-x)/q):v>F&&v>R?(q=Math.sqrt(1+v-F-R)*2,r[3]=(O-U)/q,r[0]=.25*q,r[1]=(p+x)/q,r[2]=(L+y)/q):F>R?(q=Math.sqrt(1+F-v-R)*2,r[3]=(L-y)/q,r[0]=(p+x)/q,r[1]=.25*q,r[2]=(O+U)/q):(q=Math.sqrt(1+R-v-F)*2,r[3]=(p-x)/q,r[0]=(L+y)/q,r[1]=(O+U)/q,r[2]=.25*q),r}function go(r,t,e,n){var i=t[0],a=t[1],s=t[2],o=t[3],A=i+i,l=a+a,c=s+s,u=i*A,h=i*l,d=i*c,f=a*l,g=a*c,v=s*c,p=o*A,y=o*l,x=o*c,F=n[0],O=n[1],L=n[2];return r[0]=(1-(f+v))*F,r[1]=(h+x)*F,r[2]=(d-y)*F,r[3]=0,r[4]=(h-x)*O,r[5]=(1-(u+v))*O,r[6]=(g+p)*O,r[7]=0,r[8]=(d+y)*L,r[9]=(g-p)*L,r[10]=(1-(u+f))*L,r[11]=0,r[12]=e[0],r[13]=e[1],r[14]=e[2],r[15]=1,r}function vo(r,t,e,n,i){var a=t[0],s=t[1],o=t[2],A=t[3],l=a+a,c=s+s,u=o+o,h=a*l,d=a*c,f=a*u,g=s*c,v=s*u,p=o*u,y=A*l,x=A*c,F=A*u,O=n[0],L=n[1],U=n[2],R=i[0],j=i[1],q=i[2],et=(1-(g+p))*O,it=(d+F)*O,dt=(f-x)*O,ft=(d-F)*L,mt=(1-(h+p))*L,Rt=(v+y)*L,Qt=(f+x)*U,yt=(v-y)*U,xt=(1-(h+g))*U;return r[0]=et,r[1]=it,r[2]=dt,r[3]=0,r[4]=ft,r[5]=mt,r[6]=Rt,r[7]=0,r[8]=Qt,r[9]=yt,r[10]=xt,r[11]=0,r[12]=e[0]+R-(et*R+ft*j+Qt*q),r[13]=e[1]+j-(it*R+mt*j+yt*q),r[14]=e[2]+q-(dt*R+Rt*j+xt*q),r[15]=1,r}function KA(r,t){var e=t[0],n=t[1],i=t[2],a=t[3],s=e+e,o=n+n,A=i+i,l=e*s,c=n*s,u=n*o,h=i*s,d=i*o,f=i*A,g=a*s,v=a*o,p=a*A;return r[0]=1-u-f,r[1]=c+p,r[2]=h-v,r[3]=0,r[4]=c-p,r[5]=1-l-f,r[6]=d+g,r[7]=0,r[8]=h+v,r[9]=d-g,r[10]=1-l-u,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function hu(r,t,e,n,i,a,s){var o=1/(e-t),A=1/(i-n),l=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*A,r[6]=0,r[7]=0,r[8]=(e+t)*o,r[9]=(i+n)*A,r[10]=(s+a)*l,r[11]=-1,r[12]=0,r[13]=0,r[14]=s*a*2*l,r[15]=0,r}function Xl(r,t,e,n,i){var a=1/Math.tan(t/2);if(r[0]=a/e,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){var s=1/(n-i);r[10]=(i+n)*s,r[14]=2*i*n*s}else r[10]=-1,r[14]=-2*n;return r}var du=Xl;function cv(r,t,e,n,i){var a=1/Math.tan(t/2);if(r[0]=a/e,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){var s=1/(n-i);r[10]=i*s,r[14]=i*n*s}else r[10]=-1,r[14]=-n;return r}function Za(r,t,e,n){var i=Math.tan(t.upDegrees*Math.PI/180),a=Math.tan(t.downDegrees*Math.PI/180),s=Math.tan(t.leftDegrees*Math.PI/180),o=Math.tan(t.rightDegrees*Math.PI/180),A=2/(s+o),l=2/(i+a);return r[0]=A,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=l,r[6]=0,r[7]=0,r[8]=-((s-o)*A*.5),r[9]=(i-a)*l*.5,r[10]=n/(e-n),r[11]=-1,r[12]=0,r[13]=0,r[14]=n*e/(e-n),r[15]=0,r}function fu(r,t,e,n,i,a,s){var o=1/(t-e),A=1/(n-i),l=1/(a-s);return r[0]=-2*o,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=-2*A,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=2*l,r[11]=0,r[12]=(t+e)*o,r[13]=(i+n)*A,r[14]=(s+a)*l,r[15]=1,r}var gu=fu;function vu(r,t,e,n,i,a,s){var o=1/(t-e),A=1/(n-i),l=1/(a-s);return r[0]=-2*o,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=-2*A,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=l,r[11]=0,r[12]=(t+e)*o,r[13]=(i+n)*A,r[14]=a*l,r[15]=1,r}function rd(r,t,e,n){var i,a,s,o,A,l,c,u,h,d,f=t[0],g=t[1],v=t[2],p=n[0],y=n[1],x=n[2],F=e[0],O=e[1],L=e[2];return Math.abs(f-F)<$&&Math.abs(g-O)<$&&Math.abs(v-L)<$?Ie(r):(c=f-F,u=g-O,h=v-L,d=1/Math.sqrt(c*c+u*u+h*h),c*=d,u*=d,h*=d,i=y*h-x*u,a=x*c-p*h,s=p*u-y*c,d=Math.sqrt(i*i+a*a+s*s),d?(d=1/d,i*=d,a*=d,s*=d):(i=0,a=0,s=0),o=u*s-h*a,A=h*i-c*s,l=c*a-u*i,d=Math.sqrt(o*o+A*A+l*l),d?(d=1/d,o*=d,A*=d,l*=d):(o=0,A=0,l=0),r[0]=i,r[1]=o,r[2]=c,r[3]=0,r[4]=a,r[5]=A,r[6]=u,r[7]=0,r[8]=s,r[9]=l,r[10]=h,r[11]=0,r[12]=-(i*f+a*g+s*v),r[13]=-(o*f+A*g+l*v),r[14]=-(c*f+u*g+h*v),r[15]=1,r)}function uv(r,t,e,n){var i=t[0],a=t[1],s=t[2],o=n[0],A=n[1],l=n[2],c=i-e[0],u=a-e[1],h=s-e[2],d=c*c+u*u+h*h;d>0&&(d=1/Math.sqrt(d),c*=d,u*=d,h*=d);var f=A*h-l*u,g=l*c-o*h,v=o*u-A*c;return d=f*f+g*g+v*v,d>0&&(d=1/Math.sqrt(d),f*=d,g*=d,v*=d),r[0]=f,r[1]=g,r[2]=v,r[3]=0,r[4]=u*v-h*g,r[5]=h*f-c*v,r[6]=c*g-u*f,r[7]=0,r[8]=c,r[9]=u,r[10]=h,r[11]=0,r[12]=i,r[13]=a,r[14]=s,r[15]=1,r}function hv(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 id(r){return Math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]+r[3]*r[3]+r[4]*r[4]+r[5]*r[5]+r[6]*r[6]+r[7]*r[7]+r[8]*r[8]+r[9]*r[9]+r[10]*r[10]+r[11]*r[11]+r[12]*r[12]+r[13]*r[13]+r[14]*r[14]+r[15]*r[15])}function ad(r,t,e){return r[0]=t[0]+e[0],r[1]=t[1]+e[1],r[2]=t[2]+e[2],r[3]=t[3]+e[3],r[4]=t[4]+e[4],r[5]=t[5]+e[5],r[6]=t[6]+e[6],r[7]=t[7]+e[7],r[8]=t[8]+e[8],r[9]=t[9]+e[9],r[10]=t[10]+e[10],r[11]=t[11]+e[11],r[12]=t[12]+e[12],r[13]=t[13]+e[13],r[14]=t[14]+e[14],r[15]=t[15]+e[15],r}function pu(r,t,e){return r[0]=t[0]-e[0],r[1]=t[1]-e[1],r[2]=t[2]-e[2],r[3]=t[3]-e[3],r[4]=t[4]-e[4],r[5]=t[5]-e[5],r[6]=t[6]-e[6],r[7]=t[7]-e[7],r[8]=t[8]-e[8],r[9]=t[9]-e[9],r[10]=t[10]-e[10],r[11]=t[11]-e[11],r[12]=t[12]-e[12],r[13]=t[13]-e[13],r[14]=t[14]-e[14],r[15]=t[15]-e[15],r}function dv(r,t,e){return r[0]=t[0]*e,r[1]=t[1]*e,r[2]=t[2]*e,r[3]=t[3]*e,r[4]=t[4]*e,r[5]=t[5]*e,r[6]=t[6]*e,r[7]=t[7]*e,r[8]=t[8]*e,r[9]=t[9]*e,r[10]=t[10]*e,r[11]=t[11]*e,r[12]=t[12]*e,r[13]=t[13]*e,r[14]=t[14]*e,r[15]=t[15]*e,r}function fv(r,t,e,n){return r[0]=t[0]+e[0]*n,r[1]=t[1]+e[1]*n,r[2]=t[2]+e[2]*n,r[3]=t[3]+e[3]*n,r[4]=t[4]+e[4]*n,r[5]=t[5]+e[5]*n,r[6]=t[6]+e[6]*n,r[7]=t[7]+e[7]*n,r[8]=t[8]+e[8]*n,r[9]=t[9]+e[9]*n,r[10]=t[10]+e[10]*n,r[11]=t[11]+e[11]*n,r[12]=t[12]+e[12]*n,r[13]=t[13]+e[13]*n,r[14]=t[14]+e[14]*n,r[15]=t[15]+e[15]*n,r}function Kr(r,t){return r[0]===t[0]&&r[1]===t[1]&&r[2]===t[2]&&r[3]===t[3]&&r[4]===t[4]&&r[5]===t[5]&&r[6]===t[6]&&r[7]===t[7]&&r[8]===t[8]&&r[9]===t[9]&&r[10]===t[10]&&r[11]===t[11]&&r[12]===t[12]&&r[13]===t[13]&&r[14]===t[14]&&r[15]===t[15]}function gv(r,t){var e=r[0],n=r[1],i=r[2],a=r[3],s=r[4],o=r[5],A=r[6],l=r[7],c=r[8],u=r[9],h=r[10],d=r[11],f=r[12],g=r[13],v=r[14],p=r[15],y=t[0],x=t[1],F=t[2],O=t[3],L=t[4],U=t[5],R=t[6],j=t[7],q=t[8],et=t[9],it=t[10],dt=t[11],ft=t[12],mt=t[13],Rt=t[14],Qt=t[15];return Math.abs(e-y)<=$*Math.max(1,Math.abs(e),Math.abs(y))&&Math.abs(n-x)<=$*Math.max(1,Math.abs(n),Math.abs(x))&&Math.abs(i-F)<=$*Math.max(1,Math.abs(i),Math.abs(F))&&Math.abs(a-O)<=$*Math.max(1,Math.abs(a),Math.abs(O))&&Math.abs(s-L)<=$*Math.max(1,Math.abs(s),Math.abs(L))&&Math.abs(o-U)<=$*Math.max(1,Math.abs(o),Math.abs(U))&&Math.abs(A-R)<=$*Math.max(1,Math.abs(A),Math.abs(R))&&Math.abs(l-j)<=$*Math.max(1,Math.abs(l),Math.abs(j))&&Math.abs(c-q)<=$*Math.max(1,Math.abs(c),Math.abs(q))&&Math.abs(u-et)<=$*Math.max(1,Math.abs(u),Math.abs(et))&&Math.abs(h-it)<=$*Math.max(1,Math.abs(h),Math.abs(it))&&Math.abs(d-dt)<=$*Math.max(1,Math.abs(d),Math.abs(dt))&&Math.abs(f-ft)<=$*Math.max(1,Math.abs(f),Math.abs(ft))&&Math.abs(g-mt)<=$*Math.max(1,Math.abs(g),Math.abs(mt))&&Math.abs(v-Rt)<=$*Math.max(1,Math.abs(v),Math.abs(Rt))&&Math.abs(p-Qt)<=$*Math.max(1,Math.abs(p),Math.abs(Qt))}var po=ue,vv=pu;function sd(){var r=new ct(9);return ct!=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 pv(r,t){return r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=t[4],r[4]=t[5],r[5]=t[6],r[6]=t[8],r[7]=t[9],r[8]=t[10],r}function vw(r){var t=new glMatrix.ARRAY_TYPE(9);return t[0]=r[0],t[1]=r[1],t[2]=r[2],t[3]=r[3],t[4]=r[4],t[5]=r[5],t[6]=r[6],t[7]=r[7],t[8]=r[8],t}function mu(r,t){return r[0]=t[0],r[1]=t[1],r[2]=t[2],r[3]=t[3],r[4]=t[4],r[5]=t[5],r[6]=t[6],r[7]=t[7],r[8]=t[8],r}function Jl(r,t,e,n,i,a,s,o,A){var l=new ct(9);return l[0]=r,l[1]=t,l[2]=e,l[3]=n,l[4]=i,l[5]=a,l[6]=s,l[7]=o,l[8]=A,l}function mv(r,t,e,n,i,a,s,o,A,l){return r[0]=t,r[1]=e,r[2]=n,r[3]=i,r[4]=a,r[5]=s,r[6]=o,r[7]=A,r[8]=l,r}function pw(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 mo(r,t){if(r===t){var e=t[1],n=t[2],i=t[5];r[1]=t[3],r[2]=t[6],r[3]=e,r[5]=t[7],r[6]=n,r[7]=i}else r[0]=t[0],r[1]=t[3],r[2]=t[6],r[3]=t[1],r[4]=t[4],r[5]=t[7],r[6]=t[2],r[7]=t[5],r[8]=t[8];return r}function yu(r,t){var e=t[0],n=t[1],i=t[2],a=t[3],s=t[4],o=t[5],A=t[6],l=t[7],c=t[8],u=c*s-o*l,h=-c*a+o*A,d=l*a-s*A,f=e*u+n*h+i*d;return f?(f=1/f,r[0]=u*f,r[1]=(-c*n+i*l)*f,r[2]=(o*n-i*s)*f,r[3]=h*f,r[4]=(c*e-i*A)*f,r[5]=(-o*e+i*a)*f,r[6]=d*f,r[7]=(-l*e+n*A)*f,r[8]=(s*e-n*a)*f,r):null}function od(r,t){var e=t[0],n=t[1],i=t[2],a=t[3],s=t[4],o=t[5],A=t[6],l=t[7],c=t[8];return r[0]=s*c-o*l,r[1]=i*l-n*c,r[2]=n*o-i*s,r[3]=o*A-a*c,r[4]=e*c-i*A,r[5]=i*a-e*o,r[6]=a*l-s*A,r[7]=n*A-e*l,r[8]=e*s-n*a,r}function mw(r){var t=r[0],e=r[1],n=r[2],i=r[3],a=r[4],s=r[5],o=r[6],A=r[7],l=r[8];return t*(l*a-s*A)+e*(-l*i+s*o)+n*(A*i-a*o)}function yw(r,t,e){var n=t[0],i=t[1],a=t[2],s=t[3],o=t[4],A=t[5],l=t[6],c=t[7],u=t[8],h=e[0],d=e[1],f=e[2],g=e[3],v=e[4],p=e[5],y=e[6],x=e[7],F=e[8];return r[0]=h*n+d*s+f*l,r[1]=h*i+d*o+f*c,r[2]=h*a+d*A+f*u,r[3]=g*n+v*s+p*l,r[4]=g*i+v*o+p*c,r[5]=g*a+v*A+p*u,r[6]=y*n+x*s+F*l,r[7]=y*i+x*o+F*c,r[8]=y*a+x*A+F*u,r}function ww(r,t,e){var n=t[0],i=t[1],a=t[2],s=t[3],o=t[4],A=t[5],l=t[6],c=t[7],u=t[8],h=e[0],d=e[1];return r[0]=n,r[1]=i,r[2]=a,r[3]=s,r[4]=o,r[5]=A,r[6]=h*n+d*s+l,r[7]=h*i+d*o+c,r[8]=h*a+d*A+u,r}function Ew(r,t,e){var n=t[0],i=t[1],a=t[2],s=t[3],o=t[4],A=t[5],l=t[6],c=t[7],u=t[8],h=Math.sin(e),d=Math.cos(e);return r[0]=d*n+h*s,r[1]=d*i+h*o,r[2]=d*a+h*A,r[3]=d*s-h*n,r[4]=d*o-h*i,r[5]=d*A-h*a,r[6]=l,r[7]=c,r[8]=u,r}function Bw(r,t,e){var n=e[0],i=e[1];return r[0]=n*t[0],r[1]=n*t[1],r[2]=n*t[2],r[3]=i*t[3],r[4]=i*t[4],r[5]=i*t[5],r[6]=t[6],r[7]=t[7],r[8]=t[8],r}function bw(r,t){return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=1,r[5]=0,r[6]=t[0],r[7]=t[1],r[8]=1,r}function xw(r,t){var e=Math.sin(t),n=Math.cos(t);return r[0]=n,r[1]=e,r[2]=0,r[3]=-e,r[4]=n,r[5]=0,r[6]=0,r[7]=0,r[8]=1,r}function Cw(r,t){return r[0]=t[0],r[1]=0,r[2]=0,r[3]=0,r[4]=t[1],r[5]=0,r[6]=0,r[7]=0,r[8]=1,r}function Sw(r,t){return r[0]=t[0],r[1]=t[1],r[2]=0,r[3]=t[2],r[4]=t[3],r[5]=0,r[6]=t[4],r[7]=t[5],r[8]=1,r}function Mw(r,t){var e=t[0],n=t[1],i=t[2],a=t[3],s=e+e,o=n+n,A=i+i,l=e*s,c=n*s,u=n*o,h=i*s,d=i*o,f=i*A,g=a*s,v=a*o,p=a*A;return r[0]=1-u-f,r[3]=c-p,r[6]=h+v,r[1]=c+p,r[4]=1-l-f,r[7]=d-g,r[2]=h-v,r[5]=d+g,r[8]=1-l-u,r}function Fw(r,t){var e=t[0],n=t[1],i=t[2],a=t[3],s=t[4],o=t[5],A=t[6],l=t[7],c=t[8],u=t[9],h=t[10],d=t[11],f=t[12],g=t[13],v=t[14],p=t[15],y=e*o-n*s,x=e*A-i*s,F=e*l-a*s,O=n*A-i*o,L=n*l-a*o,U=i*l-a*A,R=c*g-u*f,j=c*v-h*f,q=c*p-d*f,et=u*v-h*g,it=u*p-d*g,dt=h*p-d*v,ft=y*dt-x*it+F*et+O*q-L*j+U*R;return ft?(ft=1/ft,r[0]=(o*dt-A*it+l*et)*ft,r[1]=(A*q-s*dt-l*j)*ft,r[2]=(s*it-o*q+l*R)*ft,r[3]=(i*it-n*dt-a*et)*ft,r[4]=(e*dt-i*q+a*j)*ft,r[5]=(n*q-e*it-a*R)*ft,r[6]=(g*U-v*L+p*O)*ft,r[7]=(v*F-f*U-p*x)*ft,r[8]=(f*L-g*F+p*y)*ft,r):null}function Tw(r,t,e){return r[0]=2/t,r[1]=0,r[2]=0,r[3]=0,r[4]=-2/e,r[5]=0,r[6]=-1,r[7]=1,r[8]=1,r}function wu(r){return"mat3("+r[0]+", "+r[1]+", "+r[2]+", "+r[3]+", "+r[4]+", "+r[5]+", "+r[6]+", "+r[7]+", "+r[8]+")"}function Ow(r){return Math.sqrt(r[0]*r[0]+r[1]*r[1]+r[2]*r[2]+r[3]*r[3]+r[4]*r[4]+r[5]*r[5]+r[6]*r[6]+r[7]*r[7]+r[8]*r[8])}function Iw(r,t,e){return r[0]=t[0]+e[0],r[1]=t[1]+e[1],r[2]=t[2]+e[2],r[3]=t[3]+e[3],r[4]=t[4]+e[4],r[5]=t[5]+e[5],r[6]=t[6]+e[6],r[7]=t[7]+e[7],r[8]=t[8]+e[8],r}function Nw(r,t,e){return r[0]=t[0]-e[0],r[1]=t[1]-e[1],r[2]=t[2]-e[2],r[3]=t[3]-e[3],r[4]=t[4]-e[4],r[5]=t[5]-e[5],r[6]=t[6]-e[6],r[7]=t[7]-e[7],r[8]=t[8]-e[8],r}function Lw(r,t,e){return r[0]=t[0]*e,r[1]=t[1]*e,r[2]=t[2]*e,r[3]=t[3]*e,r[4]=t[4]*e,r[5]=t[5]*e,r[6]=t[6]*e,r[7]=t[7]*e,r[8]=t[8]*e,r}function kw(r,t,e,n){return r[0]=t[0]+e[0]*n,r[1]=t[1]+e[1]*n,r[2]=t[2]+e[2]*n,r[3]=t[3]+e[3]*n,r[4]=t[4]+e[4]*n,r[5]=t[5]+e[5]*n,r[6]=t[6]+e[6]*n,r[7]=t[7]+e[7]*n,r[8]=t[8]+e[8]*n,r}function Qw(r,t){return r[0]===t[0]&&r[1]===t[1]&&r[2]===t[2]&&r[3]===t[3]&&r[4]===t[4]&&r[5]===t[5]&&r[6]===t[6]&&r[7]===t[7]&&r[8]===t[8]}function Uw(r,t){var e=r[0],n=r[1],i=r[2],a=r[3],s=r[4],o=r[5],A=r[6],l=r[7],c=r[8],u=t[0],h=t[1],d=t[2],f=t[3],g=t[4],v=t[5],p=t[6],y=t[7],x=t[8];return Math.abs(e-u)<=glMatrix.EPSILON*Math.max(1,Math.abs(e),Math.abs(u))&&Math.abs(n-h)<=glMatrix.EPSILON*Math.max(1,Math.abs(n),Math.abs(h))&&Math.abs(i-d)<=glMatrix.EPSILON*Math.max(1,Math.abs(i),Math.abs(d))&&Math.abs(a-f)<=glMatrix.EPSILON*Math.max(1,Math.abs(a),Math.abs(f))&&Math.abs(s-g)<=glMatrix.EPSILON*Math.max(1,Math.abs(s),Math.abs(g))&&Math.abs(o-v)<=glMatrix.EPSILON*Math.max(1,Math.abs(o),Math.abs(v))&&Math.abs(A-p)<=glMatrix.EPSILON*Math.max(1,Math.abs(A),Math.abs(p))&&Math.abs(l-y)<=glMatrix.EPSILON*Math.max(1,Math.abs(l),Math.abs(y))&&Math.abs(c-x)<=glMatrix.EPSILON*Math.max(1,Math.abs(c),Math.abs(x))}var Rw=null,Ad=null;function Br(){var r=new ct(4);return ct!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r[3]=1,r}function yv(r){return r[0]=0,r[1]=0,r[2]=0,r[3]=1,r}function ca(r,t,e){e=e*.5;var n=Math.sin(e);return r[0]=n*t[0],r[1]=n*t[1],r[2]=n*t[2],r[3]=Math.cos(e),r}function VA(r,t){var e=Math.acos(t[3])*2,n=Math.sin(e/2);return n>glMatrix.EPSILON?(r[0]=t[0]/n,r[1]=t[1]/n,r[2]=t[2]/n):(r[0]=1,r[1]=0,r[2]=0),e}function $n(r,t){var e=Hs(r,t);return Math.acos(2*e*e-1)}function Ps(r,t,e){var n=t[0],i=t[1],a=t[2],s=t[3],o=e[0],A=e[1],l=e[2],c=e[3];return r[0]=n*c+s*o+i*l-a*A,r[1]=i*c+s*A+a*o-n*l,r[2]=a*c+s*l+n*A-i*o,r[3]=s*c-n*o-i*A-a*l,r}function ld(r,t,e){e*=.5;var n=t[0],i=t[1],a=t[2],s=t[3],o=Math.sin(e),A=Math.cos(e);return r[0]=n*A+s*o,r[1]=i*A+a*o,r[2]=a*A-i*o,r[3]=s*A-n*o,r}function wv(r,t,e){e*=.5;var n=t[0],i=t[1],a=t[2],s=t[3],o=Math.sin(e),A=Math.cos(e);return r[0]=n*A-a*o,r[1]=i*A+s*o,r[2]=a*A+n*o,r[3]=s*A-i*o,r}function WA(r,t,e){e*=.5;var n=t[0],i=t[1],a=t[2],s=t[3],o=Math.sin(e),A=Math.cos(e);return r[0]=n*A+i*o,r[1]=i*A-n*o,r[2]=a*A+s*o,r[3]=s*A-a*o,r}function us(r,t){var e=t[0],n=t[1],i=t[2];return r[0]=e,r[1]=n,r[2]=i,r[3]=Math.sqrt(Math.abs(1-e*e-n*n-i*i)),r}function Ev(r,t){var e=t[0],n=t[1],i=t[2],a=t[3],s=Math.sqrt(e*e+n*n+i*i),o=Math.exp(a),A=s>0?o*Math.sin(s)/s:0;return r[0]=e*A,r[1]=n*A,r[2]=i*A,r[3]=o*Math.cos(s),r}function _s(r,t){var e=t[0],n=t[1],i=t[2],a=t[3],s=Math.sqrt(e*e+n*n+i*i),o=s>0?Math.atan2(s,a)/s:0;return r[0]=e*o,r[1]=n*o,r[2]=i*o,r[3]=.5*Math.log(e*e+n*n+i*i+a*a),r}function Ur(r,t,e){return _s(r,t),ua(r,r,e),Ev(r,r),r}function ql(r,t,e,n){var i=t[0],a=t[1],s=t[2],o=t[3],A=e[0],l=e[1],c=e[2],u=e[3],h,d,f,g,v;return d=i*A+a*l+s*c+o*u,d<0&&(d=-d,A=-A,l=-l,c=-c,u=-u),1-d>$?(h=Math.acos(d),f=Math.sin(h),g=Math.sin((1-n)*h)/f,v=Math.sin(n*h)/f):(g=1-n,v=n),r[0]=g*i+v*A,r[1]=g*a+v*l,r[2]=g*s+v*c,r[3]=g*o+v*u,r}function gi(r){var t=glMatrix.RANDOM(),e=glMatrix.RANDOM(),n=glMatrix.RANDOM(),i=Math.sqrt(1-t),a=Math.sqrt(t);return r[0]=i*Math.sin(2*Math.PI*e),r[1]=i*Math.cos(2*Math.PI*e),r[2]=a*Math.sin(2*Math.PI*n),r[3]=a*Math.cos(2*Math.PI*n),r}function jA(r,t){var e=t[0],n=t[1],i=t[2],a=t[3],s=e*e+n*n+i*i+a*a,o=s?1/s:0;return r[0]=-e*o,r[1]=-n*o,r[2]=-i*o,r[3]=a*o,r}function yo(r,t){return r[0]=-t[0],r[1]=-t[1],r[2]=-t[2],r[3]=t[3],r}function ZA(r,t){var e=t[0]+t[4]+t[8],n;if(e>0)n=Math.sqrt(e+1),r[3]=.5*n,n=.5/n,r[0]=(t[5]-t[7])*n,r[1]=(t[6]-t[2])*n,r[2]=(t[1]-t[3])*n;else{var i=0;t[4]>t[0]&&(i=1),t[8]>t[i*3+i]&&(i=2);var a=(i+1)%3,s=(i+2)%3;n=Math.sqrt(t[i*3+i]-t[a*3+a]-t[s*3+s]+1),r[i]=.5*n,n=.5/n,r[3]=(t[a*3+s]-t[s*3+a])*n,r[a]=(t[a*3+i]+t[i*3+a])*n,r[s]=(t[s*3+i]+t[i*3+s])*n}return r}function Gn(r,t,e,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:Ct,a=Math.PI/360;t*=a,n*=a,e*=a;var s=Math.sin(t),o=Math.cos(t),A=Math.sin(e),l=Math.cos(e),c=Math.sin(n),u=Math.cos(n);switch(i){case"xyz":r[0]=s*l*u+o*A*c,r[1]=o*A*u-s*l*c,r[2]=o*l*c+s*A*u,r[3]=o*l*u-s*A*c;break;case"xzy":r[0]=s*l*u-o*A*c,r[1]=o*A*u-s*l*c,r[2]=o*l*c+s*A*u,r[3]=o*l*u+s*A*c;break;case"yxz":r[0]=s*l*u+o*A*c,r[1]=o*A*u-s*l*c,r[2]=o*l*c-s*A*u,r[3]=o*l*u+s*A*c;break;case"yzx":r[0]=s*l*u+o*A*c,r[1]=o*A*u+s*l*c,r[2]=o*l*c-s*A*u,r[3]=o*l*u-s*A*c;break;case"zxy":r[0]=s*l*u-o*A*c,r[1]=o*A*u+s*l*c,r[2]=o*l*c+s*A*u,r[3]=o*l*u-s*A*c;break;case"zyx":r[0]=s*l*u-o*A*c,r[1]=o*A*u+s*l*c,r[2]=o*l*c-s*A*u,r[3]=o*l*u+s*A*c;break;default:throw new Error("Unknown angle order "+i)}return r}function Bv(r){return"quat("+r[0]+", "+r[1]+", "+r[2]+", "+r[3]+")"}var bv=jo,cd=Xi,YA=Ji,XA=fo,xv=ja,Eu=Ps,ua=Wl,Hs=Y,wo=S,ni=Ca,Eo=null,Cv=zA,Sv=null,Jo=Yl,Mv=ot;function Dw(r,t){return Math.abs(vec4.dot(r,t))>=1-glMatrix.EPSILON}var $l=function(){var r=Ot(),t=Wt(1,0,0),e=Wt(0,1,0);return function(n,i,a){var s=_e(i,a);return s<-.999999?(Me(r,t,i),la(r)<1e-6&&Me(r,e,i),be(r,r),ca(n,r,Math.PI),n):s>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(Me(r,i,a),n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=1+s,Jo(n,n))}}(),Gs=function(){var r=Br(),t=Br();return function(e,n,i,a,s,o){return ql(r,n,s,o),ql(t,i,a,o),ql(e,r,t,2*o*(1-o)),e}}(),Pw=function(){var r=sd();return function(t,e,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]=-e[0],r[5]=-e[1],r[8]=-e[2],Jo(t,ZA(t,r))}}();function Bu(){var r=new ct(2);return ct!=Float32Array&&(r[0]=0,r[1]=0),r}function bu(r){var t=new glMatrix.ARRAY_TYPE(2);return t[0]=r[0],t[1]=r[1],t}function Fv(r,t){var e=new glMatrix.ARRAY_TYPE(2);return e[0]=r,e[1]=t,e}function Tv(r,t){return r[0]=t[0],r[1]=t[1],r}function Ov(r,t,e){return r[0]=t,r[1]=e,r}function Ya(r,t,e){return r[0]=t[0]+e[0],r[1]=t[1]+e[1],r}function Iv(r,t,e){return r[0]=t[0]-e[0],r[1]=t[1]-e[1],r}function _w(r,t,e){return r[0]=t[0]*e[0],r[1]=t[1]*e[1],r}function Hw(r,t,e){return r[0]=t[0]/e[0],r[1]=t[1]/e[1],r}function xu(r,t){return r[0]=Math.ceil(t[0]),r[1]=Math.ceil(t[1]),r}function Gw(r,t){return r[0]=Math.floor(t[0]),r[1]=Math.floor(t[1]),r}function Nv(r,t,e){return r[0]=Math.min(t[0],e[0]),r[1]=Math.min(t[1],e[1]),r}function Lv(r,t,e){return r[0]=Math.max(t[0],e[0]),r[1]=Math.max(t[1],e[1]),r}function kv(r,t){return r[0]=glMatrix.round(t[0]),r[1]=glMatrix.round(t[1]),r}function Qv(r,t,e){return r[0]=t[0]*e,r[1]=t[1]*e,r}function Uv(r,t,e,n){return r[0]=t[0]+e[0]*n,r[1]=t[1]+e[1]*n,r}function Rv(r,t){var e=t[0]-r[0],n=t[1]-r[1];return Math.sqrt(e*e+n*n)}function Dv(r,t){var e=t[0]-r[0],n=t[1]-r[1];return e*e+n*n}function Pv(r){var t=r[0],e=r[1];return Math.sqrt(t*t+e*e)}function zw(r){var t=r[0],e=r[1];return t*t+e*e}function Cu(r,t){return r[0]=-t[0],r[1]=-t[1],r}function Kw(r,t){return r[0]=1/t[0],r[1]=1/t[1],r}function _v(r,t){var e=t[0],n=t[1],i=e*e+n*n;return i>0&&(i=1/Math.sqrt(i)),r[0]=t[0]*i,r[1]=t[1]*i,r}function Su(r,t){return r[0]*t[0]+r[1]*t[1]}function Vw(r,t,e){var n=t[0]*e[1]-t[1]*e[0];return r[0]=r[1]=0,r[2]=n,r}function Hv(r,t,e,n){var i=t[0],a=t[1];return r[0]=i+n*(e[0]-i),r[1]=a+n*(e[1]-a),r}function Ww(r,t){t=t===void 0?1:t;var e=glMatrix.RANDOM()*2*Math.PI;return r[0]=Math.cos(e)*t,r[1]=Math.sin(e)*t,r}function jw(r,t,e){var n=t[0],i=t[1];return r[0]=e[0]*n+e[2]*i,r[1]=e[1]*n+e[3]*i,r}function Zw(r,t,e){var n=t[0],i=t[1];return r[0]=e[0]*n+e[2]*i+e[4],r[1]=e[1]*n+e[3]*i+e[5],r}function Yw(r,t,e){var n=t[0],i=t[1];return r[0]=e[0]*n+e[3]*i+e[6],r[1]=e[1]*n+e[4]*i+e[7],r}function Xw(r,t,e){var n=t[0],i=t[1];return r[0]=e[0]*n+e[4]*i+e[12],r[1]=e[1]*n+e[5]*i+e[13],r}function JA(r,t,e,n){var i=t[0]-e[0],a=t[1]-e[1],s=Math.sin(n),o=Math.cos(n);return r[0]=i*o-a*s+e[0],r[1]=i*s+a*o+e[1],r}function Jw(r,t){var e=r[0],n=r[1],i=t[0],a=t[1];return Math.abs(Math.atan2(n*i-e*a,e*i+n*a))}function qw(r,t){var e=r[0],n=r[1],i=t[0],a=t[1];return Math.atan2(e*a-n*i,e*i+n*a)}function Mu(r){return r[0]=0,r[1]=0,r}function $w(r){return"vec2("+r[0]+", "+r[1]+")"}function Gv(r,t){return r[0]===t[0]&&r[1]===t[1]}function tE(r,t){var e=r[0],n=r[1],i=t[0],a=t[1];return Math.abs(e-i)<=glMatrix.EPSILON*Math.max(1,Math.abs(e),Math.abs(i))&&Math.abs(n-a)<=glMatrix.EPSILON*Math.max(1,Math.abs(n),Math.abs(a))}var eE=null,Fu=null,nE=null,rE=null,iE=null,aE=null,Tu=null,sE=function(){var r=Bu();return function(t,e,n,i,a,s){var o,A;for(e||(e=2),n||(n=0),i?A=Math.min(i*e+n,t.length):A=t.length,o=n;oe?e:r},dr=zv,D=T(80813),qA={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0};function ud(r){return Array.isArray(r)&&r.every(function(t){var e=t[0].toLowerCase();return qA[e]===t.length-1&&"achlmqstvz".includes(e)})}function hd(r){return ud(r)&&r.every(function(t){var e=t[0];return e===e.toUpperCase()})}function dd(r){return hd(r)&&r.every(function(t){var e=t[0];return"ACLMQZ".includes(e)})}var fd={x1:0,y1:0,x2:0,y2:0,x:0,y:0,qx:null,qy:null};function gd(r){for(var t=r.pathValue[r.segmentStart],e=t.toLowerCase(),n=r.data;n.length>=qA[e]&&(e==="m"&&n.length>2?(r.segments.push([t].concat(n.splice(0,2))),e="l",t=t==="m"?"l":"L"):r.segments.push([t].concat(n.splice(0,qA[e]))),!!qA[e]););}function Kv(r){var t=r.index,e=r.pathValue,n=e.charCodeAt(t);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(e[t],'", expecting 0 or 1 at index ').concat(t)}function tc(r){return r>=48&&r<=57||r===43||r===45||r===46}function qo(r){return r>=48&&r<=57}function Vv(r){var t=r.max,e=r.pathValue,n=r.index,i=n,a=!1,s=!1,o=!1,A=!1,l;if(i>=t){r.err="[path-util]: Invalid path value at index ".concat(i,', "pathValue" is missing param');return}if(l=e.charCodeAt(i),(l===43||l===45)&&(i+=1,l=e.charCodeAt(i)),!qo(l)&&l!==46){r.err="[path-util]: Invalid path value at index ".concat(i,', "').concat(e[i],'" is not a number');return}if(l!==46){if(a=l===48,i+=1,l=e.charCodeAt(i),a&&i=5760&&t.includes(r)}function ec(r){for(var t=r.pathValue,e=r.max;r.index0;s-=1){if(Ou(i)&&(s===3||s===4)?Kv(r):Vv(r),r.err.length)return;r.data.push(r.param),ec(r),r.index=r.max||!tc(e.charCodeAt(r.index)))break}gd(r)}var jv=function(){function r(t){this.pathValue=t,this.segments=[],this.max=t.length,this.index=0,this.param=0,this.segmentStart=0,this.data=[],this.err=""}return r}();function Zv(r){if(ud(r))return[].concat(r);var t=new jv(r);for(ec(t);t.index=a)s={x:e,y:n};else{var o=zs([r,t],[e,n],i/a),A=o[0],l=o[1];s={x:A,y:l}}return{length:a,point:s,min:{x:Math.min(r,e),y:Math.min(t,n)},max:{x:Math.max(r,e),y:Math.max(t,n)}}}function pd(r,t){var e=r.x,n=r.y,i=t.x,a=t.y,s=e*i+n*a,o=Math.sqrt((Math.pow(e,2)+Math.pow(n,2))*(Math.pow(i,2)+Math.pow(a,2))),A=e*a-n*i<0?-1:1,l=A*Math.acos(s/o);return l}function Jv(r,t,e,n,i,a,s,o,A,l){var c=Math.abs,u=Math.sin,h=Math.cos,d=Math.sqrt,f=Math.PI,g=c(e),v=c(n),p=(i%360+360)%360,y=p*(f/180);if(r===o&&t===A)return{x:r,y:t};if(g===0||v===0)return $o(r,t,o,A,l).point;var x=(r-o)/2,F=(t-A)/2,O={x:h(y)*x+u(y)*F,y:-u(y)*x+h(y)*F},L=Math.pow(O.x,2)/Math.pow(g,2)+Math.pow(O.y,2)/Math.pow(v,2);L>1&&(g*=d(L),v*=d(L));var U=Math.pow(g,2)*Math.pow(v,2)-Math.pow(g,2)*Math.pow(O.y,2)-Math.pow(v,2)*Math.pow(O.x,2),R=Math.pow(g,2)*Math.pow(O.y,2)+Math.pow(v,2)*Math.pow(O.x,2),j=U/R;j=j<0?0:j;var q=(a!==s?1:-1)*d(j),et={x:q*(g*O.y/v),y:q*(-(v*O.x)/g)},it={x:h(y)*et.x-u(y)*et.y+(r+o)/2,y:u(y)*et.x+h(y)*et.y+(t+A)/2},dt={x:(O.x-et.x)/g,y:(O.y-et.y)/v},ft=pd({x:1,y:0},dt),mt={x:(-O.x-et.x)/g,y:(-O.y-et.y)/v},Rt=pd(dt,mt);!s&&Rt>0?Rt-=2*f:s&&Rt<0&&(Rt+=2*f),Rt%=2*f;var Qt=ft+Rt*l,yt=g*h(Qt),xt=v*u(Qt),Dt={x:h(y)*yt-u(y)*xt+it.x,y:u(y)*yt+h(y)*xt+it.y};return Dt}function qv(r,t,e,n,i,a,s,o,A,l,c){var u,h=c.bbox,d=h===void 0?!0:h,f=c.length,g=f===void 0?!0:f,v=c.sampleSize,p=v===void 0?30:v,y=typeof l=="number",x=r,F=t,O=0,L=[x,F,O],U=[x,F],R=0,j={x:0,y:0},q=[{x,y:F}];y&&l<=0&&(j={x,y:F});for(var et=0;et<=p;et+=1){if(R=et/p,u=Jv(r,t,e,n,i,a,s,o,A,R),x=u.x,F=u.y,d&&q.push({x,y:F}),g&&(O+=ki(U,[x,F])),U=[x,F],y&&O>=l&&l>L[2]){var it=(O-l)/(O-L[2]);j={x:U[0]*(1-it)+L[0]*it,y:U[1]*(1-it)+L[1]*it}}L=[x,F,O]}return y&&l>=O&&(j={x:o,y:A}),{length:O,point:j,min:{x:Math.min.apply(null,q.map(function(dt){return dt.x})),y:Math.min.apply(null,q.map(function(dt){return dt.y}))},max:{x:Math.max.apply(null,q.map(function(dt){return dt.x})),y:Math.max.apply(null,q.map(function(dt){return dt.y}))}}}function $v(r,t,e,n,i,a,s,o,A){var l=1-A;return{x:Math.pow(l,3)*r+3*Math.pow(l,2)*A*e+3*l*Math.pow(A,2)*i+Math.pow(A,3)*s,y:Math.pow(l,3)*t+3*Math.pow(l,2)*A*n+3*l*Math.pow(A,2)*a+Math.pow(A,3)*o}}function md(r,t,e,n,i,a,s,o,A,l){var c,u=l.bbox,h=u===void 0?!0:u,d=l.length,f=d===void 0?!0:d,g=l.sampleSize,v=g===void 0?10:g,p=typeof A=="number",y=r,x=t,F=0,O=[y,x,F],L=[y,x],U=0,R={x:0,y:0},j=[{x:y,y:x}];p&&A<=0&&(R={x:y,y:x});for(var q=0;q<=v;q+=1){if(U=q/v,c=$v(r,t,e,n,i,a,s,o,U),y=c.x,x=c.y,h&&j.push({x:y,y:x}),f&&(F+=ki(L,[y,x])),L=[y,x],p&&F>=A&&A>O[2]){var et=(F-A)/(F-O[2]);R={x:L[0]*(1-et)+O[0]*et,y:L[1]*(1-et)+O[1]*et}}O=[y,x,F]}return p&&A>=F&&(R={x:s,y:o}),{length:F,point:R,min:{x:Math.min.apply(null,j.map(function(it){return it.x})),y:Math.min.apply(null,j.map(function(it){return it.y}))},max:{x:Math.max.apply(null,j.map(function(it){return it.x})),y:Math.max.apply(null,j.map(function(it){return it.y}))}}}function tp(r,t,e,n,i,a,s){var o=1-s;return{x:Math.pow(o,2)*r+2*o*s*e+Math.pow(s,2)*i,y:Math.pow(o,2)*t+2*o*s*n+Math.pow(s,2)*a}}function ep(r,t,e,n,i,a,s,o){var A,l=o.bbox,c=l===void 0?!0:l,u=o.length,h=u===void 0?!0:u,d=o.sampleSize,f=d===void 0?10:d,g=typeof s=="number",v=r,p=t,y=0,x=[v,p,y],F=[v,p],O=0,L={x:0,y:0},U=[{x:v,y:p}];g&&s<=0&&(L={x:v,y:p});for(var R=0;R<=f;R+=1){if(O=R/f,A=tp(r,t,e,n,i,a,O),v=A.x,p=A.y,c&&U.push({x:v,y:p}),h&&(y+=ki(F,[v,p])),F=[v,p],g&&y>=s&&s>x[2]){var j=(y-s)/(y-x[2]);L={x:F[0]*(1-j)+x[0]*j,y:F[1]*(1-j)+x[1]*j}}x=[v,p,y]}return g&&s>=y&&(L={x:i,y:a}),{length:y,point:L,min:{x:Math.min.apply(null,U.map(function(q){return q.x})),y:Math.min.apply(null,U.map(function(q){return q.y}))},max:{x:Math.max.apply(null,U.map(function(q){return q.x})),y:Math.max.apply(null,U.map(function(q){return q.y}))}}}function yd(r,t,e){for(var n,i,a,s,o,A,l=rc(r),c=typeof t=="number",u,h=[],d,f=0,g=0,v=0,p=0,y,x=[],F=[],O=0,L={x:0,y:0},U=L,R=L,j=L,q=0,et=0,it=l.length;et=t&&(j=R),F.push(U),x.push(L),q+=O,A=d!=="Z"?y.slice(-2):[v,p],f=A[0],g=A[1];return c&&t>=q&&(j={x:f,y:g}),{length:q,point:j,min:{x:Math.min.apply(null,x.map(function(dt){return dt.x})),y:Math.min.apply(null,x.map(function(dt){return dt.y}))},max:{x:Math.max.apply(null,F.map(function(dt){return dt.x})),y:Math.max.apply(null,F.map(function(dt){return dt.y}))}}}function np(r,t){return yd(r,void 0,(0,D.pi)((0,D.pi)({},t),{bbox:!1,length:!0})).length}function Qi(r){return Array.isArray(r)}var ic=function(r){if(Qi(r))return r.reduce(function(t,e){return Math.min(t,e)},r[0])};function ac(r){if(!Array.isArray(r))return-1/0;var t=r.length;if(!t)return-1/0;for(var e=r[0],n=1;n7){r[e].shift();for(var n=r[e],i=e;n.length;)t[e]="A",r.splice(i+=1,0,["C"].concat(n.splice(0,6)));r.splice(e,1)}}function ip(r){return dd(r)&&r.every(function(t){var e=t[0];return"MC".includes(e)})}function sc(r,t,e){var n=r*Math.cos(e)-t*Math.sin(e),i=r*Math.sin(e)+t*Math.cos(e);return{x:n,y:i}}function oc(r,t,e,n,i,a,s,o,A,l){var c=r,u=t,h=e,d=n,f=o,g=A,v=Math.PI*120/180,p=Math.PI/180*(+i||0),y=[],x,F,O,L,U;if(l)F=l[0],O=l[1],L=l[2],U=l[3];else{x=sc(c,u,-p),c=x.x,u=x.y,x=sc(f,g,-p),f=x.x,g=x.y;var R=(c-f)/2,j=(u-g)/2,q=R*R/(h*h)+j*j/(d*d);q>1&&(q=Math.sqrt(q),h*=q,d*=q);var et=h*h,it=d*d,dt=(a===s?-1:1)*Math.sqrt(Math.abs((et*it-et*j*j-it*R*R)/(et*j*j+it*R*R)));L=dt*h*j/d+(c+f)/2,U=dt*-d*R/h+(u+g)/2,F=Math.asin(((u-U)/d*Math.pow(10,9)>>0)/Math.pow(10,9)),O=Math.asin(((g-U)/d*Math.pow(10,9)>>0)/Math.pow(10,9)),F=cO&&(F-=Math.PI*2),!s&&O>F&&(O-=Math.PI*2)}var ft=O-F;if(Math.abs(ft)>v){var mt=O,Rt=f,Qt=g;O=F+v*(s&&O>F?1:-1),f=L+h*Math.cos(O),g=U+d*Math.sin(O),y=oc(f,g,h,d,i,0,s,Rt,Qt,[O,mt,L,U])}ft=O-F;var yt=Math.cos(F),xt=Math.sin(F),Dt=Math.cos(O),Xt=Math.sin(O),ne=Math.tan(ft/4),le=4/3*h*ne,ge=4/3*d*ne,xe=[c,u],Qe=[c+le*xt,u-ge*yt],Pe=[f+le*Xt,g-ge*Dt],en=[f,g];if(Qe[0]=2*xe[0]-Qe[0],Qe[1]=2*xe[1]-Qe[1],l)return Qe.concat(Pe,en,y);y=Qe.concat(Pe,en,y);for(var mn=[],an=0,er=y.length;anop)return console.warn("Maximum recursion depth reached in equalizeSegments"),[r,t];var i=bd(r),a=bd(t),s=i.length,o=a.length,A=i.filter(function(p){return p.l}).length,l=a.filter(function(p){return p.l}).length,c=i.filter(function(p){return p.l}).reduce(function(p,y){var x=y.l;return p+x},0)/A||0,u=a.filter(function(p){return p.l}).reduce(function(p,y){var x=y.l;return p+x},0)/l||0,h=e||Math.max(s,o),d=[c,u],f=[h-s,h-o],g=0,v=[i,a].map(function(p,y){return p.l===h?p.map(function(x){return x.s}):p.map(function(x,F){return g=F&&f[y]&&x.l>=d[y],f[y]-=g?1:0,g?x.ss:[x.s]}).flat()});return v[0].length===v[1].length?v:xd(v[0],v[1],h,n+1)}function Rr(r,t,e,n,i,a,s,o){return 3*((o-t)*(e+i)-(s-r)*(n+a)+n*(r-i)-e*(t-a)+o*(i+r/3)-s*(a+t/3))/20}function lp(r){var t=0,e=0,n=0;return Iu(r).map(function(i){var a;switch(i[0]){case"M":return t=i[1],e=i[2],0;default:var s=i.slice(1),o=s[0],A=s[1],l=s[2],c=s[3],u=s[4],h=s[5];return n=Rr(t,e,o,A,l,c,u,h),a=i.slice(-2),t=a[0],e=a[1],n}}).reduce(function(i,a){return i+a},0)}function Cd(r){return lp(r)>=0}function cp(r){var t=r.slice(1).map(function(e,n,i){return n?i[n-1].slice(-2).concat(e.slice(1)):r[0].slice(1).concat(e.slice(1))}).map(function(e){return e.map(function(n,i){return e[e.length-i-2*(1-i%2)]})}).reverse();return[["M"].concat(t[0].slice(0,2))].concat(t.map(function(e){return["C"].concat(e.slice(2))}))}function up(r){return r.map(function(t){return Array.isArray(t)?[].concat(t):t})}function hp(r){var t=r.length,e=t-1;return r.map(function(n,i){return r.map(function(a,s){var o=i+s,A;return s===0||r[o]&&r[o][0]==="M"?(A=r[o],["M"].concat(A.slice(-2))):(o>=t&&(o-=e),r[o])})})}function Sd(r,t){var e=r.length-1,n=[],i=0,a=0,s=hp(r);return s.forEach(function(o,A){r.slice(1).forEach(function(l,c){a+=ki(r[(A+c)%e].slice(-2),t[c%e].slice(-2))}),n[A]=a,a=0}),i=n.indexOf(Math.min.apply(null,n)),s[i]}var dp=function(r){return r===void 0},Ze=dp,fp={}.toString,gp=function(r,t){return fp.call(r)==="[object "+t+"]"},Md=gp,vp=function(r){return Md(r,"Boolean")},eA=vp;function Vt(r){return typeof r=="function"}var br=function(r){var t=typeof r;return r!==null&&t==="object"||t==="function"};function pp(r,t,e){return yd(r,t,(0,D.pi)((0,D.pi)({},e),{bbox:!1,length:!0})).point}var we=T(18642),Sa=T(38882);function mp(r,t){for(;!{}.hasOwnProperty.call(r,t)&&(r=(0,Sa.Z)(r))!==null;);return r}function Ac(){return Ac=typeof Reflect!="undefined"&&Reflect.get?Reflect.get.bind():function(r,t,e){var n=mp(r,t);if(n){var i=Object.getOwnPropertyDescriptor(n,t);return i.get?i.get.call(arguments.length<3?r:e):i.value}},Ac.apply(null,arguments)}function Ks(r,t,e,n){var i=Ac((0,Sa.Z)(1&n?r.prototype:r),t,e);return 2&n&&typeof i=="function"?function(a){return i.apply(e,a)}:i}var lc=T(13750);function vi(r,t,e,n){var i=r-e,a=t-n;return Math.sqrt(i*i+a*a)}function cc(r,t){var e=Math.min.apply(Math,(0,G.Z)(r)),n=Math.min.apply(Math,(0,G.Z)(t)),i=Math.max.apply(Math,(0,G.Z)(r)),a=Math.max.apply(Math,(0,G.Z)(t));return{x:e,y:n,width:i-e,height:a-n}}function Fd(r){return(r+Math.PI*2)%(Math.PI*2)}function Vs(r,t){var e=Math.abs(r);return t>0?e:e*-1}function Nu(r,t,e,n,i,a){var s=e,o=n;if(s===0||o===0)return{x:r,y:t};for(var A=i-r,l=a-t,c=Math.abs(A),u=Math.abs(l),h=s*s,d=o*o,f=Math.PI/4,g=0,v=0,p=0;p<4;p++){g=s*Math.cos(f),v=o*Math.sin(f);var y=(h-d)*Math.pow(Math.cos(f),3)/s,x=(d-h)*Math.pow(Math.sin(f),3)/o,F=g-y,O=v-x,L=c-y,U=u-x,R=Math.hypot(O,F),j=Math.hypot(U,L),q=R*Math.asin((F*U-O*L)/(R*j)),et=q/Math.sqrt(h+d-g*g-v*v);f+=et,f=Math.min(Math.PI/2,Math.max(0,f))}return{x:r+Vs(g,A),y:t+Vs(v,l)}}function Lu(r,t,e,n,i,a,s,o){return-1*e*Math.cos(i)*Math.sin(o)-n*Math.sin(i)*Math.cos(o)}function yp(r,t,e,n,i,a,s,o){return-1*e*Math.sin(i)*Math.sin(o)+n*Math.cos(i)*Math.cos(o)}function Td(r,t,e){return Math.atan(-t/r*Math.tan(e))}function wp(r,t,e){return Math.atan(t/(r*Math.tan(e)))}function ku(r,t,e,n,i,a){return e*Math.cos(i)*Math.cos(a)-n*Math.sin(i)*Math.sin(a)+r}function Ep(r,t,e,n,i,a){return e*Math.sin(i)*Math.cos(a)+n*Math.cos(i)*Math.sin(a)+t}function Bp(r,t,e,n){var i=Math.atan2(n*r,e*t);return(i+Math.PI*2)%(Math.PI*2)}function Od(r,t,e){return{x:r*Math.cos(e),y:t*Math.sin(e)}}function Id(r,t,e){var n=Math.cos(e),i=Math.sin(e);return[r*n-t*i,r*i+t*n]}function bp(r,t,e,n,i,a,s){for(var o=Td(e,n,i),A=1/0,l=-1/0,c=[a,s],u=-Math.PI*2;u<=Math.PI*2;u+=Math.PI){var h=o+u;al&&(l=f)}for(var g=wp(e,n,i),v=1/0,p=-1/0,y=[a,s],x=-Math.PI*2;x<=Math.PI*2;x+=Math.PI){var F=g+x;ap&&(p=L)}return{x:A,y:v,width:l-A,height:p-v}}function oE(r,t,e,n,i,a,s,o,A){var l=Id(o-r,A-t,-i),c=_slicedToArray(l,2),u=c[0],h=c[1],d=Nu(0,0,e,n,u,h),f=Bp(e,n,d.x,d.y);fs&&(d=Od(e,n,s));var g=Id(d.x,d.y,i);return{x:g[0]+r,y:g[1]+t}}function AE(r,t,e,n,i,a,s,o){var A=(s-a)*o+a,l=Lu(r,t,e,n,i,a,s,A),c=yp(r,t,e,n,i,a,s,A);return Fd(Math.atan2(c,l))}var xp=1e-4;function Qu(r,t,e,n,i,a){var s=-1,o=1/0,A=[e,n],l=20;a&&a>200&&(l=a/10);for(var c=1/l,u=c/10,h=0;h<=l;h++){var d=h*c,f=[i.apply(void 0,(0,G.Z)(r.concat([d]))),i.apply(void 0,(0,G.Z)(t.concat([d])))],g=vi(A[0],A[1],f[0],f[1]);g=0&&Oo?vi(e,n,i,a):tl(r,t,e,n,i,a)}function tl(r,t,e,n,i,a){var s=[e-r,n-t];if(Gv(s,[0,0]))return Math.sqrt((i-r)*(i-r)+(a-t)*(a-t));var o=[-s[1],s[0]];_v(o,o);var A=[i-r,a-t];return Math.abs(Su(A,o))}function cE(r,t,e,n){return Math.atan2(n-t,e-r)}function hs(r,t,e,n,i){var a=1-i;return a*a*a*r+3*t*i*a*a+3*e*i*i*a+n*i*i*i}function uc(r,t,e,n,i){var a=1-i;return 3*(a*a*(t-r)+2*a*i*(e-t)+i*i*(n-e))}function Uu(r,t,e,n){var i=-3*r+9*t-9*e+3*n,a=6*r-12*t+6*e,s=3*t-3*r,o=[],A,l,c;if(tA(i,0))tA(a,0)||(A=-s/a,A>=0&&A<=1&&o.push(A));else{var u=a*a-4*i*s;tA(u,0)?o.push(-a/(2*i)):u>0&&(c=Math.sqrt(u),A=(-a+c)/(2*i),l=(-a-c)/(2*i),A>=0&&A<=1&&o.push(A),l>=0&&l<=1&&o.push(l))}return o}function Ld(r,t,e,n,i,a,s,o,A){var l=hs(r,e,i,s,A),c=hs(t,n,a,o,A),u=Ma(r,t,e,n,A),h=Ma(e,n,i,a,A),d=Ma(i,a,s,o,A),f=Ma(u.x,u.y,h.x,h.y,A),g=Ma(h.x,h.y,d.x,d.y,A);return[[r,t,u.x,u.y,f.x,f.y,l,c],[l,c,g.x,g.y,d.x,d.y,s,o]]}function Ru(r,t,e,n,i,a,s,o,A){if(A===0)return Cp([r,e,i,s],[t,n,a,o]);var l=Ld(r,t,e,n,i,a,s,o,.5),c=[].concat(_toConsumableArray(l[0]),[A-1]),u=[].concat(_toConsumableArray(l[1]),[A-1]);return Ru.apply(void 0,_toConsumableArray(c))+Ru.apply(void 0,_toConsumableArray(u))}function kd(r,t,e,n,i,a,s,o){for(var A=[r,s],l=[t,o],c=Uu(r,e,i,s),u=Uu(t,n,a,o),h=0;h1||t<0||r.length<2)return null;var e=_u(r),n=e.segments,i=e.totalLength;if(i===0)return{x:r[0][0],y:r[0][1]};for(var a=0,s=null,o=0;o=a&&t<=a+u){var h=(t-a)/u;s=Ma(l[0],l[1],c[0],c[1],h);break}a+=u}return s}function Rd(r,t){if(t>1||t<0||r.length<2)return 0;for(var e=_u(r),n=e.segments,i=e.totalLength,a=0,s=0,o=0;o=a&&t<=a+u){s=Math.atan2(c[1]-l[1],c[0]-l[0]);break}a+=u}return s}function Dd(r,t,e){for(var n=1/0,i=0;i=0?[i]:[]}function Gu(r,t,e,n,i,a,s){var o=nA(r,e,i,s),A=nA(t,n,a,s),l=Ma(r,t,e,n,s),c=Ma(e,n,i,a,s);return[[r,t,l.x,l.y,o,A],[o,A,c.x,c.y,i,a]]}function fc(r,t,e,n,i,a,s){if(s===0)return(vi(r,t,e,n)+vi(e,n,i,a)+vi(r,t,i,a))/2;var o=Gu(r,t,e,n,i,a,.5),A=o[0],l=o[1];return A.push(s-1),l.push(s-1),fc.apply(void 0,_toConsumableArray(A))+fc.apply(void 0,_toConsumableArray(l))}function ri(r,t,e,n,i,a){var s=Pd(r,e,i)[0],o=Pd(t,n,a)[0],A=[r,i],l=[t,a];return s!==void 0&&A.push(nA(r,e,i,s)),o!==void 0&&l.push(nA(t,n,a,o)),cc(A,l)}function gc(r,t,e,n,i,a){return fc(r,t,e,n,i,a,3)}function Tp(r,t,e,n,i,a,s,o){return Qu([r,e,i],[t,n,a],s,o,nA)}function Op(r,t,e,n,i,a,s,o){var A=Tp(r,t,e,n,i,a,s,o);return vi(A.x,A.y,s,o)}var ii=T(73001),Xa=T(11576),Ws=T(72054),Ja=T(42244);var Kt=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}({}),vc=function(r){return r[r.ZERO=0]="ZERO",r[r.NEGATIVE_ONE=1]="NEGATIVE_ONE",r}({}),ds=function(){function r(){(0,P.Z)(this,r),this.plugins=[]}return(0,N.Z)(r,[{key:"addRenderingPlugin",value:function(e){this.plugins.push(e),this.context.renderingPlugins.push(e)}},{key:"removeAllRenderingPlugins",value:function(){var e=this;this.plugins.forEach(function(n){var i=e.context.renderingPlugins.indexOf(n);i>=0&&e.context.renderingPlugins.splice(i,1)})}}])}(),Ip=function(){function r(t){(0,P.Z)(this,r),this.clipSpaceNearZ=vc.NEGATIVE_ONE,this.plugins=[],this.config=(0,z.Z)({enableDirtyCheck:!0,enableCulling:!1,enableAutoRendering:!0,enableDirtyRectangleRendering:!0,enableDirtyRectangleRenderingDebug:!1,enableSizeAttenuation:!0,enableRenderingOptimization:!1},t)}return(0,N.Z)(r,[{key:"registerPlugin",value:function(e){var n=this.plugins.findIndex(function(i){return i===e});n===-1&&this.plugins.push(e)}},{key:"unregisterPlugin",value:function(e){var n=this.plugins.findIndex(function(i){return i===e});n>-1&&this.plugins.splice(n,1)}},{key:"getPlugins",value:function(){return this.plugins}},{key:"getPlugin",value:function(e){return this.plugins.find(function(n){return n.name===e})}},{key:"getConfig",value:function(){return this.config}},{key:"setConfig",value:function(e){Object.assign(this.config,e)}}])}(),zu=de,rA=ie,_d=As,Hd=ji,Ku=Pt,pc=cs,Zn=function(){function r(){(0,P.Z)(this,r),this.center=[0,0,0],this.halfExtents=[0,0,0],this.min=[0,0,0],this.max=[0,0,0]}return(0,N.Z)(r,[{key:"update",value:function(e,n){rA(this.center,e),rA(this.halfExtents,n),pc(this.min,this.center,this.halfExtents),zu(this.max,this.center,this.halfExtents)}},{key:"setMinMax",value:function(e,n){zu(this.center,n,e),Ku(this.center,this.center,.5),pc(this.halfExtents,n,e),Ku(this.halfExtents,this.halfExtents,.5),rA(this.min,e),rA(this.max,n)}},{key:"getMin",value:function(){return this.min}},{key:"getMax",value:function(){return this.max}},{key:"add",value:function(e){if(!r.isEmpty(e)){if(r.isEmpty(this)){this.setMinMax(e.getMin(),e.getMax());return}var n=this.center,i=n[0],a=n[1],s=n[2],o=this.halfExtents,A=o[0],l=o[1],c=o[2],u=i-A,h=i+A,d=a-l,f=a+l,g=s-c,v=s+c,p=e.center,y=p[0],x=p[1],F=p[2],O=e.halfExtents,L=O[0],U=O[1],R=O[2],j=y-L,q=y+L,et=x-U,it=x+U,dt=F-R,ft=F+R;jh&&(h=q),etf&&(f=it),dtv&&(v=ft),n[0]=(u+h)*.5,n[1]=(d+f)*.5,n[2]=(g+v)*.5,o[0]=(h-u)*.5,o[1]=(f-d)*.5,o[2]=(v-g)*.5,this.min[0]=u,this.min[1]=d,this.min[2]=g,this.max[0]=h,this.max[1]=f,this.max[2]=v}}},{key:"setFromTransformedAABB",value:function(e,n){var i=this.center,a=this.halfExtents,s=e.center,o=e.halfExtents,A=n[0],l=n[4],c=n[8],u=n[1],h=n[5],d=n[9],f=n[2],g=n[6],v=n[10],p=Math.abs(A),y=Math.abs(l),x=Math.abs(c),F=Math.abs(u),O=Math.abs(h),L=Math.abs(d),U=Math.abs(f),R=Math.abs(g),j=Math.abs(v);i[0]=n[12]+A*s[0]+l*s[1]+c*s[2],i[1]=n[13]+u*s[0]+h*s[1]+d*s[2],i[2]=n[14]+f*s[0]+g*s[1]+v*s[2],a[0]=p*o[0]+y*o[1]+x*o[2],a[1]=F*o[0]+O*o[1]+L*o[2],a[2]=U*o[0]+R*o[1]+j*o[2],pc(this.min,i,a),zu(this.max,i,a)}},{key:"intersects",value:function(e){var n=this.getMax(),i=this.getMin(),a=e.getMax(),s=e.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(e){if(!this.intersects(e))return null;var n=new r,i=_d([0,0,0],this.getMin(),e.getMin()),a=Hd([0,0,0],this.getMax(),e.getMax());return n.setMinMax(i,a),n}},{key:"getNegativeFarPoint",value:function(e){return e.pnVertexFlag===273?rA([0,0,0],this.min):e.pnVertexFlag===272?[this.min[0],this.min[1],this.max[2]]:e.pnVertexFlag===257?[this.min[0],this.max[1],this.min[2]]:e.pnVertexFlag===256?[this.min[0],this.max[1],this.max[2]]:e.pnVertexFlag===17?[this.max[0],this.min[1],this.min[2]]:e.pnVertexFlag===16?[this.max[0],this.min[1],this.max[2]]:e.pnVertexFlag===1?[this.max[0],this.max[1],this.min[2]]:[this.max[0],this.max[1],this.max[2]]}},{key:"getPositiveFarPoint",value:function(e){return e.pnVertexFlag===273?rA([0,0,0],this.max):e.pnVertexFlag===272?[this.max[0],this.max[1],this.min[2]]:e.pnVertexFlag===257?[this.max[0],this.min[1],this.max[2]]:e.pnVertexFlag===256?[this.max[0],this.min[1],this.min[2]]:e.pnVertexFlag===17?[this.min[0],this.max[1],this.max[2]]:e.pnVertexFlag===16?[this.min[0],this.max[1],this.min[2]]:e.pnVertexFlag===1?[this.min[0],this.min[1],this.max[2]]:[this.min[0],this.min[1],this.min[2]]}}],[{key:"isEmpty",value:function(e){return!e||e.halfExtents[0]===0&&e.halfExtents[1]===0&&e.halfExtents[2]===0}}])}(),Np=function(){function r(t,e){(0,P.Z)(this,r),this.distance=t||0,this.normal=e||Wt(0,1,0),this.updatePNVertexFlag()}return(0,N.Z)(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(e){return _e(e,this.normal)-this.distance}},{key:"normalize",value:function(){var e=1/la(this.normal);Pt(this.normal,this.normal,e),this.distance*=e}},{key:"intersectsLine",value:function(e,n,i){var a=this.distanceToPoint(e),s=this.distanceToPoint(n),o=a/(a-s),A=o>=0&&o<=1;return A&&i&&nn(i,e,n,o),A}}])}(),iA=function(r){return r[r.OUTSIDE=4294967295]="OUTSIDE",r[r.INSIDE=0]="INSIDE",r[r.INDETERMINATE=2147483647]="INDETERMINATE",r}({}),Lp=function(){function r(t){if((0,P.Z)(this,r),this.planes=[],t)this.planes=t;else for(var e=0;e<6;e++)this.planes.push(new Np)}return(0,N.Z)(r,[{key:"extractFromVPMatrix",value:function(e){var n=(0,H.Z)(e,16),i=n[0],a=n[1],s=n[2],o=n[3],A=n[4],l=n[5],c=n[6],u=n[7],h=n[8],d=n[9],f=n[10],g=n[11],v=n[12],p=n[13],y=n[14],x=n[15];ve(this.planes[0].normal,o-i,u-A,g-h),this.planes[0].distance=x-v,ve(this.planes[1].normal,o+i,u+A,g+h),this.planes[1].distance=x+v,ve(this.planes[2].normal,o+a,u+l,g+d),this.planes[2].distance=x+p,ve(this.planes[3].normal,o-a,u-l,g-d),this.planes[3].distance=x-p,ve(this.planes[4].normal,o-s,u-c,g-f),this.planes[4].distance=x-y,ve(this.planes[5].normal,o+s,u+c,g+f),this.planes[5].distance=x+y,this.planes.forEach(function(F){F.normalize(),F.updatePNVertexFlag()})}}])}(),ai=function(){function r(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;(0,P.Z)(this,r),this.x=0,this.y=0,this.x=t,this.y=e}return(0,N.Z)(r,[{key:"clone",value:function(){return new r(this.x,this.y)}},{key:"copyFrom",value:function(e){this.x=e.x,this.y=e.y}}])}(),fs=function(){function r(t,e,n,i){(0,P.Z)(this,r),this.x=t,this.y=e,this.width=n,this.height=i,this.left=t,this.right=t+n,this.top=e,this.bottom=e+i}return(0,N.Z)(r,[{key:"toJSON",value:function(){}}],[{key:"fromRect",value:function(e){return new r(e.x,e.y,e.width,e.height)}},{key:"applyTransform",value:function(e,n){var i=Xi(e.x,e.y,0,1),a=Xi(e.x+e.width,e.y,0,1),s=Xi(e.x,e.y+e.height,0,1),o=Xi(e.x+e.width,e.y+e.height,0,1),A=Ar(),l=Ar(),c=Ar(),u=Ar();M(A,i,n),M(l,a,n),M(c,s,n),M(u,o,n);var h=Math.min(A[0],l[0],c[0],u[0]),d=Math.min(A[1],l[1],c[1],u[1]),f=Math.max(A[0],l[0],c[0],u[0]),g=Math.max(A[1],l[1],c[1],u[1]);return r.fromRect({x:h,y:d,width:f-h,height:g-d})}}])}(),On="Method not implemented.",aA="Use document.documentElement instead.",Gd="Cannot append a destroyed element.";function js(r){return r===void 0?0:r>360||r<-360?r%360:r}var mc=Ot();function pi(r){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,e=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?Gt(r):ie(mc,r):ye(r)?n?Wt(r,t,e):ve(mc,r,t,e):n?Wt(r[0],r[1]||t,r[2]||e):ve(mc,r[0],r[1]||t,r[2]||e)}var zd=Math.PI/180;function Un(r){return r*zd}var yc=180/Math.PI;function bi(r){return r*yc}var Kd=.9;function yE(r){return r%=400,r<0&&(r+=400),r*Kd}function wE(r){return r/360}function Vd(r){return 360*r}var gs=Math.PI/2;function Vu(r,t){var e=t[0],n=t[1],i=t[2],a=t[3],s=e*e,o=n*n,A=i*i,l=a*a,c=s+o+A+l,u=e*a-n*i;return u>.499995*c?(r[0]=gs,r[1]=2*Math.atan2(n,e),r[2]=0):u<-.499995*c?(r[0]=-gs,r[1]=2*Math.atan2(n,e),r[2]=0):(r[0]=Math.asin(2*(e*i-a*n)),r[1]=Math.atan2(2*(e*a+n*i),1-2*(A+l)),r[2]=Math.atan2(2*(e*n+i*a),1-2*(o+A))),r}function wc(r,t){var e,n,i=Ds(Ot(),t),a=(0,H.Z)(i,3),s=a[0],o=a[1],A=a[2],l=Math.asin(-t[2]/s);return l-gs?(e=Math.atan2(t[6]/o,t[10]/A),n=Math.atan2(t[1]/s,t[0]/s)):(n=0,e=-Math.atan2(t[4]/o,t[5]/o)):(n=0,e=Math.atan2(t[4]/o,t[5]/o)),r[0]=e,r[1]=l,r[2]=n,r}function Wu(r,t){return t.length===16?wc(r,t):Vu(r,t)}function kp(r,t,e,n,i){var a=Math.cos(r),s=Math.sin(r);return Jl(n*a,i*s,0,-n*s,i*a,0,t,e,1)}function Qp(r,t,e,n,i,a,s){var o=arguments.length>7&&arguments[7]!==void 0?arguments[7]:!1,A=2*a,l=e-t,c=n-i,u=A/l,h=A/c,d=(e+t)/l,f=(n+i)/c,g,v,p=s-a,y=s*a;return o?(g=-s/p,v=-y/p):(g=-(s+a)/p,v=-2*y/p),r[0]=u,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=h,r[6]=0,r[7]=0,r[8]=d,r[9]=f,r[10]=g,r[11]=-1,r[12]=0,r[13]=0,r[14]=v,r[15]=0,r}function Wd(r){var t=r[0],e=r[1],n=r[3],i=r[4],a=Math.sqrt(t*t+e*e),s=Math.sqrt(n*n+i*i),o=t*i-e*n;if(o<0&&(tKe[1][2]&&(a[0]=-a[0]),Ke[0][2]>Ke[2][0]&&(a[1]=-a[1]),Ke[1][0]>Ke[0][1]&&(a[2]=-a[2]),!0}function Zd(r,t){var e=t[15];if(e===0)return!1;for(var n=1/e,i=0;i<16;i++)r[i]=t[i]*n;return!0}function Up(r,t){r[0][0]=t[0],r[0][1]=t[1],r[0][2]=t[2],r[1][0]=t[4],r[1][1]=t[5],r[1][2]=t[6],r[2][0]=t[8],r[2][1]=t[9],r[2][2]=t[10]}function oA(r,t,e,n,i){r[0]=t[0]*n+e[0]*i,r[1]=t[1]*n+e[1]*i,r[2]=t[2]*n+e[2]*i}var In=function(r){return r[r.ORBITING=0]="ORBITING",r[r.EXPLORING=1]="EXPLORING",r[r.TRACKING=2]="TRACKING",r}({}),Bc=function(r){return r[r.DEFAULT=0]="DEFAULT",r[r.ROTATIONAL=1]="ROTATIONAL",r[r.TRANSLATIONAL=2]="TRANSLATIONAL",r[r.CINEMATIC=3]="CINEMATIC",r}({}),ea=function(r){return r[r.ORTHOGRAPHIC=0]="ORTHOGRAPHIC",r[r.PERSPECTIVE=1]="PERSPECTIVE",r}({}),Yd={UPDATED:"updated"},ju=2e-4,Zu=function(){function r(){(0,P.Z)(this,r),this.clipSpaceNearZ=vc.NEGATIVE_ONE,this.eventEmitter=new Z,this.matrix=$t(),this.right=Wt(1,0,0),this.up=Wt(0,1,0),this.forward=Wt(0,0,1),this.position=Wt(0,0,1),this.focalPoint=Wt(0,0,0),this.distanceVector=Wt(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=$t(),this.projectionMatrixInverse=$t(),this.jitteredProjectionMatrix=void 0,this.enableUpdate=!0,this.type=In.EXPLORING,this.trackingMode=Bc.DEFAULT,this.projectionMode=ea.PERSPECTIVE,this.frustum=new Lp,this.orthoMatrix=$t()}return(0,N.Z)(r,[{key:"isOrtho",value:function(){return this.projectionMode===ea.ORTHOGRAPHIC}},{key:"getProjectionMode",value:function(){return this.projectionMode}},{key:"getPerspective",value:function(){return this.jitteredProjectionMatrix||this.projectionMatrix}},{key:"getPerspectiveInverse",value:function(){return this.projectionMatrixInverse}},{key:"getFrustum",value:function(){return this.frustum}},{key:"getPosition",value:function(){return this.position}},{key:"getFocalPoint",value:function(){return this.focalPoint}},{key:"getDollyingStep",value:function(){return this.dollyingStep}},{key:"getNear",value:function(){return this.near}},{key:"getFar",value:function(){return this.far}},{key:"getZoom",value:function(){return this.zoom}},{key:"getOrthoMatrix",value:function(){return this.orthoMatrix}},{key:"getView",value:function(){return this.view}},{key:"setEnableUpdate",value:function(e){this.enableUpdate=e}},{key:"setType",value:function(e,n){return this.type=e,this.type===In.EXPLORING?this.setWorldRotation(!0):this.setWorldRotation(!1),this._getAngles(),this.type===In.TRACKING&&n!==void 0&&this.setTrackingMode(n),this}},{key:"setProjectionMode",value:function(e){return this.projectionMode=e,this}},{key:"setTrackingMode",value:function(e){if(this.type!==In.TRACKING)throw new Error("Impossible to set a tracking mode if the camera is not of tracking type");return this.trackingMode=e,this}},{key:"setWorldRotation",value:function(e){return this.rotateWorld=e,this._getAngles(),this}},{key:"getViewTransform",value:function(){return on($t(),this.matrix)}},{key:"getWorldTransform",value:function(){return this.matrix}},{key:"jitterProjectionMatrix",value:function(e,n){var i=Tr($t(),[e,n,0]);this.jitteredProjectionMatrix=ue($t(),i,this.projectionMatrix)}},{key:"clearJitterProjectionMatrix",value:function(){this.jitteredProjectionMatrix=void 0}},{key:"setMatrix",value:function(e){return this.matrix=e,this._update(),this}},{key:"setProjectionMatrix",value:function(e){this.projectionMatrix=e}},{key:"setFov",value:function(e){return this.setPerspective(this.near,this.far,e,this.aspect),this}},{key:"setAspect",value:function(e){return this.setPerspective(this.near,this.far,this.fov,e),this}},{key:"setNear",value:function(e){return this.projectionMode===ea.PERSPECTIVE?this.setPerspective(e,this.far,this.fov,this.aspect):this.setOrthographic(this.left,this.rright,this.top,this.bottom,e,this.far),this}},{key:"setFar",value:function(e){return this.projectionMode===ea.PERSPECTIVE?this.setPerspective(this.near,e,this.fov,this.aspect):this.setOrthographic(this.left,this.rright,this.top,this.bottom,this.near,e),this}},{key:"setViewOffset",value:function(e,n,i,a,s,o){return this.aspect=e/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=e,this.view.fullHeight=n,this.view.offsetX=i,this.view.offsetY=a,this.view.width=s,this.view.height=o,this.projectionMode===ea.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===ea.PERSPECTIVE?this.setPerspective(this.near,this.far,this.fov,this.aspect):this.setOrthographic(this.left,this.rright,this.top,this.bottom,this.near,this.far),this}},{key:"setZoom",value:function(e){return this.zoom=e,this.projectionMode===ea.ORTHOGRAPHIC?this.setOrthographic(this.left,this.rright,this.top,this.bottom,this.near,this.far):this.projectionMode===ea.PERSPECTIVE&&this.setPerspective(this.near,this.far,this.fov,this.aspect),this}},{key:"setZoomByViewportPoint",value:function(e,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(e),this.rotate(0,0,o);var A=this.canvas.viewport2Canvas({x:n[0],y:n[1]}),l=A.x,c=A.y,u=Wt(l-a,c-s,0),h=_e(u,this.right)/ae(this.right),d=_e(u,this.up)/ae(this.up),f=this.getPosition(),g=(0,H.Z)(f,2),v=g[0],p=g[1],y=this.getFocalPoint(),x=(0,H.Z)(y,2),F=x[0],O=x[1];return this.setPosition(v-h,p-d),this.setFocalPoint(F-h,O-d),this}},{key:"setPerspective",value:function(e,n,i,a){var s;this.projectionMode=ea.PERSPECTIVE,this.fov=i,this.near=e,this.far=n,this.aspect=a;var o=this.near*Math.tan(Un(.5*this.fov))/this.zoom,A=2*o,l=this.aspect*A,c=-.5*l;if((s=this.view)!==null&&s!==void 0&&s.enabled){var u=this.view.fullWidth,h=this.view.fullHeight;c+=this.view.offsetX*l/u,o-=this.view.offsetY*A/h,l*=this.view.width/u,A*=this.view.height/h}return Qp(this.projectionMatrix,c,c+l,o-A,o,e,this.far,this.clipSpaceNearZ===vc.ZERO),on(this.projectionMatrixInverse,this.projectionMatrix),this.triggerUpdate(),this}},{key:"setOrthographic",value:function(e,n,i,a,s,o){var A;this.projectionMode=ea.ORTHOGRAPHIC,this.rright=n,this.left=e,this.top=i,this.bottom=a,this.near=s,this.far=o;var l=(this.rright-this.left)/(2*this.zoom),c=(this.top-this.bottom)/(2*this.zoom),u=(this.rright+this.left)/2,h=(this.top+this.bottom)/2,d=u-l,f=u+l,g=h+c,v=h-c;if((A=this.view)!==null&&A!==void 0&&A.enabled){var p=(this.rright-this.left)/this.view.fullWidth/this.zoom,y=(this.top-this.bottom)/this.view.fullHeight/this.zoom;d+=p*this.view.offsetX,f=d+p*this.view.width,g-=y*this.view.offsetY,v=g-y*this.view.height}return this.clipSpaceNearZ===vc.NEGATIVE_ONE?gu(this.projectionMatrix,d,f,g,v,s,o):vu(this.projectionMatrix,d,f,g,v,s,o),on(this.projectionMatrixInverse,this.projectionMatrix),this._getOrthoMatrix(),this.triggerUpdate(),this}},{key:"setPosition",value:function(e){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=pi(e,n,i);return this._setPosition(a),this.setFocalPoint(this.focalPoint),this.triggerUpdate(),this}},{key:"setFocalPoint",value:function(e){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=Wt(0,1,0);if(this.focalPoint=pi(e,n,i),this.trackingMode===Bc.CINEMATIC){var s=Oe(Ot(),this.focalPoint,this.position);e=s[0],n=s[1],i=s[2];var o=ae(s),A=bi(Math.asin(n/o)),l=90+bi(Math.atan2(i,e)),c=$t();qn(c,c,Un(l)),jn(c,c,Un(A)),a=me(Ot(),[0,1,0],c)}return on(this.matrix,rd($t(),this.position,this.focalPoint,a)),this._getAxes(),this._getDistance(),this._getAngles(),this.triggerUpdate(),this}},{key:"getDistance",value:function(){return this.distance}},{key:"getDistanceVector",value:function(){return this.distanceVector}},{key:"setDistance",value:function(e){if(this.distance===e||e<0)return this;this.distance=e,this.distance",r.PAINT="",r.NUMBER="",r.ANGLE="",r.OPACITY_VALUE="",r.SHADOW_BLUR="",r.LENGTH="",r.PERCENTAGE="",r.LENGTH_PERCENTAGE=" | ",r.LENGTH_PERCENTAGE_12="[ | ]{1,2}",r.LENGTH_PERCENTAGE_14="[ | ]{1,4}",r.LIST_OF_POINTS="",r.PATH="",r.FILTER="",r.Z_INDEX="",r.OFFSET_DISTANCE="",r.DEFINED_PATH="",r.MARKER="",r.TRANSFORM="",r.TRANSFORM_ORIGIN="",r.TEXT="",r.TEXT_TRANSFORM="",r}({});function Bo(r,t,e){r.prototype=t.prototype=e,e.constructor=r}function qa(r,t){var e=Object.create(r.prototype);for(var n in t)e[n]=t[n];return e}function uA(){}var hA=.7,el=1/hA,Ys="\\s*([+-]?\\d+)\\s*",ps="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Ta="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Xd=/^#([0-9a-f]{3,8})$/,nl=new RegExp(`^rgb\\(${Ys},${Ys},${Ys}\\)$`),Dp=new RegExp(`^rgb\\(${Ta},${Ta},${Ta}\\)$`),Pp=new RegExp(`^rgba\\(${Ys},${Ys},${Ys},${ps}\\)$`),_p=new RegExp(`^rgba\\(${Ta},${Ta},${Ta},${ps}\\)$`),Hp=new RegExp(`^hsl\\(${ps},${Ta},${Ta}\\)$`),Gp=new RegExp(`^hsla\\(${ps},${Ta},${Ta},${ps}\\)$`),xc={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};Bo(uA,Cc,{copy(r){return Object.assign(new this.constructor,this,r)},displayable(){return this.rgb().displayable()},hex:Jd,formatHex:Jd,formatHex8:zp,formatHsl:Kp,formatRgb:qd,toString:qd});function Jd(){return this.rgb().formatHex()}function zp(){return this.rgb().formatHex8()}function Kp(){return ef(this).formatHsl()}function qd(){return this.rgb().formatRgb()}function Cc(r){var t,e;return r=(r+"").trim().toLowerCase(),(t=Xd.exec(r))?(e=t[1].length,t=parseInt(t[1],16),e===6?Sc(t):e===3?new Ui(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):e===8?dA(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):e===4?dA(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=nl.exec(r))?new Ui(t[1],t[2],t[3],1):(t=Dp.exec(r))?new Ui(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Pp.exec(r))?dA(t[1],t[2],t[3],t[4]):(t=_p.exec(r))?dA(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Hp.exec(r))?Fc(t[1],t[2]/100,t[3]/100,1):(t=Gp.exec(r))?Fc(t[1],t[2]/100,t[3]/100,t[4]):xc.hasOwnProperty(r)?Sc(xc[r]):r==="transparent"?new Ui(NaN,NaN,NaN,0):null}function Sc(r){return new Ui(r>>16&255,r>>8&255,r&255,1)}function dA(r,t,e,n){return n<=0&&(r=t=e=NaN),new Ui(r,t,e,n)}function $d(r){return r instanceof uA||(r=Cc(r)),r?(r=r.rgb(),new Ui(r.r,r.g,r.b,r.opacity)):new Ui}function Vp(r,t,e,n){return arguments.length===1?$d(r):new Ui(r,t,e,n==null?1:n)}function Ui(r,t,e,n){this.r=+r,this.g=+t,this.b=+e,this.opacity=+n}Bo(Ui,Vp,qa(uA,{brighter(r){return r=r==null?el:Math.pow(el,r),new Ui(this.r*r,this.g*r,this.b*r,this.opacity)},darker(r){return r=r==null?hA:Math.pow(hA,r),new Ui(this.r*r,this.g*r,this.b*r,this.opacity)},rgb(){return this},clamp(){return new Ui(bo(this.r),bo(this.g),bo(this.b),Mc(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:Yu,formatHex:Yu,formatHex8:Wp,formatRgb:tf,toString:tf}));function Yu(){return`#${xo(this.r)}${xo(this.g)}${xo(this.b)}`}function Wp(){return`#${xo(this.r)}${xo(this.g)}${xo(this.b)}${xo((isNaN(this.opacity)?1:this.opacity)*255)}`}function tf(){const r=Mc(this.opacity);return`${r===1?"rgb(":"rgba("}${bo(this.r)}, ${bo(this.g)}, ${bo(this.b)}${r===1?")":`, ${r})`}`}function Mc(r){return isNaN(r)?1:Math.max(0,Math.min(1,r))}function bo(r){return Math.max(0,Math.min(255,Math.round(r)||0))}function xo(r){return r=bo(r),(r<16?"0":"")+r.toString(16)}function Fc(r,t,e,n){return n<=0?r=t=e=NaN:e<=0||e>=1?r=t=NaN:t<=0&&(r=NaN),new Oa(r,t,e,n)}function ef(r){if(r instanceof Oa)return new Oa(r.h,r.s,r.l,r.opacity);if(r instanceof uA||(r=Cc(r)),!r)return new Oa;if(r instanceof Oa)return r;r=r.rgb();var t=r.r/255,e=r.g/255,n=r.b/255,i=Math.min(t,e,n),a=Math.max(t,e,n),s=NaN,o=a-i,A=(a+i)/2;return o?(t===a?s=(e-n)/o+(e0&&A<1?0:s,new Oa(s,o,A,r.opacity)}function Xu(r,t,e,n){return arguments.length===1?ef(r):new Oa(r,t,e,n==null?1:n)}function Oa(r,t,e,n){this.h=+r,this.s=+t,this.l=+e,this.opacity=+n}Bo(Oa,Xu,qa(uA,{brighter(r){return r=r==null?el:Math.pow(el,r),new Oa(this.h,this.s,this.l*r,this.opacity)},darker(r){return r=r==null?hA:Math.pow(hA,r),new Oa(this.h,this.s,this.l*r,this.opacity)},rgb(){var r=this.h%360+(this.h<0)*360,t=isNaN(r)||isNaN(this.s)?0:this.s,e=this.l,n=e+(e<.5?e:1-e)*t,i=2*e-n;return new Ui(fA(r>=240?r-240:r+120,i,n),fA(r,i,n),fA(r<120?r+240:r-120,i,n),this.opacity)},clamp(){return new Oa(Se(this.h),ms(this.s),ms(this.l),Mc(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=Mc(this.opacity);return`${r===1?"hsl(":"hsla("}${Se(this.h)}, ${ms(this.s)*100}%, ${ms(this.l)*100}%${r===1?")":`, ${r})`}`}}));function Se(r){return r=(r||0)%360,r<0?r+360:r}function ms(r){return Math.max(0,Math.min(1,r||0))}function fA(r,t,e){return(r<60?t+(e-t)*r/60:r<180?e:r<240?t+(e-t)*(240-r)/60:t)*255}function Nn(r,t){if(typeof r!="function"||t!=null&&typeof t!="function")throw new TypeError("Expected a function");var e=function(){for(var i=arguments.length,a=new Array(i),s=0;s=ys.kUnitType&&this.getType()<=ys.kClampType}}],[{key:"isAngle",value:function(e){return e===fe.kDegrees||e===fe.kRadians||e===fe.kGradians||e===fe.kTurns}},{key:"isLength",value:function(e){return e>=fe.kEms&&e1&&arguments[1]!==void 0?arguments[1]:"",n="";return Number.isFinite(t)?n="NaN":t>0?n="infinity":n="-infinity",n+=e},$u=function(t){return Xp(Yp(t))},_n=function(r){function t(e){var n,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:fe.kNumber;(0,P.Z)(this,t),n=(0,K.Z)(this,t);var a;return typeof i=="string"?a=Oc(i):a=i,n.unit=a,n.value=e,n}return(0,_.Z)(t,r),(0,N.Z)(t,[{key:"clone",value:function(){return new t(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 ys.kUnitType}},{key:"convertTo",value:function(n){if(this.unit===n)return new t(this.value,this.unit);var i=$u(this.unit);if(i!==$u(n)||i===fe.kUnknown)return null;var a=Ju(this.unit)/Ju(n);return new t(this.value*a,n)}},{key:"buildCSSText",value:function(n,i,a){var s;switch(this.unit){case fe.kUnknown:break;case fe.kInteger:s=Number(this.value).toFixed(0);break;case fe.kNumber:case fe.kPercentage:case fe.kEms:case fe.kRems:case fe.kPixels:case fe.kDegrees:case fe.kRadians:case fe.kGradians:case fe.kMilliseconds:case fe.kSeconds:case fe.kTurns:{var o=-999999,A=999999,l=this.value,c=qu(this.unit);if(lA){var u=qu(this.unit);!Number.isFinite(l)||Number.isNaN(l)?s=nf(l,u):s=l+(u||"")}else s="".concat(l).concat(c)}}return a+=s,a}}])}(rl),Ia=new _n(0,"px");new _n(1,"px");var Co=new _n(0,"deg"),th=function(r){function t(e,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(0,P.Z)(this,t),a=(0,K.Z)(this,t,["rgb"]),a.r=e,a.g=n,a.b=i,a.alpha=s,a.isNone=o,a}return(0,_.Z)(t,r),(0,N.Z)(t,[{key:"clone",value:function(){return new t(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,")")}}])}(Jp),al=new Ri("unset"),da=new Ri("initial"),rf=new Ri("inherit"),gA={"":al,unset:al,initial:da,inherit:rf},qp=function(t){return gA[t]||(gA[t]=new Ri(t)),gA[t]},af=new th(0,0,0,0,!0),Ic=new th(0,0,0,0),vA=Nn(function(r,t,e,n){return new th(r,t,e,n)},function(r,t,e,n){return"rgba(".concat(r,",").concat(t,",").concat(e,",").concat(n,")")}),Yn=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:fe.kNumber;return new _n(t,e)};new _n(50,"%");function $p(r){var t=r.type,e=r.value;return t==="hex"?"#".concat(e):t==="literal"?e:t==="rgb"?"rgb(".concat(e.join(","),")"):"rgba(".concat(e.join(","),")")}var pA=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]+\.?))/},t="";function e(Qt){throw new Error("".concat(t,": ").concat(Qt))}function n(){var Qt=i();return t.length>0&&e("Invalid input not EOF"),Qt}function i(){return x(a)}function a(){return s("linear-gradient",r.linearGradient,A)||s("repeating-linear-gradient",r.repeatingLinearGradient,A)||s("radial-gradient",r.radialGradient,u)||s("repeating-radial-gradient",r.repeatingRadialGradient,u)||s("conic-gradient",r.conicGradient,u)}function s(Qt,yt,xt){return o(yt,function(Dt){var Xt=xt();return Xt&&(mt(r.comma)||e("Missing comma before color stops")),{type:Qt,orientation:Xt,colorStops:x(F)}})}function o(Qt,yt){var xt=mt(Qt);if(xt){mt(r.startCall)||e("Missing (");var Dt=yt(xt);return mt(r.endCall)||e("Missing )"),Dt}}function A(){return l()||c()}function l(){return ft("directional",r.sideOrCorner,1)}function c(){return ft("angular",r.angleValue,1)}function u(){var Qt,yt=h(),xt;return yt&&(Qt=[],Qt.push(yt),xt=t,mt(r.comma)&&(yt=h(),yt?Qt.push(yt):t=xt)),Qt}function h(){var Qt=d()||f();if(Qt)Qt.at=v();else{var yt=g();if(yt){Qt=yt;var xt=v();xt&&(Qt.at=xt)}else{var Dt=p();Dt&&(Qt={type:"default-radial",at:Dt})}}return Qt}function d(){var Qt=ft("shape",/^(circle)/i,0);return Qt&&(Qt.style=dt()||g()),Qt}function f(){var Qt=ft("shape",/^(ellipse)/i,0);return Qt&&(Qt.style=et()||g()),Qt}function g(){return ft("extent-keyword",r.extentKeywords,1)}function v(){if(ft("position",/^at/,0)){var Qt=p();return Qt||e("Missing positioning value"),Qt}}function p(){var Qt=y();if(Qt.x||Qt.y)return{type:"position",value:Qt}}function y(){return{x:et(),y:et()}}function x(Qt){var yt=Qt(),xt=[];if(yt)for(xt.push(yt);mt(r.comma);)yt=Qt(),yt?xt.push(yt):e("One extra comma");return xt}function F(){var Qt=O();return Qt||e("Expected color definition"),Qt.length=et(),Qt}function O(){return U()||j()||R()||L()}function L(){return ft("literal",r.literalColor,0)}function U(){return ft("hex",r.hexColor,1)}function R(){return o(r.rgbColor,function(){return{type:"rgb",value:x(q)}})}function j(){return o(r.rgbaColor,function(){return{type:"rgba",value:x(q)}})}function q(){return mt(r.number)[1]}function et(){return ft("%",r.percentageValue,1)||it()||dt()}function it(){return ft("position-keyword",r.positionKeywords,1)}function dt(){return ft("px",r.pixelValue,1)||ft("em",r.emValue,1)}function ft(Qt,yt,xt){var Dt=mt(yt);if(Dt)return{type:Qt,value:Dt[xt]}}function mt(Qt){var yt=/^[\n\r\t\s]+/.exec(t);yt&&Rt(yt[0].length);var xt=Qt.exec(t);return xt&&Rt(xt[0].length),xt}function Rt(Qt){t=t.substring(Qt)}return function(Qt){return t=Qt,n()}}();function tm(r,t,e,n){var i=Un(n.value),a=0,s=0,o=a+t/2,A=s+e/2,l=Math.abs(t*Math.cos(i))+Math.abs(e*Math.sin(i)),c=r[0]+o-Math.cos(i)*l/2,u=r[1]+A-Math.sin(i)*l/2,h=r[0]+o+Math.cos(i)*l/2,d=r[1]+A+Math.sin(i)*l/2;return{x1:c,y1:u,x2:h,y2:d}}function em(r,t,e,n,i,a){var s=n.value,o=i.value;n.unit===fe.kPercentage&&(s=n.value/100*t),i.unit===fe.kPercentage&&(o=i.value/100*e);var A=Math.max(ki([0,0],[s,o]),ki([0,e],[s,o]),ki([t,e],[s,o]),ki([t,0],[s,o]));return a&&(a instanceof _n?A=a.value:a instanceof Ri&&(a.value==="closest-side"?A=Math.min(s,t-s,o,e-o):a.value==="farthest-side"?A=Math.max(s,t-s,o,e-o):a.value==="closest-corner"&&(A=Math.min(ki([0,0],[s,o]),ki([0,e],[s,o]),ki([t,e],[s,o]),ki([t,0],[s,o]))))),{x:s+r[0],y:o+r[1],r:A}}var sf=/^l\s*\(\s*([\d.]+)\s*\)\s*(.*)/i,nm=/^r\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)\s*(.*)/i,of=/^p\s*\(\s*([axyn])\s*\)\s*(.*)/i,Af=/[\d.]+:(#[^\s]+|[^\)]+\))/gi;function rm(r){var t,e=r.length;if(r[e-1].length=(t=r[e-1].length)!==null&&t!==void 0?t:{type:"%",value:"100"},e>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 t=pA(r);return t.map(function(o){var A=o.type,l=o.orientation,c=o.colorStops;rm(c);var u=c.map(function(x){return{offset:Yn(Number(x.length.value),"%"),color:$p(x)}});if(A==="linear-gradient")return new il(ws.LinearGradient,{angle:l?am(l):Co,steps:u});if(A==="radial-gradient"&&(l||(l=[{type:"shape",value:"circle"}]),l[0].type==="shape"&&l[0].value==="circle")){var h=sm(l[0].at),d=h.cx,f=h.cy,g;if(l[0].style){var v=l[0].style,p=v.type,y=v.value;p==="extent-keyword"?g=qp(y):g=Yn(y,p)}return new il(ws.RadialGradient,{cx:d,cy:f,size:g,steps:u})}})}var e=r[0];if(r[1]==="("||r[2]==="("){if(e==="l"){var n=sf.exec(r);if(n){var i,a=((i=n[2].match(Af))===null||i===void 0?void 0:i.map(function(o){return o.split(":")}))||[];return[new il(ws.LinearGradient,{angle:Yn(parseFloat(n[1]),"deg"),steps:a.map(function(o){var A=(0,H.Z)(o,2),l=A[0],c=A[1];return{offset:Yn(Number(l)*100,"%"),color:c}})})]}}else if(e==="r"){var s=Am(r);if(s)if(gn(s))r=s;else return[new il(ws.RadialGradient,s)]}else if(e==="p")return lm(r)}});function Am(r){var t=nm.exec(r);if(t){var e,n=((e=t[4].match(Af))===null||e===void 0?void 0:e.map(function(i){return i.split(":")}))||[];return{cx:Yn(50,"%"),cy:Yn(50,"%"),steps:n.map(function(i){var a=(0,H.Z)(i,2),s=a[0],o=a[1];return{offset:Yn(Number(s)*100,"%"),color:o}})}}return null}function lm(r){var t=of.exec(r);if(t){var e=t[1],n=t[2];switch(e){case"a":e="repeat";break;case"x":e="repeat-x";break;case"y":e="repeat-y";break;case"n":e="no-repeat";break;default:e="no-repeat"}return{image:n,repetition:e}}return null}function EE(r){return!!r.type&&!!r.value}function So(r){return r&&!!r.image}function Nc(r){return r&&!Re(r.r)&&!Re(r.g)&&!Re(r.b)}var sl=Nn(function(r){if(So(r))return(0,z.Z)({repetition:"repeat"},r);if(Re(r)&&(r=""),r==="transparent")return Ic;if(r==="currentColor")r="black";else if(r==="none")return af;var t=om(r);if(t)return t;var e=Cc(r),n=[0,0,0,0];return e!==null&&(n[0]=e.r||0,n[1]=e.g||0,n[2]=e.b||0,n[3]=e.opacity),vA.apply(void 0,n)});function cm(r,t){if(!(!Nc(r)||!Nc(t)))return[[Number(r.r),Number(r.g),Number(r.b),Number(r.alpha)],[Number(t.r),Number(t.g),Number(t.b),Number(t.alpha)],function(e){var n=e.slice();if(n[3])for(var i=0;i<3;i++)n[i]=Math.round(dr(n[i],0,255));return n[3]=dr(n[3],0,1),"rgba(".concat(n.join(","),")")}]}function ol(r,t){if(Re(t))return Yn(0,"px");if(t="".concat(t).trim().toLowerCase(),isFinite(Number(t))){if("px".search(r)>=0)return Yn(Number(t),"px");if("deg".search(r)>=0)return Yn(Number(t),"deg")}var e=[];t=t.replace(r,function(i){return e.push(i),"U".concat(i)});var n="U(".concat(r.source,")");return e.map(function(i){return Yn(Number(t.replace(new RegExp("U".concat(i),"g"),"").replace(new RegExp(n,"g"),"*0")),i)})[0]}var E=function(t){return ol(new RegExp("px","g"),t)},m=Nn(E),b=function(t){return ol(new RegExp("%","g"),t)};Nn(b);var B=function(t){return ye(t)||isFinite(Number(t))?Yn(Number(t)||0,"px"):ol(new RegExp("px|%|em|rem","g"),t)},Q=Nn(B),V=function(t){return ol(new RegExp("deg|rad|grad|turn","g"),t)},tt=Nn(V);function lt(r,t,e,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,a="",s=r.value||0,o=t.value||0,A=$u(r.unit),l=r.convertTo(A),c=t.convertTo(A);return l&&c?(s=l.value,o=c.value,a=qu(r.unit)):(_n.isLength(r.unit)||_n.isLength(t.unit))&&(s=St(r,i,e),o=St(t,i,e),a="px"),[s,o,function(u){return n&&(u=Math.max(u,0)),u+a}]}function at(r){var t=0;return r.unit===fe.kDegrees?t=r.value:r.unit===fe.kRadians?t=bi(Number(r.value)):r.unit===fe.kTurns?t=Vd(Number(r.value)):r.value&&(t=r.value),t}function bt(r,t){var e;return Array.isArray(r)?e=r.map(function(n){return Number(n)}):gn(r)?e=r.split(" ").map(function(n){return Number(n)}):ye(r)&&(e=[r]),t===2?e.length===1?[e[0],e[0]]:[e[0],e[1]]:t===4?e.length===1?[e[0],e[0],e[0],e[0]]:e.length===2?[e[0],e[1],e[0],e[1]]:e.length===3?[e[0],e[1],e[2],e[1]]:[e[0],e[1],e[2],e[3]]:t==="even"&&e.length%2===1?[].concat((0,G.Z)(e),(0,G.Z)(e)):e}function St(r,t,e){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(r.unit===fe.kPixels)return Number(r.value);if(r.unit===fe.kPercentage&&e){var i=e.nodeName===Kt.GROUP?e.getLocalBounds():e.getGeometryBounds();return(n?i.min[t]:0)+r.value/100*i.halfExtents[t]*2}return 0}var Ut=function(t){return ol(/deg|rad|grad|turn|px|%/g,t)},Jt=["blur","brightness","drop-shadow","contrast","grayscale","sepia","saturate","hue-rotate","invert"];function Te(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";if(r=r.toLowerCase().trim(),r==="none")return[];for(var t=/\s*([\w-]+)\(([^)]*)\)/g,e=[],n,i=0;n=t.exec(r);){if(n.index!==i)return[];if(i=n.index+n[0].length,Jt.indexOf(n[1])>-1&&e.push({name:n[1],params:n[2].split(" ").map(function(a){return Ut(a)||sl(a)})}),t.lastIndex===r.length)return e}return[]}function he(r){return r.toString()}var Be=function(t){return typeof t=="number"?Yn(t):/^\s*[-+]?(\d*\.)?\d+\s*$/.test(t)?Yn(Number(t)):Yn(0)},rn=Nn(Be);Nn(function(r){return gn(r)?r.split(" ").map(rn):r.map(rn)});function Ue(r,t){return[r,t,he]}function Le(r,t){return function(e,n){return[e,n,function(i){return he(dr(i,r,t))}]}}function Mn(r,t){if(r.length===t.length)return[r,t,function(e){return e}]}function An(r){return r.parsedStyle.d.totalLength===0&&(r.parsedStyle.d.totalLength=np(r.parsedStyle.d.absolutePath)),r.parsedStyle.d.totalLength}function Ye(r){return r.parsedStyle.points.totalLength===0&&(r.parsedStyle.points.totalLength=Hu(r.parsedStyle.points.points)),r.parsedStyle.points.totalLength}function Fe(r){for(var t=0;t0&&e.push(n),{polygons:t,polylines:e}}function We(r,t){return r[0]===t[0]&&r[1]===t[1]}function Or(r,t){for(var e=[],n=[],i=[],a=0;aMath.PI/2?Math.PI-l:l,c=c>Math.PI/2?Math.PI-c:c;var u={xExtra:Math.cos(A/2-l)*(t/2*(1/Math.sin(A/2)))-t/2||0,yExtra:Math.cos(c-A/2)*(t/2*(1/Math.sin(A/2)))-t/2||0};return u}function Di(r,t){return[t[0]+(t[0]-r[0]),t[1]+(t[1]-r[1])]}var zn=function(t,e){var n=t.x*e.x+t.y*e.y,i=Math.sqrt((Math.pow(t.x,2)+Math.pow(t.y,2))*(Math.pow(e.x,2)+Math.pow(e.y,2))),a=t.x*e.y-t.y*e.x<0?-1:1,s=a*Math.acos(n/i);return s},Vr=function(t,e,n,i,a,s,o,A){e=Math.abs(e),n=Math.abs(n),i=Ed(i,360);var l=Un(i);if(t.x===o.x&&t.y===o.y)return{x:t.x,y:t.y,ellipticalArcAngle:0};if(e===0||n===0)return{x:0,y:0,ellipticalArcAngle:0};var c=(t.x-o.x)/2,u=(t.y-o.y)/2,h={x:Math.cos(l)*c+Math.sin(l)*u,y:-Math.sin(l)*c+Math.cos(l)*u},d=Math.pow(h.x,2)/Math.pow(e,2)+Math.pow(h.y,2)/Math.pow(n,2);d>1&&(e*=Math.sqrt(d),n*=Math.sqrt(d));var f=Math.pow(e,2)*Math.pow(n,2)-Math.pow(e,2)*Math.pow(h.y,2)-Math.pow(n,2)*Math.pow(h.x,2),g=Math.pow(e,2)*Math.pow(h.y,2)+Math.pow(n,2)*Math.pow(h.x,2),v=f/g;v=v<0?0:v;var p=(a!==s?1:-1)*Math.sqrt(v),y={x:p*(e*h.y/n),y:p*(-(n*h.x)/e)},x={x:Math.cos(l)*y.x-Math.sin(l)*y.y+(t.x+o.x)/2,y:Math.sin(l)*y.x+Math.cos(l)*y.y+(t.y+o.y)/2},F={x:(h.x-y.x)/e,y:(h.y-y.y)/n},O=zn({x:1,y:0},F),L={x:(-h.x-y.x)/e,y:(-h.y-y.y)/n},U=zn(F,L);!s&&U>0?U-=2*Math.PI:s&&U<0&&(U+=2*Math.PI),U%=2*Math.PI;var R=O+U*A,j=e*Math.cos(R),q=n*Math.sin(R),et={x:Math.cos(l)*j-Math.sin(l)*q+x.x,y:Math.sin(l)*j+Math.cos(l)*q+x.y,ellipticalArcStartAngle:O,ellipticalArcEndAngle:O+U,ellipticalArcAngle:R,ellipticalArcCenter:x,resultantRx:e,resultantRy:n};return et};function Xs(r){for(var t=[],e=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,A=n.xRotation,l=n.arcFlag,c=n.sweepFlag,u=Vr({x:r.prePoint[0],y:r.prePoint[1]},a,o,A,!!l,!!c,{x:r.currentPoint[0],y:r.currentPoint[1]},t),h=Vr({x:r.prePoint[0],y:r.prePoint[1]},a,o,A,!!l,!!c,{x:r.currentPoint[0],y:r.currentPoint[1]},e?t+.005:t-.005),d=h.x-u.x,f=h.y-u.y,g=Math.sqrt(d*d+f*f);return{x:-d/g,y:-f/g}}function oi(r){return Math.sqrt(r[0]*r[0]+r[1]*r[1])}function Es(r,t){return oi(r)*oi(t)?(r[0]*t[0]+r[1]*t[1])/(oi(r)*oi(t)):1}function Na(r,t){return(r[0]*t[1]1&&(e*=Math.sqrt(d),n*=Math.sqrt(d));var f=e*e*(h*h)+n*n*(u*u),g=f?Math.sqrt((e*e*(n*n)-f)/f):1;a===s&&(g*=-1),isNaN(g)&&(g=0);var v=n?g*e*h/n:0,p=e?g*-n*u/e:0,y=(o+l)/2+Math.cos(i)*v-Math.sin(i)*p,x=(A+c)/2+Math.sin(i)*v+Math.cos(i)*p,F=[(u-v)/e,(h-p)/n],O=[(-1*u-v)/e,(-1*h-p)/n],L=Na([1,0],F),U=Na(F,O);return Es(F,O)<=-1&&(U=Math.PI),Es(F,O)>=1&&(U=0),s===0&&U>0&&(U-=2*Math.PI),s===1&&U<0&&(U+=2*Math.PI),{cx:y,cy:x,rx:We(r,[l,c])?0:e,ry:We(r,[l,c])?0:n,startAngle:L,endAngle:L+U,xRotation:i,arcFlag:a,sweepFlag:s}}function Mo(r,t,e){return r.reduce(function(n,i){var a="";if(i[0]==="M"||i[0]==="L"){var s=vec3.fromValues(i[1],i[2],0);e&&vec3.transformMat4(s,s,e),a="".concat(i[0]).concat(s[0],",").concat(s[1])}else if(i[0]==="Z")a=i[0];else if(i[0]==="C"){var o=vec3.fromValues(i[1],i[2],0),A=vec3.fromValues(i[3],i[4],0),l=vec3.fromValues(i[5],i[6],0);e&&(vec3.transformMat4(o,o,e),vec3.transformMat4(A,A,e),vec3.transformMat4(l,l,e)),a="".concat(i[0]).concat(o[0],",").concat(o[1],",").concat(A[0],",").concat(A[1],",").concat(l[0],",").concat(l[1])}else if(i[0]==="A"){var c=vec3.fromValues(i[6],i[7],0);e&&vec3.transformMat4(c,c,e),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 u=vec3.fromValues(i[1],i[2],0),h=vec3.fromValues(i[3],i[4],0);e&&(vec3.transformMat4(u,u,e),vec3.transformMat4(h,h,e)),a="".concat(i[0]).concat(i[1],",").concat(i[2],",").concat(i[3],",").concat(i[4],"}")}return n+=a},"")}function Fo(r,t,e,n){return[["M",r,t],["L",e,n]]}function $a(r,t,e,n){var i=(-1+Math.sqrt(2))/3*4,a=r*i,s=t*i,o=e-r,A=e+r,l=n-t,c=n+t;return[["M",o,n],["C",o,n-s,e-a,l,e,l],["C",e+a,l,A,n-s,A,n],["C",A,n+s,e+a,c,e,c],["C",e-a,c,o,n+s,o,n],["Z"]]}function To(r,t){var e=r.map(function(n,i){return[i===0?"M":"L",n[0],n[1]]});return t&&e.push(["Z"]),e}function Bs(r,t,e,n,i){if(i){var a=_slicedToArray(i,4),s=a[0],o=a[1],A=a[2],l=a[3],c=r>0?1:-1,u=t>0?1:-1,h=c+u!==0?1:0;return[["M",c*s+e,n],["L",r-c*o+e,n],o?["A",o,o,0,0,h,r+e,u*o+n]:null,["L",r+e,t-u*A+n],A?["A",A,A,0,0,h,r+e-c*A,t+n]:null,["L",e+c*l,t+n],l?["A",l,l,0,0,h,e,t+n-u*l]:null,["L",e,u*s+n],s?["A",s,s,0,0,h,c*s+e,n]:null,["Z"]].filter(function(d){return d})}return[["M",e,n],["L",e+r,n],["L",e+r,n+t],["L",e,n+t],["Z"]]}function Al(r){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:r.getLocalTransform(),e=[];switch(r.nodeName){case Kt.LINE:var n=r.parsedStyle,i=n.x1,a=i===void 0?0:i,s=n.y1,o=s===void 0?0:s,A=n.x2,l=A===void 0?0:A,c=n.y2,u=c===void 0?0:c;e=Fo(a,o,l,u);break;case Kt.CIRCLE:{var h=r.parsedStyle,d=h.r,f=d===void 0?0:d,g=h.cx,v=g===void 0?0:g,p=h.cy,y=p===void 0?0:p;e=$a(f,f,v,y);break}case Kt.ELLIPSE:{var x=r.parsedStyle,F=x.rx,O=F===void 0?0:F,L=x.ry,U=L===void 0?0:L,R=x.cx,j=R===void 0?0:R,q=x.cy,et=q===void 0?0:q;e=$a(O,U,j,et);break}case Kt.POLYLINE:case Kt.POLYGON:var it=r.parsedStyle.points;e=To(it.points,r.nodeName===Kt.POLYGON);break;case Kt.RECT:var dt=r.parsedStyle,ft=dt.width,mt=ft===void 0?0:ft,Rt=dt.height,Qt=Rt===void 0?0:Rt,yt=dt.x,xt=yt===void 0?0:yt,Dt=dt.y,Xt=Dt===void 0?0:Dt,ne=dt.radius,le=ne&&ne.some(function(xe){return xe!==0});e=Bs(mt,Qt,xt,Xt,le&&ne.map(function(xe){return clamp(xe,0,Math.min(Math.abs(mt)/2,Math.abs(Qt)/2))}));break;case Kt.PATH:var ge=r.parsedStyle.d.absolutePath;e=_toConsumableArray(ge);break}if(e.length)return Mo(e,r,t)}function Lc(r){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,e=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 A=s[0],l=r[o+1],c=o===0&&(t!==0||e!==0),u=(o===r.length-1||l&&(l[0]==="M"||l[0]==="Z"))&&n!==0&&i!==0,h=c?[t,e]:[0,0],d=_slicedToArray(h,2),f=d[0],g=d[1],v=u?[n,i]:[0,0],p=_slicedToArray(v,2),y=p[0],x=p[1];switch(A){case"M":return"M ".concat(s[1]+f,",").concat(s[2]+g);case"L":return"L ".concat(s[1]+y,",").concat(s[2]+x);case"Q":return"Q ".concat(s[1]," ").concat(s[2],",").concat(s[3]+y," ").concat(s[4]+x);case"C":return"C ".concat(s[1]," ").concat(s[2],",").concat(s[3]," ").concat(s[4],",").concat(s[5]+y," ").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]," ").concat(s[7]).concat(u?" L ".concat(s[6]+n,",").concat(s[7]+i):"");case"Z":return"Z";default:return null}}).filter(function(s){return s!==null}).join(" ");return~a.indexOf("NaN")?"":a}var BE=function(t){if(t===""||Array.isArray(t)&&t.length===0)return{absolutePath:[],hasArc:!1,segments:[],polygons:[],polylines:[],curve:null,totalLength:0,rect:{x:0,y:0,width:0,height:0}};var e;try{e=rc(t)}catch(d){e=rc(""),console.error("[g]: Invalid SVG Path definition: ".concat(t))}Fe(e);var n=bn(e),i=xn(e),a=i.polygons,s=i.polylines,o=Xs(e),A=Or(o,0),l=A.x,c=A.y,u=A.width,h=A.height;return{absolutePath:e,hasArc:n,segments:o,polygons:a,polylines:s,totalLength:0,rect:{x:Number.isFinite(l)?l:0,y:Number.isFinite(c)?c:0,width:Number.isFinite(u)?u:0,height:Number.isFinite(h)?h:0}}},DM=Nn(BE);function bE(r){return gn(r)?DM(r):BE(r)}function PM(r,t,e){var n=r.curve,i=t.curve;(!n||n.length===0)&&(n=Iu(r.absolutePath,!1),r.curve=n),(!i||i.length===0)&&(i=Iu(t.absolutePath,!1),t.curve=i);var a=[n,i];n.length!==i.length&&(a=xd(n,i));var s=Cd(a[0])!==Cd(a[1])?cp(a[0]):up(a[0]);return[s,Sd(a[1],s),function(o){return o}]}function _M(r,t){var e;return gn(r)?e=r.split(" ").map(function(n){var i=n.split(","),a=(0,H.Z)(i,2),s=a[0],o=a[1];return[Number(s),Number(o)]}):e=r,{points:e,totalLength:0,segments:[]}}function HM(r,t){return[r.points,t.points,function(e){return e}]}var Cr=null,kc=/\s*(\w+)\(([^)]*)\)/g;function fa(r){return function(t){var e=0;return r.map(function(n){return n===Cr?t[e++]:n})}}function ll(r){return r}var eh={matrix:["NNNNNN",[Cr,Cr,0,0,Cr,Cr,0,0,0,0,1,0,Cr,Cr,0,1],ll],matrix3d:["NNNNNNNNNNNNNNNN",ll],rotate:["A"],rotateX:["A"],rotateY:["A"],rotateZ:["A"],rotate3d:["NNNA"],perspective:["L"],scale:["Nn",fa([Cr,Cr,new _n(1)]),ll],scaleX:["N",fa([Cr,new _n(1),new _n(1)]),fa([Cr,new _n(1)])],scaleY:["N",fa([new _n(1),Cr,new _n(1)]),fa([new _n(1),Cr])],scaleZ:["N",fa([new _n(1),new _n(1),Cr])],scale3d:["NNN",ll],skew:["Aa",null,ll],skewX:["A",null,fa([Cr,Co])],skewY:["A",null,fa([Co,Cr])],translate:["Tt",fa([Cr,Cr,Ia]),ll],translateX:["T",fa([Cr,Ia,Ia]),fa([Cr,Ia])],translateY:["T",fa([Ia,Cr,Ia]),fa([Ia,Cr])],translateZ:["L",fa([Ia,Ia,Cr])],translate3d:["TTL",ll]};function xE(r){for(var t=[],e=r.length,n=0;n2&&arguments[2]!==void 0?arguments[2]:{skipUpdateAttribute:!1,skipParse:!1,forceUpdateGeometry:!1,usedAttributes:[],memoize:!0};Object.assign(e.attributes,n);var a=e.parsedStyle.clipPath,s=e.parsedStyle.offsetPath;eF(e,n);var o=!!i.forceUpdateGeometry;if(!o){for(var A in n)if($M.has(A)){o=!0;break}}var l=TE(e);l.has("fill")&&n.fill&&(e.parsedStyle.fill=sl(n.fill)),l.has("stroke")&&n.stroke&&(e.parsedStyle.stroke=sl(n.stroke)),l.has("shadowColor")&&n.shadowColor&&(e.parsedStyle.shadowColor=sl(n.shadowColor)),l.has("filter")&&n.filter&&(e.parsedStyle.filter=Te(n.filter)),l.has("radius")&&!Re(n.radius)&&(e.parsedStyle.radius=bt(n.radius,4)),l.has("lineDash")&&!Re(n.lineDash)&&(e.parsedStyle.lineDash=bt(n.lineDash,"even")),l.has("points")&&n.points&&(e.parsedStyle.points=_M(n.points)),l.has("d")&&n.d===""&&(e.parsedStyle.d=(0,z.Z)({},vs)),l.has("d")&&n.d&&(e.parsedStyle.d=bE(n.d)),l.has("textTransform")&&n.textTransform&&this.runtime.CSSPropertySyntaxFactory[oe.TEXT_TRANSFORM].calculator(null,null,{value:n.textTransform},e,null),l.has("clipPath")&&!Ze(n.clipPath)&&this.runtime.CSSPropertySyntaxFactory[oe.DEFINED_PATH].calculator("clipPath",a,n.clipPath,e,this.runtime),l.has("offsetPath")&&n.offsetPath&&this.runtime.CSSPropertySyntaxFactory[oe.DEFINED_PATH].calculator("offsetPath",s,n.offsetPath,e,this.runtime),l.has("transform")&&n.transform&&(e.parsedStyle.transform=CE(n.transform)),l.has("transformOrigin")&&n.transformOrigin&&(e.parsedStyle.transformOrigin=qM(n.transformOrigin)),l.has("markerStart")&&n.markerStart&&(e.parsedStyle.markerStart=this.runtime.CSSPropertySyntaxFactory[oe.MARKER].calculator(null,n.markerStart,n.markerStart,null,null)),l.has("markerEnd")&&n.markerEnd&&(e.parsedStyle.markerEnd=this.runtime.CSSPropertySyntaxFactory[oe.MARKER].calculator(null,n.markerEnd,n.markerEnd,null,null)),l.has("markerMid")&&n.markerMid&&(e.parsedStyle.markerMid=this.runtime.CSSPropertySyntaxFactory[oe.MARKER].calculator("",n.markerMid,n.markerMid,null,null)),l.has("zIndex")&&!Re(n.zIndex)&&this.runtime.CSSPropertySyntaxFactory[oe.Z_INDEX].postProcessor(e),l.has("offsetDistance")&&!Re(n.offsetDistance)&&this.runtime.CSSPropertySyntaxFactory[oe.OFFSET_DISTANCE].postProcessor(e),l.has("transform")&&n.transform&&this.runtime.CSSPropertySyntaxFactory[oe.TRANSFORM].postProcessor(e),l.has("transformOrigin")&&n.transformOrigin&&this.runtime.CSSPropertySyntaxFactory[oe.TRANSFORM_ORIGIN].postProcessor(e),o&&(e.dirty(!0,!0),i.forceUpdateGeometry||this.runtime.sceneGraphService.dirtyToRoot(e))}},{key:"updateGeometry",value:function(e){var n=e.nodeName,i=this.runtime.geometryUpdaterFactory[n];if(i){var a=e.geometry;a.contentBounds||(a.contentBounds=new Zn),a.renderBounds||(a.renderBounds=new Zn);var s=e.parsedStyle,o=i.update(s,e),A=o.cx,l=A===void 0?0:A,c=o.cy,u=c===void 0?0:c,h=o.cz,d=h===void 0?0:h,f=o.hwidth,g=f===void 0?0:f,v=o.hheight,p=v===void 0?0:v,y=o.hdepth,x=y===void 0?0:y,F=[Math.abs(g),Math.abs(p),x],O=s.stroke,L=s.lineWidth,U=L===void 0?1:L,R=s.increasedLineWidthForHitTesting,j=R===void 0?0:R,q=s.shadowType,et=q===void 0?"outer":q,it=s.shadowColor,dt=s.filter,ft=dt===void 0?[]:dt,mt=s.transformOrigin,Rt=[l,u,d];a.contentBounds.update(Rt,F);var Qt=n===Kt.POLYLINE||n===Kt.POLYGON||n===Kt.PATH?Math.SQRT2:.5,yt=O&&!O.isNone;if(yt){var xt=((U||0)+(j||0))*Qt;F[0]+=xt,F[1]+=xt}if(a.renderBounds.update(Rt,F),it&&et&&et!=="inner"){var Dt=a.renderBounds,Xt=Dt.min,ne=Dt.max,le=s.shadowBlur,ge=s.shadowOffsetX,xe=s.shadowOffsetY,Qe=le||0,Pe=ge||0,en=xe||0,mn=Xt[0]-Qe+Pe,an=ne[0]+Qe+Pe,er=Xt[1]-Qe+en,kn=ne[1]+Qe+en;Xt[0]=Math.min(Xt[0],mn),ne[0]=Math.max(ne[0],an),Xt[1]=Math.min(Xt[1],er),ne[1]=Math.max(ne[1],kn),a.renderBounds.setMinMax(Xt,ne)}ft.forEach(function(Bn){var Us=Bn.name,hi=Bn.params;if(Us==="blur"){var Vi=hi[0].value;a.renderBounds.update(a.renderBounds.center,de(a.renderBounds.halfExtents,a.renderBounds.halfExtents,[Vi,Vi,0]))}else if(Us==="drop-shadow"){var cn=hi[0].value,Fn=hi[1].value,hn=hi[2].value,Sn=a.renderBounds,Rn=Sn.min,ke=Sn.max,Tn=Rn[0]-hn+cn,En=ke[0]+hn+cn,ur=Rn[1]-hn+Fn,qe=ke[1]+hn+Fn;Rn[0]=Math.min(Rn[0],Tn),ke[0]=Math.max(ke[0],En),Rn[1]=Math.min(Rn[1],ur),ke[1]=Math.max(ke[1],qe),a.renderBounds.setMinMax(Rn,ke)}}),e.geometry.dirty=!1;var Cn=g<0,vr=p<0,wa=(Cn?-1:1)*(mt?St(mt[0],0,e,!0):0),Hn=(vr?-1:1)*(mt?St(mt[1],1,e,!0):0);(wa||Hn)&&e.setOrigin(wa,Hn)}}},{key:"updateSizeAttenuation",value:function(e,n){e.style.isSizeAttenuation?(e.style.rawLineWidth||(e.style.rawLineWidth=e.style.lineWidth),e.style.lineWidth=(e.style.rawLineWidth||1)/n,e.nodeName===Kt.CIRCLE&&(e.style.rawR||(e.style.rawR=e.style.r),e.style.r=(e.style.rawR||1)/n)):(e.style.rawLineWidth&&(e.style.lineWidth=e.style.rawLineWidth,delete e.style.rawLineWidth),e.nodeName===Kt.CIRCLE&&e.style.rawR&&(e.style.r=e.style.rawR,delete e.style.rawR))}}])}();function eF(r,t){var e=TE(r);for(var n in t)e.has(n)&&(r.parsedStyle[n]=t[n])}function TE(r){return r.constructor.PARSED_STYLE_LIST}var nF=function(){function r(){(0,P.Z)(this,r),this.mixer=Ue}return(0,N.Z)(r,[{key:"calculator",value:function(e,n,i,a){return at(i)}}])}(),rF=function(){function r(){(0,P.Z)(this,r)}return(0,N.Z)(r,[{key:"calculator",value:function(e,n,i,a,s){return i instanceof Ri&&(i=null),s.sceneGraphService.updateDisplayObjectDependency(e,n,i,a),e==="clipPath"&&a.forEach(function(o){o.childNodes.length===0&&s.sceneGraphService.dirtyToRoot(o)}),i}}])}(),iF=function(){function r(){(0,P.Z)(this,r),this.parser=sl,this.mixer=cm}return(0,N.Z)(r,[{key:"calculator",value:function(e,n,i,a){return i instanceof Ri?i.value==="none"?af:Ic:i}}])}(),aF=function(){function r(){(0,P.Z)(this,r)}return(0,N.Z)(r,[{key:"calculator",value:function(e,n,i){return i instanceof Ri?[]:i}}])}();function OE(r){var t=r.parsedStyle,e=t.fontSize;return Re(e)?null:e}var gm=function(){function r(){(0,P.Z)(this,r),this.mixer=Ue}return(0,N.Z)(r,[{key:"calculator",value:function(e,n,i,a,s){if(ye(i))return i;if(_n.isRelativeUnit(i.unit)){if(i.unit===fe.kPercentage)return 0;if(i.unit===fe.kEms){if(a.parentNode){var o=OE(a.parentNode);if(o)return o*=i.value,o}return 0}if(i.unit===fe.kRems){var A;if(a!=null&&(A=a.ownerDocument)!==null&&A!==void 0&&A.documentElement){var l=OE(a.ownerDocument.documentElement);if(l)return l*=i.value,l}return 0}}else return i.value}}])}(),sF=function(){function r(){(0,P.Z)(this,r),this.mixer=Mn}return(0,N.Z)(r,[{key:"calculator",value:function(e,n,i){return i.map(function(a){return a.value})}}])}(),oF=function(){function r(){(0,P.Z)(this,r),this.mixer=Mn}return(0,N.Z)(r,[{key:"calculator",value:function(e,n,i){return i.map(function(a){return a.value})}}])}(),AF=function(){function r(){(0,P.Z)(this,r)}return(0,N.Z)(r,[{key:"calculator",value:function(e,n,i,a){var s;i instanceof Ri&&(i=null);var o=(s=i)===null||s===void 0?void 0:s.cloneNode(!0);return o&&(o.style.isMarker=!0),o}}])}(),lF=function(){function r(){(0,P.Z)(this,r),this.mixer=Ue}return(0,N.Z)(r,[{key:"calculator",value:function(e,n,i){return i.value}}])}(),cF=function(){function r(){(0,P.Z)(this,r),this.mixer=Le(0,1)}return(0,N.Z)(r,[{key:"calculator",value:function(e,n,i){return i.value}},{key:"postProcessor",value:function(e){var n=e.parsedStyle,i=n.offsetPath,a=n.offsetDistance;if(i){var s=i.nodeName;if(s===Kt.LINE||s===Kt.PATH||s===Kt.POLYLINE){var o=i.getPoint(a);o&&e.setLocalPosition(o.x,o.y)}}}}])}(),uF=function(){function r(){(0,P.Z)(this,r),this.mixer=Le(0,1)}return(0,N.Z)(r,[{key:"calculator",value:function(e,n,i){return i.value}}])}(),hF=function(){function r(){(0,P.Z)(this,r),this.parser=bE,this.mixer=PM}return(0,N.Z)(r,[{key:"calculator",value:function(e,n,i){return i instanceof Ri&&i.value==="unset"?{absolutePath:[],hasArc:!1,segments:[],polygons:[],polylines:[],curve:null,totalLength:0,rect:new fs(0,0,0,0)}:i}}])}(),dF=(0,N.Z)(function r(){(0,P.Z)(this,r),this.mixer=HM}),fF=function(r){function t(){var e;(0,P.Z)(this,t);for(var n=arguments.length,i=new Array(n),a=0;a>>1;IE(r[i],t)<0?e=i+1:n=i}return e}function IE(r,t){var e=Number(r.parsedStyle.zIndex||0),n=Number(t.parsedStyle.zIndex||0);if(e===n){var i=r.parentNode;if(i){var a=i.childNodes||[];return a.indexOf(r)-a.indexOf(t)}}return e-n}function NE(r){var t=r;do{var e,n=(e=t.parsedStyle)===null||e===void 0?void 0:e.clipPath;if(n)return t;t=t.parentElement}while(t!==null);return null}var LE="px";function wF(r,t,e){pm&&r.style&&(r.style.width=t+LE,r.style.height=e+LE)}function kE(r,t){if(pm)return document.defaultView.getComputedStyle(r,null).getPropertyValue(t)}function EF(r){var t=kE(r,"width");return t==="auto"?r.offsetWidth:parseFloat(t)}function BF(r){var t=kE(r,"height");return t==="auto"?r.offsetHeight:parseFloat(t)}var bF=1,xF={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},mm=typeof performance=="object"&&performance.now?performance:Date;function lf(r){return r.nodeName===Kt.FRAGMENT?!0:r.getRootNode().nodeName===Kt.FRAGMENT}function cl(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"auto",t=arguments.length>1?arguments[1]:void 0,e=arguments.length>2?arguments[2]:void 0,n=!1,i=!1,a=!!t&&!t.isNone,s=!!e&&!e.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 CF=1,SF=function(){return CF++},qs=typeof self=="object"&&self.self===self?self:typeof T.g=="object"&&T.g.global===T.g?T.g:{},MF=Date.now(),FF=function(){return qs.performance&&typeof qs.performance.now=="function"?qs.performance.now():Date.now()-MF},nh={},QE=Date.now(),TF=function(t){if(typeof t!="function")throw new TypeError("".concat(t," is not a function"));var e=Date.now(),n=e-QE,i=n>16?0:16-n,a=SF();return nh[a]=t,Object.keys(nh).length>1||setTimeout(function(){QE=e;var s=nh;nh={},Object.keys(s).forEach(function(o){return s[o](FF())})},i),a},OF=function(t){delete nh[t]},IF=["","webkit","moz","ms","o"],UE=function(t){return typeof t!="string"?TF:t===""?qs.requestAnimationFrame:qs["".concat(t,"RequestAnimationFrame")]},NF=function(t){return typeof t!="string"?OF:t===""?qs.cancelAnimationFrame:qs["".concat(t,"CancelAnimationFrame")]||qs["".concat(t,"CancelRequestAnimationFrame")]},LF=function(t,e){for(var n=0;t[n]!==void 0;){if(e(t[n]))return t[n];n+=1}},RE=LF(IF,function(r){return!!UE(r)}),ym=UE(RE),DE=NF(RE);qs.requestAnimationFrame=ym,qs.cancelAnimationFrame=DE;var kF=function(){function r(){(0,P.Z)(this,r),this.callbacks=[]}return(0,N.Z)(r,[{key:"getCallbacksNum",value:function(){return this.callbacks.length}},{key:"tapPromise",value:function(e,n){this.callbacks.push(n)}},{key:"promise",value:function(){for(var e=arguments.length,n=new Array(e),i=0;i=0;c--){var u=l[c].trim();!RF.test(u)&&UF.indexOf(u)<0&&(u='"'.concat(u,'"')),l[c]=u}return"".concat(a," ").concat(s," ").concat(o," ").concat(A," ").concat(l.join(","))},function(r){var t=PE(r),e=t.fontSize,n=t.fontFamily,i=t.fontStyle,a=t.fontVariant,s=t.fontWeight;return"".concat(i,"_").concat(a,"_").concat(s,"_").concat(e,"_").concat(n)}),DF=1e-6,rh=function(t){return Math.max(t,DF)};function Em(r,t,e){return Ie(r),r[4]=Math.tan(t),r[1]=Math.tan(e),r}var Dr=$t(),PF=$t(),_F={scale:function(t){Dn(Dr,[t[0].value,t[1].value,1].map(function(e){return rh(e)}))},scaleX:function(t){Dn(Dr,[t[0].value,1,1].map(function(e){return rh(e)}))},scaleY:function(t){Dn(Dr,[1,t[0].value,1].map(function(e){return rh(e)}))},scaleZ:function(t){Dn(Dr,[1,1,t[0].value].map(function(e){return rh(e)}))},scale3d:function(t){Dn(Dr,[t[0].value,t[1].value,t[2].value].map(function(e){return rh(e)}))},translate:function(t){Tr(Dr,[t[0].value,t[1].value,0])},translateX:function(t){Tr(Dr,[t[0].value,0,0])},translateY:function(t){Tr(Dr,[0,t[0].value,0])},translateZ:function(t){Tr(Dr,[0,0,t[0].value])},translate3d:function(t){Tr(Dr,[t[0].value,t[1].value,t[2].value])},rotate:function(t){Er(Dr,Un(at(t[0])))},rotateX:function(t){$i(Dr,Un(at(t[0])))},rotateY:function(t){fn(Dr,Un(at(t[0])))},rotateZ:function(t){Er(Dr,Un(at(t[0])))},rotate3d:function(t){qi(Dr,Un(at(t[3])),[t[0].value,t[1].value,t[2].value])},skew:function(t){Em(Dr,Un(t[0].value),Un(t[1].value))},skewX:function(t){Em(Dr,Un(t[0].value),0)},skewY:function(t){Em(Dr,0,Un(t[0].value))},matrix:function(t){Wn(Dr,t[0].value,t[1].value,0,0,t[2].value,t[3].value,0,0,0,0,1,0,t[4].value,t[5].value,0,1)},matrix3d:function(t){Wn.apply(I,[Dr].concat((0,G.Z)(t.map(function(e){return e.value}))))}},HF=Wt(1,1,1),GF=Ot(),HE={translate:function(t,e){re.sceneGraphService.setLocalScale(t,HF,!1),re.sceneGraphService.setLocalEulerAngles(t,GF,void 0,void 0,!1),re.sceneGraphService.setLocalPosition(t,[e[0].value,e[1].value,0],!1),re.sceneGraphService.dirtyLocalTransform(t,t.transformable)}};function GE(r,t){if(r.length){if(r.length===1&&HE[r[0].t]){HE[r[0].t](t,r[0].d);return}for(var e=Ie(PF),n=0;n1&&arguments[1]!==void 0?arguments[1]:!1,i=arguments.length>2?arguments[2]:void 0;if(i)return this.dispatchEventToSelf(e),!0;var a;if(this.document)a=this;else if(this.defaultView)a=this.defaultView;else{var s;a=(s=this.ownerDocument)===null||s===void 0?void 0:s.defaultView}if(a){if(e.manager=a.getEventService(),!e.manager)return!1;e.defaultPrevented=!1,e.path?e.path.length=0:e.page=[],n||(e.target=this),e.manager.dispatchEvent(e,e.type,n)}else this.dispatchEventToSelf(e);return!e.defaultPrevented}}])}(),pr=function(r){function t(){var e;(0,P.Z)(this,t);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(On)}},{key:"lookupNamespaceURI",value:function(n){throw new Error(On)}},{key:"lookupPrefix",value:function(n){throw new Error(On)}},{key:"normalize",value:function(){throw new Error(On)}},{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];(A=i.parentNode)!==null&&A!==void 0?A:a.parentNode;){var A;i=i.parentNode?(s.push(i.parentNode),i.parentNode):i,a=a.parentNode?(o.push(a.parentNode),a.parentNode):a}if(i!==a)return t.DOCUMENT_POSITION_DISCONNECTED|t.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC|t.DOCUMENT_POSITION_PRECEDING;var l=s.length>o.length?s:o,c=l===s?o:s;if(l[l.length-c.length]===c[0])return l===s?t.DOCUMENT_POSITION_CONTAINED_BY|t.DOCUMENT_POSITION_FOLLOWING:t.DOCUMENT_POSITION_CONTAINS|t.DOCUMENT_POSITION_PRECEDING;for(var u=l.length-c.length,h=c.length-1;h>=0;h--){var d=c[h],f=l[u+h];if(f!==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}}])}(KE);pr.DOCUMENT_POSITION_DISCONNECTED=1,pr.DOCUMENT_POSITION_PRECEDING=2,pr.DOCUMENT_POSITION_FOLLOWING=4,pr.DOCUMENT_POSITION_CONTAINS=8,pr.DOCUMENT_POSITION_CONTAINED_BY=16,pr.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC=32;var eT=2048,nT=function(){function r(t,e){var n=this;(0,P.Z)(this,r),this.nativeHTMLMap=new WeakMap,this.cursor="default",this.mappingTable={},this.mappingState={trackingData:{}},this.eventPool=new Map,this.tmpMatrix=$t(),this.tmpVec3=Ot(),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=mm.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 A=n.trackingData(i.pointerId),l=n.findMountedTarget(A.pressTargetsByButton[i.button]),c=l;if(l&&!s.composedPath().includes(l)){for(var u=l;u&&!s.composedPath().includes(u);){if(s.currentTarget=u,n.notifyTarget(s,"pointerupoutside"),s.pointerType==="touch")n.notifyTarget(s,"touchendoutside");else if(s.pointerType==="mouse"||s.pointerType==="pen"){var h=s.button===2;n.notifyTarget(s,h?"rightupoutside":"mouseupoutside")}pr.isNode(u)&&(u=u.parentNode)}delete A.pressTargetsByButton[i.button],c=u}if(c){var d,f=n.clonePointerEvent(s,"click");f.target=c,f.path=[],A.clicksByButton[i.button]||(A.clicksByButton[i.button]={clickCount:0,target:f.target,timeStamp:a});var g=n.context.renderingContext.root.ownerDocument.defaultView,v=A.clicksByButton[i.button];v.target===f.target&&a-v.timeStamp=1;a--)if(e.currentTarget=i[a],this.notifyTarget(e,n),e.propagationStopped||e.propagationImmediatelyStopped)return;if(e.eventPhase=e.AT_TARGET,e.currentTarget=e.target,this.notifyTarget(e,n),!(e.propagationStopped||e.propagationImmediatelyStopped)){var s=i.indexOf(e.currentTarget);e.eventPhase=e.BUBBLING_PHASE;for(var o=s+1;os||i>o?null:!A&&this.pickHandler(e)||this.rootTarget||null}},{key:"isNativeEventFromCanvas",value:function(e,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===e)return!0;if(e&&e.contains)return e.contains(a)}return n!=null&&n.composedPath?n.composedPath().indexOf(e)>-1:!1}},{key:"getExistedHTML",value:function(e){if(e.nativeEvent.composedPath)for(var n=0,i=e.nativeEvent.composedPath();n=0;i--){var a=e[i];if(a===this.rootTarget||pr.isNode(a)&&a.parentNode===n)n=e[i];else break}return n}},{key:"getCursor",value:function(e){for(var n=e;n;){var i=mF(n)&&n.getAttribute("cursor");if(i)return i;n=pr.isNode(n)&&n.parentNode}}}])}(),bm=function(){function r(){(0,P.Z)(this,r)}return(0,N.Z)(r,[{key:"getOrCreateCanvas",value:function(e,n){if(this.canvas)return this.canvas;if(e||re.offscreenCanvas)this.canvas=e||re.offscreenCanvas,this.context=this.canvas.getContext("2d",(0,z.Z)({willReadFrequently:!0},n));else try{this.canvas=new window.OffscreenCanvas(0,0),this.context=this.canvas.getContext("2d",(0,z.Z)({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",(0,z.Z)({willReadFrequently:!0},n))}return this.canvas.width=10,this.canvas.height=10,this.canvas}},{key:"getOrCreateContext",value:function(e,n){return this.context?this.context:(this.getOrCreateCanvas(e,n),this.context)}}],[{key:"createCanvas",value:function(){try{return new window.OffscreenCanvas(0,0)}catch(e){}try{return document.createElement("canvas")}catch(e){}return null}}])}(),Qc=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}({}),rT=function(){function r(t,e){(0,P.Z)(this,r),this.inited=!1,this.stats={total:0,rendered:0},this.zIndexCounter=0,this.hooks={init:new na,initAsync:new kF,dirtycheck:new wm,cull:new wm,beginFrame:new na,beforeRender:new na,render:new na,afterRender:new na,endFrame:new na,destroy:new na,pick:new QF,pickSync:new wm,pointerDown:new na,pointerUp:new na,pointerMove:new na,pointerOut:new na,pointerOver:new na,pointerWheel:new na,pointerCancel:new na,click:new na},this.globalRuntime=t,this.context=e}return(0,N.Z)(r,[{key:"init",value:function(e){var n=this,i=(0,z.Z)((0,z.Z)({},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,e()):this.hooks.initAsync.promise().then(function(){n.inited=!0,e()}).catch(function(a){})}},{key:"getStats",value:function(){return this.stats}},{key:"disableDirtyRectangleRendering",value:function(){var e=this.context.config.renderer,n=e.getConfig(),i=n.enableDirtyRectangleRendering;return!i||this.context.renderingContext.renderReasons.has(Qc.CAMERA_CHANGED)}},{key:"render",value:function(e,n,i){var a=this,s=e.getConfig(),o=this.context.renderingContext;if(this.stats.total=0,this.stats.rendered=0,this.zIndexCounter=0,this.globalRuntime.sceneGraphService.syncHierarchy(o.root),this.globalRuntime.sceneGraphService.notifyMutationObservers(e),o.renderReasons.size&&this.inited){o.dirtyRectangleRenderingDisabled=this.disableDirtyRectangleRendering();var A=o.renderReasons.size===1&&o.renderReasons.has(Qc.CAMERA_CHANGED),l=!s.disableRenderHooks||!A;l&&this.renderDisplayObject(o.root,s,o),this.hooks.beginFrame.call(n),l&&o.renderListCurrentFrame.forEach(function(c){a.hooks.beforeRender.call(c),a.hooks.render.call(c),a.hooks.afterRender.call(c)}),this.hooks.endFrame.call(n),o.renderListCurrentFrame=[],o.renderReasons.clear(),i()}}},{key:"renderDisplayObject",value:function(e,n,i){var a=this,s=n.renderer.getConfig(),o=s.enableDirtyCheck,A=s.enableCulling;function l(g){var v=g.renderable,p=g.sortable,y=o?v.dirty||i.dirtyRectangleRenderingDisabled?g:null:g,x=null;y&&(x=A?a.hooks.cull.call(y,a.context.camera):y,x&&(a.stats.rendered+=1,i.renderListCurrentFrame.push(x))),g.dirty(!1),p.renderOrder=a.zIndexCounter,a.zIndexCounter+=1,a.stats.total+=1,p.dirty&&(a.sort(g,p),p.dirty=!1,p.dirtyChildren=[],p.dirtyReason=void 0)}for(var c=[e];c.length>0;){var u,h=c.pop();l(h);for(var d=((u=h.sortable)===null||u===void 0||(u=u.sorted)===null||u===void 0?void 0:u.length)>0?h.sortable.sorted:h.childNodes,f=d.length-1;f>=0;f--)c.push(d[f])}}},{key:"sort",value:function(e,n){var i,a;(n==null||(i=n.sorted)===null||i===void 0?void 0:i.length)>0&&n.dirtyReason!==bc.Z_INDEX_CHANGED?n.dirtyChildren.forEach(function(s){var o=n.sorted.indexOf(s);o>-1&&n.sorted.splice(o,1);var A=e.childNodes.indexOf(s);if(A>-1)if(n.sorted.length===0)n.sorted.push(s);else{var l=yF(n.sorted,s);n.sorted.splice(l,0,s)}}):n.sorted=e.childNodes.slice().sort(IE),((a=n.sorted)===null||a===void 0?void 0:a.length)>0&&e.childNodes.filter(function(s){return s.parsedStyle.zIndex}).length===0&&(n.sorted=[])}},{key:"destroy",value:function(){this.inited=!1,this.hooks.destroy.call()}},{key:"dirty",value:function(){this.context.renderingContext.renderReasons.add(Qc.DISPLAY_OBJECT_CHANGED)}}])}(),iT=/\[\s*(.*)=(.*)\s*\]/,aT=function(){function r(){(0,P.Z)(this,r)}return(0,N.Z)(r,[{key:"selectOne",value:function(e,n){var i=this;if(e.startsWith("."))return n.find(function(A){return((A==null?void 0:A.classList)||[]).indexOf(i.getIdOrClassname(e))>-1});if(e.startsWith("#"))return n.find(function(A){return A.id===i.getIdOrClassname(e)});if(e.startsWith("[")){var a=this.getAttribute(e),s=a.name,o=a.value;return s?n.find(function(A){return n!==A&&(s==="name"?A.name===o:i.attributeToString(A,s)===o)}):null}return n.find(function(A){return n!==A&&A.nodeName===e})}},{key:"selectAll",value:function(e,n){var i=this;if(e.startsWith("."))return n.findAll(function(A){return n!==A&&((A==null?void 0:A.classList)||[]).indexOf(i.getIdOrClassname(e))>-1});if(e.startsWith("#"))return n.findAll(function(A){return n!==A&&A.id===i.getIdOrClassname(e)});if(e.startsWith("[")){var a=this.getAttribute(e),s=a.name,o=a.value;return s?n.findAll(function(A){return n!==A&&(s==="name"?A.name===o:i.attributeToString(A,s)===o)}):[]}return n.findAll(function(A){return n!==A&&A.nodeName===e})}},{key:"is",value:function(e,n){if(e.startsWith("."))return n.className===this.getIdOrClassname(e);if(e.startsWith("#"))return n.id===this.getIdOrClassname(e);if(e.startsWith("[")){var i=this.getAttribute(e),a=i.name,s=i.value;return a==="name"?n.name===s:this.attributeToString(n,a)===s}return n.nodeName===e}},{key:"getIdOrClassname",value:function(e){return e.substring(1)}},{key:"getAttribute",value:function(e){var n=e.match(iT),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(e,n){if(!e.getAttribute)return"";var i=e.getAttribute(n);return Re(i)?"":i.toString?i.toString():""}}])}(),yn=function(r){return r.ATTR_MODIFIED="DOMAttrModified",r.INSERTED="DOMNodeInserted",r.MOUNTED="DOMNodeInsertedIntoDocument",r.REMOVED="removed",r.UNMOUNTED="DOMNodeRemovedFromDocument",r.REPARENT="reparent",r.DESTROY="destroy",r.BOUNDS_CHANGED="bounds-changed",r.CULLED="culled",r}({}),$s=function(r){function t(e,n,i,a,s,o,A,l){var c;return(0,P.Z)(this,t),c=(0,K.Z)(this,t,[null]),c.relatedNode=n,c.prevValue=i,c.newValue=a,c.attrName=s,c.attrChange=o,c.prevParsedValue=A,c.newParsedValue=l,c.type=e,c}return(0,_.Z)(t,r),(0,N.Z)(t)}(cf);$s.ADDITION=2,$s.MODIFICATION=1,$s.REMOVAL=3;var sT=new $s(yn.REPARENT,null,"","","",0,"",""),oT=Bu(),hf=Ot(),AT=Wt(1,1,1),lT=$t(),cT=Bu(),ul=Ot(),uT=$t(),hl=Br(),hT=Ot(),dT=Br(),fT=Ot(),ih=Ot(),dl=Ot(),df=$t(),VE=Br(),WE=Br(),ff=Br(),gT=function(){function r(t){(0,P.Z)(this,r),this.displayObjectDependencyMap=new WeakMap,this.runtime=t}return(0,N.Z)(r,[{key:"matches",value:function(e,n){return this.runtime.sceneGraphSelector.is(e,n)}},{key:"querySelector",value:function(e,n){return this.runtime.sceneGraphSelector.selectOne(e,n)}},{key:"querySelectorAll",value:function(e,n){return this.runtime.sceneGraphSelector.selectAll(e,n)}},{key:"attach",value:function(e,n,i){var a,s=!1;e.parentNode&&(s=e.parentNode!==n,this.detach(e));var o=e.nodeName===Kt.FRAGMENT,A=lf(n);e.parentNode=n;var l=o?e.childNodes:[e];ye(i)?l.forEach(function(g){n.childNodes.splice(i,0,g),g.parentNode=n}):l.forEach(function(g){n.childNodes.push(g),g.parentNode=n});var c=n,u=c.sortable;if((u!=null&&(a=u.sorted)!==null&&a!==void 0&&a.length||u.dirty||e.parsedStyle.zIndex)&&(u.dirtyChildren.indexOf(e)===-1&&u.dirtyChildren.push(e),u.dirty=!0,u.dirtyReason=bc.ADDED),!A){if(o)this.dirtyFragment(e);else{var h=e.transformable;h&&this.dirtyWorldTransform(e,h)}if(s){var d,f=((d=n.ownerDocument)===null||d===void 0||(d=d.defaultView)===null||d===void 0||(d=d.getConfig())===null||d===void 0||(d=d.future)===null||d===void 0?void 0:d.experimentalCancelEventPropagation)===!0;e.dispatchEvent(sT,f,f)}}}},{key:"detach",value:function(e){var n,i;if(e.parentNode){var a=e.transformable,s=e.parentNode,o=s.sortable;(o!=null&&(n=o.sorted)!==null&&n!==void 0&&n.length||(i=e.style)!==null&&i!==void 0&&i.zIndex)&&(o.dirtyChildren.indexOf(e)===-1&&o.dirtyChildren.push(e),o.dirty=!0,o.dirtyReason=bc.REMOVED);var A=e.parentNode.childNodes.indexOf(e);A>-1&&e.parentNode.childNodes.splice(A,1),a&&this.dirtyWorldTransform(e,a),e.parentNode=null}}},{key:"getLocalPosition",value:function(e){return e.transformable.localPosition}},{key:"getLocalRotation",value:function(e){return e.transformable.localRotation}},{key:"getLocalScale",value:function(e){return e.transformable.localScale}},{key:"getLocalSkew",value:function(e){return e.transformable.localSkew}},{key:"getLocalTransform",value:function(e){var n=e.transformable;return Zs(n),n.localTransform}},{key:"setLocalPosition",value:function(e,n){var i,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=e.transformable;ih[0]=n[0],ih[1]=n[1],ih[2]=(i=n[2])!==null&&i!==void 0?i:0,!Yi(s.localPosition,ih)&&(ie(s.localPosition,ih),a&&this.dirtyLocalTransform(e,s))}},{key:"translateLocal",value:function(e,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=Wt(n,i,a));var s=e.transformable;Yi(n,hf)||(zr(n,n,s.localRotation),de(s.localPosition,s.localPosition,n),this.dirtyLocalTransform(e,s))}},{key:"setLocalRotation",value:function(e,n,i,a,s){var o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;typeof n=="number"&&(n=XA(hl,n,i,a,s));var A=e.transformable;YA(A.localRotation,n),o&&this.dirtyLocalTransform(e,A)}},{key:"rotateLocal",value:function(e,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=Wt(n,i,a));var s=e.transformable;Gn(WE,n[0],n[1],n[2]),Eu(s.localRotation,s.localRotation,WE),this.dirtyLocalTransform(e,s)}},{key:"setLocalScale",value:function(e,n){var i,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,s=e.transformable;ve(ul,n[0],n[1],(i=n[2])!==null&&i!==void 0?i:s.localScale[2]),!Yi(ul,s.localScale)&&(ie(s.localScale,ul),a&&this.dirtyLocalTransform(e,s))}},{key:"scaleLocal",value:function(e,n){var i,a=e.transformable;sn(a.localScale,a.localScale,ve(ul,n[0],n[1],(i=n[2])!==null&&i!==void 0?i:1)),this.dirtyLocalTransform(e,a)}},{key:"setLocalSkew",value:function(e,n,i){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;typeof n=="number"&&(n=Ov(cT,n,i));var s=e.transformable;Tv(s.localSkew,n),a&&this.dirtyLocalTransform(e,s)}},{key:"setLocalEulerAngles",value:function(e,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=Wt(n,i,a));var o=e.transformable;Gn(o.localRotation,n[0],n[1],n[2]),s&&this.dirtyLocalTransform(e,o)}},{key:"setLocalTransform",value:function(e,n){var i=Pn(hT,n),a=Xo(dT,n),s=Ds(fT,n);this.setLocalScale(e,s,!1),this.setLocalPosition(e,i,!1),this.setLocalRotation(e,a,void 0,void 0,void 0,!1),this.dirtyLocalTransform(e,e.transformable)}},{key:"resetLocalTransform",value:function(e){this.setLocalScale(e,AT,!1),this.setLocalPosition(e,hf,!1),this.setLocalEulerAngles(e,hf,void 0,void 0,!1),this.setLocalSkew(e,oT,void 0,!1),this.dirtyLocalTransform(e,e.transformable)}},{key:"getPosition",value:function(e){var n=e.transformable;return Pn(n.position,this.getWorldTransform(e,n))}},{key:"getRotation",value:function(e){var n=e.transformable;return Xo(n.rotation,this.getWorldTransform(e,n))}},{key:"getScale",value:function(e){var n=e.transformable;return Ds(n.scaling,this.getWorldTransform(e,n))}},{key:"getOrigin",value:function(e){return e.getGeometryBounds(),e.transformable.origin}},{key:"getWorldTransform",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.transformable;return!n.localDirtyFlag&&!n.dirtyFlag||(e.parentNode&&e.parentNode.transformable&&this.getWorldTransform(e.parentNode),this.internalUpdateTransform(e)),n.worldTransform}},{key:"setPosition",value:function(e,n){var i,a=e.transformable;if(dl[0]=n[0],dl[1]=n[1],dl[2]=(i=n[2])!==null&&i!==void 0?i:0,!Yi(this.getPosition(e),dl)){if(ie(a.position,dl),e.parentNode===null||!e.parentNode.transformable)ie(a.localPosition,dl);else{var s=e.parentNode.transformable;He(df,s.worldTransform),on(df,df),me(a.localPosition,dl,df)}this.dirtyLocalTransform(e,a)}}},{key:"translate",value:function(e,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=ve(ul,n,i,a)),!Yi(n,hf)&&(de(ul,this.getPosition(e),n),this.setPosition(e,ul))}},{key:"setRotation",value:function(e,n,i,a,s){var o=e.transformable;if(typeof n=="number"&&(n=cd(n,i,a,s)),e.parentNode===null||!e.parentNode.transformable)this.setLocalRotation(e,n);else{var A=this.getRotation(e.parentNode);YA(hl,A),jA(hl,hl),Ps(o.localRotation,hl,n),Jo(o.localRotation,o.localRotation),this.dirtyLocalTransform(e,o)}}},{key:"rotate",value:function(e,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=Wt(n,i,a));var s=e.transformable;if(e.parentNode===null||!e.parentNode.transformable)this.rotateLocal(e,n);else{var o=hl;Gn(o,n[0],n[1],n[2]);var A=this.getRotation(e),l=this.getRotation(e.parentNode);YA(ff,l),jA(ff,ff),Ps(o,ff,o),Ps(s.localRotation,o,A),Jo(s.localRotation,s.localRotation),this.dirtyLocalTransform(e,s)}}},{key:"setOrigin",value:function(e,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=e.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.dirtyLocalTransform(e,s)}}},{key:"setEulerAngles",value:function(e,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=Wt(n,i,a));var s=e.transformable;if(e.parentNode===null||!e.parentNode.transformable)this.setLocalEulerAngles(e,n);else{Gn(s.localRotation,n[0],n[1],n[2]);var o=this.getRotation(e.parentNode);YA(VE,jA(hl,o)),Eu(s.localRotation,s.localRotation,VE),this.dirtyLocalTransform(e,s)}}},{key:"getGeometryBounds",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=e,a=i.geometry;a.dirty&&re.styleValueRegistry.updateGeometry(e);var s=n?a.renderBounds:a.contentBounds||null;return s||new Zn}},{key:"getTransformedGeometryBounds",value:function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,i=arguments.length>2?arguments[2]:void 0,a=this.getGeometryBounds(e,n);if(!Zn.isEmpty(a)){var s=i||new Zn;return s.setFromTransformedAABB(a,this.getWorldTransform(e)),s}return null}},{key:"getBounds",value:function(e){var n=this,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,a=e,s=a.renderable;if(!s.boundsDirty&&!i&&s.bounds)return s.bounds;if(!s.renderBoundsDirty&&i&&s.renderBounds)return s.renderBounds;var o=i?s.renderBounds:s.bounds,A=this.getTransformedGeometryBounds(e,i,o),l=e.childNodes;if(l.forEach(function(h){var d=n.getBounds(h,i);d&&(A?A.add(d):(A=o||new Zn,A.update(d.center,d.halfExtents)))}),A||(A=new Zn),i){var c=NE(e);if(c){var u=c.parsedStyle.clipPath.getBounds(i);A?u&&(A=u.intersection(A)):A.update(u.center,u.halfExtents)}}return i?(s.renderBounds=A,s.renderBoundsDirty=!1):(s.bounds=A,s.boundsDirty=!1),A}},{key:"getLocalBounds",value:function(e){if(e.parentNode){var n=lT;e.parentNode.transformable&&(n=on(uT,this.getWorldTransform(e.parentNode)));var i=this.getBounds(e);if(!Zn.isEmpty(i)){var a=new Zn;return a.setFromTransformedAABB(i,n),a}}return this.getBounds(e)}},{key:"getBoundingClientRect",value:function(e){var n,i,a=this.getGeometryBounds(e);Zn.isEmpty(a)||(i=new Zn,i.setFromTransformedAABB(a,this.getWorldTransform(e)));var s=(n=e.ownerDocument)===null||n===void 0||(n=n.defaultView)===null||n===void 0?void 0:n.getContextService().getBoundingClientRect();if(i){var o=i.getMin(),A=(0,H.Z)(o,2),l=A[0],c=A[1],u=i.getMax(),h=(0,H.Z)(u,2),d=h[0],f=h[1];return new fs(l+((s==null?void 0:s.left)||0),c+((s==null?void 0:s.top)||0),d-l,f-c)}return new fs((s==null?void 0:s.left)||0,(s==null?void 0:s.top)||0,0,0)}},{key:"internalUpdateTransform",value:function(e){var n,i=(n=e.parentNode)===null||n===void 0?void 0:n.transformable;Zs(e.transformable),cA(e.transformable,i)}},{key:"internalUpdateElement",value:function(e,n){var i,a,s,o,A=((i=e.ownerDocument)===null||i===void 0||(i=i.defaultView)===null||i===void 0||(i=i.getConfig())===null||i===void 0||(i=i.future)===null||i===void 0?void 0:i.experimentalAttributeUpdateOptimization)===!0,l=n[n.length-1],c=(l==null?void 0:l.transformDirty)||((a=e.transformable)===null||a===void 0?void 0:a.localDirtyFlag);if(e.transformable){var u;(u=e.transformable).dirtyFlag||(u.dirtyFlag=c)}if(this.internalUpdateTransform(e),c){var h;(h=e.dirty)===null||h===void 0||h.call(e,!0,!0)}var d=((s=e.renderable)===null||s===void 0?void 0:s.boundsDirty)||((o=e.renderable)===null||o===void 0?void 0:o.renderBoundsDirty);if((c||d)&&(l==null?void 0:l.shapeUpdated)===!1&&A)for(var f=n.length-1;f>=0;){var g,v,p=n[f];if(p.shapeUpdated)break;(g=(v=p.node).dirty)===null||g===void 0||g.call(v,!0,!0),p.shapeUpdated=!0,f-=1}return c}},{key:"syncHierarchy",value:function(e){for(var n,i,a=[e],s=e.parentNode?[{node:e.parentNode,transformDirty:((n=e.parentNode.transformable)===null||n===void 0?void 0:n.localDirtyFlag)||((i=e.parentNode.transformable)===null||i===void 0?void 0:i.dirtyFlag),shapeUpdated:!1}]:[];a.length>0;){for(var o=a.pop(),A=s[s.length-1];s.length>0&&o.parentNode!==A.node;)A=s.pop();var l=this.internalUpdateElement(o,s);if(o.childNodes.length>0){for(var c=o.childNodes.length-1;c>=0;c--)a.push(o.childNodes[c]);s.push({node:o,transformDirty:l,shapeUpdated:!1})}}}},{key:"dirtyLocalTransform",value:function(e,n){lf(e)||n.localDirtyFlag||(n.localDirtyFlag=!0,n.dirtyFlag||this.dirtyWorldTransform(e,n))}},{key:"dirtyWorldTransform",value:function(e,n){this.dirtyWorldInternal(e,n),this.dirtyToRoot(e,!0)}},{key:"dirtyWorldInternal",value:function(e,n){var i,a=this,s=((i=e.ownerDocument)===null||i===void 0||(i=i.defaultView)===null||i===void 0||(i=i.getConfig())===null||i===void 0||(i=i.future)===null||i===void 0?void 0:i.experimentalAttributeUpdateOptimization)===!0;n.dirtyFlag||(n.dirtyFlag=!0,e.dirty(!0,!0),s||e.childNodes.forEach(function(o){var A=o.transformable;a.dirtyWorldInternal(o,A)}))}},{key:"dirtyToRoot",value:function(e){for(var n,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,a=e,s=((n=e.ownerDocument)===null||n===void 0||(n=n.defaultView)===null||n===void 0||(n=n.getConfig())===null||n===void 0||(n=n.future)===null||n===void 0?void 0:n.experimentalAttributeUpdateOptimization)===!0;a;){var o,A;if((o=(A=a).dirty)===null||o===void 0||o.call(A,!0,!0),s)break;a=a.parentNode}i&&e.forEach(function(u){var h;(h=u.dirty)===null||h===void 0||h.call(u,!0,!0)}),this.informDependentDisplayObjects(e);var l=e.mutations||[],c=l.find(function(u){return u.type==="attributes"&&u._boundsChangeData});c?c._boundsChangeData={affectChildren:c._boundsChangeData.affectChildren||i}:(c={type:"attributes",target:e,_boundsChangeData:{affectChildren:i}},l.push(c)),e.mutations=l}},{key:"dirtyFragment",value:function(e){var n,i,a=e.transformable;a&&(a.dirtyFlag=!0,a.localDirtyFlag=!0),(n=(i=e).dirty)===null||n===void 0||n.call(i,!0,!0);for(var s=e.childNodes.length,o=0;o0){var i=new Wr(yn.BOUNDS_CHANGED,{detail:Array.from(n)});e.dispatchEvent(i,!0,!0)}}},{key:"updateDisplayObjectDependency",value:function(e,n,i,a){if(n&&n!==i){var s=this.displayObjectDependencyMap.get(n);if(s&&s[e]){var o=s[e].indexOf(a);s[e].splice(o,1)}}if(i){var A=this.displayObjectDependencyMap.get(i);A||(this.displayObjectDependencyMap.set(i,{}),A=this.displayObjectDependencyMap.get(i)),A[e]||(A[e]=[]),A[e].push(a)}}},{key:"informDependentDisplayObjects",value:function(e){var n,i=this,a=this.displayObjectDependencyMap.get(e);if(a){var s=(n=e.ownerDocument)===null||n===void 0||(n=n.defaultView)===null||n===void 0||(n=n.getConfig())===null||n===void 0||(n=n.future)===null||n===void 0?void 0:n.experimentalCancelEventPropagation;Object.keys(a).forEach(function(o){a[o].forEach(function(A){i.dirtyToRoot(A,!0),A.dispatchEvent(new $s(yn.ATTR_MODIFIED,A,i,i,o,$s.MODIFICATION,i,i),s,s),A.isCustomElement&&A.isConnected&&A.attributeChangedCallback&&A.attributeChangedCallback(o,i,i)})})}}}])}(),jE=function(){function r(t){if((0,P.Z)(this,r),t<=0)throw new Error("LRU capacity must be a positive number.");this.capacity=t,this.cache=new Map}return(0,N.Z)(r,[{key:"get",value:function(e){if(this.cache.has(e)){var n=this.cache.get(e);return this.cache.delete(e),this.cache.set(e,n),n}}},{key:"put",value:function(e,n){if(this.cache.has(e)&&this.cache.delete(e),this.cache.set(e,n),this.cache.size>this.capacity){var i=this.cache.keys().next().value;this.cache.delete(i)}}},{key:"len",value:function(){return this.cache.size}},{key:"clear",value:function(){this.cache.clear()}}])}(),fl={MetricsString:"|\xC9q\xC5",BaselineSymbol:"M",BaselineMultiplier:1.4,HeightMultiplier:2,Newlines:[10,13],BreakingSpaces:[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288]},ZE=/[a-zA-Z0-9\u00C0-\u00D6\u00D8-\u00f6\u00f8-\u00ff!"#$%&'()*+,-./:;]/,vT=/[!%),.:;?\]}¢°·'""†‡›℃∶、。〃〆〕〗〞﹚﹜!"%'),.:;?!]}~]/,pT=/[$(£¥·'"〈《「『【〔〖〝﹙﹛$(.[{£¥]/,mT=/[!),.:;?\]}¢·–—'"•"、。〆〞〕〉》」︰︱︲︳﹐﹑﹒﹔﹕﹖﹘﹚﹜!),.:;?︶︸︺︼︾﹀﹂﹗]|}、]/,yT=/[([{£¥'"‵〈《「『〔〝︴﹙﹛({︵︷︹︻︽︿﹁﹃﹏]/,wT=/[)\]}〕〉》」』】〙〗〟'"⦆»ヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻‐゠–〜?!‼⁇⁈⁉・、:;,。.]/,ET=/[([{〔〈《「『【〘〖〝'"⦅«—...‥〳〴〵]/,BT=/[!%),.:;?\]}¢°'"†‡℃〆〈《「『〕!%),.:;?]}]/,bT=/[$([{£¥'"々〇〉》」〔$([{⦆¥₩#]/,xT=new RegExp("".concat(vT.source,"|").concat(mT.source,"|").concat(wT.source,"|").concat(BT.source)),CT=new RegExp("".concat(pT.source,"|").concat(yT.source,"|").concat(ET.source,"|").concat(bT.source)),ST=function(){function r(t){var e=this;(0,P.Z)(this,r),this.fontMetricsCache={},this.shouldBreakByKinsokuShorui=function(n,i){return e.isBreakingSpace(i)?!1:!!(n&&(CT.exec(i)||xT.exec(n)))},this.trimByKinsokuShorui=function(n){var i=(0,G.Z)(n),a=i[i.length-2];if(!a)return n;var s=a[a.length-1];return i[i.length-2]=a.slice(0,-1),i[i.length-1]=s+i[i.length-1],i},this.runtime=t,this.charWidthCache=new jE(100)}return(0,N.Z)(r,[{key:"measureFont",value:function(e,n){if(this.fontMetricsCache[e])return this.fontMetricsCache[e];var i={ascent:0,descent:0,fontSize:0},a=this.runtime.offscreenCanvasCreator.getOrCreateCanvas(n),s=this.runtime.offscreenCanvasCreator.getOrCreateContext(n,{willReadFrequently:!0});s.font=e;var o=fl.MetricsString+fl.BaselineSymbol,A=Math.ceil(s.measureText(o).width),l=Math.ceil(s.measureText(fl.BaselineSymbol).width),c=fl.HeightMultiplier*l;l=l*fl.BaselineMultiplier|0,a.width=A,a.height=c,s.fillStyle="#f00",s.fillRect(0,0,A,c),s.font=e,s.textBaseline="alphabetic",s.fillStyle="#000",s.fillText(o,0,l);var u=s.getImageData(0,0,A||1,c||1).data,h=u.length,d=A*4,f=0,g=0,v=!1;for(f=0;fl;--f){for(var y=0;yXt&&xt>=Dt;)xt-=1,yt=yt.slice(0,-1);return{lineTxt:yt,txtLastCharIndex:xt}}function et(yt,xt){if(!(j<=0||j>v)){if(!y[yt]){y[yt]=p;return}var Dt=q(y[yt],xt,O+1,v-j);y[yt]=Dt.lineTxt+p}}for(var it=0;it=d){itv){et(x,it-1),n.isOverflowing=!0;break}if(F>0&&F+Rt>v){var Qt=q(y[x],it-1,O+1,v);if(Qt.txtLastCharIndex!==it-1){if(y[x]=Qt.lineTxt,Qt.txtLastCharIndex===s.length-1)break;it=Qt.txtLastCharIndex+1,dt=s[it],ft=s[it-1],mt=s[it+1],Rt=R(dt)}if(x+1>=d){et(x,it-1),n.isOverflowing=!0;break}if(O=it-1,x+=1,F=0,y[x]="",this.isBreakingSpace(dt))continue;this.canBreakInLastChar(dt)||(y=this.trimToBreakable(y),F=this.sumTextWidthByCache(y[x]||"",R)),this.shouldBreakByKinsokuShorui(dt,mt)&&(y=this.trimByKinsokuShorui(y),F+=R(ft||""))}F+=Rt,y[x]+=dt}return y.join(`
`)}},{key:"isBreakingSpace",value:function(e){return typeof e!="string"?!1:fl.BreakingSpaces.indexOf(e.charCodeAt(0))>=0}},{key:"isNewline",value:function(e){return typeof e!="string"?!1:fl.Newlines.indexOf(e.charCodeAt(0))>=0}},{key:"trimToBreakable",value:function(e){var n=(0,G.Z)(e),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),A=a+1,l=a+(o?0:1);return n[n.length-1]+=i.slice(A,i.length),n[n.length-2]=i.slice(0,l),n}},{key:"canBreakInLastChar",value:function(e){return!(e&&ZE.test(e))}},{key:"sumTextWidthByCache",value:function(e,n){return e.split("").reduce(function(i,a){return i+n(a)},0)}},{key:"findBreakableIndex",value:function(e){for(var n=e.length-1;n>=0;n--)if(!ZE.test(e[n]))return n;return-1}},{key:"getFromCache",value:function(e,n,i,a){var s=i.get(e);if(typeof s!="number"){var o=e.length*n,A=a.measureText(e);s=A.width+o,i.put(e,s)}return s}},{key:"clearCache",value:function(){this.fontMetricsCache={},this.charWidthCache.clear()}}])}(),re={},MT=function(r){var t=new JF,e=new XF;return r={},(0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)(r,Kt.FRAGMENT,null),Kt.CIRCLE,new WF),Kt.ELLIPSE,new jF),Kt.RECT,t),Kt.IMAGE,t),Kt.GROUP,new $F),Kt.LINE,new ZF),Kt.TEXT,new qF(re)),Kt.POLYLINE,e),Kt.POLYGON,e),(0,we.Z)((0,we.Z)((0,we.Z)(r,Kt.PATH,new YF),Kt.HTML,new tT),Kt.MESH,null)}(),FT=function(r){var t=new iF,e=new gm;return r={},(0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)(r,oe.PERCENTAGE,null),oe.NUMBER,new lF),oe.ANGLE,new nF),oe.DEFINED_PATH,new rF),oe.PAINT,t),oe.COLOR,t),oe.FILTER,new aF),oe.LENGTH,e),oe.LENGTH_PERCENTAGE,e),oe.LENGTH_PERCENTAGE_12,new sF),(0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)(r,oe.LENGTH_PERCENTAGE_14,new oF),oe.COORDINATE,new gm),oe.OFFSET_DISTANCE,new cF),oe.OPACITY_VALUE,new uF),oe.PATH,new hF),oe.LIST_OF_POINTS,new dF),oe.SHADOW_BLUR,new fF),oe.TEXT,new gF),oe.TEXT_TRANSFORM,new vF),oe.TRANSFORM,new zF),(0,we.Z)((0,we.Z)((0,we.Z)(r,oe.TRANSFORM_ORIGIN,new KF),oe.Z_INDEX,new VF),oe.MARKER,new AF)}(),TT=function(){return typeof globalThis!="undefined"?globalThis:typeof self!="undefined"?self:typeof window!="undefined"?window:typeof T.g!="undefined"?T.g:{}};re.CameraContribution=Zu,re.AnimationTimeline=null,re.EasingFunction=null,re.offscreenCanvasCreator=new bm,re.sceneGraphSelector=new aT,re.sceneGraphService=new gT(re),re.textService=new ST(re),re.geometryUpdaterFactory=MT,re.CSSPropertySyntaxFactory=FT,re.styleValueRegistry=new tF(re),re.layoutRegistry=null,re.globalThis=TT(),re.enableStyleSyntax=!0,re.enableSizeAttenuation=!1;var YE=0;function V8(){YE=0}var xm=new $s(yn.INSERTED,null,"","","",0,"",""),Cm=new $s(yn.REMOVED,null,"","","",0,"",""),XE=new Wr(yn.DESTROY),OT=function(r){function t(){var e;(0,P.Z)(this,t);for(var n=arguments.length,i=new Array(n),a=0;a0&&arguments[0]!==void 0?arguments[0]:!0,i=arguments.length>1?arguments[1]:void 0;this.renderable.dirty=n,i!==void 0&&(this.renderable.boundsDirty=i,this.renderable.renderBoundsDirty=i,this.geometry.dirty=i)}},{key:"className",get:function(){return this.getAttribute("class")||""},set:function(n){this.setAttribute("class",n)}},{key:"classList",get:function(){return this.className.split(" ").filter(function(n){return n!==""})}},{key:"tagName",get:function(){return this.nodeName}},{key:"children",get:function(){return this.childNodes}},{key:"childElementCount",get:function(){return this.childNodes.length}},{key:"firstElementChild",get:function(){return this.firstChild}},{key:"lastElementChild",get:function(){return this.lastChild}},{key:"parentElement",get:function(){return this.parentNode}},{key:"nextSibling",get:function(){if(this.parentNode){var n=this.parentNode.childNodes.indexOf(this);return this.parentNode.childNodes[n+1]||null}return null}},{key:"previousSibling",get:function(){if(this.parentNode){var n=this.parentNode.childNodes.indexOf(this);return this.parentNode.childNodes[n-1]||null}return null}},{key:"cloneNode",value:function(n){throw new Error(On)}},{key:"appendChild",value:function(n,i){var a;if(n.destroyed)throw new Error(Gd);return re.sceneGraphService.attach(n,this,i),(a=this.ownerDocument)!==null&&a!==void 0&&a.defaultView&&(!lf(this)&&n.nodeName===Kt.FRAGMENT?this.ownerDocument.defaultView.mountFragment(n):this.ownerDocument.defaultView.mountChildren(n)),this.isMutationObserved&&(xm.relatedNode=this,n.dispatchEvent(xm)),n}},{key:"insertBefore",value:function(n,i){if(!i)this.appendChild(n);else{n.parentElement&&n.parentElement.removeChild(n);var a=this.childNodes.indexOf(i);a===-1?this.appendChild(n):this.appendChild(n,a)}return n}},{key:"replaceChild",value:function(n,i){var a=this.childNodes.indexOf(i);return this.removeChild(i),this.appendChild(n,a),i}},{key:"removeChild",value:function(n){var i,a,s=((i=this.ownerDocument)===null||i===void 0||(i=i.defaultView)===null||i===void 0||(i=i.getConfig().future)===null||i===void 0?void 0:i.experimentalCancelEventPropagation)===!0;return Cm.relatedNode=this,n.dispatchEvent(Cm,s,s),(a=n.ownerDocument)!==null&&a!==void 0&&a.defaultView&&n.ownerDocument.defaultView.unmountChildren(n),re.sceneGraphService.detach(n),n}},{key:"removeChildren",value:function(){for(var n=this.childNodes.length-1;n>=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 re.sceneGraphService.matches(n,this)}},{key:"getElementById",value:function(n){return re.sceneGraphService.querySelector("#".concat(n),this)}},{key:"getElementsByName",value:function(n){return re.sceneGraphService.querySelectorAll('[name="'.concat(n,'"]'),this)}},{key:"getElementsByClassName",value:function(n){return re.sceneGraphService.querySelectorAll(".".concat(n),this)}},{key:"getElementsByTagName",value:function(n){return re.sceneGraphService.querySelectorAll(n,this)}},{key:"querySelector",value:function(n){return re.sceneGraphService.querySelector(n,this)}},{key:"querySelectorAll",value:function(n){return re.sceneGraphService.querySelectorAll(n,this)}},{key:"closest",value:function(n){var i=this;do{if(re.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]:!1;return re.sceneGraphService.getGeometryBounds(this,n)}},{key:"getTransformedGeometryBounds",value:function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;return re.sceneGraphService.getTransformedGeometryBounds(this,n)}},{key:"getBounds",value:function(){return re.sceneGraphService.getBounds(this)}},{key:"getRenderBounds",value:function(){return re.sceneGraphService.getBounds(this,!0)}},{key:"getLocalBounds",value:function(){return re.sceneGraphService.getLocalBounds(this)}},{key:"getBoundingClientRect",value:function(){return re.sceneGraphService.getBoundingClientRect(this)}},{key:"getClientRects",value:function(){return[this.getBoundingClientRect()]}},{key:"computedStyleMap",value:function(){return new Map(Object.entries(this.computedStyle))}},{key:"getAttributeNames",value:function(){return Object.keys(this.attributes)}},{key:"getAttribute",value:function(n){if(typeof n!="symbol"){var i=this.attributes[n];return i}}},{key:"hasAttribute",value:function(n){return this.getAttributeNames().includes(n)}},{key:"hasAttributes",value:function(){return!!this.getAttributeNames().length}},{key:"removeAttribute",value:function(n){this.setAttribute(n,null),delete this.attributes[n]}},{key:"setAttribute",value:function(n,i){this.attributes[n]=i}},{key:"getAttributeNS",value:function(n,i){throw new Error(On)}},{key:"getAttributeNode",value:function(n){throw new Error(On)}},{key:"getAttributeNodeNS",value:function(n,i){throw new Error(On)}},{key:"hasAttributeNS",value:function(n,i){throw new Error(On)}},{key:"removeAttributeNS",value:function(n,i){throw new Error(On)}},{key:"removeAttributeNode",value:function(n){throw new Error(On)}},{key:"setAttributeNS",value:function(n,i,a){throw new Error(On)}},{key:"setAttributeNode",value:function(n){throw new Error(On)}},{key:"setAttributeNodeNS",value:function(n){throw new Error(On)}},{key:"toggleAttribute",value:function(n,i){throw new Error(On)}}])}(pr);function Ln(r){return!!(r!=null&&r.nodeName)}var IT=re.globalThis.Proxy?re.globalThis.Proxy:function(){},to=new $s(yn.ATTR_MODIFIED,null,null,null,null,$s.MODIFICATION,null,null),ah=Ot(),NT=Br(),ir=function(r){function t(e){var n;return(0,P.Z)(this,t),n=(0,K.Z)(this,t),n.isCustomElement=!1,n.isMutationObserved=!1,n.activeAnimations=[],n.config=e,n.id=e.id||"",n.name=e.name||"",(e.className||e.class)&&(n.className=e.className||e.class),n.nodeName=e.type||Kt.GROUP,e.initialParsedStyle&&Object.assign(n.parsedStyle,e.initialParsedStyle),n.initAttributes(e.style),re.enableStyleSyntax&&(n.style=new IT({setProperty:function(a,s){n.setAttribute(a,s)},getPropertyValue:function(a){return n.getAttribute(a)},removeProperty:function(a){n.removeAttribute(a)},item:function(){return""}},{get:function(a,s){return a[s]!==void 0?a[s]:n.getAttribute(s)},set:function(a,s,o){return n.setAttribute(s,o),!0}})),n}return(0,_.Z)(t,r),(0,N.Z)(t,[{key:"destroy",value:function(){Ks(t,"destroy",this,3)([]),this.getAnimations().forEach(function(n){n.cancel()})}},{key:"cloneNode",value:function(n,i){var a=(0,z.Z)({},this.attributes);for(var s in a){var o=a[s];Ln(o)&&s!=="clipPath"&&s!=="offsetPath"&&s!=="textPath"&&(a[s]=o.cloneNode(n)),i&&(a[s]=i(s,o))}var A=new this.constructor((0,z.Z)((0,z.Z)({},this.config),{},{style:a}));return A.setLocalTransform(this.getLocalTransform()),n&&this.children.forEach(function(l){if(!l.style.isMarker){var c=l.cloneNode(n);A.appendChild(c)}}),A}},{key:"initAttributes",value:function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i={forceUpdateGeometry:!0};re.styleValueRegistry.processProperties(this,n,i),this.dirty()}},{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;Ze(i)||(a||i!==this.attributes[n])&&(this.internalSetAttribute(n,i,{memoize:s}),Ks(t,"setAttribute",this,3)([n,i]))}},{key:"setAttributes",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=i.skipDispatchAttrModifiedEvent,s=a===void 0?!1:a,o,A;if(s||(o=(0,z.Z)({},this.attributes),A=(0,z.Z)({},this.parsedStyle)),re.styleValueRegistry.processProperties(this,n,i),this.dirty(),!s)for(var l in n)this.dispatchAttrModifiedEvent(l,o[l],n[l],A[l])}},{key:"internalSetAttribute",value:function(n,i){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},s=this.attributes[n],o=this.parsedStyle[n];re.styleValueRegistry.processProperties(this,(0,we.Z)({},n,i),a),this.dirty(),this.dispatchAttrModifiedEvent(n,s,i,o)}},{key:"dispatchAttrModifiedEvent",value:function(n,i,a,s){var o=this.parsedStyle[n];if(this.isConnected)if(to.relatedNode=this,to.prevValue=i,to.newValue=a,to.attrName=n,to.prevParsedValue=s,to.newParsedValue=o,this.isMutationObserved)this.dispatchEvent(to);else{var A,l=((A=this.ownerDocument.defaultView.getConfig().future)===null||A===void 0?void 0:A.experimentalCancelEventPropagation)===!0;to.target=this,this.ownerDocument.defaultView.dispatchEvent(to,!0,l)}if(this.isCustomElement&&this.isConnected||!this.isCustomElement){var c,u;(c=(u=this).attributeChangedCallback)===null||c===void 0||c.call(u,n,i,a,s,o)}}},{key:"getBBox",value:function(){var n=this.getBounds(),i=n.getMin(),a=(0,H.Z)(i,2),s=a[0],o=a[1],A=n.getMax(),l=(0,H.Z)(A,2),c=l[0],u=l[1];return new fs(s,o,c-s,u-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 re.sceneGraphService.setOrigin(this,pi(n,i,a,!1)),this}},{key:"getOrigin",value:function(){return re.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 re.sceneGraphService.setPosition(this,pi(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 re.sceneGraphService.setLocalPosition(this,pi(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 re.sceneGraphService.translate(this,pi(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 re.sceneGraphService.translateLocal(this,pi(n,i,a,!1)),this}},{key:"getPosition",value:function(){return re.sceneGraphService.getPosition(this)}},{key:"getLocalPosition",value:function(){return re.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=pi(n,i,a,!1)),re.sceneGraphService.scaleLocal(this,n),this}},{key:"setLocalScale",value:function(n,i,a){return typeof n=="number"&&(i=i||n,a=a||n,n=pi(n,i,a,!1)),re.sceneGraphService.setLocalScale(this,n),this}},{key:"getLocalScale",value:function(){return re.sceneGraphService.getLocalScale(this)}},{key:"getScale",value:function(){return re.sceneGraphService.getScale(this)}},{key:"getEulerAngles",value:function(){var n=Wu(ah,re.sceneGraphService.getWorldTransform(this)),i=(0,H.Z)(n,3),a=i[2];return bi(a)}},{key:"getLocalEulerAngles",value:function(){var n=Wu(ah,re.sceneGraphService.getLocalRotation(this)),i=(0,H.Z)(n,3),a=i[2];return bi(a)}},{key:"setEulerAngles",value:function(n){return re.sceneGraphService.setEulerAngles(this,0,0,n),this}},{key:"setLocalEulerAngles",value:function(n){return re.sceneGraphService.setLocalEulerAngles(this,0,0,n),this}},{key:"rotateLocal",value:function(n,i,a){return Re(i)&&Re(a)?re.sceneGraphService.rotateLocal(this,0,0,n):re.sceneGraphService.rotateLocal(this,n,i,a),this}},{key:"rotate",value:function(n,i,a){return Re(i)&&Re(a)?re.sceneGraphService.rotate(this,0,0,n):re.sceneGraphService.rotate(this,n,i,a),this}},{key:"setRotation",value:function(n,i,a,s){return re.sceneGraphService.setRotation(this,n,i,a,s),this}},{key:"setLocalRotation",value:function(n,i,a,s){return re.sceneGraphService.setLocalRotation(this,n,i,a,s),this}},{key:"setLocalSkew",value:function(n,i){return re.sceneGraphService.setLocalSkew(this,n,i),this}},{key:"getRotation",value:function(){return re.sceneGraphService.getRotation(this)}},{key:"getLocalRotation",value:function(){return re.sceneGraphService.getLocalRotation(this)}},{key:"getLocalSkew",value:function(){return re.sceneGraphService.getLocalSkew(this)}},{key:"getLocalTransform",value:function(){return re.sceneGraphService.getLocalTransform(this)}},{key:"getWorldTransform",value:function(){return re.sceneGraphService.getWorldTransform(this)}},{key:"setLocalTransform",value:function(n){return re.sceneGraphService.setLocalTransform(this,n),this}},{key:"resetLocalTransform",value:function(){re.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,(0,G.Z)(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,(0,G.Z)(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}}])}(OT);ir.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 eo=function(r){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return(0,P.Z)(this,t),(0,K.Z)(this,t,[(0,z.Z)({type:Kt.CIRCLE},e)])}return(0,_.Z)(t,r),(0,N.Z)(t)}(ir);eo.PARSED_STYLE_LIST=new Set([].concat((0,G.Z)(ir.PARSED_STYLE_LIST),["cx","cy","cz","r","isBillboard","isSizeAttenuation"]));var LT=["style"],sh=function(r){function t(){var e,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.style,a=(0,Ja.Z)(n,LT);return(0,P.Z)(this,t),e=(0,K.Z)(this,t,[(0,z.Z)({style:i},a)]),e.isCustomElement=!0,e}return(0,_.Z)(t,r),(0,N.Z)(t)}(ir);sh.PARSED_STYLE_LIST=new Set(["class","className","clipPath","cursor","draggable","droppable","opacity","pointerEvents","transform","transformOrigin","zIndex","visibility"]);var oh=function(r){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return(0,P.Z)(this,t),(0,K.Z)(this,t,[(0,z.Z)({type:Kt.ELLIPSE},e)])}return(0,_.Z)(t,r),(0,N.Z)(t)}(ir);oh.PARSED_STYLE_LIST=new Set([].concat((0,G.Z)(ir.PARSED_STYLE_LIST),["cx","cy","cz","rx","ry","isBillboard","isSizeAttenuation"]));var kT=function(r){function t(){return(0,P.Z)(this,t),(0,K.Z)(this,t,[{type:Kt.FRAGMENT}])}return(0,_.Z)(t,r),(0,N.Z)(t)}(ir);kT.PARSED_STYLE_LIST=new Set(["class","className"]);var Ai=function(r){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return(0,P.Z)(this,t),(0,K.Z)(this,t,[(0,z.Z)({type:Kt.GROUP},e)])}return(0,_.Z)(t,r),(0,N.Z)(t)}(ir);Ai.PARSED_STYLE_LIST=new Set(["class","className","clipPath","cursor","draggable","droppable","opacity","pointerEvents","transform","transformOrigin","zIndex","visibility"]);var QT=["style"],gl=function(r){function t(){var e,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.style,a=(0,Ja.Z)(n,QT);return(0,P.Z)(this,t),e=(0,K.Z)(this,t,[(0,z.Z)({type:Kt.HTML,style:i},a)]),e.cullable.enable=!1,e}return(0,_.Z)(t,r),(0,N.Z)(t,[{key:"getDomElement",value:function(){return this.parsedStyle.$el}},{key:"getClientRects",value:function(){return[this.getBoundingClientRect()]}},{key:"getLocalBounds",value:function(){if(this.parentNode){var n=on($t(),this.parentNode.getWorldTransform()),i=this.getBounds();if(!Zn.isEmpty(i)){var a=new Zn;return a.setFromTransformedAABB(i,n),a}}return this.getBounds()}}])}(ir);gl.PARSED_STYLE_LIST=new Set([].concat((0,G.Z)(ir.PARSED_STYLE_LIST),["x","y","$el","innerHTML","width","height"]));var Ah=function(r){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return(0,P.Z)(this,t),(0,K.Z)(this,t,[(0,z.Z)({type:Kt.IMAGE},e)])}return(0,_.Z)(t,r),(0,N.Z)(t)}(ir);Ah.PARSED_STYLE_LIST=new Set([].concat((0,G.Z)(ir.PARSED_STYLE_LIST),["x","y","z","src","width","height","isBillboard","billboardRotation","isSizeAttenuation","keepAspectRatio"]));var UT=["style"],vl=function(r){function t(){var e,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.style,a=(0,Ja.Z)(n,UT);(0,P.Z)(this,t),e=(0,K.Z)(this,t,[(0,z.Z)({type:Kt.LINE,style:(0,z.Z)({x1:0,y1:0,x2:0,y2:0,z1:0,z2:0},i)},a)]),e.markerStartAngle=0,e.markerEndAngle=0;var s=e.parsedStyle,o=s.markerStart,A=s.markerEnd;return o&&Ln(o)&&(e.markerStartAngle=o.getLocalEulerAngles(),e.appendChild(o)),A&&Ln(A)&&(e.markerEndAngle=A.getLocalEulerAngles(),e.appendChild(A)),e.transformMarker(!0),e.transformMarker(!1),e}return(0,_.Z)(t,r),(0,N.Z)(t,[{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,A=i.markerEndOffset,l=i.x1,c=i.x2,u=i.y1,h=i.y2,d=n?a:s;if(!(!d||!Ln(d))){var f=0,g,v,p,y,x,F;n?(p=l,y=u,g=c-l,v=h-u,x=o||0,F=this.markerStartAngle):(p=c,y=h,g=l-c,v=u-h,x=A||0,F=this.markerEndAngle),f=Math.atan2(v,g),d.setLocalEulerAngles(f*180/Math.PI+F),d.setLocalPosition(p+Math.cos(f)*x,y+Math.sin(f)*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,A=a.x2,l=a.y2,c=Ma(s,o,A,l,n),u=c.x,h=c.y,d=me(Ot(),Wt(u,h,0),i?this.getWorldTransform():this.getLocalTransform());return new ai(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 Nd(i,a,s,o)}}])}(ir);vl.PARSED_STYLE_LIST=new Set([].concat((0,G.Z)(ir.PARSED_STYLE_LIST),["x1","y1","x2","y2","z1","z2","isBillboard","isSizeAttenuation","markerStart","markerEnd","markerStartOffset","markerEndOffset"]));var RT=["style"],Pi=function(r){function t(){var e,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.style,a=(0,Ja.Z)(n,RT);(0,P.Z)(this,t),e=(0,K.Z)(this,t,[(0,z.Z)({type:Kt.PATH,style:i,initialParsedStyle:{miterLimit:4,d:(0,z.Z)({},vs)}},a)]),e.markerStartAngle=0,e.markerEndAngle=0,e.markerMidList=[];var s=e.parsedStyle,o=s.markerStart,A=s.markerEnd,l=s.markerMid;return o&&Ln(o)&&(e.markerStartAngle=o.getLocalEulerAngles(),e.appendChild(o)),l&&Ln(l)&&e.placeMarkerMid(l),A&&Ln(A)&&(e.markerEndAngle=A.getLocalEulerAngles(),e.appendChild(A)),e.transformMarker(!0),e.transformMarker(!1),e}return(0,_.Z)(t,r),(0,N.Z)(t,[{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,A=i.markerEndOffset,l=n?a:s;if(!(!l||!Ln(l))){var c=0,u,h,d,f,g,v;if(n){var p=this.getStartTangent(),y=(0,H.Z)(p,2),x=y[0],F=y[1];d=F[0],f=F[1],u=x[0]-F[0],h=x[1]-F[1],g=o||0,v=this.markerStartAngle}else{var O=this.getEndTangent(),L=(0,H.Z)(O,2),U=L[0],R=L[1];d=R[0],f=R[1],u=U[0]-R[0],h=U[1]-R[1],g=A||0,v=this.markerEndAngle}c=Math.atan2(h,u),l.setLocalEulerAngles(c*180/Math.PI+v),l.setLocalPosition(d+Math.cos(c)*g,f+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=pp(a,n),o=s.x,A=s.y,l=me(Ot(),Wt(o,A,0),i?this.getWorldTransform():this.getLocalTransform());return new ai(l[0],l[1])}},{key:"getPoint",value:function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return this.getPointAtLength(n*An(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,A=n[i-1].endTangent;a=[],A?(a.push([o[0]-A[0],o[1]-A[1]]),a.push([o[0],o[1]])):(a.push([s[0],s[1]]),a.push([o[0],o[1]]))}return a}}])}(ir);Pi.PARSED_STYLE_LIST=new Set([].concat((0,G.Z)(ir.PARSED_STYLE_LIST),["d","markerStart","markerMid","markerEnd","markerStartOffset","markerEndOffset","isBillboard","isSizeAttenuation"]));var DT=["style"],pl=function(r){function t(){var e,n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.style,a=(0,Ja.Z)(n,DT);(0,P.Z)(this,t),e=(0,K.Z)(this,t,[(0,z.Z)({type:Kt.POLYGON,style:i,initialParsedStyle:{points:{points:[],totalLength:0,segments:[]},miterLimit:4,isClosed:!0}},a)]),e.markerStartAngle=0,e.markerEndAngle=0,e.markerMidList=[];var s=e.parsedStyle,o=s.markerStart,A=s.markerEnd,l=s.markerMid;return o&&Ln(o)&&(e.markerStartAngle=o.getLocalEulerAngles(),e.appendChild(o)),l&&Ln(l)&&e.placeMarkerMid(l),A&&Ln(A)&&(e.markerEndAngle=A.getLocalEulerAngles(),e.appendChild(A)),e.transformMarker(!0),e.transformMarker(!1),e}return(0,_.Z)(t,r),(0,N.Z)(t,[{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,A=i.markerEndOffset,l=i.points,c=l||{},u=c.points,h=n?a:s;if(!(!h||!Ln(h)||!u)){var d=0,f,g,v,p,y,x;if(v=u[0][0],p=u[0][1],n)f=u[1][0]-u[0][0],g=u[1][1]-u[0][1],y=o||0,x=this.markerStartAngle;else{var F=u.length;this.parsedStyle.isClosed?(f=u[F-1][0]-u[0][0],g=u[F-1][1]-u[0][1]):(v=u[F-1][0],p=u[F-1][1],f=u[F-2][0]-u[F-1][0],g=u[F-2][1]-u[F-1][1]),y=A||0,x=this.markerEndAngle}d=Math.atan2(g,f),h.setLocalEulerAngles(d*180/Math.PI+x),h.setLocalPosition(v+Math.cos(d)*y,p+Math.sin(d)*y)}}},{key:"placeMarkerMid",value:function(n){var i=this.parsedStyle.points,a=i||{},s=a.points;if(this.markerMidList.forEach(function(u){u.remove()}),this.markerMidList=[],n&&Ln(n)&&s)for(var o=1;o<(this.parsedStyle.isClosed?s.length:s.length-1);o++){var A=s[o][0],l=s[o][1],c=o===1?n:n.cloneNode(!0);this.markerMidList.push(c),this.appendChild(c),c.setLocalPosition(A,l)}}}])}(ir);pl.PARSED_STYLE_LIST=new Set([].concat((0,G.Z)(ir.PARSED_STYLE_LIST),["points","markerStart","markerMid","markerEnd","markerStartOffset","markerEndOffset","isClosed","isBillboard","isSizeAttenuation"]));var PT=["style"],gf=function(r){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.style,i=(0,Ja.Z)(e,PT);return(0,P.Z)(this,t),(0,K.Z)(this,t,[(0,z.Z)({type:Kt.POLYLINE,style:n,initialParsedStyle:{points:{points:[],totalLength:0,segments:[]},miterLimit:4,isClosed:!1}},i)])}return(0,_.Z)(t,r),(0,N.Z)(t,[{key:"getTotalLength",value:function(){return Ye(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,A,l,c=this.getTotalLength();a.forEach(function(p,y){a[y+1]&&(A=[0,0],A[0]=o/c,l=Nd(p[0],p[1],a[y+1][0],a[y+1][1]),o+=l,A[1]=o/c,s.push(A))}),this.parsedStyle.points.segments=s}var u=0,h=0;this.parsedStyle.points.segments.forEach(function(p,y){n>=p[0]&&n<=p[1]&&(u=(n-p[0])/(p[1]-p[0]),h=y)});var d=Ma(a[h][0],a[h][1],a[h+1][0],a[h+1][1],u),f=d.x,g=d.y,v=me(Ot(),Wt(f,g,0),i?this.getWorldTransform():this.getLocalTransform());return new ai(v[0],v[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}}])}(pl);gf.PARSED_STYLE_LIST=new Set([].concat((0,G.Z)(pl.PARSED_STYLE_LIST),["points","markerStart","markerMid","markerEnd","markerStartOffset","markerEndOffset","isBillboard"]));var Ci=function(r){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return(0,P.Z)(this,t),(0,K.Z)(this,t,[(0,z.Z)({type:Kt.RECT},e)])}return(0,_.Z)(t,r),(0,N.Z)(t)}(ir);Ci.PARSED_STYLE_LIST=new Set([].concat((0,G.Z)(ir.PARSED_STYLE_LIST),["x","y","z","width","height","isBillboard","isSizeAttenuation","radius"]));var _T=["style"],ml=function(r){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=e.style,i=(0,Ja.Z)(e,_T);return(0,P.Z)(this,t),(0,K.Z)(this,t,[(0,z.Z)({type:Kt.TEXT,style:(0,z.Z)({fill:"black"},n)},i)])}return(0,_.Z)(t,r),(0,N.Z)(t,[{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}}])}(ir);ml.PARSED_STYLE_LIST=new Set([].concat((0,G.Z)(ir.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","textDecorationThickness","textPathSide","textPathStartOffset","metrics","dx","dy"]));var HT=function(){function r(){(0,P.Z)(this,r),this.registry={},this.define(Kt.CIRCLE,eo),this.define(Kt.ELLIPSE,oh),this.define(Kt.RECT,Ci),this.define(Kt.IMAGE,Ah),this.define(Kt.LINE,vl),this.define(Kt.GROUP,Ai),this.define(Kt.PATH,Pi),this.define(Kt.POLYGON,pl),this.define(Kt.POLYLINE,gf),this.define(Kt.TEXT,ml),this.define(Kt.HTML,gl)}return(0,N.Z)(r,[{key:"define",value:function(e,n){this.registry[e]=n}},{key:"get",value:function(e){return this.registry[e]}}])}(),GT={number:function(t){return new _n(t)},percent:function(t){return new _n(t,"%")},px:function(t){return new _n(t,"px")},em:function(t){return new _n(t,"em")},rem:function(t){return new _n(t,"rem")},deg:function(t){return new _n(t,"deg")},grad:function(t){return new _n(t,"grad")},rad:function(t){return new _n(t,"rad")},turn:function(t){return new _n(t,"turn")},s:function(t){return new _n(t,"s")},ms:function(t){return new _n(t,"ms")},registerProperty:function(t){var e=t.name,n=t.inherits,i=t.interpolable,a=t.initialValue,s=t.syntax;re.styleValueRegistry.registerMetadata({n:e,inh:n,int:i,d:a,syntax:s})},registerLayout:function(t,e){re.layoutRegistry.registerLayout(t,e)}},JE=function(r){function t(){var e;(0,P.Z)(this,t),e=(0,K.Z)(this,t),e.defaultView=null,e.ownerDocument=null,e.nodeName="document";try{e.timeline=new re.AnimationTimeline(e)}catch(i){}var n={};return fm.forEach(function(i){var a=i.n,s=i.inh,o=i.d;s&&o&&(n[a]=Vt(o)?o(Kt.GROUP):o)}),e.documentElement=new Ai({id:"g-root",style:n}),e.documentElement.ownerDocument=e,e.documentElement.parentNode=e,e.childNodes=[e.documentElement],e}return(0,_.Z)(t,r),(0,N.Z)(t,[{key:"children",get:function(){return this.childNodes}},{key:"childElementCount",get:function(){return this.childNodes.length}},{key:"firstElementChild",get:function(){return this.firstChild}},{key:"lastElementChild",get:function(){return this.lastChild}},{key:"createElement",value:function(n,i){if(n==="svg")return this.documentElement;var a=this.defaultView.customElements.get(n);a||(console.warn("Unsupported tagName: ",n),a=n==="tspan"?ml:Ai);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(On)}},{key:"destroy",value:function(){try{this.documentElement.destroyChildren(),this.timeline.destroy()}catch(n){}}},{key:"elementsFromBBox",value:function(n,i,a,s){var o=[],A=function(c){if(!(!c.isInteractive()||c.isCulled())){var u=c.parsedStyle.pointerEvents,h=u===void 0?"auto":u,d=["auto","visiblepainted","visiblefill","visiblestroke","visible"].includes(h);if(!d||c.isVisible()){var f=c.getTransformedGeometryBounds(!0);f&&!Zn.isEmpty(f)&&f.max[0]>=n&&f.min[0]<=a&&f.max[1]>=i&&f.min[1]<=s&&o.push(c)}c.childNodes&&c.childNodes.forEach(function(g){g instanceof ir&&A(g)})}};return A(this.documentElement),o.sort(function(l,c){return c.sortable.renderOrder-l.sortable.renderOrder}),o}},{key:"elementFromPointSync",value:function(n,i){var a=this.defaultView.canvas2Viewport({x:n,y:i}),s=a.x,o=a.y,A=this.defaultView.getConfig(),l=A.width,c=A.height;if(s<0||o<0||s>l||o>c)return null;var u=this.defaultView.viewport2Client({x:s,y:o}),h=u.x,d=u.y,f=this.defaultView.getRenderingService().hooks.pickSync.call({topmost:!0,position:{x:n,y:i,viewportX:s,viewportY:o,clientX:h,clientY:d},picked:[]}),g=f.picked;return g&&g[0]||this.documentElement}},{key:"elementFromPoint",value:function(){var e=(0,Xa.Z)((0,ii.Z)().mark(function i(a,s){var o,A,l,c,u,h,d,f,g,v,p;return(0,ii.Z)().wrap(function(y){for(;;)switch(y.prev=y.next){case 0:if(o=this.defaultView.canvas2Viewport({x:a,y:s}),A=o.x,l=o.y,c=this.defaultView.getConfig(),u=c.width,h=c.height,!(A<0||l<0||A>u||l>h)){y.next=1;break}return y.abrupt("return",null);case 1:return d=this.defaultView.viewport2Client({x:A,y:l}),f=d.x,g=d.y,y.next=2,this.defaultView.getRenderingService().hooks.pick.promise({topmost:!0,position:{x:a,y:s,viewportX:A,viewportY:l,clientX:f,clientY:g},picked:[]});case 2:return v=y.sent,p=v.picked,y.abrupt("return",p&&p[0]||this.documentElement);case 3:case"end":return y.stop()}},i,this)}));function n(i,a){return e.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,A=this.defaultView.getConfig(),l=A.width,c=A.height;if(s<0||o<0||s>l||o>c)return[];var u=this.defaultView.viewport2Client({x:s,y:o}),h=u.x,d=u.y,f=this.defaultView.getRenderingService().hooks.pickSync.call({topmost:!1,position:{x:n,y:i,viewportX:s,viewportY:o,clientX:h,clientY:d},picked:[]}),g=f.picked;return g[g.length-1]!==this.documentElement&&g.push(this.documentElement),g}},{key:"elementsFromPoint",value:function(){var e=(0,Xa.Z)((0,ii.Z)().mark(function i(a,s){var o,A,l,c,u,h,d,f,g,v,p;return(0,ii.Z)().wrap(function(y){for(;;)switch(y.prev=y.next){case 0:if(o=this.defaultView.canvas2Viewport({x:a,y:s}),A=o.x,l=o.y,c=this.defaultView.getConfig(),u=c.width,h=c.height,!(A<0||l<0||A>u||l>h)){y.next=1;break}return y.abrupt("return",[]);case 1:return d=this.defaultView.viewport2Client({x:A,y:l}),f=d.x,g=d.y,y.next=2,this.defaultView.getRenderingService().hooks.pick.promise({topmost:!1,position:{x:a,y:s,viewportX:A,viewportY:l,clientX:f,clientY:g},picked:[]});case 2:return v=y.sent,p=v.picked,p[p.length-1]!==this.documentElement&&p.push(this.documentElement),y.abrupt("return",p);case 3:case"end":return y.stop()}},i,this)}));function n(i,a){return e.apply(this,arguments)}return n}()},{key:"appendChild",value:function(n,i){throw new Error(aA)}},{key:"insertBefore",value:function(n,i){throw new Error(aA)}},{key:"removeChild",value:function(n,i){throw new Error(aA)}},{key:"replaceChild",value:function(n,i,a){throw new Error(aA)}},{key:"append",value:function(){throw new Error(aA)}},{key:"prepend",value:function(){throw new Error(aA)}},{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)}}])}(pr),qE=function(){function r(t){(0,P.Z)(this,r),this.strategies=t}return(0,N.Z)(r,[{key:"apply",value:function(e){var n=e.config,i=e.camera,a=e.renderingService,s=e.renderingContext,o=this.strategies;a.hooks.cull.tap(r.tag,function(A){if(A){var l,c=A.cullable;if(o.length===0?c.visible=s.unculledEntities.indexOf(A.entity)>-1:c.visible=o.every(function(h){return h.isVisible(i,A)}),!A.isCulled()&&A.isVisible())return A;var u=((l=n.future)===null||l===void 0?void 0:l.experimentalCancelEventPropagation)===!0;return A.dispatchEvent(new Wr(yn.CULLED),u,u),null}return A}),a.hooks.afterRender.tap(r.tag,function(A){A.cullable.visibilityPlaneMask=-1})}}])}();qE.tag="Culling";var $E=function(){function r(){var t=this;(0,P.Z)(this,r),this.autoPreventDefault=!1,this.rootPointerEvent=new uf(null),this.rootWheelEvent=new Bm(null),this.onPointerMove=function(e){var n,i=(n=t.context.renderingContext.root)===null||n===void 0||(n=n.ownerDocument)===null||n===void 0?void 0:n.defaultView;if(!(i.supportsTouchEvents&&e.pointerType==="touch")){var a=t.normalizeToPointerEvent(e,i),s=(0,Ws.Z)(a),o;try{for(s.s();!(o=s.n()).done;){var A=o.value,l=t.bootstrapEvent(t.rootPointerEvent,A,i,e);t.context.eventService.mapEvent(l)}}catch(c){s.e(c)}finally{s.f()}t.setCursor(t.context.eventService.cursor)}},this.onClick=function(e){var n,i=(n=t.context.renderingContext.root)===null||n===void 0||(n=n.ownerDocument)===null||n===void 0?void 0:n.defaultView,a=t.normalizeToPointerEvent(e,i),s=(0,Ws.Z)(a),o;try{for(s.s();!(o=s.n()).done;){var A=o.value,l=t.bootstrapEvent(t.rootPointerEvent,A,i,e);t.context.eventService.mapEvent(l)}}catch(c){s.e(c)}finally{s.f()}t.setCursor(t.context.eventService.cursor)}}return(0,N.Z)(r,[{key:"apply",value:function(e){var n=this;this.context=e;var i=e.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}),A=o.picked;return A[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 A=s.cancelable||!("cancelable"in s);A&&s.preventDefault()}var l=(0,Ws.Z)(o),c;try{for(l.s();!(c=l.n()).done;){var u=c.value,h=n.bootstrapEvent(n.rootPointerEvent,u,a,s);n.context.eventService.mapEvent(h)}}catch(d){l.e(d)}finally{l.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(),A=n.context.eventService.isNativeEventFromCanvas(o,s),l=A?"":"outside",c=n.normalizeToPointerEvent(s,a),u=(0,Ws.Z)(c),h;try{for(u.s();!(h=u.n()).done;){var d=h.value,f=n.bootstrapEvent(n.rootPointerEvent,d,a,s);f.type+=l,n.context.eventService.mapEvent(f)}}catch(g){u.e(g)}finally{u.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),A=(0,Ws.Z)(o),l;try{for(A.s();!(l=A.n()).done;){var c=l.value,u=n.bootstrapEvent(n.rootPointerEvent,c,a,s);n.context.eventService.mapEvent(u)}}catch(h){A.e(h)}finally{A.f()}n.setCursor(n.context.eventService.cursor)})}},{key:"bootstrapEvent",value:function(e,n,i,a){e.view=i,e.originalEvent=null,e.nativeEvent=a,e.pointerId=n.pointerId,e.width=n.width,e.height=n.height,e.isPrimary=n.isPrimary,e.pointerType=n.pointerType,e.pressure=n.pressure,e.tangentialPressure=n.tangentialPressure,e.tiltX=n.tiltX,e.tiltY=n.tiltY,e.twist=n.twist,this.transferMouseData(e,n);var s=this.context.eventService.client2Viewport({x:n.clientX,y:n.clientY}),o=s.x,A=s.y;e.viewport.x=o,e.viewport.y=A;var l=this.context.eventService.viewport2Canvas(e.viewport),c=l.x,u=l.y;return e.canvas.x=c,e.canvas.y=u,e.global.copyFrom(e.canvas),e.offset.copyFrom(e.canvas),e.isTrusted=a.isTrusted,e.type==="pointerleave"&&(e.type="pointerout"),e.type.startsWith("mouse")&&(e.type=e.type.replace("mouse","pointer")),e.type.startsWith("touch")&&(e.type=xF[e.type]||e.type),e}},{key:"normalizeWheelEvent",value:function(e){var n=this.rootWheelEvent;this.transferMouseData(n,e),n.deltaMode=e.deltaMode,n.deltaX=e.deltaX,n.deltaY=e.deltaY,n.deltaZ=e.deltaZ;var i=this.context.eventService.client2Viewport({x:e.clientX,y:e.clientY}),a=i.x,s=i.y;n.viewport.x=a,n.viewport.y=s;var o=this.context.eventService.viewport2Canvas(n.viewport),A=o.x,l=o.y;return n.canvas.x=A,n.canvas.y=l,n.global.copyFrom(n.canvas),n.offset.copyFrom(n.canvas),n.nativeEvent=e,n.type=e.type,n}},{key:"transferMouseData",value:function(e,n){e.isTrusted=n.isTrusted,e.srcElement=n.srcElement,e.timeStamp=mm.now(),e.type=n.type,e.altKey=n.altKey,e.metaKey=n.metaKey,e.shiftKey=n.shiftKey,e.ctrlKey=n.ctrlKey,e.button=n.button,e.buttons=n.buttons,e.client.x=n.clientX,e.client.y=n.clientY,e.movement.x=n.movementX,e.movement.y=n.movementY,e.page.x=n.pageX,e.page.y=n.pageY,e.screen.x=n.screenX,e.screen.y=n.screenY,e.relatedTarget=null}},{key:"setCursor",value:function(e){this.context.contextService.applyCursorStyle(e||this.context.config.cursor||"default")}},{key:"normalizeToPointerEvent",value:function(e,n){var i=[];if(n.isTouchEvent(e))for(var a=0;a-1,A=0,l=a.length;A=1?Math.ceil(q):1,a&&(R=o||EF(a)||a.width/q,j=A||BF(a)||a.height/q),n.customElements=new HT,n.devicePixelRatio=q,n.requestAnimationFrame=v!=null?v:ym.bind(re.globalThis),n.cancelAnimationFrame=p!=null?p:DE.bind(re.globalThis),n.createImage=y!=null?y:function(){return new window.Image},n.supportsTouchEvents=x!=null?x:"ontouchstart"in re.globalThis,n.supportsPointerEvents=F!=null?F:!!re.globalThis.PointerEvent,n.isTouchEvent=O!=null?O:function(et){return n.supportsTouchEvents&&et instanceof re.globalThis.TouchEvent},n.isMouseEvent=L!=null?L:function(et){return!re.globalThis.MouseEvent||et instanceof re.globalThis.MouseEvent&&(!n.supportsPointerEvents||!(et instanceof re.globalThis.PointerEvent))},f&&(re.offscreenCanvas=f),n.document=new JE,n.document.defaultView=n,u||pF(i,n,d),n.initRenderingContext((0,z.Z)((0,z.Z)({},e),{},{width:R,height:j,background:l!=null?l:"transparent",cursor:c!=null?c:"default",cleanUpOnDestroy:d,devicePixelRatio:q,requestAnimationFrame:n.requestAnimationFrame,cancelAnimationFrame:n.cancelAnimationFrame,createImage:n.createImage,supportsTouchEvents:n.supportsTouchEvents,supportsPointerEvents:n.supportsPointerEvents,isTouchEvent:n.isTouchEvent,isMouseEvent:n.isMouseEvent,dblClickSpeed:U!=null?U:200})),n.initDefaultCamera(R,j,s.clipSpaceNearZ),n.initRenderer(s,!0),n}return(0,_.Z)(t,r),(0,N.Z)(t,[{key:"initRenderingContext",value:function(n){this.context.config=n,this.context.renderingContext={root:this.document.documentElement,unculledEntities:[],renderListCurrentFrame:[],renderReasons:new Set,force:!1,dirty:!1}}},{key:"initDefaultCamera",value:function(n,i,a){var s=this,o=new re.CameraContribution;o.clipSpaceNearZ=a,o.setType(In.EXPLORING,Bc.DEFAULT).setPosition(n/2,i/2,eB).setFocalPoint(n/2,i/2,0).setOrthographic(n/-2,n/2,i/2,i/-2,VT,WT),o.canvas=this,o.eventEmitter.on(Yd.UPDATED,function(){s.context.renderingContext.renderReasons.add(Qc.CAMERA_CHANGED),re.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){re.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,i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,a=arguments.length>1?arguments[1]:void 0;Nn.clearCache();var s=((n=this.getConfig().future)===null||n===void 0?void 0:n.experimentalCancelEventPropagation)===!0;a||this.dispatchEvent(new Wr(La.BEFORE_DESTROY),s,s),this.frameId&&this.cancelAnimationFrame(this.frameId);var o=this.getRoot();i&&(this.unmountChildren(o),this.document.destroy(),this.getEventService().destroy()),this.getRenderingService().destroy(),this.getContextService().destroy(),a||this.dispatchEvent(new Wr(La.AFTER_DESTROY),s,s);var A=function(c){c.currentTarget=null,c.manager=null,c.target=null,c.relatedNode=null};A(vf),A(pf),A(Sm),A(nB),A(Mm),A(to),A(xm),A(Cm),A(XE),re.textService.clearCache()}},{key:"changeSize",value:function(n,i){this.resize(n,i)}},{key:"resize",value:function(n,i){var a,s=this.context.config;s.width=n,s.height=i,this.getContextService().resize(n,i);var o=this.context.camera,A=o.getProjectionMode();o.setPosition(n/2,i/2,eB).setFocalPoint(n/2,i/2,0),A===ea.ORTHOGRAPHIC?o.setOrthographic(n/-2,n/2,i/2,i/-2,o.getNear(),o.getFar()):o.setAspect(n/i);var l=((a=s.future)===null||a===void 0?void 0:a.experimentalCancelEventPropagation)===!0;this.dispatchEvent(new Wr(La.RESIZE,{width:n,height:i}),l,l)}},{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,a=this;n&&(Sm.detail=n,Mm.detail=n);var s=((i=this.getConfig().future)===null||i===void 0?void 0:i.experimentalCancelEventPropagation)===!0;this.dispatchEvent(Sm,s,s);var o=this.getRenderingService();o.render(this,n,function(){a.dispatchEvent(nB,s,s)}),this.dispatchEvent(Mm,s,s)}},{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.renderingPlugins=[],this.context.renderingPlugins.push(new $E,new tB,new qE([new KT])),this.loadRendererContainerModule(n),this.context.contextService=new this.context.ContextService((0,z.Z)((0,z.Z)({},re),this.context)),this.context.renderingService=new rT(re,this.context),this.context.eventService=new nT(re,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)}).catch(function(s){console.error(s)})}},{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(){var o;i.inited=!0;var A=((o=i.getConfig().future)===null||o===void 0?void 0:o.experimentalCancelEventPropagation)===!0;a?s?i.requestAnimationFrame(function(){i.dispatchEvent(new Wr(La.READY),A,A)}):i.dispatchEvent(new Wr(La.READY),A,A):i.dispatchEvent(new Wr(La.RENDERER_CHANGED),A,A),i.readyPromise&&i.resolveReadyPromise(),a||i.getRoot().forEach(function(l){var c,u;(c=(u=l).dirty)===null||c===void 0||c.call(u,!0,!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(re)})}},{key:"setRenderer",value:function(n){var i=this.getConfig();if(i.renderer!==n){var a=i.renderer;i.renderer=n,this.destroy(!1,!0),(0,G.Z)((a==null?void 0:a.getPlugins())||[]).reverse().forEach(function(s){s.destroy(re)}),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;if(n.childNodes.forEach(function(o){i.unmountChildren(o)}),this.inited){if(n.isMutationObserved)n.dispatchEvent(pf);else{var a,s=((a=this.getConfig().future)===null||a===void 0?void 0:a.experimentalCancelEventPropagation)===!0;pf.target=n,this.dispatchEvent(pf,!0,s)}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]:lf(n);if(this.inited){if(!n.isConnected&&(n.ownerDocument=this.document,n.isConnected=!0,!a))if(n.isMutationObserved)n.dispatchEvent(vf);else{var s,o=((s=this.getConfig().future)===null||s===void 0?void 0:s.experimentalCancelEventPropagation)===!0;vf.target=n,this.dispatchEvent(vf,!0,o)}}else console.warn("[g]: You are trying to call `canvas.appendChild` before canvas' initialization finished. You can either await `canvas.ready` or listen to `CanvasEvent.READY` manually.","appended child: ",n.nodeName);n.childNodes.forEach(function(A){i.mountChildren(A,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})}}])}(KE),j8=0,rB=new WeakMap,iB=null,Z8=null,Y8=null,mf,Oo;function X8(r,t){return mf=new iB(r,t)}function J8(r){return Oo||(Oo=iB.copy(mf),Oo.oldValue=r,Oo)}function q8(){mf=Oo=void 0}function jT(r){return r===Oo||r===mf}function $8(r,t){return r===t?r:Oo&&jT(r)?Oo:null}function ZT(r){r.nodes.forEach(function(t){var e=rB.get(t);e&&e.forEach(function(n){n.observer===r&&n.removeTransientObservers()})})}function tG(r,t){for(var e=r;e;e=e.parentNode){var n=rB.get(e);if(n)for(var i=0;i0&&arguments[0]!==void 0?arguments[0]:r.api;r.rafId&&(e.cancelAnimationFrame(r.rafId),r.rafId=null)}},{key:"executeTask",value:function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:r.api;Nm.length<=0&&Lm.length<=0||(Lm.forEach(function(n){return n()}),Lm=Nm.splice(0,r.TASK_NUM_PER_FRAME),r.rafId=e.requestAnimationFrame(function(){r.executeTask(e)}))}},{key:"sliceImage",value:function(e,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,A=e.naturalWidth||e.width,l=e.naturalHeight||e.height,c=n-s,u=i-s,h=Math.ceil(A/c),d=Math.ceil(l/u),f={tileSize:[n,i],gridSize:[d,h],tiles:Array(d).fill(null).map(function(){return Array(h).fill(null)})},g=function(y){for(var x=function(L){Nm.push(function(){var U=L*c,R=y*u,j=[Math.min(n,A-U),Math.min(i,l-R)],q=j[0],et=j[1],it=o.createCanvas();it.width=n,it.height=i;var dt=it.getContext("2d");dt.drawImage(e,U,R,q,et,0,0,q,et),f.tiles[y][L]={x:U,y:R,tileX:L,tileY:y,data:it},a()})},F=0;F1&&arguments[1]!==void 0?arguments[1]:[0,0,0];return"matrix(".concat([e[0],e[1],e[4],e[5],e[12]+n[0],e[13]+n[1]].join(","),")")}},{key:"apply",value:function(e,n){var i=this,a=e.camera,s=e.renderingContext,o=e.renderingService;this.context=e;var A=s.root.ownerDocument.defaultView,l=A.context.eventService.nativeHTMLMap,c=function(p,y){y.style.transform=i.joinTransformMatrix(p.getWorldTransform(),p.getOrigin())},u=function(p){var y=p.target;if(y.nodeName===Kt.HTML){i.$camera||(i.$camera=i.createCamera(a));var x=i.getOrCreateEl(y);i.$camera.appendChild(x),Object.keys(y.attributes).forEach(function(F){i.updateAttribute(F,y)}),c(y,x),l.set(x,y)}},h=function(p){var y=p.target;if(y.nodeName===Kt.HTML&&i.$camera){var x=i.getOrCreateEl(y);x&&(x.remove(),l.delete(x))}},d=function(p){var y=p.target;if(y.nodeName===Kt.HTML){var x=p.attrName;i.updateAttribute(x,y)}},f=function(p){for(var y=p.detail,x=0;x0&&Number(this._currentTime)>=this._totalDuration||this._playbackRate<0&&Number(this._currentTime)<=0)}},{key:"totalDuration",get:function(){return this._totalDuration}},{key:"_needsTick",get:function(){return this.pending||this.playState==="running"||!this._finishedFlag}},{key:"updatePromises",value:function(){var e;if((e=this.effect.target)!==null&&e!==void 0&&e.destroyed)return this.readyPromise=void 0,this.finishedPromise=void 0,!1;var n=this.oldPlayState,i=this.pending?"pending":this.playState;return this.readyPromise&&i!==n&&(i==="idle"?(this.rejectReadyPromise(),this.readyPromise=void 0):n==="pending"?this.resolveReadyPromise():i==="pending"&&(this.readyPromise=void 0)),this.finishedPromise&&i!==n&&(i==="idle"?(this.rejectFinishedPromise(),this.finishedPromise=void 0):i==="finished"?this.resolveFinishedPromise():n==="finished"&&(this.finishedPromise=void 0)),this.oldPlayState=i,this.readyPromise||this.finishedPromise}},{key:"play",value:function(){this.updatePromises(),this._paused=!1,(this._isFinished||this._idle)&&(this.rewind(),this._startTime=null),this._finishedFlag=!1,this._idle=!1,this.ensureAlive(),this.timeline.applyDirtiedAnimation(this),this.timeline.animations.indexOf(this)===-1&&this.timeline.animations.push(this),this.updatePromises()}},{key:"pause",value:function(){this.updatePromises(),this.currentTime&&(this._holdTime=this.currentTime),!this._isFinished&&!this._paused&&!this._idle?this.currentTimePending=!0:this._idle&&(this.rewind(),this._idle=!1),this._startTime=null,this._paused=!0,this.updatePromises()}},{key:"finish",value:function(){this.updatePromises(),!this._idle&&(this.currentTime=this._playbackRate>0?this._totalDuration:0,this._startTime=this._totalDuration-this.currentTime,this.currentTimePending=!1,this.timeline.applyDirtiedAnimation(this),this.updatePromises())}},{key:"cancel",value:function(){var e=this;if(this.updatePromises(),!!this._inEffect&&(this._inEffect=!1,this._idle=!0,this._paused=!1,this._finishedFlag=!0,this._currentTime=null,this._startTime=null,this.effect.update(null),this.timeline.applyDirtiedAnimation(this),this.updatePromises(),this.oncancel)){var n=new Um(null,this,this.currentTime,null);setTimeout(function(){e.oncancel(n)})}}},{key:"reverse",value:function(){this.updatePromises();var e=this.currentTime;this.playbackRate*=-1,this.play(),e!==null&&(this.currentTime=e),this.updatePromises()}},{key:"updatePlaybackRate",value:function(e){this.playbackRate=e}},{key:"targetAnimations",value:function(){var e,n=(e=this.effect)===null||e===void 0?void 0:e.target;return n.getAnimations()}},{key:"markTarget",value:function(){var e=this.targetAnimations();e.indexOf(this)===-1&&e.push(this)}},{key:"unmarkTarget",value:function(){var e=this.targetAnimations(),n=e.indexOf(this);n!==-1&&e.splice(n,1)}},{key:"tick",value:function(e,n){!this._idle&&!this._paused&&(this._startTime===null?n&&(this.startTime=e-this._currentTime/this.playbackRate):this._isFinished||this.tickCurrentTime((e-this._startTime)*this.playbackRate)),n&&(this.currentTimePending=!1,this.fireEvents(e))}},{key:"rewind",value:function(){if(this.playbackRate>=0)this.currentTime=0;else if(this._totalDuration<1/0)this.currentTime=this._totalDuration;else throw new Error("Unable to rewind negative playback rate animation with infinite duration")}},{key:"persist",value:function(){throw new Error(On)}},{key:"addEventListener",value:function(e,n,i){throw new Error(On)}},{key:"removeEventListener",value:function(e,n,i){throw new Error(On)}},{key:"dispatchEvent",value:function(e){throw new Error(On)}},{key:"commitStyles",value:function(){throw new Error(On)}},{key:"ensureAlive",value:function(){if(this.playbackRate<0&&this.currentTime===0){var e;this._inEffect=!!((e=this.effect)!==null&&e!==void 0&&e.update(-1))}else{var 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(e,n){e!==this._currentTime&&(this._currentTime=e,this._isFinished&&!n&&(this._currentTime=this._playbackRate>0?this._totalDuration:0),this.ensureAlive())}},{key:"fireEvents",value:function(e){var n=this;if(this._isFinished){if(!this._finishedFlag){if(this.onfinish){var i=new Um(null,this,this.currentTime,e);setTimeout(function(){n.onfinish&&n.onfinish(i)})}this._finishedFlag=!0}}else{if(this.onframe&&this.playState==="running"){var a=new Um(null,this,this.currentTime,e);this.onframe(a)}this._finishedFlag=!1}}}])}(),sO=4,oO=.001,AO=1e-7,lO=10,lh=11,wf=1/(lh-1),cO=typeof Float32Array=="function",lB=function(t,e){return 1-3*e+3*t},cB=function(t,e){return 3*e-6*t},uB=function(t){return 3*t},Ef=function(t,e,n){return((lB(e,n)*t+cB(e,n))*t+uB(e))*t},hB=function(t,e,n){return 3*lB(e,n)*t*t+2*cB(e,n)*t+uB(e)},uO=function(t,e,n,i,a){var s,o,A=0;do o=e+(n-e)/2,s=Ef(o,i,a)-t,s>0?n=o:e=o;while(Math.abs(s)>AO&&++A=0&&t<=1&&n>=0&&n<=1))throw new Error("bezier x values must be in [0, 1] range");if(t===e&&n===i)return function(A){return A};for(var a=cO?new Float32Array(lh):new Array(lh),s=0;s=oO?hO(l,f,t,n):g===0?f:uO(l,c,c+wf,t,n)};return function(A){return A===0||A===1?A:Ef(o(A),e,i)}},dO=function(t){return t=t.replace(/([A-Z])/g,function(e){return"-".concat(e.toLowerCase())}),t.charAt(0)==="-"?t.substring(1):t},Bf=function(t){return Math.pow(t,2)},bf=function(t){return Math.pow(t,3)},xf=function(t){return Math.pow(t,4)},Cf=function(t){return Math.pow(t,5)},Sf=function(t){return Math.pow(t,6)},Mf=function(t){return 1-Math.cos(t*Math.PI/2)},Ff=function(t){return 1-Math.sqrt(1-t*t)},Tf=function(t){return t*t*(3*t-2)},Of=function(t){for(var e,n=4;t<((e=Math.pow(2,--n))-1)/11;);return 1/Math.pow(4,3-n)-7.5625*Math.pow((e*3-2)/22-t,2)},If=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=(0,H.Z)(e,2),i=n[0],a=i===void 0?1:i,s=n[1],o=s===void 0?.5:s,A=dr(Number(a),1,10),l=dr(Number(o),.1,2);return t===0||t===1?t:-A*Math.pow(2,10*(t-1))*Math.sin((t-1-l/(Math.PI*2)*Math.asin(1/A))*(Math.PI*2)/l)},ch=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2?arguments[2]:void 0,i=(0,H.Z)(e,4),a=i[0],s=a===void 0?1:a,o=i[1],A=o===void 0?100:o,l=i[2],c=l===void 0?10:l,u=i[3],h=u===void 0?0:u;s=dr(s,.1,1e3),A=dr(A,.1,1e3),c=dr(c,.1,1e3),h=dr(h,.1,1e3);var d=Math.sqrt(A/s),f=c/(2*Math.sqrt(A*s)),g=f<1?d*Math.sqrt(1-f*f):0,v=1,p=f<1?(f*d+-h)/g:-h+d,y=n?n*t/1e3:t;return f<1?y=Math.exp(-y*f*d)*(v*Math.cos(g*y)+p*Math.sin(g*y)):y=(v+p*y)*Math.exp(-y*d),t===0||t===1?t:1-y},Dm=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=e,i=(0,H.Z)(n,2),a=i[0],s=a===void 0?10:a,o=i[1],A=o==="start"?Math.ceil:Math.floor;return A(dr(t,0,1)*s)/s},dB=function(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=(0,H.Z)(e,4),i=n[0],a=n[1],s=n[2],o=n[3];return Rm(i,a,s,o)(t)},Nf=Rm(.42,0,1,1),ts=function(t){return function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0;return 1-t(1-e,n,i)}},es=function(t){return function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0;return e<.5?t(e*2,n,i)/2:1-t(e*-2+2,n,i)/2}},ns=function(t){return function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],i=arguments.length>2?arguments[2]:void 0;return e<.5?(1-t(1-e*2,n,i))/2:(t(e*2-1,n,i)+1)/2}},fB={steps:Dm,"step-start":function(t){return Dm(t,[1,"start"])},"step-end":function(t){return Dm(t,[1,"end"])},linear:function(t){return t},"cubic-bezier":dB,ease:function(t){return dB(t,[.25,.1,.25,1])},in:Nf,out:ts(Nf),"in-out":es(Nf),"out-in":ns(Nf),"in-quad":Bf,"out-quad":ts(Bf),"in-out-quad":es(Bf),"out-in-quad":ns(Bf),"in-cubic":bf,"out-cubic":ts(bf),"in-out-cubic":es(bf),"out-in-cubic":ns(bf),"in-quart":xf,"out-quart":ts(xf),"in-out-quart":es(xf),"out-in-quart":ns(xf),"in-quint":Cf,"out-quint":ts(Cf),"in-out-quint":es(Cf),"out-in-quint":ns(Cf),"in-expo":Sf,"out-expo":ts(Sf),"in-out-expo":es(Sf),"out-in-expo":ns(Sf),"in-sine":Mf,"out-sine":ts(Mf),"in-out-sine":es(Mf),"out-in-sine":ns(Mf),"in-circ":Ff,"out-circ":ts(Ff),"in-out-circ":es(Ff),"out-in-circ":ns(Ff),"in-back":Tf,"out-back":ts(Tf),"in-out-back":es(Tf),"out-in-back":ns(Tf),"in-bounce":Of,"out-bounce":ts(Of),"in-out-bounce":es(Of),"out-in-bounce":ns(Of),"in-elastic":If,"out-elastic":ts(If),"in-out-elastic":es(If),"out-in-elastic":ns(If),spring:ch,"spring-in":ch,"spring-out":ts(ch),"spring-in-out":es(ch),"spring-out-in":ns(ch)},fO=function(t){return dO(t).replace(/^ease-/,"").replace(/(\(|\s).+/,"").toLowerCase().trim()},gO=function(t){return fB[fO(t)]||fB.linear},vO=function(t){return t},pO=1,mO=.5,gB=0;function vB(r,t){return function(e){if(e>=1)return 1;var n=1/r;return e+=t*n,e-e%n}}var Lf="\\s*(-?\\d+\\.?\\d*|-?\\.\\d+)\\s*",yO=new RegExp("cubic-bezier\\(".concat(Lf,",").concat(Lf,",").concat(Lf,",").concat(Lf,"\\)")),wO=/steps\(\s*(\d+)\s*\)/,EO=/steps\(\s*(\d+)\s*,\s*(start|middle|end)\s*\)/;function Pm(r){var t=yO.exec(r);if(t)return Rm.apply(void 0,(0,G.Z)(t.slice(1).map(Number)));var e=wO.exec(r);if(e)return vB(Number(e[1]),gB);var n=EO.exec(r);return n?vB(Number(n[1]),{start:pO,middle:mO,end:gB}[n[2]]):gO(r)}function BO(r){return Math.abs(bO(r)/(r.playbackRate||1))}function bO(r){var t;return r.duration===0||r.iterations===0?0:(r.duration==="auto"?0:Number(r.duration))*((t=r.iterations)!==null&&t!==void 0?t:1)}var pB=0,_m=1,kf=2,mB=3;function xO(r,t,e){if(t===null)return pB;var n=e.endTime;return t=Math.min(e.delay+r+e.endDelay,n)?kf:mB}function CO(r,t,e,n,i){switch(n){case _m:return t==="backwards"||t==="both"?0:null;case mB:return e-i;case kf:return t==="forwards"||t==="both"?r:null;case pB:return null}}function SO(r,t,e,n,i){var a=i;return r===0?t!==_m&&(a+=e):a+=n/r,a}function MO(r,t,e,n,i,a){var s=r===1/0?t%1:r%1;return s===0&&e===kf&&n!==0&&(i!==0||a===0)&&(s=1),s}function FO(r,t,e,n){return r===kf&&t===1/0?1/0:e===1?Math.floor(n)-1:Math.floor(n)}function TO(r,t,e){var n=r;if(r!=="normal"&&r!=="reverse"){var i=t;r==="alternate-reverse"&&(i+=1),n="normal",i!==1/0&&i%2!==0&&(n="reverse")}return n==="normal"?e:1-e}function OO(r,t,e){var n=xO(r,t,e),i=CO(r,e.fill,t,n,e.delay);if(i===null)return null;var a=e.duration==="auto"?0:e.duration,s=SO(a,n,e.iterations,i,e.iterationStart),o=MO(s,e.iterationStart,n,e.iterations,i,a),A=FO(n,e.iterations,o,s),l=TO(e.direction,A,o);return e.currentIteration=A,e.progress=l,e.easingFunction(l)}function IO(r,t,e){var n=NO(r,t),i=LO(n,e);return function(a,s){if(s!==null)i.filter(function(A){return s>=A.applyFrom&&s1)throw new Error("Keyframe offsets must be between 0 and 1.");l.computedOffset=u}}else if(c==="composite"&&["replace","add","accumulate","auto"].indexOf(u)===-1)throw new Error("".concat(u," compositing is not supported"));l[c]=u}return l.offset===void 0&&(l.offset=null),l.easing===void 0&&(l.easing=(t==null?void 0:t.easing)||"linear"),l.composite===void 0&&(l.composite="auto"),l}),n=!0,i=-1/0,a=0;a=0&&Number(A.offset)<=1});function o(){var A,l=e,c=l.length;if(e[c-1].computedOffset=Number((A=e[c-1].offset)!==null&&A!==void 0?A:1),c>1){var u;e[0].computedOffset=Number((u=e[0].offset)!==null&&u!==void 0?u:0)}for(var h=0,d=Number(e[0].computedOffset),f=1;f90)return this;this.computeMatrix()}return this._getAxes(),this.type===In.ORBITING||this.type===In.EXPLORING?this._getPosition():this.type===In.TRACKING&&this._getFocalPoint(),this._update(),this}},{key:"pan",value:function(n,i){var a=pi(n,i,0),s=Gt(this.position);return de(s,s,Pt(Ot(),this.right,a[0])),de(s,s,Pt(Ot(),this.up,a[1])),this._setPosition(s),this.triggerUpdate(),this}},{key:"dolly",value:function(n){var i=this.forward,a=Gt(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===In.ORBITING||this.type===In.EXPLORING?this._getDistance():this.type===In.TRACKING&&de(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,A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=A.position,c=l===void 0?this.position:l,u=A.focalPoint,h=u===void 0?this.focalPoint:u,d=A.roll,f=A.zoom,g=new re.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(h[0],(s=h[1])!==null&&s!==void 0?s:this.focalPoint[1],(o=h[2])!==null&&o!==void 0?o:this.focalPoint[2]),g.setRoll(d!=null?d:this.roll),g.setZoom(f!=null?f:this.zoom);var v={name:n,matrix:Ee(g.getWorldTransform()),right:Gt(g.right),up:Gt(g.up),forward:Gt(g.forward),position:Gt(g.getPosition()),focalPoint:Gt(g.getFocalPoint()),distanceVector:Gt(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(v),v}},{key:"gotoLandmark",value:function(n){var i=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=gn(n)?this.landmarks.find(function(et){return et.name===n}):n;if(s){var o=ye(a)?{duration:a}:a,A=o.easing,l=A===void 0?"linear":A,c=o.duration,u=c===void 0?100:c,h=o.easingFunction,d=h===void 0?void 0:h,f=o.onfinish,g=f===void 0?void 0:f,v=o.onframe,p=v===void 0?void 0:v,y=.01;this.cancelLandmarkAnimation();var x=s.position,F=s.focalPoint,O=s.zoom,L=s.roll,U=d||re.EasingFunction(l),R,j=function(){i.setFocalPoint(F),i.setPosition(x),i.setRoll(L),i.setZoom(O),i.computeMatrix(),i.triggerUpdate(),g==null||g()};if(u===0)return j();var q=function(it){R===void 0&&(R=it);var dt=it-R;if(dt>=u){j();return}var ft=U(dt/u),mt=Ot(),Rt=Ot(),Qt=1,yt=0;nn(mt,i.focalPoint,F,ft),nn(Rt,i.position,x,ft),yt=i.roll*(1-ft)+L*ft,Qt=i.zoom*(1-ft)+O*ft,i.setFocalPoint(mt),i.setPosition(Rt),i.setRoll(yt),i.setZoom(Qt);var xt=Ba(mt,F)+Ba(Rt,x);if(xt<=y&&O===void 0&&L===void 0)return j();i.computeMatrix(),i.triggerUpdate(),dtft*ft+mt*mt&&(R=q,j=et),{cx:R,cy:j,x0:-c,y0:-u,x1:R*(i/O-1),y1:j*(i/O-1)}}function Io(r,t){return t=t<0&&r>=0?t+JO:t,t-r<=Hm?0:1}var eI=function(r){function t(e){var n;return(0,P.Z)(this,t),n=(0,K.Z)(this,t,[e]),n.updatePath(),n}return(0,_.Z)(t,r),(0,N.Z)(t,[{key:"setAttribute",value:function(n,i,a){Ks(t,"setAttribute",this,3)([n,i,a]),["startAngle","endAngle","sr","sr0","radius"].indexOf(n)>-1&&this.updatePath()}},{key:"updatePath",value:function(){var n=this.parsedStyle,i=n.x,a=n.y,s=n.startAngle,o=n.endAngle,A=n.sr,l=n.sr0,c=n.radius,u=this.createPath(i,a,s?Un(s):0,o?Un(o):Math.PI*2,A||0,l||0,c||[0,0,0,0]);Ks(t,"setAttribute",this,3)(["d",u])}},{key:"createPath",value:function(n,i,a,s,o,A,l){if(!(o<=0)){var c=bs(n,i,o,a),u=bs(n,i,o,s),h=bs(n,i,A,a),d=bs(n,i,A,s);if(tA(s-a,Math.PI*2)){var f=bs(n,i,o,a+Math.PI),g=bs(n,i,A,a+Math.PI),v=[["M",c.x,c.y],["A",o,o,0,1,1,f.x,f.y],["A",o,o,0,1,1,u.x,u.y],["M",h.x,h.y]];return A&&(v.push(["A",A,A,0,1,0,g.x,g.y]),v.push(["A",A,A,0,1,0,d.x,d.y])),v.push(["M",c.x,c.y]),v.push(["Z"]),v}var p=s-a,y=o*Qf(a),x=o*uh(a),F=A*Qf(s),O=A*uh(s),L=o*Qf(s),U=o*uh(s),R=A*Qf(a),j=A*uh(a),q=(0,H.Z)(l,4),et=q[0],it=q[1],dt=q[2],ft=q[3],mt=(o-A)/2,Rt=no(mt,et),Qt=no(mt,it),yt=no(mt,dt),xt=no(mt,ft),Dt=Gm(Rt,Qt),Xt=Gm(yt,xt),ne=Dt,le=Xt;if((Dt>Uc||Xt>Uc)&&pUc){var vr=no(et,ne),wa=no(it,ne),Hn=Uf(R,j,y,x,o,vr,kn),Bn=Uf(L,U,F,O,o,wa,kn);if(Cn.push(["M",n+Hn.cx+Hn.x0,i+Hn.cy+Hn.y0]),ne0){var Vi=_i(Hn.y0,Hn.x0),cn=_i(Hn.y1,Hn.x1),Fn=bs(n,i,o,cn);Cn.push(["A",vr,vr,0,Io(Vi,cn),1,Fn.x,Fn.y])}var hn=_i(Hn.cy+Hn.y1,Hn.cx+Hn.x1),Sn=_i(Bn.cy+Bn.y1,Bn.cx+Bn.x1),Rn=bs(n,i,o,Sn);if(Cn.push(["A",o,o,0,Io(hn,Sn),1,Rn.x,Rn.y]),wa>0){var ke=_i(Bn.y1,Bn.x1),Tn=_i(Bn.y0,Bn.x0);Cn.push(["A",wa,wa,0,Io(ke,Tn),1,n+Bn.cx+Bn.x0,i+Bn.cy+Bn.y0])}}}else Cn.push(["M",c.x,c.y]),Cn.push(["A",o,o,0,er,1,u.x,u.y]);if(AUc){var En=no(ft,le),ur=no(dt,le),qe=Uf(F,O,0,0,A-o,ur,kn),Je=Uf(0,0,R,j,A-o,En,kn);if(Cn.push(["L",n+qe.cx+qe.x0,i+qe.cy+qe.y0]),le0){var zo=_i(qe.y0,qe.x0),Ko=_i(qe.y1,qe.x1),Bi=bs(n,i,A-o,Ko);Cn.push(["A",ur,ur,0,Io(zo,Ko),1,Bi.x,Bi.y])}var Ea=_i(qe.cy+qe.y1,qe.cx+qe.x1),Ga=_i(Je.cy+Je.y1,Je.cx+Je.x1),za=bs(n,i,A,Ga);if(Cn.push(["A",A,A,0,Io(Ga,Ea),0,za.x,za.y]),Cn.push(["L",za.x,za.y]),En>0){var Ni=_i(Je.y1,Je.x1),Ka=_i(Je.y0,Je.x0);Cn.push(["A",En,En,0,Io(Ni,Ka),1,n+Je.cx+Je.x0,i+Je.cy+Je.y0])}}}else Cn.push(["L",d.x,d.y]),Cn.push(["A",A,A,0,er,0,h.x,h.y]);return Cn.push(["Z"]),Cn}}}])}(Pi);eI.PARSED_STYLE_LIST=new Set([].concat((0,G.Z)(Pi.PARSED_STYLE_LIST),["x","y","sr","sr0","radius","startAngle","endAngle"]));var MB=function(r){return Re(r)?"":r.toString()},nI=function(r){var t=MB(r);return t.charAt(0).toUpperCase()+t.substring(1)},Rf=nI,rI=function(r){return typeof r=="object"&&r!==null},zm=rI,iI=function(r){return r!==null&&typeof r!="function"&&isFinite(r.length)},dh=iI,Km=function(r,t){if(r===t)return!0;if(!r||!t||gn(r)||gn(t))return!1;if(dh(r)||dh(t)){if(r.length!==t.length)return!1;for(var e=!0,n=0;n{!va.mute&&console.debug(ko(r))},info:r=>{!va.mute&&console.info(ko(r))},warn:r=>{!va.mute&&console.warn(ko(r))},error:r=>{!va.mute&&console.error(ko(r))}};function FB(r){const{theme:t}=r;if(!t)return{};const e=Lo(fh.THEME,t);return e||(va.warn(`The theme of ${t} is not registered.`),{})}function Wm(r,t){if(Array.isArray(r)&&r.length===0)return null;const e=Array.isArray(r)?r[0]:r,n=Array.isArray(r)?r.slice(1):t||[];return new Proxy(e,{get(i,a){return typeof i[a]=="function"&&!["onframe","onfinish"].includes(a)?(...s)=>{i[a](...s),n.forEach(o=>{var A;return(A=o[a])===null||A===void 0?void 0:A.call(o,...s)})}:a==="finished"?Promise.all([e.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 jm(r){const t=r.reduce((n,i)=>(Object.entries(i).forEach(([a,s])=>{n[a]===void 0?n[a]=[s]:n[a].push(s)}),n),{});Object.entries(t).forEach(([n,i])=>{(i.length!==r.length||i.some(a=>Re(a))||i.every(a=>!["sourceNode","targetNode","childrenNode"].includes(n)&&Pr(a,i[0])))&&delete t[n]});const e=Object.entries(t).reduce((n,[i,a])=>(a.forEach((s,o)=>{n[o]?n[o][i]=s:n[o]={[i]:s}}),n),[]);return r.length!==0&&e.length===0&&e.push({_:0},{_:0}),e}function gh(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 TB(r,t){const{animation:e}=r;if(e===!1||t===!1)return!1;const n=Object.assign({},aI);return br(e)&&Object.assign(n,e),br(t)&&Object.assign(n,t),n}function lI(r){if(typeof r=="string"){const t=Lo(fh.ANIMATION,r);return t||(va.warn(`The animation of ${r} is not registered.`),[])}return r}function cI(r,t,e,n){var i,a;const{animation:s}=r;if(s===!1||n===!1)return[];const o=(i=r==null?void 0:r[t])===null||i===void 0?void 0:i.animation;if(o===!1)return[];const A=o==null?void 0:o[e];if(A===!1)return[];const l=(a=FB(r)[t])===null||a===void 0?void 0:a.animation,c=(h=[])=>lI(h).map(d=>Object.assign(Object.assign(Object.assign(Object.assign({},sI),br(s)&&s),d),br(n)&&n));if(A)return c(A);if(!l)return[];const u=l[e];return u===!1?[]:c(u)}function OB(r,t,e,n=[]){if(!n&&r===0&&t===0&&e===0)return null;if(Array.isArray(n)){let a=-1;const s=[];for(let o=0;o{if(!e.length)return null;const[n,i]=t,a=l=>{var c;if(l){const u=r.getShape(l);if(!u)return null;const h=`get${Rf(l)}Style`,d=((c=r==null?void 0:r[h])===null||c===void 0?void 0:c.bind(r))||(v=>v),f=(d==null?void 0:d(n))||{},g=(d==null?void 0:d(i))||{};return{shape:u,fromStyle:f,toStyle:g}}else return{shape:r,fromStyle:n,toStyle:i}};let s;const o=e.map(l=>{var{fields:c,shape:u,states:h}=l,d=uI(l,["fields","shape","states"]);const f=a(u);if(!f)return null;const{shape:g,fromStyle:v,toStyle:p}=f,y=[{},{}];if(c.forEach(F=>{var O,L;Object.assign(y[0],{[F]:(O=v[F])!==null&&O!==void 0?O:gh(F)}),Object.assign(y[1],{[F]:(L=p[F])!==null&&L!==void 0?L:gh(F)})}),y.some(F=>Object.keys(F).some(O=>["x","y","z"].includes(O)))){const{x:F=0,y:O=0,z:L,transform:U=""}=g.attributes||{};y.forEach(R=>{var j,q,et;R.transform=OB((j=R.x)!==null&&j!==void 0?j:F,(q=R.y)!==null&&q!==void 0?q:O,(et=R.z)!==null&&et!==void 0?et:L,U)})}const x=g.animate(jm(y),d);return u===void 0&&(s=x),x}).filter(Boolean),A=s||(o==null?void 0:o[0]);return A?Wm(A,o.filter(l=>l!==l)):null},dI=[{fields:["opacity"]}],fI=[{fields:["x","y"]}],IB=[{fields:["x","y"]}],gI=IB,NB=[{fields:["sourceNode","targetNode"]}],vI=NB,LB=[{fields:["childrenNode","x","y"]}],pI=LB,uG=[{fields:["childrenNode","x","y"]}];var mI=Object.prototype.hasOwnProperty;function yI(r,t){if(!t||!Qi(r))return{};for(var e={},n=Vt(t)?t:function(o){return o[t]},i,a=0;at?(n&&(clearTimeout(n),n=null),o=c,s=r.apply(i,a),n||(i=a=null)):!n&&e.trailing!==!1&&(n=setTimeout(A,u)),s};return l.cancel=function(){clearTimeout(n),o=0,n=i=a=null},l},Zm=function(r){if(typeof r!="object"||r===null)return r;var t;if(Qi(r)){t=[];for(var e=0,n=r.length;etypeof t=="number"):!1}function ro(r,t,e){return r>=t&&r<=e}function Ua(r=0){if(Array.isArray(r)){const[t=0,e=t,n=t,i=e]=r;return[t,e,n,i]}return[r,r,r,r]}function BI(r=0){const t=Ua(r);return t[0]+t[2]}function dG(r=0){const t=Ua(r);return t[1]+t[3]}function io(r){return r.max[0]-r.min[0]}function ao(r){return r.max[1]-r.min[1]}function yA(r){return[io(r),ao(r)]}function wA(r,t){const e=Pc(r)?Ym(r):r.getShape("key").getBounds();return t?EA(e,t):e}function Ym(r){const[t,e,n=0]=r,i=new Zn;return i.setMinMax([t,e,n],[t,e,n]),i}function EA(r,t){const[e,n,i,a]=Ua(t),[s,o,A]=r.min,[l,c,u]=r.max,h=new Zn;return h.setMinMax([s-a,o-e,A],[l+n,c+i,u]),h}function vh(r){if(r.length===0)return new Zn;if(r.length===1)return r[0];const t=new Zn;t.setMinMax(r[0].min,r[0].max);for(let e=1;e=s&&i<=A&&n>=o&&a<=l}function xs(r,t){return ro(r[0],t.min[0],t.max[0])&&ro(r[1],t.min[1],t.max[1])}function QB(r,t,e=!1){const{min:[n,i],max:[a,s]}=t,o=(r[1]===i||r[1]===s)&&(e||ro(r[0],n,a)),A=(r[0]===n||r[0]===a)&&(e||ro(r[1],i,s));return o||A}function xI(r,t){return!xs(r,t)}function _f(r,t){const{center:e}=t;return r[0]===e[0]&&r[1]===e[1]}function ph(r,t){const[e,n]=r,[i,a]=t.min,[s,o]=t.max,A=e-i,l=s-e,c=n-a,u=o-n,h=Math.min(A,l,c,u);return h===A?"left":h===l?"right":h===c?"top":h===u?"bottom":"left"}function wl(r,t){const e=Dc(r);if(xs(r,t))switch(ph(r,t)){case"left":e[0]=t.min[0];break;case"right":e[0]=t.max[0];break;case"top":e[1]=t.min[1];break;case"bottom":e[1]=t.max[1];break}else{const[n,i]=r,[a,s]=t.min,[o,A]=t.max;e[0]=ro(n,a,o)?n:n0&&d(O[0])}},p=0;p0;)h.push(A.pop());s.push(h)}}return s},PB=function(t){for(var e=t.nodes,n=e===void 0?[]:e,i=t.edges,a=i===void 0?[]:i,s=[],o={},A={},l={},c=[],u=0,h=function v(p){A[p.id]=u,l[p.id]=u,u+=1,s.push(p),o[p.id]=!0;for(var y=is(p.id,a,"target").filter(function(U){return n.map(function(R){return R.id}).indexOf(U)>-1}),x=function(R){var j=y[R];if(!A[j]&&A[j]!==0){var q=n.filter(function(et){return et.id===j});q.length>0&&v(q[0]),l[p.id]=Math.min(l[p.id],l[j])}else o[j]&&(l[p.id]=Math.min(l[p.id],A[j]))},F=0;F0;){var L=s.pop();if(o[L.id]=!1,O.push(L),L===p)break}O.length>0&&c.push(O)}},d=0,f=n;d0;)for(var v=d.pop(),p=v.id,y=is(p,t.edges),x=function(L){var U,R=y[L],j=t.nodes.find(function(mt){return mt.id===R});if(R===p)s.push((U={},U[R]=v,U));else if(!(R in g))f[R]=v,d.push(j),g[R]=new Set([v]);else if(!g[p].has(j)){for(var q=!0,et=[j,v],it=f[p];g[R].size&&!g[R].has(it)&&(et.push(it),it!==f[it.id]);)it=f[it.id];if(et.push(it),e&&n?(q=!1,et.findIndex(function(mt){return e.indexOf(mt.id)>-1})>-1&&(q=!0)):e&&!n&&et.findIndex(function(mt){return e.indexOf(mt.id)>-1})>-1&&(q=!1),q){for(var dt={},ft=1;ft0;){var ft=dt.pop();a.has(ft)&&(a.delete(ft),s[ft.id].forEach(function(mt){dt.push(mt)}),s[ft.id].clear())}},u=function et(it,dt,ft){var mt=!1;if(e&&n===!1&&e.indexOf(it.id)>-1)return mt;i.push(it),a.add(it);for(var Rt=ft[it.id],Qt=0;Qt-1});le-1)?o.push((dt={},dt[ne.id]=ne,dt)):Xt[ne.id].push(l[xe])}}return{component:Dt,adjList:Xt,minIdx:mt}},x=0;x=x}),O=PB({nodes:F,edges:t.edges}).filter(function(et){return et.length>1});if(O.length===0)break;var L=y(O),U=L.minIdx,R=L.adjList,j=L.component;if(j.length>1){j.forEach(function(et){s[et.id]=new Set});var q=A[U];if(e&&n&&e.indexOf(q.id)===-1)return o;u(q,q,R),x=U+1}else break}return o},GI=function(t,e,n,i){return i===void 0&&(i=!0),e?KB(t,n,i):zB(t,n,i)},VB=HI,zI={}.toString,KI=function(r,t){return zI.call(r)==="[object "+t+"]"},zf=KI,Jm=function(r){return zf(r,"Function")},qm=function(r){return Array.isArray?Array.isArray(r):zf(r,"Array")},VI=function(r){var t=typeof r;return r!==null&&t==="object"||t==="function"};function WI(r,t){if(r){var e;if(qm(r))for(var n=0,i=r.length;n-1;)ZI.call(r,a,1);return r},NG=null,XI=Array.prototype.splice,LG=function(t,e){if(!isArrayLike(t))return[];for(var n=t?e.length:0,i=n-1;n--;){var a=void 0,s=e[n];(n===i||s!==a)&&(a=s,XI.call(t,s,1))}return t},kG=null,QG=function(r,t,e){if(!isArray(r)&&!isPlainObject(r))return r;var n=e;return each(r,function(i,a){n=t(n,i,a)}),n},UG=null,RG=function(r,t){var e=[];if(!isArrayLike(r))return e;for(var n=-1,i=[],a=r.length;++na[o])return 1;if(i[o]0},u9=null,h9=function(r,t){if(isArray(r)){for(var e,n=-1/0,i=0;in&&(e=a,n=s)}return e}},d9=function(r,t){if(isArray(r)){for(var e,n=1/0,i=0;io&&c>o);)if(A.push(l),o-=c,s=s.substr(i),!s)return A.join("");for(;l=s.substr(0,1),c=measureTextWidth(l,e),!(c+a>o);)if(A.push(l),o-=c,s=s.substr(1),!s)return A.join("");return""+A.join("")+n},J9=function(){function r(){this.map={}}return r.prototype.has=function(t){return this.map[t]!==void 0},r.prototype.get=function(t,e){var n=this.map[t];return n===void 0?e:n},r.prototype.set=function(t,e){this.map[t]=e},r.prototype.clear=function(){this.map={}},r.prototype.delete=function(t){delete this.map[t]},r.prototype.size=function(){return Object.keys(this.map).length},r}(),q9=null,dN=function(t,e,n){for(var i=1/0,a,s=0;su[O.id]+it?(u[et]=u[O.id]+it,h[et]=[O.id]):u[et]===u[O.id]+it&&h[et].push(O.id)})},g=0;g0&&c.length>0;){var d=c[c.length-1];if(d.length){var f=d.shift();f&&(A.push(f),l[f]=!0,h=i?is(f,o,"target"):is(f,o),c.push(h.filter(function(p){return!l[p]})))}else{var g=A.pop();l[g]=!1,c.pop();continue}if(A[A.length-1]===n){var v=A.map(function(y){return y});u.push(v);var g=A.pop();l[g]=!1,c.pop()}}return u},vN=function(t,e){for(var n=Hf(t,e),i=[],a=n.length,s=0;si[s][A]+i[A][o]&&(i[s][o]=i[s][A]+i[A][o]);return i},iy=vN,pN=function(t,e,n,i){e===void 0&&(e=!1),n===void 0&&(n="weight"),i===void 0&&(i=1e3);var a=t.nodes,s=a===void 0?[]:a,o=t.edges,A=o===void 0?[]:o,l={},c={};s.forEach(function(F,O){var L=DB();F.clusterId=L,l[L]={id:L,nodes:[F]},c[F.id]={node:F,idx:O}});var u=Hf(t,e),h=[],d={};u.forEach(function(F,O){var L=0,U=s[O].id;d[U]={},F.forEach(function(R,j){if(R){L+=R;var q=s[j].id;d[U][q]=R}}),h.push(L)});for(var f=0,g=function(){var O=!1;if(s.forEach(function(L){var U={};Object.keys(d[L.id]).forEach(function(mt){var Rt=d[L.id][mt],Qt=c[mt].node,yt=Qt.clusterId;U[yt]||(U[yt]=0),U[yt]+=Rt});var R=-1/0,j=[];if(Object.keys(U).forEach(function(mt){R=0&&j.splice(q,1),j&&j.length){O=!0;var et=l[L.clusterId],it=et.nodes.indexOf(L);et.nodes.splice(it,1);var dt=Math.floor(Math.random()*j.length),ft=l[j[dt]];ft.nodes.push(L),L.clusterId=ft.id}}}),!O)return"break";f++};f0&&R>j&&R-jj&&(et=u.map(function(xt){return{node:xt,clusterId:xt.clusterId}}),it=yh(y),j=R),dt||q>100)break;q++,Object.keys(y).forEach(function(xt){var Dt=0;d.forEach(function(Xt){var ne=Xt.source,le=Xt.target,ge=x[ne].node.clusterId,xe=x[le].node.clusterId;(ge===xt&&xe!==xt||xe===xt&&ge!==xt)&&(Dt=Dt+(Xt[n]||1))}),y[xt].sumTot=Dt}),u.forEach(function(xt,Dt){var Xt=y[xt.clusterId],ne=0,le,ge=O[Dt]/(2*U),xe=0,Qe=Xt.nodes;Qe.forEach(function(Hn){var Bn=x[Hn.id].idx;xe+=F[Dt][Bn]||0});var Pe=xe-Xt.sumTot*ge,en=Qe.filter(function(Hn){return Hn.id!==xt.id}),mn=[];en.forEach(function(Hn,Bn){mn[Bn]=f[Hn.originIndex]});var an=sy(en,f)*l,er=L[xt.id];if(Object.keys(er).forEach(function(Hn){var Bn=x[Hn].node,Us=Bn.clusterId;if(Us!==xt.clusterId){var hi=y[Us],Vi=hi.nodes;if(!(!Vi||!Vi.length)){var cn=0;Vi.forEach(function(Tn){var En=x[Tn.id].idx;cn+=F[Dt][En]||0});var Fn=cn-hi.sumTot*ge,hn=Vi.concat([xt]),Sn=[];hn.forEach(function(Tn,En){Sn[En]=f[Tn.originIndex]});var Rn=sy(hn,f)*l,ke=Fn-Pe;a&&(ke=Fn+Rn-(Pe+an)),ke>ne&&(ne=ke,le=hi)}}}),ne>0){le.nodes.push(xt);var kn=xt.clusterId;xt.clusterId=le.id;var Cn=Xt.nodes.indexOf(xt);Xt.nodes.splice(Cn,1);var vr=0,wa=0;d.forEach(function(Hn){var Bn=Hn.source,Us=Hn.target,hi=x[Bn].node.clusterId,Vi=x[Us].node.clusterId;(hi===le.id&&Vi!==le.id||Vi===le.id&&hi!==le.id)&&(vr=vr+(Hn[n]||1)),(hi===kn&&Vi!==kn||Vi===kn&&hi!==kn)&&(wa=wa+(Hn[n]||1))}),le.sumTot=vr,Xt.sumTot=wa}})}var ft={},mt=0;Object.keys(it).forEach(function(xt){var Dt=it[xt];if(!Dt.nodes||!Dt.nodes.length){delete it[xt];return}var Xt=String(mt+1);Xt!==xt&&(Dt.id=Xt,Dt.nodes=Dt.nodes.map(function(ne){return{id:ne.id,clusterId:Xt}}),it[Xt]=Dt,ft[xt]=Xt,delete it[xt],mt++)}),et.forEach(function(xt){var Dt=xt.node,Xt=xt.clusterId;Dt&&(Dt.clusterId=Xt,Dt.clusterId&&ft[Dt.clusterId]&&(Dt.clusterId=ft[Dt.clusterId]))});var Rt=[],Qt={};d.forEach(function(xt){var Dt=xt.source,Xt=xt.target,ne=xt[n]||1,le=x[Dt].node.clusterId,ge=x[Xt].node.clusterId;if(!(!le||!ge)){var xe="".concat(le,"---").concat(ge);if(Qt[xe])Qt[xe].weight+=ne,Qt[xe].count++;else{var Qe={source:le,target:ge,weight:ne,count:1};Qt[xe]=Qe,Rt.push(Qe)}}});var yt=[];return Object.keys(it).forEach(function(xt){yt.push(it[xt])}),{clusters:yt,clusterEdges:Rt}},nb=xN,CN=function(t,e,n,i,a,s,o,A){return e===void 0&&(e=!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"]),A===void 0&&(A=1),nb(t,e,n,i,!0,a,s,o,A)},SN=CN,MN=function(t,e){var n;e===void 0&&(e=1);for(var i=yh(t),a=i.nodes,s=a===void 0?[]:a,o=i.edges,A=o===void 0?[]:o,l=function(){var h=Xm({nodes:s,edges:A}),d=Object.keys(h);d.sort(function(v,p){var y,x;return((y=h[v])===null||y===void 0?void 0:y.degree)-((x=h[p])===null||x===void 0?void 0:x.degree)});var f=d[0];if(!s.length||((n=h[f])===null||n===void 0?void 0:n.degree)>=e)return"break";var g=s.findIndex(function(v){return v.id===f});s.splice(g,1),A=A.filter(function(v){return!(v.source===f||v.target===f)})};;){var c=l();if(c==="break")break}return{nodes:s,edges:A}},FN=MN,rb=function(t,e,n){var i=[];switch(t){case Cs.EuclideanDistance:i=e[n];break;default:i=[];break}return i},TN=function(t,e,n,i,a,s){e===void 0&&(e=3),n===void 0&&(n=void 0),i===void 0&&(i=[]),a===void 0&&(a=["id"]),s===void 0&&(s=Cs.EuclideanDistance);var o=t.nodes,A=o===void 0?[]:o,l=t.edges,c=l===void 0?[]:l,u={clusters:[{id:"0",nodes:A}],clusterEdges:[]};if(s===Cs.EuclideanDistance&&!A.every(function(Xt){return Xt.hasOwnProperty(n)}))return u;var h=[],d=[];if(s===Cs.EuclideanDistance&&(h=jf(A,n),d=Zf(h,i,a)),!d.length)return u;for(var f=ty(d.map(function(Xt){return Xt.join("")})),g=Math.min(e,A.length,f.length),v=0;vO&&!p.find(function(en){return uN(en,rb(s,d,A[le].originIndex))})&&(O=Pe,L=le)}},R=0;R=0;ft--)x[Number(A[v].clusterId)][ft].id===A[v].id&&x[Number(A[v].clusterId)].splice(ft,1);A[v].clusterId=String(q),x[q].push(A[v])}}for(var mt=!1,v=0;v=1e3)break}var xt=[],Dt={};return c.forEach(function(Xt){var ne,le,ge=Xt.source,xe=Xt.target,Qe=(ne=A.find(function(an){return an.id===ge}))===null||ne===void 0?void 0:ne.clusterId,Pe=(le=A.find(function(an){return an.id===xe}))===null||le===void 0?void 0:le.clusterId,en="".concat(Qe,"---").concat(Pe);if(Dt[en])Dt[en].count++;else{var mn={source:Qe,target:Pe,count:1};Dt[en]=mn,xt.push(mn)}}),{clusters:x,clusterEdges:xt}},ON=TN,IN=function(t,e){var n=new as(e),i=n.norm2(),a=new as(t),s=a.norm2(),o=n.dot(a),A=i*s,l=A?o/A:0;return l},ib=IN,NN=function(t,e,n,i,a){t===void 0&&(t=[]),n===void 0&&(n=void 0),i===void 0&&(i=[]),a===void 0&&(a=[]);var s=yh(t.filter(function(h){return h.id!==e.id})),o=t.findIndex(function(h){return h.id===e.id}),A=jf(t,n),l=Zf(A,i,a),c=l[o],u=[];return s.forEach(function(h,d){if(h.id!==e.id){var f=l[d],g=ib(f,c);u.push(g),h.cosineSimilarity=g}}),s.sort(function(h,d){return d.cosineSimilarity-h.cosineSimilarity}),{allCosineSimilarity:u,similarNodes:s}},LN=NN,kN=function(){function r(t){this.count=t.length,this.parent={};for(var e=0,n=t;e0&&(this.list[0]=e,this.moveDown(0)),t},r.prototype.insert=function(t){if(t!==null){this.list.push(t);var e=this.list.length-1;return this.moveUp(e),!0}return!1},r.prototype.moveUp=function(t){for(var e=this.getParent(t);t&&t>0&&this.compareFn(this.list[e],this.list[t])>0;){var n=this.list[e];this.list[e]=this.list[t],this.list[t]=n,t=e,e=this.getParent(t)}},r.prototype.moveDown=function(t){var e,n=t,i=this.getLeft(t),a=this.getRight(t),s=this.list.length;i!==null&&i0?n=i:a!==null&&a0&&(n=a),t!==n&&(e=[this.list[n],this.list[t]],this.list[t]=e[0],this.list[n]=e[1],this.moveDown(n))},r}(),DN=RN,PN=function(t,e){var n=[],i=t.nodes,a=i===void 0?[]:i,s=t.edges,o=s===void 0?[]:s;if(a.length===0)return n;var A=a[0],l=new Set;l.add(A);var c=function(v,p){return e?v.weight-p.weight:0},u=new DN(c);for(Gf(A.id,o).forEach(function(g){u.insert(g)});!u.isEmpty();){var h=u.delMin(),d=h.source,f=h.target;l.has(d)&&l.has(f)||(n.push(h),l.has(d)||(l.add(d),Gf(d,o).forEach(function(g){u.insert(g)})),l.has(f)||(l.add(f),Gf(f,o).forEach(function(g){u.insert(g)})))}return n},ab=function(t,e){var n=[],i=t.nodes,a=i===void 0?[]:i,s=t.edges,o=s===void 0?[]:s;if(a.length===0)return n;var A=o.map(function(d){return d});e&&A.sort(function(d,f){return d.weight-f.weight});for(var l=new QN(a.map(function(d){return d.id}));A.length>0;){var c=A.shift(),u=c.source,h=c.target;l.connected(u,h)||(n.push(c),l.union(u,h))}return n},_N=function(t,e,n){var i={prim:PN,kruskal:ab};return n?i[n](t,e):ab(t,e)},HN=_N,GN=function(t,e,n){typeof e!="number"&&(e=1e-6),typeof n!="number"&&(n=.85);for(var i=1,a=0,s=1e3,o=t.nodes,A=o===void 0?[]:o,l=t.edges,c=l===void 0?[]:l,u=A.length,h,d={},f={},g=0;g0&&i>e;){a=0;for(var g=0;g0&&(h+=f[O]/L)}d[p]=n*h,a+=d[p]}}a=(1-a)/u,i=0;for(var g=0;g=0;n--){var i=this.dfsEdgeList[n],a=i.fromNode,s=i.toNode;ad||i.hasNode(s[h.to])||(e.labelx;O--){var L=F(O);if(L==="break")break}if(p){var U=t.findMinLabel(v);s.dfsEdgeList.push(new El(g,y,so,U.edgeLabel,so));var R=s.dfsEdgeList.length-1;return t.dfsCode.dfsEdgeList[R]!==s.dfsEdgeList[R]?!1:u(v[U.edgeLabel].projected)}var j={};p=!1;var q=0;h.forEach(function(Rt){var Qt=new Xf(Rt),yt=t.findForwardPureEdges(i,Qt.edges[d[0]],f,Qt);yt.length>0&&(p=!0,q=g,yt.forEach(function(xt){var Dt="".concat(xt.label,"-").concat(a[xt.to].label);j[Dt]||(j[Dt]={projected:[],edgeLabel:xt.label,nodeLabel2:a[xt.to].label}),j[Dt].projected.push({graphId:i.id,edge:xt,preNode:Rt})}))});for(var et=d.length,it=function(Qt){if(p)return"break";var yt=d[Qt];h.forEach(function(xt){var Dt=new Xf(xt),Xt=t.findForwardRmpathEdges(i,Dt.edges[yt],f,Dt);Xt.length>0&&(p=!0,q=s.dfsEdgeList[yt].fromNode,Xt.forEach(function(ne){var le="".concat(ne.label,"-").concat(a[ne.to].label);j[le]||(j[le]={projected:[],edgeLabel:ne.label,nodeLabel2:a[ne.to].label}),j[le].projected.push({graphId:i.id,edge:ne,preNode:xt})}))})},O=0;O=0;f--){var g=e.findBackwardEdge(u,d.edges[a[f]],d.edges[a[0]],d);if(g){var v="".concat(e.dfsCode.dfsEdgeList[a[f]].fromNode,"-").concat(g.label);l[v]||(l[v]={projected:[],toNodeId:e.dfsCode.dfsEdgeList[a[f]].fromNode,edgeLabel:g.label}),l[v].projected.push({graphId:c.graphId,edge:g,preNode:c})}}if(!(i>=e.maxNodeNum)){var p=e.findForwardPureEdges(u,d.edges[a[0]],o,d);p.forEach(function(x){var F="".concat(s,"-").concat(x.label,"-").concat(h[x.to].label);A[F]||(A[F]={projected:[],fromNodeId:s,edgeLabel:x.label,nodeLabel2:h[x.to].label}),A[F].projected.push({graphId:c.graphId,edge:x,preNode:c})});for(var y=function(F){var O=e.findForwardRmpathEdges(u,d.edges[a[F]],o,d);O.forEach(function(L){var U="".concat(e.dfsCode.dfsEdgeList[a[F]].fromNode,"-").concat(L.label,"-").concat(h[L.to].label);A[U]||(A[U]={projected:[],fromNodeId:e.dfsCode.dfsEdgeList[a[F]].fromNode,edgeLabel:L.label,nodeLabel2:h[L.to].label}),A[U].projected.push({graphId:c.graphId,edge:L,preNode:c})})},f=0;fx){var F=x;x=y,y=F}var O=p.label,L="".concat(l,"-").concat(y,"-").concat(O,"-").concat(x),U="".concat(y,"-").concat(O,"-").concat(x);if(!s[U]){var R=s[U]||0;R++,s[U]=R}A[L]={graphId:l,nodeLabel1:y,edgeLabel:O,nodeLabel2:x}})})}),Object.keys(a).forEach(function(l){var c=a[l];if(!(c2*e)););if(v<2*e&&(o["".concat(c,"-").concat(g)]={start:c,end:g,distance:a[c][g]},u++,A++,A>=n))return o;if(h++,h>2*e)break}if(uh&&(A=h);var d=n[u.id].inDegree;l>d&&(l=d);var f=n[u.id].outDegree;c>f&&(c=f)}),t[e]={degree:A,inDegree:l,outDegree:c}),{minPatternNodeLabelDegree:A,minPatternNodeLabelInDegree:l,minPatternNodeLabelOutDegree:c}},$N=function(t,e,n,i,a,s,o){var A;if(n===void 0&&(n=!1),s===void 0&&(s="cluster"),o===void 0&&(o="cluster"),!(!t||!t.nodes)){var l=t.nodes.length;if(l){var c=iy(t,n),u=iy(e,n),h=pb(t.nodes,c,n),d=pb(e.nodes,u,n),f=gb(t.nodes,s),g=f.nodeMap,v=f.nodeLabelMap,p=gb(e.nodes,s),y=p.nodeMap,x=p.nodeLabelMap;vb(t.edges,o,g);var F=vb(e.edges,o,y).edgeLabelMap,O=[];u==null||u.forEach(function(cn){O=O.concat(cn)}),a||(a=Math.max.apply(Math,(0,D.ev)((0,D.ev)([],O,!1),[2],!1))),i||(i=a);var L=db(t,c,s,i),U=db(e,u,s,i),R=Math.min(100,l*(l-1)/2),j=XN(i,l,R,L,c),q=Jf(j,L,t),et=10,it=1,dt=1,ft=4,mt={graphs:q,nodeLabelProp:s,edgeLabelProp:o,minSupport:it,minNodeNum:dt,maxNodeNum:ft,directed:n},Rt=YN(mt).slice(0,et),Qt=Rt.length,yt=[];Rt.forEach(function(cn,Fn){yt[Fn]={},Object.keys(q).forEach(function(hn){var Sn=q[hn],Rn=qf(Sn,cn,s,o);yt[Fn][hn]=Rn})});var xt=JN(yt,Qt,Rt),Dt=xt.structure,Xt=xt.structureCountMap,ne=e.nodes[0],le=[],ge=(A=e.nodes[0])===null||A===void 0?void 0:A[s],xe=-1/0;e.nodes.forEach(function(cn){var Fn=cn[s],hn=v[Fn];(hn==null?void 0:hn.length)>xe&&(xe=hn.length,le=hn,ge=Fn,ne=cn)});var Qe={},Pe={},en={},mn={},an={},er={};Object.keys(x).forEach(function(cn,Fn){an[cn]=[],n&&(er[cn]=[]);var hn=-1/0,Sn=x[cn],Rn={};Sn.forEach(function(qe){var Je=d["".concat(ne.id,"-").concat(qe.id)];if(Je&&an[cn].push(Je),hnan[cn][Bi]){Ko=!0;break}if(Ko)return le.splice(Je,1),"continue";var Ea={};Wi.neighbors.forEach(function(Ni){var Ka=h["".concat(mr.id,"-").concat(Ni.id)];Ea["".concat(mr.id,"-").concat(Ni.id)]={start:g[mr.id].idx,end:g[Ni.id].idx,distance:Ka}}),q=Jf(Ea,L,t,q);var Ga=[];Object.keys(Ea).forEach(function(Ni){if(Xt[Ni]){Ga.push(Xt[Ni]);return}var Ka=q[Ni];Xt[Ni]=qf(Ka,Dt,s,o),Ga.push(Xt[Ni])}),Ga=Ga.sort(function(Ni,Ka){return Ka-Ni});for(var za=!1,Bi=0;Bi=0;ur--)En(ur)});var kn=[];le==null||le.forEach(function(cn){for(var Fn=g[cn.id].idx,hn=fb(t.nodes,c[Fn],Fn,s,a),Sn=hn.neighbors,Rn=Sn.length,ke=!1,Tn=Rn-1;Tn>=0;Tn--){if(Sn.length+1Wi){Sn.splice(Tn,1);continue}if(n){var yr="".concat(En.id,"-").concat(cn.id),zo=h[yr];mr=er[ur].length-1;var Ko=er[ur][mr];if(zo>Ko){Sn.splice(Tn,1);continue}}var Bi=Xt[qe]?Xt[qe]:qN(t,cn,En,g,Je,L,Dt,s,o,Xt,q),Ea="".concat(ne.id,"-").concat(ur),Ga=mn[Ea][mn[Ea].length-1];if(Bi=0;Je--){var Ko=zo(Je);if(Ko==="break")break}if(yr)return kn.splice(Fn,1),"continue";hn.edges=Tn;var Bi=Wf(hn,hn.nodes[0].id,!1).length;if(Object.keys(Bi).reverse().forEach(function(hr){if(!(hr===hn.nodes[0].id||yr)){if(Bi[hr]===1/0){var Va=ke[hr].node[s];if(Rn[Va]--,Rn[Va]vr[uo][vr[uo].length-1]){var Va=ke[hr].node[s];if(Rn[Va]--,Rn[Va]=0;Ka--){var Vo=hn.nodes[Ka],OM=ke[Vo.id].degree,N8=ke[Vo.id].inDegree,L8=ke[Vo.id].outDegree,k8=Vo[s],cw=mb(Qe,k8,y,x),IM=cw.minPatternNodeLabelDegree,Q8=cw.minPatternNodeLabelInDegree,U8=cw.minPatternNodeLabelOutDegree,R8=n?OM=0;ov--){var Wo=Tn[ov];if(!ke[Wo.source]||!ke[Wo.target]){Tn.splice(ov,1);var Av=Wo[o];if(En[Av]--,ke[Wo.source]&&(ke[Wo.source].degree--,ke[Wo.source].outDegree--),ke[Wo.target]&&(ke[Wo.target].degree--,ke[Wo.target].inDegree--),F[Av]&&En[Av]=0;Bn--){var Us=Hn(Bn);if(Us==="break")break}for(var hi=kn.length,Vi=function(Fn){var hn=kn[Fn],Sn={};hn.edges.forEach(function(Tn){var En="".concat(Tn.source,"-").concat(Tn.target,"-").concat(Tn.label);Sn[En]?Sn[En]++:Sn[En]=1});for(var Rn=function(En){var ur=kn[En],qe={};ur.edges.forEach(function(mr){var Wi="".concat(mr.source,"-").concat(mr.target,"-").concat(mr.label);qe[Wi]?qe[Wi]++:qe[Wi]=1});var Je=!0;Object.keys(qe).length!==Object.keys(Sn).length?Je=!1:Object.keys(Sn).forEach(function(mr){qe[mr]!==Sn[mr]&&(Je=!1)}),Je&&kn.splice(En,1)},ke=hi-1;ke>Fn;ke--)Rn(ke);hi=kn.length},Bn=0;Bn<=hi-1;Bn++)Vi(Bn);return kn}}},tL=$N,eL=function(){function r(t){t===void 0&&(t=10),this.linkedList=new RB,this.maxStep=t}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(t){this.linkedList.prepend(t),this.length>this.maxStep&&this.linkedList.deleteTail()},r.prototype.pop=function(){var t=this.linkedList.deleteHead();return t?t.value:null},r.prototype.toArray=function(){return this.linkedList.toArray().map(function(t){return t.value})},r.prototype.clear=function(){for(;!this.isEmpty();)this.pop()},r}(),nL=eL,rL=VB,nz={getAdjMatrix:Hf,breadthFirstSearch:UI,connectedComponent:_B,getDegree:Xm,getInDegree:DI,getOutDegree:PI,detectCycle:VB,detectDirectedCycle:rL,detectAllCycles:GI,detectAllDirectedCycle:KB,detectAllUndirectedCycle:zB,depthFirstSearch:GB,dijkstra:Wf,findAllPath:gN,findShortestPath:ry,floydWarshall:iy,labelPropagation:mN,louvain:nb,iLouvain:SN,kCore:FN,kMeans:ON,cosineSimilarity:ib,nodesCosineSimilarity:LN,minimumSpanningTree:HN,pageRank:sb,getNeighbors:is,Stack:nL,GADDI:tL};function Nt(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(ko("The datum does not have available id."))}function $f(r){return r.combo}function yb(r,t){const e={nodes:(r.nodes||[]).map(Nt),edges:(r.edges||[]).map(Nt),combos:(r.combos||[]).map(Nt)};return t?Object.values(e).flat():e}const wb=(r,t,e)=>{var n;switch(e.type){case"degree":{const i=new Map;return(n=r.nodes)===null||n===void 0||n.forEach(a=>{const s=t(Nt(a),e.direction).length;i.set(Nt(a),s)}),i}case"betweenness":return iL(r,e.directed,e.weightPropertyName);case"closeness":return aL(r,e.directed,e.weightPropertyName);case"eigenvector":return oL(r,e.directed);case"pagerank":return sL(r,e.epsilon,e.linkProb);default:return Eb(r)}},Eb=r=>{var t;const e=new Map;return(t=r.nodes)===null||t===void 0||t.forEach(n=>{e.set(Nt(n),0)}),e},iL=(r,t,e)=>{const n=Eb(r),{nodes:i=[]}=r;return i.forEach(a=>{i.forEach(s=>{if(a!==s){const{allPath:o}=ry(r,Nt(a),Nt(s),t,e),A=o.length;o.flat().forEach(l=>{l!==Nt(a)&&l!==Nt(s)&&n.set(l,n.get(l)+1/A)})}})}),n},aL=(r,t,e)=>{const n=new Map,{nodes:i=[]}=r;return i.forEach(a=>{const s=i.reduce((o,A)=>{if(a!==A){const{length:l}=ry(r,Nt(a),Nt(A),t,e);o+=l}return o},0);n.set(Nt(a),1/s)}),n},sL=(r,t,e)=>{var n;const i=new Map,a=sb(r,t,e);return(n=r.nodes)===null||n===void 0||n.forEach(s=>{i.set(Nt(s),a[Nt(s)])}),i},oL=(r,t)=>{const{nodes:e=[]}=r,n=AL(r,t),i=lL(n,e.length),a=new Map;return e.forEach((s,o)=>{a.set(Nt(s),i[o])}),a},AL=(r,t)=>{const{nodes:e=[],edges:n=[]}=r,i=Array(e.length).fill(null).map(()=>Array(e.length).fill(0));return n.forEach(({source:a,target:s})=>{const o=e.findIndex(l=>Nt(l)===a),A=e.findIndex(l=>Nt(l)===s);t?i[o][A]=1:(i[o][A]=1,i[A][o]=1)}),i},lL=(r,t,e=100,n=1e-6)=>{let i=Array(t).fill(1),a=1/0;for(let s=0;sn;s++){const o=Array(t).fill(0);for(let l=0;ll+c*c,0));for(let l=0;ll+(c-i[u])*c,0)),i=o}return i};function BA(r,t,e,n=Pr){const i=new Map(r.map(h=>[e(h),h])),a=new Map(t.map(h=>[e(h),h])),s=new Set(i.keys()),o=new Set(a.keys()),A=[],l=[],c=[],u=[];return o.forEach(h=>{s.has(h)?n(i.get(h),a.get(h))?u.push(a.get(h)):l.push(a.get(h)):A.push(a.get(h))}),s.forEach(h=>{o.has(h)||c.push(i.get(h))}),{enter:A,exit:c,keep:u,update:l}}function Bl(r,t,e){const n=i=>{e&&!e(i)||(i.style.visibility=t)};r.forEach(i=>{n(i)})}function cL(r,t,e){const n={},i=a=>(a in n||(n[a]=0),`${t}-${a}-${n[a]++}`);return e.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 oy{constructor(t){this.extensions=[],this.extensionMap={},this.context=t}setExtensions(t){const e=cL(this.context.graph,this.category,t),{enter:n,update:i,exit:a,keep:s}=BA(this.extensions,e,o=>o.key);this.createExtensions(n),this.updateExtensions([...i,...s]),this.destroyExtensions(a),this.extensions=e}createExtension(t){const{category:e}=this,{key:n,type:i}=t,a=Lo(e,i);if(!a)return va.warn(`The extension ${i} of ${e} is not registered.`);const s=new a(this.context,t);s.initialized=!0,this.extensionMap[n]=s}createExtensions(t){t.forEach(e=>this.createExtension(e))}updateExtension(t){const{key:e}=t,n=this.extensionMap[e];n&&n.update(t)}updateExtensions(t){t.forEach(e=>this.updateExtension(e))}destroyExtension(t){const e=this.extensionMap[t];e&&(e.initialized&&!e.destroyed&&e.destroy(),delete this.extensionMap[t])}destroyExtensions(t){t.forEach(({key:e})=>this.destroyExtension(e))}destroy(){this.destroyExtensions(this.extensions),this.context={},this.extensions=[],this.extensionMap={}}}class Ay{constructor(t,e){this.events=[],this.initialized=!1,this.destroyed=!1,this.context=t,this.options=e}update(t){this.options=Object.assign(this.options,t)}destroy(){this.context={},this.options={},this.destroyed=!0}}class Ra extends Ay{}class tg extends Ra{constructor(t,e){super(t,Object.assign({},tg.defaultOptions,e)),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(EA(o,this.options.padding))):a.hide.push(s)}),a},this.hideLabelIfExceedViewport=(n,i)=>{const{exit:a}=BA(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(l=>(this.nodeCentralities.has(l.id)||(this.nodeCentralities=wb(s,o,i)),{node:l,centrality:this.nodeCentralities.get(l.id)})).sort((l,c)=>c.centrality-l.centrality).map(l=>l.node)},this.sortLabelElementsInView=n=>{const{sort:i,sortNode:a,sortCombo:s,sortEdge:o}=this.options,{model:A}=this.context;if(Vt(i))return n.sort((g,v)=>i(A.getElementDataById(g.id),A.getElementDataById(v.id)));const{node:l=[],edge:c=[],combo:u=[]}=Pf(n,g=>g.type),h=Vt(s)?u.sort((g,v)=>s(...A.getComboData([g.id,v.id]))):u,d=Vt(a)?l.sort((g,v)=>a(...A.getNodeData([g.id,v.id]))):this.sortNodesByCentrality(l,a),f=Vt(o)?c.sort((g,v)=>o(...A.getEdgeData([g.id,v.id]))):c;return[...h,...d,...f]},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:A}=this.detectLabelCollision(s);for(let l=o.length-1;l>=0;l--)this.showLabel(o[l]);A.forEach(this.hideLabel)},this.hiddenElements=new Map,this.hideLabel=n=>{const i=n.getShape("label");i&&Bl(i,"hidden"),this.hiddenElements.set(n.id,n)},this.showLabel=n=>{const i=n.getShape("label");i&&Bl(i,"visible"),n.toFront(),this.hiddenElements.delete(n.id)},this.onTransform=kB(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(t){this.unbindEvents(),super.update(t),this.bindEvents(),this.onToggleVisibility({})}getLabelElements(){const{elementMap:t}=this.context.element,e=[];for(const n in t){const i=t[n];i.isVisible()&&i.getShape("label")&&e.push(i)}return e}getLabelElementsInView(){const t=this.context.viewport;return this.getLabelElements().filter(e=>t.isInViewport(e.getShape("key").getRenderBounds()))}bindEvents(){const{graph:t}=this.context;t.on(Ae.BEFORE_RENDER,this.onBeforeRender),t.on(Ae.AFTER_RENDER,this.onAfterRender),t.on(Ae.AFTER_DRAW,this.toggle),t.on(Ae.AFTER_LAYOUT,this.toggle),t.on(Ae.AFTER_TRANSFORM,this.onTransform)}unbindEvents(){const{graph:t}=this.context;t.off(Ae.BEFORE_RENDER,this.onBeforeRender),t.off(Ae.AFTER_RENDER,this.onAfterRender),t.off(Ae.AFTER_DRAW,this.toggle),t.off(Ae.AFTER_LAYOUT,this.toggle),t.off(Ae.AFTER_TRANSFORM,this.onTransform)}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return Vt(e)?e(t):!!e}destroy(){this.unbindEvents(),super.destroy()}}tg.defaultOptions={enable:!0,throttle:100,padding:0,sortNode:{type:"degree"}};var uL=function(r){if(!zm(r)||!Md(r,"Object"))return!1;if(Object.getPrototypeOf(r)===null)return!0;for(var t=r;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(r)===t},_c=uL,hL=5;function dL(r,t){if(Object.hasOwn)return Object.hasOwn(r,t);if(r==null)throw new TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(r),t)}function Bb(r,t,e,n){e=e||0,n=n||hL;for(var i in t)if(dL(t,i)){var a=t[i];a!==null&&_c(a)?(_c(r[i])||(r[i]={}),ee+t[n])}function tr(r,t){return r.map((e,n)=>e-t[n])}function Ss(r,t){return typeof t=="number"?r.map(e=>e*t):r.map((e,n)=>e*t[n])}function Ms(r,t){return typeof t=="number"?r.map(e=>e/t):r.map((e,n)=>e/t[n])}function gL(r,t){return r.reduce((e,n,i)=>e+n*t[i],0)}function vL(r,t){const e=wh(r),n=wh(t);return[e[1]*n[2]-e[2]*n[1],e[2]*n[0]-e[0]*n[2],e[0]*n[1]-e[1]*n[0]]}function bA(r,t){return r.map(e=>e*t)}function cr(r,t){return Math.sqrt(r.reduce((e,n,i)=>e+Math.pow(n-t[i]||0,2),0))}function eg(r,t){return r.reduce((e,n,i)=>e+Math.abs(n-t[i]),0)}function Qo(r){const t=r.reduce((e,n)=>e+Math.pow(n,2),0);return r.map(e=>e/Math.sqrt(t))}function ly(r,t,e=!1){const n=r[0]*t[1]-r[1]*t[0];let i=Math.acos(Ss(r,t).reduce((a,s)=>a+s,0)/(cr(r,bb)*cr(t,bb)));return e&&n<0&&(i=2*Math.PI-i),i}function rz(r,t){return r.every((e,n)=>e===t[n])}function ng(r,t=!0){return t?[-r[1],r[0]]:[r[1],-r[0]]}function cy(r,t){return r.map(e=>e%t)}function bl(r){return[r[0],r[1]]}function wh(r){return EI(r)?[r[0],r[1],0]:r}function xb(r){const[t,e]=r;return!t&&!e?0:Math.atan2(e,t)}function Cb(r,t){const[e,n]=r;if(t%360===0)return[e,n];const i=t*Math.PI/180,a=Math.cos(i),s=Math.sin(i);return[e*a-n*s,e*s+n*a]}function Sb(r,t){const[e,n]=r,[i,a]=t,s=tr(e,n),o=tr(i,a);return vL(s,o).every(A=>A===0)}function uy(r,t,e=!1){if(Sb(r,t))return;const[n,i]=r,[a,s]=t,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])),A=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(!(!e&&(!ro(o,0,1)||!ro(A,0,1))))return[n[0]+o*(i[0]-n[0]),n[1]+o*(i[1]-n[1])]}function Mb(r){if(Array.isArray(r))return ro(r[0],0,1)&&ro(r[1],0,1)?r:[.5,.5];const t=r.split("-"),e=t.includes("left")?0:t.includes("right")?1:.5,n=t.includes("top")?0:t.includes("bottom")?1:.5;return[e,n]}function li(r){const{x:t=0,y:e=0,z:n=0}=r.style||{};return[+t,+e,+n]}function pL(r){const{x:t,y:e,z:n}=r.style||{};return t!==void 0||e!==void 0||n!==void 0}function Fb(r,t){const[e,n]=t,{min:i,max:a}=r;return[i[0]+e*(a[0]-i[0]),i[1]+n*(a[1]-i[1])]}function Uo(r,t="center"){const e=Mb(t);return Fb(r,e)}function iz(r,t){const e=parseAnchor(t);return Fb(r,e)}const az=r=>{const[t,e]=r;return{left:Math.min(t[0],e[0]),right:Math.max(t[0],e[0]),top:Math.min(t[1],e[1]),bottom:Math.max(t[1],e[1])}};function Mi(r){var t;return[r.x,r.y,(t=r.z)!==null&&t!==void 0?t:0]}function Fs(r){var t;return{x:r[0],y:r[1],z:(t=r[2])!==null&&t!==void 0?t:0}}function sz(r){return r.sort((t,e)=>t[0]-e[0]||t[1]-e[1])}function oz(r){const t=new Set;return r.filter(e=>{const n=e.join(",");return t.has(n)?!1:(t.add(n),!0)})}function Eh(r,t=0){return r.map(e=>parseFloat(e.toFixed(t)))}function xA(r,t,e,n=!1){if(Pr(r,t))return r;const i=n?tr(r,t):tr(t,r),a=Qo(i),s=[a[0]*e,a[1]*e];return $e(bl(r),s)}function Tb(r,t){return r[1]===t[1]}function mL(r,t){return r[0]===t[0]}function yL(r,t){return Tb(r,t)||mL(r,t)}function Ob(r,t,e){return Sb([r,t],[t,e])}function Ib(r,t){return[2*t[0]-r[0],2*t[1]-r[1]]}function Nb(r,t,e,n=!0,i=!1){for(let a=0;aa!=d>a&&i<(h-c)*(a-u)/(d-u)+c&&(s=!s)}return s}function EL(r,t,e=!1){const n=Uo(t,"center"),i=[Uo(t,"left-top"),Uo(t,"right-top"),Uo(t,"right-bottom"),Uo(t,"left-bottom")];return Nb(r,n,i,!1,e).point}function rg(r,t,e=!1){const n=t.center,i=e?Ib(r,n):r,a=tr(i,t.center),s=Math.atan2(a[1],a[0]);if(isNaN(s))return n;const o=io(t)/2,A=ao(t)/2,l=n[0]+o*Math.cos(s),c=n[1]+A*Math.sin(s);return[l,c]}function BL(r,t){let e=1/0,n=[r[0],t[0]];return r.forEach(i=>{t.forEach(a=>{const s=cr(i,a);s{const a=xL(r,i);a1?c=1:c<0&&(c=0);const u=e+c*A,h=n+c*l;return[u,h]}function CL(r){const t=r.reduce((e,n)=>$e(e,n),[0,0]);return Ms(t,r.length)}function hy(r,t=!0){const e=CL(r);return r.sort(([n,i],[a,s])=>{const o=Math.atan2(i-e[1],n-e[0]),A=Math.atan2(s-e[1],a-e[0]);return t?A-o:o-A})}function kb(r,t){return[r,[r[0],t[1]],t,[t[0],r[1]]]}class _r{constructor(t,e,n){if(this.phase=e,this.pointerByTouch=[],this.initialDistance=null,this.emitter=t,_r.instance)return _r.callbacks[this.phase].push(n),_r.instance;this.onPointerDown=this.onPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.bindEvents(),_r.instance=this,_r.callbacks[this.phase].push(n)}bindEvents(){const{emitter:t}=this;t.on(Yt.POINTER_DOWN,this.onPointerDown),t.on(Yt.POINTER_MOVE,this.onPointerMove),t.on(Yt.POINTER_UP,this.onPointerUp)}updatePointerPosition(t,e,n){const i=this.pointerByTouch.findIndex(a=>a.pointerId===t);i>=0&&(this.pointerByTouch[i]={x:e,y:n,pointerId:t})}onPointerDown(t){const{x:e,y:n}=t.client||{};if(!(e===void 0||n===void 0)&&(this.pointerByTouch.push({x:e,y:n,pointerId:t.pointerId}),t.pointerType==="touch"&&this.pointerByTouch.length===2)){_r.isPinching=!0;const i=this.pointerByTouch[0].x-this.pointerByTouch[1].x,a=this.pointerByTouch[0].y-this.pointerByTouch[1].y;this.initialDistance=Math.sqrt(i*i+a*a),_r.callbacks.pinchstart.forEach(s=>s(t,{scale:0}))}}onPointerMove(t){if(this.pointerByTouch.length!==2||this.initialDistance===null)return;const{x:e,y:n}=t.client||{};if(e===void 0||n===void 0)return;this.updatePointerPosition(t.pointerId,e,n);const i=this.pointerByTouch[0].x-this.pointerByTouch[1].x,a=this.pointerByTouch[0].y-this.pointerByTouch[1].y,o=Math.sqrt(i*i+a*a)/this.initialDistance;_r.callbacks.pinchmove.forEach(A=>A(t,{scale:(o-1)*5}))}onPointerUp(t){var e;_r.callbacks.pinchend.forEach(n=>n(t,{scale:0})),_r.isPinching=!1,this.initialDistance=null,this.pointerByTouch=[],(e=_r.instance)===null||e===void 0||e.tryDestroy()}destroy(){this.emitter.off(Yt.POINTER_DOWN,this.onPointerDown),this.emitter.off(Yt.POINTER_MOVE,this.onPointerMove),this.emitter.off(Yt.POINTER_UP,this.onPointerUp),_r.instance=null}off(t,e){const n=_r.callbacks[t].indexOf(e);n>-1&&_r.callbacks[t].splice(n,1),this.tryDestroy()}tryDestroy(){Object.values(_r.callbacks).every(t=>t.length===0)&&this.destroy()}}_r.isPinching=!1,_r.instance=null,_r.callbacks={pinchstart:[],pinchmove:[],pinchend:[]};const Qb=r=>r.map(t=>gn(t)?t.toLocaleLowerCase():t);class CA{constructor(t){this.map=new Map,this.boundHandlePinch=()=>{},this.recordKey=new Set,this.onKeyDown=e=>{e!=null&&e.key&&(this.recordKey.add(e.key),this.trigger(e))},this.onKeyUp=e=>{e!=null&&e.key&&this.recordKey.delete(e.key)},this.onWheel=e=>{this.triggerExtendKey(Yt.WHEEL,e)},this.onDrag=e=>{this.triggerExtendKey(Yt.DRAG,e)},this.handlePinch=(e,n)=>{this.triggerExtendKey(Yt.PINCH,Object.assign(Object.assign({},e),n))},this.onFocus=()=>{this.recordKey.clear()},this.emitter=t,this.bindEvents()}bind(t,e){t.length!==0&&(t.includes(Yt.PINCH)&&!this.pinchHandler&&(this.boundHandlePinch=this.handlePinch.bind(this),this.pinchHandler=new _r(this.emitter,"pinchmove",this.boundHandlePinch)),this.map.set(t,e))}unbind(t,e){this.map.forEach((n,i)=>{Pr(i,t)&&(!e||e===n)&&this.map.delete(i)})}unbindAll(){this.map.clear()}match(t){const e=Qb(Array.from(this.recordKey)).sort(),n=Qb(t).sort();return Pr(e,n)}bindEvents(){var t;const{emitter:e}=this;e.on(Yt.KEY_DOWN,this.onKeyDown),e.on(Yt.KEY_UP,this.onKeyUp),e.on(Yt.WHEEL,this.onWheel),e.on(Yt.DRAG,this.onDrag),(t=globalThis.addEventListener)===null||t===void 0||t.call(globalThis,"focus",this.onFocus)}trigger(t){this.map.forEach((e,n)=>{this.match(n)&&e(t)})}triggerExtendKey(t,e){this.map.forEach((n,i)=>{i.includes(t)&&Pr(Array.from(this.recordKey),i.filter(a=>a!==t))&&n(e)})}destroy(){var t,e;this.unbindAll(),this.emitter.off(Yt.KEY_DOWN,this.onKeyDown),this.emitter.off(Yt.KEY_UP,this.onKeyUp),this.emitter.off(Yt.WHEEL,this.onWheel),this.emitter.off(Yt.DRAG,this.onDrag),(t=this.pinchHandler)===null||t===void 0||t.off("pinchmove",this.boundHandlePinch),(e=globalThis.removeEventListener)===null||e===void 0||e.call(globalThis,"focus",this.onFocus)}}class Bh extends Ra{constructor(t,e){super(t,Si({},Bh.defaultOptions,e)),this.shortcut=new CA(t.graph),this.onPointerDown=this.onPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.clearStates=this.clearStates.bind(this),this.bindEvents()}onPointerDown(t){if(!this.validate(t)||!this.isKeydown()||this.startPoint)return;const{canvas:e,graph:n}=this.context,i=Object.assign({},this.options.style);this.options.style.lineWidth&&(i.lineWidth=+this.options.style.lineWidth/n.getZoom()),this.rectShape=new Ci({id:"g6-brush-select",style:i}),e.appendChild(this.rectShape),this.startPoint=[t.canvas.x,t.canvas.y]}onPointerMove(t){var e;if(!this.startPoint)return;const{immediately:n,mode:i}=this.options;this.endPoint=ig(t,this.context.graph),(e=this.rectShape)===null||e===void 0||e.attr({x:Math.min(this.endPoint[0],this.startPoint[0]),y:Math.min(this.endPoint[1],this.startPoint[1]),width:Math.abs(this.endPoint[0]-this.startPoint[0]),height:Math.abs(this.endPoint[1]-this.startPoint[1])}),n&&i==="default"&&this.updateElementsStates(kb(this.startPoint,this.endPoint))}onPointerUp(t){if(this.startPoint){if(!this.endPoint){this.clearBrush();return}this.endPoint=ig(t,this.context.graph),this.updateElementsStates(kb(this.startPoint,this.endPoint)),this.clearBrush()}}clearStates(){this.endPoint||this.clearElementsStates()}clearElementsStates(){const{graph:t}=this.context,e=Object.values(t.getData()).reduce((n,i)=>Object.assign({},n,i.reduce((a,s)=>{var o;const A=(o=s.states||[])===null||o===void 0?void 0:o.filter(l=>l!==this.options.state);return a[Nt(s)]=A,a},{})),{});t.setElementState(e,this.options.animation)}updateElementsStates(t){const{graph:e}=this.context,{enableElements:n,state:i,mode:a,onSelect:s}=this.options,o=this.selector(e,t,n),A={};switch(a){case"union":o.forEach(l=>{A[l]=[...e.getElementState(l),i]});break;case"diff":o.forEach(l=>{const c=e.getElementState(l);A[l]=c.includes(i)?c.filter(u=>u!==i):[...c,i]});break;case"intersect":o.forEach(l=>{const c=e.getElementState(l);A[l]=c.includes(i)?[i]:[]});break;case"default":default:o.forEach(l=>{A[l]=[i]});break}Vt(s)&&s(A),e.setElementState(A,this.options.animation)}selector(t,e,n){if(!n||n.length===0)return[];const i=[],a=t.getData();if(n.forEach(s=>{a[`${s}s`].forEach(o=>{const A=Nt(o);t.getElementVisibility(A)!=="hidden"&&wL(t.getElementPosition(A),e)&&i.push(A)})}),n.includes("edge")){const s=a.edges;s==null||s.forEach(o=>{const{source:A,target:l}=o;i.includes(A)&&i.includes(l)&&i.push(Nt(o))})}return i}clearBrush(){var t;(t=this.rectShape)===null||t===void 0||t.remove(),this.rectShape=void 0,this.startPoint=void 0,this.endPoint=void 0}isKeydown(){const{trigger:t}=this.options,e=Array.isArray(t)?t:[t];return this.shortcut.match(e.filter(n=>n!=="drag"))}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return Vt(e)?e(t):!!e}bindEvents(){const{graph:t}=this.context;t.on(Yt.POINTER_DOWN,this.onPointerDown),t.on(Yt.POINTER_MOVE,this.onPointerMove),t.on(Yt.POINTER_UP,this.onPointerUp),t.on(No.CLICK,this.clearStates)}unbindEvents(){const{graph:t}=this.context;t.off(Yt.POINTER_DOWN,this.onPointerDown),t.off(Yt.POINTER_MOVE,this.onPointerMove),t.off(Yt.POINTER_UP,this.onPointerUp),t.off(No.CLICK,this.clearStates)}update(t){this.unbindEvents(),this.options=Si(this.options,t),this.bindEvents()}destroy(){this.unbindEvents(),super.destroy()}}Bh.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 ig=(r,t)=>{if((r.targetType==="node"||r.targetType==="combo")&&!(r.nativeEvent.target instanceof HTMLCanvasElement)){const[e,n]=t.getCanvasByClient([r.client.x,r.client.y]);return[e,n]}return[r.canvas.x,r.canvas.y]},Ro=.8,xl=["node","edge","combo"];function Cl(r,t,e,n,i=0){n==="TB"&&t(r,i);const a=e(r);if(a)for(const s of a)Cl(s,t,e,n,i+1);n==="BT"&&t(r,i)}function SL(r,t,e){const n=[[r,0]];for(;n.length;){const[i,a]=n.shift();t(i,a);const s=e(i);if(s)for(const o of s)n.push([o,a+1])}}function Ub(r,t,e,n,i="both"){if(t==="combo"||t==="node")return dy(r,e,n,i);const a=r.getEdgeData(e);if(!a)return[];const s=dy(r,a.source,n-1,i),o=dy(r,a.target,n-1,i);return Array.from(new Set([...s,...o,e]))}function dy(r,t,e,n="both"){const i=new Set,a=new Set,s=new Set;return SL(t,(o,A)=>{A>e||(s.add(o),r.getRelatedEdgesData(o,n).forEach(l=>{const c=Nt(l);!a.has(c)&&Ar.getRelatedEdgesData(o,n).map(A=>A.source===o?A.target:A.source).filter(A=>i.has(A)?!1:(i.add(A),!0))),Array.from(s)}function fy(r){return r.states||[]}var ag=function(r,t,e,n){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(c){try{l(n.next(c))}catch(u){s(u)}}function A(c){try{l(n.throw(c))}catch(u){s(u)}}function l(c){c.done?a(c.value):i(c.value).then(o,A)}l((n=n.apply(r,t||[])).next())})};class sg extends Ra{constructor(t,e){super(t,Object.assign({},sg.defaultOptions,e)),this.onClickSelect=n=>ag(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=>ag(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 CA(t.graph),this.bindEvents()}bindEvents(){const{graph:t}=this.context;this.unbindEvents(),xl.forEach(e=>{t.on(`${e}:${Yt.CLICK}`,this.onClickSelect)}),t.on(No.CLICK,this.onClickCanvas)}get isMultipleSelect(){const{multiple:t,trigger:e}=this.options;return t&&this.shortcut.match(e)}getNeighborIds(t){const{target:e,targetType:n}=t,{graph:i}=this.context,{degree:a}=this.options;return Ub(i,n,e.id,typeof a=="function"?a(t):a).filter(s=>s!==e.id)}updateState(t){return ag(this,void 0,void 0,function*(){const{state:e,unselectedState:n,neighborState:i,animation:a}=this.options;if(!e&&!i&&!n)return;const{target:s}=t,{graph:o}=this.context,A=o.getElementData(s.id),l=fy(A).includes(e)?"unselect":"select",c={},u=this.isMultipleSelect,h=[s.id],d=this.getNeighborIds(t);if(u)if(Object.assign(c,this.getDataStates()),l==="select"){const f=(g,v)=>{g.forEach(p=>{const y=new Set(o.getElementState(p));y.add(v),y.delete(n),c[p]=Array.from(y)})};f(h,e),f(d,i),n&&Object.keys(c).forEach(g=>{const v=c[g];!v.includes(e)&&!v.includes(i)&&!v.includes(n)&&c[g].push(n)})}else{const f=c[s.id];c[s.id]=f.filter(g=>g!==e&&g!==i),f.includes(n)||c[s.id].push(n),d.forEach(g=>{c[g]=c[g].filter(v=>v!==i),c[g].includes(e)||c[g].push(n)})}else if(l==="select"){Object.assign(c,this.getClearStates(!!n));const f=(g,v)=>{g.forEach(p=>{c[p]||(c[p]=o.getElementState(p)),c[p].push(v)})};f(h,e),f(d,i),n&&Object.keys(c).forEach(g=>{!h.includes(g)&&!d.includes(g)&&c[g].push(n)})}else Object.assign(c,this.getClearStates());yield o.setElementState(c,a)})}getDataStates(){const{graph:t}=this.context,{nodes:e,edges:n,combos:i}=t.getData(),a={};return[...e,...n,...i].forEach(s=>{a[Nt(s)]=fy(s)}),a}getClearStates(t=!1){const{graph:e}=this.context,{state:n,unselectedState:i,neighborState:a}=this.options,s=new Set([n,i,a]),{nodes:o,edges:A,combos:l}=e.getData(),c={};return[...o,...A,...l].forEach(u=>{const h=fy(u),d=h.filter(f=>!s.has(f));(t||d.length!==h.length)&&(c[Nt(u)]=d)}),c}clearState(){return ag(this,void 0,void 0,function*(){const{graph:t}=this.context;yield t.setElementState(this.getClearStates(),this.options.animation)})}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return Vt(e)?e(t):!!e}unbindEvents(){const{graph:t}=this.context;xl.forEach(e=>{t.off(`${e}:${Yt.CLICK}`,this.onClickSelect)}),t.off(No.CLICK,this.onClickCanvas)}destroy(){this.unbindEvents(),super.destroy()}}sg.defaultOptions={animation:!0,enable:!0,multiple:!1,trigger:["shift"],state:"selected",neighborState:"selected",unselectedState:void 0,degree:0};function pa(r){var t;return!!(!((t=r.style)===null||t===void 0)&&t.collapsed)}var Fi=function(r,t,e){for(var n=0,i=gn(t)?t.split("."):t;r&&n="A"&&e<="Z"}function Rb(r,t){return`${t}${Rf(r)}`}function Db(r,t,e=!0){if(!t||!xh(r,t))return r;const n=r.slice(t.length);return e?FL(n):n}function Ir(r,t){const e=Object.entries(r).reduce((n,[i,a])=>(i==="className"||i==="class"||xh(i,t)&&Object.assign(n,{[Db(i,t)]:a}),n),{});if("opacity"in r){const n=Rb("opacity",t),i=r.opacity;if(n in r){const a=r[n];Object.assign(e,{opacity:i*a})}else Object.assign(e,{opacity:i})}return e}function gy(r,t){const e=t.length;return Object.keys(r).reduce((n,i)=>{if(i.startsWith(t)){const a=i.slice(e);n[a]=r[i]}return n},{})}function Pb(r,t){const e=typeof t=="string"?[t]:t,n={};return Object.keys(r).forEach(i=>{e.find(a=>i.startsWith(a))||(n[i]=r[i])}),n}function Az(r,t,e){return Object.entries(r).reduce((n,[i,a])=>(xh(i,t)?n[Rb(Db(i,t,!1),e)]=a:n[i]=a,n),{})}function Da(r=0){if(typeof r=="number")return[r,r,r];const[t,e=t,n=t]=r;return[t,e,n]}var TL=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[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,e)]:[i,a]))}function mi(r,t){const e=(r==null?void 0:r.style)||{},n=(t==null?void 0:t.style)||{};for(const i in e)i in n||(n[i]=e[i]);return Object.assign({},r,t,{style:n})}function OL(r){const{x:t,y:e,z:n,class:i,className:a,transform:s,transformOrigin:o,zIndex:A,visibility:l}=r;return TL(r,["x","y","z","class","className","transform","transformOrigin","zIndex","visibility"])}function IL(r,t){const e=Da(r);let n={};return t.text&&!t.fontSize&&(n={fontSize:Math.min(...e)*.5}),t.src&&(!t.width||!t.height)&&(n={width:e[0]*.5,height:e[1]*.5}),n}function Hb(r){if(r)return typeof r=="string"||typeof r=="function"||Array.isArray(r)?{type:"group",field:t=>t.id,color:r,invert:!1}:r}function NL(r,t){if(!t)return{};const{type:e,color:n,field:i,invert:a}=t,s=A=>{const l=typeof n=="string"?Lo("palette",n):n;if(typeof l=="function"){const c={};return A.forEach(([u,h])=>{c[u]=l(a?1-h:h)}),c}else if(Array.isArray(l)){const c=a?[...l].reverse():l,u={};return A.forEach(([h,d])=>{u[h]=c[d%l.length]}),u}return{}},o=(A,l)=>{var c;return typeof A=="string"?(c=l.data)===null||c===void 0?void 0:c[A]:A==null?void 0:A(l)};if(e==="group"){const A=Pf(r,h=>{if(!i)return"default";const d=o(i,h);return d?String(d):"default"}),l=Object.keys(A),c=s(l.map((h,d)=>[h,d])),u={};return Object.entries(A).forEach(([h,d])=>{d.forEach(f=>{u[Nt(f)]=c[h]})}),u}else if(e==="value"){const[A,l]=r.reduce(([u,h],d)=>{const f=o(i,d);if(typeof f!="number")throw new Error(ko(`Palette field ${i} is not a number`));return[Math.min(u,f),Math.max(h,f)]},[1/0,-1/0]),c=l-A;return s(r.map(u=>[u.id,(o(i,u)-A)/c]))}}function Gb(r){const t=typeof r=="string"?Lo("palette",r):r;if(typeof t!="function")return t}function zb(r,t){let e=2*r;return typeof t=="string"?e=r*Number(t.replace("%",""))/100:typeof t=="number"&&(e=t),isNaN(e)&&(e=2*r),e}function Kb(r,t,e=1,n=!1){const i=n?e:1,a=(r.max[0]-r.min[0])*i;return zb(a,t)}function LL(r,t,e=1){const n=cr(r[0],r[1])*e;return zb(n,t)}var kL={}.toString,QL=function(r){return kL.call(r).replace(/^\[object /,"").replace(/]$/,"")},UL=QL,RL=Object.prototype,DL=function(r){var t=r&&r.constructor,e=typeof t=="function"&&t.prototype||RL;return r===e},PL=DL,_L=Object.prototype.hasOwnProperty;function HL(r){if(Re(r))return!0;if(dh(r))return!r.length;var t=UL(r);if(t==="Map"||t==="Set")return!r.size;if(PL(r))return!Object.keys(r).length;for(var e in r)if(_L.call(r,e))return!1;return!0}var oo=HL;class Ch extends sh{constructor(t){Vb(t.style),super(t),this.shapeMap={},this.animateMap={},this.render(this.attributes,this),this.setVisibility(),this.bindEvents()}get parsedAttributes(){return this.attributes}upsert(t,e,n,i,a){var s,o,A,l,c,u,h,d;const f=this.shapeMap[t];if(n===!1){f&&((s=a==null?void 0:a.beforeDestroy)===null||s===void 0||s.call(a,f),i.removeChild(f),delete this.shapeMap[t],(o=a==null?void 0:a.afterDestroy)===null||o===void 0||o.call(a,f));return}const g=typeof e=="string"?Lo(fh.SHAPE,e):e;if(!g)throw new Error(ko(`Shape ${e} not found`));if(!f||f.destroyed||!(f instanceof g)){f&&((A=a==null?void 0:a.beforeDestroy)===null||A===void 0||A.call(a,f),f==null||f.destroy(),(l=a==null?void 0:a.afterDestroy)===null||l===void 0||l.call(a,f)),(c=a==null?void 0:a.beforeCreate)===null||c===void 0||c.call(a);const v=new g({className:t,style:n});return i.appendChild(v),this.shapeMap[t]=v,(u=a==null?void 0:a.afterCreate)===null||u===void 0||u.call(a,v),v}return(h=a==null?void 0:a.beforeUpdate)===null||h===void 0||h.call(a,f),Ny(f,n),(d=a==null?void 0:a.afterUpdate)===null||d===void 0||d.call(a,f),f}update(t={}){const e=Object.assign({},this.attributes,t);Vb(e),NQ(this,e),this.render(e,this),this.setVisibility()}bindEvents(){}getGraphicStyle(t){return OL(t)}get compositeShapes(){return[["badges","badge-"],["ports","port-"]]}animate(t,e){if(t.length===0)return null;const n=[];if(t[0].x!==void 0||t[0].y!==void 0||t[0].z!==void 0){const{x:a=0,y:s=0,z:o=0}=this.attributes;t.forEach(A=>{const{x:l=a,y:c=s,z:u=o}=A;Object.assign(A,{transform:u?[["translate3d",l,c,u]]:[["translate",l,c]]})})}const i=super.animate(t,e);if(i&&(vy(this,i),n.push(i)),Array.isArray(t)&&t.length>0){const a=["transform","transformOrigin","x","y","z","zIndex"];if(Object.keys(t[0]).some(s=>!a.includes(s))){Object.entries(this.shapeMap).forEach(([o,A])=>{const l=`get${Rf(o)}Style`,c=this[l];if(Vt(c)){const u=t.map(d=>c.call(this,Object.assign(Object.assign({},this.attributes),d))),h=A.animate(jm(u),e);h&&(vy(A,h),n.push(h))}});const s=(o,A)=>{if(!oo(o)){const l=`get${Rf(A)}Style`,c=this[l];if(Vt(c)){const u=t.map(h=>c.call(this,Object.assign(Object.assign({},this.attributes),h)));Object.entries(u[0]).map(([h])=>{const d=u.map(g=>g[h]),f=o[h];if(f){const g=f.animate(jm(d),e);g&&(vy(f,g),n.push(g))}})}}};this.compositeShapes.forEach(([o,A])=>{const l=gy(this.shapeMap,A);s(l,o)})}}return Wm(n)}getShape(t){return this.shapeMap[t]}setVisibility(){const{visibility:t}=this.attributes;Bl(this,t)}destroy(){this.shapeMap={},this.animateMap={},super.destroy()}}function vy(r,t){t==null||t.finished.then(()=>{const e=r.activeAnimations.findIndex(n=>n===t);e>-1&&r.activeAnimations.splice(e,1)})}function Vb(r){if(!r)return{};if("x"in r||"y"in r||"z"in r){const{x:t=0,y:e=0,z:n,transform:i}=r,a=OB(t,e,n,i);a&&(r.transform=a)}return r}var GL=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i{e.push([i===0?"M":"L",...n])}),t&&e.push(["Z"]),e}const Wb={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 KL(r){const t=r.replace(/[\n\r]/g,"").replace(/-/g," -").replace(/(\d*\.)(\d+)(?=\.)/g,"$1$2 ").trim().split(/\s*,|\s+/),e=[];let n="",i={};for(;t.length>0;){let a=t.shift();a in Wb?n=a:t.unshift(a),i={type:n},Wb[n].forEach(A=>{a=t.shift(),i[A]=a}),n==="M"?n="L":n==="m"&&(n="l");const[s,...o]=Object.values(i);e.push([s,...o.map(Number)])}return e}function VL(r){const t=[];return(typeof r=="string"?KL(r):r).forEach(n=>{const i=n[0];if(i==="Z"){t.push(t[0]);return}if(i!=="A")for(let a=1;a{if(r.length<2)return[["M",0,0],["L",0,0]];const t=r[0],e=r[1],n=r[r.length-1],i=r[r.length-2];r.unshift(i,n),r.push(t,e);const a=[["M",n[0],n[1]]];for(let s=1;s{const v=f,p=c[(g+1)%c.length];return Pr(v,p)?null:[v,p]}).filter(Boolean),h=bL([o,A],u),d=Lb([o,A],h);if(d&&h&&(l.transform=[["translate",d[0]+e,d[1]+n]],s)){const f=Math.atan((h[0][1]-h[1][1])/(h[0][0]-h[1][0]));l.transform.push(["rotate",f/Math.PI*180]),l.textAlign="center",(t==="right"||t==="left")&&(f>0?l.textBaseline=t==="right"?"bottom":"top":l.textBaseline=t==="right"?"top":"bottom")}return l}var jL=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[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=>{t.push(i),e(i)})};return e(r),t}function YL(r){const t=[];let e=r.parentNode;for(;e;)t.push(e),e=e.parentNode;return t}class py extends Ah{constructor(t){super(t),this.onMounted=()=>{this.handleRadius()},this.onAttrModified=()=>{this.handleRadius()},Gc=this,this.isMutationObserved=!0,this.addEventListener(yn.MOUNTED,this.onMounted),this.addEventListener(yn.ATTR_MODIFIED,this.onAttrModified)}handleRadius(){const{radius:t,clipPath:e,width:n=0,height:i=0}=this.attributes;if(t&&n&&i){const[a,s]=this.getBounds().min,o={x:a,y:s,radius:t,width:n,height:i};if(e)Object.assign(this.parsedStyle.clipPath.style,o);else{const A=new Ci({style:o});this.style.clipPath=A}}else e&&(this.style.clipPath=null)}}const my=new WeakMap;let Gc=null;const yy=r=>{if(Gc&&YL(Gc).includes(r)){const t=my.get(r);t?t.includes(Gc)||t.push(Gc):my.set(r,[Gc])}},wy=r=>{const t=my.get(r);t&&t.forEach(e=>e.handleRadius())};class Zb extends Ch{constructor(t){super(t)}isImage(){const{src:t}=this.attributes;return!!t}getIconStyle(t=this.attributes){const{width:e=0,height:n=0}=t,i=this.getGraphicStyle(t);return this.isImage()?Object.assign({x:-e/2,y:-n/2},i):Object.assign({textBaseline:"middle",textAlign:"center"},i)}render(t=this.attributes,e=this){this.upsert("icon",this.isImage()?py:ml,this.getIconStyle(t),e)}}class Yb extends Ch{get context(){return this.config.context}get parsedAttributes(){return this.attributes}onframe(){}animate(t,e){const n=super.animate(t,e);return n&&(n.onframe=()=>this.onframe(),n.finished.then(()=>this.onframe())),n}}var og=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i{i[u]=!1}),t.badge===!1||!(!((e=t.badges)===null||e===void 0)&&e.length))return i;const{badges:a=[],badgePalette:s,opacity:o=1}=t,A=og(t,["badges","badgePalette","opacity"]),l=Gb(s),c=Ir(this.getGraphicStyle(A),"badge");return a.forEach((u,h)=>{i[h]=Object.assign(Object.assign({backgroundFill:l?l[h%(l==null?void 0:l.length)]:void 0,opacity:o},c),this.getBadgeStyle(u))}),i}getBadgeStyle(t){const e=this.getShape("key"),{placement:n="top",offsetX:i,offsetY:a}=t,s=og(t,["placement","offsetX","offsetY"]),o=Ox(e.getLocalBounds(),n,i,a,!0);return Object.assign(Object.assign({},o),s)}getPortsStyle(t){var e;const n=this.getPorts(),i={};if(Object.keys(n).forEach(o=>{i[o]=!1}),t.port===!1||!(!((e=t.ports)===null||e===void 0)&&e.length))return i;const a=Ir(this.getGraphicStyle(t),"port"),{ports:s=[]}=t;return s.forEach((o,A)=>{const l=o.key||A,c=Object.assign(Object.assign({},a),o);if(Mx(c))i[l]=!1;else{const[u,h]=this.getPortXY(t,o);i[l]=Object.assign({transform:[["translate",u,h]]},c)}}),i}getPortXY(t,e){const{placement:n="left"}=e,i=this.getShape("key");return Ty(XL(this.context,i),n)}getPorts(){return gy(this.shapeMap,"port-")}getCenter(){return this.getShape("key").getBounds().center}getIntersectPoint(t,e=!1){const n=this.getShape("key").getBounds();return EL(t,n,e)}drawHaloShape(t,e){const n=this.getHaloStyle(t),i=this.getShape("key");this.upsert("halo",i.constructor,n,e)}drawIconShape(t,e){const n=this.getIconStyle(t);this.upsert("icon",Zb,n,e),yy(this)}drawBadgeShapes(t,e){const n=this.getBadgesStyle(t);Object.keys(n).forEach(i=>{const a=n[i];this.upsert(`badge-${i}`,Hc,a,e)})}drawPortShapes(t,e){const n=this.getPortsStyle(t);Object.keys(n).forEach(i=>{const a=n[i],s=`port-${i}`;this.upsert(s,eo,a,e)})}drawLabelShape(t,e){const n=this.getLabelStyle(t);this.upsert("label",Ao,n,e)}_drawKeyShape(t,e){return this.drawKeyShape(t,e)}render(t=this.parsedAttributes,e=this){this._drawKeyShape(t,e),this.getShape("key")&&(this.drawHaloShape(t,e),this.drawIconShape(t,e),this.drawBadgeShapes(t,e),this.drawLabelShape(t,e),this.drawPortShapes(t,e))}update(t){super.update(t),t&&("x"in t||"y"in t||"z"in t)&&wy(this)}onframe(){this.drawBadgeShapes(this.parsedAttributes,this),this.drawLabelShape(this.parsedAttributes,this)}}Ts.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 XL(r,t){if(!r)return t.getLocalBounds();const e=r.canvas.getLayer(),n=t.cloneNode();Bl(n,"hidden"),e.appendChild(n);const i=n.getLocalBounds();return n.destroy(),i}class Sl extends Ts{constructor(t){super(mi({style:Sl.defaultStyleProps},t))}drawKeyShape(t,e){return this.upsert("key",eo,this.getKeyStyle(t),e)}getKeyStyle(t){const e=super.getKeyStyle(t);return Object.assign(Object.assign({},e),{r:Math.min(...this.getSize(t))/2})}getIconStyle(t){const e=super.getIconStyle(t),{r:n}=this.getShape("key").attributes,i=n*2*Ro;return e?Object.assign({width:i,height:i},e):!1}getIntersectPoint(t,e=!1){const n=this.getShape("key").getBounds();return rg(t,n,e)}}Sl.defaultStyleProps={size:32};class Ag extends Ts{constructor(t){super(t)}get parsedAttributes(){return this.attributes}drawKeyShape(t,e){return this.upsert("key",pl,this.getKeyStyle(t),e)}getKeyStyle(t){const e=super.getKeyStyle(t);return Object.assign(Object.assign({},e),{points:this.getPoints(t)})}getIntersectPoint(t,e=!1){var 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 Nb(t,s,a,!0,e).point}}class JL extends Ag{constructor(t){super(t)}getPoints(t){const[e,n]=this.getSize(t);return IQ(e,n)}}var qL=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);iye(u)?{value:u}:u),a=Ir(this.getGraphicStyle(t),"donut"),s=Gb(t.donutPalette);if(!s)return;const o=i.reduce((u,h)=>{var d;return u+((d=h.value)!==null&&d!==void 0?d:0)},0),A=this.parseOuterR(),l=this.parseInnerR();let c=0;i.forEach((u,h)=>{const{value:d=0,color:f=s[h%s.length]}=u,g=qL(u,["value","color"]),v=(o===0?1/i.length:d/o)*360;this.upsert(`round${h}`,Pi,Object.assign(Object.assign(Object.assign({},a),{d:ek(A,l,c,c+v),fill:f}),g),e),c+=v})}render(t,e=this){super.render(t,e),this.drawDonutShape(t,e)}}lg.defaultStyleProps={innerR:"50%",donuts:[],donutPalette:"tableau"};const cg=(r,t,e,n)=>[r+Math.sin(n)*e,t-Math.cos(n)*e],$L=(r,t,e,n)=>n<=0||e<=n?[["M",r-e,t],["A",e,e,0,1,1,r+e,t],["A",e,e,0,1,1,r-e,t],["Z"]]:[["M",r-e,t],["A",e,e,0,1,1,r+e,t],["A",e,e,0,1,1,r-e,t],["Z"],["M",r+n,t],["A",n,n,0,1,0,r-n,t],["A",n,n,0,1,0,r+n,t],["Z"]],tk=(r,t,e,n,i,a)=>{const[s,o]=[i/360*2*Math.PI,a/360*2*Math.PI],A=[cg(r,t,n,s),cg(r,t,e,s),cg(r,t,e,o),cg(r,t,n,o)],l=o-s>Math.PI?1:0;return[["M",A[0][0],A[0][1]],["L",A[1][0],A[1][1]],["A",e,e,0,l,1,A[2][0],A[2][1]],["L",A[3][0],A[3][1]],["A",n,n,0,l,0,A[0][0],A[0][1]],["Z"]]},ek=(r=0,t=0,e,n)=>{const[i,a]=[0,0];return Math.abs(e-n)%360<1e-6?$L(i,a,r,t):tk(i,a,r,t,e,n)};class ug extends Ts{constructor(t){super(mi({style:ug.defaultStyleProps},t))}drawKeyShape(t,e){return this.upsert("key",oh,this.getKeyStyle(t),e)}getKeyStyle(t){const e=super.getKeyStyle(t),[n,i]=this.getSize(t);return Object.assign(Object.assign({},e),{rx:n/2,ry:i/2})}getIconStyle(t){const e=super.getIconStyle(t),{rx:n,ry:i}=this.getShape("key").attributes,a=Math.min(+n,+i)*2*Ro;return e?Object.assign({width:a,height:a},e):!1}getIntersectPoint(t,e=!1){const n=this.getShape("key").getBounds();return rg(t,n,e)}}ug.defaultStyleProps={size:[45,35]};class nk extends Ag{constructor(t){super(t)}getOuterR(t){return t.outerR||Math.min(...this.getSize(t))/2}getPoints(t){return LQ(this.getOuterR(t))}getIconStyle(t){const e=super.getIconStyle(t),n=this.getOuterR(t)*Ro;return e?Object.assign({width:n,height:n},e):!1}}function lo(r,t){if(!{}.hasOwnProperty.call(r,t))throw new TypeError("attempted to use private field on non-instance");return r}var rk=0;function ik(r){return"__private_"+rk+++"_"+r}var Hr=ik("renderState"),Xb=function(){function r(t){(0,P.Z)(this,r),this.renderQueue=[],Object.defineProperty(this,Hr,{writable:!0,value:{restoreStack:[],prevObject:null,currentContext:new Map}}),this.clearFullScreenLastFrame=!1,this.clearFullScreen=!1,this.vpMatrix=$t(),this.dprMatrix=$t(),this.tmpMat4=$t(),this.vec3a=Ot(),this.vec3b=Ot(),this.vec3c=Ot(),this.vec3d=Ot(),this.canvasRendererPluginOptions=t}return(0,N.Z)(r,[{key:"apply",value:function(e,n){var i=this;this.context=e;var a=this.context,s=a.config,o=a.camera,A=a.renderingService,l=a.renderingContext,c=a.pathGeneratorFactory,u=s.renderer.getConfig().enableRenderingOptimization;s.renderer.getConfig().enableDirtyCheck=!1,s.renderer.getConfig().enableDirtyRectangleRendering=!1,this.pathGeneratorFactory=c;var h=e.contextService,d=l.root.ownerDocument.defaultView;A.hooks.init.tap(r.tag,function(){var v=h.getDPR(),p=s.width,y=s.height,x=h.getContext();i.clearRect(x,0,0,p*v,y*v,s.background)}),A.hooks.destroy.tap(r.tag,function(){i.renderQueue=[],lo(i,Hr)[Hr]={restoreStack:[],prevObject:null,currentContext:null}});var f=function(){var p,y=h.getContext(),x=h.getDPR(),F=s.width,O=s.height,L=i.canvasRendererPluginOptions,U=L.dirtyObjectNumThreshold,R=L.dirtyObjectRatioThreshold,j=A.getStats(),q=j.total,et=j.rendered,it=et/q;i.clearFullScreen=i.clearFullScreenLastFrame||!((p=d.context.renderingPlugins[1])!==null&&p!==void 0&&p.isFirstTimeRenderingFinished)||A.disableDirtyRectangleRendering()||et>U&&it>R,y&&(typeof y.resetTransform=="function"?y.resetTransform():y.setTransform(1,0,0,1,0,0),i.clearFullScreen&&i.clearRect(y,0,0,F*x,O*x,s.background))},g=function(p,y){for(var x=[p];x.length>0;){var F,O=x.pop();O.isVisible()&&!O.isCulled()&&(u?i.renderDisplayObjectOptimized(O,y,i.context,lo(i,Hr)[Hr],n):i.renderDisplayObject(O,y,i.context,lo(i,Hr)[Hr],n));for(var L=((F=O.sortable)===null||F===void 0||(F=F.sorted)===null||F===void 0?void 0:F.length)>0?O.sortable.sorted:O.childNodes,U=L.length-1;U>=0;U--)x.push(L[U])}};A.hooks.endFrame.tap(r.tag,function(){if(f(),l.root.childNodes.length===0){i.clearFullScreenLastFrame=!0;return}u=s.renderer.getConfig().enableRenderingOptimization,lo(i,Hr)[Hr]={restoreStack:[],prevObject:null,currentContext:lo(i,Hr)[Hr].currentContext},lo(i,Hr)[Hr].currentContext.clear(),i.clearFullScreenLastFrame=!1;var v=h.getContext(),p=h.getDPR();if(Dn(i.dprMatrix,[p,p,1]),ue(i.vpMatrix,i.dprMatrix,o.getOrthoMatrix()),i.clearFullScreen)u?(v.save(),g(l.root,v),v.restore()):g(l.root,v);else{var y=i.safeMergeAABB(i.mergeDirtyAABBs(i.renderQueue));if(Zn.isEmpty(y)){i.renderQueue=[];return}var x=i.convertAABB2Rect(y),F=x.x,O=x.y,L=x.width,U=x.height,R=me(i.vec3a,[F,O,0],i.vpMatrix),j=me(i.vec3b,[F+L,O,0],i.vpMatrix),q=me(i.vec3c,[F,O+U,0],i.vpMatrix),et=me(i.vec3d,[F+L,O+U,0],i.vpMatrix),it=Math.min(R[0],j[0],et[0],q[0]),dt=Math.min(R[1],j[1],et[1],q[1]),ft=Math.max(R[0],j[0],et[0],q[0]),mt=Math.max(R[1],j[1],et[1],q[1]),Rt=Math.floor(it),Qt=Math.floor(dt),yt=Math.ceil(ft-it),xt=Math.ceil(mt-dt);v.save(),i.clearRect(v,Rt,Qt,yt,xt,s.background),v.beginPath(),v.rect(Rt,Qt,yt,xt),v.clip(),v.setTransform(i.vpMatrix[0],i.vpMatrix[1],i.vpMatrix[4],i.vpMatrix[5],i.vpMatrix[12],i.vpMatrix[13]);var Dt=s.renderer.getConfig(),Xt=Dt.enableDirtyRectangleRenderingDebug;Xt&&d.dispatchEvent(new Wr(La.DIRTY_RECTANGLE,{dirtyRect:{x:Rt,y:Qt,width:yt,height:xt}}));var ne=y.getMin(),le=(0,H.Z)(ne,2),ge=le[0],xe=le[1],Qe=y.getMax(),Pe=(0,H.Z)(Qe,2),en=Pe[0],mn=Pe[1],an=l.root.ownerDocument.elementsFromBBox(ge,xe,en,mn);an.sort(function(er,kn){return er.sortable.renderOrder-kn.sortable.renderOrder}).forEach(function(er){er&&er.isVisible()&&!er.isCulled()&&i.renderDisplayObject(er,v,i.context,lo(i,Hr)[Hr],n)}),v.restore(),i.renderQueue.forEach(function(er){i.saveDirtyAABB(er)}),i.renderQueue=[]}lo(i,Hr)[Hr].restoreStack.forEach(function(){v.restore()}),lo(i,Hr)[Hr].restoreStack=[]}),A.hooks.render.tap(r.tag,function(v){i.clearFullScreen||i.renderQueue.push(v)})}},{key:"clearRect",value:function(e,n,i,a,s,o){e.clearRect(n,i,a,s),o&&(e.fillStyle=o,e.fillRect(n,i,a,s))}},{key:"renderDisplayObjectOptimized",value:function(e,n,i,a,s){var o=e.nodeName,A=!1,l=!1,c=this.context.styleRendererFactory[o],u=this.pathGeneratorFactory[o],h=e.parsedStyle.clipPath;if(h){A=!a.prevObject||!Kr(h.getWorldTransform(),a.prevObject.getWorldTransform()),A&&(this.applyWorldTransform(n,h),a.prevObject=null);var d=this.pathGeneratorFactory[h.nodeName];d&&(n.save(),l=!0,n.beginPath(),d(n,h.parsedStyle),n.closePath(),n.clip())}if(c){A=!a.prevObject||!Kr(e.getWorldTransform(),a.prevObject.getWorldTransform()),A&&this.applyWorldTransform(n,e);var f=!a.prevObject;if(!f){var g=a.prevObject.nodeName;o===Kt.TEXT?f=g!==Kt.TEXT:o===Kt.IMAGE?f=g!==Kt.IMAGE:f=g===Kt.TEXT||g===Kt.IMAGE}c.applyStyleToContext(n,e,f,a),a.prevObject=e}u&&(n.beginPath(),u(n,e.parsedStyle),o!==Kt.LINE&&o!==Kt.PATH&&o!==Kt.POLYLINE&&n.closePath()),c&&c.drawToContext(n,e,lo(this,Hr)[Hr],this,s),l&&n.restore(),e.dirty(!1)}},{key:"renderDisplayObject",value:function(e,n,i,a,s){var o=e.nodeName,A=a.restoreStack[a.restoreStack.length-1];A&&!(e.compareDocumentPosition(A)&pr.DOCUMENT_POSITION_CONTAINS)&&(n.restore(),a.restoreStack.pop());var l=this.context.styleRendererFactory[o],c=this.pathGeneratorFactory[o],u=e.parsedStyle.clipPath;if(u){this.applyWorldTransform(n,u);var h=this.pathGeneratorFactory[u.nodeName];h&&(n.save(),a.restoreStack.push(e),n.beginPath(),h(n,u.parsedStyle),n.closePath(),n.clip())}l&&(this.applyWorldTransform(n,e),n.save(),this.applyAttributesToContext(n,e)),c&&(n.beginPath(),c(n,e.parsedStyle),o!==Kt.LINE&&o!==Kt.PATH&&o!==Kt.POLYLINE&&n.closePath()),l&&(l.render(n,e.parsedStyle,e,i,this,s),n.restore()),e.dirty(!1)}},{key:"applyAttributesToContext",value:function(e,n){var i=n.parsedStyle,a=i.stroke,s=i.fill,o=i.opacity,A=i.lineDash,l=i.lineDashOffset;A&&e.setLineDash(A),Re(l)||(e.lineDashOffset=l),Re(o)||(e.globalAlpha*=o),!Re(a)&&!Array.isArray(a)&&!a.isNone&&(e.strokeStyle=n.attributes.stroke),!Re(s)&&!Array.isArray(s)&&!s.isNone&&(e.fillStyle=n.attributes.fill)}},{key:"convertAABB2Rect",value:function(e){var n=e.getMin(),i=e.getMax(),a=Math.floor(n[0]),s=Math.floor(n[1]),o=Math.ceil(i[0]),A=Math.ceil(i[1]),l=o-a,c=A-s;return{x:a,y:s,width:l,height:c}}},{key:"mergeDirtyAABBs",value:function(e){var n=new Zn;return e.forEach(function(i){var a=i.getRenderBounds();n.add(a);var s=i.renderable.dirtyRenderBounds;s&&n.add(s)}),n}},{key:"saveDirtyAABB",value:function(e){var n=e.renderable;n.dirtyRenderBounds||(n.dirtyRenderBounds=new Zn);var i=e.getRenderBounds();i&&n.dirtyRenderBounds.update(i.center,i.halfExtents)}},{key:"applyWorldTransform",value:function(e,n,i){i?(He(this.tmpMat4,n.getLocalTransform()),ue(this.tmpMat4,i,this.tmpMat4),ue(this.tmpMat4,this.vpMatrix,this.tmpMat4)):(He(this.tmpMat4,n.getWorldTransform()),ue(this.tmpMat4,this.vpMatrix,this.tmpMat4)),e.setTransform(this.tmpMat4[0],this.tmpMat4[1],this.tmpMat4[4],this.tmpMat4[5],this.tmpMat4[12],this.tmpMat4[13])}},{key:"safeMergeAABB",value:function(){for(var e=new Zn,n=arguments.length,i=new Array(n),a=0;a0;if(u){if(i||n.attributes.stroke!==a.prevObject.attributes.stroke){var h=!Re(o.stroke)&&!Array.isArray(o.stroke)&&!o.stroke.isNone?n.attributes.stroke:jr.strokeStyle;Sr(e,"strokeStyle",h,a.currentContext)}(i||o.lineWidth!==s.lineWidth)&&Sr(e,"lineWidth",Re(o.lineWidth)?jr.lineWidth:o.lineWidth,a.currentContext),(i||o.lineDash!==s.lineDash)&&Sr(e,"lineDash",o.lineDash||jr.lineDash,a.currentContext),(i||o.lineDashOffset!==s.lineDashOffset)&&Sr(e,"lineDashOffset",Re(o.lineDashOffset)?jr.lineDashOffset:o.lineDashOffset,a.currentContext);for(var d=0;d4&&arguments[4]!==void 0?arguments[4]:!1;if(n){Sr(e,"shadowColor",jr.shadowColor,a.currentContext);for(var o=0;o-1&&Sr(e,"filter",l.replace(/drop-shadow\([^)]*\)/,"").trim()||jr.filter,a.currentContext)}else Sr(e,"filter",jr.filter,a.currentContext)}},{key:"fillToContext",value:function(e,n,i,a,s){var o=this,A=n.parsedStyle,l=A.fill,c=A.fillRule,u=null;if(Array.isArray(l)&&l.length>0)l.forEach(function(d){var f=Sr(e,"fillStyle",dg(d,n,e,o.imagePool),i.currentContext);u=u!=null?u:f,c?e.fill(c):e.fill()});else{if(So(l)){var h=hg(l,n,e,n.ownerDocument.defaultView.context,a,s,this.imagePool);h&&(e.fillStyle=h,u=!0)}c?e.fill(c):e.fill()}u!==null&&Sr(e,"fillStyle",u,i.currentContext)}},{key:"strokeToContext",value:function(e,n,i,a,s){var o=this,A=n.parsedStyle.stroke,l=null;if(Array.isArray(A)&&A.length>0)A.forEach(function(h){var d=Sr(e,"strokeStyle",dg(h,n,e,o.imagePool),i.currentContext);l=l!=null?l:d,e.stroke()});else{if(So(A)){var c=hg(A,n,e,n.ownerDocument.defaultView.context,a,s,this.imagePool);if(c){var u=Sr(e,"strokeStyle",c,i.currentContext);l=l!=null?l:u}}e.stroke()}l!==null&&Sr(e,"strokeStyle",l,i.currentContext)}},{key:"drawToContext",value:function(e,n,i,a,s){var o,A=n.nodeName,l=n.parsedStyle,c=l.opacity,u=c===void 0?jr.globalAlpha:c,h=l.fillOpacity,d=h===void 0?jr.fillOpacity:h,f=l.strokeOpacity,g=f===void 0?jr.strokeOpacity:f,v=l.lineWidth,p=v===void 0?jr.lineWidth:v,y=l.fill&&!l.fill.isNone,x=l.stroke&&!l.stroke.isNone&&p>0;if(!(!y&&!x)){var F=!Re(l.shadowColor)&&l.shadowBlur>0,O=l.shadowType==="inner",L=((o=l.fill)===null||o===void 0?void 0:o.alpha)===0,U=!!(l.filter&&l.filter.length),R=F&&x&&(A===Kt.PATH||A===Kt.LINE||A===Kt.POLYLINE||L||O),j=null;if(y){R||this.applyShadowAndFilterStyleToContext(e,n,F,i);var q=u*d;j=Sr(e,"globalAlpha",q,i.currentContext),this.fillToContext(e,n,i,a,s),R||this.clearShadowAndFilterStyleForContext(e,F,U,i)}if(x){var et=!1,it=u*g,dt=Sr(e,"globalAlpha",it,i.currentContext);if(j=y?j:dt,R&&(this.applyShadowAndFilterStyleToContext(e,n,F,i),et=!0,O)){var ft=e.globalCompositeOperation;e.globalCompositeOperation="source-atop",this.strokeToContext(e,n,i,a,s),e.globalCompositeOperation=ft,this.clearShadowAndFilterStyleForContext(e,F,U,i,!0)}this.strokeToContext(e,n,i,a,s),et&&this.clearShadowAndFilterStyleForContext(e,F,U,i)}j!==null&&Sr(e,"globalAlpha",j,i.currentContext)}}}])}(),Os=function(r){function t(){return(0,P.Z)(this,t),(0,K.Z)(this,t,arguments)}return(0,_.Z)(t,r),(0,N.Z)(t,[{key:"render",value:function(n,i,a,s,o,A){var l=i.fill,c=i.fillRule,u=i.opacity,h=u===void 0?1:u,d=i.fillOpacity,f=d===void 0?1:d,g=i.stroke,v=i.strokeOpacity,p=v===void 0?1:v,y=i.lineWidth,x=y===void 0?1:y,F=i.lineCap,O=i.lineJoin,L=i.shadowType,U=i.shadowColor,R=i.shadowBlur,j=i.filter,q=i.miterLimit,et=l&&!l.isNone,it=g&&!g.isNone&&x>0,dt=(l==null?void 0:l.alpha)===0,ft=!!(j&&j.length),mt=!Re(U)&&R>0,Rt=a.nodeName,Qt=L==="inner",yt=it&&mt&&(Rt===Kt.PATH||Rt===Kt.LINE||Rt===Kt.POLYLINE||dt||Qt);et&&(n.globalAlpha=h*f,yt||gg(a,n,mt),$b(n,a,l,c,s,o,A,this.imagePool),yt||this.clearShadowAndFilter(n,ft,mt)),it&&(n.globalAlpha=h*p,n.lineWidth=x,Re(q)||(n.miterLimit=q),Re(F)||(n.lineCap=F),Re(O)||(n.lineJoin=O),yt&&(Qt&&(n.globalCompositeOperation="source-atop"),gg(a,n,!0),Qt&&(Ey(n,a,g,s,o,A,this.imagePool),n.globalCompositeOperation=jr.globalCompositeOperation,this.clearShadowAndFilter(n,ft,!0))),Ey(n,a,g,s,o,A,this.imagePool))}},{key:"clearShadowAndFilter",value:function(n,i,a){if(a&&(n.shadowColor="transparent",n.shadowBlur=0),i){var s=n.filter;!Re(s)&&s.indexOf("drop-shadow")>-1&&(n.filter=s.replace(/drop-shadow\([^)]*\)/,"").trim()||"none")}}}])}(ak);function gg(r,t,e){var n=r.parsedStyle,i=n.filter,a=n.shadowColor,s=n.shadowBlur,o=n.shadowOffsetX,A=n.shadowOffsetY;i&&i.length&&(t.filter=r.style.filter),e&&(t.shadowColor=a.toString(),t.shadowBlur=s||0,t.shadowOffsetX=o||0,t.shadowOffsetY=A||0)}function $b(r,t,e,n,i,a,s,o){var A=arguments.length>8&&arguments[8]!==void 0?arguments[8]:!1;Array.isArray(e)?e.forEach(function(l){r.fillStyle=dg(l,t,r,o),A||(n?r.fill(n):r.fill())}):(So(e)&&(r.fillStyle=hg(e,t,r,i,a,s,o)),A||(n?r.fill(n):r.fill()))}function Ey(r,t,e,n,i,a,s){var o=arguments.length>7&&arguments[7]!==void 0?arguments[7]:!1;Array.isArray(e)?e.forEach(function(A){r.strokeStyle=dg(A,t,r,s),o||r.stroke()}):(So(e)&&(r.strokeStyle=hg(e,t,r,n,i,a,s)),o||r.stroke())}function sk(r,t){var e=(0,H.Z)(r,4),n=e[0],i=e[1],a=e[2],s=e[3],o=(0,H.Z)(t,4),A=o[0],l=o[1],c=o[2],u=o[3],h=Math.max(n,A),d=Math.max(i,l),f=Math.min(n+a,A+c),g=Math.min(i+s,l+u);return f<=h||g<=d?null:[h,d,f-h,g-d]}function ok(r,t){var e=me(Ot(),[r[0],r[1],0],t),n=me(Ot(),[r[0]+r[2],r[1],0],t),i=me(Ot(),[r[0],r[1]+r[3],0],t),a=me(Ot(),[r[0]+r[2],r[1]+r[3],0],t);return[Math.min(e[0],n[0],i[0],a[0]),Math.min(e[1],n[1],i[1],a[1]),Math.max(e[0],n[0],i[0],a[0])-Math.min(e[0],n[0],i[0],a[0]),Math.max(e[1],n[1],i[1],a[1])-Math.min(e[1],n[1],i[1],a[1])]}var tx=function(r){function t(){return(0,P.Z)(this,t),(0,K.Z)(this,t,arguments)}return(0,_.Z)(t,r),(0,N.Z)(t,[{key:"renderDownSampled",value:function(n,i,a,s){var o=s.src,A=s.imageCache;if(!A.downSampled){this.imagePool.createDownSampledImage(o,a).then(function(){a.ownerDocument&&(a.dirty(),a.ownerDocument.defaultView.context.renderingService.dirty())}).catch(function(l){console.error(l)});return}n.drawImage(A.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,A=s.imageCache,l=s.imageRect,c=s.drawRect,u=A.size,h=n.getTransform(),d=h.a,f=h.b,g=h.c,v=h.d,p=h.e,y=h.f;if(n.resetTransform(),!(A!=null&&A.gridSize)){this.imagePool.createImageTiles(o,[],function(){a.ownerDocument&&(a.dirty(),a.ownerDocument.defaultView.context.renderingService.dirty())},a).catch(function(mt){console.error(mt)});return}for(var x=[u[0]/l[2],u[1]/l[3]],F=[A.tileSize[0]/x[0],A.tileSize[1]/x[1]],O=[Math.floor((c[0]-l[0])/F[0]),Math.ceil((c[0]+c[2]-l[0])/F[0])],L=O[0],U=O[1],R=[Math.floor((c[1]-l[1])/F[1]),Math.ceil((c[1]+c[3]-l[1])/F[1])],j=R[0],q=R[1],et=j;et<=q;et++)for(var it=L;it<=U;it++){var dt=A.tiles[et][it];if(dt){var ft=[Math.floor(l[0]+dt.tileX*F[0]),Math.floor(l[1]+dt.tileY*F[1]),Math.ceil(F[0]),Math.ceil(F[1])];n.drawImage(dt.data,ft[0],ft[1],ft[2],ft[3])}}n.setTransform(d,f,g,v,p,y)}},{key:"render",value:function(n,i,a){var s=i.x,o=s===void 0?0:s,A=i.y,l=A===void 0?0:A,c=i.width,u=i.height,h=i.src,d=i.shadowColor,f=i.shadowBlur,g=this.imagePool.getImageSync(h,a),v=g==null?void 0:g.img,p=c,y=u;if(v){p||(p=v.width),y||(y=v.height);var x=!Re(d)&&f>0;gg(a,n,x);try{var F=a.ownerDocument.defaultView.getContextService().getDomElement(),O=F.width,L=F.height,U=n.getTransform(),R=U.a,j=U.b,q=U.c,et=U.d,it=U.e,dt=U.f,ft=je(R,q,0,0,j,et,0,0,0,0,1,0,it,dt,0,1),mt=ok([o,l,p,y],ft),Rt=sk([0,0,O,L],mt);if(!Rt)return;if(!a.ownerDocument.defaultView.getConfig().enableLargeImageOptimization){t.renderFull(n,i,a,{image:v,drawRect:[o,l,p,y]});return}var Qt=mt[2]/g.size[0];if(Qt<(g.downSamplingRate||.5)){this.renderDownSampled(n,i,a,{src:h,imageCache:g,drawRect:[o,l,p,y]});return}if(!ImagePool.isSupportTile){t.renderFull(n,i,a,{image:v,drawRect:[o,l,p,y]});return}this.renderTile(n,i,a,{src:h,imageCache:g,imageRect:mt,drawRect:Rt})}catch(yt){}}}},{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]))}}])}(Os),ex=function(r){function t(){return(0,P.Z)(this,t),(0,K.Z)(this,t,arguments)}return(0,_.Z)(t,r),(0,N.Z)(t,[{key:"render",value:function(n,i,a,s,o,A){a.getBounds();var l=i.lineWidth,c=l===void 0?1:l,u=i.textAlign,h=u===void 0?"start":u,d=i.textBaseline,f=d===void 0?"alphabetic":d,g=i.lineJoin,v=g===void 0?"miter":g,p=i.miterLimit,y=p===void 0?10:p,x=i.letterSpacing,F=x===void 0?0:x,O=i.stroke,L=i.fill,U=i.fillRule,R=i.fillOpacity,j=R===void 0?1:R,q=i.strokeOpacity,et=q===void 0?1:q,it=i.opacity,dt=it===void 0?1:it,ft=i.metrics,mt=i.x,Rt=mt===void 0?0:mt,Qt=i.y,yt=Qt===void 0?0:Qt,xt=i.dx,Dt=i.dy,Xt=i.shadowColor,ne=i.shadowBlur,le=i.textDecorationLine,ge=ft.font,xe=ft.lines,Qe=ft.height,Pe=ft.lineHeight,en=ft.lineMetrics;n.font=ge,n.lineWidth=c,n.textAlign=h==="middle"?"center":h;var mn=f;mn==="alphabetic"&&(mn="bottom"),n.lineJoin=v,Re(y)||(n.miterLimit=y);var an=yt;f==="middle"?an+=-Qe/2-Pe/2:f==="bottom"||f==="alphabetic"||f==="ideographic"?an+=-Qe:(f==="top"||f==="hanging")&&(an+=-Pe);var er=Rt+(xt||0);an+=Dt||0,xe.length===1&&(mn==="bottom"?(mn="middle",an-=.5*Qe):mn==="top"&&(mn="middle",an+=.5*Qe)),n.textBaseline=mn;var kn=!Re(Xt)&&ne>0;gg(a,n,kn);for(var Cn=0;Cn0&&arguments[0]!==void 0?arguments[0]:{};return(0,P.Z)(this,t),e=(0,K.Z)(this,t),e.name="canvas-renderer",e.options=n,e}return(0,_.Z)(t,r),(0,N.Z)(t,[{key:"init",value:function(){var n,i=(0,z.Z)({dirtyObjectNumThreshold:500,dirtyObjectRatioThreshold:.8},this.options),a=this.context.imagePool,s=new Os(a),o=(n={},(0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)((0,we.Z)(n,Kt.CIRCLE,s),Kt.ELLIPSE,s),Kt.RECT,s),Kt.IMAGE,new tx(a)),Kt.TEXT,new ex(a)),Kt.LINE,s),Kt.POLYLINE,s),Kt.POLYGON,s),Kt.PATH,s),Kt.GROUP,void 0),(0,we.Z)((0,we.Z)((0,we.Z)(n,Kt.HTML,void 0),Kt.MESH,void 0),Kt.FRAGMENT,void 0));this.context.defaultStyleRendererFactory=o,this.context.styleRendererFactory=o,this.addRenderingPlugin(new Xb(i))}},{key:"destroy",value:function(){this.removeAllRenderingPlugins(),delete this.context.defaultStyleRendererFactory,delete this.context.styleRendererFactory}}])}(ds),lz=Object.freeze({__proto__:null,CircleRenderer:Os,DefaultRenderer:Os,EllipseRenderer:Os,ImageRenderer:tx,LineRenderer:Os,PathRenderer:Os,Plugin:nx,PolygonRenderer:Os,PolylineRenderer:Os,RectRenderer:Os,TextRenderer:ex}),Ak=Ot(),lk=Ot(),ck=Ot(),uk=$t(),rx=function(){function r(){var t=this;(0,P.Z)(this,r),this.isHit=function(e,n,i,a){var s=t.context.pointInPathPickerFactory[e.nodeName];if(s){var o=on(uk,i),A=me(lk,ve(ck,n[0],n[1],0),o);if(s(e,new ai(A[0],A[1]),a,t.isPointInPath,t.context,t.runtime))return!0}return!1},this.isPointInPath=function(e,n){var i=t.runtime.offscreenCanvasCreator.getOrCreateContext(t.context.config.offscreenCanvas),a=t.context.pathGeneratorFactory[e.nodeName];return a&&(i.beginPath(),a(i,e.parsedStyle),i.closePath()),i.isPointInPath(n.x,n.y)}}return(0,N.Z)(r,[{key:"apply",value:function(e,n){var i,a=this,s=e.renderingService,o=e.renderingContext;this.context=e,this.runtime=n;var A=(i=o.root)===null||i===void 0?void 0:i.ownerDocument;s.hooks.pick.tapPromise(r.tag,function(){var l=(0,Xa.Z)((0,ii.Z)().mark(function c(u){return(0,ii.Z)().wrap(function(h){for(;;)switch(h.prev=h.next){case 0:return h.abrupt("return",a.pick(A,u));case 1:case"end":return h.stop()}},c)}));return function(c){return l.apply(this,arguments)}}()),s.hooks.pickSync.tap(r.tag,function(l){return a.pick(A,l)})}},{key:"pick",value:function(e,n){var i=n.topmost,a=n.position,s=a.x,o=a.y,A=ve(Ak,s,o,0),l=e.elementsFromBBox(A[0],A[1],A[0],A[1]),c=[],u=(0,Ws.Z)(l),h;try{for(u.s();!(h=u.n()).done;){var d=h.value,f=d.getWorldTransform(),g=this.isHit(d,A,f,!1);if(g){var v=NE(d);if(v){var p=v.parsedStyle.clipPath,y=this.isHit(p,A,p.getWorldTransform(),!0);if(y){if(i)return n.picked=[d],n;c.push(d)}}else{if(i)return n.picked=[d],n;c.push(d)}}}}catch(x){u.e(x)}finally{u.f()}return n.picked=c,n}}])}();rx.tag="CanvasPicker";function hk(r,t,e){var n=r.parsedStyle,i=n.cx,a=i===void 0?0:i,s=n.cy,o=s===void 0?0:s,A=n.r,l=n.fill,c=n.stroke,u=n.lineWidth,h=u===void 0?1:u,d=n.increasedLineWidthForHitTesting,f=d===void 0?0:d,g=n.pointerEvents,v=g===void 0?"auto":g,p=(h+f)/2,y=vi(a,o,t.x,t.y),x=cl(v,l,c),F=(0,H.Z)(x,2),O=F[0],L=F[1];return O&&L||e?y<=A+p:O?y<=A:L?y>=A-p&&y<=A+p:!1}function vg(r,t,e,n){return r/(e*e)+t/(n*n)}function dk(r,t,e){var n=r.parsedStyle,i=n.cx,a=i===void 0?0:i,s=n.cy,o=s===void 0?0:s,A=n.rx,l=n.ry,c=n.fill,u=n.stroke,h=n.lineWidth,d=h===void 0?1:h,f=n.increasedLineWidthForHitTesting,g=f===void 0?0:f,v=n.pointerEvents,p=v===void 0?"auto":v,y=t.x,x=t.y,F=cl(p,c,u),O=(0,H.Z)(F,2),L=O[0],U=O[1],R=(d+g)/2,j=(y-a)*(y-a),q=(x-o)*(x-o);return L&&U||e?vg(j,q,A+R,l+R)<=1:L?vg(j,q,A,l)<=1:U?vg(j,q,A-R,l-R)>=1&&vg(j,q,A+R,l+R)<=1:!1}function Ml(r,t,e,n,i,a){return i>=r&&i<=r+e&&a>=t&&a<=t+n}function fk(r,t,e,n,i,a,s){var o=i/2;return Ml(r-o,t-o,e,i,a,s)||Ml(r+e-o,t-o,i,n,a,s)||Ml(r+o,t+n-o,e,i,a,s)||Ml(r-o,t+o,i,n,a,s)}function pg(r,t,e,n,i,a,s,o){var A=(Math.atan2(o-t,s-r)+Math.PI*2)%(Math.PI*2),l={x:r+e*Math.cos(A),y:t+e*Math.sin(A)};return vi(l.x,l.y,s,o)<=a/2}function SA(r,t,e,n,i,a,s){var o=Math.min(r,e),A=Math.max(r,e),l=Math.min(t,n),c=Math.max(t,n),u=i/2;return a>=o-u&&a<=A+u&&s>=l-u&&s<=c+u?tl(r,t,e,n,a,s)<=i/2:!1}function ix(r,t,e,n,i){var a=r.length;if(a<2)return!1;for(var s=0;s0!=By(o[1]-e)>0&&By(t-(e-s[1])*(s[0]-o[0])/(s[1]-o[1])-s[0])<0&&(n=!n)}return n}function sx(r,t,e){for(var n=!1,i=0;i=i.min[0]&&t.y>=i.min[1]&&t.x<=i.max[0]&&t.y<=i.max[1]}var ox=function(r){function t(){var e;(0,P.Z)(this,t);for(var n=arguments.length,i=new Array(n),a=0;ao?s:o,l=s>o?1:s/o,c=s>o?o/s:1;r.save(),r.scale(l,c),r.arc(n,a,A,0,Math.PI*2)}}function Fk(r,t){var e=t.x1,n=t.y1,i=t.x2,a=t.y2,s=t.markerStart,o=t.markerEnd,A=t.markerStartOffset,l=t.markerEndOffset,c=0,u=0,h=0,d=0,f=0,g,v;s&&Ln(s)&&A&&(g=i-e,v=a-n,f=Math.atan2(v,g),c=Math.cos(f)*(A||0),u=Math.sin(f)*(A||0)),o&&Ln(o)&&l&&(g=e-i,v=n-a,f=Math.atan2(v,g),h=Math.cos(f)*(l||0),d=Math.sin(f)*(l||0)),r.moveTo(e+c,n+u),r.lineTo(i+h,a+d)}function Tk(r,t){var e=t.markerStart,n=t.markerEnd,i=t.markerStartOffset,a=t.markerEndOffset,s=t.d,o=s.absolutePath,A=s.segments,l=0,c=0,u=0,h=0,d=0,f,g;if(e&&Ln(e)&&i){var v=e.parentNode.getStartTangent(),p=(0,H.Z)(v,2),y=p[0],x=p[1];f=y[0]-x[0],g=y[1]-x[1],d=Math.atan2(g,f),l=Math.cos(d)*(i||0),c=Math.sin(d)*(i||0)}if(n&&Ln(n)&&a){var F=n.parentNode.getEndTangent(),O=(0,H.Z)(F,2),L=O[0],U=O[1];f=L[0]-U[0],g=L[1]-U[1],d=Math.atan2(g,f),u=Math.cos(d)*(a||0),h=Math.sin(d)*(a||0)}for(var R=0;RQe?xe:Qe,kn=xe>Qe?1:xe/Qe,Cn=xe>Qe?Qe/xe:1;r.translate(le,ge),r.rotate(mn),r.scale(kn,Cn),r.arc(0,0,er,Pe,en,!!(1-an)),r.scale(1/kn,1/Cn),r.rotate(-mn),r.translate(-le,-ge)}dt&&r.lineTo(j[6]+u,j[7]+h);break}case"Z":r.closePath();break}}}function Ok(r,t){var e=t.markerStart,n=t.markerEnd,i=t.markerStartOffset,a=t.markerEndOffset,s=t.points.points,o=s.length,A=s[0][0],l=s[0][1],c=s[o-1][0],u=s[o-1][1],h=0,d=0,f=0,g=0,v=0,p,y;e&&Ln(e)&&i&&(p=s[1][0]-s[0][0],y=s[1][1]-s[0][1],v=Math.atan2(y,p),h=Math.cos(v)*(i||0),d=Math.sin(v)*(i||0)),n&&Ln(n)&&a&&(p=s[o-1][0]-s[0][0],y=s[o-1][1]-s[0][1],v=Math.atan2(y,p),f=Math.cos(v)*(a||0),g=Math.sin(v)*(a||0)),r.moveTo(A+(h||f),l+(d||g));for(var x=1;x0?1:-1,d=A>0?1:-1,f=h+d===0,g=s.map(function(O){return dr(O,0,Math.min(Math.abs(l)/2,Math.abs(c)/2))}),v=(0,H.Z)(g,4),p=v[0],y=v[1],x=v[2],F=v[3];r.moveTo(h*p+n,a),r.lineTo(l-h*y+n,a),y!==0&&r.arc(l-h*y+n,d*y+a,y,-d*Math.PI/2,h>0?0:Math.PI,f),r.lineTo(l+n,c-d*x+a),x!==0&&r.arc(l-h*x+n,c-d*x+a,x,h>0?0:Math.PI,d>0?Math.PI/2:1.5*Math.PI,f),r.lineTo(h*F+n,c+a),F!==0&&r.arc(h*F+n,c-d*F+a,F,d>0?Math.PI/2:-Math.PI/2,h>0?Math.PI:0,f),r.lineTo(n,d*p+a),p!==0&&r.arc(h*p+n,d*p+a,p,h>0?Math.PI:0,d>0?Math.PI*1.5:Math.PI/2,f)}}var Ax=function(r){function t(){var e;(0,P.Z)(this,t);for(var n=arguments.length,i=new Array(n),a=0;a0&&o[0]!==void 0?o[0]:{},a=i.type,s=i.encoderOptions,A.abrupt("return",this.context.canvas.toDataURL(a,s));case 1:case"end":return A.stop()}},n,this)}));function e(){return t.apply(this,arguments)}return e}()}])}(),kk=function(r){function t(){var e;(0,P.Z)(this,t);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(e,i).forEach(s=>{const o=this.bootstrapEvent(this.rootPointerEvent,s,i,e);bh(n.context.eventService,"mappingTable.pointerupoutside",[]),n.context.eventService.mapEvent(o)})}}get eventService(){return this.context.canvas.context.eventService}get events(){return[Yt.CLICK,Yt.POINTER_DOWN,Yt.POINTER_MOVE,Yt.POINTER_UP,Yt.POINTER_OVER,Yt.POINTER_LEAVE]}getDomElement(){return this.getShape("key").getDomElement()}render(t=this.parsedAttributes,e=this){this.drawKeyShape(t,e),this.drawPortShapes(t,e)}getKeyStyle(t){const e=Fl(t,["dx","dy","innerHTML","pointerEvents","cursor"]),{dx:n=0,dy:i=0}=e,a=Rk(e,["dx","dy"]),[s,o]=this.getSize(t);return Object.assign(Object.assign({x:n,y:i},a),{width:s,height:o})}drawKeyShape(t,e){const n=this.getKeyStyle(t),{x:i,y:a,width:s=0,height:o=0}=n,A=this.upsert("key-container",Ci,{x:i,y:a,width:s,height:o,opacity:0},e);return this.upsert("key",gl,n,A)}connectedCallback(){if(!(this.context.canvas.getRenderer("main")instanceof Mh))return;const n=this.getDomElement();this.events.forEach(i=>{n.addEventListener(i,this.forwardEvents)})}attributeChangedCallback(t,e,n){t==="zIndex"&&e!==n&&(this.getDomElement().style.zIndex=n)}destroy(){const t=this.getDomElement();this.events.forEach(e=>{t.removeEventListener(e,this.forwardEvents)}),super.destroy()}normalizeToPointerEvent(t,e){const n=[];if(e.isTouchEvent(t))for(let i=0;ithis.context.element.getElement(s)).filter(Boolean);if(i.length===0){const s=new Zn,{x:o=0,y:A=0,size:l}=t,[c,u]=Da(l);return s.setMinMax([o-c/2,A-u/2,0],[o+c/2,A+u/2,0]),s}const a=vh(i.map(s=>s.getBounds()));return n?EA(a,n):a}drawCollapsedMarkerShape(t,e){const n=this.getCollapsedMarkerStyle(t);this.upsert("collapsed-marker",Zb,n,e),yy(this)}getCollapsedMarkerStyle(t){if(!t.collapsed||!t.collapsedMarker)return!1;const e=Ir(this.getGraphicStyle(t),"collapsedMarker"),{type:n}=e,i=ux(e,["type"]),a=this.getShape("key"),[s,o]=Uo(a.getLocalBounds(),"center"),A=Object.assign(Object.assign({},i),{x:s,y:o});if(n){const l=this.getCollapsedMarkerText(n,t);Object.assign(A,{text:l})}return A}getCollapsedMarkerText(t,e){const{childrenData:n=[]}=e,{model:i}=this.context;return t==="descendant-count"?i.getDescendantsData(this.id).length.toString():t==="child-count"?n.length.toString():t==="node-count"?i.getDescendantsData(this.id).filter(a=>i.getElementType(Nt(a))==="node").length.toString():Vt(t)?t(n):""}getComboPosition(t){const{x:e=0,y:n=0,collapsed:i,childrenData:a=[]}=t;if(a.length===0)return[+e,+n,0];if(i){const{model:s}=this.context,o=s.getDescendantsData(this.id).filter(A=>!s.isCombo(Nt(A)));if(o.length>0&&o.some(pL)){const A=o.reduce((l,c)=>$e(l,li(c)),[0,0,0]);return Ms(A,o.length)}return[+e,+n,0]}return this.getContentBBox(t).center}getComboStyle(t){const[e,n]=this.getComboPosition(t);return{x:e,y:n,transform:[["translate",e,n]]}}updateComboPosition(t){const e=this.getComboStyle(t);Object.assign(this.style,e);const{x:n,y:i}=e;this.context.model.syncNodeLikeDatum({id:this.id,style:{x:n,y:i}}),wy(this)}render(t,e=this){super.render(t,e),this.drawCollapsedMarkerShape(t,e)}update(t={}){super.update(t),this.updateComboPosition(this.parsedAttributes)}onframe(){super.onframe(),this.attributes.collapsed||this.updateComboPosition(this.parsedAttributes),this.drawKeyShape(this.parsedAttributes,this)}animate(t,e){const n=super.animate(this.attributes.collapsed?t:t.map(i=>{var{x:a,y:s,z:o,transform:A}=i,l=ux(i,["x","y","z","transform"]);return l}),e);return n&&new Proxy(n,{set:(i,a,s)=>(a==="currentTime"&&Promise.resolve().then(()=>this.onframe()),Reflect.set(i,a,s))})}}zc.defaultStyleProps={childrenNode:[],droppable:!0,draggable:!0,collapsed:!1,collapsedSize:32,collapsedMarker:!0,collapsedMarkerZIndex:1,collapsedMarkerFontSize:12,collapsedMarkerTextAlign:"center",collapsedMarkerTextBaseline:"middle",collapsedMarkerType:"child-count"};class _k extends zc{constructor(t){super(t)}drawKeyShape(t,e){return this.upsert("key",eo,this.getKeyStyle(t),e)}getKeyStyle(t){const{collapsed:e}=t,n=super.getKeyStyle(t),[i]=this.getKeySize(t);return Object.assign(Object.assign(Object.assign({},n),e&&Ir(n,"collapsed")),{r:i/2})}getCollapsedKeySize(t){const[e,n]=Da(t.collapsedSize),i=Math.max(e,n)/2;return[i*2,i*2,0]}getExpandedKeySize(t){const e=this.getContentBBox(t),[n,i]=yA(e),a=Math.sqrt(Math.pow(n,2)+Math.pow(i,2))/2;return[a*2,a*2,0]}getIntersectPoint(t,e=!1){const n=this.getShape("key").getBounds();return rg(t,n,e)}}class Hk extends zc{constructor(t){super(t)}drawKeyShape(t,e){return this.upsert("key",Ci,this.getKeyStyle(t),e)}getKeyStyle(t){const e=super.getKeyStyle(t),[n,i]=this.getKeySize(t);return Object.assign(Object.assign(Object.assign({},e),t.collapsed&&Ir(e,"collapsed")),{width:n,height:i,x:-n/2,y:-i/2})}}var Gk=function(r,t){if(!dh(r))return r;for(var e=[],n=0;n-1:!1},Vk=Kk,Wk=function(r,t){return t===void 0&&(t=[]),zk(r,function(e){return!Vk(t,e)})},jk=Wk;const Zk={padding:10};function hx(r,t,e,n,i,a){const{padding:s}=Object.assign(Zk,a),o=wA(e,s),A=wA(n,s),l=[r,...i,t];let c=null;const u=[];for(let h=0,d=l.length;ha?"N":"S":n===a?e>i?"W":"E":null}function by(r,t){return t==="N"||t==="S"?ao(r):io(r)}function fx(r,t,e){const n=[r[0],t[1]],i=[t[0],r[1]],a=ra(r,n),s=ra(r,i),o=e?Yk[e]:null,A=a===e||a!==o&&s!==e?n:i;return{points:[A],direction:ra(A,t)}}function Eg(r,t,e){if(_f(r,e)){const n=Fh(r,t,e);return{points:[n],direction:ra(n,t)}}else{const n=wl(r,e),a=["left","right"].includes(ph(r,e))?[t[0],n[1]]:[n[0],t[1]];return{points:[a],direction:ra(a,t)}}}function gx(r,t,e,n){const i=_f(t,e)?t:wl(t,e),a=[[i[0],r[1]],[r[0],i[1]]],s=a.filter(A=>xI(A,e)&&!QB(A,e,!0)),o=s.filter(A=>ra(A,r)!==n);if(o.length>0){const A=o.find(l=>ra(r,l)===n)||o[0];return{points:[A],direction:ra(A,t)}}else{const A=jk(a,s)[0],l=xA(t,A,by(e,n)/2);return{points:[Fh(l,r,e),l],direction:ra(l,t)}}}function Xk(r,t,e,n){let i=Eg(r,t,e);const a=wh(i.points[0]);if(xs(a,n)){i=Eg(t,r,n);const s=wh(i.points[0]);if(xs(s,e)){const o=xA(r,a,by(e,ra(r,a))/2),A=xA(t,s,by(n,ra(t,s))/2),l=[(o[0]+A[0])/2,(o[1]+A[1])/2],c=Eg(r,l,e),u=gx(l,t,n,c.direction);i.points=[c.points[0],u.points[0]],i.direction=u.direction}}return i}function xy(r,t,e,n,i){const s=vh([e,n]),o=cr(t,s.center)>cr(r,s.center),[A,l]=o?[t,r]:[r,t],c=ao(s)+io(s);let u;if(i){const f=[A[0]+c*Math.cos(dx[i]),A[1]+c*Math.sin(dx[i])];u=xA(wl(f,s),f,.01)}else u=xA(wl(A,s),A,-.01);let h=Fh(u,l,s),d=[Eh(u,2),Eh(h,2)];if(Pr(Eh(u),Eh(h))){const f=ly(tr(u,A),[1,0,0])+Math.PI/2;h=[l[0]+c*Math.cos(f),l[1]+c*Math.sin(f),0],h=Eh(xA(wl(h,s),l,-.01),2);const g=Fh(u,h,s);d=[u,g,h]}return{points:o?d.reverse():d,direction:ra(o?u:h,t)}}function Fh(r,t,e){let n=[r[0],t[1]];return xs(n,e)&&(n=[t[0],r[1]]),n}function vx(r,t,e,n,i){let A=typeof t=="number"?t:.5;t==="start"&&(A=0),t==="end"&&(A=.99);const l=Mi(r.getPoint(A)),c=Mi(r.getPoint(A+.01));let u=t==="start"?"left":t==="end"?"right":"center";if(Tb(l,c)||!e){const[p,y]=px(r,A,n,i);return{transform:[["translate",p,y]],textAlign:u}}let h=Math.atan2(c[1]-l[1],c[0]-l[0]);c[0]{const c=s[l-1]||i,u=s[l+1]||a;if(!Ob(c,A,u)&&t){const[h,d]=eQ(c,A,u,t);o.push(["L",h[0],h[1]],["Q",A[0],A[1],d[0],d[1]],["L",d[0],d[1]])}else o.push(["L",A[0],A[1]])}),o.push(["L",a[0],a[1]]),e&&o.push(["Z"]),o}function eQ(r,t,e,n){const i=eg(r,t),a=eg(e,t),s=Math.min(n,Math.min(i,a)/2),o=[t[0]-s/i*(t[0]-r[0]),t[1]-s/i*(t[1]-r[1])],A=[t[0]-s/a*(t[0]-e[0]),t[1]-s/a*(t[1]-e[1])];return[o,A]}const nQ=r=>{const t=Math.PI/2,e=ao(r)/2,n=io(r)/2,i=Math.atan2(e,n)/2,a=Math.atan2(n,e)/2;return{top:[-t-a,-t+a],"top-right":[-t+a,-i],"right-top":[-t+a,-i],right:[-i,i],"bottom-right":[i,t-a],"right-bottom":[i,t-a],bottom:[t-a,t+a],"bottom-left":[t+a,Math.PI-i],"left-bottom":[t+a,Math.PI-i],left:[Math.PI-i,Math.PI+i],"top-left":[Math.PI+i,-t-a],"left-top":[Math.PI+i,-t-a]}};function yx(r,t,e,n,i){const a=wA(r),s=r.getCenter();let o=n&&FA(n),A=i&&FA(i);if(!o||!A){const l=nQ(a),c=l[t][0],u=l[t][1],[h,d]=yA(a),f=Math.max(h,d),g=$e(s,[f*Math.cos(c),f*Math.sin(c),0]),v=$e(s,[f*Math.cos(u),f*Math.sin(u),0]);o=Iy(r,g),A=Iy(r,v),e||([o,A]=[A,o])}return[o,A]}function rQ(r,t,e,n,i,a){const s=r.getPorts()[i||a],o=r.getPorts()[a||i];let[A,l]=yx(r,t,e,s,o);const c=iQ(r,A,l,n);return s&&(A=Oh(s,c[0])),o&&(l=Oh(o,c.at(-1))),mx(A,l,c)}function iQ(r,t,e,n){const i=r.getCenter();if(Pr(t,e)){const a=tr(t,i),s=[n*Math.sign(a[0])||n/2,n*Math.sign(a[1])||-n/2,0];return[$e(t,s),$e(e,Ss(s,[1,-1,1]))]}return[xA(i,t,cr(i,t)+n),xA(i,e,cr(i,e)+n)]}function aQ(r,t,e,n,i,a,s){const o=Oy(r),A=o[a||s],l=o[s||a];let[c,u]=yx(r,e,n,A,l);const h=sQ(r,c,u,i);return A&&(c=Oh(A,h[0])),l&&(u=Oh(l,h.at(-1))),Sy([c,...h,u],t)}function sQ(r,t,e,n){const i=[],a=wA(r);if(Pr(t,e))switch(ph(t,a)){case"left":i.push([t[0]-n,t[1]]),i.push([t[0]-n,t[1]+n]),i.push([t[0],t[1]+n]);break;case"right":i.push([t[0]+n,t[1]]),i.push([t[0]+n,t[1]+n]),i.push([t[0],t[1]+n]);break;case"top":i.push([t[0],t[1]-n]),i.push([t[0]+n,t[1]-n]),i.push([t[0]+n,t[1]]);break;case"bottom":i.push([t[0],t[1]+n]),i.push([t[0]+n,t[1]+n]),i.push([t[0]+n,t[1]]);break}else{const s=ph(t,a),o=ph(e,a);if(s===o){const A=s;let l,c;switch(A){case"left":l=Math.min(t[0],e[0])-n,i.push([l,t[1]]),i.push([l,e[1]]);break;case"right":l=Math.max(t[0],e[0])+n,i.push([l,t[1]]),i.push([l,e[1]]);break;case"top":c=Math.min(t[1],e[1])-n,i.push([t[0],c]),i.push([e[0],c]);break;case"bottom":c=Math.max(t[1],e[1])+n,i.push([t[0],c]),i.push([e[0],c]);break}}else{const A=(h,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]})[h],l=A(s,t),c=A(o,e),u=Fh(l,c,a);i.push(l,u,c)}}return i}function My(r,t){const e=new Set,n=new Set,i=new Set;return r.forEach(a=>{t(a).forEach(o=>{e.add(o),r.includes(o.source)&&r.includes(o.target)?n.add(o):i.add(o)})}),{edges:Array.from(e),internal:Array.from(n),external:Array.from(i)}}function wx(r,t){const e=[];let n=r;for(;n;){e.push(n);const i=t(Nt(n));if(i)n=i;else break}if(e.some(i=>{var a;return(a=i.style)===null||a===void 0?void 0:a.collapsed})){const i=e.reverse().findIndex(pa);return e[i]||e.at(-1)}return r}function oQ(r,t){return t||(r<4?10:r===4?12:r*2.5)}const AQ=(r,t)=>{const e=Math.max(r,t)/2;return[["M",-r/2,0],["A",e,e,0,1,0,2*e-r/2,0],["A",e,e,0,1,0,-r/2,0],["Z"]]},Ex=(r,t)=>[["M",-r/2,0],["L",r/2,-t/2],["L",r/2,t/2],["Z"]],lQ=(r,t)=>[["M",-r/2,0],["L",0,-t/2],["L",r/2,0],["L",0,t/2],["Z"]],cQ=(r,t)=>[["M",-r/2,0],["L",r/2,-t/2],["L",4*r/5-r/2,0],["L",r/2,t/2],["Z"]],uQ=(r,t)=>[["M",-r/2,-t/2],["L",r/2,-t/2],["L",r/2,t/2],["L",-r/2,t/2],["Z"]],hQ=(r,t)=>{const e=r/2,n=r/7,i=r-n;return[["M",-e,0],["L",0,-t/2],["L",0,t/2],["Z"],["M",i-e,-t/2],["L",i+n-e,-t/2],["L",i+n-e,t/2],["L",i-e,t/2],["Z"]]},dQ=(r,t)=>[["M",r/2,-t/2],["L",-r/2,0],["L",r/2,0],["L",-r/2,0],["L",r/2,t/2]];var Bg=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i{l in i&&(A[l]=i[l])}),A}getLoopPath(t){const{sourcePort:e,targetPort:n}=t,i=this.sourceNode,a=wA(i),s=Math.max(io(a),ao(a)),{placement:o,clockwise:A,dist:l=s}=Ir(this.getGraphicStyle(t),"loop");return rQ(i,o,A,l,e,n)}getEndpoints(t,e=!0,n=[]){const{sourcePort:i,targetPort:a}=t,{sourceNode:s,targetNode:o}=this,[A,l]=CQ(s,o,i,a);if(!e){const d=A?FA(A):s.getCenter(),f=l?FA(l):o.getCenter();return[d,f]}const c=typeof n=="function"?n():n,u=Tx(A||s,c[0]||l||o),h=Tx(l||o,c[c.length-1]||A||s);return[u,h]}getHaloStyle(t){if(t.halo===!1)return!1;const e=this.getKeyStyle(t),n=Ir(this.getGraphicStyle(t),"halo");return Object.assign(Object.assign({},e),n)}getLabelStyle(t){if(t.label===!1||!t.labelText)return!1;const e=Ir(this.getGraphicStyle(t),"label"),{placement:n,offsetX:i,offsetY:a,autoRotate:s,maxWidth:o}=e,A=Bg(e,["placement","offsetX","offsetY","autoRotate","maxWidth"]),l=vx(this.shapeMap.key,n,s,i,a),c=this.shapeMap.key.getLocalBounds(),u=LL([c.min,c.max],o);return Object.assign({wordWrapWidth:u},l,A)}getBadgeStyle(t){if(t.badge===!1||!t.badgeText)return!1;const e=Ir(t,"badge"),{offsetX:n,offsetY:i,placement:a}=e,s=Bg(e,["offsetX","offsetY","placement"]);return Object.assign(s,Jk(this.shapeMap,a,t.labelPlacement,n,i))}drawArrow(t,e){var n;const i=e==="start",s=t[e==="start"?"startArrow":"endArrow"],o=this.shapeMap.key;if(s){const A=this.getArrowStyle(t,i),[l,c,u]=i?["markerStart","markerStartOffset","startArrowOffset"]:["markerEnd","markerEndOffset","endArrowOffset"],h=o.parsedStyle[l];if(h)h.attr(A);else{const d=A.src?Ah:Pi,f=new d({style:A});o.style[l]=f}o.style[c]=t[u]||A.width/2+ +A.lineWidth}else{const A=i?"markerStart":"markerEnd";(n=o.style[A])===null||n===void 0||n.destroy(),o.style[A]=null}}getArrowStyle(t,e){const n=this.getShape("key").attributes,i=e?"startArrow":"endArrow",a=Ir(this.getGraphicStyle(t),i),{size:s,type:o}=a,A=Bg(a,["size","type"]),[l,c]=Da(oQ(n.lineWidth,s)),h=(Vt(o)?o:W[o]||Ex)(l,c);return Object.assign(Fl(n,["stroke","strokeOpacity","fillOpacity"]),{width:l,height:c},Object.assign({},h&&{d:h,fill:o==="simple"?"":n.stroke}),A)}drawLabelShape(t,e){const n=this.getLabelStyle(t);this.upsert("label",Ao,n,e)}drawHaloShape(t,e){const n=this.getHaloStyle(t);this.upsert("halo",Pi,n,e)}drawBadgeShape(t,e){const n=this.getBadgeStyle(t);this.upsert("badge",Hc,n,e)}drawSourceArrow(t){this.drawArrow(t,"start")}drawTargetArrow(t){this.drawArrow(t,"end")}drawKeyShape(t,e){const n=this.getKeyStyle(t);return this.upsert("key",Pi,n,e)}render(t=this.parsedAttributes,e=this){this.drawKeyShape(t,e),this.getShape("key")&&(this.drawSourceArrow(t),this.drawTargetArrow(t),this.drawLabelShape(t,e),this.drawHaloShape(t,e),this.drawBadgeShape(t,e))}onframe(){this.drawKeyShape(this.parsedAttributes,this),this.drawSourceArrow(this.parsedAttributes),this.drawTargetArrow(this.parsedAttributes),this.drawHaloShape(this.parsedAttributes,this),this.drawLabelShape(this.parsedAttributes,this),this.drawBadgeShape(this.parsedAttributes,this)}animate(t,e){const n=super.animate(t,e);return n&&new Proxy(n,{set:(i,a,s)=>(a==="currentTime"&&Promise.resolve().then(()=>this.onframe()),Reflect.set(i,a,s))})}}MA.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 Tl extends MA{constructor(t){super(mi({style:Tl.defaultStyleProps},t))}getKeyPath(t){const[e,n]=this.getEndpoints(t),{controlPoints:i,curvePosition:a,curveOffset:s}=t,o=this.getControlPoints(e,n,$k(a),qk(s),i);return mx(e,n,o)}getControlPoints(t,e,n,i,a){return(a==null?void 0:a.length)===2?a:[Cy(t,e,n[0],i[0]),Cy(t,e,n[1],i[1])]}}Tl.defaultStyleProps={curvePosition:.5,curveOffset:20};class bg extends Tl{constructor(t){super(mi({style:bg.defaultStyleProps},t))}getControlPoints(t,e,n,i){const a=e[0]-t[0];return[[t[0]+a*n[0]+i[0],t[1]],[e[0]-a*n[1]+i[1],e[1]]]}}bg.defaultStyleProps={curvePosition:[.5,.5],curveOffset:[0,0]};class xg extends Tl{constructor(t){super(mi({style:xg.defaultStyleProps},t))}get ref(){return this.context.model.getRootsData()[0]}getEndpoints(t){if(this.sourceNode.id===this.ref.id)return super.getEndpoints(t);const e=li(this.ref),n=this.sourceNode.getIntersectPoint(e,!0),i=this.targetNode.getIntersectPoint(e);return[n,i]}toRadialCoordinate(t){const e=li(this.ref),n=cr(t,e),i=xb(tr(t,e));return[n,i]}getControlPoints(t,e,n,i){const[a,s]=this.toRadialCoordinate(t),[o]=this.toRadialCoordinate(e),A=o-a;return[[t[0]+(A*n[0]+i[0])*Math.cos(s),t[1]+(A*n[0]+i[0])*Math.sin(s)],[e[0]-(A*n[1]-i[0])*Math.cos(s),e[1]-(A*n[1]-i[0])*Math.sin(s)]]}}xg.defaultStyleProps={curvePosition:.5,curveOffset:20};class Cg extends Tl{constructor(t){super(mi({style:Cg.defaultStyleProps},t))}getControlPoints(t,e,n,i){const a=e[1]-t[1];return[[t[0],t[1]+a*n[0]+i[0]],[e[0],e[1]-a*n[1]+i[1]]]}}Cg.defaultStyleProps={curvePosition:[.5,.5],curveOffset:[0,0]};class Sg extends MA{constructor(t){super(mi({style:Sg.defaultStyleProps},t))}getKeyPath(t){const[e,n]=this.getEndpoints(t);return[["M",e[0],e[1]],["L",n[0],n[1]]]}}Sg.defaultStyleProps={};const fQ={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:eg},Do=r=>`${Math.round(r[0])}|||${Math.round(r[1])}`;function Ol(r,t){const e=n=>Math.round(n/t);return ye(r)?e(r):r.map(e)}function gQ(r,t){const e=Math.abs(r-t);return e>Math.PI?2*Math.PI-e:e}function Bx(r,t){const e=t[0]-r[0],n=t[1]-r[1];return!e&&!n?0:Math.atan2(n,e)}function bx(r,t,e,n){const i=Bx(r,t),a=e[Do(r)],o=Bx(a||n,r);return gQ(o,i)}const vQ=(r,t)=>{const{offset:e,gridSize:n}=t,i={};return r.forEach(a=>{if(!a||a.destroyed||!a.isVisible())return;const s=EA(a.getRenderBounds(),e);for(let o=Ol(s.min[0],n);o<=Ol(s.max[0],n);o+=1)for(let A=Ol(s.min[1],n);A<=Ol(s.max[1],n);A+=1)i[`${o}|||${A}`]=!0}),i};function xx(r,t,e){return Math.min(...t.map(n=>e(r,n)))}function pQ(r,t,e){let n=r[0],i=e(r[0],t);for(let a=0;a{if(!t)return[r];const{directionMap:i,offset:a}=n,s=EA(t.getRenderBounds(),a),o=Object.keys(i).reduce((A,l)=>{if(e.includes(l)){const c=i[l],[u,h]=yA(s),d=[r[0]+c.stepX*u,r[1]+c.stepY*h],f=MI(s);for(let g=0;gOl(A,n.gridSize))},mQ=(r,t,e,n,i,a,s)=>{const o=[];let A=[a[0]===n[0]?n[0]:r[0]*s,a[1]===n[1]?n[1]:r[1]*s];o.unshift(A);let l=r,c=t[Do(l)];for(;c;){const d=c,f=l;bx(d,f,t,e)&&(A=[d[0]===f[0]?A[0]:d[0]*s,d[1]===f[1]?A[1]:d[1]*s],o.unshift(A)),c=t[Do(d)],l=d}const u=i.map(d=>[d[0]*s,d[1]*s]),h=pQ(u,A,eg);return o.unshift(h),o};function yQ(r,t,e,n){const i=bl(r.getCenter()),a=bl(t.getCenter()),s=Object.assign(fQ,n),{gridSize:o}=s,A=s.enableObstacleAvoidance?e:[r,t],l=vQ(A,s),c=Ol(i,o),u=Ol(a,o),h=Cx(i,r,s.startDirections,s),d=Cx(a,t,s.endDirections,s);h.forEach(R=>delete l[Do(R)]),d.forEach(R=>delete l[Do(R)]);const f={},g={},v={},p={},y={},x=new wQ;for(let R=0;RDo(R));let O=s.maximumLoops,L,U=1/0;for(const[R,j]of Object.entries(f))y[R]<=U&&(U=y[R],L=j);for(;Object.keys(f).length>0&&O>0;){const R=x.minId(!1);if(R)L=f[R];else break;const j=Do(L);if(F.includes(j))return mQ(L,v,c,a,h,u,o);delete f[j],x.remove(j),g[j]=!0;for(const q of Object.values(s.directionMap)){const et=$e(L,[q.stepX,q.stepY]),it=Do(et);if(g[it])continue;const dt=bx(L,et,v,c);if(dt>s.maxAllowedDirectionChange||l[it])continue;f[it]||(f[it]=et);const ft=s.penalties[dt],mt=s.distFunc(L,et)+(isNaN(ft)?o:ft),Rt=p[j]+mt,Qt=p[it];Qt&&Rt>=Qt||(v[it]=L,p[it]=Rt,y[it]=Rt+xx(et,d,s.distFunc),x.add({id:it,value:y[it]}))}O-=1}return[]}class wQ{constructor(){this.arr=[],this.map={},this.arr=[],this.map={}}_innerAdd(t,e){let n=0,i=e-1;for(;i-n>1;){const a=Math.floor((n+i)/2);if(this.arr[a].value>t.value)i=a;else if(this.arr[a].value=0;e--)this.map[this.arr[e].id]?t=this.arr[e].id:this.arr.splice(e,1);return t}_findFirstId(){for(;this.arr.length;){const t=this.arr.shift();if(this.map[t.id])return t.id}}minId(t){return t?this._clearAndGetMinId():this._findFirstId()}}class Mg extends MA{constructor(t){super(mi({style:Mg.defaultStyleProps},t))}getControlPoints(t){const{router:e}=t,{sourceNode:n,targetNode:i}=this,[a,s]=this.getEndpoints(t,!1);let o=[];if(!e)o=t.controlPoints;else if(e.type==="shortest-path"){const A=this.context.element.getNodes();o=yQ(n,i,A,e),o.length||(o=hx(a,s,n,i,t.controlPoints,{padding:e.offset}))}else e.type==="orth"&&(o=hx(a,s,n,i,t.controlPoints,e));return o}getPoints(t){const e=this.getControlPoints(t),[n,i]=this.getEndpoints(t,!0,e);return[n,...e,i]}getKeyPath(t){const e=this.getPoints(t);return Sy(e,t.radius)}getLoopPath(t){const{sourcePort:e,targetPort:n,radius:i}=t,a=this.sourceNode,s=wA(a),o=Math.max(io(s),ao(s))/4,{placement:A,clockwise:l,dist:c=o}=Ir(this.getGraphicStyle(t),"loop");return aQ(a,i,A,l,c,e,n)}}Mg.defaultStyleProps={radius:0,controlPoints:[],router:!1};class Fg extends MA{constructor(t){super(mi({style:Fg.defaultStyleProps},t))}getKeyPath(t){const{curvePosition:e,curveOffset:n}=t,[i,a]=this.getEndpoints(t),s=t.controlPoint||Cy(i,a,e,n);return tQ(i,a,s)}}Fg.defaultStyleProps={curvePosition:.5,curveOffset:30};var EQ=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);i{var a;const{key:s,placement:o}=n;Mx(n)&&(t[a=s||i]||(t[a]=Uo(r.getShape("key").getBounds(),o)))}),t}function Mx(r){const{r:t}=r;return!t||Number(t)===0}function FA(r){return Pc(r)?r:r.getPosition()}function CQ(r,t,e,n){const i=Fx(r,t,e,n),a=Fx(t,r,n,e);return[i,a]}function Fx(r,t,e,n){const i=Oy(r);if(e)return i[e];const a=Object.values(i);if(a.length===0)return;const s=a.map(l=>FA(l)),o=SQ(t,n),[A]=BL(s,o);return a.find(l=>FA(l)===A)}function SQ(r,t){const e=Oy(r);if(t)return[FA(e[t])];const n=Object.values(e);return n.length>0?n.map(i=>FA(i)):[r.getCenter()]}function Tx(r,t){return Fy(r)||Th(r)?Iy(r,t):Oh(r,t)}function Oh(r,t){if(!r||!t)return[0,0,0];if(Pc(r))return r;if(r.attributes.linkToCenter)return r.getPosition();const e=Pc(t)?t:Th(t)?t.getCenter():t.getPosition();return rg(e,r.getBounds())}function Iy(r,t){if(!r||!t)return[0,0,0];const e=Pc(t)?t:Th(t)?t.getCenter():t.getPosition();return r.getIntersectPoint(e)||r.getCenter()}function Ox(r,t="bottom",e=0,n=0,i=!1){const a=t.split("-"),[s,o]=Uo(r,t),[A,l]=i?["bottom","top"]:["top","bottom"],c=a.includes("top")?l:a.includes("bottom")?A:"middle",u=a.includes("left")?"right":a.includes("right")?"left":"center";return{transform:[["translate",s+e,o+n]],textBaseline:c,textAlign:u}}function MQ(r,t){return[[0,-r],[t*Math.cos(3*Math.PI/10),-t*Math.sin(3*Math.PI/10)],[r*Math.cos(Math.PI/10),-r*Math.sin(Math.PI/10)],[t*Math.cos(Math.PI/10),t*Math.sin(Math.PI/10)],[r*Math.cos(3*Math.PI/10),r*Math.sin(3*Math.PI/10)],[0,t],[-r*Math.cos(3*Math.PI/10),r*Math.sin(3*Math.PI/10)],[-t*Math.cos(Math.PI/10),t*Math.sin(Math.PI/10)],[-r*Math.cos(Math.PI/10),-r*Math.sin(Math.PI/10)],[-t*Math.cos(3*Math.PI/10),-t*Math.sin(3*Math.PI/10)]]}function FQ(r,t){const e={};return e.top=[0,-r],e.left=[-r*Math.cos(Math.PI/10),-r*Math.sin(Math.PI/10)],e["left-bottom"]=[-r*Math.cos(3*Math.PI/10),r*Math.sin(3*Math.PI/10)],e.bottom=[0,t],e["right-bottom"]=[r*Math.cos(3*Math.PI/10),r*Math.sin(3*Math.PI/10)],e.right=e.default=[r*Math.cos(Math.PI/10),-r*Math.sin(Math.PI/10)],e}function TQ(r,t,e){const n=t/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[e]||a.up}function OQ(r,t,e){const n=t/2,i=r/2,a={};return e==="down"?(a.bottom=a.default=[0,n],a.right=[i,-n],a.left=[-i,-n]):e==="left"?(a.top=[i,-n],a.bottom=[i,n],a.left=a.default=[-i,0]):e==="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 hz(r,t){return[[r/2,-t/2],[r/2,t/2],[-r/2,t/2],[-r/2,-t/2]]}function IQ(r,t){return[[0,-t/2],[r/2,0],[0,t/2],[-r/2,0]]}function Ix(r){return Fi(r,["style","visibility"])!=="hidden"}function NQ(r,t){const{zIndex:e,transform:n,transformOrigin:i,visibility:a,cursor:s,clipPath:o,component:A}=t,l=EQ(t,["zIndex","transform","transformOrigin","visibility","cursor","clipPath","component"]);Object.assign(r.attributes,l),n&&r.setAttribute("transform",n),ye(e)&&r.setAttribute("zIndex",e),i&&r.setAttribute("transformOrigin",i),a&&r.setAttribute("visibility",a),s&&r.setAttribute("cursor",s),o&&r.setAttribute("clipPath",o),A&&r.setAttribute("component",A)}function Ny(r,t){"update"in r?r.update(t):r.attr(t)}function LQ(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 kQ(r){bh(r,"__to_be_destroyed__",!0)}function Ih(r){return Fi(r,"__to_be_destroyed__",!1)}var QQ=function(r,t,e,n){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(c){try{l(n.next(c))}catch(u){s(u)}}function A(c){try{l(n.throw(c))}catch(u){s(u)}}function l(c){c.done?a(c.value):i(c.value).then(o,A)}l((n=n.apply(r,t||[])).next())})};class Tg extends Ra{constructor(t,e){super(t,Object.assign({},Tg.defaultOptions,e)),this.onCollapseExpand=n=>QQ(this,void 0,void 0,function*(){if(!this.validate(n))return;const{target:i}=n;if(!BQ(i))return;const a=i.id,{model:s,graph:o}=this.context,A=s.getElementDataById(a);if(!A)return!1;const{onCollapse:l,onExpand:c,animation:u,align:h}=this.options;pa(A)?(yield o.expandElement(a,{animation:u,align:h}),c==null||c(a)):(yield o.collapseElement(a,{animation:u,align:h}),l==null||l(a))}),this.bindEvents()}update(t){this.unbindEvents(),super.update(t),this.bindEvents()}bindEvents(){const{graph:t}=this.context,{trigger:e}=this.options;t.on(`node:${e}`,this.onCollapseExpand),t.on(`combo:${e}`,this.onCollapseExpand)}unbindEvents(){const{graph:t}=this.context,{trigger:e}=this.options;t.off(`node:${e}`,this.onCollapseExpand),t.off(`combo:${e}`,this.onCollapseExpand)}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return Vt(e)?e(t):!!e}destroy(){this.unbindEvents(),super.destroy()}}Tg.defaultOptions={enable:!0,animation:!0,trigger:Yt.DBLCLICK,align:!0};var Og={},UQ=function(r){return r=r||"g",Og[r]?Og[r]+=1:Og[r]=1,r+Og[r]},Nh=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(r);if.length!==g.length?!1:f.every((v,p)=>v===g[p]),d=(f,g)=>{const v=Object.keys(f),p=Object.keys(g);return v.length!==p.length?!1:v.every(y=>f[y]===g[y])};return!(!d(s,u)||!h(a,c)||!h(e,o)||!d(n,A)||!d(i,l))}const Nx="__internal_override__";function Lx(r){return r[Nx]!==!1}var Ig=function(r,t,e,n){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(c){try{l(n.next(c))}catch(u){s(u)}}function A(c){try{l(n.throw(c))}catch(u){s(u)}}function l(c){c.done?a(c.value):i(c.value).then(o,A)}l((n=n.apply(r,t||[])).next())})};const RQ="g6-create-edge-assist-edge-id",Ng="g6-create-edge-assist-node-id";class Lg extends Ra{constructor(t,e){super(t,Object.assign({},Lg.defaultOptions,e)),this.drop=n=>Ig(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=>Ig(this,void 0,void 0,function*(){var i,a,s;if(!this.validate(n))return;const{graph:o,canvas:A,batch:l,element:c}=this.context,{style:u}=this.options;if(this.source){this.createEdge(n),yield this.cancelEdge();return}l.startBatch(),A.setCursor("crosshair"),this.source=this.getSelectedNodeIDs([n.target.id])[0];const h=o.getElementData(this.source);o.addNodeData([{id:Ng,type:"circle",[Nx]:!1,style:{size:1,visibility:"hidden",ports:[{key:"port-1",placement:[.5,.5]}],x:(i=h.style)===null||i===void 0?void 0:i.x,y:(a=h.style)===null||a===void 0?void 0:a.y}}]),o.addEdgeData([{id:RQ,source:this.source,target:Ng,style:Object.assign({pointerEvents:"none"},u)}]),yield(s=c.draw({animation:!1}))===null||s===void 0?void 0:s.finished}),this.updateAssistEdge=n=>Ig(this,void 0,void 0,function*(){var i;if(!this.source)return;const{model:a,element:s}=this.context;a.translateNodeTo(Ng,[n.client.x,n.client.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:A,onCreate:l}=this.options;if(((i=n.target)===null||i===void 0?void 0:i.id)===void 0||this.source===void 0)return;const u=(a=this.getSelectedNodeIDs([n.target.id]))===null||a===void 0?void 0:a[0],h=`${this.source}-${u}-${UQ()}`,d=l({id:h,source:this.source,target:u,style:o});d&&(s.addEdgeData([d]),A(d))},this.cancelEdge=()=>Ig(this,void 0,void 0,function*(){var n;if(!this.source)return;const{graph:i,element:a,batch:s}=this.context;i.removeNodeData([Ng]),this.source=void 0,yield(n=a.draw({animation:!1}))===null||n===void 0?void 0:n.finished,s.endBatch()}),this.bindEvents()}update(t){super.update(t),this.bindEvents()}bindEvents(){const{graph:t}=this.context,{trigger:e}=this.options;this.unbindEvents(),e==="click"?(t.on(rs.CLICK,this.handleCreateEdge),t.on(yl.CLICK,this.handleCreateEdge),t.on(No.CLICK,this.cancelEdge),t.on(Df.CLICK,this.cancelEdge)):(t.on(rs.DRAG_START,this.handleCreateEdge),t.on(yl.DRAG_START,this.handleCreateEdge),t.on(Yt.POINTER_UP,this.drop)),t.on(Yt.POINTER_MOVE,this.updateAssistEdge)}getSelectedNodeIDs(t){return Array.from(new Set(this.context.graph.getElementDataByState("node",this.options.state).map(e=>e.id).concat(t)))}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return Vt(e)?e(t):!!e}unbindEvents(){const{graph:t}=this.context;t.off(rs.CLICK,this.handleCreateEdge),t.off(yl.CLICK,this.handleCreateEdge),t.off(No.CLICK,this.cancelEdge),t.off(Df.CLICK,this.cancelEdge),t.off(rs.DRAG_START,this.handleCreateEdge),t.off(yl.DRAG_START,this.handleCreateEdge),t.off(Yt.POINTER_UP,this.drop),t.off(Yt.POINTER_MOVE,this.updateAssistEdge)}destroy(){this.unbindEvents(),super.destroy()}}Lg.defaultOptions={animation:!0,enable:!0,style:{},trigger:"drag",onCreate:r=>r,onFinish:()=>{}};function DQ(r,t,e){var n;return function(){var i=this,a=arguments,s=function(){n=null,e||r.apply(i,a)},o=e&&!n;clearTimeout(n),n=setTimeout(s,t),o&&r.apply(i,a)}}var Lh=DQ,kx=function(r,t,e,n){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(c){try{l(n.next(c))}catch(u){s(u)}}function A(c){try{l(n.throw(c))}catch(u){s(u)}}function l(c){c.done?a(c.value):i(c.value).then(o,A)}l((n=n.apply(r,t||[])).next())})};class kg extends Ra{constructor(t,e){super(t,Object.assign({},kg.defaultOptions,e)),this.isDragging=!1,this.onDragStart=n=>{this.validate(n)&&(this.isDragging=!0,this.context.canvas.setCursor("grabbing"))},this.onDrag=n=>{var i,a,s,o;if(!this.isDragging||_r.isPinching)return;const A=(a=(i=n.movement)===null||i===void 0?void 0:i.x)!==null&&a!==void 0?a:n.dx,l=(o=(s=n.movement)===null||s===void 0?void 0:s.y)!==null&&o!==void 0?o:n.dy;A|l&&this.translate([A,l],!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=Lh(()=>{var n,i;(i=(n=this.options).onFinish)===null||i===void 0||i.call(n)},300),this.shortcut=new CA(t.graph),this.bindEvents(),this.defaultCursor=this.context.canvas.getConfig().cursor||"default"}update(t){this.unbindEvents(),super.update(t),this.bindEvents()}bindEvents(){const{trigger:t}=this.options;if(br(t)){const{up:e=[],down:n=[],left:i=[],right:a=[]}=t;this.shortcut.bind(e,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:e}=this.context;e.on(Yt.DRAG_START,this.onDragStart),e.on(Yt.DRAG,this.onDrag),e.on(Yt.DRAG_END,this.onDragEnd)}}onTranslate(t,e){return kx(this,void 0,void 0,function*(){if(!this.validate(e))return;const{sensitivity:n}=this.options,i=n*-1;yield this.translate(Ss(t,i),this.options.animation),this.invokeOnFinish()})}translate(t,e){return kx(this,void 0,void 0,function*(){t=this.clampByDirection(t),t=this.clampByRange(t),t=this.clampByRotation(t),yield this.context.graph.translateBy(t,e)})}clampByRotation([t,e]){const n=this.context.graph.getRotation();return Cb([t,e],n)}clampByDirection([t,e]){const{direction:n}=this.options;return n==="x"?e=0:n==="y"&&(t=0),[t,e]}clampByRange([t,e]){const{viewport:n,canvas:i}=this.context,[a,s]=i.getSize(),[o,A,l,c]=Ua(this.options.range),u=[s*o,a*A,s*l,a*c],h=EA(Ym(n.getCanvasCenter()),u),d=tr(n.getViewportCenter(),[t,e,0]);if(!xs(d,h)){const{min:[f,g],max:[v,p]}=h;(d[0]0||d[0]>v&&t<0)&&(t=0),(d[1]0||d[1]>p&&e<0)&&(e=0)}return[t,e]}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return typeof e=="function"?e(t):!!e}unbindEvents(){this.shortcut.unbindAll();const{graph:t}=this.context;t.off(Yt.DRAG_START,this.onDragStart),t.off(Yt.DRAG,this.onDrag),t.off(Yt.DRAG_END,this.onDragEnd)}destroy(){this.shortcut.destroy(),this.unbindEvents(),this.context.canvas.setCursor(this.defaultCursor),super.destroy()}}kg.defaultOptions={enable:r=>"targetType"in r?r.targetType==="canvas":!0,sensitivity:10,direction:"both",range:1/0};var Qx=function(r,t,e,n){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(c){try{l(n.next(c))}catch(u){s(u)}}function A(c){try{l(n.throw(c))}catch(u){s(u)}}function l(c){c.done?a(c.value):i(c.value).then(o,A)}l((n=n.apply(r,t||[])).next())})};class kh extends Ra{constructor(t,e){super(t,Object.assign({},kh.defaultOptions,e)),this.enable=!1,this.enableElements=["node","combo"],this.target=[],this.shadowOrigin=[0,0],this.hiddenEdges=[],this.isDragging=!1,this.onDrop=n=>Qx(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(A=>{const l=a.getParentData(A,nr);l&&Nt(l)===o&&a.refreshComboData(o),a.setParent(A,o,nr)}),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===Yt.POINTER_ENTER?a.setCursor((s==null?void 0:s.grab)||"grab"):a.setCursor((s==null?void 0:s.default)||"default")},this.shortcut=new CA(t.graph),this.onDragStart=this.onDragStart.bind(this),this.onDrag=this.onDrag.bind(this),this.onDragEnd=this.onDragEnd.bind(this),this.onDrop=this.onDrop.bind(this),this.bindEvents()}update(t){this.unbindEvents(),super.update(t),this.bindEvents()}bindEvents(){const{graph:t,canvas:e}=this.context,n=e.getLayer().getContextService().$canvas;n&&(n.addEventListener("blur",this.onDragEnd),n.addEventListener("contextmenu",this.onDragEnd)),this.enableElements.forEach(i=>{t.on(`${i}:${Yt.DRAG_START}`,this.onDragStart),t.on(`${i}:${Yt.DRAG}`,this.onDrag),t.on(`${i}:${Yt.DRAG_END}`,this.onDragEnd),t.on(`${i}:${Yt.POINTER_ENTER}`,this.setCursor),t.on(`${i}:${Yt.POINTER_LEAVE}`,this.setCursor)}),["link"].includes(this.options.dropEffect)&&(t.on(yl.DROP,this.onDrop),t.on(No.DROP,this.onDrop))}getSelectedNodeIDs(t){return Array.from(new Set(this.context.graph.getElementDataByState("node",this.options.state).map(e=>e.id).concat(t)))}getDelta(t){const e=this.context.graph.getZoom();return Ms([t.dx,t.dy],e)}onDragStart(t){var e;if(this.enable=this.validate(t),!this.enable)return;const{batch:n,canvas:i,graph:a}=this.context;i.setCursor(((e=this.options.cursor)===null||e===void 0?void 0:e.grabbing)||"grabbing"),this.isDragging=!0,n.startBatch();const s=t.target.id;a.getElementState(s).includes(this.options.state)?this.target=this.getSelectedNodeIDs([s]):this.target=[s],this.hideEdge(),this.context.graph.frontElement(this.target),this.options.shadow&&this.createShadow(this.target)}onDrag(t){if(!this.enable)return;const e=this.getDelta(t);this.options.shadow?this.moveShadow(e):this.moveElement(this.target,e)}onDragEnd(){var t,e,n;if(!this.enable)return;if(this.enable=!1,this.options.shadow){if(!this.shadow)return;this.shadow.style.visibility="hidden";const{x:s=0,y:o=0}=this.shadow.attributes,[A,l]=tr([+s,+o],this.shadowOrigin);this.moveElement(this.target,[A,l])}this.showEdges(),(e=(t=this.options).onFinish)===null||e===void 0||e.call(t,this.target);const{batch:i,canvas:a}=this.context;i.endBatch(),a.setCursor(((n=this.options.cursor)===null||n===void 0?void 0:n.grab)||"grab"),this.isDragging=!1,this.target=[]}isKeydown(){const{trigger:t}=this.options;return t!=null&&t.length?this.shortcut.match(t):!0}validate(t){if(this.destroyed||Ih(t.target)||this.context.graph.isCollapsingExpanding||!this.isKeydown())return!1;const{enable:e}=this.options;return Vt(e)?e(t):!!e}clampByRotation([t,e]){const n=this.context.graph.getRotation();return Cb([t,e],n)}moveElement(t,e){return Qx(this,void 0,void 0,function*(){const{graph:n,model:i}=this.context,{dropEffect:a}=this.options;a==="move"&&t.forEach(s=>i.refreshComboData(s)),n.translateElementBy(Object.fromEntries(t.map(s=>[s,this.clampByRotation(e)])),!1)})}moveShadow(t){if(!this.shadow)return;const{x:e=0,y:n=0}=this.shadow.attributes,[i,a]=t;this.shadow.attr({x:+e+i,y:+n+a})}createShadow(t){const e=Ir(this.options,"shadow"),n=vh(t.map(l=>this.context.element.getElement(l).getBounds())),[i,a]=n.min;this.shadowOrigin=[i,a];const[s,o]=yA(n),A={width:s,height:o,x:i,y:a};this.shadow?this.shadow.attr(Object.assign(Object.assign(Object.assign({},e),A),{visibility:"visible"})):(this.shadow=new Ci({style:Object.assign(Object.assign(Object.assign({$layer:"transient"},e),A),{pointerEvents:"none"})}),this.context.canvas.appendChild(this.shadow))}showEdges(){this.options.shadow||this.hiddenEdges.length===0||(this.context.graph.showElement(this.hiddenEdges),this.hiddenEdges=[])}hideEdge(){const{hideEdge:t,shadow:e}=this.options;if(t==="none"||e)return;const{graph:n}=this.context;t==="all"?this.hiddenEdges=n.getEdgeData().map(Nt):this.hiddenEdges=Array.from(new Set(this.target.map(i=>n.getRelatedEdgesData(i,t).map(Nt)).flat())),n.hideElement(this.hiddenEdges)}unbindEvents(){const{graph:t,canvas:e}=this.context,n=e.getLayer().getContextService().$canvas;n&&(n.removeEventListener("blur",this.onDragEnd),n.removeEventListener("contextmenu",this.onDragEnd)),this.enableElements.forEach(i=>{t.off(`${i}:${Yt.DRAG_START}`,this.onDragStart),t.off(`${i}:${Yt.DRAG}`,this.onDrag),t.off(`${i}:${Yt.DRAG_END}`,this.onDragEnd),t.off(`${i}:${Yt.POINTER_ENTER}`,this.setCursor),t.off(`${i}:${Yt.POINTER_LEAVE}`,this.setCursor)}),t.off(`combo:${Yt.DROP}`,this.onDrop),t.off(`canvas:${Yt.DROP}`,this.onDrop)}destroy(){var t;this.unbindEvents(),(t=this.shadow)===null||t===void 0||t.destroy(),super.destroy()}}kh.defaultOptions={animation:!0,enable:r=>["node","combo"].includes(r.targetType),trigger:[],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 PQ="*",_Q=function(){function r(){this._events={}}return r.prototype.on=function(t,e,n){return this._events[t]||(this._events[t]=[]),this._events[t].push({callback:e,once:!!n}),this},r.prototype.once=function(t,e){return this.on(t,e,!0)},r.prototype.emit=function(t){for(var e=this,n=[],i=1;i{t.has(s.id)||(t.add(s.id),r.push(s))})}return!1}function Ug(r,t,e,n){if(e(r))return!0;t.add(r.id);for(const a of n(r.id))if(!t.has(a.id)&&Ug(a,t,e,n))return!0;return!1}const Ux=()=>!0;class HQ{constructor(t){wr(this,"graph");wr(this,"nodeFilter");wr(this,"edgeFilter");wr(this,"cacheEnabled");wr(this,"inEdgesMap",new Map);wr(this,"outEdgesMap",new Map);wr(this,"bothEdgesMap",new Map);wr(this,"allNodesMap",new Map);wr(this,"allEdgesMap",new Map);wr(this,"clearCache",()=>{this.inEdgesMap.clear(),this.outEdgesMap.clear(),this.bothEdgesMap.clear(),this.allNodesMap.clear(),this.allEdgesMap.clear()});wr(this,"refreshCache",()=>{this.clearCache(),this.updateCache(this.graph.getAllNodes().map(t=>t.id))});wr(this,"updateCache",t=>{const e=new Set;t.forEach(n=>{const i=this.bothEdgesMap.get(n);if(i&&i.forEach(a=>e.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(A=>e.add(A.id)),this.inEdgesMap.set(n,a),this.outEdgesMap.set(n,s),this.bothEdgesMap.set(n,o),this.allNodesMap.set(n,this.graph.getNode(n))}}),e.forEach(n=>{this.hasEdge(n)?this.allEdgesMap.set(n,this.graph.getEdge(n)):this.allEdgesMap.delete(n)})});wr(this,"handleGraphChanged",t=>{const e=new Set;t.changes.forEach(n=>{switch(n.type){case"NodeAdded":e.add(n.value.id);break;case"NodeDataUpdated":e.add(n.id);break;case"EdgeAdded":e.add(n.value.source),e.add(n.value.target);break;case"EdgeUpdated":(n.propertyName==="source"||n.propertyName==="target")&&(e.add(n.oldValue),e.add(n.newValue));break;case"EdgeDataUpdated":if(t.graph.hasEdge(n.id)){const i=t.graph.getEdge(n.id);e.add(i.source),e.add(i.target)}break;case"EdgeRemoved":e.add(n.value.source),e.add(n.value.target);break;case"NodeRemoved":e.add(n.value.id);break;default:break}}),this.updateCache(e)});this.graph=t.graph;const e=t.nodeFilter||Ux,n=t.edgeFilter||Ux;this.nodeFilter=e,this.edgeFilter=i=>{const{source:a,target:s}=this.graph.getEdgeDetail(i.id);return!e(a)||!e(s)?!1:n(i,a,s)},t.cache==="auto"?(this.cacheEnabled=!0,this.startAutoCache()):t.cache==="manual"?this.cacheEnabled=!0:this.cacheEnabled=!1}startAutoCache(){this.refreshCache(),this.graph.on("changed",this.handleGraphChanged)}stopAutoCache(){this.graph.off("changed",this.handleGraphChanged)}checkNodeExistence(t){this.getNode(t)}hasNode(t){if(!this.graph.hasNode(t))return!1;const e=this.graph.getNode(t);return this.nodeFilter(e)}areNeighbors(t,e){return this.checkNodeExistence(t),this.getNeighbors(e).some(n=>n.id===t)}getNode(t){const e=this.graph.getNode(t);if(!this.nodeFilter(e))throw new Error("Node not found for id: "+t);return e}getRelatedEdges(t,e){return this.checkNodeExistence(t),this.cacheEnabled?e==="in"?this.inEdgesMap.get(t):e==="out"?this.outEdgesMap.get(t):this.bothEdgesMap.get(t):this.graph.getRelatedEdges(t,e).filter(this.edgeFilter)}getDegree(t,e){return this.getRelatedEdges(t,e).length}getSuccessors(t){const n=this.getRelatedEdges(t,"out").map(i=>this.getNode(i.target));return Array.from(new Set(n))}getPredecessors(t){const n=this.getRelatedEdges(t,"in").map(i=>this.getNode(i.source));return Array.from(new Set(n))}getNeighbors(t){const e=this.getPredecessors(t),n=this.getSuccessors(t);return Array.from(new Set([...e,...n]))}hasEdge(t){if(!this.graph.hasEdge(t))return!1;const e=this.graph.getEdge(t);return this.edgeFilter(e)}getEdge(t){const e=this.graph.getEdge(t);if(!this.edgeFilter(e))throw new Error("Edge not found for id: "+t);return e}getEdgeDetail(t){const e=this.getEdge(t);return{edge:e,source:this.getNode(e.source),target:this.getNode(e.target)}}hasTreeStructure(t){return this.graph.hasTreeStructure(t)}getRoots(t){return this.graph.getRoots(t).filter(this.nodeFilter)}getChildren(t,e){return this.checkNodeExistence(t),this.graph.getChildren(t,e).filter(this.nodeFilter)}getParent(t,e){this.checkNodeExistence(t);const n=this.graph.getParent(t,e);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(t,e,n="out"){const i={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[n];ky([this.getNode(t)],new Set,e,i)}dfs(t,e,n="out"){const i={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[n];Ug(this.getNode(t),new Set,e,i)}}class Gr extends Qg{constructor(e){super();wr(this,"nodeMap",new Map);wr(this,"edgeMap",new Map);wr(this,"inEdgesMap",new Map);wr(this,"outEdgesMap",new Map);wr(this,"bothEdgesMap",new Map);wr(this,"treeIndices",new Map);wr(this,"changes",[]);wr(this,"batchCount",0);wr(this,"onChanged",()=>{});wr(this,"batch",e=>{this.batchCount+=1,e(),this.batchCount-=1,this.batchCount||this.commit()});e&&(e.nodes&&this.addNodes(e.nodes),e.edges&&this.addEdges(e.edges),e.tree&&this.addTree(e.tree),e.onChanged&&(this.onChanged=e.onChanged))}commit(){const e=this.changes;this.changes=[];const n={graph:this,changes:e};this.emit("changed",n),this.onChanged(n)}reduceChanges(e){let n=[];return e.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(e){this.getNode(e)}hasNode(e){return this.nodeMap.has(e)}areNeighbors(e,n){return this.getNeighbors(n).some(i=>i.id===e)}getNode(e){const n=this.nodeMap.get(e);if(!n)throw new Error("Node not found for id: "+e);return n}getRelatedEdges(e,n){if(this.checkNodeExistence(e),n==="in"){const i=this.inEdgesMap.get(e);return Array.from(i)}else if(n==="out"){const i=this.outEdgesMap.get(e);return Array.from(i)}else{const i=this.bothEdgesMap.get(e);return Array.from(i)}}getDegree(e,n){return this.getRelatedEdges(e,n).length}getSuccessors(e){const i=this.getRelatedEdges(e,"out").map(a=>this.getNode(a.target));return Array.from(new Set(i))}getPredecessors(e){const i=this.getRelatedEdges(e,"in").map(a=>this.getNode(a.source));return Array.from(new Set(i))}getNeighbors(e){const n=this.getPredecessors(e),i=this.getSuccessors(e);return Array.from(new Set([...n,...i]))}doAddNode(e){if(this.hasNode(e.id))throw new Error("Node already exists: "+e.id);this.nodeMap.set(e.id,e),this.inEdgesMap.set(e.id,new Set),this.outEdgesMap.set(e.id,new Set),this.bothEdgesMap.set(e.id,new Set),this.treeIndices.forEach(n=>{n.childrenMap.set(e.id,new Set)}),this.changes.push({type:"NodeAdded",value:e})}addNodes(e){this.batch(()=>{for(const n of e)this.doAddNode(n)})}addNode(e){this.addNodes([e])}doRemoveNode(e){const n=this.getNode(e),i=this.bothEdgesMap.get(e);i==null||i.forEach(a=>this.doRemoveEdge(a.id)),this.nodeMap.delete(e),this.treeIndices.forEach(a=>{var o,A;(o=a.childrenMap.get(e))==null||o.forEach(l=>{a.parentMap.delete(l.id)});const s=a.parentMap.get(e);s&&((A=a.childrenMap.get(s.id))==null||A.delete(n)),a.parentMap.delete(e),a.childrenMap.delete(e)}),this.bothEdgesMap.delete(e),this.inEdgesMap.delete(e),this.outEdgesMap.delete(e),this.changes.push({type:"NodeRemoved",value:n})}removeNodes(e){this.batch(()=>{e.forEach(n=>this.doRemoveNode(n))})}removeNode(e){this.removeNodes([e])}updateNodeDataProperty(e,n,i){const a=this.getNode(e);this.batch(()=>{const s=a.data[n],o=i;a.data[n]=o,this.changes.push({type:"NodeDataUpdated",id:e,propertyName:n,oldValue:s,newValue:o})})}mergeNodeData(e,n){this.batch(()=>{Object.entries(n).forEach(([i,a])=>{this.updateNodeDataProperty(e,i,a)})})}updateNodeData(...e){const n=e[0],i=this.getNode(n);if(typeof e[1]=="string"){this.updateNodeDataProperty(n,e[1],e[2]);return}let a;if(typeof e[1]=="function"){const s=e[1];a=s(i.data)}else typeof e[1]=="object"&&(a=e[1]);this.batch(()=>{const s=i.data,o=a;i.data=a,this.changes.push({type:"NodeDataUpdated",id:n,oldValue:s,newValue:o})})}checkEdgeExistence(e){if(!this.hasEdge(e))throw new Error("Edge not found for id: "+e)}hasEdge(e){return this.edgeMap.has(e)}getEdge(e){return this.checkEdgeExistence(e),this.edgeMap.get(e)}getEdgeDetail(e){const n=this.getEdge(e);return{edge:n,source:this.getNode(n.source),target:this.getNode(n.target)}}doAddEdge(e){if(this.hasEdge(e.id))throw new Error("Edge already exists: "+e.id);this.checkNodeExistence(e.source),this.checkNodeExistence(e.target),this.edgeMap.set(e.id,e);const n=this.inEdgesMap.get(e.target),i=this.outEdgesMap.get(e.source),a=this.bothEdgesMap.get(e.source),s=this.bothEdgesMap.get(e.target);n.add(e),i.add(e),a.add(e),s.add(e),this.changes.push({type:"EdgeAdded",value:e})}addEdges(e){this.batch(()=>{for(const n of e)this.doAddEdge(n)})}addEdge(e){this.addEdges([e])}doRemoveEdge(e){const n=this.getEdge(e),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(e),this.changes.push({type:"EdgeRemoved",value:n})}removeEdges(e){this.batch(()=>{e.forEach(n=>this.doRemoveEdge(n))})}removeEdge(e){this.removeEdges([e])}updateEdgeSource(e,n){const i=this.getEdge(e);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:e,propertyName:"source",oldValue:a,newValue:s})})}updateEdgeTarget(e,n){const i=this.getEdge(e);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:e,propertyName:"target",oldValue:a,newValue:s})})}updateEdgeDataProperty(e,n,i){const a=this.getEdge(e);this.batch(()=>{const s=a.data[n],o=i;a.data[n]=o,this.changes.push({type:"EdgeDataUpdated",id:e,propertyName:n,oldValue:s,newValue:o})})}updateEdgeData(...e){const n=e[0],i=this.getEdge(n);if(typeof e[1]=="string"){this.updateEdgeDataProperty(n,e[1],e[2]);return}let a;if(typeof e[1]=="function"){const s=e[1];a=s(i.data)}else typeof e[1]=="object"&&(a=e[1]);this.batch(()=>{const s=i.data,o=a;i.data=a,this.changes.push({type:"EdgeDataUpdated",id:n,oldValue:s,newValue:o})})}mergeEdgeData(e,n){this.batch(()=>{Object.entries(n).forEach(([i,a])=>{this.updateEdgeDataProperty(e,i,a)})})}checkTreeExistence(e){if(!this.hasTreeStructure(e))throw new Error("Tree structure not found for treeKey: "+e)}hasTreeStructure(e){return this.treeIndices.has(e)}attachTreeStructure(e){this.treeIndices.has(e)||(this.treeIndices.set(e,{parentMap:new Map,childrenMap:new Map}),this.batch(()=>{this.changes.push({type:"TreeStructureAttached",treeKey:e})}))}detachTreeStructure(e){this.checkTreeExistence(e),this.treeIndices.delete(e),this.batch(()=>{this.changes.push({type:"TreeStructureDetached",treeKey:e})})}addTree(e,n){this.batch(()=>{this.attachTreeStructure(n);const i=[],a=Array.isArray(e)?e:[e];for(;a.length;){const s=a.shift();i.push(s),s.children&&a.push(...s.children)}this.addNodes(i),i.forEach(s=>{var o;(o=s.children)==null||o.forEach(A=>{this.setParent(A.id,s.id,n)})})})}getRoots(e){return this.checkTreeExistence(e),this.getAllNodes().filter(n=>!this.getParent(n.id,e))}getChildren(e,n){this.checkNodeExistence(e),this.checkTreeExistence(n);const a=this.treeIndices.get(n).childrenMap.get(e);return Array.from(a||[])}getParent(e,n){return this.checkNodeExistence(e),this.checkTreeExistence(n),this.treeIndices.get(n).parentMap.get(e)||null}getAncestors(e,n){const i=[];let a=this.getNode(e),s;for(;s=this.getParent(a.id,n);)i.push(s),a=s;return i}setParent(e,n,i){var c,u;this.checkTreeExistence(i);const a=this.treeIndices.get(i);if(!a)return;const s=this.getNode(e),o=a.parentMap.get(e);if((o==null?void 0:o.id)===n)return;if(n==null){o&&((c=a.childrenMap.get(o.id))==null||c.delete(s)),a.parentMap.delete(e);return}const A=this.getNode(n);a.parentMap.set(e,A),o&&((u=a.childrenMap.get(o.id))==null||u.delete(s));let l=a.childrenMap.get(A.id);l||(l=new Set,a.childrenMap.set(A.id,l)),l.add(s),this.batch(()=>{this.changes.push({type:"TreeStructureChanged",treeKey:i,nodeId:e,oldParentId:o==null?void 0:o.id,newParentId:A.id})})}dfsTree(e,n,i){const a=s=>this.getChildren(s,i);return Ug(this.getNode(e),new Set,n,a)}bfsTree(e,n,i){const a=s=>this.getChildren(s,i);return ky([this.getNode(e)],new Set,n,a)}getAllNodes(){return Array.from(this.nodeMap.values())}getAllEdges(){return Array.from(this.edgeMap.values())}bfs(e,n,i="out"){const a={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[i];return ky([this.getNode(e)],new Set,n,a)}dfs(e,n,i="out"){const a={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[i];return Ug(this.getNode(e),new Set,n,a)}clone(){const e=this.getAllNodes().map(a=>dw(lu({},a),{data:lu({},a.data)})),n=this.getAllEdges().map(a=>dw(lu({},a),{data:lu({},a.data)})),i=new Gr({nodes:e,edges:n});return this.treeIndices.forEach(({parentMap:a,childrenMap:s},o)=>{const A=new Map;a.forEach((c,u)=>{A.set(u,i.getNode(c.id))});const l=new Map;s.forEach((c,u)=>{l.set(u,new Set(Array.from(c).map(h=>i.getNode(h.id))))}),i.treeIndices.set(o,{parentMap:A,childrenMap:l})}),i}toJSON(){return JSON.stringify({nodes:this.getAllNodes(),edges:this.getAllEdges()})}createView(e){return new HQ(lu({graph:this},e))}}class Rg{constructor(t,e){this.context=t,this.options=e||{}}}var GQ=function(r,t,e,n){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(c){try{l(n.next(c))}catch(u){s(u)}}function A(c){try{l(n.throw(c))}catch(u){s(u)}}function l(c){c.done?a(c.value):i(c.value).then(o,A)}l((n=n.apply(r,t||[])).next())})},zQ=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[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:A=0}=i.data;a==null||a.push({id:i.id,style:{x:s,y:o,z:A}})}),e.forEach(i=>{const{id:a,source:s,target:o,data:{points:A=[],controlPoints:l=A.slice(1,A.length-1)}}=i;n.edges.push({id:a,source:s,target:o,style:Object.assign({},l!=null&&l.length?{controlPoints:l.map(Mi)}:{})})}),n}function WQ(r,t){class e extends Rg{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 A=s.tick(o);return Dg(A)}}}execute(i,a){return GQ(this,void 0,void 0,function*(){return Dg(yield this.instance.execute(this.graphData2LayoutModel(i),this.transformOptions(Si({},this.options,a))))})}transformOptions(i){if(!("onTick"in i))return i;const a=i.onTick;return i.onTick=s=>a(Dg(s)),i}graphData2LayoutModel(i){const{nodes:a=[],edges:s=[],combos:o=[]}=i,A=a.map(d=>{const f=Nt(d),{data:g,style:v,combo:p}=d,y=zQ(d,["data","style","combo"]),x={id:f,data:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},g),{data:g}),p?{parentId:p}:{}),{style:v}),y)};return v!=null&&v.x&&Object.assign(x.data,{x:v.x}),v!=null&&v.y&&Object.assign(x.data,{y:v.y}),v!=null&&v.z&&Object.assign(x.data,{z:v.z}),x}),l=new Map(A.map(d=>[d.id,d])),c=s.filter(d=>{const{source:f,target:g}=d;return l.has(f)&&l.has(g)}).map(d=>{const{source:f,target:g,data:v,style:p}=d;return{id:Nt(d),source:f,target:g,data:Object.assign({},v),style:Object.assign({},p)}}),u=o.map(d=>({id:Nt(d),data:Object.assign({_isCombo:!0},d.data),style:Object.assign({},d.style)})),h=new Gr({nodes:[...A,...u],edges:c});return t.model.model.hasTreeStructure(nr)&&(h.attachTreeStructure(nr),A.forEach(d=>{const f=t.model.model.getParent(d.id,nr);f&&h.hasNode(f.id)&&h.setParent(d.id,f.id,nr)})),h}}return e}function Qy(r,t,...e){if(t in r)return r[t](...e);if("instance"in r){const n=r.instance;if(t in n)return n[t](...e)}return null}function Rx(r,t){if(t in r)return r[t];if("instance"in r){const e=r.instance;if(t in e)return e[t]}return null}var jQ=function(r,t,e,n){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(c){try{l(n.next(c))}catch(u){s(u)}}function A(c){try{l(n.throw(c))}catch(u){s(u)}}function l(c){c.done?a(c.value):i(c.value).then(o,A)}l((n=n.apply(r,t||[])).next())})};class ZQ extends kh{get forceLayoutInstance(){return this.context.layout.getLayoutInstance().find(t=>["d3-force","d3-force-3d"].includes(t==null?void 0:t.id))}validate(t){return this.context.layout?this.forceLayoutInstance?super.validate(t):(va.warn("DragElementForce only works with d3-force or d3-force-3d layout"),!1):!1}moveElement(t,e){return jQ(this,void 0,void 0,function*(){const n=this.forceLayoutInstance;this.context.graph.getNodeData(t).forEach((i,a)=>{const{x:s=0,y:o=0}=i.style||{};n&&Qy(n,"setFixedPosition",t[a],[...$e([+s,+o],this.clampByRotation(e))])})})}onDragStart(t){if(this.enable=this.validate(t),!this.enable)return;this.target=this.getSelectedNodeIDs([t.target.id]),this.hideEdge(),this.context.graph.frontElement(this.target);const e=this.forceLayoutInstance;e&&Rx(e,"simulation").alphaTarget(.3).restart(),this.context.graph.getNodeData(this.target).forEach(n=>{const{x:i=0,y:a=0}=n.style||{};e&&Qy(e,"setFixedPosition",Nt(n),[+i,+a])})}onDrag(t){if(!this.enable)return;const e=this.getDelta(t);this.moveElement(this.target,e)}onDragEnd(){const t=this.forceLayoutInstance;t&&Rx(t,"simulation").alphaTarget(0),!this.options.fixed&&this.context.graph.getNodeData(this.target).forEach(e=>{t&&Qy(t,"setFixedPosition",Nt(e),[null,null,null])})}}var Dx=function(r,t,e,n){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(c){try{l(n.next(c))}catch(u){s(u)}}function A(c){try{l(n.throw(c))}catch(u){s(u)}}function l(c){c.done?a(c.value):i(c.value).then(o,A)}l((n=n.apply(r,t||[])).next())})};class Pg extends Ra{constructor(t,e){super(t,Object.assign({},Pg.defaultOptions,e)),this.isZoomEvent=n=>!!(n.data&&"scale"in n.data),this.relatedEdgeToUpdate=new Set,this.zoom=this.context.graph.getZoom(),this.fixElementSize=n=>Dx(this,void 0,void 0,function*(){if(!this.validate(n))return;const{graph:i}=this.context,{state:a,nodeFilter:s,edgeFilter:o,comboFilter:A}=this.options,l=(a?i.getElementDataByState("node",a):i.getNodeData()).filter(s),c=(a?i.getElementDataByState("edge",a):i.getEdgeData()).filter(o),u=(a?i.getElementDataByState("combo",a):i.getComboData()).filter(A),h=this.isZoomEvent(n)?this.zoom=Math.max(.01,Math.min(n.data.scale,10)):this.zoom,d=[...l,...u];d.length>0&&d.forEach(f=>this.fixNodeLike(f,h)),this.updateRelatedEdges(),c.length>0&&c.forEach(f=>this.fixEdge(f,h))}),this.cachedStyles=new Map,this.getOriginalFieldValue=(n,i,a)=>{var s;const o=this.cachedStyles.get(n)||[],A=((s=o.find(l=>l.shape===i))===null||s===void 0?void 0:s.style)||{};return a in A||(A[a]=i.attributes[a],this.cachedStyles.set(n,[...o.filter(l=>l.shape!==i),{shape:i,style:A}])),A[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=ZL(n);(Array.isArray(a)?a:[a]).forEach(A=>{const{shape:l,fields:c}=A,u=typeof l=="function"?l(s):n.getShape(l);if(u){if(!c){this.scaleEntireElement(n.id,u,i);return}c.forEach(h=>{const d=this.getOriginalFieldValue(n.id,u,h);ye(d)&&(u.style[h]=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=Nt(n),{element:s,model:o}=this.context,A=s.getElement(a);if(!A||this.skipIfExceedViewport(A))return;o.getRelatedEdgesData(a).forEach(u=>this.relatedEdgeToUpdate.add(Nt(u)));const c=this.options[A.type];if(!c){this.scaleEntireElement(a,A,i);return}this.scaleSpecificShapes(A,i,c)},this.fixEdge=(n,i)=>{const a=Nt(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=>Dx(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(oo(s))a.setLocalScale(1);else{if(this.options.state)return;Object.entries(s).forEach(([o,A])=>a.style[o]=A)}})});const{graph:t,element:e}=this.context,n=Object.keys(Object.fromEntries(this.cachedStyles)).filter(i=>i&&t.getElementType(i)==="node");if(n.length>0){const i=new Set;n.forEach(a=>{t.getRelatedEdgesData(a).forEach(s=>i.add(Nt(s)))}),i.forEach(a=>{const s=e==null?void 0:e.getElement(a);s==null||s.update({})})}}}bindEvents(){const{graph:t}=this.context;t.on(Ae.AFTER_DRAW,this.resetTransform),t.on(Ae.AFTER_TRANSFORM,this.fixElementSize)}unbindEvents(){const{graph:t}=this.context;t.off(Ae.AFTER_DRAW,this.resetTransform),t.off(Ae.AFTER_TRANSFORM,this.fixElementSize)}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return Vt(e)?e(t):!!e}destroy(){this.unbindEvents(),super.destroy()}}Pg.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 YQ=function(r,t,e,n){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(c){try{l(n.next(c))}catch(u){s(u)}}function A(c){try{l(n.throw(c))}catch(u){s(u)}}function l(c){c.done?a(c.value):i(c.value).then(o,A)}l((n=n.apply(r,t||[])).next())})};class _g extends Ra{constructor(t,e){super(t,Object.assign({},_g.defaultOptions,e)),this.focus=n=>YQ(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.shortcut=new CA(t.graph),this.bindEvents()}bindEvents(){const{graph:t}=this.context;this.unbindEvents(),xl.forEach(e=>{t.on(`${e}:${Yt.CLICK}`,this.focus)})}validate(t){if(this.destroyed||!this.isKeydown())return!1;const{enable:e}=this.options;return Vt(e)?e(t):!!e}isKeydown(){const{trigger:t}=this.options;return t!=null&&t.length?this.shortcut.match(t):!0}unbindEvents(){const{graph:t}=this.context;xl.forEach(e=>{t.off(`${e}:${Yt.CLICK}`,this.focus)})}destroy(){this.unbindEvents(),this.shortcut.destroy(),super.destroy()}}_g.defaultOptions={animation:{easing:"ease-in",duration:500},enable:!0,trigger:[]};class Hg extends Ra{constructor(t,e){super(t,Object.assign({},Hg.defaultOptions,e)),this.isFrozen=!1,this.toggleFrozen=n=>{this.isFrozen=n.type==="dragstart"},this.hoverElement=n=>{if(!this.validate(n))return;const i=n.type===Yt.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:A}=this.options,l=this.getActiveIds(n),c={};if(s&&Object.assign(c,this.getElementsState(l,s,i)),A){const u=yb(a.getData(),!0).filter(h=>!l.includes(h));Object.assign(c,this.getElementsState(u,A,i))}a.setElementState(c,o)},this.getElementsState=(n,i,a)=>{const{graph:s}=this.context,o={};return n.forEach(A=>{const l=s.getElementState(A);a?o[A]=l.includes(i)?l:[...l,i]:o[A]=l.filter(c=>c!==i)}),o},this.bindEvents()}bindEvents(){const{graph:t}=this.context;this.unbindEvents(),xl.forEach(n=>{t.on(`${n}:${Yt.POINTER_ENTER}`,this.hoverElement),t.on(`${n}:${Yt.POINTER_LEAVE}`,this.hoverElement)});const e=this.context.canvas.document;e.addEventListener(`${Yt.DRAG_START}`,this.toggleFrozen),e.addEventListener(`${Yt.DRAG_END}`,this.toggleFrozen)}getActiveIds(t){const{graph:e}=this.context,{degree:n,direction:i}=this.options,a=t.target.id;return n?Ub(e,t.targetType,a,typeof n=="function"?n(t):n,i):[a]}validate(t){if(this.destroyed||this.isFrozen||Ih(t.target)||this.context.graph.isCollapsingExpanding)return!1;const{enable:e}=this.options;return Vt(e)?e(t):!!e}unbindEvents(){const{graph:t}=this.context;xl.forEach(n=>{t.off(`${n}:${Yt.POINTER_ENTER}`,this.hoverElement),t.off(`${n}:${Yt.POINTER_LEAVE}`,this.hoverElement)});const e=this.context.canvas.document;e.removeEventListener(`${Yt.DRAG_START}`,this.toggleFrozen),e.removeEventListener(`${Yt.DRAG_END}`,this.toggleFrozen)}destroy(){this.unbindEvents(),super.destroy()}}Hg.defaultOptions={animation:!1,enable:!0,degree:0,direction:"both",state:"active",inactiveState:void 0};class XQ extends Bh{onPointerDown(t){if(!super.validate(t)||!super.isKeydown()||this.points)return;const{canvas:e,graph:n}=this.context;this.pathShape=new Pi({id:"g6-lasso-select",style:this.options.style}),e.appendChild(this.pathShape),this.points=[ig(t,n)]}onPointerMove(t){var e;if(!this.points)return;const{immediately:n,mode:i}=this.options;this.points.push(ig(t,this.context.graph)),(e=this.pathShape)===null||e===void 0||e.setAttribute("d",zL(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 t;(t=this.pathShape)===null||t===void 0||t.remove(),this.pathShape=void 0,this.points=void 0}}class Gg extends Ra{constructor(t,e){super(t,Object.assign({},Gg.defaultOptions,e)),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):Bl(s,i,a)})},this.filterShapes=(n,i)=>{if(Vt(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=Lh(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:t}=this.context;t.on(Ae.BEFORE_TRANSFORM,this.hideShapes),t.on(Ae.AFTER_TRANSFORM,this.showShapes)}unbindEvents(){const{graph:t}=this.context;t.off(Ae.BEFORE_TRANSFORM,this.hideShapes),t.off(Ae.AFTER_TRANSFORM,this.showShapes)}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return Vt(e)?e(t):!!e}update(t){this.unbindEvents(),super.update(t),this.bindEvents()}destroy(){this.unbindEvents(),super.destroy()}}Gg.defaultOptions={enable:!0,debounce:200,shapes:r=>r==="node"};var Px=function(r,t,e,n){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(c){try{l(n.next(c))}catch(u){s(u)}}function A(c){try{l(n.throw(c))}catch(u){s(u)}}function l(c){c.done?a(c.value):i(c.value).then(o,A)}l((n=n.apply(r,t||[])).next())})};class zg extends Ra{constructor(t,e){super(t,Object.assign({},zg.defaultOptions,e)),this.onWheel=n=>Px(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 CA(t.graph),this.bindEvents()}update(t){super.update(t),this.bindEvents()}bindEvents(){var t,e;const{trigger:n}=this.options;if(this.shortcut.unbindAll(),br(n)){(t=this.graphDom)===null||t===void 0||t.removeEventListener(Yt.WHEEL,this.onWheel);const{up:i=[],down:a=[],left:s=[],right:o=[]}=n;this.shortcut.bind(i,A=>this.scroll([0,-10],A)),this.shortcut.bind(a,A=>this.scroll([0,10],A)),this.shortcut.bind(s,A=>this.scroll([-10,0],A)),this.shortcut.bind(o,A=>this.scroll([10,0],A))}else(e=this.graphDom)===null||e===void 0||e.addEventListener(Yt.WHEEL,this.onWheel,{passive:!1})}get graphDom(){return this.context.graph.getCanvas().getContextService().getDomElement()}formatDisplacement(t){const{sensitivity:e}=this.options;return t=Ss(t,e),t=this.clampByDirection(t),t=this.clampByRange(t),t}clampByDirection([t,e]){const{direction:n}=this.options;return n==="x"?e=0:n==="y"&&(t=0),[t,e]}clampByRange([t,e]){const{viewport:n,canvas:i}=this.context,[a,s]=i.getSize(),[o,A,l,c]=Ua(this.options.range),u=[s*o,a*A,s*l,a*c],h=EA(Ym(n.getCanvasCenter()),u),d=tr(n.getViewportCenter(),[t,e,0]);if(!xs(d,h)){const{min:[f,g],max:[v,p]}=h;(d[0]0||d[0]>v&&t<0)&&(t=0),(d[1]0||d[1]>p&&e<0)&&(e=0)}return[t,e]}scroll(t,e){return Px(this,void 0,void 0,function*(){if(!this.validate(e))return;const{onFinish:n}=this.options,i=this.context.graph,a=this.formatDisplacement(t);yield i.translateBy(a,!1),n==null||n()})}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return Vt(e)?e(t):!!e}destroy(){var t;this.shortcut.destroy(),(t=this.graphDom)===null||t===void 0||t.removeEventListener(Yt.WHEEL,this.onWheel),super.destroy()}}zg.defaultOptions={enable:!0,sensitivity:1,preventDefault:!0,range:1/0};var _x=function(r,t,e,n){function i(a){return a instanceof e?a:new e(function(s){s(a)})}return new(e||(e=Promise))(function(a,s){function o(c){try{l(n.next(c))}catch(u){s(u)}}function A(c){try{l(n.throw(c))}catch(u){s(u)}}function l(c){c.done?a(c.value):i(c.value).then(o,A)}l((n=n.apply(r,t||[])).next())})};class Kg extends Ra{constructor(t,e){super(t,Object.assign({},Kg.defaultOptions,e)),this.zoom=(n,i,a)=>_x(this,void 0,void 0,function*(){if(!this.validate(i))return;const{graph:s}=this.context;let o=this.options.origin;!o&&"viewport"in i&&(o=Mi(i.viewport));const{sensitivity:A,onFinish:l}=this.options,c=1+dr(n,-50,50)*A/100,u=s.getZoom();yield s.zoomTo(u*c,a,o),l==null||l()}),this.onReset=()=>_x(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 CA(t.graph),this.bindEvents()}update(t){super.update(t),this.bindEvents()}bindEvents(){const{trigger:t}=this.options;if(this.shortcut.unbindAll(),Array.isArray(t))if(t.includes(Yt.PINCH))this.shortcut.bind([Yt.PINCH],e=>{this.zoom(e.scale,e,!1)});else{const e=this.context.canvas.getContainer();e==null||e.addEventListener(Yt.WHEEL,this.preventDefault),this.shortcut.bind([...t,Yt.WHEEL],n=>{const{deltaX:i,deltaY:a}=n;this.zoom(-(a!=null?a:i),n,!1)})}if(typeof t=="object"){const{zoomIn:e=[],zoomOut:n=[],reset:i=[]}=t;this.shortcut.bind(e,a=>this.zoom(10,a,this.options.animation)),this.shortcut.bind(n,a=>this.zoom(-10,a,this.options.animation)),this.shortcut.bind(i,this.onReset)}}validate(t){if(this.destroyed)return!1;const{enable:e}=this.options;return Vt(e)?e(t):!!e}destroy(){var t;this.shortcut.destroy(),(t=this.context.canvas.getContainer())===null||t===void 0||t.removeEventListener(Yt.WHEEL,this.preventDefault),super.destroy()}}Kg.defaultOptions={animation:{duration:200},enable:!0,sensitivity:1,trigger:[],preventDefault:!0};function Hx(r,t,e,n="height"){const i=r[n],a=t[n];return e==="center"?(i+a)/2:r.height}const Il=Object.assign,JQ={getId:r=>r.id||r.name,getPreH:r=>r.preH||0,getPreV:r=>r.preV||0,getHGap:r=>r.hgap||18,getVGap:r=>r.vgap||18,getChildren:r=>r.children,getHeight:r=>r.height||36,getWidth(r){const t=r.label||" ";return r.width||18*t.split("").length}};class Vg{constructor(t,e){if(this.x=0,this.y=0,this.depth=0,this.children=[],this.hgap=0,this.vgap=0,t instanceof Vg||"x"in t&&"y"in t&&"children"in t){const a=t;return this.data=a.data,this.id=a.id,this.x=a.x,this.y=a.y,this.width=a.width,this.height=a.height,this.depth=a.depth,this.children=a.children,this.parent=a.parent,this.hgap=a.hgap,this.vgap=a.vgap,this.preH=a.preH,void(this.preV=a.preV)}this.data=t;const n=e.getHGap(t),i=e.getVGap(t);this.preH=e.getPreH(t),this.preV=e.getPreV(t),this.width=e.getWidth(t),this.height=e.getHeight(t),this.width+=this.preH,this.height+=this.preV,this.id=e.getId(t),this.addGap(n,i)}isRoot(){return this.depth===0}isLeaf(){return this.children.length===0}addGap(t,e){this.hgap+=t,this.vgap+=e,this.width+=2*t,this.height+=2*e}eachNode(t){let e,n=[this];for(;e=n.shift();)t(e),n=e.children.concat(n)}DFTraverse(t){this.eachNode(t)}BFTraverse(t){let e,n=[this];for(;e=n.shift();)t(e),n=n.concat(e.children)}getBoundingBox(){const t={left:Number.MAX_VALUE,top:Number.MAX_VALUE,width:0,height:0};return this.eachNode(e=>{t.left=Math.min(t.left,e.x),t.top=Math.min(t.top,e.y),t.width=Math.max(t.width,e.x+e.width),t.height=Math.max(t.height,e.y+e.height)}),t}translate(t=0,e=0){this.eachNode(n=>{n.x+=t,n.y+=e,n.x+=n.preH,n.y+=n.preV})}right2left(){const t=this.getBoundingBox();this.eachNode(e=>{e.x=e.x-2*(e.x-t.left)-e.width}),this.translate(t.width,0)}bottom2top(){const t=this.getBoundingBox();this.eachNode(e=>{e.y=e.y-2*(e.y-t.top)-e.height}),this.translate(0,t.height)}}function Uy(r,t={},e){t=Il({},JQ,t);const n=new Vg(r,t),i=[n];let a;if(!e&&!r.collapsed){for(;a=i.shift();)if(!a.data.collapsed){const s=t.getChildren(a.data),o=s?s.length:0;if(a.children=new Array(o),s&&o)for(let A=0;A{const a=lv.fromNode(i,e);a&&n.push(a)}),e?new lv(t.height,t.width,t.x,n):new lv(t.width,t.height,t.y,n)}};function Gx(r,t,e){e?r.y+=t:r.x+=t,r.children.forEach(n=>{Gx(n,t,e)})}function zx(r,t){let e=t?r.y:r.x;return r.children.forEach(n=>{e=Math.min(zx(n,t),e)}),e}function $Q(r,t){Gx(r,-zx(r,t),t)}function Kx(r,t,e){e?t.y=r.x:t.x=r.x,r.c.forEach((n,i)=>{Kx(n,t.children[i],e)})}function Vx(r,t,e=0){t?(r.x=e,e+=r.width):(r.y=e,e+=r.height),r.children.forEach(n=>{Vx(n,t,e)})}function t3(r,t={}){const e=t.isHorizontal;function n(u){u.cs===0?(u.el=u,u.er=u,u.msel=u.mser=0):(u.el=u.c[0].el,u.msel=u.c[0].msel,u.er=u.c[u.cs-1].er,u.mser=u.c[u.cs-1].mser)}function i(u,h,d){let f=u.c[h-1],g=f.mod,v=u.c[h],p=v.mod;for(;f!==null&&v!==null;){d&&A(f)>d.low&&(d=d.nxt);const y=g+f.prelim+f.w-(p+v.prelim);y>0&&(p+=y,d&&a(u,h,d.index,y));const x=A(f),F=A(v);x<=F&&(f=o(f),f!==null&&(g+=f.mod)),x>=F&&(v=s(v),v!==null&&(p+=v.mod))}!f&&v?function(y,x,F,O){const L=y.c[0].el;L.tl=F;const U=O-F.mod-y.c[0].msel;L.mod+=U,L.prelim-=U,y.c[0].el=y.c[x].el,y.c[0].msel=y.c[x].msel}(u,h,v,p):f&&!v&&function(y,x,F,O){const L=y.c[x].er;L.tr=F;const U=O-F.mod-y.c[x].mser;L.mod+=U,L.prelim-=U,y.c[x].er=y.c[x-1].er,y.c[x].mser=y.c[x-1].mser}(u,h,f,g)}function a(u,h,d,f){u.c[h].mod+=f,u.c[h].msel+=f,u.c[h].mser+=f,function(g,v,p,y){if(p!==v-1){const x=v-p;g.c[p+1].shift+=y/x,g.c[v].shift-=y/x,g.c[v].change-=y-y/x}}(u,h,d,f)}function s(u){return u.cs===0?u.tl:u.c[0]}function o(u){return u.cs===0?u.tr:u.c[u.cs-1]}function A(u){return u.y+u.h}function l(u,h,d){for(;d!==null&&u>=d.low;)d=d.nxt;return{low:u,index:h,nxt:d}}Vx(r,e);const c=qQ.fromNode(r,e);return c&&(function u(h){if(h.cs===0)return void n(h);u(h.c[0]);let d=l(A(h.c[0].el),0,null);for(let f=1;f{o.isRoot()||(o.side="left")}),n.eachNode(o=>{o.isRoot()||(o.side="right")}),{left:e,right:n}}const OA=["LR","RL","TB","BT","H","V"],e3=["LR","RL","H"],n3=OA[0];function Ry(r,t,e){const n=t.direction||n3;if(t.isHorizontal=(a=>e3.indexOf(a)>-1)(n),n&&OA.indexOf(n)===-1)throw new TypeError(`Invalid direction: ${n}`);if(n===OA[0])e(r,t);else if(n===OA[1])e(r,t),r.right2left();else if(n===OA[2])e(r,t);else if(n===OA[3])e(r,t),r.bottom2top();else if(n===OA[4]||n===OA[5]){const{left:a,right:s}=Wx(r,t);e(a,t),e(s,t),t.isHorizontal?a.right2left():a.bottom2top(),s.translate(a.x-s.x,a.y-s.y),r.x=a.x,r.y=s.y;const o=r.getBoundingBox();t.isHorizontal?o.top<0&&r.translate(0,-o.top):o.left<0&&r.translate(-o.left,0)}let i=t.fixedRoot;return i===void 0&&(i=!0),i&&r.translate(-(r.x+r.width/2+r.hgap),-(r.y+r.height/2+r.vgap)),function(a,s){if(s.radial){const[o,A]=s.isHorizontal?["x","y"]:["y","x"],l={x:1/0,y:1/0},c={x:-1/0,y:-1/0};let u=0;a.DFTraverse(f=>{u++;const{x:g,y:v}=f;l.x=Math.min(l.x,g),l.y=Math.min(l.y,v),c.x=Math.max(c.x,g),c.y=Math.max(c.y,v)});const h=c[A]-l[A];if(h===0)return;const d=2*Math.PI/u;a.DFTraverse(f=>{const g=f[A],v=l[A],p=f[o],y=a[o],x=(g-v)/h*(2*Math.PI-d)+d,F=p-y;f.x=Math.cos(x)*F,f.y=Math.sin(x)*F})}}(r,t),r}class r3 extends Wg{execute(){return Ry(this.rootNode,this.options,t3)}}const i3={};function jx(r,t){const e=Il({},i3,t);return new r3(r,e).execute()}class a3{constructor(t=0,e=[]){this.x=0,this.y=0,this.leftChild=null,this.rightChild=null,this.isLeaf=!1,this.height=t,this.children=e}}const s3={isHorizontal:!0,nodeSep:20,nodeSize:20,rankSep:200,subTreeSep:10};function Zx(r,t,e){e?(t.x=r.x,t.y=r.y):(t.x=r.y,t.y=r.x),r.children.forEach((n,i)=>{Zx(n,t.children[i],e)})}function o3(r,t={}){const e=Il({},s3,t);let n=0,i=null;const a=function s(o){o.width=0,o.depth&&o.depth>n&&(n=o.depth);const A=o.children,l=A.length,c=new a3(0,[]);return A.forEach((u,h)=>{const d=s(u);c.children.push(d),h===0&&(c.leftChild=d),h===l-1&&(c.rightChild=d)}),c.originNode=o,c.isLeaf=o.isLeaf(),c}(r);return function s(o){if(o.isLeaf||o.children.length===0)o.drawingDepth=n;else{const A=o.children.map(c=>s(c)),l=Math.min(...A);o.drawingDepth=l-1}return o.drawingDepth}(a),function s(o){o.x=o.drawingDepth*e.rankSep,o.isLeaf?(o.y=0,i&&(o.y=i.y+i.height+e.nodeSep,o.originNode.parent!==i.originNode.parent&&(o.y+=e.subTreeSep)),i=o):(o.children.forEach(A=>{s(A)}),o.y=(o.leftChild.y+o.rightChild.y)/2)}(a),Zx(a,r,e.isHorizontal),r}class A3 extends Wg{execute(){return this.rootNode.width=0,Ry(this.rootNode,this.options,o3)}}const l3={};function Yx(r,t){const e=Il({},l3,t);return new A3(r,e).execute()}function jg(r,t,e,n){let i=null;r.eachNode(a=>{(function(s,o,A,l,c){const u=(typeof A=="function"?A(s):A)*s.depth;if(!l)try{if(s.parent&&s.id===s.parent.children[0].id)return s.x+=u,void(s.y=o?o.y:0)}catch(h){}if(s.x+=u,o){if(s.y=o.y+Hx(o,s,c),o.parent&&s.parent&&s.parent.id!==o.parent.id){const h=o.parent,d=h.y+Hx(h,s,c);s.y=d>s.y?d:s.y}}else s.y=0})(a,i,t,e,n),i=a})}const Qh=["LR","RL","H"],c3=Qh[0];class u3 extends Wg{execute(){const t=this.options,e=this.rootNode;t.isHorizontal=!0;const{indent:n=20,dropCap:i=!0,direction:a=c3,align:s}=t;if(a&&Qh.indexOf(a)===-1)throw new TypeError(`Invalid direction: ${a}`);if(a===Qh[0])jg(e,n,i,s);else if(a===Qh[1])jg(e,n,i,s),e.right2left();else if(a===Qh[2]){const{left:o,right:A}=Wx(e,t);jg(o,n,i,s),o.right2left(),jg(A,n,i,s);const l=o.getBoundingBox();A.translate(l.width,0),e.x=A.x-e.width/2}return e}}const h3={};function Xx(r,t){const e=Il({},h3,t);return new u3(r,e).execute()}function Jx(r,t){let e=0;return r.children.length?r.children.forEach(n=>{e+=Jx(n,t)}):e=r.height,r._subTreeSep=t.getSubTreeSep(r.data),r.totalHeight=Math.max(r.height,e)+2*r._subTreeSep,r.totalHeight}function qx(r){const t=r.children,e=t.length;if(e){t.forEach(o=>{qx(o)});const n=t[0],i=t[e-1],a=i.y-n.y+i.height;let s=0;if(t.forEach(o=>{s+=o.totalHeight}),a>r.height)r.y=n.y+a/2-r.height/2;else if(t.length!==1||r.height>s){const o=r.y+(r.height-a)/2-n.y;t.forEach(A=>{A.translate(0,o)})}else r.y=(n.y+n.height/2+i.y+i.height/2)/2-r.height/2}}const d3={getSubTreeSep:()=>0};function f3(r,t={}){return t=Il({},d3,t),r.parent={x:0,width:0,height:0,y:0},r.BFTraverse(e=>{e.x=e.parent.x+e.parent.width}),r.parent=void 0,Jx(r,t),r.startY=0,r.y=r.totalHeight/2-r.height/2,r.eachNode(e=>{const n=e.children,i=n.length;if(i){const a=n[0];if(a.startY=e.startY+e._subTreeSep,i===1)a.y=e.y+e.height/2-a.height/2;else{a.y=a.startY+a.totalHeight/2-a.height/2;for(let s=1;s{if(r!=="next"&&r!=="prev")return t},tC=r=>{r.prev.next=r.next,r.next.prev=r.prev,delete r.next,delete r.prev};class m3{constructor(){const t={};t.prev=t,t.next=t.prev,this.shortcut=t}dequeue(){const t=this.shortcut,e=t.prev;if(e&&e!==t)return tC(e),e}enqueue(t){const e=this.shortcut;t.prev&&t.next&&tC(t),t.next=e.next,e.next.prev=t,e.next=t,t.prev=e}toString(){const t=[],e=this.shortcut;let n=e.prev;for(;n!==e;)t.push(JSON.stringify(n,p3)),n=n==null?void 0:n.prev;return`[${t.join(", ")}]`}}class y3 extends m3{}const w3=()=>1,E3=(r,t)=>{var e;if(r.getAllNodes().length<=1)return[];const n=b3(r,t||w3);return(e=B3(n.graph,n.buckets,n.zeroIdx).map(a=>r.getRelatedEdges(a.v,"out").filter(({target:s})=>s===a.w)))===null||e===void 0?void 0:e.flat()},B3=(r,t,e)=>{let n=[];const i=t[t.length-1],a=t[0];let s;for(;r.getAllNodes().length;){for(;s=a.dequeue();)Dy(r,t,e,s);for(;s=i.dequeue();)Dy(r,t,e,s);if(r.getAllNodes().length){for(let o=t.length-2;o>0;--o)if(s=t[o].dequeue(),s){n=n.concat(Dy(r,t,e,s,!0));break}}}return n},Dy=(r,t,e,n,i)=>{var a,s;const o=[];return r.hasNode(n.v)&&((a=r.getRelatedEdges(n.v,"in"))===null||a===void 0||a.forEach(A=>{const l=A.data.weight,c=r.getNode(A.source);i&&o.push({v:A.source,w:A.target,in:0,out:0}),c.data.out===void 0&&(c.data.out=0),c.data.out-=l,Py(t,e,Object.assign({v:c.id},c.data))}),(s=r.getRelatedEdges(n.v,"out"))===null||s===void 0||s.forEach(A=>{const l=A.data.weight,c=A.target,u=r.getNode(c);u.data.in===void 0&&(u.data.in=0),u.data.in-=l,Py(t,e,Object.assign({v:u.id},u.data))}),r.removeNode(n.v)),i?o:void 0},b3=(r,t)=>{const e=new Gr;let n=0,i=0;r.getAllNodes().forEach(A=>{e.addNode({id:A.id,data:{v:A.id,in:0,out:0}})}),r.getAllEdges().forEach(A=>{const l=e.getRelatedEdges(A.source,"out").find(u=>u.target===A.target),c=(t==null?void 0:t(A))||1;l?e.updateEdgeData(l==null?void 0:l.id,Object.assign(Object.assign({},l.data),{weight:l.data.weight+c})):e.addEdge({id:A.id,source:A.source,target:A.target,data:{weight:c}}),i=Math.max(i,e.getNode(A.source).data.out+=c),n=Math.max(n,e.getNode(A.target).data.in+=c)});const a=[],s=i+n+3;for(let A=0;A{Py(a,o,Object.assign({v:A.id},e.getNode(A.id).data))}),{buckets:a,zeroIdx:o,graph:e}},Py=(r,t,e)=>{e.out?e.in?r[e.out-e.in+t].enqueue(e):r[r.length-1].enqueue(e):r[0].enqueue(e)},x3=(r,t)=>{const n=t==="greedy"?E3(r,(i=>a=>a.data.weight||1)(r)):C3(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)})})},C3=r=>{const t=[],e={},n={},i=a=>{n[a]||(n[a]=!0,e[a]=!0,r.getRelatedEdges(a,"out").forEach(s=>{e[s.target]?t.push(s):i(s.target)}),delete e[a])};return r.getAllNodes().forEach(a=>i(a.id)),t},S3=r=>{r.getAllEdges().forEach(t=>{const e=t.data;if(e.reversed){r.removeEdge(t.id);const n=e.forwardName;delete e.reversed,delete e.forwardName,r.addEdge({id:t.id,source:t.target,target:t.source,data:Object.assign(Object.assign({},e),{forwardName:n})})}})},M3=(r,t)=>Number(r)-Number(t),Vc=(r,t,e,n)=>{let i;do i=`${n}${Math.random()}`;while(r.hasNode(i));return e.dummy=t,r.addNode({id:i,data:e}),i},F3=r=>{const t=new Gr;return r.getAllNodes().forEach(e=>{t.addNode(Object.assign({},e))}),r.getAllEdges().forEach(e=>{const n=t.getRelatedEdges(e.source,"out").find(i=>i.target===e.target);n?t.updateEdgeData(n==null?void 0:n.id,Object.assign(Object.assign({},n.data),{weight:n.data.weight+e.data.weight||0,minlen:Math.max(n.data.minlen,e.data.minlen||1)})):t.addEdge({id:e.id,source:e.source,target:e.target,data:{weight:e.data.weight||0,minlen:e.data.minlen||1}})}),t},eC=r=>{const t=new Gr;return r.getAllNodes().forEach(e=>{r.getChildren(e.id).length||t.addNode(Object.assign({},e))}),r.getAllEdges().forEach(e=>{t.addEdge(e)}),t},nC=(r,t)=>r==null?void 0:r.reduce((e,n,i)=>(e[n]=t[i],e),{}),mz=r=>{const t={};return r.getAllNodes().forEach(e=>{const n={};r.getRelatedEdges(e.id,"out").forEach(i=>{n[i.target]=(n[i.target]||0)+(i.data.weight||0)}),t[e.id]=n}),t},yz=r=>{const t=r.getAllNodes(),e=t.map(n=>{const i={};return r.getRelatedEdges(n.id,"in").forEach(a=>{i[a.source]=(i[a.source]||0)+a.data.weight}),i});return nC(t.map(n=>n.id),e)},rC=(r,t)=>{const e=Number(r.x),n=Number(r.y),i=Number(t.x)-e,a=Number(t.y)-n;let s=Number(r.width)/2,o=Number(r.height)/2;if(!i&&!a)return{x:0,y:0};let A,l;return Math.abs(a)*s>Math.abs(i)*o?(a<0&&(o=-o),A=o*i/a,l=o):(i<0&&(s=-s),A=s,l=s*a/i),{x:e+A,y:n+l}},Uh=r=>{const t=[],e=aC(r)+1;for(let n=0;n{const i=n.data.rank;i!==void 0&&t[i]&&t[i].push(n.id)});for(let n=0;nM3(r.getNode(i).data.order,r.getNode(a).data.order));return t},T3=r=>{const t=r.getAllNodes().filter(n=>n.data.rank!==void 0).map(n=>n.data.rank),e=Math.min(...t);r.getAllNodes().forEach(n=>{n.data.hasOwnProperty("rank")&&e!==1/0&&(n.data.rank-=e)})},O3=(r,t=0)=>{const e=r.getAllNodes(),n=e.filter(o=>o.data.rank!==void 0).map(o=>o.data.rank),i=Math.min(...n),a=[];e.forEach(o=>{const A=(o.data.rank||0)-i;a[A]||(a[A]=[]),a[A].push(o.id)});let s=0;for(let o=0;o{const c=r.getNode(l);c&&(c.data.rank=c.data.rank||0,c.data.rank+=s)}))}},iC=(r,t,e,n)=>{const i={width:0,height:0};return ye(e)&&ye(n)&&(i.rank=e,i.order=n),Vc(r,"border",i,t)},aC=r=>{let t;return r.getAllNodes().forEach(e=>{const n=e.data.rank;n!==void 0&&(t===void 0||n>t)&&(t=n)}),t||(t=0),t},I3=(r,t)=>{const e={lhs:[],rhs:[]};return r==null||r.forEach(n=>{t(n)?e.lhs.push(n):e.rhs.push(n)}),e},_y=(r,t)=>r.reduce((e,n)=>{const i=t(e),a=t(n);return i>a?n:e}),sC=(r,t,e,n,i,a)=>{n.includes(t.id)||(n.push(t.id),e||a.push(t.id),i(t.id).forEach(s=>sC(r,s,e,n,i,a)),e&&a.push(t.id))},oC=(r,t,e,n)=>{const i=Array.isArray(t)?t:[t],a=A=>n?r.getSuccessors(A):r.getNeighbors(A),s=[],o=[];return i.forEach(A=>{if(r.hasNode(A.id))sC(r,A,e==="post",o,a,s);else throw new Error(`Graph does not have node: ${A}`)}),s},N3=r=>{const t=e=>{const n=r.getChildren(e),i=r.getNode(e);if(n!=null&&n.length&&n.forEach(a=>t(a.id)),i.data.hasOwnProperty("minRank")){i.data.borderLeft=[],i.data.borderRight=[];for(let a=i.data.minRank,s=i.data.maxRank+1;at(e.id))},AC=(r,t,e,n,i,a)=>{const s={rank:a,borderType:t,width:0,height:0},o=i.data[t][a-1],A=Vc(r,"border",s,e);i.data[t][a]=A,r.setParent(A,n),o&&r.addEdge({id:`e${Math.random()}`,source:o,target:A,data:{weight:1}})},L3=(r,t)=>{const e=t.toLowerCase();(e==="lr"||e==="rl")&&lC(r)},k3=(r,t)=>{const e=t.toLowerCase();(e==="bt"||e==="rl")&&Q3(r),(e==="lr"||e==="rl")&&(U3(r),lC(r))},lC=r=>{r.getAllNodes().forEach(t=>{cC(t)}),r.getAllEdges().forEach(t=>{cC(t)})},cC=r=>{const t=r.data.width;r.data.width=r.data.height,r.data.height=t},Q3=r=>{r.getAllNodes().forEach(t=>{Hy(t.data)}),r.getAllEdges().forEach(t=>{var e;(e=t.data.points)===null||e===void 0||e.forEach(n=>Hy(n)),t.data.hasOwnProperty("y")&&Hy(t.data)})},Hy=r=>{r!=null&&r.y&&(r.y=-r.y)},U3=r=>{r.getAllNodes().forEach(t=>{Gy(t.data)}),r.getAllEdges().forEach(t=>{var e;(e=t.data.points)===null||e===void 0||e.forEach(n=>Gy(n)),t.data.hasOwnProperty("x")&&Gy(t.data)})},Gy=r=>{const t=r.x;r.x=r.y,r.y=t},R3=r=>{const t=Vc(r,"root",{},"_root"),e=D3(r);let n=Math.max(...Object.values(e));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=P3(r)+1;return r.getRoots().forEach(o=>{uC(r,t,a,s,i,e,o.id)}),{nestingRoot:t,nodeRankFactor:a}},uC=(r,t,e,n,i,a,s)=>{const o=r.getChildren(s);if(!(o!=null&&o.length)){s!==t&&r.addEdge({id:`e${Math.random()}`,source:t,target:s,data:{weight:0,minlen:e}});return}const A=iC(r,"_bt"),l=iC(r,"_bb"),c=r.getNode(s);r.setParent(A,s),c.data.borderTop=A,r.setParent(l,s),c.data.borderBottom=l,o==null||o.forEach(u=>{uC(r,t,e,n,i,a,u.id);const h=u.data.borderTop?u.data.borderTop:u.id,d=u.data.borderBottom?u.data.borderBottom:u.id,f=u.data.borderTop?n:2*n,g=h!==d?1:i-a[s]+1;r.addEdge({id:`e${Math.random()}`,source:A,target:h,data:{minlen:g,weight:f,nestingEdge:!0}}),r.addEdge({id:`e${Math.random()}`,source:d,target:l,data:{minlen:g,weight:f,nestingEdge:!0}})}),r.getParent(s)||r.addEdge({id:`e${Math.random()}`,source:t,target:A,data:{weight:0,minlen:i+a[s]}})},D3=r=>{const t={},e=(n,i)=>{const a=r.getChildren(n);a==null||a.forEach(s=>e(s.id,i+1)),t[n]=i};return r.getRoots().forEach(n=>e(n.id,1)),t},P3=r=>{let t=0;return r.getAllEdges().forEach(e=>{t+=e.data.weight}),t},_3=(r,t)=>{t&&r.removeNode(t),r.getAllEdges().forEach(e=>{e.data.nestingEdge&&r.removeEdge(e.id)})},H3="edge",hC="edge-label",G3=(r,t)=>{r.getAllEdges().forEach(e=>z3(r,e,t))},z3=(r,t,e)=>{let n=t.source,i=r.getNode(n).data.rank;const a=t.target,s=r.getNode(a).data.rank,o=t.data.labelRank;if(s===i+1)return;r.removeEdge(t.id);let A,l,c;for(c=0,++i;i{t.forEach(e=>{let n=r.getNode(e);const{data:i}=n,a=i.originalEdge;let s;a&&r.addEdge(a);let o=e;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===hC&&(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)})},V3=(r,t,e)=>{const n={};let i;e==null||e.forEach(a=>{let s=r.getParent(a),o,A;for(;s;){if(o=r.getParent(s.id),o?(A=n[o.id],n[o.id]=s.id):(A=i,i=s.id),A&&A!==s.id){t.hasNode(A)||t.addNode({id:A,data:{}}),t.hasNode(s.id)||t.addNode({id:s.id,data:{}}),t.hasEdge(`e${A}-${s.id}`)||t.addEdge({id:`e${A}-${s.id}`,source:A,target:s.id,data:{}});return}s=o}})},W3=(r,t,e)=>{const n=j3(r),i=new Gr({tree:[{id:n,children:[],data:{}}]});return r.getAllNodes().forEach(a=>{const s=r.getParent(a.id);(a.data.rank===t||a.data.minRank<=t&&t<=a.data.maxRank)&&(i.hasNode(a.id)||i.addNode(Object.assign({},a)),s!=null&&s.id&&!i.hasNode(s==null?void 0:s.id)&&i.addNode(Object.assign({},s)),i.setParent(a.id,(s==null?void 0:s.id)||n),r.getRelatedEdges(a.id,e).forEach(o=>{const A=o.source===a.id?o.target:o.source;i.hasNode(A)||i.addNode(Object.assign({},r.getNode(A)));const l=i.getRelatedEdges(A,"out").find(({target:u})=>u===a.id),c=l!==void 0?l.data.weight:0;l?i.updateEdgeData(l.id,Object.assign(Object.assign({},l.data),{weight:o.data.weight+c})):i.addEdge({id:o.id,source:A,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[t],borderRight:a.data.borderRight[t]})))}),i},j3=r=>{let t;for(;r.hasNode(t=`_root${Math.random()}`););return t},Z3=(r,t,e)=>{const n=nC(e,e.map((c,u)=>u)),a=t.map(c=>{const u=r.getRelatedEdges(c,"out").map(h=>({pos:n[h.target]||0,weight:h.data.weight}));return u==null?void 0:u.sort((h,d)=>h.pos-d.pos)}).flat().filter(c=>c!==void 0);let s=1;for(;s{if(c){let u=c.pos+s;A[u]+=c.weight;let h=0;for(;u>0;)u%2&&(h+=A[u+1]),u=u-1>>1,A[u]+=c.weight;l+=c.weight*h}}),l},dC=(r,t)=>{let e=0;for(let n=1;n<(t==null?void 0:t.length);n+=1)e+=Z3(r,t[n-1],t[n]);return e},fC=r=>{const t={},e=r.getAllNodes(),n=e.map(l=>{var c;return(c=l.data.rank)!==null&&c!==void 0?c:-1/0}),i=Math.max(...n),a=[];for(let l=0;lr.getNode(l.id).data.rank-r.getNode(c.id).data.rank),A=s.filter(l=>r.getNode(l.id).data.fixorder!==void 0).sort((l,c)=>r.getNode(l.id).data.fixorder-r.getNode(c.id).data.fixorder);return A==null||A.forEach(l=>{isNaN(r.getNode(l.id).data.rank)||a[r.getNode(l.id).data.rank].push(l.id),t[l.id]=!0}),s==null||s.forEach(l=>r.dfsTree(l.id,c=>{if(t.hasOwnProperty(c.id))return!0;t[c.id]=!0,isNaN(c.data.rank)||a[c.data.rank].push(c.id)})),a},Y3=(r,t)=>t.map(e=>{const n=r.getRelatedEdges(e,"in");if(!(n!=null&&n.length))return{v:e};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:e,barycenter:i.sum/i.weight,weight:i.weight}}),X3=(r,t)=>{var e,n,i;const a={};r==null||r.forEach((o,A)=>{a[o.v]={i:A,indegree:0,in:[],out:[],vs:[o.v]};const l=a[o.v];o.barycenter!==void 0&&(l.barycenter=o.barycenter,l.weight=o.weight)}),(e=t.getAllEdges())===null||e===void 0||e.forEach(o=>{const A=a[o.source],l=a[o.target];A!==void 0&&l!==void 0&&(l.indegree++,A.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 J3(s)},J3=r=>{var t,e;const n=[],i=A=>l=>{l.merged||(l.barycenter===void 0||A.barycenter===void 0||l.barycenter>=A.barycenter)&&q3(A,l)},a=A=>l=>{l.in.push(A),--l.indegree===0&&r.push(l)};for(;r!=null&&r.length;){const A=r.pop();n.push(A),(t=A.in.reverse())===null||t===void 0||t.forEach(l=>i(A)(l)),(e=A.out)===null||e===void 0||e.forEach(l=>a(A)(l))}const s=n.filter(A=>!A.merged),o=["vs","i","barycenter","weight"];return s.map(A=>{const l={};return o==null||o.forEach(c=>{A[c]!==void 0&&(l[c]=A[c])}),l})},q3=(r,t)=>{var e;let n=0,i=0;r.weight&&(n+=r.barycenter*r.weight,i+=r.weight),t.weight&&(n+=t.barycenter*t.weight,i+=t.weight),r.vs=(e=t.vs)===null||e===void 0?void 0:e.concat(r.vs),r.barycenter=n/i,r.weight=i,r.i=Math.min(t.i,r.i),t.merged=!0};var $3=X3;const tU=(r,t,e,n)=>{const i=I3(r,h=>{const d=h.hasOwnProperty("fixorder")&&!isNaN(h.fixorder);return n?!d&&h.hasOwnProperty("barycenter"):d||h.hasOwnProperty("barycenter")}),a=i.lhs,s=i.rhs.sort((h,d)=>-h.i- -d.i),o=[];let A=0,l=0,c=0;a==null||a.sort(eU(!!t,!!e)),c=gC(o,s,c),a==null||a.forEach(h=>{var d;c+=(d=h.vs)===null||d===void 0?void 0:d.length,o.push(h.vs),A+=h.barycenter*h.weight,l+=h.weight,c=gC(o,s,c)});const u={vs:o.flat()};return l&&(u.barycenter=A/l,u.weight=l),u},gC=(r,t,e)=>{let n=e,i;for(;t.length&&(i=t[t.length-1]).i<=n;)t.pop(),r==null||r.push(i.vs),n++;return n},eU=(r,t)=>(e,n)=>{if(e.fixorder!==void 0&&n.fixorder!==void 0)return e.fixorder-n.fixorder;if(e.barycentern.barycenter)return 1;if(t&&e.order!==void 0&&n.order!==void 0){if(e.ordern.order)return 1}return r?n.i-e.i:e.i-n.i},vC=(r,t,e,n,i,a)=>{var s,o,A,l;let c=r.getChildren(t).map(y=>y.id);const u=r.getNode(t),h=u?u.data.borderLeft:void 0,d=u?u.data.borderRight:void 0,f={};h&&(c=c==null?void 0:c.filter(y=>y!==h&&y!==d));const g=Y3(r,c||[]);g==null||g.forEach(y=>{var x;if(!((x=r.getChildren(y.v))===null||x===void 0)&&x.length){const F=vC(r,y.v,e,n,a);f[y.v]=F,F.hasOwnProperty("barycenter")&&rU(y,F)}});const v=$3(g,e);nU(v,f),(s=v.filter(y=>y.vs.length>0))===null||s===void 0||s.forEach(y=>{const x=r.getNode(y.vs[0]);x&&(y.fixorder=x.data.fixorder,y.order=x.data.order)});const p=tU(v,n,i,a);if(h&&(p.vs=[h,p.vs,d].flat(),!((o=r.getPredecessors(h))===null||o===void 0)&&o.length)){const y=r.getNode(((A=r.getPredecessors(h))===null||A===void 0?void 0:A[0].id)||""),x=r.getNode(((l=r.getPredecessors(d))===null||l===void 0?void 0:l[0].id)||"");p.hasOwnProperty("barycenter")||(p.barycenter=0,p.weight=0),p.barycenter=(p.barycenter*p.weight+y.data.order+x.data.order)/(p.weight+2),p.weight+=2}return p},nU=(r,t)=>{r==null||r.forEach(e=>{var n;const i=(n=e.vs)===null||n===void 0?void 0:n.map(a=>t[a]?t[a].vs:a);e.vs=i.flat()})},rU=(r,t)=>{r.barycenter!==void 0?(r.barycenter=(r.barycenter*r.weight+t.barycenter*t.weight)/(r.weight+t.weight),r.weight+=t.weight):(r.barycenter=t.barycenter,r.weight=t.weight)},iU=(r,t)=>{const e=aC(r),n=[],i=[];for(let c=1;c-1;c--)i.push(c);const a=pC(r,n,"in"),s=pC(r,i,"out");let o=fC(r);zy(r,o);let A=Number.POSITIVE_INFINITY,l;for(let c=0,u=0;u<4;++c,++u){mC(c%2?a:s,c%4>=2,!1,t),o=Uh(r);const h=dC(r,o);h=2,!0,t),o=Uh(r);const h=dC(r,o);ht.map(n=>W3(r,n,e)),mC=(r,t,e,n)=>{const i=new Gr;r==null||r.forEach(a=>{var s;const o=a.getRoots()[0].id,A=vC(a,o,i,t,e,n);for(let l=0;l<((s=A.vs)===null||s===void 0?void 0:s.length);l++){const c=a.getNode(A.vs[l]);c&&(c.data.order=l)}V3(a,i,A.vs)})},zy=(r,t)=>{t==null||t.forEach(e=>{e==null||e.forEach((n,i)=>{r.getNode(n).data.order=i})})},aU=(r,t)=>{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))})},sU=r=>{const t={};let e=0;const n=i=>{const a=e;r.getChildren(i).forEach(s=>n(s.id)),t[i]={low:a,lim:e++}};return r.getRoots().forEach(i=>n(i.id)),t},oU=(r,t,e,n)=>{var i,a;const s=[],o=[],A=Math.min(t[e].low,t[n].low),l=Math.max(t[e].lim,t[n].lim);let c,u;c=e;do c=(i=r.getParent(c))===null||i===void 0?void 0:i.id,s.push(c);while(c&&(t[c].low>A||l>t[c].lim));for(u=c,c=n;c&&c!==u;)o.push(c),c=(a=r.getParent(c))===null||a===void 0?void 0:a.id;return{lca:u,path:s.concat(o.reverse())}},AU=(r,t)=>{const e=sU(r);t.forEach(n=>{var i,a;let s=n,o=r.getNode(s);const A=o.data.originalEdge;if(!A)return;const l=oU(r,e,A.source,A.target),c=l.path,u=l.lca;let h=0,d=c[h],f=!0;for(;s!==A.target;){if(o=r.getNode(s),f){for(;d!==u&&((i=r.getNode(d))===null||i===void 0?void 0:i.data.maxRank){const e={},n=(i,a)=>{let s=0,o=0;const A=i.length,l=a==null?void 0:a[(a==null?void 0:a.length)-1];return a==null||a.forEach((c,u)=>{var h;const d=lU(r,c),f=d?r.getNode(d.id).data.order:A;(d||c===l)&&((h=a.slice(o,u+1))===null||h===void 0||h.forEach(g=>{var v;(v=r.getPredecessors(g))===null||v===void 0||v.forEach(p=>{var y;const x=r.getNode(p.id),F=x.data.order;(F{const e={};function n(o,A,l,c,u){var h,d;let f;for(let g=A;g{const p=r.getNode(v.id);p.data.dummy&&(p.data.orderu)&&EC(e,v.id,f)}))}function i(o){return JSON.stringify(o.slice(1))}function a(o,A){const l=i(o);A.get(l)||(n(...o),A.set(l,!0))}const s=(o,A)=>{let l=-1,c,u=0;const h=new Map;return A==null||A.forEach((d,f)=>{var g;if(((g=r.getNode(d))===null||g===void 0?void 0:g.data.dummy)==="border"){const v=r.getPredecessors(d)||[];v.length&&(c=r.getNode(v[0].id).data.order,a([A,u,f,l,c],h),u=f,l=c)}a([A,u,A.length,c,o.length],h)}),A};return t!=null&&t.length&&t.reduce(s),e},lU=(r,t)=>{var e,n;if(!((e=r.getNode(t))===null||e===void 0)&&e.data.dummy)return(n=r.getPredecessors(t))===null||n===void 0?void 0:n.find(i=>r.getNode(i.id).data.dummy)},EC=(r,t,e)=>{let n=t,i=e;if(n>i){const s=n;n=i,i=s}let a=r[n];a||(r[n]=a={}),a[i]=!0},cU=(r,t,e)=>{let n=t,i=e;if(n>i){const a=t;n=i,i=a}return!!r[n]},BC=(r,t,e,n)=>{const i={},a={},s={};return t==null||t.forEach(o=>{o==null||o.forEach((A,l)=>{i[A]=A,a[A]=A,s[A]=l})}),t==null||t.forEach(o=>{let A=-1;o==null||o.forEach(l=>{let c=n(l).map(u=>u.id);if(c.length){c=c.sort((h,d)=>s[h]-s[d]);const u=(c.length-1)/2;for(let h=Math.floor(u),d=Math.ceil(u);h<=d;++h){const f=c[h];a[l]===l&&A{var o;const A={},l=uU(r,t,e,i,a,s),c=s?"borderLeft":"borderRight",u=(f,g)=>{let v=l.getAllNodes(),p=v.pop();const y={};for(;p;)y[p.id]?f(p.id):(y[p.id]=!0,v.push(p),v=v.concat(g(p.id))),p=v.pop()},h=f=>{A[f]=(l.getRelatedEdges(f,"in")||[]).reduce((g,v)=>Math.max(g,(A[v.source]||0)+v.data.weight),0)},d=f=>{const g=(l.getRelatedEdges(f,"out")||[]).reduce((p,y)=>Math.min(p,(A[y.target]||0)-y.data.weight),Number.POSITIVE_INFINITY),v=r.getNode(f);g!==Number.POSITIVE_INFINITY&&v.data.borderType!==c&&(A[f]=Math.max(A[f],g))};return u(h,l.getPredecessors.bind(l)),u(d,l.getSuccessors.bind(l)),(o=Object.values(n))===null||o===void 0||o.forEach(f=>{A[f]=A[e[f]]}),A},uU=(r,t,e,n,i,a)=>{const s=new Gr,o=hU(n,i,a);return t==null||t.forEach(A=>{let l;A==null||A.forEach(c=>{const u=e[c];if(s.hasNode(u)||s.addNode({id:u,data:{}}),l){const h=e[l],d=s.getRelatedEdges(h,"out").find(f=>f.target===u);d?s.updateEdgeData(d.id,Object.assign(Object.assign({},d.data),{weight:Math.max(o(r,c,l),d.data.weight||0)})):s.addEdge({id:`e${Math.random()}`,source:h,target:u,data:{weight:Math.max(o(r,c,l),0)}})}l=c})}),s},xC=(r,t)=>_y(Object.values(t),e=>{var n;let i=Number.NEGATIVE_INFINITY,a=Number.POSITIVE_INFINITY;return(n=Object.keys(e))===null||n===void 0||n.forEach(s=>{const o=e[s],A=dU(r,s)/2;i=Math.max(o+A,i),a=Math.min(o-A,a)}),i-a});function CC(r,t){const e=Object.values(t),n=Math.min(...e),i=Math.max(...e);["u","d"].forEach(a=>{["l","r"].forEach(s=>{const o=a+s,A=r[o];let l;if(A===t)return;const c=Object.values(A);l=s==="l"?n-Math.min(...c):i-Math.max(...c),l&&(r[o]={},Object.keys(A).forEach(u=>{r[o][u]=A[u]+l}))})})}const SC=(r,t)=>{const e={};return Object.keys(r.ul).forEach(n=>{if(t)e[n]=r[t.toLowerCase()][n];else{const i=Object.values(r).map(a=>a[n]);e[n]=(i[0]+i[1])/2}}),e},wz=(r,t)=>{const{align:e,nodesep:n=0,edgesep:i=0}=t||{},a=buildLayerMatrix(r),s=Object.assign(yC(r,a),wC(r,a)),o={};let A;["u","d"].forEach(c=>{A=c==="u"?a:Object.values(a).reverse(),["l","r"].forEach(u=>{u==="r"&&(A=A.map(g=>Object.values(g).reverse()));const h=(c==="u"?r.getPredecessors:r.getSuccessors).bind(r),d=BC(r,A,s,h),f=bC(r,A,d.root,d.align,n,i,u==="r");u==="r"&&Object.keys(f).forEach(g=>{f[g]=-f[g]}),o[c+u]=f})});const l=xC(r,o);return CC(o,l),SC(o,e)},hU=(r,t,e)=>(n,i,a)=>{const s=n.getNode(i),o=n.getNode(a);let A=0,l=0;if(A+=s.data.width/2,s.data.hasOwnProperty("labelpos"))switch((s.data.labelpos||"").toLowerCase()){case"l":l=-s.data.width/2;break;case"r":l=s.data.width/2;break}if(l&&(A+=e?l:-l),l=0,A+=(s.data.dummy?t:r)/2,A+=(o.data.dummy?t:r)/2,A+=o.data.width/2,o.data.labelpos)switch((o.data.labelpos||"").toLowerCase()){case"l":l=o.data.width/2;break;case"r":l=-o.data.width/2;break}return l&&(A+=e?l:-l),l=0,A},dU=(r,t)=>r.getNode(t).data.width||0,fU=(r,t)=>{const{ranksep:e=0}=t||{},n=Uh(r);let i=0;n==null||n.forEach(a=>{const s=a.map(A=>r.getNode(A).data.height),o=Math.max(...s,0);a==null||a.forEach(A=>{r.getNode(A).data.y=i+o/2}),i+=o+e})},gU=(r,t)=>{const{align:e,nodesep:n=0,edgesep:i=0}=t||{},a=Uh(r),s=Object.assign(yC(r,a),wC(r,a)),o={};let A=[];["u","d"].forEach(c=>{A=c==="u"?a:Object.values(a).reverse(),["l","r"].forEach(u=>{u==="r"&&(A=A.map(g=>Object.values(g).reverse()));const h=(c==="u"?r.getPredecessors:r.getSuccessors).bind(r),d=BC(r,A,s,h),f=bC(r,A,d.root,d.align,n,i,u==="r");u==="r"&&Object.keys(f).forEach(g=>f[g]=-f[g]),o[c+u]=f})});const l=xC(r,o);return l&&CC(o,l),SC(o,e)},vU=(r,t)=>{var e;const n=eC(r);fU(n,t);const i=gU(n,t);(e=Object.keys(i))===null||e===void 0||e.forEach(a=>{n.getNode(a).data.x=i[a]})},MC=r=>{const t={},e=n=>{var i;const a=r.getNode(n);if(!a)return 0;if(t[n])return a.data.rank;t[n]=!0;let s;return(i=r.getRelatedEdges(n,"out"))===null||i===void 0||i.forEach(o=>{const A=e(o.target),l=o.data.minlen,c=A-l;c&&(s===void 0||cr.getRelatedEdges(n.id,"in").length===0).forEach(n=>e(n.id))},pU=r=>{const t={};let e;const n=s=>{var o;const A=r.getNode(s);if(!A)return 0;if(t[s])return A.data.rank;t[s]=!0;let l;return(o=r.getRelatedEdges(s,"out"))===null||o===void 0||o.forEach(c=>{const u=n(c.target),h=c.data.minlen,d=u-h;d&&(l===void 0||dr.getRelatedEdges(s.id,"in").length===0).forEach(s=>{s&&n(s.id)}),e===void 0&&(e=0);const i={},a=(s,o)=>{var A;const l=r.getNode(s),c=isNaN(l.data.layer)?o:l.data.layer;(l.data.rank===void 0||l.data.rank{a(u.target,c+u.data.minlen)}))};r.getAllNodes().forEach(s=>{const o=s.data;o&&(isNaN(o.layer)?o.rank-=e:a(s.id,o.layer))})},IA=(r,t)=>r.getNode(t.target).data.rank-r.getNode(t.source).data.rank-t.data.minlen,mU=r=>{const t=new Gr({tree:[]}),e=r.getAllNodes()[0],n=r.getAllNodes().length;t.addNode(e);let i,a;for(;yU(t,r){const e=n=>{t.getRelatedEdges(n,"both").forEach(i=>{const a=i.source,s=n===a?i.target:a;!r.hasNode(s)&&!IA(t,i)&&(r.addNode({id:s,data:{}}),r.addEdge({id:i.id,source:n,target:s,data:{}}),e(s))})};return r.getAllNodes().forEach(n=>e(n.id)),r.getAllNodes().length},wU=r=>{const t=new Gr({tree:[]}),e=r.getAllNodes()[0],n=r.getAllNodes().length;t.addNode(e);let i,a;for(;EU(t,r){const e=n=>{var i;(i=t.getRelatedEdges(n,"both"))===null||i===void 0||i.forEach(a=>{const s=a.source,o=n===s?a.target:s;!r.hasNode(o)&&(t.getNode(o).data.layer!==void 0||!IA(t,a))&&(r.addNode({id:o,data:{}}),r.addEdge({id:a.id,source:n,target:o,data:{}}),e(o))})};return r.getAllNodes().forEach(n=>e(n.id)),r.getAllNodes().length},FC=(r,t)=>_y(t.getAllEdges(),e=>r.hasNode(e.source)!==r.hasNode(e.target)?IA(t,e):1/0),TC=(r,t,e)=>{r.getAllNodes().forEach(n=>{const i=t.getNode(n.id);i.data.rank||(i.data.rank=0),i.data.rank+=e})},BU=r=>{const t=F3(r);MC(t);const e=mU(t);IC(e),OC(e,t);let n,i;for(;n=CU(e);)i=SU(e,t,n),MU(e,t,n,i)},OC=(r,t)=>{let e=oC(r,r.getAllNodes(),"post",!1);e=e.slice(0,(e==null?void 0:e.length)-1),e.forEach(n=>{bU(r,t,n)})},bU=(r,t,e)=>{const i=r.getNode(e).data.parent,a=r.getRelatedEdges(e,"both").find(s=>s.target===i||s.source===i);a.data.cutvalue=xU(r,t,e)},xU=(r,t,e)=>{const i=r.getNode(e).data.parent;let a=!0,s=t.getRelatedEdges(e,"out").find(A=>A.target===i),o=0;return s||(a=!1,s=t.getRelatedEdges(i,"out").find(A=>A.target===e)),o=s.data.weight,t.getRelatedEdges(e,"both").forEach(A=>{const l=A.source===e,c=l?A.target:A.source;if(c!==i){const u=l===a,h=A.data.weight;if(o+=u?h:-h,TU(r,e,c)){const d=r.getRelatedEdges(e,"both").find(f=>f.source===c||f.target===c).data.cutvalue;o+=u?-d:d}}}),o},IC=(r,t=r.getAllNodes()[0].id)=>{NC(r,{},1,t)},NC=(r,t,e,n,i)=>{var a;const s=e;let o=e;const A=r.getNode(n);return t[n]=!0,(a=r.getNeighbors(n))===null||a===void 0||a.forEach(l=>{t[l.id]||(o=NC(r,t,o,l.id,n))}),A.data.low=s,A.data.lim=o++,i?A.data.parent=i:delete A.data.parent,o},CU=r=>r.getAllEdges().find(t=>t.data.cutvalue<0),SU=(r,t,e)=>{let n=e.source,i=e.target;t.getRelatedEdges(n,"out").find(c=>c.target===i)||(n=e.target,i=e.source);const a=r.getNode(n),s=r.getNode(i);let o=a,A=!1;a.data.lim>s.data.lim&&(o=s,A=!0);const l=t.getAllEdges().filter(c=>A===LC(r.getNode(c.source),o)&&A!==LC(r.getNode(c.target),o));return _y(l,c=>IA(t,c))},MU=(r,t,e,n)=>{const i=r.getRelatedEdges(e.source,"both").find(a=>a.source===e.target||a.target===e.target);i&&r.removeEdge(i.id),r.addEdge({id:`e${Math.random()}`,source:n.source,target:n.target,data:{}}),IC(r),OC(r,t),FU(r,t)},FU=(r,t)=>{const e=r.getAllNodes().find(i=>!i.data.parent);let n=oC(r,e,"pre",!1);n=n.slice(1),n.forEach(i=>{const a=r.getNode(i).data.parent;let s=t.getRelatedEdges(i,"out").find(A=>A.target===a),o=!1;!s&&t.hasNode(a)&&(s=t.getRelatedEdges(a,"out").find(A=>A.target===i),o=!0),t.getNode(i).data.rank=(t.hasNode(a)&&t.getNode(a).data.rank||0)+(o?s==null?void 0:s.data.minlen:-(s==null?void 0:s.data.minlen))})},TU=(r,t,e)=>r.getRelatedEdges(t,"both").find(n=>n.source===e||n.target===e),LC=(r,t)=>t.data.low<=r.data.lim&&r.data.lim<=t.data.lim,OU=(r,t)=>{switch(t){case"network-simplex":NU(r);break;case"tight-tree":kC(r);break;case"longest-path":IU(r);break;default:kC(r)}},IU=MC,kC=r=>{pU(r),wU(r)},NU=r=>{BU(r)},LU=(r,t)=>{const{edgeLabelSpace:e,keepNodeOrder:n,prevGraph:i,rankdir:a,ranksep:s}=t;!n&&i&&QU(r,i);const o=HU(r);e&&(t.ranksep=GU(o,{rankdir:a,ranksep:s}));let A;try{A=kU(o,t)}catch(l){if(l.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:
`,l);return}throw l}return UU(r,o),A},kU=(r,t)=>{const{acyclicer:e,ranker:n,rankdir:i="tb",nodeOrder:a,keepNodeOrder:s,align:o,nodesep:A=50,edgesep:l=20,ranksep:c=50}=t;JU(r),x3(r,e);const{nestingRoot:u,nodeRankFactor:h}=R3(r);OU(eC(r),n),zU(r),O3(r,h),_3(r,u),T3(r),KU(r),VU(r);const d=[];G3(r,d),AU(r,d),N3(r),s&&aU(r,a),iU(r,s),qU(r),L3(r,i),vU(r,{align:o,nodesep:A,edgesep:l,ranksep:c}),$U(r),XU(r),K3(r,d),ZU(r),k3(r,i);const{width:f,height:g}=WU(r);return jU(r),YU(r),S3(r),{width:f,height:g}},QU=(r,t)=>{r.getAllNodes().forEach(e=>{const n=r.getNode(e.id);if(t.hasNode(e.id)){const i=t.getNode(e.id);n.data.fixorder=i.data._order,delete i.data._order}else delete n.data.fixorder})},UU=(r,t)=>{r.getAllNodes().forEach(e=>{var n;const i=r.getNode(e.id);if(i){const a=t.getNode(e.id);i.data.x=a.data.x,i.data.y=a.data.y,i.data._order=a.data.order,i.data._rank=a.data.rank,!((n=t.getChildren(e.id))===null||n===void 0)&&n.length&&(i.data.width=a.data.width,i.data.height=a.data.height)}}),r.getAllEdges().forEach(e=>{const n=r.getEdge(e.id),i=t.getEdge(e.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)})},RU=["width","height","layer","fixorder"],DU={width:0,height:0},PU=["minlen","weight","width","height","labeloffset"],_U={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},Ky=["labelpos"],HU=r=>{const t=new Gr({tree:[]});return r.getAllNodes().forEach(e=>{const n=UC(r.getNode(e.id).data),i=Object.assign(Object.assign({},DU),n),a=QC(i,RU);t.hasNode(e.id)||t.addNode({id:e.id,data:Object.assign({},a)});const s=r.hasTreeStructure("combo")?r.getParent(e.id,"combo"):r.getParent(e.id);Re(s)||(t.hasNode(s.id)||t.addNode(Object.assign({},s)),t.setParent(e.id,s.id))}),r.getAllEdges().forEach(e=>{const n=UC(r.getEdge(e.id).data),i={};Ky==null||Ky.forEach(a=>{n[a]!==void 0&&(i[a]=n[a])}),t.addEdge({id:e.id,source:e.source,target:e.target,data:Object.assign({},_U,QC(n,PU),i)})}),t},GU=(r,t)=>{const{ranksep:e=0,rankdir:n}=t;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)}),e/2},zU=r=>{r.getAllEdges().forEach(t=>{if(t.data.width&&t.data.height){const e=r.getNode(t.source),n=r.getNode(t.target),i={e:t,rank:(n.data.rank-e.data.rank)/2+e.data.rank};Vc(r,"edge-proxy",i,"_ep")}})},KU=r=>{let t=0;return r.getAllNodes().forEach(e=>{var n,i;e.data.borderTop&&(e.data.minRank=(n=r.getNode(e.data.borderTop))===null||n===void 0?void 0:n.data.rank,e.data.maxRank=(i=r.getNode(e.data.borderBottom))===null||i===void 0?void 0:i.data.rank,t=Math.max(t,e.data.maxRank||-1/0))}),t},VU=r=>{r.getAllNodes().forEach(t=>{t.data.dummy==="edge-proxy"&&(r.getEdge(t.data.e.id).data.labelRank=t.data.rank,r.removeNode(t.id))})},WU=(r,t)=>{let e,n=0,i,a=0;const{marginx:s=0,marginy:o=0}=t||{},A=l=>{if(!l.data)return;const c=l.data.x,u=l.data.y,h=l.data.width,d=l.data.height;!isNaN(c)&&!isNaN(h)&&(e===void 0&&(e=c-h/2),e=Math.min(e,c-h/2),n=Math.max(n,c+h/2)),!isNaN(u)&&!isNaN(d)&&(i===void 0&&(i=u-d/2),i=Math.min(i,u-d/2),a=Math.max(a,u+d/2))};return r.getAllNodes().forEach(l=>{A(l)}),r.getAllEdges().forEach(l=>{l!=null&&l.data.hasOwnProperty("x")&&A(l)}),e-=s,i-=o,r.getAllNodes().forEach(l=>{l.data.x-=e,l.data.y-=i}),r.getAllEdges().forEach(l=>{var c;(c=l.data.points)===null||c===void 0||c.forEach(u=>{u.x-=e,u.y-=i}),l.data.hasOwnProperty("x")&&(l.data.x-=e),l.data.hasOwnProperty("y")&&(l.data.y-=i)}),{width:n-e+s,height:a-i+o}},jU=r=>{r.getAllEdges().forEach(t=>{const e=r.getNode(t.source),n=r.getNode(t.target);let i,a;t.data.points?(i=t.data.points[0],a=t.data.points[t.data.points.length-1]):(t.data.points=[],i={x:n.data.x,y:n.data.y},a={x:e.data.x,y:e.data.y}),t.data.points.unshift(rC(e.data,i)),t.data.points.push(rC(n.data,a))})},ZU=r=>{r.getAllEdges().forEach(t=>{if(t.data.hasOwnProperty("x"))switch((t.data.labelpos==="l"||t.data.labelpos==="r")&&(t.data.width-=t.data.labeloffset),t.data.labelpos){case"l":t.data.x-=t.data.width/2+t.data.labeloffset;break;case"r":t.data.x+=t.data.width/2+t.data.labeloffset;break}})},YU=r=>{r.getAllEdges().forEach(t=>{var e;t.data.reversed&&((e=t.data.points)===null||e===void 0||e.reverse())})},XU=r=>{r.getAllNodes().forEach(t=>{var e,n,i;if(!((e=r.getChildren(t.id))===null||e===void 0)&&e.length){const a=r.getNode(t.id),s=r.getNode(a.data.borderTop),o=r.getNode(a.data.borderBottom),A=r.getNode(a.data.borderLeft[((n=a.data.borderLeft)===null||n===void 0?void 0:n.length)-1]),l=r.getNode(a.data.borderRight[((i=a.data.borderRight)===null||i===void 0?void 0:i.length)-1]);a.data.width=Math.abs((l==null?void 0:l.data.x)-(A==null?void 0:A.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=((A==null?void 0:A.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(t=>{t.data.dummy==="border"&&r.removeNode(t.id)})},JU=r=>{r.getAllEdges().forEach(t=>{if(t.source===t.target){const e=r.getNode(t.source);e.data.selfEdges||(e.data.selfEdges=[]),e.data.selfEdges.push(t),r.removeEdge(t.id)}})},qU=r=>{const t=Uh(r);t==null||t.forEach(e=>{let n=0;e==null||e.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(A=>{Vc(r,"selfedge",{width:A.data.width,height:A.data.height,rank:o.data.rank,order:a+ ++n,e:A},"_se")}),delete o.data.selfEdges})})},$U=r=>{r.getAllNodes().forEach(t=>{const e=r.getNode(t.id);if(e.data.dummy==="selfedge"){const n=r.getNode(e.data.e.source),i=n.data.x+n.data.width/2,a=n.data.y,s=e.data.x-i,o=n.data.height/2;r.hasEdge(e.data.e.id)?r.updateEdgeData(e.data.e.id,e.data.e.data):r.addEdge({id:e.data.e.id,source:e.data.e.source,target:e.data.e.target,data:e.data.e.data}),r.removeNode(t.id),e.data.e.data.points=[{x:i+2*s/3,y:a-o},{x:i+5*s/6,y:a-o},{y:a,x:i+s},{x:i+5*s/6,y:a+o},{x:i+2*s/3,y:a+o}],e.data.e.data.x=e.data.x,e.data.e.data.y=e.data.y}})},QC=(r,t)=>{const e={};return t==null||t.forEach(n=>{r[n]!==void 0&&(e[n]=+r[n])}),e},UC=(r={})=>{const t={};return Object.keys(r).forEach(e=>{t[e.toLowerCase()]=r[e]}),t};function Rh(r){if(!r)return[0,0,0];if(ye(r))return[r,r,r];if(r.length===0)return[0,0,0];const[t,e=t,n=t]=r;return[t,e,n]}function Nl(r,t){let e;return Vt(t)?e=t:ye(t)?e=()=>t:e=()=>r,e}function Vy(r,t,e=!0){return!t&&t!==0?n=>{const{size:i}=n.data||{};return i?Array.isArray(i)?e?Math.max(...i)||r:i:br(i)&&i.width&&i.height?e?Math.max(i.width,i.height)||r:[i.width,i.height]:i:r}:Vt(t)?t:ye(t)?()=>t:Array.isArray(t)?()=>e?Math.max(...t)||r:t:br(t)&&t.width&&t.height?()=>e?Math.max(t.width,t.height)||r:[t.width,t.height]:()=>r}const Wy=(r,t,e=10)=>{let n;const i=typeof t=="function"?t:()=>t||0;return r?Array.isArray(r)?n=s=>r:Vt(r)?n=r:n=s=>r:n=s=>{var o,A,l;if(!((o=s.data)===null||o===void 0)&&o.bboxSize)return(A=s.data)===null||A===void 0?void 0:A.bboxSize;if(!((l=s.data)===null||l===void 0)&&l.size){const c=s.data.size;return Array.isArray(c)?c:br(c)?[c.width,c.height]:c}return e},s=>{const o=n(s),A=i(s);return Math.max(...Rh(o))+A}},jy=r=>{if(r===null)return r;if(r instanceof Date)return new Date(r.getTime());if(r instanceof Array){const t=[];return r.forEach(e=>{t.push(e)}),t.map(e=>jy(e))}if(typeof r=="object"){const t={};return Object.keys(r).forEach(e=>{t[e]=jy(r[e])}),t}return r},Pa=(r,t)=>{const e=jy(r);return e.data=e.data||{},t&&(ye(e.data.x)||(e.data.x=Math.random()*t[0]),ye(e.data.y)||(e.data.y=Math.random()*t[1])),e},tR={rankdir:"TB",nodesep:50,ranksep:50,edgeLabelSpace:!0,ranker:"tight-tree",controlPoints:!1,radial:!1,focusNode:null};class eR{constructor(t={}){this.options=t,this.id="antv-dagre",this.options=Object.assign(Object.assign({},tR),t)}execute(t,e){return(0,D.mG)(this,void 0,void 0,function*(){return this.genericDagreLayout(!1,t,e)})}assign(t,e){return(0,D.mG)(this,void 0,void 0,function*(){yield this.genericDagreLayout(!0,t,e)})}genericDagreLayout(t,e,n){return(0,D.mG)(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),n),{nodeSize:a,align:s,rankdir:o="TB",ranksep:A,nodesep:l,ranksepFunc:c,nodesepFunc:u,edgeLabelSpace:h,ranker:d,nodeOrder:f,begin:g,controlPoints:v,radial:p,sortByCombo:y,preset:x}=i,F=new Gr({tree:[]}),O=Nl(A||50,c),L=Nl(l||50,u);let U=L,R=O;(o==="LR"||o==="RL")&&(U=O,R=L);const j=Vy(10,a,!1),q=e.getAllNodes(),et=e.getAllEdges();q.forEach(yt=>{const xt=Rh(j(yt)),Dt=R(yt),Xt=U(yt),ne=xt[0]+2*Xt,le=xt[1]+2*Dt,ge=yt.data.layer;ye(ge)?F.addNode({id:yt.id,data:{width:ne,height:le,layer:ge}}):F.addNode({id:yt.id,data:{width:ne,height:le}})}),y&&(F.attachTreeStructure("combo"),q.forEach(yt=>{const{parentId:xt}=yt.data;xt!==void 0&&F.hasNode(xt)&&F.setParent(yt.id,xt,"combo")})),et.forEach(yt=>{F.addEdge({id:yt.id,source:yt.source,target:yt.target,data:{weight:yt.data.weight||1}})});let it;x!=null&&x.length&&(it=new Gr({nodes:x})),LU(F,{prevGraph:it,edgeLabelSpace:h,keepNodeOrder:!!f,nodeOrder:f||[],acyclicer:"greedy",ranker:d,rankdir:o,nodesep:l,align:s});const dt=[0,0];if(g){let yt=1/0,xt=1/0;F.getAllNodes().forEach(Dt=>{yt>Dt.data.x&&(yt=Dt.data.x),xt>Dt.data.y&&(xt=Dt.data.y)}),F.getAllEdges().forEach(Dt=>{var Xt;(Xt=Dt.data.points)===null||Xt===void 0||Xt.forEach(ne=>{yt>ne.x&&(yt=ne.x),xt>ne.y&&(xt=ne.y)})}),dt[0]=g[0]-yt,dt[1]=g[1]-xt}const ft=o==="LR"||o==="RL";if(!p){const yt=new Set,Dt=o==="BT"||o==="RL"?(ge,xe)=>xe-ge:(ge,xe)=>ge-xe;F.getAllNodes().forEach(ge=>{ge.data.x=ge.data.x+dt[0],ge.data.y=ge.data.y+dt[1],yt.add(ft?ge.data.x:ge.data.y)});const Xt=Array.from(yt).sort(Dt),ne=ft?(ge,xe)=>ge.x!==xe.x:(ge,xe)=>ge.y!==xe.y,le=ft?(ge,xe,Qe)=>{const Pe=Math.max(xe.y,Qe.y),en=Math.min(xe.y,Qe.y);return ge.filter(mn=>mn.y<=Pe&&mn.y>=en)}:(ge,xe,Qe)=>{const Pe=Math.max(xe.x,Qe.x),en=Math.min(xe.x,Qe.x);return ge.filter(mn=>mn.x<=Pe&&mn.x>=en)};F.getAllEdges().forEach((ge,xe)=>{var Qe;h&&v&&ge.data.type!=="loop"&&(ge.data.controlPoints=nR((Qe=ge.data.points)===null||Qe===void 0?void 0:Qe.map(({x:Pe,y:en})=>({x:Pe+dt[0],y:en+dt[1]})),F.getNode(ge.source),F.getNode(ge.target),Xt,ft,ne,le))})}let mt=[];mt=F.getAllNodes().map(yt=>Pa(yt));const Rt=F.getAllEdges();return t&&(mt.forEach(yt=>{e.mergeNodeData(yt.id,{x:yt.data.x,y:yt.data.y})}),Rt.forEach(yt=>{e.mergeEdgeData(yt.id,{controlPoints:yt.data.controlPoints})})),{nodes:mt,edges:Rt}})}}const nR=(r,t,e,n,i,a,s)=>{let o=(r==null?void 0:r.slice(1,r.length-1))||[];if(t&&e){let{x:A,y:l}=t.data,{x:c,y:u}=e.data;if(i&&(A=t.data.y,l=t.data.x,c=e.data.y,u=e.data.x),u!==l&&A!==c){const h=n.indexOf(l),d=n[h+1];if(d){const v=o[0],p=i?{x:(l+d)/2,y:(v==null?void 0:v.y)||c}:{x:(v==null?void 0:v.x)||c,y:(l+d)/2};(!v||a(v,p))&&o.unshift(p)}const f=n.indexOf(u),g=Math.abs(f-h);if(g===1)o=s(o,t.data,e.data),o.length||o.push(i?{x:(l+u)/2,y:A}:{x:A,y:(l+u)/2});else if(g>1){const v=n[f-1];if(v){const p=o[o.length-1],y=i?{x:(u+v)/2,y:(p==null?void 0:p.y)||c}:{x:(p==null?void 0:p.x)||A,y:(u+v)/2};(!p||a(p,y))&&o.push(y)}}}}return o},Ll=(r,t,e)=>{const n=r.getAllNodes(),i=r.getAllEdges();if(!(n!=null&&n.length))return{nodes:[],edges:i};if(n.length===1)return t&&r.mergeNodeData(n[0].id,{x:e[0],y:e[1]}),{nodes:[Object.assign(Object.assign({},n[0]),{data:Object.assign(Object.assign({},n[0].data),{x:e[0],y:e[1]})})],edges:i}},rR={radius:null,startRadius:null,endRadius:null,startAngle:0,endAngle:2*Math.PI,clockwise:!0,divisions:1,ordering:null,angleRatio:1};class iR{constructor(t={}){this.options=t,this.id="circular",this.options=Object.assign(Object.assign({},rR),t)}execute(t,e){return(0,D.mG)(this,void 0,void 0,function*(){return this.genericCircularLayout(!1,t,e)})}assign(t,e){return(0,D.mG)(this,void 0,void 0,function*(){yield this.genericCircularLayout(!0,t,e)})}genericCircularLayout(t,e,n){return(0,D.mG)(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),n),{width:a,height:s,center:o,divisions:A,startAngle:l=0,endAngle:c=2*Math.PI,angleRatio:u,ordering:h,clockwise:d,nodeSpacing:f,nodeSize:g}=i,v=e.getAllNodes(),p=e.getAllEdges(),[y,x,F]=sR(a,s,o),O=v==null?void 0:v.length;if(!O||O===1)return Ll(e,t,F);const L=(c-l)/O;let{radius:U,startRadius:R,endRadius:j}=i;if(f){const ft=Nl(10,f),mt=Vy(10,g);let Rt=-1/0;v.forEach(yt=>{const xt=mt(yt);Rt{xt===0?Qt+=Rt||10:Qt+=(ft(yt)||0)+(Rt||10)}),U=Qt/(2*Math.PI)}else!U&&!R&&!j?U=Math.min(x,y)/2:!R&&j?R=j:R&&!j&&(j=R);const q=L*u;let et=[];h==="topology"?et=RC(e,v):h==="topology-directed"?et=RC(e,v,!0):h==="degree"?et=aR(e,v):et=v.map(ft=>Pa(ft));const it=Math.ceil(O/A);for(let ft=0;ft{e.mergeNodeData(ft.id,{x:ft.data.x,y:ft.data.y})}),{nodes:et,edges:p}})}}const RC=(r,t,e=!1)=>{const n=[Pa(t[0])],i={},a=t.length;i[t[0].id]=!0;let s=0;return t.forEach((o,A)=>{if(A!==0)if((A===a-1||r.getDegree(o.id,"both")!==r.getDegree(t[A+1].id,"both")||r.areNeighbors(n[s].id,o.id))&&!i[o.id])n.push(Pa(o)),i[o.id]=!0,s++;else{const l=e?r.getSuccessors(n[s].id):r.getNeighbors(n[s].id);let c=!1;for(let h=0;h{e.push(Pa(n))}),e.sort((n,i)=>r.getDegree(n.id,"both")-r.getDegree(i.id,"both")),e}const sR=(r,t,e)=>{let n=r,i=t,a=e;return!n&&typeof window!="undefined"&&(n=window.innerWidth),!i&&typeof window!="undefined"&&(i=window.innerHeight),a||(a=[n/2,i/2]),[n,i,a]},Po=Array.isArray,oR={nodeSize:30,nodeSpacing:10,preventOverlap:!1,sweep:void 0,equidistant:!1,startAngle:3/2*Math.PI,clockwise:!0,maxLevelDiff:void 0,sortBy:"degree"};class Zy{constructor(t={}){this.options=t,this.id="concentric",this.options=Object.assign(Object.assign({},oR),t)}execute(t,e){return(0,D.mG)(this,void 0,void 0,function*(){return this.genericConcentricLayout(!1,t,e)})}assign(t,e){return(0,D.mG)(this,void 0,void 0,function*(){yield this.genericConcentricLayout(!0,t,e)})}genericConcentricLayout(t,e,n){return(0,D.mG)(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),n),{center:a,width:s,height:o,sortBy:A,maxLevelDiff:l,sweep:c,clockwise:u,equidistant:h,preventOverlap:d,startAngle:f=3/2*Math.PI,nodeSize:g,nodeSpacing:v}=i,p=e.getAllNodes(),y=e.getAllEdges(),x=!s&&typeof window!="undefined"?window.innerWidth:s,F=!o&&typeof window!="undefined"?window.innerHeight:o,O=a||[x/2,F/2];if(!(p!=null&&p.length)||p.length===1)return Ll(e,t,O);const L=[];let U,R=0;Po(g)?U=Math.max(g[0],g[1]):Vt(g)?(U=-1/0,p.forEach(yt=>{const xt=Math.max(...Rh(g(yt)));xt>U&&(U=xt)})):U=g,Po(v)?R=Math.max(v[0],v[1]):ye(v)&&(R=v),p.forEach(yt=>{const xt=Pa(yt);L.push(xt);let Dt=U;const{data:Xt}=xt;Po(Xt.size)?Dt=Math.max(Xt.size[0],Xt.size[1]):ye(Xt.size)?Dt=Xt.size:br(Xt.size)&&(Dt=Math.max(Xt.size.width,Xt.size.height)),U=Math.max(U,Dt),Vt(v)&&(R=Math.max(v(yt),R))});const j={};L.forEach((yt,xt)=>{j[yt.id]=xt});let q=A;(!gn(q)||L[0].data[q]===void 0)&&(q="degree"),q==="degree"?L.sort((yt,xt)=>e.getDegree(xt.id,"both")-e.getDegree(yt.id,"both")):L.sort((yt,xt)=>xt.data[q]-yt.data[q]);const et=L[0],it=(l||(q==="degree"?e.getDegree(et.id,"both"):et.data[q]))/4,dt=[{nodes:[]}];let ft=dt[0];L.forEach(yt=>{if(ft.nodes.length>0){const xt=Math.abs(q==="degree"?e.getDegree(ft.nodes[0].id,"both")-e.getDegree(yt.id,"both"):ft.nodes[0].data[q]-yt.data[q]);it&&xt>=it&&(ft={nodes:[]},dt.push(ft))}ft.nodes.push(yt)});let mt=U+R;if(!d){const yt=dt.length>0&&dt[0].nodes.length>1,Dt=(Math.min(x,F)/2-mt)/(dt.length+(yt?1:0));mt=Math.min(mt,Dt)}let Rt=0;if(dt.forEach(yt=>{const xt=c===void 0?2*Math.PI-2*Math.PI/yt.nodes.length:c;if(yt.dTheta=xt/Math.max(1,yt.nodes.length-1),yt.nodes.length>1&&d){const Dt=Math.cos(yt.dTheta)-Math.cos(0),Xt=Math.sin(yt.dTheta)-Math.sin(0),ne=Math.sqrt(mt*mt/(Dt*Dt+Xt*Xt));Rt=Math.max(ne,Rt)}yt.r=Rt,Rt+=mt}),h){let yt=0,xt=0;for(let Dt=0;Dt{Xt===0&&(xt=Dt.r||0),Dt.r=xt,xt+=yt})}return dt.forEach(yt=>{const xt=yt.dTheta||0,Dt=yt.r||0;yt.nodes.forEach((Xt,ne)=>{const le=f+(u?1:-1)*xt*ne;Xt.data.x=O[0]+Dt*Math.cos(le),Xt.data.y=O[1]+Dt*Math.sin(le)})}),t&&L.forEach(yt=>e.mergeNodeData(yt.id,{x:yt.data.x,y:yt.data.y})),{nodes:L,edges:y}})}}function AR(r){const t=+this._x.call(null,r),e=+this._y.call(null,r);return DC(this.cover(t,e),t,e,r)}function DC(r,t,e,n){if(isNaN(t)||isNaN(e))return r;var i,a=r._root,s={data:n},o=r._x0,A=r._y0,l=r._x1,c=r._y1,u,h,d,f,g,v,p,y;if(!a)return r._root=s,r;for(;a.length;)if((g=t>=(u=(o+l)/2))?o=u:l=u,(v=e>=(h=(A+c)/2))?A=h:c=h,i=a,!(a=a[p=v<<1|g]))return i[p]=s,r;if(d=+r._x.call(null,a.data),f=+r._y.call(null,a.data),t===d&&e===f)return s.next=a,i?i[p]=s:r._root=s,r;do i=i?i[p]=new Array(4):r._root=new Array(4),(g=t>=(u=(o+l)/2))?o=u:l=u,(v=e>=(h=(A+c)/2))?A=h:c=h;while((p=v<<1|g)===(y=(f>=h)<<1|d>=u));return i[y]=a,i[p]=s,r}function lR(r){var t,e,n=r.length,i,a,s=new Array(n),o=new Array(n),A=1/0,l=1/0,c=-1/0,u=-1/0;for(e=0;ec&&(c=i),au&&(u=a));if(A>c||l>u)return this;for(this.cover(A,l).cover(c,u),e=0;er||r>=i||n>t||t>=a;)switch(l=(tc||(o=f.y0)>u||(A=f.x1)=p)<<1|r>=v)&&(f=h[h.length-1],h[h.length-1]=h[h.length-1-g],h[h.length-1-g]=f)}else{var y=r-+this._x.call(null,d.data),x=t-+this._y.call(null,d.data),F=y*y+x*x;if(F=(h=(s+A)/2))?s=h:A=h,(g=u>=(d=(o+l)/2))?o=d:l=d,t=e,!(e=e[v=g<<1|f]))return this;if(!e.length)break;(t[v+1&3]||t[v+2&3]||t[v+3&3])&&(n=t,p=v)}for(;e.data!==r;)if(i=e,!(e=e.next))return this;return(a=e.next)&&delete e.next,i?(a?i.next=a:delete i.next,this):t?(a?t[v]=a:delete t[v],(e=t[0]||t[1]||t[2]||t[3])&&e===(t[3]||t[2]||t[1]||t[0])&&!e.length&&(n?n[p]=e:this._root=e),this):(this._root=a,this)}function gR(r){for(var t=0,e=r.length;t=(f=(A+u)/2))?A=f:u=f,(O=e>=(g=(l+h)/2))?l=g:h=g,(L=n>=(v=(c+d)/2))?c=v:d=v,a=s,!(s=s[U=L<<2|O<<1|F]))return a[U]=o,r;if(p=+r._x.call(null,s.data),y=+r._y.call(null,s.data),x=+r._z.call(null,s.data),t===p&&e===y&&n===x)return o.next=s,a?a[U]=o:r._root=o,r;do a=a?a[U]=new Array(8):r._root=new Array(8),(F=t>=(f=(A+u)/2))?A=f:u=f,(O=e>=(g=(l+h)/2))?l=g:h=g,(L=n>=(v=(c+d)/2))?c=v:d=v;while((U=L<<2|O<<1|F)===(R=(x>=v)<<2|(y>=g)<<1|p>=f));return a[R]=s,a[U]=o,r}function CR(r){Array.isArray(r)||(r=Array.from(r));const t=r.length,e=new Float64Array(t),n=new Float64Array(t),i=new Float64Array(t);let a=1/0,s=1/0,o=1/0,A=-1/0,l=-1/0,c=-1/0;for(let u=0,h,d,f,g;uA&&(A=d),fl&&(l=f),gc&&(c=g));if(a>A||s>l||o>c)return this;this.cover(a,s,o).cover(A,l,c);for(let u=0;ur||r>=s||i>t||t>=o||a>e||e>=A;)switch(h=(ef||(l=x.y0)>g||(c=x.z0)>v||(u=x.x1)=U)<<2|(t>=L)<<1|r>=O)&&(x=p[p.length-1],p[p.length-1]=p[p.length-1-F],p[p.length-1-F]=x)}else{var R=r-+this._x.call(null,y.data),j=t-+this._y.call(null,y.data),q=e-+this._z.call(null,y.data),et=R*R+j*j+q*q;if(etMath.sqrt(PA(r-n,2)+PA(t-i,2)+PA(e-a,2));function IR(r,t,e,n){const i=[],a=r-n,s=t-n,o=e-n,A=r+n,l=t+n,c=e+n;return this.visit((u,h,d,f,g,v,p)=>{if(!u.length)do{const y=u.data;OR(r,t,e,this._x(y),this._y(y),this._z(y))<=n&&i.push(y)}while(u=u.next);return h>A||d>l||f>c||g=(g=(s+l)/2))?s=g:l=g,(x=d>=(v=(o+c)/2))?o=v:c=v,(F=f>=(p=(A+u)/2))?A=p:u=p,t=e,!(e=e[O=F<<2|x<<1|y]))return this;if(!e.length)break;(t[O+1&7]||t[O+2&7]||t[O+3&7]||t[O+4&7]||t[O+5&7]||t[O+6&7]||t[O+7&7])&&(n=t,L=O)}for(;e.data!==r;)if(i=e,!(e=e.next))return this;return(a=e.next)&&delete e.next,i?(a?i.next=a:delete i.next,this):t?(a?t[O]=a:delete t[O],(e=t[0]||t[1]||t[2]||t[3]||t[4]||t[5]||t[6]||t[7])&&e===(t[7]||t[6]||t[5]||t[4]||t[3]||t[2]||t[1]||t[0])&&!e.length&&(n?n[L]=e:this._root=e),this):(this._root=a,this)}function LR(r){for(var t=0,e=r.length;t{const{nodeStrength:h,x:d,y:f,z:g,size:v}=c.data;return{x:d,y:f,z:g,size:v,index:u,id:c.id,vx:0,vy:0,vz:0,weight:a*h}}),A=(i===2?Zg(o,c=>c.x,c=>c.y):HC(o,c=>c.x,c=>c.y,c=>c.z)).visitAfter(WR),l=new Map;return o.forEach(c=>{l.set(c.id,c),ZR(c,A,i)}),o.map((c,u)=>{const{id:h,data:d}=s[u],{mass:f=1}=d;n[h]={x:c.vx/f,y:c.vy/f,z:c.vz/f}}),n}function WR(r){let t=0,e=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 A=[e,n,i][s-1],l=a.x-r.x||Jy,c=a.y-r.y||Jy,u=a.z-r.z||Jy,h=[l,c,u],d=A-t;let f=0;for(let p=0;pjR(n,i,a,s,o,r,e))}const YR={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 zC{constructor(t={}){this.options=t,this.id="force",this.timeInterval=0,this.judgingDistance=0,this.running=!1,this.options=Object.assign(Object.assign({},YR),t)}execute(t,e){return(0,D.mG)(this,void 0,void 0,function*(){return this.genericForceLayout(!1,t,e)})}assign(t,e){return(0,D.mG)(this,void 0,void 0,function*(){yield this.genericForceLayout(!0,t,e)})}stop(){this.timeInterval&&typeof window!="undefined"&&window.clearInterval(this.timeInterval),this.running=!1}tick(t=this.options.maxIteration||1){if(this.lastResult)return this.lastResult;for(let 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})),e}genericForceLayout(t,e,n){return(0,D.mG)(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),n),a=e.getAllNodes(),s=e.getAllEdges(),o=this.formatOptions(i,e),{dimensions:A,width:l,height:c,nodeSize:u,getMass:h,nodeStrength:d,edgeStrength:f,linkDistance:g}=o,v=a.map((R,j)=>Object.assign(Object.assign({},R),{data:Object.assign(Object.assign({},R.data),{x:ye(R.data.x)?R.data.x:Math.random()*l,y:ye(R.data.y)?R.data.y:Math.random()*c,z:ye(R.data.z)?R.data.z:Math.random()*Math.sqrt(l*c),size:u(R)||30,mass:h(R),nodeStrength:d(R)})})),p=s.map(R=>Object.assign(Object.assign({},R),{data:Object.assign(Object.assign({},R.data),{edgeStrength:f(R),linkDistance:g(R,e.getNode(R.source),e.getNode(R.target))})}));if(!(a!=null&&a.length))return this.lastResult={nodes:[],edges:s},{nodes:[],edges:s};const y={};a.forEach((R,j)=>{y[R.id]={x:0,y:0,z:0}});const x=new Gr({nodes:v,edges:p});this.formatCentripetal(o,x);const{maxIteration:F,minMovement:O,onTick:L}=o;if(this.lastLayoutNodes=v,this.lastLayoutEdges=p,this.lastAssign=t,this.lastGraph=e,this.lastCalcGraph=x,this.lastOptions=o,this.lastVelMap=y,typeof window=="undefined")return;let U=0;return new Promise(R=>{this.timeInterval=window.setInterval(()=>{(!a||!this.running)&&R({nodes:qy(e,v),edges:s}),this.runOneStep(x,e,U,y,o),this.updatePosition(e,x,y,o),t&&v.forEach(j=>e.mergeNodeData(j.id,{x:j.data.x,y:j.data.y,z:A===3?j.data.z:void 0})),L==null||L({nodes:qy(e,v),edges:s}),U++,(U>=F||this.judgingDistance{let l=1;ye(A==null?void 0:A.data.mass)&&(l=A==null?void 0:A.data.mass);const c=e.getDegree(A.id,"both");return!c||c<5?l:c*5*l}),n.nodeSize=Wy(t.nodeSize,t.nodeSpacing);const o=t.linkDistance?Nl(1,t.linkDistance):A=>1+n.nodeSize(e.getNode(A.source))+n.nodeSize(e.getNode(A.target));return n.linkDistance=o,n.nodeStrength=Nl(1,t.nodeStrength),n.edgeStrength=Nl(1,t.edgeStrength),n}formatCentripetal(t,e){const{dimensions:n,centripetalOptions:i,center:a,clusterNodeStrength:s,leafCluster:o,clustering:A,nodeClusterBy:l}=t,c=e.getAllNodes(),u=i||{leaf:2,single:2,others:1,center:p=>({x:a[0],y:a[1],z:n===3?a[2]:void 0})};typeof s!="function"&&(t.clusterNodeStrength=p=>s);let h,d;if(o&&l&&(h=KC(e,l),d=Array.from(new Set(c==null?void 0:c.map(p=>p.data[l])))||[],t.centripetalOptions=Object.assign(u,{single:100,leaf:p=>{const{siblingLeaves:y,sameTypeLeaves:x}=h[p.id]||{};return(x==null?void 0:x.length)===(y==null?void 0:y.length)||(d==null?void 0:d.length)===1?1:t.clusterNodeStrength(p)},others:1,center:p=>{const y=e.getDegree(p.id,"both");if(!y)return{x:100,y:100,z:0};let x;if(y===1){const{sameTypeLeaves:F=[]}=h[p.id]||{};F.length===1?x=void 0:F.length>1&&(x=VC(F))}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}}})),A&&l){h||(h=KC(e,l)),d||(d=Array.from(new Set(c.map(y=>y.data[l])))),d=d.filter(y=>y!==void 0);const p={};d.forEach(y=>{const x=c.filter(F=>F.data[l]===y).map(F=>e.getNode(F.id));p[y]=VC(x)}),t.centripetalOptions=Object.assign(u,{single:y=>t.clusterNodeStrength(y),leaf:y=>t.clusterNodeStrength(y),others:y=>t.clusterNodeStrength(y),center:y=>{const x=p[y.data[l]];return{x:x==null?void 0:x.x,y:x==null?void 0:x.y,z:x==null?void 0:x.z}}})}const{leaf:f,single:g,others:v}=t.centripetalOptions||{};f&&typeof f!="function"&&(t.centripetalOptions.leaf=()=>f),g&&typeof g!="function"&&(t.centripetalOptions.single=()=>g),v&&typeof v!="function"&&(t.centripetalOptions.others=()=>v)}runOneStep(t,e,n,i,a){const s={},o=t.getAllNodes(),A=t.getAllEdges();if(!(o!=null&&o.length))return;const{monitor:l}=a;if(this.calRepulsive(t,s,a),A&&this.calAttractive(t,s,a),this.calGravity(t,e,s,a),this.updateVelocity(t,s,i,a),l){const c=this.calTotalEnergy(s,o);l({energy:c,nodes:e.getAllNodes(),edges:e.getAllEdges(),iterations:n})}}calTotalEnergy(t,e){if(!(e!=null&&e.length))return 0;let n=0;return e.forEach((i,a)=>{const s=t[i.id].x,o=t[i.id].y,A=this.options.dimensions===3?t[i.id].z:0,l=s*s+o*o+A*A,{mass:c=1}=i.data;n+=c*l*.5}),n}calRepulsive(t,e,n){const{dimensions:i,factor:a,coulombDisScale:s}=n;VR(t,a,s*s,e,i)}calAttractive(t,e,n){const{dimensions:i,nodeSize:a}=n;t.getAllEdges().forEach((s,o)=>{const{source:A,target:l}=s,c=t.getNode(A),u=t.getNode(l);if(!c||!u)return;let h=u.data.x-c.data.x,d=u.data.y-c.data.y,f=i===3?u.data.z-c.data.z:0;!h&&!d&&(h=Math.random()*.01,d=Math.random()*.01,i===3&&!f&&(f=Math.random()*.01));const g=Math.sqrt(h*h+d*d+f*f);if(g{const{id:g,data:v}=f,{mass:p,x:y,y:x,z:F}=v,O=e.getNode(g);let L=0,U=0,R=0,j=h;const q=t.getDegree(g,"in"),et=t.getDegree(g,"out"),it=t.getDegree(g,"both"),dt=a==null?void 0:a(O,it);if(dt){const[ft,mt,Rt]=dt;L=y-ft,U=x-mt,j=Rt}else L=y-u[0],U=x-u[1],R=F-u[2];if(j&&(n[g].x-=j*L/p,n[g].y-=j*U/p,n[g].z-=j*R/p),d){const{leaf:ft,single:mt,others:Rt,center:Qt}=d,{x:yt,y:xt,z:Dt,centerStrength:Xt}=(Qt==null?void 0:Qt(O,o,A,l,c))||{x:0,y:0,z:0,centerStrength:0};if(!ye(yt)||!ye(xt))return;const ne=(y-yt)/p,le=(x-xt)/p,ge=(F-Dt)/p;if(Xt&&(n[g].x-=Xt*ne,n[g].y-=Xt*le,n[g].z-=Xt*ge),it===0){const Qe=mt(O);if(!Qe)return;n[g].x-=Qe*ne,n[g].y-=Qe*le,n[g].z-=Qe*ge;return}if(q===0||et===0){const Qe=ft(O,o,A);if(!Qe)return;n[g].x-=Qe*ne,n[g].y-=Qe*le,n[g].z-=Qe*ge;return}const xe=Rt(O);if(!xe)return;n[g].x-=xe*ne,n[g].y-=xe*le,n[g].z-=xe*ge}})}updateVelocity(t,e,n,i){const{damping:a,maxSpeed:s,interval:o,dimensions:A}=i,l=t.getAllNodes();l!=null&&l.length&&l.forEach(c=>{const{id:u}=c;let h=(n[u].x+e[u].x*o)*a||.01,d=(n[u].y+e[u].y*o)*a||.01,f=A===3?(n[u].z+e[u].z*o)*a||.01:0;const g=Math.sqrt(h*h+d*d+f*f);if(g>s){const v=s/g;h=v*h,d=v*d,f=v*f}n[u]={x:h,y:d,z:f}})}updatePosition(t,e,n,i){const{distanceThresholdMode:a,interval:s,dimensions:o}=i,A=e.getAllNodes();if(!(A!=null&&A.length)){this.judgingDistance=0;return}let l=0;a==="max"?this.judgingDistance=-1/0:a==="min"&&(this.judgingDistance=1/0),A.forEach(c=>{const{id:u}=c,h=t.getNode(u);if(ye(h.data.fx)&&ye(h.data.fy)){e.mergeNodeData(u,{x:h.data.fx,y:h.data.fy,z:o===3?h.data.fz:void 0});return}const d=n[u].x*s,f=n[u].y*s,g=o===3?n[u].z*s:0;e.mergeNodeData(u,{x:c.data.x+d,y:c.data.y+f,z:c.data.z+g});const v=Math.sqrt(d*d+f*f+g*g);switch(a){case"max":this.judgingDistancev&&(this.judgingDistance=v);break;default:l=l+v;break}}),(!a||a==="mean")&&(this.judgingDistance=l/A.length)}}const KC=(r,t)=>{const e=r.getAllNodes();if(!(e!=null&&e.length))return{};const n={};return e.forEach((i,a)=>{r.getDegree(i.id,"both")===1&&(n[i.id]=XR(r,"leaf",i,t))}),n},XR=(r,t,e,n)=>{const i=r.getDegree(e.id,"in"),a=r.getDegree(e.id,"out");let s=e,o=[];i===0?(s=r.getSuccessors(e.id)[0],o=r.getNeighbors(s.id)):a===0&&(s=r.getPredecessors(e.id)[0],o=r.getNeighbors(s.id)),o=o.filter(l=>r.getDegree(l.id,"in")===0||r.getDegree(l.id,"out")===0);const A=JR(r,t,n,e,o);return{coreNode:s,siblingLeaves:o,sameTypeLeaves:A}},JR=(r,t,e,n,i)=>{const a=n.data[e]||"";let s=(i==null?void 0:i.filter(o=>o.data[e]===a))||[];return t==="leaf"&&(s=s.filter(o=>r.getDegree(o.id,"in")===0||r.getDegree(o.id,"out")===0)),s},VC=r=>{const t={x:0,y:0};r.forEach(n=>{const{x:i,y:a}=n.data;t.x+=i||0,t.y+=a||0});const e=r.length||1;return{x:t.x/e,y:t.y/e}},qy=(r,t)=>t.map(e=>{const{id:n,data:i}=e,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 wn=T(18086);const Ez=wn.XA,Bz=wn.a_,bz=wn.yQ,xz=wn.Hs,Cz=wn.Ec,Sz=wn.dx,Mz=wn.LU,Fz=wn.Rm,NA=wn.y3,Tz=wn.qK,Oz=wn.pb,Iz=wn.j,Nz=wn.sO,Lz=wn.BZ,kz=wn.EK,Qz=wn.Db,Uz=wn.Fx,Rz=wn.tU,Dz=wn.Ym,Pz=wn.rs,_z=wn.QR,Hz=wn.TB,Gz=wn.oH,WC=wn.Sc,zz=wn.BN,Kz=wn.it,Vz=wn.$r,Wz=wn.QM,jz=wn.AV;var Zz=(wn.y3,wn.y3);const Yz=wn.GH,Xz=wn.SO,Jz=wn.uZ,qz=wn.yU,$z=wn.F1,tK=wn.re,jC=r=>{const t=[],e=r.length;for(let n=0;nt[i][n]+t[n][a]&&(t[i][a]=t[i][n]+t[n][a]);return t},ZC=(r,t)=>{const{nodes:e,edges:n}=r,i=[],a={};if(!e)throw new Error("invalid nodes data!");return e&&e.forEach((s,o)=>{a[s.id]=o;const A=[];i.push(A)}),n==null||n.forEach(s=>{const{source:o,target:A}=s,l=a[o],c=a[A];l===void 0||c===void 0||(i[l][c]=1,t||(i[c][l]=1))}),i},qR=(r,t)=>{const e=[];return r.forEach(n=>{const i=[];n.forEach(a=>{i.push(a*t)}),e.push(i)}),e},$R=r=>{let t=1/0,e=1/0,n=-1/0,i=-1/0;return r.forEach(a=>{let s=a.data.size;Po(s)?s.length===1&&(s=[s[0],s[0]]):ye(s)?s=[s,s]:(s===void 0||isNaN(s))&&(s=[30,30]);const o=[s[0]/2,s[1]/2],A=a.data.x-o[0],l=a.data.x+o[0],c=a.data.y-o[1],u=a.data.y+o[1];t>A&&(t=A),e>c&&(e=c),nMath.sqrt((r.x-t.x)*(r.x-t.x)+(r.y-t.y)*(r.y-t.y)),$y=(r,t,e,n="TB",i,a={})=>{if(!(t!=null&&t.length))return;const{stopBranchFn:s,stopAllFn:o}=a;for(let A=0;A{const p=Pa(o[v]);p.data.x=g[0]+a[0],p.data.y=g[1]+a[1],d.push(p)}),t&&d.forEach(g=>e.mergeNodeData(g.id,{x:g.data.x,y:g.data.y})),{nodes:d,edges:A}})}}const eD=r=>{let t=-999999;r.forEach(e=>{e.forEach(n=>{n!==1/0&&t{e.forEach((i,a)=>{i===1/0&&(r[n][a]=t)})})},nD=r=>{const e=NA.mul(NA.pow(r,2),-.5),n=e.mean("row"),i=e.mean("column"),a=e.mean();e.add(a).subRowVector(n).subColumnVector(i);const s=new WC(e),o=NA.sqrt(s.diagonalMatrix).diagonal();return s.leftSingularVectors.toJSON().map(A=>NA.mul([A],[o]).toJSON()[0].splice(0,2))};function t1(r){return!!r.tick&&!!r.stop}const rD={gForce:!0,force2:!0,d3force:!0,fruchterman:!0,forceAtlas2:!0,force:!0,"graphin-force":!0},iD={center:[0,0],comboPadding:10,treeKey:"combo"};class aD{constructor(t={}){this.options=t,this.id="comboCombined",this.options=Object.assign(Object.assign({},iD),t)}execute(t,e){return(0,D.mG)(this,void 0,void 0,function*(){return this.genericComboCombinedLayout(!1,t,e)})}assign(t,e){return(0,D.mG)(this,void 0,void 0,function*(){yield this.genericComboCombinedLayout(!0,t,e)})}genericComboCombinedLayout(t,e,n){return(0,D.mG)(this,void 0,void 0,function*(){const i=this.initVals(Object.assign(Object.assign({},this.options),n)),{center:a,treeKey:s,outerLayout:o}=i,A=e.getAllNodes().filter(R=>!R.data._isCombo),l=e.getAllNodes().filter(R=>R.data._isCombo),c=e.getAllEdges(),u=A==null?void 0:A.length;if(!u||u===1)return Ll(e,t,a);const h=[],d=new Map;A.forEach(R=>{d.set(R.id,R)});const f=new Map;l.forEach(R=>{f.set(R.id,R)});const g=new Map,v=this.getInnerGraphs(e,s,d,f,c,i,g);yield Promise.all(v);const p=new Map,y=[],x=new Map;let F=!0;e.getRoots(s).forEach(R=>{const j=g.get(R.id),q=f.get(R.id)||d.get(R.id),et={id:R.id,data:Object.assign(Object.assign({},R.data),{x:j.data.x||q.data.x,y:j.data.y||q.data.y,fx:j.data.fx||q.data.fx,fy:j.data.fy||q.data.fy,mass:j.data.mass||q.data.mass,size:j.data.size})};y.push(et),p.set(R.id,!0),!isNaN(et.data.x)&&et.data.x!==0&&!isNaN(et.data.y)&&et.data.y!==0?F=!1:(et.data.x=Math.random()*100,et.data.y=Math.random()*100),$y(e,[R],it=>{it.id!==R.id&&x.set(it.id,R.id)},"TB",s)});const O=[];c.forEach(R=>{const j=x.get(R.source)||R.source,q=x.get(R.target)||R.target;j!==q&&p.has(j)&&p.has(q)&&O.push({id:R.id,source:j,target:q,data:{}})});let L;if(y!=null&&y.length){if(y.length===1)y[0].data.x=a[0],y[0].data.y=a[1];else{const R=new Gr({nodes:y,edges:O}),j=o||new zC;F&&rD[j.id]&&(yield(y.length<100?new XC:new Zy).assign(R));const q=Object.assign({center:a,kg:5,preventOverlap:!0,animate:!1},j.id==="force"?{gravity:1,factor:4,linkDistance:(et,it,dt)=>{const ft=Math.max(...it.data.size)||32,mt=Math.max(...dt.data.size)||32;return ft/2+mt/2+200}}:{});L=yield JC(j,R,q)}g.forEach(R=>{var j;const q=L.nodes.find(dt=>dt.id===R.id);if(q){const{x:dt,y:ft}=q.data;R.data.visited=!0,R.data.x=dt,R.data.y=ft,h.push({id:R.id,data:{x:dt,y:ft}})}const{x:et,y:it}=R.data;(j=R.data.nodes)===null||j===void 0||j.forEach(dt=>{h.push({id:dt.id,data:{x:dt.data.x+et,y:dt.data.y+it}})})}),g.forEach(({data:R})=>{const{x:j,y:q,visited:et,nodes:it}=R;it==null||it.forEach(dt=>{if(!et){const ft=h.find(mt=>mt.id===dt.id);ft.data.x+=j||0,ft.data.y+=q||0}})})}return t&&h.forEach(R=>{e.mergeNodeData(R.id,{x:R.data.x,y:R.data.y})}),{nodes:h,edges:c}})}initVals(t){const e=Object.assign({},t),{nodeSize:n,spacing:i,comboPadding:a}=t;let s,o;if(ye(i)?o=()=>i:Vt(i)?o=i:o=()=>0,e.spacing=o,!n)s=l=>{const c=o(l);return l.size?Po(l.size)?((l.size[0]>l.size[1]?l.size[0]:l.size[1])+c)/2:br(l.size)?((l.size.width>l.size.height?l.size.width:l.size.height)+c)/2:(l.size+c)/2:32+c/2};else if(Vt(n))s=l=>{const c=n(l),u=o(l);return Po(l.size)?((l.size[0]>l.size[1]?l.size[0]:l.size[1])+u)/2:((c||32)+u)/2};else if(Po(n)){const c=(n[0]>n[1]?n[0]:n[1])/2;s=u=>c+o(u)/2}else{const l=n/2;s=c=>l+o(c)/2}e.nodeSize=s;let A;return ye(a)?A=()=>a:Po(a)?A=()=>Math.max.apply(null,a):Vt(a)?A=a:A=()=>0,e.comboPadding=A,e}getInnerGraphs(t,e,n,i,a,s,o){const{nodeSize:A,comboPadding:l,spacing:c,innerLayout:u}=s,h=u||new Zy({}),d={center:[0,0],preventOverlap:!0,nodeSpacing:c},f=[],g=v=>{let p=(l==null?void 0:l(v))||10;return Po(p)&&(p=Math.max(...p)),{size:p?[p*2,p*2]:[30,30],padding:p}};return t.getRoots(e).forEach(v=>{o.set(v.id,{id:v.id,data:{nodes:[],size:g(v).size}});let p=Promise.resolve();$y(t,[v],y=>{var x;if(!y.data._isCombo)return;const{size:F,padding:O}=g(y);if(!(!((x=t.getChildren(y.id,e))===null||x===void 0)&&x.length))o.set(y.id,{id:y.id,data:Object.assign(Object.assign({},y.data),{size:F})});else{const L=o.get(y.id);o.set(y.id,{id:y.id,data:Object.assign({nodes:[]},L==null?void 0:L.data)});const U=new Map,R=t.getChildren(y.id,e).map(et=>{if(et.data._isCombo)return o.has(et.id)||o.set(et.id,{id:et.id,data:Object.assign({},et.data)}),U.set(et.id,!0),o.get(et.id);const it=n.get(et.id)||i.get(et.id);return U.set(et.id,!0),{id:et.id,data:Object.assign(Object.assign({},it.data),et.data)}}),j={nodes:R,edges:a.filter(et=>U.has(et.source)&&U.has(et.target))};let q=1/0;R.forEach(et=>{var it;let{size:dt}=et.data;dt||(dt=((it=o.get(et.id))===null||it===void 0?void 0:it.data.size)||(A==null?void 0:A(et))||[30,30]),ye(dt)&&(dt=[dt,dt]);const[ft,mt]=dt;q>ft&&(q=ft),q>mt&&(q=mt),et.data.size=dt}),p=p.then(()=>(0,D.mG)(this,void 0,void 0,function*(){const et=new Gr(j);yield JC(h,et,d,!0);const{minX:it,minY:dt,maxX:ft,maxY:mt}=$R(R),Rt={x:(ft+it)/2,y:(mt+dt)/2};j.nodes.forEach(yt=>{yt.data.x-=Rt.x,yt.data.y-=Rt.y});const Qt=[Math.max(ft-it,q)+O*2,Math.max(mt-dt,q)+O*2];o.get(y.id).data.size=Qt,o.get(y.id).data.nodes=R}))}return!0},"BT",e),f.push(p)}),f}}function JC(r,t,e,n){var i;return(0,D.mG)(this,void 0,void 0,function*(){return t1(r)?(r.execute(t,e),r.stop(),r.tick((i=e.iterations)!==null&&i!==void 0?i:300)):n?yield r.assign(t,e):yield r.execute(t,e)})}function ci(r){return function(){return r}}function LA(r){return(r()-.5)*1e-6}function sD(r){return r.index}function qC(r,t){var e=r.get(t);if(!e)throw new Error("node not found: "+t);return e}function oD(r){var t=sD,e=u,n,i=ci(30),a,s,o,A,l,c=1;r==null&&(r=[]);function u(v){return 1/Math.min(o[v.source.index],o[v.target.index])}function h(v){for(var p=0,y=r.length;p[t(O,L,s),O])),F;for(v=0,o=new Array(p);v{}};function $C(){for(var r=0,t=arguments.length,e={},n;r=0&&(n=e.slice(i+1),e=e.slice(0,i)),e&&!t.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:n}})}Yg.prototype=$C.prototype={constructor:Yg,on:function(r,t){var e=this._,n=lD(r+"",e),i,a=-1,s=n.length;if(arguments.length<2){for(;++a0)for(var e=new Array(i),n=0,i,a;n=0&&r._call.call(void 0,t),r=r._next;--Wc}function a2(){kl=(Jg=Hh.now())+qg,Wc=Dh=0;try{dD()}finally{Wc=0,gD(),kl=0}}function fD(){var r=Hh.now(),t=r-Jg;t>e2&&(qg-=t,Jg=r)}function gD(){for(var r,t=Xg,e,n=1/0;t;)t._call?(n>t._time&&(n=t._time),r=t,t=t._next):(e=t._next,t._next=null,t=r?r._next=e:Xg=e);_h=r,n1(n)}function n1(r){if(!Wc){Dh&&(Dh=clearTimeout(Dh));var t=r-kl;t>24?(r<1/0&&(Dh=setTimeout(a2,r-Hh.now()-qg)),Ph&&(Ph=clearInterval(Ph))):(Ph||(Jg=Hh.now(),Ph=setInterval(fD,e2)),Wc=1,n2(a2))}}const vD=1664525,pD=1013904223,s2=4294967296;function mD(){let r=1;return()=>(r=(vD*r+pD)%s2)/s2}function yD(r){return r.x}function wD(r){return r.y}var ED=10,BD=Math.PI*(3-Math.sqrt(5));function bD(r){var t,e=1,n=.001,i=1-Math.pow(n,1/300),a=0,s=.6,o=new Map,A=i2(u),l=uD("tick","end"),c=mD();r==null&&(r=[]);function u(){h(),l.call("tick",t),e1?(v==null?o.delete(g):o.set(g,f(v)),t):o.get(g)},find:function(g,v,p){var y=0,x=r.length,F,O,L,U,R;for(p==null?p=1/0:p*=p,y=0;y1?(l.on(g,v),t):l.on(g)}}}function xD(){var r,t,e,n,i=ci(-30),a,s=1,o=1/0,A=.81;function l(d){var f,g=r.length,v=Zg(r,yD,wD).visitAfter(u);for(n=d,f=0;f=o)return;(d.data!==t||d.next)&&(p===0&&(p=LA(e),F+=p*p),y===0&&(y=LA(e),F+=y*y),Fh.index){var et=d-R.x-R.vx,it=f-R.y-R.vy,dt=et*et+it*it;dtd+q||Lf+q||Ul.r&&(l.r=l[c].r)}function A(){if(t){var l,c=t.length,u;for(e=new Array(c),l=0;le.id},manyBody:{},center:{x:0,y:0}},this.context={options:{},assign:!1,nodes:[],edges:[]},Si(this.options,t),this.options.forceSimulation&&(this.simulation=this.options.forceSimulation)}execute(t,e){return(0,D.mG)(this,void 0,void 0,function*(){return this.genericLayout(!1,t,e)})}assign(t,e){return(0,D.mG)(this,void 0,void 0,function*(){yield this.genericLayout(!0,t,e)})}stop(){this.simulation.stop()}tick(t){return this.simulation.tick(t),this.getResult()}restart(){this.simulation.restart()}setFixedPosition(t,e){const n=this.context.nodes.find(i=>i.id===t);n&&e.forEach((i,a)=>{if(typeof i=="number"||i===null){const s=["fx","fy","fz"][a];n[s]=i}})}getOptions(t){var e,n;const i=Si({},this.options,t);return i.collide&&((e=i.collide)===null||e===void 0?void 0:e.radius)===void 0&&(i.collide=i.collide||{},i.collide.radius=(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(t,e,n){var i;return(0,D.mG)(this,void 0,void 0,function*(){const a=this.getOptions(n),s=e.getAllNodes().map(({id:c,data:u})=>Object.assign(Object.assign({id:c},u),Fl(u.data,this.config.inputNodeAttrs))),o=e.getAllEdges().map(c=>Object.assign({},c));Object.assign(this.context,{assign:t,nodes:s,edges:o,graph:e});const A=new Promise(c=>{this.resolver=c}),l=this.setSimulation(a);return l.nodes(s),(i=l.force("link"))===null||i===void 0||i.links(o),A})}getResult(){const{assign:t,nodes:e,edges:n,graph:i}=this.context,a=e.map(o=>({id:o.id,data:Object.assign(Object.assign({},o.data),Fl(o,this.config.outputNodeAttrs))})),s=n.map(({id:o,source:A,target:l,data:c})=>({id:o,source:typeof A=="object"?A.id:A,target:typeof l=="object"?l.id:l,data:c}));return t&&a.forEach(o=>i.mergeNodeData(o.id,o.data)),{nodes:a,edges:s}}initSimulation(){return bD()}setSimulation(t){const e=this.simulation||this.options.forceSimulation||this.initSimulation();return this.simulation||(this.simulation=e.on("tick",()=>{var n;return(n=t.onTick)===null||n===void 0?void 0:n.call(t,this.getResult())}).on("end",()=>{var n;return(n=this.resolver)===null||n===void 0?void 0:n.call(this,this.getResult())})),o2(e,this.config.simulationAttrs.map(n=>[n,t[n]])),Object.entries(this.forceMap).forEach(([n,i])=>{const a=n;if(t[n]){let s=e.force(a);s||(s=i(),e.force(a,s)),o2(s,Object.entries(t[a]))}else e.force(a,null)}),e}}const o2=(r,t)=>t.reduce((e,[n,i])=>!e[n]||i===void 0?e:e[n].call(r,i),r);var A2=T(92546),LD=T.n(A2);class $g{constructor(t){this.id="dagre",this.options={},Object.assign(this.options,$g.defaultOptions,t)}execute(t,e){return(0,D.mG)(this,void 0,void 0,function*(){return this.genericDagreLayout(!1,t,Object.assign(Object.assign({},this.options),e))})}assign(t,e){return(0,D.mG)(this,void 0,void 0,function*(){yield this.genericDagreLayout(!0,t,Object.assign(Object.assign({},this.options),e))})}genericDagreLayout(t,e,n){return(0,D.mG)(this,void 0,void 0,function*(){const{nodeSize:i}=n,a=new A2.graphlib.Graph;a.setGraph(n),a.setDefaultEdgeLabel(()=>({}));const s=e.getAllNodes(),o=e.getAllEdges();[...s,...o].some(({id:l})=>ye(l))&&console.error("Dagre layout only support string id, it will convert number to string."),e.getAllNodes().forEach(l=>{const{id:c}=l,u=Object.assign({},l.data);if(i!==void 0){const[h,d]=Rh(Vt(i)?i(l):i);Object.assign(u,{width:h,height:d})}a.setNode(c.toString(),u)}),e.getAllEdges().forEach(({id:l,source:c,target:u})=>{a.setEdge(c.toString(),u.toString(),{id:l})}),LD().layout(a);const A={nodes:[],edges:[]};return a.nodes().forEach(l=>{const c=a.node(l);A.nodes.push({id:l,data:c}),t&&e.mergeNodeData(l,c)}),a.edges().forEach(l=>{const c=a.edge(l),{id:u}=c,h=(0,D._T)(c,["id"]),{v:d,w:f}=l;A.edges.push({id:u,source:d,target:f,data:h}),t&&e.mergeEdgeData(u,h)}),A})}}$g.defaultOptions={};class r1{constructor(t){this.id=t.id||0,this.rx=t.rx,this.ry=t.ry,this.fx=0,this.fy=0,this.mass=t.mass,this.degree=t.degree,this.g=t.g||0}distanceTo(t){const e=this.rx-t.rx,n=this.ry-t.ry;return Math.hypot(e,n)}setPos(t,e){this.rx=t,this.ry=e}resetForce(){this.fx=0,this.fy=0}addForce(t){const e=t.rx-this.rx,n=t.ry-this.ry;let i=Math.hypot(e,n);i=i<1e-4?1e-4:i;const a=this.g*(this.degree+1)*(t.degree+1)/i;this.fx+=a*e/i,this.fy+=a*n/i}in(t){return t.contains(this.rx,this.ry)}add(t){const e=this.mass+t.mass,n=(this.rx*this.mass+t.rx*t.mass)/e,i=(this.ry*this.mass+t.ry*t.mass)/e,a=this.degree+t.degree,s={rx:n,ry:i,mass:e,degree:a};return new r1(s)}}class jc{constructor(t){this.xmid=t.xmid,this.ymid=t.ymid,this.length=t.length,this.massCenter=t.massCenter||[0,0],this.mass=t.mass||1}getLength(){return this.length}contains(t,e){const n=this.length/2;return t<=this.xmid+n&&t>=this.xmid-n&&e<=this.ymid+n&&e>=this.ymid-n}NW(){const t=this.xmid-this.length/4,e=this.ymid+this.length/4,n=this.length/2,i={xmid:t,ymid:e,length:n};return new jc(i)}NE(){const t=this.xmid+this.length/4,e=this.ymid+this.length/4,n=this.length/2,i={xmid:t,ymid:e,length:n};return new jc(i)}SW(){const t=this.xmid-this.length/4,e=this.ymid-this.length/4,n=this.length/2,i={xmid:t,ymid:e,length:n};return new jc(i)}SE(){const t=this.xmid+this.length/4,e=this.ymid-this.length/4,n=this.length/2,i={xmid:t,ymid:e,length:n};return new jc(i)}}class Zc{constructor(t){this.body=null,this.quad=null,this.NW=null,this.NE=null,this.SW=null,this.SE=null,this.theta=.5,t!=null&&(this.quad=t)}insert(t){if(this.body==null){this.body=t;return}this._isExternal()?(this.quad&&(this.NW=new Zc(this.quad.NW()),this.NE=new Zc(this.quad.NE()),this.SW=new Zc(this.quad.SW()),this.SE=new Zc(this.quad.SE())),this._putBody(this.body),this._putBody(t),this.body=this.body.add(t)):(this.body=this.body.add(t),this._putBody(t))}_putBody(t){this.quad&&(t.in(this.quad.NW())&&this.NW?this.NW.insert(t):t.in(this.quad.NE())&&this.NE?this.NE.insert(t):t.in(this.quad.SW())&&this.SW?this.SW.insert(t):t.in(this.quad.SE())&&this.SE&&this.SE.insert(t))}_isExternal(){return this.NW==null&&this.NE==null&&this.SW==null&&this.SE==null}updateForce(t){if(!(this.body==null||t===this.body))if(this._isExternal())t.addForce(this.body);else{const e=this.quad?this.quad.getLength():0,n=this.body.distanceTo(t);e/nPa(p,[o,A])),f=i.filter(p=>{const{source:y,target:x}=p;return y!==x}),g=new Gr({nodes:d,edges:f}),v=this.getSizes(g,u);if(this.run(g,e,c,v,t,s),l){for(let y=0;y250&&(n.barnesHut=!0),A===void 0&&e>100&&(n.prune=!0),l===0&&!A?(n.maxIteration=250,e<=200&&e>100?n.maxIteration=1e3:e>200&&(n.maxIteration=1200)):l===0&&A&&(n.maxIteration=100,e<=200&&e>100?n.maxIteration=500:e>200&&(n.maxIteration=950)),c||(n.kr=50,e>100&&e<=500?n.kr=20:e>500&&(n.kr=1)),u||(n.kg=20,e>100&&e<=500?n.kg=10:e>500&&(n.kg=1)),n}run(t,e,n,i,a,s){const{kr:o,barnesHut:A,onTick:l}=s,c=t.getAllNodes();let u=0,h=n;const d={},f={},g={};for(let v=0;v0;)u=this.oneStep(t,{iter:h,preventOverlapIters:50,krPrime:100,sg:u,forces:d,preForces:f,bodies:g,sizes:i},s),h--,l==null||l({nodes:c,edges:e.getAllEdges()});return t}oneStep(t,e,n){const{iter:i,preventOverlapIters:a,krPrime:s,sg:o,preForces:A,bodies:l,sizes:c}=e;let{forces:u}=e;const{preventOverlap:h,barnesHut:d}=n,f=t.getAllNodes();for(let g=0;ga||!h)?u=this.getOptRepGraForces(t,u,l,n):u=this.getRepGraForces(t,i,a,u,s,c,n),this.updatePos(t,u,A,o,n)}getAttrForces(t,e,n,i,a,s){const{preventOverlap:o,dissuadeHubs:A,mode:l,prune:c}=s,u=t.getAllEdges();for(let h=0;h0&&(O=F,L=F),a[d][0]+=O*x[0],a[f][0]-=L*x[0],a[d][1]+=O*x[1],a[f][1]-=L*x[1]}return a}getOptRepGraForces(t,e,n,i){const{kg:a,center:s,prune:o}=i,A=t.getAllNodes(),l=A.length;let c=9e10,u=-9e10,h=9e10,d=-9e10;for(let y=0;y