@diagrammo/dgmo 0.50.2 → 0.52.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/.cursorrules +15 -19
- package/.github/copilot-instructions.md +15 -19
- package/.windsurfrules +15 -19
- package/SKILL.md +15 -19
- package/dist/advanced.d.ts +155 -65
- package/dist/advanced.js +231 -189
- package/dist/{analyzer-UYKBXAKR.js → analyzer-BJ54GIFB.js} +3 -3
- package/dist/auto.css +31 -8
- package/dist/auto.d.ts +6 -0
- package/dist/auto.js +171 -133
- package/dist/auto.mjs +3062 -1478
- package/dist/block.css +28 -8
- package/dist/block.js +138 -72
- package/dist/charts-d3-MXEP6BNP.js +26 -0
- package/dist/{chunk-3YPY3OXD.js → chunk-3HF5YEFJ.js} +17 -7
- package/dist/{chunk-4MJ7M6YL.js → chunk-3HGU63UY.js} +14 -13
- package/dist/chunk-3LK5DNED.js +35 -0
- package/dist/{chunk-3Y2DRD7S.js → chunk-3QD7VP3U.js} +9 -4
- package/dist/{chunk-6BFZKBGD.js → chunk-3YRPZ7ZZ.js} +2 -2
- package/dist/{chunk-WW32K72E.js → chunk-44VCIPHF.js} +25 -21
- package/dist/{chunk-TN35C5KM.js → chunk-4AQRFDXL.js} +2 -2
- package/dist/{chunk-HHXOONLX.js → chunk-4B5YISOR.js} +38 -1
- package/dist/{chunk-PGEGPSCZ.js → chunk-4IHAV6O7.js} +2 -2
- package/dist/{chunk-7L3R6I3U.js → chunk-4UNQ6X24.js} +10 -7
- package/dist/{chunk-O7NUCTFU.js → chunk-4YFKQ5WT.js} +7 -4
- package/dist/{chunk-5WFIYXQ6.js → chunk-5223KXFD.js} +122 -242
- package/dist/{chunk-PFHVU7UA.js → chunk-5BHJZH62.js} +3 -3
- package/dist/{chunk-QYTPPDAO.js → chunk-5HILBT7X.js} +2 -2
- package/dist/{chunk-GKC3HILQ.js → chunk-5NGAO4QK.js} +27 -4
- package/dist/{chunk-IAEC4KLA.js → chunk-5QKQSSPO.js} +2 -2
- package/dist/{chunk-DSWVNQVS.js → chunk-5RP7JRVP.js} +4 -59
- package/dist/{chunk-MCZ5LBZD.js → chunk-5SEVICBT.js} +8 -8
- package/dist/{chunk-GBE54KY6.js → chunk-6EJITS44.js} +8 -5
- package/dist/{chunk-BBGDM4NQ.js → chunk-6HQH6JZE.js} +35 -16
- package/dist/{chunk-66NVRO4K.js → chunk-6LBQ7ELG.js} +17 -18
- package/dist/{chunk-4XK3FLFB.js → chunk-6NYWYNBI.js} +3 -3
- package/dist/{chunk-VBYSIOOY.js → chunk-75G3Q4DK.js} +3 -3
- package/dist/{chunk-3NODSS6A.js → chunk-77FGAVZC.js} +13 -10
- package/dist/{chunk-6IAA2QQ2.js → chunk-7BIZCTAX.js} +2 -2
- package/dist/{chunk-TWQUYVP3.js → chunk-7DF4J4RL.js} +4 -4
- package/dist/{chunk-66RUL3XF.js → chunk-7KINELPI.js} +111 -49
- package/dist/{chunk-L3UHP6TD.js → chunk-7L4UJOY6.js} +1 -2
- package/dist/{chunk-QJP6PG7F.js → chunk-7QE3XMRK.js} +19 -18
- package/dist/{chunk-P7CE7LXL.js → chunk-AAXZDUOV.js} +18 -17
- package/dist/{chunk-SXRTRMEE.js → chunk-AL672HNE.js} +3 -3
- package/dist/chunk-APKUAJ2L.js +220 -0
- package/dist/{chunk-SCHXJTZL.js → chunk-ARGMQ3H4.js} +2 -2
- package/dist/{chunk-HEVYAHLW.js → chunk-AUIM2NVH.js} +5 -5
- package/dist/{chunk-3LH5CLP4.js → chunk-BKVOYV6I.js} +143 -6
- package/dist/{chunk-RZ6YKEUJ.js → chunk-BPIZNB5O.js} +17 -15
- package/dist/{chunk-QROYX7TT.js → chunk-BPY242XU.js} +6 -4
- package/dist/{chunk-OTAL43EH.js → chunk-BRENJ2BQ.js} +39 -3
- package/dist/{chunk-FA6K3FWM.js → chunk-CCNDLW7Z.js} +44 -22
- package/dist/{chunk-2KGXHFYK.js → chunk-CIRFIL4M.js} +49 -29
- package/dist/chunk-DAOFNU6J.js +283 -0
- package/dist/{chunk-QJJZSROI.js → chunk-DYWQFQJP.js} +48 -38
- package/dist/{chunk-XEGTMVYY.js → chunk-EMLPOL77.js} +15 -8
- package/dist/{chunk-NWED7CYO.js → chunk-FHGVORFO.js} +29 -25
- package/dist/{chunk-U2HGPLZS.js → chunk-FQ7HTV52.js} +17 -2
- package/dist/{chunk-H73FP42Q.js → chunk-FQMUHRVC.js} +70 -31
- package/dist/{chunk-BTUTZMPT.js → chunk-FT3ZYWET.js} +108 -42
- package/dist/{chunk-T5SHNNGP.js → chunk-FUPF2UYQ.js} +92 -34
- package/dist/{chunk-3XPUDB7B.js → chunk-FY5MSZAP.js} +279 -39
- package/dist/{chunk-M5RXSRO2.js → chunk-GCYTI3DE.js} +42 -33
- package/dist/{chunk-DN66GPY5.js → chunk-GJFAMOGK.js} +24 -3
- package/dist/{chunk-F2L5GCQ4.js → chunk-GU46PPT3.js} +3 -3
- package/dist/{chunk-6IUAK7RZ.js → chunk-H6PI3KJT.js} +2 -2
- package/dist/{chunk-ONA5KPV3.js → chunk-H7KENAZO.js} +18 -14
- package/dist/{chunk-SQLNBA64.js → chunk-HBPDFCQY.js} +3 -3
- package/dist/{chunk-SCQ5VPUF.js → chunk-HFMYN6N2.js} +2 -2
- package/dist/{chunk-FJUNPCYI.js → chunk-HHKO6SKY.js} +2 -2
- package/dist/{chunk-DZXYF2F5.js → chunk-HQQNCY7W.js} +21 -8
- package/dist/{chunk-7TV5Y53Y.js → chunk-HWX6ZHF3.js} +3 -3
- package/dist/{chunk-3P2DKJCG.js → chunk-ICPJPQ5C.js} +2 -2
- package/dist/{chunk-VUJGMJE6.js → chunk-IM6PDDCE.js} +4 -4
- package/dist/{chunk-JJUOHGX2.js → chunk-INE5YJBZ.js} +13 -8
- package/dist/{chunk-HTMN2Z6U.js → chunk-J6QROYDA.js} +58 -11
- package/dist/{chunk-NX4EQS3U.js → chunk-J76PIKAT.js} +2 -2
- package/dist/{chunk-SVTI362O.js → chunk-J7KJR3R6.js} +129 -109
- package/dist/{chunk-JEUJOX5X.js → chunk-J7TLCB2Q.js} +2 -2
- package/dist/{chunk-O7WP4ZD4.js → chunk-JED6ZDEE.js} +2 -2
- package/dist/{chunk-J6K7RP6P.js → chunk-JRCOYRRH.js} +19 -7
- package/dist/{chunk-7QKLIMRZ.js → chunk-K2I2XOZD.js} +46 -51
- package/dist/{chunk-EAMEADTV.js → chunk-K4EOKJA6.js} +96 -24
- package/dist/{chunk-5OWVC2A6.js → chunk-KGVZ5VGH.js} +13 -10
- package/dist/{chunk-DFTFPYUD.js → chunk-LBMS4AW6.js} +22 -21
- package/dist/{chunk-VVW3F3MD.js → chunk-LGT3PZCJ.js} +27 -19
- package/dist/{chunk-OMNGQPEZ.js → chunk-LTXOLDUZ.js} +9 -6
- package/dist/{chunk-Q4V4XQWV.js → chunk-MUE65OTD.js} +5 -4
- package/dist/{chunk-5GJYGP5Z.js → chunk-MUVJ57EP.js} +14 -18
- package/dist/{chunk-CLD2OKV7.js → chunk-MX2EY5Y7.js} +2 -2
- package/dist/{chunk-OTQKUHRS.js → chunk-NNS4E7CW.js} +6 -4
- package/dist/{chunk-NNAAJVBU.js → chunk-NR5HCAUD.js} +1 -1
- package/dist/{chunk-KFZYNWWO.js → chunk-ONU3U4GL.js} +4 -4
- package/dist/{chunk-YNRDWYZP.js → chunk-OQKP2X3D.js} +170 -51
- package/dist/{chunk-AHGF2YYA.js → chunk-OTOHI4JO.js} +2 -2
- package/dist/{chunk-EOFPYPAU.js → chunk-P3NRSSUU.js} +51 -11
- package/dist/{chunk-QXKWYZNR.js → chunk-PRI2OD4E.js} +10 -3
- package/dist/{chunk-U6EQI3U6.js → chunk-QBZYACOG.js} +3 -3
- package/dist/{chunk-C2CVAM3U.js → chunk-QGATPIPX.js} +170 -91
- package/dist/{chunk-PZFVK3IH.js → chunk-QHXCAEMX.js} +8 -5
- package/dist/{chunk-BH3UYK36.js → chunk-QJMKPUYK.js} +15 -5
- package/dist/{chunk-HQCHYB5F.js → chunk-QOOUC2J5.js} +2 -2
- package/dist/{chunk-Z6XJQ6KO.js → chunk-QVENJMNX.js} +2 -2
- package/dist/{chunk-IUMPEA64.js → chunk-QZX5S6R3.js} +4 -4
- package/dist/{chunk-I7F2A35O.js → chunk-R3YSD62R.js} +25 -47
- package/dist/{chunk-NU3XLTGP.js → chunk-REJAIQ5S.js} +4 -4
- package/dist/{chunk-2C56LEML.js → chunk-ROOE4R4Y.js} +8 -5
- package/dist/{chunk-XHVV4NVW.js → chunk-RT7ACF77.js} +12 -2
- package/dist/{chunk-I2WKW7C7.js → chunk-SMRFPVLQ.js} +3 -3
- package/dist/{chunk-VDOOQZUD.js → chunk-SWSIKFEB.js} +4 -4
- package/dist/{chunk-HLJVEAOF.js → chunk-T4A4TSTJ.js} +19 -45
- package/dist/{chunk-KHEYDLMT.js → chunk-TJVLKNGR.js} +20 -10
- package/dist/{chunk-GL5UZ6NY.js → chunk-TPFKKXCB.js} +3 -3
- package/dist/{chunk-X6EZPSW6.js → chunk-TTIM6YTT.js} +31 -21
- package/dist/{chunk-BCYVE3N5.js → chunk-TYS6CSS5.js} +2 -2
- package/dist/{chunk-T4VOVZT5.js → chunk-UBLHQTLV.js} +15 -14
- package/dist/{chunk-3LKM6FMW.js → chunk-UNURMIQO.js} +2 -2
- package/dist/{chunk-TSA237IM.js → chunk-VILVLS7P.js} +5 -3
- package/dist/{chunk-HGN652MU.js → chunk-VL2O2F3W.js} +2 -2
- package/dist/{chunk-3XGZF2QJ.js → chunk-VQOCMUWI.js} +39 -28
- package/dist/{chunk-P6T66CCZ.js → chunk-WBM7ZNDI.js} +3 -2
- package/dist/{chunk-CMCR5WBW.js → chunk-WBRZJOEC.js} +3 -3
- package/dist/{chunk-5LWQH6QV.js → chunk-WCT3NYCV.js} +1 -1
- package/dist/{chunk-C4GQDB5L.js → chunk-WRNFDFPU.js} +2 -2
- package/dist/{chunk-6HJBFVLO.js → chunk-XD6ZYURY.js} +9 -4
- package/dist/{chunk-C63UWAKM.js → chunk-Y2ZE3MSG.js} +2 -2
- package/dist/{chunk-7UEMZREK.js → chunk-YAA6IID3.js} +2 -2
- package/dist/{chunk-F7BFXWNQ.js → chunk-YIBAWQGJ.js} +7 -4
- package/dist/{chunk-PH5X4GIP.js → chunk-YTMTPUH4.js} +8 -5
- package/dist/{chunk-3UIKSPFB.js → chunk-Z5QVYKR7.js} +11 -3
- package/dist/{chunk-KQ57MHRO.js → chunk-ZEF5M5MB.js} +155 -87
- package/dist/{chunk-LE4MYMLI.js → chunk-ZJV7GYR4.js} +6 -6
- package/dist/{chunk-XJLKLU4D.js → chunk-ZNWAYU6N.js} +11 -7
- package/dist/cli.cjs +165 -148
- package/dist/clock.js +105 -25
- package/dist/countdown.js +208 -82
- package/dist/dgmo-router-X7ZGAPIE.js +86 -0
- package/dist/dimensions-45H6JQEY.js +22 -0
- package/dist/editor.js +17 -2
- package/dist/element.d.ts +6 -0
- package/dist/element.js +172 -134
- package/dist/element.mjs +3026 -1463
- package/dist/{flowchart-parser-OE4WHLTF.js → flowchart-parser-UKELHBSB.js} +4 -4
- package/dist/{flowchart-renderer-GPCSMTOR.js → flowchart-renderer-MNCDS7MV.js} +10 -10
- package/dist/highlight.d.ts +21 -1
- package/dist/highlight.js +106 -3
- package/dist/index.d.ts +2 -2
- package/dist/index.js +59 -57
- package/dist/{layout-FWODLIMP.js → layout-2L3WMRYU.js} +6 -6
- package/dist/{layout-7SKMFYHL.js → layout-46N4JJYK.js} +5 -5
- package/dist/{layout-7H4H46CS.js → layout-7QXCNOVS.js} +3 -3
- package/dist/layout-A4XWNVID.js +14 -0
- package/dist/{layout-46366KBT.js → layout-A5UHRWVH.js} +3 -3
- package/dist/{layout-NXG63LWH.js → layout-AM2JWW3X.js} +4 -4
- package/dist/{layout-DC4TVXER.js → layout-EE6GE46Y.js} +5 -5
- package/dist/{layout-FGQWRYYW.js → layout-F4WO357A.js} +3 -3
- package/dist/layout-G23F7LDH.js +9 -0
- package/dist/{layout-QNUQLEHU.js → layout-GM4UGR7B.js} +5 -4
- package/dist/{layout-7MZ5NF2N.js → layout-GQQJXNYH.js} +5 -5
- package/dist/{layout-5BG6DFCU.js → layout-IIE2S5FK.js} +6 -6
- package/dist/{layout-34CLNICW.js → layout-OAC4PEAC.js} +5 -5
- package/dist/layout-VMCRX66I.js +14 -0
- package/dist/{layout-PUQCB6AN.js → layout-ZDOSXL5G.js} +7 -7
- package/dist/{layout-search-QS44PI5R.js → layout-search-55FU6HD3.js} +6 -157
- package/dist/map-data/gazetteer.json +1 -1
- package/dist/{palettes-PRJ2RI6D.js → palettes-UDLZ2SA4.js} +2 -2
- package/dist/{parser-D5VILGN2.js → parser-2ECN6JA2.js} +4 -4
- package/dist/{parser-LWKKBNSA.js → parser-4WTIHM5J.js} +3 -3
- package/dist/{parser-DFFEDKHH.js → parser-5H2BTSJQ.js} +3 -3
- package/dist/{parser-4NO6VZ6S.js → parser-75KVXUNS.js} +4 -4
- package/dist/{parser-VKOJM7KS.js → parser-774AC53T.js} +4 -4
- package/dist/{parser-IBWNAPY4.js → parser-BE4YCSRU.js} +3 -3
- package/dist/{parser-4AI5ZN5F.js → parser-CNGUQUQI.js} +3 -3
- package/dist/{parser-36HVKU5U.js → parser-DEUUSQIN.js} +7 -6
- package/dist/{parser-H3XEPFPV.js → parser-DQAFLUJB.js} +4 -4
- package/dist/{parser-5OXGPNBF.js → parser-EYCKNKQA.js} +5 -5
- package/dist/{parser-TGQZJ5OT.js → parser-FXISIU6A.js} +4 -4
- package/dist/{parser-JJR52VAT.js → parser-GTB4XC7P.js} +5 -5
- package/dist/{parser-AGVYTQXV.js → parser-GVEPAUSD.js} +4 -4
- package/dist/{parser-WAV5JRPT.js → parser-HSQGTY4G.js} +4 -4
- package/dist/{parser-YS7TOS2K.js → parser-HVKRINUS.js} +3 -3
- package/dist/{parser-W4PQUGX3.js → parser-J5MIEYO4.js} +5 -5
- package/dist/parser-KMZIXLDZ.js +13 -0
- package/dist/{parser-HYRTF3DO.js → parser-LJHXWSXU.js} +3 -3
- package/dist/{parser-KCR2WS3V.js → parser-PT3W72G5.js} +4 -4
- package/dist/{parser-CVMEDULU.js → parser-SBJQDPHL.js} +4 -4
- package/dist/{parser-RZPVAQVX.js → parser-SUWWWCMX.js} +4 -3
- package/dist/{parser-TXND652E.js → parser-SXDRNZOA.js} +4 -4
- package/dist/parser-UMILOW3M.js +14 -0
- package/dist/{parser-RV4M6AS2.js → parser-UP3AZ367.js} +4 -4
- package/dist/{parser-IJBMRXMC.js → parser-WHPRV3X5.js} +5 -5
- package/dist/{parser-MPCE5JBG.js → parser-WX3UODSJ.js} +4 -4
- package/dist/{parser-K3XXLMUW.js → parser-XCIEN3KN.js} +4 -4
- package/dist/{parser-AXKBDGNO.js → parser-XIRTUMVN.js} +5 -5
- package/dist/{parser-B5FVS7O6.js → parser-YKCGIG45.js} +3 -3
- package/dist/{parser-PSA4UBSP.js → parser-YKYMQG3B.js} +4 -4
- package/dist/{parser-MTOMTWTD.js → parser-ZGM2OJ6Y.js} +6 -5
- package/dist/{parser-CSFUN3CT.js → parser-ZL5QUFVH.js} +5 -4
- package/dist/pert.d.ts +2 -2
- package/dist/{renderer-PPIHO5FI.js → renderer-3F7OS2AX.js} +14 -13
- package/dist/{renderer-SBS3YWU5.js → renderer-4QB4K7Q3.js} +9 -9
- package/dist/{renderer-GHPZMFU2.js → renderer-5DAKMIU2.js} +3 -3
- package/dist/{renderer-R2WNIC2C.js → renderer-5H4SY7YY.js} +9 -9
- package/dist/{renderer-DAXMXIKD.js → renderer-5PIQPFOX.js} +5 -4
- package/dist/{renderer-45PSOL3E.js → renderer-6MU37QF5.js} +6 -6
- package/dist/renderer-AQVMWJ4M.js +27 -0
- package/dist/{renderer-A5VE5BCI.js → renderer-BDDW6K7N.js} +9 -9
- package/dist/{renderer-AUW2BE6G.js → renderer-BNB3VIDY.js} +10 -10
- package/dist/{renderer-4ITCHBT7.js → renderer-CQY6ATOS.js} +6 -6
- package/dist/{renderer-6OKF44KS.js → renderer-CVW75CXL.js} +15 -15
- package/dist/{renderer-7RH2SI3B.js → renderer-DT4XRFEP.js} +5 -4
- package/dist/{renderer-B5TBNZJE.js → renderer-ERHBSTQT.js} +9 -9
- package/dist/{renderer-HVCU2C3Z.js → renderer-HSHHVYWF.js} +5 -4
- package/dist/renderer-IDPVUFNB.js +28 -0
- package/dist/renderer-ILX6BGKR.js +21 -0
- package/dist/renderer-JP663HKG.js +22 -0
- package/dist/{renderer-KS7YZJE2.js → renderer-KNFTTOBL.js} +11 -11
- package/dist/{renderer-2AZ5HJFK.js → renderer-MVUZBESR.js} +5 -5
- package/dist/{renderer-QAOBLRXV.js → renderer-N4EBR2FV.js} +11 -11
- package/dist/{renderer-P5ROYQGU.js → renderer-NHO46CT2.js} +4 -4
- package/dist/{renderer-NGXZTRK6.js → renderer-NO2QJ5LZ.js} +10 -10
- package/dist/{renderer-FPE3J5VZ.js → renderer-OGFV5RXX.js} +12 -12
- package/dist/{renderer-ODUUOPVT.js → renderer-PDLESJMS.js} +15 -15
- package/dist/renderer-T4MTNINC.js +24 -0
- package/dist/renderer-TOUGFGTM.js +24 -0
- package/dist/{renderer-BSR2O2H6.js → renderer-U3KPD43Y.js} +14 -13
- package/dist/{renderer-JCCHNECZ.js → renderer-X334IJU2.js} +10 -10
- package/dist/{renderer-5DSEWF74.js → renderer-Y5OAMOCR.js} +9 -9
- package/dist/{renderer-5KVCNMOJ.js → renderer-YONAKAJU.js} +5 -3
- package/dist/{renderer-7SD6MSBS.js → renderer-YWMI6Y2U.js} +12 -12
- package/dist/{renderer-2QPMJ2DA.js → renderer-ZWIH4WDW.js} +10 -10
- package/dist/renderer-radial-7CGZMVMS.js +21 -0
- package/dist/{resolver-FHBCO3PL.js → resolver-EMTGNR3D.js} +4 -3
- package/dist/{state-parser-3REXRK3R.js → state-parser-BATWAID2.js} +4 -4
- package/dist/{state-renderer-XYLNRWXR.js → state-renderer-3FKZJ3LP.js} +10 -10
- package/dist/{themes-PdPR1-hC.d.ts → themes-32xj5ZTW.d.ts} +27 -0
- package/docs/ai-integration.md +15 -19
- package/docs/language-reference.md +106 -21
- package/gallery/fixtures/clock.dgmo +3 -3
- package/gallery/fixtures/countdown-tz.dgmo +5 -0
- package/package.json +1 -1
- package/dist/charts-d3-MUW3LTML.js +0 -26
- package/dist/dgmo-router-CE2G67FV.js +0 -84
- package/dist/dimensions-OTBKC5M6.js +0 -22
- package/dist/layout-6RDJHS6E.js +0 -9
- package/dist/layout-J36454XU.js +0 -14
- package/dist/layout-LD6XTLD6.js +0 -14
- package/dist/parser-4WQQQXCG.js +0 -13
- package/dist/parser-O4HIUN6G.js +0 -13
- package/dist/renderer-CYB4LK3G.js +0 -22
- package/dist/renderer-FF24KZCI.js +0 -24
- package/dist/renderer-FYSVXL7M.js +0 -28
- package/dist/renderer-HDCCZURL.js +0 -24
- package/dist/renderer-PSMMZCKH.js +0 -21
- package/dist/renderer-UYMQQCJK.js +0 -24
- package/dist/renderer-radial-F7X5F2VU.js +0 -21
|
@@ -1,10 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
formatOffsetLabel,
|
|
3
|
+
parseFixedOffset,
|
|
4
|
+
zoneParts
|
|
5
|
+
} from "./chunk-APKUAJ2L.js";
|
|
1
6
|
import {
|
|
2
7
|
extractColor,
|
|
8
|
+
fillModeFromToken,
|
|
3
9
|
parseFirstLine
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import {
|
|
6
|
-
resolveColor
|
|
7
|
-
} from "./chunk-TLVIHFRO.js";
|
|
10
|
+
} from "./chunk-BRENJ2BQ.js";
|
|
8
11
|
import {
|
|
9
12
|
makeDgmoError,
|
|
10
13
|
makeFail
|
|
@@ -145,6 +148,180 @@ function coordsFor(zone) {
|
|
|
145
148
|
return ZONE_COORDS[zone] ?? null;
|
|
146
149
|
}
|
|
147
150
|
|
|
151
|
+
// src/clock/gazetteer.ts
|
|
152
|
+
function normalizePlace(name) {
|
|
153
|
+
return name.normalize("NFD").replace(/[̀-ͯ]/g, "").toLowerCase().replace(/[.]/g, "").replace(/\s+/g, " ").trim();
|
|
154
|
+
}
|
|
155
|
+
function zoneCity(zone) {
|
|
156
|
+
const seg = zone.split("/").pop() ?? zone;
|
|
157
|
+
return seg.replace(/_/g, " ");
|
|
158
|
+
}
|
|
159
|
+
var ALIAS_SEED = [
|
|
160
|
+
// North America — abbreviations + metros not named by their zone segment
|
|
161
|
+
["NYC", "America/New_York"],
|
|
162
|
+
["New York City", "America/New_York"],
|
|
163
|
+
["Boston", "America/New_York"],
|
|
164
|
+
["Washington", "America/New_York"],
|
|
165
|
+
["Washington DC", "America/New_York"],
|
|
166
|
+
["DC", "America/New_York"],
|
|
167
|
+
["Philadelphia", "America/New_York"],
|
|
168
|
+
["Miami", "America/New_York"],
|
|
169
|
+
["Atlanta", "America/New_York"],
|
|
170
|
+
["LA", "America/Los_Angeles"],
|
|
171
|
+
["Los Angeles", "America/Los_Angeles"],
|
|
172
|
+
["San Francisco", "America/Los_Angeles"],
|
|
173
|
+
["SF", "America/Los_Angeles"],
|
|
174
|
+
["Seattle", "America/Los_Angeles"],
|
|
175
|
+
["Portland", "America/Los_Angeles"],
|
|
176
|
+
["San Diego", "America/Los_Angeles"],
|
|
177
|
+
["Las Vegas", "America/Los_Angeles"],
|
|
178
|
+
["Dallas", "America/Chicago"],
|
|
179
|
+
["Houston", "America/Chicago"],
|
|
180
|
+
["Austin", "America/Chicago"],
|
|
181
|
+
["Chicago", "America/Chicago"],
|
|
182
|
+
["Minneapolis", "America/Chicago"],
|
|
183
|
+
["Denver", "America/Denver"],
|
|
184
|
+
["Salt Lake City", "America/Denver"],
|
|
185
|
+
["London, ON", "America/Toronto"],
|
|
186
|
+
["Ottawa", "America/Toronto"],
|
|
187
|
+
["Montreal", "America/Toronto"],
|
|
188
|
+
["Honolulu", "Pacific/Honolulu"],
|
|
189
|
+
["Hawaii", "Pacific/Honolulu"],
|
|
190
|
+
// Genuinely ambiguous: San Jose CA (Pacific) vs San José, Costa Rica.
|
|
191
|
+
["San Jose", "America/Los_Angeles"],
|
|
192
|
+
["San Jose", "America/Costa_Rica"],
|
|
193
|
+
// Europe
|
|
194
|
+
["Kiev", "Europe/Kyiv"],
|
|
195
|
+
["Kyiv", "Europe/Kyiv"],
|
|
196
|
+
["Frankfurt", "Europe/Berlin"],
|
|
197
|
+
["Munich", "Europe/Berlin"],
|
|
198
|
+
["Hamburg", "Europe/Berlin"],
|
|
199
|
+
["Milan", "Europe/Rome"],
|
|
200
|
+
["Barcelona", "Europe/Madrid"],
|
|
201
|
+
["Geneva", "Europe/Zurich"],
|
|
202
|
+
["Saint Petersburg", "Europe/Moscow"],
|
|
203
|
+
["St Petersburg", "Europe/Moscow"],
|
|
204
|
+
// Middle East / Asia — historic + colloquial names
|
|
205
|
+
["Bombay", "Asia/Kolkata"],
|
|
206
|
+
["Mumbai", "Asia/Kolkata"],
|
|
207
|
+
["Delhi", "Asia/Kolkata"],
|
|
208
|
+
["New Delhi", "Asia/Kolkata"],
|
|
209
|
+
["Bangalore", "Asia/Kolkata"],
|
|
210
|
+
["Bengaluru", "Asia/Kolkata"],
|
|
211
|
+
["Chennai", "Asia/Kolkata"],
|
|
212
|
+
["Madras", "Asia/Kolkata"],
|
|
213
|
+
["Calcutta", "Asia/Kolkata"],
|
|
214
|
+
["Hyderabad", "Asia/Kolkata"],
|
|
215
|
+
["Saigon", "Asia/Ho_Chi_Minh"],
|
|
216
|
+
["Ho Chi Minh City", "Asia/Ho_Chi_Minh"],
|
|
217
|
+
["Beijing", "Asia/Shanghai"],
|
|
218
|
+
["Peking", "Asia/Shanghai"],
|
|
219
|
+
["Shenzhen", "Asia/Shanghai"],
|
|
220
|
+
["Guangzhou", "Asia/Shanghai"],
|
|
221
|
+
["Abu Dhabi", "Asia/Dubai"],
|
|
222
|
+
["Tel Aviv", "Asia/Jerusalem"],
|
|
223
|
+
["Osaka", "Asia/Tokyo"],
|
|
224
|
+
["Kyoto", "Asia/Tokyo"],
|
|
225
|
+
// Oceania
|
|
226
|
+
["Auckland", "Pacific/Auckland"],
|
|
227
|
+
["Wellington", "Pacific/Auckland"]
|
|
228
|
+
];
|
|
229
|
+
var NAME_INDEX = /* @__PURE__ */ new Map();
|
|
230
|
+
var CITY_LABEL = /* @__PURE__ */ new Map();
|
|
231
|
+
var ALL_ENTRIES = [];
|
|
232
|
+
function register(city, zone) {
|
|
233
|
+
const key = normalizePlace(city);
|
|
234
|
+
if (!key) return;
|
|
235
|
+
let set = NAME_INDEX.get(key);
|
|
236
|
+
if (!set) {
|
|
237
|
+
set = /* @__PURE__ */ new Set();
|
|
238
|
+
NAME_INDEX.set(key, set);
|
|
239
|
+
CITY_LABEL.set(key, city);
|
|
240
|
+
}
|
|
241
|
+
if (!set.has(zone)) {
|
|
242
|
+
set.add(zone);
|
|
243
|
+
ALL_ENTRIES.push({ city, zone });
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
for (const zone of Object.keys(ZONE_COORDS)) {
|
|
247
|
+
if (zone === "UTC") continue;
|
|
248
|
+
register(zoneCity(zone), zone);
|
|
249
|
+
}
|
|
250
|
+
for (const [name, zone] of ALIAS_SEED) register(name, zone);
|
|
251
|
+
function editDistance(a, b, max) {
|
|
252
|
+
if (Math.abs(a.length - b.length) > max) return max + 1;
|
|
253
|
+
let prev = Array.from({ length: b.length + 1 }, (_, i) => i);
|
|
254
|
+
for (let i = 1; i <= a.length; i++) {
|
|
255
|
+
const curr = [i];
|
|
256
|
+
let rowMin = i;
|
|
257
|
+
for (let j = 1; j <= b.length; j++) {
|
|
258
|
+
const cost = a[i - 1] === b[j - 1] ? 0 : 1;
|
|
259
|
+
const v = Math.min(prev[j] + 1, curr[j - 1] + 1, prev[j - 1] + cost);
|
|
260
|
+
curr[j] = v;
|
|
261
|
+
if (v < rowMin) rowMin = v;
|
|
262
|
+
}
|
|
263
|
+
if (rowMin > max) return max + 1;
|
|
264
|
+
prev = curr;
|
|
265
|
+
}
|
|
266
|
+
return prev[b.length];
|
|
267
|
+
}
|
|
268
|
+
function didYouMean(key) {
|
|
269
|
+
let best = null;
|
|
270
|
+
let bestD = 3;
|
|
271
|
+
for (const [name, label] of CITY_LABEL) {
|
|
272
|
+
const d = editDistance(key, name, 2);
|
|
273
|
+
if (d < bestD) {
|
|
274
|
+
bestD = d;
|
|
275
|
+
best = label;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
return best;
|
|
279
|
+
}
|
|
280
|
+
function resolvePlace(name) {
|
|
281
|
+
const key = normalizePlace(name);
|
|
282
|
+
const set = NAME_INDEX.get(key);
|
|
283
|
+
if (set?.size === 1) {
|
|
284
|
+
const zone = [...set][0];
|
|
285
|
+
return { kind: "ok", zone, city: zoneCity(zone) };
|
|
286
|
+
}
|
|
287
|
+
if (set && set.size > 1) {
|
|
288
|
+
const candidates = [...set].map((zone) => ({ city: zoneCity(zone), zone }));
|
|
289
|
+
return { kind: "ambiguous", candidates };
|
|
290
|
+
}
|
|
291
|
+
return { kind: "unknown", suggestion: didYouMean(key) };
|
|
292
|
+
}
|
|
293
|
+
function searchZones(query, nowMs, limit = 8) {
|
|
294
|
+
const q = normalizePlace(query);
|
|
295
|
+
if (!q) return [];
|
|
296
|
+
const seen = /* @__PURE__ */ new Set();
|
|
297
|
+
const scored = [];
|
|
298
|
+
const consider = (city, zone, haystack) => {
|
|
299
|
+
const dedup = `${normalizePlace(city)}|${zone}`;
|
|
300
|
+
if (seen.has(dedup)) return;
|
|
301
|
+
let score;
|
|
302
|
+
if (haystack === q) score = 0;
|
|
303
|
+
else if (haystack.startsWith(q)) score = 1;
|
|
304
|
+
else if (haystack.includes(q)) score = 2;
|
|
305
|
+
else return;
|
|
306
|
+
seen.add(dedup);
|
|
307
|
+
scored.push({ city, zone, score });
|
|
308
|
+
};
|
|
309
|
+
for (const e of ALL_ENTRIES) {
|
|
310
|
+
consider(e.city, e.zone, normalizePlace(e.city));
|
|
311
|
+
}
|
|
312
|
+
if (q.includes("/") || q.length >= 3) {
|
|
313
|
+
for (const e of ALL_ENTRIES) {
|
|
314
|
+
consider(e.city, e.zone, e.zone.toLowerCase());
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
scored.sort((a, b) => a.score - b.score || a.city.localeCompare(b.city));
|
|
318
|
+
return scored.slice(0, limit).map(({ city, zone }) => ({
|
|
319
|
+
city,
|
|
320
|
+
zone,
|
|
321
|
+
offsetLabel: zoneParts(zone, nowMs).offsetLabel || formatOffsetLabel(0)
|
|
322
|
+
}));
|
|
323
|
+
}
|
|
324
|
+
|
|
148
325
|
// src/clock/parser.ts
|
|
149
326
|
var DIRECTIVES = /* @__PURE__ */ new Set([
|
|
150
327
|
"analog",
|
|
@@ -154,7 +331,10 @@ var DIRECTIVES = /* @__PURE__ */ new Set([
|
|
|
154
331
|
"time-24",
|
|
155
332
|
"no-title",
|
|
156
333
|
"direction",
|
|
157
|
-
"color-by"
|
|
334
|
+
"color-by",
|
|
335
|
+
"fill-tint",
|
|
336
|
+
"fill-solid",
|
|
337
|
+
"fill-outline"
|
|
158
338
|
]);
|
|
159
339
|
var WEEKDAY_ABBR = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
|
|
160
340
|
function weekdayIndex(token) {
|
|
@@ -186,9 +366,6 @@ function isValidZone(zone) {
|
|
|
186
366
|
return false;
|
|
187
367
|
}
|
|
188
368
|
}
|
|
189
|
-
function looksLikeZone(token) {
|
|
190
|
-
return token.includes("/") || token === "UTC" || coordsFor(token) !== null;
|
|
191
|
-
}
|
|
192
369
|
function defaultWorkDays() {
|
|
193
370
|
return { Mon: true, Tue: true, Wed: true, Thu: true, Fri: true };
|
|
194
371
|
}
|
|
@@ -218,7 +395,7 @@ function parseDays(rest) {
|
|
|
218
395
|
}
|
|
219
396
|
return any ? days : null;
|
|
220
397
|
}
|
|
221
|
-
function
|
|
398
|
+
function zoneCity2(zone) {
|
|
222
399
|
const seg = zone.split("/").pop() ?? zone;
|
|
223
400
|
return seg.replace(/_/g, " ");
|
|
224
401
|
}
|
|
@@ -322,6 +499,14 @@ function parseClock(content, palette) {
|
|
|
322
499
|
case "no-title":
|
|
323
500
|
result.noTitle = true;
|
|
324
501
|
break;
|
|
502
|
+
case "fill-tint":
|
|
503
|
+
case "fill-solid":
|
|
504
|
+
case "fill-outline": {
|
|
505
|
+
const fm = fillModeFromToken(key);
|
|
506
|
+
if (fm === "solid" || fm === "outline") result.fillMode = fm;
|
|
507
|
+
else delete result.fillMode;
|
|
508
|
+
break;
|
|
509
|
+
}
|
|
325
510
|
case "color-by": {
|
|
326
511
|
const v = rest.trim().toLowerCase();
|
|
327
512
|
const modes = ["place", "work", "daylight", "time", "none"];
|
|
@@ -343,50 +528,102 @@ function parseClock(content, palette) {
|
|
|
343
528
|
}
|
|
344
529
|
continue;
|
|
345
530
|
}
|
|
346
|
-
const
|
|
347
|
-
|
|
348
|
-
warn(
|
|
349
|
-
lineNum,
|
|
350
|
-
`No time zone found in "${trimmed}" \u2014 expected an IANA zone like America/New_York.`
|
|
351
|
-
);
|
|
352
|
-
continue;
|
|
353
|
-
}
|
|
354
|
-
const zone = tokens[zoneIdx];
|
|
355
|
-
const placeTokens = tokens.slice(0, zoneIdx);
|
|
531
|
+
const asIdx = tokens.findIndex((t) => t.toLowerCase() === "as");
|
|
532
|
+
let anchor;
|
|
356
533
|
let label = null;
|
|
357
534
|
let color;
|
|
358
|
-
const afterZone = tokens.slice(zoneIdx + 1);
|
|
359
|
-
const asIdx = afterZone.findIndex((t) => t.toLowerCase() === "as");
|
|
360
535
|
if (asIdx >= 0) {
|
|
536
|
+
anchor = tokens.slice(0, asIdx).join(" ").trim();
|
|
361
537
|
const ex = extractColor(
|
|
362
|
-
|
|
538
|
+
tokens.slice(asIdx + 1).join(" ").trim(),
|
|
363
539
|
palette,
|
|
364
540
|
void 0,
|
|
365
541
|
lineNum
|
|
366
542
|
);
|
|
367
543
|
if (ex.label) label = ex.label;
|
|
368
544
|
color = ex.color;
|
|
369
|
-
} else
|
|
370
|
-
|
|
545
|
+
} else {
|
|
546
|
+
const ex = extractColor(
|
|
547
|
+
tokens.join(" ").trim(),
|
|
548
|
+
palette,
|
|
549
|
+
void 0,
|
|
550
|
+
lineNum
|
|
551
|
+
);
|
|
552
|
+
anchor = ex.label.trim();
|
|
553
|
+
color = ex.color;
|
|
371
554
|
}
|
|
372
|
-
|
|
373
|
-
if (!isValidZone(zone)) {
|
|
555
|
+
if (!anchor) {
|
|
374
556
|
warn(
|
|
375
557
|
lineNum,
|
|
376
|
-
`
|
|
558
|
+
`Empty zone on "${trimmed}" \u2014 expected a city, IANA zone, or UTC offset.`
|
|
377
559
|
);
|
|
378
560
|
continue;
|
|
379
561
|
}
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
562
|
+
let entry;
|
|
563
|
+
const fixedOffset = parseFixedOffset(anchor);
|
|
564
|
+
if (fixedOffset !== null) {
|
|
565
|
+
const offLabel = formatOffsetLabel(fixedOffset);
|
|
566
|
+
entry = {
|
|
567
|
+
kind: "fixed",
|
|
568
|
+
place: offLabel,
|
|
569
|
+
zone: offLabel,
|
|
570
|
+
fixedOffsetMin: fixedOffset,
|
|
571
|
+
label: label ?? offLabel,
|
|
572
|
+
lat: null,
|
|
573
|
+
lon: null,
|
|
574
|
+
color: color ?? null,
|
|
575
|
+
lineNumber: lineNum
|
|
576
|
+
};
|
|
577
|
+
} else if (anchor.includes("/")) {
|
|
578
|
+
if (!isValidZone(anchor)) {
|
|
579
|
+
warn(
|
|
580
|
+
lineNum,
|
|
581
|
+
`Unknown IANA zone "${anchor}" \u2014 row skipped (e.g. America/New_York). Or give a UTC offset like UTC-5.`
|
|
582
|
+
);
|
|
583
|
+
continue;
|
|
584
|
+
}
|
|
585
|
+
const coords = coordsFor(anchor);
|
|
586
|
+
const place = zoneCity2(anchor);
|
|
587
|
+
entry = {
|
|
588
|
+
kind: "iana",
|
|
589
|
+
place,
|
|
590
|
+
zone: anchor,
|
|
591
|
+
fixedOffsetMin: null,
|
|
592
|
+
label: label ?? place,
|
|
593
|
+
lat: coords?.lat ?? null,
|
|
594
|
+
lon: coords?.lon ?? null,
|
|
595
|
+
color: color ?? null,
|
|
596
|
+
lineNumber: lineNum
|
|
597
|
+
};
|
|
598
|
+
} else {
|
|
599
|
+
const res = resolvePlace(anchor);
|
|
600
|
+
if (res.kind === "ambiguous") {
|
|
601
|
+
const list = res.candidates.map((c) => c.zone).join(", ");
|
|
602
|
+
softError(
|
|
603
|
+
lineNum,
|
|
604
|
+
`"${anchor}" is ambiguous \u2014 did you mean ${list}? Use the IANA zone to disambiguate.`
|
|
605
|
+
);
|
|
606
|
+
continue;
|
|
607
|
+
}
|
|
608
|
+
if (res.kind === "unknown") {
|
|
609
|
+
const hint = res.suggestion ? ` Did you mean ${res.suggestion}?` : " Give a city, an IANA zone (America/New_York), or a UTC offset (UTC-5).";
|
|
610
|
+
warn(lineNum, `Unknown place "${anchor}" \u2014 row skipped.${hint}`);
|
|
611
|
+
continue;
|
|
612
|
+
}
|
|
613
|
+
const coords = coordsFor(res.zone);
|
|
614
|
+
entry = {
|
|
615
|
+
kind: "iana",
|
|
616
|
+
place: res.city,
|
|
617
|
+
zone: res.zone,
|
|
618
|
+
fixedOffsetMin: null,
|
|
619
|
+
label: label ?? res.city,
|
|
620
|
+
lat: coords?.lat ?? null,
|
|
621
|
+
lon: coords?.lon ?? null,
|
|
622
|
+
color: color ?? null,
|
|
623
|
+
lineNumber: lineNum
|
|
624
|
+
};
|
|
625
|
+
}
|
|
626
|
+
entries.push(entry);
|
|
390
627
|
}
|
|
391
628
|
if (!headerParsed) {
|
|
392
629
|
return fail(0, 'Expected "clock [Title]" as the first line.');
|
|
@@ -408,13 +645,16 @@ function parseClock(content, palette) {
|
|
|
408
645
|
if (entries.length === 0) {
|
|
409
646
|
softError(
|
|
410
647
|
result.titleLineNumber ?? 1,
|
|
411
|
-
'A clock needs at least one
|
|
648
|
+
'A clock needs at least one zone row (e.g. "London as UK team").'
|
|
412
649
|
);
|
|
413
650
|
}
|
|
414
651
|
return result;
|
|
415
652
|
}
|
|
416
653
|
|
|
417
654
|
export {
|
|
655
|
+
normalizePlace,
|
|
656
|
+
resolvePlace,
|
|
657
|
+
searchZones,
|
|
418
658
|
parseClock
|
|
419
659
|
};
|
|
420
|
-
//# sourceMappingURL=chunk-
|
|
660
|
+
//# sourceMappingURL=chunk-FY5MSZAP.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
} from "./chunk-PDKUANDZ.js";
|
|
5
5
|
import {
|
|
6
6
|
layoutGraph
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-HFMYN6N2.js";
|
|
8
8
|
import {
|
|
9
9
|
appendArrowheadMarkers
|
|
10
10
|
} from "./chunk-LP7EC4MI.js";
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
renderNoteBadge,
|
|
15
15
|
renderNoteBox,
|
|
16
16
|
renderNoteConnector
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-J7TLCB2Q.js";
|
|
18
18
|
import {
|
|
19
19
|
EDGE_STROKE_WIDTH,
|
|
20
20
|
NODE_STROKE_WIDTH
|
|
@@ -32,14 +32,17 @@ import {
|
|
|
32
32
|
} from "./chunk-6KFWC4CO.js";
|
|
33
33
|
import {
|
|
34
34
|
measureText
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-WCT3NYCV.js";
|
|
36
36
|
import {
|
|
37
37
|
contrastText,
|
|
38
38
|
shapeFill
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-WBM7ZNDI.js";
|
|
40
40
|
import {
|
|
41
41
|
parseFlowchart
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-6EJITS44.js";
|
|
43
|
+
import {
|
|
44
|
+
fillModeFromOptions
|
|
45
|
+
} from "./chunk-BRENJ2BQ.js";
|
|
43
46
|
|
|
44
47
|
// src/graph/flowchart-renderer.ts
|
|
45
48
|
import * as d3Selection from "d3-selection";
|
|
@@ -71,28 +74,34 @@ function shapeDefaultColor(shape, palette, isEndTerminal, colorOff) {
|
|
|
71
74
|
return palette.colors.blue;
|
|
72
75
|
}
|
|
73
76
|
}
|
|
74
|
-
function nodeFill(palette, isDark, shape, nodeColor, isEndTerminal, colorOff,
|
|
77
|
+
function nodeFill(palette, isDark, shape, nodeColor, isEndTerminal, colorOff, fillMode) {
|
|
75
78
|
const color = nodeColor ?? shapeDefaultColor(shape, palette, isEndTerminal, colorOff);
|
|
76
|
-
return shapeFill(palette, color, isDark, {
|
|
77
|
-
...solid !== void 0 && { solid }
|
|
78
|
-
});
|
|
79
|
+
return shapeFill(palette, color, isDark, { mode: fillMode });
|
|
79
80
|
}
|
|
80
81
|
function nodeStroke(palette, shape, nodeColor, isEndTerminal, colorOff) {
|
|
81
82
|
return nodeColor ?? shapeDefaultColor(shape, palette, isEndTerminal, colorOff);
|
|
82
83
|
}
|
|
83
|
-
function renderTerminal(g, node, palette, isDark, isEnd, colorOff,
|
|
84
|
+
function renderTerminal(g, node, palette, isDark, isEnd, colorOff, fillMode, sNodeStrokeWidth = NODE_STROKE_WIDTH) {
|
|
84
85
|
const w = node.width;
|
|
85
86
|
const h = node.height;
|
|
86
87
|
const rx = h / 2;
|
|
87
88
|
g.append("rect").attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h).attr("rx", rx).attr("ry", rx).attr(
|
|
88
89
|
"fill",
|
|
89
|
-
nodeFill(
|
|
90
|
+
nodeFill(
|
|
91
|
+
palette,
|
|
92
|
+
isDark,
|
|
93
|
+
node.shape,
|
|
94
|
+
node.color,
|
|
95
|
+
isEnd,
|
|
96
|
+
colorOff,
|
|
97
|
+
fillMode
|
|
98
|
+
)
|
|
90
99
|
).attr(
|
|
91
100
|
"stroke",
|
|
92
101
|
nodeStroke(palette, node.shape, node.color, isEnd, colorOff)
|
|
93
102
|
).attr("stroke-width", sNodeStrokeWidth);
|
|
94
103
|
}
|
|
95
|
-
function renderProcess(g, node, palette, isDark, colorOff,
|
|
104
|
+
function renderProcess(g, node, palette, isDark, colorOff, fillMode, sNodeStrokeWidth = NODE_STROKE_WIDTH) {
|
|
96
105
|
const w = node.width;
|
|
97
106
|
const h = node.height;
|
|
98
107
|
g.append("rect").attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h).attr("rx", 3).attr("ry", 3).attr(
|
|
@@ -104,14 +113,14 @@ function renderProcess(g, node, palette, isDark, colorOff, solid, sNodeStrokeWid
|
|
|
104
113
|
node.color,
|
|
105
114
|
void 0,
|
|
106
115
|
colorOff,
|
|
107
|
-
|
|
116
|
+
fillMode
|
|
108
117
|
)
|
|
109
118
|
).attr(
|
|
110
119
|
"stroke",
|
|
111
120
|
nodeStroke(palette, node.shape, node.color, void 0, colorOff)
|
|
112
121
|
).attr("stroke-width", sNodeStrokeWidth);
|
|
113
122
|
}
|
|
114
|
-
function renderDecision(g, node, palette, isDark, colorOff,
|
|
123
|
+
function renderDecision(g, node, palette, isDark, colorOff, fillMode, sNodeStrokeWidth = NODE_STROKE_WIDTH) {
|
|
115
124
|
const w = node.width / 2;
|
|
116
125
|
const h = node.height / 2;
|
|
117
126
|
const points = [`${0},${-h}`, `${w},${0}`, `${0},${h}`, `${-w},${0}`].join(
|
|
@@ -126,14 +135,14 @@ function renderDecision(g, node, palette, isDark, colorOff, solid, sNodeStrokeWi
|
|
|
126
135
|
node.color,
|
|
127
136
|
void 0,
|
|
128
137
|
colorOff,
|
|
129
|
-
|
|
138
|
+
fillMode
|
|
130
139
|
)
|
|
131
140
|
).attr(
|
|
132
141
|
"stroke",
|
|
133
142
|
nodeStroke(palette, node.shape, node.color, void 0, colorOff)
|
|
134
143
|
).attr("stroke-width", sNodeStrokeWidth);
|
|
135
144
|
}
|
|
136
|
-
function renderIO(g, node, palette, isDark, colorOff,
|
|
145
|
+
function renderIO(g, node, palette, isDark, colorOff, fillMode, sNodeStrokeWidth = NODE_STROKE_WIDTH, sIoSkew = IO_SKEW) {
|
|
137
146
|
const w = node.width / 2;
|
|
138
147
|
const h = node.height / 2;
|
|
139
148
|
const sk = sIoSkew;
|
|
@@ -152,14 +161,14 @@ function renderIO(g, node, palette, isDark, colorOff, solid, sNodeStrokeWidth =
|
|
|
152
161
|
node.color,
|
|
153
162
|
void 0,
|
|
154
163
|
colorOff,
|
|
155
|
-
|
|
164
|
+
fillMode
|
|
156
165
|
)
|
|
157
166
|
).attr(
|
|
158
167
|
"stroke",
|
|
159
168
|
nodeStroke(palette, node.shape, node.color, void 0, colorOff)
|
|
160
169
|
).attr("stroke-width", sNodeStrokeWidth);
|
|
161
170
|
}
|
|
162
|
-
function renderSubroutine(g, node, palette, isDark, colorOff,
|
|
171
|
+
function renderSubroutine(g, node, palette, isDark, colorOff, fillMode, sNodeStrokeWidth = NODE_STROKE_WIDTH, sSubroutineInset = SUBROUTINE_INSET) {
|
|
163
172
|
const w = node.width;
|
|
164
173
|
const h = node.height;
|
|
165
174
|
const s = nodeStroke(palette, node.shape, node.color, void 0, colorOff);
|
|
@@ -170,14 +179,14 @@ function renderSubroutine(g, node, palette, isDark, colorOff, solid, sNodeStroke
|
|
|
170
179
|
node.color,
|
|
171
180
|
void 0,
|
|
172
181
|
colorOff,
|
|
173
|
-
|
|
182
|
+
fillMode
|
|
174
183
|
);
|
|
175
|
-
const innerStroke = solid ? contrastText(fill, palette.textOnFillLight, palette.textOnFillDark) : s;
|
|
184
|
+
const innerStroke = fillMode === "solid" ? contrastText(fill, palette.textOnFillLight, palette.textOnFillDark) : s;
|
|
176
185
|
g.append("rect").attr("x", -w / 2).attr("y", -h / 2).attr("width", w).attr("height", h).attr("rx", 3).attr("ry", 3).attr("fill", fill).attr("stroke", s).attr("stroke-width", sNodeStrokeWidth);
|
|
177
186
|
g.append("line").attr("x1", -w / 2 + sSubroutineInset).attr("y1", -h / 2).attr("x2", -w / 2 + sSubroutineInset).attr("y2", h / 2).attr("stroke", innerStroke).attr("stroke-width", sNodeStrokeWidth);
|
|
178
187
|
g.append("line").attr("x1", w / 2 - sSubroutineInset).attr("y1", -h / 2).attr("x2", w / 2 - sSubroutineInset).attr("y2", h / 2).attr("stroke", innerStroke).attr("stroke-width", sNodeStrokeWidth);
|
|
179
188
|
}
|
|
180
|
-
function renderDocument(g, node, palette, isDark, colorOff,
|
|
189
|
+
function renderDocument(g, node, palette, isDark, colorOff, fillMode, sNodeStrokeWidth = NODE_STROKE_WIDTH, sDocWaveHeight = DOC_WAVE_HEIGHT) {
|
|
181
190
|
const w = node.width;
|
|
182
191
|
const h = node.height;
|
|
183
192
|
const waveH = sDocWaveHeight;
|
|
@@ -201,14 +210,14 @@ function renderDocument(g, node, palette, isDark, colorOff, solid, sNodeStrokeWi
|
|
|
201
210
|
node.color,
|
|
202
211
|
void 0,
|
|
203
212
|
colorOff,
|
|
204
|
-
|
|
213
|
+
fillMode
|
|
205
214
|
)
|
|
206
215
|
).attr(
|
|
207
216
|
"stroke",
|
|
208
217
|
nodeStroke(palette, node.shape, node.color, void 0, colorOff)
|
|
209
218
|
).attr("stroke-width", sNodeStrokeWidth);
|
|
210
219
|
}
|
|
211
|
-
function renderNodeShape(g, node, palette, isDark, endTerminalIds, colorOff,
|
|
220
|
+
function renderNodeShape(g, node, palette, isDark, endTerminalIds, colorOff, fillMode, sNodeStrokeWidth = NODE_STROKE_WIDTH, sIoSkew = IO_SKEW, sSubroutineInset = SUBROUTINE_INSET, sDocWaveHeight = DOC_WAVE_HEIGHT) {
|
|
212
221
|
switch (node.shape) {
|
|
213
222
|
case "terminal":
|
|
214
223
|
renderTerminal(
|
|
@@ -218,7 +227,7 @@ function renderNodeShape(g, node, palette, isDark, endTerminalIds, colorOff, sol
|
|
|
218
227
|
isDark,
|
|
219
228
|
endTerminalIds.has(node.id),
|
|
220
229
|
colorOff,
|
|
221
|
-
|
|
230
|
+
fillMode,
|
|
222
231
|
sNodeStrokeWidth
|
|
223
232
|
);
|
|
224
233
|
break;
|
|
@@ -229,7 +238,7 @@ function renderNodeShape(g, node, palette, isDark, endTerminalIds, colorOff, sol
|
|
|
229
238
|
palette,
|
|
230
239
|
isDark,
|
|
231
240
|
colorOff,
|
|
232
|
-
|
|
241
|
+
fillMode,
|
|
233
242
|
sNodeStrokeWidth
|
|
234
243
|
);
|
|
235
244
|
break;
|
|
@@ -240,7 +249,7 @@ function renderNodeShape(g, node, palette, isDark, endTerminalIds, colorOff, sol
|
|
|
240
249
|
palette,
|
|
241
250
|
isDark,
|
|
242
251
|
colorOff,
|
|
243
|
-
|
|
252
|
+
fillMode,
|
|
244
253
|
sNodeStrokeWidth
|
|
245
254
|
);
|
|
246
255
|
break;
|
|
@@ -251,7 +260,7 @@ function renderNodeShape(g, node, palette, isDark, endTerminalIds, colorOff, sol
|
|
|
251
260
|
palette,
|
|
252
261
|
isDark,
|
|
253
262
|
colorOff,
|
|
254
|
-
|
|
263
|
+
fillMode,
|
|
255
264
|
sNodeStrokeWidth,
|
|
256
265
|
sIoSkew
|
|
257
266
|
);
|
|
@@ -263,7 +272,7 @@ function renderNodeShape(g, node, palette, isDark, endTerminalIds, colorOff, sol
|
|
|
263
272
|
palette,
|
|
264
273
|
isDark,
|
|
265
274
|
colorOff,
|
|
266
|
-
|
|
275
|
+
fillMode,
|
|
267
276
|
sNodeStrokeWidth,
|
|
268
277
|
sSubroutineInset
|
|
269
278
|
);
|
|
@@ -275,7 +284,7 @@ function renderNodeShape(g, node, palette, isDark, endTerminalIds, colorOff, sol
|
|
|
275
284
|
palette,
|
|
276
285
|
isDark,
|
|
277
286
|
colorOff,
|
|
278
|
-
|
|
287
|
+
fillMode,
|
|
279
288
|
sNodeStrokeWidth,
|
|
280
289
|
sDocWaveHeight
|
|
281
290
|
);
|
|
@@ -408,7 +417,7 @@ function renderFlowchart(container, graph, layout, palette, isDark, onClickItem,
|
|
|
408
417
|
}
|
|
409
418
|
}
|
|
410
419
|
const colorOff = graph.options?.["color"] === "off";
|
|
411
|
-
const
|
|
420
|
+
const fillMode = fillModeFromOptions(graph.options ?? {});
|
|
412
421
|
const noNotes = graph.options?.["no-notes"] === "on";
|
|
413
422
|
for (const node of layout.nodes) {
|
|
414
423
|
const nodeG = contentG.append("g").attr("transform", `translate(${node.x}, ${node.y})`).attr("class", "fc-node").attr("data-line-number", String(node.lineNumber)).attr("data-node-id", node.id);
|
|
@@ -425,7 +434,7 @@ function renderFlowchart(container, graph, layout, palette, isDark, onClickItem,
|
|
|
425
434
|
isDark,
|
|
426
435
|
endTerminalIds,
|
|
427
436
|
colorOff,
|
|
428
|
-
|
|
437
|
+
fillMode,
|
|
429
438
|
sNodeStrokeWidth,
|
|
430
439
|
sIoSkew,
|
|
431
440
|
sSubroutineInset,
|
|
@@ -439,7 +448,7 @@ function renderFlowchart(container, graph, layout, palette, isDark, onClickItem,
|
|
|
439
448
|
node.color,
|
|
440
449
|
isEnd,
|
|
441
450
|
colorOff,
|
|
442
|
-
|
|
451
|
+
fillMode
|
|
443
452
|
);
|
|
444
453
|
nodeG.append("text").attr("x", 0).attr("y", 0).attr("text-anchor", "middle").attr("dominant-baseline", "central").attr(
|
|
445
454
|
"fill",
|
|
@@ -527,4 +536,4 @@ export {
|
|
|
527
536
|
renderFlowchart,
|
|
528
537
|
renderFlowchartForExport
|
|
529
538
|
};
|
|
530
|
-
//# sourceMappingURL=chunk-
|
|
539
|
+
//# sourceMappingURL=chunk-GCYTI3DE.js.map
|