Beruflich Dokumente
Kultur Dokumente
:c.p.drawEdges,c.p.auto?2:c.p.drawLabels,!0)}).bind("mousedown mouseup",function
(a){var b=c.graph.nodes.filter(function(a){return!!a.hover}).map(function(a){ret
urn a.id});c.dispatch("mousedown"==
a.type?"downgraph":"upgraph");b.length&&c.dispatch("mousedown"==a.type?"downnode
s":"upnodes",b)}).bind("move",function(){c.domElements.hover.getContext("2d").cl
earRect(0,0,c.domElements.hover.width,c.domElements.hover.height);a();l()});sigm
a.chronos.bind("startgenerators",function(){sigma.chronos.getGeneratorsIDs().som
e(function(a){return!!a.match(RegExp("_ext_"+c.id+"$",""))})&&c.draw(c.p.auto?2:
c.p.drawNodes,c.p.auto?0:c.p.drawEdges,c.p.auto?2:c.p.drawLabels)}).bind("stopge
nerators",function(){c.draw()});
for(var s=0;s<C.plugins.length;s++)C.plugins[s](this);this.draw=function(a,b,d,h
){if(h&&sigma.chronos.getGeneratorsIDs().some(function(a){return!!a.match(RegExp
("_ext_"+c.id+"$",""))}))return c;a=void 0==a?c.p.drawNodes:a;b=void 0==b?c.p.dr
awEdges:b;d=void 0==d?c.p.drawLabels:d;h={nodes:a,edges:b,labels:d};c.p.lastNode
s=a;c.p.lastEdges=b;c.p.lastLabels=d;f();c.graph.rescale(c.width,c.height,0<a,0<
b).setBorders();c.mousecaptor.checkBorders(c.graph.borders,c.width,c.height);c.g
raph.translate(c.mousecaptor.stageX,
c.mousecaptor.stageY,c.mousecaptor.ratio,0<a,0<b);c.dispatch("graphscaled");for(
var l in c.domElements)"canvas"==c.domElements[l].nodeName.toLowerCase()&&(void
0==h[l]||0<=h[l])&&c.domElements[l].getContext("2d").clearRect(0,0,c.domElements
[l].width,c.domElements[l].height);c.plotter.currentEdgeIndex=0;c.plotter.curren
tNodeIndex=0;c.plotter.currentLabelIndex=0;l=null;h=!1;if(a)if(1<a)for(;c.plotte
r.task_drawNode(););else sigma.chronos.addTask(c.plotter.task_drawNode,"node_"+c
.id,!1),h=!0,l="node_"+
c.id;if(d)if(1<d)for(;c.plotter.task_drawLabel(););else l?sigma.chronos.queueTas
k(c.plotter.task_drawLabel,"label_"+c.id,l):sigma.chronos.addTask(c.plotter.task
_drawLabel,"label_"+c.id,!1),h=!0,l="label_"+c.id;if(b)if(1<b)for(;c.plotter.tas
k_drawEdge(););else l?sigma.chronos.queueTask(c.plotter.task_drawEdge,"edge_"+c.
id,l):sigma.chronos.addTask(c.plotter.task_drawEdge,"edge_"+c.id,!1),h=!0,l="edg
e_"+c.id;c.dispatch("draw");c.refresh();h&&sigma.chronos.runTasks();return c};th
is.resize=function(a,
b){var d=c.width,h=c.height;void 0!=a&&void 0!=b?(c.width=a,c.height=b):(c.width
=c.domRoot.offsetWidth,c.height=c.domRoot.offsetHeight);if(d!=c.width||h!=c.heig
ht){for(var l in c.domElements)c.domElements[l].setAttribute("width",c.width+"px
"),c.domElements[l].setAttribute("height",c.height+"px");c.plotter.resize(c.widt
h,c.height);c.draw(c.p.lastNodes,c.p.lastEdges,c.p.lastLabels,!0)}return c};this
.refresh=function(){c.domElements.hover.getContext("2d").clearRect(0,0,c.domElem
ents.hover.width,c.domElements.hover.height);
a();l();return c};this.drawHover=a;this.drawActive=l;this.clearSchedule=f;window
.addEventListener("resize",function(){c.resize()})}function n(d){var p=this;sigm
a.classes.EventDispatcher.call(this);this._core=d;this.kill=function(){};this.ge
tID=function(){return d.id};this.configProperties=function(f,b){var a=d.config(f
,b);return a==d?p:a};this.drawingProperties=function(f,b){var a=d.plotter.config
(f,b);return a==d.plotter?p:a};this.mouseProperties=function(f,b){var a=d.mousec
aptor.config(f,b);return a==
d.mousecaptor?p:a};this.graphProperties=function(f,b){var a=d.graph.config(f,b);
return a==d.graph?p:a};this.getMouse=function(){return{mouseX:d.mousecaptor.mous
eX,mouseY:d.mousecaptor.mouseY,down:d.mousecaptor.isMouseDown}};this.position=fu
nction(f,b,a){if(0==arguments.length)return{stageX:d.mousecaptor.stageX,stageY:d
.mousecaptor.stageY,ratio:d.mousecaptor.ratio};d.mousecaptor.stageX=void 0!=f?f:
d.mousecaptor.stageX;d.mousecaptor.stageY=void 0!=b?b:d.mousecaptor.stageY;d.mou
secaptor.ratio=void 0!=
a?a:d.mousecaptor.ratio;return p};this.goTo=function(f,b,a){d.mousecaptor.interp
olate(f,b,a);return p};this.zoomTo=function(f,b,a){a=Math.min(Math.max(d.mouseca
ptor.config("minRatio"),a),d.mousecaptor.config("maxRatio"));a==d.mousecaptor.ra
tio?d.mousecaptor.interpolate(f-d.width/2+d.mousecaptor.stageX,b-d.height/2+d.mo
usecaptor.stageY):d.mousecaptor.interpolate((a*f-d.mousecaptor.ratio*d.width/2)/
(a-d.mousecaptor.ratio),(a*b-d.mousecaptor.ratio*d.height/2)/(a-d.mousecaptor.ra
tio),a);return p};this.resize=
function(f,b){d.resize(f,b);return p};this.draw=function(f,b,a,l){d.draw(f,b,a,l
:{"Time (ms)":sigma.chronos.getExecutionTime,Queue:sigma.chronos.getQueuedTasksC
ount,Tasks:sigma.chronos.getTasksCount,
FPS:sigma.chronos.getFPS},localProbes:{"Nodes count":function(){return b.instanc
e.graph.nodes.length},"Edges count":function(){return b.instance.graph.edges.len
gth}}};this.activate=function(){b.monitoring||(b.monitoring=window.setInterval(f
,1E3/b.p.fps));return b};this.desactivate=function(){b.monitoring&&(window.clear
Interval(b.monitoring),b.monitoring=null,b.p.dom.innerHTML="");return b}}functio
n q(d,p,f,b,a,l,c){function s(a){var c=b,d="fixed"==h.p.labelSize?h.p.defaultLab
elSize:h.p.labelSizeRatio*
a.displaySize;c.font=(h.p.hoverFontStyle||h.p.fontStyle||"")+" "+d+"px "+(h.p.ho
verFont||h.p.font||"");c.fillStyle="node"==h.p.labelHoverBGColor?a.color||h.p.de
faultNodeColor:h.p.defaultHoverLabelBGColor;c.beginPath();h.p.labelHoverShadow&&
(c.shadowOffsetX=0,c.shadowOffsetY=0,c.shadowBlur=4,c.shadowColor=h.p.labelHover
ShadowColor);sigma.tools.drawRoundRect(c,Math.round(a.displayX-d/2-2),Math.round
(a.displayY-d/2-2),Math.round(c.measureText(a.label).width+1.5*a.displaySize+d/2
+4),Math.round(d+4),Math.round(d/
2+2),"left");c.closePath();c.fill();c.shadowOffsetX=0;c.shadowOffsetY=0;c.shadow
Blur=0;c.beginPath();c.fillStyle="node"==h.p.nodeBorderColor?a.color||h.p.defaul
tNodeColor:h.p.defaultNodeBorderColor;c.arc(Math.round(a.displayX),Math.round(a.
displayY),a.displaySize+h.p.borderSize,0,2*Math.PI,!0);c.closePath();c.fill();c.
beginPath();c.fillStyle="node"==h.p.nodeHoverColor?a.color||h.p.defaultNodeColor
:h.p.defaultNodeHoverColor;c.arc(Math.round(a.displayX),Math.round(a.displayY),a
.displaySize,0,2*Math.PI,
!0);c.closePath();c.fill();c.fillStyle="node"==h.p.labelHoverColor?a.color||h.p.
defaultNodeColor:h.p.defaultLabelHoverColor;c.fillText(a.label,Math.round(a.disp
layX+1.5*a.displaySize),Math.round(a.displayY+d/2-3));return h}function g(a){if(
isNaN(a.x)||isNaN(a.y))throw Error("A node's coordinate is not a number (id: "+a
.id+")");return!a.hidden&&a.displayX+a.displaySize>-k/3&&a.displayX-a.displaySiz
e<4*k/3&&a.displayY+a.displaySize>-m/3&&a.displayY-a.displaySize<4*m/3}function
r(a,b){return b==a||"both"==
b||!b&&(h.p.defaultEdgeArrow==a||"both"==h.p.defaultEdgeArrow)}function y(a,b,c,
d,h,l){var f=b[0]-d,s=b[1]-h;c/=Math.sqrt(f*f+s*s);b[0]-=f*c;b[1]-=s*c;a.lineWid
th=0;a.fillStyle=a.strokeStyle;sigma.tools.drawArrowhead(a,b[0],b[1],l,sigma.too
ls.getIncidenceAngle(d,h,b[0],b[1]));return b}sigma.classes.Cascade.call(this);v
ar h=this;this.p={labelColor:"default",defaultLabelColor:"#000",labelHoverBGColo
r:"default",defaultHoverLabelBGColor:"#fff",labelHoverShadow:!0,labelHoverShadow
Color:"#000",labelHoverColor:"default",
defaultLabelHoverColor:"#000",labelActiveBGColor:"default",defaultActiveLabelBGC
olor:"#fff",labelActiveShadow:!0,labelActiveShadowColor:"#000",labelActiveColor:
"default",defaultLabelActiveColor:"#000",labelSize:"fixed",defaultLabelSize:12,l
abelSizeRatio:2,labelThreshold:6,font:"Arial",hoverFont:"",activeFont:"",fontSty
le:"",hoverFontStyle:"",activeFontStyle:"",edgeColor:"source",defaultEdgeColor:"
#aaa",defaultEdgeType:"line",defaultEdgeArrow:"none",defaultNodeColor:"#aaa",nod
eHoverColor:"node",defaultNodeHoverColor:"#fff",
nodeActiveColor:"node",defaultNodeActiveColor:"#fff",borderSize:0,nodeBorderColo
r:"node",defaultNodeBorderColor:"#fff",edgesSpeed:200,nodesSpeed:200,labelsSpeed
:200};var k=l,m=c;this.currentLabelIndex=this.currentNodeIndex=this.currentEdgeI
ndex=0;this.task_drawLabel=function(){for(var b=a.nodes.length,c=0;c++<h.p.label
sSpeed&&h.currentLabelIndex<b;)if(h.isOnScreen(a.nodes[h.currentLabelIndex])){va
r d=a.nodes[h.currentLabelIndex++],l=f;if(d.displaySize>=h.p.labelThreshold||d.f
orceLabel){var s="fixed"==
h.p.labelSize?h.p.defaultLabelSize:h.p.labelSizeRatio*d.displaySize;l.font=h.p.f
ontStyle+s+"px "+h.p.font;l.fillStyle="node"==h.p.labelColor?d.color||h.p.defaul
tNodeColor:h.p.defaultLabelColor;l.fillText(d.label,Math.round(d.displayX+1.5*d.
displaySize),Math.round(d.displayY+s/2-3))}}else h.currentLabelIndex++;return h.
currentLabelIndex<b};this.task_drawEdge=function(){for(var b=a.edges.length,c,d,
l=0;l++<h.p.edgesSpeed&&h.currentEdgeIndex<b;)if(e=a.edges[h.currentEdgeIndex],c
=e.source,d=e.target,
e.hidden||c.hidden||d.hidden||!h.isOnScreen(c)&&!h.isOnScreen(d))h.currentEdgeIn
dex++;else{c=a.edges[h.currentEdgeIndex++];d=[c.source.displayX,c.source.display
Y];var f=[c.target.displayX,c.target.displayY],s=c.color;if(!s)switch(h.p.edgeCo
lor){case "source":s=c.source.color||h.p.defaultNodeColor;break;case "target":s=
c.target.color||h.p.defaultNodeColor;break;default:s=h.p.defaultEdgeColor}var g=
p;switch(c.type||h.p.defaultEdgeType){case "curve":g.strokeStyle=s;var s=(d[0]+f
[0])/2+(f[1]-d[1])/4,
k=(d[1]+f[1])/2+(d[0]-f[0])/4;r("source",c.arrow)&&(d=y(g,d,c.source.displaySize
,s,k,c.arrowDisplaySize));r("target",c.arrow)&&(f=y(g,f,c.target.displaySize,s,k
,c.arrowDisplaySize));g.lineWidth=c.displaySize/3;g.beginPath();g.moveTo(d[0],d[
1]);g.quadraticCurveTo(s,k,f[0],f[1]);g.stroke();break;default:g.strokeStyle=s,r
("source",c.arrow)&&(d=y(g,d,c.source.displaySize,f[0],f[1],c.arrowDisplaySize))
,r("target",c.arrow)&&(f=y(g,f,c.target.displaySize,d[0],d[1],c.arrowDisplaySize
)),g.lineWidth=c.displaySize/
3,g.beginPath(),g.moveTo(d[0],d[1]),g.lineTo(f[0],f[1]),g.stroke()}}return h.cur
rentEdgeIndex<b};this.task_drawNode=function(){for(var b=a.nodes.length,c=0;c++<
h.p.nodesSpeed&&h.currentNodeIndex<b;)if(h.isOnScreen(a.nodes[h.currentNodeIndex
])){var l=a.nodes[h.currentNodeIndex++],f=Math.round(10*l.displaySize)/10,g=d;g.
fillStyle=l.color;g.beginPath();g.arc(l.displayX,l.displayY,f,0,2*Math.PI,!0);g.
closePath();g.fill();l.hover&&s(l)}else h.currentNodeIndex++;return h.currentNod
eIndex<b};this.drawActiveNode=
function(a){var c=b;if(!g(a))return h;var d="fixed"==h.p.labelSize?h.p.defaultLa
belSize:h.p.labelSizeRatio*a.displaySize;c.font=(h.p.activeFontStyle||h.p.fontSt
yle||"")+" "+d+"px "+(h.p.activeFont||h.p.font||"");c.fillStyle="node"==h.p.labe
lHoverBGColor?a.color||h.p.defaultNodeColor:h.p.defaultActiveLabelBGColor;c.begi
nPath();h.p.labelActiveShadow&&(c.shadowOffsetX=0,c.shadowOffsetY=0,c.shadowBlur
=4,c.shadowColor=h.p.labelActiveShadowColor);sigma.tools.drawRoundRect(c,Math.ro
und(a.displayX-d/2-2),
Math.round(a.displayY-d/2-2),Math.round(c.measureText(a.label).width+1.5*a.displ
aySize+d/2+4),Math.round(d+4),Math.round(d/2+2),"left");c.closePath();c.fill();c
.shadowOffsetX=0;c.shadowOffsetY=0;c.shadowBlur=0;c.beginPath();c.fillStyle="nod
e"==h.p.nodeBorderColor?a.color||h.p.defaultNodeColor:h.p.defaultNodeBorderColor
;c.arc(Math.round(a.displayX),Math.round(a.displayY),a.displaySize+h.p.borderSiz
e,0,2*Math.PI,!0);c.closePath();c.fill();c.beginPath();c.fillStyle="node"==h.p.n
odeActiveColor?a.color||
h.p.defaultNodeColor:h.p.defaultNodeActiveColor;c.arc(Math.round(a.displayX),Mat
h.round(a.displayY),a.displaySize,0,2*Math.PI,!0);c.closePath();c.fill();c.fillS
tyle="node"==h.p.labelActiveColor?a.color||h.p.defaultNodeColor:h.p.defaultLabel
ActiveColor;c.fillText(a.label,Math.round(a.displayX+1.5*a.displaySize),Math.rou
nd(a.displayY+d/2-3));return h};this.drawHoverNode=s;this.isOnScreen=g;this.resi
ze=function(a,c){k=a;m=c;return h}}function u(){function d(a){return{x:a.x,y:a.y
,size:a.size,degree:a.degree,
inDegree:a.inDegree,outDegree:a.outDegree,displayX:a.displayX,displayY:a.display
Y,displaySize:a.displaySize,label:a.label,id:a.id,color:a.color,fixed:a.fixed,ac
tive:a.active,hidden:a.hidden,forceLabel:a.forceLabel,attr:a.attr}}function g(a)
{return{source:a.source.id,target:a.target.id,size:a.size,type:a.type,arrow:a.ar
row,weight:a.weight,displaySize:a.displaySize,label:a.label,hidden:a.hidden,id:a
.id,attr:a.attr,color:a.color}}function f(){b.nodes=[];b.nodesIndex={};b.edges=[
];b.edgesIndex={};return b}
sigma.classes.Cascade.call(this);sigma.classes.EventDispatcher.call(this);var b=
this;this.p={minNodeSize:0,maxNodeSize:0,minEdgeSize:0,maxEdgeSize:0,scalingMode
:"inside",nodesPowRatio:0.5,edgesPowRatio:0,sideMargin:0,arrowRatio:3};this.bord
ers={};f();this.addNode=function(a,d){if(b.nodesIndex[a])throw Error('Node "'+a+
'" already exists.');d=d||{};var c={x:0,y:0,size:1,degree:0,inDegree:0,outDegree
:0,fixed:!1,active:!1,hidden:!1,forceLabel:!1,label:a.toString(),id:a.toString()
,attr:{}},f;for(f in d)switch(f){case "id":break;
case "x":case "y":case "size":c[f]=+d[f];break;case "fixed":case "active":case "
hidden":case "forceLabel":c[f]=!!d[f];break;case "color":case "label":c[f]=d[f];
break;default:c.attr[f]=d[f]}b.nodes.push(c);b.nodesIndex[a.toString()]=c;return
b};this.addEdge=function(a,d,c,f){if(b.edgesIndex[a])throw Error('Edge "'+a+'"
already exists.');if(!b.nodesIndex[d])throw Error("Edge's source \""+d+'" does n
ot exist yet.');if(!b.nodesIndex[c])throw Error("Edge's target \""+c+'" does not
exist yet.');f=f||{};
d={source:b.nodesIndex[d],target:b.nodesIndex[c],size:1,weight:1,displaySize:0.5
,label:a.toString(),id:a.toString(),hidden:!1,attr:{}};d.source.degree++;d.sourc
e.outDegree++;d.target.degree++;d.target.inDegree++;for(var g in f)switch(g){cas
e "id":case "source":case "target":break;case "hidden":d[g]=!!f[g];break;case "s
ize":case "weight":d[g]=+f[g];break;case "color":case "arrow":case "type":d[g]=f
[g].toString();break;case "label":d[g]=f[g];break;default:d.attr[g]=f[g]}b.edges
.push(d);b.edgesIndex[a.toString()]=
d;return b};this.dropNode=function(a){var d={};((a instanceof Array?a:[a])||[]).
forEach(function(a){b.nodesIndex[a]?d[a]=!0:sigma.log('Node "'+a+'" does not exi
st.')});var c=[];b.nodes.forEach(function(a,b){a.id in d&&(c.unshift(b),0==a.deg
ree&&delete d[a.id])});c.forEach(function(a){b.nodes.splice(a,1)});b.edges=b.edg
es.filter(function(a){return a.source.id in d?(delete b.edgesIndex[a.id],a.targe
t.degree--,a.target.inDegree--,!1):a.target.id in d?(delete b.edgesIndex[a.id],a
.source.degree--,a.source.outDegree--,
!1):!0});return b};this.dropEdge=function(a){((a instanceof Array?a:[a])||[]).fo
rEach(function(a){if(b.edgesIndex[a]){b.edgesIndex[a].source.degree--;b.edgesInd
ex[a].source.outDegree--;b.edgesIndex[a].target.degree--;b.edgesIndex[a].target.
inDegree--;var c=null;b.edges.some(function(b,d){return b.id==a?(c=d,!0):!1});nu
ll!=c&&b.edges.splice(c,1);delete b.edgesIndex[a]}else sigma.log('Edge "'+a+'" d
oes not exist.')});return b};this.iterEdges=function(a,d){var c=d?d.map(function
(a){return b.edgesIndex[a]}):
b.edges,f=c.map(g);f.forEach(a);c.forEach(function(a,c){var d=f[c],h;for(h in d)
switch(h){case "id":case "displaySize":break;case "weight":case "size":a[h]=+d[h
];break;case "source":case "target":a[h]=b.nodesIndex[h]||a[h];break;case "hidde
n":a[h]=!!d[h];break;case "color":case "label":case "arrow":case "type":a[h]=(d[
h]||"").toString();break;default:a.attr[h]=d[h]}});return b};this.iterNodes=func
tion(a,f){var c=f?f.map(function(a){return b.nodesIndex[a]}):b.nodes,g=c.map(d);
g.forEach(a);c.forEach(function(a,
c){var d=g[c],b;for(b in d)switch(b){case "id":case "attr":case "degree":case "i
nDegree":case "outDegree":case "displayX":case "displayY":case "displaySize":bre
ak;case "x":case "y":case "size":a[b]=+d[b];break;case "fixed":case "active":cas
e "hidden":case "forceLabel":a[b]=!!d[b];break;case "color":case "label":a[b]=(d
[b]||"").toString();break;default:a.attr[b]=d[b]}});return b};this.getEdges=func
tion(a){var d=((a instanceof Array?a:[a])||[]).map(function(a){return g(b.edgesI
ndex[a])});return a instanceof
Array?d:d[0]};this.getNodes=function(a){var f=((a instanceof Array?a:[a])||[]).m
ap(function(a){return d(b.nodesIndex[a])});return a instanceof Array?f:f[0]};thi
s.empty=f;this.rescale=function(a,d,c,f){var g=0,p=0;c&&b.nodes.forEach(function
(a){p=Math.max(a.size,p)});f&&b.edges.forEach(function(a){g=Math.max(a.size,g)})
;var p=p||1,g=g||1,k,h,m,n;c&&b.nodes.forEach(function(a){h=Math.max(a.x,h||a.x)
;k=Math.min(a.x,k||a.x);n=Math.max(a.y,n||a.y);m=Math.min(a.y,m||a.y)});var q="o
utside"==b.p.scalingMode?
Math.max(a/Math.max(h-k,1),d/Math.max(n-m,1)):Math.min(a/Math.max(h-k,1),d/Math.
max(n-m,1)),t=(b.p.maxNodeSize||p)/q+b.p.sideMargin;h+=t;k-=t;n+=t;m-=t;var q="o
utside"==b.p.scalingMode?Math.max(a/Math.max(h-k,1),d/Math.max(n-m,1)):Math.min(
a/Math.max(h-k,1),d/Math.max(n-m,1)),w,u;b.p.maxNodeSize||b.p.minNodeSize?b.p.ma
xNodeSize==b.p.minNodeSize?(w=0,u=b.p.maxNodeSize):(w=(b.p.maxNodeSize-b.p.minNo
deSize)/p,u=b.p.minNodeSize):(w=1,u=0);var A,E;b.p.maxEdgeSize||b.p.minEdgeSize?
(A=b.p.maxEdgeSize==b.p.minEdgeSize?
0:(b.p.maxEdgeSize-b.p.minEdgeSize)/g,E=b.p.minEdgeSize):(A=1,E=0);c&&b.nodes.fo
rEach(function(c){c.displaySize=c.size*w+u;c.fixed||(c.displayX=(c.x-(h+k)/2)*q+
a/2,c.displayY=(c.y-(n+m)/2)*q+d/2)});f&&b.edges.forEach(function(a){a.displaySi
ze=a.size*A+E});return b};this.translate=function(a,d,c,f,g){var p=Math.pow(c,b.
p.nodesPowRatio);f&&b.nodes.forEach(function(b){b.fixed||(b.displayX=b.displayX*
c+a,b.displayY=b.displayY*c+d);b.displaySize*=p});g&&b.edges.forEach(function(a)
{a.displaySize*=Math.pow(c,
b.p.edgesPowRatio);a.arrowDisplaySize=a.displaySize*b.p.arrowRatio*p});return b}
;this.setBorders=function(){b.borders={};b.nodes.forEach(function(a){b.borders.m
inX=Math.min(void 0==b.borders.minX?a.displayX-a.displaySize:b.borders.minX,a.di
splayX-a.displaySize);b.borders.maxX=Math.max(void 0==b.borders.maxX?a.displayX+
a.displaySize:b.borders.maxX,a.displayX+a.displaySize);b.borders.minY=Math.min(v
oid 0==b.borders.minY?a.displayY-a.displaySize:b.borders.minY,a.displayY-a.displ
aySize);b.borders.maxY=
Math.max(void 0==b.borders.maxY?a.displayY-a.displaySize:b.borders.maxY,a.displa
yY-a.displaySize)})};this.checkHover=function(a,d){var c,f,g,p=[],k=[];b.nodes.f
orEach(function(b){if(b.hidden)b.hover=!1;else{c=Math.abs(b.displayX-a);f=Math.a
bs(b.displayY-d);g=b.displaySize;var m=b.hover,n=c<g&&f<g&&Math.sqrt(c*c+f*f)<g;
m&&!n?(b.hover=!1,k.push(b.id)):n&&!m&&(b.hover=!0,p.push(b.id))}});p.length&&b.
dispatch("overnodes",p);k.length&&b.dispatch("outnodes",k);return b}}var t=0,C={
plugins:[]};sigma.init=
function(d){d=new k(d,(++t).toString());sigma.instances[t]=new n(d);return sigma
.instances[t]};sigma.debugMode=0;sigma.log=function(){if(1==sigma.debugMode)for(
var d in arguments)console.log(arguments[d]);else if(1<sigma.debugMode)for(d in
arguments)throw Error(arguments[d]);return sigma};sigma.tools.drawRoundRect=func
tion(d,g,f,b,a,l,c){l=l?l:0;var k=c?c:[],k="string"==typeof k?k.split(" "):k;c=l
&&(0<=k.indexOf("topleft")||0<=k.indexOf("top")||0<=k.indexOf("left"));var m=l&&
(0<=k.indexOf("topright")||
0<=k.indexOf("top")||0<=k.indexOf("right")),n=l&&(0<=k.indexOf("bottomleft")||0<
=k.indexOf("bottom")||0<=k.indexOf("left")),k=l&&(0<=k.indexOf("bottomright")||0
<=k.indexOf("bottom")||0<=k.indexOf("right"));d.moveTo(g,f+l);c?d.arcTo(g,f,g+l,
f,l):d.lineTo(g,f);m?(d.lineTo(g+b-l,f),d.arcTo(g+b,f,g+b,f+l,l)):d.lineTo(g+b,f
);k?(d.lineTo(g+b,f+a-l),d.arcTo(g+b,f+a,g+b-l,f+a,l)):d.lineTo(g+b,f+a);n?(d.li
neTo(g+l,f+a),d.arcTo(g,f+a,g,f+a-l,l)):d.lineTo(g,f+a);d.lineTo(g,f+l)};sigma.t
ools.drawArrowhead=function(d,
g,f,b,a){d.beginPath();d.moveTo(g,f);var k=g+Math.cos(0.017453292519943295*(22+a
))*b,c=f+Math.sin(0.017453292519943295*(22+a))*b,m=g+Math.cos(0.0174532925199432
95*(a-22))*b;b=f+Math.sin(0.017453292519943295*(a-22))*b;d.lineTo(k,c);d.quadrat
icCurveTo((g+k+m)/3,(f+c+b)/3,m,b);d.lineTo(g,f);d.fill()};sigma.tools.getRGB=fu
nction(d,g){d=d.toString();var f={r:0,g:0,b:0};if(3<=d.length&&"#"==d.charAt(0))
{var b=d.length-1;6==b?f={r:parseInt(d.charAt(1)+d.charAt(2),16),g:parseInt(d.ch
arAt(3)+d.charAt(4),16),
b:parseInt(d.charAt(5)+d.charAt(5),16)}:3==b&&(f={r:parseInt(d.charAt(1)+d.charA
t(1),16),g:parseInt(d.charAt(2)+d.charAt(2),16),b:parseInt(d.charAt(3)+d.charAt(
3),16)})}g&&(f=[f.r,f.g,f.b]);return f};sigma.tools.rgbToHex=function(d,g,f){ret
urn sigma.tools.toHex(d)+sigma.tools.toHex(g)+sigma.tools.toHex(f)};sigma.tools.
toHex=function(d){d=parseInt(d,10);if(isNaN(d))return"00";d=Math.max(0,Math.min(
d,255));return"0123456789ABCDEF".charAt((d-d%16)/16)+"0123456789ABCDEF".charAt(d
%16)};sigma.tools.getIncidenceAngle=
function(d,g,f,b){return(d<=f?180:0)+180*Math.atan((b-g)/(f-d))/Math.PI};sigma.c
hronos=new function(){function d(a){window.setTimeout(a,0);return r}function g()
{for(r.dispatch("frameinserted");q&&x.length&&f(););q&&x.length?(A=(new Date).ge
tTime(),u++,E=w-B,F=B-E,r.dispatch("insertframe"),d(g)):a()}function f(){D%=x.le
ngth;if(!x[D].task()){var a=x[D].taskName;z=z.filter(function(b){b.taskParent==a
&&x.push({taskName:b.taskName,task:b.task});return b.taskParent!=a});r.dispatch(
"killed",x.splice(D--,
1)[0])}D++;w=(new Date).getTime()-A;return w<=F}function b(){q=!0;u=D=0;C=A=(new
Date).getTime();r.dispatch("start");r.dispatch("insertframe");d(g);return r}fun
ction a(){r.dispatch("stop");q=!1;return r}function k(a,c,d){if("function"!=type
of a)throw Error('Task "'+c+'" is not a function');x.push({taskName:c,task:a});q
=!!(q||d&&b()||1);return r}function c(a){return a?Object.keys(v).filter(function
(a){return!!v[a].on}).length:Object.keys(v).length}function m(){Object.keys(v).l
ength?(r.dispatch("startgenerators"),
r.unbind("killed",n),d(function(){for(var a in v)v[a].on=!0,k(v[a].task,a,!1)}),
r.bind("killed",n).runTasks()):r.dispatch("stopgenerators");return r}function n(
a){void 0!=v[a.content.taskName]&&(v[a.content.taskName].del||!v[a.content.taskN
ame].condition()?delete v[a.content.taskName]:v[a.content.taskName].on=!1,0==c(!
0)&&m())}sigma.classes.EventDispatcher.call(this);var r=this,q=!1,h=80,t=0,u=0,B
=1E3/h,F=B,w=0,C=0,A=0,E=0,v={},x=[],z=[],D=0;this.frequency=function(a){return
void 0!=a?(h=Math.abs(1*
a),B=1E3/h,u=0,r):h};this.runTasks=b;this.stopTasks=a;this.insertFrame=d;this.ad
dTask=k;this.queueTask=function(a,b,c){if("function"!=typeof a)throw Error('Task
"'+b+'" is not a function');if(!x.concat(z).some(function(a){return a.taskName=
=c}))throw Error('Parent task "'+c+'" of "'+b+'" is not attached.');z.push({task
Parent:c,taskName:b,task:a});return r};this.removeTask=function(b,c){if(void 0==
b)x=[],1==c?z=[]:2==c&&(x=z,z=[]),a();else{var d="string"==typeof b?b:"";x=x.fil
ter(function(a){return("string"==
typeof b?a.taskName==b:a.task==b)?(d=a.taskName,!1):!0});0<c&&(z=z.filter(functi
on(a){1==c&&a.taskParent==d&&x.push(a);return a.taskParent!=d}))}q=!!(!x.length|
|a()&&0);return r};this.addGenerator=function(a,b,d){if(void 0!=v[a])return r;v[
a]={task:b,condition:d};0==c(!0)&&m();return r};this.removeGenerator=function(a)
{v[a]&&(v[a].on=!1,v[a].del=!0);return r};this.startGenerators=m;this.getGenerat
orsIDs=function(){return Object.keys(v)};this.getFPS=function(){q&&(t=Math.round
(1E4*(u/((new Date).getTime()C)))/10);return t};this.getTasksCount=function(){return x.length};this.getQueued
TasksCount=function(){return z.length};this.getExecutionTime=function(){return A
-C};return this};sigma.addPlugin=function(d,g,f){n.prototype[d]=g;C.plugins.push
(f)};sigma.easing={linear:{},quadratic:{}};sigma.easing.linear.easenone=function
(d){return d};sigma.easing.quadratic.easein=function(d){return d*d};sigma.easing
.quadratic.easeout=function(d){return-d*(d-2)};sigma.easing.quadratic.easeinout=
function(d){return 1>
(d*=2)?0.5*d*d:-0.5*(--d*(d-2)-1)};sigma.publicPrototype=n.prototype})();