/*! third party licenses: js/vendor.LICENSE.txt */ import{g as Es}from"./index-vg7q3Iku.chunk.mjs";function Bo(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++]}},e:function(l){throw l},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,u=!1;return{s:function(){n=n.call(e)},n:function(){var l=n.next();return o=l.done,l},e:function(l){u=!0,i=l},f:function(){try{o||n.return==null||n.return()}finally{if(u)throw i}}}}function oc(e,t,n){return(t=sc(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function nh(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function rh(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r,a,i,o,u=[],l=!0,s=!1;try{if(i=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=i.call(n)).done)&&(u.push(r.value),u.length!==t);l=!0);}catch(c){s=!0,a=c}finally{try{if(!l&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw a}}return u}}function ah(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ih(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $e(e,t){return Jd(e)||rh(e,t)||ns(e,t)||ah()}function Ta(e){return eh(e)||nh(e)||ns(e)||ih()}function oh(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)}function sc(e){var t=oh(e,"string");return typeof t=="symbol"?t:t+""}function nt(e){"@babel/helpers - typeof";return nt=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},nt(e)}function ns(e,t){if(e){if(typeof e=="string")return Bo(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)?Bo(e,t):void 0}}var et=typeof window>"u"?null:window,ks=et?et.navigator:null;et&&et.document;var sh=nt(""),lc=nt({}),lh=nt(function(){}),uh=typeof HTMLElement>"u"?"undefined":nt(HTMLElement),Nr=function(e){return e&&e.instanceString&&Ue(e.instanceString)?e.instanceString():null},fe=function(e){return e!=null&&nt(e)==sh},Ue=function(e){return e!=null&&nt(e)===lh},Ve=function(e){return!Pt(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},De=function(e){return e!=null&&nt(e)===lc&&!Ve(e)&&e.constructor===Object},ch=function(e){return e!=null&&nt(e)===lc},ne=function(e){return e!=null&&nt(e)===nt(1)&&!isNaN(e)},dh=function(e){return ne(e)&&Math.floor(e)===e},Ca=function(e){if(uh!=="undefined")return e!=null&&e instanceof HTMLElement},Pt=function(e){return Or(e)||uc(e)},Or=function(e){return Nr(e)==="collection"&&e._private.single},uc=function(e){return Nr(e)==="collection"&&!e._private.single},rs=function(e){return Nr(e)==="core"},cc=function(e){return Nr(e)==="stylesheet"},hh=function(e){return Nr(e)==="event"},fn=function(e){return e==null?!0:!!(e===""||e.match(/^\s+$/))},fh=function(e){return typeof HTMLElement>"u"?!1:e instanceof HTMLElement},ph=function(e){return De(e)&&ne(e.x1)&&ne(e.x2)&&ne(e.y1)&&ne(e.y2)},gh=function(e){return ch(e)&&Ue(e.then)},vh=function(){return ks&&ks.userAgent.match(/msie|trident|edge/i)},nr=function(e,t){t||(t=function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var r=[],a=0;at?1:0},kh=function(e,t){return-1*hc(e,t)},ge=Object.assign!=null?Object.assign.bind(Object):function(e){for(var t=arguments,n=1;n1&&(v-=1),v<1/6?f+(p-f)*6*v:v<1/2?p:v<2/3?f+(p-f)*(2/3-v)*6:f}var c=new RegExp("^"+bh+"$").exec(e);if(c){if(n=parseInt(c[1]),n<0?n=(360- -1*n%360)%360:n>360&&(n=n%360),n/=360,r=parseFloat(c[2]),r<0||r>100||(r=r/100,a=parseFloat(c[3]),a<0||a>100)||(a=a/100,i=c[4],i!==void 0&&(i=parseFloat(i),i<0||i>1)))return;if(r===0)o=u=l=Math.round(a*255);else{var d=a<.5?a*(1+r):a+r-a*r,h=2*a-d;o=Math.round(255*s(h,d,n+1/3)),u=Math.round(255*s(h,d,n)),l=Math.round(255*s(h,d,n-1/3))}t=[o,u,l,i]}return t},Ph=function(e){var t,n=new RegExp("^"+yh+"$").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],u=r[1]&&r[2]&&r[3];if(o&&!u)return;var l=n[4];if(l!==void 0){if(l=parseFloat(l),l<0||l>1)return;t.push(l)}}return t},_h=function(e){return Bh[e.toLowerCase()]},fc=function(e){return(Ve(e)?e:null)||_h(e)||Th(e)||Ph(e)||Ch(e)},Bh={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]},pc=function(e){for(var t=e.map,n=e.keys,r=n.length,a=0;a=l||A<0||y&&N>=h}function P(){var S=t();if(x(S))return B(S);p=setTimeout(P,C(S))}function B(S){return p=void 0,b&&c?w(S):(c=d=void 0,f)}function D(){p!==void 0&&clearTimeout(p),m=0,c=v=d=p=void 0}function _(){return p===void 0?f:B(t())}function T(){var S=t(),A=x(S);if(c=arguments,d=this,v=S,A){if(p===void 0)return k(v);if(y)return clearTimeout(p),p=setTimeout(P,l),w(v)}return p===void 0&&(p=setTimeout(P,l)),f}return T.cancel=D,T.flush=_,T}return ui=o,ui}var zh=Oh(),Xr=zr(zh),ci=et?et.performance:null,yc=ci&&ci.now?function(){return ci.now()}:function(){return Date.now()},Vh=function(){if(et){if(et.requestAnimationFrame)return function(e){et.requestAnimationFrame(e)};if(et.mozRequestAnimationFrame)return function(e){et.mozRequestAnimationFrame(e)};if(et.webkitRequestAnimationFrame)return function(e){et.webkitRequestAnimationFrame(e)};if(et.msRequestAnimationFrame)return function(e){et.msRequestAnimationFrame(e)}}return function(e){e&&setTimeout(function(){e(yc())},1e3/60)}}(),Pa=function(e){return Vh(e)},Zt=yc,Bn=9261,mc=65599,Wn=5381,bc=function(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Bn,n=t,r;r=e.next(),!r.done;)n=n*mc+r.value|0;return n},Ar=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Bn;return t*mc+e|0},Sr=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Wn;return(t<<5)+t+e|0},Fh=function(e,t){return e*2097152+t},$t=function(e){return e[0]*2097152+e[1]},Hr=function(e,t){return[Ar(e[0],t[0]),Sr(e[1],t[1])]},Vs=function(e,t){var n={value:0,done:!1},r=0,a=e.length,i={next:function(){return r=0;r--)e[r]===t&&e.splice(r,1)},Do=function(e){e.splice(0,e.length)},Zh=function(e,t){for(var n=0;n"u"?"undefined":nt(Set))!==$h?Set:Jh,Va=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||t===void 0||!rs(e)){qe("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"){qe("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 rr,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(),u=e.zoom();a.position={x:(i.x-o.x)/u,y:(i.y-o.y)/u}}var l=[];Ve(t.classes)?l=t.classes:fe(t.classes)&&(l=t.classes.split(/\s+/));for(var s=0,c=l.length;sy?1:0},c=function(g,y,b,w,k){var C;if(b==null&&(b=0),k==null&&(k=r),b<0)throw new Error("lo must be non-negative");for(w==null&&(w=g.length);bD;0<=D?B++:B--)P.push(B);return P}.apply(this).reverse(),x=[],w=0,k=C.length;w_;0<=_?++P:--P)T.push(o(g,b));return T},v=function(g,y,b,w){var k,C,x;for(w==null&&(w=r),k=g[b];b>y;){if(x=b-1>>1,C=g[x],w(k,C)<0){g[b]=C,b=x;continue}break}return g[b]=k},m=function(g,y,b){var w,k,C,x,P;for(b==null&&(b=r),k=g.length,P=y,C=g[y],w=2*y+1;w0;){var k=g.pop(),C=v(k),x=k.id();if(d[x]=C,C!==1/0)for(var P=k.neighborhood().intersect(f),B=0;B0)for(R.unshift(N);c[L];){var I=c[L];R.unshift(I.edge),R.unshift(I.node),M=I.node,L=M.id()}return o.spawn(R)}}}},sf={kruskal:function(e){e=e||function(y){return 1};for(var t=this.byGroup(),n=t.nodes,r=t.edges,a=n.length,i=new Array(a),o=n,u=function(y){for(var b=0;b0;){if(w(),C++,b===s){for(var x=[],P=a,B=s,D=m[B];x.unshift(P),D!=null&&x.unshift(D),P=v[B],P!=null;)B=P.id(),D=m[B];return{found:!0,distance:c[b],path:this.spawn(x),steps:C}}h[b]=!0;for(var _=y._private.edges,T=0;T<_.length;T++){var S=_[T];if(this.hasElementWithId(S.id())&&!(o&&S.data("source")!==b)){var A=S.source(),N=S.target(),R=A.id()!==b?A:N,M=R.id();if(this.hasElementWithId(M)&&!h[M]){var L=c[b]+u(S);if(!k(M)){c[M]=L,d[M]=L+i(R),g(R,M),v[M]=y,m[M]=S;continue}LD&&(f[B]=D,g[B]=P,y[B]=w),!a){var _=P*s+x;!a&&f[_]>D&&(f[_]=D,g[_]=x,y[_]=w)}}}for(var T=0;T1&&arguments[1]!==void 0?arguments[1]:i,Ae=y(ye),ee=[],ue=Ae;;){if(ue==null)return t.spawn();var ce=g(ue),me=ce.edge,be=ce.pred;if(ee.unshift(ue[0]),ue.same(xe)&&ee.length>0)break;me!=null&&ee.unshift(me),ue=be}return u.spawn(ee)},k=0;k=0;s--){var c=l[s],d=c[1],h=c[2];(t[d]===o&&t[h]===u||t[d]===u&&t[h]===o)&&l.splice(s,1)}for(var f=0;fr;){var a=Math.floor(Math.random()*t.length);t=gf(a,e,t),n--}return t},vf={kargerStein:function(){var e=this,t=this.byGroup(),n=t.nodes,r=t.edges;r.unmergeBy(function(M){return M.isLoop()});var a=n.length,i=r.length,o=Math.ceil(Math.pow(Math.log(a)/Math.LN2,2)),u=Math.floor(a/pf);if(a<2){qe("At least 2 nodes are required for Karger-Stein algorithm");return}for(var l=[],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,u=e.length-1;u>=0;u--){var l=e[u];i?isFinite(l)||(e[u]=-1/0,o++):e.splice(u,1)}a&&e.sort(function(d,h){return d-h});var s=e.length,c=Math.floor(s/2);return s%2!==0?e[c+1+o]:(e[c-1+o]+e[c+o])/2},Ef=function(e){return Math.PI*e/180},Kr=function(e,t){return Math.atan2(t,e)-Math.PI/2},ls=Math.log2||function(e){return Math.log(e)/Math.log(2)},So=function(e){return e>0?1:e<0?-1:0},Mn=function(e,t){return Math.sqrt(Tn(e,t))},Tn=function(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r},kf=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}}},Cf=function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},Pf=function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},_f=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},Pc=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},ua=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},ca=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=$e(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},Ws=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},us=function(e,t){return!(e.x1>t.x2||t.x1>e.x2||e.x2t.y2||t.y1>e.y2)},sn=function(e,t,n){return e.x1<=t&&t<=e.x2&&e.y1<=n&&n<=e.y2},Gs=function(e,t){return sn(e,t.x,t.y)},_c=function(e,t){return sn(e,t.x1,t.y1)&&sn(e,t.x2,t.y2)},Bf=(hi=Math.hypot)!==null&&hi!==void 0?hi:function(e,t){return Math.sqrt(e*e+t*t)};function Df(e,t){if(e.length<3)throw new Error("Need at least 3 vertices");var n=function(x,P){return{x:x.x+P.x,y:x.y+P.y}},r=function(x,P){return{x:x.x-P.x,y:x.y-P.y}},a=function(x,P){return{x:x.x*P,y:x.y*P}},i=function(x,P){return x.x*P.y-x.y*P.x},o=function(x){var P=Bf(x.x,x.y);return P===0?{x:0,y:0}:{x:x.x/P,y:x.y/P}},u=function(x){for(var P=0,B=0;B7&&arguments[7]!==void 0?arguments[7]:"auto",l=u==="auto"?pn(a,i):u,s=a/2,c=i/2;l=Math.min(l,s,c);var d=l!==s,h=l!==c,f;if(d){var p=n-s+l-o,v=r-c-o,m=n+s-l+o,g=v;if(f=cn(e,t,n,r,p,v,m,g,!1),f.length>0)return f}if(h){var y=n+s+o,b=r-c+l-o,w=y,k=r+c-l+o;if(f=cn(e,t,n,r,y,b,w,k,!1),f.length>0)return f}if(d){var C=n-s+l-o,x=r+c+o,P=n+s-l+o,B=x;if(f=cn(e,t,n,r,C,x,P,B,!1),f.length>0)return f}if(h){var D=n-s-o,_=r-c+l-o,T=D,S=r+c-l+o;if(f=cn(e,t,n,r,D,_,T,S,!1),f.length>0)return f}var A;{var N=n-s+l,R=r-c+l;if(A=br(e,t,n,r,N,R,l+o),A.length>0&&A[0]<=N&&A[1]<=R)return[A[0],A[1]]}{var M=n+s-l,L=r-c+l;if(A=br(e,t,n,r,M,L,l+o),A.length>0&&A[0]>=M&&A[1]<=L)return[A[0],A[1]]}{var I=n+s-l,j=r+c-l;if(A=br(e,t,n,r,I,j,l+o),A.length>0&&A[0]>=I&&A[1]>=j)return[A[0],A[1]]}{var F=n-s+l,Y=r+c-l;if(A=br(e,t,n,r,F,Y,l+o),A.length>0&&A[0]<=F&&A[1]>=Y)return[A[0],A[1]]}return[]},Sf=function(e,t,n,r,a,i,o){var u=o,l=Math.min(n,a),s=Math.max(n,a),c=Math.min(r,i),d=Math.max(r,i);return l-u<=e&&e<=s+u&&c-u<=t&&t<=d+u},Mf=function(e,t,n,r,a,i,o,u,l){var s={x1:Math.min(n,o,a)-l,x2:Math.max(n,o,a)+l,y1:Math.min(r,u,i)-l,y2:Math.max(r,u,i)+l};return!(es.x2||ts.y2)},Rf=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,u=(-t+i)/o,l=(-t-i)/o;return[u,l]},If=function(e,t,n,r,a){var i=1e-5;e===0&&(e=i),t/=e,n/=e,r/=e;var o,u,l,s,c,d,h,f;if(u=(3*n-t*t)/9,l=-(27*r)+t*(9*n-2*(t*t)),l/=54,o=u*u*u+l*l,a[1]=0,h=t/3,o>0){c=l+Math.sqrt(o),c=c<0?-Math.pow(-c,1/3):Math.pow(c,1/3),d=l-Math.sqrt(o),d=d<0?-Math.pow(-d,1/3):Math.pow(d,1/3),a[0]=-h+c+d,h+=(c+d)/2,a[4]=a[2]=-h,h=Math.sqrt(3)*(-d+c)/2,a[3]=h,a[5]=-h;return}if(a[5]=a[3]=0,o===0){f=l<0?-Math.pow(-l,1/3):Math.pow(l,1/3),a[0]=-h+2*f,a[4]=a[2]=-(f+h);return}u=-u,s=u*u*u,s=Math.acos(l/Math.sqrt(s)),f=2*Math.sqrt(u),a[0]=-h+f*Math.cos(s/3),a[2]=-h+f*Math.cos((s+2*Math.PI)/3),a[4]=-h+f*Math.cos((s+4*Math.PI)/3)},Lf=function(e,t,n,r,a,i,o,u){var l=1*n*n-4*n*a+2*n*o+4*a*a-4*a*o+o*o+r*r-4*r*i+2*r*u+4*i*i-4*i*u+u*u,s=1*9*n*a-3*n*n-3*n*o-6*a*a+3*a*o+9*r*i-3*r*r-3*r*u-6*i*i+3*i*u,c=1*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*u-r*t+2*i*i+2*i*t-u*t,d=1*n*a-n*n+n*e-a*e+r*i-r*r+r*t-i*t,h=[];If(l,s,c,d,h);for(var f=1e-7,p=[],v=0;v<6;v+=2)Math.abs(h[v+1])=0&&h[v]<=1&&p.push(h[v]);p.push(1),p.push(0);for(var m=-1,g,y,b,w=0;w=0?bl?(e-a)*(e-a)+(t-i)*(t-i):s-d},Tt=function(e,t,n){for(var r,a,i,o,u,l=0,s=0;s=e&&e>=i||r<=e&&e<=i)u=(e-r)/(i-r)*(o-a)+a,u>t&&l++;else continue;return l%2!==0},Ut=function(e,t,n,r,a,i,o,u,l){var s=new Array(n.length),c;u[0]!=null?(c=Math.atan(u[1]/u[0]),u[0]<0?c=c+Math.PI/2:c=-c-Math.PI/2):c=u;for(var d=Math.cos(-c),h=Math.sin(-c),f=0;f0){var v=Da(s,-l);p=Ba(v)}else p=s;return Tt(e,t,p)},Of=function(e,t,n,r,a,i,o,u){for(var l=new Array(n.length*2),s=0;s=0&&v<=1&&g.push(v),m>=0&&m<=1&&g.push(m),g.length===0)return[];var y=g[0]*u[0]+e,b=g[0]*u[1]+t;if(g.length>1){if(g[0]==g[1])return[y,b];var w=g[1]*u[0]+e,k=g[1]*u[1]+t;return[y,b,w,k]}else return[y,b]},fi=function(e,t,n){return t<=e&&e<=n||n<=e&&e<=t?e:e<=t&&t<=n||n<=t&&t<=e?t:n},cn=function(e,t,n,r,a,i,o,u,l){var s=e-a,c=n-e,d=o-a,h=t-i,f=r-t,p=u-i,v=d*h-p*s,m=c*h-f*s,g=p*c-d*f;if(g!==0){var y=v/g,b=m/g,w=.001,k=0-w,C=1+w;return k<=y&&y<=C&&k<=b&&b<=C?[e+y*c,t+y*f]:l?[e+y*c,t+y*f]:[]}else return v===0||m===0?fi(e,n,o)===o?[o,u]:fi(e,n,a)===a?[a,i]:fi(a,o,n)===n?[n,r]:[]:[]},Vf=function(e,t,n,r,a){var i=[],o=r/2,u=a/2,l=t,s=n;i.push({x:l+o*e[0],y:s+u*e[1]});for(var c=1;c0){var p=Da(c,-u);h=Ba(p)}else h=c}else h=n;for(var v,m,g,y,b=0;b2){for(var f=[s[0],s[1]],p=Math.pow(f[0]-e,2)+Math.pow(f[1]-t,2),v=1;vs&&(s=y)},get:function(g){return l[g]}},d=0;d0?S=T.edgesTo(_)[0]:S=_.edgesTo(T)[0];var A=r(S);_=_.id(),k[_]>k[B]+A&&(k[_]=k[B]+A,C.nodes.indexOf(_)<0?C.push(_):C.updateItem(_),w[_]=0,b[_]=[]),k[_]==k[B]+A&&(w[_]=w[_]+w[B],b[_].push(B))}else for(var N=0;N0;){for(var I=y.pop(),j=0;j0&&o.push(n[u]);o.length!==0&&a.push(r.collection(o))}return a},ep=function(e,t){for(var n=0;n5&&arguments[5]!==void 0?arguments[5]:rp,o=r,u,l,s=0;s=2?lr(e,t,n,0,Js,ap):lr(e,t,n,0,$s)},squaredEuclidean:function(e,t,n){return lr(e,t,n,0,Js)},manhattan:function(e,t,n){return lr(e,t,n,0,$s)},max:function(e,t,n){return lr(e,t,n,-1/0,ip)}};$n["squared-euclidean"]=$n.squaredEuclidean,$n.squaredeuclidean=$n.squaredEuclidean;function Xa(e,t,n,r,a,i){var o;return Ue(e)?o=e:o=$n[e]||$n.euclidean,t===0&&Ue(e)?o(a,i):o(t,n,r,a,i)}var op=dt({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),ds=function(e){return op(e)},Aa=function(e,t,n,r,a){var i=a!=="kMedoids",o=i?function(c){return n[c]}:function(c){return r[c](n)},u=function(c){return r[c](t)},l=n,s=t;return Xa(e,r.length,o,u,l,s)},gi=function(e,t,n){for(var r=n.length,a=new Array(r),i=new Array(r),o=new Array(t),u=null,l=0;ln)return!1}return!0},up=function(e,t,n){for(var r=0;ro&&(o=t[l][s],u=s);a[u].push(e[l])}for(var c=0;c=a.threshold||a.mode==="dendrogram"&&e.length===1)return!1;var f=t[i],p=t[r[i]],v;a.mode==="dendrogram"?v={left:f,right:p,key:f.key}:v={value:f.value.concat(p.value),key:f.key},e[f.index]=v,e.splice(p.index,1),t[f.key]=v;for(var m=0;mn[p.key][g.key]&&(u=n[p.key][g.key])):a.linkage==="max"?(u=n[f.key][g.key],n[f.key][g.key]0&&r.push(a);return r},il=function(e,t,n){for(var r=[],a=0;ao&&(i=l,o=t[a*e+l])}i>0&&r.push(i)}for(var s=0;sl&&(u=s,l=c)}n[a]=i[u]}return r=il(e,t,n),r},ol=function(e){for(var t=this.cy(),n=this.nodes(),r=wp(e),a={},i=0;i=D?(_=D,D=S,T=A):S>_&&(_=S);for(var N=0;N0?1:0;C[P%r.minIterations*o+F]=Y,j+=Y}if(j>0&&(P>=r.minIterations-1||P==r.maxIterations-1)){for(var W=0,Q=0;Q1||k>1)&&(o=!0),c[y]=[],g.outgoers().forEach(function(x){x.isEdge()&&c[y].push(x.id())})}else d[y]=[void 0,g.target().id()]}):i.forEach(function(g){var y=g.id();if(g.isNode()){var b=g.degree(!0);b%2&&(u?l?o=!0:l=y:u=y),c[y]=[],g.connectedEdges().forEach(function(w){return c[y].push(w.id())})}else d[y]=[g.source().id(),g.target().id()]});var h={found:!1,trail:void 0};if(o)return h;if(l&&u)if(a){if(s&&l!=s)return h;s=l}else{if(s&&l!=s&&u!=s)return h;s||(s=l)}else s||(s=i[0].id());var f=function(g){for(var y=g,b=[g],w,k,C;c[y].length;)w=c[y].shift(),k=d[w][0],C=d[w][1],y!=C?(c[C]=c[C].filter(function(x){return x!=w}),y=C):!a&&y!=k&&(c[k]=c[k].filter(function(x){return x!=w}),y=k),b.unshift(w),b.unshift(y);return b},p=[],v=[];for(v=f(s);v.length!=1;)c[v[0]].length==0?(p.unshift(i.getElementById(v.shift())),p.unshift(i.getElementById(v.shift()))):v=f(v.shift()).concat(v);p.unshift(i.getElementById(v.shift()));for(var m in c)if(c[m].length)return h;return h.found=!0,h.trail=this.spawn(p,!0),h}},Qr=function(){var e=this,t={},n=0,r=0,a=[],i=[],o={},u=function(c,d){for(var h=i.length-1,f=[],p=e.spawn();i[h].x!=c||i[h].y!=d;)f.push(i.pop().edge),h--;f.push(i.pop().edge),f.forEach(function(v){var m=v.connectedNodes().intersection(e);p.merge(v),m.forEach(function(g){var y=g.id(),b=g.connectedEdges().intersection(e);p.merge(g),t[y].cutVertex?p.merge(b.filter(function(w){return w.isLoop()})):p.merge(b)})}),a.push(p)},l=function(c,d,h){c===h&&(r+=1),t[d]={id:n,low:n++,cutVertex:!1};var f=e.getElementById(d).connectedEdges().intersection(e);if(f.size()===0)a.push(e.spawn(e.getElementById(d)));else{var p,v,m,g;f.forEach(function(y){p=y.source().id(),v=y.target().id(),m=p===d?v:p,m!==h&&(g=y.id(),o[g]||(o[g]=!0,i.push({x:d,y:m,edge:y})),m in t?t[d].low=Math.min(t[d].low,t[m].id):(l(c,m,d),t[d].low=Math.min(t[d].low,t[m].low),t[d].id<=t[m].low&&(t[d].cutVertex=!0,u(d,m))))})}};e.forEach(function(c){if(c.isNode()){var d=c.id();d in t||(r=0,l(d,d),t[d].cutVertex=r>1)}});var s=Object.keys(t).filter(function(c){return t[c].cutVertex}).map(function(c){return e.getElementById(c)});return{cut:e.spawn(s),components:a}},Dp={hopcroftTarjanBiconnected:Qr,htbc:Qr,htb:Qr,hopcroftTarjanBiconnectedComponents:Qr},$r=function(){var e=this,t={},n=0,r=[],a=[],i=e.spawn(e),o=function(u){a.push(u),t[u]={index:n,low:n++,explored:!1};var l=e.getElementById(u).connectedEdges().intersection(e);if(l.forEach(function(f){var p=f.target().id();p!==u&&(p in t||o(p),t[p].explored||(t[u].low=Math.min(t[u].low,t[p].low)))}),t[u].index===t[u].low){for(var s=e.spawn();;){var c=a.pop();if(s.merge(e.getElementById(c)),t[c].low=t[u].index,t[c].explored=!0,c===u)break}var d=s.edgesWith(s),h=s.merge(d);r.push(h),i=i.difference(h)}};return e.forEach(function(u){if(u.isNode()){var l=u.id();l in t||o(l)}}),{cut:i,components:r}},Ap={tarjanStronglyConnected:$r,tsc:$r,tscc:$r,tarjanStronglyConnectedComponents:$r},Ic={};[mr,of,sf,uf,df,ff,vf,jf,Gn,Hn,Io,np,gp,bp,Pp,Bp,Dp,Ap].forEach(function(e){ge(Ic,e)});var Lc=0,Nc=1,Oc=2,Lt=function(e){if(!(this instanceof Lt))return new Lt(e);this.id="Thenable/1.0.7",this.state=Lc,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))};Lt.prototype={fulfill:function(e){return sl(this,Nc,"fulfillValue",e)},reject:function(e){return sl(this,Oc,"rejectReason",e)},then:function(e,t){var n=this,r=new Lt;return n.onFulfilled.push(ul(e,r,"fulfill")),n.onRejected.push(ul(t,r,"reject")),zc(n),r.proxy}};var sl=function(e,t,n,r){return e.state===Lc&&(e.state=t,e[n]=r,zc(e)),e},zc=function(e){e.state===Nc?ll(e,"onFulfilled",e.fulfillValue):e.state===Oc&&ll(e,"onRejected",e.rejectReason)},ll=function(e,t,n){if(e[t].length!==0){var r=e[t];e[t]=[];var a=function(){for(var i=0;i0}},clearQueue:function(){return 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 Oi=t,Oi}var zi,Ml;function Kp(){if(Ml)return zi;Ml=1;var e=qa();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 zi=t,zi}var Vi,Rl;function Zp(){if(Rl)return Vi;Rl=1;var e=Up(),t=Wp(),n=Gp(),r=Hp(),a=Kp();function i(o){var u=-1,l=o==null?0:o.length;for(this.clear();++u-1&&r%1==0&&r0&&this.spawn(r).updateStyle().emit("class"),t},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var t=this[0];return t!=null&&t._private.classes.has(e)},toggleClass: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},removeClass:function(e){return this.toggleClass(e,!1)},flashClass: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}};da.className=da.classNames=da.classes;var Be={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:tt,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};Be.variable="(?:[\\w-.]|(?:\\\\"+Be.metaChar+"))+",Be.className="(?:[\\w-]|(?:\\\\"+Be.metaChar+"))+",Be.value=Be.string+"|"+Be.number,Be.id=Be.variable,function(){var e,t,n;for(e=Be.comparatorOp.split("|"),n=0;n=0)&&t!=="="&&(Be.comparatorOp+="|\\!"+t)}();var ze=function(){return{checks:[]}},se={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},zo=[{selector:":selected",matches:function(e){return e.selected()}},{selector:":unselected",matches:function(e){return!e.selected()}},{selector:":selectable",matches:function(e){return e.selectable()}},{selector:":unselectable",matches:function(e){return!e.selectable()}},{selector:":locked",matches:function(e){return e.locked()}},{selector:":unlocked",matches:function(e){return!e.locked()}},{selector:":visible",matches:function(e){return e.visible()}},{selector:":hidden",matches:function(e){return!e.visible()}},{selector:":transparent",matches:function(e){return e.transparent()}},{selector:":grabbed",matches:function(e){return e.grabbed()}},{selector:":free",matches:function(e){return!e.grabbed()}},{selector:":removed",matches:function(e){return e.removed()}},{selector:":inside",matches:function(e){return!e.removed()}},{selector:":grabbable",matches:function(e){return e.grabbable()}},{selector:":ungrabbable",matches:function(e){return!e.grabbable()}},{selector:":animated",matches:function(e){return e.animated()}},{selector:":unanimated",matches:function(e){return!e.animated()}},{selector:":parent",matches:function(e){return e.isParent()}},{selector:":childless",matches:function(e){return e.isChildless()}},{selector:":child",matches:function(e){return e.isChild()}},{selector:":orphan",matches:function(e){return e.isOrphan()}},{selector:":nonorphan",matches:function(e){return e.isChild()}},{selector:":compound",matches:function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()}},{selector:":loop",matches:function(e){return e.isLoop()}},{selector:":simple",matches:function(e){return e.isSimple()}},{selector:":active",matches:function(e){return e.active()}},{selector:":inactive",matches:function(e){return!e.active()}},{selector:":backgrounding",matches:function(e){return e.backgrounding()}},{selector:":nonbackgrounding",matches:function(e){return!e.backgrounding()}}].sort(function(e,t){return kh(e.selector,t.selector)}),_g=function(){for(var e={},t,n=0;n0&&s.edgeCount>0)return Ne("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(s.edgeCount>1)return Ne("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;s.edgeCount===1&&Ne("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},Rg=function(){if(this.toStringCache!=null)return this.toStringCache;for(var e=function(l){return l??""},t=function(l){return fe(l)?'"'+l+'"':e(l)},n=function(l){return" "+l+" "},r=function(l,s){var c=l.type,d=l.value;switch(c){case se.GROUP:{var h=e(d);return h.substring(0,h.length-1)}case se.DATA_COMPARE:{var f=l.field,p=l.operator;return"["+f+n(e(p))+t(d)+"]"}case se.DATA_BOOL:{var v=l.operator,m=l.field;return"["+e(v)+m+"]"}case se.DATA_EXIST:{var g=l.field;return"["+g+"]"}case se.META_COMPARE:{var y=l.operator,b=l.field;return"[["+b+n(e(y))+t(d)+"]]"}case se.STATE:return d;case se.ID:return"#"+d;case se.CLASS:return"."+d;case se.PARENT:case se.CHILD:return a(l.parent,s)+n(">")+a(l.child,s);case se.ANCESTOR:case se.DESCENDANT:return a(l.ancestor,s)+" "+a(l.descendant,s);case se.COMPOUND_SPLIT:{var w=a(l.left,s),k=a(l.subject,s),C=a(l.right,s);return w+(w.length>0?" ":"")+k+C}case se.TRUE:return""}},a=function(l,s){return l.checks.reduce(function(c,d,h){return c+(s===l&&h===0?"$":"")+r(d,s)},"")},i="",o=0;o1&&o=0&&(t=t.replace("!",""),c=!0),t.indexOf("@")>=0&&(t=t.replace("@",""),s=!0),(a||o||s)&&(u=!a&&!i?"":""+e,l=""+n),s&&(e=u=u.toLowerCase(),n=l=l.toLowerCase()),t){case"*=":r=u.indexOf(l)>=0;break;case"$=":r=u.indexOf(l,u.length-l.length)>=0;break;case"^=":r=u.indexOf(l)===0;break;case"=":r=e===n;break;case">":d=!0,r=e>n;break;case">=":d=!0,r=e>=n;break;case"<":d=!0,r=e0;){var c=a.shift();t(c),i.add(c.id()),u&&r(a,i,c)}return e}function Uc(e,t,n){if(n.isParent())for(var r=n._private.children,a=0;a1&&arguments[1]!==void 0?arguments[1]:!0;return ps(this,e,t,Uc)};function Wc(e,t,n){if(n.isChild()){var r=n._private.parent;t.has(r.id())||e.push(r)}}tr.forEachUp=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return ps(this,e,t,Wc)};function Xg(e,t,n){Wc(e,t,n),Uc(e,t,n)}tr.forEachUpAndDown=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return ps(this,e,t,Xg)},tr.ancestors=tr.parents;var ur,Gc;ur=Gc={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:function(){var e=this[0];if(e)return e._private.data.id}},ur.attr=ur.data,ur.removeAttr=ur.removeData;var Yg=Gc,Sa={};function go(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:Ln("indegree",function(e,t){return et}),minOutdegree:Ln("outdegree",function(e,t){return et})}),ge(Sa,{totalDegree:function(e){for(var t=0,n=this.nodes(),r=0;r0,d=c;c&&(s=s[0]);var h=d?s.position():{x:0,y:0};t!==void 0?l.position(e,t+h[e]):a!==void 0&&l.position({x:a.x+h.x,y:a.y+h.y})}else{var f=n.position(),p=o?n.parent():null,v=p&&p.length>0,m=v;v&&(p=p[0]);var g=m?p.position():{x:0,y:0};return a={x:f.x-g.x,y:f.y-g.y},e===void 0?a:a[e]}else if(!i)return;return this}},Rt.modelPosition=Rt.point=Rt.position,Rt.modelPositions=Rt.points=Rt.positions,Rt.renderedPoint=Rt.renderedPosition,Rt.relativePoint=Rt.relativePosition;var jg=Hc,Kn,dn;Kn=dn={},dn.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,u=t.y1*r+a.y,l=t.y2*r+a.y;return{x1:i,x2:o,y1:u,y2:l,w:o-i,h:l-u}},dn.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)},dn.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 u=o._private,l=o.children(),s=o.pstyle("compound-sizing-wrt-labels").value==="include",c={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")}},d=l.boundingBox({includeLabels:s,includeOverlays:!1,useCache:!1}),h=u.position;(d.w===0||d.h===0)&&(d={w:o.pstyle("width").pfValue,h:o.pstyle("height").pfValue},d.x1=h.x-d.w/2,d.x2=h.x+d.w/2,d.y1=h.y-d.h/2,d.y2=h.y+d.h/2);function f(B,D,_){var T=0,S=0,A=D+_;return B>0&&A>0&&(T=D/A*B,S=_/A*B),{biasDiff:T,biasComplementDiff:S}}function p(B,D,_,T){if(_.units==="%")switch(T){case"width":return B>0?_.pfValue*B:0;case"height":return D>0?_.pfValue*D:0;case"average":return B>0&&D>0?_.pfValue*(B+D)/2:0;case"min":return B>0&&D>0?B>D?_.pfValue*D:_.pfValue*B:0;case"max":return B>0&&D>0?B>D?_.pfValue*B:_.pfValue*D:0;default:return 0}else return _.units==="px"?_.pfValue:0}var v=c.width.left.value;c.width.left.units==="px"&&c.width.val>0&&(v=v*100/c.width.val);var m=c.width.right.value;c.width.right.units==="px"&&c.width.val>0&&(m=m*100/c.width.val);var g=c.height.top.value;c.height.top.units==="px"&&c.height.val>0&&(g=g*100/c.height.val);var y=c.height.bottom.value;c.height.bottom.units==="px"&&c.height.val>0&&(y=y*100/c.height.val);var b=f(c.width.val-d.w,v,m),w=b.biasDiff,k=b.biasComplementDiff,C=f(c.height.val-d.h,g,y),x=C.biasDiff,P=C.biasComplementDiff;u.autoPadding=p(d.w,d.h,o.pstyle("padding"),o.pstyle("padding-relative-to").value),u.autoWidth=Math.max(d.w,c.width.val),h.x=(-w+d.x1+d.x2+k)/2,u.autoHeight=Math.max(d.h,c.height.val),h.y=(-x+d.y1+d.y2+P)/2}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)},rn=function(e,t){return t==null?e:It(e,t.x1,t.y1,t.x2,t.y2)},cr=function(e,t,n){return kt(e,t,n)},Jr=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,u,l;if(o!=="none"){n==="source"?(u=a.srcX,l=a.srcY):n==="target"?(u=a.tgtX,l=a.tgtY):(u=a.midX,l=a.midY);var s=r.arrowBounds=r.arrowBounds||{},c=s[n]=s[n]||{};c.x1=u-i,c.y1=l-i,c.x2=u+i,c.y2=l+i,c.w=c.x2-c.x1,c.h=c.y2-c.y1,ua(c,1),It(e,c.x1,c.y1,c.x2,c.y2)}}},vo=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 u=t.pstyle("text-halign"),l=t.pstyle("text-valign"),s=cr(i,"labelWidth",n),c=cr(i,"labelHeight",n),d=cr(i,"labelX",n),h=cr(i,"labelY",n),f=t.pstyle(r+"text-margin-x").pfValue,p=t.pstyle(r+"text-margin-y").pfValue,v=t.isEdge(),m=t.pstyle(r+"text-rotation"),g=t.pstyle("text-outline-width").pfValue,y=t.pstyle("text-border-width").pfValue,b=y/2,w=t.pstyle("text-background-padding").pfValue,k=2,C=c,x=s,P=x/2,B=C/2,D,_,T,S;if(v)D=d-P,_=d+P,T=h-B,S=h+B;else{switch(u.value){case"left":D=d-x,_=d;break;case"center":D=d-P,_=d+P;break;case"right":D=d,_=d+x;break}switch(l.value){case"top":T=h-C,S=h;break;case"center":T=h-B,S=h+B;break;case"bottom":T=h,S=h+C;break}}var A=f-Math.max(g,b)-w-k,N=f+Math.max(g,b)+w+k,R=p-Math.max(g,b)-w-k,M=p+Math.max(g,b)+w+k;D+=A,_+=N,T+=R,S+=M;var L=n||"main",I=a.labelBounds,j=I[L]=I[L]||{};j.x1=D,j.y1=T,j.x2=_,j.y2=S,j.w=_-D,j.h=S-T,j.leftPad=A,j.rightPad=N,j.topPad=R,j.botPad=M;var F=v&&m.strValue==="autorotate",Y=m.pfValue!=null&&m.pfValue!==0;if(F||Y){var W=F?cr(a.rstyle,"labelAngle",n):m.pfValue,Q=Math.cos(W),$=Math.sin(W),Z=(D+_)/2,J=(T+S)/2;if(!v){switch(u.value){case"left":Z=_;break;case"right":Z=D;break}switch(l.value){case"top":J=S;break;case"bottom":J=T;break}}var re=function(we,ye){return we=we-Z,ye=ye-J,{x:we*Q-ye*$+Z,y:we*$+ye*Q+J}},V=re(D,T),O=re(D,S),z=re(_,T),H=re(_,S);D=Math.min(V.x,O.x,z.x,H.x),_=Math.max(V.x,O.x,z.x,H.x),T=Math.min(V.y,O.y,z.y,H.y),S=Math.max(V.y,O.y,z.y,H.y)}var te=L+"Rot",ae=I[te]=I[te]||{};ae.x1=D,ae.y1=T,ae.x2=_,ae.y2=S,ae.w=_-D,ae.h=S-T,It(e,D,T,_,S),It(a.labelBounds.all,D,T,_,S)}return e}},uu=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;Zc(e,t,n,i,"outside",i/2)}},Zc=function(e,t,n,r,a,i){if(!(n===0||r<=0||a==="inside")){var o=t.cy(),u=t.pstyle("shape").value,l=o.renderer().nodeShapes[u],s=t.position(),c=s.x,d=s.y,h=t.width(),f=t.height();if(l.hasMiterBounds){a==="center"&&(r/=2);var p=l.miterBounds(c,d,h,f,r);rn(e,p)}else i!=null&&i>0&&ca(e,[i,i,i,i])}},qg=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;Zc(e,t,n,r,a)}},Ug=function(e,t){var n=e._private.cy,r=n.styleEnabled(),a=n.headless(),i=xt(),o=e._private,u=e.isNode(),l=e.isEdge(),s,c,d,h,f,p,v=o.rstyle,m=u&&r?e.pstyle("bounds-expansion").pfValue:[0],g=function(ae){return ae.pstyle("display").value!=="none"},y=!r||g(e)&&(!l||g(e.source())&&g(e.target()));if(y){var b=0,w=0;r&&t.includeOverlays&&(b=e.pstyle("overlay-opacity").value,b!==0&&(w=e.pstyle("overlay-padding").value));var k=0,C=0;r&&t.includeUnderlays&&(k=e.pstyle("underlay-opacity").value,k!==0&&(C=e.pstyle("underlay-padding").value));var x=Math.max(w,C),P=0,B=0;if(r&&(P=e.pstyle("width").pfValue,B=P/2),u&&t.includeNodes){var D=e.position();f=D.x,p=D.y;var _=e.outerWidth(),T=_/2,S=e.outerHeight(),A=S/2;s=f-T,c=f+T,d=p-A,h=p+A,It(i,s,d,c,h),r&&uu(i,e),r&&t.includeOutlines&&!a&&uu(i,e),r&&qg(i,e)}else if(l&&t.includeEdges)if(r&&!a){var N=e.pstyle("curve-style").strValue;if(s=Math.min(v.srcX,v.midX,v.tgtX),c=Math.max(v.srcX,v.midX,v.tgtX),d=Math.min(v.srcY,v.midY,v.tgtY),h=Math.max(v.srcY,v.midY,v.tgtY),s-=B,c+=B,d-=B,h+=B,It(i,s,d,c,h),N==="haystack"){var R=v.haystackPts;if(R&&R.length===2){if(s=R[0].x,d=R[0].y,c=R[1].x,h=R[1].y,s>c){var M=s;s=c,c=M}if(d>h){var L=d;d=h,h=L}It(i,s-B,d-B,c+B,h+B)}}else if(N==="bezier"||N==="unbundled-bezier"||ln(N,"segments")||ln(N,"taxi")){var I;switch(N){case"bezier":case"unbundled-bezier":I=v.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":I=v.linePts;break}if(I!=null)for(var j=0;jc){var Z=s;s=c,c=Z}if(d>h){var J=d;d=h,h=J}s-=B,c+=B,d-=B,h+=B,It(i,s,d,c,h)}if(r&&t.includeEdges&&l&&(Jr(i,e,"mid-source"),Jr(i,e,"mid-target"),Jr(i,e,"source"),Jr(i,e,"target")),r){var re=e.pstyle("ghost").value==="yes";if(re){var V=e.pstyle("ghost-offset-x").pfValue,O=e.pstyle("ghost-offset-y").pfValue;It(i,i.x1+V,i.y1+O,i.x2+V,i.y2+O)}}var z=o.bodyBounds=o.bodyBounds||{};Ws(z,i),ca(z,m),ua(z,1),r&&(s=i.x1,c=i.x2,d=i.y1,h=i.y2,It(i,s-x,d-x,c+x,h+x));var H=o.overlayBounds=o.overlayBounds||{};Ws(H,i),ca(H,m),ua(H,1);var te=o.labelBounds=o.labelBounds||{};te.all!=null?Pf(te.all):te.all=xt(),r&&t.includeLabels&&(t.includeMainLabels&&vo(i,e,null),l&&(t.includeSourceLabels&&vo(i,e,"source"),t.includeTargetLabels&&vo(i,e,"target")))}return i.x1=Dt(i.x1),i.y1=Dt(i.y1),i.x2=Dt(i.x2),i.y2=Dt(i.y2),i.w=Dt(i.x2-i.x1),i.h=Dt(i.y2-i.y1),i.w>0&&i.h>0&&y&&(ca(i,m),ua(i,1)),i},Qc=function(e){var t=0,n=function(a){return(a?1:0)<0&&arguments[0]!==void 0?arguments[0]:ov,t=arguments.length>1?arguments[1]:void 0,n=0;n=0;u--)o(u);return this},tn.removeAllListeners=function(){return this.removeListener("*")},tn.emit=tn.trigger=function(e,t,n){var r=this.listeners,a=r.length;return this.emitting++,Ve(t)||(t=[t]),sv(this,function(i,o){n!=null&&(r=[{event:o.event,type:o.type,namespace:o.namespace,callback:n}],a=r.length);for(var u=function(){var s=r[l];if(s.type===o.type&&(!s.namespace||s.namespace===o.namespace||s.namespace===iv)&&i.eventMatches(i.context,s,o)){var c=[o];t!=null&&Zh(c,t),i.beforeEmit(i.context,s,o),s.conf&&s.conf.one&&(i.listeners=i.listeners.filter(function(f){return f!==s}));var d=i.callbackContext(i.context,s,o),h=s.callback.apply(d,c);i.afterEmit(i.context,s,o),h===!1&&(o.stopPropagation(),o.preventDefault())}},l=0;l1&&!i){var o=this.length-1,u=this[o],l=u._private.data.id;this[o]=void 0,this[e]=u,a.set(l,{ele:u,index:e})}return this.length--,this},unmergeOne: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},unmerge:function(e){var t=this._private.cy;if(!e)return this;if(e&&fe(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},map:function(e,t){for(var n=[],r=this,a=0;an&&(n=u,r=o)}return{value:n,ele:r}},min:function(e,t){for(var n=1/0,r,a=this,i=0;i=0&&a"u"?"undefined":nt(Symbol))!=e&&nt(Symbol.iterator)!=e;t&&(Ma[Symbol.iterator]=function(){var n=this,r={value:void 0,done:!1},a=0,i=this.length;return oc({next: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)}},numericStyle: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}},numericStyleUnits:function(e){var t=this[0];if(t.cy().styleEnabled()&&t)return t.pstyle(e).units},renderedStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=this[0];if(n)return t.style().getRenderedStyle(n,e)},style:function(e,t){var n=this.cy();if(!n.styleEnabled())return this;var r=!1,a=n.style();if(De(e)){var i=e;a.applyBypass(this,i,r),this.emitAndNotify("style")}else if(fe(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 u=this[0];return u?a.getRawStyle(u):void 0}return this},removeStyle: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(c[0]),t.push(u[0])}return this.spawn(t,!0).filter(e)},"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}}),gt.neighbourhood=gt.neighborhood,gt.closedNeighbourhood=gt.closedNeighborhood,gt.openNeighbourhood=gt.openNeighborhood,ge(gt,{source:At(function(e){var t=this[0],n;return t&&(n=t._private.source||t.cy().collection()),n&&e?n.filter(e):n},"source"),target:At(function(e){var t=this[0],n;return t&&(n=t._private.target||t.cy().collection()),n&&e?n.filter(e):n},"target"),sources:Eu({attr:"source"}),targets:Eu({attr:"target"})});function Eu(e){return function(t){for(var n=[],r=0;r0);return i},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}}),gt.componentsOf=gt.components;var ct=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){qe("A collection must have a reference to the core");return}var a=new Kt,i=!1;if(!t)t=[];else if(t.length>0&&De(t[0])&&!Or(t[0])){i=!0;for(var o=[],u=new rr,l=0,s=t.length;l0&&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=[],u,l=0,s=n.length;l0){for(var I=u.length===n.length?n:new ct(r,u),j=0;j0&&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 N=A._private.edges,R=0;R0&&(e?_.emitAndNotify("remove"):t&&_.emit("remove"));for(var T=0;T0?T=A:_=A;while(Math.abs(S)>o&&++N=i?y(D,N):R===0?N:w(D,_,_+s)}var C=!1;function x(){C=!0,(e!==t||n!==r)&&b()}var P=function(D){return C||x(),e===t&&n===r?D:D===0?0:D===1?1:m(k(D),t,r)};P.getControlPoints=function(){return[{x:e,y:t},{x:n,y:r}]};var B="generateBezier("+[e,t,n,r]+")";return P.toString=function(){return B},P}var mv=function(){function e(r){return-r.tension*r.x-r.friction*r.v}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)}}function n(r,a){var i={dx:r.v,dv:e(r)},o=t(r,a*.5,i),u=t(r,a*.5,o),l=t(r,a,u),s=1/6*(i.dx+2*(o.dx+u.dx)+l.dx),c=1/6*(i.dv+2*(o.dv+u.dv)+l.dv);return r.x=r.x+s*a,r.v=r.v+c*a,r}return function r(a,i,o){var u={x:-1,v:0,tension:null,friction:null},l=[0],s=0,c=1/1e4,d=16/1e3,h,f,p;for(a=parseFloat(a)||500,i=parseFloat(i)||20,o=o||null,u.tension=a,u.friction=i,h=o!==null,h?(s=r(a,i),f=s/o*d):f=d;p=n(p||u,f),l.push(1+p.x),s+=16,Math.abs(p.x)>c&&Math.abs(p.v)>c;);return h?function(v){return l[v*(l.length-1)|0]}:s}}(),Ye=function(e,t,n,r){var a=yv(e,t,n,r);return function(i,o,u){return i+(o-i)*a(u)}},fa={linear:function(e,t,n){return e+(t-e)*n},ease:Ye(.25,.1,.25,1),"ease-in":Ye(.42,0,1,1),"ease-out":Ye(0,0,.58,1),"ease-in-out":Ye(.42,0,.58,1),"ease-in-sine":Ye(.47,0,.745,.715),"ease-out-sine":Ye(.39,.575,.565,1),"ease-in-out-sine":Ye(.445,.05,.55,.95),"ease-in-quad":Ye(.55,.085,.68,.53),"ease-out-quad":Ye(.25,.46,.45,.94),"ease-in-out-quad":Ye(.455,.03,.515,.955),"ease-in-cubic":Ye(.55,.055,.675,.19),"ease-out-cubic":Ye(.215,.61,.355,1),"ease-in-out-cubic":Ye(.645,.045,.355,1),"ease-in-quart":Ye(.895,.03,.685,.22),"ease-out-quart":Ye(.165,.84,.44,1),"ease-in-out-quart":Ye(.77,0,.175,1),"ease-in-quint":Ye(.755,.05,.855,.06),"ease-out-quint":Ye(.23,1,.32,1),"ease-in-out-quint":Ye(.86,0,.07,1),"ease-in-expo":Ye(.95,.05,.795,.035),"ease-out-expo":Ye(.19,1,.22,1),"ease-in-out-expo":Ye(1,0,0,1),"ease-in-circ":Ye(.6,.04,.98,.335),"ease-out-circ":Ye(.075,.82,.165,1),"ease-in-out-circ":Ye(.785,.135,.15,.86),spring:function(e,t,n){if(n===0)return fa.linear;var r=mv(e,t,n);return function(a,i,o){return a+(i-a)*r(o)}},"cubic-bezier":Ye};function Cu(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}function Pu(e,t){return e.pfValue!=null||e.value!=null?e.pfValue!=null&&(t==null||t.type.units!=="%")?e.pfValue:e.value:e}function On(e,t,n,r,a){var i=a!=null?a.type:null;n<0?n=0:n>1&&(n=1);var o=Pu(e,a),u=Pu(t,a);if(ne(o)&&ne(u))return Cu(i,o,u,n,r);if(Ve(o)&&Ve(u)){for(var l=[],s=0;s0?(f==="spring"&&p.push(o.duration),o.easingImpl=fa[f].apply(null,p)):o.easingImpl=fa[f]}var v=o.easingImpl,m;if(o.duration===0?m=1:m=(n-l)/o.duration,o.applying&&(m=o.progress),m<0?m=0:m>1&&(m=1),o.delay==null){var g=o.startPosition,y=o.position;if(y&&a&&!e.locked()){var b={};hr(g.x,y.x)&&(b.x=On(g.x,y.x,m,v)),hr(g.y,y.y)&&(b.y=On(g.y,y.y,m,v)),e.position(b)}var w=o.startPan,k=o.pan,C=i.pan,x=k!=null&&r;x&&(hr(w.x,k.x)&&(C.x=On(w.x,k.x,m,v)),hr(w.y,k.y)&&(C.y=On(w.y,k.y,m,v)),e.emit("pan"));var P=o.startZoom,B=o.zoom,D=B!=null&&r;D&&(hr(P,B)&&(i.zoom=Mr(i.minZoom,On(P,B,m,v),i.maxZoom)),e.emit("zoom")),(x||D)&&e.emit("viewport");var _=o.style;if(_&&_.length>0&&a){for(var T=0;T<_.length;T++){var S=_[T],A=S.name,N=S,R=o.startStyle[A],M=c.properties[R.name],L=On(R,N,m,v,M);c.overrideBypass(e,A,L)}e.emit("style")}}return o.progress=m,m}function hr(e,t){return e==null||t==null?!1:ne(e)&&ne(t)?!0:!!(e&&t)}function xv(e,t,n,r){var a=t._private;a.started=!0,a.startTime=n-a.progress*a.duration}function _u(e,t){var n=t._private.aniEles,r=[];function a(c,d){var h=c._private,f=h.animation.current,p=h.animation.queue,v=!1;if(f.length===0){var m=p.shift();m&&f.push(m)}for(var g=function(k){for(var C=k.length-1;C>=0;C--){var x=k[C];x()}k.splice(0,k.length)},y=f.length-1;y>=0;y--){var b=f[y],w=b._private;if(w.stopped){f.splice(y,1),w.hooked=!1,w.playing=!1,w.started=!1,g(w.frames);continue}!w.playing&&!w.applying||(w.playing&&w.applying&&(w.applying=!1),w.started||xv(c,b,e),bv(c,b,e,d),w.applying&&(w.applying=!1),g(w.frames),w.step!=null&&w.step(e),b.completed()&&(f.splice(y,1),w.hooked=!1,w.playing=!1,w.started=!1,g(w.completes)),v=!0)}return!d&&f.length===0&&p.length===0&&r.push(c),v}for(var i=!1,o=0;o0?t.notify("draw",n):t.notify("draw")),n.unmerge(r),t.emit("step")}var wv={animate:Le.animate(),animation:Le.animation(),animated:Le.animated(),clearQueue:Le.clearQueue(),delay:Le.delay(),delayAnimation:Le.delayAnimation(),stop:Le.stop(),addToAnimationPool:function(e){var t=this;t.styleEnabled()&&t._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function t(){e._private.animationsRunning&&Pa(function(r){_u(r,e),t()})}var n=e.renderer();n&&n.beforeRender?n.beforeRender(function(r,a){_u(a,e)},n.beforeRenderPriorities.animations):t()}},Ev={qualifierCompare:function(e,t){return e==null||t==null?e==null&&t==null:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return r!=null?e!==n.target&&Or(n.target)&&r.matches(n.target):!0},addEventFields:function(e,t){t.cy=e,t.target=e},callbackContext:function(e,t,n){return t.qualifier!=null?n.target:e}},na=function(e){return fe(e)?new gn(e):e},od={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new Wa(Ev,this)),this},emitter:function(){return this._private.emitter},on:function(e,t,n){return this.emitter().on(e,na(t),n),this},removeListener:function(e,t,n){return this.emitter().removeListener(e,na(t),n),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,n){return this.emitter().one(e,na(t),n),this},once:function(e,t,n){return this.emitter().one(e,na(t),n),this},emit:function(e,t){return this.emitter().emit(e,t),this},emitAndNotify:function(e,t){return this.emit(e),this.notify(e,t),this}};Le.eventAliasesOn(od);var Fo={png:function(e){var t=this._private.renderer;return e=e||{},t.png(e)},jpg:function(e){var t=this._private.renderer;return e=e||{},e.bg=e.bg||"#fff",t.jpg(e)}};Fo.jpeg=Fo.jpg;var pa={layout:function(e){var t=this;if(e==null){qe("Layout options must be specified to make a layout");return}if(e.name==null){qe("A `name` must be specified to make a layout");return}var n=e.name,r=t.extension("layout",n);if(r==null){qe("No such layout `"+n+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var a;fe(e.eles)?a=t.$(e.eles):a=e.eles!=null?e.eles:t.$();var i=new r(ge({},e,{cy:t,eles:a}));return i}};pa.createLayout=pa.makeLayout=pa.layout;var kv={notify: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)}},notifications:function(e){var t=this._private;return e===void 0?t.notificationsEnabled:(t.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return e.batchCount==null&&(e.batchCount=0),e.batchCount===0&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch: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},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData: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=[]})},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};Xo.invalidateDimensions=Xo.resize;var ga={collection:function(e,t){return fe(e)?this.$(e):Pt(e)?e.collection():Ve(e)?(t||(t={}),new ct(this,e,t.unique,t.removed)):new ct(this)},nodes:function(e){var t=this.$(function(n){return n.isNode()});return e?t.filter(e):t},edges:function(e){var t=this.$(function(n){return n.isEdge()});return e?t.filter(e):t},$:function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},mutableElements:function(){return this._private.elements}};ga.elements=ga.filter=ga.$;var at={},fr="t",Cv="f";at.apply=function(e){for(var t=this,n=t._private,r=n.cy,a=r.collection(),i=0;i0;if(h||d&&f){var p=void 0;h&&f||h?p=s.properties:f&&(p=s.mappedProperties);for(var v=0;v1&&(w=1),u.color){var C=r.valueMin[0],x=r.valueMax[0],P=r.valueMin[1],B=r.valueMax[1],D=r.valueMin[2],_=r.valueMax[2],T=r.valueMin[3]==null?1:r.valueMin[3],S=r.valueMax[3]==null?1:r.valueMax[3],A=[Math.round(C+(x-C)*w),Math.round(P+(B-P)*w),Math.round(D+(_-D)*w),Math.round(T+(S-T)*w)];i={bypass:r.bypass,name:r.name,value:A,strValue:"rgb("+A[0]+", "+A[1]+", "+A[2]+")"}}else if(u.number){var N=r.valueMin+(r.valueMax-r.valueMin)*w;i=this.parse(r.name,N,r.bypass,h)}else return!1;if(!i)return v(),!1;i.mapping=r,r=i;break}case o.data:{for(var R=r.field.split("."),M=d.data,L=0;L0&&i>0){for(var u={},l=!1,s=0;s0?e.delayAnimation(o).play().promise().then(b):b()}).then(function(){return e.animation({style:u,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)},at.checkTrigger=function(e,t,n,r,a,i){var o=this.properties[t],u=a(o);e.removed()||u!=null&&u(n,r,e)&&i(o)},at.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)})},at.checkBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,function(a){return a.triggersBounds},function(a){e.dirtyCompoundBoundsCache(),e.dirtyBoundingBoxCache()})},at.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()})})},at.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()})})},at.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 wr={};wr.applyBypass=function(e,t,n,r){var a=this,i=[],o=!0;if(t==="*"||t==="**"){if(n!==void 0)for(var u=0;ua.length?r=r.substr(a.length):r=""}function l(){i.length>o.length?i=i.substr(o.length):i=""}for(;;){var s=r.match(/^\s*$/);if(s)break;var c=r.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!c){Ne("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+r);break}a=c[0];var d=c[1];if(d!=="core"){var h=new gn(d);if(h.invalid){Ne("Skipping parsing of block: Invalid selector found in string stylesheet: "+d),u();continue}}var f=c[2],p=!1;i=f;for(var v=[];;){var m=i.match(/^\s*$/);if(m)break;var g=i.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!g){Ne("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+f),p=!0;break}o=g[0];var y=g[1],b=g[2],w=t.properties[y];if(!w){Ne("Skipping property: Invalid property name in: "+o),l();continue}var k=n.parse(y,b);if(!k){Ne("Skipping property: Invalid property definition in: "+o),l();continue}v.push({name:y,val:b}),l()}if(p){u();break}n.selector(d);for(var C=0;C=7&&t[0]==="d"&&(c=new RegExp(u.data.regex).exec(t))){if(n)return!1;var h=u.data;return{name:e,value:c,strValue:""+t,mapped:h,field:c[1],bypass:n}}else if(t.length>=10&&t[0]==="m"&&(d=new RegExp(u.mapData.regex).exec(t))){if(n||s.multiple)return!1;var f=u.mapData;if(!(s.color||s.number))return!1;var p=this.parse(e,d[4]);if(!p||p.mapped)return!1;var v=this.parse(e,d[5]);if(!v||v.mapped)return!1;if(p.pfValue===v.pfValue||p.strValue===v.strValue)return Ne("`"+e+": "+t+"` is not a valid mapper because the output range is zero; converting to `"+e+": "+p.strValue+"`"),this.parse(e,p.strValue);if(s.color){var m=p.value,g=v.value,y=m[0]===g[0]&&m[1]===g[1]&&m[2]===g[2]&&(m[3]===g[3]||(m[3]==null||m[3]===1)&&(g[3]==null||g[3]===1));if(y)return!1}return{name:e,value:d,strValue:""+t,mapped:f,field:d[1],fieldMin:parseFloat(d[2]),fieldMax:parseFloat(d[3]),valueMin:p.value,valueMax:v.value,bypass:n}}}if(s.multiple&&r!=="multiple"){var b;if(l?b=t.split(/\s+/):Ve(t)?b=t:b=[t],s.evenMultiple&&b.length%2!==0)return null;for(var w=[],k=[],C=[],x="",P=!1,B=0;B0?" ":"")+D.strValue}return s.validate&&!s.validate(w,k)?null:s.singleEnum&&P?w.length===1&&fe(w[0])?{name:e,value:w[0],strValue:w[0],bypass:n}:null:{name:e,value:w,pfValue:C,strValue:x,bypass:n,units:k}}var _=function(){for(var re=0;res.max||s.strictMax&&t===s.max))return null;var R={name:e,value:t,strValue:""+t+(T||""),units:T,bypass:n};return s.unitless||T!=="px"&&T!=="em"?R.pfValue=t:R.pfValue=T==="px"||!T?t:this.getEmSizeInPixels()*t,(T==="ms"||T==="s")&&(R.pfValue=T==="ms"?t:1e3*t),(T==="deg"||T==="rad")&&(R.pfValue=T==="rad"?t:Ef(t)),T==="%"&&(R.pfValue=t/100),R}else if(s.propList){var M=[],L=""+t;if(L!=="none"){for(var I=L.split(/\s*,\s*|\s+/),j=0;j0&&o>0&&!isNaN(n.w)&&!isNaN(n.h)&&n.w>0&&n.h>0){u=Math.min((i-2*t)/n.w,(o-2*t)/n.h),u=u>this._private.maxZoom?this._private.maxZoom:u,u=u=n.minZoom&&(n.maxZoom=t),this},minZoom:function(e){return e===void 0?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return e===void 0?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var t=this._private,n=t.pan,r=t.zoom,a,i,o=!1;if(t.zoomingEnabled||(o=!0),ne(e)?i=e:De(e)&&(i=e.level,e.position!=null?a=Fa(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=u,a.push("zoom"))}if(r&&(!i||!e.cancelOnFailedZoom)&&t.panningEnabled){var l=e.pan;ne(l.x)&&(t.pan.x=l.x,o=!1),ne(l.y)&&(t.pan.y=l.y,o=!1),o||a.push("pan")}return a.length>0&&(a.push("viewport"),this.emit(a.join(" ")),this.notify("viewport")),this},center:function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,t){if(this._private.panningEnabled){if(fe(e)){var n=e;e=this.mutableElements().filter(n)}else Pt(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}}},reset:function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e=this._private,t=e.container,n=this;return e.sizeCache=e.sizeCache||(t?function(){var r=n.window().getComputedStyle(t),a=function(i){return parseFloat(r.getPropertyValue(i))};return{width:t.clientWidth-a("padding-left")-a("padding-right"),height:t.clientHeight-a("padding-top")-a("padding-bottom")}}():{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent: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},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},multiClickDebounceTime:function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this}};Cn.centre=Cn.center,Cn.autolockNodes=Cn.autolock,Cn.autoungrabifyNodes=Cn.autoungrabify;var Er={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})};Er.attr=Er.data,Er.removeAttr=Er.removeData;var Ir=function(e){var t=this;e=ge({},e);var n=e.container;n&&!Ca(n)&&Ca(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=et!==void 0&&n!==void 0&&!e.headless,o=e;o.layout=ge({name:i?"grid":"null"},o.layout),o.renderer=ge({name:i?"canvas":"null"},o.renderer);var u=function(h,f,p){return f!==void 0?f:p!==void 0?p:h},l=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:u(!0,o.zoomingEnabled),userZoomingEnabled:u(!0,o.userZoomingEnabled),panningEnabled:u(!0,o.panningEnabled),userPanningEnabled:u(!0,o.userPanningEnabled),boxSelectionEnabled:u(!0,o.boxSelectionEnabled),autolock:u(!1,o.autolock,o.autolockNodes),autoungrabify:u(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:u(!1,o.autounselectify),styleEnabled:o.styleEnabled===void 0?i:o.styleEnabled,zoom:ne(o.zoom)?o.zoom:1,pan:{x:De(o.pan)&&ne(o.pan.x)?o.pan.x:0,y:De(o.pan)&&ne(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:u(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});var s=function(h,f){var p=h.some(gh);if(p)return ar.all(h).then(f);f(h)};l.styleEnabled&&t.setStyle([]);var c=ge({},o,o.renderer);t.initRenderer(c);var d=function(h,f,p){t.notifications(!1);var v=t.mutableElements();v.length>0&&v.remove(),h!=null&&(De(h)||Ve(h))&&t.add(h),t.one("layoutready",function(g){t.notifications(!0),t.emit(g),t.one("load",f),t.emitAndNotify("load")}).one("layoutstop",function(){t.one("done",p),t.emit("done")});var m=ge({},t._private.options.layout);m.eles=t.elements(),t.layout(m).run()};s([o.style,o.elements],function(h){var f=h[0],p=h[1];l.styleEnabled&&t.style().append(f),d(p,function(){t.startAnimationLoop(),l.ready=!0,Ue(o.ready)&&t.on("ready",o.ready);for(var v=0;v0,u=!!e.boundingBox,l=xt(u?e.boundingBox:structuredClone(t.extent())),s;if(Pt(e.roots))s=e.roots;else if(Ve(e.roots)){for(var c=[],d=0;d0;){var A=S(),N=B(A,_);if(N)A.outgoers().filter(function(ee){return ee.isNode()&&n.has(ee)}).forEach(T);else if(N===null){Ne("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 M=0;M0&&g[0].length<=3?be/2:0),_e=2*Math.PI/g[ce].length*me;return ce===0&&g[0].length===1&&(Ee=1),{x:H.x+Ee*Math.cos(_e),y:H.y+Ee*Math.sin(_e)}}else{var Oe=g[ce].length,Fe=Math.max(Oe===1?0:u?(l.w-e.padding*2-te.w)/((e.grid?we:Oe)-1):(l.w-e.padding*2-te.w)/((e.grid?we:Oe)+1),R),Re={x:H.x+(me+1-(Oe+1)/2)*Fe,y:H.y+(ce+1-($+1)/2)*ae};return Re}},xe={downward:0,leftward:90,upward:180,rightward:-90};Object.keys(xe).indexOf(e.direction)===-1&&qe("Invalid direction '".concat(e.direction,"' specified for breadthfirst layout. Valid values are: ").concat(Object.keys(xe).join(", ")));var Ae=function(ee){return qh(ye(ee),l,xe[e.direction])};return n.nodes().layoutPositions(this,e,Ae),this};var Av={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:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function ld(e){this.options=ge({},Av,e)}ld.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=xt(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),u={x:o.x1+o.w/2,y:o.y1+o.h/2},l=t.sweep===void 0?2*Math.PI-2*Math.PI/i.length:t.sweep,s=l/Math.max(1,i.length-1),c,d=0,h=0;h1&&t.avoidOverlap){d*=1.75;var g=Math.cos(s)-Math.cos(0),y=Math.sin(s)-Math.sin(0),b=Math.sqrt(d*d/(g*g+y*y));c=Math.max(b,c)}var w=function(k,C){var x=t.startAngle+C*s*(a?1:-1),P=c*Math.cos(x),B=c*Math.sin(x),D={x:u.x+P,y:u.y+B};return D};return r.nodes().layoutPositions(this,t,w),this};var Sv={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:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function ud(e){this.options=ge({},Sv,e)}ud.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=xt(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()}),u={x:o.x1+o.w/2,y:o.y1+o.h/2},l=[],s=0,c=0;c0){var k=Math.abs(y[0].value-w.value);k>=m&&(y=[],g.push(y))}y.push(w)}var C=s+t.minNodeSpacing;if(!t.avoidOverlap){var x=g.length>0&&g[0].length>1,P=Math.min(o.w,o.h)/2-C,B=P/(g.length+x?1:0);C=Math.min(C,B)}for(var D=0,_=0;_1&&t.avoidOverlap){var N=Math.cos(A)-Math.cos(0),R=Math.sin(A)-Math.sin(0),M=Math.sqrt(C*C/(N*N+R*R));D=Math.max(M,D)}T.r=D,D+=C}if(t.equidistant){for(var L=0,I=0,j=0;j=e.numIter||(zv(r,e),r.temperature=r.temperature*e.coolingFactor,r.temperature=e.animationThreshold&&i(),Pa(c)}};c()}else{for(;s;)s=o(l),l++;Au(r,e),u()}return this},ma.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},ma.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var Rv=function(e,t,n){for(var r=n.eles.edges(),a=n.eles.nodes(),i=xt(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},u=n.eles.components(),l={},s=0;s0){o.graphSet.push(x);for(var s=0;sr.count?0:r.graph},cd=function(e,t,n,r){var a=r.graphSet[n];if(-10)var m=r.nodeOverlap*s,v=Math.sqrt(o*o+u*u),g=m*o/v,y=m*u/v;else var c=Ia(e,o,u),d=Ia(t,-1*o,-1*u),h=d.x-c.x,f=d.y-c.y,p=h*h+f*f,v=Math.sqrt(p),m=(e.nodeRepulsion+t.nodeRepulsion)/p,g=m*h/v,y=m*f/v;e.isLocked||(e.offsetX-=g,e.offsetY-=y),t.isLocked||(t.offsetX+=g,t.offsetY+=y)}},Xv=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},Ia=function(e,t,n){var r=e.positionX,a=e.positionY,i=e.height||1,o=e.width||1,u=n/t,l=i/o,s={};return t===0&&0n?(s.x=r,s.y=a+i/2,s):0t&&-1*l<=u&&u<=l?(s.x=r-o/2,s.y=a-o*n/2/t,s):0=l)?(s.x=r+i*t/2/n,s.y=a+i/2,s):(0>n&&(u<=-1*l||u>=l)&&(s.x=r-i*t/2/n,s.y=a-i/2),s)},Yv=function(e,t){for(var n=0;nn){var v=t.gravity*h/p,m=t.gravity*f/p;d.offsetX+=v,d.offsetY+=m}}}}},qv=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],u=e.layoutNodes[o],l=u.children;if(0n)var a={x:n*e/r,y:n*t/r};else var a={x:e,y:t};return a},hd=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.padTopm&&(f+=v+t.componentSpacing,h=0,p=0,v=0)}}},Gv={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:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function fd(e){this.options=ge({},Gv,e)}fd.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=xt(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(W){return{x:i.x1,y:i.y1}});else{var o=a.size(),u=Math.sqrt(o*i.h/i.w),l=Math.round(u),s=Math.round(i.w/i.h*u),c=function(W){if(W==null)return Math.min(l,s);var Q=Math.min(l,s);Q==l?l=W:s=W},d=function(W){if(W==null)return Math.max(l,s);var Q=Math.max(l,s);Q==l?l=W:s=W},h=t.rows,f=t.cols!=null?t.cols:t.columns;if(h!=null&&f!=null)l=h,s=f;else if(h!=null&&f==null)l=h,s=Math.ceil(o/l);else if(h==null&&f!=null)s=f,l=Math.ceil(o/s);else if(s*l>o){var p=c(),v=d();(p-1)*v>=o?c(p-1):(v-1)*p>=o&&d(v-1)}else for(;s*l=o?d(g+1):c(m+1)}var y=i.w/s,b=i.h/l;if(t.condense&&(y=0,b=0),t.avoidOverlap)for(var w=0;w=s&&(N=0,A++)},M={},L=0;L(M=Nf(e,t,L[I],L[I+1],L[I+2],L[I+3])))return m(x,M),!0}else if(B.edgeType==="bezier"||B.edgeType==="multibezier"||B.edgeType==="self"||B.edgeType==="compound"){for(var L=B.allpts,I=0;I+5(M=Lf(e,t,L[I],L[I+1],L[I+2],L[I+3],L[I+4],L[I+5])))return m(x,M),!0}for(var N=N||P.source,R=R||P.target,j=a.getArrowWidth(D,_),F=[{name:"source",x:B.arrowStartX,y:B.arrowStartY,angle:B.srcArrowAngle},{name:"target",x:B.arrowEndX,y:B.arrowEndY,angle:B.tgtArrowAngle},{name:"mid-source",x:B.midX,y:B.midY,angle:B.midsrcArrowAngle},{name:"mid-target",x:B.midX,y:B.midY,angle:B.midtgtArrowAngle}],I=0;I0&&(g(N),g(R))}function b(x,P,B){return kt(x,P,B)}function w(x,P){var B=x._private,D=h,_;P?_=P+"-":_="",x.boundingBox();var T=B.labelBounds[P||"main"],S=x.pstyle(_+"label").value,A=x.pstyle("text-events").strValue==="yes";if(!(!A||!S)){var N=b(B.rscratch,"labelX",P),R=b(B.rscratch,"labelY",P),M=b(B.rscratch,"labelAngle",P),L=x.pstyle(_+"text-margin-x").pfValue,I=x.pstyle(_+"text-margin-y").pfValue,j=T.x1-D-L,F=T.x2+D-L,Y=T.y1-D-I,W=T.y2+D-I;if(M){var Q=Math.cos(M),$=Math.sin(M),Z=function(H,te){return H=H-N,te=te-R,{x:H*Q-te*$+N,y:H*$+te*Q+R}},J=Z(j,Y),re=Z(j,W),V=Z(F,Y),O=Z(F,W),z=[J.x+L,J.y+I,V.x+L,V.y+I,O.x+L,O.y+I,re.x+L,re.y+I];if(Tt(e,t,z))return m(x),!0}else if(sn(T,e,t))return m(x),!0}}for(var k=o.length-1;k>=0;k--){var C=o[k];C.isNode()?g(C)||w(C):y(C)||w(C)||w(C,"source")||w(C,"target")}return u},Pn.getAllInBox=function(e,t,n,r){var a=this.getCachedZSortedEles().interactive,i=this.cy.zoom(),o=2/i,u=[],l=Math.min(e,n),s=Math.max(e,n),c=Math.min(t,r),d=Math.max(t,r);e=l,n=s,t=c,r=d;var h=xt({x1:e,y1:t,x2:n,y2:r}),f=[{x:h.x1,y:h.y1},{x:h.x2,y:h.y1},{x:h.x2,y:h.y2},{x:h.x1,y:h.y2}],p=[[f[0],f[1]],[f[1],f[2]],[f[2],f[3]],[f[3],f[0]]];function v(te,ae,we){return kt(te,ae,we)}function m(te,ae){var we=te._private,ye=o,xe="";te.boundingBox();var Ae=we.labelBounds.main;if(!Ae)return null;var ee=v(we.rscratch,"labelX",ae),ue=v(we.rscratch,"labelY",ae),ce=v(we.rscratch,"labelAngle",ae),me=te.pstyle(xe+"text-margin-x").pfValue,be=te.pstyle(xe+"text-margin-y").pfValue,Ee=Ae.x1-ye-me,_e=Ae.x2+ye-me,Oe=Ae.y1-ye-be,Fe=Ae.y2+ye-be;if(ce){var Re=Math.cos(ce),Se=Math.sin(ce),ie=function(ve,E){return ve=ve-ee,E=E-ue,{x:ve*Re-E*Se+ee,y:ve*Se+E*Re+ue}};return[ie(Ee,Oe),ie(_e,Oe),ie(_e,Fe),ie(Ee,Fe)]}else return[{x:Ee,y:Oe},{x:_e,y:Oe},{x:_e,y:Fe},{x:Ee,y:Fe}]}function g(te,ae,we,ye){function xe(Ae,ee,ue){return(ue.y-Ae.y)*(ee.x-Ae.x)>(ee.y-Ae.y)*(ue.x-Ae.x)}return xe(te,we,ye)!==xe(ae,we,ye)&&xe(te,ae,we)!==xe(te,ae,ye)}for(var y=0;y0?-(Math.PI-e.ang):Math.PI+e.ang},Jv=function(e,t,n,r,a){if(e!==Lu?Nu(t,e,Ft):$v(Bt,Ft),Nu(t,n,Bt),Ru=Ft.nx*Bt.ny-Ft.ny*Bt.nx,Iu=Ft.nx*Bt.nx-Ft.ny*-Bt.ny,Wt=Math.asin(Math.max(-1,Math.min(1,Ru))),Math.abs(Wt)<1e-6){Wo=t.x,Go=t.y,_n=Vn=0;return}Dn=1,xa=!1,Iu<0?Wt<0?Wt=Math.PI+Wt:(Wt=Math.PI-Wt,Dn=-1,xa=!0):Wt>0&&(Dn=-1,xa=!0),t.radius!==void 0?Vn=t.radius:Vn=r,wn=Wt/2,aa=Math.min(Ft.len/2,Bt.len/2),a?(Ot=Math.abs(Math.cos(wn)*Vn/Math.sin(wn)),Ot>aa?(Ot=aa,_n=Math.abs(Ot*Math.sin(wn)/Math.cos(wn))):_n=Vn):(Ot=Math.min(aa,Vn),_n=Math.abs(Ot*Math.sin(wn)/Math.cos(wn))),Ho=t.x+Bt.nx*Ot,Ko=t.y+Bt.ny*Ot,Wo=Ho-Bt.ny*_n*Dn,Go=Ko+Bt.nx*_n*Dn,yd=t.x+Ft.nx*Ot,md=t.y+Ft.ny*Ot,Lu=t};function bd(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)}function vs(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}:(Jv(e,t,n,r,a),{cx:Wo,cy:Go,radius:_n,startX:yd,startY:md,stopX:Ho,stopY:Ko,startAngle:Ft.ang+Math.PI/2*Dn,endAngle:Bt.ang-Math.PI/2*Dn,counterClockwise:xa})}var kr=.01,ey=Math.sqrt(2*kr),pt={};pt.findMidptPtsEtc=function(e,t){var n=t.posPts,r=t.intersectionPts,a=t.vectorNormInverse,i,o=e.pstyle("source-endpoint"),u=e.pstyle("target-endpoint"),l=o.units!=null&&u.units!=null,s=function(w,k,C,x){var P=x-k,B=C-w,D=Math.sqrt(B*B+P*P);return{x:-P/D,y:B/D}},c=e.pstyle("edge-distances").value;switch(c){case"node-position":i=n;break;case"intersection":i=r;break;case"endpoints":{if(l){var d=this.manualEndptToPx(e.source()[0],o),h=$e(d,2),f=h[0],p=h[1],v=this.manualEndptToPx(e.target()[0],u),m=$e(v,2),g=m[0],y=m[1],b={x1:f,y1:p,x2:g,y2:y};a=s(f,p,g,y),i=b}else Ne("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}},pt.findHaystackPoints=function(e){for(var t=0;t0?Math.max(E-X,0):Math.min(E+X,0)},S=T(D,P),A=T(_,B),N=!1;y===s?g=Math.abs(S)>Math.abs(A)?a:r:y===l||y===u?(g=r,N=!0):(y===i||y===o)&&(g=a,N=!0);var R=g===r,M=R?A:S,L=R?_:D,I=So(L),j=!1;!(N&&(w||C))&&(y===u&&L<0||y===l&&L>0||y===i&&L>0||y===o&&L<0)&&(I*=-1,M=I*Math.abs(M),j=!0);var F;if(w){var Y=k<0?1+k:k;F=Y*M}else{var W=k<0?M:0;F=W+k*I}var Q=function(E){return Math.abs(E)=Math.abs(M)},$=Q(F),Z=Q(Math.abs(M)-Math.abs(F)),J=$||Z;if(J&&!j)if(R){var re=Math.abs(L)<=h/2,V=Math.abs(D)<=f/2;if(re){var O=(c.x1+c.x2)/2,z=c.y1,H=c.y2;n.segpts=[O,z,O,H]}else if(V){var te=(c.y1+c.y2)/2,ae=c.x1,we=c.x2;n.segpts=[ae,te,we,te]}else n.segpts=[c.x1,c.y2]}else{var ye=Math.abs(L)<=d/2,xe=Math.abs(_)<=p/2;if(ye){var Ae=(c.y1+c.y2)/2,ee=c.x1,ue=c.x2;n.segpts=[ee,Ae,ue,Ae]}else if(xe){var ce=(c.x1+c.x2)/2,me=c.y1,be=c.y2;n.segpts=[ce,me,ce,be]}else n.segpts=[c.x2,c.y1]}else if(R){var Ee=c.y1+F+(m?h/2*I:0),_e=c.x1,Oe=c.x2;n.segpts=[_e,Ee,Oe,Ee]}else{var Fe=c.x1+F+(m?d/2*I:0),Re=c.y1,Se=c.y2;n.segpts=[Fe,Re,Fe,Se]}if(n.isRound){var ie=e.pstyle("taxi-radius").value,ve=e.pstyle("radius-type").value[0]==="arc-radius";n.radii=new Array(n.segpts.length/2).fill(ie),n.isArcRadius=new Array(n.segpts.length/2).fill(ve)}},pt.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,u=t.tgtW,l=t.tgtH,s=t.srcShape,c=t.tgtShape,d=t.srcCornerRadius,h=t.tgtCornerRadius,f=t.srcRs,p=t.tgtRs,v=!ne(n.startX)||!ne(n.startY),m=!ne(n.arrowStartX)||!ne(n.arrowStartY),g=!ne(n.endX)||!ne(n.endY),y=!ne(n.arrowEndX)||!ne(n.arrowEndY),b=3,w=this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth,k=b*w,C=Mn({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.startX,y:n.startY}),x=CM.poolIndex()){var L=R;R=M,M=L}var I=T.srcPos=R.position(),j=T.tgtPos=M.position(),F=T.srcW=R.outerWidth(),Y=T.srcH=R.outerHeight(),W=T.tgtW=M.outerWidth(),Q=T.tgtH=M.outerHeight(),$=T.srcShape=n.nodeShapes[t.getNodeShape(R)],Z=T.tgtShape=n.nodeShapes[t.getNodeShape(M)],J=T.srcCornerRadius=R.pstyle("corner-radius").value==="auto"?"auto":R.pstyle("corner-radius").pfValue,re=T.tgtCornerRadius=M.pstyle("corner-radius").value==="auto"?"auto":M.pstyle("corner-radius").pfValue,V=T.tgtRs=M._private.rscratch,O=T.srcRs=R._private.rscratch;T.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var z=0;z=ey||(_e=Math.sqrt(Math.max(Ee*Ee,kr)+Math.max(be*be,kr)));var Oe=T.vector={x:Ee,y:be},Fe=T.vectorNorm={x:Oe.x/_e,y:Oe.y/_e},Re={x:-Fe.y,y:Fe.x};T.nodesOverlap=!ne(_e)||Z.checkPoint(xe[0],xe[1],0,W,Q,j.x,j.y,re,V)||$.checkPoint(ee[0],ee[1],0,F,Y,I.x,I.y,J,O),T.vectorNormInverse=Re,S={nodesOverlap:T.nodesOverlap,dirCounts:T.dirCounts,calculatedIntersection:!0,hasBezier:T.hasBezier,hasUnbundled:T.hasUnbundled,eles:T.eles,srcPos:j,srcRs:V,tgtPos:I,tgtRs:O,srcW:W,srcH:Q,tgtW:F,tgtH:Y,srcIntn:ue,tgtIntn:Ae,srcShape:Z,tgtShape:$,posPts:{x1:me.x2,y1:me.y2,x2:me.x1,y2:me.y1},intersectionPts:{x1:ce.x2,y1:ce.y2,x2:ce.x1,y2:ce.y1},vector:{x:-Oe.x,y:-Oe.y},vectorNorm:{x:-Fe.x,y:-Fe.y},vectorNormInverse:{x:-Re.x,y:-Re.y}}}var Se=ye?S:T;te.nodesOverlap=Se.nodesOverlap,te.srcIntn=Se.srcIntn,te.tgtIntn=Se.tgtIntn,te.isRound=ae.startsWith("round"),a&&(R.isParent()||R.isChild()||M.isParent()||M.isChild())&&(R.parents().anySame(M)||M.parents().anySame(R)||R.same(M)&&R.isParent())?t.findCompoundLoopPoints(H,Se,z,we):R===M?t.findLoopPoints(H,Se,z,we):ae.endsWith("segments")?t.findSegmentsPoints(H,Se):ae.endsWith("taxi")?t.findTaxiPoints(H,Se):ae==="straight"||!we&&T.eles.length%2===1&&z===Math.floor(T.eles.length/2)?t.findStraightEdgePoints(H):t.findBezierPoints(H,Se,z,we,ye),t.findEndpoints(H),t.tryToCorrectInvalidPoints(H,Se),t.checkForInvalidEdgeWarning(H),t.storeAllpts(H),t.storeEdgeProjections(H),t.calculateArrowAngles(H),t.recalculateEdgeLabelProjections(H),t.calculateLabelAngles(H)}},x=0;x0){var Ae=s,ee=Tn(Ae,Qn(o)),ue=Tn(Ae,Qn(xe)),ce=ee;if(ue2){var me=Tn(Ae,{x:xe[2],y:xe[3]});me0){var U=c,G=Tn(U,Qn(o)),oe=Tn(U,Qn(q)),K=G;if(oe2){var de=Tn(U,{x:q[2],y:q[3]});de=f||C){v={cp:b,segment:k};break}}if(v)break}var x=v.cp,P=v.segment,B=(f-m)/P.length,D=P.t1-P.t0,_=h?P.t0+D*B:P.t1-D*B;_=Mr(0,_,1),t=er(x.p0,x.p1,x.p2,_),d=ny(x.p0,x.p1,x.p2,_);break}case"straight":case"segments":case"haystack":{for(var T=0,S,A,N,R,M=r.allpts.length,L=0;L+3=f));L+=2);var I=f-A,j=I/S;j=Mr(0,j,1),t=Tf(N,R,j),d=wd(N,R);break}}o("labelX",c,t.x),o("labelY",c,t.y),o("labelAutoAngle",c,d)}};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=Sn(r,e._private.labelDimsKey);if(kt(n.rscratch,"prefixedLabelDimsKey",t)!==a){qt(n.rscratch,"prefixedLabelDimsKey",t,a);var i=this.calculateLabelDimensions(e,r),o=e.pstyle("line-height").pfValue,u=e.pstyle("text-wrap").strValue,l=kt(n.rscratch,"labelWrapCachedLines",t)||[],s=u!=="wrap"?1:Math.max(l.length,1),c=i.height/s,d=c*o,h=i.width,f=i.height+(s-1)*(o-1)*c;qt(n.rstyle,"labelWidth",t,h),qt(n.rscratch,"labelWidth",t,h),qt(n.rstyle,"labelHeight",t,f),qt(n.rscratch,"labelHeight",t,f),qt(n.rscratch,"labelLineHeight",t,d)}},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=function(Y,W){return W?(qt(n.rscratch,Y,t,W),W):kt(n.rscratch,Y,t)};if(!a)return"";i=="none"||(i=="uppercase"?a=a.toUpperCase():i=="lowercase"&&(a=a.toLowerCase()));var u=e.pstyle("text-wrap").value;if(u==="wrap"){var l=o("labelKey");if(l!=null&&o("labelWrapKey")===l)return o("labelWrapCachedText");for(var s="​",c=a.split(` `),d=e.pstyle("text-max-width").pfValue,h=e.pstyle("text-overflow-wrap").value,f=h==="anywhere",p=[],v=/[\s\u200b]+|$/g,m=0;md){var k=g.matchAll(v),C="",x=0,P=Ct(k),B;try{for(P.s();!(B=P.n()).done;){var D=B.value,_=D[0],T=g.substring(x,D.index);x=D.index+_.length;var S=C.length===0?T:C+T+_,A=this.calculateLabelDimensions(e,S),N=A.width;N<=d?C+=T+_:(C&&p.push(C),C=T+_)}}catch(Y){P.e(Y)}finally{P.f()}C.match(/^[\s\u200b]+$/)||p.push(C)}else p.push(g)}o("labelWrapCachedLines",p),a=o("labelWrapCachedText",p.join(` `)),o("labelWrapKey",l)}else if(u==="ellipsis"){var R=e.pstyle("text-max-width").pfValue,M="",L="…",I=!1;if(this.calculateLabelDimensions(e,a).widthR)break;M+=a[j],j===a.length-1&&(I=!0)}return I||(M+=L),M}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,u=e.pstyle("font-size").pfValue,l=e.pstyle("font-family").strValue,s=e.pstyle("font-weight").strValue,c=this.labelCalcCanvas,d=this.labelCalcCanvasContext;if(!c){c=this.labelCalcCanvas=a.createElement("canvas"),d=this.labelCalcCanvasContext=c.getContext("2d");var h=c.style;h.position="absolute",h.left="-9999px",h.top="-9999px",h.zIndex="-1",h.visibility="hidden",h.pointerEvents="none"}d.font="".concat(o," ").concat(s," ").concat(u,"px ").concat(l);for(var f=0,p=0,v=t.split(` `),m=0;m1&&arguments[1]!==void 0?arguments[1]:!0;if(t.merge(i),o)for(var u=0;u=e.desktopTapThreshold2}var yt=i(E);We&&(e.hoverData.tapholdCancelled=!0);var Qt=function(){var Nt=e.hoverData.dragDelta=e.hoverData.dragDelta||[];Nt.length===0?(Nt.push(Te[0]),Nt.push(Te[1])):(Nt[0]+=Te[0],Nt[1]+=Te[1])};q=!0,a(Pe,["mousemove","vmousemove","tapdrag"],E,{x:K[0],y:K[1]});var Ze=function(Nt){return{originalEvent:E,type:Nt,position:{x:K[0],y:K[1]}}},_t=function(){e.data.bgActivePosistion=void 0,e.hoverData.selecting||U.emit(Ze("boxstart")),pe[4]=1,e.hoverData.selecting=!0,e.redrawHint("select",!0),e.redraw()};if(e.hoverData.which===3){if(We){var jr=Ze("cxtdrag");he?he.emit(jr):U.emit(jr),e.hoverData.cxtDragged=!0,(!e.hoverData.cxtOver||Pe!==e.hoverData.cxtOver)&&(e.hoverData.cxtOver&&e.hoverData.cxtOver.emit(Ze("cxtdragout")),e.hoverData.cxtOver=Pe,Pe&&Pe.emit(Ze("cxtdragover")))}}else if(e.hoverData.dragging){if(q=!0,U.panningEnabled()&&U.userPanningEnabled()){var Rn;if(e.hoverData.justStartedPan){var qr=e.hoverData.mdownPos;Rn={x:(K[0]-qr[0])*G,y:(K[1]-qr[1])*G},e.hoverData.justStartedPan=!1}else Rn={x:Te[0]*G,y:Te[1]*G};U.panBy(Rn),U.emit(Ze("dragpan")),e.hoverData.dragged=!0}K=e.projectIntoViewport(E.clientX,E.clientY)}else if(pe[4]==1&&(he==null||he.pannable())){if(We){if(!e.hoverData.dragging&&U.boxSelectionEnabled()&&(yt||!U.panningEnabled()||!U.userPanningEnabled()))_t();else if(!e.hoverData.selecting&&U.panningEnabled()&&U.userPanningEnabled()){var mn=o(he,e.hoverData.downs);mn&&(e.hoverData.dragging=!0,e.hoverData.justStartedPan=!0,pe[4]=0,e.data.bgActivePosistion=Qn(de),e.redrawHint("select",!0),e.redraw())}he&&he.pannable()&&he.active()&&he.unactivate()}}else{if(he&&he.pannable()&&he.active()&&he.unactivate(),(!he||!he.grabbed())&&Pe!=ke&&(ke&&a(ke,["mouseout","tapdragout"],E,{x:K[0],y:K[1]}),Pe&&a(Pe,["mouseover","tapdragover"],E,{x:K[0],y:K[1]}),e.hoverData.last=Pe),he)if(We){if(U.boxSelectionEnabled()&&yt)he&&he.grabbed()&&(g(Ie),he.emit(Ze("freeon")),Ie.emit(Ze("free")),e.dragData.didDrag&&(he.emit(Ze("dragfreeon")),Ie.emit(Ze("dragfree")))),_t();else if(he&&he.grabbed()&&e.nodeIsDraggable(he)){var wt=!e.dragData.didDrag;wt&&e.redrawHint("eles",!0),e.dragData.didDrag=!0,e.hoverData.draggingEles||v(Ie,{inDragLayer:!0});var ht={x:0,y:0};if(ne(Te[0])&&ne(Te[1])&&(ht.x+=Te[0],ht.y+=Te[1],wt)){var Et=e.hoverData.dragDelta;Et&&ne(Et[0])&&ne(Et[1])&&(ht.x+=Et[0],ht.y+=Et[1])}e.hoverData.draggingEles=!0,Ie.silentShift(ht).emit(Ze("position")).emit(Ze("drag")),e.redrawHint("drag",!0),e.redraw()}}else Qt();q=!0}if(pe[2]=K[0],pe[3]=K[1],q)return E.stopPropagation&&E.stopPropagation(),E.preventDefault&&E.preventDefault(),!1}},!1);var T,S,A;e.registerBinding(t,"mouseup",function(E){if(!(e.hoverData.which===1&&E.which!==1&&e.hoverData.capture)){var X=e.hoverData.capture;if(X){e.hoverData.capture=!1;var q=e.cy,U=e.projectIntoViewport(E.clientX,E.clientY),G=e.selection,oe=e.findNearestElement(U[0],U[1],!0,!1),K=e.dragData.possibleDragElements,de=e.hoverData.down,le=i(E);e.data.bgActivePosistion&&(e.redrawHint("select",!0),e.redraw()),e.hoverData.tapholdCancelled=!0,e.data.bgActivePosistion=void 0,de&&de.unactivate();var pe=function(We){return{originalEvent:E,type:We,position:{x:U[0],y:U[1]}}};if(e.hoverData.which===3){var Pe=pe("cxttapend");if(de?de.emit(Pe):q.emit(Pe),!e.hoverData.cxtDragged){var ke=pe("cxttap");de?de.emit(ke):q.emit(ke)}e.hoverData.cxtDragged=!1,e.hoverData.which=null}else if(e.hoverData.which===1){if(a(oe,["mouseup","tapend","vmouseup"],E,{x:U[0],y:U[1]}),!e.dragData.didDrag&&!e.hoverData.dragged&&!e.hoverData.selecting&&!e.hoverData.isOverThresholdDrag&&(a(de,["click","tap","vclick"],E,{x:U[0],y:U[1]}),S=!1,E.timeStamp-A<=q.multiClickDebounceTime()?(T&&clearTimeout(T),S=!0,A=null,a(de,["dblclick","dbltap","vdblclick"],E,{x:U[0],y:U[1]})):(T=setTimeout(function(){S||a(de,["oneclick","onetap","voneclick"],E,{x:U[0],y:U[1]})},q.multiClickDebounceTime()),A=E.timeStamp)),de==null&&!e.dragData.didDrag&&!e.hoverData.selecting&&!e.hoverData.dragged&&!i(E)&&(q.$(n).unselect(["tapunselect"]),K.length>0&&e.redrawHint("eles",!0),e.dragData.possibleDragElements=K=q.collection()),oe==de&&!e.dragData.didDrag&&!e.hoverData.selecting&&oe!=null&&oe._private.selectable&&(e.hoverData.dragging||(q.selectionType()==="additive"||le?oe.selected()?oe.unselect(["tapunselect"]):oe.select(["tapselect"]):le||(q.$(n).unmerge(oe).unselect(["tapunselect"]),oe.select(["tapselect"]))),e.redrawHint("eles",!0)),e.hoverData.selecting){var he=q.collection(e.getAllInBox(G[0],G[1],G[2],G[3]));e.redrawHint("select",!0),he.length>0&&e.redrawHint("eles",!0),q.emit(pe("boxend"));var Te=function(We){return We.selectable()&&!We.selected()};q.selectionType()==="additive"||le||q.$(n).unmerge(he).unselect(),he.emit(pe("box")).stdFilter(Te).select().emit(pe("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 Ie=de&&de.grabbed();g(K),Ie&&(de.emit(pe("freeon")),K.emit(pe("free")),e.dragData.didDrag&&(de.emit(pe("dragfreeon")),K.emit(pe("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}}},!1);var N=[],R=4,M,L=1e5,I=function(E,X){for(var q=0;q=R){var U=N;if(M=I(U,5),!M){var G=Math.abs(U[0]);M=j(U)&&G>5}if(M)for(var oe=0;oe5&&(q=So(q)*5),ke=q/-250,M&&(ke/=L,ke*=3),ke=ke*e.wheelSensitivity;var he=E.deltaMode===1;he&&(ke*=33);var Te=K.zoom()*Math.pow(10,ke);E.type==="gesturechange"&&(Te=e.gestureStartZoom*E.scale),K.zoom({level:Te,renderedPosition:{x:Pe[0],y:Pe[1]}}),K.emit({type:E.type==="gesturechange"?"pinchzoom":"scrollzoom",originalEvent:E,position:{x:pe[0],y:pe[1]}})}}}};e.registerBinding(e.container,"wheel",F,!0),e.registerBinding(t,"scroll",function(E){e.scrollingPage=!0,clearTimeout(e.scrollingPageTimeout),e.scrollingPageTimeout=setTimeout(function(){e.scrollingPage=!1},250)},!0),e.registerBinding(e.container,"gesturestart",function(E){e.gestureStartZoom=e.cy.zoom(),e.hasTouchStarted||E.preventDefault()},!0),e.registerBinding(e.container,"gesturechange",function(E){e.hasTouchStarted||F(E)},!0),e.registerBinding(e.container,"mouseout",function(E){var X=e.projectIntoViewport(E.clientX,E.clientY);e.cy.emit({originalEvent:E,type:"mouseout",position:{x:X[0],y:X[1]}})},!1),e.registerBinding(e.container,"mouseover",function(E){var X=e.projectIntoViewport(E.clientX,E.clientY);e.cy.emit({originalEvent:E,type:"mouseover",position:{x:X[0],y:X[1]}})},!1);var Y,W,Q,$,Z,J,re,V,O,z,H,te,ae,we=function(E,X,q,U){return Math.sqrt((q-E)*(q-E)+(U-X)*(U-X))},ye=function(E,X,q,U){return(q-E)*(q-E)+(U-X)*(U-X)},xe;e.registerBinding(e.container,"touchstart",xe=function(E){if(e.hasTouchStarted=!0,!!D(E)){b(),e.touchData.capture=!0,e.data.bgActivePosistion=void 0;var X=e.cy,q=e.touchData.now,U=e.touchData.earlier;if(E.touches[0]){var G=e.projectIntoViewport(E.touches[0].clientX,E.touches[0].clientY);q[0]=G[0],q[1]=G[1]}if(E.touches[1]){var G=e.projectIntoViewport(E.touches[1].clientX,E.touches[1].clientY);q[2]=G[0],q[3]=G[1]}if(E.touches[2]){var G=e.projectIntoViewport(E.touches[2].clientX,E.touches[2].clientY);q[4]=G[0],q[5]=G[1]}var oe=function(Ke){return{originalEvent:E,type:Ke,position:{x:q[0],y:q[1]}}};if(E.touches[1]){e.touchData.singleTouchMoved=!0,g(e.dragData.touchDragEles);var K=e.findContainerClientCoords();O=K[0],z=K[1],H=K[2],te=K[3],Y=E.touches[0].clientX-O,W=E.touches[0].clientY-z,Q=E.touches[1].clientX-O,$=E.touches[1].clientY-z,ae=0<=Y&&Y<=H&&0<=Q&&Q<=H&&0<=W&&W<=te&&0<=$&&$<=te;var de=X.pan(),le=X.zoom();Z=we(Y,W,Q,$),J=ye(Y,W,Q,$),re=[(Y+Q)/2,(W+$)/2],V=[(re[0]-de.x)/le,(re[1]-de.y)/le];var pe=200,Pe=pe*pe;if(J=1){for(var vt=e.touchData.startPosition=[null,null,null,null,null,null],He=0;He=e.touchTapThreshold2}if(X&&e.touchData.cxt){E.preventDefault();var He=E.touches[0].clientX-O,rt=E.touches[0].clientY-z,Ke=E.touches[1].clientX-O,yt=E.touches[1].clientY-z,Qt=ye(He,rt,Ke,yt),Ze=Qt/J,_t=150,jr=_t*_t,Rn=1.5,qr=Rn*Rn;if(Ze>=qr||Qt>=jr){e.touchData.cxt=!1,e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var mn=le("cxttapend");e.touchData.start?(e.touchData.start.unactivate().emit(mn),e.touchData.start=null):U.emit(mn)}}if(X&&e.touchData.cxt){var mn=le("cxtdrag");e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.touchData.start?e.touchData.start.emit(mn):U.emit(mn),e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxtDragged=!0;var wt=e.findNearestElement(G[0],G[1],!0,!0);(!e.touchData.cxtOver||wt!==e.touchData.cxtOver)&&(e.touchData.cxtOver&&e.touchData.cxtOver.emit(le("cxtdragout")),e.touchData.cxtOver=wt,wt&&wt.emit(le("cxtdragover")))}else if(X&&E.touches[2]&&U.boxSelectionEnabled())E.preventDefault(),e.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,e.touchData.selecting||U.emit(le("boxstart")),e.touchData.selecting=!0,e.touchData.didSelect=!0,q[4]=1,!q||q.length===0||q[0]===void 0?(q[0]=(G[0]+G[2]+G[4])/3,q[1]=(G[1]+G[3]+G[5])/3,q[2]=(G[0]+G[2]+G[4])/3+1,q[3]=(G[1]+G[3]+G[5])/3+1):(q[2]=(G[0]+G[2]+G[4])/3,q[3]=(G[1]+G[3]+G[5])/3),e.redrawHint("select",!0),e.redraw();else if(X&&E.touches[1]&&!e.touchData.didSelect&&U.zoomingEnabled()&&U.panningEnabled()&&U.userZoomingEnabled()&&U.userPanningEnabled()){E.preventDefault(),e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var ht=e.dragData.touchDragEles;if(ht){e.redrawHint("drag",!0);for(var Et=0;Et0&&!e.hoverData.draggingEles&&!e.swipePanning&&e.data.bgActivePosistion!=null&&(e.data.bgActivePosistion=void 0,e.redrawHint("select",!0),e.redraw())}},!1);var ee;e.registerBinding(t,"touchcancel",ee=function(E){var X=e.touchData.start;e.touchData.capture=!1,X&&X.unactivate()});var ue,ce,me,be;if(e.registerBinding(t,"touchend",ue=function(E){var X=e.touchData.start,q=e.touchData.capture;if(q)E.touches.length===0&&(e.touchData.capture=!1),E.preventDefault();else return;var U=e.selection;e.swipePanning=!1,e.hoverData.draggingEles=!1;var G=e.cy,oe=G.zoom(),K=e.touchData.now,de=e.touchData.earlier;if(E.touches[0]){var le=e.projectIntoViewport(E.touches[0].clientX,E.touches[0].clientY);K[0]=le[0],K[1]=le[1]}if(E.touches[1]){var le=e.projectIntoViewport(E.touches[1].clientX,E.touches[1].clientY);K[2]=le[0],K[3]=le[1]}if(E.touches[2]){var le=e.projectIntoViewport(E.touches[2].clientX,E.touches[2].clientY);K[4]=le[0],K[5]=le[1]}var pe=function(_t){return{originalEvent:E,type:_t,position:{x:K[0],y:K[1]}}};X&&X.unactivate();var Pe;if(e.touchData.cxt){if(Pe=pe("cxttapend"),X?X.emit(Pe):G.emit(Pe),!e.touchData.cxtDragged){var ke=pe("cxttap");X?X.emit(ke):G.emit(ke)}e.touchData.start&&(e.touchData.start._private.grabbed=!1),e.touchData.cxt=!1,e.touchData.start=null,e.redraw();return}if(!E.touches[2]&&G.boxSelectionEnabled()&&e.touchData.selecting){e.touchData.selecting=!1;var he=G.collection(e.getAllInBox(U[0],U[1],U[2],U[3]));U[0]=void 0,U[1]=void 0,U[2]=void 0,U[3]=void 0,U[4]=0,e.redrawHint("select",!0),G.emit(pe("boxend"));var Te=function(_t){return _t.selectable()&&!_t.selected()};he.emit(pe("box")).stdFilter(Te).select().emit(pe("boxselect")),he.nonempty()&&e.redrawHint("eles",!0),e.redraw()}if(X?.unactivate(),E.touches[2])e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);else if(!E.touches[1]&&!E.touches[0]&&!E.touches[0]){e.data.bgActivePosistion=void 0,e.redrawHint("select",!0);var Ie=e.dragData.touchDragEles;if(X!=null){var We=X._private.grabbed;g(Ie),e.redrawHint("drag",!0),e.redrawHint("eles",!0),We&&(X.emit(pe("freeon")),Ie.emit(pe("free")),e.dragData.didDrag&&(X.emit(pe("dragfreeon")),Ie.emit(pe("dragfree")))),a(X,["touchend","tapend","vmouseup","tapdragout"],E,{x:K[0],y:K[1]}),X.unactivate(),e.touchData.start=null}else{var st=e.findNearestElement(K[0],K[1],!0,!0);a(st,["touchend","tapend","vmouseup","tapdragout"],E,{x:K[0],y:K[1]})}var vt=e.touchData.startPosition[0]-K[0],He=vt*vt,rt=e.touchData.startPosition[1]-K[1],Ke=rt*rt,yt=He+Ke,Qt=yt*oe*oe;e.touchData.singleTouchMoved||(X||G.$(":selected").unselect(["tapunselect"]),a(X,["tap","vclick"],E,{x:K[0],y:K[1]}),ce=!1,E.timeStamp-be<=G.multiClickDebounceTime()?(me&&clearTimeout(me),ce=!0,be=null,a(X,["dbltap","vdblclick"],E,{x:K[0],y:K[1]})):(me=setTimeout(function(){ce||a(X,["onetap","voneclick"],E,{x:K[0],y:K[1]})},G.multiClickDebounceTime()),be=E.timeStamp)),X!=null&&!e.dragData.didDrag&&X._private.selectable&&Qt"u"){var Ee=[],_e=function(E){return{clientX:E.clientX,clientY:E.clientY,force:1,identifier:E.pointerId,pageX:E.pageX,pageY:E.pageY,radiusX:E.width/2,radiusY:E.height/2,screenX:E.screenX,screenY:E.screenY,target:E.target}},Oe=function(E){return{event:E,touch:_e(E)}},Fe=function(E){Ee.push(Oe(E))},Re=function(E){for(var X=0;X0)return j[0]}return null},f=Object.keys(d),p=0;p0?h:Hs(a,i,e,t,n,r,o,u)},checkPoint:function(e,t,n,r,a,i,o,u){u=u==="auto"?pn(r,a):u;var l=2*u;if(Ut(e,t,this.points,i,o,r,a-l,[0,-1],n)||Ut(e,t,this.points,i,o,r-l,a,[0,-1],n))return!0;var s=r/2+2*n,c=a/2+2*n,d=[i-s,o-c,i-s,o,i+s,o,i+s,o-c];return!!(Tt(e,t,d)||bn(e,t,l,l,i+r/2-u,o+a/2-u,n)||bn(e,t,l,l,i-r/2+u,o+a/2-u,n))}}},Gt.registerNodeShapes=function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon("triangle",mt(3,0)),this.generateRoundPolygon("round-triangle",mt(3,0)),this.generatePolygon("rectangle",mt(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",mt(5,0)),this.generateRoundPolygon("round-pentagon",mt(5,0)),this.generatePolygon("hexagon",mt(6,0)),this.generateRoundPolygon("round-hexagon",mt(6,0)),this.generatePolygon("heptagon",mt(7,0)),this.generateRoundPolygon("round-heptagon",mt(7,0)),this.generatePolygon("octagon",mt(8,0)),this.generateRoundPolygon("round-octagon",mt(8,0));var r=new Array(20);{var a=Mo(5,0),i=Mo(5,Math.PI/5),o=.5*(3-Math.sqrt(5));o*=1.57;for(var u=0;u=e.deqFastCost*g)break}else if(o){if(v>=e.deqCost*c||v>=e.deqAvgCost*s)break}else if(m>=e.deqNoDrawCost*bo)break;var y=e.deq(t,f,h);if(y.length>0)for(var b=0;b0&&(e.onDeqd(t,d),!o&&e.shouldRedraw(t,d,f,h)&&r())},i=e.priority||ss;n.beforeRender(a,i(t))}}}},ay=function(){function e(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:_a;vn(this,e),this.idsByKey=new Kt,this.keyForId=new Kt,this.cachesByLvl=new Kt,this.lvls=[],this.getKey=t,this.doesEleInvalidateKey=n}return yn(e,[{key:"getIdsFor",value:function(t){t==null&&qe("Can not get id list for null key");var n=this.idsByKey,r=this.idsByKey.get(t);return r||(r=new rr,n.set(t,r)),r}},{key:"addIdForKey",value:function(t,n){t!=null&&this.getIdsFor(t).add(n)}},{key:"deleteIdForKey",value:function(t,n){t!=null&&this.getIdsFor(t).delete(n)}},{key:"getNumberOfIdsForKey",value:function(t){return t==null?0:this.getIdsFor(t).size}},{key:"updateKeyMappingFor",value: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)}},{key:"deleteKeyMappingFor",value:function(t){var n=t.id(),r=this.keyForId.get(n);this.deleteIdForKey(r,n),this.keyForId.delete(n)}},{key:"keyHasChangedFor",value:function(t){var n=t.id(),r=this.keyForId.get(n),a=this.getKey(t);return r!==a}},{key:"isInvalid",value:function(t){return this.keyHasChangedFor(t)||this.doesEleInvalidateKey(t)}},{key:"getCachesAt",value: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}},{key:"getCache",value:function(t,n){return this.getCachesAt(n).get(t)}},{key:"get",value:function(t,n){var r=this.getKey(t),a=this.getCache(r,n);return a!=null&&this.updateKeyMappingFor(t),a}},{key:"getForCachedKey",value:function(t,n){var r=this.keyForId.get(t.id()),a=this.getCache(r,n);return a}},{key:"hasCache",value:function(t,n){return this.getCachesAt(n).has(t)}},{key:"has",value:function(t,n){var r=this.getKey(t);return this.hasCache(r,n)}},{key:"setCache",value:function(t,n,r){r.key=t,this.getCachesAt(n).set(t,r)}},{key:"set",value:function(t,n,r){var a=this.getKey(t);this.setCache(a,n,r),this.updateKeyMappingFor(t)}},{key:"deleteCache",value:function(t,n){this.getCachesAt(n).delete(t)}},{key:"delete",value:function(t,n){var r=this.getKey(t);this.deleteCache(r,n)}},{key:"invalidateKey",value:function(t){var n=this;this.lvls.forEach(function(r){return n.deleteCache(t,r)})}},{key:"invalidate",value: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}}])}(),Xu=25,ia=50,oa=-4,xo=3,_d=7.99,iy=8,oy=1024,sy=1024,ly=1024,uy=.2,cy=.8,dy=10,hy=.15,fy=.1,py=.9,gy=.9,vy=100,yy=1,Xn={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},my=dt({getKey:null,doesEleInvalidateKey:_a,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:wc,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),Cr=function(e,t){var n=this;n.renderer=e,n.onDequeues=[];var r=my(t);ge(n,r),n.lookup=new ay(r.getKey,r.doesEleInvalidateKey),n.setupDequeueing()},Je=Cr.prototype;Je.reasons=Xn,Je.getTextureQueue=function(e){var t=this;return t.eleImgCaches=t.eleImgCaches||{},t.eleImgCaches[e]=t.eleImgCaches[e]||[]},Je.getRetiredTextureQueue=function(e){var t=this,n=t.eleImgCaches.retired=t.eleImgCaches.retired||{},r=n[e]=n[e]||[];return r},Je.getElementQueue=function(){var e=this,t=e.eleCacheQueue=e.eleCacheQueue||new Yr(function(n,r){return r.reqs-n.reqs});return t},Je.getElementKeyToQueue=function(){var e=this,t=e.eleKeyToCacheQueue=e.eleKeyToCacheQueue||{};return t},Je.getElement=function(e,t,n,r,a){var i=this,o=this.renderer,u=o.cy.zoom(),l=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(ls(u*n))),r=_d||r>xo)return null;var s=Math.pow(2,r),c=t.h*s,d=t.w*s,h=o.eleTextBiggerThanMin(e,s);if(!this.isVisible(e,h))return null;var f=l.get(e,r);if(f&&f.invalidated&&(f.invalidated=!1,f.texture.invalidatedWidth-=f.width),f)return f;var p;if(c<=Xu?p=Xu:c<=ia?p=ia:p=Math.ceil(c/ia)*ia,c>ly||d>sy)return null;var v=i.getTextureQueue(p),m=v[v.length-2],g=function(){return i.recycleTexture(p,d)||i.addTexture(p,d)};m||(m=v[v.length-1]),m||(m=g()),m.width-m.usedWidthr;_--)B=i.getElement(e,t,n,_,Xn.downscale);D()}else return i.queueElement(e,C.level-1),C;else{var T;if(!b&&!w&&!k)for(var S=r-1;S>=oa;S--){var A=l.get(e,S);if(A){T=A;break}}if(y(T))return i.queueElement(e,r),T;m.context.translate(m.usedWidth,0),m.context.scale(s,s),this.drawElement(m.context,e,t,h,!1),m.context.scale(1/s,1/s),m.context.translate(-m.usedWidth,0)}return f={x:m.usedWidth,texture:m,level:r,scale:s,width:d,height:c,scaledLabelShown:h},m.usedWidth+=Math.ceil(d+iy),m.eleCaches.push(f),l.set(e,r,f),i.checkTextureFullness(m),f},Je.invalidateElements=function(e){for(var t=0;t=uy*e.width&&this.retireTexture(e)},Je.checkTextureFullness=function(e){var t=this,n=t.getTextureQueue(e.height);e.usedWidth/e.width>cy&&e.fullnessChecks>=dy?un(n,e):e.fullnessChecks++},Je.retireTexture=function(e){var t=this,n=e.height,r=t.getTextureQueue(n),a=this.lookup;un(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,Do(o.eleCaches),o.context.setTransform(1,0,0,1,0,0),o.context.clearRect(0,0,o.width,o.height),un(a,o),r.push(o),o}},Je.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 u={eles:e.spawn().merge(e),level:t,reqs:1,key:i};r.push(u),a[i]=u}},Je.dequeue=function(e){for(var t=this,n=t.getElementQueue(),r=t.getElementKeyToQueue(),a=[],i=t.lookup,o=0;o0;o++){var u=n.pop(),l=u.key,s=u.eles[0],c=i.hasCache(s,u.level);if(r[l]=null,!c){a.push(u);var d=t.getBoundingBox(s);t.getElement(s,d,e,u.level,Xn.dequeue)}}return a},Je.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=os,n.updateItem(i),n.pop(),r[a]=null):i.eles.unmerge(e))},Je.onDequeue=function(e){this.onDequeues.push(e)},Je.offDequeue=function(e){un(this.onDequeues,e)},Je.setupDequeueing=Pd.setupDequeueing({deqRedrawThreshold:vy,deqCost:hy,deqAvgCost:fy,deqNoDrawCost:py,deqFastCost:gy,deq:function(e,t,n){return e.dequeue(t,n)},onDeqd:function(e,t){for(var n=0;n=xy||n>sa)return null}r.validateLayersElesOrdering(n,e);var l=r.layersByLevel,s=Math.pow(2,n),c=l[n]=l[n]||[],d,h=r.levelIsComplete(n,e),f,p=function(){var B=function(S){if(r.validateLayersElesOrdering(S,e),r.levelIsComplete(S,e))return f=l[S],!0},D=function(S){if(!f)for(var A=n+S;pr<=A&&A<=sa&&!B(A);A+=S);};D(1),D(-1);for(var _=c.length-1;_>=0;_--){var T=c[_];T.invalid&&un(c,T)}};if(!h)p();else return c;var v=function(){if(!d){d=xt();for(var B=0;Bju||T>ju)return null;var S=_*T;if(S>By)return null;var A=r.makeLayer(d,n);if(D!=null){var N=c.indexOf(D)+1;c.splice(N,0,A)}else(B.insert===void 0||B.insert)&&c.unshift(A);return A};if(r.skipping&&!u)return null;for(var g=null,y=e.length/by,b=!u,w=0;w=y||!_c(g.bb,k.boundingBox()))&&(g=m({insert:!0,after:g}),!g))return null;f||b?r.queueLayer(g,k):r.drawEleInLayer(g,k,n,t),g.eles.push(k),x[n]=g}return f||(b?null:c)},lt.getEleLevelForLayerLevel=function(e,t){return e},lt.drawEleInLayer=function(e,t,n,r){var a=this,i=this.renderer,o=e.context,u=t.boundingBox();u.w===0||u.h===0||!t.visible()||(n=a.getEleLevelForLayerLevel(n,r),i.setImgSmoothing(o,!1),i.drawCachedElement(o,t,null,null,n,Dy),i.setImgSmoothing(o,!0))},lt.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},lt.validateLayersElesOrdering=function(e,t){var n=this.layersByLevel[e];if(n)for(var r=0;r0){t=!0;break}}return t},lt.invalidateElements=function(e){var t=this;e.length!==0&&(t.lastInvalidationTime=Zt(),!(e.length===0||!t.haveLayers())&&t.updateElementsInLayers(e,function(n,r,a){t.invalidateLayer(n)}))},lt.invalidateLayer=function(e){if(this.lastInvalidationTime=Zt(),!e.invalid){var t=e.level,n=e.eles,r=this.layersByLevel[t];un(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,u=t._private.rscratch;if(!(i&&!t.visible())&&!(u.badLine||u.allpts==null||isNaN(u.allpts[0]))){var l;n&&(l=n,e.translate(-l.x1,-l.y1));var s=i?t.pstyle("opacity").value:1,c=i?t.pstyle("line-opacity").value:1,d=t.pstyle("curve-style").value,h=t.pstyle("line-style").value,f=t.pstyle("width").pfValue,p=t.pstyle("line-cap").value,v=t.pstyle("line-outline-width").value,m=t.pstyle("line-outline-color").value,g=s*c,y=s*c,b=function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:g;d==="straight-triangle"?(o.eleStrokeStyle(e,t,A),o.drawEdgeTrianglePath(t,e,u.allpts)):(e.lineWidth=f,e.lineCap=p,o.eleStrokeStyle(e,t,A),o.drawEdgePath(t,e,u.allpts,h),e.lineCap="butt")},w=function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:g;if(e.lineWidth=f+v,e.lineCap=p,v>0)o.colorStrokeStyle(e,m[0],m[1],m[2],A);else{e.lineCap="butt";return}d==="straight-triangle"?o.drawEdgeTrianglePath(t,e,u.allpts):(o.drawEdgePath(t,e,u.allpts,h),e.lineCap="butt")},k=function(){a&&o.drawEdgeOverlay(e,t)},C=function(){a&&o.drawEdgeUnderlay(e,t)},x=function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:y;o.drawArrowheads(e,t,A)},P=function(){o.drawElementText(e,t,null,r)};e.lineJoin="round";var B=t.pstyle("ghost").value==="yes";if(B){var D=t.pstyle("ghost-offset-x").pfValue,_=t.pstyle("ghost-offset-y").pfValue,T=t.pstyle("ghost-opacity").value,S=g*T;e.translate(D,_),b(S),x(S),e.translate(-D,-_)}else w();C(),b(),x(),k(),P(),n&&e.translate(l.x1,l.y1)}};var Gu=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,u=n.pstyle("".concat(e,"-padding")).pfValue,l=2*u,s=n.pstyle("".concat(e,"-color")).value;t.lineWidth=l,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")}}}};Ht.drawEdgeOverlay=Gu("overlay"),Ht.drawEdgeUnderlay=Gu("underlay"),Ht.drawEdgePath=function(e,t,n,r){var a=e._private.rscratch,i=t,o,u=!1,l=this.usePaths(),s=e.pstyle("line-dash-pattern").pfValue,c=e.pstyle("line-dash-offset").pfValue;if(l){var d=n.join("$"),h=a.pathCacheKey&&a.pathCacheKey===d;h?(o=t=a.pathCache,u=!0):(o=t=new Path2D,a.pathCacheKey=d,a.pathCache=o)}if(i.setLineDash)switch(r){case"dotted":i.setLineDash([1,1]);break;case"dashed":i.setLineDash(s),i.lineDashOffset=c;break;case"solid":i.setLineDash([]);break}if(!u&&!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 f=2;f+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 u=t.pstyle("label");if(!u||!u.value)return;var l=o.getLabelJustification(t);e.textAlign=l,e.textBaseline="bottom"}else{var s=t.element()._private.rscratch.badLine,c=t.pstyle("label"),d=t.pstyle("source-label"),h=t.pstyle("target-label");if(s||(!c||!c.value)&&(!d||!d.value)&&(!h||!h.value))return;e.textAlign="center",e.textBaseline="bottom"}var f=!n,p;n&&(p=n,e.translate(-p.x1,-p.y1)),a==null?(o.drawText(e,t,null,f,i),t.isEdge()&&(o.drawText(e,t,"source",f,i),o.drawText(e,t,"target",f,i))):o.drawText(e,t,a,f,i),n&&e.translate(p.x1,p.y1)},An.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,u=n?t.effectiveOpacity()*t.pstyle("text-opacity").value:1,l=t.pstyle("text-outline-opacity").value*u,s=t.pstyle("color").value,c=t.pstyle("text-outline-color").value;e.font=r+" "+o+" "+a+" "+i,e.lineJoin="round",this.colorFillStyle(e,s[0],s[1],s[2],u),this.colorStrokeStyle(e,c[0],c[1],c[2],l)};function Fy(e,t,n,r,a){var i=Math.min(r,a),o=i/2,u=t+r/2,l=n+a/2;e.beginPath(),e.arc(u,l,o,0,Math.PI*2),e.closePath()}function Hu(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()}An.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 u=kt(a,"labelAngle",t);n=e.isEdge()?u:0}else o.strValue==="none"?n=0:n=o.pfValue;return n},An.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,u=a?t.effectiveOpacity():1;if(!(a&&(u===0||t.pstyle("text-opacity").value===0))){n==="main"&&(n=null);var l=kt(o,"labelX",n),s=kt(o,"labelY",n),c,d,h=this.getLabelText(t,n);if(h!=null&&h!==""&&!isNaN(l)&&!isNaN(s)){this.setupTextStyle(e,t,a);var f=n?n+"-":"",p=kt(o,"labelWidth",n),v=kt(o,"labelHeight",n),m=t.pstyle(f+"text-margin-x").pfValue,g=t.pstyle(f+"text-margin-y").pfValue,y=t.isEdge(),b=t.pstyle("text-halign").value,w=t.pstyle("text-valign").value;y&&(b="center",w="center"),l+=m,s+=g;var k;switch(r?k=this.getTextAngle(t,n):k=0,k!==0&&(c=l,d=s,e.translate(c,d),e.rotate(k),l=0,s=0),w){case"top":break;case"center":s+=v/2;break;case"bottom":s+=v;break}var C=t.pstyle("text-background-opacity").value,x=t.pstyle("text-border-opacity").value,P=t.pstyle("text-border-width").pfValue,B=t.pstyle("text-background-padding").pfValue,D=t.pstyle("text-background-shape").strValue,_=D==="round-rectangle"||D==="roundrectangle",T=D==="circle",S=2;if(C>0||P>0&&x>0){var A=e.fillStyle,N=e.strokeStyle,R=e.lineWidth,M=t.pstyle("text-background-color").value,L=t.pstyle("text-border-color").value,I=t.pstyle("text-border-style").value,j=C>0,F=P>0&&x>0,Y=l-B;switch(b){case"left":Y-=p;break;case"center":Y-=p/2;break}var W=s-v-B,Q=p+2*B,$=v+2*B;if(j&&(e.fillStyle="rgba(".concat(M[0],",").concat(M[1],",").concat(M[2],",").concat(C*u,")")),F&&(e.strokeStyle="rgba(".concat(L[0],",").concat(L[1],",").concat(L[2],",").concat(x*u,")"),e.lineWidth=P,e.setLineDash))switch(I){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=P/4,e.setLineDash([]);break;case"solid":default:e.setLineDash([]);break}if(_?(e.beginPath(),Hu(e,Y,W,Q,$,S)):T?(e.beginPath(),Fy(e,Y,W,Q,$)):(e.beginPath(),e.rect(Y,W,Q,$)),j&&e.fill(),F&&e.stroke(),F&&I==="double"){var Z=P/2;e.beginPath(),_?Hu(e,Y+Z,W+Z,Q-2*Z,$-2*Z,S):e.rect(Y+Z,W+Z,Q-2*Z,$-2*Z),e.stroke()}e.fillStyle=A,e.strokeStyle=N,e.lineWidth=R,e.setLineDash&&e.setLineDash([])}var J=2*t.pstyle("text-outline-width").pfValue;if(J>0&&(e.lineWidth=J),t.pstyle("text-wrap").value==="wrap"){var re=kt(o,"labelWrapCachedLines",n),V=kt(o,"labelLineHeight",n),O=p/2,z=this.getLabelJustification(t);switch(z==="auto"||(b==="left"?z==="left"?l+=-p:z==="center"&&(l+=-O):b==="center"?z==="left"?l+=-O:z==="right"&&(l+=O):b==="right"&&(z==="center"?l+=O:z==="right"&&(l+=p))),w){case"top":s-=(re.length-1)*V;break;case"center":case"bottom":s-=(re.length-1)*V;break}for(var H=0;H0&&e.strokeText(re[H],l,s),e.fillText(re[H],l,s),s+=V}else J>0&&e.strokeText(h,l,s),e.fillText(h,l,s);k!==0&&(e.rotate(-k),e.translate(-c,-d))}}};var an={};an.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,u,l,s=t._private,c=s.rscratch,d=t.position();if(!(!ne(d.x)||!ne(d.y))&&!(i&&!t.visible())){var h=i?t.effectiveOpacity():1,f=o.usePaths(),p,v=!1,m=t.padding();u=t.width()+2*m,l=t.height()+2*m;var g;n&&(g=n,e.translate(-g.x1,-g.y1));for(var y=t.pstyle("background-image"),b=y.value,w=new Array(b.length),k=new Array(b.length),C=0,x=0;x0&&arguments[0]!==void 0?arguments[0]:S;o.eleFillStyle(e,t,ie)},V=function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:F;o.colorStrokeStyle(e,A[0],A[1],A[2],ie)},O=function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:$;o.colorStrokeStyle(e,W[0],W[1],W[2],ie)},z=function(ie,ve,E,X){var q=o.nodePathCache=o.nodePathCache||[],U=xc(E==="polygon"?E+","+X.join(","):E,""+ve,""+ie,""+J),G=q[U],oe,K=!1;return G!=null?(oe=G,K=!0,c.pathCache=oe):(oe=new Path2D,q[U]=c.pathCache=oe),{path:oe,cacheHit:K}},H=t.pstyle("shape").strValue,te=t.pstyle("shape-polygon-points").pfValue;if(f){e.translate(d.x,d.y);var ae=z(u,l,H,te);p=ae.path,v=ae.cacheHit}var we=function(){if(!v){var ie=d;f&&(ie={x:0,y:0}),o.nodeShapes[o.getNodeShape(t)].draw(p||e,ie.x,ie.y,u,l,J,c)}f?e.fill(p):e.fill()},ye=function(){for(var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:h,ve=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,E=s.backgrounding,X=0,q=0;q0&&arguments[0]!==void 0?arguments[0]:!1,ve=arguments.length>1&&arguments[1]!==void 0?arguments[1]:h;o.hasPie(t)&&(o.drawPie(e,t,ve),ie&&(f||o.nodeShapes[o.getNodeShape(t)].draw(e,d.x,d.y,u,l,J,c)))},Ae=function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,ve=arguments.length>1&&arguments[1]!==void 0?arguments[1]:h;o.hasStripe(t)&&(e.save(),f?e.clip(c.pathCache):(o.nodeShapes[o.getNodeShape(t)].draw(e,d.x,d.y,u,l,J,c),e.clip()),o.drawStripe(e,t,ve),e.restore(),ie&&(f||o.nodeShapes[o.getNodeShape(t)].draw(e,d.x,d.y,u,l,J,c)))},ee=function(){var ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:h,ve=(_>0?_:-_)*ie,E=_>0?0:255;_!==0&&(o.colorFillStyle(e,E,E,E,ve),f?e.fill(p):e.fill())},ue=function(){if(T>0){if(e.lineWidth=T,e.lineCap=M,e.lineJoin=R,e.setLineDash)switch(N){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash(I),e.lineDashOffset=j;break;case"solid":case"double":e.setLineDash([]);break}if(L!=="center"){if(e.save(),e.lineWidth*=2,L==="inside")f?e.clip(p):e.clip();else{var ie=new Path2D;ie.rect(-u/2-T,-l/2-T,u+2*T,l+2*T),ie.addPath(p),e.clip(ie,"evenodd")}f?e.stroke(p):e.stroke(),e.restore()}else f?e.stroke(p):e.stroke();if(N==="double"){e.lineWidth=T/3;var ve=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",f?e.stroke(p):e.stroke(),e.globalCompositeOperation=ve}e.setLineDash&&e.setLineDash([])}},ce=function(){if(Y>0){if(e.lineWidth=Y,e.lineCap="butt",e.setLineDash)switch(Q){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([]);break}var ie=d;f&&(ie={x:0,y:0});var ve=o.getNodeShape(t),E=T;L==="inside"&&(E=0),L==="outside"&&(E*=2);var X=(u+E+(Y+Z))/u,q=(l+E+(Y+Z))/l,U=u*X,G=l*q,oe=o.nodeShapes[ve].points,K;if(f){var de=z(U,G,ve,oe);K=de.path}if(ve==="ellipse")o.drawEllipsePath(K||e,ie.x,ie.y,U,G);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(ve)){var le=0,pe=0,Pe=0;ve==="round-diamond"?le=(E+Z+Y)*1.4:ve==="round-heptagon"?(le=(E+Z+Y)*1.075,Pe=-(E/2+Z+Y)/35):ve==="round-hexagon"?le=(E+Z+Y)*1.12:ve==="round-pentagon"?(le=(E+Z+Y)*1.13,Pe=-(E/2+Z+Y)/15):ve==="round-tag"?(le=(E+Z+Y)*1.12,pe=(E/2+Y+Z)*.07):ve==="round-triangle"&&(le=(E+Z+Y)*(Math.PI/2),Pe=-(E+Z/2+Y)/Math.PI),le!==0&&(X=(u+le)/u,U=u*X,["round-hexagon","round-tag"].includes(ve)||(q=(l+le)/l,G=l*q)),J=J==="auto"?Dc(U,G):J;for(var ke=U/2,he=G/2,Te=J+(E+Y+Z)/2,Ie=new Array(oe.length/2),We=new Array(oe.length/2),st=0;st0){if(r=r||n.position(),a==null||i==null){var h=n.padding();a=n.width()+2*h,i=n.height()+2*h}o.colorFillStyle(t,s[0],s[1],s[2],l),o.nodeShapes[c].draw(t,r.x,r.y,a+u*2,i+u*2,d),t.fill()}}}};an.drawNodeOverlay=Ku("overlay"),an.drawNodeUnderlay=Ku("underlay"),an.hasPie=function(e){return e=e[0],e._private.hasPie},an.hasStripe=function(e){return e=e[0],e._private.hasStripe},an.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"),u=t.pstyle("pie-start-angle").pfValue,l=r.x,s=r.y,c=t.width(),d=t.height(),h=Math.min(c,d)/2,f,p=0,v=this.usePaths();if(v&&(l=0,s=0),i.units==="%"?h=h*i.pfValue:i.pfValue!==void 0&&(h=i.pfValue/2),o.units==="%"?f=h*o.pfValue:o.pfValue!==void 0&&(f=o.pfValue/2),!(f>=h))for(var m=1;m<=a.pieBackgroundN;m++){var g=t.pstyle("pie-"+m+"-background-size").value,y=t.pstyle("pie-"+m+"-background-color").value,b=t.pstyle("pie-"+m+"-background-opacity").value*n,w=g/100;w+p>1&&(w=1-p);var k=1.5*Math.PI+2*Math.PI*p;k+=u;var C=2*Math.PI*w,x=k+C;g===0||p>=1||p+w>1||(f===0?(e.beginPath(),e.moveTo(l,s),e.arc(l,s,h,k,x),e.closePath()):(e.beginPath(),e.arc(l,s,h,k,x),e.arc(l,s,f,x,k,!0),e.closePath()),this.colorFillStyle(e,y[0],y[1],y[2],b),e.fill(),p+=w)}},an.drawStripe=function(e,t,n,r){t=t[0],r=r||t.position();var a=t.cy().style(),i=r.x,o=r.y,u=t.width(),l=t.height(),s=0,c=this.usePaths();e.save();var d=t.pstyle("stripe-direction").value,h=t.pstyle("stripe-size");switch(d){case"vertical":break;case"righward":e.rotate(-Math.PI/2);break}var f=u,p=l;h.units==="%"?(f=f*h.pfValue,p=p*h.pfValue):h.pfValue!==void 0&&(f=h.pfValue,p=h.pfValue),c&&(i=0,o=0),o-=f/2,i-=p/2;for(var v=1;v<=a.stripeBackgroundN;v++){var m=t.pstyle("stripe-"+v+"-background-size").value,g=t.pstyle("stripe-"+v+"-background-color").value,y=t.pstyle("stripe-"+v+"-background-opacity").value*n,b=m/100;b+s>1&&(b=1-s),!(m===0||s>=1||s+b>1)&&(e.beginPath(),e.rect(i,o+p*s,f,p*b),e.closePath(),this.colorFillStyle(e,g[0],g[1],g[2],y),e.fill(),s+=b)}e.restore()};var bt={},Xy=100;bt.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},bt.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&&!d&&(c[t.NODE]=!0,c[t.SELECT_BOX]=!0);var y=n.style(),b=n.zoom(),w=o!==void 0?o:b,k=n.pan(),C={x:k.x,y:k.y},x={zoom:b,pan:{x:k.x,y:k.y}},P=t.prevViewport,B=P===void 0||x.zoom!==P.zoom||x.pan.x!==P.pan.x||x.pan.y!==P.pan.y;!B&&!(v&&!p)&&(t.motionBlurPxRatio=1),u&&(C=u),w*=l,C.x*=l,C.y*=l;var D=t.getCachedZSortedEles();function _(V,O,z,H,te){var ae=V.globalCompositeOperation;V.globalCompositeOperation="destination-out",t.colorFillStyle(V,255,255,255,t.motionBlurTransparency),V.fillRect(O,z,H,te),V.globalCompositeOperation=ae}function T(V,O){var z,H,te,ae;!t.clearingMotionBlur&&(V===s.bufferContexts[t.MOTIONBLUR_BUFFER_NODE]||V===s.bufferContexts[t.MOTIONBLUR_BUFFER_DRAG])?(z={x:k.x*f,y:k.y*f},H=b*f,te=t.canvasWidth*f,ae=t.canvasHeight*f):(z=C,H=w,te=t.canvasWidth,ae=t.canvasHeight),V.setTransform(1,0,0,1,0,0),O==="motionBlur"?_(V,0,0,te,ae):!r&&(O===void 0||O)&&V.clearRect(0,0,te,ae),a||(V.translate(z.x,z.y),V.scale(H,H)),u&&V.translate(u.x,u.y),o&&V.scale(o,o)}if(d||(t.textureDrawLastFrame=!1),d){if(t.textureDrawLastFrame=!0,!t.textureCache){t.textureCache={},t.textureCache.bb=n.mutableElements().boundingBox(),t.textureCache.texture=t.data.bufferCanvases[t.TEXTURE_BUFFER];var S=t.data.bufferContexts[t.TEXTURE_BUFFER];S.setTransform(1,0,0,1,0,0),S.clearRect(0,0,t.canvasWidth*t.textureMult,t.canvasHeight*t.textureMult),t.render({forcedContext:S,drawOnlyNodeLayer:!0,forcedPxRatio:l*t.textureMult});var x=t.textureCache.viewport={zoom:n.zoom(),pan:n.pan(),width:t.canvasWidth,height:t.canvasHeight};x.mpan={x:(0-x.pan.x)/x.zoom,y:(0-x.pan.y)/x.zoom}}c[t.DRAG]=!1,c[t.NODE]=!1;var A=s.contexts[t.NODE],N=t.textureCache.texture,x=t.textureCache.viewport;A.setTransform(1,0,0,1,0,0),h?_(A,0,0,x.width,x.height):A.clearRect(0,0,x.width,x.height);var R=y.core("outside-texture-bg-color").value,M=y.core("outside-texture-bg-opacity").value;t.colorFillStyle(A,R[0],R[1],R[2],M),A.fillRect(0,0,x.width,x.height);var b=n.zoom();T(A,!1),A.clearRect(x.mpan.x,x.mpan.y,x.width/x.zoom/l,x.height/x.zoom/l),A.drawImage(N,x.mpan.x,x.mpan.y,x.width/x.zoom/l,x.height/x.zoom/l)}else t.textureOnViewport&&!r&&(t.textureCache=null);var L=n.extent(),I=t.pinching||t.hoverData.dragging||t.swipePanning||t.data.wheelZooming||t.hoverData.draggingEles||t.cy.animated(),j=t.hideEdgesOnViewport&&I,F=[];if(F[t.NODE]=!c[t.NODE]&&h&&!t.clearedForMotionBlur[t.NODE]||t.clearingMotionBlur,F[t.NODE]&&(t.clearedForMotionBlur[t.NODE]=!0),F[t.DRAG]=!c[t.DRAG]&&h&&!t.clearedForMotionBlur[t.DRAG]||t.clearingMotionBlur,F[t.DRAG]&&(t.clearedForMotionBlur[t.DRAG]=!0),c[t.NODE]||a||i||F[t.NODE]){var Y=h&&!F[t.NODE]&&f!==1,A=r||(Y?t.data.bufferContexts[t.MOTIONBLUR_BUFFER_NODE]:s.contexts[t.NODE]),W=h&&!Y?"motionBlur":void 0;T(A,W),j?t.drawCachedNodes(A,D.nondrag,l,L):t.drawLayeredElements(A,D.nondrag,l,L),t.debug&&t.drawDebugPoints(A,D.nondrag),!a&&!h&&(c[t.NODE]=!1)}if(!i&&(c[t.DRAG]||a||F[t.DRAG])){var Y=h&&!F[t.DRAG]&&f!==1,A=r||(Y?t.data.bufferContexts[t.MOTIONBLUR_BUFFER_DRAG]:s.contexts[t.DRAG]);T(A,h&&!Y?"motionBlur":void 0),j?t.drawCachedNodes(A,D.drag,l,L):t.drawCachedElements(A,D.drag,l,L),t.debug&&t.drawDebugPoints(A,D.drag),!a&&!h&&(c[t.DRAG]=!1)}if(this.drawSelectionRectangle(e,T),h&&f!==1){var Q=s.contexts[t.NODE],$=t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_NODE],Z=s.contexts[t.DRAG],J=t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_DRAG],re=function(V,O,z){V.setTransform(1,0,0,1,0,0),z||!g?V.clearRect(0,0,t.canvasWidth,t.canvasHeight):_(V,0,0,t.canvasWidth,t.canvasHeight);var H=f;V.drawImage(O,0,0,t.canvasWidth*H,t.canvasHeight*H,0,0,t.canvasWidth,t.canvasHeight)};(c[t.NODE]||F[t.NODE])&&(re(Q,$,F[t.NODE]),c[t.NODE]=!1),(c[t.DRAG]||F[t.DRAG])&&(re(Z,J,F[t.DRAG]),c[t.DRAG]=!1)}t.prevViewport=x,t.clearingMotionBlur&&(t.clearingMotionBlur=!1,t.motionBlurCleared=!0,t.motionBlur=!0),h&&(t.motionBlurTimeout=setTimeout(function(){t.motionBlurTimeout=null,t.clearedForMotionBlur[t.NODE]=!1,t.clearedForMotionBlur[t.DRAG]=!1,t.motionBlur=!1,t.clearingMotionBlur=!d,t.mbFrames=0,c[t.NODE]=!0,c[t.DRAG]=!0,t.redraw()},Xy)),r||n.emit("render")};var gr;bt.drawSelectionRectangle=function(e,t){var n=this,r=n.cy,a=n.data,i=r.style(),o=e.drawOnlyNodeLayer,u=e.drawAllLayers,l=a.canvasNeedsRedraw,s=e.forcedContext;if(n.showFps||!o&&l[n.SELECT_BOX]&&!u){var c=s||a.contexts[n.SELECT_BOX];if(t(c),n.selection[4]==1&&(n.hoverData.selecting||n.touchData.selecting)){var d=n.cy.zoom(),h=i.core("selection-box-border-width").value/d;c.lineWidth=h,c.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+")",c.fillRect(n.selection[0],n.selection[1],n.selection[2]-n.selection[0],n.selection[3]-n.selection[1]),h>0&&(c.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+")",c.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 d=n.cy.zoom(),f=a.bgActivePosistion;c.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+")",c.beginPath(),c.arc(f.x,f.y,i.core("active-bg-size").pfValue/d,0,2*Math.PI),c.fill()}var p=n.lastRedrawTime;if(n.showFps&&p){p=Math.round(p);var v=Math.round(1e3/p),m="1 frame = "+p+" ms = "+v+" fps";if(c.setTransform(1,0,0,1,0,0),c.fillStyle="rgba(255, 0, 0, 0.75)",c.strokeStyle="rgba(255, 0, 0, 0.75)",c.font="30px Arial",!gr){var g=c.measureText(m);gr=g.actualBoundingBoxAscent}c.fillText(m,0,gr);var y=60;c.strokeRect(0,gr+10,250,20),c.fillRect(0,gr+10,250*Math.min(v/y,1),20)}u||(l[n.SELECT_BOX]=!1)}};function Zu(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}function Yy(e,t,n){var r=Zu(e,e.VERTEX_SHADER,t),a=Zu(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}function jy(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}function ys(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}}}function qy(e){var t=e.pixelRatio,n=e.cy.zoom();return n*t}function Uy(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]}function Wy(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"}function Gy(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}function Hy(e){return e[0]+(e[1]<<8)+(e[2]<<16)+(e[3]<<24)}function Ky(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}function Ad(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]}}function Sd(e,t,n){switch(t){case e.FLOAT:return new Float32Array(n);case e.INT:return new Int32Array(n)}}function Zy(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)}}function Qy(e,t,n,r){var a=Ad(e,t),i=$e(a,2),o=i[0],u=i[1],l=Sd(e,u,r),s=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,s),e.bufferData(e.ARRAY_BUFFER,l,e.STATIC_DRAW),u===e.FLOAT?e.vertexAttribPointer(n,o,u,!1,0,0):u===e.INT&&e.vertexAttribIPointer(n,o,u,0,0),e.enableVertexAttribArray(n),e.bindBuffer(e.ARRAY_BUFFER,null),s}function zt(e,t,n,r){var a=Ad(e,n),i=$e(a,3),o=i[0],u=i[1],l=i[2],s=Sd(e,u,t*o),c=o*l,d=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,d),e.bufferData(e.ARRAY_BUFFER,t*c,e.DYNAMIC_DRAW),e.enableVertexAttribArray(r),u===e.FLOAT?e.vertexAttribPointer(r,o,u,!1,c,0):u===e.INT&&e.vertexAttribIPointer(r,o,u,c,0),e.vertexAttribDivisor(r,1),e.bindBuffer(e.ARRAY_BUFFER,null);for(var h=new Array(t),f=0;fi&&(o=i/n,u=n*o,l=r*o),{scale:o,texW:u,texH:l}}},{key:"draw",value: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,u=this.texHeight,l=this.getScale(n),s=l.scale,c=l.texW,d=l.texH,h=function(g,y){if(r&&y){var b=y.context,w=g.x,k=g.row,C=w,x=u*k;b.save(),b.translate(C,x),b.scale(s,s),r(b,n),b.restore()}},f=[null,null],p=function(){h(a.freePointer,a.canvas),f[0]={x:a.freePointer.x,y:a.freePointer.row*u,w:c,h:d},f[1]={x:a.freePointer.x+c,y:a.freePointer.row*u,w:0,h:d},a.freePointer.x+=c,a.freePointer.x==i&&(a.freePointer.x=0,a.freePointer.row++)},v=function(){var g=a.scratch,y=a.canvas;g.clear(),h({x:0,row:0},g);var b=i-a.freePointer.x,w=c-b,k=u;{var C=a.freePointer.x,x=a.freePointer.row*u,P=b;y.context.drawImage(g,0,0,P,k,C,x,P,k),f[0]={x:C,y:x,w:P,h:d}}{var B=b,D=(a.freePointer.row+1)*u,_=w;y&&y.context.drawImage(g,B,0,_,k,0,D,_,k),f[1]={x:0,y:D,w:_,h:d}}a.freePointer.x=w,a.freePointer.row++},m=function(){a.freePointer.x=0,a.freePointer.row++};if(this.freePointer.x+c<=i)p();else{if(this.freePointer.row>=o-1)return!1;this.freePointer.x===i?(m(),p()):this.enableWrapping?v():(m(),p())}return this.keyToLocation.set(t,f),this.needsBuffer=!0,f}},{key:"getOffsets",value:function(t){return this.keyToLocation.get(t)}},{key:"isEmpty",value:function(){return this.freePointer.x===0&&this.freePointer.row===0}},{key:"canFit",value: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,u=o===void 0?function(){return!0}:o,l=r.filterType,s=l===void 0?function(){return!0}:l,c=!1,d=!1,h=Ct(t),f;try{for(h.s();!(f=h.n()).done;){var p=f.value;if(u(p)){var v=Ct(this.renderTypes.values()),m;try{var g=function(){var y=m.value,b=y.type;if(s(b)){var w=n.collections.get(y.collection),k=y.getKey(p),C=Array.isArray(k)?k:[k];if(i)C.forEach(function(D){return w.markKeyForGC(D)}),d=!0;else{var x=y.getID?y.getID(p):p.id(),P=n._key(b,x),B=n.typeAndIdToKey.get(P);B!==void 0&&!Gy(C,B)&&(c=!0,n.typeAndIdToKey.delete(P),B.forEach(function(D){return w.markKeyForGC(D)}))}}};for(v.s();!(m=v.n()).done;)g()}catch(y){v.e(y)}finally{v.f()}}}}catch(y){h.e(y)}finally{h.f()}return d&&(this.gc(),c=!1),c}},{key:"gc",value:function(){var t=Ct(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()}}},{key:"getOrCreateAtlas",value:function(t,n,r,a){var i=this.renderTypes.get(n),o=this.collections.get(i.collection),u=!1,l=o.draw(a,r,function(d){i.drawClipped?(d.save(),d.beginPath(),d.rect(0,0,r.w,r.h),d.clip(),i.drawElement(d,t,r,!0,!0),d.restore()):i.drawElement(d,t,r,!0,!0),u=!0});if(u){var s=i.getID?i.getID(t):t.id(),c=this._key(n,s);this.typeAndIdToKey.has(c)?this.typeAndIdToKey.get(c).push(a):this.typeAndIdToKey.set(c,[a])}return l}},{key:"getAtlasInfo",value: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(u){var l=a.getBoundingBox(t,u),s=r.getOrCreateAtlas(t,n,l,u),c=s.getOffsets(u),d=$e(c,2),h=d[0],f=d[1];return{atlas:s,tex:h,tex1:h,tex2:f,bb:l}})}},{key:"getDebugInfo",value:function(){var t=[],n=Ct(this.collections),r;try{for(n.s();!(r=n.n()).done;){var a=$e(r.value,2),i=a[0],o=a[1],u=o.getCounts(),l=u.keyCount,s=u.atlasCount;t.push({type:i,keyCount:l,atlasCount:s})}}catch(c){n.e(c)}finally{n.f()}return t}}])}(),o0=function(){function e(t){vn(this,e),this.globalOptions=t,this.atlasSize=t.webglTexSize,this.maxAtlasesPerBatch=t.webglTexPerBatch,this.batchAtlases=[]}return yn(e,[{key:"getMaxAtlasesPerBatch",value:function(){return this.maxAtlasesPerBatch}},{key:"getAtlasSize",value:function(){return this.atlasSize}},{key:"getIndexArray",value:function(){return Array.from({length:this.maxAtlasesPerBatch},function(t,n){return n})}},{key:"startBatch",value:function(){this.batchAtlases=[]}},{key:"getAtlasCount",value:function(){return this.batchAtlases.length}},{key:"getAtlases",value:function(){return this.batchAtlases}},{key:"canAddToCurrentBatch",value:function(t){return this.batchAtlases.length===this.maxAtlasesPerBatch?this.batchAtlases.includes(t):!0}},{key:"getAtlasIndexForBatch",value: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}}])}(),s0=` float circleSD(vec2 p, float r) { return distance(vec2(0), p) - r; // signed distance } `,l0=` 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); } `,u0=` 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; } `,c0=` 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; } `,Dr={SCREEN:{name:"screen",screen:!0},PICKING:{name:"picking",picking:!0}},La={IGNORE:1,USE_BB:2},ko=0,ec=1,tc=2,To=3,jn=4,la=5,vr=6,yr=7,d0=function(){function e(t,n,r){vn(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=jy,this.atlasManager=new i0(t,r),this.batchManager=new o0(r),this.simpleShapeOptions=new Map,this.program=this._createShaderProgram(Dr.SCREEN),this.pickingProgram=this._createShaderProgram(Dr.PICKING),this.vao=this._createVAO()}return yn(e,[{key:"addAtlasCollection",value:function(t,n){this.atlasManager.addAtlasCollection(t,n)}},{key:"addTextureAtlasRenderType",value:function(t,n){this.atlasManager.addRenderType(t,n)}},{key:"addSimpleShapeRenderType",value:function(t,n){this.simpleShapeOptions.set(t,n)}},{key:"invalidate",value: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:function(i){return i===r},forceRedraw:!0}):a.invalidate(t)}},{key:"gc",value:function(){this.atlasManager.gc()}},{key:"_createShaderProgram",value: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(ko,`) { 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(jn," || aVertType == ").concat(yr,` || aVertType == `).concat(la," || aVertType == ").concat(vr,`) { // 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(ec,`) { 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(To,` && 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(l){return"uniform sampler2D uTexture".concat(l,";")}).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(s0,` `).concat(l0,` `).concat(u0,` `).concat(c0,` 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(ko,`) { // look up the texel from the texture unit `).concat(a.map(function(l){return"if(vAtlasId == ".concat(l,") outColor = texture(uTexture").concat(l,", vTexCoord);")}).join(` else `),` } else if(vVertType == `).concat(To,`) { // 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(jn,` && 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(jn," || vVertType == ").concat(yr,` || vVertType == `).concat(la," || vVertType == ").concat(vr,`) { // 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(jn,`) { d = rectangleSD(p, b); } else if(vVertType == `).concat(yr,` && w == h) { d = circleSD(p, b.x); // faster than ellipse } else if(vVertType == `).concat(yr,`) { 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=Yy(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 u=0;u1&&arguments[1]!==void 0?arguments[1]:Dr.SCREEN;this.panZoomMatrix=t,this.renderTarget=n,this.batchDebugInfo=[],this.wrappedCount=0,this.simpleCount=0,this.startBatch()}},{key:"startBatch",value:function(){this.instanceCount=0,this.batchManager.startBatch()}},{key:"endFrame",value:function(){this.endBatch()}},{key:"_isVisible",value:function(t,n){return t.visible()?n&&n.isVisible?n.isVisible(t):!0:!1}},{key:"drawTexture",value: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 u=o.getTexPickingMode(t);if(u===La.IGNORE)return;if(u==La.USE_BB){this.drawPickingRectangle(t,n,r);return}}var l=a.getAtlasInfo(t,r),s=Ct(l),c;try{for(s.s();!(c=s.n()).done;){var d=c.value,h=d.atlas,f=d.tex1,p=d.tex2;i.canAddToCurrentBatch(h)||this.endBatch();for(var v=i.getAtlasIndexForBatch(h),m=0,g=[[f,!0],[p,!1]];m=this.maxInstances&&this.endBatch()}}}}catch(D){s.e(D)}finally{s.f()}}}},{key:"setTransformMatrix",value: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 u=a.bb,l=a.tex1,s=a.tex2,c=l.w/(l.w+s.w);i||(c=1-c);var d=this._getAdjustedBB(u,o,i,c);this._applyTransformMatrix(n,d,r,t)}else{var h=r.getBoundingBox(t),f=this._getAdjustedBB(h,o,!0,1);this._applyTransformMatrix(n,f,r,t)}}},{key:"_applyTransformMatrix",value:function(t,n,r,a){var i,o;$u(t);var u=r.getRotation?r.getRotation(a):0;if(u!==0){var l=r.getRotationPoint(a),s=l.x,c=l.y;ka(t,t,[s,c]),Ju(t,t,u);var d=r.getRotationOffset(a);i=d.x+(n.xOffset||0),o=d.y+(n.yOffset||0)}else i=n.x1,o=n.y1;ka(t,t,[i,o]),$o(t,t,[n.w,n.h])}},{key:"_getAdjustedBB",value:function(t,n,r,a){var i=t.x1,o=t.y1,u=t.w,l=t.h,s=t.yOffset;n&&(i-=n,o-=n,u+=2*n,l+=2*n);var c=0,d=u*a;return r&&a<1?u=d:!r&&a<1&&(c=u-d,i+=c,u=d),{x1:i,y1:o,w:u,h:l,xOffset:c,yOffset:s}}},{key:"drawPickingRectangle",value:function(t,n,r){var a=this.atlasManager.getRenderTypeOpts(r),i=this.instanceCount;this.vertTypeBuffer.getView(i)[0]=jn;var o=this.indexBuffer.getView(i);Yn(n,o);var u=this.colorBuffer.getView(i);En([0,0,0],1,u);var l=this.transformBuffer.getMatrixView(i);this.setTransformMatrix(t,l,a),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}},{key:"drawNode",value: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 u=this.instanceCount;if(this.vertTypeBuffer.getView(u)[0]=o,o===la||o===vr){var l=a.getBoundingBox(t),s=this._getCornerRadius(t,i.radius,l),c=this.cornerRadiusBuffer.getView(u);c[0]=s,c[1]=s,c[2]=s,c[3]=s,o===vr&&(c[0]=0,c[2]=0)}var d=this.indexBuffer.getView(u);Yn(n,d);var h=t.pstyle(i.color).value,f=t.pstyle(i.opacity).value,p=this.colorBuffer.getView(u);En(h,f,p);var v=this.lineWidthBuffer.getView(u);if(v[0]=0,v[1]=0,i.border){var m=t.pstyle("border-width").value;if(m>0){var g=t.pstyle("border-color").value,y=t.pstyle("border-opacity").value,b=this.borderColorBuffer.getView(u);En(g,y,b);var w=t.pstyle("border-position").value;if(w==="inside")v[0]=0,v[1]=-m;else if(w==="outside")v[0]=m,v[1]=0;else{var k=m/2;v[0]=k,v[1]=-k}}}var C=this.transformBuffer.getMatrixView(u);this.setTransformMatrix(t,C,a),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}},{key:"_getVertTypeForShape",value:function(t,n){var r=t.pstyle(n).value;switch(r){case"rectangle":return jn;case"ellipse":return yr;case"roundrectangle":case"round-rectangle":return la;case"bottom-round-rectangle":return vr;default:return}}},{key:"_getCornerRadius",value:function(t,n,r){var a=r.w,i=r.h;if(t.pstyle(n).value==="auto")return pn(a,i);var o=t.pstyle(n).pfValue,u=a/2,l=i/2;return Math.min(o,l,u)}},{key:"drawEdgeArrow",value:function(t,n,r){if(t.visible()){var a=t._private.rscratch,i,o,u;if(r==="source"?(i=a.arrowStartX,o=a.arrowStartY,u=a.srcArrowAngle):(i=a.arrowEndX,o=a.arrowEndY,u=a.tgtArrowAngle),!(isNaN(i)||i==null||isNaN(o)||o==null||isNaN(u)||u==null)){var l=t.pstyle(r+"-arrow-shape").value;if(l!=="none"){var s=t.pstyle(r+"-arrow-color").value,c=t.pstyle("opacity").value,d=t.pstyle("line-opacity").value,h=c*d,f=t.pstyle("width").pfValue,p=t.pstyle("arrow-scale").value,v=this.r.getArrowWidth(f,p),m=this.instanceCount,g=this.transformBuffer.getMatrixView(m);$u(g),ka(g,g,[i,o]),$o(g,g,[v,v]),Ju(g,g,u),this.vertTypeBuffer.getView(m)[0]=To;var y=this.indexBuffer.getView(m);Yn(n,y);var b=this.colorBuffer.getView(m);En(s,h,b),this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}}}},{key:"drawEdgeLine",value: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,u=t.pstyle("line-color").value,l=a*i;if(r.length/2+this.instanceCount>this.maxInstances&&this.endBatch(),r.length==4){var s=this.instanceCount;this.vertTypeBuffer.getView(s)[0]=ec;var c=this.indexBuffer.getView(s);Yn(n,c);var d=this.colorBuffer.getView(s);En(u,l,d);var h=this.lineWidthBuffer.getView(s);h[0]=o;var f=this.pointAPointBBuffer.getView(s);f[0]=r[0],f[1]=r[1],f[2]=r[2],f[3]=r[3],this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}else for(var p=0;p=this.maxInstances&&this.endBatch()}}}}},{key:"_isValidEdge",value:function(t){var n=t._private.rscratch;return!(n.badLine||n.allpts==null||isNaN(n.allpts[0]))}},{key:"_getEdgePoints",value: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)}}},{key:"_getNumSegments",value:function(t){var n=15;return Math.min(Math.max(n,5),this.maxInstances)}},{key:"_getCurveSegmentPoints",value: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}},{key:"_setCurvePoint",value: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}},u=function(c){var d=c.pstyle("text-events").strValue==="yes";return d?La.USE_BB:La.IGNORE},l=function(c){var d=c.position(),h=d.x,f=d.y,p=c.outerWidth(),v=c.outerHeight();return{w:p,h:v,x1:h-p/2,y1:f-v/2}};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:l,isSimple:Wy,shapeProps:{shape:"shape",color:"background-color",opacity:"background-opacity",radius:"corner-radius",border:!0}}),n.drawing.addSimpleShapeRenderType("node-overlay",{getBoundingBox:l,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:l,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:u,getKey:Co(t.getLabelKey,null),getBoundingBox:Po(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:u,getKey:Co(t.getSourceLabelKey,"source"),getBoundingBox:Po(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:u,getKey:Co(t.getTargetLabelKey,"target"),getBoundingBox:Po(t.getTargetLabelBox,"target"),drawClipped:!0,drawElement:t.drawTargetLabel,getRotation:a("target"),getRotationPoint:t.getTargetLabelRotationPoint,getRotationOffset:t.getTargetLabelRotationOffset,isVisible:i("target-label")});var s=Xr(function(){console.log("garbage collect flag set"),n.data.gc=!0},1e4);n.onUpdateEleCalcs(function(c,d){var h=!1;d&&d.length>0&&(h|=n.drawing.invalidate(d)),h&&s()}),f0(n)};function h0(e){var t=e.cy.container(),n=t&&t.style&&t.style.backgroundColor||"white";return fc(n)}function Rd(e,t){var n=e._private.rscratch;return kt(n,"labelWrapCachedLines",t)||[]}var Co=function(e,t){return function(n){var r=e(n),a=Rd(n,t);return a.length>1?a.map(function(i,o){return"".concat(r,"_").concat(o)}):r}},Po=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)),u=Rd(n,t),l=a.h/u.length,s=l*o,c=a.y1+s;return{x1:a.x1,w:a.w,y1:c,h:l,yOffset:s}}}return a}};function f0(e){{var t=e.render;e.render=function(i){i=i||{};var o=e.cy;e.webgl&&(o.zoom()>_d?(p0(e),t.call(e,i)):(g0(e),Ld(e,i,Dr.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,u,l){return w0(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"})}}}function p0(e){var t=e.data.contexts[e.WEBGL];t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)}function g0(e){var t=function(n){n.save(),n.setTransform(1,0,0,1,0,0),n.clearRect(0,0,e.canvasWidth,e.canvasHeight),n.restore()};t(e.data.contexts[e.NODE]),t(e.data.contexts[e.DRAG])}function v0(e){var t=e.canvasWidth,n=e.canvasHeight,r=ys(e),a=r.pan,i=r.zoom,o=Eo();ka(o,o,[a.x,a.y]),$o(o,o,[i,i]);var u=Eo();t0(u,t,n);var l=Eo();return e0(l,u,o),l}function Id(e,t){var n=e.canvasWidth,r=e.canvasHeight,a=ys(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)}function y0(e,t){e.drawSelectionRectangle(t,function(n){return Id(e,n)})}function m0(e){var t=e.data.contexts[e.NODE];t.save(),Id(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()}function b0(e){var t=function(r,a,i){for(var o=r.atlasManager.getAtlasCollection(a),u=e.data.contexts[e.NODE],l=o.atlases,s=0;s=0&&w.add(x)}return w}function w0(e,t,n){var r=x0(e,t,n),a=e.getCachedZSortedEles(),i,o,u=Ct(r),l;try{for(u.s();!(l=u.n()).done;){var s=l.value,c=a[s];if(!i&&c.isNode()&&(i=c),!o&&c.isEdge()&&(o=c),i&&o)break}}catch(d){u.e(d)}finally{u.f()}return[i,o].filter(Boolean)}function _o(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"))}function Ld(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]&&y0(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 u=v0(e),l=e.getCachedZSortedEles();if(i=l.length,a.startFrame(u,n),n.screen){for(var s=0;s0&&o>0){f.clearRect(0,0,i,o),f.globalCompositeOperation="source-over";var p=this.getCachedZSortedEles();if(e.full)f.translate(-r.x1*s,-r.y1*s),f.scale(s,s),this.drawElements(f,p),f.scale(1/s,1/s),f.translate(r.x1*s,r.y1*s);else{var v=t.pan(),m={x:v.x*s,y:v.y*s};s*=t.zoom(),f.translate(m.x,m.y),f.scale(s,s),this.drawElements(f,p),f.scale(1/s,1/s),f.translate(-m.x,-m.y)}e.bg&&(f.globalCompositeOperation="destination-over",f.fillStyle=e.bg,f.rect(0,0,i,o),f.fill())}return h};function E0(e,t){for(var n=atob(e),r=new ArrayBuffer(n.length),a=new Uint8Array(r),i=0;i"u"?"undefined":nt(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},[Dd,Yt,Ht,Qo,An,an,bt,Md,on,Lr,Od].forEach(function(e){ge(Ce,e)});var C0=[{name:"null",impl:vd},{name:"base",impl:Cd},{name:"canvas",impl:k0}],P0=[{type:"layout",extensions:Qv},{type:"renderer",extensions:C0}],Vd={},Fd={};function Xd(e,t,n){var r=n,a=function(x){Ne("Can not register `"+t+"` for `"+e+"` since `"+x+"` already exists in the prototype and can not be overridden")};if(e==="core"){if(Ir.prototype[t])return a(t);Ir.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=function(x){this.options=x,n.call(this,x),De(this._private)||(this._private={}),this._private.cy=x.cy,this._private.listeners=[],this.createEmitter()},o=i.prototype=Object.create(n.prototype),u=[],l=0;l