@rasensio/aidlc 1.76.0 → 1.78.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/roadmap/graph.d.ts +53 -3
- package/dist/roadmap/graph.d.ts.map +1 -1
- package/dist/roadmap/graph.js +126 -54
- package/dist/roadmap/graph.js.map +1 -1
- package/dist/roadmap/view-assets.d.ts +5 -0
- package/dist/roadmap/view-assets.d.ts.map +1 -1
- package/dist/roadmap/view-assets.js +302 -91
- package/dist/roadmap/view-assets.js.map +1 -1
- package/dist/roadmap/view-html.d.ts +11 -1
- package/dist/roadmap/view-html.d.ts.map +1 -1
- package/dist/roadmap/view-html.js +166 -35
- package/dist/roadmap/view-html.js.map +1 -1
- package/dist/roadmap/view-model.js +1 -1
- package/dist/roadmap/view-model.js.map +1 -1
- package/package.json +2 -2
package/dist/roadmap/graph.d.ts
CHANGED
|
@@ -23,6 +23,8 @@ export interface LayoutInput {
|
|
|
23
23
|
ref: string;
|
|
24
24
|
key: string;
|
|
25
25
|
deps: readonly string[];
|
|
26
|
+
/** Whether the item is done; a cluster with every member done is not open (roadmap-view-revamp/AC-15). */
|
|
27
|
+
done?: boolean;
|
|
26
28
|
}
|
|
27
29
|
export interface MapNode {
|
|
28
30
|
/** `i<n>` for an item, `m<n>` for an id no item carries. */
|
|
@@ -36,6 +38,28 @@ export interface MapNode {
|
|
|
36
38
|
subtree: string[];
|
|
37
39
|
/** Everything it needs and everything that needs it, transitively — what activating it highlights. */
|
|
38
40
|
chain: string[];
|
|
41
|
+
/** The cluster it belongs to; `x` and `y` are relative to that cluster's origin. */
|
|
42
|
+
cluster: string;
|
|
43
|
+
}
|
|
44
|
+
/** A connected group of linked items and missing ids, laid out as one box. */
|
|
45
|
+
export interface MapCluster {
|
|
46
|
+
/** `c<n>`, numbered by the input position of the first member. */
|
|
47
|
+
ref: string;
|
|
48
|
+
refs: string[];
|
|
49
|
+
/** Members not done; a missing id counts. */
|
|
50
|
+
notDone: number;
|
|
51
|
+
width: number;
|
|
52
|
+
height: number;
|
|
53
|
+
/** Origin in the all-clusters packing. */
|
|
54
|
+
at: {
|
|
55
|
+
x: number;
|
|
56
|
+
y: number;
|
|
57
|
+
};
|
|
58
|
+
/** Origin in the open-clusters packing, or null when every member is done. */
|
|
59
|
+
openAt: {
|
|
60
|
+
x: number;
|
|
61
|
+
y: number;
|
|
62
|
+
} | null;
|
|
39
63
|
}
|
|
40
64
|
export interface MapEdge {
|
|
41
65
|
/** The dependency. */
|
|
@@ -57,19 +81,40 @@ export interface MapLayout {
|
|
|
57
81
|
id: string;
|
|
58
82
|
}[];
|
|
59
83
|
edges: MapEdge[];
|
|
60
|
-
|
|
84
|
+
clusters: MapCluster[];
|
|
85
|
+
/** Items with no edge at all, relative to the grid's origin. */
|
|
61
86
|
unlinked: {
|
|
62
87
|
ref: string;
|
|
63
88
|
x: number;
|
|
64
89
|
y: number;
|
|
65
90
|
}[];
|
|
91
|
+
/** The unlinked grid's origin under each packing. */
|
|
92
|
+
unlinkedAt: {
|
|
93
|
+
all: {
|
|
94
|
+
x: number;
|
|
95
|
+
y: number;
|
|
96
|
+
};
|
|
97
|
+
open: {
|
|
98
|
+
x: number;
|
|
99
|
+
y: number;
|
|
100
|
+
};
|
|
101
|
+
};
|
|
66
102
|
/** Resolved adjacency for every ref, items and missing ids alike, self-links dropped. */
|
|
67
103
|
links: Record<string, {
|
|
68
104
|
needs: string[];
|
|
69
105
|
neededBy: string[];
|
|
70
106
|
}>;
|
|
71
|
-
|
|
72
|
-
|
|
107
|
+
/** Extents of each packing, without and with the unlinked grid. */
|
|
108
|
+
sizes: {
|
|
109
|
+
all: {
|
|
110
|
+
linked: MapSize;
|
|
111
|
+
full: MapSize;
|
|
112
|
+
};
|
|
113
|
+
open: {
|
|
114
|
+
linked: MapSize;
|
|
115
|
+
full: MapSize;
|
|
116
|
+
};
|
|
117
|
+
};
|
|
73
118
|
}
|
|
74
119
|
/**
|
|
75
120
|
* Lay out the dependency forest. Pure: the same items in the same order give the same
|
|
@@ -80,6 +125,11 @@ export interface MapLayout {
|
|
|
80
125
|
* loop (AC-29); each loop is cut at the member earliest in input order, which becomes a
|
|
81
126
|
* root and keeps its link to the rest as a dashed edge. Without the cut a loop has no
|
|
82
127
|
* root, so its members are never placed and come out with no coordinates.
|
|
128
|
+
*
|
|
129
|
+
* Trees are then grouped into clusters — connected groups over any link — each stacked
|
|
130
|
+
* under a label band and packed as one box, twice: every cluster, and only the clusters
|
|
131
|
+
* with something not done (roadmap-view-revamp/AC-14..AC-16). Node coordinates are relative
|
|
132
|
+
* to their cluster, so the page switches packings by moving cluster groups alone.
|
|
83
133
|
*/
|
|
84
134
|
export declare function layoutMap(items: readonly LayoutInput[]): MapLayout;
|
|
85
135
|
//# sourceMappingURL=graph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/roadmap/graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,iEAAiE;AACjE,eAAO,MAAM,MAAM,MAAM,CAAC;AAC1B,eAAO,MAAM,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/roadmap/graph.ts"],"names":[],"mappings":"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"}
|
package/dist/roadmap/graph.js
CHANGED
|
@@ -21,8 +21,16 @@ export const NODE_H = 48;
|
|
|
21
21
|
const COL_W = 300;
|
|
22
22
|
const ROW_H = 64;
|
|
23
23
|
const PAD = 16;
|
|
24
|
-
/**
|
|
25
|
-
const
|
|
24
|
+
/** The shape packing aims for: the map pane of a 1440 × 900 window is about 2:1. */
|
|
25
|
+
const ASPECT = 2;
|
|
26
|
+
/** Space between two packed clusters. */
|
|
27
|
+
const GROUP_GAP = 40;
|
|
28
|
+
/** Space between two trees stacked inside one cluster. */
|
|
29
|
+
const STACK_GAP = 16;
|
|
30
|
+
/** Height of a cluster's label band, above its first tree. */
|
|
31
|
+
const LABEL_H = 28;
|
|
32
|
+
/** Space between the forest and the unlinked grid. */
|
|
33
|
+
const UNLINKED_GAP = 64;
|
|
26
34
|
/** Fewest unlinked items to a row, however narrow the forest. */
|
|
27
35
|
const UNLINKED_PER_ROW = 4;
|
|
28
36
|
/**
|
|
@@ -34,6 +42,11 @@ const UNLINKED_PER_ROW = 4;
|
|
|
34
42
|
* loop (AC-29); each loop is cut at the member earliest in input order, which becomes a
|
|
35
43
|
* root and keeps its link to the rest as a dashed edge. Without the cut a loop has no
|
|
36
44
|
* root, so its members are never placed and come out with no coordinates.
|
|
45
|
+
*
|
|
46
|
+
* Trees are then grouped into clusters — connected groups over any link — each stacked
|
|
47
|
+
* under a label band and packed as one box, twice: every cluster, and only the clusters
|
|
48
|
+
* with something not done (roadmap-view-revamp/AC-14..AC-16). Node coordinates are relative
|
|
49
|
+
* to their cluster, so the page switches packings by moving cluster groups alone.
|
|
37
50
|
*/
|
|
38
51
|
export function layoutMap(items) {
|
|
39
52
|
const refOfKey = new Map();
|
|
@@ -89,6 +102,26 @@ export function layoutMap(items) {
|
|
|
89
102
|
for (const dep of links[ref].needs)
|
|
90
103
|
edges.push({ from: dep, to: ref, dashed: dep !== parent.get(ref) });
|
|
91
104
|
}
|
|
105
|
+
// Clusters: connected groups over any link, numbered by their first member's input
|
|
106
|
+
// position. A cluster is the unit the page labels, packs and hides (roadmap-view-revamp/AC-14).
|
|
107
|
+
const clusterOf = new Map();
|
|
108
|
+
let clusterCount = 0;
|
|
109
|
+
for (const start of linked) {
|
|
110
|
+
if (clusterOf.has(start))
|
|
111
|
+
continue;
|
|
112
|
+
const c = clusterCount++;
|
|
113
|
+
const stack = [start];
|
|
114
|
+
clusterOf.set(start, c);
|
|
115
|
+
while (stack.length > 0) {
|
|
116
|
+
const r = stack.pop();
|
|
117
|
+
for (const n of [...links[r].needs, ...links[r].neededBy]) {
|
|
118
|
+
if (!clusterOf.has(n)) {
|
|
119
|
+
clusterOf.set(n, c);
|
|
120
|
+
stack.push(n);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
92
125
|
// Tidy tree, left to right: depth is the column, each leaf takes the next row of its
|
|
93
126
|
// tree, a parent sits midway between its first and last child.
|
|
94
127
|
const row = new Map();
|
|
@@ -113,44 +146,37 @@ export function layoutMap(items) {
|
|
|
113
146
|
place(root, 0, t);
|
|
114
147
|
const members = linked.filter((ref) => treeOf.get(ref) === t);
|
|
115
148
|
const depthMax = Math.max(...members.map((ref) => depth.get(ref)));
|
|
116
|
-
return { width: depthMax * COL_W + NODE_W, height: (nextRow - 1) * ROW_H + NODE_H,
|
|
149
|
+
return { cluster: clusterOf.get(root), width: depthMax * COL_W + NODE_W, height: (nextRow - 1) * ROW_H + NODE_H, y: 0 };
|
|
150
|
+
});
|
|
151
|
+
// A cluster stacks its trees, in order, under its label band, so it reads as one unit.
|
|
152
|
+
const done = new Map(items.map((i) => [i.ref, i.done === true]));
|
|
153
|
+
const boxes = Array.from({ length: clusterCount }, (_, c) => {
|
|
154
|
+
let y = LABEL_H;
|
|
155
|
+
let width = NODE_W;
|
|
156
|
+
for (const t of trees.filter((tr) => tr.cluster === c)) {
|
|
157
|
+
t.y = y;
|
|
158
|
+
y += t.height + STACK_GAP;
|
|
159
|
+
width = Math.max(width, t.width);
|
|
160
|
+
}
|
|
161
|
+
const refs = linked.filter((ref) => clusterOf.get(ref) === c);
|
|
162
|
+
// A missing id is never done: everything behind it is blocked.
|
|
163
|
+
return { refs, notDone: refs.filter((ref) => done.get(ref) !== true).length, width, height: y - STACK_GAP };
|
|
164
|
+
});
|
|
165
|
+
const allPack = shelfPack(boxes);
|
|
166
|
+
const openBoxes = boxes.filter((b) => b.notDone > 0);
|
|
167
|
+
const openPack = shelfPack(openBoxes);
|
|
168
|
+
const clusters = boxes.map((b, c) => {
|
|
169
|
+
const open = openBoxes.indexOf(b);
|
|
170
|
+
return {
|
|
171
|
+
ref: `c${c}`,
|
|
172
|
+
refs: b.refs,
|
|
173
|
+
notDone: b.notDone,
|
|
174
|
+
width: b.width,
|
|
175
|
+
height: b.height,
|
|
176
|
+
at: { x: PAD + allPack.at[c].x, y: PAD + allPack.at[c].y },
|
|
177
|
+
openAt: open === -1 ? null : { x: PAD + openPack.at[open].x, y: PAD + openPack.at[open].y },
|
|
178
|
+
};
|
|
117
179
|
});
|
|
118
|
-
// Shelf-pack the trees, in order, into rows. Stacked in one column, this repository's 23
|
|
119
|
-
// small trees made a strip so tall that fitting it to a screen shrank labels to a fifth
|
|
120
|
-
// of their size. Each possible first-row width is tried and the packing closest to 16:9
|
|
121
|
-
// kept, ties to the narrower — a single estimated width quantises badly when trees are
|
|
122
|
-
// alike (24 equal trees came out taller than wide).
|
|
123
|
-
const pack = (target) => {
|
|
124
|
-
let x = 0;
|
|
125
|
-
let y = 0;
|
|
126
|
-
let shelf = 0;
|
|
127
|
-
let width = 0;
|
|
128
|
-
const at = trees.map((t) => {
|
|
129
|
-
if (x > 0 && x + t.width > target) {
|
|
130
|
-
x = 0;
|
|
131
|
-
y += shelf + TREE_GAP;
|
|
132
|
-
shelf = 0;
|
|
133
|
-
}
|
|
134
|
-
const spot = { x, y };
|
|
135
|
-
width = Math.max(width, x + t.width);
|
|
136
|
-
x += t.width + TREE_GAP;
|
|
137
|
-
shelf = Math.max(shelf, t.height);
|
|
138
|
-
return spot;
|
|
139
|
-
});
|
|
140
|
-
return { width, height: y + shelf, at };
|
|
141
|
-
};
|
|
142
|
-
let best = pack(0);
|
|
143
|
-
let firstRow = -TREE_GAP;
|
|
144
|
-
for (const t of trees) {
|
|
145
|
-
firstRow += t.width + TREE_GAP;
|
|
146
|
-
const candidate = pack(firstRow);
|
|
147
|
-
const off = (p) => Math.abs(Math.log(p.width / p.height / (16 / 9)));
|
|
148
|
-
if (off(candidate) < off(best))
|
|
149
|
-
best = candidate;
|
|
150
|
-
}
|
|
151
|
-
trees.forEach((t, n) => Object.assign(t, best.at[n]));
|
|
152
|
-
const forestHeight = trees.length > 0 ? best.height : 0;
|
|
153
|
-
const targetWidth = Math.max(best.width, NODE_W);
|
|
154
180
|
const descendants = (ref, next) => {
|
|
155
181
|
const seen = new Set();
|
|
156
182
|
const stack = [...next(ref)];
|
|
@@ -165,38 +191,84 @@ export function layoutMap(items) {
|
|
|
165
191
|
};
|
|
166
192
|
const nodes = linked.map((ref) => ({
|
|
167
193
|
ref,
|
|
168
|
-
x:
|
|
169
|
-
y:
|
|
194
|
+
x: depth.get(ref) * COL_W,
|
|
195
|
+
y: trees[treeOf.get(ref)].y + Math.round(row.get(ref) * ROW_H),
|
|
170
196
|
depth: depth.get(ref),
|
|
171
197
|
parent: parent.get(ref) ?? null,
|
|
172
198
|
subtree: descendants(ref, (r) => children.get(r) ?? []),
|
|
173
199
|
chain: [...new Set([...descendants(ref, (r) => links[r].needs), ...descendants(ref, (r) => links[r].neededBy)])].sort(byOrder),
|
|
200
|
+
cluster: `c${clusterOf.get(ref)}`,
|
|
174
201
|
}));
|
|
202
|
+
// The unlinked grid is one block, below the forest in either packing, and as wide as the
|
|
203
|
+
// full forest, so showing it does not turn the map back into a strip.
|
|
175
204
|
const linkedSet = new Set(linked);
|
|
176
|
-
const
|
|
177
|
-
// As wide as the forest, so showing them does not turn the map back into a strip.
|
|
178
|
-
const perRow = Math.max(UNLINKED_PER_ROW, Math.floor((targetWidth + COL_W - NODE_W) / COL_W));
|
|
205
|
+
const perRow = Math.max(UNLINKED_PER_ROW, Math.floor((Math.max(allPack.width, NODE_W) + COL_W - NODE_W) / COL_W));
|
|
179
206
|
const unlinked = items
|
|
180
207
|
.filter((i) => !linkedSet.has(i.ref))
|
|
181
|
-
.map((i, n) => ({
|
|
182
|
-
|
|
183
|
-
x: PAD + (n % perRow) * COL_W,
|
|
184
|
-
y: PAD + unlinkedTop + Math.floor(n / perRow) * ROW_H,
|
|
185
|
-
}));
|
|
186
|
-
const size = (boxes) => boxes.length === 0
|
|
208
|
+
.map((i, n) => ({ ref: i.ref, x: (n % perRow) * COL_W, y: Math.floor(n / perRow) * ROW_H }));
|
|
209
|
+
const grid = unlinked.length === 0
|
|
187
210
|
? { width: 0, height: 0 }
|
|
188
211
|
: {
|
|
189
|
-
width: Math.max(...
|
|
190
|
-
height: Math.max(...
|
|
212
|
+
width: Math.max(...unlinked.map((u) => u.x)) + NODE_W,
|
|
213
|
+
height: Math.max(...unlinked.map((u) => u.y)) + NODE_H,
|
|
191
214
|
};
|
|
215
|
+
const sizesOf = (pack) => {
|
|
216
|
+
const linkedSize = pack.width === 0 ? { width: 0, height: 0 } : { width: pack.width + 2 * PAD, height: pack.height + 2 * PAD };
|
|
217
|
+
const gridAt = { x: PAD, y: PAD + (pack.width === 0 ? 0 : pack.height + UNLINKED_GAP) };
|
|
218
|
+
const full = unlinked.length === 0
|
|
219
|
+
? linkedSize
|
|
220
|
+
: { width: Math.max(linkedSize.width, grid.width + 2 * PAD), height: gridAt.y + grid.height + PAD };
|
|
221
|
+
return { linked: linkedSize, full, grid: gridAt };
|
|
222
|
+
};
|
|
223
|
+
const all = sizesOf(allPack);
|
|
224
|
+
const open = sizesOf(openPack);
|
|
192
225
|
return {
|
|
193
226
|
nodes,
|
|
194
227
|
missing,
|
|
195
228
|
edges,
|
|
229
|
+
clusters,
|
|
196
230
|
unlinked,
|
|
231
|
+
unlinkedAt: { all: all.grid, open: open.grid },
|
|
197
232
|
links,
|
|
198
|
-
|
|
199
|
-
fullSize: size([...nodes, ...unlinked]),
|
|
233
|
+
sizes: { all: { linked: all.linked, full: all.full }, open: { linked: open.linked, full: open.full } },
|
|
200
234
|
};
|
|
201
235
|
}
|
|
236
|
+
/**
|
|
237
|
+
* Shelf-pack boxes, in order, into rows. Stacked in one column, this repository's small
|
|
238
|
+
* clusters made a strip so tall that fitting it to a screen shrank labels to a fifth of their
|
|
239
|
+
* size. Each possible first-row width is tried and the packing closest to the map pane's 2:1 kept, ties to
|
|
240
|
+
* the narrower — a single estimated width quantises badly when boxes are alike (24 equal
|
|
241
|
+
* boxes came out taller than wide).
|
|
242
|
+
*/
|
|
243
|
+
function shelfPack(boxes) {
|
|
244
|
+
const pack = (target) => {
|
|
245
|
+
let x = 0;
|
|
246
|
+
let y = 0;
|
|
247
|
+
let shelf = 0;
|
|
248
|
+
let width = 0;
|
|
249
|
+
const at = boxes.map((b) => {
|
|
250
|
+
if (x > 0 && x + b.width > target) {
|
|
251
|
+
x = 0;
|
|
252
|
+
y += shelf + GROUP_GAP;
|
|
253
|
+
shelf = 0;
|
|
254
|
+
}
|
|
255
|
+
const spot = { x, y };
|
|
256
|
+
width = Math.max(width, x + b.width);
|
|
257
|
+
x += b.width + GROUP_GAP;
|
|
258
|
+
shelf = Math.max(shelf, b.height);
|
|
259
|
+
return spot;
|
|
260
|
+
});
|
|
261
|
+
return { width, height: boxes.length === 0 ? 0 : y + shelf, at };
|
|
262
|
+
};
|
|
263
|
+
const off = (p) => Math.abs(Math.log(p.width / p.height / ASPECT));
|
|
264
|
+
let best = pack(0);
|
|
265
|
+
let firstRow = -GROUP_GAP;
|
|
266
|
+
for (const b of boxes) {
|
|
267
|
+
firstRow += b.width + GROUP_GAP;
|
|
268
|
+
const candidate = pack(firstRow);
|
|
269
|
+
if (off(candidate) < off(best))
|
|
270
|
+
best = candidate;
|
|
271
|
+
}
|
|
272
|
+
return best;
|
|
273
|
+
}
|
|
202
274
|
//# sourceMappingURL=graph.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/roadmap/graph.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/roadmap/graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,11 @@
|
|
|
11
11
|
* plain ES2020 without template literals so `String.raw` can hold it unescaped; a test
|
|
12
12
|
* fails it if it grows past 16 KB or ever contains `</script`.
|
|
13
13
|
*
|
|
14
|
+
* roadmap-view-revamp added the tabs, per-tab filters kept in the URL hash, the theme,
|
|
15
|
+
* shortcuts and copy buttons. Visibility is still CSS: the script sets classes and
|
|
16
|
+
* attributes, the stylesheet hides. Every colour is a token on `:root` and
|
|
17
|
+
* `:root[data-theme="dark"]`, which the contrast test reads (roadmap-view-revamp/AC-24).
|
|
18
|
+
*
|
|
14
19
|
* @module
|
|
15
20
|
*/
|
|
16
21
|
export declare const VIEW_STYLE: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-assets.d.ts","sourceRoot":"","sources":["../../src/roadmap/view-assets.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"view-assets.d.ts","sourceRoot":"","sources":["../../src/roadmap/view-assets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,eAAO,MAAM,UAAU,QAmGtB,CAAC;AAEF,eAAO,MAAM,WAAW,QAsYF,CAAC"}
|