!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.cola=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c||a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gh;){var i=b[h][g];i>0&&i1e-9)break;var n=this.offsetDir();for(d=0;d1&&o>p||!isFinite(p))for(d=0;d1&&(q=1);var r=p*p,s=2*q*(o-p)/(r*o),t=o*o*o,u=2*-q/(r*t);for(isFinite(s)||console.log(s),d=0;d0?A-(D+1)*w:A-(D-1)*w;-v0;)for(var e=b;e-- >0;)c(d,e)},a.prototype.matrixApply=function(b){a.mApply(this.k,this.n,b)},a.prototype.computeNextPosition=function(a,b){var c=this;this.computeDerivatives(a);var d=this.computeStepSize(this.g);if(this.stepAndProject(a,b,this.g,d),this.project){this.matrixApply(function(d,e){return c.e[d][e]=a[d][e]-b[d][e]});var e=this.computeStepSize(this.e);e=Math.max(.2,Math.min(e,1)),this.stepAndProject(a,b,this.e,e)}},a.prototype.run=function(a){for(var b=Number.MAX_VALUE,c=!1;!c&&a-- >0;){var d=this.rungeKutta();c=Math.abs(b/d-1)>16)/this.range},a.prototype.getNextBetween=function(a,b){return a+this.getNext()*(b-a)},a}();c.PseudoRandom=f},{}],8:[function(a,b,c){"use strict";function d(a,b,c){return(b.x-a.x)*(c.y-a.y)-(c.x-a.x)*(b.y-a.y)}function e(a,b,c){return d(a,b,c)>0}function f(a,b,c){return d(a,b,c)<0}function g(a){var b,c=a.slice(0).sort(function(a,b){return a.x!==b.x?b.x-a.x:b.y-a.y}),e=a.length,f=c[0].x;for(b=1;b=0&&c[b].x===k;b--);for(i=b+1,b=g;++b<=i;)if(!(d(c[0],c[i],c[b])>=0&&b1&&!(d(h[h.length-2],h[h.length-1],c[b])>0);)h.length-=1;0!=b&&h.push(c[b])}j!=i&&h.push(c[j]);var l=h.length;for(b=i;--b>=g;)if(!(d(c[j],c[g],c[b])>=0&&b>g)){for(;h.length>l&&!(d(h[h.length-2],h[h.length-1],c[b])>0);)h.length-=1;0!=b&&h.push(c[b])}}return h}function h(a,b,c){b.slice(0).sort(function(b,c){return Math.atan2(b.y-a.y,b.x-a.x)-Math.atan2(c.y-a.y,c.x-a.x)}).forEach(c)}function i(a,b){var c=b.slice(0);return c.push(b[0]),{rtan:j(a,c),ltan:k(a,c)}}function j(a,b){var c,d,g,h,i,j=b.length-1;if(f(a,b[1],b[0])&&!e(a,b[j-1],b[0]))return 0;for(c=0,d=j;;){if(d-c==1)return e(a,b[c],b[d])?c:d;if(g=Math.floor((c+d)/2),(i=f(a,b[g+1],b[g]))&&!e(a,b[g-1],b[g]))return g;h=e(a,b[c+1],b[c]),h?i?d=g:e(a,b[c],b[g])?d=g:c=g:i&&f(a,b[c],b[g])?d=g:c=g}}function k(a,b){var c,d,g,h,i,j=b.length-1;if(e(a,b[j-1],b[0])&&!f(a,b[1],b[0]))return 0;for(c=0,d=j;;){if(d-c==1)return f(a,b[c],b[d])?c:d;if(g=Math.floor((c+d)/2),i=f(a,b[g+1],b[g]),e(a,b[g-1],b[g])&&!i)return g;h=f(a,b[c+1],b[c]),h?i?f(a,b[c],b[g])?d=g:c=g:d=g:i?c=g:e(a,b[c],b[g])?d=g:c=g}}function l(a,b,c,d,e,f){var g,h;g=c(b[0],a),h=d(a[g],b);for(var i=!1;!i;){for(i=!0;;){if(g===a.length-1&&(g=0),e(b[h],a[g],a[g+1]))break;++g}for(;;){if(0===h&&(h=b.length-1),f(a[g],b[h],b[h-1]))break;--h,i=!1}}return{t1:g,t2:h}}function m(a,b){var c=n(b,a);return{t1:c.t2,t2:c.t1}}function n(a,b){return l(a,b,j,k,e,f)}function o(a,b){return l(a,b,k,k,f,f)}function p(a,b){return l(a,b,j,j,e,e)}function q(a,b){for(var c=[],d=1,e=b.length;d=0&&p>=0&&q<0&&r>=0&&s>=0&&t<0?f.ll=new A(g,h):o<=0&&p<=0&&q>0&&r<=0&&s<=0&&t>0?f.rr=new A(g,h):o<=0&&p>0&&q<=0&&r>=0&&s<0&&t>=0?f.rl=new A(g,h):o>=0&&p<0&&q>=0&&r<=0&&s>0&&t<=0&&(f.lr=new A(g,h))}return f}function s(a,b){for(var c=1,d=b.length;c0)return!0}return!1}var v=this&&this.__extends||function(){var a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])};return function(b,c){function d(){this.constructor=b}a(b,c),b.prototype=null===c?Object.create(c):(d.prototype=c.prototype,new d)}}();Object.defineProperty(c,"__esModule",{value:!0});var w=a("./rectangle"),x=function(){function a(){}return a}();c.Point=x;var y=function(){function a(a,b,c,d){this.x1=a,this.y1=b,this.x2=c,this.y2=d}return a}();c.LineSegment=y;var z=function(a){function b(){return null!==a&&a.apply(this,arguments)||this}return v(b,a),b}(x);c.PolyPoint=z,c.isLeft=d,c.ConvexHull=g,c.clockwiseRadialSweep=h,c.tangent_PolyPolyC=l,c.LRtangent_PolyPolyC=m,c.RLtangent_PolyPolyC=n,c.LLtangent_PolyPolyC=o,c.RRtangent_PolyPolyC=p;var A=function(){function a(a,b){this.t1=a,this.t2=b}return a}();c.BiTangent=A;var B=function(){function a(){}return a}();c.BiTangents=B;var C=function(a){function b(){return null!==a&&a.apply(this,arguments)||this}return v(b,a),b}(x);c.TVGPoint=C;var D=function(){function a(a,b,c,d){this.id=a,this.polyid=b,this.polyvertid=c,this.p=d,d.vv=this}return a}();c.VisibilityVertex=D;var E=function(){function a(a,b){this.source=a,this.target=b}return a.prototype.length=function(){var a=this.source.p.x-this.target.p.x,b=this.source.p.y-this.target.p.y;return Math.sqrt(a*a+b*b)},a}();c.VisibilityEdge=E;var F=function(){function a(a,b){if(this.P=a,this.V=[],this.E=[],b)this.V=b.V.slice(0),this.E=b.E.slice(0);else{for(var c=a.length,d=0;d0&&this.E.push(new E(e[f-1].vv,h))}e.length>1&&this.E.push(new E(e[0].vv,e[e.length-1].vv))}for(var d=0;d0)return!0;return!1},a}();c.TangentVisibilityGraph=F,c.tangents=r,c.polysOverlap=u},{"./rectangle":17}],9:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d=a("./rectangle"),e=a("./vpsc"),f=a("./shortestpaths"),g=function(){function a(a,b,c){this.id=a,this.rect=b,this.children=c,this.leaf=void 0===c||0===c.length}return a}();c.NodeWrapper=g;var h=function(){function a(a,b,c,d,e){void 0===d&&(d=null),void 0===e&&(e=null),this.id=a,this.x=b,this.y=c,this.node=d,this.line=e}return a}();c.Vert=h;var i=function(){function a(b,c){this.s=b,this.t=c;var d=a.findMatch(b,c),e=c.slice(0).reverse(),f=a.findMatch(b,e);d.length>=f.length?(this.length=d.length,this.si=d.si,this.ti=d.ti,this.reversed=!1):(this.length=f.length,this.si=f.si,this.ti=c.length-f.ti-f.length,this.reversed=!0)}return a.findMatch=function(a,b){for(var c=a.length,d=b.length,e={length:0,si:-1,ti:-1},f=new Array(c),g=0;ge.length&&(e.length=i,e.si=g-i+1,e.ti=h-i+1)}else f[g][h]=0}return e},a.prototype.getSequence=function(){return this.length>=0?this.s.slice(this.si,this.si+this.length):[]},a}();c.LongestCommonSubsequence=i;var j=function(){function a(a,b,c){void 0===c&&(c=12);var e=this;this.originalnodes=a,this.groupPadding=c,this.leaves=null,this.nodes=a.map(function(a,c){return new g(c,b.getBounds(a),b.getChildren(a))}),this.leaves=this.nodes.filter(function(a){return a.leaf}),this.groups=this.nodes.filter(function(a){return!a.leaf}),this.cols=this.getGridLines("x"),this.rows=this.getGridLines("y"),this.groups.forEach(function(a){return a.children.forEach(function(b){return e.nodes[b].parent=a})}),this.root={children:[]},this.nodes.forEach(function(a){void 0===a.parent&&(a.parent=e.root,e.root.children.push(a.id)),a.ports=[]}),this.backToFront=this.nodes.slice(0),this.backToFront.sort(function(a,b){return e.getDepth(a)-e.getDepth(b)}),this.backToFront.slice(0).reverse().filter(function(a){return!a.leaf}).forEach(function(a){var b=d.Rectangle.empty();a.children.forEach(function(a){return b=b.union(e.nodes[a].rect)}),a.rect=b.inflate(e.groupPadding)});var f=this.midPoints(this.cols.map(function(a){return a.pos})),i=this.midPoints(this.rows.map(function(a){return a.pos})),j=f[0],k=f[f.length-1],l=i[0],m=i[i.length-1],n=this.rows.map(function(a){return{x1:j,x2:k,y1:a.pos,y2:a.pos}}).concat(i.map(function(a){return{x1:j,x2:k,y1:a,y2:a}})),o=this.cols.map(function(a){return{x1:a.pos,x2:a.pos,y1:l,y2:m}}).concat(f.map(function(a){return{x1:a,x2:a,y1:l,y2:m}})),p=n.concat(o);p.forEach(function(a){return a.verts=[]}),this.verts=[],this.edges=[],n.forEach(function(a){return o.forEach(function(b){var c=new h(e.verts.length,b.x1,a.y1);a.verts.push(c),b.verts.push(c),e.verts.push(c);for(var d=e.backToFront.length;d-- >0;){var f=e.backToFront[d],g=f.rect,i=Math.abs(c.x-g.cx()),j=Math.abs(c.y-g.cy());if(i0;){var d=c.filter(function(b){return b.rect["overlap"+a.toUpperCase()](c[0].rect)}),e={nodes:d,pos:this.avg(d.map(function(b){return b.rect["c"+a]()}))};b.push(e),e.nodes.forEach(function(a){return c.splice(c.indexOf(a),1)})}return b.sort(function(a,b){return a.pos-b.pos}),b},a.prototype.getDepth=function(a){for(var b=0;a.parent!==this.root;)b++,a=a.parent;return b},a.prototype.midPoints=function(a){for(var b=a[1]-a[0],c=[a[0]-b/2],d=1;d.1)&&(k={pos:h[0][b],segments:[]},j.push(k)),k.segments.push(h)}return j},a.nudgeSegs=function(a,b,c,d,f,g){var h=d.length;if(!(h<=1)){for(var i=d.map(function(b){return new e.Variable(b[0][a])}),j=[],k=0;k=0&&j.push(new e.Constraint(i[q],i[r],g))}new e.Solver(i,j).solve(),i.forEach(function(b,e){var f=d[e],g=b.position();f[0][a]=f[1][a]=g;var h=c[f.edgeid];f.i>0&&(h[f.i-1][1][a]=g),f.iMath.PI||e<-Math.PI)&&(e=d-c),e},a.isLeft=function(a,b,c){return(b.x-a.x)*(c.y-a.y)-(b.y-a.y)*(c.x-a.x)<=0},a.getOrder=function(a){for(var b={},c=0;c=j.length||l.ti+l.length>=k.length)?c.push({l:d,r:e}):(l.si+l.length>=j.length||l.ti+l.length>=k.length?(f=j[l.si+1],h=j[l.si-1],g=k[l.ti-1]):(f=j[l.si+l.length-2],g=j[l.si+l.length],h=k[l.ti+l.length]),a.isLeft(f,g,h)?c.push({l:e,r:d}):c.push({l:d,r:e})))}return a.getOrder(c)},a.makeSegments=function(a){function b(a){return{x:a.x,y:a.y}}for(var c=[],d=b(a[0]),e=1;e1&&k>1?1e3:0},p=n.PathFromNodeToNodeWithPrevCost(d.ports[0].id,e.ports[0].id,o),q=p.reverse().map(function(a){return c.verts[a]});return q.push(this.nodes[e.id].ports[0]),q.filter(function(a,b){return!(b0&&a.node===e&&q[b-1].node===e)})},a.getRoutePath=function(b,c,d,e){var f={routepath:"M "+b[0][0].x+" "+b[0][0].y+" ",arrowpath:""};if(b.length>1)for(var g=0;g0?i-=k/Math.abs(k)*c:j-=l/Math.abs(l)*c,f.routepath+="L "+i+" "+j+" ";var m=b[g+1],n=m[0].x,o=m[0].y,p=m[1].x,q=m[1].y;k=p-n,l=q-o;var r,s,t=a.angleBetween2Lines(h,m)<0?1:0;Math.abs(k)>0?(r=n+k/Math.abs(k)*c,s=o):(r=n,s=o+l/Math.abs(l)*c);var u=Math.abs(r-i),v=Math.abs(s-j);f.routepath+="A "+u+" "+v+" 0 0 "+t+" "+r+" "+s+" "}else{var w,x,y=[i,j];Math.abs(k)>0?(i-=k/Math.abs(k)*e,w=[i,j+d],x=[i,j-d]):(j-=l/Math.abs(l)*e,w=[i+d,j],x=[i-d,j]),f.routepath+="L "+i+" "+j+" ",e>0&&(f.arrowpath="M "+y[0]+" "+y[1]+" L "+w[0]+" "+w[1]+" L "+x[0]+" "+x[1])}}else{var w,x,h=b[0],i=h[1].x,j=h[1].y,k=i-h[0].x,l=j-h[0].y,y=[i,j];Math.abs(k)>0?(i-=k/Math.abs(k)*e,w=[i,j+d],x=[i,j-d]):(j-=l/Math.abs(l)*e,w=[i+d,j],x=[i-d,j]),f.routepath+="L "+i+" "+j+" ",e>0&&(f.arrowpath="M "+y[0]+" "+y[1]+" L "+w[0]+" "+w[1]+" L "+x[0]+" "+x[1])}return f},a}();c.GridRouter=j},{"./rectangle":17,"./shortestpaths":18,"./vpsc":19}],10:[function(a,b,c){"use strict";function d(a,b,c,d,e){function g(a,b){s=[],o=0,p=0,r=l;for(var c=0;c=a.height&&s[d].x+s[d].width+a.width+f.PADDING-b<=f.FLOAT_EPSILON){c=s[d];break}s.push(a),void 0!==c?(a.x=c.x+c.width+f.PADDING,a.y=c.bottom,a.space_left=a.height,a.bottom=a.y,c.space_left-=a.height+f.PADDING,c.bottom+=a.height+f.PADDING):(a.y=r,r+=a.height+f.PADDING,a.x=k,a.bottom=a.y,a.space_left=a.height),a.y+a.height-p>-f.FLOAT_EPSILON&&(p=a.y+a.height-l),a.x+a.width-o>-f.FLOAT_EPSILON&&(o=a.x+a.width-k)}function i(a){var b=0;return a.forEach(function(a){return b+=a.width+f.PADDING}),b}function j(){return o/p}void 0===e&&(e=1);var k=0,l=0,m=b,n=c,e=void 0!==e?e:1,d=void 0!==d?d:0,o=0,p=0,q=0,r=0,s=[];0!=a.length&&(function(a){function b(a){var b=Number.MAX_VALUE,c=Number.MAX_VALUE,e=0,f=0;a.array.forEach(function(a){var g=void 0!==a.width?a.width:d,h=void 0!==a.height?a.height:d;g/=2,h/=2,e=Math.max(a.x+g,e),b=Math.min(a.x-g,b),f=Math.max(a.y+h,f),c=Math.min(a.y-h,c)}),a.width=e-b,a.height=f-c}a.forEach(function(a){b(a)})}(a),function(a,b){var c=Number.POSITIVE_INFINITY,d=0;a.sort(function(a,b){return b.height-a.height}),q=a.reduce(function(a,b){return a.widthq||o>f.FLOAT_EPSILON;){if(1!=m)var p=h-(h-e)/f.GOLDEN_SECTION,k=g(a,p);if(0!=m)var r=e+(h-e)/f.GOLDEN_SECTION,l=g(a,r);if(n=Math.abs(p-r),o=Math.abs(k-l),kl?(e=p,p=r,k=l,m=1):(h=r,r=p,l=k,m=0),j++>100)break}g(a,d)}(a),function(a){a.forEach(function(a){var b={x:0,y:0};a.array.forEach(function(a){b.x+=a.x,b.y+=a.y}),b.x/=a.array.length,b.y/=a.array.length;var c={x:b.x-a.width/2,y:b.y-a.height/2},d={x:a.x-c.x+m/2-o/2,y:a.y-c.y+n/2-p/2};a.array.forEach(function(a){a.x+=d.x,a.y+=d.y})})}(a))}function e(a,b){function c(a,b){if(void 0===d[a.index]){b&&(g++,f.push({array:[]})),d[a.index]=g,f[g-1].array.push(a);var h=e[a.index];if(h)for(var i=0;i0){var b=0;this._links.forEach(function(a){b=Math.max(b,a.source,a.target)}),this._nodes=new Array(++b);for(var c=0;c0?a:0:a>0&&(this._running||(this._running=!0,this.trigger({type:e.start,alpha:this._alpha=a}),this.kick())),this):this._alpha},a.prototype.getLinkLength=function(a){return"function"==typeof this._linkDistance?+this._linkDistance(a):this._linkDistance},a.setLinkLength=function(a,b){a.length=b},a.prototype.getLinkType=function(a){return"function"==typeof this._linkType?this._linkType(a):0},a.prototype.symmetricDiffLinkLengths=function(a,b){var c=this;return void 0===b&&(b=1),this.linkDistance(function(b){return a*b.length}),this._linkLengthCalculator=function(){return g.symmetricDiffLinkLengths(c._links,c.linkAccessor,b)},this},a.prototype.jaccardLinkLengths=function(a,b){var c=this;return void 0===b&&(b=1),this.linkDistance(function(b){return a*b.length}),this._linkLengthCalculator=function(){return g.jaccardLinkLengths(c._links,c.linkAccessor,b)},this},a.prototype.start=function(b,c,d,e,f){var k=this;void 0===b&&(b=0),void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=0),void 0===f&&(f=!0);var l,m=this.nodes().length,n=m+2*this._groups.length,o=(this._links.length,this._canvasSize[0]),p=this._canvasSize[1],q=new Array(n),r=new Array(n),s=null,t=this._avoidOverlaps;this._nodes.forEach(function(a,b){a.index=b,void 0===a.x&&(a.x=o/2,a.y=p/2),q[b]=a.x,r[b]=a.y}),this._linkLengthCalculator&&this._linkLengthCalculator();var u;this._distanceMatrix?u=this._distanceMatrix:(u=new j.Calculator(n,this._links,a.getSourceIndex,a.getTargetIndex,function(a){return k.getLinkLength(a)}).DistanceMatrix(),s=h.Descent.createSquareMatrix(n,function(){return 2}),this._links.forEach(function(a){"number"==typeof a.source&&(a.source=k._nodes[a.source]),"number"==typeof a.target&&(a.target=k._nodes[a.target])}),this._links.forEach(function(b){var c=a.getSourceIndex(b),d=a.getTargetIndex(b);s[c][d]=s[d][c]=b.weight||1}));var v=h.Descent.createSquareMatrix(n,function(a,b){return u[a][b]});if(this._rootGroup&&void 0!==this._rootGroup.groups){var l=m,w=function(a,b,c,d){s[a][b]=s[b][a]=c,v[a][b]=v[b][a]=d};this._groups.forEach(function(a){w(l,l+1,k._groupCompactness,.1),q[l]=0,r[l++]=0,q[l]=0,r[l++]=0})}else this._rootGroup={leaves:this._nodes,groups:[]};var x=this._constraints||[];this._directedLinkConstraints&&(this.linkAccessor.getMinSeparation=this._directedLinkConstraints.getMinSeparation,x=x.concat(g.generateDirectedEdgeConstraints(m,this._links,this._directedLinkConstraints.axis,this.linkAccessor))),this.avoidOverlaps(!1),this._descent=new h.Descent([q,r],v),this._descent.locks.clear();for(var l=0;l0&&(this._descent.project=new i.Projection(this._nodes,this._groups,this._rootGroup,x).projectFunctions()),this._descent.run(c),this.separateOverlappingComponents(o,p),this.avoidOverlaps(t),t&&(this._nodes.forEach(function(a,b){a.x=q[b],a.y=r[b]}),this._descent.project=new i.Projection(this._nodes,this._groups,this._rootGroup,x,!0).projectFunctions(),this._nodes.forEach(function(a,b){q[b]=a.x,r[b]=a.y})),this._descent.G=s,this._descent.run(d),e){this._descent.snapStrength=1e3,this._descent.snapGridSize=this._nodes[0].width,this._descent.numGridSnapNodes=m,this._descent.scaleSnapByMaxH=m!=n;var A=h.Descent.createSquareMatrix(n,function(a,b){return a>=m||b>=m?s[a][b]:0});this._descent.G=A,this._descent.run(e)}return this.updateNodePositions(),this.separateOverlappingComponents(o,p),f?this.resume():this},a.prototype.initialLayout=function(b,c,d){if(this._groups.length>0&&b>0){var e=this._nodes.length,f=this._links.map(function(a){return{source:a.source.index,target:a.target.index}}),g=this._nodes.map(function(a){return{index:a.index}});this._groups.forEach(function(a,b){g.push({index:a.index=e+b})}),this._groups.forEach(function(a,b){void 0!==a.leaves&&a.leaves.forEach(function(b){return f.push({source:a.index,target:b.index})}),void 0!==a.groups&&a.groups.forEach(function(b){return f.push({source:a.index,target:b.index})})}),(new a).size(this.size()).nodes(g).links(f).avoidOverlaps(!1).linkDistance(this.linkDistance()).symmetricDiffLinkLengths(5).convergenceThreshold(1e-4).start(b,0,0,0,!1),this._nodes.forEach(function(a){c[a.index]=g[a.index].x,d[a.index]=g[a.index].y})}else this._descent.run(b)},a.prototype.separateOverlappingComponents=function(a,b){var c=this;if(!this._distanceMatrix&&this._handleDisconnected){var d=this._descent.x[0],e=this._descent.x[1];this._nodes.forEach(function(a,b){a.x=d[b],a.y=e[b]});var f=l.separateGraphs(this._nodes,this._links);l.applyPacking(f,a,b,this._defaultNodeSize),this._nodes.forEach(function(a,b){c._descent.x[0][b]=a.x,c._descent.x[1][b]=a.y,a.bounds&&(a.bounds.setXCentre(a.x),a.bounds.setYCentre(a.y))})}},a.prototype.resume=function(){return this.alpha(.1)},a.prototype.stop=function(){return this.alpha(0)},a.prototype.prepareEdgeRouting=function(a){void 0===a&&(a=0),this._visibilityGraph=new k.TangentVisibilityGraph(this._nodes.map(function(b){return b.bounds.inflate(-a).vertices()}))},a.prototype.routeEdge=function(a,b,c){void 0===b&&(b=5);var d=[],e=new k.TangentVisibilityGraph(this._visibilityGraph.P,{V:this._visibilityGraph.V,E:this._visibilityGraph.E}),f={x:a.source.x,y:a.source.y},g={x:a.target.x,y:a.target.y},h=e.addPoint(f,a.source.index),l=e.addPoint(g,a.target.index);e.addEdgeIfVisible(f,g,a.source.index,a.target.index),void 0!==c&&c(e);var m=function(a){return a.source.id},n=function(a){return a.target.id},o=function(a){return a.length()},p=new j.Calculator(e.V.length,e.E,m,n,o),q=p.PathFromNodeToNode(h.id,l.id);if(1===q.length||q.length===e.V.length){var r=i.makeEdgeBetween(a.source.innerBounds,a.target.innerBounds,b);d=[r.sourceIntersection,r.arrowStart]}else{for(var s=q.length-2,t=e.V[q[s]].p,u=e.V[q[0]].p,d=[a.source.innerBounds.rayIntersection(t.x,t.y)],v=s;v>=0;--v)d.push(e.V[q[v]].p);d.push(i.makeEdgeTo(u,a.target.innerBounds,b))}return d},a.getSourceIndex=function(a){return"number"==typeof a.source?a.source:a.source.index},a.getTargetIndex=function(a){return"number"==typeof a.target?a.target:a.target.index},a.linkId=function(b){return a.getSourceIndex(b)+"-"+a.getTargetIndex(b)},a.dragStart=function(b){d(b)?a.storeOffset(b,a.dragOrigin(b)):(a.stopNode(b),b.fixed|=2)},a.stopNode=function(a){a.px=a.x,a.py=a.y},a.storeOffset=function(b,c){void 0!==b.leaves&&b.leaves.forEach(function(b){b.fixed|=2,a.stopNode(b),b._dragGroupOffsetX=b.x-c.x,b._dragGroupOffsetY=b.y-c.y}),void 0!==b.groups&&b.groups.forEach(function(b){return a.storeOffset(b,c)})},a.dragOrigin=function(a){return d(a)?{x:a.bounds.cx(),y:a.bounds.cy()}:a},a.drag=function(b,c){d(b)?(void 0!==b.leaves&&b.leaves.forEach(function(a){b.bounds.setXCentre(c.x),b.bounds.setYCentre(c.y),a.px=a._dragGroupOffsetX+c.x,a.py=a._dragGroupOffsetY+c.y}),void 0!==b.groups&&b.groups.forEach(function(b){return a.drag(b,c)})):(b.px=c.x,b.py=c.y)},a.dragEnd=function(b){d(b)?(void 0!==b.leaves&&b.leaves.forEach(function(b){a.dragEnd(b),delete b._dragGroupOffsetX,delete b._dragGroupOffsetY}),void 0!==b.groups&&b.groups.forEach(a.dragEnd)):b.fixed&=-7},a.mouseOver=function(a){a.fixed|=4,a.px=a.x,a.py=a.y},a.mouseOut=function(a){a.fixed&=-5},a}();c.Layout=m},{"./descent":7,"./geom":8,"./handledisconnected":10,"./linklengths":13,"./powergraph":14,"./rectangle":17,"./shortestpaths":18}],12:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d=a("./shortestpaths"),e=a("./descent"),f=a("./rectangle"),g=a("./linklengths"),h=function(){function a(a,b){this.source=a,this.target=b}return a.prototype.actualLength=function(a){var b=this;return Math.sqrt(a.reduce(function(a,c){var d=c[b.target]-c[b.source];return a+d*d},0))},a}();c.Link3D=h;var i=function(){function a(a,b,c){void 0===a&&(a=0),void 0===b&&(b=0),void 0===c&&(c=0),this.x=a,this.y=b,this.z=c}return a}();c.Node3D=i;var j=function(){function a(b,c,d){void 0===d&&(d=1);var e=this;this.nodes=b,this.links=c,this.idealLinkLength=d,this.constraints=null,this.useJaccardLinkLengths=!0,this.result=new Array(a.k);for(var f=0;f=this.R))return this.merge(c.a,c.b,a),!0}},a.prototype.nEdges=function(a,b){var c=a.incoming.intersection(b.incoming),d=a.outgoing.intersection(b.outgoing);return this.R-c.count()-d.count()},a.prototype.getGroupHierarchy=function(a){var b=this,c=[],e={};return d(this.roots[0],e,c),this.allEdges().forEach(function(d){var e=b.modules[d.source],f=b.modules[d.target];a.push(new g(void 0===e.gid?d.source:c[e.gid],void 0===f.gid?d.target:c[f.gid],d.type))}),c},a.prototype.allEdges=function(){var b=[];return a.getEdges(this.roots[0],b),b},a.getEdges=function(b,c){b.forAll(function(b){b.getEdges(c),a.getEdges(b.children,c)})},a}();c.Configuration=h;var i=function(){function a(a,b,c,d,e){void 0===b&&(b=new k),void 0===c&&(c=new k),void 0===d&&(d=new j),this.id=a,this.outgoing=b,this.incoming=c,this.children=d,this.definition=e}return a.prototype.getEdges=function(a){var b=this;this.outgoing.forAll(function(c,d){c.forAll(function(c){a.push(new g(b.id,c.id,d))})})},a.prototype.isLeaf=function(){return 0===this.children.count()},a.prototype.isIsland=function(){return 0===this.outgoing.count()&&0===this.incoming.count()},a.prototype.isPredefined=function(){return void 0!==this.definition},a}();c.Module=i;var j=function(){function a(){this.table={}}return a.prototype.count=function(){return Object.keys(this.table).length},a.prototype.intersection=function(b){var c=new a;return c.table=e(this.table,b.table),c},a.prototype.intersectionCount=function(a){return this.intersection(a).count()},a.prototype.contains=function(a){return a in this.table},a.prototype.add=function(a){this.table[a.id]=a},a.prototype.remove=function(a){delete this.table[a.id]},a.prototype.forAll=function(a){for(var b in this.table)a(this.table[b])},a.prototype.modules=function(){var a=[];return this.forAll(function(b){b.isPredefined()||a.push(b)}),a},a}();c.ModuleSet=j;var k=function(){function a(){this.sets={},this.n=0}return a.prototype.count=function(){return this.n},a.prototype.contains=function(a){var b=!1;return this.forAllModules(function(c){b||c.id!=a||(b=!0)}),b},a.prototype.add=function(a,b){(a in this.sets?this.sets[a]:this.sets[a]=new j).add(b),++this.n},a.prototype.remove=function(a,b){var c=this.sets[a];c.remove(b),0===c.count()&&delete this.sets[a],--this.n},a.prototype.forAll=function(a){for(var b in this.sets)a(this.sets[b],Number(b))},a.prototype.forAllModules=function(a){this.forAll(function(b,c){return b.forAll(a)})},a.prototype.intersection=function(b){var c=new a;return this.forAll(function(a,d){if(d in b.sets){var e=a.intersection(b.sets[d]),f=e.count();f>0&&(c.sets[d]=e,c.n+=f)}}),c},a}();c.LinkSets=k,c.getGroups=f},{}],15:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d=function(){function a(a){this.elem=a,this.subheaps=[]}return a.prototype.toString=function(a){for(var b="",c=!1,d=0;d0)}return null}}return a.prototype.clear=function(){this._root=null,this.size=0},a.prototype.find=function(a){for(var b=this._root;null!==b;){var c=this._comparator(a,b.data);if(0===c)return b.data;b=b.get_child(c>0)}return null},a.prototype.lowerBound=function(a){return this._bound(a,this._comparator)},a.prototype.upperBound=function(a){function b(a,b){return c(b,a)}var c=this._comparator;return this._bound(a,b)},a.prototype.min=function(){var a=this._root;if(null===a)return null;for(;null!==a.left;)a=a.left;return a.data},a.prototype.max=function(){var a=this._root;if(null===a)return null;for(;null!==a.right;)a=a.right;return a.data},a.prototype.iterator=function(){return new f(this)},a.prototype.each=function(a){for(var b,c=this.iterator();null!==(b=c.next());)a(b)},a.prototype.reach=function(a){for(var b,c=this.iterator();null!==(b=c.prev());)a(b)},a.prototype._bound=function(a,b){for(var c=this._root,d=this.iterator();null!==c;){var e=this._comparator(a,c.data);if(0===e)return d._cursor=c,d;d._ancestors.push(c),c=c.get_child(e>0)}for(var f=d._ancestors.length-1;f>=0;--f)if(c=d._ancestors[f],b(a,c.data)>0)return d._cursor=c,d._ancestors.length=f,d;return d._ancestors.length=0,d},a}();c.TreeBase=e;var f=function(){function a(a){this._tree=a,this._ancestors=[],this._cursor=null}return a.prototype.data=function(){return null!==this._cursor?this._cursor.data:null},a.prototype.next=function(){if(null===this._cursor){var a=this._tree._root;null!==a&&this._minNode(a)}else if(null===this._cursor.right){var b;do{if(b=this._cursor,!this._ancestors.length){this._cursor=null;break}this._cursor=this._ancestors.pop()}while(this._cursor.right===b)}else this._ancestors.push(this._cursor),this._minNode(this._cursor.right);return null!==this._cursor?this._cursor.data:null},a.prototype.prev=function(){if(null===this._cursor){var a=this._tree._root;null!==a&&this._maxNode(a)}else if(null===this._cursor.left){var b;do{if(b=this._cursor,!this._ancestors.length){this._cursor=null;break}this._cursor=this._ancestors.pop()}while(this._cursor.left===b)}else this._ancestors.push(this._cursor),this._maxNode(this._cursor.left);return null!==this._cursor?this._cursor.data:null},a.prototype._minNode=function(a){for(;null!==a.left;)this._ancestors.push(a),a=a.left;this._cursor=a},a.prototype._maxNode=function(a){for(;null!==a.right;)this._ancestors.push(a),a=a.right;this._cursor=a},a}();c.Iterator=f;var g=function(){function a(a){this.data=a,this.left=null,this.right=null,this.red=!0}return a.prototype.get_child=function(a){return a?this.right:this.left},a.prototype.set_child=function(a,b){a?this.right=b:this.left=b},a}(),h=function(a){function b(b){var c=a.call(this)||this;return c._root=null,c._comparator=b,c.size=0,c}return d(b,a),b.prototype.insert=function(a){var c=!1;if(null===this._root)this._root=new g(a),c=!0,this.size++;else{var d=new g(void 0),e=!1,f=!1,h=null,i=d,j=null,k=this._root;for(i.right=this._root;;){if(null===k?(k=new g(a),j.set_child(e,k),c=!0,this.size++):b.is_red(k.left)&&b.is_red(k.right)&&(k.red=!0,k.left.red=!1,k.right.red=!1),b.is_red(k)&&b.is_red(j)){var l=i.right===h;k===j.get_child(f)?i.set_child(l,b.single_rotate(h,!f)):i.set_child(l,b.double_rotate(h,!f))}var m=this._comparator(k.data,a);if(0===m)break;f=e,e=m<0,null!==h&&(i=h),h=j,j=k,k=k.get_child(e)}this._root=d.right}return this._root.red=!1,c},b.prototype.remove=function(a){if(null===this._root)return!1;var c=new g(void 0),d=c;d.right=this._root;for(var e=null,f=null,h=null,i=!0;null!==d.get_child(i);){var j=i;f=e,e=d,d=d.get_child(i);var k=this._comparator(a,d.data);if(i=k>0,0===k&&(h=d),!b.is_red(d)&&!b.is_red(d.get_child(i)))if(b.is_red(d.get_child(!i))){var l=b.single_rotate(d,i);e.set_child(j,l),e=l}else if(!b.is_red(d.get_child(!i))){var m=e.get_child(!j);if(null!==m)if(b.is_red(m.get_child(!j))||b.is_red(m.get_child(j))){var n=f.right===e;b.is_red(m.get_child(j))?f.set_child(n,b.double_rotate(e,j)):b.is_red(m.get_child(!j))&&f.set_child(n,b.single_rotate(e,j));var o=f.get_child(n);o.red=!0,d.red=!0,o.left.red=!1,o.right.red=!1}else e.red=!1,m.red=!0,d.red=!0}}return null!==h&&(h.data=d.data,e.set_child(e.right===d,d.get_child(null===d.left)),this.size--),this._root=c.right,null!==this._root&&(this._root.red=!1),null!==h},b.is_red=function(a){return null!==a&&a.red},b.single_rotate=function(a,b){var c=a.get_child(!b);return a.set_child(!b,c.get_child(b)),c.set_child(b,a),a.red=!0,c.red=!1,c},b.double_rotate=function(a,c){return a.set_child(!c,b.single_rotate(a.get_child(!c),!c)),b.single_rotate(a,c)},b}(e);c.RBTree=h},{}],17:[function(a,b,c){"use strict";function d(a){return a.bounds=void 0!==a.leaves?a.leaves.reduce(function(a,b){return b.bounds.union(a)},u.empty()):u.empty(),void 0!==a.groups&&(a.bounds=a.groups.reduce(function(a,b){return d(b).union(a)},a.bounds)),a.bounds=a.bounds.inflate(a.padding),a.bounds}function e(a,b,c){var d=a.rayIntersection(b.cx(),b.cy())||{x:a.cx(),y:a.cy()},e=b.rayIntersection(a.cx(),a.cy())||{x:b.cx(),y:b.cy()},f=e.x-d.x,g=e.y-d.y,h=Math.sqrt(f*f+g*g),i=h-c;return{sourceIntersection:d,targetIntersection:e,arrowStart:{x:d.x+i*f/h,y:d.y+i*g/h}}}function f(a,b,c){var d=b.rayIntersection(a.x,a.y);d||(d={x:b.cx(),y:b.cy()});var e=d.x-a.x,f=d.y-a.y,g=Math.sqrt(e*e+f*f);return{x:d.x-c*e/g,y:d.y-c*f/g}}function g(a,b){return a.pos>b.pos?1:a.pos=f);var j=new Array(i);for(e=0;e0&&(a[c].insert(e),e[d].insert(a))};c("next","prev"),c("prev","next")}function m(a,b){return j(a,b,x,1e-6)}function n(a,b){return j(a,b,y,1e-6)}function o(a){return i(a,x,1e-6)}function p(a){return i(a,y,1e-6)}function q(a){var b=a.map(function(a){return new s.Variable(a.cx())}),c=m(a,b),d=new s.Solver(b,c);d.solve(),b.forEach(function(b,c){return a[c].setXCentre(b.position())}),b=a.map(function(a){return new s.Variable(a.cy())}),c=n(a,b),d=new s.Solver(b,c),d.solve(),b.forEach(function(b,c){return a[c].setYCentre(b.position())})}var r=this&&this.__extends||function(){var a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(a,b){a.__proto__=b}||function(a,b){ for(var c in b)b.hasOwnProperty(c)&&(a[c]=b[c])};return function(b,c){function d(){this.constructor=b}a(b,c),b.prototype=null===c?Object.create(c):(d.prototype=c.prototype,new d)}}();Object.defineProperty(c,"__esModule",{value:!0});var s=a("./vpsc"),t=a("./rbtree");c.computeGroupBounds=d;var u=function(){function a(a,b,c,d){this.x=a,this.X=b,this.y=c,this.Y=d}return a.empty=function(){return new a(Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY)},a.prototype.cx=function(){return(this.x+this.X)/2},a.prototype.cy=function(){return(this.y+this.Y)/2},a.prototype.overlapX=function(a){var b=this.cx(),c=a.cx();return b<=c&&a.x0?c[0]:null},a.prototype.vertices=function(){return[{x:this.x,y:this.y},{x:this.X,y:this.y},{x:this.X,y:this.Y},{x:this.x,y:this.Y}]},a.lineIntersection=function(a,b,c,d,e,f,g,h){var i=c-a,j=g-e,k=d-b,l=h-f,m=l*i-j*k;if(0==m)return null;var n=a-e,o=b-f,p=j*o-l*n,q=p/m,r=i*o-k*n,s=r/m;return q>=0&&q<=1&&s>=0&&s<=1?{x:a+q*i,y:b+q*k}:null},a.prototype.inflate=function(b){return new a(this.x-b,this.X+b,this.y-b,this.Y+b)},a}();c.Rectangle=u,c.makeEdgeBetween=e,c.makeEdgeTo=f;var v=function(){function a(a,b,c){this.v=a,this.r=b,this.pos=c,this.prev=h(),this.next=h()}return a}(),w=function(){function a(a,b,c){this.isOpen=a,this.v=b,this.pos=c}return a}(),x={getCentre:function(a){return a.cx()},getOpen:function(a){return a.y},getClose:function(a){return a.Y},getSize:function(a){return a.width()},makeRect:function(a,b,c,d){return new u(c-d/2,c+d/2,a,b)},findNeighbours:k},y={getCentre:function(a){return a.cy()},getOpen:function(a){return a.x},getClose:function(a){return a.X},getSize:function(a){return a.height()},makeRect:function(a,b,c,d){return new u(a,b,c-d/2,c+d/2)},findNeighbours:l};c.generateXConstraints=m,c.generateYConstraints=n,c.generateXGroupConstraints=o,c.generateYGroupConstraints=p,c.removeOverlaps=q;var z=function(a){function b(b,c){var d=a.call(this,0,c)||this;return d.index=b,d}return r(b,a),b}(s.Variable);c.IndexedVariable=z;var A=function(){function a(a,b,c,e,f){void 0===c&&(c=null),void 0===e&&(e=null),void 0===f&&(f=!1);var g=this;if(this.nodes=a,this.groups=b,this.rootGroup=c,this.avoidOverlaps=f,this.variables=a.map(function(a,b){return a.variable=new z(b,1)}),e&&this.createConstraints(e),f&&c&&void 0!==c.groups){a.forEach(function(a){if(!a.width||!a.height)return void(a.bounds=new u(a.x,a.x,a.y,a.y));var b=a.width/2,c=a.height/2;a.bounds=new u(a.x-b,a.x+b,a.y-c,a.y+c)}),d(c);var h=a.length;b.forEach(function(a){g.variables[h]=a.minVar=new z(h++,void 0!==a.stiffness?a.stiffness:.01),g.variables[h]=a.maxVar=new z(h++,void 0!==a.stiffness?a.stiffness:.01)})}}return a.prototype.createSeparation=function(a){return new s.Constraint(this.nodes[a.left].variable,this.nodes[a.right].variable,a.gap,void 0!==a.equality&&a.equality)},a.prototype.makeFeasible=function(a){var b=this;if(this.avoidOverlaps){var c="x",d="width";"x"===a.axis&&(c="y",d="height");var e=a.offsets.map(function(a){return b.nodes[a.node]}).sort(function(a,b){return a[c]-b[c]}),f=null;e.forEach(function(a){if(f){var b=f[c]+f[d];b>a[c]&&(a[c]=b)}f=a})}},a.prototype.createAlignment=function(a){var b=this,c=this.nodes[a.offsets[0].node].variable;this.makeFeasible(a);var d="x"===a.axis?this.xConstraints:this.yConstraints;a.offsets.slice(1).forEach(function(a){var e=b.nodes[a.node].variable;d.push(new s.Constraint(c,e,a.offset,!0))})},a.prototype.createConstraints=function(a){var b=this,c=function(a){return void 0===a.type||"separation"===a.type};this.xConstraints=a.filter(function(a){return"x"===a.axis&&c(a)}).map(function(a){return b.createSeparation(a)}),this.yConstraints=a.filter(function(a){return"y"===a.axis&&c(a)}).map(function(a){return b.createSeparation(a)}),a.filter(function(a){return"alignment"===a.type}).forEach(function(a){return b.createAlignment(a)})},a.prototype.setupVariablesAndBounds=function(a,b,c,d){this.nodes.forEach(function(e,f){e.fixed?(e.variable.weight=e.fixedWeight?e.fixedWeight:1e3,c[f]=d(e)):e.variable.weight=1;var g=(e.width||0)/2,h=(e.height||0)/2,i=a[f],j=b[f];e.bounds=new u(i-g,i+g,j-h,j+h)})},a.prototype.xProject=function(a,b,c){(this.rootGroup||this.avoidOverlaps||this.xConstraints)&&this.project(a,b,a,c,function(a){return a.px},this.xConstraints,o,function(a){return a.bounds.setXCentre(c[a.variable.index]=a.variable.position())},function(a){var b=c[a.minVar.index]=a.minVar.position(),d=c[a.maxVar.index]=a.maxVar.position(),e=a.padding/2;a.bounds.x=b-e,a.bounds.X=d+e})},a.prototype.yProject=function(a,b,c){(this.rootGroup||this.yConstraints)&&this.project(a,b,b,c,function(a){return a.py},this.yConstraints,p,function(a){return a.bounds.setYCentre(c[a.variable.index]=a.variable.position())},function(a){var b=c[a.minVar.index]=a.minVar.position(),d=c[a.maxVar.index]=a.maxVar.position(),e=a.padding/2;a.bounds.y=b-e,a.bounds.Y=d+e})},a.prototype.projectFunctions=function(){var a=this;return[function(b,c,d){return a.xProject(b,c,d)},function(b,c,d){return a.yProject(b,c,d)}]},a.prototype.project=function(a,b,c,e,f,g,h,i,j){this.setupVariablesAndBounds(a,b,e,f),this.rootGroup&&this.avoidOverlaps&&(d(this.rootGroup),g=g.concat(h(this.rootGroup))),this.solve(this.variables,g,c,e),this.nodes.forEach(i),this.rootGroup&&this.avoidOverlaps&&(this.groups.forEach(j),d(this.rootGroup))},a.prototype.solve=function(a,b,c,d){var e=new s.Solver(a,b);e.setStartingPositions(c),e.setDesiredPositions(d),e.solve()},a}();c.Projection=A},{"./rbtree":16,"./vpsc":19}],18:[function(a,b,c){"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d=a("./pqueue"),e=function(){function a(a,b){this.id=a,this.distance=b}return a}(),f=function(){function a(a){this.id=a,this.neighbours=[]}return a}(),g=function(){function a(a,b,c){this.node=a,this.prev=b,this.d=c}return a}(),h=function(){function a(a,b,c,d,g){this.n=a,this.es=b,this.neighbours=new Array(this.n);for(var h=this.n;h--;)this.neighbours[h]=new f(h);for(h=this.es.length;h--;){var i=this.es[h],j=c(i),k=d(i),l=g(i);this.neighbours[j].neighbours.push(new e(k,l)),this.neighbours[k].neighbours.push(new e(j,l))}}return a.prototype.DistanceMatrix=function(){for(var a=new Array(this.n),b=0;bl&&(j.d=l,j.prev=h,c.reduceKey(j.q,j,function(a,b){return a.q=b}))}}return f},a}();c.Calculator=h},{"./pqueue":15}],19:[function(a,b,c){"use strict";function d(a,b,c){for(var d=a.map(function(a){return new g(a.desiredCenter)}),e=[],h=a.length,i=0;i=0?this.inactive.push(b):this.bs.merge(b)}}},a.prototype.solve=function(){this.satisfy();for(var a=Number.MAX_VALUE,b=this.bs.cost();Math.abs(a-b)>1e-4;)this.satisfy(),a=b,b=this.bs.cost();return b},a.LAGRANGIAN_TOLERANCE=-1e-4,a.ZERO_UPPERBOUND=-1e-10,a}();c.Solver=j,c.removeOverlapInOneDimension=d},{}]},{},[1])(1)});