@coldtea/pr-lens-renderer 0.2.6 → 0.3.1
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/README.md +2 -1
- package/dist/bounds.d.ts +6 -1
- package/dist/bounds.d.ts.map +1 -1
- package/dist/bounds.js +21 -0
- package/dist/bounds.js.map +1 -1
- package/dist/design.d.ts +5 -0
- package/dist/design.d.ts.map +1 -1
- package/dist/design.js +5 -0
- package/dist/design.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/layout/architecture.d.ts +2 -0
- package/dist/layout/architecture.d.ts.map +1 -1
- package/dist/layout/architecture.js +5 -0
- package/dist/layout/architecture.js.map +1 -1
- package/dist/layout/congestion.d.ts +5 -0
- package/dist/layout/congestion.d.ts.map +1 -1
- package/dist/layout/congestion.js +50 -12
- package/dist/layout/congestion.js.map +1 -1
- package/dist/layout/edges.d.ts +18 -3
- package/dist/layout/edges.d.ts.map +1 -1
- package/dist/layout/edges.js +93 -23
- package/dist/layout/edges.js.map +1 -1
- package/dist/layout/labels.d.ts +15 -4
- package/dist/layout/labels.d.ts.map +1 -1
- package/dist/layout/labels.js +404 -119
- package/dist/layout/labels.js.map +1 -1
- package/dist/manifest.d.ts +1 -1
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +3 -1
- package/dist/manifest.js.map +1 -1
- package/dist/render.d.ts +12 -2
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +2 -2
- package/dist/render.js.map +1 -1
- package/dist/svg/architecture.d.ts.map +1 -1
- package/dist/svg/architecture.js +3 -8
- package/dist/svg/architecture.js.map +1 -1
- package/dist/theme.d.ts +9 -8
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +61 -8
- package/dist/theme.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
- package/src/bounds.ts +29 -1
- package/src/design.ts +5 -0
- package/src/index.ts +2 -1
- package/src/layout/architecture.ts +7 -0
- package/src/layout/congestion.ts +71 -12
- package/src/layout/edges.ts +126 -21
- package/src/layout/labels.ts +495 -136
- package/src/manifest.ts +3 -2
- package/src/render.ts +19 -4
- package/src/svg/architecture.ts +3 -7
- package/src/theme.ts +62 -8
- package/src/version.ts +1 -1
package/README.md
CHANGED
|
@@ -17,7 +17,8 @@ const doc = parseGraphDoc(json);
|
|
|
17
17
|
// One diagram.
|
|
18
18
|
const { svg, width, height } = render(doc, { lens: "architecture", theme: "dark" });
|
|
19
19
|
|
|
20
|
-
// Every drill-down section, in
|
|
20
|
+
// Every drill-down section, in the light/dark pair, plus the manifest a comment
|
|
21
|
+
// is built from. Pass themes: ["neutral"] for a surface that shows one image.
|
|
21
22
|
const { assets, manifest } = renderAll(doc, { config });
|
|
22
23
|
```
|
|
23
24
|
|
package/dist/bounds.d.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import type { Box } from "./geometry.js";
|
|
1
|
+
import type { Box, Point } from "./geometry.js";
|
|
2
2
|
/** The smallest box containing both of them. */
|
|
3
3
|
export declare const covering: (a: Box, b: Box) => Box;
|
|
4
4
|
/** The smallest box containing all of them, or nothing when there are none. */
|
|
5
5
|
export declare const union: (boxes: readonly Box[]) => Box | undefined;
|
|
6
|
+
/** Zero-sized at the origin when there are no points. */
|
|
7
|
+
export declare const boundsOf: (points: readonly Point[]) => Box;
|
|
8
|
+
export declare const inflate: (box: Box, by: number) => Box;
|
|
9
|
+
/** Zero when the boxes touch or overlap. */
|
|
10
|
+
export declare const gapBetween: (a: Box, b: Box) => number;
|
|
6
11
|
export type Canvas = {
|
|
7
12
|
width: number;
|
|
8
13
|
height: number;
|
package/dist/bounds.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bounds.d.ts","sourceRoot":"","sources":["../src/bounds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"bounds.d.ts","sourceRoot":"","sources":["../src/bounds.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEhD,gDAAgD;AAChD,eAAO,MAAM,QAAQ,MAAO,GAAG,KAAK,GAAG,KAAG,GAOzC,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,KAAK,UAAW,SAAS,GAAG,EAAE,KAAG,GAAG,GAAG,SAIjD,CAAC;AAEJ,yDAAyD;AACzD,eAAO,MAAM,QAAQ,WAAY,SAAS,KAAK,EAAE,KAAG,GAWnD,CAAC;AAEF,eAAO,MAAM,OAAO,QAAS,GAAG,MAAM,MAAM,KAAG,GAK7C,CAAC;AAEH,4CAA4C;AAC5C,eAAO,MAAM,UAAU,MAAO,GAAG,KAAK,GAAG,KAAG,MAIzC,CAAC;AAEJ,MAAM,MAAM,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvF;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,SACd;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,SAChC,GAAG,GAAG,SAAS,UACd,MAAM,KACb,MAYF,CAAC"}
|
package/dist/bounds.js
CHANGED
|
@@ -8,6 +8,27 @@ export const covering = (a, b) => {
|
|
|
8
8
|
};
|
|
9
9
|
/** The smallest box containing all of them, or nothing when there are none. */
|
|
10
10
|
export const union = (boxes) => boxes.reduce((grown, box) => (grown === undefined ? box : covering(grown, box)), undefined);
|
|
11
|
+
/** Zero-sized at the origin when there are no points. */
|
|
12
|
+
export const boundsOf = (points) => {
|
|
13
|
+
const xs = points.map(({ x }) => x);
|
|
14
|
+
const ys = points.map(({ y }) => y);
|
|
15
|
+
const left = xs.length === 0 ? 0 : Math.min(...xs);
|
|
16
|
+
const top = ys.length === 0 ? 0 : Math.min(...ys);
|
|
17
|
+
return {
|
|
18
|
+
x: left,
|
|
19
|
+
y: top,
|
|
20
|
+
width: xs.length === 0 ? 0 : Math.max(...xs) - left,
|
|
21
|
+
height: ys.length === 0 ? 0 : Math.max(...ys) - top,
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export const inflate = (box, by) => ({
|
|
25
|
+
x: box.x - by,
|
|
26
|
+
y: box.y - by,
|
|
27
|
+
width: box.width + by * 2,
|
|
28
|
+
height: box.height + by * 2,
|
|
29
|
+
});
|
|
30
|
+
/** Zero when the boxes touch or overlap. */
|
|
31
|
+
export const gapBetween = (a, b) => Math.hypot(Math.max(b.x - (a.x + a.width), a.x - (b.x + b.width), 0), Math.max(b.y - (a.y + a.height), a.y - (b.y + b.height), 0));
|
|
11
32
|
/**
|
|
12
33
|
* A canvas big enough for everything that was drawn.
|
|
13
34
|
*
|
package/dist/bounds.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bounds.js","sourceRoot":"","sources":["../src/bounds.ts"],"names":[],"mappings":"AAEA,gDAAgD;AAChD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAM,EAAE,CAAM,EAAO,EAAE;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAExD,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,GAAG,EAAE,CAAC;AACxE,CAAC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,KAAqB,EAAmB,EAAE,CAC9D,KAAK,CAAC,MAAM,CACV,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EAClE,SAAS,CACV,CAAC;AAIJ;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,IAAuC,EACvC,KAAsB,EACtB,MAAc,EACN,EAAE;IACV,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IAEjG,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE7C,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;QAC/E,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;QAClF,MAAM;QACN,MAAM;KACP,CAAC;AACJ,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"bounds.js","sourceRoot":"","sources":["../src/bounds.ts"],"names":[],"mappings":"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"}
|
package/dist/design.d.ts
CHANGED
|
@@ -66,6 +66,11 @@ export declare const PILL_PADDING_X = 8;
|
|
|
66
66
|
export declare const PILL_TEXT_SIZE = 9.5;
|
|
67
67
|
/** Two label pills never sit closer than this, in either direction. */
|
|
68
68
|
export declare const PILL_CLEARANCE = 2;
|
|
69
|
+
/**
|
|
70
|
+
* A pill never comes closer than this to a card or its badges: any nearer and
|
|
71
|
+
* the label reads as part of the card instead of the line it rides.
|
|
72
|
+
*/
|
|
73
|
+
export declare const PILL_CARD_CLEARANCE = 6;
|
|
69
74
|
/**
|
|
70
75
|
* Routes travel in the gaps of the grid: vertical corridors beside lanes and
|
|
71
76
|
* horizontal bands between rows. Both gaps are physically 52px across — lane
|
package/dist/design.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design.d.ts","sourceRoot":"","sources":["../src/design.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,eAAO,MAAM,QAAQ,KAAK,CAAC;AAC3B,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,QAAQ,KAAK,CAAC;AAC3B,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,OAAO,KAAK,CAAC;AAE1B,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,sEAAsE;AACtE,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,4EAA4E;AAC5E,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,uEAAuE;AACvE,eAAO,MAAM,cAAc,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"design.d.ts","sourceRoot":"","sources":["../src/design.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,eAAO,MAAM,QAAQ,KAAK,CAAC;AAC3B,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,QAAQ,KAAK,CAAC;AAC3B,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAEtC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,OAAO,KAAK,CAAC;AAE1B,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAC5C,eAAO,MAAM,cAAc,KAAK,CAAC;AAEjC,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAClC,sEAAsE;AACtE,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,eAAe,MAAM,CAAC;AACnC,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,YAAY,IAAI,CAAC;AAC9B,4EAA4E;AAC5E,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,uEAAuE;AACvE,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC;;;GAGG;AACH,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;;;GAKG;AACH,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC;;;;;GAKG;AACH,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,iEAAiE;AACjE,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,sDAAsD;AACtD,eAAO,MAAM,UAAU,KAAK,CAAC;AAE7B;;;;GAIG;AACH,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,oEAAoE;AACpE,eAAO,MAAM,cAAc,MAAM,CAAC;AAClC,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAC;AACpC;;;;GAIG;AACH,eAAO,MAAM,cAAc,KAAK,CAAC;AACjC,+EAA+E;AAC/E,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,4EAA4E;AAC5E,eAAO,MAAM,2BAA2B,IAAI,CAAC"}
|
package/dist/design.js
CHANGED
|
@@ -66,6 +66,11 @@ export const PILL_PADDING_X = 8;
|
|
|
66
66
|
export const PILL_TEXT_SIZE = 9.5;
|
|
67
67
|
/** Two label pills never sit closer than this, in either direction. */
|
|
68
68
|
export const PILL_CLEARANCE = 2;
|
|
69
|
+
/**
|
|
70
|
+
* A pill never comes closer than this to a card or its badges: any nearer and
|
|
71
|
+
* the label reads as part of the card instead of the line it rides.
|
|
72
|
+
*/
|
|
73
|
+
export const PILL_CARD_CLEARANCE = 6;
|
|
69
74
|
/**
|
|
70
75
|
* Routes travel in the gaps of the grid: vertical corridors beside lanes and
|
|
71
76
|
* horizontal bands between rows. Both gaps are physically 52px across — lane
|
package/dist/design.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design.js","sourceRoot":"","sources":["../src/design.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AACvC,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAEtC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AACtC,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAC9B,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAClC,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAC9B,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,CAAC;AAE1B,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAC9B,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAC7B,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAC9B,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAC5C,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AAEjC,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,CAAC;AACjC,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAClC,sEAAsE;AACtE,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,CAAC;AAC7B,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAErC;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AACnC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AAEnC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AAEjC,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,CAAC;AAC/B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC;AACjC,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AACnC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AACnC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;AAC3B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAC9B,4EAA4E;AAC5E,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAE5B,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAC9B,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAChC,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,CAAC;AAClC,uEAAuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"design.js","sourceRoot":"","sources":["../src/design.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { RENDERER_NAME, RENDERER_VERSION } from "./version.js";
|
|
2
|
-
export { render, renderAll, type RenderAllOptions, type RenderAllResult, type RenderedAsset, type RenderedSvg, type RenderOptions, } from "./render.js";
|
|
2
|
+
export { render, renderAll, type RenderAllOptions, type RenderThemes, type RenderAllResult, type RenderedAsset, type RenderedSvg, type RenderOptions, } from "./render.js";
|
|
3
3
|
export { emptyAtlas, type RenderAtlas } from "./atlas.js";
|
|
4
4
|
export { PrLensRenderError, type RenderErrorCode } from "./errors.js";
|
|
5
5
|
export type { Box } from "./geometry.js";
|
|
6
|
-
export { paletteFor, THEMES, type Palette, type Theme } from "./theme.js";
|
|
6
|
+
export { paletteFor, THEMES, THEME_PAIR, type Palette, type Theme } from "./theme.js";
|
|
7
7
|
export { buildManifest, canonicalJson, contentHash, CONTENT_HASH_LENGTH, graphContentHash, renderAssetFileName, renderAssetId, type AssetAddress, } from "./manifest.js";
|
|
8
8
|
export { applyCorrections } from "./corrections.js";
|
|
9
9
|
export { findView, flattenViews, resolveScope, type ScopedGraph } from "./scope.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EACL,MAAM,EACN,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEtE,YAAY,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EACL,MAAM,EACN,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEtE,YAAY,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAEtF,OAAO,EACL,aAAa,EACb,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,KAAK,YAAY,GAClB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ export { RENDERER_NAME, RENDERER_VERSION } from "./version.js";
|
|
|
2
2
|
export { render, renderAll, } from "./render.js";
|
|
3
3
|
export { emptyAtlas } from "./atlas.js";
|
|
4
4
|
export { PrLensRenderError } from "./errors.js";
|
|
5
|
-
export { paletteFor, THEMES } from "./theme.js";
|
|
5
|
+
export { paletteFor, THEMES, THEME_PAIR } from "./theme.js";
|
|
6
6
|
export { buildManifest, canonicalJson, contentHash, CONTENT_HASH_LENGTH, graphContentHash, renderAssetFileName, renderAssetId, } from "./manifest.js";
|
|
7
7
|
export { applyCorrections } from "./corrections.js";
|
|
8
8
|
export { findView, flattenViews, resolveScope } from "./scope.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EACL,MAAM,EACN,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EACL,MAAM,EACN,SAAS,GAOV,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAoB,MAAM,YAAY,CAAC;AAE1D,OAAO,EAAE,iBAAiB,EAAwB,MAAM,aAAa,CAAC;AAItE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAA4B,MAAM,YAAY,CAAC;AAEtF,OAAO,EACL,aAAa,EACb,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,GAEd,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAoB,MAAM,YAAY,CAAC"}
|
|
@@ -37,6 +37,8 @@ export declare const badgeRow: (placed: PlacedNode) => {
|
|
|
37
37
|
badges: string[];
|
|
38
38
|
box: Box;
|
|
39
39
|
} | undefined;
|
|
40
|
+
/** Every card and badge strip: what a label pill must keep clear of. */
|
|
41
|
+
export declare const occupiedBoxes: (nodes: readonly PlacedNode[]) => Box[];
|
|
40
42
|
/**
|
|
41
43
|
* The gaps of the grid, for the router: the vertical corridors beside each
|
|
42
44
|
* lane's cards and the horizontal extents of every row. Corridor `i` runs to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architecture.d.ts","sourceRoot":"","sources":["../../src/layout/architecture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA+BnF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C,eAAO,MAAM,cAAc,UAAW,KAAK,KAAG,MAAM,GAAG,SAatD,CAAC;AAUF,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,MAC8C,CAAC;AAEzF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,SAAU,SAAS,KAAG,MAAM,EAKlD,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,GAAG,CAAC;IACT,wDAAwD;IACxD,QAAQ,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,GAAG,CAAA;CAAE,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,WAAY,UAAU,KAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,GAAG,CAAA;CAAE,GAAG,SAyB9E,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxC,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;CAClB,CAAC;AAkDF;;;;GAIG;AACH,eAAO,MAAM,aAAa,cAAe,MAAM,YAAY,OAAO,KAAG,MACa,CAAC;AAgBnF,eAAO,MAAM,kBAAkB,UACtB,WAAW,SACX,WAAW,GAAG,SAAS,eACjB,aAAa,KACzB,kBAiGF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,SAAU,IAAI,KAAG,MAM3C,CAAC"}
|
|
1
|
+
{"version":3,"file":"architecture.d.ts","sourceRoot":"","sources":["../../src/layout/architecture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AA+BnF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI/C,eAAO,MAAM,cAAc,UAAW,KAAK,KAAG,MAAM,GAAG,SAatD,CAAC;AAUF,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,MAC8C,CAAC;AAEzF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,SAAU,SAAS,KAAG,MAAM,EAKlD,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,GAAG,CAAC;IACT,wDAAwD;IACxD,QAAQ,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,GAAG,CAAA;CAAE,CAAC;AAElD;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,WAAY,UAAU,KAAG;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,GAAG,EAAE,GAAG,CAAA;CAAE,GAAG,SAyB9E,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,aAAa,UAAW,SAAS,UAAU,EAAE,KAAG,GAAG,EAI5D,CAAC;AAEL;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxC,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7C,+EAA+E;IAC/E,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;CAClB,CAAC;AAkDF;;;;GAIG;AACH,eAAO,MAAM,aAAa,cAAe,MAAM,YAAY,OAAO,KAAG,MACa,CAAC;AAgBnF,eAAO,MAAM,kBAAkB,UACtB,WAAW,SACX,WAAW,GAAG,SAAS,eACjB,aAAa,KACzB,kBAiGF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,SAAU,IAAI,KAAG,MAM3C,CAAC"}
|
|
@@ -68,6 +68,11 @@ export const badgeRow = (placed) => {
|
|
|
68
68
|
},
|
|
69
69
|
};
|
|
70
70
|
};
|
|
71
|
+
/** Every card and badge strip: what a label pill must keep clear of. */
|
|
72
|
+
export const occupiedBoxes = (nodes) => nodes.flatMap((node) => {
|
|
73
|
+
const row = badgeRow(node);
|
|
74
|
+
return row === undefined ? [node.box] : [node.box, row.box];
|
|
75
|
+
});
|
|
71
76
|
const cardHeight = (node) => node.subtitle === undefined ? CARD_HEIGHT : CARD_HEIGHT_WITH_SUBTITLE;
|
|
72
77
|
/**
|
|
73
78
|
* Lane order: the document's explicit list first, for the lanes it names,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"architecture.js","sourceRoot":"","sources":["../../src/layout/architecture.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"architecture.js","sourceRoot":"","sources":["../../src/layout/architecture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { LayoutHints } from "@coldtea/pr-lens-schema";
|
|
2
|
+
import type { Box } from "../geometry.js";
|
|
2
3
|
import type { ScopedGraph } from "../scope.js";
|
|
3
4
|
import { type ArchitectureLayout } from "./architecture.js";
|
|
4
5
|
import { type RoutedEdge } from "./edges.js";
|
|
@@ -10,9 +11,13 @@ import { type RoutedEdge } from "./edges.js";
|
|
|
10
11
|
* moves the lanes or rows beside a saturated gap by one pitch step — a small
|
|
11
12
|
* change staying a small move — and an uncrowded document is laid out
|
|
12
13
|
* exactly as if this pass did not exist.
|
|
14
|
+
*
|
|
15
|
+
* A corridor is also widened when a label has nowhere on or beside its line
|
|
16
|
+
* to sit — a straight line across a corridor has only its width for a pill.
|
|
13
17
|
*/
|
|
14
18
|
export declare const relieveCongestion: (graph: ScopedGraph, hints: LayoutHints | undefined) => {
|
|
15
19
|
layout: ArchitectureLayout;
|
|
16
20
|
routed: RoutedEdge[];
|
|
21
|
+
pills: Map<string, Box>;
|
|
17
22
|
};
|
|
18
23
|
//# sourceMappingURL=congestion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"congestion.d.ts","sourceRoot":"","sources":["../../src/layout/congestion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"congestion.d.ts","sourceRoot":"","sources":["../../src/layout/congestion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAU3D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAGL,KAAK,kBAAkB,EAGxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,YAAY,CAAC;AAGpB;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,UACrB,WAAW,SACX,WAAW,GAAG,SAAS,KAC7B;IAAE,MAAM,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,UAAU,EAAE,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAkC7E,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { LANE_BOTTOM_PADDING, LANE_GAP, LANE_PADDING_X, ROW_GAP, TRACK_CLEARANCE, TRACK_PITCH_MIN, } from "../design.js";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { union } from "../bounds.js";
|
|
3
|
+
import { layoutArchitecture, occupiedBoxes, } from "./architecture.js";
|
|
4
|
+
import { chooseRetiredRoutes, routeAndCount, routeEdges, } from "./edges.js";
|
|
5
|
+
import { placeLabelPills } from "./labels.js";
|
|
4
6
|
/**
|
|
5
7
|
* Layout and routing with the pitch floor held: any gap whose traffic would
|
|
6
8
|
* compress its tracks below TRACK_PITCH_MIN is widened to exactly what that
|
|
@@ -9,29 +11,65 @@ import { channelTraffic, routeEdges } from "./edges.js";
|
|
|
9
11
|
* moves the lanes or rows beside a saturated gap by one pitch step — a small
|
|
10
12
|
* change staying a small move — and an uncrowded document is laid out
|
|
11
13
|
* exactly as if this pass did not exist.
|
|
14
|
+
*
|
|
15
|
+
* A corridor is also widened when a label has nowhere on or beside its line
|
|
16
|
+
* to sit — a straight line across a corridor has only its width for a pill.
|
|
12
17
|
*/
|
|
13
18
|
export const relieveCongestion = (graph, hints) => {
|
|
14
19
|
let expansions = { corridors: new Map(), bands: new Map() };
|
|
20
|
+
let labelRoom = new Map();
|
|
15
21
|
let layout = layoutArchitecture(graph, hints, expansions);
|
|
22
|
+
const retired = chooseRetiredRoutes(graph.edges, layout);
|
|
23
|
+
let placed;
|
|
16
24
|
// Widening never changes which gaps the routes choose — plans are made of
|
|
17
|
-
// lane and row indices
|
|
18
|
-
//
|
|
19
|
-
for (let round = 0; round <
|
|
20
|
-
const
|
|
21
|
-
|
|
25
|
+
// lane and row indices — so traffic settles after one widening. Label room
|
|
26
|
+
// only grows, so that settles too. The bound is a backstop.
|
|
27
|
+
for (let round = 0; round < 6; round += 1) {
|
|
28
|
+
const { routed, traffic } = routeAndCount(graph.edges, layout, retired);
|
|
29
|
+
const needed = expansionsFor(traffic, layout.grid, labelRoom);
|
|
30
|
+
if (!sameExpansions(needed, expansions)) {
|
|
31
|
+
expansions = needed;
|
|
32
|
+
layout = layoutArchitecture(graph, hints, expansions);
|
|
33
|
+
placed = undefined;
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
placed = { routed, labels: labelsOn(layout, routed) };
|
|
37
|
+
const grown = grownRoom(labelRoom, placed.labels.cramped, traffic);
|
|
38
|
+
if (sameEntries(grown, labelRoom))
|
|
22
39
|
break;
|
|
23
|
-
|
|
40
|
+
labelRoom = grown;
|
|
41
|
+
expansions = expansionsFor(traffic, layout.grid, labelRoom);
|
|
24
42
|
layout = layoutArchitecture(graph, hints, expansions);
|
|
43
|
+
placed = undefined;
|
|
25
44
|
}
|
|
26
|
-
|
|
45
|
+
if (placed === undefined) {
|
|
46
|
+
const routed = routeEdges(graph.edges, layout, retired);
|
|
47
|
+
placed = { routed, labels: labelsOn(layout, routed) };
|
|
48
|
+
}
|
|
49
|
+
return { layout, routed: placed.routed, pills: placed.labels.boxes };
|
|
50
|
+
};
|
|
51
|
+
const labelsOn = (layout, routed) => placeLabelPills(routed, occupiedBoxes(layout.nodes), union(layout.lanes.map(({ box }) => box)));
|
|
52
|
+
/** Air either side of a corridor-filling pill, so the arrowheads still show. */
|
|
53
|
+
const LABEL_CORRIDOR_AIR = 12;
|
|
54
|
+
/** Only ever grows, which is what lets the loop settle. */
|
|
55
|
+
const grownRoom = (room, cramped, traffic) => {
|
|
56
|
+
const grown = new Map(room);
|
|
57
|
+
for (const [id, pillWidth] of cramped) {
|
|
58
|
+
const width = pillWidth + LABEL_CORRIDOR_AIR * 2;
|
|
59
|
+
for (const index of traffic.corridorsByEdge.get(id) ?? [])
|
|
60
|
+
grown.set(index, Math.max(grown.get(index) ?? 0, width));
|
|
61
|
+
}
|
|
62
|
+
return grown;
|
|
27
63
|
};
|
|
28
64
|
/** Room for this many tracks at the floor pitch, plus clearance to the cards. */
|
|
29
65
|
const widthNeeded = (traffic) => (traffic - 1) * TRACK_PITCH_MIN + TRACK_CLEARANCE * 2;
|
|
30
66
|
const CORRIDOR_WIDTH = LANE_PADDING_X * 2 + LANE_GAP;
|
|
31
|
-
const expansionsFor = (traffic, grid) => {
|
|
67
|
+
const expansionsFor = (traffic, grid, labelRoom) => {
|
|
32
68
|
const corridors = new Map();
|
|
33
|
-
for (const
|
|
34
|
-
const
|
|
69
|
+
for (const index of new Set([...traffic.corridors.keys(), ...labelRoom.keys()])) {
|
|
70
|
+
const count = traffic.corridors.get(index) ?? 0;
|
|
71
|
+
const width = Math.max(count > 0 ? widthNeeded(count) : 0, labelRoom.get(index) ?? 0);
|
|
72
|
+
const extra = width - CORRIDOR_WIDTH;
|
|
35
73
|
if (extra > 0)
|
|
36
74
|
corridors.set(index, extra);
|
|
37
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"congestion.js","sourceRoot":"","sources":["../../src/layout/congestion.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,QAAQ,EACR,cAAc,EACd,OAAO,EACP,eAAe,EACf,eAAe,GAChB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"congestion.js","sourceRoot":"","sources":["../../src/layout/congestion.ts"],"names":[],"mappings":"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"}
|
package/dist/layout/edges.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export type RoutedEdge = {
|
|
|
22
22
|
edge: GraphEdge;
|
|
23
23
|
path: string;
|
|
24
24
|
curve: Curve;
|
|
25
|
-
/** Centre of the longest straight run — where
|
|
25
|
+
/** Centre of the longest straight run — where a pill with no room on its route starts looking. */
|
|
26
26
|
labelAnchor: Point | undefined;
|
|
27
27
|
};
|
|
28
28
|
/**
|
|
@@ -32,10 +32,20 @@ export type RoutedEdge = {
|
|
|
32
32
|
* off the edge would simply be clipped.
|
|
33
33
|
*/
|
|
34
34
|
export declare const curveBounds: (curve: Curve) => Box;
|
|
35
|
-
export
|
|
35
|
+
export type RetiredRoutes = ReadonlyMap<string, "direct" | "exile">;
|
|
36
|
+
/**
|
|
37
|
+
* Direct or exile for each retired connection, whichever costs less in
|
|
38
|
+
* length plus crossings. Exile keeps retired paths out of the living graph,
|
|
39
|
+
* but in a wide diagram it sends the reader around everything. Decided on
|
|
40
|
+
* the first layout and held, so widening a gap can never flip a route.
|
|
41
|
+
*/
|
|
42
|
+
export declare const chooseRetiredRoutes: (edges: readonly GraphEdge[], layout: ArchitectureLayout) => RetiredRoutes;
|
|
43
|
+
export declare const routeEdges: (edges: readonly GraphEdge[], layout: ArchitectureLayout, retired: RetiredRoutes) => RoutedEdge[];
|
|
36
44
|
export type ChannelTraffic = {
|
|
37
45
|
corridors: ReadonlyMap<number, number>;
|
|
38
46
|
bands: ReadonlyMap<number, number>;
|
|
47
|
+
/** Where room for each edge's label would have to come from. */
|
|
48
|
+
corridorsByEdge: ReadonlyMap<string, readonly number[]>;
|
|
39
49
|
};
|
|
40
50
|
/**
|
|
41
51
|
* How many runs each gap of this layout would carry, counted from the same
|
|
@@ -43,6 +53,11 @@ export type ChannelTraffic = {
|
|
|
43
53
|
* whether a gap is wide enough for its traffic before anything is drawn
|
|
44
54
|
* into it.
|
|
45
55
|
*/
|
|
46
|
-
export declare const channelTraffic: (edges: readonly GraphEdge[], layout: ArchitectureLayout) => ChannelTraffic;
|
|
56
|
+
export declare const channelTraffic: (edges: readonly GraphEdge[], layout: ArchitectureLayout, retired: RetiredRoutes) => ChannelTraffic;
|
|
57
|
+
/** One routing pass, shared by drawing and gap sizing. */
|
|
58
|
+
export declare const routeAndCount: (edges: readonly GraphEdge[], layout: ArchitectureLayout, retired: RetiredRoutes) => {
|
|
59
|
+
routed: RoutedEdge[];
|
|
60
|
+
traffic: ChannelTraffic;
|
|
61
|
+
};
|
|
47
62
|
export {};
|
|
48
63
|
//# sourceMappingURL=edges.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edges.d.ts","sourceRoot":"","sources":["../../src/layout/edges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"edges.d.ts","sourceRoot":"","sources":["../../src/layout/edges.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAYzD,OAAO,EAAoB,KAAK,GAAG,EAAE,KAAK,KAAK,EAAa,MAAM,gBAAgB,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAsC,MAAM,mBAAmB,CAAC;AAGhG;;;GAGG;AACH,KAAK,OAAO,GACR;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,KAAK,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,KAAK,CAAA;CAAE,CAAC;AAE9D,MAAM,MAAM,KAAK,GAAG;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC;AAEzD,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;IACb,kGAAkG;IAClG,WAAW,EAAE,KAAK,GAAG,SAAS,CAAC;CAChC,CAAC;AAoDF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,UAAW,KAAK,KAAG,GAoB1C,CAAC;AA+eF,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC;AAKpE;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,UACvB,SAAS,SAAS,EAAE,UACnB,kBAAkB,KACzB,aAqCF,CAAC;AAYF,eAAO,MAAM,UAAU,UACd,SAAS,SAAS,EAAE,UACnB,kBAAkB,WACjB,aAAa,KACrB,UAAU,EAA8C,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,gEAAgE;IAChE,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;CACzD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,UAClB,SAAS,SAAS,EAAE,UACnB,kBAAkB,WACjB,aAAa,KACrB,cAA+D,CAAC;AAEnE,0DAA0D;AAC1D,eAAO,MAAM,aAAa,UACjB,SAAS,SAAS,EAAE,UACnB,kBAAkB,WACjB,aAAa,KACrB;IAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAsBjD,CAAC"}
|