@knowvah/dot-engine 2.0.0 → 2.0.2

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.
Files changed (50) hide show
  1. package/dist/async/collect.d.ts.map +1 -1
  2. package/dist/async/render-async.d.ts.map +1 -1
  3. package/dist/gvc/device-labels.d.ts +30 -0
  4. package/dist/gvc/device-labels.d.ts.map +1 -0
  5. package/dist/gvc/device-transform.d.ts +22 -0
  6. package/dist/gvc/device-transform.d.ts.map +1 -0
  7. package/dist/gvc/device.d.ts +2 -42
  8. package/dist/gvc/device.d.ts.map +1 -1
  9. package/dist/index.js +174 -137
  10. package/dist/index.js.map +4 -4
  11. package/dist/layout/dot/graph-label.d.ts +10 -0
  12. package/dist/layout/dot/graph-label.d.ts.map +1 -1
  13. package/dist/layout/fdp/normalize.d.ts +2 -1
  14. package/dist/layout/fdp/normalize.d.ts.map +1 -1
  15. package/dist/layout/fdp/xlayout.d.ts +1 -1
  16. package/dist/layout/fdp/xlayout.d.ts.map +1 -1
  17. package/dist/layout/neato/dijkstra.d.ts +0 -32
  18. package/dist/layout/neato/dijkstra.d.ts.map +1 -1
  19. package/dist/layout/neato/fdp-adjust.d.ts +14 -3
  20. package/dist/layout/neato/fdp-adjust.d.ts.map +1 -1
  21. package/dist/layout/neato/index.d.ts +5 -5
  22. package/dist/layout/neato/index.d.ts.map +1 -1
  23. package/dist/layout/neato/sc-adjust.d.ts +2 -9
  24. package/dist/layout/neato/sc-adjust.d.ts.map +1 -1
  25. package/dist/layout/neato/simple-scale.d.ts +15 -0
  26. package/dist/layout/neato/simple-scale.d.ts.map +1 -0
  27. package/dist/layout/sfdp/index.d.ts.map +1 -1
  28. package/dist/render/public.d.ts +5 -0
  29. package/dist/render/public.d.ts.map +1 -1
  30. package/dist/render.js +171 -134
  31. package/dist/render.js.map +4 -4
  32. package/package.json +1 -1
  33. package/src/async/collect.ts +2 -14
  34. package/src/async/render-async.ts +1 -9
  35. package/src/gvc/device-labels.ts +98 -0
  36. package/src/gvc/device-transform.ts +58 -0
  37. package/src/gvc/device.ts +8 -132
  38. package/src/layout/dot/graph-label.ts +6 -1
  39. package/src/layout/fdp/normalize.ts +12 -8
  40. package/src/layout/fdp/xlayout.ts +8 -6
  41. package/src/layout/neato/dijkstra.ts +0 -141
  42. package/src/layout/neato/fdp-adjust.ts +33 -8
  43. package/src/layout/neato/index.ts +13 -12
  44. package/src/layout/neato/sc-adjust.ts +2 -16
  45. package/src/layout/neato/simple-scale.ts +54 -0
  46. package/src/layout/sfdp/index.ts +2 -1
  47. package/src/render/public.ts +6 -5
  48. package/dist/layout/neato/overlap.d.ts +0 -85
  49. package/dist/layout/neato/overlap.d.ts.map +0 -1
  50. package/src/layout/neato/overlap.ts +0 -158
@@ -7,6 +7,16 @@ import type { Graph } from '../../model/graph.js';
7
7
  import type { TextMeasurer } from '../../common/textmeasure.js';
8
8
  /** Graph has a label. @see lib/common/const.h:GRAPH_LABEL */
9
9
  export declare const GRAPH_LABEL: number;
10
+ /**
11
+ * Graph/cluster label font, read through graphAttrInherited.
12
+ * @internal also used by src/async/collect.ts to request the same face.
13
+ * @see lib/common/input.c:do_graph_label
14
+ */
15
+ export declare function readFontParams(sg: Graph): {
16
+ fontsize: number;
17
+ fontname: string;
18
+ fontcolor: string;
19
+ };
10
20
  /**
11
21
  * Compute cluster label dimensions and set sg.info.border so that clustHt
12
22
  * accounts for label height.
@@ -1 +1 @@
1
- {"version":3,"file":"graph-label.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/graph-label.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAKhE,6DAA6D;AAC7D,eAAO,MAAM,WAAW,QAAS,CAAC;AAmElC;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,CAuBhF"}
1
+ {"version":3,"file":"graph-label.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/graph-label.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAKhE,6DAA6D;AAC7D,eAAO,MAAM,WAAW,QAAS,CAAC;AA8ClC;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,KAAK,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAMnG;AAeD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,CAuBhF"}
@@ -12,7 +12,8 @@ import type { Graph } from '../../model/graph.js';
12
12
  /**
13
13
  * If "normalize" is set, move the first node to the origin, then
14
14
  * rotate the layout so the first edge sits at the given angle.
15
+ * Returns 1 if nodes moved, else 0.
15
16
  * @see lib/neatogen/adjust.c:normalize (15.0.0)
16
17
  */
