function getImportPath(filename) { return `./${filename}`; } import{r as ve,R as jT}from"./vendor-react-Dixhfmvb.js";import{j as E,M as LT,r as zT,a as HT,b as VT,c as WT}from"./vendor-markdown-CBmlBP6m.js";let tt=null;const Wv=location.pathname.split("/").slice(0,-1).join("/");let UT=null;async function Xde(){try{await Promise.all([import(Wv+"/scripts/api.js").then(i=>{UT=i?.api}),import(Wv+"/scripts/app.js").then(i=>{tt=i?.app})])}catch(i){console.error("waitForApp error",i)}}const Y1={messages:[],selectedNode:Object.keys(tt?.canvas?.selected_nodes??{})?.length?Object.values(tt?.canvas?.selected_nodes):null,installedNodes:[],loading:!1,sessionId:null,showChat:!1,activeTab:"chat",screenState:null,guiding:!1};function KT(i,e){switch(e.type){case"SET_MESSAGES":return{...i,messages:e.payload};case"ADD_MESSAGE":return{...i,messages:[...i.messages,e.payload]};case"UPDATE_MESSAGE":return{...i,messages:i.messages.map(t=>t.id===e.payload.id&&!t.finished?e.payload:t)};case"SET_SELECTED_NODE":return{...i,selectedNode:e.payload};case"SET_INSTALLED_NODES":return{...i,installedNodes:e.payload};case"SET_LOADING":return{...i,loading:e.payload};case"SET_SESSION_ID":return{...i,sessionId:e.payload};case"SET_SHOW_CHAT":return{...i,showChat:e.payload};case"SET_ACTIVE_TAB":return{...i,activeTab:e.payload};case"SET_SCREEN_STATE":return{...i,screenState:e.payload};case"SET_GUIDING":return{...i,guiding:e.payload};case"CLEAR_MESSAGES":return{...i,messages:[]};default:return i}}const X1=ve.createContext({state:Y1,dispatch:()=>null,isAutoScroll:{current:!0},showcasIng:{current:!1}});function Jde({children:i}){const[e,t]=ve.useReducer(KT,Y1),r=ve.useRef(!0),n=ve.useRef(!0);return jT.useEffect(()=>{e.sessionId&&e.messages.length>0&&localStorage.setItem(`messages_${e.sessionId}`,JSON.stringify(e.messages))},[e.messages,e.sessionId]),E.jsx(X1.Provider,{value:{state:e,dispatch:t,isAutoScroll:r,showcasIng:n},children:i})}function GT(){const i=ve.useContext(X1);if(!i)throw new Error("useChatContext must be used within a ChatProvider");return i}const vf={apiBaseUrl:"https://comfyui-copilot-server.onrender.com"};function Jt(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(i){const e=Math.random()*16|0;return(i==="x"?e:e&3|8).toString(16)})}var qT="0123456789abcdefghijklmnopqrstuvwxyz";function dr(i){return qT.charAt(i)}function YT(i,e){return i&e}function ea(i,e){return i|e}function Uv(i,e){return i^e}function Kv(i,e){return i&~e}function XT(i){if(i==0)return-1;var e=0;return i&65535||(i>>=16,e+=16),i&255||(i>>=8,e+=8),i&15||(i>>=4,e+=4),i&3||(i>>=2,e+=2),i&1||++e,e}function JT(i){for(var e=0;i!=0;)i&=i-1,++e;return e}var cn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",J1="=";function cl(i){var e,t,r="";for(e=0;e+3<=i.length;e+=3)t=parseInt(i.substring(e,e+3),16),r+=cn.charAt(t>>6)+cn.charAt(t&63);for(e+1==i.length?(t=parseInt(i.substring(e,e+1),16),r+=cn.charAt(t<<2)):e+2==i.length&&(t=parseInt(i.substring(e,e+2),16),r+=cn.charAt(t>>2)+cn.charAt((t&3)<<4));(r.length&3)>0;)r+=J1;return r}function Gv(i){var e="",t,r=0,n=0;for(t=0;t>2),n=s&3,r=1):r==1?(e+=dr(n<<2|s>>4),n=s&15,r=2):r==2?(e+=dr(n),e+=dr(s>>2),n=s&3,r=3):(e+=dr(n<<2|s>>4),e+=dr(s&15),r=0))}return r==1&&(e+=dr(n<<2)),e}var Xi,ZT={decode:function(i){var e;if(Xi===void 0){var t="0123456789ABCDEF",r=` \f \r  \u2028\u2029`;for(Xi={},e=0;e<16;++e)Xi[t.charAt(e)]=e;for(t=t.toLowerCase(),e=10;e<16;++e)Xi[t.charAt(e)]=e;for(e=0;e=2?(n[n.length]=s,s=0,o=0):s<<=4}}if(o)throw new Error("Hex encoding incomplete: 4 bits missing");return n}},ui,iu={decode:function(i){var e;if(ui===void 0){var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r=`= \f \r  \u2028\u2029`;for(ui=Object.create(null),e=0;e<64;++e)ui[t.charAt(e)]=e;for(ui["-"]=62,ui._=63,e=0;e=4?(n[n.length]=s>>16,n[n.length]=s>>8&255,n[n.length]=s&255,s=0,o=0):s<<=6}}switch(o){case 1:throw new Error("Base64 encoding incomplete: at least 2 bits missing");case 2:n[n.length]=s>>10;break;case 3:n[n.length]=s>>16,n[n.length]=s>>8&255;break}return n},re:/-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+\/=\s]+)====/,unarmor:function(i){var e=iu.re.exec(i);if(e)if(e[1])i=e[1];else if(e[2])i=e[2];else throw new Error("RegExp out of sync");return iu.decode(i)}},Ji=1e13,_s=function(){function i(e){this.buf=[+e||0]}return i.prototype.mulAdd=function(e,t){var r=this.buf,n=r.length,s,o;for(s=0;s0&&(r[s]=t)},i.prototype.sub=function(e){var t=this.buf,r=t.length,n,s;for(n=0;n=0;--n)r+=(Ji+t[n]).toString().substring(1);return r},i.prototype.valueOf=function(){for(var e=this.buf,t=0,r=e.length-1;r>=0;--r)t=t*Ji+e[r];return t},i.prototype.simplify=function(){var e=this.buf;return e.length==1?e[0]:this},i}(),Z1="…",QT=/^(\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/,eO=/^(\d\d\d\d)(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])([01]\d|2[0-3])(?:([0-5]\d)(?:([0-5]\d)(?:[.,](\d{1,3}))?)?)?(Z|[-+](?:[0]\d|1[0-2])([0-5]\d)?)?$/;function Tn(i,e){return i.length>e&&(i=i.substring(0,e)+Z1),i}var Vh=function(){function i(e,t){this.hexDigits="0123456789ABCDEF",e instanceof i?(this.enc=e.enc,this.pos=e.pos):(this.enc=e,this.pos=t)}return i.prototype.get=function(e){if(e===void 0&&(e=this.pos++),e>=this.enc.length)throw new Error("Requesting byte offset ".concat(e," on a stream of length ").concat(this.enc.length));return typeof this.enc=="string"?this.enc.charCodeAt(e):this.enc[e]},i.prototype.hexByte=function(e){return this.hexDigits.charAt(e>>4&15)+this.hexDigits.charAt(e&15)},i.prototype.hexDump=function(e,t,r){for(var n="",s=e;s176)return!1}return!0},i.prototype.parseStringISO=function(e,t){for(var r="",n=e;n191&&s<224?r+=String.fromCharCode((s&31)<<6|this.get(n++)&63):r+=String.fromCharCode((s&15)<<12|(this.get(n++)&63)<<6|this.get(n++)&63)}return r},i.prototype.parseStringBMP=function(e,t){for(var r="",n,s,o=e;o127,s=n?255:0,o,a="";r==s&&++e4){for(a=r,o<<=3;!((+a^s)&128);)a=+a<<1,--o;a="("+o+` bit) `}n&&(r=r-256);for(var l=new _s(r),h=e+1;h=d;--u)a+=h>>u&1?"1":"0";if(a.length>r)return o+Tn(a,r)}return o+a},i.prototype.parseOctetString=function(e,t,r){if(this.isASCII(e,t))return Tn(this.parseStringISO(e,t),r);var n=t-e,s="("+n+` byte) `;r/=2,n>r&&(t=e+r);for(var o=e;or&&(s+=Z1),s},i.prototype.parseOID=function(e,t,r){for(var n="",s=new _s,o=0,a=e;ar)return Tn(n,r);s=new _s,o=0}}return o>0&&(n+=".incomplete"),n},i}(),tO=function(){function i(e,t,r,n,s){if(!(n instanceof qv))throw new Error("Invalid tag value.");this.stream=e,this.header=t,this.length=r,this.tag=n,this.sub=s}return i.prototype.typeName=function(){switch(this.tag.tagClass){case 0:switch(this.tag.tagNumber){case 0:return"EOC";case 1:return"BOOLEAN";case 2:return"INTEGER";case 3:return"BIT_STRING";case 4:return"OCTET_STRING";case 5:return"NULL";case 6:return"OBJECT_IDENTIFIER";case 7:return"ObjectDescriptor";case 8:return"EXTERNAL";case 9:return"REAL";case 10:return"ENUMERATED";case 11:return"EMBEDDED_PDV";case 12:return"UTF8String";case 16:return"SEQUENCE";case 17:return"SET";case 18:return"NumericString";case 19:return"PrintableString";case 20:return"TeletexString";case 21:return"VideotexString";case 22:return"IA5String";case 23:return"UTCTime";case 24:return"GeneralizedTime";case 25:return"GraphicString";case 26:return"VisibleString";case 27:return"GeneralString";case 28:return"UniversalString";case 30:return"BMPString"}return"Universal_"+this.tag.tagNumber.toString();case 1:return"Application_"+this.tag.tagNumber.toString();case 2:return"["+this.tag.tagNumber.toString()+"]";case 3:return"Private_"+this.tag.tagNumber.toString()}},i.prototype.content=function(e){if(this.tag===void 0)return null;e===void 0&&(e=1/0);var t=this.posContent(),r=Math.abs(this.length);if(!this.tag.isUniversal())return this.sub!==null?"("+this.sub.length+" elem)":this.stream.parseOctetString(t,t+r,e);switch(this.tag.tagNumber){case 1:return this.stream.get(t)===0?"false":"true";case 2:return this.stream.parseInteger(t,t+r);case 3:return this.sub?"("+this.sub.length+" elem)":this.stream.parseBitString(t,t+r,e);case 4:return this.sub?"("+this.sub.length+" elem)":this.stream.parseOctetString(t,t+r,e);case 6:return this.stream.parseOID(t,t+r,e);case 16:case 17:return this.sub!==null?"("+this.sub.length+" elem)":"(no elem)";case 12:return Tn(this.stream.parseStringUTF(t,t+r),e);case 18:case 19:case 20:case 21:case 22:case 26:return Tn(this.stream.parseStringISO(t,t+r),e);case 30:return Tn(this.stream.parseStringBMP(t,t+r),e);case 23:case 24:return this.stream.parseTime(t,t+r,this.tag.tagNumber==23)}return null},i.prototype.toString=function(){return this.typeName()+"@"+this.stream.pos+"[header:"+this.header+",length:"+this.length+",sub:"+(this.sub===null?"null":this.sub.length)+"]"},i.prototype.toPrettyString=function(e){e===void 0&&(e="");var t=e+this.typeName()+" @"+this.stream.pos;if(this.length>=0&&(t+="+"),t+=this.length,this.tag.tagConstructed?t+=" (constructed)":this.tag.isUniversal()&&(this.tag.tagNumber==3||this.tag.tagNumber==4)&&this.sub!==null&&(t+=" (encapsulates)"),t+=` `,this.sub!==null){e+=" ";for(var r=0,n=this.sub.length;r6)throw new Error("Length over 48 bits not supported at position "+(e.pos-1));if(r===0)return null;t=0;for(var n=0;n>6,this.tagConstructed=(t&32)!==0,this.tagNumber=t&31,this.tagNumber==31){var r=new _s;do t=e.get(),r.mulAdd(128,t&127);while(t&128);this.tagNumber=r.simplify()}}return i.prototype.isUniversal=function(){return this.tagClass===0},i.prototype.isEOC=function(){return this.tagClass===0&&this.tagNumber===0},i}(),Vr,rO=0xdeadbeefcafe,Yv=(rO&16777215)==15715070,et=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],iO=(1<<26)/et[et.length-1],U=function(){function i(e,t,r){e!=null&&(typeof e=="number"?this.fromNumber(e,t,r):t==null&&typeof e!="string"?this.fromString(e,256):this.fromString(e,t))}return i.prototype.toString=function(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(e==16)t=4;else if(e==8)t=3;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else return this.toRadix(e);var r=(1<0)for(l>l)>0&&(s=!0,o=dr(n));a>=0;)l>(l+=this.DB-t)):(n=this[a]>>(l-=t)&r,l<=0&&(l+=this.DB,--a)),n>0&&(s=!0),s&&(o+=dr(n));return s?o:"0"},i.prototype.negate=function(){var e=J();return i.ZERO.subTo(this,e),e},i.prototype.abs=function(){return this.s<0?this.negate():this},i.prototype.compareTo=function(e){var t=this.s-e.s;if(t!=0)return t;var r=this.t;if(t=r-e.t,t!=0)return this.s<0?-t:t;for(;--r>=0;)if((t=this[r]-e[r])!=0)return t;return 0},i.prototype.bitLength=function(){return this.t<=0?0:this.DB*(this.t-1)+ta(this[this.t-1]^this.s&this.DM)},i.prototype.mod=function(e){var t=J();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(i.ZERO)>0&&e.subTo(t,t),t},i.prototype.modPowInt=function(e,t){var r;return e<256||t.isEven()?r=new Xv(t):r=new Jv(t),this.exp(e,r)},i.prototype.clone=function(){var e=J();return this.copyTo(e),e},i.prototype.intValue=function(){if(this.s<0){if(this.t==1)return this[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this[0];if(this.t==0)return 0}return(this[1]&(1<<32-this.DB)-1)<>24},i.prototype.shortValue=function(){return this.t==0?this.s:this[0]<<16>>16},i.prototype.signum=function(){return this.s<0?-1:this.t<=0||this.t==1&&this[0]<=0?0:1},i.prototype.toByteArray=function(){var e=this.t,t=[];t[0]=this.s;var r=this.DB-e*this.DB%8,n,s=0;if(e-- >0)for(r>r)!=(this.s&this.DM)>>r&&(t[s++]=n|this.s<=0;)r<8?(n=(this[e]&(1<>(r+=this.DB-8)):(n=this[e]>>(r-=8)&255,r<=0&&(r+=this.DB,--e)),n&128&&(n|=-256),s==0&&(this.s&128)!=(n&128)&&++s,(s>0||n!=this.s)&&(t[s++]=n);return t},i.prototype.equals=function(e){return this.compareTo(e)==0},i.prototype.min=function(e){return this.compareTo(e)<0?this:e},i.prototype.max=function(e){return this.compareTo(e)>0?this:e},i.prototype.and=function(e){var t=J();return this.bitwiseTo(e,YT,t),t},i.prototype.or=function(e){var t=J();return this.bitwiseTo(e,ea,t),t},i.prototype.xor=function(e){var t=J();return this.bitwiseTo(e,Uv,t),t},i.prototype.andNot=function(e){var t=J();return this.bitwiseTo(e,Kv,t),t},i.prototype.not=function(){for(var e=J(),t=0;t=this.t?this.s!=0:(this[t]&1<1){var u=J();for(o.sqrTo(a[1],u);l<=d;)a[l]=J(),o.mulTo(u,a[l-2],a[l]),l+=2}var c=e.t-1,f,v=!0,g=J(),y;for(r=ta(e[c])-1;c>=0;){for(r>=h?f=e[c]>>r-h&d:(f=(e[c]&(1<0&&(f|=e[c-1]>>this.DB+r-h)),l=n;!(f&1);)f>>=1,--l;if((r-=l)<0&&(r+=this.DB,--c),v)a[f].copyTo(s),v=!1;else{for(;l>1;)o.sqrTo(s,g),o.sqrTo(g,s),l-=2;l>0?o.sqrTo(s,g):(y=s,s=g,g=y),o.mulTo(g,a[f],s)}for(;c>=0&&!(e[c]&1<=0?(r.subTo(n,r),t&&s.subTo(a,s),o.subTo(l,o)):(n.subTo(r,n),t&&a.subTo(s,a),l.subTo(o,l))}if(n.compareTo(i.ONE)!=0)return i.ZERO;if(l.compareTo(e)>=0)return l.subtract(e);if(l.signum()<0)l.addTo(e,l);else return l;return l.signum()<0?l.add(e):l},i.prototype.pow=function(e){return this.exp(e,new nO)},i.prototype.gcd=function(e){var t=this.s<0?this.negate():this.clone(),r=e.s<0?e.negate():e.clone();if(t.compareTo(r)<0){var n=t;t=r,r=n}var s=t.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return t;for(s0&&(t.rShiftTo(o,t),r.rShiftTo(o,r));t.signum()>0;)(s=t.getLowestSetBit())>0&&t.rShiftTo(s,t),(s=r.getLowestSetBit())>0&&r.rShiftTo(s,r),t.compareTo(r)>=0?(t.subTo(r,t),t.rShiftTo(1,t)):(r.subTo(t,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r},i.prototype.isProbablePrime=function(e){var t,r=this.abs();if(r.t==1&&r[0]<=et[et.length-1]){for(t=0;t=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s},i.prototype.fromInt=function(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+this.DV:this.t=0},i.prototype.fromString=function(e,t){var r;if(t==16)r=4;else if(t==8)r=3;else if(t==256)r=8;else if(t==2)r=1;else if(t==32)r=5;else if(t==4)r=2;else{this.fromRadix(e,t);return}this.t=0,this.s=0;for(var n=e.length,s=!1,o=0;--n>=0;){var a=r==8?+e[n]&255:Qv(e,n);if(a<0){e.charAt(n)=="-"&&(s=!0);continue}s=!1,o==0?this[this.t++]=a:o+r>this.DB?(this[this.t-1]|=(a&(1<>this.DB-o):this[this.t-1]|=a<=this.DB&&(o-=this.DB)}r==8&&+e[0]&128&&(this.s=-1,o>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==e;)--this.t},i.prototype.dlShiftTo=function(e,t){var r;for(r=this.t-1;r>=0;--r)t[r+e]=this[r];for(r=e-1;r>=0;--r)t[r]=0;t.t=this.t+e,t.s=this.s},i.prototype.drShiftTo=function(e,t){for(var r=e;r=0;--l)t[l+o+1]=this[l]>>n|a,a=(this[l]&s)<=0;--l)t[l]=0;t[o]=a,t.t=this.t+o+1,t.s=this.s,t.clamp()},i.prototype.rShiftTo=function(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t){t.t=0;return}var n=e%this.DB,s=this.DB-n,o=(1<>n;for(var a=r+1;a>n;n>0&&(t[this.t-r-1]|=(this.s&o)<>=this.DB;if(e.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t[r++]=this.DV+n:n>0&&(t[r++]=n),t.t=r,t.clamp()},i.prototype.multiplyTo=function(e,t){var r=this.abs(),n=e.abs(),s=r.t;for(t.t=s+n.t;--s>=0;)t[s]=0;for(s=0;s=0;)e[r]=0;for(r=0;r=t.DV&&(e[r+t.t]-=t.DV,e[r+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(r,t[r],e,2*r,0,1)),e.s=0,e.clamp()},i.prototype.divRemTo=function(e,t,r){var n=e.abs();if(!(n.t<=0)){var s=this.abs();if(s.t0?(n.lShiftTo(h,o),s.lShiftTo(h,r)):(n.copyTo(o),s.copyTo(r));var d=o.t,u=o[d-1];if(u!=0){var c=u*(1<1?o[d-2]>>this.F2:0),f=this.FV/c,v=(1<=0&&(r[r.t++]=1,r.subTo(m,r)),i.ONE.dlShiftTo(d,m),m.subTo(o,o);o.t=0;){var w=r[--y]==u?this.DM:Math.floor(r[y]*f+(r[y-1]+g)*v);if((r[y]+=o.am(0,w,r,p,0,d))0&&r.rShiftTo(h,r),a<0&&i.ZERO.subTo(r,r)}}},i.prototype.invDigit=function(){if(this.t<1)return 0;var e=this[0];if(!(e&1))return 0;var t=e&3;return t=t*(2-(e&15)*t)&15,t=t*(2-(e&255)*t)&255,t=t*(2-((e&65535)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t},i.prototype.isEven=function(){return(this.t>0?this[0]&1:this.s)==0},i.prototype.exp=function(e,t){if(e>4294967295||e<1)return i.ONE;var r=J(),n=J(),s=t.convert(this),o=ta(e)-1;for(s.copyTo(r);--o>=0;)if(t.sqrTo(r,n),(e&1<0)t.mulTo(n,s,r);else{var a=r;r=n,n=a}return t.revert(r)},i.prototype.chunkSize=function(e){return Math.floor(Math.LN2*this.DB/Math.log(e))},i.prototype.toRadix=function(e){if(e==null&&(e=10),this.signum()==0||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=kr(r),s=J(),o=J(),a="";for(this.divRemTo(n,s,o);s.signum()>0;)a=(r+o.intValue()).toString(e).substr(1)+a,s.divRemTo(n,s,o);return o.intValue().toString(e)+a},i.prototype.fromRadix=function(e,t){this.fromInt(0),t==null&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),s=!1,o=0,a=0,l=0;l=r&&(this.dMultiply(n),this.dAddOffset(a,0),o=0,a=0)}o>0&&(this.dMultiply(Math.pow(t,o)),this.dAddOffset(a,0)),s&&i.ZERO.subTo(this,this)},i.prototype.fromNumber=function(e,t,r){if(typeof t=="number")if(e<2)this.fromInt(1);else for(this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(i.ONE.shiftLeft(e-1),ea,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(i.ONE.shiftLeft(e-1),this);else{var n=[],s=e&7;n.length=(e>>3)+1,t.nextBytes(n),s>0?n[0]&=(1<>=this.DB;if(e.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n+=e.s}t.s=n<0?-1:0,n>0?t[r++]=n:n<-1&&(t[r++]=this.DV+n),t.t=r,t.clamp()},i.prototype.dMultiply=function(e){this[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()},i.prototype.dAddOffset=function(e,t){if(e!=0){for(;this.t<=t;)this[this.t++]=0;for(this[t]+=e;this[t]>=this.DV;)this[t]-=this.DV,++t>=this.t&&(this[this.t++]=0),++this[t]}},i.prototype.multiplyLowerTo=function(e,t,r){var n=Math.min(this.t+e.t,t);for(r.s=0,r.t=n;n>0;)r[--n]=0;for(var s=r.t-this.t;n=0;)r[n]=0;for(n=Math.max(t-this.t,0);n0)if(t==0)r=this[0]%e;else for(var n=this.t-1;n>=0;--n)r=(t*r+this[n])%e;return r},i.prototype.millerRabin=function(e){var t=this.subtract(i.ONE),r=t.getLowestSetBit();if(r<=0)return!1;var n=t.shiftRight(r);e=e+1>>1,e>et.length&&(e=et.length);for(var s=J(),o=0;o0&&(r.rShiftTo(a,r),n.rShiftTo(a,n));var l=function(){(o=r.getLowestSetBit())>0&&r.rShiftTo(o,r),(o=n.getLowestSetBit())>0&&n.rShiftTo(o,n),r.compareTo(n)>=0?(r.subTo(n,r),r.rShiftTo(1,r)):(n.subTo(r,n),n.rShiftTo(1,n)),r.signum()>0?setTimeout(l,0):(a>0&&n.lShiftTo(a,n),setTimeout(function(){t(n)},0))};setTimeout(l,10)},i.prototype.fromNumberAsync=function(e,t,r,n){if(typeof t=="number")if(e<2)this.fromInt(1);else{this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(i.ONE.shiftLeft(e-1),ea,this),this.isEven()&&this.dAddOffset(1,0);var s=this,o=function(){s.dAddOffset(2,0),s.bitLength()>e&&s.subTo(i.ONE.shiftLeft(e-1),s),s.isProbablePrime(t)?setTimeout(function(){n()},0):setTimeout(o,0)};setTimeout(o,0)}else{var a=[],l=e&7;a.length=(e>>3)+1,t.nextBytes(a),l>0?a[0]&=(1<=0?e.mod(this.m):e},i.prototype.revert=function(e){return e},i.prototype.reduce=function(e){e.divRemTo(this.m,null,e)},i.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},i.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},i}(),Jv=function(){function i(e){this.m=e,this.mp=e.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<0&&this.m.subTo(t,t),t},i.prototype.revert=function(e){var t=J();return e.copyTo(t),this.reduce(t),t},i.prototype.reduce=function(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t>15)*this.mpl&this.um)<<15)&e.DM;for(r=t+this.m.t,e[r]+=this.m.am(0,n,e,t,0,this.m.t);e[r]>=e.DV;)e[r]-=e.DV,e[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)},i.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},i.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},i}(),sO=function(){function i(e){this.m=e,this.r2=J(),this.q3=J(),U.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e)}return i.prototype.convert=function(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=J();return e.copyTo(t),this.reduce(t),t},i.prototype.revert=function(e){return e},i.prototype.reduce=function(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)},i.prototype.mulTo=function(e,t,r){e.multiplyTo(t,r),this.reduce(r)},i.prototype.sqrTo=function(e,t){e.squareTo(t),this.reduce(t)},i}();function J(){return new U(null)}function be(i,e){return new U(i,e)}var Zv=typeof navigator<"u";Zv&&Yv&&navigator.appName=="Microsoft Internet Explorer"?(U.prototype.am=function(e,t,r,n,s,o){for(var a=t&32767,l=t>>15;--o>=0;){var h=this[e]&32767,d=this[e++]>>15,u=l*h+d*a;h=a*h+((u&32767)<<15)+r[n]+(s&1073741823),s=(h>>>30)+(u>>>15)+l*d+(s>>>30),r[n++]=h&1073741823}return s},Vr=30):Zv&&Yv&&navigator.appName!="Netscape"?(U.prototype.am=function(e,t,r,n,s,o){for(;--o>=0;){var a=t*this[e++]+r[n]+s;s=Math.floor(a/67108864),r[n++]=a&67108863}return s},Vr=26):(U.prototype.am=function(e,t,r,n,s,o){for(var a=t&16383,l=t>>14;--o>=0;){var h=this[e]&16383,d=this[e++]>>14,u=l*h+d*a;h=a*h+((u&16383)<<14)+r[n]+s,s=(h>>28)+(u>>14)+l*d,r[n++]=h&268435455}return s},Vr=28);U.prototype.DB=Vr;U.prototype.DM=(1<>>16)!=0&&(i=t,e+=16),(t=i>>8)!=0&&(i=t,e+=8),(t=i>>4)!=0&&(i=t,e+=4),(t=i>>2)!=0&&(i=t,e+=2),(t=i>>1)!=0&&(i=t,e+=1),e}U.ZERO=kr(0);U.ONE=kr(1);var oO=function(){function i(){this.i=0,this.j=0,this.S=[]}return i.prototype.init=function(e){var t,r,n;for(t=0;t<256;++t)this.S[t]=t;for(r=0,t=0;t<256;++t)r=r+this.S[t]+e[t%e.length]&255,n=this.S[t],this.S[t]=this.S[r],this.S[r]=n;this.i=0,this.j=0},i.prototype.next=function(){var e;return this.i=this.i+1&255,this.j=this.j+this.S[this.i]&255,e=this.S[this.i],this.S[this.i]=this.S[this.j],this.S[this.j]=e,this.S[e+this.S[this.i]&255]},i}();function aO(){return new oO}var Q1=256,ra,jr=null,kt;if(jr==null){jr=[],kt=0;var ia=void 0;if(typeof window<"u"&&window.crypto&&window.crypto.getRandomValues){var Wh=new Uint32Array(256);for(window.crypto.getRandomValues(Wh),ia=0;ia=256||kt>=Q1){window.removeEventListener?window.removeEventListener("mousemove",sa,!1):window.detachEvent&&window.detachEvent("onmousemove",sa);return}try{var e=i.x+i.y;jr[kt++]=e&255,na+=1}catch{}};typeof window<"u"&&(window.addEventListener?window.addEventListener("mousemove",sa,!1):window.attachEvent&&window.attachEvent("onmousemove",sa))}function lO(){if(ra==null){for(ra=aO();kt=0&&e>0;){var n=i.charCodeAt(r--);n<128?t[--e]=n:n>127&&n<2048?(t[--e]=n&63|128,t[--e]=n>>6|192):(t[--e]=n&63|128,t[--e]=n>>6&63|128,t[--e]=n>>12|224)}t[--e]=0;for(var s=new nu,o=[];e>2;){for(o[0]=0;o[0]==0;)s.nextBytes(o);t[--e]=o[0]}return t[--e]=2,t[--e]=0,new U(t)}var cO=function(){function i(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}return i.prototype.doPublic=function(e){return e.modPowInt(this.e,this.n)},i.prototype.doPrivate=function(e){if(this.p==null||this.q==null)return e.modPow(this.d,this.n);for(var t=e.mod(this.p).modPow(this.dmp1,this.p),r=e.mod(this.q).modPow(this.dmq1,this.q);t.compareTo(r)<0;)t=t.add(this.p);return t.subtract(r).multiply(this.coeff).mod(this.p).multiply(this.q).add(r)},i.prototype.setPublic=function(e,t){e!=null&&t!=null&&e.length>0&&t.length>0?(this.n=be(e,16),this.e=parseInt(t,16)):console.error("Invalid RSA public key")},i.prototype.encrypt=function(e){var t=this.n.bitLength()+7>>3,r=dO(e,t);if(r==null)return null;var n=this.doPublic(r);if(n==null)return null;for(var s=n.toString(16),o=s.length,a=0;a0&&t.length>0?(this.n=be(e,16),this.e=parseInt(t,16),this.d=be(r,16)):console.error("Invalid RSA private key")},i.prototype.setPrivateEx=function(e,t,r,n,s,o,a,l){e!=null&&t!=null&&e.length>0&&t.length>0?(this.n=be(e,16),this.e=parseInt(t,16),this.d=be(r,16),this.p=be(n,16),this.q=be(s,16),this.dmp1=be(o,16),this.dmq1=be(a,16),this.coeff=be(l,16)):console.error("Invalid RSA private key")},i.prototype.generate=function(e,t){var r=new nu,n=e>>1;this.e=parseInt(t,16);for(var s=new U(t,16);;){for(;this.p=new U(e-n,1,r),!(this.p.subtract(U.ONE).gcd(s).compareTo(U.ONE)==0&&this.p.isProbablePrime(10)););for(;this.q=new U(n,1,r),!(this.q.subtract(U.ONE).gcd(s).compareTo(U.ONE)==0&&this.q.isProbablePrime(10)););if(this.p.compareTo(this.q)<=0){var o=this.p;this.p=this.q,this.q=o}var a=this.p.subtract(U.ONE),l=this.q.subtract(U.ONE),h=a.multiply(l);if(h.gcd(s).compareTo(U.ONE)==0){this.n=this.p.multiply(this.q),this.d=s.modInverse(h),this.dmp1=this.d.mod(a),this.dmq1=this.d.mod(l),this.coeff=this.q.modInverse(this.p);break}}},i.prototype.decrypt=function(e){var t=be(e,16),r=this.doPrivate(t);return r==null?null:uO(r,this.n.bitLength()+7>>3)},i.prototype.generateAsync=function(e,t,r){var n=new nu,s=e>>1;this.e=parseInt(t,16);var o=new U(t,16),a=this,l=function(){var h=function(){if(a.p.compareTo(a.q)<=0){var c=a.p;a.p=a.q,a.q=c}var f=a.p.subtract(U.ONE),v=a.q.subtract(U.ONE),g=f.multiply(v);g.gcd(o).compareTo(U.ONE)==0?(a.n=a.p.multiply(a.q),a.d=o.modInverse(g),a.dmp1=a.d.mod(f),a.dmq1=a.d.mod(v),a.coeff=a.q.modInverse(a.p),setTimeout(function(){r()},0)):setTimeout(l,0)},d=function(){a.q=J(),a.q.fromNumberAsync(s,1,n,function(){a.q.subtract(U.ONE).gcda(o,function(c){c.compareTo(U.ONE)==0&&a.q.isProbablePrime(10)?setTimeout(h,0):setTimeout(d,0)})})},u=function(){a.p=J(),a.p.fromNumberAsync(e-s,1,n,function(){a.p.subtract(U.ONE).gcda(o,function(c){c.compareTo(U.ONE)==0&&a.p.isProbablePrime(10)?setTimeout(d,0):setTimeout(u,0)})})};setTimeout(u,0)};setTimeout(l,0)},i.prototype.sign=function(e,t,r){var n=fO(r),s=n+t(e).toString(),o=hO(s,this.n.bitLength()/4);if(o==null)return null;var a=this.doPrivate(o);if(a==null)return null;var l=a.toString(16);return l.length&1?"0"+l:l},i.prototype.verify=function(e,t,r){var n=be(t,16),s=this.doPublic(n);if(s==null)return null;var o=s.toString(16).replace(/^1f+00/,""),a=vO(o);return a==r(e).toString()},i}();function uO(i,e){for(var t=i.toByteArray(),r=0;r=t.length)return null;for(var n="";++r191&&s<224?(n+=String.fromCharCode((s&31)<<6|t[r+1]&63),++r):(n+=String.fromCharCode((s&15)<<12|(t[r+1]&63)<<6|t[r+2]&63),r+=2)}return n}var Ga={md2:"3020300c06082a864886f70d020205000410",md5:"3020300c06082a864886f70d020505000410",sha1:"3021300906052b0e03021a05000414",sha224:"302d300d06096086480165030402040500041c",sha256:"3031300d060960864801650304020105000420",sha384:"3041300d060960864801650304020205000430",sha512:"3051300d060960864801650304020305000440",ripemd160:"3021300906052b2403020105000414"};function fO(i){return Ga[i]||""}function vO(i){for(var e in Ga)if(Ga.hasOwnProperty(e)){var t=Ga[e],r=t.length;if(i.substr(0,r)==t)return i.substr(r)}return i}/*! Copyright (c) 2011, Yahoo! Inc. All rights reserved. Code licensed under the BSD License: http://developer.yahoo.com/yui/license.html version: 2.9.0 */var xe={};xe.lang={extend:function(i,e,t){if(!e||!i)throw new Error("YAHOO.lang.extend failed, please check that all dependencies are included.");var r=function(){};if(r.prototype=e.prototype,i.prototype=new r,i.prototype.constructor=i,i.superclass=e.prototype,e.prototype.constructor==Object.prototype.constructor&&(e.prototype.constructor=e),t){var n;for(n in t)i.prototype[n]=t[n];var s=function(){},o=["toString","valueOf"];try{/MSIE/.test(navigator.userAgent)&&(s=function(a,l){for(n=0;nMIT License */var S={};(typeof S.asn1>"u"||!S.asn1)&&(S.asn1={});S.asn1.ASN1Util=new function(){this.integerToByteHex=function(i){var e=i.toString(16);return e.length%2==1&&(e="0"+e),e},this.bigIntToMinTwosComplementsHex=function(i){var e=i.toString(16);if(e.substr(0,1)!="-")e.length%2==1?e="0"+e:e.match(/^[0-7]/)||(e="00"+e);else{var t=e.substr(1),r=t.length;r%2==1?r+=1:e.match(/^[0-7]/)||(r+=2);for(var n="",s=0;s"u"||this.hV==null)throw"this.hV is null or undefined.";if(this.hV.length%2==1)throw"value hex must be even length: n="+i.length+",v="+this.hV;var e=this.hV.length/2,t=e.toString(16);if(t.length%2==1&&(t="0"+t),e<128)return t;var r=t.length/2;if(r>15)throw"ASN.1 length too long to represent by 8x: n = "+e.toString(16);var n=128+r;return n.toString(16)+t},this.getEncodedHex=function(){return(this.hTLV==null||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return""}};S.asn1.DERAbstractString=function(i){S.asn1.DERAbstractString.superclass.constructor.call(this),this.getString=function(){return this.s},this.setString=function(e){this.hTLV=null,this.isModified=!0,this.s=e,this.hV=stohex(this.s)},this.setStringHex=function(e){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=e},this.getFreshValueHex=function(){return this.hV},typeof i<"u"&&(typeof i=="string"?this.setString(i):typeof i.str<"u"?this.setString(i.str):typeof i.hex<"u"&&this.setStringHex(i.hex))};xe.lang.extend(S.asn1.DERAbstractString,S.asn1.ASN1Object);S.asn1.DERAbstractTime=function(i){S.asn1.DERAbstractTime.superclass.constructor.call(this),this.localDateToUTC=function(e){utc=e.getTime()+e.getTimezoneOffset()*6e4;var t=new Date(utc);return t},this.formatDate=function(e,t,r){var n=this.zeroPadding,s=this.localDateToUTC(e),o=String(s.getFullYear());t=="utc"&&(o=o.substr(2,2));var a=n(String(s.getMonth()+1),2),l=n(String(s.getDate()),2),h=n(String(s.getHours()),2),d=n(String(s.getMinutes()),2),u=n(String(s.getSeconds()),2),c=o+a+l+h+d+u;if(r===!0){var f=s.getMilliseconds();if(f!=0){var v=n(String(f),3);v=v.replace(/[0]+$/,""),c=c+"."+v}}return c+"Z"},this.zeroPadding=function(e,t){return e.length>=t?e:new Array(t-e.length+1).join("0")+e},this.getString=function(){return this.s},this.setString=function(e){this.hTLV=null,this.isModified=!0,this.s=e,this.hV=stohex(e)},this.setByDateValue=function(e,t,r,n,s,o){var a=new Date(Date.UTC(e,t-1,r,n,s,o,0));this.setByDate(a)},this.getFreshValueHex=function(){return this.hV}};xe.lang.extend(S.asn1.DERAbstractTime,S.asn1.ASN1Object);S.asn1.DERAbstractStructured=function(i){S.asn1.DERAbstractString.superclass.constructor.call(this),this.setByASN1ObjectArray=function(e){this.hTLV=null,this.isModified=!0,this.asn1Array=e},this.appendASN1Object=function(e){this.hTLV=null,this.isModified=!0,this.asn1Array.push(e)},this.asn1Array=new Array,typeof i<"u"&&typeof i.array<"u"&&(this.asn1Array=i.array)};xe.lang.extend(S.asn1.DERAbstractStructured,S.asn1.ASN1Object);S.asn1.DERBoolean=function(){S.asn1.DERBoolean.superclass.constructor.call(this),this.hT="01",this.hTLV="0101ff"};xe.lang.extend(S.asn1.DERBoolean,S.asn1.ASN1Object);S.asn1.DERInteger=function(i){S.asn1.DERInteger.superclass.constructor.call(this),this.hT="02",this.setByBigInteger=function(e){this.hTLV=null,this.isModified=!0,this.hV=S.asn1.ASN1Util.bigIntToMinTwosComplementsHex(e)},this.setByInteger=function(e){var t=new U(String(e),10);this.setByBigInteger(t)},this.setValueHex=function(e){this.hV=e},this.getFreshValueHex=function(){return this.hV},typeof i<"u"&&(typeof i.bigint<"u"?this.setByBigInteger(i.bigint):typeof i.int<"u"?this.setByInteger(i.int):typeof i=="number"?this.setByInteger(i):typeof i.hex<"u"&&this.setValueHex(i.hex))};xe.lang.extend(S.asn1.DERInteger,S.asn1.ASN1Object);S.asn1.DERBitString=function(i){if(i!==void 0&&typeof i.obj<"u"){var e=S.asn1.ASN1Util.newObject(i.obj);i.hex="00"+e.getEncodedHex()}S.asn1.DERBitString.superclass.constructor.call(this),this.hT="03",this.setHexValueIncludingUnusedBits=function(t){this.hTLV=null,this.isModified=!0,this.hV=t},this.setUnusedBitsAndHexValue=function(t,r){if(t<0||7"u"&&typeof this.s>"u"&&(this.date=new Date,this.s=this.formatDate(this.date,"utc"),this.hV=stohex(this.s)),this.hV},i!==void 0&&(i.str!==void 0?this.setString(i.str):typeof i=="string"&&i.match(/^[0-9]{12}Z$/)?this.setString(i):i.hex!==void 0?this.setStringHex(i.hex):i.date!==void 0&&this.setByDate(i.date))};xe.lang.extend(S.asn1.DERUTCTime,S.asn1.DERAbstractTime);S.asn1.DERGeneralizedTime=function(i){S.asn1.DERGeneralizedTime.superclass.constructor.call(this,i),this.hT="18",this.withMillis=!1,this.setByDate=function(e){this.hTLV=null,this.isModified=!0,this.date=e,this.s=this.formatDate(this.date,"gen",this.withMillis),this.hV=stohex(this.s)},this.getFreshValueHex=function(){return this.date===void 0&&this.s===void 0&&(this.date=new Date,this.s=this.formatDate(this.date,"gen",this.withMillis),this.hV=stohex(this.s)),this.hV},i!==void 0&&(i.str!==void 0?this.setString(i.str):typeof i=="string"&&i.match(/^[0-9]{14}Z$/)?this.setString(i):i.hex!==void 0?this.setStringHex(i.hex):i.date!==void 0&&this.setByDate(i.date),i.millis===!0&&(this.withMillis=!0))};xe.lang.extend(S.asn1.DERGeneralizedTime,S.asn1.DERAbstractTime);S.asn1.DERSequence=function(i){S.asn1.DERSequence.superclass.constructor.call(this,i),this.hT="30",this.getFreshValueHex=function(){for(var e="",t=0;tlocalStorage.getItem("chatApiKey"),gs=()=>{const i=localStorage.getItem("openaiApiKey"),e=localStorage.getItem("openaiBaseUrl")||"https://api.openai.com/v1",t=localStorage.getItem("rsaPublicKey");return{openaiApiKey:i||"",openaiBaseUrl:e,rsaPublicKey:t}},Ar=()=>navigator.language||"zh-CN",Zi=i=>{const e=i.headers.get("User-Api-Key");e&&!localStorage.getItem("chatApiKey")&&localStorage.setItem("chatApiKey",e)};var Wr;(i=>{async function e(h){try{const d=Dr(),u=Ar();h.session_id=localStorage.getItem("sessionId")||null,fetch(`${Cr}/api/chat/track_event`,{method:"POST",headers:{"Content-Type":"application/json",accept:"application/json","Access-Control-Allow-Origin":"*",Authorization:`Bearer ${d}`,"trace-id":Jt(),"Accept-Language":u},body:JSON.stringify(h)}).catch(c=>{console.warn("Track event failed:",c)})}catch(d){console.warn("Error preparing track event:",d)}return Promise.resolve()}i.trackEvent=e;async function*t(h,d,u=[],c=null,f=null,v,g){try{const y=Dr(),p=Ar(),{openaiApiKey:m,openaiBaseUrl:w,rsaPublicKey:$}=gs(),x=Jt(),_=(u||[]).map(Q=>new Promise((K,Z)=>{const se=new FileReader;se.onloadend=()=>K(se.result),se.onerror=Z,se.readAsDataURL(Q)})),A=await Promise.all(_);let R=f?Array.isArray(f)?f:[f]:[];const B={"Content-Type":"application/json",accept:"application/json","Access-Control-Allow-Origin":"*",Authorization:`Bearer ${y}`,"trace-id":v||Jt(),"Accept-Language":p};if(m&&m.trim()!==""&&$)try{const Q=await un(m,$);B["Encrypted-Openai-Api-Key"]=Q,B["Openai-Base-Url"]=w}catch(Q){console.error("Error encrypting OpenAI API key:",Q)}const G=new AbortController,q=setTimeout(()=>G.abort(),12e4);g&&g.addEventListener("abort",()=>{clearTimeout(q),G.abort()});const ce=await fetch(`${Cr}/api/chat/invoke`,{method:"POST",headers:B,body:JSON.stringify({session_id:h,prompt:d,mock:!1,intent:c,ext:R,images:A.map((Q,K)=>({filename:u[K].name,data:Q}))}),signal:G.signal});clearTimeout(q),Zi(ce);const ue=ce.body.getReader();let Fe="";for(;;){const{done:Q,value:K}=await ue.read();if(Q)break;Fe+=new TextDecoder().decode(K);const Z=Fe.split(` `);Fe=Z.pop()||"";for(const se of Z)se.trim()&&(yield{...JSON.parse(se),message_id:x})}Fe.trim()&&(yield{...JSON.parse(Fe),message_id:x})}catch(y){if(console.error("Error in streamInvokeServer:",y),y instanceof Error&&y.name==="AbortError"){if(g?.aborted)throw y;alert("Request timed out after 2 minutes. Please try again.")}else alert(y instanceof Error?y.message:"An error occurred while streaming, please refresh the page and try again.");throw y}}i.streamInvokeServer=t;async function r(h,d){try{const u=Dr(),c=Ar(),{openaiApiKey:f,openaiBaseUrl:v,rsaPublicKey:g}=gs(),y={"Content-Type":"application/json",accept:"application/json","Access-Control-Allow-Origin":"*",Authorization:`Bearer ${u}`,"trace-id":Jt(),"Accept-Language":c};if(f&&f.trim()!==""&&g)try{const w=await un(f,g);y["Encrypted-Openai-Api-Key"]=w,y["Openai-Base-Url"]=v}catch(w){console.error("Error encrypting OpenAI API key:",w)}const p=await fetch(`${Cr}/api/chat/get_optimized_workflow`,{method:"POST",headers:y,body:JSON.stringify({workflow_id:h,prompt:d})});Zi(p);const m=await p.json();if(!m.success){const w=m.message||"Failed to get optimized workflow";throw alert(w),new Error(w)}return m.data}catch(u){throw console.error("Error getting optimized workflow:",u),alert(u instanceof Error?u.message:"Failed to get optimized workflow"),u}}i.getOptimizedWorkflow=r;async function n(h){const d=Dr(),u=Ar(),{openaiApiKey:c,openaiBaseUrl:f,rsaPublicKey:v}=gs(),g={"Content-Type":"application/json",Authorization:`Bearer ${d}`,"trace-id":Jt(),"Accept-Language":u};if(c&&c.trim()!==""&&v)try{const m=await un(c,v);g["Encrypted-Openai-Api-Key"]=m,g["Openai-Base-Url"]=f}catch(m){console.error("Error encrypting OpenAI API key:",m)}const y=await fetch(`${Cr}/api/chat/get_node_info_by_types`,{method:"POST",headers:g,body:JSON.stringify({node_types:h})});Zi(y);const p=await y.json();if(!p.success){const m=p.message||"Failed to get node info by types";throw alert(m),new Error(m)}return p.data}i.batchGetNodeInfo=n;async function s(h){try{const d=localStorage.getItem(`messages_${h}`);if(d)return console.log("Using cached messages from localStorage"),JSON.parse(d);const u=Dr(),c=Ar(),{openaiApiKey:f,openaiBaseUrl:v,rsaPublicKey:g}=gs(),y={accept:"application/json",Authorization:`Bearer ${u}`,"trace-id":Jt(),"Accept-Language":c};if(f&&f.trim()!==""&&g)try{const $=await un(f,g);y["Encrypted-Openai-Api-Key"]=$,y["Openai-Base-Url"]=v}catch($){console.error("Error encrypting OpenAI API key:",$)}const p=await fetch(`${Cr}/api/chat/get_messages_by_session_id?session_id=${h}`,{method:"GET",headers:y});Zi(p);const m=await p.json();if(!m.success){const $=m.message||"Failed to fetch messages";throw alert($+", please refresh the page and try again."),new Error($)}const w=m.data.map($=>(console.log("msg.ext",$.ext),{id:$.id.toString(),content:$.role==="ai"?JSON.stringify({session_id:h,text:$.content,finished:$.finished||!1,format:$.format||"markdown",ext:$.ext}):$.content,role:$.role,name:$.role==="ai"?"Assistant":void 0,format:$.format||"markdown",finished:$.finished}));return localStorage.setItem(`messages_${h}`,JSON.stringify(w)),w}catch(d){throw console.error("Error fetching messages:",d),alert(d instanceof Error?d.message:"Failed to fetch messages, please refresh the page and try again."),d}}i.fetchMessages=s;async function o(){try{const h=Dr(),d=Ar(),{openaiApiKey:u,openaiBaseUrl:c,rsaPublicKey:f}=gs(),v={accept:"application/json",Authorization:`Bearer ${h}`,"trace-id":Jt(),"Accept-Language":d};if(u&&u.trim()!==""&&f)try{const p=await un(u,f);v["Encrypted-Openai-Api-Key"]=p,v["Openai-Base-Url"]=c}catch(p){console.error("Error encrypting OpenAI API key:",p)}const g=await fetch(`${Cr}/api/chat/announcement`,{method:"GET",headers:v});Zi(g);const y=await g.json();if(!y.success){const p=y.message||"Failed to fetch announcement";return console.error(p),""}return y.data}catch(h){return console.error("Error fetching announcement:",h),""}}i.fetchAnnouncement=o;async function a(h){let u=0,c;for(;u<3;)try{const f=Dr(),v=Ar(),g={"Content-Type":"application/json",accept:"application/json",Authorization:`Bearer ${f}`,"trace-id":Jt(),"Accept-Language":v},y=await fetch(`${Cr}/api/param_debug/generate_sd_prompts`,{method:"POST",headers:g,body:JSON.stringify({text:h})});Zi(y);const p=await y.json();if(!p.success){const m=p.message||"Failed to generate SD prompts";throw new Error(m)}return p.data}catch(f){if(c=f,u++,u>=3)throw console.error("Error generating SD prompts after 3 attempts:",f),f;console.warn(`Attempt ${u} failed, retrying... Error: ${f instanceof Error?f.message:"Unknown error"}`),await new Promise(v=>setTimeout(v,500*Math.pow(2,u-1)))}throw c}i.generateSDPrompts=a;async function l(){const h=Dr(),d=Ar(),u={"Content-Type":"application/json",accept:"application/json",Authorization:`Bearer ${h}`,"trace-id":Jt(),"Accept-Language":d};return await(await fetch(`${Cr}/v1/models`,{method:"GET",headers:u})).json()}i.listModels=l})(Wr||(Wr={}));function e$({name:i,isUser:e=!1,children:t}){return E.jsx("div",{className:"flex flex-col w-full items-start gap-2 py-2 animate-fadeIn",children:E.jsx("div",{className:"w-full",children:t})})}function $O({title:i,titleId:e,...t},r){return ve.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":e},t),i?ve.createElement("title",{id:e},i):null,ve.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const wO=ve.forwardRef($O);function ece({content:i,trace_id:e}){const[t,r]=ve.useState(!1),[n,s]=ve.useState(!1),o=async()=>{e&&(await navigator.clipboard.writeText(e),s(!0),setTimeout(()=>s(!1),2e3))};return E.jsx(e$,{name:"User",isUser:!0,children:E.jsxs("div",{className:"w-full rounded-lg border border-gray-700 p-4 text-gray-700 text-sm break-words relative",children:[E.jsx("p",{className:"whitespace-pre-wrap leading-snug",children:i}),e&&E.jsxs("div",{className:"absolute bottom-1 right-1.5 cursor-pointer opacity-40 hover:opacity-100 transition-opacity",onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),onClick:o,children:[E.jsx(wO,{className:"h-3.5 w-3.5 text-gray-500 hover:!text-gray-700"}),t&&E.jsx("div",{className:"absolute right-0 -top-6 bg-gray-700 text-white text-[10px] py-0.5 px-1.5 rounded shadow-sm whitespace-nowrap",children:n?"Copied!":"Copy trace ID"})]})]})})}const EO=ve.memo(LT,(i,e)=>i.children===e.children&&i.className===e.className),SO=({content:i})=>E.jsxs("div",{className:"rounded-lg shadow-sm",children:[E.jsxs("div",{className:"flex items-center mb-1",children:[E.jsx("div",{className:"rounded-full mr-1",children:E.jsx("svg",{className:"h-4 w-4",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:E.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})})}),E.jsx("h3",{className:"text-base font-bold",children:"Node Usage Guide"})]}),E.jsx("div",{className:"markdown-content",children:i})]}),_O=({content:i})=>E.jsxs("div",{className:"rounded-lg border border-green-200 bg-green-50 p-1 shadow-sm",children:[E.jsxs("div",{className:"flex items-center mb-1",children:[E.jsx("div",{className:"bg-green-100 rounded-full p-1 mr-1",children:E.jsxs("svg",{className:"h-4 w-4 text-green-700",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:[E.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"}),E.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"})]})}),E.jsx("h3",{className:"text-sm font-medium text-green-800",children:"Node Parameter Reference"})]}),E.jsx("div",{className:"markdown-content text-green-900",children:i})]});function tce({content:i,name:e="Assistant",avatar:t,format:r,onOptionClick:n,extComponent:s,metadata:o}){const a=ve.useRef(null),l=(d,u)=>E.jsx(EO,{rehypePlugins:[[VT,{target:"_blank"}],WT],remarkPlugins:[zT,HT],className:`prose prose-xs prose-neutral prose-a:text-accent-foreground/50 break-words [&>*]:!my-1 leading-relaxed text-xs text-gray-700 prose-headings:font-semibold prose-h1:text-base prose-h2:text-sm prose-h3:text-xs prose-h4:text-xs prose-p:text-xs prose-ul:text-xs prose-ol:text-xs prose-li:text-xs prose-code:text-xs prose-pre:text-xs `,components:{p:({children:c})=>E.jsx("p",{className:"!my-0.5 leading-relaxed text-xs",children:c}),strong:({children:c})=>E.jsx("strong",{className:"text-gray-900",children:c}),h1:({children:c})=>E.jsx("h1",{className:"text-base font-semibold !my-1",children:c}),h2:({children:c})=>E.jsx("h2",{className:"text-sm font-semibold !my-1",children:c}),h3:({children:c})=>E.jsx("h3",{className:"text-xs font-semibold !my-1",children:c}),h4:({children:c})=>E.jsx("h4",{className:"text-xs font-semibold !my-1",children:c}),table:({children:c})=>E.jsx("table",{className:"border-solid border w-[100%] text-xs",children:c}),th:({children:c})=>E.jsx("th",{className:"border-solid border text-center pt-2 text-xs",children:c}),td:({children:c})=>{if(Array.isArray(c)&&c?.length>0){const f=[],v=c.length;for(let g=0;g"?f.push(E.jsx("br",{})):f.push(c[g]);c=f}return E.jsx("td",{className:"border-solid border border-[#979797] text-center text-xs",children:c})},code:({children:c})=>{const[f,v]=ve.useState(!1),g=async()=>{try{await navigator.clipboard.writeText(c),v(!0),setTimeout(()=>v(!1),2e3)}catch(y){console.error("Failed to copy text:",y)}};return E.jsxs("span",{className:"relative group inline-flex items-center",children:[E.jsx("code",{className:"text-xs bg-gray-100 text-gray-900 rounded px-1",children:c}),E.jsx("button",{onClick:g,className:"absolute top-0 right-0 bg-gray-200 rounded p-1 opacity-0 group-hover:opacity-100 transition-opacity hover:bg-gray-300 z-10","aria-label":"Copy code",children:f?E.jsx("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 20 20",children:E.jsx("path",{fillRule:"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z",clipRule:"evenodd"})}):E.jsxs("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 20 20",children:[E.jsx("path",{d:"M8 2a1 1 0 000 2h2a1 1 0 100-2H8z"}),E.jsx("path",{d:"M3 5a2 2 0 012-2 3 3 0 003 3h2a3 3 0 003-3 2 2 0 012 2v6h-4.586l1.293-1.293a1 1 0 00-1.414-1.414l-3 3a1 1 0 000 1.414l3 3a1 1 0 001.414-1.414L10.414 13H15v3a2 2 0 01-2 2H5a2 2 0 01-2-2V5z"})]})})]})},pre:({children:c})=>E.jsx("pre",{className:"text-xs bg-gray-100 text-gray-800 rounded p-2 overflow-x-auto",children:c}),img:({node:c,...f})=>{let v=!1;const g=f.src?.split("?");return g&&g.length>0&&(v=g[0]?.endsWith(".gif")||g[0]?.endsWith(".webp")),E.jsx("div",{className:`${v?"":"w-1/2"} mx-auto`,children:E.jsx("img",{...f,loading:"lazy",className:"w-full h-auto block",onError:y=>{console.warn("Image failed to load:",f.src,"Error:",y),y.currentTarget.style.opacity="0"}})})},a:({href:c,children:f})=>{let v="markdown",g=null;try{const y=JSON.parse(i);v=y.ext?.[0]?.type||"markdown",g=y?.message_id}catch(y){console.error("Error parsing content:",y)}return E.jsx("a",{href:c,target:"_blank",rel:"noopener noreferrer",onClick:()=>{Wr.trackEvent({event_type:"markdown_link_click",message_type:v,message_id:g,data:{link_url:c,link_text:f}})},children:f})}},children:d}),h=()=>{try{const d=JSON.parse(i),u=d.ext?.find(c=>c.type==="guides")?.data||[];if(o?.intent){const c=o.intent;if(c==="node_explain")return E.jsx(SO,{content:l(d.text||"")});if(c==="node_params")return E.jsx(_O,{content:l(d.text||"")})}return E.jsxs("div",{className:"space-y-3",children:[r==="markdown"&&d.text?E.jsx("div",{ref:a,children:l(d.text)}):d.text?E.jsx("p",{className:"whitespace-pre-wrap text-left",children:d.text}):null,u.length>0&&E.jsx("div",{className:"flex flex-wrap gap-2 mt-2",children:u.map((c,f)=>E.jsx("button",{className:"px-3 py-1.5 text-gray-700 rounded-md hover:!bg-gray-50 transition-colors text-[12px] w-[calc(50%-0.25rem)] border border-gray-700",onClick:()=>n?.(c),children:c},f))}),s]})}catch{return E.jsx("p",{className:"whitespace-pre-wrap text-left",children:i})}};return E.jsx(e$,{name:e,children:E.jsx("div",{className:"w-full rounded-lg bg-gray-50 p-4 text-gray-900 text-sm break-words overflow-hidden",children:h()})})}const TO=LiteGraph;function t$(i,e={}){const t=TO.createNode(i,"",e);if(!e.pos){const r=tt.canvas.canvas.getBoundingClientRect(),n=r.width/2/tt.canvas.ds.scale+-tt.canvas.ds.offset[0]/tt.canvas.ds.scale,s=r.height/2/tt.canvas.ds.scale+-tt.canvas.ds.offset[1]/tt.canvas.ds.scale;t.pos=[n-t.size[0]/2,s-t.size[1]/2]}return tt.graph.add(t),t}function OO({content:i,name:e="Assistant",avatar:t,installedNodes:r,onFinishLoad:n}){const s=JSON.parse(i),[o,a]=ve.useState(null),[l,h]=ve.useState(null),d=s.ext?.find(p=>p.type==="node")?.data||[],u=p=>r.some(m=>m===p),c=d.filter(p=>u(p.name)),f=d.filter(p=>!u(p.name));ve.useEffect(()=>{n?.()},[]);const v=p=>p>=1e4?`${(p/1e4).toFixed(1)}w`:p>=1e3?`${(p/1e3).toFixed(1)}k`:p.toString(),g=p=>{a(p.name),h(p)},y=()=>{a(null),h(null)};return E.jsxs("div",{className:"rounded-lg bg-gray-50 p-3 text-gray-700 text-xs break-words overflow-visible",children:[c.length>0&&E.jsxs("div",{className:"space-y-3",children:[E.jsx("p",{className:"text-xs font-medium",children:"Installed nodes:"}),E.jsx("div",{className:"grid grid-cols-2 gap-3",children:c.map(p=>E.jsxs("div",{className:`w-full p-3 rounded-lg border border-gray-200 hover:shadow-sm transition-all duration-200 relative group`,onMouseEnter:()=>g(p),onMouseLeave:y,children:[E.jsx("h3",{className:"text-[12px] font-medium text-gray-800 mb-4",children:p.name}),E.jsxs("div",{className:"flex items-center justify-between text-[11px]",children:[E.jsxs("div",{className:"flex items-center gap-1 text-gray-600",children:[E.jsx("svg",{className:"w-3.5 h-3.5",fill:"currentColor",viewBox:"0 0 24 24",children:E.jsx("path",{d:"M12 .25a.75.75 0 0 1 .673.418l3.058 6.197 6.839.994a.75.75 0 0 1 .415 1.279l-4.948 4.823 1.168 6.811a.75.75 0 0 1-1.088.791L12 18.347l-6.117 3.216a.75.75 0 0 1-1.088-.79l1.168-6.812-4.948-4.823a.75.75 0 0 1 .416-1.28l6.838-.993L11.327.668A.75.75 0 0 1 12 .25z"})}),E.jsx("span",{children:v(p.github_stars||0)})]}),E.jsxs("button",{className:`px-2 py-1 bg-blue-500 text-white rounded-md hover:bg-blue-600 transition-colors text-[10px] flex items-center gap-1`,onClick:()=>{const m=t$(p.name);m&&(m.connect(p.from_index,m,p.to_index),Wr.trackEvent({event_type:"node_add_to_canvas",message_type:"node",message_id:s.message_id,data:{node_name:p.name}}))},children:[E.jsx("svg",{className:"w-3.5 h-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:E.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 4v16m8-8H4"})}),"Add to Canvas"]})]})]},p.name))})]}),f.length>0&&E.jsxs("div",{className:`space-y-3 ${c.length>0?"mt-4":""}`,children:[E.jsx("p",{className:"text-xs font-medium",children:"Uninstalled nodes:"}),E.jsx("div",{className:"grid grid-cols-2 gap-3",children:f.map(p=>E.jsxs("div",{className:`w-full p-3 rounded-lg border border-gray-200 hover:shadow-sm transition-all duration-200 relative group`,onMouseEnter:()=>g(p),onMouseLeave:y,children:[E.jsx("h3",{className:"text-[12px] font-medium text-gray-800 mb-4",children:p.name}),E.jsxs("div",{className:"flex items-center justify-between text-[11px]",children:[E.jsxs("div",{className:"flex items-center gap-1 text-gray-600",children:[E.jsx("svg",{className:"w-3.5 h-3.5",fill:"currentColor",viewBox:"0 0 24 24",children:E.jsx("path",{d:"M12 .25a.75.75 0 0 1 .673.418l3.058 6.197 6.839.994a.75.75 0 0 1 .415 1.279l-4.948 4.823 1.168 6.811a.75.75 0 0 1-1.088.791L12 18.347l-6.117 3.216a.75.75 0 0 1-1.088-.79l1.168-6.812-4.948-4.823a.75.75 0 0 1 .416-1.28l6.838-.993L11.327.668A.75.75 0 0 1 12 .25z"})}),E.jsx("span",{children:v(p.github_stars||0)})]}),p.github_url?E.jsxs("a",{href:p.github_url,target:"_blank",rel:"noopener noreferrer",className:`px-2 py-1 text-gray-900 rounded-md border border-gray-900 hover:bg-gray-100 transition-colors text-[10px] flex items-center gap-1`,onClick:()=>{Wr.trackEvent({event_type:"node_download",message_type:"node",message_id:s.message_id,data:{node_name:p.name,github_url:p.github_url}})},children:[E.jsx("svg",{className:"h-3.5 w-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:E.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})}),"Download"]}):E.jsxs("a",{href:`https://www.google.com/search?q=${encodeURIComponent(p.name+" comfyui custom node")}`,target:"_blank",rel:"noopener noreferrer",className:`px-2 py-1 bg-gray-100 text-gray-500 rounded-md border border-gray-300 text-[10px] flex items-center gap-1`,onClick:()=>{Wr.trackEvent({event_type:"node_search",message_type:"node",message_id:s.message_id,data:{node_name:p.name}})},children:[E.jsx("svg",{className:"h-3.5 w-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:E.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 21h7a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v11m0 5l4.879-4.879m0 0a3 3 0 104.243-4.242 3 3 0 00-4.243 4.242z"})}),"Search on Google"]})]})]},p.name))})]}),o&&l?.description&&E.jsxs("div",{className:`fixed -translate-y-full z-[9999] w-64 p-2 bg-gray-800 text-white text-xs rounded-md shadow-lg mb-2`,style:{left:"calc(var(--mouse-x, 0) + 16px)",top:"calc(var(--mouse-y, 0) - 8px)"},children:[l.description,E.jsx("div",{className:`absolute -bottom-1 left-1/2 -translate-x-1/2 border-4 border-transparent border-t-gray-800`})]})]})}const rce=Object.freeze(Object.defineProperty({__proto__:null,NodeSearch:OO},Symbol.toStringTag,{value:"Module"}));/** * vis-data * http://visjs.org/ * * Manage unstructured data using DataSet. Add, update, and remove data, and listen for changes in the data. * * @version 7.1.9 * @date 2023-11-24T17:53:34.179Z * * @copyright (c) 2011-2017 Almende B.V, http://almende.com * @copyright (c) 2017-2019 visjs contributors, https://github.com/visjs * * @license * vis.js is dual licensed under both * * 1. The Apache 2.0 License * http://www.apache.org/licenses/LICENSE-2.0 * * and * * 2. The MIT License * http://opensource.org/licenses/MIT * * vis.js may be distributed under either license. */function jl(i,e){if(!(i instanceof e))throw new TypeError("Cannot call a class as a function")}var Kh=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function L(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var r$={exports:{}},oa=function(i){return i&&i.Math===Math&&i},pe=oa(typeof globalThis=="object"&&globalThis)||oa(typeof window=="object"&&window)||oa(typeof self=="object"&&self)||oa(typeof Kh=="object"&&Kh)||function(){return this}()||Kh||Function("return this")(),ie=function(i){try{return!!i()}catch{return!0}},IO=ie,io=!IO(function(){var i=function(){}.bind();return typeof i!="function"||i.hasOwnProperty("prototype")}),xO=io,i$=Function.prototype,tp=i$.apply,rp=i$.call,Kn=typeof Reflect=="object"&&Reflect.apply||(xO?rp.bind(tp):function(){return rp.apply(tp,arguments)}),n$=io,s$=Function.prototype,su=s$.call,PO=n$&&s$.bind.bind(su,su),de=n$?PO:function(i){return function(){return su.apply(i,arguments)}},o$=de,CO=o$({}.toString),DO=o$("".slice),ii=function(i){return DO(CO(i),8,-1)},AO=ii,NO=de,a$=function(i){if(AO(i)==="Function")return NO(i)},ou=typeof document=="object"&&document.all,RO=typeof ou>"u"&&ou!==void 0,l$={all:ou,IS_HTMLDDA:RO},h$=l$,kO=h$.all,Ee=h$.IS_HTMLDDA?function(i){return typeof i=="function"||i===kO}:function(i){return typeof i=="function"},Bi={},MO=ie,Ve=!MO(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),FO=io,aa=Function.prototype.call,We=FO?aa.bind(aa):function(){return aa.apply(aa,arguments)},Ll={},d$={}.propertyIsEnumerable,c$=Object.getOwnPropertyDescriptor,BO=c$&&!d$.call({1:2},1);Ll.f=BO?function(e){var t=c$(this,e);return!!t&&t.enumerable}:d$;var ji=function(i,e){return{enumerable:!(i&1),configurable:!(i&2),writable:!(i&4),value:e}},jO=de,LO=ie,zO=ii,Gh=Object,HO=jO("".split),zl=LO(function(){return!Gh("z").propertyIsEnumerable(0)})?function(i){return zO(i)==="String"?HO(i,""):Gh(i)}:Gh,Gn=function(i){return i==null},VO=Gn,WO=TypeError,gf=function(i){if(VO(i))throw new WO("Can't call method on "+i);return i},UO=zl,KO=gf,sr=function(i){return UO(KO(i))},ip=Ee,u$=l$,GO=u$.all,Ge=u$.IS_HTMLDDA?function(i){return typeof i=="object"?i!==null:ip(i)||i===GO}:function(i){return typeof i=="object"?i!==null:ip(i)},ge={},qh=ge,Yh=pe,qO=Ee,np=function(i){return qO(i)?i:void 0},at=function(i,e){return arguments.length<2?np(qh[i])||np(Yh[i]):qh[i]&&qh[i][e]||Yh[i]&&Yh[i][e]},YO=de,Re=YO({}.isPrototypeOf),ni=typeof navigator<"u"&&String(navigator.userAgent)||"",f$=pe,Xh=ni,sp=f$.process,op=f$.Deno,ap=sp&&sp.versions||op&&op.version,lp=ap&&ap.v8,Mt,ul;lp&&(Mt=lp.split("."),ul=Mt[0]>0&&Mt[0]<4?1:+(Mt[0]+Mt[1]));!ul&&Xh&&(Mt=Xh.match(/Edge\/(\d+)/),(!Mt||Mt[1]>=74)&&(Mt=Xh.match(/Chrome\/(\d+)/),Mt&&(ul=+Mt[1])));var qn=ul,hp=qn,XO=ie,JO=pe,ZO=JO.String,Yn=!!Object.getOwnPropertySymbols&&!XO(function(){var i=Symbol("symbol detection");return!ZO(i)||!(Object(i)instanceof Symbol)||!Symbol.sham&&hp&&hp<41}),QO=Yn,v$=QO&&!Symbol.sham&&typeof Symbol.iterator=="symbol",eI=at,tI=Ee,rI=Re,iI=v$,nI=Object,no=iI?function(i){return typeof i=="symbol"}:function(i){var e=eI("Symbol");return tI(e)&&rI(e.prototype,nI(i))},sI=String,Xn=function(i){try{return sI(i)}catch{return"Object"}},oI=Ee,aI=Xn,lI=TypeError,mt=function(i){if(oI(i))return i;throw new lI(aI(i)+" is not a function")},hI=mt,dI=Gn,yf=function(i,e){var t=i[e];return dI(t)?void 0:hI(t)},Jh=We,Zh=Ee,Qh=Ge,cI=TypeError,uI=function(i,e){var t,r;if(e==="string"&&Zh(t=i.toString)&&!Qh(r=Jh(t,i))||Zh(t=i.valueOf)&&!Qh(r=Jh(t,i))||e!=="string"&&Zh(t=i.toString)&&!Qh(r=Jh(t,i)))return r;throw new cI("Can't convert object to primitive value")},p$={exports:{}},fI=!0,dp=pe,vI=Object.defineProperty,pI=function(i,e){try{vI(dp,i,{value:e,configurable:!0,writable:!0})}catch{dp[i]=e}return e},gI=pe,yI=pI,cp="__core-js_shared__",mI=gI[cp]||yI(cp,{}),mf=mI,up=mf;(p$.exports=function(i,e){return up[i]||(up[i]=e!==void 0?e:{})})("versions",[]).push({version:"3.33.2",mode:"pure",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.33.2/LICENSE",source:"https://github.com/zloirock/core-js"});var Jn=p$.exports,bI=gf,$I=Object,bt=function(i){return $I(bI(i))},wI=de,EI=bt,SI=wI({}.hasOwnProperty),ke=Object.hasOwn||function(e,t){return SI(EI(e),t)},_I=de,TI=0,OI=Math.random(),II=_I(1 .toString),Hl=function(i){return"Symbol("+(i===void 0?"":i)+")_"+II(++TI+OI,36)},xI=pe,PI=Jn,fp=ke,CI=Hl,DI=Yn,AI=v$,vn=xI.Symbol,ed=PI("wks"),NI=AI?vn.for||vn:vn&&vn.withoutSetter||CI,ye=function(i){return fp(ed,i)||(ed[i]=DI&&fp(vn,i)?vn[i]:NI("Symbol."+i)),ed[i]},RI=We,vp=Ge,pp=no,kI=yf,MI=uI,FI=ye,BI=TypeError,jI=FI("toPrimitive"),LI=function(i,e){if(!vp(i)||pp(i))return i;var t=kI(i,jI),r;if(t){if(e===void 0&&(e="default"),r=RI(t,i,e),!vp(r)||pp(r))return r;throw new BI("Can't convert object to primitive value")}return e===void 0&&(e="number"),MI(i,e)},zI=LI,HI=no,Vl=function(i){var e=zI(i,"string");return HI(e)?e:e+""},VI=pe,gp=Ge,au=VI.document,WI=gp(au)&&gp(au.createElement),bf=function(i){return WI?au.createElement(i):{}},UI=Ve,KI=ie,GI=bf,g$=!UI&&!KI(function(){return Object.defineProperty(GI("div"),"a",{get:function(){return 7}}).a!==7}),qI=Ve,YI=We,XI=Ll,JI=ji,ZI=sr,QI=Vl,ex=ke,tx=g$,yp=Object.getOwnPropertyDescriptor;Bi.f=qI?yp:function(e,t){if(e=ZI(e),t=QI(t),tx)try{return yp(e,t)}catch{}if(ex(e,t))return JI(!YI(XI.f,e,t),e[t])};var rx=ie,ix=Ee,nx=/#|\.prototype\./,so=function(i,e){var t=ox[sx(i)];return t===lx?!0:t===ax?!1:ix(e)?rx(e):!!e},sx=so.normalize=function(i){return String(i).replace(nx,".").toLowerCase()},ox=so.data={},ax=so.NATIVE="N",lx=so.POLYFILL="P",y$=so,mp=a$,hx=mt,dx=io,cx=mp(mp.bind),si=function(i,e){return hx(i),e===void 0?i:dx?cx(i,e):function(){return i.apply(e,arguments)}},$t={},ux=Ve,fx=ie,m$=ux&&fx(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),vx=Ge,px=String,gx=TypeError,St=function(i){if(vx(i))return i;throw new gx(px(i)+" is not an object")},yx=Ve,mx=g$,bx=m$,la=St,bp=Vl,$x=TypeError,td=Object.defineProperty,wx=Object.getOwnPropertyDescriptor,rd="enumerable",id="configurable",nd="writable";$t.f=yx?bx?function(e,t,r){if(la(e),t=bp(t),la(r),typeof e=="function"&&t==="prototype"&&"value"in r&&nd in r&&!r[nd]){var n=wx(e,t);n&&n[nd]&&(e[t]=r.value,r={configurable:id in r?r[id]:n[id],enumerable:rd in r?r[rd]:n[rd],writable:!1})}return td(e,t,r)}:td:function(e,t,r){if(la(e),t=bp(t),la(r),mx)try{return td(e,t,r)}catch{}if("get"in r||"set"in r)throw new $x("Accessors not supported");return"value"in r&&(e[t]=r.value),e};var Ex=Ve,Sx=$t,_x=ji,Tr=Ex?function(i,e,t){return Sx.f(i,e,_x(1,t))}:function(i,e,t){return i[e]=t,i},ha=pe,Tx=Kn,Ox=a$,Ix=Ee,xx=Bi.f,Px=y$,Qi=ge,Cx=si,en=Tr,$p=ke,Dx=function(i){var e=function(t,r,n){if(this instanceof e){switch(arguments.length){case 0:return new i;case 1:return new i(t);case 2:return new i(t,r)}return new i(t,r,n)}return Tx(i,this,arguments)};return e.prototype=i.prototype,e},F=function(i,e){var t=i.target,r=i.global,n=i.stat,s=i.proto,o=r?ha:n?ha[t]:(ha[t]||{}).prototype,a=r?Qi:Qi[t]||en(Qi,t,{})[t],l=a.prototype,h,d,u,c,f,v,g,y,p;for(c in e)h=Px(r?c:t+(n?".":"#")+c,i.forced),d=!h&&o&&$p(o,c),v=a[c],d&&(i.dontCallGetSet?(p=xx(o,c),g=p&&p.value):g=o[c]),f=d&&g?g:e[c],!(d&&typeof v==typeof f)&&(i.bind&&d?y=Cx(f,ha):i.wrap&&d?y=Dx(f):s&&Ix(f)?y=Ox(f):y=f,(i.sham||f&&f.sham||v&&v.sham)&&en(y,"sham",!0),en(a,c,y),s&&(u=t+"Prototype",$p(Qi,u)||en(Qi,u,{}),en(Qi[u],c,f),i.real&&l&&(h||!l[c])&&en(l,c,f)))},Ax=F,Nx=Ve,wp=$t.f;Ax({target:"Object",stat:!0,forced:Object.defineProperty!==wp,sham:!Nx},{defineProperty:wp});var Rx=ge,b$=Rx.Object,kx=r$.exports=function(e,t,r){return b$.defineProperty(e,t,r)};b$.defineProperty.sham&&(kx.sham=!0);var Mx=r$.exports,Fx=Mx,$$=Fx,Bx=$$,jx=Bx,Lx=jx,zx=Lx,w$=zx,Wl=L(w$),Hx=ii,oi=Array.isArray||function(e){return Hx(e)==="Array"},Vx=Math.ceil,Wx=Math.floor,Ux=Math.trunc||function(e){var t=+e;return(t>0?Wx:Vx)(t)},Kx=Ux,Ul=function(i){var e=+i;return e!==e||e===0?0:Kx(e)},Gx=Ul,qx=Math.min,Yx=function(i){return i>0?qx(Gx(i),9007199254740991):0},Xx=Yx,_t=function(i){return Xx(i.length)},Jx=TypeError,Zx=9007199254740991,Kl=function(i){if(i>Zx)throw Jx("Maximum allowed index exceeded");return i},Qx=Vl,eP=$t,tP=ji,Zn=function(i,e,t){var r=Qx(e);r in i?eP.f(i,r,tP(0,t)):i[r]=t},rP=ye,iP=rP("toStringTag"),E$={};E$[iP]="z";var $f=String(E$)==="[object z]",nP=$f,sP=Ee,qa=ii,oP=ye,aP=oP("toStringTag"),lP=Object,hP=qa(function(){return arguments}())==="Arguments",dP=function(i,e){try{return i[e]}catch{}},Or=nP?qa:function(i){var e,t,r;return i===void 0?"Undefined":i===null?"Null":typeof(t=dP(e=lP(i),aP))=="string"?t:hP?qa(e):(r=qa(e))==="Object"&&sP(e.callee)?"Arguments":r},cP=de,uP=Ee,lu=mf,fP=cP(Function.toString);uP(lu.inspectSource)||(lu.inspectSource=function(i){return fP(i)});var S$=lu.inspectSource,vP=de,pP=ie,_$=Ee,gP=Or,yP=at,mP=S$,T$=function(){},bP=[],O$=yP("Reflect","construct"),wf=/^\s*(?:class|function)\b/,$P=vP(wf.exec),wP=!wf.test(T$),ys=function(e){if(!_$(e))return!1;try{return O$(T$,bP,e),!0}catch{return!1}},I$=function(e){if(!_$(e))return!1;switch(gP(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return wP||!!$P(wf,mP(e))}catch{return!0}};I$.sham=!0;var Gl=!O$||pP(function(){var i;return ys(ys.call)||!ys(Object)||!ys(function(){i=!0})||i})?I$:ys,Ep=oi,EP=Gl,SP=Ge,_P=ye,TP=_P("species"),Sp=Array,OP=function(i){var e;return Ep(i)&&(e=i.constructor,EP(e)&&(e===Sp||Ep(e.prototype))?e=void 0:SP(e)&&(e=e[TP],e===null&&(e=void 0))),e===void 0?Sp:e},IP=OP,ql=function(i,e){return new(IP(i))(e===0?0:e)},xP=ie,PP=ye,CP=qn,DP=PP("species"),oo=function(i){return CP>=51||!xP(function(){var e=[],t=e.constructor={};return t[DP]=function(){return{foo:1}},e[i](Boolean).foo!==1})},AP=F,NP=ie,RP=oi,kP=Ge,MP=bt,FP=_t,_p=Kl,Tp=Zn,BP=ql,jP=oo,LP=ye,zP=qn,x$=LP("isConcatSpreadable"),HP=zP>=51||!NP(function(){var i=[];return i[x$]=!1,i.concat()[0]!==i}),VP=function(i){if(!kP(i))return!1;var e=i[x$];return e!==void 0?!!e:RP(i)},WP=!HP||!jP("concat");AP({target:"Array",proto:!0,forced:WP},{concat:function(e){var t=MP(this),r=BP(t,0),n=0,s,o,a,l,h;for(s=-1,a=arguments.length;so;)if(a=n[o++],a!==a)return!0}else for(;s>o;o++)if((i||o in n)&&n[o]===t)return i||o||0;return!i&&-1}},eC={indexOf:QP(!1)},ao={},tC=de,sd=ke,rC=sr,iC=eC.indexOf,nC=ao,Op=tC([].push),P$=function(i,e){var t=rC(i),r=0,n=[],s;for(s in t)!sd(nC,s)&&sd(t,s)&&Op(n,s);for(;e.length>r;)sd(t,s=e[r++])&&(~iC(n,s)||Op(n,s));return n},Ef=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],sC=P$,oC=Ef,Jl=Object.keys||function(e){return sC(e,oC)},aC=Ve,lC=m$,hC=$t,dC=St,cC=sr,uC=Jl;Yl.f=aC&&!lC?Object.defineProperties:function(e,t){dC(e);for(var r=cC(t),n=uC(t),s=n.length,o=0,a;s>o;)hC.f(e,a=n[o++],r[a]);return e};var fC=at,C$=fC("document","documentElement"),vC=Jn,pC=Hl,Ip=vC("keys"),Zl=function(i){return Ip[i]||(Ip[i]=pC(i))},gC=St,yC=Yl,xp=Ef,mC=ao,bC=C$,$C=bf,wC=Zl,Pp=">",Cp="<",hu="prototype",du="script",D$=wC("IE_PROTO"),od=function(){},A$=function(i){return Cp+du+Pp+i+Cp+"/"+du+Pp},Dp=function(i){i.write(A$("")),i.close();var e=i.parentWindow.Object;return i=null,e},EC=function(){var i=$C("iframe"),e="java"+du+":",t;return i.style.display="none",bC.appendChild(i),i.src=String(e),t=i.contentWindow.document,t.open(),t.write(A$("document.F=Object")),t.close(),t.F},da,Ya=function(){try{da=new ActiveXObject("htmlfile")}catch{}Ya=typeof document<"u"?document.domain&&da?Dp(da):EC():Dp(da);for(var i=xp.length;i--;)delete Ya[hu][xp[i]];return Ya()};mC[D$]=!0;var zi=Object.create||function(e,t){var r;return e!==null?(od[hu]=gC(e),r=new od,od[hu]=null,r[D$]=e):r=Ya(),t===void 0?r:yC.f(r,t)},lo={},SC=P$,_C=Ef,TC=_C.concat("length","prototype");lo.f=Object.getOwnPropertyNames||function(e){return SC(e,TC)};var Sf={},Ap=Xl,OC=_t,IC=Zn,xC=Array,PC=Math.max,N$=function(i,e,t){for(var r=OC(i),n=Ap(e,r),s=Ap(t===void 0?r:t,r),o=xC(PC(s-n,0)),a=0;ny;y++)if((a||y in f)&&(w=f[y],$=v(w,y,c),i))if(e)m[y]=$;else if($)switch(i){case 3:return!0;case 5:return w;case 6:return y;case 2:Fp(m,w)}else switch(i){case 4:return!1;case 7:Fp(m,w)}return s?-1:r||n?n:m}},ts={forEach:ca(0),map:ca(1),filter:ca(2),some:ca(3)},Ql=F,uo=pe,Tf=We,g2=de,Dn=Ve,An=Yn,y2=ie,ze=ke,m2=Re,uu=St,eh=sr,Of=Vl,b2=Li,fu=ji,Ls=zi,B$=Jl,$2=lo,j$=Sf,w2=ho,L$=Bi,z$=$t,E2=Yl,H$=Ll,Bp=Qn,S2=_f,If=Jn,_2=Zl,V$=ao,jp=Hl,T2=ye,O2=co,I2=Se,x2=M$,P2=Hi,W$=es,th=ts.forEach,ut=_2("hidden"),rh="Symbol",zs="prototype",C2=W$.set,Lp=W$.getterFor(rh),Lt=Object[zs],bi=uo.Symbol,Ts=bi&&bi[zs],D2=uo.RangeError,A2=uo.TypeError,hd=uo.QObject,U$=L$.f,$i=z$.f,K$=j$.f,N2=H$.f,G$=g2([].push),wr=If("symbols"),fo=If("op-symbols"),R2=If("wks"),vu=!hd||!hd[zs]||!hd[zs].findChild,q$=function(i,e,t){var r=U$(Lt,e);r&&delete Lt[e],$i(i,e,t),r&&i!==Lt&&$i(Lt,e,r)},pu=Dn&&y2(function(){return Ls($i({},"a",{get:function(){return $i(this,"a",{value:7}).a}})).a!==7})?q$:$i,dd=function(i,e){var t=wr[i]=Ls(Ts);return C2(t,{type:rh,tag:i,description:e}),Dn||(t.description=e),t},ih=function(e,t,r){e===Lt&&ih(fo,t,r),uu(e);var n=Of(t);return uu(r),ze(wr,n)?(r.enumerable?(ze(e,ut)&&e[ut][n]&&(e[ut][n]=!1),r=Ls(r,{enumerable:fu(0,!1)})):(ze(e,ut)||$i(e,ut,fu(1,{})),e[ut][n]=!0),pu(e,n,r)):$i(e,n,r)},xf=function(e,t){uu(e);var r=eh(t),n=B$(r).concat(Z$(r));return th(n,function(s){(!Dn||Tf(Y$,r,s))&&ih(e,s,r[s])}),e},k2=function(e,t){return t===void 0?Ls(e):xf(Ls(e),t)},Y$=function(e){var t=Of(e),r=Tf(N2,this,t);return this===Lt&&ze(wr,t)&&!ze(fo,t)?!1:r||!ze(this,t)||!ze(wr,t)||ze(this,ut)&&this[ut][t]?r:!0},X$=function(e,t){var r=eh(e),n=Of(t);if(!(r===Lt&&ze(wr,n)&&!ze(fo,n))){var s=U$(r,n);return s&&ze(wr,n)&&!(ze(r,ut)&&r[ut][n])&&(s.enumerable=!0),s}},J$=function(e){var t=K$(eh(e)),r=[];return th(t,function(n){!ze(wr,n)&&!ze(V$,n)&&G$(r,n)}),r},Z$=function(i){var e=i===Lt,t=K$(e?fo:eh(i)),r=[];return th(t,function(n){ze(wr,n)&&(!e||ze(Lt,n))&&G$(r,wr[n])}),r};An||(bi=function(){if(m2(Ts,this))throw new A2("Symbol is not a constructor");var e=!arguments.length||arguments[0]===void 0?void 0:b2(arguments[0]),t=jp(e),r=function(n){var s=this===void 0?uo:this;s===Lt&&Tf(r,fo,n),ze(s,ut)&&ze(s[ut],t)&&(s[ut][t]=!1);var o=fu(1,n);try{pu(s,t,o)}catch(a){if(!(a instanceof D2))throw a;q$(s,t,o)}};return Dn&&vu&&pu(Lt,t,{configurable:!0,set:r}),dd(t,e)},Ts=bi[zs],Bp(Ts,"toString",function(){return Lp(this).tag}),Bp(bi,"withoutSetter",function(i){return dd(jp(i),i)}),H$.f=Y$,z$.f=ih,E2.f=xf,L$.f=X$,$2.f=j$.f=J$,w2.f=Z$,O2.f=function(i){return dd(T2(i),i)},Dn&&S2(Ts,"description",{configurable:!0,get:function(){return Lp(this).description}}));Ql({global:!0,wrap:!0,forced:!An,sham:!An},{Symbol:bi});th(B$(R2),function(i){I2(i)});Ql({target:rh,stat:!0,forced:!An},{useSetter:function(){vu=!0},useSimple:function(){vu=!1}});Ql({target:"Object",stat:!0,forced:!An,sham:!Dn},{create:k2,defineProperty:ih,defineProperties:xf,getOwnPropertyDescriptor:X$});Ql({target:"Object",stat:!0,forced:!An},{getOwnPropertyNames:J$});x2();P2(bi,rh);V$[ut]=!0;var M2=Yn,Q$=M2&&!!Symbol.for&&!!Symbol.keyFor,F2=F,B2=at,j2=ke,L2=Li,e0=Jn,z2=Q$,cd=e0("string-to-symbol-registry"),H2=e0("symbol-to-string-registry");F2({target:"Symbol",stat:!0,forced:!z2},{for:function(i){var e=L2(i);if(j2(cd,e))return cd[e];var t=B2("Symbol")(e);return cd[e]=t,H2[t]=e,t}});var V2=F,W2=ke,U2=no,K2=Xn,G2=Jn,q2=Q$,zp=G2("symbol-to-string-registry");V2({target:"Symbol",stat:!0,forced:!q2},{keyFor:function(e){if(!U2(e))throw new TypeError(K2(e)+" is not a symbol");if(W2(zp,e))return zp[e]}});var Y2=de,vo=Y2([].slice),X2=de,Hp=oi,J2=Ee,Vp=ii,Z2=Li,Wp=X2([].push),Q2=function(i){if(J2(i))return i;if(Hp(i)){for(var e=i.length,t=[],r=0;r=e.length)return i.target=void 0,pa(void 0,!0);switch(i.kind){case"keys":return pa(t,!1);case"values":return pa(e[t],!1)}return pa([t,e[t]],!1)},"values");ng.Arguments=ng.Array;var DA={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},AA=DA,NA=pe,RA=Or,kA=Tr,sg=rs,MA=ye,og=MA("toStringTag");for(var pd in AA){var ag=NA[pd],gd=ag&&ag.prototype;gd&&RA(gd)!==og&&kA(gd,og,pd),sg[pd]=sg.Array}var FA=kD,v0=FA,BA=ye,jA=$t.f,lg=BA("metadata"),hg=Function.prototype;hg[lg]===void 0&&jA(hg,lg,{value:null});var LA=Se;LA("asyncDispose");var zA=Se;zA("dispose");var HA=Se;HA("metadata");var VA=v0,WA=VA,UA=at,KA=de,Df=UA("Symbol"),GA=Df.keyFor,qA=KA(Df.prototype.valueOf),p0=Df.isRegisteredSymbol||function(e){try{return GA(qA(e))!==void 0}catch{return!1}},YA=F,XA=p0;YA({target:"Symbol",stat:!0},{isRegisteredSymbol:XA});var JA=Jn,g0=at,ZA=de,QA=no,eN=ye,pl=g0("Symbol"),dg=pl.isWellKnownSymbol,y0=g0("Object","getOwnPropertyNames"),tN=ZA(pl.prototype.valueOf),cg=JA("wks");for(var yd=0,ug=y0(pl),rN=ug.length;yd=s?i?"":void 0:(o=vg(r,n),o<55296||o>56319||n+1===s||(a=vg(r,n+1))<56320||a>57343?i?bN(r,n):o:i?$N(r,n,n+2):(o-55296<<10)+(a-56320)+65536)}},EN={charAt:wN(!0)},SN=EN.charAt,_N=Li,b0=es,TN=Pf,pg=Cf,$0="String Iterator",ON=b0.set,IN=b0.getterFor($0);TN(String,"String",function(i){ON(this,{type:$0,string:_N(i),index:0})},function(){var e=IN(this),t=e.string,r=e.index,n;return r>=t.length?pg(void 0,!0):(n=SN(t,r),e.index+=n.length,pg(n,!1))});var xN=co,PN=xN.f("iterator"),CN=PN,w0=CN,DN=w0,AN=DN,NN=AN,RN=NN,E0=RN,kN=L(E0);function Nn(i){"@babel/helpers - typeof";return Nn=typeof pn=="function"&&typeof kN=="symbol"?function(e){return typeof e}:function(e){return e&&typeof pn=="function"&&e.constructor===pn&&e!==pn.prototype?"symbol":typeof e},Nn(i)}var MN=co,FN=MN.f("toPrimitive"),BN=FN,jN=BN,LN=jN,zN=LN,HN=zN,VN=HN,WN=VN,UN=L(WN);function KN(i,e){if(Nn(i)!=="object"||i===null)return i;var t=i[UN];if(t!==void 0){var r=t.call(i,e);if(Nn(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}function S0(i){var e=KN(i,"string");return Nn(e)==="symbol"?e:String(e)}function gg(i,e){for(var t=0;t=0:a>l;l+=h)l in o&&(n=t(n,o[l],l,s));return n}},gR={left:pR(!1)},yR=ie,oh=function(i,e){var t=[][i];return!!t&&yR(function(){t.call(null,e||function(){return 1},1)})},mR=pe,bR=ii,go=bR(mR.process)==="process",$R=F,wR=gR.left,ER=oh,bg=qn,SR=go,_R=!SR&&bg>79&&bg<83,TR=_R||!ER("reduce");$R({target:"Array",proto:!0,forced:TR},{reduce:function(e){var t=arguments.length;return wR(this,e,t,t>1?arguments[1]:void 0)}});var OR=Je,IR=OR("Array","reduce"),xR=Re,PR=IR,$d=Array.prototype,CR=function(i){var e=i.reduce;return i===$d||xR($d,i)&&e===$d.reduce?PR:e},DR=CR,AR=DR,NR=AR,RR=L(NR),kR=F,MR=ts.filter,FR=oo,BR=FR("filter");kR({target:"Array",proto:!0,forced:!BR},{filter:function(e){return MR(this,e,arguments.length>1?arguments[1]:void 0)}});var jR=Je,LR=jR("Array","filter"),zR=Re,HR=LR,wd=Array.prototype,VR=function(i){var e=i.filter;return i===wd||zR(wd,i)&&e===wd.filter?HR:e},WR=VR,UR=WR,KR=UR,gn=L(KR),GR=F,qR=ts.map,YR=oo,XR=YR("map");GR({target:"Array",proto:!0,forced:!XR},{map:function(e){return qR(this,e,arguments.length>1?arguments[1]:void 0)}});var JR=Je,ZR=JR("Array","map"),QR=Re,ek=ZR,Ed=Array.prototype,tk=function(i){var e=i.map;return i===Ed||QR(Ed,i)&&e===Ed.map?ek:e},rk=tk,ik=rk,nk=ik,Ft=L(nk),sk=oi,ok=_t,ak=Kl,lk=si,P0=function(i,e,t,r,n,s,o,a){for(var l=n,h=0,d=o?lk(o,a):!1,u,c;h0&&sk(u)?(c=ok(u),l=P0(i,e,u,c,l,s-1)-1):(ak(l+1),i[l]=u),l++),h++;return l},hk=P0,dk=F,ck=hk,uk=mt,fk=bt,vk=_t,pk=ql;dk({target:"Array",proto:!0},{flatMap:function(e){var t=fk(this),r=vk(t),n;return uk(e),n=pk(t,0),n.length=ck(n,t,t,r,0,1,e,arguments.length>1?arguments[1]:void 0),n}});var gk=Je;gk("Array","flatMap");var yk=We,$g=St,mk=yf,C0=function(i,e,t){var r,n;$g(i);try{if(r=mk(i,"return"),!r){if(e==="throw")throw t;return t}r=yk(r,i)}catch(s){n=!0,r=s}if(e==="throw")throw t;if(n)throw r;return $g(r),t},bk=St,$k=C0,wk=function(i,e,t,r){try{return r?e(bk(t)[0],t[1]):e(t)}catch(n){$k(i,"throw",n)}},Ek=ye,Sk=rs,_k=Ek("iterator"),Tk=Array.prototype,D0=function(i){return i!==void 0&&(Sk.Array===i||Tk[_k]===i)},Ok=Or,wg=yf,Ik=Gn,xk=rs,Pk=ye,Ck=Pk("iterator"),ah=function(i){if(!Ik(i))return wg(i,Ck)||wg(i,"@@iterator")||xk[Ok(i)]},Dk=We,Ak=mt,Nk=St,Rk=Xn,kk=ah,Mk=TypeError,Rf=function(i,e){var t=arguments.length<2?kk(i):e;if(Ak(t))return Nk(Dk(t,i));throw new Mk(Rk(i)+" is not iterable")},Fk=si,Bk=We,jk=bt,Lk=wk,zk=D0,Hk=Gl,Vk=_t,Eg=Zn,Wk=Rf,Uk=ah,Sg=Array,Kk=function(e){var t=jk(e),r=Hk(this),n=arguments.length,s=n>1?arguments[1]:void 0,o=s!==void 0;o&&(s=Fk(s,n>2?arguments[2]:void 0));var a=Uk(t),l=0,h,d,u,c,f,v;if(a&&!(this===Sg&&zk(a)))for(c=Wk(t,a),f=c.next,d=r?new this:[];!(u=Bk(f,c)).done;l++)v=o?Lk(c,s,[u.value,l],!0):u.value,Eg(d,l,v);else for(h=Vk(t),d=r?new this(h):Sg(h);h>l;l++)v=o?s(t[l],l):t[l],Eg(d,l,v);return d.length=l,d},Gk=ye,A0=Gk("iterator"),N0=!1;try{var qk=0,_g={next:function(){return{done:!!qk++}},return:function(){N0=!0}};_g[A0]=function(){return this},Array.from(_g,function(){throw 2})}catch{}var R0=function(i,e){try{if(!e&&!N0)return!1}catch{return!1}var t=!1;try{var r={};r[A0]=function(){return{next:function(){return{done:t=!0}}}},i(r)}catch{}return t},Yk=F,Xk=Kk,Jk=R0,Zk=!Jk(function(i){Array.from(i)});Yk({target:"Array",stat:!0,forced:Zk},{from:Xk});var Qk=ge,eM=Qk.Array.from,tM=eM,k0=tM,rM=k0,kf=L(rM),iM=ah,nM=iM,sM=nM,oM=sM,aM=oM,lM=aM,hM=lM,dM=hM,M0=dM,F0=L(M0),cM=M0,Mf=L(cM),uM=F,fM=oi;uM({target:"Array",stat:!0},{isArray:fM});var vM=ge,pM=vM.Array.isArray,gM=pM,B0=gM,yM=B0,mM=yM,bM=mM,$M=bM,wM=$M,j0=L(wM);function EM(i){if(j0(i))return i}var SM=Ve,_M=oi,TM=TypeError,OM=Object.getOwnPropertyDescriptor,IM=SM&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(i){return i instanceof TypeError}}(),L0=IM?function(i,e){if(_M(i)&&!OM(i,"length").writable)throw new TM("Cannot set read only .length");return i.length=e}:function(i,e){return i.length=e},xM=F,PM=bt,CM=_t,DM=L0,AM=Kl,NM=ie,RM=NM(function(){return[].push.call({length:4294967296},1)!==4294967297}),kM=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(i){return i instanceof TypeError}},MM=RM||!kM();xM({target:"Array",proto:!0,forced:MM},{push:function(e){var t=PM(this),r=CM(t),n=arguments.length;AM(r+n);for(var s=0;si.length)&&(e=i.length);for(var t=0,r=new Array(e);t1?arguments[1]:void 0)},uB=F,Ig=cB;uB({target:"Array",proto:!0,forced:[].forEach!==Ig},{forEach:Ig});var fB=Je,vB=fB("Array","forEach"),pB=vB,gB=pB,yB=Or,mB=ke,bB=Re,$B=gB,Id=Array.prototype,wB={DOMTokenList:!0,NodeList:!0},G0=function(i){var e=i.forEach;return i===Id||bB(Id,i)&&e===Id.forEach||mB(wB,yB(i))?$B:e},EB=G0,Pi=L(EB),SB=F,_B=de,TB=oi,OB=_B([].reverse),xg=[1,2];SB({target:"Array",proto:!0,forced:String(xg)===String(xg.reverse())},{reverse:function(){return TB(this)&&(this.length=this.length),OB(this)}});var IB=Je,xB=IB("Array","reverse"),PB=Re,CB=xB,xd=Array.prototype,DB=function(i){var e=i.reverse;return i===xd||PB(xd,i)&&e===xd.reverse?CB:e},AB=DB,q0=AB,NB=q0,RB=L(NB),Pg=Xn,kB=TypeError,Y0=function(i,e){if(!delete i[e])throw new kB("Cannot delete property "+Pg(e)+" of "+Pg(i))},MB=F,FB=bt,BB=Xl,jB=Ul,LB=_t,zB=L0,HB=Kl,VB=ql,WB=Zn,Pd=Y0,UB=oo,KB=UB("splice"),GB=Math.max,qB=Math.min;MB({target:"Array",proto:!0,forced:!KB},{splice:function(e,t){var r=FB(this),n=LB(r),s=BB(e,n),o=arguments.length,a,l,h,d,u,c;for(o===0?a=l=0:o===1?(a=0,l=n-s):(a=o-2,l=qB(GB(jB(t),0),n-s)),HB(n+a-l),h=VB(r,l),d=0;dn-l+a;d--)Pd(r,d-1)}else if(a>l)for(d=n-l;d>s;d--)u=d+l-1,c=d+a-1,u in r?r[c]=r[u]:Pd(r,c);for(d=0;ds;)for(var l=hj(arguments[s++]),h=o?dj(Dd(l),o(l)):Dd(l),d=h.length,u=0,c;d>u;)c=h[u++],(!Cg||nj(a,l,c))&&(r[c]=l[c]);return r}:rn,uj=F,Ag=cj;uj({target:"Object",stat:!0,forced:Object.assign!==Ag},{assign:Ag});var fj=ge,vj=fj.Object.assign,pj=vj,gj=pj,yj=gj,mj=L(yj),bj=F,$j=ie,wj=bt,J0=nh,Ej=l0,Sj=$j(function(){J0(1)});bj({target:"Object",stat:!0,forced:Sj,sham:!Ej},{getPrototypeOf:function(e){return J0(wj(e))}});var _j=ge,Tj=_j.Object.getPrototypeOf,Oj=Tj,Ij=Oj,xj=F,Pj=Ve,Cj=zi;xj({target:"Object",stat:!0,sham:!Pj},{create:Cj});var Dj=ge,Aj=Dj.Object,Nj=function(e,t){return Aj.create(e,t)},Rj=Nj,Z0=Rj,kj=Z0,Mj=L(kj),$u=ge,Fj=Kn;$u.JSON||($u.JSON={stringify:JSON.stringify});var Bj=function(e,t,r){return Fj($u.JSON.stringify,null,arguments)},jj=Bj,Lj=jj,zj=Lj,Hj=L(zj),Vj=typeof Bun=="function"&&Bun&&typeof Bun.version=="string",Wj=TypeError,Q0=function(i,e){if(it,o=Kj(r)?r:Jj(r),a=s?Yj(arguments,t):[],l=s?function(){Uj(o,this,a)}:o;return e?i(l,n):i(l)}:i},Qj=F,rw=pe,e3=tw,Ng=e3(rw.setInterval,!0);Qj({global:!0,bind:!0,forced:rw.setInterval!==Ng},{setInterval:Ng});var t3=F,iw=pe,r3=tw,Rg=r3(iw.setTimeout,!0);t3({global:!0,bind:!0,forced:iw.setTimeout!==Rg},{setTimeout:Rg});var i3=ge,n3=i3.setTimeout,s3=n3,o3=L(s3),nw={exports:{}};(function(i){function e(r){if(r)return t(r);this._callbacks=new Map}function t(r){return Object.assign(r,e.prototype),r._callbacks=new Map,r}e.prototype.on=function(r,n){const s=this._callbacks.get(r)??[];return s.push(n),this._callbacks.set(r,s),this},e.prototype.once=function(r,n){const s=(...o)=>{this.off(r,s),n.apply(this,o)};return s.fn=n,this.on(r,s),this},e.prototype.off=function(r,n){if(r===void 0&&n===void 0)return this._callbacks.clear(),this;if(n===void 0)return this._callbacks.delete(r),this;const s=this._callbacks.get(r);if(s){for(const[o,a]of s.entries())if(a===n||a.fn===n){s.splice(o,1);break}s.length===0?this._callbacks.delete(r):this._callbacks.set(r,s)}return this},e.prototype.emit=function(r,...n){const s=this._callbacks.get(r);if(s){const o=[...s];for(const a of o)a.apply(this,n)}return this},e.prototype.listeners=function(r){return this._callbacks.get(r)??[]},e.prototype.listenerCount=function(r){if(r)return this.listeners(r).length;let n=0;for(const s of this._callbacks.values())n+=s.length;return n},e.prototype.hasListeners=function(r){return this.listenerCount(r)>0},e.prototype.addEventListener=e.prototype.on,e.prototype.removeListener=e.prototype.off,e.prototype.removeEventListener=e.prototype.off,e.prototype.removeAllListeners=e.prototype.off,i.exports=e})(nw);var a3=nw.exports,l3=L(a3);/*! Hammer.JS - v2.0.17-rc - 2019-12-16 * http://naver.github.io/egjs * * Forked By Naver egjs * Copyright (c) hammerjs * Licensed under the MIT license */function Ht(){return Ht=Object.assign||function(i){for(var e=1;e"u"?{style:{}}:document.createElement("div"),d3="function",yn=Math.round,Di=Math.abs,jf=Date.now;function ch(i,e){for(var t,r,n=e[0].toUpperCase()+e.slice(1),s=0;s"u"?fr={}:fr=window;var sw=ch(h3.style,"touchAction"),ow=sw!==void 0;function c3(){if(!ow)return!1;var i={},e=fr.CSS&&fr.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(t){return i[t]=e?fr.CSS.supports("touch-action",t):!0}),i}var aw="compute",lw="auto",Eu="manipulation",wi="none",Hs="pan-x",Vs="pan-y",ya=c3(),u3=/mobile|tablet|ip(ad|hone|od)|android/i,hw="ontouchstart"in fr,f3=ch(fr,"PointerEvent")!==void 0,v3=hw&&u3.test(navigator.userAgent),yo="touch",p3="pen",Lf="mouse",g3="kinect",y3=25,st=1,Vi=2,De=4,gt=8,gl=1,mo=2,bo=4,$o=8,Rn=16,rr=mo|bo,Ei=$o|Rn,dw=rr|Ei,cw=["x","y"],yl=["clientX","clientY"];function vr(i,e,t){var r;if(i)if(i.forEach)i.forEach(e,t);else if(i.length!==void 0)for(r=0;r-1}function m3(i){if(gi(i,wi))return wi;var e=gi(i,Hs),t=gi(i,Vs);return e&&t?wi:e||t?e?Hs:Vs:gi(i,Eu)?Eu:lw}var uw=function(){function i(t,r){this.manager=t,this.set(r)}var e=i.prototype;return e.set=function(r){r===aw&&(r=this.compute()),ow&&this.manager.element.style&&ya[r]&&(this.manager.element.style[sw]=r),this.actions=r.toLowerCase().trim()},e.update=function(){this.set(this.manager.options.touchAction)},e.compute=function(){var r=[];return vr(this.manager.recognizers,function(n){uh(n.options.enable,[n])&&(r=r.concat(n.getTouchAction()))}),m3(r.join(" "))},e.preventDefaults=function(r){var n=r.srcEvent,s=r.offsetDirection;if(this.manager.session.prevented){n.preventDefault();return}var o=this.actions,a=gi(o,wi)&&!ya[wi],l=gi(o,Vs)&&!ya[Vs],h=gi(o,Hs)&&!ya[Hs];if(a){var d=r.pointers.length===1,u=r.distance<2,c=r.deltaTime<250;if(d&&u&&c)return}if(!(h&&l)&&(a||l&&s&rr||h&&s&Ei))return this.preventSrc(n)},e.preventSrc=function(r){this.manager.session.prevented=!0,r.preventDefault()},i}();function zf(i,e){for(;i;){if(i===e)return!0;i=i.parentNode}return!1}function fw(i){var e=i.length;if(e===1)return{x:yn(i[0].clientX),y:yn(i[0].clientY)};for(var t=0,r=0,n=0;n=Di(e)?i<0?mo:bo:e<0?$o:Rn}function b3(i,e){var t=e.center,r=i.offsetDelta||{},n=i.prevDelta||{},s=i.prevInput||{};(e.eventType===st||s.eventType===De)&&(n=i.prevDelta={x:s.deltaX||0,y:s.deltaY||0},r=i.offsetDelta={x:t.x,y:t.y}),e.deltaX=n.x+(t.x-r.x),e.deltaY=n.y+(t.y-r.y)}function pw(i,e,t){return{x:e/i||0,y:t/i||0}}function $3(i,e){return ml(e[0],e[1],yl)/ml(i[0],i[1],yl)}function w3(i,e){return Su(e[1],e[0],yl)+Su(i[1],i[0],yl)}function E3(i,e){var t=i.lastInterval||e,r=e.timeStamp-t.timeStamp,n,s,o,a;if(e.eventType!==gt&&(r>y3||t.velocity===void 0)){var l=e.deltaX-t.deltaX,h=e.deltaY-t.deltaY,d=pw(r,l,h);s=d.x,o=d.y,n=Di(d.x)>Di(d.y)?d.x:d.y,a=vw(l,h),i.lastInterval=e}else n=t.velocity,s=t.velocityX,o=t.velocityY,a=t.direction;e.velocity=n,e.velocityX=s,e.velocityY=o,e.direction=a}function S3(i,e){var t=i.session,r=e.pointers,n=r.length;t.firstInput||(t.firstInput=Mg(e)),n>1&&!t.firstMultiple?t.firstMultiple=Mg(e):n===1&&(t.firstMultiple=!1);var s=t.firstInput,o=t.firstMultiple,a=o?o.center:s.center,l=e.center=fw(r);e.timeStamp=jf(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=Su(a,l),e.distance=ml(a,l),b3(t,e),e.offsetDirection=vw(e.deltaX,e.deltaY);var h=pw(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=h.x,e.overallVelocityY=h.y,e.overallVelocity=Di(h.x)>Di(h.y)?h.x:h.y,e.scale=o?$3(o.pointers,r):1,e.rotation=o?w3(o.pointers,r):0,e.maxPointers=t.prevInput?e.pointers.length>t.prevInput.maxPointers?e.pointers.length:t.prevInput.maxPointers:e.pointers.length,E3(t,e);var d=i.element,u=e.srcEvent,c;u.composedPath?c=u.composedPath()[0]:u.path?c=u.path[0]:c=u.target,zf(c,d)&&(d=c),e.target=d}function _3(i,e,t){var r=t.pointers.length,n=t.changedPointers.length,s=e&st&&r-n===0,o=e&(De|gt)&&r-n===0;t.isFirst=!!s,t.isFinal=!!o,s&&(i.session={}),t.eventType=e,S3(i,t),i.emit("hammer.input",t),i.recognize(t),i.session.prevInput=t}function Ws(i){return i.trim().split(/\s+/g)}function Ps(i,e,t){vr(Ws(e),function(r){i.addEventListener(r,t,!1)})}function Cs(i,e,t){vr(Ws(e),function(r){i.removeEventListener(r,t,!1)})}function Fg(i){var e=i.ownerDocument||i;return e.defaultView||e.parentWindow||window}var is=function(){function i(t,r){var n=this;this.manager=t,this.callback=r,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(s){uh(t.options.enable,[t])&&n.handler(s)},this.init()}var e=i.prototype;return e.handler=function(){},e.init=function(){this.evEl&&Ps(this.element,this.evEl,this.domHandler),this.evTarget&&Ps(this.target,this.evTarget,this.domHandler),this.evWin&&Ps(Fg(this.element),this.evWin,this.domHandler)},e.destroy=function(){this.evEl&&Cs(this.element,this.evEl,this.domHandler),this.evTarget&&Cs(this.target,this.evTarget,this.domHandler),this.evWin&&Cs(Fg(this.element),this.evWin,this.domHandler)},i}();function Ai(i,e,t){if(i.indexOf&&!t)return i.indexOf(e);for(var r=0;rl[e]}):r=r.sort()),r}var I3={touchstart:st,touchmove:Vi,touchend:De,touchcancel:gt},x3="touchstart touchmove touchend touchcancel",Vf=function(i){At(e,i);function e(){var r;return e.prototype.evTarget=x3,r=i.apply(this,arguments)||this,r.targetIds={},r}var t=e.prototype;return t.handler=function(n){var s=I3[n.type],o=P3.call(this,n,s);o&&this.callback(this.manager,s,{pointers:o[0],changedPointers:o[1],pointerType:yo,srcEvent:n})},e}(is);function P3(i,e){var t=Us(i.touches),r=this.targetIds;if(e&(st|Vi)&&t.length===1)return r[t[0].identifier]=!0,[t,t];var n,s,o=Us(i.changedTouches),a=[],l=this.target;if(s=t.filter(function(h){return zf(h.target,l)}),e===st)for(n=0;n-1&&n.splice(a,1)};setTimeout(s,N3)}}function R3(i,e){i&st?(this.primaryTouch=e.changedPointers[0].identifier,jg.call(this,e)):i&(De|gt)&&jg.call(this,e)}function k3(i){for(var e=i.srcEvent.clientX,t=i.srcEvent.clientY,r=0;r-1&&this.requireFail.splice(n,1),this},e.hasRequireFailures=function(){return this.requireFail.length>0},e.canRecognizeWith=function(r){return!!this.simultaneous[r.id]},e.emit=function(r){var n=this,s=this.state;function o(a){n.manager.emit(a,r)}s=Gr&&o(n.options.event+Lg(s))},e.tryEmit=function(r){if(this.canEmit())return this.emit(r);this.state=Qt},e.canEmit=function(){for(var r=0;rs.threshold&&l&s.direction},t.attrTest=function(n){return Mn.prototype.attrTest.call(this,n)&&(this.state&Ct||!(this.state&Ct)&&this.directionTest(n))},t.emit=function(n){this.pX=n.deltaX,this.pY=n.deltaY;var s=$w(n.direction);s&&(n.additionalEvent=this.options.event+s),i.prototype.emit.call(this,n)},e}(Mn),ww=function(i){At(e,i);function e(r){return r===void 0&&(r={}),i.call(this,Ht({event:"swipe",threshold:10,velocity:.3,direction:rr|Ei,pointers:1},r))||this}var t=e.prototype;return t.getTouchAction=function(){return Uf.prototype.getTouchAction.call(this)},t.attrTest=function(n){var s=this.options.direction,o;return s&(rr|Ei)?o=n.overallVelocity:s&rr?o=n.overallVelocityX:s&Ei&&(o=n.overallVelocityY),i.prototype.attrTest.call(this,n)&&s&n.offsetDirection&&n.distance>this.options.threshold&&n.maxPointers===this.options.pointers&&Di(o)>this.options.velocity&&n.eventType&De},t.emit=function(n){var s=$w(n.offsetDirection);s&&this.manager.emit(this.options.event+s,n),this.manager.emit(this.options.event,n)},e}(Mn),Ew=function(i){At(e,i);function e(r){return r===void 0&&(r={}),i.call(this,Ht({event:"pinch",threshold:0,pointers:2},r))||this}var t=e.prototype;return t.getTouchAction=function(){return[wi]},t.attrTest=function(n){return i.prototype.attrTest.call(this,n)&&(Math.abs(n.scale-1)>this.options.threshold||this.state&Ct)},t.emit=function(n){if(n.scale!==1){var s=n.scale<1?"in":"out";n.additionalEvent=this.options.event+s}i.prototype.emit.call(this,n)},e}(Mn),Sw=function(i){At(e,i);function e(r){return r===void 0&&(r={}),i.call(this,Ht({event:"rotate",threshold:0,pointers:2},r))||this}var t=e.prototype;return t.getTouchAction=function(){return[wi]},t.attrTest=function(n){return i.prototype.attrTest.call(this,n)&&(Math.abs(n.rotation)>this.options.threshold||this.state&Ct)},e}(Mn),_w=function(i){At(e,i);function e(r){var n;return r===void 0&&(r={}),n=i.call(this,Ht({event:"press",pointers:1,time:251,threshold:9},r))||this,n._timer=null,n._input=null,n}var t=e.prototype;return t.getTouchAction=function(){return[lw]},t.process=function(n){var s=this,o=this.options,a=n.pointers.length===o.pointers,l=n.distanceo.time;if(this._input=n,!l||!a||n.eventType&(De|gt)&&!h)this.reset();else if(n.eventType&st)this.reset(),this._timer=setTimeout(function(){s.state=pr,s.tryEmit()},o.time);else if(n.eventType&De)return pr;return Qt},t.reset=function(){clearTimeout(this._timer)},t.emit=function(n){this.state===pr&&(n&&n.eventType&De?this.manager.emit(this.options.event+"up",n):(this._input.timeStamp=jf(),this.manager.emit(this.options.event,this._input)))},e}(wo),Tw={domEvents:!1,touchAction:aw,enable:!0,inputTarget:null,inputClass:null,cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},zg=[[Sw,{enable:!1}],[Ew,{enable:!1},["rotate"]],[ww,{direction:rr}],[Uf,{direction:rr},["swipe"]],[_u],[_u,{event:"doubletap",taps:2},["tap"]],[_w]],j3=1,Hg=2;function Vg(i,e){var t=i.element;if(t.style){var r;vr(i.options.cssProps,function(n,s){r=ch(t.style,s),e?(i.oldCssProps[r]=t.style[r],t.style[r]=n):t.style[r]=i.oldCssProps[r]||""}),e||(i.oldCssProps={})}}function L3(i,e){var t=document.createEvent("Event");t.initEvent(i,!0,!0),t.gesture=e,e.target.dispatchEvent(t)}var Wg=function(){function i(t,r){var n=this;this.options=Ci({},Tw,r||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=t,this.input=M3(this),this.touchAction=new uw(this,this.options.touchAction),Vg(this,!0),vr(this.options.recognizers,function(s){var o=n.add(new s[0](s[1]));s[2]&&o.recognizeWith(s[2]),s[3]&&o.requireFailure(s[3])},this)}var e=i.prototype;return e.set=function(r){return Ci(this.options,r),r.touchAction&&this.touchAction.update(),r.inputTarget&&(this.input.destroy(),this.input.target=r.inputTarget,this.input.init()),this},e.stop=function(r){this.session.stopped=r?Hg:j3},e.recognize=function(r){var n=this.session;if(!n.stopped){this.touchAction.preventDefaults(r);var s,o=this.recognizers,a=n.curRecognizer;(!a||a&&a.state&pr)&&(n.curRecognizer=null,a=null);for(var l=0;l\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=window.console&&(window.console.warn||window.console.log);return o&&o.call(window.console,r,s),i.apply(this,arguments)}}var Iw=Ow(function(i,e,t){for(var r=Object.keys(e),n=0;n=i.length?{done:!0}:{done:!1,value:i[r++]}},e:function(h){throw h},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s=!0,o=!1,a;return{s:function(){t=t.call(i)},n:function(){var h=t.next();return s=h.done,h},e:function(h){o=!0,a=h},f:function(){try{!s&&t.return!=null&&t.return()}finally{if(o)throw a}}}}function X3(i,e){var t;if(i){if(typeof i=="string")return Kg(i,e);var r=dh(t=Object.prototype.toString.call(i)).call(t,8,-1);if(r==="Object"&&i.constructor&&(r=i.constructor.name),r==="Map"||r==="Set")return kf(i);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Kg(i,e)}}function Kg(i,e){(e==null||e>i.length)&&(e=i.length);for(var t=0,r=new Array(e);t1?t-1:0),n=1;n2){var r;return bl.apply(void 0,hh(r=[Cw(e[0],e[1])]).call(r,ft(dh(e).call(e,2))))}var n=e[0],s=e[1];if(n instanceof Date&&s instanceof Date)return n.setTime(s.getTime()),n;var o=xw(JF(s)),a;try{for(o.s();!(a=o.n()).done;){var l=a.value;Object.prototype.propertyIsEnumerable.call(s,l)&&(s[l]===Pw?delete n[l]:n[l]!==null&&s[l]!==null&&typeof n[l]=="object"&&typeof s[l]=="object"&&!wt(n[l])&&!wt(s[l])?n[l]=bl(n[l],s[l]):n[l]=Dw(s[l]))}}catch(h){o.e(h)}finally{o.f()}return n}function Dw(i){return wt(i)?Ft(i).call(i,function(e){return Dw(e)}):typeof i=="object"&&i!==null?i instanceof Date?new Date(i.getTime()):bl({},i):i}function Aw(i){for(var e=0,t=Bf(i);eo;)l=r(t,a=n[o++]),l!==void 0&&ML(s,a,l);return s}});var FL=ge,BL=FL.Object.getOwnPropertyDescriptors,jL=BL,LL=jL,zL=LL,Jg=L(zL),Hw={exports:{}},HL=F,VL=Ve,Zg=Yl.f;HL({target:"Object",stat:!0,forced:Object.defineProperties!==Zg,sham:!VL},{defineProperties:Zg});var WL=ge,Vw=WL.Object,UL=Hw.exports=function(e,t){return Vw.defineProperties(e,t)};Vw.defineProperties.sham&&(UL.sham=!0);var KL=Hw.exports,GL=KL,qL=GL,YL=qL,XL=L(YL),JL=$$,ZL=L(JL);function Ww(i){if(i===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return i}var QL=Z0,e5=QL,t5=e5,r5=t5,Uw=r5,i5=L(Uw),n5=F,s5=c0;n5({target:"Object",stat:!0},{setPrototypeOf:s5});var o5=ge,a5=o5.Object.setPrototypeOf,l5=a5,h5=l5,d5=h5,c5=d5,u5=c5,f5=u5,Kw=f5,Tu=L(Kw),v5=I0,p5=v5,g5=p5,y5=g5,m5=y5,Gw=L(m5);function Ou(i,e){var t;return Ou=Tu?Gw(t=Tu).call(t):function(n,s){return n.__proto__=s,n},Ou(i,e)}function b5(i,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");i.prototype=i5(e&&e.prototype,{constructor:{value:i,writable:!0,configurable:!0}}),Wl(i,"prototype",{writable:!1}),e&&Ou(i,e)}function $5(i,e){if(e&&(Nn(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ww(i)}var w5=Ij,E5=w5,S5=E5,_5=S5,qw=_5,Qg=L(qw);function $l(i){var e;return $l=Tu?Gw(e=Qg).call(e):function(r){return r.__proto__||Qg(r)},$l(i)}var Yw={exports:{}},Xw={exports:{}};(function(i){var e=Af,t=E0;function r(n){"@babel/helpers - typeof";return i.exports=r=typeof e=="function"&&typeof t=="symbol"?function(s){return typeof s}:function(s){return s&&typeof e=="function"&&s.constructor===e&&s!==e.prototype?"symbol":typeof s},i.exports.__esModule=!0,i.exports.default=i.exports,r(n)}i.exports=r,i.exports.__esModule=!0,i.exports.default=i.exports})(Xw);var T5=Xw.exports,O5=G0,I5=O5,x5=I5,P5=x5,C5=P5,ey=ke,D5=Ff,A5=Bi,N5=$t,R5=function(i,e,t){for(var r=D5(e),n=N5.f,s=A5.f,o=0;ou;u++)if(f=p(i[u]),f&&ry(ny,f))return f;return new Za(!1)}h=rz(i,d)}for(v=s?i.next:h.next;!(g=J5(v,h)).done;){try{f=p(g.value)}catch(m){iy(h,"throw",m)}if(typeof f=="object"&&f&&ry(ny,f))return f}return new Za(!1)},sz=Li,oz=function(i,e){return i===void 0?arguments.length<2?"":e:sz(i)},az=F,lz=Re,hz=nh,wl=c0,dz=R5,Qw=zi,Nd=Tr,Rd=ji,cz=F5,uz=Y5,fz=Wi,vz=oz,pz=ye,gz=pz("toStringTag"),El=Error,yz=[].push,Fn=function(e,t){var r=lz(kd,this),n;wl?n=wl(new El,r?hz(this):kd):(n=r?this:Qw(kd),Nd(n,gz,"Error")),t!==void 0&&Nd(n,"message",vz(t)),uz(n,Fn,n.stack,1),arguments.length>2&&cz(n,arguments[2]);var s=[];return fz(e,yz,{that:s}),Nd(n,"errors",s),n};wl?wl(Fn,El):dz(Fn,El,{name:!0});var kd=Fn.prototype=Qw(El.prototype,{constructor:Rd(1,Fn),message:Rd(1,""),name:Rd(1,"AggregateError")});az({global:!0},{AggregateError:Fn});var mz=at,bz=_f,$z=ye,wz=Ve,sy=$z("species"),eE=function(i){var e=mz(i);wz&&e&&!e[sy]&&bz(e,sy,{configurable:!0,get:function(){return this}})},Ez=Re,Sz=TypeError,Gf=function(i,e){if(Ez(e,i))return i;throw new Sz("Incorrect invocation")},oy=St,_z=Nw,Tz=Gn,Oz=ye,Iz=Oz("species"),tE=function(i,e){var t=oy(i).constructor,r;return t===void 0||Tz(r=oy(t)[Iz])?e:_z(r)},xz=ni,rE=/(?:ipad|iphone|ipod).*applewebkit/i.test(xz),Et=pe,Pz=Kn,Cz=si,ay=Ee,Dz=ke,iE=ie,ly=C$,Az=vo,hy=bf,Nz=Q0,Rz=rE,kz=go,Iu=Et.setImmediate,dy=Et.clearImmediate,Mz=Et.process,Md=Et.Dispatch,Fz=Et.Function,cy=Et.MessageChannel,Bz=Et.String,Fd=0,Ds={},uy="onreadystatechange",Gs,fi,Bd,jd;iE(function(){Gs=Et.location});var qf=function(i){if(Dz(Ds,i)){var e=Ds[i];delete Ds[i],e()}},Ld=function(i){return function(){qf(i)}},fy=function(i){qf(i.data)},vy=function(i){Et.postMessage(Bz(i),Gs.protocol+"//"+Gs.host)};(!Iu||!dy)&&(Iu=function(e){Nz(arguments.length,1);var t=ay(e)?e:Fz(e),r=Az(arguments,1);return Ds[++Fd]=function(){Pz(t,void 0,r)},fi(Fd),Fd},dy=function(e){delete Ds[e]},kz?fi=function(i){Mz.nextTick(Ld(i))}:Md&&Md.now?fi=function(i){Md.now(Ld(i))}:cy&&!Rz?(Bd=new cy,jd=Bd.port2,Bd.port1.onmessage=fy,fi=Cz(jd.postMessage,jd)):Et.addEventListener&&ay(Et.postMessage)&&!Et.importScripts&&Gs&&Gs.protocol!=="file:"&&!iE(vy)?(fi=vy,Et.addEventListener("message",fy,!1)):uy in hy("script")?fi=function(i){ly.appendChild(hy("script"))[uy]=function(){ly.removeChild(this),qf(i)}}:fi=function(i){setTimeout(Ld(i),0)});var nE={set:Iu},sE=function(){this.head=null,this.tail=null};sE.prototype={add:function(i){var e={item:i,next:null},t=this.tail;t?t.next=e:this.head=e,this.tail=e},get:function(){var i=this.head;if(i){var e=this.head=i.next;return e===null&&(this.tail=null),i.item}}};var oE=sE,jz=ni,Lz=/ipad|iphone|ipod/i.test(jz)&&typeof Pebble<"u",zz=ni,Hz=/web0s(?!.*chrome)/i.test(zz),Ni=pe,py=si,Vz=Bi.f,zd=nE.set,Wz=oE,Uz=rE,Kz=Lz,Gz=Hz,Hd=go,gy=Ni.MutationObserver||Ni.WebKitMutationObserver,yy=Ni.document,my=Ni.process,ba=Ni.Promise,by=Vz(Ni,"queueMicrotask"),xu=by&&by.value,nn,Vd,Wd,$a,$y;if(!xu){var wa=new Wz,Ea=function(){var i,e;for(Hd&&(i=my.domain)&&i.exit();e=wa.get();)try{e()}catch(t){throw wa.head&&nn(),t}i&&i.enter()};!Uz&&!Hd&&!Gz&&gy&&yy?(Vd=!0,Wd=yy.createTextNode(""),new gy(Ea).observe(Wd,{characterData:!0}),nn=function(){Wd.data=Vd=!Vd}):!Kz&&ba&&ba.resolve?($a=ba.resolve(void 0),$a.constructor=ba,$y=py($a.then,$a),nn=function(){$y(Ea)}):Hd?nn=function(){my.nextTick(Ea)}:(zd=py(zd,Ni),nn=function(){zd(Ea)}),xu=function(i){wa.head||nn(),wa.add(i)}}var qz=xu,Yz=function(i,e){try{arguments.length===1?console.error(i):console.error(i,e)}catch{}},ns=function(i){try{return{error:!1,value:i()}}catch(e){return{error:!0,value:e}}},Xz=pe,ss=Xz.Promise,aE=typeof Deno=="object"&&Deno&&typeof Deno.version=="object",Jz=aE,Zz=go,Qz=!Jz&&!Zz&&typeof window=="object"&&typeof document=="object",e4=pe,As=ss,t4=Ee,r4=y$,i4=S$,n4=ye,s4=Qz,o4=aE,Ud=qn,wy=As&&As.prototype,a4=n4("species"),Ey=!1,lE=t4(e4.PromiseRejectionEvent),l4=r4("Promise",function(){var i=i4(As),e=i!==String(As);if(!e&&Ud===66||!(wy.catch&&wy.finally))return!0;if(!Ud||Ud<51||!/native code/.test(i)){var t=new As(function(s){s(1)}),r=function(s){s(function(){},function(){})},n=t.constructor={};if(n[a4]=r,Ey=t.then(function(){})instanceof r,!Ey)return!0}return!e&&(s4||o4)&&!lE}),Eo={CONSTRUCTOR:l4,REJECTION_EVENT:lE},or={},Sy=mt,h4=TypeError,d4=function(i){var e,t;this.promise=new i(function(r,n){if(e!==void 0||t!==void 0)throw new h4("Bad Promise constructor");e=r,t=n}),this.resolve=Sy(e),this.reject=Sy(t)};or.f=function(i){return new d4(i)};var c4=F,Sl=go,Qr=pe,So=We,u4=Qn,f4=Hi,v4=eE,p4=mt,Pu=Ee,g4=Ge,y4=Gf,m4=tE,hE=nE.set,Yf=qz,b4=Yz,$4=ns,w4=oE,dE=es,Cu=ss,cE=Eo,uE=or,fh="Promise",fE=cE.CONSTRUCTOR,E4=cE.REJECTION_EVENT,Kd=dE.getterFor(fh),S4=dE.set,_4=Cu&&Cu.prototype,bn=Cu,Gd=_4,vE=Qr.TypeError,Du=Qr.document,Xf=Qr.process,Au=uE.f,T4=Au,O4=!!(Du&&Du.createEvent&&Qr.dispatchEvent),pE="unhandledrejection",I4="rejectionhandled",_y=0,gE=1,x4=2,Jf=1,yE=2,Sa,Ty,P4,mE=function(i){var e;return g4(i)&&Pu(e=i.then)?e:!1},bE=function(i,e){var t=e.value,r=e.state===gE,n=r?i.ok:i.fail,s=i.resolve,o=i.reject,a=i.domain,l,h,d;try{n?(r||(e.rejection===yE&&D4(e),e.rejection=Jf),n===!0?l=t:(a&&a.enter(),l=n(t),a&&(a.exit(),d=!0)),l===i.promise?o(new vE("Promise-chain cycle")):(h=mE(l))?So(h,l,s,o):s(l)):o(t)}catch(u){a&&!d&&a.exit(),o(u)}},$E=function(i,e){i.notified||(i.notified=!0,Yf(function(){for(var t=i.reactions,r;r=t.get();)bE(r,i);i.notified=!1,e&&!i.rejection&&C4(i)}))},wE=function(i,e,t){var r,n;O4?(r=Du.createEvent("Event"),r.promise=e,r.reason=t,r.initEvent(i,!1,!0),Qr.dispatchEvent(r)):r={promise:e,reason:t},!E4&&(n=Qr["on"+i])?n(r):i===pE&&b4("Unhandled promise rejection",t)},C4=function(i){So(hE,Qr,function(){var e=i.facade,t=i.value,r=Oy(i),n;if(r&&(n=$4(function(){Sl?Xf.emit("unhandledRejection",t,e):wE(pE,e,t)}),i.rejection=Sl||Oy(i)?yE:Jf,n.error))throw n.value})},Oy=function(i){return i.rejection!==Jf&&!i.parent},D4=function(i){So(hE,Qr,function(){var e=i.facade;Sl?Xf.emit("rejectionHandled",e):wE(I4,e,i.value)})},$n=function(i,e,t){return function(r){i(e,r,t)}},On=function(i,e,t){i.done||(i.done=!0,t&&(i=t),i.value=e,i.state=x4,$E(i,!0))},Nu=function(i,e,t){if(!i.done){i.done=!0,t&&(i=t);try{if(i.facade===e)throw new vE("Promise can't be resolved itself");var r=mE(e);r?Yf(function(){var n={done:!1};try{So(r,e,$n(Nu,n,i),$n(On,n,i))}catch(s){On(n,s,i)}}):(i.value=e,i.state=gE,$E(i,!1))}catch(n){On({done:!1},n,i)}}};fE&&(bn=function(e){y4(this,Gd),p4(e),So(Sa,this);var t=Kd(this);try{e($n(Nu,t),$n(On,t))}catch(r){On(t,r)}},Gd=bn.prototype,Sa=function(e){S4(this,{type:fh,done:!1,notified:!1,parent:!1,reactions:new w4,rejection:!1,state:_y,value:void 0})},Sa.prototype=u4(Gd,"then",function(e,t){var r=Kd(this),n=Au(m4(this,bn));return r.parent=!0,n.ok=Pu(e)?e:!0,n.fail=Pu(t)&&t,n.domain=Sl?Xf.domain:void 0,r.state===_y?r.reactions.add(n):Yf(function(){bE(n,r)}),n.promise}),Ty=function(){var i=new Sa,e=Kd(i);this.promise=i,this.resolve=$n(Nu,e),this.reject=$n(On,e)},uE.f=Au=function(i){return i===bn||i===P4?new Ty(i):T4(i)});c4({global:!0,wrap:!0,forced:fE},{Promise:bn});f4(bn,fh,!1,!0);v4(fh);var A4=ss,N4=R0,R4=Eo.CONSTRUCTOR,vh=R4||!N4(function(i){A4.all(i).then(void 0,function(){})}),k4=F,M4=We,F4=mt,B4=or,j4=ns,L4=Wi,z4=vh;k4({target:"Promise",stat:!0,forced:z4},{all:function(e){var t=this,r=B4.f(t),n=r.resolve,s=r.reject,o=j4(function(){var a=F4(t.resolve),l=[],h=0,d=1;L4(e,function(u){var c=h++,f=!1;d++,M4(a,t,u).then(function(v){f||(f=!0,l[c]=v,--d||n(l))},s)}),--d||n(l)});return o.error&&s(o.value),r.promise}});var H4=F,V4=Eo.CONSTRUCTOR,Iy=ss;Iy&&Iy.prototype;H4({target:"Promise",proto:!0,forced:V4,real:!0},{catch:function(i){return this.then(void 0,i)}});var W4=F,U4=We,K4=mt,G4=or,q4=ns,Y4=Wi,X4=vh;W4({target:"Promise",stat:!0,forced:X4},{race:function(e){var t=this,r=G4.f(t),n=r.reject,s=q4(function(){var o=K4(t.resolve);Y4(e,function(a){U4(o,t,a).then(r.resolve,n)})});return s.error&&n(s.value),r.promise}});var J4=F,Z4=We,Q4=or,e6=Eo.CONSTRUCTOR;J4({target:"Promise",stat:!0,forced:e6},{reject:function(e){var t=Q4.f(this);return Z4(t.reject,void 0,e),t.promise}});var t6=St,r6=Ge,i6=or,EE=function(i,e){if(t6(i),r6(e)&&e.constructor===i)return e;var t=i6.f(i),r=t.resolve;return r(e),t.promise},n6=F,s6=at,o6=fI,a6=ss,l6=Eo.CONSTRUCTOR,h6=EE,d6=s6("Promise"),c6=!l6;n6({target:"Promise",stat:!0,forced:o6},{resolve:function(e){return h6(c6&&this===d6?a6:this,e)}});var u6=F,f6=We,v6=mt,p6=or,g6=ns,y6=Wi,m6=vh;u6({target:"Promise",stat:!0,forced:m6},{allSettled:function(e){var t=this,r=p6.f(t),n=r.resolve,s=r.reject,o=g6(function(){var a=v6(t.resolve),l=[],h=0,d=1;y6(e,function(u){var c=h++,f=!1;d++,f6(a,t,u).then(function(v){f||(f=!0,l[c]={status:"fulfilled",value:v},--d||n(l))},function(v){f||(f=!0,l[c]={status:"rejected",reason:v},--d||n(l))})}),--d||n(l)});return o.error&&s(o.value),r.promise}});var b6=F,$6=We,w6=mt,E6=at,S6=or,_6=ns,T6=Wi,O6=vh,xy="No one promise resolved";b6({target:"Promise",stat:!0,forced:O6},{any:function(e){var t=this,r=E6("AggregateError"),n=S6.f(t),s=n.resolve,o=n.reject,a=_6(function(){var l=w6(t.resolve),h=[],d=0,u=1,c=!1;T6(e,function(f){var v=d++,g=!1;u++,$6(l,t,f).then(function(y){g||c||(c=!0,s(y))},function(y){g||c||(g=!0,h[v]=y,--u||o(new r(h,xy)))})}),--u||o(new r(h,xy))});return a.error&&o(a.value),n.promise}});var I6=F,Ru=ss,x6=ie,P6=at,C6=Ee,D6=tE,Py=EE,A6=Ru&&Ru.prototype,N6=!!Ru&&x6(function(){A6.finally.call({then:function(){}},function(){})});I6({target:"Promise",proto:!0,real:!0,forced:N6},{finally:function(i){var e=D6(this,P6("Promise")),t=C6(i);return this.then(t?function(r){return Py(e,i()).then(function(){return r})}:i,t?function(r){return Py(e,i()).then(function(){throw r})}:i)}});var R6=ge,k6=R6.Promise,M6=k6,F6=M6,B6=F,j6=or;B6({target:"Promise",stat:!0},{withResolvers:function(){var e=j6.f(this);return{promise:e.promise,resolve:e.resolve,reject:e.reject}}});var L6=F6,z6=L6,H6=F,V6=or,W6=ns;H6({target:"Promise",stat:!0,forced:!0},{try:function(i){var e=V6.f(this),t=W6(i);return(t.error?e.reject:e.resolve)(t.value),e.promise}});var U6=z6,K6=U6,G6=K6,q6=q0,Y6=q6,X6=Y6,J6=X6,Z6=J6;(function(i){var e=T5.default,t=w$,r=Af,n=Uw,s=qw,o=C5,a=z0,l=Kw,h=G6,d=Z6,u=V0;function c(){i.exports=c=function(){return v},i.exports.__esModule=!0,i.exports.default=i.exports;var f,v={},g=Object.prototype,y=g.hasOwnProperty,p=t||function(D,I,P){D[I]=P.value},m=typeof r=="function"?r:{},w=m.iterator||"@@iterator",$=m.asyncIterator||"@@asyncIterator",x=m.toStringTag||"@@toStringTag";function _(D,I,P){return t(D,I,{value:P,enumerable:!0,configurable:!0,writable:!0}),D[I]}try{_({},"")}catch{_=function(P,M,W){return P[M]=W}}function A(D,I,P,M){var W=I&&I.prototype instanceof Fe?I:Fe,H=n(W.prototype),Oe=new zh(M||[]);return p(H,"_invoke",{value:jh(D,P,Oe)}),H}function R(D,I,P){try{return{type:"normal",arg:D.call(I,P)}}catch(M){return{type:"throw",arg:M}}}v.wrap=A;var B="suspendedStart",G="suspendedYield",q="executing",ce="completed",ue={};function Fe(){}function Q(){}function K(){}var Z={};_(Z,w,function(){return this});var se=s,Ce=se&&se(se(Hh([])));Ce&&Ce!==g&&y.call(Ce,w)&&(Z=Ce);var je=K.prototype=Fe.prototype=n(Z);function hr(D){var I;o(I=["next","throw","return"]).call(I,function(P){_(D,P,function(M){return this._invoke(P,M)})})}function Gt(D,I){function P(W,H,Oe,Qe){var lt=R(D[W],D,H);if(lt.type!=="throw"){var di=lt.arg,Pr=di.value;return Pr&&e(Pr)=="object"&&y.call(Pr,"__await")?I.resolve(Pr.__await).then(function(ci){P("next",ci,Oe,Qe)},function(ci){P("throw",ci,Oe,Qe)}):I.resolve(Pr).then(function(ci){di.value=ci,Oe(di)},function(ci){return P("throw",ci,Oe,Qe)})}Qe(lt.arg)}var M;p(this,"_invoke",{value:function(H,Oe){function Qe(){return new I(function(lt,di){P(H,Oe,lt,di)})}return M=M?M.then(Qe,Qe):Qe()}})}function jh(D,I,P){var M=B;return function(W,H){if(M===q)throw new Error("Generator is already running");if(M===ce){if(W==="throw")throw H;return{value:f,done:!0}}for(P.method=W,P.arg=H;;){var Oe=P.delegate;if(Oe){var Qe=Vv(Oe,P);if(Qe){if(Qe===ue)continue;return Qe}}if(P.method==="next")P.sent=P._sent=P.arg;else if(P.method==="throw"){if(M===B)throw M=ce,P.arg;P.dispatchException(P.arg)}else P.method==="return"&&P.abrupt("return",P.arg);M=q;var lt=R(D,I,P);if(lt.type==="normal"){if(M=P.done?ce:G,lt.arg===ue)continue;return{value:lt.arg,done:P.done}}lt.type==="throw"&&(M=ce,P.method="throw",P.arg=lt.arg)}}}function Vv(D,I){var P=I.method,M=D.iterator[P];if(M===f)return I.delegate=null,P==="throw"&&D.iterator.return&&(I.method="return",I.arg=f,Vv(D,I),I.method==="throw")||P!=="return"&&(I.method="throw",I.arg=new TypeError("The iterator does not provide a '"+P+"' method")),ue;var W=R(M,D.iterator,I.arg);if(W.type==="throw")return I.method="throw",I.arg=W.arg,I.delegate=null,ue;var H=W.arg;return H?H.done?(I[D.resultName]=H.value,I.next=D.nextLoc,I.method!=="return"&&(I.method="next",I.arg=f),I.delegate=null,ue):H:(I.method="throw",I.arg=new TypeError("iterator result is not an object"),I.delegate=null,ue)}function BT(D){var I,P={tryLoc:D[0]};1 in D&&(P.catchLoc=D[1]),2 in D&&(P.finallyLoc=D[2],P.afterLoc=D[3]),a(I=this.tryEntries).call(I,P)}function Lh(D){var I=D.completion||{};I.type="normal",delete I.arg,D.completion=I}function zh(D){this.tryEntries=[{tryLoc:"root"}],o(D).call(D,BT,this),this.reset(!0)}function Hh(D){if(D||D===""){var I=D[w];if(I)return I.call(D);if(typeof D.next=="function")return D;if(!isNaN(D.length)){var P=-1,M=function W(){for(;++P=0;--W){var H=this.tryEntries[W],Oe=H.completion;if(H.tryLoc==="root")return M("end");if(H.tryLoc<=this.prev){var Qe=y.call(H,"catchLoc"),lt=y.call(H,"finallyLoc");if(Qe&<){if(this.prev=0;--M){var W=this.tryEntries[M];if(W.tryLoc<=this.prev&&y.call(W,"finallyLoc")&&this.prev=0;--P){var M=this.tryEntries[P];if(M.finallyLoc===I)return this.complete(M.completion,M.afterLoc),Lh(M),ue}},catch:function(I){for(var P=this.tryEntries.length-1;P>=0;--P){var M=this.tryEntries[P];if(M.tryLoc===I){var W=M.completion;if(W.type==="throw"){var H=W.arg;Lh(M)}return H}}throw new Error("illegal catch attempt")},delegateYield:function(I,P,M){return this.delegate={iterator:Hh(I),resultName:P,nextLoc:M},this.method==="next"&&(this.arg=f),ue}},v}i.exports=c,i.exports.__esModule=!0,i.exports.default=i.exports})(Yw);var Q6=Yw.exports,Qa=Q6(),eH=Qa;try{regeneratorRuntime=Qa}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=Qa:Function("r","regeneratorRuntime = r")(Qa)}var dt=L(eH),SE={exports:{}},tH=ie,rH=tH(function(){if(typeof ArrayBuffer=="function"){var i=new ArrayBuffer(8);Object.isExtensible(i)&&Object.defineProperty(i,"a",{value:8})}}),iH=ie,nH=Ge,sH=ii,Cy=rH,el=Object.isExtensible,oH=iH(function(){el(1)}),aH=oH||Cy?function(e){return!nH(e)||Cy&&sH(e)==="ArrayBuffer"?!1:el?el(e):!0}:el,lH=ie,hH=!lH(function(){return Object.isExtensible(Object.preventExtensions({}))}),dH=F,cH=de,uH=ao,fH=Ge,Zf=ke,vH=$t.f,Dy=lo,pH=Sf,Qf=aH,gH=Hl,yH=hH,_E=!1,Er=gH("meta"),mH=0,ev=function(i){vH(i,Er,{value:{objectID:"O"+mH++,weakData:{}}})},bH=function(i,e){if(!fH(i))return typeof i=="symbol"?i:(typeof i=="string"?"S":"P")+i;if(!Zf(i,Er)){if(!Qf(i))return"F";if(!e)return"E";ev(i)}return i[Er].objectID},$H=function(i,e){if(!Zf(i,Er)){if(!Qf(i))return!0;if(!e)return!1;ev(i)}return i[Er].weakData},wH=function(i){return yH&&_E&&Qf(i)&&!Zf(i,Er)&&ev(i),i},EH=function(){SH.enable=function(){},_E=!0;var i=Dy.f,e=cH([].splice),t={};t[Er]=1,i(t).length&&(Dy.f=function(r){for(var n=i(r),s=0,o=n.length;s1?arguments[1]:void 0),f;f=f?f.next:u.first;)for(c(f.value,f.key,this);f&&f.removed;)f=f.previous},has:function(d){return!!l(this,d)}}),Ay(s,t?{get:function(d){var u=l(this,d);return u&&u.value},set:function(d,u){return a(this,d===0?0:d,u)}}:{add:function(d){return a(this,d=d===0?0:d,d)}}),ms&&VH(s,"size",{configurable:!0,get:function(){return o(this).size}}),n},setStrong:function(i,e,t){var r=e+" Iterator",n=qd(e),s=qd(r);qH(i,e,function(o,a){Ry(this,{type:r,target:o,state:n(o),kind:a,last:void 0})},function(){for(var o=s(this),a=o.kind,l=o.last;l&&l.removed;)l=l.previous;return!o.target||!(o.last=l=l?l.next:o.state.first)?(o.target=void 0,_a(void 0,!0)):_a(a==="keys"?l.key:a==="values"?l.value:[l.key,l.value],!1)},t?"entries":"values",!t,!0),YH(e)}},XH=IE,JH=PE;XH("Map",function(i){return function(){return i(this,arguments.length?arguments[0]:void 0)}},JH);var ZH=ge,QH=ZH.Map,eV=QH,tV=eV,rV=tV,CE=L(rV),iV=F,nV=ts.some,sV=oh,oV=sV("some");iV({target:"Array",proto:!0,forced:!oV},{some:function(e){return nV(this,e,arguments.length>1?arguments[1]:void 0)}});var aV=Je,lV=aV("Array","some"),hV=Re,dV=lV,Yd=Array.prototype,cV=function(i){var e=i.some;return i===Yd||hV(Yd,i)&&e===Yd.some?dV:e},uV=cV,fV=uV,vV=fV,pV=L(vV),gV=Je,yV=gV("Array","keys"),mV=yV,bV=mV,$V=Or,wV=ke,EV=Re,SV=bV,Xd=Array.prototype,_V={DOMTokenList:!0,NodeList:!0},TV=function(i){var e=i.keys;return i===Xd||EV(Xd,i)&&e===Xd.keys||wV(_V,$V(i))?SV:e},OV=TV,sn=L(OV),ky=N$,IV=Math.floor,ku=function(i,e){var t=i.length,r=IV(t/2);return t<8?xV(i,e):PV(i,ku(ky(i,0,r),e),ku(ky(i,r),e),e)},xV=function(i,e){for(var t=i.length,r=1,n,s;r0;)i[s]=i[--s];s!==r++&&(i[s]=n)}return i},PV=function(i,e,t,r){for(var n=e.length,s=t.length,o=0,a=0;o3)){if(VV)return!0;if(Hy)return Hy<603;var i="",e,t,r,n;for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:r=3;break;case 68:case 71:r=4;break;default:r=2}for(n=0;n<47;n++)Lr.push({k:t+n,v:r})}for(Lr.sort(function(s,o){return o.v-s.v}),n=0;njy(t)?1:-1}};FV({target:"Array",proto:!0,forced:qV},{sort:function(e){e!==void 0&&BV(e);var t=jV(this);if(AE)return e===void 0?Vy(t):Vy(t,e);var r=[],n=By(t),s,o;for(o=0;othis.max&&this.flush(),this._timeout!=null&&(clearTimeout(this._timeout),this._timeout=null),this.queue.length>0&&typeof this.delay=="number"&&(this._timeout=o3(function(){t.flush()},this.delay))}},{key:"flush",value:function(){var t,r;Pi(t=X0(r=this._queue).call(r,0)).call(t,function(n){n.fn.apply(n.context||n.fn,n.args||[])})}}],[{key:"extend",value:function(t,r){var n=new i(r);if(t.flush!==void 0)throw new Error("Target object already has a property flush");t.flush=function(){n.flush()};var s=[{name:"flush",original:void 0}];if(r&&r.replace)for(var o=0;o=i.length?{done:!0}:{done:!1,value:i[r++]}},e:function(h){throw h},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s=!0,o=!1,a;return{s:function(){t=t.call(i)},n:function(){var h=t.next();return s=h.done,h},e:function(h){o=!0,a=h},f:function(){try{!s&&t.return!=null&&t.return()}finally{if(o)throw a}}}}function Z8(i,e){var t;if(i){if(typeof i=="string")return Gy(i,e);var r=dh(t=Object.prototype.toString.call(i)).call(t,8,-1);if(r==="Object"&&i.constructor&&(r=i.constructor.name),r==="Map"||r==="Set")return kf(i);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Gy(i,e)}}function Gy(i,e){(e==null||e>i.length)&&(e=i.length);for(var t=0,r=new Array(e);ta&&(a=u,o=d)}return o}},{key:"min",value:function(r){var n=tc(this._pairs),s=n.next();if(s.done)return null;for(var o=s.value[1],a=r(s.value[1],s.value[0]);!(s=n.next()).done;){var l=ht(s.value,2),h=l[0],d=l[1],u=r(d,h);u=i.length?{done:!0}:{done:!1,value:i[r++]}},e:function(h){throw h},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s=!0,o=!1,a;return{s:function(){t=t.call(i)},n:function(){var h=t.next();return s=h.done,h},e:function(h){o=!0,a=h},f:function(){try{!s&&t.return!=null&&t.return()}finally{if(o)throw a}}}}function Q8(i,e){var t;if(i){if(typeof i=="string")return Jy(i,e);var r=dh(t=Object.prototype.toString.call(i)).call(t,8,-1);if(r==="Object"&&i.constructor&&(r=i.constructor.name),r==="Map"||r==="Set")return kf(i);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Jy(i,e)}}function Jy(i,e){(e==null||e>i.length)&&(e=i.length);for(var t=0,r=new Array(e);t"u"||!Ja||Ja.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Ja(Boolean,[],function(){})),!0}catch{return!1}}function rW(i,e){return i[e]==null&&(i[e]=A8()),i}var _l=function(i){b5(t,i);var e=eW(t);function t(r,n){var s;return jl(this,t),s=e.call(this),Kr(Ww(s),"_queue",null),r&&!wt(r)&&(n=r,r=[]),s._options=n||{},s._data=new CE,s.length=0,s._idProp=s._options.fieldId||"id",r&&r.length&&s.add(r),s.setOptions(n),s}return sh(t,[{key:"idProp",get:function(){return this._idProp}},{key:"setOptions",value:function(n){n&&n.queue!==void 0&&(n.queue===!1?this._queue&&(this._queue.destroy(),this._queue=null):(this._queue||(this._queue=N8.extend(this,{replace:["add","update","remove"]})),n.queue&&typeof n.queue=="object"&&this._queue.setOptions(n.queue)))}},{key:"add",value:function(n,s){var o=this,a=[],l;if(wt(n)){var h=Ft(n).call(n,function(c){return c[o._idProp]});if(pV(h).call(h,function(c){return o._data.has(c)}))throw new Error("A duplicate id was found in the parameter array.");for(var d=0,u=n.length;dd?1:ha)&&(o=d,a=u)}}catch(c){l.e(c)}finally{l.f()}return o||null}},{key:"min",value:function(n){var s,o=null,a=null,l=rc(Wy(s=this._data).call(s)),h;try{for(l.s();!(h=l.n()).done;){var d=h.value,u=d[n];typeof u=="number"&&(a==null||u"u"&&Bu!==void 0,BE={all:Bu,IS_HTMLDDA:cW},jE=BE,uW=jE.all,qe=jE.IS_HTMLDDA?function(i){return typeof i=="function"||i===uW}:function(i){return typeof i=="function"},To={},fW=te,Be=!fW(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),vW=_o,Ia=Function.prototype.call,Wt=vW?Ia.bind(Ia):function(){return Ia.apply(Ia,arguments)},Oo={},LE={}.propertyIsEnumerable,zE=Object.getOwnPropertyDescriptor,pW=zE&&!LE.call({1:2},1);Oo.f=pW?function(e){var t=zE(this,e);return!!t&&t.enumerable}:LE;var Io=function(i,e){return{enumerable:!(i&1),configurable:!(i&2),writable:!(i&4),value:e}},gW=re,yW=te,mW=Ir,nc=Object,bW=gW("".split),gh=yW(function(){return!nc("z").propertyIsEnumerable(0)})?function(i){return mW(i)==="String"?bW(i,""):nc(i)}:nc,os=function(i){return i==null},$W=os,wW=TypeError,xo=function(i){if($W(i))throw new wW("Can't call method on "+i);return i},EW=gh,SW=xo,Ut=function(i){return EW(SW(i))},em=qe,HE=BE,_W=HE.all,Ze=HE.IS_HTMLDDA?function(i){return typeof i=="object"?i!==null:em(i)||i===_W}:function(i){return typeof i=="object"?i!==null:em(i)},ne={},sc=ne,oc=_e,TW=qe,tm=function(i){return TW(i)?i:void 0},Kt=function(i,e){return arguments.length<2?tm(sc[i])||tm(oc[i]):sc[i]&&sc[i][e]||oc[i]&&oc[i][e]},OW=re,Me=OW({}.isPrototypeOf),Po=typeof navigator<"u"&&String(navigator.userAgent)||"",VE=_e,ac=Po,rm=VE.process,im=VE.Deno,nm=rm&&rm.versions||im&&im.version,sm=nm&&nm.v8,Bt,Tl;sm&&(Bt=sm.split("."),Tl=Bt[0]>0&&Bt[0]<4?1:+(Bt[0]+Bt[1]));!Tl&&ac&&(Bt=ac.match(/Edge\/(\d+)/),(!Bt||Bt[1]>=74)&&(Bt=ac.match(/Chrome\/(\d+)/),Bt&&(Tl=+Bt[1])));var Co=Tl,om=Co,IW=te,xW=_e,PW=xW.String,as=!!Object.getOwnPropertySymbols&&!IW(function(){var i=Symbol("symbol detection");return!PW(i)||!(Object(i)instanceof Symbol)||!Symbol.sham&&om&&om<41}),CW=as,WE=CW&&!Symbol.sham&&typeof Symbol.iterator=="symbol",DW=Kt,AW=qe,NW=Me,RW=WE,kW=Object,Do=RW?function(i){return typeof i=="symbol"}:function(i){var e=DW("Symbol");return AW(e)&&NW(e.prototype,kW(i))},MW=String,Ao=function(i){try{return MW(i)}catch{return"Object"}},FW=qe,BW=Ao,jW=TypeError,ls=function(i){if(FW(i))return i;throw new jW(BW(i)+" is not a function")},LW=ls,zW=os,iv=function(i,e){var t=i[e];return zW(t)?void 0:LW(t)},lc=Wt,hc=qe,dc=Ze,HW=TypeError,VW=function(i,e){var t,r;if(e==="string"&&hc(t=i.toString)&&!dc(r=lc(t,i))||hc(t=i.valueOf)&&!dc(r=lc(t,i))||e!=="string"&&hc(t=i.toString)&&!dc(r=lc(t,i)))return r;throw new HW("Can't convert object to primitive value")},UE={exports:{}},am=_e,WW=Object.defineProperty,UW=function(i,e){try{WW(am,i,{value:e,configurable:!0,writable:!0})}catch{am[i]=e}return e},KW=_e,GW=UW,lm="__core-js_shared__",qW=KW[lm]||GW(lm,{}),nv=qW,hm=nv;(UE.exports=function(i,e){return hm[i]||(hm[i]=e!==void 0?e:{})})("versions",[]).push({version:"3.33.0",mode:"pure",copyright:"© 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.33.0/LICENSE",source:"https://github.com/zloirock/core-js"});var hs=UE.exports,YW=xo,XW=Object,Nt=function(i){return XW(YW(i))},JW=re,ZW=Nt,QW=JW({}.hasOwnProperty),Ye=Object.hasOwn||function(e,t){return QW(ZW(e),t)},e7=re,t7=0,r7=Math.random(),i7=e7(1 .toString),yh=function(i){return"Symbol("+(i===void 0?"":i)+")_"+i7(++t7+r7,36)},n7=_e,s7=hs,dm=Ye,o7=yh,a7=as,l7=WE,En=n7.Symbol,cc=s7("wks"),h7=l7?En.for||En:En&&En.withoutSetter||o7,Pe=function(i){return dm(cc,i)||(cc[i]=a7&&dm(En,i)?En[i]:h7("Symbol."+i)),cc[i]},d7=Wt,cm=Ze,um=Do,c7=iv,u7=VW,f7=Pe,v7=TypeError,p7=f7("toPrimitive"),g7=function(i,e){if(!cm(i)||um(i))return i;var t=c7(i,p7),r;if(t){if(e===void 0&&(e="default"),r=d7(t,i,e),!cm(r)||um(r))return r;throw new v7("Can't convert object to primitive value")}return e===void 0&&(e="number"),u7(i,e)},y7=g7,m7=Do,mh=function(i){var e=y7(i,"string");return m7(e)?e:e+""},b7=_e,fm=Ze,ju=b7.document,$7=fm(ju)&&fm(ju.createElement),KE=function(i){return $7?ju.createElement(i):{}},w7=Be,E7=te,S7=KE,GE=!w7&&!E7(function(){return Object.defineProperty(S7("div"),"a",{get:function(){return 7}}).a!==7}),_7=Be,T7=Wt,O7=Oo,I7=Io,x7=Ut,P7=mh,C7=Ye,D7=GE,vm=Object.getOwnPropertyDescriptor;To.f=_7?vm:function(e,t){if(e=x7(e),t=P7(t),D7)try{return vm(e,t)}catch{}if(C7(e,t))return I7(!T7(O7.f,e,t),e[t])};var A7=te,N7=qe,R7=/#|\.prototype\./,No=function(i,e){var t=M7[k7(i)];return t===B7?!0:t===F7?!1:N7(e)?A7(e):!!e},k7=No.normalize=function(i){return String(i).replace(R7,".").toLowerCase()},M7=No.data={},F7=No.NATIVE="N",B7=No.POLYFILL="P",j7=No,pm=rv,L7=ls,z7=_o,H7=pm(pm.bind),bh=function(i,e){return L7(i),e===void 0?i:z7?H7(i,e):function(){return i.apply(e,arguments)}},Tt={},V7=Be,W7=te,qE=V7&&W7(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),U7=Ze,K7=String,G7=TypeError,xr=function(i){if(U7(i))return i;throw new G7(K7(i)+" is not an object")},q7=Be,Y7=GE,X7=qE,xa=xr,gm=mh,J7=TypeError,uc=Object.defineProperty,Z7=Object.getOwnPropertyDescriptor,fc="enumerable",vc="configurable",pc="writable";Tt.f=q7?X7?function(e,t,r){if(xa(e),t=gm(t),xa(r),typeof e=="function"&&t==="prototype"&&"value"in r&&pc in r&&!r[pc]){var n=Z7(e,t);n&&n[pc]&&(e[t]=r.value,r={configurable:vc in r?r[vc]:n[vc],enumerable:fc in r?r[fc]:n[fc],writable:!1})}return uc(e,t,r)}:uc:function(e,t,r){if(xa(e),t=gm(t),xa(r),Y7)try{return uc(e,t,r)}catch{}if("get"in r||"set"in r)throw new J7("Accessors not supported");return"value"in r&&(e[t]=r.value),e};var Q7=Be,e9=Tt,t9=Io,ds=Q7?function(i,e,t){return e9.f(i,e,t9(1,t))}:function(i,e,t){return i[e]=t,i},Pa=_e,r9=ph,i9=rv,n9=qe,s9=To.f,o9=j7,on=ne,a9=bh,an=ds,ym=Ye,l9=function(i){var e=function(t,r,n){if(this instanceof e){switch(arguments.length){case 0:return new i;case 1:return new i(t);case 2:return new i(t,r)}return new i(t,r,n)}return r9(i,this,arguments)};return e.prototype=i.prototype,e},z=function(i,e){var t=i.target,r=i.global,n=i.stat,s=i.proto,o=r?Pa:n?Pa[t]:(Pa[t]||{}).prototype,a=r?on:on[t]||an(on,t,{})[t],l=a.prototype,h,d,u,c,f,v,g,y,p;for(c in e)h=o9(r?c:t+(n?".":"#")+c,i.forced),d=!h&&o&&ym(o,c),v=a[c],d&&(i.dontCallGetSet?(p=s9(o,c),g=p&&p.value):g=o[c]),f=d&&g?g:e[c],!(d&&typeof v==typeof f)&&(i.bind&&d?y=a9(f,Pa):i.wrap&&d?y=l9(f):s&&n9(f)?y=i9(f):y=f,(i.sham||f&&f.sham||v&&v.sham)&&an(y,"sham",!0),an(a,c,y),s&&(u=t+"Prototype",ym(on,u)||an(on,u,{}),an(on[u],c,f),i.real&&l&&(h||!l[c])&&an(l,c,f)))},h9=Math.ceil,d9=Math.floor,c9=Math.trunc||function(e){var t=+e;return(t>0?d9:h9)(t)},u9=c9,$h=function(i){var e=+i;return e!==e||e===0?0:u9(e)},f9=$h,v9=Math.max,p9=Math.min,Ro=function(i,e){var t=f9(i);return t<0?v9(t+e,0):p9(t,e)},g9=$h,y9=Math.min,m9=function(i){return i>0?y9(g9(i),9007199254740991):0},b9=m9,ar=function(i){return b9(i.length)},$9=Ut,w9=Ro,E9=ar,mm=function(i){return function(e,t,r){var n=$9(e),s=E9(n),o=w9(r,s),a;if(i&&t!==t){for(;s>o;)if(a=n[o++],a!==a)return!0}else for(;s>o;o++)if((i||o in n)&&n[o]===t)return i||o||0;return!i&&-1}},sv={includes:mm(!0),indexOf:mm(!1)},ko={},S9=re,gc=Ye,_9=Ut,T9=sv.indexOf,O9=ko,bm=S9([].push),YE=function(i,e){var t=_9(i),r=0,n=[],s;for(s in t)!gc(O9,s)&&gc(t,s)&&bm(n,s);for(;e.length>r;)gc(t,s=e[r++])&&(~T9(n,s)||bm(n,s));return n},ov=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],I9=YE,x9=ov,Mo=Object.keys||function(e){return I9(e,x9)},Fo={};Fo.f=Object.getOwnPropertySymbols;var $m=Be,P9=re,C9=Wt,D9=te,yc=Mo,A9=Fo,N9=Oo,R9=Nt,k9=gh,ln=Object.assign,wm=Object.defineProperty,M9=P9([].concat),F9=!ln||D9(function(){if($m&&ln({b:1},ln(wm({},"a",{enumerable:!0,get:function(){wm(this,"b",{value:3,enumerable:!1})}}),{b:2})).b!==1)return!0;var i={},e={},t=Symbol("assign detection"),r="abcdefghijklmnopqrst";return i[t]=7,r.split("").forEach(function(n){e[n]=n}),ln({},i)[t]!==7||yc(ln({},e)).join("")!==r})?function(e,t){for(var r=R9(e),n=arguments.length,s=1,o=A9.f,a=N9.f;n>s;)for(var l=k9(arguments[s++]),h=o?M9(yc(l),o(l)):yc(l),d=h.length,u=0,c;d>u;)c=h[u++],(!$m||C9(a,l,c))&&(r[c]=l[c]);return r}:ln,B9=z,Em=F9;B9({target:"Object",stat:!0,forced:Object.assign!==Em},{assign:Em});var j9=ne,L9=j9.Object.assign,z9=L9,H9=z9,V9=H9,Ae=V(V9),W9=re,wh=W9([].slice),XE=re,U9=ls,K9=Ze,G9=Ye,Sm=wh,q9=_o,JE=Function,Y9=XE([].concat),X9=XE([].join),mc={},J9=function(i,e,t){if(!G9(mc,e)){for(var r=[],n=0;n=.1;)v=+s[u++%o],v>d&&(v=d),f=Math.sqrt(v*v/(1+h*h)),f=a<0?-f:f,e+=f,t+=h*f,c===!0?i.lineTo(e,t):i.moveTo(e,t),d-=v,c=!c}function vU(i,e,t,r){i.beginPath();const n=6,s=Math.PI*2/n;i.moveTo(e+r,t);for(let o=1;o1?t-1:0),n=1;nbU)throw mU("Maximum allowed index exceeded");return i},$U=mh,wU=Tt,EU=Io,Bo=function(i,e,t){var r=$U(e);r in i?wU.f(i,r,EU(0,t)):i[r]=t},SU=Pe,_U=SU("toStringTag"),nS={};nS[_U]="z";var lv=String(nS)==="[object z]",TU=lv,OU=qe,tl=Ir,IU=Pe,xU=IU("toStringTag"),PU=Object,CU=tl(function(){return arguments}())==="Arguments",DU=function(i,e){try{return i[e]}catch{}},Ki=TU?tl:function(i){var e,t,r;return i===void 0?"Undefined":i===null?"Null":typeof(t=DU(e=PU(i),xU))=="string"?t:CU?tl(e):(r=tl(e))==="Object"&&OU(e.callee)?"Arguments":r},AU=re,NU=qe,zu=nv,RU=AU(Function.toString);NU(zu.inspectSource)||(zu.inspectSource=function(i){return RU(i)});var kU=zu.inspectSource,MU=re,FU=te,sS=qe,BU=Ki,jU=Kt,LU=kU,oS=function(){},zU=[],aS=jU("Reflect","construct"),hv=/^\s*(?:class|function)\b/,HU=MU(hv.exec),VU=!hv.test(oS),bs=function(e){if(!sS(e))return!1;try{return aS(oS,zU,e),!0}catch{return!1}},lS=function(e){if(!sS(e))return!1;switch(BU(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return VU||!!HU(hv,LU(e))}catch{return!0}};lS.sham=!0;var hS=!aS||FU(function(){var i;return bs(bs.call)||!bs(Object)||!bs(function(){i=!0})||i})?lS:bs,Om=Ui,WU=hS,UU=Ze,KU=Pe,GU=KU("species"),Im=Array,qU=function(i){var e;return Om(i)&&(e=i.constructor,WU(e)&&(e===Im||Om(e.prototype))?e=void 0:UU(e)&&(e=e[GU],e===null&&(e=void 0))),e===void 0?Im:e},YU=qU,dv=function(i,e){return new(YU(i))(e===0?0:e)},XU=te,JU=Pe,ZU=Co,QU=JU("species"),jo=function(i){return ZU>=51||!XU(function(){var e=[],t=e.constructor={};return t[QU]=function(){return{foo:1}},e[i](Boolean).foo!==1})},eK=z,tK=te,rK=Ui,iK=Ze,nK=Nt,sK=ar,xm=iS,Pm=Bo,oK=dv,aK=jo,lK=Pe,hK=Co,dS=lK("isConcatSpreadable"),dK=hK>=51||!tK(function(){var i=[];return i[dS]=!1,i.concat()[0]!==i}),cK=function(i){if(!iK(i))return!1;var e=i[dS];return e!==void 0?!!e:rK(i)},uK=!dK||!aK("concat");eK({target:"Array",proto:!0,forced:uK},{concat:function(e){var t=nK(this),r=oK(t,0),n=0,s,o,a,l,h;for(s=-1,a=arguments.length;so;)yK.f(e,a=n[o++],r[a]);return e};var wK=Kt,EK=wK("document","documentElement"),SK=hs,_K=yh,Cm=SK("keys"),Sh=function(i){return Cm[i]||(Cm[i]=_K(i))},TK=xr,OK=Eh,Dm=ov,IK=ko,xK=EK,PK=KE,CK=Sh,Am=">",Nm="<",Hu="prototype",Vu="script",cS=CK("IE_PROTO"),$c=function(){},uS=function(i){return Nm+Vu+Am+i+Nm+"/"+Vu+Am},Rm=function(i){i.write(uS("")),i.close();var e=i.parentWindow.Object;return i=null,e},DK=function(){var i=PK("iframe"),e="java"+Vu+":",t;return i.style.display="none",xK.appendChild(i),i.src=String(e),t=i.contentWindow.document,t.open(),t.write(uS("document.F=Object")),t.close(),t.F},Ca,rl=function(){try{Ca=new ActiveXObject("htmlfile")}catch{}rl=typeof document<"u"?document.domain&&Ca?Rm(Ca):DK():Rm(Ca);for(var i=Dm.length;i--;)delete rl[Hu][Dm[i]];return rl()};IK[cS]=!0;var Lo=Object.create||function(e,t){var r;return e!==null?($c[Hu]=TK(e),r=new $c,$c[Hu]=null,r[cS]=e):r=rl(),t===void 0?r:OK.f(r,t)},zo={},AK=YE,NK=ov,RK=NK.concat("length","prototype");zo.f=Object.getOwnPropertyNames||function(e){return AK(e,RK)};var _h={},km=Ro,kK=ar,MK=Bo,FK=Array,BK=Math.max,fS=function(i,e,t){for(var r=kK(i),n=km(e,r),s=km(t===void 0?r:t,r),o=FK(BK(s-n,0)),a=0;ny;y++)if((a||y in f)&&(w=f[y],$=v(w,y,c),i))if(e)m[y]=$;else if($)switch(i){case 3:return!0;case 5:return w;case 6:return y;case 2:Lm(m,w)}else switch(i){case 4:return!1;case 7:Lm(m,w)}return s?-1:r||n?n:m}},ai={forEach:vi(0),map:vi(1),filter:vi(2),some:vi(3),every:vi(4),find:vi(5),findIndex:vi(6)},Th=z,Oh=_e,uv=Wt,_G=re,Bn=Be,jn=as,TG=te,He=Ye,OG=Me,Uu=xr,Ih=Ut,fv=mh,IG=lr,Ku=Io,Ys=Lo,bS=Mo,xG=zo,$S=_h,PG=Fo,wS=To,ES=Tt,CG=Eh,SS=Oo,zm=Ho,DG=cv,vv=hs,AG=Sh,_S=ko,Hm=yh,NG=Pe,RG=Vo,kG=Te,MG=gS,FG=cs,TS=Gi,xh=ai.forEach,vt=AG("hidden"),Ph="Symbol",Xs="prototype",BG=TS.set,Vm=TS.getterFor(Ph),zt=Object[Xs],Si=Oh.Symbol,Os=Si&&Si[Xs],jG=Oh.RangeError,LG=Oh.TypeError,Sc=Oh.QObject,OS=wS.f,_i=ES.f,IS=$S.f,zG=SS.f,xS=_G([].push),Sr=vv("symbols"),Wo=vv("op-symbols"),HG=vv("wks"),Gu=!Sc||!Sc[Xs]||!Sc[Xs].findChild,PS=function(i,e,t){var r=OS(zt,e);r&&delete zt[e],_i(i,e,t),r&&i!==zt&&_i(zt,e,r)},qu=Bn&&TG(function(){return Ys(_i({},"a",{get:function(){return _i(this,"a",{value:7}).a}})).a!==7})?PS:_i,_c=function(i,e){var t=Sr[i]=Ys(Os);return BG(t,{type:Ph,tag:i,description:e}),Bn||(t.description=e),t},Ch=function(e,t,r){e===zt&&Ch(Wo,t,r),Uu(e);var n=fv(t);return Uu(r),He(Sr,n)?(r.enumerable?(He(e,vt)&&e[vt][n]&&(e[vt][n]=!1),r=Ys(r,{enumerable:Ku(0,!1)})):(He(e,vt)||_i(e,vt,Ku(1,{})),e[vt][n]=!0),qu(e,n,r)):_i(e,n,r)},pv=function(e,t){Uu(e);var r=Ih(t),n=bS(r).concat(NS(r));return xh(n,function(s){(!Bn||uv(CS,r,s))&&Ch(e,s,r[s])}),e},VG=function(e,t){return t===void 0?Ys(e):pv(Ys(e),t)},CS=function(e){var t=fv(e),r=uv(zG,this,t);return this===zt&&He(Sr,t)&&!He(Wo,t)?!1:r||!He(this,t)||!He(Sr,t)||He(this,vt)&&this[vt][t]?r:!0},DS=function(e,t){var r=Ih(e),n=fv(t);if(!(r===zt&&He(Sr,n)&&!He(Wo,n))){var s=OS(r,n);return s&&He(Sr,n)&&!(He(r,vt)&&r[vt][n])&&(s.enumerable=!0),s}},AS=function(e){var t=IS(Ih(e)),r=[];return xh(t,function(n){!He(Sr,n)&&!He(_S,n)&&xS(r,n)}),r},NS=function(i){var e=i===zt,t=IS(e?Wo:Ih(i)),r=[];return xh(t,function(n){He(Sr,n)&&(!e||He(zt,n))&&xS(r,Sr[n])}),r};jn||(Si=function(){if(OG(Os,this))throw new LG("Symbol is not a constructor");var e=!arguments.length||arguments[0]===void 0?void 0:IG(arguments[0]),t=Hm(e),r=function(n){this===zt&&uv(r,Wo,n),He(this,vt)&&He(this[vt],t)&&(this[vt][t]=!1);var s=Ku(1,n);try{qu(this,t,s)}catch(o){if(!(o instanceof jG))throw o;PS(this,t,s)}};return Bn&&Gu&&qu(zt,t,{configurable:!0,set:r}),_c(t,e)},Os=Si[Xs],zm(Os,"toString",function(){return Vm(this).tag}),zm(Si,"withoutSetter",function(i){return _c(Hm(i),i)}),SS.f=CS,ES.f=Ch,CG.f=pv,wS.f=DS,xG.f=$S.f=AS,PG.f=NS,RG.f=function(i){return _c(NG(i),i)},Bn&&DG(Os,"description",{configurable:!0,get:function(){return Vm(this).description}}));Th({global:!0,wrap:!0,forced:!jn,sham:!jn},{Symbol:Si});xh(bS(HG),function(i){kG(i)});Th({target:Ph,stat:!0,forced:!jn},{useSetter:function(){Gu=!0},useSimple:function(){Gu=!1}});Th({target:"Object",stat:!0,forced:!jn,sham:!Bn},{create:VG,defineProperty:Ch,defineProperties:pv,getOwnPropertyDescriptor:DS});Th({target:"Object",stat:!0,forced:!jn},{getOwnPropertyNames:AS});MG();FG(Si,Ph);_S[vt]=!0;var WG=as,RS=WG&&!!Symbol.for&&!!Symbol.keyFor,UG=z,KG=Kt,GG=Ye,qG=lr,kS=hs,YG=RS,Tc=kS("string-to-symbol-registry"),XG=kS("symbol-to-string-registry");UG({target:"Symbol",stat:!0,forced:!YG},{for:function(i){var e=qG(i);if(GG(Tc,e))return Tc[e];var t=KG("Symbol")(e);return Tc[e]=t,XG[t]=e,t}});var JG=z,ZG=Ye,QG=Do,eq=Ao,tq=hs,rq=RS,Wm=tq("symbol-to-string-registry");JG({target:"Symbol",stat:!0,forced:!rq},{keyFor:function(e){if(!QG(e))throw new TypeError(eq(e)+" is not a symbol");if(ZG(Wm,e))return Wm[e]}});var iq=re,Um=Ui,nq=qe,Km=Ir,sq=lr,Gm=iq([].push),oq=function(i){if(nq(i))return i;if(Um(i)){for(var e=i.length,t=[],r=0;r=e.length)return i.target=void 0,Ra(void 0,!0);switch(t){case"keys":return Ra(r,!1);case"values":return Ra(e[r],!1)}return Ra([r,e[r]],!1)},"values");ab.Arguments=ab.Array;var xY={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},PY=xY,CY=_e,DY=Ki,AY=ds,lb=us,NY=Pe,hb=NY("toStringTag");for(var Pc in PY){var db=CY[Pc],Cc=db&&db.prototype;Cc&&DY(Cc)!==hb&&AY(Cc,hb,Pc),lb[Pc]=lb.Array}var RY=Hq,qS=RY,kY=qS,MY=V(kY),FY=z,cb=Ui,BY=hS,jY=Ze,ub=Ro,LY=ar,zY=Ut,HY=Bo,VY=Pe,WY=jo,UY=wh,KY=WY("slice"),GY=VY("species"),Dc=Array,qY=Math.max;FY({target:"Array",proto:!0,forced:!KY},{slice:function(e,t){var r=zY(this),n=LY(r),s=ub(e,n),o=ub(t===void 0?n:t,n),a,l,h;if(cb(r)&&(a=r.constructor,BY(a)&&(a===Dc||cb(a.prototype))?a=void 0:jY(a)&&(a=a[GY],a===null&&(a=void 0)),a===Dc||a===void 0))return UY(r,s,o);for(l=new(a===void 0?Dc:a)(qY(o-s,0)),h=0;s1?arguments[1]:void 0)}});var wX=Xe,EX=wX("Array").map,SX=Me,_X=EX,Nc=Array.prototype,TX=function(i){var e=i.map;return i===Nc||SX(Nc,i)&&e===Nc.map?_X:e},OX=TX,IX=OX,xX=IX,Ln=V(xX),PX=z,CX=Nt,YS=Mo,DX=te,AX=DX(function(){YS(1)});PX({target:"Object",stat:!0,forced:AX},{keys:function(e){return YS(CX(e))}});var NX=ne,RX=NX.Object.keys,kX=RX,MX=kX,FX=MX,$e=V(FX),BX=z,jX=re,XS=Date,LX=jX(XS.prototype.getTime);BX({target:"Date",stat:!0},{now:function(){return LX(new XS)}});var zX=ne,HX=zX.Date.now,VX=HX,WX=VX,UX=WX,xl=V(UX),KX=te,fs=function(i,e){var t=[][i];return!!t&&KX(function(){t.call(null,e||function(){return 1},1)})},GX=ai.forEach,qX=fs,YX=qX("forEach"),XX=YX?[].forEach:function(e){return GX(this,e,arguments.length>1?arguments[1]:void 0)},JX=z,fb=XX;JX({target:"Array",proto:!0,forced:[].forEach!==fb},{forEach:fb});var ZX=Xe,QX=ZX("Array").forEach,eJ=QX,tJ=eJ,rJ=Ki,iJ=Ye,nJ=Me,sJ=tJ,Rc=Array.prototype,oJ={DOMTokenList:!0,NodeList:!0},aJ=function(i){var e=i.forEach;return i===Rc||nJ(Rc,i)&&e===Rc.forEach||iJ(oJ,rJ(i))?sJ:e},lJ=aJ,oe=V(lJ),hJ=z,dJ=re,cJ=Ui,uJ=dJ([].reverse),vb=[1,2];hJ({target:"Array",proto:!0,forced:String(vb)===String(vb.reverse())},{reverse:function(){return cJ(this)&&(this.length=this.length),uJ(this)}});var fJ=Xe,vJ=fJ("Array").reverse,pJ=Me,gJ=vJ,kc=Array.prototype,yJ=function(i){var e=i.reverse;return i===kc||pJ(kc,i)&&e===kc.reverse?gJ:e},mJ=yJ,bJ=mJ,$J=bJ,Ti=V($J),wJ=Be,EJ=Ui,SJ=TypeError,_J=Object.getOwnPropertyDescriptor,TJ=wJ&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(i){return i instanceof TypeError}}(),OJ=TJ?function(i,e){if(EJ(i)&&!_J(i,"length").writable)throw new SJ("Cannot set read only .length");return i.length=e}:function(i,e){return i.length=e},pb=Ao,IJ=TypeError,JS=function(i,e){if(!delete i[e])throw new IJ("Cannot delete property "+pb(e)+" of "+pb(i))},xJ=z,PJ=Nt,CJ=Ro,DJ=$h,AJ=ar,NJ=OJ,RJ=iS,kJ=dv,MJ=Bo,Mc=JS,FJ=jo,BJ=FJ("splice"),jJ=Math.max,LJ=Math.min;xJ({target:"Array",proto:!0,forced:!BJ},{splice:function(e,t){var r=PJ(this),n=AJ(r),s=CJ(e,n),o=arguments.length,a,l,h,d,u,c;for(o===0?a=l=0:o===1?(a=0,l=n-s):(a=o-2,l=LJ(jJ(DJ(t),0),n-s)),RJ(n+a-l),h=kJ(r,l),d=0;dn-l+a;d--)Mc(r,d-1)}else if(a>l)for(d=n-l;d>s;d--)u=d+l-1,c=d+a-1,u in r?r[c]=r[u]:Mc(r,c);for(d=0;d1?arguments[1]:void 0)}});var QJ=Xe,eZ=QJ("Array").includes,tZ=Ze,rZ=Ir,iZ=Pe,nZ=iZ("match"),sZ=function(i){var e;return tZ(i)&&((e=i[nZ])!==void 0?!!e:rZ(i)==="RegExp")},oZ=sZ,aZ=TypeError,lZ=function(i){if(oZ(i))throw new aZ("The method doesn't accept regular expressions");return i},hZ=Pe,dZ=hZ("match"),cZ=function(i){var e=/./;try{"/./"[i](e)}catch{try{return e[dZ]=!1,"/./"[i](e)}catch{}}return!1},uZ=z,fZ=re,vZ=lZ,pZ=xo,gb=lr,gZ=cZ,yZ=fZ("".indexOf);uZ({target:"String",proto:!0,forced:!gZ("includes")},{includes:function(e){return!!~yZ(gb(pZ(this)),gb(vZ(e)),arguments.length>1?arguments[1]:void 0)}});var mZ=Xe,bZ=mZ("String").includes,yb=Me,$Z=eZ,wZ=bZ,Bc=Array.prototype,jc=String.prototype,EZ=function(i){var e=i.includes;return i===Bc||yb(Bc,i)&&e===Bc.includes?$Z:typeof i=="string"||i===jc||yb(jc,i)&&e===jc.includes?wZ:e},SZ=EZ,_Z=SZ,TZ=_Z,Yr=V(TZ),OZ=z,IZ=te,xZ=Nt,ZS=Dh,PZ=VS,CZ=IZ(function(){ZS(1)});OZ({target:"Object",stat:!0,forced:CZ,sham:!PZ},{getPrototypeOf:function(e){return ZS(xZ(e))}});var DZ=ne,AZ=DZ.Object.getPrototypeOf,NZ=AZ,RZ=NZ,kZ=RZ,mb=V(kZ),MZ=Xe,FZ=MZ("Array").concat,BZ=Me,jZ=FZ,Lc=Array.prototype,LZ=function(i){var e=i.concat;return i===Lc||BZ(Lc,i)&&e===Lc.concat?jZ:e},zZ=LZ,HZ=zZ,VZ=HZ,WZ=V(VZ),UZ=z,KZ=ai.filter,GZ=jo,qZ=GZ("filter");UZ({target:"Array",proto:!0,forced:!qZ},{filter:function(e){return KZ(this,e,arguments.length>1?arguments[1]:void 0)}});var YZ=Xe,XZ=YZ("Array").filter,JZ=Me,ZZ=XZ,zc=Array.prototype,QZ=function(i){var e=i.filter;return i===zc||JZ(zc,i)&&e===zc.filter?ZZ:e},eQ=QZ,tQ=eQ,rQ=tQ,pt=V(rQ),QS=Be,iQ=te,e_=re,nQ=Dh,sQ=Mo,oQ=Ut,aQ=Oo.f,t_=e_(aQ),lQ=e_([].push),hQ=QS&&iQ(function(){var i=Object.create(null);return i[2]=2,!t_(i,2)}),dQ=function(i){return function(e){for(var t=oQ(e),r=sQ(t),n=hQ&&nQ(t)===null,s=r.length,o=0,a=[],l;s>o;)l=r[o++],(!QS||(n?l in t:t_(t,l)))&&lQ(a,i?[l,t[l]]:t[l]);return a}},cQ={values:dQ(!1)},uQ=z,fQ=cQ.values;uQ({target:"Object",stat:!0},{values:function(e){return fQ(e)}});var vQ=ne,pQ=vQ.Object.values,gQ=pQ,yQ=gQ,mQ=yQ,bQ=V(mQ),mv=` \v\f\r                 \u2028\u2029\uFEFF`,$Q=re,wQ=xo,EQ=lr,Zu=mv,bb=$Q("".replace),SQ=RegExp("^["+Zu+"]+"),_Q=RegExp("(^|[^"+Zu+"])["+Zu+"]+$"),TQ=function(i){return function(e){var t=EQ(wQ(e));return i&1&&(t=bb(t,SQ,"")),i&2&&(t=bb(t,_Q,"$1")),t}},r_={trim:TQ(3)},i_=_e,OQ=te,IQ=re,xQ=lr,PQ=r_.trim,$b=mv,Ns=i_.parseInt,wb=i_.Symbol,Eb=wb&&wb.iterator,n_=/^[+-]?0x/i,CQ=IQ(n_.exec),DQ=Ns($b+"08")!==8||Ns($b+"0x16")!==22||Eb&&!OQ(function(){Ns(Object(Eb))}),AQ=DQ?function(e,t){var r=PQ(xQ(e));return Ns(r,t>>>0||(CQ(n_,r)?16:10))}:Ns,NQ=z,Sb=AQ;NQ({global:!0,forced:parseInt!==Sb},{parseInt:Sb});var RQ=ne,kQ=RQ.parseInt,MQ=kQ,FQ=MQ,BQ=FQ,jt=V(BQ),jQ=z,LQ=rv,zQ=sv.indexOf,HQ=fs,Qu=LQ([].indexOf),s_=!!Qu&&1/Qu([1],1,-0)<0,VQ=s_||!HQ("indexOf");jQ({target:"Array",proto:!0,forced:VQ},{indexOf:function(e){var t=arguments.length>1?arguments[1]:void 0;return s_?Qu(this,e,t)||0:zQ(this,e,t)}});var WQ=Xe,UQ=WQ("Array").indexOf,KQ=Me,GQ=UQ,Hc=Array.prototype,qQ=function(i){var e=i.indexOf;return i===Hc||KQ(Hc,i)&&e===Hc.indexOf?GQ:e},YQ=qQ,XQ=YQ,JQ=XQ,ee=V(JQ),ZQ=z,QQ=Be,eee=Lo;ZQ({target:"Object",stat:!0,sham:!QQ},{create:eee});var tee=ne,ree=tee.Object,iee=function(e,t){return ree.create(e,t)},nee=iee,see=nee,oee=see,Oi=V(oee),ef=ne,aee=ph;ef.JSON||(ef.JSON={stringify:JSON.stringify});var lee=function(e,t,r){return aee(ef.JSON.stringify,null,arguments)},hee=lee,dee=hee,cee=dee,Ko=V(cee),uee=typeof Bun=="function"&&Bun&&typeof Bun.version=="string",fee=TypeError,vee=function(i,e){if(it,o=gee(r)?r:wee(r),a=s?bee(arguments,t):[],l=s?function(){pee(o,this,a)}:o;return e?i(l,n):i(l)}:i},See=z,l_=_e,_ee=a_,_b=_ee(l_.setInterval,!0);See({global:!0,bind:!0,forced:l_.setInterval!==_b},{setInterval:_b});var Tee=z,h_=_e,Oee=a_,Tb=Oee(h_.setTimeout,!0);Tee({global:!0,bind:!0,forced:h_.setTimeout!==Tb},{setTimeout:Tb});var Iee=ne,xee=Iee.setTimeout,Pee=xee,ir=V(Pee),Cee=Nt,Ob=Ro,Dee=ar,Aee=function(e){for(var t=Cee(this),r=Dee(t),n=arguments.length,s=Ob(n>1?arguments[1]:void 0,r),o=n>2?arguments[2]:void 0,a=o===void 0?r:Ob(o,r);a>s;)t[s++]=e;return t},Nee=z,Ree=Aee;Nee({target:"Array",proto:!0},{fill:Ree});var kee=Xe,Mee=kee("Array").fill,Fee=Me,Bee=Mee,Vc=Array.prototype,jee=function(i){var e=i.fill;return i===Vc||Fee(Vc,i)&&e===Vc.fill?Bee:e},Lee=jee,zee=Lee,Hee=zee,Go=V(Hee);/*! Hammer.JS - v2.0.17-rc - 2019-12-16 * http://naver.github.io/egjs * * Forked By Naver egjs * Copyright (c) hammerjs * Licensed under the MIT license */function Vt(){return Vt=Object.assign||function(i){for(var e=1;e"u"?{style:{}}:document.createElement("div"),Wee="function",Sn=Math.round,ki=Math.abs,bv=Date.now;function Ah(i,e){for(var t,r,n=e[0].toUpperCase()+e.slice(1),s=0;s"u"?mr={}:mr=window;var d_=Ah(Vee.style,"touchAction"),c_=d_!==void 0;function Uee(){if(!c_)return!1;var i={},e=mr.CSS&&mr.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(t){return i[t]=e?mr.CSS.supports("touch-action",t):!0}),i}var u_="compute",f_="auto",rf="manipulation",Ii="none",Js="pan-x",Zs="pan-y",Ma=Uee(),Kee=/mobile|tablet|ip(ad|hone|od)|android/i,v_="ontouchstart"in mr,Gee=Ah(mr,"PointerEvent")!==void 0,qee=v_&&Kee.test(navigator.userAgent),qo="touch",Yee="pen",$v="mouse",Xee="kinect",Jee=25,ot=1,qi=2,Ne=4,yt=8,Pl=1,Yo=2,Xo=4,Jo=8,zn=16,nr=Yo|Xo,xi=Jo|zn,p_=nr|xi,g_=["x","y"],Cl=["clientX","clientY"];function br(i,e,t){var r;if(i)if(i.forEach)i.forEach(e,t);else if(i.length!==void 0)for(r=0;r-1}function Zee(i){if(yi(i,Ii))return Ii;var e=yi(i,Js),t=yi(i,Zs);return e&&t?Ii:e||t?e?Js:Zs:yi(i,rf)?rf:f_}var y_=function(){function i(t,r){this.manager=t,this.set(r)}var e=i.prototype;return e.set=function(r){r===u_&&(r=this.compute()),c_&&this.manager.element.style&&Ma[r]&&(this.manager.element.style[d_]=r),this.actions=r.toLowerCase().trim()},e.update=function(){this.set(this.manager.options.touchAction)},e.compute=function(){var r=[];return br(this.manager.recognizers,function(n){Nh(n.options.enable,[n])&&(r=r.concat(n.getTouchAction()))}),Zee(r.join(" "))},e.preventDefaults=function(r){var n=r.srcEvent,s=r.offsetDirection;if(this.manager.session.prevented){n.preventDefault();return}var o=this.actions,a=yi(o,Ii)&&!Ma[Ii],l=yi(o,Zs)&&!Ma[Zs],h=yi(o,Js)&&!Ma[Js];if(a){var d=r.pointers.length===1,u=r.distance<2,c=r.deltaTime<250;if(d&&u&&c)return}if(!(h&&l)&&(a||l&&s&nr||h&&s&xi))return this.preventSrc(n)},e.preventSrc=function(r){this.manager.session.prevented=!0,r.preventDefault()},i}();function wv(i,e){for(;i;){if(i===e)return!0;i=i.parentNode}return!1}function m_(i){var e=i.length;if(e===1)return{x:Sn(i[0].clientX),y:Sn(i[0].clientY)};for(var t=0,r=0,n=0;n=ki(e)?i<0?Yo:Xo:e<0?Jo:zn}function Qee(i,e){var t=e.center,r=i.offsetDelta||{},n=i.prevDelta||{},s=i.prevInput||{};(e.eventType===ot||s.eventType===Ne)&&(n=i.prevDelta={x:s.deltaX||0,y:s.deltaY||0},r=i.offsetDelta={x:t.x,y:t.y}),e.deltaX=n.x+(t.x-r.x),e.deltaY=n.y+(t.y-r.y)}function $_(i,e,t){return{x:e/i||0,y:t/i||0}}function ete(i,e){return Dl(e[0],e[1],Cl)/Dl(i[0],i[1],Cl)}function tte(i,e){return nf(e[1],e[0],Cl)+nf(i[1],i[0],Cl)}function rte(i,e){var t=i.lastInterval||e,r=e.timeStamp-t.timeStamp,n,s,o,a;if(e.eventType!==yt&&(r>Jee||t.velocity===void 0)){var l=e.deltaX-t.deltaX,h=e.deltaY-t.deltaY,d=$_(r,l,h);s=d.x,o=d.y,n=ki(d.x)>ki(d.y)?d.x:d.y,a=b_(l,h),i.lastInterval=e}else n=t.velocity,s=t.velocityX,o=t.velocityY,a=t.direction;e.velocity=n,e.velocityX=s,e.velocityY=o,e.direction=a}function ite(i,e){var t=i.session,r=e.pointers,n=r.length;t.firstInput||(t.firstInput=xb(e)),n>1&&!t.firstMultiple?t.firstMultiple=xb(e):n===1&&(t.firstMultiple=!1);var s=t.firstInput,o=t.firstMultiple,a=o?o.center:s.center,l=e.center=m_(r);e.timeStamp=bv(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=nf(a,l),e.distance=Dl(a,l),Qee(t,e),e.offsetDirection=b_(e.deltaX,e.deltaY);var h=$_(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=h.x,e.overallVelocityY=h.y,e.overallVelocity=ki(h.x)>ki(h.y)?h.x:h.y,e.scale=o?ete(o.pointers,r):1,e.rotation=o?tte(o.pointers,r):0,e.maxPointers=t.prevInput?e.pointers.length>t.prevInput.maxPointers?e.pointers.length:t.prevInput.maxPointers:e.pointers.length,rte(t,e);var d=i.element,u=e.srcEvent,c;u.composedPath?c=u.composedPath()[0]:u.path?c=u.path[0]:c=u.target,wv(c,d)&&(d=c),e.target=d}function nte(i,e,t){var r=t.pointers.length,n=t.changedPointers.length,s=e&ot&&r-n===0,o=e&(Ne|yt)&&r-n===0;t.isFirst=!!s,t.isFinal=!!o,s&&(i.session={}),t.eventType=e,ite(i,t),i.emit("hammer.input",t),i.recognize(t),i.session.prevInput=t}function Qs(i){return i.trim().split(/\s+/g)}function Rs(i,e,t){br(Qs(e),function(r){i.addEventListener(r,t,!1)})}function ks(i,e,t){br(Qs(e),function(r){i.removeEventListener(r,t,!1)})}function Pb(i){var e=i.ownerDocument||i;return e.defaultView||e.parentWindow||window}var vs=function(){function i(t,r){var n=this;this.manager=t,this.callback=r,this.element=t.element,this.target=t.options.inputTarget,this.domHandler=function(s){Nh(t.options.enable,[t])&&n.handler(s)},this.init()}var e=i.prototype;return e.handler=function(){},e.init=function(){this.evEl&&Rs(this.element,this.evEl,this.domHandler),this.evTarget&&Rs(this.target,this.evTarget,this.domHandler),this.evWin&&Rs(Pb(this.element),this.evWin,this.domHandler)},e.destroy=function(){this.evEl&&ks(this.element,this.evEl,this.domHandler),this.evTarget&&ks(this.target,this.evTarget,this.domHandler),this.evWin&&ks(Pb(this.element),this.evWin,this.domHandler)},i}();function Mi(i,e,t){if(i.indexOf&&!t)return i.indexOf(e);for(var r=0;rl[e]}):r=r.sort()),r}var ate={touchstart:ot,touchmove:qi,touchend:Ne,touchcancel:yt},lte="touchstart touchmove touchend touchcancel",Sv=function(i){Rt(e,i);function e(){var r;return e.prototype.evTarget=lte,r=i.apply(this,arguments)||this,r.targetIds={},r}var t=e.prototype;return t.handler=function(n){var s=ate[n.type],o=hte.call(this,n,s);o&&this.callback(this.manager,s,{pointers:o[0],changedPointers:o[1],pointerType:qo,srcEvent:n})},e}(vs);function hte(i,e){var t=eo(i.touches),r=this.targetIds;if(e&(ot|qi)&&t.length===1)return r[t[0].identifier]=!0,[t,t];var n,s,o=eo(i.changedTouches),a=[],l=this.target;if(s=t.filter(function(h){return wv(h.target,l)}),e===ot)for(n=0;n-1&&n.splice(a,1)};setTimeout(s,fte)}}function vte(i,e){i&ot?(this.primaryTouch=e.changedPointers[0].identifier,Db.call(this,e)):i&(Ne|yt)&&Db.call(this,e)}function pte(i){for(var e=i.srcEvent.clientX,t=i.srcEvent.clientY,r=0;r-1&&this.requireFail.splice(n,1),this},e.hasRequireFailures=function(){return this.requireFail.length>0},e.canRecognizeWith=function(r){return!!this.simultaneous[r.id]},e.emit=function(r){var n=this,s=this.state;function o(a){n.manager.emit(a,r)}s=Xr&&o(n.options.event+Ab(s))},e.tryEmit=function(r){if(this.canEmit())return this.emit(r);this.state=er},e.canEmit=function(){for(var r=0;rs.threshold&&l&s.direction},t.attrTest=function(n){return Vn.prototype.attrTest.call(this,n)&&(this.state&Dt||!(this.state&Dt)&&this.directionTest(n))},t.emit=function(n){this.pX=n.deltaX,this.pY=n.deltaY;var s=T_(n.direction);s&&(n.additionalEvent=this.options.event+s),i.prototype.emit.call(this,n)},e}(Vn),O_=function(i){Rt(e,i);function e(r){return r===void 0&&(r={}),i.call(this,Vt({event:"swipe",threshold:10,velocity:.3,direction:nr|xi,pointers:1},r))||this}var t=e.prototype;return t.getTouchAction=function(){return Tv.prototype.getTouchAction.call(this)},t.attrTest=function(n){var s=this.options.direction,o;return s&(nr|xi)?o=n.overallVelocity:s&nr?o=n.overallVelocityX:s&xi&&(o=n.overallVelocityY),i.prototype.attrTest.call(this,n)&&s&n.offsetDirection&&n.distance>this.options.threshold&&n.maxPointers===this.options.pointers&&ki(o)>this.options.velocity&&n.eventType&Ne},t.emit=function(n){var s=T_(n.offsetDirection);s&&this.manager.emit(this.options.event+s,n),this.manager.emit(this.options.event,n)},e}(Vn),I_=function(i){Rt(e,i);function e(r){return r===void 0&&(r={}),i.call(this,Vt({event:"pinch",threshold:0,pointers:2},r))||this}var t=e.prototype;return t.getTouchAction=function(){return[Ii]},t.attrTest=function(n){return i.prototype.attrTest.call(this,n)&&(Math.abs(n.scale-1)>this.options.threshold||this.state&Dt)},t.emit=function(n){if(n.scale!==1){var s=n.scale<1?"in":"out";n.additionalEvent=this.options.event+s}i.prototype.emit.call(this,n)},e}(Vn),x_=function(i){Rt(e,i);function e(r){return r===void 0&&(r={}),i.call(this,Vt({event:"rotate",threshold:0,pointers:2},r))||this}var t=e.prototype;return t.getTouchAction=function(){return[Ii]},t.attrTest=function(n){return i.prototype.attrTest.call(this,n)&&(Math.abs(n.rotation)>this.options.threshold||this.state&Dt)},e}(Vn),P_=function(i){Rt(e,i);function e(r){var n;return r===void 0&&(r={}),n=i.call(this,Vt({event:"press",pointers:1,time:251,threshold:9},r))||this,n._timer=null,n._input=null,n}var t=e.prototype;return t.getTouchAction=function(){return[f_]},t.process=function(n){var s=this,o=this.options,a=n.pointers.length===o.pointers,l=n.distanceo.time;if(this._input=n,!l||!a||n.eventType&(Ne|yt)&&!h)this.reset();else if(n.eventType&ot)this.reset(),this._timer=setTimeout(function(){s.state=$r,s.tryEmit()},o.time);else if(n.eventType&Ne)return $r;return er},t.reset=function(){clearTimeout(this._timer)},t.emit=function(n){this.state===$r&&(n&&n.eventType&Ne?this.manager.emit(this.options.event+"up",n):(this._input.timeStamp=bv(),this.manager.emit(this.options.event,this._input)))},e}(Zo),C_={domEvents:!1,touchAction:u_,enable:!0,inputTarget:null,inputClass:null,cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},Nb=[[x_,{enable:!1}],[I_,{enable:!1},["rotate"]],[O_,{direction:nr}],[Tv,{direction:nr},["swipe"]],[sf],[sf,{event:"doubletap",taps:2},["tap"]],[P_]],bte=1,Rb=2;function kb(i,e){var t=i.element;if(t.style){var r;br(i.options.cssProps,function(n,s){r=Ah(t.style,s),e?(i.oldCssProps[r]=t.style[r],t.style[r]=n):t.style[r]=i.oldCssProps[r]||""}),e||(i.oldCssProps={})}}function $te(i,e){var t=document.createEvent("Event");t.initEvent(i,!0,!0),t.gesture=e,e.target.dispatchEvent(t)}var Mb=function(){function i(t,r){var n=this;this.options=Ri({},C_,r||{}),this.options.inputTarget=this.options.inputTarget||t,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=t,this.input=gte(this),this.touchAction=new y_(this,this.options.touchAction),kb(this,!0),br(this.options.recognizers,function(s){var o=n.add(new s[0](s[1]));s[2]&&o.recognizeWith(s[2]),s[3]&&o.requireFailure(s[3])},this)}var e=i.prototype;return e.set=function(r){return Ri(this.options,r),r.touchAction&&this.touchAction.update(),r.inputTarget&&(this.input.destroy(),this.input.target=r.inputTarget,this.input.init()),this},e.stop=function(r){this.session.stopped=r?Rb:bte},e.recognize=function(r){var n=this.session;if(!n.stopped){this.touchAction.preventDefaults(r);var s,o=this.recognizers,a=n.curRecognizer;(!a||a&&a.state&$r)&&(n.curRecognizer=null,a=null);for(var l=0;l\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",o=window.console&&(window.console.warn||window.console.log);return o&&o.call(window.console,r,s),i.apply(this,arguments)}}var A_=D_(function(i,e,t){for(var r=Object.keys(e),n=0;n{const o=2091639*e+n*23283064365386963e-26;return e=t,t=r,r=o-(n=o|0)};return s.uint32=()=>s()*4294967296,s.fract53=()=>s()+(s()*2097152|0)*11102230246251565e-32,s.algorithm="Alea",s.seed=i,s.version="0.9",s}function Cte(){const i=Dte();let e=i(" "),t=i(" "),r=i(" ");for(let n=0;n>>0,n-=i,n*=i,i=n>>>0,n-=i,i+=n*4294967296}return(i>>>0)*23283064365386963e-26}}function Ate(){const i=()=>{};return{on:i,off:i,destroy:i,emit:i,get(){return{set:i}}}}const Ov=typeof window<"u"?window.Hammer||xte:function(){return Ate()};function tr(i){var e;this._cleanupQueue=[],this.active=!1,this._dom={container:i,overlay:document.createElement("div")},this._dom.overlay.classList.add("vis-overlay"),this._dom.container.appendChild(this._dom.overlay),this._cleanupQueue.push(()=>{this._dom.overlay.parentNode.removeChild(this._dom.overlay)});const t=Ov(this._dom.overlay);t.on("tap",O(e=this._onTapOverlay).call(e,this)),this._cleanupQueue.push(()=>{t.destroy()});const r=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];oe(r).call(r,n=>{t.on(n,s=>{s.srcEvent.stopPropagation()})}),document&&document.body&&(this._onClick=n=>{Nte(n.target,i)||this.deactivate()},document.body.addEventListener("click",this._onClick),this._cleanupQueue.push(()=>{document.body.removeEventListener("click",this._onClick)})),this._escListener=n=>{("key"in n?n.key==="Escape":n.keyCode===27)&&this.deactivate()}}rS(tr.prototype);tr.current=null;tr.prototype.destroy=function(){this.deactivate();for(const t of Ti(i=yr(e=this._cleanupQueue).call(e,0)).call(i)){var i,e;t()}};tr.prototype.activate=function(){tr.current&&tr.current.deactivate(),tr.current=this,this.active=!0,this._dom.overlay.style.display="none",this._dom.container.classList.add("vis-active"),this.emit("change"),this.emit("activate"),document.body.addEventListener("keydown",this._escListener)};tr.prototype.deactivate=function(){this.active=!1,this._dom.overlay.style.display="block",this._dom.container.classList.remove("vis-active"),document.body.removeEventListener("keydown",this._escListener),this.emit("change"),this.emit("deactivate")};tr.prototype._onTapOverlay=function(i){this.activate(),i.srcEvent.stopPropagation()};function Nte(i,e){for(;i;){if(i===e)return!0;i=i.parentNode}return!1}const Rte=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,kte=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,Mte=/^rgb\( *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *\)$/i,Fte=/^rgba\( *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *(1?\d{1,2}|2[0-4]\d|25[0-5]) *, *([01]|0?\.\d+) *\)$/i;function Mr(i){if(i)for(;i.hasChildNodes()===!0;){const e=i.firstChild;e&&(Mr(e),i.removeChild(e))}}function In(i){return i instanceof String||typeof i=="string"}function Bb(i){return typeof i=="object"&&i!==null}function Fi(i,e,t,r){let n=!1;r===!0&&(n=e[t]===null&&i[t]!==void 0),n?delete i[t]:i[t]=e[t]}function R_(i,e){let t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;for(const r in i)if(e[r]!==void 0)if(e[r]===null||typeof e[r]!="object")Fi(i,e,r,t);else{const n=i[r],s=e[r];Bb(n)&&Bb(s)&&R_(n,s,t)}}function ps(i,e,t){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(we(t))throw new TypeError("Arrays are not supported by deepExtend");for(let n=0;n3&&arguments[3]!==void 0?arguments[3]:!1;if(we(t))throw new TypeError("Arrays are not supported by deepExtend");for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&!Yr(i).call(i,n))if(t[n]&&t[n].constructor===Object)e[n]===void 0&&(e[n]={}),e[n].constructor===Object?le(e[n],t[n]):Fi(e,t,n,r);else if(we(t[n])){e[n]=[];for(let s=0;s2&&arguments[2]!==void 0?arguments[2]:!1,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;for(const s in e)if(Object.prototype.hasOwnProperty.call(e,s)||t===!0)if(typeof e[s]=="object"&&e[s]!==null&&mb(e[s])===Object.prototype)i[s]===void 0?i[s]=le({},e[s],t):typeof i[s]=="object"&&i[s]!==null&&mb(i[s])===Object.prototype?le(i[s],e[s],t):Fi(i,e,s,r);else if(we(e[s])){var n;i[s]=Zt(n=e[s]).call(n)}else Fi(i,e,s,r);return i}function Nl(i,e){return[...i,e]}function Bte(i){return Zt(i).call(i)}function jte(i){return i.getBoundingClientRect().left}function Lte(i){return i.getBoundingClientRect().top}function X(i,e){if(we(i)){const t=i.length;for(let r=0;r3&&arguments[3]!==void 0?arguments[3]:{};const n=function(f){return f!=null},s=function(f){return f!==null&&typeof f=="object"},o=function(f){for(const v in f)if(Object.prototype.hasOwnProperty.call(f,v))return!1;return!0};if(!s(i))throw new Error("Parameter mergeTarget must be an object");if(!s(e))throw new Error("Parameter options must be an object");if(!n(t))throw new Error("Parameter option must have a value");if(!s(r))throw new Error("Parameter globalOptions must be an object");const a=function(f,v,g){s(f[g])||(f[g]={});const y=v[g],p=f[g];for(const m in y)Object.prototype.hasOwnProperty.call(y,m)&&(p[m]=y[m])},l=e[t],d=s(r)&&!o(r)?r[t]:void 0,u=d?d.enabled:void 0;if(l===void 0)return;if(typeof l=="boolean"){s(i[t])||(i[t]={}),i[t].enabled=l;return}if(l===null&&!s(i[t]))if(n(d))i[t]=Oi(d);else return;if(!s(l))return;let c=!0;l.enabled!==void 0?c=l.enabled:u!==void 0&&(c=d.enabled),a(i,e,t),i[t].enabled=c}const Vte={linear(i){return i},easeInQuad(i){return i*i},easeOutQuad(i){return i*(2-i)},easeInOutQuad(i){return i<.5?2*i*i:-1+(4-2*i)*i},easeInCubic(i){return i*i*i},easeOutCubic(i){return--i*i*i+1},easeInOutCubic(i){return i<.5?4*i*i*i:(i-1)*(2*i-2)*(2*i-2)+1},easeInQuart(i){return i*i*i*i},easeOutQuart(i){return 1- --i*i*i*i},easeInOutQuart(i){return i<.5?8*i*i*i*i:1-8*--i*i*i*i},easeInQuint(i){return i*i*i*i*i},easeOutQuint(i){return 1+--i*i*i*i*i},easeInOutQuint(i){return i<.5?16*i*i*i*i*i:1+16*--i*i*i*i*i}};function Fr(i,e){let t;we(e)||(e=[e]);for(const r of i)if(r){t=r[e[0]];for(let n=1;n0&&arguments[0]!==void 0?arguments[0]:1;this.pixelRatio=e,this.generated=!1,this.centerCoordinates={x:289/2,y:289/2},this.r=289*.49,this.color={r:255,g:255,b:255,a:1},this.hueCircle=void 0,this.initialColor={r:255,g:255,b:255,a:1},this.previousColor=void 0,this.applied=!1,this.updateCallback=()=>{},this.closeCallback=()=>{},this._create()}insertTo(e){this.hammer!==void 0&&(this.hammer.destroy(),this.hammer=void 0),this.container=e,this.container.appendChild(this.frame),this._bindHammer(),this._setSize()}setUpdateCallback(e){if(typeof e=="function")this.updateCallback=e;else throw new Error("Function attempted to set as colorPicker update callback is not a function.")}setCloseCallback(e){if(typeof e=="function")this.closeCallback=e;else throw new Error("Function attempted to set as colorPicker closing callback is not a function.")}_isColorString(e){if(typeof e=="string")return Wte[e]}setColor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(e==="none")return;let r;const n=this._isColorString(e);if(n!==void 0&&(e=n),In(e)===!0){if(F_(e)===!0){const s=e.substr(4).substr(0,e.length-5).split(",");r={r:s[0],g:s[1],b:s[2],a:1}}else if(Hte(e)===!0){const s=e.substr(5).substr(0,e.length-6).split(",");r={r:s[0],g:s[1],b:s[2],a:s[3]}}else if(M_(e)===!0){const s=Iv(e);r={r:s.r,g:s.g,b:s.b,a:1}}}else if(e instanceof Object&&e.r!==void 0&&e.g!==void 0&&e.b!==void 0){const s=e.a!==void 0?e.a:"1.0";r={r:e.r,g:e.g,b:e.b,a:s}}if(r===void 0)throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: "+Ko(e));this._setColor(r,t)}show(){this.closeCallback!==void 0&&(this.closeCallback(),this.closeCallback=void 0),this.applied=!1,this.frame.style.display="block",this._generateHueCircle()}_hide(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0)===!0&&(this.previousColor=Ae({},this.color)),this.applied===!0&&this.updateCallback(this.initialColor),this.frame.style.display="none",ir(()=>{this.closeCallback!==void 0&&(this.closeCallback(),this.closeCallback=void 0)},0)}_save(){this.updateCallback(this.color),this.applied=!1,this._hide()}_apply(){this.applied=!0,this.updateCallback(this.color),this._updatePicker(this.color)}_loadLast(){this.previousColor!==void 0?this.setColor(this.previousColor,!1):alert("There is no last color to load...")}_setColor(e){(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0)===!0&&(this.initialColor=Ae({},e)),this.color=e;const r=Is(e.r,e.g,e.b),n=2*Math.PI,s=this.r*r.s,o=this.centerCoordinates.x+s*Math.sin(n*r.h),a=this.centerCoordinates.y+s*Math.cos(n*r.h);this.colorPickerSelector.style.left=o-.5*this.colorPickerSelector.clientWidth+"px",this.colorPickerSelector.style.top=a-.5*this.colorPickerSelector.clientHeight+"px",this._updatePicker(e)}_setOpacity(e){this.color.a=e/100,this._updatePicker(this.color)}_setBrightness(e){const t=Is(this.color.r,this.color.g,this.color.b);t.v=e/100;const r=nl(t.h,t.s,t.v);r.a=this.color.a,this.color=r,this._updatePicker()}_updatePicker(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.color;const t=Is(e.r,e.g,e.b),r=this.colorPickerCanvas.getContext("2d");this.pixelRation===void 0&&(this.pixelRatio=(window.devicePixelRatio||1)/(r.webkitBackingStorePixelRatio||r.mozBackingStorePixelRatio||r.msBackingStorePixelRatio||r.oBackingStorePixelRatio||r.backingStorePixelRatio||1)),r.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);const n=this.colorPickerCanvas.clientWidth,s=this.colorPickerCanvas.clientHeight;r.clearRect(0,0,n,s),r.putImageData(this.hueCircle,0,0),r.fillStyle="rgba(0,0,0,"+(1-t.v)+")",r.circle(this.centerCoordinates.x,this.centerCoordinates.y,this.r),Go(r).call(r),this.brightnessRange.value=100*t.v,this.opacityRange.value=100*e.a,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}_setSize(){this.colorPickerCanvas.style.width="100%",this.colorPickerCanvas.style.height="100%",this.colorPickerCanvas.width=289*this.pixelRatio,this.colorPickerCanvas.height=289*this.pixelRatio}_create(){var e,t,r,n;if(this.frame=document.createElement("div"),this.frame.className="vis-color-picker",this.colorPickerDiv=document.createElement("div"),this.colorPickerSelector=document.createElement("div"),this.colorPickerSelector.className="vis-selector",this.colorPickerDiv.appendChild(this.colorPickerSelector),this.colorPickerCanvas=document.createElement("canvas"),this.colorPickerDiv.appendChild(this.colorPickerCanvas),this.colorPickerCanvas.getContext){const o=this.colorPickerCanvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(o.webkitBackingStorePixelRatio||o.mozBackingStorePixelRatio||o.msBackingStorePixelRatio||o.oBackingStorePixelRatio||o.backingStorePixelRatio||1),this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{const o=document.createElement("DIV");o.style.color="red",o.style.fontWeight="bold",o.style.padding="10px",o.innerText="Error: your browser does not support HTML canvas",this.colorPickerCanvas.appendChild(o)}this.colorPickerDiv.className="vis-color",this.opacityDiv=document.createElement("div"),this.opacityDiv.className="vis-opacity",this.brightnessDiv=document.createElement("div"),this.brightnessDiv.className="vis-brightness",this.arrowDiv=document.createElement("div"),this.arrowDiv.className="vis-arrow",this.opacityRange=document.createElement("input");try{this.opacityRange.type="range",this.opacityRange.min="0",this.opacityRange.max="100"}catch{}this.opacityRange.value="100",this.opacityRange.className="vis-range",this.brightnessRange=document.createElement("input");try{this.brightnessRange.type="range",this.brightnessRange.min="0",this.brightnessRange.max="100"}catch{}this.brightnessRange.value="100",this.brightnessRange.className="vis-range",this.opacityDiv.appendChild(this.opacityRange),this.brightnessDiv.appendChild(this.brightnessRange);const s=this;this.opacityRange.onchange=function(){s._setOpacity(this.value)},this.opacityRange.oninput=function(){s._setOpacity(this.value)},this.brightnessRange.onchange=function(){s._setBrightness(this.value)},this.brightnessRange.oninput=function(){s._setBrightness(this.value)},this.brightnessLabel=document.createElement("div"),this.brightnessLabel.className="vis-label vis-brightness",this.brightnessLabel.innerText="brightness:",this.opacityLabel=document.createElement("div"),this.opacityLabel.className="vis-label vis-opacity",this.opacityLabel.innerText="opacity:",this.newColorDiv=document.createElement("div"),this.newColorDiv.className="vis-new-color",this.newColorDiv.innerText="new",this.initialColorDiv=document.createElement("div"),this.initialColorDiv.className="vis-initial-color",this.initialColorDiv.innerText="initial",this.cancelButton=document.createElement("div"),this.cancelButton.className="vis-button vis-cancel",this.cancelButton.innerText="cancel",this.cancelButton.onclick=O(e=this._hide).call(e,this,!1),this.applyButton=document.createElement("div"),this.applyButton.className="vis-button vis-apply",this.applyButton.innerText="apply",this.applyButton.onclick=O(t=this._apply).call(t,this),this.saveButton=document.createElement("div"),this.saveButton.className="vis-button vis-save",this.saveButton.innerText="save",this.saveButton.onclick=O(r=this._save).call(r,this),this.loadButton=document.createElement("div"),this.loadButton.className="vis-button vis-load",this.loadButton.innerText="load last",this.loadButton.onclick=O(n=this._loadLast).call(n,this),this.frame.appendChild(this.colorPickerDiv),this.frame.appendChild(this.arrowDiv),this.frame.appendChild(this.brightnessLabel),this.frame.appendChild(this.brightnessDiv),this.frame.appendChild(this.opacityLabel),this.frame.appendChild(this.opacityDiv),this.frame.appendChild(this.newColorDiv),this.frame.appendChild(this.initialColorDiv),this.frame.appendChild(this.cancelButton),this.frame.appendChild(this.applyButton),this.frame.appendChild(this.saveButton),this.frame.appendChild(this.loadButton)}_bindHammer(){this.drag={},this.pinch={},this.hammer=new Ov(this.colorPickerCanvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.on("hammer.input",e=>{e.isFirst&&this._moveSelector(e)}),this.hammer.on("tap",e=>{this._moveSelector(e)}),this.hammer.on("panstart",e=>{this._moveSelector(e)}),this.hammer.on("panmove",e=>{this._moveSelector(e)}),this.hammer.on("panend",e=>{this._moveSelector(e)})}_generateHueCircle(){if(this.generated===!1){const e=this.colorPickerCanvas.getContext("2d");this.pixelRation===void 0&&(this.pixelRatio=(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)),e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);const t=this.colorPickerCanvas.clientWidth,r=this.colorPickerCanvas.clientHeight;e.clearRect(0,0,t,r);let n,s,o,a;this.centerCoordinates={x:t*.5,y:r*.5},this.r=.49*t;const l=2*Math.PI/360,h=1/360,d=1/this.r;let u;for(o=0;o<360;o++)for(a=0;a3&&arguments[3]!==void 0?arguments[3]:1,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:()=>!1;this.parent=e,this.changedOptions=[],this.container=t,this.allowCreation=!1,this.hideOption=s,this.options={},this.initialized=!1,this.popupCounter=0,this.defaultOptions={enabled:!1,filter:!0,container:void 0,showButton:!0},Ae(this.options,this.defaultOptions),this.configureOptions=r,this.moduleOptions={},this.domElements=[],this.popupDiv={},this.popupLimit=5,this.popupHistory={},this.colorPicker=new Ute(n),this.wrapper=void 0}setOptions(e){if(e!==void 0){this.popupHistory={},this._removePopup();let t=!0;if(typeof e=="string")this.options.filter=e;else if(we(e))this.options.filter=e.join();else if(typeof e=="object"){if(e==null)throw new TypeError("options cannot be null");e.container!==void 0&&(this.options.container=e.container),pt(e)!==void 0&&(this.options.filter=pt(e)),e.showButton!==void 0&&(this.options.showButton=e.showButton),e.enabled!==void 0&&(t=e.enabled)}else typeof e=="boolean"?(this.options.filter=!0,t=e):typeof e=="function"&&(this.options.filter=e,t=!0);pt(this.options)===!1&&(t=!1),this.options.enabled=t}this._clean()}setModuleOptions(e){this.moduleOptions=e,this.options.enabled===!0&&(this._clean(),this.options.container!==void 0&&(this.container=this.options.container),this._create())}_create(){this._clean(),this.changedOptions=[];const e=pt(this.options);let t=0,r=!1;for(const n in this.configureOptions)Object.prototype.hasOwnProperty.call(this.configureOptions,n)&&(this.allowCreation=!1,r=!1,typeof e=="function"?(r=e(n,[]),r=r||this._handleObject(this.configureOptions[n],[n],!0)):(e===!0||ee(e).call(e,n)!==-1)&&(r=!0),r!==!1&&(this.allowCreation=!0,t>0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),t++);this._makeButton(),this._push()}_push(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(let e=0;e1?t-1:0),n=1;n{s.appendChild(o)}),this.domElements.push(s),this.domElements.length}return 0}_makeHeader(e){const t=document.createElement("div");t.className="vis-configuration vis-config-header",t.innerText=e,this._makeItem([],t)}_makeLabel(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;const n=document.createElement("div");if(n.className="vis-configuration vis-config-label vis-config-s"+t.length,r===!0){for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(lf("i","b",e))}else n.innerText=e+":";return n}_makeDropdown(e,t,r){const n=document.createElement("select");n.className="vis-configuration vis-config-select";let s=0;t!==void 0&&ee(e).call(e,t)!==-1&&(s=ee(e).call(e,t));for(let l=0;lo&&o!==1&&(l.max=Math.ceil(t*1.2),d=l.max,h="range increased"),l.value=t):l.value=n;const u=document.createElement("input");u.className="vis-configuration vis-config-rangeinput",u.value=l.value;const c=this;l.onchange=function(){u.value=this.value,c._update(Number(this.value),r)},l.oninput=function(){u.value=this.value};const f=this._makeLabel(r[r.length-1],r),v=this._makeItem(r,f,l,u);h!==""&&this.popupHistory[v]!==d&&(this.popupHistory[v]=d,this._setupPopup(h,v))}_makeButton(){if(this.options.showButton===!0){const e=document.createElement("div");e.className="vis-configuration vis-config-button",e.innerText="generate options",e.onclick=()=>{this._printOptions()},e.onmouseover=()=>{e.className="vis-configuration vis-config-button hover"},e.onmouseout=()=>{e.className="vis-configuration vis-config-button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-configuration vis-config-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(e)}}_setupPopup(e,t){if(this.initialized===!0&&this.allowCreation===!0&&this.popupCounter{this._removePopup()},this.popupCounter+=1,this.popupDiv={html:r,index:t}}}_removePopup(){this.popupDiv.html!==void 0&&(this.popupDiv.html.parentNode.removeChild(this.popupDiv.html),clearTimeout(this.popupDiv.hideTimeout),clearTimeout(this.popupDiv.deleteTimeout),this.popupDiv={})}_showPopupIfNeeded(){if(this.popupDiv.html!==void 0){const t=this.domElements[this.popupDiv.index].getBoundingClientRect();this.popupDiv.html.style.left=t.left+"px",this.popupDiv.html.style.top=t.top-30+"px",document.body.appendChild(this.popupDiv.html),this.popupDiv.hideTimeout=ir(()=>{this.popupDiv.html.style.opacity=0},1500),this.popupDiv.deleteTimeout=ir(()=>{this._removePopup()},1800)}}_makeCheckbox(e,t,r){const n=document.createElement("input");n.type="checkbox",n.className="vis-configuration vis-config-checkbox",n.checked=e,t!==void 0&&(n.checked=t,t!==e&&(typeof e=="object"?t!==e.enabled&&this.changedOptions.push({path:r,value:t}):this.changedOptions.push({path:r,value:t})));const s=this;n.onchange=function(){s._update(this.checked,r)};const o=this._makeLabel(r[r.length-1],r);this._makeItem(r,o,n)}_makeTextInput(e,t,r){const n=document.createElement("input");n.type="text",n.className="vis-configuration vis-config-text",n.value=t,t!==e&&this.changedOptions.push({path:r,value:t});const s=this;n.onchange=function(){s._update(this.value,r)};const o=this._makeLabel(r[r.length-1],r);this._makeItem(r,o,n)}_makeColorField(e,t,r){const n=e[1],s=document.createElement("div");t=t===void 0?n:t,t!=="none"?(s.className="vis-configuration vis-config-colorBlock",s.style.backgroundColor=t):s.className="vis-configuration vis-config-colorBlock none",t=t===void 0?n:t,s.onclick=()=>{this._showColorPicker(t,s,r)};const o=this._makeLabel(r[r.length-1],r);this._makeItem(r,o,s)}_showColorPicker(e,t,r){t.onclick=function(){},this.colorPicker.insertTo(t),this.colorPicker.show(),this.colorPicker.setColor(e),this.colorPicker.setUpdateCallback(n=>{const s="rgba("+n.r+","+n.g+","+n.b+","+n.a+")";t.style.backgroundColor=s,this._update(s,r)}),this.colorPicker.setCloseCallback(()=>{t.onclick=()=>{this._showColorPicker(e,t,r)}})}_handleObject(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=!1;const s=pt(this.options);let o=!1;for(const a in e)if(Object.prototype.hasOwnProperty.call(e,a)){n=!0;const l=e[a],h=Nl(t,a);if(typeof s=="function"&&(n=s(a,t),n===!1&&!we(l)&&typeof l!="string"&&typeof l!="boolean"&&l instanceof Object&&(this.allowCreation=!1,n=this._handleObject(l,h,!0),this.allowCreation=r===!1)),n!==!1){o=!0;const d=this._getValue(h);if(we(l))this._handleArray(l,d,h);else if(typeof l=="string")this._makeTextInput(l,d,h);else if(typeof l=="boolean")this._makeCheckbox(l,d,h);else if(l instanceof Object){if(!this.hideOption(t,a,this.moduleOptions))if(l.enabled!==void 0){const u=Nl(h,"enabled"),c=this._getValue(u);if(c===!0){const f=this._makeLabel(a,h,!0);this._makeItem(h,f),o=this._handleObject(l,h)||o}else this._makeCheckbox(l,c,h)}else{const u=this._makeLabel(a,h,!0);this._makeItem(h,u),o=this._handleObject(l,h)||o}}else console.error("dont know how to handle",l,a,h)}}return o}_handleArray(e,t,r){typeof e[0]=="string"&&e[0]==="color"?(this._makeColorField(e,t,r),e[1]!==t&&this.changedOptions.push({path:r,value:t})):typeof e[0]=="string"?(this._makeDropdown(e,t,r),e[0]!==t&&this.changedOptions.push({path:r,value:t})):typeof e[0]=="number"&&(this._makeRange(e,t,r),e[0]!==t&&this.changedOptions.push({path:r,value:Number(t)}))}_update(e,t){const r=this._constructOptions(e,t);this.parent.body&&this.parent.body.emitter&&this.parent.body.emitter.emit&&this.parent.body.emitter.emit("configChange",r),this.initialized=!0,this.parent.setOptions(r)}_constructOptions(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=r;e=e==="true"?!0:e,e=e==="false"?!1:e;for(let s=0;ss-this.padding&&(l=!0),l?o=this.x-r:o=this.x,h?a=this.y-t:a=this.y}else a=this.y-t,a+t+this.padding>n&&(a=n-t-this.padding),as&&(o=s-r-this.padding),os.distance?l=" in "+me.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+me.printLocation(s.path,s.closestMatch,""):n.distance<=o?l='. Did you mean "'+n.closestMatch+'"?'+me.printLocation(n.path,e):l=". Did you mean one of these: "+me.print($e(t))+me.printLocation(r,e),console.error('%cUnknown option detected: "'+e+'"'+l,hf),$s=!0}static findInOptions(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,s=1e9,o="",a=[];const l=e.toLowerCase();let h;for(const u in t){let c;if(t[u].__type__!==void 0&&n===!0){const f=me.findInOptions(e,t[u],Nl(r,u));s>f.distance&&(o=f.closestMatch,a=f.path,s=f.distance,h=f.indexMatch)}else{var d;ee(d=u.toLowerCase()).call(d,l)!==-1&&(h=u),c=me.levenshteinDistance(e,u),s>c&&(o=u,a=Bte(r),s=c)}}return{closestMatch:o,path:a,distance:s,indexMatch:h}}static printLocation(e,t){let n=` `+(arguments.length>2&&arguments[2]!==void 0?arguments[2]:`Problem value found at: `)+`options = { `;for(let s=0;s":!0,"--":!0},zr="",Wn=0,Y="",j="",ct=rt.NULL;function ere(){Wn=0,Y=zr.charAt(0)}function Le(){Wn++,Y=zr.charAt(Wn)}function dn(){return zr.charAt(Wn+1)}function zb(i){var e=i.charCodeAt(0);return e<47?e===35||e===46:e<59?e>47:e<91?e>64:e<96?e===95:e<123?e>96:!1}function ei(i,e){if(i||(i={}),e)for(var t in e)e.hasOwnProperty(t)&&(i[t]=e[t]);return i}function tre(i,e,t){for(var r=e.split("."),n=i;r.length;){var s=r.shift();r.length?(n[s]||(n[s]={}),n=n[s]):n[s]=t}}function L_(i,e){for(var t,r,n=null,s=[i],o=i;o.parent;)s.push(o.parent),o=o.parent;if(o.nodes){for(t=0,r=o.nodes.length;t=0;t--){var a,l=s[t];l.nodes||(l.nodes=[]),ee(a=l.nodes).call(a,n)===-1&&l.nodes.push(n)}e.attr&&(n.attr=ei(n.attr,e.attr))}function rre(i,e){if(i.edges||(i.edges=[]),i.edges.push(e),i.edge){var t=ei({},i.edge);e.attr=ei(t,e.attr)}}function z_(i,e,t,r,n){var s={from:e,to:t,type:r};return i.edge&&(s.attr=ei({},i.edge)),s.attr=ei(s.attr||{},n),n!=null&&n.hasOwnProperty("arrows")&&n.arrows!=null&&(s.arrows={to:{enabled:!0,type:n.arrows.type}},n.arrows=null),s}function he(){for(ct=rt.NULL,j="";Y===" "||Y===" "||Y===` `||Y==="\r";)Le();do{var i=!1;if(Y==="#"){for(var e=Wn-1;zr.charAt(e)===" "||zr.charAt(e)===" ";)e--;if(zr.charAt(e)===` `||zr.charAt(e)===""){for(;Y!=""&&Y!=` `;)Le();i=!0}}if(Y==="/"&&dn()==="/"){for(;Y!=""&&Y!=` `;)Le();i=!0}if(Y==="/"&&dn()==="*"){for(;Y!="";)if(Y==="*"&&dn()==="/"){Le(),Le();break}else Le();i=!0}for(;Y===" "||Y===" "||Y===` `||Y==="\r";)Le()}while(i);if(Y===""){ct=rt.DELIMITER;return}var t=Y+dn();if(Lb[t]){ct=rt.DELIMITER,j=t,Le(),Le();return}if(Lb[Y]){ct=rt.DELIMITER,j=Y,Le();return}if(zb(Y)||Y==="-"){for(j+=Y,Le();zb(Y);)j+=Y,Le();j==="false"?j=!1:j==="true"?j=!0:isNaN(Number(j))||(j=Number(j)),ct=rt.IDENTIFIER;return}if(Y==='"'){for(Le();Y!=""&&(Y!='"'||Y==='"'&&dn()==='"');)Y==='"'?(j+=Y,Le()):Y==="\\"&&dn()==="n"?(j+=` `,Le()):j+=Y,Le();if(Y!='"')throw it('End of string " expected');Le(),ct=rt.IDENTIFIER;return}for(ct=rt.UNKNOWN;Y!="";)j+=Y,Le();throw new SyntaxError('Syntax error in part "'+U_(j,30)+'"')}function ire(){var i={};if(ere(),he(),j==="strict"&&(i.strict=!0,he()),(j==="graph"||j==="digraph")&&(i.type=j,he()),ct===rt.IDENTIFIER&&(i.id=j,he()),j!="{")throw it("Angle bracket { expected");if(he(),H_(i),j!="}")throw it("Angle bracket } expected");if(he(),j!=="")throw it("End of file expected");return he(),delete i.node,delete i.edge,delete i.graph,i}function H_(i){for(;j!==""&&j!="}";)nre(i),j===";"&&he()}function nre(i){var e=V_(i);if(e){W_(i,e);return}var t=sre(i);if(!t){if(ct!=rt.IDENTIFIER)throw it("Identifier expected");var r=j;if(he(),j==="="){if(he(),ct!=rt.IDENTIFIER)throw it("Identifier expected");i[r]=j,he()}else ore(i,r)}}function V_(i){var e=null;if(j==="subgraph"&&(e={},e.type="subgraph",he(),ct===rt.IDENTIFIER&&(e.id=j,he())),j==="{"){if(he(),e||(e={}),e.parent=i,e.node=i.node,e.edge=i.edge,e.graph=i.graph,H_(e),j!="}")throw it("Angle bracket } expected");he(),delete e.node,delete e.edge,delete e.graph,delete e.parent,i.subgraphs||(i.subgraphs=[]),i.subgraphs.push(e)}return e}function sre(i){return j==="node"?(he(),i.node=Ms(),"node"):j==="edge"?(he(),i.edge=Ms(),"edge"):j==="graph"?(he(),i.graph=Ms(),"graph"):null}function ore(i,e){var t={id:e},r=Ms();r&&(t.attr=r),L_(i,t),W_(i,e)}function W_(i,e){for(;j==="->"||j==="--";){var t,r=j;he();var n=V_(i);if(n)t=n;else{if(ct!=rt.IDENTIFIER)throw it("Identifier or subgraph expected");t=j,L_(i,{id:t}),he()}var s=Ms(),o=z_(i,e,t,r,s);rre(i,o),e=t}}function Ms(){for(var i,e=null,t={dashed:!0,solid:!1,dotted:[1,5]},r={dot:"circle",box:"box",crow:"crow",curve:"curve",icurve:"inv_curve",normal:"triangle",inv:"inv_triangle",diamond:"diamond",tee:"bar",vee:"vee"},n=new Array,s=new Array;j==="[";){for(he(),e={};j!==""&&j!="]";){if(ct!=rt.IDENTIFIER)throw it("Attribute name expected");var o=j;if(he(),j!="=")throw it("Equal sign = expected");if(he(),ct!=rt.IDENTIFIER)throw it("Attribute value expected");var a=j;o==="style"&&(a=t[a]);var l;o==="arrowhead"&&(l=r[a],o="arrows",a={to:{enabled:!0,type:l}}),o==="arrowtail"&&(l=r[a],o="arrows",a={from:{enabled:!0,type:l}}),n.push({attr:e,name:o,value:a}),s.push(o),he(),j==","&&he()}if(j!="]")throw it("Bracket ] expected");he()}if(Yr(s).call(s,"dir")){var h={};for(h.arrows={},i=0;i"&&(a.arrows="to"),a};oe(n=e.edges).call(n,function(o){var a,l;if(o.from instanceof Object?a=o.from.nodes:a={id:o.from},o.to instanceof Object?l=o.to.nodes:l={id:o.to},o.from instanceof Object&&o.from.edges){var h;oe(h=o.from.edges).call(h,function(u){var c=s(u);t.edges.push(c)})}if(are(a,l,function(u,c){var f=z_(t,u.id,c.id,o.type,o.attr),v=s(f);t.edges.push(v)}),o.to instanceof Object&&o.to.edges){var d;oe(d=o.to.edges).call(d,function(u){var c=s(u);t.edges.push(c)})}})}return e.attr&&(t.options=e.attr),t}function hre(i,e){var t;const r={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};e!=null&&(e.fixed!=null&&(r.nodes.fixed=e.fixed),e.parseColor!=null&&(r.nodes.parseColor=e.parseColor),e.inheritColor!=null&&(r.edges.inheritColor=e.inheritColor));const n=i.edges,s=Ln(n).call(n,a=>{const l={from:a.source,id:a.id,to:a.target};return a.attributes!=null&&(l.attributes=a.attributes),a.label!=null&&(l.label=a.label),a.attributes!=null&&a.attributes.title!=null&&(l.title=a.attributes.title),a.type==="Directed"&&(l.arrows="to"),a.color&&r.edges.inheritColor===!1&&(l.color=a.color),l});return{nodes:Ln(t=i.nodes).call(t,a=>{const l={id:a.id,fixed:r.nodes.fixed&&a.x!=null&&a.y!=null};return a.attributes!=null&&(l.attributes=a.attributes),a.label!=null&&(l.label=a.label),a.size!=null&&(l.size=a.size),a.attributes!=null&&a.attributes.title!=null&&(l.title=a.attributes.title),a.title!=null&&(l.title=a.title),a.x!=null&&(l.x=a.x),a.y!=null&&(l.y=a.y),a.color!=null&&(r.nodes.parseColor===!0?l.color=a.color:l.color={background:a.color,border:a.color,highlight:{background:a.color,border:a.color},hover:{background:a.color,border:a.color}}),l}),edges:s}}const dre={addDescription:"Click in an empty space to place a new node.",addEdge:"Add Edge",addNode:"Add Node",back:"Back",close:"Close",createEdgeError:"Cannot link edges to a cluster.",del:"Delete selected",deleteClusterError:"Clusters cannot be deleted.",edgeDescription:"Click on a node and drag the edge to another node to connect them.",edit:"Edit",editClusterError:"Clusters cannot be edited.",editEdge:"Edit Edge",editEdgeDescription:"Click on the control points and drag them to a node to connect to it.",editNode:"Edit Node"},cre={addDescription:"Klicke auf eine freie Stelle, um einen neuen Knoten zu plazieren.",addEdge:"Kante hinzufügen",addNode:"Knoten hinzufügen",back:"Zurück",close:"Schließen",createEdgeError:"Es ist nicht möglich, Kanten mit Clustern zu verbinden.",del:"Lösche Auswahl",deleteClusterError:"Cluster können nicht gelöscht werden.",edgeDescription:"Klicke auf einen Knoten und ziehe die Kante zu einem anderen Knoten, um diese zu verbinden.",edit:"Editieren",editClusterError:"Cluster können nicht editiert werden.",editEdge:"Kante editieren",editEdgeDescription:"Klicke auf die Verbindungspunkte und ziehe diese auf einen Knoten, um sie zu verbinden.",editNode:"Knoten editieren"},ure={addDescription:"Haga clic en un lugar vacío para colocar un nuevo nodo.",addEdge:"Añadir arista",addNode:"Añadir nodo",back:"Atrás",close:"Cerrar",createEdgeError:"No se puede conectar una arista a un grupo.",del:"Eliminar selección",deleteClusterError:"No es posible eliminar grupos.",edgeDescription:"Haga clic en un nodo y arrastre la arista hacia otro nodo para conectarlos.",edit:"Editar",editClusterError:"No es posible editar grupos.",editEdge:"Editar arista",editEdgeDescription:"Haga clic en un punto de control y arrastrelo a un nodo para conectarlo.",editNode:"Editar nodo"},fre={addDescription:"Clicca per aggiungere un nuovo nodo",addEdge:"Aggiungi un vertice",addNode:"Aggiungi un nodo",back:"Indietro",close:"Chiudere",createEdgeError:"Non si possono collegare vertici ad un cluster",del:"Cancella la selezione",deleteClusterError:"I cluster non possono essere cancellati",edgeDescription:"Clicca su un nodo e trascinalo ad un altro nodo per connetterli.",edit:"Modifica",editClusterError:"I clusters non possono essere modificati.",editEdge:"Modifica il vertice",editEdgeDescription:"Clicca sui Punti di controllo e trascinali ad un nodo per connetterli.",editNode:"Modifica il nodo"},vre={addDescription:"Klik op een leeg gebied om een nieuwe node te maken.",addEdge:"Link toevoegen",addNode:"Node toevoegen",back:"Terug",close:"Sluiten",createEdgeError:"Kan geen link maken naar een cluster.",del:"Selectie verwijderen",deleteClusterError:"Clusters kunnen niet worden verwijderd.",edgeDescription:"Klik op een node en sleep de link naar een andere node om ze te verbinden.",edit:"Wijzigen",editClusterError:"Clusters kunnen niet worden aangepast.",editEdge:"Link wijzigen",editEdgeDescription:"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.",editNode:"Node wijzigen"},pre={addDescription:"Clique em um espaço em branco para adicionar um novo nó",addEdge:"Adicionar aresta",addNode:"Adicionar nó",back:"Voltar",close:"Fechar",createEdgeError:"Não foi possível linkar arestas a um cluster.",del:"Remover selecionado",deleteClusterError:"Clusters não puderam ser removidos.",edgeDescription:"Clique em um nó e arraste a aresta até outro nó para conectá-los",edit:"Editar",editClusterError:"Clusters não puderam ser editados.",editEdge:"Editar aresta",editEdgeDescription:"Clique nos pontos de controle e os arraste para um nó para conectá-los",editNode:"Editar nó"},gre={addDescription:"Кликните в свободное место, чтобы добавить новый узел.",addEdge:"Добавить ребро",addNode:"Добавить узел",back:"Назад",close:"Закрывать",createEdgeError:"Невозможно соединить ребра в кластер.",del:"Удалить выбранное",deleteClusterError:"Кластеры не могут быть удалены",edgeDescription:"Кликните на узел и протяните ребро к другому узлу, чтобы соединить их.",edit:"Редактировать",editClusterError:"Кластеры недоступны для редактирования.",editEdge:"Редактировать ребро",editEdgeDescription:"Кликните на контрольные точки и перетащите их в узел, чтобы подключиться к нему.",editNode:"Редактировать узел"},yre={addDescription:"单击空白处放置新节点。",addEdge:"添加连接线",addNode:"添加节点",back:"返回",close:"關閉",createEdgeError:"无法将连接线连接到群集。",del:"删除选定",deleteClusterError:"无法删除群集。",edgeDescription:"单击某个节点并将该连接线拖动到另一个节点以连接它们。",edit:"编辑",editClusterError:"无法编辑群集。",editEdge:"编辑连接线",editEdgeDescription:"单击控制节点并将它们拖到节点上连接。",editNode:"编辑节点"},mre={addDescription:"Kлікніть на вільне місце, щоб додати новий вузол.",addEdge:"Додати край",addNode:"Додати вузол",back:"Назад",close:"Закрити",createEdgeError:"Не можливо об'єднати краї в групу.",del:"Видалити обране",deleteClusterError:"Групи не можуть бути видалені.",edgeDescription:"Клікніть на вузол і перетягніть край до іншого вузла, щоб їх з'єднати.",edit:"Редагувати",editClusterError:"Групи недоступні для редагування.",editEdge:"Редагувати край",editEdgeDescription:"Клікніть на контрольні точки і перетягніть їх у вузол, щоб підключитися до нього.",editNode:"Редагувати вузол"},bre={addDescription:"Cliquez dans un endroit vide pour placer un nœud.",addEdge:"Ajouter un lien",addNode:"Ajouter un nœud",back:"Retour",close:"Fermer",createEdgeError:"Impossible de créer un lien vers un cluster.",del:"Effacer la sélection",deleteClusterError:"Les clusters ne peuvent pas être effacés.",edgeDescription:"Cliquez sur un nœud et glissez le lien vers un autre nœud pour les connecter.",edit:"Éditer",editClusterError:"Les clusters ne peuvent pas être édités.",editEdge:"Éditer le lien",editEdgeDescription:"Cliquez sur les points de contrôle et glissez-les pour connecter un nœud.",editNode:"Éditer le nœud"},$re={addDescription:"Kluknutím do prázdného prostoru můžete přidat nový vrchol.",addEdge:"Přidat hranu",addNode:"Přidat vrchol",back:"Zpět",close:"Zavřít",createEdgeError:"Nelze připojit hranu ke shluku.",del:"Smazat výběr",deleteClusterError:"Nelze mazat shluky.",edgeDescription:"Přetažením z jednoho vrcholu do druhého můžete spojit tyto vrcholy novou hranou.",edit:"Upravit",editClusterError:"Nelze upravovat shluky.",editEdge:"Upravit hranu",editEdgeDescription:"Přetažením kontrolního vrcholu hrany ji můžete připojit k jinému vrcholu.",editNode:"Upravit vrchol"};var wre=Object.freeze({__proto__:null,cn:yre,cs:$re,de:cre,en:dre,es:ure,fr:bre,it:fre,nl:vre,pt:pre,ru:gre,uk:mre});function Ere(i,e){try{const[r,n]=e.split(/[-_ /]/,2),s=r!=null?r.toLowerCase():null,o=n!=null?n.toUpperCase():null;if(s&&o){const a=s+"-"+o;if(Object.prototype.hasOwnProperty.call(i,a))return a;var t;console.warn(WZ(t="Unknown variant ".concat(o," of language ")).call(t,s,"."))}if(s){const a=s;if(Object.prototype.hasOwnProperty.call(i,a))return a;console.warn("Unknown language ".concat(s))}return console.warn("Unknown locale ".concat(e,", falling back to English.")),"en"}catch(r){return console.error(r),console.warn("Unexpected error while normalizing locale ".concat(e,", falling back to English.")),"en"}}class Sre{constructor(){this.NUM_ITERATIONS=4,this.image=new Image,this.canvas=document.createElement("canvas")}init(){if(this.initialized())return;this.src=this.image.src;const e=this.image.width,t=this.image.height;this.width=e,this.height=t;const r=Math.floor(t/2),n=Math.floor(t/4),s=Math.floor(t/8),o=Math.floor(t/16),a=Math.floor(e/2),l=Math.floor(e/4),h=Math.floor(e/8),d=Math.floor(e/16);this.canvas.width=3*l,this.canvas.height=r,this.coordinates=[[0,0,a,r],[a,0,l,n],[a,n,h,s],[5*h,n,d,o]],this._fillMipMap()}initialized(){return this.coordinates!==void 0}_fillMipMap(){const e=this.canvas.getContext("2d"),t=this.coordinates[0];e.drawImage(this.image,t[0],t[1],t[2],t[3]);for(let r=1;r2){t*=.5;let a=0;for(;t>2&&a=this.NUM_ITERATIONS&&(a=this.NUM_ITERATIONS-1);const l=this.coordinates[a];e.drawImage(this.canvas,l[0],l[1],l[2],l[3],r,n,s,o)}else e.drawImage(this.image,r,n,s,o)}}class _re{constructor(e){this.images={},this.imageBroken={},this.callback=e}_tryloadBrokenUrl(e,t,r){if(!(e===void 0||r===void 0)){if(t===void 0){console.warn("No broken url image defined");return}r.image.onerror=()=>{console.error("Could not load brokenImage:",t)},r.image.src=t}}_redrawWithImage(e){this.callback&&this.callback(e)}load(e,t){const r=this.images[e];if(r)return r;const n=new Sre;return this.images[e]=n,n.image.onload=()=>{this._fixImageCoordinates(n.image),n.init(),this._redrawWithImage(n)},n.image.onerror=()=>{console.error("Could not load image:",e),this._tryloadBrokenUrl(e,t,n)},n.image.src=e,n}_fixImageCoordinates(e){e.width===0&&(document.body.appendChild(e),e.width=e.offsetWidth,e.height=e.offsetHeight,document.body.removeChild(e))}}var K_={exports:{}},Tre=te,Ore=Tre(function(){if(typeof ArrayBuffer=="function"){var i=new ArrayBuffer(8);Object.isExtensible(i)&&Object.defineProperty(i,"a",{value:8})}}),Ire=te,xre=Ze,Pre=Ir,Vb=Ore,sl=Object.isExtensible,Cre=Ire(function(){sl(1)}),Dre=Cre||Vb?function(e){return!xre(e)||Vb&&Pre(e)==="ArrayBuffer"?!1:sl?sl(e):!0}:sl,Are=te,G_=!Are(function(){return Object.isExtensible(Object.preventExtensions({}))}),Nre=z,Rre=re,kre=ko,Mre=Ze,Pv=Ye,Fre=Tt.f,Wb=zo,Bre=_h,Cv=Dre,jre=yh,Lre=G_,q_=!1,_r=jre("meta"),zre=0,Dv=function(i){Fre(i,_r,{value:{objectID:"O"+zre++,weakData:{}}})},Hre=function(i,e){if(!Mre(i))return typeof i=="symbol"?i:(typeof i=="string"?"S":"P")+i;if(!Pv(i,_r)){if(!Cv(i))return"F";if(!e)return"E";Dv(i)}return i[_r].objectID},Vre=function(i,e){if(!Pv(i,_r)){if(!Cv(i))return!0;if(!e)return!1;Dv(i)}return i[_r].weakData},Wre=function(i){return Lre&&q_&&Cv(i)&&!Pv(i,_r)&&Dv(i),i},Ure=function(){Kre.enable=function(){},q_=!0;var i=Wb.f,e=Rre([].splice),t={};t[_r]=1,i(t).length&&(Wb.f=function(r){for(var n=i(r),s=0,o=n.length;su;u++)if(f=p(i[u]),f&&Gb(Yb,f))return f;return new ol(!1)}h=bie(i,d)}for(v=s?i.next:h.next;!(g=vie(v,h)).done;){try{f=p(g.value)}catch(m){qb(h,"throw",m)}if(typeof f=="object"&&f&&Gb(Yb,f))return f}return new ol(!1)},Eie=Me,Sie=TypeError,Nv=function(i,e){if(Eie(e,i))return i;throw new Sie("Incorrect invocation")},_ie=z,Tie=_e,Oie=kh,Iie=te,xie=ds,Pie=Av,Cie=Nv,Die=qe,Aie=Ze,Nie=os,Rie=cs,kie=Tt.f,Mie=ai.forEach,Fie=Be,X_=Gi,Bie=X_.set,jie=X_.getterFor,Rv=function(i,e,t){var r=i.indexOf("Map")!==-1,n=i.indexOf("Weak")!==-1,s=r?"set":"add",o=Tie[i],a=o&&o.prototype,l={},h;if(!Fie||!Die(o)||!(n||a.forEach&&!Iie(function(){new o().entries().next()})))h=t.getConstructor(e,i,r,s),Oie.enable();else{h=e(function(c,f){Bie(Cie(c,d),{type:i,collection:new o}),Nie(f)||Pie(f,c[s],{that:c,AS_ENTRIES:r})});var d=h.prototype,u=jie(i);Mie(["add","clear","delete","forEach","get","has","set","keys","values","entries"],function(c){var f=c==="add"||c==="set";c in a&&!(n&&c==="clear")&&xie(d,c,function(v,g){var y=u(this).collection;if(!f&&n&&!Aie(v))return c==="get"?void 0:!1;var p=y[c](v===0?0:v,g);return f?this:p})}),n||kie(d,"size",{configurable:!0,get:function(){return u(this).collection.size}})}return Rie(h,i,!1,!0),l[i]=h,_ie({global:!0,forced:!0},l),n||t.setStrong(h,i,r),h},Lie=Ho,kv=function(i,e,t){for(var r in e)t&&t.unsafe&&i[r]?i[r]=e[r]:Lie(i,r,e[r],t);return i},zie=Kt,Hie=cv,Vie=Pe,Wie=Be,Xb=Vie("species"),Uie=function(i){var e=zie(i);Wie&&e&&!e[Xb]&&Hie(e,Xb,{configurable:!0,get:function(){return this}})},Kie=Lo,Gie=cv,Jb=kv,qie=bh,Yie=Nv,Xie=os,Jie=Av,Zie=gv,Ba=yv,Qie=Uie,ws=Be,Zb=kh.fastKey,J_=Gi,Qb=J_.set,Uc=J_.getterFor,Z_={getConstructor:function(i,e,t,r){var n=i(function(h,d){Yie(h,s),Qb(h,{type:e,index:Kie(null),first:void 0,last:void 0,size:0}),ws||(h.size=0),Xie(d)||Jie(d,h[r],{that:h,AS_ENTRIES:t})}),s=n.prototype,o=Uc(e),a=function(h,d,u){var c=o(h),f=l(h,d),v,g;return f?f.value=u:(c.last=f={index:g=Zb(d,!0),key:d,value:u,previous:v=c.last,next:void 0,removed:!1},c.first||(c.first=f),v&&(v.next=f),ws?c.size++:h.size++,g!=="F"&&(c.index[g]=f)),h},l=function(h,d){var u=o(h),c=Zb(d),f;if(c!=="F")return u.index[c];for(f=u.first;f;f=f.next)if(f.key===d)return f};return Jb(s,{clear:function(){for(var d=this,u=o(d),c=u.index,f=u.first;f;)f.removed=!0,f.previous&&(f.previous=f.previous.next=void 0),delete c[f.index],f=f.next;u.first=u.last=void 0,ws?u.size=0:d.size=0},delete:function(h){var d=this,u=o(d),c=l(d,h);if(c){var f=c.next,v=c.previous;delete u.index[c.index],c.removed=!0,v&&(v.next=f),f&&(f.previous=v),u.first===c&&(u.first=f),u.last===c&&(u.last=v),ws?u.size--:d.size--}return!!c},forEach:function(d){for(var u=o(this),c=qie(d,arguments.length>1?arguments[1]:void 0),f;f=f?f.next:u.first;)for(c(f.value,f.key,this);f&&f.removed;)f=f.previous},has:function(d){return!!l(this,d)}}),Jb(s,t?{get:function(d){var u=l(this,d);return u&&u.value},set:function(d,u){return a(this,d===0?0:d,u)}}:{add:function(d){return a(this,d=d===0?0:d,d)}}),ws&&Gie(s,"size",{configurable:!0,get:function(){return o(this).size}}),n},setStrong:function(i,e,t){var r=e+" Iterator",n=Uc(e),s=Uc(r);Zie(i,e,function(o,a){Qb(this,{type:r,target:o,state:n(o),kind:a,last:void 0})},function(){for(var o=s(this),a=o.kind,l=o.last;l&&l.removed;)l=l.previous;return!o.target||!(o.last=l=l?l.next:o.state.first)?(o.target=void 0,Ba(void 0,!0)):Ba(a==="keys"?l.key:a==="values"?l.value:[l.key,l.value],!1)},t?"entries":"values",!t,!0),Qie(e)}},ene=Rv,tne=Z_;ene("Map",function(i){return function(){return i(this,arguments.length?arguments[0]:void 0)}},tne);var Mv=re,rne=$h,ine=lr,nne=xo,sne=Mv("".charAt),e1=Mv("".charCodeAt),one=Mv("".slice),ane=function(i){return function(e,t){var r=ine(nne(e)),n=rne(t),s=r.length,o,a;return n<0||n>=s?i?"":void 0:(o=e1(r,n),o<55296||o>56319||n+1===s||(a=e1(r,n+1))<56320||a>57343?i?sne(r,n):o:i?one(r,n,n+2):(o-55296<<10)+(a-56320)+65536)}},lne={charAt:ane(!0)},hne=lne.charAt,dne=lr,Q_=Gi,cne=gv,t1=yv,eT="String Iterator",une=Q_.set,fne=Q_.getterFor(eT);cne(String,"String",function(i){une(this,{type:eT,string:dne(i),index:0})},function(){var e=fne(this),t=e.string,r=e.index,n;return r>=t.length?t1(void 0,!0):(n=hne(t,r),e.index+=n.length,t1(n,!1))});var vne=ne,pne=vne.Map,gne=pne,yne=gne,mne=yne,Fv=V(mne);class bne{constructor(){this.clear(),this._defaultIndex=0,this._groupIndex=0,this._defaultGroups=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],this.options={},this.defaultOptions={useDefaultGroups:!0},Ae(this.options,this.defaultOptions)}setOptions(e){const t=["useDefaultGroups"];if(e!==void 0){for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)&&ee(t).call(t,r)===-1){const n=e[r];this.add(r,n)}}}clear(){this._groups=new Fv,this._groupNames=[]}get(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,r=this._groups.get(e);if(r===void 0&&t)if(this.options.useDefaultGroups===!1&&this._groupNames.length>0){const n=this._groupIndex%this._groupNames.length;++this._groupIndex,r={},r.color=this._groups.get(this._groupNames[n]),this._groups.set(e,r)}else{const n=this._defaultIndex%this._defaultGroups.length;this._defaultIndex++,r={},r.color=this._defaultGroups[n],this._groups.set(e,r)}return r}add(e,t){return this._groups.has(e)||this._groupNames.push(e),this._groups.set(e,t),t}}var $ne=z;$ne({target:"Number",stat:!0},{isNaN:function(e){return e!==e}});var wne=ne,Ene=wne.Number.isNaN,Sne=Ene,_ne=Sne,Tne=_ne,df=V(Tne),One=_e,Ine=One.isFinite,xne=Number.isFinite||function(e){return typeof e=="number"&&Ine(e)},Pne=z,Cne=xne;Pne({target:"Number",stat:!0},{isFinite:Cne});var Dne=ne,Ane=Dne.Number.isFinite,Nne=Ane,Rne=Nne,kne=Rne,mi=V(kne),Mne=z,Fne=ai.some,Bne=fs,jne=Bne("some");Mne({target:"Array",proto:!0,forced:!jne},{some:function(e){return Fne(this,e,arguments.length>1?arguments[1]:void 0)}});var Lne=Xe,zne=Lne("Array").some,Hne=Me,Vne=zne,Kc=Array.prototype,Wne=function(i){var e=i.some;return i===Kc||Hne(Kc,i)&&e===Kc.some?Vne:e},Une=Wne,Kne=Une,Gne=Kne,qne=V(Gne),tT={exports:{}},Yne=z,Xne=Be,r1=Tt.f;Yne({target:"Object",stat:!0,forced:Object.defineProperty!==r1,sham:!Xne},{defineProperty:r1});var Jne=ne,rT=Jne.Object,Zne=tT.exports=function(e,t,r){return rT.defineProperty(e,t,r)};rT.defineProperty.sham&&(Zne.sham=!0);var Qne=tT.exports,ese=Qne,iT=ese,tse=iT,rse=tse,ise=rse,nse=ise,sse=nse,ose=V(sse),ase=Pe,lse=Tt.f,i1=ase("metadata"),n1=Function.prototype;n1[i1]===void 0&&lse(n1,i1,{value:null});var hse=Te;hse("asyncDispose");var dse=Te;dse("dispose");var cse=Te;cse("metadata");var use=qS,fse=use,vse=Kt,pse=re,Bv=vse("Symbol"),gse=Bv.keyFor,yse=pse(Bv.prototype.valueOf),nT=Bv.isRegisteredSymbol||function(e){try{return gse(yse(e))!==void 0}catch{return!1}},mse=z,bse=nT;mse({target:"Symbol",stat:!0},{isRegisteredSymbol:bse});var $se=hs,sT=Kt,wse=re,Ese=Do,Sse=Pe,Rl=sT("Symbol"),s1=Rl.isWellKnownSymbol,oT=sT("Object","getOwnPropertyNames"),_se=wse(Rl.prototype.valueOf),o1=$se("wks");for(var Gc=0,a1=oT(Rl),Tse=a1.length;Gco;)l=r(t,a=n[o++]),l!==void 0&&Qoe(s,a,l);return s}});var eae=ne,tae=eae.Object.getOwnPropertyDescriptors,rae=tae,iae=rae,nae=iae,ri=V(nae),vT={exports:{}},sae=z,oae=Be,u1=Eh.f;sae({target:"Object",stat:!0,forced:Object.defineProperties!==u1,sham:!oae},{defineProperties:u1});var aae=ne,pT=aae.Object,lae=vT.exports=function(e,t){return pT.defineProperties(e,t)};pT.defineProperties.sham&&(lae.sham=!0);var hae=vT.exports,dae=hae,cae=dae,uae=cae,Fh=V(uae),fae=iT,Bh=V(fae);function jv(i,e){const t=["node","edge","label"];let r=!0;const n=Fr(e,"chosen");if(typeof n=="boolean")r=n;else if(typeof n=="object"){if(ee(t).call(t,i)===-1)throw new Error("choosify: subOption '"+i+"' should be one of '"+t.join("', '")+"'");const s=Fr(e,["chosen",i]);(typeof s=="boolean"||typeof s=="function")&&(r=s)}return r}function cf(i,e,t){if(i.width<=0||i.height<=0)return!1;if(t!==void 0){const s={x:e.x-t.x,y:e.y-t.y};if(t.angle!==0){const o=-t.angle;e={x:Math.cos(o)*s.x-Math.sin(o)*s.y,y:Math.sin(o)*s.x+Math.cos(o)*s.y}}else e=s}const r=i.x+i.width,n=i.y+i.width;return i.lefte.x&&i.tope.y}function Ml(i){return typeof i=="string"&&i!==""}function gT(i,e,t,r){let n=r.x,s=r.y;if(typeof r.distanceToBorder=="function"){const o=r.distanceToBorder(i,e),a=Math.sin(e)*o,l=Math.cos(e)*o;l===o?(n+=o,s=r.y):a===o?(n=r.x,s-=o):(n+=l,s-=a)}else r.shape.width>r.shape.height?(n=r.x+r.shape.width*.5,s=r.y-t):(n=r.x+t,s=r.y-r.shape.height*.5);return{x:n,y:s}}var vae=Xe,pae=vae("Array").values,gae=pae,yae=gae,mae=Ki,bae=Ye,$ae=Me,wae=yae,qc=Array.prototype,Eae={DOMTokenList:!0,NodeList:!0},Sae=function(i){var e=i.values;return i===qc||$ae(qc,i)&&e===qc.values||bae(Eae,mae(i))?wae:e},_ae=Sae,yT=V(_ae);class Tae{constructor(e){this.measureText=e,this.current=0,this.width=0,this.height=0,this.lines=[]}_add(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"normal";this.lines[e]===void 0&&(this.lines[e]={width:0,height:0,blocks:[]});let n=t;(t===void 0||t==="")&&(n=" ");const s=this.measureText(n,r),o=Ae({},yT(s));o.text=t,o.width=s.width,o.mod=r,(t===void 0||t==="")&&(o.width=0),this.lines[e].blocks.push(o),this.lines[e].width+=o.width}curWidth(){const e=this.lines[this.current];return e===void 0?0:e.width}append(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"normal";this._add(this.current,e,t)}newLine(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"normal";this._add(this.current,e,t),this.current++}determineLineHeights(){for(let e=0;ee&&(e=n.width),t+=n.height}this.width=e,this.height=t}removeEmptyBlocks(){const e=[];for(let t=0;t"://,""://,""://,"":/<\/b>/,"":/<\/i>/,"":/<\/code>/,"*":/\*/,_:/_/,"`":/`/,afterBold:/[^*]/,afterItal:/[^_]/,afterMono:/[^`]/};class f1{constructor(e){this.text=e,this.bold=!1,this.ital=!1,this.mono=!1,this.spacing=!1,this.position=0,this.buffer="",this.modStack=[],this.blocks=[]}mod(){return this.modStack.length===0?"normal":this.modStack[0]}modName(){if(this.modStack.length===0)return"normal";if(this.modStack[0]==="mono")return"mono";if(this.bold&&this.ital)return"boldital";if(this.bold)return"bold";if(this.ital)return"ital"}emitBlock(){this.spacing&&(this.add(" "),this.spacing=!1),this.buffer.length>0&&(this.blocks.push({text:this.buffer,mod:this.modName()}),this.buffer="")}add(e){e===" "&&(this.spacing=!0),this.spacing&&(this.buffer+=" ",this.spacing=!1),e!=" "&&(this.buffer+=e)}parseWS(e){return/[ \t]/.test(e)?(this.mono?this.add(e):this.spacing=!0,!0):!1}setTag(e){this.emitBlock(),this[e]=!0,this.modStack.unshift(e)}unsetTag(e){this.emitBlock(),this[e]=!1,this.modStack.shift()}parseStartTag(e,t){return!this.mono&&!this[e]&&this.match(t)?(this.setTag(e),!0):!1}match(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const[r,n]=this.prepareRegExp(e),s=r.test(this.text.substr(this.position,n));return s&&t&&(this.position+=n-1),s}parseEndTag(e,t,r){let n=this.mod()===e;return e==="mono"?n=n&&this.mono:n=n&&!this.mono,n&&this.match(t)?(r!==void 0?(this.position===this.text.length-1||this.match(r,!1))&&this.unsetTag(e):this.unsetTag(e),!0):!1}replace(e,t){return this.match(e)?(this.add(t),this.position+=length-1,!0):!1}prepareRegExp(e){let t,r;if(e instanceof RegExp)r=e,t=1;else{const n=Oae[e];n!==void 0?r=n:r=new RegExp(e),t=e.length}return[r,t]}}class Iae{constructor(e,t,r,n){this.ctx=e,this.parent=t,this.selected=r,this.hover=n;const s=(o,a)=>{if(o===void 0)return 0;const l=this.parent.getFormattingValues(e,r,n,a);let h=0;return o!==""&&(h=this.ctx.measureText(o).width),{width:h,values:l}};this.lines=new Tae(s)}process(e){if(!Ml(e))return this.lines.finalize();const t=this.parent.fontOptions;e=e.replace(/\r\n/g,` `),e=e.replace(/\r/g,` `);const r=String(e).split(` `),n=r.length;if(t.multi)for(let s=0;s0)for(let a=0;a0)for(let s=0;s/&/.test(n)?(t.replace(t.text,"<","<")||t.replace(t.text,"&","&")||t.add("&"),!0):!1;for(;t.position")||t.parseStartTag("ital","")||t.parseStartTag("mono","")||t.parseEndTag("bold","")||t.parseEndTag("ital","")||t.parseEndTag("mono",""))||r(n)||t.add(n),t.position++}return t.emitBlock(),t.blocks}splitMarkdownBlocks(e){const t=new f1(e);let r=!0;const n=s=>/\\/.test(s)?(t.positionthis.parent.fontOptions.maxWdt}getLongestFit(e){let t="",r=0;for(;r1&&arguments[1]!==void 0?arguments[1]:"normal",r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.parent.getFormattingValues(this.ctx,this.selected,this.hover,t),e=e.replace(/^( +)/g,"$1\r"),e=e.replace(/([^\r][^ ]*)( +)/g,"$1\r$2\r");let n=e.split("\r");for(;n.length>0;){let s=this.getLongestFit(n);if(s===0){const o=n[0],a=this.getLongestFitWord(o);this.lines.newLine(Zt(o).call(o,0,a),t),n[0]=Zt(o).call(o,a)}else{let o=s;n[s-1]===" "?s--:n[o]===" "&&o++;const a=Zt(n).call(n,0,s).join("");s==n.length&&r?this.lines.append(a,t):this.lines.newLine(a,t),n=Zt(n).call(n,o)}}}}const Es=["bold","ital","boldital","mono"];class Pn{constructor(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.body=e,this.pointToSelf=!1,this.baseSize=void 0,this.fontOptions={},this.setOptions(t),this.size={top:0,left:0,width:0,height:0,yLine:0},this.isEdgeLabel=r}setOptions(e){if(this.elementOptions=e,this.initFontOptions(e.font),Ml(e.label)?this.labelDirty=!0:e.label=void 0,e.font!==void 0&&e.font!==null){if(typeof e.font=="string")this.baseSize=this.fontOptions.size;else if(typeof e.font=="object"){const t=e.font.size;t!==void 0&&(this.baseSize=t)}}}initFontOptions(e){if(X(Es,t=>{this.fontOptions[t]={}}),Pn.parseFontString(this.fontOptions,e)){this.fontOptions.vadjust=0;return}X(e,(t,r)=>{t!=null&&typeof t!="object"&&(this.fontOptions[r]=t)})}static parseFontString(e,t){if(!t||typeof t!="string")return!1;const r=t.split(" ");return e.size=+r[0].replace("px",""),e.face=r[1],e.color=r[2],!0}constrain(e){const t={constrainWidth:!1,maxWdt:-1,minWdt:-1,constrainHeight:!1,minHgt:-1,valign:"middle"},r=Fr(e,"widthConstraint");if(typeof r=="number")t.maxWdt=Number(r),t.minWdt=Number(r);else if(typeof r=="object"){const s=Fr(e,["widthConstraint","maximum"]);typeof s=="number"&&(t.maxWdt=Number(s));const o=Fr(e,["widthConstraint","minimum"]);typeof o=="number"&&(t.minWdt=Number(o))}const n=Fr(e,"heightConstraint");if(typeof n=="number")t.minHgt=Number(n);else if(typeof n=="object"){const s=Fr(e,["heightConstraint","minimum"]);typeof s=="number"&&(t.minHgt=Number(s));const o=Fr(e,["heightConstraint","valign"]);typeof o=="string"&&(o==="top"||o==="bottom")&&(t.valign=o)}return t}update(e,t){this.setOptions(e,!0),this.propagateFonts(t),le(this.fontOptions,this.constrain(t)),this.fontOptions.chooser=jv("label",t)}adjustSizes(e){const t=e?e.right+e.left:0;this.fontOptions.constrainWidth&&(this.fontOptions.maxWdt-=t,this.fontOptions.minWdt-=t);const r=e?e.top+e.bottom:0;this.fontOptions.constrainHeight&&(this.fontOptions.minHgt-=r)}addFontOptionsToPile(e,t){for(let r=0;r{o!==void 0&&(Object.prototype.hasOwnProperty.call(t,a)||(ee(Es).call(Es,a)!==-1?t[a]={}:t[a]=o))})}return t}getFontOption(e,t,r){let n;for(let s=0;s{s[l]=a}),s.size=Number(s.size),s.vadjust=Number(s.vadjust)}}draw(e,t,r,n,s){let o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"middle";if(this.elementOptions.label===void 0)return;let a=this.fontOptions.size*this.body.view.scale;this.elementOptions.label&&a=this.elementOptions.scaling.label.maxVisible&&(a=Number(this.elementOptions.scaling.label.maxVisible)/this.body.view.scale),this.calculateLabelSize(e,n,s,t,r,o),this._drawBackground(e),this._drawText(e,t,this.size.yLine,o,a))}_drawBackground(e){if(this.fontOptions.background!==void 0&&this.fontOptions.background!=="none"){e.fillStyle=this.fontOptions.background;const t=this.getSize();e.fillRect(t.left,t.top,t.width,t.height)}}_drawText(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"middle",s=arguments.length>4?arguments[4]:void 0;[t,r]=this._setAlignment(e,t,r,n),e.textAlign="left",t=t-this.size.width/2,this.fontOptions.valign&&this.size.height>this.size.labelHeight&&(this.fontOptions.valign==="top"&&(r-=(this.size.height-this.size.labelHeight)/2),this.fontOptions.valign==="bottom"&&(r+=(this.size.height-this.size.labelHeight)/2));for(let o=0;o0&&(e.lineWidth=d.strokeWidth,e.strokeStyle=c,e.lineJoin="round"),e.fillStyle=u,d.strokeWidth>0&&e.strokeText(d.text,t+l,r+d.vadjust),e.fillText(d.text,t+l,r+d.vadjust),l+=d.width}r+=a.height}}}_setAlignment(e,t,r,n){if(this.isEdgeLabel&&this.fontOptions.align!=="horizontal"&&this.pointToSelf===!1){t=0,r=0;const s=2;this.fontOptions.align==="top"?(e.textBaseline="alphabetic",r-=2*s):this.fontOptions.align==="bottom"?(e.textBaseline="hanging",r+=2*s):e.textBaseline="middle"}else e.textBaseline=n;return[t,r]}_getColor(e,t,r){let n=e||"#000000",s=r||"#ffffff";if(t<=this.elementOptions.scaling.label.drawThreshold){const o=Math.max(0,Math.min(1,1-(this.elementOptions.scaling.label.drawThreshold-t)));n=xt(n,o),s=xt(s,o)}return[n,s]}getTextSize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return this._processLabel(e,t,r),{width:this.size.width,height:this.size.height,lineCount:this.lineCount}}getSize(){let t=this.size.left,r=this.size.top-.5*2;if(this.isEdgeLabel){const s=-this.size.width*.5;switch(this.fontOptions.align){case"middle":t=s,r=-this.size.height*.5;break;case"top":t=s,r=-(this.size.height+2);break;case"bottom":t=s,r=2;break}}return{left:t,top:r,width:this.size.width,height:this.size.height}}calculateLabelSize(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:"middle";this._processLabel(e,t,r),this.size.left=n-this.size.width*.5,this.size.top=s-this.size.height*.5,this.size.yLine=s+(1-this.lineCount)*.5*this.fontOptions.size,o==="hanging"&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4)}getFormattingValues(e,t,r,n){const s=function(l,h,d){return h==="normal"?d==="mod"?"":l[d]:l[h][d]!==void 0?l[h][d]:l[d]},o={color:s(this.fontOptions,n,"color"),size:s(this.fontOptions,n,"size"),face:s(this.fontOptions,n,"face"),mod:s(this.fontOptions,n,"mod"),vadjust:s(this.fontOptions,n,"vadjust"),strokeWidth:this.fontOptions.strokeWidth,strokeColor:this.fontOptions.strokeColor};(t||r)&&(n==="normal"&&this.fontOptions.chooser===!0&&this.elementOptions.labelHighlightBold?o.mod="bold":typeof this.fontOptions.chooser=="function"&&this.fontOptions.chooser(o,this.elementOptions.id,t,r));let a="";return o.mod!==void 0&&o.mod!==""&&(a+=o.mod+" "),a+=o.size+"px "+o.face,e.font=a.replace(/"/g,""),o.font=e.font,o.height=o.size,o}differentState(e,t){return e!==this.selectedState||t!==this.hoverState}_processLabelText(e,t,r,n){return new Iae(e,this,t,r).process(n)}_processLabel(e,t,r){if(this.labelDirty===!1&&!this.differentState(t,r))return;const n=this._processLabelText(e,t,r,this.elementOptions.label);this.fontOptions.minWdt>0&&n.width0&&n.height0&&(this.enableBorderDashes(e,t),e.stroke(),this.disableBorderDashes(e,t)),e.restore()}performFill(e,t){e.save(),e.fillStyle=t.color,this.enableShadow(e,t),Go(e).call(e),this.disableShadow(e,t),e.restore(),this.performStroke(e,t)}_addBoundingBoxMargin(e){this.boundingBox.left-=e,this.boundingBox.top-=e,this.boundingBox.bottom+=e,this.boundingBox.right+=e}_updateBoundingBox(e,t,r,n,s){r!==void 0&&this.resize(r,n,s),this.left=e-this.width/2,this.top=t-this.height/2,this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width}updateBoundingBox(e,t,r,n,s){this._updateBoundingBox(e,t,r,n,s)}getDimensionsFromLabel(e,t,r){this.textSize=this.labelModule.getTextSize(e,t,r);let n=this.textSize.width,s=this.textSize.height;const o=14;return n===0&&(n=o,s=o),{width:n,height:s}}}let xae=class extends Yi{constructor(e,t,r){super(e,t,r),this._setMargins(r)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.needsRefresh(t,r)){const n=this.getDimensionsFromLabel(e,t,r);this.width=n.width+this.margin.right+this.margin.left,this.height=n.height+this.margin.top+this.margin.bottom,this.radius=this.width/2}}draw(e,t,r,n,s,o){this.resize(e,n,s),this.left=t-this.width/2,this.top=r-this.height/2,this.initContextForDraw(e,o),ZE(e,this.left,this.top,this.width,this.height,o.borderRadius),this.performFill(e,o),this.updateBoundingBox(t,r,e,n,s),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,n,s)}updateBoundingBox(e,t,r,n,s){this._updateBoundingBox(e,t,r,n,s);const o=this.options.shapeProperties.borderRadius;this._addBoundingBoxMargin(o)}distanceToBorder(e,t){e&&this.resize(e);const r=this.options.borderWidth;return Math.min(Math.abs(this.width/2/Math.cos(t)),Math.abs(this.height/2/Math.sin(t)))+r}};class Lv extends Yi{constructor(e,t,r){super(e,t,r),this.labelOffset=0,this.selected=!1}setOptions(e,t,r){this.options=e,t===void 0&&r===void 0||this.setImages(t,r)}setImages(e,t){t&&this.selected?(this.imageObj=t,this.imageObjAlt=e):(this.imageObj=e,this.imageObjAlt=t)}switchImages(e){const t=e&&!this.selected||!e&&this.selected;if(this.selected=e,this.imageObjAlt!==void 0&&t){const r=this.imageObj;this.imageObj=this.imageObjAlt,this.imageObjAlt=r}}_getImagePadding(){const e={top:0,right:0,bottom:0,left:0};if(this.options.imagePadding){const t=this.options.imagePadding;typeof t=="object"?(e.top=t.top,e.right=t.right,e.bottom=t.bottom,e.left=t.left):(e.top=t,e.right=t,e.bottom=t,e.left=t)}return e}_resizeImage(){let e,t;if(this.options.shapeProperties.useImageSize===!1){let r=1,n=1;this.imageObj.width&&this.imageObj.height&&(this.imageObj.width>this.imageObj.height?r=this.imageObj.width/this.imageObj.height:n=this.imageObj.height/this.imageObj.width),e=this.options.size*2*r,t=this.options.size*2*n}else{const r=this._getImagePadding();e=this.imageObj.width+r.left+r.right,t=this.imageObj.height+r.top+r.bottom}this.width=e,this.height=t,this.radius=.5*this.width}_drawRawCircle(e,t,r,n){this.initContextForDraw(e,n),av(e,t,r,n.size),this.performFill(e,n)}_drawImageAtPosition(e,t){if(this.imageObj.width!=0){e.globalAlpha=t.opacity!==void 0?t.opacity:1,this.enableShadow(e,t);let r=1;this.options.shapeProperties.interpolation===!0&&(r=this.imageObj.width/this.width/this.body.view.scale);const n=this._getImagePadding(),s=this.left+n.left,o=this.top+n.top,a=this.width-n.left-n.right,l=this.height-n.top-n.bottom;this.imageObj.drawImageAtPosition(e,r,s,o,a,l),this.disableShadow(e,t)}}_drawImageLabel(e,t,r,n,s){let o=0;if(this.height!==void 0){o=this.height*.5;const l=this.labelModule.getTextSize(e,n,s);l.lineCount>=1&&(o+=l.height/2)}const a=r+o;this.options.label&&(this.labelOffset=o),this.labelModule.draw(e,t,a,n,s,"hanging")}}let Pae=class extends Lv{constructor(e,t,r){super(e,t,r),this._setMargins(r)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.needsRefresh(t,r)){const n=this.getDimensionsFromLabel(e,t,r),s=Math.max(n.width+this.margin.right+this.margin.left,n.height+this.margin.top+this.margin.bottom);this.options.size=s/2,this.width=s,this.height=s,this.radius=this.width/2}}draw(e,t,r,n,s,o){this.resize(e,n,s),this.left=t-this.width/2,this.top=r-this.height/2,this._drawRawCircle(e,t,r,o),this.updateBoundingBox(t,r),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,r,n,s)}updateBoundingBox(e,t){this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size}distanceToBorder(e){return e&&this.resize(e),this.width*.5}};class Cae extends Lv{constructor(e,t,r,n,s){super(e,t,r),this.setImages(n,s)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.imageObj.src===void 0||this.imageObj.width===void 0||this.imageObj.height===void 0){const s=this.options.size*2;this.width=s,this.height=s,this.radius=.5*this.width;return}this.needsRefresh(t,r)&&this._resizeImage()}draw(e,t,r,n,s,o){this.switchImages(n),this.resize();let a=t,l=r;this.options.shapeProperties.coordinateOrigin==="top-left"?(this.left=t,this.top=r,a+=this.width/2,l+=this.height/2):(this.left=t-this.width/2,this.top=r-this.height/2),this._drawRawCircle(e,a,l,o),e.save(),e.clip(),this._drawImageAtPosition(e,o),e.restore(),this._drawImageLabel(e,a,l,n,s),this.updateBoundingBox(t,r)}updateBoundingBox(e,t){this.options.shapeProperties.coordinateOrigin==="top-left"?(this.boundingBox.top=t,this.boundingBox.left=e,this.boundingBox.right=e+this.options.size*2,this.boundingBox.bottom=t+this.options.size*2):(this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset)}distanceToBorder(e){return e&&this.resize(e),this.width*.5}}class hi extends Yi{constructor(e,t,r){super(e,t,r)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{size:this.options.size};if(this.needsRefresh(t,r)){var s,o;this.labelModule.getTextSize(e,t,r);const a=2*n.size;this.width=(s=this.customSizeWidth)!==null&&s!==void 0?s:a,this.height=(o=this.customSizeHeight)!==null&&o!==void 0?o:a,this.radius=.5*this.width}}_drawShape(e,t,r,n,s,o,a,l){return this.resize(e,o,a,l),this.left=n-this.width/2,this.top=s-this.height/2,this.initContextForDraw(e,l),pU(t)(e,n,s,l.size),this.performFill(e,l),this.options.icon!==void 0&&this.options.icon.code!==void 0&&(e.font=(o?"bold ":"")+this.height/2+"px "+(this.options.icon.face||"FontAwesome"),e.fillStyle=this.options.icon.color||"black",e.textAlign="center",e.textBaseline="middle",e.fillText(this.options.icon.code,n,s)),{drawExternalLabel:()=>{if(this.options.label!==void 0){this.labelModule.calculateLabelSize(e,o,a,n,s,"hanging");const h=s+.5*this.height+.5*this.labelModule.size.height;this.labelModule.draw(e,n,h,o,a,"hanging")}this.updateBoundingBox(n,s)}}}updateBoundingBox(e,t){this.boundingBox.top=t-this.options.size,this.boundingBox.left=e-this.options.size,this.boundingBox.right=e+this.options.size,this.boundingBox.bottom=t+this.options.size,this.options.label!==void 0&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height))}}function v1(i,e){var t=$e(i);if(ti){var r=ti(i);e&&(r=pt(r).call(r,function(n){return li(i,n).enumerable})),t.push.apply(t,r)}return t}function Dae(i){for(var e=1;e{e.save(),l(),e.restore()}}return a.nodeDimensions&&(this.customSizeWidth=a.nodeDimensions.width,this.customSizeHeight=a.nodeDimensions.height),a}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}class Nae extends Yi{constructor(e,t,r){super(e,t,r),this._setMargins(r)}resize(e,t,r){if(this.needsRefresh(t,r)){const s=this.getDimensionsFromLabel(e,t,r).width+this.margin.right+this.margin.left;this.width=s,this.height=s,this.radius=this.width/2}}draw(e,t,r,n,s,o){this.resize(e,n,s),this.left=t-this.width/2,this.top=r-this.height/2,this.initContextForDraw(e,o),QE(e,t-this.width/2,r-this.height/2,this.width,this.height),this.performFill(e,o),this.updateBoundingBox(t,r,e,n,s),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,n,s)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}let Rae=class extends hi{constructor(e,t,r){super(e,t,r)}draw(e,t,r,n,s,o){return this._drawShape(e,"diamond",4,t,r,n,s,o)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}};class kae extends hi{constructor(e,t,r){super(e,t,r)}draw(e,t,r,n,s,o){return this._drawShape(e,"circle",2,t,r,n,s,o)}distanceToBorder(e){return e&&this.resize(e),this.options.size}}class p1 extends Yi{constructor(e,t,r){super(e,t,r)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.needsRefresh(t,r)){const n=this.getDimensionsFromLabel(e,t,r);this.height=n.height*2,this.width=n.width+n.height,this.radius=.5*this.width}}draw(e,t,r,n,s,o){this.resize(e,n,s),this.left=t-this.width*.5,this.top=r-this.height*.5,this.initContextForDraw(e,o),Lu(e,this.left,this.top,this.width,this.height),this.performFill(e,o),this.updateBoundingBox(t,r,e,n,s),this.labelModule.draw(e,t,r,n,s)}distanceToBorder(e,t){e&&this.resize(e);const r=this.width*.5,n=this.height*.5,s=Math.sin(t)*r,o=Math.cos(t)*n;return r*n/Math.sqrt(s*s+o*o)}}class Mae extends Yi{constructor(e,t,r){super(e,t,r),this._setMargins(r)}resize(e,t,r){this.needsRefresh(t,r)&&(this.iconSize={width:Number(this.options.icon.size),height:Number(this.options.icon.size)},this.width=this.iconSize.width+this.margin.right+this.margin.left,this.height=this.iconSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}draw(e,t,r,n,s,o){return this.resize(e,n,s),this.options.icon.size=this.options.icon.size||50,this.left=t-this.width/2,this.top=r-this.height/2,this._icon(e,t,r,n,s,o),{drawExternalLabel:()=>{this.options.label!==void 0&&this.labelModule.draw(e,this.left+this.iconSize.width/2+this.margin.left,r+this.height/2+5,n),this.updateBoundingBox(t,r)}}}updateBoundingBox(e,t){this.boundingBox.top=t-this.options.icon.size*.5,this.boundingBox.left=e-this.options.icon.size*.5,this.boundingBox.right=e+this.options.icon.size*.5,this.boundingBox.bottom=t+this.options.icon.size*.5,this.options.label!==void 0&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+5))}_icon(e,t,r,n,s,o){const a=Number(this.options.icon.size);this.options.icon.code!==void 0?(e.font=[this.options.icon.weight!=null?this.options.icon.weight:n?"bold":"",(this.options.icon.weight!=null&&n?5:0)+a+"px",this.options.icon.face].join(" "),e.fillStyle=this.options.icon.color||"black",e.textAlign="center",e.textBaseline="middle",this.enableShadow(e,o),e.fillText(this.options.icon.code,t,r),this.disableShadow(e,o)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}let Fae=class extends Lv{constructor(e,t,r,n,s){super(e,t,r),this.setImages(n,s)}resize(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.selected,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:this.hover;if(this.imageObj.src===void 0||this.imageObj.width===void 0||this.imageObj.height===void 0){const s=this.options.size*2;this.width=s,this.height=s;return}this.needsRefresh(t,r)&&this._resizeImage()}draw(e,t,r,n,s,o){e.save(),this.switchImages(n),this.resize();let a=t,l=r;if(this.options.shapeProperties.coordinateOrigin==="top-left"?(this.left=t,this.top=r,a+=this.width/2,l+=this.height/2):(this.left=t-this.width/2,this.top=r-this.height/2),this.options.shapeProperties.useBorderWithImage===!0){const h=this.options.borderWidth,d=this.options.borderWidthSelected||2*this.options.borderWidth,u=(n?d:h)/this.body.view.scale;e.lineWidth=Math.min(this.width,u),e.beginPath();let c=n?this.options.color.highlight.border:s?this.options.color.hover.border:this.options.color.border,f=n?this.options.color.highlight.background:s?this.options.color.hover.background:this.options.color.background;o.opacity!==void 0&&(c=xt(c,o.opacity),f=xt(f,o.opacity)),e.strokeStyle=c,e.fillStyle=f,e.rect(this.left-.5*e.lineWidth,this.top-.5*e.lineWidth,this.width+e.lineWidth,this.height+e.lineWidth),Go(e).call(e),this.performStroke(e,o),e.closePath()}this._drawImageAtPosition(e,o),this._drawImageLabel(e,a,l,n,s),this.updateBoundingBox(t,r),e.restore()}updateBoundingBox(e,t){this.resize(),this.options.shapeProperties.coordinateOrigin==="top-left"?(this.left=e,this.top=t):(this.left=e-this.width/2,this.top=t-this.height/2),this.boundingBox.left=this.left,this.boundingBox.top=this.top,this.boundingBox.bottom=this.top+this.height,this.boundingBox.right=this.left+this.width,this.options.label!==void 0&&this.labelModule.size.width>0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}distanceToBorder(e,t){return this._distanceToBorder(e,t)}};class Bae extends hi{constructor(e,t,r){super(e,t,r)}draw(e,t,r,n,s,o){return this._drawShape(e,"square",2,t,r,n,s,o)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}class jae extends hi{constructor(e,t,r){super(e,t,r)}draw(e,t,r,n,s,o){return this._drawShape(e,"hexagon",4,t,r,n,s,o)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}class Lae extends hi{constructor(e,t,r){super(e,t,r)}draw(e,t,r,n,s,o){return this._drawShape(e,"star",4,t,r,n,s,o)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}class zae extends Yi{constructor(e,t,r){super(e,t,r),this._setMargins(r)}resize(e,t,r){this.needsRefresh(t,r)&&(this.textSize=this.labelModule.getTextSize(e,t,r),this.width=this.textSize.width+this.margin.right+this.margin.left,this.height=this.textSize.height+this.margin.top+this.margin.bottom,this.radius=.5*this.width)}draw(e,t,r,n,s,o){this.resize(e,n,s),this.left=t-this.width/2,this.top=r-this.height/2,this.enableShadow(e,o),this.labelModule.draw(e,this.left+this.textSize.width/2+this.margin.left,this.top+this.textSize.height/2+this.margin.top,n,s),this.disableShadow(e,o),this.updateBoundingBox(t,r,e,n,s)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}let Hae=class extends hi{constructor(e,t,r){super(e,t,r)}draw(e,t,r,n,s,o){return this._drawShape(e,"triangle",3,t,r,n,s,o)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}};class Vae extends hi{constructor(e,t,r){super(e,t,r)}draw(e,t,r,n,s,o){return this._drawShape(e,"triangleDown",3,t,r,n,s,o)}distanceToBorder(e,t){return this._distanceToBorder(e,t)}}function g1(i,e){var t=$e(i);if(ti){var r=ti(i);e&&(r=pt(r).call(r,function(n){return li(i,n).enumerable})),t.push.apply(t,r)}return t}function y1(i){for(var e=1;et[h]!=null);l.push("font"),Al(l,e,a),e.color=of(e.color)}static parseOptions(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},s=arguments.length>4?arguments[4]:void 0;if(Al(["color","fixed","shadow"],e,t,r),fe.checkMass(t),e.opacity!==void 0&&(fe.checkOpacity(e.opacity)||(console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+e.opacity),e.opacity=void 0)),t.opacity!==void 0&&(fe.checkOpacity(t.opacity)||(console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+t.opacity),t.opacity=void 0)),t.shapeProperties&&!fe.checkCoordinateOrigin(t.shapeProperties.coordinateOrigin)&&console.error("Invalid option for node coordinateOrigin, found: "+t.shapeProperties.coordinateOrigin),It(e,t,"shadow",n),t.color!==void 0&&t.color!==null){const a=of(t.color);R_(e.color,a)}else r===!0&&t.color===null&&(e.color=Jr(n.color));t.fixed!==void 0&&t.fixed!==null&&(typeof t.fixed=="boolean"?(e.fixed.x=t.fixed,e.fixed.y=t.fixed):(t.fixed.x!==void 0&&typeof t.fixed.x=="boolean"&&(e.fixed.x=t.fixed.x),t.fixed.y!==void 0&&typeof t.fixed.y=="boolean"&&(e.fixed.y=t.fixed.y))),r===!0&&t.font===null&&(e.font=Jr(n.font)),fe.updateGroupOptions(e,t,s),t.scaling!==void 0&&It(e.scaling,t.scaling,"label",n.scaling)}getFormattingValues(){const e={color:this.options.color.background,opacity:this.options.opacity,borderWidth:this.options.borderWidth,borderColor:this.options.color.border,size:this.options.size,borderDashes:this.options.shapeProperties.borderDashes,borderRadius:this.options.shapeProperties.borderRadius,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y};if(this.selected||this.hover?this.chooser===!0?this.selected?(this.options.borderWidthSelected!=null?e.borderWidth=this.options.borderWidthSelected:e.borderWidth*=2,e.color=this.options.color.highlight.background,e.borderColor=this.options.color.highlight.border,e.shadow=this.options.shadow.enabled):this.hover&&(e.color=this.options.color.hover.background,e.borderColor=this.options.color.hover.border,e.shadow=this.options.shadow.enabled):typeof this.chooser=="function"&&(this.chooser(e,this.options.id,this.selected,this.hover),e.shadow===!1&&(e.shadowColor!==this.options.shadow.color||e.shadowSize!==this.options.shadow.size||e.shadowX!==this.options.shadow.x||e.shadowY!==this.options.shadow.y)&&(e.shadow=!0)):e.shadow=this.options.shadow.enabled,this.options.opacity!==void 0){const t=this.options.opacity;e.borderColor=xt(e.borderColor,t),e.color=xt(e.color,t),e.shadowColor=xt(e.shadowColor,t)}return e}updateLabelModule(e){(this.options.label===void 0||this.options.label===null)&&(this.options.label=""),fe.updateGroupOptions(this.options,y1(y1({},e),{},{color:e&&e.color||this._localColor||void 0}),this.grouplist);const t=this.grouplist.get(this.options.group,!1),r=[e,this.options,t,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,r),this.labelModule.baseSize!==void 0&&(this.baseFontSize=this.labelModule.baseSize)}updateShape(e){if(e===this.options.shape&&this.shape)this.shape.setOptions(this.options,this.imageObj,this.imageObjAlt);else switch(this.options.shape){case"box":this.shape=new xae(this.options,this.body,this.labelModule);break;case"circle":this.shape=new Pae(this.options,this.body,this.labelModule);break;case"circularImage":this.shape=new Cae(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case"custom":this.shape=new Aae(this.options,this.body,this.labelModule,this.options.ctxRenderer);break;case"database":this.shape=new Nae(this.options,this.body,this.labelModule);break;case"diamond":this.shape=new Rae(this.options,this.body,this.labelModule);break;case"dot":this.shape=new kae(this.options,this.body,this.labelModule);break;case"ellipse":this.shape=new p1(this.options,this.body,this.labelModule);break;case"icon":this.shape=new Mae(this.options,this.body,this.labelModule);break;case"image":this.shape=new Fae(this.options,this.body,this.labelModule,this.imageObj,this.imageObjAlt);break;case"square":this.shape=new Bae(this.options,this.body,this.labelModule);break;case"hexagon":this.shape=new jae(this.options,this.body,this.labelModule);break;case"star":this.shape=new Lae(this.options,this.body,this.labelModule);break;case"text":this.shape=new zae(this.options,this.body,this.labelModule);break;case"triangle":this.shape=new Hae(this.options,this.body,this.labelModule);break;case"triangleDown":this.shape=new Vae(this.options,this.body,this.labelModule);break;default:this.shape=new p1(this.options,this.body,this.labelModule);break}this.needsRefresh()}select(){this.selected=!0,this.needsRefresh()}unselect(){this.selected=!1,this.needsRefresh()}needsRefresh(){this.shape.refreshNeeded=!0}getTitle(){return this.options.title}distanceToBorder(e,t){return this.shape.distanceToBorder(e,t)}isFixed(){return this.options.fixed.x&&this.options.fixed.y}isSelected(){return this.selected}getValue(){return this.options.value}getLabelSize(){return this.labelModule.size()}setValueRange(e,t,r){if(this.options.value!==void 0){const n=this.options.scaling.customScalingFunction(e,t,r,this.options.value),s=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===!0){const o=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+n*o}this.options.size=this.options.scaling.min+n*s}else this.options.size=this.baseSize,this.options.font.size=this.baseFontSize;this.updateLabelModule()}draw(e){const t=this.getFormattingValues();return this.shape.draw(e,this.x,this.y,this.selected,this.hover,t)||{}}updateBoundingBox(e){this.shape.updateBoundingBox(this.x,this.y,e)}resize(e){const t=this.getFormattingValues();this.shape.resize(e,this.selected,this.hover,t)}getItemsOnPoint(e){const t=[];return this.labelModule.visible()&&cf(this.labelModule.getSize(),e)&&t.push({nodeId:this.id,labelId:0}),cf(this.shape.boundingBox,e)&&t.push({nodeId:this.id}),t}isOverlappingWith(e){return this.shape.lefte.left&&this.shape.tope.top}isBoundingBoxOverlappingWith(e){return this.shape.boundingBox.lefte.left&&this.shape.boundingBox.tope.top}static checkMass(e,t){if(e.mass!==void 0&&e.mass<=0){let r="";t!==void 0&&(r=" in node id: "+t),console.error("%cNegative or zero mass disallowed"+r+", setting mass to 1.",B_),e.mass=1}}}class Wae{constructor(e,t,r,n){var s;if(this.body=e,this.images=t,this.groups=r,this.layoutEngine=n,this.body.functions.createNode=O(s=this.create).call(s,this),this.nodesListeners={add:(o,a)=>{this.add(a.items)},update:(o,a)=>{this.update(a.items,a.data,a.oldData)},remove:(o,a)=>{this.remove(a.items)}},this.defaultOptions={borderWidth:1,borderWidthSelected:void 0,brokenImage:void 0,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},opacity:void 0,fixed:{x:!1,y:!1},font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:0,strokeColor:"#ffffff",align:"center",vadjust:0,multi:!1,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"monospace",vadjust:2}},group:void 0,hidden:!1,icon:{face:"FontAwesome",code:void 0,size:50,color:"#2B7CE9"},image:void 0,imagePadding:{top:0,right:0,bottom:0,left:0},label:void 0,labelHighlightBold:!0,level:void 0,margin:{top:5,right:5,bottom:5,left:5},mass:1,physics:!0,scaling:{min:10,max:30,label:{enabled:!1,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(o,a,l,h){if(a===o)return .5;{const d=1/(a-o);return Math.max(0,(h-o)*d)}}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},shape:"ellipse",shapeProperties:{borderDashes:!1,borderRadius:6,interpolation:!0,useImageSize:!1,useBorderWithImage:!1,coordinateOrigin:"center"},size:25,title:void 0,value:void 0,x:void 0,y:void 0},this.defaultOptions.mass<=0)throw"Internal error: mass in defaultOptions of NodesHandler may not be zero or negative";this.options=Jr(this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var e,t;this.body.emitter.on("refreshNodes",O(e=this.refresh).call(e,this)),this.body.emitter.on("refresh",O(t=this.refresh).call(t,this)),this.body.emitter.on("destroy",()=>{X(this.nodesListeners,(r,n)=>{this.body.data.nodes&&this.body.data.nodes.off(n,r)}),delete this.body.functions.createNode,delete this.nodesListeners.add,delete this.nodesListeners.update,delete this.nodesListeners.remove,delete this.nodesListeners})}setOptions(e){if(e!==void 0){if(fe.parseOptions(this.options,e),e.opacity!==void 0&&(df(e.opacity)||!mi(e.opacity)||e.opacity<0||e.opacity>1?console.error("Invalid option for node opacity. Value must be between 0 and 1, found: "+e.opacity):this.options.opacity=e.opacity),e.shape!==void 0)for(const t in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,t)&&this.body.nodes[t].updateShape();if(typeof e.font<"u"||typeof e.widthConstraint<"u"||typeof e.heightConstraint<"u")for(const t of $e(this.body.nodes))this.body.nodes[t].updateLabelModule(),this.body.nodes[t].needsRefresh();if(e.size!==void 0)for(const t in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,t)&&this.body.nodes[t].needsRefresh();(e.hidden!==void 0||e.physics!==void 0)&&this.body.emitter.emit("_dataChanged")}}setData(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const r=this.body.data.nodes;if(NE("id",e))this.body.data.nodes=e;else if(we(e))this.body.data.nodes=new _l,this.body.data.nodes.add(e);else if(!e)this.body.data.nodes=new _l;else throw new TypeError("Array or DataSet expected");if(r&&X(this.nodesListeners,function(n,s){r.off(s,n)}),this.body.nodes={},this.body.data.nodes){const n=this;X(this.nodesListeners,function(o,a){n.body.data.nodes.on(a,o)});const s=this.body.data.nodes.getIds();this.add(s,!0)}t===!1&&this.body.emitter.emit("_dataChanged")}add(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,r;const n=[];for(let s=0;s1&&arguments[1]!==void 0?arguments[1]:fe;return new t(e,this.body,this.images,this.groups,this.options,this.defaultOptions)}refresh(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;X(this.body.nodes,(t,r)=>{const n=this.body.data.nodes.get(r);n!==void 0&&(e===!0&&t.setOptions({x:null,y:null}),t.setOptions({fixed:!1}),t.setOptions(n))})}getPositions(e){const t={};if(e!==void 0){if(we(e)===!0){for(let r=0;r{this.body.emitter.emit("startSimulation")},0)):console.error("Node id supplied to moveNode does not exist. Provided: ",e)}}var Uae=z,m1=Math.hypot,Kae=Math.abs,Gae=Math.sqrt,qae=!!m1&&m1(1/0,NaN)!==1/0;Uae({target:"Math",stat:!0,forced:qae},{hypot:function(e,t){for(var r=0,n=0,s=arguments.length,o=0,a,l;n0?(l=a/o,r+=l*l):r+=a;return o===1/0?1/0:o*Gae(r)}});var Yae=ne,Xae=Yae.Math.hypot,Jae=Xae,Zae=Jae,Qae=Zae,ele=V(Qae);class Ie{static transform(e,t){we(e)||(e=[e]);const r=t.point.x,n=t.point.y,s=t.angle,o=t.length;for(let a=0;a4&&arguments[4]!==void 0?arguments[4]:this.getViaNode();e.strokeStyle=this.getColor(e,t),e.lineWidth=t.width,t.dashes!==!1?this._drawDashedLine(e,t,s):this._drawLine(e,t,s)}_drawLine(e,t,r,n,s){if(this.from!=this.to)this._line(e,t,r,n,s);else{const[o,a,l]=this._getCircleData(e);this._circle(e,t,o,a,l)}}_drawDashedLine(e,t,r,n,s){e.lineCap="round";const o=we(t.dashes)?t.dashes:[5,5];if(e.setLineDash!==void 0){if(e.save(),e.setLineDash(o),e.lineDashOffset=0,this.from!=this.to)this._line(e,t,r);else{const[a,l,h]=this._getCircleData(e);this._circle(e,t,a,l,h)}e.setLineDash([0]),e.lineDashOffset=0,e.restore()}else{if(this.from!=this.to)eS(e,this.from.x,this.from.y,this.to.x,this.to.y,o);else{const[a,l,h]=this._getCircleData(e);this._circle(e,t,a,l,h)}this.enableShadow(e,t),e.stroke(),this.disableShadow(e,t)}}findBorderPosition(e,t,r){return this.from!=this.to?this._findBorderPosition(e,t,r):this._findBorderPositionCircle(e,t,r)}findBorderPositions(e){if(this.from!=this.to)return{from:this._findBorderPosition(this.from,e),to:this._findBorderPosition(this.to,e)};{var t;const[r,n]=Zt(t=this._getCircleData(e)).call(t,0,2);return{from:this._findBorderPositionCircle(this.from,e,{x:r,y:n,low:.25,high:.6,direction:-1}),to:this._findBorderPositionCircle(this.from,e,{x:r,y:n,low:.6,high:.8,direction:1})}}}_getCircleData(e){const t=this.options.selfReference.size;e!==void 0&&this.from.shape.width===void 0&&this.from.shape.resize(e);const r=gT(e,this.options.selfReference.angle,t,this.from);return[r.x,r.y,t]}_pointOnCircle(e,t,r,n){const s=n*2*Math.PI;return{x:e+r*Math.cos(s),y:t-r*Math.sin(s)}}_findBorderPositionCircle(e,t,r){const n=r.x,s=r.y;let o=r.low,a=r.high;const l=r.direction,h=10,d=this.options.selfReference.size,u=.05;let c,f=(o+a)*.5,v=0;this.options.arrowStrikethrough===!0&&(l===-1?v=this.options.endPointOffset.from:l===1&&(v=this.options.endPointOffset.to));let g=0;do{f=(o+a)*.5,c=this._pointOnCircle(n,s,d,f);const y=Math.atan2(e.y-c.y,e.x-c.x),p=e.distanceToBorder(t,y)+v,m=Math.sqrt(Math.pow(c.x-e.x,2)+Math.pow(c.y-e.y,2)),w=p-m;if(Math.abs(w)0?l>0?o=f:a=f:l>0?a=f:o=f,++g}while(o<=a&&g1?d=1:d<0&&(d=0);const u=e+d*a,c=t+d*l,f=u-s,v=c-o;return Math.sqrt(f*f+v*v)}getArrowData(e,t,r,n,s,o){let a,l,h,d,u,c,f;const v=o.width;t==="from"?(h=this.from,d=this.to,u=o.fromArrowScale<0,c=Math.abs(o.fromArrowScale),f=o.fromArrowType):t==="to"?(h=this.to,d=this.from,u=o.toArrowScale<0,c=Math.abs(o.toArrowScale),f=o.toArrowType):(h=this.to,d=this.from,u=o.middleArrowScale<0,c=Math.abs(o.middleArrowScale),f=o.middleArrowType);const g=15*c+3*v;if(h!=d){const w=ele(h.x-d.x,h.y-d.y),$=g/w;if(t!=="middle")if(this.options.smooth.enabled===!0){const x=this._findBorderPosition(h,e,{via:r}),_=this.getPoint(x.t+$*(t==="from"?1:-1),r);a=Math.atan2(x.y-_.y,x.x-_.x),l=x}else a=Math.atan2(h.y-d.y,h.x-d.x),l=this._findBorderPosition(h,e);else{const x=(u?-$:$)/2,_=this.getPoint(.5+x,r),A=this.getPoint(.5-x,r);a=Math.atan2(_.y-A.y,_.x-A.x),l=this.getPoint(.5,r)}}else{const[w,$,x]=this._getCircleData(e);if(t==="from"){const _=this.options.selfReference.angle,A=this.options.selfReference.angle+Math.PI,R=this._findBorderPositionCircle(this.from,e,{x:w,y:$,low:_,high:A,direction:-1});a=R.t*-2*Math.PI+1.5*Math.PI+.1*Math.PI,l=R}else if(t==="to"){const _=this.options.selfReference.angle,A=this.options.selfReference.angle+Math.PI,R=this._findBorderPositionCircle(this.from,e,{x:w,y:$,low:_,high:A,direction:1});a=R.t*-2*Math.PI+1.5*Math.PI-1.1*Math.PI,l=R}else{const _=this.options.selfReference.angle/(2*Math.PI);l=this._pointOnCircle(w,$,x,_),a=_*-2*Math.PI+1.5*Math.PI+.1*Math.PI}}const y=l.x-g*.9*Math.cos(a),p=l.y-g*.9*Math.sin(a);return{point:l,core:{x:y,y:p},angle:a,length:g,type:f}}drawArrowHead(e,t,r,n,s){e.strokeStyle=this.getColor(e,t),e.fillStyle=e.strokeStyle,e.lineWidth=t.width,mT.draw(e,s)&&(this.enableShadow(e,t),Go(e).call(e),this.disableShadow(e,t))}enableShadow(e,t){t.shadow===!0&&(e.shadowColor=t.shadowColor,e.shadowBlur=t.shadowSize,e.shadowOffsetX=t.shadowX,e.shadowOffsetY=t.shadowY)}disableShadow(e,t){t.shadow===!0&&(e.shadowColor="rgba(0,0,0,0)",e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0)}drawBackground(e,t){if(t.background!==!1){const r={strokeStyle:e.strokeStyle,lineWidth:e.lineWidth,dashes:e.dashes};e.strokeStyle=t.backgroundColor,e.lineWidth=t.backgroundSize,this.setStrokeDashed(e,t.backgroundDashes),e.stroke(),e.strokeStyle=r.strokeStyle,e.lineWidth=r.lineWidth,e.dashes=r.dashes,this.setStrokeDashed(e,t.dashes)}}setStrokeDashed(e,t){if(t!==!1)if(e.setLineDash!==void 0){const r=we(t)?t:[5,5];e.setLineDash(r)}else console.warn("setLineDash is not supported in this browser. The dashed stroke cannot be used.");else e.setLineDash!==void 0?e.setLineDash([]):console.warn("setLineDash is not supported in this browser. The dashed stroke cannot be used.")}}function w1(i,e){var t=$e(i);if(ti){var r=ti(i);e&&(r=pt(r).call(r,function(n){return li(i,n).enumerable})),t.push.apply(t,r)}return t}function E1(i){for(var e=1;e2&&arguments[2]!==void 0?arguments[2]:this._getViaCoordinates();const n=10,s=.2;let o=!1,a=1,l=0,h=this.to,d,u,c=this.options.endPointOffset?this.options.endPointOffset.to:0;e.id===this.from.id&&(h=this.from,o=!0,c=this.options.endPointOffset?this.options.endPointOffset.from:0),this.options.arrowStrikethrough===!1&&(c=0);let f=0;do{u=(l+a)*.5,d=this.getPoint(u,r);const v=Math.atan2(h.y-d.y,h.x-d.x),g=h.distanceToBorder(t,v)+c,y=Math.sqrt(Math.pow(d.x-h.x,2)+Math.pow(d.y-h.y,2)),p=g-y;if(Math.abs(p)0&&(h=this._getDistanceToLine(v,g,c,f,s,o),l=h{this.positionBezierNode()},this._body.emitter.on("_repositionBezierNodes",this._boundFunction)}setOptions(e){super.setOptions(e);let t=!1;this.options.physics!==e.physics&&(t=!0),this.options=e,this.id=this.options.id,this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to],this.setupSupportNode(),this.connect(),t===!0&&(this.via.setOptions({physics:this.options.physics}),this.positionBezierNode())}connect(){this.from=this._body.nodes[this.options.from],this.to=this._body.nodes[this.options.to],this.from===void 0||this.to===void 0||this.options.physics===!1?this.via.setOptions({physics:!1}):this.from.id===this.to.id?this.via.setOptions({physics:!1}):this.via.setOptions({physics:!0})}cleanup(){return this._body.emitter.off("_repositionBezierNodes",this._boundFunction),this.via!==void 0?(delete this._body.nodes[this.via.id],this.via=void 0,!0):!1}setupSupportNode(){if(this.via===void 0){const e="edgeId:"+this.id,t=this._body.functions.createNode({id:e,shape:"circle",physics:!0,hidden:!0});this._body.nodes[e]=t,this.via=t,this.via.parentEdgeId=this.id,this.positionBezierNode()}}positionBezierNode(){this.via!==void 0&&this.from!==void 0&&this.to!==void 0?(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y)):this.via!==void 0&&(this.via.x=0,this.via.y=0)}_line(e,t,r){this._bezierCurve(e,t,r)}_getViaCoordinates(){return this.via}getViaNode(){return this.via}getPoint(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.via;if(this.from===this.to){const[r,n,s]=this._getCircleData(),o=2*Math.PI*(1-e);return{x:r+s*Math.sin(o),y:n+s-s*(1-Math.cos(o))}}else return{x:Math.pow(1-e,2)*this.fromPoint.x+2*e*(1-e)*t.x+Math.pow(e,2)*this.toPoint.x,y:Math.pow(1-e,2)*this.fromPoint.y+2*e*(1-e)*t.y+Math.pow(e,2)*this.toPoint.y}}_findBorderPosition(e,t){return this._findBorderPositionBezier(e,t,this.via)}_getDistanceToEdge(e,t,r,n,s,o){return this._getDistanceToBezierEdge(e,t,r,n,s,o,this.via)}}class _1 extends zv{constructor(e,t,r){super(e,t,r)}_line(e,t,r){this._bezierCurve(e,t,r)}getViaNode(){return this._getViaCoordinates()}_getViaCoordinates(){const e=this.options.smooth.roundness,t=this.options.smooth.type;let r=Math.abs(this.from.x-this.to.x),n=Math.abs(this.from.y-this.to.y);if(t==="discrete"||t==="diagonalCross"){let s,o;r<=n?s=o=e*n:s=o=e*r,this.from.x>this.to.x&&(s=-s),this.from.y>=this.to.y&&(o=-o);let a=this.from.x+s,l=this.from.y+o;return t==="discrete"&&(r<=n?a=rthis.to.x&&(s=-s),this.from.y>=this.to.y&&(o=-o);let a=this.from.x+s,l=this.from.y+o;return r<=n?this.from.x<=this.to.x?a=this.to.xa?this.to.x:a:this.from.y>=this.to.y?l=this.to.y>l?this.to.y:l:l=this.to.y2&&arguments[2]!==void 0?arguments[2]:{};return this._findBorderPositionBezier(e,t,r.via)}_getDistanceToEdge(e,t,r,n,s,o){let a=arguments.length>6&&arguments[6]!==void 0?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge(e,t,r,n,s,o,a)}getPoint(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._getViaCoordinates();const r=e,n=Math.pow(1-r,2)*this.fromPoint.x+2*r*(1-r)*t.x+Math.pow(r,2)*this.toPoint.x,s=Math.pow(1-r,2)*this.fromPoint.y+2*r*(1-r)*t.y+Math.pow(r,2)*this.toPoint.y;return{x:n,y:s}}}class fle extends zv{constructor(e,t,r){super(e,t,r)}_getDistanceToBezierEdge2(e,t,r,n,s,o,a,l){let h=1e9,d=e,u=t;const c=[0,0,0,0];for(let f=1;f<10;f++){const v=.1*f;c[0]=Math.pow(1-v,3),c[1]=3*v*Math.pow(1-v,2),c[2]=3*Math.pow(v,2)*(1-v),c[3]=Math.pow(v,3);const g=c[0]*e+c[1]*a.x+c[2]*l.x+c[3]*r,y=c[0]*t+c[1]*a.y+c[2]*l.y+c[3]*n;if(f>0){const p=this._getDistanceToLine(d,u,g,y,s,o);h=pMath.abs(t)||this.options.smooth.forceDirection===!0||this.options.smooth.forceDirection==="horizontal")&&this.options.smooth.forceDirection!=="vertical"?(n=this.from.y,o=this.to.y,r=this.from.x-a*e,s=this.to.x+a*e):(n=this.from.y-a*t,o=this.to.y+a*t,r=this.from.x,s=this.to.x),[{x:r,y:n},{x:s,y:o}]}getViaNode(){return this._getViaCoordinates()}_findBorderPosition(e,t){return this._findBorderPositionBezier(e,t)}_getDistanceToEdge(e,t,r,n,s,o){let[a,l]=arguments.length>6&&arguments[6]!==void 0?arguments[6]:this._getViaCoordinates();return this._getDistanceToBezierEdge2(e,t,r,n,s,o,a,l)}getPoint(e){let[t,r]=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this._getViaCoordinates();const n=e,s=[Math.pow(1-n,3),3*n*Math.pow(1-n,2),3*Math.pow(n,2)*(1-n),Math.pow(n,3)],o=s[0]*this.fromPoint.x+s[1]*t.x+s[2]*r.x+s[3]*this.toPoint.x,a=s[0]*this.fromPoint.y+s[1]*t.y+s[2]*r.y+s[3]*this.toPoint.y;return{x:o,y:a}}}class O1 extends bT{constructor(e,t,r){super(e,t,r)}_line(e,t){e.beginPath(),e.moveTo(this.fromPoint.x,this.fromPoint.y),e.lineTo(this.toPoint.x,this.toPoint.y),this.enableShadow(e,t),e.stroke(),this.disableShadow(e,t)}getViaNode(){}getPoint(e){return{x:(1-e)*this.fromPoint.x+e*this.toPoint.x,y:(1-e)*this.fromPoint.y+e*this.toPoint.y}}_findBorderPosition(e,t){let r=this.to,n=this.from;e.id===this.from.id&&(r=this.from,n=this.to);const s=Math.atan2(r.y-n.y,r.x-n.x),o=r.x-n.x,a=r.y-n.y,l=Math.sqrt(o*o+a*a),h=e.distanceToBorder(t,s),d=(l-h)/l;return{x:(1-d)*n.x+d*r.x,y:(1-d)*n.y+d*r.y,t:0}}_getDistanceToEdge(e,t,r,n,s,o){return this._getDistanceToLine(e,t,r,n,s,o)}}class Zr{constructor(e,t,r,n,s){if(t===void 0)throw new Error("No body provided");this.options=Jr(n),this.globalOptions=n,this.defaultOptions=s,this.body=t,this.imagelist=r,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.selected=!1,this.hover=!1,this.labelDirty=!0,this.baseWidth=this.options.width,this.baseFontSize=this.options.font.size,this.from=void 0,this.to=void 0,this.edgeType=void 0,this.connected=!1,this.labelModule=new Pn(this.body,this.options,!0),this.setOptions(e)}setOptions(e){if(!e)return;let t=typeof e.physics<"u"&&this.options.physics!==e.physics||typeof e.hidden<"u"&&(this.options.hidden||!1)!==(e.hidden||!1)||typeof e.from<"u"&&this.options.from!==e.from||typeof e.to<"u"&&this.options.to!==e.to;Zr.parseOptions(this.options,e,!0,this.globalOptions),e.id!==void 0&&(this.id=e.id),e.from!==void 0&&(this.fromId=e.from),e.to!==void 0&&(this.toId=e.to),e.title!==void 0&&(this.title=e.title),e.value!==void 0&&(e.value=hT(e.value));const r=[e,this.options,this.defaultOptions];return this.chooser=jv("edge",r),this.updateLabelModule(e),t=this.updateEdgeType()||t,this._setInteractionWidths(),this.connect(),t}static parseOptions(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;if(ps(["endPointOffset","arrowStrikethrough","id","from","hidden","hoverWidth","labelHighlightBold","length","line","opacity","physics","scaling","selectionWidth","selfReferenceSize","selfReference","to","title","value","width","font","chosen","widthConstraint"],e,t,r),t.endPointOffset!==void 0&&t.endPointOffset.from!==void 0&&(mi(t.endPointOffset.from)?e.endPointOffset.from=t.endPointOffset.from:(e.endPointOffset.from=n.endPointOffset.from!==void 0?n.endPointOffset.from:0,console.error("endPointOffset.from is not a valid number"))),t.endPointOffset!==void 0&&t.endPointOffset.to!==void 0&&(mi(t.endPointOffset.to)?e.endPointOffset.to=t.endPointOffset.to:(e.endPointOffset.to=n.endPointOffset.to!==void 0?n.endPointOffset.to:0,console.error("endPointOffset.to is not a valid number"))),Ml(t.label)?e.label=t.label:Ml(e.label)||(e.label=void 0),It(e,t,"smooth",n),It(e,t,"shadow",n),It(e,t,"background",n),t.dashes!==void 0&&t.dashes!==null?e.dashes=t.dashes:r===!0&&t.dashes===null&&(e.dashes=Oi(n.dashes)),t.scaling!==void 0&&t.scaling!==null?(t.scaling.min!==void 0&&(e.scaling.min=t.scaling.min),t.scaling.max!==void 0&&(e.scaling.max=t.scaling.max),It(e.scaling,t.scaling,"label",n.scaling)):r===!0&&t.scaling===null&&(e.scaling=Oi(n.scaling)),t.arrows!==void 0&&t.arrows!==null)if(typeof t.arrows=="string"){const a=t.arrows.toLowerCase();e.arrows.to.enabled=ee(a).call(a,"to")!=-1,e.arrows.middle.enabled=ee(a).call(a,"middle")!=-1,e.arrows.from.enabled=ee(a).call(a,"from")!=-1}else if(typeof t.arrows=="object")It(e.arrows,t.arrows,"to",n.arrows),It(e.arrows,t.arrows,"middle",n.arrows),It(e.arrows,t.arrows,"from",n.arrows);else throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+Ko(t.arrows));else r===!0&&t.arrows===null&&(e.arrows=Oi(n.arrows));if(t.color!==void 0&&t.color!==null){const a=In(t.color)?{color:t.color,highlight:t.color,hover:t.color,inherit:!1,opacity:1}:t.color,l=e.color;if(s)le(l,n.color,!1,r);else for(const h in l)Object.prototype.hasOwnProperty.call(l,h)&&delete l[h];if(In(l))l.color=l,l.highlight=l,l.hover=l,l.inherit=!1,a.opacity===void 0&&(l.opacity=1);else{let h=!1;a.color!==void 0&&(l.color=a.color,h=!0),a.highlight!==void 0&&(l.highlight=a.highlight,h=!0),a.hover!==void 0&&(l.hover=a.hover,h=!0),a.inherit!==void 0&&(l.inherit=a.inherit),a.opacity!==void 0&&(l.opacity=Math.min(1,Math.max(0,a.opacity))),h===!0?l.inherit=!1:l.inherit===void 0&&(l.inherit="from")}}else r===!0&&t.color===null&&(e.color=Jr(n.color));r===!0&&t.font===null&&(e.font=Jr(n.font)),Object.prototype.hasOwnProperty.call(t,"selfReferenceSize")&&(console.warn("The selfReferenceSize property has been deprecated. Please use selfReference property instead. The selfReference can be set like thise selfReference:{size:30, angle:Math.PI / 4}"),e.selfReference.size=t.selfReferenceSize)}getFormattingValues(){const e=this.options.arrows.to===!0||this.options.arrows.to.enabled===!0,t=this.options.arrows.from===!0||this.options.arrows.from.enabled===!0,r=this.options.arrows.middle===!0||this.options.arrows.middle.enabled===!0,n=this.options.color.inherit,s={toArrow:e,toArrowScale:this.options.arrows.to.scaleFactor,toArrowType:this.options.arrows.to.type,toArrowSrc:this.options.arrows.to.src,toArrowImageWidth:this.options.arrows.to.imageWidth,toArrowImageHeight:this.options.arrows.to.imageHeight,middleArrow:r,middleArrowScale:this.options.arrows.middle.scaleFactor,middleArrowType:this.options.arrows.middle.type,middleArrowSrc:this.options.arrows.middle.src,middleArrowImageWidth:this.options.arrows.middle.imageWidth,middleArrowImageHeight:this.options.arrows.middle.imageHeight,fromArrow:t,fromArrowScale:this.options.arrows.from.scaleFactor,fromArrowType:this.options.arrows.from.type,fromArrowSrc:this.options.arrows.from.src,fromArrowImageWidth:this.options.arrows.from.imageWidth,fromArrowImageHeight:this.options.arrows.from.imageHeight,arrowStrikethrough:this.options.arrowStrikethrough,color:n?void 0:this.options.color.color,inheritsColor:n,opacity:this.options.color.opacity,hidden:this.options.hidden,length:this.options.length,shadow:this.options.shadow.enabled,shadowColor:this.options.shadow.color,shadowSize:this.options.shadow.size,shadowX:this.options.shadow.x,shadowY:this.options.shadow.y,dashes:this.options.dashes,width:this.options.width,background:this.options.background.enabled,backgroundColor:this.options.background.color,backgroundSize:this.options.background.size,backgroundDashes:this.options.background.dashes};if(this.selected||this.hover)if(this.chooser===!0){if(this.selected){const o=this.options.selectionWidth;typeof o=="function"?s.width=o(s.width):typeof o=="number"&&(s.width+=o),s.width=Math.max(s.width,.3/this.body.view.scale),s.color=this.options.color.highlight,s.shadow=this.options.shadow.enabled}else if(this.hover){const o=this.options.hoverWidth;typeof o=="function"?s.width=o(s.width):typeof o=="number"&&(s.width+=o),s.width=Math.max(s.width,.3/this.body.view.scale),s.color=this.options.color.hover,s.shadow=this.options.shadow.enabled}}else typeof this.chooser=="function"&&(this.chooser(s,this.options.id,this.selected,this.hover),s.color!==void 0&&(s.inheritsColor=!1),s.shadow===!1&&(s.shadowColor!==this.options.shadow.color||s.shadowSize!==this.options.shadow.size||s.shadowX!==this.options.shadow.x||s.shadowY!==this.options.shadow.y)&&(s.shadow=!0));else s.shadow=this.options.shadow.enabled,s.width=Math.max(s.width,.3/this.body.view.scale);return s}updateLabelModule(e){const t=[e,this.options,this.globalOptions,this.defaultOptions];this.labelModule.update(this.options,t),this.labelModule.baseSize!==void 0&&(this.baseFontSize=this.labelModule.baseSize)}updateEdgeType(){const e=this.options.smooth;let t=!1,r=!0;return this.edgeType!==void 0&&((this.edgeType instanceof S1&&e.enabled===!0&&e.type==="dynamic"||this.edgeType instanceof T1&&e.enabled===!0&&e.type==="cubicBezier"||this.edgeType instanceof _1&&e.enabled===!0&&e.type!=="dynamic"&&e.type!=="cubicBezier"||this.edgeType instanceof O1&&e.type.enabled===!1)&&(r=!1),r===!0&&(t=this.cleanup())),r===!0?e.enabled===!0?e.type==="dynamic"?(t=!0,this.edgeType=new S1(this.options,this.body,this.labelModule)):e.type==="cubicBezier"?this.edgeType=new T1(this.options,this.body,this.labelModule):this.edgeType=new _1(this.options,this.body,this.labelModule):this.edgeType=new O1(this.options,this.body,this.labelModule):this.edgeType.setOptions(this.options),t}connect(){this.disconnect(),this.from=this.body.nodes[this.fromId]||void 0,this.to=this.body.nodes[this.toId]||void 0,this.connected=this.from!==void 0&&this.to!==void 0,this.connected===!0?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this)),this.edgeType.connect()}disconnect(){this.from&&(this.from.detachEdge(this),this.from=void 0),this.to&&(this.to.detachEdge(this),this.to=void 0),this.connected=!1}getTitle(){return this.title}isSelected(){return this.selected}getValue(){return this.options.value}setValueRange(e,t,r){if(this.options.value!==void 0){const n=this.options.scaling.customScalingFunction(e,t,r,this.options.value),s=this.options.scaling.max-this.options.scaling.min;if(this.options.scaling.label.enabled===!0){const o=this.options.scaling.label.max-this.options.scaling.label.min;this.options.font.size=this.options.scaling.label.min+n*o}this.options.width=this.options.scaling.min+n*s}else this.options.width=this.baseWidth,this.options.font.size=this.baseFontSize;this._setInteractionWidths(),this.updateLabelModule()}_setInteractionWidths(){typeof this.options.hoverWidth=="function"?this.edgeType.hoverWidth=this.options.hoverWidth(this.options.width):this.edgeType.hoverWidth=this.options.hoverWidth+this.options.width,typeof this.options.selectionWidth=="function"?this.edgeType.selectionWidth=this.options.selectionWidth(this.options.width):this.edgeType.selectionWidth=this.options.selectionWidth+this.options.width}draw(e){const t=this.getFormattingValues();if(t.hidden)return;const r=this.edgeType.getViaNode();this.edgeType.drawLine(e,t,this.selected,this.hover,r),this.drawLabel(e,r)}drawArrows(e){const t=this.getFormattingValues();if(t.hidden)return;const r=this.edgeType.getViaNode(),n={};this.edgeType.fromPoint=this.edgeType.from,this.edgeType.toPoint=this.edgeType.to,t.fromArrow&&(n.from=this.edgeType.getArrowData(e,"from",r,this.selected,this.hover,t),t.arrowStrikethrough===!1&&(this.edgeType.fromPoint=n.from.core),t.fromArrowSrc&&(n.from.image=this.imagelist.load(t.fromArrowSrc)),t.fromArrowImageWidth&&(n.from.imageWidth=t.fromArrowImageWidth),t.fromArrowImageHeight&&(n.from.imageHeight=t.fromArrowImageHeight)),t.toArrow&&(n.to=this.edgeType.getArrowData(e,"to",r,this.selected,this.hover,t),t.arrowStrikethrough===!1&&(this.edgeType.toPoint=n.to.core),t.toArrowSrc&&(n.to.image=this.imagelist.load(t.toArrowSrc)),t.toArrowImageWidth&&(n.to.imageWidth=t.toArrowImageWidth),t.toArrowImageHeight&&(n.to.imageHeight=t.toArrowImageHeight)),t.middleArrow&&(n.middle=this.edgeType.getArrowData(e,"middle",r,this.selected,this.hover,t),t.middleArrowSrc&&(n.middle.image=this.imagelist.load(t.middleArrowSrc)),t.middleArrowImageWidth&&(n.middle.imageWidth=t.middleArrowImageWidth),t.middleArrowImageHeight&&(n.middle.imageHeight=t.middleArrowImageHeight)),t.fromArrow&&this.edgeType.drawArrowHead(e,t,this.selected,this.hover,n.from),t.middleArrow&&this.edgeType.drawArrowHead(e,t,this.selected,this.hover,n.middle),t.toArrow&&this.edgeType.drawArrowHead(e,t,this.selected,this.hover,n.to)}drawLabel(e,t){if(this.options.label!==void 0){const r=this.from,n=this.to;this.labelModule.differentState(this.selected,this.hover)&&this.labelModule.getTextSize(e,this.selected,this.hover);let s;if(r.id!=n.id){this.labelModule.pointToSelf=!1,s=this.edgeType.getPoint(.5,t),e.save();const o=this._getRotation(e);o.angle!=0&&(e.translate(o.x,o.y),e.rotate(o.angle)),this.labelModule.draw(e,s.x,s.y,this.selected,this.hover),e.restore()}else{this.labelModule.pointToSelf=!0;const o=gT(e,this.options.selfReference.angle,this.options.selfReference.size,r);s=this._pointOnCircle(o.x,o.y,this.options.selfReference.size,this.options.selfReference.angle),this.labelModule.draw(e,s.x,s.y,this.selected,this.hover)}}}getItemsOnPoint(e){const t=[];if(this.labelModule.visible()){const n=this._getRotation();cf(this.labelModule.getSize(),e,n)&&t.push({edgeId:this.id,labelId:0})}const r={left:e.x,top:e.y};return this.isOverlappingWith(r)&&t.push({edgeId:this.id}),t}isOverlappingWith(e){if(this.connected){const r=this.from.x,n=this.from.y,s=this.to.x,o=this.to.y,a=e.left,l=e.top;return this.edgeType.getDistanceToEdge(r,n,s,o,a,l)<10}else return!1}_getRotation(e){const t=this.edgeType.getViaNode(),r=this.edgeType.getPoint(.5,t);e!==void 0&&this.labelModule.calculateLabelSize(e,this.selected,this.hover,r.x,r.y);const n={x:r.x,y:this.labelModule.size.yLine,angle:0};if(!this.labelModule.visible()||this.options.font.align==="horizontal")return n;const s=this.from.y-this.to.y,o=this.from.x-this.to.x;let a=Math.atan2(s,o);return(a<-1&&o<0||a>0&&o<0)&&(a+=Math.PI),n.angle=a,n}_pointOnCircle(e,t,r,n){return{x:e+r*Math.cos(n),y:t-r*Math.sin(n)}}select(){this.selected=!0}unselect(){this.selected=!1}cleanup(){return this.edgeType.cleanup()}remove(){this.cleanup(),this.disconnect(),delete this.body.edges[this.id]}endPointsValid(){return this.body.nodes[this.fromId]!==void 0&&this.body.nodes[this.toId]!==void 0}}class vle{constructor(e,t,r){var n;this.body=e,this.images=t,this.groups=r,this.body.functions.createEdge=O(n=this.create).call(n,this),this.edgesListeners={add:(s,o)=>{this.add(o.items)},update:(s,o)=>{this.update(o.items)},remove:(s,o)=>{this.remove(o.items)}},this.options={},this.defaultOptions={arrows:{to:{enabled:!1,scaleFactor:1,type:"arrow"},middle:{enabled:!1,scaleFactor:1,type:"arrow"},from:{enabled:!1,scaleFactor:1,type:"arrow"}},endPointOffset:{from:0,to:0},arrowStrikethrough:!0,color:{color:"#848484",highlight:"#848484",hover:"#848484",inherit:"from",opacity:1},dashes:!1,font:{color:"#343434",size:14,face:"arial",background:"none",strokeWidth:2,strokeColor:"#ffffff",align:"horizontal",multi:!1,vadjust:0,bold:{mod:"bold"},boldital:{mod:"bold italic"},ital:{mod:"italic"},mono:{mod:"",size:15,face:"courier new",vadjust:2}},hidden:!1,hoverWidth:1.5,label:void 0,labelHighlightBold:!0,length:void 0,physics:!0,scaling:{min:1,max:15,label:{enabled:!0,min:14,max:30,maxVisible:30,drawThreshold:5},customScalingFunction:function(s,o,a,l){if(o===s)return .5;{const h=1/(o-s);return Math.max(0,(l-s)*h)}}},selectionWidth:1.5,selfReference:{size:20,angle:Math.PI/4,renderBehindTheNode:!0},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:10,x:5,y:5},background:{enabled:!1,color:"rgba(111,111,111,1)",size:10,dashes:!1},smooth:{enabled:!0,type:"dynamic",forceDirection:"none",roundness:.5},title:void 0,width:1,value:void 0},le(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){var e=this,t,r;this.body.emitter.on("_forceDisableDynamicCurves",function(n){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;n==="dynamic"&&(n="continuous");let o=!1;for(const a in e.body.edges)if(Object.prototype.hasOwnProperty.call(e.body.edges,a)){const l=e.body.edges[a],h=e.body.data.edges.get(a);if(h!=null){const d=h.smooth;d!==void 0&&d.enabled===!0&&d.type==="dynamic"&&(n===void 0?l.setOptions({smooth:!1}):l.setOptions({smooth:{type:n}}),o=!0)}}s===!0&&o===!0&&e.body.emitter.emit("_dataChanged")}),this.body.emitter.on("_dataUpdated",()=>{this.reconnectEdges()}),this.body.emitter.on("refreshEdges",O(t=this.refresh).call(t,this)),this.body.emitter.on("refresh",O(r=this.refresh).call(r,this)),this.body.emitter.on("destroy",()=>{X(this.edgesListeners,(n,s)=>{this.body.data.edges&&this.body.data.edges.off(s,n)}),delete this.body.functions.createEdge,delete this.edgesListeners.add,delete this.edgesListeners.update,delete this.edgesListeners.remove,delete this.edgesListeners})}setOptions(e){if(e!==void 0){Zr.parseOptions(this.options,e,!0,this.defaultOptions,!0);let t=!1;if(e.smooth!==void 0)for(const r in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,r)&&(t=this.body.edges[r].updateEdgeType()||t);if(e.font!==void 0)for(const r in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,r)&&this.body.edges[r].updateLabelModule();(e.hidden!==void 0||e.physics!==void 0||t===!0)&&this.body.emitter.emit("_dataChanged")}}setData(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const r=this.body.data.edges;if(NE("id",e))this.body.data.edges=e;else if(we(e))this.body.data.edges=new _l,this.body.data.edges.add(e);else if(!e)this.body.data.edges=new _l;else throw new TypeError("Array or DataSet expected");if(r&&X(this.edgesListeners,(n,s)=>{r.off(s,n)}),this.body.edges={},this.body.data.edges){X(this.edgesListeners,(s,o)=>{this.body.data.edges.on(o,s)});const n=this.body.data.edges.getIds();this.add(n,!0)}this.body.emitter.emit("_adjustEdgesForHierarchicalLayout"),t===!1&&this.body.emitter.emit("_dataChanged")}add(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const r=this.body.edges,n=this.body.data.edges;for(let s=0;s1&&arguments[1]!==void 0?arguments[1]:!0;if(e.length===0)return;const r=this.body.edges;X(e,n=>{const s=r[n];s!==void 0&&s.remove()}),t&&this.body.emitter.emit("_dataChanged")}refresh(){X(this.body.edges,(e,t)=>{const r=this.body.data.edges.get(t);r!==void 0&&e.setOptions(r)})}create(e){return new Zr(e,this.body,this.images,this.options,this.defaultOptions)}reconnectEdges(){let e;const t=this.body.nodes,r=this.body.edges;for(e in t)Object.prototype.hasOwnProperty.call(t,e)&&(t[e].edges=[]);for(e in r)if(Object.prototype.hasOwnProperty.call(r,e)){const n=r[e];n.from=null,n.to=null,n.connect()}}getConnectedNodes(e){const t=[];if(this.body.edges[e]!==void 0){const r=this.body.edges[e];r.fromId!==void 0&&t.push(r.fromId),r.toId!==void 0&&t.push(r.toId)}return t}_updateState(){this._addMissingEdges(),this._removeInvalidEdges()}_removeInvalidEdges(){const e=[];X(this.body.edges,(t,r)=>{const n=this.body.nodes[t.toId],s=this.body.nodes[t.fromId];n!==void 0&&n.isCluster===!0||s!==void 0&&s.isCluster===!0||(n===void 0||s===void 0)&&e.push(r)}),this.remove(e,!1)}_addMissingEdges(){const e=this.body.data.edges;if(e==null)return;const t=this.body.edges,r=[];oe(e).call(e,(n,s)=>{t[s]===void 0&&r.push(s)}),this.add(r,!0)}}class $T{constructor(e,t,r){this.body=e,this.physicsBody=t,this.barnesHutTree,this.setOptions(r),this._rng=Rh("BARNES HUT SOLVER")}setOptions(e){this.options=e,this.thetaInversed=1/this.options.theta,this.overlapAvoidanceFactor=1-Math.max(0,Math.min(1,this.options.avoidOverlap))}solve(){if(this.options.gravitationalConstant!==0&&this.physicsBody.physicsNodeIndices.length>0){let e;const t=this.body.nodes,r=this.physicsBody.physicsNodeIndices,n=r.length,s=this._formBarnesHutTree(t,r);this.barnesHutTree=s;for(let o=0;o0&&this._getForceContributions(s.root,e)}}_getForceContributions(e,t){this._getForceContribution(e.children.NW,t),this._getForceContribution(e.children.NE,t),this._getForceContribution(e.children.SW,t),this._getForceContribution(e.children.SE,t)}_getForceContribution(e,t){if(e.childrenCount>0){const r=e.centerOfMass.x-t.x,n=e.centerOfMass.y-t.y,s=Math.sqrt(r*r+n*n);s*e.calcSize>this.thetaInversed?this._calculateForces(s,r,n,t,e):e.childrenCount===4?this._getForceContributions(e,t):e.children.data.id!=t.id&&this._calculateForces(s,r,n,t,e)}}_calculateForces(e,t,r,n,s){e===0&&(e=.1,t=e),this.overlapAvoidanceFactor<1&&n.shape.radius&&(e=Math.max(.1+this.overlapAvoidanceFactor*n.shape.radius,e-n.shape.radius));const o=this.options.gravitationalConstant*s.mass*n.options.mass/Math.pow(e,3),a=t*o,l=r*o;this.physicsBody.forces[n.id].x+=a,this.physicsBody.forces[n.id].y+=l}_formBarnesHutTree(e,t){let r;const n=t.length;let s=e[t[0]].x,o=e[t[0]].y,a=e[t[0]].x,l=e[t[0]].y;for(let y=1;y0&&(ma&&(a=m),wl&&(l=w))}const h=Math.abs(a-s)-Math.abs(l-o);h>0?(o-=.5*h,l+=.5*h):(s+=.5*h,a-=.5*h);const u=Math.max(1e-5,Math.abs(a-s)),c=.5*u,f=.5*(s+a),v=.5*(o+l),g={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:f-c,maxX:f+c,minY:v-c,maxY:v+c},size:u,calcSize:1/u,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(g.root);for(let y=0;y0&&this._placeInTree(g.root,r);return g}_updateBranchMass(e,t){const r=e.centerOfMass,n=e.mass+t.options.mass,s=1/n;r.x=r.x*e.mass+t.x*t.options.mass,r.x*=s,r.y=r.y*e.mass+t.y*t.options.mass,r.y*=s,e.mass=n;const o=Math.max(Math.max(t.height,t.radius),t.width);e.maxWidth=e.maxWidtht.x?n.maxY>t.y?s="NW":s="SW":n.maxY>t.y?s="NE":s="SE",this._placeInRegion(e,t,s)}_placeInRegion(e,t,r){const n=e.children[r];switch(n.childrenCount){case 0:n.children.data=t,n.childrenCount=1,this._updateBranchMass(n,t);break;case 1:n.children.data.x===t.x&&n.children.data.y===t.y?(t.x+=this._rng(),t.y+=this._rng()):(this._splitBranch(n),this._placeInTree(n,t));break;case 4:this._placeInTree(n,t);break}}_splitBranch(e){let t=null;e.childrenCount===1&&(t=e.children.data,e.mass=0,e.centerOfMass.x=0,e.centerOfMass.y=0),e.childrenCount=4,e.children.data=null,this._insertRegion(e,"NW"),this._insertRegion(e,"NE"),this._insertRegion(e,"SW"),this._insertRegion(e,"SE"),t!=null&&this._placeInTree(e,t)}_insertRegion(e,t){let r,n,s,o;const a=.5*e.size;switch(t){case"NW":r=e.range.minX,n=e.range.minX+a,s=e.range.minY,o=e.range.minY+a;break;case"NE":r=e.range.minX+a,n=e.range.maxX,s=e.range.minY,o=e.range.minY+a;break;case"SW":r=e.range.minX,n=e.range.minX+a,s=e.range.minY+a,o=e.range.maxY;break;case"SE":r=e.range.minX+a,n=e.range.maxX,s=e.range.minY+a,o=e.range.maxY;break}e.children[t]={centerOfMass:{x:0,y:0},mass:0,range:{minX:r,maxX:n,minY:s,maxY:o},size:.5*e.size,calcSize:2*e.calcSize,children:{data:null},maxWidth:0,level:e.level+1,childrenCount:0}}_debug(e,t){this.barnesHutTree!==void 0&&(e.lineWidth=1,this._drawBranch(this.barnesHutTree.root,e,t))}_drawBranch(e,t,r){r===void 0&&(r="#FF0000"),e.childrenCount===4&&(this._drawBranch(e.children.NW,t),this._drawBranch(e.children.NE,t),this._drawBranch(e.children.SE,t),this._drawBranch(e.children.SW,t)),t.strokeStyle=r,t.beginPath(),t.moveTo(e.range.minX,e.range.minY),t.lineTo(e.range.maxX,e.range.minY),t.stroke(),t.beginPath(),t.moveTo(e.range.maxX,e.range.minY),t.lineTo(e.range.maxX,e.range.maxY),t.stroke(),t.beginPath(),t.moveTo(e.range.maxX,e.range.maxY),t.lineTo(e.range.minX,e.range.maxY),t.stroke(),t.beginPath(),t.moveTo(e.range.minX,e.range.maxY),t.lineTo(e.range.minX,e.range.minY),t.stroke()}}class ple{constructor(e,t,r){this._rng=Rh("REPULSION SOLVER"),this.body=e,this.physicsBody=t,this.setOptions(r)}setOptions(e){this.options=e}solve(){let e,t,r,n,s,o,a,l;const h=this.body.nodes,d=this.physicsBody.physicsNodeIndices,u=this.physicsBody.forces,c=this.options.nodeDistance,f=-2/3/c,v=4/3;for(let g=0;g0){const o=s.edges.length+1,a=this.options.centralGravity*o*s.options.mass;n[s.id].x=t*a,n[s.id].y=r*a}}}class $le{constructor(e){this.body=e,this.physicsBody={physicsNodeIndices:[],physicsEdgeIndices:[],forces:{},velocities:{}},this.physicsEnabled=!0,this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},this.referenceState={},this.freezeCache={},this.renderTimer=void 0,this.adaptiveTimestep=!1,this.adaptiveTimestepEnabled=!1,this.adaptiveCounter=0,this.adaptiveInterval=3,this.stabilized=!1,this.startedStabilization=!1,this.stabilizationIterations=0,this.ready=!1,this.options={},this.defaultOptions={enabled:!0,barnesHut:{theta:.5,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09,avoidOverlap:0},forceAtlas2Based:{theta:.5,gravitationalConstant:-50,centralGravity:.01,springConstant:.08,springLength:100,damping:.4,avoidOverlap:0},repulsion:{centralGravity:.2,springLength:200,springConstant:.05,nodeDistance:100,damping:.09,avoidOverlap:0},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:120,damping:.09},maxVelocity:50,minVelocity:.75,solver:"barnesHut",stabilization:{enabled:!0,iterations:1e3,updateInterval:50,onlyDynamicEdges:!1,fit:!0},timestep:.5,adaptiveTimestep:!0,wind:{x:0,y:0}},Ae(this.options,this.defaultOptions),this.timestep=.5,this.layoutFailed=!1,this.bindEventListeners()}bindEventListeners(){this.body.emitter.on("initPhysics",()=>{this.initPhysics()}),this.body.emitter.on("_layoutFailed",()=>{this.layoutFailed=!0}),this.body.emitter.on("resetPhysics",()=>{this.stopSimulation(),this.ready=!1}),this.body.emitter.on("disablePhysics",()=>{this.physicsEnabled=!1,this.stopSimulation()}),this.body.emitter.on("restorePhysics",()=>{this.setOptions(this.options),this.ready===!0&&this.startSimulation()}),this.body.emitter.on("startSimulation",()=>{this.ready===!0&&this.startSimulation()}),this.body.emitter.on("stopSimulation",()=>{this.stopSimulation()}),this.body.emitter.on("destroy",()=>{this.stopSimulation(!1),this.body.emitter.off()}),this.body.emitter.on("_dataChanged",()=>{this.updatePhysicsData()})}setOptions(e){if(e!==void 0)if(e===!1)this.options.enabled=!1,this.physicsEnabled=!1,this.stopSimulation();else if(e===!0)this.options.enabled=!0,this.physicsEnabled=!0,this.startSimulation();else{this.physicsEnabled=!0,Al(["stabilization"],this.options,e),It(this.options,e,"stabilization"),e.enabled===void 0&&(this.options.enabled=!0),this.options.enabled===!1&&(this.physicsEnabled=!1,this.stopSimulation());const t=this.options.wind;t&&((typeof t.x!="number"||df(t.x))&&(t.x=0),(typeof t.y!="number"||df(t.y))&&(t.y=0)),this.timestep=this.options.timestep}this.init()}init(){let e;this.options.solver==="forceAtlas2Based"?(e=this.options.forceAtlas2Based,this.nodesSolver=new mle(this.body,this.physicsBody,e),this.edgesSolver=new Yc(this.body,this.physicsBody,e),this.gravitySolver=new ble(this.body,this.physicsBody,e)):this.options.solver==="repulsion"?(e=this.options.repulsion,this.nodesSolver=new ple(this.body,this.physicsBody,e),this.edgesSolver=new Yc(this.body,this.physicsBody,e),this.gravitySolver=new al(this.body,this.physicsBody,e)):this.options.solver==="hierarchicalRepulsion"?(e=this.options.hierarchicalRepulsion,this.nodesSolver=new gle(this.body,this.physicsBody,e),this.edgesSolver=new yle(this.body,this.physicsBody,e),this.gravitySolver=new al(this.body,this.physicsBody,e)):(e=this.options.barnesHut,this.nodesSolver=new $T(this.body,this.physicsBody,e),this.edgesSolver=new Yc(this.body,this.physicsBody,e),this.gravitySolver=new al(this.body,this.physicsBody,e)),this.modelOptions=e}initPhysics(){this.physicsEnabled===!0&&this.options.enabled===!0?this.options.stabilization.enabled===!0?this.stabilize():(this.stabilized=!1,this.ready=!0,this.body.emitter.emit("fit",{},this.layoutFailed),this.startSimulation()):(this.ready=!0,this.body.emitter.emit("fit"))}startSimulation(){if(this.physicsEnabled===!0&&this.options.enabled===!0){if(this.stabilized=!1,this.adaptiveTimestep=!1,this.body.emitter.emit("_resizeNodes"),this.viewFunction===void 0){var e;this.viewFunction=O(e=this.simulationStep).call(e,this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering")}}else this.body.emitter.emit("_redraw")}stopSimulation(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;this.stabilized=!0,e===!0&&this._emitStabilized(),this.viewFunction!==void 0&&(this.body.emitter.off("initRedraw",this.viewFunction),this.viewFunction=void 0,e===!0&&this.body.emitter.emit("_stopRendering"))}simulationStep(){const e=xl();this.physicsTick(),(xl()-e<.4*this.simulationInterval||this.runDoubleSpeed===!0)&&this.stabilized===!1&&(this.physicsTick(),this.runDoubleSpeed=!0),this.stabilized===!0&&this.stopSimulation()}_emitStabilized(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.stabilizationIterations;(this.stabilizationIterations>1||this.startedStabilization===!0)&&ir(()=>{this.body.emitter.emit("stabilized",{iterations:e}),this.startedStabilization=!1,this.stabilizationIterations=0},0)}physicsStep(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve(),this.moveNodes()}adjustTimeStep(){this._evaluateStepQuality()===!0?this.timestep=1.2*this.timestep:this.timestep/1.2o))return!1;return!0}moveNodes(){const e=this.physicsBody.physicsNodeIndices;let t=0,r=0;const n=5;for(let s=0;so&&(e=e>0?o:-o),e}_performStep(e){const t=this.body.nodes[e],r=this.physicsBody.forces[e];this.options.wind&&(r.x+=this.options.wind.x,r.y+=this.options.wind.y);const n=this.physicsBody.velocities[e];return this.previousStates[e]={x:t.x,y:t.y,vx:n.x,vy:n.y},t.options.fixed.x===!1?(n.x=this.calculateComponentVelocity(n.x,r.x,t.options.mass),t.x+=n.x*this.timestep):(r.x=0,n.x=0),t.options.fixed.y===!1?(n.y=this.calculateComponentVelocity(n.y,r.y,t.options.mass),t.y+=n.y*this.timestep):(r.y=0,n.y=0),Math.sqrt(Math.pow(n.x,2)+Math.pow(n.y,2))}_freezeNodes(){const e=this.body.nodes;for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&e[t].x&&e[t].y){const r=e[t].options.fixed;this.freezeCache[t]={x:r.x,y:r.y},r.x=!0,r.y=!0}}_restoreFrozenNodes(){const e=this.body.nodes;for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&this.freezeCache[t]!==void 0&&(e[t].options.fixed.x=this.freezeCache[t].x,e[t].options.fixed.y=this.freezeCache[t].y);this.freezeCache={}}stabilize(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.stabilization.iterations;if(typeof e!="number"&&(e=this.options.stabilization.iterations,console.error("The stabilize method needs a numeric amount of iterations. Switching to default: ",e)),this.physicsBody.physicsNodeIndices.length===0){this.ready=!0;return}this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedraw"),this.targetIterations=e,this.options.stabilization.onlyDynamicEdges===!0&&this._freezeNodes(),this.stabilizationIterations=0,ir(()=>this._stabilizationBatch(),0)}_startStabilizing(){return this.startedStabilization===!0?!1:(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0,!0)}_stabilizationBatch(){const e=()=>this.stabilized===!1&&this.stabilizationIterations{this.body.emitter.emit("stabilizationProgress",{iterations:this.stabilizationIterations,total:this.targetIterations})};this._startStabilizing()&&t();let r=0;for(;e()&&r1&&arguments[1]!==void 0?arguments[1]:[],r=1e9,n=-1e9,s=1e9,o=-1e9,a;if(t.length>0)for(let l=0;la.shape.boundingBox.left&&(s=a.shape.boundingBox.left),oa.shape.boundingBox.top&&(r=a.shape.boundingBox.top),n1&&arguments[1]!==void 0?arguments[1]:[],r=1e9,n=-1e9,s=1e9,o=-1e9,a;if(t.length>0)for(let l=0;la.x&&(s=a.x),oa.y&&(r=a.y),n{delete this.containedEdges[r.id]}),X(t.containedNodes,(r,n)=>{this.containedNodes[n]=r}),t.containedNodes={},X(t.containedEdges,(r,n)=>{this.containedEdges[n]=r}),t.containedEdges={},X(t.edges,r=>{X(this.edges,n=>{var s,o;const a=ee(s=n.clusteringEdgeReplacingIds).call(s,r.id);a!==-1&&(X(r.clusteringEdgeReplacingIds,l=>{n.clusteringEdgeReplacingIds.push(l),this.body.edges[l].edgeReplacedById=n.id}),yr(o=n.clusteringEdgeReplacingIds).call(o,a,1))})}),t.edges=[]}}class Ole{constructor(e){this.body=e,this.clusteredNodes={},this.clusteredEdges={},this.options={},this.defaultOptions={},Ae(this.options,this.defaultOptions),this.body.emitter.on("_resetData",()=>{this.clusteredNodes={},this.clusteredEdges={}})}clusterByHubsize(e,t){e===void 0?e=this._getHubSize():typeof e=="object"&&(t=this._checkOptions(e),e=this._getHubSize());const r=[];for(let n=0;n=e&&r.push(s.id)}for(let n=0;n0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(e.joinCondition===void 0)throw new Error("Cannot call clusterByNodeData without a joinCondition function in the options.");e=this._checkOptions(e);const r={},n={};X(this.body.nodes,(s,o)=>{s.options&&e.joinCondition(s.options)===!0&&(r[o]=s,X(s.edges,a=>{this.clusteredEdges[a.id]===void 0&&(n[a.id]=a)}))}),this._cluster(r,n,e,t)}clusterByEdgeCount(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;t=this._checkOptions(t);const n=[],s={};let o,a,l;for(let h=0;h0&&$e(u).length>0&&g===!0){const p=function(){for(let m=0;m1&&arguments[1]!==void 0?arguments[1]:!0;this.clusterByEdgeCount(1,e,t)}clusterBridges(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;this.clusterByEdgeCount(2,e,t)}clusterByConnection(e,t){var r;let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0)throw new Error("No nodeId supplied to clusterByConnection!");if(this.body.nodes[e]===void 0)throw new Error("The nodeId given to clusterByConnection does not exist!");const s=this.body.nodes[e];t=this._checkOptions(t,s),t.clusterNodeProperties.x===void 0&&(t.clusterNodeProperties.x=s.x),t.clusterNodeProperties.y===void 0&&(t.clusterNodeProperties.y=s.y),t.clusterNodeProperties.fixed===void 0&&(t.clusterNodeProperties.fixed={},t.clusterNodeProperties.fixed.x=s.options.fixed.x,t.clusterNodeProperties.fixed.y=s.options.fixed.y);const o={},a={},l=s.id,h=nt.cloneOptions(s);o[l]=s;for(let u=0;u-1&&(a[v.id]=v)}}this._cluster(o,a,t,n)}_createClusterEdges(e,t,r,n){let s,o,a,l,h,d;const u=$e(e),c=[];for(let g=0;g0&&arguments[0]!==void 0?arguments[0]:{};return e.clusterEdgeProperties===void 0&&(e.clusterEdgeProperties={}),e.clusterNodeProperties===void 0&&(e.clusterNodeProperties={}),e}_cluster(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0;const s=[];for(const d in e)Object.prototype.hasOwnProperty.call(e,d)&&this.clusteredNodes[d]!==void 0&&s.push(d);for(let d=0;dn?a.x:n,s=a.yo?a.y:o;return{x:.5*(r+n),y:.5*(s+o)}}openCluster(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0)throw new Error("No clusterNodeId supplied to openCluster.");const n=this.body.nodes[e];if(n===void 0)throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(n.isCluster!==!0||n.containedNodes===void 0||n.containedEdges===void 0)throw new Error("The node:"+e+" is not a valid cluster.");const s=this.findNode(e),o=ee(s).call(s,e)-1;if(o>=0){const d=s[o];this.body.nodes[d]._openChildCluster(e),delete this.body.nodes[e],r===!0&&this.body.emitter.emit("_dataChanged");return}const a=n.containedNodes,l=n.containedEdges;if(t!==void 0&&t.releaseFunction!==void 0&&typeof t.releaseFunction=="function"){const d={},u={x:n.x,y:n.y};for(const f in a)if(Object.prototype.hasOwnProperty.call(a,f)){const v=this.body.nodes[f];d[f]={x:v.x,y:v.y}}const c=t.releaseFunction(u,d);for(const f in a)if(Object.prototype.hasOwnProperty.call(a,f)){const v=this.body.nodes[f];c[f]!==void 0&&(v.x=c[f].x===void 0?n.x:c[f].x,v.y=c[f].y===void 0?n.y:c[f].y)}}else X(a,function(d){d.options.fixed.x===!1&&(d.x=n.x),d.options.fixed.y===!1&&(d.y=n.y)});for(const d in a)if(Object.prototype.hasOwnProperty.call(a,d)){const u=this.body.nodes[d];u.vx=n.vx,u.vy=n.vy,u.setOptions({physics:!0}),delete this.clusteredNodes[d]}const h=[];for(let d=0;d0&&on&&(n=h.edges.length),e+=h.edges.length,t+=Math.pow(h.edges.length,2),r+=1}e=e/r,t=t/r;const s=t-Math.pow(e,2),o=Math.sqrt(s);let a=Math.floor(e+2*o);return a>n&&(a=n),a}_createClusteredEdge(e,t,r,n,s){const o=nt.cloneOptions(r,"edge");le(o,n),o.from=e,o.to=t,o.id="clusterEdge:"+Fs(),s!==void 0&&le(o,s);const a=this.body.functions.createEdge(o);return a.clusteringEdgeReplacingIds=[r.id],a.connect(),this.body.edges[a.id]=a,a}_clusterEdges(e,t,r,n){if(t instanceof Zr){const s=t,o={};o[s.id]=s,t=o}if(e instanceof fe){const s=e,o={};o[s.id]=s,e=o}if(r==null)throw new Error("_clusterEdges: parameter clusterNode required");n===void 0&&(n=r.clusterEdgeProperties),this._createClusterEdges(e,t,r,n);for(const s in t)if(Object.prototype.hasOwnProperty.call(t,s)&&this.body.edges[s]!==void 0){const o=this.body.edges[s];this._backupEdgeOptions(o),o.setOptions({physics:!1})}for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&(this.clusteredNodes[s]={clusterId:r.id,node:this.body.nodes[s]},this.body.nodes[s].setOptions({physics:!1}))}_getClusterNodeForNode(e){if(e===void 0)return;const t=this.clusteredNodes[e];if(t===void 0)return;const r=t.clusterId;if(r!==void 0)return this.body.nodes[r]}_filter(e,t){const r=[];return X(e,n=>{t(n)&&r.push(n)}),r}_updateState(){let e;const t=[],r={},n=l=>{X(this.body.nodes,h=>{h.isCluster===!0&&l(h)})};for(e in this.clusteredNodes){if(!Object.prototype.hasOwnProperty.call(this.clusteredNodes,e))continue;this.body.nodes[e]===void 0&&t.push(e)}n(function(l){for(let h=0;h{const h=this.body.edges[l];(h===void 0||!h.endPointsValid())&&(r[l]=l)}),n(function(l){X(l.containedEdges,(h,d)=>{!h.endPointsValid()&&!r[d]&&(r[d]=d)})}),X(this.body.edges,(l,h)=>{let d=!0;const u=l.clusteringEdgeReplacingIds;if(u!==void 0){let c=0;X(u,f=>{const v=this.body.edges[f];v!==void 0&&v.endPointsValid()&&(c+=1)}),d=c>0}(!l.endPointsValid()||!d)&&(r[h]=h)}),n(l=>{X(r,h=>{delete l.containedEdges[h],X(l.edges,(d,u)=>{if(d.id===h){l.edges[u]=null;return}d.clusteringEdgeReplacingIds=this._filter(d.clusteringEdgeReplacingIds,function(c){return!r[c]})}),l.edges=this._filter(l.edges,function(d){return d!==null})})}),X(r,l=>{delete this.clusteredEdges[l]}),X(r,l=>{delete this.body.edges[l]});const s=$e(this.body.edges);X(s,l=>{const h=this.body.edges[l],d=this._isClusteredNode(h.fromId)||this._isClusteredNode(h.toId);if(d!==this._isClusteredEdge(h.id))if(d){const u=this._getClusterNodeForNode(h.fromId);u!==void 0&&this._clusterEdges(this.body.nodes[h.fromId],h,u);const c=this._getClusterNodeForNode(h.toId);c!==void 0&&this._clusterEdges(this.body.nodes[h.toId],h,c)}else delete this._clusterEdges[l],this._restoreEdge(h)});let o=!1,a=!0;for(;a;){const l=[];n(function(h){const d=$e(h.containedNodes).length,u=h.options.allowSingleNodeCluster===!0;(u&&d<1||!u&&d<2)&&l.push(h.id)});for(let h=0;h0,o=o||a}o&&this._updateState()}_isClusteredNode(e){return this.clusteredNodes[e]!==void 0}_isClusteredEdge(e){return this.clusteredEdges[e]!==void 0}}function Ile(){let i;window!==void 0&&(i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame),i===void 0?window.requestAnimationFrame=function(e){e()}:window.requestAnimationFrame=i}class xle{constructor(e,t){Ile(),this.body=e,this.canvas=t,this.redrawRequested=!1,this.renderTimer=void 0,this.requiresTimeout=!0,this.renderingActive=!1,this.renderRequests=0,this.allowRedraw=!0,this.dragging=!1,this.zooming=!1,this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideEdgesOnZoom:!1,hideNodesOnDrag:!1},Ae(this.options,this.defaultOptions),this._determineBrowserMethod(),this.bindEventListeners()}bindEventListeners(){var e;this.body.emitter.on("dragStart",()=>{this.dragging=!0}),this.body.emitter.on("dragEnd",()=>{this.dragging=!1}),this.body.emitter.on("zoom",()=>{this.zooming=!0,window.clearTimeout(this.zoomTimeoutId),this.zoomTimeoutId=ir(()=>{var t;this.zooming=!1,O(t=this._requestRedraw).call(t,this)()},250)}),this.body.emitter.on("_resizeNodes",()=>{this._resizeNodes()}),this.body.emitter.on("_redraw",()=>{this.renderingActive===!1&&this._redraw()}),this.body.emitter.on("_blockRedraw",()=>{this.allowRedraw=!1}),this.body.emitter.on("_allowRedraw",()=>{this.allowRedraw=!0,this.redrawRequested=!1}),this.body.emitter.on("_requestRedraw",O(e=this._requestRedraw).call(e,this)),this.body.emitter.on("_startRendering",()=>{this.renderRequests+=1,this.renderingActive=!0,this._startRendering()}),this.body.emitter.on("_stopRendering",()=>{this.renderRequests-=1,this.renderingActive=this.renderRequests>0,this.renderTimer=void 0}),this.body.emitter.on("destroy",()=>{this.renderRequests=0,this.allowRedraw=!1,this.renderingActive=!1,this.requiresTimeout===!0?clearTimeout(this.renderTimer):window.cancelAnimationFrame(this.renderTimer),this.body.emitter.off()})}setOptions(e){e!==void 0&&ps(["hideEdgesOnDrag","hideEdgesOnZoom","hideNodesOnDrag"],this.options,e)}_requestNextFrame(e,t){if(typeof window>"u")return;let r;const n=window;return this.requiresTimeout===!0?r=ir(e,t):n.requestAnimationFrame&&(r=n.requestAnimationFrame(e)),r}_startRendering(){if(this.renderingActive===!0&&this.renderTimer===void 0){var e;this.renderTimer=this._requestNextFrame(O(e=this._renderStep).call(e,this),this.simulationInterval)}}_renderStep(){this.renderingActive===!0&&(this.renderTimer=void 0,this.requiresTimeout===!0&&this._startRendering(),this._redraw(),this.requiresTimeout===!1&&this._startRendering())}redraw(){this.body.emitter.emit("setSize"),this._redraw()}_requestRedraw(){this.redrawRequested!==!0&&this.renderingActive===!1&&this.allowRedraw===!0&&(this.redrawRequested=!0,this._requestNextFrame(()=>{this._redraw(!1)},0))}_redraw(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;if(this.allowRedraw===!0){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1;const t={drawExternalLabels:null};(this.canvas.frame.canvas.width===0||this.canvas.frame.canvas.height===0)&&this.canvas.setSize(),this.canvas.setTransform();const r=this.canvas.getContext(),n=this.canvas.frame.canvas.clientWidth,s=this.canvas.frame.canvas.clientHeight;if(r.clearRect(0,0,n,s),this.canvas.frame.clientWidth===0)return;if(r.save(),r.translate(this.body.view.translation.x,this.body.view.translation.y),r.scale(this.body.view.scale,this.body.view.scale),r.beginPath(),this.body.emitter.emit("beforeDrawing",r),r.closePath(),e===!1&&(this.dragging===!1||this.dragging===!0&&this.options.hideEdgesOnDrag===!1)&&(this.zooming===!1||this.zooming===!0&&this.options.hideEdgesOnZoom===!1)&&this._drawEdges(r),this.dragging===!1||this.dragging===!0&&this.options.hideNodesOnDrag===!1){const{drawExternalLabels:o}=this._drawNodes(r,e);t.drawExternalLabels=o}e===!1&&(this.dragging===!1||this.dragging===!0&&this.options.hideEdgesOnDrag===!1)&&(this.zooming===!1||this.zooming===!0&&this.options.hideEdgesOnZoom===!1)&&this._drawArrows(r),t.drawExternalLabels!=null&&t.drawExternalLabels(),e===!1&&this._drawSelectionBox(r),r.beginPath(),this.body.emitter.emit("afterDrawing",r),r.closePath(),r.restore(),e===!0&&r.clearRect(0,0,n,s)}}_resizeNodes(){this.canvas.setTransform();const e=this.canvas.getContext();e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale);const t=this.body.nodes;let r;for(const n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r=t[n],r.resize(e),r.updateBoundingBox(e,r.selected));e.restore()}_drawNodes(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const r=this.body.nodes,n=this.body.nodeIndices;let s;const o=[],a=[],l=20,h=this.canvas.DOMtoCanvas({x:-l,y:-l}),d=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+l,y:this.canvas.frame.canvas.clientHeight+l}),u={top:h.y,left:h.x,bottom:d.y,right:d.x},c=[];for(let y=0;y{for(const y of c)y()}}}_drawEdges(e){const t=this.body.edges,r=this.body.edgeIndices;for(let n=0;n{t.width!==0&&(this.body.view.translation.x=t.width*.5),t.height!==0&&(this.body.view.translation.y=t.height*.5)}),this.body.emitter.on("setSize",O(e=this.setSize).call(e,this)),this.body.emitter.on("destroy",()=>{this.hammerFrame.destroy(),this.hammer.destroy(),this._cleanUp()})}setOptions(e){if(e!==void 0&&ps(["width","height","autoResize"],this.options,e),this._cleanUp(),this.options.autoResize===!0){var t;if(window.ResizeObserver){const n=new ResizeObserver(()=>{this.setSize()===!0&&this.body.emitter.emit("_requestRedraw")}),{frame:s}=this;n.observe(s),this._cleanupCallbacks.push(()=>{n.unobserve(s)})}else{const n=Ale(()=>{this.setSize()===!0&&this.body.emitter.emit("_requestRedraw")},1e3);this._cleanupCallbacks.push(()=>{clearInterval(n)})}const r=O(t=this._onResize).call(t,this);window.addEventListener("resize",r),this._cleanupCallbacks.push(()=>{window.removeEventListener("resize",r)})}}_cleanUp(){var e,t,r;oe(e=Ti(t=yr(r=this._cleanupCallbacks).call(r,0)).call(t)).call(e,n=>{try{n()}catch(s){console.error(s)}})}_onResize(){this.setSize(),this.body.emitter.emit("_redraw")}_getCameraState(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.pixelRatio;this.initialized===!0&&(this.cameraState.previousWidth=this.frame.canvas.width/e,this.cameraState.previousHeight=this.frame.canvas.height/e,this.cameraState.scale=this.body.view.scale,this.cameraState.position=this.DOMtoCanvas({x:.5*this.frame.canvas.width/e,y:.5*this.frame.canvas.height/e}))}_setCameraState(){if(this.cameraState.scale!==void 0&&this.frame.canvas.clientWidth!==0&&this.frame.canvas.clientHeight!==0&&this.pixelRatio!==0&&this.cameraState.previousWidth>0&&this.cameraState.previousHeight>0){const e=this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,t=this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight;let r=this.cameraState.scale;e!=1&&t!=1?r=this.cameraState.scale*.5*(e+t):e!=1?r=this.cameraState.scale*e:t!=1&&(r=this.cameraState.scale*t),this.body.view.scale=r;const n=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),s={x:n.x-this.cameraState.position.x,y:n.y-this.cameraState.position.y};this.body.view.translation.x+=s.x*this.body.view.scale,this.body.view.translation.y+=s.y*this.body.view.scale}}_prepareValue(e){if(typeof e=="number")return e+"px";if(typeof e=="string"){if(ee(e).call(e,"%")!==-1||ee(e).call(e,"px")!==-1)return e;if(ee(e).call(e,"%")===-1)return e+"px"}throw new Error("Could not use the value supplied for width or height:"+e)}_create(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=0,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext)this._setPixelRatio(),this.setTransform();else{const e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerText="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(e)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}_bindHammer(){this.hammer!==void 0&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new xn(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:xn.DIRECTION_ALL}),Fl(this.hammer,e=>{this.body.eventListeners.onTouch(e)}),this.hammer.on("tap",e=>{this.body.eventListeners.onTap(e)}),this.hammer.on("doubletap",e=>{this.body.eventListeners.onDoubleTap(e)}),this.hammer.on("press",e=>{this.body.eventListeners.onHold(e)}),this.hammer.on("panstart",e=>{this.body.eventListeners.onDragStart(e)}),this.hammer.on("panmove",e=>{this.body.eventListeners.onDrag(e)}),this.hammer.on("panend",e=>{this.body.eventListeners.onDragEnd(e)}),this.hammer.on("pinch",e=>{this.body.eventListeners.onPinch(e)}),this.frame.canvas.addEventListener("wheel",e=>{this.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("mousemove",e=>{this.body.eventListeners.onMouseMove(e)}),this.frame.canvas.addEventListener("contextmenu",e=>{this.body.eventListeners.onContext(e)}),this.hammerFrame=new xn(this.frame),wT(this.hammerFrame,e=>{this.body.eventListeners.onRelease(e)})}setSize(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.width,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.height;e=this._prepareValue(e),t=this._prepareValue(t);let r=!1;const n=this.frame.canvas.width,s=this.frame.canvas.height,o=this.pixelRatio;if(this._setPixelRatio(),e!=this.options.width||t!=this.options.height||this.frame.style.width!=e||this.frame.style.height!=t)this._getCameraState(o),this.frame.style.width=e,this.frame.style.height=t,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=e,this.options.height=t,this.canvasViewCenter={x:.5*this.frame.clientWidth,y:.5*this.frame.clientHeight},r=!0;else{const a=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),l=Math.round(this.frame.canvas.clientHeight*this.pixelRatio);(this.frame.canvas.width!==a||this.frame.canvas.height!==l)&&this._getCameraState(o),this.frame.canvas.width!==a&&(this.frame.canvas.width=a,r=!0),this.frame.canvas.height!==l&&(this.frame.canvas.height=l,r=!0)}return r===!0&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(n/this.pixelRatio),oldHeight:Math.round(s/this.pixelRatio)}),this._setCameraState()),this.initialized=!0,r}getContext(){return this.frame.canvas.getContext("2d")}_determinePixelRatio(){const e=this.getContext();if(e===void 0)throw new Error("Could not get canvax context");let t=1;typeof window<"u"&&(t=window.devicePixelRatio||1);const r=e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return t/r}_setPixelRatio(){this.pixelRatio=this._determinePixelRatio()}setTransform(){const e=this.getContext();if(e===void 0)throw new Error("Could not get canvax context");e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}_XconvertDOMtoCanvas(e){return(e-this.body.view.translation.x)/this.body.view.scale}_XconvertCanvasToDOM(e){return e*this.body.view.scale+this.body.view.translation.x}_YconvertDOMtoCanvas(e){return(e-this.body.view.translation.y)/this.body.view.scale}_YconvertCanvasToDOM(e){return e*this.body.view.scale+this.body.view.translation.y}canvasToDOM(e){return{x:this._XconvertCanvasToDOM(e.x),y:this._YconvertCanvasToDOM(e.y)}}DOMtoCanvas(e){return{x:this._XconvertDOMtoCanvas(e.x),y:this._YconvertDOMtoCanvas(e.y)}}}function Rle(i,e){const t=Ae({nodes:e,minZoomLevel:Number.MIN_VALUE,maxZoomLevel:1},i??{});if(!we(t.nodes))throw new TypeError("Nodes has to be an array of ids.");if(t.nodes.length===0&&(t.nodes=e),!(typeof t.minZoomLevel=="number"&&t.minZoomLevel>0))throw new TypeError("Min zoom level has to be a number higher than zero.");if(!(typeof t.maxZoomLevel=="number"&&t.minZoomLevel<=t.maxZoomLevel))throw new TypeError("Max zoom level has to be a number higher than min zoom level.");return t}class kle{constructor(e,t){var r,n;this.body=e,this.canvas=t,this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0,this.touchTime=0,this.viewFunction=void 0,this.body.emitter.on("fit",O(r=this.fit).call(r,this)),this.body.emitter.on("animationFinished",()=>{this.body.emitter.emit("_stopRendering")}),this.body.emitter.on("unlockNode",O(n=this.releaseNode).call(n,this))}setOptions(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.options=e}fit(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;e=Rle(e,this.body.nodeIndices);const r=this.canvas.frame.canvas.clientWidth,n=this.canvas.frame.canvas.clientHeight;let s,o;if(r===0||n===0)o=1,s=nt.getRange(this.body.nodes,e.nodes);else if(t===!0){let h=0;for(const c in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,c)&&this.body.nodes[c].predefinedPosition===!0&&(h+=1);if(h>.5*this.body.nodeIndices.length){this.fit(e,!1);return}s=nt.getRange(this.body.nodes,e.nodes),o=12.662/(this.body.nodeIndices.length+7.4147)+.0964822;const u=Math.min(r/600,n/600);o*=u}else{this.body.emitter.emit("_resizeNodes"),s=nt.getRange(this.body.nodes,e.nodes);const h=Math.abs(s.maxX-s.minX)*1.1,d=Math.abs(s.maxY-s.minY)*1.1,u=r/h,c=n/d;o=u<=c?u:c}o>e.maxZoomLevel?o=e.maxZoomLevel:o1&&arguments[1]!==void 0?arguments[1]:{};if(this.body.nodes[e]!==void 0){const r={x:this.body.nodes[e].x,y:this.body.nodes[e].y};t.position=r,t.lockedOnNode=e,this.moveTo(t)}else console.error("Node: "+e+" cannot be found.")}moveTo(e){if(e===void 0){e={};return}if(e.offset!=null){if(e.offset.x!=null){if(e.offset.x=+e.offset.x,!mi(e.offset.x))throw new TypeError('The option "offset.x" has to be a finite number.')}else e.offset.x=0;if(e.offset.y!=null){if(e.offset.y=+e.offset.y,!mi(e.offset.y))throw new TypeError('The option "offset.y" has to be a finite number.')}else e.offset.x=0}else e.offset={x:0,y:0};if(e.position!=null){if(e.position.x!=null){if(e.position.x=+e.position.x,!mi(e.position.x))throw new TypeError('The option "position.x" has to be a finite number.')}else e.position.x=0;if(e.position.y!=null){if(e.position.y=+e.position.y,!mi(e.position.y))throw new TypeError('The option "position.y" has to be a finite number.')}else e.position.x=0}else e.position=this.getViewPosition();if(e.scale!=null){if(e.scale=+e.scale,!(e.scale>0))throw new TypeError('The option "scale" has to be a number greater than zero.')}else e.scale=this.body.view.scale;e.animation===void 0&&(e.animation={duration:0}),e.animation===!1&&(e.animation={duration:0}),e.animation===!0&&(e.animation={}),e.animation.duration===void 0&&(e.animation.duration=1e3),e.animation.easingFunction===void 0&&(e.animation.easingFunction="easeInOutQuad"),this.animateView(e)}animateView(e){if(e===void 0)return;this.animationEasingFunction=e.animation.easingFunction,this.releaseNode(),e.locked===!0&&(this.lockedOnNodeId=e.lockedOnNode,this.lockedOnNodeOffset=e.offset),this.easingTime!=0&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=e.scale,this.body.view.scale=this.targetScale;const t=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),r={x:t.x-e.position.x,y:t.y-e.position.y};if(this.targetTranslation={x:this.sourceTranslation.x+r.x*this.targetScale+e.offset.x,y:this.sourceTranslation.y+r.y*this.targetScale+e.offset.y},e.animation.duration===0)if(this.lockedOnNodeId!=null){var n;this.viewFunction=O(n=this._lockedRedraw).call(n,this),this.body.emitter.on("initRedraw",this.viewFunction)}else this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw");else{var s;this.animationSpeed=1/(60*e.animation.duration*.001)||1/60,this.animationEasingFunction=e.animation.easingFunction,this.viewFunction=O(s=this._transitionRedraw).call(s,this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering")}}_lockedRedraw(){const e={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},t=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),r={x:t.x-e.x,y:t.y-e.y},n=this.body.view.translation,s={x:n.x+r.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:n.y+r.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=s}releaseNode(){this.lockedOnNodeId!==void 0&&this.viewFunction!==void 0&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}_transitionRedraw(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;this.easingTime+=this.animationSpeed,this.easingTime=e===!0?1:this.easingTime;const t=Vte[this.animationEasingFunction](this.easingTime);if(this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*t,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*t,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*t},this.easingTime>=1){if(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,this.lockedOnNodeId!=null){var r;this.viewFunction=O(r=this._lockedRedraw).call(r,this),this.body.emitter.on("initRedraw",this.viewFunction)}this.body.emitter.emit("animationFinished")}}getScale(){return this.body.view.scale}getViewPosition(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}function x1(i){var e=i&&i.preventDefault||!1,t=i&&i.container||window,r={},n={keydown:{},keyup:{}},s={},o;for(o=97;o<=122;o++)s[String.fromCharCode(o)]={code:65+(o-97),shift:!1};for(o=65;o<=90;o++)s[String.fromCharCode(o)]={code:o,shift:!0};for(o=0;o<=9;o++)s[""+o]={code:48+o,shift:!1};for(o=1;o<=12;o++)s["F"+o]={code:111+o,shift:!1};for(o=0;o<=9;o++)s["num"+o]={code:96+o,shift:!1};s["num*"]={code:106,shift:!1},s["num+"]={code:107,shift:!1},s["num-"]={code:109,shift:!1},s["num/"]={code:111,shift:!1},s["num."]={code:110,shift:!1},s.left={code:37,shift:!1},s.up={code:38,shift:!1},s.right={code:39,shift:!1},s.down={code:40,shift:!1},s.space={code:32,shift:!1},s.enter={code:13,shift:!1},s.shift={code:16,shift:void 0},s.esc={code:27,shift:!1},s.backspace={code:8,shift:!1},s.tab={code:9,shift:!1},s.ctrl={code:17,shift:!1},s.alt={code:18,shift:!1},s.delete={code:46,shift:!1},s.pageup={code:33,shift:!1},s.pagedown={code:34,shift:!1},s["="]={code:187,shift:!1},s["-"]={code:189,shift:!1},s["]"]={code:221,shift:!1},s["["]={code:219,shift:!1};var a=function(d){h(d,"keydown")},l=function(d){h(d,"keyup")},h=function(d,u){if(n[u][d.keyCode]!==void 0){for(var c=n[u][d.keyCode],f=0;f{this.activated=!0,this.configureKeyboardBindings()}),this.body.emitter.on("deactivate",()=>{this.activated=!1,this.configureKeyboardBindings()}),this.body.emitter.on("destroy",()=>{this.keycharm!==void 0&&this.keycharm.destroy()}),this.options={}}setOptions(e){e!==void 0&&(this.options=e,this.create())}create(){this.options.navigationButtons===!0?this.iconsCreated===!1&&this.loadNavigationElements():this.iconsCreated===!0&&this.cleanNavigation(),this.configureKeyboardBindings()}cleanNavigation(){if(this.navigationHammers.length!=0){for(let e=0;e{this._stopMovement()}),this.navigationHammers.push(s),this.iconsCreated=!0}bindToRedraw(e){if(this.boundFunctions[e]===void 0){var t;this.boundFunctions[e]=O(t=this[e]).call(t,this),this.body.emitter.on("initRedraw",this.boundFunctions[e]),this.body.emitter.emit("_startRendering")}}unbindFromRedraw(e){this.boundFunctions[e]!==void 0&&(this.body.emitter.off("initRedraw",this.boundFunctions[e]),this.body.emitter.emit("_stopRendering"),delete this.boundFunctions[e])}_fit(){new Date().valueOf()-this.touchTime>700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=new Date().valueOf())}_stopMovement(){for(const e in this.boundFunctions)Object.prototype.hasOwnProperty.call(this.boundFunctions,e)&&(this.body.emitter.off("initRedraw",this.boundFunctions[e]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}_moveUp(){this.body.view.translation.y+=this.options.keyboard.speed.y}_moveDown(){this.body.view.translation.y-=this.options.keyboard.speed.y}_moveLeft(){this.body.view.translation.x+=this.options.keyboard.speed.x}_moveRight(){this.body.view.translation.x-=this.options.keyboard.speed.x}_zoomIn(){const e=this.body.view.scale,t=this.body.view.scale*(1+this.options.keyboard.speed.zoom),r=this.body.view.translation,n=t/e,s=(1-n)*this.canvas.canvasViewCenter.x+r.x*n,o=(1-n)*this.canvas.canvasViewCenter.y+r.y*n;this.body.view.scale=t,this.body.view.translation={x:s,y:o},this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale,pointer:null})}_zoomOut(){const e=this.body.view.scale,t=this.body.view.scale/(1+this.options.keyboard.speed.zoom),r=this.body.view.translation,n=t/e,s=(1-n)*this.canvas.canvasViewCenter.x+r.x*n,o=(1-n)*this.canvas.canvasViewCenter.y+r.y*n;this.body.view.scale=t,this.body.view.translation={x:s,y:o},this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale,pointer:null})}configureKeyboardBindings(){if(this.keycharm!==void 0&&this.keycharm.destroy(),this.options.keyboard.enabled===!0&&(this.options.keyboard.bindToWindow===!0?this.keycharm=x1({container:window,preventDefault:!0}):this.keycharm=x1({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),this.activated===!0)){var e,t,r,n,s,o,a,l,h,d,u,c,f,v,g,y,p,m,w,$,x,_,A,R;O(e=this.keycharm).call(e,"up",()=>{this.bindToRedraw("_moveUp")},"keydown"),O(t=this.keycharm).call(t,"down",()=>{this.bindToRedraw("_moveDown")},"keydown"),O(r=this.keycharm).call(r,"left",()=>{this.bindToRedraw("_moveLeft")},"keydown"),O(n=this.keycharm).call(n,"right",()=>{this.bindToRedraw("_moveRight")},"keydown"),O(s=this.keycharm).call(s,"=",()=>{this.bindToRedraw("_zoomIn")},"keydown"),O(o=this.keycharm).call(o,"num+",()=>{this.bindToRedraw("_zoomIn")},"keydown"),O(a=this.keycharm).call(a,"num-",()=>{this.bindToRedraw("_zoomOut")},"keydown"),O(l=this.keycharm).call(l,"-",()=>{this.bindToRedraw("_zoomOut")},"keydown"),O(h=this.keycharm).call(h,"[",()=>{this.bindToRedraw("_zoomOut")},"keydown"),O(d=this.keycharm).call(d,"]",()=>{this.bindToRedraw("_zoomIn")},"keydown"),O(u=this.keycharm).call(u,"pageup",()=>{this.bindToRedraw("_zoomIn")},"keydown"),O(c=this.keycharm).call(c,"pagedown",()=>{this.bindToRedraw("_zoomOut")},"keydown"),O(f=this.keycharm).call(f,"up",()=>{this.unbindFromRedraw("_moveUp")},"keyup"),O(v=this.keycharm).call(v,"down",()=>{this.unbindFromRedraw("_moveDown")},"keyup"),O(g=this.keycharm).call(g,"left",()=>{this.unbindFromRedraw("_moveLeft")},"keyup"),O(y=this.keycharm).call(y,"right",()=>{this.unbindFromRedraw("_moveRight")},"keyup"),O(p=this.keycharm).call(p,"=",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),O(m=this.keycharm).call(m,"num+",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),O(w=this.keycharm).call(w,"num-",()=>{this.unbindFromRedraw("_zoomOut")},"keyup"),O($=this.keycharm).call($,"-",()=>{this.unbindFromRedraw("_zoomOut")},"keyup"),O(x=this.keycharm).call(x,"[",()=>{this.unbindFromRedraw("_zoomOut")},"keyup"),O(_=this.keycharm).call(_,"]",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),O(A=this.keycharm).call(A,"pageup",()=>{this.unbindFromRedraw("_zoomIn")},"keyup"),O(R=this.keycharm).call(R,"pagedown",()=>{this.unbindFromRedraw("_zoomOut")},"keyup")}}}class Fle{constructor(e,t,r){var n,s,o,a,l,h,d,u,c,f,v,g,y;this.body=e,this.canvas=t,this.selectionHandler=r,this.navigationHandler=new Mle(e,t),this.body.eventListeners.onTap=O(n=this.onTap).call(n,this),this.body.eventListeners.onTouch=O(s=this.onTouch).call(s,this),this.body.eventListeners.onDoubleTap=O(o=this.onDoubleTap).call(o,this),this.body.eventListeners.onHold=O(a=this.onHold).call(a,this),this.body.eventListeners.onDragStart=O(l=this.onDragStart).call(l,this),this.body.eventListeners.onDrag=O(h=this.onDrag).call(h,this),this.body.eventListeners.onDragEnd=O(d=this.onDragEnd).call(d,this),this.body.eventListeners.onMouseWheel=O(u=this.onMouseWheel).call(u,this),this.body.eventListeners.onPinch=O(c=this.onPinch).call(c,this),this.body.eventListeners.onMouseMove=O(f=this.onMouseMove).call(f,this),this.body.eventListeners.onRelease=O(v=this.onRelease).call(v,this),this.body.eventListeners.onContext=O(g=this.onContext).call(g,this),this.touchTime=0,this.drag={},this.pinch={},this.popup=void 0,this.popupObj=void 0,this.popupTimer=void 0,this.body.functions.getPointer=O(y=this.getPointer).call(y,this),this.options={},this.defaultOptions={dragNodes:!0,dragView:!0,hover:!1,keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0,autoFocus:!0},navigationButtons:!1,tooltipDelay:300,zoomView:!0,zoomSpeed:1},Ae(this.options,this.defaultOptions),this.bindEventListeners()}bindEventListeners(){this.body.emitter.on("destroy",()=>{clearTimeout(this.popupTimer),delete this.body.functions.getPointer})}setOptions(e){e!==void 0&&(Al(["hideEdgesOnDrag","hideEdgesOnZoom","hideNodesOnDrag","keyboard","multiselect","selectable","selectConnectedEdges"],this.options,e),It(this.options,e,"keyboard"),e.tooltip&&(Ae(this.options.tooltip,e.tooltip),e.tooltip.color&&(this.options.tooltip.color=of(e.tooltip.color)))),this.navigationHandler.setOptions(this.options)}getPointer(e){return{x:e.x-jte(this.canvas.frame.canvas),y:e.y-Lte(this.canvas.frame.canvas)}}onTouch(e){new Date().valueOf()-this.touchTime>50&&(this.drag.pointer=this.getPointer(e.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=new Date().valueOf())}onTap(e){const t=this.getPointer(e.center),r=this.selectionHandler.options.multiselect&&(e.changedPointers[0].ctrlKey||e.changedPointers[0].metaKey);this.checkSelectionChanges(t,r),this.selectionHandler.commitAndEmit(t,e),this.selectionHandler.generateClickEvent("click",e,t)}onDoubleTap(e){const t=this.getPointer(e.center);this.selectionHandler.generateClickEvent("doubleClick",e,t)}onHold(e){const t=this.getPointer(e.center),r=this.selectionHandler.options.multiselect;this.checkSelectionChanges(t,r),this.selectionHandler.commitAndEmit(t,e),this.selectionHandler.generateClickEvent("click",e,t),this.selectionHandler.generateClickEvent("hold",e,t)}onRelease(e){if(new Date().valueOf()-this.touchTime>10){const t=this.getPointer(e.center);this.selectionHandler.generateClickEvent("release",e,t),this.touchTime=new Date().valueOf()}}onContext(e){const t=this.getPointer({x:e.clientX,y:e.clientY});this.selectionHandler.generateClickEvent("oncontext",e,t)}checkSelectionChanges(e){(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1)===!0?this.selectionHandler.selectAdditionalOnPoint(e):this.selectionHandler.selectOnPoint(e)}_determineDifference(e,t){const r=function(n,s){const o=[];for(let a=0;a{const a=o.node;o.xFixed===!1&&(a.x=this.canvas._XconvertDOMtoCanvas(this.canvas._XconvertCanvasToDOM(o.x)+n)),o.yFixed===!1&&(a.y=this.canvas._YconvertDOMtoCanvas(this.canvas._YconvertCanvasToDOM(o.y)+s))}),this.body.emitter.emit("startSimulation")}else{if(e.srcEvent.shiftKey){if(this.selectionHandler.generateClickEvent("dragging",e,t,void 0,!0),this.drag.pointer===void 0){this.onDragStart(e);return}this.body.selectionBox.position.end={x:this.canvas._XconvertDOMtoCanvas(t.x),y:this.canvas._YconvertDOMtoCanvas(t.y)},this.body.emitter.emit("_requestRedraw")}if(this.options.dragView===!0&&!e.srcEvent.shiftKey){if(this.selectionHandler.generateClickEvent("dragging",e,t,void 0,!0),this.drag.pointer===void 0){this.onDragStart(e);return}const n=t.x-this.drag.pointer.x,s=t.y-this.drag.pointer.y;this.body.view.translation={x:this.drag.translation.x+n,y:this.drag.translation.y+s},this.body.emitter.emit("_requestRedraw")}}}onDragEnd(e){if(this.drag.dragging=!1,this.body.selectionBox.show){var t;this.body.selectionBox.show=!1;const r=this.body.selectionBox.position,n={minX:Math.min(r.start.x,r.end.x),minY:Math.min(r.start.y,r.end.y),maxX:Math.max(r.start.x,r.end.x),maxY:Math.max(r.start.y,r.end.y)},s=pt(t=this.body.nodeIndices).call(t,a=>{const l=this.body.nodes[a];return l.x>=n.minX&&l.x<=n.maxX&&l.y>=n.minY&&l.y<=n.maxY});oe(s).call(s,a=>this.selectionHandler.selectObject(this.body.nodes[a]));const o=this.getPointer(e.center);this.selectionHandler.commitAndEmit(o,e),this.selectionHandler.generateClickEvent("dragEnd",e,this.getPointer(e.center),void 0,!0),this.body.emitter.emit("_requestRedraw")}else{const r=this.drag.selection;r&&r.length?(oe(r).call(r,function(n){n.node.options.fixed.x=n.xFixed,n.node.options.fixed.y=n.yFixed}),this.selectionHandler.generateClickEvent("dragEnd",e,this.getPointer(e.center)),this.body.emitter.emit("startSimulation")):(this.selectionHandler.generateClickEvent("dragEnd",e,this.getPointer(e.center),void 0,!0),this.body.emitter.emit("_requestRedraw"))}}onPinch(e){const t=this.getPointer(e.center);this.drag.pinched=!0,this.pinch.scale===void 0&&(this.pinch.scale=1);const r=this.pinch.scale*e.scale;this.zoom(r,t)}zoom(e,t){if(this.options.zoomView===!0){const r=this.body.view.scale;e<1e-5&&(e=1e-5),e>10&&(e=10);let n;this.drag!==void 0&&this.drag.dragging===!0&&(n=this.canvas.DOMtoCanvas(this.drag.pointer));const s=this.body.view.translation,o=e/r,a=(1-o)*t.x+s.x*o,l=(1-o)*t.y+s.y*o;if(this.body.view.scale=e,this.body.view.translation={x:a,y:l},n!=null){const h=this.canvas.canvasToDOM(n);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}this.body.emitter.emit("_requestRedraw"),rthis._checkShowPopup(t),this.options.tooltipDelay))),this.options.hover===!0&&this.selectionHandler.hoverObject(e,t)}_checkShowPopup(e){const t=this.canvas._XconvertDOMtoCanvas(e.x),r=this.canvas._YconvertDOMtoCanvas(e.y),n={left:t,top:r,right:t,bottom:r},s=this.popupObj===void 0?void 0:this.popupObj.id;let o=!1,a="node";if(this.popupObj===void 0){const l=this.body.nodeIndices,h=this.body.nodes;let d;const u=[];for(let c=0;c0&&(this.popupObj=h[u[u.length-1]],o=!0)}if(this.popupObj===void 0&&o===!1){const l=this.body.edgeIndices,h=this.body.edges;let d;const u=[];for(let c=0;c0&&(this.popupObj=h[u[u.length-1]],a="edge")}this.popupObj!==void 0?this.popupObj.id!==s&&(this.popup===void 0&&(this.popup=new Jte(this.canvas.frame)),this.popup.popupTargetType=a,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(e.x+3,e.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):this.popup!==void 0&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}_checkHidePopup(e){const t=this.selectionHandler._pointerToPositionObject(e);let r=!1;if(this.popup.popupTargetType==="node"){if(this.body.nodes[this.popup.popupTargetId]!==void 0&&(r=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(t),r===!0)){const n=this.selectionHandler.getNodeAt(e);r=n===void 0?!1:n.id===this.popup.popupTargetId}}else this.selectionHandler.getNodeAt(e)===void 0&&this.body.edges[this.popup.popupTargetId]!==void 0&&(r=this.body.edges[this.popup.popupTargetId].isOverlappingWith(t));r===!1&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}}var Ble=Rv,jle=Z_;Ble("Set",function(i){return function(){return i(this,arguments.length?arguments[0]:void 0)}},jle);var Lle=ne,zle=Lle.Set,Hle=zle,Vle=Hle,Wle=Vle,Br=V(Wle),Ule=re,P1=kv,za=kh.getWeakData,Kle=Nv,Gle=xr,qle=os,Xc=Ze,Yle=Av,ET=ai,C1=Ye,ST=Gi,Xle=ST.set,Jle=ST.getterFor,Zle=ET.find,Qle=ET.findIndex,ehe=Ule([].splice),the=0,Ha=function(i){return i.frozen||(i.frozen=new _T)},_T=function(){this.entries=[]},Jc=function(i,e){return Zle(i.entries,function(t){return t[0]===e})};_T.prototype={get:function(i){var e=Jc(this,i);if(e)return e[1]},has:function(i){return!!Jc(this,i)},set:function(i,e){var t=Jc(this,i);t?t[1]=e:this.entries.push([i,e])},delete:function(i){var e=Qle(this.entries,function(t){return t[0]===i});return~e&&ehe(this.entries,e,1),!!~e}};var rhe={getConstructor:function(i,e,t,r){var n=i(function(l,h){Kle(l,s),Xle(l,{type:e,id:the++,frozen:void 0}),qle(h)||Yle(h,l[r],{that:l,AS_ENTRIES:t})}),s=n.prototype,o=Jle(e),a=function(l,h,d){var u=o(l),c=za(Gle(h),!0);return c===!0?Ha(u).set(h,d):c[u.id]=d,l};return P1(s,{delete:function(l){var h=o(this);if(!Xc(l))return!1;var d=za(l);return d===!0?Ha(h).delete(l):d&&C1(d,h.id)&&delete d[h.id]},has:function(h){var d=o(this);if(!Xc(h))return!1;var u=za(h);return u===!0?Ha(d).has(h):u&&C1(u,d.id)}}),P1(s,t?{get:function(h){var d=o(this);if(Xc(h)){var u=za(h);return u===!0?Ha(d).get(h):u?u[d.id]:void 0}},set:function(h,d){return a(this,h,d)}}:{add:function(h){return a(this,h,!0)}}),n}},ihe=G_,D1=_e,ll=re,A1=kv,nhe=kh,she=Rv,TT=rhe,Va=Ze,Wa=Gi.enforce,ohe=te,ahe=yS,Qo=Object,lhe=Array.isArray,Ua=Qo.isExtensible,OT=Qo.isFrozen,hhe=Qo.isSealed,IT=Qo.freeze,dhe=Qo.seal,N1={},R1={},che=!D1.ActiveXObject&&"ActiveXObject"in D1,Ss,xT=function(i){return function(){return i(this,arguments.length?arguments[0]:void 0)}},PT=she("WeakMap",xT,TT),fn=PT.prototype,hl=ll(fn.set),uhe=function(){return ihe&&ohe(function(){var i=IT([]);return hl(new PT,i,1),!OT(i)})};if(ahe)if(che){Ss=TT.getConstructor(xT,"WeakMap",!0),nhe.enable();var k1=ll(fn.delete),Ka=ll(fn.has),M1=ll(fn.get);A1(fn,{delete:function(i){if(Va(i)&&!Ua(i)){var e=Wa(this);return e.frozen||(e.frozen=new Ss),k1(this,i)||e.frozen.delete(i)}return k1(this,i)},has:function(e){if(Va(e)&&!Ua(e)){var t=Wa(this);return t.frozen||(t.frozen=new Ss),Ka(this,e)||t.frozen.has(e)}return Ka(this,e)},get:function(e){if(Va(e)&&!Ua(e)){var t=Wa(this);return t.frozen||(t.frozen=new Ss),Ka(this,e)?M1(this,e):t.frozen.get(e)}return M1(this,e)},set:function(e,t){if(Va(e)&&!Ua(e)){var r=Wa(this);r.frozen||(r.frozen=new Ss),Ka(this,e)?hl(this,e,t):r.frozen.set(e,t)}else hl(this,e,t);return this}})}else uhe()&&A1(fn,{set:function(e,t){var r;return lhe(e)&&(OT(e)?r=N1:hhe(e)&&(r=R1)),hl(this,e,t),r===N1&&IT(e),r===R1&&dhe(e),this}});var fhe=ne,vhe=fhe.WeakMap,phe=vhe,ghe=phe,yhe=ghe,Bs=V(yhe);function ae(i,e,t,r){if(typeof e=="function"?i!==e||!r:!e.has(i))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t==="m"?r:t==="a"?r.call(i):r?r.value:e.get(i)}function uf(i,e,t,r,n){if(typeof e=="function"?i!==e||!0:!e.has(i))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(i,t),t}var pi,Ot,Nr,Rr,dl;function F1(i,e){const t=new Br;for(const r of e)i.has(r)||t.add(r);return t}class B1{constructor(){pi.set(this,new Br),Ot.set(this,new Br)}get size(){return ae(this,Ot,"f").size}add(){for(var e=arguments.length,t=new Array(e),r=0;r0&&arguments[0]!==void 0?arguments[0]:()=>{};Nr.set(this,new B1),Rr.set(this,new B1),dl.set(this,void 0),uf(this,dl,e)}get sizeNodes(){return ae(this,Nr,"f").size}get sizeEdges(){return ae(this,Rr,"f").size}getNodes(){return ae(this,Nr,"f").getSelection()}getEdges(){return ae(this,Rr,"f").getSelection()}addNodes(){ae(this,Nr,"f").add(...arguments)}addEdges(){ae(this,Rr,"f").add(...arguments)}deleteNodes(e){ae(this,Nr,"f").delete(e)}deleteEdges(e){ae(this,Rr,"f").delete(e)}clear(){ae(this,Nr,"f").clear(),ae(this,Rr,"f").clear()}commit(){const e={nodes:ae(this,Nr,"f").commit(),edges:ae(this,Rr,"f").commit()};for(var t=arguments.length,r=new Array(t),n=0;n{this.updateSelection()})}setOptions(e){e!==void 0&&ps(["multiselect","hoverConnectedEdges","selectable","selectConnectedEdges"],this.options,e)}selectOnPoint(e){let t=!1;if(this.options.selectable===!0){const r=this.getNodeAt(e)||this.getEdgeAt(e);this.unselectAll(),r!==void 0&&(t=this.selectObject(r)),this.body.emitter.emit("_requestRedraw")}return t}selectAdditionalOnPoint(e){let t=!1;if(this.options.selectable===!0){const r=this.getNodeAt(e)||this.getEdgeAt(e);r!==void 0&&(t=!0,r.isSelected()===!0?this.deselectObject(r):this.selectObject(r),this.body.emitter.emit("_requestRedraw"))}return t}_initBaseEvent(e,t){const r={};return r.pointer={DOM:{x:t.x,y:t.y},canvas:this.canvas.DOMtoCanvas(t)},r.event=e,r}generateClickEvent(e,t,r,n){let s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!1;const o=this._initBaseEvent(t,r);if(s===!0)o.nodes=[],o.edges=[];else{const a=this.getSelection();o.nodes=a.nodes,o.edges=a.edges}n!==void 0&&(o.previousSelection=n),e=="click"&&(o.items=this.getClickedItems(r)),t.controlEdge!==void 0&&(o.controlEdge=t.controlEdge),this.body.emitter.emit(e,o)}selectObject(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.selectConnectedEdges;return e!==void 0?(e instanceof fe?(t===!0&&this._selectionAccumulator.addEdges(...e.edges),this._selectionAccumulator.addNodes(e)):this._selectionAccumulator.addEdges(e),!0):!1}deselectObject(e){e.isSelected()===!0&&(e.selected=!1,this._removeFromSelection(e))}_getAllNodesOverlappingWith(e){const t=[],r=this.body.nodes;for(let n=0;n1&&arguments[1]!==void 0?arguments[1]:!0;const r=this._pointerToPositionObject(e),n=this._getAllNodesOverlappingWith(r);if(n.length>0)return t===!0?this.body.nodes[n[n.length-1]]:n[n.length-1]}_getEdgesOverlappingWith(e,t){const r=this.body.edges;for(let n=0;n1&&arguments[1]!==void 0?arguments[1]:!0;const r=this.canvas.DOMtoCanvas(e);let n=10,s=null;const o=this.body.edges;for(let a=0;a0&&(this.generateClickEvent("deselectEdge",t,e,s),r=!0),n.nodes.deleted.length>0&&(this.generateClickEvent("deselectNode",t,e,s),r=!0),n.nodes.added.length>0&&(this.generateClickEvent("selectNode",t,e),r=!0),n.edges.added.length>0&&(this.generateClickEvent("selectEdge",t,e),r=!0),r===!0&&this.generateClickEvent("select",t,e)}getSelection(){return{nodes:this.getSelectedNodeIds(),edges:this.getSelectedEdgeIds()}}getSelectedNodes(){return this._selectionAccumulator.getNodes()}getSelectedEdges(){return this._selectionAccumulator.getEdges()}getSelectedNodeIds(){var e;return Ln(e=this._selectionAccumulator.getNodes()).call(e,t=>t.id)}getSelectedEdgeIds(){var e;return Ln(e=this._selectionAccumulator.getEdges()).call(e,t=>t.id)}setSelection(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!e||!e.nodes&&!e.edges)throw new TypeError("Selection must be an object with nodes and/or edges properties");if((t.unselectAll||t.unselectAll===void 0)&&this.unselectAll(),e.nodes)for(const r of e.nodes){const n=this.body.nodes[r];if(!n)throw new RangeError('Node with id "'+r+'" not found');this.selectObject(n,t.highlightEdges)}if(e.edges)for(const r of e.edges){const n=this.body.edges[r];if(!n)throw new RangeError('Edge with id "'+r+'" not found');this.selectObject(n)}this.body.emitter.emit("_requestRedraw"),this._selectionAccumulator.commit()}selectNodes(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!e||e.length===void 0)throw"Selection must be an array with ids";this.setSelection({nodes:e},{highlightEdges:t})}selectEdges(e){if(!e||e.length===void 0)throw"Selection must be an array with ids";this.setSelection({edges:e})}updateSelection(){for(const e in this._selectionAccumulator.getNodes())Object.prototype.hasOwnProperty.call(this.body.nodes,e.id)||this._selectionAccumulator.deleteNodes(e);for(const e in this._selectionAccumulator.getEdges())Object.prototype.hasOwnProperty.call(this.body.edges,e.id)||this._selectionAccumulator.deleteEdges(e)}getClickedItems(e){const t=this.canvas.DOMtoCanvas(e),r=[],n=this.body.nodeIndices,s=this.body.nodes;for(let l=n.length-1;l>=0;l--){const d=s[n[l]].getItemsOnPoint(t);r.push.apply(r,d)}const o=this.body.edgeIndices,a=this.body.edges;for(let l=o.length-1;l>=0;l--){const d=a[o[l]].getItemsOnPoint(t);r.push.apply(r,d)}return r}}var j1=fS,$he=Math.floor,ff=function(i,e){var t=i.length,r=$he(t/2);return t<8?whe(i,e):Ehe(i,ff(j1(i,0,r),e),ff(j1(i,r),e),e)},whe=function(i,e){for(var t=i.length,r=1,n,s;r0;)i[s]=i[--s];s!==r++&&(i[s]=n)}return i},Ehe=function(i,e,t,r){for(var n=e.length,s=t.length,o=0,a=0;o3)){if(Mhe)return!0;if(K1)return K1<603;var i="",e,t,r,n;for(e=65;e<76;e++){switch(t=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:r=3;break;case 68:case 71:r=4;break;default:r=2}for(n=0;n<47;n++)Hr.push({k:t+n,v:r})}for(Hr.sort(function(s,o){return o.v-s.v}),n=0;nV1(t)?1:-1}};Che({target:"Array",proto:!0,forced:zhe},{sort:function(e){e!==void 0&&Dhe(e);var t=Ahe(this);if(DT)return e===void 0?G1(t):G1(t,e);var r=[],n=H1(t),s,o;for(o=0;o=0:a>l;l+=h)l in o&&(n=t(n,o[l],l,s));return n}},ide={left:rde(!1)},nde=_e,sde=Ir,ode=sde(nde.process)==="process",ade=z,lde=ide.left,hde=fs,q1=Co,dde=ode,cde=!dde&&q1>79&&q1<83,ude=cde||!hde("reduce");ade({target:"Array",proto:!0,forced:ude},{reduce:function(e){var t=arguments.length;return lde(this,e,t,t>1?arguments[1]:void 0)}});var fde=Xe,vde=fde("Array").reduce,pde=Me,gde=vde,Qc=Array.prototype,yde=function(i){var e=i.reduce;return i===Qc||pde(Qc,i)&&e===Qc.reduce?gde:e},mde=yde,bde=mde,$de=bde,AT=V($de);class NT{abstract(){throw new Error("Can't instantiate abstract class!")}fake_use(){}curveType(){return this.abstract()}getPosition(e){return this.fake_use(e),this.abstract()}setPosition(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;this.fake_use(e,t,r),this.abstract()}getTreeSize(e){return this.fake_use(e),this.abstract()}sort(e){this.fake_use(e),this.abstract()}fix(e,t){this.fake_use(e,t),this.abstract()}shift(e,t){this.fake_use(e,t),this.abstract()}}class wde extends NT{constructor(e){super(),this.layout=e}curveType(){return"horizontal"}getPosition(e){return e.x}setPosition(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;r!==void 0&&this.layout.hierarchical.addToOrdering(e,r),e.x=t}getTreeSize(e){const t=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,e);return{min:t.min_x,max:t.max_x}}sort(e){Cn(e).call(e,function(t,r){return t.x-r.x})}fix(e,t){e.y=this.layout.options.hierarchical.levelSeparation*t,e.options.fixed.y=!0}shift(e,t){this.layout.body.nodes[e].x+=t}}class Ede extends NT{constructor(e){super(),this.layout=e}curveType(){return"vertical"}getPosition(e){return e.y}setPosition(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;r!==void 0&&this.layout.hierarchical.addToOrdering(e,r),e.y=t}getTreeSize(e){const t=this.layout.hierarchical.getTreeSize(this.layout.body.nodes,e);return{min:t.min_y,max:t.max_y}}sort(e){Cn(e).call(e,function(t,r){return t.y-r.y})}fix(e,t){e.x=this.layout.options.hierarchical.levelSeparation*t,e.options.fixed.x=!0}shift(e,t){this.layout.body.nodes[e].y+=t}}var Sde=z,_de=ai.every,Tde=fs,Ode=Tde("every");Sde({target:"Array",proto:!0,forced:!Ode},{every:function(e){return _de(this,e,arguments.length>1?arguments[1]:void 0)}});var Ide=Xe,xde=Ide("Array").every,Pde=Me,Cde=xde,eu=Array.prototype,Dde=function(i){var e=i.every;return i===eu||Pde(eu,i)&&e===eu.every?Cde:e},Ade=Dde,Nde=Ade,Rde=Nde,RT=V(Rde);function kde(i,e){const t=new Br;return oe(i).call(i,r=>{var n;oe(n=r.edges).call(n,s=>{s.connected&&t.add(s)})}),oe(t).call(t,r=>{const n=r.from.id,s=r.to.id;e[n]==null&&(e[n]=0),(e[s]==null||e[n]>=e[s])&&(e[s]=e[n]+1)}),e}function Mde(i){return kT(e=>{var t,r;return RT(t=pt(r=e.edges).call(r,n=>i.has(n.toId))).call(t,n=>n.to===e)},(e,t)=>t>e,"from",i)}function Fde(i){return kT(e=>{var t,r;return RT(t=pt(r=e.edges).call(r,n=>i.has(n.toId))).call(t,n=>n.from===e)},(e,t)=>tu+1+c.edges.length,0),a=t+"Id",l=t==="to"?1:-1;for(const[u,c]of r){if(!r.has(u)||!i(c))continue;s[u]=0;const f=[c];let v=0,g;for(;g=f.pop();){var h,d;if(!r.has(u))continue;const y=s[g.id]+l;if(oe(h=pt(d=g.edges).call(d,p=>p.connected&&p.to!==p.from&&p[t]!==g&&r.has(p.toId)&&r.has(p.fromId))).call(h,p=>{const m=p[a],w=s[m];(w==null||e(y,w))&&(s[m]=y,f.push(p[t]))}),v>o)return kde(r,s);++v}}return s}class Bde{constructor(){this.childrenReference={},this.parentReference={},this.trees={},this.distributionOrdering={},this.levels={},this.distributionIndex={},this.isTree=!1,this.treeIndex=-1}addRelation(e,t){this.childrenReference[e]===void 0&&(this.childrenReference[e]=[]),this.childrenReference[e].push(t),this.parentReference[t]===void 0&&(this.parentReference[t]=[]),this.parentReference[t].push(e)}checkIfTree(){for(const e in this.parentReference)if(this.parentReference[e].length>1){this.isTree=!1;return}this.isTree=!0}numTrees(){return this.treeIndex+1}setTreeIndex(e,t){t!==void 0&&this.trees[e.id]===void 0&&(this.trees[e.id]=t,this.treeIndex=Math.max(t,this.treeIndex))}ensureLevel(e){this.levels[e]===void 0&&(this.levels[e]=0)}getMaxLevel(e){const t={},r=n=>{if(t[n]!==void 0)return t[n];let s=this.levels[n];if(this.childrenReference[n]){const o=this.childrenReference[n];if(o.length>0)for(let a=0;as-o);for(const s of n)t.set(s,r++);for(const s in this.levels)Object.prototype.hasOwnProperty.call(this.levels,s)&&(this.levels[s]=t.get(this.levels[s]))}getTreeSize(e,t){let r=1e9,n=-1e9,s=1e9,o=-1e9;for(const a in this.trees)if(Object.prototype.hasOwnProperty.call(this.trees,a)&&this.trees[a]===t){const l=e[a];r=Math.min(l.x,r),n=Math.max(l.x,n),s=Math.min(l.y,s),o=Math.max(l.y,o)}return{min_x:r,max_x:n,min_y:s,max_y:o}}hasSameParent(e,t){const r=this.parentReference[e.id],n=this.parentReference[t.id];if(r===void 0||n===void 0)return!1;for(let s=0;s{this.setupHierarchicalLayout()}),this.body.emitter.on("_dataLoaded",()=>{this.layoutNetwork()}),this.body.emitter.on("_resetHierarchicalLayout",()=>{this.setupHierarchicalLayout()}),this.body.emitter.on("_adjustEdgesForHierarchicalLayout",()=>{if(this.options.hierarchical.enabled!==!0)return;const e=this.direction.curveType();this.body.emitter.emit("_forceDisableDynamicCurves",e,!1)})}setOptions(e,t){if(e!==void 0){const r=this.options.hierarchical,n=r.enabled;if(ps(["randomSeed","improvedLayout","clusterThreshold"],this.options,e),It(this.options,e,"hierarchical"),e.randomSeed!==void 0&&this._resetRNG(e.randomSeed),r.enabled===!0)return n===!0&&this.body.emitter.emit("refresh",!0),r.direction==="RL"||r.direction==="DU"?r.levelSeparation>0&&(r.levelSeparation*=-1):r.levelSeparation<0&&(r.levelSeparation*=-1),this.setDirectionStrategy(),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptionsForHierarchicalLayout(t);if(n===!0)return this.body.emitter.emit("refresh"),le(t,this.optionsBackup)}return t}_resetRNG(e){this.initialRandomSeed=e,this._rng=Rh(this.initialRandomSeed)}adaptAllOptionsForHierarchicalLayout(e){if(this.options.hierarchical.enabled===!0){const t=this.optionsBackup.physics;e.physics===void 0||e.physics===!0?(e.physics={enabled:t.enabled===void 0?!0:t.enabled,solver:"hierarchicalRepulsion"},t.enabled=t.enabled===void 0?!0:t.enabled,t.solver=t.solver||"barnesHut"):typeof e.physics=="object"?(t.enabled=e.physics.enabled===void 0?!0:e.physics.enabled,t.solver=e.physics.solver||"barnesHut",e.physics.solver="hierarchicalRepulsion"):e.physics!==!1&&(t.solver="barnesHut",e.physics={solver:"hierarchicalRepulsion"});let r=this.direction.curveType();if(e.edges===void 0)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},e.edges={smooth:!1};else if(e.edges.smooth===void 0)this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},e.edges.smooth=!1;else if(typeof e.edges.smooth=="boolean")this.optionsBackup.edges={smooth:e.edges.smooth},e.edges.smooth={enabled:e.edges.smooth,type:r};else{const n=e.edges.smooth;n.type!==void 0&&n.type!=="dynamic"&&(r=n.type),this.optionsBackup.edges={smooth:{enabled:n.enabled===void 0?!0:n.enabled,type:n.type===void 0?"dynamic":n.type,roundness:n.roundness===void 0?.5:n.roundness,forceDirection:n.forceDirection===void 0?!1:n.forceDirection}},e.edges.smooth={enabled:n.enabled===void 0?!0:n.enabled,type:r,roundness:n.roundness===void 0?.5:n.roundness,forceDirection:n.forceDirection===void 0?!1:n.forceDirection}}this.body.emitter.emit("_forceDisableDynamicCurves",r)}return e}positionInitially(e){if(this.options.hierarchical.enabled!==!0){this._resetRNG(this.initialRandomSeed);const t=e.length+50;for(let r=0;rs){const l=e.length;for(;e.length>s&&n<=10;){n+=1;const h=e.length;n%3===0?this.body.modules.clustering.clusterBridges(o):this.body.modules.clustering.clusterOutliers(o);const d=e.length;if(h==d&&n%3!==0){this._declusterAll(),this.body.emitter.emit("_layoutFailed"),console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.");return}}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*l)})}n>10&&console.info("The clustering didn't succeed within the amount of interations allowed, progressing with partial result."),this.body.modules.kamadaKawai.solve(e,this.body.edgeIndices,!0),this._shiftToCenter();const a=70;for(let l=0;l0){let e,t,r=!1,n=!1;this.lastNodeOnLevel={},this.hierarchical=new Bde;for(t in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,t)&&(e=this.body.nodes[t],e.options.level!==void 0?(r=!0,this.hierarchical.levels[t]=e.options.level):n=!0);if(n===!0&&r===!0)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");{if(n===!0){const o=this.options.hierarchical.sortMethod;o==="hubsize"?this._determineLevelsByHubsize():o==="directed"?this._determineLevelsDirected():o==="custom"&&this._determineLevelsCustomCallback()}for(const o in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,o)&&this.hierarchical.ensureLevel(o);const s=this._getDistribution();this._generateMap(),this._placeNodesByHierarchy(s),this._condenseHierarchy(),this._shiftToCenter()}}}_condenseHierarchy(){var e=this;let t=!1;const r={},n=()=>{const p=o();let m=0;for(let w=0;w{const w=this.hierarchical.trees;for(const $ in w)Object.prototype.hasOwnProperty.call(w,$)&&w[$]===p&&this.direction.shift($,m)},o=()=>{const p=[];for(let m=0;m{if(!m[p.id]&&(m[p.id]=!0,this.hierarchical.childrenReference[p.id])){const w=this.hierarchical.childrenReference[p.id];if(w.length>0)for(let $=0;$1&&arguments[1]!==void 0?arguments[1]:1e9,w=1e9,$=1e9,x=1e9,_=-1e9;for(const A in p)if(Object.prototype.hasOwnProperty.call(p,A)){const R=e.body.nodes[A],B=e.hierarchical.levels[R.id],G=e.direction.getPosition(R),[q,ce]=e._getSpaceAroundNode(R,p);w=Math.min(q,w),$=Math.min(ce,$),B<=m&&(x=Math.min(G,x),_=Math.max(G,_))}return[x,_,w,$]},h=(p,m)=>{const w=this.hierarchical.getMaxLevel(p.id),$=this.hierarchical.getMaxLevel(m.id);return Math.min(w,$)},d=(p,m,w)=>{const $=this.hierarchical;for(let x=0;x1)for(let R=0;R2&&arguments[2]!==void 0?arguments[2]:!1;const $=e.direction.getPosition(p),x=e.direction.getPosition(m),_=Math.abs(x-$),A=e.options.hierarchical.nodeSpacing;if(_>A){const R={},B={};a(p,R),a(m,B);const G=h(p,m),q=l(R,G),ce=l(B,G),ue=q[1],Fe=ce[0],Q=ce[2];if(Math.abs(ue-Fe)>A){let Z=ue-Fe+A;Z<-Q+A&&(Z=-Q+A),Z<0&&(e._shiftBlock(m.id,Z),t=!0,w===!0&&e._centerParent(m))}}},c=(p,m)=>{const w=m.id,$=m.edges,x=this.hierarchical.levels[m.id],_=this.options.hierarchical.levelSeparation*this.options.hierarchical.levelSeparation,A={},R=[];for(let Q=0;Q<$.length;Q++){const K=$[Q];if(K.toId!=K.fromId){const Z=K.toId==w?K.from:K.to;A[$[Q].id]=Z,this.hierarchical.levels[Z.id]{let Z=0;for(let se=0;se{let Z=0;for(let se=0;se{let Z=this.direction.getPosition(m);const se={};for(let Ce=0;Ce{const K=this.direction.getPosition(m);if(r[m.id]===void 0){const Gt={};a(m,Gt),r[m.id]=Gt}const Z=l(r[m.id]),se=Z[2],Ce=Z[3],je=Q-K;let hr=0;je>0?hr=Math.min(je,Ce-this.options.hierarchical.nodeSpacing):je<0&&(hr=-Math.min(-je,se-this.options.hierarchical.nodeSpacing)),hr!=0&&(this._shiftBlock(m.id,hr),t=!0)},ue=Q=>{const K=this.direction.getPosition(m),[Z,se]=this._getSpaceAroundNode(m),Ce=Q-K;let je=K;Ce>0?je=Math.min(K+(se-this.options.hierarchical.nodeSpacing),Q):Ce<0&&(je=Math.max(K-(Z-this.options.hierarchical.nodeSpacing),Q)),je!==K&&(this.direction.setPosition(m,je),t=!0)};let Fe=q(p,R);ce(Fe),Fe=q(p,$),ue(Fe)},f=p=>{let m=this.hierarchical.getLevels();m=Ti(m).call(m);for(let w=0;w{let m=this.hierarchical.getLevels();m=Ti(m).call(m);for(let w=0;w{for(const p in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,p)&&this._centerParent(this.body.nodes[p])},y=()=>{let p=this.hierarchical.getLevels();p=Ti(p).call(p);for(let m=0;m0&&Math.abs(u)0&&(h=this.direction.getPosition(n[o-1])+l),this.direction.setPosition(a,h,r),this._validatePositionAndContinue(a,r,h),s++}}}}_placeBranchNodes(e,t){var r;const n=this.hierarchical.childrenReference[e];if(n===void 0)return;const s=[];for(let a=0;at&&this.positionedNodes[l.id]===void 0){const d=this.options.hierarchical.nodeSpacing;let u;a===0?u=this.direction.getPosition(this.body.nodes[e]):u=this.direction.getPosition(s[a-1])+d,this.direction.setPosition(l,u,h),this._validatePositionAndContinue(l,h,u)}else return}const o=this._getCenterPosition(s);this.direction.setPosition(this.body.nodes[e],o,t)}_validatePositionAndContinue(e,t,r){if(this.hierarchical.isTree){if(this.lastNodeOnLevel[t]!==void 0){const n=this.direction.getPosition(this.body.nodes[this.lastNodeOnLevel[t]]);if(r-n{var n;ee(n=this.body.edgeIndices).call(n,r.id)!==-1&&t.push(r)}),t}_getHubSizes(){const e={},t=this.body.nodeIndices;X(t,n=>{const s=this.body.nodes[n],o=this._getActiveEdges(s).length;e[o]=!0});const r=[];return X(e,n=>{r.push(Number(n))}),Cn(r).call(r,function(n,s){return s-n}),r}_determineLevelsByHubsize(){const e=(r,n)=>{this.hierarchical.levelDownstream(r,n)},t=this._getHubSizes();for(let r=0;r{const o=this.body.nodes[s];n===this._getActiveEdges(o).length&&this._crawlNetwork(e,s)})}}_determineLevelsCustomCallback(){const t=function(n,s,o){},r=(n,s,o)=>{let a=this.hierarchical.levels[n.id];a===void 0&&(a=this.hierarchical.levels[n.id]=1e5);const l=t(nt.cloneOptions(n,"node"),nt.cloneOptions(s,"node"),nt.cloneOptions(o,"edge"));this.hierarchical.levels[s.id]=a+l};this._crawlNetwork(r),this.hierarchical.setMinLevelToZero()}_determineLevelsDirected(){var e;const t=AT(e=this.body.nodeIndices).call(e,(r,n)=>(r.set(n,this.body.nodes[n]),r),new Fv);this.options.hierarchical.shakeTowards==="roots"?this.hierarchical.levels=Fde(t):this.hierarchical.levels=Mde(t),this.hierarchical.setMinLevelToZero()}_generateMap(){const e=(t,r)=>{this.hierarchical.levels[r.id]>this.hierarchical.levels[t.id]&&this.hierarchical.addRelation(t.id,r.id)};this._crawlNetwork(e),this.hierarchical.checkIfTree()}_crawlNetwork(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(){},t=arguments.length>1?arguments[1]:void 0;const r={},n=(s,o)=>{if(r[s.id]===void 0){this.hierarchical.setTreeIndex(s,o),r[s.id]=!0;let a;const l=this._getActiveEdges(s);for(let h=0;h{if(r[s])return;r[s]=!0,this.direction.shift(s,t);const o=this.hierarchical.childrenReference[s];if(o!==void 0)for(let a=0;a{const l=this.hierarchical.parentReference[a];if(l!==void 0)for(let h=0;h{const l=this.hierarchical.parentReference[a];if(l!==void 0)for(let h=0;h{this._clean()}),this.body.emitter.on("_dataChanged",O(s=this._restore).call(s,this)),this.body.emitter.on("_resetData",O(o=this._restore).call(o,this))}_restore(){this.inMode!==!1&&(this.options.initiallyActive===!0?this.enableEditMode():this.disableEditMode())}setOptions(e,t,r){t!==void 0&&(t.locale!==void 0?this.options.locale=t.locale:this.options.locale=r.locale,t.locales!==void 0?this.options.locales=t.locales:this.options.locales=r.locales),e!==void 0&&(typeof e=="boolean"?this.options.enabled=e:(this.options.enabled=!0,le(this.options,e)),this.options.initiallyActive===!0&&(this.editMode=!0),this._setup())}toggleEditMode(){this.editMode===!0?this.disableEditMode():this.enableEditMode()}enableEditMode(){this.editMode=!0,this._clean(),this.guiEnabled===!0&&(this.manipulationDiv.style.display="block",this.closeDiv.style.display="block",this.editModeDiv.style.display="none",this.showManipulatorToolbar())}disableEditMode(){this.editMode=!1,this._clean(),this.guiEnabled===!0&&(this.manipulationDiv.style.display="none",this.closeDiv.style.display="none",this.editModeDiv.style.display="block",this._createEditButton())}showManipulatorToolbar(){if(this._clean(),this.manipulationDOM={},this.guiEnabled===!0){var e,t;this.editMode=!0,this.manipulationDiv.style.display="block",this.closeDiv.style.display="block";const r=this.selectionHandler.getSelectedNodeCount(),n=this.selectionHandler.getSelectedEdgeCount(),s=r+n,o=this.options.locales[this.options.locale];let a=!1;this.options.addNode!==!1&&(this._createAddNodeButton(o),a=!0),this.options.addEdge!==!1&&(a===!0?this._createSeperator(1):a=!0,this._createAddEdgeButton(o)),r===1&&typeof this.options.editNode=="function"?(a===!0?this._createSeperator(2):a=!0,this._createEditNodeButton(o)):n===1&&r===0&&this.options.editEdge!==!1&&(a===!0?this._createSeperator(3):a=!0,this._createEditEdgeButton(o)),s!==0&&(r>0&&this.options.deleteNode!==!1?(a===!0&&this._createSeperator(4),this._createDeleteButton(o)):r===0&&this.options.deleteEdge!==!1&&(a===!0&&this._createSeperator(4),this._createDeleteButton(o))),this._bindElementEvents(this.closeDiv,O(e=this.toggleEditMode).call(e,this)),this._temporaryBindEvent("select",O(t=this.showManipulatorToolbar).call(t,this))}this.body.emitter.emit("_redraw")}addNodeMode(){var e;if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addNode",this.guiEnabled===!0){var t;const r=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(r),this._createSeperator(),this._createDescription(r.addDescription||this.options.locales.en.addDescription),this._bindElementEvents(this.closeDiv,O(t=this.toggleEditMode).call(t,this))}this._temporaryBindEvent("click",O(e=this._performAddNode).call(e,this))}editNode(){this.editMode!==!0&&this.enableEditMode(),this._clean();const e=this.selectionHandler.getSelectedNodes()[0];if(e!==void 0)if(this.inMode="editNode",typeof this.options.editNode=="function")if(e.isCluster!==!0){const t=le({},e.options,!1);if(t.x=e.x,t.y=e.y,this.options.editNode.length===2)this.options.editNode(t,r=>{r!=null&&this.inMode==="editNode"&&this.body.data.nodes.getDataSet().update(r),this.showManipulatorToolbar()});else throw new Error("The function for edit does not support two arguments (data, callback)")}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError);else throw new Error("No function has been configured to handle the editing of nodes.");else this.showManipulatorToolbar()}addEdgeMode(){var e,t,r,n,s;if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addEdge",this.guiEnabled===!0){var o;const a=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(a),this._createSeperator(),this._createDescription(a.edgeDescription||this.options.locales.en.edgeDescription),this._bindElementEvents(this.closeDiv,O(o=this.toggleEditMode).call(o,this))}this._temporaryBindUI("onTouch",O(e=this._handleConnect).call(e,this)),this._temporaryBindUI("onDragEnd",O(t=this._finishConnect).call(t,this)),this._temporaryBindUI("onDrag",O(r=this._dragControlNode).call(r,this)),this._temporaryBindUI("onRelease",O(n=this._finishConnect).call(n,this)),this._temporaryBindUI("onDragStart",O(s=this._dragStartEdge).call(s,this)),this._temporaryBindUI("onHold",()=>{})}editEdgeMode(){if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="editEdge",typeof this.options.editEdge=="object"&&typeof this.options.editEdge.editWithoutDrag=="function"&&(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdgeIds()[0],this.edgeBeingEditedId!==void 0)){const o=this.body.edges[this.edgeBeingEditedId];this._performEditEdge(o.from.id,o.to.id);return}if(this.guiEnabled===!0){var e;const o=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(o),this._createSeperator(),this._createDescription(o.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindElementEvents(this.closeDiv,O(e=this.toggleEditMode).call(e,this))}if(this.edgeBeingEditedId=this.selectionHandler.getSelectedEdgeIds()[0],this.edgeBeingEditedId!==void 0){var t,r,n,s;const o=this.body.edges[this.edgeBeingEditedId],a=this._getNewTargetNode(o.from.x,o.from.y),l=this._getNewTargetNode(o.to.x,o.to.y);this.temporaryIds.nodes.push(a.id),this.temporaryIds.nodes.push(l.id),this.body.nodes[a.id]=a,this.body.nodeIndices.push(a.id),this.body.nodes[l.id]=l,this.body.nodeIndices.push(l.id),this._temporaryBindUI("onTouch",O(t=this._controlNodeTouch).call(t,this)),this._temporaryBindUI("onTap",()=>{}),this._temporaryBindUI("onHold",()=>{}),this._temporaryBindUI("onDragStart",O(r=this._controlNodeDragStart).call(r,this)),this._temporaryBindUI("onDrag",O(n=this._controlNodeDrag).call(n,this)),this._temporaryBindUI("onDragEnd",O(s=this._controlNodeDragEnd).call(s,this)),this._temporaryBindUI("onMouseMove",()=>{}),this._temporaryBindEvent("beforeDrawing",h=>{const d=o.edgeType.findBorderPositions(h);a.selected===!1&&(a.x=d.from.x,a.y=d.from.y),l.selected===!1&&(l.x=d.to.x,l.y=d.to.y)}),this.body.emitter.emit("_redraw")}else this.showManipulatorToolbar()}deleteSelected(){this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="delete";const e=this.selectionHandler.getSelectedNodeIds(),t=this.selectionHandler.getSelectedEdgeIds();let r;if(e.length>0){for(let n=0;n0&&typeof this.options.deleteEdge=="function"&&(r=this.options.deleteEdge);if(typeof r=="function"){const n={nodes:e,edges:t};if(r.length===2)r(n,s=>{s!=null&&this.inMode==="delete"?(this.body.data.edges.getDataSet().remove(s.edges),this.body.data.nodes.getDataSet().remove(s.nodes),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()):(this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar())});else throw new Error("The function for delete does not support two arguments (data, callback)")}else this.body.data.edges.getDataSet().remove(t),this.body.data.nodes.getDataSet().remove(e),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}_setup(){this.options.enabled===!0?(this.guiEnabled=!0,this._createWrappers(),this.editMode===!1?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}_createWrappers(){if(this.manipulationDiv===void 0&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",this.editMode===!0?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),this.editModeDiv===void 0&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",this.editMode===!0?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),this.closeDiv===void 0){var e,t;this.closeDiv=document.createElement("button"),this.closeDiv.className="vis-close",this.closeDiv.setAttribute("aria-label",(e=(t=this.options.locales[this.options.locale])===null||t===void 0?void 0:t.close)!==null&&e!==void 0?e:this.options.locales.en.close),this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv)}}_getNewTargetNode(e,t){const r=le({},this.options.controlNodeStyle);r.id="targetNode"+Fs(),r.hidden=!1,r.physics=!1,r.x=e,r.y=t;const n=this.body.functions.createNode(r);return n.shape.boundingBox={left:e,right:e,top:t,bottom:t},n}_createEditButton(){var e;this._clean(),this.manipulationDOM={},Mr(this.editModeDiv);const t=this.options.locales[this.options.locale],r=this._createButton("editMode","vis-edit vis-edit-mode",t.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(r),this._bindElementEvents(r,O(e=this.toggleEditMode).call(e,this))}_clean(){this.inMode=!1,this.guiEnabled===!0&&(Mr(this.editModeDiv),Mr(this.manipulationDiv),this._cleanupDOMEventListeners()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}_cleanupDOMEventListeners(){for(const t of yr(e=this._domEventListenerCleanupQueue).call(e,0)){var e;t()}}_removeManipulationDOM(){this._clean(),Mr(this.manipulationDiv),Mr(this.editModeDiv),Mr(this.closeDiv),this.manipulationDiv&&this.canvas.frame.removeChild(this.manipulationDiv),this.editModeDiv&&this.canvas.frame.removeChild(this.editModeDiv),this.closeDiv&&this.canvas.frame.removeChild(this.closeDiv),this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0}_createSeperator(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:1;this.manipulationDOM["seperatorLineDiv"+e]=document.createElement("div"),this.manipulationDOM["seperatorLineDiv"+e].className="vis-separator-line",this.manipulationDiv.appendChild(this.manipulationDOM["seperatorLineDiv"+e])}_createAddNodeButton(e){var t;const r=this._createButton("addNode","vis-add",e.addNode||this.options.locales.en.addNode);this.manipulationDiv.appendChild(r),this._bindElementEvents(r,O(t=this.addNodeMode).call(t,this))}_createAddEdgeButton(e){var t;const r=this._createButton("addEdge","vis-connect",e.addEdge||this.options.locales.en.addEdge);this.manipulationDiv.appendChild(r),this._bindElementEvents(r,O(t=this.addEdgeMode).call(t,this))}_createEditNodeButton(e){var t;const r=this._createButton("editNode","vis-edit",e.editNode||this.options.locales.en.editNode);this.manipulationDiv.appendChild(r),this._bindElementEvents(r,O(t=this.editNode).call(t,this))}_createEditEdgeButton(e){var t;const r=this._createButton("editEdge","vis-edit",e.editEdge||this.options.locales.en.editEdge);this.manipulationDiv.appendChild(r),this._bindElementEvents(r,O(t=this.editEdgeMode).call(t,this))}_createDeleteButton(e){var t;let r;this.options.rtl?r="vis-delete-rtl":r="vis-delete";const n=this._createButton("delete",r,e.del||this.options.locales.en.del);this.manipulationDiv.appendChild(n),this._bindElementEvents(n,O(t=this.deleteSelected).call(t,this))}_createBackButton(e){var t;const r=this._createButton("back","vis-back",e.back||this.options.locales.en.back);this.manipulationDiv.appendChild(r),this._bindElementEvents(r,O(t=this.showManipulatorToolbar).call(t,this))}_createButton(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"vis-label";return this.manipulationDOM[e+"Div"]=document.createElement("button"),this.manipulationDOM[e+"Div"].className="vis-button "+t,this.manipulationDOM[e+"Label"]=document.createElement("div"),this.manipulationDOM[e+"Label"].className=n,this.manipulationDOM[e+"Label"].innerText=r,this.manipulationDOM[e+"Div"].appendChild(this.manipulationDOM[e+"Label"]),this.manipulationDOM[e+"Div"]}_createDescription(e){this.manipulationDOM.descriptionLabel=document.createElement("div"),this.manipulationDOM.descriptionLabel.className="vis-none",this.manipulationDOM.descriptionLabel.innerText=e,this.manipulationDiv.appendChild(this.manipulationDOM.descriptionLabel)}_temporaryBindEvent(e,t){this.temporaryEventFunctions.push({event:e,boundFunction:t}),this.body.emitter.on(e,t)}_temporaryBindUI(e,t){if(this.body.eventListeners[e]!==void 0)this.temporaryUIFunctions[e]=this.body.eventListeners[e],this.body.eventListeners[e]=t;else throw new Error("This UI function does not exist. Typo? You tried: "+e+" possible are: "+Ko($e(this.body.eventListeners)))}_unbindTemporaryUIs(){for(const e in this.temporaryUIFunctions)Object.prototype.hasOwnProperty.call(this.temporaryUIFunctions,e)&&(this.body.eventListeners[e]=this.temporaryUIFunctions[e],delete this.temporaryUIFunctions[e]);this.temporaryUIFunctions={}}_unbindTemporaryEvents(){for(let e=0;e{r.destroy()});const n=s=>{let{keyCode:o,key:a}=s;(a==="Enter"||a===" "||o===13||o===32)&&t()};e.addEventListener("keyup",n,!1),this._domEventListenerCleanupQueue.push(()=>{e.removeEventListener("keyup",n,!1)})}_cleanupTemporaryNodesAndEdges(){for(let s=0;s=0;a--)if(s[a]!==this.selectedControlNode.id){o=this.body.nodes[s[a]];break}if(o!==void 0&&this.selectedControlNode!==void 0)if(o.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{const a=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===a.id?this._performEditEdge(o.id,n.to.id):this._performEditEdge(n.from.id,o.id)}else n.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}_handleConnect(e){if(new Date().valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(e.center),this.lastTouch.translation=Ae({},this.body.view.translation),this.interactionHandler.drag.pointer=this.lastTouch,this.interactionHandler.drag.translation=this.lastTouch.translation;const t=this.lastTouch,r=this.selectionHandler.getNodeAt(t);if(r!==void 0)if(r.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{const n=this._getNewTargetNode(r.x,r.y);this.body.nodes[n.id]=n,this.body.nodeIndices.push(n.id);const s=this.body.functions.createEdge({id:"connectionEdge"+Fs(),from:r.id,to:n.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[s.id]=s,this.body.edgeIndices.push(s.id),this.temporaryIds.nodes.push(n.id),this.temporaryIds.edges.push(s.id)}this.touchTime=new Date().valueOf()}}_dragControlNode(e){const t=this.body.functions.getPointer(e.center),r=this.selectionHandler._pointerToPositionObject(t);let n;this.temporaryIds.edges[0]!==void 0&&(n=this.body.edges[this.temporaryIds.edges[0]].fromId);const s=this.selectionHandler._getAllNodesOverlappingWith(r);let o;for(let l=s.length-1;l>=0;l--){var a;if(ee(a=this.temporaryIds.nodes).call(a,s[l])===-1){o=this.body.nodes[s[l]];break}}if(e.controlEdge={from:n,to:o?o.id:void 0},this.selectionHandler.generateClickEvent("controlNodeDragging",e,t),this.temporaryIds.nodes[0]!==void 0){const l=this.body.nodes[this.temporaryIds.nodes[0]];l.x=this.canvas._XconvertDOMtoCanvas(t.x),l.y=this.canvas._YconvertDOMtoCanvas(t.y),this.body.emitter.emit("_redraw")}else this.interactionHandler.onDrag(e)}_finishConnect(e){const t=this.body.functions.getPointer(e.center),r=this.selectionHandler._pointerToPositionObject(t);let n;this.temporaryIds.edges[0]!==void 0&&(n=this.body.edges[this.temporaryIds.edges[0]].fromId);const s=this.selectionHandler._getAllNodesOverlappingWith(r);let o;for(let l=s.length-1;l>=0;l--){var a;if(ee(a=this.temporaryIds.nodes).call(a,s[l])===-1){o=this.body.nodes[s[l]];break}}this._cleanupTemporaryNodesAndEdges(),o!==void 0&&(o.isCluster===!0?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):this.body.nodes[n]!==void 0&&this.body.nodes[o.id]!==void 0&&this._performAddEdge(n,o.id)),e.controlEdge={from:n,to:o?o.id:void 0},this.selectionHandler.generateClickEvent("controlNodeDragEnd",e,t),this.body.emitter.emit("_redraw")}_dragStartEdge(e){const t=this.lastTouch;this.selectionHandler.generateClickEvent("dragStart",e,t,void 0,!0)}_performAddNode(e){const t={id:Fs(),x:e.pointer.canvas.x,y:e.pointer.canvas.y,label:"new"};if(typeof this.options.addNode=="function")if(this.options.addNode.length===2)this.options.addNode(t,r=>{r!=null&&this.inMode==="addNode"&&this.body.data.nodes.getDataSet().add(r),this.showManipulatorToolbar()});else throw this.showManipulatorToolbar(),new Error("The function for add does not support two arguments (data,callback)");else this.body.data.nodes.getDataSet().add(t),this.showManipulatorToolbar()}_performAddEdge(e,t){const r={from:e,to:t};if(typeof this.options.addEdge=="function")if(this.options.addEdge.length===2)this.options.addEdge(r,n=>{n!=null&&this.inMode==="addEdge"&&(this.body.data.edges.getDataSet().add(n),this.selectionHandler.unselectAll(),this.showManipulatorToolbar())});else throw new Error("The function for connect does not support two arguments (data,callback)");else this.body.data.edges.getDataSet().add(r),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}_performEditEdge(e,t){const r={id:this.edgeBeingEditedId,from:e,to:t,label:this.body.data.edges.get(this.edgeBeingEditedId).label};let n=this.options.editEdge;if(typeof n=="object"&&(n=n.editWithoutDrag),typeof n=="function")if(n.length===2)n(r,s=>{s==null||this.inMode!=="editEdge"?(this.body.edges[r.id].updateEdgeType(),this.body.emitter.emit("_redraw"),this.showManipulatorToolbar()):(this.body.data.edges.getDataSet().update(s),this.selectionHandler.unselectAll(),this.showManipulatorToolbar())});else throw new Error("The function for edit does not support two arguments (data, callback)");else this.body.data.edges.getDataSet().update(r),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}const C="string",T="boolean",b="number",xs="array",k="object",MT="dom",zde="any",tu=["arrow","bar","box","circle","crow","curve","diamond","image","inv_curve","inv_triangle","triangle","vee"],ru={borderWidth:{number:b},borderWidthSelected:{number:b,undefined:"undefined"},brokenImage:{string:C,undefined:"undefined"},chosen:{label:{boolean:T,function:"function"},node:{boolean:T,function:"function"},__type__:{object:k,boolean:T}},color:{border:{string:C},background:{string:C},highlight:{border:{string:C},background:{string:C},__type__:{object:k,string:C}},hover:{border:{string:C},background:{string:C},__type__:{object:k,string:C}},__type__:{object:k,string:C}},opacity:{number:b,undefined:"undefined"},fixed:{x:{boolean:T},y:{boolean:T},__type__:{object:k,boolean:T}},font:{align:{string:C},color:{string:C},size:{number:b},face:{string:C},background:{string:C},strokeWidth:{number:b},strokeColor:{string:C},vadjust:{number:b},multi:{boolean:T,string:C},bold:{color:{string:C},size:{number:b},face:{string:C},mod:{string:C},vadjust:{number:b},__type__:{object:k,string:C}},boldital:{color:{string:C},size:{number:b},face:{string:C},mod:{string:C},vadjust:{number:b},__type__:{object:k,string:C}},ital:{color:{string:C},size:{number:b},face:{string:C},mod:{string:C},vadjust:{number:b},__type__:{object:k,string:C}},mono:{color:{string:C},size:{number:b},face:{string:C},mod:{string:C},vadjust:{number:b},__type__:{object:k,string:C}},__type__:{object:k,string:C}},group:{string:C,number:b,undefined:"undefined"},heightConstraint:{minimum:{number:b},valign:{string:C},__type__:{object:k,boolean:T,number:b}},hidden:{boolean:T},icon:{face:{string:C},code:{string:C},size:{number:b},color:{string:C},weight:{string:C,number:b},__type__:{object:k}},id:{string:C,number:b},image:{selected:{string:C,undefined:"undefined"},unselected:{string:C,undefined:"undefined"},__type__:{object:k,string:C}},imagePadding:{top:{number:b},right:{number:b},bottom:{number:b},left:{number:b},__type__:{object:k,number:b}},label:{string:C,undefined:"undefined"},labelHighlightBold:{boolean:T},level:{number:b,undefined:"undefined"},margin:{top:{number:b},right:{number:b},bottom:{number:b},left:{number:b},__type__:{object:k,number:b}},mass:{number:b},physics:{boolean:T},scaling:{min:{number:b},max:{number:b},label:{enabled:{boolean:T},min:{number:b},max:{number:b},maxVisible:{number:b},drawThreshold:{number:b},__type__:{object:k,boolean:T}},customScalingFunction:{function:"function"},__type__:{object:k}},shadow:{enabled:{boolean:T},color:{string:C},size:{number:b},x:{number:b},y:{number:b},__type__:{object:k,boolean:T}},shape:{string:["custom","ellipse","circle","database","box","text","image","circularImage","diamond","dot","star","triangle","triangleDown","square","icon","hexagon"]},ctxRenderer:{function:"function"},shapeProperties:{borderDashes:{boolean:T,array:xs},borderRadius:{number:b},interpolation:{boolean:T},useImageSize:{boolean:T},useBorderWithImage:{boolean:T},coordinateOrigin:{string:["center","top-left"]},__type__:{object:k}},size:{number:b},title:{string:C,dom:MT,undefined:"undefined"},value:{number:b,undefined:"undefined"},widthConstraint:{minimum:{number:b},maximum:{number:b},__type__:{object:k,boolean:T,number:b}},x:{number:b},y:{number:b},__type__:{object:k}},Hde={configure:{enabled:{boolean:T},filter:{boolean:T,string:C,array:xs,function:"function"},container:{dom:MT},showButton:{boolean:T},__type__:{object:k,boolean:T,string:C,array:xs,function:"function"}},edges:{arrows:{to:{enabled:{boolean:T},scaleFactor:{number:b},type:{string:tu},imageHeight:{number:b},imageWidth:{number:b},src:{string:C},__type__:{object:k,boolean:T}},middle:{enabled:{boolean:T},scaleFactor:{number:b},type:{string:tu},imageWidth:{number:b},imageHeight:{number:b},src:{string:C},__type__:{object:k,boolean:T}},from:{enabled:{boolean:T},scaleFactor:{number:b},type:{string:tu},imageWidth:{number:b},imageHeight:{number:b},src:{string:C},__type__:{object:k,boolean:T}},__type__:{string:["from","to","middle"],object:k}},endPointOffset:{from:{number:b},to:{number:b},__type__:{object:k,number:b}},arrowStrikethrough:{boolean:T},background:{enabled:{boolean:T},color:{string:C},size:{number:b},dashes:{boolean:T,array:xs},__type__:{object:k,boolean:T}},chosen:{label:{boolean:T,function:"function"},edge:{boolean:T,function:"function"},__type__:{object:k,boolean:T}},color:{color:{string:C},highlight:{string:C},hover:{string:C},inherit:{string:["from","to","both"],boolean:T},opacity:{number:b},__type__:{object:k,string:C}},dashes:{boolean:T,array:xs},font:{color:{string:C},size:{number:b},face:{string:C},background:{string:C},strokeWidth:{number:b},strokeColor:{string:C},align:{string:["horizontal","top","middle","bottom"]},vadjust:{number:b},multi:{boolean:T,string:C},bold:{color:{string:C},size:{number:b},face:{string:C},mod:{string:C},vadjust:{number:b},__type__:{object:k,string:C}},boldital:{color:{string:C},size:{number:b},face:{string:C},mod:{string:C},vadjust:{number:b},__type__:{object:k,string:C}},ital:{color:{string:C},size:{number:b},face:{string:C},mod:{string:C},vadjust:{number:b},__type__:{object:k,string:C}},mono:{color:{string:C},size:{number:b},face:{string:C},mod:{string:C},vadjust:{number:b},__type__:{object:k,string:C}},__type__:{object:k,string:C}},hidden:{boolean:T},hoverWidth:{function:"function",number:b},label:{string:C,undefined:"undefined"},labelHighlightBold:{boolean:T},length:{number:b,undefined:"undefined"},physics:{boolean:T},scaling:{min:{number:b},max:{number:b},label:{enabled:{boolean:T},min:{number:b},max:{number:b},maxVisible:{number:b},drawThreshold:{number:b},__type__:{object:k,boolean:T}},customScalingFunction:{function:"function"},__type__:{object:k}},selectionWidth:{function:"function",number:b},selfReferenceSize:{number:b},selfReference:{size:{number:b},angle:{number:b},renderBehindTheNode:{boolean:T},__type__:{object:k}},shadow:{enabled:{boolean:T},color:{string:C},size:{number:b},x:{number:b},y:{number:b},__type__:{object:k,boolean:T}},smooth:{enabled:{boolean:T},type:{string:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"]},roundness:{number:b},forceDirection:{string:["horizontal","vertical","none"],boolean:T},__type__:{object:k,boolean:T}},title:{string:C,undefined:"undefined"},width:{number:b},widthConstraint:{maximum:{number:b},__type__:{object:k,boolean:T,number:b}},value:{number:b,undefined:"undefined"},__type__:{object:k}},groups:{useDefaultGroups:{boolean:T},__any__:ru,__type__:{object:k}},interaction:{dragNodes:{boolean:T},dragView:{boolean:T},hideEdgesOnDrag:{boolean:T},hideEdgesOnZoom:{boolean:T},hideNodesOnDrag:{boolean:T},hover:{boolean:T},keyboard:{enabled:{boolean:T},speed:{x:{number:b},y:{number:b},zoom:{number:b},__type__:{object:k}},bindToWindow:{boolean:T},autoFocus:{boolean:T},__type__:{object:k,boolean:T}},multiselect:{boolean:T},navigationButtons:{boolean:T},selectable:{boolean:T},selectConnectedEdges:{boolean:T},hoverConnectedEdges:{boolean:T},tooltipDelay:{number:b},zoomView:{boolean:T},zoomSpeed:{number:b},__type__:{object:k}},layout:{randomSeed:{undefined:"undefined",number:b,string:C},improvedLayout:{boolean:T},clusterThreshold:{number:b},hierarchical:{enabled:{boolean:T},levelSeparation:{number:b},nodeSpacing:{number:b},treeSpacing:{number:b},blockShifting:{boolean:T},edgeMinimization:{boolean:T},parentCentralization:{boolean:T},direction:{string:["UD","DU","LR","RL"]},sortMethod:{string:["hubsize","directed"]},shakeTowards:{string:["leaves","roots"]},__type__:{object:k,boolean:T}},__type__:{object:k}},manipulation:{enabled:{boolean:T},initiallyActive:{boolean:T},addNode:{boolean:T,function:"function"},addEdge:{boolean:T,function:"function"},editNode:{function:"function"},editEdge:{editWithoutDrag:{function:"function"},__type__:{object:k,boolean:T,function:"function"}},deleteNode:{boolean:T,function:"function"},deleteEdge:{boolean:T,function:"function"},controlNodeStyle:ru,__type__:{object:k,boolean:T}},nodes:ru,physics:{enabled:{boolean:T},barnesHut:{theta:{number:b},gravitationalConstant:{number:b},centralGravity:{number:b},springLength:{number:b},springConstant:{number:b},damping:{number:b},avoidOverlap:{number:b},__type__:{object:k}},forceAtlas2Based:{theta:{number:b},gravitationalConstant:{number:b},centralGravity:{number:b},springLength:{number:b},springConstant:{number:b},damping:{number:b},avoidOverlap:{number:b},__type__:{object:k}},repulsion:{centralGravity:{number:b},springLength:{number:b},springConstant:{number:b},nodeDistance:{number:b},damping:{number:b},__type__:{object:k}},hierarchicalRepulsion:{centralGravity:{number:b},springLength:{number:b},springConstant:{number:b},nodeDistance:{number:b},damping:{number:b},avoidOverlap:{number:b},__type__:{object:k}},maxVelocity:{number:b},minVelocity:{number:b},solver:{string:["barnesHut","repulsion","hierarchicalRepulsion","forceAtlas2Based"]},stabilization:{enabled:{boolean:T},iterations:{number:b},updateInterval:{number:b},onlyDynamicEdges:{boolean:T},fit:{boolean:T},__type__:{object:k,boolean:T}},timestep:{number:b},adaptiveTimestep:{boolean:T},wind:{x:{number:b},y:{number:b},__type__:{object:k}},__type__:{object:k,boolean:T}},autoResize:{boolean:T},clickToUse:{boolean:T},locale:{string:C},locales:{__any__:{any:zde},__type__:{object:k}},height:{string:C},width:{string:C},__type__:{object:k}},FT={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:["color","#2B7CE9"],background:["color","#97C2FC"],highlight:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]},hover:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]}},opacity:[0,0,1,.1],fixed:{x:!1,y:!1},font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[0,0,50,1],strokeColor:["color","#ffffff"]},hidden:!1,labelHighlightBold:!0,physics:!0,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:!1,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:["ellipse","box","circle","database","diamond","dot","square","star","text","triangle","triangleDown","hexagon"],shapeProperties:{borderDashes:!1,borderRadius:[6,0,20,1],interpolation:!0,useImageSize:!1},size:[25,0,200,1]},edges:{arrows:{to:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"},middle:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"},from:{enabled:!1,scaleFactor:[1,0,3,.05],type:"arrow"}},endPointOffset:{from:[0,-10,10,1],to:[0,-10,10,1]},arrowStrikethrough:!0,color:{color:["color","#848484"],highlight:["color","#848484"],hover:["color","#848484"],inherit:["from","to","both",!0,!1],opacity:[1,0,1,.05]},dashes:!1,font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[2,0,50,1],strokeColor:["color","#ffffff"],align:["horizontal","top","middle","bottom"]},hidden:!1,hoverWidth:[1.5,0,5,.1],labelHighlightBold:!0,physics:!0,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:!0,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],selfReference:{size:[20,0,200,1],angle:[Math.PI/2,-6*Math.PI,6*Math.PI,Math.PI/8],renderBehindTheNode:!0},shadow:{enabled:!1,color:"rgba(0,0,0,0.5)",size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:!0,type:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"],forceDirection:["horizontal","vertical","none"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:!1,levelSeparation:[150,20,500,5],nodeSpacing:[100,20,500,5],treeSpacing:[200,20,500,5],blockShifting:!0,edgeMinimization:!0,parentCentralization:!0,direction:["UD","DU","LR","RL"],sortMethod:["hubsize","directed"],shakeTowards:["leaves","roots"]}},interaction:{dragNodes:!0,dragView:!0,hideEdgesOnDrag:!1,hideEdgesOnZoom:!1,hideNodesOnDrag:!1,hover:!1,keyboard:{enabled:!1,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:!0,autoFocus:!0},multiselect:!1,navigationButtons:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0,tooltipDelay:[300,0,1e3,25],zoomView:!0,zoomSpeed:[1,.1,2,.1]},manipulation:{enabled:!1,initiallyActive:!1},physics:{enabled:!0,barnesHut:{theta:[.5,.1,1,.05],gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{theta:[.5,.1,1,.05],gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:["barnesHut","forceAtlas2Based","repulsion","hierarchicalRepulsion"],timestep:[.5,.01,1,.01],wind:{x:[0,-10,10,.1],y:[0,-10,10,.1]}}},Vde=(i,e,t)=>{var r;return!!(Yr(i).call(i,"physics")&&Yr(r=FT.physics.solver).call(r,e)&&t.physics.solver!==e&&e!=="wind")};class Wde{constructor(){}getDistances(e,t,r){const n={},s=e.edges;for(let a=0;a2&&arguments[2]!==void 0?arguments[2]:!1;const n=this.distanceSolver.getDistances(this.body,e,t);this._createL_matrix(n),this._createK_matrix(n),this._createE_matrix();const s=.01,o=1;let a=0;const l=Math.max(1e3,Math.min(10*this.body.nodeIndices.length,6e3)),h=5;let d=1e9,u=0,c=0,f=0,v=0,g=0;for(;d>s&&ao&&gthis.body.emitter.emit("_requestRedraw")),this.groups=new bne,this.canvas=new Nle(this.body),this.selectionHandler=new bhe(this.body,this.canvas),this.interactionHandler=new Fle(this.body,this.canvas,this.selectionHandler),this.view=new kle(this.body,this.canvas),this.renderer=new xle(this.body,this.canvas),this.physics=new $le(this.body),this.layoutEngine=new jde(this.body),this.clustering=new Ole(this.body),this.manipulation=new Lde(this.body,this.canvas,this.selectionHandler,this.interactionHandler),this.nodesHandler=new Wae(this.body,this.images,this.groups,this.layoutEngine),this.edgesHandler=new vle(this.body,this.images,this.groups),this.body.modules.kamadaKawai=new Ude(this.body,150,.05),this.body.modules.clustering=this.clustering,this.canvas._create(),this.setOptions(t),this.setData(e)}rS(N.prototype);N.prototype.setOptions=function(i){if(i===null&&(i=void 0),i!==void 0){if(Zte.validate(i,Hde)===!0&&console.error("%cErrors have been found in the supplied options object.",B_),ps(["locale","locales","clickToUse"],this.options,i),i.locale!==void 0&&(i.locale=Ere(i.locales||this.options.locales,i.locale)),i=this.layoutEngine.setOptions(i.layout,i),this.canvas.setOptions(i),this.groups.setOptions(i.groups),this.nodesHandler.setOptions(i.nodes),this.edgesHandler.setOptions(i.edges),this.physics.setOptions(i.physics),this.manipulation.setOptions(i.manipulation,i,this.options),this.interactionHandler.setOptions(i.interaction),this.renderer.setOptions(i.interaction),this.selectionHandler.setOptions(i.interaction),i.groups!==void 0&&this.body.emitter.emit("refreshNodes"),"configure"in i&&(this.configurator||(this.configurator=new Xte(this,this.body.container,FT,this.canvas.pixelRatio,Vde)),this.configurator.setOptions(i.configure)),this.configurator&&this.configurator.options.enabled===!0){const r={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};le(r.nodes,this.nodesHandler.options),le(r.edges,this.edgesHandler.options),le(r.layout,this.layoutEngine.options),le(r.interaction,this.selectionHandler.options),le(r.interaction,this.renderer.options),le(r.interaction,this.interactionHandler.options),le(r.manipulation,this.manipulation.options),le(r.physics,this.physics.options),le(r.global,this.canvas.options),le(r.global,this.options),this.configurator.setModuleOptions(r)}i.clickToUse!==void 0?i.clickToUse===!0?this.activator===void 0&&(this.activator=new Yte(this.canvas.frame),this.activator.on("change",()=>{this.body.emitter.emit("activate")})):(this.activator!==void 0&&(this.activator.destroy(),delete this.activator),this.body.emitter.emit("activate")):this.body.emitter.emit("activate"),this.canvas.setSize(),this.body.emitter.emit("startSimulation")}};N.prototype._updateVisibleIndices=function(){const i=this.body.nodes,e=this.body.edges;this.body.nodeIndices=[],this.body.edgeIndices=[];for(const t in i)Object.prototype.hasOwnProperty.call(i,t)&&!this.clustering._isClusteredNode(t)&&i[t].options.hidden===!1&&this.body.nodeIndices.push(i[t].id);for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t)){const r=e[t],n=i[r.fromId],s=i[r.toId],o=n!==void 0&&s!==void 0;!this.clustering._isClusteredEdge(t)&&r.options.hidden===!1&&o&&n.options.hidden===!1&&s.options.hidden===!1&&this.body.edgeIndices.push(r.id)}};N.prototype.bindEventListeners=function(){this.body.emitter.on("_dataChanged",()=>{this.edgesHandler._updateState(),this.body.emitter.emit("_dataUpdated")}),this.body.emitter.on("_dataUpdated",()=>{this.clustering._updateState(),this._updateVisibleIndices(),this._updateValueRange(this.body.nodes),this._updateValueRange(this.body.edges),this.body.emitter.emit("startSimulation"),this.body.emitter.emit("_requestRedraw")})};N.prototype.setData=function(i){if(this.body.emitter.emit("resetPhysics"),this.body.emitter.emit("_resetData"),this.selectionHandler.unselectAll(),i&&i.dot&&(i.nodes||i.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(i&&i.options),i&&i.dot){console.warn("The dot property has been deprecated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);");const e=lre(i.dot);this.setData(e);return}else if(i&&i.gephi){console.warn("The gephi property has been deprecated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);");const e=hre(i.gephi);this.setData(e);return}else this.nodesHandler.setData(i&&i.nodes,!0),this.edgesHandler.setData(i&&i.edges,!0);this.body.emitter.emit("_dataChanged"),this.body.emitter.emit("_dataLoaded"),this.body.emitter.emit("initPhysics")};N.prototype.destroy=function(){this.body.emitter.emit("destroy"),this.body.emitter.off(),this.off(),delete this.groups,delete this.canvas,delete this.selectionHandler,delete this.interactionHandler,delete this.view,delete this.renderer,delete this.physics,delete this.layoutEngine,delete this.clustering,delete this.manipulation,delete this.nodesHandler,delete this.edgesHandler,delete this.configurator,delete this.images;for(const i in this.body.nodes)Object.prototype.hasOwnProperty.call(this.body.nodes,i)&&delete this.body.nodes[i];for(const i in this.body.edges)Object.prototype.hasOwnProperty.call(this.body.edges,i)&&delete this.body.edges[i];Mr(this.body.container)};N.prototype._updateValueRange=function(i){let e,t,r,n=0;for(e in i)if(Object.prototype.hasOwnProperty.call(i,e)){const s=i[e].getValue();s!==void 0&&(t=t===void 0?s:Math.min(s,t),r=r===void 0?s:Math.max(s,r),n+=s)}if(t!==void 0&&r!==void 0)for(e in i)Object.prototype.hasOwnProperty.call(i,e)&&i[e].setValueRange(t,r,n)};N.prototype.isActive=function(){return!this.activator||this.activator.active};N.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)};N.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)};N.prototype.DOMtoCanvas=function(){return this.canvas.DOMtoCanvas.apply(this.canvas,arguments)};N.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)};N.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)};N.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)};N.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)};N.prototype.getNodesInCluster=function(){return this.clustering.getNodesInCluster.apply(this.clustering,arguments)};N.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)};N.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)};N.prototype.updateClusteredNode=function(){return this.clustering.updateClusteredNode.apply(this.clustering,arguments)};N.prototype.getClusteredEdges=function(){return this.clustering.getClusteredEdges.apply(this.clustering,arguments)};N.prototype.getBaseEdge=function(){return this.clustering.getBaseEdge.apply(this.clustering,arguments)};N.prototype.getBaseEdges=function(){return this.clustering.getBaseEdges.apply(this.clustering,arguments)};N.prototype.updateEdge=function(){return this.clustering.updateEdge.apply(this.clustering,arguments)};N.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)};N.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)};N.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)};N.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)};N.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)};N.prototype.editNode=function(){return this.manipulation.editNode.apply(this.manipulation,arguments)};N.prototype.editNodeMode=function(){return console.warn("Deprecated: Please use editNode instead of editNodeMode."),this.manipulation.editNode.apply(this.manipulation,arguments)};N.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)};N.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)};N.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)};N.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)};N.prototype.getPosition=function(){return this.nodesHandler.getPosition.apply(this.nodesHandler,arguments)};N.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)};N.prototype.moveNode=function(){return this.nodesHandler.moveNode.apply(this.nodesHandler,arguments)};N.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)};N.prototype.getConnectedNodes=function(i){return this.body.nodes[i]!==void 0?this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments):this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)};N.prototype.getConnectedEdges=function(){return this.nodesHandler.getConnectedEdges.apply(this.nodesHandler,arguments)};N.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)};N.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)};N.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)};N.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)};N.prototype.setSelection=function(){return this.selectionHandler.setSelection.apply(this.selectionHandler,arguments)};N.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodeIds.apply(this.selectionHandler,arguments)};N.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdgeIds.apply(this.selectionHandler,arguments)};N.prototype.getNodeAt=function(){const i=this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments);return i!==void 0&&i.id!==void 0?i.id:i};N.prototype.getEdgeAt=function(){const i=this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments);return i!==void 0&&i.id!==void 0?i.id:i};N.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)};N.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)};N.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments),this.selectionHandler.commitWithoutEmitting.apply(this.selectionHandler),this.redraw()};N.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)};N.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)};N.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)};N.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)};N.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)};N.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)};N.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)};N.prototype.getOptionsFromConfigurator=function(){let i={};return this.configurator&&(i=this.configurator.getOptions.apply(this.configurator)),i};function Kde({content:i,name:e="Assistant",avatar:t,onAddMessage:r,onFinishLoad:n}){const{state:s,dispatch:o}=GT(),{selectedNode:a,installedNodes:l}=s,h=JSON.parse(i),[d,u]=ve.useState(null),c=ve.useRef(null),f=h.ext?.find(m=>m.type==="downstream_subgraph_search")?.data||[];ve.useEffect(()=>{n?.()},[]);const v=m=>{const w=m.json.nodes.map(x=>({id:x.id,label:x.type,color:{background:"#2B7CE9",border:"#1B5BB1"},font:{size:16,color:"#FFFFFF",face:"arial",bold:!0},margin:12,padding:10,shape:"box",widthConstraint:{minimum:100,maximum:200}})),$=m.json.links.map(x=>({from:x.origin_id,to:x.target_id,arrows:{to:{enabled:!0,scaleFactor:1.2}},color:"#000000",width:2}));return{nodes:w,edges:$}};ve.useEffect(()=>()=>{c.current&&(c.current.destroy(),c.current=null)},[]);const g=ve.useCallback((m,w)=>{c.current&&c.current.destroy();const $=v(w),x=new N(m,$,{nodes:{shape:"box",margin:12,padding:10,font:{size:16,color:"#FFFFFF",face:"arial",bold:!0},borderWidth:2,shadow:{enabled:!0,color:"rgba(0,0,0,0.2)",size:5}},edges:{arrows:"to",color:"#000000",width:2,smooth:{enabled:!0,type:"straightCross"}},physics:{enabled:!0,solver:"hierarchicalRepulsion",hierarchicalRepulsion:{nodeDistance:200,springLength:200}},layout:{hierarchical:{enabled:!0,direction:"UD",sortMethod:"directed",nodeSpacing:200,levelSeparation:150}},interaction:{dragNodes:!1,zoomView:!1,dragView:!1}});c.current=x},[]),y=async m=>{console.log("[DownstreamSubgraphs] Starting checkAndLoadSubgraph with node:",m),Wr.trackEvent({event_type:"subgraph_accept",message_type:"subgraph",message_id:h.message_id,data:{subgraph_name:m.name,subgraph_tags:m.tags}});const w=m.json.nodes,$=Object.values(tt.canvas.selected_nodes)[0];if(!$){console.warn("[DownstreamSubgraphs] No node selected"),alert("Please select a upstream node first before adding a subgraph.");return}const x=w.map(R=>R.type),_=l;console.log("[DownstreamSubgraphs] Required node types:",x),console.log("[DownstreamSubgraphs] Installed node types:",_);const A=x.filter(R=>!_.includes(R));if(console.log("[DownstreamSubgraphs] Missing node types:",A),A.length>0)try{console.log("[DownstreamSubgraphs] Fetching info for missing nodes");const R=await Wr.batchGetNodeInfo(A);console.log("[DownstreamSubgraphs] Received node infos:",R);const B={text:"",ext:[{type:"node_install_guide",data:R.map(q=>({name:q.name,repository_url:q.github_url}))}]};console.log("[DownstreamSubgraphs] Created message content:",B);const G={id:Jt(),role:"ai",content:JSON.stringify(B),format:"markdown",name:"Assistant",metadata:{pendingSubgraph:m}};console.log("[DownstreamSubgraphs] Created AI message:",G),r?.(G);return}catch(R){console.error("[DownstreamSubgraphs] Error fetching node info:",R),alert("Error checking required nodes. Please try again.");return}console.log("[DownstreamSubgraphs] All required nodes are installed, proceeding to load subgraph"),p(m,$)},p=(m,w)=>{const $=m.json.nodes,x=m.json.links,_=$.find(B=>B.id===0),A=_?.id;console.log("[DownstreamSubgraphs] Entry node ID:",A);const R={};A!==null&&(R[A]=w),tt.canvas.emitBeforeChange();try{for(const B of $)if(B.id!==A){const G=_?.pos,q=[w._pos[0],w._pos[1]],ce=[B.pos[0]+q[0]-G[0],B.pos[1]+q[1]-G[1]];R[B.id]=t$(B.type,{pos:ce})}for(const B of x){const G=R[B.origin_id],q=R[B.target_id];G&&q&&G.connect(B.origin_slot,q,B.target_slot)}}finally{tt.canvas.emitAfterChange()}};return ve.useEffect(()=>{const m=()=>{const w=tt.canvas.selected_nodes;Object.keys(w??{}).length?o({type:"SET_SELECTED_NODE",payload:Object.values(w)}):o({type:"SET_SELECTED_NODE",payload:null})};return document.addEventListener("click",m),()=>{document.removeEventListener("click",m)}},[]),E.jsx("div",{className:"rounded-lg bg-gray-500 p-3 text-gray-700 text-xs break-words overflow-visible",children:f.length>0&&E.jsx("div",{className:"space-y-3",children:E.jsx("div",{className:"flex flex-wrap gap-2",children:f.map(m=>E.jsxs("div",{className:"relative group",children:[E.jsx("button",{className:`px-3 py-1.5 bg-blue-500 text-white rounded-md hover:bg-blue-600 transition-colors text-xs`,onClick:()=>y(m),onMouseEnter:()=>u(m.name),onMouseLeave:()=>u(null),children:m.name}),E.jsxs("p",{className:"text-xs ml-3 text-white",children:["[",m.tags.join(", "),"]"]}),d===m.name&&E.jsx("div",{className:`fixed -translate-y-full z-[9999] w-[500px] p-4 bg-gray-800 text-white text-xs rounded-md shadow-lg mb-2 border border-gray-700`,style:{left:"calc(var(--mouse-x, 0) + 16px)",top:"calc(var(--mouse-y, 0) - 8px)"},children:E.jsx("div",{style:{width:"100%",height:"300px"},ref:w=>{w&&g(w,m)}})})]},m.name))})})})}const uce=Object.freeze(Object.defineProperty({__proto__:null,DownstreamSubgraphs:Kde},Symbol.toStringTag,{value:"Module"}));function Gde({content:i,onLoadSubgraph:e,onFinishLoad:t}){const s=(JSON.parse(i).ext?.find(o=>o.type==="node_install_guide")?.data||[]).reduce((o,a)=>(o.some(l=>l.name===a.name)||o.push(a),o),[]);return ve.useEffect(()=>{t?.()},[]),E.jsxs("div",{children:[E.jsx("p",{children:"Before loading the graph to canvas, the following nodes need to be installed. Please visit the corresponding GitHub repositories to install them:"}),E.jsx("div",{className:"grid grid-cols-2 gap-3",children:s.map((o,a)=>E.jsx("div",{className:`w-full p-3 rounded-lg border border-gray-200 hover:shadow-sm transition-all duration-200`,children:E.jsxs("div",{className:"flex flex-col",children:[E.jsx("h3",{className:"text-[12px] font-medium text-gray-800 mb-4",children:o.name}),E.jsx("div",{className:"flex justify-end",children:o.repository_url?E.jsxs("a",{href:o.repository_url,target:"_blank",rel:"noopener noreferrer",className:`px-2 py-1 text-gray-900 rounded-md border border-gray-900 hover:bg-gray-100 transition-colors text-[10px] flex items-center gap-1`,children:[E.jsx("svg",{className:"h-3.5 w-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:E.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"})}),"Download"]}):E.jsxs("a",{href:`https://www.google.com/search?q=${encodeURIComponent(o.name+" comfyui custom node")}`,target:"_blank",rel:"noopener noreferrer",className:`px-2 py-1 bg-gray-100 text-gray-500 rounded-md border border-gray-300 text-[10px] flex items-center gap-1`,children:[E.jsx("svg",{className:"h-3.5 w-3.5",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:E.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 21h7a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v11m0 5l4.879-4.879m0 0a3 3 0 104.243-4.242 3 3 0 00-4.243 4.242z"})}),"Search on Google"]})})]})},a))}),E.jsx("p",{className:"mt-4"}),E.jsx("p",{children:"After installation, please click the continue loading graph button to load the graph to the canvas:"}),E.jsx("div",{className:"mt-4",children:E.jsx("button",{className:`px-3 py-2 bg-blue-500 text-white rounded-md hover:bg-blue-600 transition-colors text-xs block mx-auto`,onClick:e,children:"Loading graph directly"})})]})}const fce=Object.freeze(Object.defineProperty({__proto__:null,NodeInstallGuide:Gde},Symbol.toStringTag,{value:"Module"}));export{tce as A,e$ as B,Jde as C,uce as D,EO as M,rce as N,ece as U,Wr as W,tt as a,t$ as b,UT as c,fce as d,Zde as f,Jt as g,GT as u,Qde as v,Xde as w};