@flyingrobots/bijou 1.1.0 → 1.2.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/core/components/dag-edges.d.ts +78 -0
- package/dist/core/components/dag-edges.d.ts.map +1 -0
- package/dist/core/components/dag-edges.js +127 -0
- package/dist/core/components/dag-edges.js.map +1 -0
- package/dist/core/components/dag-layout.d.ts +37 -0
- package/dist/core/components/dag-layout.d.ts.map +1 -0
- package/dist/core/components/dag-layout.js +172 -0
- package/dist/core/components/dag-layout.js.map +1 -0
- package/dist/core/components/dag-render.d.ts +51 -0
- package/dist/core/components/dag-render.d.ts.map +1 -0
- package/dist/core/components/dag-render.js +440 -0
- package/dist/core/components/dag-render.js.map +1 -0
- package/dist/core/components/dag.d.ts.map +1 -1
- package/dist/core/components/dag.js +3 -648
- package/dist/core/components/dag.js.map +1 -1
- package/dist/core/components/markdown-parse.d.ts +69 -0
- package/dist/core/components/markdown-parse.d.ts.map +1 -0
- package/dist/core/components/markdown-parse.js +272 -0
- package/dist/core/components/markdown-parse.js.map +1 -0
- package/dist/core/components/markdown-render.d.ts +20 -0
- package/dist/core/components/markdown-render.d.ts.map +1 -0
- package/dist/core/components/markdown-render.js +135 -0
- package/dist/core/components/markdown-render.js.map +1 -0
- package/dist/core/components/markdown.d.ts.map +1 -1
- package/dist/core/components/markdown.js +6 -371
- package/dist/core/components/markdown.js.map +1 -1
- package/dist/core/forms/filter-interactive.d.ts +66 -0
- package/dist/core/forms/filter-interactive.d.ts.map +1 -0
- package/dist/core/forms/filter-interactive.js +241 -0
- package/dist/core/forms/filter-interactive.js.map +1 -0
- package/dist/core/forms/filter.d.ts +2 -32
- package/dist/core/forms/filter.d.ts.map +1 -1
- package/dist/core/forms/filter.js +2 -167
- package/dist/core/forms/filter.js.map +1 -1
- package/dist/core/forms/textarea-editor.d.ts +39 -0
- package/dist/core/forms/textarea-editor.d.ts.map +1 -0
- package/dist/core/forms/textarea-editor.js +210 -0
- package/dist/core/forms/textarea-editor.js.map +1 -0
- package/dist/core/forms/textarea.d.ts +2 -19
- package/dist/core/forms/textarea.d.ts.map +1 -1
- package/dist/core/forms/textarea.js +2 -195
- package/dist/core/forms/textarea.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rendering functions for the DAG component.
|
|
3
|
+
*
|
|
4
|
+
* Handles node box construction, interactive layout rendering with ANSI styling,
|
|
5
|
+
* pipe-mode plain text output, and accessible structured text output.
|
|
6
|
+
*
|
|
7
|
+
* Imports types from `dag.ts` (type-only, erased at runtime).
|
|
8
|
+
* Imports layout functions from `dag-layout.ts` and edge primitives from `dag-edges.ts`.
|
|
9
|
+
*/
|
|
10
|
+
import { assignLayers, buildLayerArrays, orderColumns } from './dag-layout.js';
|
|
11
|
+
import { createGrid, markEdge, junctionChar, encodeArrowPos } from './dag-edges.js';
|
|
12
|
+
import { graphemeWidth, segmentGraphemes } from '../text/grapheme.js';
|
|
13
|
+
// ── Helpers ────────────────────────────────────────────────────────
|
|
14
|
+
/**
|
|
15
|
+
* Compute the visible display width of a string in terminal columns.
|
|
16
|
+
* Delegates to `graphemeWidth` which handles ANSI escapes and wide characters.
|
|
17
|
+
*
|
|
18
|
+
* @param str - The string to measure.
|
|
19
|
+
* @returns The visible column width.
|
|
20
|
+
*/
|
|
21
|
+
function visibleLength(str) {
|
|
22
|
+
return graphemeWidth(str);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Truncate a label to fit within a maximum visible width.
|
|
26
|
+
* Strips ANSI escapes before measuring, truncates by grapheme cluster,
|
|
27
|
+
* and appends an ellipsis character when truncation occurs.
|
|
28
|
+
*
|
|
29
|
+
* @param text - The label text to truncate.
|
|
30
|
+
* @param maxLen - Maximum visible width in terminal columns.
|
|
31
|
+
* @returns The possibly truncated label string.
|
|
32
|
+
*/
|
|
33
|
+
function truncateLabel(text, maxLen) {
|
|
34
|
+
if (maxLen <= 0)
|
|
35
|
+
return '';
|
|
36
|
+
if (visibleLength(text) <= maxLen)
|
|
37
|
+
return text;
|
|
38
|
+
// Truncate by grapheme clusters, not code units
|
|
39
|
+
const clean = text.replace(/\x1b\[[0-9;]*m/g, '');
|
|
40
|
+
const graphemes = segmentGraphemes(clean);
|
|
41
|
+
let width = 0;
|
|
42
|
+
let result = '';
|
|
43
|
+
for (const g of graphemes) {
|
|
44
|
+
const gw = graphemeWidth(g);
|
|
45
|
+
if (width + gw > maxLen - 1)
|
|
46
|
+
break;
|
|
47
|
+
result += g;
|
|
48
|
+
width += gw;
|
|
49
|
+
}
|
|
50
|
+
return result + '\u2026';
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Render a single node as a three-line Unicode box.
|
|
54
|
+
*
|
|
55
|
+
* Ghost nodes use dashed borders. The label is truncated to fit and a
|
|
56
|
+
* badge (if present) is right-aligned within the box.
|
|
57
|
+
*
|
|
58
|
+
* @param label - The node label text.
|
|
59
|
+
* @param badgeText - Optional badge text displayed to the right of the label.
|
|
60
|
+
* @param width - Total character width of the box (including borders).
|
|
61
|
+
* @param ghost - Whether to render with dashed (ghost) border characters.
|
|
62
|
+
* @returns The rendered box lines and per-character type map.
|
|
63
|
+
*/
|
|
64
|
+
function renderNodeBox(label, badgeText, width, ghost) {
|
|
65
|
+
const h = ghost ? '\u254c' : '\u2500';
|
|
66
|
+
const v = ghost ? '\u254e' : '\u2502';
|
|
67
|
+
const innerW = width - 2;
|
|
68
|
+
const contentW = innerW - 2;
|
|
69
|
+
let content;
|
|
70
|
+
let midTypes;
|
|
71
|
+
if (badgeText) {
|
|
72
|
+
const maxLabelW = contentW - visibleLength(badgeText) - 1;
|
|
73
|
+
const tLabel = truncateLabel(label, maxLabelW);
|
|
74
|
+
const gap = Math.max(1, contentW - visibleLength(tLabel) - visibleLength(badgeText));
|
|
75
|
+
content = tLabel + ' '.repeat(gap) + badgeText;
|
|
76
|
+
// Build char-type map for mid line: border + pad + label + gap + badge + pad + border
|
|
77
|
+
// Use segmentGraphemes for correct grapheme cluster counting.
|
|
78
|
+
midTypes = ['border']; // v
|
|
79
|
+
midTypes.push('pad'); // space
|
|
80
|
+
for (let i = 0; i < segmentGraphemes(tLabel).length; i++)
|
|
81
|
+
midTypes.push('label');
|
|
82
|
+
for (let i = 0; i < gap; i++)
|
|
83
|
+
midTypes.push('pad');
|
|
84
|
+
for (let i = 0; i < segmentGraphemes(badgeText).length; i++)
|
|
85
|
+
midTypes.push('badge');
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
content = truncateLabel(label, contentW);
|
|
89
|
+
// Build char-type map for mid line: border + pad + label + pad + border
|
|
90
|
+
midTypes = ['border']; // v
|
|
91
|
+
midTypes.push('pad'); // space
|
|
92
|
+
for (let i = 0; i < segmentGraphemes(content).length; i++)
|
|
93
|
+
midTypes.push('label');
|
|
94
|
+
}
|
|
95
|
+
const padRight = Math.max(0, contentW - visibleLength(content));
|
|
96
|
+
for (let i = 0; i < padRight; i++)
|
|
97
|
+
midTypes.push('pad');
|
|
98
|
+
midTypes.push('pad'); // trailing space
|
|
99
|
+
midTypes.push('border'); // v
|
|
100
|
+
const top = '\u256d' + h.repeat(innerW) + '\u256e';
|
|
101
|
+
const mid = v + ' ' + content + ' '.repeat(padRight) + ' ' + v;
|
|
102
|
+
const bot = '\u2570' + h.repeat(innerW) + '\u256f';
|
|
103
|
+
const borderLine = Array.from({ length: width }, () => 'border');
|
|
104
|
+
return {
|
|
105
|
+
lines: [top, mid, bot],
|
|
106
|
+
charTypes: [borderLine, midTypes, borderLine],
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Expand grapheme arrays so array index equals column offset.
|
|
111
|
+
*
|
|
112
|
+
* For each wide grapheme (width 2), insert a `''` placeholder in chars
|
|
113
|
+
* and duplicate the type in types. After expansion, `chars[col]` and
|
|
114
|
+
* `types[col]` are column-aligned.
|
|
115
|
+
*/
|
|
116
|
+
function expandToColumns(graphemes, types) {
|
|
117
|
+
const outChars = [];
|
|
118
|
+
const outTypes = [];
|
|
119
|
+
for (let i = 0; i < graphemes.length; i++) {
|
|
120
|
+
const g = graphemes[i];
|
|
121
|
+
const t = types[i] ?? 'pad';
|
|
122
|
+
const w = graphemeWidth(g);
|
|
123
|
+
outChars.push(g);
|
|
124
|
+
outTypes.push(t);
|
|
125
|
+
if (w === 2) {
|
|
126
|
+
outChars.push('');
|
|
127
|
+
outTypes.push(t);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return { chars: outChars, types: outTypes };
|
|
131
|
+
}
|
|
132
|
+
// ── Interactive Renderer ───────────────────────────────────────────
|
|
133
|
+
/**
|
|
134
|
+
* Render the full interactive (styled) DAG layout.
|
|
135
|
+
*
|
|
136
|
+
* Performs the complete layout pipeline: layer assignment, column ordering,
|
|
137
|
+
* edge routing, node box rendering, highlight/selection styling, and ANSI
|
|
138
|
+
* serialization into a final string.
|
|
139
|
+
*
|
|
140
|
+
* @param nodes - The graph nodes to render.
|
|
141
|
+
* @param options - Rendering options (tokens, selection, sizing).
|
|
142
|
+
* @param ctx - The resolved bijou context.
|
|
143
|
+
* @returns The rendered output string, node position map, and grid dimensions.
|
|
144
|
+
*/
|
|
145
|
+
export function renderInteractiveLayout(nodes, options, ctx) {
|
|
146
|
+
if (nodes.length === 0)
|
|
147
|
+
return { output: '', nodes: new Map(), width: 0, height: 0 };
|
|
148
|
+
const nodeMap = new Map();
|
|
149
|
+
for (const n of nodes)
|
|
150
|
+
nodeMap.set(n.id, n);
|
|
151
|
+
const layerMap = assignLayers(nodes);
|
|
152
|
+
const layers = buildLayerArrays(nodes, layerMap);
|
|
153
|
+
orderColumns(layers, nodes);
|
|
154
|
+
const colIndex = new Map();
|
|
155
|
+
for (const layer of layers) {
|
|
156
|
+
for (let i = 0; i < layer.length; i++) {
|
|
157
|
+
colIndex.set(layer[i], i);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
let maxNodesPerLayer = 1;
|
|
161
|
+
for (const layer of layers) {
|
|
162
|
+
if (layer.length > maxNodesPerLayer)
|
|
163
|
+
maxNodesPerLayer = layer.length;
|
|
164
|
+
}
|
|
165
|
+
const maxWidth = options.maxWidth ?? ctx.runtime.columns;
|
|
166
|
+
let nodeWidth = options.nodeWidth ?? nodes.reduce((max, n) => Math.max(max, visibleLength(n.label) + (n.badge ? visibleLength(n.badge) + 2 : 0) + 4), 16);
|
|
167
|
+
let gap = 4;
|
|
168
|
+
let colStride = nodeWidth + gap;
|
|
169
|
+
let totalWidth = maxNodesPerLayer * colStride;
|
|
170
|
+
if (totalWidth > maxWidth && !options.nodeWidth) {
|
|
171
|
+
gap = 2;
|
|
172
|
+
colStride = nodeWidth + gap;
|
|
173
|
+
totalWidth = maxNodesPerLayer * colStride;
|
|
174
|
+
}
|
|
175
|
+
if (totalWidth > maxWidth && !options.nodeWidth) {
|
|
176
|
+
nodeWidth = Math.max(16, Math.floor((maxWidth - gap) / maxNodesPerLayer) - gap);
|
|
177
|
+
colStride = nodeWidth + gap;
|
|
178
|
+
totalWidth = maxNodesPerLayer * colStride;
|
|
179
|
+
}
|
|
180
|
+
const RS = 6;
|
|
181
|
+
const gridRows = layers.length * RS;
|
|
182
|
+
const gridCols = totalWidth;
|
|
183
|
+
const colCenter = (c) => c * colStride + Math.floor(nodeWidth / 2);
|
|
184
|
+
const g = createGrid(gridRows, gridCols);
|
|
185
|
+
// Mark edges
|
|
186
|
+
for (const n of nodes) {
|
|
187
|
+
const fLayer = layerMap.get(n.id);
|
|
188
|
+
const fCol = colIndex.get(n.id);
|
|
189
|
+
if (fLayer === undefined || fCol === undefined)
|
|
190
|
+
continue;
|
|
191
|
+
for (const childId of n.edges ?? []) {
|
|
192
|
+
const tLayer = layerMap.get(childId);
|
|
193
|
+
const tCol = colIndex.get(childId);
|
|
194
|
+
if (tLayer === undefined || tCol === undefined)
|
|
195
|
+
continue;
|
|
196
|
+
markEdge(g, fCol, fLayer, tCol, tLayer, RS, colCenter);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
const highlightSet = new Set(options.highlightPath ?? []);
|
|
200
|
+
const edgeToken = options.edgeToken ?? ctx.theme.theme.border.muted;
|
|
201
|
+
const hlToken = options.highlightToken;
|
|
202
|
+
const positions = new Map();
|
|
203
|
+
const nodesByRow = new Map();
|
|
204
|
+
for (const n of nodes) {
|
|
205
|
+
const layer = layerMap.get(n.id);
|
|
206
|
+
const col = colIndex.get(n.id);
|
|
207
|
+
if (layer === undefined || col === undefined)
|
|
208
|
+
continue;
|
|
209
|
+
const startCol = col * colStride;
|
|
210
|
+
const startRow = layer * RS;
|
|
211
|
+
positions.set(n.id, { row: startRow, col: startCol, width: nodeWidth, height: 3 });
|
|
212
|
+
const box = renderNodeBox(n.label, n.badge, nodeWidth, n._ghost === true);
|
|
213
|
+
let nToken;
|
|
214
|
+
if (options.selectedId === n.id) {
|
|
215
|
+
nToken = options.selectedToken ?? ctx.theme.theme.ui.cursor;
|
|
216
|
+
}
|
|
217
|
+
else if (highlightSet.has(n.id) && hlToken) {
|
|
218
|
+
nToken = hlToken;
|
|
219
|
+
}
|
|
220
|
+
else if (n.token) {
|
|
221
|
+
nToken = n.token;
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
nToken = options.nodeToken ?? ctx.theme.theme.border.primary;
|
|
225
|
+
}
|
|
226
|
+
// Expand grapheme arrays to column-aligned arrays so cellAt can
|
|
227
|
+
// index by column offset directly (handles CJK/wide characters).
|
|
228
|
+
const expandedChars = [];
|
|
229
|
+
const expandedTypes = [];
|
|
230
|
+
for (let lineIdx = 0; lineIdx < box.lines.length; lineIdx++) {
|
|
231
|
+
const graphemes = segmentGraphemes(box.lines[lineIdx]);
|
|
232
|
+
const types = box.charTypes[lineIdx];
|
|
233
|
+
const { chars: ec, types: et } = expandToColumns(graphemes, types);
|
|
234
|
+
expandedChars.push(ec);
|
|
235
|
+
expandedTypes.push(et);
|
|
236
|
+
}
|
|
237
|
+
const placed = {
|
|
238
|
+
startRow, startCol, width: nodeWidth, box,
|
|
239
|
+
chars: expandedChars,
|
|
240
|
+
charTypes: expandedTypes,
|
|
241
|
+
token: nToken, node: n,
|
|
242
|
+
};
|
|
243
|
+
for (let lineIdx = 0; lineIdx < 3; lineIdx++) {
|
|
244
|
+
const row = startRow + lineIdx;
|
|
245
|
+
if (row >= gridRows)
|
|
246
|
+
continue;
|
|
247
|
+
let list = nodesByRow.get(row);
|
|
248
|
+
if (!list) {
|
|
249
|
+
list = [];
|
|
250
|
+
nodesByRow.set(row, list);
|
|
251
|
+
}
|
|
252
|
+
list.push(placed);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
// ── Build highlight edge cell set ───────────────────────────────
|
|
256
|
+
const hlCells = new Set();
|
|
257
|
+
if (options.highlightPath && hlToken) {
|
|
258
|
+
const path = options.highlightPath;
|
|
259
|
+
for (let i = 0; i < path.length - 1; i++) {
|
|
260
|
+
const fromId = path[i];
|
|
261
|
+
const toId = path[i + 1];
|
|
262
|
+
const fLayer = layerMap.get(fromId);
|
|
263
|
+
const tLayer = layerMap.get(toId);
|
|
264
|
+
const fCol = colIndex.get(fromId);
|
|
265
|
+
const tCol = colIndex.get(toId);
|
|
266
|
+
if (fLayer === undefined || tLayer === undefined || fCol === undefined || tCol === undefined)
|
|
267
|
+
continue;
|
|
268
|
+
const srcC = colCenter(fCol);
|
|
269
|
+
const dstC = colCenter(tCol);
|
|
270
|
+
const sRow = fLayer * RS + 3;
|
|
271
|
+
const dRow = tLayer * RS - 1;
|
|
272
|
+
const midRow = sRow + 1;
|
|
273
|
+
if (srcC === dstC) {
|
|
274
|
+
for (let r = sRow; r <= dRow && r < gridRows; r++) {
|
|
275
|
+
if (srcC < gridCols)
|
|
276
|
+
hlCells.add(encodeArrowPos(r, srcC));
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
if (sRow < gridRows && srcC < gridCols)
|
|
281
|
+
hlCells.add(encodeArrowPos(sRow, srcC));
|
|
282
|
+
const minC = Math.min(srcC, dstC);
|
|
283
|
+
const maxC2 = Math.max(srcC, dstC);
|
|
284
|
+
if (midRow < gridRows) {
|
|
285
|
+
for (let c = minC; c <= maxC2 && c < gridCols; c++) {
|
|
286
|
+
hlCells.add(encodeArrowPos(midRow, c));
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
for (let r = midRow; r <= dRow && r < gridRows; r++) {
|
|
290
|
+
if (dstC < gridCols)
|
|
291
|
+
hlCells.add(encodeArrowPos(r, dstC));
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
// ── cellAt: on-demand per-cell computation ──────────────────────
|
|
297
|
+
function cellAt(row, col) {
|
|
298
|
+
// 1. Node box (highest priority)
|
|
299
|
+
const nodesOnRow = nodesByRow.get(row);
|
|
300
|
+
if (nodesOnRow) {
|
|
301
|
+
for (const p of nodesOnRow) {
|
|
302
|
+
if (col >= p.startCol && col < p.startCol + p.width) {
|
|
303
|
+
const lineIdx = row - p.startRow;
|
|
304
|
+
const ci = col - p.startCol;
|
|
305
|
+
const ch = p.chars[lineIdx][ci] ?? ' ';
|
|
306
|
+
const charType = p.charTypes[lineIdx][ci];
|
|
307
|
+
let token;
|
|
308
|
+
if (charType === 'label' && p.node.labelToken) {
|
|
309
|
+
token = p.node.labelToken;
|
|
310
|
+
}
|
|
311
|
+
else if (charType === 'badge' && p.node.badgeToken) {
|
|
312
|
+
token = p.node.badgeToken;
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
token = p.token;
|
|
316
|
+
}
|
|
317
|
+
return { ch, token };
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
// 2. Arrowhead
|
|
322
|
+
const encoded = encodeArrowPos(row, col);
|
|
323
|
+
if (g.arrows.has(encoded)) {
|
|
324
|
+
const token = hlCells.has(encoded) ? (hlToken ?? edgeToken) : edgeToken;
|
|
325
|
+
return { ch: '\u25bc', token };
|
|
326
|
+
}
|
|
327
|
+
// 3. Edge
|
|
328
|
+
const dirs = g.dirs[row]?.[col];
|
|
329
|
+
if (dirs && dirs.size > 0) {
|
|
330
|
+
const token = hlCells.has(encoded) ? (hlToken ?? edgeToken) : edgeToken;
|
|
331
|
+
return { ch: junctionChar(dirs), token };
|
|
332
|
+
}
|
|
333
|
+
// 4. Empty
|
|
334
|
+
return { ch: ' ', token: null };
|
|
335
|
+
}
|
|
336
|
+
// ── Serialize: run-length grouping with cellAt queries ──────────
|
|
337
|
+
const lines = [];
|
|
338
|
+
for (let r = 0; r < gridRows; r++) {
|
|
339
|
+
let line = '';
|
|
340
|
+
let prevToken = null;
|
|
341
|
+
let run = '';
|
|
342
|
+
for (let c = 0; c < gridCols; c++) {
|
|
343
|
+
const { ch, token: tk } = cellAt(r, c);
|
|
344
|
+
// TokenValue is a plain object — reference equality works here because
|
|
345
|
+
// the same token instance is reused for all cells of the same type.
|
|
346
|
+
if (tk === prevToken) {
|
|
347
|
+
run += ch;
|
|
348
|
+
}
|
|
349
|
+
else {
|
|
350
|
+
if (run) {
|
|
351
|
+
line += prevToken ? ctx.style.styled(prevToken, run) : run;
|
|
352
|
+
}
|
|
353
|
+
run = ch;
|
|
354
|
+
prevToken = tk;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
if (run) {
|
|
358
|
+
line += prevToken ? ctx.style.styled(prevToken, run) : run;
|
|
359
|
+
}
|
|
360
|
+
lines.push(line.replace(/\s+$/, ''));
|
|
361
|
+
}
|
|
362
|
+
while (lines.length > 0 && lines[lines.length - 1].trim() === '') {
|
|
363
|
+
lines.pop();
|
|
364
|
+
}
|
|
365
|
+
return { output: lines.join('\n'), nodes: positions, width: gridCols, height: gridRows };
|
|
366
|
+
}
|
|
367
|
+
// ── Pipe Renderer ──────────────────────────────────────────────────
|
|
368
|
+
/**
|
|
369
|
+
* Render the graph as plain text for piped (non-TTY) output.
|
|
370
|
+
*
|
|
371
|
+
* Produces one line per node in the format `Label -> Target1, Target2`
|
|
372
|
+
* with no ANSI styling or box-drawing characters.
|
|
373
|
+
*
|
|
374
|
+
* @param nodes - The graph nodes to render.
|
|
375
|
+
* @returns Plain text representation of the graph.
|
|
376
|
+
*/
|
|
377
|
+
export function renderPipe(nodes) {
|
|
378
|
+
if (nodes.length === 0)
|
|
379
|
+
return '';
|
|
380
|
+
const labelById = new Map(nodes.map(n => [n.id, n.label]));
|
|
381
|
+
const lines = [];
|
|
382
|
+
for (const n of nodes) {
|
|
383
|
+
const edges = n.edges ?? [];
|
|
384
|
+
const badgePart = n.badge ? ` (${n.badge})` : '';
|
|
385
|
+
if (edges.length > 0) {
|
|
386
|
+
const targets = edges
|
|
387
|
+
.map(id => labelById.get(id) ?? id)
|
|
388
|
+
.join(', ');
|
|
389
|
+
lines.push(`${n.label}${badgePart} -> ${targets}`);
|
|
390
|
+
}
|
|
391
|
+
else {
|
|
392
|
+
lines.push(`${n.label}${badgePart}`);
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
return lines.join('\n');
|
|
396
|
+
}
|
|
397
|
+
// ── Accessible Renderer ────────────────────────────────────────────
|
|
398
|
+
/**
|
|
399
|
+
* Render the graph as structured accessible text.
|
|
400
|
+
*
|
|
401
|
+
* Produces a summary header ("Graph: N nodes, M edges") followed by
|
|
402
|
+
* layer-grouped node listings with edge descriptions.
|
|
403
|
+
*
|
|
404
|
+
* @param nodes - The graph nodes to render.
|
|
405
|
+
* @param layerMap - Map from node ID to layer index.
|
|
406
|
+
* @returns Accessible text representation of the graph.
|
|
407
|
+
*/
|
|
408
|
+
export function renderAccessible(nodes, layerMap) {
|
|
409
|
+
if (nodes.length === 0)
|
|
410
|
+
return 'Graph: 0 nodes, 0 edges';
|
|
411
|
+
const layers = buildLayerArrays(nodes, layerMap);
|
|
412
|
+
const nodeMap = new Map();
|
|
413
|
+
for (const n of nodes)
|
|
414
|
+
nodeMap.set(n.id, n);
|
|
415
|
+
// Count only edges whose target exists in the graph (matching rendered output)
|
|
416
|
+
const totalEdges = nodes.reduce((s, n) => s + (n.edges ?? []).filter(e => nodeMap.has(e)).length, 0);
|
|
417
|
+
const lines = [`Graph: ${nodes.length} nodes, ${totalEdges} edges`, ''];
|
|
418
|
+
for (let l = 0; l < layers.length; l++) {
|
|
419
|
+
lines.push(`Layer ${l + 1}:`);
|
|
420
|
+
for (const id of layers[l]) {
|
|
421
|
+
const n = nodeMap.get(id);
|
|
422
|
+
if (!n)
|
|
423
|
+
continue;
|
|
424
|
+
const badgePart = n.badge ? ` (${n.badge})` : '';
|
|
425
|
+
const edges = (n.edges ?? []).filter(e => nodeMap.has(e));
|
|
426
|
+
if (edges.length > 0) {
|
|
427
|
+
const targets = edges.map(e => nodeMap.get(e)?.label ?? e).join(', ');
|
|
428
|
+
lines.push(` ${n.label}${badgePart} -> ${targets}`);
|
|
429
|
+
}
|
|
430
|
+
else {
|
|
431
|
+
lines.push(` ${n.label}${badgePart} (end)`);
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
lines.push('');
|
|
435
|
+
}
|
|
436
|
+
while (lines.length > 0 && lines[lines.length - 1] === '')
|
|
437
|
+
lines.pop();
|
|
438
|
+
return lines.join('\n');
|
|
439
|
+
}
|
|
440
|
+
//# sourceMappingURL=dag-render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dag-render.js","sourceRoot":"","sources":["../../../src/core/components/dag-render.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dag.d.ts","sourceRoot":"","sources":["../../../src/core/components/dag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"dag.d.ts","sourceRoot":"","sources":["../../../src/core/components/dag.ts"],"names":[],"mappings":"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"}
|