@diagrammo/dgmo 0.89.0 → 0.90.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/README.md +1 -1
- package/dist/advanced.d.ts +435 -15
- package/dist/advanced.js +356 -197
- package/dist/block.d.ts +1 -1
- package/dist/block.js +86 -63
- package/dist/{calculator-35YVW4QO.js → calculator-PX3JHKAS.js} +2 -2
- package/dist/{chart-meta-Bev5Ebjr.d.ts → chart-meta-B_WTMP0y.d.ts} +1 -1
- package/dist/chart-meta.d.ts +2 -2
- package/dist/chart-meta.js +17 -16
- package/dist/{chart-types-Bf8C5QQW.d.ts → chart-types-V2NcgN5O.d.ts} +4 -0
- package/dist/{charts-d3-KEQSUWKP.js → charts-d3-QW4ERNUE.js} +8 -7
- package/dist/{chunk-ECMA6XE2.js → chunk-2EDJPHXQ.js} +9 -9
- package/dist/{chunk-7WGCQE2E.js → chunk-2ZVLI6GQ.js} +1 -1
- package/dist/{chunk-UWKRPQZO.js → chunk-3BQCSQQJ.js} +16 -13
- package/dist/{chunk-7C2RAGPT.js → chunk-3HBR3YAN.js} +12 -12
- package/dist/chunk-3UR4F7FE.js +14 -0
- package/dist/{chunk-NIUO2TNR.js → chunk-4HG4PYHM.js} +197 -203
- package/dist/{chunk-NSR2CGV6.js → chunk-4IYJOXGS.js} +10 -10
- package/dist/{chunk-BOO24UMJ.js → chunk-4YO7VJTP.js} +1 -1
- package/dist/{chunk-YMFQLWZ2.js → chunk-54YUDXGP.js} +1 -1
- package/dist/{chunk-UG2XG57E.js → chunk-5M52RPAS.js} +2 -2
- package/dist/{chunk-QIOYTQDZ.js → chunk-5M6PMV5Z.js} +9 -9
- package/dist/{chunk-S2WE7TVK.js → chunk-5MDQMB6A.js} +1 -1
- package/dist/{chunk-WPL5PFXE.js → chunk-5TZPIKNV.js} +5 -5
- package/dist/{chunk-LFKSHDVI.js → chunk-62VWZ3SE.js} +5 -4
- package/dist/{chunk-PMNITNPR.js → chunk-64KSPLU2.js} +2 -1
- package/dist/{chunk-VEPIAUSK.js → chunk-6BQSDF77.js} +1 -5
- package/dist/{chunk-HUNDJTTH.js → chunk-A5EE66RQ.js} +1 -1
- package/dist/{chunk-JVZ7KFAX.js → chunk-AAC3XQWV.js} +2 -2
- package/dist/{chunk-7KPHRTND.js → chunk-AHWA36O7.js} +1 -1
- package/dist/{chunk-FKZ2Y3Q5.js → chunk-C4W62JZO.js} +2 -2
- package/dist/{chunk-C4FRGZGX.js → chunk-CDT33RHG.js} +1 -1
- package/dist/{chunk-B3S76BZO.js → chunk-COPSI54O.js} +3 -3
- package/dist/{chunk-GUTZCRBT.js → chunk-CUY56BK4.js} +2 -2
- package/dist/{chunk-HSRQDWV7.js → chunk-CYF2X3CG.js} +2 -11
- package/dist/{chunk-NGC3IZRY.js → chunk-DNMICILX.js} +2 -2
- package/dist/{chunk-N4BBSDWI.js → chunk-DXPT2HPH.js} +140 -151
- package/dist/{chunk-TAP2NZEU.js → chunk-EB7AEM2H.js} +13 -13
- package/dist/{chunk-3AQJNY65.js → chunk-EEYQFJVK.js} +149 -43
- package/dist/{chunk-SLQT3JP3.js → chunk-EK7JYFCL.js} +1 -1
- package/dist/{chunk-3C2FWS2J.js → chunk-EWERNTOX.js} +1 -1
- package/dist/{chunk-4AJKOUBO.js → chunk-FDRHBQUG.js} +17 -15
- package/dist/{chunk-FJNXXGTR.js → chunk-FS2LZBHG.js} +2 -2
- package/dist/{chunk-LPYYZCSI.js → chunk-G5BGW4BX.js} +1 -1
- package/dist/{chunk-IQ6P3HDE.js → chunk-GQVXYRPC.js} +2 -2
- package/dist/{chunk-MHAYUS65.js → chunk-GXP344YZ.js} +3 -3
- package/dist/{chunk-HAMF4F3P.js → chunk-GYBKG4Z6.js} +5 -5
- package/dist/{chunk-Q6SQISHT.js → chunk-HIVJBESO.js} +306 -68
- package/dist/{chunk-ID2K3IHI.js → chunk-HLE5QGZJ.js} +1 -1
- package/dist/{chunk-L5AFONQU.js → chunk-HX2KJEPD.js} +1 -1
- package/dist/{chunk-SOPM5PLO.js → chunk-I6FWHICD.js} +13 -13
- package/dist/{chunk-3RYBTEF5.js → chunk-I74AQRVD.js} +6 -12
- package/dist/{chunk-NRPELUB6.js → chunk-ICYPGWOV.js} +2 -2
- package/dist/chunk-IHK3Y2HG.js +781 -0
- package/dist/{chunk-RXIKESRI.js → chunk-IMHNZITR.js} +2 -2
- package/dist/{chunk-DPSMX4EY.js → chunk-IRVQT4GR.js} +3 -3
- package/dist/{chunk-AZ24RI5L.js → chunk-J3ODKAWN.js} +2 -2
- package/dist/{chunk-BB6QKWHZ.js → chunk-JRQ4LBQI.js} +10 -10
- package/dist/{chunk-MY6GUH26.js → chunk-JX4RCC6B.js} +2 -2
- package/dist/{chunk-XUCQVKLQ.js → chunk-K4GUO7FV.js} +4 -4
- package/dist/{chunk-J64NZ6NF.js → chunk-KSZHIAI2.js} +1 -1
- package/dist/{chunk-CUYHST3B.js → chunk-LBRHDWEA.js} +1 -1
- package/dist/{chunk-GSYZZFI5.js → chunk-LC5LY5V2.js} +2 -2
- package/dist/{chunk-WP22MHH6.js → chunk-LNQDICFJ.js} +9 -9
- package/dist/{chunk-PIXJL77H.js → chunk-M6J25PAZ.js} +1 -1
- package/dist/{chunk-UQLHKLF4.js → chunk-MIVSVEK4.js} +8 -8
- package/dist/{chunk-6K7RODXG.js → chunk-MKFQ5E7J.js} +1 -1
- package/dist/{chunk-44GP7PD5.js → chunk-MPJQMMBZ.js} +12 -0
- package/dist/{chunk-WQ6G6FFM.js → chunk-NFWRIC2V.js} +1 -1
- package/dist/{chunk-7SX4IY6T.js → chunk-NJYA4QSN.js} +1 -1
- package/dist/{chunk-RU725VCJ.js → chunk-NMKLX57Y.js} +10 -35
- package/dist/{chunk-RPKBWJBB.js → chunk-NP2SE6MQ.js} +1 -1
- package/dist/{chunk-ITSBBQTH.js → chunk-NUYWNKHH.js} +2 -2
- package/dist/{chunk-DV2VEJCC.js → chunk-NWSPPGIE.js} +6 -6
- package/dist/{chunk-AYOVY75O.js → chunk-NY56FM55.js} +3 -3
- package/dist/{chunk-MFW6P7WH.js → chunk-OSIUWQ3N.js} +3 -3
- package/dist/{chunk-2GM7N5TV.js → chunk-OWJVSJLA.js} +9 -9
- package/dist/{chunk-GDJW64XE.js → chunk-OYKNMFUY.js} +1 -1
- package/dist/{chunk-4R6OMKXB.js → chunk-PIHAUVA4.js} +5 -5
- package/dist/{chunk-C7QRRTAW.js → chunk-PNCKZFPE.js} +2 -2
- package/dist/{chunk-DDPGEGHB.js → chunk-POBNN5DP.js} +2 -2
- package/dist/{chunk-XJ2TBXHA.js → chunk-PQ5NW3QZ.js} +8 -8
- package/dist/{chunk-FKLE6QA3.js → chunk-PXEUQ7EG.js} +12 -12
- package/dist/{chunk-WEF6MXFG.js → chunk-QOZ4RVQY.js} +8 -8
- package/dist/{chunk-LR6RRDWN.js → chunk-QRIW46LR.js} +5 -5
- package/dist/{chunk-7W4XLIVH.js → chunk-R2PTZ6QM.js} +10 -10
- package/dist/{chunk-M2BCY7H3.js → chunk-RCBHL2B5.js} +189 -136
- package/dist/{chunk-66YFDTT6.js → chunk-RJYFHEP4.js} +3 -3
- package/dist/{chunk-P3SKSKJI.js → chunk-RNXX2GOQ.js} +2 -2
- package/dist/{chunk-RGWYZR3S.js → chunk-RRBV4HIM.js} +2 -2
- package/dist/{chunk-44FTCIRI.js → chunk-RY5RRKYN.js} +8 -8
- package/dist/{chunk-Y7PSAHAY.js → chunk-S4LLHDGK.js} +3 -3
- package/dist/chunk-S7C32S2T.js +825 -0
- package/dist/{chunk-JRUEIRJB.js → chunk-SLO22FPS.js} +2 -2
- package/dist/{chunk-47E5UTXE.js → chunk-SMEVBJJJ.js} +2 -2
- package/dist/{chunk-QFHWYWQL.js → chunk-SVQDLYX7.js} +1 -1
- package/dist/{chunk-WP2RLGDI.js → chunk-TCX5PMEY.js} +1 -1
- package/dist/{chunk-EXKCRXPO.js → chunk-TQ644YGV.js} +12 -12
- package/dist/{chunk-WRCAH3UO.js → chunk-U762HK4D.js} +15 -15
- package/dist/{chunk-LYLNMN77.js → chunk-VCHYS3RD.js} +8 -3
- package/dist/{chunk-7UDAIP6W.js → chunk-WHRIN7N3.js} +1 -1
- package/dist/{chunk-ZUCXFXLD.js → chunk-X3WYJ5T7.js} +2 -2
- package/dist/{chunk-UKJLPA7R.js → chunk-X6IZP2BD.js} +1 -1
- package/dist/{chunk-LCJURK7L.js → chunk-Y6GQQ4Y2.js} +1 -1
- package/dist/{chunk-HTWH2XQL.js → chunk-YE7D2S75.js} +2 -2
- package/dist/{chunk-DZPHN2WN.js → chunk-YKGUSW6D.js} +10 -10
- package/dist/{chunk-K5XT7NHD.js → chunk-YWRZG6GN.js} +10 -10
- package/dist/{chunk-JQ57AWDL.js → chunk-ZJ4PYTCK.js} +1 -1
- package/dist/completion-registry.d.ts +6 -0
- package/dist/completion-registry.js +62 -6
- package/dist/{d3-B6524aaP.d.ts → d3-2S3PrXik.d.ts} +11 -0
- package/dist/dgmo-router-BJBXSZMV.js +94 -0
- package/dist/{dimensions-7MF7VSGS.js → dimensions-AMA2S7RO.js} +5 -5
- package/dist/editor.js +12 -0
- package/dist/{flowchart-parser-GG7XBLQH.js → flowchart-parser-ADZIFVCH.js} +3 -3
- package/dist/{flowchart-renderer-DZQZRL2F.js → flowchart-renderer-CAG6ZNJ6.js} +5 -5
- package/dist/highlight.js +12 -0
- package/dist/index.d.ts +26 -5
- package/dist/index.js +83 -56
- package/dist/{layout-EFEZ533S.js → layout-6OSF2UGP.js} +3 -3
- package/dist/{layout-IGAVGDME.js → layout-C6MKMOBI.js} +1 -1
- package/dist/{layout-XUW444O5.js → layout-QS2SESBU.js} +2 -2
- package/dist/{layout-PP36LUTA.js → layout-T2PGKQUQ.js} +3 -3
- package/dist/{layout-Q3RYSODA.js → layout-UFB2O4AO.js} +3 -3
- package/dist/{layout-MSSHF45T.js → layout-UPQGIT3N.js} +2 -2
- package/dist/{layout-6L3BIFEZ.js → layout-VQ2USZJ3.js} +3 -3
- package/dist/{layout-DXVAYF6W.js → layout-VRJ5YFUE.js} +2 -2
- package/dist/{palettes-WZAIQTEG.js → palettes-WQHELGVQ.js} +2 -1
- package/dist/{parser-KYPP2DX6.js → parser-223VOHSB.js} +4 -4
- package/dist/{parser-JOOAVBJI.js → parser-2PNV7UI3.js} +3 -3
- package/dist/{parser-GZ3LVF72.js → parser-3MGA2MTM.js} +2 -2
- package/dist/{parser-NOANDFJ4.js → parser-4AR25MAS.js} +2 -2
- package/dist/{parser-337TACHB.js → parser-4B2PIXHI.js} +3 -3
- package/dist/{parser-KZMJNKDW.js → parser-57YQEEMC.js} +2 -2
- package/dist/{parser-J4DVNL4W.js → parser-5ZD2NKGU.js} +4 -4
- package/dist/{parser-LANGKWRG.js → parser-6LMB7BQQ.js} +2 -2
- package/dist/parser-AL6YL7KM.js +12 -0
- package/dist/{parser-5655XSOR.js → parser-B2FWP7ZO.js} +3 -3
- package/dist/{parser-GEKPWSSK.js → parser-BJDQX4KV.js} +3 -3
- package/dist/{parser-UTXFJG4X.js → parser-CA5WC5HF.js} +3 -3
- package/dist/{parser-KZMALSB2.js → parser-E5HFYL7B.js} +4 -4
- package/dist/{parser-GCCWMBTU.js → parser-ESZ5J5IJ.js} +5 -4
- package/dist/{parser-256EIWB2.js → parser-FDXUQ5TI.js} +2 -2
- package/dist/{parser-AN3MGHRL.js → parser-FV6RGALQ.js} +3 -3
- package/dist/{parser-DGF3ZEO6.js → parser-HPR7G7F6.js} +3 -3
- package/dist/{parser-OKB64MMN.js → parser-I4HZVIHX.js} +3 -3
- package/dist/{parser-P4TOQYNN.js → parser-J3BM2AP2.js} +3 -3
- package/dist/{parser-NPXPJHWN.js → parser-JFNDS5E5.js} +3 -3
- package/dist/{parser-TL3JA4RI.js → parser-KFIK3EOO.js} +3 -3
- package/dist/{parser-IMM2JJX3.js → parser-LGUT7KKH.js} +4 -4
- package/dist/{parser-KFYRTGTC.js → parser-MYRGCK7Q.js} +4 -4
- package/dist/{parser-ZLKYDFI5.js → parser-NAUUUCI3.js} +3 -3
- package/dist/{parser-DHSFIUPU.js → parser-NJ5VEZA3.js} +3 -3
- package/dist/{parser-OVQTTTUJ.js → parser-OFTMA36M.js} +2 -2
- package/dist/{parser-AKBVJHMK.js → parser-OV2WDSEV.js} +3 -3
- package/dist/{parser-LGS65QPN.js → parser-Q3UAOLEZ.js} +2 -2
- package/dist/{parser-XYY5NHP4.js → parser-R6OETHWM.js} +2 -2
- package/dist/{parser-7OEE7QT6.js → parser-RARXAHC7.js} +2 -2
- package/dist/{parser-NGHQQGD2.js → parser-T2RVIRDG.js} +3 -3
- package/dist/{parser-WEVTMBJ5.js → parser-W2DWCCLO.js} +3 -3
- package/dist/{parser-HCGXNHHL.js → parser-WFY4ZJUW.js} +3 -3
- package/dist/{parser-SA3RAJFS.js → parser-WSONWDFN.js} +2 -2
- package/dist/{renderer-CHQZES6G.js → renderer-3N64GVNM.js} +2 -2
- package/dist/{renderer-JR2XNZAH.js → renderer-3QM2DK7I.js} +5 -5
- package/dist/{renderer-XHEMXBQM.js → renderer-3W5T3IU6.js} +5 -5
- package/dist/{renderer-2ZQ6DPVD.js → renderer-4Z7FRQ2A.js} +2 -2
- package/dist/{renderer-EAORWLVK.js → renderer-52CHSV6S.js} +7 -7
- package/dist/{renderer-ZXQXRNDR.js → renderer-6OOJNEQE.js} +6 -6
- package/dist/{renderer-IR5GGAPB.js → renderer-A3PMPUO6.js} +11 -7
- package/dist/{renderer-3AD4NDF5.js → renderer-AM4VZSBQ.js} +6 -6
- package/dist/{renderer-P4XCRNCY.js → renderer-B3CPMS5R.js} +6 -6
- package/dist/{renderer-VGQMJC5K.js → renderer-B4KE3NM4.js} +11 -10
- package/dist/renderer-COSJM7UG.js +80 -0
- package/dist/{renderer-NAA7D33G.js → renderer-FXCVH2M5.js} +10 -9
- package/dist/{renderer-J4OS77PK.js → renderer-GWH5ACJ5.js} +3 -3
- package/dist/{renderer-7HOSI6JJ.js → renderer-IG72UJHW.js} +4 -4
- package/dist/{renderer-QQHQY3GT.js → renderer-IO3D5E4E.js} +5 -5
- package/dist/{renderer-6OQM32X3.js → renderer-IPDCAACY.js} +3 -3
- package/dist/{renderer-VYWCMRWA.js → renderer-KK5BU5K2.js} +5 -5
- package/dist/{renderer-7MCC6GKH.js → renderer-LD2H7WGP.js} +2 -2
- package/dist/{renderer-DCJ4AQ3N.js → renderer-MK47ESCB.js} +5 -5
- package/dist/{renderer-BLHN3RCY.js → renderer-MRMFYYZT.js} +2 -2
- package/dist/{renderer-XFEZ5UBE.js → renderer-O5RQHGK2.js} +6 -6
- package/dist/{renderer-43ESBXVY.js → renderer-OA5D3ZKB.js} +6 -6
- package/dist/{renderer-YTEZK3GC.js → renderer-ON4PTUHJ.js} +7 -7
- package/dist/{renderer-JRVY7HAD.js → renderer-OPDSKCQS.js} +4 -4
- package/dist/{renderer-FCXRDYSJ.js → renderer-PLRMST57.js} +7 -7
- package/dist/{renderer-WB75JME5.js → renderer-PSMRAL72.js} +6 -6
- package/dist/{renderer-7L7J4DHO.js → renderer-PXGCR7N4.js} +7 -6
- package/dist/{renderer-CEIX5JPA.js → renderer-R7OYCJEA.js} +2 -2
- package/dist/{renderer-DBNDLKPE.js → renderer-SBXCPA3S.js} +7 -7
- package/dist/{renderer-4JE5ORRO.js → renderer-TMQNTUQS.js} +7 -7
- package/dist/renderer-TTKTBB4C.js +46 -0
- package/dist/{renderer-5GZNGZU5.js → renderer-UVFGW2O6.js} +9 -7
- package/dist/{renderer-7VQOKAII.js → renderer-W22GX72R.js} +6 -6
- package/dist/{renderer-radial-NA5DVBG4.js → renderer-radial-42LVSG74.js} +5 -5
- package/dist/{state-parser-FE3RF6XY.js → state-parser-ROKY5KSI.js} +4 -4
- package/dist/{state-renderer-4S2C2CHB.js → state-renderer-MMG23G4W.js} +8 -8
- package/dist/{themes-CzuBdx1T.d.ts → themes-Cm2YBcT8.d.ts} +38 -2
- package/docs/ai-integration.md +4 -3
- package/docs/language-reference.md +162 -12
- package/gallery/fixtures/sketch.dgmo +2 -2
- package/gallery/fixtures/whiteboard.dgmo +18 -0
- package/package.json +2 -1
- package/dist/dgmo-router-7WANZOBD.js +0 -92
- package/dist/renderer-TJJGFQGT.js +0 -78
- package/dist/{chunk-CX6OH5WP.js → chunk-A5PUOHIS.js} +3 -3
- package/dist/{chunk-5LE2CTLS.js → chunk-NTJ5HVV6.js} +3 -3
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
getSimpleChartLegendGroups,
|
|
12
12
|
parseChart,
|
|
13
13
|
parseExtendedChart
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-WHRIN7N3.js";
|
|
15
15
|
import {
|
|
16
16
|
EMPHASIS_DIM_OPACITY,
|
|
17
17
|
EMPHASIS_DIM_TEXT_OPACITY,
|
|
@@ -25,25 +25,25 @@ import {
|
|
|
25
25
|
initD3Chart,
|
|
26
26
|
renderChartTitle,
|
|
27
27
|
resolveExportPalette
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-X6IZP2BD.js";
|
|
29
29
|
import {
|
|
30
30
|
layoutInlineHeader
|
|
31
31
|
} from "./chunk-CNUN5GO6.js";
|
|
32
|
+
import {
|
|
33
|
+
computeLegendLayout
|
|
34
|
+
} from "./chunk-NS7L7YKH.js";
|
|
32
35
|
import {
|
|
33
36
|
TITLE_FONT_SIZE,
|
|
34
37
|
TITLE_FONT_WEIGHT,
|
|
35
38
|
TITLE_OFFSET,
|
|
36
39
|
TITLE_Y
|
|
37
40
|
} from "./chunk-VLC6WNRD.js";
|
|
38
|
-
import {
|
|
39
|
-
computeLegendLayout
|
|
40
|
-
} from "./chunk-NS7L7YKH.js";
|
|
41
41
|
import {
|
|
42
42
|
FONT_FAMILY
|
|
43
43
|
} from "./chunk-ICLB27PZ.js";
|
|
44
44
|
import {
|
|
45
45
|
tagAttrKey
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-HX2KJEPD.js";
|
|
47
47
|
import {
|
|
48
48
|
LEGEND_DOT_R,
|
|
49
49
|
LEGEND_ENTRY_FONT_SIZE,
|
|
@@ -52,7 +52,8 @@ import {
|
|
|
52
52
|
legendChromeColors
|
|
53
53
|
} from "./chunk-I6GGMCTV.js";
|
|
54
54
|
import {
|
|
55
|
-
measureText
|
|
55
|
+
measureText,
|
|
56
|
+
truncateText
|
|
56
57
|
} from "./chunk-KAO7JL4I.js";
|
|
57
58
|
import {
|
|
58
59
|
contrastText,
|
|
@@ -418,6 +419,27 @@ function planCategoryLabels(labels, slot, font = TICK_FONT) {
|
|
|
418
419
|
keep: all(stride)
|
|
419
420
|
};
|
|
420
421
|
}
|
|
422
|
+
function rotatedLeftReach(first, plan, font) {
|
|
423
|
+
if (!plan.rotate || first === void 0) return 0;
|
|
424
|
+
const rad = LABEL_ROTATE_DEG * Math.PI / 180;
|
|
425
|
+
return measureText(first, font) * Math.cos(rad) + font * 0.8 * Math.sin(rad);
|
|
426
|
+
}
|
|
427
|
+
function planLabelsFitLeft(labels, mLeft0, plotWFor, slotFor, firstOffset, font = TICK_FONT) {
|
|
428
|
+
const EDGE = 4;
|
|
429
|
+
let mLeft = mLeft0;
|
|
430
|
+
let plotW = plotWFor(mLeft);
|
|
431
|
+
let plan = planCategoryLabels(labels, slotFor(plotW), font);
|
|
432
|
+
for (let i = 0; i < 6; i++) {
|
|
433
|
+
const reach = rotatedLeftReach(labels[0], plan, font);
|
|
434
|
+
const need = Math.ceil(reach + EDGE - firstOffset(plotW));
|
|
435
|
+
const next = Math.max(mLeft0, need);
|
|
436
|
+
if (next === mLeft) break;
|
|
437
|
+
mLeft = next;
|
|
438
|
+
plotW = plotWFor(mLeft);
|
|
439
|
+
plan = planCategoryLabels(labels, slotFor(plotW), font);
|
|
440
|
+
}
|
|
441
|
+
return { mLeft, plotW, plan };
|
|
442
|
+
}
|
|
421
443
|
function labelSurvives(plan, i) {
|
|
422
444
|
return plan.keep.has(i);
|
|
423
445
|
}
|
|
@@ -485,12 +507,19 @@ function renderBar(svg, chart, width, height, colors, palette, isDark, textColor
|
|
|
485
507
|
const loVal = Math.min(0, minVal);
|
|
486
508
|
const niceMax = hiVal === 0 && loVal === 0 ? 1 : hiVal;
|
|
487
509
|
const leftLabels = horizontal ? data.map((d) => d.label) : [fmtNum(niceMax), fmtNum(niceMax / 2), fmtNum(loVal), fmtNum(loVal / 2)];
|
|
488
|
-
const
|
|
489
|
-
const
|
|
490
|
-
const
|
|
491
|
-
|
|
492
|
-
|
|
510
|
+
const mLeft0 = computeLeftMargin(chart.ylabel, leftLabels);
|
|
511
|
+
const catLabels = data.map((d) => d.label);
|
|
512
|
+
const fit = horizontal ? null : planLabelsFitLeft(
|
|
513
|
+
catLabels,
|
|
514
|
+
mLeft0,
|
|
515
|
+
(ml) => width - ml - 32,
|
|
516
|
+
(pw) => data.length === 0 ? Infinity : pw / data.length,
|
|
517
|
+
// scaleBand padding 0.3: first centre sits 0.65 steps in
|
|
518
|
+
(pw) => pw / (data.length + 0.3) * 0.65
|
|
493
519
|
);
|
|
520
|
+
const mLeft = fit ? fit.mLeft : mLeft0;
|
|
521
|
+
const plotW = fit ? fit.plotW : width - mLeft - 32;
|
|
522
|
+
const labelPlan = fit?.plan ?? planCategoryLabels(catLabels, Infinity);
|
|
494
523
|
const m = {
|
|
495
524
|
top: top + 8,
|
|
496
525
|
right: 32,
|
|
@@ -719,13 +748,18 @@ function renderLine(svg, chart, width, height, colors, palette, isDark, textColo
|
|
|
719
748
|
};
|
|
720
749
|
const [loL, hiL] = extentFor("left");
|
|
721
750
|
const [loR, hiR] = dual ? extentFor("right") : [0, 1];
|
|
722
|
-
const mLeft = computeLeftMargin(chart.ylabel, [fmtNum(hiL), fmtNum(loL)]);
|
|
723
751
|
const mRight = dual ? computeLeftMargin(chart.yrlabel, [fmtNum(hiR), fmtNum(loR)]) : 32;
|
|
724
|
-
const
|
|
725
|
-
const
|
|
752
|
+
const mLeft0 = computeLeftMargin(chart.ylabel, [fmtNum(hiL), fmtNum(loL)]);
|
|
753
|
+
const fit = planLabelsFitLeft(
|
|
726
754
|
data.map((d) => d.label),
|
|
727
|
-
|
|
755
|
+
mLeft0,
|
|
756
|
+
(ml) => width - ml - mRight,
|
|
757
|
+
(pw) => data.length > 0 ? pw / data.length : pw,
|
|
758
|
+
(pw) => (data.length > 0 ? pw / data.length : pw) * 0.5
|
|
728
759
|
);
|
|
760
|
+
const mLeft = fit.mLeft;
|
|
761
|
+
const plotW = fit.plotW;
|
|
762
|
+
const labelPlan = fit.plan;
|
|
729
763
|
const m = {
|
|
730
764
|
top: top + 8,
|
|
731
765
|
right: mRight,
|
|
@@ -1481,6 +1515,11 @@ function renderScatter(svg, chart, width, height, colors, palette, isDark, textC
|
|
|
1481
1515
|
// src/charts-d3/sankey.ts
|
|
1482
1516
|
var NODE_W = 20;
|
|
1483
1517
|
var NODE_GAP = 14;
|
|
1518
|
+
var LOOP_GAP = 8;
|
|
1519
|
+
var LOOP_BEND = 1.25;
|
|
1520
|
+
var LABEL_FONT3 = 13;
|
|
1521
|
+
var LABEL_PAD = 6;
|
|
1522
|
+
var MAX_LABEL_MARGIN = 0.4;
|
|
1484
1523
|
var RIBBON_FILL_OPACITY = 0.6;
|
|
1485
1524
|
function renderSankey(svg, chart, width, height, colors, bgColor, textColor, topInset) {
|
|
1486
1525
|
const links = chart.links ?? [];
|
|
@@ -1519,9 +1558,31 @@ function renderSankey(svg, chart, width, height, colors, bgColor, textColor, top
|
|
|
1519
1558
|
raw: chart.nodeColors?.[name] ?? colors[i % colors.length]
|
|
1520
1559
|
})
|
|
1521
1560
|
);
|
|
1561
|
+
const outgoing = /* @__PURE__ */ new Map();
|
|
1562
|
+
for (const l of links) {
|
|
1563
|
+
const list = outgoing.get(l.source) ?? [];
|
|
1564
|
+
list.push(l);
|
|
1565
|
+
outgoing.set(l.source, list);
|
|
1566
|
+
}
|
|
1567
|
+
const backEdges = /* @__PURE__ */ new Set();
|
|
1568
|
+
const visitState = /* @__PURE__ */ new Map();
|
|
1569
|
+
const visit = (name) => {
|
|
1570
|
+
visitState.set(name, "open");
|
|
1571
|
+
for (const l of outgoing.get(name) ?? []) {
|
|
1572
|
+
const st = visitState.get(l.target);
|
|
1573
|
+
if (st === "open") backEdges.add(l);
|
|
1574
|
+
else if (st === void 0) visit(l.target);
|
|
1575
|
+
}
|
|
1576
|
+
visitState.set(name, "done");
|
|
1577
|
+
};
|
|
1578
|
+
const hasIncoming = new Set(links.map((l) => l.target));
|
|
1579
|
+
for (const name of names) if (!hasIncoming.has(name)) visit(name);
|
|
1580
|
+
for (const name of names) if (!visitState.has(name)) visit(name);
|
|
1581
|
+
const forwardLinks = links.filter((l) => !backEdges.has(l));
|
|
1582
|
+
const backLinks = links.filter((l) => backEdges.has(l));
|
|
1522
1583
|
for (let pass = 0; pass < names.length; pass++) {
|
|
1523
1584
|
let changed = false;
|
|
1524
|
-
for (const l of
|
|
1585
|
+
for (const l of forwardLinks) {
|
|
1525
1586
|
const s = node.get(l.source);
|
|
1526
1587
|
const t = node.get(l.target);
|
|
1527
1588
|
if (t.rank < s.rank + 1) {
|
|
@@ -1539,17 +1600,44 @@ function renderSankey(svg, chart, width, height, colors, bgColor, textColor, top
|
|
|
1539
1600
|
const maxRank = Math.max(...[...node.values()].map((n) => n.rank));
|
|
1540
1601
|
const layers = Array.from({ length: maxRank + 1 }, () => []);
|
|
1541
1602
|
for (const n of node.values()) layers[n.rank].push(n);
|
|
1542
|
-
|
|
1603
|
+
let plotLeft = 16;
|
|
1543
1604
|
const top = topInset + 8;
|
|
1544
|
-
const
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
const
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1605
|
+
const rightPad = 16;
|
|
1606
|
+
let plotH = height - top - 24;
|
|
1607
|
+
const fitScale = (h) => {
|
|
1608
|
+
let scale = Infinity;
|
|
1609
|
+
for (const layer of layers) {
|
|
1610
|
+
const tot = layer.reduce((a, n) => a + n.value, 0);
|
|
1611
|
+
const avail = h - (layer.length - 1) * NODE_GAP;
|
|
1612
|
+
if (tot > 0) scale = Math.min(scale, avail / tot);
|
|
1613
|
+
}
|
|
1614
|
+
return isFinite(scale) && scale > 0 ? scale : 1;
|
|
1615
|
+
};
|
|
1616
|
+
let valueScale = fitScale(plotH);
|
|
1617
|
+
if (backLinks.length > 0) {
|
|
1618
|
+
const backTotal = backLinks.reduce((a, l) => a + l.value, 0);
|
|
1619
|
+
const reserve = backTotal * valueScale + LOOP_GAP * (backLinks.length + 1);
|
|
1620
|
+
plotH = Math.max(plotH * 0.5, plotH - reserve);
|
|
1621
|
+
valueScale = fitScale(plotH);
|
|
1622
|
+
}
|
|
1623
|
+
const bend = /* @__PURE__ */ new Map();
|
|
1624
|
+
let leftBend = 0;
|
|
1625
|
+
for (const l of backLinks) {
|
|
1626
|
+
const over = l.value * valueScale * LOOP_BEND;
|
|
1627
|
+
bend.set(l.source, Math.max(bend.get(l.source) ?? 0, over));
|
|
1628
|
+
if (node.get(l.target).rank === 0) leftBend = Math.max(leftBend, over);
|
|
1629
|
+
}
|
|
1630
|
+
plotLeft += leftBend;
|
|
1631
|
+
const labelOffset = (n) => NODE_W + (bend.get(n.name) ?? 0) + LABEL_PAD;
|
|
1632
|
+
let labelMargin = 0;
|
|
1633
|
+
for (const n of layers[maxRank]) {
|
|
1634
|
+
labelMargin = Math.max(
|
|
1635
|
+
labelMargin,
|
|
1636
|
+
labelOffset(n) - NODE_W + measureText(n.name, LABEL_FONT3)
|
|
1637
|
+
);
|
|
1638
|
+
}
|
|
1639
|
+
labelMargin = Math.min(labelMargin, width * MAX_LABEL_MARGIN);
|
|
1640
|
+
const plotW = Math.max(NODE_W, width - plotLeft - rightPad - labelMargin);
|
|
1553
1641
|
const layerX = (r) => plotLeft + (maxRank === 0 ? 0 : r * (plotW - NODE_W) / maxRank);
|
|
1554
1642
|
const placeLayer = (layer) => {
|
|
1555
1643
|
layer.sort((a, b) => a.order - b.order);
|
|
@@ -1569,7 +1657,7 @@ function renderSankey(svg, chart, width, height, colors, bgColor, textColor, top
|
|
|
1569
1657
|
const order = forward ? [...layers.keys()] : [...layers.keys()].reverse();
|
|
1570
1658
|
for (const r of order) {
|
|
1571
1659
|
for (const n of layers[r]) {
|
|
1572
|
-
const neigh = forward ?
|
|
1660
|
+
const neigh = forward ? forwardLinks.filter((l) => l.target === n.name).map((l) => node.get(l.source)) : forwardLinks.filter((l) => l.source === n.name).map((l) => node.get(l.target));
|
|
1573
1661
|
n.order = neigh.length ? neigh.reduce((a, m) => a + center(m), 0) / neigh.length : center(n);
|
|
1574
1662
|
}
|
|
1575
1663
|
placeLayer(layers[r]);
|
|
@@ -1581,12 +1669,16 @@ function renderSankey(svg, chart, width, height, colors, bgColor, textColor, top
|
|
|
1581
1669
|
outOff.set(n.name, n.y);
|
|
1582
1670
|
inOff.set(n.name, n.y);
|
|
1583
1671
|
}
|
|
1584
|
-
const ordered = [
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1672
|
+
const ordered = [
|
|
1673
|
+
...[...forwardLinks].sort((a, b) => {
|
|
1674
|
+
const sa = node.get(a.source);
|
|
1675
|
+
const sb = node.get(b.source);
|
|
1676
|
+
if (sa.y !== sb.y) return sa.y - sb.y;
|
|
1677
|
+
return node.get(a.target).y - node.get(b.target).y;
|
|
1678
|
+
}),
|
|
1679
|
+
...backLinks
|
|
1680
|
+
];
|
|
1681
|
+
let laneY = top + plotH + LOOP_GAP;
|
|
1590
1682
|
for (const l of ordered) {
|
|
1591
1683
|
const s = node.get(l.source);
|
|
1592
1684
|
const t = node.get(l.target);
|
|
@@ -1600,13 +1692,24 @@ function renderSankey(svg, chart, width, height, colors, bgColor, textColor, top
|
|
|
1600
1692
|
const cx0 = sx + (tx - sx) * 0.5;
|
|
1601
1693
|
const raw = l.color ?? s.raw;
|
|
1602
1694
|
const color = solid ? raw : mix(raw, bgColor, 45);
|
|
1603
|
-
const
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1695
|
+
const opacity = linkDimmed(l) ? RIBBON_FILL_OPACITY * EMPHASIS_DIM_OPACITY : RIBBON_FILL_OPACITY;
|
|
1696
|
+
let ribbon;
|
|
1697
|
+
if (backEdges.has(l)) {
|
|
1698
|
+
const lane = laneY + th / 2;
|
|
1699
|
+
laneY += th + LOOP_GAP;
|
|
1700
|
+
const k = th;
|
|
1701
|
+
const y1 = sy + th / 2;
|
|
1702
|
+
const y2 = ty + th / 2;
|
|
1703
|
+
ribbon = svg.append("path").attr(
|
|
1704
|
+
"d",
|
|
1705
|
+
`M${sx},${y1} C${sx + k},${y1} ${sx + k},${lane} ${sx},${lane} L${tx},${lane} C${tx - k},${lane} ${tx - k},${y2} ${tx},${y2}`
|
|
1706
|
+
).attr("fill", "none").attr("stroke", color).attr("stroke-width", th).attr("stroke-opacity", opacity);
|
|
1707
|
+
} else {
|
|
1708
|
+
ribbon = svg.append("path").attr(
|
|
1709
|
+
"d",
|
|
1710
|
+
`M${sx},${sy} C${cx0},${sy} ${cx0},${ty} ${tx},${ty} L${tx},${ty + th} C${cx0},${ty + th} ${cx0},${sy + th} ${sx},${sy + th} Z`
|
|
1711
|
+
).attr("fill", color).attr("fill-opacity", opacity);
|
|
1712
|
+
}
|
|
1610
1713
|
tagDatum(ribbon, {
|
|
1611
1714
|
line: l.lineNumber,
|
|
1612
1715
|
// U+241F (symbol-for-unit-separator) — collision-proof AND XML-legal;
|
|
@@ -1631,8 +1734,11 @@ function renderSankey(svg, chart, width, height, colors, bgColor, textColor, top
|
|
|
1631
1734
|
value: String(n.value),
|
|
1632
1735
|
color: n.raw
|
|
1633
1736
|
});
|
|
1634
|
-
const
|
|
1635
|
-
const
|
|
1737
|
+
const labelX = n.x + labelOffset(n);
|
|
1738
|
+
const room = (n.rank === maxRank ? width - rightPad / 2 : layerX(n.rank + 1)) - LABEL_PAD - labelX;
|
|
1739
|
+
const shown = truncateText(n.name, LABEL_FONT3, room);
|
|
1740
|
+
const label = svg.append("text").attr("x", labelX).attr("y", n.y + n.h / 2 + 4).attr("text-anchor", "start").attr("fill", textColor).attr("font-size", LABEL_FONT3).attr("font-family", FONT_FAMILY).text(shown);
|
|
1741
|
+
if (shown !== n.name) label.append("title").text(n.name);
|
|
1636
1742
|
if (nodeDim) label.attr("opacity", EMPHASIS_DIM_TEXT_OPACITY);
|
|
1637
1743
|
}
|
|
1638
1744
|
}
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
import {
|
|
2
|
+
appendArrowheadMarkers,
|
|
3
|
+
appendReverseArrowheadMarkers
|
|
4
|
+
} from "./chunk-XBJJP2HN.js";
|
|
5
|
+
import {
|
|
6
|
+
CYLINDER_RY,
|
|
7
|
+
QUEUE_CAP,
|
|
2
8
|
collectCardMetadata,
|
|
3
9
|
layoutC4Components,
|
|
4
10
|
layoutC4Containers,
|
|
5
11
|
layoutC4Context,
|
|
6
12
|
layoutC4Deployment
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import {
|
|
9
|
-
appendArrowheadMarkers,
|
|
10
|
-
appendReverseArrowheadMarkers
|
|
11
|
-
} from "./chunk-XBJJP2HN.js";
|
|
13
|
+
} from "./chunk-VCHYS3RD.js";
|
|
12
14
|
import {
|
|
13
15
|
renderInlineText
|
|
14
16
|
} from "./chunk-S7W75MIM.js";
|
|
17
|
+
import {
|
|
18
|
+
renderIntegratedLegend
|
|
19
|
+
} from "./chunk-NJYA4QSN.js";
|
|
15
20
|
import {
|
|
16
21
|
ARROWHEAD_HEIGHT,
|
|
17
22
|
ARROWHEAD_WIDTH,
|
|
@@ -33,25 +38,22 @@ import {
|
|
|
33
38
|
TITLE_FONT_SIZE,
|
|
34
39
|
TITLE_FONT_WEIGHT
|
|
35
40
|
} from "./chunk-VLC6WNRD.js";
|
|
36
|
-
import {
|
|
37
|
-
renderIntegratedLegend
|
|
38
|
-
} from "./chunk-7SX4IY6T.js";
|
|
39
41
|
import {
|
|
40
42
|
FONT_FAMILY
|
|
41
43
|
} from "./chunk-ICLB27PZ.js";
|
|
42
44
|
import {
|
|
43
45
|
parseC4
|
|
44
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-LC5LY5V2.js";
|
|
45
47
|
import {
|
|
46
48
|
preprocessDescriptionLine
|
|
47
49
|
} from "./chunk-IYULMRBE.js";
|
|
48
50
|
import {
|
|
49
51
|
resolveGroupTagColor,
|
|
50
52
|
tagAttrKey
|
|
51
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-HX2KJEPD.js";
|
|
52
54
|
import {
|
|
53
55
|
fillModeFromOptions
|
|
54
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-MPJQMMBZ.js";
|
|
55
57
|
import {
|
|
56
58
|
LEGEND_HEIGHT
|
|
57
59
|
} from "./chunk-I6GGMCTV.js";
|
|
@@ -81,9 +83,7 @@ var TYPE_LABEL_HEIGHT = 18;
|
|
|
81
83
|
var DIVIDER_GAP = 6;
|
|
82
84
|
var NAME_HEIGHT = 20;
|
|
83
85
|
var BOUNDARY_LABEL_FONT_SIZE = 12;
|
|
84
|
-
var CYLINDER_RY = 8;
|
|
85
86
|
var CLOUD_BUMP = 7;
|
|
86
|
-
var QUEUE_CAP = 16;
|
|
87
87
|
var PERSON_HEAD_R = 4;
|
|
88
88
|
var PERSON_ARM_SPAN = 10;
|
|
89
89
|
var PERSON_LEG_SPAN = 7;
|
|
@@ -232,7 +232,7 @@ function renderC4Context(container, parsed, layout, palette, isDark, onClickItem
|
|
|
232
232
|
nodeG.attr(`data-tag-${tagKey}`, tagValue.toLowerCase());
|
|
233
233
|
} else {
|
|
234
234
|
const tagGroup = parsed.tagGroups.find(
|
|
235
|
-
(g) => g.name
|
|
235
|
+
(g) => tagAttrKey(g.name) === tagKey || g.alias?.toLowerCase() === tagKey
|
|
236
236
|
);
|
|
237
237
|
if (tagGroup?.defaultValue) {
|
|
238
238
|
nodeG.attr(`data-tag-${tagKey}`, tagGroup.defaultValue.toLowerCase());
|
|
@@ -863,7 +863,7 @@ function renderC4Containers(container, parsed, layout, palette, isDark, onClickI
|
|
|
863
863
|
nodeG.attr(`data-tag-${tagKey}`, tagValue.toLowerCase());
|
|
864
864
|
} else {
|
|
865
865
|
const tagGroup = parsed.tagGroups.find(
|
|
866
|
-
(g) => g.name
|
|
866
|
+
(g) => tagAttrKey(g.name) === tagKey || g.alias?.toLowerCase() === tagKey
|
|
867
867
|
);
|
|
868
868
|
if (tagGroup?.defaultValue) {
|
|
869
869
|
nodeG.attr(`data-tag-${tagKey}`, tagGroup.defaultValue.toLowerCase());
|
|
@@ -1128,6 +1128,8 @@ function renderC4DeploymentForExport(content, theme, palette) {
|
|
|
1128
1128
|
export {
|
|
1129
1129
|
renderC4Context,
|
|
1130
1130
|
renderC4ContextForExport,
|
|
1131
|
+
drawCylinderCard,
|
|
1132
|
+
drawQueueCard,
|
|
1131
1133
|
renderC4Containers,
|
|
1132
1134
|
renderC4ContainersForExport,
|
|
1133
1135
|
renderC4ComponentsForExport,
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
tagAttrKey,
|
|
12
12
|
validateTagGroupNames,
|
|
13
13
|
validateTagValues
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-HX2KJEPD.js";
|
|
15
15
|
import {
|
|
16
16
|
AliasRegistry,
|
|
17
17
|
OPTION_NOCOLON_RE,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
splitNameAndMeta,
|
|
24
24
|
warnUnknownMetaKeys,
|
|
25
25
|
withTagAliases
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-MPJQMMBZ.js";
|
|
27
27
|
import {
|
|
28
28
|
formatDgmoError,
|
|
29
29
|
makeDgmoError,
|
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
injectDefaultTagMetadata,
|
|
10
10
|
resolveTagColor,
|
|
11
11
|
tagAttrKey
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-HX2KJEPD.js";
|
|
13
13
|
import {
|
|
14
14
|
legendSuppressed
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-MPJQMMBZ.js";
|
|
16
16
|
import {
|
|
17
17
|
LEGEND_CAPSULE_PAD,
|
|
18
18
|
LEGEND_DOT_R,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
tryCollectNote
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-KSZHIAI2.js";
|
|
4
4
|
import {
|
|
5
5
|
resolveNotes
|
|
6
6
|
} from "./chunk-O753JUEZ.js";
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
tagAttrKey,
|
|
21
21
|
validateTagGroupNames,
|
|
22
22
|
validateTagValues
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-HX2KJEPD.js";
|
|
24
24
|
import {
|
|
25
25
|
AliasRegistry,
|
|
26
26
|
BOXES_AND_LINES_REGISTRY,
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
tryParseSharedOption,
|
|
34
34
|
warnUnknownMetaKeys,
|
|
35
35
|
withTagAliases
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-MPJQMMBZ.js";
|
|
37
37
|
import {
|
|
38
38
|
makeDgmoError,
|
|
39
39
|
suggest
|
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
mapLegendConfig,
|
|
7
7
|
mapLegendGroups,
|
|
8
8
|
parsePathRings
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-QRIW46LR.js";
|
|
10
10
|
import {
|
|
11
11
|
parseClock
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-TCX5PMEY.js";
|
|
13
13
|
import {
|
|
14
14
|
fixedParts,
|
|
15
15
|
formatTime,
|
|
@@ -17,14 +17,14 @@ import {
|
|
|
17
17
|
workStatus,
|
|
18
18
|
zoneParts
|
|
19
19
|
} from "./chunk-A2RUBBVT.js";
|
|
20
|
+
import {
|
|
21
|
+
renderIntegratedLegend
|
|
22
|
+
} from "./chunk-NJYA4QSN.js";
|
|
20
23
|
import {
|
|
21
24
|
TITLE_FONT_SIZE,
|
|
22
25
|
TITLE_FONT_WEIGHT,
|
|
23
26
|
TITLE_Y
|
|
24
27
|
} from "./chunk-VLC6WNRD.js";
|
|
25
|
-
import {
|
|
26
|
-
renderIntegratedLegend
|
|
27
|
-
} from "./chunk-7SX4IY6T.js";
|
|
28
28
|
import {
|
|
29
29
|
FONT_FAMILY
|
|
30
30
|
} from "./chunk-ICLB27PZ.js";
|