UNPKG

mermaid

Version:

Markdown-ish syntax for generating flowcharts, mindmaps, sequence diagrams, class diagrams, gantt charts, git graphs and more.

2 lines (1 loc) 27.9 kB
import{a as y}from"./chunk-6XGRHI2A.mjs";import{D as x,E as B,F as k,G as R,H as A,J as D,K as g,L as O,N as yr,P as C,T as j,U as Z,d as I,f as _r,h as Q,i as wr,k as F,n as u,p as L,q as U,s as w,u as Er,v as br,x as p,z as T}from"./chunk-BKDDFIKN.mjs";import{O as V,T as z,z as vr}from"./chunk-6BY5RJGC.mjs";import{a as f}from"./chunk-GTKDMUJJ.mjs";function N(r,e,n,o){var t;do t=j(o);while(r.hasNode(t));return n.dummy=e,r.setNode(t,n),t}f(N,"addDummyNode");function xr(r){var e=new y().setGraph(r.graph());return u(r.nodes(),function(n){e.setNode(n,r.node(n))}),u(r.edges(),function(n){var o=e.edge(n.v,n.w)||{weight:0,minlen:1},t=r.edge(n);e.setEdge(n.v,n.w,{weight:o.weight+t.weight,minlen:Math.max(o.minlen,t.minlen)})}),e}f(xr,"simplify");function X(r){var e=new y({multigraph:r.isMultigraph()}).setGraph(r.graph());return u(r.nodes(),function(n){r.children(n).length||e.setNode(n,r.node(n))}),u(r.edges(),function(n){e.setEdge(n,r.edge(n))}),e}f(X,"asNonCompoundGraph");function $(r,e){var n=r.x,o=r.y,t=e.x-n,i=e.y-o,a=r.width/2,s=r.height/2;if(!t&&!i)throw new Error("Not possible to find intersection inside of the rectangle");var d,c;return Math.abs(i)*a>Math.abs(t)*s?(i<0&&(s=-s),d=s*t/i,c=s):(t<0&&(a=-a),d=a,c=a*i/t),{x:n+d,y:o+c}}f($,"intersectRect");function S(r){var e=w(g(er(r)+1),function(){return[]});return u(r.nodes(),function(n){var o=r.node(n),t=o.rank;x(t)||(e[t][o.order]=n)}),e}f(S,"buildLayerMatrix");function kr(r){var e=R(w(r.nodes(),function(n){return r.node(n).rank}));u(r.nodes(),function(n){var o=r.node(n);p(o,"rank")&&(o.rank-=e)})}f(kr,"normalizeRanks");function gr(r){var e=R(w(r.nodes(),function(i){return r.node(i).rank})),n=[];u(r.nodes(),function(i){var a=r.node(i).rank-e;n[a]||(n[a]=[]),n[a].push(i)});var o=0,t=r.graph().nodeRankFactor;u(n,function(i,a){x(i)&&a%t!==0?--o:o&&u(i,function(s){r.node(s).rank+=o})})}f(gr,"removeEmptyRanks");function rr(r,e,n,o){var t={width:0,height:0};return arguments.length>=4&&(t.rank=n,t.order=o),N(r,"border",t,e)}f(rr,"addBorderNode");function er(r){return k(w(r.nodes(),function(e){var n=r.node(e).rank;if(!x(n))return n}))}f(er,"maxRank");function Nr(r,e){var n={lhs:[],rhs:[]};return u(r,function(o){e(o)?n.lhs.push(o):n.rhs.push(o)}),n}f(Nr,"partition");function Ir(r,e){var n=Q();try{return e()}finally{console.log(r+" time: "+(Q()-n)+"ms")}}f(Ir,"time");function Lr(r,e){return e()}f(Lr,"notime");function Tr(r){function e(n){var o=r.children(n),t=r.node(n);if(o.length&&u(o,e),p(t,"minRank")){t.borderLeft=[],t.borderRight=[];for(var i=t.minRank,a=t.maxRank+1;i<a;++i)Cr(r,"borderLeft","_bl",n,t,i),Cr(r,"borderRight","_br",n,t,i)}}f(e,"dfs"),u(r.children(),e)}f(Tr,"addBorderSegments");function Cr(r,e,n,o,t,i){var a={width:0,height:0,rank:i,borderType:e},s=t[e][i-1],d=N(r,"border",a,n);t[e][i]=d,r.setParent(d,o),s&&r.setEdge(s,d,{weight:1})}f(Cr,"addBorderNode");function Sr(r){var e=r.graph().rankdir.toLowerCase();(e==="lr"||e==="rl")&&Pr(r)}f(Sr,"adjust");function Mr(r){var e=r.graph().rankdir.toLowerCase();(e==="bt"||e==="rl")&&pe(r),(e==="lr"||e==="rl")&&(me(r),Pr(r))}f(Mr,"undo");function Pr(r){u(r.nodes(),function(e){Rr(r.node(e))}),u(r.edges(),function(e){Rr(r.edge(e))})}f(Pr,"swapWidthHeight");function Rr(r){var e=r.width;r.width=r.height,r.height=e}f(Rr,"swapWidthHeightOne");function pe(r){u(r.nodes(),function(e){nr(r.node(e))}),u(r.edges(),function(e){var n=r.edge(e);u(n.points,nr),p(n,"y")&&nr(n)})}f(pe,"reverseY");function nr(r){r.y=-r.y}f(nr,"reverseYOne");function me(r){u(r.nodes(),function(e){or(r.node(e))}),u(r.edges(),function(e){var n=r.edge(e);u(n.points,or),p(n,"x")&&or(n)})}f(me,"swapXY");function or(r){var e=r.x;r.x=r.y,r.y=e}f(or,"swapXYOne");var H=class{static{f(this,"List")}constructor(){var e={};e._next=e._prev=e,this._sentinel=e}dequeue(){var e=this._sentinel,n=e._prev;if(n!==e)return Fr(n),n}enqueue(e){var n=this._sentinel;e._prev&&e._next&&Fr(e),e._next=n._next,n._next._prev=e,n._next=e,e._prev=n}toString(){for(var e=[],n=this._sentinel,o=n._prev;o!==n;)e.push(JSON.stringify(o,_e)),o=o._prev;return"["+e.join(", ")+"]"}};function Fr(r){r._prev._next=r._next,r._next._prev=r._prev,delete r._next,delete r._prev}f(Fr,"unlink");function _e(r,e){if(r!=="_next"&&r!=="_prev")return e}f(_e,"filterOutLinks");var we=V(1);function Or(r,e){if(r.nodeCount()<=1)return[];var n=be(r,e||we),o=Ee(n.graph,n.buckets,n.zeroIdx);return I(w(o,function(t){return r.outEdges(t.v,t.w)}))}f(Or,"greedyFAS");function Ee(r,e,n){for(var o=[],t=e[e.length-1],i=e[0],a;r.nodeCount();){for(;a=i.dequeue();)tr(r,e,n,a);for(;a=t.dequeue();)tr(r,e,n,a);if(r.nodeCount()){for(var s=e.length-2;s>0;--s)if(a=e[s].dequeue(),a){o=o.concat(tr(r,e,n,a,!0));break}}}return o}f(Ee,"doGreedyFAS");function tr(r,e,n,o,t){var i=t?[]:void 0;return u(r.inEdges(o.v),function(a){var s=r.edge(a),d=r.node(a.v);t&&i.push({v:a.v,w:a.w}),d.out-=s,ir(e,n,d)}),u(r.outEdges(o.v),function(a){var s=r.edge(a),d=a.w,c=r.node(d);c.in-=s,ir(e,n,c)}),r.removeNode(o.v),i}f(tr,"removeNode");function be(r,e){var n=new y,o=0,t=0;u(r.nodes(),function(s){n.setNode(s,{v:s,in:0,out:0})}),u(r.edges(),function(s){var d=n.edge(s.v,s.w)||0,c=e(s),h=d+c;n.setEdge(s.v,s.w,h),t=Math.max(t,n.node(s.v).out+=c),o=Math.max(o,n.node(s.w).in+=c)});var i=g(t+o+3).map(function(){return new H}),a=o+1;return u(n.nodes(),function(s){ir(i,a,n.node(s))}),{graph:n,buckets:i,zeroIdx:a}}f(be,"buildState");function ir(r,e,n){n.out?n.in?r[n.out-n.in+e].enqueue(n):r[r.length-1].enqueue(n):r[0].enqueue(n)}f(ir,"assignBucket");function Gr(r){var e=r.graph().acyclicer==="greedy"?Or(r,n(r)):ye(r);u(e,function(o){var t=r.edge(o);r.removeEdge(o),t.forwardName=o.name,t.reversed=!0,r.setEdge(o.w,o.v,t,j("rev"))});function n(o){return function(t){return o.edge(t).weight}}f(n,"weightFn")}f(Gr,"run");function ye(r){var e=[],n={},o={};function t(i){p(o,i)||(o[i]=!0,n[i]=!0,u(r.outEdges(i),function(a){p(n,a.w)?e.push(a):t(a.w)}),delete n[i])}return f(t,"dfs"),u(r.nodes(),t),e}f(ye,"dfsFAS");function Vr(r){u(r.edges(),function(e){var n=r.edge(e);if(n.reversed){r.removeEdge(e);var o=n.forwardName;delete n.reversed,delete n.forwardName,r.setEdge(e.w,e.v,n,o)}})}f(Vr,"undo");function Ar(r){r.graph().dummyChains=[],u(r.edges(),function(e){xe(r,e)})}f(Ar,"run");function xe(r,e){var n=e.v,o=r.node(n).rank,t=e.w,i=r.node(t).rank,a=e.name,s=r.edge(e),d=s.labelRank;if(i!==o+1){r.removeEdge(e);var c,h,l;for(l=0,++o;o<i;++l,++o)s.points=[],h={width:0,height:0,edgeLabel:s,edgeObj:e,rank:o},c=N(r,"edge",h,"_d"),o===d&&(h.width=s.width,h.height=s.height,h.dummy="edge-label",h.labelpos=s.labelpos),r.setEdge(n,c,{weight:s.weight},a),l===0&&r.graph().dummyChains.push(c),n=c;r.setEdge(n,t,{weight:s.weight},a)}}f(xe,"normalizeEdge");function Dr(r){u(r.graph().dummyChains,function(e){var n=r.node(e),o=n.edgeLabel,t;for(r.setEdge(n.edgeObj,o);n.dummy;)t=r.successors(e)[0],r.removeNode(e),o.points.push({x:n.x,y:n.y}),n.dummy==="edge-label"&&(o.x=n.x,o.y=n.y,o.width=n.width,o.height=n.height),e=t,n=r.node(e)})}f(Dr,"undo");function W(r){var e={};function n(o){var t=r.node(o);if(p(e,o))return t.rank;e[o]=!0;var i=R(w(r.outEdges(o),function(a){return n(a.w)-r.edge(a).minlen}));return(i===Number.POSITIVE_INFINITY||i===void 0||i===null)&&(i=0),t.rank=i}f(n,"dfs"),u(r.sources(),n)}f(W,"longestPath");function G(r,e){return r.node(e.w).rank-r.node(e.v).rank-r.edge(e).minlen}f(G,"slack");function J(r){var e=new y({directed:!1}),n=r.nodes()[0],o=r.nodeCount();e.setNode(n,{});for(var t,i;ke(e,r)<o;)t=ge(e,r),i=e.hasNode(t.v)?G(r,t):-G(r,t),Ne(e,r,i);return e}f(J,"feasibleTree");function ke(r,e){function n(o){u(e.nodeEdges(o),function(t){var i=t.v,a=o===i?t.w:i;!r.hasNode(a)&&!G(e,t)&&(r.setNode(a,{}),r.setEdge(o,a,{}),n(a))})}return f(n,"dfs"),u(r.nodes(),n),r.nodeCount()}f(ke,"tightTree");function ge(r,e){return A(e.edges(),function(n){if(r.hasNode(n.v)!==r.hasNode(n.w))return G(e,n)})}f(ge,"findMinSlackEdge");function Ne(r,e,n){u(r.nodes(),function(o){e.node(o).rank+=n})}f(Ne,"shiftRanks");var oo=V(1);var mo=V(1);ar.CycleException=q;function ar(r){var e={},n={},o=[];function t(i){if(p(n,i))throw new q;p(e,i)||(n[i]=!0,e[i]=!0,u(r.predecessors(i),t),delete n[i],o.push(i))}if(f(t,"visit"),u(r.sinks(),t),yr(e)!==r.nodeCount())throw new q;return o}f(ar,"topsort");function q(){}f(q,"CycleException");q.prototype=new Error;function K(r,e,n){vr(e)||(e=[e]);var o=(r.isDirected()?r.successors:r.neighbors).bind(r),t=[],i={};return u(e,function(a){if(!r.hasNode(a))throw new Error("Graph does not have node: "+a);Yr(r,a,n==="post",i,o,t)}),t}f(K,"dfs");function Yr(r,e,n,o,t,i){p(o,e)||(o[e]=!0,n||i.push(e),u(t(e),function(a){Yr(r,a,n,o,t,i)}),n&&i.push(e))}f(Yr,"doDfs");function fr(r,e){return K(r,e,"post")}f(fr,"postorder");function sr(r,e){return K(r,e,"pre")}f(sr,"preorder");P.initLowLimValues=dr;P.initCutValues=ur;P.calcCutValue=Ur;P.leaveEdge=qr;P.enterEdge=Xr;P.exchangeEdges=Hr;function P(r){r=xr(r),W(r);var e=J(r);dr(e),ur(e,r);for(var n,o;n=qr(e);)o=Xr(e,r,n),Hr(e,r,n,o)}f(P,"networkSimplex");function ur(r,e){var n=fr(r,r.nodes());n=n.slice(0,n.length-1),u(n,function(o){Re(r,e,o)})}f(ur,"initCutValues");function Re(r,e,n){var o=r.node(n),t=o.parent;r.edge(n,t).cutvalue=Ur(r,e,n)}f(Re,"assignCutValue");function Ur(r,e,n){var o=r.node(n),t=o.parent,i=!0,a=e.edge(n,t),s=0;return a||(i=!1,a=e.edge(t,n)),s=a.weight,u(e.nodeEdges(n),function(d){var c=d.v===n,h=c?d.w:d.v;if(h!==t){var l=c===i,m=e.edge(d).weight;if(s+=l?m:-m,Me(r,n,h)){var v=r.edge(n,h).cutvalue;s+=l?-v:v}}}),s}f(Ur,"calcCutValue");function dr(r,e){arguments.length<2&&(e=r.nodes()[0]),Wr(r,{},1,e)}f(dr,"initLowLimValues");function Wr(r,e,n,o,t){var i=n,a=r.node(o);return e[o]=!0,u(r.neighbors(o),function(s){p(e,s)||(n=Wr(r,e,n,s,o))}),a.low=i,a.lim=n++,t?a.parent=t:delete a.parent,n}f(Wr,"dfsAssignLowLim");function qr(r){return U(r.edges(),function(e){return r.edge(e).cutvalue<0})}f(qr,"leaveEdge");function Xr(r,e,n){var o=n.v,t=n.w;e.hasEdge(o,t)||(o=n.w,t=n.v);var i=r.node(o),a=r.node(t),s=i,d=!1;i.lim>a.lim&&(s=a,d=!0);var c=L(e.edges(),function(h){return d===zr(r,r.node(h.v),s)&&d!==zr(r,r.node(h.w),s)});return A(c,function(h){return G(e,h)})}f(Xr,"enterEdge");function Hr(r,e,n,o){var t=n.v,i=n.w;r.removeEdge(t,i),r.setEdge(o.v,o.w,{}),dr(r),ur(r,e),Se(r,e)}f(Hr,"exchangeEdges");function Se(r,e){var n=U(r.nodes(),function(t){return!e.node(t).parent}),o=sr(r,n);o=o.slice(1),u(o,function(t){var i=r.node(t).parent,a=e.edge(t,i),s=!1;a||(a=e.edge(i,t),s=!0),e.node(t).rank=e.node(i).rank+(s?a.minlen:-a.minlen)})}f(Se,"updateRanks");function Me(r,e,n){return r.hasEdge(e,n)}f(Me,"isTreeEdge");function zr(r,e,n){return n.low<=e.lim&&e.lim<=n.lim}f(zr,"isDescendant");function cr(r){switch(r.graph().ranker){case"network-simplex":Jr(r);break;case"tight-tree":Fe(r);break;case"longest-path":Pe(r);break;default:Jr(r)}}f(cr,"rank");var Pe=W;function Fe(r){W(r),J(r)}f(Fe,"tightTreeRanker");function Jr(r){P(r)}f(Jr,"networkSimplexRanker");function Kr(r){var e=N(r,"root",{},"_root"),n=Oe(r),o=k(T(n))-1,t=2*o+1;r.graph().nestingRoot=e,u(r.edges(),function(a){r.edge(a).minlen*=t});var i=Ge(r)+1;u(r.children(),function(a){Qr(r,e,t,i,o,n,a)}),r.graph().nodeRankFactor=t}f(Kr,"run");function Qr(r,e,n,o,t,i,a){var s=r.children(a);if(!s.length){a!==e&&r.setEdge(e,a,{weight:0,minlen:n});return}var d=rr(r,"_bt"),c=rr(r,"_bb"),h=r.node(a);r.setParent(d,a),h.borderTop=d,r.setParent(c,a),h.borderBottom=c,u(s,function(l){Qr(r,e,n,o,t,i,l);var m=r.node(l),v=m.borderTop?m.borderTop:l,_=m.borderBottom?m.borderBottom:l,b=m.borderTop?o:2*o,Y=v!==_?1:t-i[a]+1;r.setEdge(d,v,{weight:b,minlen:Y,nestingEdge:!0}),r.setEdge(_,c,{weight:b,minlen:Y,nestingEdge:!0})}),r.parent(a)||r.setEdge(e,d,{weight:0,minlen:t+i[a]})}f(Qr,"dfs");function Oe(r){var e={};function n(o,t){var i=r.children(o);i&&i.length&&u(i,function(a){n(a,t+1)}),e[o]=t}return f(n,"dfs"),u(r.children(),function(o){n(o,1)}),e}f(Oe,"treeDepths");function Ge(r){return O(r.edges(),function(e,n){return e+r.edge(n).weight},0)}f(Ge,"sumWeights");function Zr(r){var e=r.graph();r.removeNode(e.nestingRoot),delete e.nestingRoot,u(r.edges(),function(n){var o=r.edge(n);o.nestingEdge&&r.removeEdge(n)})}f(Zr,"cleanup");function $r(r,e,n){var o={},t;u(n,function(i){for(var a=r.parent(i),s,d;a;){if(s=r.parent(a),s?(d=o[s],o[s]=a):(d=t,t=a),d&&d!==a){e.setEdge(d,a);return}a=s}})}f($r,"addSubgraphConstraints");function re(r,e,n){var o=Be(r),t=new y({compound:!0}).setGraph({root:o}).setDefaultNodeLabel(function(i){return r.node(i)});return u(r.nodes(),function(i){var a=r.node(i),s=r.parent(i);(a.rank===e||a.minRank<=e&&e<=a.maxRank)&&(t.setNode(i),t.setParent(i,s||o),u(r[n](i),function(d){var c=d.v===i?d.w:d.v,h=t.edge(c,i),l=x(h)?0:h.weight;t.setEdge(c,i,{weight:r.edge(d).weight+l})}),p(a,"minRank")&&t.setNode(i,{borderLeft:a.borderLeft[e],borderRight:a.borderRight[e]}))}),t}f(re,"buildLayerGraph");function Be(r){for(var e;r.hasNode(e=j("_root")););return e}f(Be,"createRootNode");function ee(r,e){for(var n=0,o=1;o<e.length;++o)n+=Ae(r,e[o-1],e[o]);return n}f(ee,"crossCount");function Ae(r,e,n){for(var o=Z(n,w(n,function(c,h){return h})),t=I(w(e,function(c){return C(w(r.outEdges(c),function(h){return{pos:o[h.w],weight:r.edge(h).weight}}),"pos")})),i=1;i<n.length;)i<<=1;var a=2*i-1;i-=1;var s=w(new Array(a),function(){return 0}),d=0;return u(t.forEach(function(c){var h=c.pos+i;s[h]+=c.weight;for(var l=0;h>0;)h%2&&(l+=s[h+1]),h=h-1>>1,s[h]+=c.weight;d+=c.weight*l})),d}f(Ae,"twoLayerCrossCount");function ne(r){var e={},n=L(r.nodes(),function(s){return!r.children(s).length}),o=k(w(n,function(s){return r.node(s).rank})),t=w(g(o+1),function(){return[]});function i(s){if(!p(e,s)){e[s]=!0;var d=r.node(s);t[d.rank].push(s),u(r.successors(s),i)}}f(i,"dfs");var a=C(n,function(s){return r.node(s).rank});return u(a,i),t}f(ne,"initOrder");function oe(r,e){return w(e,function(n){var o=r.inEdges(n);if(o.length){var t=O(o,function(i,a){var s=r.edge(a),d=r.node(a.v);return{sum:i.sum+s.weight*d.order,weight:i.weight+s.weight}},{sum:0,weight:0});return{v:n,barycenter:t.sum/t.weight,weight:t.weight}}else return{v:n}})}f(oe,"barycenter");function te(r,e){var n={};u(r,function(t,i){var a=n[t.v]={indegree:0,in:[],out:[],vs:[t.v],i};x(t.barycenter)||(a.barycenter=t.barycenter,a.weight=t.weight)}),u(e.edges(),function(t){var i=n[t.v],a=n[t.w];!x(i)&&!x(a)&&(a.indegree++,i.out.push(n[t.w]))});var o=L(n,function(t){return!t.indegree});return De(o)}f(te,"resolveConflicts");function De(r){var e=[];function n(i){return function(a){a.merged||(x(a.barycenter)||x(i.barycenter)||a.barycenter>=i.barycenter)&&je(i,a)}}f(n,"handleIn");function o(i){return function(a){a.in.push(i),--a.indegree===0&&r.push(a)}}for(f(o,"handleOut");r.length;){var t=r.pop();e.push(t),u(t.in.reverse(),n(t)),u(t.out,o(t))}return w(L(e,function(i){return!i.merged}),function(i){return D(i,["vs","i","barycenter","weight"])})}f(De,"doResolveConflicts");function je(r,e){var n=0,o=0;r.weight&&(n+=r.barycenter*r.weight,o+=r.weight),e.weight&&(n+=e.barycenter*e.weight,o+=e.weight),r.vs=e.vs.concat(r.vs),r.barycenter=n/o,r.weight=o,r.i=Math.min(e.i,r.i),e.merged=!0}f(je,"mergeEntries");function ae(r,e){var n=Nr(r,function(h){return p(h,"barycenter")}),o=n.lhs,t=C(n.rhs,function(h){return-h.i}),i=[],a=0,s=0,d=0;o.sort(Ye(!!e)),d=ie(i,t,d),u(o,function(h){d+=h.vs.length,i.push(h.vs),a+=h.barycenter*h.weight,s+=h.weight,d=ie(i,t,d)});var c={vs:I(i)};return s&&(c.barycenter=a/s,c.weight=s),c}f(ae,"sort");function ie(r,e,n){for(var o;e.length&&(o=F(e)).i<=n;)e.pop(),r.push(o.vs),n++;return n}f(ie,"consumeUnsortable");function Ye(r){return function(e,n){return e.barycenter<n.barycenter?-1:e.barycenter>n.barycenter?1:r?n.i-e.i:e.i-n.i}}f(Ye,"compareWithBias");function hr(r,e,n,o){var t=r.children(e),i=r.node(e),a=i?i.borderLeft:void 0,s=i?i.borderRight:void 0,d={};a&&(t=L(t,function(_){return _!==a&&_!==s}));var c=oe(r,t);u(c,function(_){if(r.children(_.v).length){var b=hr(r,_.v,n,o);d[_.v]=b,p(b,"barycenter")&&Ue(_,b)}});var h=te(c,n);ze(h,d);var l=ae(h,o);if(a&&(l.vs=I([a,l.vs,s]),r.predecessors(a).length)){var m=r.node(r.predecessors(a)[0]),v=r.node(r.predecessors(s)[0]);p(l,"barycenter")||(l.barycenter=0,l.weight=0),l.barycenter=(l.barycenter*l.weight+m.order+v.order)/(l.weight+2),l.weight+=2}return l}f(hr,"sortSubgraph");function ze(r,e){u(r,function(n){n.vs=I(n.vs.map(function(o){return e[o]?e[o].vs:o}))})}f(ze,"expandSubgraphs");function Ue(r,e){x(r.barycenter)?(r.barycenter=e.barycenter,r.weight=e.weight):(r.barycenter=(r.barycenter*r.weight+e.barycenter*e.weight)/(r.weight+e.weight),r.weight+=e.weight)}f(Ue,"mergeBarycenters");function ue(r){var e=er(r),n=fe(r,g(1,e+1),"inEdges"),o=fe(r,g(e-1,-1,-1),"outEdges"),t=ne(r);se(r,t);for(var i=Number.POSITIVE_INFINITY,a,s=0,d=0;d<4;++s,++d){We(s%2?n:o,s%4>=2),t=S(r);var c=ee(r,t);c<i&&(d=0,a=_r(t),i=c)}se(r,a)}f(ue,"order");function fe(r,e,n){return w(e,function(o){return re(r,o,n)})}f(fe,"buildLayerGraphs");function We(r,e){var n=new y;u(r,function(o){var t=o.graph().root,i=hr(o,t,n,e);u(i.vs,function(a,s){o.node(a).order=s}),$r(o,n,i.vs)})}f(We,"sweepLayerGraphs");function se(r,e){u(e,function(n){u(n,function(o,t){r.node(o).order=t})})}f(se,"assignOrder");function de(r){var e=Xe(r);u(r.graph().dummyChains,function(n){for(var o=r.node(n),t=o.edgeObj,i=qe(r,e,t.v,t.w),a=i.path,s=i.lca,d=0,c=a[d],h=!0;n!==t.w;){if(o=r.node(n),h){for(;(c=a[d])!==s&&r.node(c).maxRank<o.rank;)d++;c===s&&(h=!1)}if(!h){for(;d<a.length-1&&r.node(c=a[d+1]).minRank<=o.rank;)d++;c=a[d]}r.setParent(n,c),n=r.successors(n)[0]}})}f(de,"parentDummyChains");function qe(r,e,n,o){var t=[],i=[],a=Math.min(e[n].low,e[o].low),s=Math.max(e[n].lim,e[o].lim),d,c;d=n;do d=r.parent(d),t.push(d);while(d&&(e[d].low>a||s>e[d].lim));for(c=d,d=o;(d=r.parent(d))!==c;)i.push(d);return{path:t.concat(i.reverse()),lca:c}}f(qe,"findPath");function Xe(r){var e={},n=0;function o(t){var i=n;u(r.children(t),o),e[t]={low:i,lim:n++}}return f(o,"dfs"),u(r.children(),o),e}f(Xe,"postorder");function He(r,e){var n={};function o(t,i){var a=0,s=0,d=t.length,c=F(i);return u(i,function(h,l){var m=Ke(r,h),v=m?r.node(m).order:d;(m||h===c)&&(u(i.slice(s,l+1),function(_){u(r.predecessors(_),function(b){var Y=r.node(b),mr=Y.order;(mr<a||v<mr)&&!(Y.dummy&&r.node(_).dummy)&&ce(n,b,_)})}),s=l+1,a=v)}),i}return f(o,"visitLayer"),O(e,o),n}f(He,"findType1Conflicts");function Je(r,e){var n={};function o(i,a,s,d,c){var h;u(g(a,s),function(l){h=i[l],r.node(h).dummy&&u(r.predecessors(h),function(m){var v=r.node(m);v.dummy&&(v.order<d||v.order>c)&&ce(n,m,h)})})}f(o,"scan");function t(i,a){var s=-1,d,c=0;return u(a,function(h,l){if(r.node(h).dummy==="border"){var m=r.predecessors(h);m.length&&(d=r.node(m[0]).order,o(a,c,l,s,d),c=l,s=d)}o(a,c,a.length,d,i.length)}),a}return f(t,"visitLayer"),O(e,t),n}f(Je,"findType2Conflicts");function Ke(r,e){if(r.node(e).dummy)return U(r.predecessors(e),function(n){return r.node(n).dummy})}f(Ke,"findOtherInnerSegmentNode");function ce(r,e,n){if(e>n){var o=e;e=n,n=o}var t=r[e];t||(r[e]=t={}),t[n]=!0}f(ce,"addConflict");function Qe(r,e,n){if(e>n){var o=e;e=n,n=o}return p(r[e],n)}f(Qe,"hasConflict");function Ze(r,e,n,o){var t={},i={},a={};return u(e,function(s){u(s,function(d,c){t[d]=d,i[d]=d,a[d]=c})}),u(e,function(s){var d=-1;u(s,function(c){var h=o(c);if(h.length){h=C(h,function(b){return a[b]});for(var l=(h.length-1)/2,m=Math.floor(l),v=Math.ceil(l);m<=v;++m){var _=h[m];i[c]===c&&d<a[_]&&!Qe(n,c,_)&&(i[_]=c,i[c]=t[c]=t[_],d=a[_])}}})}),{root:t,align:i}}f(Ze,"verticalAlignment");function $e(r,e,n,o,t){var i={},a=rn(r,e,n,t),s=t?"borderLeft":"borderRight";function d(l,m){for(var v=a.nodes(),_=v.pop(),b={};_;)b[_]?l(_):(b[_]=!0,v.push(_),v=v.concat(m(_))),_=v.pop()}f(d,"iterate");function c(l){i[l]=a.inEdges(l).reduce(function(m,v){return Math.max(m,i[v.v]+a.edge(v))},0)}f(c,"pass1");function h(l){var m=a.outEdges(l).reduce(function(_,b){return Math.min(_,i[b.w]-a.edge(b))},Number.POSITIVE_INFINITY),v=r.node(l);m!==Number.POSITIVE_INFINITY&&v.borderType!==s&&(i[l]=Math.max(i[l],m))}return f(h,"pass2"),d(c,a.predecessors.bind(a)),d(h,a.successors.bind(a)),u(o,function(l){i[l]=i[n[l]]}),i}f($e,"horizontalCompaction");function rn(r,e,n,o){var t=new y,i=r.graph(),a=tn(i.nodesep,i.edgesep,o);return u(e,function(s){var d;u(s,function(c){var h=n[c];if(t.setNode(h),d){var l=n[d],m=t.edge(l,h);t.setEdge(l,h,Math.max(a(r,c,d),m||0))}d=c})}),t}f(rn,"buildBlockGraph");function en(r,e){return A(T(e),function(n){var o=Number.NEGATIVE_INFINITY,t=Number.POSITIVE_INFINITY;return Er(n,function(i,a){var s=an(r,a)/2;o=Math.max(i+s,o),t=Math.min(i-s,t)}),o-t})}f(en,"findSmallestWidthAlignment");function nn(r,e){var n=T(e),o=R(n),t=k(n);u(["u","d"],function(i){u(["l","r"],function(a){var s=i+a,d=r[s],c;if(d!==e){var h=T(d);c=a==="l"?o-R(h):t-k(h),c&&(r[s]=B(d,function(l){return l+c}))}})})}f(nn,"alignCoordinates");function on(r,e){return B(r.ul,function(n,o){if(e)return r[e.toLowerCase()][o];var t=C(w(r,o));return(t[1]+t[2])/2})}f(on,"balance");function he(r){var e=S(r),n=z(He(r,e),Je(r,e)),o={},t;u(["u","d"],function(a){t=a==="u"?e:T(e).reverse(),u(["l","r"],function(s){s==="r"&&(t=w(t,function(l){return T(l).reverse()}));var d=(a==="u"?r.predecessors:r.successors).bind(r),c=Ze(r,t,n,d),h=$e(r,t,c.root,c.align,s==="r");s==="r"&&(h=B(h,function(l){return-l})),o[a+s]=h})});var i=en(r,o);return nn(o,i),on(o,r.graph().align)}f(he,"positionX");function tn(r,e,n){return function(o,t,i){var a=o.node(t),s=o.node(i),d=0,c;if(d+=a.width/2,p(a,"labelpos"))switch(a.labelpos.toLowerCase()){case"l":c=-a.width/2;break;case"r":c=a.width/2;break}if(c&&(d+=n?c:-c),c=0,d+=(a.dummy?e:r)/2,d+=(s.dummy?e:r)/2,d+=s.width/2,p(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":c=s.width/2;break;case"r":c=-s.width/2;break}return c&&(d+=n?c:-c),c=0,d}}f(tn,"sep");function an(r,e){return r.node(e).width}f(an,"width");function le(r){r=X(r),fn(r),br(he(r),function(e,n){r.node(n).x=e})}f(le,"position");function fn(r){var e=S(r),n=r.graph().ranksep,o=0;u(e,function(t){var i=k(w(t,function(a){return r.node(a).height}));u(t,function(a){r.node(a).y=o+i/2}),o+=i+n})}f(fn,"positionY");function sn(r,e){var n=e&&e.debugTiming?Ir:Lr;n("layout",function(){var o=n(" buildLayoutGraph",function(){return En(r)});n(" runLayout",function(){un(o,n)}),n(" updateInputGraph",function(){dn(r,o)})})}f(sn,"layout");function un(r,e){e(" makeSpaceForEdgeLabels",function(){bn(r)}),e(" removeSelfEdges",function(){Tn(r)}),e(" acyclic",function(){Gr(r)}),e(" nestingGraph.run",function(){Kr(r)}),e(" rank",function(){cr(X(r))}),e(" injectEdgeLabelProxies",function(){yn(r)}),e(" removeEmptyRanks",function(){gr(r)}),e(" nestingGraph.cleanup",function(){Zr(r)}),e(" normalizeRanks",function(){kr(r)}),e(" assignRankMinMax",function(){xn(r)}),e(" removeEdgeLabelProxies",function(){kn(r)}),e(" normalize.run",function(){Ar(r)}),e(" parentDummyChains",function(){de(r)}),e(" addBorderSegments",function(){Tr(r)}),e(" order",function(){ue(r)}),e(" insertSelfEdges",function(){Rn(r)}),e(" adjustCoordinateSystem",function(){Sr(r)}),e(" position",function(){le(r)}),e(" positionSelfEdges",function(){Sn(r)}),e(" removeBorderNodes",function(){Cn(r)}),e(" normalize.undo",function(){Dr(r)}),e(" fixupEdgeLabelCoords",function(){In(r)}),e(" undoCoordinateSystem",function(){Mr(r)}),e(" translateGraph",function(){gn(r)}),e(" assignNodeIntersects",function(){Nn(r)}),e(" reversePoints",function(){Ln(r)}),e(" acyclic.undo",function(){Vr(r)})}f(un,"runLayout");function dn(r,e){u(r.nodes(),function(n){var o=r.node(n),t=e.node(n);o&&(o.x=t.x,o.y=t.y,e.children(n).length&&(o.width=t.width,o.height=t.height))}),u(r.edges(),function(n){var o=r.edge(n),t=e.edge(n);o.points=t.points,p(t,"x")&&(o.x=t.x,o.y=t.y)}),r.graph().width=e.graph().width,r.graph().height=e.graph().height}f(dn,"updateInputGraph");var cn=["nodesep","edgesep","ranksep","marginx","marginy"],hn={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},ln=["acyclicer","ranker","rankdir","align"],pn=["width","height"],mn={width:0,height:0},vn=["minlen","weight","width","height","labeloffset"],_n={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},wn=["labelpos"];function En(r){var e=new y({multigraph:!0,compound:!0}),n=pr(r.graph());return e.setGraph(z({},hn,lr(n,cn),D(n,ln))),u(r.nodes(),function(o){var t=pr(r.node(o));e.setNode(o,wr(lr(t,pn),mn)),e.setParent(o,r.parent(o))}),u(r.edges(),function(o){var t=pr(r.edge(o));e.setEdge(o,z({},_n,lr(t,vn),D(t,wn)))}),e}f(En,"buildLayoutGraph");function bn(r){var e=r.graph();e.ranksep/=2,u(r.edges(),function(n){var o=r.edge(n);o.minlen*=2,o.labelpos.toLowerCase()!=="c"&&(e.rankdir==="TB"||e.rankdir==="BT"?o.width+=o.labeloffset:o.height+=o.labeloffset)})}f(bn,"makeSpaceForEdgeLabels");function yn(r){u(r.edges(),function(e){var n=r.edge(e);if(n.width&&n.height){var o=r.node(e.v),t=r.node(e.w),i={rank:(t.rank-o.rank)/2+o.rank,e};N(r,"edge-proxy",i,"_ep")}})}f(yn,"injectEdgeLabelProxies");function xn(r){var e=0;u(r.nodes(),function(n){var o=r.node(n);o.borderTop&&(o.minRank=r.node(o.borderTop).rank,o.maxRank=r.node(o.borderBottom).rank,e=k(e,o.maxRank))}),r.graph().maxRank=e}f(xn,"assignRankMinMax");function kn(r){u(r.nodes(),function(e){var n=r.node(e);n.dummy==="edge-proxy"&&(r.edge(n.e).labelRank=n.rank,r.removeNode(e))})}f(kn,"removeEdgeLabelProxies");function gn(r){var e=Number.POSITIVE_INFINITY,n=0,o=Number.POSITIVE_INFINITY,t=0,i=r.graph(),a=i.marginx||0,s=i.marginy||0;function d(c){var h=c.x,l=c.y,m=c.width,v=c.height;e=Math.min(e,h-m/2),n=Math.max(n,h+m/2),o=Math.min(o,l-v/2),t=Math.max(t,l+v/2)}f(d,"getExtremes"),u(r.nodes(),function(c){d(r.node(c))}),u(r.edges(),function(c){var h=r.edge(c);p(h,"x")&&d(h)}),e-=a,o-=s,u(r.nodes(),function(c){var h=r.node(c);h.x-=e,h.y-=o}),u(r.edges(),function(c){var h=r.edge(c);u(h.points,function(l){l.x-=e,l.y-=o}),p(h,"x")&&(h.x-=e),p(h,"y")&&(h.y-=o)}),i.width=n-e+a,i.height=t-o+s}f(gn,"translateGraph");function Nn(r){u(r.edges(),function(e){var n=r.edge(e),o=r.node(e.v),t=r.node(e.w),i,a;n.points?(i=n.points[0],a=n.points[n.points.length-1]):(n.points=[],i=t,a=o),n.points.unshift($(o,i)),n.points.push($(t,a))})}f(Nn,"assignNodeIntersects");function In(r){u(r.edges(),function(e){var n=r.edge(e);if(p(n,"x"))switch((n.labelpos==="l"||n.labelpos==="r")&&(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset;break}})}f(In,"fixupEdgeLabelCoords");function Ln(r){u(r.edges(),function(e){var n=r.edge(e);n.reversed&&n.points.reverse()})}f(Ln,"reversePointsForReversedEdges");function Cn(r){u(r.nodes(),function(e){if(r.children(e).length){var n=r.node(e),o=r.node(n.borderTop),t=r.node(n.borderBottom),i=r.node(F(n.borderLeft)),a=r.node(F(n.borderRight));n.width=Math.abs(a.x-i.x),n.height=Math.abs(t.y-o.y),n.x=i.x+n.width/2,n.y=o.y+n.height/2}}),u(r.nodes(),function(e){r.node(e).dummy==="border"&&r.removeNode(e)})}f(Cn,"removeBorderNodes");function Tn(r){u(r.edges(),function(e){if(e.v===e.w){var n=r.node(e.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e,label:r.edge(e)}),r.removeEdge(e)}})}f(Tn,"removeSelfEdges");function Rn(r){var e=S(r);u(e,function(n){var o=0;u(n,function(t,i){var a=r.node(t);a.order=i+o,u(a.selfEdges,function(s){N(r,"selfedge",{width:s.label.width,height:s.label.height,rank:a.rank,order:i+ ++o,e:s.e,label:s.label},"_se")}),delete a.selfEdges})})}f(Rn,"insertSelfEdges");function Sn(r){u(r.nodes(),function(e){var n=r.node(e);if(n.dummy==="selfedge"){var o=r.node(n.e.v),t=o.x+o.width/2,i=o.y,a=n.x-t,s=o.height/2;r.setEdge(n.e,n.label),r.removeNode(e),n.label.points=[{x:t+2*a/3,y:i-s},{x:t+5*a/6,y:i-s},{x:t+a,y:i},{x:t+5*a/6,y:i+s},{x:t+2*a/3,y:i+s}],n.label.x=n.x,n.label.y=n.y}})}f(Sn,"positionSelfEdges");function lr(r,e){return B(D(r,e),Number)}f(lr,"selectNumberAttrs");function pr(r){var e={};return u(r,function(n,o){e[o.toLowerCase()]=n}),e}f(pr,"canonicalize");export{sn as a};