/*! For license information please see 8786.a2bc3dfc1ea13c04ba94.js.LICENSE.txt */ "use strict";(self["webpackChunk_jupyterlab_application_top"]=self["webpackChunk_jupyterlab_application_top"]||[]).push([[8786],{76405:(e,t,r)=>{r.d(t,{A:()=>Up});function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=Array(t);r=e.length?{done:true}:{done:false,value:e[a++]}},e:function(e){throw e},f:n}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=true,s=false;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=true,i=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw i}}}}function v(e,t,r){return(t=m(t))in e?Object.defineProperty(e,t,{value:r,enumerable:true,configurable:true,writable:true}):e[t]=r,e}function f(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function c(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var a,n,i,o,s=[],l=true,u=false;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(a=i.call(r)).done)&&(s.push(a.value),s.length!==t);l=!0);}catch(e){u=true,n=e}finally{try{if(!l&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw n}}return s}}function d(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function h(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function p(e,t){return n(e)||c(e,t)||x(e,t)||d()}function g(e){return i(e)||f(e)||x(e)||h()}function y(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(undefined!==r){var a=r.call(e,t);if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}function m(e){var t=y(e,"string");return"symbol"==typeof t?t:t+""}function b(e){"@babel/helpers - typeof";return b="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},b(e)}function x(e,t){if(e){if("string"==typeof e)return a(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(e,t):undefined}}var w=typeof window==="undefined"?null:window;var E=w?w.navigator:null;w?w.document:null;var T=b("");var k=b({});var C=b((function(){}));var P=typeof HTMLElement==="undefined"?"undefined":b(HTMLElement);var S=function e(t){return t&&t.instanceString&&B(t.instanceString)?t.instanceString():null};var D=function e(t){return t!=null&&b(t)==T};var B=function e(t){return t!=null&&b(t)===C};var A=function e(t){return!L(t)&&(Array.isArray?Array.isArray(t):t!=null&&t instanceof Array)};var _=function e(t){return t!=null&&b(t)===k&&!A(t)&&t.constructor===Object};var M=function e(t){return t!=null&&b(t)===k};var I=function e(t){return t!=null&&b(t)===b(1)&&!isNaN(t)};var R=function e(t){return I(t)&&Math.floor(t)===t};var N=function e(t){if("undefined"===P){return undefined}else{return null!=t&&t instanceof HTMLElement}};var L=function e(t){return O(t)||z(t)};var O=function e(t){return S(t)==="collection"&&t._private.single};var z=function e(t){return S(t)==="collection"&&!t._private.single};var F=function e(t){return S(t)==="core"};var V=function e(t){return S(t)==="stylesheet"};var j=function e(t){return S(t)==="event"};var X=function e(t){if(t===undefined||t===null){return true}else if(t===""||t.match(/^\s+$/)){return true}return false};var Y=function e(t){if(typeof HTMLElement==="undefined"){return false}else{return t instanceof HTMLElement}};var q=function e(t){return _(t)&&I(t.x1)&&I(t.x2)&&I(t.y1)&&I(t.y2)};var W=function e(t){return M(t)&&B(t.then)};var U=function e(){return E&&E.userAgent.match(/msie|trident|edge/i)};var G=function e(t,r){if(!r){r=function e(){if(arguments.length===1){return arguments[0]}else if(arguments.length===0){return"undefined"}var t=[];for(var r=0;rr){return 1}else{return 0}};var oe=function e(t,r){return-1*ie(t,r)};var se=Object.assign!=null?Object.assign.bind(Object):function(e){var t=arguments;for(var r=1;r1)r-=1;if(r<1/6)return e+(t-e)*6*r;if(r<1/2)return t;if(r<2/3)return e+(t-e)*(2/3-r)*6;return e}var f=new RegExp("^"+te+"$").exec(t);if(f){a=parseInt(f[1]);if(a<0){a=(360- -1*a%360)%360}else if(a>360){a=a%360}a/=360;n=parseFloat(f[2]);if(n<0||n>100){return}n=n/100;i=parseFloat(f[3]);if(i<0||i>100){return}i=i/100;o=f[4];if(o!==undefined){o=parseFloat(o);if(o<0||o>1){return}}if(n===0){s=l=u=Math.round(i*255)}else{var c=i<.5?i*(1+n):i+n-i*n;var d=2*i-c;s=Math.round(255*v(d,c,a+1/3));l=Math.round(255*v(d,c,a));u=Math.round(255*v(d,c,a-1/3))}r=[s,l,u,o]}return r};var ve=function e(t){var r;var a=new RegExp("^"+J+"$").exec(t);if(a){r=[];var n=[];for(var i=1;i<=3;i++){var o=a[i];if(o[o.length-1]==="%"){n[i]=true}o=parseFloat(o);if(n[i]){o=o/100*255}if(o<0||o>255){return}r.push(Math.floor(o))}var s=n[1]||n[2]||n[3];var l=n[1]&&n[2]&&n[3];if(s&&!l){return}var u=a[4];if(u!==undefined){u=parseFloat(u);if(u<0||u>1){return}r.push(u)}}return r};var fe=function e(t){return de[t.toLowerCase()]};var ce=function e(t){return(A(t)?t:null)||fe(t)||le(t)||ve(t)||ue(t)};var de={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]};var he=function e(t){var r=t.map;var a=t.keys;var n=a.length;for(var i=0;i=s||t<0||y&&r>=f}function T(){var e=t();if(E(e)){return k(e)}d=setTimeout(T,w(e))}function k(e){d=undefined;if(m&&u){return b(e)}u=v=undefined;return c}function C(){if(d!==undefined){clearTimeout(d)}p=0;u=h=v=d=undefined}function P(){return d===undefined?c:k(t())}function S(){var e=t(),r=E(e);u=arguments;v=this;h=e;if(r){if(d===undefined){return x(h)}if(y){clearTimeout(d);d=setTimeout(T,s);return b(h)}}if(d===undefined){d=setTimeout(T,s)}return c}S.cancel=C;S.flush=P;return S}at=o;return at}var ot=it();var st=ye(ot);var lt=w?w.performance:null;var ut=lt&<.now?function(){return lt.now()}:function(){return Date.now()};var vt=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){if(e){setTimeout((function(){e(ut())}),1e3/60)}}}();var ft=function e(t){return vt(t)};var ct=ut;var dt=9261;var ht=65599;var pt=5381;var gt=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:dt;var a=r;var n;for(;;){n=t.next();if(n.done){break}a=a*ht+n.value|0}return a};var yt=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:dt;return r*ht+t|0};var mt=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:pt;return(r<<5)+r+t|0};var bt=function e(t,r){return t*2097152+r};var xt=function e(t){return t[0]*2097152+t[1]};var wt=function e(t,r){return[yt(t[0],r[0]),mt(t[1],r[1])]};var Et=function e(t,r){var a={value:0,done:false};var n=0;var i=t.length;var o={next:function e(){if(n=0;n--){if(t[n]===r){t.splice(n,1)}}};var Wt=function e(t){t.splice(0,t.length)};var Ut=function e(t,r){for(var a=0;a2&&arguments[2]!==undefined?arguments[2]:true;if(t===undefined||r===undefined||!F(t)){Rt("An element must have a core reference and parameters set");return}var n=r.group;if(n==null){if(r.data&&r.data.source!=null&&r.data.target!=null){n="edges"}else{n="nodes"}}if(n!=="nodes"&&n!=="edges"){Rt("An element must be of type `nodes` or `edges`; you specified `"+n+"`");return}this.length=1;this[0]=this;var i=this._private={cy:t,single:true,data:r.data||{},position:r.position||{x:0,y:0},autoWidth:undefined,autoHeight:undefined,autoPadding:undefined,compoundBoundsClean:false,listeners:[],group:n,style:{},rstyle:{},styleCxts:[],styleKeys:{},removed:true,selected:r.selected?true:false,selectable:r.selectable===undefined?true:r.selectable?true:false,locked:r.locked?true:false,grabbed:false,grabbable:r.grabbable===undefined?true:r.grabbable?true:false,pannable:r.pannable===undefined?n==="edges"?true:false:r.pannable?true:false,active:false,classes:new Jt,animation:{current:[],queue:[]},rscratch:{},scratch:r.scratch||{},edges:[],children:[],parent:r.parent&&r.parent.isNode()?r.parent:null,traversalCache:{},backgrounding:false,bbCache:null,bbCacheShift:{x:0,y:0},bodyBounds:null,overlayBounds:null,labelBounds:{all:null,source:null,target:null,main:null},arrowBounds:{source:null,target:null,"mid-source":null,"mid-target":null}};if(i.position.x==null){i.position.x=0}if(i.position.y==null){i.position.y=0}if(r.renderedPosition){var o=r.renderedPosition;var s=t.pan();var l=t.zoom();i.position={x:(o.x-s.x)/l,y:(o.y-s.y)/l}}var u=[];if(A(r.classes)){u=r.classes}else if(D(r.classes)){u=r.classes.split(/\s+/)}for(var v=0,f=u.length;vt){return 1}return 0};u=function(e,t,n,i,o){var s;if(n==null){n=0}if(o==null){o=r}if(n<0){throw new Error("lo must be non-negative")}if(i==null){i=e.length}while(nr;0<=r?t++:t--){u.push(t)}return u}.apply(this).reverse();l=[];for(i=0,o=s.length;ip;0<=p?++c:--c){g.push(i(e,a))}return g};h=function(e,t,a,n){var i,o,s;if(n==null){n=r}i=e[a];while(a>t){s=a-1>>1;o=e[s];if(n(i,o)<0){e[a]=o;a=s;continue}break}return e[a]=i};p=function(e,t,a){var n,i,o,s,l;if(a==null){a=r}i=e.length;l=t;o=e[t];n=2*t+1;while(n0){var E=m.pop();var T=g(E);var k=E.id();c[k]=T;if(T===Infinity){continue}var C=E.neighborhood().intersect(h);for(var P=0;P0){a.unshift(r);while(f[i]){var o=f[i];a.unshift(o.edge);a.unshift(o.node);n=o.node;i=n.id()}}return s.spawn(a)}}}};var hr={kruskal:function e(t){t=t||function(e){return 1};var r=this.byGroup(),a=r.nodes,n=r.edges;var i=a.length;var o=new Array(i);var s=a;var l=function e(t){for(var r=0;r0){w();T++;if(x===v){var k=[];var C=i;var P=v;var S=y[P];for(;;){k.unshift(C);if(S!=null){k.unshift(S)}C=g[P];if(C==null){break}P=C.id();S=y[P]}return{found:true,distance:f[x],path:this.spawn(k),steps:T}}d[x]=true;var D=b._private.edges;for(var B=0;BS){h[P]=S;m[P]=C;b[P]=w}if(!i){var B=C*v+k;if(!i&&h[B]>S){h[B]=S;m[B]=k;b[B]=w}}}for(var A=0;A1&&arguments[1]!==undefined?arguments[1]:o;var n=b(t);var i=[];var s=n;for(;;){if(s==null){return r.spawn()}var u=m(s),v=u.edge,f=u.pred;i.unshift(s[0]);if(s.same(a)&&i.length>0){break}if(v!=null){i.unshift(v)}s=f}return l.spawn(i)};for(var E=0;E=0;v--){var f=u[v];var c=f[1];var d=f[2];if(r[c]===s&&r[d]===l||r[c]===l&&r[d]===s){u.splice(v,1)}}for(var h=0;hn){var i=Math.floor(Math.random()*r.length);r=Er(i,t,r);a--}return r};var kr={kargerStein:function e(){var t=this;var r=this.byGroup(),a=r.nodes,n=r.edges;n.unmergeBy((function(e){return e.isLoop()}));var i=a.length;var o=n.length;var s=Math.ceil(Math.pow(Math.log(i)/Math.LN2,2));var l=Math.floor(i/wr);if(i<2){Rt("At least 2 nodes are required for Karger-Stein algorithm");return undefined}var u=[];for(var v=0;v1&&arguments[1]!==undefined?arguments[1]:0;var a=arguments.length>2&&arguments[2]!==undefined?arguments[2]:t.length;var e=Infinity;for(var n=r;n1&&arguments[1]!==undefined?arguments[1]:0;var a=arguments.length>2&&arguments[2]!==undefined?arguments[2]:t.length;var e=-Infinity;for(var n=r;n1&&arguments[1]!==undefined?arguments[1]:0;var a=arguments.length>2&&arguments[2]!==undefined?arguments[2]:t.length;var n=0;var i=0;for(var o=r;o1&&arguments[1]!==undefined?arguments[1]:0;var a=arguments.length>2&&arguments[2]!==undefined?arguments[2]:t.length;var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;var i=arguments.length>4&&arguments[4]!==undefined?arguments[4]:true;var o=arguments.length>5&&arguments[5]!==undefined?arguments[5]:true;if(n){t=t.slice(r,a)}else{if(a0){t.splice(0,r)}}var s=0;for(var l=t.length-1;l>=0;l--){var u=t[l];if(o){if(!isFinite(u)){t[l]=-Infinity;s++}}else{t.splice(l,1)}}if(i){t.sort((function(e,t){return e-t}))}var v=t.length;var f=Math.floor(v/2);if(v%2!==0){return t[f+1+s]}else{return(t[f-1+s]+t[f+s])/2}};var Ir=function e(t){return Math.PI*t/180};var Rr=function e(t,r){return Math.atan2(r,t)-Math.PI/2};var Nr=Math.log2||function(e){return Math.log(e)/Math.log(2)};var Lr=function e(t){if(t>0){return 1}else if(t<0){return-1}else{return 0}};var Or=function e(t,r){return Math.sqrt(zr(t,r))};var zr=function e(t,r){var a=r.x-t.x;var n=r.y-t.y;return a*a+n*n};var Fr=function e(t){var r=t.length;var a=0;for(var n=0;n=t.x1&&t.y2>=t.y1){return{x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,w:t.x2-t.x1,h:t.y2-t.y1}}else if(t.w!=null&&t.h!=null&&t.w>=0&&t.h>=0){return{x1:t.x1,y1:t.y1,x2:t.x1+t.w,y2:t.y1+t.h,w:t.w,h:t.h}}}};var Wr=function e(t){return{x1:t.x1,x2:t.x2,w:t.w,y1:t.y1,y2:t.y2,h:t.h}};var Ur=function e(t){t.x1=Infinity;t.y1=Infinity;t.x2=-Infinity;t.y2=-Infinity;t.w=0;t.h=0};var Gr=function e(t,r,a){return{x1:t.x1+r,x2:t.x2+r,y1:t.y1+a,y2:t.y2+a,w:t.w,h:t.h}};var Hr=function e(t,r){t.x1=Math.min(t.x1,r.x1);t.x2=Math.max(t.x2,r.x2);t.w=t.x2-t.x1;t.y1=Math.min(t.y1,r.y1);t.y2=Math.max(t.y2,r.y2);t.h=t.y2-t.y1};var Kr=function e(t,r,a){t.x1=Math.min(t.x1,r);t.x2=Math.max(t.x2,r);t.w=t.x2-t.x1;t.y1=Math.min(t.y1,a);t.y2=Math.max(t.y2,a);t.h=t.y2-t.y1};var Zr=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;t.x1-=r;t.x2+=r;t.y1-=r;t.y2+=r;t.w=t.x2-t.x1;t.h=t.y2-t.y1;return t};var $r=function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[0];var a,n,i,o;if(r.length===1){a=n=i=o=r[0]}else if(r.length===2){a=i=r[0];o=n=r[1]}else if(r.length===4){var s=p(r,4);a=s[0];n=s[1];i=s[2];o=s[3]}t.x1-=o;t.x2+=n;t.y1-=a;t.y2+=i;t.w=t.x2-t.x1;t.h=t.y2-t.y1;return t};var Qr=function e(t,r){t.x1=r.x1;t.y1=r.y1;t.x2=r.x2;t.y2=r.y2;t.w=t.x2-t.x1;t.h=t.y2-t.y1};var Jr=function e(t,r){if(t.x1>r.x2){return false}if(r.x1>t.x2){return false}if(t.x2r.y2){return false}if(r.y1>t.y2){return false}return true};var ea=function e(t,r,a){return t.x1<=r&&r<=t.x2&&t.y1<=a&&a<=t.y2};var ta=function e(t,r){return ea(t,r.x,r.y)};var ra=function e(t,r){return ea(t,r.x1,r.y1)&&ea(t,r.x2,r.y2)};var aa=function e(t,r,a,n,i,o,s){var l=arguments.length>7&&arguments[7]!==undefined?arguments[7]:"auto";var u=l==="auto"?Pa(i,o):l;var v=i/2;var f=o/2;u=Math.min(u,v,f);var c=u!==v,d=u!==f;var h;if(c){var p=a-v+u-s;var g=n-f-s;var y=a+v-u+s;var m=g;h=ba(t,r,a,n,p,g,y,m,false);if(h.length>0){return h}}if(d){var b=a+v+s;var x=n-f+u-s;var w=b;var E=n+f-u+s;h=ba(t,r,a,n,b,x,w,E,false);if(h.length>0){return h}}if(c){var T=a-v+u-s;var k=n+f+s;var C=a+v-u+s;var P=k;h=ba(t,r,a,n,T,k,C,P,false);if(h.length>0){return h}}if(d){var S=a-v-s;var D=n-f+u-s;var B=S;var A=n+f-u+s;h=ba(t,r,a,n,S,D,B,A,false);if(h.length>0){return h}}var _;{var M=a-v+u;var I=n-f+u;_=ya(t,r,a,n,M,I,u+s);if(_.length>0&&_[0]<=M&&_[1]<=I){return[_[0],_[1]]}}{var R=a+v-u;var N=n-f+u;_=ya(t,r,a,n,R,N,u+s);if(_.length>0&&_[0]>=R&&_[1]<=N){return[_[0],_[1]]}}{var L=a+v-u;var O=n+f-u;_=ya(t,r,a,n,L,O,u+s);if(_.length>0&&_[0]>=L&&_[1]>=O){return[_[0],_[1]]}}{var z=a-v+u;var F=n+f-u;_=ya(t,r,a,n,z,F,u+s);if(_.length>0&&_[0]<=z&&_[1]>=F){return[_[0],_[1]]}}return[]};var na=function e(t,r,a,n,i,o,s){var l=s;var u=Math.min(a,i);var v=Math.max(a,i);var f=Math.min(n,o);var c=Math.max(n,o);return u-l<=t&&t<=v+l&&f-l<=r&&r<=c+l};var ia=function e(t,r,a,n,i,o,s,l,u){var v={x1:Math.min(a,s,i)-u,x2:Math.max(a,s,i)+u,y1:Math.min(n,l,o)-u,y2:Math.max(n,l,o)+u};if(tv.x2||rv.y2){return false}else{return true}};var oa=function e(t,r,a,n){a-=n;var i=r*r-4*t*a;if(i<0){return[]}var o=Math.sqrt(i);var s=2*t;var l=(-r+o)/s;var u=(-r-o)/s;return[l,u]};var sa=function e(t,r,a,n,i){var o=1e-5;if(t===0){t=o}r/=t;a/=t;n/=t;var s,l,u,v,f,c,d,h;l=(3*a-r*r)/9;u=-(27*n)+r*(9*a-2*(r*r));u/=54;s=l*l*l+u*u;i[1]=0;d=r/3;if(s>0){f=u+Math.sqrt(s);f=f<0?-Math.pow(-f,1/3):Math.pow(f,1/3);c=u-Math.sqrt(s);c=c<0?-Math.pow(-c,1/3):Math.pow(c,1/3);i[0]=-d+f+c;d+=(f+c)/2;i[4]=i[2]=-d;d=Math.sqrt(3)*(-c+f)/2;i[3]=d;i[5]=-d;return}i[5]=i[3]=0;if(s===0){h=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);i[0]=-d+2*h;i[4]=i[2]=-(h+d);return}l=-l;v=l*l*l;v=Math.acos(u/Math.sqrt(v));h=2*Math.sqrt(l);i[0]=-d+h*Math.cos(v/3);i[2]=-d+h*Math.cos((v+2*Math.PI)/3);i[4]=-d+h*Math.cos((v+4*Math.PI)/3);return};var la=function e(t,r,a,n,i,o,s,l){var u=1*a*a-4*a*i+2*a*s+4*i*i-4*i*s+s*s+n*n-4*n*o+2*n*l+4*o*o-4*o*l+l*l;var v=1*9*a*i-3*a*a-3*a*s-6*i*i+3*i*s+9*n*o-3*n*n-3*n*l-6*o*o+3*o*l;var f=1*3*a*a-6*a*i+a*s-a*t+2*i*i+2*i*t-s*t+3*n*n-6*n*o+n*l-n*r+2*o*o+2*o*r-l*r;var c=1*a*i-a*a+a*t-i*t+n*o-n*n+n*r-o*r;var d=[];sa(u,v,f,c,d);var h=1e-7;var p=[];for(var g=0;g<6;g+=2){if(Math.abs(d[g+1])=0&&d[g]<=1){p.push(d[g])}}p.push(1);p.push(0);var y=-1;var m,b,x;for(var w=0;w=0){if(xu){return(t-i)*(t-i)+(r-o)*(r-o)}return v-c};var va=function e(t,r,a){var n,i,o,s;var l;var u=0;for(var v=0;v=t&&t>=o||n<=t&&t<=o){l=(t-n)/(o-n)*(s-i)+i;if(l>r){u++}}else{continue}}if(u%2===0){return false}else{return true}};var fa=function e(t,r,a,n,i,o,s,l,u){var v=new Array(a.length);var f;if(l[0]!=null){f=Math.atan(l[1]/l[0]);if(l[0]<0){f=f+Math.PI/2}else{f=-f-Math.PI/2}}else{f=l}var c=Math.cos(-f);var d=Math.sin(-f);for(var h=0;h0){var g=ha(v,-u);p=da(g)}else{p=v}return va(t,r,p)};var ca=function e(t,r,a,n,i,o,s,l){var u=new Array(a.length*2);for(var v=0;v=0&&g<=1){m.push(g)}if(y>=0&&y<=1){m.push(y)}if(m.length===0){return[]}var b=m[0]*l[0]+t;var x=m[0]*l[1]+r;if(m.length>1){if(m[0]==m[1]){return[b,x]}else{var w=m[1]*l[0]+t;var E=m[1]*l[1]+r;return[b,x,w,E]}}else{return[b,x]}};var ma=function e(t,r,a){if(r<=t&&t<=a||a<=t&&t<=r){return t}else if(t<=r&&r<=a||a<=r&&r<=t){return r}else{return a}};var ba=function e(t,r,a,n,i,o,s,l,u){var v=t-i;var f=a-t;var c=s-i;var d=r-o;var h=n-r;var p=l-o;var g=c*d-p*v;var y=f*d-h*v;var m=p*f-c*h;if(m!==0){var b=g/m;var x=y/m;var w=.001;var E=0-w;var T=1+w;if(E<=b&&b<=T&&E<=x&&x<=T){return[t+b*f,r+b*h]}else{if(!u){return[]}else{return[t+b*f,r+b*h]}}}else{if(g===0||y===0){if(ma(t,a,s)===s){return[s,l]}if(ma(t,a,i)===i){return[i,o]}if(ma(i,s,a)===a){return[a,n]}return[]}else{return[]}}};var xa=function e(t,r,a,n,i,o,s,l){var u=[];var v;var f=new Array(a.length);var c=true;if(o==null){c=false}var d;if(c){for(var h=0;h0){var p=ha(f,-l);d=da(p)}else{d=f}}else{d=a}var g,y,m,b;for(var x=0;x2){var h=[v[0],v[1]];var p=Math.pow(h[0]-t,2)+Math.pow(h[1]-r,2);for(var g=1;gv){v=r}},get:function e(t){return u[t]}};for(var c=0;c0){x=b.edgesTo(m)[0]}else{x=m.edgesTo(b)[0]}var w=n(x);m=m.id();if(v[m]>v[p]+w){v[m]=v[p]+w;if(c.nodes.indexOf(m)<0){c.push(m)}else{c.updateItem(m)}u[m]=0;a[m]=[]}if(v[m]==v[p]+w){u[m]=u[m]+u[p];a[m].push(p)}}}else{for(var E=0;E0){var P=r.pop();for(var S=0;S0){s.push(a[l])}}if(s.length!==0){i.push(n.collection(s))}}return i};var Ka=function e(t,r){for(var a=0;a5&&arguments[5]!==undefined?arguments[5]:Ja;var s=n;var l,u;for(var v=0;v=2){return on(t,r,a,0,rn,an)}else{return on(t,r,a,0,tn)}},squaredEuclidean:function e(t,r,a){return on(t,r,a,0,rn)},manhattan:function e(t,r,a){return on(t,r,a,0,tn)},max:function e(t,r,a){return on(t,r,a,-Infinity,nn)}};sn["squared-euclidean"]=sn["squaredEuclidean"];sn["squaredeuclidean"]=sn["squaredEuclidean"];function ln(e,t,r,a,n,i){var o;if(B(e)){o=e}else{o=sn[e]||sn.euclidean}if(t===0&&B(e)){return o(n,i)}else{return o(t,r,a,n,i)}}var un=Yt({k:2,m:2,sensitivityThreshold:1e-4,distance:"euclidean",maxIterations:10,attributes:[],testMode:false,testCentroids:null});var vn=function e(t){return un(t)};var fn=function e(t,r,a,n,i){var o=i!=="kMedoids";var s=o?function(e){return a[e]}:function(e){return n[e](a)};var l=function e(t){return n[t](r)};var u=a;var v=r;return ln(t,n.length,s,l,u,v)};var cn=function e(t,r,a){var n=a.length;var i=new Array(n);var o=new Array(n);var s=new Array(r);var l=null;for(var u=0;ua){return false}}}return true};var yn=function e(t,r,a){for(var n=0;ns){s=r[u][v];l=v}}i[l].push(t[u])}for(var f=0;f=i.threshold||i.mode==="dendrogram"&&t.length===1){return false}var h=r[o];var p=r[n[o]];var g;if(i.mode==="dendrogram"){g={left:h,right:p,key:h.key}}else{g={value:h.value.concat(p.value),key:h.key}}t[h.index]=g;t.splice(p.index,1);r[h.key]=g;for(var y=0;ya[p.key][m.key]){l=a[p.key][m.key]}}else if(i.linkage==="max"){l=a[h.key][m.key];if(a[h.key][m.key]0){n.push(i)}}return n};var jn=function e(t,r,a){var n=[];for(var i=0;is){o=u;s=r[i*t+u]}}if(o>0){n.push(o)}}for(var v=0;vu){l=v;u=f}}a[i]=o[l]}n=jn(t,r,a);return n};var Yn=function e(t){var r=this.cy();var a=this.nodes();var n=On(t);var i={};for(var o=0;o=S){D=S;S=A;B=_}else if(A>D){D=A}}for(var M=0;M0?1:0;T[C%n.minIterations*s+z]=F;O+=F}if(O>0&&(C>=n.minIterations-1||C==n.maxIterations-1)){var V=0;for(var j=0;j1||n>1){s=true}f[t]=[];e.outgoers().forEach((function(e){if(e.isEdge())f[t].push(e.id())}))}else{c[t]=[undefined,e.target().id()]}}))}else{o.forEach((function(e){var t=e.id();if(e.isNode()){var r=e.degree(true);if(r%2){if(!l)l=t;else if(!u)u=t;else s=true}f[t]=[];e.connectedEdges().forEach((function(e){return f[t].push(e.id())}))}else{c[t]=[e.source().id(),e.target().id()]}}))}var d={found:false,trail:undefined};if(s)return d;else if(u&&l){if(i){if(v&&u!=v){return d}v=u}else{if(v&&u!=v&&l!=v){return d}else if(!v){v=u}}}else{if(!v)v=o[0].id()}var h=function e(t){var r=t;var a=[t];var n,o,s;while(f[r].length){n=f[r].shift();o=c[n][0];s=c[n][1];if(r!=s){f[s]=f[s].filter((function(e){return e!=n}));r=s}else if(!i&&r!=o){f[o]=f[o].filter((function(e){return e!=n}));r=o}a.unshift(n);a.unshift(r)}return a};var p=[];var g=[];g=h(v);while(g.length!=1){if(f[g[0]].length==0){p.unshift(o.getElementById(g.shift()));p.unshift(o.getElementById(g.shift()))}else{g=h(g.shift()).concat(g)}}p.unshift(o.getElementById(g.shift()));for(var y in f){if(f[y].length){return d}}d.found=true;d.trail=this.spawn(p,true);return d}};var Gn=function e(){var t=this;var r={};var a=0;var n=0;var i=[];var o=[];var s={};var l=function e(a,n){var s=o.length-1;var l=[];var u=t.spawn();while(o[s].x!=a||o[s].y!=n){l.push(o.pop().edge);s--}l.push(o.pop().edge);l.forEach((function(e){var a=e.connectedNodes().intersection(t);u.merge(e);a.forEach((function(e){var a=e.id();var n=e.connectedEdges().intersection(t);u.merge(e);if(!r[a].cutVertex){u.merge(n)}else{u.merge(n.filter((function(e){return e.isLoop()})))}}))}));i.push(u)};var u=function e(v,f,c){if(v===c)n+=1;r[f]={id:a,low:a++,cutVertex:false};var d=t.getElementById(f).connectedEdges().intersection(t);if(d.size()===0){i.push(t.spawn(t.getElementById(f)))}else{var h,p,g,y;d.forEach((function(e){h=e.source().id();p=e.target().id();g=h===f?p:h;if(g!==c){y=e.id();if(!s[y]){s[y]=true;o.push({x:f,y:g,edge:e})}if(!(g in r)){u(v,g,f);r[f].low=Math.min(r[f].low,r[g].low);if(r[f].id<=r[g].low){r[f].cutVertex=true;l(f,g)}}else{r[f].low=Math.min(r[f].low,r[g].id)}}}))}};t.forEach((function(e){if(e.isNode()){var t=e.id();if(!(t in r)){n=0;u(t,t);r[t].cutVertex=n>1}}}));var v=Object.keys(r).filter((function(e){return r[e].cutVertex})).map((function(e){return t.getElementById(e)}));return{cut:t.spawn(v),components:i}};var Hn={hopcroftTarjanBiconnected:Gn,htbc:Gn,htb:Gn,hopcroftTarjanBiconnectedComponents:Gn};var Kn=function e(){var t=this;var r={};var a=0;var n=[];var i=[];var o=t.spawn(t);var s=function e(l){i.push(l);r[l]={index:a,low:a++,explored:false};var u=t.getElementById(l).connectedEdges().intersection(t);u.forEach((function(e){var t=e.target().id();if(t!==l){if(!(t in r)){s(t)}if(!r[t].explored){r[l].low=Math.min(r[l].low,r[t].low)}}}));if(r[l].index===r[l].low){var v=t.spawn();for(;;){var f=i.pop();v.merge(t.getElementById(f));r[f].low=r[l].index;r[f].explored=true;if(f===l){break}}var c=v.edgesWith(v);var d=v.merge(c);n.push(d);o=o.difference(d)}};t.forEach((function(e){if(e.isNode()){var t=e.id();if(!(t in r)){s(t)}}}));return{cut:o,components:n}};var Zn={tarjanStronglyConnected:Kn,tsc:Kn,tscc:Kn,tarjanStronglyConnectedComponents:Kn};var $n={};[rr,dr,hr,gr,mr,xr,kr,Ma,Ra,La,za,Qa,Pn,Nn,qn,Un,Hn,Zn].forEach((function(e){se($n,e)}));var Qn=0;var Jn=1;var ei=2;var ti=function e(t){if(!(this instanceof ti))return new ti(t);this.id="Thenable/1.0.7";this.state=Qn;this.fulfillValue=undefined;this.rejectReason=undefined;this.onFulfilled=[];this.onRejected=[];this.proxy={then:this.then.bind(this)};if(typeof t==="function")t.call(this,this.fulfill.bind(this),this.reject.bind(this))};ti.prototype={fulfill:function e(t){return ri(this,Jn,"fulfillValue",t)},reject:function e(t){return ri(this,ei,"rejectReason",t)},then:function e(t,r){var a=this;var n=new ti;a.onFulfilled.push(ii(t,n,"fulfill"));a.onRejected.push(ii(r,n,"reject"));ai(a);return n.proxy}};var ri=function e(t,r,a,n){if(t.state===Qn){t.state=r;t[a]=n;ai(t)}return t};var ai=function e(t){if(t.state===Jn)ni(t,"onFulfilled",t.fulfillValue);else if(t.state===ei)ni(t,"onRejected",t.rejectReason)};var ni=function e(t,r,a){if(t[r].length===0)return;var n=t[r];t[r]=[];var i=function e(){for(var t=0;t0}}},clearQueue:function e(){return function e(){var t=this;var r=t.length!==undefined;var a=r?t:[t];var n=this._private.cy||this;if(!n.styleEnabled()){return this}for(var i=0;i-1}wo=t;return wo}var ko;var Co;function Po(){if(Co)return ko;Co=1;var e=ho();function t(t,r){var a=this.__data__,n=e(a,t);if(n<0){++this.size;a.push([t,r])}else{a[n][1]=r}return this}ko=t;return ko}var So;var Do;function Bo(){if(Do)return So;Do=1;var e=so(),t=yo(),r=xo(),a=To(),n=Po();function i(e){var t=-1,r=e==null?0:e.length;this.clear();while(++t-1&&r%1==0&&r0){this.spawn(n).updateStyle().emit("class")}return r},addClass:function e(t){return this.toggleClass(t,true)},hasClass:function e(t){var r=this[0];return r!=null&&r._private.classes.has(t)},toggleClass:function e(t,r){if(!A(t)){t=t.match(/\S+/g)||[]}var a=this;var n=r===undefined;var i=[];for(var o=0,s=a.length;o0){this.spawn(i).updateStyle().emit("class")}return a},removeClass:function e(t){return this.toggleClass(t,false)},flashClass:function e(t,r){var a=this;if(r==null){r=250}else if(r===0){return a}a.addClass(t);setTimeout((function(){a.removeClass(t)}),r);return a}};dl.className=dl.classNames=dl.classes;var hl={metaChar:"[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:'"(?:\\\\"|[^"])*"'+"|"+"'(?:\\\\'|[^'])*'",number:Q,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$",group:"node|edge|\\*",directedEdge:"\\s+->\\s+",undirectedEdge:"\\s+<->\\s+"};hl.variable="(?:[\\w-.]|(?:\\\\"+hl.metaChar+"))+";hl.className="(?:[\\w-]|(?:\\\\"+hl.metaChar+"))+";hl.value=hl.string+"|"+hl.number;hl.id=hl.variable;(function(){var e,t,r;e=hl.comparatorOp.split("|");for(r=0;r=0){continue}if(t==="="){continue}hl.comparatorOp+="|\\!"+t}})();var pl=function e(){return{checks:[]}};var gl={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};var yl=[{selector:":selected",matches:function e(t){return t.selected()}},{selector:":unselected",matches:function e(t){return!t.selected()}},{selector:":selectable",matches:function e(t){return t.selectable()}},{selector:":unselectable",matches:function e(t){return!t.selectable()}},{selector:":locked",matches:function e(t){return t.locked()}},{selector:":unlocked",matches:function e(t){return!t.locked()}},{selector:":visible",matches:function e(t){return t.visible()}},{selector:":hidden",matches:function e(t){return!t.visible()}},{selector:":transparent",matches:function e(t){return t.transparent()}},{selector:":grabbed",matches:function e(t){return t.grabbed()}},{selector:":free",matches:function e(t){return!t.grabbed()}},{selector:":removed",matches:function e(t){return t.removed()}},{selector:":inside",matches:function e(t){return!t.removed()}},{selector:":grabbable",matches:function e(t){return t.grabbable()}},{selector:":ungrabbable",matches:function e(t){return!t.grabbable()}},{selector:":animated",matches:function e(t){return t.animated()}},{selector:":unanimated",matches:function e(t){return!t.animated()}},{selector:":parent",matches:function e(t){return t.isParent()}},{selector:":childless",matches:function e(t){return t.isChildless()}},{selector:":child",matches:function e(t){return t.isChild()}},{selector:":orphan",matches:function e(t){return t.isOrphan()}},{selector:":nonorphan",matches:function e(t){return t.isChild()}},{selector:":compound",matches:function e(t){if(t.isNode()){return t.isParent()}else{return t.source().isParent()||t.target().isParent()}}},{selector:":loop",matches:function e(t){return t.isLoop()}},{selector:":simple",matches:function e(t){return t.isSimple()}},{selector:":active",matches:function e(t){return t.active()}},{selector:":inactive",matches:function e(t){return!t.active()}},{selector:":backgrounding",matches:function e(t){return t.backgrounding()}},{selector:":nonbackgrounding",matches:function e(t){return!t.backgrounding()}}].sort((function(e,t){return oe(e.selector,t.selector)}));var ml=function(){var e={};var t;for(var r=0;r0&&v.edgeCount>0){Lt("The selector `"+t+"` is invalid because it uses both a compound selector and an edge selector");return false}if(v.edgeCount>1){Lt("The selector `"+t+"` is invalid because it uses multiple edge selectors");return false}else if(v.edgeCount===1){Lt("The selector `"+t+"` 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 true};var Sl=function e(){if(this.toStringCache!=null){return this.toStringCache}var t=function e(t){if(t==null){return""}else{return t}};var r=function e(r){if(D(r)){return'"'+r+'"'}else{return t(r)}};var a=function e(t){return" "+t+" "};var n=function e(n,o){var s=n.type,l=n.value;switch(s){case gl.GROUP:{var u=t(l);return u.substring(0,u.length-1)}case gl.DATA_COMPARE:{var v=n.field,f=n.operator;return"["+v+a(t(f))+r(l)+"]"}case gl.DATA_BOOL:{var c=n.operator,d=n.field;return"["+t(c)+d+"]"}case gl.DATA_EXIST:{var h=n.field;return"["+h+"]"}case gl.META_COMPARE:{var p=n.operator,g=n.field;return"[["+g+a(t(p))+r(l)+"]]"}case gl.STATE:{return l}case gl.ID:{return"#"+l}case gl.CLASS:{return"."+l}case gl.PARENT:case gl.CHILD:{return i(n.parent,o)+a(">")+i(n.child,o)}case gl.ANCESTOR:case gl.DESCENDANT:{return i(n.ancestor,o)+" "+i(n.descendant,o)}case gl.COMPOUND_SPLIT:{var y=i(n.left,o);var m=i(n.subject,o);var b=i(n.right,o);return y+(y.length>0?" ":"")+m+b}case gl.TRUE:{return""}}};var i=function e(t,r){return t.checks.reduce((function(e,a,i){return e+(r===t&&i===0?"$":"")+n(a,r)}),"")};var o="";for(var s=0;s1&&s=0){r=r.replace("!","");f=true}if(r.indexOf("@")>=0){r=r.replace("@","");v=true}if(i||s||v){l=!i&&!o?"":""+t;u=""+a}if(v){t=l=l.toLowerCase();a=u=u.toLowerCase()}switch(r){case"*=":n=l.indexOf(u)>=0;break;case"$=":n=l.indexOf(u,l.length-u.length)>=0;break;case"^=":n=l.indexOf(u)===0;break;case"=":n=t===a;break;case">":c=true;n=t>a;break;case">=":c=true;n=t>=a;break;case"<":c=true;n=t0){var v=n.shift();t(v);i.add(v.id());if(s){a(n,i,v)}}return e}function Wl(e,t,r){if(r.isParent()){var a=r._private.children;for(var n=0;n1&&arguments[1]!==undefined?arguments[1]:true;return ql(this,e,t,Wl)};function Ul(e,t,r){if(r.isChild()){var a=r._private.parent;if(!t.has(a.id())){e.push(a)}}}Yl.forEachUp=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;return ql(this,e,t,Ul)};function Gl(e,t,r){Ul(e,t,r);Wl(e,t,r)}Yl.forEachUpAndDown=function(e){var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;return ql(this,e,t,Gl)};Yl.ancestors=Yl.parents;var Hl,Kl;Hl=Kl={data:fl.data({field:"data",bindingEvent:"data",allowBinding:true,allowSetting:true,settingEvent:"data",settingTriggersEvent:true,triggerFnName:"trigger",allowGetting:true,immutableKeys:{id:true,source:true,target:true,parent:true},updateStyle:true}),removeData:fl.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:true,immutableKeys:{id:true,source:true,target:true,parent:true},updateStyle:true}),scratch:fl.data({field:"scratch",bindingEvent:"scratch",allowBinding:true,allowSetting:true,settingEvent:"scratch",settingTriggersEvent:true,triggerFnName:"trigger",allowGetting:true,updateStyle:true}),removeScratch:fl.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:true,updateStyle:true}),rscratch:fl.data({field:"rscratch",allowBinding:false,allowSetting:true,settingTriggersEvent:false,allowGetting:true}),removeRscratch:fl.removeData({field:"rscratch",triggerEvent:false}),id:function e(){var t=this[0];if(t){return t._private.data.id}}};Hl.attr=Hl.data;Hl.removeAttr=Hl.removeData;var Zl=Kl;var $l={};function Ql(e){return function(t){var r=this;if(t===undefined){t=true}if(r.length===0){return}if(r.isNode()&&!r.removed()){var a=0;var n=r[0];var i=n._private.edges;for(var o=0;ot})),minIndegree:Jl("indegree",(function(e,t){return et})),minOutdegree:Jl("outdegree",(function(e,t){return et}))});se($l,{totalDegree:function e(t){var r=0;var a=this.nodes();for(var n=0;n0;var c=f;if(f){v=v[0]}var d=c?v.position():{x:0,y:0};if(r!==undefined){u.position(t,r+d[t])}else if(i!==undefined){u.position({x:i.x+d.x,y:i.y+d.y})}}}else{var h=a.position();var p=s?a.parent():null;var g=p&&p.length>0;var y=g;if(g){p=p[0]}var m=y?p.position():{x:0,y:0};i={x:h.x-m.x,y:h.y-m.y};if(t===undefined){return i}else{return i[t]}}}else if(!o){return undefined}return this}};eu.modelPosition=eu.point=eu.position;eu.modelPositions=eu.points=eu.positions;eu.renderedPoint=eu.renderedPosition;eu.relativePoint=eu.relativePosition;var nu=tu;var iu,ou;iu=ou={};ou.renderedBoundingBox=function(e){var t=this.boundingBox(e);var r=this.cy();var a=r.zoom();var n=r.pan();var i=t.x1*a+n.x;var o=t.x2*a+n.x;var s=t.y1*a+n.y;var l=t.y2*a+n.y;return{x1:i,x2:o,y1:s,y2:l,w:o-i,h:l-s}};ou.dirtyCompoundBoundsCache=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;var t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes()){return this}this.forEachUp((function(t){if(t.isParent()){var r=t._private;r.compoundBoundsClean=false;r.bbCache=null;if(!e){t.emitAndNotify("bounds")}}}));return this};ou.updateCompoundBounds=function(){var e=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;var t=this.cy();if(!t.styleEnabled()||!t.hasCompoundNodes()){return this}if(!e&&t.batching()){return this}function r(e){if(!e.isParent()){return}var t=e._private;var r=e.children();var a=e.pstyle("compound-sizing-wrt-labels").value==="include";var n={width:{val:e.pstyle("min-width").pfValue,left:e.pstyle("min-width-bias-left"),right:e.pstyle("min-width-bias-right")},height:{val:e.pstyle("min-height").pfValue,top:e.pstyle("min-height-bias-top"),bottom:e.pstyle("min-height-bias-bottom")}};var i=r.boundingBox({includeLabels:a,includeOverlays:false,useCache:false});var o=t.position;if(i.w===0||i.h===0){i={w:e.pstyle("width").pfValue,h:e.pstyle("height").pfValue};i.x1=o.x-i.w/2;i.x2=o.x+i.w/2;i.y1=o.y-i.h/2;i.y2=o.y+i.h/2}function s(e,t,r){var a=0;var n=0;var i=t+r;if(e>0&&i>0){a=t/i*e;n=r/i*e}return{biasDiff:a,biasComplementDiff:n}}function l(e,t,r,a){if(r.units==="%"){switch(a){case"width":return e>0?r.pfValue*e:0;case"height":return t>0?r.pfValue*t:0;case"average":return e>0&&t>0?r.pfValue*(e+t)/2:0;case"min":return e>0&&t>0?e>t?r.pfValue*t:r.pfValue*e:0;case"max":return e>0&&t>0?e>t?r.pfValue*e:r.pfValue*t:0;default:return 0}}else if(r.units==="px"){return r.pfValue}else{return 0}}var u=n.width.left.value;if(n.width.left.units==="px"&&n.width.val>0){u=u*100/n.width.val}var v=n.width.right.value;if(n.width.right.units==="px"&&n.width.val>0){v=v*100/n.width.val}var f=n.height.top.value;if(n.height.top.units==="px"&&n.height.val>0){f=f*100/n.height.val}var c=n.height.bottom.value;if(n.height.bottom.units==="px"&&n.height.val>0){c=c*100/n.height.val}var d=s(n.width.val-i.w,u,v);var h=d.biasDiff;var p=d.biasComplementDiff;var g=s(n.height.val-i.h,f,c);var y=g.biasDiff;var m=g.biasComplementDiff;t.autoPadding=l(i.w,i.h,e.pstyle("padding"),e.pstyle("padding-relative-to").value);t.autoWidth=Math.max(i.w,n.width.val);o.x=(-h+i.x1+i.x2+p)/2;t.autoHeight=Math.max(i.h,n.height.val);o.y=(-y+i.y1+i.y2+m)/2}for(var a=0;at.x2?n:t.x2;t.y1=at.y2?i:t.y2;t.w=t.x2-t.x1;t.h=t.y2-t.y1};var uu=function e(t,r){if(r==null){return t}return lu(t,r.x1,r.y1,r.x2,r.y2)};var vu=function e(t,r,a){return Gt(t,r,a)};var fu=function e(t,r,a){if(r.cy().headless()){return}var n=r._private;var i=n.rstyle;var o=i.arrowWidth/2;var s=r.pstyle(a+"-arrow-shape").value;var l;var u;if(s!=="none"){if(a==="source"){l=i.srcX;u=i.srcY}else if(a==="target"){l=i.tgtX;u=i.tgtY}else{l=i.midX;u=i.midY}var v=n.arrowBounds=n.arrowBounds||{};var f=v[a]=v[a]||{};f.x1=l-o;f.y1=u-o;f.x2=l+o;f.y2=u+o;f.w=f.x2-f.x1;f.h=f.y2-f.y1;Zr(f,1);lu(t,f.x1,f.y1,f.x2,f.y2)}};var cu=function e(t,r,a){if(r.cy().headless()){return}var n;if(a){n=a+"-"}else{n=""}var i=r._private;var o=i.rstyle;var s=r.pstyle(n+"label").strValue;if(s){var l=r.pstyle("text-halign");var u=r.pstyle("text-valign");var v=vu(o,"labelWidth",a);var f=vu(o,"labelHeight",a);var c=vu(o,"labelX",a);var d=vu(o,"labelY",a);var h=r.pstyle(n+"text-margin-x").pfValue;var p=r.pstyle(n+"text-margin-y").pfValue;var g=r.isEdge();var y=r.pstyle(n+"text-rotation");var m=r.pstyle("text-outline-width").pfValue;var b=r.pstyle("text-border-width").pfValue;var x=b/2;var w=r.pstyle("text-background-padding").pfValue;var E=2;var T=f;var k=v;var C=k/2;var P=T/2;var S,D,B,A;if(g){S=c-C;D=c+C;B=d-P;A=d+P}else{switch(l.value){case"left":S=c-k;D=c;break;case"center":S=c-C;D=c+C;break;case"right":S=c;D=c+k;break}switch(u.value){case"top":B=d-T;A=d;break;case"center":B=d-P;A=d+P;break;case"bottom":B=d;A=d+T;break}}var _=h-Math.max(m,x)-w-E;var M=h+Math.max(m,x)+w+E;var I=p-Math.max(m,x)-w-E;var R=p+Math.max(m,x)+w+E;S+=_;D+=M;B+=I;A+=R;var N=a||"main";var L=i.labelBounds;var O=L[N]=L[N]||{};O.x1=S;O.y1=B;O.x2=D;O.y2=A;O.w=D-S;O.h=A-B;O.leftPad=_;O.rightPad=M;O.topPad=I;O.botPad=R;var z=g&&y.strValue==="autorotate";var F=y.pfValue!=null&&y.pfValue!==0;if(z||F){var V=z?vu(i.rstyle,"labelAngle",a):y.pfValue;var j=Math.cos(V);var X=Math.sin(V);var Y=(S+D)/2;var q=(B+A)/2;if(!g){switch(l.value){case"left":Y=D;break;case"right":Y=S;break}switch(u.value){case"top":q=A;break;case"bottom":q=B;break}}var W=function e(t,r){t=t-Y;r=r-q;return{x:t*j-r*X+Y,y:t*X+r*j+q}};var U=W(S,B);var G=W(S,A);var H=W(D,B);var K=W(D,A);S=Math.min(U.x,G.x,H.x,K.x);D=Math.max(U.x,G.x,H.x,K.x);B=Math.min(U.y,G.y,H.y,K.y);A=Math.max(U.y,G.y,H.y,K.y)}var Z=N+"Rot";var $=L[Z]=L[Z]||{};$.x1=S;$.y1=B;$.x2=D;$.y2=A;$.w=D-S;$.h=A-B;lu(t,S,B,D,A);lu(i.labelBounds.all,S,B,D,A)}return t};var du=function e(t,r){if(r.cy().headless()){return}var a=r.pstyle("outline-opacity").value;var n=r.pstyle("outline-width").value;if(a>0&&n>0){var i=r.pstyle("outline-offset").value;var o=r.pstyle("shape").value;var s=n+i;var l=(t.w+s*2)/t.w;var u=(t.h+s*2)/t.h;var v=0;var f=0;if(["diamond","pentagon","round-triangle"].includes(o)){l=(t.w+s*2.4)/t.w;f=-s/3.6}else if(["concave-hexagon","rhomboid","right-rhomboid"].includes(o)){l=(t.w+s*2.4)/t.w}else if(o==="star"){l=(t.w+s*2.8)/t.w;u=(t.h+s*2.6)/t.h;f=-s/3.8}else if(o==="triangle"){l=(t.w+s*2.8)/t.w;u=(t.h+s*2.4)/t.h;f=-s/1.4}else if(o==="vee"){l=(t.w+s*4.4)/t.w;u=(t.h+s*3.8)/t.h;f=-s*.5}var c=t.h*u-t.h;var d=t.w*l-t.w;$r(t,[Math.ceil(c/2),Math.ceil(d/2)]);if(v!=0||f!==0){var h=Gr(t,v,f);Hr(t,h)}}};var hu=function e(t,r){var a=t._private.cy;var n=a.styleEnabled();var i=a.headless();var o=qr();var s=t._private;var l=t.isNode();var u=t.isEdge();var v,f,c,d;var h,p;var g=s.rstyle;var y=l&&n?t.pstyle("bounds-expansion").pfValue:[0];var m=function e(t){return t.pstyle("display").value!=="none"};var b=!n||m(t)&&(!u||m(t.source())&&m(t.target()));if(b){var x=0;var w=0;if(n&&r.includeOverlays){x=t.pstyle("overlay-opacity").value;if(x!==0){w=t.pstyle("overlay-padding").value}}var E=0;var T=0;if(n&&r.includeUnderlays){E=t.pstyle("underlay-opacity").value;if(E!==0){T=t.pstyle("underlay-padding").value}}var k=Math.max(w,T);var C=0;var P=0;if(n){C=t.pstyle("width").pfValue;P=C/2}if(l&&r.includeNodes){var S=t.position();h=S.x;p=S.y;var D=t.outerWidth();var B=D/2;var A=t.outerHeight();var _=A/2;v=h-B;f=h+B;c=p-_;d=p+_;lu(o,v,c,f,d);if(n&&r.includeOutlines){du(o,t)}}else if(u&&r.includeEdges){if(n&&!i){var M=t.pstyle("curve-style").strValue;v=Math.min(g.srcX,g.midX,g.tgtX);f=Math.max(g.srcX,g.midX,g.tgtX);c=Math.min(g.srcY,g.midY,g.tgtY);d=Math.max(g.srcY,g.midY,g.tgtY);v-=P;f+=P;c-=P;d+=P;lu(o,v,c,f,d);if(M==="haystack"){var I=g.haystackPts;if(I&&I.length===2){v=I[0].x;c=I[0].y;f=I[1].x;d=I[1].y;if(v>f){var R=v;v=f;f=R}if(c>d){var N=c;c=d;d=N}lu(o,v-P,c-P,f+P,d+P)}}else if(M==="bezier"||M==="unbundled-bezier"||M.endsWith("segments")||M.endsWith("taxi")){var L;switch(M){case"bezier":case"unbundled-bezier":L=g.bezierPts;break;case"segments":case"taxi":case"round-segments":case"round-taxi":L=g.linePts;break}if(L!=null){for(var O=0;Of){var Y=v;v=f;f=Y}if(c>d){var q=c;c=d;d=q}v-=P;f+=P;c-=P;d+=P;lu(o,v,c,f,d)}}if(n&&r.includeEdges&&u){fu(o,t,"mid-source");fu(o,t,"mid-target");fu(o,t,"source");fu(o,t,"target")}if(n){var W=t.pstyle("ghost").value==="yes";if(W){var U=t.pstyle("ghost-offset-x").pfValue;var G=t.pstyle("ghost-offset-y").pfValue;lu(o,o.x1+U,o.y1+G,o.x2+U,o.y2+G)}}var H=s.bodyBounds=s.bodyBounds||{};Qr(H,o);$r(H,y);Zr(H,1);if(n){v=o.x1;f=o.x2;c=o.y1;d=o.y2;lu(o,v-k,c-k,f+k,d+k)}var K=s.overlayBounds=s.overlayBounds||{};Qr(K,o);$r(K,y);Zr(K,1);var Z=s.labelBounds=s.labelBounds||{};if(Z.all!=null){Ur(Z.all)}else{Z.all=qr()}if(n&&r.includeLabels){if(r.includeMainLabels){cu(o,t,null)}if(u){if(r.includeSourceLabels){cu(o,t,"source")}if(r.includeTargetLabels){cu(o,t,"target")}}}}o.x1=su(o.x1);o.y1=su(o.y1);o.x2=su(o.x2);o.y2=su(o.y2);o.w=su(o.x2-o.x1);o.h=su(o.y2-o.y1);if(o.w>0&&o.h>0&&b){$r(o,y);Zr(o,1)}return o};var pu=function e(t){var r=0;var a=function e(t){return(t?1:0)<0&&arguments[0]!==undefined?arguments[0]:Wu;var t=arguments.length>1?arguments[1]:undefined;for(var r=0;r=0;s--){o(s)}return this};Gu.removeAllListeners=function(){return this.removeListener("*")};Gu.emit=Gu.trigger=function(e,t,r){var a=this.listeners;var n=a.length;this.emitting++;if(!A(t)){t=[t]}Zu(this,(function(e,i){if(r!=null){a=[{event:i.event,type:i.type,namespace:i.namespace,callback:r}];n=a.length}var o=function r(){var n=a[s];if(n.type===i.type&&(!n.namespace||n.namespace===i.namespace||n.namespace===Xu)&&e.eventMatches(e.context,n,i)){var o=[i];if(t!=null){Ut(o,t)}e.beforeEmit(e.context,n,i);if(n.conf&&n.conf.one){e.listeners=e.listeners.filter((function(e){return e!==n}))}var l=e.callbackContext(e.context,n,i);var u=n.callback.apply(l,o);e.afterEmit(e.context,n,i);if(u===false){i.stopPropagation();i.preventDefault()}}};for(var s=0;s1&&!o){var s=this.length-1;var l=this[s];var u=l._private.data.id;this[s]=undefined;this[t]=l;i.set(u,{ele:l,index:t})}this.length--;return this},unmergeOne:function e(t){t=t[0];var r=this._private;var a=t._private.data.id;var n=r.map;var i=n.get(a);if(!i){return this}var o=i.index;this.unmergeAt(o);return this},unmerge:function e(t){var r=this._private.cy;if(!t){return this}if(t&&D(t)){var a=t;t=r.mutableElements().filter(a)}for(var n=0;n=0;r--){var a=this[r];if(t(a)){this.unmergeAt(r)}}return this},map:function e(t,r){var a=[];var n=this;for(var i=0;ie){e=s;a=o}}return{value:e,ele:a}},min:function e(t,r){var e=Infinity;var a;var n=this;for(var i=0;i=0&&i1&&arguments[1]!==undefined?arguments[1]:true;var a=this[0];var n=a.cy();if(!n.styleEnabled()){return}if(a){if(a._private.styleDirty){a._private.styleDirty=false;n.style().apply(a)}var i=a._private.style[t];if(i!=null){return i}else if(r){return n.style().getDefaultProperty(t)}else{return null}}},numericStyle:function e(t){var r=this[0];if(!r.cy().styleEnabled()){return}if(r){var a=r.pstyle(t);return a.pfValue!==undefined?a.pfValue:a.value}},numericStyleUnits:function e(t){var r=this[0];if(!r.cy().styleEnabled()){return}if(r){return r.pstyle(t).units}},renderedStyle:function e(t){var r=this.cy();if(!r.styleEnabled()){return this}var a=this[0];if(a){return r.style().getRenderedStyle(a,t)}},style:function e(t,r){var a=this.cy();if(!a.styleEnabled()){return this}var n=false;var e=a.style();if(_(t)){var i=t;e.applyBypass(this,i,n);this.emitAndNotify("style")}else if(D(t)){if(r===undefined){var o=this[0];if(o){return e.getStylePropertyValue(o,t)}else{return}}else{e.applyBypass(this,t,r,n);this.emitAndNotify("style")}}else if(t===undefined){var s=this[0];if(s){return e.getRawStyle(s)}else{return}}return this},removeStyle:function e(t){var r=this.cy();if(!r.styleEnabled()){return this}var a=false;var n=r.style();var i=this;if(t===undefined){for(var o=0;o0){t.push(v[0])}t.push(s[0])}}return this.spawn(t,true).filter(e)}),"neighborhood"),closedNeighborhood:function e(t){return this.neighborhood().add(this).filter(t)},openNeighborhood:function e(t){return this.neighborhood(t)}});Ev.neighbourhood=Ev.neighborhood;Ev.closedNeighbourhood=Ev.closedNeighborhood;Ev.openNeighbourhood=Ev.openNeighborhood;se(Ev,{source:Xl((function e(t){var r=this[0];var a;if(r){a=r._private.source||r.cy().collection()}return a&&t?a.filter(t):a}),"source"),target:Xl((function e(t){var r=this[0];var a;if(r){a=r._private.target||r.cy().collection()}return a&&t?a.filter(t):a}),"target"),sources:Pv({attr:"source"}),targets:Pv({attr:"target"})});function Pv(e){return function t(r){var a=[];for(var n=0;n0);return e},component:function e(){var t=this[0];return t.cy().mutableElements().components(t)[0]}});Ev.componentsOf=Ev.components;var Bv=function e(t,r){var a=arguments.length>2&&arguments[2]!==undefined?arguments[2]:false;var n=arguments.length>3&&arguments[3]!==undefined?arguments[3]:false;if(t===undefined){Rt("A collection must have a reference to the core");return}var i=new Zt;var o=false;if(!r){r=[]}else if(r.length>0&&_(r[0])&&!O(r[0])){o=true;var s=[];var l=new Jt;for(var u=0,v=r.length;u0&&arguments[0]!==undefined?arguments[0]:true;var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var r=this;var a=r.cy();var n=a._private;var i=[];var o=[];var s;for(var l=0,u=r.length;l0){var O=s.length===r.length?r:new Bv(a,s);for(var z=0;z0&&arguments[0]!==undefined?arguments[0]:true;var t=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var r=this;var a=[];var n={};var i=r._private.cy;function o(e){var t=e._private.edges;for(var r=0;r0){if(e){S.emitAndNotify("remove")}else if(t){S.emit("remove")}}for(var D=0;D0){n=l}else{a=l}}while(Math.abs(i)>o&&++u=i){return m(t,v)}else if(f===0){return v}else{return x(t,a,a+u)}}var E=false;function T(){E=true;if(e!==t||r!==a){b()}}var k=function n(i){if(!E){T()}if(e===t&&r===a){return i}if(i===0){return 0}if(i===1){return 1}return g(w(i),t,a)};k.getControlPoints=function(){return[{x:e,y:t},{x:r,y:a}]};var C="generateBezier("+[e,t,r,a]+")";k.toString=function(){return C};return k}var Iv=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,r,a){var n={x:t.x+a.dx*r,v:t.v+a.dv*r,tension:t.tension,friction:t.friction};return{dx:n.v,dv:e(n)}}function r(r,a){var n={dx:r.v,dv:e(r)},i=t(r,a*.5,n),o=t(r,a*.5,i),s=t(r,a,o),l=1/6*(n.dx+2*(i.dx+o.dx)+s.dx),u=1/6*(n.dv+2*(i.dv+o.dv)+s.dv);r.x=r.x+l*a;r.v=r.v+u*a;return r}return function e(t,a,n){var i={x:-1,v:0,tension:null,friction:null},o=[0],s=0,l=1/1e4,u=16/1e3,v,f,c;t=parseFloat(t)||500;a=parseFloat(a)||20;n=n||null;i.tension=t;i.friction=a;v=n!==null;if(v){s=e(t,a);f=s/n*u}else{f=u}for(;;){c=r(c||i,f);o.push(1+c.x);s+=16;if(!(Math.abs(c.x)>l&&Math.abs(c.v)>l)){break}}return!v?s:function(e){return o[e*(o.length-1)|0]}}}();var Rv=function e(t,r,a,n){var i=Mv(t,r,a,n);return function(e,t,r){return e+(t-e)*i(r)}};var Nv={linear:function e(t,r,a){return t+(r-t)*a},ease:Rv(.25,.1,.25,1),"ease-in":Rv(.42,0,1,1),"ease-out":Rv(0,0,.58,1),"ease-in-out":Rv(.42,0,.58,1),"ease-in-sine":Rv(.47,0,.745,.715),"ease-out-sine":Rv(.39,.575,.565,1),"ease-in-out-sine":Rv(.445,.05,.55,.95),"ease-in-quad":Rv(.55,.085,.68,.53),"ease-out-quad":Rv(.25,.46,.45,.94),"ease-in-out-quad":Rv(.455,.03,.515,.955),"ease-in-cubic":Rv(.55,.055,.675,.19),"ease-out-cubic":Rv(.215,.61,.355,1),"ease-in-out-cubic":Rv(.645,.045,.355,1),"ease-in-quart":Rv(.895,.03,.685,.22),"ease-out-quart":Rv(.165,.84,.44,1),"ease-in-out-quart":Rv(.77,0,.175,1),"ease-in-quint":Rv(.755,.05,.855,.06),"ease-out-quint":Rv(.23,1,.32,1),"ease-in-out-quint":Rv(.86,0,.07,1),"ease-in-expo":Rv(.95,.05,.795,.035),"ease-out-expo":Rv(.19,1,.22,1),"ease-in-out-expo":Rv(1,0,0,1),"ease-in-circ":Rv(.6,.04,.98,.335),"ease-out-circ":Rv(.075,.82,.165,1),"ease-in-out-circ":Rv(.785,.135,.15,.86),spring:function e(t,r,a){if(a===0){return Nv.linear}var e=Iv(t,r,a);return function(t,r,a){return t+(r-t)*e(a)}},"cubic-bezier":Rv};function Lv(e,t,r,a,n){if(a===1){return r}if(t===r){return r}var i=n(t,r,a);if(e==null){return i}if(e.roundValue||e.color){i=Math.round(i)}if(e.min!==undefined){i=Math.max(i,e.min)}if(e.max!==undefined){i=Math.min(i,e.max)}return i}function Ov(e,t){if(e.pfValue!=null||e.value!=null){if(e.pfValue!=null&&(t==null||t.type.units!=="%")){return e.pfValue}else{return e.value}}else{return e}}function zv(e,t,r,a,n){var i=n!=null?n.type:null;if(r<0){r=0}else if(r>1){r=1}var o=Ov(e,n);var s=Ov(t,n);if(I(o)&&I(s)){return Lv(i,o,s,r,a)}else if(A(o)&&A(s)){var l=[];for(var u=0;u0){if(d==="spring"){h.push(o.duration)}o.easingImpl=Nv[d].apply(null,h)}else{o.easingImpl=Nv[d]}}}var p=o.easingImpl;var g;if(o.duration===0){g=1}else{g=(r-l)/o.duration}if(o.applying){g=o.progress}if(g<0){g=0}else if(g>1){g=1}if(o.delay==null){var y=o.startPosition;var m=o.position;if(m&&n&&!e.locked()){var b={};if(Vv(y.x,m.x)){b.x=zv(y.x,m.x,g,p)}if(Vv(y.y,m.y)){b.y=zv(y.y,m.y,g,p)}e.position(b)}var x=o.startPan;var w=o.pan;var E=i.pan;var T=w!=null&&a;if(T){if(Vv(x.x,w.x)){E.x=zv(x.x,w.x,g,p)}if(Vv(x.y,w.y)){E.y=zv(x.y,w.y,g,p)}e.emit("pan")}var k=o.startZoom;var C=o.zoom;var P=C!=null&&a;if(P){if(Vv(k,C)){i.zoom=Yr(i.minZoom,zv(k,C,g,p),i.maxZoom)}e.emit("zoom")}if(T||P){e.emit("viewport")}var S=o.style;if(S&&S.length>0&&n){for(var B=0;B=0;r--){var a=t[r];a()}t.splice(0,t.length)};for(var v=i.length-1;v>=0;v--){var f=i[v];var c=f._private;if(c.stopped){i.splice(v,1);c.hooked=false;c.playing=false;c.started=false;u(c.frames);continue}if(!c.playing&&!c.applying){continue}if(c.playing&&c.applying){c.applying=false}if(!c.started){jv(t,f,e)}Fv(t,f,e,r);if(c.applying){c.applying=false}u(c.frames);if(c.step!=null){c.step(e)}if(f.completed()){i.splice(v,1);c.hooked=false;c.playing=false;c.started=false;u(c.completes)}s=true}if(!r&&i.length===0&&o.length===0){a.push(t)}return s}var i=false;for(var o=0;o0){t.notify("draw",r)}else{t.notify("draw")}}r.unmerge(a);t.emit("step")}var Yv={animate:fl.animate(),animation:fl.animation(),animated:fl.animated(),clearQueue:fl.clearQueue(),delay:fl.delay(),delayAnimation:fl.delayAnimation(),stop:fl.stop(),addToAnimationPool:function e(t){var r=this;if(!r.styleEnabled()){return}r._private.aniEles.merge(t)},stopAnimationLoop:function e(){this._private.animationsRunning=false},startAnimationLoop:function e(){var t=this;t._private.animationsRunning=true;if(!t.styleEnabled()){return}function r(){if(!t._private.animationsRunning){return}ft((function e(a){Xv(a,t);r()}))}var a=t.renderer();if(a&&a.beforeRender){a.beforeRender((function e(r,a){Xv(a,t)}),a.beforeRenderPriorities.animations)}else{r()}}};var qv={qualifierCompare:function e(t,r){if(t==null||r==null){return t==null&&r==null}else{return t.sameText(r)}},eventMatches:function e(t,r,a){var n=r.qualifier;if(n!=null){return t!==a.target&&O(a.target)&&n.matches(a.target)}return true},addEventFields:function e(t,r){r.cy=t;r.target=t},callbackContext:function e(t,r,a){return r.qualifier!=null?a.target:t}};var Wv=function e(t){if(D(t)){return new Fl(t)}else{return t}};var Uv={createEmitter:function e(){var t=this._private;if(!t.emitter){t.emitter=new Uu(qv,this)}return this},emitter:function e(){return this._private.emitter},on:function e(t,r,a){this.emitter().on(t,Wv(r),a);return this},removeListener:function e(t,r,a){this.emitter().removeListener(t,Wv(r),a);return this},removeAllListeners:function e(){this.emitter().removeAllListeners();return this},one:function e(t,r,a){this.emitter().one(t,Wv(r),a);return this},once:function e(t,r,a){this.emitter().one(t,Wv(r),a);return this},emit:function e(t,r){this.emitter().emit(t,r);return this},emitAndNotify:function e(t,r){this.emit(t);this.notify(t,r);return this}};fl.eventAliasesOn(Uv);var Gv={png:function e(t){var r=this._private.renderer;t=t||{};return r.png(t)},jpg:function e(t){var r=this._private.renderer;t=t||{};t.bg=t.bg||"#fff";return r.jpg(t)}};Gv.jpeg=Gv.jpg;var Hv={layout:function e(t){var r=this;if(t==null){Rt("Layout options must be specified to make a layout");return}if(t.name==null){Rt("A `name` must be specified to make a layout");return}var a=t.name;var n=r.extension("layout",a);if(n==null){Rt("No such layout `"+a+"` found. Did you forget to import it and `cytoscape.use()` it?");return}var i;if(D(t.eles)){i=r.$(t.eles)}else{i=t.eles!=null?t.eles:r.$()}var e=new n(se({},t,{cy:r,eles:i}));return e}};Hv.createLayout=Hv.makeLayout=Hv.layout;var Kv={notify:function e(t,r){var a=this._private;if(this.batching()){a.batchNotifications=a.batchNotifications||{};var n=a.batchNotifications[t]=a.batchNotifications[t]||this.collection();if(r!=null){n.merge(r)}return}if(!a.notificationsEnabled){return}var i=this.renderer();if(this.destroyed()||!i){return}i.notify(t,r)},notifications:function e(t){var r=this._private;if(t===undefined){return r.notificationsEnabled}else{r.notificationsEnabled=t?true:false}return this},noNotifications:function e(t){this.notifications(false);t();this.notifications(true)},batching:function e(){return this._private.batchCount>0},startBatch:function e(){var t=this._private;if(t.batchCount==null){t.batchCount=0}if(t.batchCount===0){t.batchStyleEles=this.collection();t.batchNotifications={}}t.batchCount++;return this},endBatch:function e(){var t=this._private;if(t.batchCount===0){return this}t.batchCount--;if(t.batchCount===0){t.batchStyleEles.updateStyle();var r=this.renderer();Object.keys(t.batchNotifications).forEach((function(e){var a=t.batchNotifications[e];if(a.empty()){r.notify(e)}else{r.notify(e,a)}}))}return this},batch:function e(t){this.startBatch();t();this.endBatch();return this},batchData:function e(t){var r=this;return this.batch((function(){var e=Object.keys(t);for(var a=0;a0){r.removeChild(r.childNodes[0])}}t._private.renderer=null;t.mutableElements().forEach((function(e){var t=e._private;t.rscratch={};t.rstyle={};t.animation.current=[];t.animation.queue=[]}))},onRender:function e(t){return this.on("render",t)},offRender:function e(t){return this.off("render",t)}};$v.invalidateDimensions=$v.resize;var Qv={collection:function e(t,r){if(D(t)){return this.$(t)}else if(L(t)){return t.collection()}else if(A(t)){if(!r){r={}}return new Bv(this,t,r.unique,r.removed)}return new Bv(this)},nodes:function e(t){var e=this.$((function(e){return e.isNode()}));if(t){return e.filter(t)}return e},edges:function e(t){var e=this.$((function(e){return e.isEdge()}));if(t){return e.filter(t)}return e},$:function e(t){var r=this._private.elements;if(t){return r.filter(t)}else{return r.spawnSelf()}},mutableElements:function e(){return this._private.elements}};Qv.elements=Qv.filter=Qv.$;var Jv={};var ef="t";var tf="f";Jv.apply=function(e){var t=this;var r=t._private;var a=r.cy;var n=a.collection();for(var i=0;i0;if(c||f&&d){var h=undefined;if(c&&d){h=u.properties}else if(c){h=u.properties}else if(d){h=u.mappedProperties}for(var p=0;p1){x=1}if(s.color){var E=a.valueMin[0];var T=a.valueMax[0];var k=a.valueMin[1];var C=a.valueMax[1];var P=a.valueMin[2];var S=a.valueMax[2];var D=a.valueMin[3]==null?1:a.valueMin[3];var B=a.valueMax[3]==null?1:a.valueMax[3];var A=[Math.round(E+(T-E)*x),Math.round(k+(C-k)*x),Math.round(P+(S-P)*x),Math.round(D+(B-D)*x)];i={bypass:a.bypass,name:a.name,value:A,strValue:"rgb("+A[0]+", "+A[1]+", "+A[2]+")"}}else if(s.number){var _=a.valueMin+(a.valueMax-a.valueMin)*x;i=this.parse(a.name,_,a.bypass,c)}else{return false}if(!i){p();return false}i.mapping=a;a=i;break}case o.data:{var M=a.field.split(".");var R=f.data;for(var N=0;N0&&i>0){var s={};var l=false;for(var u=0;u0){e.delayAnimation(o).play().promise().then(t)}else{t()}})).then((function(){return e.animation({style:s,duration:i,easing:e.pstyle("transition-timing-function").value,queue:false}).play().promise()})).then((function(){r.removeBypasses(e,n);e.emitAndNotify("style");a.transitioning=false}))}else if(a.transitioning){this.removeBypasses(e,n);e.emitAndNotify("style");a.transitioning=false}};Jv.checkTrigger=function(e,t,r,a,n,i){var o=this.properties[t];var s=n(o);if(e.removed()){return}if(s!=null&&s(r,a,e)){i(o)}};Jv.checkZOrderTrigger=function(e,t,r,a){var n=this;this.checkTrigger(e,t,r,a,(function(e){return e.triggersZOrder}),(function(){n._private.cy.notify("zorder",e)}))};Jv.checkBoundsTrigger=function(e,t,r,a){this.checkTrigger(e,t,r,a,(function(e){return e.triggersBounds}),(function(t){e.dirtyCompoundBoundsCache();e.dirtyBoundingBoxCache()}))};Jv.checkConnectedEdgesBoundsTrigger=function(e,t,r,a){this.checkTrigger(e,t,r,a,(function(e){return e.triggersBoundsOfConnectedEdges}),(function(t){e.connectedEdges().forEach((function(e){e.dirtyBoundingBoxCache()}))}))};Jv.checkParallelEdgesBoundsTrigger=function(e,t,r,a){this.checkTrigger(e,t,r,a,(function(e){return e.triggersBoundsOfParallelEdges}),(function(t){e.parallelEdges().forEach((function(e){e.dirtyBoundingBoxCache()}))}))};Jv.checkTriggers=function(e,t,r,a){e.dirtyStyleCache();this.checkZOrderTrigger(e,t,r,a);this.checkBoundsTrigger(e,t,r,a);this.checkConnectedEdgesBoundsTrigger(e,t,r,a);this.checkParallelEdgesBoundsTrigger(e,t,r,a)};var rf={};rf.applyBypass=function(e,t,r,a){var n=this;var i=[];var o=true;if(t==="*"||t==="**"){if(r!==undefined){for(var s=0;sn.length){a=a.substr(n.length)}else{a=""}}function l(){if(i.length>o.length){i=i.substr(o.length)}else{i=""}}for(;;){var u=a.match(/^\s*$/);if(u){break}var v=a.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!v){Lt("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+a);break}n=v[0];var f=v[1];if(f!=="core"){var c=new Fl(f);if(c.invalid){Lt("Skipping parsing of block: Invalid selector found in string stylesheet: "+f);s();continue}}var d=v[2];var h=false;i=d;var p=[];for(;;){var g=i.match(/^\s*$/);if(g){break}var y=i.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);if(!y){Lt("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+d);h=true;break}o=y[0];var m=y[1];var b=y[2];var x=t.properties[m];if(!x){Lt("Skipping property: Invalid property name in: "+o);l();continue}var w=r.parse(m,b);if(!w){Lt("Skipping property: Invalid property definition in: "+o);l();continue}p.push({name:m,val:b});l()}if(h){s();break}r.selector(f);for(var E=0;E=7&&t[0]==="d"&&(v=new RegExp(s.data.regex).exec(t))){if(r){return false}var c=s.data;return{name:e,value:v,strValue:""+t,mapped:c,field:v[1],bypass:r}}else if(t.length>=10&&t[0]==="m"&&(f=new RegExp(s.mapData.regex).exec(t))){if(r){return false}if(u.multiple){return false}var d=s.mapData;if(!(u.color||u.number)){return false}var h=this.parse(e,f[4]);if(!h||h.mapped){return false}var p=this.parse(e,f[5]);if(!p||p.mapped){return false}if(h.pfValue===p.pfValue||h.strValue===p.strValue){Lt("`"+e+": "+t+"` is not a valid mapper because the output range is zero; converting to `"+e+": "+h.strValue+"`");return this.parse(e,h.strValue)}else if(u.color){var g=h.value;var y=p.value;var m=g[0]===y[0]&&g[1]===y[1]&&g[2]===y[2]&&(g[3]===y[3]||(g[3]==null||g[3]===1)&&(y[3]==null||y[3]===1));if(m){return false}}return{name:e,value:f,strValue:""+t,mapped:d,field:f[1],fieldMin:parseFloat(f[2]),fieldMax:parseFloat(f[3]),valueMin:h.value,valueMax:p.value,bypass:r}}if(u.multiple&&a!=="multiple"){var b;if(l){b=t.split(/\s+/)}else if(A(t)){b=t}else{b=[t]}if(u.evenMultiple&&b.length%2!==0){return null}var x=[];var w=[];var E=[];var T="";var k=false;for(var C=0;C0?" ":"")+P.strValue}if(u.validate&&!u.validate(x,w)){return null}if(u.singleEnum&&k){if(x.length===1&&D(x[0])){return{name:e,value:x[0],strValue:x[0],bypass:r}}else{return null}}return{name:e,value:x,pfValue:E,strValue:T,bypass:r,units:w}}var S=function a(){for(var n=0;nu.max||u.strictMax&&t===u.max)){return null}var L={name:e,value:t,strValue:""+t+(_?_:""),units:_,bypass:r};if(u.unitless||_!=="px"&&_!=="em"){L.pfValue=t}else{L.pfValue=_==="px"||!_?t:this.getEmSizeInPixels()*t}if(_==="ms"||_==="s"){L.pfValue=_==="ms"?t:1e3*t}if(_==="deg"||_==="rad"){L.pfValue=_==="rad"?t:Ir(t)}if(_==="%"){L.pfValue=t/100}return L}else if(u.propList){var O=[];var z=""+t;if(z==="none");else{var F=z.split(/\s*,\s*|\s+/);for(var V=0;V0&&s>0&&!isNaN(a.w)&&!isNaN(a.h)&&a.w>0&&a.h>0){l=Math.min((o-2*r)/a.w,(s-2*r)/a.h);l=l>this._private.maxZoom?this._private.maxZoom:l;l=l=a.minZoom){a.maxZoom=r}return this},minZoom:function e(t){if(t===undefined){return this._private.minZoom}else{return this.zoomRange({min:t})}},maxZoom:function e(t){if(t===undefined){return this._private.maxZoom}else{return this.zoomRange({max:t})}},getZoomedViewport:function e(t){var r=this._private;var a=r.pan;var n=r.zoom;var i;var o;var s=false;if(!r.zoomingEnabled){s=true}if(I(t)){o=t}else if(_(t)){o=t.level;if(t.position!=null){i=Pr(t.position,n,a)}else if(t.renderedPosition!=null){i=t.renderedPosition}if(i!=null&&!r.panningEnabled){s=true}}o=o>r.maxZoom?r.maxZoom:o;o=or.maxZoom||!r.zoomingEnabled){o=true}else{r.zoom=l;i.push("zoom")}}if(n&&(!o||!t.cancelOnFailedZoom)&&r.panningEnabled){var u=t.pan;if(I(u.x)){r.pan.x=u.x;s=false}if(I(u.y)){r.pan.y=u.y;s=false}if(!s){i.push("pan")}}if(i.length>0){i.push("viewport");this.emit(i.join(" "));this.notify("viewport")}return this},center:function e(t){var r=this.getCenterPan(t);if(r){this._private.pan=r;this.emit("pan viewport");this.notify("viewport")}return this},getCenterPan:function e(t,r){if(!this._private.panningEnabled){return}if(D(t)){var a=t;t=this.mutableElements().filter(a)}else if(!L(t)){t=this.mutableElements()}if(t.length===0){return}var n=t.boundingBox();var i=this.width();var o=this.height();r=r===undefined?this._private.zoom:r;var s={x:(i-r*(n.x1+n.x2))/2,y:(o-r*(n.y1+n.y2))/2};return s},reset:function e(){if(!this._private.panningEnabled||!this._private.zoomingEnabled){return this}this.viewport({pan:{x:0,y:0},zoom:1});return this},invalidateSize:function e(){this._private.sizeCache=null},size:function e(){var t=this._private;var r=t.container;var a=this;return t.sizeCache=t.sizeCache||(r?function(){var e=a.window().getComputedStyle(r);var t=function t(r){return parseFloat(e.getPropertyValue(r))};return{width:r.clientWidth-t("padding-left")-t("padding-right"),height:r.clientHeight-t("padding-top")-t("padding-bottom")}}():{width:1,height:1})},width:function e(){return this.size().width},height:function e(){return this.size().height},extent:function e(){var t=this._private.pan;var r=this._private.zoom;var a=this.renderedExtent();var n={x1:(a.x1-t.x)/r,x2:(a.x2-t.x)/r,y1:(a.y1-t.y)/r,y2:(a.y2-t.y)/r};n.w=n.x2-n.x1;n.h=n.y2-n.y1;return n},renderedExtent:function e(){var t=this.width();var r=this.height();return{x1:0,y1:0,x2:t,y2:r,w:t,h:r}},multiClickDebounceTime:function e(t){if(t)this._private.multiClickDebounceTime=t;else return this._private.multiClickDebounceTime;return this}};hf.centre=hf.center;hf.autolockNodes=hf.autolock;hf.autoungrabifyNodes=hf.autoungrabify;var pf={data:fl.data({field:"data",bindingEvent:"data",allowBinding:true,allowSetting:true,settingEvent:"data",settingTriggersEvent:true,triggerFnName:"trigger",allowGetting:true,updateStyle:true}),removeData:fl.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:true,updateStyle:true}),scratch:fl.data({field:"scratch",bindingEvent:"scratch",allowBinding:true,allowSetting:true,settingEvent:"scratch",settingTriggersEvent:true,triggerFnName:"trigger",allowGetting:true,updateStyle:true}),removeScratch:fl.removeData({field:"scratch",event:"scratch",triggerFnName:"trigger",triggerEvent:true,updateStyle:true})};pf.attr=pf.data;pf.removeAttr=pf.removeData;var gf=function e(t){var r=this;t=se({},t);var a=t.container;if(a&&!N(a)&&N(a[0])){a=a[0]}var n=a?a._cyreg:null;n=n||{};if(n&&n.cy){n.cy.destroy();n={}}var i=n.readies=n.readies||[];if(a){a._cyreg=n}n.cy=r;var o=w!==undefined&&a!==undefined&&!t.headless;var s=t;s.layout=se({name:o?"grid":"null"},s.layout);s.renderer=se({name:o?"canvas":"null"},s.renderer);var l=function e(t,r,a){if(r!==undefined){return r}else if(a!==undefined){return a}else{return t}};var u=this._private={container:a,ready:false,options:s,elements:new Bv(this),listeners:[],aniEles:new Bv(this),data:s.data||{},scratch:{},layout:null,renderer:null,destroyed:false,notificationsEnabled:true,minZoom:1e-50,maxZoom:1e50,zoomingEnabled:l(true,s.zoomingEnabled),userZoomingEnabled:l(true,s.userZoomingEnabled),panningEnabled:l(true,s.panningEnabled),userPanningEnabled:l(true,s.userPanningEnabled),boxSelectionEnabled:l(true,s.boxSelectionEnabled),autolock:l(false,s.autolock,s.autolockNodes),autoungrabify:l(false,s.autoungrabify,s.autoungrabifyNodes),autounselectify:l(false,s.autounselectify),styleEnabled:s.styleEnabled===undefined?o:s.styleEnabled,zoom:I(s.zoom)?s.zoom:1,pan:{x:_(s.pan)&&I(s.pan.x)?s.pan.x:0,y:_(s.pan)&&I(s.pan.y)?s.pan.y:0},animation:{current:[],queue:[]},hasCompoundNodes:false,multiClickDebounceTime:l(250,s.multiClickDebounceTime)};this.createEmitter();this.selectionType(s.selectionType);this.zoomRange({min:s.minZoom,max:s.maxZoom});var v=function e(t,r){var a=t.some(W);if(a){return si.all(t).then(r)}else{r(t)}};if(u.styleEnabled){r.setStyle([])}var f=se({},s,s.renderer);r.initRenderer(f);var c=function e(t,a,n){r.notifications(false);var i=r.mutableElements();if(i.length>0){i.remove()}if(t!=null){if(_(t)||A(t)){r.add(t)}}r.one("layoutready",(function(e){r.notifications(true);r.emit(e);r.one("load",a);r.emitAndNotify("load")})).one("layoutstop",(function(){r.one("done",n);r.emit("done")}));var o=se({},r._private.options.layout);o.eles=r.elements();r.layout(o).run()};v([s.style,s.elements],(function(e){var t=e[0];var a=e[1];if(u.styleEnabled){r.style().append(t)}c(a,(function(){r.startAnimationLoop();u.ready=true;if(B(s.ready)){r.on("ready",s.ready)}for(var e=0;e0;var s=!!e.boundingBox;var l=t.extent();var u=qr(s?e.boundingBox:{x1:l.x1,y1:l.y1,w:l.w,h:l.h});var v;if(L(e.roots)){v=e.roots}else if(A(e.roots)){var f=[];for(var c=0;c0){var I=M();var R=P(I,B);if(R){I.outgoers().filter((function(e){return e.isNode()&&r.has(e)})).forEach(_)}else if(R===null){Lt("Detected double maximal shift for node `"+I.id()+"`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");break}}}var N=0;if(e.avoidOverlap){for(var O=0;O0&&m[0].length<=3?o/2:0);var v=2*Math.PI/m[n].length*i;if(n===0&&m[0].length===1){l=1}return{x:Q.x+l*Math.cos(v),y:Q.y+l*Math.sin(v)}}else{var f=m[n].length;var c=Math.max(f===1?0:s?(u.w-e.padding*2-J.w)/((e.grid?te:f)-1):(u.w-e.padding*2-J.w)/((e.grid?te:f)+1),N);var d={x:Q.x+(i+1-(f+1)/2)*c,y:Q.y+(n+1-(W+1)/2)*ee};return d}};r.nodes().layoutPositions(this,e,re);return this};var Tf={fit:true,padding:30,boundingBox:undefined,avoidOverlap:true,nodeDimensionsIncludeLabels:false,spacingFactor:undefined,radius:undefined,startAngle:3/2*Math.PI,sweep:undefined,clockwise:true,sort:undefined,animate:false,animationDuration:500,animationEasing:undefined,animateFilter:function e(t,r){return true},ready:undefined,stop:undefined,transform:function e(t,r){return r}};function kf(e){this.options=se({},Tf,e)}kf.prototype.run=function(){var e=this.options;var t=e;var r=e.cy;var a=t.eles;var n=t.counterclockwise!==undefined?!t.counterclockwise:t.clockwise;var i=a.nodes().not(":parent");if(t.sort){i=i.sort(t.sort)}var o=qr(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});var s={x:o.x1+o.w/2,y:o.y1+o.h/2};var l=t.sweep===undefined?2*Math.PI-2*Math.PI/i.length:t.sweep;var u=l/Math.max(1,i.length-1);var v;var f=0;for(var c=0;c1&&t.avoidOverlap){f*=1.75;var y=Math.cos(u)-Math.cos(0);var m=Math.sin(u)-Math.sin(0);var b=Math.sqrt(f*f/(y*y+m*m));v=Math.max(b,v)}var x=function e(r,a){var i=t.startAngle+a*u*(n?1:-1);var o=v*Math.cos(i);var l=v*Math.sin(i);var f={x:s.x+o,y:s.y+l};return f};a.nodes().layoutPositions(this,t,x);return this};var Cf={fit:true,padding:30,startAngle:3/2*Math.PI,sweep:undefined,clockwise:true,equidistant:false,minNodeSpacing:10,boundingBox:undefined,avoidOverlap:true,nodeDimensionsIncludeLabels:false,height:undefined,width:undefined,spacingFactor:undefined,concentric:function e(t){return t.degree()},levelWidth:function e(t){return t.maxDegree()/4},animate:false,animationDuration:500,animationEasing:undefined,animateFilter:function e(t,r){return true},ready:undefined,stop:undefined,transform:function e(t,r){return r}};function Pf(e){this.options=se({},Cf,e)}Pf.prototype.run=function(){var e=this.options;var t=e;var r=t.counterclockwise!==undefined?!t.counterclockwise:t.clockwise;var a=e.cy;var n=t.eles;var i=n.nodes().not(":parent");var o=qr(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:a.width(),h:a.height()});var s={x:o.x1+o.w/2,y:o.y1+o.h/2};var l=[];var u=0;for(var v=0;v0){var w=Math.abs(m[0].value-x.value);if(w>=g){m=[];y.push(m)}}m.push(x)}var E=u+t.minNodeSpacing;if(!t.avoidOverlap){var T=y.length>0&&y[0].length>1;var k=Math.min(o.w,o.h)/2-E;var C=k/(y.length+T?1:0);E=Math.min(E,C)}var P=0;for(var S=0;S1&&t.avoidOverlap){var _=Math.cos(A)-Math.cos(0);var M=Math.sin(A)-Math.sin(0);var I=Math.sqrt(E*E/(_*_+M*M));P=Math.max(I,P)}D.r=P;P+=E}if(t.equidistant){var R=0;var N=0;for(var L=0;L=e.numIter){return false}Of(a,e);a.temperature=a.temperature*e.coolingFactor;if(a.temperature=e.animationThreshold){i()}ft(v)}};v()}else{while(u){u=o(l);l++}Kf(a,e);s()}return this};Bf.prototype.stop=function(){this.stopped=true;if(this.thread){this.thread.stop()}this.emit("layoutstop");return this};Bf.prototype.destroy=function(){if(this.thread){this.thread.stop()}return this};var Af=function e(t,r,a){var n=a.eles.edges();var i=a.eles.nodes();var o=qr(a.boundingBox?a.boundingBox:{x1:0,y1:0,w:t.width(),h:t.height()});var s={isCompound:t.hasCompoundNodes(),layoutNodes:[],idToIndex:{},nodeSize:i.size(),graphSet:[],indexToGraph:[],layoutEdges:[],edgeSize:n.size(),temperature:a.initialTemp,clientWidth:o.w,clientHeight:o.h,boundingBox:o};var l=a.eles.components();var u={};for(var v=0;v0){s.graphSet.push(k);for(var v=0;vn.count){return 0}else{return n.graph}};var Mf=function e(t,r,a,n){var i=n.graphSet[a];if(-10){var f=n.nodeOverlap*v;var c=Math.sqrt(s*s+l*l);var d=f*s/c;var h=f*l/c}else{var p=Xf(t,s,l);var g=Xf(r,-1*s,-1*l);var y=g.x-p.x;var m=g.y-p.y;var b=y*y+m*m;var c=Math.sqrt(b);var f=(t.nodeRepulsion+r.nodeRepulsion)/b;var d=f*y/c;var h=f*m/c}if(!t.isLocked){t.offsetX-=d;t.offsetY-=h}if(!r.isLocked){r.offsetX+=d;r.offsetY+=h}return};var jf=function e(t,r,a,n){if(a>0){var i=t.maxX-r.minX}else{var i=r.maxX-t.minX}if(n>0){var o=t.maxY-r.minY}else{var o=r.maxY-t.minY}if(i>=0&&o>=0){return Math.sqrt(i*i+o*o)}else{return 0}};var Xf=function e(t,r,a){var n=t.positionX;var i=t.positionY;var o=t.height||1;var s=t.width||1;var l=a/r;var u=o/s;var v={};if(0===r&&0a){v.x=n;v.y=i+o/2;return v}if(0r&&-1*u<=l&&l<=u){v.x=n-s/2;v.y=i-s*a/2/r;return v}if(0=u)){v.x=n+o*r/2/a;v.y=i+o/2;return v}if(0>a&&(l<=-1*u||l>=u)){v.x=n-o*r/2/a;v.y=i-o/2;return v}return v};var Yf=function e(t,r){for(var a=0;aa){var g=r.gravity*d/p;var y=r.gravity*h/p;c.offsetX+=g;c.offsetY+=y}}}};var Wf=function e(t,r){var a=[];var n=0;var i=-1;a.push.apply(a,t.graphSet[0]);i+=t.graphSet[0].length;while(n<=i){var o=a[n++];var s=t.idToIndex[o];var l=t.layoutNodes[s];var u=l.children;if(0a){var i={x:a*t/n,y:a*r/n}}else{var i={x:t,y:r}}return i};var Hf=function e(t,r){var a=t.parentId;if(null==a){return}var n=r.layoutNodes[r.idToIndex[a]];var i=false;if(null==n.maxX||t.maxX+n.padRight>n.maxX){n.maxX=t.maxX+n.padRight;i=true}if(null==n.minX||t.minX-n.padLeftn.maxY){n.maxY=t.maxY+n.padBottom;i=true}if(null==n.minY||t.minY-n.padTopy){h+=g+r.componentSpacing;d=0;p=0;g=0}}};var Zf={fit:true,padding:30,boundingBox:undefined,avoidOverlap:true,avoidOverlapPadding:10,nodeDimensionsIncludeLabels:false,spacingFactor:undefined,condense:false,rows:undefined,cols:undefined,position:function e(t){},sort:undefined,animate:false,animationDuration:500,animationEasing:undefined,animateFilter:function e(t,r){return true},ready:undefined,stop:undefined,transform:function e(t,r){return r}};function $f(e){this.options=se({},Zf,e)}$f.prototype.run=function(){var e=this.options;var t=e;var r=e.cy;var a=t.eles;var n=a.nodes().not(":parent");if(t.sort){n=n.sort(t.sort)}var i=qr(t.boundingBox?t.boundingBox:{x1:0,y1:0,w:r.width(),h:r.height()});if(i.h===0||i.w===0){a.nodes().layoutPositions(this,t,(function(e){return{x:i.x1,y:i.y1}}))}else{var o=n.size();var s=Math.sqrt(o*i.h/i.w);var l=Math.round(s);var u=Math.round(i.w/i.h*s);var v=function e(t){if(t==null){return Math.min(l,u)}else{var r=Math.min(l,u);if(r==l){l=t}else{u=t}}};var f=function e(t){if(t==null){return Math.max(l,u)}else{var r=Math.max(l,u);if(r==l){l=t}else{u=t}}};var c=t.rows;var d=t.cols!=null?t.cols:t.columns;if(c!=null&&d!=null){l=c;u=d}else if(c!=null&&d==null){l=c;u=Math.ceil(o/l)}else if(c==null&&d!=null){u=d;l=Math.ceil(o/u)}else if(u*l>o){var h=v();var p=f();if((h-1)*p>=o){v(h-1)}else if((p-1)*h>=o){f(p-1)}}else{while(u*l=o){f(y+1)}else{v(g+1)}}}var m=i.w/u;var b=i.h/l;if(t.condense){m=0;b=0}if(t.avoidOverlap){for(var x=0;x=u){_=0;A++}};var I={};for(var R=0;R(b=ua(e,t,x[w],x[w+1],x[w+2],x[w+3]))){g(r,b);return true}}}else if(o.edgeType==="bezier"||o.edgeType==="multibezier"||o.edgeType==="self"||o.edgeType==="compound"){var x=o.allpts;for(var w=0;w+5(b=la(e,t,x[w],x[w+1],x[w+2],x[w+3],x[w+4],x[w+5]))){g(r,b);return true}}}var p=p||a.source;var m=m||a.target;var E=n.getArrowWidth(l,f);var T=[{name:"source",x:o.arrowStartX,y:o.arrowStartY,angle:o.srcArrowAngle},{name:"target",x:o.arrowEndX,y:o.arrowEndY,angle:o.tgtArrowAngle},{name:"mid-source",x:o.midX,y:o.midY,angle:o.midsrcArrowAngle},{name:"mid-target",x:o.midX,y:o.midY,angle:o.midtgtArrowAngle}];for(var w=0;w0){y(p);y(m)}}function b(e,t,r){return Gt(e,t,r)}function x(r,a){var n=r._private;var i=c;var o;if(a){o=a+"-"}else{o=""}r.boundingBox();var s=n.labelBounds[a||"main"];var l=r.pstyle(o+"label").value;var u=r.pstyle("text-events").strValue==="yes";if(!u||!l){return}var v=b(n.rscratch,"labelX",a);var f=b(n.rscratch,"labelY",a);var d=b(n.rscratch,"labelAngle",a);var h=r.pstyle(o+"text-margin-x").pfValue;var p=r.pstyle(o+"text-margin-y").pfValue;var y=s.x1-i-h;var m=s.x2+i-h;var x=s.y1-i-p;var w=s.y2+i-p;if(d){var E=Math.cos(d);var T=Math.sin(d);var k=function e(t,r){t=t-v;r=r-f;return{x:t*E-r*T+v,y:t*T+r*E+f}};var C=k(y,x);var P=k(y,w);var S=k(m,x);var D=k(m,w);var B=[C.x+h,C.y+p,S.x+h,S.y+p,D.x+h,D.y+p,P.x+h,P.y+p];if(va(e,t,B)){g(r);return true}}else{if(ea(s,e,t)){g(r);return true}}}for(var w=o.length-1;w>=0;w--){var E=o[w];if(E.isNode()){y(E)||x(E)}else{m(E)||x(E)||x(E,"source")||x(E,"target")}}return s};uc.getAllInBox=function(e,t,r,a){var n=this.getCachedZSortedEles().interactive;var i=[];var o=Math.min(e,r);var s=Math.max(e,r);var l=Math.min(t,a);var u=Math.max(t,a);e=o;r=s;t=l;a=u;var v=qr({x1:e,y1:t,x2:r,y2:a});for(var f=0;f0?-(Math.PI-t.ang):Math.PI+t.ang};var Mc=function e(t,r,a,n,i){t!==Bc?Ac(r,t,dc):_c(hc,dc);Ac(r,a,hc);pc=dc.nx*hc.ny-dc.ny*hc.nx;gc=dc.nx*hc.nx-dc.ny*-hc.ny;bc=Math.asin(Math.max(-1,Math.min(1,pc)));if(Math.abs(bc)<1e-6){fc=r.x;cc=r.y;wc=Tc=0;return}yc=1;mc=false;if(gc<0){if(bc<0){bc=Math.PI+bc}else{bc=Math.PI-bc;yc=-1;mc=true}}else{if(bc>0){yc=-1;mc=true}}if(r.radius!==undefined){Tc=r.radius}else{Tc=n}xc=bc/2;kc=Math.min(dc.len/2,hc.len/2);if(i){Ec=Math.abs(Math.cos(xc)*Tc/Math.sin(xc));if(Ec>kc){Ec=kc;wc=Math.abs(Ec*Math.sin(xc)/Math.cos(xc))}else{wc=Tc}}else{Ec=Math.min(kc,Tc);wc=Math.abs(Ec*Math.sin(xc)/Math.cos(xc))}Sc=r.x+hc.nx*Ec;Dc=r.y+hc.ny*Ec;fc=Sc-hc.ny*wc*yc;cc=Dc+hc.nx*wc*yc;Cc=r.x+dc.nx*Ec;Pc=r.y+dc.ny*Ec;Bc=r};function Ic(e,t){if(t.radius===0)e.lineTo(t.cx,t.cy);else e.arc(t.cx,t.cy,t.radius,t.startAngle,t.endAngle,t.counterClockwise)}function Rc(e,t,r,a){var n=arguments.length>4&&arguments[4]!==undefined?arguments[4]:true;if(a===0||t.radius===0)return{cx:t.x,cy:t.y,radius:0,startX:t.x,startY:t.y,stopX:t.x,stopY:t.y,startAngle:undefined,endAngle:undefined,counterClockwise:undefined};Mc(e,t,r,a,n);return{cx:fc,cy:cc,radius:wc,startX:Cc,startY:Pc,stopX:Sc,stopY:Dc,startAngle:dc.ang+Math.PI/2*yc,endAngle:hc.ang-Math.PI/2*yc,counterClockwise:mc}}var Nc={};Nc.findMidptPtsEtc=function(e,t){var r=t.posPts,a=t.intersectionPts,n=t.vectorNormInverse;var i;var o=e.pstyle("source-endpoint");var s=e.pstyle("target-endpoint");var l=o.units!=null&&s.units!=null;var u=function e(t,r,a,n){var i=n-r;var o=a-t;var s=Math.sqrt(o*o+i*i);return{x:-i/s,y:o/s}};var v=e.pstyle("edge-distances").value;switch(v){case"node-position":i=r;break;case"intersection":i=a;break;case"endpoints":{if(l){var f=this.manualEndptToPx(e.source()[0],o),c=p(f,2),d=c[0],h=c[1];var g=this.manualEndptToPx(e.target()[0],s),y=p(g,2),m=y[0],b=y[1];var x={x1:d,y1:h,x2:m,y2:b};n=u(d,h,m,b);i=x}else{Lt("Edge ".concat(e.id()," has edge-distances:endpoints specified without manual endpoints specified via source-endpoint and target-endpoint. Falling back on edge-distances:intersection (default)."));i=a}break}}return{midptPts:i,vectorNormInverse:n}};Nc.findHaystackPoints=function(e){for(var t=0;t0){return Math.max(t-r,0)}else{return Math.min(t+r,0)}};var B=D(P,k);var A=D(S,C);var _=false;if(m===u){y=Math.abs(B)>Math.abs(A)?n:a}else if(m===l||m===s){y=a;_=true}else if(m===i||m===o){y=n;_=true}var M=y===a;var I=M?A:B;var R=M?S:P;var N=Lr(R);var L=false;if(!(_&&(x||E))&&(m===s&&R<0||m===l&&R>0||m===i&&R>0||m===o&&R<0)){N*=-1;I=N*Math.abs(I);L=true}var O;if(x){var z=w<0?1+w:w;O=z*I}else{var F=w<0?I:0;O=F+w*N}var V=function e(t){return Math.abs(t)=Math.abs(I)};var j=V(O);var X=V(Math.abs(I)-Math.abs(O));var Y=j||X;if(Y&&!L){if(M){var q=Math.abs(R)<=c/2;var W=Math.abs(P)<=d/2;if(q){var U=(v.x1+v.x2)/2;var G=v.y1,H=v.y2;r.segpts=[U,G,U,H]}else if(W){var K=(v.y1+v.y2)/2;var Z=v.x1,$=v.x2;r.segpts=[Z,K,$,K]}else{r.segpts=[v.x1,v.y2]}}else{var Q=Math.abs(R)<=f/2;var J=Math.abs(S)<=h/2;if(Q){var ee=(v.y1+v.y2)/2;var te=v.x1,re=v.x2;r.segpts=[te,ee,re,ee]}else if(J){var ae=(v.x1+v.x2)/2;var ne=v.y1,ie=v.y2;r.segpts=[ae,ne,ae,ie]}else{r.segpts=[v.x2,v.y1]}}}else{if(M){var oe=v.y1+O+(g?c/2*N:0);var se=v.x1,le=v.x2;r.segpts=[se,oe,le,oe]}else{var ue=v.x1+O+(g?f/2*N:0);var ve=v.y1,fe=v.y2;r.segpts=[ue,ve,ue,fe]}}if(r.isRound){var ce=e.pstyle("taxi-radius").value;var de=e.pstyle("radius-type").value[0]==="arc-radius";r.radii=new Array(r.segpts.length/2).fill(ce);r.isArcRadius=new Array(r.segpts.length/2).fill(de)}};Nc.tryToCorrectInvalidPoints=function(e,t){var r=e._private.rscratch;if(r.edgeType==="bezier"){var a=t.srcPos,n=t.tgtPos,i=t.srcW,o=t.srcH,s=t.tgtW,l=t.tgtH,u=t.srcShape,v=t.tgtShape,f=t.srcCornerRadius,c=t.tgtCornerRadius,d=t.srcRs,h=t.tgtRs;var p=!I(r.startX)||!I(r.startY);var g=!I(r.arrowStartX)||!I(r.arrowStartY);var y=!I(r.endX)||!I(r.endY);var m=!I(r.arrowEndX)||!I(r.arrowEndY);var b=3;var x=this.getArrowWidth(e.pstyle("width").pfValue,e.pstyle("arrow-scale").value)*this.arrowShapeWidth;var w=b*x;var E=Or({x:r.ctrlpts[0],y:r.ctrlpts[1]},{x:r.startX,y:r.startY});var T=Eg.poolIndex()){var y=p;p=g;g=y}var m=f.srcPos=p.position();var b=f.tgtPos=g.position();var x=f.srcW=p.outerWidth();var w=f.srcH=p.outerHeight();var E=f.tgtW=g.outerWidth();var T=f.tgtH=g.outerHeight();var C=f.srcShape=r.nodeShapes[t.getNodeShape(p)];var P=f.tgtShape=r.nodeShapes[t.getNodeShape(g)];var S=f.srcCornerRadius=p.pstyle("corner-radius").value==="auto"?"auto":p.pstyle("corner-radius").pfValue;var D=f.tgtCornerRadius=g.pstyle("corner-radius").value==="auto"?"auto":g.pstyle("corner-radius").pfValue;var B=f.tgtRs=g._private.rscratch;var A=f.srcRs=p._private.rscratch;f.dirCounts={north:0,west:0,south:0,east:0,northwest:0,southwest:0,northeast:0,southeast:0};for(var _=0;_0){var K=i;var Z=zr(K,Dr(r));var $=zr(K,Dr(H));var Q=Z;if($2){var J=zr(K,{x:H[2],y:H[3]});if(J0){var ce=o;var de=zr(ce,Dr(r));var he=zr(ce,Dr(fe));var pe=de;if(he2){var ge=zr(ce,{x:fe[2],y:fe[3]});if(ge=v||b){c={cp:g,segment:m};break}}if(c){break}}var x=c.cp;var w=c.segment;var E=(v-d)/w.length;var T=w.t1-w.t0;var k=u?w.t0+T*E:w.t1-T*E;k=Yr(0,k,1);t=jr(x.p0,x.p1,x.p2,k);s=Yc(x.p0,x.p1,x.p2,k);break}case"straight":case"segments":case"haystack":{var C=0,P,S;var D,B;var A=a.allpts.length;for(var _=0;_+3=v){break}}var M=v-S;var I=M/P;I=Yr(0,I,1);t=Xr(D,B,I);s=Xc(D,B);break}}o("labelX",n,t.x);o("labelY",n,t.y);o("labelAutoAngle",n,s)};u("source");u("target");this.applyLabelDimensions(e)};Vc.applyLabelDimensions=function(e){this.applyPrefixedLabelDimensions(e);if(e.isEdge()){this.applyPrefixedLabelDimensions(e,"source");this.applyPrefixedLabelDimensions(e,"target")}};Vc.applyPrefixedLabelDimensions=function(e,t){var r=e._private;var a=this.getLabelText(e,t);var n=this.calculateLabelDimensions(e,a);var i=e.pstyle("line-height").pfValue;var o=e.pstyle("text-wrap").strValue;var s=Gt(r.rscratch,"labelWrapCachedLines",t)||[];var l=o!=="wrap"?1:Math.max(s.length,1);var u=n.height/l;var v=u*i;var f=n.width;var c=n.height+(l-1)*(i-1)*u;Ht(r.rstyle,"labelWidth",t,f);Ht(r.rscratch,"labelWidth",t,f);Ht(r.rstyle,"labelHeight",t,c);Ht(r.rscratch,"labelHeight",t,c);Ht(r.rscratch,"labelLineHeight",t,v)};Vc.getLabelText=function(e,t){var r=e._private;var a=t?t+"-":"";var n=e.pstyle(a+"label").strValue;var i=e.pstyle("text-transform").value;var o=function e(a,n){if(n){Ht(r.rscratch,a,t,n);return n}else{return Gt(r.rscratch,a,t)}};if(!n){return""}if(i=="none");else if(i=="uppercase"){n=n.toUpperCase()}else if(i=="lowercase"){n=n.toLowerCase()}var s=e.pstyle("text-wrap").value;if(s==="wrap"){var l=o("labelKey");if(l!=null&&o("labelWrapKey")===l){return o("labelWrapCachedText")}var v="​";var f=n.split("\n");var c=e.pstyle("text-max-width").pfValue;var d=e.pstyle("text-overflow-wrap").value;var h=d==="anywhere";var p=[];var g=/[\s\u200b]+|$/g;for(var y=0;yc){var E=m.matchAll(g);var T="";var k=0;var C=u(E),P;try{for(C.s();!(P=C.n()).done;){var S=P.value;var D=S[0];var B=m.substring(k,S.index);k=S.index+D.length;var A=T.length===0?B:T+B+D;var _=this.calculateLabelDimensions(e,A);var M=_.width;if(M<=c){T+=B+D}else{if(T){p.push(T)}T=B+D}}}catch(F){C.e(F)}finally{C.f()}if(!T.match(/^[\s\u200b]+$/)){p.push(T)}}else{p.push(m)}}o("labelWrapCachedLines",p);n=o("labelWrapCachedText",p.join("\n"));o("labelWrapKey",l)}else if(s==="ellipsis"){var I=e.pstyle("text-max-width").pfValue;var R="";var N="…";var L=false;if(this.calculateLabelDimensions(e,n).widthI){break}R+=n[O];if(O===n.length-1){L=true}}if(!L){R+=N}return R}return n};Vc.getLabelJustification=function(e){var t=e.pstyle("text-justification").strValue;var r=e.pstyle("text-halign").strValue;if(t==="auto"){if(e.isNode()){switch(r){case"left":return"right";case"right":return"left";default:return"center"}}else{return"center"}}else{return t}};Vc.calculateLabelDimensions=function(e,t){var r=this;var a=r.cy.window();var n=a.document;var i=Tt(t,e._private.labelDimsKey);var o=r.labelDimCache||(r.labelDimCache=[]);var s=o[i];if(s!=null){return s}var l=0;var u=e.pstyle("font-style").strValue;var v=e.pstyle("font-size").pfValue;var f=e.pstyle("font-family").strValue;var c=e.pstyle("font-weight").strValue;var d=this.labelCalcCanvas;var h=this.labelCalcCanvasContext;if(!d){d=this.labelCalcCanvas=n.createElement("canvas");h=this.labelCalcCanvasContext=d.getContext("2d");var p=d.style;p.position="absolute";p.left="-9999px";p.top="-9999px";p.zIndex="-1";p.visibility="hidden";p.pointerEvents="none"}h.font="".concat(u," ").concat(c," ").concat(v,"px ").concat(f);var g=0;var y=0;var m=t.split("\n");for(var b=0;b1&&arguments[1]!==undefined?arguments[1]:true;t.merge(r);if(a){for(var n=0;n=e.desktopTapThreshold2}var B=i(r);if(E){e.hoverData.tapholdCancelled=true}var A=function t(){var r=e.hoverData.dragDelta=e.hoverData.dragDelta||[];if(r.length===0){r.push(x[0]);r.push(x[1])}else{r[0]+=x[0];r[1]+=x[1]}};s=true;n(g,["mousemove","vmousemove","tapdrag"],r,{x:f[0],y:f[1]});var _=function t(){e.data.bgActivePosistion=undefined;if(!e.hoverData.selecting){l.emit({originalEvent:r,type:"boxstart",position:{x:f[0],y:f[1]}})}h[4]=1;e.hoverData.selecting=true;e.redrawHint("select",true);e.redraw()};if(e.hoverData.which===3){if(E){var M={originalEvent:r,type:"cxtdrag",position:{x:f[0],y:f[1]}};if(b){b.emit(M)}else{l.emit(M)}e.hoverData.cxtDragged=true;if(!e.hoverData.cxtOver||g!==e.hoverData.cxtOver){if(e.hoverData.cxtOver){e.hoverData.cxtOver.emit({originalEvent:r,type:"cxtdragout",position:{x:f[0],y:f[1]}})}e.hoverData.cxtOver=g;if(g){g.emit({originalEvent:r,type:"cxtdragover",position:{x:f[0],y:f[1]}})}}}}else if(e.hoverData.dragging){s=true;if(l.panningEnabled()&&l.userPanningEnabled()){var R;if(e.hoverData.justStartedPan){var N=e.hoverData.mdownPos;R={x:(f[0]-N[0])*u,y:(f[1]-N[1])*u};e.hoverData.justStartedPan=false}else{R={x:x[0]*u,y:x[1]*u}}l.panBy(R);l.emit("dragpan");e.hoverData.dragged=true}f=e.projectIntoViewport(r.clientX,r.clientY)}else if(h[4]==1&&(b==null||b.pannable())){if(E){if(!e.hoverData.dragging&&l.boxSelectionEnabled()&&(B||!l.panningEnabled()||!l.userPanningEnabled())){_()}else if(!e.hoverData.selecting&&l.panningEnabled()&&l.userPanningEnabled()){var L=o(b,e.hoverData.downs);if(L){e.hoverData.dragging=true;e.hoverData.justStartedPan=true;h[4]=0;e.data.bgActivePosistion=Dr(c);e.redrawHint("select",true);e.redraw()}}if(b&&b.pannable()&&b.active()){b.unactivate()}}}else{if(b&&b.pannable()&&b.active()){b.unactivate()}if((!b||!b.grabbed())&&g!=m){if(m){n(m,["mouseout","tapdragout"],r,{x:f[0],y:f[1]})}if(g){n(g,["mouseover","tapdragover"],r,{x:f[0],y:f[1]})}e.hoverData.last=g}if(b){if(E){if(l.boxSelectionEnabled()&&B){if(b&&b.grabbed()){y(w);b.emit("freeon");w.emit("free");if(e.dragData.didDrag){b.emit("dragfreeon");w.emit("dragfree")}}_()}else if(b&&b.grabbed()&&e.nodeIsDraggable(b)){var O=!e.dragData.didDrag;if(O){e.redrawHint("eles",true)}e.dragData.didDrag=true;if(!e.hoverData.draggingEles){p(w,{inDragLayer:true})}var z={x:0,y:0};if(I(x[0])&&I(x[1])){z.x+=x[0];z.y+=x[1];if(O){var F=e.hoverData.dragDelta;if(F&&I(F[0])&&I(F[1])){z.x+=F[0];z.y+=F[1]}}}e.hoverData.draggingEles=true;w.silentShift(z).emit("position drag");e.redrawHint("drag",true);e.redraw()}}else{A()}}s=true}h[2]=f[0];h[3]=f[1];if(s){if(r.stopPropagation)r.stopPropagation();if(r.preventDefault)r.preventDefault();return false}}),false);var D,B,A;e.registerBinding(t,"mouseup",(function t(a){if(e.hoverData.which===1&&a.which!==1&&e.hoverData.capture){return}var o=e.hoverData.capture;if(!o){return}e.hoverData.capture=false;var s=e.cy;var l=e.projectIntoViewport(a.clientX,a.clientY);var u=e.selection;var v=e.findNearestElement(l[0],l[1],true,false);var f=e.dragData.possibleDragElements;var c=e.hoverData.down;var d=i(a);if(e.data.bgActivePosistion){e.redrawHint("select",true);e.redraw()}e.hoverData.tapholdCancelled=true;e.data.bgActivePosistion=undefined;if(c){c.unactivate()}if(e.hoverData.which===3){var h={originalEvent:a,type:"cxttapend",position:{x:l[0],y:l[1]}};if(c){c.emit(h)}else{s.emit(h)}if(!e.hoverData.cxtDragged){var p={originalEvent:a,type:"cxttap",position:{x:l[0],y:l[1]}};if(c){c.emit(p)}else{s.emit(p)}}e.hoverData.cxtDragged=false;e.hoverData.which=null}else if(e.hoverData.which===1){n(v,["mouseup","tapend","vmouseup"],a,{x:l[0],y:l[1]});if(!e.dragData.didDrag&&!e.hoverData.dragged&&!e.hoverData.selecting&&!e.hoverData.isOverThresholdDrag){n(c,["click","tap","vclick"],a,{x:l[0],y:l[1]});B=false;if(a.timeStamp-A<=s.multiClickDebounceTime()){D&&clearTimeout(D);B=true;A=null;n(c,["dblclick","dbltap","vdblclick"],a,{x:l[0],y:l[1]})}else{D=setTimeout((function(){if(B)return;n(c,["oneclick","onetap","voneclick"],a,{x:l[0],y:l[1]})}),s.multiClickDebounceTime());A=a.timeStamp}}if(c==null&&!e.dragData.didDrag&&!e.hoverData.selecting&&!e.hoverData.dragged&&!i(a)){s.$(r).unselect(["tapunselect"]);if(f.length>0){e.redrawHint("eles",true)}e.dragData.possibleDragElements=f=s.collection()}if(v==c&&!e.dragData.didDrag&&!e.hoverData.selecting){if(v!=null&&v._private.selectable){if(e.hoverData.dragging);else if(s.selectionType()==="additive"||d){if(v.selected()){v.unselect(["tapunselect"])}else{v.select(["tapselect"])}}else{if(!d){s.$(r).unmerge(v).unselect(["tapunselect"]);v.select(["tapselect"])}}e.redrawHint("eles",true)}}if(e.hoverData.selecting){var g=s.collection(e.getAllInBox(u[0],u[1],u[2],u[3]));e.redrawHint("select",true);if(g.length>0){e.redrawHint("eles",true)}s.emit({type:"boxend",originalEvent:a,position:{x:l[0],y:l[1]}});var m=function e(t){return t.selectable()&&!t.selected()};if(s.selectionType()==="additive"){g.emit("box").stdFilter(m).select().emit("boxselect")}else{if(!d){s.$(r).unmerge(g).unselect()}g.emit("box").stdFilter(m).select().emit("boxselect")}e.redraw()}if(e.hoverData.dragging){e.hoverData.dragging=false;e.redrawHint("select",true);e.redrawHint("eles",true);e.redraw()}if(!u[4]){e.redrawHint("drag",true);e.redrawHint("eles",true);var b=c&&c.grabbed();y(f);if(b){c.emit("freeon");f.emit("free");if(e.dragData.didDrag){c.emit("dragfreeon");f.emit("dragfree")}}}}u[4]=0;e.hoverData.down=null;e.hoverData.cxtStarted=false;e.hoverData.draggingEles=false;e.hoverData.selecting=false;e.hoverData.isOverThresholdDrag=false;e.dragData.didDrag=false;e.hoverData.dragged=false;e.hoverData.dragDelta=[];e.hoverData.mdownPos=null;e.hoverData.mdownGPos=null;e.hoverData.which=null}),false);var _=function t(r){if(e.scrollingPage){return}var a=e.cy;var n=a.zoom();var i=a.pan();var o=e.projectIntoViewport(r.clientX,r.clientY);var s=[o[0]*n+i.x,o[1]*n+i.y];if(e.hoverData.draggingEles||e.hoverData.dragging||e.hoverData.cxtStarted||C()){r.preventDefault();return}if(a.panningEnabled()&&a.userPanningEnabled()&&a.zoomingEnabled()&&a.userZoomingEnabled()){r.preventDefault();e.data.wheelZooming=true;clearTimeout(e.data.wheelTimeout);e.data.wheelTimeout=setTimeout((function(){e.data.wheelZooming=false;e.redrawHint("eles",true);e.redraw()}),150);var l;if(r.deltaY!=null){l=r.deltaY/-250}else if(r.wheelDeltaY!=null){l=r.wheelDeltaY/1e3}else{l=r.wheelDelta/1e3}l=l*e.wheelSensitivity;var u=r.deltaMode===1;if(u){l*=33}var v=a.zoom()*Math.pow(10,l);if(r.type==="gesturechange"){v=e.gestureStartZoom*r.scale}a.zoom({level:v,renderedPosition:{x:s[0],y:s[1]}});a.emit(r.type==="gesturechange"?"pinchzoom":"scrollzoom")}};e.registerBinding(e.container,"wheel",_,true);e.registerBinding(t,"scroll",(function t(r){e.scrollingPage=true;clearTimeout(e.scrollingPageTimeout);e.scrollingPageTimeout=setTimeout((function(){e.scrollingPage=false}),250)}),true);e.registerBinding(e.container,"gesturestart",(function t(r){e.gestureStartZoom=e.cy.zoom();if(!e.hasTouchStarted){r.preventDefault()}}),true);e.registerBinding(e.container,"gesturechange",(function(t){if(!e.hasTouchStarted){_(t)}}),true);e.registerBinding(e.container,"mouseout",(function t(r){var a=e.projectIntoViewport(r.clientX,r.clientY);e.cy.emit({originalEvent:r,type:"mouseout",position:{x:a[0],y:a[1]}})}),false);e.registerBinding(e.container,"mouseover",(function t(r){var a=e.projectIntoViewport(r.clientX,r.clientY);e.cy.emit({originalEvent:r,type:"mouseover",position:{x:a[0],y:a[1]}})}),false);var M,R,N,L;var O,z;var F,V;var j,X;var Y,q;var W;var U=function e(t,r,a,n){return Math.sqrt((a-t)*(a-t)+(n-r)*(n-r))};var G=function e(t,r,a,n){return(a-t)*(a-t)+(n-r)*(n-r)};var H;e.registerBinding(e.container,"touchstart",H=function t(r){e.hasTouchStarted=true;if(!P(r)){return}b();e.touchData.capture=true;e.data.bgActivePosistion=undefined;var a=e.cy;var i=e.touchData.now;var o=e.touchData.earlier;if(r.touches[0]){var s=e.projectIntoViewport(r.touches[0].clientX,r.touches[0].clientY);i[0]=s[0];i[1]=s[1]}if(r.touches[1]){var s=e.projectIntoViewport(r.touches[1].clientX,r.touches[1].clientY);i[2]=s[0];i[3]=s[1]}if(r.touches[2]){var s=e.projectIntoViewport(r.touches[2].clientX,r.touches[2].clientY);i[4]=s[0];i[5]=s[1]}if(r.touches[1]){e.touchData.singleTouchMoved=true;y(e.dragData.touchDragEles);var l=e.findContainerClientCoords();j=l[0];X=l[1];Y=l[2];q=l[3];M=r.touches[0].clientX-j;R=r.touches[0].clientY-X;N=r.touches[1].clientX-j;L=r.touches[1].clientY-X;W=0<=M&&M<=Y&&0<=N&&N<=Y&&0<=R&&R<=q&&0<=L&&L<=q;var u=a.pan();var v=a.zoom();O=U(M,R,N,L);z=G(M,R,N,L);F=[(M+N)/2,(R+L)/2];V=[(F[0]-u.x)/v,(F[1]-u.y)/v];var c=200;var d=c*c;if(z=1){var C=e.touchData.startPosition=[null,null,null,null,null,null];for(var S=0;S=e.touchTapThreshold2}if(a&&e.touchData.cxt){r.preventDefault();var T=r.touches[0].clientX-j,k=r.touches[0].clientY-X;var C=r.touches[1].clientX-j,S=r.touches[1].clientY-X;var D=G(T,k,C,S);var B=D/z;var A=150;var _=A*A;var F=1.5;var Y=F*F;if(B>=Y||D>=_){e.touchData.cxt=false;e.data.bgActivePosistion=undefined;e.redrawHint("select",true);var q={originalEvent:r,type:"cxttapend",position:{x:l[0],y:l[1]}};if(e.touchData.start){e.touchData.start.unactivate().emit(q);e.touchData.start=null}else{s.emit(q)}}}if(a&&e.touchData.cxt){var q={originalEvent:r,type:"cxtdrag",position:{x:l[0],y:l[1]}};e.data.bgActivePosistion=undefined;e.redrawHint("select",true);if(e.touchData.start){e.touchData.start.emit(q)}else{s.emit(q)}if(e.touchData.start){e.touchData.start._private.grabbed=false}e.touchData.cxtDragged=true;var H=e.findNearestElement(l[0],l[1],true,true);if(!e.touchData.cxtOver||H!==e.touchData.cxtOver){if(e.touchData.cxtOver){e.touchData.cxtOver.emit({originalEvent:r,type:"cxtdragout",position:{x:l[0],y:l[1]}})}e.touchData.cxtOver=H;if(H){H.emit({originalEvent:r,type:"cxtdragover",position:{x:l[0],y:l[1]}})}}}else if(a&&r.touches[2]&&s.boxSelectionEnabled()){r.preventDefault();e.data.bgActivePosistion=undefined;this.lastThreeTouch=+new Date;if(!e.touchData.selecting){s.emit({originalEvent:r,type:"boxstart",position:{x:l[0],y:l[1]}})}e.touchData.selecting=true;e.touchData.didSelect=true;i[4]=1;if(!i||i.length===0||i[0]===undefined){i[0]=(l[0]+l[2]+l[4])/3;i[1]=(l[1]+l[3]+l[5])/3;i[2]=(l[0]+l[2]+l[4])/3+1;i[3]=(l[1]+l[3]+l[5])/3+1}else{i[2]=(l[0]+l[2]+l[4])/3;i[3]=(l[1]+l[3]+l[5])/3}e.redrawHint("select",true);e.redraw()}else if(a&&r.touches[1]&&!e.touchData.didSelect&&s.zoomingEnabled()&&s.panningEnabled()&&s.userZoomingEnabled()&&s.userPanningEnabled()){r.preventDefault();e.data.bgActivePosistion=undefined;e.redrawHint("select",true);var K=e.dragData.touchDragEles;if(K){e.redrawHint("drag",true);for(var Z=0;Z0&&!e.hoverData.draggingEles&&!e.swipePanning&&e.data.bgActivePosistion!=null){e.data.bgActivePosistion=undefined;e.redrawHint("select",true);e.redraw()}},false);var Z;e.registerBinding(t,"touchcancel",Z=function t(r){var a=e.touchData.start;e.touchData.capture=false;if(a){a.unactivate()}});var $,Q,J,ee;e.registerBinding(t,"touchend",$=function t(a){var i=e.touchData.start;var o=e.touchData.capture;if(o){if(a.touches.length===0){e.touchData.capture=false}a.preventDefault()}else{return}var s=e.selection;e.swipePanning=false;e.hoverData.draggingEles=false;var l=e.cy;var u=l.zoom();var v=e.touchData.now;var f=e.touchData.earlier;if(a.touches[0]){var c=e.projectIntoViewport(a.touches[0].clientX,a.touches[0].clientY);v[0]=c[0];v[1]=c[1]}if(a.touches[1]){var c=e.projectIntoViewport(a.touches[1].clientX,a.touches[1].clientY);v[2]=c[0];v[3]=c[1]}if(a.touches[2]){var c=e.projectIntoViewport(a.touches[2].clientX,a.touches[2].clientY);v[4]=c[0];v[5]=c[1]}if(i){i.unactivate()}var d;if(e.touchData.cxt){d={originalEvent:a,type:"cxttapend",position:{x:v[0],y:v[1]}};if(i){i.emit(d)}else{l.emit(d)}if(!e.touchData.cxtDragged){var h={originalEvent:a,type:"cxttap",position:{x:v[0],y:v[1]}};if(i){i.emit(h)}else{l.emit(h)}}if(e.touchData.start){e.touchData.start._private.grabbed=false}e.touchData.cxt=false;e.touchData.start=null;e.redraw();return}if(!a.touches[2]&&l.boxSelectionEnabled()&&e.touchData.selecting){e.touchData.selecting=false;var p=l.collection(e.getAllInBox(s[0],s[1],s[2],s[3]));s[0]=undefined;s[1]=undefined;s[2]=undefined;s[3]=undefined;s[4]=0;e.redrawHint("select",true);l.emit({type:"boxend",originalEvent:a,position:{x:v[0],y:v[1]}});var g=function e(t){return t.selectable()&&!t.selected()};p.emit("box").stdFilter(g).select().emit("boxselect");if(p.nonempty()){e.redrawHint("eles",true)}e.redraw()}if(i!=null){i.unactivate()}if(a.touches[2]){e.data.bgActivePosistion=undefined;e.redrawHint("select",true)}else if(a.touches[1]);else if(a.touches[0]);else if(!a.touches[0]){e.data.bgActivePosistion=undefined;e.redrawHint("select",true);var m=e.dragData.touchDragEles;if(i!=null){var b=i._private.grabbed;y(m);e.redrawHint("drag",true);e.redrawHint("eles",true);if(b){i.emit("freeon");m.emit("free");if(e.dragData.didDrag){i.emit("dragfreeon");m.emit("dragfree")}}n(i,["touchend","tapend","vmouseup","tapdragout"],a,{x:v[0],y:v[1]});i.unactivate();e.touchData.start=null}else{var x=e.findNearestElement(v[0],v[1],true,true);n(x,["touchend","tapend","vmouseup","tapdragout"],a,{x:v[0],y:v[1]})}var w=e.touchData.startPosition[0]-v[0];var E=w*w;var T=e.touchData.startPosition[1]-v[1];var k=T*T;var C=E+k;var P=C*u*u;if(!e.touchData.singleTouchMoved){if(!i){l.$(":selected").unselect(["tapunselect"])}n(i,["tap","vclick"],a,{x:v[0],y:v[1]});Q=false;if(a.timeStamp-ee<=l.multiClickDebounceTime()){J&&clearTimeout(J);Q=true;ee=null;n(i,["dbltap","vdblclick"],a,{x:v[0],y:v[1]})}else{J=setTimeout((function(){if(Q)return;n(i,["onetap","voneclick"],a,{x:v[0],y:v[1]})}),l.multiClickDebounceTime());ee=a.timeStamp}}if(i!=null&&!e.dragData.didDrag&&i._private.selectable&&P0){return p[0]}}return null};var h=Object.keys(c);for(var p=0;p0){return d}return aa(i,o,t,r,a,n,s,l)},checkPoint:function e(t,r,a,n,i,o,s,l){l=l==="auto"?Pa(n,i):l;var u=2*l;if(fa(t,r,this.points,o,s,n,i-u,[0,-1],a)){return true}if(fa(t,r,this.points,o,s,n-u,i,[0,-1],a)){return true}var v=n/2+2*a;var f=i/2+2*a;var c=[o-v,s-f,o-v,s,o+v,s,o+v,s-f];if(va(t,r,c)){return true}if(ga(t,r,u,u,o+n/2-l,s+i/2-l,a)){return true}if(ga(t,r,u,u,o-n/2+l,s+i/2-l,a)){return true}return false}}};Qc.registerNodeShapes=function(){var e=this.nodeShapes={};var t=this;this.generateEllipse();this.generatePolygon("triangle",Ta(3,0));this.generateRoundPolygon("round-triangle",Ta(3,0));this.generatePolygon("rectangle",Ta(4,0));e["square"]=e["rectangle"];this.generateRoundRectangle();this.generateCutRectangle();this.generateBarrel();this.generateBottomRoundrectangle();{var r=[0,1,1,0,0,-1,-1,0];this.generatePolygon("diamond",r);this.generateRoundPolygon("round-diamond",r)}this.generatePolygon("pentagon",Ta(5,0));this.generateRoundPolygon("round-pentagon",Ta(5,0));this.generatePolygon("hexagon",Ta(6,0));this.generateRoundPolygon("round-hexagon",Ta(6,0));this.generatePolygon("heptagon",Ta(7,0));this.generateRoundPolygon("round-heptagon",Ta(7,0));this.generatePolygon("octagon",Ta(8,0));this.generateRoundPolygon("round-octagon",Ta(8,0));var a=new Array(20);{var n=Ca(5,0);var i=Ca(5,Math.PI/5);var o=.5*(3-Math.sqrt(5));o*=1.57;for(var s=0;s=t.deqFastCost*g){break}}else{if(i){if(h>=t.deqCost*u||h>=t.deqAvgCost*l){break}}else if(p>=t.deqNoDrawCost*nd){break}}var y=t.deq(r,c,f);if(y.length>0){for(var m=0;m0){t.onDeqd(r,v);if(!i&&t.shouldRedraw(r,v,c,f)){n()}}};var o=t.priority||It;a.beforeRender(i,o(r))}}};var od=function(){function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:_t;o(this,e);this.idsByKey=new Zt;this.keyForId=new Zt;this.cachesByLvl=new Zt;this.lvls=[];this.getKey=t;this.doesEleInvalidateKey=r}return l(e,[{key:"getIdsFor",value:function e(t){if(t==null){Rt("Can not get id list for null key")}var r=this.idsByKey;var a=this.idsByKey.get(t);if(!a){a=new Jt;r.set(t,a)}return a}},{key:"addIdForKey",value:function e(t,r){if(t!=null){this.getIdsFor(t).add(r)}}},{key:"deleteIdForKey",value:function e(t,r){if(t!=null){this.getIdsFor(t)["delete"](r)}}},{key:"getNumberOfIdsForKey",value:function e(t){if(t==null){return 0}else{return this.getIdsFor(t).size}}},{key:"updateKeyMappingFor",value:function e(t){var r=t.id();var a=this.keyForId.get(r);var n=this.getKey(t);this.deleteIdForKey(a,r);this.addIdForKey(n,r);this.keyForId.set(r,n)}},{key:"deleteKeyMappingFor",value:function e(t){var r=t.id();var a=this.keyForId.get(r);this.deleteIdForKey(a,r);this.keyForId["delete"](r)}},{key:"keyHasChangedFor",value:function e(t){var r=t.id();var a=this.keyForId.get(r);var n=this.getKey(t);return a!==n}},{key:"isInvalid",value:function e(t){return this.keyHasChangedFor(t)||this.doesEleInvalidateKey(t)}},{key:"getCachesAt",value:function e(t){var r=this.cachesByLvl,a=this.lvls;var n=r.get(t);if(!n){n=new Zt;r.set(t,n);a.push(t)}return n}},{key:"getCache",value:function e(t,r){return this.getCachesAt(r).get(t)}},{key:"get",value:function e(t,r){var a=this.getKey(t);var n=this.getCache(a,r);if(n!=null){this.updateKeyMappingFor(t)}return n}},{key:"getForCachedKey",value:function e(t,r){var a=this.keyForId.get(t.id());var n=this.getCache(a,r);return n}},{key:"hasCache",value:function e(t,r){return this.getCachesAt(r).has(t)}},{key:"has",value:function e(t,r){var a=this.getKey(t);return this.hasCache(a,r)}},{key:"setCache",value:function e(t,r,a){a.key=t;this.getCachesAt(r).set(t,a)}},{key:"set",value:function e(t,r,a){var n=this.getKey(t);this.setCache(n,r,a);this.updateKeyMappingFor(t)}},{key:"deleteCache",value:function e(t,r){this.getCachesAt(r)["delete"](t)}},{key:"delete",value:function e(t,r){var a=this.getKey(t);this.deleteCache(a,r)}},{key:"invalidateKey",value:function e(t){var r=this;this.lvls.forEach((function(e){return r.deleteCache(t,e)}))}},{key:"invalidate",value:function e(t){var r=t.id();var a=this.keyForId.get(r);this.deleteKeyMappingFor(t);var n=this.doesEleInvalidateKey(t);if(n){this.invalidateKey(a)}return n||this.getNumberOfIdsForKey(a)===0}}])}();var sd=25;var ld=50;var ud=-4;var vd=3;var fd=7.99;var cd=8;var dd=1024;var hd=1024;var pd=1024;var gd=.2;var yd=.8;var md=10;var bd=.15;var xd=.1;var wd=.9;var Ed=.9;var Td=100;var kd=1;var Cd={dequeue:"dequeue",downscale:"downscale",highQuality:"highQuality"};var Pd=Yt({getKey:null,doesEleInvalidateKey:_t,drawElement:null,getBoundingBox:null,getRotationPoint:null,getRotationOffset:null,isVisible:At,allowEdgeTxrCaching:true,allowParentTxrCaching:true});var Sd=function e(t,r){var a=this;a.renderer=t;a.onDequeues=[];var n=Pd(r);se(a,n);a.lookup=new od(n.getKey,n.doesEleInvalidateKey);a.setupDequeueing()};var Dd=Sd.prototype;Dd.reasons=Cd;Dd.getTextureQueue=function(e){var t=this;t.eleImgCaches=t.eleImgCaches||{};return t.eleImgCaches[e]=t.eleImgCaches[e]||[]};Dd.getRetiredTextureQueue=function(e){var t=this;var r=t.eleImgCaches.retired=t.eleImgCaches.retired||{};var a=r[e]=r[e]||[];return a};Dd.getElementQueue=function(){var e=this;var t=e.eleCacheQueue=e.eleCacheQueue||new fr((function(e,t){return t.reqs-e.reqs}));return t};Dd.getElementKeyToQueue=function(){var e=this;var t=e.eleKeyToCacheQueue=e.eleKeyToCacheQueue||{};return t};Dd.getElement=function(e,t,r,a,n){var i=this;var o=this.renderer;var s=o.cy.zoom();var l=this.lookup;if(!t||t.w===0||t.h===0||isNaN(t.w)||isNaN(t.h)||!e.visible()||e.removed()){return null}if(!i.allowEdgeTxrCaching&&e.isEdge()||!i.allowParentTxrCaching&&e.isParent()){return null}if(a==null){a=Math.ceil(Nr(s*r))}if(a=fd||a>vd){return null}var u=Math.pow(2,a);var v=t.h*u;var f=t.w*u;var c=o.eleTextBiggerThanMin(e,u);if(!this.isVisible(e,c)){return null}var d=l.get(e,a);if(d&&d.invalidated){d.invalidated=false;d.texture.invalidatedWidth-=d.width}if(d){return d}var h;if(v<=sd){h=sd}else if(v<=ld){h=ld}else{h=Math.ceil(v/ld)*ld}if(v>pd||f>hd){return null}var p=i.getTextureQueue(h);var g=p[p.length-2];var y=function e(){return i.recycleTexture(h,f)||i.addTexture(h,f)};if(!g){g=p[p.length-1]}if(!g){g=y()}if(g.width-g.usedWidtha;S--){C=i.getElement(e,t,r,S,Cd.downscale)}P()}else{i.queueElement(e,E.level-1);return E}}else{var D;if(!b&&!x&&!w){for(var B=a-1;B>=ud;B--){var A=l.get(e,B);if(A){D=A;break}}}if(m(D)){i.queueElement(e,a);return D}g.context.translate(g.usedWidth,0);g.context.scale(u,u);this.drawElement(g.context,e,t,c,false);g.context.scale(1/u,1/u);g.context.translate(-g.usedWidth,0)}d={x:g.usedWidth,texture:g,level:a,scale:u,width:f,height:v,scaledLabelShown:c};g.usedWidth+=Math.ceil(f+cd);g.eleCaches.push(d);l.set(e,a,d);i.checkTextureFullness(g);return d};Dd.invalidateElements=function(e){for(var t=0;t=gd*e.width){this.retireTexture(e)}};Dd.checkTextureFullness=function(e){var t=this;var r=t.getTextureQueue(e.height);if(e.usedWidth/e.width>yd&&e.fullnessChecks>=md){qt(r,e)}else{e.fullnessChecks++}};Dd.retireTexture=function(e){var t=this;var r=e.height;var a=t.getTextureQueue(r);var n=this.lookup;qt(a,e);e.retired=true;var i=e.eleCaches;for(var o=0;o=t){o.retired=false;o.usedWidth=0;o.invalidatedWidth=0;o.fullnessChecks=0;Wt(o.eleCaches);o.context.setTransform(1,0,0,1,0,0);o.context.clearRect(0,0,o.width,o.height);qt(n,o);a.push(o);return o}}};Dd.queueElement=function(e,t){var r=this;var a=r.getElementQueue();var n=r.getElementKeyToQueue();var i=this.getKey(e);var o=n[i];if(o){o.level=Math.max(o.level,t);o.eles.merge(e);o.reqs++;a.updateItem(o)}else{var s={eles:e.spawn().merge(e),level:t,reqs:1,key:i};a.push(s);n[i]=s}};Dd.dequeue=function(e){var t=this;var r=t.getElementQueue();var a=t.getElementKeyToQueue();var n=[];var i=t.lookup;for(var o=0;o0){var s=r.pop();var l=s.key;var u=s.eles[0];var v=i.hasCache(u,s.level);a[l]=null;if(v){continue}n.push(s);var f=t.getBoundingBox(u);t.getElement(u,f,e,s.level,Cd.dequeue)}else{break}}return n};Dd.removeFromQueue=function(e){var t=this;var r=t.getElementQueue();var a=t.getElementKeyToQueue();var n=this.getKey(e);var i=a[n];if(i!=null){if(i.eles.length===1){i.reqs=Bt;r.updateItem(i);r.pop();a[n]=null}else{i.eles.unmerge(e)}}};Dd.onDequeue=function(e){this.onDequeues.push(e)};Dd.offDequeue=function(e){qt(this.onDequeues,e)};Dd.setupDequeueing=id.setupDequeueing({deqRedrawThreshold:Td,deqCost:bd,deqAvgCost:xd,deqNoDrawCost:wd,deqFastCost:Ed,deq:function e(t,r,a){return t.dequeue(r,a)},onDeqd:function e(t,r){for(var a=0;a=Md||r>_d){return null}}a.validateLayersElesOrdering(r,e);var l=a.layersByLevel;var u=Math.pow(2,r);var v=l[r]=l[r]||[];var f;var c=a.levelIsComplete(r,e);var d;var h=function t(){var n=function t(r){a.validateLayersElesOrdering(r,e);if(a.levelIsComplete(r,e)){d=l[r];return true}};var i=function e(t){if(d){return}for(var a=r+t;Ad<=a&&a<=_d;a+=t){if(n(a)){break}}};i(1);i(-1);for(var o=v.length-1;o>=0;o--){var s=v[o];if(s.invalid){qt(v,s)}}};if(!c){h()}else{return v}var p=function t(){if(!f){f=qr();for(var r=0;rXd||o>Xd){return null}var s=i*o;if(s>jd){return null}var l=a.makeLayer(f,r);if(n!=null){var c=v.indexOf(n)+1;v.splice(c,0,l)}else if(t.insert===undefined||t.insert){v.unshift(l)}return l};if(a.skipping&&!s){return null}var y=null;var m=e.length/Bd;var b=!s;for(var x=0;x=m||!ra(y.bb,w.boundingBox())){y=g({insert:true,after:y});if(!y){return null}}if(d||b){a.queueLayer(y,w)}else{a.drawEleInLayer(y,w,r,t)}y.eles.push(w);T[r]=y}if(d){return d}if(b){return null}return v};Wd.getEleLevelForLayerLevel=function(e,t){return e};Wd.drawEleInLayer=function(e,t,r,a){var n=this;var i=this.renderer;var o=e.context;var s=t.boundingBox();if(s.w===0||s.h===0||!t.visible()){return}r=n.getEleLevelForLayerLevel(r,a);{i.setImgSmoothing(o,false)}{i.drawCachedElement(o,t,null,null,r,Yd)}{i.setImgSmoothing(o,true)}};Wd.levelIsComplete=function(e,t){var r=this;var a=r.layersByLevel[e];if(!a||a.length===0){return false}var n=0;for(var i=0;i0){return false}if(o.invalid){return false}n+=o.eles.length}if(n!==t.length){return false}return true};Wd.validateLayersElesOrdering=function(e,t){var r=this.layersByLevel[e];if(!r){return}for(var a=0;a0){t=true;break}}return t};Wd.invalidateElements=function(e){var t=this;if(e.length===0){return}t.lastInvalidationTime=ct();if(e.length===0||!t.haveLayers()){return}t.updateElementsInLayers(e,(function e(r,a,n){t.invalidateLayer(r)}))};Wd.invalidateLayer=function(e){this.lastInvalidationTime=ct();if(e.invalid){return}var t=e.level;var r=e.eles;var a=this.layersByLevel[t];qt(a,e);e.elesQueue=[];e.invalid=true;if(e.replacement){e.replacement.invalid=true}for(var n=0;n3&&arguments[3]!==undefined?arguments[3]:true;var n=arguments.length>4&&arguments[4]!==undefined?arguments[4]:true;var i=arguments.length>5&&arguments[5]!==undefined?arguments[5]:true;var o=this;var s=t._private.rscratch;if(i&&!t.visible()){return}if(s.badLine||s.allpts==null||isNaN(s.allpts[0])){return}var l;if(r){l=r;e.translate(-l.x1,-l.y1)}var u=i?t.pstyle("opacity").value:1;var v=i?t.pstyle("line-opacity").value:1;var f=t.pstyle("curve-style").value;var c=t.pstyle("line-style").value;var d=t.pstyle("width").pfValue;var h=t.pstyle("line-cap").value;var p=t.pstyle("line-outline-width").value;var g=t.pstyle("line-outline-color").value;var y=u*v;var m=u*v;var b=function r(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:y;if(f==="straight-triangle"){o.eleStrokeStyle(e,t,a);o.drawEdgeTrianglePath(t,e,s.allpts)}else{e.lineWidth=d;e.lineCap=h;o.eleStrokeStyle(e,t,a);o.drawEdgePath(t,e,s.allpts,c);e.lineCap="butt"}};var x=function r(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:y;e.lineWidth=d+p;e.lineCap=h;if(p>0){o.colorStrokeStyle(e,g[0],g[1],g[2],a)}else{e.lineCap="butt";return}if(f==="straight-triangle"){o.drawEdgeTrianglePath(t,e,s.allpts)}else{o.drawEdgePath(t,e,s.allpts,c);e.lineCap="butt"}};var w=function r(){if(!n){return}o.drawEdgeOverlay(e,t)};var E=function r(){if(!n){return}o.drawEdgeUnderlay(e,t)};var T=function r(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:m;o.drawArrowheads(e,t,a)};var k=function r(){o.drawElementText(e,t,null,a)};e.lineJoin="round";var C=t.pstyle("ghost").value==="yes";if(C){var P=t.pstyle("ghost-offset-x").pfValue;var S=t.pstyle("ghost-offset-y").pfValue;var D=t.pstyle("ghost-opacity").value;var B=y*D;e.translate(P,S);b(B);T(B);e.translate(-P,-S)}else{x()}E();b();T();w();k();if(r){e.translate(l.x1,l.y1)}};var uh=function e(t){if(!["overlay","underlay"].includes(t)){throw new Error("Invalid state")}return function(e,r){if(!r.visible()){return}var a=r.pstyle("".concat(t,"-opacity")).value;if(a===0){return}var n=this;var i=n.usePaths();var o=r._private.rscratch;var s=r.pstyle("".concat(t,"-padding")).pfValue;var l=2*s;var u=r.pstyle("".concat(t,"-color")).value;e.lineWidth=l;if(o.edgeType==="self"&&!i){e.lineCap="butt"}else{e.lineCap="round"}n.colorStrokeStyle(e,u[0],u[1],u[2],a);n.drawEdgePath(r,e,o.allpts,"solid")}};lh.drawEdgeOverlay=uh("overlay");lh.drawEdgeUnderlay=uh("underlay");lh.drawEdgePath=function(e,t,r,a){var n=e._private.rscratch;var i=t;var o;var s=false;var l=this.usePaths();var v=e.pstyle("line-dash-pattern").pfValue;var f=e.pstyle("line-dash-offset").pfValue;if(l){var c=r.join("$");var d=n.pathCacheKey&&n.pathCacheKey===c;if(d){o=t=n.pathCache;s=true}else{o=t=new Path2D;n.pathCacheKey=c;n.pathCache=o}}if(i.setLineDash){switch(a){case"dotted":i.setLineDash([1,1]);break;case"dashed":i.setLineDash(v);i.lineDashOffset=f;break;case"solid":i.setLineDash([]);break}}if(!s&&!n.badLine){if(t.beginPath){t.beginPath()}t.moveTo(r[0],r[1]);switch(n.edgeType){case"bezier":case"self":case"compound":case"multibezier":for(var h=2;h+35&&arguments[5]!==undefined?arguments[5]:true;var o=this;if(a==null){if(i&&!o.eleTextBiggerThanMin(t)){return}}else if(a===false){return}if(t.isNode()){var s=t.pstyle("label");if(!s||!s.value){return}var l=o.getLabelJustification(t);e.textAlign=l;e.textBaseline="bottom"}else{var u=t.element()._private.rscratch.badLine;var v=t.pstyle("label");var f=t.pstyle("source-label");var c=t.pstyle("target-label");if(u||(!v||!v.value)&&(!f||!f.value)&&(!c||!c.value)){return}e.textAlign="center";e.textBaseline="bottom"}var d=!r;var h;if(r){h=r;e.translate(-h.x1,-h.y1)}if(n==null){o.drawText(e,t,null,d,i);if(t.isEdge()){o.drawText(e,t,"source",d,i);o.drawText(e,t,"target",d,i)}}else{o.drawText(e,t,n,d,i)}if(r){e.translate(h.x1,h.y1)}};fh.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var r=0;r2&&arguments[2]!==undefined?arguments[2]:true;var a=t.pstyle("font-style").strValue;var n=t.pstyle("font-size").pfValue+"px";var i=t.pstyle("font-family").strValue;var o=t.pstyle("font-weight").strValue;var s=r?t.effectiveOpacity()*t.pstyle("text-opacity").value:1;var l=t.pstyle("text-outline-opacity").value*s;var u=t.pstyle("color").value;var v=t.pstyle("text-outline-color").value;e.font=a+" "+o+" "+n+" "+i;e.lineJoin="round";this.colorFillStyle(e,u[0],u[1],u[2],s);this.colorStrokeStyle(e,v[0],v[1],v[2],l)};function ch(e,t,r,a,n){var i=arguments.length>5&&arguments[5]!==undefined?arguments[5]:5;var o=arguments.length>6?arguments[6]:undefined;e.beginPath();e.moveTo(t+i,r);e.lineTo(t+a-i,r);e.quadraticCurveTo(t+a,r,t+a,r+i);e.lineTo(t+a,r+n-i);e.quadraticCurveTo(t+a,r+n,t+a-i,r+n);e.lineTo(t+i,r+n);e.quadraticCurveTo(t,r+n,t,r+n-i);e.lineTo(t,r+i);e.quadraticCurveTo(t,r,t+i,r);e.closePath();if(o)e.stroke();else e.fill()}fh.getTextAngle=function(e,t){var r;var a=e._private;var n=a.rscratch;var i=t?t+"-":"";var o=e.pstyle(i+"text-rotation");if(o.strValue==="autorotate"){var s=Gt(n,"labelAngle",t);r=e.isEdge()?s:0}else if(o.strValue==="none"){r=0}else{r=o.pfValue}return r};fh.drawText=function(e,t,r){var a=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;var n=arguments.length>4&&arguments[4]!==undefined?arguments[4]:true;var i=t._private;var o=i.rscratch;var s=n?t.effectiveOpacity():1;if(n&&(s===0||t.pstyle("text-opacity").value===0)){return}if(r==="main"){r=null}var l=Gt(o,"labelX",r);var u=Gt(o,"labelY",r);var v,f;var c=this.getLabelText(t,r);if(c!=null&&c!==""&&!isNaN(l)&&!isNaN(u)){this.setupTextStyle(e,t,n);var d=r?r+"-":"";var h=Gt(o,"labelWidth",r);var p=Gt(o,"labelHeight",r);var g=t.pstyle(d+"text-margin-x").pfValue;var y=t.pstyle(d+"text-margin-y").pfValue;var m=t.isEdge();var b=t.pstyle("text-halign").value;var x=t.pstyle("text-valign").value;if(m){b="center";x="center"}l+=g;u+=y;var w;if(!a){w=0}else{w=this.getTextAngle(t,r)}if(w!==0){v=l;f=u;e.translate(v,f);e.rotate(w);l=0;u=0}switch(x){case"top":break;case"center":u+=p/2;break;case"bottom":u+=p;break}var E=t.pstyle("text-background-opacity").value;var T=t.pstyle("text-border-opacity").value;var k=t.pstyle("text-border-width").pfValue;var C=t.pstyle("text-background-padding").pfValue;var P=t.pstyle("text-background-shape").strValue;var S=P.indexOf("round")===0;var D=2;if(E>0||k>0&&T>0){var B=l-C;switch(b){case"left":B-=h;break;case"center":B-=h/2;break}var A=u-p-C;var _=h+2*C;var M=p+2*C;if(E>0){var I=e.fillStyle;var R=t.pstyle("text-background-color").value;e.fillStyle="rgba("+R[0]+","+R[1]+","+R[2]+","+E*s+")";if(S){ch(e,B,A,_,M,D)}else{e.fillRect(B,A,_,M)}e.fillStyle=I}if(k>0&&T>0){var N=e.strokeStyle;var L=e.lineWidth;var O=t.pstyle("text-border-color").value;var z=t.pstyle("text-border-style").value;e.strokeStyle="rgba("+O[0]+","+O[1]+","+O[2]+","+T*s+")";e.lineWidth=k;if(e.setLineDash){switch(z){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([]);break}}if(S){ch(e,B,A,_,M,D,"stroke")}else{e.strokeRect(B,A,_,M)}if(z==="double"){var F=k/2;if(S){ch(e,B+F,A+F,_-F*2,M-F*2,D,"stroke")}else{e.strokeRect(B+F,A+F,_-F*2,M-F*2)}}if(e.setLineDash){e.setLineDash([])}e.lineWidth=L;e.strokeStyle=N}}var V=2*t.pstyle("text-outline-width").pfValue;if(V>0){e.lineWidth=V}if(t.pstyle("text-wrap").value==="wrap"){var j=Gt(o,"labelWrapCachedLines",r);var X=Gt(o,"labelLineHeight",r);var Y=h/2;var q=this.getLabelJustification(t);if(q==="auto");else if(b==="left"){if(q==="left"){l+=-h}else if(q==="center"){l+=-Y}}else if(b==="center"){if(q==="left"){l+=-Y}else if(q==="right"){l+=Y}}else if(b==="right"){if(q==="center"){l+=Y}else if(q==="right"){l+=h}}switch(x){case"top":u-=(j.length-1)*X;break;case"center":case"bottom":u-=(j.length-1)*X;break}for(var W=0;W0){e.strokeText(j[W],l,u)}e.fillText(j[W],l,u);u+=X}}else{if(V>0){e.strokeText(c,l,u)}e.fillText(c,l,u)}if(w!==0){e.rotate(-w);e.translate(-v,-f)}}};var dh={};dh.drawNode=function(e,t,r){var a=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;var n=arguments.length>4&&arguments[4]!==undefined?arguments[4]:true;var i=arguments.length>5&&arguments[5]!==undefined?arguments[5]:true;var o=this;var s,l;var u=t._private;var v=u.rscratch;var f=t.position();if(!I(f.x)||!I(f.y)){return}if(i&&!t.visible()){return}var c=i?t.effectiveOpacity():1;var d=o.usePaths();var h;var p=false;var g=t.padding();s=t.width()+2*g;l=t.height()+2*g;var y;if(r){y=r;e.translate(-y.x1,-y.y1)}var m=t.pstyle("background-image");var b=m.value;var x=new Array(b.length);var w=new Array(b.length);var E=0;for(var T=0;T0&&arguments[0]!==undefined?arguments[0]:B;o.eleFillStyle(e,t,a)};var U=function t(){var r=arguments.length>0&&arguments[0]!==undefined?arguments[0]:z;o.colorStrokeStyle(e,A[0],A[1],A[2],r)};var G=function t(){var r=arguments.length>0&&arguments[0]!==undefined?arguments[0]:X;o.colorStrokeStyle(e,V[0],V[1],V[2],r)};var H=function e(t,r,a,n){var i=o.nodePathCache=o.nodePathCache||[];var s=kt(a==="polygon"?a+","+n.join(","):a,""+r,""+t,""+q);var l=i[s];var u;var f=false;if(l!=null){u=l;f=true;v.pathCache=u}else{u=new Path2D;i[s]=v.pathCache=u}return{path:u,cacheHit:f}};var K=t.pstyle("shape").strValue;var Z=t.pstyle("shape-polygon-points").pfValue;if(d){e.translate(f.x,f.y);var $=H(s,l,K,Z);h=$.path;p=$.cacheHit}var Q=function r(){if(!p){var a=f;if(d){a={x:0,y:0}}o.nodeShapes[o.getNodeShape(t)].draw(h||e,a.x,a.y,s,l,q,v)}if(d){e.fill(h)}else{e.fill()}};var J=function r(){var a=arguments.length>0&&arguments[0]!==undefined?arguments[0]:c;var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var i=u.backgrounding;var s=0;for(var l=0;l0&&arguments[0]!==undefined?arguments[0]:false;var n=arguments.length>1&&arguments[1]!==undefined?arguments[1]:c;if(o.hasPie(t)){o.drawPie(e,t,n);if(a){if(!d){o.nodeShapes[o.getNodeShape(t)].draw(e,f.x,f.y,s,l,q,v)}}}};var te=function t(){var r=arguments.length>0&&arguments[0]!==undefined?arguments[0]:c;var a=(S>0?S:-S)*r;var n=S>0?0:255;if(S!==0){o.colorFillStyle(e,n,n,n,a);if(d){e.fill(h)}else{e.fill()}}};var re=function t(){if(D>0){e.lineWidth=D;e.lineCap=R;e.lineJoin=M;if(e.setLineDash){switch(_){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash(L);e.lineDashOffset=O;break;case"solid":case"double":e.setLineDash([]);break}}if(N!=="center"){e.save();e.lineWidth*=2;if(N==="inside"){d?e.clip(h):e.clip()}else{var r=new Path2D;r.rect(-s/2-D,-l/2-D,s+2*D,l+2*D);r.addPath(h);e.clip(r,"evenodd")}d?e.stroke(h):e.stroke();e.restore()}else{d?e.stroke(h):e.stroke()}if(_==="double"){e.lineWidth=D/3;var a=e.globalCompositeOperation;e.globalCompositeOperation="destination-out";if(d){e.stroke(h)}else{e.stroke()}e.globalCompositeOperation=a}if(e.setLineDash){e.setLineDash([])}}};var ae=function r(){if(F>0){e.lineWidth=F;e.lineCap="butt";if(e.setLineDash){switch(j){case"dotted":e.setLineDash([1,1]);break;case"dashed":e.setLineDash([4,2]);break;case"solid":case"double":e.setLineDash([]);break}}var a=f;if(d){a={x:0,y:0}}var n=o.getNodeShape(t);var i=D;if(N==="inside")i=0;if(N==="outside")i*=2;var u=(s+i+(F+Y))/s;var v=(l+i+(F+Y))/l;var c=s*u;var h=l*v;var p=o.nodeShapes[n].points;var g;if(d){var y=H(c,h,n,p);g=y.path}if(n==="ellipse"){o.drawEllipsePath(g||e,a.x,a.y,c,h)}else if(["round-diamond","round-heptagon","round-hexagon","round-octagon","round-pentagon","round-polygon","round-triangle","round-tag"].includes(n)){var m=0;var b=0;var x=0;if(n==="round-diamond"){m=(i+Y+F)*1.4}else if(n==="round-heptagon"){m=(i+Y+F)*1.075;x=-(i/2+Y+F)/35}else if(n==="round-hexagon"){m=(i+Y+F)*1.12}else if(n==="round-pentagon"){m=(i+Y+F)*1.13;x=-(i/2+Y+F)/15}else if(n==="round-tag"){m=(i+Y+F)*1.12;b=(i/2+F+Y)*.07}else if(n==="round-triangle"){m=(i+Y+F)*(Math.PI/2);x=-(i+Y/2+F)/Math.PI}if(m!==0){u=(s+m)/s;c=s*u;if(!["round-hexagon","round-tag"].includes(n)){v=(l+m)/l;h=l*v}}q=q==="auto"?Sa(c,h):q;var w=c/2;var E=h/2;var T=q+(i+F+Y)/2;var k=new Array(p.length/2);var C=new Array(p.length/2);for(var P=0;P0){a=a||r.position();if(n==null||i==null){var c=r.padding();n=r.width()+2*c;i=r.height()+2*c}o.colorFillStyle(e,u[0],u[1],u[2],l);o.nodeShapes[v].draw(e,a.x,a.y,n+s*2,i+s*2,f);e.fill()}}};dh.drawNodeOverlay=hh("overlay");dh.drawNodeUnderlay=hh("underlay");dh.hasPie=function(e){e=e[0];return e._private.hasPie};dh.drawPie=function(e,t,r,a){t=t[0];a=a||t.position();var n=t.cy().style();var i=t.pstyle("pie-size");var o=a.x;var s=a.y;var l=t.width();var u=t.height();var v=Math.min(l,u)/2;var f=0;var c=this.usePaths();if(c){o=0;s=0}if(i.units==="%"){v=v*i.pfValue}else if(i.pfValue!==undefined){v=i.pfValue/2}for(var d=1;d<=n.pieBackgroundN;d++){var h=t.pstyle("pie-"+d+"-background-size").value;var p=t.pstyle("pie-"+d+"-background-color").value;var g=t.pstyle("pie-"+d+"-background-opacity").value*r;var y=h/100;if(y+f>1){y=1-f}var m=1.5*Math.PI+2*Math.PI*f;var b=2*Math.PI*y;var x=m+b;if(h===0||f>=1||f+y>1){continue}e.beginPath();e.moveTo(o,s);e.arc(o,s,v,m,x);e.closePath();this.colorFillStyle(e,p[0],p[1],p[2],g);e.fill();f+=y}};var ph={};var gh=100;ph.getPixelRatio=function(){var e=this.data.contexts[0];if(this.forcedPixelRatio!=null){return this.forcedPixelRatio}var t=this.cy.window();var r=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return(t.devicePixelRatio||1)/r};ph.paintCache=function(e){var t=this.paintCaches=this.paintCaches||[];var r=true;var a;for(var n=0;nt.minMbLowQualFrames){t.motionBlurPxRatio=t.mbPxRBlurry}}if(t.clearingMotionBlur){t.motionBlurPxRatio=1}if(t.textureDrawLastFrame&&!f){v[t.NODE]=true;v[t.SELECT_BOX]=true}var m=r.style();var b=r.zoom();var x=o!==undefined?o:b;var w=r.pan();var E={x:w.x,y:w.y};var T={zoom:b,pan:{x:w.x,y:w.y}};var k=t.prevViewport;var C=k===undefined||T.zoom!==k.zoom||T.pan.x!==k.pan.x||T.pan.y!==k.pan.y;if(!C&&!(p&&!h)){t.motionBlurPxRatio=1}if(s){E=s}x*=l;E.x*=l;E.y*=l;var P=t.getCachedZSortedEles();function S(e,r,a,n,i){var o=e.globalCompositeOperation;e.globalCompositeOperation="destination-out";t.colorFillStyle(e,255,255,255,t.motionBlurTransparency);e.fillRect(r,a,n,i);e.globalCompositeOperation=o}function D(e,r){var i,l,v,f;if(!t.clearingMotionBlur&&(e===u.bufferContexts[t.MOTIONBLUR_BUFFER_NODE]||e===u.bufferContexts[t.MOTIONBLUR_BUFFER_DRAG])){i={x:w.x*d,y:w.y*d};l=b*d;v=t.canvasWidth*d;f=t.canvasHeight*d}else{i=E;l=x;v=t.canvasWidth;f=t.canvasHeight}e.setTransform(1,0,0,1,0,0);if(r==="motionBlur"){S(e,0,0,v,f)}else if(!a&&(r===undefined||r)){e.clearRect(0,0,v,f)}if(!n){e.translate(i.x,i.y);e.scale(l,l)}if(s){e.translate(s.x,s.y)}if(o){e.scale(o,o)}}if(!f){t.textureDrawLastFrame=false}if(f){t.textureDrawLastFrame=true;if(!t.textureCache){t.textureCache={};t.textureCache.bb=r.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:true,forcedPxRatio:l*t.textureMult});var T=t.textureCache.viewport={zoom:r.zoom(),pan:r.pan(),width:t.canvasWidth,height:t.canvasHeight};T.mpan={x:(0-T.pan.x)/T.zoom,y:(0-T.pan.y)/T.zoom}}v[t.DRAG]=false;v[t.NODE]=false;var A=u.contexts[t.NODE];var _=t.textureCache.texture;var T=t.textureCache.viewport;A.setTransform(1,0,0,1,0,0);if(c){S(A,0,0,T.width,T.height)}else{A.clearRect(0,0,T.width,T.height)}var M=m.core("outside-texture-bg-color").value;var I=m.core("outside-texture-bg-opacity").value;t.colorFillStyle(A,M[0],M[1],M[2],I);A.fillRect(0,0,T.width,T.height);var b=r.zoom();D(A,false);A.clearRect(T.mpan.x,T.mpan.y,T.width/T.zoom/l,T.height/T.zoom/l);A.drawImage(_,T.mpan.x,T.mpan.y,T.width/T.zoom/l,T.height/T.zoom/l)}else if(t.textureOnViewport&&!a){t.textureCache=null}var R=r.extent();var N=t.pinching||t.hoverData.dragging||t.swipePanning||t.data.wheelZooming||t.hoverData.draggingEles||t.cy.animated();var L=t.hideEdgesOnViewport&&N;var O=[];O[t.NODE]=!v[t.NODE]&&c&&!t.clearedForMotionBlur[t.NODE]||t.clearingMotionBlur;if(O[t.NODE]){t.clearedForMotionBlur[t.NODE]=true}O[t.DRAG]=!v[t.DRAG]&&c&&!t.clearedForMotionBlur[t.DRAG]||t.clearingMotionBlur;if(O[t.DRAG]){t.clearedForMotionBlur[t.DRAG]=true}if(v[t.NODE]||n||i||O[t.NODE]){var z=c&&!O[t.NODE]&&d!==1;var A=a||(z?t.data.bufferContexts[t.MOTIONBLUR_BUFFER_NODE]:u.contexts[t.NODE]);var F=c&&!z?"motionBlur":undefined;D(A,F);if(L){t.drawCachedNodes(A,P.nondrag,l,R)}else{t.drawLayeredElements(A,P.nondrag,l,R)}if(t.debug){t.drawDebugPoints(A,P.nondrag)}if(!n&&!c){v[t.NODE]=false}}if(!i&&(v[t.DRAG]||n||O[t.DRAG])){var z=c&&!O[t.DRAG]&&d!==1;var A=a||(z?t.data.bufferContexts[t.MOTIONBLUR_BUFFER_DRAG]:u.contexts[t.DRAG]);D(A,c&&!z?"motionBlur":undefined);if(L){t.drawCachedNodes(A,P.drag,l,R)}else{t.drawCachedElements(A,P.drag,l,R)}if(t.debug){t.drawDebugPoints(A,P.drag)}if(!n&&!c){v[t.DRAG]=false}}this.drawSelectionRectangle(e,D);if(c&&d!==1){var V=u.contexts[t.NODE];var j=t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_NODE];var X=u.contexts[t.DRAG];var Y=t.data.bufferCanvases[t.MOTIONBLUR_BUFFER_DRAG];var q=function e(r,a,n){r.setTransform(1,0,0,1,0,0);if(n||!y){r.clearRect(0,0,t.canvasWidth,t.canvasHeight)}else{S(r,0,0,t.canvasWidth,t.canvasHeight)}var i=d;r.drawImage(a,0,0,t.canvasWidth*i,t.canvasHeight*i,0,0,t.canvasWidth,t.canvasHeight)};if(v[t.NODE]||O[t.NODE]){q(V,j,O[t.NODE]);v[t.NODE]=false}if(v[t.DRAG]||O[t.DRAG]){q(X,Y,O[t.DRAG]);v[t.DRAG]=false}}t.prevViewport=T;if(t.clearingMotionBlur){t.clearingMotionBlur=false;t.motionBlurCleared=true;t.motionBlur=true}if(c){t.motionBlurTimeout=setTimeout((function(){t.motionBlurTimeout=null;t.clearedForMotionBlur[t.NODE]=false;t.clearedForMotionBlur[t.DRAG]=false;t.motionBlur=false;t.clearingMotionBlur=!f;t.mbFrames=0;v[t.NODE]=true;v[t.DRAG]=true;t.redraw()}),gh)}if(!a){r.emit("render")}};var yh;ph.drawSelectionRectangle=function(e,t){var r=this;var a=r.cy;var n=r.data;var i=a.style();var o=e.drawOnlyNodeLayer;var s=e.drawAllLayers;var l=n.canvasNeedsRedraw;var u=e.forcedContext;if(r.showFps||!o&&l[r.SELECT_BOX]&&!s){var v=u||n.contexts[r.SELECT_BOX];t(v);if(r.selection[4]==1&&(r.hoverData.selecting||r.touchData.selecting)){var f=r.cy.zoom();var c=i.core("selection-box-border-width").value/f;v.lineWidth=c;v.fillStyle="rgba("+i.core("selection-box-color").value[0]+","+i.core("selection-box-color").value[1]+","+i.core("selection-box-color").value[2]+","+i.core("selection-box-opacity").value+")";v.fillRect(r.selection[0],r.selection[1],r.selection[2]-r.selection[0],r.selection[3]-r.selection[1]);if(c>0){v.strokeStyle="rgba("+i.core("selection-box-border-color").value[0]+","+i.core("selection-box-border-color").value[1]+","+i.core("selection-box-border-color").value[2]+","+i.core("selection-box-opacity").value+")";v.strokeRect(r.selection[0],r.selection[1],r.selection[2]-r.selection[0],r.selection[3]-r.selection[1])}}if(n.bgActivePosistion&&!r.hoverData.selecting){var f=r.cy.zoom();var d=n.bgActivePosistion;v.fillStyle="rgba("+i.core("active-bg-color").value[0]+","+i.core("active-bg-color").value[1]+","+i.core("active-bg-color").value[2]+","+i.core("active-bg-opacity").value+")";v.beginPath();v.arc(d.x,d.y,i.core("active-bg-size").pfValue/f,0,2*Math.PI);v.fill()}var h=r.lastRedrawTime;if(r.showFps&&h){h=Math.round(h);var p=Math.round(1e3/h);var g="1 frame = "+h+" ms = "+p+" fps";v.setTransform(1,0,0,1,0,0);v.fillStyle="rgba(255, 0, 0, 0.75)";v.strokeStyle="rgba(255, 0, 0, 0.75)";v.font="30px Arial";if(!yh){var y=v.measureText(g);yh=y.actualBoundingBoxAscent}v.fillText(g,0,yh);var m=60;v.strokeRect(0,yh+10,250,20);v.fillRect(0,yh+10,250*Math.min(p/m,1),20)}if(!s){l[r.SELECT_BOX]=false}}};function mh(e,t,r){var a=e.createShader(t);e.shaderSource(a,r);e.compileShader(a);if(!e.getShaderParameter(a,e.COMPILE_STATUS)){throw new Error(e.getShaderInfoLog(a))}return a}function bh(e,t,r){var a=mh(e,e.VERTEX_SHADER,t);var n=mh(e,e.FRAGMENT_SHADER,r);var i=e.createProgram();e.attachShader(i,a);e.attachShader(i,n);e.linkProgram(i);if(!e.getProgramParameter(i,e.LINK_STATUS)){throw new Error("Could not initialize shaders")}return i}function xh(e,t,r){if(r===undefined){r=t}var a=e.makeOffscreenCanvas(t,r);var n=a.context=a.getContext("2d");a.clear=function(){return n.clearRect(0,0,a.width,a.height)};a.clear();return a}function wh(e){var t=e.pixelRatio;var r=e.cy.zoom();var a=e.cy.pan();return{zoom:r*t,pan:{x:a.x*t,y:a.y*t}}}function Eh(e,t,r,a,n){var i=a*r+t.x;var o=n*r+t.y;o=Math.round(e.canvasHeight-o);return[i,o]}function Th(e,t,r){var a=e[0]/255;var n=e[1]/255;var i=e[2]/255;var o=t;var s=r||new Array(4);s[0]=a*o;s[1]=n*o;s[2]=i*o;s[3]=o;return s}function kh(e,t){var r=t||new Array(4);r[0]=(e>>0&255)/255;r[1]=(e>>8&255)/255;r[2]=(e>>16&255)/255;r[3]=(e>>24&255)/255;return r}function Ch(e){return e[0]+(e[1]<<8)+(e[2]<<16)+(e[3]<<24)}function Ph(e,t){var r=e.createTexture();r.buffer=function(t){e.bindTexture(e.TEXTURE_2D,r);e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE);e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE);e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR);e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR_MIPMAP_NEAREST);e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,true);e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t);e.generateMipmap(e.TEXTURE_2D);e.bindTexture(e.TEXTURE_2D,null)};r.deleteTexture=function(){e.deleteTexture(r)};return r}function Sh(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 Dh(e,t,r){switch(t){case e.FLOAT:return new Float32Array(r);case e.INT:return new Int32Array(r)}}function Bh(e,t,r,a,n,i){switch(t){case e.FLOAT:return new Float32Array(r.buffer,i*a,n);case e.INT:return new Int32Array(r.buffer,i*a,n)}}function Ah(e,t,r,a){var n=Sh(e,t),i=p(n,2),o=i[0],s=i[1];var l=Dh(e,s,a);var u=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,u);e.bufferData(e.ARRAY_BUFFER,l,e.STATIC_DRAW);if(s===e.FLOAT){e.vertexAttribPointer(r,o,s,false,0,0)}else if(s===e.INT){e.vertexAttribIPointer(r,o,s,0,0)}e.enableVertexAttribArray(r);e.bindBuffer(e.ARRAY_BUFFER,null);return u}function _h(e,t,r,a){var n=Sh(e,r),i=p(n,3),o=i[0],s=i[1],l=i[2];var u=Dh(e,s,t*o);var v=o*l;var f=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,f);e.bufferData(e.ARRAY_BUFFER,t*v,e.DYNAMIC_DRAW);e.enableVertexAttribArray(a);if(s===e.FLOAT){e.vertexAttribPointer(a,o,s,false,v,0)}else if(s===e.INT){e.vertexAttribIPointer(a,o,s,v,0)}e.vertexAttribDivisor(a,1);e.bindBuffer(e.ARRAY_BUFFER,null);var c=new Array(t);for(var d=0;di){o=i/r;s=r*o;l=a*o}return{scale:o,texW:s,texH:l}}},{key:"draw",value:function e(t,r,a){var n=this;if(this.locked)throw new Error("can't draw, atlas is locked");var i=this.texSize,o=this.texRows,s=this.texHeight;var l=this.getScale(r),u=l.scale,v=l.texW,f=l.texH;var c=[null,null];var d=function e(t,n){if(a&&n){var i=n.context;var o=t.x,l=t.row;var v=o;var f=s*l;i.save();i.translate(v,f);i.scale(u,u);a(i,r);i.restore()}};var h=function e(){d(n.freePointer,n.canvas);c[0]={x:n.freePointer.x,y:n.freePointer.row*s,w:v,h:f};c[1]={x:n.freePointer.x+v,y:n.freePointer.row*s,w:0,h:f};n.freePointer.x+=v;if(n.freePointer.x==i){n.freePointer.x=0;n.freePointer.row++}};var p=function e(){var t=n.scratch,r=n.canvas;t.clear();d({x:0,row:0},t);var a=i-n.freePointer.x;var o=v-a;var l=s;{var u=n.freePointer.x;var h=n.freePointer.row*s;var p=a;r.context.drawImage(t,0,0,p,l,u,h,p,l);c[0]={x:u,y:h,w:p,h:f}}{var g=a;var y=(n.freePointer.row+1)*s;var m=o;if(r){r.context.drawImage(t,g,0,m,l,0,y,m,l)}c[1]={x:0,y,w:m,h:f}}n.freePointer.x=o;n.freePointer.row++};var g=function e(){n.freePointer.x=0;n.freePointer.row++};if(this.freePointer.x+v<=i){h()}else if(this.freePointer.row>=o-1){return false}else if(this.freePointer.x===i){g();h()}else if(this.enableWrapping){p()}else{g();h()}this.keyToLocation.set(t,c);this.needsBuffer=true;return c}},{key:"getOffsets",value:function e(t){return this.keyToLocation.get(t)}},{key:"isEmpty",value:function e(){return this.freePointer.x===0&&this.freePointer.row===0}},{key:"canFit",value:function e(t){if(this.locked)return false;var r=this.texSize,a=this.texRows;var n=this.getScale(t),i=n.texW;if(this.freePointer.x+i>r){return this.freePointer.row1&&arguments[1]!==undefined?arguments[1]:{},a=r.forceRedraw,n=a===undefined?false:a,i=r.filterEle,o=i===undefined?function(){return true}:i,s=r.filterType,l=s===undefined?function(){return true}:s;var v=false;var f=false;var c=u(t),d;try{for(c.s();!(d=c.n()).done;){var h=d.value;if(o(h)){var p=u(this.renderTypes.values()),g;try{for(p.s();!(g=p.n()).done;){var y=g.value;var m=y.type;if(l(m)){var b=y.getKey(h);var x=this.collections.get(y.collection);if(n){x.markKeyForGC(b);f=true}else{var w=y.getID?y.getID(h):h.id();var E=this._key(m,w);var T=this.typeAndIdToKey.get(E);if(T!==undefined&&T!==b){this.typeAndIdToKey["delete"](E);x.markKeyForGC(T);v=true}}}}}catch(k){p.e(k)}finally{p.f()}}}}catch(k){c.e(k)}finally{c.f()}if(f){this.gc();v=false}return v}},{key:"gc",value:function e(){var t=u(this.collections.values()),r;try{for(t.s();!(r=t.n()).done;){var a=r.value;a.gc()}}catch(n){t.e(n)}finally{t.f()}}},{key:"getOrCreateAtlas",value:function e(t,r,a){var n=this.renderTypes.get(r);var i=n.getKey(t);if(!a)a=n.getBoundingBox(t);var o=this.collections.get(n.collection);var s=false;var l=o.draw(i,a,(function(e){n.drawElement(e,t,a,true,true);s=true}));if(s){var u=n.getID?n.getID(t):t.id();var v=this._key(r,u);this.typeAndIdToKey.set(v,i)}return l}},{key:"startBatch",value:function e(){this.batchAtlases=[]}},{key:"getAtlasCount",value:function e(){return this.batchAtlases.length}},{key:"getAtlases",value:function e(){return this.batchAtlases}},{key:"canAddToCurrentBatch",value:function e(t,r){if(this.batchAtlases.length===this.maxAtlasesPerBatch){var a=this.renderTypes.get(r);var n=a.getKey(t);var i=this.collections.get(a.collection);var o=i.getAtlas(n);return Boolean(o)&&this.batchAtlases.includes(o)}return true}},{key:"getAtlasIndexForBatch",value:function e(t){var r=this.batchAtlases.indexOf(t);if(r<0){if(this.batchAtlases.length===this.maxAtlasesPerBatch){return}this.batchAtlases.push(t);r=this.batchAtlases.length-1}return r}},{key:"getIndexArray",value:function e(){return Array.from({length:this.maxAtlasesPerBatch},(function(e,t){return t}))}},{key:"getAtlasInfo",value:function e(t,r){var a=this.renderTypes.get(r);var n=a.getBoundingBox(t);var i=this.getOrCreateAtlas(t,r,n);var o=this.getAtlasIndexForBatch(i);if(o===undefined){return undefined}var s=a.getKey(t);var l=i.getOffsets(s),u=p(l,2),v=u[0],f=u[1];return{index:o,tex1:v,tex2:f,bb:n}}},{key:"setTransformMatrix",value:function e(t,r,a,n){var i=arguments.length>4&&arguments[4]!==undefined?arguments[4]:true;var o=this.getRenderTypeOpts(a);var s=o.getPadding?o.getPadding(t):0;if(n){var l=n.bb,u=n.tex1,v=n.tex2;var f=u.w/(u.w+v.w);if(!i){f=1-f}var c=this.getAdjustedBB(l,s,i,f);this._applyTransformMatrix(r,c,o,t)}else{var d=o.getBoundingBox(t);var h=this.getAdjustedBB(d,s,true,1);this._applyTransformMatrix(r,h,o,t)}}},{key:"_applyTransformMatrix",value:function e(t,r,a,n){var i,o;Lh(t);var s=a.getRotation?a.getRotation(n):0;if(s!==0){var l=a.getRotationPoint(n),u=l.x,v=l.y;zh(t,t,[u,v]);Fh(t,t,s);var f=a.getRotationOffset(n);i=f.x+r.xOffset;o=f.y}else{i=r.x1;o=r.y1}zh(t,t,[i,o]);Vh(t,t,[r.w,r.h])}},{key:"getAdjustedBB",value:function e(t,r,a,n){var i=t.x1,o=t.y1,s=t.w,l=t.h;if(r){i-=r;o-=r;s+=2*r;l+=2*r}var u=0;var v=s*n;if(a&&n<1){s=v}else if(!a&&n<1){u=s-v;i+=u;s=v}return{x1:i,y1:o,w:s,h:l,xOffset:u}}},{key:"getDebugInfo",value:function e(){var t=[];var r=u(this.collections),a;try{for(r.s();!(a=r.n()).done;){var n=p(a.value,2),i=n[0],o=n[1];var s=o.getCounts(),l=s.keyCount,v=s.atlasCount;t.push({type:i,keyCount:l,atlasCount:v})}}catch(f){r.e(f)}finally{r.f()}return t}}])}();var Kh=0;var Zh=1;var $h=2;var Qh=3;var Jh=4;var ep=function(){function e(t,r,a){o(this,e);this.r=t;this.gl=r;this.maxInstances=a.webglBatchSize;this.atlasSize=a.webglTexSize;this.bgColor=a.bgColor;this.debug=a.webglDebug;this.batchDebugInfo=[];a.enableWrapping=true;a.createTextureCanvas=xh;this.atlasManager=new Hh(t,a);this.program=this.createShaderProgram(Xh.SCREEN);this.pickingProgram=this.createShaderProgram(Xh.PICKING);this.vao=this.createVAO()}return l(e,[{key:"addAtlasCollection",value:function e(t,r){this.atlasManager.addAtlasCollection(t,r)}},{key:"addAtlasRenderType",value:function e(t,r){this.atlasManager.addRenderType(t,r)}},{key:"invalidate",value:function e(t){var r=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{},a=r.type;var n=this.atlasManager;if(a){return n.invalidate(t,{filterType:function e(t){return t===a},forceRedraw:true})}else{return n.invalidate(t)}}},{key:"gc",value:function e(){this.atlasManager.gc()}},{key:"createShaderProgram",value:function e(t){var r=this.gl;var a="#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(Kh,") {\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(Jh,") {\n gl_Position = vec4(uPanZoomMatrix * aTransform * vec3(position, 1.0), 1.0);\n vColor = aColor;\n }\n else if(aVertType == ").concat(Zh,") {\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($h,") {\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(Qh," && 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 ");var n=this.atlasManager.getIndexArray();var i="#version 300 es\n precision highp float;\n\n // define texture unit for each node in the batch\n ".concat(n.map((function(e){return"uniform sampler2D uTexture".concat(e,";")})).join("\n\t"),"\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(Kh,") {\n ").concat(n.map((function(e){return"if(vAtlasId == ".concat(e,") outColor = texture(uTexture").concat(e,", vTexCoord);")})).join("\n\telse "),"\n } else if(vVertType == ").concat(Qh,") {\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(t.picking?"if(outColor.a == 0.0) discard;\n else outColor = vIndex;":"","\n }\n ");var o=bh(r,a,i);o.aPosition=r.getAttribLocation(o,"aPosition");o.aIndex=r.getAttribLocation(o,"aIndex");o.aVertType=r.getAttribLocation(o,"aVertType");o.aTransform=r.getAttribLocation(o,"aTransform");o.aAtlasId=r.getAttribLocation(o,"aAtlasId");o.aTex=r.getAttribLocation(o,"aTex");o.aPointAPointB=r.getAttribLocation(o,"aPointAPointB");o.aPointCPointD=r.getAttribLocation(o,"aPointCPointD");o.aLineWidth=r.getAttribLocation(o,"aLineWidth");o.aColor=r.getAttribLocation(o,"aColor");o.uPanZoomMatrix=r.getUniformLocation(o,"uPanZoomMatrix");o.uAtlasSize=r.getUniformLocation(o,"uAtlasSize");o.uBGColor=r.getUniformLocation(o,"uBGColor");o.uTextures=[];for(var s=0;s1&&arguments[1]!==undefined?arguments[1]:Xh.SCREEN;this.panZoomMatrix=t;this.renderTarget=r;this.batchDebugInfo=[];this.wrappedCount=0;this.rectangleCount=0;this.startBatch()}},{key:"startBatch",value:function e(){this.instanceCount=0;this.atlasManager.startBatch()}},{key:"endFrame",value:function e(){this.endBatch()}},{key:"getTempMatrix",value:function e(){return this.tempMatrix=this.tempMatrix||Nh()}},{key:"drawTexture",value:function e(t,r,a){var n=this.atlasManager;if(!t.visible()){return}if(!n.getRenderTypeOpts(a).isVisible(t)){return}if(!n.canAddToCurrentBatch(t,a)){this.endBatch()}if(this.instanceCount+1>=this.maxInstances){this.endBatch()}var i=this.instanceCount;this.vertTypeBuffer.getView(i)[0]=Kh;var o=this.indexBuffer.getView(i);kh(r,o);var s=n.getAtlasInfo(t,a);var l=s.index,u=s.tex1,v=s.tex2;if(v.w>0)this.wrappedCount++;var f=true;for(var c=0,d=[u,v];c=this.maxInstances){this.endBatch()}}},{key:"drawSimpleRectangle",value:function e(t,r,a){if(!t.visible()){return}var n=this.atlasManager;var i=this.instanceCount;this.vertTypeBuffer.getView(i)[0]=Jh;var o=this.indexBuffer.getView(i);kh(r,o);var s=t.pstyle("background-color").value;var l=t.pstyle("background-opacity").value;var u=this.colorBuffer.getView(i);Th(s,l,u);var v=this.transformBuffer.getMatrixView(i);n.setTransformMatrix(t,v,a);this.rectangleCount++;this.instanceCount++;if(this.instanceCount>=this.maxInstances){this.endBatch()}}},{key:"drawEdgeArrow",value:function e(t,r,a){if(!t.visible()){return}var n=t._private.rscratch;var i,o,s;if(a==="source"){i=n.arrowStartX;o=n.arrowStartY;s=n.srcArrowAngle}else{i=n.arrowEndX;o=n.arrowEndY;s=n.tgtArrowAngle}if(isNaN(i)||i==null||isNaN(o)||o==null||isNaN(s)||s==null){return}var l=t.pstyle(a+"-arrow-shape").value;if(l==="none"){return}var u=t.pstyle(a+"-arrow-color").value;var v=t.pstyle("opacity").value;var f=t.pstyle("line-opacity").value;var c=v*f;var d=t.pstyle("width").pfValue;var h=t.pstyle("arrow-scale").value;var p=this.r.getArrowWidth(d,h);var g=this.instanceCount;var y=this.transformBuffer.getMatrixView(g);Lh(y);zh(y,y,[i,o]);Vh(y,y,[p,p]);Fh(y,y,s);this.vertTypeBuffer.getView(g)[0]=Qh;var m=this.indexBuffer.getView(g);kh(r,m);var b=this.colorBuffer.getView(g);Th(u,c,b);this.instanceCount++;if(this.instanceCount>=this.maxInstances){this.endBatch()}}},{key:"drawEdgeLine",value:function e(t,r){if(!t.visible()){return}var a=this.getEdgePoints(t);if(!a){return}var n=t.pstyle("opacity").value;var i=t.pstyle("line-opacity").value;var o=t.pstyle("width").pfValue;var s=t.pstyle("line-color").value;var l=n*i;if(a.length/2+this.instanceCount>this.maxInstances){this.endBatch()}if(a.length==4){var u=this.instanceCount;this.vertTypeBuffer.getView(u)[0]=Zh;var v=this.indexBuffer.getView(u);kh(r,v);var f=this.colorBuffer.getView(u);Th(s,l,f);var c=this.lineWidthBuffer.getView(u);c[0]=o;var d=this.pointAPointBBuffer.getView(u);d[0]=a[0];d[1]=a[1];d[2]=a[2];d[3]=a[3];this.instanceCount++;if(this.instanceCount>=this.maxInstances){this.endBatch()}}else{for(var h=0;h=this.maxInstances){this.endBatch()}}}}},{key:"getEdgePoints",value:function e(t){var r=t._private.rscratch;if(r.badLine||r.allpts==null||isNaN(r.allpts[0])){return}var a=r.allpts;if(a.length==4){return a}var n=this.getNumSegments(t);return this.getCurveSegmentPoints(a,n)}},{key:"getNumSegments",value:function e(t){var r=15;return Math.min(Math.max(r,5),this.maxInstances)}},{key:"getCurveSegmentPoints",value:function e(t,r){if(t.length==4){return t}var a=Array((r+1)*2);for(var n=0;n<=r;n++){if(n==0){a[0]=t[0];a[1]=t[1]}else if(n==r){a[n*2]=t[t.length-2];a[n*2+1]=t[t.length-1]}else{var i=n/r;this.setCurvePoint(t,i,a,n*2)}}return a}},{key:"setCurvePoint",value:function e(t,r,a,n){if(t.length<=2){a[n]=t[0];a[n+1]=t[1]}else{var i=Array(t.length-2);for(var o=0;o0}},{key:"getStyle",value:function e(t,r){var a=r.pstyle("".concat(t,"-opacity")).value;var n=r.pstyle("".concat(t,"-color")).value;var i=r.pstyle("".concat(t,"-shape")).value;return{opacity:a,color:n,shape:i}}},{key:"getPadding",value:function e(t,r){return r.pstyle("".concat(t,"-padding")).pfValue}},{key:"draw",value:function e(t,r,a,n){if(!this.isVisible(t,a))return;var i=this.r;var o=n.w;var s=n.h;var l=o/2;var u=s/2;var v=this.getStyle(t,a),f=v.shape,c=v.color,d=v.opacity;r.save();r.fillStyle=tp(c,d);if(f==="round-rectangle"||f==="roundrectangle"){i.drawRoundRectanglePath(r,l,u,o,s,"auto")}else if(f==="ellipse"){i.drawEllipsePath(r,l,u,o,s)}r.fill();r.restore()}}])}();var ap={};ap.initWebgl=function(e,t){var r=this;var a=r.data.contexts[r.WEBGL];e.bgColor=np(r);e.webglTexSize=Math.min(e.webglTexSize,a.getParameter(a.MAX_TEXTURE_SIZE));e.webglTexRows=Math.min(e.webglTexRows,54);e.webglTexRowsNodes=Math.min(e.webglTexRowsNodes,54);e.webglBatchSize=Math.min(e.webglBatchSize,16384);e.webglTexPerBatch=Math.min(e.webglTexPerBatch,a.getParameter(a.MAX_TEXTURE_IMAGE_UNITS));r.webglDebug=e.webglDebug;r.webglDebugShowAtlases=e.webglDebugShowAtlases;r.pickingFrameBuffer=Ih(a);r.pickingFrameBuffer.needsDraw=true;var n=function e(t){return function(e){return r.getTextAngle(e,t)}};var i=function e(t){return function(e){var r=e.pstyle(t);return r&&r.value}};r.drawing=new ep(r,a,e);var o=new rp(r);r.drawing.addAtlasCollection("node",Yh({texRows:e.webglTexRowsNodes}));r.drawing.addAtlasCollection("label",Yh({texRows:e.webglTexRows}));r.drawing.addAtlasRenderType("node-body",qh({collection:"node",getKey:t.getStyleKey,getBoundingBox:t.getElementBox,drawElement:t.drawElement}));r.drawing.addAtlasRenderType("label",qh({collection:"label",getKey:t.getLabelKey,getBoundingBox:t.getLabelBox,drawElement:t.drawLabel,getRotation:n(null),getRotationPoint:t.getLabelRotationPoint,getRotationOffset:t.getLabelRotationOffset,isVisible:i("label")}));r.drawing.addAtlasRenderType("node-overlay",qh({collection:"node",getBoundingBox:t.getElementBox,getKey:function e(t){return o.getStyleKey("overlay",t)},drawElement:function e(t,r,a){return o.draw("overlay",t,r,a)},isVisible:function e(t){return o.isVisible("overlay",t)},getPadding:function e(t){return o.getPadding("overlay",t)}}));r.drawing.addAtlasRenderType("node-underlay",qh({collection:"node",getBoundingBox:t.getElementBox,getKey:function e(t){return o.getStyleKey("underlay",t)},drawElement:function e(t,r,a){return o.draw("underlay",t,r,a)},isVisible:function e(t){return o.isVisible("underlay",t)},getPadding:function e(t){return o.getPadding("underlay",t)}}));r.drawing.addAtlasRenderType("edge-source-label",qh({collection:"label",getKey:t.getSourceLabelKey,getBoundingBox:t.getSourceLabelBox,drawElement:t.drawSourceLabel,getRotation:n("source"),getRotationPoint:t.getSourceLabelRotationPoint,getRotationOffset:t.getSourceLabelRotationOffset,isVisible:i("source-label")}));r.drawing.addAtlasRenderType("edge-target-label",qh({collection:"label",getKey:t.getTargetLabelKey,getBoundingBox:t.getTargetLabelBox,drawElement:t.drawTargetLabel,getRotation:n("target"),getRotationPoint:t.getTargetLabelRotationPoint,getRotationOffset:t.getTargetLabelRotationOffset,isVisible:i("target-label")}));var s=st((function(){console.log("garbage collect flag set");r.data.gc=true}),1e4);r.onUpdateEleCalcs((function(e,t){var a=false;if(t&&t.length>0){a|=r.drawing.invalidate(t)}if(a){s()}}));ip(r)};function np(e){var t=e.cy.container();var r=t&&t.style&&t.style.backgroundColor||"white";return ce(r)}function ip(e){{var t=e.render;e.render=function(r){r=r||{};var a=e.cy;if(e.webgl){if(a.zoom()>fd){op(e);t.call(e,r)}else{sp(e);yp(e,r,Xh.SCREEN)}}}}{var r=e.matchCanvasSize;e.matchCanvasSize=function(t){r.call(e,t);e.pickingFrameBuffer.setFramebufferAttachmentSizes(e.canvasWidth,e.canvasHeight);e.pickingFrameBuffer.needsDraw=true}}{e.findNearestElements=function(t,r,a,n){return hp(e,t,r)}}{var a=e.invalidateCachedZSortedEles;e.invalidateCachedZSortedEles=function(){a.call(e);e.pickingFrameBuffer.needsDraw=true}}{var n=e.notify;e.notify=function(t,r){n.call(e,t,r);if(t==="viewport"||t==="bounds"){e.pickingFrameBuffer.needsDraw=true}else if(t==="background"){e.drawing.invalidate(r,{type:"node-body"})}}}}function op(e){var t=e.data.contexts[e.WEBGL];t.clear(t.COLOR_BUFFER_BIT|t.DEPTH_BUFFER_BIT)}function sp(e){var t=function t(r){r.save();r.setTransform(1,0,0,1,0,0);r.clearRect(0,0,e.canvasWidth,e.canvasHeight);r.restore()};t(e.data.contexts[e.NODE]);t(e.data.contexts[e.DRAG])}function lp(e){var t=e.canvasWidth;var r=e.canvasHeight;var a=wh(e),n=a.pan,i=a.zoom;var o=Nh();zh(o,o,[n.x,n.y]);Vh(o,o,[i,i]);var s=Nh();jh(s,t,r);var l=Nh();Oh(l,s,o);return l}function up(e,t){var r=e.canvasWidth;var a=e.canvasHeight;var n=wh(e),i=n.pan,o=n.zoom;t.setTransform(1,0,0,1,0,0);t.clearRect(0,0,r,a);t.translate(i.x,i.y);t.scale(o,o)}function vp(e,t){e.drawSelectionRectangle(t,(function(t){return up(e,t)}))}function fp(e){var t=e.data.contexts[e.NODE];t.save();up(e,t);t.strokeStyle="rgba(0, 0, 0, 0.3)";t.beginPath();t.moveTo(-1e3,0);t.lineTo(1e3,0);t.stroke();t.beginPath();t.moveTo(0,-1e3);t.lineTo(0,1e3);t.stroke();t.restore()}function cp(e){var t=function t(r,a,n){var i=r.atlasManager.getAtlasCollection(a);var o=e.data.contexts[e.NODE];var s=.125;var l=i.atlases;for(var u=0;u=0){w.add(k)}}return w}function hp(e,t,r){var a=dp(e,t,r);var n=e.getCachedZSortedEles();var i,o;var s=u(a),l;try{for(s.s();!(l=s.n()).done;){var v=l.value;var f=n[v];if(!i&&f.isNode()){i=f}if(!o&&f.isEdge()){o=f}if(i&&o){break}}}catch(c){s.e(c)}finally{s.f()}return[i,o].filter(Boolean)}function pp(e){return e.pstyle("shape").value==="rectangle"&&e.pstyle("background-fill").value==="solid"&&e.pstyle("border-width").pfValue===0&&e.pstyle("background-image").strValue==="none"}function gp(e,t,r){var a=e.drawing;t+=1;if(r.isNode()){a.drawTexture(r,t,"node-underlay");if(pp(r)){a.drawSimpleRectangle(r,t,"node-body")}else{a.drawTexture(r,t,"node-body")}a.drawTexture(r,t,"label");a.drawTexture(r,t,"node-overlay")}else{a.drawEdgeLine(r,t);a.drawEdgeArrow(r,t,"source");a.drawEdgeArrow(r,t,"target");a.drawTexture(r,t,"label");a.drawTexture(r,t,"edge-source-label");a.drawTexture(r,t,"edge-target-label")}}function yp(e,t,r){var a;if(e.webglDebug){a=performance.now()}var n=e.drawing;var i=0;if(r.screen){if(e.data.canvasNeedsRedraw[e.SELECT_BOX]){vp(e,t)}}if(e.data.canvasNeedsRedraw[e.NODE]||r.picking){var o=e.data.contexts[e.WEBGL];if(r.screen){o.clearColor(0,0,0,0);o.enable(o.BLEND);o.blendFunc(o.ONE,o.ONE_MINUS_SRC_ALPHA)}else{o.disable(o.BLEND)}o.clear(o.COLOR_BUFFER_BIT|o.DEPTH_BUFFER_BIT);o.viewport(0,0,o.canvas.width,o.canvas.height);var s=lp(e);var l=e.getCachedZSortedEles();i=l.length;n.startFrame(s,r);if(r.screen){for(var v=0;v0&&o>0){d.clearRect(0,0,i,o);d.globalCompositeOperation="source-over";var h=this.getCachedZSortedEles();if(e.full){d.translate(-a.x1*u,-a.y1*u);d.scale(u,u);this.drawElements(d,h);d.scale(1/u,1/u);d.translate(a.x1*u,a.y1*u)}else{var p=t.pan();var g={x:p.x*u,y:p.y*u};u*=t.zoom();d.translate(g.x,g.y);d.scale(u,u);this.drawElements(d,h);d.scale(1/u,1/u);d.translate(-g.x,-g.y)}if(e.bg){d.globalCompositeOperation="destination-over";d.fillStyle=e.bg;d.rect(0,0,i,o);d.fill()}}return c};function Pp(e,t){var r=atob(e);var a=new ArrayBuffer(r.length);var n=new Uint8Array(a);for(var i=0;i