@diagrammo/dgmo 0.64.1 → 0.66.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 +1 -1
- package/dist/advanced.d.ts +6773 -0
- package/dist/advanced.js +71 -71
- package/dist/block.d.ts +159 -0
- package/dist/block.js +21 -16
- package/dist/chart-meta-CpicJ1kj.d.ts +239 -0
- package/dist/chart-meta.d.ts +3 -0
- package/dist/chart-meta.js +3 -3
- package/dist/{charts-d3-ZTXJWEHI.js → charts-d3-I6OE5K3B.js} +9 -9
- package/dist/{chunk-C6DMG2V6.js → chunk-27YPE7NO.js} +28 -12
- package/dist/{chunk-RBAW7VUG.js → chunk-2EPV7CLY.js} +5 -7
- package/dist/{chunk-SCJ7CAJF.js → chunk-3HOCNSPD.js} +2 -2
- package/dist/{chunk-VOJOARA6.js → chunk-3OT63FS4.js} +82 -77
- package/dist/{chunk-Z2ADWRSW.js → chunk-3PSPUYT5.js} +3 -3
- package/dist/{chunk-RBBJIHNL.js → chunk-4IE42ODL.js} +11 -11
- package/dist/{chunk-SMCUX42K.js → chunk-4TM7MWU4.js} +7 -6
- package/dist/{chunk-H3HFC3SQ.js → chunk-5GM6BZO7.js} +3 -3
- package/dist/{chunk-7T3A2UK3.js → chunk-5T7K6QND.js} +15 -16
- package/dist/{chunk-NKRCPBTJ.js → chunk-6BOPYGJC.js} +6 -6
- package/dist/{chunk-MHI6W6XS.js → chunk-6IUL6LER.js} +10 -7
- package/dist/{chunk-S5RWWISJ.js → chunk-7L53J53J.js} +4 -4
- package/dist/{chunk-WDJ4HAGO.js → chunk-A6CTYC7O.js} +2 -2
- package/dist/{chunk-CDMF7P5A.js → chunk-BBCKUAUR.js} +2 -2
- package/dist/{chunk-AA4M6F2P.js → chunk-BBY57XAA.js} +3 -3
- package/dist/{chunk-NKRVFQGO.js → chunk-BDI25HWH.js} +18 -6
- package/dist/{chunk-SVR3YFM3.js → chunk-C666LP3O.js} +20 -15
- package/dist/{chunk-KRTO7NRK.js → chunk-D2WHS23S.js} +2 -2
- package/dist/{chunk-LYTEVE2N.js → chunk-DBF4IM4U.js} +20 -15
- package/dist/{chunk-PCWPYOT4.js → chunk-ET4R3AU5.js} +4 -4
- package/dist/{chunk-2KOBOIB2.js → chunk-FBD5ASMB.js} +2 -2
- package/dist/{chunk-ES66QH6J.js → chunk-FG24NXKN.js} +2 -2
- package/dist/{chunk-3CIOJ5YJ.js → chunk-FJ57274M.js} +3 -1
- package/dist/{chunk-6BVIZW5N.js → chunk-FLFBY5GN.js} +14 -12
- package/dist/{chunk-XUN3MIO3.js → chunk-G64OVYUT.js} +2 -2
- package/dist/{chunk-RQL25P3U.js → chunk-G7QZF6T3.js} +9 -9
- package/dist/{chunk-IGIJZHB6.js → chunk-GC7CBX6C.js} +6 -6
- package/dist/{chunk-B6AONGTI.js → chunk-GDQN2TPX.js} +21 -14
- package/dist/{chunk-CZUSH6NI.js → chunk-GMLSYNFP.js} +10 -9
- package/dist/{chunk-R6HCNSP6.js → chunk-GOW5VO6M.js} +2 -2
- package/dist/{chunk-SPHC4RYF.js → chunk-GXOMKWQ5.js} +10 -9
- package/dist/{chunk-MQHOKBJ6.js → chunk-IJ4FUFTR.js} +5 -5
- package/dist/{chunk-V3UQSKWJ.js → chunk-IJSFEU4J.js} +9 -9
- package/dist/{chunk-LSFZDBAP.js → chunk-IKHV5IJB.js} +2 -2
- package/dist/{chunk-LMXAB4YM.js → chunk-IZ6RWMBM.js} +9 -9
- package/dist/{chunk-6VJCURWU.js → chunk-J2EXBAPZ.js} +4 -5
- package/dist/{chunk-IX6N5MCY.js → chunk-JCL4K7AK.js} +12 -11
- package/dist/{chunk-OBKM6GIJ.js → chunk-JTUDM7S4.js} +10 -10
- package/dist/{chunk-CVVICCSB.js → chunk-L65WI4HO.js} +4 -4
- package/dist/{chunk-67D4MN2H.js → chunk-LK6LTSLH.js} +2 -2
- package/dist/{chunk-KOHIF4LD.js → chunk-MBODBL7C.js} +6 -5
- package/dist/chunk-MTGGOCND.js +638 -0
- package/dist/{chunk-VJARCVMH.js → chunk-MU3CJPJF.js} +2 -2
- package/dist/{chunk-RKTIIU7Z.js → chunk-N6XI5VTA.js} +4 -4
- package/dist/{chunk-ODUT5WMC.js → chunk-NVOU7N6C.js} +2 -2
- package/dist/{chunk-DB2KQ5DN.js → chunk-O274UTXH.js} +5 -5
- package/dist/{chunk-T4QXHE34.js → chunk-OWUWLZJT.js} +13 -11
- package/dist/{chunk-LDVUPGWC.js → chunk-OWVDD5EC.js} +2 -2
- package/dist/{chunk-M4HYPDER.js → chunk-P5OCINCI.js} +8 -8
- package/dist/{chunk-YLK3JNWP.js → chunk-QNCXONBR.js} +2 -2
- package/dist/{chunk-I2ATN25N.js → chunk-R4XM44BW.js} +25 -16
- package/dist/{chunk-37EHGTQ2.js → chunk-R7S5542V.js} +4 -4
- package/dist/{chunk-DJCZWQ2A.js → chunk-RTTZIX34.js} +4 -4
- package/dist/{chunk-OMTBYLKN.js → chunk-TPKNA2U5.js} +9 -7
- package/dist/{chunk-DN5HEDE4.js → chunk-TT5B36WO.js} +16 -20
- package/dist/{chunk-SF3JAWMY.js → chunk-TWILCDUE.js} +3 -3
- package/dist/{chunk-NIZM3LAG.js → chunk-UINRIO77.js} +10 -10
- package/dist/{chunk-5H2LIQIH.js → chunk-UJXCDF4E.js} +4 -4
- package/dist/{chunk-Z5ID35YP.js → chunk-UTCPNJND.js} +2 -4
- package/dist/{chunk-U42ZEK7L.js → chunk-V4BYBIBU.js} +24 -15
- package/dist/{chunk-L4IN4OBB.js → chunk-VLI5SYXW.js} +7 -7
- package/dist/{chunk-43E26CDA.js → chunk-VS2M72PF.js} +4 -4
- package/dist/{chunk-KZ3PCDUJ.js → chunk-VV6HZQ5K.js} +2 -2
- package/dist/{chunk-Z5BTSBWW.js → chunk-WF2HDQPG.js} +4 -4
- package/dist/{chunk-JU2VMFYC.js → chunk-X26BF4T2.js} +2 -2
- package/dist/{chunk-TAJ2XFTT.js → chunk-XKMCL2YJ.js} +19 -16
- package/dist/{chunk-7GUYGQR4.js → chunk-XVEPB2UU.js} +4 -4
- package/dist/{chunk-YHTKDIF2.js → chunk-YGFNITPC.js} +11 -11
- package/dist/{chunk-I24O2RWT.js → chunk-YJOOIOSR.js} +84 -14
- package/dist/{chunk-KPX2OWZR.js → chunk-YKWHUPBP.js} +13 -14
- package/dist/{chunk-FRC4LDTQ.js → chunk-YMYPFX4O.js} +36 -30
- package/dist/cloud-reference.d.ts +96 -0
- package/dist/completion-registry.d.ts +129 -0
- package/dist/d3-Bfhj-XBX.d.ts +496 -0
- package/dist/{dgmo-router-QWRF7ZKM.js → dgmo-router-464FE256.js} +4 -4
- package/dist/dgmo-router-EAW7XiBE.d.ts +280 -0
- package/dist/{dimensions-ES6O2T4H.js → dimensions-RD3Y7FCF.js} +7 -7
- package/dist/{flowchart-renderer-EXMRHFTQ.js → flowchart-renderer-6JKM2FA4.js} +7 -7
- package/dist/index.d.ts +210 -0
- package/dist/index.js +15 -15
- package/dist/{layout-HBWT2G23.js → layout-4LNMXLVK.js} +3 -3
- package/dist/{layout-UU4VJTOP.js → layout-62ERBWCM.js} +3 -3
- package/dist/{layout-N6X46MWG.js → layout-6SKHNQYO.js} +4 -4
- package/dist/{layout-OH4VQ3OI.js → layout-7JULRP4Y.js} +4 -4
- package/dist/{layout-QTZO6CW5.js → layout-FA37VP7V.js} +4 -4
- package/dist/layout-IN53LAE6.js +9 -0
- package/dist/{layout-H4H4OFE4.js → layout-IO6ORC5T.js} +3 -3
- package/dist/{layout-54P3DAXY.js → layout-LVMWK4QY.js} +5 -5
- package/dist/{layout-WCOEZPOI.js → layout-MNOTDWXW.js} +4 -4
- package/dist/{layout-2T2VCCTM.js → layout-RD7GDM4I.js} +5 -5
- package/dist/{layout-SKQMIXTG.js → layout-SBQTN2YM.js} +4 -4
- package/dist/{layout-5E2NQZNM.js → layout-SGYR6HBX.js} +3 -3
- package/dist/{layout-W3ZBJOIK.js → layout-WIMQIHBU.js} +5 -5
- package/dist/{layout-search-AJ6VUVUI.js → layout-search-C44CJQOB.js} +5 -5
- package/dist/{legend-constants-QQU3QYBF.js → legend-constants-RGINV5SF.js} +3 -3
- package/dist/live-link-resolve.d.ts +73 -0
- package/dist/{parser-KSIYWKYF.js → parser-CSKF2KNO.js} +8 -4
- package/dist/{parser-2BGDJJ2L.js → parser-WLL63XH7.js} +2 -2
- package/dist/{renderer-XLEYPLVL.js → renderer-2UIQVKXK.js} +8 -8
- package/dist/{renderer-KOWVTTYR.js → renderer-3GG2DEFQ.js} +7 -7
- package/dist/{renderer-XLPNUOYA.js → renderer-6NDYVZXQ.js} +10 -10
- package/dist/{renderer-2ARNFXSC.js → renderer-6ST44AVP.js} +10 -10
- package/dist/{renderer-YLM4CGBG.js → renderer-ALP46W2X.js} +8 -8
- package/dist/{renderer-HLWEJQJW.js → renderer-BEVY3UP5.js} +5 -5
- package/dist/{renderer-H6AQ4UIR.js → renderer-BXPWSNTJ.js} +13 -13
- package/dist/{renderer-BYWLJDT4.js → renderer-EWTETTII.js} +8 -8
- package/dist/{renderer-KK2534AF.js → renderer-FHXAWDNI.js} +4 -4
- package/dist/{renderer-OB77AT7V.js → renderer-FI4IKF4I.js} +7 -7
- package/dist/{renderer-DMVUBKP7.js → renderer-GHYH6DLG.js} +4 -4
- package/dist/{renderer-LSBXYOID.js → renderer-GYYJ4APT.js} +10 -10
- package/dist/{renderer-M43ROWET.js → renderer-JFOHE3YB.js} +9 -9
- package/dist/{renderer-OA7FSZ4A.js → renderer-L5QGQTLV.js} +3 -3
- package/dist/{renderer-7OOC2ZO2.js → renderer-L7S6YVM6.js} +4 -4
- package/dist/{renderer-YELZR4QT.js → renderer-LCHVBTV4.js} +12 -12
- package/dist/{renderer-IN3UPTZS.js → renderer-M4DAYNWC.js} +3 -3
- package/dist/{renderer-WN47AMUM.js → renderer-NXIK3LOA.js} +8 -8
- package/dist/{renderer-QR5343AR.js → renderer-OWUXQDHM.js} +3 -3
- package/dist/{renderer-FCO42JLK.js → renderer-PJNJOCLB.js} +8 -8
- package/dist/{renderer-OYTERGAO.js → renderer-QQBUBD66.js} +9 -9
- package/dist/{renderer-PM7JPC3J.js → renderer-REFE3YFH.js} +11 -11
- package/dist/{renderer-C6KOE774.js → renderer-RL2JGVPC.js} +10 -10
- package/dist/{renderer-ZNTLBQ45.js → renderer-RVFPPKWN.js} +9 -9
- package/dist/{renderer-QEHUJHRK.js → renderer-SFQHFPC5.js} +10 -10
- package/dist/{renderer-LO4FXQHP.js → renderer-T4CMBGA5.js} +8 -8
- package/dist/{renderer-NHFRVCDC.js → renderer-T66477EQ.js} +9 -9
- package/dist/{renderer-M3PQKXK2.js → renderer-TJD6A3AK.js} +13 -13
- package/dist/{renderer-2E7LQC32.js → renderer-URPIVAPI.js} +3 -3
- package/dist/{renderer-T5CUGSXP.js → renderer-WENGQEX6.js} +7 -7
- package/dist/{renderer-WR3FA3FF.js → renderer-WR6J7NKH.js} +8 -8
- package/dist/{renderer-YBEZ5V2H.js → renderer-X3V2G4UL.js} +3 -3
- package/dist/{renderer-KPEQ72FY.js → renderer-YAW4VHAI.js} +11 -11
- package/dist/{renderer-radial-XWAKJACV.js → renderer-radial-HOUGPUPW.js} +7 -7
- package/dist/{state-renderer-LIESKSBO.js → state-renderer-JJSQJZEL.js} +11 -11
- package/dist/tag-groups-NUA2F1I5.d.ts +263 -0
- package/dist/themes-Dem5xalq.d.ts +139 -0
- package/docs/ai-integration.md +1 -1
- package/docs/language-reference.md +5 -0
- package/gallery/fixtures/er.dgmo +1 -1
- package/package.json +5 -3
- package/dist/chunk-4ASYQ347.js +0 -185
- package/dist/layout-5XGYNYVT.js +0 -9
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-PDKUANDZ.js";
|
|
5
5
|
import {
|
|
6
6
|
layoutGraph
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-IKHV5IJB.js";
|
|
8
8
|
import {
|
|
9
9
|
appendArrowheadMarkers
|
|
10
10
|
} from "./chunk-LP7EC4MI.js";
|
|
@@ -16,9 +16,10 @@ import {
|
|
|
16
16
|
renderNoteConnector
|
|
17
17
|
} from "./chunk-H52HJ26L.js";
|
|
18
18
|
import {
|
|
19
|
+
EDGE_LABEL_KNOCKOUT_OPACITY,
|
|
19
20
|
EDGE_STROKE_WIDTH,
|
|
20
21
|
NODE_STROKE_WIDTH
|
|
21
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-FJ57274M.js";
|
|
22
23
|
import {
|
|
23
24
|
ScaleContext
|
|
24
25
|
} from "./chunk-YYVTBZZC.js";
|
|
@@ -32,10 +33,10 @@ import {
|
|
|
32
33
|
} from "./chunk-A4GOY3PE.js";
|
|
33
34
|
import {
|
|
34
35
|
FONT_FAMILY
|
|
35
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-UTCPNJND.js";
|
|
36
37
|
import {
|
|
37
38
|
measureText
|
|
38
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-MTGGOCND.js";
|
|
39
40
|
import {
|
|
40
41
|
parseFlowchart
|
|
41
42
|
} from "./chunk-CHOKOYSC.js";
|
|
@@ -453,7 +454,7 @@ function renderFlowchart(container, graph, layout, palette, isDark, onClickItem,
|
|
|
453
454
|
}
|
|
454
455
|
const lp = labelPosMap.get(ei);
|
|
455
456
|
if (edge.label && lp) {
|
|
456
|
-
edgeG.append("rect").attr("x", lp.x - lp.w / 2).attr("y", lp.y - lp.h / 2 - 1).attr("width", lp.w).attr("height", lp.h).attr("rx", 3).attr("fill", palette.bg).attr("opacity",
|
|
457
|
+
edgeG.append("rect").attr("x", lp.x - lp.w / 2).attr("y", lp.y - lp.h / 2 - 1).attr("width", lp.w).attr("height", lp.h).attr("rx", 3).attr("fill", palette.bg).attr("opacity", EDGE_LABEL_KNOCKOUT_OPACITY).attr("class", "fc-edge-label-bg");
|
|
457
458
|
edgeG.append("text").attr("x", lp.x).attr("y", lp.y + 4).attr("text-anchor", "middle").attr("fill", edgeColor).attr("font-size", sEdgeLabelFontSize).attr("class", "fc-edge-label").text(edge.label);
|
|
458
459
|
}
|
|
459
460
|
}
|
|
@@ -585,4 +586,4 @@ export {
|
|
|
585
586
|
renderFlowchart,
|
|
586
587
|
renderFlowchartForExport
|
|
587
588
|
};
|
|
588
|
-
//# sourceMappingURL=chunk-
|
|
589
|
+
//# sourceMappingURL=chunk-4TM7MWU4.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
measureText
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MTGGOCND.js";
|
|
4
4
|
|
|
5
5
|
// src/utils/card.ts
|
|
6
6
|
function renderNodeCard(container, opts) {
|
|
@@ -17,7 +17,7 @@ function renderNodeCard(container, opts) {
|
|
|
17
17
|
container.append("text").attr("x", opts.width / 2).attr("y", startY + li * lineH).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr("fill", opts.labelColor).attr("font-size", opts.labelFontSize).attr("font-weight", "bold").text(labelLines[li]);
|
|
18
18
|
}
|
|
19
19
|
} else {
|
|
20
|
-
container.append("text").attr("x", opts.width / 2).attr("y", opts.headerHeight / 2
|
|
20
|
+
container.append("text").attr("x", opts.width / 2).attr("y", opts.headerHeight / 2).attr("dominant-baseline", "central").attr("text-anchor", "middle").attr("fill", opts.labelColor).attr("font-size", opts.labelFontSize).attr("font-weight", "bold").text(labelLines?.[0] ?? opts.label);
|
|
21
21
|
}
|
|
22
22
|
const meta = opts.meta;
|
|
23
23
|
if (!meta || meta.rows.length === 0) return;
|
|
@@ -44,4 +44,4 @@ export {
|
|
|
44
44
|
renderNodeCard,
|
|
45
45
|
renderCollapseBar
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=chunk-
|
|
47
|
+
//# sourceMappingURL=chunk-5GM6BZO7.js.map
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
computeQuadrantPointLabels,
|
|
3
3
|
rectCircleOverlap,
|
|
4
4
|
rectsOverlap
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-L65WI4HO.js";
|
|
6
6
|
import {
|
|
7
7
|
EXPORT_HEIGHT,
|
|
8
8
|
EXPORT_WIDTH,
|
|
@@ -11,10 +11,10 @@ import {
|
|
|
11
11
|
initD3Chart,
|
|
12
12
|
renderChartTitle,
|
|
13
13
|
resolveExportPalette
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-LK6LTSLH.js";
|
|
15
15
|
import {
|
|
16
16
|
layoutInlineHeader
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-J2EXBAPZ.js";
|
|
18
18
|
import {
|
|
19
19
|
TITLE_FONT_SIZE,
|
|
20
20
|
TITLE_FONT_WEIGHT,
|
|
@@ -23,21 +23,20 @@ import {
|
|
|
23
23
|
} from "./chunk-A4GOY3PE.js";
|
|
24
24
|
import {
|
|
25
25
|
computeLegendLayout
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-FG24NXKN.js";
|
|
27
27
|
import {
|
|
28
|
-
FONT_CENTRAL_DY,
|
|
29
28
|
FONT_FAMILY
|
|
30
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-UTCPNJND.js";
|
|
31
30
|
import {
|
|
32
31
|
LEGEND_DOT_R,
|
|
33
32
|
LEGEND_ENTRY_FONT_SIZE,
|
|
34
33
|
LEGEND_HEIGHT,
|
|
35
34
|
LEGEND_PILL_FONT_SIZE,
|
|
36
35
|
legendChromeColors
|
|
37
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-3HOCNSPD.js";
|
|
38
37
|
import {
|
|
39
38
|
measureText
|
|
40
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-MTGGOCND.js";
|
|
41
40
|
import {
|
|
42
41
|
getExtendedChartLegendGroups,
|
|
43
42
|
getSimpleChartLegendGroups,
|
|
@@ -64,9 +63,7 @@ import {
|
|
|
64
63
|
} from "./chunk-42IT4BG2.js";
|
|
65
64
|
|
|
66
65
|
// src/utils/legend-svg.ts
|
|
67
|
-
|
|
68
|
-
return centerY + fontSize * FONT_CENTRAL_DY;
|
|
69
|
-
}
|
|
66
|
+
var CENTER = 'dominant-baseline="central"';
|
|
70
67
|
function esc(s) {
|
|
71
68
|
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
72
69
|
}
|
|
@@ -81,19 +78,19 @@ function emitCapsule(capsule, palette, groupBg, pillBorder) {
|
|
|
81
78
|
`<rect x="${pill.x}" y="${pill.y}" width="${pill.width}" height="${pill.height}" rx="${pill.height / 2}" fill="none" stroke="${esc(pillBorder)}" stroke-width="0.75"/>`
|
|
82
79
|
);
|
|
83
80
|
inner.push(
|
|
84
|
-
`<text x="${pill.x + pill.width / 2}" y="${
|
|
81
|
+
`<text x="${pill.x + pill.width / 2}" y="${LEGEND_HEIGHT / 2}" ${CENTER} font-size="${LEGEND_PILL_FONT_SIZE}" font-weight="500" fill="${esc(palette.text)}" text-anchor="middle" font-family="${esc(FONT_FAMILY)}">${esc(capsule.groupName)}</text>`
|
|
85
82
|
);
|
|
86
83
|
for (const entry of capsule.entries) {
|
|
87
84
|
const label = entry.displayValue ?? entry.value;
|
|
88
85
|
const hit = entry.width != null ? `<rect x="${entry.x}" y="${entry.y}" width="${entry.width}" height="${LEGEND_HEIGHT}" fill="transparent"/>` : "";
|
|
89
86
|
inner.push(
|
|
90
|
-
`<g data-legend-entry="${esc(entry.value.toLowerCase())}" data-series-name="${esc(entry.value)}" style="cursor:pointer">` + hit + `<circle cx="${entry.dotCx}" cy="${entry.dotCy}" r="${LEGEND_DOT_R}" fill="${esc(entry.color)}"/><text x="${entry.textX}" y="${
|
|
87
|
+
`<g data-legend-entry="${esc(entry.value.toLowerCase())}" data-series-name="${esc(entry.value)}" style="cursor:pointer">` + hit + `<circle cx="${entry.dotCx}" cy="${entry.dotCy}" r="${LEGEND_DOT_R}" fill="${esc(entry.color)}"/><text x="${entry.textX}" y="${entry.dotCy}" ${CENTER} font-size="${LEGEND_ENTRY_FONT_SIZE}" fill="${esc(palette.textMuted)}" font-family="${esc(FONT_FAMILY)}">${esc(label)}</text></g>`
|
|
91
88
|
);
|
|
92
89
|
}
|
|
93
90
|
return `<g transform="translate(${capsule.x},${capsule.y})" data-legend-group="${esc(tagAttrKey(capsule.groupName))}" style="cursor:pointer">${inner.join("")}</g>`;
|
|
94
91
|
}
|
|
95
92
|
function emitPill(pill, palette, groupBg) {
|
|
96
|
-
return `<g transform="translate(${pill.x},${pill.y})" data-legend-group="${esc(tagAttrKey(pill.groupName))}" style="cursor:pointer"><rect width="${pill.width}" height="${pill.height}" rx="${pill.height / 2}" fill="${esc(groupBg)}"/><text x="${pill.width / 2}" y="${
|
|
93
|
+
return `<g transform="translate(${pill.x},${pill.y})" data-legend-group="${esc(tagAttrKey(pill.groupName))}" style="cursor:pointer"><rect width="${pill.width}" height="${pill.height}" rx="${pill.height / 2}" fill="${esc(groupBg)}"/><text x="${pill.width / 2}" y="${pill.height / 2}" ${CENTER} font-size="${LEGEND_PILL_FONT_SIZE}" font-weight="500" fill="${esc(palette.textMuted)}" text-anchor="middle" font-family="${esc(FONT_FAMILY)}">${esc(pill.groupName)}</text></g>`;
|
|
97
94
|
}
|
|
98
95
|
function renderLegendSvg(groups, options) {
|
|
99
96
|
if (groups.length === 0) return { svg: "", height: 0, width: 0 };
|
|
@@ -1061,7 +1058,9 @@ function renderHeatmap(svg, chart, width, height, palette, isDark, textColor, bg
|
|
|
1061
1058
|
const REF = 100;
|
|
1062
1059
|
const maxValueW = Math.max(
|
|
1063
1060
|
1,
|
|
1064
|
-
...rows.flatMap(
|
|
1061
|
+
...rows.flatMap(
|
|
1062
|
+
(r) => r.values.map((v) => measureText(fmtNum(v), REF, { bold: true }))
|
|
1063
|
+
)
|
|
1065
1064
|
);
|
|
1066
1065
|
const cellFont = Math.max(
|
|
1067
1066
|
11,
|
|
@@ -2065,4 +2064,4 @@ export {
|
|
|
2065
2064
|
supportsD3DataChart,
|
|
2066
2065
|
renderDataChartD3
|
|
2067
2066
|
};
|
|
2068
|
-
//# sourceMappingURL=chunk-
|
|
2067
|
+
//# sourceMappingURL=chunk-5T7K6QND.js.map
|
|
@@ -14,11 +14,11 @@ import {
|
|
|
14
14
|
} from "./chunk-A4GOY3PE.js";
|
|
15
15
|
import {
|
|
16
16
|
FONT_FAMILY
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-UTCPNJND.js";
|
|
18
18
|
import {
|
|
19
19
|
CHAR_WIDTH_RATIO,
|
|
20
20
|
measureText
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-MTGGOCND.js";
|
|
22
22
|
import {
|
|
23
23
|
fillModeFromOptions
|
|
24
24
|
} from "./chunk-P2PUWV3Y.js";
|
|
@@ -181,16 +181,16 @@ function renderRing(container, parsed, palette, isDark, onClickItem, exportDims)
|
|
|
181
181
|
}
|
|
182
182
|
var MAX_LABEL_ARC = 1.6 * Math.PI;
|
|
183
183
|
function drawRingCurvedLabel(labelG, defs, pathId, text, cx, cy, rMid, labelFont, textColor, palette) {
|
|
184
|
-
const PAD = 1.
|
|
184
|
+
const PAD = 1.14;
|
|
185
185
|
let fs = labelFont;
|
|
186
186
|
let rPath = rMid - fs * 0.32;
|
|
187
187
|
const maxLen = MAX_LABEL_ARC * rPath;
|
|
188
|
-
const wPadded = measureText(text, labelFont) * PAD;
|
|
188
|
+
const wPadded = measureText(text, labelFont, { bold: true }) * PAD;
|
|
189
189
|
if (wPadded > maxLen) {
|
|
190
190
|
fs = Math.max(LABEL_FONT_MIN, Math.floor(labelFont * maxLen / wPadded));
|
|
191
191
|
rPath = rMid - fs * 0.32;
|
|
192
192
|
}
|
|
193
|
-
const arcLen = measureText(text, fs) * PAD;
|
|
193
|
+
const arcLen = measureText(text, fs, { bold: true }) * PAD;
|
|
194
194
|
const halfAngle = Math.min(arcLen / (2 * rPath), MAX_LABEL_ARC / 2);
|
|
195
195
|
const largeArc = halfAngle * 2 > Math.PI ? 1 : 0;
|
|
196
196
|
const p0x = cx - Math.sin(halfAngle) * rPath;
|
|
@@ -296,4 +296,4 @@ export {
|
|
|
296
296
|
renderRing,
|
|
297
297
|
renderRingForExport
|
|
298
298
|
};
|
|
299
|
-
//# sourceMappingURL=chunk-
|
|
299
|
+
//# sourceMappingURL=chunk-6BOPYGJC.js.map
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "./chunk-YYVTBZZC.js";
|
|
10
10
|
import {
|
|
11
11
|
layoutInlineHeader
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-J2EXBAPZ.js";
|
|
13
13
|
import {
|
|
14
14
|
TITLE_FONT_SIZE,
|
|
15
15
|
TITLE_FONT_WEIGHT,
|
|
@@ -17,18 +17,18 @@ import {
|
|
|
17
17
|
} from "./chunk-A4GOY3PE.js";
|
|
18
18
|
import {
|
|
19
19
|
renderIntegratedLegend
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-2EPV7CLY.js";
|
|
21
21
|
import {
|
|
22
22
|
getLegendExtent,
|
|
23
23
|
getMaxLegendReservedHeight
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-FG24NXKN.js";
|
|
25
25
|
import {
|
|
26
26
|
FONT_FAMILY
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-UTCPNJND.js";
|
|
28
28
|
import {
|
|
29
29
|
measureText,
|
|
30
30
|
truncateText
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-MTGGOCND.js";
|
|
32
32
|
import {
|
|
33
33
|
isSequenceBlock,
|
|
34
34
|
isSequenceNote,
|
|
@@ -1645,7 +1645,10 @@ function renderSequenceDiagram(container, parsed, palette, isDark, _onNavigateTo
|
|
|
1645
1645
|
const msgCount = sectionMsgCounts.get(sec.lineNumber) ?? 0;
|
|
1646
1646
|
const labelText = isCollapsed ? `${sec.label} (${msgCount} ${msgCount === 1 ? "message" : "messages"})` : sec.label;
|
|
1647
1647
|
const labelX = (sectionLineX1 + sectionLineX2) / 2;
|
|
1648
|
-
const labelHitW = Math.max(
|
|
1648
|
+
const labelHitW = Math.max(
|
|
1649
|
+
80,
|
|
1650
|
+
measureText(labelText, 11, { bold: true }) + 24
|
|
1651
|
+
);
|
|
1649
1652
|
sectionG.append("rect").attr("x", labelX - labelHitW / 2).attr("y", secY - BAND_HEIGHT / 2).attr("width", labelHitW).attr("height", BAND_HEIGHT).attr("fill", "transparent").attr("class", "section-label-hit");
|
|
1650
1653
|
sectionG.append("text").attr("x", labelX).attr("y", secY + 4).attr("text-anchor", "middle").attr("fill", lineColor).attr("font-size", 11).attr("font-weight", "bold").attr("class", "section-label").text(labelText);
|
|
1651
1654
|
}
|
|
@@ -1907,4 +1910,4 @@ export {
|
|
|
1907
1910
|
renderSequenceDiagram,
|
|
1908
1911
|
buildNoteMessageMap
|
|
1909
1912
|
};
|
|
1910
|
-
//# sourceMappingURL=chunk-
|
|
1913
|
+
//# sourceMappingURL=chunk-6IUL6LER.js.map
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
2
|
FONT_FAMILY
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-UTCPNJND.js";
|
|
4
4
|
import {
|
|
5
5
|
measureText,
|
|
6
6
|
truncateText
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-MTGGOCND.js";
|
|
8
8
|
import {
|
|
9
9
|
encodeDiagramUrl
|
|
10
10
|
} from "./chunk-U7VO6JAA.js";
|
|
11
11
|
import {
|
|
12
12
|
parseDgmoChartType
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-BBY57XAA.js";
|
|
14
14
|
import {
|
|
15
15
|
chartTypes
|
|
16
16
|
} from "./chunk-P2PUWV3Y.js";
|
|
@@ -204,4 +204,4 @@ export {
|
|
|
204
204
|
MONO_FAMILY,
|
|
205
205
|
renderErrorCard
|
|
206
206
|
};
|
|
207
|
-
//# sourceMappingURL=chunk-
|
|
207
|
+
//# sourceMappingURL=chunk-7L53J53J.js.map
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "./chunk-A4GOY3PE.js";
|
|
10
10
|
import {
|
|
11
11
|
FONT_FAMILY
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-UTCPNJND.js";
|
|
13
13
|
import {
|
|
14
14
|
getSeriesColors,
|
|
15
15
|
mix,
|
|
@@ -361,4 +361,4 @@ export {
|
|
|
361
361
|
renderGoal,
|
|
362
362
|
renderGoalForExport
|
|
363
363
|
};
|
|
364
|
-
//# sourceMappingURL=chunk-
|
|
364
|
+
//# sourceMappingURL=chunk-A6CTYC7O.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-FWVKPEG3.js";
|
|
4
4
|
import {
|
|
5
5
|
FONT_FAMILY
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-UTCPNJND.js";
|
|
7
7
|
import {
|
|
8
8
|
fixedParts,
|
|
9
9
|
fixedTimeCells,
|
|
@@ -558,4 +558,4 @@ export {
|
|
|
558
558
|
renderClock,
|
|
559
559
|
renderClockForExport
|
|
560
560
|
};
|
|
561
|
-
//# sourceMappingURL=chunk-
|
|
561
|
+
//# sourceMappingURL=chunk-BBCKUAUR.js.map
|
|
@@ -72,7 +72,7 @@ import {
|
|
|
72
72
|
import {
|
|
73
73
|
isLiveLinkLine,
|
|
74
74
|
parseLiveLink
|
|
75
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-FLFBY5GN.js";
|
|
76
76
|
import {
|
|
77
77
|
parseEventLine
|
|
78
78
|
} from "./chunk-QMYJO4EL.js";
|
|
@@ -119,7 +119,7 @@ import {
|
|
|
119
119
|
import {
|
|
120
120
|
looksLikeERDiagram,
|
|
121
121
|
parseERDiagram
|
|
122
|
-
} from "./chunk-
|
|
122
|
+
} from "./chunk-BDI25HWH.js";
|
|
123
123
|
import {
|
|
124
124
|
looksLikeOrg,
|
|
125
125
|
parseOrg
|
|
@@ -2031,4 +2031,4 @@ export {
|
|
|
2031
2031
|
knownChartTypeIds,
|
|
2032
2032
|
parseDgmo
|
|
2033
2033
|
};
|
|
2034
|
-
//# sourceMappingURL=chunk-
|
|
2034
|
+
//# sourceMappingURL=chunk-BBY57XAA.js.map
|
|
@@ -109,11 +109,13 @@ function parseRelationship(trimmed, lineNumber, pushError) {
|
|
|
109
109
|
}
|
|
110
110
|
function parseColumn(trimmed) {
|
|
111
111
|
const rawTokens = tokenizeQuoteAware(trimmed);
|
|
112
|
-
if (rawTokens.length === 0) return
|
|
112
|
+
if (rawTokens.length === 0) return { ok: false, reason: "not-a-column" };
|
|
113
113
|
const firstRaw = rawTokens[0];
|
|
114
114
|
const wasQuoted = firstRaw.startsWith('"') || firstRaw.startsWith("'");
|
|
115
115
|
const name = stripQuotes(firstRaw);
|
|
116
|
-
if (!wasQuoted && !/^\w+$/.test(name))
|
|
116
|
+
if (!wasQuoted && !/^\w+$/.test(name)) {
|
|
117
|
+
return { ok: false, reason: "not-a-column" };
|
|
118
|
+
}
|
|
117
119
|
const constraints = [];
|
|
118
120
|
let type;
|
|
119
121
|
for (let i = 1; i < rawTokens.length; i++) {
|
|
@@ -125,10 +127,10 @@ function parseColumn(trimmed) {
|
|
|
125
127
|
} else if (type === void 0) {
|
|
126
128
|
type = tok;
|
|
127
129
|
} else {
|
|
128
|
-
return
|
|
130
|
+
return { ok: false, reason: "unknown-token", name, token: tok };
|
|
129
131
|
}
|
|
130
132
|
}
|
|
131
|
-
return { name, ...type !== void 0 && { type }, constraints };
|
|
133
|
+
return { ok: true, name, ...type !== void 0 && { type }, constraints };
|
|
132
134
|
}
|
|
133
135
|
function parseERDiagram(content, palette) {
|
|
134
136
|
const lines = content.split("\n");
|
|
@@ -315,13 +317,23 @@ function parseERDiagram(content, palette) {
|
|
|
315
317
|
continue;
|
|
316
318
|
}
|
|
317
319
|
const colResult = parseColumn(trimmed);
|
|
318
|
-
if (colResult) {
|
|
320
|
+
if (colResult.ok) {
|
|
319
321
|
currentTable.columns.push({
|
|
320
322
|
name: colResult.name,
|
|
321
323
|
...colResult.type && { type: colResult.type },
|
|
322
324
|
constraints: colResult.constraints,
|
|
323
325
|
lineNumber
|
|
324
326
|
});
|
|
327
|
+
} else if (colResult.reason === "unknown-token") {
|
|
328
|
+
pushError(
|
|
329
|
+
lineNumber,
|
|
330
|
+
colResult.token.includes(",") ? `Column constraints are space-separated, not comma-separated. Write "${colResult.name} ${colResult.token.replace(/,+$/, "")} \u2026" without the comma.` : `Unexpected "${colResult.token}" in column "${colResult.name}". A column is: name [type] [pk|fk|unique|nullable]`
|
|
331
|
+
);
|
|
332
|
+
} else {
|
|
333
|
+
pushError(
|
|
334
|
+
lineNumber,
|
|
335
|
+
`"${trimmed}" is neither a column nor a relationship. A column is: name [type] [pk|fk|unique|nullable]. A relationship is: 1-label-* target`
|
|
336
|
+
);
|
|
325
337
|
}
|
|
326
338
|
continue;
|
|
327
339
|
}
|
|
@@ -521,4 +533,4 @@ export {
|
|
|
521
533
|
looksLikeERDiagram,
|
|
522
534
|
extractSymbols
|
|
523
535
|
};
|
|
524
|
-
//# sourceMappingURL=chunk-
|
|
536
|
+
//# sourceMappingURL=chunk-BDI25HWH.js.map
|
|
@@ -3,22 +3,23 @@ import {
|
|
|
3
3
|
} from "./chunk-ICZ7M6IZ.js";
|
|
4
4
|
import {
|
|
5
5
|
layoutInfra
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-VS2M72PF.js";
|
|
7
7
|
import {
|
|
8
8
|
renderInlineText
|
|
9
9
|
} from "./chunk-WGC42WJU.js";
|
|
10
10
|
import {
|
|
11
11
|
COLLAPSE_BAR_HEIGHT,
|
|
12
12
|
COLLAPSE_BAR_INSET,
|
|
13
|
+
EDGE_LABEL_KNOCKOUT_OPACITY,
|
|
13
14
|
EDGE_STROKE_WIDTH,
|
|
14
15
|
NODE_STROKE_WIDTH
|
|
15
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-FJ57274M.js";
|
|
16
17
|
import {
|
|
17
18
|
ScaleContext
|
|
18
19
|
} from "./chunk-YYVTBZZC.js";
|
|
19
20
|
import {
|
|
20
21
|
layoutInlineHeader
|
|
21
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-J2EXBAPZ.js";
|
|
22
23
|
import {
|
|
23
24
|
TITLE_FONT_SIZE,
|
|
24
25
|
TITLE_FONT_WEIGHT,
|
|
@@ -27,14 +28,14 @@ import {
|
|
|
27
28
|
} from "./chunk-A4GOY3PE.js";
|
|
28
29
|
import {
|
|
29
30
|
renderIntegratedLegend
|
|
30
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-2EPV7CLY.js";
|
|
31
32
|
import {
|
|
32
33
|
getLegendExtent,
|
|
33
34
|
getMaxLegendReservedHeight
|
|
34
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-FG24NXKN.js";
|
|
35
36
|
import {
|
|
36
37
|
FONT_FAMILY
|
|
37
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-UTCPNJND.js";
|
|
38
39
|
import {
|
|
39
40
|
LEGEND_CAPSULE_PAD,
|
|
40
41
|
LEGEND_DOT_R,
|
|
@@ -45,12 +46,12 @@ import {
|
|
|
45
46
|
LEGEND_PILL_FONT_SIZE,
|
|
46
47
|
LEGEND_PILL_PAD,
|
|
47
48
|
measureLegendText
|
|
48
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-3HOCNSPD.js";
|
|
49
50
|
import {
|
|
50
51
|
CHAR_WIDTH_RATIO,
|
|
51
52
|
measureText,
|
|
52
53
|
truncateText
|
|
53
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-MTGGOCND.js";
|
|
54
55
|
import {
|
|
55
56
|
parseInfra
|
|
56
57
|
} from "./chunk-I7IQ2NEJ.js";
|
|
@@ -948,7 +949,7 @@ function renderEdgeLabels(svg, edges, nodes, groups, palette, _isDark, animate,
|
|
|
948
949
|
const labelText = edge.label;
|
|
949
950
|
const g = svg.append("g").attr("class", animate ? "infra-edge-label" : "");
|
|
950
951
|
const textWidth = measureText(labelText, EDGE_LABEL_FONT_SIZE) + 8;
|
|
951
|
-
g.append("rect").attr("x", midPt.x - textWidth / 2).attr("y", midPt.y - 8).attr("width", textWidth).attr("height", 16).attr("rx", 3).attr("fill", palette.bg).attr("opacity",
|
|
952
|
+
g.append("rect").attr("x", midPt.x - textWidth / 2).attr("y", midPt.y - 8).attr("width", textWidth).attr("height", 16).attr("rx", 3).attr("fill", palette.bg).attr("opacity", EDGE_LABEL_KNOCKOUT_OPACITY);
|
|
952
953
|
g.append("text").attr("x", midPt.x).attr("y", midPt.y + 4).attr("text-anchor", "middle").attr("font-family", FONT_FAMILY).attr("font-size", sc.sEdgeLabelFontSize).attr("fill", palette.textMuted).text(labelText);
|
|
953
954
|
if (animate) {
|
|
954
955
|
const pathD = buildPathD(wps, direction);
|
|
@@ -1123,7 +1124,11 @@ function renderNodes(svg, nodes, palette, isDark, animate, expandedNodeIds, acti
|
|
|
1123
1124
|
}
|
|
1124
1125
|
const rows = [...computedSection, ...declaredSection];
|
|
1125
1126
|
const maxKeyWidth = Math.max(
|
|
1126
|
-
...rows.map(
|
|
1127
|
+
...rows.map(
|
|
1128
|
+
(r) => measureText(`${r.key}: `, sc.sMetaFontSize, {
|
|
1129
|
+
bold: Boolean(r.inverted && r.invertedBg)
|
|
1130
|
+
})
|
|
1131
|
+
)
|
|
1127
1132
|
);
|
|
1128
1133
|
const valueX = x + 10 + maxKeyWidth;
|
|
1129
1134
|
let rowY = sepY + NODE_SEPARATOR_GAP + sc.sMetaFontSize;
|
|
@@ -1364,19 +1369,19 @@ function renderLegend(rootSvg, legendGroups, totalWidth, legendY, palette, isDar
|
|
|
1364
1369
|
if (playback && playback.expanded && !playbackEl.empty()) {
|
|
1365
1370
|
const pillWidth = measureLegendText("Playback", LEGEND_PILL_FONT_SIZE) + LEGEND_PILL_PAD;
|
|
1366
1371
|
let entryX = pillWidth + 8;
|
|
1367
|
-
const entryY = LEGEND_HEIGHT / 2
|
|
1372
|
+
const entryY = LEGEND_HEIGHT / 2;
|
|
1368
1373
|
const ppLabel = playback.paused ? "\u25B6" : "\u23F8";
|
|
1369
|
-
playbackEl.append("text").attr("x", entryX).attr("y", entryY).attr("font-family", FONT_FAMILY).attr("font-size", LEGEND_PILL_FONT_SIZE).attr("fill", palette.textMuted).attr("data-playback-action", "toggle-pause").style("cursor", "pointer").text(ppLabel);
|
|
1374
|
+
playbackEl.append("text").attr("x", entryX).attr("y", entryY).attr("dominant-baseline", "central").attr("font-family", FONT_FAMILY).attr("font-size", LEGEND_PILL_FONT_SIZE).attr("fill", palette.textMuted).attr("data-playback-action", "toggle-pause").style("cursor", "pointer").text(ppLabel);
|
|
1370
1375
|
entryX += LEGEND_PILL_FONT_SIZE * 0.8 + 6;
|
|
1371
1376
|
for (const s of playback.speedOptions) {
|
|
1372
1377
|
const label = `${s}x`;
|
|
1373
1378
|
const isSpeedActive = playback.speed === s;
|
|
1374
|
-
const slotW = measureLegendText(label, LEGEND_ENTRY_FONT_SIZE) + SPEED_BADGE_H_PAD * 2;
|
|
1379
|
+
const slotW = measureLegendText(label, LEGEND_ENTRY_FONT_SIZE, { bold: true }) + SPEED_BADGE_H_PAD * 2;
|
|
1375
1380
|
const badgeH = LEGEND_ENTRY_FONT_SIZE + SPEED_BADGE_V_PAD * 2;
|
|
1376
1381
|
const badgeY = (LEGEND_HEIGHT - badgeH) / 2;
|
|
1377
1382
|
const speedG = playbackEl.append("g").attr("data-playback-action", "set-speed").attr("data-playback-value", String(s)).style("cursor", "pointer");
|
|
1378
1383
|
speedG.append("rect").attr("x", entryX).attr("y", badgeY).attr("width", slotW).attr("height", badgeH).attr("rx", badgeH / 2).attr("fill", isSpeedActive ? palette.primary : "transparent");
|
|
1379
|
-
speedG.append("text").attr("x", entryX + slotW / 2).attr("y", entryY).attr("font-family", FONT_FAMILY).attr("font-size", LEGEND_ENTRY_FONT_SIZE).attr("font-weight", isSpeedActive ? "600" : "400").attr("fill", isSpeedActive ? palette.bg : palette.textMuted).attr("text-anchor", "middle").text(label);
|
|
1384
|
+
speedG.append("text").attr("x", entryX + slotW / 2).attr("y", entryY).attr("dominant-baseline", "central").attr("font-family", FONT_FAMILY).attr("font-size", LEGEND_ENTRY_FONT_SIZE).attr("font-weight", isSpeedActive ? "600" : "400").attr("fill", isSpeedActive ? palette.bg : palette.textMuted).attr("text-anchor", "middle").text(label);
|
|
1380
1385
|
entryX += slotW + SPEED_BADGE_GAP;
|
|
1381
1386
|
}
|
|
1382
1387
|
}
|
|
@@ -1608,4 +1613,4 @@ export {
|
|
|
1608
1613
|
renderInfra,
|
|
1609
1614
|
parseAndLayoutInfra
|
|
1610
1615
|
};
|
|
1611
|
-
//# sourceMappingURL=chunk-
|
|
1616
|
+
//# sourceMappingURL=chunk-C666LP3O.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
measureText,
|
|
3
3
|
wrapTextToWidth
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-MTGGOCND.js";
|
|
5
5
|
import {
|
|
6
6
|
fillModeFromOptions
|
|
7
7
|
} from "./chunk-P2PUWV3Y.js";
|
|
@@ -290,4 +290,4 @@ export {
|
|
|
290
290
|
scoreToCurveY,
|
|
291
291
|
layoutJourneyMap
|
|
292
292
|
};
|
|
293
|
-
//# sourceMappingURL=chunk-
|
|
293
|
+
//# sourceMappingURL=chunk-D2WHS23S.js.map
|
|
@@ -13,15 +13,16 @@ import {
|
|
|
13
13
|
stripInlineMarkdown
|
|
14
14
|
} from "./chunk-WGC42WJU.js";
|
|
15
15
|
import {
|
|
16
|
+
EDGE_LABEL_KNOCKOUT_OPACITY,
|
|
16
17
|
EDGE_STROKE_WIDTH,
|
|
17
18
|
NODE_STROKE_WIDTH
|
|
18
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-FJ57274M.js";
|
|
19
20
|
import {
|
|
20
21
|
ScaleContext
|
|
21
22
|
} from "./chunk-YYVTBZZC.js";
|
|
22
23
|
import {
|
|
23
24
|
layoutInlineHeader
|
|
24
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-J2EXBAPZ.js";
|
|
25
26
|
import {
|
|
26
27
|
TITLE_FONT_SIZE,
|
|
27
28
|
TITLE_FONT_WEIGHT,
|
|
@@ -29,19 +30,19 @@ import {
|
|
|
29
30
|
} from "./chunk-A4GOY3PE.js";
|
|
30
31
|
import {
|
|
31
32
|
renderIntegratedLegend
|
|
32
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-2EPV7CLY.js";
|
|
33
34
|
import {
|
|
34
35
|
getLegendExtent,
|
|
35
36
|
getMaxLegendReservedHeight
|
|
36
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-FG24NXKN.js";
|
|
37
38
|
import {
|
|
38
39
|
FONT_FAMILY
|
|
39
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-UTCPNJND.js";
|
|
40
41
|
import {
|
|
41
42
|
CHAR_WIDTH_RATIO,
|
|
42
43
|
measureText,
|
|
43
44
|
truncateText
|
|
44
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-MTGGOCND.js";
|
|
45
46
|
import {
|
|
46
47
|
resolveTagColor
|
|
47
48
|
} from "./chunk-MDI5FMWO.js";
|
|
@@ -126,16 +127,17 @@ function splitLabelChunks(label) {
|
|
|
126
127
|
return chunks;
|
|
127
128
|
}
|
|
128
129
|
function fitLabelToHeader(label, nodeWidth, maxLines) {
|
|
130
|
+
const BOLD = { bold: true };
|
|
129
131
|
const maxTextWidth = nodeWidth - NODE_TEXT_PADDING * 2;
|
|
130
132
|
const words = splitLabelChunks(label);
|
|
131
133
|
for (let fontSize = NODE_FONT_SIZE; fontSize >= MIN_NODE_FONT_SIZE; fontSize--) {
|
|
132
|
-
if (maxTextWidth < measureText("MM", fontSize)) continue;
|
|
134
|
+
if (maxTextWidth < measureText("MM", fontSize, BOLD)) continue;
|
|
133
135
|
const lines = [];
|
|
134
136
|
let current = "";
|
|
135
137
|
for (const word of words) {
|
|
136
138
|
const joiner = current && word.spaceBefore ? " " : "";
|
|
137
139
|
const test = current ? `${current}${joiner}${word.text}` : word.text;
|
|
138
|
-
if (measureText(test, fontSize) <= maxTextWidth) {
|
|
140
|
+
if (measureText(test, fontSize, BOLD) <= maxTextWidth) {
|
|
139
141
|
current = test;
|
|
140
142
|
} else {
|
|
141
143
|
if (current) lines.push(current);
|
|
@@ -143,28 +145,31 @@ function fitLabelToHeader(label, nodeWidth, maxLines) {
|
|
|
143
145
|
}
|
|
144
146
|
}
|
|
145
147
|
if (current) lines.push(current);
|
|
146
|
-
const fits = (l) => measureText(l, fontSize) <= maxTextWidth;
|
|
148
|
+
const fits = (l) => measureText(l, fontSize, BOLD) <= maxTextWidth;
|
|
147
149
|
if (lines.length <= maxLines && lines.every(fits)) {
|
|
148
150
|
return { lines, fontSize };
|
|
149
151
|
}
|
|
150
152
|
if (lines.length <= maxLines) {
|
|
151
153
|
const result2 = lines.map(
|
|
152
|
-
(l) => fits(l) ? l : truncateText(l, fontSize, maxTextWidth)
|
|
154
|
+
(l) => fits(l) ? l : truncateText(l, fontSize, maxTextWidth, BOLD)
|
|
153
155
|
);
|
|
154
156
|
return { lines: result2, fontSize };
|
|
155
157
|
}
|
|
156
|
-
const result = lines.slice(0, maxLines).map(
|
|
158
|
+
const result = lines.slice(0, maxLines).map(
|
|
159
|
+
(l) => fits(l) ? l : truncateText(l, fontSize, maxTextWidth, BOLD)
|
|
160
|
+
);
|
|
157
161
|
const last = result[maxLines - 1];
|
|
158
162
|
if (!last.endsWith("\u2026")) {
|
|
159
163
|
result[maxLines - 1] = truncateText(
|
|
160
164
|
last + "\u2026",
|
|
161
165
|
fontSize,
|
|
162
|
-
maxTextWidth
|
|
166
|
+
maxTextWidth,
|
|
167
|
+
BOLD
|
|
163
168
|
);
|
|
164
169
|
}
|
|
165
170
|
return { lines: result, fontSize };
|
|
166
171
|
}
|
|
167
|
-
const truncated = truncateText(label, MIN_NODE_FONT_SIZE, maxTextWidth);
|
|
172
|
+
const truncated = truncateText(label, MIN_NODE_FONT_SIZE, maxTextWidth, BOLD);
|
|
168
173
|
return { lines: [truncated], fontSize: MIN_NODE_FONT_SIZE };
|
|
169
174
|
}
|
|
170
175
|
function nodeColors(node, tagGroups, activeGroupName, palette, isDark, value, fillMode) {
|
|
@@ -738,7 +743,7 @@ function renderBoxesAndLines(container, parsed, layout, palette, isDark, options
|
|
|
738
743
|
const lh = le.labelHeight ?? sEdgeLabelFontSize + 6;
|
|
739
744
|
const lines = le.labelLines;
|
|
740
745
|
const labelG = labelLayer.append("g").attr("class", "bl-edge-label").attr("data-line-number", String(le.lineNumber));
|
|
741
|
-
labelG.append("rect").attr("x", lx - lw / 2).attr("y", ly - lh / 2).attr("width", lw).attr("height", lh).attr("rx", 3).attr("fill", palette.bg).attr("opacity",
|
|
746
|
+
labelG.append("rect").attr("x", lx - lw / 2).attr("y", ly - lh / 2).attr("width", lw).attr("height", lh).attr("rx", 3).attr("fill", palette.bg).attr("opacity", EDGE_LABEL_KNOCKOUT_OPACITY);
|
|
742
747
|
const text = labelG.append("text").attr("x", lx).attr("text-anchor", "middle").attr("font-family", FONT_FAMILY).attr("font-size", sEdgeLabelFontSize).attr("fill", palette.textMuted);
|
|
743
748
|
const firstY = ly - (lines.length - 1) / 2 * labelLineHeight + sEdgeLabelFontSize / 3;
|
|
744
749
|
lines.forEach((line2, k) => {
|
|
@@ -833,4 +838,4 @@ export {
|
|
|
833
838
|
renderBoxesAndLines,
|
|
834
839
|
renderBoxesAndLinesForExport
|
|
835
840
|
};
|
|
836
|
-
//# sourceMappingURL=chunk-
|
|
841
|
+
//# sourceMappingURL=chunk-DBF4IM4U.js.map
|