@knowvah/dot-engine 2.6.12 → 2.7.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.
Files changed (190) hide show
  1. package/README.md +1 -1
  2. package/dist/api.js +18 -4
  3. package/dist/api.js.map +3 -3
  4. package/dist/common/htmltable-emit-fill.d.ts +20 -2
  5. package/dist/common/htmltable-emit-fill.d.ts.map +1 -1
  6. package/dist/common/htmltable-emit.d.ts.map +1 -1
  7. package/dist/common/htmltable-lex-expat.d.ts.map +1 -1
  8. package/dist/common/htmltable-pos-runs.d.ts +7 -4
  9. package/dist/common/htmltable-pos-runs.d.ts.map +1 -1
  10. package/dist/common/htmltable.d.ts.map +1 -1
  11. package/dist/common/libm-trig.d.ts +5 -0
  12. package/dist/common/libm-trig.d.ts.map +1 -0
  13. package/dist/common/multicolor.d.ts +21 -13
  14. package/dist/common/multicolor.d.ts.map +1 -1
  15. package/dist/common/poly-gencode.d.ts +1 -2
  16. package/dist/common/poly-gencode.d.ts.map +1 -1
  17. package/dist/common/poly-init.d.ts.map +1 -1
  18. package/dist/common/splines-clip.d.ts +7 -0
  19. package/dist/common/splines-clip.d.ts.map +1 -1
  20. package/dist/gvc/context.d.ts +6 -0
  21. package/dist/gvc/context.d.ts.map +1 -1
  22. package/dist/gvc/device-cluster.d.ts +15 -0
  23. package/dist/gvc/device-cluster.d.ts.map +1 -1
  24. package/dist/gvc/device.d.ts.map +1 -1
  25. package/dist/gvc/first-layer.d.ts +9 -0
  26. package/dist/gvc/first-layer.d.ts.map +1 -0
  27. package/dist/gvc/gvrender-set-style.d.ts +28 -0
  28. package/dist/gvc/gvrender-set-style.d.ts.map +1 -0
  29. package/dist/gvc/usershape.d.ts +18 -0
  30. package/dist/gvc/usershape.d.ts.map +1 -1
  31. package/dist/index.js +2460 -901
  32. package/dist/index.js.map +4 -4
  33. package/dist/layout/dot/compound.d.ts.map +1 -1
  34. package/dist/layout/dot/edge-route-clip.d.ts +14 -4
  35. package/dist/layout/dot/edge-route-clip.d.ts.map +1 -1
  36. package/dist/layout/dot/edge-route-routing.d.ts.map +1 -1
  37. package/dist/layout/neato/__fixtures__/dijkstra-f.d.ts +11 -0
  38. package/dist/layout/neato/__fixtures__/dijkstra-f.d.ts.map +1 -0
  39. package/dist/layout/neato/__fixtures__/hier-imds.d.ts +36 -0
  40. package/dist/layout/neato/__fixtures__/hier-imds.d.ts.map +1 -0
  41. package/dist/layout/neato/__fixtures__/hier-majorization.d.ts +32 -0
  42. package/dist/layout/neato/__fixtures__/hier-majorization.d.ts.map +1 -0
  43. package/dist/layout/neato/cdt-surface.d.ts.map +1 -1
  44. package/dist/layout/neato/compute-hierarchy.d.ts +24 -0
  45. package/dist/layout/neato/compute-hierarchy.d.ts.map +1 -0
  46. package/dist/layout/neato/conjgrad-mkernel.d.ts +20 -0
  47. package/dist/layout/neato/conjgrad-mkernel.d.ts.map +1 -0
  48. package/dist/layout/neato/conjgrad.d.ts +19 -0
  49. package/dist/layout/neato/conjgrad.d.ts.map +1 -1
  50. package/dist/layout/neato/constrained-majorization.d.ts +26 -0
  51. package/dist/layout/neato/constrained-majorization.d.ts.map +1 -0
  52. package/dist/layout/neato/dijkstra.d.ts +33 -16
  53. package/dist/layout/neato/dijkstra.d.ts.map +1 -1
  54. package/dist/layout/neato/gts-triangle.d.ts +14 -0
  55. package/dist/layout/neato/gts-triangle.d.ts.map +1 -0
  56. package/dist/layout/neato/init.d.ts +2 -12
  57. package/dist/layout/neato/init.d.ts.map +1 -1
  58. package/dist/layout/neato/kkutils.d.ts +20 -0
  59. package/dist/layout/neato/kkutils.d.ts.map +1 -0
  60. package/dist/layout/neato/make-graph-data.d.ts +43 -0
  61. package/dist/layout/neato/make-graph-data.d.ts.map +1 -0
  62. package/dist/layout/neato/matrix-ops.d.ts +46 -0
  63. package/dist/layout/neato/matrix-ops.d.ts.map +1 -1
  64. package/dist/layout/neato/opt-arrangement.d.ts +20 -0
  65. package/dist/layout/neato/opt-arrangement.d.ts.map +1 -0
  66. package/dist/layout/neato/quad-prog-solve.d.ts +44 -0
  67. package/dist/layout/neato/quad-prog-solve.d.ts.map +1 -0
  68. package/dist/layout/neato/smart-ini-x.d.ts +9 -0
  69. package/dist/layout/neato/smart-ini-x.d.ts.map +1 -0
  70. package/dist/layout/neato/splines.d.ts +1 -1
  71. package/dist/layout/neato/splines.d.ts.map +1 -1
  72. package/dist/layout/neato/start.d.ts +4 -1
  73. package/dist/layout/neato/start.d.ts.map +1 -1
  74. package/dist/layout/neato/stress.d.ts +8 -0
  75. package/dist/layout/neato/stress.d.ts.map +1 -1
  76. package/dist/model/edge.d.ts +1 -1
  77. package/dist/model/edge.d.ts.map +1 -1
  78. package/dist/model/lazy-attrs.d.ts +10 -0
  79. package/dist/model/lazy-attrs.d.ts.map +1 -0
  80. package/dist/model/node.d.ts +1 -1
  81. package/dist/model/node.d.ts.map +1 -1
  82. package/dist/ortho/index.d.ts.map +1 -1
  83. package/dist/render/dot/edge-draw.d.ts +1 -1
  84. package/dist/render/dot/edge-draw.d.ts.map +1 -1
  85. package/dist/render/svg-multicolor.d.ts +2 -2
  86. package/dist/render/svg-multicolor.d.ts.map +1 -1
  87. package/dist/render.js +2340 -781
  88. package/dist/render.js.map +4 -4
  89. package/package.json +1 -1
  90. package/src/common/graph-init.ts +1 -1
  91. package/src/common/htmltable-emit-fill.ts +56 -11
  92. package/src/common/htmltable-emit.ts +4 -3
  93. package/src/common/htmltable-lex-expat.ts +21 -3
  94. package/src/common/htmltable-pos-runs.ts +11 -6
  95. package/src/common/htmltable.ts +28 -116
  96. package/src/common/libm-trig.ts +43 -0
  97. package/src/common/multicolor.ts +88 -24
  98. package/src/common/poly-gencode.ts +16 -8
  99. package/src/common/poly-init.ts +19 -1
  100. package/src/common/postproc.ts +2 -2
  101. package/src/common/splines-clip.ts +15 -12
  102. package/src/common/splines-routespl.ts +2 -2
  103. package/src/common/textmeasure-lookup.ts +1 -1
  104. package/src/gvc/context.ts +8 -0
  105. package/src/gvc/device-cluster.ts +63 -8
  106. package/src/gvc/device.ts +16 -2
  107. package/src/gvc/first-layer.ts +26 -0
  108. package/src/gvc/gvrender-set-style.ts +114 -0
  109. package/src/gvc/usershape.ts +26 -0
  110. package/src/layout/dot/cluster.ts +1 -1
  111. package/src/layout/dot/compound.ts +3 -4
  112. package/src/layout/dot/conc.ts +1 -1
  113. package/src/layout/dot/edge-route-clip.ts +19 -7
  114. package/src/layout/dot/edge-route-routing.ts +11 -3
  115. package/src/layout/dot/fastgr.ts +2 -2
  116. package/src/layout/neato/__fixtures__/dijkstra-f.ts +17 -0
  117. package/src/layout/neato/__fixtures__/hier/c1554.gv +33 -0
  118. package/src/layout/neato/__fixtures__/hier/c1554.plain +26 -0
  119. package/src/layout/neato/__fixtures__/hier/c1554.xdot +161 -0
  120. package/src/layout/neato/__fixtures__/hier/cases/cycle.gv +1 -0
  121. package/src/layout/neato/__fixtures__/hier/cases/cycle.plain +10 -0
  122. package/src/layout/neato/__fixtures__/hier/cases/cycle.stderr +0 -0
  123. package/src/layout/neato/__fixtures__/hier/cases/dirnone.gv +1 -0
  124. package/src/layout/neato/__fixtures__/hier/cases/dirnone.plain +11 -0
  125. package/src/layout/neato/__fixtures__/hier/cases/dirnone.stderr +0 -0
  126. package/src/layout/neato/__fixtures__/hier/cases/epsilon.gv +1 -0
  127. package/src/layout/neato/__fixtures__/hier/cases/epsilon.plain +13 -0
  128. package/src/layout/neato/__fixtures__/hier/cases/epsilon.stderr +0 -0
  129. package/src/layout/neato/__fixtures__/hier/cases/levelsgap.gv +1 -0
  130. package/src/layout/neato/__fixtures__/hier/cases/levelsgap.plain +8 -0
  131. package/src/layout/neato/__fixtures__/hier/cases/levelsgap.stderr +0 -0
  132. package/src/layout/neato/__fixtures__/hier/cases/mds.gv +1 -0
  133. package/src/layout/neato/__fixtures__/hier/cases/mds.plain +10 -0
  134. package/src/layout/neato/__fixtures__/hier/cases/mds.stderr +0 -0
  135. package/src/layout/neato/__fixtures__/hier/cases/multiedge.gv +1 -0
  136. package/src/layout/neato/__fixtures__/hier/cases/multiedge.plain +10 -0
  137. package/src/layout/neato/__fixtures__/hier/cases/multiedge.stderr +0 -0
  138. package/src/layout/neato/__fixtures__/hier/cases/neglevelsgap.gv +1 -0
  139. package/src/layout/neato/__fixtures__/hier/cases/neglevelsgap.plain +8 -0
  140. package/src/layout/neato/__fixtures__/hier/cases/neglevelsgap.stderr +0 -0
  141. package/src/layout/neato/__fixtures__/hier/cases/startrandom.gv +1 -0
  142. package/src/layout/neato/__fixtures__/hier/cases/startrandom.plain +10 -0
  143. package/src/layout/neato/__fixtures__/hier/cases/startrandom.stderr +0 -0
  144. package/src/layout/neato/__fixtures__/hier/cases/startregular.gv +1 -0
  145. package/src/layout/neato/__fixtures__/hier/cases/startregular.plain +10 -0
  146. package/src/layout/neato/__fixtures__/hier/cases/startregular.stderr +0 -0
  147. package/src/layout/neato/__fixtures__/hier/cases/tdist.gv +1 -0
  148. package/src/layout/neato/__fixtures__/hier/cases/tdist.plain +13 -0
  149. package/src/layout/neato/__fixtures__/hier/cases/tdist.stderr +0 -0
  150. package/src/layout/neato/__fixtures__/hier/cases/undirected.gv +1 -0
  151. package/src/layout/neato/__fixtures__/hier/cases/undirected.plain +10 -0
  152. package/src/layout/neato/__fixtures__/hier/cases/undirected.stderr +0 -0
  153. package/src/layout/neato/__fixtures__/hier/hier-probe.gv +1 -0
  154. package/src/layout/neato/__fixtures__/hier/hier-probe.plain +16 -0
  155. package/src/layout/neato/__fixtures__/hier/hier-probe.xdot +62 -0
  156. package/src/layout/neato/__fixtures__/hier-imds.ts +151 -0
  157. package/src/layout/neato/__fixtures__/hier-majorization.ts +145 -0
  158. package/src/layout/neato/cdt-surface.ts +6 -16
  159. package/src/layout/neato/compute-hierarchy.ts +90 -0
  160. package/src/layout/neato/conjgrad-mkernel.ts +141 -0
  161. package/src/layout/neato/conjgrad.ts +208 -0
  162. package/src/layout/neato/constrained-majorization.ts +479 -0
  163. package/src/layout/neato/dijkstra.ts +218 -92
  164. package/src/layout/neato/edge-len.ts +2 -2
  165. package/src/layout/neato/fdp-adjust.ts +3 -3
  166. package/src/layout/neato/gts-triangle.ts +42 -0
  167. package/src/layout/neato/init.ts +57 -57
  168. package/src/layout/neato/kk.ts +2 -2
  169. package/src/layout/neato/kkutils.ts +96 -0
  170. package/src/layout/neato/make-graph-data.ts +166 -0
  171. package/src/layout/neato/matrix-ops.ts +138 -0
  172. package/src/layout/neato/opt-arrangement.ts +86 -0
  173. package/src/layout/neato/quad-prog-solve.ts +489 -0
  174. package/src/layout/neato/smart-ini-x.ts +503 -0
  175. package/src/layout/neato/splines.ts +4 -4
  176. package/src/layout/neato/start.ts +7 -6
  177. package/src/layout/neato/stress.ts +28 -0
  178. package/src/model/edge.ts +3 -2
  179. package/src/model/lazy-attrs.ts +36 -0
  180. package/src/model/node.ts +3 -2
  181. package/src/ortho/index.ts +2 -3
  182. package/src/parser/dot.js +1 -1
  183. package/src/parser/dot.pegjs +1 -1
  184. package/src/parser/index.ts +1 -1
  185. package/src/render/color-resolve.ts +2 -2
  186. package/src/render/dot/edge-draw.ts +6 -3
  187. package/src/render/dot.ts +1 -1
  188. package/src/render/svg-edge-split.ts +2 -2
  189. package/src/render/svg-multicolor.ts +4 -3
  190. package/src/render/svg-parallel-edge.ts +2 -2
