import{a as v}from"./chunk-GTKDMUJJ.mjs";function Ps(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,a=Array(e);t=r.length?{done:!0}:{done:!1,value:r[a++]}},"n"),e:v(function(l){throw l},"e"),f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i,s=!0,o=!1;return{s:v(function(){t=t.call(r)},"s"),n:v(function(){var l=t.next();return s=l.done,l},"n"),e:v(function(l){o=!0,i=l},"e"),f:v(function(){try{s||t.return==null||t.return()}finally{if(o)throw i}},"f")}}v(Dr,"_createForOfIteratorHelper");function jl(r,e,t){return(e=ev(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}v(jl,"_defineProperty$1");function nc(r){if(typeof Symbol<"u"&&r[Symbol.iterator]!=null||r["@@iterator"]!=null)return Array.from(r)}v(nc,"_iterableToArray");function ic(r,e){var t=r==null?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(t!=null){var a,n,i,s,o=[],l=!0,u=!1;try{if(i=(t=t.call(r)).next,e===0){if(Object(t)!==t)return;l=!1}else for(;!(l=(a=i.call(t)).done)&&(o.push(a.value),o.length!==e);l=!0);}catch(f){u=!0,n=f}finally{try{if(!l&&t.return!=null&&(s=t.return(),Object(s)!==s))return}finally{if(u)throw n}}return o}}v(ic,"_iterableToArrayLimit");function sc(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}v(sc,"_nonIterableRest");function oc(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}v(oc,"_nonIterableSpread");function je(r,e){return rc(r)||ic(r,e)||Ys(r,e)||sc()}v(je,"_slicedToArray");function bn(r){return tc(r)||nc(r)||Ys(r)||oc()}v(bn,"_toConsumableArray");function uc(r,e){if(typeof r!="object"||!r)return r;var t=r[Symbol.toPrimitive];if(t!==void 0){var a=t.call(r,e);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(r)}v(uc,"_toPrimitive");function ev(r){var e=uc(r,"string");return typeof e=="symbol"?e:e+""}v(ev,"_toPropertyKey");function nr(r){"@babel/helpers - typeof";return nr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},nr(r)}v(nr,"_typeof");function Ys(r,e){if(r){if(typeof r=="string")return Ps(r,e);var t={}.toString.call(r).slice(8,-1);return t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set"?Array.from(r):t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Ps(r,e):void 0}}v(Ys,"_unsupportedIterableToArray");var tr=typeof window>"u"?null:window,So=tr?tr.navigator:null;tr&&tr.document;var lc=nr(""),rv=nr({}),vc=nr(function(){}),fc=typeof HTMLElement>"u"?"undefined":nr(HTMLElement),Ia=v(function(e){return e&&e.instanceString&&Ke(e.instanceString)?e.instanceString():null},"instanceStr"),pe=v(function(e){return e!=null&&nr(e)==lc},"string"),Ke=v(function(e){return e!=null&&nr(e)===vc},"fn"),Ge=v(function(e){return!Br(e)&&(Array.isArray?Array.isArray(e):e!=null&&e instanceof Array)},"array"),Ie=v(function(e){return e!=null&&nr(e)===rv&&!Ge(e)&&e.constructor===Object},"plainObject"),cc=v(function(e){return e!=null&&nr(e)===rv},"object"),ne=v(function(e){return e!=null&&nr(e)===nr(1)&&!isNaN(e)},"number"),dc=v(function(e){return ne(e)&&Math.floor(e)===e},"integer"),wn=v(function(e){if(fc!=="undefined")return e!=null&&e instanceof HTMLElement},"htmlElement"),Br=v(function(e){return Oa(e)||tv(e)},"elementOrCollection"),Oa=v(function(e){return Ia(e)==="collection"&&e._private.single},"element"),tv=v(function(e){return Ia(e)==="collection"&&!e._private.single},"collection"),Zs=v(function(e){return Ia(e)==="core"},"core"),av=v(function(e){return Ia(e)==="stylesheet"},"stylesheet"),hc=v(function(e){return Ia(e)==="event"},"event"),lt=v(function(e){return e==null?!0:!!(e===""||e.match(/^\s+$/))},"emptyString"),gc=v(function(e){return typeof HTMLElement>"u"?!1:e instanceof HTMLElement},"domElement"),pc=v(function(e){return Ie(e)&&ne(e.x1)&&ne(e.x2)&&ne(e.y1)&&ne(e.y2)},"boundingBox"),yc=v(function(e){return cc(e)&&Ke(e.then)},"promise"),mc=v(function(){return So&&So.userAgent.match(/msie|trident|edge/i)},"ms"),Jt=v(function(e,t){t||(t=v(function(){if(arguments.length===1)return arguments[0];if(arguments.length===0)return"undefined";for(var i=[],s=0;st?1:0},"ascending"),Sc=v(function(e,t){return-1*iv(e,t)},"descending"),we=Object.assign!=null?Object.assign.bind(Object):function(r){for(var e=arguments,t=1;t1&&(p-=1),p<1/6?h+(m-h)*6*p:p<1/2?m:p<2/3?h+(m-h)*(2/3-p)*6:h}v(f,"hue2rgb");var c=new RegExp("^"+xc+"$").exec(e);if(c){if(a=parseInt(c[1]),a<0?a=(360- -1*a%360)%360:a>360&&(a=a%360),a/=360,n=parseFloat(c[2]),n<0||n>100||(n=n/100,i=parseFloat(c[3]),i<0||i>100)||(i=i/100,s=c[4],s!==void 0&&(s=parseFloat(s),s<0||s>1)))return;if(n===0)o=l=u=Math.round(i*255);else{var d=i<.5?i*(1+n):i+n-i*n,g=2*i-d;o=Math.round(255*f(g,d,a+1/3)),l=Math.round(255*f(g,d,a)),u=Math.round(255*f(g,d,a-1/3))}t=[o,l,u,s]}return t},"hsl2tuple"),Bc=v(function(e){var t,a=new RegExp("^"+bc+"$").exec(e);if(a){t=[];for(var n=[],i=1;i<=3;i++){var s=a[i];if(s[s.length-1]==="%"&&(n[i]=!0),s=parseFloat(s),n[i]&&(s=s/100*255),s<0||s>255)return;t.push(Math.floor(s))}var o=n[1]||n[2]||n[3],l=n[1]&&n[2]&&n[3];if(o&&!l)return;var u=a[4];if(u!==void 0){if(u=parseFloat(u),u<0||u>1)return;t.push(u)}}return t},"rgb2tuple"),Pc=v(function(e){return Ac[e.toLowerCase()]},"colorname2tuple"),sv=v(function(e){return(Ge(e)?e:null)||Pc(e)||kc(e)||Bc(e)||Dc(e)},"color2tuple"),Ac={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]},ov=v(function(e){for(var t=e.map,a=e.keys,n=a.length,i=0;i=l||M<0||b&&I>=d}v(E,"shouldInvoke");function S(){var R=e();if(E(R))return D(R);h=setTimeout(S,T(R))}v(S,"timerExpired");function D(R){return h=void 0,w&&f?x(R):(f=c=void 0,g)}v(D,"trailingEdge");function B(){h!==void 0&&clearTimeout(h),p=0,f=m=c=h=void 0}v(B,"cancel");function P(){return h===void 0?g:D(e())}v(P,"flush");function A(){var R=e(),M=E(R);if(f=arguments,c=this,m=R,M){if(h===void 0)return C(m);if(b)return clearTimeout(h),h=setTimeout(S,l),x(m)}return h===void 0&&(h=setTimeout(S,l)),g}return v(A,"debounced"),A.cancel=B,A.flush=P,A}return v(s,"debounce"),ci=s,ci}v(Vc,"requireDebounce");var qc=Vc(),Va=Na(qc),di=tr?tr.performance:null,vv=di&&di.now?function(){return di.now()}:function(){return Date.now()},_c=(function(){if(tr){if(tr.requestAnimationFrame)return function(r){tr.requestAnimationFrame(r)};if(tr.mozRequestAnimationFrame)return function(r){tr.mozRequestAnimationFrame(r)};if(tr.webkitRequestAnimationFrame)return function(r){tr.webkitRequestAnimationFrame(r)};if(tr.msRequestAnimationFrame)return function(r){tr.msRequestAnimationFrame(r)}}return function(r){r&&setTimeout(function(){r(vv())},1e3/60)}})(),xn=v(function(e){return _c(e)},"requestAnimationFrame"),Zr=vv,kt=9261,fv=65599,Wt=5381,cv=v(function(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:kt,a=t,n;n=e.next(),!n.done;)a=a*fv+n.value|0;return a},"hashIterableInts"),Ta=v(function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:kt;return t*fv+e|0},"hashInt"),Sa=v(function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Wt;return(t<<5)+t+e|0},"hashIntAlt"),Gc=v(function(e,t){return e*2097152+t},"combineHashes"),rt=v(function(e){return e[0]*2097152+e[1]},"combineHashesArray"),Ya=v(function(e,t){return[Ta(e[0],t[0]),Sa(e[1],t[1])]},"hashArrays"),_o=v(function(e,t){var a={value:0,done:!1},n=0,i=e.length,s={next:v(function(){return n=0;n--)e[n]===t&&e.splice(n,1)},"removeFromArray"),ro=v(function(e){e.splice(0,e.length)},"clearArray"),Jc=v(function(e,t){for(var a=0;a"u"?"undefined":nr(Set))!==ed?Set:rd,On=v(function(e,t){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(e===void 0||t===void 0||!Zs(e)){Ue("An element must have a core reference and parameters set");return}var n=t.group;if(n==null&&(t.data&&t.data.source!=null&&t.data.target!=null?n="edges":n="nodes"),n!=="nodes"&&n!=="edges"){Ue("An element must be of type `nodes` or `edges`; you specified `"+n+"`");return}this.length=1,this[0]=this;var i=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:n,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?n==="edges":!!t.pannable,active:!1,classes:new ta,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(i.position.x==null&&(i.position.x=0),i.position.y==null&&(i.position.y=0),t.renderedPosition){var s=t.renderedPosition,o=e.pan(),l=e.zoom();i.position={x:(s.x-o.x)/l,y:(s.y-o.y)/l}}var u=[];Ge(t.classes)?u=t.classes:pe(t.classes)&&(u=t.classes.split(/\s+/));for(var f=0,c=u.length;fb?1:0},"defaultCmp"),f=v(function(y,b,w,x,C){var T;if(w==null&&(w=0),C==null&&(C=a),w<0)throw new Error("lo must be non-negative");for(x==null&&(x=y.length);wB;0<=B?D++:D--)S.push(D);return S}).apply(this).reverse(),E=[],x=0,C=T.length;xP;0<=P?++S:--S)A.push(s(y,w));return A},"nsmallest"),m=v(function(y,b,w,x){var C,T,E;for(x==null&&(x=a),C=y[w];w>b;){if(E=w-1>>1,T=y[E],x(C,T)<0){y[w]=T,w=E;continue}break}return y[w]=C},"_siftdown"),p=v(function(y,b,w){var x,C,T,E,S;for(w==null&&(w=a),C=y.length,S=b,T=y[b],x=2*b+1;x0;){var T=b.pop(),E=p(T),S=T.id();if(d[S]=E,E!==1/0)for(var D=T.neighborhood().intersect(h),B=0;B0)for(N.unshift(L);c[H];){var z=c[H];N.unshift(z.edge),N.unshift(z.node),q=z.node,H=q.id()}return o.spawn(N)},"pathTo")}},"dijkstra")},ud={kruskal:v(function(e){e=e||function(w){return 1};for(var t=this.byGroup(),a=t.nodes,n=t.edges,i=a.length,s=new Array(i),o=a,l=v(function(x){for(var C=0;C0;){if(C(),E++,x===f){for(var S=[],D=i,B=f,P=y[B];S.unshift(D),P!=null&&S.unshift(P),D=p[B],D!=null;)B=D.id(),P=y[B];return{found:!0,distance:c[x],path:this.spawn(S),steps:E}}g[x]=!0;for(var A=w._private.edges,R=0;RP&&(h[B]=P,b[B]=D,w[B]=C),!i){var A=D*f+S;!i&&h[A]>P&&(h[A]=P,b[A]=S,w[A]=C)}}}for(var R=0;R1&&arguments[1]!==void 0?arguments[1]:s,se=w(xe),he=[],ge=se;;){if(ge==null)return t.spawn();var Ce=b(ge),ye=Ce.edge,ke=Ce.pred;if(he.unshift(ge[0]),ge.same(me)&&he.length>0)break;ye!=null&&he.unshift(ye),ge=ke}return l.spawn(he)},"pathTo"),T=0;T=0;f--){var c=u[f],d=c[1],g=c[2];(t[d]===o&&t[g]===l||t[d]===l&&t[g]===o)&&u.splice(f,1)}for(var h=0;hn;){var i=Math.floor(Math.random()*t.length);t=pd(i,e,t),a--}return t},"contractUntil"),yd={kargerStein:v(function(){var e=this,t=this.byGroup(),a=t.nodes,n=t.edges;n.unmergeBy(function(N){return N.isLoop()});var i=a.length,s=n.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),l=Math.floor(i/gd);if(i<2){Ue("At least 2 nodes are required for Karger-Stein algorithm");return}for(var u=[],f=0;f1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=1/0,i=t;i1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=-1/0,i=t;i1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=0,i=0,s=t;s1&&arguments[1]!==void 0?arguments[1]:0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.length,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,s=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0;n?e=e.slice(t,a):(a0&&e.splice(0,t));for(var o=0,l=e.length-1;l>=0;l--){var u=e[l];s?isFinite(u)||(e[l]=-1/0,o++):e.splice(l,1)}i&&e.sort(function(d,g){return d-g});var f=e.length,c=Math.floor(f/2);return f%2!==0?e[c+1+o]:(e[c-1+o]+e[c+o])/2},"median"),Cd=v(function(e){return Math.PI*e/180},"deg2rad"),Za=v(function(e,t){return Math.atan2(t,e)-Math.PI/2},"getAngleFromDisp"),to=Math.log2||function(r){return Math.log(r)/Math.log(2)},ao=v(function(e){return e>0?1:e<0?-1:0},"signum"),At=v(function(e,t){return Math.sqrt(Tt(e,t))},"dist"),Tt=v(function(e,t){var a=t.x-e.x,n=t.y-e.y;return a*a+n*n},"sqdist"),Td=v(function(e){for(var t=e.length,a=0,n=0;n=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};if(e.w!=null&&e.h!=null&&e.w>=0&&e.h>=0)return{x1:e.x1,y1:e.y1,x2:e.x1+e.w,y2:e.y1+e.h,w:e.w,h:e.h}}},"makeBoundingBox"),kd=v(function(e){return{x1:e.x1,x2:e.x2,w:e.w,y1:e.y1,y2:e.y2,h:e.h}},"copyBoundingBox"),Dd=v(function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},"clearBoundingBox"),Bd=v(function(e,t){e.x1=Math.min(e.x1,t.x1),e.x2=Math.max(e.x2,t.x2),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,t.y1),e.y2=Math.max(e.y2,t.y2),e.h=e.y2-e.y1},"updateBoundingBox"),bv=v(function(e,t,a){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,a),e.y2=Math.max(e.y2,a),e.h=e.y2-e.y1},"expandBoundingBoxByPoint"),ln=v(function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.x1-=t,e.x2+=t,e.y1-=t,e.y2+=t,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},"expandBoundingBox"),vn=v(function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0],a,n,i,s;if(t.length===1)a=n=i=s=t[0];else if(t.length===2)a=i=t[0],s=n=t[1];else if(t.length===4){var o=je(t,4);a=o[0],n=o[1],i=o[2],s=o[3]}return e.x1-=s,e.x2+=n,e.y1-=a,e.y2+=i,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},"expandBoundingBoxSides"),Ko=v(function(e,t){e.x1=t.x1,e.y1=t.y1,e.x2=t.x2,e.y2=t.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1},"assignBoundingBox"),no=v(function(e,t){return!(e.x1>t.x2||t.x1>e.x2||e.x2t.y2||t.y1>e.y2)},"boundingBoxesIntersect"),it=v(function(e,t,a){return e.x1<=t&&t<=e.x2&&e.y1<=a&&a<=e.y2},"inBoundingBox"),Xo=v(function(e,t){return it(e,t.x,t.y)},"pointInBoundingBox"),wv=v(function(e,t){return it(e,t.x1,t.y1)&&it(e,t.x2,t.y2)},"boundingBoxInBoundingBox"),Pd=(pi=Math.hypot)!==null&&pi!==void 0?pi:function(r,e){return Math.sqrt(r*r+e*e)};function Ad(r,e){if(r.length<3)throw new Error("Need at least 3 vertices");var t=v(function(S,D){return{x:S.x+D.x,y:S.y+D.y}},"add"),a=v(function(S,D){return{x:S.x-D.x,y:S.y-D.y}},"sub"),n=v(function(S,D){return{x:S.x*D,y:S.y*D}},"scale"),i=v(function(S,D){return S.x*D.y-S.y*D.x},"cross"),s=v(function(S){var D=Pd(S.x,S.y);return D===0?{x:0,y:0}:{x:S.x/D,y:S.y/D}},"normalize"),o=v(function(S){for(var D=0,B=0;B7&&arguments[7]!==void 0?arguments[7]:"auto",u=l==="auto"?ft(i,s):l,f=i/2,c=s/2;u=Math.min(u,f,c);var d=u!==f,g=u!==c,h;if(d){var m=a-f+u-o,p=n-c-o,y=a+f-u+o,b=p;if(h=st(e,t,a,n,m,p,y,b,!1),h.length>0)return h}if(g){var w=a+f+o,x=n-c+u-o,C=w,T=n+c-u+o;if(h=st(e,t,a,n,w,x,C,T,!1),h.length>0)return h}if(d){var E=a-f+u-o,S=n+c+o,D=a+f-u+o,B=S;if(h=st(e,t,a,n,E,S,D,B,!1),h.length>0)return h}if(g){var P=a-f-o,A=n-c+u-o,R=P,M=n+c-u+o;if(h=st(e,t,a,n,P,A,R,M,!1),h.length>0)return h}var I;{var O=a-f+u,L=n-c+u;if(I=ma(e,t,a,n,O,L,u+o),I.length>0&&I[0]<=O&&I[1]<=L)return[I[0],I[1]]}{var N=a+f-u,q=n-c+u;if(I=ma(e,t,a,n,N,q,u+o),I.length>0&&I[0]>=N&&I[1]<=q)return[I[0],I[1]]}{var H=a+f-u,z=n+c-u;if(I=ma(e,t,a,n,H,z,u+o),I.length>0&&I[0]>=H&&I[1]>=z)return[I[0],I[1]]}{var V=a-f+u,K=n+c-u;if(I=ma(e,t,a,n,V,K,u+o),I.length>0&&I[0]<=V&&I[1]>=K)return[I[0],I[1]]}return[]},"roundRectangleIntersectLine"),Md=v(function(e,t,a,n,i,s,o){var l=o,u=Math.min(a,i),f=Math.max(a,i),c=Math.min(n,s),d=Math.max(n,s);return u-l<=e&&e<=f+l&&c-l<=t&&t<=d+l},"inLineVicinity"),Ld=v(function(e,t,a,n,i,s,o,l,u){var f={x1:Math.min(a,o,i)-u,x2:Math.max(a,o,i)+u,y1:Math.min(n,l,s)-u,y2:Math.max(n,l,s)+u};return!(ef.x2||tf.y2)},"inBezierVicinity"),Id=v(function(e,t,a,n){a-=n;var i=t*t-4*e*a;if(i<0)return[];var s=Math.sqrt(i),o=2*e,l=(-t+s)/o,u=(-t-s)/o;return[l,u]},"solveQuadratic"),Od=v(function(e,t,a,n,i){var s=1e-5;e===0&&(e=s),t/=e,a/=e,n/=e;var o,l,u,f,c,d,g,h;if(l=(3*a-t*t)/9,u=-(27*n)+t*(9*a-2*(t*t)),u/=54,o=l*l*l+u*u,i[1]=0,g=t/3,o>0){c=u+Math.sqrt(o),c=c<0?-Math.pow(-c,1/3):Math.pow(c,1/3),d=u-Math.sqrt(o),d=d<0?-Math.pow(-d,1/3):Math.pow(d,1/3),i[0]=-g+c+d,g+=(c+d)/2,i[4]=i[2]=-g,g=Math.sqrt(3)*(-d+c)/2,i[3]=g,i[5]=-g;return}if(i[5]=i[3]=0,o===0){h=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3),i[0]=-g+2*h,i[4]=i[2]=-(h+g);return}l=-l,f=l*l*l,f=Math.acos(u/Math.sqrt(f)),h=2*Math.sqrt(l),i[0]=-g+h*Math.cos(f/3),i[2]=-g+h*Math.cos((f+2*Math.PI)/3),i[4]=-g+h*Math.cos((f+4*Math.PI)/3)},"solveCubic"),Nd=v(function(e,t,a,n,i,s,o,l){var u=1*a*a-4*a*i+2*a*o+4*i*i-4*i*o+o*o+n*n-4*n*s+2*n*l+4*s*s-4*s*l+l*l,f=9*a*i-3*a*a-3*a*o-6*i*i+3*i*o+9*n*s-3*n*n-3*n*l-6*s*s+3*s*l,c=3*a*a-6*a*i+a*o-a*e+2*i*i+2*i*e-o*e+3*n*n-6*n*s+n*l-n*t+2*s*s+2*s*t-l*t,d=1*a*i-a*a+a*e-i*e+n*s-n*n+n*t-s*t,g=[];Od(u,f,c,d,g);for(var h=1e-7,m=[],p=0;p<6;p+=2)Math.abs(g[p+1])=0&&g[p]<=1&&m.push(g[p]);m.push(1),m.push(0);for(var y=-1,b,w,x,C=0;C=0?xu?(e-i)*(e-i)+(t-s)*(t-s):f-d},"sqdistToFiniteLine"),kr=v(function(e,t,a){for(var n,i,s,o,l,u=0,f=0;f=e&&e>=s||n<=e&&e<=s)l=(e-n)/(s-n)*(o-i)+i,l>t&&u++;else continue;return u%2!==0},"pointInsidePolygonPoints"),Qr=v(function(e,t,a,n,i,s,o,l,u){var f=new Array(a.length),c;l[0]!=null?(c=Math.atan(l[1]/l[0]),l[0]<0?c=c+Math.PI/2:c=-c-Math.PI/2):c=l;for(var d=Math.cos(-c),g=Math.sin(-c),h=0;h0){var p=Tn(f,-u);m=Cn(p)}else m=f;return kr(e,t,m)},"pointInsidePolygon"),Fd=v(function(e,t,a,n,i,s,o,l){for(var u=new Array(a.length*2),f=0;f=0&&p<=1&&b.push(p),y>=0&&y<=1&&b.push(y),b.length===0)return[];var w=b[0]*l[0]+e,x=b[0]*l[1]+t;if(b.length>1){if(b[0]==b[1])return[w,x];var C=b[1]*l[0]+e,T=b[1]*l[1]+t;return[w,x,C,T]}else return[w,x]},"intersectLineCircle"),yi=v(function(e,t,a){return t<=e&&e<=a||a<=e&&e<=t?e:e<=t&&t<=a||a<=t&&t<=e?t:a},"midOfThree"),st=v(function(e,t,a,n,i,s,o,l,u){var f=e-i,c=a-e,d=o-i,g=t-s,h=n-t,m=l-s,p=d*g-m*f,y=c*g-h*f,b=m*c-d*h;if(b!==0){var w=p/b,x=y/b,C=.001,T=0-C,E=1+C;return T<=w&&w<=E&&T<=x&&x<=E?[e+w*c,t+w*h]:u?[e+w*c,t+w*h]:[]}else return p===0||y===0?yi(e,a,o)===o?[o,l]:yi(e,a,i)===i?[i,s]:yi(i,o,a)===a?[a,n]:[]:[]},"finiteLinesIntersect"),qd=v(function(e,t,a,n,i){var s=[],o=n/2,l=i/2,u=t,f=a;s.push({x:u+o*e[0],y:f+l*e[1]});for(var c=1;c0){var m=Tn(c,-l);g=Cn(m)}else g=c}else g=a;for(var p,y,b,w,x=0;x2){for(var h=[f[0],f[1]],m=Math.pow(h[0]-e,2)+Math.pow(h[1]-t,2),p=1;pf&&(f=x)},"set"),get:v(function(w){return u[w]},"get")},d=0;d0?I=M.edgesTo(R)[0]:I=R.edgesTo(M)[0];var O=n(I);R=R.id(),E[R]>E[P]+O&&(E[R]=E[P]+O,S.nodes.indexOf(R)<0?S.push(R):S.updateItem(R),T[R]=0,C[R]=[]),E[R]==E[P]+O&&(T[R]=T[R]+T[P],C[R].push(P))}else for(var L=0;L0;){for(var z=x.pop(),V=0;V0&&o.push(a[l]);o.length!==0&&i.push(n.collection(o))}return i},"assign"),rh=v(function(e,t){for(var a=0;a5&&arguments[5]!==void 0?arguments[5]:nh,o=n,l,u,f=0;f=2?fa(e,t,a,0,jo,ih):fa(e,t,a,0,Jo)},"euclidean"),squaredEuclidean:v(function(e,t,a){return fa(e,t,a,0,jo)},"squaredEuclidean"),manhattan:v(function(e,t,a){return fa(e,t,a,0,Jo)},"manhattan"),max:v(function(e,t,a){return fa(e,t,a,-1/0,sh)},"max")};jt["squared-euclidean"]=jt.squaredEuclidean;jt.squaredeuclidean=jt.squaredEuclidean;function zn(r,e,t,a,n,i){var s;return Ke(r)?s=r:s=jt[r]||jt.euclidean,e===0&&Ke(r)?s(n,i):s(e,t,a,n,i)}v(zn,"clusteringDistance");var oh=dr({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),so=v(function(e){return oh(e)},"setOptions"),Sn=v(function(e,t,a,n,i){var s=i!=="kMedoids",o=s?function(c){return a[c]}:function(c){return n[c](a)},l=v(function(d){return n[d](t)},"getQ"),u=a,f=t;return zn(e,n.length,o,l,u,f)},"getDist"),bi=v(function(e,t,a){for(var n=a.length,i=new Array(n),s=new Array(n),o=new Array(t),l=null,u=0;ua)return!1}return!0},"haveMatricesConverged"),vh=v(function(e,t,a){for(var n=0;no&&(o=t[u][f],l=f);i[l].push(e[u])}for(var c=0;c=i.threshold||i.mode==="dendrogram"&&e.length===1)return!1;var h=t[s],m=t[n[s]],p;i.mode==="dendrogram"?p={left:h,right:m,key:h.key}:p={value:h.value.concat(m.value),key:h.key},e[h.index]=p,e.splice(m.index,1),t[h.key]=p;for(var y=0;ya[m.key][b.key]&&(l=a[m.key][b.key])):i.linkage==="max"?(l=a[h.key][b.key],a[h.key][b.key]0&&n.push(i);return n},"findExemplars"),iu=v(function(e,t,a){for(var n=[],i=0;io&&(s=u,o=t[i*e+u])}s>0&&n.push(s)}for(var f=0;fu&&(l=f,u=c)}a[i]=s[l]}return n=iu(e,t,a),n},"assign"),su=v(function(e){for(var t=this.cy(),a=this.nodes(),n=Eh(e),i={},s=0;s=P?(A=P,P=M,R=I):M>A&&(A=M);for(var O=0;O0?1:0;E[D%n.minIterations*o+V]=K,z+=K}if(z>0&&(D>=n.minIterations-1||D==n.maxIterations-1)){for(var J=0,X=0;X1||T>1)&&(o=!0),c[w]=[],b.outgoers().forEach(function(S){S.isEdge()&&c[w].push(S.id())})}else d[w]=[void 0,b.target().id()]}):s.forEach(function(b){var w=b.id();if(b.isNode()){var x=b.degree(!0);x%2&&(l?u?o=!0:u=w:l=w),c[w]=[],b.connectedEdges().forEach(function(C){return c[w].push(C.id())})}else d[w]=[b.source().id(),b.target().id()]});var g={found:!1,trail:void 0};if(o)return g;if(u&&l)if(i){if(f&&u!=f)return g;f=u}else{if(f&&u!=f&&l!=f)return g;f||(f=u)}else f||(f=s[0].id());var h=v(function(w){for(var x=w,C=[w],T,E,S;c[x].length;)T=c[x].shift(),E=d[T][0],S=d[T][1],x!=S?(c[S]=c[S].filter(function(D){return D!=T}),x=S):!i&&x!=E&&(c[E]=c[E].filter(function(D){return D!=T}),x=E),C.unshift(T),C.unshift(x);return C},"walk"),m=[],p=[];for(p=h(f);p.length!=1;)c[p[0]].length==0?(m.unshift(s.getElementById(p.shift())),m.unshift(s.getElementById(p.shift()))):p=h(p.shift()).concat(p);m.unshift(s.getElementById(p.shift()));for(var y in c)if(c[y].length)return g;return g.found=!0,g.trail=this.spawn(m,!0),g},"hierholzer")},Ja=v(function(){var e=this,t={},a=0,n=0,i=[],s=[],o={},l=v(function(d,g){for(var h=s.length-1,m=[],p=e.spawn();s[h].x!=d||s[h].y!=g;)m.push(s.pop().edge),h--;m.push(s.pop().edge),m.forEach(function(y){var b=y.connectedNodes().intersection(e);p.merge(y),b.forEach(function(w){var x=w.id(),C=w.connectedEdges().intersection(e);p.merge(w),t[x].cutVertex?p.merge(C.filter(function(T){return T.isLoop()})):p.merge(C)})}),i.push(p)},"buildComponent"),u=v(function(d,g,h){d===h&&(n+=1),t[g]={id:a,low:a++,cutVertex:!1};var m=e.getElementById(g).connectedEdges().intersection(e);if(m.size()===0)i.push(e.spawn(e.getElementById(g)));else{var p,y,b,w;m.forEach(function(x){p=x.source().id(),y=x.target().id(),b=p===g?y:p,b!==h&&(w=x.id(),o[w]||(o[w]=!0,s.push({x:g,y:b,edge:x})),b in t?t[g].low=Math.min(t[g].low,t[b].id):(u(d,b,g),t[g].low=Math.min(t[g].low,t[b].low),t[g].id<=t[b].low&&(t[g].cutVertex=!0,l(g,b))))})}},"biconnectedSearch");e.forEach(function(c){if(c.isNode()){var d=c.id();d in t||(n=0,u(d,d),t[d].cutVertex=n>1)}});var f=Object.keys(t).filter(function(c){return t[c].cutVertex}).map(function(c){return e.getElementById(c)});return{cut:e.spawn(f),components:i}},"hopcroftTarjanBiconnected"),Ah={hopcroftTarjanBiconnected:Ja,htbc:Ja,htb:Ja,hopcroftTarjanBiconnectedComponents:Ja},ja=v(function(){var e=this,t={},a=0,n=[],i=[],s=e.spawn(e),o=v(function(u){i.push(u),t[u]={index:a,low:a++,explored:!1};var f=e.getElementById(u).connectedEdges().intersection(e);if(f.forEach(function(m){var p=m.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 c=e.spawn();;){var d=i.pop();if(c.merge(e.getElementById(d)),t[d].low=t[u].index,t[d].explored=!0,d===u)break}var g=c.edgesWith(c),h=c.merge(g);n.push(h),s=s.difference(h)}},"stronglyConnectedSearch");return e.forEach(function(l){if(l.isNode()){var u=l.id();u in t||o(u)}}),{cut:s,components:n}},"tarjanStronglyConnected"),Rh={tarjanStronglyConnected:ja,tsc:ja,tscc:ja,tarjanStronglyConnectedComponents:ja},Bv={};[ka,od,ud,vd,cd,hd,yd,Wd,Yt,Zt,Ms,ah,ph,wh,Dh,Ph,Ah,Rh].forEach(function(r){we(Bv,r)});var Pv=0,Av=1,Rv=2,zr=v(function(e){if(!(this instanceof zr))return new zr(e);this.id="Thenable/1.0.7",this.state=Pv,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},typeof e=="function"&&e.call(this,this.fulfill.bind(this),this.reject.bind(this))},"api");zr.prototype={fulfill:v(function(e){return ou(this,Av,"fulfillValue",e)},"fulfill"),reject:v(function(e){return ou(this,Rv,"rejectReason",e)},"reject"),then:v(function(e,t){var a=this,n=new zr;return a.onFulfilled.push(lu(e,n,"fulfill")),a.onRejected.push(lu(t,n,"reject")),Mv(a),n.proxy},"then")};var ou=v(function(e,t,a,n){return e.state===Pv&&(e.state=t,e[a]=n,Mv(e)),e},"deliver"),Mv=v(function(e){e.state===Av?uu(e,"onFulfilled",e.fulfillValue):e.state===Rv&&uu(e,"onRejected",e.rejectReason)},"execute"),uu=v(function(e,t,a){if(e[t].length!==0){var n=e[t];e[t]=[];var i=v(function(){for(var o=0;o0},"animatedImpl")},"animated"),clearQueue:v(function(){return v(function(){var t=this,a=t.length!==void 0,n=a?t:[t],i=this._private.cy||this;if(!i.styleEnabled())return this;for(var s=0;s-1}return v(e,"listCacheHas"),_i=e,_i}v(Yh,"require_listCacheHas");var Gi,Mu;function Zh(){if(Mu)return Gi;Mu=1;var r=qn();function e(t,a){var n=this.__data__,i=r(n,t);return i<0?(++this.size,n.push([t,a])):n[i][1]=a,this}return v(e,"listCacheSet"),Gi=e,Gi}v(Zh,"require_listCacheSet");var Hi,Lu;function Qh(){if(Lu)return Hi;Lu=1;var r=Uh(),e=Kh(),t=Xh(),a=Yh(),n=Zh();function i(s){var o=-1,l=s==null?0:s.length;for(this.clear();++o-1&&a%1==0&&a0&&this.spawn(n).updateStyle().emit("class"),t},"classes"),addClass:v(function(e){return this.toggleClass(e,!0)},"addClass"),hasClass:v(function(e){var t=this[0];return t!=null&&t._private.classes.has(e)},"hasClass"),toggleClass:v(function(e,t){Ge(e)||(e=e.match(/\S+/g)||[]);for(var a=this,n=t===void 0,i=[],s=0,o=a.length;s0&&this.spawn(i).updateStyle().emit("class"),a},"toggleClass"),removeClass:v(function(e){return this.toggleClass(e,!1)},"removeClass"),flashClass:v(function(e,t){var a=this;if(t==null)t=250;else if(t===0)return a;return a.addClass(e),setTimeout(function(){a.removeClass(e)},t),a},"flashClass")};fn.className=fn.classNames=fn.classes;var Le={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:`"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,number:ar,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};Le.variable="(?:[\\w-.]|(?:\\\\"+Le.metaChar+"))+";Le.className="(?:[\\w-]|(?:\\\\"+Le.metaChar+"))+";Le.value=Le.string+"|"+Le.number;Le.id=Le.variable;(function(){var r,e,t;for(r=Le.comparatorOp.split("|"),t=0;t=0)&&e!=="="&&(Le.comparatorOp+="|\\!"+e)})();var _e=v(function(){return{checks:[]}},"newQuery"),oe={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},Ns=[{selector:":selected",matches:v(function(e){return e.selected()},"matches")},{selector:":unselected",matches:v(function(e){return!e.selected()},"matches")},{selector:":selectable",matches:v(function(e){return e.selectable()},"matches")},{selector:":unselectable",matches:v(function(e){return!e.selectable()},"matches")},{selector:":locked",matches:v(function(e){return e.locked()},"matches")},{selector:":unlocked",matches:v(function(e){return!e.locked()},"matches")},{selector:":visible",matches:v(function(e){return e.visible()},"matches")},{selector:":hidden",matches:v(function(e){return!e.visible()},"matches")},{selector:":transparent",matches:v(function(e){return e.transparent()},"matches")},{selector:":grabbed",matches:v(function(e){return e.grabbed()},"matches")},{selector:":free",matches:v(function(e){return!e.grabbed()},"matches")},{selector:":removed",matches:v(function(e){return e.removed()},"matches")},{selector:":inside",matches:v(function(e){return!e.removed()},"matches")},{selector:":grabbable",matches:v(function(e){return e.grabbable()},"matches")},{selector:":ungrabbable",matches:v(function(e){return!e.grabbable()},"matches")},{selector:":animated",matches:v(function(e){return e.animated()},"matches")},{selector:":unanimated",matches:v(function(e){return!e.animated()},"matches")},{selector:":parent",matches:v(function(e){return e.isParent()},"matches")},{selector:":childless",matches:v(function(e){return e.isChildless()},"matches")},{selector:":child",matches:v(function(e){return e.isChild()},"matches")},{selector:":orphan",matches:v(function(e){return e.isOrphan()},"matches")},{selector:":nonorphan",matches:v(function(e){return e.isChild()},"matches")},{selector:":compound",matches:v(function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()},"matches")},{selector:":loop",matches:v(function(e){return e.isLoop()},"matches")},{selector:":simple",matches:v(function(e){return e.isSimple()},"matches")},{selector:":active",matches:v(function(e){return e.active()},"matches")},{selector:":inactive",matches:v(function(e){return!e.active()},"matches")},{selector:":backgrounding",matches:v(function(e){return e.backgrounding()},"matches")},{selector:":nonbackgrounding",matches:v(function(e){return!e.backgrounding()},"matches")}].sort(function(r,e){return Sc(r.selector,e.selector)}),Bg=(function(){for(var r={},e,t=0;t0&&f.edgeCount>0)return qe("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(f.edgeCount>1)return qe("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;f.edgeCount===1&&qe("The selector `"+e+"` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.")}return!0},"parse"),Ig=v(function(){if(this.toStringCache!=null)return this.toStringCache;for(var e=v(function(f){return f??""},"clean"),t=v(function(f){return pe(f)?'"'+f+'"':e(f)},"cleanVal"),a=v(function(f){return" "+f+" "},"space"),n=v(function(f,c){var d=f.type,g=f.value;switch(d){case oe.GROUP:{var h=e(g);return h.substring(0,h.length-1)}case oe.DATA_COMPARE:{var m=f.field,p=f.operator;return"["+m+a(e(p))+t(g)+"]"}case oe.DATA_BOOL:{var y=f.operator,b=f.field;return"["+e(y)+b+"]"}case oe.DATA_EXIST:{var w=f.field;return"["+w+"]"}case oe.META_COMPARE:{var x=f.operator,C=f.field;return"[["+C+a(e(x))+t(g)+"]]"}case oe.STATE:return g;case oe.ID:return"#"+g;case oe.CLASS:return"."+g;case oe.PARENT:case oe.CHILD:return i(f.parent,c)+a(">")+i(f.child,c);case oe.ANCESTOR:case oe.DESCENDANT:return i(f.ancestor,c)+" "+i(f.descendant,c);case oe.COMPOUND_SPLIT:{var T=i(f.left,c),E=i(f.subject,c),S=i(f.right,c);return T+(T.length>0?" ":"")+E+S}case oe.TRUE:return""}},"checkToString"),i=v(function(f,c){return f.checks.reduce(function(d,g,h){return d+(c===f&&h===0?"$":"")+n(g,c)},"")},"queryToString"),s="",o=0;o1&&o=0&&(t=t.replace("!",""),c=!0),t.indexOf("@")>=0&&(t=t.replace("@",""),f=!0),(i||o||f)&&(l=!i&&!s?"":""+e,u=""+a),f&&(e=l=l.toLowerCase(),a=u=u.toLowerCase()),t){case"*=":n=l.indexOf(u)>=0;break;case"$=":n=l.indexOf(u,l.length-u.length)>=0;break;case"^=":n=l.indexOf(u)===0;break;case"=":n=e===a;break;case">":d=!0,n=e>a;break;case">=":d=!0,n=e>=a;break;case"<":d=!0,n=e0;){var f=n.shift();e(f),i.add(f.id()),o&&a(n,i,f)}return r}v(vo,"forEachCompound");function qv(r,e,t){if(t.isParent())for(var a=t._private.children,n=0;n1&&arguments[1]!==void 0?arguments[1]:!0;return vo(this,r,e,qv)};function _v(r,e,t){if(t.isChild()){var a=t._private.parent;e.has(a.id())||r.push(a)}}v(_v,"addParent");ea.forEachUp=function(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return vo(this,r,e,_v)};function Gg(r,e,t){_v(r,e,t),qv(r,e,t)}v(Gg,"addParentAndChildren");ea.forEachUpAndDown=function(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return vo(this,r,e,Gg)};ea.ancestors=ea.parents;var Pa,Gv;Pa=Gv={data:Ve.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:Ve.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:Ve.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Ve.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:Ve.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:Ve.removeData({field:"rscratch",triggerEvent:!1}),id:v(function(){var e=this[0];if(e)return e._private.data.id},"id")};Pa.attr=Pa.data;Pa.removeAttr=Pa.removeData;var Hg=Gv,Gn={};function ys(r){return function(e){var t=this;if(e===void 0&&(e=!0),t.length!==0)if(t.isNode()&&!t.removed()){for(var a=0,n=t[0],i=n._private.edges,s=0;se}),minIndegree:Ft("indegree",function(r,e){return re}),minOutdegree:Ft("outdegree",function(r,e){return re})});we(Gn,{totalDegree:v(function(e){for(var t=0,a=this.nodes(),n=0;n0,d=c;c&&(f=f[0]);var g=d?f.position():{x:0,y:0};t!==void 0?u.position(e,t+g[e]):i!==void 0&&u.position({x:i.x+g.x,y:i.y+g.y})}else{var h=a.position(),m=o?a.parent():null,p=m&&m.length>0,y=p;p&&(m=m[0]);var b=y?m.position():{x:0,y:0};return i={x:h.x-b.x,y:h.y-b.y},e===void 0?i:i[e]}else if(!s)return;return this},"relativePosition")};Nr.modelPosition=Nr.point=Nr.position;Nr.modelPositions=Nr.points=Nr.positions;Nr.renderedPoint=Nr.renderedPosition;Nr.relativePoint=Nr.relativePosition;var Wg=Hv,Qt,yt;Qt=yt={};yt.renderedBoundingBox=function(r){var e=this.boundingBox(r),t=this.cy(),a=t.zoom(),n=t.pan(),i=e.x1*a+n.x,s=e.x2*a+n.x,o=e.y1*a+n.y,l=e.y2*a+n.y;return{x1:i,x2:s,y1:o,y2:l,w:s-i,h:l-o}};yt.dirtyCompoundBoundsCache=function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();return!e.styleEnabled()||!e.hasCompoundNodes()?this:(this.forEachUp(function(t){if(t.isParent()){var a=t._private;a.compoundBoundsClean=!1,a.bbCache=null,r||t.emitAndNotify("bounds")}}),this)};yt.updateCompoundBounds=function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,e=this.cy();if(!e.styleEnabled()||!e.hasCompoundNodes())return this;if(!r&&e.batching())return this;function t(s){if(!s.isParent())return;var o=s._private,l=s.children(),u=s.pstyle("compound-sizing-wrt-labels").value==="include",f={width:{val:s.pstyle("min-width").pfValue,left:s.pstyle("min-width-bias-left"),right:s.pstyle("min-width-bias-right")},height:{val:s.pstyle("min-height").pfValue,top:s.pstyle("min-height-bias-top"),bottom:s.pstyle("min-height-bias-bottom")}},c=l.boundingBox({includeLabels:u,includeOverlays:!1,useCache:!1}),d=o.position;(c.w===0||c.h===0)&&(c={w:s.pstyle("width").pfValue,h:s.pstyle("height").pfValue},c.x1=d.x-c.w/2,c.x2=d.x+c.w/2,c.y1=d.y-c.h/2,c.y2=d.y+c.h/2);function g(D,B,P){var A=0,R=0,M=B+P;return D>0&&M>0&&(A=B/M*D,R=P/M*D),{biasDiff:A,biasComplementDiff:R}}v(g,"computeBiasValues");function h(D,B,P,A){if(P.units==="%")switch(A){case"width":return D>0?P.pfValue*D:0;case"height":return B>0?P.pfValue*B:0;case"average":return D>0&&B>0?P.pfValue*(D+B)/2:0;case"min":return D>0&&B>0?D>B?P.pfValue*B:P.pfValue*D:0;case"max":return D>0&&B>0?D>B?P.pfValue*D:P.pfValue*B:0;default:return 0}else return P.units==="px"?P.pfValue:0}v(h,"computePaddingValues");var m=f.width.left.value;f.width.left.units==="px"&&f.width.val>0&&(m=m*100/f.width.val);var p=f.width.right.value;f.width.right.units==="px"&&f.width.val>0&&(p=p*100/f.width.val);var y=f.height.top.value;f.height.top.units==="px"&&f.height.val>0&&(y=y*100/f.height.val);var b=f.height.bottom.value;f.height.bottom.units==="px"&&f.height.val>0&&(b=b*100/f.height.val);var w=g(f.width.val-c.w,m,p),x=w.biasDiff,C=w.biasComplementDiff,T=g(f.height.val-c.h,y,b),E=T.biasDiff,S=T.biasComplementDiff;o.autoPadding=h(c.w,c.h,s.pstyle("padding"),s.pstyle("padding-relative-to").value),o.autoWidth=Math.max(c.w,f.width.val),d.x=(-x+c.x1+c.x2+C)/2,o.autoHeight=Math.max(c.h,f.height.val),d.y=(-E+c.y1+c.y2+S)/2}v(t,"update");for(var a=0;ae.x2?n:e.x2,e.y1=ae.y2?i:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},"updateBounds"),at=v(function(e,t){return t==null?e:Or(e,t.x1,t.y1,t.x2,t.y2)},"updateBoundsFromBox"),ca=v(function(e,t,a){return Sr(e,t,a)},"prefixedProperty"),en=v(function(e,t,a){if(!t.cy().headless()){var n=t._private,i=n.rstyle,s=i.arrowWidth/2,o=t.pstyle(a+"-arrow-shape").value,l,u;if(o!=="none"){a==="source"?(l=i.srcX,u=i.srcY):a==="target"?(l=i.tgtX,u=i.tgtY):(l=i.midX,u=i.midY);var f=n.arrowBounds=n.arrowBounds||{},c=f[a]=f[a]||{};c.x1=l-s,c.y1=u-s,c.x2=l+s,c.y2=u+s,c.w=c.x2-c.x1,c.h=c.y2-c.y1,ln(c,1),Or(e,c.x1,c.y1,c.x2,c.y2)}}},"updateBoundsFromArrow"),ms=v(function(e,t,a){if(!t.cy().headless()){var n;a?n=a+"-":n="";var i=t._private,s=i.rstyle,o=t.pstyle(n+"label").strValue;if(o){var l=t.pstyle("text-halign"),u=t.pstyle("text-valign"),f=ca(s,"labelWidth",a),c=ca(s,"labelHeight",a),d=ca(s,"labelX",a),g=ca(s,"labelY",a),h=t.pstyle(n+"text-margin-x").pfValue,m=t.pstyle(n+"text-margin-y").pfValue,p=t.isEdge(),y=t.pstyle(n+"text-rotation"),b=t.pstyle("text-outline-width").pfValue,w=t.pstyle("text-border-width").pfValue,x=w/2,C=t.pstyle("text-background-padding").pfValue,T=2,E=c,S=f,D=S/2,B=E/2,P,A,R,M;if(p)P=d-D,A=d+D,R=g-B,M=g+B;else{switch(l.value){case"left":P=d-S,A=d;break;case"center":P=d-D,A=d+D;break;case"right":P=d,A=d+S;break}switch(u.value){case"top":R=g-E,M=g;break;case"center":R=g-B,M=g+B;break;case"bottom":R=g,M=g+E;break}}var I=h-Math.max(b,x)-C-T,O=h+Math.max(b,x)+C+T,L=m-Math.max(b,x)-C-T,N=m+Math.max(b,x)+C+T;P+=I,A+=O,R+=L,M+=N;var q=a||"main",H=i.labelBounds,z=H[q]=H[q]||{};z.x1=P,z.y1=R,z.x2=A,z.y2=M,z.w=A-P,z.h=M-R,z.leftPad=I,z.rightPad=O,z.topPad=L,z.botPad=N;var V=p&&y.strValue==="autorotate",K=y.pfValue!=null&&y.pfValue!==0;if(V||K){var J=V?ca(i.rstyle,"labelAngle",a):y.pfValue,X=Math.cos(J),ee=Math.sin(J),te=(P+A)/2,ie=(R+M)/2;if(!p){switch(l.value){case"left":te=A;break;case"right":te=P;break}switch(u.value){case"top":ie=M;break;case"bottom":ie=R;break}}var j=v(function(Te,xe){return Te=Te-te,xe=xe-ie,{x:Te*X-xe*ee+te,y:Te*ee+xe*X+ie}},"rotate"),F=j(P,R),_=j(P,M),W=j(A,R),Z=j(A,M);P=Math.min(F.x,_.x,W.x,Z.x),A=Math.max(F.x,_.x,W.x,Z.x),R=Math.min(F.y,_.y,W.y,Z.y),M=Math.max(F.y,_.y,W.y,Z.y)}var ae=q+"Rot",de=H[ae]=H[ae]||{};de.x1=P,de.y1=R,de.x2=A,de.y2=M,de.w=A-P,de.h=M-R,Or(e,P,R,A,M),Or(i.labelBounds.all,P,R,A,M)}return e}},"updateBoundsFromLabel"),ul=v(function(e,t){if(!t.cy().headless()){var a=t.pstyle("outline-opacity").value,n=t.pstyle("outline-width").value,i=t.pstyle("outline-offset").value,s=n+i;$v(e,t,a,s,"outside",s/2)}},"updateBoundsFromOutline"),$v=v(function(e,t,a,n,i,s){if(!(a===0||n<=0||i==="inside")){var o=t.cy(),l=t.pstyle("shape").value,u=o.renderer().nodeShapes[l],f=t.position(),c=f.x,d=f.y,g=t.width(),h=t.height();if(u.hasMiterBounds){i==="center"&&(n/=2);var m=u.miterBounds(c,d,g,h,n);at(e,m)}else s!=null&&s>0&&vn(e,[s,s,s,s])}},"updateBoundsFromMiter"),$g=v(function(e,t){if(!t.cy().headless()){var a=t.pstyle("border-opacity").value,n=t.pstyle("border-width").pfValue,i=t.pstyle("border-position").value;$v(e,t,a,n,i)}},"updateBoundsFromMiterBorder"),Ug=v(function(e,t){var a=e._private.cy,n=a.styleEnabled(),i=a.headless(),s=xr(),o=e._private,l=e.isNode(),u=e.isEdge(),f,c,d,g,h,m,p=o.rstyle,y=l&&n?e.pstyle("bounds-expansion").pfValue:[0],b=v(function(Re){return Re.pstyle("display").value!=="none"},"isDisplayed"),w=!n||b(e)&&(!u||b(e.source())&&b(e.target()));if(w){var x=0,C=0;n&&t.includeOverlays&&(x=e.pstyle("overlay-opacity").value,x!==0&&(C=e.pstyle("overlay-padding").value));var T=0,E=0;n&&t.includeUnderlays&&(T=e.pstyle("underlay-opacity").value,T!==0&&(E=e.pstyle("underlay-padding").value));var S=Math.max(C,E),D=0,B=0;if(n&&(D=e.pstyle("width").pfValue,B=D/2),l&&t.includeNodes){var P=e.position();h=P.x,m=P.y;var A=e.outerWidth(),R=A/2,M=e.outerHeight(),I=M/2;f=h-R,c=h+R,d=m-I,g=m+I,Or(s,f,d,c,g),n&&ul(s,e),n&&t.includeOutlines&&!i&&ul(s,e),n&&$g(s,e)}else if(u&&t.includeEdges)if(n&&!i){var O=e.pstyle("curve-style").strValue;if(f=Math.min(p.srcX,p.midX,p.tgtX),c=Math.max(p.srcX,p.midX,p.tgtX),d=Math.min(p.srcY,p.midY,p.tgtY),g=Math.max(p.srcY,p.midY,p.tgtY),f-=B,c+=B,d-=B,g+=B,Or(s,f,d,c,g),O==="haystack"){var L=p.haystackPts;if(L&&L.length===2){if(f=L[0].x,d=L[0].y,c=L[1].x,g=L[1].y,f>c){var N=f;f=c,c=N}if(d>g){var q=d;d=g,g=q}Or(s,f-B,d-B,c+B,g+B)}}else if(O==="bezier"||O==="unbundled-bezier"||nt(O,"segments")||nt(O,"taxi")){var H;switch(O){case"bezier":case"unbundled-bezier":H=p.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":H=p.linePts;break}if(H!=null)for(var z=0;zc){var te=f;f=c,c=te}if(d>g){var ie=d;d=g,g=ie}f-=B,c+=B,d-=B,g+=B,Or(s,f,d,c,g)}if(n&&t.includeEdges&&u&&(en(s,e,"mid-source"),en(s,e,"mid-target"),en(s,e,"source"),en(s,e,"target")),n){var j=e.pstyle("ghost").value==="yes";if(j){var F=e.pstyle("ghost-offset-x").pfValue,_=e.pstyle("ghost-offset-y").pfValue;Or(s,s.x1+F,s.y1+_,s.x2+F,s.y2+_)}}var W=o.bodyBounds=o.bodyBounds||{};Ko(W,s),vn(W,y),ln(W,1),n&&(f=s.x1,c=s.x2,d=s.y1,g=s.y2,Or(s,f-S,d-S,c+S,g+S));var Z=o.overlayBounds=o.overlayBounds||{};Ko(Z,s),vn(Z,y),ln(Z,1);var ae=o.labelBounds=o.labelBounds||{};ae.all!=null?Dd(ae.all):ae.all=xr(),n&&t.includeLabels&&(t.includeMainLabels&&ms(s,e,null),u&&(t.includeSourceLabels&&ms(s,e,"source"),t.includeTargetLabels&&ms(s,e,"target")))}return s.x1=Rr(s.x1),s.y1=Rr(s.y1),s.x2=Rr(s.x2),s.y2=Rr(s.y2),s.w=Rr(s.x2-s.x1),s.h=Rr(s.y2-s.y1),s.w>0&&s.h>0&&w&&(vn(s,y),ln(s,1)),s},"boundingBoxImpl"),Uv=v(function(e){var t=0,a=v(function(s){return(s?1:0)<0&&arguments[0]!==void 0?arguments[0]:op,e=arguments.length>1?arguments[1]:void 0,t=0;t=0;o--)s(o);return this};ht.removeAllListeners=function(){return this.removeListener("*")};ht.emit=ht.trigger=function(r,e,t){var a=this.listeners,n=a.length;return this.emitting++,Ge(e)||(e=[e]),up(this,function(i,s){t!=null&&(a=[{event:s.event,type:s.type,namespace:s.namespace,callback:t}],n=a.length);for(var o=v(function(){var f=a[l];if(f.type===s.type&&(!f.namespace||f.namespace===s.namespace||f.namespace===sp)&&i.eventMatches(i.context,f,s)){var c=[s];e!=null&&Jc(c,e),i.beforeEmit(i.context,f,s),f.conf&&f.conf.one&&(i.listeners=i.listeners.filter(function(h){return h!==f}));var d=i.callbackContext(i.context,f,s),g=f.callback.apply(d,c);i.afterEmit(i.context,f,s),g===!1&&(s.stopPropagation(),s.preventDefault())}},"_loop2"),l=0;l1&&!s){var o=this.length-1,l=this[o],u=l._private.data.id;this[o]=void 0,this[e]=l,i.set(u,{ele:l,index:e})}return this.length--,this},"unmergeAt"),unmergeOne:v(function(e){e=e[0];var t=this._private,a=e._private.data.id,n=t.map,i=n.get(a);if(!i)return this;var s=i.index;return this.unmergeAt(s),this},"unmergeOne"),unmerge:v(function(e){var t=this._private.cy;if(!e)return this;if(e&&pe(e)){var a=e;e=t.mutableElements().filter(a)}for(var n=0;n=0;t--){var a=this[t];e(a)&&this.unmergeAt(t)}return this},"unmergeBy"),map:v(function(e,t){for(var a=[],n=this,i=0;ia&&(a=l,n=o)}return{value:a,ele:n}},"max"),min:v(function(e,t){for(var a=1/0,n,i=this,s=0;s=0&&i"u"?"undefined":nr(Symbol))!=e&&nr(Symbol.iterator)!=e;t&&(kn[Symbol.iterator]=function(){var a=this,n={value:void 0,done:!1},i=0,s=this.length;return jl({next:v(function(){return i1&&arguments[1]!==void 0?arguments[1]:!0,a=this[0],n=a.cy();if(n.styleEnabled()&&a){a._private.styleDirty&&(a._private.styleDirty=!1,n.style().apply(a));var i=a._private.style[e];return i??(t?n.style().getDefaultProperty(e):null)}},"parsedStyle"),numericStyle:v(function(e){var t=this[0];if(t.cy().styleEnabled()&&t){var a=t.pstyle(e);return a.pfValue!==void 0?a.pfValue:a.value}},"numericStyle"),numericStyleUnits:v(function(e){var t=this[0];if(t.cy().styleEnabled()&&t)return t.pstyle(e).units},"numericStyleUnits"),renderedStyle:v(function(e){var t=this.cy();if(!t.styleEnabled())return this;var a=this[0];if(a)return t.style().getRenderedStyle(a,e)},"renderedStyle"),style:v(function(e,t){var a=this.cy();if(!a.styleEnabled())return this;var n=!1,i=a.style();if(Ie(e)){var s=e;i.applyBypass(this,s,n),this.emitAndNotify("style")}else if(pe(e))if(t===void 0){var o=this[0];return o?i.getStylePropertyValue(o,e):void 0}else i.applyBypass(this,e,t,n),this.emitAndNotify("style");else if(e===void 0){var l=this[0];return l?i.getRawStyle(l):void 0}return this},"style"),removeStyle:v(function(e){var t=this.cy();if(!t.styleEnabled())return this;var a=!1,n=t.style(),i=this;if(e===void 0)for(var s=0;s0&&e.push(f[0]),e.push(o[0])}return this.spawn(e,!0).filter(r)},"neighborhood"),closedNeighborhood:v(function(e){return this.neighborhood().add(this).filter(e)},"closedNeighborhood"),openNeighborhood:v(function(e){return this.neighborhood(e)},"openNeighborhood")});pr.neighbourhood=pr.neighborhood;pr.closedNeighbourhood=pr.closedNeighborhood;pr.openNeighbourhood=pr.openNeighborhood;we(pr,{source:Mr(v(function(e){var t=this[0],a;return t&&(a=t._private.source||t.cy().collection()),a&&e?a.filter(e):a},"sourceImpl"),"source"),target:Mr(v(function(e){var t=this[0],a;return t&&(a=t._private.target||t.cy().collection()),a&&e?a.filter(e):a},"targetImpl"),"target"),sources:bl({attr:"source"}),targets:bl({attr:"target"})});function bl(r){return v(function(t){for(var a=[],n=0;n0);return s},"components"),component:v(function(){var e=this[0];return e.cy().mutableElements().components(e)[0]},"component")});pr.componentsOf=pr.components;var cr=v(function(e,t){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e===void 0){Ue("A collection must have a reference to the core");return}var i=new Yr,s=!1;if(!t)t=[];else if(t.length>0&&Ie(t[0])&&!Oa(t[0])){s=!0;for(var o=[],l=new ta,u=0,f=t.length;u0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,t=this,a=t.cy(),n=a._private,i=[],s=[],o,l=0,u=t.length;l0){for(var q=o.length===t.length?t:new cr(a,o),H=0;H0&&arguments[0]!==void 0?arguments[0]:!0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,t=this,a=[],n={},i=t._private.cy;function s(M){for(var I=M._private.edges,O=0;O0&&(r?P.emitAndNotify("remove"):e&&P.emit("remove"));for(var A=0;A0?A=M:P=M;while(Math.abs(R)>s&&++I=i?b(B,I):O===0?I:x(B,P,P+u)}v(C,"getTForX");var T=!1;function E(){T=!0,(r!==e||t!==a)&&w()}v(E,"precompute");var S=v(function(P){return T||E(),r===e&&t===a?P:P===0?0:P===1?1:p(C(P),e,a)},"f");S.getControlPoints=function(){return[{x:r,y:e},{x:t,y:a}]};var D="generateBezier("+[r,e,t,a]+")";return S.toString=function(){return D},S}v(mp,"generateCubicBezier");var bp=(function(){function r(a){return-a.tension*a.x-a.friction*a.v}v(r,"springAccelerationForState");function e(a,n,i){var s={x:a.x+i.dx*n,v:a.v+i.dv*n,tension:a.tension,friction:a.friction};return{dx:s.v,dv:r(s)}}v(e,"springEvaluateStateWithDerivative");function t(a,n){var i={dx:a.v,dv:r(a)},s=e(a,n*.5,i),o=e(a,n*.5,s),l=e(a,n,o),u=1/6*(i.dx+2*(s.dx+o.dx)+l.dx),f=1/6*(i.dv+2*(s.dv+o.dv)+l.dv);return a.x=a.x+u*n,a.v=a.v+f*n,a}return v(t,"springIntegrateState"),v(function a(n,i,s){var o={x:-1,v:0,tension:null,friction:null},l=[0],u=0,f=1/1e4,c=16/1e3,d,g,h;for(n=parseFloat(n)||500,i=parseFloat(i)||20,s=s||null,o.tension=n,o.friction=i,d=s!==null,d?(u=a(n,i),g=u/s*c):g=c;h=t(h||o,g),l.push(1+h.x),u+=16,Math.abs(h.x)>f&&Math.abs(h.v)>f;);return d?function(m){return l[m*(l.length-1)|0]}:u},"springRK4Factory")})(),He=v(function(e,t,a,n){var i=mp(e,t,a,n);return function(s,o,l){return s+(o-s)*i(l)}},"cubicBezier"),dn={linear:v(function(e,t,a){return e+(t-e)*a},"linear"),ease:He(.25,.1,.25,1),"ease-in":He(.42,0,1,1),"ease-out":He(0,0,.58,1),"ease-in-out":He(.42,0,.58,1),"ease-in-sine":He(.47,0,.745,.715),"ease-out-sine":He(.39,.575,.565,1),"ease-in-out-sine":He(.445,.05,.55,.95),"ease-in-quad":He(.55,.085,.68,.53),"ease-out-quad":He(.25,.46,.45,.94),"ease-in-out-quad":He(.455,.03,.515,.955),"ease-in-cubic":He(.55,.055,.675,.19),"ease-out-cubic":He(.215,.61,.355,1),"ease-in-out-cubic":He(.645,.045,.355,1),"ease-in-quart":He(.895,.03,.685,.22),"ease-out-quart":He(.165,.84,.44,1),"ease-in-out-quart":He(.77,0,.175,1),"ease-in-quint":He(.755,.05,.855,.06),"ease-out-quint":He(.23,1,.32,1),"ease-in-out-quint":He(.86,0,.07,1),"ease-in-expo":He(.95,.05,.795,.035),"ease-out-expo":He(.19,1,.22,1),"ease-in-out-expo":He(1,0,0,1),"ease-in-circ":He(.6,.04,.98,.335),"ease-out-circ":He(.075,.82,.165,1),"ease-in-out-circ":He(.785,.135,.15,.86),spring:v(function(e,t,a){if(a===0)return dn.linear;var n=bp(e,t,a);return function(i,s,o){return i+(s-i)*n(o)}},"spring"),"cubic-bezier":He};function El(r,e,t,a,n){if(a===1||e===t)return t;var i=n(e,t,a);return r==null||((r.roundValue||r.color)&&(i=Math.round(i)),r.min!==void 0&&(i=Math.max(i,r.min)),r.max!==void 0&&(i=Math.min(i,r.max))),i}v(El,"getEasedValue");function Cl(r,e){return r.pfValue!=null||r.value!=null?r.pfValue!=null&&(e==null||e.type.units!=="%")?r.pfValue:r.value:r}v(Cl,"getValue");function Vt(r,e,t,a,n){var i=n!=null?n.type:null;t<0?t=0:t>1&&(t=1);var s=Cl(r,n),o=Cl(e,n);if(ne(s)&&ne(o))return El(i,s,o,t,a);if(Ge(s)&&Ge(o)){for(var l=[],u=0;u0?(g==="spring"&&h.push(s.duration),s.easingImpl=dn[g].apply(null,h)):s.easingImpl=dn[g]}var m=s.easingImpl,p;if(s.duration===0?p=1:p=(t-l)/s.duration,s.applying&&(p=s.progress),p<0?p=0:p>1&&(p=1),s.delay==null){var y=s.startPosition,b=s.position;if(b&&n&&!r.locked()){var w={};ha(y.x,b.x)&&(w.x=Vt(y.x,b.x,p,m)),ha(y.y,b.y)&&(w.y=Vt(y.y,b.y,p,m)),r.position(w)}var x=s.startPan,C=s.pan,T=i.pan,E=C!=null&&a;E&&(ha(x.x,C.x)&&(T.x=Vt(x.x,C.x,p,m)),ha(x.y,C.y)&&(T.y=Vt(x.y,C.y,p,m)),r.emit("pan"));var S=s.startZoom,D=s.zoom,B=D!=null&&a;B&&(ha(S,D)&&(i.zoom=Da(i.minZoom,Vt(S,D,p,m),i.maxZoom)),r.emit("zoom")),(E||B)&&r.emit("viewport");var P=s.style;if(P&&P.length>0&&n){for(var A=0;A=0;E--){var S=T[E];S()}T.splice(0,T.length)},"callbacks"),b=g.length-1;b>=0;b--){var w=g[b],x=w._private;if(x.stopped){g.splice(b,1),x.hooked=!1,x.playing=!1,x.started=!1,y(x.frames);continue}!x.playing&&!x.applying||(x.playing&&x.applying&&(x.applying=!1),x.started||xp(f,w,r),wp(f,w,r,c),x.applying&&(x.applying=!1),y(x.frames),x.step!=null&&x.step(r),w.completed()&&(g.splice(b,1),x.hooked=!1,x.playing=!1,x.started=!1,y(x.completes)),m=!0)}return!c&&g.length===0&&h.length===0&&a.push(f),m}v(n,"stepOne");for(var i=!1,s=0;s0?e.notify("draw",t):e.notify("draw")),t.unmerge(a),e.emit("step")}v(Tl,"stepAll");var Ep={animate:Ve.animate(),animation:Ve.animation(),animated:Ve.animated(),clearQueue:Ve.clearQueue(),delay:Ve.delay(),delayAnimation:Ve.delayAnimation(),stop:Ve.stop(),addToAnimationPool:v(function(e){var t=this;t.styleEnabled()&&t._private.aniEles.merge(e)},"addToAnimationPool"),stopAnimationLoop:v(function(){this._private.animationsRunning=!1},"stopAnimationLoop"),startAnimationLoop:v(function(){var e=this;if(e._private.animationsRunning=!0,!e.styleEnabled())return;function t(){e._private.animationsRunning&&xn(v(function(i){Tl(i,e),t()},"animationStep"))}v(t,"headlessStep");var a=e.renderer();a&&a.beforeRender?a.beforeRender(v(function(i,s){Tl(s,e)},"rendererAnimationStep"),a.beforeRenderPriorities.animations):t()},"startAnimationLoop")},Cp={qualifierCompare:v(function(e,t){return e==null||t==null?e==null&&t==null:e.sameText(t)},"qualifierCompare"),eventMatches:v(function(e,t,a){var n=t.qualifier;return n!=null?e!==a.target&&Oa(a.target)&&n.matches(a.target):!0},"eventMatches"),addEventFields:v(function(e,t){t.cy=e,t.target=e},"addEventFields"),callbackContext:v(function(e,t,a){return t.qualifier!=null?a.target:e},"callbackContext")},an=v(function(e){return pe(e)?new ct(e):e},"argSelector"),af={createEmitter:v(function(){var e=this._private;return e.emitter||(e.emitter=new Hn(Cp,this)),this},"createEmitter"),emitter:v(function(){return this._private.emitter},"emitter"),on:v(function(e,t,a){return this.emitter().on(e,an(t),a),this},"on"),removeListener:v(function(e,t,a){return this.emitter().removeListener(e,an(t),a),this},"removeListener"),removeAllListeners:v(function(){return this.emitter().removeAllListeners(),this},"removeAllListeners"),one:v(function(e,t,a){return this.emitter().one(e,an(t),a),this},"one"),once:v(function(e,t,a){return this.emitter().one(e,an(t),a),this},"once"),emit:v(function(e,t){return this.emitter().emit(e,t),this},"emit"),emitAndNotify:v(function(e,t){return this.emit(e),this.notify(e,t),this},"emitAndNotify")};Ve.eventAliasesOn(af);var Fs={png:v(function(e){var t=this._private.renderer;return e=e||{},t.png(e)},"png"),jpg:v(function(e){var t=this._private.renderer;return e=e||{},e.bg=e.bg||"#fff",t.jpg(e)},"jpg")};Fs.jpeg=Fs.jpg;var hn={layout:v(function(e){var t=this;if(e==null){Ue("Layout options must be specified to make a layout");return}if(e.name==null){Ue("A `name` must be specified to make a layout");return}var a=e.name,n=t.extension("layout",a);if(n==null){Ue("No such layout `"+a+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var i;pe(e.eles)?i=t.$(e.eles):i=e.eles!=null?e.eles:t.$();var s=new n(we({},e,{cy:t,eles:i}));return s},"layout")};hn.createLayout=hn.makeLayout=hn.layout;var Tp={notify:v(function(e,t){var a=this._private;if(this.batching()){a.batchNotifications=a.batchNotifications||{};var n=a.batchNotifications[e]=a.batchNotifications[e]||this.collection();t!=null&&n.merge(t);return}if(a.notificationsEnabled){var i=this.renderer();this.destroyed()||!i||i.notify(e,t)}},"notify"),notifications:v(function(e){var t=this._private;return e===void 0?t.notificationsEnabled:(t.notificationsEnabled=!!e,this)},"notifications"),noNotifications:v(function(e){this.notifications(!1),e(),this.notifications(!0)},"noNotifications"),batching:v(function(){return this._private.batchCount>0},"batching"),startBatch:v(function(){var e=this._private;return e.batchCount==null&&(e.batchCount=0),e.batchCount===0&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},"startBatch"),endBatch:v(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(a){var n=e.batchNotifications[a];n.empty()?t.notify(a):t.notify(a,n)})}return this},"endBatch"),batch:v(function(e){return this.startBatch(),e(),this.endBatch(),this},"batch"),batchData:v(function(e){var t=this;return this.batch(function(){for(var a=Object.keys(e),n=0;n0;)t.removeChild(t.childNodes[0]);e._private.renderer=null,e.mutableElements().forEach(function(a){var n=a._private;n.rscratch={},n.rstyle={},n.animation.current=[],n.animation.queue=[]})},"destroyRenderer"),onRender:v(function(e){return this.on("render",e)},"onRender"),offRender:v(function(e){return this.off("render",e)},"offRender")};Vs.invalidateDimensions=Vs.resize;var gn={collection:v(function(e,t){return pe(e)?this.$(e):Br(e)?e.collection():Ge(e)?(t||(t={}),new cr(this,e,t.unique,t.removed)):new cr(this)},"collection"),nodes:v(function(e){var t=this.$(function(a){return a.isNode()});return e?t.filter(e):t},"nodes"),edges:v(function(e){var t=this.$(function(a){return a.isEdge()});return e?t.filter(e):t},"edges"),$:v(function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},"$"),mutableElements:v(function(){return this._private.elements},"mutableElements")};gn.elements=gn.filter=gn.$;var lr={},xa="t",kp="f";lr.apply=function(r){for(var e=this,t=e._private,a=t.cy,n=a.collection(),i=0;i0;if(d||c&&g){var h=void 0;d&&g||d?h=u.properties:g&&(h=u.mappedProperties);for(var m=0;m1&&(x=1),o.color){var T=a.valueMin[0],E=a.valueMax[0],S=a.valueMin[1],D=a.valueMax[1],B=a.valueMin[2],P=a.valueMax[2],A=a.valueMin[3]==null?1:a.valueMin[3],R=a.valueMax[3]==null?1:a.valueMax[3],M=[Math.round(T+(E-T)*x),Math.round(S+(D-S)*x),Math.round(B+(P-B)*x),Math.round(A+(R-A)*x)];i={bypass:a.bypass,name:a.name,value:M,strValue:"rgb("+M[0]+", "+M[1]+", "+M[2]+")"}}else if(o.number){var I=a.valueMin+(a.valueMax-a.valueMin)*x;i=this.parse(a.name,I,a.bypass,d)}else return!1;if(!i)return m(),!1;i.mapping=a,a=i;break}case s.data:{for(var O=a.field.split("."),L=c.data,N=0;N0&&i>0){for(var o={},l=!1,u=0;u0?r.delayAnimation(s).play().promise().then(w):w()}).then(function(){return r.animation({style:o,duration:i,easing:r.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){t.removeBypasses(r,n),r.emitAndNotify("style"),a.transitioning=!1})}else a.transitioning&&(this.removeBypasses(r,n),r.emitAndNotify("style"),a.transitioning=!1)};lr.checkTrigger=function(r,e,t,a,n,i){var s=this.properties[e],o=n(s);r.removed()||o!=null&&o(t,a,r)&&i(s)};lr.checkZOrderTrigger=function(r,e,t,a){var n=this;this.checkTrigger(r,e,t,a,function(i){return i.triggersZOrder},function(){n._private.cy.notify("zorder",r)})};lr.checkBoundsTrigger=function(r,e,t,a){this.checkTrigger(r,e,t,a,function(n){return n.triggersBounds},function(n){r.dirtyCompoundBoundsCache(),r.dirtyBoundingBoxCache()})};lr.checkConnectedEdgesBoundsTrigger=function(r,e,t,a){this.checkTrigger(r,e,t,a,function(n){return n.triggersBoundsOfConnectedEdges},function(n){r.connectedEdges().forEach(function(i){i.dirtyBoundingBoxCache()})})};lr.checkParallelEdgesBoundsTrigger=function(r,e,t,a){this.checkTrigger(r,e,t,a,function(n){return n.triggersBoundsOfParallelEdges},function(n){r.parallelEdges().forEach(function(i){i.dirtyBoundingBoxCache()})})};lr.checkTriggers=function(r,e,t,a){r.dirtyStyleCache(),this.checkZOrderTrigger(r,e,t,a),this.checkBoundsTrigger(r,e,t,a),this.checkConnectedEdgesBoundsTrigger(r,e,t,a),this.checkParallelEdgesBoundsTrigger(r,e,t,a)};var Ga={};Ga.applyBypass=function(r,e,t,a){var n=this,i=[],s=!0;if(e==="*"||e==="**"){if(t!==void 0)for(var o=0;on.length?a=a.substr(n.length):a=""}v(o,"removeSelAndBlockFromRemaining");function l(){i.length>s.length?i=i.substr(s.length):i=""}for(v(l,"removePropAndValFromRem");;){var u=a.match(/^\s*$/);if(u)break;var f=a.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!f){qe("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+a);break}n=f[0];var c=f[1];if(c!=="core"){var d=new ct(c);if(d.invalid){qe("Skipping parsing of block: Invalid selector found in string stylesheet: "+c),o();continue}}var g=f[2],h=!1;i=g;for(var m=[];;){var p=i.match(/^\s*$/);if(p)break;var y=i.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!y){qe("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+g),h=!0;break}s=y[0];var b=y[1],w=y[2],x=e.properties[b];if(!x){qe("Skipping property: Invalid property name in: "+s),l();continue}var C=t.parse(b,w);if(!C){qe("Skipping property: Invalid property definition in: "+s),l();continue}m.push({name:b,val:w}),l()}if(h){o();break}t.selector(c);for(var T=0;T=7&&e[0]==="d"&&(f=new RegExp(o.data.regex).exec(e))){if(t)return!1;var d=o.data;return{name:r,value:f,strValue:""+e,mapped:d,field:f[1],bypass:t}}else if(e.length>=10&&e[0]==="m"&&(c=new RegExp(o.mapData.regex).exec(e))){if(t||u.multiple)return!1;var g=o.mapData;if(!(u.color||u.number))return!1;var h=this.parse(r,c[4]);if(!h||h.mapped)return!1;var m=this.parse(r,c[5]);if(!m||m.mapped)return!1;if(h.pfValue===m.pfValue||h.strValue===m.strValue)return qe("`"+r+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+r+": "+h.strValue+"`"),this.parse(r,h.strValue);if(u.color){var p=h.value,y=m.value,b=p[0]===y[0]&&p[1]===y[1]&&p[2]===y[2]&&(p[3]===y[3]||(p[3]==null||p[3]===1)&&(y[3]==null||y[3]===1));if(b)return!1}return{name:r,value:c,strValue:""+e,mapped:g,field:c[1],fieldMin:parseFloat(c[2]),fieldMax:parseFloat(c[3]),valueMin:h.value,valueMax:m.value,bypass:t}}}if(u.multiple&&a!=="multiple"){var w;if(l?w=e.split(/\s+/):Ge(e)?w=e:w=[e],u.evenMultiple&&w.length%2!==0)return null;for(var x=[],C=[],T=[],E="",S=!1,D=0;D0?" ":"")+B.strValue}return u.validate&&!u.validate(x,C)?null:u.singleEnum&&S?x.length===1&&pe(x[0])?{name:r,value:x[0],strValue:x[0],bypass:t}:null:{name:r,value:x,pfValue:T,strValue:E,bypass:t,units:C}}var P=v(function(){for(var j=0;ju.max||u.strictMax&&e===u.max))return null;var O={name:r,value:e,strValue:""+e+(A||""),units:A,bypass:t};return u.unitless||A!=="px"&&A!=="em"?O.pfValue=e:O.pfValue=A==="px"||!A?e:this.getEmSizeInPixels()*e,(A==="ms"||A==="s")&&(O.pfValue=A==="ms"?e:1e3*e),(A==="deg"||A==="rad")&&(O.pfValue=A==="rad"?e:Cd(e)),A==="%"&&(O.pfValue=e/100),O}else if(u.propList){var L=[],N=""+e;if(N!=="none"){for(var q=N.split(/\s*,\s*|\s+/),H=0;H0&&o>0&&!isNaN(a.w)&&!isNaN(a.h)&&a.w>0&&a.h>0){l=Math.min((s-2*t)/a.w,(o-2*t)/a.h),l=l>this._private.maxZoom?this._private.maxZoom:l,l=l=a.minZoom&&(a.maxZoom=t),this},"zoomRange"),minZoom:v(function(e){return e===void 0?this._private.minZoom:this.zoomRange({min:e})},"minZoom"),maxZoom:v(function(e){return e===void 0?this._private.maxZoom:this.zoomRange({max:e})},"maxZoom"),getZoomedViewport:v(function(e){var t=this._private,a=t.pan,n=t.zoom,i,s,o=!1;if(t.zoomingEnabled||(o=!0),ne(e)?s=e:Ie(e)&&(s=e.level,e.position!=null?i=Nn(e.position,n,a):e.renderedPosition!=null&&(i=e.renderedPosition),i!=null&&!t.panningEnabled&&(o=!0)),s=s>t.maxZoom?t.maxZoom:s,s=st.maxZoom||!t.zoomingEnabled?s=!0:(t.zoom=l,i.push("zoom"))}if(n&&(!s||!e.cancelOnFailedZoom)&&t.panningEnabled){var u=e.pan;ne(u.x)&&(t.pan.x=u.x,o=!1),ne(u.y)&&(t.pan.y=u.y,o=!1),o||i.push("pan")}return i.length>0&&(i.push("viewport"),this.emit(i.join(" ")),this.notify("viewport")),this},"viewport"),center:v(function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify("viewport")),this},"center"),getCenterPan:v(function(e,t){if(this._private.panningEnabled){if(pe(e)){var a=e;e=this.mutableElements().filter(a)}else Br(e)||(e=this.mutableElements());if(e.length!==0){var n=e.boundingBox(),i=this.width(),s=this.height();t=t===void 0?this._private.zoom:t;var o={x:(i-t*(n.x1+n.x2))/2,y:(s-t*(n.y1+n.y2))/2};return o}}},"getCenterPan"),reset:v(function(){return!this._private.panningEnabled||!this._private.zoomingEnabled?this:(this.viewport({pan:{x:0,y:0},zoom:1}),this)},"reset"),invalidateSize:v(function(){this._private.sizeCache=null},"invalidateSize"),size:v(function(){var e=this._private,t=e.container,a=this;return e.sizeCache=e.sizeCache||(t?(function(){var n=a.window().getComputedStyle(t),i=v(function(o){return parseFloat(n.getPropertyValue(o))},"val");return{width:t.clientWidth-i("padding-left")-i("padding-right"),height:t.clientHeight-i("padding-top")-i("padding-bottom")}})():{width:1,height:1})},"size"),width:v(function(){return this.size().width},"width"),height:v(function(){return this.size().height},"height"),extent:v(function(){var e=this._private.pan,t=this._private.zoom,a=this.renderedExtent(),n={x1:(a.x1-e.x)/t,x2:(a.x2-e.x)/t,y1:(a.y1-e.y)/t,y2:(a.y2-e.y)/t};return n.w=n.x2-n.x1,n.h=n.y2-n.y1,n},"extent"),renderedExtent:v(function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},"renderedExtent"),multiClickDebounceTime:v(function(e){if(e)this._private.multiClickDebounceTime=e;else return this._private.multiClickDebounceTime;return this},"multiClickDebounceTime")};Mt.centre=Mt.center;Mt.autolockNodes=Mt.autolock;Mt.autoungrabifyNodes=Mt.autoungrabify;var Ra={data:Ve.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:Ve.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:Ve.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Ve.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Ra.attr=Ra.data;Ra.removeAttr=Ra.removeData;var Ma=v(function(e){var t=this;e=we({},e);var a=e.container;a&&!wn(a)&&wn(a[0])&&(a=a[0]);var n=a?a._cyreg:null;n=n||{},n&&n.cy&&(n.cy.destroy(),n={});var i=n.readies=n.readies||[];a&&(a._cyreg=n),n.cy=t;var s=tr!==void 0&&a!==void 0&&!e.headless,o=e;o.layout=we({name:s?"grid":"null"},o.layout),o.renderer=we({name:s?"canvas":"null"},o.renderer);var l=v(function(h,m,p){return m!==void 0?m:p!==void 0?p:h},"defVal"),u=this._private={container:a,ready:!1,options:o,elements:new cr(this),listeners:[],aniEles:new cr(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:l(!0,o.zoomingEnabled),userZoomingEnabled:l(!0,o.userZoomingEnabled),panningEnabled:l(!0,o.panningEnabled),userPanningEnabled:l(!0,o.userPanningEnabled),boxSelectionEnabled:l(!0,o.boxSelectionEnabled),autolock:l(!1,o.autolock,o.autolockNodes),autoungrabify:l(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:l(!1,o.autounselectify),styleEnabled:o.styleEnabled===void 0?s:o.styleEnabled,zoom:ne(o.zoom)?o.zoom:1,pan:{x:Ie(o.pan)&&ne(o.pan.x)?o.pan.x:0,y:Ie(o.pan)&&ne(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:l(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom});var f=v(function(h,m){var p=h.some(yc);if(p)return aa.all(h).then(m);m(h)},"loadExtData");u.styleEnabled&&t.setStyle([]);var c=we({},o,o.renderer);t.initRenderer(c);var d=v(function(h,m,p){t.notifications(!1);var y=t.mutableElements();y.length>0&&y.remove(),h!=null&&(Ie(h)||Ge(h))&&t.add(h),t.one("layoutready",function(w){t.notifications(!0),t.emit(w),t.one("load",m),t.emitAndNotify("load")}).one("layoutstop",function(){t.one("done",p),t.emit("done")});var b=we({},t._private.options.layout);b.eles=t.elements(),t.layout(b).run()},"setElesAndLayout");f([o.style,o.elements],function(g){var h=g[0],m=g[1];u.styleEnabled&&t.style().append(h),d(m,function(){t.startAnimationLoop(),u.ready=!0,Ke(o.ready)&&t.on("ready",o.ready);for(var p=0;p0,o=!!r.boundingBox,l=xr(o?r.boundingBox:structuredClone(e.extent())),u;if(Br(r.roots))u=r.roots;else if(Ge(r.roots)){for(var f=[],c=0;c0;){var M=R(),I=D(M,P);if(I)M.outgoers().filter(function(me){return me.isNode()&&t.has(me)}).forEach(A);else if(I===null){qe("Detected double maximal shift for node `"+M.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}var O=0;if(r.avoidOverlap)for(var L=0;L0&&y[0].length<=3?ye/2:0),Me=2*Math.PI/y[ge].length*Ce;return ge===0&&y[0].length===1&&(ke=1),{x:W.x+ke*Math.cos(Me),y:W.y+ke*Math.sin(Me)}}else{var Ne=y[ge].length,ze=Math.max(Ne===1?0:o?(l.w-r.padding*2-Z.w)/((r.grid?de:Ne)-1):(l.w-r.padding*2-Z.w)/((r.grid?de:Ne)+1),O),Fe={x:W.x+(Ce+1-(Ne+1)/2)*ze,y:W.y+(ge+1-(X+1)/2)*ae};return Fe}},"getPositionTopBottom"),Te={downward:0,leftward:90,upward:180,rightward:-90};Object.keys(Te).indexOf(r.direction)===-1&&Ue("Invalid direction '".concat(r.direction,"' specified for breadthfirst layout. Valid values are: ").concat(Object.keys(Te).join(", ")));var xe=v(function(se){return Uc(Re(se),l,Te[r.direction])},"getPosition");return t.nodes().layoutPositions(this,r,xe),this};var Rp={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:v(function(e,t){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:v(function(e,t){return t},"transform")};function sf(r){this.options=we({},Rp,r)}v(sf,"CircleLayout");sf.prototype.run=function(){var r=this.options,e=r,t=r.cy,a=e.eles,n=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,i=a.nodes().not(":parent");e.sort&&(i=i.sort(e.sort));for(var s=xr(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()}),o={x:s.x1+s.w/2,y:s.y1+s.h/2},l=e.sweep===void 0?2*Math.PI-2*Math.PI/i.length:e.sweep,u=l/Math.max(1,i.length-1),f,c=0,d=0;d1&&e.avoidOverlap){c*=1.75;var y=Math.cos(u)-Math.cos(0),b=Math.sin(u)-Math.sin(0),w=Math.sqrt(c*c/(y*y+b*b));f=Math.max(w,f)}var x=v(function(T,E){var S=e.startAngle+E*u*(n?1:-1),D=f*Math.cos(S),B=f*Math.sin(S),P={x:o.x+D,y:o.y+B};return P},"getPos");return a.nodes().layoutPositions(this,e,x),this};var Mp={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:v(function(e){return e.degree()},"concentric"),levelWidth:v(function(e){return e.maxDegree()/4},"levelWidth"),animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:v(function(e,t){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:v(function(e,t){return t},"transform")};function of(r){this.options=we({},Mp,r)}v(of,"ConcentricLayout");of.prototype.run=function(){for(var r=this.options,e=r,t=e.counterclockwise!==void 0?!e.counterclockwise:e.clockwise,a=r.cy,n=e.eles,i=n.nodes().not(":parent"),s=xr(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:a.width(),h:a.height()}),o={x:s.x1+s.w/2,y:s.y1+s.h/2},l=[],u=0,f=0;f0){var C=Math.abs(b[0].value-x.value);C>=p&&(b=[],y.push(b))}b.push(x)}var T=u+e.minNodeSpacing;if(!e.avoidOverlap){var E=y.length>0&&y[0].length>1,S=Math.min(s.w,s.h)/2-T,D=S/(y.length+E?1:0);T=Math.min(T,D)}for(var B=0,P=0;P1&&e.avoidOverlap){var I=Math.cos(M)-Math.cos(0),O=Math.sin(M)-Math.sin(0),L=Math.sqrt(T*T/(I*I+O*O));B=Math.max(L,B)}A.r=B,B+=T}if(e.equidistant){for(var N=0,q=0,H=0;H=r.numIter||(Vp(a,r),a.temperature=a.temperature*r.coolingFactor,a.temperature=r.animationThreshold&&i(),xn(f)}},"frame");f()}else{for(;u;)u=s(l),l++;Dl(a,r),o()}return this};Xn.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this};Xn.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var Ip=v(function(e,t,a){for(var n=a.eles.edges(),i=a.eles.nodes(),s=xr(a.boundingBox?a.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:n.size(),temperature:a.initialTemp,clientWidth:s.w,clientHeight:s.h,boundingBox:s},l=a.eles.components(),u={},f=0;f0){o.graphSet.push(S);for(var f=0;fn.count?0:n.graph},"findLCA"),uf=v(function(e,t,a,n){var i=n.graphSet[a];if(-10)var c=n.nodeOverlap*f,d=Math.sqrt(o*o+l*l),g=c*o/d,h=c*l/d;else var m=Bn(e,o,l),p=Bn(t,-1*o,-1*l),y=p.x-m.x,b=p.y-m.y,w=y*y+b*b,d=Math.sqrt(w),c=(e.nodeRepulsion+t.nodeRepulsion)/w,g=c*y/d,h=c*b/d;e.isLocked||(e.offsetX-=g,e.offsetY-=h),t.isLocked||(t.offsetX+=g,t.offsetY+=h)}},"nodeRepulsion"),Gp=v(function(e,t,a,n){if(a>0)var i=e.maxX-t.minX;else var i=t.maxX-e.minX;if(n>0)var s=e.maxY-t.minY;else var s=t.maxY-e.minY;return i>=0&&s>=0?Math.sqrt(i*i+s*s):0},"nodesOverlap"),Bn=v(function(e,t,a){var n=e.positionX,i=e.positionY,s=e.height||1,o=e.width||1,l=a/t,u=s/o,f={};return t===0&&0a?(f.x=n,f.y=i+s/2,f):0t&&-1*u<=l&&l<=u?(f.x=n-o/2,f.y=i-o*a/2/t,f):0=u)?(f.x=n+s*t/2/a,f.y=i+s/2,f):(0>a&&(l<=-1*u||l>=u)&&(f.x=n-s*t/2/a,f.y=i-s/2),f)},"findClippingPoint"),Hp=v(function(e,t){for(var a=0;aa){var p=t.gravity*g/m,y=t.gravity*h/m;d.offsetX+=p,d.offsetY+=y}}}}},"calculateGravityForces"),$p=v(function(e,t){var a=[],n=0,i=-1;for(a.push.apply(a,e.graphSet[0]),i+=e.graphSet[0].length;n<=i;){var s=a[n++],o=e.idToIndex[s],l=e.layoutNodes[o],u=l.children;if(0a)var i={x:a*e/n,y:a*t/n};else var i={x:e,y:t};return i},"limitForce"),vf=v(function(e,t){var a=e.parentId;if(a!=null){var n=t.layoutNodes[t.idToIndex[a]],i=!1;if((n.maxX==null||e.maxX+n.padRight>n.maxX)&&(n.maxX=e.maxX+n.padRight,i=!0),(n.minX==null||e.minX-n.padLeftn.maxY)&&(n.maxY=e.maxY+n.padBottom,i=!0),(n.minY==null||e.minY-n.padTopy&&(h+=p+t.componentSpacing,g=0,m=0,p=0)}}},"separateComponents"),Xp={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:v(function(e){},"position"),sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:v(function(e,t){return!0},"animateFilter"),ready:void 0,stop:void 0,transform:v(function(e,t){return t},"transform")};function ff(r){this.options=we({},Xp,r)}v(ff,"GridLayout");ff.prototype.run=function(){var r=this.options,e=r,t=r.cy,a=e.eles,n=a.nodes().not(":parent");e.sort&&(n=n.sort(e.sort));var i=xr(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()});if(i.h===0||i.w===0)a.nodes().layoutPositions(this,e,function(K){return{x:i.x1,y:i.y1}});else{var s=n.size(),o=Math.sqrt(s*i.h/i.w),l=Math.round(o),u=Math.round(i.w/i.h*o),f=v(function(J){if(J==null)return Math.min(l,u);var X=Math.min(l,u);X==l?l=J:u=J},"small"),c=v(function(J){if(J==null)return Math.max(l,u);var X=Math.max(l,u);X==l?l=J:u=J},"large"),d=e.rows,g=e.cols!=null?e.cols:e.columns;if(d!=null&&g!=null)l=d,u=g;else if(d!=null&&g==null)l=d,u=Math.ceil(s/l);else if(d==null&&g!=null)u=g,l=Math.ceil(s/u);else if(u*l>s){var h=f(),m=c();(h-1)*m>=s?f(h-1):(m-1)*h>=s&&c(m-1)}else for(;u*l=s?c(y+1):f(p+1)}var b=i.w/u,w=i.h/l;if(e.condense&&(b=0,w=0),e.avoidOverlap)for(var x=0;x=u&&(I=0,M++)},"moveToNextCell"),L={},N=0;N(I=zd(r,e,O[L],O[L+1],O[L+2],O[L+3])))return p(E,I),!0}else if(D.edgeType==="bezier"||D.edgeType==="multibezier"||D.edgeType==="self"||D.edgeType==="compound"){for(var O=D.allpts,L=0;L+5(I=Nd(r,e,O[L],O[L+1],O[L+2],O[L+3],O[L+4],O[L+5])))return p(E,I),!0}for(var N=N||S.source,q=q||S.target,H=n.getArrowWidth(B,P),z=[{name:"source",x:D.arrowStartX,y:D.arrowStartY,angle:D.srcArrowAngle},{name:"target",x:D.arrowEndX,y:D.arrowEndY,angle:D.tgtArrowAngle},{name:"mid-source",x:D.midX,y:D.midY,angle:D.midsrcArrowAngle},{name:"mid-target",x:D.midX,y:D.midY,angle:D.midtgtArrowAngle}],L=0;L0&&(y(N),y(q))}v(b,"checkEdge");function w(E,S,D){return Sr(E,S,D)}v(w,"preprop");function x(E,S){var D=E._private,B=d,P;S?P=S+"-":P="",E.boundingBox();var A=D.labelBounds[S||"main"],R=E.pstyle(P+"label").value,M=E.pstyle("text-events").strValue==="yes";if(!(!M||!R)){var I=w(D.rscratch,"labelX",S),O=w(D.rscratch,"labelY",S),L=w(D.rscratch,"labelAngle",S),N=E.pstyle(P+"text-margin-x").pfValue,q=E.pstyle(P+"text-margin-y").pfValue,H=A.x1-B-N,z=A.x2+B-N,V=A.y1-B-q,K=A.y2+B-q;if(L){var J=Math.cos(L),X=Math.sin(L),ee=v(function(Z,ae){return Z=Z-I,ae=ae-O,{x:Z*J-ae*X+I,y:Z*X+ae*J+O}},"rotate"),te=ee(H,V),ie=ee(H,K),j=ee(z,V),F=ee(z,K),_=[te.x+N,te.y+q,j.x+N,j.y+q,F.x+N,F.y+q,ie.x+N,ie.y+q];if(kr(r,e,_))return p(E),!0}else if(it(A,r,e))return p(E),!0}}v(x,"checkLabel");for(var C=s.length-1;C>=0;C--){var T=s[C];T.isNode()?y(T)||x(T):b(T)||x(T)||x(T,"source")||x(T,"target")}return o};It.getAllInBox=function(r,e,t,a){var n=this.getCachedZSortedEles().interactive,i=this.cy.zoom(),s=2/i,o=[],l=Math.min(r,t),u=Math.max(r,t),f=Math.min(e,a),c=Math.max(e,a);r=l,t=u,e=f,a=c;var d=xr({x1:r,y1:e,x2:t,y2:a}),g=[{x:d.x1,y:d.y1},{x:d.x2,y:d.y1},{x:d.x2,y:d.y2},{x:d.x1,y:d.y2}],h=[[g[0],g[1]],[g[1],g[2]],[g[2],g[3]],[g[3],g[0]]];function m(Z,ae,de){return Sr(Z,ae,de)}v(m,"preprop");function p(Z,ae){var de=Z._private,Re=s,Te="";Z.boundingBox();var xe=de.labelBounds.main;if(!xe)return null;var me=m(de.rscratch,"labelX",ae),se=m(de.rscratch,"labelY",ae),he=m(de.rscratch,"labelAngle",ae),ge=Z.pstyle(Te+"text-margin-x").pfValue,Ce=Z.pstyle(Te+"text-margin-y").pfValue,ye=xe.x1-Re-ge,ke=xe.x2+Re-ge,Me=xe.y1-Re-Ce,Ne=xe.y2+Re-Ce;if(he){var ze=Math.cos(he),Fe=Math.sin(he),Ee=v(function(Y,k){return Y=Y-me,k=k-se,{x:Y*ze-k*Fe+me,y:Y*Fe+k*ze+se}},"rotate");return[Ee(ye,Me),Ee(ke,Me),Ee(ke,Ne),Ee(ye,Ne)]}else return[{x:ye,y:Me},{x:ke,y:Me},{x:ke,y:Ne},{x:ye,y:Ne}]}v(p,"getRotatedLabelBox");function y(Z,ae,de,Re){function Te(xe,me,se){return(se.y-xe.y)*(me.x-xe.x)>(me.y-xe.y)*(se.x-xe.x)}return v(Te,"ccw"),Te(Z,de,Re)!==Te(ae,de,Re)&&Te(Z,ae,de)!==Te(Z,ae,Re)}v(y,"doLinesIntersect");for(var b=0;b0?-(Math.PI-e.ang):Math.PI+e.ang},"invertVec"),ey=v(function(e,t,a,n,i){if(e!==Ml?Ll(t,e,qr):jp(Ar,qr),Ll(t,a,Ar),Al=qr.nx*Ar.ny-qr.ny*Ar.nx,Rl=qr.nx*Ar.nx-qr.ny*-Ar.ny,Kr=Math.asin(Math.max(-1,Math.min(1,Al))),Math.abs(Kr)<1e-6){qs=t.x,_s=t.y,St=_t=0;return}Dt=1,pn=!1,Rl<0?Kr<0?Kr=Math.PI+Kr:(Kr=Math.PI-Kr,Dt=-1,pn=!0):Kr>0&&(Dt=-1,pn=!0),t.radius!==void 0?_t=t.radius:_t=n,xt=Kr/2,nn=Math.min(qr.len/2,Ar.len/2),i?(Fr=Math.abs(Math.cos(xt)*_t/Math.sin(xt)),Fr>nn?(Fr=nn,St=Math.abs(Fr*Math.sin(xt)/Math.cos(xt))):St=_t):(Fr=Math.min(nn,_t),St=Math.abs(Fr*Math.sin(xt)/Math.cos(xt))),Gs=t.x+Ar.nx*Fr,Hs=t.y+Ar.ny*Fr,qs=Gs-Ar.ny*St*Dt,_s=Hs+Ar.nx*St*Dt,gf=t.x+qr.nx*Fr,pf=t.y+qr.ny*Fr,Ml=t},"calcCornerArc");function yf(r,e){e.radius===0?r.lineTo(e.cx,e.cy):r.arc(e.cx,e.cy,e.radius,e.startAngle,e.endAngle,e.counterClockwise)}v(yf,"drawPreparedRoundCorner");function yo(r,e,t,a){var n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0;return a===0||e.radius===0?{cx:e.x,cy:e.y,radius:0,startX:e.x,startY:e.y,stopX:e.x,stopY:e.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(ey(r,e,t,a,n),{cx:qs,cy:_s,radius:St,startX:gf,startY:pf,stopX:Gs,stopY:Hs,startAngle:qr.ang+Math.PI/2*Dt,endAngle:Ar.ang-Math.PI/2*Dt,counterClockwise:pn})}v(yo,"getRoundCorner");var La=.01,ry=Math.sqrt(2*La),mr={};mr.findMidptPtsEtc=function(r,e){var t=e.posPts,a=e.intersectionPts,n=e.vectorNormInverse,i,s=r.pstyle("source-endpoint"),o=r.pstyle("target-endpoint"),l=s.units!=null&&o.units!=null,u=v(function(C,T,E,S){var D=S-T,B=E-C,P=Math.sqrt(B*B+D*D);return{x:-D/P,y:B/P}},"recalcVectorNormInverse"),f=r.pstyle("edge-distances").value;switch(f){case"node-position":i=t;break;case"intersection":i=a;break;case"endpoints":{if(l){var c=this.manualEndptToPx(r.source()[0],s),d=je(c,2),g=d[0],h=d[1],m=this.manualEndptToPx(r.target()[0],o),p=je(m,2),y=p[0],b=p[1],w={x1:g,y1:h,x2:y,y2:b};n=u(g,h,y,b),i=w}else qe("Edge ".concat(r.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default).")),i=a;break}}return{midptPts:i,vectorNormInverse:n}};mr.findHaystackPoints=function(r){for(var e=0;e0?Math.max(k-G,0):Math.min(k+G,0)},"subDWH"),R=A(B,S),M=A(P,D),I=!1;b===u?y=Math.abs(R)>Math.abs(M)?n:a:b===l||b===o?(y=a,I=!0):(b===i||b===s)&&(y=n,I=!0);var O=y===a,L=O?M:R,N=O?P:B,q=ao(N),H=!1;!(I&&(x||T))&&(b===o&&N<0||b===l&&N>0||b===i&&N>0||b===s&&N<0)&&(q*=-1,L=q*Math.abs(L),H=!0);var z;if(x){var V=C<0?1+C:C;z=V*L}else{var K=C<0?L:0;z=K+C*q}var J=v(function(k){return Math.abs(k)=Math.abs(L)},"getIsTooClose"),X=J(z),ee=J(Math.abs(L)-Math.abs(z)),te=X||ee;if(te&&!H)if(O){var ie=Math.abs(N)<=d/2,j=Math.abs(B)<=g/2;if(ie){var F=(f.x1+f.x2)/2,_=f.y1,W=f.y2;t.segpts=[F,_,F,W]}else if(j){var Z=(f.y1+f.y2)/2,ae=f.x1,de=f.x2;t.segpts=[ae,Z,de,Z]}else t.segpts=[f.x1,f.y2]}else{var Re=Math.abs(N)<=c/2,Te=Math.abs(P)<=h/2;if(Re){var xe=(f.y1+f.y2)/2,me=f.x1,se=f.x2;t.segpts=[me,xe,se,xe]}else if(Te){var he=(f.x1+f.x2)/2,ge=f.y1,Ce=f.y2;t.segpts=[he,ge,he,Ce]}else t.segpts=[f.x2,f.y1]}else if(O){var ye=f.y1+z+(p?d/2*q:0),ke=f.x1,Me=f.x2;t.segpts=[ke,ye,Me,ye]}else{var Ne=f.x1+z+(p?c/2*q:0),ze=f.y1,Fe=f.y2;t.segpts=[Ne,ze,Ne,Fe]}if(t.isRound){var Ee=r.pstyle("taxi-radius").value,le=r.pstyle("radius-type").value[0]==="arc-radius";t.radii=new Array(t.segpts.length/2).fill(Ee),t.isArcRadius=new Array(t.segpts.length/2).fill(le)}};mr.tryToCorrectInvalidPoints=function(r,e){var t=r._private.rscratch;if(t.edgeType==="bezier"){var a=e.srcPos,n=e.tgtPos,i=e.srcW,s=e.srcH,o=e.tgtW,l=e.tgtH,u=e.srcShape,f=e.tgtShape,c=e.srcCornerRadius,d=e.tgtCornerRadius,g=e.srcRs,h=e.tgtRs,m=!ne(t.startX)||!ne(t.startY),p=!ne(t.arrowStartX)||!ne(t.arrowStartY),y=!ne(t.endX)||!ne(t.endY),b=!ne(t.arrowEndX)||!ne(t.arrowEndY),w=3,x=this.getArrowWidth(r.pstyle("width").pfValue,r.pstyle("arrow-scale").value)*this.arrowShapeWidth,C=w*x,T=At({x:t.ctrlpts[0],y:t.ctrlpts[1]},{x:t.startX,y:t.startY}),E=TN.poolIndex()){var q=L;L=N,N=q}var H=R.srcPos=L.position(),z=R.tgtPos=N.position(),V=R.srcW=L.outerWidth(),K=R.srcH=L.outerHeight(),J=R.tgtW=N.outerWidth(),X=R.tgtH=N.outerHeight(),ee=R.srcShape=t.nodeShapes[e.getNodeShape(L)],te=R.tgtShape=t.nodeShapes[e.getNodeShape(N)],ie=R.srcCornerRadius=L.pstyle("corner-radius").value==="auto"?"auto":L.pstyle("corner-radius").pfValue,j=R.tgtCornerRadius=N.pstyle("corner-radius").value==="auto"?"auto":N.pstyle("corner-radius").pfValue,F=R.tgtRs=N._private.rscratch,_=R.srcRs=L._private.rscratch;R.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var W=0;W=ry||(Me=Math.sqrt(Math.max(ke*ke,La)+Math.max(ye*ye,La)));var Ne=R.vector={x:ke,y:ye},ze=R.vectorNorm={x:Ne.x/Me,y:Ne.y/Me},Fe={x:-ze.y,y:ze.x};R.nodesOverlap=!ne(Me)||te.checkPoint(xe[0],xe[1],0,J,X,z.x,z.y,j,F)||ee.checkPoint(se[0],se[1],0,V,K,H.x,H.y,ie,_),R.vectorNormInverse=Fe,M={nodesOverlap:R.nodesOverlap,dirCounts:R.dirCounts,calculatedIntersection:!0,hasBezier:R.hasBezier,hasUnbundled:R.hasUnbundled,eles:R.eles,srcPos:z,srcRs:F,tgtPos:H,tgtRs:_,srcW:J,srcH:X,tgtW:V,tgtH:K,srcIntn:he,tgtIntn:me,srcShape:te,tgtShape:ee,posPts:{x1:Ce.x2,y1:Ce.y2,x2:Ce.x1,y2:Ce.y1},intersectionPts:{x1:ge.x2,y1:ge.y2,x2:ge.x1,y2:ge.y1},vector:{x:-Ne.x,y:-Ne.y},vectorNorm:{x:-ze.x,y:-ze.y},vectorNormInverse:{x:-Fe.x,y:-Fe.y}}}var Ee=Te?M:R;ae.nodesOverlap=Ee.nodesOverlap,ae.srcIntn=Ee.srcIntn,ae.tgtIntn=Ee.tgtIntn,ae.isRound=de.startsWith("round"),n&&(L.isParent()||L.isChild()||N.isParent()||N.isChild())&&(L.parents().anySame(N)||N.parents().anySame(L)||L.same(N)&&L.isParent())?e.findCompoundLoopPoints(Z,Ee,W,Re):L===N?e.findLoopPoints(Z,Ee,W,Re):de.endsWith("segments")?e.findSegmentsPoints(Z,Ee):de.endsWith("taxi")?e.findTaxiPoints(Z,Ee):de==="straight"||!Re&&R.eles.length%2===1&&W===Math.floor(R.eles.length/2)?e.findStraightEdgePoints(Z):e.findBezierPoints(Z,Ee,W,Re,Te),e.findEndpoints(Z),e.tryToCorrectInvalidPoints(Z,Ee),e.checkForInvalidEdgeWarning(Z),e.storeAllpts(Z),e.storeEdgeProjections(Z),e.calculateArrowAngles(Z),e.recalculateEdgeLabelProjections(Z),e.calculateLabelAngles(Z)}},"_loop"),E=0;E0){var xe=u,me=Tt(xe,$t(s)),se=Tt(xe,$t(Te)),he=me;if(se2){var ge=Tt(xe,{x:Te[2],y:Te[3]});ge0){var $=f,U=Tt($,$t(s)),Q=Tt($,$t(G)),ue=U;if(Q2){var re=Tt($,{x:G[2],y:G[3]});re=h||E){p={cp:x,segment:T};break}}if(p)break}var S=p.cp,D=p.segment,B=(h-y)/D.length,P=D.t1-D.t0,A=g?D.t0+P*B:D.t1-P*B;A=Da(0,A,1),e=Xt(S.p0,S.p1,S.p2,A),d=ay(S.p0,S.p1,S.p2,A);break}case"straight":case"segments":case"haystack":{for(var R=0,M,I,O,L,N=a.allpts.length,q=0;q+3=h));q+=2);var H=h-I,z=H/M;z=Da(0,z,1),e=Sd(O,L,z),d=wf(O,L);break}}s("labelX",c,e.x),s("labelY",c,e.y),s("labelAutoAngle",c,d)}},"calculateEndProjection");u("source"),u("target"),this.applyLabelDimensions(r)}};Hr.applyLabelDimensions=function(r){this.applyPrefixedLabelDimensions(r),r.isEdge()&&(this.applyPrefixedLabelDimensions(r,"source"),this.applyPrefixedLabelDimensions(r,"target"))};Hr.applyPrefixedLabelDimensions=function(r,e){var t=r._private,a=this.getLabelText(r,e),n=Pt(a,r._private.labelDimsKey);if(Sr(t.rscratch,"prefixedLabelDimsKey",e)!==n){Xr(t.rscratch,"prefixedLabelDimsKey",e,n);var i=this.calculateLabelDimensions(r,a),s=r.pstyle("line-height").pfValue,o=r.pstyle("text-wrap").strValue,l=Sr(t.rscratch,"labelWrapCachedLines",e)||[],u=o!=="wrap"?1:Math.max(l.length,1),f=i.height/u,c=f*s,d=i.width,g=i.height+(u-1)*(s-1)*f;Xr(t.rstyle,"labelWidth",e,d),Xr(t.rscratch,"labelWidth",e,d),Xr(t.rstyle,"labelHeight",e,g),Xr(t.rscratch,"labelHeight",e,g),Xr(t.rscratch,"labelLineHeight",e,c)}};Hr.getLabelText=function(r,e){var t=r._private,a=e?e+"-":"",n=r.pstyle(a+"label").strValue,i=r.pstyle("text-transform").value,s=v(function(K,J){return J?(Xr(t.rscratch,K,e,J),J):Sr(t.rscratch,K,e)},"rscratch");if(!n)return"";i=="none"||(i=="uppercase"?n=n.toUpperCase():i=="lowercase"&&(n=n.toLowerCase()));var o=r.pstyle("text-wrap").value;if(o==="wrap"){var l=s("labelKey");if(l!=null&&s("labelWrapKey")===l)return s("labelWrapCachedText");for(var u="\u200B",f=n.split(` `),c=r.pstyle("text-max-width").pfValue,d=r.pstyle("text-overflow-wrap").value,g=d==="anywhere",h=[],m=/[\s\u200b]+|$/g,p=0;pc){var C=y.matchAll(m),T="",E=0,S=Dr(C),D;try{for(S.s();!(D=S.n()).done;){var B=D.value,P=B[0],A=y.substring(E,B.index);E=B.index+P.length;var R=T.length===0?A:T+A+P,M=this.calculateLabelDimensions(r,R),I=M.width;I<=c?T+=A+P:(T&&h.push(T),T=A+P)}}catch(V){S.e(V)}finally{S.f()}T.match(/^[\s\u200b]+$/)||h.push(T)}else h.push(y)}s("labelWrapCachedLines",h),n=s("labelWrapCachedText",h.join(` `)),s("labelWrapKey",l)}else if(o==="ellipsis"){var O=r.pstyle("text-max-width").pfValue,L="",N="\u2026",q=!1;if(this.calculateLabelDimensions(r,n).widthO)break;L+=n[H],H===n.length-1&&(q=!0)}return q||(L+=N),L}return n};Hr.getLabelJustification=function(r){var e=r.pstyle("text-justification").strValue,t=r.pstyle("text-halign").strValue;if(e==="auto")if(r.isNode())switch(t){case"left":return"right";case"right":return"left";default:return"center"}else return"center";else return e};Hr.calculateLabelDimensions=function(r,e){var t=this,a=t.cy.window(),n=a.document,i=0,s=r.pstyle("font-style").strValue,o=r.pstyle("font-size").pfValue,l=r.pstyle("font-family").strValue,u=r.pstyle("font-weight").strValue,f=this.labelCalcCanvas,c=this.labelCalcCanvasContext;if(!f){f=this.labelCalcCanvas=n.createElement("canvas"),c=this.labelCalcCanvasContext=f.getContext("2d");var d=f.style;d.position="absolute",d.left="-9999px",d.top="-9999px",d.zIndex="-1",d.visibility="hidden",d.pointerEvents="none"}c.font="".concat(s," ").concat(u," ").concat(o,"px ").concat(l);for(var g=0,h=0,m=e.split(` `),p=0;p1&&arguments[1]!==void 0?arguments[1]:!0;if(e.merge(s),o)for(var l=0;l=r.desktopTapThreshold2}var vr=i(k);er&&(r.hoverData.tapholdCancelled=!0);var et=v(function(){var Pr=r.hoverData.dragDelta=r.hoverData.dragDelta||[];Pr.length===0?(Pr.push(Ae[0]),Pr.push(Ae[1])):(Pr[0]+=Ae[0],Pr[1]+=Ae[1])},"updateDragDelta");$=!0,n(Be,["mousemove","vmousemove","tapdrag"],k,{x:re[0],y:re[1]});var Qe=v(function(Pr){return{originalEvent:k,type:Pr,position:{x:re[0],y:re[1]}}},"makeEvent"),$r=v(function(){r.data.bgActivePosistion=void 0,r.hoverData.selecting||U.emit(Qe("boxstart")),be[4]=1,r.hoverData.selecting=!0,r.redrawHint("select",!0),r.redraw()},"goIntoBoxMode");if(r.hoverData.which===3){if(er){var Ur=Qe("cxtdrag");ce?ce.emit(Ur):U.emit(Ur),r.hoverData.cxtDragged=!0,(!r.hoverData.cxtOver||Be!==r.hoverData.cxtOver)&&(r.hoverData.cxtOver&&r.hoverData.cxtOver.emit(Qe("cxtdragout")),r.hoverData.cxtOver=Be,Be&&Be.emit(Qe("cxtdragover")))}}else if(r.hoverData.dragging){if($=!0,U.panningEnabled()&&U.userPanningEnabled()){var Nt;if(r.hoverData.justStartedPan){var Ua=r.hoverData.mdownPos;Nt={x:(re[0]-Ua[0])*Q,y:(re[1]-Ua[1])*Q},r.hoverData.justStartedPan=!1}else Nt={x:Ae[0]*Q,y:Ae[1]*Q};U.panBy(Nt),U.emit(Qe("dragpan")),r.hoverData.dragged=!0}re=r.projectIntoViewport(k.clientX,k.clientY)}else if(be[4]==1&&(ce==null||ce.pannable())){if(er){if(!r.hoverData.dragging&&U.boxSelectionEnabled()&&(vr||!U.panningEnabled()||!U.userPanningEnabled()))$r();else if(!r.hoverData.selecting&&U.panningEnabled()&&U.userPanningEnabled()){var wt=s(ce,r.hoverData.downs);wt&&(r.hoverData.dragging=!0,r.hoverData.justStartedPan=!0,be[4]=0,r.data.bgActivePosistion=$t(fe),r.redrawHint("select",!0),r.redraw())}ce&&ce.pannable()&&ce.active()&&ce.unactivate()}}else{if(ce&&ce.pannable()&&ce.active()&&ce.unactivate(),(!ce||!ce.grabbed())&&Be!=Se&&(Se&&n(Se,["mouseout","tapdragout"],k,{x:re[0],y:re[1]}),Be&&n(Be,["mouseover","tapdragover"],k,{x:re[0],y:re[1]}),r.hoverData.last=Be),ce)if(er){if(U.boxSelectionEnabled()&&vr)ce&&ce.grabbed()&&(y(Pe),ce.emit(Qe("freeon")),Pe.emit(Qe("free")),r.dragData.didDrag&&(ce.emit(Qe("dragfreeon")),Pe.emit(Qe("dragfree")))),$r();else if(ce&&ce.grabbed()&&r.nodeIsDraggable(ce)){var Cr=!r.dragData.didDrag;Cr&&r.redrawHint("eles",!0),r.dragData.didDrag=!0,r.hoverData.draggingEles||m(Pe,{inDragLayer:!0});var gr={x:0,y:0};if(ne(Ae[0])&&ne(Ae[1])&&(gr.x+=Ae[0],gr.y+=Ae[1],Cr)){var Tr=r.hoverData.dragDelta;Tr&&ne(Tr[0])&&ne(Tr[1])&&(gr.x+=Tr[0],gr.y+=Tr[1])}r.hoverData.draggingEles=!0,Pe.silentShift(gr).emit(Qe("position")).emit(Qe("drag")),r.redrawHint("drag",!0),r.redraw()}}else et();$=!0}if(be[2]=re[0],be[3]=re[1],$)return k.stopPropagation&&k.stopPropagation(),k.preventDefault&&k.preventDefault(),!1}},"mousemoveHandler"),!1);var A,R,M;r.registerBinding(e,"mouseup",v(function(k){if(!(r.hoverData.which===1&&k.which!==1&&r.hoverData.capture)){var G=r.hoverData.capture;if(G){r.hoverData.capture=!1;var $=r.cy,U=r.projectIntoViewport(k.clientX,k.clientY),Q=r.selection,ue=r.findNearestElement(U[0],U[1],!0,!1),re=r.dragData.possibleDragElements,fe=r.hoverData.down,ve=i(k);r.data.bgActivePosistion&&(r.redrawHint("select",!0),r.redraw()),r.hoverData.tapholdCancelled=!0,r.data.bgActivePosistion=void 0,fe&&fe.unactivate();var be=v(function(Xe){return{originalEvent:k,type:Xe,position:{x:U[0],y:U[1]}}},"makeEvent");if(r.hoverData.which===3){var Be=be("cxttapend");if(fe?fe.emit(Be):$.emit(Be),!r.hoverData.cxtDragged){var Se=be("cxttap");fe?fe.emit(Se):$.emit(Se)}r.hoverData.cxtDragged=!1,r.hoverData.which=null}else if(r.hoverData.which===1){if(n(ue,["mouseup","tapend","vmouseup"],k,{x:U[0],y:U[1]}),!r.dragData.didDrag&&!r.hoverData.dragged&&!r.hoverData.selecting&&!r.hoverData.isOverThresholdDrag&&(n(fe,["click","tap","vclick"],k,{x:U[0],y:U[1]}),R=!1,k.timeStamp-M<=$.multiClickDebounceTime()?(A&&clearTimeout(A),R=!0,M=null,n(fe,["dblclick","dbltap","vdblclick"],k,{x:U[0],y:U[1]})):(A=setTimeout(function(){R||n(fe,["oneclick","onetap","voneclick"],k,{x:U[0],y:U[1]})},$.multiClickDebounceTime()),M=k.timeStamp)),fe==null&&!r.dragData.didDrag&&!r.hoverData.selecting&&!r.hoverData.dragged&&!i(k)&&($.$(t).unselect(["tapunselect"]),re.length>0&&r.redrawHint("eles",!0),r.dragData.possibleDragElements=re=$.collection()),ue==fe&&!r.dragData.didDrag&&!r.hoverData.selecting&&ue!=null&&ue._private.selectable&&(r.hoverData.dragging||($.selectionType()==="additive"||ve?ue.selected()?ue.unselect(["tapunselect"]):ue.select(["tapselect"]):ve||($.$(t).unmerge(ue).unselect(["tapunselect"]),ue.select(["tapselect"]))),r.redrawHint("eles",!0)),r.hoverData.selecting){var ce=$.collection(r.getAllInBox(Q[0],Q[1],Q[2],Q[3]));r.redrawHint("select",!0),ce.length>0&&r.redrawHint("eles",!0),$.emit(be("boxend"));var Ae=v(function(Xe){return Xe.selectable()&&!Xe.selected()},"eleWouldBeSelected");$.selectionType()==="additive"||ve||$.$(t).unmerge(ce).unselect(),ce.emit(be("box")).stdFilter(Ae).select().emit(be("boxselect")),r.redraw()}if(r.hoverData.dragging&&(r.hoverData.dragging=!1,r.redrawHint("select",!0),r.redrawHint("eles",!0),r.redraw()),!Q[4]){r.redrawHint("drag",!0),r.redrawHint("eles",!0);var Pe=fe&&fe.grabbed();y(re),Pe&&(fe.emit(be("freeon")),re.emit(be("free")),r.dragData.didDrag&&(fe.emit(be("dragfreeon")),re.emit(be("dragfree"))))}}Q[4]=0,r.hoverData.down=null,r.hoverData.cxtStarted=!1,r.hoverData.draggingEles=!1,r.hoverData.selecting=!1,r.hoverData.isOverThresholdDrag=!1,r.dragData.didDrag=!1,r.hoverData.dragged=!1,r.hoverData.dragDelta=[],r.hoverData.mdownPos=null,r.hoverData.mdownGPos=null,r.hoverData.which=null}}},"mouseupHandler"),!1);var I=[],O=4,L,N=1e5,q=v(function(k,G){for(var $=0;$=O){var U=I;if(L=q(U,5),!L){var Q=Math.abs(U[0]);L=H(U)&&Q>5}if(L)for(var ue=0;ue5&&($=ao($)*5),Se=$/-250,L&&(Se/=N,Se*=3),Se=Se*r.wheelSensitivity;var ce=k.deltaMode===1;ce&&(Se*=33);var Ae=re.zoom()*Math.pow(10,Se);k.type==="gesturechange"&&(Ae=r.gestureStartZoom*k.scale),re.zoom({level:Ae,renderedPosition:{x:Be[0],y:Be[1]}}),re.emit({type:k.type==="gesturechange"?"pinchzoom":"scrollzoom",originalEvent:k,position:{x:be[0],y:be[1]}})}}}},"wheelHandler");r.registerBinding(r.container,"wheel",z,!0),r.registerBinding(e,"scroll",v(function(k){r.scrollingPage=!0,clearTimeout(r.scrollingPageTimeout),r.scrollingPageTimeout=setTimeout(function(){r.scrollingPage=!1},250)},"scrollHandler"),!0),r.registerBinding(r.container,"gesturestart",v(function(k){r.gestureStartZoom=r.cy.zoom(),r.hasTouchStarted||k.preventDefault()},"gestureStartHandler"),!0),r.registerBinding(r.container,"gesturechange",function(Y){r.hasTouchStarted||z(Y)},!0),r.registerBinding(r.container,"mouseout",v(function(k){var G=r.projectIntoViewport(k.clientX,k.clientY);r.cy.emit({originalEvent:k,type:"mouseout",position:{x:G[0],y:G[1]}})},"mouseOutHandler"),!1),r.registerBinding(r.container,"mouseover",v(function(k){var G=r.projectIntoViewport(k.clientX,k.clientY);r.cy.emit({originalEvent:k,type:"mouseover",position:{x:G[0],y:G[1]}})},"mouseOverHandler"),!1);var V,K,J,X,ee,te,ie,j,F,_,W,Z,ae,de=v(function(k,G,$,U){return Math.sqrt(($-k)*($-k)+(U-G)*(U-G))},"distance"),Re=v(function(k,G,$,U){return($-k)*($-k)+(U-G)*(U-G)},"distanceSq"),Te;r.registerBinding(r.container,"touchstart",Te=v(function(k){if(r.hasTouchStarted=!0,!!B(k)){w(),r.touchData.capture=!0,r.data.bgActivePosistion=void 0;var G=r.cy,$=r.touchData.now,U=r.touchData.earlier;if(k.touches[0]){var Q=r.projectIntoViewport(k.touches[0].clientX,k.touches[0].clientY);$[0]=Q[0],$[1]=Q[1]}if(k.touches[1]){var Q=r.projectIntoViewport(k.touches[1].clientX,k.touches[1].clientY);$[2]=Q[0],$[3]=Q[1]}if(k.touches[2]){var Q=r.projectIntoViewport(k.touches[2].clientX,k.touches[2].clientY);$[4]=Q[0],$[5]=Q[1]}var ue=v(function(vr){return{originalEvent:k,type:vr,position:{x:$[0],y:$[1]}}},"makeEvent");if(k.touches[1]){r.touchData.singleTouchMoved=!0,y(r.dragData.touchDragEles);var re=r.findContainerClientCoords();F=re[0],_=re[1],W=re[2],Z=re[3],V=k.touches[0].clientX-F,K=k.touches[0].clientY-_,J=k.touches[1].clientX-F,X=k.touches[1].clientY-_,ae=0<=V&&V<=W&&0<=J&&J<=W&&0<=K&&K<=Z&&0<=X&&X<=Z;var fe=G.pan(),ve=G.zoom();ee=de(V,K,J,X),te=Re(V,K,J,X),ie=[(V+J)/2,(K+X)/2],j=[(ie[0]-fe.x)/ve,(ie[1]-fe.y)/ve];var be=200,Be=be*be;if(te=1){for(var br=r.touchData.startPosition=[null,null,null,null,null,null],Ze=0;Ze<$.length;Ze++)br[Ze]=U[Ze]=$[Ze];var sr=k.touches[0];r.touchData.startGPosition=[sr.clientX,sr.clientY]}}},"touchstartHandler"),!1);var xe;r.registerBinding(e,"touchmove",xe=v(function(k){var G=r.touchData.capture;if(!(!G&&!B(k))){var $=r.selection,U=r.cy,Q=r.touchData.now,ue=r.touchData.earlier,re=U.zoom();if(k.touches[0]){var fe=r.projectIntoViewport(k.touches[0].clientX,k.touches[0].clientY);Q[0]=fe[0],Q[1]=fe[1]}if(k.touches[1]){var fe=r.projectIntoViewport(k.touches[1].clientX,k.touches[1].clientY);Q[2]=fe[0],Q[3]=fe[1]}if(k.touches[2]){var fe=r.projectIntoViewport(k.touches[2].clientX,k.touches[2].clientY);Q[4]=fe[0],Q[5]=fe[1]}var ve=v(function(ec){return{originalEvent:k,type:ec,position:{x:Q[0],y:Q[1]}}},"makeEvent"),be=r.touchData.startGPosition,Be;if(G&&k.touches[0]&&be){for(var Se=[],ce=0;ce=r.touchTapThreshold2}if(G&&r.touchData.cxt){k.preventDefault();var Ze=k.touches[0].clientX-F,sr=k.touches[0].clientY-_,rr=k.touches[1].clientX-F,vr=k.touches[1].clientY-_,et=Re(Ze,sr,rr,vr),Qe=et/te,$r=150,Ur=$r*$r,Nt=1.5,Ua=Nt*Nt;if(Qe>=Ua||et>=Ur){r.touchData.cxt=!1,r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);var wt=ve("cxttapend");r.touchData.start?(r.touchData.start.unactivate().emit(wt),r.touchData.start=null):U.emit(wt)}}if(G&&r.touchData.cxt){var wt=ve("cxtdrag");r.data.bgActivePosistion=void 0,r.redrawHint("select",!0),r.touchData.start?r.touchData.start.emit(wt):U.emit(wt),r.touchData.start&&(r.touchData.start._private.grabbed=!1),r.touchData.cxtDragged=!0;var Cr=r.findNearestElement(Q[0],Q[1],!0,!0);(!r.touchData.cxtOver||Cr!==r.touchData.cxtOver)&&(r.touchData.cxtOver&&r.touchData.cxtOver.emit(ve("cxtdragout")),r.touchData.cxtOver=Cr,Cr&&Cr.emit(ve("cxtdragover")))}else if(G&&k.touches[2]&&U.boxSelectionEnabled())k.preventDefault(),r.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,r.touchData.selecting||U.emit(ve("boxstart")),r.touchData.selecting=!0,r.touchData.didSelect=!0,$[4]=1,!$||$.length===0||$[0]===void 0?($[0]=(Q[0]+Q[2]+Q[4])/3,$[1]=(Q[1]+Q[3]+Q[5])/3,$[2]=(Q[0]+Q[2]+Q[4])/3+1,$[3]=(Q[1]+Q[3]+Q[5])/3+1):($[2]=(Q[0]+Q[2]+Q[4])/3,$[3]=(Q[1]+Q[3]+Q[5])/3),r.redrawHint("select",!0),r.redraw();else if(G&&k.touches[1]&&!r.touchData.didSelect&&U.zoomingEnabled()&&U.panningEnabled()&&U.userZoomingEnabled()&&U.userPanningEnabled()){k.preventDefault(),r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);var gr=r.dragData.touchDragEles;if(gr){r.redrawHint("drag",!0);for(var Tr=0;Tr0&&!r.hoverData.draggingEles&&!r.swipePanning&&r.data.bgActivePosistion!=null&&(r.data.bgActivePosistion=void 0,r.redrawHint("select",!0),r.redraw())}},"touchmoveHandler"),!1);var me;r.registerBinding(e,"touchcancel",me=v(function(k){var G=r.touchData.start;r.touchData.capture=!1,G&&G.unactivate()},"touchcancelHandler"));var se,he,ge,Ce;if(r.registerBinding(e,"touchend",se=v(function(k){var G=r.touchData.start,$=r.touchData.capture;if($)k.touches.length===0&&(r.touchData.capture=!1),k.preventDefault();else return;var U=r.selection;r.swipePanning=!1,r.hoverData.draggingEles=!1;var Q=r.cy,ue=Q.zoom(),re=r.touchData.now,fe=r.touchData.earlier;if(k.touches[0]){var ve=r.projectIntoViewport(k.touches[0].clientX,k.touches[0].clientY);re[0]=ve[0],re[1]=ve[1]}if(k.touches[1]){var ve=r.projectIntoViewport(k.touches[1].clientX,k.touches[1].clientY);re[2]=ve[0],re[3]=ve[1]}if(k.touches[2]){var ve=r.projectIntoViewport(k.touches[2].clientX,k.touches[2].clientY);re[4]=ve[0],re[5]=ve[1]}var be=v(function(Ur){return{originalEvent:k,type:Ur,position:{x:re[0],y:re[1]}}},"makeEvent");G&&G.unactivate();var Be;if(r.touchData.cxt){if(Be=be("cxttapend"),G?G.emit(Be):Q.emit(Be),!r.touchData.cxtDragged){var Se=be("cxttap");G?G.emit(Se):Q.emit(Se)}r.touchData.start&&(r.touchData.start._private.grabbed=!1),r.touchData.cxt=!1,r.touchData.start=null,r.redraw();return}if(!k.touches[2]&&Q.boxSelectionEnabled()&&r.touchData.selecting){r.touchData.selecting=!1;var ce=Q.collection(r.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,r.redrawHint("select",!0),Q.emit(be("boxend"));var Ae=v(function(Ur){return Ur.selectable()&&!Ur.selected()},"eleWouldBeSelected");ce.emit(be("box")).stdFilter(Ae).select().emit(be("boxselect")),ce.nonempty()&&r.redrawHint("eles",!0),r.redraw()}if(G?.unactivate(),k.touches[2])r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);else if(!k.touches[1]){if(!k.touches[0]){if(!k.touches[0]){r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);var Pe=r.dragData.touchDragEles;if(G!=null){var er=G._private.grabbed;y(Pe),r.redrawHint("drag",!0),r.redrawHint("eles",!0),er&&(G.emit(be("freeon")),Pe.emit(be("free")),r.dragData.didDrag&&(G.emit(be("dragfreeon")),Pe.emit(be("dragfree")))),n(G,["touchend","tapend","vmouseup","tapdragout"],k,{x:re[0],y:re[1]}),G.unactivate(),r.touchData.start=null}else{var Xe=r.findNearestElement(re[0],re[1],!0,!0);n(Xe,["touchend","tapend","vmouseup","tapdragout"],k,{x:re[0],y:re[1]})}var br=r.touchData.startPosition[0]-re[0],Ze=br*br,sr=r.touchData.startPosition[1]-re[1],rr=sr*sr,vr=Ze+rr,et=vr*ue*ue;r.touchData.singleTouchMoved||(G||Q.$(":selected").unselect(["tapunselect"]),n(G,["tap","vclick"],k,{x:re[0],y:re[1]}),he=!1,k.timeStamp-Ce<=Q.multiClickDebounceTime()?(ge&&clearTimeout(ge),he=!0,Ce=null,n(G,["dbltap","vdblclick"],k,{x:re[0],y:re[1]})):(ge=setTimeout(function(){he||n(G,["onetap","voneclick"],k,{x:re[0],y:re[1]})},Q.multiClickDebounceTime()),Ce=k.timeStamp)),G!=null&&!r.dragData.didDrag&&G._private.selectable&&et"u"){var ye=[],ke=v(function(k){return{clientX:k.clientX,clientY:k.clientY,force:1,identifier:k.pointerId,pageX:k.pageX,pageY:k.pageY,radiusX:k.width/2,radiusY:k.height/2,screenX:k.screenX,screenY:k.screenY,target:k.target}},"makeTouch"),Me=v(function(k){return{event:k,touch:ke(k)}},"makePointer"),Ne=v(function(k){ye.push(Me(k))},"addPointer"),ze=v(function(k){for(var G=0;G0)return V[0]}return null},"getCurveT"),h=Object.keys(d),m=0;m0?g:xv(i,s,e,t,a,n,o,l)},"intersectLine"),checkPoint:v(function(e,t,a,n,i,s,o,l){l=l==="auto"?ft(n,i):l;var u=2*l;if(Qr(e,t,this.points,s,o,n,i-u,[0,-1],a)||Qr(e,t,this.points,s,o,n-u,i,[0,-1],a))return!0;var f=n/2+2*a,c=i/2+2*a,d=[s-f,o-c,s-f,o,s+f,o,s+f,o-c];return!!(kr(e,t,d)||Bt(e,t,u,u,s+n/2-l,o+i/2-l,a)||Bt(e,t,u,u,s-n/2+l,o+i/2-l,a))},"checkPoint")}};Jr.registerNodeShapes=function(){var r=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",wr(3,0)),this.generateRoundPolygon("round-triangle",wr(3,0)),this.generatePolygon("rectangle",wr(4,0)),r.square=r.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();{var t=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",t),this.generateRoundPolygon("round-diamond",t)}this.generatePolygon("pentagon",wr(5,0)),this.generateRoundPolygon("round-pentagon",wr(5,0)),this.generatePolygon("hexagon",wr(6,0)),this.generateRoundPolygon("round-hexagon",wr(6,0)),this.generatePolygon("heptagon",wr(7,0)),this.generateRoundPolygon("round-heptagon",wr(7,0)),this.generatePolygon("octagon",wr(8,0)),this.generateRoundPolygon("round-octagon",wr(8,0));var a=new Array(20);{var n=As(5,0),i=As(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var o=0;o=e.deqFastCost*x)break}else if(u){if(b>=e.deqCost*g||b>=e.deqAvgCost*d)break}else if(w>=e.deqNoDrawCost*xs)break;var C=e.deq(a,p,m);if(C.length>0)for(var T=0;T0&&(e.onDeqd(a,h),!u&&e.shouldRedraw(a,h,p,m)&&i())},"dequeue"),o=e.priority||eo;n.beforeRender(s,o(a))}},"setupDequeueingImpl")},"setupDequeueing")},iy=(function(){function r(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:En;gt(this,r),this.idsByKey=new Yr,this.keyForId=new Yr,this.cachesByLvl=new Yr,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=t}return v(r,"ElementTextureCacheLookup"),pt(r,[{key:"getIdsFor",value:v(function(t){t==null&&Ue("Can not get id list for null key");var a=this.idsByKey,n=this.idsByKey.get(t);return n||(n=new ta,a.set(t,n)),n},"getIdsFor")},{key:"addIdForKey",value:v(function(t,a){t!=null&&this.getIdsFor(t).add(a)},"addIdForKey")},{key:"deleteIdForKey",value:v(function(t,a){t!=null&&this.getIdsFor(t).delete(a)},"deleteIdForKey")},{key:"getNumberOfIdsForKey",value:v(function(t){return t==null?0:this.getIdsFor(t).size},"getNumberOfIdsForKey")},{key:"updateKeyMappingFor",value:v(function(t){var a=t.id(),n=this.keyForId.get(a),i=this.getKey(t);this.deleteIdForKey(n,a),this.addIdForKey(i,a),this.keyForId.set(a,i)},"updateKeyMappingFor")},{key:"deleteKeyMappingFor",value:v(function(t){var a=t.id(),n=this.keyForId.get(a);this.deleteIdForKey(n,a),this.keyForId.delete(a)},"deleteKeyMappingFor")},{key:"keyHasChangedFor",value:v(function(t){var a=t.id(),n=this.keyForId.get(a),i=this.getKey(t);return n!==i},"keyHasChangedFor")},{key:"isInvalid",value:v(function(t){return this.keyHasChangedFor(t)||this.doesEleInvalidateKey(t)},"isInvalid")},{key:"getCachesAt",value:v(function(t){var a=this.cachesByLvl,n=this.lvls,i=a.get(t);return i||(i=new Yr,a.set(t,i),n.push(t)),i},"getCachesAt")},{key:"getCache",value:v(function(t,a){return this.getCachesAt(a).get(t)},"getCache")},{key:"get",value:v(function(t,a){var n=this.getKey(t),i=this.getCache(n,a);return i!=null&&this.updateKeyMappingFor(t),i},"get")},{key:"getForCachedKey",value:v(function(t,a){var n=this.keyForId.get(t.id()),i=this.getCache(n,a);return i},"getForCachedKey")},{key:"hasCache",value:v(function(t,a){return this.getCachesAt(a).has(t)},"hasCache")},{key:"has",value:v(function(t,a){var n=this.getKey(t);return this.hasCache(n,a)},"has")},{key:"setCache",value:v(function(t,a,n){n.key=t,this.getCachesAt(a).set(t,n)},"setCache")},{key:"set",value:v(function(t,a,n){var i=this.getKey(t);this.setCache(i,a,n),this.updateKeyMappingFor(t)},"set")},{key:"deleteCache",value:v(function(t,a){this.getCachesAt(a).delete(t)},"deleteCache")},{key:"delete",value:v(function(t,a){var n=this.getKey(t);this.deleteCache(n,a)},"_delete")},{key:"invalidateKey",value:v(function(t){var a=this;this.lvls.forEach(function(n){return a.deleteCache(t,n)})},"invalidateKey")},{key:"invalidate",value:v(function(t){var a=t.id(),n=this.keyForId.get(a);this.deleteKeyMappingFor(t);var i=this.doesEleInvalidateKey(t);return i&&this.invalidateKey(n),i||this.getNumberOfIdsForKey(n)===0},"invalidate")}])})(),zl=25,sn=50,yn=-4,Ws=3,kf=7.99,sy=8,oy=1024,uy=1024,ly=1024,vy=.2,fy=.8,cy=10,dy=.15,hy=.1,gy=.9,py=.9,yy=100,my=1,Kt={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},by=dr({getKey:null,doesEleInvalidateKey:En,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:hv,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),wa=v(function(e,t){var a=this;a.renderer=e,a.onDequeues=[];var n=by(t);we(a,n),a.lookup=new iy(n.getKey,n.doesEleInvalidateKey),a.setupDequeueing()},"ElementTextureCache"),ir=wa.prototype;ir.reasons=Kt;ir.getTextureQueue=function(r){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[r]=e.eleImgCaches[r]||[]};ir.getRetiredTextureQueue=function(r){var e=this,t=e.eleImgCaches.retired=e.eleImgCaches.retired||{},a=t[r]=t[r]||[];return a};ir.getElementQueue=function(){var r=this,e=r.eleCacheQueue=r.eleCacheQueue||new qa(function(t,a){return a.reqs-t.reqs});return e};ir.getElementKeyToQueue=function(){var r=this,e=r.eleKeyToCacheQueue=r.eleKeyToCacheQueue||{};return e};ir.getElement=function(r,e,t,a,n){var i=this,s=this.renderer,o=s.cy.zoom(),l=this.lookup;if(!e||e.w===0||e.h===0||isNaN(e.w)||isNaN(e.h)||!r.visible()||r.removed()||!i.allowEdgeTxrCaching&&r.isEdge()||!i.allowParentTxrCaching&&r.isParent())return null;if(a==null&&(a=Math.ceil(to(o*t))),a=kf||a>Ws)return null;var u=Math.pow(2,a),f=e.h*u,c=e.w*u,d=s.eleTextBiggerThanMin(r,u);if(!this.isVisible(r,d))return null;var g=l.get(r,a);if(g&&g.invalidated&&(g.invalidated=!1,g.texture.invalidatedWidth-=g.width),g)return g;var h;if(f<=zl?h=zl:f<=sn?h=sn:h=Math.ceil(f/sn)*sn,f>ly||c>uy)return null;var m=i.getTextureQueue(h),p=m[m.length-2],y=v(function(){return i.recycleTexture(h,c)||i.addTexture(h,c)},"addNewTxr");p||(p=m[m.length-1]),p||(p=y()),p.width-p.usedWidtha;P--)D=i.getElement(r,e,t,P,Kt.downscale);B()}else return i.queueElement(r,T.level-1),T;else{var A;if(!w&&!x&&!C)for(var R=a-1;R>=yn;R--){var M=l.get(r,R);if(M){A=M;break}}if(b(A))return i.queueElement(r,a),A;p.context.translate(p.usedWidth,0),p.context.scale(u,u),this.drawElement(p.context,r,e,d,!1),p.context.scale(1/u,1/u),p.context.translate(-p.usedWidth,0)}return g={x:p.usedWidth,texture:p,level:a,scale:u,width:c,height:f,scaledLabelShown:d},p.usedWidth+=Math.ceil(c+sy),p.eleCaches.push(g),l.set(r,a,g),i.checkTextureFullness(p),g};ir.invalidateElements=function(r){for(var e=0;e=vy*r.width&&this.retireTexture(r)};ir.checkTextureFullness=function(r){var e=this,t=e.getTextureQueue(r.height);r.usedWidth/r.width>fy&&r.fullnessChecks>=cy?vt(t,r):r.fullnessChecks++};ir.retireTexture=function(r){var e=this,t=r.height,a=e.getTextureQueue(t),n=this.lookup;vt(a,r),r.retired=!0;for(var i=r.eleCaches,s=0;s=e)return s.retired=!1,s.usedWidth=0,s.invalidatedWidth=0,s.fullnessChecks=0,ro(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),vt(n,s),a.push(s),s}};ir.queueElement=function(r,e){var t=this,a=t.getElementQueue(),n=t.getElementKeyToQueue(),i=this.getKey(r),s=n[i];if(s)s.level=Math.max(s.level,e),s.eles.merge(r),s.reqs++,a.updateItem(s);else{var o={eles:r.spawn().merge(r),level:e,reqs:1,key:i};a.push(o),n[i]=o}};ir.dequeue=function(r){for(var e=this,t=e.getElementQueue(),a=e.getElementKeyToQueue(),n=[],i=e.lookup,s=0;s0;s++){var o=t.pop(),l=o.key,u=o.eles[0],f=i.hasCache(u,o.level);if(a[l]=null,f)continue;n.push(o);var c=e.getBoundingBox(u);e.getElement(u,c,r,o.level,Kt.dequeue)}return n};ir.removeFromQueue=function(r){var e=this,t=e.getElementQueue(),a=e.getElementKeyToQueue(),n=this.getKey(r),i=a[n];i!=null&&(i.eles.length===1?(i.reqs=js,t.updateItem(i),t.pop(),a[n]=null):i.eles.unmerge(r))};ir.onDequeue=function(r){this.onDequeues.push(r)};ir.offDequeue=function(r){vt(this.onDequeues,r)};ir.setupDequeueing=Sf.setupDequeueing({deqRedrawThreshold:yy,deqCost:dy,deqAvgCost:hy,deqNoDrawCost:gy,deqFastCost:py,deq:v(function(e,t,a){return e.dequeue(t,a)},"deq"),onDeqd:v(function(e,t){for(var a=0;a=xy||t>An)return null}a.validateLayersElesOrdering(t,r);var l=a.layersByLevel,u=Math.pow(2,t),f=l[t]=l[t]||[],c,d=a.levelIsComplete(t,r),g,h=v(function(){var B=v(function(I){if(a.validateLayersElesOrdering(I,r),a.levelIsComplete(I,r))return g=l[I],!0},"canUseAsTmpLvl"),P=v(function(I){if(!g)for(var O=t+I;Ea<=O&&O<=An&&!B(O);O+=I);},"checkLvls");P(1),P(-1);for(var A=f.length-1;A>=0;A--){var R=f[A];R.invalid&&vt(f,R)}},"checkTempLevels");if(!d)h();else return f;var m=v(function(){if(!c){c=xr();for(var B=0;BVl||R>Vl)return null;var M=A*R;if(M>Py)return null;var I=a.makeLayer(c,t);if(P!=null){var O=f.indexOf(P)+1;f.splice(O,0,I)}else(B.insert===void 0||B.insert)&&f.unshift(I);return I},"makeLayer");if(a.skipping&&!o)return null;for(var y=null,b=r.length/wy,w=!o,x=0;x=b||!wv(y.bb,C.boundingBox()))&&(y=p({insert:!0,after:y}),!y))return null;g||w?a.queueLayer(y,C):a.drawEleInLayer(y,C,t,e),y.eles.push(C),E[t]=y}return g||(w?null:f)};hr.getEleLevelForLayerLevel=function(r,e){return r};hr.drawEleInLayer=function(r,e,t,a){var n=this,i=this.renderer,s=r.context,o=e.boundingBox();o.w===0||o.h===0||!e.visible()||(t=n.getEleLevelForLayerLevel(t,a),i.setImgSmoothing(s,!1),i.drawCachedElement(s,e,null,null,t,Ay),i.setImgSmoothing(s,!0))};hr.levelIsComplete=function(r,e){var t=this,a=t.layersByLevel[r];if(!a||a.length===0)return!1;for(var n=0,i=0;i0||s.invalid)return!1;n+=s.eles.length}return n===e.length};hr.validateLayersElesOrdering=function(r,e){var t=this.layersByLevel[r];if(t)for(var a=0;a0){e=!0;break}}return e};hr.invalidateElements=function(r){var e=this;r.length!==0&&(e.lastInvalidationTime=Zr(),!(r.length===0||!e.haveLayers())&&e.updateElementsInLayers(r,v(function(a,n,i){e.invalidateLayer(a)},"invalAssocLayers")))};hr.invalidateLayer=function(r){if(this.lastInvalidationTime=Zr(),!r.invalid){var e=r.level,t=r.eles,a=this.layersByLevel[e];vt(a,r),r.elesQueue=[],r.invalid=!0,r.replacement&&(r.replacement.invalid=!0);for(var n=0;n3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,o=e._private.rscratch;if(!(i&&!e.visible())&&!(o.badLine||o.allpts==null||isNaN(o.allpts[0]))){var l;t&&(l=t,r.translate(-l.x1,-l.y1));var u=i?e.pstyle("opacity").value:1,f=i?e.pstyle("line-opacity").value:1,c=e.pstyle("curve-style").value,d=e.pstyle("line-style").value,g=e.pstyle("width").pfValue,h=e.pstyle("line-cap").value,m=e.pstyle("line-outline-width").value,p=e.pstyle("line-outline-color").value,y=u*f,b=u*f,w=v(function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:y;c==="straight-triangle"?(s.eleStrokeStyle(r,e,I),s.drawEdgeTrianglePath(e,r,o.allpts)):(r.lineWidth=g,r.lineCap=h,s.eleStrokeStyle(r,e,I),s.drawEdgePath(e,r,o.allpts,d),r.lineCap="butt")},"drawLine"),x=v(function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:y;if(r.lineWidth=g+m,r.lineCap=h,m>0)s.colorStrokeStyle(r,p[0],p[1],p[2],I);else{r.lineCap="butt";return}c==="straight-triangle"?s.drawEdgeTrianglePath(e,r,o.allpts):(s.drawEdgePath(e,r,o.allpts,d),r.lineCap="butt")},"drawLineOutline"),C=v(function(){n&&s.drawEdgeOverlay(r,e)},"drawOverlay"),T=v(function(){n&&s.drawEdgeUnderlay(r,e)},"drawUnderlay"),E=v(function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:b;s.drawArrowheads(r,e,I)},"drawArrows"),S=v(function(){s.drawElementText(r,e,null,a)},"drawText");r.lineJoin="round";var D=e.pstyle("ghost").value==="yes";if(D){var B=e.pstyle("ghost-offset-x").pfValue,P=e.pstyle("ghost-offset-y").pfValue,A=e.pstyle("ghost-opacity").value,R=y*A;r.translate(B,P),w(R),E(R),r.translate(-B,-P)}else x();T(),w(),E(),C(),S(),t&&r.translate(l.x1,l.y1)}};var Pf=v(function(e){if(!["overlay","underlay"].includes(e))throw new Error("Invalid state");return function(t,a){if(a.visible()){var n=a.pstyle("".concat(e,"-opacity")).value;if(n!==0){var i=this,s=i.usePaths(),o=a._private.rscratch,l=a.pstyle("".concat(e,"-padding")).pfValue,u=2*l,f=a.pstyle("".concat(e,"-color")).value;t.lineWidth=u,o.edgeType==="self"&&!s?t.lineCap="butt":t.lineCap="round",i.colorStrokeStyle(t,f[0],f[1],f[2],n),i.drawEdgePath(a,t,o.allpts,"solid")}}}},"drawEdgeOverlayUnderlay");jr.drawEdgeOverlay=Pf("overlay");jr.drawEdgeUnderlay=Pf("underlay");jr.drawEdgePath=function(r,e,t,a){var n=r._private.rscratch,i=e,s,o=!1,l=this.usePaths(),u=r.pstyle("line-dash-pattern").pfValue,f=r.pstyle("line-dash-offset").pfValue;if(l){var c=t.join("$"),d=n.pathCacheKey&&n.pathCacheKey===c;d?(s=e=n.pathCache,o=!0):(s=e=new Path2D,n.pathCacheKey=c,n.pathCache=s)}if(i.setLineDash)switch(a){case"dotted":i.setLineDash([1,1]);break;case"dashed":i.setLineDash(u),i.lineDashOffset=f;break;case"solid":i.setLineDash([]);break}if(!o&&!n.badLine)switch(e.beginPath&&e.beginPath(),e.moveTo(t[0],t[1]),n.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var g=2;g+35&&arguments[5]!==void 0?arguments[5]:!0,s=this;if(a==null){if(i&&!s.eleTextBiggerThanMin(e))return}else if(a===!1)return;if(e.isNode()){var o=e.pstyle("label");if(!o||!o.value)return;var l=s.getLabelJustification(e);r.textAlign=l,r.textBaseline="bottom"}else{var u=e.element()._private.rscratch.badLine,f=e.pstyle("label"),c=e.pstyle("source-label"),d=e.pstyle("target-label");if(u||(!f||!f.value)&&(!c||!c.value)&&(!d||!d.value))return;r.textAlign="center",r.textBaseline="bottom"}var g=!t,h;t&&(h=t,r.translate(-h.x1,-h.y1)),n==null?(s.drawText(r,e,null,g,i),e.isEdge()&&(s.drawText(r,e,"source",g,i),s.drawText(r,e,"target",g,i))):s.drawText(r,e,n,g,i),t&&r.translate(h.x1,h.y1)};Ot.getFontCache=function(r){var e;this.fontCaches=this.fontCaches||[];for(var t=0;t2&&arguments[2]!==void 0?arguments[2]:!0,a=e.pstyle("font-style").strValue,n=e.pstyle("font-size").pfValue+"px",i=e.pstyle("font-family").strValue,s=e.pstyle("font-weight").strValue,o=t?e.effectiveOpacity()*e.pstyle("text-opacity").value:1,l=e.pstyle("text-outline-opacity").value*o,u=e.pstyle("color").value,f=e.pstyle("text-outline-color").value;r.font=a+" "+s+" "+n+" "+i,r.lineJoin="round",this.colorFillStyle(r,u[0],u[1],u[2],o),this.colorStrokeStyle(r,f[0],f[1],f[2],l)};function _y(r,e,t,a,n){var i=Math.min(a,n),s=i/2,o=e+a/2,l=t+n/2;r.beginPath(),r.arc(o,l,s,0,Math.PI*2),r.closePath()}v(_y,"circle");function Hl(r,e,t,a,n){var i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:5,s=Math.min(i,a/2,n/2);r.beginPath(),r.moveTo(e+s,t),r.lineTo(e+a-s,t),r.quadraticCurveTo(e+a,t,e+a,t+s),r.lineTo(e+a,t+n-s),r.quadraticCurveTo(e+a,t+n,e+a-s,t+n),r.lineTo(e+s,t+n),r.quadraticCurveTo(e,t+n,e,t+n-s),r.lineTo(e,t+s),r.quadraticCurveTo(e,t,e+s,t),r.closePath()}v(Hl,"roundRect");Ot.getTextAngle=function(r,e){var t,a=r._private,n=a.rscratch,i=e?e+"-":"",s=r.pstyle(i+"text-rotation");if(s.strValue==="autorotate"){var o=Sr(n,"labelAngle",e);t=r.isEdge()?o:0}else s.strValue==="none"?t=0:t=s.pfValue;return t};Ot.drawText=function(r,e,t){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=e._private,s=i.rscratch,o=n?e.effectiveOpacity():1;if(!(n&&(o===0||e.pstyle("text-opacity").value===0))){t==="main"&&(t=null);var l=Sr(s,"labelX",t),u=Sr(s,"labelY",t),f,c,d=this.getLabelText(e,t);if(d!=null&&d!==""&&!isNaN(l)&&!isNaN(u)){this.setupTextStyle(r,e,n);var g=t?t+"-":"",h=Sr(s,"labelWidth",t),m=Sr(s,"labelHeight",t),p=e.pstyle(g+"text-margin-x").pfValue,y=e.pstyle(g+"text-margin-y").pfValue,b=e.isEdge(),w=e.pstyle("text-halign").value,x=e.pstyle("text-valign").value;b&&(w="center",x="center"),l+=p,u+=y;var C;switch(a?C=this.getTextAngle(e,t):C=0,C!==0&&(f=l,c=u,r.translate(f,c),r.rotate(C),l=0,u=0),x){case"top":break;case"center":u+=m/2;break;case"bottom":u+=m;break}var T=e.pstyle("text-background-opacity").value,E=e.pstyle("text-border-opacity").value,S=e.pstyle("text-border-width").pfValue,D=e.pstyle("text-background-padding").pfValue,B=e.pstyle("text-background-shape").strValue,P=B==="round-rectangle"||B==="roundrectangle",A=B==="circle",R=2;if(T>0||S>0&&E>0){var M=r.fillStyle,I=r.strokeStyle,O=r.lineWidth,L=e.pstyle("text-background-color").value,N=e.pstyle("text-border-color").value,q=e.pstyle("text-border-style").value,H=T>0,z=S>0&&E>0,V=l-D;switch(w){case"left":V-=h;break;case"center":V-=h/2;break}var K=u-m-D,J=h+2*D,X=m+2*D;if(H&&(r.fillStyle="rgba(".concat(L[0],",").concat(L[1],",").concat(L[2],",").concat(T*o,")")),z&&(r.strokeStyle="rgba(".concat(N[0],",").concat(N[1],",").concat(N[2],",").concat(E*o,")"),r.lineWidth=S,r.setLineDash))switch(q){case"dotted":r.setLineDash([1,1]);break;case"dashed":r.setLineDash([4,2]);break;case"double":r.lineWidth=S/4,r.setLineDash([]);break;case"solid":default:r.setLineDash([]);break}if(P?(r.beginPath(),Hl(r,V,K,J,X,R)):A?(r.beginPath(),_y(r,V,K,J,X)):(r.beginPath(),r.rect(V,K,J,X)),H&&r.fill(),z&&r.stroke(),z&&q==="double"){var ee=S/2;r.beginPath(),P?Hl(r,V+ee,K+ee,J-2*ee,X-2*ee,R):r.rect(V+ee,K+ee,J-2*ee,X-2*ee),r.stroke()}r.fillStyle=M,r.strokeStyle=I,r.lineWidth=O,r.setLineDash&&r.setLineDash([])}var te=2*e.pstyle("text-outline-width").pfValue;if(te>0&&(r.lineWidth=te),e.pstyle("text-wrap").value==="wrap"){var ie=Sr(s,"labelWrapCachedLines",t),j=Sr(s,"labelLineHeight",t),F=h/2,_=this.getLabelJustification(e);switch(_==="auto"||(w==="left"?_==="left"?l+=-h:_==="center"&&(l+=-F):w==="center"?_==="left"?l+=-F:_==="right"&&(l+=F):w==="right"&&(_==="center"?l+=F:_==="right"&&(l+=h))),x){case"top":u-=(ie.length-1)*j;break;case"center":case"bottom":u-=(ie.length-1)*j;break}for(var W=0;W0&&r.strokeText(ie[W],l,u),r.fillText(ie[W],l,u),u+=j}else te>0&&r.strokeText(d,l,u),r.fillText(d,l,u);C!==0&&(r.rotate(-C),r.translate(-f,-c))}}};var mt={};mt.drawNode=function(r,e,t){var a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=arguments.length>5&&arguments[5]!==void 0?arguments[5]:!0,s=this,o,l,u=e._private,f=u.rscratch,c=e.position();if(!(!ne(c.x)||!ne(c.y))&&!(i&&!e.visible())){var d=i?e.effectiveOpacity():1,g=s.usePaths(),h,m=!1,p=e.padding();o=e.width()+2*p,l=e.height()+2*p;var y;t&&(y=t,r.translate(-y.x1,-y.y1));for(var b=e.pstyle("background-image"),w=b.value,x=new Array(w.length),C=new Array(w.length),T=0,E=0;E0&&arguments[0]!==void 0?arguments[0]:R;s.eleFillStyle(r,e,le)},"setupShapeColor"),j=v(function(){var le=arguments.length>0&&arguments[0]!==void 0?arguments[0]:z;s.colorStrokeStyle(r,M[0],M[1],M[2],le)},"setupBorderColor"),F=v(function(){var le=arguments.length>0&&arguments[0]!==void 0?arguments[0]:X;s.colorStrokeStyle(r,K[0],K[1],K[2],le)},"setupOutlineColor"),_=v(function(le,Y,k,G){var $=s.nodePathCache=s.nodePathCache||[],U=dv(k==="polygon"?k+","+G.join(","):k,""+Y,""+le,""+te),Q=$[U],ue,re=!1;return Q!=null?(ue=Q,re=!0,f.pathCache=ue):(ue=new Path2D,$[U]=f.pathCache=ue),{path:ue,cacheHit:re}},"getPath"),W=e.pstyle("shape").strValue,Z=e.pstyle("shape-polygon-points").pfValue;if(g){r.translate(c.x,c.y);var ae=_(o,l,W,Z);h=ae.path,m=ae.cacheHit}var de=v(function(){if(!m){var le=c;g&&(le={x:0,y:0}),s.nodeShapes[s.getNodeShape(e)].draw(h||r,le.x,le.y,o,l,te,f)}g?r.fill(h):r.fill()},"drawShape"),Re=v(function(){for(var le=arguments.length>0&&arguments[0]!==void 0?arguments[0]:d,Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,k=u.backgrounding,G=0,$=0;$0&&arguments[0]!==void 0?arguments[0]:!1,Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:d;s.hasPie(e)&&(s.drawPie(r,e,Y),le&&(g||s.nodeShapes[s.getNodeShape(e)].draw(r,c.x,c.y,o,l,te,f)))},"drawPie"),xe=v(function(){var le=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:d;s.hasStripe(e)&&(r.save(),g?r.clip(f.pathCache):(s.nodeShapes[s.getNodeShape(e)].draw(r,c.x,c.y,o,l,te,f),r.clip()),s.drawStripe(r,e,Y),r.restore(),le&&(g||s.nodeShapes[s.getNodeShape(e)].draw(r,c.x,c.y,o,l,te,f)))},"drawStripe"),me=v(function(){var le=arguments.length>0&&arguments[0]!==void 0?arguments[0]:d,Y=(P>0?P:-P)*le,k=P>0?0:255;P!==0&&(s.colorFillStyle(r,k,k,k,Y),g?r.fill(h):r.fill())},"darken"),se=v(function(){if(A>0){if(r.lineWidth=A,r.lineCap=L,r.lineJoin=O,r.setLineDash)switch(I){case"dotted":r.setLineDash([1,1]);break;case"dashed":r.setLineDash(q),r.lineDashOffset=H;break;case"solid":case"double":r.setLineDash([]);break}if(N!=="center"){if(r.save(),r.lineWidth*=2,N==="inside")g?r.clip(h):r.clip();else{var le=new Path2D;le.rect(-o/2-A,-l/2-A,o+2*A,l+2*A),le.addPath(h),r.clip(le,"evenodd")}g?r.stroke(h):r.stroke(),r.restore()}else g?r.stroke(h):r.stroke();if(I==="double"){r.lineWidth=A/3;var Y=r.globalCompositeOperation;r.globalCompositeOperation="destination-out",g?r.stroke(h):r.stroke(),r.globalCompositeOperation=Y}r.setLineDash&&r.setLineDash([])}},"drawBorder"),he=v(function(){if(V>0){if(r.lineWidth=V,r.lineCap="butt",r.setLineDash)switch(J){case"dotted":r.setLineDash([1,1]);break;case"dashed":r.setLineDash([4,2]);break;case"solid":case"double":r.setLineDash([]);break}var le=c;g&&(le={x:0,y:0});var Y=s.getNodeShape(e),k=A;N==="inside"&&(k=0),N==="outside"&&(k*=2);var G=(o+k+(V+ee))/o,$=(l+k+(V+ee))/l,U=o*G,Q=l*$,ue=s.nodeShapes[Y].points,re;if(g){var fe=_(U,Q,Y,ue);re=fe.path}if(Y==="ellipse")s.drawEllipsePath(re||r,le.x,le.y,U,Q);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(Y)){var ve=0,be=0,Be=0;Y==="round-diamond"?ve=(k+ee+V)*1.4:Y==="round-heptagon"?(ve=(k+ee+V)*1.075,Be=-(k/2+ee+V)/35):Y==="round-hexagon"?ve=(k+ee+V)*1.12:Y==="round-pentagon"?(ve=(k+ee+V)*1.13,Be=-(k/2+ee+V)/15):Y==="round-tag"?(ve=(k+ee+V)*1.12,be=(k/2+V+ee)*.07):Y==="round-triangle"&&(ve=(k+ee+V)*(Math.PI/2),Be=-(k+ee/2+V)/Math.PI),ve!==0&&(G=(o+ve)/o,U=o*G,["round-hexagon","round-tag"].includes(Y)||($=(l+ve)/l,Q=l*$)),te=te==="auto"?Cv(U,Q):te;for(var Se=U/2,ce=Q/2,Ae=te+(k+V+ee)/2,Pe=new Array(ue.length/2),er=new Array(ue.length/2),Xe=0;Xe0){if(n=n||a.position(),i==null||s==null){var g=a.padding();i=a.width()+2*g,s=a.height()+2*g}o.colorFillStyle(t,f[0],f[1],f[2],u),o.nodeShapes[c].draw(t,n.x,n.y,i+l*2,s+l*2,d),t.fill()}}}},"drawNodeOverlayUnderlay");mt.drawNodeOverlay=Af("overlay");mt.drawNodeUnderlay=Af("underlay");mt.hasPie=function(r){return r=r[0],r._private.hasPie};mt.hasStripe=function(r){return r=r[0],r._private.hasStripe};mt.drawPie=function(r,e,t,a){e=e[0],a=a||e.position();var n=e.cy().style(),i=e.pstyle("pie-size"),s=e.pstyle("pie-hole"),o=e.pstyle("pie-start-angle").pfValue,l=a.x,u=a.y,f=e.width(),c=e.height(),d=Math.min(f,c)/2,g,h=0,m=this.usePaths();if(m&&(l=0,u=0),i.units==="%"?d=d*i.pfValue:i.pfValue!==void 0&&(d=i.pfValue/2),s.units==="%"?g=d*s.pfValue:s.pfValue!==void 0&&(g=s.pfValue/2),!(g>=d))for(var p=1;p<=n.pieBackgroundN;p++){var y=e.pstyle("pie-"+p+"-background-size").value,b=e.pstyle("pie-"+p+"-background-color").value,w=e.pstyle("pie-"+p+"-background-opacity").value*t,x=y/100;x+h>1&&(x=1-h);var C=1.5*Math.PI+2*Math.PI*h;C+=o;var T=2*Math.PI*x,E=C+T;y===0||h>=1||h+x>1||(g===0?(r.beginPath(),r.moveTo(l,u),r.arc(l,u,d,C,E),r.closePath()):(r.beginPath(),r.arc(l,u,d,C,E),r.arc(l,u,g,E,C,!0),r.closePath()),this.colorFillStyle(r,b[0],b[1],b[2],w),r.fill(),h+=x)}};mt.drawStripe=function(r,e,t,a){e=e[0],a=a||e.position();var n=e.cy().style(),i=a.x,s=a.y,o=e.width(),l=e.height(),u=0,f=this.usePaths();r.save();var c=e.pstyle("stripe-direction").value,d=e.pstyle("stripe-size");switch(c){case"vertical":break;case"righward":r.rotate(-Math.PI/2);break}var g=o,h=l;d.units==="%"?(g=g*d.pfValue,h=h*d.pfValue):d.pfValue!==void 0&&(g=d.pfValue,h=d.pfValue),f&&(i=0,s=0),s-=g/2,i-=h/2;for(var m=1;m<=n.stripeBackgroundN;m++){var p=e.pstyle("stripe-"+m+"-background-size").value,y=e.pstyle("stripe-"+m+"-background-color").value,b=e.pstyle("stripe-"+m+"-background-opacity").value*t,w=p/100;w+u>1&&(w=1-u),!(p===0||u>=1||u+w>1)&&(r.beginPath(),r.rect(i,s+h*u,g,h*w),r.closePath(),this.colorFillStyle(r,y[0],y[1],y[2],b),r.fill(),u+=w)}r.restore()};var Er={},Gy=100;Er.getPixelRatio=function(){var r=this.data.contexts[0];if(this.forcedPixelRatio!=null)return this.forcedPixelRatio;var e=this.cy.window(),t=r.backingStorePixelRatio||r.webkitBackingStorePixelRatio||r.mozBackingStorePixelRatio||r.msBackingStorePixelRatio||r.oBackingStorePixelRatio||r.backingStorePixelRatio||1;return(e.devicePixelRatio||1)/t};Er.paintCache=function(r){for(var e=this.paintCaches=this.paintCaches||[],t=!0,a,n=0;ne.minMbLowQualFrames&&(e.motionBlurPxRatio=e.mbPxRBlurry)),e.clearingMotionBlur&&(e.motionBlurPxRatio=1),e.textureDrawLastFrame&&!c&&(f[e.NODE]=!0,f[e.SELECT_BOX]=!0);var b=t.style(),w=t.zoom(),x=s!==void 0?s:w,C=t.pan(),T={x:C.x,y:C.y},E={zoom:w,pan:{x:C.x,y:C.y}},S=e.prevViewport,D=S===void 0||E.zoom!==S.zoom||E.pan.x!==S.pan.x||E.pan.y!==S.pan.y;!D&&!(m&&!h)&&(e.motionBlurPxRatio=1),o&&(T=o),x*=l,T.x*=l,T.y*=l;var B=e.getCachedZSortedEles();function P(j,F,_,W,Z){var ae=j.globalCompositeOperation;j.globalCompositeOperation="destination-out",e.colorFillStyle(j,255,255,255,e.motionBlurTransparency),j.fillRect(F,_,W,Z),j.globalCompositeOperation=ae}v(P,"mbclear");function A(j,F){var _,W,Z,ae;!e.clearingMotionBlur&&(j===u.bufferContexts[e.MOTIONBLUR_BUFFER_NODE]||j===u.bufferContexts[e.MOTIONBLUR_BUFFER_DRAG])?(_={x:C.x*g,y:C.y*g},W=w*g,Z=e.canvasWidth*g,ae=e.canvasHeight*g):(_=T,W=x,Z=e.canvasWidth,ae=e.canvasHeight),j.setTransform(1,0,0,1,0,0),F==="motionBlur"?P(j,0,0,Z,ae):!a&&(F===void 0||F)&&j.clearRect(0,0,Z,ae),n||(j.translate(_.x,_.y),j.scale(W,W)),o&&j.translate(o.x,o.y),s&&j.scale(s,s)}if(v(A,"setContextTransform"),c||(e.textureDrawLastFrame=!1),c){if(e.textureDrawLastFrame=!0,!e.textureCache){e.textureCache={},e.textureCache.bb=t.mutableElements().boundingBox(),e.textureCache.texture=e.data.bufferCanvases[e.TEXTURE_BUFFER];var R=e.data.bufferContexts[e.TEXTURE_BUFFER];R.setTransform(1,0,0,1,0,0),R.clearRect(0,0,e.canvasWidth*e.textureMult,e.canvasHeight*e.textureMult),e.render({forcedContext:R,drawOnlyNodeLayer:!0,forcedPxRatio:l*e.textureMult});var E=e.textureCache.viewport={zoom:t.zoom(),pan:t.pan(),width:e.canvasWidth,height:e.canvasHeight};E.mpan={x:(0-E.pan.x)/E.zoom,y:(0-E.pan.y)/E.zoom}}f[e.DRAG]=!1,f[e.NODE]=!1;var M=u.contexts[e.NODE],I=e.textureCache.texture,E=e.textureCache.viewport;M.setTransform(1,0,0,1,0,0),d?P(M,0,0,E.width,E.height):M.clearRect(0,0,E.width,E.height);var O=b.core("outside-texture-bg-color").value,L=b.core("outside-texture-bg-opacity").value;e.colorFillStyle(M,O[0],O[1],O[2],L),M.fillRect(0,0,E.width,E.height);var w=t.zoom();A(M,!1),M.clearRect(E.mpan.x,E.mpan.y,E.width/E.zoom/l,E.height/E.zoom/l),M.drawImage(I,E.mpan.x,E.mpan.y,E.width/E.zoom/l,E.height/E.zoom/l)}else e.textureOnViewport&&!a&&(e.textureCache=null);var N=t.extent(),q=e.pinching||e.hoverData.dragging||e.swipePanning||e.data.wheelZooming||e.hoverData.draggingEles||e.cy.animated(),H=e.hideEdgesOnViewport&&q,z=[];if(z[e.NODE]=!f[e.NODE]&&d&&!e.clearedForMotionBlur[e.NODE]||e.clearingMotionBlur,z[e.NODE]&&(e.clearedForMotionBlur[e.NODE]=!0),z[e.DRAG]=!f[e.DRAG]&&d&&!e.clearedForMotionBlur[e.DRAG]||e.clearingMotionBlur,z[e.DRAG]&&(e.clearedForMotionBlur[e.DRAG]=!0),f[e.NODE]||n||i||z[e.NODE]){var V=d&&!z[e.NODE]&&g!==1,M=a||(V?e.data.bufferContexts[e.MOTIONBLUR_BUFFER_NODE]:u.contexts[e.NODE]),K=d&&!V?"motionBlur":void 0;A(M,K),H?e.drawCachedNodes(M,B.nondrag,l,N):e.drawLayeredElements(M,B.nondrag,l,N),e.debug&&e.drawDebugPoints(M,B.nondrag),!n&&!d&&(f[e.NODE]=!1)}if(!i&&(f[e.DRAG]||n||z[e.DRAG])){var V=d&&!z[e.DRAG]&&g!==1,M=a||(V?e.data.bufferContexts[e.MOTIONBLUR_BUFFER_DRAG]:u.contexts[e.DRAG]);A(M,d&&!V?"motionBlur":void 0),H?e.drawCachedNodes(M,B.drag,l,N):e.drawCachedElements(M,B.drag,l,N),e.debug&&e.drawDebugPoints(M,B.drag),!n&&!d&&(f[e.DRAG]=!1)}if(this.drawSelectionRectangle(r,A),d&&g!==1){var J=u.contexts[e.NODE],X=e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE],ee=u.contexts[e.DRAG],te=e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG],ie=v(function(F,_,W){F.setTransform(1,0,0,1,0,0),W||!y?F.clearRect(0,0,e.canvasWidth,e.canvasHeight):P(F,0,0,e.canvasWidth,e.canvasHeight);var Z=g;F.drawImage(_,0,0,e.canvasWidth*Z,e.canvasHeight*Z,0,0,e.canvasWidth,e.canvasHeight)},"drawMotionBlur");(f[e.NODE]||z[e.NODE])&&(ie(J,X,z[e.NODE]),f[e.NODE]=!1),(f[e.DRAG]||z[e.DRAG])&&(ie(ee,te,z[e.DRAG]),f[e.DRAG]=!1)}e.prevViewport=E,e.clearingMotionBlur&&(e.clearingMotionBlur=!1,e.motionBlurCleared=!0,e.motionBlur=!0),d&&(e.motionBlurTimeout=setTimeout(function(){e.motionBlurTimeout=null,e.clearedForMotionBlur[e.NODE]=!1,e.clearedForMotionBlur[e.DRAG]=!1,e.motionBlur=!1,e.clearingMotionBlur=!c,e.mbFrames=0,f[e.NODE]=!0,f[e.DRAG]=!0,e.redraw()},Gy)),a||t.emit("render")};var ga;Er.drawSelectionRectangle=function(r,e){var t=this,a=t.cy,n=t.data,i=a.style(),s=r.drawOnlyNodeLayer,o=r.drawAllLayers,l=n.canvasNeedsRedraw,u=r.forcedContext;if(t.showFps||!s&&l[t.SELECT_BOX]&&!o){var f=u||n.contexts[t.SELECT_BOX];if(e(f),t.selection[4]==1&&(t.hoverData.selecting||t.touchData.selecting)){var c=t.cy.zoom(),d=i.core("selection-box-border-width").value/c;f.lineWidth=d,f.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+")",f.fillRect(t.selection[0],t.selection[1],t.selection[2]-t.selection[0],t.selection[3]-t.selection[1]),d>0&&(f.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+")",f.strokeRect(t.selection[0],t.selection[1],t.selection[2]-t.selection[0],t.selection[3]-t.selection[1]))}if(n.bgActivePosistion&&!t.hoverData.selecting){var c=t.cy.zoom(),g=n.bgActivePosistion;f.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+")",f.beginPath(),f.arc(g.x,g.y,i.core("active-bg-size").pfValue/c,0,2*Math.PI),f.fill()}var h=t.lastRedrawTime;if(t.showFps&&h){h=Math.round(h);var m=Math.round(1e3/h),p="1 frame = "+h+" ms = "+m+" fps";if(f.setTransform(1,0,0,1,0,0),f.fillStyle="rgba(255, 0, 0, 0.75)",f.strokeStyle="rgba(255, 0, 0, 0.75)",f.font="30px Arial",!ga){var y=f.measureText(p);ga=y.actualBoundingBoxAscent}f.fillText(p,0,ga);var b=60;f.strokeRect(0,ga+10,250,20),f.fillRect(0,ga+10,250*Math.min(m/b,1),20)}o||(l[t.SELECT_BOX]=!1)}};function Wl(r,e,t){var a=r.createShader(e);if(r.shaderSource(a,t),r.compileShader(a),!r.getShaderParameter(a,r.COMPILE_STATUS))throw new Error(r.getShaderInfoLog(a));return a}v(Wl,"compileShader");function Hy(r,e,t){var a=Wl(r,r.VERTEX_SHADER,e),n=Wl(r,r.FRAGMENT_SHADER,t),i=r.createProgram();if(r.attachShader(i,a),r.attachShader(i,n),r.linkProgram(i),!r.getProgramParameter(i,r.LINK_STATUS))throw new Error("Could not initialize shaders");return i}v(Hy,"createProgram");function Wy(r,e,t){t===void 0&&(t=e);var a=r.makeOffscreenCanvas(e,t),n=a.context=a.getContext("2d");return a.clear=function(){return n.clearRect(0,0,a.width,a.height)},a.clear(),a}v(Wy,"createTextureCanvas");function wo(r){var e=r.pixelRatio,t=r.cy.zoom(),a=r.cy.pan();return{zoom:t*e,pan:{x:a.x*e,y:a.y*e}}}v(wo,"getEffectivePanZoom");function $y(r){var e=r.pixelRatio,t=r.cy.zoom();return t*e}v($y,"getEffectiveZoom");function Uy(r,e,t,a,n){var i=a*t+e.x,s=n*t+e.y;return s=Math.round(r.canvasHeight-s),[i,s]}v(Uy,"modelToRenderedPosition");function Ky(r){return r.pstyle("background-fill").value!=="solid"||r.pstyle("background-image").strValue!=="none"?!1:r.pstyle("border-width").value===0||r.pstyle("border-opacity").value===0?!0:r.pstyle("border-style").value==="solid"}v(Ky,"isSimpleShape");function Xy(r,e){if(r.length!==e.length)return!1;for(var t=0;t>0&255)/255,t[1]=(r>>8&255)/255,t[2]=(r>>16&255)/255,t[3]=(r>>24&255)/255,t}v(Gt,"indexToVec4");function Yy(r){return r[0]+(r[1]<<8)+(r[2]<<16)+(r[3]<<24)}v(Yy,"vec4ToIndex");function Zy(r,e){var t=r.createTexture();return t.buffer=function(a){r.bindTexture(r.TEXTURE_2D,t),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR_MIPMAP_NEAREST),r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,a),r.generateMipmap(r.TEXTURE_2D),r.bindTexture(r.TEXTURE_2D,null)},t.deleteTexture=function(){r.deleteTexture(t)},t}v(Zy,"createTexture");function Rf(r,e){switch(e){case"float":return[1,r.FLOAT,4];case"vec2":return[2,r.FLOAT,4];case"vec3":return[3,r.FLOAT,4];case"vec4":return[4,r.FLOAT,4];case"int":return[1,r.INT,4];case"ivec2":return[2,r.INT,4]}}v(Rf,"getTypeInfo");function Mf(r,e,t){switch(e){case r.FLOAT:return new Float32Array(t);case r.INT:return new Int32Array(t)}}v(Mf,"createTypedArray");function Qy(r,e,t,a,n,i){switch(e){case r.FLOAT:return new Float32Array(t.buffer,i*a,n);case r.INT:return new Int32Array(t.buffer,i*a,n)}}v(Qy,"createTypedArrayView");function Jy(r,e,t,a){var n=Rf(r,e),i=je(n,2),s=i[0],o=i[1],l=Mf(r,o,a),u=r.createBuffer();return r.bindBuffer(r.ARRAY_BUFFER,u),r.bufferData(r.ARRAY_BUFFER,l,r.STATIC_DRAW),o===r.FLOAT?r.vertexAttribPointer(t,s,o,!1,0,0):o===r.INT&&r.vertexAttribIPointer(t,s,o,0,0),r.enableVertexAttribArray(t),r.bindBuffer(r.ARRAY_BUFFER,null),u}v(Jy,"createBufferStaticDraw");function Vr(r,e,t,a){var n=Rf(r,t),i=je(n,3),s=i[0],o=i[1],l=i[2],u=Mf(r,o,e*s),f=s*l,c=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,c),r.bufferData(r.ARRAY_BUFFER,e*f,r.DYNAMIC_DRAW),r.enableVertexAttribArray(a),o===r.FLOAT?r.vertexAttribPointer(a,s,o,!1,f,0):o===r.INT&&r.vertexAttribIPointer(a,s,o,f,0),r.vertexAttribDivisor(a,1),r.bindBuffer(r.ARRAY_BUFFER,null);for(var d=new Array(e),g=0;gs&&(o=s/a,l=a*o,u=n*o),{scale:o,texW:l,texH:u}},"getScale")},{key:"draw",value:v(function(t,a,n){var i=this;if(this.locked)throw new Error("can't draw, atlas is locked");var s=this.texSize,o=this.texRows,l=this.texHeight,u=this.getScale(a),f=u.scale,c=u.texW,d=u.texH,g=v(function(w,x){if(n&&x){var C=x.context,T=w.x,E=w.row,S=T,D=l*E;C.save(),C.translate(S,D),C.scale(f,f),n(C,a),C.restore()}},"drawAt"),h=[null,null],m=v(function(){g(i.freePointer,i.canvas),h[0]={x:i.freePointer.x,y:i.freePointer.row*l,w:c,h:d},h[1]={x:i.freePointer.x+c,y:i.freePointer.row*l,w:0,h:d},i.freePointer.x+=c,i.freePointer.x==s&&(i.freePointer.x=0,i.freePointer.row++)},"drawNormal"),p=v(function(){var w=i.scratch,x=i.canvas;w.clear(),g({x:0,row:0},w);var C=s-i.freePointer.x,T=c-C,E=l;{var S=i.freePointer.x,D=i.freePointer.row*l,B=C;x.context.drawImage(w,0,0,B,E,S,D,B,E),h[0]={x:S,y:D,w:B,h:d}}{var P=C,A=(i.freePointer.row+1)*l,R=T;x&&x.context.drawImage(w,P,0,R,E,0,A,R,E),h[1]={x:0,y:A,w:R,h:d}}i.freePointer.x=T,i.freePointer.row++},"drawWrapped"),y=v(function(){i.freePointer.x=0,i.freePointer.row++},"moveToStartOfNextRow");if(this.freePointer.x+c<=s)m();else{if(this.freePointer.row>=o-1)return!1;this.freePointer.x===s?(y(),m()):this.enableWrapping?p():(y(),m())}return this.keyToLocation.set(t,h),this.needsBuffer=!0,h},"draw")},{key:"getOffsets",value:v(function(t){return this.keyToLocation.get(t)},"getOffsets")},{key:"isEmpty",value:v(function(){return this.freePointer.x===0&&this.freePointer.row===0},"isEmpty")},{key:"canFit",value:v(function(t){if(this.locked)return!1;var a=this.texSize,n=this.texRows,i=this.getScale(t),s=i.texW;return this.freePointer.x+s>a?this.freePointer.row1&&arguments[1]!==void 0?arguments[1]:{},i=n.forceRedraw,s=i===void 0?!1:i,o=n.filterEle,l=o===void 0?function(){return!0}:o,u=n.filterType,f=u===void 0?function(){return!0}:u,c=!1,d=!1,g=Dr(t),h;try{for(g.s();!(h=g.n()).done;){var m=h.value;if(l(m)){var p=Dr(this.renderTypes.values()),y;try{var b=v(function(){var x=y.value,C=x.type;if(f(C)){var T=a.collections.get(x.collection),E=x.getKey(m),S=Array.isArray(E)?E:[E];if(s)S.forEach(function(A){return T.markKeyForGC(A)}),d=!0;else{var D=x.getID?x.getID(m):m.id(),B=a._key(C,D),P=a.typeAndIdToKey.get(B);P!==void 0&&!Xy(S,P)&&(c=!0,a.typeAndIdToKey.delete(B),P.forEach(function(A){return T.markKeyForGC(A)}))}}},"_loop2");for(p.s();!(y=p.n()).done;)b()}catch(w){p.e(w)}finally{p.f()}}}}catch(w){g.e(w)}finally{g.f()}return d&&(this.gc(),c=!1),c},"invalidate")},{key:"gc",value:v(function(){var t=Dr(this.collections.values()),a;try{for(t.s();!(a=t.n()).done;){var n=a.value;n.gc()}}catch(i){t.e(i)}finally{t.f()}},"gc")},{key:"getOrCreateAtlas",value:v(function(t,a,n,i){var s=this.renderTypes.get(a),o=this.collections.get(s.collection),l=!1,u=o.draw(i,n,function(d){s.drawClipped?(d.save(),d.beginPath(),d.rect(0,0,n.w,n.h),d.clip(),s.drawElement(d,t,n,!0,!0),d.restore()):s.drawElement(d,t,n,!0,!0),l=!0});if(l){var f=s.getID?s.getID(t):t.id(),c=this._key(a,f);this.typeAndIdToKey.has(c)?this.typeAndIdToKey.get(c).push(i):this.typeAndIdToKey.set(c,[i])}return u},"getOrCreateAtlas")},{key:"getAtlasInfo",value:v(function(t,a){var n=this,i=this.renderTypes.get(a),s=i.getKey(t),o=Array.isArray(s)?s:[s];return o.map(function(l){var u=i.getBoundingBox(t,l),f=n.getOrCreateAtlas(t,a,u,l),c=f.getOffsets(l),d=je(c,2),g=d[0],h=d[1];return{atlas:f,tex:g,tex1:g,tex2:h,bb:u}})},"getAtlasInfo")},{key:"getDebugInfo",value:v(function(){var t=[],a=Dr(this.collections),n;try{for(a.s();!(n=a.n()).done;){var i=je(n.value,2),s=i[0],o=i[1],l=o.getCounts(),u=l.keyCount,f=l.atlasCount;t.push({type:s,keyCount:u,atlasCount:f})}}catch(c){a.e(c)}finally{a.f()}return t},"getDebugInfo")}])})(),om=(function(){function r(e){gt(this,r),this.globalOptions=e,this.atlasSize=e.webglTexSize,this.maxAtlasesPerBatch=e.webglTexPerBatch,this.batchAtlases=[]}return v(r,"AtlasBatchManager"),pt(r,[{key:"getMaxAtlasesPerBatch",value:v(function(){return this.maxAtlasesPerBatch},"getMaxAtlasesPerBatch")},{key:"getAtlasSize",value:v(function(){return this.atlasSize},"getAtlasSize")},{key:"getIndexArray",value:v(function(){return Array.from({length:this.maxAtlasesPerBatch},function(t,a){return a})},"getIndexArray")},{key:"startBatch",value:v(function(){this.batchAtlases=[]},"startBatch")},{key:"getAtlasCount",value:v(function(){return this.batchAtlases.length},"getAtlasCount")},{key:"getAtlases",value:v(function(){return this.batchAtlases},"getAtlases")},{key:"canAddToCurrentBatch",value:v(function(t){return this.batchAtlases.length===this.maxAtlasesPerBatch?this.batchAtlases.includes(t):!0},"canAddToCurrentBatch")},{key:"getAtlasIndexForBatch",value:v(function(t){var a=this.batchAtlases.indexOf(t);if(a<0){if(this.batchAtlases.length===this.maxAtlasesPerBatch)throw new Error("cannot add more atlases to batch");this.batchAtlases.push(t),a=this.batchAtlases.length-1}return a},"getAtlasIndexForBatch")}])})(),um=` float circleSD(vec2 p, float r) { return distance(vec2(0), p) - r; // signed distance } `,lm=` 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); } `,vm=` 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; } `,fm=` 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; } `,Ca={SCREEN:{name:"screen",screen:!0},PICKING:{name:"picking",picking:!0}},Rn={IGNORE:1,USE_BB:2},Ts=0,Xl=1,Yl=2,Ss=3,Ht=4,on=5,pa=6,ya=7,cm=(function(){function r(e,t,a){gt(this,r),this.r=e,this.gl=t,this.maxInstances=a.webglBatchSize,this.atlasSize=a.webglTexSize,this.bgColor=a.bgColor,this.debug=a.webglDebug,this.batchDebugInfo=[],a.enableWrapping=!0,a.createTextureCanvas=Wy,this.atlasManager=new sm(e,a),this.batchManager=new om(a),this.simpleShapeOptions=new Map,this.program=this._createShaderProgram(Ca.SCREEN),this.pickingProgram=this._createShaderProgram(Ca.PICKING),this.vao=this._createVAO()}return v(r,"ElementDrawingWebGL"),pt(r,[{key:"addAtlasCollection",value:v(function(t,a){this.atlasManager.addAtlasCollection(t,a)},"addAtlasCollection")},{key:"addTextureAtlasRenderType",value:v(function(t,a){this.atlasManager.addRenderType(t,a)},"addTextureAtlasRenderType")},{key:"addSimpleShapeRenderType",value:v(function(t,a){this.simpleShapeOptions.set(t,a)},"addSimpleShapeRenderType")},{key:"invalidate",value:v(function(t){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=a.type,i=this.atlasManager;return n?i.invalidate(t,{filterType:v(function(o){return o===n},"filterType"),forceRedraw:!0}):i.invalidate(t)},"invalidate")},{key:"gc",value:v(function(){this.atlasManager.gc()},"gc")},{key:"_createShaderProgram",value:v(function(t){var a=this.gl,n=`#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(Ts,`) { 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(Ht," || aVertType == ").concat(ya,` || aVertType == `).concat(on," || aVertType == ").concat(pa,`) { // 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(Xl,`) { 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(Yl,`) { 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(Ss,` && 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; } `),i=this.batchManager.getIndexArray(),s=`#version 300 es precision highp float; // declare texture unit for each texture atlas in the batch `.concat(i.map(function(u){return"uniform sampler2D uTexture".concat(u,";")}).join(` `),` uniform vec4 uBGColor; uniform float uZoom; in vec2 vTexCoord; in vec4 vColor; in vec2 vPosition; // model coordinates flat in int vAtlasId; flat in vec4 vIndex; flat in int vVertType; flat in vec2 vTopRight; flat in vec2 vBotLeft; flat in vec4 vCornerRadius; flat in vec4 vBorderColor; flat in vec2 vBorderWidth; out vec4 outColor; `).concat(um,` `).concat(lm,` `).concat(vm,` `).concat(fm,` 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(Ts,`) { // look up the texel from the texture unit `).concat(i.map(function(u){return"if(vAtlasId == ".concat(u,") outColor = texture(uTexture").concat(u,", vTexCoord);")}).join(` else `),` } else if(vVertType == `).concat(Ss,`) { // 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(Ht,` && 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(Ht," || vVertType == ").concat(ya,` || vVertType == `).concat(on," || vVertType == ").concat(pa,`) { // 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(Ht,`) { d = rectangleSD(p, b); } else if(vVertType == `).concat(ya,` && w == h) { d = circleSD(p, b.x); // faster than ellipse } else if(vVertType == `).concat(ya,`) { 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=Hy(a,n,s);o.aPosition=a.getAttribLocation(o,"aPosition"),o.aIndex=a.getAttribLocation(o,"aIndex"),o.aVertType=a.getAttribLocation(o,"aVertType"),o.aTransform=a.getAttribLocation(o,"aTransform"),o.aAtlasId=a.getAttribLocation(o,"aAtlasId"),o.aTex=a.getAttribLocation(o,"aTex"),o.aPointAPointB=a.getAttribLocation(o,"aPointAPointB"),o.aPointCPointD=a.getAttribLocation(o,"aPointCPointD"),o.aLineWidth=a.getAttribLocation(o,"aLineWidth"),o.aColor=a.getAttribLocation(o,"aColor"),o.aCornerRadius=a.getAttribLocation(o,"aCornerRadius"),o.aBorderColor=a.getAttribLocation(o,"aBorderColor"),o.uPanZoomMatrix=a.getUniformLocation(o,"uPanZoomMatrix"),o.uAtlasSize=a.getUniformLocation(o,"uAtlasSize"),o.uBGColor=a.getUniformLocation(o,"uBGColor"),o.uZoom=a.getUniformLocation(o,"uZoom"),o.uTextures=[];for(var l=0;l1&&arguments[1]!==void 0?arguments[1]:Ca.SCREEN;this.panZoomMatrix=t,this.renderTarget=a,this.batchDebugInfo=[],this.wrappedCount=0,this.simpleCount=0,this.startBatch()},"startFrame")},{key:"startBatch",value:v(function(){this.instanceCount=0,this.batchManager.startBatch()},"startBatch")},{key:"endFrame",value:v(function(){this.endBatch()},"endFrame")},{key:"_isVisible",value:v(function(t,a){return t.visible()?a&&a.isVisible?a.isVisible(t):!0:!1},"_isVisible")},{key:"drawTexture",value:v(function(t,a,n){var i=this.atlasManager,s=this.batchManager,o=i.getRenderTypeOpts(n);if(this._isVisible(t,o)&&!(t.isEdge()&&!this._isValidEdge(t))){if(this.renderTarget.picking&&o.getTexPickingMode){var l=o.getTexPickingMode(t);if(l===Rn.IGNORE)return;if(l==Rn.USE_BB){this.drawPickingRectangle(t,a,n);return}}var u=i.getAtlasInfo(t,n),f=Dr(u),c;try{for(f.s();!(c=f.n()).done;){var d=c.value,g=d.atlas,h=d.tex1,m=d.tex2;s.canAddToCurrentBatch(g)||this.endBatch();for(var p=s.getAtlasIndexForBatch(g),y=0,b=[[h,!0],[m,!1]];y=this.maxInstances&&this.endBatch()}}}}catch(P){f.e(P)}finally{f.f()}}},"drawTexture")},{key:"setTransformMatrix",value:v(function(t,a,n,i){var s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,o=0;if(n.shapeProps&&n.shapeProps.padding&&(o=t.pstyle(n.shapeProps.padding).pfValue),i){var l=i.bb,u=i.tex1,f=i.tex2,c=u.w/(u.w+f.w);s||(c=1-c);var d=this._getAdjustedBB(l,o,s,c);this._applyTransformMatrix(a,d,n,t)}else{var g=n.getBoundingBox(t),h=this._getAdjustedBB(g,o,!0,1);this._applyTransformMatrix(a,h,n,t)}},"setTransformMatrix")},{key:"_applyTransformMatrix",value:v(function(t,a,n,i){var s,o;Ul(t);var l=n.getRotation?n.getRotation(i):0;if(l!==0){var u=n.getRotationPoint(i),f=u.x,c=u.y;mn(t,t,[f,c]),Kl(t,t,l);var d=n.getRotationOffset(i);s=d.x+(a.xOffset||0),o=d.y+(a.yOffset||0)}else s=a.x1,o=a.y1;mn(t,t,[s,o]),$s(t,t,[a.w,a.h])},"_applyTransformMatrix")},{key:"_getAdjustedBB",value:v(function(t,a,n,i){var s=t.x1,o=t.y1,l=t.w,u=t.h,f=t.yOffset;a&&(s-=a,o-=a,l+=2*a,u+=2*a);var c=0,d=l*i;return n&&i<1?l=d:!n&&i<1&&(c=l-d,s+=c,l=d),{x1:s,y1:o,w:l,h:u,xOffset:c,yOffset:f}},"_getAdjustedBB")},{key:"drawPickingRectangle",value:v(function(t,a,n){var i=this.atlasManager.getRenderTypeOpts(n),s=this.instanceCount;this.vertTypeBuffer.getView(s)[0]=Ht;var o=this.indexBuffer.getView(s);Gt(a,o);var l=this.colorBuffer.getView(s);Et([0,0,0],1,l);var u=this.transformBuffer.getMatrixView(s);this.setTransformMatrix(t,u,i),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()},"drawPickingRectangle")},{key:"drawNode",value:v(function(t,a,n){var i=this.simpleShapeOptions.get(n);if(this._isVisible(t,i)){var s=i.shapeProps,o=this._getVertTypeForShape(t,s.shape);if(o===void 0||i.isSimple&&!i.isSimple(t)){this.drawTexture(t,a,n);return}var l=this.instanceCount;if(this.vertTypeBuffer.getView(l)[0]=o,o===on||o===pa){var u=i.getBoundingBox(t),f=this._getCornerRadius(t,s.radius,u),c=this.cornerRadiusBuffer.getView(l);c[0]=f,c[1]=f,c[2]=f,c[3]=f,o===pa&&(c[0]=0,c[2]=0)}var d=this.indexBuffer.getView(l);Gt(a,d);var g=t.pstyle(s.color).value,h=t.pstyle(s.opacity).value,m=this.colorBuffer.getView(l);Et(g,h,m);var p=this.lineWidthBuffer.getView(l);if(p[0]=0,p[1]=0,s.border){var y=t.pstyle("border-width").value;if(y>0){var b=t.pstyle("border-color").value,w=t.pstyle("border-opacity").value,x=this.borderColorBuffer.getView(l);Et(b,w,x);var C=t.pstyle("border-position").value;if(C==="inside")p[0]=0,p[1]=-y;else if(C==="outside")p[0]=y,p[1]=0;else{var T=y/2;p[0]=T,p[1]=-T}}}var E=this.transformBuffer.getMatrixView(l);this.setTransformMatrix(t,E,i),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}},"drawNode")},{key:"_getVertTypeForShape",value:v(function(t,a){var n=t.pstyle(a).value;switch(n){case"rectangle":return Ht;case"ellipse":return ya;case"roundrectangle":case"round-rectangle":return on;case"bottom-round-rectangle":return pa;default:return}},"_getVertTypeForShape")},{key:"_getCornerRadius",value:v(function(t,a,n){var i=n.w,s=n.h;if(t.pstyle(a).value==="auto")return ft(i,s);var o=t.pstyle(a).pfValue,l=i/2,u=s/2;return Math.min(o,u,l)},"_getCornerRadius")},{key:"drawEdgeArrow",value:v(function(t,a,n){if(t.visible()){var i=t._private.rscratch,s,o,l;if(n==="source"?(s=i.arrowStartX,o=i.arrowStartY,l=i.srcArrowAngle):(s=i.arrowEndX,o=i.arrowEndY,l=i.tgtArrowAngle),!(isNaN(s)||s==null||isNaN(o)||o==null||isNaN(l)||l==null)){var u=t.pstyle(n+"-arrow-shape").value;if(u!=="none"){var f=t.pstyle(n+"-arrow-color").value,c=t.pstyle("opacity").value,d=t.pstyle("line-opacity").value,g=c*d,h=t.pstyle("width").pfValue,m=t.pstyle("arrow-scale").value,p=this.r.getArrowWidth(h,m),y=this.instanceCount,b=this.transformBuffer.getMatrixView(y);Ul(b),mn(b,b,[s,o]),$s(b,b,[p,p]),Kl(b,b,l),this.vertTypeBuffer.getView(y)[0]=Ss;var w=this.indexBuffer.getView(y);Gt(a,w);var x=this.colorBuffer.getView(y);Et(f,g,x),this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}}},"drawEdgeArrow")},{key:"drawEdgeLine",value:v(function(t,a){if(t.visible()){var n=this._getEdgePoints(t);if(n){var i=t.pstyle("opacity").value,s=t.pstyle("line-opacity").value,o=t.pstyle("width").pfValue,l=t.pstyle("line-color").value,u=i*s;if(n.length/2+this.instanceCount>this.maxInstances&&this.endBatch(),n.length==4){var f=this.instanceCount;this.vertTypeBuffer.getView(f)[0]=Xl;var c=this.indexBuffer.getView(f);Gt(a,c);var d=this.colorBuffer.getView(f);Et(l,u,d);var g=this.lineWidthBuffer.getView(f);g[0]=o;var h=this.pointAPointBBuffer.getView(f);h[0]=n[0],h[1]=n[1],h[2]=n[2],h[3]=n[3],this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}else for(var m=0;m=this.maxInstances&&this.endBatch()}}}},"drawEdgeLine")},{key:"_isValidEdge",value:v(function(t){var a=t._private.rscratch;return!(a.badLine||a.allpts==null||isNaN(a.allpts[0]))},"_isValidEdge")},{key:"_getEdgePoints",value:v(function(t){var a=t._private.rscratch;if(this._isValidEdge(t)){var n=a.allpts;if(n.length==4)return n;var i=this._getNumSegments(t);return this._getCurveSegmentPoints(n,i)}},"_getEdgePoints")},{key:"_getNumSegments",value:v(function(t){var a=15;return Math.min(Math.max(a,5),this.maxInstances)},"_getNumSegments")},{key:"_getCurveSegmentPoints",value:v(function(t,a){if(t.length==4)return t;for(var n=Array((a+1)*2),i=0;i<=a;i++)if(i==0)n[0]=t[0],n[1]=t[1];else if(i==a)n[i*2]=t[t.length-2],n[i*2+1]=t[t.length-1];else{var s=i/a;this._setCurvePoint(t,s,n,i*2)}return n},"_getCurveSegmentPoints")},{key:"_setCurvePoint",value:v(function(t,a,n,i){if(t.length<=2)n[i]=t[0],n[i+1]=t[1];else{for(var s=Array(t.length-2),o=0;o0}},"isLayerVisible"),o=v(function(c){var d=c.pstyle("text-events").strValue==="yes";return d?Rn.USE_BB:Rn.IGNORE},"getTexPickingMode"),l=v(function(c){var d=c.position(),g=d.x,h=d.y,m=c.outerWidth(),p=c.outerHeight();return{w:m,h:p,x1:g-m/2,y1:h-p/2}},"getBBForSimpleShape");t.drawing.addAtlasCollection("node",{texRows:r.webglTexRowsNodes}),t.drawing.addAtlasCollection("label",{texRows:r.webglTexRows}),t.drawing.addTextureAtlasRenderType("node-body",{collection:"node",getKey:e.getStyleKey,getBoundingBox:e.getElementBox,drawElement:e.drawElement}),t.drawing.addSimpleShapeRenderType("node-body",{getBoundingBox:l,isSimple:Ky,shapeProps:{shape:"shape",color:"background-color",opacity:"background-opacity",radius:"corner-radius",border:!0}}),t.drawing.addSimpleShapeRenderType("node-overlay",{getBoundingBox:l,isVisible:s("overlay"),shapeProps:{shape:"overlay-shape",color:"overlay-color",opacity:"overlay-opacity",padding:"overlay-padding",radius:"overlay-corner-radius"}}),t.drawing.addSimpleShapeRenderType("node-underlay",{getBoundingBox:l,isVisible:s("underlay"),shapeProps:{shape:"underlay-shape",color:"underlay-color",opacity:"underlay-opacity",padding:"underlay-padding",radius:"underlay-corner-radius"}}),t.drawing.addTextureAtlasRenderType("label",{collection:"label",getTexPickingMode:o,getKey:ks(e.getLabelKey,null),getBoundingBox:Ds(e.getLabelBox,null),drawClipped:!0,drawElement:e.drawLabel,getRotation:n(null),getRotationPoint:e.getLabelRotationPoint,getRotationOffset:e.getLabelRotationOffset,isVisible:i("label")}),t.drawing.addTextureAtlasRenderType("edge-source-label",{collection:"label",getTexPickingMode:o,getKey:ks(e.getSourceLabelKey,"source"),getBoundingBox:Ds(e.getSourceLabelBox,"source"),drawClipped:!0,drawElement:e.drawSourceLabel,getRotation:n("source"),getRotationPoint:e.getSourceLabelRotationPoint,getRotationOffset:e.getSourceLabelRotationOffset,isVisible:i("source-label")}),t.drawing.addTextureAtlasRenderType("edge-target-label",{collection:"label",getTexPickingMode:o,getKey:ks(e.getTargetLabelKey,"target"),getBoundingBox:Ds(e.getTargetLabelBox,"target"),drawClipped:!0,drawElement:e.drawTargetLabel,getRotation:n("target"),getRotationPoint:e.getTargetLabelRotationPoint,getRotationOffset:e.getTargetLabelRotationOffset,isVisible:i("target-label")});var u=Va(function(){console.log("garbage collect flag set"),t.data.gc=!0},1e4);t.onUpdateEleCalcs(function(f,c){var d=!1;c&&c.length>0&&(d|=t.drawing.invalidate(c)),d&&u()}),hm(t)};function dm(r){var e=r.cy.container(),t=e&&e.style&&e.style.backgroundColor||"white";return sv(t)}v(dm,"getBGColor");function If(r,e){var t=r._private.rscratch;return Sr(t,"labelWrapCachedLines",e)||[]}v(If,"getLabelLines");var ks=v(function(e,t){return function(a){var n=e(a),i=If(a,t);return i.length>1?i.map(function(s,o){return"".concat(n,"_").concat(o)}):n}},"getStyleKeysForLabel"),Ds=v(function(e,t){return function(a,n){var i=e(a);if(typeof n=="string"){var s=n.indexOf("_");if(s>0){var o=Number(n.substring(s+1)),l=If(a,t),u=i.h/l.length,f=u*o,c=i.y1+f;return{x1:i.x1,w:i.w,y1:c,h:u,yOffset:f}}}return i}},"getBoundingBoxForLabel");function hm(r){{var e=r.render;r.render=function(i){i=i||{};var s=r.cy;r.webgl&&(s.zoom()>kf?(gm(r),e.call(r,i)):(pm(r),Nf(r,i,Ca.SCREEN)))}}{var t=r.matchCanvasSize;r.matchCanvasSize=function(i){t.call(r,i),r.pickingFrameBuffer.setFramebufferAttachmentSizes(r.canvasWidth,r.canvasHeight),r.pickingFrameBuffer.needsDraw=!0}}r.findNearestElements=function(i,s,o,l){return Em(r,i,s)};{var a=r.invalidateCachedZSortedEles;r.invalidateCachedZSortedEles=function(){a.call(r),r.pickingFrameBuffer.needsDraw=!0}}{var n=r.notify;r.notify=function(i,s){n.call(r,i,s),i==="viewport"||i==="bounds"?r.pickingFrameBuffer.needsDraw=!0:i==="background"&&r.drawing.invalidate(s,{type:"node-body"})}}}v(hm,"overrideCanvasRendererFunctions");function gm(r){var e=r.data.contexts[r.WEBGL];e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}v(gm,"clearWebgl");function pm(r){var e=v(function(a){a.save(),a.setTransform(1,0,0,1,0,0),a.clearRect(0,0,r.canvasWidth,r.canvasHeight),a.restore()},"clear");e(r.data.contexts[r.NODE]),e(r.data.contexts[r.DRAG])}v(pm,"clearCanvas");function ym(r){var e=r.canvasWidth,t=r.canvasHeight,a=wo(r),n=a.pan,i=a.zoom,s=Cs();mn(s,s,[n.x,n.y]),$s(s,s,[i,i]);var o=Cs();tm(o,e,t);var l=Cs();return rm(l,o,s),l}v(ym,"createPanZoomMatrix");function Of(r,e){var t=r.canvasWidth,a=r.canvasHeight,n=wo(r),i=n.pan,s=n.zoom;e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,t,a),e.translate(i.x,i.y),e.scale(s,s)}v(Of,"setContextTransform");function mm(r,e){r.drawSelectionRectangle(e,function(t){return Of(r,t)})}v(mm,"drawSelectionRectangle");function bm(r){var e=r.data.contexts[r.NODE];e.save(),Of(r,e),e.strokeStyle="rgba(0, 0, 0, 0.3)",e.beginPath(),e.moveTo(-1e3,0),e.lineTo(1e3,0),e.stroke(),e.beginPath(),e.moveTo(0,-1e3),e.lineTo(0,1e3),e.stroke(),e.restore()}v(bm,"drawAxes");function wm(r){var e=v(function(n,i,s){for(var o=n.atlasManager.getAtlasCollection(i),l=r.data.contexts[r.NODE],u=o.atlases,f=0;f=0&&x.add(E)}return x}v(xm,"getPickingIndexes");function Em(r,e,t){var a=xm(r,e,t),n=r.getCachedZSortedEles(),i,s,o=Dr(a),l;try{for(o.s();!(l=o.n()).done;){var u=l.value,f=n[u];if(!i&&f.isNode()&&(i=f),!s&&f.isEdge()&&(s=f),i&&s)break}}catch(c){o.e(c)}finally{o.f()}return[i,s].filter(Boolean)}v(Em,"findNearestElementsWebgl");function Bs(r,e,t){var a=r.drawing;e+=1,t.isNode()?(a.drawNode(t,e,"node-underlay"),a.drawNode(t,e,"node-body"),a.drawTexture(t,e,"label"),a.drawNode(t,e,"node-overlay")):(a.drawEdgeLine(t,e),a.drawEdgeArrow(t,e,"source"),a.drawEdgeArrow(t,e,"target"),a.drawTexture(t,e,"label"),a.drawTexture(t,e,"edge-source-label"),a.drawTexture(t,e,"edge-target-label"))}v(Bs,"drawEle");function Nf(r,e,t){var a;r.webglDebug&&(a=performance.now());var n=r.drawing,i=0;if(t.screen&&r.data.canvasNeedsRedraw[r.SELECT_BOX]&&mm(r,e),r.data.canvasNeedsRedraw[r.NODE]||t.picking){var s=r.data.contexts[r.WEBGL];t.screen?(s.clearColor(0,0,0,0),s.enable(s.BLEND),s.blendFunc(s.ONE,s.ONE_MINUS_SRC_ALPHA)):s.disable(s.BLEND),s.clear(s.COLOR_BUFFER_BIT|s.DEPTH_BUFFER_BIT),s.viewport(0,0,s.canvas.width,s.canvas.height);var o=ym(r),l=r.getCachedZSortedEles();if(i=l.length,n.startFrame(o,t),t.screen){for(var u=0;u0&&s>0){g.clearRect(0,0,i,s),g.globalCompositeOperation="source-over";var h=this.getCachedZSortedEles();if(r.full)g.translate(-a.x1*u,-a.y1*u),g.scale(u,u),this.drawElements(g,h),g.scale(1/u,1/u),g.translate(a.x1*u,a.y1*u);else{var m=e.pan(),p={x:m.x*u,y:m.y*u};u*=e.zoom(),g.translate(p.x,p.y),g.scale(u,u),this.drawElements(g,h),g.scale(1/u,1/u),g.translate(-p.x,-p.y)}r.bg&&(g.globalCompositeOperation="destination-over",g.fillStyle=r.bg,g.rect(0,0,i,s),g.fill())}return d};function Cm(r,e){for(var t=atob(r),a=new ArrayBuffer(t.length),n=new Uint8Array(a),i=0;i"u"?"undefined":nr(OffscreenCanvas))!=="undefined")t=new OffscreenCanvas(r,e);else{var a=this.cy.window(),n=a.document;t=n.createElement("canvas"),t.width=r,t.height=e}return t};[Bf,Wr,jr,bo,Ot,mt,Er,Lf,bt,$a,Vf].forEach(function(r){we(De,r)});var km=[{name:"null",impl:hf},{name:"base",impl:Tf},{name:"canvas",impl:Tm}],Dm=[{type:"layout",extensions:Jp},{type:"renderer",extensions:km}],_f={},Gf={};function Hf(r,e,t){var a=t,n=v(function(S){qe("Can not register `"+e+"` for `"+r+"` since `"+S+"` already exists in the prototype and can not be overridden")},"overrideErr");if(r==="core"){if(Ma.prototype[e])return n(e);Ma.prototype[e]=t}else if(r==="collection"){if(cr.prototype[e])return n(e);cr.prototype[e]=t}else if(r==="layout"){for(var i=v(function(S){this.options=S,t.call(this,S),Ie(this._private)||(this._private={}),this._private.cy=S.cy,this._private.listeners=[],this.createEmitter()},"Layout"),s=i.prototype=Object.create(t.prototype),o=[],l=0;l