@diagrammo/dgmo 0.46.0 → 0.48.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/dist/advanced.d.ts +3 -855
- package/dist/advanced.js +541 -70107
- package/dist/analyzer-UYKBXAKR.js +15 -0
- package/dist/auto.js +1 -1
- package/dist/auto.mjs +1 -1
- package/dist/block.js +83 -69417
- package/dist/calculator-LDYQCDDY.js +11 -0
- package/dist/charts-d3-QOZHKTCT.js +25 -0
- package/dist/chunk-2DXMZRWJ.js +800 -0
- package/dist/chunk-2LACINWN.js +786 -0
- package/dist/chunk-33LCUH4H.js +893 -0
- package/dist/chunk-3CIOJ5YJ.js +35 -0
- package/dist/chunk-3HDBAXF5.js +86 -0
- package/dist/chunk-3JLKYGBQ.js +290 -0
- package/dist/chunk-3MQQNXPD.js +415 -0
- package/dist/chunk-3R5POCTZ.js +967 -0
- package/dist/chunk-3SMGIJDD.js +112 -0
- package/dist/chunk-44CM72SQ.js +409 -0
- package/dist/chunk-4GRI7MEB.js +1604 -0
- package/dist/chunk-4OHACBGX.js +606 -0
- package/dist/chunk-5DH3KYFH.js +21 -0
- package/dist/chunk-5MLYVTYM.js +76 -0
- package/dist/chunk-5QXL4NYS.js +553 -0
- package/dist/chunk-5WRI5ZAA.js +31 -0
- package/dist/chunk-6EK55ART.js +117 -0
- package/dist/chunk-6FZYCKXB.js +2065 -0
- package/dist/chunk-6HO5ZTXK.js +277 -0
- package/dist/chunk-6KFWC4CO.js +7 -0
- package/dist/chunk-6MTWIQVO.js +121 -0
- package/dist/chunk-6NYWYNBI.js +329 -0
- package/dist/chunk-6SM5NJQH.js +620 -0
- package/dist/chunk-725LDASD.js +422 -0
- package/dist/chunk-76OWZ3BA.js +130 -0
- package/{src/block/parser.ts → dist/chunk-7JEGTRLD.js} +100 -189
- package/dist/chunk-A44USUV7.js +923 -0
- package/dist/chunk-A4GOY3PE.js +25 -0
- package/dist/chunk-A4VFQH5G.js +251 -0
- package/dist/chunk-AELOBFW5.js +375 -0
- package/dist/chunk-AN2MOO5T.js +522 -0
- package/dist/chunk-BMR4CIEO.js +41 -0
- package/dist/chunk-BS7SV7C3.js +51 -0
- package/dist/chunk-BUPDIHML.js +613 -0
- package/dist/chunk-BUVJFRPY.js +887 -0
- package/dist/chunk-C3Z4DX3V.js +112 -0
- package/dist/chunk-CI2G3OEB.js +1818 -0
- package/dist/chunk-CKNVO24D.js +54 -0
- package/dist/chunk-CUVHQHZ7.js +391 -0
- package/dist/chunk-CXK4DZH3.js +114 -0
- package/dist/{editor.cjs → chunk-DKEPS5LH.js} +14 -225
- package/dist/chunk-DU7W62N5.js +487 -0
- package/dist/chunk-DZAQBW35.js +751 -0
- package/dist/chunk-EB6FPQUP.js +316 -0
- package/dist/chunk-EMS2SK26.js +376 -0
- package/dist/chunk-ERLBPDGU.js +510 -0
- package/dist/chunk-EVCVDTXE.js +732 -0
- package/dist/chunk-FCIIHT24.js +384 -0
- package/dist/chunk-FFUN5D66.js +97 -0
- package/dist/chunk-FITOLXSX.js +714 -0
- package/dist/chunk-FMDSF3OV.js +68 -0
- package/dist/chunk-FNB3PNGF.js +410 -0
- package/dist/chunk-G2H74XJZ.js +2104 -0
- package/dist/chunk-GMR5MFHJ.js +339 -0
- package/dist/chunk-H6PI3KJT.js +305 -0
- package/dist/chunk-I46X5VUA.js +59 -0
- package/dist/chunk-I5IGB56C.js +255 -0
- package/dist/chunk-IH6ZMVQ5.js +3950 -0
- package/dist/chunk-IJZFN3HM.js +463 -0
- package/dist/chunk-IPWPWM6R.js +3079 -0
- package/dist/chunk-IYULMRBE.js +23 -0
- package/dist/chunk-IZMRON6C.js +167 -0
- package/dist/chunk-J5FIXQRT.js +813 -0
- package/dist/chunk-JED6ZDEE.js +73 -0
- package/dist/chunk-JEUJOX5X.js +136 -0
- package/dist/chunk-JM4LEPY3.js +436 -0
- package/dist/chunk-L3UHP6TD.js +101 -0
- package/dist/chunk-L66GEFB6.js +524 -0
- package/dist/chunk-LIOHW36Z.js +469 -0
- package/dist/chunk-LP7EC4MI.js +16 -0
- package/dist/chunk-MITI6NOL.js +548 -0
- package/dist/chunk-MO5YHHMQ.js +168 -0
- package/dist/chunk-MZSBFAPJ.js +885 -0
- package/dist/chunk-NNAAJVBU.js +9 -0
- package/dist/chunk-NOTA6TEI.js +47 -0
- package/dist/chunk-NURGB5Z4.js +335 -0
- package/dist/chunk-NX4EQS3U.js +1062 -0
- package/dist/chunk-NXMESY4J.js +1 -0
- package/dist/chunk-OJR3MQYV.js +1458 -0
- package/dist/chunk-OURHMODR.js +454 -0
- package/dist/chunk-P235SVAH.js +1057 -0
- package/dist/chunk-P4RH4OSP.js +1038 -0
- package/dist/chunk-P6T66CCZ.js +226 -0
- package/dist/chunk-PBAHEPLQ.js +223 -0
- package/dist/chunk-PBHE5UG6.js +1530 -0
- package/dist/chunk-PDKUANDZ.js +35 -0
- package/dist/chunk-PWIHZ6NJ.js +296 -0
- package/{src/c4/layout.ts → dist/chunk-QEBUY5NY.js} +384 -1140
- package/dist/chunk-QLCCJEJI.js +253 -0
- package/dist/chunk-QOOUC2J5.js +52 -0
- package/dist/chunk-QYTPPDAO.js +402 -0
- package/dist/chunk-R3XI2VC7.js +801 -0
- package/dist/chunk-RCERWOJR.js +154 -0
- package/dist/chunk-RJE5JTVK.js +362 -0
- package/dist/chunk-RTLBSQ3G.js +1155 -0
- package/dist/chunk-RUNNI6VE.js +448 -0
- package/dist/chunk-RVMRZAPB.js +354 -0
- package/dist/chunk-RYEGFMUO.js +955 -0
- package/dist/chunk-RZCF2VVM.js +528 -0
- package/dist/chunk-SML67VPV.js +1025 -0
- package/dist/chunk-SQ7IY53Q.js +44 -0
- package/dist/chunk-SQAG3UXH.js +161 -0
- package/dist/chunk-SRTU6HMQ.js +1851 -0
- package/dist/chunk-T2OE3YQB.js +550 -0
- package/dist/chunk-T3UBLACL.js +299 -0
- package/dist/chunk-TLVIHFRO.js +296 -0
- package/dist/chunk-TYS6CSS5.js +52 -0
- package/dist/chunk-U6EQI3U6.js +130 -0
- package/dist/chunk-UJ4FJLBF.js +86 -0
- package/dist/chunk-ULOEATBZ.js +347 -0
- package/dist/chunk-UNCCZ3NU.js +127 -0
- package/dist/chunk-USZW2HHU.js +197 -0
- package/dist/chunk-UWN33VNX.js +1610 -0
- package/dist/chunk-UZ7EZW3B.js +40 -0
- package/dist/chunk-VOKGH627.js +37 -0
- package/dist/chunk-WBRZJOEC.js +204 -0
- package/dist/chunk-WCSOJFU3.js +380 -0
- package/dist/chunk-WCT3NYCV.js +160 -0
- package/dist/chunk-WVAJFAIA.js +529 -0
- package/dist/chunk-X5LCYCL5.js +394 -0
- package/dist/chunk-XAKEUMEJ.js +1256 -0
- package/dist/chunk-Y2ZE3MSG.js +590 -0
- package/dist/chunk-Y3J7VR52.js +646 -0
- package/dist/chunk-Y5QGVTVC.js +33 -0
- package/dist/chunk-YAA6IID3.js +548 -0
- package/dist/chunk-YGJTDXVR.js +692 -0
- package/{src/utils/time-ticks.ts → dist/chunk-YRYKTYMQ.js} +45 -112
- package/dist/chunk-YYVTBZZC.js +61 -0
- package/dist/chunk-Z5CGSFJB.js +647 -0
- package/{src/gantt/calculator.ts → dist/chunk-Z72XRXD4.js} +236 -428
- package/dist/chunk-ZGR7ULFJ.js +978 -0
- package/dist/chunk-ZJEL4H2R.js +851 -0
- package/dist/chunk-ZO27FGJS.js +554 -0
- package/dist/collapse-CLPJD2RL.js +11 -0
- package/dist/collapse-SLINJQW6.js +9 -0
- package/dist/collapse-ZWUFFCK2.js +9 -0
- package/dist/compute-G55RG53N.js +8 -0
- package/dist/dgmo-router-DZCIDUO5.js +73 -0
- package/dist/dimensions-J3FHIMJ6.js +22 -0
- package/dist/element.js +1 -1
- package/dist/element.mjs +1 -1
- package/dist/flowchart-parser-ZNSKIBVR.js +21 -0
- package/dist/flowchart-renderer-ZAEOL4DX.js +35 -0
- package/dist/index.d.ts +3 -469
- package/dist/index.js +137 -69685
- package/dist/layout-46N4JJYK.js +17 -0
- package/dist/layout-5RA6QWR6.js +26 -0
- package/dist/layout-5T6RH5M6.js +14 -0
- package/dist/layout-7QXCNOVS.js +13 -0
- package/dist/layout-EE6GE46Y.js +17 -0
- package/dist/layout-G23F7LDH.js +9 -0
- package/dist/layout-HRBZPFCN.js +23 -0
- package/dist/layout-HWDSRX5E.js +20 -0
- package/dist/layout-HYZPWAK5.js +18 -0
- package/dist/layout-N76NR4ZO.js +19 -0
- package/dist/layout-OB3RI63S.js +14 -0
- package/dist/layout-S2QBYSK2.js +15 -0
- package/dist/layout-UM5F4DJB.js +15 -0
- package/dist/layout-search-OYV77HHS.js +1655 -0
- package/dist/load-data-EHDDZ5ZS.js +8 -0
- package/dist/palettes-PRJ2RI6D.js +56 -0
- package/dist/parser-2MFP2H2E.js +11 -0
- package/dist/parser-3STE62GB.js +21 -0
- package/dist/parser-4FL2CMDG.js +18 -0
- package/dist/parser-4OGOBJJ4.js +13 -0
- package/dist/parser-6BTRLKRZ.js +15 -0
- package/dist/parser-AQETEVRW.js +21 -0
- package/dist/parser-CFZD5IBL.js +12 -0
- package/dist/parser-FUSKFGZN.js +16 -0
- package/dist/parser-I6KXEYFK.js +13 -0
- package/dist/parser-IXSZZQHY.js +18 -0
- package/dist/parser-JAL2HD4I.js +13 -0
- package/dist/parser-KNSQSKQO.js +20 -0
- package/dist/parser-N5O4IHUN.js +13 -0
- package/dist/parser-NGU3ETO6.js +16 -0
- package/dist/parser-NRAI6O25.js +19 -0
- package/dist/parser-O5J4VBII.js +11 -0
- package/dist/parser-OV7NOBW6.js +21 -0
- package/dist/parser-PQ3POX45.js +23 -0
- package/dist/parser-TFZFBVWN.js +11 -0
- package/dist/parser-TRTHDFPP.js +18 -0
- package/dist/parser-VQP2UJ6W.js +11 -0
- package/dist/parser-XDVELHRK.js +13 -0
- package/dist/parser-XKRP7QKP.js +11 -0
- package/dist/parser-Y6WTBU76.js +14 -0
- package/dist/parser-ZSDPZYQP.js +12 -0
- package/dist/renderer-2XQQQ6QR.js +28 -0
- package/dist/renderer-5NDVNDAZ.js +26 -0
- package/dist/renderer-6EEZHMH4.js +26 -0
- package/dist/renderer-6W5462RB.js +43 -0
- package/dist/renderer-7MVLWWQD.js +22 -0
- package/dist/renderer-AWWAF6XD.js +33 -0
- package/dist/renderer-BYCNMBF7.js +34 -0
- package/dist/renderer-CLJHQPBJ.js +29 -0
- package/dist/renderer-GHPZMFU2.js +15 -0
- package/dist/renderer-JGBKUCZD.js +16 -0
- package/dist/renderer-KQB7UGDS.js +19 -0
- package/dist/renderer-PGX2TKVS.js +24 -0
- package/dist/renderer-QIWVHWZO.js +15 -0
- package/dist/renderer-RPOA5YPZ.js +35 -0
- package/dist/renderer-SMIBCRVB.js +24 -0
- package/dist/renderer-T7YKC5VP.js +28 -0
- package/dist/renderer-TOCOVLHS.js +37 -0
- package/dist/renderer-UWA5XS74.js +39 -0
- package/dist/renderer-VACVQYML.js +25 -0
- package/dist/renderer-W4M6QLIJ.js +37 -0
- package/dist/renderer-WZRREQ2P.js +23 -0
- package/dist/renderer-YY2OSF6E.js +27 -0
- package/dist/renderer-Z7I3W2PP.js +24 -0
- package/dist/renderer-ZGNTUWC4.js +22 -0
- package/dist/renderer-ZTR3DER3.js +19 -0
- package/dist/renderer-radial-C32GPJQ7.js +21 -0
- package/dist/resolver-NOAA7ID7.js +13 -0
- package/dist/state-collapse-HCGD6IVJ.js +8 -0
- package/dist/state-parser-Z2V23ATR.js +18 -0
- package/dist/state-renderer-RFYHSP4K.js +34 -0
- package/dist/themes-1-CuKpeH.d.ts +908 -0
- package/package.json +19 -70
- package/dist/advanced.cjs +0 -71648
- package/dist/advanced.d.cts +0 -6571
- package/dist/auto.cjs +0 -70648
- package/dist/auto.d.cts +0 -54
- package/dist/block.cjs +0 -70208
- package/dist/block.d.cts +0 -115
- package/dist/editor.d.cts +0 -26
- package/dist/element.cjs +0 -70530
- package/dist/element.d.cts +0 -62
- package/dist/highlight.cjs +0 -852
- package/dist/highlight.d.cts +0 -49
- package/dist/index.cjs +0 -70491
- package/dist/index.d.cts +0 -626
- package/dist/pert.cjs +0 -325
- package/dist/pert.d.cts +0 -559
- package/src/advanced.ts +0 -873
- package/src/arc/parser.ts +0 -15
- package/src/arc/renderer.ts +0 -633
- package/src/auto/index.ts +0 -621
- package/src/auto/shared.ts +0 -370
- package/src/auto/styles.ts +0 -73
- package/src/block/layout.ts +0 -198
- package/src/block/renderer.ts +0 -484
- package/src/block/types.ts +0 -67
- package/src/boxes-and-lines/collapse.ts +0 -96
- package/src/boxes-and-lines/focus.ts +0 -257
- package/src/boxes-and-lines/label-placement.ts +0 -339
- package/src/boxes-and-lines/layout-grouped.ts +0 -912
- package/src/boxes-and-lines/layout-layered.ts +0 -722
- package/src/boxes-and-lines/layout-search.ts +0 -1678
- package/src/boxes-and-lines/layout.ts +0 -398
- package/src/boxes-and-lines/parser.ts +0 -1181
- package/src/boxes-and-lines/renderer.ts +0 -1465
- package/src/boxes-and-lines/types.ts +0 -66
- package/src/c4/parser.ts +0 -1158
- package/src/c4/renderer.ts +0 -2008
- package/src/c4/types.ts +0 -89
- package/src/chart-type-registry.ts +0 -529
- package/src/chart-types.ts +0 -225
- package/src/chart.ts +0 -685
- package/src/charts-d3/bar.ts +0 -338
- package/src/charts-d3/chord.ts +0 -140
- package/src/charts-d3/function.ts +0 -147
- package/src/charts-d3/funnel.ts +0 -104
- package/src/charts-d3/heatmap.ts +0 -145
- package/src/charts-d3/index.ts +0 -337
- package/src/charts-d3/interactions.ts +0 -477
- package/src/charts-d3/line.ts +0 -344
- package/src/charts-d3/mount.ts +0 -151
- package/src/charts-d3/pie.ts +0 -117
- package/src/charts-d3/polar.ts +0 -89
- package/src/charts-d3/radar.ts +0 -0
- package/src/charts-d3/sankey.ts +0 -0
- package/src/charts-d3/scatter.ts +0 -185
- package/src/charts-d3/shared.ts +0 -208
- package/src/class/layout.ts +0 -326
- package/src/class/parser.ts +0 -635
- package/src/class/renderer.ts +0 -793
- package/src/class/types.ts +0 -58
- package/src/cli-banner.ts +0 -106
- package/src/cli.ts +0 -1080
- package/src/colors-diagnostics.ts +0 -35
- package/src/colors.ts +0 -379
- package/src/completion-types.ts +0 -27
- package/src/completion.ts +0 -2668
- package/src/cycle/layout.ts +0 -1026
- package/src/cycle/parser.ts +0 -387
- package/src/cycle/renderer.ts +0 -653
- package/src/cycle/types.ts +0 -101
- package/src/d3.ts +0 -1434
- package/src/data-chart-parser.ts +0 -1007
- package/src/dgmo-router.ts +0 -296
- package/src/diagnostics-registry.ts +0 -108
- package/src/diagnostics.ts +0 -0
- package/src/dimensions.ts +0 -20
- package/src/directives-registry.ts +0 -396
- package/src/editor/dgmo.grammar +0 -76
- package/src/editor/dgmo.grammar.d.ts +0 -2
- package/src/editor/dgmo.grammar.js +0 -18
- package/src/editor/dgmo.grammar.terms.d.ts +0 -5
- package/src/editor/dgmo.grammar.terms.js +0 -35
- package/src/editor/highlight-api.ts +0 -596
- package/src/editor/highlight.ts +0 -36
- package/src/editor/index.ts +0 -27
- package/src/editor/keywords.ts +0 -128
- package/src/editor/tokens.ts +0 -30
- package/src/element/index.ts +0 -432
- package/src/embed/css.ts +0 -312
- package/src/embed/escape.ts +0 -15
- package/src/embed/index.ts +0 -280
- package/src/er/classify.ts +0 -228
- package/src/er/layout.ts +0 -530
- package/src/er/parser.ts +0 -750
- package/src/er/renderer.ts +0 -725
- package/src/er/types.ts +0 -52
- package/src/error-card.ts +0 -269
- package/src/event-line/diagnostics.ts +0 -117
- package/src/event-line/parser.ts +0 -643
- package/src/event-line/renderer.ts +0 -1742
- package/src/event-line/types.ts +0 -74
- package/src/fonts.ts +0 -3
- package/src/gantt/parser.ts +0 -1641
- package/src/gantt/renderer.ts +0 -3787
- package/src/gantt/resolver.ts +0 -172
- package/src/gantt/types.ts +0 -206
- package/src/graph/diagnostics.ts +0 -64
- package/src/graph/edge-spline.ts +0 -29
- package/src/graph/flowchart-parser.ts +0 -759
- package/src/graph/flowchart-renderer.ts +0 -817
- package/src/graph/layout.ts +0 -472
- package/src/graph/notes.ts +0 -21
- package/src/graph/state-collapse.ts +0 -78
- package/src/graph/state-parser.ts +0 -574
- package/src/graph/state-renderer.ts +0 -653
- package/src/graph/types.ts +0 -65
- package/src/index.ts +0 -261
- package/src/infra/compute.ts +0 -1385
- package/src/infra/layout.ts +0 -888
- package/src/infra/parser.ts +0 -1234
- package/src/infra/renderer.ts +0 -2534
- package/src/infra/roles.ts +0 -75
- package/src/infra/types.ts +0 -216
- package/src/infra/validation.ts +0 -201
- package/src/journey-map/layout.ts +0 -490
- package/src/journey-map/parser.ts +0 -557
- package/src/journey-map/renderer.ts +0 -1580
- package/src/journey-map/types.ts +0 -47
- package/src/kanban/mutations.ts +0 -175
- package/src/kanban/parser.ts +0 -509
- package/src/kanban/renderer.ts +0 -1449
- package/src/kanban/types.ts +0 -39
- package/src/label-layout.ts +0 -368
- package/src/map/colorize.ts +0 -54
- package/src/map/completion.ts +0 -316
- package/src/map/context-labels.ts +0 -609
- package/src/map/data/PROVENANCE.json +0 -1
- package/src/map/data/README.md +0 -40
- package/src/map/data/airport-collisions.json +0 -1
- package/src/map/data/airports.json +0 -1
- package/src/map/data/gazetteer.json +0 -1
- package/src/map/data/lakes.json +0 -1
- package/src/map/data/mountain-ranges.json +0 -1
- package/src/map/data/na-lakes.json +0 -1
- package/src/map/data/na-land.json +0 -1
- package/src/map/data/region-names.json +0 -1
- package/src/map/data/rivers.json +0 -1
- package/src/map/data/types.ts +0 -121
- package/src/map/data/us-states.json +0 -1
- package/src/map/data/water-bodies.json +0 -1
- package/src/map/data/world-coarse.json +0 -1
- package/src/map/data/world-detail.json +0 -1
- package/src/map/diagnostics.ts +0 -134
- package/src/map/dimensions.ts +0 -150
- package/src/map/geo-query.ts +0 -295
- package/src/map/geo.ts +0 -438
- package/src/map/invert.ts +0 -111
- package/src/map/layout.ts +0 -5069
- package/src/map/legend-band.ts +0 -127
- package/src/map/load-data.ts +0 -186
- package/src/map/parser.ts +0 -783
- package/src/map/renderer.ts +0 -1445
- package/src/map/resolved-types.ts +0 -160
- package/src/map/resolver.ts +0 -1146
- package/src/map/types.ts +0 -194
- package/src/mindmap/collapse.ts +0 -67
- package/src/mindmap/layout.ts +0 -649
- package/src/mindmap/parser.ts +0 -430
- package/src/mindmap/renderer.ts +0 -637
- package/src/mindmap/text-wrap.ts +0 -218
- package/src/mindmap/types.ts +0 -56
- package/src/org/collapse.ts +0 -151
- package/src/org/layout.ts +0 -1262
- package/src/org/parser.ts +0 -519
- package/src/org/renderer.ts +0 -866
- package/src/org/resolver.ts +0 -636
- package/src/palettes/atlas.ts +0 -77
- package/src/palettes/blueprint.ts +0 -73
- package/src/palettes/catppuccin.ts +0 -84
- package/src/palettes/color-utils.ts +0 -443
- package/src/palettes/index.ts +0 -67
- package/src/palettes/nord.ts +0 -67
- package/src/palettes/registry.ts +0 -114
- package/src/palettes/slate.ts +0 -73
- package/src/palettes/tidewater.ts +0 -73
- package/src/palettes/tokyo-night.ts +0 -86
- package/src/palettes/types.ts +0 -88
- package/src/pert/analyzer.ts +0 -1183
- package/src/pert/diagnostics.ts +0 -110
- package/src/pert/index.ts +0 -43
- package/src/pert/internal.ts +0 -252
- package/src/pert/layout.ts +0 -971
- package/src/pert/monte-carlo.ts +0 -446
- package/src/pert/parser.ts +0 -1606
- package/src/pert/renderer.ts +0 -4009
- package/src/pert/share-normalize.ts +0 -62
- package/src/pert/types.ts +0 -604
- package/src/pyramid/parser.ts +0 -185
- package/src/pyramid/renderer.ts +0 -768
- package/src/pyramid/types.ts +0 -28
- package/src/quadrant/parser.ts +0 -18
- package/src/quadrant/renderer.ts +0 -638
- package/src/raci/diagnostics.ts +0 -213
- package/src/raci/index.ts +0 -23
- package/src/raci/mutations.ts +0 -321
- package/src/raci/parser.ts +0 -699
- package/src/raci/renderer.ts +0 -1627
- package/src/raci/types.ts +0 -82
- package/src/raci/variants.ts +0 -320
- package/src/render.ts +0 -268
- package/src/ring/parser.ts +0 -212
- package/src/ring/renderer.ts +0 -490
- package/src/ring/types.ts +0 -27
- package/src/sequence/collapse.ts +0 -174
- package/src/sequence/parser.ts +0 -1596
- package/src/sequence/participant-inference.ts +0 -152
- package/src/sequence/renderer.ts +0 -3168
- package/src/sequence/tag-resolution.ts +0 -164
- package/src/sharing.ts +0 -211
- package/src/sitemap/collapse.ts +0 -100
- package/src/sitemap/layout.ts +0 -925
- package/src/sitemap/parser.ts +0 -755
- package/src/sitemap/renderer.ts +0 -828
- package/src/sitemap/types.ts +0 -42
- package/src/slope/parser.ts +0 -18
- package/src/slope/renderer.ts +0 -378
- package/src/swimlane/diagnostics.ts +0 -94
- package/src/swimlane/layout.ts +0 -597
- package/src/swimlane/parser.ts +0 -613
- package/src/swimlane/renderer.ts +0 -681
- package/src/swimlane/types.ts +0 -151
- package/src/tech-radar/interactive.ts +0 -1129
- package/src/tech-radar/layout.ts +0 -197
- package/src/tech-radar/parser.ts +0 -436
- package/src/tech-radar/renderer.ts +0 -1239
- package/src/tech-radar/shared.ts +0 -151
- package/src/tech-radar/types.ts +0 -86
- package/src/themes.ts +0 -22
- package/src/timeline/parser.ts +0 -472
- package/src/timeline/renderer.ts +0 -3024
- package/src/timeline/types.ts +0 -33
- package/src/timeline/viz-parser.ts +0 -21
- package/src/treemap/diagnostics.ts +0 -62
- package/src/treemap/layout-radial.ts +0 -233
- package/src/treemap/layout.ts +0 -189
- package/src/treemap/parser.ts +0 -463
- package/src/treemap/renderer-radial.ts +0 -438
- package/src/treemap/renderer.ts +0 -572
- package/src/treemap/treemap-shared.ts +0 -309
- package/src/treemap/types.ts +0 -60
- package/src/utils/arrow-markers.ts +0 -51
- package/src/utils/arrows-diagnostics.ts +0 -62
- package/src/utils/arrows.ts +0 -227
- package/src/utils/brand.ts +0 -61
- package/src/utils/card.ts +0 -183
- package/src/utils/collapse-engine/tree-edges.ts +0 -115
- package/src/utils/collapse-engine/tree.ts +0 -117
- package/src/utils/d3-helpers.ts +0 -219
- package/src/utils/d3-types.ts +0 -9
- package/src/utils/description-helpers.ts +0 -38
- package/src/utils/duration.ts +0 -312
- package/src/utils/export-container.ts +0 -41
- package/src/utils/expr-eval.ts +0 -27
- package/src/utils/fit-canvas.ts +0 -64
- package/src/utils/hover-styles.ts +0 -673
- package/src/utils/inline-markdown.ts +0 -96
- package/src/utils/legend-constants.ts +0 -48
- package/src/utils/legend-d3.ts +0 -618
- package/src/utils/legend-integration.ts +0 -107
- package/src/utils/legend-layout.ts +0 -776
- package/src/utils/legend-svg.ts +0 -214
- package/src/utils/legend-types.ts +0 -272
- package/src/utils/name-normalize.ts +0 -163
- package/src/utils/note-box/constants.ts +0 -25
- package/src/utils/note-box/index.ts +0 -11
- package/src/utils/note-box/metrics.ts +0 -90
- package/src/utils/note-box/svg.ts +0 -331
- package/src/utils/notes/bounds.ts +0 -30
- package/src/utils/notes/build.ts +0 -131
- package/src/utils/notes/index.ts +0 -18
- package/src/utils/notes/model.ts +0 -19
- package/src/utils/notes/parse.ts +0 -131
- package/src/utils/notes/place.ts +0 -177
- package/src/utils/notes/resolve.ts +0 -88
- package/src/utils/number-format.ts +0 -36
- package/src/utils/parsing.ts +0 -953
- package/src/utils/reserved-key-registry.ts +0 -239
- package/src/utils/safe-href.ts +0 -38
- package/src/utils/scaling.ts +0 -97
- package/src/utils/svg-embed.ts +0 -251
- package/src/utils/tag-groups.ts +0 -607
- package/src/utils/text-measure.ts +0 -122
- package/src/utils/title-constants.ts +0 -24
- package/src/utils/visual-conventions.ts +0 -61
- package/src/utils/wrapped-desc.ts +0 -87
- package/src/venn/parser.ts +0 -18
- package/src/venn/renderer.ts +0 -1047
- package/src/version-control/diagnostics.ts +0 -67
- package/src/version-control/parser.ts +0 -544
- package/src/version-control/renderer.ts +0 -724
- package/src/version-control/types.ts +0 -100
- package/src/visualizations/parse.ts +0 -1560
- package/src/visualizations/types.ts +0 -262
- package/src/wireframe/layout.ts +0 -479
- package/src/wireframe/parser.ts +0 -1114
- package/src/wireframe/renderer.ts +0 -1318
- package/src/wireframe/types.ts +0 -110
- package/src/wordcloud/parser.ts +0 -18
- package/src/wordcloud/renderer.ts +0 -357
package/src/gantt/resolver.ts
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
// ============================================================
|
|
2
|
-
// Gantt Dot-Notation Task Resolver
|
|
3
|
-
// ============================================================
|
|
4
|
-
//
|
|
5
|
-
// Resolves `-> TargetName` dependency references to actual tasks.
|
|
6
|
-
// Implements greedy right-to-left dot splitting for disambiguation.
|
|
7
|
-
|
|
8
|
-
import type { GanttTask, GanttNode } from './types';
|
|
9
|
-
import { normalizeName } from '../utils/name-normalize';
|
|
10
|
-
|
|
11
|
-
interface ResolverMatch {
|
|
12
|
-
task: GanttTask;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
interface ResolverError {
|
|
16
|
-
kind: 'not_found' | 'ambiguous';
|
|
17
|
-
message: string;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
type ResolverResult = ResolverMatch | ResolverError;
|
|
21
|
-
|
|
22
|
-
export function isResolverError(r: ResolverResult): r is ResolverError {
|
|
23
|
-
return 'kind' in r;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Collect all tasks from a tree of GanttNodes, annotating each with its
|
|
28
|
-
* fully qualified group path (e.g., ["Backend", "API"]).
|
|
29
|
-
*/
|
|
30
|
-
export function collectTasks(nodes: readonly GanttNode[]): GanttTask[] {
|
|
31
|
-
const tasks: GanttTask[] = [];
|
|
32
|
-
function walk(children: readonly GanttNode[]) {
|
|
33
|
-
for (const node of children) {
|
|
34
|
-
if (node.kind === 'task') {
|
|
35
|
-
tasks.push(node);
|
|
36
|
-
} else if (node.kind === 'group' || node.kind === 'parallel') {
|
|
37
|
-
walk(node.children);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
walk(nodes);
|
|
42
|
-
return tasks;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Resolve a dependency target name to a task.
|
|
47
|
-
*
|
|
48
|
-
* Resolution strategy (greedy right-to-left):
|
|
49
|
-
* 1. Try the full string as an exact task label match
|
|
50
|
-
* 2. If no match, split at the last dot → group prefix + task label
|
|
51
|
-
* 3. Recurse for deeper paths
|
|
52
|
-
*
|
|
53
|
-
* Returns a match or an error with helpful suggestions.
|
|
54
|
-
*/
|
|
55
|
-
/** Strip bracket syntax: `[Backend].API Design` → `Backend.API Design` */
|
|
56
|
-
const BRACKET_GROUP_RE = /^\[(.+?)\]\.(.+)$/;
|
|
57
|
-
|
|
58
|
-
/** Disambiguation message when a name matches more than one task. */
|
|
59
|
-
function ambiguousTaskMessage(trimmed: string, suggestions: string[]): string {
|
|
60
|
-
return `Multiple tasks match "${trimmed}". Did you mean ${suggestions
|
|
61
|
-
.map((s) => `\`${s}\``)
|
|
62
|
-
.join(' or ')}?`;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export function resolveTaskName(
|
|
66
|
-
name: string,
|
|
67
|
-
allTasks: GanttTask[]
|
|
68
|
-
): ResolverResult {
|
|
69
|
-
let trimmed = name.trim();
|
|
70
|
-
|
|
71
|
-
// Strip bracket syntax — `[Group].Task` is sugar for `Group.Task`
|
|
72
|
-
const bracketMatch = trimmed.match(BRACKET_GROUP_RE);
|
|
73
|
-
if (bracketMatch) {
|
|
74
|
-
trimmed = `${bracketMatch[1]}.${bracketMatch[2]}`;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
const normTrimmed = normalizeName(trimmed);
|
|
78
|
-
|
|
79
|
-
// 1. Try exact label match (no dots involved). Forgiving normalization
|
|
80
|
-
// (case-insensitive, whitespace-collapsed) per the universal name handling
|
|
81
|
-
// spec — `myTask` and `MyTask` resolve to the same task.
|
|
82
|
-
const exactMatches = allTasks.filter(
|
|
83
|
-
(t) => normalizeName(t.label) === normTrimmed
|
|
84
|
-
);
|
|
85
|
-
if (exactMatches.length === 1) {
|
|
86
|
-
// In-bounds by length === 1 check.
|
|
87
|
-
return { task: exactMatches[0]! };
|
|
88
|
-
}
|
|
89
|
-
if (exactMatches.length > 1) {
|
|
90
|
-
// Multiple tasks with same name — need disambiguation
|
|
91
|
-
const suggestions = exactMatches.map((t) =>
|
|
92
|
-
t.groupPath.length > 0 ? `${t.groupPath.join('.')}.${t.label}` : t.label
|
|
93
|
-
);
|
|
94
|
-
return {
|
|
95
|
-
kind: 'ambiguous',
|
|
96
|
-
message: ambiguousTaskMessage(trimmed, suggestions),
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
// 2. Try dot-notation: split at last dot (greedy right-to-left)
|
|
101
|
-
const lastDotIdx = trimmed.lastIndexOf('.');
|
|
102
|
-
if (lastDotIdx > 0) {
|
|
103
|
-
const groupPrefix = trimmed.substring(0, lastDotIdx);
|
|
104
|
-
const taskLabel = trimmed.substring(lastDotIdx + 1);
|
|
105
|
-
|
|
106
|
-
// Find tasks whose label matches and whose group path ends with the prefix
|
|
107
|
-
const normTaskLabel = normalizeName(taskLabel);
|
|
108
|
-
const matches = allTasks.filter((t) => {
|
|
109
|
-
if (normalizeName(t.label) !== normTaskLabel) return false;
|
|
110
|
-
return matchesGroupPath(t.groupPath, groupPrefix);
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
if (matches.length === 1) {
|
|
114
|
-
// In-bounds by length === 1 check.
|
|
115
|
-
return { task: matches[0]! };
|
|
116
|
-
}
|
|
117
|
-
if (matches.length > 1) {
|
|
118
|
-
const suggestions = matches.map((t) =>
|
|
119
|
-
t.groupPath.length > 0 ? `${t.groupPath.join('.')}.${t.label}` : t.label
|
|
120
|
-
);
|
|
121
|
-
return {
|
|
122
|
-
kind: 'ambiguous',
|
|
123
|
-
message: ambiguousTaskMessage(trimmed, suggestions),
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
// Try further left splits (for dots in group names)
|
|
128
|
-
// e.g., "U.S. Operations.Task A" — last dot split tried "U.S. Operations" + "Task A"
|
|
129
|
-
// Now try "U.S." + "Operations.Task A" — but that doesn't help.
|
|
130
|
-
// The greedy approach handles this: "U.S. Operations" is the group name.
|
|
131
|
-
// If the group name itself contains dots, the last dot split already tried the correct split.
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
// 3. No match found.
|
|
135
|
-
// (Case-insensitive fallback removed — the primary match is now itself
|
|
136
|
-
// case- and whitespace-insensitive via normalizeName.)
|
|
137
|
-
|
|
138
|
-
return {
|
|
139
|
-
kind: 'not_found',
|
|
140
|
-
message: `No task found with name "${trimmed}".`,
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Check if a task's group path matches a dot-separated prefix.
|
|
146
|
-
* The prefix can be a single group name or a dot-separated path.
|
|
147
|
-
* Matching is done from the end of the group path.
|
|
148
|
-
*
|
|
149
|
-
* Example: groupPath = ["Backend", "API"], prefix = "Backend" → true
|
|
150
|
-
* Example: groupPath = ["Backend", "API"], prefix = "API" → true
|
|
151
|
-
* Example: groupPath = ["Backend", "API"], prefix = "Backend.API" → true
|
|
152
|
-
*/
|
|
153
|
-
function matchesGroupPath(
|
|
154
|
-
groupPath: readonly string[],
|
|
155
|
-
prefix: string
|
|
156
|
-
): boolean {
|
|
157
|
-
const normPrefix = normalizeName(prefix);
|
|
158
|
-
// Simple case: prefix is a single segment
|
|
159
|
-
if (!prefix.includes('.')) {
|
|
160
|
-
return groupPath.some((g) => normalizeName(g) === normPrefix);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// Multi-segment prefix: try matching from the start of the group path
|
|
164
|
-
const pathStr = groupPath.map((g) => normalizeName(g)).join('.');
|
|
165
|
-
// Check if the full prefix matches any contiguous section of the path
|
|
166
|
-
return (
|
|
167
|
-
pathStr === normPrefix ||
|
|
168
|
-
pathStr.endsWith('.' + normPrefix) ||
|
|
169
|
-
pathStr.startsWith(normPrefix + '.') ||
|
|
170
|
-
pathStr.includes('.' + normPrefix + '.')
|
|
171
|
-
);
|
|
172
|
-
}
|
package/src/gantt/types.ts
DELETED
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
// ============================================================
|
|
2
|
-
// Gantt Chart Types
|
|
3
|
-
// ============================================================
|
|
4
|
-
|
|
5
|
-
import type { DgmoError } from '../diagnostics';
|
|
6
|
-
import type { TagGroup } from '../utils/tag-groups';
|
|
7
|
-
|
|
8
|
-
// ── Duration ────────────────────────────────────────────────
|
|
9
|
-
|
|
10
|
-
/** Calendar units: d (days), w (weeks), m (months), q (quarters), y (years), h (hours), min (minutes). bd = business days. s = sprints. */
|
|
11
|
-
export type DurationUnit =
|
|
12
|
-
| 'd'
|
|
13
|
-
| 'bd'
|
|
14
|
-
| 'w'
|
|
15
|
-
| 'm'
|
|
16
|
-
| 'q'
|
|
17
|
-
| 'y'
|
|
18
|
-
| 'h'
|
|
19
|
-
| 'min'
|
|
20
|
-
| 's';
|
|
21
|
-
|
|
22
|
-
export interface Duration {
|
|
23
|
-
amount: number;
|
|
24
|
-
unit: DurationUnit;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface Offset {
|
|
28
|
-
duration: Duration;
|
|
29
|
-
direction: 1 | -1;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// ── Parsed Elements ─────────────────────────────────────────
|
|
33
|
-
|
|
34
|
-
export interface GanttDependency {
|
|
35
|
-
readonly targetName: string; // raw string from `-> X` or `-> Group.X`
|
|
36
|
-
readonly label?: string; // optional label from `-label-> X` syntax
|
|
37
|
-
readonly offset?: Offset;
|
|
38
|
-
readonly lineNumber: number;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
export interface GanttTask {
|
|
42
|
-
readonly id: string; // unique, generated during parse (e.g. "group:taskIdx")
|
|
43
|
-
readonly label: string;
|
|
44
|
-
readonly duration: Duration | null; // null for explicit-date-only tasks
|
|
45
|
-
readonly explicitStart?: string; // YYYY-MM-DD from `2024-01-15 -> 30d:` or `2024-01-15:`
|
|
46
|
-
readonly uncertain: boolean;
|
|
47
|
-
readonly progress: number | null; // 0-100 or null
|
|
48
|
-
readonly offset?: Offset; // task-level offset: shifts start date forward (+) or backward (-)
|
|
49
|
-
readonly isDefinition: boolean; // true = inline definition (has duration), false = reference-only
|
|
50
|
-
readonly dependencies: readonly GanttDependency[];
|
|
51
|
-
readonly metadata: Readonly<Record<string, string>>; // tag values from pipe metadata
|
|
52
|
-
readonly lineNumber: number;
|
|
53
|
-
readonly groupPath: readonly string[]; // e.g. ["Backend", "API"] for nested groups
|
|
54
|
-
readonly comment?: string; // accumulated // comment lines
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export interface GanttGroup {
|
|
58
|
-
readonly name: string;
|
|
59
|
-
readonly color: string | null;
|
|
60
|
-
readonly metadata: Readonly<Record<string, string>>;
|
|
61
|
-
readonly offset?: Offset; // group-level offset: floor for all bare tasks inside
|
|
62
|
-
readonly collapsed?: boolean; // `[Group] collapsed: true` view-state marker
|
|
63
|
-
readonly lineNumber: number;
|
|
64
|
-
readonly children: readonly GanttNode[];
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export interface GanttParallelBlock {
|
|
68
|
-
readonly kind: 'parallel';
|
|
69
|
-
readonly lineNumber: number;
|
|
70
|
-
readonly children: readonly GanttNode[];
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/** A node in the gantt tree: either a task, group, or parallel block. */
|
|
74
|
-
export type GanttNode =
|
|
75
|
-
| ({ kind: 'task' } & GanttTask)
|
|
76
|
-
| ({ kind: 'group' } & GanttGroup)
|
|
77
|
-
| GanttParallelBlock;
|
|
78
|
-
|
|
79
|
-
// ── Holidays ────────────────────────────────────────────────
|
|
80
|
-
|
|
81
|
-
export type Weekday = 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun';
|
|
82
|
-
|
|
83
|
-
export interface HolidayDate {
|
|
84
|
-
readonly date: string; // YYYY-MM-DD
|
|
85
|
-
readonly label: string;
|
|
86
|
-
readonly lineNumber: number;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
export interface HolidayRange {
|
|
90
|
-
readonly startDate: string; // YYYY-MM-DD
|
|
91
|
-
readonly endDate: string; // YYYY-MM-DD
|
|
92
|
-
readonly label: string;
|
|
93
|
-
readonly lineNumber: number;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
export interface GanttHolidays {
|
|
97
|
-
readonly dates: readonly HolidayDate[];
|
|
98
|
-
readonly ranges: readonly HolidayRange[];
|
|
99
|
-
readonly workweek: readonly Weekday[]; // default: ['mon', 'tue', 'wed', 'thu', 'fri']
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// ── Eras & Markers (reuse timeline types) ───────────────────
|
|
103
|
-
|
|
104
|
-
export interface GanttEra {
|
|
105
|
-
readonly startDate: string; // YYYY-MM-DD or '' when using offset form
|
|
106
|
-
readonly endDate: string; // YYYY-MM-DD or '' when using offset form
|
|
107
|
-
readonly label: string;
|
|
108
|
-
readonly color: string | null;
|
|
109
|
-
readonly lineNumber: number;
|
|
110
|
-
readonly offsetStart?: Offset; // +Nunit form (resolved to date via chart start)
|
|
111
|
-
readonly offsetEnd?: Offset; // +Nunit form (resolved to date via chart start)
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
export interface GanttMarker {
|
|
115
|
-
readonly date: string; // YYYY-MM-DD or '' when using offset form
|
|
116
|
-
readonly label: string;
|
|
117
|
-
readonly color: string | null;
|
|
118
|
-
readonly lineNumber: number;
|
|
119
|
-
readonly offsetDate?: Offset; // +Nunit form (resolved to date via chart start)
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// ── Chart Options ───────────────────────────────────────────
|
|
123
|
-
|
|
124
|
-
export interface GanttOptions {
|
|
125
|
-
start: string | null; // YYYY[-MM[-DD]] or null for relative timeline
|
|
126
|
-
title: string | null;
|
|
127
|
-
titleLineNumber: number | null;
|
|
128
|
-
todayMarker: 'off' | 'on' | string; // 'on' = current date, string = YYYY-MM-DD
|
|
129
|
-
criticalPath: boolean;
|
|
130
|
-
dependencies: boolean;
|
|
131
|
-
sort: 'default' | 'tag';
|
|
132
|
-
defaultSwimlaneGroup: string | null; // tag group name from `sort: tag:Team`
|
|
133
|
-
activeTag: string | null; // from `active-tag GroupName` or `active-tag none`
|
|
134
|
-
/** Line numbers for option/block keywords — maps key to source line */
|
|
135
|
-
optionLineNumbers: Record<string, number>;
|
|
136
|
-
holidaysLineNumber: number | null;
|
|
137
|
-
// ── Sprint options ─────────────────────────────────────────
|
|
138
|
-
sprintLength: Duration | null; // default { amount: 2, unit: 'w' } when sprint mode active
|
|
139
|
-
sprintNumber: number | null; // which sprint the chart starts at (default 1)
|
|
140
|
-
sprintStart: string | null; // YYYY-MM-DD — date that sprintNumber begins
|
|
141
|
-
sprintMode: 'auto' | 'explicit' | null; // auto = activated by `s` unit, explicit = sprint-* option present
|
|
142
|
-
/** When true, render bars at full intent saturation instead of the canonical 25% tint. */
|
|
143
|
-
solidFill: boolean;
|
|
144
|
-
/** When true, the renderer suppresses the chart banner title. */
|
|
145
|
-
noTitle: boolean;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
// ── Parsed Result ───────────────────────────────────────────
|
|
149
|
-
|
|
150
|
-
export interface ParsedGantt {
|
|
151
|
-
readonly nodes: readonly GanttNode[]; // top-level tree (groups, tasks, parallel blocks)
|
|
152
|
-
readonly holidays: GanttHolidays;
|
|
153
|
-
readonly tagGroups: readonly TagGroup[];
|
|
154
|
-
readonly eras: readonly GanttEra[];
|
|
155
|
-
readonly markers: readonly GanttMarker[];
|
|
156
|
-
readonly options: GanttOptions;
|
|
157
|
-
readonly diagnostics: readonly DgmoError[];
|
|
158
|
-
readonly error: string | null;
|
|
159
|
-
readonly syntaxMode: 'new' | 'legacy';
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
// ── Resolved Schedule ───────────────────────────────────────
|
|
163
|
-
|
|
164
|
-
export interface ResolvedTask {
|
|
165
|
-
task: GanttTask;
|
|
166
|
-
startDate: Date;
|
|
167
|
-
endDate: Date;
|
|
168
|
-
isCriticalPath: boolean;
|
|
169
|
-
isUncertain: boolean; // true if task.uncertain OR any predecessor is uncertain
|
|
170
|
-
isMilestone: boolean;
|
|
171
|
-
groupPath: string[];
|
|
172
|
-
effectiveMetadata: Record<string, string>; // merged with inherited tags
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
export interface ResolvedGroup {
|
|
176
|
-
name: string;
|
|
177
|
-
color: string | null;
|
|
178
|
-
metadata: Record<string, string>;
|
|
179
|
-
startDate: Date;
|
|
180
|
-
endDate: Date;
|
|
181
|
-
progress: number | null; // aggregate progress (weighted average)
|
|
182
|
-
lineNumber: number;
|
|
183
|
-
depth: number;
|
|
184
|
-
collapsed?: boolean; // seeded from the `[Group] collapsed: true` source marker
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
export interface ResolvedSprint {
|
|
188
|
-
number: number;
|
|
189
|
-
startDate: Date;
|
|
190
|
-
endDate: Date;
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
export interface ResolvedSchedule {
|
|
194
|
-
tasks: ResolvedTask[];
|
|
195
|
-
groups: ResolvedGroup[];
|
|
196
|
-
startDate: Date;
|
|
197
|
-
endDate: Date;
|
|
198
|
-
holidays: GanttHolidays;
|
|
199
|
-
tagGroups: TagGroup[];
|
|
200
|
-
eras: GanttEra[];
|
|
201
|
-
markers: GanttMarker[];
|
|
202
|
-
sprints: ResolvedSprint[];
|
|
203
|
-
options: GanttOptions;
|
|
204
|
-
diagnostics: DgmoError[];
|
|
205
|
-
error: string | null;
|
|
206
|
-
}
|
package/src/graph/diagnostics.ts
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import type { DiagnosticSpec } from '../diagnostics';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Declarative metadata for graph-family (infra + flowchart) diagnostics that
|
|
5
|
-
* are currently emitted as inline literals inside the parsers. Additive only —
|
|
6
|
-
* the parsers remain the source of truth for emission; this array mirrors the
|
|
7
|
-
* exact wording + the ACTUAL runtime severity for tooling/docs.
|
|
8
|
-
*/
|
|
9
|
-
export const GRAPH_DX = {
|
|
10
|
-
INFRA_NO_ENTRY: {
|
|
11
|
-
// src/infra/parser.ts:1094 — makeDgmoError(..., 'warning', 'W_INFRA_NO_ENTRY')
|
|
12
|
-
code: 'W_INFRA_NO_ENTRY',
|
|
13
|
-
severity: 'warning',
|
|
14
|
-
chartType: 'infra',
|
|
15
|
-
title: 'Infra diagram has no entry point',
|
|
16
|
-
message:
|
|
17
|
-
"Infra diagram has no 'internet' or 'edge' entry point — an infra diagram traces request traffic from an entry inward, so without one nothing carries traffic. Add an 'internet' or 'edge' node and route from it.",
|
|
18
|
-
hint: "Add an 'internet' or 'edge' node and draw an edge from it into the graph.",
|
|
19
|
-
example: `infra
|
|
20
|
-
gw
|
|
21
|
-
-> svc
|
|
22
|
-
svc
|
|
23
|
-
`,
|
|
24
|
-
},
|
|
25
|
-
INFRA_UNREACHABLE: {
|
|
26
|
-
// src/infra/parser.ts:1145 — makeDgmoError(..., 'warning', 'W_INFRA_UNREACHABLE')
|
|
27
|
-
code: 'W_INFRA_UNREACHABLE',
|
|
28
|
-
severity: 'warning',
|
|
29
|
-
chartType: 'infra',
|
|
30
|
-
title: 'Infra node is unreachable from an entry',
|
|
31
|
-
message: (p) =>
|
|
32
|
-
`'${String(p.label ?? '')}' is unreachable from an 'internet'/'edge' entry — no request traffic flows to it, so it's dead on an infra diagram. Connect it downstream of an entry, or remove it.`,
|
|
33
|
-
hint: 'Connect the node downstream of an entry, or remove it.',
|
|
34
|
-
example: `infra
|
|
35
|
-
|
|
36
|
-
edge
|
|
37
|
-
rps: 1000
|
|
38
|
-
-> A
|
|
39
|
-
|
|
40
|
-
A
|
|
41
|
-
latency-ms: 10
|
|
42
|
-
|
|
43
|
-
Orphan
|
|
44
|
-
latency-ms: 20
|
|
45
|
-
`,
|
|
46
|
-
},
|
|
47
|
-
FLOWCHART_NODE_SUFFIX: {
|
|
48
|
-
// src/graph/flowchart-parser.ts:329 — makeDgmoError(..., 'warning', 'W_FLOWCHART_NODE_SUFFIX')
|
|
49
|
-
code: 'W_FLOWCHART_NODE_SUFFIX',
|
|
50
|
-
severity: 'warning',
|
|
51
|
-
chartType: 'flowchart',
|
|
52
|
-
title: 'Unsupported text after a flowchart node shape',
|
|
53
|
-
message: (p) =>
|
|
54
|
-
`Ignored unsupported text after a node shape: "${String(
|
|
55
|
-
p.trailing ?? ''
|
|
56
|
-
)}". Flowcharts have no tag groups or node metadata; node colors are assigned automatically by shape (e.g. terminals green/red, decisions yellow). Remove the suffix.`,
|
|
57
|
-
hint: 'Remove the trailing tag/metadata suffix — flowchart node colors come from shape.',
|
|
58
|
-
example: `flowchart
|
|
59
|
-
(Start) -> (Denied) s: Denied
|
|
60
|
-
`,
|
|
61
|
-
},
|
|
62
|
-
} satisfies Record<string, DiagnosticSpec>;
|
|
63
|
-
|
|
64
|
-
export const GRAPH_DIAGNOSTICS: DiagnosticSpec[] = Object.values(GRAPH_DX);
|
package/src/graph/edge-spline.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
// ============================================================
|
|
2
|
-
// Edge spline — basis curve clamped to its endpoints
|
|
3
|
-
// ============================================================
|
|
4
|
-
|
|
5
|
-
import * as d3Shape from 'd3-shape';
|
|
6
|
-
|
|
7
|
-
const lineGenerator = d3Shape
|
|
8
|
-
.line<{ x: number; y: number }>()
|
|
9
|
-
.x((d) => d.x)
|
|
10
|
-
.y((d) => d.y)
|
|
11
|
-
.curve(d3Shape.curveBasis);
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Build a smooth edge path through dagre waypoints.
|
|
15
|
-
*
|
|
16
|
-
* `d3.curveBasis` already begins with `moveTo(P0)` and ends with
|
|
17
|
-
* `lineTo(Pn)`, so the path reaches both node borders and its final
|
|
18
|
-
* segment carries a real direction (correct `marker-end` orientation).
|
|
19
|
-
*
|
|
20
|
-
* NOTE: do NOT clamp by triplicating the endpoints — that appends
|
|
21
|
-
* zero-length trailing segments, and WebKit then computes a degenerate
|
|
22
|
-
* tangent for the arrowhead, rendering it at the wrong angle (resvg and
|
|
23
|
-
* Chromium tolerate it; WKWebView does not).
|
|
24
|
-
*/
|
|
25
|
-
export function edgeSplinePath(
|
|
26
|
-
points: ReadonlyArray<{ readonly x: number; readonly y: number }>
|
|
27
|
-
): string | null {
|
|
28
|
-
return lineGenerator(points as { x: number; y: number }[]);
|
|
29
|
-
}
|