@dagrejs/dagre 3.1.1 → 3.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dagre.cjs CHANGED
@@ -1,3 +1,3 @@
1
- "use strict";var J=Object.defineProperty;var yn=Object.getOwnPropertyDescriptor;var Nn=Object.getOwnPropertyNames;var wn=Object.prototype.hasOwnProperty;var Gn=(e,n,t)=>n in e?J(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var ve=(e,n)=>{for(var t in n)J(e,t,{get:n[t],enumerable:!0})},xn=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of Nn(n))!wn.call(e,o)&&o!==t&&J(e,o,{get:()=>n[o],enumerable:!(r=yn(n,o))||r.enumerable});return e};var kn=e=>xn(J({},"__esModule",{value:!0}),e);var Oe=(e,n,t)=>Gn(e,typeof n!="symbol"?n+"":n,t);var Jt={};ve(Jt,{Graph:()=>C,debug:()=>oe,default:()=>Ut,graphlib:()=>$,layout:()=>re,util:()=>qt,version:()=>Z});module.exports=kn(Jt);var $={};ve($,{Graph:()=>C,alg:()=>D.alg});var D=require("@dagrejs/graphlib"),C=D.Graph;function P(e,n,t,r){let o=r;for(;e.hasNode(o);)o=z(r);return t.dummy=n,e.setNode(o,t),o}function Te(e){let n=new C().setGraph(e.graph());return e.nodes().forEach(t=>n.setNode(t,e.node(t))),e.edges().forEach(t=>{let r=n.edge(t.v,t.w)||{weight:0,minlen:1},o=e.edge(t);n.setEdge(t.v,t.w,{weight:r.weight+o.weight,minlen:Math.max(r.minlen,o.minlen)})}),n}function K(e){let n=new C({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(t=>{e.children(t).length||n.setNode(t,e.node(t))}),e.edges().forEach(t=>{n.setEdge(t,e.edge(t))}),n}function ie(e,n){let t=e.x,r=e.y,o=n.x-t,i=n.y-r,s=e.width/2,a=e.height/2;if(!o&&!i)throw new Error("Not possible to find intersection inside of the rectangle");let d,u;return Math.abs(i)*s>Math.abs(o)*a?(i<0&&(a=-a),d=a*o/i,u=a):(o<0&&(s=-s),d=s,u=s*i/o),{x:t+d,y:r+u}}function _(e){let n=A(ae(e)+1).map(()=>[]);return e.nodes().forEach(t=>{let r=e.node(t),o=r.rank;o!==void 0&&(n[o]||(n[o]=[]),n[o][r.order]=t)}),n}function Re(e){let n=e.nodes().map(r=>{let o=e.node(r).rank;return o===void 0?Number.MAX_VALUE:o}),t=M(Math.min,n);e.nodes().forEach(r=>{let o=e.node(r);Object.hasOwn(o,"rank")&&(o.rank-=t)})}function Ce(e){let n=e.nodes().map(s=>e.node(s).rank).filter(s=>s!==void 0),t=M(Math.min,n),r=[];e.nodes().forEach(s=>{let a=e.node(s).rank-t;r[a]||(r[a]=[]),r[a].push(s)});let o=0,i=e.graph().nodeRankFactor;Array.from(r).forEach((s,a)=>{s===void 0&&a%i!==0?--o:s!==void 0&&o&&s.forEach(d=>e.node(d).rank+=o)})}function se(e,n,t,r){let o={width:0,height:0};return arguments.length>=4&&(o.rank=t,o.order=r),P(e,"border",o,n)}function vn(e,n=Se){let t=[];for(let r=0;r<e.length;r+=n){let o=e.slice(r,r+n);t.push(o)}return t}var Se=65535;function M(e,n){if(n.length>Se){let t=vn(n);return e(...t.map(r=>e(...r)))}else return e(...n)}function ae(e){let t=e.nodes().map(r=>{let o=e.node(r).rank;return o===void 0?Number.MIN_VALUE:o});return M(Math.max,t)}function Me(e,n){let t={lhs:[],rhs:[]};return e.forEach(r=>{n(r)?t.lhs.push(r):t.rhs.push(r)}),t}function de(e,n){let t=Date.now();try{return n()}finally{console.log(e+" time: "+(Date.now()-t)+"ms")}}function q(e,n){return n()}var On=0;function z(e){let n=++On;return e+(""+n)}function A(e,n,t=1){n==null&&(n=e,e=0);let r=i=>i<n;t<0&&(r=i=>n<i);let o=[];for(let i=e;r(i);i+=t)o.push(i);return o}function X(e,n){let t={};for(let r of n)e[r]!==void 0&&(t[r]=e[r]);return t}function H(e,n){let t;return typeof n=="string"?t=r=>r[n]:t=n,Object.entries(e).reduce((r,[o,i])=>(r[o]=t(i,o),r),{})}function je(e,n){return e.reduce((t,r,o)=>(t[r]=n[o],t),{})}var Y="\0";function Q(e,n,t){var u,l,c,f,b,p;if(!(e&&n&&t&&n.dummy==="edge"&&t.dummy==="edge"&&n.edgeObj&&t.edgeObj&&e[n.edgeObj.v]&&e[t.edgeObj.v]&&e[n.edgeObj.w]&&e[t.edgeObj.w]))return 0;let r=!0;n.edgeObj.w===t.edgeObj.w&&(r=!1);let o=r?(l=(u=e[n.edgeObj.v])==null?void 0:u.rank)!=null?l:NaN+1:(f=(c=e[n.edgeObj.w])==null?void 0:c.rank)!=null?f:NaN-1,i=Object.entries(e).find(L=>{var y,E;return((y=L[1].edgeObj)==null?void 0:y.v)===n.edgeObj.v&&((E=L[1].edgeObj)==null?void 0:E.w)===n.edgeObj.w&&L[1].rank===o}),s=Object.entries(e).find(L=>{var y,E;return((y=L[1].edgeObj)==null?void 0:y.v)===t.edgeObj.v&&((E=L[1].edgeObj)==null?void 0:E.w)===t.edgeObj.w&&L[1].rank===o});if(!i||!s)return 0;let a=(b=i[1].order)!=null?b:NaN,d=(p=s[1].order)!=null?p:NaN;return isNaN(a-d)?0:a-d}var Z="3.1.1";var le=class{constructor(){Oe(this,"_sentinel");let n={};n._next=n._prev=n,this._sentinel=n}dequeue(){let n=this._sentinel,t=n._prev;if(t!==n)return Ie(t),t}enqueue(n){let t=this._sentinel;n._prev&&n._next&&Ie(n),n._next=t._next,t._next._prev=n,t._next=n,n._prev=t}toString(){let n=[],t=this._sentinel,r=t._prev;for(;r!==t;)n.push(JSON.stringify(r,Tn)),r=r._prev;return"["+n.join(", ")+"]"}};function Ie(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function Tn(e,n){if(e!=="_next"&&e!=="_prev")return n}var Pe=le;var Rn=()=>1;function be(e,n){if(e.nodeCount()<=1)return[];let t=Sn(e,n||Rn);return Cn(t.graph,t.buckets,t.zeroIdx).flatMap(o=>e.outEdges(o.v,o.w)||[])}function Cn(e,n,t){var a;let r=[],o=n[n.length-1],i=n[0],s;for(;e.nodeCount();){for(;s=i.dequeue();)ue(e,n,t,s);for(;s=o.dequeue();)ue(e,n,t,s);if(e.nodeCount()){for(let d=n.length-2;d>0;--d)if(s=(a=n[d])==null?void 0:a.dequeue(),s){r=r.concat(ue(e,n,t,s,!0)||[]);break}}}return r}function ue(e,n,t,r,o){let i=[],s=o?i:void 0;return(e.inEdges(r.v)||[]).forEach(a=>{let d=e.edge(a),u=e.node(a.v);o&&i.push({v:a.v,w:a.w}),u.out-=d,ce(n,t,u)}),(e.outEdges(r.v)||[]).forEach(a=>{let d=e.edge(a),u=a.w,l=e.node(u);l.in-=d,ce(n,t,l)}),e.removeNode(r.v),s}function Sn(e,n){let t=new C,r=0,o=0;e.nodes().forEach(a=>{t.setNode(a,{v:a,in:0,out:0})}),e.edges().forEach(a=>{let d=t.edge(a.v,a.w)||0,u=n(a),l=d+u;t.setEdge(a.v,a.w,l);let c=t.node(a.v),f=t.node(a.w);o=Math.max(o,c.out+=u),r=Math.max(r,f.in+=u)});let i=Mn(o+r+3).map(()=>new Pe),s=r+1;return t.nodes().forEach(a=>{ce(i,s,t.node(a))}),{graph:t,buckets:i,zeroIdx:s}}function ce(e,n,t){var r,o,i;t.out?t.in?(i=e[t.out-t.in+n])==null||i.enqueue(t):(o=e[e.length-1])==null||o.enqueue(t):(r=e[0])==null||r.enqueue(t)}function Mn(e){let n=[];for(let t=0;t<e;t++)n.push(t);return n}function _e(e,n){(e.graph().acyclicer==="greedy"?be(e,r(e)):jn(e,n!=null?n:null)).forEach(o=>{let i=e.edge(o);e.removeEdge(o),i.forwardName=o.name,i.reversed=!0,e.setEdge(o.w,o.v,i,z("rev"))});function r(o){return i=>o.edge(i).weight}}function jn(e,n){let t=[],r={},o={};function i(d){Object.hasOwn(o,d)||(o[d]=!0,r[d]=!0,e.outEdges(d).forEach(u=>{Object.hasOwn(r,u.w)?t.push(u):i(u.w)}),delete r[d])}function s(d){var u;Object.hasOwn(o,d)||(o[d]=!0,r[d]=!0,(u=e.outEdges(d))==null||u.forEach(l=>{var c,f;Object.hasOwn(r,l.w)||((c=n.node(d))==null?void 0:c.rank)>((f=n.node(l.w))==null?void 0:f.rank)&&In(e,l.w,l)?t.push(l):s(l.w)}),delete r[d])}let a=i;return n&&typeof n.node=="function"&&(a=s),e.sources().forEach(a),e.nodes().forEach(a),t}function Fe(e){e.edges().forEach(n=>{let t=e.edge(n);if(t.reversed){e.removeEdge(n);let r=t.forwardName;delete t.reversed,delete t.forwardName,e.setEdge(n.w,n.v,t,r)}})}function In(e,n,t){let r=new Set;function o(i){var s;if(e.sources().includes(i))return!0;r.add(i);for(let a of(s=e.inEdges(i))!=null?s:[])if(!(a.v===t.v&&a.w===t.w)&&!r.has(a.v)&&o(a.v))return!0;return!1}return o(n)}function Ae(e){e.graph().dummyChains=[],e.edges().forEach(n=>_n(e,n))}function _n(e,n){let t=n.v,r=e.node(t).rank,o=n.w,i=e.node(o).rank,s=n.name,a=e.edge(n),d=a.labelRank;if(i===r+1)return;e.removeEdge(n);let u,l,c;for(c=0,++r;r<i;++c,++r)a.points=[],l={width:0,height:0,edgeLabel:a,edgeObj:n,rank:r},u=P(e,"edge",l,"_d"),r===d&&(l.width=a.width,l.height=a.height,l.dummy="edge-label",l.labelpos=a.labelpos),e.setEdge(t,u,{weight:a.weight},s),c===0&&e.graph().dummyChains.push(u),t=u;e.setEdge(t,o,{weight:a.weight},s)}function Ve(e){e.graph().dummyChains.forEach(n=>{let t=e.node(n),r=t.edgeLabel,o;for(e.setEdge(t.edgeObj,r);t.dummy;)o=e.successors(n)[0],e.removeNode(n),r.points.push({x:t.x,y:t.y}),t.dummy==="edge-label"&&(r.x=t.x,r.y=t.y,r.width=t.width,r.height=t.height),n=o,t=e.node(n)})}function U(e){let n={};function t(r){let o=e.node(r);if(Object.hasOwn(n,r))return o.rank;n[r]=!0;let i=e.outEdges(r),s=i?i.map(d=>d==null?Number.POSITIVE_INFINITY:t(d.w)-e.edge(d).minlen):[],a=M(Math.min,s);return a===Number.POSITIVE_INFINITY&&(a=0),o.rank=a}e.sources().forEach(t)}function V(e,n){return e.node(n.w).rank-e.node(n.v).rank-e.edge(n).minlen}var ee=An;function An(e){let n=new C({directed:!1}),t=e.nodes();if(t.length===0)throw new Error("Graph must have at least one node");let r=t[0],o=e.nodeCount();n.setNode(r,{});let i,s;for(;Vn(n,e)<o&&(i=Yn(n,e),!!i);)s=n.hasNode(i.v)?V(e,i):-V(e,i),Wn(n,e,s);return n}function Vn(e,n){function t(r){let o=n.nodeEdges(r);o&&o.forEach(i=>{let s=i.v,a=r===s?i.w:s;!e.hasNode(a)&&!V(n,i)&&(e.setNode(a,{}),e.setEdge(r,a,{}),t(a))})}return e.nodes().forEach(t),e.nodeCount()}function Yn(e,n){return n.edges().reduce((r,o)=>{let i=Number.POSITIVE_INFINITY;return e.hasNode(o.v)!==e.hasNode(o.w)&&(i=V(n,o)),i<r[0]?[i,o]:r},[Number.POSITIVE_INFINITY,null])[1]}function Wn(e,n,t){e.nodes().forEach(r=>n.node(r).rank+=t)}var{preorder:Bn,postorder:Dn}=D.alg,We=W;W.initLowLimValues=he;W.initCutValues=fe;W.calcCutValue=Be;W.leaveEdge=Xe;W.enterEdge=He;W.exchangeEdges=qe;function W(e){e=Te(e),U(e);let n=ee(e);he(n),fe(n,e);let t,r;for(;t=Xe(n);)r=He(n,e,t),qe(n,e,t,r)}function fe(e,n){let t=Dn(e,e.nodes());t=t.slice(0,t.length-1),t.forEach(r=>Xn(e,n,r))}function Xn(e,n,t){let o=e.node(t).parent,i=e.edge(t,o);i.cutvalue=Be(e,n,t)}function Be(e,n,t){let o=e.node(t).parent,i=!0,s=n.edge(t,o),a=0;s||(i=!1,s=n.edge(o,t)),a=s.weight;let d=n.nodeEdges(t);return d&&d.forEach(u=>{let l=u.v===t,c=l?u.w:u.v;if(c!==o){let f=l===i,b=n.edge(u).weight;if(a+=f?b:-b,qn(e,t,c)){let L=e.edge(t,c).cutvalue;a+=f?-L:L}}}),a}function he(e,n){arguments.length<2&&(n=e.nodes()[0]),De(e,{},1,n)}function De(e,n,t,r,o){let i=t,s=e.node(r);n[r]=!0;let a=e.neighbors(r);return a&&a.forEach(d=>{Object.hasOwn(n,d)||(t=De(e,n,t,d,r))}),s.low=i,s.lim=t++,o?s.parent=o:delete s.parent,t}function Xe(e){return e.edges().find(n=>e.edge(n).cutvalue<0)}function He(e,n,t){let r=t.v,o=t.w;n.hasEdge(r,o)||(r=t.w,o=t.v);let i=e.node(r),s=e.node(o),a=i,d=!1;return i.lim>s.lim&&(a=s,d=!0),n.edges().filter(l=>d===Ye(e,e.node(l.v),a)&&d!==Ye(e,e.node(l.w),a)).reduce((l,c)=>V(n,c)<V(n,l)?c:l)}function qe(e,n,t,r){let o=t.v,i=t.w;e.removeEdge(o,i),e.setEdge(r.v,r.w,{}),he(e),fe(e,n),Hn(e,n)}function Hn(e,n){let t=e.nodes().find(o=>!e.node(o).parent);if(!t)return;let r=Bn(e,[t]);r=r.slice(1),r.forEach(o=>{let s=e.node(o).parent,a=n.edge(o,s),d=!1;a||(a=n.edge(s,o),d=!0),n.node(o).rank=n.node(s).rank+(d?a.minlen:-a.minlen)})}function qn(e,n,t){return e.hasEdge(n,t)}function Ye(e,n,t){return t.low<=n.lim&&n.lim<=t.lim}var Ue=zn;function zn(e){let n=e.graph().ranker;if(typeof n=="function")return n(e);switch(n){case"network-simplex":ze(e);break;case"tight-tree":Jn(e);break;case"longest-path":Un(e);break;case"none":break;default:ze(e)}}var Un=U;function Jn(e){U(e),ee(e)}function ze(e){We(e)}var Je=$n;function $n(e){let n=Qn(e),t=e.graph();if(!Array.isArray(t.dummyChains))return;t.dummyChains.forEach(o=>{let i=e.node(o),s=i.edgeObj,a=Kn(e,n,s.v,s.w),d=a.path,u=a.lca,l=0,c=d[l],f=!0;for(;o!==s.w;){if(i=e.node(o),f){for(;(c=d[l])!==u&&e.node(c).maxRank<i.rank;)l++;c===u&&(f=!1)}if(!f){for(;l<d.length-1&&e.node(d[l+1]).minRank<=i.rank;)l++;c=d[l]}c!==void 0&&e.setParent(o,c),o=e.successors(o)[0]}})}function Kn(e,n,t,r){let o=[],i=[],s=Math.min(n[t].low,n[r].low),a=Math.max(n[t].lim,n[r].lim),d;d=t;do d=e.parent(d),o.push(d);while(d&&(n[d].low>s||a>n[d].lim));let u=d,l=r;for(;(l=e.parent(l))!==u;)i.push(l);return{path:o.concat(i.reverse()),lca:u}}function Qn(e){let n={},t=0;function r(o){let i=t;e.children(o).forEach(r),n[o]={low:i,lim:t++}}return e.children(Y).forEach(r),n}function $e(e){let n=P(e,"root",{},"_root"),t=Zn(e),r=Object.values(t),o=M(Math.max,r)-1,i=2*o+1;e.graph().nestingRoot=n,e.edges().forEach(a=>e.edge(a).minlen*=i);let s=et(e)+1;e.children(Y).forEach(a=>{Ke(e,n,i,s,o,t,a)}),e.graph().nodeRankFactor=i}function Ke(e,n,t,r,o,i,s){var c;let a=e.children(s);if(!a.length){s!==n&&e.setEdge(n,s,{weight:0,minlen:t});return}let d=se(e,"_bt"),u=se(e,"_bb"),l=e.node(s);e.setParent(d,s),l.borderTop=d,e.setParent(u,s),l.borderBottom=u,a.forEach(f=>{var h;Ke(e,n,t,r,o,i,f);let b=e.node(f),p=b.borderTop?b.borderTop:f,L=b.borderBottom?b.borderBottom:f,y=b.borderTop?r:2*r,E=p!==L?1:o-((h=i[s])!=null?h:0)+1;e.setEdge(d,p,{weight:y,minlen:E,nestingEdge:!0}),e.setEdge(L,u,{weight:y,minlen:E,nestingEdge:!0})}),e.parent(s)||e.setEdge(n,d,{weight:0,minlen:o+((c=i[s])!=null?c:0)})}function Zn(e){let n={};function t(r,o){let i=e.children(r);i&&i.length&&i.forEach(s=>t(s,o+1)),n[r]=o}return e.children(Y).forEach(r=>t(r,1)),n}function et(e){return e.edges().reduce((n,t)=>n+e.edge(t).weight,0)}function Qe(e){let n=e.graph();e.removeNode(n.nestingRoot),delete n.nestingRoot,e.edges().forEach(t=>{e.edge(t).nestingEdge&&e.removeEdge(t)})}var en=tt;function tt(e){function n(t){let r=e.children(t),o=e.node(t);if(r.length&&r.forEach(n),o&&Object.hasOwn(o,"minRank")){o.borderLeft=[],o.borderRight=[];for(let i=o.minRank,s=o.maxRank+1;i<s;++i)Ze(e,"borderLeft","_bl",t,o,i),Ze(e,"borderRight","_br",t,o,i)}}e.children(Y).forEach(n)}function Ze(e,n,t,r,o,i){let s={width:0,height:0,rank:i,borderType:n},a=o[n][i-1],d=P(e,"border",s,t);o[n][i]=d,e.setParent(d,r),a&&e.setEdge(a,d,{weight:1})}function tn(e){var t;let n=(t=e.graph().rankdir)==null?void 0:t.toLowerCase();(n==="lr"||n==="rl")&&on(e)}function rn(e){var t;let n=(t=e.graph().rankdir)==null?void 0:t.toLowerCase();(n==="bt"||n==="rl")&&rt(e),(n==="lr"||n==="rl")&&(ot(e),on(e))}function on(e){e.nodes().forEach(n=>nn(e.node(n))),e.edges().forEach(n=>nn(e.edge(n)))}function nn(e){let n=e.width;e.width=e.height,e.height=n}function rt(e){e.nodes().forEach(n=>ge(e.node(n))),e.edges().forEach(n=>{var r;let t=e.edge(n);(r=t.points)==null||r.forEach(ge),Object.hasOwn(t,"y")&&ge(t)})}function ge(e){e.y=-e.y}function ot(e){e.nodes().forEach(n=>me(e.node(n))),e.edges().forEach(n=>{var r;let t=e.edge(n);(r=t.points)==null||r.forEach(me),Object.hasOwn(t,"x")&&me(t)})}function me(e){let n=e.x;e.x=e.y,e.y=n}function pe(e,n=null){let t={},r=e.nodes().filter(l=>!e.children(l).length),o=r.map(l=>e.node(l).rank),i=M(Math.max,o),s=A(i+1).map(()=>[]);function a(l){if(t[l])return;t[l]=!0;let c=e.node(l);s[c.rank].push(l);let f=e.successors(l);f&&[...f].sort((p,L)=>u(p,L)).forEach(a)}r.sort((l,c)=>e.node(l).rank-e.node(c).rank).forEach(a);function u(l,c){let f=e.node(l),b=e.node(c);return Q(n,f,b)}return s}function Le(e,n){let t=0;for(let r=1;r<n.length;++r)t+=st(e,n[r-1],n[r]);return t}function st(e,n,t){let r=je(t,t.map((u,l)=>l)),o=n.flatMap(u=>{let l=e.outEdges(u);return l?l.map(c=>({pos:r[c.w],weight:e.edge(c).weight})).sort((c,f)=>c.pos-f.pos):[]}),i=1;for(;i<t.length;)i<<=1;let s=2*i-1;i-=1;let a=new Array(s).fill(0),d=0;return o.forEach(u=>{let l=u.pos+i;a[l]+=u.weight;let c=0;for(;l>0;)l%2&&(c+=a[l+1]),l=l-1>>1,a[l]+=u.weight;d+=u.weight*c}),d}function Ee(e,n=[]){return n.map(t=>{let r=e.inEdges(t);if(!r||!r.length)return{v:t};{let o=r.reduce((i,s)=>{let a=e.edge(s),d=e.node(s.v);return{sum:i.sum+a.weight*d.order,weight:i.weight+a.weight}},{sum:0,weight:0});return{v:t,barycenter:o.sum/o.weight,weight:o.weight}}})}function ye(e,n){let t={};e.forEach((o,i)=>{let s={indegree:0,in:[],out:[],vs:[o.v],i};o.barycenter!==void 0&&(s.barycenter=o.barycenter,s.weight=o.weight),t[o.v]=s}),n.edges().forEach(o=>{let i=t[o.v],s=t[o.w];i!==void 0&&s!==void 0&&(s.indegree++,i.out.push(s))});let r=Object.values(t).filter(o=>!o.indegree);return at(r)}function at(e){let n=[];function t(o){return i=>{i.merged||(i.barycenter===void 0||o.barycenter===void 0||i.barycenter>=o.barycenter)&&dt(o,i)}}function r(o){return i=>{i.in.push(o),--i.indegree===0&&e.push(i)}}for(;e.length;){let o=e.pop();n.push(o),o.in.reverse().forEach(t(o)),o.out.forEach(r(o))}return n.filter(o=>!o.merged).map(o=>X(o,["vs","i","barycenter","weight"]))}function dt(e,n){let t=0,r=0;e.weight&&(t+=e.barycenter*e.weight,r+=e.weight),n.weight&&(t+=n.barycenter*n.weight,r+=n.weight),e.vs=n.vs.concat(e.vs),e.barycenter=t/r,e.weight=r,e.i=Math.min(n.i,e.i),n.merged=!0}function Ne(e,n,t,r,o){let i={},s=null,a=null,d=o;typeof n=="boolean"?(d=n,i={}):n&&(i=n,s=t!=null?t:null,a=r!=null?r:null);let u=Me(e,E=>Object.hasOwn(E,"barycenter")),l=u.lhs,c=u.rhs.sort((E,h)=>h.i-E.i),f=[],b=0,p=0,L=0;l.sort(lt(a,s,!!d));for(let[E,h]of Object.entries(i)){let g=l.findIndex(m=>m.vs[0]===E);l.splice(g+1,0,h)}L=sn(f,c,L),l.forEach(E=>{L+=E.vs.length,f.push(E.vs),b+=E.barycenter*E.weight,p+=E.weight,L=sn(f,c,L)});let y={vs:f.flat(1)};return p&&(y.barycenter=b/p,y.weight=p),y}function sn(e,n,t){let r;for(;n.length&&(r=n[n.length-1]).i<=t;)n.pop(),e.push(r.vs),t++;return t}function lt(e,n,t){return(r,o)=>{if(r.barycenter<o.barycenter)return-1;if(r.barycenter>o.barycenter)return 1;if(e&&(typeof r.vs[0]=="string"||typeof o.vs[0]=="string")){let i=e.node(r.vs[0]),s=e.node(o.vs[0]),a=Q(n,i,s);if(a!==0)return a}return t?o.i-r.i:r.i-o.i}}function ne(e,n,t,r,o){var E,h,g,m,N,k,O,R,S,j,I;let i=null,s=o;typeof r=="boolean"?(s=r,i=null):r!==void 0&&(i=r);let a=e.children(n),d=e.node(n),u=d?d.borderLeft:void 0,l=d?d.borderRight:void 0,c={};u&&(a=a.filter(G=>G!==u&&G!==l));let f=Ee(e,a);f.forEach(G=>{if(e.children(G.v).length){let{result:v}=ne(e,G.v,t,i,s);c[G.v]=v,Object.hasOwn(v,"barycenter")&&ct(G,v)}});let b=ye(f,t);ut(b,c);let p={},L=!1;for(let G=0;G<b.length;G++)for(let v=G+1;v<b.length;v++)if(!(!b[G]||!b[v]||!((E=b[G])!=null&&E.barycenter)||!((h=b[v])!=null&&h.barycenter))&&((g=b[G])==null?void 0:g.barycenter)===b[v].barycenter){let x=(N=(m=b[G])==null?void 0:m.vs[0])!=null?N:"",w=(O=(k=b[v])==null?void 0:k.vs[0])!=null?O:"",T=e.node(x),B=e.node(w);if(T.dummy==="edge"&&B.dummy==="edge"&&((R=T.edgeObj)==null?void 0:R.v)===((S=B.edgeObj)==null?void 0:S.v)&&((j=T.edgeObj)==null?void 0:j.w)===((I=B.edgeObj)==null?void 0:I.w))if(T.edgeLabel.reversed){p[w]=b[G],b.splice(G,1),G--;break}else p[x]=b[v],b.splice(v,1),v--;else L=!0}let y=Ne(b,p,i,e,s);if(u&&l){y.vs=[u,y.vs,l].flat(1);let G=e.predecessors(u);if(G&&G.length){let v=e.node(G[0]),x=e.predecessors(l),w=e.node(x[0]);Object.hasOwn(y,"barycenter")||(y.barycenter=0,y.weight=0),y.barycenter=(y.barycenter*y.weight+v.order+w.order)/(y.weight+2),y.weight+=2}}return Object.defineProperty(y,"result",{value:y,enumerable:!1,configurable:!0,writable:!0}),Object.defineProperty(y,"usedBias",{value:L,enumerable:!1,configurable:!0,writable:!0}),y}function ut(e,n){e.forEach(t=>{t.vs=t.vs.flatMap(r=>n[r]?n[r].vs:r)})}function ct(e,n){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+n.barycenter*n.weight)/(e.weight+n.weight),e.weight+=n.weight):(e.barycenter=n.barycenter,e.weight=n.weight)}function we(e,n,t,r){r||(r=e.nodes());let o=bt(e),i=new C({compound:!0}).setGraph({root:o}).setDefaultNodeLabel(s=>e.node(s));return r.forEach(s=>{let a=e.node(s),d=e.parent(s);if(a.rank===n||a.minRank<=n&&n<=a.maxRank){i.setNode(s),i.setParent(s,d||o);let u=e[t](s);u&&u.forEach(l=>{let c=l.v===s?l.w:l.v,f=i.edge(c,s),b=f!==void 0?f.weight:0;i.setEdge(c,s,{weight:e.edge(l).weight+b})}),Object.hasOwn(a,"minRank")&&i.setNode(s,{borderLeft:a.borderLeft[n],borderRight:a.borderRight[n]})}}),i}function bt(e){let n;for(;e.hasNode(n=z("_root")););return n}function Ge(e,n,t){let r={},o;t.forEach(i=>{let s=e.parent(i),a,d;for(;s;){if(a=e.parent(s),a?(d=r[a],r[a]=s):(d=o,o=s),d&&d!==s){n.setEdge(d,s);return}s=a}})}function te(e,n={},t=null){if(typeof n.customOrder=="function"){n.customOrder(e,te);return}let r=ae(e),o=an(e,A(1,r+1),"inEdges"),i=an(e,A(r-1,-1,-1),"outEdges"),s=pe(e,t);if(dn(e,s),n.disableOptimalOrderHeuristic)return;let a=Number.POSITIVE_INFINITY,d,u=n.constraints||[];for(let l=0,c=0;c<4;++l,++c){ft(l%2?o:i,l%4>=2,u,t),s=_(e);let f=Le(e,s);f<a?(c=0,d=Object.assign({},s),a=f):f===a&&(d=structuredClone(s))}dn(e,d)}function an(e,n,t){let r=new Map,o=(i,s)=>{r.has(i)||r.set(i,[]),r.get(i).push(s)};for(let i of e.nodes()){let s=e.node(i);if(typeof s.rank=="number"&&o(s.rank,i),typeof s.minRank=="number"&&typeof s.maxRank=="number")for(let a=s.minRank;a<=s.maxRank;a++)a!==s.rank&&o(a,i)}return n.map(function(i){return we(e,i,t,r.get(i)||[])})}function ft(e,n,t,r){let o=!0,i=new C;e.forEach(function(s){t.forEach(l=>i.setEdge(l.left,l.right));let a=s.graph().root,{result:d,usedBias:u}=ne(s,a,i,r,o);n&&u&&(o=!o),d.vs.forEach((l,c)=>s.node(l).order=c),Ge(s,i,d.vs)})}function dn(e,n){Object.values(n).forEach(t=>t.forEach((r,o)=>e.node(r).order=o))}function ht(e,n){let t={};function r(o,i){let s=0,a=0,d=o.length,u=i[i.length-1];return i.forEach((l,c)=>{let f=mt(e,l),b=f?e.node(f).order:d;(f||l===u)&&(i.slice(a,c+1).forEach(p=>{let L=e.predecessors(p);L&&L.forEach(y=>{let E=e.node(y),h=E.order;(h<s||b<h)&&!(E.dummy&&e.node(p).dummy)&&un(t,y,p)})}),a=c+1,s=b)}),i}return n.length&&n.reduce(r),t}function gt(e,n){let t={};function r(i,s,a,d,u){A(s,a).forEach(l=>{let c=i[l];if(c!==void 0&&e.node(c).dummy){let f=e.predecessors(c);f&&f.forEach(b=>{if(b===void 0)return;let p=e.node(b);p.dummy&&(p.order<d||p.order>u)&&un(t,b,c)})}})}function o(i,s){let a=-1,d=-1,u=0;return s.forEach((l,c)=>{if(e.node(l).dummy==="border"){let f=e.predecessors(l);if(f&&f.length){let b=f[0];if(b===void 0)return;d=e.node(b).order,r(s,u,c,a,d),u=c,a=d}}r(s,u,s.length,d,i.length)}),s}return n.length&&n.reduce(o),t}function mt(e,n){if(e.node(n).dummy){let t=e.predecessors(n);if(t)return t.find(r=>e.node(r).dummy)}}function un(e,n,t){if(n>t){let o=n;n=t,t=o}let r=e[n];r||(e[n]=r={}),r[t]=!0}function pt(e,n,t){if(n>t){let o=n;n=t,t=o}let r=e[n];return r!==void 0&&Object.hasOwn(r,t)}function Lt(e,n,t,r,o){let i={},s={},a={};return n.forEach(d=>{d.forEach((u,l)=>{i[u]=u,s[u]=u,a[u]=l})}),n.forEach(d=>{let u=-1,l=-1,c=!1,f=d,b=d.findIndex(p=>(o==null?void 0:o.includes(p))||ln(p,e,o));b>0&&(f=[d[b],...d.slice(0,b),...d.slice(b+1)],c=!0),f.forEach(p=>{var y;let L=r(p);if(L&&L.length){o!=null&&o.includes(p)&&(L=L.filter(g=>ln(g,e,o)));let E=L.sort((g,m)=>{let N=a[g],k=a[m];return(N!==void 0?N:0)-(k!==void 0?k:0)}),h=(E.length-1)/2;for(let g=Math.floor(h),m=Math.ceil(h);g<=m;++g){let N=E[g];if(N===void 0)continue;let k=a[N];if(k!==void 0&&s[p]===p&&u<k&&a[N]!==l&&!pt(t,p,N)){let O=i[N];O!==void 0&&(s[N]=p,s[p]=i[p]=O,u=k,c&&(u=-1,l=(y=a[N])!=null?y:-1,c=!1))}}}})}),{root:i,align:s}}function Et(e,n,t,r,o=!1){let i={},s=yt(e,n,t,o),a=o?"borderLeft":"borderRight";function d(b,p){let L=s.nodes().slice(),y={},E=L.pop();for(;E;){if(y[E])b(E);else{y[E]=!0,L.push(E);for(let h of p(E))L.push(h)}E=L.pop()}}function u(b){let p=s.inEdges(b);p?i[b]=p.reduce((L,y)=>{var g;let E=(g=i[y.v])!=null?g:0,h=s.edge(y);return Math.max(L,E+(h!==void 0?h:0))},0):i[b]=0}function l(b){let p=s.outEdges(b),L=Number.POSITIVE_INFINITY;p&&(L=p.reduce((E,h)=>{let g=i[h.w],m=s.edge(h);return Math.min(E,(g!==void 0?g:0)-(m!==void 0?m:0))},Number.POSITIVE_INFINITY));let y=e.node(b);L!==Number.POSITIVE_INFINITY&&y.borderType!==a&&(i[b]=Math.max(i[b]!==void 0?i[b]:0,L))}function c(b){return s.predecessors(b)||[]}function f(b){return s.successors(b)||[]}return d(u,c),d(l,f),Object.keys(r).forEach(b=>{var L;let p=t[b];p!==void 0&&(i[b]=(L=i[p])!=null?L:0)}),i}function yt(e,n,t,r){let o=new C,i=e.graph(),s=xt(i.nodesep,i.edgesep,r);return n.forEach(a=>{let d;a.forEach(u=>{let l=t[u];if(l!==void 0){if(o.setNode(l),d!==void 0){let c=t[d];if(c!==void 0){let f=o.edge(c,l);o.setEdge(c,l,Math.max(s(e,u,d),f||0))}}d=u}})}),o}function Nt(e,n){return Object.values(n).reduce((t,r)=>{let o=Number.NEGATIVE_INFINITY,i=Number.POSITIVE_INFINITY;Object.entries(r).forEach(([a,d])=>{let u=kt(e,a)/2;o=Math.max(d+u,o),i=Math.min(d-u,i)});let s=o-i;return s<t[0]&&(t=[s,r]),t},[Number.POSITIVE_INFINITY,null])[1]}function wt(e,n){let t=Object.values(n),r=M(Math.min,t),o=M(Math.max,t);["u","d"].forEach(i=>{["l","r"].forEach(s=>{let a=i+s,d=e[a];if(!d||d===n)return;let u=Object.values(d),l=r-M(Math.min,u);s!=="l"&&(l=o-M(Math.max,u)),l&&(e[a]=H(d,c=>c+l))})})}function Gt(e,n=void 0){let t=e.ul;return t?H(t,(r,o)=>{var s,a;if(n){let d=n.toLowerCase(),u=e[d];if(u&&u[o]!==void 0)return u[o]}let i=Object.values(e).map(d=>{let u=d[o];return u!==void 0?u:0}).sort((d,u)=>d-u);return(((s=i[1])!=null?s:0)+((a=i[2])!=null?a:0))/2}):{}}function cn(e,n){let t=_(e),r=Object.assign(ht(e,t),gt(e,t)),o={},i;["u","d"].forEach(a=>{i=a==="u"?t:Object.values(t).reverse(),["l","r"].forEach(d=>{d==="r"&&(i=i.map(f=>Object.values(f).reverse()));let l=Lt(e,i,r,f=>(a==="u"?e.predecessors(f):e.successors(f))||[],n),c=Et(e,i,l.root,l.align,d==="r");d==="r"&&(c=H(c,f=>-f)),o[a+d]=c})});let s=Nt(e,o);return wt(o,s),Gt(o,e.graph().align)}function xt(e,n,t){return(r,o,i)=>{let s=r.node(o),a=r.node(i),d=0,u;if(d+=s.width/2,Object.hasOwn(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":u=-s.width/2;break;case"r":u=s.width/2;break}if(u&&(d+=t?u:-u),u=void 0,d+=(s.dummy?n:e)/2,d+=(a.dummy?n:e)/2,d+=a.width/2,Object.hasOwn(a,"labelpos"))switch(a.labelpos.toLowerCase()){case"l":u=a.width/2;break;case"r":u=-a.width/2;break}return u&&(d+=t?u:-u),d}}function kt(e,n){return e.node(n).width}function ln(e,n,t){var s;if(!t)return!1;let r=(s=n.node(e))==null?void 0:s.edgeObj;if(!r||n.node(e).edgeLabel.reversed)return!1;let o=t.indexOf(r==null?void 0:r.v),i=t.indexOf(r==null?void 0:r.w);return o!==-1&&i!==-1&&o===(i+1)%t.length||o===(i-1)%t.length}function bn(e,n){e=K(e),vt(e),Object.entries(cn(e,n)).forEach(([t,r])=>e.node(t).x=r)}function vt(e){let n=_(e),t=e.graph(),r=t.ranksep,o=t.rankalign,i=0;n.forEach(s=>{let a=s.reduce((d,u)=>{var c;let l=(c=e.node(u).height)!=null?c:0;return d>l?d:l},0);s.forEach(d=>{let u=e.node(d);o==="top"?u.y=i+u.height/2:o==="bottom"?u.y=i+a-u.height/2:u.y=i+a/2}),i+=a+r})}var fn=new WeakMap;function re(e,n={}){return En(e,q,n),e}function hn(e,n,t){let r=n;for(;r!==void 0;){let o=e.parent(r);if(o===t)return r;r=o}}function En(e,n,t){var E;let r=e.nodes().filter(h=>e.children(h).length),o={};r.forEach(h=>{let g=e.node(h);if(g&&g.rankdir){let m=new C({multigraph:!0,compound:!0});m.setGraph({rankdir:g.rankdir});let N=e.children(h);N.forEach(x=>{let w={...e.node(x)};m.setNode(x,w);let T=e.parent(x);T&&T!==h&&N.includes(T)&&m.setParent(x,T)});let k=new Set;e.edges().forEach(x=>{let w=hn(e,x.v,h),T=hn(e,x.w,h);if(w&&T&&w!==T){let B=`${w}\0${T}`;k.has(B)||(k.add(B),m.setEdge(w,T,{...e.edge(x)}))}}),En(m,n,t);let O=Ln(m);gn(O,n,t,null),mn(m,O);let R=1/0,S=1/0,j=-1/0,I=-1/0;m.nodes().forEach(x=>{if(x===h)return;let w=m.node(x);w&&typeof w.x=="number"&&typeof w.y=="number"&&typeof w.width=="number"&&typeof w.height=="number"&&(R=Math.min(R,w.x-w.width/2),j=Math.max(j,w.x+w.width/2),S=Math.min(S,w.y-w.height/2),I=Math.max(I,w.y+w.height/2))}),(!isFinite(R)||!isFinite(S)||!isFinite(j)||!isFinite(I))&&(R=S=0,j=I=0);let G=j-R,v=I-S;o[h]={minX:R,minY:S,maxX:j,maxY:I,width:G,height:v,offsetX:R,offsetY:S},g._dagreClusterSubgraph=m}});let i=[],s=h=>{let g=[],m=(e.children(h)||[]).filter(N=>N!==h);for(;m.length>0;){let N=m.shift();g.push(N),(e.children(N)||[]).filter(k=>k!==N).forEach(k=>m.push(k))}return g},a=new Map;r.forEach(h=>{let g=e.node(h);g&&g.rankdir&&o[h]&&a.set(h,(e.children(h)||[]).filter(m=>m!==h))});let d=new Set([...a.values()].flat()),u=new Map;a.forEach((h,g)=>{d.has(g)||u.set(g,s(g))});let l=new Set([...u.values()].flat()),c=h=>{for(let[g,m]of u)if(m.includes(h))return g;return h},f=[];e.edges().forEach(h=>{(l.has(h.v)||l.has(h.w))&&f.push({edge:h,label:e.edge(h)})});let b=new Map;l.forEach(h=>{let g=e.parent(h);b.set(h,typeof g=="string"?g:void 0)}),u.forEach((h,g)=>{let m=e.node(g),N=[];h.forEach(R=>{let S=e.node(R);S&&(N.push({id:R,node:S,parent:b.get(R)}),e.removeNode(R))});let k=f.filter(({edge:R})=>h.includes(R.v)||h.includes(R.w)),O=o[g];m&&(i.push({clusterId:g,subgraph:m._dagreClusterSubgraph,bounds:O,children:h,removedNodes:N,removedEdges:k}),m.width=O.width,m.height=O.height)});let p=new Set;f.forEach(({edge:h,label:g})=>{let m=c(h.v),N=c(h.w);if(m!==N&&e.hasNode(m)&&e.hasNode(N)){let k=`${m}\0${N}`;p.has(k)||(p.add(k),e.setEdge(m,N,{...g,width:0,height:0}))}});let L=Ln(e),y=gn(L,n,t,(E=fn.get(e))!=null?E:null);fn.set(e,y),mn(e,L),p.forEach(h=>{let g=h.indexOf("\0"),m=h.slice(0,g),N=h.slice(g+1);e.hasEdge(m,N)&&e.removeEdge(m,N)}),i.forEach(({clusterId:h,subgraph:g,bounds:m,removedNodes:N,removedEdges:k})=>{var G,v;let O=e.node(h),R=(G=O==null?void 0:O.x)!=null?G:0,S=(v=O==null?void 0:O.y)!=null?v:0,j=(m.minX+m.maxX)/2,I=(m.minY+m.maxY)/2;N.forEach(({id:x,node:w,parent:T})=>{e.setNode(x,w),T!==void 0&&e.setParent(x,T)}),k.forEach(({edge:x,label:w})=>{e.setEdge(x,w)}),g.nodes().forEach(x=>{if(x===h)return;let w=g.node(x),T=e.node(x);T&&w&&typeof w.x=="number"&&typeof w.y=="number"&&(T.x=R+(w.x-j),T.y=S+(w.y-I))}),delete O._dagreClusterSubgraph}),r.forEach(h=>{var N,k;let g=e.node(h),m=o[h];if(g&&g.rankdir&&g._dagreClusterSubgraph&&m){let O=g._dagreClusterSubgraph,R=(N=g.x)!=null?N:0,S=(k=g.y)!=null?k:0,j=(m.minX+m.maxX)/2,I=(m.minY+m.maxY)/2;O.nodes().forEach(G=>{if(G===h)return;let v=O.node(G),x=e.node(G);if(x&&v&&typeof v.x=="number"&&typeof v.y=="number"){let w=v.x-j,T=v.y-I;x.x=R+w,x.y=S+T}}),delete g._dagreClusterSubgraph}})}function gn(e,n,t,r=null){var d,u;let o=(t==null?void 0:t.useDynamic)!==!1,i=o&&(d=r==null?void 0:r.graph)!=null?d:null,s=o&&(u=r==null?void 0:r.rawNodes)!=null?u:null;n(" makeSpaceForEdgeLabels",()=>It(e)),n(" removeSelfEdges",()=>Dt(e)),n(" acyclic",()=>_e(e,i)),n(" nestingGraph.run",()=>$e(e)),n(" rank",()=>Ue(K(e))),n(" injectEdgeLabelProxies",()=>Pt(e)),n(" removeEmptyRanks",()=>Ce(e)),n(" nestingGraph.cleanup",()=>Qe(e)),n(" normalizeRanks",()=>Re(e)),n(" assignRankMinMax",()=>_t(e)),n(" removeEdgeLabelProxies",()=>Ft(e)),n(" normalize.run",()=>Ae(e)),n(" parentDummyChains",()=>Je(e)),n(" addBorderSegments",()=>en(e)),n(" order",()=>te(e,t,s)),n(" insertSelfEdges",()=>Xt(e)),n(" adjustCoordinateSystem",()=>tn(e)),n(" position",()=>bn(e,t.corePath)),n(" positionSelfEdges",()=>Ht(e));let a=JSON.parse(JSON.stringify(e._nodes));return n(" removeBorderNodes",()=>Bt(e)),n(" normalize.undo",()=>Ve(e)),n(" fixupEdgeLabelCoords",()=>Yt(e)),n(" undoCoordinateSystem",()=>rn(e)),n(" translateGraph",()=>At(e)),n(" assignNodeIntersects",()=>Vt(e)),n(" reversePoints",()=>Wt(e)),n(" acyclic.undo",()=>Fe(e)),{graph:e,rawNodes:a}}function mn(e,n){e.nodes().forEach(t=>{let r=e.node(t),o=n.node(t);r&&(r.x=o.x,r.y=o.y,r.order=o.order,r.rank=o.rank,n.children(t).length&&(r.width=o.width,r.height=o.height))}),e.edges().forEach(t=>{let r=e.edge(t),o=n.edge(t);r.points=o.points,Object.hasOwn(o,"x")&&(r.x=o.x,r.y=o.y)}),e.graph().width=n.graph().width,e.graph().height=n.graph().height}var Ot=["nodesep","edgesep","ranksep","marginx","marginy"],Tt={ranksep:50,edgesep:20,nodesep:50,rankdir:"TB",rankalign:"center"},Rt=["acyclicer","ranker","rankdir","align","rankalign"],Ct=["width","height","rank"],pn={width:0,height:0},St=["minlen","weight","width","height","labeloffset"],Mt={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},jt=["labelpos"];function Ln(e){let n=new C({multigraph:!0,compound:!0}),t=ke(e.graph());return n.setGraph(Object.assign({},Tt,xe(t,Ot),X(t,Rt))),e.nodes().forEach(r=>{let o=ke(e.node(r)),i=xe(o,Ct);Object.keys(pn).forEach(a=>{i[a]===void 0&&(i[a]=pn[a])}),n.setNode(r,i);let s=e.parent(r);s!==void 0&&n.setParent(r,s)}),e.edges().forEach(r=>{let o=ke(e.edge(r));n.setEdge(r,Object.assign({},Mt,xe(o,St),X(o,jt)))}),n}function It(e){let n=e.graph();n.ranksep/=2,e.edges().forEach(t=>{var o;let r=e.edge(t);r.minlen*=2,((o=r.labelpos)!=null?o:"r").toLowerCase()!=="c"&&(n.rankdir==="TB"||n.rankdir==="BT"?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function Pt(e){e.edges().forEach(n=>{let t=e.edge(n);if(t.width&&t.height){let r=e.node(n.v),i={rank:(e.node(n.w).rank-r.rank)/2+r.rank,e:n};P(e,"edge-proxy",i,"_ep")}})}function _t(e){let n=0;e.nodes().forEach(t=>{let r=e.node(t);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,n=Math.max(n,r.maxRank))}),e.graph().maxRank=n}function Ft(e){e.nodes().forEach(n=>{let t=e.node(n);if(t.dummy==="edge-proxy"){let r=t;e.edge(r.e).labelRank=t.rank,e.removeNode(n)}})}function At(e){let n=Number.POSITIVE_INFINITY,t=0,r=Number.POSITIVE_INFINITY,o=0,i=e.graph(),s=i.marginx||0,a=i.marginy||0;function d(u){let l=u.x,c=u.y,f=u.width,b=u.height;n=Math.min(n,l-f/2),t=Math.max(t,l+f/2),r=Math.min(r,c-b/2),o=Math.max(o,c+b/2)}e.nodes().forEach(u=>d(e.node(u))),e.edges().forEach(u=>{let l=e.edge(u);Object.hasOwn(l,"x")&&d(l)}),n-=s,r-=a,e.nodes().forEach(u=>{let l=e.node(u);l.x-=n,l.y-=r}),e.edges().forEach(u=>{let l=e.edge(u);l.points.forEach(c=>{c.x-=n,c.y-=r}),Object.hasOwn(l,"x")&&(l.x-=n),Object.hasOwn(l,"y")&&(l.y-=r)}),i.width=t-n+s,i.height=o-r+a}function Vt(e){e.edges().forEach(n=>{if(n.v===n.w)return;let t=e.edge(n),r=e.node(n.v),o=e.node(n.w),i,s;t.points?(i=t.points[0],s=t.points[t.points.length-1]):(t.points=[],i=o,s=r),t.points.unshift(ie(r,i)),t.points.push(ie(o,s))})}function Yt(e){e.edges().forEach(n=>{let t=e.edge(n);if(Object.hasOwn(t,"x"))switch((t.labelpos==="l"||t.labelpos==="r")&&(t.width-=t.labeloffset),t.labelpos){case"l":t.x-=t.width/2+t.labeloffset;break;case"r":t.x+=t.width/2+t.labeloffset;break}})}function Wt(e){e.edges().forEach(n=>{let t=e.edge(n);t.reversed&&t.points.reverse()})}function Bt(e){e.nodes().forEach(n=>{if(e.children(n).length){let t=e.node(n),r=e.node(t.borderTop),o=e.node(t.borderBottom),i=e.node(t.borderLeft[t.borderLeft.length-1]),s=e.node(t.borderRight[t.borderRight.length-1]);t.width=Math.abs(s.x-i.x),t.height=Math.abs(o.y-r.y),t.x=i.x+t.width/2,t.y=r.y+t.height/2}}),e.nodes().forEach(n=>{e.node(n).dummy==="border"&&e.removeNode(n)})}function Dt(e){e.edges().forEach(n=>{if(n.v===n.w){let t=e.node(n.v);t.selfEdges||(t.selfEdges=[]),t.selfEdges.push({e:n,label:e.edge(n)}),e.removeEdge(n)}})}function Xt(e){_(e).forEach(t=>{let r=0;t.forEach((o,i)=>{let s=e.node(o);typeof s.rank!="number"&&(s.rank=0),s.order=i+r,(s.selfEdges||[]).forEach(a=>{P(e,"selfedge",{width:a.label.width,height:a.label.height,rank:s.rank,order:i+ ++r,e:a.e,edgeLabel:a.label},"_se"),(!Array.isArray(a.label.points)||a.label.points.length!==7)&&(a.label.points=[{x:0,y:-10},{x:0,y:-10},{x:0,y:0},{x:0,y:10},{x:0,y:10},{x:0,y:0},{x:0,y:0}])}),delete s.selfEdges})})}function Ht(e){e.nodes().forEach(n=>{let t=e.node(n),r=o=>typeof o=="number"&&isFinite(o);if(t.dummy==="selfedge"){let o=t,i=e.node(o.e.v),s=r(i==null?void 0:i.x)?i.x:0,a=r(i==null?void 0:i.y)?i.y:0,d=r(i==null?void 0:i.width)?i.width:0,u=r(i==null?void 0:i.height)?i.height:0,l=r(t.x)?t.x:s,c=r(t.y)?t.y:a,f=d/2,b=u/2;o.edgeLabel.points=[{x:l+f,y:c-b},{x:l+f,y:c-b},{x:l,y:c},{x:l-f,y:c+b},{x:l-f,y:c+b},{x:l,y:c},{x:l,y:c}],o.edgeLabel.x=l,o.edgeLabel.y=c,e.setEdge(o.e,o.edgeLabel),e.removeNode(n)}else t&&Array.isArray(t.selfEdges)&&t.selfEdges.forEach(o=>{if(!Array.isArray(o.label.points)||o.label.points.length!==7){let i=r(t.x)?t.x:0,s=r(t.y)?t.y:0,a=r(t.width)?t.width:0,d=r(t.height)?t.height:0,u=a/2,l=d/2;o.label.points=[{x:i+u,y:s-l},{x:i+u,y:s-l},{x:i,y:s},{x:i-u,y:s+l},{x:i-u,y:s+l},{x:i,y:s},{x:i,y:s}]}})})}function xe(e,n){return H(X(e,n),Number)}function ke(e){let n={};return e&&Object.entries(e).forEach(([t,r])=>{typeof t=="string"&&(t=t.toLowerCase()),n[t]=r}),n}function oe(e){let n=_(e),t=new C({compound:!0,multigraph:!0}).setGraph({});return e.nodes().forEach(r=>{t.setNode(r,{label:r}),t.setParent(r,"layer"+e.node(r).rank)}),e.edges().forEach(r=>t.setEdge(r.v,r.w,{},r.name)),n.forEach((r,o)=>{let i="layer"+o;t.setNode(i,{rank:"same"}),r.reduce((s,a)=>(t.setEdge(s,a,{style:"invis"}),a))}),t}var qt={time:de,notime:q},zt={graphlib:$,version:Z,layout:re,debug:oe,util:{time:de,notime:q}},Ut=zt;0&&(module.exports={Graph,debug,graphlib,layout,util,version});
1
+ "use strict";var J=Object.defineProperty;var Nn=Object.getOwnPropertyDescriptor;var wn=Object.getOwnPropertyNames;var Gn=Object.prototype.hasOwnProperty;var xn=(e,n,t)=>n in e?J(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var ve=(e,n)=>{for(var t in n)J(e,t,{get:n[t],enumerable:!0})},kn=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of wn(n))!Gn.call(e,o)&&o!==t&&J(e,o,{get:()=>n[o],enumerable:!(r=Nn(n,o))||r.enumerable});return e};var vn=e=>kn(J({},"__esModule",{value:!0}),e);var Oe=(e,n,t)=>xn(e,typeof n!="symbol"?n+"":n,t);var $t={};ve($t,{Graph:()=>C,debug:()=>oe,default:()=>Jt,graphlib:()=>$,layout:()=>re,util:()=>zt,version:()=>Z});module.exports=vn($t);var $={};ve($,{Graph:()=>C,alg:()=>W.alg});var W=require("@dagrejs/graphlib"),C=W.Graph;function P(e,n,t,r){let o=r;for(;e.hasNode(o);)o=z(r);return t.dummy=n,e.setNode(o,t),o}function Te(e){let n=new C().setGraph(e.graph());return e.nodes().forEach(t=>n.setNode(t,e.node(t))),e.edges().forEach(t=>{let r=n.edge(t.v,t.w)||{weight:0,minlen:1},o=e.edge(t);n.setEdge(t.v,t.w,{weight:r.weight+o.weight,minlen:Math.max(r.minlen,o.minlen)})}),n}function K(e){let n=new C({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(t=>{e.children(t).length||n.setNode(t,e.node(t))}),e.edges().forEach(t=>{n.setEdge(t,e.edge(t))}),n}function ie(e,n){let t=e.x,r=e.y,o=n.x-t,i=n.y-r,s=e.width/2,a=e.height/2;if(!o&&!i)throw new Error("Not possible to find intersection inside of the rectangle");let d,u;return o===0||Math.abs(i)*s>Math.abs(o)*a?(i<0&&(a=-a),d=a*o/i,u=a):(o<0&&(s=-s),d=s,u=s*i/o),{x:t+d,y:r+u}}function _(e){let n=A(ae(e)+1).map(()=>[]);return e.nodes().forEach(t=>{let r=e.node(t),o=r.rank;o!==void 0&&(n[o]||(n[o]=[]),n[o][r.order]=t)}),n}function Re(e){let n=e.nodes().map(r=>{let o=e.node(r).rank;return o===void 0?Number.MAX_VALUE:o}),t=I(Math.min,n);e.nodes().forEach(r=>{let o=e.node(r);Object.hasOwn(o,"rank")&&(o.rank-=t)})}function Ce(e){let n=e.nodes().map(s=>e.node(s).rank).filter(s=>s!==void 0),t=I(Math.min,n),r=[];e.nodes().forEach(s=>{let a=e.node(s).rank-t;r[a]||(r[a]=[]),r[a].push(s)});let o=0,i=e.graph().nodeRankFactor;Array.from(r).forEach((s,a)=>{s===void 0&&a%i!==0?--o:s!==void 0&&o&&s.forEach(d=>e.node(d).rank+=o)})}function se(e,n,t,r){let o={width:0,height:0};return arguments.length>=4&&(o.rank=t,o.order=r),P(e,"border",o,n)}function On(e,n=Se){let t=[];for(let r=0;r<e.length;r+=n){let o=e.slice(r,r+n);t.push(o)}return t}var Se=65535;function I(e,n){if(n.length>Se){let t=On(n);return e(...t.map(r=>e(...r)))}else return e(...n)}function ae(e){let t=e.nodes().map(r=>{let o=e.node(r).rank;return o===void 0?Number.MIN_VALUE:o});return I(Math.max,t)}function je(e,n){let t={lhs:[],rhs:[]};return e.forEach(r=>{n(r)?t.lhs.push(r):t.rhs.push(r)}),t}function de(e,n){let t=Date.now();try{return n()}finally{console.log(e+" time: "+(Date.now()-t)+"ms")}}function q(e,n){return n()}var Tn=0;function z(e){let n=++Tn;return e+(""+n)}function A(e,n,t=1){n==null&&(n=e,e=0);let r=i=>i<n;t<0&&(r=i=>n<i);let o=[];for(let i=e;r(i);i+=t)o.push(i);return o}function X(e,n){let t={};for(let r of n)e[r]!==void 0&&(t[r]=e[r]);return t}function H(e,n){let t;return typeof n=="string"?t=r=>r[n]:t=n,Object.entries(e).reduce((r,[o,i])=>(r[o]=t(i,o),r),{})}function Me(e,n){return e.reduce((t,r,o)=>(t[r]=n[o],t),{})}var B="\0";function Q(e,n,t){var u,l,c,f,b,p;if(!(e&&n&&t&&n.dummy==="edge"&&t.dummy==="edge"&&n.edgeObj&&t.edgeObj&&e[n.edgeObj.v]&&e[t.edgeObj.v]&&e[n.edgeObj.w]&&e[t.edgeObj.w]))return 0;let r=!0;n.edgeObj.w===t.edgeObj.w&&(r=!1);let o=r?(l=(u=e[n.edgeObj.v])==null?void 0:u.rank)!=null?l:NaN+1:(f=(c=e[n.edgeObj.w])==null?void 0:c.rank)!=null?f:NaN-1,i=Object.entries(e).find(m=>{var E,y;return((E=m[1].edgeObj)==null?void 0:E.v)===n.edgeObj.v&&((y=m[1].edgeObj)==null?void 0:y.w)===n.edgeObj.w&&m[1].rank===o}),s=Object.entries(e).find(m=>{var E,y;return((E=m[1].edgeObj)==null?void 0:E.v)===t.edgeObj.v&&((y=m[1].edgeObj)==null?void 0:y.w)===t.edgeObj.w&&m[1].rank===o});if(!i||!s)return 0;let a=(b=i[1].order)!=null?b:NaN,d=(p=s[1].order)!=null?p:NaN;return isNaN(a-d)?0:a-d}var Z="3.1.3";var le=class{constructor(){Oe(this,"_sentinel");let n={};n._next=n._prev=n,this._sentinel=n}dequeue(){let n=this._sentinel,t=n._prev;if(t!==n)return Ie(t),t}enqueue(n){let t=this._sentinel;n._prev&&n._next&&Ie(n),n._next=t._next,t._next._prev=n,t._next=n,n._prev=t}toString(){let n=[],t=this._sentinel,r=t._prev;for(;r!==t;)n.push(JSON.stringify(r,Rn)),r=r._prev;return"["+n.join(", ")+"]"}};function Ie(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function Rn(e,n){if(e!=="_next"&&e!=="_prev")return n}var Pe=le;var Cn=()=>1;function be(e,n){if(e.nodeCount()<=1)return[];let t=jn(e,n||Cn);return Sn(t.graph,t.buckets,t.zeroIdx).flatMap(o=>e.outEdges(o.v,o.w)||[])}function Sn(e,n,t){var a;let r=[],o=n[n.length-1],i=n[0],s;for(;e.nodeCount();){for(;s=i.dequeue();)ue(e,n,t,s);for(;s=o.dequeue();)ue(e,n,t,s);if(e.nodeCount()){for(let d=n.length-2;d>0;--d)if(s=(a=n[d])==null?void 0:a.dequeue(),s){r=r.concat(ue(e,n,t,s,!0)||[]);break}}}return r}function ue(e,n,t,r,o){let i=[],s=o?i:void 0;return(e.inEdges(r.v)||[]).forEach(a=>{let d=e.edge(a),u=e.node(a.v);o&&i.push({v:a.v,w:a.w}),u.out-=d,ce(n,t,u)}),(e.outEdges(r.v)||[]).forEach(a=>{let d=e.edge(a),u=a.w,l=e.node(u);l.in-=d,ce(n,t,l)}),e.removeNode(r.v),s}function jn(e,n){let t=new C,r=0,o=0;e.nodes().forEach(a=>{t.setNode(a,{v:a,in:0,out:0})}),e.edges().forEach(a=>{let d=t.edge(a.v,a.w)||0,u=n(a),l=d+u;t.setEdge(a.v,a.w,l);let c=t.node(a.v),f=t.node(a.w);o=Math.max(o,c.out+=u),r=Math.max(r,f.in+=u)});let i=Mn(o+r+3).map(()=>new Pe),s=r+1;return t.nodes().forEach(a=>{ce(i,s,t.node(a))}),{graph:t,buckets:i,zeroIdx:s}}function ce(e,n,t){var r,o,i;t.out?t.in?(i=e[t.out-t.in+n])==null||i.enqueue(t):(o=e[e.length-1])==null||o.enqueue(t):(r=e[0])==null||r.enqueue(t)}function Mn(e){let n=[];for(let t=0;t<e;t++)n.push(t);return n}function _e(e,n){(e.graph().acyclicer==="greedy"?be(e,r(e)):In(e,n!=null?n:null)).forEach(o=>{let i=e.edge(o);e.removeEdge(o),i.forwardName=o.name,i.reversed=!0,e.setEdge(o.w,o.v,i,z("rev"))});function r(o){return i=>o.edge(i).weight}}function In(e,n){let t=[],r={},o={};function i(d){Object.hasOwn(o,d)||(o[d]=!0,r[d]=!0,e.outEdges(d).forEach(u=>{Object.hasOwn(r,u.w)?t.push(u):i(u.w)}),delete r[d])}function s(d){var u;Object.hasOwn(o,d)||(o[d]=!0,r[d]=!0,(u=e.outEdges(d))==null||u.forEach(l=>{var c,f;Object.hasOwn(r,l.w)||((c=n.node(d))==null?void 0:c.rank)>((f=n.node(l.w))==null?void 0:f.rank)&&Pn(e,l.w,l)?t.push(l):s(l.w)}),delete r[d])}let a=i;return n&&typeof n.node=="function"&&(a=s),e.sources().forEach(a),e.nodes().forEach(a),t}function Fe(e){e.edges().forEach(n=>{let t=e.edge(n);if(t.reversed){e.removeEdge(n);let r=t.forwardName;delete t.reversed,delete t.forwardName,e.setEdge(n.w,n.v,t,r)}})}function Pn(e,n,t){let r=new Set;function o(i){var s;if(e.sources().includes(i))return!0;r.add(i);for(let a of(s=e.inEdges(i))!=null?s:[])if(!(a.v===t.v&&a.w===t.w)&&!r.has(a.v)&&o(a.v))return!0;return!1}return o(n)}function Ae(e){e.graph().dummyChains=[],e.edges().forEach(n=>Fn(e,n))}function Fn(e,n){let t=n.v,r=e.node(t).rank,o=n.w,i=e.node(o).rank,s=n.name,a=e.edge(n),d=a.labelRank;if(i===r+1)return;e.removeEdge(n);let u,l,c;for(c=0,++r;r<i;++c,++r)a.points=[],l={width:0,height:0,edgeLabel:a,edgeObj:n,rank:r},u=P(e,"edge",l,"_d"),r===d&&(l.width=a.width,l.height=a.height,l.dummy="edge-label",l.labelpos=a.labelpos),e.setEdge(t,u,{weight:a.weight},s),c===0&&e.graph().dummyChains.push(u),t=u;e.setEdge(t,o,{weight:a.weight},s)}function Ve(e){e.graph().dummyChains.forEach(n=>{let t=e.node(n),r=t.edgeLabel,o;for(e.setEdge(t.edgeObj,r);t.dummy;)o=e.successors(n)[0],e.removeNode(n),r.points.push({x:t.x,y:t.y}),t.dummy==="edge-label"&&(r.x=t.x,r.y=t.y,r.width=t.width,r.height=t.height),n=o,t=e.node(n)})}function U(e){let n={};function t(r){let o=e.node(r);if(Object.hasOwn(n,r))return o.rank;n[r]=!0;let i=e.outEdges(r),s=i?i.map(d=>d==null?Number.POSITIVE_INFINITY:t(d.w)-e.edge(d).minlen):[],a=I(Math.min,s);return a===Number.POSITIVE_INFINITY&&(a=0),o.rank=a}e.sources().forEach(t)}function V(e,n){return e.node(n.w).rank-e.node(n.v).rank-e.edge(n).minlen}var ee=Vn;function Vn(e){let n=new C({directed:!1}),t=e.nodes();if(t.length===0)throw new Error("Graph must have at least one node");let r=t[0],o=e.nodeCount();n.setNode(r,{});let i,s;for(;Bn(n,e)<o&&(i=Dn(n,e),!!i);)s=n.hasNode(i.v)?V(e,i):-V(e,i),Yn(n,e,s);return n}function Bn(e,n){function t(r){let o=n.nodeEdges(r);o&&o.forEach(i=>{let s=i.v,a=r===s?i.w:s;!e.hasNode(a)&&!V(n,i)&&(e.setNode(a,{}),e.setEdge(r,a,{}),t(a))})}return e.nodes().forEach(t),e.nodeCount()}function Dn(e,n){return n.edges().reduce((r,o)=>{let i=Number.POSITIVE_INFINITY;return e.hasNode(o.v)!==e.hasNode(o.w)&&(i=V(n,o)),i<r[0]?[i,o]:r},[Number.POSITIVE_INFINITY,null])[1]}function Yn(e,n,t){e.nodes().forEach(r=>n.node(r).rank+=t)}var{preorder:Wn,postorder:Xn}=W.alg,De=D;D.initLowLimValues=he;D.initCutValues=fe;D.calcCutValue=Ye;D.leaveEdge=Xe;D.enterEdge=He;D.exchangeEdges=qe;function D(e){e=Te(e),U(e);let n=ee(e);he(n),fe(n,e);let t,r;for(;t=Xe(n);)r=He(n,e,t),qe(n,e,t,r)}function fe(e,n){let t=Xn(e,e.nodes());t=t.slice(0,t.length-1),t.forEach(r=>Hn(e,n,r))}function Hn(e,n,t){let o=e.node(t).parent,i=e.edge(t,o);i.cutvalue=Ye(e,n,t)}function Ye(e,n,t){let o=e.node(t).parent,i=!0,s=n.edge(t,o),a=0;s||(i=!1,s=n.edge(o,t)),a=s.weight;let d=n.nodeEdges(t);return d&&d.forEach(u=>{let l=u.v===t,c=l?u.w:u.v;if(c!==o){let f=l===i,b=n.edge(u).weight;if(a+=f?b:-b,zn(e,t,c)){let m=e.edge(t,c).cutvalue;a+=f?-m:m}}}),a}function he(e,n){arguments.length<2&&(n=e.nodes()[0]),We(e,{},1,n)}function We(e,n,t,r,o){let i=t,s=e.node(r);n[r]=!0;let a=e.neighbors(r);return a&&a.forEach(d=>{Object.hasOwn(n,d)||(t=We(e,n,t,d,r))}),s.low=i,s.lim=t++,o?s.parent=o:delete s.parent,t}function Xe(e){return e.edges().find(n=>e.edge(n).cutvalue<0)}function He(e,n,t){let r=t.v,o=t.w;n.hasEdge(r,o)||(r=t.w,o=t.v);let i=e.node(r),s=e.node(o),a=i,d=!1;return i.lim>s.lim&&(a=s,d=!0),n.edges().filter(l=>d===Be(e,e.node(l.v),a)&&d!==Be(e,e.node(l.w),a)).reduce((l,c)=>V(n,c)<V(n,l)?c:l)}function qe(e,n,t,r){let o=t.v,i=t.w;e.removeEdge(o,i),e.setEdge(r.v,r.w,{}),he(e),fe(e,n),qn(e,n)}function qn(e,n){let t=e.nodes().find(o=>!e.node(o).parent);if(!t)return;let r=Wn(e,[t]);r=r.slice(1),r.forEach(o=>{let s=e.node(o).parent,a=n.edge(o,s),d=!1;a||(a=n.edge(s,o),d=!0),n.node(o).rank=n.node(s).rank+(d?a.minlen:-a.minlen)})}function zn(e,n,t){return e.hasEdge(n,t)}function Be(e,n,t){return t.low<=n.lim&&n.lim<=t.lim}var Ue=Un;function Un(e){let n=e.graph().ranker;if(typeof n=="function")return n(e);switch(n){case"network-simplex":ze(e);break;case"tight-tree":$n(e);break;case"longest-path":Jn(e);break;case"none":break;default:ze(e)}}var Jn=U;function $n(e){U(e),ee(e)}function ze(e){De(e)}var Je=Kn;function Kn(e){let n=Zn(e),t=e.graph();if(!Array.isArray(t.dummyChains))return;t.dummyChains.forEach(o=>{let i=e.node(o),s=i.edgeObj,a=Qn(e,n,s.v,s.w),d=a.path,u=a.lca,l=0,c=d[l],f=!0;for(;o!==s.w;){if(i=e.node(o),f){for(;(c=d[l])!==u&&e.node(c).maxRank<i.rank;)l++;c===u&&(f=!1)}if(!f){for(;l<d.length-1&&e.node(d[l+1]).minRank<=i.rank;)l++;c=d[l]}c!==void 0&&e.setParent(o,c),o=e.successors(o)[0]}})}function Qn(e,n,t,r){let o=[],i=[],s=Math.min(n[t].low,n[r].low),a=Math.max(n[t].lim,n[r].lim),d;d=t;do d=e.parent(d),o.push(d);while(d&&(n[d].low>s||a>n[d].lim));let u=d,l=r;for(;(l=e.parent(l))!==u;)i.push(l);return{path:o.concat(i.reverse()),lca:u}}function Zn(e){let n={},t=0;function r(o){let i=t;e.children(o).forEach(r),n[o]={low:i,lim:t++}}return e.children(B).forEach(r),n}function $e(e){let n=P(e,"root",{},"_root"),t=et(e),r=Object.values(t),o=I(Math.max,r)-1,i=2*o+1;e.graph().nestingRoot=n,e.edges().forEach(a=>e.edge(a).minlen*=i);let s=nt(e)+1;e.children(B).forEach(a=>{Ke(e,n,i,s,o,t,a)}),e.graph().nodeRankFactor=i}function Ke(e,n,t,r,o,i,s){var c;let a=e.children(s);if(!a.length){s!==n&&e.setEdge(n,s,{weight:0,minlen:t});return}let d=se(e,"_bt"),u=se(e,"_bb"),l=e.node(s);e.setParent(d,s),l.borderTop=d,e.setParent(u,s),l.borderBottom=u,a.forEach(f=>{var h;Ke(e,n,t,r,o,i,f);let b=e.node(f),p=b.borderTop?b.borderTop:f,m=b.borderBottom?b.borderBottom:f,E=b.borderTop?r:2*r,y=p!==m?1:o-((h=i[s])!=null?h:0)+1;e.setEdge(d,p,{weight:E,minlen:y,nestingEdge:!0}),e.setEdge(m,u,{weight:E,minlen:y,nestingEdge:!0})}),e.parent(s)||e.setEdge(n,d,{weight:0,minlen:o+((c=i[s])!=null?c:0)})}function et(e){let n={};function t(r,o){let i=e.children(r);i&&i.length&&i.forEach(s=>t(s,o+1)),n[r]=o}return e.children(B).forEach(r=>t(r,1)),n}function nt(e){return e.edges().reduce((n,t)=>n+e.edge(t).weight,0)}function Qe(e){let n=e.graph();e.removeNode(n.nestingRoot),delete n.nestingRoot,e.edges().forEach(t=>{e.edge(t).nestingEdge&&e.removeEdge(t)})}var en=rt;function rt(e){function n(t){let r=e.children(t),o=e.node(t);if(r.length&&r.forEach(n),o&&Object.hasOwn(o,"minRank")){o.borderLeft=[],o.borderRight=[];for(let i=o.minRank,s=o.maxRank+1;i<s;++i)Ze(e,"borderLeft","_bl",t,o,i),Ze(e,"borderRight","_br",t,o,i)}}e.children(B).forEach(n)}function Ze(e,n,t,r,o,i){let s={width:0,height:0,rank:i,borderType:n},a=o[n][i-1],d=P(e,"border",s,t);o[n][i]=d,e.setParent(d,r),a&&e.setEdge(a,d,{weight:1})}function tn(e){var t;let n=(t=e.graph().rankdir)==null?void 0:t.toLowerCase();(n==="lr"||n==="rl")&&on(e)}function rn(e){var t;let n=(t=e.graph().rankdir)==null?void 0:t.toLowerCase();(n==="bt"||n==="rl")&&ot(e),(n==="lr"||n==="rl")&&(it(e),on(e))}function on(e){e.nodes().forEach(n=>nn(e.node(n))),e.edges().forEach(n=>nn(e.edge(n)))}function nn(e){let n=e.width;e.width=e.height,e.height=n}function ot(e){e.nodes().forEach(n=>ge(e.node(n))),e.edges().forEach(n=>{var r;let t=e.edge(n);(r=t.points)==null||r.forEach(ge),Object.hasOwn(t,"y")&&ge(t)})}function ge(e){e.y=-e.y}function it(e){e.nodes().forEach(n=>me(e.node(n))),e.edges().forEach(n=>{var r;let t=e.edge(n);(r=t.points)==null||r.forEach(me),Object.hasOwn(t,"x")&&me(t)})}function me(e){let n=e.x;e.x=e.y,e.y=n}function pe(e,n=null){let t={},r=e.nodes().filter(l=>!e.children(l).length),o=r.map(l=>e.node(l).rank),i=I(Math.max,o),s=A(i+1).map(()=>[]);function a(l){if(t[l])return;t[l]=!0;let c=e.node(l);s[c.rank].push(l);let f=e.successors(l);f&&[...f].sort((p,m)=>u(p,m)).forEach(a)}r.sort((l,c)=>e.node(l).rank-e.node(c).rank).forEach(a);function u(l,c){let f=e.node(l),b=e.node(c);return Q(n,f,b)}return s}function Le(e,n){let t=0;for(let r=1;r<n.length;++r)t+=at(e,n[r-1],n[r]);return t}function at(e,n,t){let r=Me(t,t.map((u,l)=>l)),o=n.flatMap(u=>{let l=e.outEdges(u);return l?l.map(c=>({pos:r[c.w],weight:e.edge(c).weight})).sort((c,f)=>c.pos-f.pos):[]}),i=1;for(;i<t.length;)i<<=1;let s=2*i-1;i-=1;let a=new Array(s).fill(0),d=0;return o.forEach(u=>{let l=u.pos+i;a[l]+=u.weight;let c=0;for(;l>0;)l%2&&(c+=a[l+1]),l=l-1>>1,a[l]+=u.weight;d+=u.weight*c}),d}function Ee(e,n=[]){return n.map(t=>{let r=e.inEdges(t);if(!r||!r.length)return{v:t};{let o=r.reduce((i,s)=>{let a=e.edge(s),d=e.node(s.v);return{sum:i.sum+a.weight*d.order,weight:i.weight+a.weight}},{sum:0,weight:0});return{v:t,barycenter:o.sum/o.weight,weight:o.weight}}})}function ye(e,n){let t={};e.forEach((o,i)=>{let s={indegree:0,in:[],out:[],vs:[o.v],i};o.barycenter!==void 0&&(s.barycenter=o.barycenter,s.weight=o.weight),t[o.v]=s}),n.edges().forEach(o=>{let i=t[o.v],s=t[o.w];i!==void 0&&s!==void 0&&(s.indegree++,i.out.push(s))});let r=Object.values(t).filter(o=>!o.indegree);return dt(r)}function dt(e){let n=[];function t(o){return i=>{i.merged||(i.barycenter===void 0||o.barycenter===void 0||i.barycenter>=o.barycenter)&&lt(o,i)}}function r(o){return i=>{i.in.push(o),--i.indegree===0&&e.push(i)}}for(;e.length;){let o=e.pop();n.push(o),o.in.reverse().forEach(t(o)),o.out.forEach(r(o))}return n.filter(o=>!o.merged).map(o=>X(o,["vs","i","barycenter","weight"]))}function lt(e,n){let t=0,r=0;e.weight&&(t+=e.barycenter*e.weight,r+=e.weight),n.weight&&(t+=n.barycenter*n.weight,r+=n.weight),e.vs=n.vs.concat(e.vs),e.barycenter=t/r,e.weight=r,e.i=Math.min(n.i,e.i),n.merged=!0}function Ne(e,n,t,r,o){let i={},s=null,a=null,d=o;typeof n=="boolean"?(d=n,i={}):n&&(i=n,s=t!=null?t:null,a=r!=null?r:null);let u=je(e,y=>Object.hasOwn(y,"barycenter")),l=u.lhs,c=u.rhs.sort((y,h)=>h.i-y.i),f=[],b=0,p=0,m=0;l.sort(ut(a,s,!!d));for(let[y,h]of Object.entries(i)){let g=l.findIndex(L=>L.vs[0]===y);l.splice(g+1,0,h)}m=sn(f,c,m),l.forEach(y=>{m+=y.vs.length,f.push(y.vs),b+=y.barycenter*y.weight,p+=y.weight,m=sn(f,c,m)});let E={vs:f.flat(1)};return p&&(E.barycenter=b/p,E.weight=p),E}function sn(e,n,t){let r;for(;n.length&&(r=n[n.length-1]).i<=t;)n.pop(),e.push(r.vs),t++;return t}function ut(e,n,t){return(r,o)=>{if(r.barycenter<o.barycenter)return-1;if(r.barycenter>o.barycenter)return 1;if(e&&(typeof r.vs[0]=="string"||typeof o.vs[0]=="string")){let i=e.node(r.vs[0]),s=e.node(o.vs[0]),a=Q(n,i,s);if(a!==0)return a}return t?o.i-r.i:r.i-o.i}}function ne(e,n,t,r,o){var y,h,g,L,N,k,O,T,S,j,M;let i=null,s=o;typeof r=="boolean"?(s=r,i=null):r!==void 0&&(i=r);let a=e.children(n),d=e.node(n),u=d?d.borderLeft:void 0,l=d?d.borderRight:void 0,c={};u&&(a=a.filter(x=>x!==u&&x!==l));let f=Ee(e,a);f.forEach(x=>{if(e.children(x.v).length){let{result:v}=ne(e,x.v,t,i,s);c[x.v]=v,Object.hasOwn(v,"barycenter")&&bt(x,v)}});let b=ye(f,t);ct(b,c);let p={},m=!1;for(let x=0;x<b.length;x++)for(let v=x+1;v<b.length;v++)if(!(!b[x]||!b[v]||!((y=b[x])!=null&&y.barycenter)||!((h=b[v])!=null&&h.barycenter))&&((g=b[x])==null?void 0:g.barycenter)===b[v].barycenter){let G=(N=(L=b[x])==null?void 0:L.vs[0])!=null?N:"",w=(O=(k=b[v])==null?void 0:k.vs[0])!=null?O:"",R=e.node(G),Y=e.node(w);if(R.dummy==="edge"&&Y.dummy==="edge"&&((T=R.edgeObj)==null?void 0:T.v)===((S=Y.edgeObj)==null?void 0:S.v)&&((j=R.edgeObj)==null?void 0:j.w)===((M=Y.edgeObj)==null?void 0:M.w))if(R.edgeLabel.reversed){p[w]=b[x],b.splice(x,1),x--;break}else p[G]||(p[G]=b[v],b.splice(v,1),v--);else m=!0}let E=Ne(b,p,i,e,s);if(u&&l){E.vs=[u,E.vs,l].flat(1);let x=e.predecessors(u);if(x&&x.length){let v=e.node(x[0]),G=e.predecessors(l),w=e.node(G[0]);Object.hasOwn(E,"barycenter")||(E.barycenter=0,E.weight=0),E.barycenter=(E.barycenter*E.weight+v.order+w.order)/(E.weight+2),E.weight+=2}}return Object.defineProperty(E,"result",{value:E,enumerable:!1,configurable:!0,writable:!0}),Object.defineProperty(E,"usedBias",{value:m,enumerable:!1,configurable:!0,writable:!0}),E}function ct(e,n){e.forEach(t=>{t.vs=t.vs.flatMap(r=>n[r]?n[r].vs:r)})}function bt(e,n){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+n.barycenter*n.weight)/(e.weight+n.weight),e.weight+=n.weight):(e.barycenter=n.barycenter,e.weight=n.weight)}function we(e,n,t,r){r||(r=e.nodes());let o=ft(e),i=new C({compound:!0}).setGraph({root:o}).setDefaultNodeLabel(s=>e.node(s));return r.forEach(s=>{let a=e.node(s),d=e.parent(s);if(a.rank===n||a.minRank<=n&&n<=a.maxRank){i.setNode(s),i.setParent(s,d||o);let u=e[t](s);u&&u.forEach(l=>{let c=l.v===s?l.w:l.v,f=i.edge(c,s),b=f!==void 0?f.weight:0;i.setEdge(c,s,{weight:e.edge(l).weight+b})}),Object.hasOwn(a,"minRank")&&i.setNode(s,{borderLeft:a.borderLeft[n],borderRight:a.borderRight[n]})}}),i}function ft(e){let n;for(;e.hasNode(n=z("_root")););return n}function Ge(e,n,t){let r={},o;t.forEach(i=>{let s=e.parent(i),a,d;for(;s;){if(a=e.parent(s),a?(d=r[a],r[a]=s):(d=o,o=s),d&&d!==s){n.setEdge(d,s);return}s=a}})}function te(e,n={},t=null){if(typeof n.customOrder=="function"){n.customOrder(e,te);return}let r=ae(e),o=an(e,A(1,r+1),"inEdges"),i=an(e,A(r-1,-1,-1),"outEdges"),s=pe(e,t);if(dn(e,s),n.disableOptimalOrderHeuristic)return;let a=Number.POSITIVE_INFINITY,d,u=n.constraints||[];for(let l=0,c=0;c<4;++l,++c){ht(l%2?o:i,l%4>=2,u,t),s=_(e);let f=Le(e,s);f<a?(c=0,d=Object.assign({},s),a=f):f===a&&(d=structuredClone(s))}dn(e,d)}function an(e,n,t){let r=new Map,o=(i,s)=>{r.has(i)||r.set(i,[]),r.get(i).push(s)};for(let i of e.nodes()){let s=e.node(i);if(typeof s.rank=="number"&&o(s.rank,i),typeof s.minRank=="number"&&typeof s.maxRank=="number")for(let a=s.minRank;a<=s.maxRank;a++)a!==s.rank&&o(a,i)}return n.map(function(i){return we(e,i,t,r.get(i)||[])})}function ht(e,n,t,r){let o=!0,i=new C;e.forEach(function(s){t.forEach(l=>i.setEdge(l.left,l.right));let a=s.graph().root,{result:d,usedBias:u}=ne(s,a,i,r,o);n&&u&&(o=!o),d.vs.forEach((l,c)=>s.node(l).order=c),Ge(s,i,d.vs)})}function dn(e,n){Object.values(n).forEach(t=>t.forEach((r,o)=>e.node(r).order=o))}function gt(e,n){let t={};function r(o,i){let s=0,a=0,d=o.length,u=i[i.length-1];return i.forEach((l,c)=>{let f=pt(e,l),b=f?e.node(f).order:d;(f||l===u)&&(i.slice(a,c+1).forEach(p=>{let m=e.predecessors(p);m&&m.forEach(E=>{let y=e.node(E),h=y.order;(h<s||b<h)&&!(y.dummy&&e.node(p).dummy)&&un(t,E,p)})}),a=c+1,s=b)}),i}return n.length&&n.reduce(r),t}function mt(e,n){let t={};function r(a){var d;return((d=e.node(a))==null?void 0:d.dummy)==="border"}if(!e.nodes().some(r))return t;function i(a,d,u,l,c){A(d,u).forEach(f=>{let b=a[f];if(b!==void 0&&e.node(b).dummy){let p=e.predecessors(b);p&&p.forEach(m=>{if(m===void 0)return;let E=e.node(m);E.dummy&&(E.order<l||E.order>c)&&un(t,m,b)})}})}function s(a,d){let u=-1,l=-1,c=0;return d.forEach((f,b)=>{if(r(f)){let p=e.predecessors(f);if(p&&p.length){let m=p[0];if(m===void 0)return;l=e.node(m).order,i(d,c,b,u,l),c=b,u=l}}i(d,c,d.length,l,a.length)}),d}return n.length&&n.reduce(s),t}function pt(e,n){if(e.node(n).dummy){let t=e.predecessors(n);if(t)return t.find(r=>e.node(r).dummy)}}function un(e,n,t){if(n>t){let o=n;n=t,t=o}let r=e[n];r||(e[n]=r={}),r[t]=!0}function Lt(e,n,t){if(n>t){let o=n;n=t,t=o}let r=e[n];return r!==void 0&&Object.hasOwn(r,t)}function Et(e,n,t,r,o){let i={},s={},a={};return n.forEach(d=>{d.forEach((u,l)=>{i[u]=u,s[u]=u,a[u]=l})}),n.forEach(d=>{let u=-1,l=-1,c=!1,f=d,b=d.findIndex(p=>(o==null?void 0:o.includes(p))||ln(p,e,o));b>0&&(f=[d[b],...d.slice(0,b),...d.slice(b+1)],c=!0),f.forEach(p=>{var E;let m=r(p);if(m&&m.length){o!=null&&o.includes(p)&&(m=m.filter(g=>ln(g,e,o)));let y=m.sort((g,L)=>{let N=a[g],k=a[L];return(N!==void 0?N:0)-(k!==void 0?k:0)}),h=(y.length-1)/2;for(let g=Math.floor(h),L=Math.ceil(h);g<=L;++g){let N=y[g];if(N===void 0)continue;let k=a[N];if(k!==void 0&&s[p]===p&&u<k&&a[N]!==l&&!Lt(t,p,N)){let O=i[N];O!==void 0&&(s[N]=p,s[p]=i[p]=O,u=k,c&&(u=-1,l=(E=a[N])!=null?E:-1,c=!1))}}}})}),{root:i,align:s}}function yt(e,n,t,r,o=!1){let i={},s=Nt(e,n,t,o),a=o?"borderLeft":"borderRight";function d(b,p){let m=s.nodes().slice(),E={},y=m.pop();for(;y;){if(E[y])b(y);else{E[y]=!0,m.push(y);for(let h of p(y))m.push(h)}y=m.pop()}}function u(b){let p=s.inEdges(b);p?i[b]=p.reduce((m,E)=>{var g;let y=(g=i[E.v])!=null?g:0,h=s.edge(E);return Math.max(m,y+(h!==void 0?h:0))},0):i[b]=0}function l(b){let p=s.outEdges(b),m=Number.POSITIVE_INFINITY;p&&(m=p.reduce((y,h)=>{let g=i[h.w],L=s.edge(h);return Math.min(y,(g!==void 0?g:0)-(L!==void 0?L:0))},Number.POSITIVE_INFINITY));let E=e.node(b);m!==Number.POSITIVE_INFINITY&&E.borderType!==a&&(i[b]=Math.max(i[b]!==void 0?i[b]:0,m))}function c(b){return s.predecessors(b)||[]}function f(b){return s.successors(b)||[]}return d(u,c),d(l,f),Object.keys(r).forEach(b=>{var m;let p=t[b];p!==void 0&&(i[b]=(m=i[p])!=null?m:0)}),i}function Nt(e,n,t,r){let o=new C,i=e.graph(),s=kt(i.nodesep,i.edgesep,r);return n.forEach(a=>{let d;a.forEach(u=>{let l=t[u];if(l!==void 0){if(o.setNode(l),d!==void 0){let c=t[d];if(c!==void 0){let f=o.edge(c,l);o.setEdge(c,l,Math.max(s(e,u,d),f||0))}}d=u}})}),o}function wt(e,n){return Object.values(n).reduce((t,r)=>{let o=Number.NEGATIVE_INFINITY,i=Number.POSITIVE_INFINITY;Object.entries(r).forEach(([a,d])=>{let u=vt(e,a)/2;o=Math.max(d+u,o),i=Math.min(d-u,i)});let s=o-i;return s<t[0]&&(t=[s,r]),t},[Number.POSITIVE_INFINITY,null])[1]}function Gt(e,n){let t=Object.values(n),r=I(Math.min,t),o=I(Math.max,t);["u","d"].forEach(i=>{["l","r"].forEach(s=>{let a=i+s,d=e[a];if(!d||d===n)return;let u=Object.values(d),l=r-I(Math.min,u);s!=="l"&&(l=o-I(Math.max,u)),l&&(e[a]=H(d,c=>c+l))})})}function xt(e,n=void 0){let t=e.ul;return t?H(t,(r,o)=>{var s,a;if(n){let d=n.toLowerCase(),u=e[d];if(u&&u[o]!==void 0)return u[o]}let i=Object.values(e).map(d=>{let u=d[o];return u!==void 0?u:0}).sort((d,u)=>d-u);return(((s=i[1])!=null?s:0)+((a=i[2])!=null?a:0))/2}):{}}function cn(e,n){let t=_(e),r=Object.assign(gt(e,t),mt(e,t)),o={},i;["u","d"].forEach(a=>{i=a==="u"?t:Object.values(t).reverse(),["l","r"].forEach(d=>{d==="r"&&(i=i.map(f=>Object.values(f).reverse()));let l=Et(e,i,r,f=>(a==="u"?e.predecessors(f):e.successors(f))||[],n),c=yt(e,i,l.root,l.align,d==="r");d==="r"&&(c=H(c,f=>-f)),o[a+d]=c})});let s=wt(e,o);return Gt(o,s),xt(o,e.graph().align)}function kt(e,n,t){return(r,o,i)=>{let s=r.node(o),a=r.node(i),d=0,u;if(d+=s.width/2,Object.hasOwn(s,"labelpos"))switch(s.labelpos.toLowerCase()){case"l":u=-s.width/2;break;case"r":u=s.width/2;break}if(u&&(d+=t?u:-u),u=void 0,d+=(s.dummy?n:e)/2,d+=(a.dummy?n:e)/2,d+=a.width/2,Object.hasOwn(a,"labelpos"))switch(a.labelpos.toLowerCase()){case"l":u=a.width/2;break;case"r":u=-a.width/2;break}return u&&(d+=t?u:-u),d}}function vt(e,n){return e.node(n).width}function ln(e,n,t){var s;if(!t)return!1;let r=(s=n.node(e))==null?void 0:s.edgeObj;if(!r||n.node(e).edgeLabel.reversed)return!1;let o=t.indexOf(r==null?void 0:r.v),i=t.indexOf(r==null?void 0:r.w);return o!==-1&&i!==-1&&o===(i+1)%t.length||o===(i-1)%t.length}function bn(e,n){e=K(e),Ot(e),Object.entries(cn(e,n)).forEach(([t,r])=>e.node(t).x=r)}function Ot(e){let n=_(e),t=e.graph(),r=t.ranksep,o=t.rankalign,i=0;n.forEach(s=>{let a=s.reduce((d,u)=>{var c;let l=(c=e.node(u).height)!=null?c:0;return d>l?d:l},0);s.forEach(d=>{let u=e.node(d);o==="top"?u.y=i+u.height/2:o==="bottom"?u.y=i+a-u.height/2:u.y=i+a/2}),i+=a+r})}var fn=new WeakMap;function re(e,n={}){return yn(e,q,n),e}function hn(e,n,t){let r=n;for(;r!==void 0;){let o=e.parent(r);if(o===t)return r;r=o}}function yn(e,n,t){var y;let r=e.nodes().filter(h=>e.children(h).length),o={};r.forEach(h=>{let g=e.node(h);if(g&&g.rankdir){let L=new C({multigraph:!0,compound:!0});L.setGraph({rankdir:g.rankdir});let N=e.children(h);N.forEach(G=>{let w={...e.node(G)};L.setNode(G,w);let R=e.parent(G);R&&R!==h&&N.includes(R)&&L.setParent(G,R)});let k=new Set;e.edges().forEach(G=>{let w=hn(e,G.v,h),R=hn(e,G.w,h);if(w===G.v&&R===G.w)L.setEdge(G,{...e.edge(G)});else if(w&&R&&w!==R){let Y=`${w}\0${R}`;k.has(Y)||(k.add(Y),L.setEdge(w,R,{...e.edge(G)}))}}),yn(L,n,t);let O=En(L);mn(O,n,t,null),pn(L,O);let T=1/0,S=1/0,j=-1/0,M=-1/0;L.nodes().forEach(G=>{if(G===h)return;let w=L.node(G);w&&typeof w.x=="number"&&typeof w.y=="number"&&typeof w.width=="number"&&typeof w.height=="number"&&(T=Math.min(T,w.x-w.width/2),j=Math.max(j,w.x+w.width/2),S=Math.min(S,w.y-w.height/2),M=Math.max(M,w.y+w.height/2))}),(!isFinite(T)||!isFinite(S)||!isFinite(j)||!isFinite(M))&&(T=S=0,j=M=0);let x=j-T,v=M-S;o[h]={minX:T,minY:S,maxX:j,maxY:M,width:x,height:v,offsetX:T,offsetY:S},g._dagreClusterSubgraph=L}});let i=[],s=h=>{let g=[],L=(e.children(h)||[]).filter(N=>N!==h);for(;L.length>0;){let N=L.shift();g.push(N),(e.children(N)||[]).filter(k=>k!==N).forEach(k=>L.push(k))}return g},a=new Map;r.forEach(h=>{let g=e.node(h);g&&g.rankdir&&o[h]&&a.set(h,(e.children(h)||[]).filter(L=>L!==h))});let d=new Set([...a.values()].flat()),u=new Map;a.forEach((h,g)=>{d.has(g)||u.set(g,s(g))});let l=new Set([...u.values()].flat()),c=h=>{for(let[g,L]of u)if(L.includes(h))return g;return h},f=[];e.edges().forEach(h=>{(l.has(h.v)||l.has(h.w))&&f.push({edge:h,label:e.edge(h)})});let b=new Map;l.forEach(h=>{let g=e.parent(h);b.set(h,typeof g=="string"?g:void 0)}),u.forEach((h,g)=>{let L=e.node(g),N=[];h.forEach(T=>{let S=e.node(T);S&&(N.push({id:T,node:S,parent:b.get(T)}),e.removeNode(T))});let k=f.filter(({edge:T})=>h.includes(T.v)||h.includes(T.w)),O=o[g];L&&(i.push({clusterId:g,subgraph:L._dagreClusterSubgraph,bounds:O,children:h,removedNodes:N,removedEdges:k}),L.width=O.width,L.height=O.height)});let p=new Set;f.forEach(({edge:h,label:g})=>{let L=c(h.v),N=c(h.w);if(L!==N&&e.hasNode(L)&&e.hasNode(N)){let k=`${L}\0${N}`;p.has(k)||(p.add(k),e.setEdge(L,N,{...g,width:0,height:0}))}});let m=En(e),E=mn(m,n,t,(y=fn.get(e))!=null?y:null);fn.set(e,E),pn(e,m),p.forEach(h=>{let g=h.indexOf("\0"),L=h.slice(0,g),N=h.slice(g+1);e.hasEdge(L,N)&&e.removeEdge(L,N)}),i.forEach(({clusterId:h,subgraph:g,bounds:L,removedNodes:N,removedEdges:k})=>{var x,v;let O=e.node(h),T=(x=O==null?void 0:O.x)!=null?x:0,S=(v=O==null?void 0:O.y)!=null?v:0,j=(L.minX+L.maxX)/2,M=(L.minY+L.maxY)/2;N.forEach(({id:G,node:w,parent:R})=>{e.setNode(G,w),R!==void 0&&e.setParent(G,R)}),k.forEach(({edge:G,label:w})=>{e.setEdge(G,w)}),g.nodes().forEach(G=>{if(G===h)return;let w=g.node(G),R=e.node(G);R&&w&&typeof w.x=="number"&&typeof w.y=="number"&&(R.x=T+(w.x-j),R.y=S+(w.y-M))}),gn(e,g,T-j,S-M),delete O._dagreClusterSubgraph}),r.forEach(h=>{var N,k;let g=e.node(h),L=o[h];if(g&&g.rankdir&&g._dagreClusterSubgraph&&L){let O=g._dagreClusterSubgraph,T=(N=g.x)!=null?N:0,S=(k=g.y)!=null?k:0,j=(L.minX+L.maxX)/2,M=(L.minY+L.maxY)/2;O.nodes().forEach(x=>{if(x===h)return;let v=O.node(x),G=e.node(x);if(G&&v&&typeof v.x=="number"&&typeof v.y=="number"){let w=v.x-j,R=v.y-M;G.x=T+w,G.y=S+R}}),gn(e,O,T-j,S-M),delete g._dagreClusterSubgraph}})}function gn(e,n,t,r){n.edges().forEach(o=>{if(!e.hasEdge(o))return;let i=n.edge(o),s=e.edge(o);s.points=i.points.map(a=>({x:a.x+t,y:a.y+r})),Object.hasOwn(i,"x")&&(s.x=i.x+t,s.y=i.y+r)})}function mn(e,n,t,r=null){var d,u;let o=(t==null?void 0:t.useDynamic)!==!1,i=o&&(d=r==null?void 0:r.graph)!=null?d:null,s=o&&(u=r==null?void 0:r.rawNodes)!=null?u:null;n(" makeSpaceForEdgeLabels",()=>Pt(e)),n(" removeSelfEdges",()=>Xt(e)),n(" acyclic",()=>_e(e,i)),n(" nestingGraph.run",()=>$e(e)),n(" rank",()=>Ue(K(e))),n(" injectEdgeLabelProxies",()=>_t(e)),n(" removeEmptyRanks",()=>Ce(e)),n(" nestingGraph.cleanup",()=>Qe(e)),n(" normalizeRanks",()=>Re(e)),n(" assignRankMinMax",()=>Ft(e)),n(" removeEdgeLabelProxies",()=>At(e)),n(" normalize.run",()=>Ae(e)),n(" parentDummyChains",()=>Je(e)),n(" addBorderSegments",()=>en(e)),n(" order",()=>te(e,t,s)),n(" insertSelfEdges",()=>Ht(e)),n(" adjustCoordinateSystem",()=>tn(e)),n(" position",()=>bn(e,t.corePath)),n(" positionSelfEdges",()=>qt(e));let a=JSON.parse(JSON.stringify(e._nodes));return n(" removeBorderNodes",()=>Wt(e)),n(" normalize.undo",()=>Ve(e)),n(" fixupEdgeLabelCoords",()=>Dt(e)),n(" undoCoordinateSystem",()=>rn(e)),n(" translateGraph",()=>Vt(e)),n(" assignNodeIntersects",()=>Bt(e)),n(" reversePoints",()=>Yt(e)),n(" acyclic.undo",()=>Fe(e)),{graph:e,rawNodes:a}}function pn(e,n){e.nodes().forEach(t=>{let r=e.node(t),o=n.node(t);r&&(r.x=o.x,r.y=o.y,r.order=o.order,r.rank=o.rank,n.children(t).length&&(r.width=o.width,r.height=o.height))}),e.edges().forEach(t=>{let r=e.edge(t),o=n.edge(t);r.points=o.points,Object.hasOwn(o,"x")&&(r.x=o.x,r.y=o.y)}),e.graph().width=n.graph().width,e.graph().height=n.graph().height}var Tt=["nodesep","edgesep","ranksep","marginx","marginy"],Rt={ranksep:50,edgesep:20,nodesep:50,rankdir:"TB",rankalign:"center"},Ct=["acyclicer","ranker","rankdir","align","rankalign"],St=["width","height","rank"],Ln={width:0,height:0},jt=["minlen","weight","width","height","labeloffset"],Mt={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},It=["labelpos"];function En(e){let n=new C({multigraph:!0,compound:!0}),t=ke(e.graph());return n.setGraph(Object.assign({},Rt,xe(t,Tt),X(t,Ct))),e.nodes().forEach(r=>{let o=ke(e.node(r)),i=xe(o,St);Object.keys(Ln).forEach(a=>{i[a]===void 0&&(i[a]=Ln[a])}),n.setNode(r,i);let s=e.parent(r);s!==void 0&&n.setParent(r,s)}),e.edges().forEach(r=>{let o=ke(e.edge(r));n.setEdge(r,Object.assign({},Mt,xe(o,jt),X(o,It)))}),n}function Pt(e){let n=e.graph();n.ranksep/=2,e.edges().forEach(t=>{var o;let r=e.edge(t);r.minlen*=2,((o=r.labelpos)!=null?o:"r").toLowerCase()!=="c"&&(n.rankdir==="TB"||n.rankdir==="BT"?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function _t(e){e.edges().forEach(n=>{let t=e.edge(n);if(t.width&&t.height){let r=e.node(n.v),i={rank:(e.node(n.w).rank-r.rank)/2+r.rank,e:n};P(e,"edge-proxy",i,"_ep")}})}function Ft(e){let n=0;e.nodes().forEach(t=>{let r=e.node(t);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,n=Math.max(n,r.maxRank))}),e.graph().maxRank=n}function At(e){e.nodes().forEach(n=>{let t=e.node(n);if(t.dummy==="edge-proxy"){let r=t;e.edge(r.e).labelRank=t.rank,e.removeNode(n)}})}function Vt(e){let n=Number.POSITIVE_INFINITY,t=0,r=Number.POSITIVE_INFINITY,o=0,i=e.graph(),s=i.marginx||0,a=i.marginy||0;function d(u){let l=u.x,c=u.y,f=u.width,b=u.height;n=Math.min(n,l-f/2),t=Math.max(t,l+f/2),r=Math.min(r,c-b/2),o=Math.max(o,c+b/2)}e.nodes().forEach(u=>d(e.node(u))),e.edges().forEach(u=>{let l=e.edge(u);Object.hasOwn(l,"x")&&d(l)}),n-=s,r-=a,e.nodes().forEach(u=>{let l=e.node(u);l.x-=n,l.y-=r}),e.edges().forEach(u=>{let l=e.edge(u);l.points.forEach(c=>{c.x-=n,c.y-=r}),Object.hasOwn(l,"x")&&(l.x-=n),Object.hasOwn(l,"y")&&(l.y-=r)}),i.width=t-n+s,i.height=o-r+a}function Bt(e){e.edges().forEach(n=>{if(n.v===n.w)return;let t=e.edge(n),r=e.node(n.v),o=e.node(n.w),i,s;t.points?(i=t.points[0],s=t.points[t.points.length-1]):(t.points=[],i=o,s=r),t.points.unshift(ie(r,i)),t.points.push(ie(o,s))})}function Dt(e){e.edges().forEach(n=>{let t=e.edge(n);if(Object.hasOwn(t,"x"))switch((t.labelpos==="l"||t.labelpos==="r")&&(t.width-=t.labeloffset),t.labelpos){case"l":t.x-=t.width/2+t.labeloffset;break;case"r":t.x+=t.width/2+t.labeloffset;break}})}function Yt(e){e.edges().forEach(n=>{let t=e.edge(n);t.reversed&&t.points.reverse()})}function Wt(e){e.nodes().forEach(n=>{if(e.children(n).length){let t=e.node(n),r=e.node(t.borderTop),o=e.node(t.borderBottom),i=e.node(t.borderLeft[t.borderLeft.length-1]),s=e.node(t.borderRight[t.borderRight.length-1]);t.width=Math.abs(s.x-i.x),t.height=Math.abs(o.y-r.y),t.x=i.x+t.width/2,t.y=r.y+t.height/2}}),e.nodes().forEach(n=>{e.node(n).dummy==="border"&&e.removeNode(n)})}function Xt(e){e.edges().forEach(n=>{if(n.v===n.w){let t=e.node(n.v);t.selfEdges||(t.selfEdges=[]),t.selfEdges.push({e:n,label:e.edge(n)}),e.removeEdge(n)}})}function Ht(e){_(e).forEach(t=>{let r=0;t.forEach((o,i)=>{let s=e.node(o);typeof s.rank!="number"&&(s.rank=0),s.order=i+r,(s.selfEdges||[]).forEach(a=>{P(e,"selfedge",{width:a.label.width,height:a.label.height,rank:s.rank,order:i+ ++r,e:a.e,edgeLabel:a.label},"_se"),(!Array.isArray(a.label.points)||a.label.points.length!==7)&&(a.label.points=[{x:0,y:-10},{x:0,y:-10},{x:0,y:0},{x:0,y:10},{x:0,y:10},{x:0,y:0},{x:0,y:0}])}),delete s.selfEdges})})}function qt(e){e.nodes().forEach(n=>{let t=e.node(n),r=o=>typeof o=="number"&&isFinite(o);if(t.dummy==="selfedge"){let o=t,i=e.node(o.e.v),s=r(i==null?void 0:i.x)?i.x:0,a=r(i==null?void 0:i.y)?i.y:0,d=r(i==null?void 0:i.width)?i.width:0,u=r(i==null?void 0:i.height)?i.height:0,l=r(t.x)?t.x:s,c=r(t.y)?t.y:a,f=d/2,b=u/2;o.edgeLabel.points=[{x:l+f,y:c-b},{x:l+f,y:c-b},{x:l,y:c},{x:l-f,y:c+b},{x:l-f,y:c+b},{x:l,y:c},{x:l,y:c}],o.edgeLabel.x=l,o.edgeLabel.y=c,e.setEdge(o.e,o.edgeLabel),e.removeNode(n)}else t&&Array.isArray(t.selfEdges)&&t.selfEdges.forEach(o=>{if(!Array.isArray(o.label.points)||o.label.points.length!==7){let i=r(t.x)?t.x:0,s=r(t.y)?t.y:0,a=r(t.width)?t.width:0,d=r(t.height)?t.height:0,u=a/2,l=d/2;o.label.points=[{x:i+u,y:s-l},{x:i+u,y:s-l},{x:i,y:s},{x:i-u,y:s+l},{x:i-u,y:s+l},{x:i,y:s},{x:i,y:s}]}})})}function xe(e,n){return H(X(e,n),Number)}function ke(e){let n={};return e&&Object.entries(e).forEach(([t,r])=>{typeof t=="string"&&(t=t.toLowerCase()),n[t]=r}),n}function oe(e){let n=_(e),t=new C({compound:!0,multigraph:!0}).setGraph({});return e.nodes().forEach(r=>{t.setNode(r,{label:r}),t.setParent(r,"layer"+e.node(r).rank)}),e.edges().forEach(r=>t.setEdge(r.v,r.w,{},r.name)),n.forEach((r,o)=>{let i="layer"+o;t.setNode(i,{rank:"same"}),r.reduce((s,a)=>(t.setEdge(s,a,{style:"invis"}),a))}),t}var zt={time:de,notime:q},Ut={graphlib:$,version:Z,layout:re,debug:oe,util:{time:de,notime:q}},Jt=Ut;0&&(module.exports={Graph,debug,graphlib,layout,util,version});
2
2
  /*! For license information please see dagre.cjs.LEGAL.txt */
3
3
  //# sourceMappingURL=dagre.cjs.map