@diagrammo/dgmo 0.6.3 → 0.7.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/cli.cjs +180 -178
- package/dist/index.cjs +5296 -2209
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +236 -16
- package/dist/index.d.ts +236 -16
- package/dist/index.js +12423 -9343
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/c4/renderer.ts +6 -6
- package/src/class/renderer.ts +183 -7
- package/src/cli.ts +3 -11
- package/src/colors.ts +3 -3
- package/src/d3.ts +128 -23
- package/src/dgmo-router.ts +3 -1
- package/src/er/renderer.ts +11 -5
- package/src/gantt/calculator.ts +677 -0
- package/src/gantt/parser.ts +761 -0
- package/src/gantt/renderer.ts +2125 -0
- package/src/gantt/resolver.ts +144 -0
- package/src/gantt/types.ts +168 -0
- package/src/index.ts +27 -0
- package/src/infra/renderer.ts +48 -12
- package/src/initiative-status/filter.ts +63 -0
- package/src/initiative-status/layout.ts +319 -67
- package/src/initiative-status/parser.ts +200 -25
- package/src/initiative-status/renderer.ts +293 -10
- package/src/initiative-status/types.ts +6 -0
- package/src/org/layout.ts +22 -55
- package/src/org/renderer.ts +4 -8
- package/src/palettes/dracula.ts +60 -0
- package/src/palettes/index.ts +8 -6
- package/src/palettes/monokai.ts +60 -0
- package/src/palettes/registry.ts +4 -2
- package/src/sequence/renderer.ts +5 -4
- package/src/sharing.ts +8 -0
- package/src/sitemap/renderer.ts +4 -4
- package/src/utils/duration.ts +212 -0
- package/src/utils/legend-constants.ts +1 -0
package/src/dgmo-router.ts
CHANGED
|
@@ -16,6 +16,7 @@ import { parseC4 } from './c4/parser';
|
|
|
16
16
|
import { looksLikeInitiativeStatus, parseInitiativeStatus } from './initiative-status/parser';
|
|
17
17
|
import { looksLikeSitemap, parseSitemap } from './sitemap/parser';
|
|
18
18
|
import { parseInfra } from './infra/parser';
|
|
19
|
+
import { parseGantt } from './gantt/parser';
|
|
19
20
|
import type { DgmoError } from './diagnostics';
|
|
20
21
|
|
|
21
22
|
/**
|
|
@@ -65,7 +66,7 @@ const VISUALIZATION_TYPES = new Set([
|
|
|
65
66
|
]);
|
|
66
67
|
const DIAGRAM_TYPES = new Set([
|
|
67
68
|
'sequence', 'flowchart', 'class', 'er', 'org', 'kanban', 'c4',
|
|
68
|
-
'initiative-status', 'state', 'sitemap', 'infra',
|
|
69
|
+
'initiative-status', 'state', 'sitemap', 'infra', 'gantt',
|
|
69
70
|
]);
|
|
70
71
|
const EXTENDED_CHART_TYPES = new Set([
|
|
71
72
|
'scatter', 'sankey', 'chord', 'function', 'heatmap', 'funnel',
|
|
@@ -128,6 +129,7 @@ const PARSE_DISPATCH = new Map<string, (content: string) => { diagnostics: DgmoE
|
|
|
128
129
|
['state', (c) => parseState(c)],
|
|
129
130
|
['sitemap', (c) => parseSitemap(c)],
|
|
130
131
|
['infra', (c) => parseInfra(c)],
|
|
132
|
+
['gantt', (c) => parseGantt(c)],
|
|
131
133
|
]);
|
|
132
134
|
|
|
133
135
|
/**
|
package/src/er/renderer.ts
CHANGED
|
@@ -224,7 +224,13 @@ export function renderERDiagram(
|
|
|
224
224
|
|
|
225
225
|
const useSemanticColors =
|
|
226
226
|
parsed.tagGroups.length === 0 && layout.nodes.every((n) => !n.color);
|
|
227
|
-
const
|
|
227
|
+
const LEGEND_FIXED_GAP = 8;
|
|
228
|
+
const hasTagLegend = parsed.tagGroups.length > 0;
|
|
229
|
+
const legendReserveH = useSemanticColors
|
|
230
|
+
? LEGEND_HEIGHT + LEGEND_FIXED_GAP
|
|
231
|
+
: hasTagLegend
|
|
232
|
+
? LEGEND_HEIGHT + LEGEND_FIXED_GAP
|
|
233
|
+
: 0;
|
|
228
234
|
|
|
229
235
|
const titleHeight = parsed.title ? 40 : 0;
|
|
230
236
|
const diagramW = layout.width;
|
|
@@ -254,13 +260,13 @@ export function renderERDiagram(
|
|
|
254
260
|
scale = Math.min(MAX_SCALE, scaleX, scaleY);
|
|
255
261
|
const scaledW = diagramW * scale;
|
|
256
262
|
offsetX = (viewW - scaledW) / 2;
|
|
257
|
-
offsetY = titleHeight + DIAGRAM_PADDING;
|
|
263
|
+
offsetY = titleHeight + legendReserveH + DIAGRAM_PADDING;
|
|
258
264
|
} else {
|
|
259
265
|
viewW = naturalW;
|
|
260
266
|
viewH = naturalH;
|
|
261
267
|
scale = 1;
|
|
262
268
|
offsetX = DIAGRAM_PADDING;
|
|
263
|
-
offsetY = titleHeight + DIAGRAM_PADDING;
|
|
269
|
+
offsetY = titleHeight + legendReserveH + DIAGRAM_PADDING;
|
|
264
270
|
}
|
|
265
271
|
|
|
266
272
|
if (viewW <= 0 || viewH <= 0) return;
|
|
@@ -521,7 +527,7 @@ export function renderERDiagram(
|
|
|
521
527
|
}
|
|
522
528
|
|
|
523
529
|
let legendX = DIAGRAM_PADDING;
|
|
524
|
-
let legendY =
|
|
530
|
+
let legendY = DIAGRAM_PADDING + titleHeight;
|
|
525
531
|
|
|
526
532
|
for (const group of parsed.tagGroups) {
|
|
527
533
|
const groupG = legendG.append('g')
|
|
@@ -639,7 +645,7 @@ export function renderERDiagram(
|
|
|
639
645
|
}
|
|
640
646
|
|
|
641
647
|
const legendX = (viewW - totalWidth) / 2;
|
|
642
|
-
const legendY =
|
|
648
|
+
const legendY = DIAGRAM_PADDING + titleHeight;
|
|
643
649
|
|
|
644
650
|
const semanticLegendG = svg
|
|
645
651
|
.append('g')
|