"use strict";(self.webpackChunkjupyter_web=self.webpackChunkjupyter_web||[]).push([[574],{90574:(bm,Nf,zf)=>{function Yn(r,e){(null==e||e>r.length)&&(e=r.length);for(var t=0,a=Array(e);t=r.length?{done:!0}:{done:!1,value:r[a++]}},e:function(l){throw l},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,o=!1;return{s:function(){t=t.call(r)},n:function(){var l=t.next();return s=l.done,l},e:function(l){o=!0,i=l},f:function(){try{s||null==t.return||t.return()}finally{if(o)throw i}}}}function yo(r,e,t){return(e=mo(e))in r?Object.defineProperty(r,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):r[e]=t,r}function Qe(r,e){return function Ff(r){if(Array.isArray(r))return r}(r)||function Gf(r,e){var t=null==r?null:typeof Symbol<"u"&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var a,n,i,s,o=[],l=!0,u=!1;try{if(i=(t=t.call(r)).next,0===e){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(v){u=!0,n=v}finally{try{if(!l&&null!=t.return&&(s=t.return(),Object(s)!==s))return}finally{if(u)throw n}}return o}}(r,e)||Xn(r,e)||function Hf(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ga(r){return function Vf(r){if(Array.isArray(r))return Yn(r)}(r)||function _f(r){if(typeof Symbol<"u"&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}(r)||Xn(r)||function Wf(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function mo(r){var e=function Uf(r,e){if("object"!=typeof r||!r)return r;var t=r[Symbol.toPrimitive];if(void 0!==t){var a=t.call(r,e);if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(r)}(r,"string");return"symbol"==typeof e?e:e+""}function Je(r){return(Je="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(r)}function Xn(r,e){if(r){if("string"==typeof r)return Yn(r,e);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?Yn(r,e):void 0}}zf.d(Nf,{Z:()=>At});var je=typeof window>"u"?null:window,bo=je?je.navigator:null;je&&je.document;var Jn,Po,jn,Ao,ei,Ro,ri,Mo,ti,Lo,ai,Io,ni,Oo,si,No,oi,zo,ui,Fo,li,qo,vi,_o,fi,Go,ci,Ho,$f=Je(""),wo=Je({}),Kf=Je(function(){}),Yf=typeof HTMLElement>"u"?"undefined":Je(HTMLElement),ia=function(e){return e&&e.instanceString&&He(e.instanceString)?e.instanceString():null},ve=function(e){return null!=e&&Je(e)==$f},He=function(e){return null!=e&&Je(e)===Kf},ze=function(e){return!Dr(e)&&(Array.isArray?Array.isArray(e):null!=e&&e instanceof Array)},ke=function(e){return null!=e&&Je(e)===wo&&!ze(e)&&e.constructor===Object},te=function(e){return null!=e&&Je(e)===Je(1)&&!isNaN(e)},Ha=function(e){if("undefined"!==Yf)return null!=e&&e instanceof HTMLElement},Dr=function(e){return sa(e)||xo(e)},sa=function(e){return"collection"===ia(e)&&e._private.single},xo=function(e){return"collection"===ia(e)&&!e._private.single},Zn=function(e){return"core"===ia(e)},Eo=function(e){return"stylesheet"===ia(e)},et=function(e){return null==e||!(""!==e&&!e.match(/^\s+$/))},ec=function(e){return function(e){return null!=e&&Je(e)===wo}(e)&&He(e.then)},Mt=function(e,t){t||(t=function(){if(1===arguments.length)return arguments[0];if(0===arguments.length)return"undefined";for(var i=[],s=0;st?1:0},he=null!=Object.assign?Object.assign.bind(Object):function(r){for(var e=arguments,t=1;t255)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(void 0!==u){if((u=parseFloat(u))<0||u>1)return;t.push(u)}}return t}(e)||function(e){var t,a,n,i,s,o,l,u;function v(d,y,g){return g<0&&(g+=1),g>1&&(g-=1),g<1/6?d+6*(y-d)*g:g<.5?y:g<2/3?d+(y-d)*(2/3-g)*6:d}var f=new RegExp("^hsl[a]?\\(((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?)))\\s*,\\s*((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))[%])\\s*,\\s*((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))[%])(?:\\s*,\\s*((?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))))?\\)$").exec(e);if(f){if((a=parseInt(f[1]))<0?a=(360- -1*a%360)%360:a>360&&(a%=360),a/=360,(n=parseFloat(f[2]))<0||n>100||(n/=100,(i=parseFloat(f[3]))<0||i>100)||(i/=100,void 0!==(s=f[4])&&((s=parseFloat(s))<0||s>1)))return;if(0===n)o=l=u=Math.round(255*i);else{var c=i<.5?i*(1+n):i+n-i*n,h=2*i-c;o=Math.round(255*v(h,c,a+1/3)),l=Math.round(255*v(h,c,a)),u=Math.round(255*v(h,c,a-1/3))}t=[o,l,u,s]}return t}(e)},dc={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]},ko=function(e){for(var t=e.map,a=e.keys,n=a.length,i=0;i=l||R<0||m&&B-g>=c}function k(){var B=e();if(x(B))return S(B);d=setTimeout(k,function C(B){var I=l-(B-y);return m?i(I,c-(B-g)):I}(B))}function S(B){return d=void 0,b&&v?w(B):(v=f=void 0,h)}function A(){var B=e(),R=x(B);if(v=arguments,f=this,y=B,R){if(void 0===d)return E(y);if(m)return clearTimeout(d),d=setTimeout(k,l),w(y)}return void 0===d&&(d=setTimeout(k,l)),h}return l=t(l)||0,r(u)&&(p=!!u.leading,c=(m="maxWait"in u)?n(t(u.maxWait)||0,l):c,b="trailing"in u?!!u.trailing:b),A.cancel=function P(){void 0!==d&&clearTimeout(d),g=0,v=y=f=d=void 0},A.flush=function D(){return void 0===d?h:S(e())},A},ci}(),va=oa(Cc),di=je?je.performance:null,Wo=di&&di.now?function(){return di.now()}:function(){return Date.now()},Tc=function(){if(je){if(je.requestAnimationFrame)return function(r){je.requestAnimationFrame(r)};if(je.mozRequestAnimationFrame)return function(r){je.mozRequestAnimationFrame(r)};if(je.webkitRequestAnimationFrame)return function(r){je.webkitRequestAnimationFrame(r)};if(je.msRequestAnimationFrame)return function(r){je.msRequestAnimationFrame(r)}}return function(r){r&&setTimeout(function(){r(Wo())},1e3/60)}}(),Ka=function(e){return Tc(e)},Wr=Wo,gt=9261,Uo=65599,Lt=5381,$o=function(e){for(var n,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:gt,a=t;!(n=e.next()).done;)a=a*Uo+n.value|0;return a},fa=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:gt;return t*Uo+e|0},ca=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Lt;return(t<<5)+t+e|0},rt=function(e){return 2097152*e[0]+e[1]},Ya=function(e,t){return[fa(e[0],t[0]),ca(e[1],t[1])]},Ko=function(e,t){var a={value:0,done:!1},n=0,i=e.length;return $o({next:function(){return n=0;n--)e[n]===t&&e.splice(n,1)},pi=function(e){e.splice(0,e.length)},wr=function(e,t,a){return a&&(t=Co(a,t)),e[t]},Ur=function(e,t,a,n){a&&(t=Co(a,t)),e[t]=n},$r=typeof Map<"u"?Map:function(){return jr(function r(){Jr(this,r),this._obj={}},[{key:"set",value:function(t,a){return this._obj[t]=a,this}},{key:"delete",value:function(t){return this._obj[t]=void 0,this}},{key:"clear",value:function(){this._obj={}}},{key:"has",value:function(t){return void 0!==this._obj[t]}},{key:"get",value:function(t){return this._obj[t]}}])}(),Oc=function(){return jr(function r(e){if(Jr(this,r),this._obj=Object.create(null),this.size=0,null!=e){var t;t=null!=e.instanceString&&e.instanceString()===this.instanceString()?e.toArray():e;for(var a=0;a"u"?"undefined":Je(Set))?Set:Oc,Za=function(e,t){var a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0!==e&&void 0!==t&&Zn(e)){var n=t.group;if(null==n&&(n=t.data&&null!=t.data.source&&null!=t.data.target?"edges":"nodes"),"nodes"===n||"edges"===n){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:void 0===t.selectable||!!t.selectable,locked:!!t.locked,grabbed:!1,grabbable:void 0===t.grabbable||!!t.grabbable,pannable:void 0===t.pannable?"edges"===n:!!t.pannable,active:!1,classes:new It,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(null==i.position.x&&(i.position.x=0),null==i.position.y&&(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=[];ze(t.classes)?u=t.classes:ve(t.classes)&&(u=t.classes.split(/\s+/));for(var v=0,f=u.length;vm?1:0},v=function(p,m,b,w,E){var C;if(null==b&&(b=0),null==E&&(E=a),b<0)throw new Error("lo must be non-negative");for(null==w&&(w=p.length);bP;0<=P?S++:S--)k.push(S);return k}.apply(this).reverse()).length;wD;0<=D?++k:--k)A.push(s(p,b));return A},y=function(p,m,b,w){var E,C,x;for(null==w&&(w=a),E=p[b];b>m&&w(E,C=p[x=b-1>>1])<0;)p[b]=C,b=x;return p[b]=E},g=function(p,m,b){var w,E,C,x,k;for(null==b&&(b=a),E=p.length,k=m,C=p[m],w=2*m+1;w0;){var C=m.pop(),x=g(C),k=C.id();if(c[k]=x,x!==1/0)for(var S=C.neighborhood().intersect(d),P=0;P0)for(O.unshift(L);f[G];){var N=f[G];O.unshift(N.edge),O.unshift(N.node),G=(V=N.node).id()}return o.spawn(O)}}}},Gc={kruskal:function(e){e=e||function(b){return 1};for(var t=this.byGroup(),a=t.nodes,n=t.edges,i=a.length,s=new Array(i),o=a,l=function(w){for(var E=0;E0;){if(b=d.pop(),w=b.id(),y.delete(w),x++,w===v){for(var k=[],S=i,P=v,D=p[P];k.unshift(S),null!=D&&k.unshift(D),null!=(S=g[P]);)D=p[P=S.id()];return{found:!0,distance:f[w],path:this.spawn(k),steps:x}}h[w]=!0;for(var A=b._private.edges,B=0;BD&&(d[P]=D,m[P]=S,b[P]=E),!i){var A=S*v+k;!i&&d[A]>D&&(d[A]=D,m[A]=k,b[A]=E)}}}for(var B=0;B1&&void 0!==arguments[1]?arguments[1]:s,ce=b(se),ge=[],de=ce;;){if(null==de)return t.spawn();var ye=m(de),we=ye.edge,De=ye.pred;if(ge.unshift(de[0]),de.same(oe)&&ge.length>0)break;null!=we&&ge.unshift(we),de=De}return l.spawn(ge)},hasNegativeWeightCycle:y,negativeWeightCycles:g}}},Xc=Math.sqrt(2),Zc=function(e,t,a){0===a.length&&We("Karger-Stein must be run on a connected (sub)graph");for(var n=a[e],i=n[1],s=n[2],o=t[i],l=t[s],u=a,v=u.length-1;v>=0;v--){var f=u[v],c=f[1],h=f[2];(t[c]===o&&t[h]===l||t[c]===l&&t[h]===o)&&u.splice(v,1)}for(var d=0;dn;){var i=Math.floor(Math.random()*t.length);t=Zc(i,e,t),a--}return t},Qc={kargerStein:function(){var e=this,t=this.byGroup(),a=t.nodes,n=t.edges;n.unmergeBy(function(O){return O.isLoop()});var i=a.length,s=n.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),l=Math.floor(i/Xc);if(!(i<2)){for(var u=[],v=0;v0?1:e<0?-1:0},yt=function(e,t){return Math.sqrt(mt(e,t))},mt=function(e,t){var a=t.x-e.x,n=t.y-e.y;return a*a+n*n},nd=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(null!=e.w&&null!=e.h&&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}}},iu=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},ld=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},en=function(e){var t=arguments.length>1&&void 0!==arguments[1]?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},rn=function(e){var a,n,i,s,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0];if(1===t.length)a=n=i=s=t[0];else if(2===t.length)a=i=t[0],s=n=t[1];else if(4===t.length){var o=Qe(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},su=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},xi=function(e,t){return!(e.x1>t.x2||t.x1>e.x2||e.x2t.y2||t.y1>e.y2)},zt=function(e,t,a){return e.x1<=t&&t<=e.x2&&e.y1<=a&&a<=e.y2},vd=function(e,t){return zt(e,t.x,t.y)},fd=function(e,t){return zt(e,t.x1,t.y1)&&zt(e,t.x2,t.y2)},ou=function(e,t,a,n,i,s,o){var d,M,l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"auto",u="auto"===l?nt(i,s):l,v=i/2,f=s/2,c=(u=Math.min(u,v,f))!==v,h=u!==f;if(c){var y=a-v+u-o,g=n-f-o,p=a+v-u+o,m=g;if((d=at(e,t,a,n,y,g,p,m,!1)).length>0)return d}if(h){var b=a+v+o,w=n-f+u-o,E=b,C=n+f-u+o;if((d=at(e,t,a,n,b,w,E,C,!1)).length>0)return d}if(c){var x=a-v+u-o,k=n+f+o,S=a+v-u+o,P=k;if((d=at(e,t,a,n,x,k,S,P,!1)).length>0)return d}if(h){var D=a-v-o,A=n-f+u-o,B=D,R=n+f-u+o;if((d=at(e,t,a,n,D,A,B,R,!1)).length>0)return d}var I=a-v+u,L=n-f+u;if((M=pa(e,t,a,n,I,L,u+o)).length>0&&M[0]<=I&&M[1]<=L)return[M[0],M[1]];var O=a+v-u,V=n-f+u;if((M=pa(e,t,a,n,O,V,u+o)).length>0&&M[0]>=O&&M[1]<=V)return[M[0],M[1]];var G=a+v-u,N=n+f-u;if((M=pa(e,t,a,n,G,N,u+o)).length>0&&M[0]>=G&&M[1]>=N)return[M[0],M[1]];var F=a-v+u,K=n+f-u;return(M=pa(e,t,a,n,F,K,u+o)).length>0&&M[0]<=F&&M[1]>=K?[M[0],M[1]]:[]},cd=function(e,t,a,n,i,s,o){var l=o,u=Math.min(a,i),v=Math.max(a,i),f=Math.min(n,s),c=Math.max(n,s);return u-l<=e&&e<=v+l&&f-l<=t&&t<=c+l},dd=function(e,t,a,n,i,s,o,l,u){var v_x1=Math.min(a,o,i)-u,v_x2=Math.max(a,o,i)+u,v_y1=Math.min(n,l,s)-u,v_y2=Math.max(n,l,s)+u;return!(ev_x2||tv_y2)},pd=function(e,t,a,n,i,s,o,l){var h=[];!function(e,t,a,n,i){var o,l,u,v,f,c,h,d;0===e&&(e=1e-5),u=-27*(n/=e)+(t/=e)*(9*(a/=e)-t*t*2),o=(l=(3*a-t*t)/9)*l*l+(u/=54)*u,i[1]=0,h=t/3,o>0?(f=(f=u+Math.sqrt(o))<0?-Math.pow(-f,1/3):Math.pow(f,1/3),c=(c=u-Math.sqrt(o))<0?-Math.pow(-c,1/3):Math.pow(c,1/3),i[0]=-h+f+c,h+=(f+c)/2,i[4]=i[2]=-h,h=Math.sqrt(3)*(-c+f)/2,i[3]=h,i[5]=-h):(i[5]=i[3]=0,0===o?(d=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3),i[0]=2*d-h,i[4]=i[2]=-(d+h)):(v=(l=-l)*l*l,v=Math.acos(u/Math.sqrt(v)),d=2*Math.sqrt(l),i[0]=-h+d*Math.cos(v/3),i[2]=-h+d*Math.cos((v+2*Math.PI)/3),i[4]=-h+d*Math.cos((v+4*Math.PI)/3)))}(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,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,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,1*a*i-a*a+a*e-i*e+n*s-n*n+n*t-s*t,h);for(var y=[],g=0;g<6;g+=2)Math.abs(h[g+1])<1e-7&&h[g]>=0&&h[g]<=1&&y.push(h[g]);y.push(1),y.push(0);for(var m,b,w,p=-1,E=0;E=0?wu?(e-i)*(e-i)+(t-s)*(t-s):v-c},Er=function(e,t,a){for(var n,i,s,o,u=0,v=0;v=e&&e>=s||n<=e&&e<=s))continue;(e-n)/(s-n)*(o-i)+i>t&&u++}return u%2!=0},Kr=function(e,t,a,n,i,s,o,l,u){var f,y,v=new Array(a.length);null!=l[0]?(f=Math.atan(l[1]/l[0]),l[0]<0?f+=Math.PI/2:f=-f-Math.PI/2):f=l;for(var c=Math.cos(-f),h=Math.sin(-f),d=0;d0){var g=an(v,-u);y=tn(g)}else y=v;return Er(e,t,y)},tn=function(e){for(var a,n,i,s,o,l,u,v,t=new Array(e.length/2),f=0;f=0&&g<=1&&m.push(g),p>=0&&p<=1&&m.push(p),0===m.length)return[];var b=m[0]*l[0]+e,w=m[0]*l[1]+t;return m.length>1?m[0]==m[1]?[b,w]:[b,w,m[1]*l[0]+e,m[1]*l[1]+t]:[b,w]},Ei=function(e,t,a){return t<=e&&e<=a||a<=e&&e<=t?e:e<=t&&t<=a||a<=t&&t<=e?t:a},at=function(e,t,a,n,i,s,o,l,u){var v=e-i,f=a-e,c=o-i,h=t-s,d=n-t,y=l-s,g=c*h-y*v,p=f*h-d*v,m=y*f-c*d;if(0!==m){var b=g/m,w=p/m,C=-.001;return C<=b&&b<=1.001&&C<=w&&w<=1.001||u?[e+b*f,t+b*d]:[]}return 0===g||0===p?Ei(e,a,o)===o?[o,l]:Ei(e,a,i)===i?[i,s]:Ei(i,o,a)===a?[a,n]:[]:[]},ya=function(e,t,a,n,i,s,o,l){var v,h,u=[],f=new Array(a.length),c=!0;if(null==s&&(c=!1),c){for(var d=0;d0){var y=an(f,-l);h=tn(y)}else h=f}else h=a;for(var g,p,m,b,w=0;wv&&(v=w)},get:function(b){return u[b]}},c=0;c0?R.edgesTo(B)[0]:B.edgesTo(R)[0];var I=n(M);B=B.id(),x[B]>x[D]+I&&(x[B]=x[D]+I,k.nodes.indexOf(B)<0?k.push(B):k.updateItem(B),C[B]=0,E[B]=[]),x[B]==x[D]+I&&(C[B]=C[B]+C[D],E[B].push(D))}else for(var L=0;L0;){for(var N=w.pop(),F=0;F0&&o.push(a[l]);0!==o.length&&i.push(n.collection(o))}return i}(v,l,t,n);return w=function(e){for(var t=0;t5&&void 0!==arguments[5]?arguments[5]:Fd,o=n,v=0;v=2?ma(e,t,a,0,pu,Vd):ma(e,t,a,0,gu)},squaredEuclidean:function(e,t,a){return ma(e,t,a,0,pu)},manhattan:function(e,t,a){return ma(e,t,a,0,gu)},max:function(e,t,a){return ma(e,t,a,-1/0,qd)}};function sn(r,e,t,a,n,i){var s;return s=He(r)?r:qt[r]||qt.euclidean,0===e&&He(r)?s(n,i):s(e,t,a,n,i)}qt["squared-euclidean"]=qt.squaredEuclidean,qt.squaredeuclidean=qt.squaredEuclidean;var _d=or({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),ki=function(e){return _d(e)},on=function(e,t,a,n,i){var o="kMedoids"!==i?function(f){return a[f]}:function(f){return n[f](a)},u=a,v=t;return sn(e,n.length,o,function(c){return n[c](t)},u,v)},Bi=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},Wd=function(e,t,a){for(var n=0;no&&(o=t[u][v],l=v);i[l].push(e[u])}for(var f=0;f=i.threshold||"dendrogram"===i.mode&&1===e.length)return!1;var g,d=t[s],y=t[n[s]];g="dendrogram"===i.mode?{left:d,right:y,key:d.key}:{value:d.value.concat(y.value),key:d.key},e[d.index]=g,e.splice(y.index,1),t[d.key]=g;for(var p=0;pa[y.key][m.key]&&(l=a[y.key][m.key])):"max"===i.linkage?(l=a[d.key][m.key],a[d.key][m.key]1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],s=!(arguments.length>5&&void 0!==arguments[5])||arguments[5];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(c,h){return c-h});var v=e.length,f=Math.floor(v/2);return v%2!=0?e[f+1+o]:(e[f-1+o]+e[f+o])/2}(e):"mean"===t?function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,n=0,i=0,s=t;s1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,n=1/0,i=t;i1&&void 0!==arguments[1]?arguments[1]:0,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,n=-1/0,i=t;io&&(s=u,o=t[i*e+u])}s>0&&n.push(s)}for(var v=0;v=D?(A=D,D=R,B=M):R>A&&(A=R);for(var I=0;I0?1:0;x[S%n.minIterations*o+F]=K,N+=K}if(N>0&&(S>=n.minIterations-1||S==n.maxIterations-1)){for(var X=0,Q=0;Q0&&n.push(i);return n}(o,f,c),ae=function(e,t,a){for(var n=Tu(e,t,a),i=0;iu&&(l=v,u=f)}a[i]=s[l]}return Tu(e,t,a)}(o,u,re),J={},z=0;z1||C>1)&&(o=!0),f[b]=[],m.outgoers().forEach(function(k){k.isEdge()&&f[b].push(k.id())})}else c[b]=[void 0,m.target().id()]}):s.forEach(function(m){var b=m.id();m.isNode()?(m.degree(!0)%2&&(l?u?o=!0:u=b:l=b),f[b]=[],m.connectedEdges().forEach(function(E){return f[b].push(E.id())})):c[b]=[m.source().id(),m.target().id()]});var h={found:!1,trail:void 0};if(o)return h;if(u&&l)if(i){if(v&&u!=v)return h;v=u}else{if(v&&u!=v&&l!=v)return h;v||(v=u)}else v||(v=s[0].id());var d=function(b){for(var C,x,k,w=b,E=[b];f[w].length;)C=f[w].shift(),x=c[C][0],w!=(k=c[C][1])?(f[k]=f[k].filter(function(S){return S!=C}),w=k):!i&&w!=x&&(f[x]=f[x].filter(function(S){return S!=C}),w=x),E.unshift(C),E.unshift(w);return E},y=[],g=[];for(g=d(v);1!=g.length;)0==f[g[0]].length?(y.unshift(s.getElementById(g.shift())),y.unshift(s.getElementById(g.shift()))):g=d(g.shift()).concat(g);for(var p in y.unshift(s.getElementById(g.shift())),f)if(f[p].length)return h;return h.found=!0,h.trail=this.spawn(y,!0),h}},un=function(){var e=this,t={},a=0,n=0,i=[],s=[],o={},u=function(c,h,d){c===d&&(n+=1),t[h]={id:a,low:a++,cutVertex:!1};var g,p,m,b,y=e.getElementById(h).connectedEdges().intersection(e);0===y.size()?i.push(e.spawn(e.getElementById(h))):y.forEach(function(w){g=w.source().id(),p=w.target().id(),(m=g===h?p:g)!==d&&(b=w.id(),o[b]||(o[b]=!0,s.push({x:h,y:m,edge:w})),m in t?t[h].low=Math.min(t[h].low,t[m].id):(u(c,m,h),t[h].low=Math.min(t[h].low,t[m].low),t[h].id<=t[m].low&&(t[h].cutVertex=!0,function(c,h){for(var d=s.length-1,y=[],g=e.spawn();s[d].x!=c||s[d].y!=h;)y.push(s.pop().edge),d--;y.push(s.pop().edge),y.forEach(function(p){var m=p.connectedNodes().intersection(e);g.merge(p),m.forEach(function(b){var w=b.id(),E=b.connectedEdges().intersection(e);g.merge(b),t[w].cutVertex?g.merge(E.filter(function(C){return C.isLoop()})):g.merge(E)})}),i.push(g)}(h,m))))})};e.forEach(function(f){if(f.isNode()){var c=f.id();c in t||(n=0,u(c,c),t[c].cutVertex=n>1)}});var v=Object.keys(t).filter(function(f){return t[f].cutVertex}).map(function(f){return e.getElementById(f)});return{cut:e.spawn(v),components:i}},ln=function(){var e=this,t={},a=0,n=[],i=[],s=e.spawn(e),o=function(u){if(i.push(u),t[u]={index:a,low:a++,explored:!1},e.getElementById(u).connectedEdges().intersection(e).forEach(function(y){var g=y.target().id();g!==u&&(g in t||o(g),t[g].explored||(t[u].low=Math.min(t[u].low,t[g].low)))}),t[u].index===t[u].low){for(var f=e.spawn();;){var c=i.pop();if(f.merge(e.getElementById(c)),t[c].low=t[u].index,t[c].explored=!0,c===u)break}var h=f.edgesWith(f),d=f.merge(h);n.push(d),s=s.difference(d)}};return e.forEach(function(l){if(l.isNode()){var u=l.id();u in t||o(u)}}),{cut:s,components:n}},Du={};[da,_c,Gc,Wc,$c,Yc,Qc,Td,Ft,Vt,Di,zd,Zd,eh,oh,lh,{hopcroftTarjanBiconnected:un,htbc:un,htb:un,hopcroftTarjanBiconnectedComponents:un},{tarjanStronglyConnected:ln,tsc:ln,tscc:ln,tarjanStronglyConnectedComponents:ln}].forEach(function(r){he(Du,r)});var Ar=function(e){if(!(this instanceof Ar))return new Ar(e);this.id="Thenable/1.0.7",this.state=0,this.fulfillValue=void 0,this.rejectReason=void 0,this.onFulfilled=[],this.onRejected=[],this.proxy={then:this.then.bind(this)},"function"==typeof e&&e.call(this,this.fulfill.bind(this),this.reject.bind(this))};Ar.prototype={fulfill:function(e){return Au(this,1,"fulfillValue",e)},reject:function(e){return Au(this,2,"rejectReason",e)},then:function(e,t){var a=this,n=new Ar;return a.onFulfilled.push(Lu(e,n,"fulfill")),a.onRejected.push(Lu(t,n,"reject")),Ru(a),n.proxy}};var Au=function(e,t,a,n){return 0===e.state&&(e.state=t,e[a]=n,Ru(e)),e},Ru=function(e){1===e.state?Mu(e,"onFulfilled",e.fulfillValue):2===e.state&&Mu(e,"onRejected",e.rejectReason)},Mu=function(e,t,a){if(0!==e[t].length){var n=e[t];e[t]=[];var i=function(){for(var o=0;o0:void 0}},clearQueue:function(){return function(){var t=this,n=void 0!==t.length?t:[t];if(!(this._private.cy||this).styleEnabled())return this;for(var s=0;s-1}}(),n=function Ah(){if(nl)return rs;nl=1;var r=cn();return rs=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}}();function i(s){var o=-1,l=null==s?0:s.length;for(this.clear();++o-1&&a%1==0&&a0&&this.spawn(n).updateStyle().emit("class"),t},addClass:function(e){return this.toggleClass(e,!0)},hasClass:function(e){var t=this[0];return null!=t&&t._private.classes.has(e)},toggleClass:function(e,t){ze(e)||(e=e.match(/\S+/g)||[]);for(var a=this,n=void 0===t,i=[],s=0,o=a.length;s0&&this.spawn(i).updateStyle().emit("class"),a},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,t){var a=this;if(null==t)t=250;else if(0===t)return a;return a.addClass(e),setTimeout(function(){a.removeClass(e)},t),a}};hn.className=hn.classNames=hn.classes;var Be={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:"\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'",number:er,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};Be.variable="(?:[\\w-.]|(?:\\\\"+Be.metaChar+"))+",Be.className="(?:[\\w-]|(?:\\\\"+Be.metaChar+"))+",Be.value=Be.string+"|"+Be.number,Be.id=Be.variable,function(){var r,e,t;for(r=Be.comparatorOp.split("|"),t=0;t=0)&&"="!==e&&(Be.comparatorOp+="|\\!"+e)}();var ie_GROUP=0,ie_COLLECTION=1,ie_FILTER=2,ie_DATA_COMPARE=3,ie_DATA_EXIST=4,ie_DATA_BOOL=5,ie_META_COMPARE=6,ie_STATE=7,ie_ID=8,ie_CLASS=9,ie_UNDIRECTED_EDGE=10,ie_DIRECTED_EDGE=11,ie_NODE_SOURCE=12,ie_NODE_TARGET=13,ie_NODE_NEIGHBOR=14,ie_CHILD=15,ie_DESCENDANT=16,ie_PARENT=17,ie_ANCESTOR=18,ie_COMPOUND_SPLIT=19,ie_TRUE=20,Rs=[{selector:":selected",matches:function(e){return e.selected()}},{selector:":unselected",matches:function(e){return!e.selected()}},{selector:":selectable",matches:function(e){return e.selectable()}},{selector:":unselectable",matches:function(e){return!e.selectable()}},{selector:":locked",matches:function(e){return e.locked()}},{selector:":unlocked",matches:function(e){return!e.locked()}},{selector:":visible",matches:function(e){return e.visible()}},{selector:":hidden",matches:function(e){return!e.visible()}},{selector:":transparent",matches:function(e){return e.transparent()}},{selector:":grabbed",matches:function(e){return e.grabbed()}},{selector:":free",matches:function(e){return!e.grabbed()}},{selector:":removed",matches:function(e){return e.removed()}},{selector:":inside",matches:function(e){return!e.removed()}},{selector:":grabbable",matches:function(e){return e.grabbable()}},{selector:":ungrabbable",matches:function(e){return!e.grabbable()}},{selector:":animated",matches:function(e){return e.animated()}},{selector:":unanimated",matches:function(e){return!e.animated()}},{selector:":parent",matches:function(e){return e.isParent()}},{selector:":childless",matches:function(e){return e.isChildless()}},{selector:":child",matches:function(e){return e.isChild()}},{selector:":orphan",matches:function(e){return e.isOrphan()}},{selector:":nonorphan",matches:function(e){return e.isChild()}},{selector:":compound",matches:function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()}},{selector:":loop",matches:function(e){return e.isLoop()}},{selector:":simple",matches:function(e){return e.isSimple()}},{selector:":active",matches:function(e){return e.active()}},{selector:":inactive",matches:function(e){return!e.active()}},{selector:":backgrounding",matches:function(e){return e.backgrounding()}},{selector:":nonbackgrounding",matches:function(e){return!e.backgrounding()}}].sort(function(r,e){return function(e,t){return-1*So(e,t)}(r.selector,e.selector)}),ug=function(){for(var e,r={},t=0;t0&&v.edgeCount>0)return Me("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(v.edgeCount>1)return Me("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;1===v.edgeCount&&Me("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},toString:function(){if(null!=this.toStringCache)return this.toStringCache;for(var e=function(v){return v??""},t=function(v){return ve(v)?'"'+v+'"':e(v)},a=function(v){return" "+v+" "},i=function(v,f){return v.checks.reduce(function(c,h,d){return c+(f===v&&0===d?"$":"")+function(v,f){var c=v.type,h=v.value;switch(c){case ie_GROUP:var d=e(h);return d.substring(0,d.length-1);case ie_DATA_COMPARE:var y=v.field,g=v.operator;return"["+y+a(e(g))+t(h)+"]";case ie_DATA_BOOL:var p=v.operator,m=v.field;return"["+e(p)+m+"]";case ie_DATA_EXIST:return"["+v.field+"]";case ie_META_COMPARE:var w=v.operator;return"[["+v.field+a(e(w))+t(h)+"]]";case ie_STATE:return h;case ie_ID:return"#"+h;case ie_CLASS:return"."+h;case ie_PARENT:case ie_CHILD:return i(v.parent,f)+a(">")+i(v.child,f);case ie_ANCESTOR:case ie_DESCENDANT:return i(v.ancestor,f)+" "+i(v.descendant,f);case ie_COMPOUND_SPLIT:var C=i(v.left,f),x=i(v.subject,f),k=i(v.right,f);return C+(C.length>0?" ":"")+x+k;case ie_TRUE:return""}}(h,f)},"")},s="",o=0;o1&&o=0&&(t=t.replace("!",""),f=!0),t.indexOf("@")>=0&&(t=t.replace("@",""),v=!0),(i||o||v)&&(l=i||s?""+e:"",u=""+a),v&&(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=0===l.indexOf(u);break;case"=":n=e===a;break;case">":c=!0,n=e>a;break;case">=":c=!0,n=e>=a;break;case"<":c=!0,n=e0;){var v=n.shift();e(v),i.add(v.id()),o&&a(n,i,v)}return r}function Fl(r,e,t){if(t.isParent())for(var a=t._private.children,n=0;n1&&void 0!==arguments[1])||arguments[1];return Is(this,r,e,Fl)},Wt.forEachUp=function(r){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return Is(this,r,e,Vl)},Wt.forEachUpAndDown=function(r){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return Is(this,r,e,Eg)},Wt.ancestors=Wt.parents,ba=ql={data:Le.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),removeData:Le.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:Le.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Le.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:Le.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:Le.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}},ba.attr=ba.data,ba.removeAttr=ba.removeData;var Cg=ql,gn={};function Os(r){return function(e){var t=this;if(void 0===e&&(e=!0),0===t.length);else if(t.isNode()&&!t.removed()){for(var a=0,n=t[0],i=n._private.edges,s=0;se}),minIndegree:Ut("indegree",function(r,e){return re}),minOutdegree:Ut("outdegree",function(r,e){return re})}),he(gn,{totalDegree:function(e){for(var t=0,a=this.nodes(),n=0;n0,p=g;g&&(y=y[0]);var m=p?y.position():{x:0,y:0};return i={x:d.x-m.x,y:d.y-m.y},void 0===e?i:i[e]}for(var l=0;l0,c=f;f&&(v=v[0]);var h=c?v.position():{x:0,y:0};void 0!==t?u.position(e,t+h[e]):void 0!==i&&u.position({x:i.x+h.x,y:i.y+h.y})}}else if(!s)return;return this}},Rr.modelPosition=Rr.point=Rr.position,Rr.modelPositions=Rr.points=Rr.positions,Rr.renderedPoint=Rr.renderedPosition,Rr.relativePoint=Rr.relativePosition;var $t,lt,Tg=_l;$t=lt={},lt.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}},lt.dirtyCompoundBoundsCache=function(){var r=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.cy();return e.styleEnabled()&&e.hasCompoundNodes()?(this.forEachUp(function(t){if(t.isParent()){var a=t._private;a.compoundBoundsClean=!1,a.bbCache=null,r||t.emitAndNotify("bounds")}}),this):this},lt.updateCompoundBounds=function(){var r=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.cy();if(!e.styleEnabled()||!e.hasCompoundNodes())return this;if(!r&&e.batching())return this;function t(s){if(s.isParent()){var o=s._private,l=s.children(),u="include"===s.pstyle("compound-sizing-wrt-labels").value,v={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")}},f=l.boundingBox({includeLabels:u,includeOverlays:!1,useCache:!1}),c=o.position;(0===f.w||0===f.h)&&((f={w:s.pstyle("width").pfValue,h:s.pstyle("height").pfValue}).x1=c.x-f.w/2,f.x2=c.x+f.w/2,f.y1=c.y-f.h/2,f.y2=c.y+f.h/2);var y=v.width.left.value;"px"===v.width.left.units&&v.width.val>0&&(y=100*y/v.width.val);var g=v.width.right.value;"px"===v.width.right.units&&v.width.val>0&&(g=100*g/v.width.val);var p=v.height.top.value;"px"===v.height.top.units&&v.height.val>0&&(p=100*p/v.height.val);var m=v.height.bottom.value;"px"===v.height.bottom.units&&v.height.val>0&&(m=100*m/v.height.val);var b=h(v.width.val-f.w,y,g),w=b.biasDiff,E=b.biasComplementDiff,C=h(v.height.val-f.h,p,m),x=C.biasDiff,k=C.biasComplementDiff;o.autoPadding=function d(S,P,D,A){if("%"!==D.units)return"px"===D.units?D.pfValue:0;switch(A){case"width":return S>0?D.pfValue*S:0;case"height":return P>0?D.pfValue*P:0;case"average":return S>0&&P>0?D.pfValue*(S+P)/2:0;case"min":return S>0&&P>0?S>P?D.pfValue*P:D.pfValue*S:0;case"max":return S>0&&P>0?S>P?D.pfValue*S:D.pfValue*P:0;default:return 0}}(f.w,f.h,s.pstyle("padding"),s.pstyle("padding-relative-to").value),o.autoWidth=Math.max(f.w,v.width.val),c.x=(-w+f.x1+f.x2+E)/2,o.autoHeight=Math.max(f.h,v.height.val),c.y=(-x+f.y1+f.y2+k)/2}function h(S,P,D){var A=0,B=0,R=P+D;return S>0&&R>0&&(A=P/R*S,B=D/R*S),{biasDiff:A,biasComplementDiff:B}}}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)},xt=function(e,t){return null==t?e:Mr(e,t.x1,t.y1,t.x2,t.y2)},wa=function(e,t,a){return wr(e,t,a)},pn=function(e,t,a){if(!t.cy().headless()){var l,u,n=t._private,i=n.rstyle,s=i.arrowWidth/2;if("none"!==t.pstyle(a+"-arrow-shape").value){"source"===a?(l=i.srcX,u=i.srcY):"target"===a?(l=i.tgtX,u=i.tgtY):(l=i.midX,u=i.midY);var v=n.arrowBounds=n.arrowBounds||{},f=v[a]=v[a]||{};f.x1=l-s,f.y1=u-s,f.x2=l+s,f.y2=u+s,f.w=f.x2-f.x1,f.h=f.y2-f.y1,en(f,1),Mr(e,f.x1,f.y1,f.x2,f.y2)}}},Ns=function(e,t,a){if(!t.cy().headless()){var n;n=a?a+"-":"";var i=t._private,s=i.rstyle;if(t.pstyle(n+"label").strValue){var D,A,B,R,l=t.pstyle("text-halign"),u=t.pstyle("text-valign"),v=wa(s,"labelWidth",a),f=wa(s,"labelHeight",a),c=wa(s,"labelX",a),h=wa(s,"labelY",a),d=t.pstyle(n+"text-margin-x").pfValue,y=t.pstyle(n+"text-margin-y").pfValue,g=t.isEdge(),p=t.pstyle(n+"text-rotation"),m=t.pstyle("text-outline-width").pfValue,w=t.pstyle("text-border-width").pfValue/2,E=t.pstyle("text-background-padding").pfValue,x=f,k=v,S=k/2,P=x/2;if(g)D=c-S,A=c+S,B=h-P,R=h+P;else{switch(l.value){case"left":D=c-k,A=c;break;case"center":D=c-S,A=c+S;break;case"right":D=c,A=c+k}switch(u.value){case"top":B=h-x,R=h;break;case"center":B=h-P,R=h+P;break;case"bottom":B=h,R=h+x}}var M=d-Math.max(m,w)-E-2,I=d+Math.max(m,w)+E+2,L=y-Math.max(m,w)-E-2,O=y+Math.max(m,w)+E+2;D+=M,A+=I,B+=L,R+=O;var V=a||"main",G=i.labelBounds,N=G[V]=G[V]||{};N.x1=D,N.y1=B,N.x2=A,N.y2=R,N.w=A-D,N.h=R-B,N.leftPad=M,N.rightPad=I,N.topPad=L,N.botPad=O;var F=g&&"autorotate"===p.strValue,K=null!=p.pfValue&&0!==p.pfValue;if(F||K){var X=F?wa(i.rstyle,"labelAngle",a):p.pfValue,Q=Math.cos(X),Z=Math.sin(X),re=(D+A)/2,ae=(B+R)/2;if(!g){switch(l.value){case"left":re=A;break;case"right":re=D}switch(u.value){case"top":ae=R;break;case"bottom":ae=B}}var J=function(Ie,se){return{x:(Ie-=re)*Q-(se-=ae)*Z+re,y:Ie*Z+se*Q+ae}},z=J(D,B),q=J(D,R),H=J(A,B),ee=J(A,R);D=Math.min(z.x,q.x,H.x,ee.x),A=Math.max(z.x,q.x,H.x,ee.x),B=Math.min(z.y,q.y,H.y,ee.y),R=Math.max(z.y,q.y,H.y,ee.y)}var ne=V+"Rot",be=G[ne]=G[ne]||{};be.x1=D,be.y1=B,be.x2=A,be.y2=R,be.w=A-D,be.h=R-B,Mr(e,D,B,A,R),Mr(i.labelBounds.all,D,B,A,R)}return e}},Dg=function(e,t){var v,f,c,h,d,y,a=e._private.cy,n=a.styleEnabled(),i=a.headless(),s=xr(),o=e._private,l=e.isNode(),u=e.isEdge(),g=o.rstyle,p=l&&n?e.pstyle("bounds-expansion").pfValue:[0],m=function(Ge){return"none"!==Ge.pstyle("display").value},b=!n||m(e)&&(!u||m(e.source())&&m(e.target()));if(b){var E=0;n&&t.includeOverlays&&(0!==e.pstyle("overlay-opacity").value&&(E=e.pstyle("overlay-padding").value));var x=0;n&&t.includeUnderlays&&(0!==e.pstyle("underlay-opacity").value&&(x=e.pstyle("underlay-padding").value));var k=Math.max(E,x),P=0;if(n&&(P=e.pstyle("width").pfValue/2),l&&t.includeNodes){var D=e.position();d=D.x,y=D.y;var B=e.outerWidth()/2,M=e.outerHeight()/2;Mr(s,v=d-B,c=y-M,f=d+B,h=y+M),n&&t.includeOutlines&&function(e,t){if(!t.cy().headless()){var a=t.pstyle("outline-opacity").value,n=t.pstyle("outline-width").value;if(a>0&&n>0){var i=t.pstyle("outline-offset").value,s=t.pstyle("shape").value,o=n+i,l=(e.w+2*o)/e.w,u=(e.h+2*o)/e.h,f=0;["diamond","pentagon","round-triangle"].includes(s)?(l=(e.w+2.4*o)/e.w,f=-o/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(s)?l=(e.w+2.4*o)/e.w:"star"===s?(l=(e.w+2.8*o)/e.w,u=(e.h+2.6*o)/e.h,f=-o/3.8):"triangle"===s?(l=(e.w+2.8*o)/e.w,u=(e.h+2.4*o)/e.h,f=-o/1.4):"vee"===s&&(l=(e.w+4.4*o)/e.w,u=(e.h+3.8*o)/e.h,f=.5*-o);var c=e.h*u-e.h,h=e.w*l-e.w;if(rn(e,[Math.ceil(c/2),Math.ceil(h/2)]),0!==f){var d=function(e,t,a){return{x1:e.x1+t,x2:e.x2+t,y1:e.y1+a,y2:e.y2+a,w:e.w,h:e.h}}(e,0,f);iu(e,d)}}}}(s,e)}else if(u&&t.includeEdges)if(n&&!i){var I=e.pstyle("curve-style").strValue;if(v=Math.min(g.srcX,g.midX,g.tgtX),f=Math.max(g.srcX,g.midX,g.tgtX),c=Math.min(g.srcY,g.midY,g.tgtY),h=Math.max(g.srcY,g.midY,g.tgtY),Mr(s,v-=P,c-=P,f+=P,h+=P),"haystack"===I){var L=g.haystackPts;if(L&&2===L.length){if(v=L[0].x,c=L[0].y,v>(f=L[1].x)){var O=v;v=f,f=O}if(c>(h=L[1].y)){var V=c;c=h,h=V}Mr(s,v-P,c-P,f+P,h+P)}}else if("bezier"===I||"unbundled-bezier"===I||I.endsWith("segments")||I.endsWith("taxi")){var G;switch(I){case"bezier":case"unbundled-bezier":G=g.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":G=g.linePts}if(null!=G)for(var N=0;N(f=Z.x)){var re=v;v=f,f=re}if((c=X.y)>(h=Z.y)){var ae=c;c=h,h=ae}Mr(s,v-=P,c-=P,f+=P,h+=P)}if(n&&t.includeEdges&&u&&(pn(s,e,"mid-source"),pn(s,e,"mid-target"),pn(s,e,"source"),pn(s,e,"target")),n)if("yes"===e.pstyle("ghost").value){var z=e.pstyle("ghost-offset-x").pfValue,q=e.pstyle("ghost-offset-y").pfValue;Mr(s,s.x1+z,s.y1+q,s.x2+z,s.y2+q)}var H=o.bodyBounds=o.bodyBounds||{};su(H,s),rn(H,p),en(H,1),n&&(v=s.x1,f=s.x2,c=s.y1,h=s.y2,Mr(s,v-k,c-k,f+k,h+k));var ee=o.overlayBounds=o.overlayBounds||{};su(ee,s),rn(ee,p),en(ee,1);var ne=o.labelBounds=o.labelBounds||{};null!=ne.all?function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0}(ne.all):ne.all=xr(),n&&t.includeLabels&&(t.includeMainLabels&&Ns(s,e,null),u&&(t.includeSourceLabels&&Ns(s,e,"source"),t.includeTargetLabels&&Ns(s,e,"target")))}return s.x1=Br(s.x1),s.y1=Br(s.y1),s.x2=Br(s.x2),s.y2=Br(s.y2),s.w=Br(s.x2-s.x1),s.h=Br(s.y2-s.y1),s.w>0&&s.h>0&&b&&(rn(s,p),en(s,1)),s},Wl=function(e){var t=0,a=function(s){return(s?1:0)<0&&void 0!==arguments[0]?arguments[0]:_g,e=arguments.length>1?arguments[1]:void 0,t=0;t=0;o--)s(o);return this},vt.removeAllListeners=function(){return this.removeListener("*")},vt.emit=vt.trigger=function(r,e,t){var a=this.listeners,n=a.length;return this.emitting++,ze(e)||(e=[e]),Gg(this,function(i,s){null!=t&&(a=[{event:s.event,type:s.type,namespace:s.namespace,callback:t}],n=a.length);for(var o=function(){var v=a[l];if(v.type===s.type&&(!v.namespace||v.namespace===s.namespace||".*"===v.namespace)&&i.eventMatches(i.context,v,s)){var f=[s];null!=e&&function(e,t){for(var a=0;a1&&!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},unmergeOne:function(e){e=e[0];var t=this._private,a=e._private.data.id,i=t.map.get(a);if(!i)return this;var s=i.index;return this.unmergeAt(s),this},unmerge:function(e){var t=this._private.cy;if(!e)return this;if(e&&ve(e)){var a=e;e=t.mutableElements().filter(a)}for(var n=0;n=0;t--){e(this[t])&&this.unmergeAt(t)}return this},map:function(e,t){for(var a=[],n=this,i=0;ia&&(a=l,n=o)}return{value:a,ele:n}},min:function(e,t){for(var n,a=1/0,i=this,s=0;s=0&&i"u"?"undefined":Je(Symbol))!=e&&Je(Symbol.iterator)!=e&&(wn[Symbol.iterator]=function(){var a=this,n={value:void 0,done:!1},i=0,s=this.length;return yo({next:function(){return i1&&void 0!==arguments[1])||arguments[1],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)}},numericStyle:function(e){var t=this[0];if(t.cy().styleEnabled()&&t){var a=t.pstyle(e);return void 0!==a.pfValue?a.pfValue:a.value}},numericStyleUnits:function(e){var t=this[0];if(t.cy().styleEnabled()&&t)return t.pstyle(e).units},renderedStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var a=this[0];return a?t.style().getRenderedStyle(a,e):void 0},style:function(e,t){var a=this.cy();if(!a.styleEnabled())return this;var i=a.style();if(ke(e)){var s=e;i.applyBypass(this,s,false),this.emitAndNotify("style")}else if(ve(e)){if(void 0===t){var o=this[0];return o?i.getStylePropertyValue(o,e):void 0}i.applyBypass(this,e,t,false),this.emitAndNotify("style")}else if(void 0===e){var l=this[0];return l?i.getRawStyle(l):void 0}return this},removeStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=t.style(),i=this;if(void 0===e)for(var s=0;s0&&e.push(v[0]),e.push(o[0])}return this.spawn(e,!0).filter(r)},"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}}),dr.neighbourhood=dr.neighborhood,dr.closedNeighbourhood=dr.closedNeighborhood,dr.openNeighbourhood=dr.openNeighborhood,he(dr,{source:kr(function(e){var a,t=this[0];return t&&(a=t._private.source||t.cy().collection()),a&&e?a.filter(e):a},"source"),target:kr(function(e){var a,t=this[0];return t&&(a=t._private.target||t.cy().collection()),a&&e?a.filter(e):a},"target"),sources:fv({attr:"source"}),targets:fv({attr:"target"})}),he(dr,{edgesWith:kr(cv(),"edgesWith"),edgesTo:kr(cv({thisIsSrc:!0}),"edgesTo")}),he(dr,{connectedEdges:kr(function(r){for(var e=[],a=0;a0);return s},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}}),dr.componentsOf=dr.components;var lr=function(e,t){var a=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0!==e){var i=new $r,s=!1;if(t){if(t.length>0&&ke(t[0])&&!sa(t[0])){s=!0;for(var o=[],l=new It,u=0,v=t.length;u0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],t=this,a=t.cy(),n=a._private,i=[],s=[],l=0,u=t.length;l0){for(var V=o.length===t.length?t:new lr(a,o),G=0;G0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],t=this,a=[],n={},i=t._private.cy;function s(R){for(var M=R._private.edges,I=0;I0&&(r?D.emitAndNotify("remove"):e&&D.emit("remove"));for(var A=0;Av&&Math.abs(d.v)>v;);return c?function(y){return l[y*(l.length-1)|0]}:u}}(),qe=function(e,t,a,n){var i=function Jg(r,e,t,a){var n=4,i=.001,s=1e-7,o=10,l=11,u=1/(l-1),v=typeof Float32Array<"u";if(4!==arguments.length)return!1;for(var f=0;f<4;++f)if("number"!=typeof arguments[f]||isNaN(arguments[f])||!isFinite(arguments[f]))return!1;r=Math.min(r,1),t=Math.min(t,1),r=Math.max(r,0),t=Math.max(t,0);var c=v?new Float32Array(l):new Array(l);function h(P,D){return 1-3*D+3*P}function d(P,D){return 3*D-6*P}function y(P){return 3*P}function g(P,D,A){return((h(D,A)*P+d(D,A))*P+y(D))*P}function p(P,D,A){return 3*h(D,A)*P*P+2*d(D,A)*P+y(D)}function m(P,D){for(var A=0;A0?A=R:D=R}while(Math.abs(B)>s&&++M=i?m(P,M):0===I?M:w(P,D,D+u)}var C=!1;function x(){C=!0,(r!==e||t!==a)&&b()}var k=function(D){return C||x(),r===e&&t===a?D:0===D?0:1===D?1:g(E(D),e,a)};k.getControlPoints=function(){return[{x:r,y:e},{x:t,y:a}]};var S="generateBezier("+[r,e,t,a]+")";return k.toString=function(){return S},k}(e,t,a,n);return function(s,o,l){return s+(o-s)*i(l)}},Tn={linear:function(e,t,a){return e+(t-e)*a},ease:qe(.25,.1,.25,1),"ease-in":qe(.42,0,1,1),"ease-out":qe(0,0,.58,1),"ease-in-out":qe(.42,0,.58,1),"ease-in-sine":qe(.47,0,.745,.715),"ease-out-sine":qe(.39,.575,.565,1),"ease-in-out-sine":qe(.445,.05,.55,.95),"ease-in-quad":qe(.55,.085,.68,.53),"ease-out-quad":qe(.25,.46,.45,.94),"ease-in-out-quad":qe(.455,.03,.515,.955),"ease-in-cubic":qe(.55,.055,.675,.19),"ease-out-cubic":qe(.215,.61,.355,1),"ease-in-out-cubic":qe(.645,.045,.355,1),"ease-in-quart":qe(.895,.03,.685,.22),"ease-out-quart":qe(.165,.84,.44,1),"ease-in-out-quart":qe(.77,0,.175,1),"ease-in-quint":qe(.755,.05,.855,.06),"ease-out-quint":qe(.23,1,.32,1),"ease-in-out-quint":qe(.86,0,.07,1),"ease-in-expo":qe(.95,.05,.795,.035),"ease-out-expo":qe(.19,1,.22,1),"ease-in-out-expo":qe(1,0,0,1),"ease-in-circ":qe(.6,.04,.98,.335),"ease-out-circ":qe(.075,.82,.165,1),"ease-in-out-circ":qe(.785,.135,.15,.86),spring:function(e,t,a){if(0===a)return Tn.linear;var n=jg(e,t,a);return function(i,s,o){return i+(s-i)*n(o)}},"cubic-bezier":qe};function hv(r,e,t,a,n){if(1===a||e===t)return t;var i=n(e,t,a);return null==r||((r.roundValue||r.color)&&(i=Math.round(i)),void 0!==r.min&&(i=Math.max(i,r.min)),void 0!==r.max&&(i=Math.min(i,r.max))),i}function gv(r,e){return null!=r.pfValue||null!=r.value?null==r.pfValue||null!=e&&"%"===e.type.units?r.value:r.pfValue:r}function Xt(r,e,t,a,n){var i=null!=n?n.type:null;t<0?t=0:t>1&&(t=1);var s=gv(r,n),o=gv(e,n);if(te(s)&&te(o))return hv(i,s,o,t,a);if(ze(s)&&ze(o)){for(var l=[],u=0;u0?("spring"===h&&d.push(s.duration),s.easingImpl=Tn[h].apply(null,d)):s.easingImpl=Tn[h]}var g,y=s.easingImpl;if(g=0===s.duration?1:(t-l)/s.duration,s.applying&&(g=s.progress),g<0?g=0:g>1&&(g=1),null==s.delay){var p=s.startPosition,m=s.position;if(m&&n&&!r.locked()){var b={};Sa(p.x,m.x)&&(b.x=Xt(p.x,m.x,g,y)),Sa(p.y,m.y)&&(b.y=Xt(p.y,m.y,g,y)),r.position(b)}var w=s.startPan,E=s.pan,C=i.pan,x=null!=E&&a;x&&(Sa(w.x,E.x)&&(C.x=Xt(w.x,E.x,g,y)),Sa(w.y,E.y)&&(C.y=Xt(w.y,E.y,g,y)),r.emit("pan"));var k=s.startZoom,S=s.zoom,P=null!=S&&a;P&&(Sa(k,S)&&(i.zoom=ga(i.minZoom,Xt(k,S,g,y),i.maxZoom)),r.emit("zoom")),(x||P)&&r.emit("viewport");var D=s.style;if(D&&D.length>0&&n){for(var A=0;A=0;x--){(0,C[x])()}C.splice(0,C.length)},m=h.length-1;m>=0;m--){var b=h[m],w=b._private;w.stopped?(h.splice(m,1),w.hooked=!1,w.playing=!1,w.started=!1,p(w.frames)):!w.playing&&!w.applying||(w.playing&&w.applying&&(w.applying=!1),w.started||rp(0,b,r),ep(v,b,r,f),w.applying&&(w.applying=!1),p(w.frames),null!=w.step&&w.step(r),b.completed()&&(h.splice(m,1),w.hooked=!1,w.playing=!1,w.started=!1,p(w.completes)),y=!0)}return!f&&0===h.length&&0===d.length&&a.push(v),y}for(var i=!1,s=0;s0?e.notify("draw",t):e.notify("draw")),t.unmerge(a),e.emit("step")}var tp={animate:Le.animate(),animation:Le.animation(),animated:Le.animated(),clearQueue:Le.clearQueue(),delay:Le.delay(),delayAnimation:Le.delayAnimation(),stop:Le.stop(),addToAnimationPool:function(e){!this.styleEnabled()||this._private.aniEles.merge(e)},stopAnimationLoop:function(){this._private.animationsRunning=!1},startAnimationLoop:function(){var e=this;if(e._private.animationsRunning=!0,e.styleEnabled()){var a=e.renderer();a&&a.beforeRender?a.beforeRender(function(i,s){pv(s,e)},a.beforeRenderPriorities.animations):function t(){!e._private.animationsRunning||Ka(function(i){pv(i,e),t()})}()}}},ap={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,a){var n=t.qualifier;return null==n||e!==a.target&&sa(a.target)&&n.matches(a.target)},addEventFields:function(e,t){t.cy=e,t.target=e},callbackContext:function(e,t,a){return null!=t.qualifier?a.target:e}},Sn=function(e){return ve(e)?new st(e):e},yv={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new mn(ap,this)),this},emitter:function(){return this._private.emitter},on:function(e,t,a){return this.emitter().on(e,Sn(t),a),this},removeListener:function(e,t,a){return this.emitter().removeListener(e,Sn(t),a),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,a){return this.emitter().one(e,Sn(t),a),this},once:function(e,t,a){return this.emitter().one(e,Sn(t),a),this},emit:function(e,t){return this.emitter().emit(e,t),this},emitAndNotify:function(e,t){return this.emit(e),this.notify(e,t),this}};Le.eventAliasesOn(yv);var Vs={png:function(e){return e=e||{},this._private.renderer.png(e)},jpg:function(e){var t=this._private.renderer;return(e=e||{}).bg=e.bg||"#fff",t.jpg(e)}};Vs.jpeg=Vs.jpg;var Dn={layout:function(e){var t=this;if(null!=e)if(null!=e.name){var i,a=e.name,n=t.extension("layout",a);if(null!=n)return i=ve(e.eles)?t.$(e.eles):null!=e.eles?e.eles:t.$(),new n(he({},e,{cy:t,eles:i}));We("No such layout `"+a+"` found. Did you forget to import it and `cytoscape.use()` it?")}else We("A `name` must be specified to make a layout");else We("Layout options must be specified to make a layout")}};Dn.createLayout=Dn.makeLayout=Dn.layout;var np={notify:function(e,t){var a=this._private;if(this.batching()){a.batchNotifications=a.batchNotifications||{};var n=a.batchNotifications[e]=a.batchNotifications[e]||this.collection();null!=t&&n.merge(t)}else if(a.notificationsEnabled){var i=this.renderer();this.destroyed()||!i||i.notify(e,t)}},notifications:function(e){var t=this._private;return void 0===e?t.notificationsEnabled:(t.notificationsEnabled=!!e,this)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)},batching:function(){return this._private.batchCount>0},startBatch:function(){var e=this._private;return null==e.batchCount&&(e.batchCount=0),0===e.batchCount&&(e.batchStyleEles=this.collection(),e.batchNotifications={}),e.batchCount++,this},endBatch:function(){var e=this._private;if(0===e.batchCount)return this;if(e.batchCount--,0===e.batchCount){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},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData: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=[]})},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};qs.invalidateDimensions=qs.resize;var kn={collection:function(e,t){return ve(e)?this.$(e):Dr(e)?e.collection():ze(e)?(t||(t={}),new lr(this,e,t.unique,t.removed)):new lr(this)},nodes:function(e){var t=this.$(function(a){return a.isNode()});return e?t.filter(e):t},edges:function(e){var t=this.$(function(a){return a.isEdge()});return e?t.filter(e):t},$:function(e){var t=this._private.elements;return e?t.filter(e):t.spawnSelf()},mutableElements:function(){return this._private.elements}};kn.elements=kn.filter=kn.$;var nr={};nr.apply=function(r){for(var e=this,n=e._private.cy.collection(),i=0;i0;if(c||f&&h){var d=void 0;c&&h||c?d=u.properties:h&&(d=u.mappedProperties);for(var y=0;y1&&(w=1),o.color){var C=a.valueMin[0],x=a.valueMax[0],k=a.valueMin[1],S=a.valueMax[1],P=a.valueMin[2],D=a.valueMax[2],A=null==a.valueMin[3]?1:a.valueMin[3],B=null==a.valueMax[3]?1:a.valueMax[3],R=[Math.round(C+(x-C)*w),Math.round(k+(S-k)*w),Math.round(P+(D-P)*w),Math.round(A+(B-A)*w)];i={bypass:a.bypass,name:a.name,value:R,strValue:"rgb("+R[0]+", "+R[1]+", "+R[2]+")"}}else{if(!o.number)return!1;var M=a.valueMin+(a.valueMax-a.valueMin)*w;i=this.parse(a.name,M,a.bypass,c)}if(!i)return y(),!1;i.mapping=a,a=i;break;case s.data:for(var I=a.field.split("."),L=f.data,O=0;O0&&i>0){for(var o={},l=!1,u=0;u0?r.delayAnimation(s).play().promise().then(b):b()}).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)},nr.checkTrigger=function(r,e,t,a,n,i){var s=this.properties[e],o=n(s);r.removed()||null!=o&&o(t,a,r)&&i(s)},nr.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)})},nr.checkBoundsTrigger=function(r,e,t,a){this.checkTrigger(r,e,t,a,function(n){return n.triggersBounds},function(n){r.dirtyCompoundBoundsCache(),r.dirtyBoundingBoxCache()})},nr.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()})})},nr.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()})})},nr.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 ka={applyBypass:function(r,e,t,a){var i=[];if("*"===e||"**"===e){if(void 0!==t)for(var o=0;on.length?a.substr(n.length):""}function l(){i=i.length>s.length?i.substr(s.length):""}for(a=a.replace(/[/][*](\s|.)+?[*][/]/g,"");;){if(a.match(/^\s*$/))break;var v=a.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!v){Me("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+a);break}n=v[0];var f=v[1];if("core"!==f)if(new st(f).invalid){Me("Skipping parsing of block: Invalid selector found in string stylesheet: "+f),o();continue}var h=v[2],d=!1;i=h;for(var y=[];;){if(i.match(/^\s*$/))break;var p=i.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!p){Me("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+h),d=!0;break}s=p[0];var m=p[1],b=p[2];if(this.properties[m])t.parse(m,b)?(y.push({name:m,val:b}),l()):(Me("Skipping property: Invalid property definition in: "+s),l());else Me("Skipping property: Invalid property name in: "+s),l()}if(d){o();break}t.selector(f);for(var C=0;C=7&&"d"===e[0]&&(v=new RegExp(o.data.regex).exec(e))){if(t)return!1;var c=o.data;return{name:r,value:v,strValue:""+e,mapped:c,field:v[1],bypass:t}}if(e.length>=10&&"m"===e[0]&&(f=new RegExp(o.mapData.regex).exec(e))){if(t||u.multiple)return!1;var h=o.mapData;if(!u.color&&!u.number)return!1;var d=this.parse(r,f[4]);if(!d||d.mapped)return!1;var y=this.parse(r,f[5]);if(!y||y.mapped)return!1;if(d.pfValue===y.pfValue||d.strValue===y.strValue)return Me("`"+r+": "+e+"` is not a valid mapper because the output range is zero; converting to `"+r+": "+d.strValue+"`"),this.parse(r,d.strValue);if(u.color){var g=d.value,p=y.value;if(!(g[0]!==p[0]||g[1]!==p[1]||g[2]!==p[2]||g[3]!==p[3]&&(null!=g[3]&&1!==g[3]||null!=p[3]&&1!==p[3])))return!1}return{name:r,value:f,strValue:""+e,mapped:h,field:f[1],fieldMin:parseFloat(f[2]),fieldMax:parseFloat(f[3]),valueMin:d.value,valueMax:y.value,bypass:t}}}if(u.multiple&&"multiple"!==a){var b;if(b=l?e.split(/\s+/):ze(e)?e:[e],u.evenMultiple&&b.length%2!=0)return null;for(var w=[],E=[],C=[],x="",k=!1,S=0;S0?" ":"")+P.strValue}return u.validate&&!u.validate(w,E)?null:u.singleEnum&&k?1===w.length&&ve(w[0])?{name:r,value:w[0],strValue:w[0],bypass:t}:null:{name:r,value:w,pfValue:C,strValue:x,bypass:t,units:E}}var D=function(){for(var J=0;Ju.max||u.strictMax&&e===u.max))return null;var I={name:r,value:e,strValue:""+e+(A||""),units:A,bypass:t};return u.unitless||"px"!==A&&"em"!==A?I.pfValue=e:I.pfValue="px"!==A&&A?this.getEmSizeInPixels()*e:e,("ms"===A||"s"===A)&&(I.pfValue="ms"===A?e:1e3*e),("deg"===A||"rad"===A)&&(I.pfValue="rad"===A?e:function(e){return Math.PI*e/180}(e)),"%"===A&&(I.pfValue=e/100),I}if(u.propList){var L=[],O=""+e;if("none"!==O){for(var V=O.split(/\s*,\s*|\s+/),G=0;G0&&o>0&&!isNaN(a.w)&&!isNaN(a.h)&&a.w>0&&a.h>0)return{zoom:l=(l=(l=Math.min((s-2*t)/a.w,(o-2*t)/a.h))>this._private.maxZoom?this._private.maxZoom:l)=a.minZoom&&(a.maxZoom=t),this},minZoom:function(e){return void 0===e?this._private.minZoom:this.zoomRange({min:e})},maxZoom:function(e){return void 0===e?this._private.maxZoom:this.zoomRange({max:e})},getZoomedViewport:function(e){var i,s,t=this._private,a=t.pan,n=t.zoom,o=!1;if(t.zoomingEnabled||(o=!0),te(e)?s=e:ke(e)&&(s=e.level,null!=e.position?i=Ja(e.position,n,a):null!=e.renderedPosition&&(i=e.renderedPosition),null!=i&&!t.panningEnabled&&(o=!0)),s=(s=s>t.maxZoom?t.maxZoom:s)t.maxZoom||!t.zoomingEnabled?s=!0:(t.zoom=l,i.push("zoom"))}if(n&&(!s||!e.cancelOnFailedZoom)&&t.panningEnabled){var u=e.pan;te(u.x)&&(t.pan.x=u.x,o=!1),te(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},center:function(e){var t=this.getCenterPan(e);return t&&(this._private.pan=t,this.emit("pan viewport"),this.notify("viewport")),this},getCenterPan:function(e,t){if(this._private.panningEnabled){if(ve(e)){var a=e;e=this.mutableElements().filter(a)}else Dr(e)||(e=this.mutableElements());if(0!==e.length){var n=e.boundingBox(),i=this.width(),s=this.height();return{x:(i-(t=void 0===t?this._private.zoom:t)*(n.x1+n.x2))/2,y:(s-t*(n.y1+n.y2))/2}}}},reset:function(){return this._private.panningEnabled&&this._private.zoomingEnabled?(this.viewport({pan:{x:0,y:0},zoom:1}),this):this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var n,i,e=this._private,t=e.container,a=this;return e.sizeCache=e.sizeCache||(t?(n=a.window().getComputedStyle(t),i=function(o){return parseFloat(n.getPropertyValue(o))},{width:t.clientWidth-i("padding-left")-i("padding-right"),height:t.clientHeight-i("padding-top")-i("padding-bottom")}):{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,t=this._private.zoom,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},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},multiClickDebounceTime:function(e){return e?(this._private.multiClickDebounceTime=e,this):this._private.multiClickDebounceTime}};Et.centre=Et.center,Et.autolockNodes=Et.autolock,Et.autoungrabifyNodes=Et.autoungrabify;var Ba={data:Le.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:Le.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:Le.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:Le.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};Ba.attr=Ba.data,Ba.removeAttr=Ba.removeData;var Pa=function(e){var t=this,a=(e=he({},e)).container;a&&!Ha(a)&&Ha(a[0])&&(a=a[0]);var n=a?a._cyreg:null;(n=n||{})&&n.cy&&(n.cy.destroy(),n={});var i=n.readies=n.readies||[];a&&(a._cyreg=n),n.cy=t;var s=void 0!==je&&void 0!==a&&!e.headless,o=e;o.layout=he({name:s?"grid":"null"},o.layout),o.renderer=he({name:s?"canvas":"null"},o.renderer);var l=function(d,y,g){return void 0!==y?y:void 0!==g?g:d},u=this._private={container:a,ready:!1,options:o,elements:new lr(this),listeners:[],aniEles:new lr(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:void 0===o.styleEnabled?s:o.styleEnabled,zoom:te(o.zoom)?o.zoom:1,pan:{x:ke(o.pan)&&te(o.pan.x)?o.pan.x:0,y:ke(o.pan)&&te(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});u.styleEnabled&&t.setStyle([]);var f=he({},o,o.renderer);t.initRenderer(f);!function(d,y){if(d.some(ec))return Gt.all(d).then(y);y(d)}([o.style,o.elements],function(h){var d=h[0],y=h[1];u.styleEnabled&&t.style().append(d),function(d,y,g){t.notifications(!1);var p=t.mutableElements();p.length>0&&p.remove(),null!=d&&(ke(d)||ze(d))&&t.add(d),t.one("layoutready",function(b){t.notifications(!0),t.emit(b),t.one("load",y),t.emitAndNotify("load")}).one("layoutstop",function(){t.one("done",g),t.emit("done")});var m=he({},t._private.options.layout);m.eles=t.elements(),t.layout(m).run()}(y,function(){t.startAnimationLoop(),u.ready=!0,He(o.ready)&&t.on("ready",o.ready);for(var g=0;g0,o=!!r.boundingBox,l=e.extent(),u=xr(o?r.boundingBox:{x1:l.x1,y1:l.y1,w:l.w,h:l.h});if(Dr(r.roots))v=r.roots;else if(ze(r.roots)){for(var f=[],c=0;c0;){var M=D.shift(),I=P(M,A);if(I)M.outgoers().filter(function(se){return se.isNode()&&t.has(se)}).forEach(B);else if(null===I){Me("Detected double maximal shift for node `"+M.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}var L=0;if(r.avoidOverlap)for(var O=0;O0&&m[0].length<=3?ye/2:0),De=2*Math.PI/m[ge].length*de;return 0===ge&&1===m[0].length&&(we=1),{x:ee_x+we*Math.cos(De),y:ee_y+we*Math.sin(De)}}var Fe=m[ge].length,$e=Math.max(1===Fe?0:o?(u.w-2*r.padding-ne.w)/((r.grid?Ge:Fe)-1):(u.w-2*r.padding-ne.w)/((r.grid?Ge:Fe)+1),L);return{x:ee_x+(de+1-(Fe+1)/2)*$e,y:ee_y+(ge+1-(Z+1)/2)*be}}),this};var fp={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,radius:void 0,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function wv(r){this.options=he({},fp,r)}wv.prototype.run=function(){var r=this.options,e=r,t=r.cy,a=e.eles,n=void 0!==e.counterclockwise?!e.counterclockwise:e.clockwise,i=a.nodes().not(":parent");e.sort&&(i=i.sort(e.sort));for(var v,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},u=(void 0===e.sweep?2*Math.PI-2*Math.PI/i.length:e.sweep)/Math.max(1,i.length-1),f=0,c=0;c1&&e.avoidOverlap){f*=1.75;var p=Math.cos(u)-Math.cos(0),m=Math.sin(u)-Math.sin(0),b=Math.sqrt(f*f/(p*p+m*m));v=Math.max(b,v)}return a.nodes().layoutPositions(this,e,function(C,x){var k=e.startAngle+x*u*(n?1:-1),S=v*Math.cos(k),P=v*Math.sin(k);return{x:o.x+S,y:o.y+P}}),this};var cp={fit:!0,padding:30,startAngle:1.5*Math.PI,sweep:void 0,clockwise:!0,equidistant:!1,minNodeSpacing:10,boundingBox:void 0,avoidOverlap:!0,nodeDimensionsIncludeLabels:!1,height:void 0,width:void 0,spacingFactor:void 0,concentric:function(e){return e.degree()},levelWidth:function(e){return e.maxDegree()/4},animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function xv(r){this.options=he({},cp,r)}xv.prototype.run=function(){for(var r=this.options,e=r,t=void 0!==e.counterclockwise?!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,v=0;v0)Math.abs(m[0].value-w.value)>=g&&(m=[],p.push(m));m.push(w)}var C=u+e.minNodeSpacing;if(!e.avoidOverlap){var x=p.length>0&&p[0].length>1,S=(Math.min(s.w,s.h)/2-C)/(p.length+x?1:0);C=Math.min(C,S)}for(var P=0,D=0;D1&&e.avoidOverlap){var M=Math.cos(R)-Math.cos(0),I=Math.sin(R)-Math.sin(0),L=Math.sqrt(C*C/(M*M+I*I));P=Math.max(L,P)}A.r=P,P+=C}if(e.equidistant){for(var O=0,V=0,G=0;G=r.numIter||(bp(a,r),a.temperature=a.temperature*r.coolingFactor,a.temperature=r.animationThreshold&&i(),Ka(v)):(Dv(a,r),o())};v()}else{for(;u;)u=s(l),l++;Dv(a,r),o()}return this},Rn.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},Rn.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var hp=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={},v=0;v0){o.graphSet.push(k);for(v=0;vn.count?0:n.graph},Ev=function(e,t,a,n){var i=n.graphSet[a];if(-10)var h=(f=n.nodeOverlap*v)*o/(c=Math.sqrt(o*o+l*l)),d=f*l/c;else{var f,y=Mn(e,o,l),g=Mn(t,-1*o,-1*l),p=g.x-y.x,m=g.y-y.y,b=p*p+m*m,c=Math.sqrt(b);h=(f=(e.nodeRepulsion+t.nodeRepulsion)/b)*p/c,d=f*m/c}e.isLocked||(e.offsetX-=h,e.offsetY-=d),t.isLocked||(t.offsetX+=h,t.offsetY+=d)}},Ep=function(e,t,a,n){if(a>0)var i=e.maxX-t.minX;else i=t.maxX-e.minX;if(n>0)var s=e.maxY-t.minY;else s=t.maxY-e.minY;return i>=0&&s>=0?Math.sqrt(i*i+s*s):0},Mn=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,v={};return 0===t&&0a?(v.x=n,v.y=i+s/2,v):0t&&-1*u<=l&&l<=u?(v.x=n-o/2,v.y=i-o*a/2/t,v):0=u)?(v.x=n+s*t/2/a,v.y=i+s/2,v):(0>a&&(l<=-1*u||l>=u)&&(v.x=n-s*t/2/a,v.y=i-s/2),v)},Cp=function(e,t){for(var a=0;a1){var g=t.gravity*h/y,p=t.gravity*d/y;c.offsetX+=g,c.offsetY+=p}}}}},Sp=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 i={x:e,y:t};return i},Sv=function(e,t){var a=e.parentId;if(null!=a){var n=t.layoutNodes[t.idToIndex[a]],i=!1;if((null==n.maxX||e.maxX+n.padRight>n.maxX)&&(n.maxX=e.maxX+n.padRight,i=!0),(null==n.minX||e.minX-n.padLeftn.maxY)&&(n.maxY=e.maxY+n.padBottom,i=!0),(null==n.minY||e.minY-n.padTopp&&(d+=g+t.componentSpacing,h=0,y=0,g=0)}}},Bp={fit:!0,padding:30,boundingBox:void 0,avoidOverlap:!0,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:!1,spacingFactor:void 0,condense:!1,rows:void 0,cols:void 0,position:function(e){},sort:void 0,animate:!1,animationDuration:500,animationEasing:void 0,animateFilter:function(e,t){return!0},ready:void 0,stop:void 0,transform:function(e,t){return t}};function kv(r){this.options=he({},Bp,r)}kv.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(0===i.h||0===i.w)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),v=function(X){if(null==X)return Math.min(l,u);Math.min(l,u)==l?l=X:u=X},f=function(X){if(null==X)return Math.max(l,u);Math.max(l,u)==l?l=X:u=X},c=e.rows,h=null!=e.cols?e.cols:e.columns;if(null!=c&&null!=h)l=c,u=h;else if(null!=c&&null==h)l=c,u=Math.ceil(s/l);else if(null==c&&null!=h)u=h,l=Math.ceil(s/u);else if(u*l>s){var d=v(),y=f();(d-1)*y>=s?v(d-1):(y-1)*d>=s&&f(y-1)}else for(;u*l=s?f(p+1):v(g+1)}var m=i.w/u,b=i.h/l;if(e.condense&&(m=0,b=0),e.avoidOverlap)for(var w=0;w=u&&(M=0,R++)},L={},O=0;O(M=yd(r,e,I[L],I[L+1],I[L+2],I[L+3])))return g(x,M),!0}else if("bezier"===S.edgeType||"multibezier"===S.edgeType||"self"===S.edgeType||"compound"===S.edgeType)for(I=S.allpts,L=0;L+5(M=pd(r,e,I[L],I[L+1],I[L+2],I[L+3],I[L+4],I[L+5])))return g(x,M),!0;O=O||k.source,V=V||k.target;var G=n.getArrowWidth(P,D),N=[{name:"source",x:S.arrowStartX,y:S.arrowStartY,angle:S.srcArrowAngle},{name:"target",x:S.arrowEndX,y:S.arrowEndY,angle:S.tgtArrowAngle},{name:"mid-source",x:S.midX,y:S.midY,angle:S.midsrcArrowAngle},{name:"mid-target",x:S.midX,y:S.midY,angle:S.midtgtArrowAngle}];for(L=0;L0&&(p(O),p(V))}function b(x,k,S){return wr(x,k,S)}function w(x,k){var D,S=x._private,P=c;D=k?k+"-":"",x.boundingBox();var A=S.labelBounds[k||"main"],B=x.pstyle(D+"label").value;if("yes"===x.pstyle("text-events").strValue&&B){var M=b(S.rscratch,"labelX",k),I=b(S.rscratch,"labelY",k),L=b(S.rscratch,"labelAngle",k),O=x.pstyle(D+"text-margin-x").pfValue,V=x.pstyle(D+"text-margin-y").pfValue,G=A.x1-P-O,N=A.x2+P-O,F=A.y1-P-V,K=A.y2+P-V;if(L){var X=Math.cos(L),Q=Math.sin(L),Z=function(ee,ne){return{x:(ee-=M)*X-(ne-=I)*Q+M,y:ee*Q+ne*X+I}},re=Z(G,F),ae=Z(G,K),J=Z(N,F),z=Z(N,K),q=[re.x+O,re.y+V,J.x+O,J.y+V,z.x+O,z.y+V,ae.x+O,ae.y+V];if(Er(r,e,q))return g(x),!0}else if(zt(A,r,e))return g(x),!0}}t&&(s=s.interactive);for(var E=s.length-1;E>=0;E--){var C=s[E];C.isNode()?p(C)||w(C):m(C)||w(C)||w(C,"source")||w(C,"target")}return o},getAllInBox:function(r,e,t,a){var n=this.getCachedZSortedEles().interactive,s=2/this.cy.zoom(),o=[],l=Math.min(r,t),u=Math.max(r,t),v=Math.min(e,a),f=Math.max(e,a),c=xr({x1:r=l,y1:e=v,x2:t=u,y2:a=f});function h(B,R,M){return wr(B,R,M)}function d(B,R){var M=B._private,I=s;B.boundingBox();var O=M.labelBounds.main,V=h(M.rscratch,"labelX",R),G=h(M.rscratch,"labelY",R),N=h(M.rscratch,"labelAngle",R),F=B.pstyle("text-margin-x").pfValue,K=B.pstyle("text-margin-y").pfValue,X=O.x1-I-F,Q=O.x2+I-F,Z=O.y1-I-K,re=O.y2+I-K;if(N){var ae=Math.cos(N),J=Math.sin(N),z=function(H,ee){return{x:(H-=V)*ae-(ee-=G)*J+V,y:H*J+ee*ae+G}};return[z(X,Z),z(Q,Z),z(Q,re),z(X,re)]}return[{x:X,y:Z},{x:Q,y:Z},{x:Q,y:re},{x:X,y:re}]}for(var y=0;y0?-(Math.PI-e.ang):Math.PI+e.ang}(Pr,zr),Fv(t,a,Pr),Lv=zr.nx*Pr.ny-zr.ny*Pr.nx,Iv=zr.nx*Pr.nx-zr.ny*-Pr.ny,Yr=Math.asin(Math.max(-1,Math.min(1,Lv))),Math.abs(Yr)<1e-6)return $s=t.x,Ks=t.y,void(Dt=Qt=0);Tt=1,In=!1,Iv<0?Yr<0?Yr=Math.PI+Yr:(Yr=Math.PI-Yr,Tt=-1,In=!0):Yr>0&&(Tt=-1,In=!0),Qt=void 0!==t.radius?t.radius:n,St=Yr/2,On=Math.min(zr.len/2,Pr.len/2),i?(Fr=Math.abs(Math.cos(St)*Qt/Math.sin(St)))>On?(Fr=On,Dt=Math.abs(Fr*Math.sin(St)/Math.cos(St))):Dt=Qt:(Fr=Math.min(On,Qt),Dt=Math.abs(Fr*Math.sin(St)/Math.cos(St))),Ys=t.x+Pr.nx*Fr,Xs=t.y+Pr.ny*Fr,$s=Ys-Pr.ny*Dt*Tt,Ks=Xs+Pr.nx*Dt*Tt,Ov=t.x+zr.nx*Fr,Nv=t.y+zr.ny*Fr,zv=t};function Vv(r,e){0===e.radius?r.lineTo(e.cx,e.cy):r.arc(e.cx,e.cy,e.radius,e.startAngle,e.endAngle,e.counterClockwise)}function Zs(r,e,t,a){var n=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];return 0===a||0===e.radius?{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}:(Ip(r,e,t,a,n),{cx:$s,cy:Ks,radius:Dt,startX:Ov,startY:Nv,stopX:Ys,stopY:Xs,startAngle:zr.ang+Math.PI/2*Tt,endAngle:Pr.ang-Math.PI/2*Tt,counterClockwise:In})}var Aa=.01,Op=Math.sqrt(.02),gr={};function qv(r){var e=[];if(null!=r){for(var t=0;t0?Math.max(T-_,0):Math.min(T+_,0)},B=A(P,k),R=A(D,S),M=!1;"auto"===m?p=Math.abs(B)>Math.abs(R)?n:a:m===l||m===o?(p=a,M=!0):(m===i||m===s)&&(p=n,M=!0);var N,I=p===a,L=I?R:B,O=I?D:P,V=wi(O),G=!1;((!M||!w&&!C)&&(m===o&&O<0||m===l&&O>0||m===i&&O>0||m===s&&O<0)&&(L=(V*=-1)*Math.abs(L),G=!0),w)?N=(E<0?1+E:E)*L:N=(E<0?L:0)+E*V;var X=function(T){return Math.abs(T)=Math.abs(L)},Q=X(N),Z=X(Math.abs(L)-Math.abs(N));if((Q||Z)&&!G)if(I){var ae=Math.abs(O)<=c/2,J=Math.abs(P)<=h/2;if(ae){var z=(v.x1+v.x2)/2,q=v.y1,H=v.y2;t.segpts=[z,q,z,H]}else if(J){var ee=(v.y1+v.y2)/2,ne=v.x1,be=v.x2;t.segpts=[ne,ee,be,ee]}else t.segpts=[v.x1,v.y2]}else{var Ge=Math.abs(O)<=f/2,Ie=Math.abs(D)<=d/2;if(Ge){var se=(v.y1+v.y2)/2,oe=v.x1,ce=v.x2;t.segpts=[oe,se,ce,se]}else if(Ie){var ge=(v.x1+v.x2)/2,de=v.y1,ye=v.y2;t.segpts=[ge,de,ge,ye]}else t.segpts=[v.x2,v.y1]}else if(I){var we=v.y1+N+(g?c/2*V:0),De=v.x1,Fe=v.x2;t.segpts=[De,we,Fe,we]}else{var $e=v.x1+N+(g?f/2*V:0),Re=v.y1,Xe=v.y2;t.segpts=[$e,Re,$e,Xe]}if(t.isRound){var Pe=r.pstyle("taxi-radius").value,le="arc-radius"===r.pstyle("radius-type").value[0];t.radii=new Array(t.segpts.length/2).fill(Pe),t.isArcRadius=new Array(t.segpts.length/2).fill(le)}},gr.tryToCorrectInvalidPoints=function(r,e){var t=r._private.rscratch;if("bezier"===t.edgeType){var a=e.srcPos,n=e.tgtPos,i=e.srcW,s=e.srcH,o=e.tgtW,l=e.tgtH,u=e.srcShape,v=e.tgtShape,f=e.srcCornerRadius,c=e.tgtCornerRadius,h=e.srcRs,d=e.tgtRs,y=!te(t.startX)||!te(t.startY),g=!te(t.arrowStartX)||!te(t.arrowStartY),p=!te(t.endX)||!te(t.endY),m=!te(t.arrowEndX)||!te(t.arrowEndY),E=3*(this.getArrowWidth(r.pstyle("width").pfValue,r.pstyle("arrow-scale").value)*this.arrowShapeWidth),C=yt({x:t.ctrlpts[0],y:t.ctrlpts[1]},{x:t.startX,y:t.startY}),x=CO.poolIndex()){var V=L;L=O,O=V}var G=B.srcPos=L.position(),N=B.tgtPos=O.position(),F=B.srcW=L.outerWidth(),K=B.srcH=L.outerHeight(),X=B.tgtW=O.outerWidth(),Q=B.tgtH=O.outerHeight(),Z=B.srcShape=t.nodeShapes[e.getNodeShape(L)],re=B.tgtShape=t.nodeShapes[e.getNodeShape(O)],ae=B.srcCornerRadius="auto"===L.pstyle("corner-radius").value?"auto":L.pstyle("corner-radius").pfValue,J=B.tgtCornerRadius="auto"===O.pstyle("corner-radius").value?"auto":O.pstyle("corner-radius").pfValue,z=B.tgtRs=O._private.rscratch,q=B.srcRs=L._private.rscratch;B.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var H=0;H=Op||(Fe=Math.sqrt(Math.max(De*De,Aa)+Math.max(we*we,Aa)));var $e=B.vector={x:De,y:we},Re=B.vectorNorm={x:$e.x/Fe,y:$e.y/Fe},Xe={x:-Re.y,y:Re.x};B.nodesOverlap=!te(Fe)||re.checkPoint(se[0],se[1],0,X,Q,N.x,N.y,J,z)||Z.checkPoint(ce[0],ce[1],0,F,K,G.x,G.y,ae,q),B.vectorNormInverse=Xe,R={nodesOverlap:B.nodesOverlap,dirCounts:B.dirCounts,calculatedIntersection:!0,hasBezier:B.hasBezier,hasUnbundled:B.hasUnbundled,eles:B.eles,srcPos:N,srcRs:z,tgtPos:G,tgtRs:q,srcW:X,srcH:Q,tgtW:F,tgtH:K,srcIntn:ge,tgtIntn:oe,srcShape:re,tgtShape:Z,posPts:{x1:ye.x2,y1:ye.y2,x2:ye.x1,y2:ye.y1},intersectionPts:{x1:de.x2,y1:de.y2,x2:de.x1,y2:de.y1},vector:{x:-$e.x,y:-$e.y},vectorNorm:{x:-Re.x,y:-Re.y},vectorNormInverse:{x:-Xe.x,y:-Xe.y}}}var Pe=Ie?R:B;ne.nodesOverlap=Pe.nodesOverlap,ne.srcIntn=Pe.srcIntn,ne.tgtIntn=Pe.tgtIntn,ne.isRound=be.startsWith("round"),n&&(L.isParent()||L.isChild()||O.isParent()||O.isChild())&&(L.parents().anySame(O)||O.parents().anySame(L)||L.same(O)&&L.isParent())?e.findCompoundLoopPoints(ee,Pe,H,Ge):L===O?e.findLoopPoints(ee,Pe,H,Ge):be.endsWith("segments")?e.findSegmentsPoints(ee,Pe):be.endsWith("taxi")?e.findTaxiPoints(ee,Pe):"straight"===be||!Ge&&B.eles.length%2==1&&H===Math.floor(B.eles.length/2)?e.findStraightEdgePoints(ee):e.findBezierPoints(ee,Pe,H,Ge,Ie),e.findEndpoints(ee),e.tryToCorrectInvalidPoints(ee,Pe),e.checkForInvalidEdgeWarning(ee),e.storeAllpts(ee),e.storeEdgeProjections(ee),e.calculateArrowAngles(ee),e.recalculateEdgeLabelProjections(ee),e.calculateLabelAngles(ee)}},x=0;x0){var H=i,ee=mt(H,Ot(t)),ne=mt(H,Ot(q)),be=ee;if(ne2)mt(H,{x:q[2],y:q[3]})0){var Xe=s,Pe=mt(Xe,Ot(t)),le=mt(Xe,Ot(Re)),Y=Pe;if(le2)mt(Xe,{x:Re[2],y:Re[3]})=d||x){g={cp:w,segment:C};break}}if(g)break}var k=g.cp,S=g.segment,P=(d-p)/S.length,D=S.t1-S.t0,A=h?S.t0+D*P:S.t1-D*P;A=ga(0,A,1),e=Nt(k.p0,k.p1,k.p2,A),c=function(e,t,a,n){var i=ga(0,n-.001,1),s=ga(0,n+.001,1),o=Nt(e,t,a,i),l=Nt(e,t,a,s);return Gv(o,l)}(k.p0,k.p1,k.p2,A);break;case"straight":case"segments":case"haystack":for(var R,M,I,L,B=0,O=a.allpts.length,V=0;V+3=d));V+=2);var N=(d-M)/R;N=ga(0,N,1),e=function(e,t,a,n){var i_x=t.x-e.x,i_y=t.y-e.y,s=yt(e,t),o_x=i_x/s,o_y=i_y/s;return a=a??0,n=n??a*s,{x:e.x+o_x*n,y:e.y+o_y*n}}(I,L,N),c=Gv(I,L)}s("labelX",f,e.x),s("labelY",f,e.y),s("labelAutoAngle",f,c)}};u("source"),u("target"),this.applyLabelDimensions(r)}},Vr.applyLabelDimensions=function(r){this.applyPrefixedLabelDimensions(r),r.isEdge()&&(this.applyPrefixedLabelDimensions(r,"source"),this.applyPrefixedLabelDimensions(r,"target"))},Vr.applyPrefixedLabelDimensions=function(r,e){var t=r._private,a=this.getLabelText(r,e),n=pt(a,r._private.labelDimsKey);if(wr(t.rscratch,"prefixedLabelDimsKey",e)!==n){Ur(t.rscratch,"prefixedLabelDimsKey",e,n);var i=this.calculateLabelDimensions(r,a),s=r.pstyle("line-height").pfValue,o=r.pstyle("text-wrap").strValue,l=wr(t.rscratch,"labelWrapCachedLines",e)||[],u="wrap"!==o?1:Math.max(l.length,1),v=i.height/u,f=v*s,c=i.width,h=i.height+(u-1)*(s-1)*v;Ur(t.rstyle,"labelWidth",e,c),Ur(t.rscratch,"labelWidth",e,c),Ur(t.rstyle,"labelHeight",e,h),Ur(t.rscratch,"labelHeight",e,h),Ur(t.rscratch,"labelLineHeight",e,f)}},Vr.getLabelText=function(r,e){var t=r._private,a=e?e+"-":"",n=r.pstyle(a+"label").strValue,i=r.pstyle("text-transform").value,s=function(K,X){return X?(Ur(t.rscratch,K,e,X),X):wr(t.rscratch,K,e)};if(!n)return"";"none"==i||("uppercase"==i?n=n.toUpperCase():"lowercase"==i&&(n=n.toLowerCase()));var o=r.pstyle("text-wrap").value;if("wrap"===o){var l=s("labelKey");if(null!=l&&s("labelWrapKey")===l)return s("labelWrapCachedText");for(var v=n.split("\n"),f=r.pstyle("text-max-width").pfValue,h="anywhere"===r.pstyle("text-overflow-wrap").value,d=[],y=/[\s\u200b]+|$/g,g=0;gf){var S,C="",x=0,k=br(p.matchAll(y));try{for(k.s();!(S=k.n()).done;){var P=S.value,D=P[0],A=p.substring(x,P.index);x=P.index+D.length;var B=0===C.length?A:C+A+D;this.calculateLabelDimensions(r,B).width<=f?C+=A+D:(C&&d.push(C),C=A+D)}}catch(F){k.e(F)}finally{k.f()}C.match(/^[\s\u200b]+$/)||d.push(C)}else d.push(p)}s("labelWrapCachedLines",d),n=s("labelWrapCachedText",d.join("\n")),s("labelWrapKey",l)}else if("ellipsis"===o){var I=r.pstyle("text-max-width").pfValue,L="",V=!1;if(this.calculateLabelDimensions(r,n).widthI)break;L+=n[G],G===n.length-1&&(V=!0)}return V||(L+="\u2026"),L}return n},Vr.getLabelJustification=function(r){var e=r.pstyle("text-justification").strValue,t=r.pstyle("text-halign").strValue;if("auto"!==e)return e;if(!r.isNode())return"center";switch(t){case"left":return"right";case"right":return"left";default:return"center"}},Vr.calculateLabelDimensions=function(r,e){var n=this.cy.window().document,s=r.pstyle("font-style").strValue,o=r.pstyle("font-size").pfValue,l=r.pstyle("font-family").strValue,u=r.pstyle("font-weight").strValue,v=this.labelCalcCanvas,f=this.labelCalcCanvasContext;if(!v){v=this.labelCalcCanvas=n.createElement("canvas"),f=this.labelCalcCanvasContext=v.getContext("2d");var c=v.style;c.position="absolute",c.left="-9999px",c.top="-9999px",c.zIndex="-1",c.visibility="hidden",c.pointerEvents="none"}f.font="".concat(s," ").concat(u," ").concat(o,"px ").concat(l);for(var h=0,d=0,y=e.split("\n"),g=0;g1&&void 0!==arguments[1])||arguments[1];if(e.merge(s),o)for(var l=0;l"u")&&e instanceof HTMLElement}(r);if(null==e.supportsPassiveEvents){var n=!1;try{var i=Object.defineProperty({},"passive",{get:function(){return n=!0,!0}});t.addEventListener("test",null,i)}catch{}e.supportsPassiveEvents=n}var s=function(l,u,v){var f=Array.prototype.slice.call(arguments);return a&&e.supportsPassiveEvents&&(f[2]={capture:v??!1,passive:!1,once:!1}),e.bindings.push({target:r,args:f}),(r.addEventListener||r.on).apply(r,f),this};return{on:s,addEventListener:s,addListener:s,bind:s}},Jt.nodeIsDraggable=function(r){return r&&r.isNode()&&!r.locked()&&r.grabbable()},Jt.nodeIsGrabbable=function(r){return this.nodeIsDraggable(r)&&r.interactive()},Jt.load=function(){var r=this,e=r.cy.window(),t=function(T){return T.selected()},n=function(T,_,W,U){null==T&&(T=r.cy);for(var $=0;$<_.length;$++){var ue=_[$];T.emit({originalEvent:W,type:ue,position:U})}},i=function(T){return T.shiftKey||T.metaKey||T.ctrlKey},s=function(T,_){var W=!0;if(r.cy.hasCompoundNodes()&&T&&T.pannable())for(var U=0;_&&U<_.length;U++){if((T=_[U]).isNode()&&T.isParent()&&!T.pannable()){W=!1;break}}else W=!0;return W},u=function(T){T[0]._private.rscratch.inDragLayer=!0},f=function(T){T[0]._private.rscratch.isGrabTarget=!0},h=function(T,_){var W=_.addToList;!W.has(T)&&T.grabbable()&&!T.locked()&&(W.merge(T),function(T){T[0]._private.grabbed=!0}(T))},y=function(T,_){_=_||{};var W=T.cy().hasCompoundNodes();_.inDragLayer&&(T.forEach(u),T.neighborhood().stdFilter(function(U){return!W||U.isEdge()}).forEach(u)),_.addToList&&T.forEach(function(U){h(U,_)}),function(T,_){if(T.cy().hasCompoundNodes()&&(null!=_.inDragLayer||null!=_.addToList)){var W=T.descendants();_.inDragLayer&&(W.forEach(u),W.connectedEdges().forEach(u)),_.addToList&&h(W,_)}}(T,_),m(T,{inDragLayer:_.inDragLayer}),r.updateCachedGrabbedEles()},g=y,p=function(T){!T||(r.getCachedZSortedEles().forEach(function(_){(function(T){T[0]._private.grabbed=!1})(_),function(T){T[0]._private.rscratch.inDragLayer=!1}(_),function(T){T[0]._private.rscratch.isGrabTarget=!1}(_)}),r.updateCachedGrabbedEles())},m=function(T,_){if((null!=_.inDragLayer||null!=_.addToList)&&T.cy().hasCompoundNodes()){var W=T.ancestors().orphans();if(!W.same(T)){var U=W.descendants().spawnSelf().merge(W).unmerge(T).unmerge(T.descendants()),$=U.connectedEdges();_.inDragLayer&&($.forEach(u),U.forEach(u)),_.addToList&&U.forEach(function(ue){h(ue,_)})}}},b=function(){null!=document.activeElement&&null!=document.activeElement.blur&&document.activeElement.blur()},w=typeof MutationObserver<"u",E=typeof ResizeObserver<"u";w?(r.removeObserver=new MutationObserver(function(Y){for(var T=0;T=r.desktopTapThreshold2}var Cr=i(T);Ze&&(r.hoverData.tapholdCancelled=!0);W=!0,n(pe,["mousemove","vmousemove","tapdrag"],T,{x:j[0],y:j[1]});var ht=function(){r.data.bgActivePosistion=void 0,r.hoverData.selecting||U.emit({originalEvent:T,type:"boxstart",position:{x:j[0],y:j[1]}}),Se[4]=1,r.hoverData.selecting=!0,r.redrawHint("select",!0),r.redraw()};if(3===r.hoverData.which){if(Ze){var Qr={originalEvent:T,type:"cxtdrag",position:{x:j[0],y:j[1]}};me?me.emit(Qr):U.emit(Qr),r.hoverData.cxtDragged=!0,(!r.hoverData.cxtOver||pe!==r.hoverData.cxtOver)&&(r.hoverData.cxtOver&&r.hoverData.cxtOver.emit({originalEvent:T,type:"cxtdragout",position:{x:j[0],y:j[1]}}),r.hoverData.cxtOver=pe,pe&&pe.emit({originalEvent:T,type:"cxtdragover",position:{x:j[0],y:j[1]}}))}}else if(r.hoverData.dragging){if(W=!0,U.panningEnabled()&&U.userPanningEnabled()){var na;if(r.hoverData.justStartedPan){var Un=r.hoverData.mdownPos;na={x:(j[0]-Un[0])*$,y:(j[1]-Un[1])*$},r.hoverData.justStartedPan=!1}else na={x:xe[0]*$,y:xe[1]*$};U.panBy(na),U.emit("dragpan"),r.hoverData.dragged=!0}j=r.projectIntoViewport(T.clientX,T.clientY)}else if(1!=Se[4]||null!=me&&!me.pannable()){if(me&&me.pannable()&&me.active()&&me.unactivate(),(!me||!me.grabbed())&&pe!=Ce&&(Ce&&n(Ce,["mouseout","tapdragout"],T,{x:j[0],y:j[1]}),pe&&n(pe,["mouseover","tapdragover"],T,{x:j[0],y:j[1]}),r.hoverData.last=pe),me)if(Ze){if(U.boxSelectionEnabled()&&Cr)me&&me.grabbed()&&(p(Ne),me.emit("freeon"),Ne.emit("free"),r.dragData.didDrag&&(me.emit("dragfreeon"),Ne.emit("dragfree"))),ht();else if(me&&me.grabbed()&&r.nodeIsDraggable(me)){var Tr=!r.dragData.didDrag;Tr&&r.redrawHint("eles",!0),r.dragData.didDrag=!0,r.hoverData.draggingEles||y(Ne,{inDragLayer:!0});var pr={x:0,y:0};if(te(xe[0])&&te(xe[1])&&(pr.x+=xe[0],pr.y+=xe[1],Tr)){var Sr=r.hoverData.dragDelta;Sr&&te(Sr[0])&&te(Sr[1])&&(pr.x+=Sr[0],pr.y+=Sr[1])}r.hoverData.draggingEles=!0,Ne.silentShift(pr).emit("position drag"),r.redrawHint("drag",!0),r.redraw()}}else 0===(Hr=r.hoverData.dragDelta=r.hoverData.dragDelta||[]).length?(Hr.push(xe[0]),Hr.push(xe[1])):(Hr[0]+=xe[0],Hr[1]+=xe[1]);W=!0}else if(Ze){if(r.hoverData.dragging||!U.boxSelectionEnabled()||!Cr&&U.panningEnabled()&&U.userPanningEnabled()){if(!r.hoverData.selecting&&U.panningEnabled()&&U.userPanningEnabled()){s(me,r.hoverData.downs)&&(r.hoverData.dragging=!0,r.hoverData.justStartedPan=!0,Se[4]=0,r.data.bgActivePosistion=Ot(fe),r.redrawHint("select",!0),r.redraw())}}else ht();me&&me.pannable()&&me.active()&&me.unactivate()}if(Se[2]=j[0],Se[3]=j[1],W)return T.stopPropagation&&T.stopPropagation(),T.preventDefault&&T.preventDefault(),!1}},!1),r.registerBinding(e,"mouseup",function(T){if((1!==r.hoverData.which||1===T.which||!r.hoverData.capture)&&r.hoverData.capture){r.hoverData.capture=!1;var W=r.cy,U=r.projectIntoViewport(T.clientX,T.clientY),$=r.selection,ue=r.findNearestElement(U[0],U[1],!0,!1),j=r.dragData.possibleDragElements,fe=r.hoverData.down,Ee=i(T);if(r.data.bgActivePosistion&&(r.redrawHint("select",!0),r.redraw()),r.hoverData.tapholdCancelled=!0,r.data.bgActivePosistion=void 0,fe&&fe.unactivate(),3===r.hoverData.which){var Se={originalEvent:T,type:"cxttapend",position:{x:U[0],y:U[1]}};if(fe?fe.emit(Se):W.emit(Se),!r.hoverData.cxtDragged){var pe={originalEvent:T,type:"cxttap",position:{x:U[0],y:U[1]}};fe?fe.emit(pe):W.emit(pe)}r.hoverData.cxtDragged=!1,r.hoverData.which=null}else if(1===r.hoverData.which){if(n(ue,["mouseup","tapend","vmouseup"],T,{x:U[0],y:U[1]}),!r.dragData.didDrag&&!r.hoverData.dragged&&!r.hoverData.selecting&&!r.hoverData.isOverThresholdDrag&&(n(fe,["click","tap","vclick"],T,{x:U[0],y:U[1]}),B=!1,T.timeStamp-R<=W.multiClickDebounceTime()?(A&&clearTimeout(A),B=!0,R=null,n(fe,["dblclick","dbltap","vdblclick"],T,{x:U[0],y:U[1]})):(A=setTimeout(function(){B||n(fe,["oneclick","onetap","voneclick"],T,{x:U[0],y:U[1]})},W.multiClickDebounceTime()),R=T.timeStamp)),null==fe&&!r.dragData.didDrag&&!r.hoverData.selecting&&!r.hoverData.dragged&&!i(T)&&(W.$(t).unselect(["tapunselect"]),j.length>0&&r.redrawHint("eles",!0),r.dragData.possibleDragElements=j=W.collection()),ue==fe&&!r.dragData.didDrag&&!r.hoverData.selecting&&null!=ue&&ue._private.selectable&&(r.hoverData.dragging||("additive"===W.selectionType()||Ee?ue.selected()?ue.unselect(["tapunselect"]):ue.select(["tapselect"]):Ee||(W.$(t).unmerge(ue).unselect(["tapunselect"]),ue.select(["tapselect"]))),r.redrawHint("eles",!0)),r.hoverData.selecting){var Ce=W.collection(r.getAllInBox($[0],$[1],$[2],$[3]));r.redrawHint("select",!0),Ce.length>0&&r.redrawHint("eles",!0),W.emit({type:"boxend",originalEvent:T,position:{x:U[0],y:U[1]}});"additive"===W.selectionType()||Ee||W.$(t).unmerge(Ce).unselect(),Ce.emit("box").stdFilter(function(Ze){return Ze.selectable()&&!Ze.selected()}).select().emit("boxselect"),r.redraw()}if(r.hoverData.dragging&&(r.hoverData.dragging=!1,r.redrawHint("select",!0),r.redrawHint("eles",!0),r.redraw()),!$[4]){r.redrawHint("drag",!0),r.redrawHint("eles",!0);var xe=fe&&fe.grabbed();p(j),xe&&(fe.emit("freeon"),j.emit("free"),r.dragData.didDrag&&(fe.emit("dragfreeon"),j.emit("dragfree")))}}$[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}},!1);var L,M=[],O=1e5,N=function(T){var _=!1,W=T.deltaY;if(null==W&&(null!=T.wheelDeltaY?W=T.wheelDeltaY/4:null!=T.wheelDelta&&(W=T.wheelDelta/4)),null==L)if(M.length>=4){var U=M;if(L=function(T,_){for(var W=0;W5}if(L)for(var ue=0;ue5&&(W=5*wi(W)),Ce=W/-250,L&&(Ce/=O,Ce*=3),Ce*=r.wheelSensitivity,1===T.deltaMode&&(Ce*=33);var xe=j.zoom()*Math.pow(10,Ce);"gesturechange"===T.type&&(xe=r.gestureStartZoom*T.scale),j.zoom({level:xe,renderedPosition:{x:pe[0],y:pe[1]}}),j.emit("gesturechange"===T.type?"pinchzoom":"scrollzoom")}}};r.registerBinding(r.container,"wheel",N,!0),r.registerBinding(e,"scroll",function(T){r.scrollingPage=!0,clearTimeout(r.scrollingPageTimeout),r.scrollingPageTimeout=setTimeout(function(){r.scrollingPage=!1},250)},!0),r.registerBinding(r.container,"gesturestart",function(T){r.gestureStartZoom=r.cy.zoom(),r.hasTouchStarted||T.preventDefault()},!0),r.registerBinding(r.container,"gesturechange",function(Y){r.hasTouchStarted||N(Y)},!0),r.registerBinding(r.container,"mouseout",function(T){var _=r.projectIntoViewport(T.clientX,T.clientY);r.cy.emit({originalEvent:T,type:"mouseout",position:{x:_[0],y:_[1]}})},!1),r.registerBinding(r.container,"mouseover",function(T){var _=r.projectIntoViewport(T.clientX,T.clientY);r.cy.emit({originalEvent:T,type:"mouseover",position:{x:_[0],y:_[1]}})},!1);var F,K,X,Q,Z,re,ae,J,z,q,H,ee,ne,Ie,se,oe,ce,ge,de,ye,be=function(T,_,W,U){return Math.sqrt((W-T)*(W-T)+(U-_)*(U-_))},Ge=function(T,_,W,U){return(W-T)*(W-T)+(U-_)*(U-_)};if(r.registerBinding(r.container,"touchstart",Ie=function(T){if(r.hasTouchStarted=!0,P(T)){b(),r.touchData.capture=!0,r.data.bgActivePosistion=void 0;var _=r.cy,W=r.touchData.now,U=r.touchData.earlier;if(T.touches[0]){var $=r.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);W[0]=$[0],W[1]=$[1]}if(T.touches[1]){$=r.projectIntoViewport(T.touches[1].clientX,T.touches[1].clientY);W[2]=$[0],W[3]=$[1]}if(T.touches[2]){$=r.projectIntoViewport(T.touches[2].clientX,T.touches[2].clientY);W[4]=$[0],W[5]=$[1]}if(T.touches[1]){r.touchData.singleTouchMoved=!0,p(r.dragData.touchDragEles);var ue=r.findContainerClientCoords();z=ue[0],q=ue[1],H=ue[2],ee=ue[3],F=T.touches[0].clientX-z,K=T.touches[0].clientY-q,X=T.touches[1].clientX-z,Q=T.touches[1].clientY-q,ne=0<=F&&F<=H&&0<=X&&X<=H&&0<=K&&K<=ee&&0<=Q&&Q<=ee;var j=_.pan(),fe=_.zoom();Z=be(F,K,X,Q),re=Ge(F,K,X,Q),J=[((ae=[(F+X)/2,(K+Q)/2])[0]-j.x)/fe,(ae[1]-j.y)/fe];if(re<4e4&&!T.touches[2]){var pe=r.findNearestElement(W[0],W[1],!0,!0),Ce=r.findNearestElement(W[2],W[3],!0,!0);return pe&&pe.isNode()?(pe.activate().emit({originalEvent:T,type:"cxttapstart",position:{x:W[0],y:W[1]}}),r.touchData.start=pe):Ce&&Ce.isNode()?(Ce.activate().emit({originalEvent:T,type:"cxttapstart",position:{x:W[0],y:W[1]}}),r.touchData.start=Ce):_.emit({originalEvent:T,type:"cxttapstart",position:{x:W[0],y:W[1]}}),r.touchData.start&&(r.touchData.start._private.grabbed=!1),r.touchData.cxt=!0,r.touchData.cxtDragged=!1,r.data.bgActivePosistion=void 0,void r.redraw()}}if(T.touches[2])_.boxSelectionEnabled()&&T.preventDefault();else if(!T.touches[1]&&T.touches[0]){var me=r.findNearestElements(W[0],W[1],!0,!0),xe=me[0];if(null!=xe&&(xe.activate(),r.touchData.start=xe,r.touchData.starts=me,r.nodeIsGrabbable(xe))){var Ne=r.dragData.touchDragEles=_.collection(),Ze=null;r.redrawHint("eles",!0),r.redrawHint("drag",!0),xe.selected()?(Ze=_.$(function(tr){return tr.selected()&&r.nodeIsGrabbable(tr)}),y(Ze,{addToList:Ne})):g(xe,{addToList:Ne}),f(xe);var fr=function(Cr){return{originalEvent:T,type:Cr,position:{x:W[0],y:W[1]}}};xe.emit(fr("grabon")),Ze?Ze.forEach(function(tr){tr.emit(fr("grab"))}):xe.emit(fr("grab"))}n(xe,["touchstart","tapstart","vmousedown"],T,{x:W[0],y:W[1]}),null==xe&&(r.data.bgActivePosistion={x:$[0],y:$[1]},r.redrawHint("select",!0),r.redraw()),r.touchData.singleTouchMoved=!1,r.touchData.singleTouchStartTime=+new Date,clearTimeout(r.touchData.tapholdTimeout),r.touchData.tapholdTimeout=setTimeout(function(){!1===r.touchData.singleTouchMoved&&!r.pinching&&!r.touchData.selecting&&n(r.touchData.start,["taphold"],T,{x:W[0],y:W[1]})},r.tapholdDuration)}if(T.touches.length>=1){for(var sr=r.touchData.startPosition=[null,null,null,null,null,null],Ke=0;Ke=r.touchTapThreshold2}if(_&&r.touchData.cxt){T.preventDefault();var sr=T.touches[0].clientX-z,Ke=T.touches[0].clientY-q,cr=T.touches[1].clientX-z,tr=T.touches[1].clientY-q,Cr=Ge(sr,Ke,cr,tr);if(Cr/re>=2.25||Cr>=22500){r.touchData.cxt=!1,r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);var Rt={originalEvent:T,type:"cxttapend",position:{x:$[0],y:$[1]}};r.touchData.start?(r.touchData.start.unactivate().emit(Rt),r.touchData.start=null):U.emit(Rt)}}if(_&&r.touchData.cxt){Rt={originalEvent:T,type:"cxtdrag",position:{x:$[0],y:$[1]}};r.data.bgActivePosistion=void 0,r.redrawHint("select",!0),r.touchData.start?r.touchData.start.emit(Rt):U.emit(Rt),r.touchData.start&&(r.touchData.start._private.grabbed=!1),r.touchData.cxtDragged=!0;var Tr=r.findNearestElement($[0],$[1],!0,!0);(!r.touchData.cxtOver||Tr!==r.touchData.cxtOver)&&(r.touchData.cxtOver&&r.touchData.cxtOver.emit({originalEvent:T,type:"cxtdragout",position:{x:$[0],y:$[1]}}),r.touchData.cxtOver=Tr,Tr&&Tr.emit({originalEvent:T,type:"cxtdragover",position:{x:$[0],y:$[1]}}))}else if(_&&T.touches[2]&&U.boxSelectionEnabled())T.preventDefault(),r.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,r.touchData.selecting||U.emit({originalEvent:T,type:"boxstart",position:{x:$[0],y:$[1]}}),r.touchData.selecting=!0,r.touchData.didSelect=!0,W[4]=1,W&&0!==W.length&&void 0!==W[0]?(W[2]=($[0]+$[2]+$[4])/3,W[3]=($[1]+$[3]+$[5])/3):(W[0]=($[0]+$[2]+$[4])/3,W[1]=($[1]+$[3]+$[5])/3,W[2]=($[0]+$[2]+$[4])/3+1,W[3]=($[1]+$[3]+$[5])/3+1),r.redrawHint("select",!0),r.redraw();else if(_&&T.touches[1]&&!r.touchData.didSelect&&U.zoomingEnabled()&&U.panningEnabled()&&U.userZoomingEnabled()&&U.userPanningEnabled()){if(T.preventDefault(),r.data.bgActivePosistion=void 0,r.redrawHint("select",!0),pr=r.dragData.touchDragEles){r.redrawHint("drag",!0);for(var Sr=0;Sr0&&!r.hoverData.draggingEles&&!r.swipePanning&&null!=r.data.bgActivePosistion&&(r.data.bgActivePosistion=void 0,r.redrawHint("select",!0),r.redraw())}},!1),r.registerBinding(e,"touchcancel",oe=function(T){var _=r.touchData.start;r.touchData.capture=!1,_&&_.unactivate()}),r.registerBinding(e,"touchend",ce=function(T){var _=r.touchData.start;if(r.touchData.capture){0===T.touches.length&&(r.touchData.capture=!1),T.preventDefault();var U=r.selection;r.swipePanning=!1,r.hoverData.draggingEles=!1;var Se,$=r.cy,ue=$.zoom(),j=r.touchData.now,fe=r.touchData.earlier;if(T.touches[0]){var Ee=r.projectIntoViewport(T.touches[0].clientX,T.touches[0].clientY);j[0]=Ee[0],j[1]=Ee[1]}if(T.touches[1]){Ee=r.projectIntoViewport(T.touches[1].clientX,T.touches[1].clientY);j[2]=Ee[0],j[3]=Ee[1]}if(T.touches[2]){Ee=r.projectIntoViewport(T.touches[2].clientX,T.touches[2].clientY);j[4]=Ee[0],j[5]=Ee[1]}if(_&&_.unactivate(),r.touchData.cxt){if(Se={originalEvent:T,type:"cxttapend",position:{x:j[0],y:j[1]}},_?_.emit(Se):$.emit(Se),!r.touchData.cxtDragged){var pe={originalEvent:T,type:"cxttap",position:{x:j[0],y:j[1]}};_?_.emit(pe):$.emit(pe)}return r.touchData.start&&(r.touchData.start._private.grabbed=!1),r.touchData.cxt=!1,r.touchData.start=null,void r.redraw()}if(!T.touches[2]&&$.boxSelectionEnabled()&&r.touchData.selecting){r.touchData.selecting=!1;var Ce=$.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),$.emit({type:"boxend",originalEvent:T,position:{x:j[0],y:j[1]}});Ce.emit("box").stdFilter(function(Qr){return Qr.selectable()&&!Qr.selected()}).select().emit("boxselect"),Ce.nonempty()&&r.redrawHint("eles",!0),r.redraw()}if(null!=_&&_.unactivate(),T.touches[2])r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);else if(!T.touches[1]&&!T.touches[0]&&!T.touches[0]){r.data.bgActivePosistion=void 0,r.redrawHint("select",!0);var xe=r.dragData.touchDragEles;if(null!=_){var Ne=_._private.grabbed;p(xe),r.redrawHint("drag",!0),r.redrawHint("eles",!0),Ne&&(_.emit("freeon"),xe.emit("free"),r.dragData.didDrag&&(_.emit("dragfreeon"),xe.emit("dragfree"))),n(_,["touchend","tapend","vmouseup","tapdragout"],T,{x:j[0],y:j[1]}),_.unactivate(),r.touchData.start=null}else{var Ze=r.findNearestElement(j[0],j[1],!0,!0);n(Ze,["touchend","tapend","vmouseup","tapdragout"],T,{x:j[0],y:j[1]})}var fr=r.touchData.startPosition[0]-j[0],sr=fr*fr,Ke=r.touchData.startPosition[1]-j[1],Cr=(sr+Ke*Ke)*ue*ue;r.touchData.singleTouchMoved||(_||$.$(":selected").unselect(["tapunselect"]),n(_,["tap","vclick"],T,{x:j[0],y:j[1]}),ge=!1,T.timeStamp-ye<=$.multiClickDebounceTime()?(de&&clearTimeout(de),ge=!0,ye=null,n(_,["dbltap","vdblclick"],T,{x:j[0],y:j[1]})):(de=setTimeout(function(){ge||n(_,["onetap","voneclick"],T,{x:j[0],y:j[1]})},$.multiClickDebounceTime()),ye=T.timeStamp)),null!=_&&!r.dragData.didDrag&&_._private.selectable&&Cr"u"){var we=[],De=function(T){return{clientX:T.clientX,clientY:T.clientY,force:1,identifier:T.pointerId,pageX:T.pageX,pageY:T.pageY,radiusX:T.width/2,radiusY:T.height/2,screenX:T.screenX,screenY:T.screenY,target:T.target}},$e=function(T){we.push(function(T){return{event:T,touch:De(T)}}(T))},Re=function(T){for(var _=0;_2){for(var d=[v[0],v[1]],y=Math.pow(d[0]-e,2)+Math.pow(d[1]-t,2),g=1;g0)return F[0]}return null},d=Object.keys(c),y=0;y0?h:ou(i,s,e,t,a,n,o,l)},checkPoint:function(e,t,a,n,i,s,o,l){var u=2*(l="auto"===l?nt(n,i):l);if(Kr(e,t,this.points,s,o,n,i-u,[0,-1],a)||Kr(e,t,this.points,s,o,n-u,i,[0,-1],a))return!0;var v=n/2+2*a,f=i/2+2*a;return!!(Er(e,t,[s-v,o-f,s-v,o,s+v,o,s+v,o-f])||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))}}},Xr.registerNodeShapes=function(){var r=this.nodeShapes={},e=this;this.generateEllipse(),this.generatePolygon("triangle",yr(3,0)),this.generateRoundPolygon("round-triangle",yr(3,0)),this.generatePolygon("rectangle",yr(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",yr(5,0)),this.generateRoundPolygon("round-pentagon",yr(5,0)),this.generatePolygon("hexagon",yr(6,0)),this.generateRoundPolygon("round-hexagon",yr(6,0)),this.generatePolygon("heptagon",yr(7,0)),this.generateRoundPolygon("round-heptagon",yr(7,0)),this.generatePolygon("octagon",yr(8,0)),this.generateRoundPolygon("round-octagon",yr(8,0));var a=new Array(20),n=Ci(5,0),i=Ci(5,Math.PI/5),s=.5*(3-Math.sqrt(5));s*=1.57;for(var o=0;o=e.deqFastCost*w)break}else if(u){if(m>=e.deqCost*h||m>=e.deqAvgCost*c)break}else if(b>=e.deqNoDrawCost*Js)break;var E=e.deq(a,g,y);if(!(E.length>0))break;for(var C=0;C0&&(e.onDeqd(a,d),!u&&e.shouldRedraw(a,d,g,y)&&i())},o(a))}}},Vp=function(){return jr(function r(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Xa;Jr(this,r),this.idsByKey=new $r,this.keyForId=new $r,this.cachesByLvl=new $r,this.lvls=[],this.getKey=e,this.doesEleInvalidateKey=t},[{key:"getIdsFor",value:function(t){null==t&&We("Can not get id list for null key");var a=this.idsByKey,n=this.idsByKey.get(t);return n||(n=new It,a.set(t,n)),n}},{key:"addIdForKey",value:function(t,a){null!=t&&this.getIdsFor(t).add(a)}},{key:"deleteIdForKey",value:function(t,a){null!=t&&this.getIdsFor(t).delete(a)}},{key:"getNumberOfIdsForKey",value:function(t){return null==t?0:this.getIdsFor(t).size}},{key:"updateKeyMappingFor",value: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)}},{key:"deleteKeyMappingFor",value:function(t){var a=t.id(),n=this.keyForId.get(a);this.deleteIdForKey(n,a),this.keyForId.delete(a)}},{key:"keyHasChangedFor",value:function(t){var a=t.id();return this.keyForId.get(a)!==this.getKey(t)}},{key:"isInvalid",value:function(t){return this.keyHasChangedFor(t)||this.doesEleInvalidateKey(t)}},{key:"getCachesAt",value:function(t){var a=this.cachesByLvl,n=this.lvls,i=a.get(t);return i||(i=new $r,a.set(t,i),n.push(t)),i}},{key:"getCache",value:function(t,a){return this.getCachesAt(a).get(t)}},{key:"get",value:function(t,a){var n=this.getKey(t),i=this.getCache(n,a);return null!=i&&this.updateKeyMappingFor(t),i}},{key:"getForCachedKey",value:function(t,a){var n=this.keyForId.get(t.id());return this.getCache(n,a)}},{key:"hasCache",value:function(t,a){return this.getCachesAt(a).has(t)}},{key:"has",value:function(t,a){var n=this.getKey(t);return this.hasCache(n,a)}},{key:"setCache",value:function(t,a,n){n.key=t,this.getCachesAt(a).set(t,n)}},{key:"set",value:function(t,a,n){var i=this.getKey(t);this.setCache(i,a,n),this.updateKeyMappingFor(t)}},{key:"deleteCache",value:function(t,a){this.getCachesAt(a).delete(t)}},{key:"delete",value:function(t,a){var n=this.getKey(t);this.deleteCache(n,a)}},{key:"invalidateKey",value:function(t){var a=this;this.lvls.forEach(function(n){return a.deleteCache(t,n)})}},{key:"invalidate",value: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||0===this.getNumberOfIdsForKey(n)}}])}(),ea={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},jp=or({getKey:null,doesEleInvalidateKey:Xa,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:Zo,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),La=function(e,t){var a=this;a.renderer=e,a.onDequeues=[];var n=jp(t);he(a,n),a.lookup=new Vp(n.getKey,n.doesEleInvalidateKey),a.setupDequeueing()},rr=La.prototype;rr.reasons=ea,rr.getTextureQueue=function(r){var e=this;return e.eleImgCaches=e.eleImgCaches||{},e.eleImgCaches[r]=e.eleImgCaches[r]||[]},rr.getRetiredTextureQueue=function(r){var t=this.eleImgCaches.retired=this.eleImgCaches.retired||{};return t[r]=t[r]||[]},rr.getElementQueue=function(){return this.eleCacheQueue=this.eleCacheQueue||new ha(function(t,a){return a.reqs-t.reqs})},rr.getElementKeyToQueue=function(){return this.eleKeyToCacheQueue=this.eleKeyToCacheQueue||{}},rr.getElement=function(r,e,t,a,n){var i=this,s=this.renderer,o=s.cy.zoom(),l=this.lookup;if(!e||0===e.w||0===e.h||isNaN(e.w)||isNaN(e.h)||!r.visible()||r.removed()||!i.allowEdgeTxrCaching&&r.isEdge()||!i.allowParentTxrCaching&&r.isParent())return null;if(null==a&&(a=Math.ceil(bi(o*t))),a<-4)a=-4;else if(o>=7.99||a>3)return null;var u=Math.pow(2,a),v=e.h*u,f=e.w*u,c=s.eleTextBiggerThanMin(r,u);if(!this.isVisible(r,c))return null;var d,h=l.get(r,a);if(h&&h.invalidated&&(h.invalidated=!1,h.texture.invalidatedWidth-=h.width),h)return h;if(d=v<=25?25:v<=50?50:50*Math.ceil(v/50),v>1024||f>1024)return null;var y=i.getTextureQueue(d),g=y[y.length-2],p=function(){return i.recycleTexture(d,f)||i.addTexture(d,f)};g||(g=y[y.length-1]),g||(g=p()),g.width-g.usedWidtha;D--)S=i.getElement(r,e,t,D,ea.downscale);P()}else{var A;if(!b&&!w&&!E)for(var B=a-1;B>=-4;B--){var R=l.get(r,B);if(R){A=R;break}}if(m(A))return i.queueElement(r,a),A;g.context.translate(g.usedWidth,0),g.context.scale(u,u),this.drawElement(g.context,r,e,c,!1),g.context.scale(1/u,1/u),g.context.translate(-g.usedWidth,0)}return h={x:g.usedWidth,texture:g,level:a,scale:u,width:f,height:v,scaledLabelShown:c},g.usedWidth+=Math.ceil(f+8),g.eleCaches.push(h),l.set(r,a,h),i.checkTextureFullness(g),h},rr.invalidateElements=function(r){for(var e=0;e=.2*r.width&&this.retireTexture(r)},rr.checkTextureFullness=function(r){var t=this.getTextureQueue(r.height);r.usedWidth/r.width>.8&&r.fullnessChecks>=10?tt(t,r):r.fullnessChecks++},rr.retireTexture=function(r){var t=r.height,a=this.getTextureQueue(t),n=this.lookup;tt(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,pi(s.eleCaches),s.context.setTransform(1,0,0,1,0,0),s.context.clearRect(0,0,s.width,s.height),tt(n,s),a.push(s),s}},rr.queueElement=function(r,e){var a=this.getElementQueue(),n=this.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}},rr.dequeue=function(r){for(var e=this,t=e.getElementQueue(),a=e.getElementKeyToQueue(),n=[],i=e.lookup,s=0;s<1&&t.size()>0;s++){var o=t.pop(),l=o.key,u=o.eles[0],v=i.hasCache(u,o.level);if(a[l]=null,!v){n.push(o);var f=e.getBoundingBox(u);e.getElement(u,f,r,o.level,ea.dequeue)}}return n},rr.removeFromQueue=function(r){var t=this.getElementQueue(),a=this.getElementKeyToQueue(),n=this.getKey(r),i=a[n];null!=i&&(1===i.eles.length?(i.reqs=hi,t.updateItem(i),t.pop(),a[n]=null):i.eles.unmerge(r))},rr.onDequeue=function(r){this.onDequeues.push(r)},rr.offDequeue=function(r){tt(this.onDequeues,r)},rr.setupDequeueing=Zv_setupDequeueing({deqRedrawThreshold:100,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(e,t,a){return e.dequeue(t,a)},onDeqd:function(e,t){for(var a=0;a=3.99||t>2)return null;a.validateLayersElesOrdering(t,r);var f,h,l=a.layersByLevel,u=Math.pow(2,t),v=l[t]=l[t]||[];if(a.levelIsComplete(t,r))return v;!function(){var P=function(M){if(a.validateLayersElesOrdering(M,r),a.levelIsComplete(M,r))return h=l[M],!0},D=function(M){if(!h)for(var I=t+M;-4<=I&&I<=2&&!P(I);I+=M);};D(1),D(-1);for(var A=v.length-1;A>=0;A--){var B=v[A];B.invalid&&tt(v,B)}}();var g=function(P){var D=(P=P||{}).after;!function(){if(!f){f=xr();for(var P=0;P32767||B>32767)return null;if(A*B>16e6)return null;var M=a.makeLayer(f,t);if(null!=D){var I=v.indexOf(D)+1;v.splice(I,0,M)}else(void 0===P.insert||P.insert)&&v.unshift(M);return M};if(a.skipping&&!o)return null;for(var p=null,m=r.length/1,b=!o,w=0;w=m||!fd(p.bb,E.boundingBox()))&&!(p=g({insert:!0,after:p})))return null;h||b?a.queueLayer(p,E):a.drawEleInLayer(p,E,t,e),p.eles.push(E),x[t]=p}}return h||(b?null:v)},vr.getEleLevelForLayerLevel=function(r,e){return r},vr.drawEleInLayer=function(r,e,t,a){var i=this.renderer,s=r.context,o=e.boundingBox();0===o.w||0===o.h||!e.visible()||(t=this.getEleLevelForLayerLevel(t,a),i.setImgSmoothing(s,!1),i.drawCachedElement(s,e,null,null,t,true),i.setImgSmoothing(s,!0))},vr.levelIsComplete=function(r,e){var a=this.layersByLevel[r];if(!a||0===a.length)return!1;for(var n=0,i=0;i0||s.invalid)return!1;n+=s.eles.length}return n===e.length},vr.validateLayersElesOrdering=function(r,e){var t=this.layersByLevel[r];if(t)for(var a=0;a0){e=!0;break}}return e},vr.invalidateElements=function(r){var e=this;0!==r.length&&(e.lastInvalidationTime=Wr(),0!==r.length&&e.haveLayers()&&e.updateElementsInLayers(r,function(a,n,i){e.invalidateLayer(a)}))},vr.invalidateLayer=function(r){if(this.lastInvalidationTime=Wr(),!r.invalid){var e=r.level,t=r.eles,a=this.layersByLevel[e];tt(a,r),r.elesQueue=[],r.invalid=!0,r.replacement&&(r.replacement.invalid=!0);for(var n=0;n3&&void 0!==arguments[3])||arguments[3],n=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],s=this,o=e._private.rscratch;if((!i||e.visible())&&!o.badLine&&null!=o.allpts&&!isNaN(o.allpts[0])){var l;t&&(l=t,r.translate(-l.x1,-l.y1));var u=i?e.pstyle("opacity").value:1,v=i?e.pstyle("line-opacity").value:1,f=e.pstyle("curve-style").value,c=e.pstyle("line-style").value,h=e.pstyle("width").pfValue,d=e.pstyle("line-cap").value,y=e.pstyle("line-outline-width").value,g=e.pstyle("line-outline-color").value,p=u*v,m=u*v,b=function(){var M=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p;"straight-triangle"===f?(s.eleStrokeStyle(r,e,M),s.drawEdgeTrianglePath(e,r,o.allpts)):(r.lineWidth=h,r.lineCap=d,s.eleStrokeStyle(r,e,M),s.drawEdgePath(e,r,o.allpts,c),r.lineCap="butt")},w=function(){var M=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p;r.lineWidth=h+y,r.lineCap=d,y>0?(s.colorStrokeStyle(r,g[0],g[1],g[2],M),"straight-triangle"===f?s.drawEdgeTrianglePath(e,r,o.allpts):(s.drawEdgePath(e,r,o.allpts,c),r.lineCap="butt")):r.lineCap="butt"},E=function(){!n||s.drawEdgeOverlay(r,e)},C=function(){!n||s.drawEdgeUnderlay(r,e)},x=function(){var M=arguments.length>0&&void 0!==arguments[0]?arguments[0]:m;s.drawArrowheads(r,e,M)},k=function(){s.drawElementText(r,e,null,a)};r.lineJoin="round";var S="yes"===e.pstyle("ghost").value;if(S){var P=e.pstyle("ghost-offset-x").pfValue,D=e.pstyle("ghost-offset-y").pfValue,A=e.pstyle("ghost-opacity").value,B=p*A;r.translate(P,D),b(B),x(B),r.translate(-P,-D)}else w();C(),b(),x(),E(),k(),t&&r.translate(l.x1,l.y1)}}},of=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(0!==n){var i=this,s=i.usePaths(),o=a._private.rscratch,u=2*a.pstyle("".concat(e,"-padding")).pfValue,v=a.pstyle("".concat(e,"-color")).value;t.lineWidth=u,"self"!==o.edgeType||s?t.lineCap="round":t.lineCap="butt",i.colorStrokeStyle(t,v[0],v[1],v[2],n),i.drawEdgePath(a,t,o.allpts,"solid")}}}};Zr.drawEdgeOverlay=of("overlay"),Zr.drawEdgeUnderlay=of("underlay"),Zr.drawEdgePath=function(r,e,t,a){var s,n=r._private.rscratch,i=e,o=!1,l=this.usePaths(),u=r.pstyle("line-dash-pattern").pfValue,v=r.pstyle("line-dash-offset").pfValue;if(l){var f=t.join("$");n.pathCacheKey&&n.pathCacheKey===f?(s=e=n.pathCache,o=!0):(s=e=new Path2D,n.pathCacheKey=f,n.pathCache=s)}if(i.setLineDash)switch(a){case"dotted":i.setLineDash([1,1]);break;case"dashed":i.setLineDash(u),i.lineDashOffset=v;break;case"solid":i.setLineDash([])}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 h=2;h+35&&void 0!==arguments[5]?arguments[5]:5,s=arguments.length>6?arguments[6]:void 0;r.beginPath(),r.moveTo(e+i,t),r.lineTo(e+a-i,t),r.quadraticCurveTo(e+a,t,e+a,t+i),r.lineTo(e+a,t+n-i),r.quadraticCurveTo(e+a,t+n,e+a-i,t+n),r.lineTo(e+i,t+n),r.quadraticCurveTo(e,t+n,e,t+n-i),r.lineTo(e,t+i),r.quadraticCurveTo(e,t,e+i,t),r.closePath(),s?r.stroke():r.fill()}kt.eleTextBiggerThanMin=function(r,e){if(!e){var t=r.cy().zoom(),a=this.getPixelRatio(),n=Math.ceil(bi(t*a));e=Math.pow(2,n)}return!(r.pstyle("font-size").pfValue*e5&&void 0!==arguments[5])||arguments[5],s=this;if(null==a){if(i&&!s.eleTextBiggerThanMin(e))return}else if(!1===a)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,v=e.pstyle("label"),f=e.pstyle("source-label"),c=e.pstyle("target-label");if(u||(!v||!v.value)&&(!f||!f.value)&&(!c||!c.value))return;r.textAlign="center",r.textBaseline="bottom"}var d,h=!t;t&&(d=t,r.translate(-d.x1,-d.y1)),null==n?(s.drawText(r,e,null,h,i),e.isEdge()&&(s.drawText(r,e,"source",h,i),s.drawText(r,e,"target",h,i))):s.drawText(r,e,n,h,i),t&&r.translate(d.x1,d.y1)},kt.getFontCache=function(r){var e;this.fontCaches=this.fontCaches||[];for(var t=0;t2&&void 0!==arguments[2])||arguments[2],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,v=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,v[0],v[1],v[2],l)},kt.getTextAngle=function(r,e){var t,n=r._private.rscratch,i=e?e+"-":"",s=r.pstyle(i+"text-rotation");if("autorotate"===s.strValue){var o=wr(n,"labelAngle",e);t=r.isEdge()?o:0}else t="none"===s.strValue?0:s.pfValue;return t},kt.drawText=function(r,e,t){var a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],n=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=e._private,s=i.rscratch,o=n?e.effectiveOpacity():1;if(!n||0!==o&&0!==e.pstyle("text-opacity").value){"main"===t&&(t=null);var v,f,l=wr(s,"labelX",t),u=wr(s,"labelY",t),c=this.getLabelText(e,t);if(null!=c&&""!==c&&!isNaN(l)&&!isNaN(u)){this.setupTextStyle(r,e,n);var E,h=t?t+"-":"",d=wr(s,"labelWidth",t),y=wr(s,"labelHeight",t),g=e.pstyle(h+"text-margin-x").pfValue,p=e.pstyle(h+"text-margin-y").pfValue,m=e.isEdge(),b=e.pstyle("text-halign").value,w=e.pstyle("text-valign").value;switch(m&&(b="center",w="center"),l+=g,u+=p,0!==(E=a?this.getTextAngle(e,t):0)&&(v=l,f=u,r.translate(v,f),r.rotate(E),l=0,u=0),w){case"top":break;case"center":u+=y/2;break;case"bottom":u+=y}var C=e.pstyle("text-background-opacity").value,x=e.pstyle("text-border-opacity").value,k=e.pstyle("text-border-width").pfValue,S=e.pstyle("text-background-padding").pfValue,P=e.pstyle("text-background-shape").strValue,D=0===P.indexOf("round"),A=2;if(C>0||k>0&&x>0){var B=l-S;switch(b){case"left":B-=d;break;case"center":B-=d/2}var R=u-y-S,M=d+2*S,I=y+2*S;if(C>0){var L=r.fillStyle,O=e.pstyle("text-background-color").value;r.fillStyle="rgba("+O[0]+","+O[1]+","+O[2]+","+C*o+")",D?to(r,B,R,M,I,A):r.fillRect(B,R,M,I),r.fillStyle=L}if(k>0&&x>0){var V=r.strokeStyle,G=r.lineWidth,N=e.pstyle("text-border-color").value,F=e.pstyle("text-border-style").value;if(r.strokeStyle="rgba("+N[0]+","+N[1]+","+N[2]+","+x*o+")",r.lineWidth=k,r.setLineDash)switch(F){case"dotted":r.setLineDash([1,1]);break;case"dashed":r.setLineDash([4,2]);break;case"double":r.lineWidth=k/4,r.setLineDash([]);break;case"solid":r.setLineDash([])}if(D?to(r,B,R,M,I,A,"stroke"):r.strokeRect(B,R,M,I),"double"===F){var K=k/2;D?to(r,B+K,R+K,M-2*K,I-2*K,A,"stroke"):r.strokeRect(B+K,R+K,M-2*K,I-2*K)}r.setLineDash&&r.setLineDash([]),r.lineWidth=G,r.strokeStyle=V}}var X=2*e.pstyle("text-outline-width").pfValue;if(X>0&&(r.lineWidth=X),"wrap"===e.pstyle("text-wrap").value){var Q=wr(s,"labelWrapCachedLines",t),Z=wr(s,"labelLineHeight",t),re=d/2,ae=this.getLabelJustification(e);switch("auto"===ae||("left"===b?"left"===ae?l+=-d:"center"===ae&&(l+=-re):"center"===b?"left"===ae?l+=-re:"right"===ae&&(l+=re):"right"===b&&("center"===ae?l+=re:"right"===ae&&(l+=d))),w){case"top":case"center":case"bottom":u-=(Q.length-1)*Z}for(var J=0;J0&&r.strokeText(Q[J],l,u),r.fillText(Q[J],l,u),u+=Z}else X>0&&r.strokeText(c,l,u),r.fillText(c,l,u);0!==E&&(r.rotate(-E),r.translate(-v,-f))}}};var ct={drawNode:function(r,e,t){var o,l,a=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],n=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],i=!(arguments.length>5&&void 0!==arguments[5])||arguments[5],s=this,u=e._private,v=u.rscratch,f=e.position();if(te(f.x)&&te(f.y)&&(!i||e.visible())){var d,p,c=i?e.effectiveOpacity():1,h=s.usePaths(),y=!1,g=e.padding();o=e.width()+2*g,l=e.height()+2*g,t&&(p=t,r.translate(-p.x1,-p.y1));for(var m=e.pstyle("background-image"),b=m.value,w=new Array(b.length),E=new Array(b.length),C=0,x=0;x0&&void 0!==arguments[0]?arguments[0]:B;s.eleFillStyle(r,e,le)},J=function(){var le=arguments.length>0&&void 0!==arguments[0]?arguments[0]:N;s.colorStrokeStyle(r,R[0],R[1],R[2],le)},z=function(){var le=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Q;s.colorStrokeStyle(r,K[0],K[1],K[2],le)},q=function(le,Y,T,_){var ue,W=s.nodePathCache=s.nodePathCache||[],U=Yo("polygon"===T?T+","+_.join(","):T,""+Y,""+le,""+re),$=W[U],j=!1;return null!=$?(ue=$,j=!0,v.pathCache=ue):(ue=new Path2D,W[U]=v.pathCache=ue),{path:ue,cacheHit:j}},H=e.pstyle("shape").strValue,ee=e.pstyle("shape-polygon-points").pfValue;if(h){r.translate(f.x,f.y);var ne=q(o,l,H,ee);d=ne.path,y=ne.cacheHit}var be=function(){if(!y){var le=f;h&&(le={x:0,y:0}),s.nodeShapes[s.getNodeShape(e)].draw(d||r,le.x,le.y,o,l,re,v)}h?r.fill(d):r.fill()},Ge=function(){for(var le=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,Y=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],T=u.backgrounding,_=0,W=0;W0&&void 0!==arguments[0]&&arguments[0],Y=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c;s.hasPie(e)&&(s.drawPie(r,e,Y),le&&(h||s.nodeShapes[s.getNodeShape(e)].draw(r,f.x,f.y,o,l,re,v)))},se=function(){var le=arguments.length>0&&void 0!==arguments[0]&&arguments[0],Y=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c;s.hasStripe(e)&&(r.save(),h?r.clip(v.pathCache):(s.nodeShapes[s.getNodeShape(e)].draw(r,f.x,f.y,o,l,re,v),r.clip()),s.drawStripe(r,e,Y),r.restore(),le&&(h||s.nodeShapes[s.getNodeShape(e)].draw(r,f.x,f.y,o,l,re,v)))},oe=function(){var le=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,Y=(D>0?D:-D)*le,T=D>0?0:255;0!==D&&(s.colorFillStyle(r,T,T,T,Y),h?r.fill(d):r.fill())},ce=function(){if(A>0){if(r.lineWidth=A,r.lineCap=L,r.lineJoin=I,r.setLineDash)switch(M){case"dotted":r.setLineDash([1,1]);break;case"dashed":r.setLineDash(V),r.lineDashOffset=G;break;case"solid":case"double":r.setLineDash([])}if("center"!==O){if(r.save(),r.lineWidth*=2,"inside"===O)h?r.clip(d):r.clip();else{var le=new Path2D;le.rect(-o/2-A,-l/2-A,o+2*A,l+2*A),le.addPath(d),r.clip(le,"evenodd")}h?r.stroke(d):r.stroke(),r.restore()}else h?r.stroke(d):r.stroke();if("double"===M){r.lineWidth=A/3;var Y=r.globalCompositeOperation;r.globalCompositeOperation="destination-out",h?r.stroke(d):r.stroke(),r.globalCompositeOperation=Y}r.setLineDash&&r.setLineDash([])}},ge=function(){if(F>0){if(r.lineWidth=F,r.lineCap="butt",r.setLineDash)switch(X){case"dotted":r.setLineDash([1,1]);break;case"dashed":r.setLineDash([4,2]);break;case"solid":case"double":r.setLineDash([])}var le=f;h&&(le={x:0,y:0});var Y=s.getNodeShape(e),T=A;"inside"===O&&(T=0),"outside"===O&&(T*=2);var j,_=(o+T+(F+Z))/o,W=(l+T+(F+Z))/l,U=o*_,$=l*W,ue=s.nodeShapes[Y].points;if(h)j=q(U,$,Y,ue).path;if("ellipse"===Y)s.drawEllipsePath(j||r,le.x,le.y,U,$);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(Y)){var Ee=0,Se=0,pe=0;"round-diamond"===Y?Ee=1.4*(T+Z+F):"round-heptagon"===Y?(Ee=1.075*(T+Z+F),pe=-(T/2+Z+F)/35):"round-hexagon"===Y?Ee=1.12*(T+Z+F):"round-pentagon"===Y?(Ee=1.13*(T+Z+F),pe=-(T/2+Z+F)/15):"round-tag"===Y?(Ee=1.12*(T+Z+F),Se=.07*(T/2+F+Z)):"round-triangle"===Y&&(Ee=(T+Z+F)*(Math.PI/2),pe=-(T+Z/2+F)/Math.PI),0!==Ee&&(U=o*(_=(o+Ee)/o),["round-hexagon","round-tag"].includes(Y)||($=l*(W=(l+Ee)/l)));for(var Ce=U/2,me=$/2,xe=(re="auto"===re?lu(U,$):re)+(T+F+Z)/2,Ne=new Array(ue.length/2),Ze=new Array(ue.length/2),fr=0;fr0){if(n=n||a.position(),null==i||null==s){var h=a.padding();i=a.width()+2*h,s=a.height()+2*h}this.colorFillStyle(t,v[0],v[1],v[2],u),this.nodeShapes[f].draw(t,n.x,n.y,i+2*l,s+2*l,c),t.fill()}}}};ct.drawNodeOverlay=uf("overlay"),ct.drawNodeUnderlay=uf("underlay"),ct.hasPie=function(r){return(r=r[0])._private.hasPie},ct.hasStripe=function(r){return(r=r[0])._private.hasStripe},ct.drawPie=function(r,e,t,a){e=e[0],a=a||e.position();var h,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,v=e.width(),f=e.height(),c=Math.min(v,f)/2,d=0;if(this.usePaths()&&(l=0,u=0),"%"===i.units?c*=i.pfValue:void 0!==i.pfValue&&(c=i.pfValue/2),"%"===s.units?h=c*s.pfValue:void 0!==s.pfValue&&(h=s.pfValue/2),!(h>=c))for(var g=1;g<=n.pieBackgroundN;g++){var p=e.pstyle("pie-"+g+"-background-size").value,m=e.pstyle("pie-"+g+"-background-color").value,b=e.pstyle("pie-"+g+"-background-opacity").value*t,w=p/100;w+d>1&&(w=1-d);var E=1.5*Math.PI+2*Math.PI*d,x=(E+=o)+2*Math.PI*w;0===p||d>=1||d+w>1||(0===h?(r.beginPath(),r.moveTo(l,u),r.arc(l,u,c,E,x),r.closePath()):(r.beginPath(),r.arc(l,u,c,E,x),r.arc(l,u,h,x,E,!0),r.closePath()),this.colorFillStyle(r,m[0],m[1],m[2],b),r.fill(),d+=w)}},ct.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,v=this.usePaths();r.save();var f=e.pstyle("stripe-direction").value,c=e.pstyle("stripe-size");switch(f){case"vertical":break;case"righward":r.rotate(-Math.PI/2)}var h=o,d=l;"%"===c.units?(h*=c.pfValue,d*=c.pfValue):void 0!==c.pfValue&&(h=c.pfValue,d=c.pfValue),v&&(i=0,s=0),s-=h/2,i-=d/2;for(var y=1;y<=n.stripeBackgroundN;y++){var g=e.pstyle("stripe-"+y+"-background-size").value,p=e.pstyle("stripe-"+y+"-background-color").value,m=e.pstyle("stripe-"+y+"-background-opacity").value*t,b=g/100;b+u>1&&(b=1-u),!(0===g||u>=1||u+b>1)&&(r.beginPath(),r.rect(i,s+d*u,h,d*b),r.closePath(),this.colorFillStyle(r,p[0],p[1],p[2],m),r.fill(),u+=b)}r.restore()};var Oa,mr={};function lf(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}function Cy(r,e,t){void 0===t&&(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}function ao(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}}}function Dy(r){return"solid"===r.pstyle("background-fill").value&&"none"===r.pstyle("background-image").strValue&&(0===r.pstyle("border-width").value||0===r.pstyle("border-opacity").value||"solid"===r.pstyle("border-style").value)}function ky(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}function By(r){return r[0]+(r[1]<<8)+(r[2]<<16)+(r[3]<<24)}function vf(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]}}function ff(r,e,t){switch(e){case r.FLOAT:return new Float32Array(t);case r.INT:return new Int32Array(t)}}function Ay(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)}}function _r(r,e,t,a){var i=Qe(vf(r,t),3),s=i[0],o=i[1],l=i[2],u=ff(r,o,e*s),v=s*l,f=r.createBuffer();r.bindBuffer(r.ARRAY_BUFFER,f),r.bufferData(r.ARRAY_BUFFER,e*v,r.DYNAMIC_DRAW),r.enableVertexAttribArray(a),o===r.FLOAT?r.vertexAttribPointer(a,s,o,!1,v,0):o===r.INT&&r.vertexAttribIPointer(a,s,o,v,0),r.vertexAttribDivisor(a,1),r.bindBuffer(r.ARRAY_BUFFER,null);for(var c=new Array(e),h=0;he.minMbLowQualFrames&&(e.motionBlurPxRatio=e.mbPxRBlurry)),e.clearingMotionBlur&&(e.motionBlurPxRatio=1),e.textureDrawLastFrame&&!f&&(v[e.NODE]=!0,v[e.SELECT_BOX]=!0);var m=t.style(),b=t.zoom(),w=void 0!==s?s:b,E=t.pan(),C={x:E.x,y:E.y},x={zoom:b,pan:{x:E.x,y:E.y}},k=e.prevViewport;!(void 0===k||x.zoom!==k.zoom||x.pan.x!==k.pan.x||x.pan.y!==k.pan.y)&&!(y&&!d)&&(e.motionBlurPxRatio=1),o&&(C=o),w*=l,C.x*=l,C.y*=l;var P=e.getCachedZSortedEles();function D(J,z,q,H,ee){var ne=J.globalCompositeOperation;J.globalCompositeOperation="destination-out",e.colorFillStyle(J,255,255,255,e.motionBlurTransparency),J.fillRect(z,q,H,ee),J.globalCompositeOperation=ne}function A(J,z){var q,H,ee,ne;e.clearingMotionBlur||J!==u.bufferContexts[e.MOTIONBLUR_BUFFER_NODE]&&J!==u.bufferContexts[e.MOTIONBLUR_BUFFER_DRAG]?(q=C,H=w,ee=e.canvasWidth,ne=e.canvasHeight):(q={x:E.x*h,y:E.y*h},H=b*h,ee=e.canvasWidth*h,ne=e.canvasHeight*h),J.setTransform(1,0,0,1,0,0),"motionBlur"===z?D(J,0,0,ee,ne):!a&&(void 0===z||z)&&J.clearRect(0,0,ee,ne),n||(J.translate(q.x,q.y),J.scale(H,H)),o&&J.translate(o.x,o.y),s&&J.scale(s,s)}if(f||(e.textureDrawLastFrame=!1),f){if(e.textureDrawLastFrame=!0,!e.textureCache){e.textureCache={},e.textureCache.bb=t.mutableElements().boundingBox(),e.textureCache.texture=e.data.bufferCanvases[e.TEXTURE_BUFFER];var B=e.data.bufferContexts[e.TEXTURE_BUFFER];B.setTransform(1,0,0,1,0,0),B.clearRect(0,0,e.canvasWidth*e.textureMult,e.canvasHeight*e.textureMult),e.render({forcedContext:B,drawOnlyNodeLayer:!0,forcedPxRatio:l*e.textureMult}),(x=e.textureCache.viewport={zoom:t.zoom(),pan:t.pan(),width:e.canvasWidth,height:e.canvasHeight}).mpan={x:(0-x.pan.x)/x.zoom,y:(0-x.pan.y)/x.zoom}}v[e.DRAG]=!1,v[e.NODE]=!1;var R=u.contexts[e.NODE],M=e.textureCache.texture;x=e.textureCache.viewport;R.setTransform(1,0,0,1,0,0),c?D(R,0,0,x.width,x.height):R.clearRect(0,0,x.width,x.height);var I=m.core("outside-texture-bg-color").value,L=m.core("outside-texture-bg-opacity").value;e.colorFillStyle(R,I[0],I[1],I[2],L),R.fillRect(0,0,x.width,x.height);b=t.zoom();A(R,!1),R.clearRect(x.mpan.x,x.mpan.y,x.width/x.zoom/l,x.height/x.zoom/l),R.drawImage(M,x.mpan.x,x.mpan.y,x.width/x.zoom/l,x.height/x.zoom/l)}else e.textureOnViewport&&!a&&(e.textureCache=null);var O=t.extent(),V=e.pinching||e.hoverData.dragging||e.swipePanning||e.data.wheelZooming||e.hoverData.draggingEles||e.cy.animated(),G=e.hideEdgesOnViewport&&V,N=[];if(N[e.NODE]=!v[e.NODE]&&c&&!e.clearedForMotionBlur[e.NODE]||e.clearingMotionBlur,N[e.NODE]&&(e.clearedForMotionBlur[e.NODE]=!0),N[e.DRAG]=!v[e.DRAG]&&c&&!e.clearedForMotionBlur[e.DRAG]||e.clearingMotionBlur,N[e.DRAG]&&(e.clearedForMotionBlur[e.DRAG]=!0),v[e.NODE]||n||i||N[e.NODE]){var F=c&&!N[e.NODE]&&1!==h;A(R=a||(F?e.data.bufferContexts[e.MOTIONBLUR_BUFFER_NODE]:u.contexts[e.NODE]),c&&!F?"motionBlur":void 0),G?e.drawCachedNodes(R,P.nondrag,l,O):e.drawLayeredElements(R,P.nondrag,l,O),e.debug&&e.drawDebugPoints(R,P.nondrag),!n&&!c&&(v[e.NODE]=!1)}if(!i&&(v[e.DRAG]||n||N[e.DRAG])){F=c&&!N[e.DRAG]&&1!==h;A(R=a||(F?e.data.bufferContexts[e.MOTIONBLUR_BUFFER_DRAG]:u.contexts[e.DRAG]),c&&!F?"motionBlur":void 0),G?e.drawCachedNodes(R,P.drag,l,O):e.drawCachedElements(R,P.drag,l,O),e.debug&&e.drawDebugPoints(R,P.drag),!n&&!c&&(v[e.DRAG]=!1)}if(this.drawSelectionRectangle(r,A),c&&1!==h){var X=u.contexts[e.NODE],Q=e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_NODE],Z=u.contexts[e.DRAG],re=e.data.bufferCanvases[e.MOTIONBLUR_BUFFER_DRAG],ae=function(z,q,H){z.setTransform(1,0,0,1,0,0),H||!p?z.clearRect(0,0,e.canvasWidth,e.canvasHeight):D(z,0,0,e.canvasWidth,e.canvasHeight);var ee=h;z.drawImage(q,0,0,e.canvasWidth*ee,e.canvasHeight*ee,0,0,e.canvasWidth,e.canvasHeight)};(v[e.NODE]||N[e.NODE])&&(ae(X,Q,N[e.NODE]),v[e.NODE]=!1),(v[e.DRAG]||N[e.DRAG])&&(ae(Z,re,N[e.DRAG]),v[e.DRAG]=!1)}e.prevViewport=x,e.clearingMotionBlur&&(e.clearingMotionBlur=!1,e.motionBlurCleared=!0,e.motionBlur=!0),c&&(e.motionBlurTimeout=setTimeout(function(){e.motionBlurTimeout=null,e.clearedForMotionBlur[e.NODE]=!1,e.clearedForMotionBlur[e.DRAG]=!1,e.motionBlur=!1,e.clearingMotionBlur=!f,e.mbFrames=0,v[e.NODE]=!0,v[e.DRAG]=!0,e.redraw()},100)),a||t.emit("render")},mr.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 v=u||n.contexts[t.SELECT_BOX];if(e(v),1==t.selection[4]&&(t.hoverData.selecting||t.touchData.selecting)){var f=t.cy.zoom(),c=i.core("selection-box-border-width").value/f;v.lineWidth=c,v.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+")",v.fillRect(t.selection[0],t.selection[1],t.selection[2]-t.selection[0],t.selection[3]-t.selection[1]),c>0&&(v.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+")",v.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){f=t.cy.zoom();var h=n.bgActivePosistion;v.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+")",v.beginPath(),v.arc(h.x,h.y,i.core("active-bg-size").pfValue/f,0,2*Math.PI),v.fill()}var d=t.lastRedrawTime;if(t.showFps&&d){d=Math.round(d);var y=Math.round(1e3/d),g="1 frame = "+d+" ms = "+y+" fps";if(v.setTransform(1,0,0,1,0,0),v.fillStyle="rgba(255, 0, 0, 0.75)",v.strokeStyle="rgba(255, 0, 0, 0.75)",v.font="30px Arial",!Oa){var p=v.measureText(g);Oa=p.actualBoundingBoxAscent}v.fillText(g,0,Oa);v.strokeRect(0,Oa+10,250,20),v.fillRect(0,Oa+10,250*Math.min(y/60,1),20)}o||(l[t.SELECT_BOX]=!1)}};var cf=typeof Float32Array<"u"?Float32Array:Array;function no(){var r=new cf(9);return cf!=Float32Array&&(r[1]=0,r[2]=0,r[3]=0,r[5]=0,r[6]=0,r[7]=0),r[0]=1,r[4]=1,r[8]=1,r}function df(r){return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=1,r[5]=0,r[6]=0,r[7]=0,r[8]=1,r}function _n(r,e,t){var a=e[0],n=e[1],i=e[2],s=e[3],o=e[4],l=e[5],u=e[6],v=e[7],f=e[8],c=t[0],h=t[1];return r[0]=a,r[1]=n,r[2]=i,r[3]=s,r[4]=o,r[5]=l,r[6]=c*a+h*s+u,r[7]=c*n+h*o+v,r[8]=c*i+h*l+f,r}function hf(r,e,t){var a=e[0],n=e[1],i=e[2],s=e[3],o=e[4],l=e[5],u=e[6],v=e[7],f=e[8],c=Math.sin(t),h=Math.cos(t);return r[0]=h*a+c*s,r[1]=h*n+c*o,r[2]=h*i+c*l,r[3]=h*s-c*a,r[4]=h*o-c*n,r[5]=h*l-c*i,r[6]=u,r[7]=v,r[8]=f,r}function io(r,e,t){var a=t[0],n=t[1];return r[0]=a*e[0],r[1]=a*e[1],r[2]=a*e[2],r[3]=n*e[3],r[4]=n*e[4],r[5]=n*e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r}Math.hypot||(Math.hypot=function(){for(var r=0,e=arguments.length;e--;)r+=arguments[e]*arguments[e];return Math.sqrt(r)});var Ny=function(){return jr(function r(e,t,a,n){Jr(this,r),this.debugID=Math.floor(1e4*Math.random()),this.r=e,this.texSize=t,this.texRows=a,this.texHeight=Math.floor(t/a),this.enableWrapping=!0,this.locked=!1,this.texture=null,this.needsBuffer=!0,this.freePointer={x:0,row:0},this.keyToLocation=new Map,this.canvas=n(e,t,t),this.scratch=n(e,t,this.texHeight,"scratch")},[{key:"lock",value:function(){this.locked=!0}},{key:"getKeys",value:function(){return new Set(this.keyToLocation.keys())}},{key:"getScale",value:function(t){var a=t.w,n=t.h,i=this.texHeight,s=this.texSize,o=i/n,l=a*o,u=n*o;return l>s&&(l=a*(o=s/a),u=n*o),{scale:o,texW:l,texH:u}}},{key:"draw",value: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),v=u.scale,f=u.texW,c=u.texH,h=function(b,w){if(n&&w){var E=w.context,C=b.x,x=b.row,k=C,S=l*x;E.save(),E.translate(k,S),E.scale(v,v),n(E,a),E.restore()}},d=[null,null],y=function(){h(i.freePointer,i.canvas),d[0]={x:i.freePointer.x,y:i.freePointer.row*l,w:f,h:c},d[1]={x:i.freePointer.x+f,y:i.freePointer.row*l,w:0,h:c},i.freePointer.x+=f,i.freePointer.x==s&&(i.freePointer.x=0,i.freePointer.row++)},p=function(){i.freePointer.x=0,i.freePointer.row++};if(this.freePointer.x+f<=s)y();else{if(this.freePointer.row>=o-1)return!1;this.freePointer.x===s?(p(),y()):this.enableWrapping?function(){var b=i.scratch,w=i.canvas;b.clear(),h({x:0,row:0},b);var E=s-i.freePointer.x,C=f-E,x=l,k=i.freePointer.x,S=i.freePointer.row*l,P=E;w.context.drawImage(b,0,0,P,x,k,S,P,x),d[0]={x:k,y:S,w:P,h:c};var D=E,A=(i.freePointer.row+1)*l,B=C;w&&w.context.drawImage(b,D,0,B,x,0,A,B,x),d[1]={x:0,y:A,w:B,h:c},i.freePointer.x=C,i.freePointer.row++}():(p(),y())}return this.keyToLocation.set(t,d),this.needsBuffer=!0,d}},{key:"getOffsets",value:function(t){return this.keyToLocation.get(t)}},{key:"isEmpty",value:function(){return 0===this.freePointer.x&&0===this.freePointer.row}},{key:"canFit",value:function(t){if(this.locked)return!1;var a=this.texSize,n=this.texRows,s=this.getScale(t).texW;return!(this.freePointer.x+s>a)||this.freePointer.row1&&void 0!==arguments[1]?arguments[1]:{},i=n.forceRedraw,s=void 0!==i&&i,o=n.filterEle,l=void 0===o?function(){return!0}:o,u=n.filterType,v=void 0===u?function(){return!0}:u,f=!1,c=!1,h=br(t);try{for(h.s();!(d=h.n()).done;){var y=d.value;if(l(y)){var p,g=br(this.renderTypes.values());try{var m=function(){var w=p.value,E=w.type;if(v(E)){var C=a.collections.get(w.collection),x=w.getKey(y),k=Array.isArray(x)?x:[x];if(s)k.forEach(function(A){return C.markKeyForGC(A)}),c=!0;else{var S=w.getID?w.getID(y):y.id(),P=a._key(E,S),D=a.typeAndIdToKey.get(P);void 0!==D&&!ky(k,D)&&(f=!0,a.typeAndIdToKey.delete(P),D.forEach(function(A){return C.markKeyForGC(A)}))}}};for(g.s();!(p=g.n()).done;)m()}catch(b){g.e(b)}finally{g.f()}}}}catch(b){h.e(b)}finally{h.f()}return c&&(this.gc(),f=!1),f}},{key:"gc",value:function(){var a,t=br(this.collections.values());try{for(t.s();!(a=t.n()).done;){a.value.gc()}}catch(i){t.e(i)}finally{t.f()}}},{key:"getOrCreateAtlas",value: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(c){s.drawClipped?(c.save(),c.beginPath(),c.rect(0,0,n.w,n.h),c.clip(),s.drawElement(c,t,n,!0,!0),c.restore()):s.drawElement(c,t,n,!0,!0),l=!0});if(l){var v=s.getID?s.getID(t):t.id(),f=this._key(a,v);this.typeAndIdToKey.has(f)?this.typeAndIdToKey.get(f).push(i):this.typeAndIdToKey.set(f,[i])}return u}},{key:"getAtlasInfo",value:function(t,a){var n=this,i=this.renderTypes.get(a),s=i.getKey(t);return(Array.isArray(s)?s:[s]).map(function(l){var u=i.getBoundingBox(t,l),v=n.getOrCreateAtlas(t,a,u,l),c=Qe(v.getOffsets(l),2),h=c[0];return{atlas:v,tex:h,tex1:h,tex2:c[1],bb:u}})}},{key:"getDebugInfo",value:function(){var n,t=[],a=br(this.collections);try{for(a.s();!(n=a.n()).done;){var i=Qe(n.value,2),s=i[0],l=i[1].getCounts(),u=l.keyCount,v=l.atlasCount;t.push({type:s,keyCount:u,atlasCount:v})}}catch(f){a.e(f)}finally{a.f()}return t}}])}(),qy=function(){return jr(function r(e){Jr(this,r),this.globalOptions=e,this.atlasSize=e.webglTexSize,this.maxAtlasesPerBatch=e.webglTexPerBatch,this.batchAtlases=[]},[{key:"getMaxAtlasesPerBatch",value:function(){return this.maxAtlasesPerBatch}},{key:"getAtlasSize",value:function(){return this.atlasSize}},{key:"getIndexArray",value:function(){return Array.from({length:this.maxAtlasesPerBatch},function(t,a){return a})}},{key:"startBatch",value:function(){this.batchAtlases=[]}},{key:"getAtlasCount",value:function(){return this.batchAtlases.length}},{key:"getAtlases",value:function(){return this.batchAtlases}},{key:"canAddToCurrentBatch",value:function(t){return this.batchAtlases.length!==this.maxAtlasesPerBatch||this.batchAtlases.includes(t)}},{key:"getAtlasIndexForBatch",value: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}}])}(),Na={SCREEN:{name:"screen",screen:!0},PICKING:{name:"picking",picking:!0}},Gn_IGNORE=1,Gn_USE_BB=2,Uy=function(){return jr(function r(e,t,a){Jr(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=Cy,this.atlasManager=new Vy(e,a),this.batchManager=new qy(a),this.simpleShapeOptions=new Map,this.program=this._createShaderProgram(Na.SCREEN),this.pickingProgram=this._createShaderProgram(Na.PICKING),this.vao=this._createVAO()},[{key:"addAtlasCollection",value:function(t,a){this.atlasManager.addAtlasCollection(t,a)}},{key:"addTextureAtlasRenderType",value:function(t,a){this.atlasManager.addRenderType(t,a)}},{key:"addSimpleShapeRenderType",value:function(t,a){this.simpleShapeOptions.set(t,a)}},{key:"invalidate",value:function(t){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=a.type,i=this.atlasManager;return n?i.invalidate(t,{filterType:function(o){return o===n},forceRedraw:!0}):i.invalidate(t)}},{key:"gc",value:function(){this.atlasManager.gc()}},{key:"_createShaderProgram",value:function(t){var a=this.gl,n="#version 300 es\n precision highp float;\n\n uniform mat3 uPanZoomMatrix;\n uniform int uAtlasSize;\n \n // instanced\n in vec2 aPosition; // a vertex from the unit square\n \n in mat3 aTransform; // used to transform verticies, eg into a bounding box\n in int aVertType; // the type of thing we are rendering\n\n // the z-index that is output when using picking mode\n in vec4 aIndex;\n \n // For textures\n in int aAtlasId; // which shader unit/atlas to use\n in vec4 aTex; // x/y/w/h of texture in atlas\n\n // for edges\n in vec4 aPointAPointB;\n in vec4 aPointCPointD;\n in vec2 aLineWidth; // also used for node border width\n\n // simple shapes\n in vec4 aCornerRadius; // for round-rectangle [top-right, bottom-right, top-left, bottom-left]\n in vec4 aColor; // also used for edges\n in vec4 aBorderColor; // aLineWidth is used for border width\n\n // output values passed to the fragment shader\n out vec2 vTexCoord;\n out vec4 vColor;\n out vec2 vPosition;\n // flat values are not interpolated\n flat out int vAtlasId; \n flat out int vVertType;\n flat out vec2 vTopRight;\n flat out vec2 vBotLeft;\n flat out vec4 vCornerRadius;\n flat out vec4 vBorderColor;\n flat out vec2 vBorderWidth;\n flat out vec4 vIndex;\n \n void main(void) {\n int vid = gl_VertexID;\n vec2 position = aPosition; // TODO make this a vec3, simplifies some code below\n\n if(aVertType == ".concat(0,") {\n float texX = aTex.x; // texture coordinates\n float texY = aTex.y;\n float texW = aTex.z;\n float texH = aTex.w;\n\n if(vid == 1 || vid == 2 || vid == 4) {\n texX += texW;\n }\n if(vid == 2 || vid == 4 || vid == 5) {\n texY += texH;\n }\n\n float d = float(uAtlasSize);\n vTexCoord = vec2(texX / d, texY / d); // tex coords must be between 0 and 1\n\n gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0);\n }\n else if(aVertType == ").concat(4," || aVertType == ").concat(7," \n || aVertType == ").concat(5," || aVertType == ").concat(6,") { // simple shapes\n\n // the bounding box is needed by the fragment shader\n vBotLeft = (aTransform * vec3(0, 0, 1)).xy; // flat\n vTopRight = (aTransform * vec3(1, 1, 1)).xy; // flat\n vPosition = (aTransform * vec3(position, 1)).xy; // will be interpolated\n\n // calculations are done in the fragment shader, just pass these along\n vColor = aColor;\n vCornerRadius = aCornerRadius;\n vBorderColor = aBorderColor;\n vBorderWidth = aLineWidth;\n\n gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0);\n }\n else if(aVertType == ").concat(1,") {\n vec2 source = aPointAPointB.xy;\n vec2 target = aPointAPointB.zw;\n\n // adjust the geometry so that the line is centered on the edge\n position.y = position.y - 0.5;\n\n // stretch the unit square into a long skinny rectangle\n vec2 xBasis = target - source;\n vec2 yBasis = normalize(vec2(-xBasis.y, xBasis.x));\n vec2 point = source + xBasis * position.x + yBasis * aLineWidth[0] * position.y;\n\n gl_Position = vec4(uPanZoomMatrix * vec3(point, 1.0), 1.0);\n vColor = aColor;\n } \n else if(aVertType == ").concat(2,") {\n vec2 pointA = aPointAPointB.xy;\n vec2 pointB = aPointAPointB.zw;\n vec2 pointC = aPointCPointD.xy;\n vec2 pointD = aPointCPointD.zw;\n\n // adjust the geometry so that the line is centered on the edge\n position.y = position.y - 0.5;\n\n vec2 p0, p1, p2, pos;\n if(position.x == 0.0) { // The left side of the unit square\n p0 = pointA;\n p1 = pointB;\n p2 = pointC;\n pos = position;\n } else { // The right side of the unit square, use same approach but flip the geometry upside down\n p0 = pointD;\n p1 = pointC;\n p2 = pointB;\n pos = vec2(0.0, -position.y);\n }\n\n vec2 p01 = p1 - p0;\n vec2 p12 = p2 - p1;\n vec2 p21 = p1 - p2;\n\n // Find the normal vector.\n vec2 tangent = normalize(normalize(p12) + normalize(p01));\n vec2 normal = vec2(-tangent.y, tangent.x);\n\n // Find the vector perpendicular to p0 -> p1.\n vec2 p01Norm = normalize(vec2(-p01.y, p01.x));\n\n // Determine the bend direction.\n float sigma = sign(dot(p01 + p21, normal));\n float width = aLineWidth[0];\n\n if(sign(pos.y) == -sigma) {\n // This is an intersecting vertex. Adjust the position so that there's no overlap.\n vec2 point = 0.5 * width * normal * -sigma / dot(normal, p01Norm);\n gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0);\n } else {\n // This is a non-intersecting vertex. Treat it like a mitre join.\n vec2 point = 0.5 * width * normal * sigma * dot(normal, p01Norm);\n gl_Position = vec4(uPanZoomMatrix * vec3(p1 + point, 1.0), 1.0);\n }\n\n vColor = aColor;\n } \n else if(aVertType == ").concat(3," && vid < 3) {\n // massage the first triangle into an edge arrow\n if(vid == 0)\n position = vec2(-0.15, -0.3);\n if(vid == 1)\n position = vec2( 0.0, 0.0);\n if(vid == 2)\n position = vec2( 0.15, -0.3);\n\n gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0);\n vColor = aColor;\n }\n else {\n gl_Position = vec4(2.0, 0.0, 0.0, 1.0); // discard vertex by putting it outside webgl clip space\n }\n\n vAtlasId = aAtlasId;\n vVertType = aVertType;\n vIndex = aIndex;\n }\n "),i=this.batchManager.getIndexArray(),o=function Ey(r,e,t){var a=lf(r,r.VERTEX_SHADER,e),n=lf(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}(a,n,"#version 300 es\n precision highp float;\n\n // declare texture unit for each texture atlas in the batch\n ".concat(i.map(function(u){return"uniform sampler2D uTexture".concat(u,";")}).join("\n\t"),"\n\n uniform vec4 uBGColor;\n uniform float uZoom;\n\n in vec2 vTexCoord;\n in vec4 vColor;\n in vec2 vPosition; // model coordinates\n\n flat in int vAtlasId;\n flat in vec4 vIndex;\n flat in int vVertType;\n flat in vec2 vTopRight;\n flat in vec2 vBotLeft;\n flat in vec4 vCornerRadius;\n flat in vec4 vBorderColor;\n flat in vec2 vBorderWidth;\n\n out vec4 outColor;\n\n ").concat("\n float circleSD(vec2 p, float r) {\n return distance(vec2(0), p) - r; // signed distance\n }\n","\n ").concat("\n float rectangleSD(vec2 p, vec2 b) {\n vec2 d = abs(p)-b;\n return distance(vec2(0),max(d,0.0)) + min(max(d.x,d.y),0.0);\n }\n","\n ").concat("\n float roundRectangleSD(vec2 p, vec2 b, vec4 cr) {\n cr.xy = (p.x > 0.0) ? cr.xy : cr.zw;\n cr.x = (p.y > 0.0) ? cr.x : cr.y;\n vec2 q = abs(p) - b + cr.x;\n return min(max(q.x, q.y), 0.0) + distance(vec2(0), max(q, 0.0)) - cr.x;\n }\n","\n ").concat("\n float ellipseSD(vec2 p, vec2 ab) {\n p = abs( p ); // symmetry\n\n // find root with Newton solver\n vec2 q = ab*(p-ab);\n float w = (q.x1.0) ? d : -d;\n }\n","\n\n vec4 blend(vec4 top, vec4 bot) { // blend colors with premultiplied alpha\n return vec4( \n top.rgb + (bot.rgb * (1.0 - top.a)),\n top.a + (bot.a * (1.0 - top.a)) \n );\n }\n\n vec4 distInterp(vec4 cA, vec4 cB, float d) { // interpolate color using Signed Distance\n // scale to the zoom level so that borders don't look blurry when zoomed in\n // note 1.5 is an aribitrary value chosen because it looks good\n return mix(cA, cB, 1.0 - smoothstep(0.0, 1.5 / uZoom, abs(d))); \n }\n\n void main(void) {\n if(vVertType == ").concat(0,") {\n // look up the texel from the texture unit\n ").concat(i.map(function(u){return"if(vAtlasId == ".concat(u,") outColor = texture(uTexture").concat(u,", vTexCoord);")}).join("\n\telse "),"\n } \n else if(vVertType == ").concat(3,") {\n // mimics how canvas renderer uses context.globalCompositeOperation = 'destination-out';\n outColor = blend(vColor, uBGColor);\n outColor.a = 1.0; // make opaque, masks out line under arrow\n }\n else if(vVertType == ").concat(4," && vBorderWidth == vec2(0.0)) { // simple rectangle with no border\n outColor = vColor; // unit square is already transformed to the rectangle, nothing else needs to be done\n }\n else if(vVertType == ").concat(4," || vVertType == ").concat(7," \n || vVertType == ").concat(5," || vVertType == ").concat(6,") { // use SDF\n\n float outerBorder = vBorderWidth[0];\n float innerBorder = vBorderWidth[1];\n float borderPadding = outerBorder * 2.0;\n float w = vTopRight.x - vBotLeft.x - borderPadding;\n float h = vTopRight.y - vBotLeft.y - borderPadding;\n vec2 b = vec2(w/2.0, h/2.0); // half width, half height\n vec2 p = vPosition - vec2(vTopRight.x - b[0] - outerBorder, vTopRight.y - b[1] - outerBorder); // translate to center\n\n float d; // signed distance\n if(vVertType == ").concat(4,") {\n d = rectangleSD(p, b);\n } else if(vVertType == ").concat(7," && w == h) {\n d = circleSD(p, b.x); // faster than ellipse\n } else if(vVertType == ").concat(7,") {\n d = ellipseSD(p, b);\n } else {\n d = roundRectangleSD(p, b, vCornerRadius.wzyx);\n }\n\n // use the distance to interpolate a color to smooth the edges of the shape, doesn't need multisampling\n // we must smooth colors inwards, because we can't change pixels outside the shape's bounding box\n if(d > 0.0) {\n if(d > outerBorder) {\n discard;\n } else {\n outColor = distInterp(vBorderColor, vec4(0), d - outerBorder);\n }\n } else {\n if(d > innerBorder) {\n vec4 outerColor = outerBorder == 0.0 ? vec4(0) : vBorderColor;\n vec4 innerBorderColor = blend(vBorderColor, vColor);\n outColor = distInterp(innerBorderColor, outerColor, d);\n } \n else {\n vec4 outerColor;\n if(innerBorder == 0.0 && outerBorder == 0.0) {\n outerColor = vec4(0);\n } else if(innerBorder == 0.0) {\n outerColor = vBorderColor;\n } else {\n outerColor = blend(vBorderColor, vColor);\n }\n outColor = distInterp(vColor, outerColor, d - innerBorder);\n }\n }\n }\n else {\n outColor = vColor;\n }\n\n ").concat(t.picking?"if(outColor.a == 0.0) discard;\n else outColor = vIndex;":"","\n }\n "));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&&void 0!==arguments[1]?arguments[1]:Na.SCREEN;this.panZoomMatrix=t,this.renderTarget=a,this.batchDebugInfo=[],this.wrappedCount=0,this.simpleCount=0,this.startBatch()}},{key:"startBatch",value:function(){this.instanceCount=0,this.batchManager.startBatch()}},{key:"endFrame",value:function(){this.endBatch()}},{key:"_isVisible",value:function(t,a){return!!t.visible()&&(!a||!a.isVisible||a.isVisible(t))}},{key:"drawTexture",value:function(t,a,n){var i=this.atlasManager,s=this.batchManager,o=i.getRenderTypeOpts(n);if(this._isVisible(t,o)){if(this.renderTarget.picking&&o.getTexPickingMode){var l=o.getTexPickingMode(t);if(l===Gn_IGNORE)return;if(l==Gn_USE_BB)return void this.drawPickingRectangle(t,a,n)}var f,v=br(i.getAtlasInfo(t,n));try{for(v.s();!(f=v.n()).done;){var c=f.value,h=c.atlas,d=c.tex1,y=c.tex2;s.canAddToCurrentBatch(h)||this.endBatch();for(var g=s.getAtlasIndexForBatch(h),p=0,m=[[d,!0],[y,!1]];p=this.maxInstances&&this.endBatch()}}}}catch(D){v.e(D)}finally{v.f()}}}},{key:"setTransformMatrix",value:function(t,a,n,i){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=0;if(n.shapeProps&&n.shapeProps.padding&&(o=t.pstyle(n.shapeProps.padding).pfValue),i){var l=i.bb,u=i.tex1,v=i.tex2,f=u.w/(u.w+v.w);s||(f=1-f);var c=this._getAdjustedBB(l,o,s,f);this._applyTransformMatrix(a,c,n,t)}else{var h=n.getBoundingBox(t),d=this._getAdjustedBB(h,o,!0,1);this._applyTransformMatrix(a,d,n,t)}}},{key:"_applyTransformMatrix",value:function(t,a,n,i){var s,o;df(t);var l=n.getRotation?n.getRotation(i):0;if(0!==l){var u=n.getRotationPoint(i);_n(t,t,[u.x,u.y]),hf(t,t,l);var c=n.getRotationOffset(i);s=c.x+(a.xOffset||0),o=c.y+(a.yOffset||0)}else s=a.x1,o=a.y1;_n(t,t,[s,o]),io(t,t,[a.w,a.h])}},{key:"_getAdjustedBB",value:function(t,a,n,i){var s=t.x1,o=t.y1,l=t.w,u=t.h;a&&(s-=a,o-=a,l+=2*a,u+=2*a);var f=0,c=l*i;return n&&i<1?l=c:!n&&i<1&&(s+=f=l-c,l=c),{x1:s,y1:o,w:l,h:u,xOffset:f,yOffset:t.yOffset}}},{key:"drawPickingRectangle",value:function(t,a,n){var i=this.atlasManager.getRenderTypeOpts(n),s=this.instanceCount;this.vertTypeBuffer.getView(s)[0]=4,ra(a,this.indexBuffer.getView(s)),Bt([0,0,0],1,this.colorBuffer.getView(s));var u=this.transformBuffer.getMatrixView(s);this.setTransformMatrix(t,u,i),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}},{key:"drawNode",value: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(void 0===o||i.isSimple&&!i.isSimple(t))return void this.drawTexture(t,a,n);var l=this.instanceCount;if(this.vertTypeBuffer.getView(l)[0]=o,5===o||6===o){var u=i.getBoundingBox(t),v=this._getCornerRadius(t,s.radius,u),f=this.cornerRadiusBuffer.getView(l);f[0]=v,f[1]=v,f[2]=v,f[3]=v,6===o&&(f[0]=0,f[2]=0)}ra(a,this.indexBuffer.getView(l)),Bt(t.pstyle(s.color).value,t.pstyle(s.opacity).value,this.colorBuffer.getView(l));var g=this.lineWidthBuffer.getView(l);if(g[0]=0,g[1]=0,s.border){var p=t.pstyle("border-width").value;if(p>0){Bt(t.pstyle("border-color").value,t.pstyle("border-opacity").value,this.borderColorBuffer.getView(l));var E=t.pstyle("border-position").value;if("inside"===E)g[0]=0,g[1]=-p;else if("outside"===E)g[0]=p,g[1]=0;else{var C=p/2;g[0]=C,g[1]=-C}}}var x=this.transformBuffer.getMatrixView(l);this.setTransformMatrix(t,x,i),this.simpleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}},{key:"_getVertTypeForShape",value:function(t,a){switch(t.pstyle(a).value){case"rectangle":return 4;case"ellipse":return 7;case"roundrectangle":case"round-rectangle":return 5;case"bottom-round-rectangle":return 6;default:return}}},{key:"_getCornerRadius",value:function(t,a,n){var i=n.w,s=n.h;if("auto"===t.pstyle(a).value)return nt(i,s);var o=t.pstyle(a).pfValue,l=i/2,u=s/2;return Math.min(o,u,l)}},{key:"drawEdgeArrow",value:function(t,a,n){if(t.visible()){var s,o,l,i=t._private.rscratch;if("source"===n?(s=i.arrowStartX,o=i.arrowStartY,l=i.srcArrowAngle):(s=i.arrowEndX,o=i.arrowEndY,l=i.tgtArrowAngle),!(isNaN(s)||null==s||isNaN(o)||null==o||isNaN(l)||null==l))if("none"!==t.pstyle(n+"-arrow-shape").value){var v=t.pstyle(n+"-arrow-color").value,h=t.pstyle("opacity").value*t.pstyle("line-opacity").value,d=t.pstyle("width").pfValue,y=t.pstyle("arrow-scale").value,g=this.r.getArrowWidth(d,y),p=this.instanceCount,m=this.transformBuffer.getMatrixView(p);df(m),_n(m,m,[s,o]),io(m,m,[g,g]),hf(m,m,l),this.vertTypeBuffer.getView(p)[0]=3,ra(a,this.indexBuffer.getView(p)),Bt(v,h,this.colorBuffer.getView(p)),this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}}},{key:"drawEdgeLine",value: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(),4==n.length){var v=this.instanceCount;this.vertTypeBuffer.getView(v)[0]=1,ra(a,this.indexBuffer.getView(v)),Bt(l,u,this.colorBuffer.getView(v)),this.lineWidthBuffer.getView(v)[0]=o;var d=this.pointAPointBBuffer.getView(v);d[0]=n[0],d[1]=n[1],d[2]=n[2],d[3]=n[3],this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}else for(var y=0;y=this.maxInstances&&this.endBatch()}}}}},{key:"_getEdgePoints",value:function(t){var a=t._private.rscratch;if(!a.badLine&&null!=a.allpts&&!isNaN(a.allpts[0])){var n=a.allpts;if(4==n.length)return n;var i=this._getNumSegments(t);return this._getCurveSegmentPoints(n,i)}}},{key:"_getNumSegments",value:function(t){return Math.min(Math.max(15,5),this.maxInstances)}},{key:"_getCurveSegmentPoints",value:function(t,a){if(4==t.length)return t;for(var n=Array(2*(a+1)),i=0;i<=a;i++)if(0==i)n[0]=t[0],n[1]=t[1];else if(i==a)n[2*i]=t[t.length-2],n[2*i+1]=t[t.length-1];else{var s=i/a;this._setCurvePoint(t,s,n,2*i)}return n}},{key:"_setCurvePoint",value:function(t,a,n,i){if(!(t.length<=2)){for(var s=Array(t.length-2),o=0;o0}},o=function(f){return"yes"===f.pstyle("text-events").strValue?Gn_USE_BB:Gn_IGNORE},l=function(f){var c=f.position(),h=c.x,d=c.y,y=f.outerWidth(),g=f.outerHeight();return{w:y,h:g,x1:h-y/2,y1:d-g/2}};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:Dy,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:uo(e.getLabelKey,null),getBoundingBox:lo(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:uo(e.getSourceLabelKey,"source"),getBoundingBox:lo(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:uo(e.getTargetLabelKey,"target"),getBoundingBox:lo(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(v,f){var c=!1;f&&f.length>0&&(c|=t.drawing.invalidate(f)),c&&u()}),function Ky(r){var e=r.render;r.render=function(i){i=i||{};var s=r.cy;r.webgl&&(s.zoom()>7.99?(function Yy(r){var e=r.data.contexts[r.WEBGL];e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT)}(r),e.call(r,i)):(function Xy(r){var e=function(a){a.save(),a.setTransform(1,0,0,1,0,0),a.clearRect(0,0,r.canvasWidth,r.canvasHeight),a.restore()};e(r.data.contexts[r.NODE]),e(r.data.contexts[r.DRAG])}(r),wf(r,i,Na.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 function rm(r,e,t){var i,s,l,a=function em(r,e,t,a,n){var i,s,o,l,u=ao(r),v=u.pan,f=u.zoom,h=Qe(function Sy(r,e,t,a,n){var i=a*t+e.x,s=n*t+e.y;return[i,s=Math.round(r.canvasHeight-s)]}(r,v,f,e,t),2),d=h[0],y=h[1],g=6;if(i=d-g/2,s=y-g/2,l=g,0===(o=g)||0===l)return[];var p=r.data.contexts[r.WEBGL];p.bindFramebuffer(p.FRAMEBUFFER,r.pickingFrameBuffer),r.pickingFrameBuffer.needsDraw&&(p.viewport(0,0,p.canvas.width,p.canvas.height),wf(r,null,Na.PICKING),r.pickingFrameBuffer.needsDraw=!1);var m=o*l,b=new Uint8Array(4*m);p.readPixels(i,s,o,l,p.RGBA,p.UNSIGNED_BYTE,b),p.bindFramebuffer(p.FRAMEBUFFER,null);for(var w=new Set,E=0;E=0&&w.add(x)}return w}(r,e,t),n=r.getCachedZSortedEles(),o=br(a);try{for(o.s();!(l=o.n()).done;){var v=n[l.value];if(!i&&v.isNode()&&(i=v),!s&&v.isEdge()&&(s=v),i&&s)break}}catch(f){o.e(f)}finally{o.f()}return[i,s].filter(Boolean)}(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),"viewport"===i||"bounds"===i?r.pickingFrameBuffer.needsDraw=!0:"background"===i&&r.drawing.invalidate(s,{type:"node-body"})}}(t)};var uo=function(e,t){return function(a){var n=e(a),i=mf(a,t);return i.length>1?i.map(function(s,o){return"".concat(n,"_").concat(o)}):n}},lo=function(e,t){return function(a,n){var i=e(a);if("string"==typeof n){var s=n.indexOf("_");if(s>0){var o=Number(n.substring(s+1)),l=mf(a,t),u=i.h/l.length,v=u*o,f=i.y1+v;return{x1:i.x1,w:i.w,y1:f,h:u,yOffset:v}}}return i}};function bf(r,e){var t=r.canvasWidth,a=r.canvasHeight,n=ao(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)}function vo(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"))}function wf(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]&&function Qy(r,e){r.drawSelectionRectangle(e,function(t){return bf(r,t)})}(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=function Zy(r){var e=r.canvasWidth,t=r.canvasHeight,a=ao(r),n=a.pan,i=a.zoom,s=no();_n(s,s,[n.x,n.y]),io(s,s,[i,i]);var o=no();!function Oy(r,e,t){r[0]=2/e,r[1]=0,r[2]=0,r[3]=0,r[4]=-2/t,r[5]=0,r[6]=-1,r[7]=1,r[8]=1}(o,e,t);var l=no();return function Iy(r,e,t){var a=e[0],n=e[1],i=e[2],s=e[3],o=e[4],l=e[5],u=e[6],v=e[7],f=e[8],c=t[0],h=t[1],d=t[2],y=t[3],g=t[4],p=t[5],m=t[6],b=t[7],w=t[8];r[0]=c*a+h*s+d*u,r[1]=c*n+h*o+d*v,r[2]=c*i+h*l+d*f,r[3]=y*a+g*s+p*u,r[4]=y*n+g*o+p*v,r[5]=y*i+g*l+p*f,r[6]=m*a+b*s+w*u,r[7]=m*n+b*o+w*v,r[8]=m*i+b*l+w*f}(l,o,s),l}(r),l=r.getCachedZSortedEles();if(i=l.length,n.startFrame(o,t),t.screen){for(var u=0;u0&&s>0){h.clearRect(0,0,i,s),h.globalCompositeOperation="source-over";var d=this.getCachedZSortedEles();if(r.full)h.translate(-a.x1*u,-a.y1*u),h.scale(u,u),this.drawElements(h,d),h.scale(1/u,1/u),h.translate(a.x1*u,a.y1*u);else{var y=e.pan(),g={x:y.x*u,y:y.y*u};u*=e.zoom(),h.translate(g.x,g.y),h.scale(u,u),this.drawElements(h,d),h.scale(1/u,1/u),h.translate(-g.x,-g.y)}r.bg&&(h.globalCompositeOperation="destination-over",h.fillStyle=r.bg,h.rect(0,0,i,s),h.fill())}return c},Va.png=function(r){return Sf(r,this.bufferCanvasImage(r),"image/png")},Va.jpg=function(r){return Sf(r,this.bufferCanvasImage(r),"image/jpeg")};var Df={nodeShapeImpl:function(r,e,t,a,n,i,s,o){switch(r){case"ellipse":return this.drawEllipsePath(e,t,a,n,i);case"polygon":return this.drawPolygonPath(e,t,a,n,i,s);case"round-polygon":return this.drawRoundPolygonPath(e,t,a,n,i,s,o);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(e,t,a,n,i,o);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(e,t,a,n,i,s,o);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(e,t,a,n,i,o);case"barrel":return this.drawBarrelPath(e,t,a,n,i)}}},am=kf,Te=kf.prototype;function kf(r){var e=this,a=e.cy.window().document;r.webgl&&(Te.CANVAS_LAYERS=e.CANVAS_LAYERS=4,console.log("webgl rendering enabled")),e.data={canvases:new Array(Te.CANVAS_LAYERS),contexts:new Array(Te.CANVAS_LAYERS),canvasNeedsRedraw:new Array(Te.CANVAS_LAYERS),bufferCanvases:new Array(Te.BUFFER_COUNT),bufferContexts:new Array(Te.CANVAS_LAYERS)};var n="-webkit-tap-highlight-color",i="rgba(0,0,0,0)";e.data.canvasContainer=a.createElement("div");var s=e.data.canvasContainer.style;e.data.canvasContainer.style[n]=i,s.position="relative",s.zIndex="0",s.overflow="hidden";var o=r.cy.container();o.appendChild(e.data.canvasContainer),o.style[n]=i;var l={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};bo&&bo.userAgent.match(/msie|trident|edge/i)&&(l["-ms-touch-action"]="none",l["touch-action"]="none");for(var u=0;u"u"?"undefined":Je(OffscreenCanvas))?t=new OffscreenCanvas(r,e):((t=this.cy.window().document.createElement("canvas")).width=r,t.height=e);return t},[af,qr,Zr,ro,kt,ct,mr,yf,dt,Va,Df].forEach(function(r){he(Te,r)});var sm=[{type:"layout",extensions:Mp},{type:"renderer",extensions:[{name:"null",impl:Av},{name:"base",impl:Xv},{name:"canvas",impl:am}]}],Bf={},Pf={};function Af(r,e,t){var a=t,n=function(k){Me("Can not register `"+e+"` for `"+r+"` since `"+k+"` already exists in the prototype and can not be overridden")};if("core"===r){if(Pa.prototype[e])return n(e);Pa.prototype[e]=t}else if("collection"===r){if(lr.prototype[e])return n(e);lr.prototype[e]=t}else if("layout"===r){for(var i=function(k){this.options=k,t.call(this,k),ke(this._private)||(this._private={}),this._private.cy=k.cy,this._private.listeners=[],this.createEmitter()},s=i.prototype=Object.create(t.prototype),o=[],l=0;l