@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
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
// ============================================================
|
|
2
|
-
// Sequence Diagram Tag Resolution
|
|
3
|
-
// ============================================================
|
|
4
|
-
//
|
|
5
|
-
// Resolves effective tag values for participants and messages
|
|
6
|
-
// using the priority chain: explicit > group > receiver-inherit > default > neutral
|
|
7
|
-
|
|
8
|
-
import { tagAttrKey } from '../utils/tag-groups';
|
|
9
|
-
import type {
|
|
10
|
-
ParsedSequenceDgmo,
|
|
11
|
-
SequenceParticipant,
|
|
12
|
-
SequenceMessage,
|
|
13
|
-
SequenceGroup,
|
|
14
|
-
} from './parser';
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Resolved tag values for all sequence elements.
|
|
18
|
-
* Used by the renderer to look up colors via tag group entries.
|
|
19
|
-
*/
|
|
20
|
-
export interface ResolvedTagMap {
|
|
21
|
-
/** participantId → resolved tag value for the active group */
|
|
22
|
-
participants: Map<string, string | undefined>;
|
|
23
|
-
/** message lineNumber → tag value from explicit metadata */
|
|
24
|
-
messages: Map<number, string | undefined>;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Propagate group-level tag metadata to contained participants.
|
|
29
|
-
* Only sets values for keys not already present on the participant.
|
|
30
|
-
*
|
|
31
|
-
* Mutates `participantMeta` in-place.
|
|
32
|
-
*/
|
|
33
|
-
export function propagateGroupTags(
|
|
34
|
-
participantMeta: Map<string, Record<string, string>>,
|
|
35
|
-
groups: ReadonlyArray<SequenceGroup>
|
|
36
|
-
): void {
|
|
37
|
-
for (const group of groups) {
|
|
38
|
-
if (!group.metadata) continue;
|
|
39
|
-
for (const id of group.participantIds) {
|
|
40
|
-
const meta = participantMeta.get(id);
|
|
41
|
-
if (!meta) continue;
|
|
42
|
-
for (const [key, value] of Object.entries(group.metadata)) {
|
|
43
|
-
if (!(key in meta)) {
|
|
44
|
-
meta[key] = value;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Compute receiver inheritance for a specific tag group key.
|
|
53
|
-
*
|
|
54
|
-
* For each participant without an explicit value for `groupKey`,
|
|
55
|
-
* collect values from all incoming tagged messages. If exactly one
|
|
56
|
-
* unique value exists, the participant inherits it.
|
|
57
|
-
*
|
|
58
|
-
* Returns a map of participantId → inherited value.
|
|
59
|
-
*/
|
|
60
|
-
export function computeReceiverInheritance(
|
|
61
|
-
participants: ReadonlyArray<SequenceParticipant>,
|
|
62
|
-
messages: ReadonlyArray<SequenceMessage>,
|
|
63
|
-
groupKey: string,
|
|
64
|
-
participantMeta: Map<string, Record<string, string>>
|
|
65
|
-
): Map<string, string> {
|
|
66
|
-
const inheritance = new Map<string, string>();
|
|
67
|
-
|
|
68
|
-
for (const p of participants) {
|
|
69
|
-
const meta = participantMeta.get(p.id);
|
|
70
|
-
// Skip if already has a value for this group key
|
|
71
|
-
if (meta?.[groupKey]) continue;
|
|
72
|
-
|
|
73
|
-
const incomingValues = new Set<string>();
|
|
74
|
-
for (const msg of messages) {
|
|
75
|
-
if (msg.to === p.id && msg.metadata?.[groupKey]) {
|
|
76
|
-
incomingValues.add(msg.metadata[groupKey]);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
if (incomingValues.size === 1) {
|
|
81
|
-
// In-bounds: size === 1 guarantees [0] exists.
|
|
82
|
-
inheritance.set(p.id, [...incomingValues][0]!);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return inheritance;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Full tag resolution for sequence diagrams.
|
|
91
|
-
*
|
|
92
|
-
* Priority: explicit metadata > group propagation > receiver inheritance > default > neutral
|
|
93
|
-
*
|
|
94
|
-
* Pure function — does not mutate `parsed`.
|
|
95
|
-
*/
|
|
96
|
-
export function resolveSequenceTags(
|
|
97
|
-
parsed: ParsedSequenceDgmo,
|
|
98
|
-
activeTagGroup: string
|
|
99
|
-
): ResolvedTagMap {
|
|
100
|
-
const result: ResolvedTagMap = {
|
|
101
|
-
participants: new Map(),
|
|
102
|
-
messages: new Map(),
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
// Find the active tag group
|
|
106
|
-
const group = parsed.tagGroups.find(
|
|
107
|
-
(g) => g.name.toLowerCase() === activeTagGroup.toLowerCase()
|
|
108
|
-
);
|
|
109
|
-
if (!group) {
|
|
110
|
-
// No matching group — all neutral
|
|
111
|
-
for (const p of parsed.participants) {
|
|
112
|
-
result.participants.set(p.id, undefined);
|
|
113
|
-
}
|
|
114
|
-
for (const m of parsed.messages) {
|
|
115
|
-
result.messages.set(m.lineNumber, undefined);
|
|
116
|
-
}
|
|
117
|
-
return result;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
const groupKey = tagAttrKey(group.name);
|
|
121
|
-
|
|
122
|
-
// Clone participant metadata (don't mutate parsed data)
|
|
123
|
-
const participantMeta = new Map<string, Record<string, string>>();
|
|
124
|
-
for (const p of parsed.participants) {
|
|
125
|
-
participantMeta.set(p.id, { ...(p.metadata || {}) });
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
// Step 1: Group propagation
|
|
129
|
-
propagateGroupTags(participantMeta, parsed.groups);
|
|
130
|
-
|
|
131
|
-
// Step 2: Receiver inheritance
|
|
132
|
-
const inherited = computeReceiverInheritance(
|
|
133
|
-
parsed.participants,
|
|
134
|
-
parsed.messages,
|
|
135
|
-
groupKey,
|
|
136
|
-
participantMeta
|
|
137
|
-
);
|
|
138
|
-
for (const [id, value] of inherited) {
|
|
139
|
-
const meta = participantMeta.get(id)!;
|
|
140
|
-
meta[groupKey] = value;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
// Step 3: Default value injection
|
|
144
|
-
if (group.defaultValue) {
|
|
145
|
-
for (const p of parsed.participants) {
|
|
146
|
-
const meta = participantMeta.get(p.id)!;
|
|
147
|
-
if (!(groupKey in meta)) {
|
|
148
|
-
meta[groupKey] = group.defaultValue;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
// Build result maps
|
|
154
|
-
for (const p of parsed.participants) {
|
|
155
|
-
const meta = participantMeta.get(p.id)!;
|
|
156
|
-
result.participants.set(p.id, meta[groupKey] || undefined);
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
for (const msg of parsed.messages) {
|
|
160
|
-
result.messages.set(msg.lineNumber, msg.metadata?.[groupKey] || undefined);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
return result;
|
|
164
|
-
}
|
package/src/sharing.ts
DELETED
|
@@ -1,211 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
compressToEncodedURIComponent,
|
|
3
|
-
decompressFromEncodedURIComponent,
|
|
4
|
-
} from 'lz-string';
|
|
5
|
-
|
|
6
|
-
const DEFAULT_BASE_URL = 'https://online.diagrammo.app';
|
|
7
|
-
const COMPRESSED_SIZE_LIMIT = 8192; // 8 KB
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Compact view state schema (ADR-6).
|
|
11
|
-
* All fields optional. Only non-default values are encoded.
|
|
12
|
-
* `tag: null` means "user chose none"; absent `tag` means "use DSL default" (ADR-5).
|
|
13
|
-
*/
|
|
14
|
-
export interface CompactViewState {
|
|
15
|
-
tag?: string | null; // active tag override (null = "none")
|
|
16
|
-
cs?: number[]; // collapsed sections (sequence line numbers)
|
|
17
|
-
cg?: string[]; // collapsed groups/nodes (IDs or names)
|
|
18
|
-
swim?: string | null; // swimlane tag group
|
|
19
|
-
cl?: string[]; // collapsed lanes
|
|
20
|
-
cc?: string[]; // collapsed columns (kanban)
|
|
21
|
-
rm?: string; // render mode override
|
|
22
|
-
htv?: Record<string, string[]>; // hidden tag values
|
|
23
|
-
ha?: string[]; // hidden attributes
|
|
24
|
-
sem?: boolean; // semantic colors (ER)
|
|
25
|
-
cm?: boolean; // compact meta (kanban)
|
|
26
|
-
c4l?: string; // C4 level
|
|
27
|
-
c4s?: string; // C4 system
|
|
28
|
-
c4c?: string; // C4 container
|
|
29
|
-
rps?: number; // RPS multiplier (infra)
|
|
30
|
-
spd?: number; // playback speed (infra)
|
|
31
|
-
io?: Record<string, number>; // instance overrides (infra)
|
|
32
|
-
hd?: boolean; // hide descriptions (mindmap)
|
|
33
|
-
cbd?: boolean; // color by depth (mindmap)
|
|
34
|
-
rq?: string; // radar quadrant focus (tech-radar position)
|
|
35
|
-
an?: boolean; // analysis layer on (PERT: tornado + S-curve)
|
|
36
|
-
fl?: boolean; // field-labels reference card included (PERT)
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export interface DecodedDiagramUrl {
|
|
40
|
-
dsl: string;
|
|
41
|
-
viewState: CompactViewState;
|
|
42
|
-
palette?: string;
|
|
43
|
-
theme?: 'light' | 'dark';
|
|
44
|
-
filename?: string;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
export interface EncodeDiagramUrlOptions {
|
|
48
|
-
baseUrl?: string;
|
|
49
|
-
viewState?: CompactViewState;
|
|
50
|
-
palette?: string;
|
|
51
|
-
theme?: 'light' | 'dark';
|
|
52
|
-
filename?: string;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export type EncodeDiagramUrlResult =
|
|
56
|
-
| { url: string; error?: undefined }
|
|
57
|
-
| {
|
|
58
|
-
url?: undefined;
|
|
59
|
-
error: 'too-large';
|
|
60
|
-
compressedSize: number;
|
|
61
|
-
limit: number;
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Encode a CompactViewState to a compressed string for URL embedding.
|
|
66
|
-
* Returns empty string if state has no keys (ADR-4).
|
|
67
|
-
*/
|
|
68
|
-
export function encodeViewState(state: CompactViewState): string {
|
|
69
|
-
const keys = Object.keys(state);
|
|
70
|
-
if (keys.length === 0) return '';
|
|
71
|
-
return compressToEncodedURIComponent(JSON.stringify(state));
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Decode a compressed view state string back to CompactViewState.
|
|
76
|
-
* Returns empty object on failure (no crash).
|
|
77
|
-
*/
|
|
78
|
-
export function decodeViewState(encoded: string): CompactViewState {
|
|
79
|
-
if (!encoded) return {};
|
|
80
|
-
try {
|
|
81
|
-
const json = decompressFromEncodedURIComponent(encoded);
|
|
82
|
-
if (!json) return {};
|
|
83
|
-
const parsed = JSON.parse(json);
|
|
84
|
-
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed))
|
|
85
|
-
return {};
|
|
86
|
-
return parsed as CompactViewState;
|
|
87
|
-
} catch {
|
|
88
|
-
return {};
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Compress a DGMO DSL string into a shareable URL.
|
|
94
|
-
* Returns `{ url }` on success, or `{ error: 'too-large', compressedSize, limit }` if the
|
|
95
|
-
* compressed payload exceeds the 8 KB limit.
|
|
96
|
-
*/
|
|
97
|
-
export function encodeDiagramUrl(
|
|
98
|
-
dsl: string,
|
|
99
|
-
options?: EncodeDiagramUrlOptions
|
|
100
|
-
): EncodeDiagramUrlResult {
|
|
101
|
-
const baseUrl = options?.baseUrl ?? DEFAULT_BASE_URL;
|
|
102
|
-
const compressed = compressToEncodedURIComponent(dsl);
|
|
103
|
-
const byteSize = new TextEncoder().encode(compressed).byteLength;
|
|
104
|
-
|
|
105
|
-
if (byteSize > COMPRESSED_SIZE_LIMIT) {
|
|
106
|
-
return {
|
|
107
|
-
error: 'too-large',
|
|
108
|
-
compressedSize: byteSize,
|
|
109
|
-
limit: COMPRESSED_SIZE_LIMIT,
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
let hash = `dgmo=${compressed}`;
|
|
114
|
-
|
|
115
|
-
// View state as single compressed blob (ADR-1)
|
|
116
|
-
if (options?.viewState) {
|
|
117
|
-
const vsEncoded = encodeViewState(options.viewState);
|
|
118
|
-
if (vsEncoded) {
|
|
119
|
-
hash += `&vs=${vsEncoded}`;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
// Palette and theme are app-level, kept as separate params
|
|
124
|
-
if (options?.palette && options.palette !== 'nord') {
|
|
125
|
-
hash += `&pal=${encodeURIComponent(options.palette)}`;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
if (options?.theme && options.theme !== 'dark') {
|
|
129
|
-
hash += `&th=${encodeURIComponent(options.theme)}`;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
if (options?.filename) {
|
|
133
|
-
hash += `&fn=${encodeURIComponent(options.filename)}`;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
// Encode in both query param AND hash fragment — some share mechanisms
|
|
137
|
-
// strip one or the other (iOS share sheet strips #, AirDrop strips ?)
|
|
138
|
-
return { url: `${baseUrl}?${hash}#${hash}` };
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
/**
|
|
142
|
-
* Decode a DGMO DSL string and view state from a URL query string or hash.
|
|
143
|
-
* Accepts any of:
|
|
144
|
-
* - `?dgmo=<payload>&vs=<state>`
|
|
145
|
-
* - `#dgmo=<payload>&vs=<state>` (backwards compat)
|
|
146
|
-
* - `dgmo=<payload>`
|
|
147
|
-
* - `<bare payload>`
|
|
148
|
-
*
|
|
149
|
-
* Returns `{ dsl, viewState }`. The DSL is empty string on invalid input.
|
|
150
|
-
*/
|
|
151
|
-
export function decodeDiagramUrl(hash: string): DecodedDiagramUrl {
|
|
152
|
-
const empty: DecodedDiagramUrl = { dsl: '', viewState: {} };
|
|
153
|
-
let filename: string | undefined;
|
|
154
|
-
let palette: string | undefined;
|
|
155
|
-
let theme: 'light' | 'dark' | undefined;
|
|
156
|
-
if (!hash) return empty;
|
|
157
|
-
|
|
158
|
-
let raw = hash;
|
|
159
|
-
|
|
160
|
-
// Strip leading '#' or '?'
|
|
161
|
-
if (raw.startsWith('#') || raw.startsWith('?')) {
|
|
162
|
-
raw = raw.slice(1);
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
// Split on '&' to separate dgmo payload from extra params.
|
|
166
|
-
// lz-string's compressToEncodedURIComponent alphabet (A-Za-z0-9+-$) never
|
|
167
|
-
// produces '&', so this split is safe.
|
|
168
|
-
const parts = raw.split('&');
|
|
169
|
-
// In-bounds: split() always returns at least one element.
|
|
170
|
-
let payload = parts[0]!;
|
|
171
|
-
|
|
172
|
-
// Parse extra params
|
|
173
|
-
let viewState: CompactViewState = {};
|
|
174
|
-
for (let i = 1; i < parts.length; i++) {
|
|
175
|
-
// In-bounds by loop guard (i < parts.length).
|
|
176
|
-
const part = parts[i]!;
|
|
177
|
-
const eq = part.indexOf('=');
|
|
178
|
-
if (eq === -1) continue;
|
|
179
|
-
const key = part.slice(0, eq);
|
|
180
|
-
const val = part.slice(eq + 1);
|
|
181
|
-
if (key === 'vs' && val) {
|
|
182
|
-
viewState = decodeViewState(val);
|
|
183
|
-
}
|
|
184
|
-
if (key === 'pal' && val) palette = decodeURIComponent(val);
|
|
185
|
-
if (key === 'th') {
|
|
186
|
-
const decoded = decodeURIComponent(val);
|
|
187
|
-
if (decoded === 'light' || decoded === 'dark') theme = decoded;
|
|
188
|
-
}
|
|
189
|
-
if (key === 'fn' && val) filename = decodeURIComponent(val);
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
// Strip 'dgmo=' prefix
|
|
193
|
-
if (payload.startsWith('dgmo=')) {
|
|
194
|
-
payload = payload.slice(5);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
const extras = {
|
|
198
|
-
...(palette !== undefined && { palette }),
|
|
199
|
-
...(theme !== undefined && { theme }),
|
|
200
|
-
...(filename !== undefined && { filename }),
|
|
201
|
-
};
|
|
202
|
-
|
|
203
|
-
if (!payload) return { dsl: '', viewState, ...extras };
|
|
204
|
-
|
|
205
|
-
try {
|
|
206
|
-
const result = decompressFromEncodedURIComponent(payload);
|
|
207
|
-
return { dsl: result ?? '', viewState, ...extras };
|
|
208
|
-
} catch {
|
|
209
|
-
return { dsl: '', viewState, ...extras };
|
|
210
|
-
}
|
|
211
|
-
}
|
package/src/sitemap/collapse.ts
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
// ============================================================
|
|
2
|
-
// Sitemap Collapse/Expand — prune subtrees + re-terminate arrows
|
|
3
|
-
// ============================================================
|
|
4
|
-
|
|
5
|
-
import type { SitemapNode, SitemapEdge, ParsedSitemap } from './types';
|
|
6
|
-
import type { Writable } from '../utils/brand';
|
|
7
|
-
import {
|
|
8
|
-
collapseTree,
|
|
9
|
-
type TreeCollapseShape,
|
|
10
|
-
} from '../utils/collapse-engine/tree';
|
|
11
|
-
import {
|
|
12
|
-
reterminateEdges,
|
|
13
|
-
type EdgeEndpointShape,
|
|
14
|
-
} from '../utils/collapse-engine/tree-edges';
|
|
15
|
-
|
|
16
|
-
// ============================================================
|
|
17
|
-
// Types
|
|
18
|
-
// ============================================================
|
|
19
|
-
|
|
20
|
-
export interface CollapsedSitemapResult {
|
|
21
|
-
/** ParsedSitemap with collapsed subtrees pruned (deep-cloned, never mutates original) */
|
|
22
|
-
parsed: ParsedSitemap;
|
|
23
|
-
/** nodeId → count of hidden descendants */
|
|
24
|
-
hiddenCounts: Map<string, number>;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
// ============================================================
|
|
28
|
-
// Helpers
|
|
29
|
-
// ============================================================
|
|
30
|
-
|
|
31
|
-
function cloneNode(node: SitemapNode): Writable<SitemapNode> {
|
|
32
|
-
return {
|
|
33
|
-
id: node.id,
|
|
34
|
-
label: node.label,
|
|
35
|
-
metadata: { ...node.metadata },
|
|
36
|
-
children: node.children.map(cloneNode),
|
|
37
|
-
parentId: node.parentId,
|
|
38
|
-
isContainer: node.isContainer,
|
|
39
|
-
lineNumber: node.lineNumber,
|
|
40
|
-
...(node.color !== undefined && { color: node.color }),
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/** Sitemap shape: containers don't count toward an ancestor's hidden tally. */
|
|
45
|
-
const SITEMAP_SHAPE: TreeCollapseShape<SitemapNode> = {
|
|
46
|
-
getId: (node) => node.id,
|
|
47
|
-
getChildren: (node) => node.children,
|
|
48
|
-
clone: cloneNode,
|
|
49
|
-
setChildren: (node, children) => {
|
|
50
|
-
(node as Writable<SitemapNode>).children = children as SitemapNode[];
|
|
51
|
-
},
|
|
52
|
-
countsAsHidden: (node) => !node.isContainer,
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
const SITEMAP_EDGE_SHAPE: EdgeEndpointShape<SitemapEdge> = {
|
|
56
|
-
getSource: (edge) => edge.sourceId,
|
|
57
|
-
getTarget: (edge) => edge.targetId,
|
|
58
|
-
withEndpoints: (edge, sourceId, targetId) => ({
|
|
59
|
-
...edge,
|
|
60
|
-
sourceId,
|
|
61
|
-
targetId,
|
|
62
|
-
}),
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
// ============================================================
|
|
66
|
-
// Main
|
|
67
|
-
// ============================================================
|
|
68
|
-
|
|
69
|
-
export function collapseSitemapTree(
|
|
70
|
-
original: ParsedSitemap,
|
|
71
|
-
collapsedIds: Set<string>
|
|
72
|
-
): CollapsedSitemapResult {
|
|
73
|
-
if (collapsedIds.size === 0) {
|
|
74
|
-
return { parsed: original, hiddenCounts: new Map() };
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// Walk · filter · tally via the shared engine.
|
|
78
|
-
const { roots, hiddenCounts } = collapseTree(
|
|
79
|
-
original.roots,
|
|
80
|
-
collapsedIds,
|
|
81
|
-
SITEMAP_SHAPE
|
|
82
|
-
);
|
|
83
|
-
|
|
84
|
-
// Remap: re-terminate edges that reference pruned nodes to their visible
|
|
85
|
-
// collapsed-container ancestor (parent-walk; no dedup — parallel edges keep
|
|
86
|
-
// distinct labels for dagre multigraph routing).
|
|
87
|
-
const edges = reterminateEdges(
|
|
88
|
-
original.roots,
|
|
89
|
-
roots,
|
|
90
|
-
original.edges,
|
|
91
|
-
collapsedIds,
|
|
92
|
-
SITEMAP_SHAPE,
|
|
93
|
-
SITEMAP_EDGE_SHAPE
|
|
94
|
-
);
|
|
95
|
-
|
|
96
|
-
return {
|
|
97
|
-
parsed: { ...original, roots, edges },
|
|
98
|
-
hiddenCounts,
|
|
99
|
-
};
|
|
100
|
-
}
|