/*!
* This file is part of cytoscape.js 2.2.10.
*
* Cytoscape.js is free software: you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
*
* Cytoscape.js is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public License along with
* cytoscape.js. If not, see .
*/
var cytoscape;!function(e){"use strict";var t=cytoscape=function(){return cytoscape.init.apply(cytoscape,arguments)};t.init=function(e){return void 0===e&&(e={}),t.is.plainObject(e)?new t.Core(e):t.is.string(e)?t.extension.apply(t.extension,arguments):void 0},t.fn={},"undefined"!=typeof exports&&(exports=module.exports=cytoscape),"undefined"!=typeof define&&define("cytoscape",function(){return cytoscape}),e&&(e.cytoscape=cytoscape)}("undefined"==typeof window?null:window),function(e,t){"use strict";e.is={string:function(e){return null!=e&&"string"==typeof e},fn:function(e){return null!=e&&"function"==typeof e},array:function(e){return null!=e&&e instanceof Array},plainObject:function(t){return null!=t&&typeof t==typeof{}&&!e.is.array(t)&&t.constructor===Object},number:function(e){return null!=e&&"number"==typeof e&&!isNaN(e)},integer:function(t){return e.is.number(t)&&Math.floor(t)===t},color:function(e){return null!=e&&"string"==typeof e&&""!==$.Color(e).toString()},bool:function(e){return null!=e&&typeof e==typeof!0},elementOrCollection:function(t){return e.is.element(t)||e.is.collection(t)},element:function(t){return t instanceof e.Element&&t._private.single},collection:function(t){return t instanceof e.Collection&&!t._private.single},core:function(t){return t instanceof e.Core},style:function(t){return t instanceof e.Style},stylesheet:function(t){return t instanceof e.Stylesheet},event:function(t){return t instanceof e.Event},emptyString:function(t){return t?e.is.string(t)&&(""===t||t.match(/^\s+$/))?!0:!1:!0},nonemptyString:function(t){return t&&e.is.string(t)&&""!==t&&!t.match(/^\s+$/)?!0:!1},domElement:function(e){return"undefined"==typeof HTMLElement?!1:e instanceof HTMLElement},touch:function(){return t&&("ontouchstart"in t||t.DocumentTouch&&document instanceof DocumentTouch)}}}(cytoscape,"undefined"==typeof window?null:window),function(e,t){"use strict";e.util={extend:function(){var t,r,n,i,a,o,s=arguments[0]||{},l=1,c=arguments.length,u=!1;for("boolean"==typeof s&&(u=s,s=arguments[1]||{},l=2),"object"==typeof s||e.is.fn(s)||(s={}),c===l&&(s=this,--l);c>l;l++)if(null!=(t=arguments[l]))for(r in t)n=s[r],i=t[r],s!==i&&(u&&i&&(e.is.plainObject(i)||(a=e.is.array(i)))?(a?(a=!1,o=n&&e.is.array(n)?n:[]):o=n&&e.is.plainObject(n)?n:{},s[r]=e.util.extend(u,o,i)):void 0!==i&&(s[r]=i));return s},throttle:function(t,r,n){var i=!0,a=!0;return n===!1?i=!1:e.is.plainObject(n)&&(i="leading"in n?n.leading:i,a="trailing"in n?n.trailing:a),n=n||{},n.leading=i,n.maxWait=r,n.trailing=a,e.util.debounce(t,r,n)},now:function(){return+new Date},debounce:function(t,r,n){var i,a,o,s,l,c,u,d=0,p=!1,h=!0;if(e.is.fn(t)){if(r=Math.max(0,r)||0,n===!0){var g=!0;h=!1}else e.is.plainObject(n)&&(g=n.leading,p="maxWait"in n&&(Math.max(r,n.maxWait)||0),h="trailing"in n?n.trailing:h);var v=function(){var n=r-(e.util.now()-s);if(0>=n){a&&clearTimeout(a);var p=u;a=c=u=void 0,p&&(d=e.util.now(),o=t.apply(l,i),c||a||(i=l=null))}else c=setTimeout(v,n)},f=function(){c&&clearTimeout(c),a=c=u=void 0,(h||p!==r)&&(d=e.util.now(),o=t.apply(l,i),c||a||(i=l=null))};return function(){if(i=arguments,s=e.util.now(),l=this,u=h&&(c||!g),p===!1)var n=g&&!c;else{a||g||(d=s);var y=p-(s-d),m=0>=y;m?(a&&(a=clearTimeout(a)),d=s,o=t.apply(l,i)):a||(a=setTimeout(f,y))}return m&&c?c=clearTimeout(c):c||r===p||(c=setTimeout(v,r)),n&&(m=!0,o=t.apply(l,i)),!m||c||a||(i=l=null),o}}},error:function(e){if(!console)throw e;if(console.error)console.error(e);else{if(!console.log)throw e;console.log(e)}},clone:function(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t},copy:function(t){return null==t?t:e.is.array(t)?t.slice():e.is.plainObject(t)?e.util.clone(t):t},mapEmpty:function(e){var t=!0;if(null!=e)for(var r in e){t=!1;break}return t},pushMap:function(t){var r=e.util.getMap(t);null==r?e.util.setMap($.extend({},t,{value:[t.value]})):r.push(t.value)},setMap:function(t){for(var r,n=t.map,i=t.keys,a=i.length,o=0;a>o;o++){var r=i[o];e.is.plainObject(r)&&e.util.error("Tried to set map with object key"),oa;a++){var o=n[a];if(e.is.plainObject(o)&&e.util.error("Tried to get map with object key"),r=r[o],null==r)return r}return r},deleteMap:function(t){for(var r=t.map,n=t.keys,i=n.length,a=t.keepChildren,o=0;i>o;o++){var s=n[o];e.is.plainObject(s)&&e.util.error("Tried to delete map with object key");var l=o===t.keys.length-1;if(l)if(a)for(var c in r)a[c]||delete r[c];else delete r[s];else r=r[s]}},capitalize:function(t){return e.is.emptyString(t)?t:t.charAt(0).toUpperCase()+t.substring(1)},camel2dash:function(e){for(var t=[],r=0;rt&&" "===e[r];r--);return e.substring(t,r+1)},hex2tuple:function(e){if((4===e.length||7===e.length)&&"#"===e[0]){var t,r,n,i=4===e.length,a=16;return i?(t=parseInt(e[1]+e[1],a),r=parseInt(e[2]+e[2],a),n=parseInt(e[3]+e[3],a)):(t=parseInt(e[1]+e[2],a),r=parseInt(e[3]+e[4],a),n=parseInt(e[5]+e[6],a)),[t,r,n]}},hsl2tuple:function(t){function r(e,t,r){return 0>r&&(r+=1),r>1&&(r-=1),1/6>r?e+6*(t-e)*r:.5>r?t:2/3>r?e+(t-e)*(2/3-r)*6:e}var n,i,a,o,s,l,c,u,d=new RegExp("^"+e.util.regex.hsla+"$").exec(t);if(d){if(i=parseInt(d[1]),0>i?i=(360- -1*i%360)%360:i>360&&(i%=360),i/=360,a=parseFloat(d[2]),0>a||a>100)return;if(a/=100,o=parseFloat(d[3]),0>o||o>100)return;if(o/=100,s=d[4],void 0!==s&&(s=parseFloat(s),0>s||s>1))return;if(0===a)l=c=u=Math.round(255*o);else{var p=.5>o?o*(1+a):o+a-o*a,h=2*o-p;l=Math.round(255*r(h,p,i+1/3)),c=Math.round(255*r(h,p,i)),u=Math.round(255*r(h,p,i-1/3))}n=[l,c,u,s]}return n},rgb2tuple:function(t){var r,n=new RegExp("^"+e.util.regex.rgba+"$").exec(t);if(n){r=[];for(var i=[],a=1;3>=a;a++){var o=n[a];if("%"===o[o.length-1]&&(i[a]=!0),o=parseFloat(o),i[a]&&(o=o/100*255),0>o||o>255)return;r.push(Math.floor(o))}var s=i[1]||i[2]||i[3],l=i[1]&&i[2]&&i[3];if(s&&!l)return;var c=n[4];if(void 0!==c){if(c=parseFloat(c),0>c||c>1)return;r.push(c)}}return r},colorname2tuple:function(t){return e.util.colors[t.toLowerCase()]},color2tuple:function(t){return e.util.colorname2tuple(t)||e.util.hex2tuple(t)||e.util.rgb2tuple(t)||e.util.hsl2tuple(t)},tuple2hex:function(e){function t(e){var t=e.toString(16);return 1===t.length&&(t="0"+t),t}var r=e[0],n=e[1],i=e[2];return"#"+t(r)+t(n)+t(i)},colors:{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]}},e.util.regex={},e.util.regex.number="(?:[-]?\\d*\\.\\d+|[-]?\\d+|[-]?\\d*\\.\\d+[eE]\\d+)",e.util.regex.rgba="rgb[a]?\\(("+e.util.regex.number+"[%]?)\\s*,\\s*("+e.util.regex.number+"[%]?)\\s*,\\s*("+e.util.regex.number+"[%]?)(?:\\s*,\\s*("+e.util.regex.number+"))?\\)",e.util.regex.rgbaNoBackRefs="rgb[a]?\\((?:"+e.util.regex.number+"[%]?)\\s*,\\s*(?:"+e.util.regex.number+"[%]?)\\s*,\\s*(?:"+e.util.regex.number+"[%]?)(?:\\s*,\\s*(?:"+e.util.regex.number+"))?\\)",e.util.regex.hsla="hsl[a]?\\(("+e.util.regex.number+")\\s*,\\s*("+e.util.regex.number+"[%])\\s*,\\s*("+e.util.regex.number+"[%])(?:\\s*,\\s*("+e.util.regex.number+"))?\\)",e.util.regex.hslaNoBackRefs="hsl[a]?\\((?:"+e.util.regex.number+")\\s*,\\s*(?:"+e.util.regex.number+"[%])\\s*,\\s*(?:"+e.util.regex.number+"[%])(?:\\s*,\\s*(?:"+e.util.regex.number+"))?\\)",e.util.regex.hex3="\\#[0-9a-fA-F]{3}",e.util.regex.hex6="\\#[0-9a-fA-F]{6}";var r=t?t.requestAnimationFrame||t.mozRequestAnimationFrame||t.webkitRequestAnimationFrame||t.msRequestAnimationFrame:null;r=r||function(e){e&&setTimeout(e,1e3/60)},e.util.requestAnimationFrame=function(e){r(e)}}(cytoscape,"undefined"==typeof window?null:window),function(e){"use strict";e.math={},e.math.signum=function(e){return e>0?1:0>e?-1:0},e.math.distance=function(e,t){var r=t.x-e.x,n=t.y-e.y;return Math.sqrt(r*r+n*n)},e.math.qbezierAt=function(e,t,r,n){return(1-n)*(1-n)*e+2*(1-n)*n*t+n*n*r},e.math.qbezierPtAt=function(t,r,n,i){return{x:e.math.qbezierAt(t.x,r.x,n.x,i),y:e.math.qbezierAt(t.y,r.y,n.y,i)}},e.math.roundRectangleIntersectLine=function(e,t,r,n,i,a,o){var s,l=this.getRoundRectangleRadius(i,a),c=i/2,u=a/2,d=r-c+l-o,p=n-u-o,h=r+c-l+o,g=p;if(s=this.finiteLinesIntersect(e,t,r,n,d,p,h,g,!1),s.length>0)return s;var v=r+c+o,f=n-u+l-o,y=v,m=n+u-l+o;if(s=this.finiteLinesIntersect(e,t,r,n,v,f,y,m,!1),s.length>0)return s;var b=r-c+l-o,x=n+u+o,w=r+c-l+o,_=x;if(s=this.finiteLinesIntersect(e,t,r,n,b,x,w,_,!1),s.length>0)return s;var E=r-c-o,S=n-u+l-o,P=E,k=n+u-l+o;if(s=this.finiteLinesIntersect(e,t,r,n,E,S,P,k,!1),s.length>0)return s;var C,D=r-c+l,N=n-u+l;if(C=this.intersectLineCircle(e,t,r,n,D,N,l+o),C.length>0&&C[0]<=D&&C[1]<=N)return[C[0],C[1]];var T=r+c-l,M=n-u+l;if(C=this.intersectLineCircle(e,t,r,n,T,M,l+o),C.length>0&&C[0]>=T&&C[1]<=M)return[C[0],C[1]];var I=r+c-l,z=n+u-l;if(C=this.intersectLineCircle(e,t,r,n,I,z,l+o),C.length>0&&C[0]>=I&&C[1]>=z)return[C[0],C[1]];var B=r-c+l,R=n+u-l;return C=this.intersectLineCircle(e,t,r,n,B,R,l+o),C.length>0&&C[0]<=B&&C[1]>=R?[C[0],C[1]]:[]},e.math.roundRectangleIntersectBox=function(e,t,r,n,i,a,o,s,l){var c=this.getRoundRectangleRadius(i,a),u=o-i/2-l,d=s-a/2+c-l,p=o+i/2+l,h=s+a/2-c+l,g=o-i/2+c-l,v=s-a/2-l,f=o+i/2-c+l,y=s+a/2+l,m=Math.min(e,r),b=Math.max(e,r),x=Math.min(t,n),w=Math.max(t,n);return u>b?!1:m>p?!1:v>w?!1:x>y?!1:u>=m&&b>=u&&d>=x&&w>=d?!0:p>=m&&b>=p&&d>=x&&w>=d?!0:p>=m&&b>=p&&h>=x&&w>=h?!0:u>=m&&b>=u&&h>=x&&w>=h?!0:m>=u&&p>=m&&x>=d&&h>=x?!0:b>=u&&p>=b&&x>=d&&h>=x?!0:b>=u&&p>=b&&w>=d&&h>=w?!0:m>=u&&p>=m&&w>=d&&h>=w?!0:g>=m&&b>=g&&v>=x&&w>=v?!0:f>=m&&b>=f&&v>=x&&w>=v?!0:f>=m&&b>=f&&y>=x&&w>=y?!0:g>=m&&b>=g&&y>=x&&w>=y?!0:m>=g&&f>=m&&x>=v&&y>=x?!0:b>=g&&f>=b&&x>=v&&y>=x?!0:b>=g&&f>=b&&w>=v&&y>=w?!0:m>=g&&f>=m&&w>=v&&y>=w?!0:this.boxIntersectEllipse(m,x,b,w,l,2*c,2*c,g+l,d+l)?!0:this.boxIntersectEllipse(m,x,b,w,l,2*c,2*c,f-l,d+l)?!0:this.boxIntersectEllipse(m,x,b,w,l,2*c,2*c,f-l,h-l)?!0:this.boxIntersectEllipse(m,x,b,w,l,2*c,2*c,g+l,h-l)?!0:!1},e.math.checkInBoundingCircle=function(e,t,r,n,i,a,o,s){return e=(e-o)/(i+n),t=(t-s)/(a+n),r>=e*e+t*t},e.math.checkInBoundingBox=function(e,t,r,n,i,a,o,s){for(var l=r[0],c=r[1],u=r[0],d=r[1],p=1;pu&&(u=r[2*p]),r[2*p+1]d&&(d=r[2*p+1]);return e-=o,t-=s,e/=i,t/=a,l>e?!1:e>u?!1:c>t?!1:t>d?!1:!0},e.math.boxInBezierVicinity=function(e,t,r,n,i,a,o,s,l,c,u){var d=.25*i+.5*o+.25*l,p=.25*a+.5*s+.25*c,h=Math.min(e,r)-u,g=Math.min(t,n)-u,v=Math.max(e,r)+u,f=Math.max(t,n)+u;if(i>=h&&v>=i&&a>=g&&f>=a)return 1;if(l>=h&&v>=l&&c>=g&&f>=c)return 1;if(d>=h&&v>=d&&p>=g&&f>=p)return 1;if(o>=h&&v>=o&&s>=g&&f>=s)return 1;var y=Math.min(i,d,l),m=Math.min(a,p,c),b=Math.max(i,d,l),x=Math.max(a,p,c);return y>v||h>b||m>f||g>x?0:1},e.math.checkBezierInBox=function(t,r,n,i,a,o,s,l,c,u){function d(d){var p=e.math.qbezierAt(a,s,c,d),h=e.math.qbezierAt(o,l,u,d);return p>=t&&n>=p&&h>=r&&i>=h}for(var p=0;1>=p;p+=.25)if(!d(p))return!1;return!0},e.math.checkStraightEdgeInBox=function(e,t,r,n,i,a,o,s){return i>=e&&r>=i&&o>=e&&r>=o&&a>=t&&n>=a&&s>=t&&n>=s},e.math.checkStraightEdgeCrossesBox=function(e,t,r,n,i,a,o,s,l){var c,u,d=Math.min(e,r)-l,p=Math.min(t,n)-l,h=Math.max(e,r)+l,g=Math.max(t,n)+l,v=o-i,f=i,y=s-a,m=a;if(Math.abs(v)<1e-4)return i>=d&&h>=i&&Math.min(a,s)<=p&&Math.max(a,s)>=g;var b=(d-f)/v;if(b>0&&1>=b&&(c=y*b+m,c>=p&&g>=c))return!0;var x=(h-f)/v;if(x>0&&1>=x&&(c=y*x+m,c>=p&&g>=c))return!0;var w=(p-m)/y;if(w>0&&1>=w&&(u=v*w+f,u>=d&&h>=u))return!0;var _=(g-m)/y;return _>0&&1>=_&&(u=v*_+f,u>=d&&h>=u)?!0:!1},e.math.checkBezierCrossesBox=function(e,t,r,n,i,a,o,s,l,c,u){var d=Math.min(e,r)-u,p=Math.min(t,n)-u,h=Math.max(e,r)+u,g=Math.max(t,n)+u;if(i>=d&&h>=i&&a>=p&&g>=a)return!0;if(l>=d&&h>=l&&c>=p&&g>=c)return!0;var v=i-2*o+l,f=-2*i+2*o,y=i,m=[];if(Math.abs(v)<1e-4){var b=(d-i)/f,x=(h-i)/f;m.push(b,x)}else{var w,_,E=f*f-4*v*(y-d);if(E>0){var S=Math.sqrt(E);w=(-f+S)/(2*v),_=(-f-S)/(2*v),m.push(w,_)}var P,k,C=f*f-4*v*(y-h);if(C>0){var S=Math.sqrt(C);P=(-f+S)/(2*v),k=(-f-S)/(2*v),m.push(P,k)}}m.sort(function(e,t){return e-t});var D=a-2*s+c,N=-2*a+2*s,T=a,M=[];if(Math.abs(D)<1e-4){var I=(p-a)/N,z=(g-a)/N;M.push(I,z)}else{var B,R,X=N*N-4*D*(T-p);if(X>0){var S=Math.sqrt(X);B=(-N+S)/(2*D),R=(-N-S)/(2*D),M.push(B,R)}var L,O,Y=N*N-4*D*(T-g);if(Y>0){var S=Math.sqrt(Y);L=(-N+S)/(2*D),O=(-N-S)/(2*D),M.push(L,O)}}M.sort(function(e,t){return e-t});for(var V=0;V=0&&m[V]<=1&&m[V+1]>M[A-1]&&M[A-1]<=1&&m[V+1]>=0)return!0;return!1},e.math.inLineVicinity=function(e,t,r,n,i,a,o){var s=o,l=Math.min(r,i),c=Math.max(r,i),u=Math.min(n,a),d=Math.max(n,a);return e>=l-s&&c+s>=e&&t>=u-s&&d+s>=t},e.math.inBezierVicinity=function(e,t,r,n,i,a,o,s){var l={x1:Math.min(r,o,i),x2:Math.max(r,o,i),y1:Math.min(n,s,a),y2:Math.max(n,s,a)};return el.x2||tl.y2?!1:!0},e.math.solveCubic=function(e,t,r,n,i){t/=e,r/=e,n/=e;var a,o,s,l,c,u,d,p;return o=(3*r-t*t)/9,s=-(27*n)+t*(9*r-2*t*t),s/=54,a=o*o*o+s*s,i[1]=0,d=t/3,a>0?(c=s+Math.sqrt(a),c=0>c?-Math.pow(-c,1/3):Math.pow(c,1/3),u=s-Math.sqrt(a),u=0>u?-Math.pow(-u,1/3):Math.pow(u,1/3),i[0]=-d+c+u,d+=(c+u)/2,i[4]=i[2]=-d,d=Math.sqrt(3)*(-u+c)/2,i[3]=d,void(i[5]=-d)):(i[5]=i[3]=0,0===a?(p=0>s?-Math.pow(-s,1/3):Math.pow(s,1/3),i[0]=-d+2*p,void(i[4]=i[2]=-(p+d))):(o=-o,l=o*o*o,l=Math.acos(s/Math.sqrt(l)),p=2*Math.sqrt(o),i[0]=-d+p*Math.cos(l/3),i[2]=-d+p*Math.cos((l+2*Math.PI)/3),void(i[4]=-d+p*Math.cos((l+4*Math.PI)/3))))},e.math.sqDistanceToQuadraticBezier=function(e,t,r,n,i,a,o,s){var l=1*r*r-4*r*i+2*r*o+4*i*i-4*i*o+o*o+n*n-4*n*a+2*n*s+4*a*a-4*a*s+s*s,c=9*r*i-3*r*r-3*r*o-6*i*i+3*i*o+9*n*a-3*n*n-3*n*s-6*a*a+3*a*s,u=3*r*r-6*r*i+r*o-r*e+2*i*i+2*i*e-o*e+3*n*n-6*n*a+n*s-n*t+2*a*a+2*a*t-s*t,d=1*r*i-r*r+r*e-i*e+n*a-n*n+n*t-a*t,p=[];this.solveCubic(l,c,u,d,p);for(var h=1e-7,g=[],v=0;6>v;v+=2)Math.abs(p[v+1])=0&&p[v]<=1&&g.push(p[v]);g.push(1),g.push(0);for(var f,y,m,b,x=-1,w=0;w=0?x>b&&(x=b,f=g[w]):(x=b,f=g[w]);return x},e.math.sqDistanceToFiniteLine=function(e,t,r,n,i,a){var o=[e-r,t-n],s=[i-r,a-n],l=s[0]*s[0]+s[1]*s[1],c=o[0]*o[0]+o[1]*o[1],u=o[0]*s[0]+o[1]*s[1],d=u*u/l;return 0>u?c:d>l?(e-i)*(e-i)+(t-a)*(t-a):c-d},e.math.pointInsidePolygon=function(e,t,r,n,i,a,o,s,l){var c=new Array(r.length),u=Math.asin(s[1]/Math.sqrt(s[0]*s[0]+s[1]*s[1]));s[0]<0?u+=Math.PI/2:u=-u-Math.PI/2;for(var d=Math.cos(-u),p=Math.sin(-u),h=0;h0){var v=this.expandPolygon(c,-l);g=this.joinLines(v)}else g=c;for(var f,y,m,b,x,w=0,_=0,h=0;h=e&&e>=m||e>=f&&m>=e))continue;x=(e-f)/(m-f)*(b-y)+y,x>t&&w++,t>x&&_++}return w%2===0?!1:!0},e.math.joinLines=function(e){for(var t,r,n,i,a,o,s,l,c=new Array(e.length/2),u=0;uc)return[];var u=c/l;return[(r-e)*u+e,(n-t)*u+t]},e.math.dotProduct=function(e,t){if(2!=e.length||2!=t.length)throw"dot product: arguments are not vectors";return e[0]*t[0]+e[1]*t[1]},e.math.intersectLineCircle=function(e,t,r,n,i,a,o){var s=[r-e,n-t],l=[i,a],c=[e-i,t-a],u=s[0]*s[0]+s[1]*s[1],d=2*(c[0]*s[0]+c[1]*s[1]),l=c[0]*c[0]+c[1]*c[1]-o*o,p=d*d-4*u*l;if(0>p)return[];var h=(-d+Math.sqrt(p))/(2*u),g=(-d-Math.sqrt(p))/(2*u),v=Math.min(h,g),f=Math.max(h,g),y=[];if(v>=0&&1>=v&&y.push(v),f>=0&&1>=f&&y.push(f),0===y.length)return[];var m=y[0]*s[0]+e,b=y[0]*s[1]+t;if(y.length>1){if(y[0]==y[1])return[m,b];var x=y[1]*s[0]+e,w=y[1]*s[1]+t;return[m,b,x,w]}return[m,b]},e.math.findCircleNearPoint=function(e,t,r,n,i){var a=n-e,o=i-t,s=Math.sqrt(a*a+o*o),l=a/s,c=o/s;return[e+l*r,t+c*r]},e.math.findMaxSqDistanceToOrigin=function(e){for(var t,r=1e-6,n=0;nr&&(r=t);return r},e.math.finiteLinesIntersect=function(e,t,r,n,i,a,o,s,l){var c=(o-i)*(t-a)-(s-a)*(e-i),u=(r-e)*(t-a)-(n-t)*(e-i),d=(s-a)*(r-e)-(o-i)*(n-t);if(0!==d){var p=c/d,h=u/d;return p>=0&&1>=p&&h>=0&&1>=h?[e+p*(r-e),t+p*(n-t)]:l?[e+p*(r-e),t+p*(n-t)]:[]}return 0===c||0===u?[e,r,o].sort()[1]===o?[o,s]:[e,r,i].sort()[1]===i?[i,a]:[i,o,r].sort()[1]===r?[r,n]:[]:[]},e.math.boxIntersectEllipse=function(e,t,r,n,i,a,o,s,l){if(e>r){var c=e;e=r,r=c}if(t>n){var u=t;t=n,n=u}var d=[s-a/2-i,l],p=[s+a/2+i,l],h=[s,l-o/2-i],g=[s,l+o/2+i];return rp[0]?!1:t>g[1]?!1:n=e*e+t*t?!0:1>=r*r+t*t?!0:1>=r*r+n*n?!0:1>=e*e+n*n?!0:!1)},e.math.boxIntersectPolygon=function(t,r,n,i,a,o,s,l,c,u,d){if(t>n){var p=t;t=n,n=p}if(r>i){var h=r;r=i,i=h}var g=new Array(a.length),v=Math.asin(u[1]/Math.sqrt(u[0]*u[0]+u[1]*u[1]));u[0]<0?v+=Math.PI/2:v=-v-Math.PI/2;for(var f=Math.cos(-v),y=Math.sin(-v),m=0;mx&&(x=g[2*m]),g[2*m]_&&(_=g[2*m+1]),g[2*m+1]n)return!1;if(t>x+d)return!1;if(w-d>i)return!1;if(r>_+d)return!1;var E;if(d>0){var S=e.math.expandPolygon(g,-d);E=e.math.joinLines(S)}else E=g;for(var m=0;m0)return!0;if(e.math.finiteLinesIntersect(C,D,P,k,t,i,n,i,!1).length>0)return!0;if(e.math.finiteLinesIntersect(C,D,P,k,t,r,t,i,!1).length>0)return!0;if(e.math.finiteLinesIntersect(C,D,P,k,n,r,n,i,!1).length>0)return!0}return!1},e.math.polygonIntersectLine=function(t,r,n,i,a,o,s,l){for(var c,u=[],d=new Array(n.length),p=0;p0){var g=e.math.expandPolygon(d,-l);h=e.math.joinLines(g)}else h=d;for(var v,f,y,m,p=0;pa&&(a=1e-5),[t[0]+a*n[0],t[1]+a*n[1]]},e.math.generateUnitNgonPointsFitToSquare=function(t,r){var n=e.math.generateUnitNgonPoints(t,r);return n=e.math.fitPolygonToSquare(n)},e.math.fitPolygonToSquare=function(e){for(var t,r,n=e.length/2,i=1/0,a=1/0,o=-1/0,s=-1/0,l=0;n>l;l++)t=e[2*l],r=e[2*l+1],i=Math.min(i,t),o=Math.max(o,t),a=Math.min(a,r),s=Math.max(s,r);for(var c=2/(o-i),u=2/(s-a),l=0;n>l;l++)t=e[2*l]=e[2*l]*c,r=e[2*l+1]=e[2*l+1]*u,i=Math.min(i,t),o=Math.max(o,t),a=Math.min(a,r),s=Math.max(s,r);if(-1>a)for(var l=0;n>l;l++)r=e[2*l+1]=e[2*l+1]+(-1-a);return e},e.math.generateUnitNgonPoints=function(e,t){var r=1/e*2*Math.PI,n=e%2===0?Math.PI/2+r/2:Math.PI/2;n+=t;for(var i,a,o,s=new Array(2*e),l=0;e>l;l++)i=l*r+n,a=s[2*l]=Math.cos(i),o=s[2*l+1]=Math.sin(-i);return s},e.math.getRoundRectangleRadius=function(e,t){return Math.min(e/4,t/4,8)}}(cytoscape),function(e){"use strict";e.instances=[],e.instanceCounter=0,e.lastInstanceTime=void 0,e.registerInstance=function(t,r){var n;e.is.core(t)?n=t:e.is.domElement(t)&&(r=t);var i=e.getRegistrationForInstance(t,r);if(i)return i.cy?e.util.error("Tried to register on a pre-existing registration"):(i.cy=t,i.domElement=r),i;var a,o=+new Date;e.lastInstanceTime&&e.lastInstanceTime!==o?++e.instanceCounter:e.instanceCounter=0,e.lastInstanceTime=o,a=e.instanceCounter;var s="cy-"+o+"-"+a,l={id:s,cy:n,domElement:r,readies:[]};return e.instances.push(l),e.instances[s]=l,l},e.removeRegistrationForInstance=function(t,r){var n;if(e.is.core(t)?n=t:e.is.domElement(t)&&(r=t),e.is.core(n)){var i=n._private.instanceId;delete e.instances[i],e.instances.splice(i,1)}else if(e.is.domElement(r))for(var a=0;a=0;a--){var o=e.instances[a];if(o.domElement===r)return o}}}(cytoscape),function(e){"use strict";function t(t,r,n){var i={};switch(i[r]=n,t){case"core":case"collection":e.fn[t](i)}return e.util.setMap({map:a,keys:[t,r],value:n})}function r(t,r){return e.util.getMap({map:a,keys:[t,r]})}function n(t,r,n,i,a){return e.util.setMap({map:o,keys:[t,r,n,i],value:a})}function i(t,r,n,i){return e.util.getMap({map:o,keys:[t,r,n,i]})}var a={};e.extensions=a;var o={};e.modules=o,e.extension=function(){return 2==arguments.length?r.apply(this,arguments):3==arguments.length?t.apply(this,arguments):4==arguments.length?i.apply(this,arguments):5==arguments.length?n.apply(this,arguments):void $.error("Invalid extension access syntax")}}(cytoscape),function(e,t){"use strict";e&&(e.fn.cytoscape=function(r){var n=e(this);if("get"===r){var i=t.getRegistrationForInstance(n[0]);return i.cy}if(!t.is.fn(r)){if(t.is.plainObject(r))return n.each(function(){var t=e.extend({},r,{container:e(this)[0]});cytoscape(t)});for(var a=n[0],o=[],s=[],l=1;ld;d++)i.canSet(s[d])&&(s[d]._private[i.field][r]=n);i.updateStyle&&a.updateStyle(),i.onSet(a),i.settingTriggersEvent&&a[i.triggerFnName](i.settingEvent)}}}else if(i.allowSetting&&e.is.plainObject(r)){var h,g,v=r;for(h in v){g=v[h];var u=!i.immutableKeys[h];if(u)for(var d=0,p=s.length;p>d;d++)i.canSet(s[d])&&(s[d]._private[i.field][h]=g)}i.updateStyle&&a.updateStyle(),i.onSet(a),i.settingTriggersEvent&&a[i.triggerFnName](i.settingEvent)}else if(i.allowBinding&&e.is.fn(r)){var f=r;a.bind(i.bindingEvent,f)}else if(i.allowGetting&&void 0===r){var c;return l&&(c=l._private[i.field]),c}return a}},batchData:function(t){var r={field:"data",event:"data",triggerFnName:"trigger",immutableKeys:{},updateStyle:!1},n=e.util.extend({},r,t);return function(t){var r=this,i=void 0!==r.length,a=i?r:r._private.elements;if(0===a.length)return r;for(var o=i?a[0]._private.cy:r,s=0;sc;c++){var u=s[c];if(!e.is.emptyString(u)){var d=!n.immutableKeys[u];if(d)for(var p=0,h=o.length;h>p;p++)delete o[p]._private[n.field][u]}}n.triggerEvent&&i[n.triggerFnName](n.event)}else if(void 0===r){for(var p=0,h=o.length;h>p;p++){var g=o[p]._private[n.field];for(var u in g){var v=!n.immutableKeys[u];v&&delete g[u]}}n.triggerEvent&&i[n.triggerFnName](n.event)}return i}},event:{regex:/(\w+)(\.\w+)?/,optionalTypeRegex:/(\w+)?(\.\w+)?/,falseCallback:function(){return!1}},on:function(t){var r={unbindSelfOnTrigger:!1,unbindAllBindersOnTrigger:!1};return t=e.util.extend({},r,t),function(r,n,i,a){var o=this,s=void 0!==o.length,l=s?o:[o],c=e.is.string(r),u=t;if(e.is.plainObject(n)?(a=i,i=n,n=void 0):(e.is.fn(n)||n===!1)&&(a=n,i=void 0,n=void 0),(e.is.fn(i)||i===!1)&&(a=i,i=void 0),!e.is.fn(a)&&a!==!1&&c)return o;if(c){var d={};d[r]=a,r=d}for(var p in r)if(a=r[p],a===!1&&(a=e.define.event.falseCallback),e.is.fn(a)){p=p.split(/\s+/);for(var h=0;h0:!0,I=N&&T&&M;if(I){var z=[h];if(z=z.concat(r),h.data=D.data?D.data:void 0,(D.unbindSelfOnTrigger||D.unbindAllBindersOnTrigger)&&(w.splice(C,1),C--),D.unbindAllBindersOnTrigger)for(var B=D.binders,R=0;R\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",comparatorOp:"=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",boolOp:"\\?|\\!|\\^",string:'"(?:\\\\"|[^"])+"|'+"'(?:\\\\'|[^'])+'",number:e.util.regex.number,meta:"degree|indegree|outdegree",separator:"\\s*,\\s*",descendant:"\\s+",child:"\\s+>\\s+",subject:"\\$"};s.variable="(?:[\\w-]|(?:\\\\"+s.metaChar+"))+",s.value=s.string+"|"+s.number,s.className=s.variable,s.id=s.variable;for(var l=function(e){return e.replace(new RegExp("\\\\("+s.metaChar+")","g"),function(e,t){return t})},c=s.comparatorOp.split("|"),u=0;u=0;break;case"$=":a=null!=new RegExp(p+"$").exec(d);break;case"^=":a=null!=new RegExp("^"+p).exec(d);break;case"=":a=u===l;break;case"!=":a=u!==l;break;case">":a=u>l;break;case">=":a=u>=l;break;case"<":a=l>u;break;case"<=":a=l>=u;break;default:a=!1}}else if(null!=s)switch(s){case"?":a=r.fieldTruthy(c);break;case"!":a=!r.fieldTruthy(c);break;case"^":a=r.fieldUndefined(c)}else a=!r.fieldUndefined(c);if(!a){n=!1;break}}return n},h=p({name:"data",fieldValue:function(e){return r._private.data[e]},fieldRef:function(e){return"element._private.data."+e},fieldUndefined:function(e){return void 0===r._private.data[e]},fieldTruthy:function(e){return r._private.data[e]?!0:!1}});if(!h)return!1;var g=p({name:"meta",fieldValue:function(e){return r[e]()},fieldRef:function(e){return"element."+e+"()"},fieldUndefined:function(e){return null==r[e]()},fieldTruthy:function(e){return r[e]()?!0:!1}});if(!g)return!1;if(null!=t.collection){var v=null!=t.collection._private.ids[r.id()];if(!v)return!1}if(null!=t.filter&&0===r.collection().filter(t.filter).size())return!1;var f=function(e,t){if(null!=e){var r=!1;t=t();for(var n=0;n "+t),null!=e.ancestor&&(t=n(e.ancestor)+" "+t),null!=e.child&&(t+=" > "+n(e.child)),null!=e.descendant&&(t+=" "+n(e.descendant)),t},i=0;i1&&i node").css({width:"auto",height:"auto",shape:"rectangle","background-opacity":.5,"padding-top":10,"padding-right":10,"padding-left":10,"padding-bottom":10}).selector("edge").css({width:1}).selector(":active").css({"overlay-color":"black","overlay-padding":10,"overlay-opacity":.25}).selector("core").css({"selection-box-color":"#ddd","selection-box-opacity":.65,"selection-box-border-color":"#aaa","selection-box-border-width":1,"panning-cursor":"grabbing","active-bg-color":"black","active-bg-opacity":.15,"active-bg-size":e.is.touch()?40:15,"outside-texture-bg-color":"#000","outside-texture-bg-opacity":.125})},e.styfn.clear=function(){this._private.newStyle=!0;for(var e=0;el.max)return null;var P={name:t,value:r,strValue:""+r+(b?b:""),units:b,bypass:n};return l.unitless||"px"!==b&&"em"!==b||(P.pxValue="px"!==b&&b?this.getEmSizeInPixels()*r:r),P}if(l.propList){var k=[],C=""+r;if("none"===C);else{for(var D=C.split(","),E=0;E0,u=l.properties,d=!i.styleCxts[s];if(c){for(var p=0;p0||o.length>0)&&this.updateTransitions(n,a,o),t.updateStyleHints(n)}t._private.newStyle=!1},e.styfn.updateStyleHints=function(t){var r=t._private,n=!1;if("nodes"===r.group)for(var i=1;i<=e.style.pieBackgroundN;i++){var a=r.style["pie-"+i+"-background-size"].value;if(a>0){n=!0;break}}r.hasPie=n;var o=r.style["text-transform"].strValue,s=r.style.content.strValue,l=r.style["font-style"].strValue,a=r.style["font-size"].pxValue+"px",c=r.style["font-family"].strValue,u=r.style["font-variant"].strValue,d=r.style["font-weight"].strValue;r.labelKey=l+"$"+a+"$"+c+"$"+u+"$"+d+"$"+s+"$"+o,r.fontKey=l+"$"+d+"$"+a+"$"+c},e.styfn.rollBackContext=function(e,t){for(var r=0;ry?y=0:y>1&&(y=1),l.color){var m=o.valueMin[0],b=o.valueMax[0],x=o.valueMin[1],w=o.valueMax[1],_=o.valueMin[2],E=o.valueMax[2],S=null==o.valueMin[3]?1:o.valueMin[3],P=null==o.valueMax[3]?1:o.valueMax[3],k=[Math.round(m+(b-m)*y),Math.round(x+(w-x)*y),Math.round(_+(E-_)*y),Math.round(S+(P-S)*y)];a={bypass:o.bypass,name:o.name,value:k,strValue:"rgba("+k[0]+", "+k[1]+", "+k[2]+", "+k[3]}}else{if(!l.number)return!1;var C=o.valueMin+(o.valueMax-o.valueMin)*y;a=this.parse(o.name,C,o.bypass,!0)}a||(a=this.parse(o.name,u.strValue,o.bypass,!0)),a.mapping=o,o=a;break;case e.style.types.data:case e.style.types.layoutData:for(var h=o.mapped===e.style.types.layoutData,g=o.field.split("."),i=h?t._private.layoutData:t._private.data,v=0;v0&&s>0){for(var u=!1,d=0;d=0;b--){for(var x=n[b],w=0;w0&&t.delay(l),t.animate({css:c},{duration:s,queue:!1,complete:function(){i.removeAllBypasses(t),t._private.transitioning=!1}})}else t._private.transitioning&&(t.stop(),this.removeAllBypasses(t),t._private.transitioning=!1)}}(cytoscape),function(e){"use strict";e.styfn.applyBypass=function(t,r,n){var i=[];if("*"===r||"**"===r){if(void 0!==n)for(var a=0;aa.length?l.substr(a.length):""}function i(){o=o.length>s.length?o.substr(s.length):""}var a,o,s,l=""+r;for(l=l.replace(/[/][*](\s|.)+?[*][/]/g,"");;){var c=l.match(/^\s*$/);if(c)break;var u=l.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);if(!u){e.util.error("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: "+l);break}a=u[0];var d=u[1],p=new e.Selector(d);if(p._private.invalid)e.util.error("Skipping parsing of block: Invalid selector found in string stylesheet: "+d),n();else{var h=u[2],g=!1;o=h;for(var v=[];;){var c=o.match(/^\s*$/);if(c)break;var f=o.match(/^\s*(.+?)\s*:\s*(.+?)\s*;/);if(!f){e.util.error("Skipping parsing of block: Invalid formatting of style property and value definitions found in:"+h),g=!0;break}s=f[0];var y=f[1],m=f[2],b=e.style.properties[y];if(b){var x=t.parse(y,m);x?(v.push({name:y,val:m}),i()):(e.util.error("Skipping property: Invalid property definition in: "+s),i())
}else e.util.error("Skipping property: Invalid property name in: "+s),i()}if(g){n();break}t.selector(d);for(var w=0;wo;o++){var d=c[o],p=l[d];if(e.is.array(p))for(var h=0,g=p.length;g>h;h++){var v=p[h],f=e.util.extend({},v,{group:d});a.push(f)}}r=new e.Collection(n,a)}else{var v=t;r=new e.Element(n,v).collection()}return r},remove:function(t){if(e.is.elementOrCollection(t))t=t;else if(e.is.string(t)){var r=t;t=this.$(r)}return t.remove()},load:function(n,i,a){function o(){s.one("layoutready",function(e){s.notifications(!0),s.trigger(e),s.notify({type:"load",collection:s.elements()}),s.one("load",i),s.trigger("load")}).one("layoutstop",function(){s.one("done",a),s.trigger("done")}),s.layout(s._private.options.layout)}var s=this,l=s.elements();return l.length>0&&l.remove(),s.notifications(!1),null!=n&&(e.is.plainObject(n)||e.is.array(n))&&s.add(n),t?r(o):o(),this}})}(cytoscape,"undefined"==typeof window?null:window),function(e,t){"use strict";e.fn.core({addToAnimationPool:function(e){for(var t=this,r=t._private.aniEles,n=[],i=0;i0?c.shift():null;null!=u&&(u.callTime=+new Date,o.push(u))}for(var d=[],p=0;p0&&s.notify({type:"draw",collection:r});for(var p=0;p0||l.length>0;v||(r.splice(p,1),p--)}}function i(t,r,n){var i,l=s._private.style,c=r.properties,u=r.params,d=r.callTime;if(i=0===r.duration?1:Math.min(1,(n-d)/r.duration),0>i?i=0:i>1&&(i=1),null==c.delay){var p=r.startPosition,h=c.position,g=t._private.position;if(h&&(a(p.x,h.x)&&(g.x=o(p.x,h.x,i)),a(p.y,h.y)&&(g.y=o(p.y,h.y,i))),c.css)for(var v=e.style.properties,f=0;f=1&&(r.done=!0),i}function a(t,r){return null==t||null==r?!1:e.is.number(t)&&e.is.number(r)?!0:t&&r?!0:!1}function o(t,r,n){if(0>n?n=0:n>1&&(n=1),e.is.number(t)&&e.is.number(r))return t+(r-t)*n;if(e.is.number(t[0])&&e.is.number(r[0])){var i=t,a=r,o=function(e,t){var r=t-e,i=e;return Math.round(n*r+i)},s=o(i[0],a[0]),l=o(i[1],a[1]),c=o(i[2],a[2]);return"rgb("+s+", "+l+", "+c+")"}return void 0}var s=this,l=1e3/60,c=!1,u=!0;if(t){s._private.aniEles=[];var d=e.util.requestAnimationFrame;null!=d&&u||(d=function(e){t.setTimeout(function(){e(+new Date)},l)});var p=s.container();r()}}})}(cytoscape,"undefined"==typeof window?null:window),function(e){"use strict";e.fn.core({data:e.define.data({field:"data",bindingEvent:"data",allowBinding:!0,allowSetting:!0,settingEvent:"data",settingTriggersEvent:!0,triggerFnName:"trigger",allowGetting:!0}),removeData:e.define.removeData({field:"data",event:"data",triggerFnName:"trigger",triggerEvent:!0}),batchData:e.define.batchData({field:"data",event:"data",triggerFnName:"trigger",immutableKeys:{id:!0,source:!0,target:!0,parent:!0},updateStyle:!0}),scratch:e.define.data({field:"scratch",allowBinding:!1,allowSetting:!0,settingTriggersEvent:!1,allowGetting:!0}),removeScratch:e.define.removeData({field:"scratch",triggerEvent:!1})})}(cytoscape),function(e){"use strict";e.fn.core({on:e.define.on(),one:e.define.on({unbindSelfOnTrigger:!0}),once:e.define.on({unbindAllBindersOnTrigger:!0}),off:e.define.off(),trigger:e.define.trigger()}),e.corefn.bind=e.corefn.on,e.corefn.unbind=e.corefn.off}(cytoscape),function(e){"use strict";e.fn.core({png:function(e){var t=this._private.renderer;return e=e||{},t.png(e)}})}(cytoscape),function(e){"use strict";e.fn.core({layout:function(e){var t=this;return this._private.layoutRunning?this:(null==e&&(e=this._private.options.layout),this.initLayout(e),t.trigger("layoutstart"),this._private.layoutRunning=!0,this.one("layoutstop",function(){t._private.layoutRunning=!1}),this._private.layout.run(),this)},initLayout:function(t){if(null==t)return void e.util.error("Layout options must be specified to run a layout");if(null==t.name)return void e.util.error("A `name` must be specified to run a layout");var r=t.name,n=e.extension("layout",r);return null==n?void e.util.error("Can not apply layout: No such layout `%s` found; did you include its JS file?",r):(this._private.layout=new n(e.util.extend({},t,{renderer:this._private.renderer,cy:this})),void(this._private.options.layout=t))}})}(cytoscape),function(e){"use strict";e.fn.core({notify:function(t){if(this._private.notificationsEnabled){var r=this.renderer(),n=this;if(e.is.element(t.collection)){var i=t.collection;t.collection=new e.Collection(n,[i])}else if(e.is.array(t.collection)){var a=t.collection;t.collection=new e.Collection(n,a)}r.notify(t)}},notifications:function(e){var t=this._private;return void 0===e?t.notificationsEnabled:void(t.notificationsEnabled=e?!0:!1)},noNotifications:function(e){this.notifications(!1),e(),this.notifications(!0)}})}(cytoscape),function(e){"use strict";e.fn.core({renderTo:function(e,t,r,n){var i=this._private.renderer;return i.renderTo(e,t,r,n),this},renderer:function(){return this._private.renderer},forceRender:function(){return this.notify({type:"draw"}),this},resize:function(){return this.notify({type:"resize"}),this},initRenderer:function(t){var r=this,n=e.extension("renderer",t.name);return null==n?void e.util.error("Can not initialise: No such renderer `%s` found; did you include its JS file?",t.name):void(this._private.renderer=new n(e.util.extend({},t,{cy:r,style:r._private.style})))},recalculateRenderedStyle:function(){var e=this.renderer();e.recalculateRenderedStyle&&e.recalculateRenderedStyle()}})}(cytoscape),function(e){"use strict";e.fn.core({collection:function(t){return e.is.string(t)?this.$(t):e.is.elementOrCollection(t)?t.collection():new e.Collection(this)},nodes:function(e){var t=this.$("node");return e?t.filter(e):t},edges:function(e){var t=this.$("edge");return e?t.filter(e):t},$:function(t){var r=new e.Collection(this,this._private.elements);return t?r.filter(t):r}}),e.corefn.elements=e.corefn.filter=e.corefn.$}(cytoscape),function(e){"use strict";e.fn.core({style:function(){return this._private.style}})}(cytoscape),function(e){"use strict";e.fn.core({autolockNodes:function(e){return void 0===e?this._private.autolockNodes:(this._private.autolockNodes=e?!0:!1,this)},autoungrabifyNodes:function(e){return void 0===e?this._private.autoungrabifyNodes:(this._private.autoungrabifyNodes=e?!0:!1,this)},panningEnabled:function(e){return void 0===e?this._private.panningEnabled:(this._private.panningEnabled=e?!0:!1,this)},userPanningEnabled:function(e){return void 0===e?this._private.userPanningEnabled:(this._private.userPanningEnabled=e?!0:!1,this)},zoomingEnabled:function(e){return void 0===e?this._private.zoomingEnabled:(this._private.zoomingEnabled=e?!0:!1,this)},userZoomingEnabled:function(e){return void 0===e?this._private.userZoomingEnabled:(this._private.userZoomingEnabled=e?!0:!1,this)},boxSelectionEnabled:function(e){return void 0===e?this._private.boxSelectionEnabled:(this._private.boxSelectionEnabled=e?!0:!1,this)},pan:function(){var t,r,n,i,a,o=arguments,s=this._private.pan;switch(o.length){case 0:return s;case 1:if(!this._private.panningEnabled)return this;if(e.is.string(o[0]))return t=o[0],s[t];e.is.plainObject(o[0])&&(n=o[0],i=n.x,a=n.y,e.is.number(i)&&(s.x=i),e.is.number(a)&&(s.y=a),this.trigger("pan"));break;case 2:if(!this._private.panningEnabled)return this;t=o[0],r=o[1],"x"!==t&&"y"!==t||!e.is.number(r)||(s[t]=r),this.trigger("pan")}return this.notify({type:"viewport"}),this},panBy:function(){var t,r,n,i,a,o=arguments,s=this._private.pan;if(!this._private.panningEnabled)return this;switch(o.length){case 1:e.is.plainObject(o[0])&&(n=o[0],i=n.x,a=n.y,e.is.number(i)&&(s.x+=i),e.is.number(a)&&(s.y+=a),this.trigger("pan"));break;case 2:t=o[0],r=o[1],"x"!==t&&"y"!==t||!e.is.number(r)||(s[t]+=r),this.trigger("pan")}return this.notify({type:"viewport"}),this},fit:function(t,r){if(e.is.number(t)&&void 0===r&&(r=t,t=void 0),!this._private.panningEnabled||!this._private.zoomingEnabled)return this;if(e.is.string(t)){var n=t;t=this.$(n)}else e.is.elementOrCollection(t)||(t=this.elements());var i,a=t.boundingBox(),o=this.style(),s=parseFloat(o.containerCss("width")),l=parseFloat(o.containerCss("height"));return r=e.is.number(r)?r:0,!isNaN(s)&&!isNaN(l)&&t.length>0&&(i=this._private.zoom=Math.min((s-2*r)/a.w,(l-2*r)/a.h),i=i>this._private.maxZoom?this._private.maxZoom:i,i=ithis._private.maxZoom?this._private.maxZoom:n,n=nr.maxZoom||!r.zoomingEnabled?o=!0:(r.zoom=l,a.push("zoom"))}if(i&&!o&&r.panningEnabled){var c=t.pan;e.is.number(c.x)&&(r.pan.x=c.x,s=!1),e.is.number(c.y)&&(r.pan.y=c.y,s=!1),s||a.push("pan")}return a.length>0&&this.trigger(a.join(" ")),this.notify({type:"viewport"}),this},boundingBox:function(e){var t=this.$(e);return t.boundingBox()},renderedBoundingBox:function(e){var t=this.$(e);return t.renderedBoundingBox()},center:function(t){if(!this._private.panningEnabled||!this._private.zoomingEnabled)return this;if(e.is.string(t)){var r=t;t=this.elements(r)}else e.is.elementOrCollection(t)||(t=this.elements());var n=t.boundingBox(),i=this.style(),a=parseFloat(i.containerCss("width")),o=parseFloat(i.containerCss("height")),s=this._private.zoom;return this.pan({x:(a-s*(n.x1+n.x2))/2,y:(o-s*(n.y1+n.y2))/2}),this.trigger("pan"),this.notify({type:"viewport"}),this},reset:function(){return this._private.panningEnabled&&this._private.zoomingEnabled?(this.pan({x:0,y:0}),this._private.maxZoom>1&&this._private.minZoom<1&&this.zoom(1),this.notify({type:"viewport"}),this):this}})}(cytoscape),function(e){"use strict";e.fn.collection=e.fn.eles=function(t){for(var r in t){var n=t[r];e.Collection.prototype[r]=n}};var t={prefix:{nodes:"n",edges:"e"},id:{nodes:0,edges:0},generate:function(t,r,n){var i=e.is.element(r)?r._private:r,a=i.group,o=null!=n?n:this.prefix[a]+this.id[a];if(t.getElementById(o).empty())this.id[a]++;else for(;!t.getElementById(o).empty();)o=this.prefix[a]+ ++this.id[a];return o}};e.Element=function(t,r,n){if(!(this instanceof e.Element))return new e.Element(t,r,n);var i=this;if(n=void 0===n||n?!0:!1,void 0===t||void 0===r||!e.is.core(t))return void e.util.error("An element must have a core reference and parameters set");if("nodes"!==r.group&&"edges"!==r.group)return void e.util.error("An element must be of type `nodes` or `edges`; you specified `"+r.group+"`");if(this.length=1,this[0]=this,this._private={cy:t,single:!0,data:r.data||{},layoutData:{},position:r.position||{},autoWidth:void 0,autoHeight:void 0,listeners:[],group:r.group,style:{},rstyle:{},styleCxts:[],removed:!0,selected:r.selected?!0:!1,selectable:void 0===r.selectable?!0:r.selectable?!0:!1,locked:r.locked?!0:!1,grabbed:!1,grabbable:void 0===r.grabbable?!0:r.grabbable?!0:!1,active:!1,classes:{},animation:{current:[],queue:[]},rscratch:{},scratch:{},edges:[],children:[]},r.renderedPosition){var a=r.renderedPosition,o=t.pan(),s=t.zoom();this._private.position={x:(a.x-o.x)/s,y:(a.y-o.y)/s}}if(e.is.string(r.classes))for(var l=r.classes.split(/\s+/),c=0,u=l.length;u>c;c++){var d=l[c];d&&""!==d&&(i._private.classes[d]=!0)}r.css&&t.style().applyBypass(this,r.css),(void 0===n||n)&&this.restore()},e.Collection=function(r,n){if(!(this instanceof e.Collection))return new e.Collection(r,n);if(void 0===r||!e.is.core(r))return void e.util.error("A collection must have a reference to the core");var i={},a=!1;if(n){if(n.length>0&&e.is.plainObject(n[0])&&!e.is.element(n[0])){a=!0;for(var o=[],s={},l=0,c=n.length;c>l;l++){var u=n[l];null==u.data&&(u.data={});var d=u.data;if(null==d.id)d.id=t.generate(r,u);else if(0!==r.getElementById(d.id).length||s[d.id])continue;var p=new e.Element(r,u,!1);o.push(p),s[d.id]=!0}n=o}}else n=[];this.length=0;for(var l=0,c=n.length;c>l;l++){var h=n[l];if(h){var g=h._private.data.id;i[g]||(i[g]=h,this[this.length]=h,this.length++)}}this._private={cy:r,ids:i},a&&this.restore()},e.elefn=e.elesfn=e.Element.prototype=e.Collection.prototype,e.elesfn.cy=function(){return this._private.cy},e.elesfn.element=function(){return this[0]},e.elesfn.collection=function(){return e.is.collection(this)?this:new e.Collection(this._private.cy,[this])},e.elesfn.json=function(){var t=this.element();if(null==t)return void 0;var r=t._private,n=e.util.copy({data:r.data,position:r.position,group:r.group,bypass:r.bypass,removed:r.removed,selected:r.selected,selectable:r.selectable,locked:r.locked,grabbed:r.grabbed,grabbable:r.grabbable,classes:""}),i=[];for(var a in r.classes)i.push(a);for(var o=0;od;d++){var h=n[d];h.isNode()?(s.push(h),c++):(l.push(h),u++)}o=s.concat(l);for(var d=0,p=o.length;p>d;d++){var h=o[d];if(h.removed()){var g=h._private,v=g.data;if(void 0===v.id)v.id=t.generate(a,h);else{if(e.is.emptyString(v.id)||!e.is.string(v.id)){e.util.error("Can not create element with invalid string ID `"+v.id+"`");continue}if(0!==a.getElementById(v.id).length){e.util.error("Can not create second element with ID `"+v.id+"`");continue}}var f=v.id;if(h.isEdge()){for(var y=h,m=["source","target"],b=m.length,x=!1,w=0;b>w;w++){var _=m[w],E=v[_];null==E||""===E?(e.util.error("Can not create edge `"+f+"` with unspecified "+_),x=!0):a.getElementById(E).empty()&&(e.util.error("Can not create edge `"+f+"` with nonexistant "+_+" `"+E+"`"),x=!0)}if(x)continue;var S=a.getElementById(v.source),P=a.getElementById(v.target);S._private.edges.push(y),P._private.edges.push(y),y._private.source=S,y._private.target=P}g.ids={},g.ids[f]=h,g.removed=!1,a.addToPool(h),i.push(h)}}for(var d=0;c>d;d++){var k=o[d],v=k._private.data,C=k._private.data.parent,D=null!=C;if(D){var N=a.getElementById(C);if(N.empty())delete v.parent;else{for(var T=!1,M=N;!M.empty();){if(k.same(M)){T=!0,delete v.parent;break}M=M.parent()}T||(N[0]._private.children.push(k),a._private.hasCompoundNodes=!0)}}}if(i=new e.Collection(a,i),i.length>0){var I=i.add(i.connectedNodes()).add(i.parent());I.updateStyle(r),r?i.rtrigger("add"):i.trigger("add")}return n},e.elesfn.removed=function(){var e=this[0];return e&&e._private.removed},e.elesfn.inside=function(){var e=this[0];return e&&!e._private.removed},e.elesfn.remove=function(t){function r(e){for(var t=e._private.edges,r=0;rp;p++){var g=s[p];i(g)}for(var p=0;p0&&(t&&this.cy().notify({type:"remove",collection:b}),b.trigger("remove"));for(var x={},p=0;pu||!i)&&(o=u,i=l)}return{edge:i,dist:o}};g.size()>0;){var f=g.pop(),y=f.value,m=f.id,b=i.getElementById(m);if(l[m]=y,y===Math.Infinite)break;for(var x=b.neighborhood().intersect(u),p=0;p0)for(n.unshift(r);s[a.id()];){var o=s[a.id()];n.unshift(o.edge),n.unshift(o.node),a=o.node}return new e.Collection(i,n)}}}}),e.elesfn.bfs=e.elesfn.breadthFirstSearch,e.elesfn.dfs=e.elesfn.depthFirstSearch}(cytoscape),function(e){"use strict";e.fn.eles({animated:function(){var e=this[0];return e?e._private.animation.current.length>0:void 0},clearQueue:function(){for(var e=0;e0&&new e.Collection(this._private.cy,n).updateStyle(),r.trigger("class"),r},hasClass:function(e){var t=this[0];return null!=t&&t._private.classes[e]?!0:!1},toggleClass:function(t,r){for(var n=t.split(/\s+/),i=this,a=[],o=0,s=i.length;s>o;o++)for(var l=i[o],c=0;c0&&new e.Collection(this._private.cy,a).updateStyle(),i.trigger("class"),i},removeClass:function(t){t=t.split(/\s+/);for(var r=this,n=[],i=0;i0&&new e.Collection(r._private.cy,n).updateStyle(),r.trigger("class"),r}})}(cytoscape),function(e){"use strict";e.fn.eles({allAre:function(e){return this.filter(e).length===this.length},is:function(e){return this.filter(e).length>0},same:function(e){return e=this.cy().collection(e),this.length!==e.length?!1:this.intersect(e).length===this.length},anySame:function(e){return e=this.cy().collection(e),this.intersect(e).length>0},allAreNeighbors:function(e){return e=this.cy().collection(e),this.neighborhood().intersect(e).length===e.length}})}(cytoscape),function(e){"use strict";e.fn.eles({parent:function(t){for(var r=[],n=this._private.cy,i=0;i0&&r.push(o)}return new e.Collection(n,r).filter(t)},parents:function(t){for(var r=[],n=this.parent();n.nonempty();){for(var i=0;il?l:n,i=c>i?c:i,a=a>u?u:a,o=d>o?d:o}else if(g.isEdge()&&t.includeEdges){v=!0;var w=g.source()[0]._private.position,_=g.target()[0]._private.position,E=g._private.rstyle||{};if(l=w.x,c=_.x,u=w.y,d=_.y,l>c){var S=l;l=c,c=S}if(u>d){var S=u;u=d,d=S}n=n>l?l:n,i=c>i?c:i,a=a>u?u:a,o=d>o?d:o;for(var P=E.bezierPts||[],y=g._private.style.width.pxValue,k=0;ki?C.x+y:i,a=C.y-yo?C.y+y:o}}var D=g._private.style,E=g._private.rstyle,N=D.content.strValue,T=D["font-size"],M=D["text-halign"],I=D["text-valign"],z=E.labelWidth,B=E.labelHeight,R=E.labelX,X=E.labelY;if(v&&t.includeLabels&&N&&T&&null!=B&&null!=z&&null!=R&&null!=X&&M&&I){var L,O,Y,V,A=B,F=z;if(g.isEdge())L=R-F/2,O=R+F/2,Y=X-A/2,V=X+A/2;else{switch(M.value){case"left":L=R-F,O=R;break;case"center":L=R-F/2,O=R+F/2;break;case"right":L=R,O=R+F}switch(I.value){case"top":Y=X-A,V=X;break;case"center":Y=X-A/2,V=X+A/2;break;case"bottom":Y=X,V=X+A}}n=n>L?L:n,i=O>i?O:i,a=a>Y?Y:a,o=V>o?V:o}}}return{x1:n,x2:i,y1:a,y2:o,w:i-n,h:o-a}}})}(cytoscape),function(e){"use strict";function t(e){return function(t){var r=this;if(void 0===t&&(t=!0),0!==r.length&&r.isNode()&&!r.removed()){for(var n=0,i=r[0],a=i._private.edges,o=0;oe}),maxDegree:r("degree",function(e,t){return e>t}),minIndegree:r("indegree",function(e,t){return t>e}),maxIndegree:r("indegree",function(e,t){return e>t}),minOutdegree:r("outdegree",function(e,t){return t>e}),maxOutdegree:r("outdegree",function(e,t){return e>t})}),e.fn.eles({totalDegree:function(e){for(var t=0,r=this.nodes(),n=0;nt&&(t=i+t),0>r&&(r=i+r);for(var a=t;a>=0&&r>a&&i>a;a++)n.push(this[a]);return new e.Collection(this.cy(),n)},size:function(){return this.length},eq:function(t){return this[t]||new e.Collection(this.cy())},empty:function(){return 0===this.length},nonempty:function(){return!this.empty()},sort:function(t){if(!e.is.fn(t))return this;var r=this.cy(),n=this.toArray().sort(t);return new e.Collection(r,n)},sortByZIndex:function(){return this.sort(e.Collection.zIndexSort)}}),e.Collection.zIndexSort=function(e,t){var r=function(e){if("nodes"===e._private.group)return e._private.data.parent?e.parents().size():0;if("edges"===e._private.group){var t=e._private.source,r=e._private.target,n=t._private.data.parent?t.parents().size():0,i=r._private.data.parent?r.parents().size():0;return Math.max(n,i)}return 0},n=e._private.style["z-index"].value-t._private.style["z-index"].value,i=0,a=0;return e.cy().hasCompoundNodes()&&(i=r(e),a=r(t)),i-a===0?"nodes"===e._private.group&&"edges"===t._private.group?1:"edges"===e._private.group&&"nodes"===t._private.group?-1:0===n?e._private.index-t._private.index:n:i-a}}(cytoscape),function(e){"use strict";e.fn.eles({updateStyle:function(e){var t=this._private.cy,r=t.style();e=e||void 0===e?!0:!1,r.apply(this);var n=this.updateCompoundBounds();return e?this.add(n).rtrigger("style"):this.add(n).trigger("style"),this},updateMappers:function(e){var t=this._private.cy,r=t.style();e=e||void 0===e?!0:!1,r.updateMappers(this);var n=this.updateCompoundBounds();return e?this.add(n).rtrigger("style"):this.add(n).trigger("style"),this},renderedCss:function(e){var t=this[0];if(t){var r=t.cy().style().getRenderedStyle(t);return void 0===e?r:r[e]}},css:function(t,r){var n=this.cy().style();if(e.is.plainObject(t)){var i=t;n.applyBypass(this,i);var a=this.updateCompoundBounds();this.add(a).rtrigger("style")}else if(e.is.string(t)){if(void 0===r){var o=this[0];return o?o._private.style[t].strValue:void 0}n.applyBypass(this,t,r);var a=this.updateCompoundBounds();this.add(a).rtrigger("style")}else if(void 0===t){var o=this[0];return o?n.getRawStyle(o):void 0}return this},removeCss:function(){for(var e=this.cy().style(),t=this,r=0;r0}(),o||n.push(a)}}return new e.Collection(this._private.cy,n).filter(t)},forwardNodes:function(t){for(var r=this,n=[],i=0;i0&&r.push(u[0]),r.push(c[0])}return new e.Collection(n,r).filter(t)},closedNeighborhood:function(e){return this.neighborhood().add(this).filter(e)},openNeighborhood:function(e){return this.neighborhood(e)}}),e.fn.eles({source:function(t){var r,n=this[0];return n&&(r=n._private.source),new e.Collection(this.cy(),r).filter(t)},target:function(t){var r,n=this[0];return n&&(r=n._private.target),new e.Collection(this.cy(),r).filter(t)},sources:t({attr:"source"}),targets:t({attr:"target"})}),e.fn.eles({edgesWith:r(),edgesTo:r({thisIs:"source"})}),e.fn.eles({connectedEdges:function(t){for(var r=[],n=this._private.cy,i=this,a=0;ad;d+=1){if(l.push(i.call(t,r[d],d,r)),a=r[d].id(),c.hasOwnProperty(a))throw"ERROR: Multiple items with the same id found: "+a;c[a]=d,u.push(a)}for(this._private={cy:t,heap:l,pointers:c,elements:u,comparator:n,extractor:i,length:s},d=Math.floor(s/2);d>=0;d-=1)o=this.heapify(d);return o}},e.Heap.idFn=function(e){return e.id()},e.Heap.minHeapComparator=function(e,t){return e>=t},e.Heap.maxHeapComparator=function(e,t){return t>=e},e.fn.heap=function(t){for(var r in t){var n=t[r];e.Heap.prototype[r]=n}},e.heapfn=e.Heap.prototype,e.heapfn.size=function(){return this._private.length},e.heapfn.getArgumentAsCollection=function(t,r){var n;if("undefined"==typeof r&&(r=this._private.cy),e.is.elementOrCollection(t))n=t;else{for(var i=[],a=[].concat.apply([],[t]),o=0;o0&&i.push(l)}n=new e.Collection(r,i)}return n},e.heapfn.isHeap=function(){var e,t,r,n,i,a=this._private.heap,o=a.length,s=this._private.comparator;for(e=0;o>e;e+=1)if(t=2*e+1,r=t+1,n=o>t?s(a[t],a[e]):!0,i=o>r?s(a[r],a[e]):!0,!n||!i)return!1;return!0},e.heapfn.heapSwap=function(e,t){var r=this._private.heap,n=this._private.pointers,i=this._private.elements,a=r[e],o=i[e],s=i[e],l=i[t];r[e]=r[t],i[e]=i[t],n[s]=t,n[l]=e,r[t]=a,i[t]=o},e.heapfn.heapify=function(e,t){var r,n,i,a,o,s,l,c=0,u=!1;for("undefined"==typeof t&&(t=!0),r=this._private.heap,c=r.length,s=this._private.comparator,n=e;!u;)t?(i=2*n+1,a=i+1,o=n,c>i&&!s(r[i],r[o])&&(o=i),c>a&&!s(r[a],r[o])&&(o=a),u=o===n,u||(this.heapSwap(o,n),n=o)):(l=Math.floor((n-1)/2),o=n,u=0>l||s(r[o],r[l]),u||(this.heapSwap(o,l),n=l))},e.heapfn.insert=function(e){var t,r,n,i,a,o=this.getArgumentAsCollection(e),s=o.length;for(a=0;s>a;a+=1){if(t=o[a],r=this._private.heap.length,n=this._private.extractor(t),i=t.id(),this._private.pointers.hasOwnProperty(i))throw"ERROR: Multiple items with the same id found: "+i;this._private.heap.push(n),this._private.elements.push(i),this._private.pointers[i]=r,this.heapify(r,!1)}this._private.length=this._private.heap.length},e.heapfn.getValueById=function(e){if(this._private.pointers.hasOwnProperty(e)){var t=this._private.pointers[e];return this._private.heap[t]}},e.heapfn.contains=function(e){for(var t=this.getArgumentAsCollection(e),r=0;r0?{value:this._private.heap[0],id:this._private.elements[0]}:void 0},e.heapfn.pop=function(){if(this._private.length>0){var e,t,r,n=this.top(),i=this._private.length-1;return this.heapSwap(0,i),e=this._private.elements[i],t=this._private.heap[i],r=e,this._private.heap.pop(),this._private.elements.pop(),this._private.length=this._private.heap.length,delete this._private.pointers[r],this.heapify(0),n}},e.heapfn.findDirectionHeapify=function(e){var t=Math.floor((e-1)/2),r=this._private.heap,n=0>t||this._private.comparator(r[e],r[t]);this.heapify(e,n)},e.heapfn.edit=function(t,r){for(var n=this.getArgumentAsCollection(t),i=0;i=o&&s>=e&&t>=l&&c>=t};n.arrow={_points:[-.15,-.3,0,0,.15,-.3],collide:function(t,r,i,a,o,s,l,c){var u=n.arrow._points;return e.math.pointInsidePolygon(t,r,u,i,a,o,s,l,c)},roughCollide:i,draw:function(e){for(var t=n.arrow._points,r=0;re.math.sqDistanceToQuadraticBezier(r,n,l.startX,l.startY,l.cp2ax,l.cp2ay,l.selfEdgeMidX,l.selfEdgeMidY)||e.math.inBezierVicinity(r,n,l.selfEdgeMidX,l.selfEdgeMidY,l.cp2cx,l.cp2cy,l.endX,l.endY,g)&&g+h>e.math.sqDistanceToQuadraticBezier(r,n,l.selfEdgeMidX,l.selfEdgeMidY,l.cp2cx,l.cp2cy,l.endX,l.endY))&&c.push(o);else if("haystack"==l.edgeType){var b=m._private.position,x=m.width(),w=m.height(),_=y._private.position,E=y.width(),S=y.height(),P=_.x+l.source.x*E,k=_.y+l.source.y*S,C=b.x+l.target.x*x,D=b.y+l.target.y*w;e.math.inLineVicinity(r,n,P,k,C,D,v)&&g+h>e.math.sqDistanceToFiniteLine(r,n,P,k,C,D)&&c.push(o)}else"straight"===l.edgeType?e.math.inLineVicinity(r,n,l.startX,l.startY,l.endX,l.endY,v)&&g+h>e.math.sqDistanceToFiniteLine(r,n,l.startX,l.startY,l.endX,l.endY)&&c.push(o):"bezier"===l.edgeType&&e.math.inBezierVicinity(r,n,l.startX,l.startY,l.cp2x,l.cp2y,l.endX,l.endY,g)&&g+h>e.math.sqDistanceToQuadraticBezier(r,n,l.startX,l.startY,l.cp2x,l.cp2y,l.endX,l.endY)&&c.push(o);if(0===c.length||c[c.length-1]!==o){var N=t.arrowShapes[u["source-arrow-shape"].value],T=t.arrowShapes[u["target-arrow-shape"].value],y=y||o._private.source,m=m||o._private.target,b=m._private.position,_=y._private.position,M=s.getArrowWidth(u.width.pxValue),I=s.getArrowHeight(u.width.pxValue),z=M,B=I;(N.roughCollide(r,n,l.arrowStartX,l.arrowStartY,M,I,[l.arrowStartX-_.x,l.arrowStartY-_.y],0)&&N.collide(r,n,l.arrowStartX,l.arrowStartY,M,I,[l.arrowStartX-_.x,l.arrowStartY-_.y],0)||T.roughCollide(r,n,l.arrowEndX,l.arrowEndY,z,B,[l.arrowEndX-b.x,l.arrowEndY-b.y],0)&&T.collide(r,n,l.arrowEndX,l.arrowEndY,z,B,[l.arrowEndX-b.x,l.arrowEndY-b.y],0))&&c.push(o)}p&&c.length>0&&c[c.length-1]===o&&(a(y),a(m))}}for(var s=this,l=this.getCachedZSortedEles(),c=[],u=t.isTouch,d=this.data.cy.zoom(),p=this.data.cy.hasCompoundNodes(),h=(u?256:32)/d,g=(u?16:0)/d,v=l.length-1;v>=0;v--){var f=l[v];if(c.length>0)break;"nodes"===f._private.group?a(l[v]):o(l[v])}return c.length>0?c[c.length-1]:null},t.prototype.getAllInBox=function(r,n,i,a){var o=this.getCachedNodes(),s=this.getCachedEdges(),l=[],c=Math.min(r,i),u=Math.max(r,i),d=Math.min(n,a),p=Math.max(n,a);r=c,i=u,n=d,a=p;for(var h,g=0;g=r&&i>=k&&C>=n&&a>=C,M=D>=r&&i>=D&&N>=n&&a>=N;T&&M&&l.push(s[g])}}return l},t.prototype.getNodeWidth=function(e){return e.width()},t.prototype.getNodeHeight=function(e){return e.height()},t.prototype.getNodeShape=function(e){var t=e._private.style.shape.value;return e.isParent()?"rectangle"===t||"roundrectangle"===t?t:"rectangle":t},t.prototype.getNodePadding=function(e){var t=e._private.style["padding-left"].pxValue,r=e._private.style["padding-right"].pxValue,n=e._private.style["padding-top"].pxValue,i=e._private.style["padding-bottom"].pxValue;return isNaN(t)&&(t=0),isNaN(r)&&(r=0),isNaN(n)&&(n=0),isNaN(i)&&(i=0),{left:t,right:r,top:n,bottom:i}},t.prototype.zOrderSort=e.Collection.zIndexSort,t.prototype.updateCachedZSortedEles=function(){this.getCachedZSortedEles(!0)
},t.prototype.getCachedZSortedEles=function(e){var t=this.lastZOrderCachedNodes,r=this.lastZOrderCachedEdges,n=this.getCachedNodes(),i=this.getCachedEdges(),a=[];if(!e&&t&&r&&t===n&&r===i)a=this.cachedZSortedEles;else{for(var o=0;op?p+"-"+d:d+"-"+p,null==i[n]&&(i[n]=[]),i[n].push(c),o.push(n)}else s.push(c)}for(var h,g,v,f,y,m,b,x,w,_,E,S,P,k,C=0;C1&&h!==g){var D=w.intersectLine(v.x,v.y,y,m,f.x,f.y,E/2),N=_.intersectLine(f.x,f.y,b,x,v.x,v.y,S/2),T={x1:D[0],x2:N[0],y1:D[1],y2:N[1]},M=N[1]-D[1],I=N[0]-D[0],z=Math.sqrt(I*I+M*M),B={x:I,y:M},R={x:B.x/z,y:B.y/z};P={x:-R.y,y:R.x},(_.checkPoint(D[0],D[1],S/2,b,x,f.x,f.y)||w.checkPoint(N[0],N[1],E/2,y,m,v.x,v.y))&&(P={},k=!0)}for(var c,X,l=0;lmt,xt=e.math.distance({x:X.cp2x,y:X.cp2y},{x:X.endX,y:X.endY}),wt=yt>xt;if("bezier"===X.edgeType){var _t=!1;if(dt||pt||bt){_t=!0;var Et={x:X.cp2x-v.x,y:X.cp2y-v.y},St=Math.sqrt(Et.x*Et.x+Et.y*Et.y),Pt={x:Et.x/St,y:Et.y/St},kt=Math.max(y,m),Ct={x:X.cp2x+2*Pt.x*kt,y:X.cp2y+2*Pt.y*kt},Dt=w.intersectLine(v.x,v.y,y,m,Ct.x,Ct.y,E/2);bt?(X.cp2x=X.cp2x+Pt.x*(yt-mt),X.cp2y=X.cp2y+Pt.y*(yt-mt)):(X.cp2x=Dt[0]+Pt.x*yt,X.cp2y=Dt[1]+Pt.y*yt)}if(ht||gt||wt){_t=!0;var Et={x:X.cp2x-f.x,y:X.cp2y-f.y},St=Math.sqrt(Et.x*Et.x+Et.y*Et.y),Pt={x:Et.x/St,y:Et.y/St},kt=Math.max(y,m),Ct={x:X.cp2x+2*Pt.x*kt,y:X.cp2y+2*Pt.y*kt},Nt=_.intersectLine(f.x,f.y,b,x,Ct.x,Ct.y,S/2);wt?(X.cp2x=X.cp2x+Pt.x*(yt-xt),X.cp2y=X.cp2y+Pt.y*(yt-xt)):(X.cp2x=Nt[0]+Pt.x*yt,X.cp2y=Nt[1]+Pt.y*yt)}_t&&this.findEndpoints(c)}this.projectBezier(c)}}}for(var l=0;l_*S+E*P)n.straightEdgeTooShort=!0;else{var w=n;this.drawStyledEdge(t,e,[w.startX,w.startY,w.endX,w.endY],x,b),n.straightEdgeTooShort=!1}}else{var w=n;this.drawStyledEdge(t,e,[w.startX,w.startY,w.cp2x,w.cp2y,w.endX,w.endY],x,b)}"haystack"!==n.edgeType&&n.noArrowPlacement!==!0&&void 0!==n.startX&&this.drawArrowheads(e,t,r)}}}};var r=function(e,t){var r=Math.sqrt(Math.pow(e[4]-e[0],2)+Math.pow(e[5]-e[1],2));r+=Math.sqrt(Math.pow((e[4]+e[0])/2-e[2],2)+Math.pow((e[5]+e[1])/2-e[3],2));var n,i=Math.ceil(r/t);if(!(i>0))return null;n=new Array(2*i);for(var a=0;i>a;a++){var o=a/i;n[2*a]=e[0]*(1-o)*(1-o)+2*e[2]*(1-o)*o+e[4]*o*o,n[2*a+1]=e[1]*(1-o)*(1-o)+2*e[3]*(1-o)*o+e[5]*o*o}return n},n=function(e,t){var r,n=Math.sqrt(Math.pow(e[2]-e[0],2)+Math.pow(e[3]-e[1],2)),i=Math.ceil(n/t);if(!(i>0))return null;r=new Array(2*i);for(var a=[e[2]-e[0],e[3]-e[1]],o=0;i>o;o++){var s=o/i;r[2*o]=a[0]*s+e[0],r[2*o+1]=a[1]*s+e[1]}return r},i=0,a=0,o=0;t.prototype.drawStyledEdge=function(e,s,l,c,u){var d,p=+new Date,h=this.data.cy,g=h.zoom(),v=e._private.rscratch,f=s,y=!1,m=t.usePaths();if("solid"===c){if(m){for(var b=l,x=v.pathCacheKey&&b.length===v.pathCacheKey.length,w=x,_=0;w&&_o?l+=Math.PI/2:l=-(Math.PI/2+l),e.translate(i,a),e.moveTo(0,0),e.rotate(-l);var c=this.getArrowWidth(e.lineWidth);e.scale(c,c),e.beginPath(),t.arrowShapes[n].draw(e),e.closePath(),"hollow"===r?(e.lineWidth=1/c,e.stroke()):e.fill(),e.scale(1/c,1/c),e.rotate(l),e.translate(-i,-a)}}(cytoscape),function(e){"use strict";var t=e("renderer","canvas");t.prototype.getCachedImage=function(e,t){var r=this,n=r.imageCache=r.imageCache||{};if(n[e]&&n[e].image)return n[e].image;var i=n[e]=n[e]||{},a=i.image=new Image;return a.addEventListener("load",t),a.src=e,a},t.prototype.drawInscribedImage=function(e,r,n){var i=this,a=n._private.position.x,o=n._private.position.y,s=n._private.style,l=s["background-fit"].value,c=s["background-position-x"],u=s["background-position-y"],d=s["background-repeat"].value,p=n.width(),h=n.height(),g=n._private.rscratch,v=s["background-clip"].value,f="node"===v,y=r.width,m=r.height;if("contain"===l){var b=Math.min(p/y,h/m);y*=b,m*=b}else if("cover"===l){var b=Math.max(p/y,h/m);y*=b,m*=b}var x=a-p/2;x+="%"===c.units?(p-y)*c.value/100:c.pxValue;var w=o-h/2;if(w+="%"===u.units?(h-m)*u.value/100:u.pxValue,g.pathCache&&(x-=a,w-=o,a=0,o=0),"no-repeat"===d)f&&(e.save(),g.pathCache?e.clip(g.pathCache):(t.nodeShapes[i.getNodeShape(n)].drawPath(e,a,o,p,h),e.clip())),e.drawImage(r,0,0,r.width,r.height,x,w,y,m),f&&e.restore();else{var _=e.createPattern(r,d);e.fillStyle=_,t.nodeShapes[i.getNodeShape(n)].drawPath(e,a,o,p,h),e.translate(x,w),e.fill(),e.translate(-x,-w)}}}(cytoscape),function(e){"use strict";var t=e("renderer","canvas");t.prototype.drawEdgeText=function(e,t){var r=t._private.style.content.strValue;if(t.visible()&&r&&!r.match(/^\s+$/)&&(!this.hideEdgesOnViewport||!(this.dragData.didDrag||this.pinching||this.hoverData.dragging||this.data.wheel||this.swipePanning))){var n=t._private.style["font-size"].pxValue*t.cy().zoom(),i=t._private.style["min-zoomed-font-size"].pxValue;if(!(i>n)){e.textAlign="center",e.textBaseline="middle",this.recalculateEdgeLabelProjection(t);var a=t._private.rscratch;this.drawText(e,t,a.labelX,a.labelY)}}},t.prototype.drawNodeText=function(e,t){var r=t._private.style.content.strValue;if(t.visible()&&r&&!r.match(/^\s+$/)){var n=t._private.style["font-size"].pxValue*t.cy().zoom(),i=t._private.style["min-zoomed-font-size"].pxValue;if(!(i>n)){this.recalculateNodeLabelProjection(t);var a=t._private.style["text-halign"].strValue,o=t._private.style["text-valign"].strValue,s=t._private.rscratch;switch(a){case"left":e.textAlign="right";break;case"right":e.textAlign="left";break;default:e.textAlign="center"}switch(o){case"top":e.textBaseline="bottom";break;case"bottom":e.textBaseline="top";break;default:e.textBaseline="middle"}this.drawText(e,t,s.labelX,s.labelY)}}},t.prototype.getFontCache=function(e){var t;this.fontCaches=this.fontCaches||[];for(var r=0;r0&&(e.lineWidth=s,e.strokeText(o,r,n)),e.fillText(o,r,n)}}}}(cytoscape),function(e){"use strict";var t=e("renderer","canvas");t.prototype.drawNode=function(e,r,n){var i,a,o=this,s=r._private.style,l=r._private.rscratch;if(r.visible()){var c,u=t.usePaths(),d=e,p=!1,h=s["overlay-padding"].pxValue,g=s["overlay-opacity"].value,v=s["overlay-color"].value;if(!n||0!==g){var f=r.effectiveOpacity();if(0!==f)if(i=this.getNodeWidth(r),a=this.getNodeHeight(r),e.lineWidth=s["border-width"].pxValue,void 0!==n&&n)g>0&&(this.fillStyle(e,v[0],v[1],v[2],g),t.nodeShapes.roundrectangle.drawPath(e,r._private.position.x,r._private.position.y,i+2*h,a+2*h),e.fill());else{var y=s["background-color"].value,m=s["border-color"].value;this.fillStyle(e,y[0],y[1],y[2],s["background-opacity"].value*s.opacity.value*f),this.strokeStyle(e,m[0],m[1],m[2],s["border-opacity"].value*s.opacity.value*f),e.lineJoin="miter";var b=s["background-image"].value[2]||s["background-image"].value[1],x=s.shape.strValue,w=r._private.position;if(u){var _=x+"$"+i+"$"+a;e.translate(w.x,w.y),l.pathCacheKey===_?(c=e=l.pathCache,p=!0):(c=e=new Path2D,l.pathCacheKey=_,l.pathCache=c)}if(!p){var E=w;u&&(E={x:0,y:0}),t.nodeShapes[this.getNodeShape(r)].drawPath(e,E.x,E.y,i,a)}if(e=d,u?e.fill(c):e.fill(),void 0!==b){var S=this.getCachedImage(b,function(){o.data.canvasNeedsRedraw[t.NODE]=!0,o.data.canvasNeedsRedraw[t.DRAG]=!0,o.redraw()});S.complete&&this.drawInscribedImage(e,S,r)}var P=s["background-blacken"].value;this.hasPie(r)&&(this.drawPie(e,r),0!==P&&(u||t.nodeShapes[this.getNodeShape(r)].drawPath(e,w.x,w.y,i,a))),P>0?(this.fillStyle(e,0,0,0,P),u?e.fill(c):e.fill()):0>P&&(this.fillStyle(e,255,255,255,-P),u?e.fill(c):e.fill()),s["border-width"].pxValue>0&&(u?e.stroke(c):e.stroke()),u&&e.translate(-w.x,-w.y)}}}},t.prototype.hasPie=function(e){return e=e[0],e._private.hasPie},t.prototype.drawPie=function(t,r){r=r[0];var n=r._private.style["pie-size"],i=this.getNodeWidth(r),a=this.getNodeHeight(r),o=r._private.position.x,s=r._private.position.y,l=Math.min(i,a)/2,c=0;"%"===n.units?l=l*n.value/100:void 0!==n.pxValue&&(l=n.pxValue/2);for(var u=1;u<=e.style.pieBackgroundN;u++){var d=r._private.style["pie-"+u+"-background-size"].value,p=r._private.style["pie-"+u+"-background-color"].value,h=d/100,g=1.5*Math.PI+2*Math.PI*c,v=2*Math.PI*h,f=g+v;0===d||c>=1||c+h>1||(t.beginPath(),t.moveTo(o,s),t.arc(o,s,l,g,f),t.closePath(),this.fillStyle(t,p[0],p[1],p[2],1),t.fill(),c+=h)}}}(cytoscape),function(e){"use strict";var t=e("renderer","canvas"),r="undefined"!=typeof InstallTrigger;t.prototype.getPixelRatio=function(){var e=this.data.contexts[0],t=e.backingStorePixelRatio||e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1;return r?1:(window.devicePixelRatio||1)/t},t.prototype.paintCache=function(e){for(var t,r=this.paintCaches=this.paintCaches||[],n=!0,i=0;i=o&&(r=n.bufferCanvases[t.TEXTURE_BUFFER],this.textureMult=2,r.width=s*this.textureMult,r.height=l*this.textureMult),this.canvasWidth=s,this.canvasHeight=l}},t.prototype.renderTo=function(e,t,r,n){this.redraw({forcedContext:e,forcedZoom:t,forcedPan:r,drawAllLayers:!0,forcedPxRatio:n})},t.prototype.timeToRender=function(){return this.redrawTotalTime/this.redrawCount},t.minRedrawLimit=1e3/60,t.maxRedrawLimit=1e3,t.prototype.redraw=function(r){function n(){function e(e,t){e.setTransform(1,0,0,1,0,0),i||void 0!==t&&!t||e.clearRect(0,0,c.canvasWidth,c.canvasHeight),a||(e.translate(m.x,m.y),e.scale(f,f)),l&&e.translate(l.x,l.y),s&&e.scale(s,s)}function r(e,t){for(var r=e.edges,n=e.nodes,i=0;i0&&(P.strokeStyle="rgba("+g["selection-box-border-color"].value[0]+","+g["selection-box-border-color"].value[1]+","+g["selection-box-border-color"].value[2]+","+g["selection-box-opacity"].value+")",P.strokeRect(p.select[0],p.select[1],p.select[2]-p.select[0],p.select[3]-p.select[1]))}if(p.bgActivePosistion){var v=p.cy.zoom(),L=p.bgActivePosistion;P.fillStyle="rgba("+g["active-bg-color"].value[0]+","+g["active-bg-color"].value[1]+","+g["active-bg-color"].value[2]+","+g["active-bg-opacity"].value+")",P.beginPath(),P.arc(L.x,L.y,g["active-bg-size"].pxValue/v,0,2*Math.PI),P.fill()}a||(h[t.SELECT_BOX]=!1)}var O=+new Date;void 0===c.averageRedrawTime&&(c.averageRedrawTime=O-x),void 0===c.redrawCount&&(c.redrawCount=0),c.redrawCount++,void 0===c.redrawTotalTime&&(c.redrawTotalTime=0),c.redrawTotalTime+=O-x,c.averageRedrawTime=c.averageRedrawTime/2+(O-x)/2,c.currentlyDrawing=!1}r=r||{};var i=r.forcedContext,a=r.drawAllLayers,o=r.drawOnlyNodeLayer,s=r.forcedZoom,l=r.forcedPan,c=this,u=void 0===r.forcedPxRatio?this.getPixelRatio():r.forcedPxRatio,d=c.data.cy,p=c.data,h=p.canvasNeedsRedraw;this.redrawTimeout&&clearTimeout(this.redrawTimeout),this.redrawTimeout=null,void 0===this.averageRedrawTime&&(this.averageRedrawTime=0);var g=t.minRedrawLimit,v=t.maxRedrawLimit,f=this.averageRedrawTime;f=g>f?g:f,f=v>f?f:v,void 0===this.lastDrawTime&&(this.lastDrawTime=0);var y=+new Date,m=y-this.lastDrawTime,b=m>=f;if(!i){if(!b||this.currentlyDrawing)return void(this.redrawTimeout=setTimeout(function(){c.redraw()},f));this.lastDrawTime=y,this.currentlyDrawing=!0}var x;i?n():e.util.requestAnimationFrame(n),i||c.initrender||(c.initrender=!0,d.trigger("initrender"))}}(cytoscape),function(e){"use strict";var t=e("renderer","canvas");t.prototype.drawPolygonPath=function(e,t,r,n,i,a){var o=n/2,s=i/2;e.beginPath&&e.beginPath(),e.moveTo(t+o*a[0],r+s*a[1]);for(var l=1;l0&&a>0&&(l.clearRect(0,0,i,a),e.bg&&(l.fillStyle=e.bg,l.rect(0,0,i,a),l.fill()),l.globalCompositeOperation="source-over",this.redraw(e.full?{forcedContext:l,drawAllLayers:!0,forcedZoom:o,forcedPan:{x:-n.x1,y:-n.y1},forcedPxRatio:1}:{forcedContext:l,drawAllLayers:!0,forcedZoom:r.zoom(),forcedPan:r.pan(),forcedPxRatio:1})),s},t.prototype.png=function(e){return this.bufferCanvasImage(e).toDataURL("image/png")}}(cytoscape),function(e){"use strict";var t=e("renderer","canvas");t.prototype.registerBinding=function(e,t,r,n){this.bindings.push({target:e,event:t,handler:r,useCapture:n}),e.addEventListener(t,r,n)},t.prototype.load=function(){var r=this,n=function(e,t,r){if(!t)for(var n=e.parents(),i=0;io[0]&&n.clientXo[1]&&n.clientY=t.panOrBoxSelectDelay)&&Math.abs(c[3]-c[1])+Math.abs(c[2]-c[0])<4&&s.panningEnabled()&&s.userPanningEnabled())r.hoverData.dragging=!0,c[4]=0;else{if(s.boxSelectionEnabled()&&Math.pow(c[2]-c[0],2)+Math.pow(c[3]-c[1],2)>7&&c[4]&&(clearTimeout(r.bgActiveTimeout),r.data.bgActivePosistion=void 0,r.data.canvasNeedsRedraw[t.SELECT_BOX]=!0,r.redraw()),p&&p.isEdge()&&p.active()&&p.unactivate(),u!=d&&(d&&(d.trigger(new e.Event(n,{type:"mouseout",cyPosition:{x:l[0],y:l[1]}})),d.trigger(new e.Event(n,{type:"tapdragout",cyPosition:{x:l[0],y:l[1]}}))),u&&(u.trigger(new e.Event(n,{type:"mouseover",cyPosition:{x:l[0],y:l[1]}})),u.trigger(new e.Event(n,{type:"tapdragover",cyPosition:{x:l[0],y:l[1]}}))),r.hoverData.last=u),p&&p.isNode()&&r.nodeIsDraggable(p)){r.dragData.didDrag||(r.data.canvasNeedsRedraw[t.NODE]=!0),r.dragData.didDrag=!0,r.hoverData.draggingEles=!0;for(var y=[],m=0;m7&&l[4]||r.hoverData.dragging||(o.$(":selected").unselect(),u.length>0&&(r.data.canvasNeedsRedraw[t.NODE]=!0),r.dragData.possibleDragElements=u=[]),null!=c?c.trigger(new e.Event(n,{type:"mouseup",cyPosition:{x:s[0],y:s[1]}})).trigger(new e.Event(n,{type:"tapend",cyPosition:{x:s[0],y:s[1]}})).trigger(new e.Event(n,{type:"vmouseup",cyPosition:{x:s[0],y:s[1]}})):null==c&&o.trigger(new e.Event(n,{type:"mouseup",cyPosition:{x:s[0],y:s[1]}})).trigger(new e.Event(n,{type:"tapend",cyPosition:{x:s[0],y:s[1]}})).trigger(new e.Event(n,{type:"vmouseup",cyPosition:{x:s[0],y:s[1]}})),Math.pow(l[2]-l[0],2)+Math.pow(l[3]-l[1],2)===0&&(null!=c?c.trigger(new e.Event(n,{type:"click",cyPosition:{x:s[0],y:s[1]}})).trigger(new e.Event(n,{type:"tap",cyPosition:{x:s[0],y:s[1]}})).trigger(new e.Event(n,{type:"vclick",cyPosition:{x:s[0],y:s[1]}})):null==c&&o.trigger(new e.Event(n,{type:"click",cyPosition:{x:s[0],y:s[1]}})).trigger(new e.Event(n,{type:"tap",cyPosition:{x:s[0],y:s[1]}})).trigger(new e.Event(n,{type:"vclick",cyPosition:{x:s[0],y:s[1]}}))),c!=d||r.dragData.didDrag){if(c==d&&null!=c&&c._private.grabbed){for(var v=o.$(":grabbed"),f=0;f7&&l[4]){var x=[],w=r.getAllInBox(l[0],l[1],l[2],l[3]);r.data.canvasNeedsRedraw[t.SELECT_BOX]=!0,w.length>0&&(r.data.canvasNeedsRedraw[t.NODE]=!0);for(var f=0;f=0&&b>=u&&p>=0&&b>=p&&d>=0&&x>=d&&h>=0&&x>=h;var D=s.pan(),N=s.zoom();if(g=_(u,d,p,h),v=[(u+p)/2,(d+h)/2],f=[(v[0]-D.x)/N,(v[1]-D.y)/N],200>g&&!o.touches[2]){var T=r.findNearestElement(E[0],E[1],!0),M=r.findNearestElement(E[2],E[3],!0);return T&&T.isNode()?(T.activate().trigger(new e.Event(o,{type:"cxttapstart",cyPosition:{x:E[0],y:E[1]}})),r.touchData.start=T):M&&M.isNode()?(M.activate().trigger(new e.Event(o,{type:"cxttapstart",cyPosition:{x:E[0],y:E[1]}})),r.touchData.start=M):(s.trigger(new e.Event(o,{type:"cxttapstart",cyPosition:{x:E[0],y:E[1]}})),r.touchData.start=null),r.touchData.start&&(r.touchData.start._private.grabbed=!1),r.touchData.cxt=!0,r.touchData.cxtDragged=!1,r.data.bgActivePosistion=void 0,void r.redraw()}}if(o.touches[2]);else if(o.touches[1]);else if(o.touches[0]){var I=r.findNearestElement(E[0],E[1],!0);if(null!=I){if(I.activate(),r.touchData.start=I,"nodes"==I._private.group&&r.nodeIsDraggable(I)){var z=r.dragData.touchDragEles=[];if(i(I,z),I.trigger("grab"),r.data.canvasNeedsRedraw[t.NODE]=!0,r.data.canvasNeedsRedraw[t.DRAG]=!0,I.selected()){z=r.dragData.touchDragEles=[];for(var B=s.$("node:selected"),R=0;R250&&(r.touchData.start?r.touchData.start.trigger(new e.Event(o,{type:"taphold",cyPosition:{x:E[0],y:E[1]}})):(r.data.cy.trigger(new e.Event(o,{type:"taphold",cyPosition:{x:E[0],y:E[1]}})),s.$(":selected").unselect()))},1e3)}},!1),r.registerBinding(window,"touchmove",e.util.throttle(function(n){var i=r.data.select,a=r.touchData.capture;a&&n.preventDefault();var o=r.data.cy,s=r.touchData.now,l=r.touchData.earlier;if(n.touches[0]){var c=r.projectIntoViewport(n.touches[0].clientX,n.touches[0].clientY);s[0]=c[0],s[1]=c[1]}if(n.touches[1]){var c=r.projectIntoViewport(n.touches[1].clientX,n.touches[1].clientY);s[2]=c[0],s[3]=c[1]}if(n.touches[2]){var c=r.projectIntoViewport(n.touches[2].clientX,n.touches[2].clientY);s[4]=c[0],s[5]=c[1]}for(var v=[],b=0;b=1.5||k>=150){r.touchData.cxt=!1,r.touchData.start&&(r.touchData.start.unactivate(),r.touchData.start=null),r.data.bgActivePosistion=void 0,r.data.canvasNeedsRedraw[t.SELECT_BOX]=!0;var D=new e.Event(n,{type:"cxttapend",cyPosition:{x:s[0],y:s[1]}});r.touchData.start?r.touchData.start.trigger(D):o.trigger(D)}}if(a&&r.touchData.cxt){var D=new e.Event(n,{type:"cxtdrag",cyPosition:{x:s[0],y:s[1]}});r.data.bgActivePosistion=void 0,r.data.canvasNeedsRedraw[t.SELECT_BOX]=!0,r.touchData.start?r.touchData.start.trigger(D):o.trigger(D),r.touchData.start&&(r.touchData.start._private.grabbed=!1),r.touchData.cxtDragged=!0;var N=r.findNearestElement(s[0],s[1],!0);r.touchData.cxtOver&&N===r.touchData.cxtOver||(r.touchData.cxtOver&&r.touchData.cxtOver.trigger(new e.Event(n,{type:"cxtdragout",cyPosition:{x:s[0],y:s[1]}})),r.touchData.cxtOver=N,N&&N.trigger(new e.Event(n,{type:"cxtdragover",cyPosition:{x:s[0],y:s[1]}})))}else if(a&&n.touches[2]&&o.boxSelectionEnabled())r.data.bgActivePosistion=void 0,clearTimeout(this.threeFingerSelectTimeout),this.lastThreeTouch=+new Date,r.data.canvasNeedsRedraw[t.SELECT_BOX]=!0,i&&0!==i.length&&void 0!==i[0]?(i[2]=(s[0]+s[2]+s[4])/3,i[3]=(s[1]+s[3]+s[5])/3):(i[0]=(s[0]+s[2]+s[4])/3,i[1]=(s[1]+s[3]+s[5])/3,i[2]=(s[0]+s[2]+s[4])/3+1,i[3]=(s[1]+s[3]+s[5])/3+1),i[4]=1,r.redraw();else if(a&&n.touches[1]&&o.zoomingEnabled()&&o.panningEnabled()&&o.userZoomingEnabled()&&o.userPanningEnabled()){r.data.bgActivePosistion=void 0,r.data.canvasNeedsRedraw[t.SELECT_BOX]=!0;var T=r.dragData.touchDragEles;if(T){r.data.canvasNeedsRedraw[t.DRAG]=!0;for(var M=0;M4&&(r.touchData.singleTouchMoved=!0);if(a&&(null==j||j.isEdge())&&o.panningEnabled()&&o.userPanningEnabled()){j&&(j.unactivate(),r.data.bgActivePosistion||(r.data.bgActivePosistion={x:s[0],y:s[1]}),r.data.canvasNeedsRedraw[t.SELECT_BOX]=!0,r.touchData.start=null),o.panBy({x:v[0]*o.zoom(),y:v[1]*o.zoom()}),r.swipePanning=!0;var c=r.projectIntoViewport(n.touches[0].clientX,n.touches[0].clientY);s[0]=c[0],s[1]=c[1]}}for(var b=0;b0?r.data.canvasNeedsRedraw[t.NODE]=!0:r.redraw()}n.touches.length<2&&(r.pinching=!1,r.data.canvasNeedsRedraw[t.NODE]=!0,r.redraw());var m=!1;if(null!=i&&(i._private.active=!1,m=!0,i.unactivate()),n.touches[2])r.data.bgActivePosistion=void 0,r.data.canvasNeedsRedraw[t.SELECT_BOX]=!0;else if(n.touches[1]);else if(n.touches[0]);else if(!n.touches[0]){if(r.data.bgActivePosistion=void 0,r.data.canvasNeedsRedraw[t.SELECT_BOX]=!0,null!=i){i._private.grabbed&&(i._private.grabbed=!1,i.trigger("free"),i._private.rscratch.inDragLayer=!1);for(var b=i._private.edges,x=0;xu;u++)d[4*u]=p[2*u],d[4*u+1]=p[2*u+1],d[4*u+2]=h[2*u],d[4*u+3]=h[2*u+1];d=e.math.fitPolygonToSquare(d),i.star5=i.star={points:d,draw:function(e,t,n,a,o){r.drawPolygon(e,t,n,a,o,i.star5.points)},drawPath:function(e,t,n,a,o){r.drawPolygonPath(e,t,n,a,o,i.star5.points)},intersectLine:function(e,t,n,a,o,s,l){return r.polygonIntersectLine(o,s,i.star5.points,e,t,n/2,a/2,l)},intersectBox:function(e,t,n,a,o,s,l,c,u){var d=i.star5.points;return r.boxIntersectPolygon(e,t,n,a,d,o,s,l,c,[0,-1],u)},checkPointRough:function(t,r,n,a,o,s,l){return e.math.checkInBoundingBox(t,r,i.star5.points,n,a,o,s,l)},checkPoint:function(t,r,n,a,o,s,l){return e.math.pointInsidePolygon(t,r,i.star5.points,s,l,a,o,[0,-1],n)}}}(cytoscape),function(e){"use strict";function t(t){this.options=e.util.extend({},r,t)}var r={liveUpdate:!0,ready:void 0,stop:void 0,maxSimulationTime:4e3,fit:!0,padding:[50,50,50,50],simulationBounds:void 0,ungrabifyWhileSimulating:!0,repulsion:void 0,stiffness:void 0,friction:void 0,gravity:!0,fps:void 0,precision:void 0,nodeMass:void 0,edgeLength:void 0,stepSize:1,stableEnergy:function(e){var t=e;return t.max<=.5||t.mean<=.3}};t.prototype.run=function(){function t(e,t){return null==t?void 0:"function"==typeof t?t.apply(e,[e._private.data,{nodes:o.length,edges:s.length,element:e}]):t}function r(e){var t=e.x,r=e.y,n=c,i=u,a=-2,o=2,s=4;return{x:t/n*s+a,y:r/i*s+o}}function n(e){i.fit&&a.fit(),e()}var i=this.options,a=i.cy,o=a.nodes(),s=a.edges(),l=a.container(),c=l.clientWidth,u=l.clientHeight,d=i.simulationBounds;i.simulationBounds?(c=d[2]-d[0],u=d[3]-d[1]):i.simulationBounds=[0,0,c,u];var p=i.simulationBounds;if(p.x1=p[0],p.y1=p[1],p.x2=p[2],p.y2=p[3],a.nodes().size()<=1)return i.fit&&a.reset(),a.nodes().position({x:Math.round((p.x1+p.x2)/2),y:Math.round((p.y1+p.y2)/2)}),a.one("layoutready",i.ready),a.trigger("layoutready"),a.one("layoutstop",i.stop),void a.trigger("layoutstop");var h=this.system=arbor.ParticleSystem(i.repulsion,i.stiffness,i.friction,i.gravity,i.fps,i.dt,i.precision);this.system=h,i.liveUpdate&&i.fit&&a.reset();var g,v=250,f=!1,y=+new Date,m={init:function(){},redraw:function(){var t=h.energy();if(null!=i.stableEnergy&&null!=t&&t.n>0&&i.stableEnergy(t))return void h.stop();clearTimeout(g),g=setTimeout(w,v);var r=[];h.eachNode(function(e,t){var n=e.data,i=n.element;null!=i&&(i.locked()||i.grabbed()||(i.silentPosition({x:p.x1+t.x,y:p.y1+t.y}),r.push(i)))});var n=+new Date-y>=16;i.liveUpdate&&r.length>0&&n&&(new e.Collection(a,r).rtrigger("position"),y=+new Date),f||(f=!0,a.one("layoutready",i.ready),a.trigger("layoutready"))}};h.renderer=m,h.screenSize(c,u),h.screenPadding(i.padding[0],i.padding[1],i.padding[2],i.padding[3]),h.screenStep(i.stepSize);var b=function(e){var t=h.fromScreen(this.position()),r=arbor.Point(t.x,t.y);switch(this.scratch().arbor.p=r,e.type){case"grab":this.scratch().arbor.fixed=!0;
break;case"free":this.scratch().arbor.fixed=!1}};o.bind("grab drag free",b),o.each(function(e,n){if(!this.isFullAutoParent()){var a=this._private.data.id,o=t(this,i.nodeMass),s=this._private.locked;if(!n.isFullAutoParent()){var l=r({x:n.position().x,y:n.position().y});n.locked()||(this.scratch().arbor=h.addNode(a,{element:this,mass:o,fixed:s,x:s?l.x:void 0,y:s?l.y:void 0}))}}}),s.each(function(){var e=this.source().id(),r=this.target().id(),n=t(this,i.edgeLength);this.scratch().arbor=h.addEdge(e,r,{length:n})});var x=o.filter(":grabbable");i.ungrabifyWhileSimulating&&x.ungrabify();var w=function(){function e(){i.liveUpdate||(i.fit&&a.reset(),a.nodes().rtrigger("position")),o.unbind("grab drag free",b),i.ungrabifyWhileSimulating&&x.grabify(),a.one("layoutstop",i.stop),a.trigger("layoutstop")}window.isIE?n(function(){e()}):e()};h.start(),null!=i.maxSimulationTime&&i.maxSimulationTime>0&&1/0!==i.maxSimulationTime&&setTimeout(function(){h.stop()},i.maxSimulationTime)},t.prototype.stop=function(){null!=this.system&&system.stop()},e("layout","arbor",t)}(cytoscape),function(e){"use strict";function t(t){this.options=e.util.extend({},r,t)}var r={fit:!0,ready:void 0,stop:void 0,directed:!1,padding:30,circle:!1,roots:void 0,maximalAdjustments:0};t.prototype.run=function(){var t,r=this.options,n=r,i=r.cy,a=i.nodes(),o=i.edges(),s=a.add(o),l=i.container(),c=l.clientWidth,u=l.clientHeight;if(e.is.elementOrCollection(n.roots))t=n.roots;else if(e.is.array(n.roots)){for(var d=[],p=0;pw;){for(var _=b.shift(),E=_.neighborhood().nodes(),S=!1,p=0;pp;p++)for(var P=f[p],M=P.length,I=0;M>I;I++){var g=P[I],z=g._private.scratch.BreadthFirstLayout,B=C(g);B&&(z.intEle=B,T.push(g))}for(var p=0;pf.length-1;)f.push([]);f[X].push(g),z.depth=X,z.index=f[X].length-1}k()}for(var L=0,p=0;pl||0===t)&&(n+=s/c,i++)}return i=Math.max(1,i),n/=i,0===i&&(n=void 0),V[e.id()]=n,n},F=function(e,t){var r=A(e),n=A(t);return r-n},q=0;3>q;q++){for(var p=0;p0&&f[0].length<=3?l/2:0),p=2*Math.PI/f[r].length*i;return 0===r&&1===f[0].length&&(d=1),{x:j.x+d*Math.cos(p),y:j.y+d*Math.sin(p)}}return{x:j.x+(i+1-(a+1)/2)*o,y:(r+1)*s}}),r.fit&&i.fit(n.padding),i.one("layoutready",r.ready),i.trigger("layoutready"),i.one("layoutstop",r.stop),i.trigger("layoutstop")},t.prototype.stop=function(){},e("layout","breadthfirst",t)}(cytoscape),function(e){"use strict";function t(t){this.options=e.util.extend({},r,t)}var r={fit:!0,ready:void 0,stop:void 0,rStepSize:10,padding:30,startAngle:1.5*Math.PI,counterclockwise:!1};t.prototype.run=function(){function e(){var e=0,t=u,r={x:l.x+g*Math.cos(e),y:l.y+g*Math.sin(e)},n={x:l.x+g*Math.cos(t),y:l.y+g*Math.sin(t)},i=Math.sqrt((n.x-r.x)*(n.x-r.x)+(n.y-r.y)*(n.y-r.y));return i}for(var t=this.options,r=t,n=t.cy,i=n.nodes().filter(function(){return!this.isFullAutoParent()}),a=n.container(),o=a.clientWidth,s=a.clientHeight,l={x:o/2,y:s/2},c=r.startAngle,u=2*Math.PI/i.length,d=0,p=0;p=2;)g+=r.rStepSize;var p=0;i.positions(function(){var e=g*Math.cos(c),t=g*Math.sin(c),n={x:l.x+e,y:l.y+t};return p++,c=r.counterclockwise?c-u:c+u,n}),t.fit&&n.fit(r.padding),n.one("layoutready",t.ready),n.trigger("layoutready"),n.one("layoutstop",t.stop),n.trigger("layoutstop")},t.prototype.stop=function(){},e("layout","circle",t)}(cytoscape),function(e){"use strict";function t(t){this.options=e.util.extend({},r,t)}var r={fit:!0,ready:void 0,stop:void 0,padding:30,startAngle:1.5*Math.PI,counterclockwise:!1,minNodeSpacing:10,height:void 0,width:void 0,concentric:function(){return this.degree()},levelWidth:function(e){return e.maxDegree()/4}};t.prototype.run=function(){for(var e=this.options,t=e,r=e.cy,n=r.nodes().filter(function(){return!this.isFullAutoParent()}),i=r.container(),a=void 0!==t.width?t.width:i.clientWidth,o=void 0!==t.height?t.height:i.clientHeight,s={x:a/2,y:o/2},l=[],c=t.startAngle,u=0,d=0;d0){var m=Math.abs(f[0].value-y.value);m>=g&&(f=[],v.push(f))}f.push(y)}for(var b={},x=0,w=u+t.minNodeSpacing,d=0;d1){var S=Math.cos(E)-Math.cos(0),P=Math.sin(E)-Math.sin(0),k=Math.sqrt(w*w/(S*S+P*P));x=Math.max(k,x)}for(var C=0;C<_.length;C++){var y=_[C],c=t.startAngle+(t.counterclockwise?1:-1)*E*C,D={x:s.x+x*Math.cos(c),y:s.y+x*Math.sin(c)};b[y.node.id()]=D}x+=w}n.positions(function(){var e=this.id();return b[e]}),e.fit&&r.fit(t.padding),r.one("layoutready",e.ready),r.trigger("layoutready"),r.one("layoutstop",e.stop),r.trigger("layoutstop")},t.prototype.stop=function(){},e("layout","concentric",t)}(cytoscape),function(e){"use strict";function t(t){this.options=e.util.extend({},n,t)}var r,n={ready:function(){},stop:function(){},refresh:0,fit:!0,padding:30,randomize:!0,debug:!1,nodeRepulsion:1e4,nodeOverlap:10,idealEdgeLength:10,edgeElasticity:100,nestingFactor:5,gravity:250,numIter:100,initialTemp:200,coolingFactor:.95,minTemp:1};t.prototype.run=function(){var e=this.options,t=e.cy;r=!0===e.debug?!0:!1;var n=new Date,a=i(t,e);r&&s(a),!0===e.randomize&&(l(a,t),0=l;){var h=s[l++],g=r.idToIndex[h],v=r.layoutNodes[g],f=v.children;if(f.length>0){r.graphSet.push(f);for(var i=0;in.count?0:n.graph},o=function(e,t,r,n){var i=n.graphSet[r];if(-1<$.inArray(e,i)&&-1<$.inArray(t,i))return{count:2,graph:r};for(var a=0,s=0;ss;s++)for(var l=e.layoutNodes[e.idToIndex[a[s]]],c=s+1;o>c;c++){var u=e.layoutNodes[e.idToIndex[a[c]]];p(l,u,e,t,r)}}},p=function(e,t,r,n,i){var a="Node repulsion. Node1: "+e.id+" Node2: "+t.id,o=t.positionX-e.positionX,s=t.positionY-e.positionY;if(a+="\ndirectionX: "+o+", directionY: "+s,0===o&&0===s)return void(a+="\nNodes have the same position.");var l=g(e,t,o,s);if(l>0){a+="\nNodes DO overlap.",a+="\nOverlap: "+l;var c=i.nodeOverlap*l,u=Math.sqrt(o*o+s*s);a+="\nDistance: "+u;var d=c*o/u,p=c*s/u}else{a+="\nNodes do NOT overlap.";var v=h(e,o,s),f=h(t,-1*o,-1*s),y=f.x-v.x,m=f.y-v.y,b=y*y+m*m,u=Math.sqrt(b);a+="\nDistance: "+u;var c=i.nodeRepulsion/b,d=c*y/u,p=c*m/u}e.offsetX-=d,e.offsetY-=p,t.offsetX+=d,t.offsetY+=p,a+="\nForceX: "+d+" ForceY: "+p,w(a)},h=function(e,t,r){var n=e.positionX,i=e.positionY,a=e.height,o=e.width,s=r/t,l=a/o,c="Computing clipping point of node "+e.id+" . Height: "+a+", Width: "+o+"\nDirection "+t+", "+r,u={};do{if(0===t&&r>0){u.x=n,c+="\nUp direction",u.y=i+a/2;break}if(0===t&&0>r){u.x=n,u.y=i+a/2,c+="\nDown direction";break}if(t>0&&s>=-1*l&&l>=s){u.x=n+o/2,u.y=i+o*r/2/t,c+="\nRightborder";break}if(0>t&&s>=-1*l&&l>=s){u.x=n-o/2,u.y=i-o*r/2/t,c+="\nLeftborder";break}if(r>0&&(-1*l>=s||s>=l)){u.x=n+a*t/2/r,u.y=i+a/2,c+="\nTop border";break}if(0>r&&(-1*l>=s||s>=l)){u.x=n-a*t/2/r,u.y=i-a/2,c+="\nBottom border";break}}while(!1);return c+="\nClipping point found at "+u.x+", "+u.y,w(c),u},g=function(e,t,r,n){if(r>0)var i=e.maxX-t.minX;else var i=t.maxX-e.minX;if(n>0)var a=e.maxY-t.minY;else var a=t.maxY-e.minY;return i>=0&&a>=0?Math.sqrt(i*i+a*a):0},v=function(e,t,r){for(var n=0;nd;d++){var p=e.layoutNodes[e.idToIndex[a[d]]];n="Node: "+p.id;var h=s-p.positionX,g=l-p.positionY,v=Math.sqrt(h*h+g*g);if(v>1){var f=r.gravity*h/v,y=r.gravity*g/v;p.offsetX+=f,p.offsetY+=y,n+=": Applied force: "+f+", "+y}else n+=": skypped since it's too close to center";w(n)}}},y=function(e){var t=[],r=0,n=-1;for(w("propagateForces"),t.push.apply(t,e.graphSet[0]),n+=e.graphSet[0].length;n>=r;){var i=t[r++],a=e.idToIndex[i],o=e.layoutNodes[a],s=o.children;if(0r)var a={x:r*e/i,y:r*t/i};else var a={x:e,y:t};return n+=".\nResult: ("+a.x+", "+a.y+")",w(n),a},x=function(e,t){var r="Propagating new position/size of node "+e.id,n=e.parentId;if(null==n)return r+=". No parent node.",void w(r);var i=t.layoutNodes[t.idToIndex[n]],a=!1;return(null==i.maxX||e.maxX+i.padRight>i.maxX)&&(i.maxX=e.maxX+i.padRight,a=!0,r+="\nNew maxX for parent node "+i.id+": "+i.maxX),(null==i.minX||e.minX-i.padLefti.maxY)&&(i.maxY=e.maxY+i.padBottom,a=!0,r+="\nNew maxY for parent node "+i.id+": "+i.maxY),(null==i.minY||e.minY-i.padTops){var h=d(),g=p();(h-1)*g>=s?d(h-1):(g-1)*h>=s&&p(g-1)}else for(;s>u*c;){var h=d(),g=p();(g+1)*h>=s?p(g+1):d(h+1)}for(var v=a/u,f=o/c,y=0;y=u&&(P=0,S++)},C={},y=0;y0&&(f.rtrigger("position"),f=a.collection())},50),o.bind("drag",function(){e(this)});var x=o.filter(":grabbable"),w=n.stopSystem=function(){r(function(){i.fit&&a.fit(),a.one("layoutstop",i.stop),a.trigger("layoutstop"),n.stopSystem=null})};t(),setTimeout(function(){w()},i.maxSimulationTime)},t.prototype.stop=function(){null!=this.stopSystem&&this.stopSystem()},e("layout","springy",t)}(cytoscape),function(e){"use strict";function t(e){this.options=e}t.prototype.notify=function(){},e("renderer","null",t)}(cytoscape);