@zettelgeist/cli 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 +202 -0
- package/README.md +64 -0
- package/dist/bin.js +2211 -0
- package/dist/bin.js.map +7 -0
- package/dist/templates/export.html +27 -0
- package/dist/templates/skill/SKILL.md +220 -0
- package/dist/viewer-bundle/architecture-YZFGNWBL-W2K3EQOM.js +14 -0
- package/dist/viewer-bundle/architecture-YZFGNWBL-W2K3EQOM.js.map +7 -0
- package/dist/viewer-bundle/architectureDiagram-Q4EWVU46-LCGRUEWT.js +8884 -0
- package/dist/viewer-bundle/architectureDiagram-Q4EWVU46-LCGRUEWT.js.map +7 -0
- package/dist/viewer-bundle/base.css +248 -0
- package/dist/viewer-bundle/blockDiagram-DXYQGD6D-KAM7BOAP.js +3777 -0
- package/dist/viewer-bundle/blockDiagram-DXYQGD6D-KAM7BOAP.js.map +7 -0
- package/dist/viewer-bundle/board.css +370 -0
- package/dist/viewer-bundle/c4Diagram-AHTNJAMY-C3FIQYXA.js +2596 -0
- package/dist/viewer-bundle/c4Diagram-AHTNJAMY-C3FIQYXA.js.map +7 -0
- package/dist/viewer-bundle/chunk-2QXGXAO5.js +68 -0
- package/dist/viewer-bundle/chunk-2QXGXAO5.js.map +7 -0
- package/dist/viewer-bundle/chunk-5PZT7VUU.js +67 -0
- package/dist/viewer-bundle/chunk-5PZT7VUU.js.map +7 -0
- package/dist/viewer-bundle/chunk-5YJCJF2C.js +112 -0
- package/dist/viewer-bundle/chunk-5YJCJF2C.js.map +7 -0
- package/dist/viewer-bundle/chunk-6LYV7PBV.js +1011 -0
- package/dist/viewer-bundle/chunk-6LYV7PBV.js.map +7 -0
- package/dist/viewer-bundle/chunk-6VW7D5WX.js +48 -0
- package/dist/viewer-bundle/chunk-6VW7D5WX.js.map +7 -0
- package/dist/viewer-bundle/chunk-76C5OSD4.js +2048 -0
- package/dist/viewer-bundle/chunk-76C5OSD4.js.map +7 -0
- package/dist/viewer-bundle/chunk-7NZMPQDX.js +6957 -0
- package/dist/viewer-bundle/chunk-7NZMPQDX.js.map +7 -0
- package/dist/viewer-bundle/chunk-A634GTZN.js +122 -0
- package/dist/viewer-bundle/chunk-A634GTZN.js.map +7 -0
- package/dist/viewer-bundle/chunk-AJQJUKMU.js +133 -0
- package/dist/viewer-bundle/chunk-AJQJUKMU.js.map +7 -0
- package/dist/viewer-bundle/chunk-BM2KPNFW.js +5556 -0
- package/dist/viewer-bundle/chunk-BM2KPNFW.js.map +7 -0
- package/dist/viewer-bundle/chunk-CIDUOCCG.js +25 -0
- package/dist/viewer-bundle/chunk-CIDUOCCG.js.map +7 -0
- package/dist/viewer-bundle/chunk-CZHJHAOR.js +6397 -0
- package/dist/viewer-bundle/chunk-CZHJHAOR.js.map +7 -0
- package/dist/viewer-bundle/chunk-D5RLIWY4.js +125 -0
- package/dist/viewer-bundle/chunk-D5RLIWY4.js.map +7 -0
- package/dist/viewer-bundle/chunk-DI52DQAC.js +44 -0
- package/dist/viewer-bundle/chunk-DI52DQAC.js.map +7 -0
- package/dist/viewer-bundle/chunk-EXJQLTIV.js +51 -0
- package/dist/viewer-bundle/chunk-EXJQLTIV.js.map +7 -0
- package/dist/viewer-bundle/chunk-G3PPZWPW.js +96 -0
- package/dist/viewer-bundle/chunk-G3PPZWPW.js.map +7 -0
- package/dist/viewer-bundle/chunk-GTW4IDD4.js +30297 -0
- package/dist/viewer-bundle/chunk-GTW4IDD4.js.map +7 -0
- package/dist/viewer-bundle/chunk-GVE7OA3Z.js +59 -0
- package/dist/viewer-bundle/chunk-GVE7OA3Z.js.map +7 -0
- package/dist/viewer-bundle/chunk-JBUVKVPY.js +2042 -0
- package/dist/viewer-bundle/chunk-JBUVKVPY.js.map +7 -0
- package/dist/viewer-bundle/chunk-JQLVOAQB.js +20 -0
- package/dist/viewer-bundle/chunk-JQLVOAQB.js.map +7 -0
- package/dist/viewer-bundle/chunk-LQMQSYLO.js +101 -0
- package/dist/viewer-bundle/chunk-LQMQSYLO.js.map +7 -0
- package/dist/viewer-bundle/chunk-MBFAQ3IK.js +34 -0
- package/dist/viewer-bundle/chunk-MBFAQ3IK.js.map +7 -0
- package/dist/viewer-bundle/chunk-N7G7IIKG.js +25 -0
- package/dist/viewer-bundle/chunk-N7G7IIKG.js.map +7 -0
- package/dist/viewer-bundle/chunk-NW4YG3NS.js +171 -0
- package/dist/viewer-bundle/chunk-NW4YG3NS.js.map +7 -0
- package/dist/viewer-bundle/chunk-ODEP5TKB.js +61 -0
- package/dist/viewer-bundle/chunk-ODEP5TKB.js.map +7 -0
- package/dist/viewer-bundle/chunk-OGKINV23.js +1050 -0
- package/dist/viewer-bundle/chunk-OGKINV23.js.map +7 -0
- package/dist/viewer-bundle/chunk-OGMSNDVH.js +1994 -0
- package/dist/viewer-bundle/chunk-OGMSNDVH.js.map +7 -0
- package/dist/viewer-bundle/chunk-QJVSDNAW.js +25 -0
- package/dist/viewer-bundle/chunk-QJVSDNAW.js.map +7 -0
- package/dist/viewer-bundle/chunk-RBTT26R4.js +2721 -0
- package/dist/viewer-bundle/chunk-RBTT26R4.js.map +7 -0
- package/dist/viewer-bundle/chunk-RQIPIIE2.js +48 -0
- package/dist/viewer-bundle/chunk-RQIPIIE2.js.map +7 -0
- package/dist/viewer-bundle/chunk-SRTYTXTX.js +22 -0
- package/dist/viewer-bundle/chunk-SRTYTXTX.js.map +7 -0
- package/dist/viewer-bundle/chunk-TRL7YIZG.js +1663 -0
- package/dist/viewer-bundle/chunk-TRL7YIZG.js.map +7 -0
- package/dist/viewer-bundle/chunk-U5T7X4BV.js +172 -0
- package/dist/viewer-bundle/chunk-U5T7X4BV.js.map +7 -0
- package/dist/viewer-bundle/chunk-UCAW6C6C.js +48 -0
- package/dist/viewer-bundle/chunk-UCAW6C6C.js.map +7 -0
- package/dist/viewer-bundle/chunk-UEAG4BJQ.js +93 -0
- package/dist/viewer-bundle/chunk-UEAG4BJQ.js.map +7 -0
- package/dist/viewer-bundle/chunk-UVRE3R6A.js +1039 -0
- package/dist/viewer-bundle/chunk-UVRE3R6A.js.map +7 -0
- package/dist/viewer-bundle/chunk-VODO7SV4.js +25029 -0
- package/dist/viewer-bundle/chunk-VODO7SV4.js.map +7 -0
- package/dist/viewer-bundle/chunk-YEU62MVS.js +682 -0
- package/dist/viewer-bundle/chunk-YEU62MVS.js.map +7 -0
- package/dist/viewer-bundle/chunk-YFQT7PPW.js +987 -0
- package/dist/viewer-bundle/chunk-YFQT7PPW.js.map +7 -0
- package/dist/viewer-bundle/chunk-Z4G7FG27.js +48 -0
- package/dist/viewer-bundle/chunk-Z4G7FG27.js.map +7 -0
- package/dist/viewer-bundle/chunk-ZW4Y7DIF.js +2044 -0
- package/dist/viewer-bundle/chunk-ZW4Y7DIF.js.map +7 -0
- package/dist/viewer-bundle/classDiagram-6PBFFD2Q-7VKYXLUX.js +46 -0
- package/dist/viewer-bundle/classDiagram-6PBFFD2Q-7VKYXLUX.js.map +7 -0
- package/dist/viewer-bundle/classDiagram-v2-HSJHXN6E-ACCNN7EN.js +46 -0
- package/dist/viewer-bundle/classDiagram-v2-HSJHXN6E-ACCNN7EN.js.map +7 -0
- package/dist/viewer-bundle/cose-bilkent-S5V4N54A-MUJHAA34.js +5009 -0
- package/dist/viewer-bundle/cose-bilkent-S5V4N54A-MUJHAA34.js.map +7 -0
- package/dist/viewer-bundle/dagre-KV5264BT-YC5VV3WF.js +739 -0
- package/dist/viewer-bundle/dagre-KV5264BT-YC5VV3WF.js.map +7 -0
- package/dist/viewer-bundle/dark.css +13 -0
- package/dist/viewer-bundle/detail.css +539 -0
- package/dist/viewer-bundle/diagram-5BDNPKRD-RXFPVFYK.js +214 -0
- package/dist/viewer-bundle/diagram-5BDNPKRD-RXFPVFYK.js.map +7 -0
- package/dist/viewer-bundle/diagram-G4DWMVQ6-KN7CBNBQ.js +578 -0
- package/dist/viewer-bundle/diagram-G4DWMVQ6-KN7CBNBQ.js.map +7 -0
- package/dist/viewer-bundle/diagram-MMDJMWI5-ZN6TQ7ZC.js +345 -0
- package/dist/viewer-bundle/diagram-MMDJMWI5-ZN6TQ7ZC.js.map +7 -0
- package/dist/viewer-bundle/diagram-TYMM5635-MMTUJ4KA.js +255 -0
- package/dist/viewer-bundle/diagram-TYMM5635-MMTUJ4KA.js.map +7 -0
- package/dist/viewer-bundle/docs.css +88 -0
- package/dist/viewer-bundle/edit-modal-BEGC2AO6.js +176 -0
- package/dist/viewer-bundle/edit-modal-BEGC2AO6.js.map +7 -0
- package/dist/viewer-bundle/erDiagram-SMLLAGMA-TBHMLD2E.js +1349 -0
- package/dist/viewer-bundle/erDiagram-SMLLAGMA-TBHMLD2E.js.map +7 -0
- package/dist/viewer-bundle/flowDiagram-DWJPFMVM-BZHLK6QB.js +2501 -0
- package/dist/viewer-bundle/flowDiagram-DWJPFMVM-BZHLK6QB.js.map +7 -0
- package/dist/viewer-bundle/ganttDiagram-T4ZO3ILL-YBARPTQR.js +2654 -0
- package/dist/viewer-bundle/ganttDiagram-T4ZO3ILL-YBARPTQR.js.map +7 -0
- package/dist/viewer-bundle/gitGraph-7Q5UKJZL-HENKIQDX.js +14 -0
- package/dist/viewer-bundle/gitGraph-7Q5UKJZL-HENKIQDX.js.map +7 -0
- package/dist/viewer-bundle/gitGraphDiagram-UUTBAWPF-M4VV3YVA.js +1946 -0
- package/dist/viewer-bundle/gitGraphDiagram-UUTBAWPF-M4VV3YVA.js.map +7 -0
- package/dist/viewer-bundle/index.html +28 -0
- package/dist/viewer-bundle/info-OMHHGYJF-E773USRS.js +14 -0
- package/dist/viewer-bundle/info-OMHHGYJF-E773USRS.js.map +7 -0
- package/dist/viewer-bundle/infoDiagram-42DDH7IO-C7JGUXKK.js +59 -0
- package/dist/viewer-bundle/infoDiagram-42DDH7IO-C7JGUXKK.js.map +7 -0
- package/dist/viewer-bundle/ishikawaDiagram-UXIWVN3A-YBC4X4VB.js +1012 -0
- package/dist/viewer-bundle/ishikawaDiagram-UXIWVN3A-YBC4X4VB.js.map +7 -0
- package/dist/viewer-bundle/journeyDiagram-VCZTEJTY-6WKVEOOO.js +1303 -0
- package/dist/viewer-bundle/journeyDiagram-VCZTEJTY-6WKVEOOO.js.map +7 -0
- package/dist/viewer-bundle/kanban-definition-6JOO6SKY-URTTHHO4.js +1131 -0
- package/dist/viewer-bundle/kanban-definition-6JOO6SKY-URTTHHO4.js.map +7 -0
- package/dist/viewer-bundle/katex-QN5266ZE.js +14318 -0
- package/dist/viewer-bundle/katex-QN5266ZE.js.map +7 -0
- package/dist/viewer-bundle/light.css +15 -0
- package/dist/viewer-bundle/main.js +4816 -0
- package/dist/viewer-bundle/main.js.map +7 -0
- package/dist/viewer-bundle/mermaid.core-AEBXU2JK.js +1708 -0
- package/dist/viewer-bundle/mermaid.core-AEBXU2JK.js.map +7 -0
- package/dist/viewer-bundle/mindmap-definition-QFDTVHPH-KUMAMRSF.js +1277 -0
- package/dist/viewer-bundle/mindmap-definition-QFDTVHPH-KUMAMRSF.js.map +7 -0
- package/dist/viewer-bundle/packet-4T2RLAQJ-IRYWWA66.js +14 -0
- package/dist/viewer-bundle/packet-4T2RLAQJ-IRYWWA66.js.map +7 -0
- package/dist/viewer-bundle/pico.classless.min.css +4 -0
- package/dist/viewer-bundle/pie-ZZUOXDRM-JYO4VL5N.js +14 -0
- package/dist/viewer-bundle/pie-ZZUOXDRM-JYO4VL5N.js.map +7 -0
- package/dist/viewer-bundle/pieDiagram-DEJITSTG-QOEHQN3N.js +238 -0
- package/dist/viewer-bundle/pieDiagram-DEJITSTG-QOEHQN3N.js.map +7 -0
- package/dist/viewer-bundle/prompt-modal-C4LHI7BS.js +12 -0
- package/dist/viewer-bundle/prompt-modal-C4LHI7BS.js.map +7 -0
- package/dist/viewer-bundle/quadrantDiagram-34T5L4WZ-SJNPUU5N.js +1409 -0
- package/dist/viewer-bundle/quadrantDiagram-34T5L4WZ-SJNPUU5N.js.map +7 -0
- package/dist/viewer-bundle/radar-PYXPWWZC-45BRYQSB.js +14 -0
- package/dist/viewer-bundle/radar-PYXPWWZC-45BRYQSB.js.map +7 -0
- package/dist/viewer-bundle/reason-modal-MK34MQ73.js +68 -0
- package/dist/viewer-bundle/reason-modal-MK34MQ73.js.map +7 -0
- package/dist/viewer-bundle/requirementDiagram-MS252O5E-UOMT3FCC.js +1311 -0
- package/dist/viewer-bundle/requirementDiagram-MS252O5E-UOMT3FCC.js.map +7 -0
- package/dist/viewer-bundle/sankeyDiagram-XADWPNL6-LAVJ5C6A.js +1263 -0
- package/dist/viewer-bundle/sankeyDiagram-XADWPNL6-LAVJ5C6A.js.map +7 -0
- package/dist/viewer-bundle/sequenceDiagram-FGHM5R23-3IWTOUNQ.js +4655 -0
- package/dist/viewer-bundle/sequenceDiagram-FGHM5R23-3IWTOUNQ.js.map +7 -0
- package/dist/viewer-bundle/stateDiagram-FHFEXIEX-S2OVQQON.js +495 -0
- package/dist/viewer-bundle/stateDiagram-FHFEXIEX-S2OVQQON.js.map +7 -0
- package/dist/viewer-bundle/stateDiagram-v2-QKLJ7IA2-XNZ3XXSV.js +44 -0
- package/dist/viewer-bundle/stateDiagram-v2-QKLJ7IA2-XNZ3XXSV.js.map +7 -0
- package/dist/viewer-bundle/timeline-definition-GMOUNBTQ-FHVZ7MHE.js +1646 -0
- package/dist/viewer-bundle/timeline-definition-GMOUNBTQ-FHVZ7MHE.js.map +7 -0
- package/dist/viewer-bundle/treeView-SZITEDCU-RXZXNYAM.js +14 -0
- package/dist/viewer-bundle/treeView-SZITEDCU-RXZXNYAM.js.map +7 -0
- package/dist/viewer-bundle/treemap-W4RFUUIX-2IGOFSJM.js +14 -0
- package/dist/viewer-bundle/treemap-W4RFUUIX-2IGOFSJM.js.map +7 -0
- package/dist/viewer-bundle/vennDiagram-DHZGUBPP-HEAOEXEZ.js +2544 -0
- package/dist/viewer-bundle/vennDiagram-DHZGUBPP-HEAOEXEZ.js.map +7 -0
- package/dist/viewer-bundle/wardley-RL74JXVD-VSPCLOX2.js +14 -0
- package/dist/viewer-bundle/wardley-RL74JXVD-VSPCLOX2.js.map +7 -0
- package/dist/viewer-bundle/wardleyDiagram-NUSXRM2D-EBY4FG3X.js +938 -0
- package/dist/viewer-bundle/wardleyDiagram-NUSXRM2D-EBY4FG3X.js.map +7 -0
- package/dist/viewer-bundle/xychartDiagram-5P7HB3ND-SSMUQEXK.js +1952 -0
- package/dist/viewer-bundle/xychartDiagram-5P7HB3ND-SSMUQEXK.js.map +7 -0
- package/package.json +51 -0
|
@@ -0,0 +1,578 @@
|
|
|
1
|
+
import {
|
|
2
|
+
populateCommonDb
|
|
3
|
+
} from "./chunk-SRTYTXTX.js";
|
|
4
|
+
import {
|
|
5
|
+
selectSvgElement
|
|
6
|
+
} from "./chunk-N7G7IIKG.js";
|
|
7
|
+
import {
|
|
8
|
+
parse
|
|
9
|
+
} from "./chunk-UEAG4BJQ.js";
|
|
10
|
+
import "./chunk-Z4G7FG27.js";
|
|
11
|
+
import "./chunk-D5RLIWY4.js";
|
|
12
|
+
import "./chunk-EXJQLTIV.js";
|
|
13
|
+
import {
|
|
14
|
+
setupViewPortForSVG
|
|
15
|
+
} from "./chunk-MBFAQ3IK.js";
|
|
16
|
+
import "./chunk-RQIPIIE2.js";
|
|
17
|
+
import "./chunk-6VW7D5WX.js";
|
|
18
|
+
import "./chunk-GVE7OA3Z.js";
|
|
19
|
+
import "./chunk-ODEP5TKB.js";
|
|
20
|
+
import "./chunk-2QXGXAO5.js";
|
|
21
|
+
import "./chunk-UCAW6C6C.js";
|
|
22
|
+
import "./chunk-VODO7SV4.js";
|
|
23
|
+
import {
|
|
24
|
+
isLabelStyle,
|
|
25
|
+
styles2String
|
|
26
|
+
} from "./chunk-5YJCJF2C.js";
|
|
27
|
+
import "./chunk-YFQT7PPW.js";
|
|
28
|
+
import "./chunk-A634GTZN.js";
|
|
29
|
+
import {
|
|
30
|
+
cleanAndMerge
|
|
31
|
+
} from "./chunk-UVRE3R6A.js";
|
|
32
|
+
import "./chunk-G3PPZWPW.js";
|
|
33
|
+
import {
|
|
34
|
+
clear,
|
|
35
|
+
configureSvgSize,
|
|
36
|
+
defaultConfig_default,
|
|
37
|
+
getAccDescription,
|
|
38
|
+
getAccTitle,
|
|
39
|
+
getConfig,
|
|
40
|
+
getDiagramTitle,
|
|
41
|
+
getThemeVariables3,
|
|
42
|
+
setAccDescription,
|
|
43
|
+
setAccTitle,
|
|
44
|
+
setDiagramTitle
|
|
45
|
+
} from "./chunk-7NZMPQDX.js";
|
|
46
|
+
import "./chunk-YEU62MVS.js";
|
|
47
|
+
import {
|
|
48
|
+
__name,
|
|
49
|
+
format,
|
|
50
|
+
hierarchy,
|
|
51
|
+
log,
|
|
52
|
+
ordinal,
|
|
53
|
+
select_default,
|
|
54
|
+
treemap_default
|
|
55
|
+
} from "./chunk-CZHJHAOR.js";
|
|
56
|
+
import "./chunk-DI52DQAC.js";
|
|
57
|
+
|
|
58
|
+
// ../../node_modules/.pnpm/mermaid@11.14.0/node_modules/mermaid/dist/chunks/mermaid.core/diagram-G4DWMVQ6.mjs
|
|
59
|
+
var TreeMapDB = class {
|
|
60
|
+
constructor() {
|
|
61
|
+
this.nodes = [];
|
|
62
|
+
this.levels = /* @__PURE__ */ new Map();
|
|
63
|
+
this.outerNodes = [];
|
|
64
|
+
this.classes = /* @__PURE__ */ new Map();
|
|
65
|
+
this.setAccTitle = setAccTitle;
|
|
66
|
+
this.getAccTitle = getAccTitle;
|
|
67
|
+
this.setDiagramTitle = setDiagramTitle;
|
|
68
|
+
this.getDiagramTitle = getDiagramTitle;
|
|
69
|
+
this.getAccDescription = getAccDescription;
|
|
70
|
+
this.setAccDescription = setAccDescription;
|
|
71
|
+
}
|
|
72
|
+
static {
|
|
73
|
+
__name(this, "TreeMapDB");
|
|
74
|
+
}
|
|
75
|
+
getNodes() {
|
|
76
|
+
return this.nodes;
|
|
77
|
+
}
|
|
78
|
+
getConfig() {
|
|
79
|
+
const defaultConfig = defaultConfig_default;
|
|
80
|
+
const userConfig = getConfig();
|
|
81
|
+
return cleanAndMerge({
|
|
82
|
+
...defaultConfig.treemap,
|
|
83
|
+
...userConfig.treemap ?? {}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
addNode(node, level) {
|
|
87
|
+
this.nodes.push(node);
|
|
88
|
+
this.levels.set(node, level);
|
|
89
|
+
if (level === 0) {
|
|
90
|
+
this.outerNodes.push(node);
|
|
91
|
+
this.root ??= node;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
getRoot() {
|
|
95
|
+
return { name: "", children: this.outerNodes };
|
|
96
|
+
}
|
|
97
|
+
addClass(id, _style) {
|
|
98
|
+
const styleClass = this.classes.get(id) ?? { id, styles: [], textStyles: [] };
|
|
99
|
+
const styles = _style.replace(/\\,/g, "\xA7\xA7\xA7").replace(/,/g, ";").replace(/§§§/g, ",").split(";");
|
|
100
|
+
if (styles) {
|
|
101
|
+
styles.forEach((s) => {
|
|
102
|
+
if (isLabelStyle(s)) {
|
|
103
|
+
if (styleClass?.textStyles) {
|
|
104
|
+
styleClass.textStyles.push(s);
|
|
105
|
+
} else {
|
|
106
|
+
styleClass.textStyles = [s];
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (styleClass?.styles) {
|
|
110
|
+
styleClass.styles.push(s);
|
|
111
|
+
} else {
|
|
112
|
+
styleClass.styles = [s];
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
this.classes.set(id, styleClass);
|
|
117
|
+
}
|
|
118
|
+
getClasses() {
|
|
119
|
+
return this.classes;
|
|
120
|
+
}
|
|
121
|
+
getStylesForClass(classSelector) {
|
|
122
|
+
return this.classes.get(classSelector)?.styles ?? [];
|
|
123
|
+
}
|
|
124
|
+
clear() {
|
|
125
|
+
clear();
|
|
126
|
+
this.nodes = [];
|
|
127
|
+
this.levels = /* @__PURE__ */ new Map();
|
|
128
|
+
this.outerNodes = [];
|
|
129
|
+
this.classes = /* @__PURE__ */ new Map();
|
|
130
|
+
this.root = void 0;
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
function buildHierarchy(items) {
|
|
134
|
+
if (!items.length) {
|
|
135
|
+
return [];
|
|
136
|
+
}
|
|
137
|
+
const root = [];
|
|
138
|
+
const stack = [];
|
|
139
|
+
items.forEach((item) => {
|
|
140
|
+
const node = {
|
|
141
|
+
name: item.name,
|
|
142
|
+
children: item.type === "Leaf" ? void 0 : []
|
|
143
|
+
};
|
|
144
|
+
node.classSelector = item?.classSelector;
|
|
145
|
+
if (item?.cssCompiledStyles) {
|
|
146
|
+
node.cssCompiledStyles = item.cssCompiledStyles;
|
|
147
|
+
}
|
|
148
|
+
if (item.type === "Leaf" && item.value !== void 0) {
|
|
149
|
+
node.value = item.value;
|
|
150
|
+
}
|
|
151
|
+
while (stack.length > 0 && stack[stack.length - 1].level >= item.level) {
|
|
152
|
+
stack.pop();
|
|
153
|
+
}
|
|
154
|
+
if (stack.length === 0) {
|
|
155
|
+
root.push(node);
|
|
156
|
+
} else {
|
|
157
|
+
const parent = stack[stack.length - 1].node;
|
|
158
|
+
if (parent.children) {
|
|
159
|
+
parent.children.push(node);
|
|
160
|
+
} else {
|
|
161
|
+
parent.children = [node];
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
if (item.type !== "Leaf") {
|
|
165
|
+
stack.push({ node, level: item.level });
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
return root;
|
|
169
|
+
}
|
|
170
|
+
__name(buildHierarchy, "buildHierarchy");
|
|
171
|
+
var populate = /* @__PURE__ */ __name((ast, db) => {
|
|
172
|
+
populateCommonDb(ast, db);
|
|
173
|
+
const items = [];
|
|
174
|
+
for (const row of ast.TreemapRows ?? []) {
|
|
175
|
+
if (row.$type === "ClassDefStatement") {
|
|
176
|
+
db.addClass(row.className ?? "", row.styleText ?? "");
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
for (const row of ast.TreemapRows ?? []) {
|
|
180
|
+
const item = row.item;
|
|
181
|
+
if (!item) {
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
const level = row.indent ? parseInt(row.indent) : 0;
|
|
185
|
+
const name = getItemName(item);
|
|
186
|
+
const styles = item.classSelector ? db.getStylesForClass(item.classSelector) : [];
|
|
187
|
+
const cssCompiledStyles = styles.length > 0 ? styles : void 0;
|
|
188
|
+
const itemData = {
|
|
189
|
+
level,
|
|
190
|
+
name,
|
|
191
|
+
type: item.$type,
|
|
192
|
+
value: item.value,
|
|
193
|
+
classSelector: item.classSelector,
|
|
194
|
+
cssCompiledStyles
|
|
195
|
+
};
|
|
196
|
+
items.push(itemData);
|
|
197
|
+
}
|
|
198
|
+
const hierarchyNodes = buildHierarchy(items);
|
|
199
|
+
const addNodesRecursively = /* @__PURE__ */ __name((nodes, level) => {
|
|
200
|
+
for (const node of nodes) {
|
|
201
|
+
db.addNode(node, level);
|
|
202
|
+
if (node.children && node.children.length > 0) {
|
|
203
|
+
addNodesRecursively(node.children, level + 1);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}, "addNodesRecursively");
|
|
207
|
+
addNodesRecursively(hierarchyNodes, 0);
|
|
208
|
+
}, "populate");
|
|
209
|
+
var getItemName = /* @__PURE__ */ __name((item) => {
|
|
210
|
+
return item.name ? String(item.name) : "";
|
|
211
|
+
}, "getItemName");
|
|
212
|
+
var parser = {
|
|
213
|
+
// @ts-expect-error - TreeMapDB is not assignable to DiagramDB
|
|
214
|
+
parser: { yy: void 0 },
|
|
215
|
+
parse: /* @__PURE__ */ __name(async (text) => {
|
|
216
|
+
try {
|
|
217
|
+
const parseFunc = parse;
|
|
218
|
+
const ast = await parseFunc("treemap", text);
|
|
219
|
+
log.debug("Treemap AST:", ast);
|
|
220
|
+
const db = parser.parser?.yy;
|
|
221
|
+
if (!(db instanceof TreeMapDB)) {
|
|
222
|
+
throw new Error(
|
|
223
|
+
"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."
|
|
224
|
+
);
|
|
225
|
+
}
|
|
226
|
+
populate(ast, db);
|
|
227
|
+
} catch (error) {
|
|
228
|
+
log.error("Error parsing treemap:", error);
|
|
229
|
+
throw error;
|
|
230
|
+
}
|
|
231
|
+
}, "parse")
|
|
232
|
+
};
|
|
233
|
+
var DEFAULT_INNER_PADDING = 10;
|
|
234
|
+
var SECTION_INNER_PADDING = 10;
|
|
235
|
+
var SECTION_HEADER_HEIGHT = 25;
|
|
236
|
+
var draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {
|
|
237
|
+
const treemapDb = diagram2.db;
|
|
238
|
+
const config = treemapDb.getConfig();
|
|
239
|
+
const treemapInnerPadding = config.padding ?? DEFAULT_INNER_PADDING;
|
|
240
|
+
const title = treemapDb.getDiagramTitle();
|
|
241
|
+
const root = treemapDb.getRoot();
|
|
242
|
+
const { themeVariables } = getConfig();
|
|
243
|
+
if (!root) {
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
const titleHeight = title ? 30 : 0;
|
|
247
|
+
const svg = selectSvgElement(id);
|
|
248
|
+
const width = config.nodeWidth ? config.nodeWidth * SECTION_INNER_PADDING : 960;
|
|
249
|
+
const height = config.nodeHeight ? config.nodeHeight * SECTION_INNER_PADDING : 500;
|
|
250
|
+
const svgWidth = width;
|
|
251
|
+
const svgHeight = height + titleHeight;
|
|
252
|
+
svg.attr("viewBox", `0 0 ${svgWidth} ${svgHeight}`);
|
|
253
|
+
configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);
|
|
254
|
+
let valueFormat;
|
|
255
|
+
try {
|
|
256
|
+
const formatStr = config.valueFormat || ",";
|
|
257
|
+
if (formatStr === "$0,0") {
|
|
258
|
+
valueFormat = /* @__PURE__ */ __name((value) => "$" + format(",")(value), "valueFormat");
|
|
259
|
+
} else if (formatStr.startsWith("$") && formatStr.includes(",")) {
|
|
260
|
+
const precision = /\.\d+/.exec(formatStr);
|
|
261
|
+
const precisionStr = precision ? precision[0] : "";
|
|
262
|
+
valueFormat = /* @__PURE__ */ __name((value) => "$" + format("," + precisionStr)(value), "valueFormat");
|
|
263
|
+
} else if (formatStr.startsWith("$")) {
|
|
264
|
+
const restOfFormat = formatStr.substring(1);
|
|
265
|
+
valueFormat = /* @__PURE__ */ __name((value) => "$" + format(restOfFormat || "")(value), "valueFormat");
|
|
266
|
+
} else {
|
|
267
|
+
valueFormat = format(formatStr);
|
|
268
|
+
}
|
|
269
|
+
} catch (error) {
|
|
270
|
+
log.error("Error creating format function:", error);
|
|
271
|
+
valueFormat = format(",");
|
|
272
|
+
}
|
|
273
|
+
const colorScale = ordinal().range([
|
|
274
|
+
"transparent",
|
|
275
|
+
themeVariables.cScale0,
|
|
276
|
+
themeVariables.cScale1,
|
|
277
|
+
themeVariables.cScale2,
|
|
278
|
+
themeVariables.cScale3,
|
|
279
|
+
themeVariables.cScale4,
|
|
280
|
+
themeVariables.cScale5,
|
|
281
|
+
themeVariables.cScale6,
|
|
282
|
+
themeVariables.cScale7,
|
|
283
|
+
themeVariables.cScale8,
|
|
284
|
+
themeVariables.cScale9,
|
|
285
|
+
themeVariables.cScale10,
|
|
286
|
+
themeVariables.cScale11
|
|
287
|
+
]);
|
|
288
|
+
const colorScalePeer = ordinal().range([
|
|
289
|
+
"transparent",
|
|
290
|
+
themeVariables.cScalePeer0,
|
|
291
|
+
themeVariables.cScalePeer1,
|
|
292
|
+
themeVariables.cScalePeer2,
|
|
293
|
+
themeVariables.cScalePeer3,
|
|
294
|
+
themeVariables.cScalePeer4,
|
|
295
|
+
themeVariables.cScalePeer5,
|
|
296
|
+
themeVariables.cScalePeer6,
|
|
297
|
+
themeVariables.cScalePeer7,
|
|
298
|
+
themeVariables.cScalePeer8,
|
|
299
|
+
themeVariables.cScalePeer9,
|
|
300
|
+
themeVariables.cScalePeer10,
|
|
301
|
+
themeVariables.cScalePeer11
|
|
302
|
+
]);
|
|
303
|
+
const colorScaleLabel = ordinal().range([
|
|
304
|
+
themeVariables.cScaleLabel0,
|
|
305
|
+
themeVariables.cScaleLabel1,
|
|
306
|
+
themeVariables.cScaleLabel2,
|
|
307
|
+
themeVariables.cScaleLabel3,
|
|
308
|
+
themeVariables.cScaleLabel4,
|
|
309
|
+
themeVariables.cScaleLabel5,
|
|
310
|
+
themeVariables.cScaleLabel6,
|
|
311
|
+
themeVariables.cScaleLabel7,
|
|
312
|
+
themeVariables.cScaleLabel8,
|
|
313
|
+
themeVariables.cScaleLabel9,
|
|
314
|
+
themeVariables.cScaleLabel10,
|
|
315
|
+
themeVariables.cScaleLabel11
|
|
316
|
+
]);
|
|
317
|
+
if (title) {
|
|
318
|
+
svg.append("text").attr("x", svgWidth / 2).attr("y", titleHeight / 2).attr("class", "treemapTitle").attr("text-anchor", "middle").attr("dominant-baseline", "middle").text(title);
|
|
319
|
+
}
|
|
320
|
+
const g = svg.append("g").attr("transform", `translate(0, ${titleHeight})`).attr("class", "treemapContainer");
|
|
321
|
+
const hierarchyRoot = hierarchy(root).sum((d) => d.value ?? 0).sort((a, b) => (b.value ?? 0) - (a.value ?? 0));
|
|
322
|
+
const treemapLayout = treemap_default().size([width, height]).paddingTop(
|
|
323
|
+
(d) => d.children && d.children.length > 0 ? SECTION_HEADER_HEIGHT + SECTION_INNER_PADDING : 0
|
|
324
|
+
).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);
|
|
325
|
+
const treemapData = treemapLayout(hierarchyRoot);
|
|
326
|
+
const branchNodes = treemapData.descendants().filter((d) => d.children && d.children.length > 0);
|
|
327
|
+
const sections = g.selectAll(".treemapSection").data(branchNodes).enter().append("g").attr("class", "treemapSection").attr("transform", (d) => `translate(${d.x0},${d.y0})`);
|
|
328
|
+
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) => {
|
|
329
|
+
if (d.depth === 0) {
|
|
330
|
+
return "display: none;";
|
|
331
|
+
}
|
|
332
|
+
return "";
|
|
333
|
+
});
|
|
334
|
+
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);
|
|
335
|
+
sections.append("rect").attr("width", (d) => d.x1 - d.x0).attr("height", (d) => d.y1 - d.y0).attr("class", (_d, i) => {
|
|
336
|
+
return `treemapSection section${i}`;
|
|
337
|
+
}).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) => {
|
|
338
|
+
if (d.depth === 0) {
|
|
339
|
+
return "display: none;";
|
|
340
|
+
}
|
|
341
|
+
const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });
|
|
342
|
+
return styles.nodeStyles + ";" + styles.borderStyles.join(";");
|
|
343
|
+
});
|
|
344
|
+
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) => {
|
|
345
|
+
if (d.depth === 0) {
|
|
346
|
+
return "display: none;";
|
|
347
|
+
}
|
|
348
|
+
const labelStyles = "dominant-baseline: middle; font-size: 12px; fill:" + colorScaleLabel(d.data.name) + "; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;";
|
|
349
|
+
const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });
|
|
350
|
+
return labelStyles + styles.labelStyles.replace("color:", "fill:");
|
|
351
|
+
}).each(function(d) {
|
|
352
|
+
if (d.depth === 0) {
|
|
353
|
+
return;
|
|
354
|
+
}
|
|
355
|
+
const self = select_default(this);
|
|
356
|
+
const originalText = d.data.name;
|
|
357
|
+
self.text(originalText);
|
|
358
|
+
const totalHeaderWidth = d.x1 - d.x0;
|
|
359
|
+
const labelXPosition = 6;
|
|
360
|
+
let spaceForTextContent;
|
|
361
|
+
if (config.showValues !== false && d.value) {
|
|
362
|
+
const valueEndsAtXRelative = totalHeaderWidth - 10;
|
|
363
|
+
const estimatedValueTextActualWidth = 30;
|
|
364
|
+
const gapBetweenLabelAndValue = 10;
|
|
365
|
+
const labelMustEndBeforeX = valueEndsAtXRelative - estimatedValueTextActualWidth - gapBetweenLabelAndValue;
|
|
366
|
+
spaceForTextContent = labelMustEndBeforeX - labelXPosition;
|
|
367
|
+
} else {
|
|
368
|
+
const labelOwnRightPadding = 6;
|
|
369
|
+
spaceForTextContent = totalHeaderWidth - labelXPosition - labelOwnRightPadding;
|
|
370
|
+
}
|
|
371
|
+
const minimumWidthToDisplay = 15;
|
|
372
|
+
const actualAvailableWidth = Math.max(minimumWidthToDisplay, spaceForTextContent);
|
|
373
|
+
const textNode = self.node();
|
|
374
|
+
const currentTextContentLength = textNode.getComputedTextLength();
|
|
375
|
+
if (currentTextContentLength > actualAvailableWidth) {
|
|
376
|
+
const ellipsis = "...";
|
|
377
|
+
let currentTruncatedText = originalText;
|
|
378
|
+
while (currentTruncatedText.length > 0) {
|
|
379
|
+
currentTruncatedText = originalText.substring(0, currentTruncatedText.length - 1);
|
|
380
|
+
if (currentTruncatedText.length === 0) {
|
|
381
|
+
self.text(ellipsis);
|
|
382
|
+
if (textNode.getComputedTextLength() > actualAvailableWidth) {
|
|
383
|
+
self.text("");
|
|
384
|
+
}
|
|
385
|
+
break;
|
|
386
|
+
}
|
|
387
|
+
self.text(currentTruncatedText + ellipsis);
|
|
388
|
+
if (textNode.getComputedTextLength() <= actualAvailableWidth) {
|
|
389
|
+
break;
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
});
|
|
394
|
+
if (config.showValues !== false) {
|
|
395
|
+
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) => {
|
|
396
|
+
if (d.depth === 0) {
|
|
397
|
+
return "display: none;";
|
|
398
|
+
}
|
|
399
|
+
const labelStyles = "text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:" + colorScaleLabel(d.data.name) + "; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;";
|
|
400
|
+
const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });
|
|
401
|
+
return labelStyles + styles.labelStyles.replace("color:", "fill:");
|
|
402
|
+
});
|
|
403
|
+
}
|
|
404
|
+
const leafNodes = treemapData.leaves();
|
|
405
|
+
const cell = g.selectAll(".treemapLeafGroup").data(leafNodes).enter().append("g").attr("class", (d, i) => {
|
|
406
|
+
return `treemapNode treemapLeafGroup leaf${i}${d.data.classSelector ? ` ${d.data.classSelector}` : ""}x`;
|
|
407
|
+
}).attr("transform", (d) => `translate(${d.x0},${d.y0})`);
|
|
408
|
+
cell.append("rect").attr("width", (d) => d.x1 - d.x0).attr("height", (d) => d.y1 - d.y0).attr("class", "treemapLeaf").attr("fill", (d) => {
|
|
409
|
+
return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);
|
|
410
|
+
}).attr("style", (d) => {
|
|
411
|
+
const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });
|
|
412
|
+
return styles.nodeStyles;
|
|
413
|
+
}).attr("fill-opacity", 0.3).attr("stroke", (d) => {
|
|
414
|
+
return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);
|
|
415
|
+
}).attr("stroke-width", 3);
|
|
416
|
+
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));
|
|
417
|
+
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) => {
|
|
418
|
+
const labelStyles = "text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:" + colorScaleLabel(d.data.name) + ";";
|
|
419
|
+
const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });
|
|
420
|
+
return labelStyles + styles.labelStyles.replace("color:", "fill:");
|
|
421
|
+
}).attr("clip-path", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.data.name);
|
|
422
|
+
leafLabels.each(function(d) {
|
|
423
|
+
const self = select_default(this);
|
|
424
|
+
const nodeWidth = d.x1 - d.x0;
|
|
425
|
+
const nodeHeight = d.y1 - d.y0;
|
|
426
|
+
const textNode = self.node();
|
|
427
|
+
const padding = 4;
|
|
428
|
+
const availableWidth = nodeWidth - 2 * padding;
|
|
429
|
+
const availableHeight = nodeHeight - 2 * padding;
|
|
430
|
+
if (availableWidth < 10 || availableHeight < 10) {
|
|
431
|
+
self.style("display", "none");
|
|
432
|
+
return;
|
|
433
|
+
}
|
|
434
|
+
let currentLabelFontSize = parseInt(self.style("font-size"), 10);
|
|
435
|
+
const minLabelFontSize = 8;
|
|
436
|
+
const originalValueRelFontSize = 28;
|
|
437
|
+
const valueScaleFactor = 0.6;
|
|
438
|
+
const minValueFontSize = 6;
|
|
439
|
+
const spacingBetweenLabelAndValue = 2;
|
|
440
|
+
while (textNode.getComputedTextLength() > availableWidth && currentLabelFontSize > minLabelFontSize) {
|
|
441
|
+
currentLabelFontSize--;
|
|
442
|
+
self.style("font-size", `${currentLabelFontSize}px`);
|
|
443
|
+
}
|
|
444
|
+
let prospectiveValueFontSize = Math.max(
|
|
445
|
+
minValueFontSize,
|
|
446
|
+
Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))
|
|
447
|
+
);
|
|
448
|
+
let combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;
|
|
449
|
+
while (combinedHeight > availableHeight && currentLabelFontSize > minLabelFontSize) {
|
|
450
|
+
currentLabelFontSize--;
|
|
451
|
+
prospectiveValueFontSize = Math.max(
|
|
452
|
+
minValueFontSize,
|
|
453
|
+
Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))
|
|
454
|
+
);
|
|
455
|
+
if (prospectiveValueFontSize < minValueFontSize && currentLabelFontSize === minLabelFontSize) {
|
|
456
|
+
break;
|
|
457
|
+
}
|
|
458
|
+
self.style("font-size", `${currentLabelFontSize}px`);
|
|
459
|
+
combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;
|
|
460
|
+
if (prospectiveValueFontSize <= minValueFontSize && combinedHeight > availableHeight) {
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
self.style("font-size", `${currentLabelFontSize}px`);
|
|
464
|
+
if (textNode.getComputedTextLength() > availableWidth || currentLabelFontSize < minLabelFontSize || availableHeight < currentLabelFontSize) {
|
|
465
|
+
self.style("display", "none");
|
|
466
|
+
}
|
|
467
|
+
});
|
|
468
|
+
if (config.showValues !== false) {
|
|
469
|
+
const leafValues = cell.append("text").attr("class", "treemapValue").attr("x", (d) => (d.x1 - d.x0) / 2).attr("y", function(d) {
|
|
470
|
+
return (d.y1 - d.y0) / 2;
|
|
471
|
+
}).attr("style", (d) => {
|
|
472
|
+
const labelStyles = "text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:" + colorScaleLabel(d.data.name) + ";";
|
|
473
|
+
const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });
|
|
474
|
+
return labelStyles + styles.labelStyles.replace("color:", "fill:");
|
|
475
|
+
}).attr("clip-path", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.value ? valueFormat(d.value) : "");
|
|
476
|
+
leafValues.each(function(d) {
|
|
477
|
+
const valueTextElement = select_default(this);
|
|
478
|
+
const parentCellNode = this.parentNode;
|
|
479
|
+
if (!parentCellNode) {
|
|
480
|
+
valueTextElement.style("display", "none");
|
|
481
|
+
return;
|
|
482
|
+
}
|
|
483
|
+
const labelElement = select_default(parentCellNode).select(".treemapLabel");
|
|
484
|
+
if (labelElement.empty() || labelElement.style("display") === "none") {
|
|
485
|
+
valueTextElement.style("display", "none");
|
|
486
|
+
return;
|
|
487
|
+
}
|
|
488
|
+
const finalLabelFontSize = parseFloat(labelElement.style("font-size"));
|
|
489
|
+
const originalValueFontSize = 28;
|
|
490
|
+
const valueScaleFactor = 0.6;
|
|
491
|
+
const minValueFontSize = 6;
|
|
492
|
+
const spacingBetweenLabelAndValue = 2;
|
|
493
|
+
const actualValueFontSize = Math.max(
|
|
494
|
+
minValueFontSize,
|
|
495
|
+
Math.min(originalValueFontSize, Math.round(finalLabelFontSize * valueScaleFactor))
|
|
496
|
+
);
|
|
497
|
+
valueTextElement.style("font-size", `${actualValueFontSize}px`);
|
|
498
|
+
const labelCenterY = (d.y1 - d.y0) / 2;
|
|
499
|
+
const valueTopActualY = labelCenterY + finalLabelFontSize / 2 + spacingBetweenLabelAndValue;
|
|
500
|
+
valueTextElement.attr("y", valueTopActualY);
|
|
501
|
+
const nodeWidth = d.x1 - d.x0;
|
|
502
|
+
const nodeTotalHeight = d.y1 - d.y0;
|
|
503
|
+
const cellBottomPadding = 4;
|
|
504
|
+
const maxValueBottomY = nodeTotalHeight - cellBottomPadding;
|
|
505
|
+
const availableWidthForValue = nodeWidth - 2 * 4;
|
|
506
|
+
if (valueTextElement.node().getComputedTextLength() > availableWidthForValue || valueTopActualY + actualValueFontSize > maxValueBottomY || actualValueFontSize < minValueFontSize) {
|
|
507
|
+
valueTextElement.style("display", "none");
|
|
508
|
+
} else {
|
|
509
|
+
valueTextElement.style("display", null);
|
|
510
|
+
}
|
|
511
|
+
});
|
|
512
|
+
}
|
|
513
|
+
const diagramPadding = config.diagramPadding ?? 8;
|
|
514
|
+
setupViewPortForSVG(svg, diagramPadding, "flowchart", config?.useMaxWidth || false);
|
|
515
|
+
}, "draw");
|
|
516
|
+
var getClasses = /* @__PURE__ */ __name(function(_text, diagramObj) {
|
|
517
|
+
return diagramObj.db.getClasses();
|
|
518
|
+
}, "getClasses");
|
|
519
|
+
var renderer = { draw, getClasses };
|
|
520
|
+
var defaultTreemapStyleOptions = {
|
|
521
|
+
sectionStrokeColor: "black",
|
|
522
|
+
sectionStrokeWidth: "1",
|
|
523
|
+
sectionFillColor: "#efefef",
|
|
524
|
+
leafStrokeColor: "black",
|
|
525
|
+
leafStrokeWidth: "1",
|
|
526
|
+
leafFillColor: "#efefef",
|
|
527
|
+
labelFontSize: "12px",
|
|
528
|
+
valueFontSize: "10px",
|
|
529
|
+
titleFontSize: "14px"
|
|
530
|
+
};
|
|
531
|
+
var getStyles = /* @__PURE__ */ __name(({
|
|
532
|
+
treemap: treemap2
|
|
533
|
+
} = {}) => {
|
|
534
|
+
const defaultThemeVariables = getThemeVariables3();
|
|
535
|
+
const currentConfig = getConfig();
|
|
536
|
+
const themeVariables = cleanAndMerge(defaultThemeVariables, currentConfig.themeVariables);
|
|
537
|
+
const options = cleanAndMerge(defaultTreemapStyleOptions, treemap2);
|
|
538
|
+
const titleColor = options.titleColor ?? themeVariables.titleColor;
|
|
539
|
+
const labelColor = options.labelColor ?? themeVariables.textColor;
|
|
540
|
+
const valueColor = options.valueColor ?? themeVariables.textColor;
|
|
541
|
+
return `
|
|
542
|
+
.treemapNode.section {
|
|
543
|
+
stroke: ${options.sectionStrokeColor};
|
|
544
|
+
stroke-width: ${options.sectionStrokeWidth};
|
|
545
|
+
fill: ${options.sectionFillColor};
|
|
546
|
+
}
|
|
547
|
+
.treemapNode.leaf {
|
|
548
|
+
stroke: ${options.leafStrokeColor};
|
|
549
|
+
stroke-width: ${options.leafStrokeWidth};
|
|
550
|
+
fill: ${options.leafFillColor};
|
|
551
|
+
}
|
|
552
|
+
.treemapLabel {
|
|
553
|
+
fill: ${labelColor};
|
|
554
|
+
font-size: ${options.labelFontSize};
|
|
555
|
+
}
|
|
556
|
+
.treemapValue {
|
|
557
|
+
fill: ${valueColor};
|
|
558
|
+
font-size: ${options.valueFontSize};
|
|
559
|
+
}
|
|
560
|
+
.treemapTitle {
|
|
561
|
+
fill: ${titleColor};
|
|
562
|
+
font-size: ${options.titleFontSize};
|
|
563
|
+
}
|
|
564
|
+
`;
|
|
565
|
+
}, "getStyles");
|
|
566
|
+
var styles_default = getStyles;
|
|
567
|
+
var diagram = {
|
|
568
|
+
parser,
|
|
569
|
+
get db() {
|
|
570
|
+
return new TreeMapDB();
|
|
571
|
+
},
|
|
572
|
+
renderer,
|
|
573
|
+
styles: styles_default
|
|
574
|
+
};
|
|
575
|
+
export {
|
|
576
|
+
diagram
|
|
577
|
+
};
|
|
578
|
+
//# sourceMappingURL=diagram-G4DWMVQ6-KN7CBNBQ.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../node_modules/.pnpm/mermaid@11.14.0/node_modules/mermaid/dist/chunks/mermaid.core/diagram-G4DWMVQ6.mjs"],
|
|
4
|
+
"sourcesContent": ["import {\n selectSvgElement\n} from \"./chunk-426QAEUC.mjs\";\nimport {\n setupViewPortForSVG\n} from \"./chunk-EDXVE4YY.mjs\";\nimport {\n isLabelStyle,\n styles2String\n} from \"./chunk-X2U36JSP.mjs\";\nimport {\n populateCommonDb\n} from \"./chunk-4BX2VUAB.mjs\";\nimport {\n cleanAndMerge\n} from \"./chunk-5PVQY5BW.mjs\";\nimport {\n clear,\n configureSvgSize,\n defaultConfig_default,\n getAccDescription,\n getAccTitle,\n getConfig,\n getDiagramTitle,\n getThemeVariables,\n setAccDescription,\n setAccTitle,\n setDiagramTitle\n} from \"./chunk-ICPOFSXX.mjs\";\nimport {\n __name,\n log\n} from \"./chunk-AGHRB4JF.mjs\";\n\n// src/diagrams/treemap/db.ts\nvar TreeMapDB = class {\n constructor() {\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.setAccTitle = setAccTitle;\n this.getAccTitle = getAccTitle;\n this.setDiagramTitle = setDiagramTitle;\n this.getDiagramTitle = getDiagramTitle;\n this.getAccDescription = getAccDescription;\n this.setAccDescription = setAccDescription;\n }\n static {\n __name(this, \"TreeMapDB\");\n }\n getNodes() {\n return this.nodes;\n }\n getConfig() {\n const defaultConfig = defaultConfig_default;\n const userConfig = getConfig();\n return cleanAndMerge({\n ...defaultConfig.treemap,\n ...userConfig.treemap ?? {}\n });\n }\n addNode(node, level) {\n this.nodes.push(node);\n this.levels.set(node, level);\n if (level === 0) {\n this.outerNodes.push(node);\n this.root ??= node;\n }\n }\n getRoot() {\n return { name: \"\", children: this.outerNodes };\n }\n addClass(id, _style) {\n const styleClass = this.classes.get(id) ?? { id, styles: [], textStyles: [] };\n const styles = _style.replace(/\\\\,/g, \"\\xA7\\xA7\\xA7\").replace(/,/g, \";\").replace(/\u00A7\u00A7\u00A7/g, \",\").split(\";\");\n if (styles) {\n styles.forEach((s) => {\n if (isLabelStyle(s)) {\n if (styleClass?.textStyles) {\n styleClass.textStyles.push(s);\n } else {\n styleClass.textStyles = [s];\n }\n }\n if (styleClass?.styles) {\n styleClass.styles.push(s);\n } else {\n styleClass.styles = [s];\n }\n });\n }\n this.classes.set(id, styleClass);\n }\n getClasses() {\n return this.classes;\n }\n getStylesForClass(classSelector) {\n return this.classes.get(classSelector)?.styles ?? [];\n }\n clear() {\n clear();\n this.nodes = [];\n this.levels = /* @__PURE__ */ new Map();\n this.outerNodes = [];\n this.classes = /* @__PURE__ */ new Map();\n this.root = void 0;\n }\n};\n\n// src/diagrams/treemap/parser.ts\nimport { parse } from \"@mermaid-js/parser\";\n\n// src/diagrams/treemap/utils.ts\nfunction buildHierarchy(items) {\n if (!items.length) {\n return [];\n }\n const root = [];\n const stack = [];\n items.forEach((item) => {\n const node = {\n name: item.name,\n children: item.type === \"Leaf\" ? void 0 : []\n };\n node.classSelector = item?.classSelector;\n if (item?.cssCompiledStyles) {\n node.cssCompiledStyles = item.cssCompiledStyles;\n }\n if (item.type === \"Leaf\" && item.value !== void 0) {\n node.value = item.value;\n }\n while (stack.length > 0 && stack[stack.length - 1].level >= item.level) {\n stack.pop();\n }\n if (stack.length === 0) {\n root.push(node);\n } else {\n const parent = stack[stack.length - 1].node;\n if (parent.children) {\n parent.children.push(node);\n } else {\n parent.children = [node];\n }\n }\n if (item.type !== \"Leaf\") {\n stack.push({ node, level: item.level });\n }\n });\n return root;\n}\n__name(buildHierarchy, \"buildHierarchy\");\n\n// src/diagrams/treemap/parser.ts\nvar populate = /* @__PURE__ */ __name((ast, db) => {\n populateCommonDb(ast, db);\n const items = [];\n for (const row of ast.TreemapRows ?? []) {\n if (row.$type === \"ClassDefStatement\") {\n db.addClass(row.className ?? \"\", row.styleText ?? \"\");\n }\n }\n for (const row of ast.TreemapRows ?? []) {\n const item = row.item;\n if (!item) {\n continue;\n }\n const level = row.indent ? parseInt(row.indent) : 0;\n const name = getItemName(item);\n const styles = item.classSelector ? db.getStylesForClass(item.classSelector) : [];\n const cssCompiledStyles = styles.length > 0 ? styles : void 0;\n const itemData = {\n level,\n name,\n type: item.$type,\n value: item.value,\n classSelector: item.classSelector,\n cssCompiledStyles\n };\n items.push(itemData);\n }\n const hierarchyNodes = buildHierarchy(items);\n const addNodesRecursively = /* @__PURE__ */ __name((nodes, level) => {\n for (const node of nodes) {\n db.addNode(node, level);\n if (node.children && node.children.length > 0) {\n addNodesRecursively(node.children, level + 1);\n }\n }\n }, \"addNodesRecursively\");\n addNodesRecursively(hierarchyNodes, 0);\n}, \"populate\");\nvar getItemName = /* @__PURE__ */ __name((item) => {\n return item.name ? String(item.name) : \"\";\n}, \"getItemName\");\nvar parser = {\n // @ts-expect-error - TreeMapDB is not assignable to DiagramDB\n parser: { yy: void 0 },\n parse: /* @__PURE__ */ __name(async (text) => {\n try {\n const parseFunc = parse;\n const ast = await parseFunc(\"treemap\", text);\n log.debug(\"Treemap AST:\", ast);\n const db = parser.parser?.yy;\n if (!(db instanceof TreeMapDB)) {\n throw new Error(\n \"parser.parser?.yy was not a TreemapDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.\"\n );\n }\n populate(ast, db);\n } catch (error) {\n log.error(\"Error parsing treemap:\", error);\n throw error;\n }\n }, \"parse\")\n};\n\n// src/diagrams/treemap/renderer.ts\nimport { scaleOrdinal, treemap, hierarchy, format, select } from \"d3\";\nvar DEFAULT_INNER_PADDING = 10;\nvar SECTION_INNER_PADDING = 10;\nvar SECTION_HEADER_HEIGHT = 25;\nvar draw = /* @__PURE__ */ __name((_text, id, _version, diagram2) => {\n const treemapDb = diagram2.db;\n const config = treemapDb.getConfig();\n const treemapInnerPadding = config.padding ?? DEFAULT_INNER_PADDING;\n const title = treemapDb.getDiagramTitle();\n const root = treemapDb.getRoot();\n const { themeVariables } = getConfig();\n if (!root) {\n return;\n }\n const titleHeight = title ? 30 : 0;\n const svg = selectSvgElement(id);\n const width = config.nodeWidth ? config.nodeWidth * SECTION_INNER_PADDING : 960;\n const height = config.nodeHeight ? config.nodeHeight * SECTION_INNER_PADDING : 500;\n const svgWidth = width;\n const svgHeight = height + titleHeight;\n svg.attr(\"viewBox\", `0 0 ${svgWidth} ${svgHeight}`);\n configureSvgSize(svg, svgHeight, svgWidth, config.useMaxWidth);\n let valueFormat;\n try {\n const formatStr = config.valueFormat || \",\";\n if (formatStr === \"$0,0\") {\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\")(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\") && formatStr.includes(\",\")) {\n const precision = /\\.\\d+/.exec(formatStr);\n const precisionStr = precision ? precision[0] : \"\";\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(\",\" + precisionStr)(value), \"valueFormat\");\n } else if (formatStr.startsWith(\"$\")) {\n const restOfFormat = formatStr.substring(1);\n valueFormat = /* @__PURE__ */ __name((value) => \"$\" + format(restOfFormat || \"\")(value), \"valueFormat\");\n } else {\n valueFormat = format(formatStr);\n }\n } catch (error) {\n log.error(\"Error creating format function:\", error);\n valueFormat = format(\",\");\n }\n const colorScale = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScale0,\n themeVariables.cScale1,\n themeVariables.cScale2,\n themeVariables.cScale3,\n themeVariables.cScale4,\n themeVariables.cScale5,\n themeVariables.cScale6,\n themeVariables.cScale7,\n themeVariables.cScale8,\n themeVariables.cScale9,\n themeVariables.cScale10,\n themeVariables.cScale11\n ]);\n const colorScalePeer = scaleOrdinal().range([\n \"transparent\",\n themeVariables.cScalePeer0,\n themeVariables.cScalePeer1,\n themeVariables.cScalePeer2,\n themeVariables.cScalePeer3,\n themeVariables.cScalePeer4,\n themeVariables.cScalePeer5,\n themeVariables.cScalePeer6,\n themeVariables.cScalePeer7,\n themeVariables.cScalePeer8,\n themeVariables.cScalePeer9,\n themeVariables.cScalePeer10,\n themeVariables.cScalePeer11\n ]);\n const colorScaleLabel = scaleOrdinal().range([\n themeVariables.cScaleLabel0,\n themeVariables.cScaleLabel1,\n themeVariables.cScaleLabel2,\n themeVariables.cScaleLabel3,\n themeVariables.cScaleLabel4,\n themeVariables.cScaleLabel5,\n themeVariables.cScaleLabel6,\n themeVariables.cScaleLabel7,\n themeVariables.cScaleLabel8,\n themeVariables.cScaleLabel9,\n themeVariables.cScaleLabel10,\n themeVariables.cScaleLabel11\n ]);\n if (title) {\n svg.append(\"text\").attr(\"x\", svgWidth / 2).attr(\"y\", titleHeight / 2).attr(\"class\", \"treemapTitle\").attr(\"text-anchor\", \"middle\").attr(\"dominant-baseline\", \"middle\").text(title);\n }\n const g = svg.append(\"g\").attr(\"transform\", `translate(0, ${titleHeight})`).attr(\"class\", \"treemapContainer\");\n const hierarchyRoot = hierarchy(root).sum((d) => d.value ?? 0).sort((a, b) => (b.value ?? 0) - (a.value ?? 0));\n const treemapLayout = treemap().size([width, height]).paddingTop(\n (d) => d.children && d.children.length > 0 ? SECTION_HEADER_HEIGHT + SECTION_INNER_PADDING : 0\n ).paddingInner(treemapInnerPadding).paddingLeft((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingRight((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).paddingBottom((d) => d.children && d.children.length > 0 ? SECTION_INNER_PADDING : 0).round(true);\n const treemapData = treemapLayout(hierarchyRoot);\n const branchNodes = treemapData.descendants().filter((d) => d.children && d.children.length > 0);\n const sections = g.selectAll(\".treemapSection\").data(branchNodes).enter().append(\"g\").attr(\"class\", \"treemapSection\").attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", SECTION_HEADER_HEIGHT).attr(\"class\", \"treemapSectionHeader\").attr(\"fill\", \"none\").attr(\"fill-opacity\", 0.6).attr(\"stroke-width\", 0.6).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n return \"\";\n });\n sections.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-section-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 12)).attr(\"height\", SECTION_HEADER_HEIGHT);\n sections.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", (_d, i) => {\n return `treemapSection section${i}`;\n }).attr(\"fill\", (d) => colorScale(d.data.name)).attr(\"fill-opacity\", 0.6).attr(\"stroke\", (d) => colorScalePeer(d.data.name)).attr(\"stroke-width\", 2).attr(\"stroke-opacity\", 0.4).attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles + \";\" + styles.borderStyles.join(\";\");\n });\n sections.append(\"text\").attr(\"class\", \"treemapSectionLabel\").attr(\"x\", 6).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"dominant-baseline\", \"middle\").text((d) => d.depth === 0 ? \"\" : d.data.name).attr(\"font-weight\", \"bold\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"dominant-baseline: middle; font-size: 12px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).each(function(d) {\n if (d.depth === 0) {\n return;\n }\n const self = select(this);\n const originalText = d.data.name;\n self.text(originalText);\n const totalHeaderWidth = d.x1 - d.x0;\n const labelXPosition = 6;\n let spaceForTextContent;\n if (config.showValues !== false && d.value) {\n const valueEndsAtXRelative = totalHeaderWidth - 10;\n const estimatedValueTextActualWidth = 30;\n const gapBetweenLabelAndValue = 10;\n const labelMustEndBeforeX = valueEndsAtXRelative - estimatedValueTextActualWidth - gapBetweenLabelAndValue;\n spaceForTextContent = labelMustEndBeforeX - labelXPosition;\n } else {\n const labelOwnRightPadding = 6;\n spaceForTextContent = totalHeaderWidth - labelXPosition - labelOwnRightPadding;\n }\n const minimumWidthToDisplay = 15;\n const actualAvailableWidth = Math.max(minimumWidthToDisplay, spaceForTextContent);\n const textNode = self.node();\n const currentTextContentLength = textNode.getComputedTextLength();\n if (currentTextContentLength > actualAvailableWidth) {\n const ellipsis = \"...\";\n let currentTruncatedText = originalText;\n while (currentTruncatedText.length > 0) {\n currentTruncatedText = originalText.substring(0, currentTruncatedText.length - 1);\n if (currentTruncatedText.length === 0) {\n self.text(ellipsis);\n if (textNode.getComputedTextLength() > actualAvailableWidth) {\n self.text(\"\");\n }\n break;\n }\n self.text(currentTruncatedText + ellipsis);\n if (textNode.getComputedTextLength() <= actualAvailableWidth) {\n break;\n }\n }\n }\n });\n if (config.showValues !== false) {\n sections.append(\"text\").attr(\"class\", \"treemapSectionValue\").attr(\"x\", (d) => d.x1 - d.x0 - 10).attr(\"y\", SECTION_HEADER_HEIGHT / 2).attr(\"text-anchor\", \"end\").attr(\"dominant-baseline\", \"middle\").text((d) => d.value ? valueFormat(d.value) : \"\").attr(\"font-style\", \"italic\").attr(\"style\", (d) => {\n if (d.depth === 0) {\n return \"display: none;\";\n }\n const labelStyles = \"text-anchor: end; dominant-baseline: middle; font-size: 10px; fill:\" + colorScaleLabel(d.data.name) + \"; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n });\n }\n const leafNodes = treemapData.leaves();\n const cell = g.selectAll(\".treemapLeafGroup\").data(leafNodes).enter().append(\"g\").attr(\"class\", (d, i) => {\n return `treemapNode treemapLeafGroup leaf${i}${d.data.classSelector ? ` ${d.data.classSelector}` : \"\"}x`;\n }).attr(\"transform\", (d) => `translate(${d.x0},${d.y0})`);\n cell.append(\"rect\").attr(\"width\", (d) => d.x1 - d.x0).attr(\"height\", (d) => d.y1 - d.y0).attr(\"class\", \"treemapLeaf\").attr(\"fill\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"style\", (d) => {\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return styles.nodeStyles;\n }).attr(\"fill-opacity\", 0.3).attr(\"stroke\", (d) => {\n return d.parent ? colorScale(d.parent.data.name) : colorScale(d.data.name);\n }).attr(\"stroke-width\", 3);\n cell.append(\"clipPath\").attr(\"id\", (_d, i) => `clip-${id}-${i}`).append(\"rect\").attr(\"width\", (d) => Math.max(0, d.x1 - d.x0 - 4)).attr(\"height\", (d) => Math.max(0, d.y1 - d.y0 - 4));\n const leafLabels = cell.append(\"text\").attr(\"class\", \"treemapLabel\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", (d) => (d.y1 - d.y0) / 2).attr(\"style\", (d) => {\n const labelStyles = \"text-anchor: middle; dominant-baseline: middle; font-size: 38px;fill:\" + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.data.name);\n leafLabels.each(function(d) {\n const self = select(this);\n const nodeWidth = d.x1 - d.x0;\n const nodeHeight = d.y1 - d.y0;\n const textNode = self.node();\n const padding = 4;\n const availableWidth = nodeWidth - 2 * padding;\n const availableHeight = nodeHeight - 2 * padding;\n if (availableWidth < 10 || availableHeight < 10) {\n self.style(\"display\", \"none\");\n return;\n }\n let currentLabelFontSize = parseInt(self.style(\"font-size\"), 10);\n const minLabelFontSize = 8;\n const originalValueRelFontSize = 28;\n const valueScaleFactor = 0.6;\n const minValueFontSize = 6;\n const spacingBetweenLabelAndValue = 2;\n while (textNode.getComputedTextLength() > availableWidth && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n }\n let prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n let combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n while (combinedHeight > availableHeight && currentLabelFontSize > minLabelFontSize) {\n currentLabelFontSize--;\n prospectiveValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueRelFontSize, Math.round(currentLabelFontSize * valueScaleFactor))\n );\n if (prospectiveValueFontSize < minValueFontSize && currentLabelFontSize === minLabelFontSize) {\n break;\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n combinedHeight = currentLabelFontSize + spacingBetweenLabelAndValue + prospectiveValueFontSize;\n if (prospectiveValueFontSize <= minValueFontSize && combinedHeight > availableHeight) {\n }\n }\n self.style(\"font-size\", `${currentLabelFontSize}px`);\n if (textNode.getComputedTextLength() > availableWidth || currentLabelFontSize < minLabelFontSize || availableHeight < currentLabelFontSize) {\n self.style(\"display\", \"none\");\n }\n });\n if (config.showValues !== false) {\n const leafValues = cell.append(\"text\").attr(\"class\", \"treemapValue\").attr(\"x\", (d) => (d.x1 - d.x0) / 2).attr(\"y\", function(d) {\n return (d.y1 - d.y0) / 2;\n }).attr(\"style\", (d) => {\n const labelStyles = \"text-anchor: middle; dominant-baseline: hanging; font-size: 28px;fill:\" + colorScaleLabel(d.data.name) + \";\";\n const styles = styles2String({ cssCompiledStyles: d.data.cssCompiledStyles });\n return labelStyles + styles.labelStyles.replace(\"color:\", \"fill:\");\n }).attr(\"clip-path\", (_d, i) => `url(#clip-${id}-${i})`).text((d) => d.value ? valueFormat(d.value) : \"\");\n leafValues.each(function(d) {\n const valueTextElement = select(this);\n const parentCellNode = this.parentNode;\n if (!parentCellNode) {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const labelElement = select(parentCellNode).select(\".treemapLabel\");\n if (labelElement.empty() || labelElement.style(\"display\") === \"none\") {\n valueTextElement.style(\"display\", \"none\");\n return;\n }\n const finalLabelFontSize = parseFloat(labelElement.style(\"font-size\"));\n const originalValueFontSize = 28;\n const valueScaleFactor = 0.6;\n const minValueFontSize = 6;\n const spacingBetweenLabelAndValue = 2;\n const actualValueFontSize = Math.max(\n minValueFontSize,\n Math.min(originalValueFontSize, Math.round(finalLabelFontSize * valueScaleFactor))\n );\n valueTextElement.style(\"font-size\", `${actualValueFontSize}px`);\n const labelCenterY = (d.y1 - d.y0) / 2;\n const valueTopActualY = labelCenterY + finalLabelFontSize / 2 + spacingBetweenLabelAndValue;\n valueTextElement.attr(\"y\", valueTopActualY);\n const nodeWidth = d.x1 - d.x0;\n const nodeTotalHeight = d.y1 - d.y0;\n const cellBottomPadding = 4;\n const maxValueBottomY = nodeTotalHeight - cellBottomPadding;\n const availableWidthForValue = nodeWidth - 2 * 4;\n if (valueTextElement.node().getComputedTextLength() > availableWidthForValue || valueTopActualY + actualValueFontSize > maxValueBottomY || actualValueFontSize < minValueFontSize) {\n valueTextElement.style(\"display\", \"none\");\n } else {\n valueTextElement.style(\"display\", null);\n }\n });\n }\n const diagramPadding = config.diagramPadding ?? 8;\n setupViewPortForSVG(svg, diagramPadding, \"flowchart\", config?.useMaxWidth || false);\n}, \"draw\");\nvar getClasses = /* @__PURE__ */ __name(function(_text, diagramObj) {\n return diagramObj.db.getClasses();\n}, \"getClasses\");\nvar renderer = { draw, getClasses };\n\n// src/diagrams/treemap/styles.ts\nvar defaultTreemapStyleOptions = {\n sectionStrokeColor: \"black\",\n sectionStrokeWidth: \"1\",\n sectionFillColor: \"#efefef\",\n leafStrokeColor: \"black\",\n leafStrokeWidth: \"1\",\n leafFillColor: \"#efefef\",\n labelFontSize: \"12px\",\n valueFontSize: \"10px\",\n titleFontSize: \"14px\"\n};\nvar getStyles = /* @__PURE__ */ __name(({\n treemap: treemap2\n} = {}) => {\n const defaultThemeVariables = getThemeVariables();\n const currentConfig = getConfig();\n const themeVariables = cleanAndMerge(defaultThemeVariables, currentConfig.themeVariables);\n const options = cleanAndMerge(defaultTreemapStyleOptions, treemap2);\n const titleColor = options.titleColor ?? themeVariables.titleColor;\n const labelColor = options.labelColor ?? themeVariables.textColor;\n const valueColor = options.valueColor ?? themeVariables.textColor;\n return `\n .treemapNode.section {\n stroke: ${options.sectionStrokeColor};\n stroke-width: ${options.sectionStrokeWidth};\n fill: ${options.sectionFillColor};\n }\n .treemapNode.leaf {\n stroke: ${options.leafStrokeColor};\n stroke-width: ${options.leafStrokeWidth};\n fill: ${options.leafFillColor};\n }\n .treemapLabel {\n fill: ${labelColor};\n font-size: ${options.labelFontSize};\n }\n .treemapValue {\n fill: ${valueColor};\n font-size: ${options.valueFontSize};\n }\n .treemapTitle {\n fill: ${titleColor};\n font-size: ${options.titleFontSize};\n }\n `;\n}, \"getStyles\");\nvar styles_default = getStyles;\n\n// src/diagrams/treemap/diagram.ts\nvar diagram = {\n parser,\n get db() {\n return new TreeMapDB();\n },\n renderer,\n styles: styles_default\n};\nexport {\n diagram\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|