package/README.md CHANGED
@@ -150,7 +150,7 @@ with every message, is the table in
150
150
 
151
151
  | Engine | Attribute | Throws when |
152
152
  |--------|-----------|-------------|
153
- | neato | `mode=hier` | Always |
153
+ | neato | `mode=hier` | `model` is `subset` or `circuit` |
154
154
  | neato | `mode=ipsep` | Only when Graphviz builds constraints (`diredgeconstraints`, `overlap=ipsep`, or a top-level cluster); otherwise unchanged |
155
155
  | neato | `start=self` | `mode` is `major` or `ipsep` |
156
156
  | neato | `model=subset` | `mode` is `major` or `KK` |
package/dist/api.js CHANGED
@@ -151,6 +151,20 @@ var Graph = class {
151
151
  }
152
152
  };
153
153
 
154
+ // src/model/lazy-attrs.ts
155
+ var SharedEmptyAttrs = class extends Map {
156
+ set(key, _value) {
157
+ throw new Error(`attrs.set("${key}") on a shared empty map; use ownAttrs()`);
158
+ }
159
+ delete(key) {
160
+ throw new Error(`attrs.delete("${key}") on a shared empty map; use ownAttrs()`);
161
+ }
162
+ clear() {
163
+ throw new Error("attrs.clear() on a shared empty map; use ownAttrs()");
164
+ }
165
+ };
166
+ var EMPTY_ATTRS = new SharedEmptyAttrs();
167
+
154
168
  // src/model/nodeInfo.ts
