@diagrammo/dgmo 0.77.0 → 0.78.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 +17 -13
- package/dist/advanced.d.ts +19 -12
- package/dist/advanced.js +124 -120
- package/dist/block.css +1 -1
- package/dist/block.d.ts +2 -2
- package/dist/block.js +45 -41
- package/dist/{chart-meta-Cf_jkApJ.d.ts → chart-meta-BKN2ORkc.d.ts} +2 -2
- package/dist/chart-meta.d.ts +3 -3
- package/dist/chart-meta.js +30 -29
- package/dist/charts-d3-KEQ7XVSM.js +31 -0
- package/dist/{chunk-7IATMZSA.js → chunk-26EVL454.js} +1 -25
- package/dist/{chunk-3H4PDNP4.js → chunk-2NLBIZEW.js} +2 -2
- package/dist/{chunk-BH3BQICT.js → chunk-32VR65TL.js} +63 -36
- package/dist/{chunk-N5NQIZ56.js → chunk-36UQ77JV.js} +24 -24
- package/dist/chunk-3DPOIW3W.js +10 -0
- package/dist/{chunk-3SP6G4LN.js → chunk-3GLTQZKE.js} +2 -2
- package/dist/{chunk-DY7KDZUF.js → chunk-3OWIYK52.js} +2 -2
- package/dist/{chunk-3E4YB6TY.js → chunk-3XFOE3DQ.js} +12 -7
- package/dist/{chunk-W7UBPARG.js → chunk-3ZLQM6XN.js} +2 -2
- package/dist/{chunk-5GM6BZO7.js → chunk-4AWLEWSD.js} +5 -2
- package/dist/{chunk-SWUQJ5VR.js → chunk-4IGUEGD6.js} +80 -61
- package/dist/{chunk-QOVM5VRC.js → chunk-57GSSHBR.js} +2 -2
- package/dist/{chunk-5VMUVJO4.js → chunk-5G55TS3H.js} +2 -2
- package/dist/{chunk-U4DS2ODO.js → chunk-67I3HFSF.js} +9 -9
- package/dist/{chunk-WQXD3IIN.js → chunk-6B3M6LW6.js} +10 -8
- package/dist/{chunk-TKIPK5P6.js → chunk-6PHOZBW5.js} +4 -6
- package/dist/{chunk-5PFNUDXR.js → chunk-6VTLVU7D.js} +2 -2
- package/dist/{chunk-M5JT2AU7.js → chunk-6Z2NUJSX.js} +2 -2
- package/dist/{chunk-BWJLLNUX.js → chunk-7BNRHSSF.js} +2 -2
- package/dist/{chunk-JLODGGN2.js → chunk-7NNJXYXU.js} +2 -2
- package/dist/{chunk-FTTB64OJ.js → chunk-7SMVTA7I.js} +26 -26
- package/dist/{chunk-Z7KVOVE4.js → chunk-7WTFX6OA.js} +6 -3
- package/dist/{chunk-ZM27UI5O.js → chunk-A7Y32YD6.js} +2 -2
- package/dist/{chunk-FPRMP6YA.js → chunk-AHN2CVCH.js} +10 -7
- package/dist/{chunk-N6MZSBOL.js → chunk-AN7T6VP7.js} +2 -2
- package/dist/{chunk-F4X5NVKY.js → chunk-B6PVPAS5.js} +2 -2
- package/dist/{chunk-RV5A3EGI.js → chunk-BB2ORSTF.js} +19 -18
- package/dist/{chunk-SI3PYDL4.js → chunk-BJB4YDJP.js} +21 -21
- package/dist/{chunk-FR5EVD2X.js → chunk-BPM52K3Z.js} +38 -31
- package/dist/{chunk-TI4YUUW6.js → chunk-BSREARWG.js} +29 -28
- package/dist/{chunk-F4V67JXG.js → chunk-CTERZC4K.js} +2 -2
- package/dist/{chunk-WHWUVDYK.js → chunk-CYLSQO4L.js} +6 -6
- package/dist/{chunk-J76YDS4V.js → chunk-DCPD5SHV.js} +3 -3
- package/dist/{chunk-H7BYMIVK.js → chunk-ENDB5YSV.js} +67 -27
- package/dist/{chunk-RTTZIX34.js → chunk-EOB7XVYR.js} +2 -2
- package/dist/chunk-EPDBWATV.js +38 -0
- package/dist/{chunk-TPN7RJOM.js → chunk-FJADQOFQ.js} +3 -3
- package/dist/{chunk-MG3DE3VO.js → chunk-FLMXJMMY.js} +3 -3
- package/dist/{chunk-WGC42WJU.js → chunk-FWNJDD4U.js} +6 -2
- package/dist/{chunk-S5P5Z5Y5.js → chunk-GINNZHVN.js} +2 -2
- package/dist/{chunk-LYJ53DBK.js → chunk-GJH7ZEPH.js} +41 -36
- package/dist/{chunk-2MTM4E6M.js → chunk-GQEXY7XL.js} +68 -65
- package/dist/{chunk-XFXJXLK7.js → chunk-HHHYVTVS.js} +16 -16
- package/dist/chunk-ICLB27PZ.js +11 -0
- package/dist/{chunk-QMFIZQTB.js → chunk-IDGQB6XD.js} +6 -4
- package/dist/{chunk-R3XI2VC7.js → chunk-IDJGV6VM.js} +2 -1
- package/dist/{chunk-HDLRRY3N.js → chunk-IE47TYZT.js} +177 -118
- package/dist/{chunk-FJ57274M.js → chunk-IIEI7VK5.js} +15 -1
- package/dist/{chunk-XPBJVSRY.js → chunk-IMO46ROR.js} +38 -32
- package/dist/{chunk-VRPV6QXR.js → chunk-IZTU6WVR.js} +2 -2
- package/dist/{chunk-CIWFL2LM.js → chunk-JOD2CK2M.js} +16 -14
- package/dist/{chunk-XCFIAGT7.js → chunk-JUNTVLOU.js} +16 -15
- package/dist/{chunk-RWFMOVHG.js → chunk-KAZQX2EY.js} +2 -2
- package/dist/{chunk-NHQ7HUAS.js → chunk-KGX5LIUG.js} +10 -8
- package/dist/{chunk-Q74GP3GK.js → chunk-KO6DGOOB.js} +3 -3
- package/dist/{chunk-5ZD4DDG7.js → chunk-L26M3X7K.js} +16 -13
- package/dist/{chunk-RU2HHHYA.js → chunk-LD2JSKU3.js} +12 -2
- package/dist/{chunk-OO2L2LWV.js → chunk-LEBPWFVF.js} +50 -46
- package/dist/{chunk-MU3CJPJF.js → chunk-LGI735AJ.js} +2 -2
- package/dist/{chunk-OWVDD5EC.js → chunk-LMWXBFLA.js} +2 -2
- package/dist/{chunk-6IN4F4RH.js → chunk-M3LZCDB6.js} +40 -42
- package/dist/{chunk-YT5ICQ4R.js → chunk-MFK7LF66.js} +2 -2
- package/dist/{chunk-UH5YTZN7.js → chunk-MJYFPFZT.js} +110 -20
- package/dist/{chunk-2QRIMMIH.js → chunk-N56W4R66.js} +2 -2
- package/dist/{chunk-LXXVHLTH.js → chunk-NN5IDH2I.js} +2 -2
- package/dist/{chunk-46KVXDUJ.js → chunk-NS3KIRSW.js} +2 -2
- package/dist/{chunk-LM3HY3VG.js → chunk-P2DM7Q5U.js} +2 -2
- package/dist/{chunk-DJL5PO27.js → chunk-P4SQV3XD.js} +2 -2
- package/dist/{chunk-B52RL5VV.js → chunk-P54AX5XN.js} +9 -9
- package/dist/{chunk-MZEGUDTA.js → chunk-P64NBPSK.js} +14 -14
- package/dist/{chunk-FF7LRT5L.js → chunk-PIWUZFG7.js} +33 -25
- package/dist/{chunk-SWEKCK34.js → chunk-QAPFXLAC.js} +2 -2
- package/dist/chunk-QFIXL3OK.js +68 -0
- package/dist/{chunk-KRTLS3G6.js → chunk-QVMV4KCA.js} +2 -2
- package/dist/{chunk-76LHNLGX.js → chunk-R4YGH7DJ.js} +5 -3
- package/dist/{chunk-OZOHREFQ.js → chunk-RC3FM3FE.js} +12 -13
- package/dist/{chunk-UJBP57UJ.js → chunk-RC6GGF6X.js} +2 -2
- package/dist/{chunk-S6OXNZBM.js → chunk-RHZZVIGA.js} +3 -3
- package/dist/{chunk-MS5574I7.js → chunk-RIXWLFB4.js} +2 -2
- package/dist/{chunk-D3B6YEZK.js → chunk-RUNI4OXP.js} +18 -14
- package/dist/{chunk-ICVIJLBA.js → chunk-SFSJ6XWV.js} +2 -2
- package/dist/{chunk-QBM5BURJ.js → chunk-SNBEAO4Q.js} +8 -8
- package/dist/{chunk-DSXWJAOA.js → chunk-SXD6VY7D.js} +16 -14
- package/dist/{chunk-V4NHFY22.js → chunk-TLM3I4XF.js} +16 -16
- package/dist/{chunk-3O7ZYVJV.js → chunk-TO6TWNMF.js} +19 -15
- package/dist/{chunk-CYMYZYLI.js → chunk-U2JIFCJN.js} +18 -18
- package/dist/{chunk-SSEAULA5.js → chunk-U4ND3J6C.js} +18 -14
- package/dist/{chunk-QXMHBIQG.js → chunk-UCF6TKWV.js} +51 -48
- package/dist/{chunk-RGW26UAR.js → chunk-UDYJVX6Y.js} +9 -9
- package/dist/{chunk-7CXW6EGX.js → chunk-UQY2VLUK.js} +25 -23
- package/dist/{chunk-EUVUOPRC.js → chunk-VAA7QSZ7.js} +53 -32
- package/dist/{chunk-43AJKH2U.js → chunk-VQGQF7O7.js} +12 -10
- package/dist/{chunk-DEW62ON3.js → chunk-VSPNH7LC.js} +2 -2
- package/dist/{chunk-4YER7UCV.js → chunk-VUJQ6RU6.js} +2 -2
- package/dist/{chunk-CHOK7NCJ.js → chunk-VZD3ZV4Y.js} +26 -22
- package/dist/{chunk-NCT22MOD.js → chunk-WMIKC5XO.js} +2 -2
- package/dist/{chunk-C2WH3BMS.js → chunk-X326N4GN.js} +10 -7
- package/dist/chunk-XBJJP2HN.js +37 -0
- package/dist/{chunk-7NSNE52V.js → chunk-XCR3PDFF.js} +2 -2
- package/dist/{chunk-UBDVAHGK.js → chunk-XDPJMLOH.js} +30 -27
- package/dist/{chunk-CF3I5SOG.js → chunk-YKDZ3ZRI.js} +27 -25
- package/dist/{chunk-GLREDNBA.js → chunk-YVLTNNME.js} +12 -2
- package/dist/{chunk-6ZZKEYBS.js → chunk-ZGOBAMQ2.js} +15 -13
- package/dist/{chunk-6BVAW7KI.js → chunk-ZMCFUGKO.js} +49 -42
- package/dist/clock.js +11 -5
- package/dist/completion-registry.js +2 -2
- package/dist/countdown.js +26 -20
- package/dist/{d3-BiaJtaSw.d.ts → d3-CQT5bwpb.d.ts} +1 -1
- package/dist/{dgmo-router-BwXHZ_P3.d.ts → dgmo-router-C9CsswPZ.d.ts} +1 -1
- package/dist/{dgmo-router-A3LIHT6H.js → dgmo-router-XZNCLYTV.js} +30 -29
- package/dist/{dimensions-OFF4GRFL.js → dimensions-SIZMZ4DC.js} +8 -8
- package/dist/{flowchart-renderer-BBJUPORB.js → flowchart-renderer-FDJ4QQXE.js} +15 -14
- package/dist/index.d.ts +7 -7
- package/dist/index.js +58 -43
- package/dist/{layout-Y2V3LYV7.js → layout-5DZ2LI2R.js} +2 -2
- package/dist/{layout-ZAGUFT2G.js → layout-6I6LSBUR.js} +6 -5
- package/dist/{layout-2OJ25STS.js → layout-C2SCZV5M.js} +6 -5
- package/dist/{layout-6SKHNQYO.js → layout-CHWKNE3O.js} +3 -3
- package/dist/{layout-EM4DLMAX.js → layout-K4KML2DL.js} +3 -3
- package/dist/{layout-KQUSB45X.js → layout-S53FSD6R.js} +7 -6
- package/dist/{layout-ROORJQ4X.js → layout-TCFXB5XH.js} +7 -6
- package/dist/{layout-5ILNODTP.js → layout-XK6ZD7BU.js} +6 -5
- package/dist/{layout-B5GQVXXY.js → layout-YVY72CIG.js} +7 -6
- package/dist/{layout-VUZ3MLOI.js → layout-YY6VH5XH.js} +6 -5
- package/dist/{layout-RV2T2YTT.js → layout-ZDN252GR.js} +4 -3
- package/dist/{layout-search-UOKEMER5.js → layout-search-TSV4FURP.js} +7 -6
- package/dist/{legend-constants-PLN2YHGM.js → legend-constants-SB4PLHV5.js} +3 -3
- package/dist/{palettes-54YSI3IX.js → palettes-YIPSRYXP.js} +5 -3
- package/dist/{parser-GCVSRQPY.js → parser-2BX2EJUB.js} +3 -3
- package/dist/{parser-WVE6SKB7.js → parser-3UNIPVNY.js} +3 -3
- package/dist/{parser-5XFGK5C5.js → parser-4IHIVDJD.js} +5 -5
- package/dist/{parser-ZT3PU2HT.js → parser-62VNEQRT.js} +3 -3
- package/dist/{parser-PR3OR3LO.js → parser-6JNJHQAG.js} +3 -3
- package/dist/{parser-ZXQZZK6W.js → parser-6ZFQLLVE.js} +3 -2
- package/dist/{parser-WMJEPZDC.js → parser-BOPXE6RP.js} +3 -3
- package/dist/{parser-WWRRG2DV.js → parser-DFBQ2RID.js} +3 -3
- package/dist/{parser-2GMHFSTS.js → parser-EPKXJ2RL.js} +3 -3
- package/dist/{parser-ML3LVNDV.js → parser-G7E2BURB.js} +3 -3
- package/dist/{parser-QOIZGW7I.js → parser-GFGU5ZLQ.js} +3 -3
- package/dist/{parser-L7T7FY3H.js → parser-GKZWI5SZ.js} +3 -3
- package/dist/{parser-QYAIFXLP.js → parser-HSPODF4H.js} +3 -3
- package/dist/{parser-EQ4I3TSH.js → parser-IK3FXZ7D.js} +3 -3
- package/dist/{parser-LV7PQBUG.js → parser-LJWPKRDM.js} +3 -3
- package/dist/{parser-RDBXEVI4.js → parser-OYWUBQV4.js} +3 -3
- package/dist/{parser-6FUESG4N.js → parser-PD4TP6NM.js} +3 -3
- package/dist/{parser-E3OHNNTH.js → parser-R2JHC7LQ.js} +3 -3
- package/dist/{parser-CJNP7RKR.js → parser-RMZ6YI7H.js} +3 -3
- package/dist/{parser-TA5TYZNL.js → parser-RUJNN5PK.js} +3 -3
- package/dist/{parser-UTR5WE4O.js → parser-YWE7GHW6.js} +3 -3
- package/dist/{parser-3AOMUX5D.js → parser-Z5UK6ADF.js} +3 -3
- package/dist/{parser-YWQCC33R.js → parser-ZO5YT5SV.js} +3 -3
- package/dist/renderer-5TPUPMZ7.js +26 -0
- package/dist/{renderer-2NYQDW37.js → renderer-AIVALEQR.js} +7 -7
- package/dist/renderer-AMELXBNW.js +23 -0
- package/dist/renderer-BF7FYXG3.js +25 -0
- package/dist/renderer-CRRW7LTW.js +17 -0
- package/dist/renderer-CXU2MGSC.js +27 -0
- package/dist/renderer-DI66RLAG.js +30 -0
- package/dist/renderer-E2JTYQY5.js +39 -0
- package/dist/{renderer-Y3Y7PEUS.js → renderer-FA4BTAOL.js} +7 -7
- package/dist/{renderer-G2DPKJAN.js → renderer-FFGFTIT4.js} +15 -14
- package/dist/renderer-IVAM7Z3Y.js +27 -0
- package/dist/renderer-J6HK2KOW.js +23 -0
- package/dist/renderer-J7J3OVLQ.js +39 -0
- package/dist/{renderer-GHBF5PRH.js → renderer-JC7MK7SD.js} +6 -5
- package/dist/{renderer-VF7X66SL.js → renderer-JHQC5RGJ.js} +14 -14
- package/dist/renderer-JRITSZY3.js +28 -0
- package/dist/{renderer-ANJUDBOS.js → renderer-KD5X4RIS.js} +14 -13
- package/dist/{renderer-CVWQD442.js → renderer-KWNNWCGD.js} +6 -5
- package/dist/{renderer-FTX67CYZ.js → renderer-LGMIAG6N.js} +7 -6
- package/dist/{renderer-EDVCGIQO.js → renderer-LQN3FXAP.js} +33 -32
- package/dist/renderer-LRL4SU43.js +29 -0
- package/dist/{renderer-R5HIRN2M.js → renderer-MBL64AJI.js} +6 -6
- package/dist/renderer-NA3DTAWF.js +39 -0
- package/dist/renderer-OR5QHR7X.js +31 -0
- package/dist/renderer-SBVWHQVW.js +30 -0
- package/dist/{renderer-DNFV2IQI.js → renderer-TLOSBJKW.js} +13 -13
- package/dist/{renderer-EFQSMHID.js → renderer-UDWJRRIC.js} +11 -11
- package/dist/renderer-VHK6UAW2.js +20 -0
- package/dist/{renderer-2ANDPQWC.js → renderer-W5UG2HWT.js} +5 -5
- package/dist/renderer-WOOKJOBQ.js +25 -0
- package/dist/renderer-WYNLGZRF.js +25 -0
- package/dist/{renderer-RNFECJ5D.js → renderer-Y74Y54C3.js} +8 -8
- package/dist/renderer-ZUAXGHFC.js +28 -0
- package/dist/renderer-radial-YVUDGR7C.js +21 -0
- package/dist/{state-parser-TPA67IXM.js → state-parser-CT5HQQ7E.js} +3 -3
- package/dist/state-renderer-7O3QGNJ5.js +41 -0
- package/dist/{tag-groups-BAtkq0b_.d.ts → tag-groups-BoJg3lFV.d.ts} +0 -16
- package/dist/{themes-DpsyRSO7.d.ts → themes-CXYnNA4e.d.ts} +2 -2
- package/docs/architecture-report.md +3 -3
- package/docs/language-reference.md +122 -30
- package/docs/migration-sequence-color-to-tags.md +16 -8
- package/package.json +4 -4
- package/dist/charts-d3-HMEMHSSW.js +0 -29
- package/dist/chunk-53SEVJQM.js +0 -9
- package/dist/chunk-LP7EC4MI.js +0 -16
- package/dist/chunk-YM5RMLFO.js +0 -40
- package/dist/renderer-2LDT4TUX.js +0 -25
- package/dist/renderer-2RIIIO34.js +0 -39
- package/dist/renderer-3HFU3DTO.js +0 -25
- package/dist/renderer-4BF6ILP6.js +0 -27
- package/dist/renderer-5E2AH5TO.js +0 -38
- package/dist/renderer-62SLWRYF.js +0 -27
- package/dist/renderer-D6GJ6EVK.js +0 -30
- package/dist/renderer-GZLRX764.js +0 -24
- package/dist/renderer-H2HYLFN3.js +0 -20
- package/dist/renderer-IR5655M7.js +0 -28
- package/dist/renderer-L237AOOZ.js +0 -16
- package/dist/renderer-LSJWYGOL.js +0 -39
- package/dist/renderer-LWXDMZOV.js +0 -28
- package/dist/renderer-MYSVPERC.js +0 -22
- package/dist/renderer-OL5QSZPC.js +0 -31
- package/dist/renderer-P26HH3NA.js +0 -30
- package/dist/renderer-RPZVNCTF.js +0 -26
- package/dist/renderer-SDNWZDUY.js +0 -23
- package/dist/renderer-UKHH4UWV.js +0 -25
- package/dist/renderer-radial-QNGCGKZP.js +0 -21
- package/dist/state-renderer-ELWDRXD6.js +0 -40
|
@@ -1,24 +1,27 @@
|
|
|
1
|
+
import {
|
|
2
|
+
EDGE_DASH
|
|
3
|
+
} from "./chunk-IIEI7VK5.js";
|
|
1
4
|
import {
|
|
2
5
|
layoutInlineHeader
|
|
3
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-FLMXJMMY.js";
|
|
4
7
|
import {
|
|
5
8
|
TITLE_FONT_SIZE,
|
|
6
9
|
TITLE_FONT_WEIGHT,
|
|
7
10
|
TITLE_Y
|
|
8
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-VSPNH7LC.js";
|
|
9
12
|
import {
|
|
10
13
|
renderIntegratedLegend
|
|
11
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-67I3HFSF.js";
|
|
12
15
|
import {
|
|
13
16
|
getLegendExtent,
|
|
14
17
|
getMaxLegendReservedHeight
|
|
15
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-IZTU6WVR.js";
|
|
16
19
|
import {
|
|
17
20
|
FONT_FAMILY
|
|
18
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-ICLB27PZ.js";
|
|
19
22
|
import {
|
|
20
23
|
LEGEND_GROUP_GAP
|
|
21
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-MFK7LF66.js";
|
|
22
25
|
import {
|
|
23
26
|
measureText
|
|
24
27
|
} from "./chunk-MTGGOCND.js";
|
|
@@ -28,11 +31,11 @@ import {
|
|
|
28
31
|
import {
|
|
29
32
|
resolveTagColor,
|
|
30
33
|
tagAttrKey
|
|
31
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-R4YGH7DJ.js";
|
|
32
35
|
import {
|
|
33
36
|
mix,
|
|
34
37
|
themeBaseBg
|
|
35
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-YVLTNNME.js";
|
|
36
39
|
|
|
37
40
|
// src/block/renderer.ts
|
|
38
41
|
import * as d3Selection from "d3-selection";
|
|
@@ -303,7 +306,7 @@ function drawItems(g, items, ctx, path = []) {
|
|
|
303
306
|
const { palette, fillMode } = ctx;
|
|
304
307
|
for (const it of items) {
|
|
305
308
|
if (it.type === "empty") {
|
|
306
|
-
g.append("rect").attr("x", it.x).attr("y", it.y).attr("width", it.w).attr("height", it.h).attr("rx", 7).attr("fill", "none").attr("stroke", ctx.neutral).attr("stroke-width", 1).attr("stroke-dasharray",
|
|
309
|
+
g.append("rect").attr("x", it.x).attr("y", it.y).attr("width", it.w).attr("height", it.h).attr("rx", 7).attr("fill", "none").attr("stroke", ctx.neutral).attr("stroke-width", 1).attr("stroke-dasharray", EDGE_DASH).attr("opacity", 0.7);
|
|
307
310
|
continue;
|
|
308
311
|
}
|
|
309
312
|
const node = it.node;
|
|
@@ -322,7 +325,7 @@ function drawItems(g, items, ctx, path = []) {
|
|
|
322
325
|
const cid = `dgmo-block-clip-${clipCounter++}`;
|
|
323
326
|
cell.append("clipPath").attr("id", cid).append("rect").attr("x", it.x).attr("y", it.y).attr("width", it.w).attr("height", it.h).attr("rx", 10);
|
|
324
327
|
cell.append("rect").attr("x", it.x).attr("y", it.y).attr("width", it.w).attr("height", it.h).attr("rx", 10).attr("fill", fill2).attr("stroke", stroke).attr("stroke-width", 1.5);
|
|
325
|
-
cell.append("text").attr("x", it.x + it.w / 2).attr("y", it.y + it.h / 2 + 4).attr("text-anchor", "middle").attr("font-size", 12.5).attr("font-weight",
|
|
328
|
+
cell.append("text").attr("x", it.x + it.w / 2).attr("y", it.y + it.h / 2 + 4).attr("text-anchor", "middle").attr("font-size", 12.5).attr("font-weight", "bold").attr("fill", palette.text).text(clipLabel(it.label ?? "", it.w - 24, 12.5));
|
|
326
329
|
cell.append("rect").attr("x", it.x).attr("y", it.y + it.h - BLOCK_BAR_H).attr("width", it.w).attr("height", BLOCK_BAR_H).attr("fill", fillMode === "solid" && color ? palette.text : stroke).attr("clip-path", `url(#${cid})`);
|
|
327
330
|
bindToggle(cell, it, ctx, it.h);
|
|
328
331
|
continue;
|
|
@@ -338,7 +341,7 @@ function drawItems(g, items, ctx, path = []) {
|
|
|
338
341
|
const grow = (headerFs - 13) / (20 - 13);
|
|
339
342
|
const headerOpacity = 0.92 - grow * 0.3;
|
|
340
343
|
const headerY = it.y + Math.round(headerFs * 0.7) + 7;
|
|
341
|
-
cell.append("text").attr("x", it.x + it.w / 2).attr("y", headerY).attr("text-anchor", "middle").attr("font-size", headerFs).attr("font-weight",
|
|
344
|
+
cell.append("text").attr("x", it.x + it.w / 2).attr("y", headerY).attr("text-anchor", "middle").attr("font-size", headerFs).attr("font-weight", "bold").attr("fill", palette.text).attr("opacity", headerOpacity).text(clipLabel(it.label ?? "", it.w - 24, headerFs));
|
|
342
345
|
bindToggle(cell, it, ctx, BLOCK_HEADER_H);
|
|
343
346
|
if (it.inner) drawItems(g, it.inner, ctx, itemPath);
|
|
344
347
|
continue;
|
|
@@ -346,7 +349,7 @@ function drawItems(g, items, ctx, path = []) {
|
|
|
346
349
|
const fill = color ? fillMode === "solid" ? mix(color, palette.bg, 80) : fillMode === "outline" ? themeBaseBg(palette, ctx.isDark) : mix(color, palette.bg, 14) : palette.bg;
|
|
347
350
|
cell.attr("data-leaf", "true");
|
|
348
351
|
cell.append("rect").attr("x", it.x).attr("y", it.y).attr("width", it.w).attr("height", it.h).attr("rx", 8).attr("fill", fill).attr("stroke", stroke).attr("stroke-width", 1.25);
|
|
349
|
-
cell.append("text").attr("x", it.x + it.w / 2).attr("y", it.y + it.h / 2 + 5).attr("text-anchor", "middle").attr("font-size", 13).attr("font-weight",
|
|
352
|
+
cell.append("text").attr("x", it.x + it.w / 2).attr("y", it.y + it.h / 2 + 5).attr("text-anchor", "middle").attr("font-size", 13).attr("font-weight", "bold").attr("fill", palette.text).text(clipLabel(it.label ?? "", it.w - 16, 13));
|
|
350
353
|
}
|
|
351
354
|
}
|
|
352
355
|
function bindToggle(cell, it, ctx, hitH) {
|
|
@@ -397,4 +400,4 @@ export {
|
|
|
397
400
|
renderBlock,
|
|
398
401
|
authoredCollapsedIds
|
|
399
402
|
};
|
|
400
|
-
//# sourceMappingURL=chunk-
|
|
403
|
+
//# sourceMappingURL=chunk-L26M3X7K.js.map
|
|
@@ -13,11 +13,21 @@ function escapeAttributeMarkupChars(svg) {
|
|
|
13
13
|
}
|
|
14
14
|
);
|
|
15
15
|
}
|
|
16
|
+
var ROUNDED_ATTRS = /(\s(?:font-size|stroke-width|rx|ry)=")(-?\d+\.\d{3,})"/g;
|
|
17
|
+
var ROUNDED_OPACITY_ATTRS = /(\s(?:opacity|fill-opacity|stroke-opacity)=")(-?\d+\.\d{5,})"/g;
|
|
18
|
+
function roundMagnitudeAttrs(svg) {
|
|
19
|
+
const round = (re, digits) => (s) => s.replace(re, (_m, prefix, value) => {
|
|
20
|
+
const n = Number(value);
|
|
21
|
+
if (!Number.isFinite(n)) return `${prefix}${value}"`;
|
|
22
|
+
return `${prefix}${String(Number(n.toFixed(digits)))}"`;
|
|
23
|
+
});
|
|
24
|
+
return round(ROUNDED_OPACITY_ATTRS, 4)(round(ROUNDED_ATTRS, 2)(svg));
|
|
25
|
+
}
|
|
16
26
|
function serializeSvg(svgEl) {
|
|
17
|
-
return escapeAttributeMarkupChars(svgEl.outerHTML);
|
|
27
|
+
return roundMagnitudeAttrs(escapeAttributeMarkupChars(svgEl.outerHTML));
|
|
18
28
|
}
|
|
19
29
|
|
|
20
30
|
export {
|
|
21
31
|
serializeSvg
|
|
22
32
|
};
|
|
23
|
-
//# sourceMappingURL=chunk-
|
|
33
|
+
//# sourceMappingURL=chunk-LD2JSKU3.js.map
|
|
@@ -6,23 +6,30 @@ import {
|
|
|
6
6
|
layoutPert
|
|
7
7
|
} from "./chunk-GOW5VO6M.js";
|
|
8
8
|
import {
|
|
9
|
+
ScaleContext
|
|
10
|
+
} from "./chunk-24YPR5EH.js";
|
|
11
|
+
import {
|
|
12
|
+
ARROWHEAD_HEIGHT,
|
|
13
|
+
ARROWHEAD_WIDTH,
|
|
14
|
+
CARD_RADIUS,
|
|
9
15
|
COLLAPSE_BAR_HEIGHT,
|
|
10
16
|
CONTAINER_HEADER_HEIGHT,
|
|
11
17
|
CONTAINER_LABEL_FONT_SIZE,
|
|
12
18
|
CONTAINER_RADIUS,
|
|
19
|
+
EDGE_DASH,
|
|
13
20
|
EDGE_STROKE_WIDTH,
|
|
21
|
+
HAIRLINE_DASH,
|
|
22
|
+
LABEL_FONT_SIZE,
|
|
23
|
+
META_FONT_SIZE,
|
|
14
24
|
NODE_STROKE_WIDTH
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import {
|
|
17
|
-
ScaleContext
|
|
18
|
-
} from "./chunk-24YPR5EH.js";
|
|
25
|
+
} from "./chunk-IIEI7VK5.js";
|
|
19
26
|
import {
|
|
20
27
|
INLINE_HEADER_PAD,
|
|
21
28
|
layoutInlineHeader
|
|
22
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-FLMXJMMY.js";
|
|
23
30
|
import {
|
|
24
31
|
serializeSvg
|
|
25
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-LD2JSKU3.js";
|
|
26
33
|
import {
|
|
27
34
|
CAPTION_BOX_PADDING_X,
|
|
28
35
|
CAPTION_BOX_PADDING_Y,
|
|
@@ -32,19 +39,19 @@ import {
|
|
|
32
39
|
TITLE_FONT_SIZE,
|
|
33
40
|
TITLE_FONT_WEIGHT,
|
|
34
41
|
TITLE_Y
|
|
35
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-VSPNH7LC.js";
|
|
36
43
|
import {
|
|
37
44
|
renderIntegratedLegend
|
|
38
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-67I3HFSF.js";
|
|
39
46
|
import {
|
|
40
47
|
getLegendExtent
|
|
41
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-IZTU6WVR.js";
|
|
42
49
|
import {
|
|
43
50
|
FONT_FAMILY
|
|
44
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-ICLB27PZ.js";
|
|
45
52
|
import {
|
|
46
53
|
LEGEND_HEIGHT
|
|
47
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-MFK7LF66.js";
|
|
48
55
|
import {
|
|
49
56
|
measureText,
|
|
50
57
|
truncateText,
|
|
@@ -52,7 +59,7 @@ import {
|
|
|
52
59
|
} from "./chunk-MTGGOCND.js";
|
|
53
60
|
import {
|
|
54
61
|
parsePert
|
|
55
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-KAZQX2EY.js";
|
|
56
63
|
import {
|
|
57
64
|
addCalendarDays,
|
|
58
65
|
formatDuration,
|
|
@@ -61,23 +68,22 @@ import {
|
|
|
61
68
|
formatSprintCell
|
|
62
69
|
} from "./chunk-3TYUXC7D.js";
|
|
63
70
|
import {
|
|
71
|
+
UNTAGGED_TAG_COLOR,
|
|
64
72
|
resolveActiveTagGroup,
|
|
65
73
|
resolveTagColor
|
|
66
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-R4YGH7DJ.js";
|
|
67
75
|
import {
|
|
68
76
|
contrastText,
|
|
69
77
|
mix,
|
|
70
78
|
shapeFill,
|
|
71
79
|
themeBaseBg
|
|
72
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-YVLTNNME.js";
|
|
73
81
|
|
|
74
82
|
// src/pert/renderer.ts
|
|
75
83
|
import * as d3Selection from "d3-selection";
|
|
76
84
|
import * as d3Shape from "d3-shape";
|
|
85
|
+
var PAST_PERCENTILE_DASH = "4 2";
|
|
77
86
|
var DIAGRAM_PADDING = 20;
|
|
78
|
-
var NODE_FONT_SIZE = 13;
|
|
79
|
-
var NODE_CELL_FONT_SIZE = 11;
|
|
80
|
-
var NODE_RADIUS = 6;
|
|
81
87
|
function analysisBlockChrome(palette, isDark) {
|
|
82
88
|
const surfaceBg = themeBaseBg(palette, isDark);
|
|
83
89
|
return {
|
|
@@ -87,8 +93,6 @@ function analysisBlockChrome(palette, isDark) {
|
|
|
87
93
|
}
|
|
88
94
|
var NODE_TOP_ROW_HEIGHT = 26;
|
|
89
95
|
var NODE_BOTTOM_ROW_HEIGHT = 26;
|
|
90
|
-
var ARROWHEAD_W = 10;
|
|
91
|
-
var ARROWHEAD_H = 7;
|
|
92
96
|
var DURATION_FADE_OPACITY = 0.55;
|
|
93
97
|
var PIN_ICON_W = 13;
|
|
94
98
|
var PIN_ICON_H = 13;
|
|
@@ -208,15 +212,15 @@ function renderPert(container, resolved, layout, palette, isDark, options = {})
|
|
|
208
212
|
const sLegendBottomGap = ctx.aesthetic(LEGEND_BOTTOM_GAP);
|
|
209
213
|
const sLegendPillHeight = ctx.structural(LEGEND_PILL_HEIGHT);
|
|
210
214
|
const sLegendBlockHeight = showTagLegend ? sLegendTopGap + sLegendPillHeight + sLegendBottomGap : 0;
|
|
211
|
-
const sNodeRadius = ctx.structural(
|
|
215
|
+
const sNodeRadius = ctx.structural(CARD_RADIUS);
|
|
212
216
|
const sNodeStrokeWidth = ctx.structural(NODE_STROKE_WIDTH);
|
|
213
|
-
const sNodeFontSize = ctx.text(
|
|
214
|
-
const sNodeCellFontSize = ctx.text(
|
|
217
|
+
const sNodeFontSize = ctx.text(LABEL_FONT_SIZE);
|
|
218
|
+
const sNodeCellFontSize = ctx.text(META_FONT_SIZE);
|
|
215
219
|
const sNodeTopRowHeight = ctx.structural(NODE_TOP_ROW_HEIGHT);
|
|
216
220
|
const sNodeBottomRowHeight = ctx.structural(NODE_BOTTOM_ROW_HEIGHT);
|
|
217
221
|
const sEdgeStrokeWidth = ctx.structural(EDGE_STROKE_WIDTH);
|
|
218
|
-
const sArrowheadW = ctx.structural(
|
|
219
|
-
const sArrowheadH = ctx.structural(
|
|
222
|
+
const sArrowheadW = ctx.structural(ARROWHEAD_WIDTH);
|
|
223
|
+
const sArrowheadH = ctx.structural(ARROWHEAD_HEIGHT);
|
|
220
224
|
const sContainerRadius = ctx.structural(CONTAINER_RADIUS);
|
|
221
225
|
const sContainerLabelFontSize = ctx.text(CONTAINER_LABEL_FONT_SIZE);
|
|
222
226
|
const sContainerHeaderHeight = ctx.structural(CONTAINER_HEADER_HEIGHT);
|
|
@@ -263,7 +267,7 @@ function renderPert(container, resolved, layout, palette, isDark, options = {})
|
|
|
263
267
|
}
|
|
264
268
|
if (effectiveSubtitle) {
|
|
265
269
|
const subtitleY = effectiveTitle ? sTitleY + ctx.aesthetic(26) : sTitleY;
|
|
266
|
-
svg.append("text").attr("class", "pert-subtitle").attr("x", svgW / 2).attr("y", subtitleY).attr("text-anchor", "middle").attr("fill", palette.textMuted).attr("font-size", sSubtitleFontSize).attr("font-weight",
|
|
270
|
+
svg.append("text").attr("class", "pert-subtitle").attr("x", svgW / 2).attr("y", subtitleY).attr("text-anchor", "middle").attr("fill", palette.textMuted).attr("font-size", sSubtitleFontSize).attr("font-weight", "normal").text(effectiveSubtitle);
|
|
267
271
|
}
|
|
268
272
|
const offsetX = Math.max(sDiagramPad, (svgW - layout.width) / 2);
|
|
269
273
|
const offsetY = sDiagramPad + sTitleHeight + (header.inline ? 0 : sLegendBlockHeight);
|
|
@@ -660,7 +664,7 @@ function renderPertAnalysisBlock(container, resolved, palette, isDark, options)
|
|
|
660
664
|
const svg = d3Selection.select(container).append("svg").attr("width", width).attr("height", totalHeight).attr("viewBox", `0 0 ${width} ${totalHeight}`).attr("preserveAspectRatio", "xMidYMin meet").style("font-family", FONT_FAMILY).style("overflow", "visible");
|
|
661
665
|
paintAnalysisLayer(svg, resolved, palette, isDark, state, 0, 0, width);
|
|
662
666
|
}
|
|
663
|
-
function buildArrowheads(defs, palette, arrowW =
|
|
667
|
+
function buildArrowheads(defs, palette, arrowW = ARROWHEAD_WIDTH, arrowH = ARROWHEAD_HEIGHT) {
|
|
664
668
|
const mk = (id, fill) => {
|
|
665
669
|
defs.append("marker").attr("id", id).attr("viewBox", `0 0 ${arrowW} ${arrowH}`).attr("refX", arrowW).attr("refY", arrowH / 2).attr("markerWidth", arrowW).attr("markerHeight", arrowH).attr("orient", "auto").append("polygon").attr("points", `0,0 ${arrowW},${arrowH / 2} 0,${arrowH}`).attr("fill", fill);
|
|
666
670
|
};
|
|
@@ -736,7 +740,7 @@ function renderGroups(root, resolved, layout, palette, isDark, collapsedSet, siz
|
|
|
736
740
|
palette.textOnFillLight,
|
|
737
741
|
palette.textOnFillDark
|
|
738
742
|
);
|
|
739
|
-
const sNR = sc.nodeRadius ??
|
|
743
|
+
const sNR = sc.nodeRadius ?? CARD_RADIUS;
|
|
740
744
|
const sCBH = sc.collapseBarHeight ?? COLLAPSE_BAR_HEIGHT;
|
|
741
745
|
drawTextbookCard(g, {
|
|
742
746
|
width: grp.width,
|
|
@@ -884,7 +888,7 @@ function renderNodes(root, _defs, resolved, layout, palette, isDark, sizing, onC
|
|
|
884
888
|
if (r.activity.groupId && collapsedSet.has(r.activity.groupId)) continue;
|
|
885
889
|
const isCritical = r.isCriticalPath;
|
|
886
890
|
const isTbd = tbdSet.has(node.id);
|
|
887
|
-
const dashArray = isTbd ?
|
|
891
|
+
const dashArray = isTbd ? EDGE_DASH : "none";
|
|
888
892
|
const isTopMu = topMuIds.has(node.id);
|
|
889
893
|
const isBottomMu = bottomMuIds.has(node.id);
|
|
890
894
|
let band;
|
|
@@ -924,7 +928,7 @@ function renderNodes(root, _defs, resolved, layout, palette, isDark, sizing, onC
|
|
|
924
928
|
resolved.tagGroups,
|
|
925
929
|
activeTagGroup
|
|
926
930
|
);
|
|
927
|
-
const hasTagColor = tagColor !== void 0 && tagColor !==
|
|
931
|
+
const hasTagColor = tagColor !== void 0 && tagColor !== UNTAGGED_TAG_COLOR;
|
|
928
932
|
const tagBandFill = hasTagColor ? shapeFill(palette, tagColor, isDark, { mode: fillMode }) : void 0;
|
|
929
933
|
const tagLabelColor = hasTagColor ? contrastText(
|
|
930
934
|
tagBandFill,
|
|
@@ -1009,12 +1013,12 @@ function computeDurationEmphasis(activities) {
|
|
|
1009
1013
|
}
|
|
1010
1014
|
function drawTextbookCard(g, a) {
|
|
1011
1015
|
const { width: w, height: h, x, y } = a;
|
|
1012
|
-
const sNR = a.sNodeRadius ??
|
|
1016
|
+
const sNR = a.sNodeRadius ?? CARD_RADIUS;
|
|
1013
1017
|
const sNSW = a.sNodeStrokeWidth ?? NODE_STROKE_WIDTH;
|
|
1014
1018
|
const sTRH = a.sNodeTopRowHeight ?? NODE_TOP_ROW_HEIGHT;
|
|
1015
1019
|
const sBRH = a.sNodeBottomRowHeight ?? NODE_BOTTOM_ROW_HEIGHT;
|
|
1016
|
-
const sNFS = a.sNodeFontSize ??
|
|
1017
|
-
const sNCFS = a.sNodeCellFontSize ??
|
|
1020
|
+
const sNFS = a.sNodeFontSize ?? LABEL_FONT_SIZE;
|
|
1021
|
+
const sNCFS = a.sNodeCellFontSize ?? META_FONT_SIZE;
|
|
1018
1022
|
const sPIW = a.sPinIconW ?? PIN_ICON_W;
|
|
1019
1023
|
const sPIH = a.sPinIconH ?? PIN_ICON_H;
|
|
1020
1024
|
const outerColW = a.outerColW;
|
|
@@ -1108,11 +1112,11 @@ function drawTextbookCard(g, a) {
|
|
|
1108
1112
|
}
|
|
1109
1113
|
function drawMilestonePill(g, a) {
|
|
1110
1114
|
const { width: w, height: h, x, y } = a;
|
|
1111
|
-
const sNR = a.sNodeRadius ??
|
|
1115
|
+
const sNR = a.sNodeRadius ?? CARD_RADIUS;
|
|
1112
1116
|
const sNSW = a.sNodeStrokeWidth ?? NODE_STROKE_WIDTH;
|
|
1113
1117
|
const topRowH = a.sNodeTopRowHeight ?? NODE_TOP_ROW_HEIGHT;
|
|
1114
1118
|
const botRowH = a.sNodeBottomRowHeight ?? NODE_BOTTOM_ROW_HEIGHT;
|
|
1115
|
-
const sNCFS = a.sNodeCellFontSize ??
|
|
1119
|
+
const sNCFS = a.sNodeCellFontSize ?? META_FONT_SIZE;
|
|
1116
1120
|
const sPIW = a.sPinIconW ?? PIN_ICON_W;
|
|
1117
1121
|
const sPIH = a.sPinIconH ?? PIN_ICON_H;
|
|
1118
1122
|
const topY = y + topRowH;
|
|
@@ -1258,8 +1262,8 @@ function renderFieldLegendBlock(svg, args) {
|
|
|
1258
1262
|
const gridBottom = y + height;
|
|
1259
1263
|
const rowH = (gridBottom - gridTop) / 2;
|
|
1260
1264
|
const block = svg.append("g").attr("class", "pert-field-legend").attr("data-pert-field-legend", "");
|
|
1261
|
-
block.append("rect").attr("class", "pert-field-legend-rect").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("rx",
|
|
1262
|
-
block.append("text").attr("class", "pert-field-legend-header").attr("x", x + width / 2).attr("y", headerY).attr("text-anchor", "middle").attr("fill", labelColor).attr("font-size", CAPTION_FONT_SIZE).attr("font-weight", "
|
|
1265
|
+
block.append("rect").attr("class", "pert-field-legend-rect").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("rx", CARD_RADIUS).attr("ry", CARD_RADIUS).attr("fill", "none").attr("stroke", baseColor).attr("stroke-opacity", 0.4).attr("stroke-width", 1);
|
|
1266
|
+
block.append("text").attr("class", "pert-field-legend-header").attr("x", x + width / 2).attr("y", headerY).attr("text-anchor", "middle").attr("fill", labelColor).attr("font-size", CAPTION_FONT_SIZE).attr("font-weight", "bold").text("Field labels");
|
|
1263
1267
|
const grid = (x1, y1, x2, y2) => {
|
|
1264
1268
|
block.append("line").attr("x1", x1).attr("y1", y1).attr("x2", x2).attr("y2", y2).attr("stroke", baseColor).attr("stroke-opacity", 0.3).attr("stroke-width", 1);
|
|
1265
1269
|
};
|
|
@@ -1285,7 +1289,7 @@ function renderFieldLegendBlock(svg, args) {
|
|
|
1285
1289
|
const stackTop = cellTop + Math.max((rowH - stackHeight) / 2, 0);
|
|
1286
1290
|
const labelY = stackTop + FIELD_LEGEND_LABEL_FONT_SIZE;
|
|
1287
1291
|
const firstDescY = labelY + FIELD_LEGEND_LABEL_DESC_GAP + FIELD_LEGEND_DESC_FONT_SIZE;
|
|
1288
|
-
cellG.append("text").attr("class", "pert-field-legend-label").attr("x", cx).attr("y", labelY).attr("text-anchor", "middle").attr("font-family", FONT_FAMILY).attr("font-size", FIELD_LEGEND_LABEL_FONT_SIZE).attr("font-weight",
|
|
1292
|
+
cellG.append("text").attr("class", "pert-field-legend-label").attr("x", cx).attr("y", labelY).attr("text-anchor", "middle").attr("font-family", FONT_FAMILY).attr("font-size", FIELD_LEGEND_LABEL_FONT_SIZE).attr("font-weight", "bold").attr("fill", labelColor).text(cell.label);
|
|
1289
1293
|
const descText = cellG.append("text").attr("class", "pert-field-legend-desc").attr("x", cx).attr("y", firstDescY).attr("text-anchor", "middle").attr("font-family", FONT_FAMILY).attr("font-size", FIELD_LEGEND_DESC_FONT_SIZE).attr("fill", labelColor).attr("opacity", 0.85);
|
|
1290
1294
|
descLines.forEach((line2, idx) => {
|
|
1291
1295
|
const tspan = descText.append("tspan").attr("x", cx).text(line2);
|
|
@@ -1343,8 +1347,8 @@ function renderTornadoBlock(svg, rows, args) {
|
|
|
1343
1347
|
palette.textOnFillDark
|
|
1344
1348
|
);
|
|
1345
1349
|
const block = svg.append("g").attr("class", "pert-tornado-block").attr("data-pert-tornado", "");
|
|
1346
|
-
block.append("rect").attr("class", "pert-tornado-rect").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("rx",
|
|
1347
|
-
block.append("text").attr("class", "pert-tornado-header").attr("x", x + width / 2).attr("y", y + CAPTION_BOX_PADDING_Y + CAPTION_FONT_SIZE).attr("text-anchor", "middle").attr("fill", labelColor).attr("font-size", CAPTION_FONT_SIZE).attr("font-weight", "
|
|
1350
|
+
block.append("rect").attr("class", "pert-tornado-rect").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("rx", CARD_RADIUS).attr("ry", CARD_RADIUS).attr("fill", fill).attr("stroke", chromeStroke).attr("stroke-width", NODE_STROKE_WIDTH);
|
|
1351
|
+
block.append("text").attr("class", "pert-tornado-header").attr("x", x + width / 2).attr("y", y + CAPTION_BOX_PADDING_Y + CAPTION_FONT_SIZE).attr("text-anchor", "middle").attr("fill", labelColor).attr("font-size", CAPTION_FONT_SIZE).attr("font-weight", "bold").text("Activity Risk");
|
|
1348
1352
|
const fmt = (v) => {
|
|
1349
1353
|
const r = Math.round(v * 100) / 100;
|
|
1350
1354
|
return r.toFixed(2).replace(/\.?0+$/, "");
|
|
@@ -1497,7 +1501,7 @@ function renderScurveBlock(svg, data, args) {
|
|
|
1497
1501
|
palette.textOnFillDark
|
|
1498
1502
|
);
|
|
1499
1503
|
const block = svg.append("g").attr("class", "pert-scurve-block").attr("data-pert-scurve", "");
|
|
1500
|
-
block.append("rect").attr("class", "pert-scurve-rect").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("rx",
|
|
1504
|
+
block.append("rect").attr("class", "pert-scurve-rect").attr("x", x).attr("y", y).attr("width", width).attr("height", height).attr("rx", CARD_RADIUS).attr("ry", CARD_RADIUS).attr("fill", fill).attr("stroke", chromeStroke).attr("stroke-width", NODE_STROKE_WIDTH);
|
|
1501
1505
|
const SCURVE_DEADLINE_LABEL_HEIGHT = 16;
|
|
1502
1506
|
const hasDeadline = data.deadlineDays !== null;
|
|
1503
1507
|
const plotLeft = x + SCURVE_PLOT_PADDING_X;
|
|
@@ -1527,7 +1531,7 @@ function renderScurveBlock(svg, data, args) {
|
|
|
1527
1531
|
block.append("text").attr("class", "pert-scurve-y-axis-title").attr(
|
|
1528
1532
|
"transform",
|
|
1529
1533
|
`translate(${yAxisLabelCx}, ${yAxisLabelCy}) rotate(-90)`
|
|
1530
|
-
).attr("text-anchor", "middle").attr("fill", labelColor).attr("font-size", SCURVE_TICK_FONT_SIZE - 1).attr("font-weight", "
|
|
1534
|
+
).attr("text-anchor", "middle").attr("fill", labelColor).attr("font-size", SCURVE_TICK_FONT_SIZE - 1).attr("font-weight", "bold").attr("opacity", 0.85).text(data.yAxisLabel);
|
|
1531
1535
|
if (data.p84Days > data.p16Days) {
|
|
1532
1536
|
const bandLeftRaw = xScale(data.p16Days);
|
|
1533
1537
|
const bandRightRaw = xScale(data.p84Days);
|
|
@@ -1545,7 +1549,7 @@ function renderScurveBlock(svg, data, args) {
|
|
|
1545
1549
|
let anchor = "middle";
|
|
1546
1550
|
if (dx <= plotLeft + edgePad) anchor = "start";
|
|
1547
1551
|
else if (dx >= plotRight - edgePad) anchor = "end";
|
|
1548
|
-
block.append("text").attr("class", "pert-scurve-deadline-label").attr("x", dx).attr("y", plotTop - 4).attr("text-anchor", anchor).attr("fill", deadlineColor).attr("font-size", SCURVE_TICK_FONT_SIZE).attr("font-weight", "
|
|
1552
|
+
block.append("text").attr("class", "pert-scurve-deadline-label").attr("x", dx).attr("y", plotTop - 4).attr("text-anchor", anchor).attr("fill", deadlineColor).attr("font-size", SCURVE_TICK_FONT_SIZE).attr("font-weight", "bold").text(`Deadline \xB7 ${formatScurveDate(data.deadlineDate)}`);
|
|
1549
1553
|
block.append("line").attr("class", "pert-scurve-deadline-line").attr("x1", dx).attr("x2", dx).attr("y1", plotTop).attr("y2", plotBottom).attr("stroke", deadlineColor).attr("stroke-width", 1.5).attr("opacity", 0.9);
|
|
1550
1554
|
}
|
|
1551
1555
|
}
|
|
@@ -1619,11 +1623,11 @@ function renderScurveBlock(svg, data, args) {
|
|
|
1619
1623
|
}
|
|
1620
1624
|
const labelFill = mix(color, palette.text, 25);
|
|
1621
1625
|
const dotGroup = block.append("g").attr("class", "pert-scurve-percentile").attr("data-percentile", d.label);
|
|
1622
|
-
dotGroup.append("line").attr("class", "pert-scurve-percentile-tick").attr("x1", cx).attr("x2", cx).attr("y1", cy).attr("y2", plotBottom).attr("stroke", color).attr("stroke-width", 1).attr("stroke-dasharray", d.isPast ?
|
|
1626
|
+
dotGroup.append("line").attr("class", "pert-scurve-percentile-tick").attr("x1", cx).attr("x2", cx).attr("y1", cy).attr("y2", plotBottom).attr("stroke", color).attr("stroke-width", 1).attr("stroke-dasharray", d.isPast ? PAST_PERCENTILE_DASH : HAIRLINE_DASH).attr("opacity", 0.7);
|
|
1623
1627
|
dotGroup.append("circle").attr("class", "pert-scurve-percentile-dot").attr("cx", cx).attr("cy", cy).attr("r", SCURVE_PERCENTILE_RADIUS).attr("fill", color).attr("stroke", fill).attr("stroke-width", 1.5).attr("data-percentile", d.label);
|
|
1624
1628
|
dotGroup.append("circle").attr("class", "pert-scurve-percentile-hit").attr("cx", cx).attr("cy", cy).attr("r", 14).attr("fill", "transparent").attr("pointer-events", "all");
|
|
1625
|
-
dotGroup.append("text").attr("class", "pert-scurve-percentile-label").attr("x", labelX).attr("y", cy + SCURVE_TICK_FONT_SIZE / 3).attr("text-anchor", labelAnchor).attr("fill", labelFill).attr("font-size", SCURVE_TICK_FONT_SIZE).attr("font-weight", "
|
|
1626
|
-
dotGroup.append("text").attr("class", "pert-scurve-percentile-verbose").attr("x", labelX).attr("y", cy + SCURVE_TICK_FONT_SIZE / 3).attr("text-anchor", labelAnchor).attr("fill", labelFill).attr("font-size", SCURVE_TICK_FONT_SIZE).attr("font-weight", "
|
|
1629
|
+
dotGroup.append("text").attr("class", "pert-scurve-percentile-label").attr("x", labelX).attr("y", cy + SCURVE_TICK_FONT_SIZE / 3).attr("text-anchor", labelAnchor).attr("fill", labelFill).attr("font-size", SCURVE_TICK_FONT_SIZE).attr("font-weight", "bold").attr("paint-order", "stroke fill").attr("stroke", fill).attr("stroke-width", 3).attr("stroke-linejoin", "round").attr("stroke-opacity", 0.95).text(inlineText);
|
|
1630
|
+
dotGroup.append("text").attr("class", "pert-scurve-percentile-verbose").attr("x", labelX).attr("y", cy + SCURVE_TICK_FONT_SIZE / 3).attr("text-anchor", labelAnchor).attr("fill", labelFill).attr("font-size", SCURVE_TICK_FONT_SIZE).attr("font-weight", "bold").attr("paint-order", "stroke fill").attr("stroke", fill).attr("stroke-width", 3).attr("stroke-linejoin", "round").attr("stroke-opacity", 0.95).text(verboseText);
|
|
1627
1631
|
}
|
|
1628
1632
|
const N_X_TICKS = isAnchored ? 5 : 6;
|
|
1629
1633
|
const LABEL_W_EST = isAnchored ? 48 : 36;
|
|
@@ -1708,4 +1712,4 @@ export {
|
|
|
1708
1712
|
measurePertAnalysisBlock,
|
|
1709
1713
|
renderPertAnalysisBlock
|
|
1710
1714
|
};
|
|
1711
|
-
//# sourceMappingURL=chunk-
|
|
1715
|
+
//# sourceMappingURL=chunk-LEBPWFVF.js.map
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "./chunk-5DH3KYFH.js";
|
|
10
10
|
import {
|
|
11
11
|
wrapDescriptionLines
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-WMIKC5XO.js";
|
|
13
13
|
import {
|
|
14
14
|
measureText
|
|
15
15
|
} from "./chunk-MTGGOCND.js";
|
|
@@ -49,4 +49,4 @@ export {
|
|
|
49
49
|
wrapNoteBody,
|
|
50
50
|
noteBoxSize
|
|
51
51
|
};
|
|
52
|
-
//# sourceMappingURL=chunk-
|
|
52
|
+
//# sourceMappingURL=chunk-LGI735AJ.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-6EK55ART.js";
|
|
4
4
|
import {
|
|
5
5
|
noteBoxSize
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-LGI735AJ.js";
|
|
7
7
|
|
|
8
8
|
// src/utils/notes/build.ts
|
|
9
9
|
function buildPlacedNotes(anchors, noteByNode, direction, collapsedNotes) {
|
|
@@ -70,4 +70,4 @@ function buildPlacedNotes(anchors, noteByNode, direction, collapsedNotes) {
|
|
|
70
70
|
export {
|
|
71
71
|
buildPlacedNotes
|
|
72
72
|
};
|
|
73
|
-
//# sourceMappingURL=chunk-
|
|
73
|
+
//# sourceMappingURL=chunk-LMWXBFLA.js.map
|