@mir-code/specs-platform 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +460 -0
  3. package/assets/specs-usage-statusline.sh +77 -0
  4. package/assets/template/.agents/README.md +123 -0
  5. package/assets/template/.agents/RUNTIME.md +64 -0
  6. package/assets/template/.agents/agents/discovery-agent.md +15 -0
  7. package/assets/template/.agents/agents/drawing-agent.md +15 -0
  8. package/assets/template/.agents/agents/feature-runner.md +15 -0
  9. package/assets/template/.agents/agents/refinement-runner.md +15 -0
  10. package/assets/template/.agents/agents/refinement.md +15 -0
  11. package/assets/template/.agents/project.md +158 -0
  12. package/assets/template/.agents/scripts/check-commit.mjs +70 -0
  13. package/assets/template/.agents/scripts/validate-spec.mjs +345 -0
  14. package/assets/template/.agents/skills/discovery-agent/SKILL.md +80 -0
  15. package/assets/template/.agents/skills/discovery-writing/SKILL.md +76 -0
  16. package/assets/template/.agents/skills/drawing-agent/SKILL.md +85 -0
  17. package/assets/template/.agents/skills/drawing-writing/SKILL.md +100 -0
  18. package/assets/template/.agents/skills/execution-protocol/SKILL.md +110 -0
  19. package/assets/template/.agents/skills/execution-protocol/references/git.md +104 -0
  20. package/assets/template/.agents/skills/execution-protocol/references/relatorio-halt.md +103 -0
  21. package/assets/template/.agents/skills/feature-runner/SKILL.md +81 -0
  22. package/assets/template/.agents/skills/feature-runner/references/divergencias.md +38 -0
  23. package/assets/template/.agents/skills/feature-runner/references/implementar.md +80 -0
  24. package/assets/template/.agents/skills/feature-runner/references/localizar.md +46 -0
  25. package/assets/template/.agents/skills/mermaid-diagramming/SKILL.md +198 -0
  26. package/assets/template/.agents/skills/prototype-check/SKILL.md +90 -0
  27. package/assets/template/.agents/skills/refinement/SKILL.md +136 -0
  28. package/assets/template/.agents/skills/refinement/references/estrutura.md +27 -0
  29. package/assets/template/.agents/skills/refinement/references/mapear-terreno.md +46 -0
  30. package/assets/template/.agents/skills/refinement/references/validar-renderizacao.md +29 -0
  31. package/assets/template/.agents/skills/refinement-runner/SKILL.md +145 -0
  32. package/assets/template/.agents/skills/requirements-closure/SKILL.md +236 -0
  33. package/assets/template/.agents/skills/spec-writing/SKILL.md +258 -0
  34. package/assets/template/.agents/skills/test-strategy/SKILL.md +176 -0
  35. package/assets/template/.agents/skills/verification/SKILL.md +143 -0
  36. package/assets/template/.specs/config.json +39 -0
  37. package/assets/template/.specs/discoveries/meta.json +4 -0
  38. package/assets/template/.specs/drawings/meta.json +4 -0
  39. package/assets/template/.specs/specs/_templates/task-backend.md +75 -0
  40. package/assets/template/.specs/specs/_templates/task-frontend.md +89 -0
  41. package/assets/template/.specs/specs/_templates/task-integracao.md +72 -0
  42. package/assets/template/.specs/specs/exemplo/feat-exemplo-primeira-task.md +82 -0
  43. package/assets/template/.specs/specs/exemplo/meta.json +8 -0
  44. package/assets/template/.specs/specs/exemplo/overview.md +45 -0
  45. package/assets/template/.specs/specs/meta.json +4 -0
  46. package/assets/template/SPECS.md +213 -0
  47. package/dist/chunk-SOOETS3N.js +3490 -0
  48. package/dist/chunk-SOOETS3N.js.map +1 -0
  49. package/dist/cli.js +15 -0
  50. package/dist/cli.js.map +1 -0
  51. package/dist/index.d.ts +69 -0
  52. package/dist/index.js +16 -0
  53. package/dist/index.js.map +1 -0
  54. package/dist/ui/assets/abnfDiagram-VCTEODGH-DYXtkHNq.js +2 -0
  55. package/dist/ui/assets/abnfDiagram-VCTEODGH-DYXtkHNq.js.map +1 -0
  56. package/dist/ui/assets/arc-CJs0gz4E.js +2 -0
  57. package/dist/ui/assets/arc-CJs0gz4E.js.map +1 -0
  58. package/dist/ui/assets/architectureDiagram-5GKGNRK7-Br7ZNRfe.js +37 -0
  59. package/dist/ui/assets/architectureDiagram-5GKGNRK7-Br7ZNRfe.js.map +1 -0
  60. package/dist/ui/assets/blockDiagram-I7D4REHJ-172V7R5o.js +130 -0
  61. package/dist/ui/assets/blockDiagram-I7D4REHJ-172V7R5o.js.map +1 -0
  62. package/dist/ui/assets/c4Diagram-7LVT6UL2-B4AYFhRs.js +39 -0
  63. package/dist/ui/assets/c4Diagram-7LVT6UL2-B4AYFhRs.js.map +1 -0
  64. package/dist/ui/assets/channel-BfWO3B41.js +2 -0
  65. package/dist/ui/assets/channel-BfWO3B41.js.map +1 -0
  66. package/dist/ui/assets/chunk-2Q5K7J3B-B-u7gtZN.js +2 -0
  67. package/dist/ui/assets/chunk-2Q5K7J3B-B-u7gtZN.js.map +1 -0
  68. package/dist/ui/assets/chunk-5VM5RSS4-CjFDq_cq.js +16 -0
  69. package/dist/ui/assets/chunk-5VM5RSS4-CjFDq_cq.js.map +1 -0
  70. package/dist/ui/assets/chunk-F27PBJKO-BDYeB7B8.js +2 -0
  71. package/dist/ui/assets/chunk-F27PBJKO-BDYeB7B8.js.map +1 -0
  72. package/dist/ui/assets/chunk-IMKFNOWR-y2kXPnac.js +232 -0
  73. package/dist/ui/assets/chunk-IMKFNOWR-y2kXPnac.js.map +1 -0
  74. package/dist/ui/assets/chunk-JWPE2WC7-DyCryvDN.js +2 -0
  75. package/dist/ui/assets/chunk-JWPE2WC7-DyCryvDN.js.map +1 -0
  76. package/dist/ui/assets/chunk-POPQ4Y6H-DeaxKHvR.js +2 -0
  77. package/dist/ui/assets/chunk-POPQ4Y6H-DeaxKHvR.js.map +1 -0
  78. package/dist/ui/assets/chunk-SVP7TREG-CmcZEncL.js +89 -0
  79. package/dist/ui/assets/chunk-SVP7TREG-CmcZEncL.js.map +1 -0
  80. package/dist/ui/assets/chunk-TICWLB2K-Df1RRXWR.js +207 -0
  81. package/dist/ui/assets/chunk-TICWLB2K-Df1RRXWR.js.map +1 -0
  82. package/dist/ui/assets/chunk-XXDRQBXY-ClTat8Q0.js +2 -0
  83. package/dist/ui/assets/chunk-XXDRQBXY-ClTat8Q0.js.map +1 -0
  84. package/dist/ui/assets/classDiagram-ZZMXUADV-YTUiu8rF.js +2 -0
  85. package/dist/ui/assets/classDiagram-ZZMXUADV-YTUiu8rF.js.map +1 -0
  86. package/dist/ui/assets/classDiagram-v2-VYDZK3BY-YTUiu8rF.js +2 -0
  87. package/dist/ui/assets/classDiagram-v2-VYDZK3BY-YTUiu8rF.js.map +1 -0
  88. package/dist/ui/assets/cose-bilkent-JH36ORCC-QvqQLoy5.js +2 -0
  89. package/dist/ui/assets/cose-bilkent-JH36ORCC-QvqQLoy5.js.map +1 -0
  90. package/dist/ui/assets/cynefin-OW5HDTMX-BY6w3pAQ.js +179 -0
  91. package/dist/ui/assets/cynefin-OW5HDTMX-BY6w3pAQ.js.map +1 -0
  92. package/dist/ui/assets/cynefinDiagram-5FMLGOSQ-luPP4ha1.js +63 -0
  93. package/dist/ui/assets/cynefinDiagram-5FMLGOSQ-luPP4ha1.js.map +1 -0
  94. package/dist/ui/assets/cytoscape.esm-Ix0LnXOy.js +332 -0
  95. package/dist/ui/assets/cytoscape.esm-Ix0LnXOy.js.map +1 -0
  96. package/dist/ui/assets/dagre-GXQ25YYZ-DhpPwKqq.js +5 -0
  97. package/dist/ui/assets/dagre-GXQ25YYZ-DhpPwKqq.js.map +1 -0
  98. package/dist/ui/assets/defaultLocale-DX6XiGOO.js +2 -0
  99. package/dist/ui/assets/defaultLocale-DX6XiGOO.js.map +1 -0
  100. package/dist/ui/assets/diagram-S7CK7UJ4-B9wvQM0w.js +31 -0
  101. package/dist/ui/assets/diagram-S7CK7UJ4-B9wvQM0w.js.map +1 -0
  102. package/dist/ui/assets/diagram-UQ7AKVKN-gm1M_iZS.js +42 -0
  103. package/dist/ui/assets/diagram-UQ7AKVKN-gm1M_iZS.js.map +1 -0
  104. package/dist/ui/assets/diagram-VSXAHHWV-DkEB6nEx.js +4 -0
  105. package/dist/ui/assets/diagram-VSXAHHWV-DkEB6nEx.js.map +1 -0
  106. package/dist/ui/assets/diagram-VX7I27RA-Ce2F1bHi.js +25 -0
  107. package/dist/ui/assets/diagram-VX7I27RA-Ce2F1bHi.js.map +1 -0
  108. package/dist/ui/assets/diagram-Z3DM3KII-B5ArCh-E.js +25 -0
  109. package/dist/ui/assets/diagram-Z3DM3KII-B5ArCh-E.js.map +1 -0
  110. package/dist/ui/assets/ebnfDiagram-PWID7BFC-DgBM80MD.js +2 -0
  111. package/dist/ui/assets/ebnfDiagram-PWID7BFC-DgBM80MD.js.map +1 -0
  112. package/dist/ui/assets/erDiagram-RLTQ6QDP-C161af8G.js +100 -0
  113. package/dist/ui/assets/erDiagram-RLTQ6QDP-C161af8G.js.map +1 -0
  114. package/dist/ui/assets/flowDiagram-HODETNUW-B8N_WyW5.js +169 -0
  115. package/dist/ui/assets/flowDiagram-HODETNUW-B8N_WyW5.js.map +1 -0
  116. package/dist/ui/assets/ganttDiagram-EL5Y4UJY-CD2RJpTb.js +293 -0
  117. package/dist/ui/assets/ganttDiagram-EL5Y4UJY-CD2RJpTb.js.map +1 -0
  118. package/dist/ui/assets/gitGraphDiagram-WWUBYQGX-BrDAzeFT.js +107 -0
  119. package/dist/ui/assets/gitGraphDiagram-WWUBYQGX-BrDAzeFT.js.map +1 -0
  120. package/dist/ui/assets/index-CVWRdirI.css +32 -0
  121. package/dist/ui/assets/index-DoR97Zqf.js +408 -0
  122. package/dist/ui/assets/index-DoR97Zqf.js.map +1 -0
  123. package/dist/ui/assets/infoDiagram-27XIBGKW-HYGaMzrA.js +3 -0
  124. package/dist/ui/assets/infoDiagram-27XIBGKW-HYGaMzrA.js.map +1 -0
  125. package/dist/ui/assets/init-Gi6I4Gst.js +2 -0
  126. package/dist/ui/assets/init-Gi6I4Gst.js.map +1 -0
  127. package/dist/ui/assets/ishikawaDiagram-5VMMS53U-DXTLlBiw.js +71 -0
  128. package/dist/ui/assets/ishikawaDiagram-5VMMS53U-DXTLlBiw.js.map +1 -0
  129. package/dist/ui/assets/journeyDiagram-3NMN7TZE-DSJ8QN1S.js +140 -0
  130. package/dist/ui/assets/journeyDiagram-3NMN7TZE-DSJ8QN1S.js.map +1 -0
  131. package/dist/ui/assets/kanban-definition-UXKFOSKX-Bm5iz0k3.js +90 -0
  132. package/dist/ui/assets/kanban-definition-UXKFOSKX-Bm5iz0k3.js.map +1 -0
  133. package/dist/ui/assets/katex-C5jXJg4s.js +258 -0
  134. package/dist/ui/assets/katex-C5jXJg4s.js.map +1 -0
  135. package/dist/ui/assets/layout-DfJgW6eG.js +2 -0
  136. package/dist/ui/assets/layout-DfJgW6eG.js.map +1 -0
  137. package/dist/ui/assets/linear-B_kyVotV.js +2 -0
  138. package/dist/ui/assets/linear-B_kyVotV.js.map +1 -0
  139. package/dist/ui/assets/mermaid-block-CUJSBQFx.js +2 -0
  140. package/dist/ui/assets/mermaid-block-CUJSBQFx.js.map +1 -0
  141. package/dist/ui/assets/mermaid.core-ExHG1WnM.js +313 -0
  142. package/dist/ui/assets/mermaid.core-ExHG1WnM.js.map +1 -0
  143. package/dist/ui/assets/mindmap-definition-YA3MSWOX-B1Hh9dQz.js +97 -0
  144. package/dist/ui/assets/mindmap-definition-YA3MSWOX-B1Hh9dQz.js.map +1 -0
  145. package/dist/ui/assets/ordinal-Cboi1Yqb.js +2 -0
  146. package/dist/ui/assets/ordinal-Cboi1Yqb.js.map +1 -0
  147. package/dist/ui/assets/pegDiagram-XKGWAZYB-x242yOd7.js +2 -0
  148. package/dist/ui/assets/pegDiagram-XKGWAZYB-x242yOd7.js.map +1 -0
  149. package/dist/ui/assets/pieDiagram-E7YTZNPT-Dl-YP7Xs.js +40 -0
  150. package/dist/ui/assets/pieDiagram-E7YTZNPT-Dl-YP7Xs.js.map +1 -0
  151. package/dist/ui/assets/quadrantDiagram-AXDQQJYC-CMJ920V9.js +8 -0
  152. package/dist/ui/assets/quadrantDiagram-AXDQQJYC-CMJ920V9.js.map +1 -0
  153. package/dist/ui/assets/railroadDiagram-O6MQD6OU-1kV83y5t.js +2 -0
  154. package/dist/ui/assets/railroadDiagram-O6MQD6OU-1kV83y5t.js.map +1 -0
  155. package/dist/ui/assets/requirementDiagram-BXWQKSXE-BFd8ZZD3.js +85 -0
  156. package/dist/ui/assets/requirementDiagram-BXWQKSXE-BFd8ZZD3.js.map +1 -0
  157. package/dist/ui/assets/sankeyDiagram-P5KCCOFB-C0LZevnf.js +41 -0
  158. package/dist/ui/assets/sankeyDiagram-P5KCCOFB-C0LZevnf.js.map +1 -0
  159. package/dist/ui/assets/sequenceDiagram-WJ2MYXX4-BasIXLJ0.js +163 -0
  160. package/dist/ui/assets/sequenceDiagram-WJ2MYXX4-BasIXLJ0.js.map +1 -0
  161. package/dist/ui/assets/sizeCapture-INFHLROL-qAtnqB7N.js +2 -0
  162. package/dist/ui/assets/sizeCapture-INFHLROL-qAtnqB7N.js.map +1 -0
  163. package/dist/ui/assets/stateDiagram-D77RDMKH-CllWDWZP.js +2 -0
  164. package/dist/ui/assets/stateDiagram-D77RDMKH-CllWDWZP.js.map +1 -0
  165. package/dist/ui/assets/stateDiagram-v2-MP3YSRHH-Dwntf8Tk.js +2 -0
  166. package/dist/ui/assets/stateDiagram-v2-MP3YSRHH-Dwntf8Tk.js.map +1 -0
  167. package/dist/ui/assets/swimlanes-42K2YHIH-Bgt0KslH.js +2 -0
  168. package/dist/ui/assets/swimlanes-42K2YHIH-Bgt0KslH.js.map +1 -0
  169. package/dist/ui/assets/swimlanesDiagram-VR7AAH4N-C9abicdw.js +9 -0
  170. package/dist/ui/assets/swimlanesDiagram-VR7AAH4N-C9abicdw.js.map +1 -0
  171. package/dist/ui/assets/timeline-definition-24CTP7MA-BYO2h9Qr.js +121 -0
  172. package/dist/ui/assets/timeline-definition-24CTP7MA-BYO2h9Qr.js.map +1 -0
  173. package/dist/ui/assets/vennDiagram-4TSXK5OY-ZzyiwIUi.js +35 -0
  174. package/dist/ui/assets/vennDiagram-4TSXK5OY-ZzyiwIUi.js.map +1 -0
  175. package/dist/ui/assets/wardleyDiagram-VM6X3IG4-DfjKCK0N.js +79 -0
  176. package/dist/ui/assets/wardleyDiagram-VM6X3IG4-DfjKCK0N.js.map +1 -0
  177. package/dist/ui/assets/xychartDiagram-S5SC5T6Z-Z7daOfmM.js +8 -0
  178. package/dist/ui/assets/xychartDiagram-S5SC5T6Z-Z7daOfmM.js.map +1 -0
  179. package/dist/ui/favicon.svg +6 -0
  180. package/dist/ui/index.html +21 -0
  181. package/package.json +70 -0
  182. package/scripts/copy-ui.mjs +21 -0
  183. package/scripts/fix-node-pty-perms.cjs +73 -0
