@coldtea/pr-lens-renderer 0.3.6 → 0.4.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/atlas.d.ts +2 -0
- package/dist/atlas.d.ts.map +1 -1
- package/dist/atlas.js +1 -1
- package/dist/atlas.js.map +1 -1
- package/dist/corrections.d.ts.map +1 -1
- package/dist/corrections.js +7 -1
- package/dist/corrections.js.map +1 -1
- package/dist/design.d.ts +25 -0
- package/dist/design.d.ts.map +1 -1
- package/dist/design.js +25 -0
- package/dist/design.js.map +1 -1
- package/dist/layout/architecture.d.ts +6 -2
- package/dist/layout/architecture.d.ts.map +1 -1
- package/dist/layout/architecture.js +12 -19
- package/dist/layout/architecture.js.map +1 -1
- package/dist/layout/datamodel.d.ts +70 -0
- package/dist/layout/datamodel.d.ts.map +1 -0
- package/dist/layout/datamodel.js +381 -0
- package/dist/layout/datamodel.js.map +1 -0
- package/dist/layout/edges.d.ts +8 -0
- package/dist/layout/edges.d.ts.map +1 -1
- package/dist/layout/edges.js +2 -2
- package/dist/layout/edges.js.map +1 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +18 -1
- package/dist/render.js.map +1 -1
- package/dist/scope.d.ts +4 -1
- package/dist/scope.d.ts.map +1 -1
- package/dist/scope.js +28 -2
- package/dist/scope.js.map +1 -1
- package/dist/svg/architecture.d.ts +5 -2
- package/dist/svg/architecture.d.ts.map +1 -1
- package/dist/svg/architecture.js +10 -11
- package/dist/svg/architecture.js.map +1 -1
- package/dist/svg/datamodel.d.ts +11 -0
- package/dist/svg/datamodel.d.ts.map +1 -0
- package/dist/svg/datamodel.js +252 -0
- package/dist/svg/datamodel.js.map +1 -0
- package/dist/svg/icons.d.ts +2 -0
- package/dist/svg/icons.d.ts.map +1 -1
- package/dist/svg/icons.js +14 -0
- package/dist/svg/icons.js.map +1 -1
- package/dist/svg/styles.d.ts +3 -1
- package/dist/svg/styles.d.ts.map +1 -1
- package/dist/svg/styles.js +6 -0
- package/dist/svg/styles.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -3
- package/src/atlas.ts +3 -1
- package/src/corrections.ts +7 -1
- package/src/design.ts +26 -0
- package/src/layout/architecture.ts +16 -10
- package/src/layout/datamodel.ts +524 -0
- package/src/layout/edges.ts +2 -2
- package/src/render.ts +18 -1
- package/src/scope.ts +46 -3
- package/src/svg/architecture.ts +12 -13
- package/src/svg/datamodel.ts +344 -0
- package/src/svg/icons.ts +20 -0
- package/src/svg/styles.ts +8 -1
- package/src/version.ts +1 -1
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import { assertNever } from "@coldtea/pr-lens-schema";
|
|
2
|
+
import { measure, truncate } from "../text.js";
|
|
3
|
+
import { canvasFor, union } from "../bounds.js";
|
|
4
|
+
import { coord } from "../geometry.js";
|
|
5
|
+
import { curveBounds } from "../layout/edges.js";
|
|
6
|
+
import { lines, tag, textNode, wrap } from "./primitives.js";
|
|
7
|
+
import { tableGlyph } from "./icons.js";
|
|
8
|
+
import { atlasBoxes, emptyAtlas } from "../atlas.js";
|
|
9
|
+
import { markerFor, shifted, toneColour, toneFor } from "./document.js";
|
|
10
|
+
import { cardAttributes, cardGroupAttributes, relationAttributes, stylesFor } from "./styles.js";
|
|
11
|
+
import { cardOutlineClass, paintBadgeStrip, paintLabelPill } from "./architecture.js";
|
|
12
|
+
import { badgeStrip, badgesFor, cardTextWidth, laneHeaderText } from "../layout/architecture.js";
|
|
13
|
+
import { layoutDataModel, routeRelations, } from "../layout/datamodel.js";
|
|
14
|
+
import { CARD_HEIGHT_WITH_SUBTITLE, CARD_PADDING_X, CARD_RADIUS, DIAGRAM_MARGIN, ICON_CHIP_GAP, ICON_CHIP_RADIUS, ICON_CHIP_SIZE, KEY_CHIP_GAP, KEY_CHIP_HEIGHT, KEY_CHIP_WIDTH, LANE_HEADER_BASELINE, LANE_PADDING_X, LANE_RADIUS, LANE_TOP, SUBTITLE_SIZE, TABLE_ROW_TEXT_SIZE, TABLE_ROW_TYPE_SIZE, } from "../design.js";
|
|
15
|
+
const keyChipText = (key) => {
|
|
16
|
+
switch (key) {
|
|
17
|
+
case "primary":
|
|
18
|
+
return "PK";
|
|
19
|
+
case "foreign":
|
|
20
|
+
return "FK";
|
|
21
|
+
case "index":
|
|
22
|
+
return "IX";
|
|
23
|
+
default:
|
|
24
|
+
return assertNever(key, "Unhandled column key");
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
/** The subtitle under a table's name: its physical name, and how many columns it has. */
|
|
28
|
+
const tableSubtitle = (placed) => {
|
|
29
|
+
const count = `${placed.table.columns.length} ${placed.table.columns.length === 1 ? "column" : "columns"}`;
|
|
30
|
+
return placed.table.name === undefined ? count : `${placed.table.name} · ${count}`;
|
|
31
|
+
};
|
|
32
|
+
const paintColumns = (placed, palette) => {
|
|
33
|
+
const styles = stylesFor(palette);
|
|
34
|
+
const { box } = placed;
|
|
35
|
+
const left = box.x + CARD_PADDING_X;
|
|
36
|
+
const nameX = left + KEY_CHIP_WIDTH + KEY_CHIP_GAP;
|
|
37
|
+
const right = box.x + box.width - CARD_PADDING_X;
|
|
38
|
+
return lines(placed.columns.map(({ column, centre }) => {
|
|
39
|
+
const tone = toneFor(column.delta);
|
|
40
|
+
const ink = (() => {
|
|
41
|
+
switch (column.delta) {
|
|
42
|
+
case "added":
|
|
43
|
+
return palette.addedText;
|
|
44
|
+
case "removed":
|
|
45
|
+
return palette.removedText;
|
|
46
|
+
case "modified":
|
|
47
|
+
case "unchanged":
|
|
48
|
+
return palette.foreground;
|
|
49
|
+
default:
|
|
50
|
+
return assertNever(column.delta, "Unhandled delta");
|
|
51
|
+
}
|
|
52
|
+
})();
|
|
53
|
+
const chip = column.key === undefined
|
|
54
|
+
? ""
|
|
55
|
+
: tag("rect", {
|
|
56
|
+
class: "chip",
|
|
57
|
+
x: coord(left),
|
|
58
|
+
y: coord(centre - KEY_CHIP_HEIGHT / 2),
|
|
59
|
+
width: KEY_CHIP_WIDTH,
|
|
60
|
+
height: KEY_CHIP_HEIGHT,
|
|
61
|
+
rx: KEY_CHIP_HEIGHT / 2,
|
|
62
|
+
...styles.chip,
|
|
63
|
+
}) +
|
|
64
|
+
textNode({
|
|
65
|
+
class: "keytext",
|
|
66
|
+
x: coord(left + KEY_CHIP_WIDTH / 2),
|
|
67
|
+
y: coord(centre + 3),
|
|
68
|
+
"text-anchor": "middle",
|
|
69
|
+
"font-size": 8,
|
|
70
|
+
"font-weight": 700,
|
|
71
|
+
"letter-spacing": ".06em",
|
|
72
|
+
fill: palette.muted,
|
|
73
|
+
}, keyChipText(column.key));
|
|
74
|
+
// A changed type says what it was: the old spelling struck, then the new one.
|
|
75
|
+
// Non-breaking spaces, because a tspan swallows the ordinary kind at its edges.
|
|
76
|
+
const typeText = column.previousType === undefined ? column.type : `${column.previousType}\u00a0→\u00a0${column.type}`;
|
|
77
|
+
const typeWidth = measure(typeText, "mono", TABLE_ROW_TYPE_SIZE);
|
|
78
|
+
const typeFill = tone === "modified" ? palette.modifiedText : tone === "added" ? palette.addedText : palette.muted;
|
|
79
|
+
const type = column.previousType === undefined
|
|
80
|
+
? textNode({ class: "coltype", x: coord(right), y: coord(centre + 3.5), "text-anchor": "end", "font-size": TABLE_ROW_TYPE_SIZE, "font-family": styles.subtitle["font-family"], fill: typeFill }, typeText)
|
|
81
|
+
: wrap("text", { class: "coltype", x: coord(right), y: coord(centre + 3.5), "text-anchor": "end", "font-size": TABLE_ROW_TYPE_SIZE, "font-family": styles.subtitle["font-family"], fill: typeFill }, wrap("tspan", { fill: palette.muted, "text-decoration": "line-through" }, column.previousType) +
|
|
82
|
+
wrap("tspan", {}, `\u00a0→\u00a0${column.type}`));
|
|
83
|
+
const nameRoom = right - typeWidth - KEY_CHIP_GAP - nameX;
|
|
84
|
+
const name = textNode({
|
|
85
|
+
class: column.delta === "removed" ? "colname strike" : "colname",
|
|
86
|
+
x: coord(nameX),
|
|
87
|
+
y: coord(centre + 4),
|
|
88
|
+
"font-size": TABLE_ROW_TEXT_SIZE,
|
|
89
|
+
"font-family": styles.subtitle["font-family"],
|
|
90
|
+
fill: ink,
|
|
91
|
+
"text-decoration": column.delta === "removed" ? "line-through" : undefined,
|
|
92
|
+
}, truncate(column.name, "mono", TABLE_ROW_TEXT_SIZE, nameRoom));
|
|
93
|
+
return lines([chip, name, type]);
|
|
94
|
+
}));
|
|
95
|
+
};
|
|
96
|
+
/** The closing row of a folded card: a dashed rule, then how many columns stayed out of the picture. */
|
|
97
|
+
const paintFold = (placed, palette) => {
|
|
98
|
+
const { fold, box } = placed;
|
|
99
|
+
if (fold === undefined)
|
|
100
|
+
return "";
|
|
101
|
+
const styles = stylesFor(palette);
|
|
102
|
+
const label = `+ ${fold.hidden} ${fold.unchangedOnly ? "unchanged columns" : "more columns"}`;
|
|
103
|
+
return lines([
|
|
104
|
+
tag("path", {
|
|
105
|
+
class: "rule",
|
|
106
|
+
d: `M${coord(box.x + CARD_PADDING_X)},${coord(fold.top)} h${coord(box.width - CARD_PADDING_X * 2)}`,
|
|
107
|
+
stroke: palette.cardBorder,
|
|
108
|
+
"stroke-width": 1,
|
|
109
|
+
"stroke-dasharray": "3 3",
|
|
110
|
+
}),
|
|
111
|
+
textNode({
|
|
112
|
+
class: "fold",
|
|
113
|
+
x: coord(box.x + CARD_PADDING_X + KEY_CHIP_WIDTH + KEY_CHIP_GAP),
|
|
114
|
+
y: coord(fold.centre + 4),
|
|
115
|
+
"font-size": TABLE_ROW_TEXT_SIZE,
|
|
116
|
+
"font-family": styles.subtitle["font-family"],
|
|
117
|
+
fill: palette.muted,
|
|
118
|
+
}, label),
|
|
119
|
+
]);
|
|
120
|
+
};
|
|
121
|
+
const paintTable = (placed, palette) => {
|
|
122
|
+
const styles = stylesFor(palette);
|
|
123
|
+
const { table, box, titleSize } = placed;
|
|
124
|
+
const textX = box.x + CARD_PADDING_X + ICON_CHIP_SIZE + ICON_CHIP_GAP;
|
|
125
|
+
const textWidth = cardTextWidth(box.width, true);
|
|
126
|
+
const headerBottom = box.y + CARD_HEIGHT_WITH_SUBTITLE;
|
|
127
|
+
const groupClass = table.delta === "removed" ? "cardsh ghost" : table.delta === "unchanged" ? "cardsh context" : "cardsh";
|
|
128
|
+
return wrap("g", { class: groupClass, ...cardGroupAttributes(table.delta, palette) }, lines([
|
|
129
|
+
tag("rect", {
|
|
130
|
+
class: cardOutlineClass(table.delta),
|
|
131
|
+
x: coord(box.x),
|
|
132
|
+
y: coord(box.y),
|
|
133
|
+
width: coord(box.width),
|
|
134
|
+
height: coord(box.height),
|
|
135
|
+
rx: CARD_RADIUS,
|
|
136
|
+
...cardAttributes(table.delta, palette),
|
|
137
|
+
}),
|
|
138
|
+
tag("rect", {
|
|
139
|
+
class: "chip",
|
|
140
|
+
x: coord(box.x + CARD_PADDING_X),
|
|
141
|
+
y: coord(box.y + (CARD_HEIGHT_WITH_SUBTITLE - ICON_CHIP_SIZE) / 2),
|
|
142
|
+
width: ICON_CHIP_SIZE,
|
|
143
|
+
height: ICON_CHIP_SIZE,
|
|
144
|
+
rx: ICON_CHIP_RADIUS,
|
|
145
|
+
...styles.chip,
|
|
146
|
+
}),
|
|
147
|
+
tableGlyph(box.x + CARD_PADDING_X + ICON_CHIP_SIZE / 2, box.y + CARD_HEIGHT_WITH_SUBTITLE / 2, styles),
|
|
148
|
+
textNode({
|
|
149
|
+
class: table.delta === "removed" ? "ntitle strike" : "ntitle",
|
|
150
|
+
x: coord(textX),
|
|
151
|
+
y: coord(box.y + 27),
|
|
152
|
+
"font-size": titleSize,
|
|
153
|
+
...styles.title,
|
|
154
|
+
"text-decoration": table.delta === "removed" ? "line-through" : undefined,
|
|
155
|
+
}, truncate(table.label, "sans-bold", titleSize, textWidth)),
|
|
156
|
+
textNode({ class: "nsub", x: coord(textX), y: coord(box.y + 45), ...styles.subtitle }, truncate(tableSubtitle(placed), "mono", SUBTITLE_SIZE, textWidth)),
|
|
157
|
+
tag("path", {
|
|
158
|
+
class: "rule",
|
|
159
|
+
d: `M${coord(box.x)},${coord(headerBottom)} h${coord(box.width)}`,
|
|
160
|
+
stroke: palette.cardBorder,
|
|
161
|
+
"stroke-width": 1,
|
|
162
|
+
}),
|
|
163
|
+
paintColumns(placed, palette),
|
|
164
|
+
paintFold(placed, palette),
|
|
165
|
+
paintBadgeStrip(badgeStrip(box, badgesFor(table.badges, table.delta)), table.delta, palette),
|
|
166
|
+
]));
|
|
167
|
+
};
|
|
168
|
+
const paintRelation = (routed, palette) => {
|
|
169
|
+
const { relation, path, curve } = routed;
|
|
170
|
+
const tone = toneFor(relation.delta);
|
|
171
|
+
const classes = ["edge", `edge-${tone}`];
|
|
172
|
+
if (relation.delta === "unchanged")
|
|
173
|
+
classes.push("context");
|
|
174
|
+
return {
|
|
175
|
+
markup: lines([
|
|
176
|
+
tag("path", {
|
|
177
|
+
class: classes.join(" "),
|
|
178
|
+
d: path,
|
|
179
|
+
"marker-end": routed.head ? markerFor(tone) : undefined,
|
|
180
|
+
...relationAttributes(relation, palette),
|
|
181
|
+
}),
|
|
182
|
+
tag("circle", {
|
|
183
|
+
class: "port",
|
|
184
|
+
cx: coord(curve.from.x),
|
|
185
|
+
cy: coord(curve.from.y),
|
|
186
|
+
r: 2.5,
|
|
187
|
+
fill: toneColour(palette, tone),
|
|
188
|
+
opacity: relation.delta === "removed" ? 0.7 : undefined,
|
|
189
|
+
}),
|
|
190
|
+
]),
|
|
191
|
+
pill: routed.pill === undefined || relation.label === undefined
|
|
192
|
+
? ""
|
|
193
|
+
: paintLabelPill(relation.label, routed.pill, tone, palette),
|
|
194
|
+
};
|
|
195
|
+
};
|
|
196
|
+
export const paintDataModel = (graph, palette) => {
|
|
197
|
+
const layout = layoutDataModel(graph);
|
|
198
|
+
const routed = routeRelations(layout, graph.relations);
|
|
199
|
+
const styles = stylesFor(palette);
|
|
200
|
+
const drawn = layout.tables.flatMap(({ table, box }) => {
|
|
201
|
+
const strip = badgeStrip(box, badgesFor(table.badges, table.delta));
|
|
202
|
+
return strip === undefined ? [box] : [box, strip.box];
|
|
203
|
+
});
|
|
204
|
+
const edgeMarkup = [];
|
|
205
|
+
const pillMarkup = [];
|
|
206
|
+
for (const relation of routed) {
|
|
207
|
+
const { markup, pill } = paintRelation(relation, palette);
|
|
208
|
+
edgeMarkup.push(markup);
|
|
209
|
+
pillMarkup.push(pill);
|
|
210
|
+
if (relation.pill !== undefined)
|
|
211
|
+
drawn.push(relation.pill);
|
|
212
|
+
}
|
|
213
|
+
const headerBaseline = layout.laneTop + (LANE_HEADER_BASELINE - LANE_TOP);
|
|
214
|
+
const lanes = layout.stores.map(({ store, box }) => {
|
|
215
|
+
const header = { id: store.id, label: store.label, subtitle: store.platform };
|
|
216
|
+
return lines([
|
|
217
|
+
tag("rect", {
|
|
218
|
+
class: "lanebox",
|
|
219
|
+
x: coord(box.x),
|
|
220
|
+
y: coord(box.y),
|
|
221
|
+
width: coord(box.width),
|
|
222
|
+
height: coord(box.height),
|
|
223
|
+
rx: LANE_RADIUS,
|
|
224
|
+
...styles.lane,
|
|
225
|
+
}),
|
|
226
|
+
textNode({ class: "lanelabel", x: coord(box.x + LANE_PADDING_X), y: coord(headerBaseline), ...styles.laneLabel }, laneHeaderText(header)),
|
|
227
|
+
]);
|
|
228
|
+
});
|
|
229
|
+
const canvas = canvasFor(layout, union([
|
|
230
|
+
...layout.stores.map(({ box }) => box),
|
|
231
|
+
...drawn,
|
|
232
|
+
...routed.map(({ curve }) => curveBounds(curve)),
|
|
233
|
+
]), DIAGRAM_MARGIN);
|
|
234
|
+
const painted = lines([
|
|
235
|
+
wrap("g", {}, lines(lanes)),
|
|
236
|
+
wrap("g", {}, lines(edgeMarkup)),
|
|
237
|
+
wrap("g", {}, lines(layout.tables.map((table) => paintTable(table, palette)))),
|
|
238
|
+
wrap("g", {}, lines(pillMarkup)),
|
|
239
|
+
]);
|
|
240
|
+
return {
|
|
241
|
+
width: canvas.width,
|
|
242
|
+
height: canvas.height,
|
|
243
|
+
body: shifted(canvas, painted),
|
|
244
|
+
atlas: {
|
|
245
|
+
...emptyAtlas(),
|
|
246
|
+
lanes: atlasBoxes(layout.stores.map(({ store, box }) => ({ id: store.id, box })), canvas),
|
|
247
|
+
tables: atlasBoxes(layout.tables.map(({ table, box }) => ({ id: table.id, box })), canvas),
|
|
248
|
+
edges: atlasBoxes(routed.map(({ relation, curve }) => ({ id: relation.id, box: curveBounds(curve) })), canvas),
|
|
249
|
+
},
|
|
250
|
+
};
|
|
251
|
+
};
|
|
252
|
+
//# sourceMappingURL=datamodel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datamodel.js","sourceRoot":"","sources":["../../src/svg/datamodel.ts"],"names":[],"mappings":"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"}
|
package/dist/svg/icons.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { NodeKind } from "@coldtea/pr-lens-schema";
|
|
2
2
|
import type { SvgStyles } from "./styles.js";
|
|
3
|
+
/** A table: a box with a header rule and a column divider. */
|
|
4
|
+
export declare const tableGlyph: (cx: number, cy: number, styles: SvgStyles) => string;
|
|
3
5
|
export declare const glyphGroup: (kind: NodeKind, cx: number, cy: number, styles: SvgStyles) => string;
|
|
4
6
|
//# sourceMappingURL=icons.d.ts.map
|
package/dist/svg/icons.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/svg/icons.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA8H7C,eAAO,MAAM,UAAU,SAAU,QAAQ,MAAM,MAAM,MAAM,MAAM,UAAU,SAAS,KAAG,MACvC,CAAC"}
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/svg/icons.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA8H7C,8DAA8D;AAC9D,eAAO,MAAM,UAAU,OAAQ,MAAM,MAAM,MAAM,UAAU,SAAS,KAAG,MAiBpE,CAAC;AAEJ,eAAO,MAAM,UAAU,SAAU,QAAQ,MAAM,MAAM,MAAM,MAAM,UAAU,SAAS,KAAG,MACvC,CAAC"}
|
package/dist/svg/icons.js
CHANGED
|
@@ -110,5 +110,19 @@ const kindGlyph = (kind, cx, cy, styles) => {
|
|
|
110
110
|
return assertNever(kind, "Unhandled node kind");
|
|
111
111
|
}
|
|
112
112
|
};
|
|
113
|
+
/** A table: a box with a header rule and a column divider. */
|
|
114
|
+
export const tableGlyph = (cx, cy, styles) => wrap("g", {}, lines([
|
|
115
|
+
tag("rect", {
|
|
116
|
+
class: "glyph-stroke",
|
|
117
|
+
x: coord(cx - 7),
|
|
118
|
+
y: coord(cy - 6),
|
|
119
|
+
width: 14,
|
|
120
|
+
height: 12,
|
|
121
|
+
rx: 2,
|
|
122
|
+
...styles.glyphStroke,
|
|
123
|
+
}),
|
|
124
|
+
tag("path", { class: "glyph-stroke", d: `M${coord(cx - 7)},${coord(cy - 2)} h14`, ...styles.glyphStroke }),
|
|
125
|
+
tag("path", { class: "glyph-stroke", d: `M${coord(cx - 2)},${coord(cy - 2)} v8`, ...styles.glyphStroke }),
|
|
126
|
+
]));
|
|
113
127
|
export const glyphGroup = (kind, cx, cy, styles) => wrap("g", {}, kindGlyph(kind, cx, cy, styles));
|
|
114
128
|
//# sourceMappingURL=icons.js.map
|
package/dist/svg/icons.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/svg/icons.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/svg/icons.ts"],"names":[],"mappings":"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"}
|
package/dist/svg/styles.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Delta, FlowMessage, GraphEdge } from "@coldtea/pr-lens-schema";
|
|
1
|
+
import type { Delta, FlowMessage, GraphEdge, Relation } from "@coldtea/pr-lens-schema";
|
|
2
2
|
import type { Palette } from "../theme.js";
|
|
3
3
|
import type { Attributes } from "./primitives.js";
|
|
4
4
|
import { type Tone } from "./document.js";
|
|
@@ -70,5 +70,7 @@ export declare const badgeColours: (tone: Tone, palette: Palette) => {
|
|
|
70
70
|
text: string;
|
|
71
71
|
};
|
|
72
72
|
export declare const edgeAttributes: (edge: GraphEdge, palette: Palette) => Attributes;
|
|
73
|
+
/** A key between tables: an edge, dotted when nothing enforces it. */
|
|
74
|
+
export declare const relationAttributes: (relation: Relation, palette: Palette) => Attributes;
|
|
73
75
|
export declare const messageAttributes: (message: FlowMessage, palette: Palette) => Attributes;
|
|
74
76
|
//# sourceMappingURL=styles.d.ts.map
|
package/dist/svg/styles.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/svg/styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/svg/styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAG/D,eAAO,MAAM,SAAS,YAAa,OAAO;;QAChC,IAAI;;;QACC,WAAW;QAAM,aAAa;QAAO,gBAAgB;QAAW,IAAI;;;QACxE,aAAa;QAAO,IAAI;;;;;;;;QAEzB,IAAI;;;QACH,IAAI;;;QACE,MAAM;QAAiB,cAAc;QAAO,IAAI;;;QAClD,WAAW;QAAO,aAAa;QAAO,gBAAgB;;;QAC3D,IAAI;QAAU,cAAc;QAAK,OAAO;;;QACxC,IAAI;QAAgB,MAAM;QAAsB,cAAc;;;QAC1D,WAAW;QAAO,aAAa;;;QAC/B,MAAM;QAAoB,cAAc;QAAK,kBAAkB;;;QAC7D,IAAI;QAAqB,MAAM;;CAC7C,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAiBrD,eAAO,MAAM,cAAc,UAAW,KAAK,WAAW,OAAO,KAAG,UAI9D,CAAC;AAgBH,eAAO,MAAM,mBAAmB,UAAW,KAAK,WAAW,OAAO,KAAG,UAGnE,CAAC;AAEH,eAAO,MAAM,YAAY,SAAU,IAAI,WAAW,OAAO;;;;CAaxD,CAAC;AAUF,eAAO,MAAM,cAAc,SAAU,SAAS,WAAW,OAAO,KAAG,UAelE,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,kBAAkB,aAAc,QAAQ,WAAW,OAAO,KAAG,UAIxE,CAAC;AAEH,eAAO,MAAM,iBAAiB,YAAa,WAAW,WAAW,OAAO,KAAG,UAe1E,CAAC"}
|
package/dist/svg/styles.js
CHANGED
|
@@ -90,6 +90,12 @@ export const edgeAttributes = (edge, palette) => {
|
|
|
90
90
|
return assertNever(edge.emphasis);
|
|
91
91
|
}
|
|
92
92
|
};
|
|
93
|
+
/** A key between tables: an edge, dotted when nothing enforces it. */
|
|
94
|
+
export const relationAttributes = (relation, palette) => ({
|
|
95
|
+
...strokeAttributes(relation.delta, palette),
|
|
96
|
+
...(relation.delta === "unchanged" ? { opacity: 0.82 } : {}),
|
|
97
|
+
...(relation.enforced ? {} : { "stroke-dasharray": "2 4" }),
|
|
98
|
+
});
|
|
93
99
|
export const messageAttributes = (message, palette) => {
|
|
94
100
|
const attributes = {
|
|
95
101
|
...strokeAttributes(message.delta, palette),
|
package/dist/svg/styles.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/svg/styles.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/svg/styles.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coldtea/pr-lens-renderer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "The PR Lens renderer: a schema-valid graph document in, a self-contained animated SVG out.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Coldtea AI",
|
|
@@ -40,12 +40,12 @@
|
|
|
40
40
|
"node": ">=20.11"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@coldtea/pr-lens-schema": "0.
|
|
43
|
+
"@coldtea/pr-lens-schema": "0.9.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
46
|
"@types/node": "^20.19.0",
|
|
47
47
|
"typescript": "7.0.2",
|
|
48
|
-
"vitest": "4.1.
|
|
48
|
+
"vitest": "4.1.12"
|
|
49
49
|
},
|
|
50
50
|
"scripts": {
|
|
51
51
|
"build": "rm -rf dist && tsc -p tsconfig.build.json",
|
package/src/atlas.ts
CHANGED
|
@@ -17,10 +17,12 @@ export type RenderAtlas = {
|
|
|
17
17
|
edges: Record<string, Box>;
|
|
18
18
|
/** Keyed by flow, then by step: a flow step's id is unique only inside its own flow. */
|
|
19
19
|
messages: Record<string, Record<string, Box>>;
|
|
20
|
+
/** The data-model lens's cards; its stores land in `lanes` and its relations in `edges`. */
|
|
21
|
+
tables: Record<string, Box>;
|
|
20
22
|
};
|
|
21
23
|
|
|
22
24
|
/** An atlas for a drawing that has placed nothing. */
|
|
23
|
-
export const emptyAtlas = (): RenderAtlas => ({ lanes: {}, nodes: {}, edges: {}, messages: {} });
|
|
25
|
+
export const emptyAtlas = (): RenderAtlas => ({ lanes: {}, nodes: {}, edges: {}, messages: {}, tables: {} });
|
|
24
26
|
|
|
25
27
|
export type AtlasEntry = { id: string; box: Box };
|
|
26
28
|
|
package/src/corrections.ts
CHANGED
|
@@ -39,9 +39,15 @@ const narrowScope = (
|
|
|
39
39
|
nodes: scope.nodes.filter(survives.node),
|
|
40
40
|
edges: scope.edges.filter(survives.edge),
|
|
41
41
|
flows: scope.flows.filter(survives.flow),
|
|
42
|
+
// Corrections address nodes; a table named here stays as it was.
|
|
43
|
+
tables: scope.tables,
|
|
42
44
|
};
|
|
43
45
|
const total =
|
|
44
|
-
narrowed.lanes.length +
|
|
46
|
+
narrowed.lanes.length +
|
|
47
|
+
narrowed.nodes.length +
|
|
48
|
+
narrowed.edges.length +
|
|
49
|
+
narrowed.flows.length +
|
|
50
|
+
narrowed.tables.length;
|
|
45
51
|
return total > 0 ? narrowed : undefined;
|
|
46
52
|
}
|
|
47
53
|
default:
|
package/src/design.ts
CHANGED
|
@@ -71,6 +71,32 @@ export const BADGE_RADIUS = 8;
|
|
|
71
71
|
/** How far the badge row rides above the top edge of the card it labels. */
|
|
72
72
|
export const BADGE_RISE = 8;
|
|
73
73
|
|
|
74
|
+
/** A table card: a node-sized header, a rule, then one row per column. */
|
|
75
|
+
export const TABLE_ROW_HEIGHT = 20;
|
|
76
|
+
export const TABLE_ROWS_PADDING_Y = 6;
|
|
77
|
+
export const TABLE_ROW_TEXT_SIZE = 11;
|
|
78
|
+
export const TABLE_ROW_TYPE_SIZE = 9.5;
|
|
79
|
+
/**
|
|
80
|
+
* A tall table folds: keys, changed columns and relation ends always draw,
|
|
81
|
+
* unchanged ones up to a few, the whole card up to a ceiling, and one closing
|
|
82
|
+
* row says how many were left out. A fold that would hide only a couple of
|
|
83
|
+
* rows is not worth its own row.
|
|
84
|
+
*/
|
|
85
|
+
export const TABLE_ROWS_MAX = 24;
|
|
86
|
+
export const TABLE_UNCHANGED_ROWS_MAX = 8;
|
|
87
|
+
export const TABLE_FOLD_MIN_HIDDEN = 4;
|
|
88
|
+
/** The fold row: a breath after the last column, the dashed rule, then a row for the count. */
|
|
89
|
+
export const TABLE_FOLD_GAP = TABLE_ROWS_PADDING_Y;
|
|
90
|
+
export const TABLE_FOLD_HEIGHT = TABLE_FOLD_GAP + TABLE_ROW_HEIGHT;
|
|
91
|
+
export const KEY_CHIP_WIDTH = 24;
|
|
92
|
+
export const KEY_CHIP_HEIGHT = 14;
|
|
93
|
+
export const KEY_CHIP_GAP = 8;
|
|
94
|
+
/** A relation that skips a lane crosses above the lanes, one band per route. */
|
|
95
|
+
export const OVER_PITCH = 16;
|
|
96
|
+
export const OVER_CLEARANCE = 10;
|
|
97
|
+
/** Arrows landing on one column fan out this far at most, and never past the row. */
|
|
98
|
+
export const PORT_FAN_MAX = 5;
|
|
99
|
+
|
|
74
100
|
export const PILL_HEIGHT = 15;
|
|
75
101
|
export const PILL_PADDING_X = 8;
|
|
76
102
|
export const PILL_TEXT_SIZE = 9.5;
|
|
@@ -67,13 +67,14 @@ export const badgeWidth = (text: string): number =>
|
|
|
67
67
|
* (e.g. "new" on a node whose delta is "added") is dropped so the card
|
|
68
68
|
* does not show it twice.
|
|
69
69
|
*/
|
|
70
|
-
export const
|
|
71
|
-
const
|
|
72
|
-
if (
|
|
73
|
-
|
|
74
|
-
return [...own, delta];
|
|
70
|
+
export const badgesFor = (own: readonly string[], delta: Delta): string[] => {
|
|
71
|
+
const text = deltaBadgeText(delta);
|
|
72
|
+
if (text === undefined) return [...own];
|
|
73
|
+
return [...own.filter((badge) => badge.toLowerCase() !== text.toLowerCase()), text];
|
|
75
74
|
};
|
|
76
75
|
|
|
76
|
+
export const cardBadges = (node: GraphNode): string[] => badgesFor(node.badges, node.delta);
|
|
77
|
+
|
|
77
78
|
export type PlacedNode = {
|
|
78
79
|
node: GraphNode;
|
|
79
80
|
box: Box;
|
|
@@ -95,11 +96,16 @@ export type PlacedLane = { lane: Lane; box: Box };
|
|
|
95
96
|
* returned when the card carries no badge, and the strip counts as occupied
|
|
96
97
|
* space so an edge label does not settle on top of it.
|
|
97
98
|
*/
|
|
98
|
-
export
|
|
99
|
-
|
|
99
|
+
export type BadgeRow = { badges: string[]; box: Box };
|
|
100
|
+
|
|
101
|
+
export const badgeRow = (placed: PlacedNode): BadgeRow | undefined =>
|
|
102
|
+
badgeStrip(placed.box, cardBadges(placed.node));
|
|
103
|
+
|
|
104
|
+
/** The strip above any card, from the badges it carries. */
|
|
105
|
+
export const badgeStrip = (card: Box, all: readonly string[]): BadgeRow | undefined => {
|
|
100
106
|
if (all.length === 0) return undefined;
|
|
101
107
|
|
|
102
|
-
const room =
|
|
108
|
+
const room = card.width - CARD_PADDING_X;
|
|
103
109
|
const shown: string[] = [];
|
|
104
110
|
let used = 0;
|
|
105
111
|
for (const text of [...all].reverse()) {
|
|
@@ -110,12 +116,12 @@ export const badgeRow = (placed: PlacedNode): { badges: string[]; box: Box } | u
|
|
|
110
116
|
}
|
|
111
117
|
if (shown.length === 0) return undefined;
|
|
112
118
|
|
|
113
|
-
const right =
|
|
119
|
+
const right = card.x + card.width - CARD_PADDING_X / 2;
|
|
114
120
|
return {
|
|
115
121
|
badges: shown,
|
|
116
122
|
box: {
|
|
117
123
|
x: right - used,
|
|
118
|
-
y:
|
|
124
|
+
y: card.y - BADGE_RISE,
|
|
119
125
|
width: used,
|
|
120
126
|
height: BADGE_HEIGHT,
|
|
121
127
|
},
|