@diagrammo/dgmo 0.76.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 +150 -13
- package/dist/advanced.js +180 -131
- package/dist/block.css +1 -1
- package/dist/block.d.ts +2 -2
- package/dist/block.js +45 -41
- package/dist/{chart-meta-lP8Rl19E.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-GFXFRKUG.js → chunk-32VR65TL.js} +63 -36
- package/dist/{chunk-IHUOYDLN.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-UBW53CNS.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-AYM472K3.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-QT5UMFPE.js → chunk-67I3HFSF.js} +9 -9
- package/dist/{chunk-WQXD3IIN.js → chunk-6B3M6LW6.js} +10 -8
- package/dist/{chunk-3EGIU5WY.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-QI4Q5ZZH.js → chunk-BB2ORSTF.js} +19 -18
- package/dist/{chunk-HGFKDSKZ.js → chunk-BJB4YDJP.js} +21 -21
- package/dist/{chunk-BZQCAZZZ.js → chunk-BPM52K3Z.js} +41 -34
- package/dist/{chunk-HFCKU73Y.js → chunk-BSREARWG.js} +29 -28
- package/dist/{chunk-F4V67JXG.js → chunk-CTERZC4K.js} +2 -2
- package/dist/{chunk-FMZEU7MF.js → chunk-CYLSQO4L.js} +6 -6
- package/dist/{chunk-JLJ7SP4X.js → chunk-DCPD5SHV.js} +3 -3
- package/dist/{chunk-U7AO6FRL.js → chunk-ENDB5YSV.js} +363 -129
- 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-7EZ5AKBK.js → chunk-GJH7ZEPH.js} +45 -38
- package/dist/{chunk-E3BJVEMZ.js → chunk-GQEXY7XL.js} +68 -65
- package/dist/{chunk-COCMMQXW.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-4CRLM3IT.js → chunk-IE47TYZT.js} +177 -118
- package/dist/{chunk-FJ57274M.js → chunk-IIEI7VK5.js} +15 -1
- package/dist/{chunk-YDA46XHI.js → chunk-IMO46ROR.js} +38 -32
- package/dist/{chunk-4SXHMFFP.js → chunk-IZTU6WVR.js} +24 -13
- package/dist/{chunk-U74EGVOA.js → chunk-JOD2CK2M.js} +16 -14
- package/dist/{chunk-U5B3TUEW.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-UTTRJ6KN.js → chunk-L26M3X7K.js} +16 -13
- package/dist/{chunk-RU2HHHYA.js → chunk-LD2JSKU3.js} +12 -2
- package/dist/{chunk-32MOGTKT.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-CLQJAGWL.js → chunk-M3LZCDB6.js} +40 -42
- package/dist/{chunk-YT5ICQ4R.js → chunk-MFK7LF66.js} +2 -2
- package/dist/{chunk-JL7BDLC6.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-HOIAQ3P2.js → chunk-P54AX5XN.js} +9 -9
- package/dist/{chunk-JQ575OAK.js → chunk-P64NBPSK.js} +14 -14
- package/dist/{chunk-7G4XMHDB.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-PAW4RMH3.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-BCB24FG7.js → chunk-RUNI4OXP.js} +18 -14
- package/dist/{chunk-ICVIJLBA.js → chunk-SFSJ6XWV.js} +2 -2
- package/dist/{chunk-EGXJWRO6.js → chunk-SNBEAO4Q.js} +8 -8
- package/dist/{chunk-XHROEQ23.js → chunk-SXD6VY7D.js} +16 -14
- package/dist/{chunk-GEURKGZS.js → chunk-TLM3I4XF.js} +16 -16
- package/dist/{chunk-IFC3JXCT.js → chunk-TO6TWNMF.js} +19 -15
- package/dist/{chunk-OUJG73YJ.js → chunk-U2JIFCJN.js} +18 -18
- package/dist/{chunk-CAPR5DET.js → chunk-U4ND3J6C.js} +18 -14
- package/dist/{chunk-YVDBBWEP.js → chunk-UCF6TKWV.js} +51 -48
- package/dist/{chunk-UWYZIGCB.js → chunk-UDYJVX6Y.js} +9 -9
- package/dist/{chunk-OBYZU23V.js → chunk-UQY2VLUK.js} +25 -23
- package/dist/{chunk-CQKD6GOC.js → chunk-VAA7QSZ7.js} +53 -32
- package/dist/{chunk-Q6BAFS7I.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-C576CU77.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-TF76LCZS.js → chunk-XDPJMLOH.js} +30 -27
- package/dist/{chunk-3LJNQ6LR.js → chunk-YKDZ3ZRI.js} +27 -25
- package/dist/{chunk-GLREDNBA.js → chunk-YVLTNNME.js} +12 -2
- package/dist/{chunk-76IBFEYW.js → chunk-ZGOBAMQ2.js} +15 -13
- package/dist/{chunk-AFR6GWXD.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--y67plmW.d.ts → d3-CQT5bwpb.d.ts} +1 -1
- package/dist/{dgmo-router-CY5j16Pl.d.ts → dgmo-router-C9CsswPZ.d.ts} +1 -1
- package/dist/{dgmo-router-A3LIHT6H.js → dgmo-router-XZNCLYTV.js} +30 -29
- package/dist/{dimensions-7NYBSZRJ.js → dimensions-SIZMZ4DC.js} +8 -8
- package/dist/{flowchart-renderer-QYGQ64BM.js → flowchart-renderer-FDJ4QQXE.js} +15 -14
- package/dist/index.d.ts +7 -7
- package/dist/index.js +58 -43
- package/dist/{layout-LAS67TK3.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-4EWGZLJ6.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-ZAJ5353N.js → renderer-FA4BTAOL.js} +7 -7
- package/dist/{renderer-GF6S5ZX6.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-QAMOXOZ2.js → renderer-JC7MK7SD.js} +6 -5
- package/dist/{renderer-CGOPX4HW.js → renderer-JHQC5RGJ.js} +14 -14
- package/dist/renderer-JRITSZY3.js +28 -0
- package/dist/{renderer-E6NHTVN6.js → renderer-KD5X4RIS.js} +14 -13
- package/dist/{renderer-OTHBTGBN.js → renderer-KWNNWCGD.js} +6 -5
- package/dist/{renderer-EP4GRCDX.js → renderer-LGMIAG6N.js} +7 -6
- package/dist/{renderer-IH45QV6Z.js → renderer-LQN3FXAP.js} +33 -32
- package/dist/renderer-LRL4SU43.js +29 -0
- package/dist/{renderer-D7N7PPB7.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-KMOGGMM7.js → renderer-TLOSBJKW.js} +13 -13
- package/dist/{renderer-LE3ZKHNS.js → renderer-UDWJRRIC.js} +11 -11
- package/dist/renderer-VHK6UAW2.js +20 -0
- package/dist/{renderer-FUJNSC5X.js → renderer-W5UG2HWT.js} +5 -5
- package/dist/renderer-WOOKJOBQ.js +25 -0
- package/dist/renderer-WYNLGZRF.js +25 -0
- package/dist/{renderer-BUEFD2IF.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-DrHT2tEc.d.ts → tag-groups-BoJg3lFV.d.ts} +23 -1
- package/dist/{themes-GWhsabnx.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/gallery/fixtures/sketch.dgmo +1 -1
- package/package.json +7 -6
- package/dist/charts-d3-SQEVMIAM.js +0 -29
- package/dist/chunk-LP7EC4MI.js +0 -16
- package/dist/chunk-UTCPNJND.js +0 -7
- package/dist/chunk-VV6HZQ5K.js +0 -40
- package/dist/renderer-3FB56573.js +0 -22
- package/dist/renderer-4PNVGHVA.js +0 -16
- package/dist/renderer-5W3HWIUL.js +0 -24
- package/dist/renderer-CO5O5VR5.js +0 -20
- package/dist/renderer-DKW273R7.js +0 -26
- package/dist/renderer-F24V3RD3.js +0 -26
- package/dist/renderer-F6WSR7UM.js +0 -39
- package/dist/renderer-FGGDZZFQ.js +0 -31
- package/dist/renderer-GJDVPXI3.js +0 -30
- package/dist/renderer-JMJ7Q5OC.js +0 -28
- package/dist/renderer-LBNVKVO3.js +0 -39
- package/dist/renderer-MUW4G2N6.js +0 -38
- package/dist/renderer-PIEPRK6M.js +0 -23
- package/dist/renderer-PKRKLOYR.js +0 -25
- package/dist/renderer-PR3KLNST.js +0 -28
- package/dist/renderer-RUHC6D3B.js +0 -25
- package/dist/renderer-UUP6OX6F.js +0 -27
- package/dist/renderer-UYZSP7MF.js +0 -25
- package/dist/renderer-XBL6CLN2.js +0 -30
- package/dist/renderer-radial-MZP3SVTZ.js +0 -21
- package/dist/state-renderer-UIE3AQM6.js +0 -40
|
@@ -5,6 +5,14 @@ var CARD_RADIUS = 6;
|
|
|
5
5
|
var CONTAINER_RADIUS = 8;
|
|
6
6
|
var COLLAPSE_BAR_INSET = 0;
|
|
7
7
|
var EDGE_LABEL_KNOCKOUT_OPACITY = 0.9;
|
|
8
|
+
var ARROWHEAD_WIDTH = 10;
|
|
9
|
+
var ARROWHEAD_HEIGHT = 7;
|
|
10
|
+
var EDGE_DASH = "6 3";
|
|
11
|
+
var GRID_DASH = "4 4";
|
|
12
|
+
var HAIRLINE_DASH = "2 3";
|
|
13
|
+
function scaleDash(pattern, scale) {
|
|
14
|
+
return pattern.split(/[\s,]+/).filter(Boolean).map((n) => scale(Number(n))).join(" ");
|
|
15
|
+
}
|
|
8
16
|
var HEADER_HEIGHT = 28;
|
|
9
17
|
var LABEL_FONT_SIZE = 13;
|
|
10
18
|
var META_FONT_SIZE = 11;
|
|
@@ -23,6 +31,12 @@ export {
|
|
|
23
31
|
CONTAINER_RADIUS,
|
|
24
32
|
COLLAPSE_BAR_INSET,
|
|
25
33
|
EDGE_LABEL_KNOCKOUT_OPACITY,
|
|
34
|
+
ARROWHEAD_WIDTH,
|
|
35
|
+
ARROWHEAD_HEIGHT,
|
|
36
|
+
EDGE_DASH,
|
|
37
|
+
GRID_DASH,
|
|
38
|
+
HAIRLINE_DASH,
|
|
39
|
+
scaleDash,
|
|
26
40
|
HEADER_HEIGHT,
|
|
27
41
|
LABEL_FONT_SIZE,
|
|
28
42
|
META_FONT_SIZE,
|
|
@@ -34,4 +48,4 @@ export {
|
|
|
34
48
|
CONTAINER_META_FONT_SIZE,
|
|
35
49
|
CONTAINER_META_LINE_HEIGHT
|
|
36
50
|
};
|
|
37
|
-
//# sourceMappingURL=chunk-
|
|
51
|
+
//# sourceMappingURL=chunk-IIEI7VK5.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buildSwatches
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-RIXWLFB4.js";
|
|
4
4
|
import {
|
|
5
5
|
FONT_FAMILY
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-ICLB27PZ.js";
|
|
7
7
|
import {
|
|
8
8
|
fixedParts,
|
|
9
9
|
fixedTimeCells,
|
|
@@ -14,19 +14,22 @@ import {
|
|
|
14
14
|
workStatus,
|
|
15
15
|
zoneParts
|
|
16
16
|
} from "./chunk-A2RUBBVT.js";
|
|
17
|
+
import {
|
|
18
|
+
now
|
|
19
|
+
} from "./chunk-3DPOIW3W.js";
|
|
17
20
|
import {
|
|
18
21
|
contrastText,
|
|
19
22
|
mix,
|
|
20
23
|
themeBaseBg
|
|
21
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-YVLTNNME.js";
|
|
22
25
|
import {
|
|
23
26
|
resolveColor
|
|
24
27
|
} from "./chunk-XOGQY4EC.js";
|
|
25
28
|
|
|
26
29
|
// src/clock/renderer.ts
|
|
27
30
|
import * as d3Selection from "d3-selection";
|
|
28
|
-
function partsFor(entry,
|
|
29
|
-
return entry.kind === "fixed" ? fixedParts(entry.fixedOffsetMin ?? 0,
|
|
31
|
+
function partsFor(entry, now2) {
|
|
32
|
+
return entry.kind === "fixed" ? fixedParts(entry.fixedOffsetMin ?? 0, now2) : zoneParts(entry.zone, now2);
|
|
30
33
|
}
|
|
31
34
|
var PLACE_ACCENTS = [
|
|
32
35
|
"blue",
|
|
@@ -143,7 +146,7 @@ function renderClock(container, parsed, palette, isDark, exportDims) {
|
|
|
143
146
|
baseWidth,
|
|
144
147
|
COL_MIN_W * Math.max(1, parsed.entries.length) + 2 * cardM
|
|
145
148
|
) : baseWidth);
|
|
146
|
-
const
|
|
149
|
+
const now2 = now();
|
|
147
150
|
const baseBg = themeBaseBg(palette, isDark);
|
|
148
151
|
const muted = mix(palette.text, baseBg, 55);
|
|
149
152
|
const faint = mix(palette.text, baseBg, 72);
|
|
@@ -167,9 +170,9 @@ function renderClock(container, parsed, palette, isDark, exportDims) {
|
|
|
167
170
|
const titleFont = 20;
|
|
168
171
|
const meta = parsed.work ? `${hourLabel(parsed.work.startMin, parsed.hours12)}\u2013${hourLabel(parsed.work.endMin, parsed.hours12)} \xB7 ${daysLabel(parsed.work.days)}` : null;
|
|
169
172
|
const metaW = meta ? estWidth(meta, 12) + 16 : 0;
|
|
170
|
-
svg.append("text").attr("x", padX).attr("y", y + titleFont).attr("fill", palette.text).attr("font-family", FONT_FAMILY).attr("font-size", titleFont).attr("font-weight",
|
|
173
|
+
svg.append("text").attr("x", padX).attr("y", y + titleFont).attr("fill", palette.text).attr("font-family", FONT_FAMILY).attr("font-size", titleFont).attr("font-weight", "bold").attr("data-line-number", parsed.titleLineNumber).text(ellipsize(parsed.title, titleFont, rightX - padX - metaW));
|
|
171
174
|
if (meta) {
|
|
172
|
-
svg.append("text").attr("x", rightX).attr("y", y + titleFont - 3).attr("text-anchor", "end").attr("fill", faint).attr("font-family", FONT_FAMILY).attr("font-size", 12).attr("font-weight",
|
|
175
|
+
svg.append("text").attr("x", rightX).attr("y", y + titleFont - 3).attr("text-anchor", "end").attr("fill", faint).attr("font-family", FONT_FAMILY).attr("font-size", 12).attr("font-weight", "normal").text(meta);
|
|
173
176
|
}
|
|
174
177
|
y += titleFont + 12;
|
|
175
178
|
svg.append("line").attr("x1", cardM).attr("x2", width - cardM).attr("y1", y).attr("y2", y).attr("stroke", mix(palette.text, palette.bg, 22)).attr("stroke-width", 1);
|
|
@@ -191,14 +194,14 @@ function renderClock(container, parsed, palette, isDark, exportDims) {
|
|
|
191
194
|
};
|
|
192
195
|
let bannerH;
|
|
193
196
|
if (parsed.columns) {
|
|
194
|
-
bannerH = drawColumns(body, parsed,
|
|
197
|
+
bannerH = drawColumns(body, parsed, now2, rowsTop, { width, cardM }, col);
|
|
195
198
|
} else {
|
|
196
199
|
let leftColW = rowH - 20;
|
|
197
200
|
let mainW = 0;
|
|
198
201
|
if (parsed.face === "digital") {
|
|
199
202
|
let secW = 0;
|
|
200
203
|
for (const e of parsed.entries) {
|
|
201
|
-
const p = partsFor(e,
|
|
204
|
+
const p = partsFor(e, now2);
|
|
202
205
|
const t = formatTime(p.h, p.m, p.s, parsed.hours12);
|
|
203
206
|
mainW = Math.max(mainW, estWidth(t.main, 48));
|
|
204
207
|
secW = Math.max(secW, estWidth(`:${t.sec}`, 16), estWidth(t.ap, 16));
|
|
@@ -211,7 +214,7 @@ function renderClock(container, parsed, palette, isDark, exportDims) {
|
|
|
211
214
|
entry,
|
|
212
215
|
i,
|
|
213
216
|
parsed,
|
|
214
|
-
|
|
217
|
+
now2,
|
|
215
218
|
rowsTop + i * rowH,
|
|
216
219
|
rowH,
|
|
217
220
|
{ padX, rightX, width, leftColW, mainW },
|
|
@@ -230,13 +233,13 @@ function renderClock(container, parsed, palette, isDark, exportDims) {
|
|
|
230
233
|
function zoneFillMode(entry, parsed, col) {
|
|
231
234
|
return entry.color || parsed.colorBy === "place" ? col.fillMode : void 0;
|
|
232
235
|
}
|
|
233
|
-
function drawRow(svg, entry, index, parsed,
|
|
236
|
+
function drawRow(svg, entry, index, parsed, now2, rowTop, rowH, geom, col) {
|
|
234
237
|
const { padX } = geom;
|
|
235
238
|
const { text, muted, line2, tick, sw, cardFill } = col;
|
|
236
239
|
const center = rowTop + rowH / 2;
|
|
237
|
-
const parts = partsFor(entry,
|
|
240
|
+
const parts = partsFor(entry, now2);
|
|
238
241
|
const hasCoords = entry.lat !== null && entry.lon !== null;
|
|
239
|
-
const sun = parsed.sun && hasCoords ? sunLine(
|
|
242
|
+
const sun = parsed.sun && hasCoords ? sunLine(now2, entry.lat, entry.lon) : null;
|
|
240
243
|
const up = sun ? sun.up : parts.h >= 6 && parts.h < 18;
|
|
241
244
|
const stColor = up ? sw.day : sw.night;
|
|
242
245
|
const stTint = up ? sw.dayTint : sw.nightTint;
|
|
@@ -309,14 +312,17 @@ function drawRow(svg, entry, index, parsed, now, rowTop, rowH, geom, col) {
|
|
|
309
312
|
const capTop = baseY - mainFont * 0.7;
|
|
310
313
|
const sf = 20;
|
|
311
314
|
const gap = 5;
|
|
312
|
-
const { cells, width: mainW } = fixedTimeCells(
|
|
315
|
+
const { cells, width: mainW } = fixedTimeCells(
|
|
316
|
+
ts.main,
|
|
317
|
+
contentLeft,
|
|
318
|
+
mainFont
|
|
319
|
+
);
|
|
313
320
|
const stackX = contentLeft + mainW + gap;
|
|
314
|
-
const mainText = g.append("text").attr("data-dgmo-clock-digital", "").attr("data-dgmo-clock-digital-part", "main").attr("y", baseY).attr("text-anchor", "middle").attr("fill", timeColor).attr("font-family", FONT_FAMILY).attr("font-size", mainFont).attr("font-weight",
|
|
315
|
-
for (const c of cells)
|
|
316
|
-
|
|
317
|
-
g.append("text").attr("data-dgmo-clock-digital-part", "sec").attr("x", stackX).attr("y", capTop + sf * 0.72).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight", 600).style("font-variant-numeric", "tabular-nums").text(`:${ts.sec}`);
|
|
321
|
+
const mainText = g.append("text").attr("data-dgmo-clock-digital", "").attr("data-dgmo-clock-digital-part", "main").attr("y", baseY).attr("text-anchor", "middle").attr("fill", timeColor).attr("font-family", FONT_FAMILY).attr("font-size", mainFont).attr("font-weight", "bold").attr("data-dgmo-clock-x0", contentLeft).attr("data-dgmo-clock-fs", mainFont).attr("data-dgmo-clock-gap", gap);
|
|
322
|
+
for (const c of cells) mainText.append("tspan").attr("x", c.x).text(c.ch);
|
|
323
|
+
g.append("text").attr("data-dgmo-clock-digital-part", "sec").attr("x", stackX).attr("y", capTop + sf * 0.72).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight", "bold").style("font-variant-numeric", "tabular-nums").text(`:${ts.sec}`);
|
|
318
324
|
if (ts.ap)
|
|
319
|
-
g.append("text").attr("data-dgmo-clock-digital-part", "ap").attr("x", stackX).attr("y", baseY).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight",
|
|
325
|
+
g.append("text").attr("data-dgmo-clock-digital-part", "ap").attr("x", stackX).attr("y", baseY).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight", "bold").text(ts.ap);
|
|
320
326
|
}
|
|
321
327
|
const midLeft = contentLeft + geom.leftColW + 26;
|
|
322
328
|
const midMaxW = Math.max(40, rightColLeft - 12 - midLeft);
|
|
@@ -341,7 +347,7 @@ function drawRow(svg, entry, index, parsed, now, rowTop, rowH, geom, col) {
|
|
|
341
347
|
const firstBase = aliasLines.length === 1 ? center + 16 : center - aliasLines.length * aliasLh / 2 + aliasFont * 0.72;
|
|
342
348
|
const aliasFill = auto?.solid ?? mix(muted, text, Math.round((aliasFont - 17) / 31 * 55));
|
|
343
349
|
aliasLines.forEach((ln, i) => {
|
|
344
|
-
g.append("text").attr("x", midLeft).attr("y", firstBase + i * aliasLh).attr("fill", aliasFill).attr("font-family", FONT_FAMILY).attr("font-size", aliasFont).attr("font-weight",
|
|
350
|
+
g.append("text").attr("x", midLeft).attr("y", firstBase + i * aliasLh).attr("fill", aliasFill).attr("font-family", FONT_FAMILY).attr("font-size", aliasFont).attr("font-weight", "bold").text(ln);
|
|
345
351
|
});
|
|
346
352
|
const iconX = rightColLeft + 6;
|
|
347
353
|
const textX = rightColLeft + 20;
|
|
@@ -357,11 +363,11 @@ function drawRow(svg, entry, index, parsed, now, rowTop, rowH, geom, col) {
|
|
|
357
363
|
const yy = top + i * lh;
|
|
358
364
|
if (ln.kind === "place") {
|
|
359
365
|
g.append("path").attr("transform", `translate(${iconX},${yy - 5}) scale(1.25)`).attr("d", "M0,4 L-2.3,-0.6 A2.6,2.6 0 1 1 2.3,-0.6 Z").attr("fill", muted);
|
|
360
|
-
g.append("text").attr("x", textX).attr("y", yy).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", 14).attr("font-weight",
|
|
366
|
+
g.append("text").attr("x", textX).attr("y", yy).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", 14).attr("font-weight", "normal").text(ellipsize(entry.place, 14, textMax));
|
|
361
367
|
} else if (ln.kind === "avail" && status) {
|
|
362
368
|
const stCol = status.cls === "ok" ? sw.ok : status.cls === "soon" ? sw.soon : sw.off;
|
|
363
369
|
drawStatusClock(g, iconX, yy - 5, 5, stCol);
|
|
364
|
-
g.append("text").attr("data-dgmo-clock-status", "").attr("x", textX).attr("y", yy).attr("fill", stCol).attr("font-family", FONT_FAMILY).attr("font-size", 14).attr("font-weight",
|
|
370
|
+
g.append("text").attr("data-dgmo-clock-status", "").attr("x", textX).attr("y", yy).attr("fill", stCol).attr("font-family", FONT_FAMILY).attr("font-size", 14).attr("font-weight", "bold").text(ellipsize(status.text, 14, textMax));
|
|
365
371
|
} else if (ln.kind === "sun" && sun) {
|
|
366
372
|
drawSunMoon(g, iconX, yy - 5, up, sw, 1.25);
|
|
367
373
|
g.append("text").attr("data-dgmo-clock-sun-line", "").attr("x", textX).attr("y", yy).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", 13.5).text(ellipsize(sun.text, 13.5, textMax));
|
|
@@ -394,7 +400,7 @@ function bakeAnchors(g, entry, parsed, sun, sw) {
|
|
|
394
400
|
);
|
|
395
401
|
}
|
|
396
402
|
}
|
|
397
|
-
function drawColumns(body, parsed,
|
|
403
|
+
function drawColumns(body, parsed, now2, top, geom, col) {
|
|
398
404
|
const { width, cardM } = geom;
|
|
399
405
|
const { text, muted, line2, tick, cardFill, sw } = col;
|
|
400
406
|
const n = Math.max(1, parsed.entries.length);
|
|
@@ -406,9 +412,9 @@ function drawColumns(body, parsed, now, top, geom, col) {
|
|
|
406
412
|
parsed.entries.forEach((entry, i) => {
|
|
407
413
|
const x0 = cardM + i * colW;
|
|
408
414
|
const cx = x0 + colW / 2;
|
|
409
|
-
const parts = partsFor(entry,
|
|
415
|
+
const parts = partsFor(entry, now2);
|
|
410
416
|
const hasCoords = entry.lat !== null && entry.lon !== null;
|
|
411
|
-
const sun = parsed.sun && hasCoords ? sunLine(
|
|
417
|
+
const sun = parsed.sun && hasCoords ? sunLine(now2, entry.lat, entry.lon) : null;
|
|
412
418
|
const up = sun ? sun.up : parts.h >= 6 && parts.h < 18;
|
|
413
419
|
const ts = formatTime(parts.h, parts.m, parts.s, parsed.hours12);
|
|
414
420
|
const work = parsed.work ? {
|
|
@@ -476,13 +482,13 @@ function drawColumns(body, parsed, now, top, geom, col) {
|
|
|
476
482
|
const stackW = Math.max(estWidth(`:${ts.sec}`, sf), estWidth(ts.ap, sf));
|
|
477
483
|
const gLeft = cx - (mainW + gap + stackW) / 2;
|
|
478
484
|
const baseY = cy + tf * 0.34;
|
|
479
|
-
const mainText = g.append("text").attr("data-dgmo-clock-digital", "").attr("data-dgmo-clock-digital-part", "main").attr("y", baseY).attr("text-anchor", "middle").attr("fill", timeColor).attr("font-family", FONT_FAMILY).attr("font-size", tf).attr("font-weight",
|
|
485
|
+
const mainText = g.append("text").attr("data-dgmo-clock-digital", "").attr("data-dgmo-clock-digital-part", "main").attr("y", baseY).attr("text-anchor", "middle").attr("fill", timeColor).attr("font-family", FONT_FAMILY).attr("font-size", tf).attr("font-weight", "bold").attr("data-dgmo-clock-x0", gLeft).attr("data-dgmo-clock-fs", tf).attr("data-dgmo-clock-gap", gap);
|
|
480
486
|
for (const c of fixedTimeCells(ts.main, gLeft, tf).cells)
|
|
481
487
|
mainText.append("tspan").attr("x", c.x).text(c.ch);
|
|
482
488
|
const stackX = gLeft + mainW + gap;
|
|
483
|
-
g.append("text").attr("data-dgmo-clock-digital-part", "sec").attr("x", stackX).attr("y", baseY - tf * cap + sf * cap).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight",
|
|
489
|
+
g.append("text").attr("data-dgmo-clock-digital-part", "sec").attr("x", stackX).attr("y", baseY - tf * cap + sf * cap).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight", "normal").text(`:${ts.sec}`);
|
|
484
490
|
if (ts.ap)
|
|
485
|
-
g.append("text").attr("data-dgmo-clock-digital-part", "ap").attr("x", stackX).attr("y", baseY).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight",
|
|
491
|
+
g.append("text").attr("data-dgmo-clock-digital-part", "ap").attr("x", stackX).attr("y", baseY).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", sf).attr("font-weight", "normal").text(ts.ap);
|
|
486
492
|
cy += tf + 8;
|
|
487
493
|
}
|
|
488
494
|
const amax = colW - 14;
|
|
@@ -501,7 +507,7 @@ function drawColumns(body, parsed, now, top, geom, col) {
|
|
|
501
507
|
const alh = af + 3;
|
|
502
508
|
const aFill = auto?.solid ?? mix(muted, text, Math.round((af - 14) / 12 * 55));
|
|
503
509
|
alines.forEach(
|
|
504
|
-
(ln, j) => g.append("text").attr("x", cx).attr("y", cy + af * 0.72 + j * alh).attr("text-anchor", "middle").attr("fill", aFill).attr("font-family", FONT_FAMILY).attr("font-size", af).attr("font-weight",
|
|
510
|
+
(ln, j) => g.append("text").attr("x", cx).attr("y", cy + af * 0.72 + j * alh).attr("text-anchor", "middle").attr("fill", aFill).attr("font-family", FONT_FAMILY).attr("font-size", af).attr("font-weight", "bold").text(ln)
|
|
505
511
|
);
|
|
506
512
|
cy += alines.length * alh + 12;
|
|
507
513
|
const kinds = [];
|
|
@@ -523,7 +529,7 @@ function drawColumns(body, parsed, now, top, geom, col) {
|
|
|
523
529
|
} else if (kind === "avail" && status) {
|
|
524
530
|
const stCol = status.cls === "ok" ? sw.ok : status.cls === "soon" ? sw.soon : sw.off;
|
|
525
531
|
drawStatusClock(g, iconX, yy - 4, 4, stCol);
|
|
526
|
-
g.append("text").attr("data-dgmo-clock-status", "").attr("x", textX).attr("y", yy).attr("fill", stCol).attr("font-family", FONT_FAMILY).attr("font-size", 12).attr("font-weight",
|
|
532
|
+
g.append("text").attr("data-dgmo-clock-status", "").attr("x", textX).attr("y", yy).attr("fill", stCol).attr("font-family", FONT_FAMILY).attr("font-size", 12).attr("font-weight", "bold").text(ellipsize(status.text, 12, tmax));
|
|
527
533
|
} else if (kind === "sun" && sun) {
|
|
528
534
|
drawSunMoon(g, iconX, yy - 4, up, sw, 1);
|
|
529
535
|
g.append("text").attr("data-dgmo-clock-sun-line", "").attr("x", textX).attr("y", yy).attr("fill", muted).attr("font-family", FONT_FAMILY).attr("font-size", 11.5).text(ellipsize(sun.text, 11.5, tmax));
|
|
@@ -558,4 +564,4 @@ export {
|
|
|
558
564
|
renderClock,
|
|
559
565
|
renderClockForExport
|
|
560
566
|
};
|
|
561
|
-
//# sourceMappingURL=chunk-
|
|
567
|
+
//# sourceMappingURL=chunk-IMO46ROR.js.map
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
LEGEND_TOGGLE_DOT_R,
|
|
14
14
|
measureLegendText,
|
|
15
15
|
truncateLegendText
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-MFK7LF66.js";
|
|
17
17
|
|
|
18
18
|
// src/utils/number-format.ts
|
|
19
19
|
function compactNumber(n) {
|
|
@@ -108,9 +108,10 @@ function entriesWidth(entries) {
|
|
|
108
108
|
}
|
|
109
109
|
return w;
|
|
110
110
|
}
|
|
111
|
-
function
|
|
111
|
+
function legendEntryWidth(value) {
|
|
112
112
|
return LEGEND_DOT_R * 2 + LEGEND_ENTRY_DOT_GAP + measureLegendText(value, LEGEND_ENTRY_FONT_SIZE) + LEGEND_ENTRY_TRAIL;
|
|
113
113
|
}
|
|
114
|
+
var entryWidth = legendEntryWidth;
|
|
114
115
|
function controlWidth(control) {
|
|
115
116
|
let w = CONTROL_PILL_PAD;
|
|
116
117
|
if (control.label) {
|
|
@@ -125,12 +126,12 @@ function controlWidth(control) {
|
|
|
125
126
|
}
|
|
126
127
|
return w;
|
|
127
128
|
}
|
|
128
|
-
function capsuleWidth(name, entries, containerWidth, addonWidth = 0) {
|
|
129
|
+
function capsuleWidth(name, entries, containerWidth, addonWidth = 0, trailWidth = 0) {
|
|
129
130
|
const pw = pillWidth(name);
|
|
130
131
|
const maxCapsuleW = containerWidth;
|
|
131
132
|
const baseW = LEGEND_CAPSULE_PAD * 2 + pw + 4 + addonWidth;
|
|
132
133
|
const ew = entriesWidth(entries);
|
|
133
|
-
const singleRowW = baseW + ew;
|
|
134
|
+
const singleRowW = baseW + ew + trailWidth;
|
|
134
135
|
if (singleRowW <= maxCapsuleW + 0.5) {
|
|
135
136
|
return {
|
|
136
137
|
width: singleRowW,
|
|
@@ -139,7 +140,7 @@ function capsuleWidth(name, entries, containerWidth, addonWidth = 0) {
|
|
|
139
140
|
visibleEntries: entries.length
|
|
140
141
|
};
|
|
141
142
|
}
|
|
142
|
-
const rowWidth = maxCapsuleW - LEGEND_CAPSULE_PAD;
|
|
143
|
+
const rowWidth = maxCapsuleW - LEGEND_CAPSULE_PAD - trailWidth;
|
|
143
144
|
let row = 1;
|
|
144
145
|
let rowX = LEGEND_CAPSULE_PAD + pw + 4 + addonWidth;
|
|
145
146
|
let visible = 0;
|
|
@@ -321,7 +322,8 @@ function computeLegendLayout(config, state, containerWidth) {
|
|
|
321
322
|
activeCapsule = buildCapsuleLayout(
|
|
322
323
|
g,
|
|
323
324
|
groupAvailW,
|
|
324
|
-
config.capsulePillAddonWidth ?? 0
|
|
325
|
+
config.capsulePillAddonWidth ?? 0,
|
|
326
|
+
config.capsuleTrailingAddonWidth ?? 0
|
|
325
327
|
);
|
|
326
328
|
} else if (!activeGroupName || config.showInactivePills) {
|
|
327
329
|
const pw = pillWidth(g.name);
|
|
@@ -360,14 +362,15 @@ function computeLegendLayout(config, state, containerWidth) {
|
|
|
360
362
|
}
|
|
361
363
|
};
|
|
362
364
|
}
|
|
363
|
-
function buildCapsuleLayout(group, containerWidth, addonWidth = 0) {
|
|
365
|
+
function buildCapsuleLayout(group, containerWidth, addonWidth = 0, trailWidth = 0) {
|
|
364
366
|
if (group.gradient) return buildGradientCapsuleLayout(group, group.gradient);
|
|
365
367
|
const pw = pillWidth(group.name);
|
|
366
368
|
const info = capsuleWidth(
|
|
367
369
|
group.name,
|
|
368
370
|
group.entries,
|
|
369
371
|
containerWidth,
|
|
370
|
-
addonWidth
|
|
372
|
+
addonWidth,
|
|
373
|
+
trailWidth
|
|
371
374
|
);
|
|
372
375
|
const pill = {
|
|
373
376
|
groupName: group.name,
|
|
@@ -381,7 +384,7 @@ function buildCapsuleLayout(group, containerWidth, addonWidth = 0) {
|
|
|
381
384
|
const ex = LEGEND_CAPSULE_PAD + pw + 4 + addonWidth;
|
|
382
385
|
let ey = 0;
|
|
383
386
|
let rowX = ex;
|
|
384
|
-
const maxRowW = containerWidth - LEGEND_CAPSULE_PAD;
|
|
387
|
+
const maxRowW = containerWidth - LEGEND_CAPSULE_PAD - trailWidth;
|
|
385
388
|
let currentRow = 0;
|
|
386
389
|
for (let i = 0; i < info.visibleEntries; i++) {
|
|
387
390
|
const entry = group.entries[i];
|
|
@@ -433,7 +436,12 @@ function buildCapsuleLayout(group, containerWidth, addonWidth = 0) {
|
|
|
433
436
|
pill,
|
|
434
437
|
entries,
|
|
435
438
|
...info.moreCount > 0 && { moreCount: info.moreCount },
|
|
436
|
-
...addonWidth > 0 && { addonX: LEGEND_CAPSULE_PAD + pw + 4 }
|
|
439
|
+
...addonWidth > 0 && { addonX: LEGEND_CAPSULE_PAD + pw + 4 },
|
|
440
|
+
// After the last entry, on whatever row that entry ended on — `rowX` and
|
|
441
|
+
// `ey` are exactly the cursor the loop left behind.
|
|
442
|
+
...trailWidth > 0 && {
|
|
443
|
+
trailingAddon: { x: rowX, y: ey, width: trailWidth }
|
|
444
|
+
}
|
|
437
445
|
};
|
|
438
446
|
}
|
|
439
447
|
function layoutRows(activeCapsule, pills, controls, groupAvailW, containerWidth, totalControlsW, alignLeft = false, controlsGroup) {
|
|
@@ -528,10 +536,11 @@ function getMaxLegendReservedHeight(config, containerWidth) {
|
|
|
528
536
|
const groups = config.groups;
|
|
529
537
|
if (groups.length === 0) return LEGEND_HEIGHT;
|
|
530
538
|
const addon = config.capsulePillAddonWidth ?? 0;
|
|
539
|
+
const trail = config.capsuleTrailingAddonWidth ?? 0;
|
|
531
540
|
let max = LEGEND_HEIGHT;
|
|
532
541
|
for (const g of groups) {
|
|
533
542
|
if (g.entries.length === 0) continue;
|
|
534
|
-
const info = capsuleWidth(g.name, g.entries, containerWidth, addon);
|
|
543
|
+
const info = capsuleWidth(g.name, g.entries, containerWidth, addon, trail);
|
|
535
544
|
const h = info.entryRows * LEGEND_HEIGHT;
|
|
536
545
|
if (h > max) max = h;
|
|
537
546
|
}
|
|
@@ -551,7 +560,8 @@ function getLegendExtent(config, state, containerWidth) {
|
|
|
551
560
|
const c = layout.activeCapsule;
|
|
552
561
|
track(c.x, c.y, c.width, c.height);
|
|
553
562
|
}
|
|
554
|
-
for (const pill of layout.pills)
|
|
563
|
+
for (const pill of layout.pills)
|
|
564
|
+
track(pill.x, pill.y, pill.width, pill.height);
|
|
555
565
|
return {
|
|
556
566
|
width: right - (left === Infinity ? 0 : left),
|
|
557
567
|
height: bottom || LEGEND_HEIGHT
|
|
@@ -560,10 +570,11 @@ function getLegendExtent(config, state, containerWidth) {
|
|
|
560
570
|
|
|
561
571
|
export {
|
|
562
572
|
compactNumber,
|
|
573
|
+
legendEntryWidth,
|
|
563
574
|
controlsGroupCapsuleWidth,
|
|
564
575
|
computeLegendLayout,
|
|
565
576
|
getLegendReservedHeight,
|
|
566
577
|
getMaxLegendReservedHeight,
|
|
567
578
|
getLegendExtent
|
|
568
579
|
};
|
|
569
|
-
//# sourceMappingURL=chunk-
|
|
580
|
+
//# sourceMappingURL=chunk-IZTU6WVR.js.map
|
|
@@ -4,27 +4,28 @@ import {
|
|
|
4
4
|
buildLegend,
|
|
5
5
|
compactNumber,
|
|
6
6
|
formatPct,
|
|
7
|
+
mutedFill,
|
|
7
8
|
resolveCellColor,
|
|
8
9
|
resolveColorMode
|
|
9
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-X326N4GN.js";
|
|
10
11
|
import {
|
|
11
12
|
renderIntegratedLegend
|
|
12
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-67I3HFSF.js";
|
|
13
14
|
import {
|
|
14
15
|
getMaxLegendReservedHeight
|
|
15
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-IZTU6WVR.js";
|
|
16
17
|
import {
|
|
17
18
|
FONT_FAMILY
|
|
18
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-ICLB27PZ.js";
|
|
19
20
|
import {
|
|
20
21
|
LEGEND_GROUP_GAP
|
|
21
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-MFK7LF66.js";
|
|
22
23
|
import {
|
|
23
24
|
measureText
|
|
24
25
|
} from "./chunk-MTGGOCND.js";
|
|
25
26
|
import {
|
|
26
27
|
tagAttrKey
|
|
27
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-R4YGH7DJ.js";
|
|
28
29
|
import {
|
|
29
30
|
contrastRatio,
|
|
30
31
|
contrastText,
|
|
@@ -32,7 +33,7 @@ import {
|
|
|
32
33
|
hexToHSL,
|
|
33
34
|
hslToHex,
|
|
34
35
|
relativeLuminance
|
|
35
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-YVLTNNME.js";
|
|
36
37
|
|
|
37
38
|
// src/treemap/renderer-radial.ts
|
|
38
39
|
import * as d3Selection from "d3-selection";
|
|
@@ -202,7 +203,8 @@ function renderTreemapRadial(container, parsed, palette, isDark, exportDims, opt
|
|
|
202
203
|
rootIndexByLabel,
|
|
203
204
|
seriesColors,
|
|
204
205
|
colorOffset: options.colorOffset ?? 0,
|
|
205
|
-
bg: palette.bg
|
|
206
|
+
bg: palette.bg,
|
|
207
|
+
muted: mutedFill(palette)
|
|
206
208
|
};
|
|
207
209
|
const arcGen = d3arc().startAngle((c) => c.startAngle).endAngle((c) => c.endAngle).innerRadius((c) => c.innerR).outerRadius((c) => c.outerR).padAngle(4e-3).padRadius(radius);
|
|
208
210
|
let labelSeq = 0;
|
|
@@ -281,12 +283,12 @@ function drawCenterDisc(plot, parsed, discRadius, total, isEmpty, palette) {
|
|
|
281
283
|
const titleFs = clampFs(15, discRadius);
|
|
282
284
|
const totalFs = fitFs(totalStr, clampFs(22, discRadius), maxW);
|
|
283
285
|
if (title) {
|
|
284
|
-
const t = disc.append("text").attr("class", "dgmo-treemap-disc-title").attr("text-anchor", "middle").attr("y", -4).attr("fill", ink).attr("font-size", titleFs).attr("font-weight",
|
|
286
|
+
const t = disc.append("text").attr("class", "dgmo-treemap-disc-title").attr("text-anchor", "middle").attr("y", -4).attr("fill", ink).attr("font-size", titleFs).attr("font-weight", "bold").text(clip(title, maxW, titleFs));
|
|
285
287
|
if (parsed.titleLineNumber !== null) {
|
|
286
288
|
t.attr("data-line-number", parsed.titleLineNumber);
|
|
287
289
|
}
|
|
288
290
|
}
|
|
289
|
-
disc.append("text").attr("class", "dgmo-treemap-disc-total").attr("text-anchor", "middle").attr("y", title ? titleFs : 8).attr("fill", ink).attr("font-size", totalFs).attr("font-weight",
|
|
291
|
+
disc.append("text").attr("class", "dgmo-treemap-disc-total").attr("text-anchor", "middle").attr("y", title ? titleFs : 8).attr("fill", ink).attr("font-size", totalFs).attr("font-weight", "bold").text(totalStr);
|
|
290
292
|
}
|
|
291
293
|
function groupedNumber(v) {
|
|
292
294
|
const rounded = Math.round(v * 100) / 100;
|
|
@@ -327,7 +329,7 @@ function drawArcLabel(g, defs, pathId, cell, opts, palette, fill) {
|
|
|
327
329
|
cell,
|
|
328
330
|
rName,
|
|
329
331
|
nameFs,
|
|
330
|
-
|
|
332
|
+
"bold",
|
|
331
333
|
nameText,
|
|
332
334
|
ink
|
|
333
335
|
);
|
|
@@ -342,7 +344,7 @@ function drawArcLabel(g, defs, pathId, cell, opts, palette, fill) {
|
|
|
342
344
|
cell,
|
|
343
345
|
rVal,
|
|
344
346
|
valFs,
|
|
345
|
-
|
|
347
|
+
"normal",
|
|
346
348
|
valText,
|
|
347
349
|
ink
|
|
348
350
|
);
|
|
@@ -355,7 +357,7 @@ function drawArcLabel(g, defs, pathId, cell, opts, palette, fill) {
|
|
|
355
357
|
const fs = fitFs(full, maxFs, availLen);
|
|
356
358
|
const text = clip(full, availLen, fs);
|
|
357
359
|
if (!text) return;
|
|
358
|
-
drawCurvedLine(g, defs, pathId, cell, rMid, fs,
|
|
360
|
+
drawCurvedLine(g, defs, pathId, cell, rMid, fs, "bold", text, ink);
|
|
359
361
|
}
|
|
360
362
|
function isBottomHalf(cell) {
|
|
361
363
|
const mid = (cell.startAngle + cell.endAngle) / 2;
|
|
@@ -423,4 +425,4 @@ export {
|
|
|
423
425
|
renderTreemapRadialForExport,
|
|
424
426
|
renderTreemapRadial
|
|
425
427
|
};
|
|
426
|
-
//# sourceMappingURL=chunk-
|
|
428
|
+
//# sourceMappingURL=chunk-JOD2CK2M.js.map
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
compactNumber
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-X326N4GN.js";
|
|
4
4
|
import {
|
|
5
5
|
parseInlineMarkdown
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-FWNJDD4U.js";
|
|
7
7
|
import {
|
|
8
8
|
TITLE_FONT_WEIGHT
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-VSPNH7LC.js";
|
|
10
10
|
import {
|
|
11
11
|
FONT_FAMILY
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-ICLB27PZ.js";
|
|
13
13
|
import {
|
|
14
14
|
measureText
|
|
15
15
|
} from "./chunk-MTGGOCND.js";
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
mix,
|
|
19
19
|
shapeFill,
|
|
20
20
|
themeBaseBg
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-YVLTNNME.js";
|
|
22
22
|
import {
|
|
23
23
|
resolveColor
|
|
24
24
|
} from "./chunk-XOGQY4EC.js";
|
|
@@ -75,6 +75,7 @@ function renderGoal(container, parsed, palette, isDark, exportDims) {
|
|
|
75
75
|
const vw = box.maxX - box.minX + pad * 2;
|
|
76
76
|
const vh = box.maxY - box.minY + pad * 2;
|
|
77
77
|
svg.attr("viewBox", `${vx} ${vy} ${vw} ${vh}`);
|
|
78
|
+
if (vw > 0 && vh > 0) svg.attr("height", Math.round(cw * vh / vw));
|
|
78
79
|
svg.insert("rect", ":first-child").attr("x", vx).attr("y", vy).attr("width", vw).attr("height", vh).attr("fill", palette.bg);
|
|
79
80
|
}
|
|
80
81
|
function renderGoalForExport(container, parsed, palette, isDark, exportDims) {
|
|
@@ -155,7 +156,7 @@ function drawNote(svg, description, paint, left, top, width) {
|
|
|
155
156
|
const maxChars = Math.max(8, Math.floor(width / (descSize * 0.46)));
|
|
156
157
|
const firstY = top + descSize;
|
|
157
158
|
const lines = layoutDescription(description, left, maxChars);
|
|
158
|
-
const desc = svg.append("text").attr("x", left).attr("y", firstY).attr("text-anchor", "start").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", descSize).attr("font-weight",
|
|
159
|
+
const desc = svg.append("text").attr("x", left).attr("y", firstY).attr("text-anchor", "start").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", descSize).attr("font-weight", "normal");
|
|
159
160
|
renderWrappedMarkdown(desc, lines, lineH);
|
|
160
161
|
return firstY + lines.length * lineH;
|
|
161
162
|
}
|
|
@@ -176,7 +177,7 @@ function renderBar(svg, parsed, metrics, paint) {
|
|
|
176
177
|
if (hasTitle) faceTitle(svg, parsed, paint, x, titleSize - 2, "start");
|
|
177
178
|
const barRight = x + trackW;
|
|
178
179
|
if (showPct) {
|
|
179
|
-
svg.append("text").attr("x", barRight).attr("y", titleSize - 2).attr("text-anchor", "end").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", titleSize).attr("font-weight",
|
|
180
|
+
svg.append("text").attr("x", barRight).attr("y", titleSize - 2).attr("text-anchor", "end").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", titleSize).attr("font-weight", "bold").text(metrics.pctLabel);
|
|
180
181
|
}
|
|
181
182
|
const y = hasTitle || showPct ? titleSize + 14 : 0;
|
|
182
183
|
const barCy = y + trackH / 2;
|
|
@@ -198,10 +199,10 @@ function renderBar(svg, parsed, metrics, paint) {
|
|
|
198
199
|
const valuePad = 16;
|
|
199
200
|
const insideFits = fillW >= measureText(valueText, 24, { bold: true }) + valuePad * 2;
|
|
200
201
|
const valX = insideFits ? x + fillW - valuePad : x + fillW + valuePad;
|
|
201
|
-
g.append("text").attr("x", valX).attr("y", barCy + 24 * 0.35).attr("text-anchor", insideFits ? "end" : "start").attr("fill", insideFits ? paint.base : paint.text).attr("font-family", FONT_FAMILY).attr("font-size", 24).attr("font-weight",
|
|
202
|
+
g.append("text").attr("x", valX).attr("y", barCy + 24 * 0.35).attr("text-anchor", insideFits ? "end" : "start").attr("fill", insideFits ? paint.base : paint.text).attr("font-family", FONT_FAMILY).attr("font-size", 24).attr("font-weight", "bold").text(valueText);
|
|
202
203
|
}
|
|
203
204
|
if (parsed.hasTarget) {
|
|
204
|
-
g.append("text").attr("x", barRight + gap).attr("y", barCy + 26 * 0.35).attr("text-anchor", "start").attr("fill", paint.text).attr("font-family", FONT_FAMILY).attr("font-size", 26).attr("font-weight",
|
|
205
|
+
g.append("text").attr("x", barRight + gap).attr("y", barCy + 26 * 0.35).attr("text-anchor", "start").attr("fill", paint.text).attr("font-family", FONT_FAMILY).attr("font-size", 26).attr("font-weight", "bold").text(compactNumber(parsed.target));
|
|
205
206
|
}
|
|
206
207
|
let bottom = y + trackH;
|
|
207
208
|
if (parsed.description && !parsed.options.noNote) {
|
|
@@ -248,7 +249,7 @@ function renderThermometer(svg, parsed, metrics, paint) {
|
|
|
248
249
|
const y = yForFrac(f);
|
|
249
250
|
g.append("line").attr("x1", edgeX).attr("y1", y).attr("x2", edgeX - (isTarget ? 26 : major ? 18 : 10)).attr("y2", y).attr("stroke", isTarget ? paint.base : paint.muted).attr("stroke-width", isTarget ? 4 : major ? 2 : 1.5);
|
|
250
251
|
if (isTarget) {
|
|
251
|
-
g.append("text").attr("x", tickLabelX).attr("y", y - 20).attr("text-anchor", "start").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", 15).attr("font-weight",
|
|
252
|
+
g.append("text").attr("x", tickLabelX).attr("y", y - 20).attr("text-anchor", "start").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", 15).attr("font-weight", "bold").attr("letter-spacing", 1).text("TARGET");
|
|
252
253
|
}
|
|
253
254
|
if (major) {
|
|
254
255
|
g.append("text").attr("x", tickLabelX).attr("y", y + (isTarget ? 30 * 0.35 : 19 * 0.35)).attr("text-anchor", "start").attr("fill", isTarget ? paint.text : paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", isTarget ? 30 : 19).attr("font-weight", isTarget ? 700 : 500).text(compactNumber(parsed.target * f));
|
|
@@ -256,7 +257,7 @@ function renderThermometer(svg, parsed, metrics, paint) {
|
|
|
256
257
|
};
|
|
257
258
|
for (const f of [0.25, 0.75]) drawTick(f, false);
|
|
258
259
|
for (const f of [0, 0.5, 1]) drawTick(f, true);
|
|
259
|
-
g.append("text").attr("x", tickLabelX).attr("y", fillTopY + 42 * 0.35).attr("text-anchor", "start").attr("fill", paint.base).attr("font-family", FONT_FAMILY).attr("font-size", 42).attr("font-weight",
|
|
260
|
+
g.append("text").attr("x", tickLabelX).attr("y", fillTopY + 42 * 0.35).attr("text-anchor", "start").attr("fill", paint.base).attr("font-family", FONT_FAMILY).attr("font-size", 42).attr("font-weight", "bold").text(compactNumber(parsed.now));
|
|
260
261
|
}
|
|
261
262
|
const titleSize = GOAL_TITLE_SIZE;
|
|
262
263
|
let cursorY = glassTop;
|
|
@@ -265,7 +266,7 @@ function renderThermometer(svg, parsed, metrics, paint) {
|
|
|
265
266
|
cursorY += titleSize + 16;
|
|
266
267
|
}
|
|
267
268
|
if (!parsed.options.noPercent) {
|
|
268
|
-
svg.append("text").attr("x", colLeft).attr("y", cursorY + 52).attr("text-anchor", "start").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", 64).attr("font-weight",
|
|
269
|
+
svg.append("text").attr("x", colLeft).attr("y", cursorY + 52).attr("text-anchor", "start").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", 64).attr("font-weight", "bold").text(metrics.pctLabel);
|
|
269
270
|
cursorY += 76;
|
|
270
271
|
}
|
|
271
272
|
let colBottom = cursorY;
|
|
@@ -344,7 +345,7 @@ function renderGauge(svg, parsed, metrics, paint) {
|
|
|
344
345
|
r * 0.95 / Math.max(1, nowLabel.length * 0.6)
|
|
345
346
|
);
|
|
346
347
|
const nowY = cy - r * 0.42;
|
|
347
|
-
g.append("text").attr("x", cx).attr("y", nowY + nowSize * 0.35).attr("text-anchor", "middle").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", nowSize).attr("font-weight",
|
|
348
|
+
g.append("text").attr("x", cx).attr("y", nowY + nowSize * 0.35).attr("text-anchor", "middle").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", nowSize).attr("font-weight", "bold").text(nowLabel);
|
|
348
349
|
if (parsed.hasTarget) {
|
|
349
350
|
const bandInner = r - stroke / 2;
|
|
350
351
|
for (const f of [0, 0.25, 0.5, 0.75, 1]) {
|
|
@@ -356,7 +357,7 @@ function renderGauge(svg, parsed, metrics, paint) {
|
|
|
356
357
|
const lr = bandInner - (isTarget ? 40 : 26);
|
|
357
358
|
const anchor = ca > 0.2 ? "end" : ca < -0.2 ? "start" : "middle";
|
|
358
359
|
if (isTarget) {
|
|
359
|
-
g.append("text").attr("x", cx + lr * ca).attr("y", cy - lr * sa - 20).attr("text-anchor", anchor).attr("dominant-baseline", "middle").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", 15).attr("font-weight",
|
|
360
|
+
g.append("text").attr("x", cx + lr * ca).attr("y", cy - lr * sa - 20).attr("text-anchor", anchor).attr("dominant-baseline", "middle").attr("fill", paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", 15).attr("font-weight", "bold").attr("letter-spacing", 1).text("TARGET");
|
|
360
361
|
}
|
|
361
362
|
g.append("text").attr("x", cx + lr * ca).attr("y", cy - lr * sa).attr("text-anchor", anchor).attr("dominant-baseline", sa > 0.7 ? "hanging" : "middle").attr("fill", isTarget ? paint.text : paint.muted).attr("font-family", FONT_FAMILY).attr("font-size", isTarget ? 30 : 18).attr("font-weight", isTarget ? 700 : 500).text(compactNumber(parsed.target * f));
|
|
362
363
|
}
|
|
@@ -374,4 +375,4 @@ export {
|
|
|
374
375
|
renderGoal,
|
|
375
376
|
renderGoalForExport
|
|
376
377
|
};
|
|
377
|
-
//# sourceMappingURL=chunk-
|
|
378
|
+
//# sourceMappingURL=chunk-JUNTVLOU.js.map
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
tagAttrKey,
|
|
22
22
|
validateTagGroupNames,
|
|
23
23
|
validateTagValues
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-R4YGH7DJ.js";
|
|
25
25
|
import {
|
|
26
26
|
PERT_REGISTRY,
|
|
27
27
|
extractColor,
|
|
@@ -1268,4 +1268,4 @@ export {
|
|
|
1268
1268
|
extractPertSymbols,
|
|
1269
1269
|
looksLikePert
|
|
1270
1270
|
};
|
|
1271
|
-
//# sourceMappingURL=chunk-
|
|
1271
|
+
//# sourceMappingURL=chunk-KAZQX2EY.js.map
|