@@ -0,0 +1,5 @@
1
+ import{_ as m,ao as D,c as A,Q as Y,l as p,ap as _,aq as z,ar as b,as as H,at as J,au as T,av as R,aw as F,ax as q,ay as C,ah as P,af as W,az as j,aA as Q}from"./mermaid.core-ExHG1WnM.js";import{l as U}from"./layout-DfJgW6eG.js";import"./index-DoR97Zqf.js";var v=m((t,e,d)=>Math.max(e,Math.min(d,t)),"clamp"),B=m((t="TB")=>{switch(t){case"BT":return"bottom";case"LR":return"right";case"RL":return"left";case"TB":default:return"top"}},"getDefaultSelfLoopSide"),K=m(t=>t==="flowchart"||t==="flowchart-v2"||t==="stateDiagram"||t==="er"||t==="classDiagram","shouldMergeSelfLoopSegments"),V=["x","y","width","height","labelBBox","intersect","calcIntersect","diff","clusterNode"],Z=m((t,e,d,g,s)=>{const h=[],L=new Set;if(d.forEach(({start:l,end:r})=>{l!==g&&L.add(l),r!==g&&L.add(r)}),L.forEach(l=>{const r=t.node(l);typeof(r==null?void 0:r.x)=="number"&&typeof(r==null?void 0:r.y)=="number"&&h.push(r)}),h.length===0&&d.forEach(({edge:l})=>{(l.points??[]).forEach(r=>{typeof(r==null?void 0:r.x)=="number"&&typeof(r==null?void 0:r.y)=="number"&&h.push(r)})}),h.length===0)return B(s);const c=h.reduce((l,r)=>({x:l.x+r.x/h.length,y:l.y+r.y/h.length}),{x:0,y:0}),i=c.x-e.x,o=c.y-e.y;return Math.abs(i)>Math.abs(o)?i>0?"right":"left":Math.abs(o)>0?o>0?"bottom":"top":B(s)},"getSelfLoopSide"),$=m((t,e="top",d=0,g=0)=>{const s=t.x,h=t.y-d,L=t.width/2,c=t.height/2,i=Math.max(36,Math.min(100,t.width*.8)),o=v(Math.max(g,t.width*.35),36,i),l=v(Math.min(t.width,t.height)*.45,24,48);switch(e){case"bottom":{const r=h+c;return[{x:s-o/2,y:r},{x:s-o/2,y:r+l},{x:s+o/2,y:r+l},{x:s+o/2,y:r}]}case"right":{const r=s+L;return[{x:r,y:h-o/2},{x:r+l,y:h-o/2},{x:r+l,y:h+o/2},{x:r,y:h+o/2}]}case"left":{const r=s-L;return[{x:r,y:h-o/2},{x:r-l,y:h-o/2},{x:r-l,y:h+o/2},{x:r,y:h+o/2}]}case"top":default:{const r=h-c;return[{x:s-o/2,y:r},{x:s-o/2,y:r-l},{x:s+o/2,y:r-l},{x:s+o/2,y:r}]}}},"getSelfLoopPoints"),ee=m((t,e,d="top",g=0,s={})=>{const L=t.x,c=t.y-g,i=s.width??0,o=s.height??0;switch(d){case"bottom":return{x:L,y:Math.max(...e.map(l=>l.y))+o/2+4};case"right":return{x:Math.max(...e.map(l=>l.x))+i/2+4,y:c};case"left":return{x:Math.min(...e.map(l=>l.x))-i/2-4,y:c};case"top":default:return{x:L,y:Math.min(...e.map(l=>l.y))-o/2-4}}},"getSelfLoopLabelPosition"),M=m((t,e=0,{mergeSelfLoops:d=!0}={})=>{var L;const g=new Map,s=[],h=(L=t.graph())==null?void 0:L.rankdir;return t.edges().forEach(c=>{const i=t.edge(c);if(d&&i.selfLoop){const o=i.selfLoop.id;g.has(o)||g.set(o,[]),g.get(o).push({edge:i,start:c.v,end:c.w})}else s.push({edge:i,start:c.v,end:c.w})}),g.forEach(c=>{if(c.length!==3){c.forEach(E=>s.push(E));return}c.sort((E,x)=>E.edge.selfLoop.order-x.edge.selfLoop.order);const[i,o,l]=c,r=i.edge.originalEdge??o.edge.originalEdge??l.edge.originalEdge??o.edge,a=t.node(r.start);if(!a){c.forEach(E=>s.push(E));return}const w={width:o.edge.width,height:o.edge.height},y=Z(t,a,c,r.start,h),f=$(a,y,e,w.width??0),n=ee(a,f,y,e,w),u={...o.edge,...r,id:r.id,points:f,start:r.start,end:r.end,x:n.x,y:n.y,width:w.width,height:w.height,labelStyle:o.edge.labelStyle,fromCluster:i.edge.fromCluster??o.edge.fromCluster??l.edge.fromCluster,toCluster:i.edge.toCluster??o.edge.toCluster??l.edge.toCluster};delete u.selfLoop,delete u.originalEdge,s.push({edge:u,start:u.start,end:u.end})}),s},"getEdgesToRender"),G=m(async({element:t,graph:e,diagramType:d,id:g,parentCluster:s,siteConfig:h})=>{const L=e.graph().rankdir;p.trace("Dir in recursive render - dir:",L);const{clusters:c,edgePaths:i,edgeLabels:o,nodes:l,rootGroups:r}=H(t,{edgePathsClass:"edgePaths"});e.nodes()?p.info("Recursive render XXX",e.nodes()):p.info("No nodes found for",e),e.edges().length>0&&p.info("Recursive edges",e.edge(e.edges()[0]));const a=K(d);await Promise.all(e.nodes().map(async function(f){const n=e.node(f);if(s!==void 0){const u=JSON.parse(JSON.stringify(s.clusterData));p.trace(`Setting data for parent cluster XXX
2
+ Node.id = `,f,`
3
+ data=`,u.height,`
4
+ Parent cluster`,s.height),e.setNode(s.id,u),e.parent(f)||(p.trace("Setting parent",f,s.id),e.setParent(f,s.id,u))}if(p.info("(Insert) Node XXX"+f+": "+JSON.stringify(e.node(f))),n!=null&&n.clusterNode){p.info("Cluster identified XBX",f,n.width,e.node(f));const{ranksep:u,nodesep:E}=e.graph();n.graph.setGraph({...n.graph.graph(),ranksep:u+25,nodesep:E});const x=await ne({element:l,graph:n.graph,diagramType:d,id:g,parentCluster:e.node(f),siteConfig:h}),S=x.elem;J(n,S),n.diff=x.diff||0,p.info("New compound node after recursive render XAX",f,"width",n.width,"height",n.height),T(S,n)}else e.children(f).length>0?(p.trace("Cluster - the non recursive path XBX",f,n.id,n,n.width,"Graph:",e),p.trace(R(n.id,e)),b.set(n.id,{id:R(n.id,e),node:n})):(p.trace("Node - the non recursive path XAX",f,l,e.node(f),L),await F(l,e.node(f),{config:h,dir:L}))})),await m(async()=>{const f=e.edges().map(async function(n){var E,x,S,X;const u=e.edge(n.v,n.w,n.name);if(p.info("Edge "+n.v+" -> "+n.w+": "+JSON.stringify(n)),p.info("Edge "+n.v+" -> "+n.w+": ",n," ",JSON.stringify(e.edge(n))),p.info("Fix",b,"ids:",n.v,n.w,"Translating: ",b.get(n.v),b.get(n.w)),a&&u.selfLoop){if(u.selfLoop.order!==1)return;const N={...u.originalEdge,...u,id:u.selfLoop.id,startLabelLeft:((E=u.originalEdge)==null?void 0:E.startLabelLeft)??u.startLabelLeft,startLabelRight:((x=u.originalEdge)==null?void 0:x.startLabelRight)??u.startLabelRight,endLabelLeft:((S=u.originalEdge)==null?void 0:S.endLabelLeft)??u.endLabelLeft,endLabelRight:((X=u.originalEdge)==null?void 0:X.endLabelRight)??u.endLabelRight};await C(o,N),u.width=N.width,u.height=N.height,u.labelStyle=N.labelStyle;return}await C(o,u)});await Promise.all(f)},"processEdges")();const{subGraphTitleTotalMargin:y}=q(h);return{elem:r,graph:e,groups:{clusters:c,edgePaths:i,edgeLabels:o,nodes:l,rootGroups:r},diagramType:d,id:g,mergeSelfLoops:a,subGraphTitleTotalMargin:y}},"measureDagreGraph"),k=m(t=>{p.info("############################################# XXX"),p.info("### Layout ### XXX"),p.info("############################################# XXX"),U(t)},"runDagreGraphLayout"),te=m((t,e,d)=>{const g=t.node(e);if(!g)return;const s={...g};return g!=null&&g.clusterNode?s.y=(g.y??0)+d:t.children(e).length>0?s.height=(g.height??0)+d:s.y=(g.y??0)+d/2,s},"normalizeDagreNode"),I=m((t,e)=>{V.forEach(d=>{e[d]!==void 0&&(t[d]=e[d])})},"applyDagreNodeLayout"),re=m((t,e,d,g)=>({...t,start:t.start??e,end:t.end??d,points:(t.points??[]).map(s=>({...s,y:typeof s.y=="number"?s.y+g:s.y}))}),"normalizeDagreEdge"),ae=m((t,e)=>{const{graph:d,mergeSelfLoops:g,subGraphTitleTotalMargin:s=0}=e,h=new Map(t.nodes.map(c=>[c.id,c]));D(d).forEach(c=>{const i=te(d,c,s);if(!i)return;I(d.node(c),i);const o=h.get(c);o&&I(o,i)});const L=s/2;return t.edges=M(d,L,{mergeSelfLoops:g}).map(({edge:c,start:i,end:o})=>re(c,i,o,L)),t},"applyDagreLayoutResult"),oe=m(async({elem:t,graph:e,groups:{clusters:d,edgePaths:g},diagramType:s,id:h,mergeSelfLoops:L,subGraphTitleTotalMargin:c})=>{let i=0;await Promise.all(D(e).map(async function(r){var w;const a=e.node(r);if(p.info("Position XBX => "+r+": ("+a.x,","+a.y,") width: ",a.width," height: ",a.height),a!=null&&a.clusterNode)a.y+=c,p.info("A tainted cluster node XBX1",r,a.id,a.width,a.height,a.x,a.y,e.parent(r)),b.get(a.id).node=a,P(a);else if(e.children(r).length>0){p.info("A pure cluster node XBX1",r,a.id,a.x,a.y,a.width,a.height,e.parent(r)),a.height+=c,e.node(a.parentId);const y=(a==null?void 0:a.padding)/2||0,f=((w=a==null?void 0:a.labelBBox)==null?void 0:w.height)||0,n=f-y||0;p.debug("OffsetY",n,"labelHeight",f,"halfPadding",y),await W(d,a),b.get(a.id).node=a}else{const y=e.node(a.parentId);a.y+=c/2,p.info("A regular node XBX1 - using the padding",a.id,"parent",a.parentId,a.width,a.height,a.x,a.y,"offsetY",a.offsetY,"parent",y,y==null?void 0:y.offsetY,a),P(a)}}));const o=c/2;return M(e,o,{mergeSelfLoops:L}).forEach(function({edge:r,start:a,end:w}){p.info("Edge "+a+" -> "+w+": "+JSON.stringify(r),r),r.points.forEach(u=>u.y+=o);const y=e.node(a),f=e.node(w),n=j(g,r,b,s,y,f,h);Q(r,n)}),e.nodes().forEach(function(r){const a=e.node(r);p.info(r,a.type,a.diff),a.isGroup&&(i=a.diff)}),p.warn("Returning from recursive render XAX",t,i),{elem:t,diff:i}},"paintDagreLayoutCore"),ne=m(async t=>{const e=await G(t);return k(e.graph),await oe(e)},"renderDagreSubgraph"),O=m(t=>{var d,g,s,h,L,c;const e=new Y({multigraph:!0,compound:!0}).setGraph({rankdir:t.direction,nodesep:((d=t.config)==null?void 0:d.nodeSpacing)||t.nodeSpacing||((s=(g=t.config)==null?void 0:g.flowchart)==null?void 0:s.nodeSpacing),ranksep:((h=t.config)==null?void 0:h.rankSpacing)||t.rankSpacing||((c=(L=t.config)==null?void 0:L.flowchart)==null?void 0:c.rankSpacing),marginx:8,marginy:8}).setDefaultEdgeLabel(function(){return{}});return t.nodes.forEach(i=>{e.setNode(i.id,{...i}),i.parentId&&e.setParent(i.id,i.parentId)}),p.debug("Edges:",t.edges),t.edges.forEach(i=>{if(i.start===i.end){const o=i.start,l=o+"---"+o+"---1",r=o+"---"+o+"---2",a=e.node(o);e.setNode(l,{domId:l,id:l,parentId:a.parentId,labelStyle:"",label:"",padding:0,shape:"labelRect",style:"",width:10,height:10}),e.setParent(l,a.parentId),e.setNode(r,{domId:r,id:r,parentId:a.parentId,labelStyle:"",padding:0,shape:"labelRect",label:"",style:"",width:10,height:10}),e.setParent(r,a.parentId);const w=structuredClone(i),y=structuredClone(i),f=structuredClone(i),n=structuredClone(i);y.originalEdge=w,y.selfLoop={id:w.id,order:0},f.originalEdge=w,f.selfLoop={id:w.id,order:1},n.originalEdge=w,n.selfLoop={id:w.id,order:2},y.label="",y.arrowTypeEnd="none",y.endLabelLeft="",y.endLabelRight="",y.startLabelLeft="",y.id=o+"-cyclic-special-1",f.startLabelRight="",f.startLabelLeft="",f.endLabelLeft="",f.endLabelRight="",f.arrowTypeStart="none",f.arrowTypeEnd="none",f.id=o+"-cyclic-special-mid",n.label="",n.startLabelRight="",n.startLabelLeft="",n.arrowTypeStart="none",a.isGroup&&(y.fromCluster=o,n.toCluster=o),n.id=o+"-cyclic-special-2",n.arrowTypeStart="none",e.setEdge(o,l,y,o+"-cyclic-special-0"),e.setEdge(l,r,f,o+"-cyclic-special-1"),e.setEdge(r,o,n,o+"-cyclic-special-2")}else e.setEdge(i.start,i.end,{...i},i.id)}),_(e),{graph:e}},"prepareLayoutForDagre"),se=m(async(t,{element:e,preparedLayout:d})=>{const g=d??O(t),s=A(),h=await G({element:e,graph:g.graph,diagramType:t.type,id:t.diagramId,parentCluster:void 0,siteConfig:s});return g.measuredLayout=h,h},"measureDagreLayout"),ie=m((t,e)=>{var g;const d=(g=e.preparedLayout)==null?void 0:g.measuredLayout;if(!d)throw new Error("runDagreLayoutCore requires measureDagreLayout to run first");return k(d.graph),ae(t,d),d},"runDagreLayoutCore"),de=m((t,{measure:e})=>D(e.graph).map(d=>e.graph.node(d)).filter(Boolean),"getDagrePaintNodes"),le=m((t,e,{measure:d})=>t?d.graph.node(t):void 0,"getDagreEdgeNode"),he=z({prepareLayout:O,measureLayout:se,runLayoutCore:ie,paintOptions:{clusterDb:b,getNodes:de,getEdgeNode:le,skipNode:m((t,{measure:e})=>!e.graph.hasNode(t.id),"skipNode"),isCluster:m((t,{measure:e})=>e.graph.hasNode(t.id)&&(e.graph.children(t.id)??[]).length>0,"isCluster")}});export{ae as applyDagreLayoutResult,M as getEdgesToRender,se as measureDagreLayout,O as prepareLayoutForDagre,he as render,ie as runDagreLayoutCore};
5
+ //# sourceMappingURL=dagre-GXQ25YYZ-DhpPwKqq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dagre-GXQ25YYZ-DhpPwKqq.js","sources":["../../../../node_modules/.pnpm/mermaid@11.17.2/node_modules/mermaid/dist/chunks/mermaid.core/dagre-GXQ25YYZ.mjs"],"sourcesContent":["import {\n adjustClustersAndEdges,\n clusterDb,\n createCommonLayoutRenderer,\n createLayoutElementGroups,\n findNonClusterChild,\n insertMeasuredNode,\n sortNodesByHierarchy\n} from \"./chunk-2E4U76K2.mjs\";\nimport {\n insertCluster\n} from \"./chunk-L3NEJ4N5.mjs\";\nimport {\n insertEdge,\n insertEdgeLabel,\n positionEdgeLabel\n} from \"./chunk-OSK3NFVY.mjs\";\nimport {\n getSubGraphTitleMargins,\n positionNode,\n setNodeElem\n} from \"./chunk-GVQU2GXP.mjs\";\nimport {\n updateNodeBounds\n} from \"./chunk-4HAMMTFA.mjs\";\nimport \"./chunk-P2QGCYS3.mjs\";\nimport \"./chunk-GMAD6QVW.mjs\";\nimport \"./chunk-PWAF6VOD.mjs\";\nimport \"./chunk-75Z2AOVW.mjs\";\nimport {\n getConfig2 as getConfig\n} from \"./chunk-DU6HZSFF.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.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 graphlib from \"dagre-d3-es/src/graphlib/index.js\";\nvar clamp = /* @__PURE__ */ __name((value, min, max) => Math.max(min, Math.min(max, value)), \"clamp\");\nvar getDefaultSelfLoopSide = /* @__PURE__ */ __name((rankdir = \"TB\") => {\n switch (rankdir) {\n case \"BT\":\n return \"bottom\";\n case \"LR\":\n return \"right\";\n case \"RL\":\n return \"left\";\n case \"TB\":\n default:\n return \"top\";\n }\n}, \"getDefaultSelfLoopSide\");\nvar shouldMergeSelfLoopSegments = /* @__PURE__ */ __name((diagramType) => diagramType === \"flowchart\" || diagramType === \"flowchart-v2\" || diagramType === \"stateDiagram\" || diagramType === \"er\" || diagramType === \"classDiagram\", \"shouldMergeSelfLoopSegments\");\nvar DAGRE_NODE_LAYOUT_PROPERTIES = [\n \"x\",\n \"y\",\n \"width\",\n \"height\",\n \"labelBBox\",\n \"intersect\",\n \"calcIntersect\",\n \"diff\",\n \"clusterNode\"\n];\nvar getSelfLoopSide = /* @__PURE__ */ __name((graph, node, segments, originalNodeId, rankdir) => {\n const layoutHints = [];\n const dummyNodeIds = /* @__PURE__ */ new Set();\n segments.forEach(({ start, end }) => {\n if (start !== originalNodeId) {\n dummyNodeIds.add(start);\n }\n if (end !== originalNodeId) {\n dummyNodeIds.add(end);\n }\n });\n dummyNodeIds.forEach((id) => {\n const dummyNode = graph.node(id);\n if (typeof dummyNode?.x === \"number\" && typeof dummyNode?.y === \"number\") {\n layoutHints.push(dummyNode);\n }\n });\n if (layoutHints.length === 0) {\n segments.forEach(({ edge }) => {\n (edge.points ?? []).forEach((point) => {\n if (typeof point?.x === \"number\" && typeof point?.y === \"number\") {\n layoutHints.push(point);\n }\n });\n });\n }\n if (layoutHints.length === 0) {\n return getDefaultSelfLoopSide(rankdir);\n }\n const center = layoutHints.reduce(\n (acc, point) => ({\n x: acc.x + point.x / layoutHints.length,\n y: acc.y + point.y / layoutHints.length\n }),\n { x: 0, y: 0 }\n );\n const dx = center.x - node.x;\n const dy = center.y - node.y;\n if (Math.abs(dx) > Math.abs(dy)) {\n return dx > 0 ? \"right\" : \"left\";\n }\n if (Math.abs(dy) > 0) {\n return dy > 0 ? \"bottom\" : \"top\";\n }\n return getDefaultSelfLoopSide(rankdir);\n}, \"getSelfLoopSide\");\nvar getSelfLoopPoints = /* @__PURE__ */ __name((node, side = \"top\", yOffset = 0, labelWidth = 0) => {\n const x = node.x;\n const y = node.y - yOffset;\n const halfWidth = node.width / 2;\n const halfHeight = node.height / 2;\n const maxSpan = Math.max(36, Math.min(100, node.width * 0.8));\n const span = clamp(Math.max(labelWidth, node.width * 0.35), 36, maxSpan);\n const depth = clamp(Math.min(node.width, node.height) * 0.45, 24, 48);\n switch (side) {\n case \"bottom\": {\n const bottom = y + halfHeight;\n return [\n { x: x - span / 2, y: bottom },\n { x: x - span / 2, y: bottom + depth },\n { x: x + span / 2, y: bottom + depth },\n { x: x + span / 2, y: bottom }\n ];\n }\n case \"right\": {\n const right = x + halfWidth;\n return [\n { x: right, y: y - span / 2 },\n { x: right + depth, y: y - span / 2 },\n { x: right + depth, y: y + span / 2 },\n { x: right, y: y + span / 2 }\n ];\n }\n case \"left\": {\n const left = x - halfWidth;\n return [\n { x: left, y: y - span / 2 },\n { x: left - depth, y: y - span / 2 },\n { x: left - depth, y: y + span / 2 },\n { x: left, y: y + span / 2 }\n ];\n }\n case \"top\":\n default: {\n const top = y - halfHeight;\n return [\n { x: x - span / 2, y: top },\n { x: x - span / 2, y: top - depth },\n { x: x + span / 2, y: top - depth },\n { x: x + span / 2, y: top }\n ];\n }\n }\n}, \"getSelfLoopPoints\");\nvar getSelfLoopLabelPosition = /* @__PURE__ */ __name((node, points, side = \"top\", yOffset = 0, label = {}) => {\n const gap = 4;\n const x = node.x;\n const y = node.y - yOffset;\n const labelWidth = label.width ?? 0;\n const labelHeight = label.height ?? 0;\n switch (side) {\n case \"bottom\":\n return { x, y: Math.max(...points.map((point) => point.y)) + labelHeight / 2 + gap };\n case \"right\":\n return { x: Math.max(...points.map((point) => point.x)) + labelWidth / 2 + gap, y };\n case \"left\":\n return { x: Math.min(...points.map((point) => point.x)) - labelWidth / 2 - gap, y };\n case \"top\":\n default:\n return { x, y: Math.min(...points.map((point) => point.y)) - labelHeight / 2 - gap };\n }\n}, \"getSelfLoopLabelPosition\");\nvar getEdgesToRender = /* @__PURE__ */ __name((graph, yOffset = 0, { mergeSelfLoops = true } = {}) => {\n const selfLoopEdgeGroups = /* @__PURE__ */ new Map();\n const edgesToRender = [];\n const rankdir = graph.graph()?.rankdir;\n graph.edges().forEach((e) => {\n const edge = graph.edge(e);\n if (mergeSelfLoops && edge.selfLoop) {\n const key = edge.selfLoop.id;\n if (!selfLoopEdgeGroups.has(key)) {\n selfLoopEdgeGroups.set(key, []);\n }\n selfLoopEdgeGroups.get(key).push({ edge, start: e.v, end: e.w });\n } else {\n edgesToRender.push({ edge, start: e.v, end: e.w });\n }\n });\n selfLoopEdgeGroups.forEach((segments) => {\n if (segments.length !== 3) {\n segments.forEach((segment) => edgesToRender.push(segment));\n return;\n }\n segments.sort((a, b) => a.edge.selfLoop.order - b.edge.selfLoop.order);\n const [firstSegment, middleSegment, lastSegment] = segments;\n const originalEdge = firstSegment.edge.originalEdge ?? middleSegment.edge.originalEdge ?? lastSegment.edge.originalEdge ?? middleSegment.edge;\n const node = graph.node(originalEdge.start);\n if (!node) {\n segments.forEach((segment) => edgesToRender.push(segment));\n return;\n }\n const label = {\n width: middleSegment.edge.width,\n height: middleSegment.edge.height\n };\n const side = getSelfLoopSide(graph, node, segments, originalEdge.start, rankdir);\n const points = getSelfLoopPoints(node, side, yOffset, label.width ?? 0);\n const labelPosition = getSelfLoopLabelPosition(node, points, side, yOffset, label);\n const mergedEdge = {\n ...middleSegment.edge,\n ...originalEdge,\n id: originalEdge.id,\n points,\n start: originalEdge.start,\n end: originalEdge.end,\n x: labelPosition.x,\n y: labelPosition.y,\n width: label.width,\n height: label.height,\n labelStyle: middleSegment.edge.labelStyle,\n fromCluster: firstSegment.edge.fromCluster ?? middleSegment.edge.fromCluster ?? lastSegment.edge.fromCluster,\n toCluster: firstSegment.edge.toCluster ?? middleSegment.edge.toCluster ?? lastSegment.edge.toCluster\n };\n delete mergedEdge.selfLoop;\n delete mergedEdge.originalEdge;\n edgesToRender.push({ edge: mergedEdge, start: mergedEdge.start, end: mergedEdge.end });\n });\n return edgesToRender;\n}, \"getEdgesToRender\");\nvar measureDagreGraph = /* @__PURE__ */ __name(async ({\n element: _elem,\n graph,\n diagramType,\n id,\n parentCluster,\n siteConfig\n}) => {\n const dir = graph.graph().rankdir;\n log.trace(\"Dir in recursive render - dir:\", dir);\n const {\n clusters,\n edgePaths,\n edgeLabels,\n nodes,\n rootGroups: elem\n } = createLayoutElementGroups(_elem, {\n edgePathsClass: \"edgePaths\"\n });\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 mergeSelfLoops = shouldMergeSelfLoopSegments(diagramType);\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 renderDagreSubgraph({\n element: nodes,\n graph: node.graph,\n diagramType,\n id,\n parentCluster: 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 insertMeasuredNode(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 if (mergeSelfLoops && edge.selfLoop) {\n if (edge.selfLoop.order !== 1) {\n return;\n }\n const labelEdge = {\n ...edge.originalEdge,\n ...edge,\n id: edge.selfLoop.id,\n startLabelLeft: edge.originalEdge?.startLabelLeft ?? edge.startLabelLeft,\n startLabelRight: edge.originalEdge?.startLabelRight ?? edge.startLabelRight,\n endLabelLeft: edge.originalEdge?.endLabelLeft ?? edge.endLabelLeft,\n endLabelRight: edge.originalEdge?.endLabelRight ?? edge.endLabelRight\n };\n await insertEdgeLabel(edgeLabels, labelEdge);\n edge.width = labelEdge.width;\n edge.height = labelEdge.height;\n edge.labelStyle = labelEdge.labelStyle;\n return;\n }\n await insertEdgeLabel(edgeLabels, edge);\n });\n await Promise.all(edgePromises);\n }, \"processEdges\");\n await processEdges();\n const { subGraphTitleTotalMargin } = getSubGraphTitleMargins(siteConfig);\n return {\n elem,\n graph,\n groups: { clusters, edgePaths, edgeLabels, nodes, rootGroups: elem },\n diagramType,\n id,\n mergeSelfLoops,\n subGraphTitleTotalMargin\n };\n}, \"measureDagreGraph\");\nvar runDagreGraphLayout = /* @__PURE__ */ __name((graph) => {\n log.info(\"############################################# XXX\");\n log.info(\"### Layout ### XXX\");\n log.info(\"############################################# XXX\");\n if (false) {\n profiler.begin(\"layoutCore\");\n }\n dagreLayout(graph);\n if (false) {\n profiler.end();\n }\n}, \"runDagreGraphLayout\");\nvar normalizeDagreNode = /* @__PURE__ */ __name((graph, nodeId, subGraphTitleTotalMargin) => {\n const node = graph.node(nodeId);\n if (!node) {\n return void 0;\n }\n const normalizedNode = { ...node };\n if (node?.clusterNode) {\n normalizedNode.y = (node.y ?? 0) + subGraphTitleTotalMargin;\n } else if (graph.children(nodeId).length > 0) {\n normalizedNode.height = (node.height ?? 0) + subGraphTitleTotalMargin;\n } else {\n normalizedNode.y = (node.y ?? 0) + subGraphTitleTotalMargin / 2;\n }\n return normalizedNode;\n}, \"normalizeDagreNode\");\nvar applyDagreNodeLayout = /* @__PURE__ */ __name((targetNode, dagreNode) => {\n DAGRE_NODE_LAYOUT_PROPERTIES.forEach((property) => {\n if (dagreNode[property] !== void 0) {\n targetNode[property] = dagreNode[property];\n }\n });\n}, \"applyDagreNodeLayout\");\nvar normalizeDagreEdge = /* @__PURE__ */ __name((edge, start, end, edgeOffsetY) => ({\n ...edge,\n start: edge.start ?? start,\n end: edge.end ?? end,\n points: (edge.points ?? []).map((point) => ({\n ...point,\n y: typeof point.y === \"number\" ? point.y + edgeOffsetY : point.y\n }))\n}), \"normalizeDagreEdge\");\nvar applyDagreLayoutResult = /* @__PURE__ */ __name((data4Layout, measuredLayout) => {\n const { graph, mergeSelfLoops, subGraphTitleTotalMargin = 0 } = measuredLayout;\n const nodeById = new Map(data4Layout.nodes.map((node) => [node.id, node]));\n sortNodesByHierarchy(graph).forEach((nodeId) => {\n const dagreNode = normalizeDagreNode(graph, nodeId, subGraphTitleTotalMargin);\n if (!dagreNode) {\n return;\n }\n applyDagreNodeLayout(graph.node(nodeId), dagreNode);\n const targetNode = nodeById.get(nodeId);\n if (targetNode) {\n applyDagreNodeLayout(targetNode, dagreNode);\n }\n });\n const edgeOffsetY = subGraphTitleTotalMargin / 2;\n data4Layout.edges = getEdgesToRender(graph, edgeOffsetY, { mergeSelfLoops }).map(\n ({ edge, start, end }) => normalizeDagreEdge(edge, start, end, edgeOffsetY)\n );\n return data4Layout;\n}, \"applyDagreLayoutResult\");\nvar paintDagreLayoutCore = /* @__PURE__ */ __name(async ({\n elem,\n graph,\n groups: { clusters, edgePaths },\n diagramType,\n id,\n mergeSelfLoops,\n subGraphTitleTotalMargin\n}) => {\n let diff = 0;\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 const edgeOffsetY = subGraphTitleTotalMargin / 2;\n const edgesToRender = getEdgesToRender(graph, edgeOffsetY, { mergeSelfLoops });\n edgesToRender.forEach(function({ edge, start, end }) {\n log.info(\"Edge \" + start + \" -> \" + end + \": \" + JSON.stringify(edge), edge);\n edge.points.forEach((point) => point.y += edgeOffsetY);\n const startNode = graph.node(start);\n const endNode = graph.node(end);\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}, \"paintDagreLayoutCore\");\nvar renderDagreSubgraph = /* @__PURE__ */ __name(async (options) => {\n const measuredLayout = await measureDagreGraph(options);\n runDagreGraphLayout(measuredLayout.graph);\n return await paintDagreLayoutCore(measuredLayout);\n}, \"renderDagreSubgraph\");\nvar prepareLayoutForDagre = /* @__PURE__ */ __name((data4Layout) => {\n const graph = new graphlib.Graph({\n multigraph: true,\n compound: true\n }).setGraph({\n rankdir: data4Layout.direction,\n // Precedence: an explicit top-level config override (only present when a\n // user sets it - it has no schema default) > the value the diagram's own\n // renderer put on data4Layout (usually derived from that diagram's config)\n // > the flowchart config as a generic fallback. The flowchart keys have\n // schema defaults and therefore always exist, so they must come last or\n // they silently shadow every diagram's own spacing (see #7932).\n nodesep: data4Layout.config?.nodeSpacing || data4Layout.nodeSpacing || data4Layout.config?.flowchart?.nodeSpacing,\n ranksep: data4Layout.config?.rankSpacing || data4Layout.rankSpacing || data4Layout.config?.flowchart?.rankSpacing,\n marginx: 8,\n marginy: 8\n }).setDefaultEdgeLabel(function() {\n return {};\n });\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 originalEdge = structuredClone(edge);\n const edge1 = structuredClone(edge);\n const edgeMid = structuredClone(edge);\n const edge2 = structuredClone(edge);\n edge1.originalEdge = originalEdge;\n edge1.selfLoop = { id: originalEdge.id, order: 0 };\n edgeMid.originalEdge = originalEdge;\n edgeMid.selfLoop = { id: originalEdge.id, order: 1 };\n edge2.originalEdge = originalEdge;\n edge2.selfLoop = { id: originalEdge.id, order: 2 };\n edge1.label = \"\";\n edge1.arrowTypeEnd = \"none\";\n edge1.endLabelLeft = \"\";\n edge1.endLabelRight = \"\";\n edge1.startLabelLeft = \"\";\n edge1.id = nodeId + \"-cyclic-special-1\";\n edgeMid.startLabelRight = \"\";\n edgeMid.startLabelLeft = \"\";\n edgeMid.endLabelLeft = \"\";\n edgeMid.endLabelRight = \"\";\n edgeMid.arrowTypeStart = \"none\";\n edgeMid.arrowTypeEnd = \"none\";\n edgeMid.id = nodeId + \"-cyclic-special-mid\";\n edge2.label = \"\";\n edge2.startLabelRight = \"\";\n edge2.startLabelLeft = \"\";\n edge2.arrowTypeStart = \"none\";\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 + \"-cyclic-special-2\");\n } else {\n graph.setEdge(edge.start, edge.end, { ...edge }, edge.id);\n }\n });\n adjustClustersAndEdges(graph);\n return { graph };\n}, \"prepareLayoutForDagre\");\nvar measureDagreLayout = /* @__PURE__ */ __name(async (data4Layout, { element, preparedLayout }) => {\n const prepared = preparedLayout ?? prepareLayoutForDagre(data4Layout);\n const siteConfig = getConfig();\n const measuredLayout = await measureDagreGraph({\n element,\n graph: prepared.graph,\n diagramType: data4Layout.type,\n id: data4Layout.diagramId,\n parentCluster: void 0,\n siteConfig\n });\n prepared.measuredLayout = measuredLayout;\n return measuredLayout;\n}, \"measureDagreLayout\");\nvar runDagreLayoutCore = /* @__PURE__ */ __name((data4Layout, context) => {\n const measuredLayout = context.preparedLayout?.measuredLayout;\n if (!measuredLayout) {\n throw new Error(\"runDagreLayoutCore requires measureDagreLayout to run first\");\n }\n runDagreGraphLayout(measuredLayout.graph);\n applyDagreLayoutResult(data4Layout, measuredLayout);\n return measuredLayout;\n}, \"runDagreLayoutCore\");\nvar getDagrePaintNodes = /* @__PURE__ */ __name((_data4Layout, { measure }) => sortNodesByHierarchy(measure.graph).map((nodeId) => measure.graph.node(nodeId)).filter(Boolean), \"getDagrePaintNodes\");\nvar getDagreEdgeNode = /* @__PURE__ */ __name((nodeId, _edge, { measure }) => nodeId ? measure.graph.node(nodeId) : void 0, \"getDagreEdgeNode\");\nvar render = createCommonLayoutRenderer({\n prepareLayout: prepareLayoutForDagre,\n measureLayout: measureDagreLayout,\n runLayoutCore: runDagreLayoutCore,\n paintOptions: {\n clusterDb,\n getNodes: getDagrePaintNodes,\n getEdgeNode: getDagreEdgeNode,\n skipNode: /* @__PURE__ */ __name((node, { measure }) => !measure.graph.hasNode(node.id), \"skipNode\"),\n isCluster: /* @__PURE__ */ __name((node, { measure }) => measure.graph.hasNode(node.id) && (measure.graph.children(node.id) ?? []).length > 0, \"isCluster\")\n }\n});\nexport {\n applyDagreLayoutResult,\n getEdgesToRender,\n measureDagreLayout,\n prepareLayoutForDagre,\n render,\n runDagreLayoutCore\n};\n"],"names":["clamp","__name","value","min","max","getDefaultSelfLoopSide","rankdir","shouldMergeSelfLoopSegments","diagramType","DAGRE_NODE_LAYOUT_PROPERTIES","getSelfLoopSide","graph","node","segments","originalNodeId","layoutHints","dummyNodeIds","start","end","id","dummyNode","edge","point","center","acc","dx","dy","getSelfLoopPoints","side","yOffset","labelWidth","x","y","halfWidth","halfHeight","maxSpan","span","depth","bottom","right","left","top","getSelfLoopLabelPosition","points","label","labelHeight","getEdgesToRender","mergeSelfLoops","selfLoopEdgeGroups","edgesToRender","_a","e","key","segment","a","b","firstSegment","middleSegment","lastSegment","originalEdge","labelPosition","mergedEdge","measureDagreGraph","_elem","parentCluster","siteConfig","dir","log","clusters","edgePaths","edgeLabels","nodes","elem","createLayoutElementGroups","v","data","ranksep","nodesep","o","renderDagreSubgraph","newEl","updateNodeBounds","setNodeElem","findNonClusterChild","clusterDb","insertMeasuredNode","edgePromises","labelEdge","_b","_c","_d","insertEdgeLabel","subGraphTitleTotalMargin","getSubGraphTitleMargins","runDagreGraphLayout","dagreLayout","normalizeDagreNode","nodeId","normalizedNode","applyDagreNodeLayout","targetNode","dagreNode","property","normalizeDagreEdge","edgeOffsetY","applyDagreLayoutResult","data4Layout","measuredLayout","nodeById","sortNodesByHierarchy","paintDagreLayoutCore","diff","positionNode","halfPadding","offsetY","insertCluster","parent","startNode","endNode","paths","insertEdge","positionEdgeLabel","n","options","prepareLayoutForDagre","graphlib.Graph","_f","_e","specialId1","specialId2","edge1","edgeMid","edge2","adjustClustersAndEdges","measureDagreLayout","element","preparedLayout","prepared","getConfig","runDagreLayoutCore","context","getDagrePaintNodes","_data4Layout","measure","getDagreEdgeNode","_edge","render","createCommonLayoutRenderer"],"mappings":"iQA0CA,IAAIA,EAAwBC,EAAO,CAACC,EAAOC,EAAKC,IAAQ,KAAK,IAAID,EAAK,KAAK,IAAIC,EAAKF,CAAK,CAAC,EAAG,OAAO,EAChGG,EAAyCJ,EAAO,CAACK,EAAU,OAAS,CACtE,OAAQA,EAAO,CACb,IAAK,KACH,MAAO,SACT,IAAK,KACH,MAAO,QACT,IAAK,KACH,MAAO,OACT,IAAK,KACL,QACE,MAAO,KACb,CACA,EAAG,wBAAwB,EACvBC,EAA8CN,EAAQO,GAAgBA,IAAgB,aAAeA,IAAgB,gBAAkBA,IAAgB,gBAAkBA,IAAgB,MAAQA,IAAgB,eAAgB,6BAA6B,EAC9PC,EAA+B,CACjC,IACA,IACA,QACA,SACA,YACA,YACA,gBACA,OACA,aACF,EACIC,EAAkCT,EAAO,CAACU,EAAOC,EAAMC,EAAUC,EAAgBR,IAAY,CAC/F,MAAMS,EAAc,CAAA,EACdC,EAA+B,IAAI,IAwBzC,GAvBAH,EAAS,QAAQ,CAAC,CAAE,MAAAI,EAAO,IAAAC,CAAG,IAAO,CAC/BD,IAAUH,GACZE,EAAa,IAAIC,CAAK,EAEpBC,IAAQJ,GACVE,EAAa,IAAIE,CAAG,CAExB,CAAC,EACDF,EAAa,QAASG,GAAO,CAC3B,MAAMC,EAAYT,EAAM,KAAKQ,CAAE,EAC3B,OAAOC,GAAA,YAAAA,EAAW,IAAM,UAAY,OAAOA,GAAA,YAAAA,EAAW,IAAM,UAC9DL,EAAY,KAAKK,CAAS,CAE9B,CAAC,EACGL,EAAY,SAAW,GACzBF,EAAS,QAAQ,CAAC,CAAE,KAAAQ,KAAW,EAC5BA,EAAK,QAAU,CAAA,GAAI,QAASC,GAAU,CACjC,OAAOA,GAAA,YAAAA,EAAO,IAAM,UAAY,OAAOA,GAAA,YAAAA,EAAO,IAAM,UACtDP,EAAY,KAAKO,CAAK,CAE1B,CAAC,CACH,CAAC,EAECP,EAAY,SAAW,EACzB,OAAOV,EAAuBC,CAAO,EAEvC,MAAMiB,EAASR,EAAY,OACzB,CAACS,EAAKF,KAAW,CACf,EAAGE,EAAI,EAAIF,EAAM,EAAIP,EAAY,OACjC,EAAGS,EAAI,EAAIF,EAAM,EAAIP,EAAY,MACvC,GACI,CAAE,EAAG,EAAG,EAAG,CAAC,CAChB,EACQU,EAAKF,EAAO,EAAIX,EAAK,EACrBc,EAAKH,EAAO,EAAIX,EAAK,EAC3B,OAAI,KAAK,IAAIa,CAAE,EAAI,KAAK,IAAIC,CAAE,EACrBD,EAAK,EAAI,QAAU,OAExB,KAAK,IAAIC,CAAE,EAAI,EACVA,EAAK,EAAI,SAAW,MAEtBrB,EAAuBC,CAAO,CACvC,EAAG,iBAAiB,EAChBqB,EAAoC1B,EAAO,CAACW,EAAMgB,EAAO,MAAOC,EAAU,EAAGC,EAAa,IAAM,CAClG,MAAMC,EAAInB,EAAK,EACToB,EAAIpB,EAAK,EAAIiB,EACbI,EAAYrB,EAAK,MAAQ,EACzBsB,EAAatB,EAAK,OAAS,EAC3BuB,EAAU,KAAK,IAAI,GAAI,KAAK,IAAI,IAAKvB,EAAK,MAAQ,EAAG,CAAC,EACtDwB,EAAOpC,EAAM,KAAK,IAAI8B,EAAYlB,EAAK,MAAQ,GAAI,EAAG,GAAIuB,CAAO,EACjEE,EAAQrC,EAAM,KAAK,IAAIY,EAAK,MAAOA,EAAK,MAAM,EAAI,IAAM,GAAI,EAAE,EACpE,OAAQgB,EAAI,CACV,IAAK,SAAU,CACb,MAAMU,EAASN,EAAIE,EACnB,MAAO,CACL,CAAE,EAAGH,EAAIK,EAAO,EAAG,EAAGE,CAAM,EAC5B,CAAE,EAAGP,EAAIK,EAAO,EAAG,EAAGE,EAASD,CAAK,EACpC,CAAE,EAAGN,EAAIK,EAAO,EAAG,EAAGE,EAASD,CAAK,EACpC,CAAE,EAAGN,EAAIK,EAAO,EAAG,EAAGE,CAAM,CACpC,CACI,CACA,IAAK,QAAS,CACZ,MAAMC,EAAQR,EAAIE,EAClB,MAAO,CACL,CAAE,EAAGM,EAAO,EAAGP,EAAII,EAAO,CAAC,EAC3B,CAAE,EAAGG,EAAQF,EAAO,EAAGL,EAAII,EAAO,CAAC,EACnC,CAAE,EAAGG,EAAQF,EAAO,EAAGL,EAAII,EAAO,CAAC,EACnC,CAAE,EAAGG,EAAO,EAAGP,EAAII,EAAO,CAAC,CACnC,CACI,CACA,IAAK,OAAQ,CACX,MAAMI,EAAOT,EAAIE,EACjB,MAAO,CACL,CAAE,EAAGO,EAAM,EAAGR,EAAII,EAAO,CAAC,EAC1B,CAAE,EAAGI,EAAOH,EAAO,EAAGL,EAAII,EAAO,CAAC,EAClC,CAAE,EAAGI,EAAOH,EAAO,EAAGL,EAAII,EAAO,CAAC,EAClC,CAAE,EAAGI,EAAM,EAAGR,EAAII,EAAO,CAAC,CAClC,CACI,CACA,IAAK,MACL,QAAS,CACP,MAAMK,EAAMT,EAAIE,EAChB,MAAO,CACL,CAAE,EAAGH,EAAIK,EAAO,EAAG,EAAGK,CAAG,EACzB,CAAE,EAAGV,EAAIK,EAAO,EAAG,EAAGK,EAAMJ,CAAK,EACjC,CAAE,EAAGN,EAAIK,EAAO,EAAG,EAAGK,EAAMJ,CAAK,EACjC,CAAE,EAAGN,EAAIK,EAAO,EAAG,EAAGK,CAAG,CACjC,CACI,CACJ,CACA,EAAG,mBAAmB,EAClBC,GAA2CzC,EAAO,CAACW,EAAM+B,EAAQf,EAAO,MAAOC,EAAU,EAAGe,EAAQ,KAAO,CAE7G,MAAMb,EAAInB,EAAK,EACToB,EAAIpB,EAAK,EAAIiB,EACbC,EAAac,EAAM,OAAS,EAC5BC,EAAcD,EAAM,QAAU,EACpC,OAAQhB,EAAI,CACV,IAAK,SACH,MAAO,CAAE,EAAAG,EAAG,EAAG,KAAK,IAAI,GAAGY,EAAO,IAAKrB,GAAUA,EAAM,CAAC,CAAC,EAAIuB,EAAc,EAAI,CAAG,EACpF,IAAK,QACH,MAAO,CAAE,EAAG,KAAK,IAAI,GAAGF,EAAO,IAAKrB,GAAUA,EAAM,CAAC,CAAC,EAAIQ,EAAa,EAAI,EAAK,EAAAE,CAAC,EACnF,IAAK,OACH,MAAO,CAAE,EAAG,KAAK,IAAI,GAAGW,EAAO,IAAKrB,GAAUA,EAAM,CAAC,CAAC,EAAIQ,EAAa,EAAI,EAAK,EAAAE,CAAC,EACnF,IAAK,MACL,QACE,MAAO,CAAE,EAAAD,EAAG,EAAG,KAAK,IAAI,GAAGY,EAAO,IAAKrB,GAAUA,EAAM,CAAC,CAAC,EAAIuB,EAAc,EAAI,CAAG,CACxF,CACA,EAAG,0BAA0B,EACzBC,EAAmC7C,EAAO,CAACU,EAAOkB,EAAU,EAAG,CAAE,eAAAkB,EAAiB,EAAI,EAAK,KAAO,OACpG,MAAMC,EAAqC,IAAI,IACzCC,EAAgB,CAAA,EAChB3C,GAAU4C,EAAAvC,EAAM,MAAK,IAAX,YAAAuC,EAAe,QAC/B,OAAAvC,EAAM,MAAK,EAAG,QAASwC,GAAM,CAC3B,MAAM9B,EAAOV,EAAM,KAAKwC,CAAC,EACzB,GAAIJ,GAAkB1B,EAAK,SAAU,CACnC,MAAM+B,EAAM/B,EAAK,SAAS,GACrB2B,EAAmB,IAAII,CAAG,GAC7BJ,EAAmB,IAAII,EAAK,EAAE,EAEhCJ,EAAmB,IAAII,CAAG,EAAE,KAAK,CAAE,KAAA/B,EAAM,MAAO8B,EAAE,EAAG,IAAKA,EAAE,CAAC,CAAE,CACjE,MACEF,EAAc,KAAK,CAAE,KAAA5B,EAAM,MAAO8B,EAAE,EAAG,IAAKA,EAAE,EAAG,CAErD,CAAC,EACDH,EAAmB,QAASnC,GAAa,CACvC,GAAIA,EAAS,SAAW,EAAG,CACzBA,EAAS,QAASwC,GAAYJ,EAAc,KAAKI,CAAO,CAAC,EACzD,MACF,CACAxC,EAAS,KAAK,CAACyC,EAAGC,IAAMD,EAAE,KAAK,SAAS,MAAQC,EAAE,KAAK,SAAS,KAAK,EACrE,KAAM,CAACC,EAAcC,EAAeC,CAAW,EAAI7C,EAC7C8C,EAAeH,EAAa,KAAK,cAAgBC,EAAc,KAAK,cAAgBC,EAAY,KAAK,cAAgBD,EAAc,KACnI7C,EAAOD,EAAM,KAAKgD,EAAa,KAAK,EAC1C,GAAI,CAAC/C,EAAM,CACTC,EAAS,QAASwC,GAAYJ,EAAc,KAAKI,CAAO,CAAC,EACzD,MACF,CACA,MAAMT,EAAQ,CACZ,MAAOa,EAAc,KAAK,MAC1B,OAAQA,EAAc,KAAK,MACjC,EACU7B,EAAOlB,EAAgBC,EAAOC,EAAMC,EAAU8C,EAAa,MAAOrD,CAAO,EACzEqC,EAAShB,EAAkBf,EAAMgB,EAAMC,EAASe,EAAM,OAAS,CAAC,EAChEgB,EAAgBlB,GAAyB9B,EAAM+B,EAAQf,EAAMC,EAASe,CAAK,EAC3EiB,EAAa,CACjB,GAAGJ,EAAc,KACjB,GAAGE,EACH,GAAIA,EAAa,GACjB,OAAAhB,EACA,MAAOgB,EAAa,MACpB,IAAKA,EAAa,IAClB,EAAGC,EAAc,EACjB,EAAGA,EAAc,EACjB,MAAOhB,EAAM,MACb,OAAQA,EAAM,OACd,WAAYa,EAAc,KAAK,WAC/B,YAAaD,EAAa,KAAK,aAAeC,EAAc,KAAK,aAAeC,EAAY,KAAK,YACjG,UAAWF,EAAa,KAAK,WAAaC,EAAc,KAAK,WAAaC,EAAY,KAAK,SACjG,EACI,OAAOG,EAAW,SAClB,OAAOA,EAAW,aAClBZ,EAAc,KAAK,CAAE,KAAMY,EAAY,MAAOA,EAAW,MAAO,IAAKA,EAAW,GAAG,CAAE,CACvF,CAAC,EACMZ,CACT,EAAG,kBAAkB,EACjBa,EAAoC7D,EAAO,MAAO,CACpD,QAAS8D,EACT,MAAApD,EACA,YAAAH,EACA,GAAAW,EACA,cAAA6C,EACA,WAAAC,CACF,IAAM,CACJ,MAAMC,EAAMvD,EAAM,MAAK,EAAG,QAC1BwD,EAAI,MAAM,iCAAkCD,CAAG,EAC/C,KAAM,CACJ,SAAAE,EACA,UAAAC,EACA,WAAAC,EACA,MAAAC,EACA,WAAYC,CAChB,EAAMC,EAA0BV,EAAO,CACnC,eAAgB,WACpB,CAAG,EACIpD,EAAM,QAGTwD,EAAI,KAAK,uBAAwBxD,EAAM,MAAK,CAAE,EAF9CwD,EAAI,KAAK,qBAAsBxD,CAAK,EAIlCA,EAAM,QAAQ,OAAS,GACzBwD,EAAI,KAAK,kBAAmBxD,EAAM,KAAKA,EAAM,MAAK,EAAG,CAAC,CAAC,CAAC,EAE1D,MAAMoC,EAAiBxC,EAA4BC,CAAW,EAC9D,MAAM,QAAQ,IACZG,EAAM,MAAK,EAAG,IAAI,eAAe+D,EAAG,CAClC,MAAM9D,EAAOD,EAAM,KAAK+D,CAAC,EACzB,GAAIV,IAAkB,OAAQ,CAC5B,MAAMW,EAAO,KAAK,MAAM,KAAK,UAAUX,EAAc,WAAW,CAAC,EACjEG,EAAI,MACF;AAAA,aACAO,EACA;AAAA,QACAC,EAAK,OACL;AAAA,gBACAX,EAAc,MACxB,EACQrD,EAAM,QAAQqD,EAAc,GAAIW,CAAI,EAC/BhE,EAAM,OAAO+D,CAAC,IACjBP,EAAI,MAAM,iBAAkBO,EAAGV,EAAc,EAAE,EAC/CrD,EAAM,UAAU+D,EAAGV,EAAc,GAAIW,CAAI,EAE7C,CAEA,GADAR,EAAI,KAAK,oBAAsBO,EAAI,KAAO,KAAK,UAAU/D,EAAM,KAAK+D,CAAC,CAAC,CAAC,EACnE9D,GAAA,MAAAA,EAAM,YAAa,CACrBuD,EAAI,KAAK,yBAA0BO,EAAG9D,EAAK,MAAOD,EAAM,KAAK+D,CAAC,CAAC,EAC/D,KAAM,CAAE,QAAAE,EAAS,QAAAC,GAAYlE,EAAM,MAAK,EACxCC,EAAK,MAAM,SAAS,CAClB,GAAGA,EAAK,MAAM,MAAK,EACnB,QAASgE,EAAU,GACnB,QAAAC,CACV,CAAS,EACD,MAAMC,EAAI,MAAMC,GAAoB,CAClC,QAASR,EACT,MAAO3D,EAAK,MACZ,YAAAJ,EACA,GAAAW,EACA,cAAeR,EAAM,KAAK+D,CAAC,EAC3B,WAAAT,CACV,CAAS,EACKe,EAAQF,EAAE,KAChBG,EAAiBrE,EAAMoE,CAAK,EAC5BpE,EAAK,KAAOkE,EAAE,MAAQ,EACtBX,EAAI,KACF,+CACAO,EACA,QAEA9D,EAAK,MACL,SACAA,EAAK,MAGf,EACQsE,EAAYF,EAAOpE,CAAI,CACzB,MACMD,EAAM,SAAS+D,CAAC,EAAE,OAAS,GAC7BP,EAAI,MACF,uCACAO,EACA9D,EAAK,GACLA,EACAA,EAAK,MACL,SACAD,CACZ,EACUwD,EAAI,MAAMgB,EAAoBvE,EAAK,GAAID,CAAK,CAAC,EAC7CyE,EAAU,IAAIxE,EAAK,GAAI,CAAE,GAAIuE,EAAoBvE,EAAK,GAAID,CAAK,EAAG,KAAAC,CAAI,CAAE,IAExEuD,EAAI,MAAM,oCAAqCO,EAAGH,EAAO5D,EAAM,KAAK+D,CAAC,EAAGR,CAAG,EAC3E,MAAMmB,EAAmBd,EAAO5D,EAAM,KAAK+D,CAAC,EAAG,CAAE,OAAQT,EAAY,IAAAC,EAAK,EAGhF,CAAC,CACL,EAuCE,MAtCqCjE,EAAO,SAAY,CACtD,MAAMqF,EAAe3E,EAAM,MAAK,EAAG,IAAI,eAAewC,EAAG,aACvD,MAAM9B,EAAOV,EAAM,KAAKwC,EAAE,EAAGA,EAAE,EAAGA,EAAE,IAAI,EAaxC,GAZAgB,EAAI,KAAK,QAAUhB,EAAE,EAAI,OAASA,EAAE,EAAI,KAAO,KAAK,UAAUA,CAAC,CAAC,EAChEgB,EAAI,KAAK,QAAUhB,EAAE,EAAI,OAASA,EAAE,EAAI,KAAMA,EAAG,IAAK,KAAK,UAAUxC,EAAM,KAAKwC,CAAC,CAAC,CAAC,EACnFgB,EAAI,KACF,MACAiB,EACA,OACAjC,EAAE,EACFA,EAAE,EACF,gBACAiC,EAAU,IAAIjC,EAAE,CAAC,EACjBiC,EAAU,IAAIjC,EAAE,CAAC,CACzB,EACUJ,GAAkB1B,EAAK,SAAU,CACnC,GAAIA,EAAK,SAAS,QAAU,EAC1B,OAEF,MAAMkE,EAAY,CAChB,GAAGlE,EAAK,aACR,GAAGA,EACH,GAAIA,EAAK,SAAS,GAClB,iBAAgB6B,EAAA7B,EAAK,eAAL,YAAA6B,EAAmB,iBAAkB7B,EAAK,eAC1D,kBAAiBmE,EAAAnE,EAAK,eAAL,YAAAmE,EAAmB,kBAAmBnE,EAAK,gBAC5D,eAAcoE,EAAApE,EAAK,eAAL,YAAAoE,EAAmB,eAAgBpE,EAAK,aACtD,gBAAeqE,EAAArE,EAAK,eAAL,YAAAqE,EAAmB,gBAAiBrE,EAAK,aAClE,EACQ,MAAMsE,EAAgBrB,EAAYiB,CAAS,EAC3ClE,EAAK,MAAQkE,EAAU,MACvBlE,EAAK,OAASkE,EAAU,OACxBlE,EAAK,WAAakE,EAAU,WAC5B,MACF,CACA,MAAMI,EAAgBrB,EAAYjD,CAAI,CACxC,CAAC,EACD,MAAM,QAAQ,IAAIiE,CAAY,CAChC,EAAG,cAAc,EACC,EAClB,KAAM,CAAE,yBAAAM,CAAwB,EAAKC,EAAwB5B,CAAU,EACvE,MAAO,CACL,KAAAO,EACA,MAAA7D,EACA,OAAQ,CAAE,SAAAyD,EAAU,UAAAC,EAAW,WAAAC,EAAY,MAAAC,EAAO,WAAYC,CAAI,EAClE,YAAAhE,EACA,GAAAW,EACA,eAAA4B,EACA,yBAAA6C,CACJ,CACA,EAAG,mBAAmB,EAClBE,EAAsC7F,EAAQU,GAAU,CAC1DwD,EAAI,KAAK,mDAAmD,EAC5DA,EAAI,KAAK,mDAAmD,EAC5DA,EAAI,KAAK,mDAAmD,EAI5D4B,EAAYpF,CAAK,CAInB,EAAG,qBAAqB,EACpBqF,GAAqC/F,EAAO,CAACU,EAAOsF,EAAQL,IAA6B,CAC3F,MAAMhF,EAAOD,EAAM,KAAKsF,CAAM,EAC9B,GAAI,CAACrF,EACH,OAEF,MAAMsF,EAAiB,CAAE,GAAGtF,CAAI,EAChC,OAAIA,GAAA,MAAAA,EAAM,YACRsF,EAAe,GAAKtF,EAAK,GAAK,GAAKgF,EAC1BjF,EAAM,SAASsF,CAAM,EAAE,OAAS,EACzCC,EAAe,QAAUtF,EAAK,QAAU,GAAKgF,EAE7CM,EAAe,GAAKtF,EAAK,GAAK,GAAKgF,EAA2B,EAEzDM,CACT,EAAG,oBAAoB,EACnBC,EAAuClG,EAAO,CAACmG,EAAYC,IAAc,CAC3E5F,EAA6B,QAAS6F,GAAa,CAC7CD,EAAUC,CAAQ,IAAM,SAC1BF,EAAWE,CAAQ,EAAID,EAAUC,CAAQ,EAE7C,CAAC,CACH,EAAG,sBAAsB,EACrBC,GAAqCtG,EAAO,CAACoB,EAAMJ,EAAOC,EAAKsF,KAAiB,CAClF,GAAGnF,EACH,MAAOA,EAAK,OAASJ,EACrB,IAAKI,EAAK,KAAOH,EACjB,QAASG,EAAK,QAAU,CAAA,GAAI,IAAKC,IAAW,CAC1C,GAAGA,EACH,EAAG,OAAOA,EAAM,GAAM,SAAWA,EAAM,EAAIkF,EAAclF,EAAM,CACnE,EAAI,CACJ,GAAI,oBAAoB,EACpBmF,GAAyCxG,EAAO,CAACyG,EAAaC,IAAmB,CACnF,KAAM,CAAE,MAAAhG,EAAO,eAAAoC,EAAgB,yBAAA6C,EAA2B,CAAC,EAAKe,EAC1DC,EAAW,IAAI,IAAIF,EAAY,MAAM,IAAK9F,GAAS,CAACA,EAAK,GAAIA,CAAI,CAAC,CAAC,EACzEiG,EAAqBlG,CAAK,EAAE,QAASsF,GAAW,CAC9C,MAAMI,EAAYL,GAAmBrF,EAAOsF,EAAQL,CAAwB,EAC5E,GAAI,CAACS,EACH,OAEFF,EAAqBxF,EAAM,KAAKsF,CAAM,EAAGI,CAAS,EAClD,MAAMD,EAAaQ,EAAS,IAAIX,CAAM,EAClCG,GACFD,EAAqBC,EAAYC,CAAS,CAE9C,CAAC,EACD,MAAMG,EAAcZ,EAA2B,EAC/C,OAAAc,EAAY,MAAQ5D,EAAiBnC,EAAO6F,EAAa,CAAE,eAAAzD,CAAc,CAAE,EAAE,IAC3E,CAAC,CAAE,KAAA1B,EAAM,MAAAJ,EAAO,IAAAC,CAAG,IAAOqF,GAAmBlF,EAAMJ,EAAOC,EAAKsF,CAAW,CAC9E,EACSE,CACT,EAAG,wBAAwB,EACvBI,GAAuC7G,EAAO,MAAO,CACvD,KAAAuE,EACA,MAAA7D,EACA,OAAQ,CAAE,SAAAyD,EAAU,UAAAC,CAAS,EAC7B,YAAA7D,EACA,GAAAW,EACA,eAAA4B,EACA,yBAAA6C,CACF,IAAM,CACJ,IAAImB,EAAO,EACX,MAAM,QAAQ,IACZF,EAAqBlG,CAAK,EAAE,IAAI,eAAe+D,EAAG,OAChD,MAAM9D,EAAOD,EAAM,KAAK+D,CAAC,EASzB,GARAP,EAAI,KACF,mBAAqBO,EAAI,MAAQ9D,EAAK,EACtC,IAAMA,EAAK,EACX,YACAA,EAAK,MACL,YACAA,EAAK,MACb,EACUA,GAAA,MAAAA,EAAM,YACRA,EAAK,GAAKgF,EACVzB,EAAI,KACF,8BACAO,EACA9D,EAAK,GACLA,EAAK,MACLA,EAAK,OACLA,EAAK,EACLA,EAAK,EACLD,EAAM,OAAO+D,CAAC,CACxB,EACQU,EAAU,IAAIxE,EAAK,EAAE,EAAE,KAAOA,EAC9BoG,EAAapG,CAAI,UAEbD,EAAM,SAAS+D,CAAC,EAAE,OAAS,EAAG,CAChCP,EAAI,KACF,2BACAO,EACA9D,EAAK,GACLA,EAAK,EACLA,EAAK,EACLA,EAAK,MACLA,EAAK,OACLD,EAAM,OAAO+D,CAAC,CAC1B,EACU9D,EAAK,QAAUgF,EACfjF,EAAM,KAAKC,EAAK,QAAQ,EACxB,MAAMqG,GAAcrG,GAAA,YAAAA,EAAM,SAAU,GAAK,EACnCiC,IAAcK,EAAAtC,GAAA,YAAAA,EAAM,YAAN,YAAAsC,EAAiB,SAAU,EACzCgE,EAAUrE,EAAcoE,GAAe,EAC7C9C,EAAI,MAAM,UAAW+C,EAAS,cAAerE,EAAa,cAAeoE,CAAW,EACpF,MAAME,EAAc/C,EAAUxD,CAAI,EAClCwE,EAAU,IAAIxE,EAAK,EAAE,EAAE,KAAOA,CAChC,KAAO,CACL,MAAMwG,EAASzG,EAAM,KAAKC,EAAK,QAAQ,EACvCA,EAAK,GAAKgF,EAA2B,EACrCzB,EAAI,KACF,0CACAvD,EAAK,GACL,SACAA,EAAK,SACLA,EAAK,MACLA,EAAK,OACLA,EAAK,EACLA,EAAK,EACL,UACAA,EAAK,QACL,SACAwG,EACAA,GAAA,YAAAA,EAAQ,QACRxG,CACZ,EACUoG,EAAapG,CAAI,CACnB,CAEJ,CAAC,CACL,EACE,MAAM4F,EAAcZ,EAA2B,EAE/C,OADsB9C,EAAiBnC,EAAO6F,EAAa,CAAE,eAAAzD,CAAc,CAAE,EAC/D,QAAQ,SAAS,CAAE,KAAA1B,EAAM,MAAAJ,EAAO,IAAAC,CAAG,EAAI,CACnDiD,EAAI,KAAK,QAAUlD,EAAQ,OAASC,EAAM,KAAO,KAAK,UAAUG,CAAI,EAAGA,CAAI,EAC3EA,EAAK,OAAO,QAASC,GAAUA,EAAM,GAAKkF,CAAW,EACrD,MAAMa,EAAY1G,EAAM,KAAKM,CAAK,EAC5BqG,EAAU3G,EAAM,KAAKO,CAAG,EACxBqG,EAAQC,EAAWnD,EAAWhD,EAAM+D,EAAW5E,EAAa6G,EAAWC,EAASnG,CAAE,EACxFsG,EAAkBpG,EAAMkG,CAAK,CAC/B,CAAC,EACD5G,EAAM,MAAK,EAAG,QAAQ,SAAS+D,EAAG,CAChC,MAAMgD,EAAI/G,EAAM,KAAK+D,CAAC,EACtBP,EAAI,KAAKO,EAAGgD,EAAE,KAAMA,EAAE,IAAI,EACtBA,EAAE,UACJX,EAAOW,EAAE,KAEb,CAAC,EACDvD,EAAI,KAAK,sCAAuCK,EAAMuC,CAAI,EACnD,CAAE,KAAAvC,EAAM,KAAAuC,CAAI,CACrB,EAAG,sBAAsB,EACrBhC,GAAsC9E,EAAO,MAAO0H,GAAY,CAClE,MAAMhB,EAAiB,MAAM7C,EAAkB6D,CAAO,EACtD,OAAA7B,EAAoBa,EAAe,KAAK,EACjC,MAAMG,GAAqBH,CAAc,CAClD,EAAG,qBAAqB,EACpBiB,EAAwC3H,EAAQyG,GAAgB,iBAClE,MAAM/F,EAAQ,IAAIkH,EAAe,CAC/B,WAAY,GACZ,SAAU,EACd,CAAG,EAAE,SAAS,CACV,QAASnB,EAAY,UAOrB,UAASxD,EAAAwD,EAAY,SAAZ,YAAAxD,EAAoB,cAAewD,EAAY,eAAejB,GAAAD,EAAAkB,EAAY,SAAZ,YAAAlB,EAAoB,YAApB,YAAAC,EAA+B,aACtG,UAASC,EAAAgB,EAAY,SAAZ,YAAAhB,EAAoB,cAAegB,EAAY,eAAeoB,GAAAC,EAAArB,EAAY,SAAZ,YAAAqB,EAAoB,YAApB,YAAAD,EAA+B,aACtG,QAAS,EACT,QAAS,CACb,CAAG,EAAE,oBAAoB,UAAW,CAChC,MAAO,CAAA,CACT,CAAC,EACD,OAAApB,EAAY,MAAM,QAAS9F,GAAS,CAClCD,EAAM,QAAQC,EAAK,GAAI,CAAE,GAAGA,CAAI,CAAE,EAC9BA,EAAK,UACPD,EAAM,UAAUC,EAAK,GAAIA,EAAK,QAAQ,CAE1C,CAAC,EACDuD,EAAI,MAAM,SAAUuC,EAAY,KAAK,EACrCA,EAAY,MAAM,QAASrF,GAAS,CAClC,GAAIA,EAAK,QAAUA,EAAK,IAAK,CAC3B,MAAM4E,EAAS5E,EAAK,MACd2G,EAAa/B,EAAS,MAAQA,EAAS,OACvCgC,EAAahC,EAAS,MAAQA,EAAS,OACvCrF,EAAOD,EAAM,KAAKsF,CAAM,EAC9BtF,EAAM,QAAQqH,EAAY,CACxB,MAAOA,EACP,GAAIA,EACJ,SAAUpH,EAAK,SACf,WAAY,GACZ,MAAO,GACP,QAAS,EACT,MAAO,YAEP,MAAO,GACP,MAAO,GACP,OAAQ,EAChB,CAAO,EACDD,EAAM,UAAUqH,EAAYpH,EAAK,QAAQ,EACzCD,EAAM,QAAQsH,EAAY,CACxB,MAAOA,EACP,GAAIA,EACJ,SAAUrH,EAAK,SACf,WAAY,GACZ,QAAS,EAET,MAAO,YACP,MAAO,GACP,MAAO,GACP,MAAO,GACP,OAAQ,EAChB,CAAO,EACDD,EAAM,UAAUsH,EAAYrH,EAAK,QAAQ,EACzC,MAAM+C,EAAe,gBAAgBtC,CAAI,EACnC6G,EAAQ,gBAAgB7G,CAAI,EAC5B8G,EAAU,gBAAgB9G,CAAI,EAC9B+G,EAAQ,gBAAgB/G,CAAI,EAClC6G,EAAM,aAAevE,EACrBuE,EAAM,SAAW,CAAE,GAAIvE,EAAa,GAAI,MAAO,CAAC,EAChDwE,EAAQ,aAAexE,EACvBwE,EAAQ,SAAW,CAAE,GAAIxE,EAAa,GAAI,MAAO,CAAC,EAClDyE,EAAM,aAAezE,EACrByE,EAAM,SAAW,CAAE,GAAIzE,EAAa,GAAI,MAAO,CAAC,EAChDuE,EAAM,MAAQ,GACdA,EAAM,aAAe,OACrBA,EAAM,aAAe,GACrBA,EAAM,cAAgB,GACtBA,EAAM,eAAiB,GACvBA,EAAM,GAAKjC,EAAS,oBACpBkC,EAAQ,gBAAkB,GAC1BA,EAAQ,eAAiB,GACzBA,EAAQ,aAAe,GACvBA,EAAQ,cAAgB,GACxBA,EAAQ,eAAiB,OACzBA,EAAQ,aAAe,OACvBA,EAAQ,GAAKlC,EAAS,sBACtBmC,EAAM,MAAQ,GACdA,EAAM,gBAAkB,GACxBA,EAAM,eAAiB,GACvBA,EAAM,eAAiB,OACnBxH,EAAK,UACPsH,EAAM,YAAcjC,EACpBmC,EAAM,UAAYnC,GAEpBmC,EAAM,GAAKnC,EAAS,oBACpBmC,EAAM,eAAiB,OACvBzH,EAAM,QAAQsF,EAAQ+B,EAAYE,EAAOjC,EAAS,mBAAmB,EACrEtF,EAAM,QAAQqH,EAAYC,EAAYE,EAASlC,EAAS,mBAAmB,EAC3EtF,EAAM,QAAQsH,EAAYhC,EAAQmC,EAAOnC,EAAS,mBAAmB,CACvE,MACEtF,EAAM,QAAQU,EAAK,MAAOA,EAAK,IAAK,CAAE,GAAGA,CAAI,EAAIA,EAAK,EAAE,CAE5D,CAAC,EACDgH,EAAuB1H,CAAK,EACrB,CAAE,MAAAA,CAAK,CAChB,EAAG,uBAAuB,EACtB2H,GAAqCrI,EAAO,MAAOyG,EAAa,CAAE,QAAA6B,EAAS,eAAAC,CAAc,IAAO,CAClG,MAAMC,EAAWD,GAAkBZ,EAAsBlB,CAAW,EAC9DzC,EAAayE,EAAS,EACtB/B,EAAiB,MAAM7C,EAAkB,CAC7C,QAAAyE,EACA,MAAOE,EAAS,MAChB,YAAa/B,EAAY,KACzB,GAAIA,EAAY,UAChB,cAAe,OACf,WAAAzC,CACJ,CAAG,EACD,OAAAwE,EAAS,eAAiB9B,EACnBA,CACT,EAAG,oBAAoB,EACnBgC,GAAqC1I,EAAO,CAACyG,EAAakC,IAAY,OACxE,MAAMjC,GAAiBzD,EAAA0F,EAAQ,iBAAR,YAAA1F,EAAwB,eAC/C,GAAI,CAACyD,EACH,MAAM,IAAI,MAAM,6DAA6D,EAE/E,OAAAb,EAAoBa,EAAe,KAAK,EACxCF,GAAuBC,EAAaC,CAAc,EAC3CA,CACT,EAAG,oBAAoB,EACnBkC,GAAqC5I,EAAO,CAAC6I,EAAc,CAAE,QAAAC,CAAO,IAAOlC,EAAqBkC,EAAQ,KAAK,EAAE,IAAK9C,GAAW8C,EAAQ,MAAM,KAAK9C,CAAM,CAAC,EAAE,OAAO,OAAO,EAAG,oBAAoB,EAChM+C,GAAmC/I,EAAO,CAACgG,EAAQgD,EAAO,CAAE,QAAAF,CAAO,IAAO9C,EAAS8C,EAAQ,MAAM,KAAK9C,CAAM,EAAI,OAAQ,kBAAkB,EAC1IiD,GAASC,EAA2B,CACtC,cAAevB,EACf,cAAeU,GACf,cAAeK,GACf,aAAc,CACZ,UAAAvD,EACA,SAAUyD,GACV,YAAaG,GACb,SAA0B/I,EAAO,CAACW,EAAM,CAAE,QAAAmI,CAAO,IAAO,CAACA,EAAQ,MAAM,QAAQnI,EAAK,EAAE,EAAG,UAAU,EACnG,UAA2BX,EAAO,CAACW,EAAM,CAAE,QAAAmI,CAAO,IAAOA,EAAQ,MAAM,QAAQnI,EAAK,EAAE,IAAMmI,EAAQ,MAAM,SAASnI,EAAK,EAAE,GAAK,CAAA,GAAI,OAAS,EAAG,WAAW,CAC9J,CACA,CAAC","x_google_ignoreList":[0]}
@@ -0,0 +1,2 @@
1
+ function J(n){return Math.abs(n=Math.round(n))>=1e21?n.toLocaleString("en").replace(/,/g,""):n.toString(10)}function j(n,t){if(!isFinite(n)||n===0)return null;var e=(n=t?n.toExponential(t-1):n.toExponential()).indexOf("e"),i=n.slice(0,e);return[i.length>1?i[0]+i.slice(2):i,+n.slice(e+1)]}function K(n){return n=j(Math.abs(n)),n?n[1]:NaN}function Q(n,t){return function(e,i){for(var o=e.length,a=[],c=0,h=n[0],M=0;o>0&&h>0&&(M+h+1>i&&(h=Math.max(1,i-M)),a.push(e.substring(o-=h,o+h)),!((M+=h+1)>i));)h=n[c=(c+1)%n.length];return a.reverse().join(t)}}function V(n){return function(t){return t.replace(/[0-9]/g,function(e){return n[+e]})}}var W=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function $(n){if(!(t=W.exec(n)))throw new Error("invalid format: "+n);var t;return new L({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}$.prototype=L.prototype;function L(n){this.fill=n.fill===void 0?" ":n.fill+"",this.align=n.align===void 0?">":n.align+"",this.sign=n.sign===void 0?"-":n.sign+"",this.symbol=n.symbol===void 0?"":n.symbol+"",this.zero=!!n.zero,this.width=n.width===void 0?void 0:+n.width,this.comma=!!n.comma,this.precision=n.precision===void 0?void 0:+n.precision,this.trim=!!n.trim,this.type=n.type===void 0?"":n.type+""}L.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function _(n){n:for(var t=n.length,e=1,i=-1,o;e<t;++e)switch(n[e]){case".":i=o=e;break;case"0":i===0&&(i=e),o=e;break;default:if(!+n[e])break n;i>0&&(i=0);break}return i>0?n.slice(0,i)+n.slice(o+1):n}var N;function v(n,t){var e=j(n,t);if(!e)return N=void 0,n.toPrecision(t);var i=e[0],o=e[1],a=o-(N=Math.max(-8,Math.min(8,Math.floor(o/3)))*3)+1,c=i.length;return a===c?i:a>c?i+new Array(a-c+1).join("0"):a>0?i.slice(0,a)+"."+i.slice(a):"0."+new Array(1-a).join("0")+j(n,Math.max(0,t+a-1))[0]}function X(n,t){var e=j(n,t);if(!e)return n+"";var i=e[0],o=e[1];return o<0?"0."+new Array(-o).join("0")+i:i.length>o+1?i.slice(0,o+1)+"."+i.slice(o+1):i+new Array(o-i.length+2).join("0")}const O={"%":(n,t)=>(n*100).toFixed(t),b:n=>Math.round(n).toString(2),c:n=>n+"",d:J,e:(n,t)=>n.toExponential(t),f:(n,t)=>n.toFixed(t),g:(n,t)=>n.toPrecision(t),o:n=>Math.round(n).toString(8),p:(n,t)=>X(n*100,t),r:X,s:v,X:n=>Math.round(n).toString(16).toUpperCase(),x:n=>Math.round(n).toString(16)};function R(n){return n}var U=Array.prototype.map,Y=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function nn(n){var t=n.grouping===void 0||n.thousands===void 0?R:Q(U.call(n.grouping,Number),n.thousands+""),e=n.currency===void 0?"":n.currency[0]+"",i=n.currency===void 0?"":n.currency[1]+"",o=n.decimal===void 0?".":n.decimal+"",a=n.numerals===void 0?R:V(U.call(n.numerals,String)),c=n.percent===void 0?"%":n.percent+"",h=n.minus===void 0?"−":n.minus+"",M=n.nan===void 0?"NaN":n.nan+"";function T(f,g){f=$(f);var b=f.fill,p=f.align,m=f.sign,w=f.symbol,S=f.zero,E=f.width,F=f.comma,y=f.precision,C=f.trim,d=f.type;d==="n"?(F=!0,d="g"):O[d]||(y===void 0&&(y=12),C=!0,d="g"),(S||b==="0"&&p==="=")&&(S=!0,b="0",p="=");var q=(g&&g.prefix!==void 0?g.prefix:"")+(w==="$"?e:w==="#"&&/[boxX]/.test(d)?"0"+d.toLowerCase():""),B=(w==="$"?i:/[%p]/.test(d)?c:"")+(g&&g.suffix!==void 0?g.suffix:""),D=O[d],H=/[defgprs%]/.test(d);y=y===void 0?6:/[gprs]/.test(d)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y));function G(r){var l=q,u=B,x,I,k;if(d==="c")u=D(r)+u,r="";else{r=+r;var P=r<0||1/r<0;if(r=isNaN(r)?M:D(Math.abs(r),y),C&&(r=_(r)),P&&+r==0&&m!=="+"&&(P=!1),l=(P?m==="("?m:h:m==="-"||m==="("?"":m)+l,u=(d==="s"&&!isNaN(r)&&N!==void 0?Y[8+N/3]:"")+u+(P&&m==="("?")":""),H){for(x=-1,I=r.length;++x<I;)if(k=r.charCodeAt(x),48>k||k>57){u=(k===46?o+r.slice(x+1):r.slice(x))+u,r=r.slice(0,x);break}}}F&&!S&&(r=t(r,1/0));var z=l.length+r.length+u.length,s=z<E?new Array(E-z+1).join(b):"";switch(F&&S&&(r=t(s+r,s.length?E-u.length:1/0),s=""),p){case"<":r=l+r+u+s;break;case"=":r=l+s+r+u;break;case"^":r=s.slice(0,z=s.length>>1)+l+r+u+s.slice(z);break;default:r=s+l+r+u;break}return a(r)}return G.toString=function(){return f+""},G}function Z(f,g){var b=Math.max(-8,Math.min(8,Math.floor(K(g)/3)))*3,p=Math.pow(10,-b),m=T((f=$(f),f.type="f",f),{suffix:Y[8+b/3]});return function(w){return m(p*w)}}return{format:T,formatPrefix:Z}}var A,tn,rn;en({thousands:",",grouping:[3],currency:["$",""]});function en(n){return A=nn(n),tn=A.format,rn=A.formatPrefix,A}export{rn as a,tn as b,K as e,$ as f};
2
+ //# sourceMappingURL=defaultLocale-DX6XiGOO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultLocale-DX6XiGOO.js","sources":["../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatDecimal.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/exponent.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatGroup.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatNumerals.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatSpecifier.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatTrim.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatPrefixAuto.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatRounded.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatTypes.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/identity.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/locale.js","../../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/defaultLocale.js"],"sourcesContent":["export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if (!isFinite(x) || x === 0) return null; // NaN, ±Infinity, ±0\n var i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\"), coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return prefixExponent = undefined, x.toPrecision(p);\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier, options) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = (options && options.prefix !== undefined ? options.prefix : \"\") + (symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\"),\n suffix = (symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\") + (options && options.suffix !== undefined ? options.suffix : \"\");\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" && !isNaN(value) && prefixExponent !== undefined ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier), {suffix: prefixes[8 + e / 3]});\n return function(value) {\n return f(k * value);\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n"],"names":["formatDecimal","x","formatDecimalParts","p","i","coefficient","exponent","formatGroup","grouping","thousands","value","width","t","j","g","length","formatNumerals","numerals","re","formatSpecifier","specifier","match","FormatSpecifier","formatTrim","s","out","n","i0","i1","prefixExponent","formatPrefixAuto","d","formatRounded","formatTypes","identity","map","prefixes","formatLocale","locale","group","currencyPrefix","currencySuffix","decimal","percent","minus","nan","newFormat","options","fill","align","sign","symbol","zero","comma","precision","trim","type","prefix","suffix","formatType","maybeSuffix","format","valuePrefix","valueSuffix","c","valueNegative","padding","formatPrefix","e","k","f","defaultLocale","definition"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}
@@ -0,0 +1,31 @@
1
+ import{I as X}from"./chunk-2Q5K7J3B-B-u7gtZN.js";import{p as z}from"./chunk-JWPE2WC7-DyCryvDN.js";import{n as O,b as G,s as Y,o as P,g as F,a as Z,_ as g,A,l as E,D as q,d as U,y as D,p as j,i as J,ak as K,B as Q,al as ee}from"./mermaid.core-ExHG1WnM.js";import{p as te}from"./cynefin-OW5HDTMX-BY6w3pAQ.js";import"./index-DoR97Zqf.js";var L=/[─━│┃└┗├┣]/,_=/[└┗├┣]/,re=/[─━]/,T=/^[\s│┃]+$/,V=/^\s*(title[\t ]|accTitle[\t ]*:|accDescr[\t ]*[:{])/,$=/^\s*%%/,ne=" ";function S(r){return r.some(t=>L.test(t))}g(S,"isBoxDrawingFormat");function M(r){for(const t of r){const e=_.exec(t);if(e!=null&&e.index&&e.index>0)return e.index}return 4}g(M,"inferSegmentWidth");function R(r,t){return r.replace(/\bline\s+(\d+)\b/gi,(e,i)=>{const s=parseInt(i,10),o=t.get(s);return o?`line ${o}`:e})}g(R,"remapErrorLines");function H(r){const t=r.split(`
2
+ `),e=new Map;let i=-1;for(const[d,l]of t.entries())if(l.trim()==="treeView-beta"){i=d;break}if(i===-1)return{text:r,lineMap:e};const s=[];for(let d=i+1;d<t.length;d++){const l=t[d];l.trim()===""||$.test(l)||V.test(l)||T.test(l)||s.push(l.replace(/\t/g," "))}if(!S(s))return{text:r,lineMap:e};const o=M(s),n=[];let c=0;for(let d=0;d<=i;d++)n.push(t[d]),c++,e.set(c,d+1);for(let d=i+1;d<t.length;d++){const l=t[d],u=l.trim(),a=d+1;if(u===""){n.push(l),c++,e.set(c,a);continue}if($.test(l)){n.push(l),c++,e.set(c,a);continue}if(V.test(l)){n.push(l),c++,e.set(c,a);continue}if(T.test(l))continue;const p=l.replace(/\t/g," "),h=_.exec(p);if((h==null?void 0:h.index)!==void 0){const m=h.index,w=Math.round(m/o)+1;let f=m+1;for(;f<p.length&&re.test(p[f]);)f++;for(;f<p.length&&p[f]===" ";)f++;const v=p.slice(f).trimEnd();if(!v)throw new Error(`Line ${a}: Empty node — expected a filename or directory name after the box-drawing prefix`);const b=ne.repeat(w);n.push(b+v),c++,e.set(c,a)}else{if(/^[\s─━│┃└┗├┣]+$/.test(p))continue;if(L.test(p))n.push(l),c++,e.set(c,a);else{if(/^\s+/.test(p))throw new Error(`Line ${a}: Unexpected indentation without box-drawing characters. In box-drawing format, use ├── or └── prefixes for indented nodes.`);n.push(l),c++,e.set(c,a)}}}return{text:n.join(`
3
+ `),lineMap:e}}g(H,"preprocessBoxDrawing");var x=new X(()=>({cnt:1,stack:[{id:0,level:-1,name:"/",nodeType:"directory",children:[]}]})),ie=g(()=>{x.reset(),j()},"clear"),oe=g(()=>x.records.stack[0],"getRoot"),se=g(()=>x.records.cnt,"getCount"),ae=Q.treeView,ce=g(()=>A(ae,D().treeView),"getConfig"),le=g((r,t,e,i,s,o)=>{for(;r<=x.records.stack[x.records.stack.length-1].level;)x.records.stack.pop();const n={id:x.records.cnt++,level:r,name:t,nodeType:e,icon:s,cssClass:i,description:o,children:[]};x.records.stack[x.records.stack.length-1].children.push(n),x.records.stack.push(n)},"addNode"),de={clear:ie,addNode:le,getRoot:oe,getCount:se,getConfig:ce,getAccTitle:Z,getAccDescription:F,getDiagramTitle:P,setAccDescription:Y,setAccTitle:G,setDiagramTitle:O},I=de,he=g(r=>{z(r,I);for(const t of r.nodes){const e=typeof t.indent=="number"?t.indent:0;let i=t.name;const s=i.endsWith("/");s&&(i=i.slice(0,-1));const o=s?"directory":"file",n=t.classAnnotation||void 0,c=t.iconAnnotation,d=c!==void 0?c||"none":void 0,l=t.descAnnotation||void 0,u=l?J(l,D()):void 0;I.addNode(e,i,o,n,d,u)}},"populate"),pe={parse:g(async r=>{const{text:t,lineMap:e}=H(r);try{const i=await te("treeView",t);E.debug(i),he(i)}catch(i){throw e.size>0&&i instanceof Error&&(i.message=R(i.message,e)),i}},"parse")},C={prefix:"mermaid-treeview",height:24,width:24,icons:{folder:{body:'<path fill="currentColor" d="M10.59 4.59A2 2 0 0 0 9.17 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.17z"/>'},file:{body:'<path fill="currentColor" fill-rule="evenodd" d="M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8.83a2 2 0 0 0-.59-1.42l-4.82-4.82A2 2 0 0 0 13.17 2H6Zm7.5 1.9l4.6 4.6h-3.6a1 1 0 0 1-1-1V3.9Z" clip-rule="evenodd"/>'}}};function W(r,t){var s;const e=(s=t==null?void 0:t.filenameIcons)==null?void 0:s[r];if(e)return e;const i=r.lastIndexOf(".");if(i>0){const o=r.substring(i).toLowerCase(),n=t==null?void 0:t.extensionIcons;return(n==null?void 0:n[o])??(n==null?void 0:n[o.slice(1)])}}g(W,"detectIcon");function y(r,t){return r.includes(":")?r:r in C.icons||!t?`${C.prefix}:${r}`:`${t}:${r}`}g(y,"qualifyIcon");function k(r,t){if(r.icon!=="none"){if(r.icon)return y(r.icon,t.defaultIconPack);if(t.showIcons){if(r.nodeType==="file"){const e=W(r.name,t);if(e==="none")return;if(e)return y(e,t.defaultIconPack)}return`${C.prefix}:${r.nodeType==="directory"?"folder":"file"}`}}}g(k,"getNodeIcon");ee([{name:C.prefix,icons:C}]);var B=14,ge=4,fe=16,ue=g(async(r,t)=>{const e=[],i=g(o=>{const n=k(o,t);n&&e.push({icon:n,node:o}),o.children.forEach(i)},"collect");i(r);const s=await Promise.all(e.map(async({icon:o,node:n})=>({id:n.id,svg:await K(o,{height:B,width:B})})));return new Map(s.map(({id:o,svg:n})=>[o,n]))},"resolveNodeIcons"),we=g((r,t,e,i,s,o)=>{var b;const n=i.append("g");let c="treeView-node-label";e.nodeType==="directory"&&(c+=" treeView-node-dir"),e.cssClass&&(c+=` ${e.cssClass}`);const d=B+ge,l=k(e,s),u=l!==void 0;l&&n.append("g").attr("class","treeView-node-icon").attr("transform",`translate(${r+s.paddingX}, ${t+s.paddingY})`).html(o.get(e.id)??"");const a=n.append("text").text(e.name).attr("dominant-baseline","middle").attr("class",c),{height:p,width:h}=a.node().getBBox(),m=p+s.paddingY*2,w=r+s.paddingX+(u?d:0);a.attr("x",w),a.attr("y",t+m/2);const f=w+h,v=h+s.paddingX*2+(u?d:0);return e.BBox={x:r,y:t,width:v,height:m},(b=e.cssClass)!=null&&b.split(/\s+/).includes("highlight")&&n.insert("rect",":first-child").attr("x",r).attr("y",t+1).attr("width",0).attr("height",m-2).attr("rx",3).attr("class","treeView-highlight-bg"),{node:e,nodeGroup:n,labelRightEdge:f,centerY:t+m/2}},"positionLabel"),N=g((r,t,e,i,s,o)=>r.append("line").attr("x1",t).attr("y1",e).attr("x2",i).attr("y2",s).attr("stroke-width",o).attr("class","treeView-node-line"),"positionLine"),me=g((r,t,e,i)=>{var u;let s=0,o=0;const n=[],c=g((a,p,h,m)=>{const w=m*(h.rowIndent+h.paddingX),f=we(w,s,p,a,h,i);n.push(f);const{height:v,width:b}=p.BBox;N(a,w-h.rowIndent,s+v/2,w,s+v/2,h.lineThickness),o=Math.max(o,w+b),s+=v},"drawNode"),d=g((a,p=0)=>{c(r,a,e,p),a.children.forEach(f=>{d(f,p+1)});const{x:h,y:m,height:w}=a.BBox;if(a.children.length){const{y:f,height:v}=a.children[a.children.length-1].BBox;N(r,h+e.paddingX,m+w,h+e.paddingX,f+v/2+e.lineThickness/2,e.lineThickness)}},"processNode");d(t);const l=n.filter(a=>a.node.description);if(l.length>0){const p=Math.max(...n.map(h=>h.labelRightEdge))+fe;for(const h of l){const w=h.nodeGroup.append("text").text(h.node.description).attr("dominant-baseline","middle").attr("class","treeView-node-description").attr("x",p).attr("y",h.centerY).node().getBBox();o=Math.max(o,p+w.width+e.paddingX)}}for(const a of n)if((u=a.node.cssClass)!=null&&u.split(/\s+/).includes("highlight")){const p=a.nodeGroup.select(".treeView-highlight-bg");if(!p.empty()){const h=o-a.node.BBox.x+8;p.attr("width",h),o=Math.max(o,a.node.BBox.x+h+2)}}return{totalHeight:s,totalWidth:o}},"drawTree"),ve=g(async(r,t,e,i)=>{E.debug(`Rendering treeView diagram
4
+ `+r);const s=i.db,o=s.getRoot(),n=s.getConfig(),c=q(t),d=c.append("g");d.attr("class","tree-view");const l=await ue(o,n),{totalHeight:u,totalWidth:a}=me(d,o,n,l);c.attr("viewBox",`-${n.lineThickness/2} 0 ${a} ${u}`),U(c,u,a,n.useMaxWidth)},"draw"),xe={draw:ve},be=xe,Ce={labelFontSize:"16px",labelColor:"black",lineColor:"black",iconColor:"#546e7a",descriptionColor:"#6a9955",highlightBg:"rgba(255, 193, 7, 0.15)",highlightStroke:"#ffc107"},Ie=g(({treeView:r})=>{const{labelFontSize:t,labelColor:e,lineColor:i,iconColor:s,descriptionColor:o,highlightBg:n,highlightStroke:c}=A(Ce,r);return`
5
+ .treeView-node-label {
6
+ font-size: ${t};
7
+ fill: ${e};
8
+ white-space: pre;
9
+ }
10
+ .treeView-node-dir {
11
+ font-weight: bold;
12
+ }
13
+ .treeView-node-line {
14
+ stroke: ${i};
15
+ }
16
+ .treeView-node-icon {
17
+ color: ${s};
18
+ }
19
+ .treeView-node-description {
20
+ font-size: ${t};
21
+ fill: ${o};
22
+ font-style: italic;
23
+ white-space: pre;
24
+ }
25
+ .treeView-highlight-bg {
26
+ fill: ${n};
27
+ stroke: ${c};
28
+ stroke-width: 1;
29
+ }
30
+ `},"styles"),ye=Ie,Ne={db:I,renderer:be,parser:pe,styles:ye};export{Ne as diagram};
31
+ //# sourceMappingURL=diagram-S7CK7UJ4-B9wvQM0w.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram-S7CK7UJ4-B9wvQM0w.js","sources":["../../../../node_modules/.pnpm/mermaid@11.17.2/node_modules/mermaid/dist/chunks/mermaid.core/diagram-S7CK7UJ4.mjs"],"sourcesContent":["import {\n ImperativeState\n} from \"./chunk-2Q5K7J3B.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-CLGD4ZFX.mjs\";\nimport {\n getIconSVG,\n registerIconPacks\n} from \"./chunk-PWAF6VOD.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-75Z2AOVW.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n sanitizeText,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-DU6HZSFF.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/treeView/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/treeView/boxDrawingPreprocessor.ts\nvar ALL_BOX_CHARS = /[─━│┃└┗├┣]/;\nvar BRANCH_CHAR = /[└┗├┣]/;\nvar DASH_CHAR = /[─━]/;\nvar DECORATION_ONLY = /^[\\s│┃]+$/;\nvar METADATA_LINE = /^\\s*(title[\\t ]|accTitle[\\t ]*:|accDescr[\\t ]*[:{])/;\nvar COMMENT_LINE = /^\\s*%%/;\nvar INDENT_UNIT = \" \";\nfunction isBoxDrawingFormat(lines) {\n return lines.some((line) => ALL_BOX_CHARS.test(line));\n}\n__name(isBoxDrawingFormat, \"isBoxDrawingFormat\");\nfunction inferSegmentWidth(contentLines) {\n for (const line of contentLines) {\n const match = BRANCH_CHAR.exec(line);\n if (match?.index && match.index > 0) {\n return match.index;\n }\n }\n return 4;\n}\n__name(inferSegmentWidth, \"inferSegmentWidth\");\nfunction remapErrorLines(message, lineMap) {\n return message.replace(/\\bline\\s+(\\d+)\\b/gi, (match, lineStr) => {\n const line = parseInt(lineStr, 10);\n const original = lineMap.get(line);\n return original ? `line ${original}` : match;\n });\n}\n__name(remapErrorLines, \"remapErrorLines\");\nfunction preprocessBoxDrawing(input) {\n const lines = input.split(\"\\n\");\n const lineMap = /* @__PURE__ */ new Map();\n let keywordIdx = -1;\n for (const [i, line] of lines.entries()) {\n if (line.trim() === \"treeView-beta\") {\n keywordIdx = i;\n break;\n }\n }\n if (keywordIdx === -1) {\n return { text: input, lineMap };\n }\n const contentLineTexts = [];\n for (let i = keywordIdx + 1; i < lines.length; i++) {\n const line = lines[i];\n const trimmed = line.trim();\n if (trimmed === \"\" || COMMENT_LINE.test(line) || METADATA_LINE.test(line)) {\n continue;\n }\n if (DECORATION_ONLY.test(line)) {\n continue;\n }\n contentLineTexts.push(line.replace(/\\t/g, \" \"));\n }\n if (!isBoxDrawingFormat(contentLineTexts)) {\n return { text: input, lineMap };\n }\n const segmentWidth = inferSegmentWidth(contentLineTexts);\n const outputLines = [];\n let outLineNo = 0;\n for (let i = 0; i <= keywordIdx; i++) {\n outputLines.push(lines[i]);\n outLineNo++;\n lineMap.set(outLineNo, i + 1);\n }\n for (let i = keywordIdx + 1; i < lines.length; i++) {\n const line = lines[i];\n const trimmed = line.trim();\n const origLineNo = i + 1;\n if (trimmed === \"\") {\n outputLines.push(line);\n outLineNo++;\n lineMap.set(outLineNo, origLineNo);\n continue;\n }\n if (COMMENT_LINE.test(line)) {\n outputLines.push(line);\n outLineNo++;\n lineMap.set(outLineNo, origLineNo);\n continue;\n }\n if (METADATA_LINE.test(line)) {\n outputLines.push(line);\n outLineNo++;\n lineMap.set(outLineNo, origLineNo);\n continue;\n }\n if (DECORATION_ONLY.test(line)) {\n continue;\n }\n const normalized = line.replace(/\\t/g, \" \");\n const branchMatch = BRANCH_CHAR.exec(normalized);\n if (branchMatch?.index !== void 0) {\n const branchCol = branchMatch.index;\n const depth = Math.round(branchCol / segmentWidth) + 1;\n let pos = branchCol + 1;\n while (pos < normalized.length && DASH_CHAR.test(normalized[pos])) {\n pos++;\n }\n while (pos < normalized.length && normalized[pos] === \" \") {\n pos++;\n }\n const content = normalized.slice(pos).trimEnd();\n if (!content) {\n throw new Error(\n `Line ${origLineNo}: Empty node \\u2014 expected a filename or directory name after the box-drawing prefix`\n );\n }\n const indent = INDENT_UNIT.repeat(depth);\n outputLines.push(indent + content);\n outLineNo++;\n lineMap.set(outLineNo, origLineNo);\n } else if (/^[\\s─━│┃└┗├┣]+$/.test(normalized)) {\n continue;\n } else if (ALL_BOX_CHARS.test(normalized)) {\n outputLines.push(line);\n outLineNo++;\n lineMap.set(outLineNo, origLineNo);\n } else if (/^\\s+/.test(normalized)) {\n throw new Error(\n `Line ${origLineNo}: Unexpected indentation without box-drawing characters. In box-drawing format, use \\u251C\\u2500\\u2500 or \\u2514\\u2500\\u2500 prefixes for indented nodes.`\n );\n } else {\n outputLines.push(line);\n outLineNo++;\n lineMap.set(outLineNo, origLineNo);\n }\n }\n return { text: outputLines.join(\"\\n\"), lineMap };\n}\n__name(preprocessBoxDrawing, \"preprocessBoxDrawing\");\n\n// src/diagrams/treeView/db.ts\nvar state = new ImperativeState(() => ({\n cnt: 1,\n stack: [\n {\n id: 0,\n level: -1,\n name: \"/\",\n nodeType: \"directory\",\n children: []\n }\n ]\n}));\nvar clear2 = /* @__PURE__ */ __name(() => {\n state.reset();\n clear();\n}, \"clear\");\nvar getRoot = /* @__PURE__ */ __name(() => {\n return state.records.stack[0];\n}, \"getRoot\");\nvar getCount = /* @__PURE__ */ __name(() => state.records.cnt, \"getCount\");\nvar defaultConfig = defaultConfig_default.treeView;\nvar getConfig2 = /* @__PURE__ */ __name(() => {\n return cleanAndMerge(defaultConfig, getConfig().treeView);\n}, \"getConfig\");\nvar addNode = /* @__PURE__ */ __name((level, name, nodeType, cssClass, icon, description) => {\n while (level <= state.records.stack[state.records.stack.length - 1].level) {\n state.records.stack.pop();\n }\n const node = {\n id: state.records.cnt++,\n level,\n name,\n nodeType,\n icon,\n cssClass,\n description,\n children: []\n };\n state.records.stack[state.records.stack.length - 1].children.push(node);\n state.records.stack.push(node);\n}, \"addNode\");\nvar db = {\n clear: clear2,\n addNode,\n getRoot,\n getCount,\n getConfig: getConfig2,\n getAccTitle,\n getAccDescription,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n};\nvar db_default = db;\n\n// src/diagrams/treeView/parser.ts\nvar populate = /* @__PURE__ */ __name((ast) => {\n populateCommonDb(ast, db_default);\n for (const node of ast.nodes) {\n const level = typeof node.indent === \"number\" ? node.indent : 0;\n let name = node.name;\n const isDirectory = name.endsWith(\"/\");\n if (isDirectory) {\n name = name.slice(0, -1);\n }\n const nodeType = isDirectory ? \"directory\" : \"file\";\n const cssClass = node.classAnnotation || void 0;\n const rawIcon = node.iconAnnotation;\n const icon = rawIcon !== void 0 ? rawIcon || \"none\" : void 0;\n const rawDesc = node.descAnnotation || void 0;\n const description = rawDesc ? sanitizeText(rawDesc, getConfig()) : void 0;\n db_default.addNode(level, name, nodeType, cssClass, icon, description);\n }\n}, \"populate\");\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const { text, lineMap } = preprocessBoxDrawing(input);\n try {\n const ast = await parse(\"treeView\", text);\n log.debug(ast);\n populate(ast);\n } catch (error) {\n if (lineMap.size > 0 && error instanceof Error) {\n error.message = remapErrorLines(error.message, lineMap);\n }\n throw error;\n }\n }, \"parse\")\n};\n\n// src/diagrams/treeView/icons.ts\nvar treeViewIcons = {\n prefix: \"mermaid-treeview\",\n height: 24,\n width: 24,\n icons: {\n folder: {\n body: '<path fill=\"currentColor\" d=\"M10.59 4.59A2 2 0 0 0 9.17 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.17z\"/>'\n },\n file: {\n body: '<path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8.83a2 2 0 0 0-.59-1.42l-4.82-4.82A2 2 0 0 0 13.17 2H6Zm7.5 1.9l4.6 4.6h-3.6a1 1 0 0 1-1-1V3.9Z\" clip-rule=\"evenodd\"/>'\n }\n }\n};\nfunction detectIcon(name, config) {\n const filenameIcon = config?.filenameIcons?.[name];\n if (filenameIcon) {\n return filenameIcon;\n }\n const dotIdx = name.lastIndexOf(\".\");\n if (dotIdx > 0) {\n const ext = name.substring(dotIdx).toLowerCase();\n const extensionIcons = config?.extensionIcons;\n return extensionIcons?.[ext] ?? extensionIcons?.[ext.slice(1)];\n }\n return void 0;\n}\n__name(detectIcon, \"detectIcon\");\nfunction qualifyIcon(icon, defaultIconPack) {\n if (icon.includes(\":\")) {\n return icon;\n }\n if (icon in treeViewIcons.icons || !defaultIconPack) {\n return `${treeViewIcons.prefix}:${icon}`;\n }\n return `${defaultIconPack}:${icon}`;\n}\n__name(qualifyIcon, \"qualifyIcon\");\nfunction getNodeIcon(node, config) {\n if (node.icon === \"none\") {\n return void 0;\n }\n if (node.icon) {\n return qualifyIcon(node.icon, config.defaultIconPack);\n }\n if (!config.showIcons) {\n return void 0;\n }\n if (node.nodeType === \"file\") {\n const detected = detectIcon(node.name, config);\n if (detected === \"none\") {\n return void 0;\n }\n if (detected) {\n return qualifyIcon(detected, config.defaultIconPack);\n }\n }\n return `${treeViewIcons.prefix}:${node.nodeType === \"directory\" ? \"folder\" : \"file\"}`;\n}\n__name(getNodeIcon, \"getNodeIcon\");\n\n// src/diagrams/treeView/renderer.ts\nregisterIconPacks([\n {\n name: treeViewIcons.prefix,\n icons: treeViewIcons\n }\n]);\nvar ICON_SIZE = 14;\nvar ICON_GAP = 4;\nvar DESC_GAP = 16;\nvar resolveNodeIcons = /* @__PURE__ */ __name(async (root, config) => {\n const nodeIcons = [];\n const collect = /* @__PURE__ */ __name((node) => {\n const icon = getNodeIcon(node, config);\n if (icon) {\n nodeIcons.push({ icon, node });\n }\n node.children.forEach(collect);\n }, \"collect\");\n collect(root);\n const resolvedIcons = await Promise.all(\n nodeIcons.map(async ({ icon, node }) => ({\n id: node.id,\n svg: await getIconSVG(icon, {\n height: ICON_SIZE,\n width: ICON_SIZE\n })\n }))\n );\n return new Map(resolvedIcons.map(({ id, svg }) => [id, svg]));\n}, \"resolveNodeIcons\");\nvar positionLabel = /* @__PURE__ */ __name((x, y, node, domElem, config, iconSVGs) => {\n const nodeGroup = domElem.append(\"g\");\n let cssClasses = \"treeView-node-label\";\n if (node.nodeType === \"directory\") {\n cssClasses += \" treeView-node-dir\";\n }\n if (node.cssClass) {\n cssClasses += ` ${node.cssClass}`;\n }\n const iconOffset = ICON_SIZE + ICON_GAP;\n const icon = getNodeIcon(node, config);\n const showIcon = icon !== void 0;\n if (icon) {\n nodeGroup.append(\"g\").attr(\"class\", \"treeView-node-icon\").attr(\"transform\", `translate(${x + config.paddingX}, ${y + config.paddingY})`).html(iconSVGs.get(node.id) ?? \"\");\n }\n const label = nodeGroup.append(\"text\").text(node.name).attr(\"dominant-baseline\", \"middle\").attr(\"class\", cssClasses);\n const { height: labelHeight, width: labelWidth } = label.node().getBBox();\n const height = labelHeight + config.paddingY * 2;\n const labelX = x + config.paddingX + (showIcon ? iconOffset : 0);\n label.attr(\"x\", labelX);\n label.attr(\"y\", y + height / 2);\n const labelRightEdge = labelX + labelWidth;\n const width = labelWidth + config.paddingX * 2 + (showIcon ? iconOffset : 0);\n node.BBox = { x, y, width, height };\n if (node.cssClass?.split(/\\s+/).includes(\"highlight\")) {\n nodeGroup.insert(\"rect\", \":first-child\").attr(\"x\", x).attr(\"y\", y + 1).attr(\"width\", 0).attr(\"height\", height - 2).attr(\"rx\", 3).attr(\"class\", \"treeView-highlight-bg\");\n }\n return { node, nodeGroup, labelRightEdge, centerY: y + height / 2 };\n}, \"positionLabel\");\nvar positionLine = /* @__PURE__ */ __name((domElem, x1, y1, x2, y2, lineThickness) => {\n return domElem.append(\"line\").attr(\"x1\", x1).attr(\"y1\", y1).attr(\"x2\", x2).attr(\"y2\", y2).attr(\"stroke-width\", lineThickness).attr(\"class\", \"treeView-node-line\");\n}, \"positionLine\");\nvar drawTree = /* @__PURE__ */ __name((elem, root, config, iconSVGs) => {\n let totalHeight = 0;\n let totalWidth = 0;\n const renderInfos = [];\n const drawNode = /* @__PURE__ */ __name((elem2, node, config2, depth) => {\n const indent = depth * (config2.rowIndent + config2.paddingX);\n const info = positionLabel(indent, totalHeight, node, elem2, config2, iconSVGs);\n renderInfos.push(info);\n const { height, width } = node.BBox;\n positionLine(\n elem2,\n indent - config2.rowIndent,\n totalHeight + height / 2,\n indent,\n totalHeight + height / 2,\n config2.lineThickness\n );\n totalWidth = Math.max(totalWidth, indent + width);\n totalHeight += height;\n }, \"drawNode\");\n const processNode = /* @__PURE__ */ __name((node, depth = 0) => {\n drawNode(elem, node, config, depth);\n node.children.forEach((child) => {\n processNode(child, depth + 1);\n });\n const { x, y, height } = node.BBox;\n if (node.children.length) {\n const { y: endY, height: endHeight } = node.children[node.children.length - 1].BBox;\n positionLine(\n elem,\n x + config.paddingX,\n y + height,\n x + config.paddingX,\n endY + endHeight / 2 + config.lineThickness / 2,\n config.lineThickness\n );\n }\n }, \"processNode\");\n processNode(root);\n const nodesWithDesc = renderInfos.filter((ri) => ri.node.description);\n if (nodesWithDesc.length > 0) {\n const maxLabelRight = Math.max(...renderInfos.map((ri) => ri.labelRightEdge));\n const descX = maxLabelRight + DESC_GAP;\n for (const ri of nodesWithDesc) {\n const desc = ri.nodeGroup.append(\"text\").text(ri.node.description).attr(\"dominant-baseline\", \"middle\").attr(\"class\", \"treeView-node-description\").attr(\"x\", descX).attr(\"y\", ri.centerY);\n const descBBox = desc.node().getBBox();\n totalWidth = Math.max(totalWidth, descX + descBBox.width + config.paddingX);\n }\n }\n for (const ri of renderInfos) {\n if (ri.node.cssClass?.split(/\\s+/).includes(\"highlight\")) {\n const rect = ri.nodeGroup.select(\".treeView-highlight-bg\");\n if (!rect.empty()) {\n const rectWidth = totalWidth - ri.node.BBox.x + 8;\n rect.attr(\"width\", rectWidth);\n totalWidth = Math.max(totalWidth, ri.node.BBox.x + rectWidth + 2);\n }\n }\n }\n return { totalHeight, totalWidth };\n}, \"drawTree\");\nvar draw = /* @__PURE__ */ __name(async (text, id, _ver, diagObj) => {\n log.debug(\"Rendering treeView diagram\\n\" + text);\n const db2 = diagObj.db;\n const root = db2.getRoot();\n const config = db2.getConfig();\n const svg = selectSvgElement(id);\n const treeElem = svg.append(\"g\");\n treeElem.attr(\"class\", \"tree-view\");\n const iconSVGs = await resolveNodeIcons(root, config);\n const { totalHeight, totalWidth } = drawTree(treeElem, root, config, iconSVGs);\n svg.attr(\"viewBox\", `-${config.lineThickness / 2} 0 ${totalWidth} ${totalHeight}`);\n configureSvgSize(svg, totalHeight, totalWidth, config.useMaxWidth);\n}, \"draw\");\nvar renderer = {\n draw\n};\nvar renderer_default = renderer;\n\n// src/diagrams/treeView/styles.ts\nvar defaultTreeViewDiagramStyles = {\n labelFontSize: \"16px\",\n labelColor: \"black\",\n lineColor: \"black\",\n iconColor: \"#546e7a\",\n descriptionColor: \"#6a9955\",\n highlightBg: \"rgba(255, 193, 7, 0.15)\",\n highlightStroke: \"#ffc107\"\n};\nvar styles = /* @__PURE__ */ __name(({\n treeView\n}) => {\n const {\n labelFontSize,\n labelColor,\n lineColor,\n iconColor,\n descriptionColor,\n highlightBg,\n highlightStroke\n } = cleanAndMerge(defaultTreeViewDiagramStyles, treeView);\n return `\n .treeView-node-label {\n font-size: ${labelFontSize};\n fill: ${labelColor};\n white-space: pre;\n }\n .treeView-node-dir {\n font-weight: bold;\n }\n .treeView-node-line {\n stroke: ${lineColor};\n }\n .treeView-node-icon {\n color: ${iconColor};\n }\n .treeView-node-description {\n font-size: ${labelFontSize};\n fill: ${descriptionColor};\n font-style: italic;\n white-space: pre;\n }\n .treeView-highlight-bg {\n fill: ${highlightBg};\n stroke: ${highlightStroke};\n stroke-width: 1;\n }\n `;\n}, \"styles\");\nvar styles_default = styles;\n\n// src/diagrams/treeView/diagram.ts\nvar diagram = {\n db: db_default,\n renderer: renderer_default,\n parser,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["ALL_BOX_CHARS","BRANCH_CHAR","DASH_CHAR","DECORATION_ONLY","METADATA_LINE","COMMENT_LINE","INDENT_UNIT","isBoxDrawingFormat","lines","line","__name","inferSegmentWidth","contentLines","match","remapErrorLines","message","lineMap","lineStr","original","preprocessBoxDrawing","input","keywordIdx","i","contentLineTexts","segmentWidth","outputLines","outLineNo","trimmed","origLineNo","normalized","branchMatch","branchCol","depth","pos","content","indent","state","ImperativeState","clear2","clear","getRoot","getCount","defaultConfig","defaultConfig_default","getConfig2","cleanAndMerge","getConfig","addNode","level","name","nodeType","cssClass","icon","description","node","db","getAccTitle","getAccDescription","getDiagramTitle","setAccDescription","setAccTitle","setDiagramTitle","db_default","populate","ast","populateCommonDb","isDirectory","rawIcon","rawDesc","sanitizeText","parser","text","parse","log","error","treeViewIcons","detectIcon","config","filenameIcon","_a","dotIdx","ext","extensionIcons","qualifyIcon","defaultIconPack","getNodeIcon","detected","registerIconPacks","ICON_SIZE","ICON_GAP","DESC_GAP","resolveNodeIcons","root","nodeIcons","collect","resolvedIcons","getIconSVG","id","svg","positionLabel","x","y","domElem","iconSVGs","nodeGroup","cssClasses","iconOffset","showIcon","label","labelHeight","labelWidth","height","labelX","labelRightEdge","width","positionLine","x1","y1","x2","y2","lineThickness","drawTree","elem","totalHeight","totalWidth","renderInfos","drawNode","elem2","config2","info","processNode","child","endY","endHeight","nodesWithDesc","ri","descX","descBBox","rect","rectWidth","draw","_ver","diagObj","db2","selectSvgElement","treeElem","configureSvgSize","renderer","renderer_default","defaultTreeViewDiagramStyles","styles","treeView","labelFontSize","labelColor","lineColor","iconColor","descriptionColor","highlightBg","highlightStroke","styles_default","diagram"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,42 @@
1
+ import{p as I}from"./chunk-JWPE2WC7-DyCryvDN.js";import{s as _,g as E,o as D,n as F,a as P,b as z,_ as c,D as G,p as B,A as w,y as C,B as W,l as b,E as V,d as H}from"./mermaid.core-ExHG1WnM.js";import{p as j}from"./cynefin-OW5HDTMX-BY6w3pAQ.js";import"./index-DoR97Zqf.js";var x={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},y=32,A={axes:[],curves:[],options:x},m=structuredClone(A),U=W.radar,X=c(()=>w({...U,...C().radar}),"getConfig"),M=c(()=>m.axes,"getAxes"),K=c(()=>m.curves,"getCurves"),N=c(()=>m.options,"getOptions"),Y=c(a=>{m.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),Z=c(a=>{m.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:q(t.entries)}))},"setCurves"),q=c(a=>{if(a[0].axis==null)return a.map(e=>e.value);const t=M();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(e=>{const r=a.find(s=>{var n;return((n=s.axis)==null?void 0:n.$refText)===e.name});if(r===void 0)throw new Error("Missing entry for axis "+e.label);return r.value})},"computeCurveEntries"),J=c(a=>{var e,r,s,n,l;const t=a.reduce((o,i)=>(o[i.name]=i,o),{});m.options={showLegend:((e=t.showLegend)==null?void 0:e.value)??x.showLegend,ticks:((r=t.ticks)==null?void 0:r.value)??x.ticks,max:((s=t.max)==null?void 0:s.value)??x.max,min:((n=t.min)==null?void 0:n.value)??x.min,graticule:((l=t.graticule)==null?void 0:l.value)??x.graticule},m.options.ticks>y&&(b.warn(`Radar diagram ticks (${m.options.ticks}) exceeds maximum allowed (${y}). Using ${y} instead.`),m.options.ticks=y)},"setOptions"),Q=c(()=>{B(),m=structuredClone(A)},"clear"),$={getAxes:M,getCurves:K,getOptions:N,setAxes:Y,setCurves:Z,setOptions:J,getConfig:X,clear:Q,setAccTitle:z,getAccTitle:P,setDiagramTitle:F,getDiagramTitle:D,getAccDescription:E,setAccDescription:_},tt=c(a=>{I(a,$);const{axes:t,curves:e,options:r}=a;$.setAxes(t),$.setCurves(e),$.setOptions(r)},"populate"),et={parse:c(async a=>{const t=await j("radar",a);b.debug(t),tt(t)},"parse")},at=c((a,t,e,r)=>{const s=r.db,n=s.getAxes(),l=s.getCurves(),o=s.getOptions(),i=s.getConfig(),d=s.getDiagramTitle(),p=G(t),u=rt(p,i),g=o.max??Math.max(...l.map(f=>Math.max(...f.entries))),h=o.min,v=Math.min(i.width,i.height)/2;st(u,n,v,o.ticks,o.graticule),nt(u,n,v,i),L(u,n,l,h,g,o.graticule,i),k(u,l,o.showLegend,i),u.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-i.height/2-i.marginTop)},"draw"),rt=c((a,t)=>{const e=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,s={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return H(a,r,e,t.useMaxWidth??!0),a.attr("viewBox",`0 0 ${e} ${r}`).attr("overflow","visible"),a.append("g").attr("transform",`translate(${s.x}, ${s.y})`)},"drawFrame"),st=c((a,t,e,r,s)=>{if(s==="circle")for(let n=0;n<r;n++){const l=e*(n+1)/r;a.append("circle").attr("r",l).attr("class","radarGraticule")}else if(s==="polygon"){const n=t.length;for(let l=0;l<r;l++){const o=e*(l+1)/r,i=t.map((d,p)=>{const u=2*p*Math.PI/n-Math.PI/2,g=o*Math.cos(u),h=o*Math.sin(u);return`${g},${h}`}).join(" ");a.append("polygon").attr("points",i).attr("class","radarGraticule")}}},"drawGraticule"),nt=c((a,t,e,r)=>{const s=t.length;for(let n=0;n<s;n++){const l=t[n].label,o=2*n*Math.PI/s-Math.PI/2,i=Math.cos(o),d=Math.sin(o);a.append("line").attr("x1",0).attr("y1",0).attr("x2",e*r.axisScaleFactor*i).attr("y2",e*r.axisScaleFactor*d).attr("class","radarAxisLine");const p=i>.01?"start":i<-.01?"end":"middle",u=d>.01?"hanging":d<-.01?"auto":"central",g=4;a.append("text").text(l).attr("x",e*r.axisLabelFactor*i+g*i).attr("y",e*r.axisLabelFactor*d+g*d).attr("text-anchor",p).attr("dominant-baseline",u).attr("class","radarAxisLabel")}},"drawAxes");function L(a,t,e,r,s,n,l){const o=t.length,i=Math.min(l.width,l.height)/2;e.forEach((d,p)=>{if(d.entries.length!==o)return;const u=d.entries.map((g,h)=>{const v=2*Math.PI*h/o-Math.PI/2,f=T(g,r,s,i),O=f*Math.cos(v),R=f*Math.sin(v);return{x:O,y:R}});n==="circle"?a.append("path").attr("d",S(u,l.curveTension)).attr("class",`radarCurve-${p}`):n==="polygon"&&a.append("polygon").attr("points",u.map(g=>`${g.x},${g.y}`).join(" ")).attr("class",`radarCurve-${p}`)})}c(L,"drawCurves");function T(a,t,e,r){const s=Math.min(Math.max(a,t),e);return r*(s-t)/(e-t)}c(T,"relativeRadius");function S(a,t){const e=a.length;let r=`M${a[0].x},${a[0].y}`;for(let s=0;s<e;s++){const n=a[(s-1+e)%e],l=a[s],o=a[(s+1)%e],i=a[(s+2)%e],d={x:l.x+(o.x-n.x)*t,y:l.y+(o.y-n.y)*t},p={x:o.x-(i.x-l.x)*t,y:o.y-(i.y-l.y)*t};r+=` C${d.x},${d.y} ${p.x},${p.y} ${o.x},${o.y}`}return`${r} Z`}c(S,"closedRoundCurve");function k(a,t,e,r){if(!e)return;const s=(r.width/2+r.marginRight)*3/4,n=-(r.height/2+r.marginTop)*3/4,l=20;t.forEach((o,i)=>{const d=a.append("g").attr("transform",`translate(${s}, ${n+i*l})`);d.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${i}`),d.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(o.label)})}c(k,"drawLegend");var ot={draw:at},it=c((a,t)=>{let e="";for(let r=0;r<a.THEME_COLOR_LIMIT;r++){const s=a[`cScale${r}`];e+=`
2
+ .radarCurve-${r} {
3
+ color: ${s};
4
+ fill: ${s};
5
+ fill-opacity: ${t.curveOpacity};
6
+ stroke: ${s};
7
+ stroke-width: ${t.curveStrokeWidth};
8
+ }
9
+ .radarLegendBox-${r} {
10
+ fill: ${s};
11
+ fill-opacity: ${t.curveOpacity};
12
+ stroke: ${s};
13
+ }
14
+ `}return e},"genIndexStyles"),lt=c(a=>{const t=V(),e=C(),r=w(t,e.themeVariables),s=w(r.radar,a);return{themeVariables:r,radarOptions:s}},"buildRadarStyleOptions"),ct=c(({radar:a}={})=>{const{themeVariables:t,radarOptions:e}=lt(a);return`
15
+ .radarTitle {
16
+ font-size: ${t.fontSize};
17
+ color: ${t.titleColor};
18
+ dominant-baseline: hanging;
19
+ text-anchor: middle;
20
+ }
21
+ .radarAxisLine {
22
+ stroke: ${e.axisColor};
23
+ stroke-width: ${e.axisStrokeWidth};
24
+ }
25
+ .radarAxisLabel {
26
+ font-size: ${e.axisLabelFontSize}px;
27
+ color: ${e.axisColor};
28
+ }
29
+ .radarGraticule {
30
+ fill: ${e.graticuleColor};
31
+ fill-opacity: ${e.graticuleOpacity};
32
+ stroke: ${e.graticuleColor};
33
+ stroke-width: ${e.graticuleStrokeWidth};
34
+ }
35
+ .radarLegendText {
36
+ text-anchor: start;
37
+ font-size: ${e.legendFontSize}px;
38
+ dominant-baseline: hanging;
39
+ }
40
+ ${it(t,e)}
41
+ `},"styles"),mt={parser:et,db:$,renderer:ot,styles:ct};export{mt as diagram};
42
+ //# sourceMappingURL=diagram-UQ7AKVKN-gm1M_iZS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagram-UQ7AKVKN-gm1M_iZS.js","sources":["../../../../node_modules/.pnpm/mermaid@11.17.2/node_modules/mermaid/dist/chunks/mermaid.core/diagram-UQ7AKVKN.mjs"],"sourcesContent":["import {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-CLGD4ZFX.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-75Z2AOVW.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n getThemeVariables,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-DU6HZSFF.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/radar/db.ts\nvar defaultOptions = {\n showLegend: true,\n ticks: 5,\n max: null,\n min: 0,\n graticule: \"circle\"\n};\nvar MAX_TICKS = 32;\nvar defaultRadarData = {\n axes: [],\n curves: [],\n options: defaultOptions\n};\nvar data = structuredClone(defaultRadarData);\nvar DEFAULT_RADAR_CONFIG = defaultConfig_default.radar;\nvar getConfig2 = /* @__PURE__ */ __name(() => {\n const config = cleanAndMerge({\n ...DEFAULT_RADAR_CONFIG,\n ...getConfig().radar\n });\n return config;\n}, \"getConfig\");\nvar getAxes = /* @__PURE__ */ __name(() => data.axes, \"getAxes\");\nvar getCurves = /* @__PURE__ */ __name(() => data.curves, \"getCurves\");\nvar getOptions = /* @__PURE__ */ __name(() => data.options, \"getOptions\");\nvar setAxes = /* @__PURE__ */ __name((axes) => {\n data.axes = axes.map((axis) => {\n return {\n name: axis.name,\n label: axis.label ?? axis.name\n };\n });\n}, \"setAxes\");\nvar setCurves = /* @__PURE__ */ __name((curves) => {\n data.curves = curves.map((curve) => {\n return {\n name: curve.name,\n label: curve.label ?? curve.name,\n entries: computeCurveEntries(curve.entries)\n };\n });\n}, \"setCurves\");\nvar computeCurveEntries = /* @__PURE__ */ __name((entries) => {\n if (entries[0].axis == void 0) {\n return entries.map((entry) => entry.value);\n }\n const axes = getAxes();\n if (axes.length === 0) {\n throw new Error(\"Axes must be populated before curves for reference entries\");\n }\n return axes.map((axis) => {\n const entry = entries.find((entry2) => entry2.axis?.$refText === axis.name);\n if (entry === void 0) {\n throw new Error(\"Missing entry for axis \" + axis.label);\n }\n return entry.value;\n });\n}, \"computeCurveEntries\");\nvar setOptions = /* @__PURE__ */ __name((options) => {\n const optionMap = options.reduce(\n (acc, option) => {\n acc[option.name] = option;\n return acc;\n },\n {}\n );\n data.options = {\n showLegend: optionMap.showLegend?.value ?? defaultOptions.showLegend,\n ticks: optionMap.ticks?.value ?? defaultOptions.ticks,\n max: optionMap.max?.value ?? defaultOptions.max,\n min: optionMap.min?.value ?? defaultOptions.min,\n graticule: optionMap.graticule?.value ?? defaultOptions.graticule\n };\n if (data.options.ticks > MAX_TICKS) {\n log.warn(\n `Radar diagram ticks (${data.options.ticks}) exceeds maximum allowed (${MAX_TICKS}). Using ${MAX_TICKS} instead.`\n );\n data.options.ticks = MAX_TICKS;\n }\n}, \"setOptions\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n clear();\n data = structuredClone(defaultRadarData);\n}, \"clear\");\nvar db = {\n getAxes,\n getCurves,\n getOptions,\n setAxes,\n setCurves,\n setOptions,\n getConfig: getConfig2,\n clear: clear2,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription\n};\n\n// src/diagrams/radar/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar populate = /* @__PURE__ */ __name((ast) => {\n populateCommonDb(ast, db);\n const { axes, curves, options } = ast;\n db.setAxes(axes);\n db.setCurves(curves);\n db.setOptions(options);\n}, \"populate\");\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"radar\", input);\n log.debug(ast);\n populate(ast);\n }, \"parse\")\n};\n\n// src/diagrams/radar/renderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const db2 = diagram2.db;\n const axes = db2.getAxes();\n const curves = db2.getCurves();\n const options = db2.getOptions();\n const config = db2.getConfig();\n const title = db2.getDiagramTitle();\n const svg = selectSvgElement(id);\n const g = drawFrame(svg, config);\n const maxValue = options.max ?? Math.max(...curves.map((curve) => Math.max(...curve.entries)));\n const minValue = options.min;\n const radius = Math.min(config.width, config.height) / 2;\n drawGraticule(g, axes, radius, options.ticks, options.graticule);\n drawAxes(g, axes, radius, config);\n drawCurves(g, axes, curves, minValue, maxValue, options.graticule, config);\n drawLegend(g, curves, options.showLegend, config);\n g.append(\"text\").attr(\"class\", \"radarTitle\").text(title).attr(\"x\", 0).attr(\"y\", -config.height / 2 - config.marginTop);\n}, \"draw\");\nvar drawFrame = /* @__PURE__ */ __name((svg, config) => {\n const totalWidth = config.width + config.marginLeft + config.marginRight;\n const totalHeight = config.height + config.marginTop + config.marginBottom;\n const center = {\n x: config.marginLeft + config.width / 2,\n y: config.marginTop + config.height / 2\n };\n configureSvgSize(svg, totalHeight, totalWidth, config.useMaxWidth ?? true);\n svg.attr(\"viewBox\", `0 0 ${totalWidth} ${totalHeight}`).attr(\"overflow\", \"visible\");\n return svg.append(\"g\").attr(\"transform\", `translate(${center.x}, ${center.y})`);\n}, \"drawFrame\");\nvar drawGraticule = /* @__PURE__ */ __name((g, axes, radius, ticks, graticule) => {\n if (graticule === \"circle\") {\n for (let i = 0; i < ticks; i++) {\n const r = radius * (i + 1) / ticks;\n g.append(\"circle\").attr(\"r\", r).attr(\"class\", \"radarGraticule\");\n }\n } else if (graticule === \"polygon\") {\n const numAxes = axes.length;\n for (let i = 0; i < ticks; i++) {\n const r = radius * (i + 1) / ticks;\n const points = axes.map((_, j) => {\n const angle = 2 * j * Math.PI / numAxes - Math.PI / 2;\n const x = r * Math.cos(angle);\n const y = r * Math.sin(angle);\n return `${x},${y}`;\n }).join(\" \");\n g.append(\"polygon\").attr(\"points\", points).attr(\"class\", \"radarGraticule\");\n }\n }\n}, \"drawGraticule\");\nvar drawAxes = /* @__PURE__ */ __name((g, axes, radius, config) => {\n const numAxes = axes.length;\n for (let i = 0; i < numAxes; i++) {\n const label = axes[i].label;\n const angle = 2 * i * Math.PI / numAxes - Math.PI / 2;\n const cosA = Math.cos(angle);\n const sinA = Math.sin(angle);\n g.append(\"line\").attr(\"x1\", 0).attr(\"y1\", 0).attr(\"x2\", radius * config.axisScaleFactor * cosA).attr(\"y2\", radius * config.axisScaleFactor * sinA).attr(\"class\", \"radarAxisLine\");\n const textAnchor = cosA > 0.01 ? \"start\" : cosA < -0.01 ? \"end\" : \"middle\";\n const dominantBaseline = sinA > 0.01 ? \"hanging\" : sinA < -0.01 ? \"auto\" : \"central\";\n const labelPad = 4;\n g.append(\"text\").text(label).attr(\"x\", radius * config.axisLabelFactor * cosA + labelPad * cosA).attr(\"y\", radius * config.axisLabelFactor * sinA + labelPad * sinA).attr(\"text-anchor\", textAnchor).attr(\"dominant-baseline\", dominantBaseline).attr(\"class\", \"radarAxisLabel\");\n }\n}, \"drawAxes\");\nfunction drawCurves(g, axes, curves, minValue, maxValue, graticule, config) {\n const numAxes = axes.length;\n const radius = Math.min(config.width, config.height) / 2;\n curves.forEach((curve, index) => {\n if (curve.entries.length !== numAxes) {\n return;\n }\n const points = curve.entries.map((entry, i) => {\n const angle = 2 * Math.PI * i / numAxes - Math.PI / 2;\n const r = relativeRadius(entry, minValue, maxValue, radius);\n const x = r * Math.cos(angle);\n const y = r * Math.sin(angle);\n return { x, y };\n });\n if (graticule === \"circle\") {\n g.append(\"path\").attr(\"d\", closedRoundCurve(points, config.curveTension)).attr(\"class\", `radarCurve-${index}`);\n } else if (graticule === \"polygon\") {\n g.append(\"polygon\").attr(\"points\", points.map((p) => `${p.x},${p.y}`).join(\" \")).attr(\"class\", `radarCurve-${index}`);\n }\n });\n}\n__name(drawCurves, \"drawCurves\");\nfunction relativeRadius(value, minValue, maxValue, radius) {\n const clippedValue = Math.min(Math.max(value, minValue), maxValue);\n return radius * (clippedValue - minValue) / (maxValue - minValue);\n}\n__name(relativeRadius, \"relativeRadius\");\nfunction closedRoundCurve(points, tension) {\n const numPoints = points.length;\n let d = `M${points[0].x},${points[0].y}`;\n for (let i = 0; i < numPoints; i++) {\n const p0 = points[(i - 1 + numPoints) % numPoints];\n const p1 = points[i];\n const p2 = points[(i + 1) % numPoints];\n const p3 = points[(i + 2) % numPoints];\n const cp1 = {\n x: p1.x + (p2.x - p0.x) * tension,\n y: p1.y + (p2.y - p0.y) * tension\n };\n const cp2 = {\n x: p2.x - (p3.x - p1.x) * tension,\n y: p2.y - (p3.y - p1.y) * tension\n };\n d += ` C${cp1.x},${cp1.y} ${cp2.x},${cp2.y} ${p2.x},${p2.y}`;\n }\n return `${d} Z`;\n}\n__name(closedRoundCurve, \"closedRoundCurve\");\nfunction drawLegend(g, curves, showLegend, config) {\n if (!showLegend) {\n return;\n }\n const legendX = (config.width / 2 + config.marginRight) * 3 / 4;\n const legendY = -(config.height / 2 + config.marginTop) * 3 / 4;\n const lineHeight = 20;\n curves.forEach((curve, index) => {\n const itemGroup = g.append(\"g\").attr(\"transform\", `translate(${legendX}, ${legendY + index * lineHeight})`);\n itemGroup.append(\"rect\").attr(\"width\", 12).attr(\"height\", 12).attr(\"class\", `radarLegendBox-${index}`);\n itemGroup.append(\"text\").attr(\"x\", 16).attr(\"y\", 0).attr(\"class\", \"radarLegendText\").text(curve.label);\n });\n}\n__name(drawLegend, \"drawLegend\");\nvar renderer = { draw };\n\n// src/diagrams/radar/styles.ts\nvar genIndexStyles = /* @__PURE__ */ __name((themeVariables, radarOptions) => {\n let sections = \"\";\n for (let i = 0; i < themeVariables.THEME_COLOR_LIMIT; i++) {\n const indexColor = themeVariables[`cScale${i}`];\n sections += `\n\t\t.radarCurve-${i} {\n\t\t\tcolor: ${indexColor};\n\t\t\tfill: ${indexColor};\n\t\t\tfill-opacity: ${radarOptions.curveOpacity};\n\t\t\tstroke: ${indexColor};\n\t\t\tstroke-width: ${radarOptions.curveStrokeWidth};\n\t\t}\n\t\t.radarLegendBox-${i} {\n\t\t\tfill: ${indexColor};\n\t\t\tfill-opacity: ${radarOptions.curveOpacity};\n\t\t\tstroke: ${indexColor};\n\t\t}\n\t\t`;\n }\n return sections;\n}, \"genIndexStyles\");\nvar buildRadarStyleOptions = /* @__PURE__ */ __name((radar) => {\n const defaultThemeVariables = getThemeVariables();\n const currentConfig = getConfig();\n const themeVariables = cleanAndMerge(defaultThemeVariables, currentConfig.themeVariables);\n const radarOptions = cleanAndMerge(themeVariables.radar, radar);\n return { themeVariables, radarOptions };\n}, \"buildRadarStyleOptions\");\nvar styles = /* @__PURE__ */ __name(({ radar } = {}) => {\n const { themeVariables, radarOptions } = buildRadarStyleOptions(radar);\n return `\n\t.radarTitle {\n\t\tfont-size: ${themeVariables.fontSize};\n\t\tcolor: ${themeVariables.titleColor};\n\t\tdominant-baseline: hanging;\n\t\ttext-anchor: middle;\n\t}\n\t.radarAxisLine {\n\t\tstroke: ${radarOptions.axisColor};\n\t\tstroke-width: ${radarOptions.axisStrokeWidth};\n\t}\n\t.radarAxisLabel {\n\t\tfont-size: ${radarOptions.axisLabelFontSize}px;\n\t\tcolor: ${radarOptions.axisColor};\n\t}\n\t.radarGraticule {\n\t\tfill: ${radarOptions.graticuleColor};\n\t\tfill-opacity: ${radarOptions.graticuleOpacity};\n\t\tstroke: ${radarOptions.graticuleColor};\n\t\tstroke-width: ${radarOptions.graticuleStrokeWidth};\n\t}\n\t.radarLegendText {\n\t\ttext-anchor: start;\n\t\tfont-size: ${radarOptions.legendFontSize}px;\n\t\tdominant-baseline: hanging;\n\t}\n\t${genIndexStyles(themeVariables, radarOptions)}\n\t`;\n}, \"styles\");\n\n// src/diagrams/radar/diagram.ts\nvar diagram = {\n parser,\n db,\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"names":["defaultOptions","MAX_TICKS","defaultRadarData","data","DEFAULT_RADAR_CONFIG","defaultConfig_default","getConfig2","__name","cleanAndMerge","getConfig","getAxes","getCurves","getOptions","setAxes","axes","axis","setCurves","curves","curve","computeCurveEntries","entries","entry","entry2","_a","setOptions","options","optionMap","acc","option","_b","_c","_d","_e","log","clear2","clear","db","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","getAccDescription","setAccDescription","populate","ast","populateCommonDb","parser","input","parse","draw","_text","id","_version","diagram2","db2","config","title","svg","selectSvgElement","g","drawFrame","maxValue","minValue","radius","drawGraticule","drawAxes","drawCurves","drawLegend","totalWidth","totalHeight","center","configureSvgSize","ticks","graticule","i","r","numAxes","points","_","j","angle","x","y","label","cosA","sinA","textAnchor","dominantBaseline","labelPad","index","relativeRadius","closedRoundCurve","p","value","clippedValue","tension","numPoints","d","p0","p1","p2","p3","cp1","cp2","showLegend","legendX","legendY","lineHeight","itemGroup","renderer","genIndexStyles","themeVariables","radarOptions","sections","indexColor","buildRadarStyleOptions","radar","defaultThemeVariables","getThemeVariables","currentConfig","styles","diagram"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,4 @@
1
+ import{p as oe}from"./chunk-JWPE2WC7-DyCryvDN.js";import{o as se,n as de,s as le,g as ce,a as me,b as ue,_ as o,l as g,c as T,j as xe,z as fe,p as ge,A as he,y as E,B as pe,i as P,w as S,am as be}from"./mermaid.core-ExHG1WnM.js";import{p as ve,i as we}from"./cynefin-OW5HDTMX-BY6w3pAQ.js";import"./index-DoR97Zqf.js";var D="position frame",N="frame positioned",M="position relation",C="relation positioned",ye=o(function(e){g.debug("options str",e)},"setOptions"),Pe=o(function(){return{}},"getOptions"),Se=o(function(){O(),ge()},"clear");function O(){A={}}o(O,"reset");var ke=pe.eventmodeling,Me=o(()=>he({...ke,...E().eventmodeling}),"getConfig"),A={};function W(){let e=Be;const{ast:n}=A,t=R();if(!n)throw new Error("No data for EventModel");return n.frames.forEach((i,a)=>{const r=X(i,n.dataEntities,t);e=w(e,{$kind:D,index:a,frame:i,textProps:r});let d;q(i)?(g.debug("source frame",i.sourceFrames),d=n.frames.filter(l=>i.sourceFrames.some(c=>c.$refText===l.name)),d.forEach(l=>{e=w(e,{$kind:M,index:a,frame:i,sourceFrame:l})})):e=w(e,{$kind:M,index:a,frame:i})}),e={...e,sortedSwimlanesArray:$(e.swimlanes)},e}o(W,"getState");function I(e){A.ast=e}o(I,"setAst");var s={swimlaneMinHeight:70,swimlanePadding:15,swimlaneGap:10,boxPadding:10,boxOverlap:90,boxDefaultY:0,boxMinWidth:80,boxMaxWidth:450,boxMinHeight:80,boxMaxHeight:750,contentStartX:250,textMaxWidth:430,boxTextFontWeight:"bold",boxTextPadding:10,swimlaneTextFontWeight:"bold",labelUiAutomation:"UI/Automation",labelUiAutomationPrefix:"UI/A: ",labelCommandReadModel:"Command/Read Model",labelCommandReadModelPrefix:"C/RM: ",labelEvents:"Events",labelEventsPrefix:"Stream: "};function R(){return s}o(R,"getDiagramProps");var Be={boxes:[],swimlanes:{},relations:[],maxR:0,sortedSwimlanesArray:[]};function H(e){const n=e.split(".");if(n.length===2)return n[0]}o(H,"extractNamespace");function U(e){const n=e.split(".");return n.length===2?n[1]:e}o(U,"extractName");function _(e,n){if(!(!n||n.length===0))return Object.values(e).find(t=>t.namespace===n)}o(_,"findSwimlaneByNamespace");function v(e,n,t){return Math.max(n,...Object.keys(e).filter(i=>{const a=Number.parseInt(i);return a>n&&a<t}).map(i=>Number.parseInt(i)))+1}o(v,"findNextAvailableIndex");function V(e,n){const t=H(e.entityIdentifier),i=_(n,t);switch(e.modelEntityType){case"ui":case"pcr":case"processor":return i?{index:i.index,label:i.namespace||s.labelUiAutomation}:t?{index:v(n,0,100),label:s.labelUiAutomationPrefix+t}:{index:0,label:s.labelUiAutomation};case"rmo":case"readmodel":case"cmd":case"command":return i?{index:i.index,label:i.namespace||s.labelCommandReadModel}:t?{index:v(n,100,200),label:s.labelCommandReadModelPrefix+t}:{index:100,label:s.labelCommandReadModel};case"evt":case"event":default:return i?{index:i.index,label:i.namespace||s.labelEvents}:t?{index:v(n,200,300),label:s.labelEventsPrefix+t}:{index:200,label:s.labelEvents}}}o(V,"calculateSwimlaneProps");function L(e){const{themeVariables:n}=E();switch(e.modelEntityType){case"ui":return{fill:n.emUiFill??"white",stroke:n.emUiStroke??"#dbdada"};case"pcr":case"processor":return{fill:n.emProcessorFill??"#edb3f6",stroke:n.emProcessorStroke??"#b88cbf"};case"rmo":case"readmodel":return{fill:n.emReadModelFill??"#d3f1a2",stroke:n.emReadModelStroke??"#a3b732"};case"cmd":case"command":return{fill:n.emCommandFill??"#bcd6fe",stroke:n.emCommandStroke??"#679ac3"};case"evt":case"event":return{fill:n.emEventFill??"#ffb778",stroke:n.emEventStroke??"#c19a0f"};default:return{fill:"red",stroke:"black"}}}o(L,"calculateEntityVisualProps");function X(e,n,t){const i=E(),a=P(U(e.entityIdentifier)??"",i);let r;const d={fontSize:16,fontWeight:700,fontFamily:'"trebuchet ms", verdana, arial, sans-serif',joinWith:"<br/>"};let c=`<b>${S(a,t.textMaxWidth,d)}</b>`;if(e.dataInlineValue&&(r=e.dataInlineValue,r=r.substring(r.indexOf("{")+1),r=r.substring(0,r.lastIndexOf("}")-1),r=P(r,i),r=S(r,t.textMaxWidth,d),r=r.replaceAll(" ","&nbsp;")),e.dataReference){const p=n.find(y=>{var b;return y.name===((b=e.dataReference)==null?void 0:b.$refText)});p&&(r=p.dataBlockValue,r=r.substring(r.indexOf(`{
2
+ `)+2),r=r.substring(0,r.lastIndexOf("}")-1),r=P(r,i),r=S(r,t.textMaxWidth,d),r=r.replaceAll(" ","&nbsp;"),r+="<br/>")}const m=r!==void 0;m&&(c+=`<br/><br/><code style="text-align: left; display: block;max-width:${t.textMaxWidth}px">${r}</code>`);const x={fontSize:d.fontSize,fontWeight:d.fontWeight,fontFamily:d.fontFamily},u=be(c,x),h=m?u.width/3:u.width,f={content:c,width:h,height:u.height};return g.debug(`[${e.name}] ${e.entityIdentifier} text`,f),f}o(X,"calculateTextProps");function j(e,n){const t=n,i=L(t.frame),a={width:t.textProps.width+2*s.boxTextPadding,height:t.textProps.height+2*s.boxTextPadding};return[{$kind:N,frame:t.frame,index:t.index,visual:i,dimension:a,textProps:t.textProps}]}o(j,"decidePositionFrame");function G(e,n,t){return n===void 0?s.contentStartX:n.index===e.index&&e.r?e.r+s.boxPadding:t===void 0?s.contentStartX:t.r-s.boxOverlap+s.boxPadding}o(G,"calculateX");function Y(e,n){const t=[...e.map(i=>i.r),n];return Math.max(...t)}o(Y,"calculateMaxRight");function $(e){return Object.values(e).sort((n,t)=>n.index-t.index)}o($,"sortedSwimlanesArray");function z(e,n){const t=n,i=V(t.frame,e.swimlanes);let a;i.index in e.swimlanes?a=e.swimlanes[i.index]:a={index:i.index,label:i.label,r:0,y:i.index*s.swimlaneMinHeight+s.swimlaneGap,height:s.swimlaneMinHeight,maxHeight:s.swimlaneMinHeight};const r=e.boxes.length>0?e.boxes[e.boxes.length-1]:void 0,d=e.previousSwimlaneNumber!==void 0?e.swimlanes[e.previousSwimlaneNumber]:void 0,l={width:Math.max(s.boxMinWidth,Math.min(s.boxMaxWidth,t.dimension.width))+2*s.boxPadding,height:Math.max(s.boxMinHeight,Math.min(s.boxMaxHeight,t.dimension.height))+2*s.boxPadding},c=G(a,d,r),m=c+l.width+s.boxPadding,x=Y(Object.values(e.swimlanes),m);a.r=c+l.width,a.maxHeight=Math.max(a.maxHeight,l.height),a.height=Math.max(s.swimlaneMinHeight,a.maxHeight)+2*s.swimlanePadding;const u={x:c,y:s.swimlanePadding+a.y,r:m,dimension:l,leftSibling:!1,swimlane:a,visual:t.visual,text:t.textProps.content,frame:t.frame,index:t.index},h={...e,boxes:[...e.boxes,u],swimlanes:{...e.swimlanes,[`${a.index}`]:a},previousSwimlaneNumber:i.index,previousFrame:t.frame,maxR:x},f=$(h.swimlanes);f.length>0&&(f[0].y=0);for(let p=1;p<f.length;p++){const y=f[p],b=f[p-1];y.y=b.y+b.height+s.swimlaneGap}return h}o(z,"evolveFramePositioned");function K(e,n){return e===0&&n.sourceFrames.length===0}o(K,"isFirstFrame");function q(e){return e.sourceFrames!==void 0&&e.sourceFrames!==null&&e.sourceFrames.length>0}o(q,"hasSourceFrame");function B(e,n){if(n!=null)return e.find(t=>t.frame.name===n.name)}o(B,"findBoxByFrame");function J(e,n,t){if(!(t<0))for(let i=t;i>=0;i--){const a=e[i];if(a.swimlane.index!==n)return a}}o(J,"findBoxByLineIndex");function Q(e,n){const t=n;if(we(t.frame)||K(t.index,t.frame))return[];const i=B(e.boxes,t.frame);if(i===void 0)throw new Error(`Target box not found for frame ${t.frame.name}`);let a;return t.sourceFrame?a=B(e.boxes,t.sourceFrame):a=J(e.boxes,i.swimlane.index,t.index-1),a===void 0?[]:[{$kind:C,frame:t.frame,index:t.index,sourceBox:a,targetBox:i}]}o(Q,"decidePositionRelation");function Z(e,n){const t=n,i={visual:{fill:"none",stroke:"#000"},source:{x:t.sourceBox.x,y:t.sourceBox.y},target:{x:t.targetBox.x,y:t.targetBox.y},sourceBox:t.sourceBox,targetBox:t.targetBox};return{...e,relations:[...e.relations,i]}}o(Z,"evolveRelationPositioned");var Fe={[D]:j,[M]:Q},Ee={[N]:z,[C]:Z};function ee(e,n){const t=Fe[n.$kind];if(t==null)return[];const i=t(e,n);return g.debug("decided events",i),i}o(ee,"decide");function te(e,n){const t=n.reduce((i,a)=>{const r=Ee[a.$kind];return r==null?i:r(i,a)},e);return g.debug("evolve events",{state:e,newState:t,events:n}),t}o(te,"evolve");function w(e,n){const t=ee(e,n);return te(e,t)}o(w,"dispatch");var F={getConfig:Me,setOptions:ye,getOptions:Pe,clear:Se,setAccTitle:ue,getAccTitle:me,getAccDescription:ce,setAccDescription:le,setDiagramTitle:de,getDiagramTitle:se,setAst:I,getDiagramProps:R,getState:W},Ae={parse:o(async e=>{const n=await ve("eventmodeling",e);g.debug(n),F.setAst(n),oe(n,F)},"parse")},k=T(),Re=k==null?void 0:k.eventmodeling;function ne(e,n){return t=>{const i=t.swimlane.y+n.swimlanePadding,a=e.append("g").attr("class","em-box");a.append("rect").attr("x",t.x).attr("y",i).attr("rx","3").attr("width",t.dimension.width).attr("height",t.dimension.height).attr("stroke",t.visual.stroke).attr("fill",t.visual.fill),a.append("foreignObject").attr("x",t.x+n.boxPadding).attr("y",i+10).attr("width",t.dimension.width-2*n.boxPadding).attr("height",t.dimension.height-2*n.boxPadding).append("xhtml:div").style("display","table").style("height","100%").style("width","100%").append("span").style("display","table-cell").style("text-align","center").style("vertical-align","middle").html(t.text)}}o(ne,"renderD3Box");function ie(e,n){return e>n}o(ie,"dirUpwards");function ae(e,n,t,i){return a=>{const r=a.sourceBox.swimlane.y+n.swimlanePadding,d=a.targetBox.swimlane.y+n.swimlanePadding,l=ie(r,d),c=a.sourceBox.x+a.sourceBox.dimension.width*2/3,m=a.targetBox.x+a.targetBox.dimension.width/3;let x,u;g.debug(`rendering relation up=${l} for `,{sourceBox:a.sourceBox,targetBox:a.targetBox}),l?(x=r,u=d+a.targetBox.dimension.height):(x=r+a.sourceBox.dimension.height,u=d);const h=i.emRelationStroke??a.visual.stroke;e.append("path").attr("class","em-relation").attr("fill",a.visual.fill).attr("stroke",h).attr("stroke-width","1").attr("marker-end",`url(#${t})`).attr("d",`M${c} ${x} L${m} ${u}`)}}o(ae,"renderD3Relation");function re(e,n,t,i){return a=>{const r=e.append("g").attr("class","em-swimlane"),d=i.emSwimlaneBackgroundOdd??"rgb(250,250,250)",l=i.emSwimlaneBackgroundStroke??"rgb(240,240,240)";r.append("rect").attr("x",0).attr("y",a.y).attr("rx","3").attr("width",n+t.swimlanePadding).attr("height",a.height).attr("fill",d).attr("stroke",l),r.append("text").attr("font-weight",t.swimlaneTextFontWeight).attr("x",30).attr("y",a.y+30).text(a.label)}}o(re,"renderD3Swimlane");var $e=o(function(e,n,t,i){if(g.debug("in eventmodeling renderer",e+`
3
+ `,"id:",n,t),!Re)throw new Error("EventModeling config not found");const a=i.db,{themeVariables:r,eventmodeling:d}=T(),l=xe(`[id="${n}"]`),c=a.getDiagramProps(),m=a.getState(),x=`em-arrowhead-${n}`,u=r.emArrowhead??"#000000";m.sortedSwimlanesArray.forEach(re(l,m.maxR,c,r)),m.boxes.forEach(ne(l,c)),m.relations.forEach(ae(l,c,x,r)),l.append("defs").append("marker").attr("id",x).attr("markerWidth","10").attr("markerHeight","7").attr("refX","10").attr("refY","3.5").attr("orient","auto").append("polygon").attr("points","0 0, 10 3.5, 0 7").attr("fill",u),fe(void 0,l,(d==null?void 0:d.padding)??30,d==null?void 0:d.useMaxWidth)},"draw"),Te={draw:$e},De=o(e=>"","getStyles"),Ne=De,He={parser:Ae,db:F,renderer:Te,styles:Ne};export{He as diagram};
4
+ //# sourceMappingURL=diagram-VSXAHHWV-DkEB6nEx.js.map