@elizaos/client 1.6.3-alpha.9 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/assets/{_basePickBy-D1VwWj4y.js → _basePickBy-CF7u0JoM.js} +2 -2
  2. package/dist/assets/{_basePickBy-D1VwWj4y.js.map → _basePickBy-CF7u0JoM.js.map} +1 -1
  3. package/dist/assets/{_baseUniq-BqneJ7vC.js → _baseUniq-C01nKZPU.js} +2 -2
  4. package/dist/assets/{_baseUniq-BqneJ7vC.js.map → _baseUniq-C01nKZPU.js.map} +1 -1
  5. package/dist/assets/{arc-B41HBJYw.js → arc-CvfPh49h.js} +2 -2
  6. package/dist/assets/{arc-B41HBJYw.js.map → arc-CvfPh49h.js.map} +1 -1
  7. package/dist/assets/{architectureDiagram-VXUJARFQ-DTblZJPk.js → architectureDiagram-VXUJARFQ-Cx-DJdd9.js} +2 -2
  8. package/dist/assets/{architectureDiagram-VXUJARFQ-DTblZJPk.js.map → architectureDiagram-VXUJARFQ-Cx-DJdd9.js.map} +1 -1
  9. package/dist/assets/{blockDiagram-VD42YOAC-BMM1ENpW.js → blockDiagram-VD42YOAC-CjZi8L8b.js} +2 -2
  10. package/dist/assets/{blockDiagram-VD42YOAC-BMM1ENpW.js.map → blockDiagram-VD42YOAC-CjZi8L8b.js.map} +1 -1
  11. package/dist/assets/{c4Diagram-YG6GDRKO-0_tm3K4y.js → c4Diagram-YG6GDRKO-C7VSQCDP.js} +2 -2
  12. package/dist/assets/{c4Diagram-YG6GDRKO-0_tm3K4y.js.map → c4Diagram-YG6GDRKO-C7VSQCDP.js.map} +1 -1
  13. package/dist/assets/{channel-CzviH7wi.js → channel-jS3fITDG.js} +2 -2
  14. package/dist/assets/{channel-CzviH7wi.js.map → channel-jS3fITDG.js.map} +1 -1
  15. package/dist/assets/{chunk-4BX2VUAB-BdiEiQKw.js → chunk-4BX2VUAB-BzqE3lym.js} +2 -2
  16. package/dist/assets/{chunk-4BX2VUAB-BdiEiQKw.js.map → chunk-4BX2VUAB-BzqE3lym.js.map} +1 -1
  17. package/dist/assets/{chunk-55IACEB6-o-GxTW9D.js → chunk-55IACEB6-DxGUJrft.js} +2 -2
  18. package/dist/assets/{chunk-55IACEB6-o-GxTW9D.js.map → chunk-55IACEB6-DxGUJrft.js.map} +1 -1
  19. package/dist/assets/{chunk-B4BG7PRW-qIW-HouX.js → chunk-B4BG7PRW-8qRdtArO.js} +2 -2
  20. package/dist/assets/{chunk-B4BG7PRW-qIW-HouX.js.map → chunk-B4BG7PRW-8qRdtArO.js.map} +1 -1
  21. package/dist/assets/{chunk-DI55MBZ5-CUalBYtH.js → chunk-DI55MBZ5-Ux1QOzUy.js} +2 -2
  22. package/dist/assets/{chunk-DI55MBZ5-CUalBYtH.js.map → chunk-DI55MBZ5-Ux1QOzUy.js.map} +1 -1
  23. package/dist/assets/{chunk-FMBD7UC4-DvTLIOqx.js → chunk-FMBD7UC4-CuR8eQbP.js} +2 -2
  24. package/dist/assets/{chunk-FMBD7UC4-DvTLIOqx.js.map → chunk-FMBD7UC4-CuR8eQbP.js.map} +1 -1
  25. package/dist/assets/{chunk-QN33PNHL-IzRCZEG_.js → chunk-QN33PNHL-B8CCHcFQ.js} +2 -2
  26. package/dist/assets/{chunk-QN33PNHL-IzRCZEG_.js.map → chunk-QN33PNHL-B8CCHcFQ.js.map} +1 -1
  27. package/dist/assets/{chunk-QZHKN3VN-Ce2AFs__.js → chunk-QZHKN3VN-59ReDUUS.js} +2 -2
  28. package/dist/assets/{chunk-QZHKN3VN-Ce2AFs__.js.map → chunk-QZHKN3VN-59ReDUUS.js.map} +1 -1
  29. package/dist/assets/{chunk-TZMSLE5B-BJW4UVSc.js → chunk-TZMSLE5B-yB8S-MoI.js} +2 -2
  30. package/dist/assets/{chunk-TZMSLE5B-BJW4UVSc.js.map → chunk-TZMSLE5B-yB8S-MoI.js.map} +1 -1
  31. package/dist/assets/classDiagram-2ON5EDUG-CX-ma-72.js +2 -0
  32. package/dist/assets/{classDiagram-2ON5EDUG-B0ASNnbX.js.map → classDiagram-2ON5EDUG-CX-ma-72.js.map} +1 -1
  33. package/dist/assets/classDiagram-v2-WZHVMYZB-CX-ma-72.js +2 -0
  34. package/dist/assets/{classDiagram-v2-WZHVMYZB-B0ASNnbX.js.map → classDiagram-v2-WZHVMYZB-CX-ma-72.js.map} +1 -1
  35. package/dist/assets/{clone-DuI60JlF.js → clone-B1cS_P1m.js} +2 -2
  36. package/dist/assets/{clone-DuI60JlF.js.map → clone-B1cS_P1m.js.map} +1 -1
  37. package/dist/assets/{cose-bilkent-S5V4N54A-BFURzd3k.js → cose-bilkent-S5V4N54A-WaA6My8T.js} +2 -2
  38. package/dist/assets/{cose-bilkent-S5V4N54A-BFURzd3k.js.map → cose-bilkent-S5V4N54A-WaA6My8T.js.map} +1 -1
  39. package/dist/assets/{dagre-6UL2VRFP-2NloE4Yi.js → dagre-6UL2VRFP-WTXafpU6.js} +2 -2
  40. package/dist/assets/{dagre-6UL2VRFP-2NloE4Yi.js.map → dagre-6UL2VRFP-WTXafpU6.js.map} +1 -1
  41. package/dist/assets/{diagram-PSM6KHXK-7x7Qnd4X.js → diagram-PSM6KHXK-CoH6fjzQ.js} +2 -2
  42. package/dist/assets/{diagram-PSM6KHXK-7x7Qnd4X.js.map → diagram-PSM6KHXK-CoH6fjzQ.js.map} +1 -1
  43. package/dist/assets/{diagram-QEK2KX5R-B0NXXuOV.js → diagram-QEK2KX5R-Oljv-_39.js} +2 -2
  44. package/dist/assets/{diagram-QEK2KX5R-B0NXXuOV.js.map → diagram-QEK2KX5R-Oljv-_39.js.map} +1 -1
  45. package/dist/assets/{diagram-S2PKOQOG-a74j2Pdd.js → diagram-S2PKOQOG-Gg4hR71b.js} +2 -2
  46. package/dist/assets/{diagram-S2PKOQOG-a74j2Pdd.js.map → diagram-S2PKOQOG-Gg4hR71b.js.map} +1 -1
  47. package/dist/assets/{erDiagram-Q2GNP2WA-k-KyHPId.js → erDiagram-Q2GNP2WA-DB7tjULu.js} +2 -2
  48. package/dist/assets/{erDiagram-Q2GNP2WA-k-KyHPId.js.map → erDiagram-Q2GNP2WA-DB7tjULu.js.map} +1 -1
  49. package/dist/assets/{flowDiagram-NV44I4VS-Dl-K34yG.js → flowDiagram-NV44I4VS-DzT5xRq3.js} +2 -2
  50. package/dist/assets/{flowDiagram-NV44I4VS-Dl-K34yG.js.map → flowDiagram-NV44I4VS-DzT5xRq3.js.map} +1 -1
  51. package/dist/assets/{ganttDiagram-LVOFAZNH-B6eaVPpp.js → ganttDiagram-LVOFAZNH-D2NBbgM6.js} +2 -2
  52. package/dist/assets/{ganttDiagram-LVOFAZNH-B6eaVPpp.js.map → ganttDiagram-LVOFAZNH-D2NBbgM6.js.map} +1 -1
  53. package/dist/assets/{gitGraphDiagram-NY62KEGX-BdOMe-oh.js → gitGraphDiagram-NY62KEGX-BzXJHLw9.js} +2 -2
  54. package/dist/assets/{gitGraphDiagram-NY62KEGX-BdOMe-oh.js.map → gitGraphDiagram-NY62KEGX-BzXJHLw9.js.map} +1 -1
  55. package/dist/assets/{graph-BCeOLFp6.js → graph-DNJkdAax.js} +2 -2
  56. package/dist/assets/{graph-BCeOLFp6.js.map → graph-DNJkdAax.js.map} +1 -1
  57. package/dist/assets/{infoDiagram-F6ZHWCRC-DLB1jYji.js → infoDiagram-F6ZHWCRC-Bt1j9OBZ.js} +2 -2
  58. package/dist/assets/{infoDiagram-F6ZHWCRC-DLB1jYji.js.map → infoDiagram-F6ZHWCRC-Bt1j9OBZ.js.map} +1 -1
  59. package/dist/assets/{journeyDiagram-XKPGCS4Q-CEkRszjc.js → journeyDiagram-XKPGCS4Q-CpBwKMO2.js} +2 -2
  60. package/dist/assets/{journeyDiagram-XKPGCS4Q-CEkRszjc.js.map → journeyDiagram-XKPGCS4Q-CpBwKMO2.js.map} +1 -1
  61. package/dist/assets/{kanban-definition-3W4ZIXB7-DvGzdmFz.js → kanban-definition-3W4ZIXB7-BM-_9-8C.js} +2 -2
  62. package/dist/assets/{kanban-definition-3W4ZIXB7-DvGzdmFz.js.map → kanban-definition-3W4ZIXB7-BM-_9-8C.js.map} +1 -1
  63. package/dist/assets/{layout-DqFGgFXM.js → layout-C9Bg2dBa.js} +2 -2
  64. package/dist/assets/{layout-DqFGgFXM.js.map → layout-C9Bg2dBa.js.map} +1 -1
  65. package/dist/assets/{linear-oKTGuyqU.js → linear-BTJsW5AR.js} +2 -2
  66. package/dist/assets/{linear-oKTGuyqU.js.map → linear-BTJsW5AR.js.map} +1 -1
  67. package/dist/assets/{main-B_rmFN-P.css → main-BGaTIf-Q.css} +1 -1
  68. package/dist/assets/{main-Chbvf6JP.js → main-BaebWasr.js} +4 -4
  69. package/dist/assets/{main-Chbvf6JP.js.map → main-BaebWasr.js.map} +1 -1
  70. package/dist/assets/{main-C81Et7oP.js → main-CWkZDH4r.js} +3 -3
  71. package/dist/assets/{main-C81Et7oP.js.map → main-CWkZDH4r.js.map} +1 -1
  72. package/dist/assets/{mermaid.core-rWg6JcoC.js → mermaid.core-BymI4HJS.js} +6 -6
  73. package/dist/assets/{mermaid.core-rWg6JcoC.js.map → mermaid.core-BymI4HJS.js.map} +1 -1
  74. package/dist/assets/{mindmap-definition-VGOIOE7T-CHrK3W4B.js → mindmap-definition-VGOIOE7T-CLTEnp2P.js} +2 -2
  75. package/dist/assets/{mindmap-definition-VGOIOE7T-CHrK3W4B.js.map → mindmap-definition-VGOIOE7T-CLTEnp2P.js.map} +1 -1
  76. package/dist/assets/{pieDiagram-ADFJNKIX-BL-nn_b4.js → pieDiagram-ADFJNKIX-Bw0donk2.js} +2 -2
  77. package/dist/assets/{pieDiagram-ADFJNKIX-BL-nn_b4.js.map → pieDiagram-ADFJNKIX-Bw0donk2.js.map} +1 -1
  78. package/dist/assets/{quadrantDiagram-AYHSOK5B-Cxy4jxbg.js → quadrantDiagram-AYHSOK5B-Cm8mUfGa.js} +2 -2
  79. package/dist/assets/{quadrantDiagram-AYHSOK5B-Cxy4jxbg.js.map → quadrantDiagram-AYHSOK5B-Cm8mUfGa.js.map} +1 -1
  80. package/dist/assets/{requirementDiagram-UZGBJVZJ-Cza4HxEz.js → requirementDiagram-UZGBJVZJ-C_f1ywi-.js} +2 -2
  81. package/dist/assets/{requirementDiagram-UZGBJVZJ-Cza4HxEz.js.map → requirementDiagram-UZGBJVZJ-C_f1ywi-.js.map} +1 -1
  82. package/dist/assets/{sankeyDiagram-TZEHDZUN-qwIj1xsG.js → sankeyDiagram-TZEHDZUN-DTNFZCdJ.js} +2 -2
  83. package/dist/assets/{sankeyDiagram-TZEHDZUN-qwIj1xsG.js.map → sankeyDiagram-TZEHDZUN-DTNFZCdJ.js.map} +1 -1
  84. package/dist/assets/{sequenceDiagram-WL72ISMW-C9_twmEc.js → sequenceDiagram-WL72ISMW-TGqxh1eL.js} +2 -2
  85. package/dist/assets/{sequenceDiagram-WL72ISMW-C9_twmEc.js.map → sequenceDiagram-WL72ISMW-TGqxh1eL.js.map} +1 -1
  86. package/dist/assets/{stateDiagram-FKZM4ZOC-B33VNknZ.js → stateDiagram-FKZM4ZOC-BI4QdIXS.js} +2 -2
  87. package/dist/assets/{stateDiagram-FKZM4ZOC-B33VNknZ.js.map → stateDiagram-FKZM4ZOC-BI4QdIXS.js.map} +1 -1
  88. package/dist/assets/stateDiagram-v2-4FDKWEC3-DSN57ySy.js +2 -0
  89. package/dist/assets/{stateDiagram-v2-4FDKWEC3-DOXH6dJF.js.map → stateDiagram-v2-4FDKWEC3-DSN57ySy.js.map} +1 -1
  90. package/dist/assets/{timeline-definition-IT6M3QCI-BU2GcjD5.js → timeline-definition-IT6M3QCI-PXMMkiNk.js} +2 -2
  91. package/dist/assets/{timeline-definition-IT6M3QCI-BU2GcjD5.js.map → timeline-definition-IT6M3QCI-PXMMkiNk.js.map} +1 -1
  92. package/dist/assets/{treemap-KMMF4GRG-C2Sf7oH-.js → treemap-KMMF4GRG-DZ3dLkt9.js} +2 -2
  93. package/dist/assets/{treemap-KMMF4GRG-C2Sf7oH-.js.map → treemap-KMMF4GRG-DZ3dLkt9.js.map} +1 -1
  94. package/dist/assets/{xychartDiagram-PRI3JC2R-CJQGMN6m.js → xychartDiagram-PRI3JC2R-DQlXFKme.js} +2 -2
  95. package/dist/assets/{xychartDiagram-PRI3JC2R-CJQGMN6m.js.map → xychartDiagram-PRI3JC2R-DQlXFKme.js.map} +1 -1
  96. package/dist/index.html +1 -1
  97. package/package.json +4 -4
  98. package/src/components/ai-elements/__tests__/response.test.tsx +157 -158
  99. package/src/components/ai-elements/response.tsx +7 -10
  100. package/src/components/chat.tsx +7 -7
  101. package/src/index.css +1 -1
  102. package/dist/assets/classDiagram-2ON5EDUG-B0ASNnbX.js +0 -2
  103. package/dist/assets/classDiagram-v2-WZHVMYZB-B0ASNnbX.js +0 -2
  104. package/dist/assets/stateDiagram-v2-4FDKWEC3-DOXH6dJF.js +0 -2
