import{m as l}from"./mermaid.esm.min-DdZd6KOl.js";function Ia(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},"n"),e:l(function(u){throw u},"e"),f:a}}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 i,o=!0,c=!1;return{s:l(function(){n=n.call(e)},"s"),n:l(function(){var u=n.next();return o=u.done,u},"n"),e:l(function(u){c=!0,i=u},"e"),f:l(function(){try{o||n.return==null||n.return()}finally{if(c)throw i}},"f")}}l(xt,"_createForOfIteratorHelper");function vs(e,t,n){return(t=ys(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}l(vs,"_defineProperty$1");function Bc(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}l(Bc,"_iterableToArray");function Ac(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,i,o,c=[],u=!0,s=!1;try{if(i=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=i.call(n)).done)&&(c.push(r.value),c.length!==t);u=!0);}catch(d){s=!0,a=d}finally{try{if(!u&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return c}}l(Ac,"_iterableToArrayLimit");function Mc(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}l(Mc,"_nonIterableRest");function Ic(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}l(Ic,"_nonIterableSpread");function Ue(e,t){return Dc(e)||Ac(e,t)||Ga(e,t)||Mc()}l(Ue,"_slicedToArray");function Dr(e){return kc(e)||Bc(e)||Ga(e)||Ic()}l(Dr,"_toConsumableArray");function Rc(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}l(Rc,"_toPrimitive");function ys(e){var t=Rc(e,"string");return typeof t=="symbol"?t:t+""}l(ys,"_toPropertyKey");function et(e){"@babel/helpers - typeof";return et=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},et(e)}l(et,"_typeof");function Ga(e,t){if(e){if(typeof e=="string")return Ia(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Ia(e,t):void 0}}l(Ga,"_unsupportedIterableToArray");var tt=typeof window>"u"?null:window,dl=tt?tt.navigator:null;tt&&tt.document;var Kf=et(""),Nc=et({}),Gf=et(function(){}),Uf=typeof HTMLElement>"u"?"undefined":et(HTMLElement),zr=l(function(e){return e&&e.instanceString&&He(e.instanceString)?e.instanceString():null},"instanceStr"),pe=l(function(e){return e!=null&&et(e)==Kf},"string"),He=l(function(e){return e!=null&&et(e)===Gf},"fn"),Ve=l(function(e){return!Dt(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},"array"),Be=l(function(e){return e!=null&&et(e)===Nc&&!Ve(e)&&e.constructor===Object},"plainObject"),Zf=l(function(e){return e!=null&&et(e)===Nc},"object"),re=l(function(e){return e!=null&&et(e)===et(1)&&!isNaN(e)},"number"),$f=l(function(e){return re(e)&&Math.floor(e)===e},"integer"),Ra=l(function(e){if(Uf!=="undefined")return e!=null&&e instanceof HTMLElement},"htmlElement"),Dt=l(function(e){return Fr(e)||Lc(e)},"elementOrCollection"),Fr=l(function(e){return zr(e)==="collection"&&e._private.single},"element"),Lc=l(function(e){return zr(e)==="collection"&&!e._private.single},"collection"),ms=l(function(e){return zr(e)==="core"},"core"),Oc=l(function(e){return zr(e)==="stylesheet"},"stylesheet"),Jf=l(function(e){return zr(e)==="event"},"event"),dn=l(function(e){return e==null?!0:!!(e===""||e.match(/^\s+$/))},"emptyString"),Qf=l(function(e){return typeof HTMLElement>"u"?!1:e instanceof HTMLElement},"domElement"),ep=l(function(e){return Be(e)&&re(e.x1)&&re(e.x2)&&re(e.y1)&&re(e.y2)},"boundingBox"),tp=l(function(e){return Zf(e)&&He(e.then)},"promise"),np=l(function(){return dl&&dl.userAgent.match(/msie|trident|edge/i)},"ms"),er=l(function(e,t){t||(t=l(function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var r=[],a=0;at?1:0},"ascending"),up=l(function(e,t){return-1*Fc(e,t)},"descending"),ve=Object.assign!=null?Object.assign.bind(Object):function(e){for(var t=arguments,n=1;n1&&(y-=1),y<1/6?p+(g-p)*6*y:y<1/2?g:y<2/3?p+(g-p)*(2/3-y)*6:p}l(s,"hue2rgb");var d=new RegExp("^"+ip+"$").exec(e);if(d){if(n=parseInt(d[1]),n<0?n=(360- -1*n%360)%360:n>360&&(n=n%360),n/=360,r=parseFloat(d[2]),r<0||r>100||(r=r/100,a=parseFloat(d[3]),a<0||a>100)||(a=a/100,i=d[4],i!==void 0&&(i=parseFloat(i),i<0||i>1)))return;if(r===0)o=c=u=Math.round(a*255);else{var h=a<.5?a*(1+r):a+r-a*r,f=2*a-h;o=Math.round(255*s(f,h,n+1/3)),c=Math.round(255*s(f,h,n)),u=Math.round(255*s(f,h,n-1/3))}t=[o,c,u,i]}return t},"hsl2tuple"),hp=l(function(e){var t,n=new RegExp("^"+rp+"$").exec(e);if(n){t=[];for(var r=[],a=1;a<=3;a++){var i=n[a];if(i[i.length-1]==="%"&&(r[a]=!0),i=parseFloat(i),r[a]&&(i=i/100*255),i<0||i>255)return;t.push(Math.floor(i))}var o=r[1]||r[2]||r[3],c=r[1]&&r[2]&&r[3];if(o&&!c)return;var u=n[4];if(u!==void 0){if(u=parseFloat(u),u<0||u>1)return;t.push(u)}}return t},"rgb2tuple"),fp=l(function(e){return pp[e.toLowerCase()]},"colorname2tuple"),Vc=l(function(e){return(Ve(e)?e:null)||fp(e)||cp(e)||hp(e)||dp(e)},"color2tuple"),pp={transparent:[0,0,0,0],aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],grey:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},qc=l(function(e){for(var t=e.map,n=e.keys,r=n.length,a=0;a=u||A<0||m&&O>=f}l(E,"shouldInvoke");function k(){var M=t();if(E(M))return _(M);g=setTimeout(k,P(M))}l(k,"timerExpired");function _(M){return g=void 0,x&&d?w(M):(d=h=void 0,p)}l(_,"trailingEdge");function B(){g!==void 0&&clearTimeout(g),b=0,d=y=h=g=void 0}l(B,"cancel");function D(){return g===void 0?p:_(t())}l(D,"flush");function S(){var M=t(),A=E(M);if(d=arguments,h=this,y=M,A){if(g===void 0)return T(y);if(m)return clearTimeout(g),g=setTimeout(k,u),w(y)}return g===void 0&&(g=setTimeout(k,u)),p}return l(S,"debounced"),S.cancel=B,S.flush=D,S}return l(o,"debounce"),Pi=o,Pi}l($c,"requireDebounce");var gp=$c(),qr=ar(gp),Di=tt?tt.performance:null,Jc=Di&&Di.now?function(){return Di.now()}:function(){return Date.now()},vp=(function(){if(tt){if(tt.requestAnimationFrame)return function(e){tt.requestAnimationFrame(e)};if(tt.mozRequestAnimationFrame)return function(e){tt.mozRequestAnimationFrame(e)};if(tt.webkitRequestAnimationFrame)return function(e){tt.webkitRequestAnimationFrame(e)};if(tt.msRequestAnimationFrame)return function(e){tt.msRequestAnimationFrame(e)}}return function(e){e&&setTimeout(function(){e(Jc())},1e3/60)}})(),Na=l(function(e){return vp(e)},"requestAnimationFrame"),Gt=Jc,kn=9261,Qc=65599,Yn=5381,ed=l(function(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:kn,n=t,r;r=e.next(),!r.done;)n=n*Qc+r.value|0;return n},"hashIterableInts"),kr=l(function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:kn;return t*Qc+e|0},"hashInt"),_r=l(function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Yn;return(t<<5)+t+e|0},"hashIntAlt"),yp=l(function(e,t){return e*2097152+t},"combineHashes"),tn=l(function(e){return e[0]*2097152+e[1]},"combineHashesArray"),la=l(function(e,t){return[kr(e[0],t[0]),_r(e[1],t[1])]},"hashArrays"),Dl=l(function(e,t){var n={value:0,done:!1},r=0,a=e.length,i={next:l(function(){return r=0;r--)e[r]===t&&e.splice(r,1)},"removeFromArray"),Cs=l(function(e){e.splice(0,e.length)},"clearArray"),Sp=l(function(e,t){for(var n=0;n"u"?"undefined":et(Set))!==Dp?Set:kp,$a=l(function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||t===void 0||!ms(e)){We("An element must have a core reference and parameters set");return}var r=t.group;if(r==null&&(t.data&&t.data.source!=null&&t.data.target!=null?r="edges":r="nodes"),r!=="nodes"&&r!=="edges"){We("An element must be of type `nodes` or `edges`; you specified `"+r+"`");return}this.length=1,this[0]=this;var a=this._private={cy:e,single:!0,data:t.data||{},position:t.position||{x:0,y:0},autoWidth:void 0,autoHeight:void 0,autoPadding:void 0,compoundBoundsClean:!1,listeners:[],group:r,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:!0,selected:!!t.selected,selectable:t.selectable===void 0?!0:!!t.selectable,locked:!!t.locked,grabbed:!1,grabbable:t.grabbable===void 0?!0:!!t.grabbable,pannable:t.pannable===void 0?r==="edges":!!t.pannable,active:!1,classes:new sr,animation:{current:[],queue:[]},rscratch:{},scratch:t.scratch||{},edges:[],children:[],parent:t.parent&&t.parent.isNode()?t.parent:null,traversalCache:{},backgrounding:!1,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(a.position.x==null&&(a.position.x=0),a.position.y==null&&(a.position.y=0),t.renderedPosition){var i=t.renderedPosition,o=e.pan(),c=e.zoom();a.position={x:(i.x-o.x)/c,y:(i.y-o.y)/c}}var u=[];Ve(t.classes)?u=t.classes:pe(t.classes)&&(u=t.classes.split(/\s+/));for(var s=0,d=u.length;sm?1:0},"defaultCmp"),d=l(function(v,m,x,w,T){var P;if(x==null&&(x=0),T==null&&(T=r),x<0)throw new Error("lo must be non-negative");for(w==null&&(w=v.length);xB;0<=B?_++:_--)k.push(_);return k}).apply(this).reverse(),E=[],w=0,T=P.length;wD;0<=D?++k:--k)S.push(o(v,x));return S},"nsmallest"),y=l(function(v,m,x,w){var T,P,E;for(w==null&&(w=r),T=v[x];x>m;){if(E=x-1>>1,P=v[E],w(T,P)<0){v[x]=P,x=E;continue}break}return v[x]=T},"_siftdown"),b=l(function(v,m,x){var w,T,P,E,k;for(x==null&&(x=r),T=v.length,k=m,P=v[m],w=2*m+1;w0;){var T=v.pop(),P=y(T),E=T.id();if(h[E]=P,P!==1/0)for(var k=T.neighborhood().intersect(p),_=0;_0)for(R.unshift(O);d[L];){var N=d[L];R.unshift(N.edge),R.unshift(N.node),I=N.node,L=I.id()}return o.spawn(R)},"pathTo")}},"dijkstra")},Ip={kruskal:l(function(e){e=e||function(m){return 1};for(var t=this.byGroup(),n=t.nodes,r=t.edges,a=n.length,i=new Array(a),o=n,c=l(function(m){for(var x=0;x0;){if(w(),P++,x===s){for(var E=[],k=a,_=s,B=b[_];E.unshift(k),B!=null&&E.unshift(B),k=y[_],k!=null;)_=k.id(),B=b[_];return{found:!0,distance:d[x],path:this.spawn(E),steps:P}}f[x]=!0;for(var D=m._private.edges,S=0;SB&&(p[_]=B,v[_]=k,m[_]=w),!a){var D=k*s+E;!a&&p[D]>B&&(p[D]=B,v[D]=E,m[D]=w)}}}for(var S=0;S1&&arguments[1]!==void 0?arguments[1]:i,Ae=m(me),te=[],ce=Ae;;){if(ce==null)return t.spawn();var de=v(ce),be=de.edge,we=de.pred;if(te.unshift(ce[0]),ce.same(xe)&&te.length>0)break;be!=null&&te.unshift(be),ce=we}return c.spawn(te)},"pathTo"),T=0;T=0;s--){var d=u[s],h=d[1],f=d[2];(t[h]===o&&t[f]===c||t[h]===c&&t[f]===o)&&u.splice(s,1)}for(var p=0;pr;){var a=Math.floor(Math.random()*t.length);t=qp(a,e,t),n--}return t},"contractUntil"),jp={kargerStein:l(function(){var e=this,t=this.byGroup(),n=t.nodes,r=t.edges;r.unmergeBy(function(I){return I.isLoop()});var a=n.length,i=r.length,o=Math.ceil(Math.pow(Math.log(a)/Math.LN2,2)),c=Math.floor(a/Vp);if(a<2){We("At least 2 nodes are required for Karger-Stein algorithm");return}for(var u=[],s=0;s1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,r=1/0,a=t;a1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,r=-1/0,a=t;a1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,r=0,a=0,i=t;i1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;r?e=e.slice(t,n):(n0&&e.splice(0,t));for(var o=0,c=e.length-1;c>=0;c--){var u=e[c];i?isFinite(u)||(e[c]=-1/0,o++):e.splice(c,1)}a&&e.sort(function(h,f){return h-f});var s=e.length,d=Math.floor(s/2);return s%2!==0?e[d+1+o]:(e[d-1+o]+e[d+o])/2},"median"),Gp=l(function(e){return Math.PI*e/180},"deg2rad"),ua=l(function(e,t){return Math.atan2(t,e)-Math.PI/2},"getAngleFromDisp"),Ts=Math.log2||function(e){return Math.log(e)/Math.log(2)},Ss=l(function(e){return e>0?1:e<0?-1:0},"signum"),Mn=l(function(e,t){return Math.sqrt(Cn(e,t))},"dist"),Cn=l(function(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r},"sqdist"),Up=l(function(e){for(var t=e.length,n=0,r=0;r=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(e.w!=null&&e.h!=null&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},"makeBoundingBox"),$p=l(function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},"copyBoundingBox"),Jp=l(function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},"clearBoundingBox"),Qp=l(function(e,t){e.x1=Math.min(e.x1,t.x1),e.x2=Math.max(e.x2,t.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,t.y1),e.y2=Math.max(e.y2,t.y2),e.h=e.y2-e.y1},"updateBoundingBox"),dd=l(function(e,t,n){e.x1=Math.min(e.x1,t),e.x2=Math.max(e.x2,t),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},"expandBoundingBoxByPoint"),ba=l(function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.x1-=t,e.x2+=t,e.y1-=t,e.y2+=t,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},"expandBoundingBox"),xa=l(function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],n,r,a,i;if(t.length===1)n=r=a=i=t[0];else if(t.length===2)n=a=t[0],i=r=t[1];else if(t.length===4){var o=Ue(t,4);n=o[0],r=o[1],a=o[2],i=o[3]}return e.x1-=i,e.x2+=r,e.y1-=n,e.y2+=a,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},"expandBoundingBoxSides"),Rl=l(function(e,t){e.x1=t.x1,e.y1=t.y1,e.x2=t.x2,e.y2=t.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},"assignBoundingBox"),Ps=l(function(e,t){return!(e.x1>t.x2||t.x1>e.x2||e.x2t.y2||t.y1>e.y2)},"boundingBoxesIntersect"),sn=l(function(e,t,n){return e.x1<=t&&t<=e.x2&&e.y1<=n&&n<=e.y2},"inBoundingBox"),Nl=l(function(e,t){return sn(e,t.x,t.y)},"pointInBoundingBox"),hd=l(function(e,t){return sn(e,t.x1,t.y1)&&sn(e,t.x2,t.y2)},"boundingBoxInBoundingBox"),eg=(_i=Math.hypot)!==null&&_i!==void 0?_i:function(e,t){return Math.sqrt(e*e+t*t)};function fd(e,t){if(e.length<3)throw new Error("Need at least 3 vertices");var n=l(function(E,k){return{x:E.x+k.x,y:E.y+k.y}},"add"),r=l(function(E,k){return{x:E.x-k.x,y:E.y-k.y}},"sub"),a=l(function(E,k){return{x:E.x*k,y:E.y*k}},"scale"),i=l(function(E,k){return E.x*k.y-E.y*k.x},"cross"),o=l(function(E){var k=eg(E.x,E.y);return k===0?{x:0,y:0}:{x:E.x/k,y:E.y/k}},"normalize"),c=l(function(E){for(var k=0,_=0;_7&&arguments[7]!==void 0?arguments[7]:"auto",u=c==="auto"?fn(a,i):c,s=a/2,d=i/2;u=Math.min(u,s,d);var h=u!==s,f=u!==d,p;if(h){var g=n-s+u-o,y=r-d-o,b=n+s-u+o,v=y;if(p=ln(e,t,n,r,g,y,b,v,!1),p.length>0)return p}if(f){var m=n+s+o,x=r-d+u-o,w=m,T=r+d-u+o;if(p=ln(e,t,n,r,m,x,w,T,!1),p.length>0)return p}if(h){var P=n-s+u-o,E=r+d+o,k=n+s-u+o,_=E;if(p=ln(e,t,n,r,P,E,k,_,!1),p.length>0)return p}if(f){var B=n-s-o,D=r-d+u-o,S=B,M=r+d-u+o;if(p=ln(e,t,n,r,B,D,S,M,!1),p.length>0)return p}var A;{var O=n-s+u,R=r-d+u;if(A=br(e,t,n,r,O,R,u+o),A.length>0&&A[0]<=O&&A[1]<=R)return[A[0],A[1]]}{var I=n+s-u,L=r-d+u;if(A=br(e,t,n,r,I,L,u+o),A.length>0&&A[0]>=I&&A[1]<=L)return[A[0],A[1]]}{var N=n+s-u,Y=r+d-u;if(A=br(e,t,n,r,N,Y,u+o),A.length>0&&A[0]>=N&&A[1]>=Y)return[A[0],A[1]]}{var q=n-s+u,X=r+d-u;if(A=br(e,t,n,r,q,X,u+o),A.length>0&&A[0]<=q&&A[1]>=X)return[A[0],A[1]]}return[]},"roundRectangleIntersectLine"),tg=l(function(e,t,n,r,a,i,o){var c=o,u=Math.min(n,a),s=Math.max(n,a),d=Math.min(r,i),h=Math.max(r,i);return u-c<=e&&e<=s+c&&d-c<=t&&t<=h+c},"inLineVicinity"),ng=l(function(e,t,n,r,a,i,o,c,u){var s={x1:Math.min(n,o,a)-u,x2:Math.max(n,o,a)+u,y1:Math.min(r,c,i)-u,y2:Math.max(r,c,i)+u};return!(es.x2||ts.y2)},"inBezierVicinity"),rg=l(function(e,t,n,r){n-=r;var a=t*t-4*e*n;if(a<0)return[];var i=Math.sqrt(a),o=2*e,c=(-t+i)/o,u=(-t-i)/o;return[c,u]},"solveQuadratic"),ag=l(function(e,t,n,r,a){var i=1e-5;e===0&&(e=i),t/=e,n/=e,r/=e;var o,c,u,s,d,h,f,p;if(c=(3*n-t*t)/9,u=-(27*r)+t*(9*n-2*(t*t)),u/=54,o=c*c*c+u*u,a[1]=0,f=t/3,o>0){d=u+Math.sqrt(o),d=d<0?-Math.pow(-d,1/3):Math.pow(d,1/3),h=u-Math.sqrt(o),h=h<0?-Math.pow(-h,1/3):Math.pow(h,1/3),a[0]=-f+d+h,f+=(d+h)/2,a[4]=a[2]=-f,f=Math.sqrt(3)*(-h+d)/2,a[3]=f,a[5]=-f;return}if(a[5]=a[3]=0,o===0){p=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3),a[0]=-f+2*p,a[4]=a[2]=-(p+f);return}c=-c,s=c*c*c,s=Math.acos(u/Math.sqrt(s)),p=2*Math.sqrt(c),a[0]=-f+p*Math.cos(s/3),a[2]=-f+p*Math.cos((s+2*Math.PI)/3),a[4]=-f+p*Math.cos((s+4*Math.PI)/3)},"solveCubic"),ig=l(function(e,t,n,r,a,i,o,c){var u=1*n*n-4*n*a+2*n*o+4*a*a-4*a*o+o*o+r*r-4*r*i+2*r*c+4*i*i-4*i*c+c*c,s=9*n*a-3*n*n-3*n*o-6*a*a+3*a*o+9*r*i-3*r*r-3*r*c-6*i*i+3*i*c,d=3*n*n-6*n*a+n*o-n*e+2*a*a+2*a*e-o*e+3*r*r-6*r*i+r*c-r*t+2*i*i+2*i*t-c*t,h=1*n*a-n*n+n*e-a*e+r*i-r*r+r*t-i*t,f=[];ag(u,s,d,h,f);for(var p=1e-7,g=[],y=0;y<6;y+=2)Math.abs(f[y+1])=0&&f[y]<=1&&g.push(f[y]);g.push(1),g.push(0);for(var b=-1,v,m,x,w=0;w=0?xu?(e-a)*(e-a)+(t-i)*(t-i):s-h},"sqdistToFiniteLine"),Pt=l(function(e,t,n){for(var r,a,i,o,c,u=0,s=0;s=e&&e>=i||r<=e&&e<=i)c=(e-r)/(i-r)*(o-a)+a,c>t&&u++;else continue;return u%2!==0},"pointInsidePolygonPoints"),Ut=l(function(e,t,n,r,a,i,o,c,u){var s=new Array(n.length),d;c[0]!=null?(d=Math.atan(c[1]/c[0]),c[0]<0?d=d+Math.PI/2:d=-d-Math.PI/2):d=c;for(var h=Math.cos(-d),f=Math.sin(-d),p=0;p0){var y=za(s,-u);g=Oa(y)}else g=s;return Pt(e,t,g)},"pointInsidePolygon"),sg=l(function(e,t,n,r,a,i,o,c){for(var u=new Array(n.length*2),s=0;s=0&&y<=1&&v.push(y),b>=0&&b<=1&&v.push(b),v.length===0)return[];var m=v[0]*c[0]+e,x=v[0]*c[1]+t;if(v.length>1){if(v[0]==v[1])return[m,x];var w=v[1]*c[0]+e,T=v[1]*c[1]+t;return[m,x,w,T]}else return[m,x]},"intersectLineCircle"),Bi=l(function(e,t,n){return t<=e&&e<=n||n<=e&&e<=t?e:e<=t&&t<=n||n<=t&&t<=e?t:n},"midOfThree"),ln=l(function(e,t,n,r,a,i,o,c,u){var s=e-a,d=n-e,h=o-a,f=t-i,p=r-t,g=c-i,y=h*f-g*s,b=d*f-p*s,v=g*d-h*p;if(v!==0){var m=y/v,x=b/v,w=.001,T=0-w,P=1+w;return T<=m&&m<=P&&T<=x&&x<=P?[e+m*d,t+m*p]:u?[e+m*d,t+m*p]:[]}else return y===0||b===0?Bi(e,n,o)===o?[o,c]:Bi(e,n,a)===a?[a,i]:Bi(a,o,n)===n?[n,r]:[]:[]},"finiteLinesIntersect"),ug=l(function(e,t,n,r,a){var i=[],o=r/2,c=a/2,u=t,s=n;i.push({x:u+o*e[0],y:s+c*e[1]});for(var d=1;d0){var g=za(d,-c);f=Oa(g)}else f=d}else f=n;for(var y,b,v,m,x=0;x2){for(var p=[s[0],s[1]],g=Math.pow(p[0]-e,2)+Math.pow(p[1]-t,2),y=1;ys&&(s=m)},"set"),get:l(function(v){return u[v]},"get")},h=0;h0?M=S.edgesTo(D)[0]:M=D.edgesTo(S)[0];var A=r(M);D=D.id(),T[D]>T[_]+A&&(T[D]=T[_]+A,P.nodes.indexOf(D)<0?P.push(D):P.updateItem(D),w[D]=0,x[D]=[]),T[D]==T[_]+A&&(w[D]=w[D]+w[_],x[D].push(_))}else for(var O=0;O0;){for(var N=m.pop(),Y=0;Y0&&o.push(n[c]);o.length!==0&&a.push(r.collection(o))}return a},"assign"),Tg=l(function(e,t){for(var n=0;n5&&arguments[5]!==void 0?arguments[5]:Dg,o=r,c,u,s=0;s=2?pr(e,t,n,0,Vl,kg):pr(e,t,n,0,Fl)},"euclidean"),squaredEuclidean:l(function(e,t,n){return pr(e,t,n,0,Vl)},"squaredEuclidean"),manhattan:l(function(e,t,n){return pr(e,t,n,0,Fl)},"manhattan"),max:l(function(e,t,n){return pr(e,t,n,-1/0,_g)},"max")};tr["squared-euclidean"]=tr.squaredEuclidean;tr.squaredeuclidean=tr.squaredEuclidean;function Xr(e,t,n,r,a,i){var o;return He(e)?o=e:o=tr[e]||tr.euclidean,t===0&&He(e)?o(a,i):o(t,n,r,a,i)}l(Xr,"clusteringDistance");var Bg=dt({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),ks=l(function(e){return Bg(e)},"setOptions"),Fa=l(function(e,t,n,r,a){var i=a!=="kMedoids",o=i?function(d){return n[d]}:function(d){return r[d](n)},c=l(function(d){return r[d](t)},"getQ"),u=n,s=t;return Xr(e,r.length,o,c,u,s)},"getDist"),Ai=l(function(e,t,n){for(var r=n.length,a=new Array(r),i=new Array(r),o=new Array(t),c=null,u=0;un)return!1}return!0},"haveMatricesConverged"),Ig=l(function(e,t,n){for(var r=0;ro&&(o=t[u][s],c=s);a[c].push(e[u])}for(var d=0;d=a.threshold||a.mode==="dendrogram"&&e.length===1)return!1;var p=t[i],g=t[r[i]],y;a.mode==="dendrogram"?y={left:p,right:g,key:p.key}:y={value:p.value.concat(g.value),key:p.key},e[p.index]=y,e.splice(g.index,1),t[p.key]=y;for(var b=0;bn[g.key][v.key]&&(c=n[g.key][v.key])):a.linkage==="max"?(c=n[p.key][v.key],n[p.key][v.key]0&&r.push(a);return r},"findExemplars"),Hl=l(function(e,t,n){for(var r=[],a=0;ao&&(i=u,o=t[a*e+u])}i>0&&r.push(i)}for(var s=0;su&&(c=s,u=d)}n[a]=i[c]}return r=Hl(e,t,n),r},"assign"),Kl=l(function(e){for(var t=this.cy(),n=this.nodes(),r=Wg(e),a={},i=0;i=B?(D=B,B=M,S=A):M>D&&(D=M);for(var O=0;O0?1:0;P[k%r.minIterations*o+q]=X,Y+=X}if(Y>0&&(k>=r.minIterations-1||k==r.maxIterations-1)){for(var K=0,J=0;J1||T>1)&&(o=!0),d[m]=[],v.outgoers().forEach(function(E){E.isEdge()&&d[m].push(E.id())})}else h[m]=[void 0,v.target().id()]}):i.forEach(function(v){var m=v.id();if(v.isNode()){var x=v.degree(!0);x%2&&(c?u?o=!0:u=m:c=m),d[m]=[],v.connectedEdges().forEach(function(w){return d[m].push(w.id())})}else h[m]=[v.source().id(),v.target().id()]});var f={found:!1,trail:void 0};if(o)return f;if(u&&c)if(a){if(s&&u!=s)return f;s=u}else{if(s&&u!=s&&c!=s)return f;s||(s=u)}else s||(s=i[0].id());var p=l(function(v){for(var m=v,x=[v],w,T,P;d[m].length;)w=d[m].shift(),T=h[w][0],P=h[w][1],m!=P?(d[P]=d[P].filter(function(E){return E!=w}),m=P):!a&&m!=T&&(d[T]=d[T].filter(function(E){return E!=w}),m=T),x.unshift(w),x.unshift(m);return x},"walk"),g=[],y=[];for(y=p(s);y.length!=1;)d[y[0]].length==0?(g.unshift(i.getElementById(y.shift())),g.unshift(i.getElementById(y.shift()))):y=p(y.shift()).concat(y);g.unshift(i.getElementById(y.shift()));for(var b in d)if(d[b].length)return f;return f.found=!0,f.trail=this.spawn(g,!0),f},"hierholzer")},da=l(function(){var e=this,t={},n=0,r=0,a=[],i=[],o={},c=l(function(d,h){for(var f=i.length-1,p=[],g=e.spawn();i[f].x!=d||i[f].y!=h;)p.push(i.pop().edge),f--;p.push(i.pop().edge),p.forEach(function(y){var b=y.connectedNodes().intersection(e);g.merge(y),b.forEach(function(v){var m=v.id(),x=v.connectedEdges().intersection(e);g.merge(v),t[m].cutVertex?g.merge(x.filter(function(w){return w.isLoop()})):g.merge(x)})}),a.push(g)},"buildComponent"),u=l(function(d,h,f){d===f&&(r+=1),t[h]={id:n,low:n++,cutVertex:!1};var p=e.getElementById(h).connectedEdges().intersection(e);if(p.size()===0)a.push(e.spawn(e.getElementById(h)));else{var g,y,b,v;p.forEach(function(m){g=m.source().id(),y=m.target().id(),b=g===h?y:g,b!==f&&(v=m.id(),o[v]||(o[v]=!0,i.push({x:h,y:b,edge:m})),b in t?t[h].low=Math.min(t[h].low,t[b].id):(u(d,b,h),t[h].low=Math.min(t[h].low,t[b].low),t[h].id<=t[b].low&&(t[h].cutVertex=!0,c(h,b))))})}},"biconnectedSearch");e.forEach(function(d){if(d.isNode()){var h=d.id();h in t||(r=0,u(h,h),t[h].cutVertex=r>1)}});var s=Object.keys(t).filter(function(d){return t[d].cutVertex}).map(function(d){return e.getElementById(d)});return{cut:e.spawn(s),components:a}},"hopcroftTarjanBiconnected"),Qg={hopcroftTarjanBiconnected:da,htbc:da,htb:da,hopcroftTarjanBiconnectedComponents:da},ha=l(function(){var e=this,t={},n=0,r=[],a=[],i=e.spawn(e),o=l(function(c){a.push(c),t[c]={index:n,low:n++,explored:!1};var u=e.getElementById(c).connectedEdges().intersection(e);if(u.forEach(function(p){var g=p.target().id();g!==c&&(g in t||o(g),t[g].explored||(t[c].low=Math.min(t[c].low,t[g].low)))}),t[c].index===t[c].low){for(var s=e.spawn();;){var d=a.pop();if(s.merge(e.getElementById(d)),t[d].low=t[c].index,t[d].explored=!0,d===c)break}var h=s.edgesWith(s),f=s.merge(h);r.push(f),i=i.difference(f)}},"stronglyConnectedSearch");return e.forEach(function(c){if(c.isNode()){var u=c.id();u in t||o(u)}}),{cut:i,components:r}},"tarjanStronglyConnected"),ev={tarjanStronglyConnected:ha,tsc:ha,tscc:ha,tarjanStronglyConnectedComponents:ha},Ed={};[Br,Mp,Ip,Np,Op,Fp,jp,fg,$n,Jn,qo,Pg,Fg,Xg,Zg,Jg,Qg,ev].forEach(function(e){ve(Ed,e)});var Cd=0,Td=1,Sd=2,Ot=l(function(e){if(!(this instanceof Ot))return new Ot(e);this.id="Thenable/1.0.7",this.state=Cd,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},typeof e=="function"&&e.call(this,this.fulfill.bind(this),this.reject.bind(this))},"api");Ot.prototype={fulfill:l(function(e){return Gl(this,Td,"fulfillValue",e)},"fulfill"),reject:l(function(e){return Gl(this,Sd,"rejectReason",e)},"reject"),then:l(function(e,t){var n=this,r=new Ot;return n.onFulfilled.push(Zl(e,r,"fulfill")),n.onRejected.push(Zl(t,r,"reject")),Pd(n),r.proxy},"then")};var Gl=l(function(e,t,n,r){return e.state===Cd&&(e.state=t,e[n]=r,Pd(e)),e},"deliver"),Pd=l(function(e){e.state===Td?Ul(e,"onFulfilled",e.fulfillValue):e.state===Sd&&Ul(e,"onRejected",e.rejectReason)},"execute"),Ul=l(function(e,t,n){if(e[t].length!==0){var r=e[t];e[t]=[];var a=l(function(){for(var i=0;i0},"animatedImpl")},"animated"),clearQueue:l(function(){return l(function(){var e=this,t=e.length!==void 0,n=t?e:[e],r=this._private.cy||this;if(!r.styleEnabled())return this;for(var a=0;a-1}return l(t,"listCacheHas"),Qi=t,Qi}l(Yd,"require_listCacheHas");var eo,bu;function Wd(){if(bu)return eo;bu=1;var e=Hr();function t(n,r){var a=this.__data__,i=e(a,n);return i<0?(++this.size,a.push([n,r])):a[i][1]=r,this}return l(t,"listCacheSet"),eo=t,eo}l(Wd,"require_listCacheSet");var to,xu;function Hd(){if(xu)return to;xu=1;var e=qd(),t=jd(),n=Xd(),r=Yd(),a=Wd();function i(o){var c=-1,u=o==null?0:o.length;for(this.clear();++c-1&&r%1==0&&r0&&this.spawn(r).updateStyle().emit("class"),t},"classes"),addClass:l(function(e){return this.toggleClass(e,!0)},"addClass"),hasClass:l(function(e){var t=this[0];return t!=null&&t._private.classes.has(e)},"hasClass"),toggleClass:l(function(e,t){Ve(e)||(e=e.match(/\S+/g)||[]);for(var n=this,r=t===void 0,a=[],i=0,o=n.length;i0&&this.spawn(a).updateStyle().emit("class"),n},"toggleClass"),removeClass:l(function(e){return this.toggleClass(e,!1)},"removeClass"),flashClass:l(function(e,t){var n=this;if(t==null)t=250;else if(t===0)return n;return n.addClass(e),setTimeout(function(){n.removeClass(e)},t),n},"flashClass")};Ea.className=Ea.classNames=Ea.classes;var _e={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:nt,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};_e.variable="(?:[\\w-.]|(?:\\\\"+_e.metaChar+"))+";_e.className="(?:[\\w-]|(?:\\\\"+_e.metaChar+"))+";_e.value=_e.string+"|"+_e.number;_e.id=_e.variable;(function(){var e,t,n;for(e=_e.comparatorOp.split("|"),n=0;n=0)&&t!=="="&&(_e.comparatorOp+="|\\!"+t)})();var Fe=l(function(){return{checks:[]}},"newQuery"),le={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},Wo=[{selector:":selected",matches:l(function(e){return e.selected()},"matches")},{selector:":unselected",matches:l(function(e){return!e.selected()},"matches")},{selector:":selectable",matches:l(function(e){return e.selectable()},"matches")},{selector:":unselectable",matches:l(function(e){return!e.selectable()},"matches")},{selector:":locked",matches:l(function(e){return e.locked()},"matches")},{selector:":unlocked",matches:l(function(e){return!e.locked()},"matches")},{selector:":visible",matches:l(function(e){return e.visible()},"matches")},{selector:":hidden",matches:l(function(e){return!e.visible()},"matches")},{selector:":transparent",matches:l(function(e){return e.transparent()},"matches")},{selector:":grabbed",matches:l(function(e){return e.grabbed()},"matches")},{selector:":free",matches:l(function(e){return!e.grabbed()},"matches")},{selector:":removed",matches:l(function(e){return e.removed()},"matches")},{selector:":inside",matches:l(function(e){return!e.removed()},"matches")},{selector:":grabbable",matches:l(function(e){return e.grabbable()},"matches")},{selector:":ungrabbable",matches:l(function(e){return!e.grabbable()},"matches")},{selector:":animated",matches:l(function(e){return e.animated()},"matches")},{selector:":unanimated",matches:l(function(e){return!e.animated()},"matches")},{selector:":parent",matches:l(function(e){return e.isParent()},"matches")},{selector:":childless",matches:l(function(e){return e.isChildless()},"matches")},{selector:":child",matches:l(function(e){return e.isChild()},"matches")},{selector:":orphan",matches:l(function(e){return e.isOrphan()},"matches")},{selector:":nonorphan",matches:l(function(e){return e.isChild()},"matches")},{selector:":compound",matches:l(function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()},"matches")},{selector:":loop",matches:l(function(e){return e.isLoop()},"matches")},{selector:":simple",matches:l(function(e){return e.isSimple()},"matches")},{selector:":active",matches:l(function(e){return e.active()},"matches")},{selector:":inactive",matches:l(function(e){return!e.active()},"matches")},{selector:":backgrounding",matches:l(function(e){return e.backgrounding()},"matches")},{selector:":nonbackgrounding",matches:l(function(e){return!e.backgrounding()},"matches")}].sort(function(e,t){return up(e.selector,t.selector)}),dv=(function(){for(var e={},t,n=0;n0&&s.edgeCount>0)return Oe("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(s.edgeCount>1)return Oe("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;s.edgeCount===1&&Oe("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},"parse"),yv=l(function(){if(this.toStringCache!=null)return this.toStringCache;for(var e=l(function(u){return u??""},"clean"),t=l(function(u){return pe(u)?'"'+u+'"':e(u)},"cleanVal"),n=l(function(u){return" "+u+" "},"space"),r=l(function(u,s){var d=u.type,h=u.value;switch(d){case le.GROUP:{var f=e(h);return f.substring(0,f.length-1)}case le.DATA_COMPARE:{var p=u.field,g=u.operator;return"["+p+n(e(g))+t(h)+"]"}case le.DATA_BOOL:{var y=u.operator,b=u.field;return"["+e(y)+b+"]"}case le.DATA_EXIST:{var v=u.field;return"["+v+"]"}case le.META_COMPARE:{var m=u.operator,x=u.field;return"[["+x+n(e(m))+t(h)+"]]"}case le.STATE:return h;case le.ID:return"#"+h;case le.CLASS:return"."+h;case le.PARENT:case le.CHILD:return a(u.parent,s)+n(">")+a(u.child,s);case le.ANCESTOR:case le.DESCENDANT:return a(u.ancestor,s)+" "+a(u.descendant,s);case le.COMPOUND_SPLIT:{var w=a(u.left,s),T=a(u.subject,s),P=a(u.right,s);return w+(w.length>0?" ":"")+T+P}case le.TRUE:return""}},"checkToString"),a=l(function(u,s){return u.checks.reduce(function(d,h,f){return d+(s===u&&f===0?"$":"")+r(h,s)},"")},"queryToString"),i="",o=0;o1&&o=0&&(t=t.replace("!",""),d=!0),t.indexOf("@")>=0&&(t=t.replace("@",""),s=!0),(a||o||s)&&(c=!a&&!i?"":""+e,u=""+n),s&&(e=c=c.toLowerCase(),n=u=u.toLowerCase()),t){case"*=":r=c.indexOf(u)>=0;break;case"$=":r=c.indexOf(u,c.length-u.length)>=0;break;case"^=":r=c.indexOf(u)===0;break;case"=":r=e===n;break;case">":h=!0,r=e>n;break;case">=":h=!0,r=e>=n;break;case"<":h=!0,r=e0;){var d=a.shift();t(d),i.add(d.id()),c&&r(a,i,d)}return e}l(ti,"forEachCompound");function Ns(e,t,n){if(n.isParent())for(var r=n._private.children,a=0;a1&&arguments[1]!==void 0?arguments[1]:!0;return ti(this,e,t,Ns)};function Ls(e,t,n){if(n.isChild()){var r=n._private.parent;t.has(r.id())||e.push(r)}}l(Ls,"addParent");nr.forEachUp=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return ti(this,e,t,Ls)};function gh(e,t,n){Ls(e,t,n),Ns(e,t,n)}l(gh,"addParentAndChildren");nr.forEachUpAndDown=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return ti(this,e,t,gh)};nr.ancestors=nr.parents;var Ir,vh;Ir=vh={data:Le.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:Le.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:Le.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Le.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:Le.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:Le.removeData({field:"rscratch",triggerEvent:!1}),id:l(function(){var e=this[0];if(e)return e._private.data.id},"id")};Ir.attr=Ir.data;Ir.removeAttr=Ir.removeData;var Sv=vh,ni={};function Ca(e){return function(t){var n=this;if(t===void 0&&(t=!0),n.length!==0)if(n.isNode()&&!n.removed()){for(var r=0,a=n[0],i=a._private.edges,o=0;ot}),minIndegree:Tn("indegree",function(e,t){return et}),minOutdegree:Tn("outdegree",function(e,t){return et})});ve(ni,{totalDegree:l(function(e){for(var t=0,n=this.nodes(),r=0;r0,h=d;d&&(s=s[0]);var f=h?s.position():{x:0,y:0};t!==void 0?u.position(e,t+f[e]):a!==void 0&&u.position({x:a.x+f.x,y:a.y+f.y})}else{var p=n.position(),g=o?n.parent():null,y=g&&g.length>0,b=y;y&&(g=g[0]);var v=b?g.position():{x:0,y:0};return a={x:p.x-v.x,y:p.y-v.y},e===void 0?a:a[e]}else if(!i)return;return this},"relativePosition")};Lt.modelPosition=Lt.point=Lt.position;Lt.modelPositions=Lt.points=Lt.positions;Lt.renderedPoint=Lt.renderedPosition;Lt.relativePoint=Lt.relativePosition;var Pv=yh,Qn,yn;Qn=yn={};yn.renderedBoundingBox=function(e){var t=this.boundingBox(e),n=this.cy(),r=n.zoom(),a=n.pan(),i=t.x1*r+a.x,o=t.x2*r+a.x,c=t.y1*r+a.y,u=t.y2*r+a.y;return{x1:i,x2:o,y1:c,y2:u,w:o-i,h:u-c}};yn.dirtyCompoundBoundsCache=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.cy();return!t.styleEnabled()||!t.hasCompoundNodes()?this:(this.forEachUp(function(n){if(n.isParent()){var r=n._private;r.compoundBoundsClean=!1,r.bbCache=null,e||n.emitAndNotify("bounds")}}),this)};yn.updateCompoundBounds=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes())return this;if(!e&&t.batching())return this;function n(o){if(!o.isParent())return;var c=o._private,u=o.children(),s=o.pstyle("compound-sizing-wrt-labels").value==="include",d={width:{val:o.pstyle("min-width").pfValue,left:o.pstyle("min-width-bias-left"),right:o.pstyle("min-width-bias-right")},height:{val:o.pstyle("min-height").pfValue,top:o.pstyle("min-height-bias-top"),bottom:o.pstyle("min-height-bias-bottom")}},h=u.boundingBox({includeLabels:s,includeOverlays:!1,useCache:!1}),f=c.position;(h.w===0||h.h===0)&&(h={w:o.pstyle("width").pfValue,h:o.pstyle("height").pfValue},h.x1=f.x-h.w/2,h.x2=f.x+h.w/2,h.y1=f.y-h.h/2,h.y2=f.y+h.h/2);function p(_,B,D){var S=0,M=0,A=B+D;return _>0&&A>0&&(S=B/A*_,M=D/A*_),{biasDiff:S,biasComplementDiff:M}}l(p,"computeBiasValues");function g(_,B,D,S){if(D.units==="%")switch(S){case"width":return _>0?D.pfValue*_:0;case"height":return B>0?D.pfValue*B:0;case"average":return _>0&&B>0?D.pfValue*(_+B)/2:0;case"min":return _>0&&B>0?_>B?D.pfValue*B:D.pfValue*_:0;case"max":return _>0&&B>0?_>B?D.pfValue*_:D.pfValue*B:0;default:return 0}else return D.units==="px"?D.pfValue:0}l(g,"computePaddingValues");var y=d.width.left.value;d.width.left.units==="px"&&d.width.val>0&&(y=y*100/d.width.val);var b=d.width.right.value;d.width.right.units==="px"&&d.width.val>0&&(b=b*100/d.width.val);var v=d.height.top.value;d.height.top.units==="px"&&d.height.val>0&&(v=v*100/d.height.val);var m=d.height.bottom.value;d.height.bottom.units==="px"&&d.height.val>0&&(m=m*100/d.height.val);var x=p(d.width.val-h.w,y,b),w=x.biasDiff,T=x.biasComplementDiff,P=p(d.height.val-h.h,v,m),E=P.biasDiff,k=P.biasComplementDiff;c.autoPadding=g(h.w,h.h,o.pstyle("padding"),o.pstyle("padding-relative-to").value),c.autoWidth=Math.max(h.w,d.width.val),f.x=(-w+h.x1+h.x2+T)/2,c.autoHeight=Math.max(h.h,d.height.val),f.y=(-E+h.y1+h.y2+k)/2}l(n,"update");for(var r=0;re.x2?r:e.x2,e.y1=ne.y2?a:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},"updateBounds"),an=l(function(e,t){return t==null?e:Nt(e,t.x1,t.y1,t.x2,t.y2)},"updateBoundsFromBox"),gr=l(function(e,t,n){return St(e,t,n)},"prefixedProperty"),fa=l(function(e,t,n){if(!t.cy().headless()){var r=t._private,a=r.rstyle,i=a.arrowWidth/2,o=t.pstyle(n+"-arrow-shape").value,c,u;if(o!=="none"){n==="source"?(c=a.srcX,u=a.srcY):n==="target"?(c=a.tgtX,u=a.tgtY):(c=a.midX,u=a.midY);var s=r.arrowBounds=r.arrowBounds||{},d=s[n]=s[n]||{};d.x1=c-i,d.y1=u-i,d.x2=c+i,d.y2=u+i,d.w=d.x2-d.x1,d.h=d.y2-d.y1,ba(d,1),Nt(e,d.x1,d.y1,d.x2,d.y2)}}},"updateBoundsFromArrow"),Bo=l(function(e,t,n){if(!t.cy().headless()){var r;n?r=n+"-":r="";var a=t._private,i=a.rstyle,o=t.pstyle(r+"label").strValue;if(o){var c=t.pstyle("text-halign"),u=t.pstyle("text-valign"),s=gr(i,"labelWidth",n),d=gr(i,"labelHeight",n),h=gr(i,"labelX",n),f=gr(i,"labelY",n),p=t.pstyle(r+"text-margin-x").pfValue,g=t.pstyle(r+"text-margin-y").pfValue,y=t.isEdge(),b=t.pstyle(r+"text-rotation"),v=t.pstyle("text-outline-width").pfValue,m=t.pstyle("text-border-width").pfValue,x=m/2,w=t.pstyle("text-background-padding").pfValue,T=2,P=d,E=s,k=E/2,_=P/2,B,D,S,M;if(y)B=h-k,D=h+k,S=f-_,M=f+_;else{switch(c.value){case"left":B=h-E,D=h;break;case"center":B=h-k,D=h+k;break;case"right":B=h,D=h+E;break}switch(u.value){case"top":S=f-P,M=f;break;case"center":S=f-_,M=f+_;break;case"bottom":S=f,M=f+P;break}}var A=p-Math.max(v,x)-w-T,O=p+Math.max(v,x)+w+T,R=g-Math.max(v,x)-w-T,I=g+Math.max(v,x)+w+T;B+=A,D+=O,S+=R,M+=I;var L=n||"main",N=a.labelBounds,Y=N[L]=N[L]||{};Y.x1=B,Y.y1=S,Y.x2=D,Y.y2=M,Y.w=D-B,Y.h=M-S,Y.leftPad=A,Y.rightPad=O,Y.topPad=R,Y.botPad=I;var q=y&&b.strValue==="autorotate",X=b.pfValue!=null&&b.pfValue!==0;if(q||X){var K=q?gr(a.rstyle,"labelAngle",n):b.pfValue,J=Math.cos(K),Q=Math.sin(K),$=(B+D)/2,ee=(S+M)/2;if(!y){switch(c.value){case"left":$=D;break;case"right":$=B;break}switch(u.value){case"top":ee=M;break;case"bottom":ee=S;break}}var ae=l(function(Ee,me){return Ee=Ee-$,me=me-ee,{x:Ee*J-me*Q+$,y:Ee*Q+me*J+ee}},"rotate"),V=ae(B,S),z=ae(B,M),F=ae(D,S),U=ae(D,M);B=Math.min(V.x,z.x,F.x,U.x),D=Math.max(V.x,z.x,F.x,U.x),S=Math.min(V.y,z.y,F.y,U.y),M=Math.max(V.y,z.y,F.y,U.y)}var ne=L+"Rot",ie=N[ne]=N[ne]||{};ie.x1=B,ie.y1=S,ie.x2=D,ie.y2=M,ie.w=D-B,ie.h=M-S,Nt(e,B,S,D,M),Nt(a.labelBounds.all,B,S,D,M)}return e}},"updateBoundsFromLabel"),Uu=l(function(e,t){if(!t.cy().headless()){var n=t.pstyle("outline-opacity").value,r=t.pstyle("outline-width").value,a=t.pstyle("outline-offset").value,i=r+a;bh(e,t,n,i,"outside",i/2)}},"updateBoundsFromOutline"),bh=l(function(e,t,n,r,a,i){if(!(n===0||r<=0||a==="inside")){var o=t.cy(),c=t.pstyle("shape").value,u=o.renderer().nodeShapes[c],s=t.position(),d=s.x,h=s.y,f=t.width(),p=t.height();if(u.hasMiterBounds){a==="center"&&(r/=2);var g=u.miterBounds(d,h,f,p,r);an(e,g)}else i!=null&&i>0&&xa(e,[i,i,i,i])}},"updateBoundsFromMiter"),Dv=l(function(e,t){if(!t.cy().headless()){var n=t.pstyle("border-opacity").value,r=t.pstyle("border-width").pfValue,a=t.pstyle("border-position").value;bh(e,t,n,r,a)}},"updateBoundsFromMiterBorder"),kv=l(function(e,t){var n=e._private.cy,r=n.styleEnabled(),a=n.headless(),i=wt(),o=e._private,c=e.isNode(),u=e.isEdge(),s,d,h,f,p,g,y=o.rstyle,b=c&&r?e.pstyle("bounds-expansion").pfValue:[0],v=l(function(ie){return ie.pstyle("display").value!=="none"},"isDisplayed"),m=!r||v(e)&&(!u||v(e.source())&&v(e.target()));if(m){var x=0,w=0;r&&t.includeOverlays&&(x=e.pstyle("overlay-opacity").value,x!==0&&(w=e.pstyle("overlay-padding").value));var T=0,P=0;r&&t.includeUnderlays&&(T=e.pstyle("underlay-opacity").value,T!==0&&(P=e.pstyle("underlay-padding").value));var E=Math.max(w,P),k=0,_=0;if(r&&(k=e.pstyle("width").pfValue,_=k/2),c&&t.includeNodes){var B=e.position();p=B.x,g=B.y;var D=e.outerWidth(),S=D/2,M=e.outerHeight(),A=M/2;s=p-S,d=p+S,h=g-A,f=g+A,Nt(i,s,h,d,f),r&&Uu(i,e),r&&t.includeOutlines&&!a&&Uu(i,e),r&&Dv(i,e)}else if(u&&t.includeEdges)if(r&&!a){var O=e.pstyle("curve-style").strValue;if(s=Math.min(y.srcX,y.midX,y.tgtX),d=Math.max(y.srcX,y.midX,y.tgtX),h=Math.min(y.srcY,y.midY,y.tgtY),f=Math.max(y.srcY,y.midY,y.tgtY),s-=_,d+=_,h-=_,f+=_,Nt(i,s,h,d,f),O==="haystack"){var R=y.haystackPts;if(R&&R.length===2){if(s=R[0].x,h=R[0].y,d=R[1].x,f=R[1].y,s>d){var I=s;s=d,d=I}if(h>f){var L=h;h=f,f=L}Nt(i,s-_,h-_,d+_,f+_)}}else if(O==="bezier"||O==="unbundled-bezier"||on(O,"segments")||on(O,"taxi")){var N;switch(O){case"bezier":case"unbundled-bezier":N=y.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":N=y.linePts;break}if(N!=null)for(var Y=0;Yd){var $=s;s=d,d=$}if(h>f){var ee=h;h=f,f=ee}s-=_,d+=_,h-=_,f+=_,Nt(i,s,h,d,f)}if(r&&t.includeEdges&&u&&(fa(i,e,"mid-source"),fa(i,e,"mid-target"),fa(i,e,"source"),fa(i,e,"target")),r){var ae=e.pstyle("ghost").value==="yes";if(ae){var V=e.pstyle("ghost-offset-x").pfValue,z=e.pstyle("ghost-offset-y").pfValue;Nt(i,i.x1+V,i.y1+z,i.x2+V,i.y2+z)}}var F=o.bodyBounds=o.bodyBounds||{};Rl(F,i),xa(F,b),ba(F,1),r&&(s=i.x1,d=i.x2,h=i.y1,f=i.y2,Nt(i,s-E,h-E,d+E,f+E));var U=o.overlayBounds=o.overlayBounds||{};Rl(U,i),xa(U,b),ba(U,1);var ne=o.labelBounds=o.labelBounds||{};ne.all!=null?Jp(ne.all):ne.all=wt(),r&&t.includeLabels&&(t.includeMainLabels&&Bo(i,e,null),u&&(t.includeSourceLabels&&Bo(i,e,"source"),t.includeTargetLabels&&Bo(i,e,"target")))}return i.x1=Bt(i.x1),i.y1=Bt(i.y1),i.x2=Bt(i.x2),i.y2=Bt(i.y2),i.w=Bt(i.x2-i.x1),i.h=Bt(i.y2-i.y1),i.w>0&&i.h>0&&m&&(xa(i,b),ba(i,1)),i},"boundingBoxImpl"),xh=l(function(e){var t=0,n=l(function(a){return(a?1:0)<0&&arguments[0]!==void 0?arguments[0]:Xv,t=arguments.length>1?arguments[1]:void 0,n=0;n=0;c--)o(c);return this};vn.removeAllListeners=function(){return this.removeListener("*")};vn.emit=vn.trigger=function(e,t,n){var r=this.listeners,a=r.length;return this.emitting++,Ve(t)||(t=[t]),Yv(this,function(i,o){n!=null&&(r=[{event:o.event,type:o.type,namespace:o.namespace,callback:n}],a=r.length);for(var c=l(function(){var s=r[u];if(s.type===o.type&&(!s.namespace||s.namespace===o.namespace||s.namespace===jv)&&i.eventMatches(i.context,s,o)){var d=[o];t!=null&&Sp(d,t),i.beforeEmit(i.context,s,o),s.conf&&s.conf.one&&(i.listeners=i.listeners.filter(function(p){return p!==s}));var h=i.callbackContext(i.context,s,o),f=s.callback.apply(h,d);i.afterEmit(i.context,s,o),f===!1&&(o.stopPropagation(),o.preventDefault())}},"_loop2"),u=0;u1&&!i){var o=this.length-1,c=this[o],u=c._private.data.id;this[o]=void 0,this[e]=c,a.set(u,{ele:c,index:e})}return this.length--,this},"unmergeAt"),unmergeOne:l(function(e){e=e[0];var t=this._private,n=e._private.data.id,r=t.map,a=r.get(n);if(!a)return this;var i=a.index;return this.unmergeAt(i),this},"unmergeOne"),unmerge:l(function(e){var t=this._private.cy;if(!e)return this;if(e&&pe(e)){var n=e;e=t.mutableElements().filter(n)}for(var r=0;r=0;t--){var n=this[t];e(n)&&this.unmergeAt(t)}return this},"unmergeBy"),map:l(function(e,t){for(var n=[],r=this,a=0;an&&(n=c,r=o)}return{value:n,ele:r}},"max"),min:l(function(e,t){for(var n=1/0,r,a=this,i=0;i=0&&a"u"?"undefined":et(Symbol))!=e&&et(Symbol.iterator)!=e;t&&(Va[Symbol.iterator]=function(){var n=this,r={value:void 0,done:!1},a=0,i=this.length;return vs({next:l(function(){return a1&&arguments[1]!==void 0?arguments[1]:!0,n=this[0],r=n.cy();if(r.styleEnabled()&&n){n._private.styleDirty&&(n._private.styleDirty=!1,r.style().apply(n));var a=n._private.style[e];return a??(t?r.style().getDefaultProperty(e):null)}},"parsedStyle"),numericStyle:l(function(e){var t=this[0];if(t.cy().styleEnabled()&&t){var n=t.pstyle(e);return n.pfValue!==void 0?n.pfValue:n.value}},"numericStyle"),numericStyleUnits:l(function(e){var t=this[0];if(t.cy().styleEnabled()&&t)return t.pstyle(e).units},"numericStyleUnits"),renderedStyle:l(function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=this[0];if(n)return t.style().getRenderedStyle(n,e)},"renderedStyle"),style:l(function(e,t){var n=this.cy();if(!n.styleEnabled())return this;var r=!1,a=n.style();if(Be(e)){var i=e;a.applyBypass(this,i,r),this.emitAndNotify("style")}else if(pe(e))if(t===void 0){var o=this[0];return o?a.getStylePropertyValue(o,e):void 0}else a.applyBypass(this,e,t,r),this.emitAndNotify("style");else if(e===void 0){var c=this[0];return c?a.getRawStyle(c):void 0}return this},"style"),removeStyle:l(function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=!1,r=t.style(),a=this;if(e===void 0)for(var i=0;i0&&t.push(d[0]),t.push(c[0])}return this.spawn(t,!0).filter(e)},"neighborhood"),closedNeighborhood:l(function(e){return this.neighborhood().add(this).filter(e)},"closedNeighborhood"),openNeighborhood:l(function(e){return this.neighborhood(e)},"openNeighborhood")});pt.neighbourhood=pt.neighborhood;pt.closedNeighbourhood=pt.closedNeighborhood;pt.openNeighbourhood=pt.openNeighborhood;ve(pt,{source:At(l(function(e){var t=this[0],n;return t&&(n=t._private.source||t.cy().collection()),n&&e?n.filter(e):n},"sourceImpl"),"source"),target:At(l(function(e){var t=this[0],n;return t&&(n=t._private.target||t.cy().collection()),n&&e?n.filter(e):n},"targetImpl"),"target"),sources:Go({attr:"source"}),targets:Go({attr:"target"})});function Go(e){return l(function(t){for(var n=[],r=0;r0);return i},"components"),component:l(function(){var e=this[0];return e.cy().mutableElements().components(e)[0]},"component")});pt.componentsOf=pt.components;var ct=l(function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e===void 0){We("A collection must have a reference to the core");return}var a=new Kt,i=!1;if(!t)t=[];else if(t.length>0&&Be(t[0])&&!Fr(t[0])){i=!0;for(var o=[],c=new sr,u=0,s=t.length;u0&&arguments[0]!==void 0?arguments[0]:!0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n=this,r=n.cy(),a=r._private,i=[],o=[],c,u=0,s=n.length;u0){for(var N=c.length===n.length?n:new ct(r,c),Y=0;Y0&&arguments[0]!==void 0?arguments[0]:!0,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n=this,r=[],a={},i=n._private.cy;function o(A){for(var O=A._private.edges,R=0;R0&&(e?D.emitAndNotify("remove"):t&&D.emit("remove"));for(var S=0;S0?S=A:D=A;while(Math.abs(M)>o&&++O=i?m(B,O):R===0?O:w(B,D,D+s)}l(T,"getTForX");var P=!1;function E(){P=!0,(e!==t||n!==r)&&x()}l(E,"precompute");var k=l(function(B){return P||E(),e===t&&n===r?B:B===0?0:B===1?1:b(T(B),t,r)},"f");k.getControlPoints=function(){return[{x:e,y:t},{x:n,y:r}]};var _="generateBezier("+[e,t,n,r]+")";return k.toString=function(){return _},k}l(Bh,"generateCubicBezier");var ey=(function(){function e(r){return-r.tension*r.x-r.friction*r.v}l(e,"springAccelerationForState");function t(r,a,i){var o={x:r.x+i.dx*a,v:r.v+i.dv*a,tension:r.tension,friction:r.friction};return{dx:o.v,dv:e(o)}}l(t,"springEvaluateStateWithDerivative");function n(r,a){var i={dx:r.v,dv:e(r)},o=t(r,a*.5,i),c=t(r,a*.5,o),u=t(r,a,c),s=1/6*(i.dx+2*(o.dx+c.dx)+u.dx),d=1/6*(i.dv+2*(o.dv+c.dv)+u.dv);return r.x=r.x+s*a,r.v=r.v+d*a,r}return l(n,"springIntegrateState"),l(function r(a,i,o){var c={x:-1,v:0,tension:null,friction:null},u=[0],s=0,d=1/1e4,h=16/1e3,f,p,g;for(a=parseFloat(a)||500,i=parseFloat(i)||20,o=o||null,c.tension=a,c.friction=i,f=o!==null,f?(s=r(a,i),p=s/o*h):p=h;g=n(g||c,p),u.push(1+g.x),s+=16,Math.abs(g.x)>d&&Math.abs(g.v)>d;);return f?function(y){return u[y*(u.length-1)|0]}:s},"springRK4Factory")})(),je=l(function(e,t,n,r){var a=Bh(e,t,n,r);return function(i,o,c){return i+(o-i)*a(c)}},"cubicBezier"),Pa={linear:l(function(e,t,n){return e+(t-e)*n},"linear"),ease:je(.25,.1,.25,1),"ease-in":je(.42,0,1,1),"ease-out":je(0,0,.58,1),"ease-in-out":je(.42,0,.58,1),"ease-in-sine":je(.47,0,.745,.715),"ease-out-sine":je(.39,.575,.565,1),"ease-in-out-sine":je(.445,.05,.55,.95),"ease-in-quad":je(.55,.085,.68,.53),"ease-out-quad":je(.25,.46,.45,.94),"ease-in-out-quad":je(.455,.03,.515,.955),"ease-in-cubic":je(.55,.055,.675,.19),"ease-out-cubic":je(.215,.61,.355,1),"ease-in-out-cubic":je(.645,.045,.355,1),"ease-in-quart":je(.895,.03,.685,.22),"ease-out-quart":je(.165,.84,.44,1),"ease-in-out-quart":je(.77,0,.175,1),"ease-in-quint":je(.755,.05,.855,.06),"ease-out-quint":je(.23,1,.32,1),"ease-in-out-quint":je(.86,0,.07,1),"ease-in-expo":je(.95,.05,.795,.035),"ease-out-expo":je(.19,1,.22,1),"ease-in-out-expo":je(1,0,0,1),"ease-in-circ":je(.6,.04,.98,.335),"ease-out-circ":je(.075,.82,.165,1),"ease-in-out-circ":je(.785,.135,.15,.86),spring:l(function(e,t,n){if(n===0)return Pa.linear;var r=ey(e,t,n);return function(a,i,o){return a+(i-a)*r(o)}},"spring"),"cubic-bezier":je};function $o(e,t,n,r,a){if(r===1||t===n)return n;var i=a(t,n,r);return e==null||((e.roundValue||e.color)&&(i=Math.round(i)),e.min!==void 0&&(i=Math.max(i,e.min)),e.max!==void 0&&(i=Math.min(i,e.max))),i}l($o,"getEasedValue");function Jo(e,t){return e.pfValue!=null||e.value!=null?e.pfValue!=null&&(t==null||t.type.units!=="%")?e.pfValue:e.value:e}l(Jo,"getValue");function Sn(e,t,n,r,a){var i=a!=null?a.type:null;n<0?n=0:n>1&&(n=1);var o=Jo(e,a),c=Jo(t,a);if(re(o)&&re(c))return $o(i,o,c,n,r);if(Ve(o)&&Ve(c)){for(var u=[],s=0;s0?(p==="spring"&&g.push(o.duration),o.easingImpl=Pa[p].apply(null,g)):o.easingImpl=Pa[p]}var y=o.easingImpl,b;if(o.duration===0?b=1:b=(n-u)/o.duration,o.applying&&(b=o.progress),b<0?b=0:b>1&&(b=1),o.delay==null){var v=o.startPosition,m=o.position;if(m&&a&&!e.locked()){var x={};Hn(v.x,m.x)&&(x.x=Sn(v.x,m.x,b,y)),Hn(v.y,m.y)&&(x.y=Sn(v.y,m.y,b,y)),e.position(x)}var w=o.startPan,T=o.pan,P=i.pan,E=T!=null&&r;E&&(Hn(w.x,T.x)&&(P.x=Sn(w.x,T.x,b,y)),Hn(w.y,T.y)&&(P.y=Sn(w.y,T.y,b,y)),e.emit("pan"));var k=o.startZoom,_=o.zoom,B=_!=null&&r;B&&(Hn(k,_)&&(i.zoom=Ar(i.minZoom,Sn(k,_,b,y),i.maxZoom)),e.emit("zoom")),(E||B)&&e.emit("viewport");var D=o.style;if(D&&D.length>0&&a){for(var S=0;S=0;P--){var E=T[P];E()}T.splice(0,T.length)},"callbacks"),m=p.length-1;m>=0;m--){var x=p[m],w=x._private;if(w.stopped){p.splice(m,1),w.hooked=!1,w.playing=!1,w.started=!1,v(w.frames);continue}!w.playing&&!w.applying||(w.playing&&w.applying&&(w.applying=!1),w.started||Mh(d,x,e),Ah(d,x,e,h),w.applying&&(w.applying=!1),v(w.frames),w.step!=null&&w.step(e),x.completed()&&(p.splice(m,1),w.hooked=!1,w.playing=!1,w.started=!1,v(w.completes)),y=!0)}return!h&&p.length===0&&g.length===0&&r.push(d),y}l(a,"stepOne");for(var i=!1,o=0;o0?t.notify("draw",n):t.notify("draw")),n.unmerge(r),t.emit("step")}l(Qo,"stepAll");var ty={animate:Le.animate(),animation:Le.animation(),animated:Le.animated(),clearQueue:Le.clearQueue(),delay:Le.delay(),delayAnimation:Le.delayAnimation(),stop:Le.stop(),addToAnimationPool:l(function(e){var t=this;t.styleEnabled()&&t._private.aniEles.merge(e)},"addToAnimationPool"),stopAnimationLoop:l(function(){this._private.animationsRunning=!1},"stopAnimationLoop"),startAnimationLoop:l(function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function t(){e._private.animationsRunning&&Na(l(function(r){Qo(r,e),t()},"animationStep"))}l(t,"headlessStep");var n=e.renderer();n&&n.beforeRender?n.beforeRender(l(function(r,a){Qo(a,e)},"rendererAnimationStep"),n.beforeRenderPriorities.animations):t()},"startAnimationLoop")},ny={qualifierCompare:l(function(e,t){return e==null||t==null?e==null&&t==null:e.sameText(t)},"qualifierCompare"),eventMatches:l(function(e,t,n){var r=t.qualifier;return r!=null?e!==n.target&&Fr(n.target)&&r.matches(n.target):!0},"eventMatches"),addEventFields:l(function(e,t){t.cy=e,t.target=e},"addEventFields"),callbackContext:l(function(e,t,n){return t.qualifier!=null?n.target:e},"callbackContext")},ga=l(function(e){return pe(e)?new pn(e):e},"argSelector"),Ih={createEmitter:l(function(){var e=this._private;return e.emitter||(e.emitter=new Ur(ny,this)),this},"createEmitter"),emitter:l(function(){return this._private.emitter},"emitter"),on:l(function(e,t,n){return this.emitter().on(e,ga(t),n),this},"on"),removeListener:l(function(e,t,n){return this.emitter().removeListener(e,ga(t),n),this},"removeListener"),removeAllListeners:l(function(){return this.emitter().removeAllListeners(),this},"removeAllListeners"),one:l(function(e,t,n){return this.emitter().one(e,ga(t),n),this},"one"),once:l(function(e,t,n){return this.emitter().one(e,ga(t),n),this},"once"),emit:l(function(e,t){return this.emitter().emit(e,t),this},"emit"),emitAndNotify:l(function(e,t){return this.emit(e),this.notify(e,t),this},"emitAndNotify")};Le.eventAliasesOn(Ih);var es={png:l(function(e){var t=this._private.renderer;return e=e||{},t.png(e)},"png"),jpg:l(function(e){var t=this._private.renderer;return e=e||{},e.bg=e.bg||"#fff",t.jpg(e)},"jpg")};es.jpeg=es.jpg;var Da={layout:l(function(e){var t=this;if(e==null){We("Layout options must be specified to make a layout");return}if(e.name==null){We("A `name` must be specified to make a layout");return}var n=e.name,r=t.extension("layout",n);if(r==null){We("No such layout `"+n+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var a;pe(e.eles)?a=t.$(e.eles):a=e.eles!=null?e.eles:t.$();var i=new r(ve({},e,{cy:t,eles:a}));return i},"layout")};Da.createLayout=Da.makeLayout=Da.layout;var ry={notify:l(function(e,t){var n=this._private;if(this.batching()){n.batchNotifications=n.batchNotifications||{};var r=n.batchNotifications[e]=n.batchNotifications[e]||this.collection();t!=null&&r.merge(t);return}if(n.notificationsEnabled){var a=this.renderer();this.destroyed()||!a||a.notify(e,t)}},"notify"),notifications:l(function(e){var t=this._private;return e===void 0?t.notificationsEnabled:(t.notificationsEnabled=!!e,this)},"notifications"),noNotifications:l(function(e){this.notifications(!1),e(),this.notifications(!0)},"noNotifications"),batching:l(function(){return this._private.batchCount>0},"batching"),startBatch:l(function(){var e=this._private;return e.batchCount==null&&(e.batchCount=0),e.batchCount===0&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},"startBatch"),endBatch:l(function(){var e=this._private;if(e.batchCount===0)return this;if(e.batchCount--,e.batchCount===0){e.batchStyleEles.updateStyle();var t=this.renderer();Object.keys(e.batchNotifications).forEach(function(n){var r=e.batchNotifications[n];r.empty()?t.notify(n):t.notify(n,r)})}return this},"endBatch"),batch:l(function(e){return this.startBatch(),e(),this.endBatch(),this},"batch"),batchData:l(function(e){var t=this;return this.batch(function(){for(var n=Object.keys(e),r=0;r0;)t.removeChild(t.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach(function(n){var r=n._private;r.rscratch={},r.rstyle={},r.animation.current=[],r.animation.queue=[]})},"destroyRenderer"),onRender:l(function(e){return this.on("render",e)},"onRender"),offRender:l(function(e){return this.off("render",e)},"offRender")};ts.invalidateDimensions=ts.resize;var ka={collection:l(function(e,t){return pe(e)?this.$(e):Dt(e)?e.collection():Ve(e)?(t||(t={}),new ct(this,e,t.unique,t.removed)):new ct(this)},"collection"),nodes:l(function(e){var t=this.$(function(n){return n.isNode()});return e?t.filter(e):t},"nodes"),edges:l(function(e){var t=this.$(function(n){return n.isEdge()});return e?t.filter(e):t},"edges"),$:l(function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},"$"),mutableElements:l(function(){return this._private.elements},"mutableElements")};ka.elements=ka.filter=ka.$;var st={},Cr="t",iy="f";st.apply=function(e){for(var t=this,n=t._private,r=n.cy,a=r.collection(),i=0;i0;if(f||h&&p){var g=void 0;f&&p||f?g=s.properties:p&&(g=s.mappedProperties);for(var y=0;y1&&(w=1),c.color){var P=r.valueMin[0],E=r.valueMax[0],k=r.valueMin[1],_=r.valueMax[1],B=r.valueMin[2],D=r.valueMax[2],S=r.valueMin[3]==null?1:r.valueMin[3],M=r.valueMax[3]==null?1:r.valueMax[3],A=[Math.round(P+(E-P)*w),Math.round(k+(_-k)*w),Math.round(B+(D-B)*w),Math.round(S+(M-S)*w)];i={bypass:r.bypass,name:r.name,value:A,strValue:"rgb("+A[0]+", "+A[1]+", "+A[2]+")"}}else if(c.number){var O=r.valueMin+(r.valueMax-r.valueMin)*w;i=this.parse(r.name,O,r.bypass,f)}else return!1;if(!i)return y(),!1;i.mapping=r,r=i;break}case o.data:{for(var R=r.field.split("."),I=h.data,L=0;L0&&i>0){for(var c={},u=!1,s=0;s0?e.delayAnimation(o).play().promise().then(x):x()}).then(function(){return e.animation({style:c,duration:i,easing:e.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){n.removeBypasses(e,a),e.emitAndNotify("style"),r.transitioning=!1})}else r.transitioning&&(this.removeBypasses(e,a),e.emitAndNotify("style"),r.transitioning=!1)};st.checkTrigger=function(e,t,n,r,a,i){var o=this.properties[t],c=a(o);e.removed()||c!=null&&c(n,r,e)&&i(o)};st.checkZOrderTrigger=function(e,t,n,r){var a=this;this.checkTrigger(e,t,n,r,function(i){return i.triggersZOrder},function(){a._private.cy.notify("zorder",e)})};st.checkBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,function(a){return a.triggersBounds},function(a){e.dirtyCompoundBoundsCache(),e.dirtyBoundingBoxCache()})};st.checkConnectedEdgesBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,function(a){return a.triggersBoundsOfConnectedEdges},function(a){e.connectedEdges().forEach(function(i){i.dirtyBoundingBoxCache()})})};st.checkParallelEdgesBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,function(a){return a.triggersBoundsOfParallelEdges},function(a){e.parallelEdges().forEach(function(i){i.dirtyBoundingBoxCache()})})};st.checkTriggers=function(e,t,n,r){e.dirtyStyleCache(),this.checkZOrderTrigger(e,t,n,r),this.checkBoundsTrigger(e,t,n,r),this.checkConnectedEdgesBoundsTrigger(e,t,n,r),this.checkParallelEdgesBoundsTrigger(e,t,n,r)};var Jr={};Jr.applyBypass=function(e,t,n,r){var a=this,i=[],o=!0;if(t==="*"||t==="**"){if(n!==void 0)for(var c=0;ca.length?r=r.substr(a.length):r=""}l(c,"removeSelAndBlockFromRemaining");function u(){i.length>o.length?i=i.substr(o.length):i=""}for(l(u,"removePropAndValFromRem");;){var s=r.match(/^\s*$/);if(s)break;var d=r.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!d){Oe("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+r);break}a=d[0];var h=d[1];if(h!=="core"){var f=new pn(h);if(f.invalid){Oe("Skipping parsing of block: Invalid selector found in string stylesheet: "+h),c();continue}}var p=d[2],g=!1;i=p;for(var y=[];;){var b=i.match(/^\s*$/);if(b)break;var v=i.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!v){Oe("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+p),g=!0;break}o=v[0];var m=v[1],x=v[2],w=t.properties[m];if(!w){Oe("Skipping property: Invalid property name in: "+o),u();continue}var T=n.parse(m,x);if(!T){Oe("Skipping property: Invalid property definition in: "+o),u();continue}y.push({name:m,val:x}),u()}if(g){c();break}n.selector(h);for(var P=0;P=7&&t[0]==="d"&&(d=new RegExp(c.data.regex).exec(t))){if(n)return!1;var f=c.data;return{name:e,value:d,strValue:""+t,mapped:f,field:d[1],bypass:n}}else if(t.length>=10&&t[0]==="m"&&(h=new RegExp(c.mapData.regex).exec(t))){if(n||s.multiple)return!1;var p=c.mapData;if(!(s.color||s.number))return!1;var g=this.parse(e,h[4]);if(!g||g.mapped)return!1;var y=this.parse(e,h[5]);if(!y||y.mapped)return!1;if(g.pfValue===y.pfValue||g.strValue===y.strValue)return Oe("`"+e+": "+t+"` is not a valid mapper because the output range is zero; converting to `"+e+": "+g.strValue+"`"),this.parse(e,g.strValue);if(s.color){var b=g.value,v=y.value,m=b[0]===v[0]&&b[1]===v[1]&&b[2]===v[2]&&(b[3]===v[3]||(b[3]==null||b[3]===1)&&(v[3]==null||v[3]===1));if(m)return!1}return{name:e,value:h,strValue:""+t,mapped:p,field:h[1],fieldMin:parseFloat(h[2]),fieldMax:parseFloat(h[3]),valueMin:g.value,valueMax:y.value,bypass:n}}}if(s.multiple&&r!=="multiple"){var x;if(u?x=t.split(/\s+/):Ve(t)?x=t:x=[t],s.evenMultiple&&x.length%2!==0)return null;for(var w=[],T=[],P=[],E="",k=!1,_=0;_0?" ":"")+B.strValue}return s.validate&&!s.validate(w,T)?null:s.singleEnum&&k?w.length===1&&pe(w[0])?{name:e,value:w[0],strValue:w[0],bypass:n}:null:{name:e,value:w,pfValue:P,strValue:E,bypass:n,units:T}}var D=l(function(){for(var ae=0;aes.max||s.strictMax&&t===s.max))return null;var R={name:e,value:t,strValue:""+t+(S||""),units:S,bypass:n};return s.unitless||S!=="px"&&S!=="em"?R.pfValue=t:R.pfValue=S==="px"||!S?t:this.getEmSizeInPixels()*t,(S==="ms"||S==="s")&&(R.pfValue=S==="ms"?t:1e3*t),(S==="deg"||S==="rad")&&(R.pfValue=S==="rad"?t:Gp(t)),S==="%"&&(R.pfValue=t/100),R}else if(s.propList){var I=[],L=""+t;if(L!=="none"){for(var N=L.split(/\s*,\s*|\s+/),Y=0;Y0&&o>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0){c=Math.min((i-2*t)/n.w,(o-2*t)/n.h),c=c>this._private.maxZoom?this._private.maxZoom:c,c=c=n.minZoom&&(n.maxZoom=t),this},"zoomRange"),minZoom:l(function(e){return e===void 0?this._private.minZoom:this.zoomRange({min:e})},"minZoom"),maxZoom:l(function(e){return e===void 0?this._private.maxZoom:this.zoomRange({max:e})},"maxZoom"),getZoomedViewport:l(function(e){var t=this._private,n=t.pan,r=t.zoom,a,i,o=!1;if(t.zoomingEnabled||(o=!0),re(e)?i=e:Be(e)&&(i=e.level,e.position!=null?a=Ja(e.position,r,n):e.renderedPosition!=null&&(a=e.renderedPosition),a!=null&&!t.panningEnabled&&(o=!0)),i=i>t.maxZoom?t.maxZoom:i,i=it.maxZoom||!t.zoomingEnabled?i=!0:(t.zoom=c,a.push("zoom"))}if(r&&(!i||!e.cancelOnFailedZoom)&&t.panningEnabled){var u=e.pan;re(u.x)&&(t.pan.x=u.x,o=!1),re(u.y)&&(t.pan.y=u.y,o=!1),o||a.push("pan")}return a.length>0&&(a.push("viewport"),this.emit(a.join(" ")),this.notify("viewport")),this},"viewport"),center:l(function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify("viewport")),this},"center"),getCenterPan:l(function(e,t){if(this._private.panningEnabled){if(pe(e)){var n=e;e=this.mutableElements().filter(n)}else Dt(e)||(e=this.mutableElements());if(e.length!==0){var r=e.boundingBox(),a=this.width(),i=this.height();t=t===void 0?this._private.zoom:t;var o={x:(a-t*(r.x1+r.x2))/2,y:(i-t*(r.y1+r.y2))/2};return o}}},"getCenterPan"),reset:l(function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},"reset"),invalidateSize:l(function(){this._private.sizeCache=null},"invalidateSize"),size:l(function(){var e=this._private,t=e.container,n=this;return e.sizeCache=e.sizeCache||(t?(function(){var r=n.window().getComputedStyle(t),a=l(function(i){return parseFloat(r.getPropertyValue(i))},"val");return{width:t.clientWidth-a("padding-left")-a("padding-right"),height:t.clientHeight-a("padding-top")-a("padding-bottom")}})():{width:1,height:1})},"size"),width:l(function(){return this.size().width},"width"),height:l(function(){return this.size().height},"height"),extent:l(function(){var e=this._private.pan,t=this._private.zoom,n=this.renderedExtent(),r={x1:(n.x1-e.x)/t,x2:(n.x2-e.x)/t,y1:(n.y1-e.y)/t,y2:(n.y2-e.y)/t};return r.w=r.x2-r.x1,r.h=r.y2-r.y1,r},"extent"),renderedExtent:l(function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},"renderedExtent"),multiClickDebounceTime:l(function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this},"multiClickDebounceTime")};Rn.centre=Rn.center;Rn.autolockNodes=Rn.autolock;Rn.autoungrabifyNodes=Rn.autoungrabify;var Nr={data:Le.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:Le.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:Le.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Le.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Nr.attr=Nr.data;Nr.removeAttr=Nr.removeData;var Lr=l(function(e){var t=this;e=ve({},e);var n=e.container;n&&!Ra(n)&&Ra(n[0])&&(n=n[0]);var r=n?n._cyreg:null;r=r||{},r&&r.cy&&(r.cy.destroy(),r={});var a=r.readies=r.readies||[];n&&(n._cyreg=r),r.cy=t;var i=tt!==void 0&&n!==void 0&&!e.headless,o=e;o.layout=ve({name:i?"grid":"null"},o.layout),o.renderer=ve({name:i?"canvas":"null"},o.renderer);var c=l(function(f,p,g){return p!==void 0?p:g!==void 0?g:f},"defVal"),u=this._private={container:n,ready:!1,options:o,elements:new ct(this),listeners:[],aniEles:new ct(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:c(!0,o.zoomingEnabled),userZoomingEnabled:c(!0,o.userZoomingEnabled),panningEnabled:c(!0,o.panningEnabled),userPanningEnabled:c(!0,o.userPanningEnabled),boxSelectionEnabled:c(!0,o.boxSelectionEnabled),autolock:c(!1,o.autolock,o.autolockNodes),autoungrabify:c(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:c(!1,o.autounselectify),styleEnabled:o.styleEnabled===void 0?i:o.styleEnabled,zoom:re(o.zoom)?o.zoom:1,pan:{x:Be(o.pan)&&re(o.pan.x)?o.pan.x:0,y:Be(o.pan)&&re(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:c(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});var s=l(function(f,p){var g=f.some(tp);if(g)return lr.all(f).then(p);p(f)},"loadExtData");u.styleEnabled&&t.setStyle([]);var d=ve({},o,o.renderer);t.initRenderer(d);var h=l(function(f,p,g){t.notifications(!1);var y=t.mutableElements();y.length>0&&y.remove(),f!=null&&(Be(f)||Ve(f))&&t.add(f),t.one("layoutready",function(v){t.notifications(!0),t.emit(v),t.one("load",p),t.emitAndNotify("load")}).one("layoutstop",function(){t.one("done",g),t.emit("done")});var b=ve({},t._private.options.layout);b.eles=t.elements(),t.layout(b).run()},"setElesAndLayout");s([o.style,o.elements],function(f){var p=f[0],g=f[1];u.styleEnabled&&t.style().append(p),h(g,function(){t.startAnimationLoop(),u.ready=!0,He(o.ready)&&t.on("ready",o.ready);for(var y=0;y0,c=!!e.boundingBox,u=wt(c?e.boundingBox:structuredClone(t.extent())),s;if(Dt(e.roots))s=e.roots;else if(Ve(e.roots)){for(var d=[],h=0;h0;){var A=M(),O=_(A,D);if(O)A.outgoers().filter(function(te){return te.isNode()&&n.has(te)}).forEach(S);else if(O===null){Oe("Detected double maximal shift for node `"+A.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}var R=0;if(e.avoidOverlap)for(var I=0;I0&&v[0].length<=3?we/2:0),ke=2*Math.PI/v[de].length*be;return de===0&&v[0].length===1&&(Ce=1),{x:U.x+Ce*Math.cos(ke),y:U.y+Ce*Math.sin(ke)}}else{var ze=v[de].length,qe=Math.max(ze===1?0:c?(u.w-e.padding*2-ne.w)/((e.grid?Ee:ze)-1):(u.w-e.padding*2-ne.w)/((e.grid?Ee:ze)+1),R),Re={x:U.x+(be+1-(ze+1)/2)*qe,y:U.y+(de+1-(Q+1)/2)*ie};return Re}},"getPositionTopBottom"),xe={downward:0,leftward:90,upward:180,rightward:-90};Object.keys(xe).indexOf(e.direction)===-1&&We("Invalid direction '".concat(e.direction,"' specified for breadthfirst layout. Valid values are: ").concat(Object.keys(xe).join(", ")));var Ae=l(function(te){return rd(me(te),u,xe[e.direction])},"getPosition");return n.nodes().layoutPositions(this,e,Ae),this};var cy={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:l(function(e,t){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:l(function(e,t){return t},"transform")};function qs(e){this.options=ve({},cy,e)}l(qs,"CircleLayout");qs.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,a=t.counterclockwise!==void 0?!t.counterclockwise:t.clockwise,i=r.nodes().not(":parent");t.sort&&(i=i.sort(t.sort));for(var o=wt(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),c={x:o.x1+o.w/2,y:o.y1+o.h/2},u=t.sweep===void 0?2*Math.PI-2*Math.PI/i.length:t.sweep,s=u/Math.max(1,i.length-1),d,h=0,f=0;f1&&t.avoidOverlap){h*=1.75;var v=Math.cos(s)-Math.cos(0),m=Math.sin(s)-Math.sin(0),x=Math.sqrt(h*h/(v*v+m*m));d=Math.max(x,d)}var w=l(function(T,P){var E=t.startAngle+P*s*(a?1:-1),k=d*Math.cos(E),_=d*Math.sin(E),B={x:c.x+k,y:c.y+_};return B},"getPos");return r.nodes().layoutPositions(this,t,w),this};var dy={fit:!0,padding:30,startAngle:3/2*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:l(function(e){return e.degree()},"concentric"),levelWidth:l(function(e){return e.maxDegree()/4},"levelWidth"),animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:l(function(e,t){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:l(function(e,t){return t},"transform")};function js(e){this.options=ve({},dy,e)}l(js,"ConcentricLayout");js.prototype.run=function(){for(var e=this.options,t=e,n=t.counterclockwise!==void 0?!t.counterclockwise:t.clockwise,r=e.cy,a=t.eles,i=a.nodes().not(":parent"),o=wt(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),c={x:o.x1+o.w/2,y:o.y1+o.h/2},u=[],s=0,d=0;d0){var T=Math.abs(m[0].value-w.value);T>=b&&(m=[],v.push(m))}m.push(w)}var P=s+t.minNodeSpacing;if(!t.avoidOverlap){var E=v.length>0&&v[0].length>1,k=Math.min(o.w,o.h)/2-P,_=k/(v.length+E?1:0);P=Math.min(P,_)}for(var B=0,D=0;D1&&t.avoidOverlap){var O=Math.cos(A)-Math.cos(0),R=Math.sin(A)-Math.sin(0),I=Math.sqrt(P*P/(O*O+R*R));B=Math.max(I,B)}S.r=B,B+=P}if(t.equidistant){for(var L=0,N=0,Y=0;Y=e.numIter||(my(r,e),r.temperature=r.temperature*e.coolingFactor,r.temperature=e.animationThreshold&&i(),Na(d)}},"frame");d()}else{for(;s;)s=o(u),u++;sc(r,e),c()}return this};Qr.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this};Qr.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var fy=l(function(e,t,n){for(var r=n.eles.edges(),a=n.eles.nodes(),i=wt(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:a.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:r.size(),temperature:n.initialTemp,clientWidth:i.w,clientHeight:i.h,boundingBox:i},c=n.eles.components(),u={},s=0;s0){o.graphSet.push(E);for(var s=0;sr.count?0:r.graph},"findLCA"),Rh=l(function(e,t,n,r){var a=r.graphSet[n];if(-10)var b=r.nodeOverlap*s,y=Math.sqrt(o*o+c*c),v=b*o/y,m=b*c/y;else var d=ja(e,o,c),h=ja(t,-1*o,-1*c),f=h.x-d.x,p=h.y-d.y,g=f*f+p*p,y=Math.sqrt(g),b=(e.nodeRepulsion+t.nodeRepulsion)/g,v=b*f/y,m=b*p/y;e.isLocked||(e.offsetX-=v,e.offsetY-=m),t.isLocked||(t.offsetX+=v,t.offsetY+=m)}},"nodeRepulsion"),wy=l(function(e,t,n,r){if(n>0)var a=e.maxX-t.minX;else var a=t.maxX-e.minX;if(r>0)var i=e.maxY-t.minY;else var i=t.maxY-e.minY;return a>=0&&i>=0?Math.sqrt(a*a+i*i):0},"nodesOverlap"),ja=l(function(e,t,n){var r=e.positionX,a=e.positionY,i=e.height||1,o=e.width||1,c=n/t,u=i/o,s={};return t===0&&0n?(s.x=r,s.y=a+i/2,s):0t&&-1*u<=c&&c<=u?(s.x=r-o/2,s.y=a-o*n/2/t,s):0=u)?(s.x=r+i*t/2/n,s.y=a+i/2,s):(0>n&&(c<=-1*u||c>=u)&&(s.x=r-i*t/2/n,s.y=a-i/2),s)},"findClippingPoint"),Ey=l(function(e,t){for(var n=0;nn){var y=t.gravity*f/g,b=t.gravity*p/g;h.offsetX+=y,h.offsetY+=b}}}}},"calculateGravityForces"),Ty=l(function(e,t){var n=[],r=0,a=-1;for(n.push.apply(n,e.graphSet[0]),a+=e.graphSet[0].length;r<=a;){var i=n[r++],o=e.idToIndex[i],c=e.layoutNodes[o],u=c.children;if(0n)var a={x:n*e/r,y:n*t/r};else var a={x:e,y:t};return a},"limitForce"),Lh=l(function(e,t){var n=e.parentId;if(n!=null){var r=t.layoutNodes[t.idToIndex[n]],a=!1;if((r.maxX==null||e.maxX+r.padRight>r.maxX)&&(r.maxX=e.maxX+r.padRight,a=!0),(r.minX==null||e.minX-r.padLeftr.maxY)&&(r.maxY=e.maxY+r.padBottom,a=!0),(r.minY==null||e.minY-r.padTopb&&(p+=y+t.componentSpacing,f=0,g=0,y=0)}}},"separateComponents"),Dy={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:l(function(e){},"position"),sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:l(function(e,t){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:l(function(e,t){return t},"transform")};function Xs(e){this.options=ve({},Dy,e)}l(Xs,"GridLayout");Xs.prototype.run=function(){var e=this.options,t=e,n=e.cy,r=t.eles,a=r.nodes().not(":parent");t.sort&&(a=a.sort(t.sort));var i=wt(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()});if(i.h===0||i.w===0)r.nodes().layoutPositions(this,t,function(K){return{x:i.x1,y:i.y1}});else{var o=a.size(),c=Math.sqrt(o*i.h/i.w),u=Math.round(c),s=Math.round(i.w/i.h*c),d=l(function(K){if(K==null)return Math.min(u,s);var J=Math.min(u,s);J==u?u=K:s=K},"small"),h=l(function(K){if(K==null)return Math.max(u,s);var J=Math.max(u,s);J==u?u=K:s=K},"large"),f=t.rows,p=t.cols!=null?t.cols:t.columns;if(f!=null&&p!=null)u=f,s=p;else if(f!=null&&p==null)u=f,s=Math.ceil(o/u);else if(f==null&&p!=null)s=p,u=Math.ceil(o/s);else if(s*u>o){var g=d(),y=h();(g-1)*y>=o?d(g-1):(y-1)*g>=o&&h(y-1)}else for(;s*u=o?h(v+1):d(b+1)}var m=i.w/s,x=i.h/u;if(t.condense&&(m=0,x=0),t.avoidOverlap)for(var w=0;w=s&&(O=0,A++)},"moveToNextCell"),I={},L=0;L(I=og(e,t,L[N],L[N+1],L[N+2],L[N+3])))return b(E,I),!0}else if(_.edgeType==="bezier"||_.edgeType==="multibezier"||_.edgeType==="self"||_.edgeType==="compound"){for(var L=_.allpts,N=0;N+5<_.allpts.length;N+=4)if(ng(e,t,L[N],L[N+1],L[N+2],L[N+3],L[N+4],L[N+5],A)&&M>(I=ig(e,t,L[N],L[N+1],L[N+2],L[N+3],L[N+4],L[N+5])))return b(E,I),!0}for(var O=O||k.source,R=R||k.target,Y=a.getArrowWidth(B,D),q=[{name:"source",x:_.arrowStartX,y:_.arrowStartY,angle:_.srcArrowAngle},{name:"target",x:_.arrowEndX,y:_.arrowEndY,angle:_.tgtArrowAngle},{name:"mid-source",x:_.midX,y:_.midY,angle:_.midsrcArrowAngle},{name:"mid-target",x:_.midX,y:_.midY,angle:_.midtgtArrowAngle}],N=0;N0&&(v(O),v(R))}l(m,"checkEdge");function x(E,k,_){return St(E,k,_)}l(x,"preprop");function w(E,k){var _=E._private,B=f,D;k?D=k+"-":D="",E.boundingBox();var S=_.labelBounds[k||"main"],M=E.pstyle(D+"label").value,A=E.pstyle("text-events").strValue==="yes";if(!(!A||!M)){var O=x(_.rscratch,"labelX",k),R=x(_.rscratch,"labelY",k),I=x(_.rscratch,"labelAngle",k),L=E.pstyle(D+"text-margin-x").pfValue,N=E.pstyle(D+"text-margin-y").pfValue,Y=S.x1-B-L,q=S.x2+B-L,X=S.y1-B-N,K=S.y2+B-N;if(I){var J=Math.cos(I),Q=Math.sin(I),$=l(function(U,ne){return U=U-O,ne=ne-R,{x:U*J-ne*Q+O,y:U*Q+ne*J+R}},"rotate"),ee=$(Y,X),ae=$(Y,K),V=$(q,X),z=$(q,K),F=[ee.x+L,ee.y+N,V.x+L,V.y+N,z.x+L,z.y+N,ae.x+L,ae.y+N];if(Pt(e,t,F))return b(E),!0}else if(sn(S,e,t))return b(E),!0}}l(w,"checkLabel");for(var T=o.length-1;T>=0;T--){var P=o[T];P.isNode()?v(P)||w(P):m(P)||w(P)||w(P,"source")||w(P,"target")}return c};On.getAllInBox=function(e,t,n,r){var a=this.getCachedZSortedEles().interactive,i=this.cy.zoom(),o=2/i,c=[],u=Math.min(e,n),s=Math.max(e,n),d=Math.min(t,r),h=Math.max(t,r);e=u,n=s,t=d,r=h;var f=wt({x1:e,y1:t,x2:n,y2:r}),p=[{x:f.x1,y:f.y1},{x:f.x2,y:f.y1},{x:f.x2,y:f.y2},{x:f.x1,y:f.y2}],g=[[p[0],p[1]],[p[1],p[2]],[p[2],p[3]],[p[3],p[0]]];function y(ne,ie,Ee){return St(ne,ie,Ee)}l(y,"preprop");function b(ne,ie){var Ee=ne._private,me=o,xe="";ne.boundingBox();var Ae=Ee.labelBounds.main;if(!Ae)return null;var te=y(Ee.rscratch,"labelX",ie),ce=y(Ee.rscratch,"labelY",ie),de=y(Ee.rscratch,"labelAngle",ie),be=ne.pstyle(xe+"text-margin-x").pfValue,we=ne.pstyle(xe+"text-margin-y").pfValue,Ce=Ae.x1-me-be,ke=Ae.x2+me-be,ze=Ae.y1-me-we,qe=Ae.y2+me-we;if(de){var Re=Math.cos(de),Me=Math.sin(de),oe=l(function(ye,C){return ye=ye-te,C=C-ce,{x:ye*Re-C*Me+te,y:ye*Me+C*Re+ce}},"rotate");return[oe(Ce,ze),oe(ke,ze),oe(ke,qe),oe(Ce,qe)]}else return[{x:Ce,y:ze},{x:ke,y:ze},{x:ke,y:qe},{x:Ce,y:qe}]}l(b,"getRotatedLabelBox");function v(ne,ie,Ee,me){function xe(Ae,te,ce){return(ce.y-Ae.y)*(te.x-Ae.x)>(te.y-Ae.y)*(ce.x-Ae.x)}return l(xe,"ccw"),xe(ne,Ee,me)!==xe(ie,Ee,me)&&xe(ne,ie,Ee)!==xe(ne,ie,me)}l(v,"doLinesIntersect");for(var m=0;m0?-(Math.PI-e.ang):Math.PI+e.ang},"invertVec"),Iy=l(function(e,t,n,r,a){if(e!==hc?fc(t,e,Vt):My(_t,Vt),fc(t,n,_t),cc=Vt.nx*_t.ny-Vt.ny*_t.nx,dc=Vt.nx*_t.nx-Vt.ny*-_t.ny,Wt=Math.asin(Math.max(-1,Math.min(1,cc))),Math.abs(Wt)<1e-6){ns=t.x,rs=t.y,Pn=jn=0;return}_n=1,_a=!1,dc<0?Wt<0?Wt=Math.PI+Wt:(Wt=Math.PI-Wt,_n=-1,_a=!0):Wt>0&&(_n=-1,_a=!0),t.radius!==void 0?jn=t.radius:jn=r,wn=Wt/2,va=Math.min(Vt.len/2,_t.len/2),a?(Ft=Math.abs(Math.cos(wn)*jn/Math.sin(wn)),Ft>va?(Ft=va,Pn=Math.abs(Ft*Math.sin(wn)/Math.cos(wn))):Pn=jn):(Ft=Math.min(va,jn),Pn=Math.abs(Ft*Math.sin(wn)/Math.cos(wn))),as=t.x+_t.nx*Ft,is=t.y+_t.ny*Ft,ns=as-_t.ny*Pn*_n,rs=is+_t.nx*Pn*_n,Oh=t.x+Vt.nx*Ft,zh=t.y+Vt.ny*Ft,hc=t},"calcCornerArc");function Gs(e,t){t.radius===0?e.lineTo(t.cx,t.cy):e.arc(t.cx,t.cy,t.radius,t.startAngle,t.endAngle,t.counterClockwise)}l(Gs,"drawPreparedRoundCorner");function si(e,t,n,r){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return r===0||t.radius===0?{cx:t.x,cy:t.y,radius:0,startX:t.x,startY:t.y,stopX:t.x,stopY:t.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(Iy(e,t,n,r,a),{cx:ns,cy:rs,radius:Pn,startX:Oh,startY:zh,stopX:as,stopY:is,startAngle:Vt.ang+Math.PI/2*_n,endAngle:_t.ang-Math.PI/2*_n,counterClockwise:_a})}l(si,"getRoundCorner");var Or=.01,Ry=Math.sqrt(2*Or),vt={};vt.findMidptPtsEtc=function(e,t){var n=t.posPts,r=t.intersectionPts,a=t.vectorNormInverse,i,o=e.pstyle("source-endpoint"),c=e.pstyle("target-endpoint"),u=o.units!=null&&c.units!=null,s=l(function(w,T,P,E){var k=E-T,_=P-w,B=Math.sqrt(_*_+k*k);return{x:-k/B,y:_/B}},"recalcVectorNormInverse"),d=e.pstyle("edge-distances").value;switch(d){case"node-position":i=n;break;case"intersection":i=r;break;case"endpoints":{if(u){var h=this.manualEndptToPx(e.source()[0],o),f=Ue(h,2),p=f[0],g=f[1],y=this.manualEndptToPx(e.target()[0],c),b=Ue(y,2),v=b[0],m=b[1],x={x1:p,y1:g,x2:v,y2:m};a=s(p,g,v,m),i=x}else Oe("Edge ".concat(e.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),i=r;break}}return{midptPts:i,vectorNormInverse:a}};vt.findHaystackPoints=function(e){for(var t=0;t0?Math.max(C-j,0):Math.min(C+j,0)},"subDWH"),M=S(B,k),A=S(D,_),O=!1;m===s?v=Math.abs(M)>Math.abs(A)?a:r:m===u||m===c?(v=r,O=!0):(m===i||m===o)&&(v=a,O=!0);var R=v===r,I=R?A:M,L=R?D:B,N=Ss(L),Y=!1;!(O&&(w||P))&&(m===c&&L<0||m===u&&L>0||m===i&&L>0||m===o&&L<0)&&(N*=-1,I=N*Math.abs(I),Y=!0);var q;if(w){var X=T<0?1+T:T;q=X*I}else{var K=T<0?I:0;q=K+T*N}var J=l(function(C){return Math.abs(C)=Math.abs(I)},"getIsTooClose"),Q=J(q),$=J(Math.abs(I)-Math.abs(q)),ee=Q||$;if(ee&&!Y)if(R){var ae=Math.abs(L)<=f/2,V=Math.abs(B)<=p/2;if(ae){var z=(d.x1+d.x2)/2,F=d.y1,U=d.y2;n.segpts=[z,F,z,U]}else if(V){var ne=(d.y1+d.y2)/2,ie=d.x1,Ee=d.x2;n.segpts=[ie,ne,Ee,ne]}else n.segpts=[d.x1,d.y2]}else{var me=Math.abs(L)<=h/2,xe=Math.abs(D)<=g/2;if(me){var Ae=(d.y1+d.y2)/2,te=d.x1,ce=d.x2;n.segpts=[te,Ae,ce,Ae]}else if(xe){var de=(d.x1+d.x2)/2,be=d.y1,we=d.y2;n.segpts=[de,be,de,we]}else n.segpts=[d.x2,d.y1]}else if(R){var Ce=d.y1+q+(b?f/2*N:0),ke=d.x1,ze=d.x2;n.segpts=[ke,Ce,ze,Ce]}else{var qe=d.x1+q+(b?h/2*N:0),Re=d.y1,Me=d.y2;n.segpts=[qe,Re,qe,Me]}if(n.isRound){var oe=e.pstyle("taxi-radius").value,ye=e.pstyle("radius-type").value[0]==="arc-radius";n.radii=new Array(n.segpts.length/2).fill(oe),n.isArcRadius=new Array(n.segpts.length/2).fill(ye)}};vt.tryToCorrectInvalidPoints=function(e,t){var n=e._private.rscratch;if(n.edgeType==="bezier"){var r=t.srcPos,a=t.tgtPos,i=t.srcW,o=t.srcH,c=t.tgtW,u=t.tgtH,s=t.srcShape,d=t.tgtShape,h=t.srcCornerRadius,f=t.tgtCornerRadius,p=t.srcRs,g=t.tgtRs,y=!re(n.startX)||!re(n.startY),b=!re(n.arrowStartX)||!re(n.arrowStartY),v=!re(n.endX)||!re(n.endY),m=!re(n.arrowEndX)||!re(n.arrowEndY),x=3,w=this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth,T=x*w,P=Mn({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.startX,y:n.startY}),E=PI.poolIndex()){var L=R;R=I,I=L}var N=S.srcPos=R.position(),Y=S.tgtPos=I.position(),q=S.srcW=R.outerWidth(),X=S.srcH=R.outerHeight(),K=S.tgtW=I.outerWidth(),J=S.tgtH=I.outerHeight(),Q=S.srcShape=n.nodeShapes[t.getNodeShape(R)],$=S.tgtShape=n.nodeShapes[t.getNodeShape(I)],ee=S.srcCornerRadius=R.pstyle("corner-radius").value==="auto"?"auto":R.pstyle("corner-radius").pfValue,ae=S.tgtCornerRadius=I.pstyle("corner-radius").value==="auto"?"auto":I.pstyle("corner-radius").pfValue,V=S.tgtRs=I._private.rscratch,z=S.srcRs=R._private.rscratch;S.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var F=0;F=Ry||(ke=Math.sqrt(Math.max(Ce*Ce,Or)+Math.max(we*we,Or)));var ze=S.vector={x:Ce,y:we},qe=S.vectorNorm={x:ze.x/ke,y:ze.y/ke},Re={x:-qe.y,y:qe.x};S.nodesOverlap=!re(ke)||$.checkPoint(xe[0],xe[1],0,K,J,Y.x,Y.y,ae,V)||Q.checkPoint(te[0],te[1],0,q,X,N.x,N.y,ee,z),S.vectorNormInverse=Re,M={nodesOverlap:S.nodesOverlap,dirCounts:S.dirCounts,calculatedIntersection:!0,hasBezier:S.hasBezier,hasUnbundled:S.hasUnbundled,eles:S.eles,srcPos:Y,srcRs:V,tgtPos:N,tgtRs:z,srcW:K,srcH:J,tgtW:q,tgtH:X,srcIntn:ce,tgtIntn:Ae,srcShape:$,tgtShape:Q,posPts:{x1:be.x2,y1:be.y2,x2:be.x1,y2:be.y1},intersectionPts:{x1:de.x2,y1:de.y2,x2:de.x1,y2:de.y1},vector:{x:-ze.x,y:-ze.y},vectorNorm:{x:-qe.x,y:-qe.y},vectorNormInverse:{x:-Re.x,y:-Re.y}}}var Me=me?M:S;ne.nodesOverlap=Me.nodesOverlap,ne.srcIntn=Me.srcIntn,ne.tgtIntn=Me.tgtIntn,ne.isRound=ie.startsWith("round"),a&&(R.isParent()||R.isChild()||I.isParent()||I.isChild())&&(R.parents().anySame(I)||I.parents().anySame(R)||R.same(I)&&R.isParent())?t.findCompoundLoopPoints(U,Me,F,Ee):R===I?t.findLoopPoints(U,Me,F,Ee):ie.endsWith("segments")?t.findSegmentsPoints(U,Me):ie.endsWith("taxi")?t.findTaxiPoints(U,Me):ie==="straight"||!Ee&&S.eles.length%2===1&&F===Math.floor(S.eles.length/2)?t.findStraightEdgePoints(U):t.findBezierPoints(U,Me,F,Ee,me),t.findEndpoints(U),t.tryToCorrectInvalidPoints(U,Me),t.checkForInvalidEdgeWarning(U),t.storeAllpts(U),t.storeEdgeProjections(U),t.calculateArrowAngles(U),t.recalculateEdgeLabelProjections(U),t.calculateLabelAngles(U)}},"_loop"),E=0;E0){var Ae=s,te=Cn(Ae,Kn(o)),ce=Cn(Ae,Kn(xe)),de=te;if(ce2){var be=Cn(Ae,{x:xe[2],y:xe[3]});be0){var H=d,G=Cn(H,Kn(o)),se=Cn(H,Kn(W)),Z=G;if(se2){var he=Cn(H,{x:W[2],y:W[3]});he=p||P){y={cp:x,segment:T};break}}if(y)break}var E=y.cp,k=y.segment,_=(p-b)/k.length,B=k.t1-k.t0,D=f?k.t0+B*_:k.t1-B*_;D=Ar(0,D,1),t=Zn(E.p0,E.p1,E.p2,D),h=Ny(E.p0,E.p1,E.p2,D);break}case"straight":case"segments":case"haystack":{for(var S=0,M,A,O,R,I=r.allpts.length,L=0;L+3=p));L+=2);var N=p-A,Y=N/M;Y=Ar(0,Y,1),t=Zp(O,R,Y),h=qh(O,R);break}}o("labelX",d,t.x),o("labelY",d,t.y),o("labelAutoAngle",d,h)}},"calculateEndProjection");s("source"),s("target"),this.applyLabelDimensions(e)}};Xt.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))};Xt.applyPrefixedLabelDimensions=function(e,t){var n=e._private,r=this.getLabelText(e,t),a=An(r,e._private.labelDimsKey);if(St(n.rscratch,"prefixedLabelDimsKey",t)!==a){Ht(n.rscratch,"prefixedLabelDimsKey",t,a);var i=this.calculateLabelDimensions(e,r),o=e.pstyle("line-height").pfValue,c=e.pstyle("text-wrap").strValue,u=St(n.rscratch,"labelWrapCachedLines",t)||[],s=c!=="wrap"?1:Math.max(u.length,1),d=i.height/s,h=d*o,f=i.width,p=i.height+(s-1)*(o-1)*d;Ht(n.rstyle,"labelWidth",t,f),Ht(n.rscratch,"labelWidth",t,f),Ht(n.rstyle,"labelHeight",t,p),Ht(n.rscratch,"labelHeight",t,p),Ht(n.rscratch,"labelLineHeight",t,h)}};Xt.getLabelText=function(e,t){var n=e._private,r=t?t+"-":"",a=e.pstyle(r+"label").strValue,i=e.pstyle("text-transform").value,o=l(function(X,K){return K?(Ht(n.rscratch,X,t,K),K):St(n.rscratch,X,t)},"rscratch");if(!a)return"";i=="none"||(i=="uppercase"?a=a.toUpperCase():i=="lowercase"&&(a=a.toLowerCase()));var c=e.pstyle("text-wrap").value;if(c==="wrap"){var u=o("labelKey");if(u!=null&&o("labelWrapKey")===u)return o("labelWrapCachedText");for(var s="​",d=a.split(` `),h=e.pstyle("text-max-width").pfValue,f=e.pstyle("text-overflow-wrap").value,p=f==="anywhere",g=[],y=/[\s\u200b]+|$/g,b=0;bh){var T=v.matchAll(y),P="",E=0,k=xt(T),_;try{for(k.s();!(_=k.n()).done;){var B=_.value,D=B[0],S=v.substring(E,B.index);E=B.index+D.length;var M=P.length===0?S:P+S+D,A=this.calculateLabelDimensions(e,M),O=A.width;O<=h?P+=S+D:(P&&g.push(P),P=S+D)}}catch(X){k.e(X)}finally{k.f()}P.match(/^[\s\u200b]+$/)||g.push(P)}else g.push(v)}o("labelWrapCachedLines",g),a=o("labelWrapCachedText",g.join(` `)),o("labelWrapKey",u)}else if(c==="ellipsis"){var R=e.pstyle("text-max-width").pfValue,I="",L="…",N=!1;if(this.calculateLabelDimensions(e,a).widthR)break;I+=a[Y],Y===a.length-1&&(N=!0)}return N||(I+=L),I}return a};Xt.getLabelJustification=function(e){var t=e.pstyle("text-justification").strValue,n=e.pstyle("text-halign").strValue;if(t==="auto")if(e.isNode())switch(n){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return t};Xt.calculateLabelDimensions=function(e,t){var n=this,r=n.cy.window(),a=r.document,i=0,o=e.pstyle("font-style").strValue,c=e.pstyle("font-size").pfValue,u=e.pstyle("font-family").strValue,s=e.pstyle("font-weight").strValue,d=this.labelCalcCanvas,h=this.labelCalcCanvasContext;if(!d){d=this.labelCalcCanvas=a.createElement("canvas"),h=this.labelCalcCanvasContext=d.getContext("2d");var f=d.style;f.position="absolute",f.left="-9999px",f.top="-9999px",f.zIndex="-1",f.visibility="hidden",f.pointerEvents="none"}h.font="".concat(o," ").concat(s," ").concat(c,"px ").concat(u);for(var p=0,g=0,y=t.split(` `),b=0;b1&&arguments[1]!==void 0?arguments[1]:!0;if(t.merge(i),o)for(var c=0;c=e.desktopTapThreshold2}var mt=i(C);Ke&&(e.hoverData.tapholdCancelled=!0);var en=l(function(){var zt=e.hoverData.dragDelta=e.hoverData.dragDelta||[];zt.length===0?(zt.push(Se[0]),zt.push(Se[1])):(zt[0]+=Se[0],zt[1]+=Se[1])},"updateDragDelta");W=!0,a(De,["mousemove","vmousemove","tapdrag"],C,{x:Z[0],y:Z[1]});var Je=l(function(zt){return{originalEvent:C,type:zt,position:{x:Z[0],y:Z[1]}}},"makeEvent"),kt=l(function(){e.data.bgActivePosistion=void 0,e.hoverData.selecting||H.emit(Je("boxstart")),ge[4]=1,e.hoverData.selecting=!0,e.redrawHint("select",!0),e.redraw()},"goIntoBoxMode");if(e.hoverData.which===3){if(Ke){var ra=Je("cxtdrag");fe?fe.emit(ra):H.emit(ra),e.hoverData.cxtDragged=!0,(!e.hoverData.cxtOver||De!==e.hoverData.cxtOver)&&(e.hoverData.cxtOver&&e.hoverData.cxtOver.emit(Je("cxtdragout")),e.hoverData.cxtOver=De,De&&De.emit(Je("cxtdragover")))}}else if(e.hoverData.dragging){if(W=!0,H.panningEnabled()&&H.userPanningEnabled()){var Fn;if(e.hoverData.justStartedPan){var aa=e.hoverData.mdownPos;Fn={x:(Z[0]-aa[0])*G,y:(Z[1]-aa[1])*G},e.hoverData.justStartedPan=!1}else Fn={x:Se[0]*G,y:Se[1]*G};H.panBy(Fn),H.emit(Je("dragpan")),e.hoverData.dragged=!0}Z=e.projectIntoViewport(C.clientX,C.clientY)}else if(ge[4]==1&&(fe==null||fe.pannable())){if(Ke){if(!e.hoverData.dragging&&H.boxSelectionEnabled()&&(mt||!H.panningEnabled()||!H.userPanningEnabled()))kt();else if(!e.hoverData.selecting&&H.panningEnabled()&&H.userPanningEnabled()){var xn=o(fe,e.hoverData.downs);xn&&(e.hoverData.dragging=!0,e.hoverData.justStartedPan=!0,ge[4]=0,e.data.bgActivePosistion=Kn(he),e.redrawHint("select",!0),e.redraw())}fe&&fe.pannable()&&fe.active()&&fe.unactivate()}}else{if(fe&&fe.pannable()&&fe.active()&&fe.unactivate(),(!fe||!fe.grabbed())&&De!=Te&&(Te&&a(Te,["mouseout","tapdragout"],C,{x:Z[0],y:Z[1]}),De&&a(De,["mouseover","tapdragover"],C,{x:Z[0],y:Z[1]}),e.hoverData.last=De),fe)if(Ke){if(H.boxSelectionEnabled()&&mt)fe&&fe.grabbed()&&(v(Ne),fe.emit(Je("freeon")),Ne.emit(Je("free")),e.dragData.didDrag&&(fe.emit(Je("dragfreeon")),Ne.emit(Je("dragfree")))),kt();else if(fe&&fe.grabbed()&&e.nodeIsDraggable(fe)){var Ct=!e.dragData.didDrag;Ct&&e.redrawHint("eles",!0),e.dragData.didDrag=!0,e.hoverData.draggingEles||y(Ne,{inDragLayer:!0});var ft={x:0,y:0};if(re(Se[0])&&re(Se[1])&&(ft.x+=Se[0],ft.y+=Se[1],Ct)){var Tt=e.hoverData.dragDelta;Tt&&re(Tt[0])&&re(Tt[1])&&(ft.x+=Tt[0],ft.y+=Tt[1])}e.hoverData.draggingEles=!0,Ne.silentShift(ft).emit(Je("position")).emit(Je("drag")),e.redrawHint("drag",!0),e.redraw()}}else en();W=!0}if(ge[2]=Z[0],ge[3]=Z[1],W)return C.stopPropagation&&C.stopPropagation(),C.preventDefault&&C.preventDefault(),!1}},"mousemoveHandler"),!1);var S,M,A;e.registerBinding(t,"mouseup",l(function(C){if(!(e.hoverData.which===1&&C.which!==1&&e.hoverData.capture)){var j=e.hoverData.capture;if(j){e.hoverData.capture=!1;var W=e.cy,H=e.projectIntoViewport(C.clientX,C.clientY),G=e.selection,se=e.findNearestElement(H[0],H[1],!0,!1),Z=e.dragData.possibleDragElements,he=e.hoverData.down,ue=i(C);e.data.bgActivePosistion&&(e.redrawHint("select",!0),e.redraw()),e.hoverData.tapholdCancelled=!0,e.data.bgActivePosistion=void 0,he&&he.unactivate();var ge=l(function(Ke){return{originalEvent:C,type:Ke,position:{x:H[0],y:H[1]}}},"makeEvent");if(e.hoverData.which===3){var De=ge("cxttapend");if(he?he.emit(De):W.emit(De),!e.hoverData.cxtDragged){var Te=ge("cxttap");he?he.emit(Te):W.emit(Te)}e.hoverData.cxtDragged=!1,e.hoverData.which=null}else if(e.hoverData.which===1){if(a(se,["mouseup","tapend","vmouseup"],C,{x:H[0],y:H[1]}),!e.dragData.didDrag&&!e.hoverData.dragged&&!e.hoverData.selecting&&!e.hoverData.isOverThresholdDrag&&(a(he,["click","tap","vclick"],C,{x:H[0],y:H[1]}),M=!1,C.timeStamp-A<=W.multiClickDebounceTime()?(S&&clearTimeout(S),M=!0,A=null,a(he,["dblclick","dbltap","vdblclick"],C,{x:H[0],y:H[1]})):(S=setTimeout(function(){M||a(he,["oneclick","onetap","voneclick"],C,{x:H[0],y:H[1]})},W.multiClickDebounceTime()),A=C.timeStamp)),he==null&&!e.dragData.didDrag&&!e.hoverData.selecting&&!e.hoverData.dragged&&!i(C)&&(W.$(n).unselect(["tapunselect"]),Z.length>0&&e.redrawHint("eles",!0),e.dragData.possibleDragElements=Z=W.collection()),se==he&&!e.dragData.didDrag&&!e.hoverData.selecting&&se!=null&&se._private.selectable&&(e.hoverData.dragging||(W.selectionType()==="additive"||ue?se.selected()?se.unselect(["tapunselect"]):se.select(["tapselect"]):ue||(W.$(n).unmerge(se).unselect(["tapunselect"]),se.select(["tapselect"]))),e.redrawHint("eles",!0)),e.hoverData.selecting){var fe=W.collection(e.getAllInBox(G[0],G[1],G[2],G[3]));e.redrawHint("select",!0),fe.length>0&&e.redrawHint("eles",!0),W.emit(ge("boxend"));var Se=l(function(Ke){return Ke.selectable()&&!Ke.selected()},"eleWouldBeSelected");W.selectionType()==="additive"||ue||W.$(n).unmerge(fe).unselect(),fe.emit(ge("box")).stdFilter(Se).select().emit(ge("boxselect")),e.redraw()}if(e.hoverData.dragging&&(e.hoverData.dragging=!1,e.redrawHint("select",!0),e.redrawHint("eles",!0),e.redraw()),!G[4]){e.redrawHint("drag",!0),e.redrawHint("eles",!0);var Ne=he&&he.grabbed();v(Z),Ne&&(he.emit(ge("freeon")),Z.emit(ge("free")),e.dragData.didDrag&&(he.emit(ge("dragfreeon")),Z.emit(ge("dragfree"))))}}G[4]=0,e.hoverData.down=null,e.hoverData.cxtStarted=!1,e.hoverData.draggingEles=!1,e.hoverData.selecting=!1,e.hoverData.isOverThresholdDrag=!1,e.dragData.didDrag=!1,e.hoverData.dragged=!1,e.hoverData.dragDelta=[],e.hoverData.mdownPos=null,e.hoverData.mdownGPos=null,e.hoverData.which=null}}},"mouseupHandler"),!1);var O=[],R=4,I,L=1e5,N=l(function(C,j){for(var W=0;W=R){var H=O;if(I=N(H,5),!I){var G=Math.abs(H[0]);I=Y(H)&&G>5}if(I)for(var se=0;se5&&(W=Ss(W)*5),Te=W/-250,I&&(Te/=L,Te*=3),Te=Te*e.wheelSensitivity;var fe=C.deltaMode===1;fe&&(Te*=33);var Se=Z.zoom()*Math.pow(10,Te);C.type==="gesturechange"&&(Se=e.gestureStartZoom*C.scale),Z.zoom({level:Se,renderedPosition:{x:De[0],y:De[1]}}),Z.emit({type:C.type==="gesturechange"?"pinchzoom":"scrollzoom",originalEvent:C,position:{x:ge[0],y:ge[1]}})}}}},"wheelHandler");e.registerBinding(e.container,"wheel",q,!0),e.registerBinding(t,"scroll",l(function(C){e.scrollingPage=!0,clearTimeout(e.scrollingPageTimeout),e.scrollingPageTimeout=setTimeout(function(){e.scrollingPage=!1},250)},"scrollHandler"),!0),e.registerBinding(e.container,"gesturestart",l(function(C){e.gestureStartZoom=e.cy.zoom(),e.hasTouchStarted||C.preventDefault()},"gestureStartHandler"),!0),e.registerBinding(e.container,"gesturechange",function(C){e.hasTouchStarted||q(C)},!0),e.registerBinding(e.container,"mouseout",l(function(C){var j=e.projectIntoViewport(C.clientX,C.clientY);e.cy.emit({originalEvent:C,type:"mouseout",position:{x:j[0],y:j[1]}})},"mouseOutHandler"),!1),e.registerBinding(e.container,"mouseover",l(function(C){var j=e.projectIntoViewport(C.clientX,C.clientY);e.cy.emit({originalEvent:C,type:"mouseover",position:{x:j[0],y:j[1]}})},"mouseOverHandler"),!1);var X,K,J,Q,$,ee,ae,V,z,F,U,ne,ie,Ee=l(function(C,j,W,H){return Math.sqrt((W-C)*(W-C)+(H-j)*(H-j))},"distance"),me=l(function(C,j,W,H){return(W-C)*(W-C)+(H-j)*(H-j)},"distanceSq"),xe;e.registerBinding(e.container,"touchstart",xe=l(function(C){if(e.hasTouchStarted=!0,!!B(C)){x(),e.touchData.capture=!0,e.data.bgActivePosistion=void 0;var j=e.cy,W=e.touchData.now,H=e.touchData.earlier;if(C.touches[0]){var G=e.projectIntoViewport(C.touches[0].clientX,C.touches[0].clientY);W[0]=G[0],W[1]=G[1]}if(C.touches[1]){var G=e.projectIntoViewport(C.touches[1].clientX,C.touches[1].clientY);W[2]=G[0],W[3]=G[1]}if(C.touches[2]){var G=e.projectIntoViewport(C.touches[2].clientX,C.touches[2].clientY);W[4]=G[0],W[5]=G[1]}var se=l(function($e){return{originalEvent:C,type:$e,position:{x:W[0],y:W[1]}}},"makeEvent");if(C.touches[1]){e.touchData.singleTouchMoved=!0,v(e.dragData.touchDragEles);var Z=e.findContainerClientCoords();z=Z[0],F=Z[1],U=Z[2],ne=Z[3],X=C.touches[0].clientX-z,K=C.touches[0].clientY-F,J=C.touches[1].clientX-z,Q=C.touches[1].clientY-F,ie=0<=X&&X<=U&&0<=J&&J<=U&&0<=K&&K<=ne&&0<=Q&&Q<=ne;var he=j.pan(),ue=j.zoom();$=Ee(X,K,J,Q),ee=me(X,K,J,Q),ae=[(X+J)/2,(K+Q)/2],V=[(ae[0]-he.x)/ue,(ae[1]-he.y)/ue];var ge=200,De=ge*ge;if(ee=1){for(var yt=e.touchData.startPosition=[null,null,null,null,null,null],Ze=0;Ze=e.touchTapThreshold2}if(j&&e.touchData.cxt){C.preventDefault();var Ze=C.touches[0].clientX-z,at=C.touches[0].clientY-F,$e=C.touches[1].clientX-z,mt=C.touches[1].clientY-F,en=me(Ze,at,$e,mt),Je=en/ee,kt=150,ra=kt*kt,Fn=1.5,aa=Fn*Fn;if(Je>=aa||en>=ra){e.touchData.cxt=!1,e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var xn=ue("cxttapend");e.touchData.start?(e.touchData.start.unactivate().emit(xn),e.touchData.start=null):H.emit(xn)}}if(j&&e.touchData.cxt){var xn=ue("cxtdrag");e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.touchData.start?e.touchData.start.emit(xn):H.emit(xn),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxtDragged=!0;var Ct=e.findNearestElement(G[0],G[1],!0,!0);(!e.touchData.cxtOver||Ct!==e.touchData.cxtOver)&&(e.touchData.cxtOver&&e.touchData.cxtOver.emit(ue("cxtdragout")),e.touchData.cxtOver=Ct,Ct&&Ct.emit(ue("cxtdragover")))}else if(j&&C.touches[2]&&H.boxSelectionEnabled())C.preventDefault(),e.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,e.touchData.selecting||H.emit(ue("boxstart")),e.touchData.selecting=!0,e.touchData.didSelect=!0,W[4]=1,!W||W.length===0||W[0]===void 0?(W[0]=(G[0]+G[2]+G[4])/3,W[1]=(G[1]+G[3]+G[5])/3,W[2]=(G[0]+G[2]+G[4])/3+1,W[3]=(G[1]+G[3]+G[5])/3+1):(W[2]=(G[0]+G[2]+G[4])/3,W[3]=(G[1]+G[3]+G[5])/3),e.redrawHint("select",!0),e.redraw();else if(j&&C.touches[1]&&!e.touchData.didSelect&&H.zoomingEnabled()&&H.panningEnabled()&&H.userZoomingEnabled()&&H.userPanningEnabled()){C.preventDefault(),e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var ft=e.dragData.touchDragEles;if(ft){e.redrawHint("drag",!0);for(var Tt=0;Tt0&&!e.hoverData.draggingEles&&!e.swipePanning&&e.data.bgActivePosistion!=null&&(e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.redraw())}},"touchmoveHandler"),!1);var te;e.registerBinding(t,"touchcancel",te=l(function(C){var j=e.touchData.start;e.touchData.capture=!1,j&&j.unactivate()},"touchcancelHandler"));var ce,de,be,we;if(e.registerBinding(t,"touchend",ce=l(function(C){var j=e.touchData.start,W=e.touchData.capture;if(W)C.touches.length===0&&(e.touchData.capture=!1),C.preventDefault();else return;var H=e.selection;e.swipePanning=!1,e.hoverData.draggingEles=!1;var G=e.cy,se=G.zoom(),Z=e.touchData.now,he=e.touchData.earlier;if(C.touches[0]){var ue=e.projectIntoViewport(C.touches[0].clientX,C.touches[0].clientY);Z[0]=ue[0],Z[1]=ue[1]}if(C.touches[1]){var ue=e.projectIntoViewport(C.touches[1].clientX,C.touches[1].clientY);Z[2]=ue[0],Z[3]=ue[1]}if(C.touches[2]){var ue=e.projectIntoViewport(C.touches[2].clientX,C.touches[2].clientY);Z[4]=ue[0],Z[5]=ue[1]}var ge=l(function(kt){return{originalEvent:C,type:kt,position:{x:Z[0],y:Z[1]}}},"makeEvent");j&&j.unactivate();var De;if(e.touchData.cxt){if(De=ge("cxttapend"),j?j.emit(De):G.emit(De),!e.touchData.cxtDragged){var Te=ge("cxttap");j?j.emit(Te):G.emit(Te)}e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!1,e.touchData.start=null,e.redraw();return}if(!C.touches[2]&&G.boxSelectionEnabled()&&e.touchData.selecting){e.touchData.selecting=!1;var fe=G.collection(e.getAllInBox(H[0],H[1],H[2],H[3]));H[0]=void 0,H[1]=void 0,H[2]=void 0,H[3]=void 0,H[4]=0,e.redrawHint("select",!0),G.emit(ge("boxend"));var Se=l(function(kt){return kt.selectable()&&!kt.selected()},"eleWouldBeSelected");fe.emit(ge("box")).stdFilter(Se).select().emit(ge("boxselect")),fe.nonempty()&&e.redrawHint("eles",!0),e.redraw()}if(j?.unactivate(),C.touches[2])e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);else if(!C.touches[1]&&!C.touches[0]&&!C.touches[0]){e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var Ne=e.dragData.touchDragEles;if(j!=null){var Ke=j._private.grabbed;v(Ne),e.redrawHint("drag",!0),e.redrawHint("eles",!0),Ke&&(j.emit(ge("freeon")),Ne.emit(ge("free")),e.dragData.didDrag&&(j.emit(ge("dragfreeon")),Ne.emit(ge("dragfree")))),a(j,["touchend","tapend","vmouseup","tapdragout"],C,{x:Z[0],y:Z[1]}),j.unactivate(),e.touchData.start=null}else{var lt=e.findNearestElement(Z[0],Z[1],!0,!0);a(lt,["touchend","tapend","vmouseup","tapdragout"],C,{x:Z[0],y:Z[1]})}var yt=e.touchData.startPosition[0]-Z[0],Ze=yt*yt,at=e.touchData.startPosition[1]-Z[1],$e=at*at,mt=Ze+$e,en=mt*se*se;e.touchData.singleTouchMoved||(j||G.$(":selected").unselect(["tapunselect"]),a(j,["tap","vclick"],C,{x:Z[0],y:Z[1]}),de=!1,C.timeStamp-we<=G.multiClickDebounceTime()?(be&&clearTimeout(be),de=!0,we=null,a(j,["dbltap","vdblclick"],C,{x:Z[0],y:Z[1]})):(be=setTimeout(function(){de||a(j,["onetap","voneclick"],C,{x:Z[0],y:Z[1]})},G.multiClickDebounceTime()),we=C.timeStamp)),j!=null&&!e.dragData.didDrag&&j._private.selectable&&en"u"){var Ce=[],ke=l(function(C){return{clientX:C.clientX,clientY:C.clientY,force:1,identifier:C.pointerId,pageX:C.pageX,pageY:C.pageY,radiusX:C.width/2,radiusY:C.height/2,screenX:C.screenX,screenY:C.screenY,target:C.target}},"makeTouch"),ze=l(function(C){return{event:C,touch:ke(C)}},"makePointer"),qe=l(function(C){Ce.push(ze(C))},"addPointer"),Re=l(function(C){for(var j=0;j0)return Y[0]}return null},"getCurveT"),p=Object.keys(h),g=0;g0?f:gd(a,i,e,t,n,r,o,c)},"intersectLine"),checkPoint:l(function(e,t,n,r,a,i,o,c){c=c==="auto"?fn(r,a):c;var u=2*c;if(Ut(e,t,this.points,i,o,r,a-u,[0,-1],n)||Ut(e,t,this.points,i,o,r-u,a,[0,-1],n))return!0;var s=r/2+2*n,d=a/2+2*n,h=[i-s,o-d,i-s,o,i+s,o,i+s,o-d];return!!(Pt(e,t,h)||Bn(e,t,u,u,i+r/2-c,o+a/2-c,n)||Bn(e,t,u,u,i-r/2+c,o+a/2-c,n))},"checkPoint")}};Jt.registerNodeShapes=function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon("triangle",bt(3,0)),this.generateRoundPolygon("round-triangle",bt(3,0)),this.generatePolygon("rectangle",bt(4,0)),e.square=e.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var n=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",n),this.generateRoundPolygon("round-diamond",n)}this.generatePolygon("pentagon",bt(5,0)),this.generateRoundPolygon("round-pentagon",bt(5,0)),this.generatePolygon("hexagon",bt(6,0)),this.generateRoundPolygon("round-hexagon",bt(6,0)),this.generatePolygon("heptagon",bt(7,0)),this.generateRoundPolygon("round-heptagon",bt(7,0)),this.generatePolygon("octagon",bt(8,0)),this.generateRoundPolygon("round-octagon",bt(8,0));var r=new Array(20);{var a=Fo(5,0),i=Fo(5,Math.PI/5),o=.5*(3-Math.sqrt(5));o*=1.57;for(var c=0;c=e.deqFastCost*v)break}else if(o){if(y>=e.deqCost*d||y>=e.deqAvgCost*s)break}else if(b>=e.deqNoDrawCost*Mo)break;var m=e.deq(t,p,f);if(m.length>0)for(var x=0;x0&&(e.onDeqd(t,h),!o&&e.shouldRedraw(t,h,p,f)&&r())},"dequeue"),i=e.priority||Es;n.beforeRender(a,i(t))}},"setupDequeueingImpl")},"setupDequeueing")},Oy=(function(){function e(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:La;Zt(this,e),this.idsByKey=new Kt,this.keyForId=new Kt,this.cachesByLvl=new Kt,this.lvls=[],this.getKey=t,this.doesEleInvalidateKey=n}return l(e,"ElementTextureCacheLookup"),$t(e,[{key:"getIdsFor",value:l(function(t){t==null&&We("Can not get id list for null key");var n=this.idsByKey,r=this.idsByKey.get(t);return r||(r=new sr,n.set(t,r)),r},"getIdsFor")},{key:"addIdForKey",value:l(function(t,n){t!=null&&this.getIdsFor(t).add(n)},"addIdForKey")},{key:"deleteIdForKey",value:l(function(t,n){t!=null&&this.getIdsFor(t).delete(n)},"deleteIdForKey")},{key:"getNumberOfIdsForKey",value:l(function(t){return t==null?0:this.getIdsFor(t).size},"getNumberOfIdsForKey")},{key:"updateKeyMappingFor",value:l(function(t){var n=t.id(),r=this.keyForId.get(n),a=this.getKey(t);this.deleteIdForKey(r,n),this.addIdForKey(a,n),this.keyForId.set(n,a)},"updateKeyMappingFor")},{key:"deleteKeyMappingFor",value:l(function(t){var n=t.id(),r=this.keyForId.get(n);this.deleteIdForKey(r,n),this.keyForId.delete(n)},"deleteKeyMappingFor")},{key:"keyHasChangedFor",value:l(function(t){var n=t.id(),r=this.keyForId.get(n),a=this.getKey(t);return r!==a},"keyHasChangedFor")},{key:"isInvalid",value:l(function(t){return this.keyHasChangedFor(t)||this.doesEleInvalidateKey(t)},"isInvalid")},{key:"getCachesAt",value:l(function(t){var n=this.cachesByLvl,r=this.lvls,a=n.get(t);return a||(a=new Kt,n.set(t,a),r.push(t)),a},"getCachesAt")},{key:"getCache",value:l(function(t,n){return this.getCachesAt(n).get(t)},"getCache")},{key:"get",value:l(function(t,n){var r=this.getKey(t),a=this.getCache(r,n);return a!=null&&this.updateKeyMappingFor(t),a},"get")},{key:"getForCachedKey",value:l(function(t,n){var r=this.keyForId.get(t.id()),a=this.getCache(r,n);return a},"getForCachedKey")},{key:"hasCache",value:l(function(t,n){return this.getCachesAt(n).has(t)},"hasCache")},{key:"has",value:l(function(t,n){var r=this.getKey(t);return this.hasCache(r,n)},"has")},{key:"setCache",value:l(function(t,n,r){r.key=t,this.getCachesAt(n).set(t,r)},"setCache")},{key:"set",value:l(function(t,n,r){var a=this.getKey(t);this.setCache(a,n,r),this.updateKeyMappingFor(t)},"set")},{key:"deleteCache",value:l(function(t,n){this.getCachesAt(n).delete(t)},"deleteCache")},{key:"delete",value:l(function(t,n){var r=this.getKey(t);this.deleteCache(r,n)},"_delete")},{key:"invalidateKey",value:l(function(t){var n=this;this.lvls.forEach(function(r){return n.deleteCache(t,r)})},"invalidateKey")},{key:"invalidate",value:l(function(t){var n=t.id(),r=this.keyForId.get(n);this.deleteKeyMappingFor(t);var a=this.doesEleInvalidateKey(t);return a&&this.invalidateKey(r),a||this.getNumberOfIdsForKey(r)===0},"invalidate")}])})(),yc=25,ya=50,Ba=-4,os=3,Kh=7.99,zy=8,Fy=1024,Vy=1024,qy=1024,jy=.2,Xy=.8,Yy=10,Wy=.15,Hy=.1,Ky=.9,Gy=.9,Uy=100,Zy=1,Un={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},$y=dt({getKey:null,doesEleInvalidateKey:La,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:ad,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Er=l(function(e,t){var n=this;n.renderer=e,n.onDequeues=[];var r=$y(t);ve(n,r),n.lookup=new Oy(r.getKey,r.doesEleInvalidateKey),n.setupDequeueing()},"ElementTextureCache"),rt=Er.prototype;rt.reasons=Un;rt.getTextureQueue=function(e){var t=this;return t.eleImgCaches=t.eleImgCaches||{},t.eleImgCaches[e]=t.eleImgCaches[e]||[]};rt.getRetiredTextureQueue=function(e){var t=this,n=t.eleImgCaches.retired=t.eleImgCaches.retired||{},r=n[e]=n[e]||[];return r};rt.getElementQueue=function(){var e=this,t=e.eleCacheQueue=e.eleCacheQueue||new jr(function(n,r){return r.reqs-n.reqs});return t};rt.getElementKeyToQueue=function(){var e=this,t=e.eleKeyToCacheQueue=e.eleKeyToCacheQueue||{};return t};rt.getElement=function(e,t,n,r,a){var i=this,o=this.renderer,c=o.cy.zoom(),u=this.lookup;if(!t||t.w===0||t.h===0||isNaN(t.w)||isNaN(t.h)||!e.visible()||e.removed()||!i.allowEdgeTxrCaching&&e.isEdge()||!i.allowParentTxrCaching&&e.isParent())return null;if(r==null&&(r=Math.ceil(Ts(c*n))),r=Kh||r>os)return null;var s=Math.pow(2,r),d=t.h*s,h=t.w*s,f=o.eleTextBiggerThanMin(e,s);if(!this.isVisible(e,f))return null;var p=u.get(e,r);if(p&&p.invalidated&&(p.invalidated=!1,p.texture.invalidatedWidth-=p.width),p)return p;var g;if(d<=yc?g=yc:d<=ya?g=ya:g=Math.ceil(d/ya)*ya,d>qy||h>Vy)return null;var y=i.getTextureQueue(g),b=y[y.length-2],v=l(function(){return i.recycleTexture(g,h)||i.addTexture(g,h)},"addNewTxr");b||(b=y[y.length-1]),b||(b=v()),b.width-b.usedWidthr;D--)_=i.getElement(e,t,n,D,Un.downscale);B()}else return i.queueElement(e,P.level-1),P;else{var S;if(!x&&!w&&!T)for(var M=r-1;M>=Ba;M--){var A=u.get(e,M);if(A){S=A;break}}if(m(S))return i.queueElement(e,r),S;b.context.translate(b.usedWidth,0),b.context.scale(s,s),this.drawElement(b.context,e,t,f,!1),b.context.scale(1/s,1/s),b.context.translate(-b.usedWidth,0)}return p={x:b.usedWidth,texture:b,level:r,scale:s,width:h,height:d,scaledLabelShown:f},b.usedWidth+=Math.ceil(h+zy),b.eleCaches.push(p),u.set(e,r,p),i.checkTextureFullness(b),p};rt.invalidateElements=function(e){for(var t=0;t=jy*e.width&&this.retireTexture(e)};rt.checkTextureFullness=function(e){var t=this,n=t.getTextureQueue(e.height);e.usedWidth/e.width>Xy&&e.fullnessChecks>=Yy?hn(n,e):e.fullnessChecks++};rt.retireTexture=function(e){var t=this,n=e.height,r=t.getTextureQueue(n),a=this.lookup;hn(r,e),e.retired=!0;for(var i=e.eleCaches,o=0;o=t)return o.retired=!1,o.usedWidth=0,o.invalidatedWidth=0,o.fullnessChecks=0,Cs(o.eleCaches),o.context.setTransform(1,0,0,1,0,0),o.context.clearRect(0,0,o.width,o.height),hn(a,o),r.push(o),o}};rt.queueElement=function(e,t){var n=this,r=n.getElementQueue(),a=n.getElementKeyToQueue(),i=this.getKey(e),o=a[i];if(o)o.level=Math.max(o.level,t),o.eles.merge(e),o.reqs++,r.updateItem(o);else{var c={eles:e.spawn().merge(e),level:t,reqs:1,key:i};r.push(c),a[i]=c}};rt.dequeue=function(e){for(var t=this,n=t.getElementQueue(),r=t.getElementKeyToQueue(),a=[],i=t.lookup,o=0;o0;o++){var c=n.pop(),u=c.key,s=c.eles[0],d=i.hasCache(s,c.level);if(r[u]=null,!d){a.push(c);var h=t.getBoundingBox(s);t.getElement(s,h,e,c.level,Un.dequeue)}}return a};rt.removeFromQueue=function(e){var t=this,n=t.getElementQueue(),r=t.getElementKeyToQueue(),a=this.getKey(e),i=r[a];i!=null&&(i.eles.length===1?(i.reqs=ws,n.updateItem(i),n.pop(),r[a]=null):i.eles.unmerge(e))};rt.onDequeue=function(e){this.onDequeues.push(e)};rt.offDequeue=function(e){hn(this.onDequeues,e)};rt.setupDequeueing=Hh.setupDequeueing({deqRedrawThreshold:Uy,deqCost:Wy,deqAvgCost:Hy,deqNoDrawCost:Ky,deqFastCost:Gy,deq:l(function(e,t,n){return e.dequeue(t,n)},"deq"),onDeqd:l(function(e,t){for(var n=0;n=Qy||n>Ya)return null}r.validateLayersElesOrdering(n,e);var u=r.layersByLevel,s=Math.pow(2,n),d=u[n]=u[n]||[],h,f=r.levelIsComplete(n,e),p,g=l(function(){var _=l(function(M){if(r.validateLayersElesOrdering(M,e),r.levelIsComplete(M,e))return p=u[M],!0},"canUseAsTmpLvl"),B=l(function(M){if(!p)for(var A=n+M;Tr<=A&&A<=Ya&&!_(A);A+=M);},"checkLvls");B(1),B(-1);for(var D=d.length-1;D>=0;D--){var S=d[D];S.invalid&&hn(d,S)}},"checkTempLevels");if(!f)g();else return d;var y=l(function(){if(!h){h=wt();for(var _=0;_bc||S>bc)return null;var M=D*S;if(M>sm)return null;var A=r.makeLayer(h,n);if(B!=null){var O=d.indexOf(B)+1;d.splice(O,0,A)}else(_.insert===void 0||_.insert)&&d.unshift(A);return A},"makeLayer");if(r.skipping&&!c)return null;for(var v=null,m=e.length/Jy,x=!c,w=0;w=m||!hd(v.bb,T.boundingBox()))&&(v=b({insert:!0,after:v}),!v))return null;p||x?r.queueLayer(v,T):r.drawEleInLayer(v,T,n,t),v.eles.push(T),E[n]=v}return p||(x?null:d)};ht.getEleLevelForLayerLevel=function(e,t){return e};ht.drawEleInLayer=function(e,t,n,r){var a=this,i=this.renderer,o=e.context,c=t.boundingBox();c.w===0||c.h===0||!t.visible()||(n=a.getEleLevelForLayerLevel(n,r),i.setImgSmoothing(o,!1),i.drawCachedElement(o,t,null,null,n,lm),i.setImgSmoothing(o,!0))};ht.levelIsComplete=function(e,t){var n=this,r=n.layersByLevel[e];if(!r||r.length===0)return!1;for(var a=0,i=0;i0||o.invalid)return!1;a+=o.eles.length}return a===t.length};ht.validateLayersElesOrdering=function(e,t){var n=this.layersByLevel[e];if(n)for(var r=0;r0){t=!0;break}}return t};ht.invalidateElements=function(e){var t=this;e.length!==0&&(t.lastInvalidationTime=Gt(),!(e.length===0||!t.haveLayers())&&t.updateElementsInLayers(e,l(function(n,r,a){t.invalidateLayer(n)},"invalAssocLayers")))};ht.invalidateLayer=function(e){if(this.lastInvalidationTime=Gt(),!e.invalid){var t=e.level,n=e.eles,r=this.layersByLevel[t];hn(r,e),e.elesQueue=[],e.invalid=!0,e.replacement&&(e.replacement.invalid=!0);for(var a=0;a3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,o=this,c=t._private.rscratch;if(!(i&&!t.visible())&&!(c.badLine||c.allpts==null||isNaN(c.allpts[0]))){var u;n&&(u=n,e.translate(-u.x1,-u.y1));var s=i?t.pstyle("opacity").value:1,d=i?t.pstyle("line-opacity").value:1,h=t.pstyle("curve-style").value,f=t.pstyle("line-style").value,p=t.pstyle("width").pfValue,g=t.pstyle("line-cap").value,y=t.pstyle("line-outline-width").value,b=t.pstyle("line-outline-color").value,v=s*d,m=s*d,x=l(function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:v;h==="straight-triangle"?(o.eleStrokeStyle(e,t,A),o.drawEdgeTrianglePath(t,e,c.allpts)):(e.lineWidth=p,e.lineCap=g,o.eleStrokeStyle(e,t,A),o.drawEdgePath(t,e,c.allpts,f),e.lineCap="butt")},"drawLine"),w=l(function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:v;if(e.lineWidth=p+y,e.lineCap=g,y>0)o.colorStrokeStyle(e,b[0],b[1],b[2],A);else{e.lineCap="butt";return}h==="straight-triangle"?o.drawEdgeTrianglePath(t,e,c.allpts):(o.drawEdgePath(t,e,c.allpts,f),e.lineCap="butt")},"drawLineOutline"),T=l(function(){a&&o.drawEdgeOverlay(e,t)},"drawOverlay"),P=l(function(){a&&o.drawEdgeUnderlay(e,t)},"drawUnderlay"),E=l(function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:m;o.drawArrowheads(e,t,A)},"drawArrows"),k=l(function(){o.drawElementText(e,t,null,r)},"drawText");e.lineJoin="round";var _=t.pstyle("ghost").value==="yes";if(_){var B=t.pstyle("ghost-offset-x").pfValue,D=t.pstyle("ghost-offset-y").pfValue,S=t.pstyle("ghost-opacity").value,M=v*S;e.translate(B,D),x(M),E(M),e.translate(-B,-D)}else w();P(),x(),E(),T(),k(),n&&e.translate(u.x1,u.y1)}};var ef=l(function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(t,n){if(n.visible()){var r=n.pstyle("".concat(e,"-opacity")).value;if(r!==0){var a=this,i=a.usePaths(),o=n._private.rscratch,c=n.pstyle("".concat(e,"-padding")).pfValue,u=2*c,s=n.pstyle("".concat(e,"-color")).value;t.lineWidth=u,o.edgeType==="self"&&!i?t.lineCap="butt":t.lineCap="round",a.colorStrokeStyle(t,s[0],s[1],s[2],r),a.drawEdgePath(n,t,o.allpts,"solid")}}}},"drawEdgeOverlayUnderlay");Qt.drawEdgeOverlay=ef("overlay");Qt.drawEdgeUnderlay=ef("underlay");Qt.drawEdgePath=function(e,t,n,r){var a=e._private.rscratch,i=t,o,c=!1,u=this.usePaths(),s=e.pstyle("line-dash-pattern").pfValue,d=e.pstyle("line-dash-offset").pfValue;if(u){var h=n.join("$"),f=a.pathCacheKey&&a.pathCacheKey===h;f?(o=t=a.pathCache,c=!0):(o=t=new Path2D,a.pathCacheKey=h,a.pathCache=o)}if(i.setLineDash)switch(r){case"dotted":i.setLineDash([1,1]);break;case"dashed":i.setLineDash(s),i.lineDashOffset=d;break;case"solid":i.setLineDash([]);break}if(!c&&!a.badLine)switch(t.beginPath&&t.beginPath(),t.moveTo(n[0],n[1]),a.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var p=2;p+35&&arguments[5]!==void 0?arguments[5]:!0,o=this;if(r==null){if(i&&!o.eleTextBiggerThanMin(t))return}else if(r===!1)return;if(t.isNode()){var c=t.pstyle("label");if(!c||!c.value)return;var u=o.getLabelJustification(t);e.textAlign=u,e.textBaseline="bottom"}else{var s=t.element()._private.rscratch.badLine,d=t.pstyle("label"),h=t.pstyle("source-label"),f=t.pstyle("target-label");if(s||(!d||!d.value)&&(!h||!h.value)&&(!f||!f.value))return;e.textAlign="center",e.textBaseline="bottom"}var p=!n,g;n&&(g=n,e.translate(-g.x1,-g.y1)),a==null?(o.drawText(e,t,null,p,i),t.isEdge()&&(o.drawText(e,t,"source",p,i),o.drawText(e,t,"target",p,i))):o.drawText(e,t,a,p,i),n&&e.translate(g.x1,g.y1)};zn.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var n=0;n2&&arguments[2]!==void 0?arguments[2]:!0,r=t.pstyle("font-style").strValue,a=t.pstyle("font-size").pfValue+"px",i=t.pstyle("font-family").strValue,o=t.pstyle("font-weight").strValue,c=n?t.effectiveOpacity()*t.pstyle("text-opacity").value:1,u=t.pstyle("text-outline-opacity").value*c,s=t.pstyle("color").value,d=t.pstyle("text-outline-color").value;e.font=r+" "+o+" "+a+" "+i,e.lineJoin="round",this.colorFillStyle(e,s[0],s[1],s[2],c),this.colorStrokeStyle(e,d[0],d[1],d[2],u)};function tf(e,t,n,r,a){var i=Math.min(r,a),o=i/2,c=t+r/2,u=n+a/2;e.beginPath(),e.arc(c,u,o,0,Math.PI*2),e.closePath()}l(tf,"circle");function ls(e,t,n,r,a){var i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:5,o=Math.min(i,r/2,a/2);e.beginPath(),e.moveTo(t+o,n),e.lineTo(t+r-o,n),e.quadraticCurveTo(t+r,n,t+r,n+o),e.lineTo(t+r,n+a-o),e.quadraticCurveTo(t+r,n+a,t+r-o,n+a),e.lineTo(t+o,n+a),e.quadraticCurveTo(t,n+a,t,n+a-o),e.lineTo(t,n+o),e.quadraticCurveTo(t,n,t+o,n),e.closePath()}l(ls,"roundRect");zn.getTextAngle=function(e,t){var n,r=e._private,a=r.rscratch,i=t?t+"-":"",o=e.pstyle(i+"text-rotation");if(o.strValue==="autorotate"){var c=St(a,"labelAngle",t);n=e.isEdge()?c:0}else o.strValue==="none"?n=0:n=o.pfValue;return n};zn.drawText=function(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=t._private,o=i.rscratch,c=a?t.effectiveOpacity():1;if(!(a&&(c===0||t.pstyle("text-opacity").value===0))){n==="main"&&(n=null);var u=St(o,"labelX",n),s=St(o,"labelY",n),d,h,f=this.getLabelText(t,n);if(f!=null&&f!==""&&!isNaN(u)&&!isNaN(s)){this.setupTextStyle(e,t,a);var p=n?n+"-":"",g=St(o,"labelWidth",n),y=St(o,"labelHeight",n),b=t.pstyle(p+"text-margin-x").pfValue,v=t.pstyle(p+"text-margin-y").pfValue,m=t.isEdge(),x=t.pstyle("text-halign").value,w=t.pstyle("text-valign").value;m&&(x="center",w="center"),u+=b,s+=v;var T;switch(r?T=this.getTextAngle(t,n):T=0,T!==0&&(d=u,h=s,e.translate(d,h),e.rotate(T),u=0,s=0),w){case"top":break;case"center":s+=y/2;break;case"bottom":s+=y;break}var P=t.pstyle("text-background-opacity").value,E=t.pstyle("text-border-opacity").value,k=t.pstyle("text-border-width").pfValue,_=t.pstyle("text-background-padding").pfValue,B=t.pstyle("text-background-shape").strValue,D=B==="round-rectangle"||B==="roundrectangle",S=B==="circle",M=2;if(P>0||k>0&&E>0){var A=e.fillStyle,O=e.strokeStyle,R=e.lineWidth,I=t.pstyle("text-background-color").value,L=t.pstyle("text-border-color").value,N=t.pstyle("text-border-style").value,Y=P>0,q=k>0&&E>0,X=u-_;switch(x){case"left":X-=g;break;case"center":X-=g/2;break}var K=s-y-_,J=g+2*_,Q=y+2*_;if(Y&&(e.fillStyle="rgba(".concat(I[0],",").concat(I[1],",").concat(I[2],",").concat(P*c,")")),q&&(e.strokeStyle="rgba(".concat(L[0],",").concat(L[1],",").concat(L[2],",").concat(E*c,")"),e.lineWidth=k,e.setLineDash))switch(N){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=k/4,e.setLineDash([]);break;case"solid":default:e.setLineDash([]);break}if(D?(e.beginPath(),ls(e,X,K,J,Q,M)):S?(e.beginPath(),tf(e,X,K,J,Q)):(e.beginPath(),e.rect(X,K,J,Q)),Y&&e.fill(),q&&e.stroke(),q&&N==="double"){var $=k/2;e.beginPath(),D?ls(e,X+$,K+$,J-2*$,Q-2*$,M):e.rect(X+$,K+$,J-2*$,Q-2*$),e.stroke()}e.fillStyle=A,e.strokeStyle=O,e.lineWidth=R,e.setLineDash&&e.setLineDash([])}var ee=2*t.pstyle("text-outline-width").pfValue;if(ee>0&&(e.lineWidth=ee),t.pstyle("text-wrap").value==="wrap"){var ae=St(o,"labelWrapCachedLines",n),V=St(o,"labelLineHeight",n),z=g/2,F=this.getLabelJustification(t);switch(F==="auto"||(x==="left"?F==="left"?u+=-g:F==="center"&&(u+=-z):x==="center"?F==="left"?u+=-z:F==="right"&&(u+=z):x==="right"&&(F==="center"?u+=z:F==="right"&&(u+=g))),w){case"top":s-=(ae.length-1)*V;break;case"center":case"bottom":s-=(ae.length-1)*V;break}for(var U=0;U0&&e.strokeText(ae[U],u,s),e.fillText(ae[U],u,s),s+=V}else ee>0&&e.strokeText(f,u,s),e.fillText(f,u,s);T!==0&&(e.rotate(-T),e.translate(-d,-h))}}};var mn={};mn.drawNode=function(e,t,n){var r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,o=this,c,u,s=t._private,d=s.rscratch,h=t.position();if(!(!re(h.x)||!re(h.y))&&!(i&&!t.visible())){var f=i?t.effectiveOpacity():1,p=o.usePaths(),g,y=!1,b=t.padding();c=t.width()+2*b,u=t.height()+2*b;var v;n&&(v=n,e.translate(-v.x1,-v.y1));for(var m=t.pstyle("background-image"),x=m.value,w=new Array(x.length),T=new Array(x.length),P=0,E=0;E0&&arguments[0]!==void 0?arguments[0]:M;o.eleFillStyle(e,t,oe)},"setupShapeColor"),V=l(function(){var oe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:q;o.colorStrokeStyle(e,A[0],A[1],A[2],oe)},"setupBorderColor"),z=l(function(){var oe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Q;o.colorStrokeStyle(e,K[0],K[1],K[2],oe)},"setupOutlineColor"),F=l(function(oe,ye,C,j){var W=o.nodePathCache=o.nodePathCache||[],H=td(C==="polygon"?C+","+j.join(","):C,""+ye,""+oe,""+ee),G=W[H],se,Z=!1;return G!=null?(se=G,Z=!0,d.pathCache=se):(se=new Path2D,W[H]=d.pathCache=se),{path:se,cacheHit:Z}},"getPath"),U=t.pstyle("shape").strValue,ne=t.pstyle("shape-polygon-points").pfValue;if(p){e.translate(h.x,h.y);var ie=F(c,u,U,ne);g=ie.path,y=ie.cacheHit}var Ee=l(function(){if(!y){var oe=h;p&&(oe={x:0,y:0}),o.nodeShapes[o.getNodeShape(t)].draw(g||e,oe.x,oe.y,c,u,ee,d)}p?e.fill(g):e.fill()},"drawShape"),me=l(function(){for(var oe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:f,ye=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,C=s.backgrounding,j=0,W=0;W0&&arguments[0]!==void 0?arguments[0]:!1,ye=arguments.length>1&&arguments[1]!==void 0?arguments[1]:f;o.hasPie(t)&&(o.drawPie(e,t,ye),oe&&(p||o.nodeShapes[o.getNodeShape(t)].draw(e,h.x,h.y,c,u,ee,d)))},"drawPie"),Ae=l(function(){var oe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,ye=arguments.length>1&&arguments[1]!==void 0?arguments[1]:f;o.hasStripe(t)&&(e.save(),p?e.clip(d.pathCache):(o.nodeShapes[o.getNodeShape(t)].draw(e,h.x,h.y,c,u,ee,d),e.clip()),o.drawStripe(e,t,ye),e.restore(),oe&&(p||o.nodeShapes[o.getNodeShape(t)].draw(e,h.x,h.y,c,u,ee,d)))},"drawStripe"),te=l(function(){var oe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:f,ye=(D>0?D:-D)*oe,C=D>0?0:255;D!==0&&(o.colorFillStyle(e,C,C,C,ye),p?e.fill(g):e.fill())},"darken"),ce=l(function(){if(S>0){if(e.lineWidth=S,e.lineCap=I,e.lineJoin=R,e.setLineDash)switch(O){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash(N),e.lineDashOffset=Y;break;case"solid":case"double":e.setLineDash([]);break}if(L!=="center"){if(e.save(),e.lineWidth*=2,L==="inside")p?e.clip(g):e.clip();else{var oe=new Path2D;oe.rect(-c/2-S,-u/2-S,c+2*S,u+2*S),oe.addPath(g),e.clip(oe,"evenodd")}p?e.stroke(g):e.stroke(),e.restore()}else p?e.stroke(g):e.stroke();if(O==="double"){e.lineWidth=S/3;var ye=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",p?e.stroke(g):e.stroke(),e.globalCompositeOperation=ye}e.setLineDash&&e.setLineDash([])}},"drawBorder"),de=l(function(){if(X>0){if(e.lineWidth=X,e.lineCap="butt",e.setLineDash)switch(J){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([]);break}var oe=h;p&&(oe={x:0,y:0});var ye=o.getNodeShape(t),C=S;L==="inside"&&(C=0),L==="outside"&&(C*=2);var j=(c+C+(X+$))/c,W=(u+C+(X+$))/u,H=c*j,G=u*W,se=o.nodeShapes[ye].points,Z;if(p){var he=F(H,G,ye,se);Z=he.path}if(ye==="ellipse")o.drawEllipsePath(Z||e,oe.x,oe.y,H,G);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(ye)){var ue=0,ge=0,De=0;ye==="round-diamond"?ue=(C+$+X)*1.4:ye==="round-heptagon"?(ue=(C+$+X)*1.075,De=-(C/2+$+X)/35):ye==="round-hexagon"?ue=(C+$+X)*1.12:ye==="round-pentagon"?(ue=(C+$+X)*1.13,De=-(C/2+$+X)/15):ye==="round-tag"?(ue=(C+$+X)*1.12,ge=(C/2+X+$)*.07):ye==="round-triangle"&&(ue=(C+$+X)*(Math.PI/2),De=-(C+$/2+X)/Math.PI),ue!==0&&(j=(c+ue)/c,H=c*j,["round-hexagon","round-tag"].includes(ye)||(W=(u+ue)/u,G=u*W)),ee=ee==="auto"?yd(H,G):ee;for(var Te=H/2,fe=G/2,Se=ee+(C+X+$)/2,Ne=new Array(se.length/2),Ke=new Array(se.length/2),lt=0;lt0){if(r=r||n.position(),a==null||i==null){var f=n.padding();a=n.width()+2*f,i=n.height()+2*f}o.colorFillStyle(t,s[0],s[1],s[2],u),o.nodeShapes[d].draw(t,r.x,r.y,a+c*2,i+c*2,h),t.fill()}}}},"drawNodeOverlayUnderlay");mn.drawNodeOverlay=nf("overlay");mn.drawNodeUnderlay=nf("underlay");mn.hasPie=function(e){return e=e[0],e._private.hasPie};mn.hasStripe=function(e){return e=e[0],e._private.hasStripe};mn.drawPie=function(e,t,n,r){t=t[0],r=r||t.position();var a=t.cy().style(),i=t.pstyle("pie-size"),o=t.pstyle("pie-hole"),c=t.pstyle("pie-start-angle").pfValue,u=r.x,s=r.y,d=t.width(),h=t.height(),f=Math.min(d,h)/2,p,g=0,y=this.usePaths();if(y&&(u=0,s=0),i.units==="%"?f=f*i.pfValue:i.pfValue!==void 0&&(f=i.pfValue/2),o.units==="%"?p=f*o.pfValue:o.pfValue!==void 0&&(p=o.pfValue/2),!(p>=f))for(var b=1;b<=a.pieBackgroundN;b++){var v=t.pstyle("pie-"+b+"-background-size").value,m=t.pstyle("pie-"+b+"-background-color").value,x=t.pstyle("pie-"+b+"-background-opacity").value*n,w=v/100;w+g>1&&(w=1-g);var T=1.5*Math.PI+2*Math.PI*g;T+=c;var P=2*Math.PI*w,E=T+P;v===0||g>=1||g+w>1||(p===0?(e.beginPath(),e.moveTo(u,s),e.arc(u,s,f,T,E),e.closePath()):(e.beginPath(),e.arc(u,s,f,T,E),e.arc(u,s,p,E,T,!0),e.closePath()),this.colorFillStyle(e,m[0],m[1],m[2],x),e.fill(),g+=w)}};mn.drawStripe=function(e,t,n,r){t=t[0],r=r||t.position();var a=t.cy().style(),i=r.x,o=r.y,c=t.width(),u=t.height(),s=0,d=this.usePaths();e.save();var h=t.pstyle("stripe-direction").value,f=t.pstyle("stripe-size");switch(h){case"vertical":break;case"righward":e.rotate(-Math.PI/2);break}var p=c,g=u;f.units==="%"?(p=p*f.pfValue,g=g*f.pfValue):f.pfValue!==void 0&&(p=f.pfValue,g=f.pfValue),d&&(i=0,o=0),o-=p/2,i-=g/2;for(var y=1;y<=a.stripeBackgroundN;y++){var b=t.pstyle("stripe-"+y+"-background-size").value,v=t.pstyle("stripe-"+y+"-background-color").value,m=t.pstyle("stripe-"+y+"-background-opacity").value*n,x=b/100;x+s>1&&(x=1-s),!(b===0||s>=1||s+x>1)&&(e.beginPath(),e.rect(i,o+g*s,p,g*x),e.closePath(),this.colorFillStyle(e,v[0],v[1],v[2],m),e.fill(),s+=x)}e.restore()};var Et={},gm=100;Et.getPixelRatio=function(){var e=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var t=this.cy.window(),n=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(t.devicePixelRatio||1)/n};Et.paintCache=function(e){for(var t=this.paintCaches=this.paintCaches||[],n=!0,r,a=0;at.minMbLowQualFrames&&(t.motionBlurPxRatio=t.mbPxRBlurry)),t.clearingMotionBlur&&(t.motionBlurPxRatio=1),t.textureDrawLastFrame&&!h&&(d[t.NODE]=!0,d[t.SELECT_BOX]=!0);var m=n.style(),x=n.zoom(),w=o!==void 0?o:x,T=n.pan(),P={x:T.x,y:T.y},E={zoom:x,pan:{x:T.x,y:T.y}},k=t.prevViewport,_=k===void 0||E.zoom!==k.zoom||E.pan.x!==k.pan.x||E.pan.y!==k.pan.y;!_&&!(y&&!g)&&(t.motionBlurPxRatio=1),c&&(P=c),w*=u,P.x*=u,P.y*=u;var B=t.getCachedZSortedEles();function D(V,z,F,U,ne){var ie=V.globalCompositeOperation;V.globalCompositeOperation="destination-out",t.colorFillStyle(V,255,255,255,t.motionBlurTransparency),V.fillRect(z,F,U,ne),V.globalCompositeOperation=ie}l(D,"mbclear");function S(V,z){var F,U,ne,ie;!t.clearingMotionBlur&&(V===s.bufferContexts[t.MOTIONBLUR_BUFFER_NODE]||V===s.bufferContexts[t.MOTIONBLUR_BUFFER_DRAG])?(F={x:T.x*p,y:T.y*p},U=x*p,ne=t.canvasWidth*p,ie=t.canvasHeight*p):(F=P,U=w,ne=t.canvasWidth,ie=t.canvasHeight),V.setTransform(1,0,0,1,0,0),z==="motionBlur"?D(V,0,0,ne,ie):!r&&(z===void 0||z)&&V.clearRect(0,0,ne,ie),a||(V.translate(F.x,F.y),V.scale(U,U)),c&&V.translate(c.x,c.y),o&&V.scale(o,o)}if(l(S,"setContextTransform"),h||(t.textureDrawLastFrame=!1),h){if(t.textureDrawLastFrame=!0,!t.textureCache){t.textureCache={},t.textureCache.bb=n.mutableElements().boundingBox(),t.textureCache.texture=t.data.bufferCanvases[t.TEXTURE_BUFFER];var M=t.data.bufferContexts[t.TEXTURE_BUFFER];M.setTransform(1,0,0,1,0,0),M.clearRect(0,0,t.canvasWidth*t.textureMult,t.canvasHeight*t.textureMult),t.render({forcedContext:M,drawOnlyNodeLayer:!0,forcedPxRatio:u*t.textureMult});var E=t.textureCache.viewport={zoom:n.zoom(),pan:n.pan(),width:t.canvasWidth,height:t.canvasHeight};E.mpan={x:(0-E.pan.x)/E.zoom,y:(0-E.pan.y)/E.zoom}}d[t.DRAG]=!1,d[t.NODE]=!1;var A=s.contexts[t.NODE],O=t.textureCache.texture,E=t.textureCache.viewport;A.setTransform(1,0,0,1,0,0),f?D(A,0,0,E.width,E.height):A.clearRect(0,0,E.width,E.height);var R=m.core("outside-texture-bg-color").value,I=m.core("outside-texture-bg-opacity").value;t.colorFillStyle(A,R[0],R[1],R[2],I),A.fillRect(0,0,E.width,E.height);var x=n.zoom();S(A,!1),A.clearRect(E.mpan.x,E.mpan.y,E.width/E.zoom/u,E.height/E.zoom/u),A.drawImage(O,E.mpan.x,E.mpan.y,E.width/E.zoom/u,E.height/E.zoom/u)}else t.textureOnViewport&&!r&&(t.textureCache=null);var L=n.extent(),N=t.pinching||t.hoverData.dragging||t.swipePanning||t.data.wheelZooming||t.hoverData.draggingEles||t.cy.animated(),Y=t.hideEdgesOnViewport&&N,q=[];if(q[t.NODE]=!d[t.NODE]&&f&&!t.clearedForMotionBlur[t.NODE]||t.clearingMotionBlur,q[t.NODE]&&(t.clearedForMotionBlur[t.NODE]=!0),q[t.DRAG]=!d[t.DRAG]&&f&&!t.clearedForMotionBlur[t.DRAG]||t.clearingMotionBlur,q[t.DRAG]&&(t.clearedForMotionBlur[t.DRAG]=!0),d[t.NODE]||a||i||q[t.NODE]){var X=f&&!q[t.NODE]&&p!==1,A=r||(X?t.data.bufferContexts[t.MOTIONBLUR_BUFFER_NODE]:s.contexts[t.NODE]),K=f&&!X?"motionBlur":void 0;S(A,K),Y?t.drawCachedNodes(A,B.nondrag,u,L):t.drawLayeredElements(A,B.nondrag,u,L),t.debug&&t.drawDebugPoints(A,B.nondrag),!a&&!f&&(d[t.NODE]=!1)}if(!i&&(d[t.DRAG]||a||q[t.DRAG])){var X=f&&!q[t.DRAG]&&p!==1,A=r||(X?t.data.bufferContexts[t.MOTIONBLUR_BUFFER_DRAG]:s.contexts[t.DRAG]);S(A,f&&!X?"motionBlur":void 0),Y?t.drawCachedNodes(A,B.drag,u,L):t.drawCachedElements(A,B.drag,u,L),t.debug&&t.drawDebugPoints(A,B.drag),!a&&!f&&(d[t.DRAG]=!1)}if(this.drawSelectionRectangle(e,S),f&&p!==1){var J=s.contexts[t.NODE],Q=t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_NODE],$=s.contexts[t.DRAG],ee=t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_DRAG],ae=l(function(V,z,F){V.setTransform(1,0,0,1,0,0),F||!v?V.clearRect(0,0,t.canvasWidth,t.canvasHeight):D(V,0,0,t.canvasWidth,t.canvasHeight);var U=p;V.drawImage(z,0,0,t.canvasWidth*U,t.canvasHeight*U,0,0,t.canvasWidth,t.canvasHeight)},"drawMotionBlur");(d[t.NODE]||q[t.NODE])&&(ae(J,Q,q[t.NODE]),d[t.NODE]=!1),(d[t.DRAG]||q[t.DRAG])&&(ae($,ee,q[t.DRAG]),d[t.DRAG]=!1)}t.prevViewport=E,t.clearingMotionBlur&&(t.clearingMotionBlur=!1,t.motionBlurCleared=!0,t.motionBlur=!0),f&&(t.motionBlurTimeout=setTimeout(function(){t.motionBlurTimeout=null,t.clearedForMotionBlur[t.NODE]=!1,t.clearedForMotionBlur[t.DRAG]=!1,t.motionBlur=!1,t.clearingMotionBlur=!h,t.mbFrames=0,d[t.NODE]=!0,d[t.DRAG]=!0,t.redraw()},gm)),r||n.emit("render")};var vr;Et.drawSelectionRectangle=function(e,t){var n=this,r=n.cy,a=n.data,i=r.style(),o=e.drawOnlyNodeLayer,c=e.drawAllLayers,u=a.canvasNeedsRedraw,s=e.forcedContext;if(n.showFps||!o&&u[n.SELECT_BOX]&&!c){var d=s||a.contexts[n.SELECT_BOX];if(t(d),n.selection[4]==1&&(n.hoverData.selecting||n.touchData.selecting)){var h=n.cy.zoom(),f=i.core("selection-box-border-width").value/h;d.lineWidth=f,d.fillStyle="rgba("+i.core("selection-box-color").value[0]+","+i.core("selection-box-color").value[1]+","+i.core("selection-box-color").value[2]+","+i.core("selection-box-opacity").value+")",d.fillRect(n.selection[0],n.selection[1],n.selection[2]-n.selection[0],n.selection[3]-n.selection[1]),f>0&&(d.strokeStyle="rgba("+i.core("selection-box-border-color").value[0]+","+i.core("selection-box-border-color").value[1]+","+i.core("selection-box-border-color").value[2]+","+i.core("selection-box-opacity").value+")",d.strokeRect(n.selection[0],n.selection[1],n.selection[2]-n.selection[0],n.selection[3]-n.selection[1]))}if(a.bgActivePosistion&&!n.hoverData.selecting){var h=n.cy.zoom(),p=a.bgActivePosistion;d.fillStyle="rgba("+i.core("active-bg-color").value[0]+","+i.core("active-bg-color").value[1]+","+i.core("active-bg-color").value[2]+","+i.core("active-bg-opacity").value+")",d.beginPath(),d.arc(p.x,p.y,i.core("active-bg-size").pfValue/h,0,2*Math.PI),d.fill()}var g=n.lastRedrawTime;if(n.showFps&&g){g=Math.round(g);var y=Math.round(1e3/g),b="1 frame = "+g+" ms = "+y+" fps";if(d.setTransform(1,0,0,1,0,0),d.fillStyle="rgba(255, 0, 0, 0.75)",d.strokeStyle="rgba(255, 0, 0, 0.75)",d.font="30px Arial",!vr){var v=d.measureText(b);vr=v.actualBoundingBoxAscent}d.fillText(b,0,vr);var m=60;d.strokeRect(0,vr+10,250,20),d.fillRect(0,vr+10,250*Math.min(y/m,1),20)}c||(u[n.SELECT_BOX]=!1)}};function us(e,t,n){var r=e.createShader(t);if(e.shaderSource(r,n),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS))throw new Error(e.getShaderInfoLog(r));return r}l(us,"compileShader");function rf(e,t,n){var r=us(e,e.VERTEX_SHADER,t),a=us(e,e.FRAGMENT_SHADER,n),i=e.createProgram();if(e.attachShader(i,r),e.attachShader(i,a),e.linkProgram(i),!e.getProgramParameter(i,e.LINK_STATUS))throw new Error("Could not initialize shaders");return i}l(rf,"createProgram");function af(e,t,n){n===void 0&&(n=t);var r=e.makeOffscreenCanvas(t,n),a=r.context=r.getContext("2d");return r.clear=function(){return a.clearRect(0,0,r.width,r.height)},r.clear(),r}l(af,"createTextureCanvas");function ci(e){var t=e.pixelRatio,n=e.cy.zoom(),r=e.cy.pan();return{zoom:n*t,pan:{x:r.x*t,y:r.y*t}}}l(ci,"getEffectivePanZoom");function of(e){var t=e.pixelRatio,n=e.cy.zoom();return n*t}l(of,"getEffectiveZoom");function sf(e,t,n,r,a){var i=r*n+t.x,o=a*n+t.y;return o=Math.round(e.canvasHeight-o),[i,o]}l(sf,"modelToRenderedPosition");function lf(e){return e.pstyle("background-fill").value!=="solid"||e.pstyle("background-image").strValue!=="none"?!1:e.pstyle("border-width").value===0||e.pstyle("border-opacity").value===0?!0:e.pstyle("border-style").value==="solid"}l(lf,"isSimpleShape");function uf(e,t){if(e.length!==t.length)return!1;for(var n=0;n>0&255)/255,n[1]=(e>>8&255)/255,n[2]=(e>>16&255)/255,n[3]=(e>>24&255)/255,n}l(Dn,"indexToVec4");function cf(e){return e[0]+(e[1]<<8)+(e[2]<<16)+(e[3]<<24)}l(cf,"vec4ToIndex");function df(e,t){var n=e.createTexture();return n.buffer=function(r){e.bindTexture(e.TEXTURE_2D,n),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR_MIPMAP_NEAREST),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,r),e.generateMipmap(e.TEXTURE_2D),e.bindTexture(e.TEXTURE_2D,null)},n.deleteTexture=function(){e.deleteTexture(n)},n}l(df,"createTexture");function Js(e,t){switch(t){case"float":return[1,e.FLOAT,4];case"vec2":return[2,e.FLOAT,4];case"vec3":return[3,e.FLOAT,4];case"vec4":return[4,e.FLOAT,4];case"int":return[1,e.INT,4];case"ivec2":return[2,e.INT,4]}}l(Js,"getTypeInfo");function Qs(e,t,n){switch(t){case e.FLOAT:return new Float32Array(n);case e.INT:return new Int32Array(n)}}l(Qs,"createTypedArray");function hf(e,t,n,r,a,i){switch(t){case e.FLOAT:return new Float32Array(n.buffer,i*r,a);case e.INT:return new Int32Array(n.buffer,i*r,a)}}l(hf,"createTypedArrayView");function ff(e,t,n,r){var a=Js(e,t),i=Ue(a,2),o=i[0],c=i[1],u=Qs(e,c,r),s=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,s),e.bufferData(e.ARRAY_BUFFER,u,e.STATIC_DRAW),c===e.FLOAT?e.vertexAttribPointer(n,o,c,!1,0,0):c===e.INT&&e.vertexAttribIPointer(n,o,c,0,0),e.enableVertexAttribArray(n),e.bindBuffer(e.ARRAY_BUFFER,null),s}l(ff,"createBufferStaticDraw");function Rt(e,t,n,r){var a=Js(e,n),i=Ue(a,3),o=i[0],c=i[1],u=i[2],s=Qs(e,c,t*o),d=o*u,h=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,h),e.bufferData(e.ARRAY_BUFFER,t*d,e.DYNAMIC_DRAW),e.enableVertexAttribArray(r),c===e.FLOAT?e.vertexAttribPointer(r,o,c,!1,d,0):c===e.INT&&e.vertexAttribIPointer(r,o,c,d,0),e.vertexAttribDivisor(r,1),e.bindBuffer(e.ARRAY_BUFFER,null);for(var f=new Array(t),p=0;pi&&(o=i/n,c=n*o,u=r*o),{scale:o,texW:c,texH:u}},"getScale")},{key:"draw",value:l(function(t,n,r){var a=this;if(this.locked)throw new Error("can't draw, atlas is locked");var i=this.texSize,o=this.texRows,c=this.texHeight,u=this.getScale(n),s=u.scale,d=u.texW,h=u.texH,f=l(function(v,m){if(r&&m){var x=m.context,w=v.x,T=v.row,P=w,E=c*T;x.save(),x.translate(P,E),x.scale(s,s),r(x,n),x.restore()}},"drawAt"),p=[null,null],g=l(function(){f(a.freePointer,a.canvas),p[0]={x:a.freePointer.x,y:a.freePointer.row*c,w:d,h},p[1]={x:a.freePointer.x+d,y:a.freePointer.row*c,w:0,h},a.freePointer.x+=d,a.freePointer.x==i&&(a.freePointer.x=0,a.freePointer.row++)},"drawNormal"),y=l(function(){var v=a.scratch,m=a.canvas;v.clear(),f({x:0,row:0},v);var x=i-a.freePointer.x,w=d-x,T=c;{var P=a.freePointer.x,E=a.freePointer.row*c,k=x;m.context.drawImage(v,0,0,k,T,P,E,k,T),p[0]={x:P,y:E,w:k,h}}{var _=x,B=(a.freePointer.row+1)*c,D=w;m&&m.context.drawImage(v,_,0,D,T,0,B,D,T),p[1]={x:0,y:B,w:D,h}}a.freePointer.x=w,a.freePointer.row++},"drawWrapped"),b=l(function(){a.freePointer.x=0,a.freePointer.row++},"moveToStartOfNextRow");if(this.freePointer.x+d<=i)g();else{if(this.freePointer.row>=o-1)return!1;this.freePointer.x===i?(b(),g()):this.enableWrapping?y():(b(),g())}return this.keyToLocation.set(t,p),this.needsBuffer=!0,p},"draw")},{key:"getOffsets",value:l(function(t){return this.keyToLocation.get(t)},"getOffsets")},{key:"isEmpty",value:l(function(){return this.freePointer.x===0&&this.freePointer.row===0},"isEmpty")},{key:"canFit",value:l(function(t){if(this.locked)return!1;var n=this.texSize,r=this.texRows,a=this.getScale(t),i=a.texW;return this.freePointer.x+i>n?this.freePointer.row1&&arguments[1]!==void 0?arguments[1]:{},a=r.forceRedraw,i=a===void 0?!1:a,o=r.filterEle,c=o===void 0?function(){return!0}:o,u=r.filterType,s=u===void 0?function(){return!0}:u,d=!1,h=!1,f=xt(t),p;try{for(f.s();!(p=f.n()).done;){var g=p.value;if(c(g)){var y=xt(this.renderTypes.values()),b;try{var v=l(function(){var m=b.value,x=m.type;if(s(x)){var w=n.collections.get(m.collection),T=m.getKey(g),P=Array.isArray(T)?T:[T];if(i)P.forEach(function(B){return w.markKeyForGC(B)}),h=!0;else{var E=m.getID?m.getID(g):g.id(),k=n._key(x,E),_=n.typeAndIdToKey.get(k);_!==void 0&&!uf(P,_)&&(d=!0,n.typeAndIdToKey.delete(k),_.forEach(function(B){return w.markKeyForGC(B)}))}}},"_loop2");for(y.s();!(b=y.n()).done;)v()}catch(m){y.e(m)}finally{y.f()}}}}catch(m){f.e(m)}finally{f.f()}return h&&(this.gc(),d=!1),d},"invalidate")},{key:"gc",value:l(function(){var t=xt(this.collections.values()),n;try{for(t.s();!(n=t.n()).done;){var r=n.value;r.gc()}}catch(a){t.e(a)}finally{t.f()}},"gc")},{key:"getOrCreateAtlas",value:l(function(t,n,r,a){var i=this.renderTypes.get(n),o=this.collections.get(i.collection),c=!1,u=o.draw(a,r,function(h){i.drawClipped?(h.save(),h.beginPath(),h.rect(0,0,r.w,r.h),h.clip(),i.drawElement(h,t,r,!0,!0),h.restore()):i.drawElement(h,t,r,!0,!0),c=!0});if(c){var s=i.getID?i.getID(t):t.id(),d=this._key(n,s);this.typeAndIdToKey.has(d)?this.typeAndIdToKey.get(d).push(a):this.typeAndIdToKey.set(d,[a])}return u},"getOrCreateAtlas")},{key:"getAtlasInfo",value:l(function(t,n){var r=this,a=this.renderTypes.get(n),i=a.getKey(t),o=Array.isArray(i)?i:[i];return o.map(function(c){var u=a.getBoundingBox(t,c),s=r.getOrCreateAtlas(t,n,u,c),d=s.getOffsets(c),h=Ue(d,2),f=h[0],p=h[1];return{atlas:s,tex:f,tex1:f,tex2:p,bb:u}})},"getAtlasInfo")},{key:"getDebugInfo",value:l(function(){var t=[],n=xt(this.collections),r;try{for(n.s();!(r=n.n()).done;){var a=Ue(r.value,2),i=a[0],o=a[1],c=o.getCounts(),u=c.keyCount,s=c.atlasCount;t.push({type:i,keyCount:u,atlasCount:s})}}catch(d){n.e(d)}finally{n.f()}return t},"getDebugInfo")}])})(),bm=(function(){function e(t){Zt(this,e),this.globalOptions=t,this.atlasSize=t.webglTexSize,this.maxAtlasesPerBatch=t.webglTexPerBatch,this.batchAtlases=[]}return l(e,"AtlasBatchManager"),$t(e,[{key:"getMaxAtlasesPerBatch",value:l(function(){return this.maxAtlasesPerBatch},"getMaxAtlasesPerBatch")},{key:"getAtlasSize",value:l(function(){return this.atlasSize},"getAtlasSize")},{key:"getIndexArray",value:l(function(){return Array.from({length:this.maxAtlasesPerBatch},function(t,n){return n})},"getIndexArray")},{key:"startBatch",value:l(function(){this.batchAtlases=[]},"startBatch")},{key:"getAtlasCount",value:l(function(){return this.batchAtlases.length},"getAtlasCount")},{key:"getAtlases",value:l(function(){return this.batchAtlases},"getAtlases")},{key:"canAddToCurrentBatch",value:l(function(t){return this.batchAtlases.length===this.maxAtlasesPerBatch?this.batchAtlases.includes(t):!0},"canAddToCurrentBatch")},{key:"getAtlasIndexForBatch",value:l(function(t){var n=this.batchAtlases.indexOf(t);if(n<0){if(this.batchAtlases.length===this.maxAtlasesPerBatch)throw new Error("cannot add more atlases to batch");this.batchAtlases.push(t),n=this.batchAtlases.length-1}return n},"getAtlasIndexForBatch")}])})(),xm=` float circleSD(vec2 p, float r) { return distance(vec2(0), p) - r; // signed distance } `,wm=` float rectangleSD(vec2 p, vec2 b) { vec2 d = abs(p)-b; return distance(vec2(0),max(d,0.0)) + min(max(d.x,d.y),0.0); } `,Em=` float roundRectangleSD(vec2 p, vec2 b, vec4 cr) { cr.xy = (p.x > 0.0) ? cr.xy : cr.zw; cr.x = (p.y > 0.0) ? cr.x : cr.y; vec2 q = abs(p) - b + cr.x; return min(max(q.x, q.y), 0.0) + distance(vec2(0), max(q, 0.0)) - cr.x; } `,Cm=` float ellipseSD(vec2 p, vec2 ab) { p = abs( p ); // symmetry // find root with Newton solver vec2 q = ab*(p-ab); float w = (q.x1.0) ? d : -d; } `,Pr={SCREEN:{name:"screen",screen:!0},PICKING:{name:"picking",picking:!0}},Ha={IGNORE:1,USE_BB:2},Ro=0,Cc=1,Tc=2,No=3,Xn=4,ma=5,yr=6,mr=7,Tm=(function(){function e(t,n,r){Zt(this,e),this.r=t,this.gl=n,this.maxInstances=r.webglBatchSize,this.atlasSize=r.webglTexSize,this.bgColor=r.bgColor,this.debug=r.webglDebug,this.batchDebugInfo=[],r.enableWrapping=!0,r.createTextureCanvas=af,this.atlasManager=new mm(t,r),this.batchManager=new bm(r),this.simpleShapeOptions=new Map,this.program=this._createShaderProgram(Pr.SCREEN),this.pickingProgram=this._createShaderProgram(Pr.PICKING),this.vao=this._createVAO()}return l(e,"ElementDrawingWebGL"),$t(e,[{key:"addAtlasCollection",value:l(function(t,n){this.atlasManager.addAtlasCollection(t,n)},"addAtlasCollection")},{key:"addTextureAtlasRenderType",value:l(function(t,n){this.atlasManager.addRenderType(t,n)},"addTextureAtlasRenderType")},{key:"addSimpleShapeRenderType",value:l(function(t,n){this.simpleShapeOptions.set(t,n)},"addSimpleShapeRenderType")},{key:"invalidate",value:l(function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=n.type,a=this.atlasManager;return r?a.invalidate(t,{filterType:l(function(i){return i===r},"filterType"),forceRedraw:!0}):a.invalidate(t)},"invalidate")},{key:"gc",value:l(function(){this.atlasManager.gc()},"gc")},{key:"_createShaderProgram",value:l(function(t){var n=this.gl,r=`#version 300 es precision highp float; uniform mat3 uPanZoomMatrix; uniform int uAtlasSize; // instanced in vec2 aPosition; // a vertex from the unit square in mat3 aTransform; // used to transform verticies, eg into a bounding box in int aVertType; // the type of thing we are rendering // the z-index that is output when using picking mode in vec4 aIndex; // For textures in int aAtlasId; // which shader unit/atlas to use in vec4 aTex; // x/y/w/h of texture in atlas // for edges in vec4 aPointAPointB; in vec4 aPointCPointD; in vec2 aLineWidth; // also used for node border width // simple shapes in vec4 aCornerRadius; // for round-rectangle [top-right, bottom-right, top-left, bottom-left] in vec4 aColor; // also used for edges in vec4 aBorderColor; // aLineWidth is used for border width // output values passed to the fragment shader out vec2 vTexCoord; out vec4 vColor; out vec2 vPosition; // flat values are not interpolated flat out int vAtlasId; flat out int vVertType; flat out vec2 vTopRight; flat out vec2 vBotLeft; flat out vec4 vCornerRadius; flat out vec4 vBorderColor; flat out vec2 vBorderWidth; flat out vec4 vIndex; void main(void) { int vid = gl_VertexID; vec2 position = aPosition; // TODO make this a vec3, simplifies some code below if(aVertType == `.concat(Ro,`) { float texX = aTex.x; // texture coordinates float texY = aTex.y; float texW = aTex.z; float texH = aTex.w; if(vid == 1 || vid == 2 || vid == 4) { texX += texW; } if(vid == 2 || vid == 4 || vid == 5) { texY += texH; } float d = float(uAtlasSize); vTexCoord = vec2(texX / d, texY / d); // tex coords must be between 0 and 1 gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); } else if(aVertType == `).concat(Xn," || aVertType == ").concat(mr,` || aVertType == `).concat(ma," || aVertType == ").concat(yr,`) { // simple shapes // the bounding box is needed by the fragment shader vBotLeft = (aTransform * vec3(0, 0, 1)).xy; // flat vTopRight = (aTransform * vec3(1, 1, 1)).xy; // flat vPosition = (aTransform * vec3(position, 1)).xy; // will be interpolated // calculations are done in the fragment shader, just pass these along vColor = aColor; vCornerRadius = aCornerRadius; vBorderColor = aBorderColor; vBorderWidth = aLineWidth; gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); } else if(aVertType == `).concat(Cc,`) { vec2 source = aPointAPointB.xy; vec2 target = aPointAPointB.zw; // adjust the geometry so that the line is centered on the edge position.y = position.y - 0.5; // stretch the unit square into a long skinny rectangle vec2 xBasis = target - source; vec2 yBasis = normalize(vec2(-xBasis.y, xBasis.x)); vec2 point = source + xBasis * position.x + yBasis * aLineWidth[0] * position.y; gl_Position = vec4(uPanZoomMatrix * vec3(point, 1.0), 1.0); vColor = aColor; } else if(aVertType == `).concat(Tc,`) { vec2 pointA = aPointAPointB.xy; vec2 pointB = aPointAPointB.zw; vec2 pointC = aPointCPointD.xy; vec2 pointD = aPointCPointD.zw; // adjust the geometry so that the line is centered on the edge position.y = position.y - 0.5; vec2 p0, p1, p2, pos; if(position.x == 0.0) { // The left side of the unit square p0 = pointA; p1 = pointB; p2 = pointC; pos = position; } else { // The right side of the unit square, use same approach but flip the geometry upside down p0 = pointD; p1 = pointC; p2 = pointB; pos = vec2(0.0, -position.y); } vec2 p01 = p1 - p0; vec2 p12 = p2 - p1; vec2 p21 = p1 - p2; // Find the normal vector. vec2 tangent = normalize(normalize(p12) + normalize(p01)); vec2 normal = vec2(-tangent.y, tangent.x); // Find the vector perpendicular to p0 -> p1. vec2 p01Norm = normalize(vec2(-p01.y, p01.x)); // Determine the bend direction. float sigma = sign(dot(p01 + p21, normal)); float width = aLineWidth[0]; if(sign(pos.y) == -sigma) { // This is an intersecting vertex. Adjust the position so that there's no overlap. vec2 point = 0.5 * width * normal * -sigma / dot(normal, p01Norm); gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0); } else { // This is a non-intersecting vertex. Treat it like a mitre join. vec2 point = 0.5 * width * normal * sigma * dot(normal, p01Norm); gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0); } vColor = aColor; } else if(aVertType == `).concat(No,` && vid < 3) { // massage the first triangle into an edge arrow if(vid == 0) position = vec2(-0.15, -0.3); if(vid == 1) position = vec2( 0.0, 0.0); if(vid == 2) position = vec2( 0.15, -0.3); gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0); vColor = aColor; } else { gl_Position = vec4(2.0, 0.0, 0.0, 1.0); // discard vertex by putting it outside webgl clip space } vAtlasId = aAtlasId; vVertType = aVertType; vIndex = aIndex; } `),a=this.batchManager.getIndexArray(),i=`#version 300 es precision highp float; // declare texture unit for each texture atlas in the batch `.concat(a.map(function(u){return"uniform sampler2D uTexture".concat(u,";")}).join(` `),` uniform vec4 uBGColor; uniform float uZoom; in vec2 vTexCoord; in vec4 vColor; in vec2 vPosition; // model coordinates flat in int vAtlasId; flat in vec4 vIndex; flat in int vVertType; flat in vec2 vTopRight; flat in vec2 vBotLeft; flat in vec4 vCornerRadius; flat in vec4 vBorderColor; flat in vec2 vBorderWidth; out vec4 outColor; `).concat(xm,` `).concat(wm,` `).concat(Em,` `).concat(Cm,` vec4 blend(vec4 top, vec4 bot) { // blend colors with premultiplied alpha return vec4( top.rgb + (bot.rgb * (1.0 - top.a)), top.a + (bot.a * (1.0 - top.a)) ); } vec4 distInterp(vec4 cA, vec4 cB, float d) { // interpolate color using Signed Distance // scale to the zoom level so that borders don't look blurry when zoomed in // note 1.5 is an aribitrary value chosen because it looks good return mix(cA, cB, 1.0 - smoothstep(0.0, 1.5 / uZoom, abs(d))); } void main(void) { if(vVertType == `).concat(Ro,`) { // look up the texel from the texture unit `).concat(a.map(function(u){return"if(vAtlasId == ".concat(u,") outColor = texture(uTexture").concat(u,", vTexCoord);")}).join(` else `),` } else if(vVertType == `).concat(No,`) { // mimics how canvas renderer uses context.globalCompositeOperation = 'destination-out'; outColor = blend(vColor, uBGColor); outColor.a = 1.0; // make opaque, masks out line under arrow } else if(vVertType == `).concat(Xn,` && vBorderWidth == vec2(0.0)) { // simple rectangle with no border outColor = vColor; // unit square is already transformed to the rectangle, nothing else needs to be done } else if(vVertType == `).concat(Xn," || vVertType == ").concat(mr,` || vVertType == `).concat(ma," || vVertType == ").concat(yr,`) { // use SDF float outerBorder = vBorderWidth[0]; float innerBorder = vBorderWidth[1]; float borderPadding = outerBorder * 2.0; float w = vTopRight.x - vBotLeft.x - borderPadding; float h = vTopRight.y - vBotLeft.y - borderPadding; vec2 b = vec2(w/2.0, h/2.0); // half width, half height vec2 p = vPosition - vec2(vTopRight.x - b[0] - outerBorder, vTopRight.y - b[1] - outerBorder); // translate to center float d; // signed distance if(vVertType == `).concat(Xn,`) { d = rectangleSD(p, b); } else if(vVertType == `).concat(mr,` && w == h) { d = circleSD(p, b.x); // faster than ellipse } else if(vVertType == `).concat(mr,`) { d = ellipseSD(p, b); } else { d = roundRectangleSD(p, b, vCornerRadius.wzyx); } // use the distance to interpolate a color to smooth the edges of the shape, doesn't need multisampling // we must smooth colors inwards, because we can't change pixels outside the shape's bounding box if(d > 0.0) { if(d > outerBorder) { discard; } else { outColor = distInterp(vBorderColor, vec4(0), d - outerBorder); } } else { if(d > innerBorder) { vec4 outerColor = outerBorder == 0.0 ? vec4(0) : vBorderColor; vec4 innerBorderColor = blend(vBorderColor, vColor); outColor = distInterp(innerBorderColor, outerColor, d); } else { vec4 outerColor; if(innerBorder == 0.0 && outerBorder == 0.0) { outerColor = vec4(0); } else if(innerBorder == 0.0) { outerColor = vBorderColor; } else { outerColor = blend(vBorderColor, vColor); } outColor = distInterp(vColor, outerColor, d - innerBorder); } } } else { outColor = vColor; } `).concat(t.picking?`if(outColor.a == 0.0) discard; else outColor = vIndex;`:"",` } `),o=rf(n,r,i);o.aPosition=n.getAttribLocation(o,"aPosition"),o.aIndex=n.getAttribLocation(o,"aIndex"),o.aVertType=n.getAttribLocation(o,"aVertType"),o.aTransform=n.getAttribLocation(o,"aTransform"),o.aAtlasId=n.getAttribLocation(o,"aAtlasId"),o.aTex=n.getAttribLocation(o,"aTex"),o.aPointAPointB=n.getAttribLocation(o,"aPointAPointB"),o.aPointCPointD=n.getAttribLocation(o,"aPointCPointD"),o.aLineWidth=n.getAttribLocation(o,"aLineWidth"),o.aColor=n.getAttribLocation(o,"aColor"),o.aCornerRadius=n.getAttribLocation(o,"aCornerRadius"),o.aBorderColor=n.getAttribLocation(o,"aBorderColor"),o.uPanZoomMatrix=n.getUniformLocation(o,"uPanZoomMatrix"),o.uAtlasSize=n.getUniformLocation(o,"uAtlasSize"),o.uBGColor=n.getUniformLocation(o,"uBGColor"),o.uZoom=n.getUniformLocation(o,"uZoom"),o.uTextures=[];for(var c=0;c1&&arguments[1]!==void 0?arguments[1]:Pr.SCREEN;this.panZoomMatrix=t,this.renderTarget=n,this.batchDebugInfo=[],this.wrappedCount=0,this.simpleCount=0,this.startBatch()},"startFrame")},{key:"startBatch",value:l(function(){this.instanceCount=0,this.batchManager.startBatch()},"startBatch")},{key:"endFrame",value:l(function(){this.endBatch()},"endFrame")},{key:"_isVisible",value:l(function(t,n){return t.visible()?n&&n.isVisible?n.isVisible(t):!0:!1},"_isVisible")},{key:"drawTexture",value:l(function(t,n,r){var a=this.atlasManager,i=this.batchManager,o=a.getRenderTypeOpts(r);if(this._isVisible(t,o)&&!(t.isEdge()&&!this._isValidEdge(t))){if(this.renderTarget.picking&&o.getTexPickingMode){var c=o.getTexPickingMode(t);if(c===Ha.IGNORE)return;if(c==Ha.USE_BB){this.drawPickingRectangle(t,n,r);return}}var u=a.getAtlasInfo(t,r),s=xt(u),d;try{for(s.s();!(d=s.n()).done;){var h=d.value,f=h.atlas,p=h.tex1,g=h.tex2;i.canAddToCurrentBatch(f)||this.endBatch();for(var y=i.getAtlasIndexForBatch(f),b=0,v=[[p,!0],[g,!1]];b=this.maxInstances&&this.endBatch()}}}}catch(B){s.e(B)}finally{s.f()}}},"drawTexture")},{key:"setTransformMatrix",value:l(function(t,n,r,a){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,o=0;if(r.shapeProps&&r.shapeProps.padding&&(o=t.pstyle(r.shapeProps.padding).pfValue),a){var c=a.bb,u=a.tex1,s=a.tex2,d=u.w/(u.w+s.w);i||(d=1-d);var h=this._getAdjustedBB(c,o,i,d);this._applyTransformMatrix(n,h,r,t)}else{var f=r.getBoundingBox(t),p=this._getAdjustedBB(f,o,!0,1);this._applyTransformMatrix(n,p,r,t)}},"setTransformMatrix")},{key:"_applyTransformMatrix",value:l(function(t,n,r,a){var i,o;cs(t);var c=r.getRotation?r.getRotation(a):0;if(c!==0){var u=r.getRotationPoint(a),s=u.x,d=u.y;Sr(t,t,[s,d]),ds(t,t,c);var h=r.getRotationOffset(a);i=h.x+(n.xOffset||0),o=h.y+(n.yOffset||0)}else i=n.x1,o=n.y1;Sr(t,t,[i,o]),Wa(t,t,[n.w,n.h])},"_applyTransformMatrix")},{key:"_getAdjustedBB",value:l(function(t,n,r,a){var i=t.x1,o=t.y1,c=t.w,u=t.h,s=t.yOffset;n&&(i-=n,o-=n,c+=2*n,u+=2*n);var d=0,h=c*a;return r&&a<1?c=h:!r&&a<1&&(d=c-h,i+=d,c=h),{x1:i,y1:o,w:c,h:u,xOffset:d,yOffset:s}},"_getAdjustedBB")},{key:"drawPickingRectangle",value:l(function(t,n,r){var a=this.atlasManager.getRenderTypeOpts(r),i=this.instanceCount;this.vertTypeBuffer.getView(i)[0]=Xn;var o=this.indexBuffer.getView(i);Dn(n,o);var c=this.colorBuffer.getView(i);rn([0,0,0],1,c);var u=this.transformBuffer.getMatrixView(i);this.setTransformMatrix(t,u,a),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()},"drawPickingRectangle")},{key:"drawNode",value:l(function(t,n,r){var a=this.simpleShapeOptions.get(r);if(this._isVisible(t,a)){var i=a.shapeProps,o=this._getVertTypeForShape(t,i.shape);if(o===void 0||a.isSimple&&!a.isSimple(t)){this.drawTexture(t,n,r);return}var c=this.instanceCount;if(this.vertTypeBuffer.getView(c)[0]=o,o===ma||o===yr){var u=a.getBoundingBox(t),s=this._getCornerRadius(t,i.radius,u),d=this.cornerRadiusBuffer.getView(c);d[0]=s,d[1]=s,d[2]=s,d[3]=s,o===yr&&(d[0]=0,d[2]=0)}var h=this.indexBuffer.getView(c);Dn(n,h);var f=t.pstyle(i.color).value,p=t.pstyle(i.opacity).value,g=this.colorBuffer.getView(c);rn(f,p,g);var y=this.lineWidthBuffer.getView(c);if(y[0]=0,y[1]=0,i.border){var b=t.pstyle("border-width").value;if(b>0){var v=t.pstyle("border-color").value,m=t.pstyle("border-opacity").value,x=this.borderColorBuffer.getView(c);rn(v,m,x);var w=t.pstyle("border-position").value;if(w==="inside")y[0]=0,y[1]=-b;else if(w==="outside")y[0]=b,y[1]=0;else{var T=b/2;y[0]=T,y[1]=-T}}}var P=this.transformBuffer.getMatrixView(c);this.setTransformMatrix(t,P,a),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}},"drawNode")},{key:"_getVertTypeForShape",value:l(function(t,n){var r=t.pstyle(n).value;switch(r){case"rectangle":return Xn;case"ellipse":return mr;case"roundrectangle":case"round-rectangle":return ma;case"bottom-round-rectangle":return yr;default:return}},"_getVertTypeForShape")},{key:"_getCornerRadius",value:l(function(t,n,r){var a=r.w,i=r.h;if(t.pstyle(n).value==="auto")return fn(a,i);var o=t.pstyle(n).pfValue,c=a/2,u=i/2;return Math.min(o,u,c)},"_getCornerRadius")},{key:"drawEdgeArrow",value:l(function(t,n,r){if(t.visible()){var a=t._private.rscratch,i,o,c;if(r==="source"?(i=a.arrowStartX,o=a.arrowStartY,c=a.srcArrowAngle):(i=a.arrowEndX,o=a.arrowEndY,c=a.tgtArrowAngle),!(isNaN(i)||i==null||isNaN(o)||o==null||isNaN(c)||c==null)){var u=t.pstyle(r+"-arrow-shape").value;if(u!=="none"){var s=t.pstyle(r+"-arrow-color").value,d=t.pstyle("opacity").value,h=t.pstyle("line-opacity").value,f=d*h,p=t.pstyle("width").pfValue,g=t.pstyle("arrow-scale").value,y=this.r.getArrowWidth(p,g),b=this.instanceCount,v=this.transformBuffer.getMatrixView(b);cs(v),Sr(v,v,[i,o]),Wa(v,v,[y,y]),ds(v,v,c),this.vertTypeBuffer.getView(b)[0]=No;var m=this.indexBuffer.getView(b);Dn(n,m);var x=this.colorBuffer.getView(b);rn(s,f,x),this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}}},"drawEdgeArrow")},{key:"drawEdgeLine",value:l(function(t,n){if(t.visible()){var r=this._getEdgePoints(t);if(r){var a=t.pstyle("opacity").value,i=t.pstyle("line-opacity").value,o=t.pstyle("width").pfValue,c=t.pstyle("line-color").value,u=a*i;if(r.length/2+this.instanceCount>this.maxInstances&&this.endBatch(),r.length==4){var s=this.instanceCount;this.vertTypeBuffer.getView(s)[0]=Cc;var d=this.indexBuffer.getView(s);Dn(n,d);var h=this.colorBuffer.getView(s);rn(c,u,h);var f=this.lineWidthBuffer.getView(s);f[0]=o;var p=this.pointAPointBBuffer.getView(s);p[0]=r[0],p[1]=r[1],p[2]=r[2],p[3]=r[3],this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}else for(var g=0;g=this.maxInstances&&this.endBatch()}}}},"drawEdgeLine")},{key:"_isValidEdge",value:l(function(t){var n=t._private.rscratch;return!(n.badLine||n.allpts==null||isNaN(n.allpts[0]))},"_isValidEdge")},{key:"_getEdgePoints",value:l(function(t){var n=t._private.rscratch;if(this._isValidEdge(t)){var r=n.allpts;if(r.length==4)return r;var a=this._getNumSegments(t);return this._getCurveSegmentPoints(r,a)}},"_getEdgePoints")},{key:"_getNumSegments",value:l(function(t){var n=15;return Math.min(Math.max(n,5),this.maxInstances)},"_getNumSegments")},{key:"_getCurveSegmentPoints",value:l(function(t,n){if(t.length==4)return t;for(var r=Array((n+1)*2),a=0;a<=n;a++)if(a==0)r[0]=t[0],r[1]=t[1];else if(a==n)r[a*2]=t[t.length-2],r[a*2+1]=t[t.length-1];else{var i=a/n;this._setCurvePoint(t,i,r,a*2)}return r},"_getCurveSegmentPoints")},{key:"_setCurvePoint",value:l(function(t,n,r,a){if(t.length<=2)r[a]=t[0],r[a+1]=t[1];else{for(var i=Array(t.length-2),o=0;o0}},"isLayerVisible"),c=l(function(d){var h=d.pstyle("text-events").strValue==="yes";return h?Ha.USE_BB:Ha.IGNORE},"getTexPickingMode"),u=l(function(d){var h=d.position(),f=h.x,p=h.y,g=d.outerWidth(),y=d.outerHeight();return{w:g,h:y,x1:f-g/2,y1:p-y/2}},"getBBForSimpleShape");n.drawing.addAtlasCollection("node",{texRows:e.webglTexRowsNodes}),n.drawing.addAtlasCollection("label",{texRows:e.webglTexRows}),n.drawing.addTextureAtlasRenderType("node-body",{collection:"node",getKey:t.getStyleKey,getBoundingBox:t.getElementBox,drawElement:t.drawElement}),n.drawing.addSimpleShapeRenderType("node-body",{getBoundingBox:u,isSimple:lf,shapeProps:{shape:"shape",color:"background-color",opacity:"background-opacity",radius:"corner-radius",border:!0}}),n.drawing.addSimpleShapeRenderType("node-overlay",{getBoundingBox:u,isVisible:o("overlay"),shapeProps:{shape:"overlay-shape",color:"overlay-color",opacity:"overlay-opacity",padding:"overlay-padding",radius:"overlay-corner-radius"}}),n.drawing.addSimpleShapeRenderType("node-underlay",{getBoundingBox:u,isVisible:o("underlay"),shapeProps:{shape:"underlay-shape",color:"underlay-color",opacity:"underlay-opacity",padding:"underlay-padding",radius:"underlay-corner-radius"}}),n.drawing.addTextureAtlasRenderType("label",{collection:"label",getTexPickingMode:c,getKey:Lo(t.getLabelKey,null),getBoundingBox:Oo(t.getLabelBox,null),drawClipped:!0,drawElement:t.drawLabel,getRotation:a(null),getRotationPoint:t.getLabelRotationPoint,getRotationOffset:t.getLabelRotationOffset,isVisible:i("label")}),n.drawing.addTextureAtlasRenderType("edge-source-label",{collection:"label",getTexPickingMode:c,getKey:Lo(t.getSourceLabelKey,"source"),getBoundingBox:Oo(t.getSourceLabelBox,"source"),drawClipped:!0,drawElement:t.drawSourceLabel,getRotation:a("source"),getRotationPoint:t.getSourceLabelRotationPoint,getRotationOffset:t.getSourceLabelRotationOffset,isVisible:i("source-label")}),n.drawing.addTextureAtlasRenderType("edge-target-label",{collection:"label",getTexPickingMode:c,getKey:Lo(t.getTargetLabelKey,"target"),getBoundingBox:Oo(t.getTargetLabelBox,"target"),drawClipped:!0,drawElement:t.drawTargetLabel,getRotation:a("target"),getRotationPoint:t.getTargetLabelRotationPoint,getRotationOffset:t.getTargetLabelRotationOffset,isVisible:i("target-label")});var s=qr(function(){console.log("garbage collect flag set"),n.data.gc=!0},1e4);n.onUpdateEleCalcs(function(d,h){var f=!1;h&&h.length>0&&(f|=n.drawing.invalidate(h)),f&&s()}),wf(n)};function xf(e){var t=e.cy.container(),n=t&&t.style&&t.style.backgroundColor||"white";return Vc(n)}l(xf,"getBGColor");function el(e,t){var n=e._private.rscratch;return St(n,"labelWrapCachedLines",t)||[]}l(el,"getLabelLines");var Lo=l(function(e,t){return function(n){var r=e(n),a=el(n,t);return a.length>1?a.map(function(i,o){return"".concat(r,"_").concat(o)}):r}},"getStyleKeysForLabel"),Oo=l(function(e,t){return function(n,r){var a=e(n);if(typeof r=="string"){var i=r.indexOf("_");if(i>0){var o=Number(r.substring(i+1)),c=el(n,t),u=a.h/c.length,s=u*o,d=a.y1+s;return{x1:a.x1,w:a.w,y1:d,h:u,yOffset:s}}}return a}},"getBoundingBoxForLabel");function wf(e){{var t=e.render;e.render=function(i){i=i||{};var o=e.cy;e.webgl&&(o.zoom()>Kh?(Ef(e),t.call(e,i)):(Cf(e),nl(e,i,Pr.SCREEN)))}}{var n=e.matchCanvasSize;e.matchCanvasSize=function(i){n.call(e,i),e.pickingFrameBuffer.setFramebufferAttachmentSizes(e.canvasWidth,e.canvasHeight),e.pickingFrameBuffer.needsDraw=!0}}e.findNearestElements=function(i,o,c,u){return _f(e,i,o)};{var r=e.invalidateCachedZSortedEles;e.invalidateCachedZSortedEles=function(){r.call(e),e.pickingFrameBuffer.needsDraw=!0}}{var a=e.notify;e.notify=function(i,o){a.call(e,i,o),i==="viewport"||i==="bounds"?e.pickingFrameBuffer.needsDraw=!0:i==="background"&&e.drawing.invalidate(o,{type:"node-body"})}}}l(wf,"overrideCanvasRendererFunctions");function Ef(e){var t=e.data.contexts[e.WEBGL];t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)}l(Ef,"clearWebgl");function Cf(e){var t=l(function(n){n.save(),n.setTransform(1,0,0,1,0,0),n.clearRect(0,0,e.canvasWidth,e.canvasHeight),n.restore()},"clear");t(e.data.contexts[e.NODE]),t(e.data.contexts[e.DRAG])}l(Cf,"clearCanvas");function Tf(e){var t=e.canvasWidth,n=e.canvasHeight,r=ci(e),a=r.pan,i=r.zoom,o=Aa();Sr(o,o,[a.x,a.y]),Wa(o,o,[i,i]);var c=Aa();yf(c,t,n);var u=Aa();return vf(u,c,o),u}l(Tf,"createPanZoomMatrix");function tl(e,t){var n=e.canvasWidth,r=e.canvasHeight,a=ci(e),i=a.pan,o=a.zoom;t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,n,r),t.translate(i.x,i.y),t.scale(o,o)}l(tl,"setContextTransform");function Sf(e,t){e.drawSelectionRectangle(t,function(n){return tl(e,n)})}l(Sf,"drawSelectionRectangle");function Pf(e){var t=e.data.contexts[e.NODE];t.save(),tl(e,t),t.strokeStyle="rgba(0, 0, 0, 0.3)",t.beginPath(),t.moveTo(-1e3,0),t.lineTo(1e3,0),t.stroke(),t.beginPath(),t.moveTo(0,-1e3),t.lineTo(0,1e3),t.stroke(),t.restore()}l(Pf,"drawAxes");function Df(e){var t=l(function(r,a,i){for(var o=r.atlasManager.getAtlasCollection(a),c=e.data.contexts[e.NODE],u=o.atlases,s=0;s=0&&w.add(E)}return w}l(kf,"getPickingIndexes");function _f(e,t,n){var r=kf(e,t,n),a=e.getCachedZSortedEles(),i,o,c=xt(r),u;try{for(c.s();!(u=c.n()).done;){var s=u.value,d=a[s];if(!i&&d.isNode()&&(i=d),!o&&d.isEdge()&&(o=d),i&&o)break}}catch(h){c.e(h)}finally{c.f()}return[i,o].filter(Boolean)}l(_f,"findNearestElementsWebgl");function Ma(e,t,n){var r=e.drawing;t+=1,n.isNode()?(r.drawNode(n,t,"node-underlay"),r.drawNode(n,t,"node-body"),r.drawTexture(n,t,"label"),r.drawNode(n,t,"node-overlay")):(r.drawEdgeLine(n,t),r.drawEdgeArrow(n,t,"source"),r.drawEdgeArrow(n,t,"target"),r.drawTexture(n,t,"label"),r.drawTexture(n,t,"edge-source-label"),r.drawTexture(n,t,"edge-target-label"))}l(Ma,"drawEle");function nl(e,t,n){var r;e.webglDebug&&(r=performance.now());var a=e.drawing,i=0;if(n.screen&&e.data.canvasNeedsRedraw[e.SELECT_BOX]&&Sf(e,t),e.data.canvasNeedsRedraw[e.NODE]||n.picking){var o=e.data.contexts[e.WEBGL];n.screen?(o.clearColor(0,0,0,0),o.enable(o.BLEND),o.blendFunc(o.ONE,o.ONE_MINUS_SRC_ALPHA)):o.disable(o.BLEND),o.clear(o.COLOR_BUFFER_BIT|o.DEPTH_BUFFER_BIT),o.viewport(0,0,o.canvas.width,o.canvas.height);var c=Tf(e),u=e.getCachedZSortedEles();if(i=u.length,a.startFrame(c,n),n.screen){for(var s=0;s0&&o>0){p.clearRect(0,0,i,o),p.globalCompositeOperation="source-over";var g=this.getCachedZSortedEles();if(e.full)p.translate(-r.x1*s,-r.y1*s),p.scale(s,s),this.drawElements(p,g),p.scale(1/s,1/s),p.translate(r.x1*s,r.y1*s);else{var y=t.pan(),b={x:y.x*s,y:y.y*s};s*=t.zoom(),p.translate(b.x,b.y),p.scale(s,s),this.drawElements(p,g),p.scale(1/s,1/s),p.translate(-b.x,-b.y)}e.bg&&(p.globalCompositeOperation="destination-over",p.fillStyle=e.bg,p.rect(0,0,i,o),p.fill())}return f};function Af(e,t){for(var n=atob(e),r=new ArrayBuffer(n.length),a=new Uint8Array(r),i=0;i"u"?"undefined":et(OffscreenCanvas))!=="undefined")n=new OffscreenCanvas(e,t);else{var r=this.cy.window(),a=r.document;n=a.createElement("canvas"),n.width=e,n.height=t}return n};[Uh,Yt,Qt,$s,zn,mn,Et,bf,bn,na,Mf].forEach(function(e){ve(Pe,e)});var Dm=[{name:"null",impl:Hs},{name:"base",impl:Wh},{name:"canvas",impl:Sm}],km=[{type:"layout",extensions:Ay},{type:"renderer",extensions:Dm}],If={},Rf={};function il(e,t,n){var r=n,a=l(function(E){Oe("Can not register `"+t+"` for `"+e+"` since `"+E+"` already exists in the prototype and can not be overridden")},"overrideErr");if(e==="core"){if(Lr.prototype[t])return a(t);Lr.prototype[t]=n}else if(e==="collection"){if(ct.prototype[t])return a(t);ct.prototype[t]=n}else if(e==="layout"){for(var i=l(function(E){this.options=E,n.call(this,E),Be(this._private)||(this._private={}),this._private.cy=E.cy,this._private.listeners=[],this.createEmitter()},"Layout"),o=i.prototype=Object.create(n.prototype),c=[],u=0;u