@tecture/core 0.0.1
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/cli.js +329 -0
- package/dist/cli.js.map +1 -0
- package/dist/public/assets/_baseUniq-okA3yjMF.js +2 -0
- package/dist/public/assets/_baseUniq-okA3yjMF.js.map +1 -0
- package/dist/public/assets/arc-DuPQU9II.js +2 -0
- package/dist/public/assets/arc-DuPQU9II.js.map +1 -0
- package/dist/public/assets/architectureDiagram-Q4EWVU46-DaPqXmCT.js +37 -0
- package/dist/public/assets/architectureDiagram-Q4EWVU46-DaPqXmCT.js.map +1 -0
- package/dist/public/assets/blockDiagram-DXYQGD6D-md6nhFCg.js +133 -0
- package/dist/public/assets/blockDiagram-DXYQGD6D-md6nhFCg.js.map +1 -0
- package/dist/public/assets/c4Diagram-AHTNJAMY-BqpvwUhA.js +11 -0
- package/dist/public/assets/c4Diagram-AHTNJAMY-BqpvwUhA.js.map +1 -0
- package/dist/public/assets/channel-D36ns3ja.js +2 -0
- package/dist/public/assets/channel-D36ns3ja.js.map +1 -0
- package/dist/public/assets/chunk-4BX2VUAB-DdNxSoa7.js +2 -0
- package/dist/public/assets/chunk-4BX2VUAB-DdNxSoa7.js.map +1 -0
- package/dist/public/assets/chunk-4TB4RGXK-DJXPYtFh.js +207 -0
- package/dist/public/assets/chunk-4TB4RGXK-DJXPYtFh.js.map +1 -0
- package/dist/public/assets/chunk-55IACEB6-vKKCu02H.js +2 -0
- package/dist/public/assets/chunk-55IACEB6-vKKCu02H.js.map +1 -0
- package/dist/public/assets/chunk-EDXVE4YY-DSO0zPbn.js +2 -0
- package/dist/public/assets/chunk-EDXVE4YY-DSO0zPbn.js.map +1 -0
- package/dist/public/assets/chunk-FMBD7UC4-3jd6riTs.js +16 -0
- package/dist/public/assets/chunk-FMBD7UC4-3jd6riTs.js.map +1 -0
- package/dist/public/assets/chunk-OYMX7WX6-D_NOPBJM.js +232 -0
- package/dist/public/assets/chunk-OYMX7WX6-D_NOPBJM.js.map +1 -0
- package/dist/public/assets/chunk-QZHKN3VN-B1tO29hV.js +2 -0
- package/dist/public/assets/chunk-QZHKN3VN-B1tO29hV.js.map +1 -0
- package/dist/public/assets/chunk-YZCP3GAM-BG_8HFWq.js +2 -0
- package/dist/public/assets/chunk-YZCP3GAM-BG_8HFWq.js.map +1 -0
- package/dist/public/assets/classDiagram-6PBFFD2Q-D7ww4X1Q.js +2 -0
- package/dist/public/assets/classDiagram-6PBFFD2Q-D7ww4X1Q.js.map +1 -0
- package/dist/public/assets/classDiagram-v2-HSJHXN6E-D7ww4X1Q.js +2 -0
- package/dist/public/assets/classDiagram-v2-HSJHXN6E-D7ww4X1Q.js.map +1 -0
- package/dist/public/assets/clone-D2M0kYAb.js +2 -0
- package/dist/public/assets/clone-D2M0kYAb.js.map +1 -0
- package/dist/public/assets/cose-bilkent-S5V4N54A-Bh32q_Jn.js +2 -0
- package/dist/public/assets/cose-bilkent-S5V4N54A-Bh32q_Jn.js.map +1 -0
- package/dist/public/assets/cytoscape.esm-BiciSPf8.js +332 -0
- package/dist/public/assets/cytoscape.esm-BiciSPf8.js.map +1 -0
- package/dist/public/assets/dagre-KV5264BT-BQsA27kt.js +5 -0
- package/dist/public/assets/dagre-KV5264BT-BQsA27kt.js.map +1 -0
- package/dist/public/assets/defaultLocale-DX6XiGOO.js +2 -0
- package/dist/public/assets/defaultLocale-DX6XiGOO.js.map +1 -0
- package/dist/public/assets/diagram-5BDNPKRD-CXlbxFux.js +11 -0
- package/dist/public/assets/diagram-5BDNPKRD-CXlbxFux.js.map +1 -0
- package/dist/public/assets/diagram-G4DWMVQ6-v97zdUjT.js +25 -0
- package/dist/public/assets/diagram-G4DWMVQ6-v97zdUjT.js.map +1 -0
- package/dist/public/assets/diagram-MMDJMWI5-BpSFjs5q.js +44 -0
- package/dist/public/assets/diagram-MMDJMWI5-BpSFjs5q.js.map +1 -0
- package/dist/public/assets/diagram-TYMM5635-BJ1CmEhn.js +25 -0
- package/dist/public/assets/diagram-TYMM5635-BJ1CmEhn.js.map +1 -0
- package/dist/public/assets/erDiagram-SMLLAGMA-jo1OteBB.js +86 -0
- package/dist/public/assets/erDiagram-SMLLAGMA-jo1OteBB.js.map +1 -0
- package/dist/public/assets/flowDiagram-DWJPFMVM-CpWw31-x.js +163 -0
- package/dist/public/assets/flowDiagram-DWJPFMVM-CpWw31-x.js.map +1 -0
- package/dist/public/assets/ganttDiagram-T4ZO3ILL-BAQG-3w7.js +293 -0
- package/dist/public/assets/ganttDiagram-T4ZO3ILL-BAQG-3w7.js.map +1 -0
- package/dist/public/assets/gitGraphDiagram-UUTBAWPF-Cjvo4QRA.js +107 -0
- package/dist/public/assets/gitGraphDiagram-UUTBAWPF-Cjvo4QRA.js.map +1 -0
- package/dist/public/assets/graph-BdcxLlxf.js +2 -0
- package/dist/public/assets/graph-BdcxLlxf.js.map +1 -0
- package/dist/public/assets/index-C0IOfytS.css +1 -0
- package/dist/public/assets/index-Dmx3s87Z.js +131 -0
- package/dist/public/assets/index-Dmx3s87Z.js.map +1 -0
- package/dist/public/assets/infoDiagram-42DDH7IO-DA1DcHeu.js +3 -0
- package/dist/public/assets/infoDiagram-42DDH7IO-DA1DcHeu.js.map +1 -0
- package/dist/public/assets/init-Gi6I4Gst.js +2 -0
- package/dist/public/assets/init-Gi6I4Gst.js.map +1 -0
- package/dist/public/assets/ishikawaDiagram-UXIWVN3A-D1YXovdG.js +71 -0
- package/dist/public/assets/ishikawaDiagram-UXIWVN3A-D1YXovdG.js.map +1 -0
- package/dist/public/assets/journeyDiagram-VCZTEJTY-D7RwfkbB.js +140 -0
- package/dist/public/assets/journeyDiagram-VCZTEJTY-D7RwfkbB.js.map +1 -0
- package/dist/public/assets/kanban-definition-6JOO6SKY-oWRrVjFf.js +90 -0
- package/dist/public/assets/kanban-definition-6JOO6SKY-oWRrVjFf.js.map +1 -0
- package/dist/public/assets/katex-DkKDou_j.js +258 -0
- package/dist/public/assets/katex-DkKDou_j.js.map +1 -0
- package/dist/public/assets/layout-VSNdPB38.js +2 -0
- package/dist/public/assets/layout-VSNdPB38.js.map +1 -0
- package/dist/public/assets/linear-WEgy7Pbe.js +2 -0
- package/dist/public/assets/linear-WEgy7Pbe.js.map +1 -0
- package/dist/public/assets/mermaid.core-CFxQTXeR.js +310 -0
- package/dist/public/assets/mermaid.core-CFxQTXeR.js.map +1 -0
- package/dist/public/assets/min-Dl-Y_8tu.js +2 -0
- package/dist/public/assets/min-Dl-Y_8tu.js.map +1 -0
- package/dist/public/assets/mindmap-definition-QFDTVHPH-kZ-3Ardl.js +97 -0
- package/dist/public/assets/mindmap-definition-QFDTVHPH-kZ-3Ardl.js.map +1 -0
- package/dist/public/assets/ordinal-Cboi1Yqb.js +2 -0
- package/dist/public/assets/ordinal-Cboi1Yqb.js.map +1 -0
- package/dist/public/assets/pieDiagram-DEJITSTG-7o5Wm586.js +31 -0
- package/dist/public/assets/pieDiagram-DEJITSTG-7o5Wm586.js.map +1 -0
- package/dist/public/assets/quadrantDiagram-34T5L4WZ-Bo9bPFVq.js +8 -0
- package/dist/public/assets/quadrantDiagram-34T5L4WZ-Bo9bPFVq.js.map +1 -0
- package/dist/public/assets/requirementDiagram-MS252O5E-BrZ5IGrG.js +85 -0
- package/dist/public/assets/requirementDiagram-MS252O5E-BrZ5IGrG.js.map +1 -0
- package/dist/public/assets/sankeyDiagram-XADWPNL6-wkL-5GAq.js +11 -0
- package/dist/public/assets/sankeyDiagram-XADWPNL6-wkL-5GAq.js.map +1 -0
- package/dist/public/assets/sequenceDiagram-FGHM5R23-CYkyZnbF.js +158 -0
- package/dist/public/assets/sequenceDiagram-FGHM5R23-CYkyZnbF.js.map +1 -0
- package/dist/public/assets/stateDiagram-FHFEXIEX-DPHqUNS7.js +2 -0
- package/dist/public/assets/stateDiagram-FHFEXIEX-DPHqUNS7.js.map +1 -0
- package/dist/public/assets/stateDiagram-v2-QKLJ7IA2-BnjLJswt.js +2 -0
- package/dist/public/assets/stateDiagram-v2-QKLJ7IA2-BnjLJswt.js.map +1 -0
- package/dist/public/assets/timeline-definition-GMOUNBTQ-BwBJGy1k.js +121 -0
- package/dist/public/assets/timeline-definition-GMOUNBTQ-BwBJGy1k.js.map +1 -0
- package/dist/public/assets/vennDiagram-DHZGUBPP-BbljBoFJ.js +35 -0
- package/dist/public/assets/vennDiagram-DHZGUBPP-BbljBoFJ.js.map +1 -0
- package/dist/public/assets/wardley-RL74JXVD-CJqH0Jne.js +163 -0
- package/dist/public/assets/wardley-RL74JXVD-CJqH0Jne.js.map +1 -0
- package/dist/public/assets/wardleyDiagram-NUSXRM2D-2g2IHOZ1.js +21 -0
- package/dist/public/assets/wardleyDiagram-NUSXRM2D-2g2IHOZ1.js.map +1 -0
- package/dist/public/assets/xychartDiagram-5P7HB3ND-BBfP02_-.js +8 -0
- package/dist/public/assets/xychartDiagram-5P7HB3ND-BBfP02_-.js.map +1 -0
- package/dist/public/index.html +13 -0
- package/package.json +31 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{_ as X,as as F,at as Y,au as _,av as H,l as i,c as V,aw as z,ax as U,af as $,al as q,ag as P,ae as K,ay as Q,az as W,aA as Z}from"./mermaid.core-CFxQTXeR.js";import{i as x,G as A}from"./graph-BdcxLlxf.js";import{l as I}from"./layout-VSNdPB38.js";import{c as L}from"./clone-D2M0kYAb.js";import{m as B}from"./min-Dl-Y_8tu.js";import"./index-Dmx3s87Z.js";import"./_baseUniq-okA3yjMF.js";function E(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:ee(e),edges:ne(e)};return x(e.graph())||(t.value=L(e.graph())),t}function ee(e){return B(e.nodes(),function(t){var n=e.node(t),o=e.parent(t),c={v:t};return x(n)||(c.value=n),x(o)||(c.parent=o),c})}function ne(e){return B(e.edges(),function(t){var n=e.edge(t),o={v:t.v,w:t.w};return x(t.name)||(o.name=t.name),x(n)||(o.value=n),o})}var f=new Map,b=new Map,J=new Map,te=X(()=>{b.clear(),J.clear(),f.clear()},"clear"),O=X((e,t)=>{const n=b.get(t)||[];return i.trace("In isDescendant",t," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),se=X((e,t)=>{const n=b.get(t)||[];return i.info("Descendants of ",t," is ",n),i.info("Edge is ",e),e.v===t||e.w===t?!1:n?n.includes(e.v)||O(e.v,t)||O(e.w,t)||n.includes(e.w):(i.debug("Tilt, ",t,",not in descendants"),!1)},"edgeInCluster"),G=X((e,t,n,o)=>{i.warn("Copying children of ",e,"root",o,"data",t.node(e),o);const c=t.children(e)||[];e!==o&&c.push(e),i.warn("Copying (nodes) clusterId",e,"nodes",c),c.forEach(a=>{if(t.children(a).length>0)G(a,t,n,o);else{const r=t.node(a);i.info("cp ",a," to ",o," with parent ",e),n.setNode(a,r),o!==t.parent(a)&&(i.warn("Setting parent",a,t.parent(a)),n.setParent(a,t.parent(a))),e!==o&&a!==e?(i.debug("Setting parent",a,e),n.setParent(a,e)):(i.info("In copy ",e,"root",o,"data",t.node(e),o),i.debug("Not Setting parent for node=",a,"cluster!==rootId",e!==o,"node!==clusterId",a!==e));const u=t.edges(a);i.debug("Copying Edges",u),u.forEach(l=>{i.info("Edge",l);const h=t.edge(l.v,l.w,l.name);i.info("Edge data",h,o);try{se(l,o)?(i.info("Copying as ",l.v,l.w,h,l.name),n.setEdge(l.v,l.w,h,l.name),i.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):i.info("Skipping copy of edge ",l.v,"-->",l.w," rootId: ",o," clusterId:",e)}catch(C){i.error(C)}})}i.debug("Removing node",a),t.removeNode(a)})},"copy"),R=X((e,t)=>{const n=t.children(e);let o=[...n];for(const c of n)J.set(c,e),o=[...o,...R(c,t)];return o},"extractDescendants"),ie=X((e,t,n)=>{const o=e.edges().filter(l=>l.v===t||l.w===t),c=e.edges().filter(l=>l.v===n||l.w===n),a=o.map(l=>({v:l.v===t?n:l.v,w:l.w===t?t:l.w})),r=c.map(l=>({v:l.v,w:l.w}));return a.filter(l=>r.some(h=>l.v===h.v&&l.w===h.w))},"findCommonEdges"),D=X((e,t,n)=>{const o=t.children(e);if(i.trace("Searching children of id ",e,o),o.length<1)return e;let c;for(const a of o){const r=D(a,t,n),u=ie(t,n,r);if(r)if(u.length>0)c=r;else return r}return c},"findNonClusterChild"),k=X(e=>!f.has(e)||!f.get(e).externalConnections?e:f.has(e)?f.get(e).id:e,"getAnchorId"),re=X((e,t)=>{if(!e||t>10){i.debug("Opting out, no graph ");return}else i.debug("Opting in, graph ");e.nodes().forEach(function(n){e.children(n).length>0&&(i.warn("Cluster identified",n," Replacement id in edges: ",D(n,e,n)),b.set(n,R(n,e)),f.set(n,{id:D(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){const o=e.children(n),c=e.edges();o.length>0?(i.debug("Cluster identified",n,b),c.forEach(a=>{const r=O(a.v,n),u=O(a.w,n);r^u&&(i.warn("Edge: ",a," leaves cluster ",n),i.warn("Descendants of XXX ",n,": ",b.get(n)),f.get(n).externalConnections=!0)})):i.debug("Not a cluster ",n,b)});for(let n of f.keys()){const o=f.get(n).id,c=e.parent(o);c!==n&&f.has(c)&&!f.get(c).externalConnections&&(f.get(n).id=c)}e.edges().forEach(function(n){const o=e.edge(n);i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),i.warn("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(e.edge(n)));let c=n.v,a=n.w;if(i.warn("Fix XXX",f,"ids:",n.v,n.w,"Translating: ",f.get(n.v)," --- ",f.get(n.w)),f.get(n.v)||f.get(n.w)){if(i.warn("Fixing and trying - removing XXX",n.v,n.w,n.name),c=k(n.v),a=k(n.w),e.removeEdge(n.v,n.w,n.name),c!==n.v){const r=e.parent(c);f.get(r).externalConnections=!0,o.fromCluster=n.v}if(a!==n.w){const r=e.parent(a);f.get(r).externalConnections=!0,o.toCluster=n.w}i.warn("Fix Replacing with XXX",c,a,n.name),e.setEdge(c,a,o,n.name)}}),i.warn("Adjusted Graph",E(e)),T(e,0),i.trace(f)},"adjustClustersAndEdges"),T=X((e,t)=>{var c,a;if(i.warn("extractor - ",t,E(e),e.children("D")),t>10){i.error("Bailing out");return}let n=e.nodes(),o=!1;for(const r of n){const u=e.children(r);o=o||u.length>0}if(!o){i.debug("Done, no node has children",e.nodes());return}i.debug("Nodes = ",n,t);for(const r of n)if(i.debug("Extracting node",r,f,f.has(r)&&!f.get(r).externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",t),!f.has(r))i.debug("Not a cluster",r,t);else if(!f.get(r).externalConnections&&e.children(r)&&e.children(r).length>0){i.warn("Cluster without external connections, without a parent and with children",r,t);let l=e.graph().rankdir==="TB"?"LR":"TB";(a=(c=f.get(r))==null?void 0:c.clusterData)!=null&&a.dir&&(l=f.get(r).clusterData.dir,i.warn("Fixing dir",f.get(r).clusterData.dir,l));const h=new A({multigraph:!0,compound:!0}).setGraph({rankdir:l,nodesep:50,ranksep:50,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});i.warn("Old graph before copy",E(e)),G(r,e,h,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:f.get(r).clusterData,label:f.get(r).label,graph:h}),i.warn("New graph after copy node: (",r,")",E(h)),i.debug("Old graph after copy",E(e))}else i.warn("Cluster ** ",r," **not meeting the criteria !externalConnections:",!f.get(r).externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),t),i.debug(f);n=e.nodes(),i.warn("New list of nodes",n);for(const r of n){const u=e.node(r);i.warn(" Now next level",r,u),u!=null&&u.clusterNode&&T(u.graph,t+1)}},"extractor"),M=X((e,t)=>{if(t.length===0)return[];let n=Object.assign([],t);return t.forEach(o=>{const c=e.children(o),a=M(e,c);n=[...n,...a]}),n},"sorter"),oe=X(e=>M(e,e.children()),"sortNodesByHierarchy"),j=X(async(e,t,n,o,c,a)=>{i.warn("Graph in recursive render:XAX",E(t),c);const r=t.graph().rankdir;i.trace("Dir in recursive render - dir:",r);const u=e.insert("g").attr("class","root");t.nodes()?i.info("Recursive render XXX",t.nodes()):i.info("No nodes found for",t),t.edges().length>0&&i.info("Recursive edges",t.edge(t.edges()[0]));const l=u.insert("g").attr("class","clusters"),h=u.insert("g").attr("class","edgePaths"),C=u.insert("g").attr("class","edgeLabels"),g=u.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(d){const s=t.node(d);if(c!==void 0){const w=JSON.parse(JSON.stringify(c.clusterData));i.trace(`Setting data for parent cluster XXX
|
|
2
|
+
Node.id = `,d,`
|
|
3
|
+
data=`,w.height,`
|
|
4
|
+
Parent cluster`,c.height),t.setNode(c.id,w),t.parent(d)||(i.trace("Setting parent",d,c.id),t.setParent(d,c.id,w))}if(i.info("(Insert) Node XXX"+d+": "+JSON.stringify(t.node(d))),s!=null&&s.clusterNode){i.info("Cluster identified XBX",d,s.width,t.node(d));const{ranksep:w,nodesep:m}=t.graph();s.graph.setGraph({...s.graph.graph(),ranksep:w+25,nodesep:m});const N=await j(g,s.graph,n,o,t.node(d),a),S=N.elem;z(s,S),s.diff=N.diff||0,i.info("New compound node after recursive render XAX",d,"width",s.width,"height",s.height),U(S,s)}else t.children(d).length>0?(i.trace("Cluster - the non recursive path XBX",d,s.id,s,s.width,"Graph:",t),i.trace(D(s.id,t)),f.set(s.id,{id:D(s.id,t),node:s})):(i.trace("Node - the non recursive path XAX",d,g,t.node(d),r),await $(g,t.node(d),{config:a,dir:r}))})),await X(async()=>{const d=t.edges().map(async function(s){const w=t.edge(s.v,s.w,s.name);i.info("Edge "+s.v+" -> "+s.w+": "+JSON.stringify(s)),i.info("Edge "+s.v+" -> "+s.w+": ",s," ",JSON.stringify(t.edge(s))),i.info("Fix",f,"ids:",s.v,s.w,"Translating: ",f.get(s.v),f.get(s.w)),await Z(C,w)});await Promise.all(d)},"processEdges")(),i.info("Graph before layout:",JSON.stringify(E(t))),i.info("############################################# XXX"),i.info("### Layout ### XXX"),i.info("############################################# XXX"),I(t),i.info("Graph after layout:",JSON.stringify(E(t)));let p=0,{subGraphTitleTotalMargin:y}=q(a);return await Promise.all(oe(t).map(async function(d){var w;const s=t.node(d);if(i.info("Position XBX => "+d+": ("+s.x,","+s.y,") width: ",s.width," height: ",s.height),s!=null&&s.clusterNode)s.y+=y,i.info("A tainted cluster node XBX1",d,s.id,s.width,s.height,s.x,s.y,t.parent(d)),f.get(s.id).node=s,P(s);else if(t.children(d).length>0){i.info("A pure cluster node XBX1",d,s.id,s.x,s.y,s.width,s.height,t.parent(d)),s.height+=y,t.node(s.parentId);const m=(s==null?void 0:s.padding)/2||0,N=((w=s==null?void 0:s.labelBBox)==null?void 0:w.height)||0,S=N-m||0;i.debug("OffsetY",S,"labelHeight",N,"halfPadding",m),await K(l,s),f.get(s.id).node=s}else{const m=t.node(s.parentId);s.y+=y/2,i.info("A regular node XBX1 - using the padding",s.id,"parent",s.parentId,s.width,s.height,s.x,s.y,"offsetY",s.offsetY,"parent",m,m==null?void 0:m.offsetY,s),P(s)}})),t.edges().forEach(function(d){const s=t.edge(d);i.info("Edge "+d.v+" -> "+d.w+": "+JSON.stringify(s),s),s.points.forEach(S=>S.y+=y/2);const w=t.node(d.v);var m=t.node(d.w);const N=Q(h,s,f,n,w,m,o);W(s,N)}),t.nodes().forEach(function(d){const s=t.node(d);i.info(d,s.type,s.diff),s.isGroup&&(p=s.diff)}),i.warn("Returning from recursive render XAX",u,p),{elem:u,diff:p}},"recursiveRender"),we=X(async(e,t)=>{var a,r,u,l,h,C;const n=new A({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:((a=e.config)==null?void 0:a.nodeSpacing)||((u=(r=e.config)==null?void 0:r.flowchart)==null?void 0:u.nodeSpacing)||e.nodeSpacing,ranksep:((l=e.config)==null?void 0:l.rankSpacing)||((C=(h=e.config)==null?void 0:h.flowchart)==null?void 0:C.rankSpacing)||e.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),o=t.select("g");F(o,e.markers,e.type,e.diagramId),Y(),_(),H(),te(),e.nodes.forEach(g=>{n.setNode(g.id,{...g}),g.parentId&&n.setParent(g.id,g.parentId)}),i.debug("Edges:",e.edges),e.edges.forEach(g=>{if(g.start===g.end){const v=g.start,p=v+"---"+v+"---1",y=v+"---"+v+"---2",d=n.node(v);n.setNode(p,{domId:p,id:p,parentId:d.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),n.setParent(p,d.parentId),n.setNode(y,{domId:y,id:y,parentId:d.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),n.setParent(y,d.parentId);const s=structuredClone(g),w=structuredClone(g),m=structuredClone(g);s.label="",s.arrowTypeEnd="none",s.id=v+"-cyclic-special-1",w.arrowTypeStart="none",w.arrowTypeEnd="none",w.id=v+"-cyclic-special-mid",m.label="",d.isGroup&&(s.fromCluster=v,m.toCluster=v),m.id=v+"-cyclic-special-2",m.arrowTypeStart="none",n.setEdge(v,p,s,v+"-cyclic-special-0"),n.setEdge(p,y,w,v+"-cyclic-special-1"),n.setEdge(y,v,m,v+"-cyc<lic-special-2")}else n.setEdge(g.start,g.end,{...g},g.id)}),i.warn("Graph at first:",JSON.stringify(E(n))),re(n),i.warn("Graph after XAX:",JSON.stringify(E(n)));const c=V();await j(o,n,e.type,e.diagramId,void 0,c)},"render");export{we as render};
|
|
5
|
+
//# sourceMappingURL=dagre-KV5264BT-BQsA27kt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dagre-KV5264BT-BQsA27kt.js","sources":["../../../../node_modules/.pnpm/dagre-d3-es@7.0.14/node_modules/dagre-d3-es/src/graphlib/json.js","../../../../node_modules/.pnpm/mermaid@11.14.0/node_modules/mermaid/dist/chunks/mermaid.core/dagre-KV5264BT.mjs"],"sourcesContent":["import * as _ from 'lodash-es';\nimport { Graph } from './graph.js';\n\n/**\n * @import { NodeID, EdgeObj, GraphOptions } from './graph.js';\n */\n\nexport { write, read };\n\n/**\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n *\n * @typedef {object} GraphJSON\n * @property {Required<GraphOptions>} options - The options used to create the graph.\n * @property {Array<{ v: NodeID; value?: NodeLabel; parent?: NodeID }>} nodes - The nodes in the graph.\n * @property {Array<EdgeObj & { value?: EdgeLabel }>} edges - The edges in the graph.\n * @property {GraphLabel} [value] - The graph's value, if any.\n */\n\n/**\n * Creates a JSON representation of the graph that can be serialized to a\n * string with\n * [JSON.stringify](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify).\n * The graph can later be restored using {@link read}.\n *\n * @example\n *\n * ```js\n * var g = new graphlib.Graph();\n * g.setNode(\"a\", { label: \"node a\" });\n * g.setNode(\"b\", { label: \"node b\" });\n * g.setEdge(\"a\", \"b\", { label: \"edge a->b\" });\n * graphlib.json.write(g);\n * // Returns the object:\n * //\n * // {\n * // \"options\": {\n * // \"directed\": true,\n * // \"multigraph\": false,\n * // \"compound\": false\n * // },\n * // \"nodes\": [\n * // { \"v\": \"a\", \"value\": { \"label\": \"node a\" } },\n * // { \"v\": \"b\", \"value\": { \"label\": \"node b\" } }\n * // ],\n * // \"edges\": [\n * // { \"v\": \"a\", \"w\": \"b\", \"value\": { \"label\": \"edge a->b\" } }\n * // ]\n * // }\n * ```\n *\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n * @param {Graph<GraphLabel, NodeLabel, EdgeLabel>} g - The graph to serialize.\n * @returns {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} The JSON representation of the graph.\n */\nfunction write(g) {\n /** @type {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} */\n var json = {\n options: {\n directed: g.isDirected(),\n multigraph: g.isMultigraph(),\n compound: g.isCompound(),\n },\n nodes: writeNodes(g),\n edges: writeEdges(g),\n };\n if (!_.isUndefined(g.graph())) {\n json.value = _.clone(g.graph());\n }\n return json;\n}\n\n/**\n * @template NodeLabel - Label of a node.\n *\n * @param {Graph<unknown, NodeLabel, unknown>} g - The graph to serialize.\n * @returns {Array<{ v: NodeID; value?: NodeLabel; parent?: NodeID }>} The nodes in the graph.\n */\nfunction writeNodes(g) {\n return _.map(g.nodes(), function (v) {\n var nodeValue = g.node(v);\n var parent = g.parent(v);\n /** @type {{ v: NodeID; value?: NodeLabel; parent?: NodeID }} */\n var node = { v: v };\n if (!_.isUndefined(nodeValue)) {\n node.value = nodeValue;\n }\n if (!_.isUndefined(parent)) {\n node.parent = parent;\n }\n return node;\n });\n}\n\n/**\n * @template EdgeLabel - Label of a node.\n *\n * @param {Graph<unknown, unknown, EdgeLabel>} g - The graph to serialize.\n * @returns {Array<EdgeObj & { value?: EdgeLabel }>} The edges in the graph.\n */\nfunction writeEdges(g) {\n return _.map(g.edges(), function (e) {\n var edgeValue = g.edge(e);\n /** @type {EdgeObj & { value?: EdgeLabel }} */\n var edge = { v: e.v, w: e.w };\n if (!_.isUndefined(e.name)) {\n edge.name = e.name;\n }\n if (!_.isUndefined(edgeValue)) {\n edge.value = edgeValue;\n }\n return edge;\n });\n}\n\n/**\n * Takes JSON as input and returns the graph representation.\n *\n * @example\n *\n * For example, if we have serialized the graph in {@link write}\n * to a string named `str`, we can restore it to a graph as follows:\n *\n * ```js\n * var g2 = graphlib.json.read(JSON.parse(str));\n * // or, in order to copy the graph\n * var g3 = graphlib.json.read(graphlib.json.write(g))\n *\n * g2.nodes();\n * // ['a', 'b']\n * g2.edges()\n * // [ { v: 'a', w: 'b' } ]\n * ```\n *\n * @template [GraphLabel=any] - Label of the graph.\n * @template [NodeLabel=any] - Label of a node.\n * @template [EdgeLabel=any] - Label of an edge.\n * @param {GraphJSON<GraphLabel, NodeLabel, EdgeLabel>} json - The JSON representation of the graph.\n * @returns {Graph<GraphLabel, NodeLabel, EdgeLabel>} The restored graph.\n */\nfunction read(json) {\n var g = new Graph(json.options).setGraph(json.value);\n _.each(json.nodes, function (entry) {\n g.setNode(entry.v, entry.value);\n if (entry.parent) {\n g.setParent(entry.v, entry.parent);\n }\n });\n _.each(json.edges, function (entry) {\n g.setEdge({ v: entry.v, w: entry.w, name: entry.name }, entry.value);\n });\n return g;\n}\n","import {\n clear as clear2,\n insertEdge,\n insertEdgeLabel,\n markers_default,\n positionEdgeLabel\n} from \"./chunk-ENJZ2VHE.mjs\";\nimport \"./chunk-BSJP7CBP.mjs\";\nimport {\n clear,\n clear2 as clear3,\n insertCluster,\n insertNode,\n positionNode,\n setNodeElem,\n updateNodeBounds\n} from \"./chunk-5FUZZQ4R.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-ZZ45TVLE.mjs\";\nimport \"./chunk-X2U36JSP.mjs\";\nimport \"./chunk-U2HBQHQK.mjs\";\nimport \"./chunk-5PVQY5BW.mjs\";\nimport {\n getConfig2 as getConfig\n} from \"./chunk-ICPOFSXX.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/rendering-util/layout-algorithms/dagre/index.js\nimport { layout as dagreLayout } from \"dagre-d3-es/src/dagre/index.js\";\nimport * as graphlibJson2 from \"dagre-d3-es/src/graphlib/json.js\";\nimport * as graphlib2 from \"dagre-d3-es/src/graphlib/index.js\";\n\n// src/rendering-util/layout-algorithms/dagre/mermaid-graphlib.js\nimport * as graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nimport * as graphlibJson from \"dagre-d3-es/src/graphlib/json.js\";\nvar clusterDb = /* @__PURE__ */ new Map();\nvar descendants = /* @__PURE__ */ new Map();\nvar parents = /* @__PURE__ */ new Map();\nvar clear4 = /* @__PURE__ */ __name(() => {\n descendants.clear();\n parents.clear();\n clusterDb.clear();\n}, \"clear\");\nvar isDescendant = /* @__PURE__ */ __name((id, ancestorId) => {\n const ancestorDescendants = descendants.get(ancestorId) || [];\n log.trace(\"In isDescendant\", ancestorId, \" \", id, \" = \", ancestorDescendants.includes(id));\n return ancestorDescendants.includes(id);\n}, \"isDescendant\");\nvar edgeInCluster = /* @__PURE__ */ __name((edge, clusterId) => {\n const clusterDescendants = descendants.get(clusterId) || [];\n log.info(\"Descendants of \", clusterId, \" is \", clusterDescendants);\n log.info(\"Edge is \", edge);\n if (edge.v === clusterId || edge.w === clusterId) {\n return false;\n }\n if (!clusterDescendants) {\n log.debug(\"Tilt, \", clusterId, \",not in descendants\");\n return false;\n }\n return clusterDescendants.includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || clusterDescendants.includes(edge.w);\n}, \"edgeInCluster\");\nvar copy = /* @__PURE__ */ __name((clusterId, graph, newGraph, rootId) => {\n log.warn(\n \"Copying children of \",\n clusterId,\n \"root\",\n rootId,\n \"data\",\n graph.node(clusterId),\n rootId\n );\n const nodes = graph.children(clusterId) || [];\n if (clusterId !== rootId) {\n nodes.push(clusterId);\n }\n log.warn(\"Copying (nodes) clusterId\", clusterId, \"nodes\", nodes);\n nodes.forEach((node) => {\n if (graph.children(node).length > 0) {\n copy(node, graph, newGraph, rootId);\n } else {\n const data = graph.node(node);\n log.info(\"cp \", node, \" to \", rootId, \" with parent \", clusterId);\n newGraph.setNode(node, data);\n if (rootId !== graph.parent(node)) {\n log.warn(\"Setting parent\", node, graph.parent(node));\n newGraph.setParent(node, graph.parent(node));\n }\n if (clusterId !== rootId && node !== clusterId) {\n log.debug(\"Setting parent\", node, clusterId);\n newGraph.setParent(node, clusterId);\n } else {\n log.info(\"In copy \", clusterId, \"root\", rootId, \"data\", graph.node(clusterId), rootId);\n log.debug(\n \"Not Setting parent for node=\",\n node,\n \"cluster!==rootId\",\n clusterId !== rootId,\n \"node!==clusterId\",\n node !== clusterId\n );\n }\n const edges = graph.edges(node);\n log.debug(\"Copying Edges\", edges);\n edges.forEach((edge) => {\n log.info(\"Edge\", edge);\n const data2 = graph.edge(edge.v, edge.w, edge.name);\n log.info(\"Edge data\", data2, rootId);\n try {\n if (edgeInCluster(edge, rootId)) {\n log.info(\"Copying as \", edge.v, edge.w, data2, edge.name);\n newGraph.setEdge(edge.v, edge.w, data2, edge.name);\n log.info(\"newGraph edges \", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));\n } else {\n log.info(\n \"Skipping copy of edge \",\n edge.v,\n \"-->\",\n edge.w,\n \" rootId: \",\n rootId,\n \" clusterId:\",\n clusterId\n );\n }\n } catch (e) {\n log.error(e);\n }\n });\n }\n log.debug(\"Removing node\", node);\n graph.removeNode(node);\n });\n}, \"copy\");\nvar extractDescendants = /* @__PURE__ */ __name((id, graph) => {\n const children = graph.children(id);\n let res = [...children];\n for (const child of children) {\n parents.set(child, id);\n res = [...res, ...extractDescendants(child, graph)];\n }\n return res;\n}, \"extractDescendants\");\nvar findCommonEdges = /* @__PURE__ */ __name((graph, id1, id2) => {\n const edges1 = graph.edges().filter((edge) => edge.v === id1 || edge.w === id1);\n const edges2 = graph.edges().filter((edge) => edge.v === id2 || edge.w === id2);\n const edges1Prim = edges1.map((edge) => {\n return { v: edge.v === id1 ? id2 : edge.v, w: edge.w === id1 ? id1 : edge.w };\n });\n const edges2Prim = edges2.map((edge) => {\n return { v: edge.v, w: edge.w };\n });\n const result = edges1Prim.filter((edgeIn1) => {\n return edges2Prim.some((edge) => edgeIn1.v === edge.v && edgeIn1.w === edge.w);\n });\n return result;\n}, \"findCommonEdges\");\nvar findNonClusterChild = /* @__PURE__ */ __name((id, graph, clusterId) => {\n const children = graph.children(id);\n log.trace(\"Searching children of id \", id, children);\n if (children.length < 1) {\n return id;\n }\n let reserve;\n for (const child of children) {\n const _id = findNonClusterChild(child, graph, clusterId);\n const commonEdges = findCommonEdges(graph, clusterId, _id);\n if (_id) {\n if (commonEdges.length > 0) {\n reserve = _id;\n } else {\n return _id;\n }\n }\n }\n return reserve;\n}, \"findNonClusterChild\");\nvar getAnchorId = /* @__PURE__ */ __name((id) => {\n if (!clusterDb.has(id)) {\n return id;\n }\n if (!clusterDb.get(id).externalConnections) {\n return id;\n }\n if (clusterDb.has(id)) {\n return clusterDb.get(id).id;\n }\n return id;\n}, \"getAnchorId\");\nvar adjustClustersAndEdges = /* @__PURE__ */ __name((graph, depth) => {\n if (!graph || depth > 10) {\n log.debug(\"Opting out, no graph \");\n return;\n } else {\n log.debug(\"Opting in, graph \");\n }\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n if (children.length > 0) {\n log.warn(\n \"Cluster identified\",\n id,\n \" Replacement id in edges: \",\n findNonClusterChild(id, graph, id)\n );\n descendants.set(id, extractDescendants(id, graph));\n clusterDb.set(id, { id: findNonClusterChild(id, graph, id), clusterData: graph.node(id) });\n }\n });\n graph.nodes().forEach(function(id) {\n const children = graph.children(id);\n const edges = graph.edges();\n if (children.length > 0) {\n log.debug(\"Cluster identified\", id, descendants);\n edges.forEach((edge) => {\n const d1 = isDescendant(edge.v, id);\n const d2 = isDescendant(edge.w, id);\n if (d1 ^ d2) {\n log.warn(\"Edge: \", edge, \" leaves cluster \", id);\n log.warn(\"Descendants of XXX \", id, \": \", descendants.get(id));\n clusterDb.get(id).externalConnections = true;\n }\n });\n } else {\n log.debug(\"Not a cluster \", id, descendants);\n }\n });\n for (let id of clusterDb.keys()) {\n const nonClusterChild = clusterDb.get(id).id;\n const parent = graph.parent(nonClusterChild);\n if (parent !== id && clusterDb.has(parent) && !clusterDb.get(parent).externalConnections) {\n clusterDb.get(id).id = parent;\n }\n }\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.warn(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(graph.edge(e)));\n let v = e.v;\n let w = e.w;\n log.warn(\n \"Fix XXX\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb.get(e.v),\n \" --- \",\n clusterDb.get(e.w)\n );\n if (clusterDb.get(e.v) || clusterDb.get(e.w)) {\n log.warn(\"Fixing and trying - removing XXX\", e.v, e.w, e.name);\n v = getAnchorId(e.v);\n w = getAnchorId(e.w);\n graph.removeEdge(e.v, e.w, e.name);\n if (v !== e.v) {\n const parent = graph.parent(v);\n clusterDb.get(parent).externalConnections = true;\n edge.fromCluster = e.v;\n }\n if (w !== e.w) {\n const parent = graph.parent(w);\n clusterDb.get(parent).externalConnections = true;\n edge.toCluster = e.w;\n }\n log.warn(\"Fix Replacing with XXX\", v, w, e.name);\n graph.setEdge(v, w, edge, e.name);\n }\n });\n log.warn(\"Adjusted Graph\", graphlibJson.write(graph));\n extractor(graph, 0);\n log.trace(clusterDb);\n}, \"adjustClustersAndEdges\");\nvar extractor = /* @__PURE__ */ __name((graph, depth) => {\n log.warn(\"extractor - \", depth, graphlibJson.write(graph), graph.children(\"D\"));\n if (depth > 10) {\n log.error(\"Bailing out\");\n return;\n }\n let nodes = graph.nodes();\n let hasChildren = false;\n for (const node of nodes) {\n const children = graph.children(node);\n hasChildren = hasChildren || children.length > 0;\n }\n if (!hasChildren) {\n log.debug(\"Done, no node has children\", graph.nodes());\n return;\n }\n log.debug(\"Nodes = \", nodes, depth);\n for (const node of nodes) {\n log.debug(\n \"Extracting node\",\n node,\n clusterDb,\n clusterDb.has(node) && !clusterDb.get(node).externalConnections,\n !graph.parent(node),\n graph.node(node),\n graph.children(\"D\"),\n \" Depth \",\n depth\n );\n if (!clusterDb.has(node)) {\n log.debug(\"Not a cluster\", node, depth);\n } else if (!clusterDb.get(node).externalConnections && graph.children(node) && graph.children(node).length > 0) {\n log.warn(\n \"Cluster without external connections, without a parent and with children\",\n node,\n depth\n );\n const graphSettings = graph.graph();\n let dir = graphSettings.rankdir === \"TB\" ? \"LR\" : \"TB\";\n if (clusterDb.get(node)?.clusterData?.dir) {\n dir = clusterDb.get(node).clusterData.dir;\n log.warn(\"Fixing dir\", clusterDb.get(node).clusterData.dir, dir);\n }\n const clusterGraph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: dir,\n nodesep: 50,\n ranksep: 50,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n log.warn(\"Old graph before copy\", graphlibJson.write(graph));\n copy(node, graph, clusterGraph, node);\n graph.setNode(node, {\n clusterNode: true,\n id: node,\n clusterData: clusterDb.get(node).clusterData,\n label: clusterDb.get(node).label,\n graph: clusterGraph\n });\n log.warn(\"New graph after copy node: (\", node, \")\", graphlibJson.write(clusterGraph));\n log.debug(\"Old graph after copy\", graphlibJson.write(graph));\n } else {\n log.warn(\n \"Cluster ** \",\n node,\n \" **not meeting the criteria !externalConnections:\",\n !clusterDb.get(node).externalConnections,\n \" no parent: \",\n !graph.parent(node),\n \" children \",\n graph.children(node) && graph.children(node).length > 0,\n graph.children(\"D\"),\n depth\n );\n log.debug(clusterDb);\n }\n }\n nodes = graph.nodes();\n log.warn(\"New list of nodes\", nodes);\n for (const node of nodes) {\n const data = graph.node(node);\n log.warn(\" Now next level\", node, data);\n if (data?.clusterNode) {\n extractor(data.graph, depth + 1);\n }\n }\n}, \"extractor\");\nvar sorter = /* @__PURE__ */ __name((graph, nodes) => {\n if (nodes.length === 0) {\n return [];\n }\n let result = Object.assign([], nodes);\n nodes.forEach((node) => {\n const children = graph.children(node);\n const sorted = sorter(graph, children);\n result = [...result, ...sorted];\n });\n return result;\n}, \"sorter\");\nvar sortNodesByHierarchy = /* @__PURE__ */ __name((graph) => sorter(graph, graph.children()), \"sortNodesByHierarchy\");\n\n// src/rendering-util/layout-algorithms/dagre/index.js\nvar recursiveRender = /* @__PURE__ */ __name(async (_elem, graph, diagramType, id, parentCluster, siteConfig) => {\n log.warn(\"Graph in recursive render:XAX\", graphlibJson2.write(graph), parentCluster);\n const dir = graph.graph().rankdir;\n log.trace(\"Dir in recursive render - dir:\", dir);\n const elem = _elem.insert(\"g\").attr(\"class\", \"root\");\n if (!graph.nodes()) {\n log.info(\"No nodes found for\", graph);\n } else {\n log.info(\"Recursive render XXX\", graph.nodes());\n }\n if (graph.edges().length > 0) {\n log.info(\"Recursive edges\", graph.edge(graph.edges()[0]));\n }\n const clusters = elem.insert(\"g\").attr(\"class\", \"clusters\");\n const edgePaths = elem.insert(\"g\").attr(\"class\", \"edgePaths\");\n const edgeLabels = elem.insert(\"g\").attr(\"class\", \"edgeLabels\");\n const nodes = elem.insert(\"g\").attr(\"class\", \"nodes\");\n await Promise.all(\n graph.nodes().map(async function(v) {\n const node = graph.node(v);\n if (parentCluster !== void 0) {\n const data = JSON.parse(JSON.stringify(parentCluster.clusterData));\n log.trace(\n \"Setting data for parent cluster XXX\\n Node.id = \",\n v,\n \"\\n data=\",\n data.height,\n \"\\nParent cluster\",\n parentCluster.height\n );\n graph.setNode(parentCluster.id, data);\n if (!graph.parent(v)) {\n log.trace(\"Setting parent\", v, parentCluster.id);\n graph.setParent(v, parentCluster.id, data);\n }\n }\n log.info(\"(Insert) Node XXX\" + v + \": \" + JSON.stringify(graph.node(v)));\n if (node?.clusterNode) {\n log.info(\"Cluster identified XBX\", v, node.width, graph.node(v));\n const { ranksep, nodesep } = graph.graph();\n node.graph.setGraph({\n ...node.graph.graph(),\n ranksep: ranksep + 25,\n nodesep\n });\n const o = await recursiveRender(\n nodes,\n node.graph,\n diagramType,\n id,\n graph.node(v),\n siteConfig\n );\n const newEl = o.elem;\n updateNodeBounds(node, newEl);\n node.diff = o.diff || 0;\n log.info(\n \"New compound node after recursive render XAX\",\n v,\n \"width\",\n // node,\n node.width,\n \"height\",\n node.height\n // node.x,\n // node.y\n );\n setNodeElem(newEl, node);\n } else {\n if (graph.children(v).length > 0) {\n log.trace(\n \"Cluster - the non recursive path XBX\",\n v,\n node.id,\n node,\n node.width,\n \"Graph:\",\n graph\n );\n log.trace(findNonClusterChild(node.id, graph));\n clusterDb.set(node.id, { id: findNonClusterChild(node.id, graph), node });\n } else {\n log.trace(\"Node - the non recursive path XAX\", v, nodes, graph.node(v), dir);\n await insertNode(nodes, graph.node(v), { config: siteConfig, dir });\n }\n }\n })\n );\n const processEdges = /* @__PURE__ */ __name(async () => {\n const edgePromises = graph.edges().map(async function(e) {\n const edge = graph.edge(e.v, e.w, e.name);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(e));\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \", e, \" \", JSON.stringify(graph.edge(e)));\n log.info(\n \"Fix\",\n clusterDb,\n \"ids:\",\n e.v,\n e.w,\n \"Translating: \",\n clusterDb.get(e.v),\n clusterDb.get(e.w)\n );\n await insertEdgeLabel(edgeLabels, edge);\n });\n await Promise.all(edgePromises);\n }, \"processEdges\");\n await processEdges();\n log.info(\"Graph before layout:\", JSON.stringify(graphlibJson2.write(graph)));\n log.info(\"############################################# XXX\");\n log.info(\"### Layout ### XXX\");\n log.info(\"############################################# XXX\");\n dagreLayout(graph);\n log.info(\"Graph after layout:\", JSON.stringify(graphlibJson2.write(graph)));\n let diff = 0;\n let { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n await Promise.all(\n sortNodesByHierarchy(graph).map(async function(v) {\n const node = graph.node(v);\n log.info(\n \"Position XBX => \" + v + \": (\" + node.x,\n \",\" + node.y,\n \") width: \",\n node.width,\n \" height: \",\n node.height\n );\n if (node?.clusterNode) {\n node.y += subGraphTitleTotalMargin;\n log.info(\n \"A tainted cluster node XBX1\",\n v,\n node.id,\n node.width,\n node.height,\n node.x,\n node.y,\n graph.parent(v)\n );\n clusterDb.get(node.id).node = node;\n positionNode(node);\n } else {\n if (graph.children(v).length > 0) {\n log.info(\n \"A pure cluster node XBX1\",\n v,\n node.id,\n node.x,\n node.y,\n node.width,\n node.height,\n graph.parent(v)\n );\n node.height += subGraphTitleTotalMargin;\n graph.node(node.parentId);\n const halfPadding = node?.padding / 2 || 0;\n const labelHeight = node?.labelBBox?.height || 0;\n const offsetY = labelHeight - halfPadding || 0;\n log.debug(\"OffsetY\", offsetY, \"labelHeight\", labelHeight, \"halfPadding\", halfPadding);\n await insertCluster(clusters, node);\n clusterDb.get(node.id).node = node;\n } else {\n const parent = graph.node(node.parentId);\n node.y += subGraphTitleTotalMargin / 2;\n log.info(\n \"A regular node XBX1 - using the padding\",\n node.id,\n \"parent\",\n node.parentId,\n node.width,\n node.height,\n node.x,\n node.y,\n \"offsetY\",\n node.offsetY,\n \"parent\",\n parent,\n parent?.offsetY,\n node\n );\n positionNode(node);\n }\n }\n })\n );\n graph.edges().forEach(function(e) {\n const edge = graph.edge(e);\n log.info(\"Edge \" + e.v + \" -> \" + e.w + \": \" + JSON.stringify(edge), edge);\n edge.points.forEach((point) => point.y += subGraphTitleTotalMargin / 2);\n const startNode = graph.node(e.v);\n var endNode = graph.node(e.w);\n const paths = insertEdge(edgePaths, edge, clusterDb, diagramType, startNode, endNode, id);\n positionEdgeLabel(edge, paths);\n });\n graph.nodes().forEach(function(v) {\n const n = graph.node(v);\n log.info(v, n.type, n.diff);\n if (n.isGroup) {\n diff = n.diff;\n }\n });\n log.warn(\"Returning from recursive render XAX\", elem, diff);\n return { elem, diff };\n}, \"recursiveRender\");\nvar render = /* @__PURE__ */ __name(async (data4Layout, svg) => {\n const graph = new graphlib2.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: data4Layout.direction,\n nodesep: data4Layout.config?.nodeSpacing || data4Layout.config?.flowchart?.nodeSpacing || data4Layout.nodeSpacing,\n ranksep: data4Layout.config?.rankSpacing || data4Layout.config?.flowchart?.rankSpacing || data4Layout.rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\n const element = svg.select(\"g\");\n markers_default(element, data4Layout.markers, data4Layout.type, data4Layout.diagramId);\n clear3();\n clear2();\n clear();\n clear4();\n data4Layout.nodes.forEach((node) => {\n graph.setNode(node.id, { ...node });\n if (node.parentId) {\n graph.setParent(node.id, node.parentId);\n }\n });\n log.debug(\"Edges:\", data4Layout.edges);\n data4Layout.edges.forEach((edge) => {\n if (edge.start === edge.end) {\n const nodeId = edge.start;\n const specialId1 = nodeId + \"---\" + nodeId + \"---1\";\n const specialId2 = nodeId + \"---\" + nodeId + \"---2\";\n const node = graph.node(nodeId);\n graph.setNode(specialId1, {\n domId: specialId1,\n id: specialId1,\n parentId: node.parentId,\n labelStyle: \"\",\n label: \"\",\n padding: 0,\n shape: \"labelRect\",\n // shape: 'rect',\n style: \"\",\n width: 10,\n height: 10\n });\n graph.setParent(specialId1, node.parentId);\n graph.setNode(specialId2, {\n domId: specialId2,\n id: specialId2,\n parentId: node.parentId,\n labelStyle: \"\",\n padding: 0,\n // shape: 'rect',\n shape: \"labelRect\",\n label: \"\",\n style: \"\",\n width: 10,\n height: 10\n });\n graph.setParent(specialId2, node.parentId);\n const edge1 = structuredClone(edge);\n const edgeMid = structuredClone(edge);\n const edge2 = structuredClone(edge);\n edge1.label = \"\";\n edge1.arrowTypeEnd = \"none\";\n edge1.id = nodeId + \"-cyclic-special-1\";\n edgeMid.arrowTypeStart = \"none\";\n edgeMid.arrowTypeEnd = \"none\";\n edgeMid.id = nodeId + \"-cyclic-special-mid\";\n edge2.label = \"\";\n if (node.isGroup) {\n edge1.fromCluster = nodeId;\n edge2.toCluster = nodeId;\n }\n edge2.id = nodeId + \"-cyclic-special-2\";\n edge2.arrowTypeStart = \"none\";\n graph.setEdge(nodeId, specialId1, edge1, nodeId + \"-cyclic-special-0\");\n graph.setEdge(specialId1, specialId2, edgeMid, nodeId + \"-cyclic-special-1\");\n graph.setEdge(specialId2, nodeId, edge2, nodeId + \"-cyc<lic-special-2\");\n } else {\n graph.setEdge(edge.start, edge.end, { ...edge }, edge.id);\n }\n });\n log.warn(\"Graph at first:\", JSON.stringify(graphlibJson2.write(graph)));\n adjustClustersAndEdges(graph);\n log.warn(\"Graph after XAX:\", JSON.stringify(graphlibJson2.write(graph)));\n const siteConfig = getConfig();\n await recursiveRender(\n element,\n graph,\n data4Layout.type,\n data4Layout.diagramId,\n void 0,\n siteConfig\n );\n}, \"render\");\nexport {\n render\n};\n"],"names":["write","g","json","writeNodes","writeEdges","_.isUndefined","_.clone","_.map","v","nodeValue","parent","node","e","edgeValue","edge","clusterDb","descendants","parents","clear4","__name","isDescendant","id","ancestorId","ancestorDescendants","log","edgeInCluster","clusterId","clusterDescendants","copy","graph","newGraph","rootId","nodes","data","edges","data2","extractDescendants","children","res","child","findCommonEdges","id1","id2","edges1","edges2","edges1Prim","edges2Prim","edgeIn1","findNonClusterChild","reserve","_id","commonEdges","getAnchorId","adjustClustersAndEdges","depth","d1","d2","nonClusterChild","w","graphlibJson.write","extractor","hasChildren","dir","_b","_a","clusterGraph","graphlib.Graph","sorter","result","sorted","sortNodesByHierarchy","recursiveRender","_elem","diagramType","parentCluster","siteConfig","graphlibJson2.write","elem","clusters","edgePaths","edgeLabels","ranksep","nodesep","o","newEl","updateNodeBounds","setNodeElem","insertNode","edgePromises","insertEdgeLabel","dagreLayout","diff","subGraphTitleTotalMargin","getSubGraphTitleMargins","positionNode","halfPadding","labelHeight","offsetY","insertCluster","point","startNode","endNode","paths","insertEdge","positionEdgeLabel","n","render","data4Layout","svg","graphlib2.Graph","_c","_d","_f","_e","element","markers_default","clear3","clear2","clear","nodeId","specialId1","specialId2","edge1","edgeMid","edge2","getConfig"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function J(n){return Math.abs(n=Math.round(n))>=1e21?n.toLocaleString("en").replace(/,/g,""):n.toString(10)}function j(n,t){if(!isFinite(n)||n===0)return null;var e=(n=t?n.toExponential(t-1):n.toExponential()).indexOf("e"),i=n.slice(0,e);return[i.length>1?i[0]+i.slice(2):i,+n.slice(e+1)]}function K(n){return n=j(Math.abs(n)),n?n[1]:NaN}function Q(n,t){return function(e,i){for(var o=e.length,a=[],c=0,h=n[0],M=0;o>0&&h>0&&(M+h+1>i&&(h=Math.max(1,i-M)),a.push(e.substring(o-=h,o+h)),!((M+=h+1)>i));)h=n[c=(c+1)%n.length];return a.reverse().join(t)}}function V(n){return function(t){return t.replace(/[0-9]/g,function(e){return n[+e]})}}var W=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function $(n){if(!(t=W.exec(n)))throw new Error("invalid format: "+n);var t;return new L({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}$.prototype=L.prototype;function L(n){this.fill=n.fill===void 0?" ":n.fill+"",this.align=n.align===void 0?">":n.align+"",this.sign=n.sign===void 0?"-":n.sign+"",this.symbol=n.symbol===void 0?"":n.symbol+"",this.zero=!!n.zero,this.width=n.width===void 0?void 0:+n.width,this.comma=!!n.comma,this.precision=n.precision===void 0?void 0:+n.precision,this.trim=!!n.trim,this.type=n.type===void 0?"":n.type+""}L.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function _(n){n:for(var t=n.length,e=1,i=-1,o;e<t;++e)switch(n[e]){case".":i=o=e;break;case"0":i===0&&(i=e),o=e;break;default:if(!+n[e])break n;i>0&&(i=0);break}return i>0?n.slice(0,i)+n.slice(o+1):n}var N;function v(n,t){var e=j(n,t);if(!e)return N=void 0,n.toPrecision(t);var i=e[0],o=e[1],a=o-(N=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,c=i.length;return a===c?i:a>c?i+new Array(a-c+1).join("0"):a>0?i.slice(0,a)+"."+i.slice(a):"0."+new Array(1-a).join("0")+j(n,Math.max(0,t+a-1))[0]}function X(n,t){var e=j(n,t);if(!e)return n+"";var i=e[0],o=e[1];return o<0?"0."+new Array(-o).join("0")+i:i.length>o+1?i.slice(0,o+1)+"."+i.slice(o+1):i+new Array(o-i.length+2).join("0")}const O={"%":(n,t)=>(n*100).toFixed(t),b:n=>Math.round(n).toString(2),c:n=>n+"",d:J,e:(n,t)=>n.toExponential(t),f:(n,t)=>n.toFixed(t),g:(n,t)=>n.toPrecision(t),o:n=>Math.round(n).toString(8),p:(n,t)=>X(n*100,t),r:X,s:v,X:n=>Math.round(n).toString(16).toUpperCase(),x:n=>Math.round(n).toString(16)};function R(n){return n}var U=Array.prototype.map,Y=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function nn(n){var t=n.grouping===void 0||n.thousands===void 0?R:Q(U.call(n.grouping,Number),n.thousands+""),e=n.currency===void 0?"":n.currency[0]+"",i=n.currency===void 0?"":n.currency[1]+"",o=n.decimal===void 0?".":n.decimal+"",a=n.numerals===void 0?R:V(U.call(n.numerals,String)),c=n.percent===void 0?"%":n.percent+"",h=n.minus===void 0?"−":n.minus+"",M=n.nan===void 0?"NaN":n.nan+"";function T(f,g){f=$(f);var b=f.fill,p=f.align,m=f.sign,w=f.symbol,S=f.zero,E=f.width,F=f.comma,y=f.precision,C=f.trim,d=f.type;d==="n"?(F=!0,d="g"):O[d]||(y===void 0&&(y=12),C=!0,d="g"),(S||b==="0"&&p==="=")&&(S=!0,b="0",p="=");var q=(g&&g.prefix!==void 0?g.prefix:"")+(w==="$"?e:w==="#"&&/[boxX]/.test(d)?"0"+d.toLowerCase():""),B=(w==="$"?i:/[%p]/.test(d)?c:"")+(g&&g.suffix!==void 0?g.suffix:""),D=O[d],H=/[defgprs%]/.test(d);y=y===void 0?6:/[gprs]/.test(d)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y));function G(r){var l=q,u=B,x,I,k;if(d==="c")u=D(r)+u,r="";else{r=+r;var P=r<0||1/r<0;if(r=isNaN(r)?M:D(Math.abs(r),y),C&&(r=_(r)),P&&+r==0&&m!=="+"&&(P=!1),l=(P?m==="("?m:h:m==="-"||m==="("?"":m)+l,u=(d==="s"&&!isNaN(r)&&N!==void 0?Y[8+N/3]:"")+u+(P&&m==="("?")":""),H){for(x=-1,I=r.length;++x<I;)if(k=r.charCodeAt(x),48>k||k>57){u=(k===46?o+r.slice(x+1):r.slice(x))+u,r=r.slice(0,x);break}}}F&&!S&&(r=t(r,1/0));var z=l.length+r.length+u.length,s=z<E?new Array(E-z+1).join(b):"";switch(F&&S&&(r=t(s+r,s.length?E-u.length:1/0),s=""),p){case"<":r=l+r+u+s;break;case"=":r=l+s+r+u;break;case"^":r=s.slice(0,z=s.length>>1)+l+r+u+s.slice(z);break;default:r=s+l+r+u;break}return a(r)}return G.toString=function(){return f+""},G}function Z(f,g){var b=Math.max(-8,Math.min(8,Math.floor(K(g)/3)))*3,p=Math.pow(10,-b),m=T((f=$(f),f.type="f",f),{suffix:Y[8+b/3]});return function(w){return m(p*w)}}return{format:T,formatPrefix:Z}}var A,tn,rn;en({thousands:",",grouping:[3],currency:["$",""]});function en(n){return A=nn(n),tn=A.format,rn=A.formatPrefix,A}export{rn as a,tn as b,K as e,$ as f};
|
|
2
|
+
//# sourceMappingURL=defaultLocale-DX6XiGOO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultLocale-DX6XiGOO.js","sources":["../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatDecimal.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/exponent.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatGroup.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatNumerals.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatSpecifier.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatTrim.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatPrefixAuto.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatRounded.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatTypes.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/identity.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/locale.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/defaultLocale.js"],"sourcesContent":["export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if (!isFinite(x) || x === 0) return null; // NaN, ±Infinity, ±0\n var i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\"), coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return prefixExponent = undefined, x.toPrecision(p);\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier, options) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = (options && options.prefix !== undefined ? options.prefix : \"\") + (symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\"),\n suffix = (symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\") + (options && options.suffix !== undefined ? options.suffix : \"\");\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" && !isNaN(value) && prefixExponent !== undefined ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier), {suffix: prefixes[8 + e / 3]});\n return function(value) {\n return f(k * value);\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n"],"names":["formatDecimal","x","formatDecimalParts","p","i","coefficient","exponent","formatGroup","grouping","thousands","value","width","t","j","g","length","formatNumerals","numerals","re","formatSpecifier","specifier","match","FormatSpecifier","formatTrim","s","out","n","i0","i1","prefixExponent","formatPrefixAuto","d","formatRounded","formatTypes","identity","map","prefixes","formatLocale","locale","group","currencyPrefix","currencySuffix","decimal","percent","minus","nan","newFormat","options","fill","align","sign","symbol","zero","comma","precision","trim","type","prefix","suffix","formatType","maybeSuffix","format","valuePrefix","valueSuffix","c","valueNegative","padding","formatPrefix","e","k","f","defaultLocale","definition"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import{o as x,b as C,s as f,p as y,g as B,a as T,_ as s,E as u,l as k,H as V,d as _,C as N,F as S,y as D}from"./mermaid.core-CFxQTXeR.js";import{p as $}from"./chunk-4BX2VUAB-DdNxSoa7.js";import{I as A}from"./chunk-QZHKN3VN-B1tO29hV.js";import{p as H}from"./wardley-RL74JXVD-CJqH0Jne.js";import"./index-Dmx3s87Z.js";import"./min-Dl-Y_8tu.js";import"./_baseUniq-okA3yjMF.js";var l=new A(()=>({cnt:1,stack:[{id:0,level:-1,name:"/",children:[]}]})),I=s(()=>{l.reset(),D()},"clear"),X=s(()=>l.records.stack[0],"getRoot"),z=s(()=>l.records.cnt,"getCount"),E=S.treeView,L=s(()=>u(E,N().treeView),"getConfig"),R=s((e,t)=>{for(;e<=l.records.stack[l.records.stack.length-1].level;)l.records.stack.pop();const a={id:l.records.cnt++,level:e,name:t,children:[]};l.records.stack[l.records.stack.length-1].children.push(a),l.records.stack.push(a)},"addNode"),W={clear:I,addNode:R,getRoot:X,getCount:z,getConfig:L,getAccTitle:T,getAccDescription:B,getDiagramTitle:y,setAccDescription:f,setAccTitle:C,setDiagramTitle:x},w=W,F=s(e=>{$(e,w),e.nodes.map(t=>w.addNode(t.indent?parseInt(t.indent):0,t.name))},"populate"),M={parse:s(async e=>{const t=await H("treeView",e);k.debug(t),F(t)},"parse")},Y=s((e,t,a,n,o)=>{const c=n.append("text").text(a.name).attr("dominant-baseline","middle").attr("class","treeView-node-label"),{height:p,width:r}=c.node().getBBox(),d=p+o.paddingY*2,i=r+o.paddingX*2;c.attr("x",e+o.paddingX),c.attr("y",t+d/2),a.BBox={x:e,y:t,width:i,height:d}},"positionLabel"),b=s((e,t,a,n,o,c)=>e.append("line").attr("x1",t).attr("y1",a).attr("x2",n).attr("y2",o).attr("stroke-width",c).attr("class","treeView-node-line"),"positionLine"),j=s((e,t,a)=>{let n=0,o=0;const c=s((r,d,i,h)=>{const v=h*(i.rowIndent+i.paddingX);Y(v,n,d,r,i);const{height:g,width:m}=d.BBox;b(r,v-i.rowIndent,n+g/2,v,n+g/2,i.lineThickness),o=Math.max(o,v+m),n+=g},"drawNode"),p=s((r,d=0)=>{c(e,r,a,d),r.children.forEach(g=>{p(g,d+1)});const{x:i,y:h,height:v}=r.BBox;if(r.children.length){const{y:g,height:m}=r.children[r.children.length-1].BBox;b(e,i+a.paddingX,h+v,i+a.paddingX,g+m/2+a.lineThickness/2,a.lineThickness)}},"processNode");return p(t),{totalHeight:n,totalWidth:o}},"drawTree"),q=s((e,t,a,n)=>{k.debug(`Rendering treeView diagram
|
|
2
|
+
`+e);const o=n.db,c=o.getRoot(),p=o.getConfig(),r=V(t),d=r.append("g");d.attr("class","tree-view");const{totalHeight:i,totalWidth:h}=j(d,c,p);r.attr("viewBox",`-${p.lineThickness/2} 0 ${h} ${i}`),_(r,i,h,p.useMaxWidth)},"draw"),G={draw:q},J=G,K={labelFontSize:"16px",labelColor:"black",lineColor:"black"},O=s(({treeView:e})=>{const{labelFontSize:t,labelColor:a,lineColor:n}=u(K,e);return`
|
|
3
|
+
.treeView-node-label {
|
|
4
|
+
font-size: ${t};
|
|
5
|
+
fill: ${a};
|
|
6
|
+
}
|
|
7
|
+
.treeView-node-line {
|
|
8
|
+
stroke: ${n};
|
|
9
|
+
}
|
|
10
|
+
`},"styles"),P=O,se={db:w,renderer:J,parser:M,styles:P};export{se as diagram};
|
|
11
|
+
//# sourceMappingURL=diagram-5BDNPKRD-CXlbxFux.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagram-5BDNPKRD-CXlbxFux.js","sources":["../../../../node_modules/.pnpm/mermaid@11.14.0/node_modules/mermaid/dist/chunks/mermaid.core/diagram-5BDNPKRD.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-426QAEUC.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n ImperativeState\n} from \"./chunk-QZHKN3VN.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-5PVQY5BW.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ICPOFSXX.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/treeView/db.ts\nvar state = new ImperativeState(() => ({\n cnt: 1,\n stack: [\n {\n id: 0,\n level: -1,\n name: \"/\",\n children: []\n }\n ]\n}));\nvar clear2 = /* @__PURE__ */ __name(() => {\n state.reset();\n clear();\n}, \"clear\");\nvar getRoot = /* @__PURE__ */ __name(() => {\n return state.records.stack[0];\n}, \"getRoot\");\nvar getCount = /* @__PURE__ */ __name(() => state.records.cnt, \"getCount\");\nvar defaultConfig = defaultConfig_default.treeView;\nvar getConfig2 = /* @__PURE__ */ __name(() => {\n return cleanAndMerge(defaultConfig, getConfig().treeView);\n}, \"getConfig\");\nvar addNode = /* @__PURE__ */ __name((level, name) => {\n while (level <= state.records.stack[state.records.stack.length - 1].level) {\n state.records.stack.pop();\n }\n const node = {\n id: state.records.cnt++,\n level,\n name,\n children: []\n };\n state.records.stack[state.records.stack.length - 1].children.push(node);\n state.records.stack.push(node);\n}, \"addNode\");\nvar db = {\n clear: clear2,\n addNode,\n getRoot,\n getCount,\n getConfig: getConfig2,\n getAccTitle,\n getAccDescription,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n};\nvar db_default = db;\n\n// src/diagrams/treeView/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar populate = /* @__PURE__ */ __name((ast) => {\n populateCommonDb(ast, db_default);\n ast.nodes.map((node) => db_default.addNode(node.indent ? parseInt(node.indent) : 0, node.name));\n}, \"populate\");\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"treeView\", input);\n log.debug(ast);\n populate(ast);\n }, \"parse\")\n};\n\n// src/diagrams/treeView/renderer.ts\nvar positionLabel = /* @__PURE__ */ __name((x, y, node, domElem, config) => {\n const label = domElem.append(\"text\").text(node.name).attr(\"dominant-baseline\", \"middle\").attr(\"class\", \"treeView-node-label\");\n const { height: labelHeight, width: labelWidth } = label.node().getBBox();\n const height = labelHeight + config.paddingY * 2;\n const width = labelWidth + config.paddingX * 2;\n label.attr(\"x\", x + config.paddingX);\n label.attr(\"y\", y + height / 2);\n node.BBox = {\n x,\n y,\n width,\n height\n };\n}, \"positionLabel\");\nvar positionLine = /* @__PURE__ */ __name((domElem, x1, y1, x2, y2, lineThickness) => {\n return domElem.append(\"line\").attr(\"x1\", x1).attr(\"y1\", y1).attr(\"x2\", x2).attr(\"y2\", y2).attr(\"stroke-width\", lineThickness).attr(\"class\", \"treeView-node-line\");\n}, \"positionLine\");\nvar drawTree = /* @__PURE__ */ __name((elem, root, config) => {\n let totalHeight = 0;\n let totalWidth = 0;\n const drawNode = /* @__PURE__ */ __name((elem2, node, config2, depth) => {\n const indent = depth * (config2.rowIndent + config2.paddingX);\n positionLabel(indent, totalHeight, node, elem2, config2);\n const { height, width } = node.BBox;\n positionLine(\n elem2,\n indent - config2.rowIndent,\n totalHeight + height / 2,\n indent,\n totalHeight + height / 2,\n config2.lineThickness\n );\n totalWidth = Math.max(totalWidth, indent + width);\n totalHeight += height;\n }, \"drawNode\");\n const processNode = /* @__PURE__ */ __name((node, depth = 0) => {\n drawNode(elem, node, config, depth);\n node.children.forEach((child) => {\n processNode(child, depth + 1);\n });\n const { x, y, height } = node.BBox;\n if (node.children.length) {\n const { y: endY, height: endHeight } = node.children[node.children.length - 1].BBox;\n positionLine(\n elem,\n x + config.paddingX,\n y + height,\n x + config.paddingX,\n endY + endHeight / 2 + config.lineThickness / 2,\n config.lineThickness\n );\n }\n }, \"processNode\");\n processNode(root);\n return { totalHeight, totalWidth };\n}, \"drawTree\");\nvar draw = /* @__PURE__ */ __name((text, id, _ver, diagObj) => {\n log.debug(\"Rendering treeView diagram\\n\" + text);\n const db2 = diagObj.db;\n const root = db2.getRoot();\n const config = db2.getConfig();\n const svg = selectSvgElement(id);\n const treeElem = svg.append(\"g\");\n treeElem.attr(\"class\", \"tree-view\");\n const { totalHeight, totalWidth } = drawTree(treeElem, root, config);\n svg.attr(\"viewBox\", `-${config.lineThickness / 2} 0 ${totalWidth} ${totalHeight}`);\n configureSvgSize(svg, totalHeight, totalWidth, config.useMaxWidth);\n}, \"draw\");\nvar renderer = {\n draw\n};\nvar renderer_default = renderer;\n\n// src/diagrams/treeView/styles.ts\nvar defaultTreeViewDiagramStyles = {\n labelFontSize: \"16px\",\n labelColor: \"black\",\n lineColor: \"black\"\n};\nvar styles = /* @__PURE__ */ __name(({\n treeView\n}) => {\n const { labelFontSize, labelColor, lineColor } = cleanAndMerge(\n defaultTreeViewDiagramStyles,\n treeView\n );\n return `\n .treeView-node-label {\n font-size: ${labelFontSize};\n fill: ${labelColor};\n }\n .treeView-node-line {\n stroke: ${lineColor};\n }\n `;\n}, \"styles\");\nvar styles_default = styles;\n\n// src/diagrams/treeView/diagram.ts\nvar diagram = {\n db: db_default,\n renderer: renderer_default,\n parser,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["state","ImperativeState","clear2","__name","clear","getRoot","getCount","defaultConfig","defaultConfig_default","getConfig2","cleanAndMerge","getConfig","addNode","level","name","node","db","getAccTitle","getAccDescription","getDiagramTitle","setAccDescription","setAccTitle","setDiagramTitle","db_default","populate","ast","populateCommonDb","parser","input","parse","log","positionLabel","x","y","domElem","config","label","labelHeight","labelWidth","height","width","positionLine","x1","y1","x2","y2","lineThickness","drawTree","elem","root","totalHeight","totalWidth","drawNode","elem2","config2","depth","indent","processNode","child","endY","endHeight","draw","text","id","_ver","diagObj","db2","svg","selectSvgElement","treeElem","configureSvgSize","renderer","renderer_default","defaultTreeViewDiagramStyles","styles","treeView","labelFontSize","labelColor","lineColor","styles_default","diagram"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import{_ as w,I as he,C as ee,E as K,H as ue,d as pe,l as Q,b5 as P,b as fe,a as ge,o as me,p as ye,g as Se,s as ve,F as xe,b6 as be,y as we}from"./mermaid.core-CFxQTXeR.js";import{s as Ce}from"./chunk-EDXVE4YY-DSO0zPbn.js";import{p as Te}from"./chunk-4BX2VUAB-DdNxSoa7.js";import{p as Le}from"./wardley-RL74JXVD-CJqH0Jne.js";import{s as j}from"./index-Dmx3s87Z.js";import{b as O}from"./defaultLocale-DX6XiGOO.js";import{o as J}from"./ordinal-Cboi1Yqb.js";import"./min-Dl-Y_8tu.js";import"./_baseUniq-okA3yjMF.js";import"./init-Gi6I4Gst.js";function $e(t){var a=0,l=t.children,n=l&&l.length;if(!n)a=1;else for(;--n>=0;)a+=l[n].value;t.value=a}function Ae(){return this.eachAfter($e)}function Fe(t,a){let l=-1;for(const n of this)t.call(a,n,++l,this);return this}function Ne(t,a){for(var l=this,n=[l],r,s,d=-1;l=n.pop();)if(t.call(a,l,++d,this),r=l.children)for(s=r.length-1;s>=0;--s)n.push(r[s]);return this}function Me(t,a){for(var l=this,n=[l],r=[],s,d,h,g=-1;l=n.pop();)if(r.push(l),s=l.children)for(d=0,h=s.length;d<h;++d)n.push(s[d]);for(;l=r.pop();)t.call(a,l,++g,this);return this}function Ve(t,a){let l=-1;for(const n of this)if(t.call(a,n,++l,this))return n}function _e(t){return this.eachAfter(function(a){for(var l=+t(a.data)||0,n=a.children,r=n&&n.length;--r>=0;)l+=n[r].value;a.value=l})}function ke(t){return this.eachBefore(function(a){a.children&&a.children.sort(t)})}function ze(t){for(var a=this,l=De(a,t),n=[a];a!==l;)a=a.parent,n.push(a);for(var r=n.length;t!==l;)n.splice(r,0,t),t=t.parent;return n}function De(t,a){if(t===a)return t;var l=t.ancestors(),n=a.ancestors(),r=null;for(t=l.pop(),a=n.pop();t===a;)r=t,t=l.pop(),a=n.pop();return r}function Pe(){for(var t=this,a=[t];t=t.parent;)a.push(t);return a}function Be(){return Array.from(this)}function Ee(){var t=[];return this.eachBefore(function(a){a.children||t.push(a)}),t}function Re(){var t=this,a=[];return t.each(function(l){l!==t&&a.push({source:l.parent,target:l})}),a}function*We(){var t=this,a,l=[t],n,r,s;do for(a=l.reverse(),l=[];t=a.pop();)if(yield t,n=t.children)for(r=0,s=n.length;r<s;++r)l.push(n[r]);while(l.length)}function te(t,a){t instanceof Map?(t=[void 0,t],a===void 0&&(a=Oe)):a===void 0&&(a=Ie);for(var l=new U(t),n,r=[l],s,d,h,g;n=r.pop();)if((d=a(n.data))&&(g=(d=Array.from(d)).length))for(n.children=d,h=g-1;h>=0;--h)r.push(s=d[h]=new U(d[h])),s.parent=n,s.depth=n.depth+1;return l.eachBefore(qe)}function He(){return te(this).eachBefore(Ge)}function Ie(t){return t.children}function Oe(t){return Array.isArray(t)?t[1]:null}function Ge(t){t.data.value!==void 0&&(t.value=t.data.value),t.data=t.data.data}function qe(t){var a=0;do t.height=a;while((t=t.parent)&&t.height<++a)}function U(t){this.data=t,this.depth=this.height=0,this.parent=null}U.prototype=te.prototype={constructor:U,count:Ae,each:Fe,eachAfter:Me,eachBefore:Ne,find:Ve,sum:_e,sort:ke,path:ze,ancestors:Pe,descendants:Be,leaves:Ee,links:Re,copy:He,[Symbol.iterator]:We};function Xe(t){if(typeof t!="function")throw new Error;return t}function G(){return 0}function q(t){return function(){return t}}function Ye(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function je(t,a,l,n,r){for(var s=t.children,d,h=-1,g=s.length,c=t.value&&(n-a)/t.value;++h<g;)d=s[h],d.y0=l,d.y1=r,d.x0=a,d.x1=a+=d.value*c}function Ue(t,a,l,n,r){for(var s=t.children,d,h=-1,g=s.length,c=t.value&&(r-l)/t.value;++h<g;)d=s[h],d.x0=a,d.x1=n,d.y0=l,d.y1=l+=d.value*c}var Ze=(1+Math.sqrt(5))/2;function Je(t,a,l,n,r,s){for(var d=[],h=a.children,g,c,u=0,b=0,i=h.length,x,S,v=a.value,p,m,M,N,z,R,V;u<i;){x=r-l,S=s-n;do p=h[b++].value;while(!p&&b<i);for(m=M=p,R=Math.max(S/x,x/S)/(v*t),V=p*p*R,z=Math.max(M/V,V/m);b<i;++b){if(p+=c=h[b].value,c<m&&(m=c),c>M&&(M=c),V=p*p*R,N=Math.max(M/V,V/m),N>z){p-=c;break}z=N}d.push(g={value:p,dice:x<S,children:h.slice(u,b)}),g.dice?je(g,l,n,r,v?n+=S*p/v:s):Ue(g,l,n,v?l+=x*p/v:r,s),v-=p,u=b}return d}const Ke=function t(a){function l(n,r,s,d,h){Je(a,n,r,s,d,h)}return l.ratio=function(n){return t((n=+n)>1?n:1)},l}(Ze);function Qe(){var t=Ke,a=!1,l=1,n=1,r=[0],s=G,d=G,h=G,g=G,c=G;function u(i){return i.x0=i.y0=0,i.x1=l,i.y1=n,i.eachBefore(b),r=[0],a&&i.eachBefore(Ye),i}function b(i){var x=r[i.depth],S=i.x0+x,v=i.y0+x,p=i.x1-x,m=i.y1-x;p<S&&(S=p=(S+p)/2),m<v&&(v=m=(v+m)/2),i.x0=S,i.y0=v,i.x1=p,i.y1=m,i.children&&(x=r[i.depth+1]=s(i)/2,S+=c(i)-x,v+=d(i)-x,p-=h(i)-x,m-=g(i)-x,p<S&&(S=p=(S+p)/2),m<v&&(v=m=(v+m)/2),t(i,S,v,p,m))}return u.round=function(i){return arguments.length?(a=!!i,u):a},u.size=function(i){return arguments.length?(l=+i[0],n=+i[1],u):[l,n]},u.tile=function(i){return arguments.length?(t=Xe(i),u):t},u.padding=function(i){return arguments.length?u.paddingInner(i).paddingOuter(i):u.paddingInner()},u.paddingInner=function(i){return arguments.length?(s=typeof i=="function"?i:q(+i),u):s},u.paddingOuter=function(i){return arguments.length?u.paddingTop(i).paddingRight(i).paddingBottom(i).paddingLeft(i):u.paddingTop()},u.paddingTop=function(i){return arguments.length?(d=typeof i=="function"?i:q(+i),u):d},u.paddingRight=function(i){return arguments.length?(h=typeof i=="function"?i:q(+i),u):h},u.paddingBottom=function(i){return arguments.length?(g=typeof i=="function"?i:q(+i),u):g},u.paddingLeft=function(i){return arguments.length?(c=typeof i=="function"?i:q(+i),u):c},u}var E,ne=(E=class{constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=fe,this.getAccTitle=ge,this.setDiagramTitle=me,this.getDiagramTitle=ye,this.getAccDescription=Se,this.setAccDescription=ve}getNodes(){return this.nodes}getConfig(){const a=xe,l=ee();return K({...a.treemap,...l.treemap??{}})}addNode(a,l){this.nodes.push(a),this.levels.set(a,l),l===0&&(this.outerNodes.push(a),this.root??(this.root=a))}getRoot(){return{name:"",children:this.outerNodes}}addClass(a,l){const n=this.classes.get(a)??{id:a,styles:[],textStyles:[]},r=l.replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");r&&r.forEach(s=>{be(s)&&(n!=null&&n.textStyles?n.textStyles.push(s):n.textStyles=[s]),n!=null&&n.styles?n.styles.push(s):n.styles=[s]}),this.classes.set(a,n)}getClasses(){return this.classes}getStylesForClass(a){var l;return((l=this.classes.get(a))==null?void 0:l.styles)??[]}clear(){we(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}},w(E,"TreeMapDB"),E);function le(t){if(!t.length)return[];const a=[],l=[];return t.forEach(n=>{const r={name:n.name,children:n.type==="Leaf"?void 0:[]};for(r.classSelector=n==null?void 0:n.classSelector,n!=null&&n.cssCompiledStyles&&(r.cssCompiledStyles=n.cssCompiledStyles),n.type==="Leaf"&&n.value!==void 0&&(r.value=n.value);l.length>0&&l[l.length-1].level>=n.level;)l.pop();if(l.length===0)a.push(r);else{const s=l[l.length-1].node;s.children?s.children.push(r):s.children=[r]}n.type!=="Leaf"&&l.push({node:r,level:n.level})}),a}w(le,"buildHierarchy");var et=w((t,a)=>{Te(t,a);const l=[];for(const s of t.TreemapRows??[])s.$type==="ClassDefStatement"&&a.addClass(s.className??"",s.styleText??"");for(const s of t.TreemapRows??[]){const d=s.item;if(!d)continue;const h=s.indent?parseInt(s.indent):0,g=tt(d),c=d.classSelector?a.getStylesForClass(d.classSelector):[],u=c.length>0?c:void 0,b={level:h,name:g,type:d.$type,value:d.value,classSelector:d.classSelector,cssCompiledStyles:u};l.push(b)}const n=le(l),r=w((s,d)=>{for(const h of s)a.addNode(h,d),h.children&&h.children.length>0&&r(h.children,d+1)},"addNodesRecursively");r(n,0)},"populate"),tt=w(t=>t.name?String(t.name):"","getItemName"),re={parser:{yy:void 0},parse:w(async t=>{var a;try{const n=await Le("treemap",t);Q.debug("Treemap AST:",n);const r=(a=re.parser)==null?void 0:a.yy;if(!(r instanceof ne))throw new Error("parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");et(n,r)}catch(l){throw Q.error("Error parsing treemap:",l),l}},"parse")},at=10,B=10,X=25,nt=w((t,a,l,n)=>{const r=n.db,s=r.getConfig(),d=s.padding??at,h=r.getDiagramTitle(),g=r.getRoot(),{themeVariables:c}=ee();if(!g)return;const u=h?30:0,b=ue(a),i=s.nodeWidth?s.nodeWidth*B:960,x=s.nodeHeight?s.nodeHeight*B:500,S=i,v=x+u;b.attr("viewBox",`0 0 ${S} ${v}`),pe(b,v,S,s.useMaxWidth);let p;try{const e=s.valueFormat||",";if(e==="$0,0")p=w(o=>"$"+O(",")(o),"valueFormat");else if(e.startsWith("$")&&e.includes(",")){const o=/\.\d+/.exec(e),f=o?o[0]:"";p=w(C=>"$"+O(","+f)(C),"valueFormat")}else if(e.startsWith("$")){const o=e.substring(1);p=w(f=>"$"+O(o||"")(f),"valueFormat")}else p=O(e)}catch(e){Q.error("Error creating format function:",e),p=O(",")}const m=J().range(["transparent",c.cScale0,c.cScale1,c.cScale2,c.cScale3,c.cScale4,c.cScale5,c.cScale6,c.cScale7,c.cScale8,c.cScale9,c.cScale10,c.cScale11]),M=J().range(["transparent",c.cScalePeer0,c.cScalePeer1,c.cScalePeer2,c.cScalePeer3,c.cScalePeer4,c.cScalePeer5,c.cScalePeer6,c.cScalePeer7,c.cScalePeer8,c.cScalePeer9,c.cScalePeer10,c.cScalePeer11]),N=J().range([c.cScaleLabel0,c.cScaleLabel1,c.cScaleLabel2,c.cScaleLabel3,c.cScaleLabel4,c.cScaleLabel5,c.cScaleLabel6,c.cScaleLabel7,c.cScaleLabel8,c.cScaleLabel9,c.cScaleLabel10,c.cScaleLabel11]);h&&b.append("text").attr("x",S/2).attr("y",u/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(h);const z=b.append("g").attr("transform",`translate(0, ${u})`).attr("class","treemapContainer"),R=te(g).sum(e=>e.value??0).sort((e,o)=>(o.value??0)-(e.value??0)),ae=Qe().size([i,x]).paddingTop(e=>e.children&&e.children.length>0?X+B:0).paddingInner(d).paddingLeft(e=>e.children&&e.children.length>0?B:0).paddingRight(e=>e.children&&e.children.length>0?B:0).paddingBottom(e=>e.children&&e.children.length>0?B:0).round(!0)(R),se=ae.descendants().filter(e=>e.children&&e.children.length>0),W=z.selectAll(".treemapSection").data(se).enter().append("g").attr("class","treemapSection").attr("transform",e=>`translate(${e.x0},${e.y0})`);W.append("rect").attr("width",e=>e.x1-e.x0).attr("height",X).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",e=>e.depth===0?"display: none;":""),W.append("clipPath").attr("id",(e,o)=>`clip-section-${a}-${o}`).append("rect").attr("width",e=>Math.max(0,e.x1-e.x0-12)).attr("height",X),W.append("rect").attr("width",e=>e.x1-e.x0).attr("height",e=>e.y1-e.y0).attr("class",(e,o)=>`treemapSection section${o}`).attr("fill",e=>m(e.data.name)).attr("fill-opacity",.6).attr("stroke",e=>M(e.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",e=>{if(e.depth===0)return"display: none;";const o=P({cssCompiledStyles:e.data.cssCompiledStyles});return o.nodeStyles+";"+o.borderStyles.join(";")}),W.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",X/2).attr("dominant-baseline","middle").text(e=>e.depth===0?"":e.data.name).attr("font-weight","bold").attr("style",e=>{if(e.depth===0)return"display: none;";const o="dominant-baseline: middle; font-size: 12px; fill:"+N(e.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=P({cssCompiledStyles:e.data.cssCompiledStyles});return o+f.labelStyles.replace("color:","fill:")}).each(function(e){if(e.depth===0)return;const o=j(this),f=e.data.name;o.text(f);const C=e.x1-e.x0,$=6;let A;s.showValues!==!1&&e.value?A=C-10-30-10-$:A=C-$-6;const F=Math.max(15,A),y=o.node();if(y.getComputedTextLength()>F){const T="...";let L=f;for(;L.length>0;){if(L=f.substring(0,L.length-1),L.length===0){o.text(T),y.getComputedTextLength()>F&&o.text("");break}if(o.text(L+T),y.getComputedTextLength()<=F)break}}}),s.showValues!==!1&&W.append("text").attr("class","treemapSectionValue").attr("x",e=>e.x1-e.x0-10).attr("y",X/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(e=>e.value?p(e.value):"").attr("font-style","italic").attr("style",e=>{if(e.depth===0)return"display: none;";const o="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+N(e.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",f=P({cssCompiledStyles:e.data.cssCompiledStyles});return o+f.labelStyles.replace("color:","fill:")});const ie=ae.leaves(),Y=z.selectAll(".treemapLeafGroup").data(ie).enter().append("g").attr("class",(e,o)=>`treemapNode treemapLeafGroup leaf${o}${e.data.classSelector?` ${e.data.classSelector}`:""}x`).attr("transform",e=>`translate(${e.x0},${e.y0})`);Y.append("rect").attr("width",e=>e.x1-e.x0).attr("height",e=>e.y1-e.y0).attr("class","treemapLeaf").attr("fill",e=>e.parent?m(e.parent.data.name):m(e.data.name)).attr("style",e=>P({cssCompiledStyles:e.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",e=>e.parent?m(e.parent.data.name):m(e.data.name)).attr("stroke-width",3),Y.append("clipPath").attr("id",(e,o)=>`clip-${a}-${o}`).append("rect").attr("width",e=>Math.max(0,e.x1-e.x0-4)).attr("height",e=>Math.max(0,e.y1-e.y0-4)),Y.append("text").attr("class","treemapLabel").attr("x",e=>(e.x1-e.x0)/2).attr("y",e=>(e.y1-e.y0)/2).attr("style",e=>{const o="text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+N(e.data.name)+";",f=P({cssCompiledStyles:e.data.cssCompiledStyles});return o+f.labelStyles.replace("color:","fill:")}).attr("clip-path",(e,o)=>`url(#clip-${a}-${o})`).text(e=>e.data.name).each(function(e){const o=j(this),f=e.x1-e.x0,C=e.y1-e.y0,$=o.node(),A=4,D=f-2*A,F=C-2*A;if(D<10||F<10){o.style("display","none");return}let y=parseInt(o.style("font-size"),10);const _=8,T=28,L=.6,k=6,H=2;for(;$.getComputedTextLength()>D&&y>_;)y--,o.style("font-size",`${y}px`);let I=Math.max(k,Math.min(T,Math.round(y*L))),Z=y+H+I;for(;Z>F&&y>_&&(y--,I=Math.max(k,Math.min(T,Math.round(y*L))),!(I<k&&y===_));)o.style("font-size",`${y}px`),Z=y+H+I;o.style("font-size",`${y}px`),($.getComputedTextLength()>D||y<_||F<y)&&o.style("display","none")}),s.showValues!==!1&&Y.append("text").attr("class","treemapValue").attr("x",o=>(o.x1-o.x0)/2).attr("y",function(o){return(o.y1-o.y0)/2}).attr("style",o=>{const f="text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+N(o.data.name)+";",C=P({cssCompiledStyles:o.data.cssCompiledStyles});return f+C.labelStyles.replace("color:","fill:")}).attr("clip-path",(o,f)=>`url(#clip-${a}-${f})`).text(o=>o.value?p(o.value):"").each(function(o){const f=j(this),C=this.parentNode;if(!C){f.style("display","none");return}const $=j(C).select(".treemapLabel");if($.empty()||$.style("display")==="none"){f.style("display","none");return}const A=parseFloat($.style("font-size")),D=28,F=.6,y=6,_=2,T=Math.max(y,Math.min(D,Math.round(A*F)));f.style("font-size",`${T}px`);const k=(o.y1-o.y0)/2+A/2+_;f.attr("y",k);const H=o.x1-o.x0,ce=o.y1-o.y0-4,de=H-2*4;f.node().getComputedTextLength()>de||k+T>ce||T<y?f.style("display","none"):f.style("display",null)});const oe=s.diagramPadding??8;Ce(b,oe,"flowchart",(s==null?void 0:s.useMaxWidth)||!1)},"draw"),lt=w(function(t,a){return a.db.getClasses()},"getClasses"),rt={draw:nt,getClasses:lt},st={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelFontSize:"12px",valueFontSize:"10px",titleFontSize:"14px"},it=w(({treemap:t}={})=>{const a=he(),l=ee(),n=K(a,l.themeVariables),r=K(st,t),s=r.titleColor??n.titleColor,d=r.labelColor??n.textColor,h=r.valueColor??n.textColor;return`
|
|
2
|
+
.treemapNode.section {
|
|
3
|
+
stroke: ${r.sectionStrokeColor};
|
|
4
|
+
stroke-width: ${r.sectionStrokeWidth};
|
|
5
|
+
fill: ${r.sectionFillColor};
|
|
6
|
+
}
|
|
7
|
+
.treemapNode.leaf {
|
|
8
|
+
stroke: ${r.leafStrokeColor};
|
|
9
|
+
stroke-width: ${r.leafStrokeWidth};
|
|
10
|
+
fill: ${r.leafFillColor};
|
|
11
|
+
}
|
|
12
|
+
.treemapLabel {
|
|
13
|
+
fill: ${d};
|
|
14
|
+
font-size: ${r.labelFontSize};
|
|
15
|
+
}
|
|
16
|
+
.treemapValue {
|
|
17
|
+
fill: ${h};
|
|
18
|
+
font-size: ${r.valueFontSize};
|
|
19
|
+
}
|
|
20
|
+
.treemapTitle {
|
|
21
|
+
fill: ${s};
|
|
22
|
+
font-size: ${r.titleFontSize};
|
|
23
|
+
}
|
|
24
|
+
`},"getStyles"),ot=it,xt={parser:re,get db(){return new ne},renderer:rt,styles:ot};export{xt as diagram};
|
|
25
|
+
//# sourceMappingURL=diagram-G4DWMVQ6-v97zdUjT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagram-G4DWMVQ6-v97zdUjT.js","sources":["../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/count.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/each.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/find.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/sum.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/sort.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/path.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/descendants.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/leaves.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/links.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/iterator.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/index.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/accessors.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/constant.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/round.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/dice.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/slice.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/squarify.js","../../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/index.js","../../../../node_modules/.pnpm/mermaid@11.14.0/node_modules/mermaid/dist/chunks/mermaid.core/diagram-G4DWMVQ6.mjs"],"sourcesContent":["function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","import {\n selectSvgElement\n} from \"./chunk-426QAEUC.mjs\";\nimport {\n setupViewPortForSVG\n} from \"./chunk-EDXVE4YY.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-X2U36JSP.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-5PVQY5BW.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n getThemeVariables,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ICPOFSXX.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/treemap/db.ts\nvar TreeMapDB = class {\n constructor() {\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"TreeMapDB\");\n }\n getNodes() {\n return this.nodes;\n }\n getConfig() {\n const defaultConfig = defaultConfig_default;\n const userConfig = getConfig();\n return cleanAndMerge({\n ...defaultConfig.treemap,\n ...userConfig.treemap ?? {}\n });\n }\n addNode(node, level) {\n this.nodes.push(node);\n this.levels.set(node, level);\n if (level === 0) {\n this.outerNodes.push(node);\n this.root ??= node;\n }\n }\n getRoot() {\n return { name: \"\", children: this.outerNodes };\n }\n addClass(id, _style) {\n const styleClass = this.classes.get(id) ?? { id, styles: [], textStyles: [] };\n const styles = _style.replace(/\\\\,/g, \"\\xA7\\xA7\\xA7\").replace(/,/g, \";\").replace(/§§§/g, \",\").split(\";\");\n if (styles) {\n styles.forEach((s) => {\n if (isLabelStyle(s)) {\n if (styleClass?.textStyles) {\n styleClass.textStyles.push(s);\n } else {\n styleClass.textStyles = [s];\n }\n }\n if (styleClass?.styles) {\n styleClass.styles.push(s);\n } else {\n styleClass.styles = [s];\n }\n });\n }\n this.classes.set(id, styleClass);\n }\n getClasses() {\n return this.classes;\n }\n getStylesForClass(classSelector) {\n return this.classes.get(classSelector)?.styles ?? [];\n }\n clear() {\n clear();\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.root = void 0;\n }\n};\n\n// src/diagrams/treemap/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/treemap/utils.ts\nfunction buildHierarchy(items) {\n if (!items.length) {\n return [];\n }\n const root = [];\n const stack = [];\n items.forEach((item) => {\n const node = {\n name: item.name,\n children: item.type === \"Leaf\" ? void 0 : []\n };\n node.classSelector = item?.classSelector;\n if (item?.cssCompiledStyles) {\n node.cssCompiledStyles = item.cssCompiledStyles;\n }\n if (item.type === \"Leaf\" && item.value !== void 0) {\n node.value = item.value;\n }\n while (stack.length > 0 && stack[stack.length - 1].level >= item.level) {\n stack.pop();\n }\n if (stack.length === 0) {\n root.push(node);\n } else {\n const parent = stack[stack.length - 1].node;\n if (parent.children) {\n parent.children.push(node);\n } else {\n parent.children = [node];\n }\n }\n if (item.type !== \"Leaf\") {\n stack.push({ node, level: item.level });\n }\n });\n return root;\n}\n__name(buildHierarchy, \"buildHierarchy\");\n\n// src/diagrams/treemap/parser.ts\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n const items = [];\n for (const row of ast.TreemapRows ?? []) {\n if (row.$type === \"ClassDefStatement\") {\n db.addClass(row.className ?? \"\", row.styleText ?? \"\");\n }\n }\n for (const row of ast.TreemapRows ?? []) {\n const item = row.item;\n if (!item) {\n continue;\n }\n const level = row.indent ? parseInt(row.indent) : 0;\n const name = getItemName(item);\n const styles = item.classSelector ? db.getStylesForClass(item.classSelector) : [];\n const cssCompiledStyles = styles.length > 0 ? styles : void 0;\n const itemData = {\n level,\n name,\n type: item.$type,\n value: item.value,\n classSelector: item.classSelector,\n cssCompiledStyles\n };\n items.push(itemData);\n }\n const hierarchyNodes = buildHierarchy(items);\n const addNodesRecursively = /* @__PURE__ */ __name((nodes, level) => {\n for (const node of nodes) {\n db.addNode(node, level);\n if (node.children && node.children.length > 0) {\n addNodesRecursively(node.children, level + 1);\n }\n }\n }, \"addNodesRecursively\");\n addNodesRecursively(hierarchyNodes, 0);\n}, \"populate\");\nvar getItemName = /* @__PURE__ */ __name((item) => {\n return item.name ? String(item.name) : \"\";\n}, \"getItemName\");\nvar parser = {\n // @ts-expect-error - TreeMapDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (text) => {\n try {\n const parseFunc = parse;\n const ast = await parseFunc(\"treemap\", text);\n log.debug(\"Treemap AST:\", ast);\n const db = parser.parser?.yy;\n if (!(db instanceof TreeMapDB)) {\n throw new Error(\n \"parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n populate(ast, db);\n } catch (error) {\n log.error(\"Error parsing treemap:\", error);\n throw error;\n }\n }, \"parse\")\n};\n\n// src/diagrams/treemap/renderer.ts\nimport { scaleOrdinal, treemap, hierarchy, format, select } from \"d3\";\nvar DEFAULT_INNER_PADDING = 10;\nvar SECTION_INNER_PADDING = 10;\nvar SECTION_HEADER_HEIGHT = 25;\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const treemapDb = diagram2.db;\n const config = treemapDb.getConfig();\n const treemapInnerPadding = config.padding ?? DEFAULT_INNER_PADDING;\n const title = treemapDb.getDiagramTitle();\n const root = treemapDb.getRoot();\n const { themeVariables } = getConfig();\n if (!root) {\n return;\n }\n const titleHeight = title ? 30 : 0;\n const svg = selectSvgElement(id);\n const width = config.nodeWidth ? config.nodeWidth * SECTION_INNER_PADDING : 960;\n const height = config.nodeHeight ? config.nodeHeight * SECTION_INNER_PADDING : 500;\n const svgWidth = width;\n const svgHeight = height + titleHeight;\n svg.attr(\"viewBox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n let valueFormat;\n try {\n const formatStr = config.valueFormat || \",\";\n if (formatStr === \"$0,0\") {\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\")(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\") && formatStr.includes(\",\")) {\n const precision = /\\.\\d+/.exec(formatStr);\n const precisionStr = precision ? precision[0] : \"\";\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\" + precisionStr)(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\")) {\n const restOfFormat = formatStr.substring(1);\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(restOfFormat || \"\")(value), \"valueFormat\");\n } else {\n valueFormat = format(formatStr);\n }\n } catch (error) {\n log.error(\"Error creating format function:\", error);\n valueFormat = format(\",\");\n }\n const colorScale = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScale0,\n themeVariables.cScale1,\n themeVariables.cScale2,\n themeVariables.cScale3,\n themeVariables.cScale4,\n themeVariables.cScale5,\n themeVariables.cScale6,\n themeVariables.cScale7,\n themeVariables.cScale8,\n themeVariables.cScale9,\n themeVariables.cScale10,\n themeVariables.cScale11\n ]);\n const colorScalePeer = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScalePeer0,\n themeVariables.cScalePeer1,\n themeVariables.cScalePeer2,\n themeVariables.cScalePeer3,\n themeVariables.cScalePeer4,\n themeVariables.cScalePeer5,\n themeVariables.cScalePeer6,\n themeVariables.cScalePeer7,\n themeVariables.cScalePeer8,\n themeVariables.cScalePeer9,\n themeVariables.cScalePeer10,\n themeVariables.cScalePeer11\n ]);\n const colorScaleLabel = scaleOrdinal().range([\n themeVariables.cScaleLabel0,\n themeVariables.cScaleLabel1,\n themeVariables.cScaleLabel2,\n themeVariables.cScaleLabel3,\n themeVariables.cScaleLabel4,\n themeVariables.cScaleLabel5,\n themeVariables.cScaleLabel6,\n themeVariables.cScaleLabel7,\n themeVariables.cScaleLabel8,\n themeVariables.cScaleLabel9,\n themeVariables.cScaleLabel10,\n themeVariables.cScaleLabel11\n ]);\n if (title) {\n svg.append(\"text\").attr(\"x\", svgWidth / 2).attr(\"y\", titleHeight / 2).attr(\"class\", \"treemapTitle\").attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").text(title);\n }\n const g = svg.append(\"g\").attr(\"transform\", `translate(0, ${titleHeight})`).attr(\"class\", \"treemapContainer\");\n const hierarchyRoot = hierarchy(root).sum((d) => d.value ?? 0).sort((a, b) => (b.value ?? 0) - (a.value ?? 0));\n const treemapLayout = treemap().size([width, height]).paddingTop(\n (d) => d.children && d.children.length > 0 ? SECTION_HEADER_HEIGHT + SECTION_INNER_PADDING : 0\n ).paddingInner(treemapInnerPadding).paddingLeft((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingRight((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingBottom((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).round(true);\n const treemapData = treemapLayout(hierarchyRoot);\n const branchNodes = treemapData.descendants().filter((d) => d.children && d.children.length > 0);\n const sections = g.selectAll(\".treemapSection\").data(branchNodes).enter().append(\"g\").attr(\"class\", \"treemapSection\").attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", SECTION_HEADER_HEIGHT).attr(\"class\", \"treemapSectionHeader\").attr(\"fill\", \"none\").attr(\"fill-opacity\", 0.6).attr(\"stroke-width\", 0.6).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n return \"\";\n });\n sections.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-section-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 12)).attr(\"height\", SECTION_HEADER_HEIGHT);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", (_d, i) => {\n return `treemapSection section${i}`;\n }).attr(\"fill\", (d) => colorScale(d.data.name)).attr(\"fill-opacity\", 0.6).attr(\"stroke\", (d) => colorScalePeer(d.data.name)).attr(\"stroke-width\", 2).attr(\"stroke-opacity\", 0.4).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles + \";\" + styles.borderStyles.join(\";\");\n });\n sections.append(\"text\").attr(\"class\", \"treemapSectionLabel\").attr(\"x\", 6).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"dominant-baseline\", \"middle\").text((d) => d.depth === 0 ? \"\" : d.data.name).attr(\"font-weight\", \"bold\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"dominant-baseline: middle; font-size: 12px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).each(function(d) {\n if (d.depth === 0) {\n return;\n }\n const self = select(this);\n const originalText = d.data.name;\n self.text(originalText);\n const totalHeaderWidth = d.x1 - d.x0;\n const labelXPosition = 6;\n let spaceForTextContent;\n if (config.showValues !== false && d.value) {\n const valueEndsAtXRelative = totalHeaderWidth - 10;\n const estimatedValueTextActualWidth = 30;\n const gapBetweenLabelAndValue = 10;\n const labelMustEndBeforeX = valueEndsAtXRelative - estimatedValueTextActualWidth - gapBetweenLabelAndValue;\n spaceForTextContent = labelMustEndBeforeX - labelXPosition;\n } else {\n const labelOwnRightPadding = 6;\n spaceForTextContent = totalHeaderWidth - labelXPosition - labelOwnRightPadding;\n }\n const minimumWidthToDisplay = 15;\n const actualAvailableWidth = Math.max(minimumWidthToDisplay, spaceForTextContent);\n const textNode = self.node();\n const currentTextContentLength = textNode.getComputedTextLength();\n if (currentTextContentLength > actualAvailableWidth) {\n const ellipsis = \"...\";\n let currentTruncatedText = originalText;\n while (currentTruncatedText.length > 0) {\n currentTruncatedText = originalText.substring(0, currentTruncatedText.length - 1);\n if (currentTruncatedText.length === 0) {\n self.text(ellipsis);\n if (textNode.getComputedTextLength() > actualAvailableWidth) {\n self.text(\"\");\n }\n break;\n }\n self.text(currentTruncatedText + ellipsis);\n if (textNode.getComputedTextLength() <= actualAvailableWidth) {\n break;\n }\n }\n }\n });\n if (config.showValues !== false) {\n sections.append(\"text\").attr(\"class\", \"treemapSectionValue\").attr(\"x\", (d) => d.x1 - d.x0 - 10).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"text-anchor\", \"end\").attr(\"dominant-baseline\", \"middle\").text((d) => d.value ? valueFormat(d.value) : \"\").attr(\"font-style\", \"italic\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n });\n }\n const leafNodes = treemapData.leaves();\n const cell = g.selectAll(\".treemapLeafGroup\").data(leafNodes).enter().append(\"g\").attr(\"class\", (d, i) => {\n return `treemapNode treemapLeafGroup leaf${i}${d.data.classSelector ? ` ${d.data.classSelector}` : \"\"}x`;\n }).attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n cell.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", \"treemapLeaf\").attr(\"fill\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"style\", (d) => {\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles;\n }).attr(\"fill-opacity\", 0.3).attr(\"stroke\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"stroke-width\", 3);\n cell.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 4)).attr(\"height\", (d) => Math.max(0, d.y1 - d.y0 - 4));\n const leafLabels = cell.append(\"text\").attr(\"class\", \"treemapLabel\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", (d) => (d.y1 - d.y0) / 2).attr(\"style\", (d) => {\n const labelStyles = \"text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:\" + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.data.name);\n leafLabels.each(function(d) {\n const self = select(this);\n const nodeWidth = d.x1 - d.x0;\n const nodeHeight = d.y1 - d.y0;\n const textNode = self.node();\n const padding = 4;\n const availableWidth = nodeWidth - 2 * padding;\n const availableHeight = nodeHeight - 2 * padding;\n if (availableWidth < 10 || availableHeight < 10) {\n self.style(\"display\", \"none\");\n return;\n }\n let currentLabelFontSize = parseInt(self.style(\"font-size\"), 10);\n const minLabelFontSize = 8;\n const originalValueRelFontSize = 28;\n const valueScaleFactor = 0.6;\n const minValueFontSize = 6;\n const spacingBetweenLabelAndValue = 2;\n while (textNode.getComputedTextLength() > availableWidth && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n }\n let prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n let combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n while (combinedHeight > availableHeight && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n if (prospectiveValueFontSize < minValueFontSize && currentLabelFontSize === minLabelFontSize) {\n break;\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n if (prospectiveValueFontSize <= minValueFontSize && combinedHeight > availableHeight) {\n }\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n if (textNode.getComputedTextLength() > availableWidth || currentLabelFontSize < minLabelFontSize || availableHeight < currentLabelFontSize) {\n self.style(\"display\", \"none\");\n }\n });\n if (config.showValues !== false) {\n const leafValues = cell.append(\"text\").attr(\"class\", \"treemapValue\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", function(d) {\n return (d.y1 - d.y0) / 2;\n }).attr(\"style\", (d) => {\n const labelStyles = \"text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:\" + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.value ? valueFormat(d.value) : \"\");\n leafValues.each(function(d) {\n const valueTextElement = select(this);\n const parentCellNode = this.parentNode;\n if (!parentCellNode) {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const labelElement = select(parentCellNode).select(\".treemapLabel\");\n if (labelElement.empty() || labelElement.style(\"display\") === \"none\") {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const finalLabelFontSize = parseFloat(labelElement.style(\"font-size\"));\n const originalValueFontSize = 28;\n const valueScaleFactor = 0.6;\n const minValueFontSize = 6;\n const spacingBetweenLabelAndValue = 2;\n const actualValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueFontSize, Math.round(finalLabelFontSize * valueScaleFactor))\n );\n valueTextElement.style(\"font-size\", `${actualValueFontSize}px`);\n const labelCenterY = (d.y1 - d.y0) / 2;\n const valueTopActualY = labelCenterY + finalLabelFontSize / 2 + spacingBetweenLabelAndValue;\n valueTextElement.attr(\"y\", valueTopActualY);\n const nodeWidth = d.x1 - d.x0;\n const nodeTotalHeight = d.y1 - d.y0;\n const cellBottomPadding = 4;\n const maxValueBottomY = nodeTotalHeight - cellBottomPadding;\n const availableWidthForValue = nodeWidth - 2 * 4;\n if (valueTextElement.node().getComputedTextLength() > availableWidthForValue || valueTopActualY + actualValueFontSize > maxValueBottomY || actualValueFontSize < minValueFontSize) {\n valueTextElement.style(\"display\", \"none\");\n } else {\n valueTextElement.style(\"display\", null);\n }\n });\n }\n const diagramPadding = config.diagramPadding ?? 8;\n setupViewPortForSVG(svg, diagramPadding, \"flowchart\", config?.useMaxWidth || false);\n}, \"draw\");\nvar getClasses = /* @__PURE__ */ __name(function(_text, diagramObj) {\n return diagramObj.db.getClasses();\n}, \"getClasses\");\nvar renderer = { draw, getClasses };\n\n// src/diagrams/treemap/styles.ts\nvar defaultTreemapStyleOptions = {\n sectionStrokeColor: \"black\",\n sectionStrokeWidth: \"1\",\n sectionFillColor: \"#efefef\",\n leafStrokeColor: \"black\",\n leafStrokeWidth: \"1\",\n leafFillColor: \"#efefef\",\n labelFontSize: \"12px\",\n valueFontSize: \"10px\",\n titleFontSize: \"14px\"\n};\nvar getStyles = /* @__PURE__ */ __name(({\n treemap: treemap2\n} = {}) => {\n const defaultThemeVariables = getThemeVariables();\n const currentConfig = getConfig();\n const themeVariables = cleanAndMerge(defaultThemeVariables, currentConfig.themeVariables);\n const options = cleanAndMerge(defaultTreemapStyleOptions, treemap2);\n const titleColor = options.titleColor ?? themeVariables.titleColor;\n const labelColor = options.labelColor ?? themeVariables.textColor;\n const valueColor = options.valueColor ?? themeVariables.textColor;\n return `\n .treemapNode.section {\n stroke: ${options.sectionStrokeColor};\n stroke-width: ${options.sectionStrokeWidth};\n fill: ${options.sectionFillColor};\n }\n .treemapNode.leaf {\n stroke: ${options.leafStrokeColor};\n stroke-width: ${options.leafStrokeWidth};\n fill: ${options.leafFillColor};\n }\n .treemapLabel {\n fill: ${labelColor};\n font-size: ${options.labelFontSize};\n }\n .treemapValue {\n fill: ${valueColor};\n font-size: ${options.valueFontSize};\n }\n .treemapTitle {\n fill: ${titleColor};\n font-size: ${options.titleFontSize};\n }\n `;\n}, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/treemap/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new TreeMapDB();\n },\n renderer,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["count","node","sum","children","i","node_count","node_each","callback","that","index","node_eachBefore","nodes","node_eachAfter","next","n","node_find","node_sum","value","node_sort","compare","node_path","end","start","ancestor","leastCommonAncestor","k","a","b","aNodes","bNodes","c","node_ancestors","node_descendants","node_leaves","leaves","node_links","root","links","node_iterator","current","hierarchy","data","mapChildren","objectChildren","Node","child","childs","computeHeight","node_copy","copyData","d","height","required","f","constantZero","constant","x","roundNode","treemapDice","parent","x0","y0","x1","y1","treemapSlice","phi","squarifyRatio","ratio","rows","row","nodeValue","i0","i1","dx","dy","sumValue","minValue","maxValue","newRatio","minRatio","alpha","beta","squarify","custom","treemap","tile","round","paddingStack","paddingInner","paddingTop","paddingRight","paddingBottom","paddingLeft","positionNode","p","TreeMapDB","_a","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","getAccDescription","setAccDescription","defaultConfig","defaultConfig_default","userConfig","getConfig","cleanAndMerge","level","id","_style","styleClass","styles","isLabelStyle","classSelector","clear","__name","buildHierarchy","items","stack","item","populate","ast","db","populateCommonDb","name","getItemName","cssCompiledStyles","itemData","hierarchyNodes","addNodesRecursively","parser","text","parse","log","error","DEFAULT_INNER_PADDING","SECTION_INNER_PADDING","SECTION_HEADER_HEIGHT","draw","_text","_version","diagram2","treemapDb","config","treemapInnerPadding","title","themeVariables","titleHeight","svg","selectSvgElement","width","svgWidth","svgHeight","configureSvgSize","valueFormat","formatStr","format","precision","precisionStr","restOfFormat","colorScale","scaleOrdinal","colorScalePeer","colorScaleLabel","g","hierarchyRoot","treemapData","branchNodes","sections","_d","styles2String","labelStyles","self","select","originalText","totalHeaderWidth","labelXPosition","spaceForTextContent","actualAvailableWidth","textNode","ellipsis","currentTruncatedText","leafNodes","cell","nodeWidth","nodeHeight","padding","availableWidth","availableHeight","currentLabelFontSize","minLabelFontSize","originalValueRelFontSize","valueScaleFactor","minValueFontSize","spacingBetweenLabelAndValue","prospectiveValueFontSize","combinedHeight","valueTextElement","parentCellNode","labelElement","finalLabelFontSize","originalValueFontSize","actualValueFontSize","valueTopActualY","maxValueBottomY","availableWidthForValue","diagramPadding","setupViewPortForSVG","getClasses","diagramObj","renderer","defaultTreemapStyleOptions","getStyles","treemap2","defaultThemeVariables","getThemeVariables","currentConfig","options","titleColor","labelColor","valueColor","styles_default","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import{s as k,g as I,p as R,o as E,a as F,b as _,_ as l,H as D,y as z,E as f,F as G,C,l as P,I as W,d as B}from"./mermaid.core-CFxQTXeR.js";import{p as H}from"./chunk-4BX2VUAB-DdNxSoa7.js";import{p as V}from"./wardley-RL74JXVD-CJqH0Jne.js";import"./index-Dmx3s87Z.js";import"./min-Dl-Y_8tu.js";import"./_baseUniq-okA3yjMF.js";var x={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},w={axes:[],curves:[],options:x},m=structuredClone(w),j=G.radar,N=l(()=>f({...j,...C().radar}),"getConfig"),b=l(()=>m.axes,"getAxes"),U=l(()=>m.curves,"getCurves"),X=l(()=>m.options,"getOptions"),Y=l(a=>{m.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),Z=l(a=>{m.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:q(t.entries)}))},"setCurves"),q=l(a=>{if(a[0].axis==null)return a.map(e=>e.value);const t=b();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(e=>{const r=a.find(s=>{var o;return((o=s.axis)==null?void 0:o.$refText)===e.name});if(r===void 0)throw new Error("Missing entry for axis "+e.label);return r.value})},"computeCurveEntries"),J=l(a=>{var e,r,s,o,i;const t=a.reduce((n,c)=>(n[c.name]=c,n),{});m.options={showLegend:((e=t.showLegend)==null?void 0:e.value)??x.showLegend,ticks:((r=t.ticks)==null?void 0:r.value)??x.ticks,max:((s=t.max)==null?void 0:s.value)??x.max,min:((o=t.min)==null?void 0:o.value)??x.min,graticule:((i=t.graticule)==null?void 0:i.value)??x.graticule}},"setOptions"),K=l(()=>{z(),m=structuredClone(w)},"clear"),$={getAxes:b,getCurves:U,getOptions:X,setAxes:Y,setCurves:Z,setOptions:J,getConfig:N,clear:K,setAccTitle:_,getAccTitle:F,setDiagramTitle:E,getDiagramTitle:R,getAccDescription:I,setAccDescription:k},Q=l(a=>{H(a,$);const{axes:t,curves:e,options:r}=a;$.setAxes(t),$.setCurves(e),$.setOptions(r)},"populate"),tt={parse:l(async a=>{const t=await V("radar",a);P.debug(t),Q(t)},"parse")},et=l((a,t,e,r)=>{const s=r.db,o=s.getAxes(),i=s.getCurves(),n=s.getOptions(),c=s.getConfig(),d=s.getDiagramTitle(),p=D(t),u=at(p,c),g=n.max??Math.max(...i.map(y=>Math.max(...y.entries))),h=n.min,v=Math.min(c.width,c.height)/2;rt(u,o,v,n.ticks,n.graticule),st(u,o,v,c),M(u,o,i,h,g,n.graticule,c),T(u,i,n.showLegend,c),u.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),at=l((a,t)=>{const e=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,s={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return B(a,r,e,t.useMaxWidth??!0),a.attr("viewBox",`0 0 ${e} ${r}`),a.append("g").attr("transform",`translate(${s.x}, ${s.y})`)},"drawFrame"),rt=l((a,t,e,r,s)=>{if(s==="circle")for(let o=0;o<r;o++){const i=e*(o+1)/r;a.append("circle").attr("r",i).attr("class","radarGraticule")}else if(s==="polygon"){const o=t.length;for(let i=0;i<r;i++){const n=e*(i+1)/r,c=t.map((d,p)=>{const u=2*p*Math.PI/o-Math.PI/2,g=n*Math.cos(u),h=n*Math.sin(u);return`${g},${h}`}).join(" ");a.append("polygon").attr("points",c).attr("class","radarGraticule")}}},"drawGraticule"),st=l((a,t,e,r)=>{const s=t.length;for(let o=0;o<s;o++){const i=t[o].label,n=2*o*Math.PI/s-Math.PI/2;a.append("line").attr("x1",0).attr("y1",0).attr("x2",e*r.axisScaleFactor*Math.cos(n)).attr("y2",e*r.axisScaleFactor*Math.sin(n)).attr("class","radarAxisLine"),a.append("text").text(i).attr("x",e*r.axisLabelFactor*Math.cos(n)).attr("y",e*r.axisLabelFactor*Math.sin(n)).attr("class","radarAxisLabel")}},"drawAxes");function M(a,t,e,r,s,o,i){const n=t.length,c=Math.min(i.width,i.height)/2;e.forEach((d,p)=>{if(d.entries.length!==n)return;const u=d.entries.map((g,h)=>{const v=2*Math.PI*h/n-Math.PI/2,y=A(g,r,s,c),S=y*Math.cos(v),O=y*Math.sin(v);return{x:S,y:O}});o==="circle"?a.append("path").attr("d",L(u,i.curveTension)).attr("class",`radarCurve-${p}`):o==="polygon"&&a.append("polygon").attr("points",u.map(g=>`${g.x},${g.y}`).join(" ")).attr("class",`radarCurve-${p}`)})}l(M,"drawCurves");function A(a,t,e,r){const s=Math.min(Math.max(a,t),e);return r*(s-t)/(e-t)}l(A,"relativeRadius");function L(a,t){const e=a.length;let r=`M${a[0].x},${a[0].y}`;for(let s=0;s<e;s++){const o=a[(s-1+e)%e],i=a[s],n=a[(s+1)%e],c=a[(s+2)%e],d={x:i.x+(n.x-o.x)*t,y:i.y+(n.y-o.y)*t},p={x:n.x-(c.x-i.x)*t,y:n.y-(c.y-i.y)*t};r+=` C${d.x},${d.y} ${p.x},${p.y} ${n.x},${n.y}`}return`${r} Z`}l(L,"closedRoundCurve");function T(a,t,e,r){if(!e)return;const s=(r.width/2+r.marginRight)*3/4,o=-(r.height/2+r.marginTop)*3/4,i=20;t.forEach((n,c)=>{const d=a.append("g").attr("transform",`translate(${s}, ${o+c*i})`);d.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${c}`),d.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(n.label)})}l(T,"drawLegend");var nt={draw:et},ot=l((a,t)=>{let e="";for(let r=0;r<a.THEME_COLOR_LIMIT;r++){const s=a[`cScale${r}`];e+=`
|
|
2
|
+
.radarCurve-${r} {
|
|
3
|
+
color: ${s};
|
|
4
|
+
fill: ${s};
|
|
5
|
+
fill-opacity: ${t.curveOpacity};
|
|
6
|
+
stroke: ${s};
|
|
7
|
+
stroke-width: ${t.curveStrokeWidth};
|
|
8
|
+
}
|
|
9
|
+
.radarLegendBox-${r} {
|
|
10
|
+
fill: ${s};
|
|
11
|
+
fill-opacity: ${t.curveOpacity};
|
|
12
|
+
stroke: ${s};
|
|
13
|
+
}
|
|
14
|
+
`}return e},"genIndexStyles"),it=l(a=>{const t=W(),e=C(),r=f(t,e.themeVariables),s=f(r.radar,a);return{themeVariables:r,radarOptions:s}},"buildRadarStyleOptions"),lt=l(({radar:a}={})=>{const{themeVariables:t,radarOptions:e}=it(a);return`
|
|
15
|
+
.radarTitle {
|
|
16
|
+
font-size: ${t.fontSize};
|
|
17
|
+
color: ${t.titleColor};
|
|
18
|
+
dominant-baseline: hanging;
|
|
19
|
+
text-anchor: middle;
|
|
20
|
+
}
|
|
21
|
+
.radarAxisLine {
|
|
22
|
+
stroke: ${e.axisColor};
|
|
23
|
+
stroke-width: ${e.axisStrokeWidth};
|
|
24
|
+
}
|
|
25
|
+
.radarAxisLabel {
|
|
26
|
+
dominant-baseline: middle;
|
|
27
|
+
text-anchor: middle;
|
|
28
|
+
font-size: ${e.axisLabelFontSize}px;
|
|
29
|
+
color: ${e.axisColor};
|
|
30
|
+
}
|
|
31
|
+
.radarGraticule {
|
|
32
|
+
fill: ${e.graticuleColor};
|
|
33
|
+
fill-opacity: ${e.graticuleOpacity};
|
|
34
|
+
stroke: ${e.graticuleColor};
|
|
35
|
+
stroke-width: ${e.graticuleStrokeWidth};
|
|
36
|
+
}
|
|
37
|
+
.radarLegendText {
|
|
38
|
+
text-anchor: start;
|
|
39
|
+
font-size: ${e.legendFontSize}px;
|
|
40
|
+
dominant-baseline: hanging;
|
|
41
|
+
}
|
|
42
|
+
${ot(t,e)}
|
|
43
|
+
`},"styles"),xt={parser:tt,db:$,renderer:nt,styles:lt};export{xt as diagram};
|
|
44
|
+
//# sourceMappingURL=diagram-MMDJMWI5-BpSFjs5q.js.map
|