@aiquants/markdown 1.18.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abnfDiagram-VRR7QNED-BBmog1I4.cjs +0 -1
- package/dist/abnfDiagram-VRR7QNED-CxfTrgXf.js +0 -1
- package/dist/arc-ClGqtl_2.js +0 -1
- package/dist/arc-DKsAswGe.cjs +0 -1
- package/dist/architectureDiagram-ZJ3FMSHR-BLhnaJyB.cjs +0 -1
- package/dist/architectureDiagram-ZJ3FMSHR-Dild3kjN.js +0 -1
- package/dist/blockDiagram-677ZJIJ3-D72bpMhN.cjs +0 -1
- package/dist/blockDiagram-677ZJIJ3-DD1l8WOn.js +0 -1
- package/dist/c4Diagram-LMCZKHZV-BJkJh-kC.js +0 -1
- package/dist/c4Diagram-LMCZKHZV-D3d1d4zO.cjs +0 -1
- package/dist/channel-DE5LXIMm.cjs +0 -1
- package/dist/channel-DaGDswnD.js +0 -1
- package/dist/chunk-2Q5K7J3B-BrnUlAaZ.cjs +0 -1
- package/dist/chunk-2Q5K7J3B-DejpXtzn.js +0 -1
- package/dist/chunk-32BRIVSS-BCAuSjpE.js +0 -1
- package/dist/chunk-32BRIVSS-CDxbP_I9.cjs +0 -1
- package/dist/chunk-5VM5RSS4-C-cBAbST.cjs +0 -1
- package/dist/chunk-5VM5RSS4-DI1kbCYB.js +0 -1
- package/dist/chunk-EX3LRPZG-CVTsVkLX.js +0 -1
- package/dist/chunk-EX3LRPZG-uKd75-FB.cjs +0 -1
- package/dist/chunk-JWPE2WC7-CNFRDah7.cjs +0 -1
- package/dist/chunk-JWPE2WC7-Cu3ql0Gi.js +0 -1
- package/dist/chunk-MOJQB5TN-BZ0Sok4l.js +0 -1
- package/dist/chunk-MOJQB5TN-Bs5Jj3Zh.cjs +0 -1
- package/dist/chunk-PUDLZKDR-3RVC5ezN.js +0 -1
- package/dist/chunk-PUDLZKDR-DisfuynB.cjs +0 -1
- package/dist/chunk-RYQCIY6F-CSpf1fBI.js +0 -1
- package/dist/chunk-RYQCIY6F-xFTrTO6v.cjs +0 -1
- package/dist/chunk-V7JOEXUC-BnwuCkOT.js +0 -1
- package/dist/chunk-V7JOEXUC-BvkxRSjK.cjs +0 -1
- package/dist/chunk-VR4S4FIN-DAwCjhU3.cjs +0 -1
- package/dist/chunk-VR4S4FIN-DSW2sQDL.js +0 -1
- package/dist/chunk-XXDRQBXY-B7vX1DJv.cjs +0 -1
- package/dist/chunk-XXDRQBXY-DrE4gFtL.js +0 -1
- package/dist/classDiagram-OUVF2IWQ-BxIt89EK.cjs +0 -1
- package/dist/classDiagram-OUVF2IWQ-DlER_wIi.js +0 -1
- package/dist/classDiagram-v2-EOCWNBFH-BxIt89EK.cjs +0 -1
- package/dist/classDiagram-v2-EOCWNBFH-DlER_wIi.js +0 -1
- package/dist/cli.d.ts +0 -1
- package/dist/components/MarkdownRenderer.d.ts +2 -35
- package/dist/components/MarkdownViewer.d.ts +1 -75
- package/dist/components/MermaidDiagram.d.ts +3 -9
- package/dist/components/NodesRenderer.d.ts +11 -12
- package/dist/components/TableOfContents.d.ts +1 -6
- package/dist/components/mdastNodes/BlockLinkNode.d.ts +2 -3
- package/dist/components/mdastNodes/BlockquoteNode.d.ts +1 -2
- package/dist/components/mdastNodes/CodeNode.d.ts +0 -14
- package/dist/components/mdastNodes/DeleteNode.d.ts +1 -2
- package/dist/components/mdastNodes/EmphasisNode.d.ts +1 -2
- package/dist/components/mdastNodes/FootnoteBackLinkNode.d.ts +1 -2
- package/dist/components/mdastNodes/HTMLBlockContainerNode.d.ts +2 -12
- package/dist/components/mdastNodes/HTMLNode.d.ts +1 -24
- package/dist/components/mdastNodes/HeadingNode.d.ts +2 -26
- package/dist/components/mdastNodes/ImageNode.d.ts +2 -3
- package/dist/components/mdastNodes/InlineCodeNode.d.ts +1 -2
- package/dist/components/mdastNodes/InlineMathNode.d.ts +1 -2
- package/dist/components/mdastNodes/LinkNode.d.ts +1 -2
- package/dist/components/mdastNodes/ListItemNode.d.ts +1 -2
- package/dist/components/mdastNodes/ListNode.d.ts +1 -2
- package/dist/components/mdastNodes/MarkNode.d.ts +1 -6
- package/dist/components/mdastNodes/MathNode.d.ts +1 -7
- package/dist/components/mdastNodes/ParagraphNode.d.ts +1 -2
- package/dist/components/mdastNodes/RichLinkCard.d.ts +1 -6
- package/dist/components/mdastNodes/StrongNode.d.ts +1 -2
- package/dist/components/mdastNodes/SubscriptNode.d.ts +1 -6
- package/dist/components/mdastNodes/SuperscriptNode.d.ts +1 -6
- package/dist/components/mdastNodes/TableNode.d.ts +1 -2
- package/dist/components/mdastNodes/TextNode.d.ts +1 -2
- package/dist/components/mdastNodes/ThematicBreakNode.d.ts +0 -1
- package/dist/components/mdastNodes/TwitterEmbedNode.d.ts +2 -12
- package/dist/components/mdastNodes/YouTubeEmbedNode.d.ts +1 -2
- package/dist/components/mdastNodes/ZennDetailsNode.d.ts +2 -3
- package/dist/components/mdastNodes/ZennMessageNode.d.ts +2 -3
- package/dist/components/mermaidInteraction.d.ts +0 -38
- package/dist/components/plugins/DifyIFramePlugin.d.ts +0 -25
- package/dist/components/plugins/IFramePluginRegistry.d.ts +0 -59
- package/dist/components/plugins/index.d.ts +2 -12
- package/dist/cose-bilkent-JH36ORCC-BvnlFiZm.js +0 -1
- package/dist/cose-bilkent-JH36ORCC-BzL-a0Zv.cjs +0 -1
- package/dist/cynefin-VYW2F7L2-Bkk-F_Js.js +0 -1
- package/dist/cynefin-VYW2F7L2-MpAliYy9.cjs +0 -1
- package/dist/cynefinDiagram-TSTJHNR4-B1lNDIu_.cjs +0 -1
- package/dist/cynefinDiagram-TSTJHNR4-CUwuCyMp.js +0 -1
- package/dist/cytoscape.esm-D8x1ApSO.cjs +0 -1
- package/dist/cytoscape.esm-kVAWcYoG.js +0 -1
- package/dist/dagre-VKFMJZFB-COYURQTh.cjs +0 -1
- package/dist/dagre-VKFMJZFB-Ct0vbIs9.js +0 -1
- package/dist/defaultLocale-BgPVtth8.js +0 -1
- package/dist/defaultLocale-C4wbwF1n.cjs +0 -1
- package/dist/diagram-FQU43EPY-B5HmiJPw.js +0 -1
- package/dist/diagram-FQU43EPY-DkgdwwAT.cjs +0 -1
- package/dist/diagram-G47NLZAW-C-nfBNGF.js +0 -1
- package/dist/diagram-G47NLZAW-CcXcBx81.cjs +0 -1
- package/dist/diagram-NH7WQ7WH-BMYzS0pm.cjs +0 -1
- package/dist/diagram-NH7WQ7WH-yu8B8Q4y.js +0 -1
- package/dist/diagram-OA4YK3LP-CROsfore.js +0 -1
- package/dist/diagram-OA4YK3LP-DSeI6RLe.cjs +0 -1
- package/dist/diagram-WEI45ONY-CCJwQ42c.cjs +0 -1
- package/dist/diagram-WEI45ONY-DmPpMglv.js +0 -1
- package/dist/ebnfDiagram-CCIWWBDH-B2ck9j39.js +0 -1
- package/dist/ebnfDiagram-CCIWWBDH-D_nz1FvR.cjs +0 -1
- package/dist/erDiagram-Q63AITRT-2r-lfgSt.cjs +0 -1
- package/dist/erDiagram-Q63AITRT-BfpyxqAV.js +0 -1
- package/dist/extractHeadings-BrLI2qQF.cjs +0 -1
- package/dist/extractHeadings-Dgzd324l.js +0 -1
- package/dist/flowDiagram-23GEKE2U-D3w55eDA.cjs +0 -1
- package/dist/flowDiagram-23GEKE2U-LZTzy0Rx.js +0 -1
- package/dist/ganttDiagram-NO4QXBWP-CNhgpKSH.cjs +0 -1
- package/dist/ganttDiagram-NO4QXBWP-DR3YQ-Kd.js +0 -1
- package/dist/gen/markdown/v1/markdown_connect.d.ts +2 -9
- package/dist/gen/markdown/v1/markdown_pb.d.ts +1 -79
- package/dist/gitGraphDiagram-IHSO6WYX-CzLNLS8W.js +0 -1
- package/dist/gitGraphDiagram-IHSO6WYX-D5IYosEF.cjs +0 -1
- package/dist/graph-BgRih2Qv.cjs +0 -1
- package/dist/graph-DAHC4kPm.js +0 -1
- package/dist/index.cjs +0 -1
- package/dist/index.client.cjs +0 -1
- package/dist/index.client.d.ts +42 -43
- package/dist/index.client.js +0 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.js +0 -1
- package/dist/index.server.cjs +1 -2
- package/dist/index.server.d.ts +3 -11
- package/dist/index.server.js +151 -255
- package/dist/infoDiagram-FWYZ7A6U-CBcx5GhE.js +0 -1
- package/dist/infoDiagram-FWYZ7A6U-U2OiliOP.cjs +0 -1
- package/dist/init-CHZsXQcr.cjs +0 -1
- package/dist/init-DjUOC4st.js +0 -1
- package/dist/ishikawaDiagram-FXEZZL3T-CWXT_3xh.js +0 -1
- package/dist/ishikawaDiagram-FXEZZL3T-DK3M6wrz.cjs +0 -1
- package/dist/journeyDiagram-5HDEW3XC-B-BfhPr4.cjs +0 -1
- package/dist/journeyDiagram-5HDEW3XC-DRbAj2Yz.js +0 -1
- package/dist/kanban-definition-HUTT4EX6-BvnLv2HN.cjs +0 -1
- package/dist/kanban-definition-HUTT4EX6-DtRSv2_P.js +0 -1
- package/dist/layout-DBbo_M5I.js +0 -1
- package/dist/layout-OMlh6_XH.cjs +0 -1
- package/dist/linear-B9JMAP1U.cjs +0 -1
- package/dist/linear-HTaGrbQh.js +0 -1
- package/dist/map-BvScllSQ.cjs +0 -1
- package/dist/map-DRdzG8Ho.js +0 -1
- package/dist/mindmap-definition-LN4V7U3C-4cN-VjxO.js +0 -1
- package/dist/mindmap-definition-LN4V7U3C-asDDR5DU.cjs +0 -1
- package/dist/ordinal-B6-f3MAq.js +0 -1
- package/dist/ordinal-CagbB1m8.cjs +0 -1
- package/dist/pegDiagram-2B236MQR-C3qJlDiV.cjs +0 -1
- package/dist/pegDiagram-2B236MQR-cMLC3Ggy.js +0 -1
- package/dist/pieDiagram-ENE6RG2P-D5-meW-_.cjs +0 -1
- package/dist/pieDiagram-ENE6RG2P-nk_3VO3x.js +0 -1
- package/dist/plugins/createIntentTweetLink.d.ts +0 -1
- package/dist/plugins/extractYouTubeVideoId.d.ts +0 -1
- package/dist/plugins/fetchSiteMetadata.d.ts +0 -19
- package/dist/plugins/remark-auto-heading-id.d.ts +1 -9
- package/dist/plugins/remark-block-link-metadata.d.ts +6 -23
- package/dist/plugins/remark-block-link.d.ts +4 -4
- package/dist/plugins/remark-custom-heading-id.d.ts +1 -16
- package/dist/plugins/remark-footnote-back-link.d.ts +4 -4
- package/dist/plugins/remark-html-anchor-to-link.d.ts +1 -7
- package/dist/plugins/remark-html-in-html.d.ts +1 -9
- package/dist/plugins/remark-image-size.d.ts +1 -9
- package/dist/plugins/remark-mark.d.ts +4 -12
- package/dist/plugins/remark-parent-node.d.ts +1 -6
- package/dist/plugins/remark-subscript.d.ts +4 -12
- package/dist/plugins/remark-superscript.d.ts +4 -12
- package/dist/plugins/remark-table-merge.d.ts +4 -8
- package/dist/plugins/remark-twitter-embed.d.ts +4 -5
- package/dist/plugins/remark-unwrap-block-html.d.ts +4 -8
- package/dist/plugins/remark-youtube-embed.d.ts +4 -4
- package/dist/plugins/remark-zenn-message.d.ts +4 -19
- package/dist/quadrantDiagram-ABIIQ3AL-CmqrHJ4C.cjs +0 -1
- package/dist/quadrantDiagram-ABIIQ3AL-Ctdfu4Qk.js +0 -1
- package/dist/railroadDiagram-RFXS5EU6-2rLqmvj_.js +0 -1
- package/dist/railroadDiagram-RFXS5EU6-a-pSoUg2.cjs +0 -1
- package/dist/remarkProcessor.server.d.ts +0 -40
- package/dist/requirementDiagram-TGXJPOKE-BaKLflmx.cjs +0 -1
- package/dist/requirementDiagram-TGXJPOKE-BlCu380H.js +0 -1
- package/dist/sankeyDiagram-HTMAVEWB-6lNyI55x.js +0 -1
- package/dist/sankeyDiagram-HTMAVEWB-DuUzdIP0.cjs +0 -1
- package/dist/sequenceDiagram-DBY2YBRQ-B29fl34a.cjs +0 -1
- package/dist/sequenceDiagram-DBY2YBRQ-sgwpzZWi.js +0 -1
- package/dist/simple-logger-DIfMY3fH.js +0 -1
- package/dist/simple-logger-DZxBpX7v.cjs +0 -1
- package/dist/sizeCapture-X5ZJPWSS-DAiqtb_j.cjs +0 -1
- package/dist/sizeCapture-X5ZJPWSS-DMDy-RCU.js +0 -1
- package/dist/stateDiagram-2N3HPSRC-BXIH2aOp.cjs +0 -1
- package/dist/stateDiagram-2N3HPSRC-DAN7ei1t.js +0 -1
- package/dist/stateDiagram-v2-6OUMAXLB--pCo5CzX.js +0 -1
- package/dist/stateDiagram-v2-6OUMAXLB-8XTokhrn.cjs +0 -1
- package/dist/swimlanes-5IMT3BWC-B-sXtUgS.js +0 -1
- package/dist/swimlanes-5IMT3BWC-BnT290KL.cjs +0 -1
- package/dist/swimlanesDiagram-G3AALYLV-CAEjADeH.cjs +0 -1
- package/dist/swimlanesDiagram-G3AALYLV-CkxURj6O.js +0 -1
- package/dist/test-setup.d.ts +0 -1
- package/dist/timeline-definition-FHXFAJF6-D47CoBOm.js +0 -1
- package/dist/timeline-definition-FHXFAJF6-Dqdftl5b.cjs +0 -1
- package/dist/utils/extractHeadings.d.ts +1 -9
- package/dist/utils/getFaviconUrl.d.ts +0 -5
- package/dist/utils/headingText.d.ts +1 -6
- package/dist/utils/simple-logger.d.ts +0 -63
- package/dist/vennDiagram-L72KCM5P-BxjgXNwH.cjs +0 -1
- package/dist/vennDiagram-L72KCM5P-DzcOxkzh.js +0 -1
- package/dist/wardleyDiagram-EHGQE667-CurWRCjn.cjs +0 -1
- package/dist/wardleyDiagram-EHGQE667-tZJBiyrP.js +0 -1
- package/dist/xychartDiagram-FW5EYKEG-D0ltrZo8.cjs +0 -1
- package/dist/xychartDiagram-FW5EYKEG-DRQ_o9WV.js +0 -1
- package/package.json +10 -12
- package/dist/abnfDiagram-VRR7QNED-BBmog1I4.cjs.map +0 -1
- package/dist/abnfDiagram-VRR7QNED-CxfTrgXf.js.map +0 -1
- package/dist/arc-ClGqtl_2.js.map +0 -1
- package/dist/arc-DKsAswGe.cjs.map +0 -1
- package/dist/architectureDiagram-ZJ3FMSHR-BLhnaJyB.cjs.map +0 -1
- package/dist/architectureDiagram-ZJ3FMSHR-Dild3kjN.js.map +0 -1
- package/dist/blockDiagram-677ZJIJ3-D72bpMhN.cjs.map +0 -1
- package/dist/blockDiagram-677ZJIJ3-DD1l8WOn.js.map +0 -1
- package/dist/c4Diagram-LMCZKHZV-BJkJh-kC.js.map +0 -1
- package/dist/c4Diagram-LMCZKHZV-D3d1d4zO.cjs.map +0 -1
- package/dist/channel-DE5LXIMm.cjs.map +0 -1
- package/dist/channel-DaGDswnD.js.map +0 -1
- package/dist/chunk-2Q5K7J3B-BrnUlAaZ.cjs.map +0 -1
- package/dist/chunk-2Q5K7J3B-DejpXtzn.js.map +0 -1
- package/dist/chunk-32BRIVSS-BCAuSjpE.js.map +0 -1
- package/dist/chunk-32BRIVSS-CDxbP_I9.cjs.map +0 -1
- package/dist/chunk-5VM5RSS4-C-cBAbST.cjs.map +0 -1
- package/dist/chunk-5VM5RSS4-DI1kbCYB.js.map +0 -1
- package/dist/chunk-EX3LRPZG-CVTsVkLX.js.map +0 -1
- package/dist/chunk-EX3LRPZG-uKd75-FB.cjs.map +0 -1
- package/dist/chunk-JWPE2WC7-CNFRDah7.cjs.map +0 -1
- package/dist/chunk-JWPE2WC7-Cu3ql0Gi.js.map +0 -1
- package/dist/chunk-MOJQB5TN-BZ0Sok4l.js.map +0 -1
- package/dist/chunk-MOJQB5TN-Bs5Jj3Zh.cjs.map +0 -1
- package/dist/chunk-PUDLZKDR-3RVC5ezN.js.map +0 -1
- package/dist/chunk-PUDLZKDR-DisfuynB.cjs.map +0 -1
- package/dist/chunk-RYQCIY6F-CSpf1fBI.js.map +0 -1
- package/dist/chunk-RYQCIY6F-xFTrTO6v.cjs.map +0 -1
- package/dist/chunk-V7JOEXUC-BnwuCkOT.js.map +0 -1
- package/dist/chunk-V7JOEXUC-BvkxRSjK.cjs.map +0 -1
- package/dist/chunk-VR4S4FIN-DAwCjhU3.cjs.map +0 -1
- package/dist/chunk-VR4S4FIN-DSW2sQDL.js.map +0 -1
- package/dist/chunk-XXDRQBXY-B7vX1DJv.cjs.map +0 -1
- package/dist/chunk-XXDRQBXY-DrE4gFtL.js.map +0 -1
- package/dist/classDiagram-OUVF2IWQ-BxIt89EK.cjs.map +0 -1
- package/dist/classDiagram-OUVF2IWQ-DlER_wIi.js.map +0 -1
- package/dist/classDiagram-v2-EOCWNBFH-BxIt89EK.cjs.map +0 -1
- package/dist/classDiagram-v2-EOCWNBFH-DlER_wIi.js.map +0 -1
- package/dist/cli.d.ts.map +0 -1
- package/dist/components/MarkdownRenderer.d.ts.map +0 -1
- package/dist/components/MarkdownViewer.d.ts.map +0 -1
- package/dist/components/MermaidDiagram.d.ts.map +0 -1
- package/dist/components/NodesRenderer.d.ts.map +0 -1
- package/dist/components/TableOfContents.d.ts.map +0 -1
- package/dist/components/mdastNodes/BlockLinkNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/BlockquoteNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/CodeNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/DeleteNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/EmphasisNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/FootnoteBackLinkNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/HTMLBlockContainerNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/HTMLNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/HeadingNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/ImageNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/InlineCodeNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/InlineMathNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/LinkNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/ListItemNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/ListNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/MarkNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/MathNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/ParagraphNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/RichLinkCard.d.ts.map +0 -1
- package/dist/components/mdastNodes/StrongNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/SubscriptNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/SuperscriptNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/TableNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/TextNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/ThematicBreakNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/TwitterEmbedNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/YouTubeEmbedNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/ZennDetailsNode.d.ts.map +0 -1
- package/dist/components/mdastNodes/ZennMessageNode.d.ts.map +0 -1
- package/dist/components/mermaidInteraction.d.ts.map +0 -1
- package/dist/components/plugins/DifyIFramePlugin.d.ts.map +0 -1
- package/dist/components/plugins/IFramePluginRegistry.d.ts.map +0 -1
- package/dist/components/plugins/index.d.ts.map +0 -1
- package/dist/cose-bilkent-JH36ORCC-BvnlFiZm.js.map +0 -1
- package/dist/cose-bilkent-JH36ORCC-BzL-a0Zv.cjs.map +0 -1
- package/dist/cynefin-VYW2F7L2-Bkk-F_Js.js.map +0 -1
- package/dist/cynefin-VYW2F7L2-MpAliYy9.cjs.map +0 -1
- package/dist/cynefinDiagram-TSTJHNR4-B1lNDIu_.cjs.map +0 -1
- package/dist/cynefinDiagram-TSTJHNR4-CUwuCyMp.js.map +0 -1
- package/dist/cytoscape.esm-D8x1ApSO.cjs.map +0 -1
- package/dist/cytoscape.esm-kVAWcYoG.js.map +0 -1
- package/dist/dagre-VKFMJZFB-COYURQTh.cjs.map +0 -1
- package/dist/dagre-VKFMJZFB-Ct0vbIs9.js.map +0 -1
- package/dist/defaultLocale-BgPVtth8.js.map +0 -1
- package/dist/defaultLocale-C4wbwF1n.cjs.map +0 -1
- package/dist/diagram-FQU43EPY-B5HmiJPw.js.map +0 -1
- package/dist/diagram-FQU43EPY-DkgdwwAT.cjs.map +0 -1
- package/dist/diagram-G47NLZAW-C-nfBNGF.js.map +0 -1
- package/dist/diagram-G47NLZAW-CcXcBx81.cjs.map +0 -1
- package/dist/diagram-NH7WQ7WH-BMYzS0pm.cjs.map +0 -1
- package/dist/diagram-NH7WQ7WH-yu8B8Q4y.js.map +0 -1
- package/dist/diagram-OA4YK3LP-CROsfore.js.map +0 -1
- package/dist/diagram-OA4YK3LP-DSeI6RLe.cjs.map +0 -1
- package/dist/diagram-WEI45ONY-CCJwQ42c.cjs.map +0 -1
- package/dist/diagram-WEI45ONY-DmPpMglv.js.map +0 -1
- package/dist/ebnfDiagram-CCIWWBDH-B2ck9j39.js.map +0 -1
- package/dist/ebnfDiagram-CCIWWBDH-D_nz1FvR.cjs.map +0 -1
- package/dist/erDiagram-Q63AITRT-2r-lfgSt.cjs.map +0 -1
- package/dist/erDiagram-Q63AITRT-BfpyxqAV.js.map +0 -1
- package/dist/extractHeadings-BrLI2qQF.cjs.map +0 -1
- package/dist/extractHeadings-Dgzd324l.js.map +0 -1
- package/dist/flowDiagram-23GEKE2U-D3w55eDA.cjs.map +0 -1
- package/dist/flowDiagram-23GEKE2U-LZTzy0Rx.js.map +0 -1
- package/dist/ganttDiagram-NO4QXBWP-CNhgpKSH.cjs.map +0 -1
- package/dist/ganttDiagram-NO4QXBWP-DR3YQ-Kd.js.map +0 -1
- package/dist/gen/markdown/v1/markdown_connect.d.ts.map +0 -1
- package/dist/gen/markdown/v1/markdown_pb.d.ts.map +0 -1
- package/dist/gitGraphDiagram-IHSO6WYX-CzLNLS8W.js.map +0 -1
- package/dist/gitGraphDiagram-IHSO6WYX-D5IYosEF.cjs.map +0 -1
- package/dist/graph-BgRih2Qv.cjs.map +0 -1
- package/dist/graph-DAHC4kPm.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.client.cjs.map +0 -1
- package/dist/index.client.d.ts.map +0 -1
- package/dist/index.client.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.server.cjs.map +0 -1
- package/dist/index.server.d.ts.map +0 -1
- package/dist/index.server.js.map +0 -1
- package/dist/infoDiagram-FWYZ7A6U-CBcx5GhE.js.map +0 -1
- package/dist/infoDiagram-FWYZ7A6U-U2OiliOP.cjs.map +0 -1
- package/dist/init-CHZsXQcr.cjs.map +0 -1
- package/dist/init-DjUOC4st.js.map +0 -1
- package/dist/ishikawaDiagram-FXEZZL3T-CWXT_3xh.js.map +0 -1
- package/dist/ishikawaDiagram-FXEZZL3T-DK3M6wrz.cjs.map +0 -1
- package/dist/journeyDiagram-5HDEW3XC-B-BfhPr4.cjs.map +0 -1
- package/dist/journeyDiagram-5HDEW3XC-DRbAj2Yz.js.map +0 -1
- package/dist/kanban-definition-HUTT4EX6-BvnLv2HN.cjs.map +0 -1
- package/dist/kanban-definition-HUTT4EX6-DtRSv2_P.js.map +0 -1
- package/dist/layout-DBbo_M5I.js.map +0 -1
- package/dist/layout-OMlh6_XH.cjs.map +0 -1
- package/dist/linear-B9JMAP1U.cjs.map +0 -1
- package/dist/linear-HTaGrbQh.js.map +0 -1
- package/dist/map-BvScllSQ.cjs.map +0 -1
- package/dist/map-DRdzG8Ho.js.map +0 -1
- package/dist/mindmap-definition-LN4V7U3C-4cN-VjxO.js.map +0 -1
- package/dist/mindmap-definition-LN4V7U3C-asDDR5DU.cjs.map +0 -1
- package/dist/ordinal-B6-f3MAq.js.map +0 -1
- package/dist/ordinal-CagbB1m8.cjs.map +0 -1
- package/dist/pegDiagram-2B236MQR-C3qJlDiV.cjs.map +0 -1
- package/dist/pegDiagram-2B236MQR-cMLC3Ggy.js.map +0 -1
- package/dist/pieDiagram-ENE6RG2P-D5-meW-_.cjs.map +0 -1
- package/dist/pieDiagram-ENE6RG2P-nk_3VO3x.js.map +0 -1
- package/dist/plugins/createIntentTweetLink.d.ts.map +0 -1
- package/dist/plugins/extractYouTubeVideoId.d.ts.map +0 -1
- package/dist/plugins/fetchSiteMetadata.d.ts.map +0 -1
- package/dist/plugins/remark-auto-heading-id.d.ts.map +0 -1
- package/dist/plugins/remark-block-link-metadata.d.ts.map +0 -1
- package/dist/plugins/remark-block-link.d.ts.map +0 -1
- package/dist/plugins/remark-custom-heading-id.d.ts.map +0 -1
- package/dist/plugins/remark-footnote-back-link.d.ts.map +0 -1
- package/dist/plugins/remark-html-anchor-to-link.d.ts.map +0 -1
- package/dist/plugins/remark-html-in-html.d.ts.map +0 -1
- package/dist/plugins/remark-image-size.d.ts.map +0 -1
- package/dist/plugins/remark-import-directive.async.server.d.ts +0 -16
- package/dist/plugins/remark-import-directive.async.server.d.ts.map +0 -1
- package/dist/plugins/remark-mark.d.ts.map +0 -1
- package/dist/plugins/remark-parent-node.d.ts.map +0 -1
- package/dist/plugins/remark-resolve-uri.async.d.ts +0 -13
- package/dist/plugins/remark-resolve-uri.async.d.ts.map +0 -1
- package/dist/plugins/remark-subscript.d.ts.map +0 -1
- package/dist/plugins/remark-superscript.d.ts.map +0 -1
- package/dist/plugins/remark-table-merge.d.ts.map +0 -1
- package/dist/plugins/remark-twitter-embed.d.ts.map +0 -1
- package/dist/plugins/remark-unwrap-block-html.d.ts.map +0 -1
- package/dist/plugins/remark-youtube-embed.d.ts.map +0 -1
- package/dist/plugins/remark-zenn-message.d.ts.map +0 -1
- package/dist/plugins/transformUri.async.server.d.ts +0 -13
- package/dist/plugins/transformUri.async.server.d.ts.map +0 -1
- package/dist/quadrantDiagram-ABIIQ3AL-CmqrHJ4C.cjs.map +0 -1
- package/dist/quadrantDiagram-ABIIQ3AL-Ctdfu4Qk.js.map +0 -1
- package/dist/railroadDiagram-RFXS5EU6-2rLqmvj_.js.map +0 -1
- package/dist/railroadDiagram-RFXS5EU6-a-pSoUg2.cjs.map +0 -1
- package/dist/remarkProcessor.server.d.ts.map +0 -1
- package/dist/requirementDiagram-TGXJPOKE-BaKLflmx.cjs.map +0 -1
- package/dist/requirementDiagram-TGXJPOKE-BlCu380H.js.map +0 -1
- package/dist/sankeyDiagram-HTMAVEWB-6lNyI55x.js.map +0 -1
- package/dist/sankeyDiagram-HTMAVEWB-DuUzdIP0.cjs.map +0 -1
- package/dist/sequenceDiagram-DBY2YBRQ-B29fl34a.cjs.map +0 -1
- package/dist/sequenceDiagram-DBY2YBRQ-sgwpzZWi.js.map +0 -1
- package/dist/simple-logger-DIfMY3fH.js.map +0 -1
- package/dist/simple-logger-DZxBpX7v.cjs.map +0 -1
- package/dist/sizeCapture-X5ZJPWSS-DAiqtb_j.cjs.map +0 -1
- package/dist/sizeCapture-X5ZJPWSS-DMDy-RCU.js.map +0 -1
- package/dist/stateDiagram-2N3HPSRC-BXIH2aOp.cjs.map +0 -1
- package/dist/stateDiagram-2N3HPSRC-DAN7ei1t.js.map +0 -1
- package/dist/stateDiagram-v2-6OUMAXLB--pCo5CzX.js.map +0 -1
- package/dist/stateDiagram-v2-6OUMAXLB-8XTokhrn.cjs.map +0 -1
- package/dist/swimlanes-5IMT3BWC-B-sXtUgS.js.map +0 -1
- package/dist/swimlanes-5IMT3BWC-BnT290KL.cjs.map +0 -1
- package/dist/swimlanesDiagram-G3AALYLV-CAEjADeH.cjs.map +0 -1
- package/dist/swimlanesDiagram-G3AALYLV-CkxURj6O.js.map +0 -1
- package/dist/test-setup.d.ts.map +0 -1
- package/dist/timeline-definition-FHXFAJF6-D47CoBOm.js.map +0 -1
- package/dist/timeline-definition-FHXFAJF6-Dqdftl5b.cjs.map +0 -1
- package/dist/utils/extractHeadings.d.ts.map +0 -1
- package/dist/utils/getFaviconUrl.d.ts.map +0 -1
- package/dist/utils/headingText.d.ts.map +0 -1
- package/dist/utils/simple-logger.d.ts.map +0 -1
- package/dist/vennDiagram-L72KCM5P-BxjgXNwH.cjs.map +0 -1
- package/dist/vennDiagram-L72KCM5P-DzcOxkzh.js.map +0 -1
- package/dist/wardleyDiagram-EHGQE667-CurWRCjn.cjs.map +0 -1
- package/dist/wardleyDiagram-EHGQE667-tZJBiyrP.js.map +0 -1
- package/dist/xychartDiagram-FW5EYKEG-D0ltrZo8.cjs.map +0 -1
- package/dist/xychartDiagram-FW5EYKEG-DRQ_o9WV.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-G47NLZAW-C-nfBNGF.js","sources":["../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/count.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/each.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/find.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/sum.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/sort.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/path.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/descendants.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/leaves.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/links.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/iterator.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/index.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/accessors.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/constant.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/round.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/dice.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/slice.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/squarify.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/index.js","../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/diagram-G47NLZAW.mjs"],"sourcesContent":["function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","import {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-VAUOI2AC.mjs\";\nimport {\n setupViewPortForSVG\n} from \"./chunk-VR4S4FIN.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-C7G6YPKG.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-ICXQ74PX.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-WYO6CB5R.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/treemap/db.ts\nvar TreeMapDB = class {\n constructor() {\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"TreeMapDB\");\n }\n getNodes() {\n return this.nodes;\n }\n getConfig() {\n const defaultConfig = defaultConfig_default;\n const userConfig = getConfig();\n return cleanAndMerge({\n ...defaultConfig.treemap,\n ...userConfig.treemap ?? {}\n });\n }\n addNode(node, level) {\n this.nodes.push(node);\n this.levels.set(node, level);\n if (level === 0) {\n this.outerNodes.push(node);\n this.root ??= node;\n }\n }\n getRoot() {\n return { name: \"\", children: this.outerNodes };\n }\n addClass(id, _style) {\n const styleClass = this.classes.get(id) ?? { id, styles: [], textStyles: [] };\n const styles = _style.replace(/\\\\,/g, \"\\xA7\\xA7\\xA7\").replace(/,/g, \";\").replace(/§§§/g, \",\").split(\";\");\n if (styles) {\n styles.forEach((s) => {\n if (isLabelStyle(s)) {\n if (styleClass?.textStyles) {\n styleClass.textStyles.push(s);\n } else {\n styleClass.textStyles = [s];\n }\n }\n if (styleClass?.styles) {\n styleClass.styles.push(s);\n } else {\n styleClass.styles = [s];\n }\n });\n }\n this.classes.set(id, styleClass);\n }\n getClasses() {\n return this.classes;\n }\n getStylesForClass(classSelector) {\n return this.classes.get(classSelector)?.styles ?? [];\n }\n clear() {\n clear();\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.root = void 0;\n }\n};\n\n// src/diagrams/treemap/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/treemap/utils.ts\nfunction buildHierarchy(items) {\n if (!items.length) {\n return [];\n }\n const root = [];\n const stack = [];\n items.forEach((item) => {\n const node = {\n name: item.name,\n children: item.type === \"Leaf\" ? void 0 : []\n };\n node.classSelector = item?.classSelector;\n if (item?.cssCompiledStyles) {\n node.cssCompiledStyles = item.cssCompiledStyles;\n }\n if (item.type === \"Leaf\" && item.value !== void 0) {\n node.value = item.value;\n }\n while (stack.length > 0 && stack[stack.length - 1].level >= item.level) {\n stack.pop();\n }\n if (stack.length === 0) {\n root.push(node);\n } else {\n const parent = stack[stack.length - 1].node;\n if (parent.children) {\n parent.children.push(node);\n } else {\n parent.children = [node];\n }\n }\n if (item.type !== \"Leaf\") {\n stack.push({ node, level: item.level });\n }\n });\n return root;\n}\n__name(buildHierarchy, \"buildHierarchy\");\n\n// src/diagrams/treemap/parser.ts\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n const items = [];\n for (const row of ast.TreemapRows ?? []) {\n if (row.$type === \"ClassDefStatement\") {\n db.addClass(row.className ?? \"\", row.styleText ?? \"\");\n }\n }\n for (const row of ast.TreemapRows ?? []) {\n const item = row.item;\n if (!item) {\n continue;\n }\n const level = row.indent ? parseInt(row.indent) : 0;\n const name = getItemName(item);\n const styles = item.classSelector ? db.getStylesForClass(item.classSelector) : [];\n const cssCompiledStyles = styles.length > 0 ? styles : void 0;\n const itemData = {\n level,\n name,\n type: item.$type,\n value: item.value,\n classSelector: item.classSelector,\n cssCompiledStyles\n };\n items.push(itemData);\n }\n const hierarchyNodes = buildHierarchy(items);\n const addNodesRecursively = /* @__PURE__ */ __name((nodes, level) => {\n for (const node of nodes) {\n db.addNode(node, level);\n if (node.children && node.children.length > 0) {\n addNodesRecursively(node.children, level + 1);\n }\n }\n }, \"addNodesRecursively\");\n addNodesRecursively(hierarchyNodes, 0);\n}, \"populate\");\nvar getItemName = /* @__PURE__ */ __name((item) => {\n return item.name ? String(item.name) : \"\";\n}, \"getItemName\");\nvar parser = {\n // @ts-expect-error - TreeMapDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (text) => {\n try {\n const parseFunc = parse;\n const ast = await parseFunc(\"treemap\", text);\n log.debug(\"Treemap AST:\", ast);\n const db = parser.parser?.yy;\n if (!(db instanceof TreeMapDB)) {\n throw new Error(\n \"parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n populate(ast, db);\n } catch (error) {\n log.error(\"Error parsing treemap:\", error);\n throw error;\n }\n }, \"parse\")\n};\n\n// src/diagrams/treemap/renderer.ts\nimport { scaleOrdinal, treemap, hierarchy, format, select } from \"d3\";\nvar DEFAULT_INNER_PADDING = 10;\nvar SECTION_INNER_PADDING = 10;\nvar SECTION_HEADER_HEIGHT = 25;\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const treemapDb = diagram2.db;\n const config = treemapDb.getConfig();\n const treemapInnerPadding = config.padding ?? DEFAULT_INNER_PADDING;\n const title = treemapDb.getDiagramTitle();\n const root = treemapDb.getRoot();\n const { themeVariables } = getConfig();\n if (!root) {\n return;\n }\n const titleHeight = title ? 30 : 0;\n const svg = selectSvgElement(id);\n const width = config.nodeWidth ? config.nodeWidth * SECTION_INNER_PADDING : 960;\n const height = config.nodeHeight ? config.nodeHeight * SECTION_INNER_PADDING : 500;\n const svgWidth = width;\n const svgHeight = height + titleHeight;\n svg.attr(\"viewBox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n let valueFormat;\n try {\n const formatStr = config.valueFormat || \",\";\n if (formatStr === \"$0,0\") {\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\")(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\") && formatStr.includes(\",\")) {\n const precision = /\\.\\d+/.exec(formatStr);\n const precisionStr = precision ? precision[0] : \"\";\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\" + precisionStr)(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\")) {\n const restOfFormat = formatStr.substring(1);\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(restOfFormat || \"\")(value), \"valueFormat\");\n } else {\n valueFormat = format(formatStr);\n }\n } catch (error) {\n log.error(\"Error creating format function:\", error);\n valueFormat = format(\",\");\n }\n const colorScale = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScale0,\n themeVariables.cScale1,\n themeVariables.cScale2,\n themeVariables.cScale3,\n themeVariables.cScale4,\n themeVariables.cScale5,\n themeVariables.cScale6,\n themeVariables.cScale7,\n themeVariables.cScale8,\n themeVariables.cScale9,\n themeVariables.cScale10,\n themeVariables.cScale11\n ]);\n const colorScalePeer = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScalePeer0,\n themeVariables.cScalePeer1,\n themeVariables.cScalePeer2,\n themeVariables.cScalePeer3,\n themeVariables.cScalePeer4,\n themeVariables.cScalePeer5,\n themeVariables.cScalePeer6,\n themeVariables.cScalePeer7,\n themeVariables.cScalePeer8,\n themeVariables.cScalePeer9,\n themeVariables.cScalePeer10,\n themeVariables.cScalePeer11\n ]);\n const colorScaleLabel = scaleOrdinal().range([\n themeVariables.cScaleLabel0,\n themeVariables.cScaleLabel1,\n themeVariables.cScaleLabel2,\n themeVariables.cScaleLabel3,\n themeVariables.cScaleLabel4,\n themeVariables.cScaleLabel5,\n themeVariables.cScaleLabel6,\n themeVariables.cScaleLabel7,\n themeVariables.cScaleLabel8,\n themeVariables.cScaleLabel9,\n themeVariables.cScaleLabel10,\n themeVariables.cScaleLabel11\n ]);\n if (title) {\n svg.append(\"text\").attr(\"x\", svgWidth / 2).attr(\"y\", titleHeight / 2).attr(\"class\", \"treemapTitle\").attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").text(title);\n }\n const g = svg.append(\"g\").attr(\"transform\", `translate(0, ${titleHeight})`).attr(\"class\", \"treemapContainer\");\n const hierarchyRoot = hierarchy(root).sum((d) => d.value ?? 0).sort((a, b) => (b.value ?? 0) - (a.value ?? 0));\n const treemapLayout = treemap().size([width, height]).paddingTop(\n (d) => d.children && d.children.length > 0 ? SECTION_HEADER_HEIGHT + SECTION_INNER_PADDING : 0\n ).paddingInner(treemapInnerPadding).paddingLeft((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingRight((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingBottom((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).round(true);\n const treemapData = treemapLayout(hierarchyRoot);\n const branchNodes = treemapData.descendants().filter((d) => d.children && d.children.length > 0);\n const sections = g.selectAll(\".treemapSection\").data(branchNodes).enter().append(\"g\").attr(\"class\", \"treemapSection\").attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", SECTION_HEADER_HEIGHT).attr(\"class\", \"treemapSectionHeader\").attr(\"fill\", \"none\").attr(\"fill-opacity\", 0.6).attr(\"stroke-width\", 0.6).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n return \"\";\n });\n sections.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-section-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 12)).attr(\"height\", SECTION_HEADER_HEIGHT);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", (_d, i) => {\n return `treemapSection section${i}`;\n }).attr(\"fill\", (d) => colorScale(d.data.name)).attr(\"fill-opacity\", 0.6).attr(\"stroke\", (d) => colorScalePeer(d.data.name)).attr(\"stroke-width\", 2).attr(\"stroke-opacity\", 0.4).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles + \";\" + styles.borderStyles.join(\";\");\n });\n sections.append(\"text\").attr(\"class\", \"treemapSectionLabel\").attr(\"x\", 6).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"dominant-baseline\", \"middle\").text((d) => d.depth === 0 ? \"\" : d.data.name).attr(\"font-weight\", \"bold\").attr(\"clip-path\", (_d, i) => `url(#clip-section-${id}-${i})`).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"dominant-baseline: middle; font-size: 12px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).each(function(d) {\n if (d.depth === 0) {\n return;\n }\n const self = select(this);\n const originalText = d.data.name;\n self.text(originalText);\n const totalHeaderWidth = d.x1 - d.x0;\n const labelXPosition = 6;\n let spaceForTextContent;\n if (config.showValues !== false && d.value) {\n const valueEndsAtXRelative = totalHeaderWidth - 10;\n const estimatedValueTextActualWidth = 30;\n const gapBetweenLabelAndValue = 10;\n const labelMustEndBeforeX = valueEndsAtXRelative - estimatedValueTextActualWidth - gapBetweenLabelAndValue;\n spaceForTextContent = labelMustEndBeforeX - labelXPosition;\n } else {\n const labelOwnRightPadding = 6;\n spaceForTextContent = totalHeaderWidth - labelXPosition - labelOwnRightPadding;\n }\n const minimumWidthToDisplay = 15;\n const actualAvailableWidth = Math.max(minimumWidthToDisplay, spaceForTextContent);\n const textNode = self.node();\n const currentTextContentLength = textNode.getComputedTextLength();\n if (currentTextContentLength > actualAvailableWidth) {\n const ellipsis = \"...\";\n let currentTruncatedText = originalText;\n while (currentTruncatedText.length > 0) {\n currentTruncatedText = originalText.substring(0, currentTruncatedText.length - 1);\n if (currentTruncatedText.length === 0) {\n self.text(ellipsis);\n if (textNode.getComputedTextLength() > actualAvailableWidth) {\n self.text(\"\");\n }\n break;\n }\n self.text(currentTruncatedText + ellipsis);\n if (textNode.getComputedTextLength() <= actualAvailableWidth) {\n break;\n }\n }\n }\n });\n if (config.showValues !== false) {\n sections.append(\"text\").attr(\"class\", \"treemapSectionValue\").attr(\"x\", (d) => d.x1 - d.x0 - 10).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"text-anchor\", \"end\").attr(\"dominant-baseline\", \"middle\").text((d) => d.value ? valueFormat(d.value) : \"\").attr(\"font-style\", \"italic\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n });\n }\n const leafNodes = treemapData.leaves();\n const isComplexTreemap = leafNodes.length > 20;\n const baseLabelFontSize = isComplexTreemap ? 16 : 38;\n const baseValueFontSize = isComplexTreemap ? 14 : 28;\n const minLabelFontSize = isComplexTreemap ? 4 : 8;\n const minValueFontSize = isComplexTreemap ? 4 : 6;\n const labelPadding = isComplexTreemap ? 2 : 4;\n const minDisplayThreshold = isComplexTreemap ? 8 : 10;\n const spacingBetweenLabelAndValue = isComplexTreemap ? 1 : 2;\n const cell = g.selectAll(\".treemapLeafGroup\").data(leafNodes).enter().append(\"g\").attr(\"class\", (d, i) => {\n return `treemapNode treemapLeafGroup leaf${i}${d.data.classSelector ? ` ${d.data.classSelector}` : \"\"}x`;\n }).attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n cell.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", \"treemapLeaf\").attr(\"fill\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"style\", (d) => {\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles;\n }).attr(\"fill-opacity\", 0.3).attr(\"stroke\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"stroke-width\", 3);\n cell.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 4)).attr(\"height\", (d) => Math.max(0, d.y1 - d.y0 - 4));\n const leafLabels = cell.append(\"text\").attr(\"class\", \"treemapLabel\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", (d) => (d.y1 - d.y0) / 2).attr(\"style\", (d) => {\n const labelStyles = `text-anchor: middle; dominant-baseline: middle; font-size: ${baseLabelFontSize}px;fill:` + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.data.name);\n leafLabels.each(function(d) {\n const self = select(this);\n const nodeWidth = d.x1 - d.x0;\n const nodeHeight = d.y1 - d.y0;\n const textNode = self.node();\n const availableWidth = nodeWidth - 2 * labelPadding;\n const availableHeight = nodeHeight - 2 * labelPadding;\n if (availableWidth < minDisplayThreshold || availableHeight < minDisplayThreshold) {\n self.style(\"display\", \"none\");\n return;\n }\n let currentLabelFontSize = parseInt(self.style(\"font-size\"), 10);\n const valueScaleFactor = 0.6;\n while (textNode.getComputedTextLength() > availableWidth && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n }\n let prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(baseValueFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n let combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n while (combinedHeight > availableHeight && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(baseValueFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n if (prospectiveValueFontSize < minValueFontSize && currentLabelFontSize === minLabelFontSize) {\n break;\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n if (prospectiveValueFontSize <= minValueFontSize && combinedHeight > availableHeight) {\n }\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n if (isComplexTreemap) {\n if (currentLabelFontSize < minLabelFontSize || availableHeight < minLabelFontSize) {\n self.style(\"display\", \"none\");\n }\n } else {\n if (textNode.getComputedTextLength() > availableWidth || currentLabelFontSize < minLabelFontSize || availableHeight < currentLabelFontSize) {\n self.style(\"display\", \"none\");\n }\n }\n });\n if (config.showValues !== false) {\n const leafValues = cell.append(\"text\").attr(\"class\", \"treemapValue\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", function(d) {\n return (d.y1 - d.y0) / 2;\n }).attr(\"style\", (d) => {\n const labelStyles = `text-anchor: middle; dominant-baseline: hanging; font-size: ${baseValueFontSize}px;fill:` + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.value ? valueFormat(d.value) : \"\");\n leafValues.each(function(d) {\n const valueTextElement = select(this);\n const parentCellNode = this.parentNode;\n if (!parentCellNode) {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const labelElement = select(parentCellNode).select(\".treemapLabel\");\n if (labelElement.empty() || labelElement.style(\"display\") === \"none\") {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const finalLabelFontSize = parseFloat(labelElement.style(\"font-size\"));\n const valueScaleFactor = 0.6;\n const actualValueFontSize = Math.max(\n minValueFontSize,\n Math.min(baseValueFontSize, Math.round(finalLabelFontSize * valueScaleFactor))\n );\n valueTextElement.style(\"font-size\", `${actualValueFontSize}px`);\n const labelCenterY = (d.y1 - d.y0) / 2;\n const valueTopActualY = labelCenterY + finalLabelFontSize / 2 + spacingBetweenLabelAndValue;\n valueTextElement.attr(\"y\", valueTopActualY);\n const nodeWidth = d.x1 - d.x0;\n const nodeTotalHeight = d.y1 - d.y0;\n const cellBottomPadding = 4;\n const maxValueBottomY = nodeTotalHeight - cellBottomPadding;\n const availableWidthForValue = nodeWidth - 2 * labelPadding;\n if (valueTextElement.node().getComputedTextLength() > availableWidthForValue || valueTopActualY + actualValueFontSize > maxValueBottomY || actualValueFontSize < minValueFontSize) {\n valueTextElement.style(\"display\", \"none\");\n } else {\n valueTextElement.style(\"display\", null);\n }\n });\n }\n const diagramPadding = config.diagramPadding ?? 8;\n setupViewPortForSVG(svg, diagramPadding, \"flowchart\", config?.useMaxWidth || false);\n}, \"draw\");\nvar getClasses = /* @__PURE__ */ __name(function(_text, diagramObj) {\n return diagramObj.db.getClasses();\n}, \"getClasses\");\nvar renderer = { draw, getClasses };\n\n// src/diagrams/treemap/styles.ts\nvar defaultTreemapStyleOptions = {\n sectionStrokeColor: \"black\",\n sectionStrokeWidth: \"1\",\n sectionFillColor: \"#efefef\",\n leafStrokeColor: \"black\",\n leafStrokeWidth: \"1\",\n leafFillColor: \"#efefef\",\n labelFontSize: \"12px\",\n valueFontSize: \"10px\",\n titleFontSize: \"14px\"\n};\nvar getStyles = /* @__PURE__ */ __name(({\n treemap: treemap2\n} = {}) => {\n const defaultThemeVariables = getThemeVariables();\n const currentConfig = getConfig();\n const themeVariables = cleanAndMerge(defaultThemeVariables, currentConfig.themeVariables);\n const options = cleanAndMerge(defaultTreemapStyleOptions, treemap2);\n const titleColor = options.titleColor ?? themeVariables.titleColor;\n const labelColor = options.labelColor ?? themeVariables.textColor;\n const valueColor = options.valueColor ?? themeVariables.textColor;\n return `\n .treemapNode.section {\n stroke: ${options.sectionStrokeColor};\n stroke-width: ${options.sectionStrokeWidth};\n fill: ${options.sectionFillColor};\n }\n .treemapNode.leaf {\n stroke: ${options.leafStrokeColor};\n stroke-width: ${options.leafStrokeWidth};\n fill: ${options.leafFillColor};\n }\n .treemapLabel {\n fill: ${labelColor};\n font-size: ${options.labelFontSize};\n }\n .treemapValue {\n fill: ${valueColor};\n font-size: ${options.valueFontSize};\n }\n .treemapTitle {\n fill: ${titleColor};\n font-size: ${options.titleFontSize};\n }\n `;\n}, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/treemap/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new TreeMapDB();\n },\n renderer,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["count","node","sum","children","i","node_count","node_each","callback","that","index","node_eachBefore","nodes","node_eachAfter","next","n","node_find","node_sum","value","node_sort","compare","node_path","end","start","ancestor","leastCommonAncestor","k","a","b","aNodes","bNodes","c","node_ancestors","node_descendants","node_leaves","leaves","node_links","root","links","node_iterator","current","hierarchy","data","mapChildren","objectChildren","Node","child","childs","computeHeight","node_copy","copyData","d","height","required","f","constantZero","constant","x","roundNode","treemapDice","parent","x0","y0","x1","y1","treemapSlice","phi","squarifyRatio","ratio","rows","row","nodeValue","i0","i1","dx","dy","sumValue","minValue","maxValue","newRatio","minRatio","alpha","beta","squarify","custom","treemap","tile","round","paddingStack","paddingInner","paddingTop","paddingRight","paddingBottom","paddingLeft","positionNode","p","TreeMapDB","_a","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","getAccDescription","setAccDescription","defaultConfig","defaultConfig_default","userConfig","getConfig","cleanAndMerge","level","id","_style","styleClass","styles","s","isLabelStyle","classSelector","clear","__name","buildHierarchy","items","stack","item","populate","ast","db","populateCommonDb","name","getItemName","cssCompiledStyles","itemData","hierarchyNodes","addNodesRecursively","parser","text","parse","log","error","DEFAULT_INNER_PADDING","SECTION_INNER_PADDING","SECTION_HEADER_HEIGHT","draw","_text","_version","diagram2","treemapDb","config","treemapInnerPadding","title","themeVariables","titleHeight","svg","selectSvgElement","width","svgWidth","svgHeight","configureSvgSize","valueFormat","formatStr","format","precision","precisionStr","restOfFormat","colorScale","scaleOrdinal","colorScalePeer","colorScaleLabel","g","hierarchyRoot","treemapData","branchNodes","sections","_d","styles2String","labelStyles","self","select","originalText","totalHeaderWidth","labelXPosition","spaceForTextContent","actualAvailableWidth","textNode","currentTruncatedText","leafNodes","isComplexTreemap","baseLabelFontSize","baseValueFontSize","minLabelFontSize","minValueFontSize","labelPadding","minDisplayThreshold","spacingBetweenLabelAndValue","cell","nodeWidth","nodeHeight","availableWidth","availableHeight","currentLabelFontSize","valueScaleFactor","prospectiveValueFontSize","combinedHeight","valueTextElement","parentCellNode","labelElement","finalLabelFontSize","actualValueFontSize","valueTopActualY","maxValueBottomY","availableWidthForValue","diagramPadding","setupViewPortForSVG","getClasses","diagramObj","renderer","defaultTreemapStyleOptions","getStyles","treemap2","defaultThemeVariables","getThemeVariables","currentConfig","options","titleColor","labelColor","valueColor","styles_default","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-G47NLZAW-CcXcBx81.cjs","sources":["../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/count.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/each.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/find.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/sum.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/sort.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/path.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/descendants.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/leaves.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/links.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/iterator.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/index.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/accessors.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/constant.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/round.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/dice.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/slice.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/squarify.js","../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/index.js","../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/diagram-G47NLZAW.mjs"],"sourcesContent":["function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","import {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-VAUOI2AC.mjs\";\nimport {\n setupViewPortForSVG\n} from \"./chunk-VR4S4FIN.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-C7G6YPKG.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-ICXQ74PX.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-WYO6CB5R.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/treemap/db.ts\nvar TreeMapDB = class {\n constructor() {\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"TreeMapDB\");\n }\n getNodes() {\n return this.nodes;\n }\n getConfig() {\n const defaultConfig = defaultConfig_default;\n const userConfig = getConfig();\n return cleanAndMerge({\n ...defaultConfig.treemap,\n ...userConfig.treemap ?? {}\n });\n }\n addNode(node, level) {\n this.nodes.push(node);\n this.levels.set(node, level);\n if (level === 0) {\n this.outerNodes.push(node);\n this.root ??= node;\n }\n }\n getRoot() {\n return { name: \"\", children: this.outerNodes };\n }\n addClass(id, _style) {\n const styleClass = this.classes.get(id) ?? { id, styles: [], textStyles: [] };\n const styles = _style.replace(/\\\\,/g, \"\\xA7\\xA7\\xA7\").replace(/,/g, \";\").replace(/§§§/g, \",\").split(\";\");\n if (styles) {\n styles.forEach((s) => {\n if (isLabelStyle(s)) {\n if (styleClass?.textStyles) {\n styleClass.textStyles.push(s);\n } else {\n styleClass.textStyles = [s];\n }\n }\n if (styleClass?.styles) {\n styleClass.styles.push(s);\n } else {\n styleClass.styles = [s];\n }\n });\n }\n this.classes.set(id, styleClass);\n }\n getClasses() {\n return this.classes;\n }\n getStylesForClass(classSelector) {\n return this.classes.get(classSelector)?.styles ?? [];\n }\n clear() {\n clear();\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.root = void 0;\n }\n};\n\n// src/diagrams/treemap/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/treemap/utils.ts\nfunction buildHierarchy(items) {\n if (!items.length) {\n return [];\n }\n const root = [];\n const stack = [];\n items.forEach((item) => {\n const node = {\n name: item.name,\n children: item.type === \"Leaf\" ? void 0 : []\n };\n node.classSelector = item?.classSelector;\n if (item?.cssCompiledStyles) {\n node.cssCompiledStyles = item.cssCompiledStyles;\n }\n if (item.type === \"Leaf\" && item.value !== void 0) {\n node.value = item.value;\n }\n while (stack.length > 0 && stack[stack.length - 1].level >= item.level) {\n stack.pop();\n }\n if (stack.length === 0) {\n root.push(node);\n } else {\n const parent = stack[stack.length - 1].node;\n if (parent.children) {\n parent.children.push(node);\n } else {\n parent.children = [node];\n }\n }\n if (item.type !== \"Leaf\") {\n stack.push({ node, level: item.level });\n }\n });\n return root;\n}\n__name(buildHierarchy, \"buildHierarchy\");\n\n// src/diagrams/treemap/parser.ts\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n const items = [];\n for (const row of ast.TreemapRows ?? []) {\n if (row.$type === \"ClassDefStatement\") {\n db.addClass(row.className ?? \"\", row.styleText ?? \"\");\n }\n }\n for (const row of ast.TreemapRows ?? []) {\n const item = row.item;\n if (!item) {\n continue;\n }\n const level = row.indent ? parseInt(row.indent) : 0;\n const name = getItemName(item);\n const styles = item.classSelector ? db.getStylesForClass(item.classSelector) : [];\n const cssCompiledStyles = styles.length > 0 ? styles : void 0;\n const itemData = {\n level,\n name,\n type: item.$type,\n value: item.value,\n classSelector: item.classSelector,\n cssCompiledStyles\n };\n items.push(itemData);\n }\n const hierarchyNodes = buildHierarchy(items);\n const addNodesRecursively = /* @__PURE__ */ __name((nodes, level) => {\n for (const node of nodes) {\n db.addNode(node, level);\n if (node.children && node.children.length > 0) {\n addNodesRecursively(node.children, level + 1);\n }\n }\n }, \"addNodesRecursively\");\n addNodesRecursively(hierarchyNodes, 0);\n}, \"populate\");\nvar getItemName = /* @__PURE__ */ __name((item) => {\n return item.name ? String(item.name) : \"\";\n}, \"getItemName\");\nvar parser = {\n // @ts-expect-error - TreeMapDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (text) => {\n try {\n const parseFunc = parse;\n const ast = await parseFunc(\"treemap\", text);\n log.debug(\"Treemap AST:\", ast);\n const db = parser.parser?.yy;\n if (!(db instanceof TreeMapDB)) {\n throw new Error(\n \"parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n populate(ast, db);\n } catch (error) {\n log.error(\"Error parsing treemap:\", error);\n throw error;\n }\n }, \"parse\")\n};\n\n// src/diagrams/treemap/renderer.ts\nimport { scaleOrdinal, treemap, hierarchy, format, select } from \"d3\";\nvar DEFAULT_INNER_PADDING = 10;\nvar SECTION_INNER_PADDING = 10;\nvar SECTION_HEADER_HEIGHT = 25;\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const treemapDb = diagram2.db;\n const config = treemapDb.getConfig();\n const treemapInnerPadding = config.padding ?? DEFAULT_INNER_PADDING;\n const title = treemapDb.getDiagramTitle();\n const root = treemapDb.getRoot();\n const { themeVariables } = getConfig();\n if (!root) {\n return;\n }\n const titleHeight = title ? 30 : 0;\n const svg = selectSvgElement(id);\n const width = config.nodeWidth ? config.nodeWidth * SECTION_INNER_PADDING : 960;\n const height = config.nodeHeight ? config.nodeHeight * SECTION_INNER_PADDING : 500;\n const svgWidth = width;\n const svgHeight = height + titleHeight;\n svg.attr(\"viewBox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n let valueFormat;\n try {\n const formatStr = config.valueFormat || \",\";\n if (formatStr === \"$0,0\") {\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\")(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\") && formatStr.includes(\",\")) {\n const precision = /\\.\\d+/.exec(formatStr);\n const precisionStr = precision ? precision[0] : \"\";\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\" + precisionStr)(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\")) {\n const restOfFormat = formatStr.substring(1);\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(restOfFormat || \"\")(value), \"valueFormat\");\n } else {\n valueFormat = format(formatStr);\n }\n } catch (error) {\n log.error(\"Error creating format function:\", error);\n valueFormat = format(\",\");\n }\n const colorScale = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScale0,\n themeVariables.cScale1,\n themeVariables.cScale2,\n themeVariables.cScale3,\n themeVariables.cScale4,\n themeVariables.cScale5,\n themeVariables.cScale6,\n themeVariables.cScale7,\n themeVariables.cScale8,\n themeVariables.cScale9,\n themeVariables.cScale10,\n themeVariables.cScale11\n ]);\n const colorScalePeer = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScalePeer0,\n themeVariables.cScalePeer1,\n themeVariables.cScalePeer2,\n themeVariables.cScalePeer3,\n themeVariables.cScalePeer4,\n themeVariables.cScalePeer5,\n themeVariables.cScalePeer6,\n themeVariables.cScalePeer7,\n themeVariables.cScalePeer8,\n themeVariables.cScalePeer9,\n themeVariables.cScalePeer10,\n themeVariables.cScalePeer11\n ]);\n const colorScaleLabel = scaleOrdinal().range([\n themeVariables.cScaleLabel0,\n themeVariables.cScaleLabel1,\n themeVariables.cScaleLabel2,\n themeVariables.cScaleLabel3,\n themeVariables.cScaleLabel4,\n themeVariables.cScaleLabel5,\n themeVariables.cScaleLabel6,\n themeVariables.cScaleLabel7,\n themeVariables.cScaleLabel8,\n themeVariables.cScaleLabel9,\n themeVariables.cScaleLabel10,\n themeVariables.cScaleLabel11\n ]);\n if (title) {\n svg.append(\"text\").attr(\"x\", svgWidth / 2).attr(\"y\", titleHeight / 2).attr(\"class\", \"treemapTitle\").attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").text(title);\n }\n const g = svg.append(\"g\").attr(\"transform\", `translate(0, ${titleHeight})`).attr(\"class\", \"treemapContainer\");\n const hierarchyRoot = hierarchy(root).sum((d) => d.value ?? 0).sort((a, b) => (b.value ?? 0) - (a.value ?? 0));\n const treemapLayout = treemap().size([width, height]).paddingTop(\n (d) => d.children && d.children.length > 0 ? SECTION_HEADER_HEIGHT + SECTION_INNER_PADDING : 0\n ).paddingInner(treemapInnerPadding).paddingLeft((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingRight((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingBottom((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).round(true);\n const treemapData = treemapLayout(hierarchyRoot);\n const branchNodes = treemapData.descendants().filter((d) => d.children && d.children.length > 0);\n const sections = g.selectAll(\".treemapSection\").data(branchNodes).enter().append(\"g\").attr(\"class\", \"treemapSection\").attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", SECTION_HEADER_HEIGHT).attr(\"class\", \"treemapSectionHeader\").attr(\"fill\", \"none\").attr(\"fill-opacity\", 0.6).attr(\"stroke-width\", 0.6).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n return \"\";\n });\n sections.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-section-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 12)).attr(\"height\", SECTION_HEADER_HEIGHT);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", (_d, i) => {\n return `treemapSection section${i}`;\n }).attr(\"fill\", (d) => colorScale(d.data.name)).attr(\"fill-opacity\", 0.6).attr(\"stroke\", (d) => colorScalePeer(d.data.name)).attr(\"stroke-width\", 2).attr(\"stroke-opacity\", 0.4).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles + \";\" + styles.borderStyles.join(\";\");\n });\n sections.append(\"text\").attr(\"class\", \"treemapSectionLabel\").attr(\"x\", 6).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"dominant-baseline\", \"middle\").text((d) => d.depth === 0 ? \"\" : d.data.name).attr(\"font-weight\", \"bold\").attr(\"clip-path\", (_d, i) => `url(#clip-section-${id}-${i})`).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"dominant-baseline: middle; font-size: 12px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).each(function(d) {\n if (d.depth === 0) {\n return;\n }\n const self = select(this);\n const originalText = d.data.name;\n self.text(originalText);\n const totalHeaderWidth = d.x1 - d.x0;\n const labelXPosition = 6;\n let spaceForTextContent;\n if (config.showValues !== false && d.value) {\n const valueEndsAtXRelative = totalHeaderWidth - 10;\n const estimatedValueTextActualWidth = 30;\n const gapBetweenLabelAndValue = 10;\n const labelMustEndBeforeX = valueEndsAtXRelative - estimatedValueTextActualWidth - gapBetweenLabelAndValue;\n spaceForTextContent = labelMustEndBeforeX - labelXPosition;\n } else {\n const labelOwnRightPadding = 6;\n spaceForTextContent = totalHeaderWidth - labelXPosition - labelOwnRightPadding;\n }\n const minimumWidthToDisplay = 15;\n const actualAvailableWidth = Math.max(minimumWidthToDisplay, spaceForTextContent);\n const textNode = self.node();\n const currentTextContentLength = textNode.getComputedTextLength();\n if (currentTextContentLength > actualAvailableWidth) {\n const ellipsis = \"...\";\n let currentTruncatedText = originalText;\n while (currentTruncatedText.length > 0) {\n currentTruncatedText = originalText.substring(0, currentTruncatedText.length - 1);\n if (currentTruncatedText.length === 0) {\n self.text(ellipsis);\n if (textNode.getComputedTextLength() > actualAvailableWidth) {\n self.text(\"\");\n }\n break;\n }\n self.text(currentTruncatedText + ellipsis);\n if (textNode.getComputedTextLength() <= actualAvailableWidth) {\n break;\n }\n }\n }\n });\n if (config.showValues !== false) {\n sections.append(\"text\").attr(\"class\", \"treemapSectionValue\").attr(\"x\", (d) => d.x1 - d.x0 - 10).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"text-anchor\", \"end\").attr(\"dominant-baseline\", \"middle\").text((d) => d.value ? valueFormat(d.value) : \"\").attr(\"font-style\", \"italic\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n });\n }\n const leafNodes = treemapData.leaves();\n const isComplexTreemap = leafNodes.length > 20;\n const baseLabelFontSize = isComplexTreemap ? 16 : 38;\n const baseValueFontSize = isComplexTreemap ? 14 : 28;\n const minLabelFontSize = isComplexTreemap ? 4 : 8;\n const minValueFontSize = isComplexTreemap ? 4 : 6;\n const labelPadding = isComplexTreemap ? 2 : 4;\n const minDisplayThreshold = isComplexTreemap ? 8 : 10;\n const spacingBetweenLabelAndValue = isComplexTreemap ? 1 : 2;\n const cell = g.selectAll(\".treemapLeafGroup\").data(leafNodes).enter().append(\"g\").attr(\"class\", (d, i) => {\n return `treemapNode treemapLeafGroup leaf${i}${d.data.classSelector ? ` ${d.data.classSelector}` : \"\"}x`;\n }).attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n cell.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", \"treemapLeaf\").attr(\"fill\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"style\", (d) => {\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles;\n }).attr(\"fill-opacity\", 0.3).attr(\"stroke\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"stroke-width\", 3);\n cell.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 4)).attr(\"height\", (d) => Math.max(0, d.y1 - d.y0 - 4));\n const leafLabels = cell.append(\"text\").attr(\"class\", \"treemapLabel\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", (d) => (d.y1 - d.y0) / 2).attr(\"style\", (d) => {\n const labelStyles = `text-anchor: middle; dominant-baseline: middle; font-size: ${baseLabelFontSize}px;fill:` + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.data.name);\n leafLabels.each(function(d) {\n const self = select(this);\n const nodeWidth = d.x1 - d.x0;\n const nodeHeight = d.y1 - d.y0;\n const textNode = self.node();\n const availableWidth = nodeWidth - 2 * labelPadding;\n const availableHeight = nodeHeight - 2 * labelPadding;\n if (availableWidth < minDisplayThreshold || availableHeight < minDisplayThreshold) {\n self.style(\"display\", \"none\");\n return;\n }\n let currentLabelFontSize = parseInt(self.style(\"font-size\"), 10);\n const valueScaleFactor = 0.6;\n while (textNode.getComputedTextLength() > availableWidth && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n }\n let prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(baseValueFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n let combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n while (combinedHeight > availableHeight && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(baseValueFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n if (prospectiveValueFontSize < minValueFontSize && currentLabelFontSize === minLabelFontSize) {\n break;\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n if (prospectiveValueFontSize <= minValueFontSize && combinedHeight > availableHeight) {\n }\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n if (isComplexTreemap) {\n if (currentLabelFontSize < minLabelFontSize || availableHeight < minLabelFontSize) {\n self.style(\"display\", \"none\");\n }\n } else {\n if (textNode.getComputedTextLength() > availableWidth || currentLabelFontSize < minLabelFontSize || availableHeight < currentLabelFontSize) {\n self.style(\"display\", \"none\");\n }\n }\n });\n if (config.showValues !== false) {\n const leafValues = cell.append(\"text\").attr(\"class\", \"treemapValue\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", function(d) {\n return (d.y1 - d.y0) / 2;\n }).attr(\"style\", (d) => {\n const labelStyles = `text-anchor: middle; dominant-baseline: hanging; font-size: ${baseValueFontSize}px;fill:` + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.value ? valueFormat(d.value) : \"\");\n leafValues.each(function(d) {\n const valueTextElement = select(this);\n const parentCellNode = this.parentNode;\n if (!parentCellNode) {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const labelElement = select(parentCellNode).select(\".treemapLabel\");\n if (labelElement.empty() || labelElement.style(\"display\") === \"none\") {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const finalLabelFontSize = parseFloat(labelElement.style(\"font-size\"));\n const valueScaleFactor = 0.6;\n const actualValueFontSize = Math.max(\n minValueFontSize,\n Math.min(baseValueFontSize, Math.round(finalLabelFontSize * valueScaleFactor))\n );\n valueTextElement.style(\"font-size\", `${actualValueFontSize}px`);\n const labelCenterY = (d.y1 - d.y0) / 2;\n const valueTopActualY = labelCenterY + finalLabelFontSize / 2 + spacingBetweenLabelAndValue;\n valueTextElement.attr(\"y\", valueTopActualY);\n const nodeWidth = d.x1 - d.x0;\n const nodeTotalHeight = d.y1 - d.y0;\n const cellBottomPadding = 4;\n const maxValueBottomY = nodeTotalHeight - cellBottomPadding;\n const availableWidthForValue = nodeWidth - 2 * labelPadding;\n if (valueTextElement.node().getComputedTextLength() > availableWidthForValue || valueTopActualY + actualValueFontSize > maxValueBottomY || actualValueFontSize < minValueFontSize) {\n valueTextElement.style(\"display\", \"none\");\n } else {\n valueTextElement.style(\"display\", null);\n }\n });\n }\n const diagramPadding = config.diagramPadding ?? 8;\n setupViewPortForSVG(svg, diagramPadding, \"flowchart\", config?.useMaxWidth || false);\n}, \"draw\");\nvar getClasses = /* @__PURE__ */ __name(function(_text, diagramObj) {\n return diagramObj.db.getClasses();\n}, \"getClasses\");\nvar renderer = { draw, getClasses };\n\n// src/diagrams/treemap/styles.ts\nvar defaultTreemapStyleOptions = {\n sectionStrokeColor: \"black\",\n sectionStrokeWidth: \"1\",\n sectionFillColor: \"#efefef\",\n leafStrokeColor: \"black\",\n leafStrokeWidth: \"1\",\n leafFillColor: \"#efefef\",\n labelFontSize: \"12px\",\n valueFontSize: \"10px\",\n titleFontSize: \"14px\"\n};\nvar getStyles = /* @__PURE__ */ __name(({\n treemap: treemap2\n} = {}) => {\n const defaultThemeVariables = getThemeVariables();\n const currentConfig = getConfig();\n const themeVariables = cleanAndMerge(defaultThemeVariables, currentConfig.themeVariables);\n const options = cleanAndMerge(defaultTreemapStyleOptions, treemap2);\n const titleColor = options.titleColor ?? themeVariables.titleColor;\n const labelColor = options.labelColor ?? themeVariables.textColor;\n const valueColor = options.valueColor ?? themeVariables.textColor;\n return `\n .treemapNode.section {\n stroke: ${options.sectionStrokeColor};\n stroke-width: ${options.sectionStrokeWidth};\n fill: ${options.sectionFillColor};\n }\n .treemapNode.leaf {\n stroke: ${options.leafStrokeColor};\n stroke-width: ${options.leafStrokeWidth};\n fill: ${options.leafFillColor};\n }\n .treemapLabel {\n fill: ${labelColor};\n font-size: ${options.labelFontSize};\n }\n .treemapValue {\n fill: ${valueColor};\n font-size: ${options.valueFontSize};\n }\n .treemapTitle {\n fill: ${titleColor};\n font-size: ${options.titleFontSize};\n }\n `;\n}, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/treemap/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new TreeMapDB();\n },\n renderer,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],"names":["count","node","sum","children","i","node_count","node_each","callback","that","index","node_eachBefore","nodes","node_eachAfter","next","n","node_find","node_sum","value","node_sort","compare","node_path","end","start","ancestor","leastCommonAncestor","k","a","b","aNodes","bNodes","c","node_ancestors","node_descendants","node_leaves","leaves","node_links","root","links","node_iterator","current","hierarchy","data","mapChildren","objectChildren","Node","child","childs","computeHeight","node_copy","copyData","d","height","required","f","constantZero","constant","x","roundNode","treemapDice","parent","x0","y0","x1","y1","treemapSlice","phi","squarifyRatio","ratio","rows","row","nodeValue","i0","i1","dx","dy","sumValue","minValue","maxValue","newRatio","minRatio","alpha","beta","squarify","custom","treemap","tile","round","paddingStack","paddingInner","paddingTop","paddingRight","paddingBottom","paddingLeft","positionNode","p","TreeMapDB","_a","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","getAccDescription","setAccDescription","defaultConfig","defaultConfig_default","userConfig","getConfig","cleanAndMerge","level","id","_style","styleClass","styles","s","isLabelStyle","classSelector","clear","__name","buildHierarchy","items","stack","item","populate","ast","db","populateCommonDb","name","getItemName","cssCompiledStyles","itemData","hierarchyNodes","addNodesRecursively","parser","text","parseFunc","parse","log","error","DEFAULT_INNER_PADDING","SECTION_INNER_PADDING","SECTION_HEADER_HEIGHT","draw","_text","_version","diagram2","treemapDb","config","treemapInnerPadding","title","themeVariables","titleHeight","svg","selectSvgElement","width","svgWidth","svgHeight","configureSvgSize","valueFormat","formatStr","format","precision","precisionStr","restOfFormat","colorScale","scaleOrdinal","colorScalePeer","colorScaleLabel","g","hierarchyRoot","treemapData","branchNodes","sections","_d","styles2String","labelStyles","self","select","originalText","totalHeaderWidth","labelXPosition","spaceForTextContent","actualAvailableWidth","textNode","currentTruncatedText","leafNodes","isComplexTreemap","baseLabelFontSize","baseValueFontSize","minLabelFontSize","minValueFontSize","labelPadding","minDisplayThreshold","spacingBetweenLabelAndValue","cell","nodeWidth","nodeHeight","availableWidth","availableHeight","currentLabelFontSize","valueScaleFactor","prospectiveValueFontSize","combinedHeight","valueTextElement","parentCellNode","labelElement","finalLabelFontSize","actualValueFontSize","valueTopActualY","maxValueBottomY","availableWidthForValue","diagramPadding","setupViewPortForSVG","getClasses","diagramObj","renderer","defaultTreemapStyleOptions","getStyles","treemap2","defaultThemeVariables","getThemeVariables","currentConfig","options","titleColor","labelColor","valueColor","styles_default","diagram"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-NH7WQ7WH-BMYzS0pm.cjs","sources":["../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/diagram-NH7WQ7WH.mjs"],"sourcesContent":["import {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-VAUOI2AC.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-ICXQ74PX.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-WYO6CB5R.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/packet/db.ts\nvar DEFAULT_PACKET_CONFIG = defaultConfig_default.packet;\nvar PacketDB = class {\n constructor() {\n this.packet = [];\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"PacketDB\");\n }\n getConfig() {\n const config = cleanAndMerge({\n ...DEFAULT_PACKET_CONFIG,\n ...getConfig().packet\n });\n if (config.showBits) {\n config.paddingY += 10;\n }\n return config;\n }\n getPacket() {\n return this.packet;\n }\n pushWord(word) {\n if (word.length > 0) {\n this.packet.push(word);\n }\n }\n clear() {\n clear();\n this.packet = [];\n }\n};\n\n// src/diagrams/packet/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar maxPacketSize = 1e4;\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n let lastBit = -1;\n let word = [];\n let row = 1;\n const { bitsPerRow } = db.getConfig();\n for (let { start, end, bits, label } of ast.blocks) {\n if (start !== void 0 && end !== void 0 && end < start) {\n throw new Error(`Packet block ${start} - ${end} is invalid. End must be greater than start.`);\n }\n start ??= lastBit + 1;\n if (start !== lastBit + 1) {\n throw new Error(\n `Packet block ${start} - ${end ?? start} is not contiguous. It should start from ${lastBit + 1}.`\n );\n }\n if (bits === 0) {\n throw new Error(`Packet block ${start} is invalid. Cannot have a zero bit field.`);\n }\n end ??= start + (bits ?? 1) - 1;\n bits ??= end - start + 1;\n lastBit = end;\n log.debug(`Packet block ${start} - ${lastBit} with label ${label}`);\n while (word.length <= bitsPerRow + 1 && db.getPacket().length < maxPacketSize) {\n const [block, nextBlock] = getNextFittingBlock({ start, end, bits, label }, row, bitsPerRow);\n word.push(block);\n if (block.end + 1 === row * bitsPerRow) {\n db.pushWord(word);\n word = [];\n row++;\n }\n if (!nextBlock) {\n break;\n }\n ({ start, end, bits, label } = nextBlock);\n }\n }\n db.pushWord(word);\n}, \"populate\");\nvar getNextFittingBlock = /* @__PURE__ */ __name((block, row, bitsPerRow) => {\n if (block.start === void 0) {\n throw new Error(\"start should have been set during first phase\");\n }\n if (block.end === void 0) {\n throw new Error(\"end should have been set during first phase\");\n }\n if (block.start > block.end) {\n throw new Error(`Block start ${block.start} is greater than block end ${block.end}.`);\n }\n if (block.end + 1 <= row * bitsPerRow) {\n return [block, void 0];\n }\n const rowEnd = row * bitsPerRow - 1;\n const rowStart = row * bitsPerRow;\n return [\n {\n start: block.start,\n end: rowEnd,\n label: block.label,\n bits: rowEnd - block.start\n },\n {\n start: rowStart,\n end: block.end,\n label: block.label,\n bits: block.end - rowStart\n }\n ];\n}, \"getNextFittingBlock\");\nvar parser = {\n // @ts-expect-error - PacketDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"packet\", input);\n const db = parser.parser?.yy;\n if (!(db instanceof PacketDB)) {\n throw new Error(\n \"parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n log.debug(ast);\n populate(ast, db);\n }, \"parse\")\n};\n\n// src/diagrams/packet/renderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const db = diagram2.db;\n const config = db.getConfig();\n const { rowHeight, paddingY, bitWidth, bitsPerRow } = config;\n const words = db.getPacket();\n const title = db.getDiagramTitle();\n const totalRowHeight = rowHeight + paddingY;\n const svgHeight = totalRowHeight * (words.length + 1) - (title ? 0 : rowHeight);\n const svgWidth = bitWidth * bitsPerRow + 2;\n const svg = selectSvgElement(id);\n svg.attr(\"viewBox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n for (const [word, packet] of words.entries()) {\n drawWord(svg, packet, word, config);\n }\n svg.append(\"text\").text(title).attr(\"x\", svgWidth / 2).attr(\"y\", svgHeight - totalRowHeight / 2).attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").attr(\"class\", \"packetTitle\");\n}, \"draw\");\nvar drawWord = /* @__PURE__ */ __name((svg, word, rowNumber, { rowHeight, paddingX, paddingY, bitWidth, bitsPerRow, showBits }) => {\n const group = svg.append(\"g\");\n const wordY = rowNumber * (rowHeight + paddingY) + paddingY;\n for (const block of word) {\n const blockX = block.start % bitsPerRow * bitWidth + 1;\n const width = (block.end - block.start + 1) * bitWidth - paddingX;\n group.append(\"rect\").attr(\"x\", blockX).attr(\"y\", wordY).attr(\"width\", width).attr(\"height\", rowHeight).attr(\"class\", \"packetBlock\");\n group.append(\"text\").attr(\"x\", blockX + width / 2).attr(\"y\", wordY + rowHeight / 2).attr(\"class\", \"packetLabel\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").text(block.label);\n if (!showBits) {\n continue;\n }\n const isSingleBlock = block.end === block.start;\n const bitNumberY = wordY - 2;\n group.append(\"text\").attr(\"x\", blockX + (isSingleBlock ? width / 2 : 0)).attr(\"y\", bitNumberY).attr(\"class\", \"packetByte start\").attr(\"dominant-baseline\", \"auto\").attr(\"text-anchor\", isSingleBlock ? \"middle\" : \"start\").text(block.start);\n if (!isSingleBlock) {\n group.append(\"text\").attr(\"x\", blockX + width).attr(\"y\", bitNumberY).attr(\"class\", \"packetByte end\").attr(\"dominant-baseline\", \"auto\").attr(\"text-anchor\", \"end\").text(block.end);\n }\n }\n}, \"drawWord\");\nvar renderer = { draw };\n\n// src/diagrams/packet/styles.ts\nvar defaultPacketStyleOptions = {\n byteFontSize: \"10px\",\n startByteColor: \"black\",\n endByteColor: \"black\",\n labelColor: \"black\",\n labelFontSize: \"12px\",\n titleColor: \"black\",\n titleFontSize: \"14px\",\n blockStrokeColor: \"black\",\n blockStrokeWidth: \"1\",\n blockFillColor: \"#efefef\"\n};\nvar styles = /* @__PURE__ */ __name(({ packet } = {}) => {\n const options = cleanAndMerge(defaultPacketStyleOptions, packet);\n return `\n\t.packetByte {\n\t\tfont-size: ${options.byteFontSize};\n\t}\n\t.packetByte.start {\n\t\tfill: ${options.startByteColor};\n\t}\n\t.packetByte.end {\n\t\tfill: ${options.endByteColor};\n\t}\n\t.packetLabel {\n\t\tfill: ${options.labelColor};\n\t\tfont-size: ${options.labelFontSize};\n\t}\n\t.packetTitle {\n\t\tfill: ${options.titleColor};\n\t\tfont-size: ${options.titleFontSize};\n\t}\n\t.packetBlock {\n\t\tstroke: ${options.blockStrokeColor};\n\t\tstroke-width: ${options.blockStrokeWidth};\n\t\tfill: ${options.blockFillColor};\n\t}\n\t`;\n}, \"styles\");\n\n// src/diagrams/packet/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new PacketDB();\n },\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"names":["DEFAULT_PACKET_CONFIG","defaultConfig_default","PacketDB","_a","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","getAccDescription","setAccDescription","config","cleanAndMerge","getConfig","word","clear","__name","maxPacketSize","populate","ast","db","populateCommonDb","lastBit","row","bitsPerRow","start","end","bits","label","log","block","nextBlock","getNextFittingBlock","rowEnd","rowStart","parser","input","parse","draw","_text","id","_version","diagram2","rowHeight","paddingY","bitWidth","words","title","totalRowHeight","svgHeight","svgWidth","svg","selectSvgElement","configureSvgSize","packet","drawWord","rowNumber","paddingX","showBits","group","wordY","blockX","width","isSingleBlock","bitNumberY","renderer","defaultPacketStyleOptions","styles","options","diagram"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-NH7WQ7WH-yu8B8Q4y.js","sources":["../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/diagram-NH7WQ7WH.mjs"],"sourcesContent":["import {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-VAUOI2AC.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-ICXQ74PX.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-WYO6CB5R.mjs\";\nimport {\n log\n} from \"./chunk-X3CZISLH.mjs\";\nimport {\n __name\n} from \"./chunk-Y2CYZVJY.mjs\";\n\n// src/diagrams/packet/db.ts\nvar DEFAULT_PACKET_CONFIG = defaultConfig_default.packet;\nvar PacketDB = class {\n constructor() {\n this.packet = [];\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"PacketDB\");\n }\n getConfig() {\n const config = cleanAndMerge({\n ...DEFAULT_PACKET_CONFIG,\n ...getConfig().packet\n });\n if (config.showBits) {\n config.paddingY += 10;\n }\n return config;\n }\n getPacket() {\n return this.packet;\n }\n pushWord(word) {\n if (word.length > 0) {\n this.packet.push(word);\n }\n }\n clear() {\n clear();\n this.packet = [];\n }\n};\n\n// src/diagrams/packet/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar maxPacketSize = 1e4;\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n let lastBit = -1;\n let word = [];\n let row = 1;\n const { bitsPerRow } = db.getConfig();\n for (let { start, end, bits, label } of ast.blocks) {\n if (start !== void 0 && end !== void 0 && end < start) {\n throw new Error(`Packet block ${start} - ${end} is invalid. End must be greater than start.`);\n }\n start ??= lastBit + 1;\n if (start !== lastBit + 1) {\n throw new Error(\n `Packet block ${start} - ${end ?? start} is not contiguous. It should start from ${lastBit + 1}.`\n );\n }\n if (bits === 0) {\n throw new Error(`Packet block ${start} is invalid. Cannot have a zero bit field.`);\n }\n end ??= start + (bits ?? 1) - 1;\n bits ??= end - start + 1;\n lastBit = end;\n log.debug(`Packet block ${start} - ${lastBit} with label ${label}`);\n while (word.length <= bitsPerRow + 1 && db.getPacket().length < maxPacketSize) {\n const [block, nextBlock] = getNextFittingBlock({ start, end, bits, label }, row, bitsPerRow);\n word.push(block);\n if (block.end + 1 === row * bitsPerRow) {\n db.pushWord(word);\n word = [];\n row++;\n }\n if (!nextBlock) {\n break;\n }\n ({ start, end, bits, label } = nextBlock);\n }\n }\n db.pushWord(word);\n}, \"populate\");\nvar getNextFittingBlock = /* @__PURE__ */ __name((block, row, bitsPerRow) => {\n if (block.start === void 0) {\n throw new Error(\"start should have been set during first phase\");\n }\n if (block.end === void 0) {\n throw new Error(\"end should have been set during first phase\");\n }\n if (block.start > block.end) {\n throw new Error(`Block start ${block.start} is greater than block end ${block.end}.`);\n }\n if (block.end + 1 <= row * bitsPerRow) {\n return [block, void 0];\n }\n const rowEnd = row * bitsPerRow - 1;\n const rowStart = row * bitsPerRow;\n return [\n {\n start: block.start,\n end: rowEnd,\n label: block.label,\n bits: rowEnd - block.start\n },\n {\n start: rowStart,\n end: block.end,\n label: block.label,\n bits: block.end - rowStart\n }\n ];\n}, \"getNextFittingBlock\");\nvar parser = {\n // @ts-expect-error - PacketDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"packet\", input);\n const db = parser.parser?.yy;\n if (!(db instanceof PacketDB)) {\n throw new Error(\n \"parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n log.debug(ast);\n populate(ast, db);\n }, \"parse\")\n};\n\n// src/diagrams/packet/renderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const db = diagram2.db;\n const config = db.getConfig();\n const { rowHeight, paddingY, bitWidth, bitsPerRow } = config;\n const words = db.getPacket();\n const title = db.getDiagramTitle();\n const totalRowHeight = rowHeight + paddingY;\n const svgHeight = totalRowHeight * (words.length + 1) - (title ? 0 : rowHeight);\n const svgWidth = bitWidth * bitsPerRow + 2;\n const svg = selectSvgElement(id);\n svg.attr(\"viewBox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n for (const [word, packet] of words.entries()) {\n drawWord(svg, packet, word, config);\n }\n svg.append(\"text\").text(title).attr(\"x\", svgWidth / 2).attr(\"y\", svgHeight - totalRowHeight / 2).attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").attr(\"class\", \"packetTitle\");\n}, \"draw\");\nvar drawWord = /* @__PURE__ */ __name((svg, word, rowNumber, { rowHeight, paddingX, paddingY, bitWidth, bitsPerRow, showBits }) => {\n const group = svg.append(\"g\");\n const wordY = rowNumber * (rowHeight + paddingY) + paddingY;\n for (const block of word) {\n const blockX = block.start % bitsPerRow * bitWidth + 1;\n const width = (block.end - block.start + 1) * bitWidth - paddingX;\n group.append(\"rect\").attr(\"x\", blockX).attr(\"y\", wordY).attr(\"width\", width).attr(\"height\", rowHeight).attr(\"class\", \"packetBlock\");\n group.append(\"text\").attr(\"x\", blockX + width / 2).attr(\"y\", wordY + rowHeight / 2).attr(\"class\", \"packetLabel\").attr(\"dominant-baseline\", \"middle\").attr(\"text-anchor\", \"middle\").text(block.label);\n if (!showBits) {\n continue;\n }\n const isSingleBlock = block.end === block.start;\n const bitNumberY = wordY - 2;\n group.append(\"text\").attr(\"x\", blockX + (isSingleBlock ? width / 2 : 0)).attr(\"y\", bitNumberY).attr(\"class\", \"packetByte start\").attr(\"dominant-baseline\", \"auto\").attr(\"text-anchor\", isSingleBlock ? \"middle\" : \"start\").text(block.start);\n if (!isSingleBlock) {\n group.append(\"text\").attr(\"x\", blockX + width).attr(\"y\", bitNumberY).attr(\"class\", \"packetByte end\").attr(\"dominant-baseline\", \"auto\").attr(\"text-anchor\", \"end\").text(block.end);\n }\n }\n}, \"drawWord\");\nvar renderer = { draw };\n\n// src/diagrams/packet/styles.ts\nvar defaultPacketStyleOptions = {\n byteFontSize: \"10px\",\n startByteColor: \"black\",\n endByteColor: \"black\",\n labelColor: \"black\",\n labelFontSize: \"12px\",\n titleColor: \"black\",\n titleFontSize: \"14px\",\n blockStrokeColor: \"black\",\n blockStrokeWidth: \"1\",\n blockFillColor: \"#efefef\"\n};\nvar styles = /* @__PURE__ */ __name(({ packet } = {}) => {\n const options = cleanAndMerge(defaultPacketStyleOptions, packet);\n return `\n\t.packetByte {\n\t\tfont-size: ${options.byteFontSize};\n\t}\n\t.packetByte.start {\n\t\tfill: ${options.startByteColor};\n\t}\n\t.packetByte.end {\n\t\tfill: ${options.endByteColor};\n\t}\n\t.packetLabel {\n\t\tfill: ${options.labelColor};\n\t\tfont-size: ${options.labelFontSize};\n\t}\n\t.packetTitle {\n\t\tfill: ${options.titleColor};\n\t\tfont-size: ${options.titleFontSize};\n\t}\n\t.packetBlock {\n\t\tstroke: ${options.blockStrokeColor};\n\t\tstroke-width: ${options.blockStrokeWidth};\n\t\tfill: ${options.blockFillColor};\n\t}\n\t`;\n}, \"styles\");\n\n// src/diagrams/packet/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new PacketDB();\n },\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"names":["DEFAULT_PACKET_CONFIG","defaultConfig_default","PacketDB","_a","setAccTitle","getAccTitle","setDiagramTitle","getDiagramTitle","getAccDescription","setAccDescription","config","cleanAndMerge","getConfig","word","clear","__name","maxPacketSize","populate","ast","db","populateCommonDb","lastBit","row","bitsPerRow","start","end","bits","label","log","block","nextBlock","getNextFittingBlock","rowEnd","rowStart","parser","input","parse","draw","_text","id","_version","diagram2","rowHeight","paddingY","bitWidth","words","title","totalRowHeight","svgHeight","svgWidth","svg","selectSvgElement","configureSvgSize","packet","drawWord","rowNumber","paddingX","showBits","group","wordY","blockX","width","isSingleBlock","bitNumberY","renderer","defaultPacketStyleOptions","styles","options","diagram"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-OA4YK3LP-CROsfore.js","sources":["../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/diagram-OA4YK3LP.mjs"],"sourcesContent":["import {\n ImperativeState\n} from \"./chunk-2Q5K7J3B.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-VAUOI2AC.mjs\";\nimport {\n getIconSVG,\n registerIconPacks\n} from \"./chunk-HOUHSVGY.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-ICXQ74PX.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-WYO6CB5R.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 iconSymbolId = /* @__PURE__ */ __name((diagramId, icon) => `tv-icon-${diagramId}-${icon.replace(/[^\\w-]/g, \"-\")}`, \"iconSymbolId\");\nvar injectIconDefs = /* @__PURE__ */ __name(async (svg, root, config, diagramId) => {\n const usedIcons = /* @__PURE__ */ new Set();\n const collect = /* @__PURE__ */ __name((node) => {\n const icon = getNodeIcon(node, config);\n if (icon) {\n usedIcons.add(icon);\n }\n node.children.forEach(collect);\n }, \"collect\");\n collect(root);\n if (usedIcons.size === 0) {\n return;\n }\n const iconSVGs = await Promise.all(\n [...usedIcons].map(async (icon) => ({\n icon,\n svg: await getIconSVG(icon, {\n height: ICON_SIZE,\n width: ICON_SIZE\n })\n }))\n );\n const defs = svg.append(\"defs\");\n for (const { icon, svg: iconSVG } of iconSVGs) {\n defs.append(\"g\").attr(\"id\", iconSymbolId(diagramId, icon)).html(iconSVG);\n }\n}, \"injectIconDefs\");\nvar positionLabel = /* @__PURE__ */ __name((x, y, node, domElem, config, diagramId) => {\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(\"use\").attr(\"xlink:href\", `#${iconSymbolId(diagramId, icon)}`).attr(\"x\", x + config.paddingX).attr(\"y\", y + config.paddingY).attr(\"class\", \"treeView-node-icon\");\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, diagramId) => {\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, diagramId);\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 await injectIconDefs(svg, root, config, id);\n const treeElem = svg.append(\"g\");\n treeElem.attr(\"class\", \"tree-view\");\n const { totalHeight, totalWidth } = drawTree(treeElem, root, config, id);\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","dotIdx","ext","extensionIcons","qualifyIcon","defaultIconPack","getNodeIcon","detected","registerIconPacks","ICON_SIZE","ICON_GAP","DESC_GAP","iconSymbolId","diagramId","injectIconDefs","svg","root","usedIcons","collect","iconSVGs","getIconSVG","defs","iconSVG","positionLabel","x","y","domElem","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","id","_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]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-OA4YK3LP-DSeI6RLe.cjs","sources":["../../../node_modules/.pnpm/mermaid@11.16.0/node_modules/mermaid/dist/chunks/mermaid.core/diagram-OA4YK3LP.mjs"],"sourcesContent":["import {\n ImperativeState\n} from \"./chunk-2Q5K7J3B.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-JWPE2WC7.mjs\";\nimport {\n selectSvgElement\n} from \"./chunk-VAUOI2AC.mjs\";\nimport {\n getIconSVG,\n registerIconPacks\n} from \"./chunk-HOUHSVGY.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-ICXQ74PX.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-WYO6CB5R.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 iconSymbolId = /* @__PURE__ */ __name((diagramId, icon) => `tv-icon-${diagramId}-${icon.replace(/[^\\w-]/g, \"-\")}`, \"iconSymbolId\");\nvar injectIconDefs = /* @__PURE__ */ __name(async (svg, root, config, diagramId) => {\n const usedIcons = /* @__PURE__ */ new Set();\n const collect = /* @__PURE__ */ __name((node) => {\n const icon = getNodeIcon(node, config);\n if (icon) {\n usedIcons.add(icon);\n }\n node.children.forEach(collect);\n }, \"collect\");\n collect(root);\n if (usedIcons.size === 0) {\n return;\n }\n const iconSVGs = await Promise.all(\n [...usedIcons].map(async (icon) => ({\n icon,\n svg: await getIconSVG(icon, {\n height: ICON_SIZE,\n width: ICON_SIZE\n })\n }))\n );\n const defs = svg.append(\"defs\");\n for (const { icon, svg: iconSVG } of iconSVGs) {\n defs.append(\"g\").attr(\"id\", iconSymbolId(diagramId, icon)).html(iconSVG);\n }\n}, \"injectIconDefs\");\nvar positionLabel = /* @__PURE__ */ __name((x, y, node, domElem, config, diagramId) => {\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(\"use\").attr(\"xlink:href\", `#${iconSymbolId(diagramId, icon)}`).attr(\"x\", x + config.paddingX).attr(\"y\", y + config.paddingY).attr(\"class\", \"treeView-node-icon\");\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, diagramId) => {\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, diagramId);\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 await injectIconDefs(svg, root, config, id);\n const treeElem = svg.append(\"g\");\n treeElem.attr(\"class\", \"tree-view\");\n const { totalHeight, totalWidth } = drawTree(treeElem, root, config, id);\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","dotIdx","ext","extensionIcons","qualifyIcon","defaultIconPack","getNodeIcon","detected","registerIconPacks","ICON_SIZE","ICON_GAP","DESC_GAP","iconSymbolId","diagramId","injectIconDefs","svg","root","usedIcons","collect","iconSVGs","getIconSVG","defs","iconSVG","positionLabel","x","y","domElem","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","id","_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]}
|