react-sigma
Version:
Lightweight but powerful library for drawing network graphs built on top of SigmaJS
1 lines • 201 kB
JavaScript
var ReactSigma=function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}return i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=18)}([function(e,t,i){e.exports=i(4)()},function(e,t){e.exports=void 0},function(e,t){!function(e){var t={};function i(n){if(t[n])return t[n].exports;var r=t[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,i),r.l=!0,r.exports}i.m=e,i.c=t,i.d=function(e,t,n){i.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,t){if(1&t&&(e=i(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(i.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)i.d(n,r,function(t){return e[t]}.bind(null,r));return n},i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,"a",t),t},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.p="",i(i.s=115)}({115:function(e,t,i){"use strict";i.r(t),i(116),i(117),i(118),i(119),i(120),i(121),i(122),i(123),i(124),i(125),i(126),i(127),i(128),i(129),i(130),i(131),i(132),i(133),i(134),i(135),i(136),i(137),i(138),i(139),i(140),i(141);let n=window.sigma;n.renderers.def=n.renderers.canvas,t.default=n},116:function(e,t){(function(){(function(e){"use strict";var t={},i=function(e){var n,r,o,s,a;i.classes.dispatcher.extend(this);var l=this,d=e||{};if("string"==typeof d||d instanceof HTMLElement?d={renderers:[d]}:"[object Array]"===Object.prototype.toString.call(d)&&(d={renderers:d}),s=d.renderers||d.renderer||d.container,d.renderers&&0!==d.renderers.length||("string"==typeof s||s instanceof HTMLElement||"object"==typeof s&&"container"in s)&&(d.renderers=[s]),d.id){if(t[d.id])throw'sigma: Instance "'+d.id+'" already exists.';Object.defineProperty(this,"id",{value:d.id})}else{for(a=0;t[a];)a++;Object.defineProperty(this,"id",{value:""+a})}for(t[this.id]=this,this.settings=new i.classes.configurable(i.settings,d.settings||{}),Object.defineProperty(this,"graph",{value:new i.classes.graph(this.settings),configurable:!0}),Object.defineProperty(this,"middlewares",{value:[],configurable:!0}),Object.defineProperty(this,"cameras",{value:{},configurable:!0}),Object.defineProperty(this,"renderers",{value:{},configurable:!0}),Object.defineProperty(this,"renderersPerCamera",{value:{},configurable:!0}),Object.defineProperty(this,"cameraFrames",{value:{},configurable:!0}),Object.defineProperty(this,"camera",{get:function(){return this.cameras[0]}}),Object.defineProperty(this,"events",{value:["click","rightClick","clickStage","doubleClickStage","rightClickStage","clickNode","clickNodes","doubleClickNode","doubleClickNodes","rightClickNode","rightClickNodes","overNode","overNodes","outNode","outNodes","downNode","downNodes","upNode","upNodes"],configurable:!0}),this._handler=function(e){var t,i={};for(t in e.data)i[t]=e.data[t];i.renderer=e.target,this.dispatchEvent(e.type,i)}.bind(this),n=0,r=(o=d.renderers||[]).length;n<r;n++)this.addRenderer(o[n]);for(n=0,r=(o=d.middlewares||[]).length;n<r;n++)this.middlewares.push("string"==typeof o[n]?i.middlewares[o[n]]:o[n]);"object"==typeof d.graph&&d.graph&&(this.graph.read(d.graph),this.refresh()),window.addEventListener("resize",(function(){l.settings&&l.refresh()}))};if(i.prototype.addCamera=function(t){var n,r=this;if(!arguments.length){for(t=0;this.cameras[""+t];)t++;t=""+t}if(this.cameras[t])throw'sigma.addCamera: The camera "'+t+'" already exists.';return n=new i.classes.camera(t,this.graph,this.settings),this.cameras[t]=n,n.quadtree=new i.classes.quad,i.classes.edgequad!==e&&(n.edgequadtree=new i.classes.edgequad),n.bind("coordinatesUpdated",(function(e){r.renderCamera(n,n.isAnimated)})),this.renderersPerCamera[t]=[],n},i.prototype.killCamera=function(e){if(!(e="string"==typeof e?this.cameras[e]:e))throw"sigma.killCamera: The camera is undefined.";var t,i=this.renderersPerCamera[e.id];for(t=i.length-1;t>=0;t--)this.killRenderer(i[t]);return delete this.renderersPerCamera[e.id],delete this.cameraFrames[e.id],delete this.cameras[e.id],e.kill&&e.kill(),this},i.prototype.addRenderer=function(e){var t,n,r,o,s=e||{};if("string"==typeof s?s={container:document.getElementById(s)}:s instanceof HTMLElement&&(s={container:s}),"string"==typeof s.container&&(s.container=document.getElementById(s.container)),"id"in s)t=s.id;else{for(t=0;this.renderers[""+t];)t++;t=""+t}if(this.renderers[t])throw'sigma.addRenderer: The renderer "'+t+'" already exists.';if(n=(n="function"==typeof s.type?s.type:i.renderers[s.type])||i.renderers.def,r="camera"in s?s.camera instanceof i.classes.camera?s.camera:this.cameras[s.camera]||this.addCamera(s.camera):this.addCamera(),this.cameras[r.id]!==r)throw"sigma.addRenderer: The camera is not properly referenced.";return o=new n(this.graph,r,this.settings,s),this.renderers[t]=o,Object.defineProperty(o,"id",{value:t}),o.bind&&o.bind(["click","rightClick","clickStage","doubleClickStage","rightClickStage","clickNode","clickNodes","clickEdge","clickEdges","doubleClickNode","doubleClickNodes","doubleClickEdge","doubleClickEdges","rightClickNode","rightClickNodes","rightClickEdge","rightClickEdges","overNode","overNodes","overEdge","overEdges","outNode","outNodes","outEdge","outEdges","downNode","downNodes","downEdge","downEdges","upNode","upNodes","upEdge","upEdges"],this._handler),this.renderersPerCamera[r.id].push(o),o},i.prototype.killRenderer=function(e){if(!(e="string"==typeof e?this.renderers[e]:e))throw"sigma.killRenderer: The renderer is undefined.";var t=this.renderersPerCamera[e.camera.id],i=t.indexOf(e);return i>=0&&t.splice(i,1),e.kill&&e.kill(),delete this.renderers[e.id],this},i.prototype.refresh=function(t){var n,r,o,s,a,l,d=0;for(t=t||{},n=0,r=(s=this.middlewares||[]).length;n<r;n++)s[n].call(this,0===n?"":"tmp"+d+":",n===r-1?"ready:":"tmp"+ ++d+":");for(o in this.cameras)(a=this.cameras[o]).settings("autoRescale")&&this.renderersPerCamera[a.id]&&this.renderersPerCamera[a.id].length?i.middlewares.rescale.call(this,s.length?"ready:":"",a.readPrefix,{width:this.renderersPerCamera[a.id][0].width,height:this.renderersPerCamera[a.id][0].height}):i.middlewares.copy.call(this,s.length?"ready:":"",a.readPrefix),t.skipIndexation||(l=i.utils.getBoundaries(this.graph,a.readPrefix),a.quadtree.index(this.graph.nodes(),{prefix:a.readPrefix,bounds:{x:l.minX,y:l.minY,width:l.maxX-l.minX,height:l.maxY-l.minY}}),a.edgequadtree!==e&&a.settings("drawEdges")&&a.settings("enableEdgeHovering")&&a.edgequadtree.index(this.graph,{prefix:a.readPrefix,bounds:{x:l.minX,y:l.minY,width:l.maxX-l.minX,height:l.maxY-l.minY}}));for(n=0,r=(s=Object.keys(this.renderers)).length;n<r;n++)if(this.renderers[s[n]].process)if(this.settings("skipErrors"))try{this.renderers[s[n]].process()}catch(e){console.log('Warning: The renderer "'+s[n]+'" crashed on ".process()"')}else this.renderers[s[n]].process();return this.render(),this},i.prototype.render=function(){var e,t,i;for(e=0,t=(i=Object.keys(this.renderers)).length;e<t;e++)if(this.settings("skipErrors"))try{this.renderers[i[e]].render()}catch(t){this.settings("verbose")&&console.log('Warning: The renderer "'+i[e]+'" crashed on ".render()"')}else this.renderers[i[e]].render();return this},i.prototype.renderCamera=function(e,t){var i,n,r,o=this;if(t)for(i=0,n=(r=this.renderersPerCamera[e.id]).length;i<n;i++)if(this.settings("skipErrors"))try{r[i].render()}catch(e){this.settings("verbose")&&console.log('Warning: The renderer "'+r[i].id+'" crashed on ".render()"')}else r[i].render();else if(!this.cameraFrames[e.id]){for(i=0,n=(r=this.renderersPerCamera[e.id]).length;i<n;i++)if(this.settings("skipErrors"))try{r[i].render()}catch(e){this.settings("verbose")&&console.log('Warning: The renderer "'+r[i].id+'" crashed on ".render()"')}else r[i].render();this.cameraFrames[e.id]=requestAnimationFrame((function(){delete o.cameraFrames[e.id]}))}return this},i.prototype.kill=function(){var e;for(e in this.dispatchEvent("kill"),this.graph.kill(),delete this.middlewares,this.renderers)this.killRenderer(this.renderers[e]);for(e in this.cameras)this.killCamera(this.cameras[e]);for(e in delete this.renderers,delete this.cameras,this)this.hasOwnProperty(e)&&delete this[e];delete t[this.id]},i.instances=function(e){return arguments.length?t[e]:i.utils.extend({},t)},i.version="1.2.1",void 0!==this.sigma)throw"An object called sigma is already in the global scope.";this.sigma=i}).call(this)}).call(window)},117:function(e,t,i){(function(){!function(i){"use strict";if(i.conrad)throw new Error("conrad already exists");var n,r=!1,o={},s={},a=[],l={},d=[],u=!1,c={frameDuration:20,history:!0},g=Object.create(null);function h(e,t){var i,n,r,o,s,a,l=Array.isArray(e)?e:e.split(/ /);for(t=void 0===t?{}:t,i=0,r=l.length;i!==r;i+=1)if(a=l[i],g[a])for(s={type:a,data:t||{}},n=0,o=g[a].length;n!==o;n+=1)try{g[a][n].handler(s)}catch(e){}}function f(){var e,t,i,n,r=!1,o=E(),s=a.shift();if(i=s.job(),o=E()-o,s.done++,s.time+=o,s.currentTime+=o,s.weightTime=s.currentTime/(s.weight||1),s.averageTime=s.time/s.done,!(n=s.count?s.count<=s.done:!i)){for(e=0,t=a.length;e<t;e++)if(a[e].weightTime>s.weightTime){a.splice(e,0,s),r=!0;break}r||a.push(s)}return n?s:null}function p(e){var t=a.length;s[e.id]=e,e.status="running",t&&(e.weightTime=a[t-1].weightTime,e.currentTime=e.weightTime*(e.weight||1)),e.startTime=E(),h("jobStarted",x(e)),a.push(e)}function m(){var e,t,i;for(e in o)(t=o[e]).after?l[e]=t:p(t),delete o[e];for(r=!!a.length;a.length&&E()-n<c.frameDuration;)if(i=f())for(e in y(i.id),l)l[e].after===i.id&&(p(l[e]),delete l[e]);r?(n=E(),h("enterFrame"),setTimeout(m,0)):h("stop")}function y(e){var t,i,n,r,u=!1;if(Array.isArray(e))for(t=0,i=e.length;t<i;t++)y(e[t]);else{if("string"!=typeof e)throw new Error("[conrad.killJob] Wrong arguments.");for(t=0,i=(n=[s,l,o]).length;t<i;t++)e in n[t]&&(r=n[t][e],c.history&&(r.status="done",d.push(r)),h("jobEnded",x(r)),delete n[t][e],"function"==typeof r.end&&r.end(),u=!0);for(t=0,i=(n=a).length;t<i;t++)if(n[t].id===e){n.splice(t,1);break}if(!u)throw new Error('[conrad.killJob] Job "'+e+'" not found.')}return this}function v(e){var t=o[e]||s[e]||l[e];return t?b(t):null}function b(){var e,t,i={};for(e=arguments.length-1;e>=0;e--)for(t in arguments[e])i[t]=arguments[e][t];return i}function x(e){var t,i,n;if(!e)return e;if(Array.isArray(e))for(t=[],i=0,n=e.length;i<n;i++)t.push(x(e[i]));else if("object"==typeof e)for(i in t={},e)t[i]=x(e[i]);else t=e;return t}function w(e){var t,i=[];for(t in e)i.push(e[t]);return i}function E(){return Date.now?Date.now():(new Date).getTime()}Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)});var S={hasJob:v,addJob:function e(t,i){var s,a,l;if(Array.isArray(t)){for(u=!0,s=0,a=t.length;s<a;s++)e(t[s].id,b(t[s],i));u=!1,r||(n=E(),h("start"),m())}else if("object"==typeof t)if("string"==typeof t.id)e(t.id,t);else{for(s in u=!0,t)"function"==typeof t[s]?e(s,b({job:t[s]},i)):e(s,b(t[s],i));u=!1,r||(n=E(),h("start"),m())}else{if("string"!=typeof t)throw new Error("[conrad.addJob] Wrong arguments.");if(v(t))throw new Error('[conrad.addJob] Job with id "'+t+'" already exists.');if("function"==typeof i)l={id:t,done:0,time:0,status:"waiting",currentTime:0,averageTime:0,weightTime:0,job:i};else{if("object"!=typeof i)throw new Error("[conrad.addJob] Wrong arguments.");l=b({id:t,done:0,time:0,status:"waiting",currentTime:0,averageTime:0,weightTime:0},i)}o[t]=l,h("jobAdded",x(l)),r||u||(n=E(),h("start"),m())}return this},killJob:y,killAll:function(){var e,t=b(o,s,l);if(c.history)for(e in t)t[e].status="done",d.push(t[e]),"function"==typeof t[e].end&&t[e].end();return o={},l={},s={},a=[],r=!1,this},settings:function(e,t){var i;if("string"==typeof a1&&1===arguments.length)return c[a1];for(var n in i="object"==typeof a1&&1===arguments.length&&a1||{},"string"==typeof a1&&(i[a1]=a2),i)void 0!==i[n]?c[n]=i[n]:delete c[n];return this},getStats:function(e,t){var i,n,r,a,u,c,g;if(!arguments.length){for(n in u=[],o)u.push(o[n]);for(n in l)u.push(l[n]);for(n in s)u.push(s[n]);u=u.concat(d)}if("string"==typeof e)switch(e){case"waiting":u=w(l);break;case"running":u=w(s);break;case"done":u=d;break;default:c=e}if(e instanceof RegExp&&(c=e),!c&&("string"==typeof t||t instanceof RegExp)&&(c=t),c){if(g="string"==typeof c,u instanceof Array)i=u;else if("object"==typeof u)for(n in i=[],u)i=i.concat(u[n]);else{for(n in i=[],o)i.push(o[n]);for(n in l)i.push(l[n]);for(n in s)i.push(s[n]);i=i.concat(d)}for(u=[],r=0,a=i.length;r<a;r++)(g?i[r].id===c:i[r].id.match(c))&&u.push(i[r])}return x(u)},isRunning:function(){return r},clearHistory:function(){return d=[],this},bind:function e(t,i){var n,r,o,s;if(arguments.length)if(1===arguments.length&&Object(arguments[0])===arguments[0])for(t in arguments[0])e(t,arguments[0][t]);else if(arguments.length>1)for(n=0,r=(s=Array.isArray(t)?t:t.split(/ /)).length;n!==r;n+=1)o=s[n],g[o]||(g[o]=[]),g[o].push({handler:i})},unbind:function(e,t){var i,n,r,o,s,a,l=Array.isArray(e)?e:e.split(/ /);if(arguments.length)if(t)for(i=0,n=l.length;i!==n;i+=1){if(a=l[i],g[a]){for(s=[],r=0,o=g[a].length;r!==o;r+=1)g[a][r].handler!==t&&s.push(g[a][r]);g[a]=s}g[a]&&0===g[a].length&&delete g[a]}else for(i=0,n=l.length;i!==n;i+=1)delete g[l[i]];else g=Object.create(null)},version:"0.1.0"};e.exports&&(t=e.exports=S),t.conrad=S,i.conrad=S}(this)}).call(window)},118:function(e,t){(function(){(function(e){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";var t,i=this;sigma.utils=sigma.utils||{},sigma.utils.extend=function(){var e,t,i={},n=arguments.length;for(e=n-1;e>=0;e--)for(t in arguments[e])i[t]=arguments[e][t];return i},sigma.utils.dateNow=function(){return Date.now?Date.now():(new Date).getTime()},sigma.utils.pkg=function(e){return(e||"").split(".").reduce((function(e,t){return t in e?e[t]:e[t]={}}),i)},sigma.utils.id=(t=0,function(){return++t});var n={};sigma.utils.floatColor=function(e){if(n[e])return n[e];var t=e,i=0,r=0,o=0;"#"===e[0]?3===(e=e.slice(1)).length?(i=parseInt(e.charAt(0)+e.charAt(0),16),r=parseInt(e.charAt(1)+e.charAt(1),16),o=parseInt(e.charAt(2)+e.charAt(2),16)):(i=parseInt(e.charAt(0)+e.charAt(1),16),r=parseInt(e.charAt(2)+e.charAt(3),16),o=parseInt(e.charAt(4)+e.charAt(5),16)):e.match(/^ *rgba? *\(/)&&(i=+(e=e.match(/^ *rgba? *\( *([0-9]*) *, *([0-9]*) *, *([0-9]*) *(,.*)?\) *$/))[1],r=+e[2],o=+e[3]);var s=256*i*256+256*r+o;return n[t]=s,s},sigma.utils.zoomTo=function(e,t,i,n,r){var o,s,a,l=e.settings;(s=Math.max(l("zoomMin"),Math.min(l("zoomMax"),e.ratio*n)))!==e.ratio&&(a={x:t*(1-(n=s/e.ratio))+e.x,y:i*(1-n)+e.y,ratio:s},r&&r.duration?(o=sigma.misc.animation.killAll(e),r=sigma.utils.extend(r,{easing:o?"quadraticOut":"quadraticInOut"}),sigma.misc.animation.camera(e,a,r)):(e.goTo(a),r&&r.onComplete&&r.onComplete()))},sigma.utils.getQuadraticControlPoint=function(e,t,i,n){return{x:(e+i)/2+(n-t)/4,y:(t+n)/2+(e-i)/4}},sigma.utils.getPointOnQuadraticCurve=function(e,t,i,n,r,o,s){return{x:Math.pow(1-e,2)*t+2*(1-e)*e*o+Math.pow(e,2)*n,y:Math.pow(1-e,2)*i+2*(1-e)*e*s+Math.pow(e,2)*r}},sigma.utils.getPointOnBezierCurve=function(e,t,i,n,r,o,s,a,l){var d=Math.pow(1-e,3),u=3*e*Math.pow(1-e,2),c=3*Math.pow(e,2)*(1-e),g=Math.pow(e,3);return{x:d*t+u*o+c*a+g*n,y:d*i+u*s+c*l+g*r}},sigma.utils.getSelfLoopControlPoints=function(e,t,i){return{x1:e-7*i,y1:t,x2:e,y2:t+7*i}},sigma.utils.getDistance=function(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))},sigma.utils.getCircleIntersection=function(e,t,i,n,r,o){var s,a,l,d,u,c,g,h,f;return a=n-e,l=r-t,!((d=Math.sqrt(l*l+a*a))>i+o)&&!(d<Math.abs(i-o))&&(f=t+l*(s=(i*i-o*o+d*d)/(2*d))/d,{xi:(h=e+a*s/d)+(c=(u=Math.sqrt(i*i-s*s))/d*-l),xi_prime:h-c,yi:f+(g=a*(u/d)),yi_prime:f-g})},sigma.utils.isPointOnSegment=function(e,t,i,n,r,o,s){return Math.abs((t-n)*(r-i)-(e-i)*(o-n))/sigma.utils.getDistance(i,n,r,o)<s&&Math.min(i,r)<=e&&e<=Math.max(i,r)&&Math.min(n,o)<=t&&t<=Math.max(n,o)},sigma.utils.isPointOnQuadraticCurve=function(e,t,i,n,r,o,s,a,l){var d=sigma.utils.getDistance(i,n,r,o);if(Math.abs(e-i)>d||Math.abs(t-n)>d)return!1;for(var u,c=.5,g=sigma.utils.getDistance(e,t,i,n)<sigma.utils.getDistance(e,t,r,o)?-.01:.01,h=100,f=sigma.utils.getPointOnQuadraticCurve(c,i,n,r,o,s,a),p=sigma.utils.getDistance(e,t,f.x,f.y);h-- >0&&c>=0&&c<=1&&p>l&&(g>.001||g<-.001);)u=p,f=sigma.utils.getPointOnQuadraticCurve(c,i,n,r,o,s,a),(p=sigma.utils.getDistance(e,t,f.x,f.y))>u?c+=g=-g/2:c+g<0||c+g>1?(g/=2,p=u):c+=g;return p<l},sigma.utils.isPointOnBezierCurve=function(e,t,i,n,r,o,s,a,l,d,u){var c=sigma.utils.getDistance(i,n,s,a);if(Math.abs(e-i)>c||Math.abs(t-n)>c)return!1;for(var g,h=.5,f=sigma.utils.getDistance(e,t,i,n)<sigma.utils.getDistance(e,t,r,o)?-.01:.01,p=100,m=sigma.utils.getPointOnBezierCurve(h,i,n,r,o,s,a,l,d),y=sigma.utils.getDistance(e,t,m.x,m.y);p-- >0&&h>=0&&h<=1&&y>u&&(f>.001||f<-.001);)g=y,m=sigma.utils.getPointOnBezierCurve(h,i,n,r,o,s,a,l,d),(y=sigma.utils.getDistance(e,t,m.x,m.y))>g?h+=f=-f/2:h+f<0||h+f>1?(f/=2,y=g):h+=f;return y<u},sigma.utils.getX=function(t){return t.offsetX!==e&&t.offsetX||t.layerX!==e&&t.layerX||t.clientX!==e&&t.clientX},sigma.utils.getY=function(t){return t.offsetY!==e&&t.offsetY||t.layerY!==e&&t.layerY||t.clientY!==e&&t.clientY},sigma.utils.getPixelRatio=function(){var t=1;return window.screen.deviceXDPI!==e&&window.screen.logicalXDPI!==e&&window.screen.deviceXDPI>window.screen.logicalXDPI?t=window.screen.systemXDPI/window.screen.logicalXDPI:window.devicePixelRatio!==e&&(t=window.devicePixelRatio),t},sigma.utils.getWidth=function(t){var i=t.target.ownerSVGElement?t.target.ownerSVGElement.width:t.target.width;return"number"==typeof i&&i||i!==e&&i.baseVal!==e&&i.baseVal.value},sigma.utils.getCenter=function(e){var t=-1!==e.target.namespaceURI.indexOf("svg")?1:sigma.utils.getPixelRatio();return{x:sigma.utils.getWidth(e)/(2*t),y:sigma.utils.getHeight(e)/(2*t)}},sigma.utils.mouseCoords=function(e,t,i){return t=t||sigma.utils.getX(e),i=i||sigma.utils.getY(e),{x:t-sigma.utils.getCenter(e).x,y:i-sigma.utils.getCenter(e).y,clientX:e.clientX,clientY:e.clientY,ctrlKey:e.ctrlKey,metaKey:e.metaKey,altKey:e.altKey,shiftKey:e.shiftKey}},sigma.utils.getHeight=function(t){var i=t.target.ownerSVGElement?t.target.ownerSVGElement.height:t.target.height;return"number"==typeof i&&i||i!==e&&i.baseVal!==e&&i.baseVal.value},sigma.utils.getDelta=function(t){return t.wheelDelta!==e&&t.wheelDelta||t.detail!==e&&-t.detail},sigma.utils.getOffset=function(e){for(var t=0,i=0;e;)i+=parseInt(e.offsetTop),t+=parseInt(e.offsetLeft),e=e.offsetParent;return{top:i,left:t}},sigma.utils.doubleClick=function(e,t,i){var n,r=0;e._doubleClickHandler=e._doubleClickHandler||{},e._doubleClickHandler[t]=e._doubleClickHandler[t]||[],(n=e._doubleClickHandler[t]).push((function(e){if(2==++r)return r=0,i(e);1===r&&setTimeout((function(){r=0}),sigma.settings.doubleClickTimeout)})),e.addEventListener(t,n[n.length-1],!1)},sigma.utils.unbindDoubleClick=function(e,t){for(var i,n=(e._doubleClickHandler||{})[t]||[];i=n.pop();)e.removeEventListener(t,i);delete(e._doubleClickHandler||{})[t]},sigma.utils.easings=sigma.utils.easings||{},sigma.utils.easings.linearNone=function(e){return e},sigma.utils.easings.quadraticIn=function(e){return e*e},sigma.utils.easings.quadraticOut=function(e){return e*(2-e)},sigma.utils.easings.quadraticInOut=function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},sigma.utils.easings.cubicIn=function(e){return e*e*e},sigma.utils.easings.cubicOut=function(e){return--e*e*e+1},sigma.utils.easings.cubicInOut=function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},sigma.utils.loadShader=function(e,t,i,n){var r=e.createShader(i);return e.shaderSource(r,t),e.compileShader(r),e.getShaderParameter(r,e.COMPILE_STATUS)?r:(n&&n('Error compiling shader "'+r+'":'+e.getShaderInfoLog(r)),e.deleteShader(r),null)},sigma.utils.loadProgram=function(e,t,i,n,r){var o,s=e.createProgram();for(o=0;o<t.length;++o)e.attachShader(s,t[o]);if(i)for(o=0;o<i.length;++o)e.bindAttribLocation(s,locations?locations[o]:o,opt_attribs[o]);return e.linkProgram(s),e.getProgramParameter(s,e.LINK_STATUS)?s:(r&&r("Error in program linking: "+e.getProgramInfoLog(s)),e.deleteProgram(s),null)},sigma.utils.pkg("sigma.utils.matrices"),sigma.utils.matrices.translation=function(e,t){return[1,0,0,0,1,0,e,t,1]},sigma.utils.matrices.rotation=function(e,t){var i=Math.cos(e),n=Math.sin(e);return t?[i,-n,n,i]:[i,-n,0,n,i,0,0,0,1]},sigma.utils.matrices.scale=function(e,t){return t?[e,0,0,e]:[e,0,0,0,e,0,0,0,1]},sigma.utils.matrices.multiply=function(e,t,i){var n=i?2:3,r=e[0*n+0],o=e[0*n+1],s=e[0*n+2],a=e[1*n+0],l=e[1*n+1],d=e[1*n+2],u=e[2*n+0],c=e[2*n+1],g=e[2*n+2],h=t[0*n+0],f=t[0*n+1],p=t[0*n+2],m=t[1*n+0],y=t[1*n+1],v=t[1*n+2],b=t[2*n+0],x=t[2*n+1],w=t[2*n+2];return i?[r*h+o*m,r*f+o*y,a*h+l*m,a*f+l*y]:[r*h+o*m+s*b,r*f+o*y+s*x,r*p+o*v+s*w,a*h+l*m+d*b,a*f+l*y+d*x,a*p+l*v+d*w,u*h+c*m+g*b,u*f+c*y+g*x,u*p+c*v+g*w]}}).call(this)}).call(window)},119:function(e,t){(function(){!function(e){"use strict";var t,i=0,n=["ms","moz","webkit","o"];for(t=0;t<n.length&&!e.requestAnimationFrame;t++)e.requestAnimationFrame=e[n[t]+"RequestAnimationFrame"],e.cancelAnimationFrame=e[n[t]+"CancelAnimationFrame"]||e[n[t]+"CancelRequestAnimationFrame"];e.requestAnimationFrame||(e.requestAnimationFrame=function(t,n){var r=(new Date).getTime(),o=Math.max(0,16-(r-i)),s=e.setTimeout((function(){t(r+o)}),o);return i=r+o,s}),e.cancelAnimationFrame||(e.cancelAnimationFrame=function(e){clearTimeout(e)}),Function.prototype.bind||(Function.prototype.bind=function(e){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var t,i,n=Array.prototype.slice.call(arguments,1),r=this;return i=function(){return r.apply(this instanceof t&&e?this:e,n.concat(Array.prototype.slice.call(arguments)))},(t=function(){}).prototype=this.prototype,i.prototype=new t,i})}(this)}).call(window)},120:function(e,t){(function(){(function(e){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.settings"),sigma.settings=sigma.utils.extend(sigma.settings||{},{clone:!0,immutable:!0,verbose:!1,classPrefix:"sigma",defaultNodeType:"def",defaultEdgeType:"def",defaultLabelColor:"#000",defaultEdgeColor:"#000",defaultNodeColor:"#000",defaultLabelSize:14,edgeColor:"source",minArrowSize:0,font:"arial",fontStyle:"",labelColor:"default",labelSize:"fixed",labelSizeRatio:1,labelThreshold:8,webglOversamplingRatio:2,borderSize:0,defaultNodeBorderColor:"#000",hoverFont:"",singleHover:!0,hoverFontStyle:"",labelHoverShadow:"default",labelHoverShadowColor:"#000",nodeHoverColor:"node",defaultNodeHoverColor:"#000",labelHoverBGColor:"default",defaultHoverLabelBGColor:"#fff",labelHoverColor:"default",defaultLabelHoverColor:"#000",edgeHoverColor:"edge",edgeHoverSizeRatio:1,defaultEdgeHoverColor:"#000",edgeHoverExtremities:!1,drawEdges:!0,drawNodes:!0,drawLabels:!0,drawEdgeLabels:!1,batchEdgesDrawing:!1,hideEdgesOnMove:!1,canvasEdgesBatchSize:500,webglEdgesBatchSize:1e3,scalingMode:"inside",sideMargin:0,minEdgeSize:.5,maxEdgeSize:1,minNodeSize:1,maxNodeSize:8,touchEnabled:!0,mouseEnabled:!0,mouseWheelEnabled:!0,doubleClickEnabled:!0,eventsEnabled:!0,zoomingRatio:1.7,doubleClickZoomingRatio:2.2,zoomMin:.0625,zoomMax:2,mouseZoomDuration:200,doubleClickZoomDuration:200,mouseInertiaDuration:200,mouseInertiaRatio:3,touchInertiaDuration:200,touchInertiaRatio:3,doubleClickTimeout:300,doubleTapTimeout:300,dragTimeout:200,autoResize:!0,autoRescale:!0,enableCamera:!0,enableHovering:!0,enableEdgeHovering:!1,edgeHoverPrecision:5,rescaleIgnoreSize:!1,skipErrors:!1,nodesPowRatio:.5,edgesPowRatio:.5,animationsTime:200})}).call(this)}).call(window)},121:function(e,t,i){(function(){(function(){"use strict";var i=function(){Object.defineProperty(this,"_handlers",{value:{}})};i.prototype.bind=function(e,t){var i,n,r,o;if(1===arguments.length&&"object"==typeof arguments[0])for(e in arguments[0])this.bind(e,arguments[0][e]);else{if(2!==arguments.length||"function"!=typeof arguments[1])throw"bind: Wrong arguments.";for(i=0,n=(o="string"==typeof e?e.split(" "):e).length;i!==n;i+=1)(r=o[i])&&(this._handlers[r]||(this._handlers[r]=[]),this._handlers[r].push({handler:t}))}return this},i.prototype.unbind=function(e,t){var i,n,r,o,s,a,l,d="string"==typeof e?e.split(" "):e;if(!arguments.length){for(s in this._handlers)delete this._handlers[s];return this}if(t)for(i=0,n=d.length;i!==n;i+=1){if(l=d[i],this._handlers[l]){for(a=[],r=0,o=this._handlers[l].length;r!==o;r+=1)this._handlers[l][r].handler!==t&&a.push(this._handlers[l][r]);this._handlers[l]=a}this._handlers[l]&&0===this._handlers[l].length&&delete this._handlers[l]}else for(i=0,n=d.length;i!==n;i+=1)delete this._handlers[d[i]];return this},i.prototype.dispatchEvent=function(e,t){var i,n,r,o,s,a,l,d="string"==typeof e?e.split(" "):e;for(t=void 0===t?{}:t,i=0,n=d.length;i!==n;i+=1)if(l=d[i],this._handlers[l]){for(a=this.getEvent(l,t),s=[],r=0,o=this._handlers[l].length;r!==o;r+=1)this._handlers[l][r].handler(a),this._handlers[l][r].one||s.push(this._handlers[l][r]);this._handlers[l]=s}return this},i.prototype.getEvent=function(e,t){return{type:e,data:t||{},target:this}},i.extend=function(e,t){var n;for(n in i.prototype)i.prototype.hasOwnProperty(n)&&(e[n]=i.prototype[n]);i.apply(e,t)},void 0!==this.sigma?(this.sigma.classes=this.sigma.classes||{},this.sigma.classes.dispatcher=i):(e.exports&&(t=e.exports=i),t.dispatcher=i)}).call(this)}).call(window)},122:function(e,t,i){(function(){(function(){"use strict";var i=function(){var e,t,n={},r=Array.prototype.slice.call(arguments,0),o=function(e,t){var i,s,a,l;if(1!==arguments.length||"string"!=typeof e){if("object"==typeof e&&"string"==typeof t)return void 0!==(e||{})[t]?e[t]:o(t);for(i="object"==typeof e&&void 0===t?e:{},"string"==typeof e&&(i[e]=t),s=0,a=(l=Object.keys(i)).length;s<a;s++)n[l[s]]=i[l[s]];return this}if(void 0!==n[e])return n[e];for(s=0,a=r.length;s<a;s++)if(void 0!==r[s][e])return r[s][e]};for(o.embedObjects=function(){var e=r.concat(n).concat(Array.prototype.splice.call(arguments,0));return i.apply({},e)},e=0,t=arguments.length;e<t;e++)o(arguments[e]);return o};void 0!==this.sigma?(this.sigma.classes=this.sigma.classes||{},this.sigma.classes.configurable=i):(e.exports&&(t=e.exports=i),t.configurable=i)}).call(this)}).call(window)},123:function(e,t,i){(function(){(function(i){"use strict";var n=Object.create(null),r=Object.create(null),o=Object.create(null),s=Object.create(null),a=Object.create(null),l={immutable:!0,clone:!0},d=function(e){return l[e]},u=function(e){var t,i,r;for(t in r={settings:e||d,nodesArray:[],edgesArray:[],nodesIndex:Object.create(null),edgesIndex:Object.create(null),inNeighborsIndex:Object.create(null),outNeighborsIndex:Object.create(null),allNeighborsIndex:Object.create(null),inNeighborsCount:Object.create(null),outNeighborsCount:Object.create(null),allNeighborsCount:Object.create(null)},o)o[t].call(r);for(t in n)i=c(t,r,n[t]),this[t]=i,r[t]=i};function c(e,t,i){return function(){var n,r;for(n in a[e])a[e][n].apply(t,arguments);for(n in r=i.apply(t,arguments),s[e])s[e][n].apply(t,arguments);return r}}function g(e){var t;for(t in e)"hasOwnProperty"in e&&!e.hasOwnProperty(t)||delete e[t];return e}u.addMethod=function(e,t){if("string"!=typeof e||"function"!=typeof t||2!==arguments.length)throw"addMethod: Wrong arguments.";if(n[e]||u[e])throw'The method "'+e+'" already exists.';return n[e]=t,s[e]=Object.create(null),a[e]=Object.create(null),this},u.hasMethod=function(e){return!(!n[e]&&!u[e])},u.attach=function(e,t,i,n){if("string"!=typeof e||"string"!=typeof t||"function"!=typeof i||arguments.length<3||arguments.length>4)throw"attach: Wrong arguments.";var r;if("constructor"===e)r=o;else if(n){if(!a[e])throw'The method "'+e+'" does not exist.';r=a[e]}else{if(!s[e])throw'The method "'+e+'" does not exist.';r=s[e]}if(r[t])throw'A function "'+t+'" is already attached to the method "'+e+'".';return r[t]=i,this},u.attachBefore=function(e,t,i){return this.attach(e,t,i,!0)},u.addIndex=function(e,t){if("string"!=typeof e||Object(t)!==t||2!==arguments.length)throw"addIndex: Wrong arguments.";if(r[e])throw'The index "'+e+'" already exists.';var i;for(i in r[e]=t,t){if("function"!=typeof t[i])throw"The bindings must be functions.";u.attach(i,e,t[i])}return this},u.addMethod("addNode",(function(e){if(Object(e)!==e||1!==arguments.length)throw"addNode: Wrong arguments.";if("string"!=typeof e.id&&"number"!=typeof e.id)throw"The node must have a string or number id.";if(this.nodesIndex[e.id])throw'The node "'+e.id+'" already exists.';var t,i=e.id,n=Object.create(null);if(this.settings("clone"))for(t in e)"id"!==t&&(n[t]=e[t]);else n=e;return this.settings("immutable")?Object.defineProperty(n,"id",{value:i,enumerable:!0}):n.id=i,this.inNeighborsIndex[i]=Object.create(null),this.outNeighborsIndex[i]=Object.create(null),this.allNeighborsIndex[i]=Object.create(null),this.inNeighborsCount[i]=0,this.outNeighborsCount[i]=0,this.allNeighborsCount[i]=0,this.nodesArray.push(n),this.nodesIndex[n.id]=n,this})),u.addMethod("addEdge",(function(e){if(Object(e)!==e||1!==arguments.length)throw"addEdge: Wrong arguments.";if("string"!=typeof e.id&&"number"!=typeof e.id)throw"The edge must have a string or number id.";if("string"!=typeof e.source&&"number"!=typeof e.source||!this.nodesIndex[e.source])throw"The edge source must have an existing node id.";if("string"!=typeof e.target&&"number"!=typeof e.target||!this.nodesIndex[e.target])throw"The edge target must have an existing node id.";if(this.edgesIndex[e.id])throw'The edge "'+e.id+'" already exists.';var t,i=Object.create(null);if(this.settings("clone"))for(t in e)"id"!==t&&"source"!==t&&"target"!==t&&(i[t]=e[t]);else i=e;return this.settings("immutable")?(Object.defineProperty(i,"id",{value:e.id,enumerable:!0}),Object.defineProperty(i,"source",{value:e.source,enumerable:!0}),Object.defineProperty(i,"target",{value:e.target,enumerable:!0})):(i.id=e.id,i.source=e.source,i.target=e.target),this.edgesArray.push(i),this.edgesIndex[i.id]=i,this.inNeighborsIndex[i.target][i.source]||(this.inNeighborsIndex[i.target][i.source]=Object.create(null)),this.inNeighborsIndex[i.target][i.source][i.id]=i,this.outNeighborsIndex[i.source][i.target]||(this.outNeighborsIndex[i.source][i.target]=Object.create(null)),this.outNeighborsIndex[i.source][i.target][i.id]=i,this.allNeighborsIndex[i.source][i.target]||(this.allNeighborsIndex[i.source][i.target]=Object.create(null)),this.allNeighborsIndex[i.source][i.target][i.id]=i,i.target!==i.source&&(this.allNeighborsIndex[i.target][i.source]||(this.allNeighborsIndex[i.target][i.source]=Object.create(null)),this.allNeighborsIndex[i.target][i.source][i.id]=i),this.inNeighborsCount[i.target]++,this.outNeighborsCount[i.source]++,this.allNeighborsCount[i.target]++,this.allNeighborsCount[i.source]++,this})),u.addMethod("dropNode",(function(e){if("string"!=typeof e&&"number"!=typeof e||1!==arguments.length)throw"dropNode: Wrong arguments.";if(!this.nodesIndex[e])throw'The node "'+e+'" does not exist.';var t,i,n;for(delete this.nodesIndex[e],t=0,n=this.nodesArray.length;t<n;t++)if(this.nodesArray[t].id===e){this.nodesArray.splice(t,1);break}for(t=this.edgesArray.length-1;t>=0;t--)this.edgesArray[t].source!==e&&this.edgesArray[t].target!==e||this.dropEdge(this.edgesArray[t].id);for(i in delete this.inNeighborsIndex[e],delete this.outNeighborsIndex[e],delete this.allNeighborsIndex[e],delete this.inNeighborsCount[e],delete this.outNeighborsCount[e],delete this.allNeighborsCount[e],this.nodesIndex)delete this.inNeighborsIndex[i][e],delete this.outNeighborsIndex[i][e],delete this.allNeighborsIndex[i][e];return this})),u.addMethod("dropEdge",(function(e){if("string"!=typeof e&&"number"!=typeof e||1!==arguments.length)throw"dropEdge: Wrong arguments.";if(!this.edgesIndex[e])throw'The edge "'+e+'" does not exist.';var t,i,n;for(n=this.edgesIndex[e],delete this.edgesIndex[e],t=0,i=this.edgesArray.length;t<i;t++)if(this.edgesArray[t].id===e){this.edgesArray.splice(t,1);break}return delete this.inNeighborsIndex[n.target][n.source][n.id],Object.keys(this.inNeighborsIndex[n.target][n.source]).length||delete this.inNeighborsIndex[n.target][n.source],delete this.outNeighborsIndex[n.source][n.target][n.id],Object.keys(this.outNeighborsIndex[n.source][n.target]).length||delete this.outNeighborsIndex[n.source][n.target],delete this.allNeighborsIndex[n.source][n.target][n.id],Object.keys(this.allNeighborsIndex[n.source][n.target]).length||delete this.allNeighborsIndex[n.source][n.target],n.target!==n.source&&(delete this.allNeighborsIndex[n.target][n.source][n.id],Object.keys(this.allNeighborsIndex[n.target][n.source]).length||delete this.allNeighborsIndex[n.target][n.source]),this.inNeighborsCount[n.target]--,this.outNeighborsCount[n.source]--,this.allNeighborsCount[n.source]--,this.allNeighborsCount[n.target]--,this})),u.addMethod("kill",(function(){this.nodesArray.length=0,this.edgesArray.length=0,delete this.nodesArray,delete this.edgesArray,delete this.nodesIndex,delete this.edgesIndex,delete this.inNeighborsIndex,delete this.outNeighborsIndex,delete this.allNeighborsIndex,delete this.inNeighborsCount,delete this.outNeighborsCount,delete this.allNeighborsCount})),u.addMethod("clear",(function(){return this.nodesArray.length=0,this.edgesArray.length=0,g(this.nodesIndex),g(this.edgesIndex),g(this.nodesIndex),g(this.inNeighborsIndex),g(this.outNeighborsIndex),g(this.allNeighborsIndex),g(this.inNeighborsCount),g(this.outNeighborsCount),g(this.allNeighborsCount),this})),u.addMethod("read",(function(e){var t,i,n;for(t=0,n=(i=e.nodes||[]).length;t<n;t++)this.addNode(i[t]);for(t=0,n=(i=e.edges||[]).length;t<n;t++)this.addEdge(i[t]);return this})),u.addMethod("nodes",(function(e){if(!arguments.length)return this.nodesArray.slice(0);if(1===arguments.length&&("string"==typeof e||"number"==typeof e))return this.nodesIndex[e];if(1===arguments.length&&"[object Array]"===Object.prototype.toString.call(e)){var t,i,n=[];for(t=0,i=e.length;t<i;t++){if("string"!=typeof e[t]&&"number"!=typeof e[t])throw"nodes: Wrong arguments.";n.push(this.nodesIndex[e[t]])}return n}throw"nodes: Wrong arguments."})),u.addMethod("degree",(function(e,t){if(t={in:this.inNeighborsCount,out:this.outNeighborsCount}[t||""]||this.allNeighborsCount,"string"==typeof e||"number"==typeof e)return t[e];if("[object Array]"===Object.prototype.toString.call(e)){var i,n,r=[];for(i=0,n=e.length;i<n;i++){if("string"!=typeof e[i]&&"number"!=typeof e[i])throw"degree: Wrong arguments.";r.push(t[e[i]])}return r}throw"degree: Wrong arguments."})),u.addMethod("edges",(function(e){if(!arguments.length)return this.edgesArray.slice(0);if(1===arguments.length&&("string"==typeof e||"number"==typeof e))return this.edgesIndex[e];if(1===arguments.length&&"[object Array]"===Object.prototype.toString.call(e)){var t,i,n=[];for(t=0,i=e.length;t<i;t++){if("string"!=typeof e[t]&&"number"!=typeof e[t])throw"edges: Wrong arguments.";n.push(this.edgesIndex[e[t]])}return n}throw"edges: Wrong arguments."})),"undefined"!=typeof sigma?(sigma.classes=sigma.classes||Object.create(null),sigma.classes.graph=u):(e.exports&&(t=e.exports=u),t.graph=u)}).call(this)}).call(window)},124:function(e,t){(function(){(function(e){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.classes"),sigma.classes.camera=function(e,t,i,n){sigma.classes.dispatcher.extend(this),Object.defineProperty(this,"graph",{value:t}),Object.defineProperty(this,"id",{value:e}),Object.defineProperty(this,"readPrefix",{value:"read_cam"+e+":"}),Object.defineProperty(this,"prefix",{value:"cam"+e+":"}),this.x=0,this.y=0,this.ratio=1,this.angle=0,this.isAnimated=!1,this.settings="object"==typeof n&&n?i.embedObject(n):i},sigma.classes.camera.prototype.goTo=function(t){if(!this.settings("enableCamera"))return this;var i,n,r=t||{},o=["x","y","ratio","angle"];for(i=0,n=o.length;i<n;i++)if(r[o[i]]!==e){if("number"!=typeof r[o[i]]||isNaN(r[o[i]]))throw'Value for "'+o[i]+'" is not a number.';this[o[i]]=r[o[i]]}return this.dispatchEvent("coordinatesUpdated"),this},sigma.classes.camera.prototype.applyView=function(t,i,n){n=n||{},i=i!==e?i:this.prefix,t=t!==e?t:this.readPrefix;var r,o,s,a=n.nodes||this.graph.nodes(),l=n.edges||this.graph.edges(),d=Math.cos(this.angle)/this.ratio,u=Math.sin(this.angle)/this.ratio,c=Math.pow(this.ratio,this.settings("nodesPowRatio")),g=Math.pow(this.ratio,this.settings("edgesPowRatio")),h=(n.width||0)/2-this.x*d-this.y*u,f=(n.height||0)/2-this.y*d+this.x*u;for(r=0,o=a.length;r<o;r++)(s=a[r])[i+"x"]=(s[t+"x"]||0)*d+(s[t+"y"]||0)*u+h,s[i+"y"]=(s[t+"y"]||0)*d-(s[t+"x"]||0)*u+f,s[i+"size"]=(s[t+"size"]||0)/c;for(r=0,o=l.length;r<o;r++)l[r][i+"size"]=(l[r][t+"size"]||0)/g;return this},sigma.classes.camera.prototype.graphPosition=function(e,t,i){var n=0,r=0,o=Math.cos(this.angle),s=Math.sin(this.angle);return i||(n=-(this.x*o+this.y*s)/this.ratio,r=-(this.y*o-this.x*s)/this.ratio),{x:(e*o+t*s)/this.ratio+n,y:(t*o-e*s)/this.ratio+r}},sigma.classes.camera.prototype.cameraPosition=function(e,t,i){var n=0,r=0,o=Math.cos(this.angle),s=Math.sin(this.angle);return i||(n=-(this.x*o+this.y*s)/this.ratio,r=-(this.y*o-this.x*s)/this.ratio),{x:((e-n)*o-(t-r)*s)*this.ratio,y:((t-r)*o+(e-n)*s)*this.ratio}},sigma.classes.camera.prototype.getMatrix=function(){var e=sigma.utils.matrices.scale(1/this.ratio),t=sigma.utils.matrices.rotation(this.angle),i=sigma.utils.matrices.translation(-this.x,-this.y);return sigma.utils.matrices.multiply(i,sigma.utils.matrices.multiply(t,e))},sigma.classes.camera.prototype.getRectangle=function(e,t){var i=this.cameraPosition(e,0,!0),n=this.cameraPosition(0,t,!0),r=this.cameraPosition(e/2,t/2,!0),o=this.cameraPosition(e/4,0,!0).x,s=this.cameraPosition(0,t/4,!0).y;return{x1:this.x-r.x-o,y1:this.y-r.y-s,x2:this.x-r.x+o+i.x,y2:this.y-r.y-s+i.y,height:Math.sqrt(Math.pow(n.x,2)+Math.pow(n.y+2*s,2))}}}).call(this)}).call(window)},125:function(e,t,i){(function(){(function(i){"use strict";var n={pointToSquare:function(e){return{x1:e.x-e.size,y1:e.y-e.size,x2:e.x+e.size,y2:e.y-e.size,height:2*e.size}},isAxisAligned:function(e){return e.x1===e.x2||e.y1===e.y2},axisAlignedTopPoints:function(e){return e.y1===e.y2&&e.x1<e.x2?e:e.x1===e.x2&&e.y2>e.y1?{x1:e.x1-e.height,y1:e.y1,x2:e.x1,y2:e.y1,height:e.height}:e.x1===e.x2&&e.y2<e.y1?{x1:e.x1,y1:e.y2,x2:e.x2+e.height,y2:e.y2,height:e.height}:{x1:e.x2,y1:e.y1-e.height,x2:e.x1,y2:e.y1-e.height,height:e.height}},lowerLeftCoor:function(e){var t=Math.sqrt(Math.pow(e.x2-e.x1,2)+Math.pow(e.y2-e.y1,2));return{x:e.x1-(e.y2-e.y1)*e.height/t,y:e.y1+(e.x2-e.x1)*e.height/t}},lowerRightCoor:function(e,t){return{x:t.x-e.x1+e.x2,y:t.y-e.y1+e.y2}},rectangleCorners:function(e){var t=this.lowerLeftCoor(e),i=this.lowerRightCoor(e,t);return[{x:e.x1,y:e.y1},{x:e.x2,y:e.y2},{x:t.x,y:t.y},{x:i.x,y:i.y}]},splitSquare:function(e){return[[{x:e.x,y:e.y},{x:e.x+e.width/2,y:e.y},{x:e.x,y:e.y+e.height/2},{x:e.x+e.width/2,y:e.y+e.height/2}],[{x:e.x+e.width/2,y:e.y},{x:e.x+e.width,y:e.y},{x:e.x+e.width/2,y:e.y+e.height/2},{x:e.x+e.width,y:e.y+e.height/2}],[{x:e.x,y:e.y+e.height/2},{x:e.x+e.width/2,y:e.y+e.height/2},{x:e.x,y:e.y+e.height},{x:e.x+e.width/2,y:e.y+e.height}],[{x:e.x+e.width/2,y:e.y+e.height/2},{x:e.x+e.width,y:e.y+e.height/2},{x:e.x+e.width/2,y:e.y+e.height},{x:e.x+e.width,y:e.y+e.height}]]},axis:function(e,t){return[{x:e[1].x-e[0].x,y:e[1].y-e[0].y},{x:e[1].x-e[3].x,y:e[1].y-e[3].y},{x:t[0].x-t[2].x,y:t[0].y-t[2].y},{x:t[0].x-t[1].x,y:t[0].y-t[1].y}]},projection:function(e,t){var i=(e.x*t.x+e.y*t.y)/(Math.pow(t.x,2)+Math.pow(t.y,2));return{x:i*t.x,y:i*t.y}},axisCollision:function(e,t,i){for(var n=[],r=[],o=0;o<4;o++){var s=this.projection(t[o],e),a=this.projection(i[o],e);n.push(s.x*e.x+s.y*e.y),r.push(a.x*e.x+a.y*e.y)}var l=Math.max.apply(Math,n),d=Math.max.apply(Math,r),u=Math.min.apply(Math,n);return Math.min.apply(Math,r)<=l&&d>=u},collision:function(e,t){for(var i=this.axis(e,t),n=!0,r=0;r<4;r++)n=n&&this.axisCollision(i[r],e,t);return n}};function r(e,t){for(var i=[],n=0;n<4;n++)e.x2>=t[n][0].x&&e.x1<=t[n][1].x&&e.y1+e.height>=t[n][0].y&&e.y1<=t[n][2].y&&i.push(n);return i}function o(e,t){for(var i=[],r=0;r<4;r++)n.collision(e,t[r])&&i.push(r);return i}function s(e,t){var i,n,r=t.level+1,o=Math.round(t.bounds.width/2),s=Math.round(t.bounds.height/2),a=Math.round(t.bounds.x),d=Math.round(t.bounds.y);switch(e){case 0:i=a,n=d;break;case 1:i=a+o,n=d;break;case 2:i=a,n=d+s;break;case 3:i=a+o,n=d+s}return l({x:i,y:n,width:o,height:s},r,t.maxElements,t.maxLevel)}function a(e,t,n){if(n.level<n.maxLevel)for(var o=r(t,n.corners),l=0,d=o.length;l<d;l++)n.nodes[o[l]]===i&&(n.nodes[o[l]]=s(o[l],n)),a(e,t,n.nodes[o[l]]);else n.elements.push(e)}function l(e,t,i,r){return{level:t||0,bounds:e,corners:n.splitSquare(e),maxElements:i||20,maxLevel:r||4,elements:[],nodes:[]}}var d=function(){this._geom=n,this._tree=null,this._cache={query:!1,result:!1}};d.prototype.index=function(e,t){if(!t.bounds)throw"sigma.classes.quad.index: bounds information not given.";var i=t.prefix||"";this._tree=l(t.bounds,0,t.maxElements,t.maxLevel);for(var r=0,o=e.length;r<o;r++)a(e[r],n.pointToSquare({x:e[r][i+"x"],y:e[r][i+"y"],size:e[r][i+"size"]}),this._tree);return this._cache={query:!1,result:!1},this._tree},d.prototype.point=function(e,t){return this._tree&&function e(t,n){if(n.level<n.maxLevel){var r=function(e,t){var i=t.x+t.width/2,n=t.y+t.height/2,r=e.y<n,o=e.x<i;return r?o?0:1:o?2:3}(t,n.bounds);return n.nodes[r]!==i?e(t,n.nodes[r]):[]}return n.elements}({x:e,y:t},this._tree)||[]},d.prototype.area=function(e){var t,s,a=JSON.stringify(e);if(this._cache.query===a)return this._cache.result;n.isAxisAligned(e)?(t=r,s=n.axisAlignedTopPoints(e)):(t=o,s=n.rectangleCorners(e));var l=this._tree?function e(t,n,r,o){if(o=o||{},n.level<n.maxLevel)for(var s=r(t,n.corners),a=0,l=s.length;a<l;a++)n.nodes[s[a]]!==i&&e(t,n.nodes[s[a]],r,o);else for(var d=0,u=n.elements.length;d<u;d++)o[n.elements[d].id]===i&&(o[n.elements[d].id]=n.elements[d]);return o}(s,this._tree,t):[],d=[];for(var u in l)d.push(l[u]);return this._cache.query=a,this._cache.result=d,d},void 0!==this.sigma?(this.sigma.classes=this.sigma.classes||{},this.sigma.classes.quad=d):(e.exports&&(t=e.exports=d),t.quad=d)}).call(this)}).call(window)},126:function(e,t,i){(function(){(function(i){"use strict";var n={pointToSquare:function(e){return{x1:e.x-e.size,y1:e.y-e.size,x2:e.x+e.size,y2:e.y-e.size,height:2*e.size}},lineToSquare:function(e){return e.y1<e.y2?e.x1<e.x2?{x1:e.x1-e.size,y1:e.y1-e.size,x2:e.x2+e.size,y2:e.y1-e.size,height:e.y2-e.y1+2*e.size}:{x1:e.x2-e.size,y1:e.y1-e.size,x2:e.x1+e.size,y2:e.y1-e.size,height:e.y2-e.y1+2*e.size}:e.x1<e.x2?{x1:e.x1-e.size,y1:e.y2-e.size,x2:e.x2+e.size,y2:e.y2-e.size,height:e.y1-e.y2+2*e.size}:{x1:e.x2-e.size,y1:e.y2-e.size,x2:e.x1+e.size,y2:e.y2-e.size,height:e.y1-e.y2+2*e.size}},quadraticCurveToSquare:function(e,t){var i=sigma.utils.getPointOnQuadraticCurve(.5,e.x1,e.y1,e.x2,e.y2,t.x,t.y),n=Math.min(e.x1,e.x2,i.x),r=Math.max(e.x1,e.x2,i.x),o=Math.min(e.y1,e.y2,i.y),s=Math.max(e.y1,e.y2,i.y);return{x1:n-e.size,y1:o-e.size,x2:r+e.size,y2:o-e.size,height:s-o+2*e.size}},selfLoopToSquare:function(e){var t=sigma.utils.getSelfLoopControlPoints(e.x,e.y,e.size),i=Math.min(e.x,t.x1,t.x2),n=Math.max(e.x,t.x1,t.x2),r=Math.min(e.y,t.y1,t.y2),o=Math.max(e.y,t.y1,t.y2);return{x1:i-e.size,y1:r-e.size,x2:n+e.size,y2:r-e.size,height:o-r+2*e.size}},isAxisAligned:function(e){return e.x1===e.x2||e.y1===e.y2},axisAlignedTopPoints:function(e){return e.y1===e.y2&&e.x1<e.x2?e:e.x1===e.x2&&e.y2>e.y1?{x1:e.x1-e.height,y1:e.y1,x2:e.x1,y2:e.y1,height:e.height}:e.x1===e.x2&&e.y2<e.y1?{x1:e.x1,y1:e.y2,x2:e.x2+e.height,y2:e.y2,height:e.height}:{x1:e.x2,y1:e.y1-e.height,x2:e.x1,y2:e.y1-e.height,height:e.height}},lowerLeftCoor:function(e){var t=Math.sqrt(Math.pow(e.x2-e.x1,2)+Math.pow(e.y2-e.y1,2));return{x:e.x1-(e.y2-e.y1)*e.height/t,y:e.y1+(e.x2-e.x1)*e.height/t}},lowerRightCoor:function(e,t){return{x:t.x-e.x1+e.x2,y:t.y-e.y1+e.y2}},rectangleCorners:function(e){var t=this.lowerLeftCoor(e),i=this.lowerRightCoor(e,t);return[{x:e.x1,y:e.y1},{x:e.x2,y:e.y2},{x:t.x,y:t.y},{x:i.x,y:i.y}]},splitSquare:function(e){return[[{x:e.x,y:e.y},{x:e.x+e.width/2,y:e.y},{x:e.x,y:e.y+e.height/2},{x:e.x+e.width/2,y:e.y+e.height/2}],[{x:e.x+e.width/2,y:e.y},{x:e.x+e.width,y:e.y},{x:e.x+e.width/2,y:e.y+e.height/2},{x:e.x+e.width,y:e.y+e.height/2}],[{x:e.x,y:e.y+e.height/2},{x:e.x+e.width/2,y:e.y+e.height/2},{x:e.x,y:e.y+e.height},{x:e.x+e.width/2,y:e.y+e.height}],[{x:e.x+e.width/2,y:e.y+e.height/2},{x:e.x+e.width,y:e.y+e.height/2},{x:e.x+e.width/2,y:e.y+e.height},{x:e.x+e.width,y:e.y+e.height}]]},axis:function(e,t){return[{x:e[1].x-e[0].x,y:e[1].y-e[0].y},{x:e[1].x-e[3].x,y:e[1].y-e[3].y},{x:t[0].x-t[2].x,y:t[0].y-t[2].y},{x:t[0].x-t[1].x,y:t[0].y-t[1].y}]},projection:function(e,t){var i=(e.x*t.x+e.y*t.y)/(Math.pow(t.x,2)+Math.pow(t.y,2));return{x:i*t.x,y:i*t.y}},axisCollision:function(e,t,i){for(var n=[],r=[],o=0;o<4;o++){var s=this.projection(t[o],e),a=this.projection(i[o],e);n.push(s.x*e.x+s.y*e.y),r.push(a.x*e.x+a.y*e.y)}var l=Math.max.apply(Math,n),d=Math.max.apply(Math,r),u=Math.min.apply(Math,n);return Math.min.apply(Math,r)<=l&&d>=u},collision:function(e,t){for(var i=this.axis(e,t),n=!0,r=0;r<4;r++)n=n&&this.axisCollision(i[r],e,t);return n}};function r(e,t){for(var i=[],n=0;n<4;n++)e.x2>=t[n][0].x&&e.x1<=t[n][1].x&&e.y1+e.height>=t[n][0].y&&e.y1<=t[n][2].y&&i.push(n);return i}function o(e,t){for(var i=[],r=0;r<4;r++)n.collision(e,t[r])&&i.push(r);return i}function s(e,t){var i,n,r=t.level+1,o=Math.round(t.bounds.width/2),s=Math.round(t.bounds.height/2),a=Math.round(t.bounds.x),d=Math.round(t.bounds.y);switch(e){case 0:i=a,n=d;break;case 1:i=a+o,n=d;break;case 2:i=a,n=d+s;break;case 3:i=a+o,n=d+s}return l({x:i,y:n,width:o,height:s},r,t.maxElements,t.maxLevel)}function a(e,t,n){if(n.level<n.maxLevel)for(var o=r(t,n.corners),l=0,d=o.length;l<d;l++)n.nodes[o[l]]===i&&(n.nodes[o[l]]=s(o[l],n)),a(e,t,n.nodes[o[l]]);else n.elements.push(e)}function l(e,t,i,r){return{level:t||0,bounds:e,corners:n.splitSquare(e),maxElements:i||40,maxLevel:r||8,elements:[],nodes:[]}}var d=function(){this._geom=n,this._tree=null,this._cache={query:!1,result:!1},this._enabled=!0};d.prototype.index=function(e,t){if(!this._enabled)return this._tree;if(!t.bounds)throw"sigma.classes.edgequad.index: bounds information not given.";var i,r,o,s,d,u=t.prefix||"";this._tree=l(t.bounds,0,t.maxElements,t.maxLevel);for(var c=e.edges(),g=0,h=c.length;g<h;g++)r=e.nodes(c[g].source),o=e.nodes(c[g].target),d={x1:r[u+"x"],y1:r[u+"y"],x2:o[u+"x"],y2:o[u+"y"],size:c[g][u+"size"]||0},"curve"===c[g].type||"curvedArrow"===c[g].type?r.id===o.id?(s={x:r[u+"x"],y:r[u+"y"],size:r[u+"size"]||0},a(c[g],n.selfLoopToSquare(s),this._tree)):(i=sigma.utils.getQuadraticControlPoint(d.x1,d.y1,d.x2,d.y2),a(c[g],n.quadraticCurveToSquare(d,i),this._tree)):a(c[g],n.lineToSquare(d),this._tree);return this._cache={query:!1,result:!1},this._tree},d.prototype.point=function(e,t){return this._enabled&&this._tree&&function e(t,n){if(n.level<n.maxLevel){var r=function(e,t){var i=t.x+t.width/2,n=t.y+t.height/2,r=e.y<n,o=e.x<i;return r?o?0:1:o?2:3}(t,n.bounds);return n.nodes[r]!==i?e(t,n.nodes[r]):[]}return n.elements}({x:e,y:t},this._tree)||[]},d.prototype.area=function(e){if(!this._enabled)return[];var t,s,a=JSON.stringify(e);if(this._cache.query===a)return this._cache.result;n.isAxisAligned(e)?(t=r,s=n.axisAlignedTopPoints(e)):(t=o,s=n.rectangleCorners(e));var l=this._tree?function e(t,n,r,o){if(o=o||{},n.level<n.maxLevel)for(var s=r(t,n.corners),a=0,l=s.length;a<l;a++)n.nodes[s[a]]!==i&&e(t,n.nodes[s[a]],r,o);else for(var d=0,u=n.elements.length;d<u;d++)o[n.elements[d].id]===i&&(o[n.elements[d].id]=n.elements[d]);return o}(s,this._tree,t):[],d=[];for(var u in l)d.push(l[u]);return this._cache.query=a,this._cache.result=d,d},void 0!==this.sigma?(this.sigma.classes=this.sigma.classes||{},this.sigma.classes.edgequad=d):(e.exports&&(t=e.exports=d),t.edgequad=d)}).call(this)}).call(window)},127:function(e,t){(function(){(function(e){"use strict";if("undefined"==typeof sigma)throw"sigma is not declared";sigma.utils.pkg("sigma.captors"),sigma.captors.mouse=function(e,t,i){var n,r,o,s,a,l,d,u,c,g,h,f=this,p=e,m=t,y=i;function v(e){var t,i,g;if(y("mouseEnabled")&&(f.dispatchEvent("mousemove",sigma.utils.mouseCoords(e)),d))return u=!0,c=!0,h&&clearTimeout(h),h=setTimeout((function(){u=!1}),y("dragTimeout")),sigma.misc.animation.killAll(m),m.isMoving=!0,g=m.cameraPosition(sigma.utils.getX(e)-a,sigma.utils.getY(e)-l,!0),t=n-g.x,i=r-g.y,t===m.x&&i===m.y||(o=m.x,s=m.y,m.goTo({x:t,y:i})),e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation(),!1}function b(e){if(y("mouseEnabled")&&d){d=!1,h&&clearTimeout(h),m.isMoving=!1;var t=sigma.utils.getX(e),i=sigma.utils.getY(e);u?(sigma.misc.animation.killAll(m),sigma.misc.animation.camera(m,{x:m.x+y("mouseInertiaRatio")*(m.x-o),y:m.y+y("mouseInertiaRatio")*(m.y-s)},{easing:"quadraticOut",duration:y("mouseInertiaDuration")})):a===t&&l===i||m.g