"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([["93853"],{3399:function(e,t,n){function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==n.return||n.return()}finally{if(s)throw a}}}}function s(e,t,n){return(t=c(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,i,a,o,s=[],l=!0,u=!1;try{if(a=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;l=!1}else for(;!(l=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);l=!0);}catch(e){u=!0,i=e}finally{try{if(!l&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}(e,t)||d(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e){return function(e){if(Array.isArray(e))return r(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||d(e)||function(){throw TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t);if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==typeof t?t:t+""}function h(e){return(h="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})(e)}function d(e,t){if(e){if("string"==typeof e)return r(e,t);var n=({}).toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}n.d(t,{Z:()=>ct});var f,p,g,v,y,b,x,w="undefined"==typeof window?null:window,E=w?w.navigator:null;w&&w.document;var T=h(""),k=h({}),C=h(function(){}),P="undefined"==typeof HTMLElement?"undefined":h(HTMLElement),S=function(e){return e&&e.instanceString&&B(e.instanceString)?e.instanceString():null},D=function(e){return null!=e&&h(e)==T},B=function(e){return null!=e&&h(e)===C},A=function(e){return!I(e)&&(Array.isArray?Array.isArray(e):null!=e&&e instanceof Array)},_=function(e){return null!=e&&h(e)===k&&!A(e)&&e.constructor===Object},M=function(e){return null!=e&&h(e)===h(1)&&!isNaN(e)},R=function(e){if("undefined"!==P)return null!=e&&e instanceof HTMLElement},I=function(e){return N(e)||L(e)},N=function(e){return"collection"===S(e)&&e._private.single},L=function(e){return"collection"===S(e)&&!e._private.single},O=function(e){return"core"===S(e)},z=function(e){return"stylesheet"===S(e)},F=function(e){return null==e||!!(""===e||e.match(/^\s+$/))},V=function(e){return null!=e&&h(e)===k&&B(e.then)},X=function(e,t){t||(t=function(){if(1==arguments.length)return arguments[0];if(0==arguments.length)return"undefined";for(var e=[],t=0;tt)},Q=null!=Object.assign?Object.assign.bind(Object):function(e){for(var t=arguments,n=1;n1&&(n-=1),n<1/6)?e+(t-e)*6*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}var n,r,i,a,o,s,l,u,c=RegExp("^"+K+"$").exec(e);if(c){if((r=parseInt(c[1]))<0?r=(360- -1*r%360)%360:r>360&&(r%=360),r/=360,(i=parseFloat(c[2]))<0||i>100||(i/=100,(a=parseFloat(c[3]))<0||a>100)||(a/=100,void 0!==(o=c[4])&&((o=parseFloat(o))<0||o>1)))return;if(0===i)s=l=u=Math.round(255*a);else{var h=a<.5?a*(1+i):a+i-a*i,d=2*a-h;s=Math.round(255*t(d,h,r+1/3)),l=Math.round(255*t(d,h,r)),u=Math.round(255*t(d,h,r-1/3))}n=[s,l,u,o]}return n},et=function(e){var t,n=RegExp("^"+H+"$").exec(e);if(n){t=[];for(var r=[],i=1;i<=3;i++){var a=n[i];if("%"===a[a.length-1]&&(r[i]=!0),a=parseFloat(a),r[i]&&(a=a/100*255),a<0||a>255)return;t.push(Math.floor(a))}var o=r[1]||r[2]||r[3],s=r[1]&&r[2]&&r[3];if(o&&!s)return;var l=n[4];if(void 0!==l){if((l=parseFloat(l))<0||l>1)return;t.push(l)}}return t},en=function(e){return(A(e)?e:null)||er[e.toLowerCase()]||J(e)||et(e)||ee(e)},er={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]},ei=function(e){for(var t=e.map,n=e.keys,r=n.length,i=0;i=o||t<0||v&&n>=c}function w(){var e,n,r,a=t();if(x(a))return E(a);d=setTimeout(w,(e=a-f,n=a-p,r=o-e,v?i(r,c-n):r))}function E(e){return(d=void 0,y&&l)?b(e):(l=u=void 0,h)}function T(){var e,n=t(),r=x(n);if(l=arguments,u=this,f=n,r){if(void 0===d)return p=e=f,d=setTimeout(w,o),g?b(e):h;if(v)return clearTimeout(d),d=setTimeout(w,o),b(f)}return void 0===d&&(d=setTimeout(w,o)),h}return o=n(o)||0,e(s)&&(g=!!s.leading,c=(v="maxWait"in s)?r(n(s.maxWait)||0,o):c,y="trailing"in s?!!s.trailing:y),T.cancel=function(){void 0!==d&&clearTimeout(d),p=0,l=f=u=d=void 0},T.flush=function(){return void 0===d?h:E(t())},T}}()),ep=w?w.performance:null,eg=ep&&ep.now?function(){return ep.now()}:function(){return Date.now()},ev=function(){if(w){if(w.requestAnimationFrame)return function(e){w.requestAnimationFrame(e)};else if(w.mozRequestAnimationFrame)return function(e){w.mozRequestAnimationFrame(e)};else if(w.webkitRequestAnimationFrame)return function(e){w.webkitRequestAnimationFrame(e)};else if(w.msRequestAnimationFrame)return function(e){w.msRequestAnimationFrame(e)}}return function(e){e&&setTimeout(function(){e(eg())},1e3/60)}}(),ey=function(e){return ev(e)},em=function(e){for(var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9261,r=n;!(t=e.next()).done;)r=65599*r+t.value|0;return r},eb=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:9261;return 65599*t+e|0},ex=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5381;return(t<<5)+t+e|0},ew=function(e){return 2097152*e[0]+e[1]},eE=function(e,t){return[eb(e[0],t[0]),ex(e[1],t[1])]},eT=function(e,t){var n={value:0,done:!1},r=0,i=e.length;return em({next:function(){return r=0;r--)e[r]===t&&e.splice(r,1)},eq=function(e){e.splice(0,e.length)},eW=function(e,t){for(var n=0;n2)||void 0===arguments[2]||arguments[2];if(void 0===e||void 0===t||!O(e))return void eN("An element must have a core reference and parameters set");var r=t.group;if(null==r&&(r=t.data&&null!=t.data.source&&null!=t.data.target?"edges":"nodes"),"nodes"!==r&&"edges"!==r)return void eN("An element must be of type `nodes` or `edges`; you specified `"+r+"`");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:r,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"===r:!!t.pannable,active:!1,classes:new e$,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 a=t.renderedPosition,o=e.pan(),s=e.zoom();i.position={x:(a.x-o.x)/s,y:(a.y-o.y)/s}}var l=[];A(t.classes)?l=t.classes:D(t.classes)&&(l=t.classes.split(/\s+/));for(var u=0,c=l.length;ut)},l=function(e,r,i,a,o){var s;if(null==i&&(i=0),null==o&&(o=t),i<0)throw Error("lo must be non-negative");for(null==a&&(a=e.length);io(r,e[s=n((i+a)/2)])?a=s:i=s+1;return[].splice.apply(e,[i,i-i].concat(r)),r},a=function(e,n,r){return null==r&&(r=t),e.push(n),f(e,0,e.length-1,r)},i=function(e,n){var r,i;return null==n&&(n=t),r=e.pop(),e.length?(i=e[0],e[0]=r,p(e,0,n)):i=r,i},s=function(e,n,r){var i;return null==r&&(r=t),i=e[0],e[0]=n,p(e,0,r),i},o=function(e,n,r){var i;return null==r&&(r=t),e.length&&0>r(e[0],n)&&(n=(i=[e[0],n])[0],e[0]=i[1],p(e,0,r)),n},r=function(e,r){var i,a,o,s,l,u;for(null==r&&(r=t),s=(function(){u=[];for(var t=0,r=n(e.length/2);0<=r?tr;0<=r?t++:t--)u.push(t);return u}).apply(this).reverse(),l=[],a=0,o=s.length;aa(o=p[h],s)&&(l(c,o,0,null,a),c.pop(),s=c[c.length-1]);return c}for(r(e,a),v=[],d=0,g=u(n,e.length);0<=g?dg;0<=g?++d:--d)v.push(i(e,a));return v},f=function(e,n,r,i){var a,o,s;for(null==i&&(i=t),a=e[r];r>n;){if(0>i(a,o=e[s=r-1>>1])){e[r]=o,r=s;continue}break}return e[r]=a},p=function(e,n,r){var i,a,o,s,l;for(null==r&&(r=t),a=e.length,l=n,o=e[n],i=2*n+1;ir(e[i],e[s]))&&(i=s),e[n]=e[i],i=2*(n=i)+1;return e[n]=o,f(e,l,n,r)},e=function(){function e(e){this.cmp=null!=e?e:t,this.nodes=[]}return e.push=a,e.pop=i,e.replace=s,e.pushpop=o,e.heapify=r,e.updateItem=d,e.nlargest=c,e.nsmallest=h,e.prototype.push=function(e){return a(this.nodes,e,this.cmp)},e.prototype.pop=function(){return i(this.nodes,this.cmp)},e.prototype.peek=function(){return this.nodes[0]},e.prototype.contains=function(e){return -1!==this.nodes.indexOf(e)},e.prototype.replace=function(e){return s(this.nodes,e,this.cmp)},e.prototype.pushpop=function(e){return o(this.nodes,e,this.cmp)},e.prototype.heapify=function(){return r(this.nodes,this.cmp)},e.prototype.updateItem=function(e){return d(this.nodes,e,this.cmp)},e.prototype.clear=function(){return this.nodes=[]},e.prototype.empty=function(){return 0===this.nodes.length},e.prototype.size=function(){return this.nodes.length},e.prototype.clone=function(){var t;return(t=new e).nodes=this.nodes.slice(0),t},e.prototype.toArray=function(){return this.nodes.slice(0)},e.prototype.insert=e.prototype.push,e.prototype.top=e.prototype.peek,e.prototype.front=e.prototype.peek,e.prototype.has=e.prototype.contains,e.prototype.copy=e.prototype.clone,e}(),e1.exports=e}).call(e2),e1.exports)}())),e3=ej({root:null,weight:function(e){return 1},directed:!1}),e4=ej({root:null,goal:null,weight:function(e){return 1},heuristic:function(e){return 0},directed:!1}),e9=ej({weight:function(e){return 1},directed:!1}),e6=ej({weight:function(e){return 1},directed:!1,root:null}),e8=Math.sqrt(2),e7=function(e,t,n){0===n.length&&eN("Karger-Stein must be run on a connected (sub)graph");for(var r=n[e],i=r[1],a=r[2],o=t[i],s=t[a],l=n.length-1;l>=0;l--){var u=n[l],c=u[1],h=u[2];(t[c]===o&&t[h]===s||t[c]===s&&t[h]===o)&&n.splice(l,1)}for(var d=0;dr;)t=e7(Math.floor(Math.random()*t.length),e,t),n--;return t},tt=function(e,t,n){return{x:e.x*t+n.x,y:e.y*t+n.y}},tn=function(e,t,n){return{x:(e.x-n.x)/t,y:(e.y-n.y)/t}},tr=function(e){return{x:e[0],y:e[1]}},ti=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=1/0,i=t;i1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=-1/0,i=t;i1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=0,i=0,a=t;a1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length,r=!(arguments.length>3)||void 0===arguments[3]||arguments[3],i=!(arguments.length>4)||void 0===arguments[4]||arguments[4],a=!(arguments.length>5)||void 0===arguments[5]||arguments[5];r?e=e.slice(t,n):(n0&&e.splice(0,t));for(var o=0,s=e.length-1;s>=0;s--){var l=e[s];a?!isFinite(l)&&(e[s]=-1/0,o++):e.splice(s,1)}i&&e.sort(function(e,t){return e-t});var u=e.length,c=Math.floor(u/2);return u%2!=0?e[c+1+o]:(e[c-1+o]+e[c+o])/2},tl=function(e,t){return Math.atan2(t,e)-Math.PI/2},tu=Math.log2||function(e){return Math.log(e)/Math.log(2)},tc=function(e){return e>0?1:e<0?-1:0},th=function(e,t){return Math.sqrt(td(e,t))},td=function(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r},tf=function(e){for(var t=e.length,n=0,r=0;r=e.x1&&e.y2>=e.y1)return{x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,w:e.x2-e.x1,h:e.y2-e.y1};else 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}}},tb=function(e){e.x1=1/0,e.y1=1/0,e.x2=-1/0,e.y2=-1/0,e.w=0,e.h=0},tx=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},tw=function(e,t,n){e.x1=Math.min(e.x1,t),e.x2=Math.max(e.x2,t),e.w=e.x2-e.x1,e.y1=Math.min(e.y1,n),e.y2=Math.max(e.y2,n),e.h=e.y2-e.y1},tE=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},tT=function(e){var t,n,r,i,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[0];if(1===a.length)t=n=r=i=a[0];else if(2===a.length)t=r=a[0],i=n=a[1];else if(4===a.length){var o=l(a,4);t=o[0],n=o[1],r=o[2],i=o[3]}return e.x1-=i,e.x2+=n,e.y1-=t,e.y2+=r,e.w=e.x2-e.x1,e.h=e.y2-e.y1,e},tk=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},tC=function(e,t){return!(e.x1>t.x2)&&!(t.x1>e.x2)&&!(e.x2t.y2)&&!(t.y1>e.y2)&&!0},tP=function(e,t,n){return e.x1<=t&&t<=e.x2&&e.y1<=n&&n<=e.y2},tS=function(e,t){return tP(e,t.x1,t.y1)&&tP(e,t.x2,t.y2)},tD=function(e,t,n,r,i,a,o){var s,l,u=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"auto",c="auto"===u?t$(i,a):u,h=i/2,d=a/2,f=(c=Math.min(c,h,d))!==h,p=c!==d;if(f){var g=n-h+c-o,v=r-d-o,y=n+h-c+o;if((s=tq(e,t,n,r,g,v,y,v,!1)).length>0)return s}if(p){var b=n+h+o,x=r-d+c-o,w=r+d-c+o;if((s=tq(e,t,n,r,b,x,b,w,!1)).length>0)return s}if(f){var E=n-h+c-o,T=r+d+o,k=n+h-c+o;if((s=tq(e,t,n,r,E,T,k,T,!1)).length>0)return s}if(p){var C=n-h-o,P=r-d+c-o,S=r+d-c+o;if((s=tq(e,t,n,r,C,P,C,S,!1)).length>0)return s}var D=n-h+c,B=r-d+c;if((l=tj(e,t,n,r,D,B,c+o)).length>0&&l[0]<=D&&l[1]<=B)return[l[0],l[1]];var A=n+h-c,_=r-d+c;if((l=tj(e,t,n,r,A,_,c+o)).length>0&&l[0]>=A&&l[1]<=_)return[l[0],l[1]];var M=n+h-c,R=r+d-c;if((l=tj(e,t,n,r,M,R,c+o)).length>0&&l[0]>=M&&l[1]>=R)return[l[0],l[1]];var I=n-h+c,N=r+d-c;return(l=tj(e,t,n,r,I,N,c+o)).length>0&&l[0]<=I&&l[1]>=N?[l[0],l[1]]:[]},tB=function(e,t,n,r,i,a,o){var s=Math.min(n,i),l=Math.max(n,i),u=Math.min(r,a),c=Math.max(r,a);return s-o<=e&&e<=l+o&&u-o<=t&&t<=c+o},tA=function(e,t,n,r,i,a,o,s,l){var u={x1:Math.min(n,o,i)-l,x2:Math.max(n,o,i)+l,y1:Math.min(r,s,a)-l,y2:Math.max(r,s,a)+l};return!(eu.x2)&&!(tu.y2)},t_=function(e,t,n,r){var i=t*t-4*e*(n-=r);if(i<0)return[];var a=Math.sqrt(i),o=2*e;return[(-t+a)/o,(-t-a)/o]},tM=function(e,t,n,r,i){var a,o,s,l,u,c,h,d;if(0===e&&(e=1e-5),t/=e,n/=e,r/=e,a=(o=(3*n-t*t)/9)*o*o+(s=(-(27*r)+t*(9*n-t*t*2))/54)*s,i[1]=0,h=t/3,a>0){u=(u=s+Math.sqrt(a))<0?-Math.pow(-u,1/3):Math.pow(u,1/3),c=(c=s-Math.sqrt(a))<0?-Math.pow(-c,1/3):Math.pow(c,1/3),i[0]=-h+u+c,h+=(u+c)/2,i[4]=i[2]=-h,h=Math.sqrt(3)*(-c+u)/2,i[3]=h,i[5]=-h;return}if(i[5]=i[3]=0,0===a){d=s<0?-Math.pow(-s,1/3):Math.pow(s,1/3),i[0]=-h+2*d,i[4]=i[2]=-(d+h);return}l=Math.acos(s/Math.sqrt(l=(o=-o)*o*o)),d=2*Math.sqrt(o),i[0]=-h+d*Math.cos(l/3),i[2]=-h+d*Math.cos((l+2*Math.PI)/3),i[4]=-h+d*Math.cos((l+4*Math.PI)/3)},tR=function(e,t,n,r,i,a,o,s){var l,u=[];tM(n*n-4*n*i+2*n*o+4*i*i-4*i*o+o*o+r*r-4*r*a+2*r*s+4*a*a-4*a*s+s*s,9*n*i-3*n*n-3*n*o-6*i*i+3*i*o+9*r*a-3*r*r-3*r*s-6*a*a+3*a*s,3*n*n-6*n*i+n*o-n*e+2*i*i+2*i*e-o*e+3*r*r-6*r*a+r*s-r*t+2*a*a+2*a*t-s*t,n*i-n*n+n*e-i*e+r*a-r*r+r*t-a*t,u);for(var c=[],h=0;h<6;h+=2)1e-7>Math.abs(u[h+1])&&u[h]>=0&&u[h]<=1&&c.push(u[h]);c.push(1),c.push(0);for(var d=-1,f=0;f=0?ll?(e-i)*(e-i)+(t-a)*(t-a):u-h},tN=function(e,t,n){for(var r,i,a,o,s=0,l=0;l=e)||!(e>=a))&&(!(r<=e)||!(e<=a)))continue;(e-r)/(a-r)*(o-i)+i>t&&s++}return s%2!=0},tL=function(e,t,n,r,i,a,o,s,l){var u,c,h=Array(n.length);null!=s[0]?(u=Math.atan(s[1]/s[0]),s[0]<0?u+=Math.PI/2:u=-u-Math.PI/2):u=s;for(var d=Math.cos(-u),f=Math.sin(-u),p=0;p0?tz(tF(h,-l)):h)},tO=function(e,t,n,r,i,a,o,s){for(var l=Array(2*n.length),u=0;u=0&&p<=1&&v.push(p),g>=0&&g<=1&&v.push(g),0===v.length)return[];var y=v[0]*s[0]+e,b=v[0]*s[1]+t;return v.length>1?v[0]==v[1]?[y,b]:[y,b,v[1]*s[0]+e,v[1]*s[1]+t]:[y,b]},tY=function(e,t,n){return t<=e&&e<=n||n<=e&&e<=t?e:e<=t&&t<=n||n<=t&&t<=e?t:n},tq=function(e,t,n,r,i,a,o,s,l){var u=e-i,c=n-e,h=o-i,d=t-a,f=r-t,p=s-a,g=h*d-p*u,v=c*d-f*u,y=p*c-h*f;if(0!==y){var b=g/y,x=v/y;return -.001<=b&&b<=1.001&&-.001<=x&&x<=1.001||l?[e+b*c,t+b*f]:[]}return 0!==g&&0!==v?[]:tY(e,n,o)===o?[o,s]:tY(e,n,i)===i?[i,a]:tY(i,o,n)===n?[n,r]:[]},tW=function(e,t,n,r,i,a,o,s){var l,u,c,h,d,f,p=[],g=Array(n.length),v=!0;if(null==a&&(v=!1),v){for(var y=0;y0?tz(tF(g,-s)):g}else u=n;for(var b=0;b2){for(var f=[c[0],c[1]],p=Math.pow(f[0]-e,2)+Math.pow(f[1]-t,2),g=1;gu&&(u=t)},get:function(e){return l[e]}},h=0;h0?b.edgesTo(y)[0]:y.edgesTo(b)[0]);u[y=y.id()]>u[g]+w&&(u[y]=u[g]+w,0>h.nodes.indexOf(y)?h.push(y):h.updateItem(y),l[y]=0,n[y]=[]),u[y]==u[g]+w&&(l[y]=l[y]+l[g],n[y].push(g))}else for(var E=0;E0;){for(var P=t.pop(),S=0;S0&&o.push(n[s]);0!==o.length&&i.push(r.collection(o))}return i},ns=function(e,t){for(var n=0;n5&&void 0!==arguments[5]?arguments[5]:nc,o=r,s=0;s=2?nv(e,t,n,0,nf,np):nv(e,t,n,0,nd)},squaredEuclidean:function(e,t,n){return nv(e,t,n,0,nf)},manhattan:function(e,t,n){return nv(e,t,n,0,nd)},max:function(e,t,n){return nv(e,t,n,-1/0,ng)}};function nm(e,t,n,r,i,a){var o;return(o=B(e)?e:ny[e]||ny.euclidean,0===t&&B(e))?o(i,a):o(t,n,r,i,a)}ny["squared-euclidean"]=ny.squaredEuclidean,ny.squaredeuclidean=ny.squaredEuclidean;var nb=ej({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:!1,testCentroids:null}),nx=function(e){return nb(e)},nw=function(e,t,n,r,i){var a="kMedoids"!==i?function(e){return n[e]}:function(e){return r[e](n)};return nm(e,r.length,a,function(e){return r[e](t)},n,t)},nE=function(e,t,n){for(var r=n.length,i=Array(r),a=Array(r),o=Array(t),s=null,l=0;ln)return!1;return!0},nP=function(e,t,n){for(var r=0;ri&&(i=t[l][u],a=u);o[a].push(e[l])}for(var c=0;c=i.threshold||"dendrogram"===i.mode&&1===e.length)return!1;var p=t[s],g=t[r[s]];o="dendrogram"===i.mode?{left:p,right:g,key:p.key}:{value:p.value.concat(g.value),key:p.key},e[p.index]=o,e.splice(g.index,1),t[p.key]=o;for(var v=0;vn[g.key][y.key]&&(a=n[g.key][y.key])):"max"===i.linkage?(a=n[p.key][y.key],n[p.key][y.key]0&&r.push(i);return r},nU=function(e,t,n){for(var r=[],i=0;io&&(a=l,o=t[i*e+l])}a>0&&r.push(a)}for(var u=0;ul&&(s=u,l=c)}n[i]=a[s]}return nU(e,t,n)},nG=function(e){for(var t,n,r,i,a,o,s,l=this.cy(),u=this.nodes(),c=nj(e),h={},d=0;d=S?(D=S,S=A,B=_):A>D&&(D=A);for(var M=0;M0);k[s%c.minIterations*t+z]=F,O+=F}if(O>0&&(s>=c.minIterations-1||s==c.maxIterations-1)){for(var V=0,X=0;X1)}});var u=Object.keys(t).filter(function(e){return t[e].cutVertex}).map(function(t){return e.getElementById(t)});return{cut:e.spawn(u),components:i}},n$=function(){var e=this,t={},n=0,r=[],i=[],a=e.spawn(e),o=function(s){if(i.push(s),t[s]={index:n,low:n++,explored:!1},e.getElementById(s).connectedEdges().intersection(e).forEach(function(e){var n=e.target().id();n!==s&&(n in t||o(n),t[n].explored||(t[s].low=Math.min(t[s].low,t[n].low)))}),t[s].index===t[s].low){for(var l=e.spawn();;){var u=i.pop();if(l.merge(e.getElementById(u)),t[u].low=t[s].index,t[u].explored=!0,u===s)break}var c=l.edgesWith(l),h=l.merge(c);r.push(h),a=a.difference(h)}};return e.forEach(function(e){if(e.isNode()){var n=e.id();n in t||o(n)}}),{cut:a,components:r}},nQ={};[e0,{dijkstra:function(e){if(!_(e)){var t=arguments;e={root:t[0],weight:t[1],directed:t[2]}}var n=e3(e),r=n.root,i=n.weight,a=n.directed,o=this,s=D(r)?this.filter(r)[0]:r[0],l={},u={},c={},h=this.byGroup(),d=h.nodes,f=h.edges;f.unmergeBy(function(e){return e.isLoop()});for(var p=function(e){return l[e.id()]},g=new e5(function(e,t){return p(e)-p(t)}),v=0;v0;){var b=g.pop(),x=p(b);if(c[b.id()]=x,x!==1/0)for(var w=b.neighborhood().intersect(d),E=0;E0)for(n.unshift(t);u[i];){var a=u[i];n.unshift(a.edge),n.unshift(a.node),i=(r=a.node).id()}return o.spawn(n)}}}},{kruskal:function(e){e=e||function(e){return 1};for(var t=this.byGroup(),n=t.nodes,r=t.edges,i=n.length,a=Array(i),o=function(e){for(var t=0;t0;){if(n=(t=g.pop()).id(),v.delete(n),w++,n===h){for(var E=[],T=o,k=h,C=b[k];E.unshift(T),null!=C&&E.unshift(C),null!=(T=y[k]);)C=b[k=T.id()];return{found:!0,distance:d[n],path:this.spawn(E),steps:w}}p[n]=!0;for(var P=t._private.edges,S=0;SC&&(d[k]=C,g[k]=T,v[k]=b),!i){var P=T*l+E;!i&&d[P]>C&&(d[P]=C,g[P]=E,v[P]=b)}}}for(var S=0;S1&&void 0!==arguments[1]?arguments[1]:a,r=y(e),i=[],s=r;;){if(null==s)return t.spawn();var l=v(s),u=l.edge,c=l.pred;if(i.unshift(s[0]),s.same(n)&&i.length>0)break;null!=u&&i.unshift(u),s=c}return o.spawn(i)},hasNegativeWeightCycle:f,negativeWeightCycles:p}}},{kargerStein:function(){var e=this,t=this.byGroup(),n=t.nodes,r=t.edges;r.unmergeBy(function(e){return e.isLoop()});var i=n.length,a=r.length,o=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2)),s=Math.floor(i/e8);if(i<2)return void eN("At least 2 nodes are required for Karger-Stein algorithm");for(var l=[],u=0;u1||o>1)&&(l=!0),u[r]=[],e.outgoers().forEach(function(e){e.isEdge()&&u[r].push(e.id())})}else c[r]=[void 0,e.target().id()]}):this.forEach(function(e){var r=e.id();e.isNode()?(e.degree(!0)%2&&(t?n?l=!0:n=r:t=r),u[r]=[],e.connectedEdges().forEach(function(e){return u[r].push(e.id())})):c[r]=[e.source().id(),e.target().id()]});var h={found:!1,trail:void 0};if(l)return h;if(n&&t)if(s){if(r&&n!=r)return h;r=n}else{if(r&&n!=r&&t!=r)return h;r||(r=n)}else r||(r=this[0].id());var d=function(e){for(var t,n,r,i=e,a=[e];u[i].length;)n=c[t=u[i].shift()][0],i!=(r=c[t][1])?(u[r]=u[r].filter(function(e){return e!=t}),i=r):s||i==n||(u[n]=u[n].filter(function(e){return e!=t}),i=n),a.unshift(t),a.unshift(i);return a},f=[],p=[];for(p=d(r);1!=p.length;)0==u[p[0]].length?(f.unshift(this.getElementById(p.shift())),f.unshift(this.getElementById(p.shift()))):p=d(p.shift()).concat(p);for(var g in f.unshift(this.getElementById(p.shift())),u)if(u[g].length)return h;return h.found=!0,h.trail=this.spawn(f,!0),h}},{hopcroftTarjanBiconnected:nZ,htbc:nZ,htb:nZ,hopcroftTarjanBiconnectedComponents:nZ},{tarjanStronglyConnected:n$,tsc:n$,tscc:n$,tarjanStronglyConnectedComponents:n$}].forEach(function(e){Q(nQ,e)});var nJ=function(e){if(!(this instanceof nJ))return new nJ(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))};nJ.prototype={fulfill:function(e){return n0(this,1,"fulfillValue",e)},reject:function(e){return n0(this,2,"rejectReason",e)},then:function(e,t){var n=new nJ;return this.onFulfilled.push(n5(e,n,"fulfill")),this.onRejected.push(n5(t,n,"reject")),n1(this),n.proxy}};var n0=function(e,t,n,r){return 0===e.state&&(e.state=t,e[n]=r,n1(e)),e},n1=function(e){1===e.state?n2(e,"onFulfilled",e.fulfillValue):2===e.state&&n2(e,"onRejected",e.rejectReason)},n2=function(e,t,n){if(0!==e[t].length){var r=e[t];e[t]=[];var i=function(){for(var e=0;e-1}}(),i=function(){if(so)return sa;so=1;var e=rn();return sa=function(t,n){var r=this.__data__,i=e(r,t);return i<0?(++this.size,r.push([t,n])):r[i][1]=n,this}}();function a(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t-1&&t%1==0&&t0}},clearQueue:function(){return function(){var e=void 0!==this.length?this:[this];if(!(this._private.cy||this).styleEnabled())return this;for(var t=0;t0&&this.spawn(n).updateStyle().emit("class"),this},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){A(e)||(e=e.match(/\S+/g)||[]);for(var n=void 0===t,r=[],i=0,a=this.length;i0&&this.spawn(r).updateStyle().emit("class"),this},removeClass:function(e){return this.toggleClass(e,!1)},flashClass:function(e,t){var n=this;if(null==t)t=250;else if(0===t)return n;return n.addClass(e),setTimeout(function(){n.removeClass(e)},t),n}};rp.className=rp.classNames=rp.classes;var rg={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:"\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'",number:U,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};for(a2=0,rg.variable="(?:[\\w-.]|(?:\\\\"+rg.metaChar+"))+",rg.className="(?:[\\w-]|(?:\\\\"+rg.metaChar+"))+",rg.value=rg.string+"|"+rg.number,rg.id=rg.variable,a0=rg.comparatorOp.split("|");a2=0||"="!==a1&&(rg.comparatorOp+="|\\!"+a1);var rv=function(){return{checks:[]}},ry={GROUP:0,COLLECTION:1,FILTER:2,DATA_COMPARE:3,DATA_EXIST:4,DATA_BOOL:5,META_COMPARE:6,STATE:7,ID:8,CLASS:9,UNDIRECTED_EDGE:10,DIRECTED_EDGE:11,NODE_SOURCE:12,NODE_TARGET:13,NODE_NEIGHBOR:14,CHILD:15,DESCENDANT:16,PARENT:17,ANCESTOR:18,COMPOUND_SPLIT:19,TRUE:20},rm=[{selector:":selected",matches:function(e){return e.selected()}},{selector:":unselected",matches:function(e){return!e.selected()}},{selector:":selectable",matches:function(e){return e.selectable()}},{selector:":unselectable",matches:function(e){return!e.selectable()}},{selector:":locked",matches:function(e){return e.locked()}},{selector:":unlocked",matches:function(e){return!e.locked()}},{selector:":visible",matches:function(e){return e.visible()}},{selector:":hidden",matches:function(e){return!e.visible()}},{selector:":transparent",matches:function(e){return e.transparent()}},{selector:":grabbed",matches:function(e){return e.grabbed()}},{selector:":free",matches:function(e){return!e.grabbed()}},{selector:":removed",matches:function(e){return e.removed()}},{selector:":inside",matches:function(e){return!e.removed()}},{selector:":grabbable",matches:function(e){return e.grabbable()}},{selector:":ungrabbable",matches:function(e){return!e.grabbable()}},{selector:":animated",matches:function(e){return e.animated()}},{selector:":unanimated",matches:function(e){return!e.animated()}},{selector:":parent",matches:function(e){return e.isParent()}},{selector:":childless",matches:function(e){return e.isChildless()}},{selector:":child",matches:function(e){return e.isChild()}},{selector:":orphan",matches:function(e){return e.isOrphan()}},{selector:":nonorphan",matches:function(e){return e.isChild()}},{selector:":compound",matches:function(e){return e.isNode()?e.isParent():e.source().isParent()||e.target().isParent()}},{selector:":loop",matches:function(e){return e.isLoop()}},{selector:":simple",matches:function(e){return e.isSimple()}},{selector:":active",matches:function(e){return e.active()}},{selector:":inactive",matches:function(e){return!e.active()}},{selector:":backgrounding",matches:function(e){return e.backgrounding()}},{selector:":nonbackgrounding",matches:function(e){return!e.backgrounding()}}].sort(function(e,t){return -1*$(e.selector,t.selector)}),rb=function(){for(var e,t={},n=0;n=0&&(t=t.replace("!",""),c=!0),t.indexOf("@")>=0&&(t=t.replace("@",""),u=!0),(o||l||u)&&(i=o||s?""+e:"",a=""+n),u&&(e=i=i.toLowerCase(),n=a=a.toLowerCase()),t){case"*=":r=i.indexOf(a)>=0;break;case"$=":r=i.indexOf(a,i.length-a.length)>=0;break;case"^=":r=0===i.indexOf(a);break;case"=":r=e===n;break;case">":h=!0,r=e>n;break;case">=":h=!0,r=e>=n;break;case"<":h=!0,r=e0&&l.edgeCount>0)return eO("The selector `"+e+"` is invalid because it uses both a compound selector and an edge selector"),!1;if(l.edgeCount>1)return eO("The selector `"+e+"` is invalid because it uses multiple edge selectors"),!1;1===l.edgeCount&&eO("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(e){return null==e?"":e},t=function(t){return D(t)?'"'+t+'"':e(t)},n=function(e){return" "+e+" "},r=function(r,a){var o=r.type,s=r.value;switch(o){case ry.GROUP:var l=e(s);return l.substring(0,l.length-1);case ry.DATA_COMPARE:return"["+r.field+n(e(r.operator))+t(s)+"]";case ry.DATA_BOOL:var u=r.operator,c=r.field;return"["+e(u)+c+"]";case ry.DATA_EXIST:return"["+r.field+"]";case ry.META_COMPARE:var h=r.operator;return"[["+r.field+n(e(h))+t(s)+"]]";case ry.STATE:return s;case ry.ID:return"#"+s;case ry.CLASS:return"."+s;case ry.PARENT:case ry.CHILD:return i(r.parent,a)+n(">")+i(r.child,a);case ry.ANCESTOR:case ry.DESCENDANT:return i(r.ancestor,a)+" "+i(r.descendant,a);case ry.COMPOUND_SPLIT:var d=i(r.left,a),f=i(r.subject,a),p=i(r.right,a);return d+(d.length>0?" ":"")+f+p;case ry.TRUE:return""}},i=function(e,t){return e.checks.reduce(function(n,i,a){return n+(t===e&&0===a?"$":"")+r(i,t)},"")},a="",o=0;o1&&o0;){var u=i.shift();t(u),a.add(u.id()),o&&r(i,a,u)}return e}function rO(e,t,n){if(n.isParent())for(var r=n._private.children,i=0;i1)||void 0===arguments[1]||arguments[1];return rL(this,e,t,rO)},rN.forEachUp=function(e){var t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return rL(this,e,t,rz)},rN.forEachUpAndDown=function(e){var t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return rL(this,e,t,rF)},rN.ancestors=rN.parents,(s7=le={data:rd.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:rd.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:rd.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:rd.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),rscratch:rd.data({field:"rscratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeRscratch:rd.removeData({field:"rscratch",triggerEvent:!1}),id:function(){var e=this[0];if(e)return e._private.data.id}}).attr=s7.data,s7.removeAttr=s7.removeData;var rV={};function rX(e){return function(t){if(void 0===t&&(t=!0),0!==this.length)if(!this.isNode()||this.removed())return;else{for(var n=0,r=this[0],i=r._private.edges,a=0;at}),minIndegree:rj("indegree",function(e,t){return et}),minOutdegree:rj("outdegree",function(e,t){return et})}),Q(rV,{totalDegree:function(e){for(var t=0,n=this.nodes(),r=0;r0;c&&(u=u[0]);var h=c?u.position():{x:0,y:0};void 0!==t?l.position(e,t+h[e]):void 0!==i&&l.position({x:i.x+h.x,y:i.y+h.y})}else{var d=n.position(),f=o?n.parent():null,p=f&&f.length>0;p&&(f=f[0]);var g=p?f.position():{x:0,y:0};return(i={x:d.x-g.x,y:d.y-g.y},void 0===e)?i:i[e]}else if(!a)return;return this}}).modelPosition=lt.point=lt.position,lt.modelPositions=lt.points=lt.positions,lt.renderedPoint=lt.renderedPosition,lt.relativePoint=lt.relativePosition,lr=li={},li.renderedBoundingBox=function(e){var t=this.boundingBox(e),n=this.cy(),r=n.zoom(),i=n.pan(),a=t.x1*r+i.x,o=t.x2*r+i.x,s=t.y1*r+i.y,l=t.y2*r+i.y;return{x1:a,x2:o,y1:s,y2:l,w:o-a,h:l-s}},li.dirtyCompoundBoundsCache=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();return t.styleEnabled()&&t.hasCompoundNodes()&&this.forEachUp(function(t){if(t.isParent()){var n=t._private;n.compoundBoundsClean=!1,n.bbCache=null,e||t.emitAndNotify("bounds")}}),this},li.updateCompoundBounds=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes()||!e&&t.batching())return this;for(var n=0;n0&&(s=100*s/i.width.val);var l=i.width.right.value;"px"===i.width.right.units&&i.width.val>0&&(l=100*l/i.width.val);var u=i.height.top.value;"px"===i.height.top.units&&i.height.val>0&&(u=100*u/i.height.val);var c=i.height.bottom.value;"px"===i.height.bottom.units&&i.height.val>0&&(c=100*c/i.height.val);var h=y(i.width.val-a.w,s,l),d=h.biasDiff,f=h.biasComplementDiff,p=y(i.height.val-a.h,u,c),g=p.biasDiff,v=p.biasComplementDiff;t.autoPadding=function(e,t,n,r){if("%"===n.units)switch(r){case"width":return e>0?n.pfValue*e:0;case"height":return t>0?n.pfValue*t:0;case"average":return e>0&&t>0?n.pfValue*(e+t)/2:0;case"min":return e>0&&t>0?e>t?n.pfValue*t:n.pfValue*e:0;case"max":return e>0&&t>0?e>t?n.pfValue*e:n.pfValue*t:0;default:return 0}return"px"===n.units?n.pfValue:0}(a.w,a.h,e.pstyle("padding"),e.pstyle("padding-relative-to").value),t.autoWidth=Math.max(a.w,i.width.val),o.x=(-d+a.x1+a.x2+f)/2,t.autoHeight=Math.max(a.h,i.height.val),o.y=(-g+a.y1+a.y2+v)/2}function y(e,t,n){var r=0,i=0,a=t+n;return e>0&&a>0&&(r=t/a*e,i=n/a*e),{biasDiff:r,biasComplementDiff:i}}}(r),t.batching()||(i.compoundBoundsClean=!0))}return this};var rW=function(e){return e===1/0||e===-1/0?0:e},rU=function(e,t,n,r,i){r-t!=0&&i-n!=0&&null!=t&&null!=n&&null!=r&&null!=i&&(e.x1=te.x2?r:e.x2,e.y1=ne.y2?i:e.y2,e.w=e.x2-e.x1,e.h=e.y2-e.y1)},rH=function(e,t){return null==t?e:rU(e,t.x1,t.y1,t.x2,t.y2)},rG=function(e,t,n){return eU(e,t,n)},rK=function(e,t,n){if(!t.cy().headless()){var r,i,a=t._private,o=a.rstyle,s=o.arrowWidth/2;if("none"!==t.pstyle(n+"-arrow-shape").value){"source"===n?(r=o.srcX,i=o.srcY):"target"===n?(r=o.tgtX,i=o.tgtY):(r=o.midX,i=o.midY);var l=a.arrowBounds=a.arrowBounds||{},u=l[n]=l[n]||{};u.x1=r-s,u.y1=i-s,u.x2=r+s,u.y2=i+s,u.w=u.x2-u.x1,u.h=u.y2-u.y1,tE(u,1),rU(e,u.x1,u.y1,u.x2,u.y2)}}},rZ=function(e,t,n){if(!t.cy().headless()){a=n?n+"-":"";var r=t._private,i=r.rstyle;if(t.pstyle(a+"label").strValue){var a,o,s,l,u,c=t.pstyle("text-halign"),h=t.pstyle("text-valign"),d=rG(i,"labelWidth",n),f=rG(i,"labelHeight",n),p=rG(i,"labelX",n),g=rG(i,"labelY",n),v=t.pstyle(a+"text-margin-x").pfValue,y=t.pstyle(a+"text-margin-y").pfValue,b=t.isEdge(),x=t.pstyle(a+"text-rotation"),w=t.pstyle("text-outline-width").pfValue,E=t.pstyle("text-border-width").pfValue/2,T=t.pstyle("text-background-padding").pfValue,k=d/2,C=f/2;if(b)o=p-k,s=p+k,l=g-C,u=g+C;else{switch(c.value){case"left":o=p-d,s=p;break;case"center":o=p-k,s=p+k;break;case"right":o=p,s=p+d}switch(h.value){case"top":l=g-f,u=g;break;case"center":l=g-C,u=g+C;break;case"bottom":l=g,u=g+f}}var P=v-Math.max(w,E)-T-2,S=v+Math.max(w,E)+T+2,D=y-Math.max(w,E)-T-2,B=y+Math.max(w,E)+T+2;o+=P,s+=S,l+=D,u+=B;var A=n||"main",_=r.labelBounds,M=_[A]=_[A]||{};M.x1=o,M.y1=l,M.x2=s,M.y2=u,M.w=s-o,M.h=u-l,M.leftPad=P,M.rightPad=S,M.topPad=D,M.botPad=B;var R=b&&"autorotate"===x.strValue,I=null!=x.pfValue&&0!==x.pfValue;if(R||I){var N=R?rG(r.rstyle,"labelAngle",n):x.pfValue,L=Math.cos(N),O=Math.sin(N),z=(o+s)/2,F=(l+u)/2;if(!b){switch(c.value){case"left":z=s;break;case"right":z=o}switch(h.value){case"top":F=u;break;case"bottom":F=l}}var V=function(e,t){return{x:(e-=z)*L-(t-=F)*O+z,y:e*O+t*L+F}},X=V(o,l),j=V(o,u),Y=V(s,l),q=V(s,u);o=Math.min(X.x,j.x,Y.x,q.x),s=Math.max(X.x,j.x,Y.x,q.x),l=Math.min(X.y,j.y,Y.y,q.y),u=Math.max(X.y,j.y,Y.y,q.y)}var W=A+"Rot",U=_[W]=_[W]||{};U.x1=o,U.y1=l,U.x2=s,U.y2=u,U.w=s-o,U.h=u-l,rU(e,o,l,s,u),rU(r.labelBounds.all,o,l,s,u)}return e}},r$=function(e,t){if(!t.cy().headless()){var n=t.pstyle("outline-opacity").value,r=t.pstyle("outline-width").value;if(n>0&&r>0){var i=t.pstyle("outline-offset").value,a=t.pstyle("shape").value,o=r+i,s=(e.w+2*o)/e.w,l=(e.h+2*o)/e.h,u=0;["diamond","pentagon","round-triangle"].includes(a)?(s=(e.w+2.4*o)/e.w,u=-o/3.6):["concave-hexagon","rhomboid","right-rhomboid"].includes(a)?s=(e.w+2.4*o)/e.w:"star"===a?(s=(e.w+2.8*o)/e.w,l=(e.h+2.6*o)/e.h,u=-o/3.8):"triangle"===a?(s=(e.w+2.8*o)/e.w,l=(e.h+2.4*o)/e.h,u=-o/1.4):"vee"===a&&(s=(e.w+4.4*o)/e.w,l=(e.h+3.8*o)/e.h,u=-(.5*o));var c=e.h*l-e.h,h=e.w*s-e.w;if(tT(e,[Math.ceil(c/2),Math.ceil(h/2)]),0!==u){var d,f=(d=u,{x1:e.x1+0,x2:e.x2+0,y1:e.y1+d,y2:e.y2+d,w:e.w,h:e.h});tx(e,f)}}}},rQ=function(e,t){var n=e._private.cy,r=n.styleEnabled(),i=n.headless(),a=tm(),o=e._private,s=e.isNode(),l=e.isEdge(),u=o.rstyle,c=s&&r?e.pstyle("bounds-expansion").pfValue:[0],h=function(e){return"none"!==e.pstyle("display").value},d=!r||h(e)&&(!l||h(e.source())&&h(e.target()));if(d){var f=0,p=0;r&&t.includeOverlays&&0!==e.pstyle("overlay-opacity").value&&(p=e.pstyle("overlay-padding").value);var g=0,v=0;r&&t.includeUnderlays&&0!==e.pstyle("underlay-opacity").value&&(v=e.pstyle("underlay-padding").value);var y=Math.max(p,v),b=0,x=0;if(r&&(x=e.pstyle("width").pfValue/2),s&&t.includeNodes){var w=e.position();D=w.x,B=w.y;var E=e.outerWidth()/2,T=e.outerHeight()/2;k=D-E,C=D+E,rU(a,k,P=B-T,C,S=B+T),r&&t.includeOutlines&&r$(a,e)}else if(l&&t.includeEdges)if(r&&!i){var k,C,P,S,D,B,A,_=e.pstyle("curve-style").strValue;if(k=Math.min(u.srcX,u.midX,u.tgtX),C=Math.max(u.srcX,u.midX,u.tgtX),P=Math.min(u.srcY,u.midY,u.tgtY),S=Math.max(u.srcY,u.midY,u.tgtY),k-=x,C+=x,rU(a,k,P-=x,C,S+=x),"haystack"===_){var M=u.haystackPts;if(M&&2===M.length){if(k=M[0].x,P=M[0].y,C=M[1].x,S=M[1].y,k>C){var R=k;k=C,C=R}if(P>S){var I=P;P=S,S=I}rU(a,k-x,P-x,C+x,S+x)}}else if("bezier"===_||"unbundled-bezier"===_||_.endsWith("segments")||_.endsWith("taxi")){switch(_){case"bezier":case"unbundled-bezier":A=u.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":A=u.linePts}if(null!=A)for(var N=0;NC){var F=k;k=C,C=F}if(P>S){var V=P;P=S,S=V}k-=x,C+=x,rU(a,k,P-=x,C,S+=x)}if(r&&t.includeEdges&&l&&(rK(a,e,"mid-source"),rK(a,e,"mid-target"),rK(a,e,"source"),rK(a,e,"target")),r&&"yes"===e.pstyle("ghost").value){var X=e.pstyle("ghost-offset-x").pfValue,j=e.pstyle("ghost-offset-y").pfValue;rU(a,a.x1+X,a.y1+j,a.x2+X,a.y2+j)}var Y=o.bodyBounds=o.bodyBounds||{};tk(Y,a),tT(Y,c),tE(Y,1),r&&(k=a.x1,C=a.x2,P=a.y1,S=a.y2,rU(a,k-y,P-y,C+y,S+y));var q=o.overlayBounds=o.overlayBounds||{};tk(q,a),tT(q,c),tE(q,1);var W=o.labelBounds=o.labelBounds||{};null!=W.all?tb(W.all):W.all=tm(),r&&t.includeLabels&&(t.includeMainLabels&&rZ(a,e,null),l&&(t.includeSourceLabels&&rZ(a,e,"source"),t.includeTargetLabels&&rZ(a,e,"target")))}return a.x1=rW(a.x1),a.y1=rW(a.y1),a.x2=rW(a.x2),a.y2=rW(a.y2),a.w=rW(a.x2-a.x1),a.h=rW(a.y2-a.y1),a.w>0&&a.h>0&&d&&(tT(a,c),tE(a,1)),a},rJ=function(e){var t,n=0,r=function(e){return!!e<0&&void 0!==arguments[0]?arguments[0]:il,t=arguments.length>1?arguments[1]:void 0,n=0;n=0;s--)o(s);return this},ic.removeAllListeners=function(){return this.removeListener("*")},ic.emit=ic.trigger=function(e,t,n){var r=this.listeners,i=r.length;return this.emitting++,A(t)||(t=[t]),ip(this,function(e,a){null!=n&&(i=(r=[{event:a.event,type:a.type,namespace:a.namespace,callback:n}]).length);for(var o=0;o1&&!r){var i=this.length-1,a=this[i],o=a._private.data.id;this[i]=void 0,this[e]=a,n.set(o,{ele:a,index:e})}return this.length--,this},unmergeOne:function(e){e=e[0];var t=this._private,n=e._private.data.id,r=t.map.get(n);if(!r)return this;var i=r.index;return this.unmergeAt(i),this},unmerge:function(e){var t=this._private.cy;if(!e)return this;if(e&&D(e)){var n=e;e=t.mutableElements().filter(n)}for(var r=0;r=0;t--)e(this[t])&&this.unmergeAt(t);return this},map:function(e,t){for(var n=[],r=0;rr&&(r=o,n=a)}return{value:r,ele:n}},min:function(e,t){for(var n,r=1/0,i=0;i=0&&i1)||void 0===arguments[1]||arguments[1],n=this[0],r=n.cy();if(r.styleEnabled()&&n){n._private.styleDirty&&(n._private.styleDirty=!1,r.style().apply(n));var i=n._private.style[e];return null!=i?i:t?r.style().getDefaultProperty(e):null}},numericStyle:function(e){var t=this[0];if(t.cy().styleEnabled()&&t){var n=t.pstyle(e);return void 0!==n.pfValue?n.pfValue:n.value}},numericStyleUnits:function(e){var t=this[0];if(t.cy().styleEnabled()&&t)return t.pstyle(e).units},renderedStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=this[0];if(n)return t.style().getRenderedStyle(n,e)},style:function(e,t){var n=this.cy();if(!n.styleEnabled())return this;var r=n.style();if(_(e))r.applyBypass(this,e,!1),this.emitAndNotify("style");else if(D(e))if(void 0===t){var i=this[0];return i?r.getStylePropertyValue(i,e):void 0}else r.applyBypass(this,e,t,!1),this.emitAndNotify("style");else if(void 0===e){var a=this[0];return a?r.getRawStyle(a):void 0}return this},removeStyle:function(e){var t=this.cy();if(!t.styleEnabled())return this;var n=t.style();if(void 0===e)for(var r=0;r0&&t.push(c[0]),t.push(s[0])}return this.spawn(t,!0).filter(e)},"neighborhood"),closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}}),iR.neighbourhood=iR.neighborhood,iR.closedNeighbourhood=iR.closedNeighborhood,iR.openNeighbourhood=iR.openNeighborhood,Q(iR,{source:rI(function(e){var t,n=this[0];return n&&(t=n._private.source||n.cy().collection()),t&&e?t.filter(e):t},"source"),target:rI(function(e){var t,n=this[0];return n&&(t=n._private.target||n.cy().collection()),t&&e?t.filter(e):t},"target"),sources:iO({attr:"source"}),targets:iO({attr:"target"})}),Q(iR,{edgesWith:rI(iz(),"edgesWith"),edgesTo:rI(iz({thisIsSrc:!0}),"edgesTo")}),Q(iR,{connectedEdges:rI(function(e){for(var t=[],n=0;n0);return a},component:function(){var e=this[0];return e.cy().mutableElements().components(e)[0]}}),iR.componentsOf=iR.components;var iV=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(void 0===e)return void eN("A collection must have a reference to the core");var i=new eK,a=!1;if(t){if(t.length>0&&_(t[0])&&!N(t[0])){a=!0;for(var o=[],s=new e$,l=0,u=t.length;l0)||void 0===arguments[0]||arguments[0],t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],n=this.cy(),r=n._private,i=[],a=[],o=0,s=this.length;o0){for(var R,I,N,L=R.length===this.length?this:new iV(n,R),O=0;O0)||void 0===arguments[0]||arguments[0],t=!(arguments.length>1)||void 0===arguments[1]||arguments[1],n=[],r={},i=this._private.cy,a=0,o=this.length;a0&&(e?x.emitAndNotify("remove"):t&&x.emit("remove"));for(var w=0;w1e-4&&Math.abs(v.v)>1e-4;);return p?function(e){return b[e*(b.length-1)|0]}:x}}(),iY=function(e,t,n,r){var i=function(e,t,n,r){var i="undefined"!=typeof Float32Array;if(4!=arguments.length)return!1;for(var a=0;a<4;++a)if("number"!=typeof arguments[a]||isNaN(arguments[a])||!isFinite(arguments[a]))return!1;e=Math.min(e,1),n=Math.min(n,1),e=Math.max(e,0),n=Math.max(n,0);var o=i?new Float32Array(11):Array(11);function s(e,t,n){return(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e}function l(e,t,n){return 3*(1-3*n+3*t)*e*e+2*(3*n-6*t)*e+3*t}var u=!1,c=function(i){return(u||(u=!0,(e!==t||n!==r)&&function(){for(var t=0;t<11;++t)o[t]=s(.1*t,e,n)}()),e===t&&n===r)?i:0===i?0:1===i?1:s(function(t){for(var r=0,i=1;10!==i&&o[i]<=t;++i)r+=.1;var a=r+(t-o[--i])/(o[i+1]-o[i])*.1,u=l(a,e,n);if(u>=.001){for(var c=a,h=0;h<4;++h){var d=l(c,e,n);if(0===d)break;var f=s(c,e,n)-t;c-=f/d}return c}return 0===u?a:function(t,r,i){var a,o,l=0;do(a=s(o=r+(i-r)/2,e,n)-t)>0?i=o:r=o;while(Math.abs(a)>1e-7&&++l<10);return o}(t,r,r+.1)}(i),t,r)};c.getControlPoints=function(){return[{x:e,y:t},{x:n,y:r}]};var h="generateBezier("+[e,t,n,r]+")";return c.toString=function(){return h},c}(e,t,n,r);return function(e,t,n){return e+(t-e)*i(n)}},iq={linear:function(e,t,n){return e+(t-e)*n},ease:iY(.25,.1,.25,1),"ease-in":iY(.42,0,1,1),"ease-out":iY(0,0,.58,1),"ease-in-out":iY(.42,0,.58,1),"ease-in-sine":iY(.47,0,.745,.715),"ease-out-sine":iY(.39,.575,.565,1),"ease-in-out-sine":iY(.445,.05,.55,.95),"ease-in-quad":iY(.55,.085,.68,.53),"ease-out-quad":iY(.25,.46,.45,.94),"ease-in-out-quad":iY(.455,.03,.515,.955),"ease-in-cubic":iY(.55,.055,.675,.19),"ease-out-cubic":iY(.215,.61,.355,1),"ease-in-out-cubic":iY(.645,.045,.355,1),"ease-in-quart":iY(.895,.03,.685,.22),"ease-out-quart":iY(.165,.84,.44,1),"ease-in-out-quart":iY(.77,0,.175,1),"ease-in-quint":iY(.755,.05,.855,.06),"ease-out-quint":iY(.23,1,.32,1),"ease-in-out-quint":iY(.86,0,.07,1),"ease-in-expo":iY(.95,.05,.795,.035),"ease-out-expo":iY(.19,1,.22,1),"ease-in-out-expo":iY(1,0,0,1),"ease-in-circ":iY(.6,.04,.98,.335),"ease-out-circ":iY(.075,.82,.165,1),"ease-in-out-circ":iY(.785,.135,.15,.86),spring:function(e,t,n){if(0===n)return iq.linear;var r=ij(e,t,n);return function(e,t,n){return e+(t-e)*r(n)}},"cubic-bezier":iY};function iW(e,t,n,r,i){if(1===r||t===n)return n;var a=i(t,n,r);return null==e||((e.roundValue||e.color)&&(a=Math.round(a)),void 0!==e.min&&(a=Math.max(a,e.min)),void 0!==e.max&&(a=Math.min(a,e.max))),a}function iU(e,t){return null==e.pfValue&&null==e.value?e:null!=e.pfValue&&(null==t||"%"!==t.type.units)?e.pfValue:e.value}function iH(e,t,n,r,i){var a=null!=i?i.type:null;n<0?n=0:n>1&&(n=1);var o=iU(e,i),s=iU(t,i);if(M(o)&&M(s))return iW(a,o,s,n,r);if(A(o)&&A(s)){for(var l=[],u=0;u=0;t--)(0,e[t])();e.splice(0,e.length)},c=a.length-1;c>=0;c--){var h=a[c],d=h._private;if(d.stopped){a.splice(c,1),d.hooked=!1,d.playing=!1,d.started=!1,u(d.frames);continue}(d.playing||d.applying)&&(d.playing&&d.applying&&(d.applying=!1),d.started||function(e,t,n,r){var i=t._private;i.started=!0,i.startTime=n-i.progress*i.duration}(0,h,e),function(e,t,n,r){var i,a,o,s,l=!r,u=e._private,c=t._private,h=c.easing,d=c.startTime,f=(r?e:e.cy()).style();c.easingImpl||(null==h?c.easingImpl=iq.linear:(i=D(h)?f.parse("transition-timing-function",h).value:h,D(i)?(a=i,o=[]):(a=i[1],o=i.slice(2).map(function(e){return+e})),o.length>0?("spring"===a&&o.push(c.duration),c.easingImpl=iq[a].apply(null,o)):c.easingImpl=iq[a]));var p=c.easingImpl;if(s=0===c.duration?1:(n-d)/c.duration,c.applying&&(s=c.progress),s<0?s=0:s>1&&(s=1),null==c.delay){var g=c.startPosition,v=c.position;if(v&&l&&!e.locked()){var y={};iG(g.x,v.x)&&(y.x=iH(g.x,v.x,s,p)),iG(g.y,v.y)&&(y.y=iH(g.y,v.y,s,p)),e.position(y)}var b=c.startPan,x=c.pan,w=u.pan,E=null!=x&&r;E&&(iG(b.x,x.x)&&(w.x=iH(b.x,x.x,s,p)),iG(b.y,x.y)&&(w.y=iH(b.y,x.y,s,p)),e.emit("pan"));var T=c.startZoom,k=c.zoom,C=null!=k&&r;C&&(iG(T,k)&&(u.zoom=ty(u.minZoom,iH(T,k,s,p),u.maxZoom)),e.emit("zoom")),(E||C)&&e.emit("viewport");var P=c.style;if(P&&P.length>0&&l){for(var S=0;S0?t.notify("draw",n):t.notify("draw")),n.unmerge(r),t.emit("step")}var iZ={animate:rd.animate(),animation:rd.animation(),animated:rd.animated(),clearQueue:rd.clearQueue(),delay:rd.delay(),delayAnimation:rd.delayAnimation(),stop:rd.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 t=e.renderer();t&&t.beforeRender?t.beforeRender(function(t,n){iK(n,e)},t.beforeRenderPriorities.animations):function t(){e._private.animationsRunning&&ey(function(n){iK(n,e),t()})}()}}},i$={qualifierCompare:function(e,t){return null==e||null==t?null==e&&null==t:e.sameText(t)},eventMatches:function(e,t,n){var r=t.qualifier;return null==r||e!==n.target&&N(n.target)&&r.matches(n.target)},addEventFields:function(e,t){t.cy=e,t.target=e},callbackContext:function(e,t,n){return null!=t.qualifier?n.target:e}},iQ=function(e){return D(e)?new r_(e):e},iJ={createEmitter:function(){var e=this._private;return e.emitter||(e.emitter=new iu(i$,this)),this},emitter:function(){return this._private.emitter},on:function(e,t,n){return this.emitter().on(e,iQ(t),n),this},removeListener:function(e,t,n){return this.emitter().removeListener(e,iQ(t),n),this},removeAllListeners:function(){return this.emitter().removeAllListeners(),this},one:function(e,t,n){return this.emitter().one(e,iQ(t),n),this},once:function(e,t,n){return this.emitter().one(e,iQ(t),n),this},emit:function(e,t){return this.emitter().emit(e,t),this},emitAndNotify:function(e,t){return this.emit(e),this.notify(e,t),this}};rd.eventAliasesOn(iJ);var i0={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)}};i0.jpeg=i0.jpg;var i1={layout:function(e){if(null==e)return void eN("Layout options must be specified to make a layout");if(null==e.name)return void eN("A `name` must be specified to make a layout");var t,n=e.name,r=this.extension("layout",n);return null==r?void eN("No such layout `"+n+"` found. Did you forget to import it and `cytoscape.use()` it?"):(t=D(e.eles)?this.$(e.eles):null!=e.eles?e.eles:this.$(),new r(Q({},e,{cy:this,eles:t})))}};i1.createLayout=i1.makeLayout=i1.layout;var i2=ej({hideEdgesOnViewport:!1,textureOnViewport:!1,motionBlur:!1,motionBlurOpacity:.05,pixelRatio:void 0,desktopTapThreshold:4,touchTapThreshold:8,wheelSensitivity:1,debug:!1,showFps:!1,webgl:!1,webglDebug:!1,webglDebugShowAtlases:!1,webglTexSize:2048,webglTexRows:36,webglTexRowsNodes:18,webglBatchSize:2048,webglTexPerBatch:14,webglBgColor:[255,255,255]}),i5={renderTo:function(e,t,n,r){return this._private.renderer.renderTo(e,t,n,r),this},renderer:function(){return this._private.renderer},forceRender:function(){return this.notify("draw"),this},resize:function(){return this.invalidateSize(),this.emitAndNotify("resize"),this},initRenderer:function(e){var t=this.extension("renderer",e.name);if(null==t)return void eN("Can not initialise: No such renderer `".concat(e.name,"` found. Did you forget to import it and `cytoscape.use()` it?"));void 0!==e.wheelSensitivity&&eO("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.");var n=i2(e);n.cy=this,this._private.renderer=new t(n),this.notify("init")},destroyRenderer:function(){this.notify("destroy");var e=this.container();if(e)for(e._cyreg=null;e.childNodes.length>0;)e.removeChild(e.childNodes[0]);this._private.renderer=null,this.mutableElements().forEach(function(e){var t=e._private;t.rscratch={},t.rstyle={},t.animation.current=[],t.animation.queue=[]})},onRender:function(e){return this.on("render",e)},offRender:function(e){return this.off("render",e)}};i5.invalidateDimensions=i5.resize;var i3={collection:function(e,t){return D(e)?this.$(e):I(e)?e.collection():A(e)?(t||(t={}),new iV(this,e,t.unique,t.removed)):new iV(this)},nodes:function(e){var t=this.$(function(e){return e.isNode()});return e?t.filter(e):t},edges:function(e){var t=this.$(function(e){return e.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}};i3.elements=i3.filter=i3.$;var i4={};i4.apply=function(e){for(var t=this._private.cy.collection(),n=0;n0;if(h||c&&d){var f=void 0;h&&d||h?f=l.properties:d&&(f=l.mappedProperties);for(var p=0;p1&&(v=1),o.color){var E=r.valueMin[0],T=r.valueMax[0],k=r.valueMin[1],C=r.valueMax[1],P=r.valueMin[2],S=r.valueMax[2],D=null==r.valueMin[3]?1:r.valueMin[3],B=[Math.round(E+(T-E)*v),Math.round(k+(C-k)*v),Math.round(P+(S-P)*v),Math.round(D+((null==r.valueMax[3]?1:r.valueMax[3])-D)*v)];g={bypass:r.bypass,name:r.name,value:B,strValue:"rgb("+B[0]+", "+B[1]+", "+B[2]+")"}}else{if(!o.number)return!1;var A=r.valueMin+(r.valueMax-r.valueMin)*v;g=this.parse(r.name,A,r.bypass,h)}if(!g)return p(),!1;g.mapping=r,r=g;break;case a.data:for(var _=r.field.split("."),R=c.data,I=0;I<_.length&&R;I++)R=R[_[I]];if(null!=R&&(g=this.parse(r.name,R,r.bypass,h)),!g)return p(),!1;g.mapping=r,r=g;break;case a.fn:var N=r.value,L=null!=r.fnValue?r.fnValue:N(e);if(r.prevFnValue=L,null==L)return eO("Custom function mappers may not return null (i.e. `"+r.name+"` for ele `"+e.id()+"` is null)"),!1;if(!(g=this.parse(r.name,L,r.bypass,h)))return eO("Custom function mappers may not return invalid values for the property type (i.e. `"+r.name+"` for ele `"+e.id()+"` is invalid)"),!1;g.mapping=ez(r),r=g;break;case void 0:break;default:return!1}return s?(u?r.bypassed=l.bypassed:r.bypassed=l,i[r.name]=r):u?l.bypassed=r:i[r.name]=r,f(),!0},i4.cleanElements=function(e,t){for(var n=0;n0&&a>0){for(var s={},l=!1,u=0;u0?e.delayAnimation(o).play().promise().then(t):t()}).then(function(){return e.animation({style:s,duration:a,easing:e.pstyle("transition-timing-function").value,queue:!1}).play().promise()}).then(function(){n.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1})}else r.transitioning&&(this.removeBypasses(e,i),e.emitAndNotify("style"),r.transitioning=!1)},i4.checkTrigger=function(e,t,n,r,i,a){var o=this.properties[t],s=i(o);!e.removed()&&null!=s&&s(n,r,e)&&a(o)},i4.checkZOrderTrigger=function(e,t,n,r){var i=this;this.checkTrigger(e,t,n,r,function(e){return e.triggersZOrder},function(){i._private.cy.notify("zorder",e)})},i4.checkBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,function(e){return e.triggersBounds},function(t){e.dirtyCompoundBoundsCache(),e.dirtyBoundingBoxCache()})},i4.checkConnectedEdgesBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,function(e){return e.triggersBoundsOfConnectedEdges},function(t){e.connectedEdges().forEach(function(e){e.dirtyBoundingBoxCache()})})},i4.checkParallelEdgesBoundsTrigger=function(e,t,n,r){this.checkTrigger(e,t,n,r,function(e){return e.triggersBoundsOfParallelEdges},function(t){e.parallelEdges().forEach(function(e){e.dirtyBoundingBoxCache()})})},i4.checkTriggers=function(e,t,n,r){e.dirtyStyleCache(),this.checkZOrderTrigger(e,t,n,r),this.checkBoundsTrigger(e,t,n,r),this.checkConnectedEdgesBoundsTrigger(e,t,n,r),this.checkParallelEdgesBoundsTrigger(e,t,n,r)};var i9={};i9.applyBypass=function(e,t,n,r){var i=[];if("*"===t||"**"===t){if(void 0!==n)for(var a=0;at.length?i.substr(t.length):""}function o(){n=n.length>r.length?n.substr(r.length):""}for(i=i.replace(/[/][*](\s|.)+?[*][/]/g,"");!i.match(/^\s*$/);){var s=i.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!s){eO("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+i);break}t=s[0];var l=s[1];if("core"!==l&&new r_(l).invalid){eO("Skipping parsing of block: Invalid selector found in string stylesheet: "+l),a();continue}var u=s[2],c=!1;n=u;for(var h=[];!n.match(/^\s*$/);){var d=n.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!d){eO("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+u),c=!0;break}r=d[0];var f=d[1],p=d[2];if(!this.properties[f]){eO("Skipping property: Invalid property name in: "+r),o();continue}if(!this.parse(f,p)){eO("Skipping property: Invalid property definition in: "+r),o();continue}h.push({name:f,val:p}),o()}if(c){a();break}this.selector(l);for(var g=0;g=7&&"d"===t[0]&&(g=new RegExp(o.data.regex).exec(t))){if(n)return!1;var u=o.data;return{name:e,value:g,strValue:""+t,mapped:u,field:g[1],bypass:n}}else if(t.length>=10&&"m"===t[0]&&(v=new RegExp(o.mapData.regex).exec(t))){if(n||l.multiple)return!1;var c=o.mapData;if(!(l.color||l.number))return!1;var h=this.parse(e,v[4]);if(!h||h.mapped)return!1;var d=this.parse(e,v[5]);if(!d||d.mapped)return!1;if(h.pfValue===d.pfValue||h.strValue===d.strValue)return eO("`"+e+": "+t+"` is not a valid mapper because the output range is zero; converting to `"+e+": "+h.strValue+"`"),this.parse(e,h.strValue);if(l.color){var f=h.value,p=d.value;if(f[0]===p[0]&&f[1]===p[1]&&f[2]===p[2]&&(f[3]===p[3]||(null==f[3]||1===f[3])&&(null==p[3]||1===p[3])))return!1}return{name:e,value:v,strValue:""+t,mapped:c,field:v[1],fieldMin:parseFloat(v[2]),fieldMax:parseFloat(v[3]),valueMin:h.value,valueMax:d.value,bypass:n}}if(l.multiple&&"multiple"!==r){if(y=s?t.split(/\s+/):A(t)?t:[t],l.evenMultiple&&y.length%2!=0)return null;for(var g,v,y,b=[],x=[],w=[],E="",T=!1,k=0;k0?" ":"")+C.strValue}if(l.validate&&!l.validate(b,x))return null;if(l.singleEnum&&T)if(1===b.length&&D(b[0]))return{name:e,value:b[0],strValue:b[0],bypass:n};else return null;return{name:e,value:b,pfValue:w,strValue:E,bypass:n,units:x}}var P=function(){for(var r=0;rl.max||l.strictMax&&t===l.max))return null;var L={name:e,value:t,strValue:""+t+(_||""),units:_,bypass:n};return l.unitless||"px"!==_&&"em"!==_?L.pfValue=t:L.pfValue="px"!==_&&_?this.getEmSizeInPixels()*t:t,("ms"===_||"s"===_)&&(L.pfValue="ms"===_?t:1e3*t),("deg"===_||"rad"===_)&&(L.pfValue="rad"===_?t:Math.PI*t/180),"%"===_&&(L.pfValue=t/100),L}if(l.propList){var O=[],z=""+t;if("none"===z);else{for(var F=z.split(/\s*,\s*|\s+/),V=0;V0&&l>0&&!isNaN(r.w)&&!isNaN(r.h)&&r.w>0&&r.h>0){i=(i=(i=Math.min((s-2*t)/r.w,(l-2*t)/r.h))>this._private.maxZoom?this._private.maxZoom:i)=n.minZoom&&(n.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 t,n,r=this._private,i=r.pan,a=r.zoom,o=!1;if(r.zoomingEnabled||(o=!0),M(e)?n=e:_(e)&&(n=e.level,null!=e.position?t=tt(e.position,a,i):null!=e.renderedPosition&&(t=e.renderedPosition),null==t||r.panningEnabled||(o=!0)),n=(n=n>r.maxZoom?r.maxZoom:n)t.maxZoom||!t.zoomingEnabled?a=!0:(t.zoom=s,i.push("zoom"))}if(r&&(!a||!e.cancelOnFailedZoom)&&t.panningEnabled){var l=e.pan;M(l.x)&&(t.pan.x=l.x,o=!1),M(l.y)&&(t.pan.y=l.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(D(e)){var n=e;e=this.mutableElements().filter(n)}else I(e)||(e=this.mutableElements());if(0!==e.length){var r=e.boundingBox(),i=this.width(),a=this.height();return{x:(i-(t=void 0===t?this._private.zoom:t)*(r.x1+r.x2))/2,y:(a-t*(r.y1+r.y2))/2}}}},reset:function(){return this._private.panningEnabled&&this._private.zoomingEnabled&&this.viewport({pan:{x:0,y:0},zoom:1}),this},invalidateSize:function(){this._private.sizeCache=null},size:function(){var e,t,n=this._private,r=n.container;return n.sizeCache=n.sizeCache||(r?(e=this.window().getComputedStyle(r),t=function(t){return parseFloat(e.getPropertyValue(t))},{width:r.clientWidth-t("padding-left")-t("padding-right"),height:r.clientHeight-t("padding-top")-t("padding-bottom")}):{width:1,height:1})},width:function(){return this.size().width},height:function(){return this.size().height},extent:function(){var e=this._private.pan,t=this._private.zoom,n=this.renderedExtent(),r={x1:(n.x1-e.x)/t,x2:(n.x2-e.x)/t,y1:(n.y1-e.y)/t,y2:(n.y2-e.y)/t};return r.w=r.x2-r.x1,r.h=r.y2-r.y1,r},renderedExtent:function(){var e=this.width(),t=this.height();return{x1:0,y1:0,x2:e,y2:t,w:e,h:t}},multiClickDebounceTime:function(e){return e?(this._private.multiClickDebounceTime=e,this):this._private.multiClickDebounceTime}};aa.centre=aa.center,aa.autolockNodes=aa.autolock,aa.autoungrabifyNodes=aa.autoungrabify;var ao={data:rd.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeData:rd.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0}),scratch:rd.data({field:"scratch",bindingEvent:"scratch",allowBinding:!0,allowSetting:!0,settingEvent:"scratch",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0,updateStyle:!0}),removeScratch:rd.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:!0,updateStyle:!0})};ao.attr=ao.data,ao.removeAttr=ao.removeData;var as=function(e){var t=this,n=(e=Q({},e)).container;n&&!R(n)&&R(n[0])&&(n=n[0]);var r=n?n._cyreg:null;(r=r||{}).cy&&(r.cy.destroy(),r={});var i=r.readies=r.readies||[];n&&(n._cyreg=r),r.cy=t;var a=void 0!==w&&void 0!==n&&!e.headless,o=e;o.layout=Q({name:a?"grid":"null"},o.layout),o.renderer=Q({name:a?"canvas":"null"},o.renderer);var s=function(e,t,n){return void 0!==t?t:void 0!==n?n:e},l=this._private={container:n,ready:!1,options:o,elements:new iV(this),listeners:[],aniEles:new iV(this),data:o.data||{},scratch:{},layout:null,renderer:null,destroyed:!1,notificationsEnabled:!0,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:s(!0,o.zoomingEnabled),userZoomingEnabled:s(!0,o.userZoomingEnabled),panningEnabled:s(!0,o.panningEnabled),userPanningEnabled:s(!0,o.userPanningEnabled),boxSelectionEnabled:s(!0,o.boxSelectionEnabled),autolock:s(!1,o.autolock,o.autolockNodes),autoungrabify:s(!1,o.autoungrabify,o.autoungrabifyNodes),autounselectify:s(!1,o.autounselectify),styleEnabled:void 0===o.styleEnabled?a:o.styleEnabled,zoom:M(o.zoom)?o.zoom:1,pan:{x:_(o.pan)&&M(o.pan.x)?o.pan.x:0,y:_(o.pan)&&M(o.pan.y)?o.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:!1,multiClickDebounceTime:s(250,o.multiClickDebounceTime)};this.createEmitter(),this.selectionType(o.selectionType),this.zoomRange({min:o.minZoom,max:o.maxZoom}),l.styleEnabled&&t.setStyle([]);var u=Q({},o,o.renderer);t.initRenderer(u);var c=function(e,n,r){t.notifications(!1);var i=t.mutableElements();i.length>0&&i.remove(),null!=e&&(_(e)||A(e))&&t.add(e),t.one("layoutready",function(e){t.notifications(!0),t.emit(e),t.one("load",n),t.emitAndNotify("load")}).one("layoutstop",function(){t.one("done",r),t.emit("done")});var a=Q({},t._private.options.layout);a.eles=t.elements(),t.layout(a).run()};!function(e,t){if(e.some(V))return n4.all(e).then(t);t(e)}([o.style,o.elements],function(e){var n=e[0],a=e[1];l.styleEnabled&&t.style().append(n),c(a,function(){t.startAnimationLoop(),l.ready=!0,B(o.ready)&&t.on("ready",o.ready);for(var e=0;e0},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(n){var r=e.batchNotifications[n];r.empty()?t.notify(n):t.notify(n,r)})}return this},batch:function(e){return this.startBatch(),e(),this.endBatch(),this},batchData:function(e){var t=this;return this.batch(function(){for(var n=Object.keys(e),r=0;r0,s=!!t.boundingBox,l=n.extent(),u=tm(s?t.boundingBox:{x1:l.x1,y1:l.y1,w:l.w,h:l.h});if(I(t.roots))e=t.roots;else if(A(t.roots)){for(var c=[],h=0;h0;){var B=C.shift(),_=function(e,n){for(var i=ah(e),a=e.incomers().filter(function(e){return e.isNode()&&r.has(e)}),o=-1,s=e.id(),l=0;l0&&v[0].length<=3?a/2:0),l=2*Math.PI/v[r].length*i;return 0===r&&1===v[0].length&&(o=1),{x:G.x+o*Math.cos(l),y:G.y+o*Math.sin(l)}}var c=v[r].length,h=Math.max(1===c?0:s?(u.w-2*t.padding-K.w)/((t.grid?Q:c)-1):(u.w-2*t.padding-K.w)/((t.grid?Q:c)+1),M);return{x:G.x+(i+1-(c+1)/2)*h,y:G.y+(r+1-(X+1)/2)*Z}}),this};var ap={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 ag(e){this.options=Q({},ap,e)}ag.prototype.run=function(){var e,t=this.options,n=t.cy,r=t.eles,i=void 0!==t.counterclockwise?!t.counterclockwise:t.clockwise,a=r.nodes().not(":parent");t.sort&&(a=a.sort(t.sort));for(var o=tm(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),s={x:o.x1+o.w/2,y:o.y1+o.h/2},l=(void 0===t.sweep?2*Math.PI-2*Math.PI/a.length:t.sweep)/Math.max(1,a.length-1),u=0,c=0;c1&&t.avoidOverlap){var d=Math.cos(l)-1,f=Math.sin(l)-0;e=Math.max(Math.sqrt((u*=1.75)*u/(d*d+f*f)),e)}return r.nodes().layoutPositions(this,t,function(n,r){var a=t.startAngle+r*l*(i?1:-1),o=e*Math.cos(a),u=e*Math.sin(a);return{x:s.x+o,y:s.y+u}}),this};var av={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 ay(e){this.options=Q({},av,e)}ay.prototype.run=function(){for(var e=this.options,t=void 0!==e.counterclockwise?!e.counterclockwise:e.clockwise,n=e.cy,r=e.eles,i=r.nodes().not(":parent"),a=tm(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:n.width(),h:n.height()}),o={x:a.x1+a.w/2,y:a.y1+a.h/2},s=[],l=0,u=0;u0&&Math.abs(v[0].value-b.value)>=p&&(v=[],g.push(v)),v.push(b)}var x=l+e.minNodeSpacing;if(!e.avoidOverlap){var w=g.length>0&&g[0].length>1,E=(Math.min(a.w,a.h)/2-x)/(g.length+w?1:0);x=Math.min(x,E)}for(var T=0,k=0;k1&&e.avoidOverlap){var D=Math.cos(S)-1,B=Math.sin(S)-0;T=Math.max(Math.sqrt(x*x/(D*D+B*B)),T)}C.r=T,T+=x}if(e.equidistant){for(var A=0,_=0,M=0;M=e.numIter)&&(aP(r,e),r.temperature=r.temperature*e.coolingFactor,!(r.temperature=e.animationThreshold&&a(),ey(c)):(az(r,e),s())};c()}else{for(;u;)u=o(l),l++;az(r,e),s()}return this},ab.prototype.stop=function(){return this.stopped=!0,this.thread&&this.thread.stop(),this.emit("layoutstop"),this},ab.prototype.destroy=function(){return this.thread&&this.thread.stop(),this};var ax=function(e,t,n){for(var r=n.eles.edges(),i=n.eles.nodes(),a=tm(n.boundingBox?n.boundingBox:{x1:0,y1:0,w:e.width(),h:e.height()}),o={isCompound:e.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:r.size(),temperature:n.initialTemp,clientWidth:a.w,clientHeight:a.h,boundingBox:a},s=n.eles.components(),l={},u=0;u0){o.graphSet.push(k);for(var u=0;ur.count?0:r.graph},aE=function(e,t,n,r){var i=r.graphSet[n];if(-10)var s=r.nodeOverlap*o,l=Math.sqrt(i*i+a*a),u=s*i/l,c=s*a/l;else var h=a_(e,i,a),d=a_(t,-1*i,-1*a),f=d.x-h.x,p=d.y-h.y,g=f*f+p*p,l=Math.sqrt(g),s=(e.nodeRepulsion+t.nodeRepulsion)/g,u=s*f/l,c=s*p/l;e.isLocked||(e.offsetX-=u,e.offsetY-=c),t.isLocked||(t.offsetX+=u,t.offsetY+=c)}},aA=function(e,t,n,r){if(n>0)var i=e.maxX-t.minX;else var i=t.maxX-e.minX;if(r>0)var a=e.maxY-t.minY;else var a=t.maxY-e.minY;return i>=0&&a>=0?Math.sqrt(i*i+a*a):0},a_=function(e,t,n){var r=e.positionX,i=e.positionY,a=e.height||1,o=e.width||1,s=n/t,l=a/o,u={};return 0===t&&0n?(u.x=r,u.y=i+a/2):0t&&-1*l<=s&&s<=l?(u.x=r-o/2,u.y=i-o*n/2/t):0=l)?(u.x=r+a*t/2/n,u.y=i+a/2):0>n&&(s<=-1*l||s>=l)&&(u.x=r-a*t/2/n,u.y=i-a/2),u},aM=function(e,t){for(var n=0;n1){var p=t.gravity*h/f,g=t.gravity*d/f;c.offsetX+=p,c.offsetY+=g}}}}},aI=function(e,t){var n=[],r=0,i=-1;for(n.push.apply(n,e.graphSet[0]),i+=e.graphSet[0].length;r<=i;){var a=n[r++],o=e.idToIndex[a],s=e.layoutNodes[o],l=s.children;if(0n)var i={x:n*e/r,y:n*t/r};else var i={x:e,y:t};return i},aO=function(e,t){var n=e.parentId;if(null!=n){var r=t.layoutNodes[t.idToIndex[n]],i=!1;if((null==r.maxX||e.maxX+r.padRight>r.maxX)&&(r.maxX=e.maxX+r.padRight,i=!0),(null==r.minX||e.minX-r.padLeftr.maxY)&&(r.maxY=e.maxY+r.padBottom,i=!0),(null==r.minY||e.minY-r.padTopg&&(d+=p+t.componentSpacing,h=0,f=0,p=0)}}},aF={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 aV(e){this.options=Q({},aF,e)}aV.prototype.run=function(){var e=this.options,t=e.cy,n=e.eles,r=n.nodes().not(":parent");e.sort&&(r=r.sort(e.sort));var i=tm(e.boundingBox?e.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()});if(0===i.h||0===i.w)n.nodes().layoutPositions(this,e,function(e){return{x:i.x1,y:i.y1}});else{var a=r.size(),o=Math.sqrt(a*i.h/i.w),s=Math.round(o),l=Math.round(i.w/i.h*o),u=function(e){if(null==e)return Math.min(s,l);Math.min(s,l)==s?s=e:l=e},c=function(e){if(null==e)return Math.max(s,l);Math.max(s,l)==s?s=e:l=e},h=e.rows,d=null!=e.cols?e.cols:e.columns;if(null!=h&&null!=d)s=h,l=d;else if(null!=h&&null==d)l=Math.ceil(a/(s=h));else if(null==h&&null!=d)s=Math.ceil(a/(l=d));else if(l*s>a){var f=u(),p=c();(f-1)*p>=a?u(f-1):(p-1)*f>=a&&c(p-1)}else for(;l*s=a?c(v+1):u(g+1)}var y=i.w/l,b=i.h/s;if(e.condense&&(y=0,b=0),e.avoidOverlap)for(var x=0;x=l&&(_=0,A++)},R={},I=0;I=0;x--){var w=l[x];w.isNode()?y(w)||b(w):function(n){var r,i=n._private,a=i.rscratch,l=n.pstyle("width").pfValue,c=n.pstyle("arrow-scale").value,f=l/2+d,p=f*f,g=2*f,b=i.source,x=i.target;if("segments"===a.edgeType||"straight"===a.edgeType||"haystack"===a.edgeType){for(var w=a.allpts,E=0;E+3(r=tI(e,t,w[E],w[E+1],w[E+2],w[E+3])))return v(n,r),!0}else if("bezier"===a.edgeType||"multibezier"===a.edgeType||"self"===a.edgeType||"compound"===a.edgeType){for(var w=a.allpts,E=0;E+5(r=tR(e,t,w[E],w[E+1],w[E+2],w[E+3],w[E+4],w[E+5])))return v(n,r),!0}for(var b=b||i.source,x=x||i.target,T=o.getArrowWidth(l,c),k=[{name:"source",x:a.arrowStartX,y:a.arrowStartY,angle:a.srcArrowAngle},{name:"target",x:a.arrowEndX,y:a.arrowEndY,angle:a.tgtArrowAngle},{name:"mid-source",x:a.midX,y:a.midY,angle:a.midsrcArrowAngle},{name:"mid-target",x:a.midX,y:a.midY,angle:a.midtgtArrowAngle}],E=0;E0&&(y(b),y(x))}(w)||b(w)||b(w,"source")||b(w,"target")}return u},aQ.getAllInBox=function(e,t,n,r){var i=this.getCachedZSortedEles().interactive,a=[],o=Math.min(e,n),s=Math.max(e,n),l=Math.min(t,r),u=Math.max(t,r);e=o,n=s;for(var c=tm({x1:e,y1:t=l,x2:n,y2:r=u}),h=0;h0?-(Math.PI-e.ang):Math.PI+e.ang},lC=function(e,t,n,r,i){if(e!==y?lT(t,e,lw):lk(lE,lw),lT(t,n,lE),lh=lw.nx*lE.ny-lw.ny*lE.nx,ld=lw.nx*lE.nx- -(lw.ny*lE.ny),1e-6>Math.abs(lg=Math.asin(Math.max(-1,Math.min(1,lh))))){lu=t.x,lc=t.y,ly=lb=0;return}lf=1,lp=!1,ld<0?lg<0?lg=Math.PI+lg:(lg=Math.PI-lg,lf=-1,lp=!0):lg>0&&(lf=-1,lp=!0),lb=void 0!==t.radius?t.radius:r,lv=lg/2,lx=Math.min(lw.len/2,lE.len/2),ly=i?(lm=Math.abs(Math.cos(lv)*lb/Math.sin(lv)))>lx?Math.abs((lm=lx)*Math.sin(lv)/Math.cos(lv)):lb:Math.abs((lm=Math.min(lx,lb))*Math.sin(lv)/Math.cos(lv)),g=t.x+lE.nx*lm,v=t.y+lE.ny*lm,lu=g-lE.ny*ly*lf,lc=v+lE.nx*ly*lf,f=t.x+lw.nx*lm,p=t.y+lw.ny*lm,y=t};function lP(e,t){0===t.radius?e.lineTo(t.cx,t.cy):e.arc(t.cx,t.cy,t.radius,t.startAngle,t.endAngle,t.counterClockwise)}function lS(e,t,n,r){var i=!(arguments.length>4)||void 0===arguments[4]||arguments[4];return 0===r||0===t.radius?{cx:t.x,cy:t.y,radius:0,startX:t.x,startY:t.y,stopX:t.x,stopY:t.y,startAngle:void 0,endAngle:void 0,counterClockwise:void 0}:(lC(e,t,n,r,i),{cx:lu,cy:lc,radius:ly,startX:f,startY:p,stopX:g,stopY:v,startAngle:lw.ang+Math.PI/2*lf,endAngle:lE.ang-Math.PI/2*lf,counterClockwise:lp})}var lD=Math.sqrt(.02),lB={};function lA(e){var t=[];if(null!=e){for(var n=0;n0?Math.max(e-t,0):Math.min(e+t,0)},P=C(T,g?(h+f)/2:0),S=C(k,g?(d+p)/2:0),D=!1;"auto"===y?v=Math.abs(P)>Math.abs(S)?a:i:y===u||y===l?(v=i,D=!0):(y===o||y===s)&&(v=a,D=!0);var B=v===i,A=B?S:P,_=B?k:T,M=tc(_),R=!1;!(D&&(x||w<0))&&(y===l&&_<0||y===u&&_>0||y===o&&_>0||y===s&&_<0)&&(M*=-1,A=M*Math.abs(A),R=!0);var I=function(e){return Math.abs(e)=Math.abs(A)},N=I(n=x?(w<0?1+w:w)*A:(w<0?A:0)+w*M),L=I(Math.abs(A)-Math.abs(n));if((N||L)&&!R)if(B){var O=Math.abs(T)<=f/2;if(Math.abs(_)<=d/2){var z=(c.x1+c.x2)/2;r.segpts=[z,c.y1,z,c.y2]}else if(O){var F=(c.y1+c.y2)/2;r.segpts=[c.x1,F,c.x2,F]}else r.segpts=[c.x1,c.y2]}else{var V=Math.abs(k)<=p/2;if(Math.abs(_)<=h/2){var X=(c.y1+c.y2)/2;r.segpts=[c.x1,X,c.x2,X]}else if(V){var j=(c.x1+c.x2)/2;r.segpts=[j,c.y1,j,c.y2]}else r.segpts=[c.x2,c.y1]}else if(B){var Y=c.y1+n+(g?d/2*M:0);r.segpts=[c.x1,Y,c.x2,Y]}else{var q=c.x1+n+(g?h/2*M:0);r.segpts=[q,c.y1,q,c.y2]}if(r.isRound){var W=e.pstyle("taxi-radius").value,U="arc-radius"===e.pstyle("radius-type").value[0];r.radii=Array(r.segpts.length/2).fill(W),r.isArcRadius=Array(r.segpts.length/2).fill(U)}},lB.tryToCorrectInvalidPoints=function(e,t){var n=e._private.rscratch;if("bezier"===n.edgeType){var r=t.srcPos,i=t.tgtPos,a=t.srcW,o=t.srcH,s=t.tgtW,l=t.tgtH,u=t.srcShape,c=t.tgtShape,h=t.srcCornerRadius,d=t.tgtCornerRadius,f=t.srcRs,p=t.tgtRs,g=!M(n.startX)||!M(n.startY),v=!M(n.arrowStartX)||!M(n.arrowStartY),y=!M(n.endX)||!M(n.endY),b=!M(n.arrowEndX)||!M(n.arrowEndY),x=3*(this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth),w=th({x:n.ctrlpts[0],y:n.ctrlpts[1]},{x:n.startX,y:n.startY}),E=wf.poolIndex()){var p=d;d=f,f=p}var g=u.srcPos=d.position(),v=u.tgtPos=f.position(),y=u.srcW=d.outerWidth(),b=u.srcH=d.outerHeight(),x=u.tgtW=f.outerWidth(),E=u.tgtH=f.outerHeight(),T=u.srcShape=n.nodeShapes[t.getNodeShape(d)],k=u.tgtShape=n.nodeShapes[t.getNodeShape(f)],C=u.srcCornerRadius="auto"===d.pstyle("corner-radius").value?"auto":d.pstyle("corner-radius").pfValue,P=u.tgtCornerRadius="auto"===f.pstyle("corner-radius").value?"auto":f.pstyle("corner-radius").pfValue,S=u.tgtRs=f._private.rscratch,D=u.srcRs=d._private.rscratch;u.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var B=0;B=lD||(q=Math.sqrt(Math.max(Y*Y,.01)+Math.max(j*j,.01)));var W=u.vector={x:Y,y:j},U=u.vectorNorm={x:W.x/q,y:W.y/q},H={x:-U.y,y:U.x};u.nodesOverlap=!M(q)||k.checkPoint(L[0],L[1],0,x,E,v.x,v.y,P,S)||T.checkPoint(z[0],z[1],0,y,b,g.x,g.y,C,D),u.vectorNormInverse=H,e={nodesOverlap:u.nodesOverlap,dirCounts:u.dirCounts,calculatedIntersection:!0,hasBezier:u.hasBezier,hasUnbundled:u.hasUnbundled,eles:u.eles,srcPos:v,srcRs:S,tgtPos:g,tgtRs:D,srcW:x,srcH:E,tgtW:y,tgtH:b,srcIntn:F,tgtIntn:O,srcShape:k,tgtShape:T,posPts:{x1:X.x2,y1:X.y2,x2:X.x1,y2:X.y1},intersectionPts:{x1:V.x2,y1:V.y2,x2:V.x1,y2:V.y1},vector:{x:-W.x,y:-W.y},vectorNorm:{x:-U.x,y:-U.y},vectorNormInverse:{x:-H.x,y:-H.y}}}var G=N?e:u;_.nodesOverlap=G.nodesOverlap,_.srcIntn=G.srcIntn,_.tgtIntn=G.tgtIntn,_.isRound=R.startsWith("round"),r&&(d.isParent()||d.isChild()||f.isParent()||f.isChild())&&(d.parents().anySame(f)||f.parents().anySame(d)||d.same(f)&&d.isParent())?t.findCompoundLoopPoints(A,G,B,I):d===f?t.findLoopPoints(A,G,B,I):R.endsWith("segments")?t.findSegmentsPoints(A,G):R.endsWith("taxi")?t.findTaxiPoints(A,G):"straight"!==R&&(I||u.eles.length%2!=1||B!==Math.floor(u.eles.length/2))?t.findBezierPoints(A,G,B,I,N):t.findStraightEdgePoints(A),t.findEndpoints(A),t.tryToCorrectInvalidPoints(A,G),t.checkForInvalidEdgeWarning(A),t.storeAllpts(A),t.storeEdgeProjections(A),t.calculateArrowAngles(A),t.recalculateEdgeLabelProjections(A),t.calculateLabelAngles(A)}}();this.findHaystackPoints(s)}},lB.getSegmentPoints=function(e){var t=e[0]._private.rscratch;if(this.recalculateRenderedStyle(e),"segments"===t.edgeType)return lA(t.segpts)},lB.getControlPoints=function(e){var t=e[0]._private.rscratch;this.recalculateRenderedStyle(e);var n=t.edgeType;if("bezier"===n||"multibezier"===n||"self"===n||"compound"===n)return lA(t.ctrlpts)},lB.getEdgeMidpoint=function(e){var t=e[0]._private.rscratch;return this.recalculateRenderedStyle(e),{x:t.midX,y:t.midY}};var l_={};l_.manualEndptToPx=function(e,t){var n=e.position(),r=e.outerWidth(),i=e.outerHeight(),a=e._private.rscratch;if(2===t.value.length){var o=[t.pfValue[0],t.pfValue[1]];return"%"===t.units[0]&&(o[0]=o[0]*r),"%"===t.units[1]&&(o[1]=o[1]*i),o[0]+=n.x,o[1]+=n.y,o}var s=t.pfValue[0];s=-Math.PI/2+s;var l=2*Math.max(r,i),u=[n.x+Math.cos(s)*l,n.y+Math.sin(s)*l];return this.nodeShapes[this.getNodeShape(e)].intersectLine(n.x,n.y,r,i,u[0],u[1],0,"auto"===e.pstyle("corner-radius").value?"auto":e.pstyle("corner-radius").pfValue,a)},l_.findEndpoints=function(e){var t,n,r,i,a,o=e.source()[0],s=e.target()[0],l=o.position(),u=s.position(),c=e.pstyle("target-arrow-shape").value,h=e.pstyle("source-arrow-shape").value,d=e.pstyle("target-distance-from-node").pfValue,f=e.pstyle("source-distance-from-node").pfValue,p=o._private.rscratch,g=s._private.rscratch,v=e.pstyle("curve-style").value,y=e._private.rscratch,b=y.edgeType,x="self"===b||"compound"===b,w="bezier"===b||"multibezier"===b||x,E="bezier"!==b,T="straight"===b||"segments"===b,k="segments"===b,C=x||"taxi"===v,P=e.pstyle("source-endpoint"),S=C?"outside-to-node":P.value,D="auto"===o.pstyle("corner-radius").value?"auto":o.pstyle("corner-radius").pfValue,B=e.pstyle("target-endpoint"),A=C?"outside-to-node":B.value,_="auto"===s.pstyle("corner-radius").value?"auto":s.pstyle("corner-radius").pfValue;if(y.srcManEndpt=P,y.tgtManEndpt=B,w){var R=[y.ctrlpts[0],y.ctrlpts[1]];n=E?[y.ctrlpts[y.ctrlpts.length-2],y.ctrlpts[y.ctrlpts.length-1]]:R,r=R}else if(T){var I=k?y.segpts.slice(0,2):[u.x,u.y];n=k?y.segpts.slice(y.segpts.length-2):[l.x,l.y],r=I}if("inside-to-node"===A)t=[u.x,u.y];else if(B.units)t=this.manualEndptToPx(s,B);else if("outside-to-line"===A)t=y.tgtIntn;else if("outside-to-node"===A||"outside-to-node-or-label"===A?i=n:("outside-to-line"===A||"outside-to-line-or-label"===A)&&(i=[l.x,l.y]),t=this.nodeShapes[this.getNodeShape(s)].intersectLine(u.x,u.y,s.outerWidth(),s.outerHeight(),i[0],i[1],0,_,g),"outside-to-node-or-label"===A||"outside-to-line-or-label"===A){var N=s._private.rscratch,L=N.labelWidth,O=N.labelHeight,z=N.labelX,F=N.labelY,V=L/2,X=O/2,j=s.pstyle("text-valign").value;"top"===j?F-=X:"bottom"===j&&(F+=X);var Y=s.pstyle("text-halign").value;"left"===Y?z-=V:"right"===Y&&(z+=V);var q=tW(i[0],i[1],[z-V,F-X,z+V,F-X,z+V,F+X,z-V,F+X],u.x,u.y);if(q.length>0){var W=td(l,tr(t)),U=td(l,tr(q)),H=W;U2&&td(l,{x:q[2],y:q[3]})0){var eo=td(u,tr(t)),es=td(u,tr(ea)),el=eo;es2&&td(u,{x:ea[2],y:ea[3]})=l||b){c={cp:g,segment:y};break}}if(c)break}var x=c.cp,w=c.segment,E=(l-d)/w.length,T=w.t1-w.t0,k=i?w.t0+T*E:w.t1-T*E;k=ty(0,k,1),t=tg(x.p0,x.p1,x.p2,k),u=lL(x.p0,x.p1,x.p2,k);break;case"straight":case"segments":case"haystack":for(var C,P,S,D,B=0,A=r.allpts.length,_=0;_+3=l));_+=2);var M=(l-D)/S;t=tv(C,P,M=ty(0,M,1)),u=lN(C,P)}o("labelX",n,t.x),o("labelY",n,t.y),o("labelAutoAngle",n,u)}};l("source"),l("target"),this.applyLabelDimensions(e)}},lR.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e),e.isEdge()&&(this.applyPrefixedLabelDimensions(e,"source"),this.applyPrefixedLabelDimensions(e,"target"))},lR.applyPrefixedLabelDimensions=function(e,t){var n=e._private,r=this.getLabelText(e,t),i=ek(r,e._private.labelDimsKey);if(eU(n.rscratch,"prefixedLabelDimsKey",t)!==i){eH(n.rscratch,"prefixedLabelDimsKey",t,i);var a=this.calculateLabelDimensions(e,r),o=e.pstyle("line-height").pfValue,s=e.pstyle("text-wrap").strValue,l=eU(n.rscratch,"labelWrapCachedLines",t)||[],u="wrap"!==s?1:Math.max(l.length,1),c=a.height/u,h=a.width,d=a.height+(u-1)*(o-1)*c;eH(n.rstyle,"labelWidth",t,h),eH(n.rscratch,"labelWidth",t,h),eH(n.rstyle,"labelHeight",t,d),eH(n.rscratch,"labelHeight",t,d),eH(n.rscratch,"labelLineHeight",t,c*o)}},lR.getLabelText=function(e,t){var n=e._private,r=t?t+"-":"",i=e.pstyle(r+"label").strValue,a=e.pstyle("text-transform").value,s=function(e,r){return r?(eH(n.rscratch,e,t,r),r):eU(n.rscratch,e,t)};if(!i)return"";"none"==a||("uppercase"==a?i=i.toUpperCase():"lowercase"==a&&(i=i.toLowerCase()));var l=e.pstyle("text-wrap").value;if("wrap"===l){var u=s("labelKey");if(null!=u&&s("labelWrapKey")===u)return s("labelWrapCachedText");for(var c=i.split("\n"),h=e.pstyle("text-max-width").pfValue,d="anywhere"===e.pstyle("text-overflow-wrap").value,f=[],p=/[\s\u200b]+|$/g,g=0;gh){var b,x=v.matchAll(p),w="",E=0,T=o(x);try{for(T.s();!(b=T.n()).done;){var k=b.value,C=k[0],P=v.substring(E,k.index);E=k.index+C.length;var S=0===w.length?P:w+P+C;this.calculateLabelDimensions(e,S).width<=h?w+=P+C:(w&&f.push(w),w=P+C)}}catch(e){T.e(e)}finally{T.f()}w.match(/^[\s\u200b]+$/)||f.push(w)}else f.push(v)}s("labelWrapCachedLines",f),i=s("labelWrapCachedText",f.join("\n")),s("labelWrapKey",u)}else if("ellipsis"===l){var D=e.pstyle("text-max-width").pfValue,B="",A=!1;if(this.calculateLabelDimensions(e,i).widthD);_++)B+=i[_],_===i.length-1&&(A=!0);return A||(B+="\u2026"),B}return i},lR.getLabelJustification=function(e){var t=e.pstyle("text-justification").strValue,n=e.pstyle("text-halign").strValue;if("auto"!==t)return t;if(!e.isNode())return"center";switch(n){case"left":return"right";case"right":return"left";default:return"center"}},lR.calculateLabelDimensions=function(e,t){var n=this.cy.window().document,r=e.pstyle("font-style").strValue,i=e.pstyle("font-size").pfValue,a=e.pstyle("font-family").strValue,o=e.pstyle("font-weight").strValue,s=this.labelCalcCanvas,l=this.labelCalcCanvasContext;if(!s){s=this.labelCalcCanvas=n.createElement("canvas"),l=this.labelCalcCanvasContext=s.getContext("2d");var u=s.style;u.position="absolute",u.left="-9999px",u.top="-9999px",u.zIndex="-1",u.visibility="hidden",u.pointerEvents="none"}l.font="".concat(r," ").concat(o," ").concat(i,"px ").concat(a);for(var c=0,h=0,d=t.split("\n"),f=0;fe.width()||28>e.height()))return lz||(eO("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead"),lz=!0),"rectangle";if(e.isParent())if("rectangle"===t||"roundrectangle"===t||"round-rectangle"===t||"cutrectangle"===t||"cut-rectangle"===t||"barrel"===t)return t;else return"rectangle";if("polygon"===t){var n=e.pstyle("shape-polygon-points").value;return this.nodeShapes.makePolygon(n).name}return t};var lF={};lF.registerCalculationListeners=function(){var e=this.cy,t=e.collection(),n=this,r=function(e){var n=!(arguments.length>1)||void 0===arguments[1]||arguments[1];if(t.merge(e),n)for(var r=0;r=C.desktopTapThreshold2}var b=B(e);t&&(C.hoverData.tapholdCancelled=!0),r=!0,D(h,["mousemove","vmousemove","tapdrag"],e,{x:s[0],y:s[1]});var x=function(){C.data.bgActivePosistion=void 0,C.hoverData.selecting||i.emit({originalEvent:e,type:"boxstart",position:{x:s[0],y:s[1]}}),c[4]=1,C.hoverData.selecting=!0,C.redrawHint("select",!0),C.redraw()};if(3===C.hoverData.which){if(t){var w={originalEvent:e,type:"cxtdrag",position:{x:s[0],y:s[1]}};f?f.emit(w):i.emit(w),C.hoverData.cxtDragged=!0,(!C.hoverData.cxtOver||h!==C.hoverData.cxtOver)&&(C.hoverData.cxtOver&&C.hoverData.cxtOver.emit({originalEvent:e,type:"cxtdragout",position:{x:s[0],y:s[1]}}),C.hoverData.cxtOver=h,h&&h.emit({originalEvent:e,type:"cxtdragover",position:{x:s[0],y:s[1]}}))}}else if(C.hoverData.dragging){if(r=!0,i.panningEnabled()&&i.userPanningEnabled()){if(C.hoverData.justStartedPan){var E=C.hoverData.mdownPos;n={x:(s[0]-E[0])*a,y:(s[1]-E[1])*a},C.hoverData.justStartedPan=!1}else n={x:p[0]*a,y:p[1]*a};i.panBy(n),i.emit("dragpan"),C.hoverData.dragged=!0}s=C.projectIntoViewport(e.clientX,e.clientY)}else if(1==c[4]&&(null==f||f.pannable()))t&&(!C.hoverData.dragging&&i.boxSelectionEnabled()&&(b||!i.panningEnabled()||!i.userPanningEnabled())?x():!C.hoverData.selecting&&i.panningEnabled()&&i.userPanningEnabled()&&A(f,C.hoverData.downs)&&(C.hoverData.dragging=!0,C.hoverData.justStartedPan=!0,c[4]=0,C.data.bgActivePosistion=tr(l),C.redrawHint("select",!0),C.redraw()),f&&f.pannable()&&f.active()&&f.unactivate());else{if(f&&f.pannable()&&f.active()&&f.unactivate(),f&&f.grabbed()||h==d||(d&&D(d,["mouseout","tapdragout"],e,{x:s[0],y:s[1]}),h&&D(h,["mouseover","tapdragover"],e,{x:s[0],y:s[1]}),C.hoverData.last=h),f)if(t){if(i.boxSelectionEnabled()&&b)f&&f.grabbed()&&(X(g),f.emit("freeon"),g.emit("free"),C.dragData.didDrag&&(f.emit("dragfreeon"),g.emit("dragfree"))),x();else if(f&&f.grabbed()&&C.nodeIsDraggable(f)){var T,k=!C.dragData.didDrag;k&&C.redrawHint("eles",!0),C.dragData.didDrag=!0,C.hoverData.draggingEles||V(g,{inDragLayer:!0});var P={x:0,y:0};if(M(p[0])&&M(p[1])&&(P.x+=p[0],P.y+=p[1],k)){var S=C.hoverData.dragDelta;S&&M(S[0])&&M(S[1])&&(P.x+=S[0],P.y+=S[1])}C.hoverData.draggingEles=!0,g.silentShift(P).emit("position drag"),C.redrawHint("drag",!0),C.redraw()}}else 0===(T=C.hoverData.dragDelta=C.hoverData.dragDelta||[]).length?(T.push(p[0]),T.push(p[1])):(T[0]+=p[0],T[1]+=p[1]);r=!0}if(c[2]=s[0],c[3]=s[1],r)return e.stopPropagation&&e.stopPropagation(),e.preventDefault&&e.preventDefault(),!1}},!1),C.registerBinding(P,"mouseup",function(e){if((1!==C.hoverData.which||1===e.which||!C.hoverData.capture)&&C.hoverData.capture){C.hoverData.capture=!1;var i=C.cy,a=C.projectIntoViewport(e.clientX,e.clientY),o=C.selection,s=C.findNearestElement(a[0],a[1],!0,!1),l=C.dragData.possibleDragElements,u=C.hoverData.down,c=B(e);if(C.data.bgActivePosistion&&(C.redrawHint("select",!0),C.redraw()),C.hoverData.tapholdCancelled=!0,C.data.bgActivePosistion=void 0,u&&u.unactivate(),3===C.hoverData.which){var h={originalEvent:e,type:"cxttapend",position:{x:a[0],y:a[1]}};if(u?u.emit(h):i.emit(h),!C.hoverData.cxtDragged){var d={originalEvent:e,type:"cxttap",position:{x:a[0],y:a[1]}};u?u.emit(d):i.emit(d)}C.hoverData.cxtDragged=!1,C.hoverData.which=null}else if(1===C.hoverData.which){if(D(s,["mouseup","tapend","vmouseup"],e,{x:a[0],y:a[1]}),C.dragData.didDrag||C.hoverData.dragged||C.hoverData.selecting||C.hoverData.isOverThresholdDrag||(D(u,["click","tap","vclick"],e,{x:a[0],y:a[1]}),n=!1,e.timeStamp-r<=i.multiClickDebounceTime()?(t&&clearTimeout(t),n=!0,r=null,D(u,["dblclick","dbltap","vdblclick"],e,{x:a[0],y:a[1]})):(t=setTimeout(function(){n||D(u,["oneclick","onetap","voneclick"],e,{x:a[0],y:a[1]})},i.multiClickDebounceTime()),r=e.timeStamp)),null!=u||C.dragData.didDrag||C.hoverData.selecting||C.hoverData.dragged||B(e)||(i.$(S).unselect(["tapunselect"]),l.length>0&&C.redrawHint("eles",!0),C.dragData.possibleDragElements=l=i.collection()),s!=u||C.dragData.didDrag||C.hoverData.selecting||null==s||!s._private.selectable||(C.hoverData.dragging||("additive"===i.selectionType()||c?s.selected()?s.unselect(["tapunselect"]):s.select(["tapselect"]):c||(i.$(S).unmerge(s).unselect(["tapunselect"]),s.select(["tapselect"]))),C.redrawHint("eles",!0)),C.hoverData.selecting){var f=i.collection(C.getAllInBox(o[0],o[1],o[2],o[3]));C.redrawHint("select",!0),f.length>0&&C.redrawHint("eles",!0),i.emit({type:"boxend",originalEvent:e,position:{x:a[0],y:a[1]}});"additive"===i.selectionType()||c||i.$(S).unmerge(f).unselect(),f.emit("box").stdFilter(function(e){return e.selectable()&&!e.selected()}).select().emit("boxselect"),C.redraw()}if(C.hoverData.dragging&&(C.hoverData.dragging=!1,C.redrawHint("select",!0),C.redrawHint("eles",!0),C.redraw()),!o[4]){C.redrawHint("drag",!0),C.redrawHint("eles",!0);var p=u&&u.grabbed();X(l),p&&(u.emit("freeon"),l.emit("free"),C.dragData.didDrag&&(u.emit("dragfreeon"),l.emit("dragfree")))}}o[4]=0,C.hoverData.down=null,C.hoverData.cxtStarted=!1,C.hoverData.draggingEles=!1,C.hoverData.selecting=!1,C.hoverData.isOverThresholdDrag=!1,C.dragData.didDrag=!1,C.hoverData.dragged=!1,C.hoverData.dragDelta=[],C.hoverData.mdownPos=null,C.hoverData.mdownGPos=null,C.hoverData.which=null}},!1);var $=function(e){if(!C.scrollingPage){var t=C.cy,n=t.zoom(),r=t.pan(),i=C.projectIntoViewport(e.clientX,e.clientY),a=[i[0]*n+r.x,i[1]*n+r.y];if(C.hoverData.draggingEles||C.hoverData.dragging||C.hoverData.cxtStarted||0!==C.selection[4])return void e.preventDefault();if(t.panningEnabled()&&t.userPanningEnabled()&&t.zoomingEnabled()&&t.userZoomingEnabled()){e.preventDefault(),C.data.wheelZooming=!0,clearTimeout(C.data.wheelTimeout),C.data.wheelTimeout=setTimeout(function(){C.data.wheelZooming=!1,C.redrawHint("eles",!0),C.redraw()},150);var o=(null!=e.deltaY?-(e.deltaY/250):null!=e.wheelDeltaY?e.wheelDeltaY/1e3:e.wheelDelta/1e3)*C.wheelSensitivity;1===e.deltaMode&&(o*=33);var s=t.zoom()*Math.pow(10,o);"gesturechange"===e.type&&(s=C.gestureStartZoom*e.scale),t.zoom({level:s,renderedPosition:{x:a[0],y:a[1]}}),t.emit("gesturechange"===e.type?"pinchzoom":"scrollzoom")}}};C.registerBinding(C.container,"wheel",$,!0),C.registerBinding(P,"scroll",function(e){C.scrollingPage=!0,clearTimeout(C.scrollingPageTimeout),C.scrollingPageTimeout=setTimeout(function(){C.scrollingPage=!1},250)},!0),C.registerBinding(C.container,"gesturestart",function(e){C.gestureStartZoom=C.cy.zoom(),C.hasTouchStarted||e.preventDefault()},!0),C.registerBinding(C.container,"gesturechange",function(e){C.hasTouchStarted||$(e)},!0),C.registerBinding(C.container,"mouseout",function(e){var t=C.projectIntoViewport(e.clientX,e.clientY);C.cy.emit({originalEvent:e,type:"mouseout",position:{x:t[0],y:t[1]}})},!1),C.registerBinding(C.container,"mouseover",function(e){var t=C.projectIntoViewport(e.clientX,e.clientY);C.cy.emit({originalEvent:e,type:"mouseover",position:{x:t[0],y:t[1]}})},!1);var Q=function(e,t,n,r){return Math.sqrt((n-e)*(n-e)+(r-t)*(r-t))},J=function(e,t,n,r){return(n-e)*(n-e)+(r-t)*(r-t)};if(C.registerBinding(C.container,"touchstart",y=function(e){if(C.hasTouchStarted=!0,K(e)){Y(),C.touchData.capture=!0,C.data.bgActivePosistion=void 0;var t=C.cy,n=C.touchData.now,r=C.touchData.earlier;if(e.touches[0]){var y=C.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);n[0]=y[0],n[1]=y[1]}if(e.touches[1]){var y=C.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY);n[2]=y[0],n[3]=y[1]}if(e.touches[2]){var y=C.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY);n[4]=y[0],n[5]=y[1]}if(e.touches[1]){C.touchData.singleTouchMoved=!0,X(C.dragData.touchDragEles);var b=C.findContainerClientCoords();d=b[0],f=b[1],p=b[2],g=b[3],i=e.touches[0].clientX-d,a=e.touches[0].clientY-f,o=e.touches[1].clientX-d,s=e.touches[1].clientY-f,v=0<=i&&i<=p&&0<=o&&o<=p&&0<=a&&a<=g&&0<=s&&s<=g;var x=t.pan(),w=t.zoom();if(l=Q(i,a,o,s),u=J(i,a,o,s),h=[((c=[(i+o)/2,(a+s)/2])[0]-x.x)/w,(c[1]-x.y)/w],u<4e4&&!e.touches[2]){var E=C.findNearestElement(n[0],n[1],!0,!0),T=C.findNearestElement(n[2],n[3],!0,!0);E&&E.isNode()?(E.activate().emit({originalEvent:e,type:"cxttapstart",position:{x:n[0],y:n[1]}}),C.touchData.start=E):T&&T.isNode()?(T.activate().emit({originalEvent:e,type:"cxttapstart",position:{x:n[0],y:n[1]}}),C.touchData.start=T):t.emit({originalEvent:e,type:"cxttapstart",position:{x:n[0],y:n[1]}}),C.touchData.start&&(C.touchData.start._private.grabbed=!1),C.touchData.cxt=!0,C.touchData.cxtDragged=!1,C.data.bgActivePosistion=void 0,C.redraw();return}}if(e.touches[2])t.boxSelectionEnabled()&&e.preventDefault();else if(e.touches[1]);else if(e.touches[0]){var k=C.findNearestElements(n[0],n[1],!0,!0),P=k[0];if(null!=P&&(P.activate(),C.touchData.start=P,C.touchData.starts=k,C.nodeIsGrabbable(P))){var S=C.dragData.touchDragEles=t.collection(),B=null;C.redrawHint("eles",!0),C.redrawHint("drag",!0),P.selected()?V(B=t.$(function(e){return e.selected()&&C.nodeIsGrabbable(e)}),{addToList:S}):V(P,{addToList:S}),L(P);var A=function(t){return{originalEvent:e,type:t,position:{x:n[0],y:n[1]}}};P.emit(A("grabon")),B?B.forEach(function(e){e.emit(A("grab"))}):P.emit(A("grab"))}D(P,["touchstart","tapstart","vmousedown"],e,{x:n[0],y:n[1]}),null==P&&(C.data.bgActivePosistion={x:y[0],y:y[1]},C.redrawHint("select",!0),C.redraw()),C.touchData.singleTouchMoved=!1,C.touchData.singleTouchStartTime=+new Date,clearTimeout(C.touchData.tapholdTimeout),C.touchData.tapholdTimeout=setTimeout(function(){!1!==C.touchData.singleTouchMoved||C.pinching||C.touchData.selecting||D(C.touchData.start,["taphold"],e,{x:n[0],y:n[1]})},C.tapholdDuration)}if(e.touches.length>=1){for(var _=C.touchData.startPosition=[null,null,null,null,null,null],M=0;M=C.touchTapThreshold2}if(t&&C.touchData.cxt){e.preventDefault();var P=e.touches[0].clientX-d,S=e.touches[0].clientY-f,B=e.touches[1].clientX-d,_=e.touches[1].clientY-f,R=J(P,S,B,_);if(R/u>=2.25||R>=22500){C.touchData.cxt=!1,C.data.bgActivePosistion=void 0,C.redrawHint("select",!0);var I={originalEvent:e,type:"cxttapend",position:{x:c[0],y:c[1]}};C.touchData.start?(C.touchData.start.unactivate().emit(I),C.touchData.start=null):r.emit(I)}}if(t&&C.touchData.cxt){var I={originalEvent:e,type:"cxtdrag",position:{x:c[0],y:c[1]}};C.data.bgActivePosistion=void 0,C.redrawHint("select",!0),C.touchData.start?C.touchData.start.emit(I):r.emit(I),C.touchData.start&&(C.touchData.start._private.grabbed=!1),C.touchData.cxtDragged=!0;var N=C.findNearestElement(c[0],c[1],!0,!0);(!C.touchData.cxtOver||N!==C.touchData.cxtOver)&&(C.touchData.cxtOver&&C.touchData.cxtOver.emit({originalEvent:e,type:"cxtdragout",position:{x:c[0],y:c[1]}}),C.touchData.cxtOver=N,N&&N.emit({originalEvent:e,type:"cxtdragover",position:{x:c[0],y:c[1]}}))}else if(t&&e.touches[2]&&r.boxSelectionEnabled())e.preventDefault(),C.data.bgActivePosistion=void 0,this.lastThreeTouch=+new Date,C.touchData.selecting||r.emit({originalEvent:e,type:"boxstart",position:{x:c[0],y:c[1]}}),C.touchData.selecting=!0,C.touchData.didSelect=!0,n[4]=1,n&&0!==n.length&&void 0!==n[0]?(n[2]=(c[0]+c[2]+c[4])/3,n[3]=(c[1]+c[3]+c[5])/3):(n[0]=(c[0]+c[2]+c[4])/3,n[1]=(c[1]+c[3]+c[5])/3,n[2]=(c[0]+c[2]+c[4])/3+1,n[3]=(c[1]+c[3]+c[5])/3+1),C.redrawHint("select",!0),C.redraw();else if(t&&e.touches[1]&&!C.touchData.didSelect&&r.zoomingEnabled()&&r.panningEnabled()&&r.userZoomingEnabled()&&r.userPanningEnabled()){e.preventDefault(),C.data.bgActivePosistion=void 0,C.redrawHint("select",!0);var L=C.dragData.touchDragEles;if(L){C.redrawHint("drag",!0);for(var O=0;O0&&!C.hoverData.draggingEles&&!C.swipePanning&&null!=C.data.bgActivePosistion&&(C.data.bgActivePosistion=void 0,C.redrawHint("select",!0),C.redraw())}},!1),C.registerBinding(P,"touchcancel",x=function(e){var t=C.touchData.start;C.touchData.capture=!1,t&&t.unactivate()}),C.registerBinding(P,"touchend",w=function(e){var t,n=C.touchData.start;if(C.touchData.capture){0===e.touches.length&&(C.touchData.capture=!1),e.preventDefault();var r=C.selection;C.swipePanning=!1,C.hoverData.draggingEles=!1;var i=C.cy,a=i.zoom(),o=C.touchData.now,s=C.touchData.earlier;if(e.touches[0]){var l=C.projectIntoViewport(e.touches[0].clientX,e.touches[0].clientY);o[0]=l[0],o[1]=l[1]}if(e.touches[1]){var l=C.projectIntoViewport(e.touches[1].clientX,e.touches[1].clientY);o[2]=l[0],o[3]=l[1]}if(e.touches[2]){var l=C.projectIntoViewport(e.touches[2].clientX,e.touches[2].clientY);o[4]=l[0],o[5]=l[1]}if(n&&n.unactivate(),C.touchData.cxt){if(t={originalEvent:e,type:"cxttapend",position:{x:o[0],y:o[1]}},n?n.emit(t):i.emit(t),!C.touchData.cxtDragged){var u={originalEvent:e,type:"cxttap",position:{x:o[0],y:o[1]}};n?n.emit(u):i.emit(u)}C.touchData.start&&(C.touchData.start._private.grabbed=!1),C.touchData.cxt=!1,C.touchData.start=null,C.redraw();return}if(!e.touches[2]&&i.boxSelectionEnabled()&&C.touchData.selecting){C.touchData.selecting=!1;var c=i.collection(C.getAllInBox(r[0],r[1],r[2],r[3]));r[0]=void 0,r[1]=void 0,r[2]=void 0,r[3]=void 0,r[4]=0,C.redrawHint("select",!0),i.emit({type:"boxend",originalEvent:e,position:{x:o[0],y:o[1]}}),c.emit("box").stdFilter(function(e){return e.selectable()&&!e.selected()}).select().emit("boxselect"),c.nonempty()&&C.redrawHint("eles",!0),C.redraw()}if(null!=n&&n.unactivate(),e.touches[2])C.data.bgActivePosistion=void 0,C.redrawHint("select",!0);else if(e.touches[1]);else if(e.touches[0]);else if(!e.touches[0]){C.data.bgActivePosistion=void 0,C.redrawHint("select",!0);var h=C.dragData.touchDragEles;if(null!=n){var d=n._private.grabbed;X(h),C.redrawHint("drag",!0),C.redrawHint("eles",!0),d&&(n.emit("freeon"),h.emit("free"),C.dragData.didDrag&&(n.emit("dragfreeon"),h.emit("dragfree"))),D(n,["touchend","tapend","vmouseup","tapdragout"],e,{x:o[0],y:o[1]}),n.unactivate(),C.touchData.start=null}else D(C.findNearestElement(o[0],o[1],!0,!0),["touchend","tapend","vmouseup","tapdragout"],e,{x:o[0],y:o[1]});var f=C.touchData.startPosition[0]-o[0],p=C.touchData.startPosition[1]-o[1];C.touchData.singleTouchMoved||(n||i.$(":selected").unselect(["tapunselect"]),D(n,["tap","vclick"],e,{x:o[0],y:o[1]}),E=!1,e.timeStamp-k<=i.multiClickDebounceTime()?(T&&clearTimeout(T),E=!0,k=null,D(n,["dbltap","vdblclick"],e,{x:o[0],y:o[1]})):(T=setTimeout(function(){E||D(n,["onetap","voneclick"],e,{x:o[0],y:o[1]})},i.multiClickDebounceTime()),k=e.timeStamp)),null!=n&&!C.dragData.didDrag&&n._private.selectable&&(f*f+p*p)*a*a0)return f[0]}return null}(e,t,p);if(null!=g){var v=tp(p[5],p[3],p[1],g);if(p.isTop&&v<=t||p.isBottom&&t<=v)return!0}}return!1}}},lq.generateBottomRoundrectangle=function(){return this.nodeShapes["bottom-round-rectangle"]=this.nodeShapes.bottomroundrectangle={renderer:this,name:"bottom-round-rectangle",points:tG(4,0),draw:function(e,t,n,r,i,a){this.renderer.nodeShapeImpl(this.name,e,t,n,r,i,this.points,a)},intersectLine:function(e,t,n,r,i,a,o,s){var l=e-(n/2+o),u=t-(r/2+o),c=e+(n/2+o),h=tq(i,a,e,t,l,u,c,u,!1);return h.length>0?h:tD(i,a,e,t,n,r,o,s)},checkPoint:function(e,t,n,r,i,a,o,s){var l=2*(s="auto"===s?t$(r,i):s);if(tL(e,t,this.points,a,o,r,i-l,[0,-1],n)||tL(e,t,this.points,a,o,r-l,i,[0,-1],n))return!0;var u=r/2+2*n,c=i/2+2*n;return!!(tN(e,t,[a-u,o-c,a-u,o,a+u,o,a+u,o-c])||tX(e,t,l,l,a+r/2-s,o+i/2-s,n)||tX(e,t,l,l,a-r/2+s,o+i/2-s,n))}}},lq.registerNodeShapes=function(){var e=this.nodeShapes={},t=this;this.generateEllipse(),this.generatePolygon("triangle",tG(3,0)),this.generateRoundPolygon("round-triangle",tG(3,0)),this.generatePolygon("rectangle",tG(4,0)),e.square=e.rectangle,this.generateRoundRectangle(),this.generateCutRectangle(),this.generateBarrel(),this.generateBottomRoundrectangle();var n=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",n),this.generateRoundPolygon("round-diamond",n),this.generatePolygon("pentagon",tG(5,0)),this.generateRoundPolygon("round-pentagon",tG(5,0)),this.generatePolygon("hexagon",tG(6,0)),this.generateRoundPolygon("round-hexagon",tG(6,0)),this.generatePolygon("heptagon",tG(7,0)),this.generateRoundPolygon("round-heptagon",tG(7,0)),this.generatePolygon("octagon",tG(8,0)),this.generateRoundPolygon("round-octagon",tG(8,0));var r=Array(20),i=tZ(5,0),a=tZ(5,Math.PI/5),o=.5*(3-Math.sqrt(5));o*=1.57;for(var s=0;st.className.indexOf(o)&&(t.className=(t.className||"")+" "+o),!s){var l=r.createElement("style");l.id=a,l.textContent="."+o+" { position: relative; }",i.insertBefore(l,i.children[0])}"static"===n.getComputedStyle(t).getPropertyValue("position")&&eO("A Cytoscape container has style position:static and so can not use UI extensions properly")}this.selection=[void 0,void 0,void 0,void 0,0],this.bezierProjPcts=[.05,.225,.4,.5,.6,.775,.95],this.hoverData={down:null,last:null,downTime:null,triggerMode:null,dragging:!1,initialPan:[null,null],capture:!1},this.dragData={possibleDragElements:[]},this.touchData={start:null,capture:!1,startPosition:[null,null,null,null,null,null],singleTouchStartTime:null,singleTouchMoved:!0,now:[null,null,null,null,null,null],earlier:[null,null,null,null,null,null]},this.redraws=0,this.showFps=e.showFps,this.debug=e.debug,this.webgl=e.webgl,this.hideEdgesOnViewport=e.hideEdgesOnViewport,this.textureOnViewport=e.textureOnViewport,this.wheelSensitivity=e.wheelSensitivity,this.motionBlurEnabled=e.motionBlur,this.forcedPixelRatio=M(e.pixelRatio)?e.pixelRatio:null,this.motionBlur=e.motionBlur,this.motionBlurOpacity=e.motionBlurOpacity,this.motionBlurTransparency=1-this.motionBlurOpacity,this.motionBlurPxRatio=1,this.mbPxRBlurry=1,this.minMbLowQualFrames=4,this.fullQualityMb=!1,this.clearedForMotionBlur=[],this.desktopTapThreshold=e.desktopTapThreshold,this.desktopTapThreshold2=e.desktopTapThreshold*e.desktopTapThreshold,this.touchTapThreshold=e.touchTapThreshold,this.touchTapThreshold2=e.touchTapThreshold*e.touchTapThreshold,this.tapholdDuration=500,this.bindings=[],this.beforeRenderCallbacks=[],this.beforeRenderPriorities={animations:400,eleCalcs:300,eleTxrDeq:200,lyrTxrDeq:150,lyrTxrSkip:100},this.registerNodeShapes(),this.registerArrowShapes(),this.registerCalculationListeners()},lG.notify=function(e,t){var n=this.cy;if(!this.destroyed){if("init"===e)return void this.load();if("destroy"===e)return void this.destroy();("add"===e||"remove"===e||"move"===e&&n.hasCompoundNodes()||"load"===e||"zorder"===e||"mount"===e)&&this.invalidateCachedZSortedEles(),"viewport"===e&&this.redrawHint("select",!0),"gc"===e&&this.redrawHint("gc",!0),("load"===e||"resize"===e||"mount"===e)&&(this.invalidateContainerClientCoordsCache(),this.matchCanvasSize(this.container)),this.redrawHint("eles",!0),this.redrawHint("drag",!0),this.startRenderLoop(),this.redraw()}},lG.destroy=function(){this.destroyed=!0,this.cy.stopAnimationLoop();for(var e=0;e=e.deqFastCost*g)break}else if(i){if(f>=e.deqCost*l||f>=e.deqAvgCost*s)break}else if(p>=e.deqNoDrawCost*lK)break;var v=e.deq(t,h,c);if(v.length>0)for(var y=0;y0&&(e.onDeqd(t,u),!i&&e.shouldRedraw(t,u,h,c)&&r())},i(t))}}},l$=a(function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:eM;i(this,e),this.idsByKey=new eK,this.keyForId=new eK,this.cachesByLvl=new eK,this.lvls=[],this.getKey=t,this.doesEleInvalidateKey=n},[{key:"getIdsFor",value:function(e){null==e&&eN("Can not get id list for null key");var t=this.idsByKey,n=this.idsByKey.get(e);return n||(n=new e$,t.set(e,n)),n}},{key:"addIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).add(t)}},{key:"deleteIdForKey",value:function(e,t){null!=e&&this.getIdsFor(e).delete(t)}},{key:"getNumberOfIdsForKey",value:function(e){return null==e?0:this.getIdsFor(e).size}},{key:"updateKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t),r=this.getKey(e);this.deleteIdForKey(n,t),this.addIdForKey(r,t),this.keyForId.set(t,r)}},{key:"deleteKeyMappingFor",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteIdForKey(n,t),this.keyForId.delete(t)}},{key:"keyHasChangedFor",value:function(e){var t=e.id();return this.keyForId.get(t)!==this.getKey(e)}},{key:"isInvalid",value:function(e){return this.keyHasChangedFor(e)||this.doesEleInvalidateKey(e)}},{key:"getCachesAt",value:function(e){var t=this.cachesByLvl,n=this.lvls,r=t.get(e);return r||(r=new eK,t.set(e,r),n.push(e)),r}},{key:"getCache",value:function(e,t){return this.getCachesAt(t).get(e)}},{key:"get",value:function(e,t){var n=this.getKey(e),r=this.getCache(n,t);return null!=r&&this.updateKeyMappingFor(e),r}},{key:"getForCachedKey",value:function(e,t){var n=this.keyForId.get(e.id());return this.getCache(n,t)}},{key:"hasCache",value:function(e,t){return this.getCachesAt(t).has(e)}},{key:"has",value:function(e,t){var n=this.getKey(e);return this.hasCache(n,t)}},{key:"setCache",value:function(e,t,n){n.key=e,this.getCachesAt(t).set(e,n)}},{key:"set",value:function(e,t,n){var r=this.getKey(e);this.setCache(r,t,n),this.updateKeyMappingFor(e)}},{key:"deleteCache",value:function(e,t){this.getCachesAt(t).delete(e)}},{key:"delete",value:function(e,t){var n=this.getKey(e);this.deleteCache(n,t)}},{key:"invalidateKey",value:function(e){var t=this;this.lvls.forEach(function(n){return t.deleteCache(e,n)})}},{key:"invalidate",value:function(e){var t=e.id(),n=this.keyForId.get(t);this.deleteKeyMappingFor(e);var r=this.doesEleInvalidateKey(e);return r&&this.invalidateKey(n),r||0===this.getNumberOfIdsForKey(n)}}]),lQ={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"},lJ=ej({getKey:null,doesEleInvalidateKey:eM,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:e_,allowEdgeTxrCaching:!0,allowParentTxrCaching:!0}),l0=function(e,t){this.renderer=e,this.onDequeues=[];var n=lJ(t);Q(this,n),this.lookup=new l$(n.getKey,n.doesEleInvalidateKey),this.setupDequeueing()},l1=l0.prototype;l1.reasons=lQ,l1.getTextureQueue=function(e){return this.eleImgCaches=this.eleImgCaches||{},this.eleImgCaches[e]=this.eleImgCaches[e]||[]},l1.getRetiredTextureQueue=function(e){var t=this.eleImgCaches.retired=this.eleImgCaches.retired||{};return t[e]=t[e]||[]},l1.getElementQueue=function(){return this.eleCacheQueue=this.eleCacheQueue||new e5(function(e,t){return t.reqs-e.reqs})},l1.getElementKeyToQueue=function(){return this.eleKeyToCacheQueue=this.eleKeyToCacheQueue||{}},l1.getElement=function(e,t,n,r,i){var a,o,s,l=this,u=this.renderer,c=u.cy.zoom(),h=this.lookup;if(!t||0===t.w||0===t.h||isNaN(t.w)||isNaN(t.h)||!e.visible()||e.removed()||!l.allowEdgeTxrCaching&&e.isEdge()||!l.allowParentTxrCaching&&e.isParent())return null;if(null==r&&(r=Math.ceil(tu(c*n))),r<-4)r=-4;else if(c>=7.99||r>3)return null;var d=Math.pow(2,r),f=t.h*d,p=t.w*d,g=u.eleTextBiggerThanMin(e,d);if(!this.isVisible(e,g))return null;var v=h.get(e,r);if(v&&v.invalidated&&(v.invalidated=!1,v.texture.invalidatedWidth-=v.width),v)return v;if(a=f<=25?25:f<=50?50:50*Math.ceil(f/50),f>1024||p>1024)return null;var y=l.getTextureQueue(a),b=y[y.length-2],x=function(){return l.recycleTexture(a,p)||l.addTexture(a,p)};b||(b=y[y.length-1]),b||(b=x()),b.width-b.usedWidthr;B--)S=l.getElement(e,t,n,B,lQ.downscale);D()}else{if(!E&&!T&&!k)for(var A=r-1;A>=-4;A--){var _=h.get(e,A);if(_){s=_;break}}if(w(s))return l.queueElement(e,r),s;b.context.translate(b.usedWidth,0),b.context.scale(d,d),this.drawElement(b.context,e,t,g,!1),b.context.scale(1/d,1/d),b.context.translate(-b.usedWidth,0)}return v={x:b.usedWidth,texture:b,level:r,scale:d,width:p,height:f,scaledLabelShown:g},b.usedWidth+=Math.ceil(p+8),b.eleCaches.push(v),h.set(e,r,v),l.checkTextureFullness(b),v},l1.invalidateElements=function(e){for(var t=0;t=.2*e.width&&this.retireTexture(e)},l1.checkTextureFullness=function(e){var t=this.getTextureQueue(e.height);e.usedWidth/e.width>.8&&e.fullnessChecks>=10?eY(t,e):e.fullnessChecks++},l1.retireTexture=function(e){var t=e.height,n=this.getTextureQueue(t),r=this.lookup;eY(n,e),e.retired=!0;for(var i=e.eleCaches,a=0;a=t)return a.retired=!1,a.usedWidth=0,a.invalidatedWidth=0,a.fullnessChecks=0,eq(a.eleCaches),a.context.setTransform(1,0,0,1,0,0),a.context.clearRect(0,0,a.width,a.height),eY(r,a),n.push(a),a}},l1.queueElement=function(e,t){var n=this.getElementQueue(),r=this.getElementKeyToQueue(),i=this.getKey(e),a=r[i];if(a)a.level=Math.max(a.level,t),a.eles.merge(e),a.reqs++,n.updateItem(a);else{var o={eles:e.spawn().merge(e),level:t,reqs:1,key:i};n.push(o),r[i]=o}},l1.dequeue=function(e){for(var t=this.getElementQueue(),n=this.getElementKeyToQueue(),r=[],i=this.lookup,a=0;a<1;a++)if(t.size()>0){var o=t.pop(),s=o.key,l=o.eles[0],u=i.hasCache(l,o.level);if(n[s]=null,u)continue;r.push(o);var c=this.getBoundingBox(l);this.getElement(l,c,e,o.level,lQ.dequeue)}else break;return r},l1.removeFromQueue=function(e){var t=this.getElementQueue(),n=this.getElementKeyToQueue(),r=this.getKey(e),i=n[r];null!=i&&(1===i.eles.length?(i.reqs=eA,t.updateItem(i),t.pop(),n[r]=null):i.eles.unmerge(e))},l1.onDequeue=function(e){this.onDequeues.push(e)},l1.offDequeue=function(e){eY(this.onDequeues,e)},l1.setupDequeueing=lZ({deqRedrawThreshold:100,deqCost:.15,deqAvgCost:.1,deqNoDrawCost:.9,deqFastCost:.9,deq:function(e,t,n){return e.dequeue(t,n)},onDeqd:function(e,t){for(var n=0;n=3.99||n>2)return null}a.validateLayersElesOrdering(n,e);var l=a.layersByLevel,u=Math.pow(2,n),c=l[n]=l[n]||[];if(a.levelIsComplete(n,e))return c;var h=function(t){if(a.validateLayersElesOrdering(t,e),a.levelIsComplete(t,e))return i=l[t],!0},d=function(e){if(!i)for(var t=n+e;-4<=t&&t<=2&&!h(t);t+=e);};d(1),d(-1);for(var f=c.length-1;f>=0;f--){var p=c[f];p.invalid&&eY(c,p)}var g=function(){if(!r){r=tm();for(var t=0;t=y||!tS(v.bb,w.boundingBox()))&&!(v=function(e){var t=(e=e||{}).after;g();var i=Math.ceil(r.w*u),o=Math.ceil(r.h*u);if(i>32767||o>32767||i*o>16e6)return null;var s=a.makeLayer(r,n);if(null!=t){var l=c.indexOf(t)+1;c.splice(l,0,s)}else(void 0===e.insert||e.insert)&&c.unshift(s);return s}({insert:!0,after:v})))return null;i||b?a.queueLayer(v,w):a.drawEleInLayer(v,w,n,t),v.eles.push(w),T[n]=v}return i||(b?null:c)},l5.getEleLevelForLayerLevel=function(e,t){return e},l5.drawEleInLayer=function(e,t,n,r){var i=this.renderer,a=e.context,o=t.boundingBox();0!==o.w&&0!==o.h&&t.visible()&&(n=this.getEleLevelForLayerLevel(n,r),i.setImgSmoothing(a,!1),i.drawCachedElement(a,t,null,null,n,!0),i.setImgSmoothing(a,!0))},l5.levelIsComplete=function(e,t){var n=this.layersByLevel[e];if(!n||0===n.length)return!1;for(var r=0,i=0;i0||a.invalid)return!1;r+=a.eles.length}return r===t.length},l5.validateLayersElesOrdering=function(e,t){var n=this.layersByLevel[e];if(n)for(var r=0;r0){e=!0;break}}return e},l5.invalidateElements=function(e){var t=this;0!==e.length&&(t.lastInvalidationTime=eg(),0!==e.length&&t.haveLayers()&&t.updateElementsInLayers(e,function(e,n,r){t.invalidateLayer(e)}))},l5.invalidateLayer=function(e){if(this.lastInvalidationTime=eg(),!e.invalid){var t=e.level,n=e.eles;eY(this.layersByLevel[t],e),e.elesQueue=[],e.invalid=!0,e.replacement&&(e.replacement.invalid=!0);for(var r=0;r3)||void 0===arguments[3]||arguments[3],a=!(arguments.length>4)||void 0===arguments[4]||arguments[4],o=!(arguments.length>5)||void 0===arguments[5]||arguments[5],s=this,l=t._private.rscratch;if((!o||t.visible())&&!(l.badLine||null==l.allpts||isNaN(l.allpts[0]))){n&&(r=n,e.translate(-r.x1,-r.y1));var u=o?t.pstyle("opacity").value:1,c=o?t.pstyle("line-opacity").value:1,h=t.pstyle("curve-style").value,d=t.pstyle("line-style").value,f=t.pstyle("width").pfValue,p=t.pstyle("line-cap").value,g=t.pstyle("line-outline-width").value,v=t.pstyle("line-outline-color").value,y=u*c,b=u*c,x=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y;"straight-triangle"===h?(s.eleStrokeStyle(e,t,n),s.drawEdgeTrianglePath(t,e,l.allpts)):(e.lineWidth=f,e.lineCap=p,s.eleStrokeStyle(e,t,n),s.drawEdgePath(t,e,l.allpts,d),e.lineCap="butt")},w=function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:b;s.drawArrowheads(e,t,n)};if(e.lineJoin="round","yes"===t.pstyle("ghost").value){var E=t.pstyle("ghost-offset-x").pfValue,T=t.pstyle("ghost-offset-y").pfValue,k=y*t.pstyle("ghost-opacity").value;e.translate(E,T),x(k),w(k),e.translate(-E,-T)}else!function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:y;if(e.lineWidth=f+g,e.lineCap=p,g>0)s.colorStrokeStyle(e,v[0],v[1],v[2],n);else{e.lineCap="butt";return}"straight-triangle"===h?s.drawEdgeTrianglePath(t,e,l.allpts):(s.drawEdgePath(t,e,l.allpts,d),e.lineCap="butt")}();a&&s.drawEdgeUnderlay(e,t),x(),w(),a&&s.drawEdgeOverlay(e,t),s.drawElementText(e,t,null,i),n&&e.translate(r.x1,r.y1)}};var uu=function(e){if(!["overlay","underlay"].includes(e))throw Error("Invalid state");return function(t,n){if(n.visible()){var r=n.pstyle("".concat(e,"-opacity")).value;if(0!==r){var i=this.usePaths(),a=n._private.rscratch,o=n.pstyle("".concat(e,"-padding")).pfValue,s=n.pstyle("".concat(e,"-color")).value;t.lineWidth=2*o,"self"!==a.edgeType||i?t.lineCap="round":t.lineCap="butt",this.colorStrokeStyle(t,s[0],s[1],s[2],r),this.drawEdgePath(n,t,a.allpts,"solid")}}}};ul.drawEdgeOverlay=uu("overlay"),ul.drawEdgeUnderlay=uu("underlay"),ul.drawEdgePath=function(e,t,n,r){var i=e._private.rscratch,a=t,s=!1,l=this.usePaths(),u=e.pstyle("line-dash-pattern").pfValue,c=e.pstyle("line-dash-offset").pfValue;if(l){var h=n.join("$");i.pathCacheKey&&i.pathCacheKey===h?(p=t=i.pathCache,s=!0):(p=t=new Path2D,i.pathCacheKey=h,i.pathCache=p)}if(a.setLineDash)switch(r){case"dotted":a.setLineDash([1,1]);break;case"dashed":a.setLineDash(u),a.lineDashOffset=c;break;case"solid":a.setLineDash([])}if(!s&&!i.badLine)switch(t.beginPath&&t.beginPath(),t.moveTo(n[0],n[1]),i.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var d=2;d+35&&void 0!==arguments[5]?arguments[5]:5,o=arguments.length>6?arguments[6]:void 0;e.beginPath(),e.moveTo(t+a,n),e.lineTo(t+r-a,n),e.quadraticCurveTo(t+r,n,t+r,n+a),e.lineTo(t+r,n+i-a),e.quadraticCurveTo(t+r,n+i,t+r-a,n+i),e.lineTo(t+a,n+i),e.quadraticCurveTo(t,n+i,t,n+i-a),e.lineTo(t,n+a),e.quadraticCurveTo(t,n,t+a,n),e.closePath(),o?e.stroke():e.fill()}uh.eleTextBiggerThanMin=function(e,t){return t||(t=Math.pow(2,Math.ceil(tu(e.cy().zoom()*this.getPixelRatio())))),!(e.pstyle("font-size").pfValue*t5)||void 0===arguments[5]||arguments[5];if(null==r){if(o&&!this.eleTextBiggerThanMin(t))return}else if(!1===r)return;if(t.isNode()){var s=t.pstyle("label");if(!s||!s.value)return;e.textAlign=this.getLabelJustification(t),e.textBaseline="bottom"}else{var l=t.element()._private.rscratch.badLine,u=t.pstyle("label"),c=t.pstyle("source-label"),h=t.pstyle("target-label");if(l||(!u||!u.value)&&(!c||!c.value)&&(!h||!h.value))return;e.textAlign="center",e.textBaseline="bottom"}var d=!n;n&&(a=n,e.translate(-a.x1,-a.y1)),null==i?(this.drawText(e,t,null,d,o),t.isEdge()&&(this.drawText(e,t,"source",d,o),this.drawText(e,t,"target",d,o))):this.drawText(e,t,i,d,o),n&&e.translate(a.x1,a.y1)},uh.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var n=0;n2)||void 0===arguments[2]||arguments[2],r=t.pstyle("font-style").strValue,i=t.pstyle("font-size").pfValue+"px",a=t.pstyle("font-family").strValue,o=t.pstyle("font-weight").strValue,s=n?t.effectiveOpacity()*t.pstyle("text-opacity").value:1,l=t.pstyle("text-outline-opacity").value*s,u=t.pstyle("color").value,c=t.pstyle("text-outline-color").value;e.font=r+" "+o+" "+i+" "+a,e.lineJoin="round",this.colorFillStyle(e,u[0],u[1],u[2],s),this.colorStrokeStyle(e,c[0],c[1],c[2],l)},uh.getTextAngle=function(e,t){var n,r=e._private.rscratch,i=t?t+"-":"",a=e.pstyle(i+"text-rotation");if("autorotate"===a.strValue){var o=eU(r,"labelAngle",t);n=e.isEdge()?o:0}else n="none"===a.strValue?0:a.pfValue;return n},uh.drawText=function(e,t,n){var r=!(arguments.length>3)||void 0===arguments[3]||arguments[3],i=!(arguments.length>4)||void 0===arguments[4]||arguments[4],a=t._private.rscratch,o=i?t.effectiveOpacity():1;if(!i||0!==o&&0!==t.pstyle("text-opacity").value){"main"===n&&(n=null);var s=eU(a,"labelX",n),l=eU(a,"labelY",n),u=this.getLabelText(t,n);if(null!=u&&""!==u&&!isNaN(s)&&!isNaN(l)){this.setupTextStyle(e,t,i);var c,h,d,f=n?n+"-":"",p=eU(a,"labelWidth",n),g=eU(a,"labelHeight",n),v=t.pstyle(f+"text-margin-x").pfValue,y=t.pstyle(f+"text-margin-y").pfValue,b=t.isEdge(),x=t.pstyle("text-halign").value,w=t.pstyle("text-valign").value;switch(b&&(x="center",w="center"),s+=v,l+=y,0!==(d=r?this.getTextAngle(t,n):0)&&(c=s,h=l,e.translate(c,h),e.rotate(d),s=0,l=0),w){case"top":break;case"center":l+=g/2;break;case"bottom":l+=g}var E=t.pstyle("text-background-opacity").value,T=t.pstyle("text-border-opacity").value,k=t.pstyle("text-border-width").pfValue,C=t.pstyle("text-background-padding").pfValue,P=0===t.pstyle("text-background-shape").strValue.indexOf("round");if(E>0||k>0&&T>0){var S=s-C;switch(x){case"left":S-=p;break;case"center":S-=p/2}var D=l-g-C,B=p+2*C,A=g+2*C;if(E>0){var _=e.fillStyle,M=t.pstyle("text-background-color").value;e.fillStyle="rgba("+M[0]+","+M[1]+","+M[2]+","+E*o+")",P?ud(e,S,D,B,A,2):e.fillRect(S,D,B,A),e.fillStyle=_}if(k>0&&T>0){var R=e.strokeStyle,I=e.lineWidth,N=t.pstyle("text-border-color").value,L=t.pstyle("text-border-style").value;if(e.strokeStyle="rgba("+N[0]+","+N[1]+","+N[2]+","+T*o+")",e.lineWidth=k,e.setLineDash)switch(L){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"double":e.lineWidth=k/4,e.setLineDash([]);break;case"solid":e.setLineDash([])}if(P?ud(e,S,D,B,A,2,"stroke"):e.strokeRect(S,D,B,A),"double"===L){var O=k/2;P?ud(e,S+O,D+O,B-2*O,A-2*O,2,"stroke"):e.strokeRect(S+O,D+O,B-2*O,A-2*O)}e.setLineDash&&e.setLineDash([]),e.lineWidth=I,e.strokeStyle=R}}var z=2*t.pstyle("text-outline-width").pfValue;if(z>0&&(e.lineWidth=z),"wrap"===t.pstyle("text-wrap").value){var F=eU(a,"labelWrapCachedLines",n),V=eU(a,"labelLineHeight",n),X=p/2,j=this.getLabelJustification(t);switch("auto"===j||("left"===x?"left"===j?s+=-p:"center"===j&&(s+=-X):"center"===x?"left"===j?s+=-X:"right"===j&&(s+=X):"right"===x&&("center"===j?s+=X:"right"===j&&(s+=p))),w){case"top":case"center":case"bottom":l-=(F.length-1)*V}for(var Y=0;Y0&&e.strokeText(F[Y],s,l),e.fillText(F[Y],s,l),l+=V}else z>0&&e.strokeText(u,s,l),e.fillText(u,s,l);0!==d&&(e.rotate(-d),e.translate(-c,-h))}}};var uf={};uf.drawNode=function(e,t,n){var r,i,a,o,s=!(arguments.length>3)||void 0===arguments[3]||arguments[3],l=!(arguments.length>4)||void 0===arguments[4]||arguments[4],u=!(arguments.length>5)||void 0===arguments[5]||arguments[5],c=this,h=t._private,d=h.rscratch,f=t.position();if(M(f.x)&&M(f.y)&&(!u||t.visible())){var p=u?t.effectiveOpacity():1,g=c.usePaths(),v=!1,y=t.padding();r=t.width()+2*y,i=t.height()+2*y,n&&(o=n,e.translate(-o.x1,-o.y1));for(var b=t.pstyle("background-image").value,x=Array(b.length),w=Array(b.length),E=0,T=0;T0&&void 0!==arguments[0]?arguments[0]:D;c.eleFillStyle(e,t,n)},W=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:O;c.colorStrokeStyle(e,B[0],B[1],B[2],t)},U=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:X;c.colorStrokeStyle(e,F[0],F[1],F[2],t)},H=function(e,t,n,r){var i,a=c.nodePathCache=c.nodePathCache||[],o=eC("polygon"===n?n+","+r.join(","):n,""+t,""+e,""+Y),s=a[o],l=!1;return null!=s?(l=!0,d.pathCache=i=s):(i=new Path2D,a[o]=d.pathCache=i),{path:i,cacheHit:l}},G=t.pstyle("shape").strValue,K=t.pstyle("shape-polygon-points").pfValue;if(g){e.translate(f.x,f.y);var Z=H(r,i,G,K);a=Z.path,v=Z.cacheHit}var $=function(){if(!v){var n=f;g&&(n={x:0,y:0}),c.nodeShapes[c.getNodeShape(t)].draw(a||e,n.x,n.y,r,i,Y,d)}g?e.fill(a):e.fill()},Q=function(){for(var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p,r=!(arguments.length>1)||void 0===arguments[1]||arguments[1],i=h.backgrounding,a=0,o=0;o0&&void 0!==arguments[0]&&arguments[0],a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p;c.hasPie(t)&&(c.drawPie(e,t,a),n&&!g&&c.nodeShapes[c.getNodeShape(t)].draw(e,f.x,f.y,r,i,Y,d))},ee=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p,n=P>0?0:255;0!==P&&(c.colorFillStyle(e,n,n,n,(P>0?P:-P)*t),g?e.fill(a):e.fill())},et=function(){if(S>0){if(e.lineWidth=S,e.lineCap=R,e.lineJoin=_,e.setLineDash)switch(A){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash(N),e.lineDashOffset=L;break;case"solid":case"double":e.setLineDash([])}if("center"!==I){if(e.save(),e.lineWidth*=2,"inside"===I)g?e.clip(a):e.clip();else{var t=new Path2D;t.rect(-r/2-S,-i/2-S,r+2*S,i+2*S),t.addPath(a),e.clip(t,"evenodd")}g?e.stroke(a):e.stroke(),e.restore()}else g?e.stroke(a):e.stroke();if("double"===A){e.lineWidth=S/3;var n=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",g?e.stroke(a):e.stroke(),e.globalCompositeOperation=n}e.setLineDash&&e.setLineDash([])}},en=function(){if(z>0){if(e.lineWidth=z,e.lineCap="butt",e.setLineDash)switch(V){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([])}var n=f;g&&(n={x:0,y:0});var a=c.getNodeShape(t),o=S;"inside"===I&&(o=0),"outside"===I&&(o*=2);var s=(r+o+(z+j))/r,l=(i+o+(z+j))/i,u=r*s,h=i*l,d=c.nodeShapes[a].points;if(g&&(C=H(u,h,a,d).path),"ellipse"===a)c.drawEllipsePath(C||e,n.x,n.y,u,h);else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(a)){var p=0,v=0,y=0;"round-diamond"===a?p=(o+j+z)*1.4:"round-heptagon"===a?(p=(o+j+z)*1.075,y=-(o/2+j+z)/35):"round-hexagon"===a?p=(o+j+z)*1.12:"round-pentagon"===a?(p=(o+j+z)*1.13,y=-(o/2+j+z)/15):"round-tag"===a?(p=(o+j+z)*1.12,v=(o/2+z+j)*.07):"round-triangle"===a&&(p=Math.PI/2*(o+j+z),y=-(o+j/2+z)/Math.PI),0!==p&&(s=(r+p)/r,u=r*s,["round-hexagon","round-tag"].includes(a)||(l=(i+p)/i,h=i*l)),Y="auto"===Y?tQ(u,h):Y;for(var b=u/2,x=h/2,w=Y+(o+z+j)/2,E=Array(d.length/2),T=Array(d.length/2),k=0;k0){if(r=r||n.position(),null==i||null==a){var h=n.padding();i=n.width()+2*h,a=n.height()+2*h}this.colorFillStyle(t,l[0],l[1],l[2],s),this.nodeShapes[u].draw(t,r.x,r.y,i+2*o,a+2*o,c),t.fill()}}}};uf.drawNodeOverlay=up("overlay"),uf.drawNodeUnderlay=up("underlay"),uf.hasPie=function(e){return(e=e[0])._private.hasPie},uf.drawPie=function(e,t,n,r){t=t[0],r=r||t.position();var i=t.cy().style(),a=t.pstyle("pie-size"),o=r.x,s=r.y,l=Math.min(t.width(),t.height())/2,u=0;this.usePaths()&&(o=0,s=0),"%"===a.units?l*=a.pfValue:void 0!==a.pfValue&&(l=a.pfValue/2);for(var c=1;c<=i.pieBackgroundN;c++){var h=t.pstyle("pie-"+c+"-background-size").value,d=t.pstyle("pie-"+c+"-background-color").value,f=t.pstyle("pie-"+c+"-background-opacity").value*n,p=h/100;p+u>1&&(p=1-u);var g=1.5*Math.PI+2*Math.PI*u,v=g+2*Math.PI*p;0===h||u>=1||u+p>1||(e.beginPath(),e.moveTo(o,s),e.arc(o,s,l,g,v),e.closePath(),this.colorFillStyle(e,d[0],d[1],d[2],f),e.fill(),u+=p)}};var ug={};function uv(e,t,n){var r=e.createShader(t);if(e.shaderSource(r,n),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS))throw Error(e.getShaderInfoLog(r));return r}function uy(e,t,n){void 0===n&&(n=t);var r=e.makeOffscreenCanvas(t,n),i=r.context=r.getContext("2d");return r.clear=function(){return i.clearRect(0,0,r.width,r.height)},r.clear(),r}function um(e){var t=e.pixelRatio,n=e.cy.zoom(),r=e.cy.pan();return{zoom:n*t,pan:{x:r.x*t,y:r.y*t}}}function ub(e,t,n){var r=e[0]/255,i=e[1]/255,a=e[2]/255,o=n||[,,,,];return o[0]=r*t,o[1]=i*t,o[2]=a*t,o[3]=t,o}function ux(e,t){var n=t||[,,,,];return n[0]=((0|e)&255)/255,n[1]=(e>>8&255)/255,n[2]=(e>>16&255)/255,n[3]=(e>>24&255)/255,n}function uw(e,t){switch(t){case"float":return[1,e.FLOAT,4];case"vec2":return[2,e.FLOAT,4];case"vec3":return[3,e.FLOAT,4];case"vec4":return[4,e.FLOAT,4];case"int":return[1,e.INT,4];case"ivec2":return[2,e.INT,4]}}function uE(e,t,n){switch(t){case e.FLOAT:return new Float32Array(n);case e.INT:return new Int32Array(n)}}function uT(e,t,n,r){var i=l(uw(e,n),3),a=i[0],o=i[1],s=i[2],u=uE(e,o,t*a),c=a*s,h=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,h),e.bufferData(e.ARRAY_BUFFER,t*c,e.DYNAMIC_DRAW),e.enableVertexAttribArray(r),o===e.FLOAT?e.vertexAttribPointer(r,a,o,!1,c,0):o===e.INT&&e.vertexAttribIPointer(r,a,o,c,0),e.vertexAttribDivisor(r,1),e.bindBuffer(e.ARRAY_BUFFER,null);for(var d=Array(t),f=0;ft.minMbLowQualFrames&&(t.motionBlurPxRatio=t.mbPxRBlurry)),t.clearingMotionBlur&&(t.motionBlurPxRatio=1),t.textureDrawLastFrame&&!h&&(c[t.NODE]=!0,c[t.SELECT_BOX]=!0);var b=n.style(),x=n.zoom(),w=void 0!==o?o:x,E=n.pan(),T={x:E.x,y:E.y},k={zoom:x,pan:{x:E.x,y:E.y}},C=t.prevViewport;void 0===C||k.zoom!==C.zoom||k.pan.x!==C.pan.x||k.pan.y!==C.pan.y||g&&!p||(t.motionBlurPxRatio=1),s&&(T=s),w*=l,T.x*=l,T.y*=l;var P=t.getCachedZSortedEles();function S(e,n,r,i,a){var o=e.globalCompositeOperation;e.globalCompositeOperation="destination-out",t.colorFillStyle(e,255,255,255,t.motionBlurTransparency),e.fillRect(n,r,i,a),e.globalCompositeOperation=o}function D(e,n){var a,l,c,h;t.clearingMotionBlur||e!==u.bufferContexts[t.MOTIONBLUR_BUFFER_NODE]&&e!==u.bufferContexts[t.MOTIONBLUR_BUFFER_DRAG]?(a=T,l=w,c=t.canvasWidth,h=t.canvasHeight):(a={x:E.x*f,y:E.y*f},l=x*f,c=t.canvasWidth*f,h=t.canvasHeight*f),e.setTransform(1,0,0,1,0,0),"motionBlur"===n?S(e,0,0,c,h):!r&&(void 0===n||n)&&e.clearRect(0,0,c,h),i||(e.translate(a.x,a.y),e.scale(l,l)),s&&e.translate(s.x,s.y),o&&e.scale(o,o)}if(h||(t.textureDrawLastFrame=!1),h){if(t.textureDrawLastFrame=!0,!t.textureCache){t.textureCache={},t.textureCache.bb=n.mutableElements().boundingBox(),t.textureCache.texture=t.data.bufferCanvases[t.TEXTURE_BUFFER];var B=t.data.bufferContexts[t.TEXTURE_BUFFER];B.setTransform(1,0,0,1,0,0),B.clearRect(0,0,t.canvasWidth*t.textureMult,t.canvasHeight*t.textureMult),t.render({forcedContext:B,drawOnlyNodeLayer:!0,forcedPxRatio:l*t.textureMult});var k=t.textureCache.viewport={zoom:n.zoom(),pan:n.pan(),width:t.canvasWidth,height:t.canvasHeight};k.mpan={x:(0-k.pan.x)/k.zoom,y:(0-k.pan.y)/k.zoom}}c[t.DRAG]=!1,c[t.NODE]=!1;var A=u.contexts[t.NODE],_=t.textureCache.texture,k=t.textureCache.viewport;A.setTransform(1,0,0,1,0,0),d?S(A,0,0,k.width,k.height):A.clearRect(0,0,k.width,k.height);var M=b.core("outside-texture-bg-color").value,R=b.core("outside-texture-bg-opacity").value;t.colorFillStyle(A,M[0],M[1],M[2],R),A.fillRect(0,0,k.width,k.height);var x=n.zoom();D(A,!1),A.clearRect(k.mpan.x,k.mpan.y,k.width/k.zoom/l,k.height/k.zoom/l),A.drawImage(_,k.mpan.x,k.mpan.y,k.width/k.zoom/l,k.height/k.zoom/l)}else t.textureOnViewport&&!r&&(t.textureCache=null);var I=n.extent(),N=t.pinching||t.hoverData.dragging||t.swipePanning||t.data.wheelZooming||t.hoverData.draggingEles||t.cy.animated(),L=t.hideEdgesOnViewport&&N,O=[];if(O[t.NODE]=!c[t.NODE]&&d&&!t.clearedForMotionBlur[t.NODE]||t.clearingMotionBlur,O[t.NODE]&&(t.clearedForMotionBlur[t.NODE]=!0),O[t.DRAG]=!c[t.DRAG]&&d&&!t.clearedForMotionBlur[t.DRAG]||t.clearingMotionBlur,O[t.DRAG]&&(t.clearedForMotionBlur[t.DRAG]=!0),c[t.NODE]||i||a||O[t.NODE]){var z=d&&!O[t.NODE]&&1!==f,A=r||(z?t.data.bufferContexts[t.MOTIONBLUR_BUFFER_NODE]:u.contexts[t.NODE]);D(A,d&&!z?"motionBlur":void 0),L?t.drawCachedNodes(A,P.nondrag,l,I):t.drawLayeredElements(A,P.nondrag,l,I),t.debug&&t.drawDebugPoints(A,P.nondrag),i||d||(c[t.NODE]=!1)}if(!a&&(c[t.DRAG]||i||O[t.DRAG])){var z=d&&!O[t.DRAG]&&1!==f,A=r||(z?t.data.bufferContexts[t.MOTIONBLUR_BUFFER_DRAG]:u.contexts[t.DRAG]);D(A,d&&!z?"motionBlur":void 0),L?t.drawCachedNodes(A,P.drag,l,I):t.drawCachedElements(A,P.drag,l,I),t.debug&&t.drawDebugPoints(A,P.drag),i||d||(c[t.DRAG]=!1)}if(this.drawSelectionRectangle(e,D),d&&1!==f){var F=u.contexts[t.NODE],V=t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_NODE],X=u.contexts[t.DRAG],j=t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_DRAG],Y=function(e,n,r){e.setTransform(1,0,0,1,0,0),r||!y?e.clearRect(0,0,t.canvasWidth,t.canvasHeight):S(e,0,0,t.canvasWidth,t.canvasHeight),e.drawImage(n,0,0,t.canvasWidth*f,t.canvasHeight*f,0,0,t.canvasWidth,t.canvasHeight)};(c[t.NODE]||O[t.NODE])&&(Y(F,V,O[t.NODE]),c[t.NODE]=!1),(c[t.DRAG]||O[t.DRAG])&&(Y(X,j,O[t.DRAG]),c[t.DRAG]=!1)}t.prevViewport=k,t.clearingMotionBlur&&(t.clearingMotionBlur=!1,t.motionBlurCleared=!0,t.motionBlur=!0),d&&(t.motionBlurTimeout=setTimeout(function(){t.motionBlurTimeout=null,t.clearedForMotionBlur[t.NODE]=!1,t.clearedForMotionBlur[t.DRAG]=!1,t.motionBlur=!1,t.clearingMotionBlur=!h,t.mbFrames=0,c[t.NODE]=!0,c[t.DRAG]=!0,t.redraw()},100)),r||n.emit("render")},ug.drawSelectionRectangle=function(e,t){var n=this.cy,r=this.data,i=n.style(),a=e.drawOnlyNodeLayer,o=e.drawAllLayers,s=r.canvasNeedsRedraw,l=e.forcedContext;if(this.showFps||!a&&s[this.SELECT_BOX]&&!o){var u=l||r.contexts[this.SELECT_BOX];if(t(u),1==this.selection[4]&&(this.hoverData.selecting||this.touchData.selecting)){var c=this.cy.zoom(),h=i.core("selection-box-border-width").value/c;u.lineWidth=h,u.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+")",u.fillRect(this.selection[0],this.selection[1],this.selection[2]-this.selection[0],this.selection[3]-this.selection[1]),h>0&&(u.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+")",u.strokeRect(this.selection[0],this.selection[1],this.selection[2]-this.selection[0],this.selection[3]-this.selection[1]))}if(r.bgActivePosistion&&!this.hoverData.selecting){var c=this.cy.zoom(),d=r.bgActivePosistion;u.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+")",u.beginPath(),u.arc(d.x,d.y,i.core("active-bg-size").pfValue/c,0,2*Math.PI),u.fill()}var f=this.lastRedrawTime;if(this.showFps&&f){var p=Math.round(1e3/(f=Math.round(f))),g="1 frame = "+f+" ms = "+p+" fps";u.setTransform(1,0,0,1,0,0),u.fillStyle="rgba(255, 0, 0, 0.75)",u.strokeStyle="rgba(255, 0, 0, 0.75)",u.font="30px Arial",x||(x=u.measureText(g).actualBoundingBoxAscent),u.fillText(g,0,x),u.strokeRect(0,x+10,250,20),u.fillRect(0,x+10,250*Math.min(p/60,1),20)}o||(s[this.SELECT_BOX]=!1)}};var uk="undefined"!=typeof Float32Array?Float32Array:Array;function uC(){var e=new uk(9);return uk!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function uP(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function uS(e,t,n){var r=t[0],i=t[1],a=t[2],o=t[3],s=t[4],l=t[5],u=t[6],c=t[7],h=t[8],d=n[0],f=n[1];return e[0]=r,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=l,e[6]=d*r+f*o+u,e[7]=d*i+f*s+c,e[8]=d*a+f*l+h,e}function uD(e,t,n){var r=t[0],i=t[1],a=t[2],o=t[3],s=t[4],l=t[5],u=t[6],c=t[7],h=t[8],d=Math.sin(n),f=Math.cos(n);return e[0]=f*r+d*o,e[1]=f*i+d*s,e[2]=f*a+d*l,e[3]=f*o-d*r,e[4]=f*s-d*i,e[5]=f*l-d*a,e[6]=u,e[7]=c,e[8]=h,e}function uB(e,t,n){var r=n[0],i=n[1];return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=i*t[3],e[4]=i*t[4],e[5]=i*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}Math.hypot||(Math.hypot=function(){for(var e=0,t=arguments.length;t--;)e+=arguments[t]*arguments[t];return Math.sqrt(e)});var uA={SCREEN:{name:"screen",screen:!0},PICKING:{name:"picking",picking:!0}},u_=ej({texRows:24}),uM=ej({collection:"default",getKey:null,drawElement:null,getBoundingBox:null,getRotation:null,getRotationPoint:null,getRotationOffset:null,isVisible:function(){return!0},getPadding:0}),uR=a(function e(t,n,r,a){i(this,e),this.debugID=Math.floor(1e4*Math.random()),this.r=t,this.texSize=n,this.texRows=r,this.texHeight=Math.floor(n/r),this.enableWrapping=!0,this.locked=!1,this.texture=null,this.needsBuffer=!0,this.freePointer={x:0,row:0},this.keyToLocation=new Map,this.canvas=a(t,n,n),this.scratch=a(t,n,this.texHeight,"scratch")},[{key:"lock",value:function(){this.locked=!0}},{key:"getKeys",value:function(){return new Set(this.keyToLocation.keys())}},{key:"getScale",value:function(e){var t=e.w,n=e.h,r=this.texHeight,i=this.texSize,a=r/n,o=t*a,s=n*a;return o>i&&(a=i/t,o=t*a,s=n*a),{scale:a,texW:o,texH:s}}},{key:"draw",value:function(e,t,n){var r,i,a,o,s,l,u,c=this;if(this.locked)throw Error("can't draw, atlas is locked");var h=this.texSize,d=this.texRows,f=this.texHeight,p=this.getScale(t),g=p.scale,v=p.texW,y=p.texH,b=[null,null],x=function(e,r){if(n&&r){var i=r.context,a=e.x,o=f*e.row;i.save(),i.translate(a,o),i.scale(g,g),n(i,t),i.restore()}},w=function(){x(c.freePointer,c.canvas),b[0]={x:c.freePointer.x,y:c.freePointer.row*f,w:v,h:y},b[1]={x:c.freePointer.x+v,y:c.freePointer.row*f,w:0,h:y},c.freePointer.x+=v,c.freePointer.x==h&&(c.freePointer.x=0,c.freePointer.row++)},E=function(){c.freePointer.x=0,c.freePointer.row++};if(this.freePointer.x+v<=h)w();else{if(this.freePointer.row>=d-1)return!1;this.freePointer.x===h?(E(),w()):this.enableWrapping?(r=c.scratch,i=c.canvas,r.clear(),x({x:0,row:0},r),o=v-(a=h-c.freePointer.x),s=c.freePointer.x,l=c.freePointer.row*f,i.context.drawImage(r,0,0,a,f,s,l,a,f),b[0]={x:s,y:l,w:a,h:y},u=(c.freePointer.row+1)*f,i&&i.context.drawImage(r,a,0,o,f,0,u,o,f),b[1]={x:0,y:u,w:o,h:y},c.freePointer.x=o,c.freePointer.row++):(E(),w())}return this.keyToLocation.set(e,b),this.needsBuffer=!0,b}},{key:"getOffsets",value:function(e){return this.keyToLocation.get(e)}},{key:"isEmpty",value:function(){return 0===this.freePointer.x&&0===this.freePointer.row}},{key:"canFit",value:function(e){if(this.locked)return!1;var t=this.texSize,n=this.texRows,r=this.getScale(e).texW;return!(this.freePointer.x+r>t)||this.freePointer.row1&&void 0!==arguments[1]?arguments[1]:{},r=n.forceRedraw,i=void 0!==r&&r,a=n.filterEle,s=void 0===a?function(){return!0}:a,l=n.filterType,u=void 0===l?function(){return!0}:l,c=!1,h=!1,d=o(e);try{for(d.s();!(t=d.n()).done;){var f=t.value;if(s(f)){var p,g=o(this.renderTypes.values());try{for(g.s();!(p=g.n()).done;){var v=p.value,y=v.type;if(u(y)){var b=v.getKey(f),x=this.collections.get(v.collection);if(i)x.markKeyForGC(b),h=!0;else{var w=v.getID?v.getID(f):f.id(),E=this._key(y,w),T=this.typeAndIdToKey.get(E);void 0!==T&&T!==b&&(this.typeAndIdToKey.delete(E),x.markKeyForGC(T),c=!0)}}}}catch(e){g.e(e)}finally{g.f()}}}}catch(e){d.e(e)}finally{d.f()}return h&&(this.gc(),c=!1),c}},{key:"gc",value:function(){var e,t=o(this.collections.values());try{for(t.s();!(e=t.n()).done;)e.value.gc()}catch(e){t.e(e)}finally{t.f()}}},{key:"getOrCreateAtlas",value:function(e,t,n){var r=this.renderTypes.get(t),i=r.getKey(e);n||(n=r.getBoundingBox(e));var a=this.collections.get(r.collection),o=!1,s=a.draw(i,n,function(t){r.drawElement(t,e,n,!0,!0),o=!0});if(o){var l=r.getID?r.getID(e):e.id(),u=this._key(t,l);this.typeAndIdToKey.set(u,i)}return s}},{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(e,t){if(this.batchAtlases.length===this.maxAtlasesPerBatch){var n=this.renderTypes.get(t),r=n.getKey(e),i=this.collections.get(n.collection).getAtlas(r);return!!i&&this.batchAtlases.includes(i)}return!0}},{key:"getAtlasIndexForBatch",value:function(e){var t=this.batchAtlases.indexOf(e);if(t<0){if(this.batchAtlases.length===this.maxAtlasesPerBatch)return;this.batchAtlases.push(e),t=this.batchAtlases.length-1}return t}},{key:"getIndexArray",value:function(){return Array.from({length:this.maxAtlasesPerBatch},function(e,t){return t})}},{key:"getAtlasInfo",value:function(e,t){var n=this.renderTypes.get(t),r=n.getBoundingBox(e),i=this.getOrCreateAtlas(e,t,r),a=this.getAtlasIndexForBatch(i);if(void 0!==a){var o=n.getKey(e),s=l(i.getOffsets(o),2);return{index:a,tex1:s[0],tex2:s[1],bb:r}}}},{key:"setTransformMatrix",value:function(e,t,n,r){var i=!(arguments.length>4)||void 0===arguments[4]||arguments[4],a=this.getRenderTypeOpts(n),o=a.getPadding?a.getPadding(e):0;if(r){var s=r.bb,l=r.tex1,u=r.tex2,c=l.w/(l.w+u.w);i||(c=1-c);var h=this.getAdjustedBB(s,o,i,c);this._applyTransformMatrix(t,h,a,e)}else{var d=a.getBoundingBox(e),f=this.getAdjustedBB(d,o,!0,1);this._applyTransformMatrix(t,f,a,e)}}},{key:"_applyTransformMatrix",value:function(e,t,n,r){uP(e);var i,a,o=n.getRotation?n.getRotation(r):0;if(0!==o){var s=n.getRotationPoint(r);uS(e,e,[s.x,s.y]),uD(e,e,o);var l=n.getRotationOffset(r);i=l.x+t.xOffset,a=l.y}else i=t.x1,a=t.y1;uS(e,e,[i,a]),uB(e,e,[t.w,t.h])}},{key:"getAdjustedBB",value:function(e,t,n,r){var i=e.x1,a=e.y1,o=e.w,s=e.h;t&&(i-=t,a-=t,o+=2*t,s+=2*t);var l=0,u=o*r;return n&&r<1?o=u:!n&&r<1&&(i+=l=o-u,o=u),{x1:i,y1:a,w:o,h:s,xOffset:l}}},{key:"getDebugInfo",value:function(){var e,t=[],n=o(this.collections);try{for(n.s();!(e=n.n()).done;){var r=l(e.value,2),i=r[0],a=r[1].getCounts(),s=a.keyCount,u=a.atlasCount;t.push({type:i,keyCount:s,atlasCount:u})}}catch(e){n.e(e)}finally{n.f()}return t}}]),uL=a(function e(t,n,r){i(this,e),this.r=t,this.gl=n,this.maxInstances=r.webglBatchSize,this.atlasSize=r.webglTexSize,this.bgColor=r.bgColor,this.debug=r.webglDebug,this.batchDebugInfo=[],r.enableWrapping=!0,r.createTextureCanvas=uy,this.atlasManager=new uN(t,r),this.program=this.createShaderProgram(uA.SCREEN),this.pickingProgram=this.createShaderProgram(uA.PICKING),this.vao=this.createVAO()},[{key:"addAtlasCollection",value:function(e,t){this.atlasManager.addAtlasCollection(e,t)}},{key:"addAtlasRenderType",value:function(e,t){this.atlasManager.addRenderType(e,t)}},{key:"invalidate",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.type,r=this.atlasManager;return n?r.invalidate(e,{filterType:function(e){return e===n},forceRedraw:!0}):r.invalidate(e)}},{key:"gc",value:function(){this.atlasManager.gc()}},{key:"createShaderProgram",value:function(e){var t=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; \n\n in mat3 aTransform;\n\n // what are we rendering?\n in int aVertType;\n\n // for picking\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 float aLineWidth;\n in vec4 aColor;\n\n out vec2 vTexCoord;\n out vec4 vColor;\n flat out int vAtlasId;\n flat out vec4 vIndex;\n flat out int vVertType;\n\n void main(void) {\n int vid = gl_VertexID;\n vec2 position = aPosition;\n\n if(aVertType == ".concat(0,") {\n float texX = aTex.x;\n float texY = aTex.y;\n float texW = aTex.z;\n float texH = aTex.w;\n\n int vid = gl_VertexID;\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,") {\n gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0);\n vColor = aColor;\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 vec2 xBasis = target - source;\n vec2 yBasis = normalize(vec2(-xBasis.y, xBasis.x));\n vec2 point = source + xBasis * position.x + yBasis * aLineWidth * 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 = pointA;\n vec2 p1 = pointB;\n vec2 p2 = pointC;\n vec2 pos = position;\n if(position.x == 1.0) {\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;\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 vIndex = aIndex;\n vVertType = aVertType;\n }\n "),r=this.atlasManager.getIndexArray(),i=function(e,t,n){var r=uv(e,e.VERTEX_SHADER,t),i=uv(e,e.FRAGMENT_SHADER,n),a=e.createProgram();if(e.attachShader(a,r),e.attachShader(a,i),e.linkProgram(a),!e.getProgramParameter(a,e.LINK_STATUS))throw Error("Could not initialize shaders");return a}(t,n,"#version 300 es\n precision highp float;\n\n // define texture unit for each node in the batch\n ".concat(r.map(function(e){return"uniform sampler2D uTexture".concat(e,";")}).join("\n "),"\n\n uniform vec4 uBGColor;\n\n in vec2 vTexCoord;\n in vec4 vColor;\n flat in int vAtlasId;\n flat in vec4 vIndex;\n flat in int vVertType;\n\n out vec4 outColor;\n\n void main(void) {\n if(vVertType == ").concat(0,") {\n ").concat(r.map(function(e){return"if(vAtlasId == ".concat(e,") outColor = texture(uTexture").concat(e,", vTexCoord);")}).join("\n else "),"\n } else if(vVertType == ").concat(3,") {\n // blend arrow color with background (using premultiplied alpha)\n outColor.rgb = vColor.rgb + (uBGColor.rgb * (1.0 - vColor.a)); \n outColor.a = 1.0; // make opaque, masks out line under arrow\n } else {\n outColor = vColor;\n }\n\n ").concat(e.picking?"if(outColor.a == 0.0) discard;\n else outColor = vIndex;":"","\n }\n "));i.aPosition=t.getAttribLocation(i,"aPosition"),i.aIndex=t.getAttribLocation(i,"aIndex"),i.aVertType=t.getAttribLocation(i,"aVertType"),i.aTransform=t.getAttribLocation(i,"aTransform"),i.aAtlasId=t.getAttribLocation(i,"aAtlasId"),i.aTex=t.getAttribLocation(i,"aTex"),i.aPointAPointB=t.getAttribLocation(i,"aPointAPointB"),i.aPointCPointD=t.getAttribLocation(i,"aPointCPointD"),i.aLineWidth=t.getAttribLocation(i,"aLineWidth"),i.aColor=t.getAttribLocation(i,"aColor"),i.uPanZoomMatrix=t.getUniformLocation(i,"uPanZoomMatrix"),i.uAtlasSize=t.getUniformLocation(i,"uAtlasSize"),i.uBGColor=t.getUniformLocation(i,"uBGColor"),i.uTextures=[];for(var a=0;a1&&void 0!==arguments[1]?arguments[1]:uA.SCREEN;this.panZoomMatrix=e,this.renderTarget=t,this.batchDebugInfo=[],this.wrappedCount=0,this.rectangleCount=0,this.startBatch()}},{key:"startBatch",value:function(){this.instanceCount=0,this.atlasManager.startBatch()}},{key:"endFrame",value:function(){this.endBatch()}},{key:"getTempMatrix",value:function(){return this.tempMatrix=this.tempMatrix||uC()}},{key:"drawTexture",value:function(e,t,n){var r=this.atlasManager;if(e.visible()&&r.getRenderTypeOpts(n).isVisible(e)){r.canAddToCurrentBatch(e,n)||this.endBatch(),this.instanceCount+1>=this.maxInstances&&this.endBatch();var i=this.instanceCount;this.vertTypeBuffer.getView(i)[0]=0,ux(t,this.indexBuffer.getView(i));var a=r.getAtlasInfo(e,n),o=a.index,s=a.tex1,l=a.tex2;l.w>0&&this.wrappedCount++;for(var u=!0,c=0,h=[s,l];c=this.maxInstances&&this.endBatch()}}},{key:"drawSimpleRectangle",value:function(e,t,n){if(e.visible()){var r=this.atlasManager,i=this.instanceCount;this.vertTypeBuffer.getView(i)[0]=4,ux(t,this.indexBuffer.getView(i)),ub(e.pstyle("background-color").value,e.pstyle("background-opacity").value,this.colorBuffer.getView(i));var a=this.transformBuffer.getMatrixView(i);r.setTransformMatrix(e,a,n),this.rectangleCount++,this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}},{key:"drawEdgeArrow",value:function(e,t,n){if(e.visible()){var r,i,a,o=e._private.rscratch;if(("source"===n?(r=o.arrowStartX,i=o.arrowStartY,a=o.srcArrowAngle):(r=o.arrowEndX,i=o.arrowEndY,a=o.tgtArrowAngle),!(isNaN(r)||null==r||isNaN(i)||null==i||isNaN(a))&&null!=a)&&"none"!==e.pstyle(n+"-arrow-shape").value){var s=e.pstyle(n+"-arrow-color").value,l=e.pstyle("opacity").value,u=e.pstyle("line-opacity").value,c=e.pstyle("width").pfValue,h=e.pstyle("arrow-scale").value,d=this.r.getArrowWidth(c,h),f=this.instanceCount,p=this.transformBuffer.getMatrixView(f);uP(p),uS(p,p,[r,i]),uB(p,p,[d,d]),uD(p,p,a),this.vertTypeBuffer.getView(f)[0]=3,ux(t,this.indexBuffer.getView(f)),ub(s,l*u,this.colorBuffer.getView(f)),this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}}}},{key:"drawEdgeLine",value:function(e,t){if(e.visible()){var n=this.getEdgePoints(e);if(n){var r=e.pstyle("opacity").value,i=e.pstyle("line-opacity").value,a=e.pstyle("width").pfValue,o=e.pstyle("line-color").value,s=r*i;if(n.length/2+this.instanceCount>this.maxInstances&&this.endBatch(),4==n.length){var l=this.instanceCount;this.vertTypeBuffer.getView(l)[0]=1,ux(t,this.indexBuffer.getView(l)),ub(o,s,this.colorBuffer.getView(l)),this.lineWidthBuffer.getView(l)[0]=a;var u=this.pointAPointBBuffer.getView(l);u[0]=n[0],u[1]=n[1],u[2]=n[2],u[3]=n[3],this.instanceCount++,this.instanceCount>=this.maxInstances&&this.endBatch()}else for(var c=0;c=this.maxInstances&&this.endBatch()}}}}},{key:"getEdgePoints",value:function(e){var t=e._private.rscratch;if(!(t.badLine||null==t.allpts||isNaN(t.allpts[0]))){var n=t.allpts;if(4==n.length)return n;var r=this.getNumSegments(e);return this.getCurveSegmentPoints(n,r)}}},{key:"getNumSegments",value:function(e){return Math.min(15,this.maxInstances)}},{key:"getCurveSegmentPoints",value:function(e,t){if(4==e.length)return e;for(var n=Array((t+1)*2),r=0;r<=t;r++)if(0==r)n[0]=e[0],n[1]=e[1];else if(r==t)n[2*r]=e[e.length-2],n[2*r+1]=e[e.length-1];else{var i=r/t;this.setCurvePoint(e,i,n,2*r)}return n}},{key:"setCurvePoint",value:function(e,t,n,r){if(e.length<=2)n[r]=e[0],n[r+1]=e[1];else{for(var i=Array(e.length-2),a=0;a0}},{key:"getStyle",value:function(e,t){return{opacity:t.pstyle("".concat(e,"-opacity")).value,color:t.pstyle("".concat(e,"-color")).value,shape:t.pstyle("".concat(e,"-shape")).value}}},{key:"getPadding",value:function(e,t){return t.pstyle("".concat(e,"-padding")).pfValue}},{key:"draw",value:function(e,t,n,r){if(this.isVisible(e,n)){var i=this.r,a=r.w,o=r.h,s=a/2,l=o/2,u=this.getStyle(e,n),c=u.shape,h=u.color,d=u.opacity;t.save(),t.fillStyle=uO(h,d),"round-rectangle"===c||"roundrectangle"===c?i.drawRoundRectanglePath(t,s,l,a,o,"auto"):"ellipse"===c&&i.drawEllipsePath(t,s,l,a,o),t.fill(),t.restore()}}}]),uF={};function uV(e,t){var n=e.canvasWidth,r=e.canvasHeight,i=um(e),a=i.pan,o=i.zoom;t.setTransform(1,0,0,1,0,0),t.clearRect(0,0,n,r),t.translate(a.x,a.y),t.scale(o,o)}function uX(e,t,n){var r=e.drawing;(t+=1,n.isNode())?((r.drawTexture(n,t,"node-underlay"),"rectangle"===n.pstyle("shape").value&&"solid"===n.pstyle("background-fill").value&&0===n.pstyle("border-width").pfValue&&"none"===n.pstyle("background-image").strValue)?r.drawSimpleRectangle(n,t,"node-body"):r.drawTexture(n,t,"node-body"),r.drawTexture(n,t,"label"),r.drawTexture(n,t,"node-overlay")):(r.drawEdgeLine(n,t),r.drawEdgeArrow(n,t,"source"),r.drawEdgeArrow(n,t,"target"),r.drawTexture(n,t,"label"),r.drawTexture(n,t,"edge-source-label"),r.drawTexture(n,t,"edge-target-label"))}function uj(e,t,n){e.webglDebug&&(H=performance.now());var r=e.drawing,i=0;if(n.screen&&e.data.canvasNeedsRedraw[e.SELECT_BOX]&&e.drawSelectionRectangle(t,function(t){return uV(e,t)}),e.data.canvasNeedsRedraw[e.NODE]||n.picking){var a,s,l,u,c,h,d,f,p,g,v,y,b,x,w,E,T,k,C,P,S,D,B,A,_,M,R,I,N,L,O,z=e.data.contexts[e.WEBGL];n.screen?(z.clearColor(0,0,0,0),z.enable(z.BLEND),z.blendFunc(z.ONE,z.ONE_MINUS_SRC_ALPHA)):z.disable(z.BLEND),z.clear(z.COLOR_BUFFER_BIT|z.DEPTH_BUFFER_BIT),z.viewport(0,0,z.canvas.width,z.canvas.height);var F=(a=e.canvasWidth,s=e.canvasHeight,u=(l=um(e)).pan,c=l.zoom,uS(h=uC(),h,[u.x,u.y]),uB(h,h,[c,c]),f=d=uC(),f[0]=2/a,f[1]=0,f[2]=0,f[3]=0,f[4]=-2/s,f[5]=0,f[6]=-1,f[7]=1,f[8]=1,g=p=uC(),v=d[0],y=d[1],b=d[2],x=d[3],w=d[4],E=d[5],T=d[6],k=d[7],C=d[8],P=h[0],S=h[1],D=h[2],B=h[3],A=h[4],_=h[5],M=h[6],R=h[7],I=h[8],g[0]=P*v+S*x+D*T,g[1]=P*y+S*w+D*k,g[2]=P*b+S*E+D*C,g[3]=B*v+A*x+_*T,g[4]=B*y+A*w+_*k,g[5]=B*b+A*E+_*C,g[6]=M*v+R*x+I*T,g[7]=M*y+R*w+I*k,g[8]=M*b+R*E+I*C,p),V=e.getCachedZSortedEles();if(i=V.length,r.startFrame(F,n),n.screen){for(var X=0;X0&&(n|=d.drawing.invalidate(t)),n&&y()}),i=(r=d).render,r.render=function(e){e=e||{};var t,n,a,o,s=r.cy;r.webgl&&(s.zoom()>7.99?((n=(t=r).data.contexts[t.WEBGL]).clear(n.COLOR_BUFFER_BIT|n.DEPTH_BUFFER_BIT),i.call(r,e)):(a=r,(o=function(e){e.save(),e.setTransform(1,0,0,1,0,0),e.clearRect(0,0,a.canvasWidth,a.canvasHeight),e.restore()})(a.data.contexts[a.NODE]),o(a.data.contexts[a.DRAG]),uj(r,e,uA.SCREEN)))},a=r.matchCanvasSize,r.matchCanvasSize=function(e){a.call(r,e),r.pickingFrameBuffer.setFramebufferAttachmentSizes(r.canvasWidth,r.canvasHeight),r.pickingFrameBuffer.needsDraw=!0},r.findNearestElements=function(e,t,n,i){return function(e,t,n){var r,i,a,s=function(e,t,n,r,i){var a=um(e),o=a.pan,s=a.zoom,u=l((v=t*s+o.x,y=n*s+o.y,[v,y=Math.round(e.canvasHeight-y)]),2),c=u[0],h=u[1],d=e.data.contexts[e.WEBGL];d.bindFramebuffer(d.FRAMEBUFFER,e.pickingFrameBuffer),e.pickingFrameBuffer.needsDraw&&(d.viewport(0,0,d.canvas.width,d.canvas.height),uj(e,null,uA.PICKING),e.pickingFrameBuffer.needsDraw=!1);var f=new Uint8Array(144);d.readPixels(c-3,h-3,6,6,d.RGBA,d.UNSIGNED_BYTE,f),d.bindFramebuffer(d.FRAMEBUFFER,null);for(var p=new Set,g=0;g<36;g++){var v,y,b,x=(b=f.slice(4*g,4*g+4))[0]+(b[1]<<8)+(b[2]<<16)+(b[3]<<24)-1;x>=0&&p.add(x)}return p}(e,t,n),u=e.getCachedZSortedEles(),c=o(s);try{for(c.s();!(a=c.n()).done;){var h=u[a.value];if(!r&&h.isNode()&&(r=h),!i&&h.isEdge()&&(i=h),r&&i)break}}catch(e){c.e(e)}finally{c.f()}return[r,i].filter(Boolean)}(r,e,t)},s=r.invalidateCachedZSortedEles,r.invalidateCachedZSortedEles=function(){s.call(r),r.pickingFrameBuffer.needsDraw=!0},u=r.notify,r.notify=function(e,t){u.call(r,e,t),"viewport"===e||"bounds"===e?r.pickingFrameBuffer.needsDraw=!0:"background"===e&&r.drawing.invalidate(t,{type:"node-body"})}};var uY={};uY.drawPolygonPath=function(e,t,n,r,i,a){var o=r/2,s=i/2;e.beginPath&&e.beginPath(),e.moveTo(t+o*a[0],n+s*a[1]);for(var l=1;l0&&a>0){d.clearRect(0,0,i,a),d.globalCompositeOperation="source-over";var f=this.getCachedZSortedEles();if(e.full)d.translate(-n.x1*l,-n.y1*l),d.scale(l,l),this.drawElements(d,f),d.scale(1/l,1/l),d.translate(n.x1*l,n.y1*l);else{var p=t.pan(),g={x:p.x*l,y:p.y*l};l*=t.zoom(),d.translate(g.x,g.y),d.scale(l,l),this.drawElements(d,f),d.scale(1/l,1/l),d.translate(-g.x,-g.y)}e.bg&&(d.globalCompositeOperation="destination-over",d.fillStyle=e.bg,d.rect(0,0,i,a),d.fill())}return h},uG.png=function(e){return uZ(e,this.bufferCanvasImage(e),"image/png")},uG.jpg=function(e){return uZ(e,this.bufferCanvasImage(e),"image/jpeg")};var u$={};u$.nodeShapeImpl=function(e,t,n,r,i,a,o,s){switch(e){case"ellipse":return this.drawEllipsePath(t,n,r,i,a);case"polygon":return this.drawPolygonPath(t,n,r,i,a,o);case"round-polygon":return this.drawRoundPolygonPath(t,n,r,i,a,o,s);case"roundrectangle":case"round-rectangle":return this.drawRoundRectanglePath(t,n,r,i,a,s);case"cutrectangle":case"cut-rectangle":return this.drawCutRectanglePath(t,n,r,i,a,o,s);case"bottomroundrectangle":case"bottom-round-rectangle":return this.drawBottomRoundRectanglePath(t,n,r,i,a,s);case"barrel":return this.drawBarrelPath(t,n,r,i,a)}};var uQ=uJ.prototype;function uJ(e){var t=this,n=t.cy.window().document;e.webgl&&(uQ.CANVAS_LAYERS=t.CANVAS_LAYERS=4,console.log("webgl rendering enabled")),t.data={canvases:Array(uQ.CANVAS_LAYERS),contexts:Array(uQ.CANVAS_LAYERS),canvasNeedsRedraw:Array(uQ.CANVAS_LAYERS),bufferCanvases:Array(uQ.BUFFER_COUNT),bufferContexts:Array(uQ.CANVAS_LAYERS)};var r="-webkit-tap-highlight-color",i="rgba(0,0,0,0)";t.data.canvasContainer=n.createElement("div");var a=t.data.canvasContainer.style;t.data.canvasContainer.style[r]=i,a.position="relative",a.zIndex="0",a.overflow="hidden";var o=e.cy.container();o.appendChild(t.data.canvasContainer),o.style[r]=i;var s={"-webkit-user-select":"none","-moz-user-select":"-moz-none","user-select":"none","-webkit-tap-highlight-color":"rgba(0,0,0,0)","outline-style":"none"};E&&E.userAgent.match(/msie|trident|edge/i)&&(s["-ms-touch-action"]="none",s["touch-action"]="none");for(var l=0;l