bknd
Version:
Lightweight Firebase/Supabase alternative built to run anywhere — incl. Next.js, React Router, Astro, Cloudflare, Bun, Node, AWS Lambda & more.
2 lines (1 loc) • 45.5 kB
JavaScript
var it=Object.defineProperty;var at=(m,c,u)=>c in m?it(m,c,{enumerable:!0,configurable:!0,writable:!0,value:u}):m[c]=u;var F=(m,c,u)=>at(m,typeof c!="symbol"?c+"":c,u);import{aq as st,r as ot,j as V,K as Ke,t as dt,ar as Je,as as Q,at as ut,au as lt,a1 as ht,av as ft,aw as ct,ax as pt,ay as mt,az as bt}from"./main-BgziOQpI.js";var ee,Ze;function $e(){if(Ze)return ee;Ze=1;var m="\0",c="\0",u="";class d{constructor(r){F(this,"_isDirected",!0);F(this,"_isMultigraph",!1);F(this,"_isCompound",!1);F(this,"_label");F(this,"_defaultNodeLabelFn",()=>{});F(this,"_defaultEdgeLabelFn",()=>{});F(this,"_nodes",{});F(this,"_in",{});F(this,"_preds",{});F(this,"_out",{});F(this,"_sucs",{});F(this,"_edgeObjs",{});F(this,"_edgeLabels",{});F(this,"_nodeCount",0);F(this,"_edgeCount",0);F(this,"_parent");F(this,"_children");r&&(this._isDirected=Object.hasOwn(r,"directed")?r.directed:!0,this._isMultigraph=Object.hasOwn(r,"multigraph")?r.multigraph:!1,this._isCompound=Object.hasOwn(r,"compound")?r.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children[c]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(r){return this._label=r,this}graph(){return this._label}setDefaultNodeLabel(r){return this._defaultNodeLabelFn=r,typeof r!="function"&&(this._defaultNodeLabelFn=()=>r),this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){var r=this;return this.nodes().filter(t=>Object.keys(r._in[t]).length===0)}sinks(){var r=this;return this.nodes().filter(t=>Object.keys(r._out[t]).length===0)}setNodes(r,t){var l=arguments,f=this;return r.forEach(function(w){l.length>1?f.setNode(w,t):f.setNode(w)}),this}setNode(r,t){return Object.hasOwn(this._nodes,r)?(arguments.length>1&&(this._nodes[r]=t),this):(this._nodes[r]=arguments.length>1?t:this._defaultNodeLabelFn(r),this._isCompound&&(this._parent[r]=c,this._children[r]={},this._children[c][r]=!0),this._in[r]={},this._preds[r]={},this._out[r]={},this._sucs[r]={},++this._nodeCount,this)}node(r){return this._nodes[r]}hasNode(r){return Object.hasOwn(this._nodes,r)}removeNode(r){var t=this;if(Object.hasOwn(this._nodes,r)){var l=f=>t.removeEdge(t._edgeObjs[f]);delete this._nodes[r],this._isCompound&&(this._removeFromParentsChildList(r),delete this._parent[r],this.children(r).forEach(function(f){t.setParent(f)}),delete this._children[r]),Object.keys(this._in[r]).forEach(l),delete this._in[r],delete this._preds[r],Object.keys(this._out[r]).forEach(l),delete this._out[r],delete this._sucs[r],--this._nodeCount}return this}setParent(r,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(t===void 0)t=c;else{t+="";for(var l=t;l!==void 0;l=this.parent(l))if(l===r)throw new Error("Setting "+t+" as parent of "+r+" would create a cycle");this.setNode(t)}return this.setNode(r),this._removeFromParentsChildList(r),this._parent[r]=t,this._children[t][r]=!0,this}_removeFromParentsChildList(r){delete this._children[this._parent[r]][r]}parent(r){if(this._isCompound){var t=this._parent[r];if(t!==c)return t}}children(r=c){if(this._isCompound){var t=this._children[r];if(t)return Object.keys(t)}else{if(r===c)return this.nodes();if(this.hasNode(r))return[]}}predecessors(r){var t=this._preds[r];if(t)return Object.keys(t)}successors(r){var t=this._sucs[r];if(t)return Object.keys(t)}neighbors(r){var t=this.predecessors(r);if(t){const f=new Set(t);for(var l of this.successors(r))f.add(l);return Array.from(f.values())}}isLeaf(r){var t;return this.isDirected()?t=this.successors(r):t=this.neighbors(r),t.length===0}filterNodes(r){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var l=this;Object.entries(this._nodes).forEach(function([C,p]){r(C)&&t.setNode(C,p)}),Object.values(this._edgeObjs).forEach(function(C){t.hasNode(C.v)&&t.hasNode(C.w)&&t.setEdge(C,l.edge(C))});var f={};function w(C){var p=l.parent(C);return p===void 0||t.hasNode(p)?(f[C]=p,p):p in f?f[p]:w(p)}return this._isCompound&&t.nodes().forEach(C=>t.setParent(C,w(C))),t}setDefaultEdgeLabel(r){return this._defaultEdgeLabelFn=r,typeof r!="function"&&(this._defaultEdgeLabelFn=()=>r),this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(r,t){var l=this,f=arguments;return r.reduce(function(w,C){return f.length>1?l.setEdge(w,C,t):l.setEdge(w,C),C}),this}setEdge(){var r,t,l,f,w=!1,C=arguments[0];typeof C=="object"&&C!==null&&"v"in C?(r=C.v,t=C.w,l=C.name,arguments.length===2&&(f=arguments[1],w=!0)):(r=C,t=arguments[1],l=arguments[3],arguments.length>2&&(f=arguments[2],w=!0)),r=""+r,t=""+t,l!==void 0&&(l=""+l);var p=e(this._isDirected,r,t,l);if(Object.hasOwn(this._edgeLabels,p))return w&&(this._edgeLabels[p]=f),this;if(l!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(r),this.setNode(t),this._edgeLabels[p]=w?f:this._defaultEdgeLabelFn(r,t,l);var O=s(this._isDirected,r,t,l);return r=O.v,t=O.w,Object.freeze(O),this._edgeObjs[p]=O,a(this._preds[t],r),a(this._sucs[r],t),this._in[t][p]=O,this._out[r][p]=O,this._edgeCount++,this}edge(r,t,l){var f=arguments.length===1?i(this._isDirected,arguments[0]):e(this._isDirected,r,t,l);return this._edgeLabels[f]}edgeAsObj(){const r=this.edge(...arguments);return typeof r!="object"?{label:r}:r}hasEdge(r,t,l){var f=arguments.length===1?i(this._isDirected,arguments[0]):e(this._isDirected,r,t,l);return Object.hasOwn(this._edgeLabels,f)}removeEdge(r,t,l){var f=arguments.length===1?i(this._isDirected,arguments[0]):e(this._isDirected,r,t,l),w=this._edgeObjs[f];return w&&(r=w.v,t=w.w,delete this._edgeLabels[f],delete this._edgeObjs[f],n(this._preds[t],r),n(this._sucs[r],t),delete this._in[t][f],delete this._out[r][f],this._edgeCount--),this}inEdges(r,t){var l=this._in[r];if(l){var f=Object.values(l);return t?f.filter(w=>w.v===t):f}}outEdges(r,t){var l=this._out[r];if(l){var f=Object.values(l);return t?f.filter(w=>w.w===t):f}}nodeEdges(r,t){var l=this.inEdges(r,t);if(l)return l.concat(this.outEdges(r,t))}}function a(o,r){o[r]?o[r]++:o[r]=1}function n(o,r){--o[r]||delete o[r]}function e(o,r,t,l){var f=""+r,w=""+t;if(!o&&f>w){var C=f;f=w,w=C}return f+u+w+u+(l===void 0?m:l)}function s(o,r,t,l){var f=""+r,w=""+t;if(!o&&f>w){var C=f;f=w,w=C}var p={v:f,w};return l&&(p.name=l),p}function i(o,r){return e(o,r.v,r.w,r.name)}return ee=d,ee}var re,er;function gt(){return er||(er=1,re="2.2.4"),re}var te,rr;function vt(){return rr||(rr=1,te={Graph:$e(),version:gt()}),te}var ne,tr;function wt(){if(tr)return ne;tr=1;var m=$e();ne={write:c,read:a};function c(n){var e={options:{directed:n.isDirected(),multigraph:n.isMultigraph(),compound:n.isCompound()},nodes:u(n),edges:d(n)};return n.graph()!==void 0&&(e.value=structuredClone(n.graph())),e}function u(n){return n.nodes().map(function(e){var s=n.node(e),i=n.parent(e),o={v:e};return s!==void 0&&(o.value=s),i!==void 0&&(o.parent=i),o})}function d(n){return n.edges().map(function(e){var s=n.edge(e),i={v:e.v,w:e.w};return e.name!==void 0&&(i.name=e.name),s!==void 0&&(i.value=s),i})}function a(n){var e=new m(n.options).setGraph(n.value);return n.nodes.forEach(function(s){e.setNode(s.v,s.value),s.parent&&e.setParent(s.v,s.parent)}),n.edges.forEach(function(s){e.setEdge({v:s.v,w:s.w,name:s.name},s.value)}),e}return ne}var ie,nr;function Et(){if(nr)return ie;nr=1,ie=m;function m(c){var u={},d=[],a;function n(e){Object.hasOwn(u,e)||(u[e]=!0,a.push(e),c.successors(e).forEach(n),c.predecessors(e).forEach(n))}return c.nodes().forEach(function(e){a=[],n(e),a.length&&d.push(a)}),d}return ie}var ae,ir;function Ur(){if(ir)return ae;ir=1;class m{constructor(){F(this,"_arr",[]);F(this,"_keyIndices",{})}size(){return this._arr.length}keys(){return this._arr.map(function(u){return u.key})}has(u){return Object.hasOwn(this._keyIndices,u)}priority(u){var d=this._keyIndices[u];if(d!==void 0)return this._arr[d].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(u,d){var a=this._keyIndices;if(u=String(u),!Object.hasOwn(a,u)){var n=this._arr,e=n.length;return a[u]=e,n.push({key:u,priority:d}),this._decrease(e),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);var u=this._arr.pop();return delete this._keyIndices[u.key],this._heapify(0),u.key}decrease(u,d){var a=this._keyIndices[u];if(d>this._arr[a].priority)throw new Error("New priority is greater than current priority. Key: "+u+" Old: "+this._arr[a].priority+" New: "+d);this._arr[a].priority=d,this._decrease(a)}_heapify(u){var d=this._arr,a=2*u,n=a+1,e=u;a<d.length&&(e=d[a].priority<d[e].priority?a:e,n<d.length&&(e=d[n].priority<d[e].priority?n:e),e!==u&&(this._swap(u,e),this._heapify(e)))}_decrease(u){for(var d=this._arr,a=d[u].priority,n;u!==0&&(n=u>>1,!(d[n].priority<a));)this._swap(u,n),u=n}_swap(u,d){var a=this._arr,n=this._keyIndices,e=a[u],s=a[d];a[u]=s,a[d]=e,n[s.key]=u,n[e.key]=d}}return ae=m,ae}var se,ar;function Xr(){if(ar)return se;ar=1;var m=Ur();se=u;var c=()=>1;function u(a,n,e,s){return d(a,String(n),e||c,s||function(i){return a.outEdges(i)})}function d(a,n,e,s){var i={},o=new m,r,t,l=function(f){var w=f.v!==r?f.v:f.w,C=i[w],p=e(f),O=t.distance+p;if(p<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+f+" Weight: "+p);O<C.distance&&(C.distance=O,C.predecessor=r,o.decrease(w,O))};for(a.nodes().forEach(function(f){var w=f===n?0:Number.POSITIVE_INFINITY;i[f]={distance:w},o.add(f,w)});o.size()>0&&(r=o.removeMin(),t=i[r],t.distance!==Number.POSITIVE_INFINITY);)s(r).forEach(l);return i}return se}var oe,sr;function yt(){if(sr)return oe;sr=1;var m=Xr();oe=c;function c(u,d,a){return u.nodes().reduce(function(n,e){return n[e]=m(u,e,d,a),n},{})}return oe}var de,or;function Qr(){if(or)return de;or=1,de=m;function m(c){var u=0,d=[],a={},n=[];function e(s){var i=a[s]={onStack:!0,lowlink:u,index:u++};if(d.push(s),c.successors(s).forEach(function(t){Object.hasOwn(a,t)?a[t].onStack&&(i.lowlink=Math.min(i.lowlink,a[t].index)):(e(t),i.lowlink=Math.min(i.lowlink,a[t].lowlink))}),i.lowlink===i.index){var o=[],r;do r=d.pop(),a[r].onStack=!1,o.push(r);while(s!==r);n.push(o)}}return c.nodes().forEach(function(s){Object.hasOwn(a,s)||e(s)}),n}return de}var ue,dr;function _t(){if(dr)return ue;dr=1;var m=Qr();ue=c;function c(u){return m(u).filter(function(d){return d.length>1||d.length===1&&u.hasEdge(d[0],d[0])})}return ue}var le,ur;function kt(){if(ur)return le;ur=1,le=c;var m=()=>1;function c(d,a,n){return u(d,a||m,n||function(e){return d.outEdges(e)})}function u(d,a,n){var e={},s=d.nodes();return s.forEach(function(i){e[i]={},e[i][i]={distance:0},s.forEach(function(o){i!==o&&(e[i][o]={distance:Number.POSITIVE_INFINITY})}),n(i).forEach(function(o){var r=o.v===i?o.w:o.v,t=a(o);e[i][r]={distance:t,predecessor:i}})}),s.forEach(function(i){var o=e[i];s.forEach(function(r){var t=e[r];s.forEach(function(l){var f=t[i],w=o[l],C=t[l],p=f.distance+w.distance;p<C.distance&&(C.distance=p,C.predecessor=w.predecessor)})})}),e}return le}var he,lr;function Kr(){if(lr)return he;lr=1;function m(u){var d={},a={},n=[];function e(s){if(Object.hasOwn(a,s))throw new c;Object.hasOwn(d,s)||(a[s]=!0,d[s]=!0,u.predecessors(s).forEach(e),delete a[s],n.push(s))}if(u.sinks().forEach(e),Object.keys(d).length!==u.nodeCount())throw new c;return n}class c extends Error{constructor(){super(...arguments)}}return he=m,m.CycleException=c,he}var fe,hr;function Ot(){if(hr)return fe;hr=1;var m=Kr();fe=c;function c(u){try{m(u)}catch(d){if(d instanceof m.CycleException)return!1;throw d}return!0}return fe}var ce,fr;function Jr(){if(fr)return ce;fr=1,ce=m;function m(a,n,e){Array.isArray(n)||(n=[n]);var s=a.isDirected()?t=>a.successors(t):t=>a.neighbors(t),i=e==="post"?c:u,o=[],r={};return n.forEach(t=>{if(!a.hasNode(t))throw new Error("Graph does not have node: "+t);i(t,s,r,o)}),o}function c(a,n,e,s){for(var i=[[a,!1]];i.length>0;){var o=i.pop();o[1]?s.push(o[0]):Object.hasOwn(e,o[0])||(e[o[0]]=!0,i.push([o[0],!0]),d(n(o[0]),r=>i.push([r,!1])))}}function u(a,n,e,s){for(var i=[a];i.length>0;){var o=i.pop();Object.hasOwn(e,o)||(e[o]=!0,s.push(o),d(n(o),r=>i.push(r)))}}function d(a,n){for(var e=a.length;e--;)n(a[e],e,a);return a}return ce}var pe,cr;function Nt(){if(cr)return pe;cr=1;var m=Jr();pe=c;function c(u,d){return m(u,d,"post")}return pe}var me,pr;function xt(){if(pr)return me;pr=1;var m=Jr();me=c;function c(u,d){return m(u,d,"pre")}return me}var be,mr;function jt(){if(mr)return be;mr=1;var m=$e(),c=Ur();be=u;function u(d,a){var n=new m,e={},s=new c,i;function o(t){var l=t.v===i?t.w:t.v,f=s.priority(l);if(f!==void 0){var w=a(t);w<f&&(e[l]=i,s.decrease(l,w))}}if(d.nodeCount()===0)return n;d.nodes().forEach(function(t){s.add(t,Number.POSITIVE_INFINITY),n.setNode(t)}),s.decrease(d.nodes()[0],0);for(var r=!1;s.size()>0;){if(i=s.removeMin(),Object.hasOwn(e,i))n.setEdge(i,e[i]);else{if(r)throw new Error("Input graph is not connected: "+d);r=!0}d.nodeEdges(i).forEach(o)}return n}return be}var ge,br;function Ct(){return br||(br=1,ge={components:Et(),dijkstra:Xr(),dijkstraAll:yt(),findCycles:_t(),floydWarshall:kt(),isAcyclic:Ot(),postorder:Nt(),preorder:xt(),prim:jt(),tarjan:Qr(),topsort:Kr()}),ge}var ve,gr;function z(){if(gr)return ve;gr=1;var m=vt();return ve={Graph:m.Graph,json:wt(),alg:Ct(),version:m.version},ve}var we,vr;function Rt(){if(vr)return we;vr=1;class m{constructor(){let a={};a._next=a._prev=a,this._sentinel=a}dequeue(){let a=this._sentinel,n=a._prev;if(n!==a)return c(n),n}enqueue(a){let n=this._sentinel;a._prev&&a._next&&c(a),a._next=n._next,n._next._prev=a,n._next=a,a._prev=n}toString(){let a=[],n=this._sentinel,e=n._prev;for(;e!==n;)a.push(JSON.stringify(e,u)),e=e._prev;return"["+a.join(", ")+"]"}}function c(d){d._prev._next=d._next,d._next._prev=d._prev,delete d._next,delete d._prev}function u(d,a){if(d!=="_next"&&d!=="_prev")return a}return we=m,we}var Ee,wr;function It(){if(wr)return Ee;wr=1;let m=z().Graph,c=Rt();Ee=d;let u=()=>1;function d(o,r){if(o.nodeCount()<=1)return[];let t=e(o,r||u);return a(t.graph,t.buckets,t.zeroIdx).flatMap(f=>o.outEdges(f.v,f.w))}function a(o,r,t){let l=[],f=r[r.length-1],w=r[0],C;for(;o.nodeCount();){for(;C=w.dequeue();)n(o,r,t,C);for(;C=f.dequeue();)n(o,r,t,C);if(o.nodeCount()){for(let p=r.length-2;p>0;--p)if(C=r[p].dequeue(),C){l=l.concat(n(o,r,t,C,!0));break}}}return l}function n(o,r,t,l,f){let w=f?[]:void 0;return o.inEdges(l.v).forEach(C=>{let p=o.edge(C),O=o.node(C.v);f&&w.push({v:C.v,w:C.w}),O.out-=p,s(r,t,O)}),o.outEdges(l.v).forEach(C=>{let p=o.edge(C),O=C.w,b=o.node(O);b.in-=p,s(r,t,b)}),o.removeNode(l.v),w}function e(o,r){let t=new m,l=0,f=0;o.nodes().forEach(p=>{t.setNode(p,{v:p,in:0,out:0})}),o.edges().forEach(p=>{let O=t.edge(p.v,p.w)||0,b=r(p),k=O+b;t.setEdge(p.v,p.w,k),f=Math.max(f,t.node(p.v).out+=b),l=Math.max(l,t.node(p.w).in+=b)});let w=i(f+l+3).map(()=>new c),C=l+1;return t.nodes().forEach(p=>{s(w,C,t.node(p))}),{graph:t,buckets:w,zeroIdx:C}}function s(o,r,t){t.out?t.in?o[t.out-t.in+r].enqueue(t):o[o.length-1].enqueue(t):o[0].enqueue(t)}function i(o){const r=[];for(let t=0;t<o;t++)r.push(t);return r}return Ee}var ye,Er;function A(){if(Er)return ye;Er=1;let m=z().Graph;ye={addBorderNode:r,addDummyNode:c,applyWithChunking:f,asNonCompoundGraph:d,buildLayerMatrix:s,intersectRect:e,mapValues:I,maxRank:w,normalizeRanks:i,notime:O,partition:C,pick:R,predecessorWeights:n,range:x,removeEmptyRanks:o,simplify:u,successorWeights:a,time:p,uniqueId:k,zipObject:q};function c(h,g,E,_){let j;do j=k(_);while(h.hasNode(j));return E.dummy=g,h.setNode(j,E),j}function u(h){let g=new m().setGraph(h.graph());return h.nodes().forEach(E=>g.setNode(E,h.node(E))),h.edges().forEach(E=>{let _=g.edge(E.v,E.w)||{weight:0,minlen:1},j=h.edge(E);g.setEdge(E.v,E.w,{weight:_.weight+j.weight,minlen:Math.max(_.minlen,j.minlen)})}),g}function d(h){let g=new m({multigraph:h.isMultigraph()}).setGraph(h.graph());return h.nodes().forEach(E=>{h.children(E).length||g.setNode(E,h.node(E))}),h.edges().forEach(E=>{g.setEdge(E,h.edge(E))}),g}function a(h){let g=h.nodes().map(E=>{let _={};return h.outEdges(E).forEach(j=>{_[j.w]=(_[j.w]||0)+h.edge(j).weight}),_});return q(h.nodes(),g)}function n(h){let g=h.nodes().map(E=>{let _={};return h.inEdges(E).forEach(j=>{_[j.v]=(_[j.v]||0)+h.edge(j).weight}),_});return q(h.nodes(),g)}function e(h,g){let E=h.x,_=h.y,j=g.x-E,T=g.y-_,S=h.width/2,D=h.height/2;if(!j&&!T)throw new Error("Not possible to find intersection inside of the rectangle");let H,$;return Math.abs(T)*S>Math.abs(j)*D?(T<0&&(D=-D),H=D*j/T,$=D):(j<0&&(S=-S),H=S,$=S*T/j),{x:E+H,y:_+$}}function s(h){let g=x(w(h)+1).map(()=>[]);return h.nodes().forEach(E=>{let _=h.node(E),j=_.rank;j!==void 0&&(g[j][_.order]=E)}),g}function i(h){let g=h.nodes().map(_=>{let j=h.node(_).rank;return j===void 0?Number.MAX_VALUE:j}),E=f(Math.min,g);h.nodes().forEach(_=>{let j=h.node(_);Object.hasOwn(j,"rank")&&(j.rank-=E)})}function o(h){let g=h.nodes().map(S=>h.node(S).rank),E=f(Math.min,g),_=[];h.nodes().forEach(S=>{let D=h.node(S).rank-E;_[D]||(_[D]=[]),_[D].push(S)});let j=0,T=h.graph().nodeRankFactor;Array.from(_).forEach((S,D)=>{S===void 0&&D%T!==0?--j:S!==void 0&&j&&S.forEach(H=>h.node(H).rank+=j)})}function r(h,g,E,_){let j={width:0,height:0};return arguments.length>=4&&(j.rank=E,j.order=_),c(h,"border",j,g)}function t(h,g=l){const E=[];for(let _=0;_<h.length;_+=g){const j=h.slice(_,_+g);E.push(j)}return E}const l=65535;function f(h,g){if(g.length>l){const E=t(g);return h.apply(null,E.map(_=>h.apply(null,_)))}else return h.apply(null,g)}function w(h){const E=h.nodes().map(_=>{let j=h.node(_).rank;return j===void 0?Number.MIN_VALUE:j});return f(Math.max,E)}function C(h,g){let E={lhs:[],rhs:[]};return h.forEach(_=>{g(_)?E.lhs.push(_):E.rhs.push(_)}),E}function p(h,g){let E=Date.now();try{return g()}finally{console.log(h+" time: "+(Date.now()-E)+"ms")}}function O(h,g){return g()}let b=0;function k(h){var g=++b;return toString(h)+g}function x(h,g,E=1){g==null&&(g=h,h=0);let _=T=>T<g;E<0&&(_=T=>g<T);const j=[];for(let T=h;_(T);T+=E)j.push(T);return j}function R(h,g){const E={};for(const _ of g)h[_]!==void 0&&(E[_]=h[_]);return E}function I(h,g){let E=g;return typeof g=="string"&&(E=_=>_[g]),Object.entries(h).reduce((_,[j,T])=>(_[j]=E(T,j),_),{})}function q(h,g){return h.reduce((E,_,j)=>(E[_]=g[j],E),{})}return ye}var _e,yr;function Lt(){if(yr)return _e;yr=1;let m=It(),c=A().uniqueId;_e={run:u,undo:a};function u(n){(n.graph().acyclicer==="greedy"?m(n,s(n)):d(n)).forEach(i=>{let o=n.edge(i);n.removeEdge(i),o.forwardName=i.name,o.reversed=!0,n.setEdge(i.w,i.v,o,c("rev"))});function s(i){return o=>i.edge(o).weight}}function d(n){let e=[],s={},i={};function o(r){Object.hasOwn(i,r)||(i[r]=!0,s[r]=!0,n.outEdges(r).forEach(t=>{Object.hasOwn(s,t.w)?e.push(t):o(t.w)}),delete s[r])}return n.nodes().forEach(o),e}function a(n){n.edges().forEach(e=>{let s=n.edge(e);if(s.reversed){n.removeEdge(e);let i=s.forwardName;delete s.reversed,delete s.forwardName,n.setEdge(e.w,e.v,s,i)}})}return _e}var ke,_r;function qt(){if(_r)return ke;_r=1;let m=A();ke={run:c,undo:d};function c(a){a.graph().dummyChains=[],a.edges().forEach(n=>u(a,n))}function u(a,n){let e=n.v,s=a.node(e).rank,i=n.w,o=a.node(i).rank,r=n.name,t=a.edge(n),l=t.labelRank;if(o===s+1)return;a.removeEdge(n);let f,w,C;for(C=0,++s;s<o;++C,++s)t.points=[],w={width:0,height:0,edgeLabel:t,edgeObj:n,rank:s},f=m.addDummyNode(a,"edge",w,"_d"),s===l&&(w.width=t.width,w.height=t.height,w.dummy="edge-label",w.labelpos=t.labelpos),a.setEdge(e,f,{weight:t.weight},r),C===0&&a.graph().dummyChains.push(f),e=f;a.setEdge(e,i,{weight:t.weight},r)}function d(a){a.graph().dummyChains.forEach(n=>{let e=a.node(n),s=e.edgeLabel,i;for(a.setEdge(e.edgeObj,s);e.dummy;)i=a.successors(n)[0],a.removeNode(n),s.points.push({x:e.x,y:e.y}),e.dummy==="edge-label"&&(s.x=e.x,s.y=e.y,s.width=e.width,s.height=e.height),n=i,e=a.node(n)})}return ke}var Oe,kr;function K(){if(kr)return Oe;kr=1;const{applyWithChunking:m}=A();Oe={longestPath:c,slack:u};function c(d){var a={};function n(e){var s=d.node(e);if(Object.hasOwn(a,e))return s.rank;a[e]=!0;let i=d.outEdges(e).map(r=>r==null?Number.POSITIVE_INFINITY:n(r.w)-d.edge(r).minlen);var o=m(Math.min,i);return o===Number.POSITIVE_INFINITY&&(o=0),s.rank=o}d.sources().forEach(n)}function u(d,a){return d.node(a.w).rank-d.node(a.v).rank-d.edge(a).minlen}return Oe}var Ne,Or;function Zr(){if(Or)return Ne;Or=1;var m=z().Graph,c=K().slack;Ne=u;function u(e){var s=new m({directed:!1}),i=e.nodes()[0],o=e.nodeCount();s.setNode(i,{});for(var r,t;d(s,e)<o;)r=a(s,e),t=s.hasNode(r.v)?c(e,r):-c(e,r),n(s,e,t);return s}function d(e,s){function i(o){s.nodeEdges(o).forEach(r=>{var t=r.v,l=o===t?r.w:t;!e.hasNode(l)&&!c(s,r)&&(e.setNode(l,{}),e.setEdge(o,l,{}),i(l))})}return e.nodes().forEach(i),e.nodeCount()}function a(e,s){return s.edges().reduce((o,r)=>{let t=Number.POSITIVE_INFINITY;return e.hasNode(r.v)!==e.hasNode(r.w)&&(t=c(s,r)),t<o[0]?[t,r]:o},[Number.POSITIVE_INFINITY,null])[1]}function n(e,s,i){e.nodes().forEach(o=>s.node(o).rank+=i)}return Ne}var xe,Nr;function Tt(){if(Nr)return xe;Nr=1;var m=Zr(),c=K().slack,u=K().longestPath,d=z().alg.preorder,a=z().alg.postorder,n=A().simplify;xe=e,e.initLowLimValues=r,e.initCutValues=s,e.calcCutValue=o,e.leaveEdge=l,e.enterEdge=f,e.exchangeEdges=w;function e(b){b=n(b),u(b);var k=m(b);r(k),s(k,b);for(var x,R;x=l(k);)R=f(k,b,x),w(k,b,x,R)}function s(b,k){var x=a(b,b.nodes());x=x.slice(0,x.length-1),x.forEach(R=>i(b,k,R))}function i(b,k,x){var R=b.node(x),I=R.parent;b.edge(x,I).cutvalue=o(b,k,x)}function o(b,k,x){var R=b.node(x),I=R.parent,q=!0,h=k.edge(x,I),g=0;return h||(q=!1,h=k.edge(I,x)),g=h.weight,k.nodeEdges(x).forEach(E=>{var _=E.v===x,j=_?E.w:E.v;if(j!==I){var T=_===q,S=k.edge(E).weight;if(g+=T?S:-S,p(b,x,j)){var D=b.edge(x,j).cutvalue;g+=T?-D:D}}}),g}function r(b,k){arguments.length<2&&(k=b.nodes()[0]),t(b,{},1,k)}function t(b,k,x,R,I){var q=x,h=b.node(R);return k[R]=!0,b.neighbors(R).forEach(g=>{Object.hasOwn(k,g)||(x=t(b,k,x,g,R))}),h.low=q,h.lim=x++,I?h.parent=I:delete h.parent,x}function l(b){return b.edges().find(k=>b.edge(k).cutvalue<0)}function f(b,k,x){var R=x.v,I=x.w;k.hasEdge(R,I)||(R=x.w,I=x.v);var q=b.node(R),h=b.node(I),g=q,E=!1;q.lim>h.lim&&(g=h,E=!0);var _=k.edges().filter(j=>E===O(b,b.node(j.v),g)&&E!==O(b,b.node(j.w),g));return _.reduce((j,T)=>c(k,T)<c(k,j)?T:j)}function w(b,k,x,R){var I=x.v,q=x.w;b.removeEdge(I,q),b.setEdge(R.v,R.w,{}),r(b),s(b,k),C(b,k)}function C(b,k){var x=b.nodes().find(I=>!k.node(I).parent),R=d(b,x);R=R.slice(1),R.forEach(I=>{var q=b.node(I).parent,h=k.edge(I,q),g=!1;h||(h=k.edge(q,I),g=!0),k.node(I).rank=k.node(q).rank+(g?h.minlen:-h.minlen)})}function p(b,k,x){return b.hasEdge(k,x)}function O(b,k,x){return x.low<=k.lim&&k.lim<=x.lim}return xe}var je,xr;function St(){if(xr)return je;xr=1;var m=K(),c=m.longestPath,u=Zr(),d=Tt();je=a;function a(i){switch(i.graph().ranker){case"network-simplex":s(i);break;case"tight-tree":e(i);break;case"longest-path":n(i);break;default:s(i)}}var n=c;function e(i){c(i),u(i)}function s(i){d(i)}return je}var Ce,jr;function Mt(){if(jr)return Ce;jr=1,Ce=m;function m(d){let a=u(d);d.graph().dummyChains.forEach(n=>{let e=d.node(n),s=e.edgeObj,i=c(d,a,s.v,s.w),o=i.path,r=i.lca,t=0,l=o[t],f=!0;for(;n!==s.w;){if(e=d.node(n),f){for(;(l=o[t])!==r&&d.node(l).maxRank<e.rank;)t++;l===r&&(f=!1)}if(!f){for(;t<o.length-1&&d.node(l=o[t+1]).minRank<=e.rank;)t++;l=o[t]}d.setParent(n,l),n=d.successors(n)[0]}})}function c(d,a,n,e){let s=[],i=[],o=Math.min(a[n].low,a[e].low),r=Math.max(a[n].lim,a[e].lim),t,l;t=n;do t=d.parent(t),s.push(t);while(t&&(a[t].low>o||r>a[t].lim));for(l=t,t=e;(t=d.parent(t))!==l;)i.push(t);return{path:s.concat(i.reverse()),lca:l}}function u(d){let a={},n=0;function e(s){let i=n;d.children(s).forEach(e),a[s]={low:i,lim:n++}}return d.children().forEach(e),a}return Ce}var Re,Cr;function Pt(){if(Cr)return Re;Cr=1;let m=A();Re={run:c,cleanup:n};function c(e){let s=m.addDummyNode(e,"root",{},"_root"),i=d(e),o=Object.values(i),r=m.applyWithChunking(Math.max,o)-1,t=2*r+1;e.graph().nestingRoot=s,e.edges().forEach(f=>e.edge(f).minlen*=t);let l=a(e)+1;e.children().forEach(f=>u(e,s,t,l,r,i,f)),e.graph().nodeRankFactor=t}function u(e,s,i,o,r,t,l){let f=e.children(l);if(!f.length){l!==s&&e.setEdge(s,l,{weight:0,minlen:i});return}let w=m.addBorderNode(e,"_bt"),C=m.addBorderNode(e,"_bb"),p=e.node(l);e.setParent(w,l),p.borderTop=w,e.setParent(C,l),p.borderBottom=C,f.forEach(O=>{u(e,s,i,o,r,t,O);let b=e.node(O),k=b.borderTop?b.borderTop:O,x=b.borderBottom?b.borderBottom:O,R=b.borderTop?o:2*o,I=k!==x?1:r-t[l]+1;e.setEdge(w,k,{weight:R,minlen:I,nestingEdge:!0}),e.setEdge(x,C,{weight:R,minlen:I,nestingEdge:!0})}),e.parent(l)||e.setEdge(s,w,{weight:0,minlen:r+t[l]})}function d(e){var s={};function i(o,r){var t=e.children(o);t&&t.length&&t.forEach(l=>i(l,r+1)),s[o]=r}return e.children().forEach(o=>i(o,1)),s}function a(e){return e.edges().reduce((s,i)=>s+e.edge(i).weight,0)}function n(e){var s=e.graph();e.removeNode(s.nestingRoot),delete s.nestingRoot,e.edges().forEach(i=>{var o=e.edge(i);o.nestingEdge&&e.removeEdge(i)})}return Re}var Ie,Rr;function Dt(){if(Rr)return Ie;Rr=1;let m=A();Ie=c;function c(d){function a(n){let e=d.children(n),s=d.node(n);if(e.length&&e.forEach(a),Object.hasOwn(s,"minRank")){s.borderLeft=[],s.borderRight=[];for(let i=s.minRank,o=s.maxRank+1;i<o;++i)u(d,"borderLeft","_bl",n,s,i),u(d,"borderRight","_br",n,s,i)}}d.children().forEach(a)}function u(d,a,n,e,s,i){let o={width:0,height:0,rank:i,borderType:a},r=s[a][i-1],t=m.addDummyNode(d,"border",o,n);s[a][i]=t,d.setParent(t,e),r&&d.setEdge(r,t,{weight:1})}return Ie}var Le,Ir;function Gt(){if(Ir)return Le;Ir=1,Le={adjust:m,undo:c};function m(i){let o=i.graph().rankdir.toLowerCase();(o==="lr"||o==="rl")&&u(i)}function c(i){let o=i.graph().rankdir.toLowerCase();(o==="bt"||o==="rl")&&a(i),(o==="lr"||o==="rl")&&(e(i),u(i))}function u(i){i.nodes().forEach(o=>d(i.node(o))),i.edges().forEach(o=>d(i.edge(o)))}function d(i){let o=i.width;i.width=i.height,i.height=o}function a(i){i.nodes().forEach(o=>n(i.node(o))),i.edges().forEach(o=>{let r=i.edge(o);r.points.forEach(n),Object.hasOwn(r,"y")&&n(r)})}function n(i){i.y=-i.y}function e(i){i.nodes().forEach(o=>s(i.node(o))),i.edges().forEach(o=>{let r=i.edge(o);r.points.forEach(s),Object.hasOwn(r,"x")&&s(r)})}function s(i){let o=i.x;i.x=i.y,i.y=o}return Le}var qe,Lr;function Ft(){if(Lr)return qe;Lr=1;let m=A();qe=c;function c(u){let d={},a=u.nodes().filter(r=>!u.children(r).length),n=a.map(r=>u.node(r).rank),e=m.applyWithChunking(Math.max,n),s=m.range(e+1).map(()=>[]);function i(r){if(d[r])return;d[r]=!0;let t=u.node(r);s[t.rank].push(r),u.successors(r).forEach(i)}return a.sort((r,t)=>u.node(r).rank-u.node(t).rank).forEach(i),s}return qe}var Te,qr;function At(){if(qr)return Te;qr=1;let m=A().zipObject;Te=c;function c(d,a){let n=0;for(let e=1;e<a.length;++e)n+=u(d,a[e-1],a[e]);return n}function u(d,a,n){let e=m(n,n.map((l,f)=>f)),s=a.flatMap(l=>d.outEdges(l).map(f=>({pos:e[f.w],weight:d.edge(f).weight})).sort((f,w)=>f.pos-w.pos)),i=1;for(;i<n.length;)i<<=1;let o=2*i-1;i-=1;let r=new Array(o).fill(0),t=0;return s.forEach(l=>{let f=l.pos+i;r[f]+=l.weight;let w=0;for(;f>0;)f%2&&(w+=r[f+1]),f=f-1>>1,r[f]+=l.weight;t+=l.weight*w}),t}return Te}var Se,Tr;function Vt(){if(Tr)return Se;Tr=1,Se=m;function m(c,u=[]){return u.map(d=>{let a=c.inEdges(d);if(a.length){let n=a.reduce((e,s)=>{let i=c.edge(s),o=c.node(s.v);return{sum:e.sum+i.weight*o.order,weight:e.weight+i.weight}},{sum:0,weight:0});return{v:d,barycenter:n.sum/n.weight,weight:n.weight}}else return{v:d}})}return Se}var Me,Sr;function Bt(){if(Sr)return Me;Sr=1;let m=A();Me=c;function c(a,n){let e={};a.forEach((i,o)=>{let r=e[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:o};i.barycenter!==void 0&&(r.barycenter=i.barycenter,r.weight=i.weight)}),n.edges().forEach(i=>{let o=e[i.v],r=e[i.w];o!==void 0&&r!==void 0&&(r.indegree++,o.out.push(e[i.w]))});let s=Object.values(e).filter(i=>!i.indegree);return u(s)}function u(a){let n=[];function e(i){return o=>{o.merged||(o.barycenter===void 0||i.barycenter===void 0||o.barycenter>=i.barycenter)&&d(i,o)}}function s(i){return o=>{o.in.push(i),--o.indegree===0&&a.push(o)}}for(;a.length;){let i=a.pop();n.push(i),i.in.reverse().forEach(e(i)),i.out.forEach(s(i))}return n.filter(i=>!i.merged).map(i=>m.pick(i,["vs","i","barycenter","weight"]))}function d(a,n){let e=0,s=0;a.weight&&(e+=a.barycenter*a.weight,s+=a.weight),n.weight&&(e+=n.barycenter*n.weight,s+=n.weight),a.vs=n.vs.concat(a.vs),a.barycenter=e/s,a.weight=s,a.i=Math.min(n.i,a.i),n.merged=!0}return Me}var Pe,Mr;function Wt(){if(Mr)return Pe;Mr=1;let m=A();Pe=c;function c(a,n){let e=m.partition(a,w=>Object.hasOwn(w,"barycenter")),s=e.lhs,i=e.rhs.sort((w,C)=>C.i-w.i),o=[],r=0,t=0,l=0;s.sort(d(!!n)),l=u(o,i,l),s.forEach(w=>{l+=w.vs.length,o.push(w.vs),r+=w.barycenter*w.weight,t+=w.weight,l=u(o,i,l)});let f={vs:o.flat(!0)};return t&&(f.barycenter=r/t,f.weight=t),f}function u(a,n,e){let s;for(;n.length&&(s=n[n.length-1]).i<=e;)n.pop(),a.push(s.vs),e++;return e}function d(a){return(n,e)=>n.barycenter<e.barycenter?-1:n.barycenter>e.barycenter?1:a?e.i-n.i:n.i-e.i}return Pe}var De,Pr;function Yt(){if(Pr)return De;Pr=1;let m=Vt(),c=Bt(),u=Wt();De=d;function d(e,s,i,o){let r=e.children(s),t=e.node(s),l=t?t.borderLeft:void 0,f=t?t.borderRight:void 0,w={};l&&(r=r.filter(b=>b!==l&&b!==f));let C=m(e,r);C.forEach(b=>{if(e.children(b.v).length){let k=d(e,b.v,i,o);w[b.v]=k,Object.hasOwn(k,"barycenter")&&n(b,k)}});let p=c(C,i);a(p,w);let O=u(p,o);if(l&&(O.vs=[l,O.vs,f].flat(!0),e.predecessors(l).length)){let b=e.node(e.predecessors(l)[0]),k=e.node(e.predecessors(f)[0]);Object.hasOwn(O,"barycenter")||(O.barycenter=0,O.weight=0),O.barycenter=(O.barycenter*O.weight+b.order+k.order)/(O.weight+2),O.weight+=2}return O}function a(e,s){e.forEach(i=>{i.vs=i.vs.flatMap(o=>s[o]?s[o].vs:o)})}function n(e,s){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+s.barycenter*s.weight)/(e.weight+s.weight),e.weight+=s.weight):(e.barycenter=s.barycenter,e.weight=s.weight)}return De}var Ge,Dr;function zt(){if(Dr)return Ge;Dr=1;let m=z().Graph,c=A();Ge=u;function u(a,n,e){let s=d(a),i=new m({compound:!0}).setGraph({root:s}).setDefaultNodeLabel(o=>a.node(o));return a.nodes().forEach(o=>{let r=a.node(o),t=a.parent(o);(r.rank===n||r.minRank<=n&&n<=r.maxRank)&&(i.setNode(o),i.setParent(o,t||s),a[e](o).forEach(l=>{let f=l.v===o?l.w:l.v,w=i.edge(f,o),C=w!==void 0?w.weight:0;i.setEdge(f,o,{weight:a.edge(l).weight+C})}),Object.hasOwn(r,"minRank")&&i.setNode(o,{borderLeft:r.borderLeft[n],borderRight:r.borderRight[n]}))}),i}function d(a){for(var n;a.hasNode(n=c.uniqueId("_root")););return n}return Ge}var Fe,Gr;function Ht(){if(Gr)return Fe;Gr=1,Fe=m;function m(c,u,d){let a={},n;d.forEach(e=>{let s=c.parent(e),i,o;for(;s;){if(i=c.parent(s),i?(o=a[i],a[i]=s):(o=n,n=s),o&&o!==s){u.setEdge(o,s);return}s=i}})}return Fe}var Ae,Fr;function $t(){if(Fr)return Ae;Fr=1;let m=Ft(),c=At(),u=Yt(),d=zt(),a=Ht(),n=z().Graph,e=A();Ae=s;function s(t,l){if(l&&typeof l.customOrder=="function"){l.customOrder(t,s);return}let f=e.maxRank(t),w=i(t,e.range(1,f+1),"inEdges"),C=i(t,e.range(f-1,-1,-1),"outEdges"),p=m(t);if(r(t,p),l&&l.disableOptimalOrderHeuristic)return;let O=Number.POSITIVE_INFINITY,b;for(let k=0,x=0;x<4;++k,++x){o(k%2?w:C,k%4>=2),p=e.buildLayerMatrix(t);let R=c(t,p);R<O&&(x=0,b=Object.assign({},p),O=R)}r(t,b)}function i(t,l,f){return l.map(function(w){return d(t,w,f)})}function o(t,l){let f=new n;t.forEach(function(w){let C=w.graph().root,p=u(w,C,f,l);p.vs.forEach((O,b)=>w.node(O).order=b),a(w,f,p.vs)})}function r(t,l){Object.values(l).forEach(f=>f.forEach((w,C)=>t.node(w).order=C))}return Ae}var Ve,Ar;function Ut(){if(Ar)return Ve;Ar=1;let m=z().Graph,c=A();Ve={positionX:f,findType1Conflicts:u,findType2Conflicts:d,addConflict:n,hasConflict:e,verticalAlignment:s,horizontalCompaction:i,alignCoordinates:t,findSmallestWidthAlignment:r,balance:l};function u(p,O){let b={};function k(x,R){let I=0,q=0,h=x.length,g=R[R.length-1];return R.forEach((E,_)=>{let j=a(p,E),T=j?p.node(j).order:h;(j||E===g)&&(R.slice(q,_+1).forEach(S=>{p.predecessors(S).forEach(D=>{let H=p.node(D),$=H.order;($<I||T<$)&&!(H.dummy&&p.node(S).dummy)&&n(b,D,S)})}),q=_+1,I=T)}),R}return O.length&&O.reduce(k),b}function d(p,O){let b={};function k(R,I,q,h,g){let E;c.range(I,q).forEach(_=>{E=R[_],p.node(E).dummy&&p.predecessors(E).forEach(j=>{let T=p.node(j);T.dummy&&(T.order<h||T.order>g)&&n(b,j,E)})})}function x(R,I){let q=-1,h,g=0;return I.forEach((E,_)=>{if(p.node(E).dummy==="border"){let j=p.predecessors(E);j.length&&(h=p.node(j[0]).order,k(I,g,_,q,h),g=_,q=h)}k(I,g,I.length,h,R.length)}),I}return O.length&&O.reduce(x),b}function a(p,O){if(p.node(O).dummy)return p.predecessors(O).find(b=>p.node(b).dummy)}function n(p,O,b){if(O>b){let x=O;O=b,b=x}let k=p[O];k||(p[O]=k={}),k[b]=!0}function e(p,O,b){if(O>b){let k=O;O=b,b=k}return!!p[O]&&Object.hasOwn(p[O],b)}function s(p,O,b,k){let x={},R={},I={};return O.forEach(q=>{q.forEach((h,g)=>{x[h]=h,R[h]=h,I[h]=g})}),O.forEach(q=>{let h=-1;q.forEach(g=>{let E=k(g);if(E.length){E=E.sort((j,T)=>I[j]-I[T]);let _=(E.length-1)/2;for(let j=Math.floor(_),T=Math.ceil(_);j<=T;++j){let S=E[j];R[g]===g&&h<I[S]&&!e(b,g,S)&&(R[S]=g,R[g]=x[g]=x[S],h=I[S])}}})}),{root:x,align:R}}function i(p,O,b,k,x){let R={},I=o(p,O,b,x),q=x?"borderLeft":"borderRight";function h(_,j){let T=I.nodes(),S=T.pop(),D={};for(;S;)D[S]?_(S):(D[S]=!0,T.push(S),T=T.concat(j(S))),S=T.pop()}function g(_){R[_]=I.inEdges(_).reduce((j,T)=>Math.max(j,R[T.v]+I.edge(T)),0)}function E(_){let j=I.outEdges(_).reduce((S,D)=>Math.min(S,R[D.w]-I.edge(D)),Number.POSITIVE_INFINITY),T=p.node(_);j!==Number.POSITIVE_INFINITY&&T.borderType!==q&&(R[_]=Math.max(R[_],j))}return h(g,I.predecessors.bind(I)),h(E,I.successors.bind(I)),Object.keys(k).forEach(_=>R[_]=R[b[_]]),R}function o(p,O,b,k){let x=new m,R=p.graph(),I=w(R.nodesep,R.edgesep,k);return O.forEach(q=>{let h;q.forEach(g=>{let E=b[g];if(x.setNode(E),h){var _=b[h],j=x.edge(_,E);x.setEdge(_,E,Math.max(I(p,g,h),j||0))}h=g})}),x}function r(p,O){return Object.values(O).reduce((b,k)=>{let x=Number.NEGATIVE_INFINITY,R=Number.POSITIVE_INFINITY;Object.entries(k).forEach(([q,h])=>{let g=C(p,q)/2;x=Math.max(h+g,x),R=Math.min(h-g,R)});const I=x-R;return I<b[0]&&(b=[I,k]),b},[Number.POSITIVE_INFINITY,null])[1]}function t(p,O){let b=Object.values(O),k=c.applyWithChunking(Math.min,b),x=c.applyWithChunking(Math.max,b);["u","d"].forEach(R=>{["l","r"].forEach(I=>{let q=R+I,h=p[q];if(h===O)return;let g=Object.values(h),E=k-c.applyWithChunking(Math.min,g);I!=="l"&&(E=x-c.applyWithChunking(Math.max,g)),E&&(p[q]=c.mapValues(h,_=>_+E))})})}function l(p,O){return c.mapValues(p.ul,(b,k)=>{if(O)return p[O.toLowerCase()][k];{let x=Object.values(p).map(R=>R[k]).sort((R,I)=>R-I);return(x[1]+x[2])/2}})}function f(p){let O=c.buildLayerMatrix(p),b=Object.assign(u(p,O),d(p,O)),k={},x;["u","d"].forEach(I=>{x=I==="u"?O:Object.values(O).reverse(),["l","r"].forEach(q=>{q==="r"&&(x=x.map(_=>Object.values(_).reverse()));let h=(I==="u"?p.predecessors:p.successors).bind(p),g=s(p,x,b,h),E=i(p,x,g.root,g.align,q==="r");q==="r"&&(E=c.mapValues(E,_=>-_)),k[I+q]=E})});let R=r(p,k);return t(k,R),l(k,p.graph().align)}function w(p,O,b){return(k,x,R)=>{let I=k.node(x),q=k.node(R),h=0,g;if(h+=I.width/2,Object.hasOwn(I,"labelpos"))switch(I.labelpos.toLowerCase()){case"l":g=-I.width/2;break;case"r":g=I.width/2;break}if(g&&(h+=b?g:-g),g=0,h+=(I.dummy?O:p)/2,h+=(q.dummy?O:p)/2,h+=q.width/2,Object.hasOwn(q,"labelpos"))switch(q.labelpos.toLowerCase()){case"l":g=q.width/2;break;case"r":g=-q.width/2;break}return g&&(h+=b?g:-g),g=0,h}}function C(p,O){return p.node(O).width}return Ve}var Be,Vr;function Xt(){if(Vr)return Be;Vr=1;let m=A(),c=Ut().positionX;Be=u;function u(a){a=m.asNonCompoundGraph(a),d(a),Object.entries(c(a)).forEach(([n,e])=>a.node(n).x=e)}function d(a){let n=m.buildLayerMatrix(a),e=a.graph().ranksep,s=0;n.forEach(i=>{const o=i.reduce((r,t)=>{const l=a.node(t).height;return r>l?r:l},0);i.forEach(r=>a.node(r).y=s+o/2),s+=o+e})}return Be}var We,Br;function Qt(){if(Br)return We;Br=1;let m=Lt(),c=qt(),u=St(),d=A().normalizeRanks,a=Mt(),n=A().removeEmptyRanks,e=Pt(),s=Dt(),i=Gt(),o=$t(),r=Xt(),t=A(),l=z().Graph;We=f;function f(v,y){let N=y&&y.debugTiming?t.time:t.notime;N("layout",()=>{let L=N(" buildLayoutGraph",()=>h(v));N(" runLayout",()=>w(L,N,y)),N(" updateInputGraph",()=>C(v,L))})}function w(v,y,N){y(" makeSpaceForEdgeLabels",()=>g(v)),y(" removeSelfEdges",()=>rt(v)),y(" acyclic",()=>m.run(v)),y(" nestingGraph.run",()=>e.run(v)),y(" rank",()=>u(t.asNonCompoundGraph(v))),y(" injectEdgeLabelProxies",()=>E(v)),y(" removeEmptyRanks",()=>n(v)),y(" nestingGraph.cleanup",()=>e.cleanup(v)),y(" normalizeRanks",()=>d(v)),y(" assignRankMinMax",()=>_(v)),y(" removeEdgeLabelProxies",()=>j(v)),y(" normalize.run",()=>c.run(v)),y(" parentDummyChains",()=>a(v)),y(" addBorderSegments",()=>s(v)),y(" order",()=>o(v,N)),y(" insertSelfEdges",()=>tt(v)),y(" adjustCoordinateSystem",()=>i.adjust(v)),y(" position",()=>r(v)),y(" positionSelfEdges",()=>nt(v)),y(" removeBorderNodes",()=>$(v)),y(" normalize.undo",()=>c.undo(v)),y(" fixupEdgeLabelCoords",()=>D(v)),y(" undoCoordinateSystem",()=>i.undo(v)),y(" translateGraph",()=>T(v)),y(" assignNodeIntersects",()=>S(v)),y(" reversePoints",()=>H(v)),y(" acyclic.undo",()=>m.undo(v))}function C(v,y){v.nodes().forEach(N=>{let L=v.node(N),M=y.node(N);L&&(L.x=M.x,L.y=M.y,L.rank=M.rank,y.children(N).length&&(L.width=M.width,L.height=M.height))}),v.edges().forEach(N=>{let L=v.edge(N),M=y.edge(N);L.points=M.points,Object.hasOwn(M,"x")&&(L.x=M.x,L.y=M.y)}),v.graph().width=y.graph().width,v.graph().height=y.graph().height}let p=["nodesep","edgesep","ranksep","marginx","marginy"],O={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},b=["acyclicer","ranker","rankdir","align"],k=["width","height"],x={width:0,height:0},R=["minlen","weight","width","height","labeloffset"],I={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},q=["labelpos"];function h(v){let y=new l({multigraph:!0,compound:!0}),N=Z(v.graph());return y.setGraph(Object.assign({},O,J(N,p),t.pick(N,b))),v.nodes().forEach(L=>{let M=Z(v.node(L));const P=J(M,k);Object.keys(x).forEach(G=>{P[G]===void 0&&(P[G]=x[G])}),y.setNode(L,P),y.setParent(L,v.parent(L))}),v.edges().forEach(L=>{let M=Z(v.edge(L));y.setEdge(L,Object.assign({},I,J(M,R),t.pick(M,q)))}),y}function g(v){let y=v.graph();y.ranksep/=2,v.edges().forEach(N=>{let L=v.edge(N);L.minlen*=2,L.labelpos.toLowerCase()!=="c"&&(y.rankdir==="TB"||y.rankdir==="BT"?L.width+=L.labeloffset:L.height+=L.labeloffset)})}function E(v){v.edges().forEach(y=>{let N=v.edge(y);if(N.width&&N.height){let L=v.node(y.v),P={rank:(v.node(y.w).rank-L.rank)/2+L.rank,e:y};t.addDummyNode(v,"edge-proxy",P,"_ep")}})}function _(v){let y=0;v.nodes().forEach(N=>{let L=v.node(N);L.borderTop&&(L.minRank=v.node(L.borderTop).rank,L.maxRank=v.node(L.borderBottom).rank,y=Math.max(y,L.maxRank))}),v.graph().maxRank=y}function j(v){v.nodes().forEach(y=>{let N=v.node(y);N.dummy==="edge-proxy"&&(v.edge(N.e).labelRank=N.rank,v.removeNode(y))})}function T(v){let y=Number.POSITIVE_INFINITY,N=0,L=Number.POSITIVE_INFINITY,M=0,P=v.graph(),G=P.marginx||0,W=P.marginy||0;function Ue(Y){let B=Y.x,U=Y.y,Xe=Y.width,Qe=Y.height;y=Math.min(y,B-Xe/2),N=Math.max(N,B+Xe/2),L=Math.min(L,U-Qe/2),M=Math.max(M,U+Qe/2)}v.nodes().forEach(Y=>Ue(v.node(Y))),v.edges().forEach(Y=>{let B=v.edge(Y);Object.hasOwn(B,"x")&&Ue(B)}),y-=G,L-=W,v.nodes().forEach(Y=>{let B=v.node(Y);B.x-=y,B.y-=L}),v.edges().forEach(Y=>{let B=v.edge(Y);B.points.forEach(U=>{U.x-=y,U.y-=L}),Object.hasOwn(B,"x")&&(B.x-=y),Object.hasOwn(B,"y")&&(B.y-=L)}),P.width=N-y+G,P.height=M-L+W}function S(v){v.edges().forEach(y=>{let N=v.edge(y),L=v.node(y.v),M=v.node(y.w),P,G;N.points?(P=N.points[0],G=N.points[N.points.length-1]):(N.points=[],P=M,G=L),N.points.unshift(t.intersectRect(L,P)),N.points.push(t.intersectRect(M,G))})}function D(v){v.edges().forEach(y=>{let N=v.edge(y);if(Object.hasOwn(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}})}function H(v){v.edges().forEach(y=>{let N=v.edge(y);N.reversed&&N.points.reverse()})}function $(v){v.nodes().forEach(y=>{if(v.children(y).length){let N=v.node(y),L=v.node(N.borderTop),M=v.node(N.borderBottom),P=v.node(N.borderLeft[N.borderLeft.length-1]),G=v.node(N.borderRight[N.borderRight.length-1]);N.width=Math.abs(G.x-P.x),N.height=Math.abs(M.y-L.y),N.x=P.x+N.width/2,N.y=L.y+N.height/2}}),v.nodes().forEach(y=>{v.node(y).dummy==="border"&&v.removeNode(y)})}function rt(v){v.edges().forEach(y=>{if(y.v===y.w){var N=v.node(y.v);N.selfEdges||(N.selfEdges=[]),N.selfEdges.push({e:y,label:v.edge(y)}),v.removeEdge(y)}})}function tt(v){var y=t.buildLayerMatrix(v);y.forEach(N=>{var L=0;N.forEach((M,P)=>{var G=v.node(M);G.order=P+L,(G.selfEdges||[]).forEach(W=>{t.addDummyNode(v,"selfedge",{width:W.label.width,height:W.label.height,rank:G.rank,order:P+ ++L,e:W.e,label:W.label},"_se")}),delete G.selfEdges})})}function nt(v){v.nodes().forEach(y=>{var N=v.node(y);if(N.dummy==="selfedge"){var L=v.node(N.e.v),M=L.x+L.width/2,P=L.y,G=N.x-M,W=L.height/2;v.setEdge(N.e,N.label),v.removeNode(y),N.label.points=[{x:M+2*G/3,y:P-W},{x:M+5*G/6,y:P-W},{x:M+G,y:P},{x:M+5*G/6,y:P+W},{x:M+2*G/3,y:P+W}],N.label.x=N.x,N.label.y=N.y}})}function J(v,y){return t.mapValues(t.pick(v,y),Number)}function Z(v){var y={};return v&&Object.entries(v).forEach(([N,L])=>{typeof N=="string"&&(N=N.toLowerCase()),y[N]=L}),y}return We}var Ye,Wr;function Kt(){if(Wr)return Ye;Wr=1;let m=A(),c=z().Graph;Ye={debugOrdering:u};function u(d){let a=m.buildLayerMatrix(d),n=new c({compound:!0,multigraph:!0}).setGraph({});return d.nodes().forEach(e=>{n.setNode(e,{label:e}),n.setParent(e,"layer"+d.node(e).rank)}),d.edges().forEach(e=>n.setEdge(e.v,e.w,{},e.name)),a.forEach((e,s)=>{let i="layer"+s;n.setNode(i,{rank:"same"}),e.reduce((o,r)=>(n.setEdge(o,r,{style:"invis"}),r))}),n}return Ye}var ze,Yr;function Jt(){return Yr||(Yr=1,ze="1.1.4"),ze}var He,zr;function Zt(){return zr||(zr=1,He={graphlib:z(),layout:Qt(),debug:Kt(),util:{time:A().time,notime:A().notime},version:Jt()}),He}var en=Zt();const Hr=st(en),rn=({nodes:m,edges:c,graph:u})=>{const d=new Hr.graphlib.Graph;return d.setDefaultEdgeLabel(()=>({})),d.setGraph(u||{}),m.forEach(a=>{d.setNode(a.id,{width:a.width,height:a.height})}),c.forEach(a=>{d.setEdge(a.target,a.source)}),Hr.layout(d),{nodes:m.map(a=>{const n=d.node(a.id);return{...a,x:n.x-(a.width??0)/2,y:n.y-(a.height??0)/2}}),edges:c}};function tn(m){const[c,u]=ot.useState(!1),{data:d}=m,a=m.data.fields??{},n=Object.keys(a).length;return V.jsxs(Ke,{selected:m.selected,children:[V.jsx(Ke.Header,{label:d.label}),V.jsx("div",{children:Object.entries(a).map(([e,s],i)=>V.jsx(nn,{field:{name:e,...s},table:d.label,index:i,last:n===i+1},i))})]})}const $r={background:"transparent",border:"none"},nn=({field:m,table:c,index:u,onHover:d,last:a})=>{const n=X.header+X.row*u+X.row/2,e=`${c}:${m.name}`;return V.jsxs("div",{className:dt("flex flex-row w-full justify-between font-mono py-1.5 px-2.5 border-b border-primary/15 border-l border-r cursor-auto",a&&"rounded-bl-lg rounded-br-lg","hover:bg-primary/5"),children:[V.jsx(Je,{title:e,type:"source",id:e,position:Q.Left,style:{top:n,left:0,...$r}}),V.jsxs("div",{className:"flex w-6 pr-1.5 justify-center items-center",children:[m.type==="primary"&&V.jsx(ut,{className:"text-yellow-700"}),m.type==="relation"&&V.jsx(lt,{className:"text-sky-700"})]}),V.jsx("div",{className:"flex flex-grow",children:m.name}),V.jsx("div",{className:"flex opacity-60",children:m.type}),V.jsx(Je,{type:"target",title:e,id:e,position:Q.Right,style:{top:n,right:-5,...$r}})]})},X={header:30,row:32.5},et={Component:tn,getSize:m=>{const c=m.fields??{},u=Object.keys(c).length;return{width:320,height:X.header+X.row*u}}};function an(m){return Object.entries(m??{}).map(([c,u])=>({id:c,data:{label:c,...u},type:"entity",dragHandle:".drag-handle",position:{x:0,y:0},sourcePosition:Q.Right,targetPosition:Q.Left}))}function sn(m){return Object.entries(m??{}).flatMap(([c,u])=>{var a,n;if(u.type==="m:n"){const e=`${u.source}_${u.target}`;return[{id:c,target:u.source,source:e,targetHandle:`${u.source}:id`,sourceHandle:`${e}:${u.source}_id`},{id:`${c}-2`,target:u.target,source:e,targetHandle:`${u.target}:id`,sourceHandle:`${e}:${u.target}_id`}]}let d=u.source+`:${u.target}`;return(a=u.config)!=null&&a.mappedBy&&(d=`${u.source}:${(n=u.config)==null?void 0:n.mappedBy}`),u.type!=="poly"&&(d+="_id"),{id:c,source:u.source,target:u.target,sourceHandle:d,targetHandle:u.target+":id"}})}const on={entity:et.Component};function ln(){const{config:{data:m}}=ht(),{theme:c}=ft(),u=an(m.entities),d=sn(m.relations).map(n=>({...n,style:{stroke:c==="light"?"#ccc":"#666"},type:"smoothstep",markerEnd:{type:ct.Arrow,width:20,height:20,color:c==="light"?"#aaa":"#777"}}));return rn({nodes:u.map(n=>({id:n.id,...et.getSize(n.data)})),edges:d,graph:{rankdir:"LR",marginx:50,marginy:50}}).nodes.forEach(n=>{const e=u.find(s=>s.id===n.id);e&&(e.position={x:n.x,y:n.y})}),V.jsx(pt,{children:V.jsx(mt,{nodes:u,edges:d,nodeTypes:on,minZoom:.1,maxZoom:2,fitViewOptions:{minZoom:.1,maxZoom:.8},children:V.jsx(bt,{zoom:!0,minimap:!0})})})}export{ln as DataSchemaCanvas};