17
- export declare function normalizeG(g: Graph): void;
18
+ export declare function normalizeG(g: Graph): number;
18
19
  //# sourceMappingURL=normalize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/layout/fdp/normalize.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAyClD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CA0BzC"}
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/layout/fdp/normalize.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAyClD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CA6B3C"}
@@ -3,7 +3,7 @@ import { type XParams } from './fdp-model.js';
3
3
  /**
4
4
  * Overlap-removal dispatch on the overlap attribute:
5
5
  * ""/null → default "9:prism"; "n:mode" → n x_layout tries, then
6
- * removeOverlap with mode; "true" → keep overlaps.
6
+ * removeOverlapAs with mode; "true" → keep overlaps.
7
7
  * @see lib/fdpgen/xlayout.c:fdp_xLayout
8
8
  */
9
9
  export declare function fdpXLayout(g: Graph, xpms: XParams): void;
@@ -1 +1 @@
1
- {"version":3,"file":"xlayout.d.ts","sourceRoot":"","sources":["../../../src/layout/fdp/xlayout.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAKlD,OAAO,EACL,KAAK,OAAO,EAKb,MAAM,gBAAgB,CAAC;AAsQxB;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAMxD"}
1
+ {"version":3,"file":"xlayout.d.ts","sourceRoot":"","sources":["../../../src/layout/fdp/xlayout.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAKlD,OAAO,EACL,KAAK,OAAO,EAKb,MAAM,gBAAgB,CAAC;AAuQxB;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAMxD"}
@@ -1,5 +1,4 @@
1
1
  /** @see lib/neatogen/dijkstra.c */
2
- import type { GraphSgd } from './sgd.js';
3
2
  /**
4
3
  * Sparse-graph vertex descriptor used by neato layout algorithms.
5
4
  * Matches `vtx_data` in lib/neatogen/sparsegraph.h.
@@ -46,35 +45,4 @@ export declare function dijkstraRelax(closest: number, closestDist: number, grap
46
45
  * @see lib/neatogen/dijkstra.c:dijkstra_f
47
46
  */
48
47
  export declare function dijkstra(src: number, graph: VtxData[], n: number, dist: Float32Array): void;
49
- /**
50
- * BFS single-source distances for unweighted graphs.
51
- * Fills `dist` with hop counts; unreachable nodes get BFS_INF (0x7fffffff).
52
- * edges[0] of each vertex is the self-loop and is skipped.
53
- * @see lib/neatogen/bfs.c:bfs
54
- */
55
- export declare function bfsDistances(src: number, graph: VtxData[], n: number, dist: Float32Array): void;
56
- /**
57
- * All-pairs shortest paths (unweighted), packed upper-triangular.
58
- * Length n*(n+1)/2; index for (i,j) j>=i: i*(2n-i-1)/2 + j.
59
- * @see lib/neatogen/stress.c:compute_apsp_packed
60
- */
61
- export declare function computeApspPacked(graph: VtxData[], n: number): Float32Array;
62
- /**
63
- * All-pairs shortest paths (weighted), packed upper-triangular.
64
- * Length n*(n+1)/2.
65
- * @see lib/neatogen/stress.c:compute_weighted_apsp_packed
66
- */
67
- export declare function computeWeightedApspPacked(graph: VtxData[], n: number): Float32Array;
68
- /** Initialise SGD dists from source's adjacency list. @internal */
69
- export declare function sgdInitDist(graph: GraphSgd, src: number, dists: Float32Array): void;
70
- /** Relax SGD neighbours of `closest` and push updates onto `heap`. @internal */
71
- export declare function sgdRelaxNeighbors(graph: GraphSgd, closest: number, d: number, dists: Float32Array, heap: number[]): void;
72
- /**
73
- * Single-source shortest paths for the SGD engine.
74
- * Writes terms for all reachable `j < src` and pinned nodes.
75
- * Returns the count of terms written.
76
- *
77
- * @see lib/neatogen/dijkstra.c:dijkstra_sgd
78
- */
79
- export declare function dijkstraSgd(graph: GraphSgd, src: number, terms: TermSgd[]): number;
80
48
  //# sourceMappingURL=dijkstra.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dijkstra.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/dijkstra.ts"],"names":[],"mappings":"AACA,mCAAmC;AAEnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;;;;;;GASG;AACH,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AASD,uDAAuD;AACvD,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,YAAY,EAClB,GAAG,EAAE,MAAM,GACV,IAAI,CAWN;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAcrE;AAED,iEAAiE;AACjE,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,CAOlE;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,YAAY,GACjB,MAAM,EAAE,CAMV;AAMD,yDAAyD;AACzD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EAAE,EAChB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,YAAY,GACjB,IAAI,CAKN;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,OAAO,EAAE,EAChB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,EAAE,GACb,IAAI,CAUN;AAMD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EAAE,EAChB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,YAAY,GACjB,IAAI,CASN;AAMD;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EAAE,EAChB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,YAAY,GACjB,IAAI,CAeN;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,CAS3E;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,OAAO,EAAE,EAChB,CAAC,EAAE,MAAM,GACR,YAAY,CASd;AAMD,mEAAmE;AACnE,wBAAgB,WAAW,CACzB,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,GAClB,IAAI,CAMN;AAED,gFAAgF;AAChF,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,MAAM,EACf,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE,MAAM,EAAE,GACb,IAAI,CAUN;AAMD;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,QAAQ,EACf,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EAAE,GACf,MAAM,CAgBR"}
1
+ {"version":3,"file":"dijkstra.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/dijkstra.ts"],"names":[],"mappings":"AACA,mCAAmC;AAEnC;;;;;;;;;GASG;AACH,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAMD,uDAAuD;AACvD,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EAAE,EACd,IAAI,EAAE,YAAY,EAClB,GAAG,EAAE,MAAM,GACV,IAAI,CAWN;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAcrE;AAED,iEAAiE;AACjE,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,GAAG,MAAM,CAOlE;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,YAAY,GACjB,MAAM,EAAE,CAMV;AAMD,yDAAyD;AACzD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EAAE,EAChB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,YAAY,GACjB,IAAI,CAKN;AAED,uDAAuD;AACvD,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,OAAO,EAAE,EAChB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,EAAE,GACb,IAAI,CAUN;AAMD;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,OAAO,EAAE,EAChB,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,YAAY,GACjB,IAAI,CASN"}
@@ -38,16 +38,22 @@ export interface AdjustData {
38
38
  print: string;
39
39
  value: number;
40
40
  }
41
+ /**
42
+ * getAdjustMode's fallback warning: a value that is not a mode name, not
43
+ * prism*, and not a boolean is used as `false` (prism) with this warning.
44
+ * @see lib/neatogen/adjust.c:getAdjustMode (unmappable branch)
45
+ */
46
+ export declare function warnUnrecognizedOverlap(flag: string | undefined): void;
41
47
  /**
42
48
  * Resolve an `overlap` value to its adjust mode (the PRISM try count lands in
43
- * `value`).
49
+ * `value`), warning as C does for an unrecognized value.
44
50
  * @see lib/neatogen/adjust.c:getAdjustMode
45
51
  */
46
52
  export declare function getAdjustMode(flag: string | undefined): AdjustData;
47
53
  /**
48
54
  * Use `am` to decide if and how to remove node overlaps. normalize and
49
- * simpleScale (only active with the `normalize`/`scale` attributes) are not
50
- * ported (see sc-adjust module doc).
55
+ * simpleScale run first, whatever the mode (the `normalize` / `scale`
56
+ * attributes); returns non-zero if nodes moved.
51
57
  * @see lib/neatogen/adjust.c:removeOverlapWith
52
58
  */
53
59
  export declare function removeOverlapWith(g: Graph, am: AdjustData): number;
@@ -56,4 +62,9 @@ export declare function removeOverlapWith(g: Graph, am: AdjustData): number;
56
62
  * @see lib/neatogen/adjust.c:adjustNodes / removeOverlapAs
57
63
  */
58
64
  export declare function adjustNodesFull(g: Graph): number;
65
+ /**
66
+ * The graph's `overlap` value resolved once (agget falls back to the root).
67
+ * @see lib/neatogen/adjust.c:graphAdjustMode
68
+ */
69
+ export declare function graphAdjustMode(g: Graph): AdjustData;
59
70
  //# sourceMappingURL=fdp-adjust.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fdp-adjust.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/fdp-adjust.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AA2ClD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAUzE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAgCtD;AAED;wCACwC;AACxC,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,MAAM,IAAI,CAAC;AACxB,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,OAAO,KAAK,CAAC;AAC1B,eAAO,MAAM,QAAQ,KAAK,CAAC;AAC3B,eAAO,MAAM,QAAQ,KAAK,CAAC;AAE3B,kEAAkE;AAClE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAsBD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAMlE;AA8CD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,GAAG,MAAM,CAKlE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAGhD"}
1
+ {"version":3,"file":"fdp-adjust.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/fdp-adjust.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AA6ClD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAUzE;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAgCtD;AAED;wCACwC;AACxC,eAAO,MAAM,OAAO,IAAI,CAAC;AACzB,eAAO,MAAM,MAAM,IAAI,CAAC;AACxB,eAAO,MAAM,QAAQ,IAAI,CAAC;AAC1B,eAAO,MAAM,SAAS,IAAI,CAAC;AAC3B,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,WAAW,KAAK,CAAC;AAC9B,eAAO,MAAM,OAAO,KAAK,CAAC;AAC1B,eAAO,MAAM,QAAQ,KAAK,CAAC;AAC3B,eAAO,MAAM,QAAQ,KAAK,CAAC;AAE3B,kEAAkE;AAClE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAsBD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAMtE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAOlE;AA8CD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,GAAG,MAAM,CAMlE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAGhD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU,CAEpD"}
@@ -11,6 +11,7 @@
11
11
  */
12
12
  import type { Graph } from '../../model/graph.js';
13
13
  import type { LayoutEngine } from '../../gvc/context.js';
14
+ import { type AdjustData } from './fdp-adjust.js';
14
15
  export { MODE_KK, MODE_MAJOR, MODE_HIER, MODE_IPSEP, MODE_SGD, MODEL_SHORTPATH, MODEL_CIRCUIT, MODEL_SUBSET, MODEL_MDS, neatoInitNode, setSeed, solveModel, neatoTranslate, neatoSetAspect, neatoCleanup, } from './init.js';
15
16
  /**
16
17
  * Parse the root `mode` attribute into a numeric mode constant (C neatoMode).
@@ -27,14 +28,13 @@ export declare function parseMode(g: Graph): number;
27
28
  */
28
29
  export declare function parseModel(g: Graph): number;
29
30
  /**
30
- * Remove node overlaps per the `overlap` attribute: C's removeOverlapWith
31
- * dispatch (prism, scale family, oscale, ortho*, portho*, vpsc, voronoi) for
32
- * every mode, as neato_layout's adjustNodes call does.
31
+ * Remove node overlaps with the mode neato_layout resolved once
32
+ * (graphAdjustMode): C's removeOverlapWith dispatch for every mode.
33
33
  *
34
- * @see lib/neatogen/neatoinit.c:neato_layout (adjustNodes call)
34
+ * @see lib/neatogen/neatoinit.c:neato_layout (removeOverlapWith calls)
35
35
  * @see lib/neatogen/adjust.c:removeOverlapWith
36
36
  */
37
- export declare function maybeRemoveOverlap(g: Graph): void;
37
+ export declare function maybeRemoveOverlap(g: Graph, am: AdjustData): void;
38
38
  /**
39
39
  * Full neato layout pipeline for a single graph.
40
40
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/index.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAqCzD,OAAO,EACL,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EACpD,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EACvD,aAAa,EAAE,OAAO,EAAE,UAAU,EAClC,cAAc,EAAE,cAAc,EAAE,YAAY,GAC7C,MAAM,WAAW,CAAC;AAMnB;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAE1C;AAcD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAK3C;AAMD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAEjD;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CA4D1C;AAsFD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAIjC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/index.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAazD,OAAO,EAAsC,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAwBtF,OAAO,EACL,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EACpD,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EACvD,aAAa,EAAE,OAAO,EAAE,UAAU,EAClC,cAAc,EAAE,cAAc,EAAE,YAAY,GAC7C,MAAM,WAAW,CAAC;AAMnB;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAE1C;AAcD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAK3C;AAMD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,GAAG,IAAI,CAEjE;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CA8D1C;AAsFD;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAIjC,CAAC"}
@@ -9,9 +9,8 @@
9
9
  * Using Constrained Optimization", Constraints 8(2):143-172, 2003 (per the
10
10
  * C source comment).
11
11
  *
12
- * Other overlap modes (voronoi, prism, vpsc, ortho*) remain unported; with
13
- * the attr unset C's getAdjustMode resolves to AM_NONE and the pass is a
14
- * no-op (normalize/simpleScale only fire on rare attrs, also unported).
12
+ * Dispatched from removeOverlapWith (fdp-adjust.ts) for overlap=scale,
13
+ * scalexy and compress.
15
14
  *
16
15
  * @see lib/neatogen/constraint.c:scAdjust
17
16
  * @see lib/neatogen/adjust.c:removeOverlapWith / getAdjustMode
@@ -24,10 +23,4 @@ import type { Graph } from '../../model/graph.js';
24
23
  * @see lib/neatogen/constraint.c:767 scAdjust
25
24
  */
26
25
  export declare function scAdjust(g: Graph, equal: number): number;
27
- /**
28
- * The adjustNodes overlap-mode subset reaching scAdjust; other modes are
29
- * no-ops (see module doc).
30
- * @see lib/neatogen/adjust.c:999 adjustNodes, :776 adjustMode table
31
- */
32
- export declare function adjustNodesScale(g: Graph): number;
33
26
  //# sourceMappingURL=sc-adjust.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sc-adjust.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/sc-adjust.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAsHlD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA8CxD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAOjD"}
1
+ {"version":3,"file":"sc-adjust.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/sc-adjust.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAsHlD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA8CxD"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * The `scale` graph attribute: multiply every node position by (sx, sy)
3
+ * before overlap removal. removeOverlapWith runs it right after normalize,
4
+ * whatever the overlap mode.
5
+ *
6
+ * @see lib/neatogen/adjust.c:simpleScale
7
+ */
8
+ import type { Graph } from '../../model/graph.js';
9
+ /**
10
+ * Scale node positions by the `scale` attribute ("s" or "sx,sy"). Returns 1
11
+ * if nodes moved, else 0 (unset, unparsable, a zero factor, or 1,1).
12
+ * @see lib/neatogen/adjust.c:simpleScale
13
+ */
14
+ export declare function simpleScale(g: Graph): number;
15
+ //# sourceMappingURL=simple-scale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simple-scale.d.ts","sourceRoot":"","sources":["../../../src/layout/neato/simple-scale.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAuBlD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAe5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/sfdp/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAqBzD,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mCAAmC,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EACL,aAAa,EACb,WAAW,EACX,WAAW,EACX,UAAU,EACV,QAAQ,EACR,MAAM,EACP,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACjF,OAAO,EAAE,mCAAmC,EAAE,CAAC;AAK/C;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GACrE,IAAI,CAYN;AA+GD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CA4BzC;AAED,gDAAgD;AAChD,eAAO,MAAM,kBAAkB,EAAE,YAIhC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/sfdp/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAqBzD,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,mCAAmC,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EACL,aAAa,EACb,WAAW,EACX,WAAW,EACX,UAAU,EACV,QAAQ,EACR,MAAM,EACP,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACjF,OAAO,EAAE,mCAAmC,EAAE,CAAC;AAK/C;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,uBAAuB,EAAE,GAAG,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GACrE,IAAI,CAYN;AAgHD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CA4BzC;AAED,gDAAgD;AAChD,eAAO,MAAM,kBAAkB,EAAE,YAIhC,CAAC"}
@@ -37,6 +37,11 @@ export interface RenderOptions {
37
37
  */
38
38
  inlineImages?: boolean;
39
39
  }
40
+ /**
41
+ * Reject a bad `g` / `format` / `opts` before any work starts.
42
+ * @internal shared with src/async/render-async.ts; not part of the public API.
43
+ */
44
+ export declare function checkRenderArgs(g: unknown, format: unknown, opts: unknown): void;
40
45
  /**
41
46
  * Render a (parsed or built) graph to the requested format string.
42
47
  *
@@ -1 +1 @@
1
- {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/render/public.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAMpD;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB,KAAK,GACL,KAAK,GACL,MAAM,GACN,MAAM,GACN,OAAO,GACP,WAAW,GACX,MAAM,GACN,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAyBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,MAAM,CACpB,CAAC,EAAE,KAAK,EACR,MAAM,EAAE,YAAY,EACpB,IAAI,CAAC,EAAE,aAAa,GACnB,MAAM,CAaR"}
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/render/public.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAMpD;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB,KAAK,GACL,KAAK,GACL,MAAM,GACN,MAAM,GACN,OAAO,GACP,WAAW,GACX,MAAM,GACN,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAUhF;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,MAAM,CACpB,CAAC,EAAE,KAAK,EACR,MAAM,EAAE,YAAY,EACpB,IAAI,CAAC,EAAE,aAAa,GACnB,MAAM,CAaR"}