155
169
  function makeNodeInfo() {
156
170
  return {
@@ -250,10 +264,10 @@ var Node = class {
250
264
  */
251
265
  nodeDefaultsSnapshot;
252
266
  /** @see lib/cgraph/node.c:agnode */
253
- constructor(id, name, root) {
267
+ constructor(id, name, root, lazyAttrs = false) {
254
268
  this.id = id;
255
269
  this.name = name;
256
- this.attrs = /* @__PURE__ */ new Map();
270
+ this.attrs = lazyAttrs ? EMPTY_ATTRS : /* @__PURE__ */ new Map();
257
271
  this.info = makeNodeInfo();
258
272
  this.root = root;
259
273
  }
@@ -464,12 +478,12 @@ var Edge = class _Edge {
464
478
  */
465
479
  info;
466
480
  /** @see lib/cgraph/edge.c:agedge */
467
- constructor(tail, head, name) {
481
+ constructor(tail, head, name, lazyAttrs = false) {
468
482
  this.seq = _Edge._nextSeq++;
469
483
  this.tail = tail;
470
484
  this.head = head;
471
485
  this.name = name;
472
- this.attrs = /* @__PURE__ */ new Map();
486
+ this.attrs = lazyAttrs ? EMPTY_ATTRS : /* @__PURE__ */ new Map();
473
487
  this.info = makeEdgeInfo(makePort(), makePort());
474
488
  }
475
489
  };