@@ -1,5 +1,5 @@
1
- var Y=Object.defineProperty;var D=(e,t)=>Y(e,"name",{value:t,configurable:!0});import{_ as w,aw as _,ax as H,ay as V,az as z,l as i,c as U,aA as $,aB as q,ai as K,an as Q,aj as k,ah as W,aC as Z,aD as I,aE as L}from"./mermaid.core-rWg6JcoC.js";import{G as A}from"./graph-BCeOLFp6.js";import{l as ee}from"./layout-DqFGgFXM.js";import{i as b}from"./_baseUniq-BqneJ7vC.js";import{c as ne}from"./clone-DuI60JlF.js";import{m as J}from"./_basePickBy-D1VwWj4y.js";import"./main-C81Et7oP.js";import"./main-Chbvf6JP.js";import"./react-vendor-BGrcQn-n.js";import"./ui-vendor-B7JxFfFk.js";function h(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:te(e),edges:se(e)};return b(e.graph())||(t.value=ne(e.graph())),t}D(h,"write");function te(e){return J(e.nodes(),function(t){var n=e.node(t),a=e.parent(t),r={v:t};return b(n)||(r.value=n),b(a)||(r.parent=a),r})}D(te,"writeNodes");function se(e){return J(e.edges(),function(t){var n=e.edge(t),a={v:t.v,w:t.w};return b(t.name)||(a.name=t.name),b(n)||(a.value=n),a})}D(se,"writeEdges");var d=new Map,X=new Map,G=new Map,ie=w(()=>{X.clear(),G.clear(),d.clear()},"clear"),O=w((e,t)=>{const n=X.get(t)||[];return i.trace("In isDescendant",t," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),re=w((e,t)=>{const n=X.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"),R=w((e,t,n,a)=>{i.warn("Copying children of ",e,"root",a,"data",t.node(e),a);const r=t.children(e)||[];e!==a&&r.push(e),i.warn("Copying (nodes) clusterId",e,"nodes",r),r.forEach(o=>{if(t.children(o).length>0)R(o,t,n,a);else{const l=t.node(o);i.info("cp ",o," to ",a," with parent ",e),n.setNode(o,l),a!==t.parent(o)&&(i.warn("Setting parent",o,t.parent(o)),n.setParent(o,t.parent(o))),e!==a&&o!==e?(i.debug("Setting parent",o,e),n.setParent(o,e)):(i.info("In copy ",e,"root",a,"data",t.node(e),a),i.debug("Not Setting parent for node=",o,"cluster!==rootId",e!==a,"node!==clusterId",o!==e));const u=t.edges(o);i.debug("Copying Edges",u),u.forEach(c=>{i.info("Edge",c);const m=t.edge(c.v,c.w,c.name);i.info("Edge data",m,a);try{re(c,a)?(i.info("Copying as ",c.v,c.w,m,c.name),n.setEdge(c.v,c.w,m,c.name),i.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):i.info("Skipping copy of edge ",c.v,"-->",c.w," rootId: ",a," clusterId:",e)}catch(v){i.error(v)}})}i.debug("Removing node",o),t.removeNode(o)})},"copy"),T=w((e,t)=>{const n=t.children(e);let a=[...n];for(const r of n)G.set(r,e),a=[...a,...T(r,t)];return a},"extractDescendants"),oe=w((e,t,n)=>{const a=e.edges().filter(c=>c.v===t||c.w===t),r=e.edges().filter(c=>c.v===n||c.w===n),o=a.map(c=>({v:c.v===t?n:c.v,w:c.w===t?t:c.w})),l=r.map(c=>({v:c.v,w:c.w}));return o.filter(c=>l.some(m=>c.v===m.v&&c.w===m.w))},"findCommonEdges"),C=w((e,t,n)=>{const a=t.children(e);if(i.trace("Searching children of id ",e,a),a.length<1)return e;let r;for(const o of a){const l=C(o,t,n),u=oe(t,n,l);if(l)if(u.length>0)r=l;else return l}return r},"findNonClusterChild"),B=w(e=>!d.has(e)||!d.get(e).externalConnections?e:d.has(e)?d.get(e).id:e,"getAnchorId"),ae=w((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: ",C(n,e,n)),X.set(n,T(n,e)),d.set(n,{id:C(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){const a=e.children(n),r=e.edges();a.length>0?(i.debug("Cluster identified",n,X),r.forEach(o=>{const l=O(o.v,n),u=O(o.w,n);l^u&&(i.warn("Edge: ",o," leaves cluster ",n),i.warn("Descendants of XXX ",n,": ",X.get(n)),d.get(n).externalConnections=!0)})):i.debug("Not a cluster ",n,X)});for(let n of d.keys()){const a=d.get(n).id,r=e.parent(a);r!==n&&d.has(r)&&!d.get(r).externalConnections&&(d.get(n).id=r)}e.edges().forEach(function(n){const a=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 r=n.v,o=n.w;if(i.warn("Fix XXX",d,"ids:",n.v,n.w,"Translating: ",d.get(n.v)," --- ",d.get(n.w)),d.get(n.v)||d.get(n.w)){if(i.warn("Fixing and trying - removing XXX",n.v,n.w,n.name),r=B(n.v),o=B(n.w),e.removeEdge(n.v,n.w,n.name),r!==n.v){const l=e.parent(r);d.get(l).externalConnections=!0,a.fromCluster=n.v}if(o!==n.w){const l=e.parent(o);d.get(l).externalConnections=!0,a.toCluster=n.w}i.warn("Fix Replacing with XXX",r,o,n.name),e.setEdge(r,o,a,n.name)}}),i.warn("Adjusted Graph",h(e)),M(e,0),i.trace(d)},"adjustClustersAndEdges"),M=w((e,t)=>{if(i.warn("extractor - ",t,h(e),e.children("D")),t>10){i.error("Bailing out");return}let n=e.nodes(),a=!1;for(const r of n){const o=e.children(r);a=a||o.length>0}if(!a){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,d,d.has(r)&&!d.get(r).externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",t),!d.has(r))i.debug("Not a cluster",r,t);else if(!d.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";d.get(r)?.clusterData?.dir&&(l=d.get(r).clusterData.dir,i.warn("Fixing dir",d.get(r).clusterData.dir,l));const u=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",h(e)),R(r,e,u,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:d.get(r).clusterData,label:d.get(r).label,graph:u}),i.warn("New graph after copy node: (",r,")",h(u)),i.debug("Old graph after copy",h(e))}else i.warn("Cluster ** ",r," **not meeting the criteria !externalConnections:",!d.get(r).externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),t),i.debug(d);n=e.nodes(),i.warn("New list of nodes",n);for(const r of n){const o=e.node(r);i.warn(" Now next level",r,o),o?.clusterNode&&M(o.graph,t+1)}},"extractor"),j=w((e,t)=>{if(t.length===0)return[];let n=Object.assign([],t);return t.forEach(a=>{const r=e.children(a),o=j(e,r);n=[...n,...o]}),n},"sorter"),ce=w(e=>j(e,e.children()),"sortNodesByHierarchy"),F=w(async(e,t,n,a,r,o)=>{i.warn("Graph in recursive render:XAX",h(t),r);const l=t.graph().rankdir;i.trace("Dir in recursive render - dir:",l);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 c=u.insert("g").attr("class","clusters"),m=u.insert("g").attr("class","edgePaths"),v=u.insert("g").attr("class","edgeLabels"),p=u.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(f){const s=t.node(f);if(r!==void 0){const g=JSON.parse(JSON.stringify(r.clusterData));i.trace(`Setting data for parent cluster XXX
1
+ var Y=Object.defineProperty;var D=(e,t)=>Y(e,"name",{value:t,configurable:!0});import{_ as w,aw as _,ax as H,ay as V,az as z,l as i,c as U,aA as $,aB as q,ai as K,an as Q,aj as k,ah as W,aC as Z,aD as I,aE as L}from"./mermaid.core-BymI4HJS.js";import{G as A}from"./graph-DNJkdAax.js";import{l as ee}from"./layout-C9Bg2dBa.js";import{i as b}from"./_baseUniq-C01nKZPU.js";import{c as ne}from"./clone-B1cS_P1m.js";import{m as J}from"./_basePickBy-CF7u0JoM.js";import"./main-CWkZDH4r.js";import"./main-BaebWasr.js";import"./react-vendor-BGrcQn-n.js";import"./ui-vendor-B7JxFfFk.js";function h(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:te(e),edges:se(e)};return b(e.graph())||(t.value=ne(e.graph())),t}D(h,"write");function te(e){return J(e.nodes(),function(t){var n=e.node(t),a=e.parent(t),r={v:t};return b(n)||(r.value=n),b(a)||(r.parent=a),r})}D(te,"writeNodes");function se(e){return J(e.edges(),function(t){var n=e.edge(t),a={v:t.v,w:t.w};return b(t.name)||(a.name=t.name),b(n)||(a.value=n),a})}D(se,"writeEdges");var d=new Map,X=new Map,G=new Map,ie=w(()=>{X.clear(),G.clear(),d.clear()},"clear"),O=w((e,t)=>{const n=X.get(t)||[];return i.trace("In isDescendant",t," ",e," = ",n.includes(e)),n.includes(e)},"isDescendant"),re=w((e,t)=>{const n=X.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"),R=w((e,t,n,a)=>{i.warn("Copying children of ",e,"root",a,"data",t.node(e),a);const r=t.children(e)||[];e!==a&&r.push(e),i.warn("Copying (nodes) clusterId",e,"nodes",r),r.forEach(o=>{if(t.children(o).length>0)R(o,t,n,a);else{const l=t.node(o);i.info("cp ",o," to ",a," with parent ",e),n.setNode(o,l),a!==t.parent(o)&&(i.warn("Setting parent",o,t.parent(o)),n.setParent(o,t.parent(o))),e!==a&&o!==e?(i.debug("Setting parent",o,e),n.setParent(o,e)):(i.info("In copy ",e,"root",a,"data",t.node(e),a),i.debug("Not Setting parent for node=",o,"cluster!==rootId",e!==a,"node!==clusterId",o!==e));const u=t.edges(o);i.debug("Copying Edges",u),u.forEach(c=>{i.info("Edge",c);const m=t.edge(c.v,c.w,c.name);i.info("Edge data",m,a);try{re(c,a)?(i.info("Copying as ",c.v,c.w,m,c.name),n.setEdge(c.v,c.w,m,c.name),i.info("newGraph edges ",n.edges(),n.edge(n.edges()[0]))):i.info("Skipping copy of edge ",c.v,"-->",c.w," rootId: ",a," clusterId:",e)}catch(v){i.error(v)}})}i.debug("Removing node",o),t.removeNode(o)})},"copy"),T=w((e,t)=>{const n=t.children(e);let a=[...n];for(const r of n)G.set(r,e),a=[...a,...T(r,t)];return a},"extractDescendants"),oe=w((e,t,n)=>{const a=e.edges().filter(c=>c.v===t||c.w===t),r=e.edges().filter(c=>c.v===n||c.w===n),o=a.map(c=>({v:c.v===t?n:c.v,w:c.w===t?t:c.w})),l=r.map(c=>({v:c.v,w:c.w}));return o.filter(c=>l.some(m=>c.v===m.v&&c.w===m.w))},"findCommonEdges"),C=w((e,t,n)=>{const a=t.children(e);if(i.trace("Searching children of id ",e,a),a.length<1)return e;let r;for(const o of a){const l=C(o,t,n),u=oe(t,n,l);if(l)if(u.length>0)r=l;else return l}return r},"findNonClusterChild"),B=w(e=>!d.has(e)||!d.get(e).externalConnections?e:d.has(e)?d.get(e).id:e,"getAnchorId"),ae=w((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: ",C(n,e,n)),X.set(n,T(n,e)),d.set(n,{id:C(n,e,n),clusterData:e.node(n)}))}),e.nodes().forEach(function(n){const a=e.children(n),r=e.edges();a.length>0?(i.debug("Cluster identified",n,X),r.forEach(o=>{const l=O(o.v,n),u=O(o.w,n);l^u&&(i.warn("Edge: ",o," leaves cluster ",n),i.warn("Descendants of XXX ",n,": ",X.get(n)),d.get(n).externalConnections=!0)})):i.debug("Not a cluster ",n,X)});for(let n of d.keys()){const a=d.get(n).id,r=e.parent(a);r!==n&&d.has(r)&&!d.get(r).externalConnections&&(d.get(n).id=r)}e.edges().forEach(function(n){const a=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 r=n.v,o=n.w;if(i.warn("Fix XXX",d,"ids:",n.v,n.w,"Translating: ",d.get(n.v)," --- ",d.get(n.w)),d.get(n.v)||d.get(n.w)){if(i.warn("Fixing and trying - removing XXX",n.v,n.w,n.name),r=B(n.v),o=B(n.w),e.removeEdge(n.v,n.w,n.name),r!==n.v){const l=e.parent(r);d.get(l).externalConnections=!0,a.fromCluster=n.v}if(o!==n.w){const l=e.parent(o);d.get(l).externalConnections=!0,a.toCluster=n.w}i.warn("Fix Replacing with XXX",r,o,n.name),e.setEdge(r,o,a,n.name)}}),i.warn("Adjusted Graph",h(e)),M(e,0),i.trace(d)},"adjustClustersAndEdges"),M=w((e,t)=>{if(i.warn("extractor - ",t,h(e),e.children("D")),t>10){i.error("Bailing out");return}let n=e.nodes(),a=!1;for(const r of n){const o=e.children(r);a=a||o.length>0}if(!a){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,d,d.has(r)&&!d.get(r).externalConnections,!e.parent(r),e.node(r),e.children("D")," Depth ",t),!d.has(r))i.debug("Not a cluster",r,t);else if(!d.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";d.get(r)?.clusterData?.dir&&(l=d.get(r).clusterData.dir,i.warn("Fixing dir",d.get(r).clusterData.dir,l));const u=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",h(e)),R(r,e,u,r),e.setNode(r,{clusterNode:!0,id:r,clusterData:d.get(r).clusterData,label:d.get(r).label,graph:u}),i.warn("New graph after copy node: (",r,")",h(u)),i.debug("Old graph after copy",h(e))}else i.warn("Cluster ** ",r," **not meeting the criteria !externalConnections:",!d.get(r).externalConnections," no parent: ",!e.parent(r)," children ",e.children(r)&&e.children(r).length>0,e.children("D"),t),i.debug(d);n=e.nodes(),i.warn("New list of nodes",n);for(const r of n){const o=e.node(r);i.warn(" Now next level",r,o),o?.clusterNode&&M(o.graph,t+1)}},"extractor"),j=w((e,t)=>{if(t.length===0)return[];let n=Object.assign([],t);return t.forEach(a=>{const r=e.children(a),o=j(e,r);n=[...n,...o]}),n},"sorter"),ce=w(e=>j(e,e.children()),"sortNodesByHierarchy"),F=w(async(e,t,n,a,r,o)=>{i.warn("Graph in recursive render:XAX",h(t),r);const l=t.graph().rankdir;i.trace("Dir in recursive render - dir:",l);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 c=u.insert("g").attr("class","clusters"),m=u.insert("g").attr("class","edgePaths"),v=u.insert("g").attr("class","edgeLabels"),p=u.insert("g").attr("class","nodes");await Promise.all(t.nodes().map(async function(f){const s=t.node(f);if(r!==void 0){const g=JSON.parse(JSON.stringify(r.clusterData));i.trace(`Setting data for parent cluster XXX
2
2
  Node.id = `,f,`
3
3
  data=`,g.height,`
4
4
  Parent cluster`,r.height),t.setNode(r.id,g),t.parent(f)||(i.trace("Setting parent",f,r.id),t.setParent(f,r.id,g))}if(i.info("(Insert) Node XXX"+f+": "+JSON.stringify(t.node(f))),s?.clusterNode){i.info("Cluster identified XBX",f,s.width,t.node(f));const{ranksep:g,nodesep:E}=t.graph();s.graph.setGraph({...s.graph.graph(),ranksep:g+25,nodesep:E});const N=await F(p,s.graph,n,a,t.node(f),o),x=N.elem;$(s,x),s.diff=N.diff||0,i.info("New compound node after recursive render XAX",f,"width",s.width,"height",s.height),q(x,s)}else t.children(f).length>0?(i.trace("Cluster - the non recursive path XBX",f,s.id,s,s.width,"Graph:",t),i.trace(C(s.id,t)),d.set(s.id,{id:C(s.id,t),node:s})):(i.trace("Node - the non recursive path XAX",f,p,t.node(f),l),await K(p,t.node(f),{config:o,dir:l}))})),await w(async()=>{const f=t.edges().map(async function(s){const g=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",d,"ids:",s.v,s.w,"Translating: ",d.get(s.v),d.get(s.w)),await L(v,g)});await Promise.all(f)},"processEdges")(),i.info("Graph before layout:",JSON.stringify(h(t))),i.info("############################################# XXX"),i.info("### Layout ### XXX"),i.info("############################################# XXX"),ee(t),i.info("Graph after layout:",JSON.stringify(h(t)));let P=0,{subGraphTitleTotalMargin:S}=Q(o);return await Promise.all(ce(t).map(async function(f){const s=t.node(f);if(i.info("Position XBX => "+f+": ("+s.x,","+s.y,") width: ",s.width," height: ",s.height),s?.clusterNode)s.y+=S,i.info("A tainted cluster node XBX1",f,s.id,s.width,s.height,s.x,s.y,t.parent(f)),d.get(s.id).node=s,k(s);else if(t.children(f).length>0){i.info("A pure cluster node XBX1",f,s.id,s.x,s.y,s.width,s.height,t.parent(f)),s.height+=S,t.node(s.parentId);const g=s?.padding/2||0,E=s?.labelBBox?.height||0,N=E-g||0;i.debug("OffsetY",N,"labelHeight",E,"halfPadding",g),await W(c,s),d.get(s.id).node=s}else{const g=t.node(s.parentId);s.y+=S/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",g,g?.offsetY,s),k(s)}})),t.edges().forEach(function(f){const s=t.edge(f);i.info("Edge "+f.v+" -> "+f.w+": "+JSON.stringify(s),s),s.points.forEach(x=>x.y+=S/2);const g=t.node(f.v);var E=t.node(f.w);const N=Z(m,s,d,n,g,E,a);I(s,N)}),t.nodes().forEach(function(f){const s=t.node(f);i.info(f,s.type,s.diff),s.isGroup&&(P=s.diff)}),i.warn("Returning from recursive render XAX",u,P),{elem:u,diff:P}},"recursiveRender"),ye=w(async(e,t)=>{const n=new A({multigraph:!0,compound:!0}).setGraph({rankdir:e.direction,nodesep:e.config?.nodeSpacing||e.config?.flowchart?.nodeSpacing||e.nodeSpacing,ranksep:e.config?.rankSpacing||e.config?.flowchart?.rankSpacing||e.rankSpacing,marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}}),a=t.select("g");_(a,e.markers,e.type,e.diagramId),H(),V(),z(),ie(),e.nodes.forEach(o=>{n.setNode(o.id,{...o}),o.parentId&&n.setParent(o.id,o.parentId)}),i.debug("Edges:",e.edges),e.edges.forEach(o=>{if(o.start===o.end){const l=o.start,u=l+"---"+l+"---1",c=l+"---"+l+"---2",m=n.node(l);n.setNode(u,{domId:u,id:u,parentId:m.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),n.setParent(u,m.parentId),n.setNode(c,{domId:c,id:c,parentId:m.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),n.setParent(c,m.parentId);const v=structuredClone(o),p=structuredClone(o),y=structuredClone(o);v.label="",v.arrowTypeEnd="none",v.id=l+"-cyclic-special-1",p.arrowTypeStart="none",p.arrowTypeEnd="none",p.id=l+"-cyclic-special-mid",y.label="",m.isGroup&&(v.fromCluster=l,y.toCluster=l),y.id=l+"-cyclic-special-2",y.arrowTypeStart="none",n.setEdge(l,u,v,l+"-cyclic-special-0"),n.setEdge(u,c,p,l+"-cyclic-special-1"),n.setEdge(c,l,y,l+"-cyc<lic-special-2")}else n.setEdge(o.start,o.end,{...o},o.id)}),i.warn("Graph at first:",JSON.stringify(h(n))),ae(n),i.warn("Graph after XAX:",JSON.stringify(h(n)));const r=U();await F(a,n,e.type,e.diagramId,void 0,r)},"render");export{ye as render};
5
- //# sourceMappingURL=dagre-6UL2VRFP-2NloE4Yi.js.map
5
+ //# sourceMappingURL=dagre-6UL2VRFP-WTXafpU6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dagre-6UL2VRFP-2NloE4Yi.js","sources":["../../../../node_modules/dagre-d3-es/src/graphlib/json.js","../../../../node_modules/mermaid/dist/chunks/mermaid.core/dagre-6UL2VRFP.mjs"],"sourcesContent":["import * as _ from 'lodash-es';\nimport { Graph } from './graph.js';\n\nexport { write, read };\n\nfunction write(g) {\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\nfunction writeNodes(g) {\n return _.map(g.nodes(), function (v) {\n var nodeValue = g.node(v);\n var parent = g.parent(v);\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\nfunction writeEdges(g) {\n return _.map(g.edges(), function (e) {\n var edgeValue = g.edge(e);\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\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-QXUST7PY.mjs\";\nimport \"./chunk-HN2XXSSU.mjs\";\nimport {\n clear,\n clear2 as clear3,\n insertCluster,\n insertNode,\n positionNode,\n setNodeElem,\n updateNodeBounds\n} from \"./chunk-JZLCHNYA.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-CVBHYZKI.mjs\";\nimport \"./chunk-ATLVNIR6.mjs\";\nimport \"./chunk-JA3XYJ7Z.mjs\";\nimport \"./chunk-S3R3BYOJ.mjs\";\nimport {\n getConfig2 as getConfig\n} from \"./chunk-ABZYJK2D.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","__name","_.map","v","nodeValue","parent","node","e","edgeValue","edge","clusterDb","descendants","parents","clear4","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","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","element","markers_default","clear3","clear2","clear","nodeId","specialId1","specialId2","edge1","edgeMid","edge2","getConfig"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"dagre-6UL2VRFP-WTXafpU6.js","sources":["../../../../node_modules/dagre-d3-es/src/graphlib/json.js","../../../../node_modules/mermaid/dist/chunks/mermaid.core/dagre-6UL2VRFP.mjs"],"sourcesContent":["import * as _ from 'lodash-es';\nimport { Graph } from './graph.js';\n\nexport { write, read };\n\nfunction write(g) {\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\nfunction writeNodes(g) {\n return _.map(g.nodes(), function (v) {\n var nodeValue = g.node(v);\n var parent = g.parent(v);\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\nfunction writeEdges(g) {\n return _.map(g.edges(), function (e) {\n var edgeValue = g.edge(e);\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\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-QXUST7PY.mjs\";\nimport \"./chunk-HN2XXSSU.mjs\";\nimport {\n clear,\n clear2 as clear3,\n insertCluster,\n insertNode,\n positionNode,\n setNodeElem,\n updateNodeBounds\n} from \"./chunk-JZLCHNYA.mjs\";\nimport {\n getSubGraphTitleMargins\n} from \"./chunk-CVBHYZKI.mjs\";\nimport \"./chunk-ATLVNIR6.mjs\";\nimport \"./chunk-JA3XYJ7Z.mjs\";\nimport \"./chunk-S3R3BYOJ.mjs\";\nimport {\n getConfig2 as getConfig\n} from \"./chunk-ABZYJK2D.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","__name","_.map","v","nodeValue","parent","node","e","edgeValue","edge","clusterDb","descendants","parents","clear4","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","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","element","markers_default","clear3","clear2","clear","nodeId","specialId1","specialId2","edge1","edgeMid","edge2","getConfig"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,4 +1,4 @@
1
- var he=Object.defineProperty;var h=(e,a)=>he(e,"name",{value:a,configurable:!0});import{_ as C,F as te,G as ae,K as pe,e as ue,l as J,aZ as B,d as Y,b as fe,a as me,q as ge,t as ye,g as Se,s as ve,H as xe,a_ as be,z as we}from"./mermaid.core-rWg6JcoC.js";import{s as Ce}from"./chunk-QN33PNHL-IzRCZEG_.js";import{p as Te}from"./chunk-4BX2VUAB-BdiEiQKw.js";import{p as Le}from"./treemap-KMMF4GRG-C2Sf7oH-.js";import{b as O}from"./defaultLocale-BAh5bDOb.js";import{o as U}from"./ordinal-BCXkz34N.js";import"./main-C81Et7oP.js";import"./main-Chbvf6JP.js";import"./react-vendor-BGrcQn-n.js";import"./ui-vendor-B7JxFfFk.js";import"./_baseUniq-BqneJ7vC.js";import"./_basePickBy-D1VwWj4y.js";import"./clone-DuI60JlF.js";import"./init-GRbUuopv.js";function $e(e){var a=0,n=e.children,l=n&&n.length;if(!l)a=1;else for(;--l>=0;)a+=n[l].value;e.value=a}h($e,"count");function Ae(){return this.eachAfter($e)}h(Ae,"node_count");function Fe(e,a){let n=-1;for(const l of this)e.call(a,l,++n,this);return this}h(Fe,"node_each");function ke(e,a){for(var n=this,l=[n],o,i,d=-1;n=l.pop();)if(e.call(a,n,++d,this),o=n.children)for(i=o.length-1;i>=0;--i)l.push(o[i]);return this}h(ke,"node_eachBefore");function Ne(e,a){for(var n=this,l=[n],o=[],i,d,p,g=-1;n=l.pop();)if(o.push(n),i=n.children)for(d=0,p=i.length;d<p;++d)l.push(i[d]);for(;n=o.pop();)e.call(a,n,++g,this);return this}h(Ne,"node_eachAfter");function Me(e,a){let n=-1;for(const l of this)if(e.call(a,l,++n,this))return l}h(Me,"node_find");function _e(e){return this.eachAfter(function(a){for(var n=+e(a.data)||0,l=a.children,o=l&&l.length;--o>=0;)n+=l[o].value;a.value=n})}h(_e,"node_sum");function ze(e){return this.eachBefore(function(a){a.children&&a.children.sort(e)})}h(ze,"node_sort");function Ve(e){for(var a=this,n=De(a,e),l=[a];a!==n;)a=a.parent,l.push(a);for(var o=l.length;e!==n;)l.splice(o,0,e),e=e.parent;return l}h(Ve,"node_path");function De(e,a){if(e===a)return e;var n=e.ancestors(),l=a.ancestors(),o=null;for(e=n.pop(),a=l.pop();e===a;)o=e,e=n.pop(),a=l.pop();return o}h(De,"leastCommonAncestor");function Pe(){for(var e=this,a=[e];e=e.parent;)a.push(e);return a}h(Pe,"node_ancestors");function Be(){return Array.from(this)}h(Be,"node_descendants");function Re(){var e=[];return this.eachBefore(function(a){a.children||e.push(a)}),e}h(Re,"node_leaves");function Ee(){var e=this,a=[];return e.each(function(n){n!==e&&a.push({source:n.parent,target:n})}),a}h(Ee,"node_links");function*We(){var e=this,a,n=[e],l,o,i;do for(a=n.reverse(),n=[];e=a.pop();)if(yield e,l=e.children)for(o=0,i=l.length;o<i;++o)n.push(l[o]);while(n.length)}h(We,"node_iterator");function Q(e,a){e instanceof Map?(e=[void 0,e],a===void 0&&(a=Oe)):a===void 0&&(a=Ie);for(var n=new Z(e),l,o=[n],i,d,p,g;l=o.pop();)if((d=a(l.data))&&(g=(d=Array.from(d)).length))for(l.children=d,p=g-1;p>=0;--p)o.push(i=d[p]=new Z(d[p])),i.parent=l,i.depth=l.depth+1;return n.eachBefore(qe)}h(Q,"hierarchy");function He(){return Q(this).eachBefore(Ge)}h(He,"node_copy");function Ie(e){return e.children}h(Ie,"objectChildren");function Oe(e){return Array.isArray(e)?e[1]:null}h(Oe,"mapChildren");function Ge(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}h(Ge,"copyData");function qe(e){var a=0;do e.height=a;while((e=e.parent)&&e.height<++a)}h(qe,"computeHeight");function Z(e){this.data=e,this.depth=this.height=0,this.parent=null}h(Z,"Node");Z.prototype=Q.prototype={constructor:Z,count:Ae,each:Fe,eachAfter:Ne,eachBefore:ke,find:Me,sum:_e,sort:ze,path:Ve,ancestors:Pe,descendants:Be,leaves:Re,links:Ee,copy:He,[Symbol.iterator]:We};function Xe(e){if(typeof e!="function")throw new Error;return e}h(Xe,"required");function G(){return 0}h(G,"constantZero");function q(e){return function(){return e}}h(q,"constant");function je(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}h(je,"roundNode");function Ye(e,a,n,l,o){for(var i=e.children,d,p=-1,g=i.length,c=e.value&&(l-a)/e.value;++p<g;)d=i[p],d.y0=n,d.y1=o,d.x0=a,d.x1=a+=d.value*c}h(Ye,"treemapDice");function Ze(e,a,n,l,o){for(var i=e.children,d,p=-1,g=i.length,c=e.value&&(o-n)/e.value;++p<g;)d=i[p],d.x0=a,d.x1=l,d.y0=n,d.y1=n+=d.value*c}h(Ze,"treemapSlice");var Ke=(1+Math.sqrt(5))/2;function Ue(e,a,n,l,o,i){for(var d=[],p=a.children,g,c,u=0,w=0,r=p.length,b,v,x=a.value,f,y,M,N,D,E,_;u<r;){b=o-n,v=i-l;do f=p[w++].value;while(!f&&w<r);for(y=M=f,E=Math.max(v/b,b/v)/(x*e),_=f*f*E,D=Math.max(M/_,_/y);w<r;++w){if(f+=c=p[w].value,c<y&&(y=c),c>M&&(M=c),_=f*f*E,N=Math.max(M/_,_/y),N>D){f-=c;break}D=N}d.push(g={value:f,dice:b<v,children:p.slice(u,w)}),g.dice?Ye(g,n,l,o,x?l+=v*f/x:i):Ze(g,n,l,x?n+=b*f/x:o,i),x-=f,u=w}return d}h(Ue,"squarifyRatio");const Je=h((function e(a){function n(l,o,i,d,p){Ue(a,l,o,i,d,p)}return h(n,"squarify"),n.ratio=function(l){return e((l=+l)>1?l:1)},n}),"custom")(Ke);function Qe(){var e=Je,a=!1,n=1,l=1,o=[0],i=G,d=G,p=G,g=G,c=G;function u(r){return r.x0=r.y0=0,r.x1=n,r.y1=l,r.eachBefore(w),o=[0],a&&r.eachBefore(je),r}h(u,"treemap");function w(r){var b=o[r.depth],v=r.x0+b,x=r.y0+b,f=r.x1-b,y=r.y1-b;f<v&&(v=f=(v+f)/2),y<x&&(x=y=(x+y)/2),r.x0=v,r.y0=x,r.x1=f,r.y1=y,r.children&&(b=o[r.depth+1]=i(r)/2,v+=c(r)-b,x+=d(r)-b,f-=p(r)-b,y-=g(r)-b,f<v&&(v=f=(v+f)/2),y<x&&(x=y=(x+y)/2),e(r,v,x,f,y))}return h(w,"positionNode"),u.round=function(r){return arguments.length?(a=!!r,u):a},u.size=function(r){return arguments.length?(n=+r[0],l=+r[1],u):[n,l]},u.tile=function(r){return arguments.length?(e=Xe(r),u):e},u.padding=function(r){return arguments.length?u.paddingInner(r).paddingOuter(r):u.paddingInner()},u.paddingInner=function(r){return arguments.length?(i=typeof r=="function"?r:q(+r),u):i},u.paddingOuter=function(r){return arguments.length?u.paddingTop(r).paddingRight(r).paddingBottom(r).paddingLeft(r):u.paddingTop()},u.paddingTop=function(r){return arguments.length?(d=typeof r=="function"?r:q(+r),u):d},u.paddingRight=function(r){return arguments.length?(p=typeof r=="function"?r:q(+r),u):p},u.paddingBottom=function(r){return arguments.length?(g=typeof r=="function"?r:q(+r),u):g},u.paddingLeft=function(r){return arguments.length?(c=typeof r=="function"?r:q(+r),u):c},u}h(Qe,"treemap");var ne=class{static{h(this,"TreeMapDB")}constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=fe,this.getAccTitle=me,this.setDiagramTitle=ge,this.getDiagramTitle=ye,this.getAccDescription=Se,this.setAccDescription=ve}static{C(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){const e=xe,a=ae();return te({...e.treemap,...a.treemap??{}})}addNode(e,a){this.nodes.push(e),this.levels.set(e,a),a===0&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:"",children:this.outerNodes}}addClass(e,a){const n=this.classes.get(e)??{id:e,styles:[],textStyles:[]},l=a.replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");l&&l.forEach(o=>{be(o)&&(n?.textStyles?n.textStyles.push(o):n.textStyles=[o]),n?.styles?n.styles.push(o):n.styles=[o]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){we(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function le(e){if(!e.length)return[];const a=[],n=[];return e.forEach(l=>{const o={name:l.name,children:l.type==="Leaf"?void 0:[]};for(o.classSelector=l?.classSelector,l?.cssCompiledStyles&&(o.cssCompiledStyles=[l.cssCompiledStyles]),l.type==="Leaf"&&l.value!==void 0&&(o.value=l.value);n.length>0&&n[n.length-1].level>=l.level;)n.pop();if(n.length===0)a.push(o);else{const i=n[n.length-1].node;i.children?i.children.push(o):i.children=[o]}l.type!=="Leaf"&&n.push({node:o,level:l.level})}),a}h(le,"buildHierarchy");C(le,"buildHierarchy");var et=C((e,a)=>{Te(e,a);const n=[];for(const i of e.TreemapRows??[])i.$type==="ClassDefStatement"&&a.addClass(i.className??"",i.styleText??"");for(const i of e.TreemapRows??[]){const d=i.item;if(!d)continue;const p=i.indent?parseInt(i.indent):0,g=tt(d),c=d.classSelector?a.getStylesForClass(d.classSelector):[],u=c.length>0?c.join(";"):void 0,w={level:p,name:g,type:d.$type,value:d.value,classSelector:d.classSelector,cssCompiledStyles:u};n.push(w)}const l=le(n),o=C((i,d)=>{for(const p of i)a.addNode(p,d),p.children&&p.children.length>0&&o(p.children,d+1)},"addNodesRecursively");o(l,0)},"populate"),tt=C(e=>e.name?String(e.name):"","getItemName"),re={parser:{yy:void 0},parse:C(async e=>{try{const n=await Le("treemap",e);J.debug("Treemap AST:",n);const l=re.parser?.yy;if(!(l 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,l)}catch(a){throw J.error("Error parsing treemap:",a),a}},"parse")},at=10,R=10,X=25,nt=C((e,a,n,l)=>{const o=l.db,i=o.getConfig(),d=i.padding??at,p=o.getDiagramTitle(),g=o.getRoot(),{themeVariables:c}=ae();if(!g)return;const u=p?30:0,w=pe(a),r=i.nodeWidth?i.nodeWidth*R:960,b=i.nodeHeight?i.nodeHeight*R:500,v=r,x=b+u;w.attr("viewBox",`0 0 ${v} ${x}`),ue(w,x,v,i.useMaxWidth);let f;try{const t=i.valueFormat||",";if(t==="$0,0")f=C(s=>"$"+O(",")(s),"valueFormat");else if(t.startsWith("$")&&t.includes(",")){const s=/\.\d+/.exec(t),m=s?s[0]:"";f=C(T=>"$"+O(","+m)(T),"valueFormat")}else if(t.startsWith("$")){const s=t.substring(1);f=C(m=>"$"+O(s||"")(m),"valueFormat")}else f=O(t)}catch(t){J.error("Error creating format function:",t),f=O(",")}const y=U().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=U().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=U().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]);p&&w.append("text").attr("x",v/2).attr("y",u/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(p);const D=w.append("g").attr("transform",`translate(0, ${u})`).attr("class","treemapContainer"),E=Q(g).sum(t=>t.value??0).sort((t,s)=>(s.value??0)-(t.value??0)),ee=Qe().size([r,b]).paddingTop(t=>t.children&&t.children.length>0?X+R:0).paddingInner(d).paddingLeft(t=>t.children&&t.children.length>0?R:0).paddingRight(t=>t.children&&t.children.length>0?R:0).paddingBottom(t=>t.children&&t.children.length>0?R:0).round(!0)(E),se=ee.descendants().filter(t=>t.children&&t.children.length>0),W=D.selectAll(".treemapSection").data(se).enter().append("g").attr("class","treemapSection").attr("transform",t=>`translate(${t.x0},${t.y0})`);W.append("rect").attr("width",t=>t.x1-t.x0).attr("height",X).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",t=>t.depth===0?"display: none;":""),W.append("clipPath").attr("id",(t,s)=>`clip-section-${a}-${s}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-12)).attr("height",X),W.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class",(t,s)=>`treemapSection section${s}`).attr("fill",t=>y(t.data.name)).attr("fill-opacity",.6).attr("stroke",t=>M(t.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",t=>{if(t.depth===0)return"display: none;";const s=B({cssCompiledStyles:t.data.cssCompiledStyles});return s.nodeStyles+";"+s.borderStyles.join(";")}),W.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",X/2).attr("dominant-baseline","middle").text(t=>t.depth===0?"":t.data.name).attr("font-weight","bold").attr("style",t=>{if(t.depth===0)return"display: none;";const s="dominant-baseline: middle; font-size: 12px; fill:"+N(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",m=B({cssCompiledStyles:t.data.cssCompiledStyles});return s+m.labelStyles.replace("color:","fill:")}).each(function(t){if(t.depth===0)return;const s=Y(this),m=t.data.name;s.text(m);const T=t.x1-t.x0,$=6;let A;i.showValues!==!1&&t.value?A=T-10-30-10-$:A=T-$-6;const F=Math.max(15,A),S=s.node();if(S.getComputedTextLength()>F){let L=m;for(;L.length>0;){if(L=m.substring(0,L.length-1),L.length===0){s.text("..."),S.getComputedTextLength()>F&&s.text("");break}if(s.text(L+"..."),S.getComputedTextLength()<=F)break}}}),i.showValues!==!1&&W.append("text").attr("class","treemapSectionValue").attr("x",t=>t.x1-t.x0-10).attr("y",X/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(t=>t.value?f(t.value):"").attr("font-style","italic").attr("style",t=>{if(t.depth===0)return"display: none;";const s="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+N(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",m=B({cssCompiledStyles:t.data.cssCompiledStyles});return s+m.labelStyles.replace("color:","fill:")});const ie=ee.leaves(),j=D.selectAll(".treemapLeafGroup").data(ie).enter().append("g").attr("class",(t,s)=>`treemapNode treemapLeafGroup leaf${s}${t.data.classSelector?` ${t.data.classSelector}`:""}x`).attr("transform",t=>`translate(${t.x0},${t.y0})`);j.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class","treemapLeaf").attr("fill",t=>t.parent?y(t.parent.data.name):y(t.data.name)).attr("style",t=>B({cssCompiledStyles:t.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",t=>t.parent?y(t.parent.data.name):y(t.data.name)).attr("stroke-width",3),j.append("clipPath").attr("id",(t,s)=>`clip-${a}-${s}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-4)).attr("height",t=>Math.max(0,t.y1-t.y0-4)),j.append("text").attr("class","treemapLabel").attr("x",t=>(t.x1-t.x0)/2).attr("y",t=>(t.y1-t.y0)/2).attr("style",t=>{const s="text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+N(t.data.name)+";",m=B({cssCompiledStyles:t.data.cssCompiledStyles});return s+m.labelStyles.replace("color:","fill:")}).attr("clip-path",(t,s)=>`url(#clip-${a}-${s})`).text(t=>t.data.name).each(function(t){const s=Y(this),m=t.x1-t.x0,T=t.y1-t.y0,$=s.node(),A=4,P=m-2*A,F=T-2*A;if(P<10||F<10){s.style("display","none");return}let S=parseInt(s.style("font-size"),10);const z=8,k=28,L=.6,V=6,H=2;for(;$.getComputedTextLength()>P&&S>z;)S--,s.style("font-size",`${S}px`);let I=Math.max(V,Math.min(k,Math.round(S*L))),K=S+H+I;for(;K>F&&S>z&&(S--,I=Math.max(V,Math.min(k,Math.round(S*L))),!(I<V&&S===z));)s.style("font-size",`${S}px`),K=S+H+I;s.style("font-size",`${S}px`),($.getComputedTextLength()>P||S<z||F<S)&&s.style("display","none")}),i.showValues!==!1&&j.append("text").attr("class","treemapValue").attr("x",s=>(s.x1-s.x0)/2).attr("y",function(s){return(s.y1-s.y0)/2}).attr("style",s=>{const m="text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+N(s.data.name)+";",T=B({cssCompiledStyles:s.data.cssCompiledStyles});return m+T.labelStyles.replace("color:","fill:")}).attr("clip-path",(s,m)=>`url(#clip-${a}-${m})`).text(s=>s.value?f(s.value):"").each(function(s){const m=Y(this),T=this.parentNode;if(!T){m.style("display","none");return}const $=Y(T).select(".treemapLabel");if($.empty()||$.style("display")==="none"){m.style("display","none");return}const A=parseFloat($.style("font-size")),P=28,F=.6,S=6,z=2,k=Math.max(S,Math.min(P,Math.round(A*F)));m.style("font-size",`${k}px`);const V=(s.y1-s.y0)/2+A/2+z;m.attr("y",V);const H=s.x1-s.x0,ce=s.y1-s.y0-4,de=H-8;m.node().getComputedTextLength()>de||V+k>ce||k<S?m.style("display","none"):m.style("display",null)});const oe=i.diagramPadding??8;Ce(w,oe,"flowchart",i?.useMaxWidth||!1)},"draw"),lt=C(function(e,a){return a.db.getClasses()},"getClasses"),rt={draw:nt,getClasses:lt},st={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelColor:"black",labelFontSize:"12px",valueFontSize:"10px",valueColor:"black",titleColor:"black",titleFontSize:"14px"},it=C(({treemap:e}={})=>{const a=te(st,e);return`
1
+ var he=Object.defineProperty;var h=(e,a)=>he(e,"name",{value:a,configurable:!0});import{_ as C,F as te,G as ae,K as pe,e as ue,l as J,aZ as B,d as Y,b as fe,a as me,q as ge,t as ye,g as Se,s as ve,H as xe,a_ as be,z as we}from"./mermaid.core-BymI4HJS.js";import{s as Ce}from"./chunk-QN33PNHL-B8CCHcFQ.js";import{p as Te}from"./chunk-4BX2VUAB-BzqE3lym.js";import{p as Le}from"./treemap-KMMF4GRG-DZ3dLkt9.js";import{b as O}from"./defaultLocale-BAh5bDOb.js";import{o as U}from"./ordinal-BCXkz34N.js";import"./main-CWkZDH4r.js";import"./main-BaebWasr.js";import"./react-vendor-BGrcQn-n.js";import"./ui-vendor-B7JxFfFk.js";import"./_baseUniq-C01nKZPU.js";import"./_basePickBy-CF7u0JoM.js";import"./clone-B1cS_P1m.js";import"./init-GRbUuopv.js";function $e(e){var a=0,n=e.children,l=n&&n.length;if(!l)a=1;else for(;--l>=0;)a+=n[l].value;e.value=a}h($e,"count");function Ae(){return this.eachAfter($e)}h(Ae,"node_count");function Fe(e,a){let n=-1;for(const l of this)e.call(a,l,++n,this);return this}h(Fe,"node_each");function ke(e,a){for(var n=this,l=[n],o,i,d=-1;n=l.pop();)if(e.call(a,n,++d,this),o=n.children)for(i=o.length-1;i>=0;--i)l.push(o[i]);return this}h(ke,"node_eachBefore");function Ne(e,a){for(var n=this,l=[n],o=[],i,d,p,g=-1;n=l.pop();)if(o.push(n),i=n.children)for(d=0,p=i.length;d<p;++d)l.push(i[d]);for(;n=o.pop();)e.call(a,n,++g,this);return this}h(Ne,"node_eachAfter");function Me(e,a){let n=-1;for(const l of this)if(e.call(a,l,++n,this))return l}h(Me,"node_find");function _e(e){return this.eachAfter(function(a){for(var n=+e(a.data)||0,l=a.children,o=l&&l.length;--o>=0;)n+=l[o].value;a.value=n})}h(_e,"node_sum");function ze(e){return this.eachBefore(function(a){a.children&&a.children.sort(e)})}h(ze,"node_sort");function Ve(e){for(var a=this,n=De(a,e),l=[a];a!==n;)a=a.parent,l.push(a);for(var o=l.length;e!==n;)l.splice(o,0,e),e=e.parent;return l}h(Ve,"node_path");function De(e,a){if(e===a)return e;var n=e.ancestors(),l=a.ancestors(),o=null;for(e=n.pop(),a=l.pop();e===a;)o=e,e=n.pop(),a=l.pop();return o}h(De,"leastCommonAncestor");function Pe(){for(var e=this,a=[e];e=e.parent;)a.push(e);return a}h(Pe,"node_ancestors");function Be(){return Array.from(this)}h(Be,"node_descendants");function Re(){var e=[];return this.eachBefore(function(a){a.children||e.push(a)}),e}h(Re,"node_leaves");function Ee(){var e=this,a=[];return e.each(function(n){n!==e&&a.push({source:n.parent,target:n})}),a}h(Ee,"node_links");function*We(){var e=this,a,n=[e],l,o,i;do for(a=n.reverse(),n=[];e=a.pop();)if(yield e,l=e.children)for(o=0,i=l.length;o<i;++o)n.push(l[o]);while(n.length)}h(We,"node_iterator");function Q(e,a){e instanceof Map?(e=[void 0,e],a===void 0&&(a=Oe)):a===void 0&&(a=Ie);for(var n=new Z(e),l,o=[n],i,d,p,g;l=o.pop();)if((d=a(l.data))&&(g=(d=Array.from(d)).length))for(l.children=d,p=g-1;p>=0;--p)o.push(i=d[p]=new Z(d[p])),i.parent=l,i.depth=l.depth+1;return n.eachBefore(qe)}h(Q,"hierarchy");function He(){return Q(this).eachBefore(Ge)}h(He,"node_copy");function Ie(e){return e.children}h(Ie,"objectChildren");function Oe(e){return Array.isArray(e)?e[1]:null}h(Oe,"mapChildren");function Ge(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}h(Ge,"copyData");function qe(e){var a=0;do e.height=a;while((e=e.parent)&&e.height<++a)}h(qe,"computeHeight");function Z(e){this.data=e,this.depth=this.height=0,this.parent=null}h(Z,"Node");Z.prototype=Q.prototype={constructor:Z,count:Ae,each:Fe,eachAfter:Ne,eachBefore:ke,find:Me,sum:_e,sort:ze,path:Ve,ancestors:Pe,descendants:Be,leaves:Re,links:Ee,copy:He,[Symbol.iterator]:We};function Xe(e){if(typeof e!="function")throw new Error;return e}h(Xe,"required");function G(){return 0}h(G,"constantZero");function q(e){return function(){return e}}h(q,"constant");function je(e){e.x0=Math.round(e.x0),e.y0=Math.round(e.y0),e.x1=Math.round(e.x1),e.y1=Math.round(e.y1)}h(je,"roundNode");function Ye(e,a,n,l,o){for(var i=e.children,d,p=-1,g=i.length,c=e.value&&(l-a)/e.value;++p<g;)d=i[p],d.y0=n,d.y1=o,d.x0=a,d.x1=a+=d.value*c}h(Ye,"treemapDice");function Ze(e,a,n,l,o){for(var i=e.children,d,p=-1,g=i.length,c=e.value&&(o-n)/e.value;++p<g;)d=i[p],d.x0=a,d.x1=l,d.y0=n,d.y1=n+=d.value*c}h(Ze,"treemapSlice");var Ke=(1+Math.sqrt(5))/2;function Ue(e,a,n,l,o,i){for(var d=[],p=a.children,g,c,u=0,w=0,r=p.length,b,v,x=a.value,f,y,M,N,D,E,_;u<r;){b=o-n,v=i-l;do f=p[w++].value;while(!f&&w<r);for(y=M=f,E=Math.max(v/b,b/v)/(x*e),_=f*f*E,D=Math.max(M/_,_/y);w<r;++w){if(f+=c=p[w].value,c<y&&(y=c),c>M&&(M=c),_=f*f*E,N=Math.max(M/_,_/y),N>D){f-=c;break}D=N}d.push(g={value:f,dice:b<v,children:p.slice(u,w)}),g.dice?Ye(g,n,l,o,x?l+=v*f/x:i):Ze(g,n,l,x?n+=b*f/x:o,i),x-=f,u=w}return d}h(Ue,"squarifyRatio");const Je=h((function e(a){function n(l,o,i,d,p){Ue(a,l,o,i,d,p)}return h(n,"squarify"),n.ratio=function(l){return e((l=+l)>1?l:1)},n}),"custom")(Ke);function Qe(){var e=Je,a=!1,n=1,l=1,o=[0],i=G,d=G,p=G,g=G,c=G;function u(r){return r.x0=r.y0=0,r.x1=n,r.y1=l,r.eachBefore(w),o=[0],a&&r.eachBefore(je),r}h(u,"treemap");function w(r){var b=o[r.depth],v=r.x0+b,x=r.y0+b,f=r.x1-b,y=r.y1-b;f<v&&(v=f=(v+f)/2),y<x&&(x=y=(x+y)/2),r.x0=v,r.y0=x,r.x1=f,r.y1=y,r.children&&(b=o[r.depth+1]=i(r)/2,v+=c(r)-b,x+=d(r)-b,f-=p(r)-b,y-=g(r)-b,f<v&&(v=f=(v+f)/2),y<x&&(x=y=(x+y)/2),e(r,v,x,f,y))}return h(w,"positionNode"),u.round=function(r){return arguments.length?(a=!!r,u):a},u.size=function(r){return arguments.length?(n=+r[0],l=+r[1],u):[n,l]},u.tile=function(r){return arguments.length?(e=Xe(r),u):e},u.padding=function(r){return arguments.length?u.paddingInner(r).paddingOuter(r):u.paddingInner()},u.paddingInner=function(r){return arguments.length?(i=typeof r=="function"?r:q(+r),u):i},u.paddingOuter=function(r){return arguments.length?u.paddingTop(r).paddingRight(r).paddingBottom(r).paddingLeft(r):u.paddingTop()},u.paddingTop=function(r){return arguments.length?(d=typeof r=="function"?r:q(+r),u):d},u.paddingRight=function(r){return arguments.length?(p=typeof r=="function"?r:q(+r),u):p},u.paddingBottom=function(r){return arguments.length?(g=typeof r=="function"?r:q(+r),u):g},u.paddingLeft=function(r){return arguments.length?(c=typeof r=="function"?r:q(+r),u):c},u}h(Qe,"treemap");var ne=class{static{h(this,"TreeMapDB")}constructor(){this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.setAccTitle=fe,this.getAccTitle=me,this.setDiagramTitle=ge,this.getDiagramTitle=ye,this.getAccDescription=Se,this.setAccDescription=ve}static{C(this,"TreeMapDB")}getNodes(){return this.nodes}getConfig(){const e=xe,a=ae();return te({...e.treemap,...a.treemap??{}})}addNode(e,a){this.nodes.push(e),this.levels.set(e,a),a===0&&(this.outerNodes.push(e),this.root??=e)}getRoot(){return{name:"",children:this.outerNodes}}addClass(e,a){const n=this.classes.get(e)??{id:e,styles:[],textStyles:[]},l=a.replace(/\\,/g,"§§§").replace(/,/g,";").replace(/§§§/g,",").split(";");l&&l.forEach(o=>{be(o)&&(n?.textStyles?n.textStyles.push(o):n.textStyles=[o]),n?.styles?n.styles.push(o):n.styles=[o]}),this.classes.set(e,n)}getClasses(){return this.classes}getStylesForClass(e){return this.classes.get(e)?.styles??[]}clear(){we(),this.nodes=[],this.levels=new Map,this.outerNodes=[],this.classes=new Map,this.root=void 0}};function le(e){if(!e.length)return[];const a=[],n=[];return e.forEach(l=>{const o={name:l.name,children:l.type==="Leaf"?void 0:[]};for(o.classSelector=l?.classSelector,l?.cssCompiledStyles&&(o.cssCompiledStyles=[l.cssCompiledStyles]),l.type==="Leaf"&&l.value!==void 0&&(o.value=l.value);n.length>0&&n[n.length-1].level>=l.level;)n.pop();if(n.length===0)a.push(o);else{const i=n[n.length-1].node;i.children?i.children.push(o):i.children=[o]}l.type!=="Leaf"&&n.push({node:o,level:l.level})}),a}h(le,"buildHierarchy");C(le,"buildHierarchy");var et=C((e,a)=>{Te(e,a);const n=[];for(const i of e.TreemapRows??[])i.$type==="ClassDefStatement"&&a.addClass(i.className??"",i.styleText??"");for(const i of e.TreemapRows??[]){const d=i.item;if(!d)continue;const p=i.indent?parseInt(i.indent):0,g=tt(d),c=d.classSelector?a.getStylesForClass(d.classSelector):[],u=c.length>0?c.join(";"):void 0,w={level:p,name:g,type:d.$type,value:d.value,classSelector:d.classSelector,cssCompiledStyles:u};n.push(w)}const l=le(n),o=C((i,d)=>{for(const p of i)a.addNode(p,d),p.children&&p.children.length>0&&o(p.children,d+1)},"addNodesRecursively");o(l,0)},"populate"),tt=C(e=>e.name?String(e.name):"","getItemName"),re={parser:{yy:void 0},parse:C(async e=>{try{const n=await Le("treemap",e);J.debug("Treemap AST:",n);const l=re.parser?.yy;if(!(l 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,l)}catch(a){throw J.error("Error parsing treemap:",a),a}},"parse")},at=10,R=10,X=25,nt=C((e,a,n,l)=>{const o=l.db,i=o.getConfig(),d=i.padding??at,p=o.getDiagramTitle(),g=o.getRoot(),{themeVariables:c}=ae();if(!g)return;const u=p?30:0,w=pe(a),r=i.nodeWidth?i.nodeWidth*R:960,b=i.nodeHeight?i.nodeHeight*R:500,v=r,x=b+u;w.attr("viewBox",`0 0 ${v} ${x}`),ue(w,x,v,i.useMaxWidth);let f;try{const t=i.valueFormat||",";if(t==="$0,0")f=C(s=>"$"+O(",")(s),"valueFormat");else if(t.startsWith("$")&&t.includes(",")){const s=/\.\d+/.exec(t),m=s?s[0]:"";f=C(T=>"$"+O(","+m)(T),"valueFormat")}else if(t.startsWith("$")){const s=t.substring(1);f=C(m=>"$"+O(s||"")(m),"valueFormat")}else f=O(t)}catch(t){J.error("Error creating format function:",t),f=O(",")}const y=U().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=U().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=U().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]);p&&w.append("text").attr("x",v/2).attr("y",u/2).attr("class","treemapTitle").attr("text-anchor","middle").attr("dominant-baseline","middle").text(p);const D=w.append("g").attr("transform",`translate(0, ${u})`).attr("class","treemapContainer"),E=Q(g).sum(t=>t.value??0).sort((t,s)=>(s.value??0)-(t.value??0)),ee=Qe().size([r,b]).paddingTop(t=>t.children&&t.children.length>0?X+R:0).paddingInner(d).paddingLeft(t=>t.children&&t.children.length>0?R:0).paddingRight(t=>t.children&&t.children.length>0?R:0).paddingBottom(t=>t.children&&t.children.length>0?R:0).round(!0)(E),se=ee.descendants().filter(t=>t.children&&t.children.length>0),W=D.selectAll(".treemapSection").data(se).enter().append("g").attr("class","treemapSection").attr("transform",t=>`translate(${t.x0},${t.y0})`);W.append("rect").attr("width",t=>t.x1-t.x0).attr("height",X).attr("class","treemapSectionHeader").attr("fill","none").attr("fill-opacity",.6).attr("stroke-width",.6).attr("style",t=>t.depth===0?"display: none;":""),W.append("clipPath").attr("id",(t,s)=>`clip-section-${a}-${s}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-12)).attr("height",X),W.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class",(t,s)=>`treemapSection section${s}`).attr("fill",t=>y(t.data.name)).attr("fill-opacity",.6).attr("stroke",t=>M(t.data.name)).attr("stroke-width",2).attr("stroke-opacity",.4).attr("style",t=>{if(t.depth===0)return"display: none;";const s=B({cssCompiledStyles:t.data.cssCompiledStyles});return s.nodeStyles+";"+s.borderStyles.join(";")}),W.append("text").attr("class","treemapSectionLabel").attr("x",6).attr("y",X/2).attr("dominant-baseline","middle").text(t=>t.depth===0?"":t.data.name).attr("font-weight","bold").attr("style",t=>{if(t.depth===0)return"display: none;";const s="dominant-baseline: middle; font-size: 12px; fill:"+N(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",m=B({cssCompiledStyles:t.data.cssCompiledStyles});return s+m.labelStyles.replace("color:","fill:")}).each(function(t){if(t.depth===0)return;const s=Y(this),m=t.data.name;s.text(m);const T=t.x1-t.x0,$=6;let A;i.showValues!==!1&&t.value?A=T-10-30-10-$:A=T-$-6;const F=Math.max(15,A),S=s.node();if(S.getComputedTextLength()>F){let L=m;for(;L.length>0;){if(L=m.substring(0,L.length-1),L.length===0){s.text("..."),S.getComputedTextLength()>F&&s.text("");break}if(s.text(L+"..."),S.getComputedTextLength()<=F)break}}}),i.showValues!==!1&&W.append("text").attr("class","treemapSectionValue").attr("x",t=>t.x1-t.x0-10).attr("y",X/2).attr("text-anchor","end").attr("dominant-baseline","middle").text(t=>t.value?f(t.value):"").attr("font-style","italic").attr("style",t=>{if(t.depth===0)return"display: none;";const s="text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:"+N(t.data.name)+"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;",m=B({cssCompiledStyles:t.data.cssCompiledStyles});return s+m.labelStyles.replace("color:","fill:")});const ie=ee.leaves(),j=D.selectAll(".treemapLeafGroup").data(ie).enter().append("g").attr("class",(t,s)=>`treemapNode treemapLeafGroup leaf${s}${t.data.classSelector?` ${t.data.classSelector}`:""}x`).attr("transform",t=>`translate(${t.x0},${t.y0})`);j.append("rect").attr("width",t=>t.x1-t.x0).attr("height",t=>t.y1-t.y0).attr("class","treemapLeaf").attr("fill",t=>t.parent?y(t.parent.data.name):y(t.data.name)).attr("style",t=>B({cssCompiledStyles:t.data.cssCompiledStyles}).nodeStyles).attr("fill-opacity",.3).attr("stroke",t=>t.parent?y(t.parent.data.name):y(t.data.name)).attr("stroke-width",3),j.append("clipPath").attr("id",(t,s)=>`clip-${a}-${s}`).append("rect").attr("width",t=>Math.max(0,t.x1-t.x0-4)).attr("height",t=>Math.max(0,t.y1-t.y0-4)),j.append("text").attr("class","treemapLabel").attr("x",t=>(t.x1-t.x0)/2).attr("y",t=>(t.y1-t.y0)/2).attr("style",t=>{const s="text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:"+N(t.data.name)+";",m=B({cssCompiledStyles:t.data.cssCompiledStyles});return s+m.labelStyles.replace("color:","fill:")}).attr("clip-path",(t,s)=>`url(#clip-${a}-${s})`).text(t=>t.data.name).each(function(t){const s=Y(this),m=t.x1-t.x0,T=t.y1-t.y0,$=s.node(),A=4,P=m-2*A,F=T-2*A;if(P<10||F<10){s.style("display","none");return}let S=parseInt(s.style("font-size"),10);const z=8,k=28,L=.6,V=6,H=2;for(;$.getComputedTextLength()>P&&S>z;)S--,s.style("font-size",`${S}px`);let I=Math.max(V,Math.min(k,Math.round(S*L))),K=S+H+I;for(;K>F&&S>z&&(S--,I=Math.max(V,Math.min(k,Math.round(S*L))),!(I<V&&S===z));)s.style("font-size",`${S}px`),K=S+H+I;s.style("font-size",`${S}px`),($.getComputedTextLength()>P||S<z||F<S)&&s.style("display","none")}),i.showValues!==!1&&j.append("text").attr("class","treemapValue").attr("x",s=>(s.x1-s.x0)/2).attr("y",function(s){return(s.y1-s.y0)/2}).attr("style",s=>{const m="text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:"+N(s.data.name)+";",T=B({cssCompiledStyles:s.data.cssCompiledStyles});return m+T.labelStyles.replace("color:","fill:")}).attr("clip-path",(s,m)=>`url(#clip-${a}-${m})`).text(s=>s.value?f(s.value):"").each(function(s){const m=Y(this),T=this.parentNode;if(!T){m.style("display","none");return}const $=Y(T).select(".treemapLabel");if($.empty()||$.style("display")==="none"){m.style("display","none");return}const A=parseFloat($.style("font-size")),P=28,F=.6,S=6,z=2,k=Math.max(S,Math.min(P,Math.round(A*F)));m.style("font-size",`${k}px`);const V=(s.y1-s.y0)/2+A/2+z;m.attr("y",V);const H=s.x1-s.x0,ce=s.y1-s.y0-4,de=H-8;m.node().getComputedTextLength()>de||V+k>ce||k<S?m.style("display","none"):m.style("display",null)});const oe=i.diagramPadding??8;Ce(w,oe,"flowchart",i?.useMaxWidth||!1)},"draw"),lt=C(function(e,a){return a.db.getClasses()},"getClasses"),rt={draw:nt,getClasses:lt},st={sectionStrokeColor:"black",sectionStrokeWidth:"1",sectionFillColor:"#efefef",leafStrokeColor:"black",leafStrokeWidth:"1",leafFillColor:"#efefef",labelColor:"black",labelFontSize:"12px",valueFontSize:"10px",valueColor:"black",titleColor:"black",titleFontSize:"14px"},it=C(({treemap:e}={})=>{const a=te(st,e);return`
2
2
  .treemapNode.section {
3
3
  stroke: ${a.sectionStrokeColor};
4
4
  stroke-width: ${a.sectionStrokeWidth};
@@ -22,4 +22,4 @@ var he=Object.defineProperty;var h=(e,a)=>he(e,"name",{value:a,configurable:!0})
22
22
  font-size: ${a.titleFontSize};
23
23
  }
24
24
  `},"getStyles"),ot=it,Lt={parser:re,get db(){return new ne},renderer:rt,styles:ot};export{Lt as diagram};
25
- //# sourceMappingURL=diagram-PSM6KHXK-7x7Qnd4X.js.map
25
+ //# sourceMappingURL=diagram-PSM6KHXK-CoH6fjzQ.js.map