dominds 0.1.0
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/LICENSE +157 -0
- package/README.md +250 -0
- package/README.zh.md +161 -0
- package/dist/access-control.js +253 -0
- package/dist/cli/create.js +263 -0
- package/dist/cli/read.js +84 -0
- package/dist/cli/tui.js +199 -0
- package/dist/cli/webui.js +169 -0
- package/dist/cli.js +227 -0
- package/dist/dialog-factory.js +53 -0
- package/dist/dialog-global-registry.js +68 -0
- package/dist/dialog-instance-registry.js +78 -0
- package/dist/dialog-run-state.js +198 -0
- package/dist/dialog.js +1024 -0
- package/dist/evt-registry.js +103 -0
- package/dist/index.js +8 -0
- package/dist/llm/client.js +69 -0
- package/dist/llm/defaults.yaml +386 -0
- package/dist/llm/driver.js +3214 -0
- package/dist/llm/gen/anthropic.js +611 -0
- package/dist/llm/gen/codex.js +375 -0
- package/dist/llm/gen/mock.js +326 -0
- package/dist/llm/gen/openai.js +470 -0
- package/dist/llm/gen/registry.js +26 -0
- package/dist/llm/gen.js +2 -0
- package/dist/llm/tools-projection.js +37 -0
- package/dist/log.js +228 -0
- package/dist/mcp/config.js +230 -0
- package/dist/mcp/sdk-client.js +129 -0
- package/dist/mcp/server-runtime.js +57 -0
- package/dist/mcp/stdio-client.js +280 -0
- package/dist/mcp/supervisor.js +979 -0
- package/dist/mcp/tool-names.js +109 -0
- package/dist/minds/builtin/cmdr/persona.md +3 -0
- package/dist/minds/builtin/dijiang/knowledge.md +287 -0
- package/dist/minds/builtin/dijiang/persona.md +7 -0
- package/dist/minds/builtin/fuxi/persona.en.md +59 -0
- package/dist/minds/builtin/fuxi/persona.zh.md +49 -0
- package/dist/minds/builtin/pangu/persona.en.md +78 -0
- package/dist/minds/builtin/pangu/persona.zh.md +71 -0
- package/dist/minds/load.js +617 -0
- package/dist/minds/minds-i18n.js +131 -0
- package/dist/minds/system-prompt.js +281 -0
- package/dist/persistence.js +3128 -0
- package/dist/problems.js +109 -0
- package/dist/server/api-routes.js +1031 -0
- package/dist/server/auth.js +180 -0
- package/dist/server/mime-types.js +32 -0
- package/dist/server/prompts-routes.js +543 -0
- package/dist/server/server-core.js +235 -0
- package/dist/server/setup-routes.js +697 -0
- package/dist/server/static-server.js +132 -0
- package/dist/server/websocket-handler.js +1011 -0
- package/dist/server.js +164 -0
- package/dist/shared/async-fifo-mutex.js +36 -0
- package/dist/shared/diligence.js +20 -0
- package/dist/shared/dotenv.js +144 -0
- package/dist/shared/evt.js +195 -0
- package/dist/shared/i18n/driver-messages.js +267 -0
- package/dist/shared/i18n/text.js +9 -0
- package/dist/shared/i18n/tool-result-messages.js +51 -0
- package/dist/shared/rtws-cli.js +73 -0
- package/dist/shared/runtime-language.js +47 -0
- package/dist/shared/team-mgmt-manual.js +116 -0
- package/dist/shared/types/context-health.js +2 -0
- package/dist/shared/types/dialog.js +11 -0
- package/dist/shared/types/i18n.js +2 -0
- package/dist/shared/types/index.js +26 -0
- package/dist/shared/types/language.js +40 -0
- package/dist/shared/types/problems.js +2 -0
- package/dist/shared/types/prompts.js +2 -0
- package/dist/shared/types/q4h.js +7 -0
- package/dist/shared/types/run-state.js +8 -0
- package/dist/shared/types/setup.js +2 -0
- package/dist/shared/types/storage.js +10 -0
- package/dist/shared/types/tellask.js +8 -0
- package/dist/shared/types/tools-registry.js +2 -0
- package/dist/shared/types/wire.js +12 -0
- package/dist/shared/utils/fmt.js +9 -0
- package/dist/shared/utils/html.js +20 -0
- package/dist/shared/utils/id.js +18 -0
- package/dist/shared/utils/inter-dialog-format.js +101 -0
- package/dist/shared/utils/time.js +13 -0
- package/dist/static/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- package/dist/static/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- package/dist/static/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- package/dist/static/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- package/dist/static/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- package/dist/static/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- package/dist/static/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- package/dist/static/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- package/dist/static/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- package/dist/static/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- package/dist/static/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- package/dist/static/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- package/dist/static/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- package/dist/static/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- package/dist/static/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- package/dist/static/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- package/dist/static/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- package/dist/static/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- package/dist/static/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- package/dist/static/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- package/dist/static/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- package/dist/static/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- package/dist/static/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- package/dist/static/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- package/dist/static/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- package/dist/static/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- package/dist/static/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- package/dist/static/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- package/dist/static/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- package/dist/static/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- package/dist/static/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- package/dist/static/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- package/dist/static/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- package/dist/static/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- package/dist/static/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- package/dist/static/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- package/dist/static/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- package/dist/static/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- package/dist/static/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- package/dist/static/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- package/dist/static/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- package/dist/static/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- package/dist/static/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- package/dist/static/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- package/dist/static/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- package/dist/static/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- package/dist/static/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- package/dist/static/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- package/dist/static/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- package/dist/static/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- package/dist/static/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- package/dist/static/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- package/dist/static/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- package/dist/static/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- package/dist/static/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- package/dist/static/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- package/dist/static/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- package/dist/static/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- package/dist/static/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- package/dist/static/assets/_baseUniq-Crfl3d5Y.js +661 -0
- package/dist/static/assets/_baseUniq-Crfl3d5Y.js.map +1 -0
- package/dist/static/assets/arc-CbA_x9GD.js +132 -0
- package/dist/static/assets/arc-CbA_x9GD.js.map +1 -0
- package/dist/static/assets/architectureDiagram-VXUJARFQ-lcFS8ZQJ.js +8685 -0
- package/dist/static/assets/architectureDiagram-VXUJARFQ-lcFS8ZQJ.js.map +1 -0
- package/dist/static/assets/blockDiagram-VD42YOAC-B3Q36qRc.js +3608 -0
- package/dist/static/assets/blockDiagram-VD42YOAC-B3Q36qRc.js.map +1 -0
- package/dist/static/assets/c4Diagram-YG6GDRKO-Mt-aq3VH.js +2482 -0
- package/dist/static/assets/c4Diagram-YG6GDRKO-Mt-aq3VH.js.map +1 -0
- package/dist/static/assets/channel-BVr1Yke-.js +8 -0
- package/dist/static/assets/channel-BVr1Yke-.js.map +1 -0
- package/dist/static/assets/chunk-4BX2VUAB-qCIn5Iic.js +17 -0
- package/dist/static/assets/chunk-4BX2VUAB-qCIn5Iic.js.map +1 -0
- package/dist/static/assets/chunk-55IACEB6-q172NeCV.js +14 -0
- package/dist/static/assets/chunk-55IACEB6-q172NeCV.js.map +1 -0
- package/dist/static/assets/chunk-B4BG7PRW-CMJmtYzq.js +1827 -0
- package/dist/static/assets/chunk-B4BG7PRW-CMJmtYzq.js.map +1 -0
- package/dist/static/assets/chunk-DI55MBZ5-DiuwwZPL.js +1916 -0
- package/dist/static/assets/chunk-DI55MBZ5-DiuwwZPL.js.map +1 -0
- package/dist/static/assets/chunk-FMBD7UC4-06sqZTTn.js +20 -0
- package/dist/static/assets/chunk-FMBD7UC4-06sqZTTn.js.map +1 -0
- package/dist/static/assets/chunk-QN33PNHL-CnpBNkpP.js +25 -0
- package/dist/static/assets/chunk-QN33PNHL-CnpBNkpP.js.map +1 -0
- package/dist/static/assets/chunk-QZHKN3VN-CNgjMR-e.js +18 -0
- package/dist/static/assets/chunk-QZHKN3VN-CNgjMR-e.js.map +1 -0
- package/dist/static/assets/chunk-TZMSLE5B-BxtzW6--.js +109 -0
- package/dist/static/assets/chunk-TZMSLE5B-BxtzW6--.js.map +1 -0
- package/dist/static/assets/classDiagram-2ON5EDUG-29huvmn-.js +23 -0
- package/dist/static/assets/classDiagram-2ON5EDUG-29huvmn-.js.map +1 -0
- package/dist/static/assets/classDiagram-v2-WZHVMYZB-29huvmn-.js +23 -0
- package/dist/static/assets/classDiagram-v2-WZHVMYZB-29huvmn-.js.map +1 -0
- package/dist/static/assets/clone-D2OgLSSn.js +9 -0
- package/dist/static/assets/clone-D2OgLSSn.js.map +1 -0
- package/dist/static/assets/cose-bilkent-S5V4N54A-BNegDCxl.js +4943 -0
- package/dist/static/assets/cose-bilkent-S5V4N54A-BNegDCxl.js.map +1 -0
- package/dist/static/assets/cytoscape.esm-Bm8DJGmZ.js +30240 -0
- package/dist/static/assets/cytoscape.esm-Bm8DJGmZ.js.map +1 -0
- package/dist/static/assets/dagre-6UL2VRFP-f1XrTRSn.js +695 -0
- package/dist/static/assets/dagre-6UL2VRFP-f1XrTRSn.js.map +1 -0
- package/dist/static/assets/defaultLocale-DVr69WTU.js +207 -0
- package/dist/static/assets/defaultLocale-DVr69WTU.js.map +1 -0
- package/dist/static/assets/diagram-PSM6KHXK-8w1WbeDi.js +849 -0
- package/dist/static/assets/diagram-PSM6KHXK-8w1WbeDi.js.map +1 -0
- package/dist/static/assets/diagram-QEK2KX5R-CF4wtMmR.js +303 -0
- package/dist/static/assets/diagram-QEK2KX5R-CF4wtMmR.js.map +1 -0
- package/dist/static/assets/diagram-S2PKOQOG-8p3Avgn2.js +213 -0
- package/dist/static/assets/diagram-S2PKOQOG-8p3Avgn2.js.map +1 -0
- package/dist/static/assets/erDiagram-Q2GNP2WA-BMKLxlM9.js +1159 -0
- package/dist/static/assets/erDiagram-Q2GNP2WA-BMKLxlM9.js.map +1 -0
- package/dist/static/assets/favicon-Cmg5RbCj.svg +8 -0
- package/dist/static/assets/flowDiagram-NV44I4VS-CgEuPNK2.js +2332 -0
- package/dist/static/assets/flowDiagram-NV44I4VS-CgEuPNK2.js.map +1 -0
- package/dist/static/assets/ganttDiagram-JELNMOA3-bJkDCf-9.js +3681 -0
- package/dist/static/assets/ganttDiagram-JELNMOA3-bJkDCf-9.js.map +1 -0
- package/dist/static/assets/gitGraphDiagram-NY62KEGX-4QE9kesp.js +1206 -0
- package/dist/static/assets/gitGraphDiagram-NY62KEGX-4QE9kesp.js.map +1 -0
- package/dist/static/assets/graph-CS0Pmm7c.js +597 -0
- package/dist/static/assets/graph-CS0Pmm7c.js.map +1 -0
- package/dist/static/assets/index-BS6HnGzC.js +112303 -0
- package/dist/static/assets/index-BS6HnGzC.js.map +1 -0
- package/dist/static/assets/index-DaIsSzC_.css +483 -0
- package/dist/static/assets/infoDiagram-WHAUD3N6-ypBcKfUs.js +34 -0
- package/dist/static/assets/infoDiagram-WHAUD3N6-ypBcKfUs.js.map +1 -0
- package/dist/static/assets/init-ZxktEp_H.js +17 -0
- package/dist/static/assets/init-ZxktEp_H.js.map +1 -0
- package/dist/static/assets/journeyDiagram-XKPGCS4Q-QnrxDowJ.js +1255 -0
- package/dist/static/assets/journeyDiagram-XKPGCS4Q-QnrxDowJ.js.map +1 -0
- package/dist/static/assets/kanban-definition-3W4ZIXB7-CfvEc4z5.js +1048 -0
- package/dist/static/assets/kanban-definition-3W4ZIXB7-CfvEc4z5.js.map +1 -0
- package/dist/static/assets/layout-8TGxpm23.js +2218 -0
- package/dist/static/assets/layout-8TGxpm23.js.map +1 -0
- package/dist/static/assets/linear-BATBPQQv.js +341 -0
- package/dist/static/assets/linear-BATBPQQv.js.map +1 -0
- package/dist/static/assets/min-B3oVH3AC.js +42 -0
- package/dist/static/assets/min-B3oVH3AC.js.map +1 -0
- package/dist/static/assets/mindmap-definition-VGOIOE7T-L7VLwwF8.js +1127 -0
- package/dist/static/assets/mindmap-definition-VGOIOE7T-L7VLwwF8.js.map +1 -0
- package/dist/static/assets/ordinal-CxptdPJm.js +77 -0
- package/dist/static/assets/ordinal-CxptdPJm.js.map +1 -0
- package/dist/static/assets/pieDiagram-ADFJNKIX-CFW3zIhM.js +241 -0
- package/dist/static/assets/pieDiagram-ADFJNKIX-CFW3zIhM.js.map +1 -0
- package/dist/static/assets/quadrantDiagram-AYHSOK5B-B7ssen3E.js +1338 -0
- package/dist/static/assets/quadrantDiagram-AYHSOK5B-B7ssen3E.js.map +1 -0
- package/dist/static/assets/requirementDiagram-UZGBJVZJ-D0v5BArv.js +1162 -0
- package/dist/static/assets/requirementDiagram-UZGBJVZJ-D0v5BArv.js.map +1 -0
- package/dist/static/assets/sankeyDiagram-TZEHDZUN-B7slncJe.js +1195 -0
- package/dist/static/assets/sankeyDiagram-TZEHDZUN-B7slncJe.js.map +1 -0
- package/dist/static/assets/sequenceDiagram-WL72ISMW-oXU2lRh_.js +3875 -0
- package/dist/static/assets/sequenceDiagram-WL72ISMW-oXU2lRh_.js.map +1 -0
- package/dist/static/assets/stateDiagram-FKZM4ZOC-CFYsEd0x.js +452 -0
- package/dist/static/assets/stateDiagram-FKZM4ZOC-CFYsEd0x.js.map +1 -0
- package/dist/static/assets/stateDiagram-v2-4FDKWEC3-C0UWaNA7.js +22 -0
- package/dist/static/assets/stateDiagram-v2-4FDKWEC3-C0UWaNA7.js.map +1 -0
- package/dist/static/assets/timeline-definition-IT6M3QCI-C3KODUrh.js +1223 -0
- package/dist/static/assets/timeline-definition-IT6M3QCI-C3KODUrh.js.map +1 -0
- package/dist/static/assets/treemap-KMMF4GRG-DAGDLhj2.js +18753 -0
- package/dist/static/assets/treemap-KMMF4GRG-DAGDLhj2.js.map +1 -0
- package/dist/static/assets/xychartDiagram-PRI3JC2R-C0J9iwTO.js +1888 -0
- package/dist/static/assets/xychartDiagram-PRI3JC2R-C0J9iwTO.js.map +1 -0
- package/dist/static/index.html +71 -0
- package/dist/static/testing/dom-observation-utils.js +425 -0
- package/dist/static/testing/e2e-test-helper.js +3119 -0
- package/dist/team.js +1160 -0
- package/dist/tellask.js +431 -0
- package/dist/tool.js +150 -0
- package/dist/tools/apply-patch.js +542 -0
- package/dist/tools/builtins.js +196 -0
- package/dist/tools/context-health.js +177 -0
- package/dist/tools/ctrl.js +478 -0
- package/dist/tools/diag.js +583 -0
- package/dist/tools/env.js +184 -0
- package/dist/tools/fs.js +818 -0
- package/dist/tools/mcp.js +138 -0
- package/dist/tools/mem.js +349 -0
- package/dist/tools/os.js +751 -0
- package/dist/tools/prompts/team_mgmt.en.md +70 -0
- package/dist/tools/prompts/team_mgmt.zh.md +70 -0
- package/dist/tools/prompts/ws_mod.en.md +86 -0
- package/dist/tools/prompts/ws_mod.zh.md +87 -0
- package/dist/tools/registry-snapshot.js +31 -0
- package/dist/tools/registry.js +121 -0
- package/dist/tools/ripgrep.js +678 -0
- package/dist/tools/team-mgmt.js +3300 -0
- package/dist/tools/txt.js +3178 -0
- package/dist/utils/id.js +72 -0
- package/dist/utils/task-doc.js +236 -0
- package/dist/utils/task-package.js +522 -0
- package/dist/utils/taskdoc-search.js +280 -0
- package/dist/utils/taskdoc.js +400 -0
- package/package.json +69 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagram-PSM6KHXK-8w1WbeDi.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.12.2/node_modules/mermaid/dist/chunks/mermaid.core/diagram-PSM6KHXK.mjs"],"sourcesContent":["function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","export function constantZero() {\n return 0;\n}\n\nexport default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(node) {\n node.x0 = Math.round(node.x0);\n node.y0 = Math.round(node.y0);\n node.x1 = Math.round(node.x1);\n node.y1 = Math.round(node.y1);\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (x1 - x0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.y0 = y0, node.y1 = y1;\n node.x0 = x0, node.x1 = x0 += node.value * k;\n }\n}\n","export default function(parent, x0, y0, x1, y1) {\n var nodes = parent.children,\n node,\n i = -1,\n n = nodes.length,\n k = parent.value && (y1 - y0) / parent.value;\n\n while (++i < n) {\n node = nodes[i], node.x0 = x0, node.x1 = x1;\n node.y0 = y0, node.y1 = y0 += node.value * k;\n }\n}\n","import treemapDice from \"./dice.js\";\nimport treemapSlice from \"./slice.js\";\n\nexport var phi = (1 + Math.sqrt(5)) / 2;\n\nexport function squarifyRatio(ratio, parent, x0, y0, x1, y1) {\n var rows = [],\n nodes = parent.children,\n row,\n nodeValue,\n i0 = 0,\n i1 = 0,\n n = nodes.length,\n dx, dy,\n value = parent.value,\n sumValue,\n minValue,\n maxValue,\n newRatio,\n minRatio,\n alpha,\n beta;\n\n while (i0 < n) {\n dx = x1 - x0, dy = y1 - y0;\n\n // Find the next non-empty node.\n do sumValue = nodes[i1++].value; while (!sumValue && i1 < n);\n minValue = maxValue = sumValue;\n alpha = Math.max(dy / dx, dx / dy) / (value * ratio);\n beta = sumValue * sumValue * alpha;\n minRatio = Math.max(maxValue / beta, beta / minValue);\n\n // Keep adding nodes while the aspect ratio maintains or improves.\n for (; i1 < n; ++i1) {\n sumValue += nodeValue = nodes[i1].value;\n if (nodeValue < minValue) minValue = nodeValue;\n if (nodeValue > maxValue) maxValue = nodeValue;\n beta = sumValue * sumValue * alpha;\n newRatio = Math.max(maxValue / beta, beta / minValue);\n if (newRatio > minRatio) { sumValue -= nodeValue; break; }\n minRatio = newRatio;\n }\n\n // Position and record the row orientation.\n rows.push(row = {value: sumValue, dice: dx < dy, children: nodes.slice(i0, i1)});\n if (row.dice) treemapDice(row, x0, y0, x1, value ? y0 += dy * sumValue / value : y1);\n else treemapSlice(row, x0, y0, value ? x0 += dx * sumValue / value : x1, y1);\n value -= sumValue, i0 = i1;\n }\n\n return rows;\n}\n\nexport default (function custom(ratio) {\n\n function squarify(parent, x0, y0, x1, y1) {\n squarifyRatio(ratio, parent, x0, y0, x1, y1);\n }\n\n squarify.ratio = function(x) {\n return custom((x = +x) > 1 ? x : 1);\n };\n\n return squarify;\n})(phi);\n","import roundNode from \"./round.js\";\nimport squarify from \"./squarify.js\";\nimport {required} from \"../accessors.js\";\nimport constant, {constantZero} from \"../constant.js\";\n\nexport default function() {\n var tile = squarify,\n round = false,\n dx = 1,\n dy = 1,\n paddingStack = [0],\n paddingInner = constantZero,\n paddingTop = constantZero,\n paddingRight = constantZero,\n paddingBottom = constantZero,\n paddingLeft = constantZero;\n\n function treemap(root) {\n root.x0 =\n root.y0 = 0;\n root.x1 = dx;\n root.y1 = dy;\n root.eachBefore(positionNode);\n paddingStack = [0];\n if (round) root.eachBefore(roundNode);\n return root;\n }\n\n function positionNode(node) {\n var p = paddingStack[node.depth],\n x0 = node.x0 + p,\n y0 = node.y0 + p,\n x1 = node.x1 - p,\n y1 = node.y1 - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n node.x0 = x0;\n node.y0 = y0;\n node.x1 = x1;\n node.y1 = y1;\n if (node.children) {\n p = paddingStack[node.depth + 1] = paddingInner(node) / 2;\n x0 += paddingLeft(node) - p;\n y0 += paddingTop(node) - p;\n x1 -= paddingRight(node) - p;\n y1 -= paddingBottom(node) - p;\n if (x1 < x0) x0 = x1 = (x0 + x1) / 2;\n if (y1 < y0) y0 = y1 = (y0 + y1) / 2;\n tile(node, x0, y0, x1, y1);\n }\n }\n\n treemap.round = function(x) {\n return arguments.length ? (round = !!x, treemap) : round;\n };\n\n treemap.size = function(x) {\n return arguments.length ? (dx = +x[0], dy = +x[1], treemap) : [dx, dy];\n };\n\n treemap.tile = function(x) {\n return arguments.length ? (tile = required(x), treemap) : tile;\n };\n\n treemap.padding = function(x) {\n return arguments.length ? treemap.paddingInner(x).paddingOuter(x) : treemap.paddingInner();\n };\n\n treemap.paddingInner = function(x) {\n return arguments.length ? (paddingInner = typeof x === \"function\" ? x : constant(+x), treemap) : paddingInner;\n };\n\n treemap.paddingOuter = function(x) {\n return arguments.length ? treemap.paddingTop(x).paddingRight(x).paddingBottom(x).paddingLeft(x) : treemap.paddingTop();\n };\n\n treemap.paddingTop = function(x) {\n return arguments.length ? (paddingTop = typeof x === \"function\" ? x : constant(+x), treemap) : paddingTop;\n };\n\n treemap.paddingRight = function(x) {\n return arguments.length ? (paddingRight = typeof x === \"function\" ? x : constant(+x), treemap) : paddingRight;\n };\n\n treemap.paddingBottom = function(x) {\n return arguments.length ? (paddingBottom = typeof x === \"function\" ? x : constant(+x), treemap) : paddingBottom;\n };\n\n treemap.paddingLeft = function(x) {\n return arguments.length ? (paddingLeft = typeof x === \"function\" ? x : constant(+x), treemap) : paddingLeft;\n };\n\n return treemap;\n}\n","import {\n selectSvgElement\n} from \"./chunk-EXTU4WIE.mjs\";\nimport {\n setupViewPortForSVG\n} from \"./chunk-QN33PNHL.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-ATLVNIR6.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-S3R3BYOJ.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-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/treemap/db.ts\nvar TreeMapDB = class {\n constructor() {\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"TreeMapDB\");\n }\n getNodes() {\n return this.nodes;\n }\n getConfig() {\n const defaultConfig = defaultConfig_default;\n const userConfig = getConfig();\n return cleanAndMerge({\n ...defaultConfig.treemap,\n ...userConfig.treemap ?? {}\n });\n }\n addNode(node, level) {\n this.nodes.push(node);\n this.levels.set(node, level);\n if (level === 0) {\n this.outerNodes.push(node);\n this.root ??= node;\n }\n }\n getRoot() {\n return { name: \"\", children: this.outerNodes };\n }\n addClass(id, _style) {\n const styleClass = this.classes.get(id) ?? { id, styles: [], textStyles: [] };\n const styles = _style.replace(/\\\\,/g, \"\\xA7\\xA7\\xA7\").replace(/,/g, \";\").replace(/§§§/g, \",\").split(\";\");\n if (styles) {\n styles.forEach((s) => {\n if (isLabelStyle(s)) {\n if (styleClass?.textStyles) {\n styleClass.textStyles.push(s);\n } else {\n styleClass.textStyles = [s];\n }\n }\n if (styleClass?.styles) {\n styleClass.styles.push(s);\n } else {\n styleClass.styles = [s];\n }\n });\n }\n this.classes.set(id, styleClass);\n }\n getClasses() {\n return this.classes;\n }\n getStylesForClass(classSelector) {\n return this.classes.get(classSelector)?.styles ?? [];\n }\n clear() {\n clear();\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.root = void 0;\n }\n};\n\n// src/diagrams/treemap/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/treemap/utils.ts\nfunction buildHierarchy(items) {\n if (!items.length) {\n return [];\n }\n const root = [];\n const stack = [];\n items.forEach((item) => {\n const node = {\n name: item.name,\n children: item.type === \"Leaf\" ? void 0 : []\n };\n node.classSelector = item?.classSelector;\n if (item?.cssCompiledStyles) {\n node.cssCompiledStyles = [item.cssCompiledStyles];\n }\n if (item.type === \"Leaf\" && item.value !== void 0) {\n node.value = item.value;\n }\n while (stack.length > 0 && stack[stack.length - 1].level >= item.level) {\n stack.pop();\n }\n if (stack.length === 0) {\n root.push(node);\n } else {\n const parent = stack[stack.length - 1].node;\n if (parent.children) {\n parent.children.push(node);\n } else {\n parent.children = [node];\n }\n }\n if (item.type !== \"Leaf\") {\n stack.push({ node, level: item.level });\n }\n });\n return root;\n}\n__name(buildHierarchy, \"buildHierarchy\");\n\n// src/diagrams/treemap/parser.ts\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n const items = [];\n for (const row of ast.TreemapRows ?? []) {\n if (row.$type === \"ClassDefStatement\") {\n db.addClass(row.className ?? \"\", row.styleText ?? \"\");\n }\n }\n for (const row of ast.TreemapRows ?? []) {\n const item = row.item;\n if (!item) {\n continue;\n }\n const level = row.indent ? parseInt(row.indent) : 0;\n const name = getItemName(item);\n const styles = item.classSelector ? db.getStylesForClass(item.classSelector) : [];\n const cssCompiledStyles = styles.length > 0 ? styles.join(\";\") : void 0;\n const itemData = {\n level,\n name,\n type: item.$type,\n value: item.value,\n classSelector: item.classSelector,\n cssCompiledStyles\n };\n items.push(itemData);\n }\n const hierarchyNodes = buildHierarchy(items);\n const addNodesRecursively = /* @__PURE__ */ __name((nodes, level) => {\n for (const node of nodes) {\n db.addNode(node, level);\n if (node.children && node.children.length > 0) {\n addNodesRecursively(node.children, level + 1);\n }\n }\n }, \"addNodesRecursively\");\n addNodesRecursively(hierarchyNodes, 0);\n}, \"populate\");\nvar getItemName = /* @__PURE__ */ __name((item) => {\n return item.name ? String(item.name) : \"\";\n}, \"getItemName\");\nvar parser = {\n // @ts-expect-error - TreeMapDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (text) => {\n try {\n const parseFunc = parse;\n const ast = await parseFunc(\"treemap\", text);\n log.debug(\"Treemap AST:\", ast);\n const db = parser.parser?.yy;\n if (!(db instanceof TreeMapDB)) {\n throw new Error(\n \"parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n populate(ast, db);\n } catch (error) {\n log.error(\"Error parsing treemap:\", error);\n throw error;\n }\n }, \"parse\")\n};\n\n// src/diagrams/treemap/renderer.ts\nimport { scaleOrdinal, treemap, hierarchy, format, select } from \"d3\";\nvar DEFAULT_INNER_PADDING = 10;\nvar SECTION_INNER_PADDING = 10;\nvar SECTION_HEADER_HEIGHT = 25;\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const treemapDb = diagram2.db;\n const config = treemapDb.getConfig();\n const treemapInnerPadding = config.padding ?? DEFAULT_INNER_PADDING;\n const title = treemapDb.getDiagramTitle();\n const root = treemapDb.getRoot();\n const { themeVariables } = getConfig();\n if (!root) {\n return;\n }\n const titleHeight = title ? 30 : 0;\n const svg = selectSvgElement(id);\n const width = config.nodeWidth ? config.nodeWidth * SECTION_INNER_PADDING : 960;\n const height = config.nodeHeight ? config.nodeHeight * SECTION_INNER_PADDING : 500;\n const svgWidth = width;\n const svgHeight = height + titleHeight;\n svg.attr(\"viewBox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n let valueFormat;\n try {\n const formatStr = config.valueFormat || \",\";\n if (formatStr === \"$0,0\") {\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\")(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\") && formatStr.includes(\",\")) {\n const precision = /\\.\\d+/.exec(formatStr);\n const precisionStr = precision ? precision[0] : \"\";\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\" + precisionStr)(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\")) {\n const restOfFormat = formatStr.substring(1);\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(restOfFormat || \"\")(value), \"valueFormat\");\n } else {\n valueFormat = format(formatStr);\n }\n } catch (error) {\n log.error(\"Error creating format function:\", error);\n valueFormat = format(\",\");\n }\n const colorScale = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScale0,\n themeVariables.cScale1,\n themeVariables.cScale2,\n themeVariables.cScale3,\n themeVariables.cScale4,\n themeVariables.cScale5,\n themeVariables.cScale6,\n themeVariables.cScale7,\n themeVariables.cScale8,\n themeVariables.cScale9,\n themeVariables.cScale10,\n themeVariables.cScale11\n ]);\n const colorScalePeer = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScalePeer0,\n themeVariables.cScalePeer1,\n themeVariables.cScalePeer2,\n themeVariables.cScalePeer3,\n themeVariables.cScalePeer4,\n themeVariables.cScalePeer5,\n themeVariables.cScalePeer6,\n themeVariables.cScalePeer7,\n themeVariables.cScalePeer8,\n themeVariables.cScalePeer9,\n themeVariables.cScalePeer10,\n themeVariables.cScalePeer11\n ]);\n const colorScaleLabel = scaleOrdinal().range([\n themeVariables.cScaleLabel0,\n themeVariables.cScaleLabel1,\n themeVariables.cScaleLabel2,\n themeVariables.cScaleLabel3,\n themeVariables.cScaleLabel4,\n themeVariables.cScaleLabel5,\n themeVariables.cScaleLabel6,\n themeVariables.cScaleLabel7,\n themeVariables.cScaleLabel8,\n themeVariables.cScaleLabel9,\n themeVariables.cScaleLabel10,\n themeVariables.cScaleLabel11\n ]);\n if (title) {\n svg.append(\"text\").attr(\"x\", svgWidth / 2).attr(\"y\", titleHeight / 2).attr(\"class\", \"treemapTitle\").attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").text(title);\n }\n const g = svg.append(\"g\").attr(\"transform\", `translate(0, ${titleHeight})`).attr(\"class\", \"treemapContainer\");\n const hierarchyRoot = hierarchy(root).sum((d) => d.value ?? 0).sort((a, b) => (b.value ?? 0) - (a.value ?? 0));\n const treemapLayout = treemap().size([width, height]).paddingTop(\n (d) => d.children && d.children.length > 0 ? SECTION_HEADER_HEIGHT + SECTION_INNER_PADDING : 0\n ).paddingInner(treemapInnerPadding).paddingLeft((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingRight((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingBottom((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).round(true);\n const treemapData = treemapLayout(hierarchyRoot);\n const branchNodes = treemapData.descendants().filter((d) => d.children && d.children.length > 0);\n const sections = g.selectAll(\".treemapSection\").data(branchNodes).enter().append(\"g\").attr(\"class\", \"treemapSection\").attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", SECTION_HEADER_HEIGHT).attr(\"class\", \"treemapSectionHeader\").attr(\"fill\", \"none\").attr(\"fill-opacity\", 0.6).attr(\"stroke-width\", 0.6).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n return \"\";\n });\n sections.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-section-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 12)).attr(\"height\", SECTION_HEADER_HEIGHT);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", (_d, i) => {\n return `treemapSection section${i}`;\n }).attr(\"fill\", (d) => colorScale(d.data.name)).attr(\"fill-opacity\", 0.6).attr(\"stroke\", (d) => colorScalePeer(d.data.name)).attr(\"stroke-width\", 2).attr(\"stroke-opacity\", 0.4).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles + \";\" + styles.borderStyles.join(\";\");\n });\n sections.append(\"text\").attr(\"class\", \"treemapSectionLabel\").attr(\"x\", 6).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"dominant-baseline\", \"middle\").text((d) => d.depth === 0 ? \"\" : d.data.name).attr(\"font-weight\", \"bold\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"dominant-baseline: middle; font-size: 12px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).each(function(d) {\n if (d.depth === 0) {\n return;\n }\n const self = select(this);\n const originalText = d.data.name;\n self.text(originalText);\n const totalHeaderWidth = d.x1 - d.x0;\n const labelXPosition = 6;\n let spaceForTextContent;\n if (config.showValues !== false && d.value) {\n const valueEndsAtXRelative = totalHeaderWidth - 10;\n const estimatedValueTextActualWidth = 30;\n const gapBetweenLabelAndValue = 10;\n const labelMustEndBeforeX = valueEndsAtXRelative - estimatedValueTextActualWidth - gapBetweenLabelAndValue;\n spaceForTextContent = labelMustEndBeforeX - labelXPosition;\n } else {\n const labelOwnRightPadding = 6;\n spaceForTextContent = totalHeaderWidth - labelXPosition - labelOwnRightPadding;\n }\n const minimumWidthToDisplay = 15;\n const actualAvailableWidth = Math.max(minimumWidthToDisplay, spaceForTextContent);\n const textNode = self.node();\n const currentTextContentLength = textNode.getComputedTextLength();\n if (currentTextContentLength > actualAvailableWidth) {\n const ellipsis = \"...\";\n let currentTruncatedText = originalText;\n while (currentTruncatedText.length > 0) {\n currentTruncatedText = originalText.substring(0, currentTruncatedText.length - 1);\n if (currentTruncatedText.length === 0) {\n self.text(ellipsis);\n if (textNode.getComputedTextLength() > actualAvailableWidth) {\n self.text(\"\");\n }\n break;\n }\n self.text(currentTruncatedText + ellipsis);\n if (textNode.getComputedTextLength() <= actualAvailableWidth) {\n break;\n }\n }\n }\n });\n if (config.showValues !== false) {\n sections.append(\"text\").attr(\"class\", \"treemapSectionValue\").attr(\"x\", (d) => d.x1 - d.x0 - 10).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"text-anchor\", \"end\").attr(\"dominant-baseline\", \"middle\").text((d) => d.value ? valueFormat(d.value) : \"\").attr(\"font-style\", \"italic\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n });\n }\n const leafNodes = treemapData.leaves();\n const cell = g.selectAll(\".treemapLeafGroup\").data(leafNodes).enter().append(\"g\").attr(\"class\", (d, i) => {\n return `treemapNode treemapLeafGroup leaf${i}${d.data.classSelector ? ` ${d.data.classSelector}` : \"\"}x`;\n }).attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n cell.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", \"treemapLeaf\").attr(\"fill\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"style\", (d) => {\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles;\n }).attr(\"fill-opacity\", 0.3).attr(\"stroke\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"stroke-width\", 3);\n cell.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 4)).attr(\"height\", (d) => Math.max(0, d.y1 - d.y0 - 4));\n const leafLabels = cell.append(\"text\").attr(\"class\", \"treemapLabel\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", (d) => (d.y1 - d.y0) / 2).attr(\"style\", (d) => {\n const labelStyles = \"text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:\" + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.data.name);\n leafLabels.each(function(d) {\n const self = select(this);\n const nodeWidth = d.x1 - d.x0;\n const nodeHeight = d.y1 - d.y0;\n const textNode = self.node();\n const padding = 4;\n const availableWidth = nodeWidth - 2 * padding;\n const availableHeight = nodeHeight - 2 * padding;\n if (availableWidth < 10 || availableHeight < 10) {\n self.style(\"display\", \"none\");\n return;\n }\n let currentLabelFontSize = parseInt(self.style(\"font-size\"), 10);\n const minLabelFontSize = 8;\n const originalValueRelFontSize = 28;\n const valueScaleFactor = 0.6;\n const minValueFontSize = 6;\n const spacingBetweenLabelAndValue = 2;\n while (textNode.getComputedTextLength() > availableWidth && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n }\n let prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n let combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n while (combinedHeight > availableHeight && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n if (prospectiveValueFontSize < minValueFontSize && currentLabelFontSize === minLabelFontSize) {\n break;\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n if (prospectiveValueFontSize <= minValueFontSize && combinedHeight > availableHeight) {\n }\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n if (textNode.getComputedTextLength() > availableWidth || currentLabelFontSize < minLabelFontSize || availableHeight < currentLabelFontSize) {\n self.style(\"display\", \"none\");\n }\n });\n if (config.showValues !== false) {\n const leafValues = cell.append(\"text\").attr(\"class\", \"treemapValue\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", function(d) {\n return (d.y1 - d.y0) / 2;\n }).attr(\"style\", (d) => {\n const labelStyles = \"text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:\" + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.value ? valueFormat(d.value) : \"\");\n leafValues.each(function(d) {\n const valueTextElement = select(this);\n const parentCellNode = this.parentNode;\n if (!parentCellNode) {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const labelElement = select(parentCellNode).select(\".treemapLabel\");\n if (labelElement.empty() || labelElement.style(\"display\") === \"none\") {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const finalLabelFontSize = parseFloat(labelElement.style(\"font-size\"));\n const originalValueFontSize = 28;\n const valueScaleFactor = 0.6;\n const minValueFontSize = 6;\n const spacingBetweenLabelAndValue = 2;\n const actualValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueFontSize, Math.round(finalLabelFontSize * valueScaleFactor))\n );\n valueTextElement.style(\"font-size\", `${actualValueFontSize}px`);\n const labelCenterY = (d.y1 - d.y0) / 2;\n const valueTopActualY = labelCenterY + finalLabelFontSize / 2 + spacingBetweenLabelAndValue;\n valueTextElement.attr(\"y\", valueTopActualY);\n const nodeWidth = d.x1 - d.x0;\n const nodeTotalHeight = d.y1 - d.y0;\n const cellBottomPadding = 4;\n const maxValueBottomY = nodeTotalHeight - cellBottomPadding;\n const availableWidthForValue = nodeWidth - 2 * 4;\n if (valueTextElement.node().getComputedTextLength() > availableWidthForValue || valueTopActualY + actualValueFontSize > maxValueBottomY || actualValueFontSize < minValueFontSize) {\n valueTextElement.style(\"display\", \"none\");\n } else {\n valueTextElement.style(\"display\", null);\n }\n });\n }\n const diagramPadding = config.diagramPadding ?? 8;\n setupViewPortForSVG(svg, diagramPadding, \"flowchart\", config?.useMaxWidth || false);\n}, \"draw\");\nvar getClasses = /* @__PURE__ */ __name(function(_text, diagramObj) {\n return diagramObj.db.getClasses();\n}, \"getClasses\");\nvar renderer = { draw, getClasses };\n\n// src/diagrams/treemap/styles.ts\nvar defaultTreemapStyleOptions = {\n sectionStrokeColor: \"black\",\n sectionStrokeWidth: \"1\",\n sectionFillColor: \"#efefef\",\n leafStrokeColor: \"black\",\n leafStrokeWidth: \"1\",\n leafFillColor: \"#efefef\",\n labelColor: \"black\",\n labelFontSize: \"12px\",\n valueFontSize: \"10px\",\n valueColor: \"black\",\n titleColor: \"black\",\n titleFontSize: \"14px\"\n};\nvar getStyles = /* @__PURE__ */ __name(({\n treemap: treemap2\n} = {}) => {\n const options = cleanAndMerge(defaultTreemapStyleOptions, treemap2);\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: ${options.labelColor};\n font-size: ${options.labelFontSize};\n }\n .treemapValue {\n fill: ${options.valueColor};\n font-size: ${options.valueFontSize};\n }\n .treemapTitle {\n fill: ${options.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":["squarify","treemap","scaleOrdinal"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]}
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
import { _ as __name, s as setAccDescription, g as getAccDescription, q as getDiagramTitle, p as setDiagramTitle, a as getAccTitle, b as setAccTitle, H as selectSvgElement, y as clear, D as cleanAndMerge, E as getConfig, F as defaultConfig_default, l as log, K as getThemeVariables3 } from "./index-BS6HnGzC.js";
|
|
2
|
+
import { p as populateCommonDb } from "./chunk-4BX2VUAB-qCIn5Iic.js";
|
|
3
|
+
import { p as parse } from "./treemap-KMMF4GRG-DAGDLhj2.js";
|
|
4
|
+
import "./min-B3oVH3AC.js";
|
|
5
|
+
import "./_baseUniq-Crfl3d5Y.js";
|
|
6
|
+
var defaultOptions = {
|
|
7
|
+
showLegend: true,
|
|
8
|
+
ticks: 5,
|
|
9
|
+
max: null,
|
|
10
|
+
min: 0,
|
|
11
|
+
graticule: "circle"
|
|
12
|
+
};
|
|
13
|
+
var defaultRadarData = {
|
|
14
|
+
axes: [],
|
|
15
|
+
curves: [],
|
|
16
|
+
options: defaultOptions
|
|
17
|
+
};
|
|
18
|
+
var data = structuredClone(defaultRadarData);
|
|
19
|
+
var DEFAULT_RADAR_CONFIG = defaultConfig_default.radar;
|
|
20
|
+
var getConfig2 = /* @__PURE__ */ __name(() => {
|
|
21
|
+
const config = cleanAndMerge({
|
|
22
|
+
...DEFAULT_RADAR_CONFIG,
|
|
23
|
+
...getConfig().radar
|
|
24
|
+
});
|
|
25
|
+
return config;
|
|
26
|
+
}, "getConfig");
|
|
27
|
+
var getAxes = /* @__PURE__ */ __name(() => data.axes, "getAxes");
|
|
28
|
+
var getCurves = /* @__PURE__ */ __name(() => data.curves, "getCurves");
|
|
29
|
+
var getOptions = /* @__PURE__ */ __name(() => data.options, "getOptions");
|
|
30
|
+
var setAxes = /* @__PURE__ */ __name((axes) => {
|
|
31
|
+
data.axes = axes.map((axis) => {
|
|
32
|
+
return {
|
|
33
|
+
name: axis.name,
|
|
34
|
+
label: axis.label ?? axis.name
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
}, "setAxes");
|
|
38
|
+
var setCurves = /* @__PURE__ */ __name((curves) => {
|
|
39
|
+
data.curves = curves.map((curve) => {
|
|
40
|
+
return {
|
|
41
|
+
name: curve.name,
|
|
42
|
+
label: curve.label ?? curve.name,
|
|
43
|
+
entries: computeCurveEntries(curve.entries)
|
|
44
|
+
};
|
|
45
|
+
});
|
|
46
|
+
}, "setCurves");
|
|
47
|
+
var computeCurveEntries = /* @__PURE__ */ __name((entries) => {
|
|
48
|
+
if (entries[0].axis == void 0) {
|
|
49
|
+
return entries.map((entry) => entry.value);
|
|
50
|
+
}
|
|
51
|
+
const axes = getAxes();
|
|
52
|
+
if (axes.length === 0) {
|
|
53
|
+
throw new Error("Axes must be populated before curves for reference entries");
|
|
54
|
+
}
|
|
55
|
+
return axes.map((axis) => {
|
|
56
|
+
const entry = entries.find((entry2) => entry2.axis?.$refText === axis.name);
|
|
57
|
+
if (entry === void 0) {
|
|
58
|
+
throw new Error("Missing entry for axis " + axis.label);
|
|
59
|
+
}
|
|
60
|
+
return entry.value;
|
|
61
|
+
});
|
|
62
|
+
}, "computeCurveEntries");
|
|
63
|
+
var setOptions = /* @__PURE__ */ __name((options) => {
|
|
64
|
+
const optionMap = options.reduce(
|
|
65
|
+
(acc, option) => {
|
|
66
|
+
acc[option.name] = option;
|
|
67
|
+
return acc;
|
|
68
|
+
},
|
|
69
|
+
{}
|
|
70
|
+
);
|
|
71
|
+
data.options = {
|
|
72
|
+
showLegend: optionMap.showLegend?.value ?? defaultOptions.showLegend,
|
|
73
|
+
ticks: optionMap.ticks?.value ?? defaultOptions.ticks,
|
|
74
|
+
max: optionMap.max?.value ?? defaultOptions.max,
|
|
75
|
+
min: optionMap.min?.value ?? defaultOptions.min,
|
|
76
|
+
graticule: optionMap.graticule?.value ?? defaultOptions.graticule
|
|
77
|
+
};
|
|
78
|
+
}, "setOptions");
|
|
79
|
+
var clear2 = /* @__PURE__ */ __name(() => {
|
|
80
|
+
clear();
|
|
81
|
+
data = structuredClone(defaultRadarData);
|
|
82
|
+
}, "clear");
|
|
83
|
+
var db = {
|
|
84
|
+
getAxes,
|
|
85
|
+
getCurves,
|
|
86
|
+
getOptions,
|
|
87
|
+
setAxes,
|
|
88
|
+
setCurves,
|
|
89
|
+
setOptions,
|
|
90
|
+
getConfig: getConfig2,
|
|
91
|
+
clear: clear2,
|
|
92
|
+
setAccTitle,
|
|
93
|
+
getAccTitle,
|
|
94
|
+
setDiagramTitle,
|
|
95
|
+
getDiagramTitle,
|
|
96
|
+
getAccDescription,
|
|
97
|
+
setAccDescription
|
|
98
|
+
};
|
|
99
|
+
var populate = /* @__PURE__ */ __name((ast) => {
|
|
100
|
+
populateCommonDb(ast, db);
|
|
101
|
+
const { axes, curves, options } = ast;
|
|
102
|
+
db.setAxes(axes);
|
|
103
|
+
db.setCurves(curves);
|
|
104
|
+
db.setOptions(options);
|
|
105
|
+
}, "populate");
|
|
106
|
+
var parser = {
|
|
107
|
+
parse: /* @__PURE__ */ __name(async (input) => {
|
|
108
|
+
const ast = await parse("radar", input);
|
|
109
|
+
log.debug(ast);
|
|
110
|
+
populate(ast);
|
|
111
|
+
}, "parse")
|
|
112
|
+
};
|
|
113
|
+
var draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {
|
|
114
|
+
const db2 = diagram2.db;
|
|
115
|
+
const axes = db2.getAxes();
|
|
116
|
+
const curves = db2.getCurves();
|
|
117
|
+
const options = db2.getOptions();
|
|
118
|
+
const config = db2.getConfig();
|
|
119
|
+
const title = db2.getDiagramTitle();
|
|
120
|
+
const svg = selectSvgElement(id);
|
|
121
|
+
const g = drawFrame(svg, config);
|
|
122
|
+
const maxValue = options.max ?? Math.max(...curves.map((curve) => Math.max(...curve.entries)));
|
|
123
|
+
const minValue = options.min;
|
|
124
|
+
const radius = Math.min(config.width, config.height) / 2;
|
|
125
|
+
drawGraticule(g, axes, radius, options.ticks, options.graticule);
|
|
126
|
+
drawAxes(g, axes, radius, config);
|
|
127
|
+
drawCurves(g, axes, curves, minValue, maxValue, options.graticule, config);
|
|
128
|
+
drawLegend(g, curves, options.showLegend, config);
|
|
129
|
+
g.append("text").attr("class", "radarTitle").text(title).attr("x", 0).attr("y", -config.height / 2 - config.marginTop);
|
|
130
|
+
}, "draw");
|
|
131
|
+
var drawFrame = /* @__PURE__ */ __name((svg, config) => {
|
|
132
|
+
const totalWidth = config.width + config.marginLeft + config.marginRight;
|
|
133
|
+
const totalHeight = config.height + config.marginTop + config.marginBottom;
|
|
134
|
+
const center = {
|
|
135
|
+
x: config.marginLeft + config.width / 2,
|
|
136
|
+
y: config.marginTop + config.height / 2
|
|
137
|
+
};
|
|
138
|
+
svg.attr("viewbox", `0 0 ${totalWidth} ${totalHeight}`).attr("width", totalWidth).attr("height", totalHeight);
|
|
139
|
+
return svg.append("g").attr("transform", `translate(${center.x}, ${center.y})`);
|
|
140
|
+
}, "drawFrame");
|
|
141
|
+
var drawGraticule = /* @__PURE__ */ __name((g, axes, radius, ticks, graticule) => {
|
|
142
|
+
if (graticule === "circle") {
|
|
143
|
+
for (let i = 0; i < ticks; i++) {
|
|
144
|
+
const r = radius * (i + 1) / ticks;
|
|
145
|
+
g.append("circle").attr("r", r).attr("class", "radarGraticule");
|
|
146
|
+
}
|
|
147
|
+
} else if (graticule === "polygon") {
|
|
148
|
+
const numAxes = axes.length;
|
|
149
|
+
for (let i = 0; i < ticks; i++) {
|
|
150
|
+
const r = radius * (i + 1) / ticks;
|
|
151
|
+
const points = axes.map((_, j) => {
|
|
152
|
+
const angle = 2 * j * Math.PI / numAxes - Math.PI / 2;
|
|
153
|
+
const x = r * Math.cos(angle);
|
|
154
|
+
const y = r * Math.sin(angle);
|
|
155
|
+
return `${x},${y}`;
|
|
156
|
+
}).join(" ");
|
|
157
|
+
g.append("polygon").attr("points", points).attr("class", "radarGraticule");
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}, "drawGraticule");
|
|
161
|
+
var drawAxes = /* @__PURE__ */ __name((g, axes, radius, config) => {
|
|
162
|
+
const numAxes = axes.length;
|
|
163
|
+
for (let i = 0; i < numAxes; i++) {
|
|
164
|
+
const label = axes[i].label;
|
|
165
|
+
const angle = 2 * i * Math.PI / numAxes - Math.PI / 2;
|
|
166
|
+
g.append("line").attr("x1", 0).attr("y1", 0).attr("x2", radius * config.axisScaleFactor * Math.cos(angle)).attr("y2", radius * config.axisScaleFactor * Math.sin(angle)).attr("class", "radarAxisLine");
|
|
167
|
+
g.append("text").text(label).attr("x", radius * config.axisLabelFactor * Math.cos(angle)).attr("y", radius * config.axisLabelFactor * Math.sin(angle)).attr("class", "radarAxisLabel");
|
|
168
|
+
}
|
|
169
|
+
}, "drawAxes");
|
|
170
|
+
function drawCurves(g, axes, curves, minValue, maxValue, graticule, config) {
|
|
171
|
+
const numAxes = axes.length;
|
|
172
|
+
const radius = Math.min(config.width, config.height) / 2;
|
|
173
|
+
curves.forEach((curve, index) => {
|
|
174
|
+
if (curve.entries.length !== numAxes) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const points = curve.entries.map((entry, i) => {
|
|
178
|
+
const angle = 2 * Math.PI * i / numAxes - Math.PI / 2;
|
|
179
|
+
const r = relativeRadius(entry, minValue, maxValue, radius);
|
|
180
|
+
const x = r * Math.cos(angle);
|
|
181
|
+
const y = r * Math.sin(angle);
|
|
182
|
+
return { x, y };
|
|
183
|
+
});
|
|
184
|
+
if (graticule === "circle") {
|
|
185
|
+
g.append("path").attr("d", closedRoundCurve(points, config.curveTension)).attr("class", `radarCurve-${index}`);
|
|
186
|
+
} else if (graticule === "polygon") {
|
|
187
|
+
g.append("polygon").attr("points", points.map((p) => `${p.x},${p.y}`).join(" ")).attr("class", `radarCurve-${index}`);
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
__name(drawCurves, "drawCurves");
|
|
192
|
+
function relativeRadius(value, minValue, maxValue, radius) {
|
|
193
|
+
const clippedValue = Math.min(Math.max(value, minValue), maxValue);
|
|
194
|
+
return radius * (clippedValue - minValue) / (maxValue - minValue);
|
|
195
|
+
}
|
|
196
|
+
__name(relativeRadius, "relativeRadius");
|
|
197
|
+
function closedRoundCurve(points, tension) {
|
|
198
|
+
const numPoints = points.length;
|
|
199
|
+
let d = `M${points[0].x},${points[0].y}`;
|
|
200
|
+
for (let i = 0; i < numPoints; i++) {
|
|
201
|
+
const p0 = points[(i - 1 + numPoints) % numPoints];
|
|
202
|
+
const p1 = points[i];
|
|
203
|
+
const p2 = points[(i + 1) % numPoints];
|
|
204
|
+
const p3 = points[(i + 2) % numPoints];
|
|
205
|
+
const cp1 = {
|
|
206
|
+
x: p1.x + (p2.x - p0.x) * tension,
|
|
207
|
+
y: p1.y + (p2.y - p0.y) * tension
|
|
208
|
+
};
|
|
209
|
+
const cp2 = {
|
|
210
|
+
x: p2.x - (p3.x - p1.x) * tension,
|
|
211
|
+
y: p2.y - (p3.y - p1.y) * tension
|
|
212
|
+
};
|
|
213
|
+
d += ` C${cp1.x},${cp1.y} ${cp2.x},${cp2.y} ${p2.x},${p2.y}`;
|
|
214
|
+
}
|
|
215
|
+
return `${d} Z`;
|
|
216
|
+
}
|
|
217
|
+
__name(closedRoundCurve, "closedRoundCurve");
|
|
218
|
+
function drawLegend(g, curves, showLegend, config) {
|
|
219
|
+
if (!showLegend) {
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
const legendX = (config.width / 2 + config.marginRight) * 3 / 4;
|
|
223
|
+
const legendY = -(config.height / 2 + config.marginTop) * 3 / 4;
|
|
224
|
+
const lineHeight = 20;
|
|
225
|
+
curves.forEach((curve, index) => {
|
|
226
|
+
const itemGroup = g.append("g").attr("transform", `translate(${legendX}, ${legendY + index * lineHeight})`);
|
|
227
|
+
itemGroup.append("rect").attr("width", 12).attr("height", 12).attr("class", `radarLegendBox-${index}`);
|
|
228
|
+
itemGroup.append("text").attr("x", 16).attr("y", 0).attr("class", "radarLegendText").text(curve.label);
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
__name(drawLegend, "drawLegend");
|
|
232
|
+
var renderer = { draw };
|
|
233
|
+
var genIndexStyles = /* @__PURE__ */ __name((themeVariables, radarOptions) => {
|
|
234
|
+
let sections = "";
|
|
235
|
+
for (let i = 0; i < themeVariables.THEME_COLOR_LIMIT; i++) {
|
|
236
|
+
const indexColor = themeVariables[`cScale${i}`];
|
|
237
|
+
sections += `
|
|
238
|
+
.radarCurve-${i} {
|
|
239
|
+
color: ${indexColor};
|
|
240
|
+
fill: ${indexColor};
|
|
241
|
+
fill-opacity: ${radarOptions.curveOpacity};
|
|
242
|
+
stroke: ${indexColor};
|
|
243
|
+
stroke-width: ${radarOptions.curveStrokeWidth};
|
|
244
|
+
}
|
|
245
|
+
.radarLegendBox-${i} {
|
|
246
|
+
fill: ${indexColor};
|
|
247
|
+
fill-opacity: ${radarOptions.curveOpacity};
|
|
248
|
+
stroke: ${indexColor};
|
|
249
|
+
}
|
|
250
|
+
`;
|
|
251
|
+
}
|
|
252
|
+
return sections;
|
|
253
|
+
}, "genIndexStyles");
|
|
254
|
+
var buildRadarStyleOptions = /* @__PURE__ */ __name((radar) => {
|
|
255
|
+
const defaultThemeVariables = getThemeVariables3();
|
|
256
|
+
const currentConfig = getConfig();
|
|
257
|
+
const themeVariables = cleanAndMerge(defaultThemeVariables, currentConfig.themeVariables);
|
|
258
|
+
const radarOptions = cleanAndMerge(themeVariables.radar, radar);
|
|
259
|
+
return { themeVariables, radarOptions };
|
|
260
|
+
}, "buildRadarStyleOptions");
|
|
261
|
+
var styles = /* @__PURE__ */ __name(({ radar } = {}) => {
|
|
262
|
+
const { themeVariables, radarOptions } = buildRadarStyleOptions(radar);
|
|
263
|
+
return `
|
|
264
|
+
.radarTitle {
|
|
265
|
+
font-size: ${themeVariables.fontSize};
|
|
266
|
+
color: ${themeVariables.titleColor};
|
|
267
|
+
dominant-baseline: hanging;
|
|
268
|
+
text-anchor: middle;
|
|
269
|
+
}
|
|
270
|
+
.radarAxisLine {
|
|
271
|
+
stroke: ${radarOptions.axisColor};
|
|
272
|
+
stroke-width: ${radarOptions.axisStrokeWidth};
|
|
273
|
+
}
|
|
274
|
+
.radarAxisLabel {
|
|
275
|
+
dominant-baseline: middle;
|
|
276
|
+
text-anchor: middle;
|
|
277
|
+
font-size: ${radarOptions.axisLabelFontSize}px;
|
|
278
|
+
color: ${radarOptions.axisColor};
|
|
279
|
+
}
|
|
280
|
+
.radarGraticule {
|
|
281
|
+
fill: ${radarOptions.graticuleColor};
|
|
282
|
+
fill-opacity: ${radarOptions.graticuleOpacity};
|
|
283
|
+
stroke: ${radarOptions.graticuleColor};
|
|
284
|
+
stroke-width: ${radarOptions.graticuleStrokeWidth};
|
|
285
|
+
}
|
|
286
|
+
.radarLegendText {
|
|
287
|
+
text-anchor: start;
|
|
288
|
+
font-size: ${radarOptions.legendFontSize}px;
|
|
289
|
+
dominant-baseline: hanging;
|
|
290
|
+
}
|
|
291
|
+
${genIndexStyles(themeVariables, radarOptions)}
|
|
292
|
+
`;
|
|
293
|
+
}, "styles");
|
|
294
|
+
var diagram = {
|
|
295
|
+
parser,
|
|
296
|
+
db,
|
|
297
|
+
renderer,
|
|
298
|
+
styles
|
|
299
|
+
};
|
|
300
|
+
export {
|
|
301
|
+
diagram
|
|
302
|
+
};
|
|
303
|
+
//# sourceMappingURL=diagram-QEK2KX5R-CF4wtMmR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagram-QEK2KX5R-CF4wtMmR.js","sources":["../../../node_modules/.pnpm/mermaid@11.12.2/node_modules/mermaid/dist/chunks/mermaid.core/diagram-QEK2KX5R.mjs"],"sourcesContent":["import {\n selectSvgElement\n} from \"./chunk-EXTU4WIE.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-S3R3BYOJ.mjs\";\nimport {\n clear,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n getThemeVariables,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ABZYJK2D.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/radar/db.ts\nvar defaultOptions = {\n showLegend: true,\n ticks: 5,\n max: null,\n min: 0,\n graticule: \"circle\"\n};\nvar defaultRadarData = {\n axes: [],\n curves: [],\n options: defaultOptions\n};\nvar data = structuredClone(defaultRadarData);\nvar DEFAULT_RADAR_CONFIG = defaultConfig_default.radar;\nvar getConfig2 = /* @__PURE__ */ __name(() => {\n const config = cleanAndMerge({\n ...DEFAULT_RADAR_CONFIG,\n ...getConfig().radar\n });\n return config;\n}, \"getConfig\");\nvar getAxes = /* @__PURE__ */ __name(() => data.axes, \"getAxes\");\nvar getCurves = /* @__PURE__ */ __name(() => data.curves, \"getCurves\");\nvar getOptions = /* @__PURE__ */ __name(() => data.options, \"getOptions\");\nvar setAxes = /* @__PURE__ */ __name((axes) => {\n data.axes = axes.map((axis) => {\n return {\n name: axis.name,\n label: axis.label ?? axis.name\n };\n });\n}, \"setAxes\");\nvar setCurves = /* @__PURE__ */ __name((curves) => {\n data.curves = curves.map((curve) => {\n return {\n name: curve.name,\n label: curve.label ?? curve.name,\n entries: computeCurveEntries(curve.entries)\n };\n });\n}, \"setCurves\");\nvar computeCurveEntries = /* @__PURE__ */ __name((entries) => {\n if (entries[0].axis == void 0) {\n return entries.map((entry) => entry.value);\n }\n const axes = getAxes();\n if (axes.length === 0) {\n throw new Error(\"Axes must be populated before curves for reference entries\");\n }\n return axes.map((axis) => {\n const entry = entries.find((entry2) => entry2.axis?.$refText === axis.name);\n if (entry === void 0) {\n throw new Error(\"Missing entry for axis \" + axis.label);\n }\n return entry.value;\n });\n}, \"computeCurveEntries\");\nvar setOptions = /* @__PURE__ */ __name((options) => {\n const optionMap = options.reduce(\n (acc, option) => {\n acc[option.name] = option;\n return acc;\n },\n {}\n );\n data.options = {\n showLegend: optionMap.showLegend?.value ?? defaultOptions.showLegend,\n ticks: optionMap.ticks?.value ?? defaultOptions.ticks,\n max: optionMap.max?.value ?? defaultOptions.max,\n min: optionMap.min?.value ?? defaultOptions.min,\n graticule: optionMap.graticule?.value ?? defaultOptions.graticule\n };\n}, \"setOptions\");\nvar clear2 = /* @__PURE__ */ __name(() => {\n clear();\n data = structuredClone(defaultRadarData);\n}, \"clear\");\nvar db = {\n getAxes,\n getCurves,\n getOptions,\n setAxes,\n setCurves,\n setOptions,\n getConfig: getConfig2,\n clear: clear2,\n setAccTitle,\n getAccTitle,\n setDiagramTitle,\n getDiagramTitle,\n getAccDescription,\n setAccDescription\n};\n\n// src/diagrams/radar/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\nvar populate = /* @__PURE__ */ __name((ast) => {\n populateCommonDb(ast, db);\n const { axes, curves, options } = ast;\n db.setAxes(axes);\n db.setCurves(curves);\n db.setOptions(options);\n}, \"populate\");\nvar parser = {\n parse: /* @__PURE__ */ __name(async (input) => {\n const ast = await parse(\"radar\", input);\n log.debug(ast);\n populate(ast);\n }, \"parse\")\n};\n\n// src/diagrams/radar/renderer.ts\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const db2 = diagram2.db;\n const axes = db2.getAxes();\n const curves = db2.getCurves();\n const options = db2.getOptions();\n const config = db2.getConfig();\n const title = db2.getDiagramTitle();\n const svg = selectSvgElement(id);\n const g = drawFrame(svg, config);\n const maxValue = options.max ?? Math.max(...curves.map((curve) => Math.max(...curve.entries)));\n const minValue = options.min;\n const radius = Math.min(config.width, config.height) / 2;\n drawGraticule(g, axes, radius, options.ticks, options.graticule);\n drawAxes(g, axes, radius, config);\n drawCurves(g, axes, curves, minValue, maxValue, options.graticule, config);\n drawLegend(g, curves, options.showLegend, config);\n g.append(\"text\").attr(\"class\", \"radarTitle\").text(title).attr(\"x\", 0).attr(\"y\", -config.height / 2 - config.marginTop);\n}, \"draw\");\nvar drawFrame = /* @__PURE__ */ __name((svg, config) => {\n const totalWidth = config.width + config.marginLeft + config.marginRight;\n const totalHeight = config.height + config.marginTop + config.marginBottom;\n const center = {\n x: config.marginLeft + config.width / 2,\n y: config.marginTop + config.height / 2\n };\n svg.attr(\"viewbox\", `0 0 ${totalWidth} ${totalHeight}`).attr(\"width\", totalWidth).attr(\"height\", totalHeight);\n return svg.append(\"g\").attr(\"transform\", `translate(${center.x}, ${center.y})`);\n}, \"drawFrame\");\nvar drawGraticule = /* @__PURE__ */ __name((g, axes, radius, ticks, graticule) => {\n if (graticule === \"circle\") {\n for (let i = 0; i < ticks; i++) {\n const r = radius * (i + 1) / ticks;\n g.append(\"circle\").attr(\"r\", r).attr(\"class\", \"radarGraticule\");\n }\n } else if (graticule === \"polygon\") {\n const numAxes = axes.length;\n for (let i = 0; i < ticks; i++) {\n const r = radius * (i + 1) / ticks;\n const points = axes.map((_, j) => {\n const angle = 2 * j * Math.PI / numAxes - Math.PI / 2;\n const x = r * Math.cos(angle);\n const y = r * Math.sin(angle);\n return `${x},${y}`;\n }).join(\" \");\n g.append(\"polygon\").attr(\"points\", points).attr(\"class\", \"radarGraticule\");\n }\n }\n}, \"drawGraticule\");\nvar drawAxes = /* @__PURE__ */ __name((g, axes, radius, config) => {\n const numAxes = axes.length;\n for (let i = 0; i < numAxes; i++) {\n const label = axes[i].label;\n const angle = 2 * i * Math.PI / numAxes - Math.PI / 2;\n g.append(\"line\").attr(\"x1\", 0).attr(\"y1\", 0).attr(\"x2\", radius * config.axisScaleFactor * Math.cos(angle)).attr(\"y2\", radius * config.axisScaleFactor * Math.sin(angle)).attr(\"class\", \"radarAxisLine\");\n g.append(\"text\").text(label).attr(\"x\", radius * config.axisLabelFactor * Math.cos(angle)).attr(\"y\", radius * config.axisLabelFactor * Math.sin(angle)).attr(\"class\", \"radarAxisLabel\");\n }\n}, \"drawAxes\");\nfunction drawCurves(g, axes, curves, minValue, maxValue, graticule, config) {\n const numAxes = axes.length;\n const radius = Math.min(config.width, config.height) / 2;\n curves.forEach((curve, index) => {\n if (curve.entries.length !== numAxes) {\n return;\n }\n const points = curve.entries.map((entry, i) => {\n const angle = 2 * Math.PI * i / numAxes - Math.PI / 2;\n const r = relativeRadius(entry, minValue, maxValue, radius);\n const x = r * Math.cos(angle);\n const y = r * Math.sin(angle);\n return { x, y };\n });\n if (graticule === \"circle\") {\n g.append(\"path\").attr(\"d\", closedRoundCurve(points, config.curveTension)).attr(\"class\", `radarCurve-${index}`);\n } else if (graticule === \"polygon\") {\n g.append(\"polygon\").attr(\"points\", points.map((p) => `${p.x},${p.y}`).join(\" \")).attr(\"class\", `radarCurve-${index}`);\n }\n });\n}\n__name(drawCurves, \"drawCurves\");\nfunction relativeRadius(value, minValue, maxValue, radius) {\n const clippedValue = Math.min(Math.max(value, minValue), maxValue);\n return radius * (clippedValue - minValue) / (maxValue - minValue);\n}\n__name(relativeRadius, \"relativeRadius\");\nfunction closedRoundCurve(points, tension) {\n const numPoints = points.length;\n let d = `M${points[0].x},${points[0].y}`;\n for (let i = 0; i < numPoints; i++) {\n const p0 = points[(i - 1 + numPoints) % numPoints];\n const p1 = points[i];\n const p2 = points[(i + 1) % numPoints];\n const p3 = points[(i + 2) % numPoints];\n const cp1 = {\n x: p1.x + (p2.x - p0.x) * tension,\n y: p1.y + (p2.y - p0.y) * tension\n };\n const cp2 = {\n x: p2.x - (p3.x - p1.x) * tension,\n y: p2.y - (p3.y - p1.y) * tension\n };\n d += ` C${cp1.x},${cp1.y} ${cp2.x},${cp2.y} ${p2.x},${p2.y}`;\n }\n return `${d} Z`;\n}\n__name(closedRoundCurve, \"closedRoundCurve\");\nfunction drawLegend(g, curves, showLegend, config) {\n if (!showLegend) {\n return;\n }\n const legendX = (config.width / 2 + config.marginRight) * 3 / 4;\n const legendY = -(config.height / 2 + config.marginTop) * 3 / 4;\n const lineHeight = 20;\n curves.forEach((curve, index) => {\n const itemGroup = g.append(\"g\").attr(\"transform\", `translate(${legendX}, ${legendY + index * lineHeight})`);\n itemGroup.append(\"rect\").attr(\"width\", 12).attr(\"height\", 12).attr(\"class\", `radarLegendBox-${index}`);\n itemGroup.append(\"text\").attr(\"x\", 16).attr(\"y\", 0).attr(\"class\", \"radarLegendText\").text(curve.label);\n });\n}\n__name(drawLegend, \"drawLegend\");\nvar renderer = { draw };\n\n// src/diagrams/radar/styles.ts\nvar genIndexStyles = /* @__PURE__ */ __name((themeVariables, radarOptions) => {\n let sections = \"\";\n for (let i = 0; i < themeVariables.THEME_COLOR_LIMIT; i++) {\n const indexColor = themeVariables[`cScale${i}`];\n sections += `\n\t\t.radarCurve-${i} {\n\t\t\tcolor: ${indexColor};\n\t\t\tfill: ${indexColor};\n\t\t\tfill-opacity: ${radarOptions.curveOpacity};\n\t\t\tstroke: ${indexColor};\n\t\t\tstroke-width: ${radarOptions.curveStrokeWidth};\n\t\t}\n\t\t.radarLegendBox-${i} {\n\t\t\tfill: ${indexColor};\n\t\t\tfill-opacity: ${radarOptions.curveOpacity};\n\t\t\tstroke: ${indexColor};\n\t\t}\n\t\t`;\n }\n return sections;\n}, \"genIndexStyles\");\nvar buildRadarStyleOptions = /* @__PURE__ */ __name((radar) => {\n const defaultThemeVariables = getThemeVariables();\n const currentConfig = getConfig();\n const themeVariables = cleanAndMerge(defaultThemeVariables, currentConfig.themeVariables);\n const radarOptions = cleanAndMerge(themeVariables.radar, radar);\n return { themeVariables, radarOptions };\n}, \"buildRadarStyleOptions\");\nvar styles = /* @__PURE__ */ __name(({ radar } = {}) => {\n const { themeVariables, radarOptions } = buildRadarStyleOptions(radar);\n return `\n\t.radarTitle {\n\t\tfont-size: ${themeVariables.fontSize};\n\t\tcolor: ${themeVariables.titleColor};\n\t\tdominant-baseline: hanging;\n\t\ttext-anchor: middle;\n\t}\n\t.radarAxisLine {\n\t\tstroke: ${radarOptions.axisColor};\n\t\tstroke-width: ${radarOptions.axisStrokeWidth};\n\t}\n\t.radarAxisLabel {\n\t\tdominant-baseline: middle;\n\t\ttext-anchor: middle;\n\t\tfont-size: ${radarOptions.axisLabelFontSize}px;\n\t\tcolor: ${radarOptions.axisColor};\n\t}\n\t.radarGraticule {\n\t\tfill: ${radarOptions.graticuleColor};\n\t\tfill-opacity: ${radarOptions.graticuleOpacity};\n\t\tstroke: ${radarOptions.graticuleColor};\n\t\tstroke-width: ${radarOptions.graticuleStrokeWidth};\n\t}\n\t.radarLegendText {\n\t\ttext-anchor: start;\n\t\tfont-size: ${radarOptions.legendFontSize}px;\n\t\tdominant-baseline: hanging;\n\t}\n\t${genIndexStyles(themeVariables, radarOptions)}\n\t`;\n}, \"styles\");\n\n// src/diagrams/radar/diagram.ts\nvar diagram = {\n parser,\n db,\n renderer,\n styles\n};\nexport {\n diagram\n};\n"],"names":["getThemeVariables"],"mappings":"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","x_google_ignoreList":[0]}
|