@knowvah/dot-engine 0.1.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 (986) hide show
  1. package/LICENSE +277 -0
  2. package/README.md +292 -0
  3. package/dist/api/builder.d.ts +78 -0
  4. package/dist/api/builder.d.ts.map +1 -0
  5. package/dist/api/edge-ops.d.ts +45 -0
  6. package/dist/api/edge-ops.d.ts.map +1 -0
  7. package/dist/api/geometry.d.ts +159 -0
  8. package/dist/api/geometry.d.ts.map +1 -0
  9. package/dist/api/index.d.ts +24 -0
  10. package/dist/api/index.d.ts.map +1 -0
  11. package/dist/api.js +719 -0
  12. package/dist/api.js.map +7 -0
  13. package/dist/bundle.js +101 -0
  14. package/dist/cdt/bag.d.ts +58 -0
  15. package/dist/cdt/bag.d.ts.map +1 -0
  16. package/dist/cdt/hash-core.d.ts +40 -0
  17. package/dist/cdt/hash-core.d.ts.map +1 -0
  18. package/dist/cdt/hash.d.ts +74 -0
  19. package/dist/cdt/hash.d.ts.map +1 -0
  20. package/dist/cdt/index.d.ts +16 -0
  21. package/dist/cdt/index.d.ts.map +1 -0
  22. package/dist/cdt/splay-core.d.ts +78 -0
  23. package/dist/cdt/splay-core.d.ts.map +1 -0
  24. package/dist/cdt/splay.d.ts +63 -0
  25. package/dist/cdt/splay.d.ts.map +1 -0
  26. package/dist/cdt/strhash.d.ts +26 -0
  27. package/dist/cdt/strhash.d.ts.map +1 -0
  28. package/dist/cdt/types.d.ts +11 -0
  29. package/dist/cdt/types.d.ts.map +1 -0
  30. package/dist/common/arith.d.ts +35 -0
  31. package/dist/common/arith.d.ts.map +1 -0
  32. package/dist/common/arm-pow-data.d.ts +17 -0
  33. package/dist/common/arm-pow-data.d.ts.map +1 -0
  34. package/dist/common/arm-pow.d.ts +12 -0
  35. package/dist/common/arm-pow.d.ts.map +1 -0
  36. package/dist/common/arrows-constants.d.ts +97 -0
  37. package/dist/common/arrows-constants.d.ts.map +1 -0
  38. package/dist/common/arrows-geometry.d.ts +24 -0
  39. package/dist/common/arrows-geometry.d.ts.map +1 -0
  40. package/dist/common/arrows-miter.d.ts +24 -0
  41. package/dist/common/arrows-miter.d.ts.map +1 -0
  42. package/dist/common/arrows-shapes-poly.d.ts +24 -0
  43. package/dist/common/arrows-shapes-poly.d.ts.map +1 -0
  44. package/dist/common/arrows-shapes-util.d.ts +77 -0
  45. package/dist/common/arrows-shapes-util.d.ts.map +1 -0
  46. package/dist/common/arrows-shapes.d.ts +48 -0
  47. package/dist/common/arrows-shapes.d.ts.map +1 -0
  48. package/dist/common/arrows-types.d.ts +59 -0
  49. package/dist/common/arrows-types.d.ts.map +1 -0
  50. package/dist/common/arrows.d.ts +69 -0
  51. package/dist/common/arrows.d.ts.map +1 -0
  52. package/dist/common/color.d.ts +66 -0
  53. package/dist/common/color.d.ts.map +1 -0
  54. package/dist/common/colorData.d.ts +10 -0
  55. package/dist/common/colorData.d.ts.map +1 -0
  56. package/dist/common/compass-port.d.ts +39 -0
  57. package/dist/common/compass-port.d.ts.map +1 -0
  58. package/dist/common/crand.d.ts +42 -0
  59. package/dist/common/crand.d.ts.map +1 -0
  60. package/dist/common/edge-label-init.d.ts +51 -0
  61. package/dist/common/edge-label-init.d.ts.map +1 -0
  62. package/dist/common/edge-offset.d.ts +66 -0
  63. package/dist/common/edge-offset.d.ts.map +1 -0
  64. package/dist/common/ellipse-wedge.d.ts +10 -0
  65. package/dist/common/ellipse-wedge.d.ts.map +1 -0
  66. package/dist/common/emit-types.d.ts +255 -0
  67. package/dist/common/emit-types.d.ts.map +1 -0
  68. package/dist/common/fma.d.ts +10 -0
  69. package/dist/common/fma.d.ts.map +1 -0
  70. package/dist/common/graph-init.d.ts +61 -0
  71. package/dist/common/graph-init.d.ts.map +1 -0
  72. package/dist/common/html-entities.d.ts +17 -0
  73. package/dist/common/html-entities.d.ts.map +1 -0
  74. package/dist/common/html-string.d.ts +14 -0
  75. package/dist/common/html-string.d.ts.map +1 -0
  76. package/dist/common/htmltable-emit-fill.d.ts +84 -0
  77. package/dist/common/htmltable-emit-fill.d.ts.map +1 -0
  78. package/dist/common/htmltable-emit-rules.d.ts +79 -0
  79. package/dist/common/htmltable-emit-rules.d.ts.map +1 -0
  80. package/dist/common/htmltable-emit.d.ts +63 -0
  81. package/dist/common/htmltable-emit.d.ts.map +1 -0
  82. package/dist/common/htmltable-lex.d.ts +16 -0
  83. package/dist/common/htmltable-lex.d.ts.map +1 -0
  84. package/dist/common/htmltable-parse.d.ts +37 -0
  85. package/dist/common/htmltable-parse.d.ts.map +1 -0
  86. package/dist/common/htmltable-port.d.ts +15 -0
  87. package/dist/common/htmltable-port.d.ts.map +1 -0
  88. package/dist/common/htmltable-pos-runs.d.ts +88 -0
  89. package/dist/common/htmltable-pos-runs.d.ts.map +1 -0
  90. package/dist/common/htmltable-pos.d.ts +192 -0
  91. package/dist/common/htmltable-pos.d.ts.map +1 -0
  92. package/dist/common/htmltable-types.d.ts +237 -0
  93. package/dist/common/htmltable-types.d.ts.map +1 -0
  94. package/dist/common/htmltable.d.ts +74 -0
  95. package/dist/common/htmltable.d.ts.map +1 -0
  96. package/dist/common/layers.d.ts +20 -0
  97. package/dist/common/layers.d.ts.map +1 -0
  98. package/dist/common/make-label.d.ts +60 -0
  99. package/dist/common/make-label.d.ts.map +1 -0
  100. package/dist/common/multicolor.d.ts +46 -0
  101. package/dist/common/multicolor.d.ts.map +1 -0
  102. package/dist/common/nodeinit.d.ts +45 -0
  103. package/dist/common/nodeinit.d.ts.map +1 -0
  104. package/dist/common/poly-gencode.d.ts +40 -0
  105. package/dist/common/poly-gencode.d.ts.map +1 -0
  106. package/dist/common/poly-init.d.ts +51 -0
  107. package/dist/common/poly-init.d.ts.map +1 -0
  108. package/dist/common/poly-inside.d.ts +37 -0
  109. package/dist/common/poly-inside.d.ts.map +1 -0
  110. package/dist/common/poly-shapes-cases.d.ts +31 -0
  111. package/dist/common/poly-shapes-cases.d.ts.map +1 -0
  112. package/dist/common/poly-shapes-cases2.d.ts +25 -0
  113. package/dist/common/poly-shapes-cases2.d.ts.map +1 -0
  114. package/dist/common/poly-shapes-util.d.ts +42 -0
  115. package/dist/common/poly-shapes-util.d.ts.map +1 -0
  116. package/dist/common/poly-shapes.d.ts +39 -0
  117. package/dist/common/poly-shapes.d.ts.map +1 -0
  118. package/dist/common/poly-sizing.d.ts +189 -0
  119. package/dist/common/poly-sizing.d.ts.map +1 -0
  120. package/dist/common/poly-vertices.d.ts +42 -0
  121. package/dist/common/poly-vertices.d.ts.map +1 -0
  122. package/dist/common/postproc.d.ts +49 -0
  123. package/dist/common/postproc.d.ts.map +1 -0
  124. package/dist/common/ps-fontalias.d.ts +36 -0
  125. package/dist/common/ps-fontalias.d.ts.map +1 -0
  126. package/dist/common/random.d.ts +8 -0
  127. package/dist/common/random.d.ts.map +1 -0
  128. package/dist/common/record-port.d.ts +34 -0
  129. package/dist/common/record-port.d.ts.map +1 -0
  130. package/dist/common/record.d.ts +105 -0
  131. package/dist/common/record.d.ts.map +1 -0
  132. package/dist/common/shapeData.d.ts +186 -0
  133. package/dist/common/shapeData.d.ts.map +1 -0
  134. package/dist/common/shapes.d.ts +36 -0
  135. package/dist/common/shapes.d.ts.map +1 -0
  136. package/dist/common/spline-midpoint.d.ts +31 -0
  137. package/dist/common/spline-midpoint.d.ts.map +1 -0
  138. package/dist/common/splines-clip.d.ts +21 -0
  139. package/dist/common/splines-clip.d.ts.map +1 -0
  140. package/dist/common/splines-constants.d.ts +42 -0
  141. package/dist/common/splines-constants.d.ts.map +1 -0
  142. package/dist/common/splines-geom.d.ts +51 -0
  143. package/dist/common/splines-geom.d.ts.map +1 -0
  144. package/dist/common/splines-path-begin.d.ts +17 -0
  145. package/dist/common/splines-path-begin.d.ts.map +1 -0
  146. package/dist/common/splines-path-end.d.ts +17 -0
  147. package/dist/common/splines-path-end.d.ts.map +1 -0
  148. package/dist/common/splines-path-shared.d.ts +53 -0
  149. package/dist/common/splines-path-shared.d.ts.map +1 -0
  150. package/dist/common/splines-routespl.d.ts +40 -0
  151. package/dist/common/splines-routespl.d.ts.map +1 -0
  152. package/dist/common/splines-selfedge.d.ts +21 -0
  153. package/dist/common/splines-selfedge.d.ts.map +1 -0
  154. package/dist/common/splines.d.ts +18 -0
  155. package/dist/common/splines.d.ts.map +1 -0
  156. package/dist/common/style-resolve.d.ts +197 -0
  157. package/dist/common/style-resolve.d.ts.map +1 -0
  158. package/dist/common/subst.d.ts +31 -0
  159. package/dist/common/subst.d.ts.map +1 -0
  160. package/dist/common/taper.d.ts +23 -0
  161. package/dist/common/taper.d.ts.map +1 -0
  162. package/dist/common/textmeasure-factory.d.ts +33 -0
  163. package/dist/common/textmeasure-factory.d.ts.map +1 -0
  164. package/dist/common/textmeasure-lookup.d.ts +17 -0
  165. package/dist/common/textmeasure-lookup.d.ts.map +1 -0
  166. package/dist/common/textmeasure-lut-data-a.d.ts +13 -0
  167. package/dist/common/textmeasure-lut-data-a.d.ts.map +1 -0
  168. package/dist/common/textmeasure-lut-data-b.d.ts +12 -0
  169. package/dist/common/textmeasure-lut-data-b.d.ts.map +1 -0
  170. package/dist/common/textmeasure-lut-data-c.d.ts +13 -0
  171. package/dist/common/textmeasure-lut-data-c.d.ts.map +1 -0
  172. package/dist/common/textmeasure-lut-data.d.ts +27 -0
  173. package/dist/common/textmeasure-lut-data.d.ts.map +1 -0
  174. package/dist/common/textmeasure.d.ts +120 -0
  175. package/dist/common/textmeasure.d.ts.map +1 -0
  176. package/dist/common/types.d.ts +316 -0
  177. package/dist/common/types.d.ts.map +1 -0
  178. package/dist/common/xlabels-place.d.ts +125 -0
  179. package/dist/common/xlabels-place.d.ts.map +1 -0
  180. package/dist/debug.d.ts +58 -0
  181. package/dist/debug.d.ts.map +1 -0
  182. package/dist/errors.d.ts +63 -0
  183. package/dist/errors.d.ts.map +1 -0
  184. package/dist/gvc/anchor.d.ts +86 -0
  185. package/dist/gvc/anchor.d.ts.map +1 -0
  186. package/dist/gvc/context.d.ts +177 -0
  187. package/dist/gvc/context.d.ts.map +1 -0
  188. package/dist/gvc/default-context.d.ts +20 -0
  189. package/dist/gvc/default-context.d.ts.map +1 -0
  190. package/dist/gvc/device-cluster.d.ts +25 -0
  191. package/dist/gvc/device-cluster.d.ts.map +1 -0
  192. package/dist/gvc/device.d.ts +99 -0
  193. package/dist/gvc/device.d.ts.map +1 -0
  194. package/dist/gvc/edge-labels.d.ts +10 -0
  195. package/dist/gvc/edge-labels.d.ts.map +1 -0
  196. package/dist/gvc/emit-walk.d.ts +22 -0
  197. package/dist/gvc/emit-walk.d.ts.map +1 -0
  198. package/dist/gvc/image-resolver.d.ts +44 -0
  199. package/dist/gvc/image-resolver.d.ts.map +1 -0
  200. package/dist/gvc/job.d.ts +234 -0
  201. package/dist/gvc/job.d.ts.map +1 -0
  202. package/dist/gvc/textlayout.d.ts +33 -0
  203. package/dist/gvc/textlayout.d.ts.map +1 -0
  204. package/dist/gvc/textspan-emit.d.ts +41 -0
  205. package/dist/gvc/textspan-emit.d.ts.map +1 -0
  206. package/dist/gvc/usershape.d.ts +25 -0
  207. package/dist/gvc/usershape.d.ts.map +1 -0
  208. package/dist/gvc/viewport.d.ts +71 -0
  209. package/dist/gvc/viewport.d.ts.map +1 -0
  210. package/dist/index.d.ts +54 -0
  211. package/dist/index.d.ts.map +1 -0
  212. package/dist/index.js +52862 -0
  213. package/dist/index.js.map +7 -0
  214. package/dist/label/index.d.ts +74 -0
  215. package/dist/label/index.d.ts.map +1 -0
  216. package/dist/label/node.d.ts +108 -0
  217. package/dist/label/node.d.ts.map +1 -0
  218. package/dist/label/rectangle.d.ts +60 -0
  219. package/dist/label/rectangle.d.ts.map +1 -0
  220. package/dist/label/split-q.d.ts +13 -0
  221. package/dist/label/split-q.d.ts.map +1 -0
  222. package/dist/label/xlabels-geom.d.ts +46 -0
  223. package/dist/label/xlabels-geom.d.ts.map +1 -0
  224. package/dist/label/xlabels-intersect.d.ts +79 -0
  225. package/dist/label/xlabels-intersect.d.ts.map +1 -0
  226. package/dist/label/xlabels.d.ts +67 -0
  227. package/dist/label/xlabels.d.ts.map +1 -0
  228. package/dist/layout/circo/blockpath.d.ts +120 -0
  229. package/dist/layout/circo/blockpath.d.ts.map +1 -0
  230. package/dist/layout/circo/blocks.d.ts +135 -0
  231. package/dist/layout/circo/blocks.d.ts.map +1 -0
  232. package/dist/layout/circo/blocktree.d.ts +51 -0
  233. package/dist/layout/circo/blocktree.d.ts.map +1 -0
  234. package/dist/layout/circo/circular.d.ts +59 -0
  235. package/dist/layout/circo/circular.d.ts.map +1 -0
  236. package/dist/layout/circo/index.d.ts +35 -0
  237. package/dist/layout/circo/index.d.ts.map +1 -0
  238. package/dist/layout/circo/init.d.ts +50 -0
  239. package/dist/layout/circo/init.d.ts.map +1 -0
  240. package/dist/layout/circo/position-helpers.d.ts +33 -0
  241. package/dist/layout/circo/position-helpers.d.ts.map +1 -0
  242. package/dist/layout/circo/position.d.ts +66 -0
  243. package/dist/layout/circo/position.d.ts.map +1 -0
  244. package/dist/layout/dot/acyclic.d.ts +8 -0
  245. package/dist/layout/dot/acyclic.d.ts.map +1 -0
  246. package/dist/layout/dot/aspect.d.ts +17 -0
  247. package/dist/layout/dot/aspect.d.ts.map +1 -0
  248. package/dist/layout/dot/classify.d.ts +52 -0
  249. package/dist/layout/dot/classify.d.ts.map +1 -0
  250. package/dist/layout/dot/cluster-path.d.ts +38 -0
  251. package/dist/layout/dot/cluster-path.d.ts.map +1 -0
  252. package/dist/layout/dot/cluster.d.ts +102 -0
  253. package/dist/layout/dot/cluster.d.ts.map +1 -0
  254. package/dist/layout/dot/compound-clip.d.ts +69 -0
  255. package/dist/layout/dot/compound-clip.d.ts.map +1 -0
  256. package/dist/layout/dot/compound-geom.d.ts +115 -0
  257. package/dist/layout/dot/compound-geom.d.ts.map +1 -0
  258. package/dist/layout/dot/compound.d.ts +56 -0
  259. package/dist/layout/dot/compound.d.ts.map +1 -0
  260. package/dist/layout/dot/conc.d.ts +88 -0
  261. package/dist/layout/dot/conc.d.ts.map +1 -0
  262. package/dist/layout/dot/decomp.d.ts +66 -0
  263. package/dist/layout/dot/decomp.d.ts.map +1 -0
  264. package/dist/layout/dot/edge-order.d.ts +27 -0
  265. package/dist/layout/dot/edge-order.d.ts.map +1 -0
  266. package/dist/layout/dot/edge-route-arrow.d.ts +46 -0
  267. package/dist/layout/dot/edge-route-arrow.d.ts.map +1 -0
  268. package/dist/layout/dot/edge-route-boxes.d.ts +75 -0
  269. package/dist/layout/dot/edge-route-boxes.d.ts.map +1 -0
  270. package/dist/layout/dot/edge-route-chain.d.ts +67 -0
  271. package/dist/layout/dot/edge-route-chain.d.ts.map +1 -0
  272. package/dist/layout/dot/edge-route-clip.d.ts +88 -0
  273. package/dist/layout/dot/edge-route-clip.d.ts.map +1 -0
  274. package/dist/layout/dot/edge-route-faithful.d.ts +94 -0
  275. package/dist/layout/dot/edge-route-faithful.d.ts.map +1 -0
  276. package/dist/layout/dot/edge-route-geom.d.ts +43 -0
  277. package/dist/layout/dot/edge-route-geom.d.ts.map +1 -0
  278. package/dist/layout/dot/edge-route-helpers.d.ts +50 -0
  279. package/dist/layout/dot/edge-route-helpers.d.ts.map +1 -0
  280. package/dist/layout/dot/edge-route-poly.d.ts +48 -0
  281. package/dist/layout/dot/edge-route-poly.d.ts.map +1 -0
  282. package/dist/layout/dot/edge-route-rank.d.ts +57 -0
  283. package/dist/layout/dot/edge-route-rank.d.ts.map +1 -0
  284. package/dist/layout/dot/edge-route-routing.d.ts +99 -0
  285. package/dist/layout/dot/edge-route-routing.d.ts.map +1 -0
  286. package/dist/layout/dot/edge-route.d.ts +57 -0
  287. package/dist/layout/dot/edge-route.d.ts.map +1 -0
  288. package/dist/layout/dot/fastgr.d.ts +147 -0
  289. package/dist/layout/dot/fastgr.d.ts.map +1 -0
  290. package/dist/layout/dot/flat-utils.d.ts +21 -0
  291. package/dist/layout/dot/flat-utils.d.ts.map +1 -0
  292. package/dist/layout/dot/flat.d.ts +152 -0
  293. package/dist/layout/dot/flat.d.ts.map +1 -0
  294. package/dist/layout/dot/graph-label.d.ts +18 -0
  295. package/dist/layout/dot/graph-label.d.ts.map +1 -0
  296. package/dist/layout/dot/index.d.ts +128 -0
  297. package/dist/layout/dot/index.d.ts.map +1 -0
  298. package/dist/layout/dot/init.d.ts +93 -0
  299. package/dist/layout/dot/init.d.ts.map +1 -0
  300. package/dist/layout/dot/label-order.d.ts +45 -0
  301. package/dist/layout/dot/label-order.d.ts.map +1 -0
  302. package/dist/layout/dot/mincross-build.d.ts +52 -0
  303. package/dist/layout/dot/mincross-build.d.ts.map +1 -0
  304. package/dist/layout/dot/mincross-cross.d.ts +80 -0
  305. package/dist/layout/dot/mincross-cross.d.ts.map +1 -0
  306. package/dist/layout/dot/mincross-flat.d.ts +27 -0
  307. package/dist/layout/dot/mincross-flat.d.ts.map +1 -0
  308. package/dist/layout/dot/mincross-order.d.ts +89 -0
  309. package/dist/layout/dot/mincross-order.d.ts.map +1 -0
  310. package/dist/layout/dot/mincross-utils.d.ts +60 -0
  311. package/dist/layout/dot/mincross-utils.d.ts.map +1 -0
  312. package/dist/layout/dot/mincross.d.ts +75 -0
  313. package/dist/layout/dot/mincross.d.ts.map +1 -0
  314. package/dist/layout/dot/ns-core.d.ts +37 -0
  315. package/dist/layout/dot/ns-core.d.ts.map +1 -0
  316. package/dist/layout/dot/ns-range.d.ts +17 -0
  317. package/dist/layout/dot/ns-range.d.ts.map +1 -0
  318. package/dist/layout/dot/ns-subtree.d.ts +78 -0
  319. package/dist/layout/dot/ns-subtree.d.ts.map +1 -0
  320. package/dist/layout/dot/ns.d.ts +86 -0
  321. package/dist/layout/dot/ns.d.ts.map +1 -0
  322. package/dist/layout/dot/ortho-adapter.d.ts +19 -0
  323. package/dist/layout/dot/ortho-adapter.d.ts.map +1 -0
  324. package/dist/layout/dot/pack-components.d.ts +100 -0
  325. package/dist/layout/dot/pack-components.d.ts.map +1 -0
  326. package/dist/layout/dot/position-aux.d.ts +110 -0
  327. package/dist/layout/dot/position-aux.d.ts.map +1 -0
  328. package/dist/layout/dot/position-bbox.d.ts +57 -0
  329. package/dist/layout/dot/position-bbox.d.ts.map +1 -0
  330. package/dist/layout/dot/position-cluster.d.ts +48 -0
  331. package/dist/layout/dot/position-cluster.d.ts.map +1 -0
  332. package/dist/layout/dot/position-ycoords.d.ts +42 -0
  333. package/dist/layout/dot/position-ycoords.d.ts.map +1 -0
  334. package/dist/layout/dot/position.d.ts +47 -0
  335. package/dist/layout/dot/position.d.ts.map +1 -0
  336. package/dist/layout/dot/rank-dot2.d.ts +114 -0
  337. package/dist/layout/dot/rank-dot2.d.ts.map +1 -0
  338. package/dist/layout/dot/rank.d.ts +119 -0
  339. package/dist/layout/dot/rank.d.ts.map +1 -0
  340. package/dist/layout/dot/sameport.d.ts +70 -0
  341. package/dist/layout/dot/sameport.d.ts.map +1 -0
  342. package/dist/layout/dot/self-loop.d.ts +54 -0
  343. package/dist/layout/dot/self-loop.d.ts.map +1 -0
  344. package/dist/layout/dot/splines-clone.d.ts +33 -0
  345. package/dist/layout/dot/splines-clone.d.ts.map +1 -0
  346. package/dist/layout/dot/splines-flat-labeled.d.ts +101 -0
  347. package/dist/layout/dot/splines-flat-labeled.d.ts.map +1 -0
  348. package/dist/layout/dot/splines-flat-multi.d.ts +35 -0
  349. package/dist/layout/dot/splines-flat-multi.d.ts.map +1 -0
  350. package/dist/layout/dot/splines-flat.d.ts +116 -0
  351. package/dist/layout/dot/splines-flat.d.ts.map +1 -0
  352. package/dist/layout/dot/splines-groups.d.ts +38 -0
  353. package/dist/layout/dot/splines-groups.d.ts.map +1 -0
  354. package/dist/layout/dot/splines-label.d.ts +105 -0
  355. package/dist/layout/dot/splines-label.d.ts.map +1 -0
  356. package/dist/layout/dot/splines-route-type.d.ts +28 -0
  357. package/dist/layout/dot/splines-route-type.d.ts.map +1 -0
  358. package/dist/layout/dot/splines-route.d.ts +99 -0
  359. package/dist/layout/dot/splines-route.d.ts.map +1 -0
  360. package/dist/layout/dot/splines.d.ts +157 -0
  361. package/dist/layout/dot/splines.d.ts.map +1 -0
  362. package/dist/layout/dot/straight-edges.d.ts +39 -0
  363. package/dist/layout/dot/straight-edges.d.ts.map +1 -0
  364. package/dist/layout/fdp/cluster-edges.d.ts +31 -0
  365. package/dist/layout/fdp/cluster-edges.d.ts.map +1 -0
  366. package/dist/layout/fdp/comp.d.ts +29 -0
  367. package/dist/layout/fdp/comp.d.ts.map +1 -0
  368. package/dist/layout/fdp/derive.d.ts +39 -0
  369. package/dist/layout/fdp/derive.d.ts.map +1 -0
  370. package/dist/layout/fdp/fdp-model.d.ts +101 -0
  371. package/dist/layout/fdp/fdp-model.d.ts.map +1 -0
  372. package/dist/layout/fdp/grid.d.ts +49 -0
  373. package/dist/layout/fdp/grid.d.ts.map +1 -0
  374. package/dist/layout/fdp/index.d.ts +36 -0
  375. package/dist/layout/fdp/index.d.ts.map +1 -0
  376. package/dist/layout/fdp/init.d.ts +26 -0
  377. package/dist/layout/fdp/init.d.ts.map +1 -0
  378. package/dist/layout/fdp/layout.d.ts +57 -0
  379. package/dist/layout/fdp/layout.d.ts.map +1 -0
  380. package/dist/layout/fdp/normalize.d.ts +18 -0
  381. package/dist/layout/fdp/normalize.d.ts.map +1 -0
  382. package/dist/layout/fdp/ports.d.ts +41 -0
  383. package/dist/layout/fdp/ports.d.ts.map +1 -0
  384. package/dist/layout/fdp/tlayout-init.d.ts +21 -0
  385. package/dist/layout/fdp/tlayout-init.d.ts.map +1 -0
  386. package/dist/layout/fdp/tlayout-parms.d.ts +98 -0
  387. package/dist/layout/fdp/tlayout-parms.d.ts.map +1 -0
  388. package/dist/layout/fdp/tlayout.d.ts +43 -0
  389. package/dist/layout/fdp/tlayout.d.ts.map +1 -0
  390. package/dist/layout/fdp/xlayout.d.ts +26 -0
  391. package/dist/layout/fdp/xlayout.d.ts.map +1 -0
  392. package/dist/layout/neato/bfs.d.ts +43 -0
  393. package/dist/layout/neato/bfs.d.ts.map +1 -0
  394. package/dist/layout/neato/cdt-surface.d.ts +16 -0
  395. package/dist/layout/neato/cdt-surface.d.ts.map +1 -0
  396. package/dist/layout/neato/conjgrad.d.ts +61 -0
  397. package/dist/layout/neato/conjgrad.d.ts.map +1 -0
  398. package/dist/layout/neato/delaunay.d.ts +28 -0
  399. package/dist/layout/neato/delaunay.d.ts.map +1 -0
  400. package/dist/layout/neato/dijkstra.d.ts +80 -0
  401. package/dist/layout/neato/dijkstra.d.ts.map +1 -0
  402. package/dist/layout/neato/fdp-adjust.d.ts +31 -0
  403. package/dist/layout/neato/fdp-adjust.d.ts.map +1 -0
  404. package/dist/layout/neato/index.d.ts +58 -0
  405. package/dist/layout/neato/index.d.ts.map +1 -0
  406. package/dist/layout/neato/init.d.ts +207 -0
  407. package/dist/layout/neato/init.d.ts.map +1 -0
  408. package/dist/layout/neato/legal.d.ts +7 -0
  409. package/dist/layout/neato/legal.d.ts.map +1 -0
  410. package/dist/layout/neato/matrix-ops.d.ts +28 -0
  411. package/dist/layout/neato/matrix-ops.d.ts.map +1 -0
  412. package/dist/layout/neato/multispline-router.d.ts +80 -0
  413. package/dist/layout/neato/multispline-router.d.ts.map +1 -0
  414. package/dist/layout/neato/multispline.d.ts +24 -0
  415. package/dist/layout/neato/multispline.d.ts.map +1 -0
  416. package/dist/layout/neato/overlap-prism.d.ts +26 -0
  417. package/dist/layout/neato/overlap-prism.d.ts.map +1 -0
  418. package/dist/layout/neato/overlap.d.ts +85 -0
  419. package/dist/layout/neato/overlap.d.ts.map +1 -0
  420. package/dist/layout/neato/sc-adjust.d.ts +33 -0
  421. package/dist/layout/neato/sc-adjust.d.ts.map +1 -0
  422. package/dist/layout/neato/sep-factor.d.ts +41 -0
  423. package/dist/layout/neato/sep-factor.d.ts.map +1 -0
  424. package/dist/layout/neato/set-aspect.d.ts +33 -0
  425. package/dist/layout/neato/set-aspect.d.ts.map +1 -0
  426. package/dist/layout/neato/sgd.d.ts +166 -0
  427. package/dist/layout/neato/sgd.d.ts.map +1 -0
  428. package/dist/layout/neato/splines.d.ts +153 -0
  429. package/dist/layout/neato/splines.d.ts.map +1 -0
  430. package/dist/layout/neato/stress-kernel.d.ts +53 -0
  431. package/dist/layout/neato/stress-kernel.d.ts.map +1 -0
  432. package/dist/layout/neato/stress.d.ts +158 -0
  433. package/dist/layout/neato/stress.d.ts.map +1 -0
  434. package/dist/layout/osage/index.d.ts +158 -0
  435. package/dist/layout/osage/index.d.ts.map +1 -0
  436. package/dist/layout/osage/layout.d.ts +49 -0
  437. package/dist/layout/osage/layout.d.ts.map +1 -0
  438. package/dist/layout/osage/types.d.ts +28 -0
  439. package/dist/layout/osage/types.d.ts.map +1 -0
  440. package/dist/layout/pack/array-pack.d.ts +114 -0
  441. package/dist/layout/pack/array-pack.d.ts.map +1 -0
  442. package/dist/layout/pack/index.d.ts +157 -0
  443. package/dist/layout/pack/index.d.ts.map +1 -0
  444. package/dist/layout/pack/poly-pack.d.ts +126 -0
  445. package/dist/layout/pack/poly-pack.d.ts.map +1 -0
  446. package/dist/layout/pack/poly-place.d.ts +27 -0
  447. package/dist/layout/pack/poly-place.d.ts.map +1 -0
  448. package/dist/layout/pack/spiral-search.d.ts +18 -0
  449. package/dist/layout/pack/spiral-search.d.ts.map +1 -0
  450. package/dist/layout/pack/test-helpers.d.ts +7 -0
  451. package/dist/layout/pack/test-helpers.d.ts.map +1 -0
  452. package/dist/layout/pack/types.d.ts +74 -0
  453. package/dist/layout/pack/types.d.ts.map +1 -0
  454. package/dist/layout/patchwork/index.d.ts +136 -0
  455. package/dist/layout/patchwork/index.d.ts.map +1 -0
  456. package/dist/layout/patchwork/tree-map.d.ts +32 -0
  457. package/dist/layout/patchwork/tree-map.d.ts.map +1 -0
  458. package/dist/layout/patchwork/tree-node.d.ts +46 -0
  459. package/dist/layout/patchwork/tree-node.d.ts.map +1 -0
  460. package/dist/layout/sfdp/index.d.ts +39 -0
  461. package/dist/layout/sfdp/index.d.ts.map +1 -0
  462. package/dist/layout/sfdp/init.d.ts +61 -0
  463. package/dist/layout/sfdp/init.d.ts.map +1 -0
  464. package/dist/layout/sfdp/multilevel.d.ts +23 -0
  465. package/dist/layout/sfdp/multilevel.d.ts.map +1 -0
  466. package/dist/layout/sfdp/quadtree.d.ts +45 -0
  467. package/dist/layout/sfdp/quadtree.d.ts.map +1 -0
  468. package/dist/layout/sfdp/sparse-matrix-multiply.d.ts +34 -0
  469. package/dist/layout/sfdp/sparse-matrix-multiply.d.ts.map +1 -0
  470. package/dist/layout/sfdp/sparse-matrix.d.ts +101 -0
  471. package/dist/layout/sfdp/sparse-matrix.d.ts.map +1 -0
  472. package/dist/layout/sfdp/sparse-solve.d.ts +14 -0
  473. package/dist/layout/sfdp/sparse-solve.d.ts.map +1 -0
  474. package/dist/layout/sfdp/spring-driver.d.ts +18 -0
  475. package/dist/layout/sfdp/spring-driver.d.ts.map +1 -0
  476. package/dist/layout/sfdp/spring-electrical.d.ts +61 -0
  477. package/dist/layout/sfdp/spring-electrical.d.ts.map +1 -0
  478. package/dist/layout/twopi/circle.d.ts +83 -0
  479. package/dist/layout/twopi/circle.d.ts.map +1 -0
  480. package/dist/layout/twopi/index.d.ts +24 -0
  481. package/dist/layout/twopi/index.d.ts.map +1 -0
  482. package/dist/layout/twopi/init.d.ts +85 -0
  483. package/dist/layout/twopi/init.d.ts.map +1 -0
  484. package/dist/layout/twopi/pipeline.d.ts +37 -0
  485. package/dist/layout/twopi/pipeline.d.ts.map +1 -0
  486. package/dist/layout/twopi/twopi-test-helpers.d.ts +12 -0
  487. package/dist/layout/twopi/twopi-test-helpers.d.ts.map +1 -0
  488. package/dist/model/algData.d.ts +175 -0
  489. package/dist/model/algData.d.ts.map +1 -0
  490. package/dist/model/cgraph-ops.d.ts +86 -0
  491. package/dist/model/cgraph-ops.d.ts.map +1 -0
  492. package/dist/model/edge.d.ts +80 -0
  493. package/dist/model/edge.d.ts.map +1 -0
  494. package/dist/model/edgeInfo.d.ts +299 -0
  495. package/dist/model/edgeInfo.d.ts.map +1 -0
  496. package/dist/model/geom.d.ts +149 -0
  497. package/dist/model/geom.d.ts.map +1 -0
  498. package/dist/model/graph.d.ts +135 -0
  499. package/dist/model/graph.d.ts.map +1 -0
  500. package/dist/model/graphInfo.d.ts +418 -0
  501. package/dist/model/graphInfo.d.ts.map +1 -0
  502. package/dist/model/index.d.ts +10 -0
  503. package/dist/model/index.d.ts.map +1 -0
  504. package/dist/model/layoutParams.d.ts +85 -0
  505. package/dist/model/layoutParams.d.ts.map +1 -0
  506. package/dist/model/node.d.ts +101 -0
  507. package/dist/model/node.d.ts.map +1 -0
  508. package/dist/model/nodeInfo.d.ts +278 -0
  509. package/dist/model/nodeInfo.d.ts.map +1 -0
  510. package/dist/model/rankEntry.d.ts +80 -0
  511. package/dist/model/rankEntry.d.ts.map +1 -0
  512. package/dist/ortho/chan-dict.d.ts +82 -0
  513. package/dist/ortho/chan-dict.d.ts.map +1 -0
  514. package/dist/ortho/fpq.d.ts +54 -0
  515. package/dist/ortho/fpq.d.ts.map +1 -0
  516. package/dist/ortho/index.d.ts +35 -0
  517. package/dist/ortho/index.d.ts.map +1 -0
  518. package/dist/ortho/maze-channels.d.ts +47 -0
  519. package/dist/ortho/maze-channels.d.ts.map +1 -0
  520. package/dist/ortho/maze.d.ts +27 -0
  521. package/dist/ortho/maze.d.ts.map +1 -0
  522. package/dist/ortho/ortho-parallel.d.ts +26 -0
  523. package/dist/ortho/ortho-parallel.d.ts.map +1 -0
  524. package/dist/ortho/ortho-route.d.ts +31 -0
  525. package/dist/ortho/ortho-route.d.ts.map +1 -0
  526. package/dist/ortho/partition.d.ts +34 -0
  527. package/dist/ortho/partition.d.ts.map +1 -0
  528. package/dist/ortho/rawgraph.d.ts +41 -0
  529. package/dist/ortho/rawgraph.d.ts.map +1 -0
  530. package/dist/ortho/sgraph.d.ts +74 -0
  531. package/dist/ortho/sgraph.d.ts.map +1 -0
  532. package/dist/ortho/trap-query.d.ts +32 -0
  533. package/dist/ortho/trap-query.d.ts.map +1 -0
  534. package/dist/ortho/trap-segment.d.ts +23 -0
  535. package/dist/ortho/trap-segment.d.ts.map +1 -0
  536. package/dist/ortho/trap-types.d.ts +91 -0
  537. package/dist/ortho/trap-types.d.ts.map +1 -0
  538. package/dist/ortho/trap-update.d.ts +12 -0
  539. package/dist/ortho/trap-update.d.ts.map +1 -0
  540. package/dist/ortho/trapezoid.d.ts +18 -0
  541. package/dist/ortho/trapezoid.d.ts.map +1 -0
  542. package/dist/ortho/types.d.ts +241 -0
  543. package/dist/ortho/types.d.ts.map +1 -0
  544. package/dist/parser/ast.d.ts +49 -0
  545. package/dist/parser/ast.d.ts.map +1 -0
  546. package/dist/parser/builder.d.ts +75 -0
  547. package/dist/parser/builder.d.ts.map +1 -0
  548. package/dist/parser/index.d.ts +97 -0
  549. package/dist/parser/index.d.ts.map +1 -0
  550. package/dist/pathplan/index.d.ts +8 -0
  551. package/dist/pathplan/index.d.ts.map +1 -0
  552. package/dist/pathplan/route.d.ts +9 -0
  553. package/dist/pathplan/route.d.ts.map +1 -0
  554. package/dist/pathplan/shortest.d.ts +5 -0
  555. package/dist/pathplan/shortest.d.ts.map +1 -0
  556. package/dist/pathplan/solvers.d.ts +5 -0
  557. package/dist/pathplan/solvers.d.ts.map +1 -0
  558. package/dist/pathplan/triang.d.ts +25 -0
  559. package/dist/pathplan/triang.d.ts.map +1 -0
  560. package/dist/pathplan/types.d.ts +22 -0
  561. package/dist/pathplan/types.d.ts.map +1 -0
  562. package/dist/pathplan/visibility.d.ts +13 -0
  563. package/dist/pathplan/visibility.d.ts.map +1 -0
  564. package/dist/pathplan/vispath.d.ts +9 -0
  565. package/dist/pathplan/vispath.d.ts.map +1 -0
  566. package/dist/rbtree/index.d.ts +127 -0
  567. package/dist/rbtree/index.d.ts.map +1 -0
  568. package/dist/render/color-resolve.d.ts +38 -0
  569. package/dist/render/color-resolve.d.ts.map +1 -0
  570. package/dist/render/dot.d.ts +379 -0
  571. package/dist/render/dot.d.ts.map +1 -0
  572. package/dist/render/index.d.ts +24 -0
  573. package/dist/render/index.d.ts.map +1 -0
  574. package/dist/render/json.d.ts +89 -0
  575. package/dist/render/json.d.ts.map +1 -0
  576. package/dist/render/map-test-helpers.d.ts +13 -0
  577. package/dist/render/map-test-helpers.d.ts.map +1 -0
  578. package/dist/render/map.d.ts +197 -0
  579. package/dist/render/map.d.ts.map +1 -0
  580. package/dist/render/public.d.ts +64 -0
  581. package/dist/render/public.d.ts.map +1 -0
  582. package/dist/render/svg-arrow-ops.d.ts +10 -0
  583. package/dist/render/svg-arrow-ops.d.ts.map +1 -0
  584. package/dist/render/svg-cluster.d.ts +9 -0
  585. package/dist/render/svg-cluster.d.ts.map +1 -0
  586. package/dist/render/svg-edge-ortho-radius.d.ts +31 -0
  587. package/dist/render/svg-edge-ortho-radius.d.ts.map +1 -0
  588. package/dist/render/svg-edge-split.d.ts +48 -0
  589. package/dist/render/svg-edge-split.d.ts.map +1 -0
  590. package/dist/render/svg-gradient.d.ts +46 -0
  591. package/dist/render/svg-gradient.d.ts.map +1 -0
  592. package/dist/render/svg-graph.d.ts +97 -0
  593. package/dist/render/svg-graph.d.ts.map +1 -0
  594. package/dist/render/svg-helpers.d.ts +122 -0
  595. package/dist/render/svg-helpers.d.ts.map +1 -0
  596. package/dist/render/svg-id.d.ts +28 -0
  597. package/dist/render/svg-id.d.ts.map +1 -0
  598. package/dist/render/svg-multicolor.d.ts +60 -0
  599. package/dist/render/svg-multicolor.d.ts.map +1 -0
  600. package/dist/render/svg-parallel-edge.d.ts +28 -0
  601. package/dist/render/svg-parallel-edge.d.ts.map +1 -0
  602. package/dist/render/svg-tapered-edge.d.ts +18 -0
  603. package/dist/render/svg-tapered-edge.d.ts.map +1 -0
  604. package/dist/render/svg.d.ts +104 -0
  605. package/dist/render/svg.d.ts.map +1 -0
  606. package/dist/render/xdot-public.d.ts +95 -0
  607. package/dist/render/xdot-public.d.ts.map +1 -0
  608. package/dist/render/xml-escape.d.ts +21 -0
  609. package/dist/render/xml-escape.d.ts.map +1 -0
  610. package/dist/render.js +52556 -0
  611. package/dist/render.js.map +7 -0
  612. package/dist/util/agxbuf.d.ts +72 -0
  613. package/dist/util/agxbuf.d.ts.map +1 -0
  614. package/dist/util/bsd-qsort.d.ts +22 -0
  615. package/dist/util/bsd-qsort.d.ts.map +1 -0
  616. package/dist/util/index.d.ts +11 -0
  617. package/dist/util/index.d.ts.map +1 -0
  618. package/dist/util/list.d.ts +47 -0
  619. package/dist/util/list.d.ts.map +1 -0
  620. package/dist/util/math.d.ts +54 -0
  621. package/dist/util/math.d.ts.map +1 -0
  622. package/dist/util/mt19937.d.ts +40 -0
  623. package/dist/util/mt19937.d.ts.map +1 -0
  624. package/dist/util/printf-round.d.ts +45 -0
  625. package/dist/util/printf-round.d.ts.map +1 -0
  626. package/dist/util/xml.d.ts +24 -0
  627. package/dist/util/xml.d.ts.map +1 -0
  628. package/dist/vpsc/Block.d.ts +116 -0
  629. package/dist/vpsc/Block.d.ts.map +1 -0
  630. package/dist/vpsc/Blocks.d.ts +66 -0
  631. package/dist/vpsc/Blocks.d.ts.map +1 -0
  632. package/dist/vpsc/Constraint.d.ts +51 -0
  633. package/dist/vpsc/Constraint.d.ts.map +1 -0
  634. package/dist/vpsc/HeapUtils.d.ts +37 -0
  635. package/dist/vpsc/HeapUtils.d.ts.map +1 -0
  636. package/dist/vpsc/Solver.d.ts +107 -0
  637. package/dist/vpsc/Solver.d.ts.map +1 -0
  638. package/dist/vpsc/SweepLine.d.ts +38 -0
  639. package/dist/vpsc/SweepLine.d.ts.map +1 -0
  640. package/dist/vpsc/Variable.d.ts +38 -0
  641. package/dist/vpsc/Variable.d.ts.map +1 -0
  642. package/dist/vpsc/index.d.ts +54 -0
  643. package/dist/vpsc/index.d.ts.map +1 -0
  644. package/dist/vpsc/sweepTypes.d.ts +29 -0
  645. package/dist/vpsc/sweepTypes.d.ts.map +1 -0
  646. package/dist/xdot/index.d.ts +6 -0
  647. package/dist/xdot/index.d.ts.map +1 -0
  648. package/dist/xdot/lex.d.ts +22 -0
  649. package/dist/xdot/lex.d.ts.map +1 -0
  650. package/dist/xdot/misc.d.ts +13 -0
  651. package/dist/xdot/misc.d.ts.map +1 -0
  652. package/dist/xdot/parse.d.ts +21 -0
  653. package/dist/xdot/parse.d.ts.map +1 -0
  654. package/dist/xdot/types.d.ts +152 -0
  655. package/dist/xdot/types.d.ts.map +1 -0
  656. package/package.json +113 -0
  657. package/src/api/builder.ts +277 -0
  658. package/src/api/edge-ops.ts +113 -0
  659. package/src/api/geometry.ts +307 -0
  660. package/src/api/index.ts +46 -0
  661. package/src/cdt/bag.ts +196 -0
  662. package/src/cdt/hash-core.ts +84 -0
  663. package/src/cdt/hash.ts +207 -0
  664. package/src/cdt/index.ts +17 -0
  665. package/src/cdt/splay-core.ts +301 -0
  666. package/src/cdt/splay.ts +191 -0
  667. package/src/cdt/strhash.ts +52 -0
  668. package/src/cdt/types.ts +13 -0
  669. package/src/common/arith.ts +39 -0
  670. package/src/common/arm-pow-data.ts +201 -0
  671. package/src/common/arm-pow.ts +296 -0
  672. package/src/common/arrows-constants.ts +175 -0
  673. package/src/common/arrows-geometry.ts +62 -0
  674. package/src/common/arrows-miter.ts +84 -0
  675. package/src/common/arrows-shapes-poly.ts +241 -0
  676. package/src/common/arrows-shapes-util.ts +162 -0
  677. package/src/common/arrows-shapes.ts +360 -0
  678. package/src/common/arrows-types.ts +59 -0
  679. package/src/common/arrows.ts +209 -0
  680. package/src/common/color.ts +340 -0
  681. package/src/common/colorData.ts +264 -0
  682. package/src/common/compass-port.ts +384 -0
  683. package/src/common/crand.ts +79 -0
  684. package/src/common/edge-label-init.ts +310 -0
  685. package/src/common/edge-offset.ts +140 -0
  686. package/src/common/ellipse-wedge.ts +189 -0
  687. package/src/common/emit-types.ts +332 -0
  688. package/src/common/fma.ts +52 -0
  689. package/src/common/graph-init.ts +359 -0
  690. package/src/common/html-entities.ts +299 -0
  691. package/src/common/html-string.ts +22 -0
  692. package/src/common/htmltable-emit-fill.ts +367 -0
  693. package/src/common/htmltable-emit-rules.ts +293 -0
  694. package/src/common/htmltable-emit.ts +345 -0
  695. package/src/common/htmltable-lex.ts +138 -0
  696. package/src/common/htmltable-parse.ts +539 -0
  697. package/src/common/htmltable-port.ts +32 -0
  698. package/src/common/htmltable-pos-runs.ts +313 -0
  699. package/src/common/htmltable-pos.ts +601 -0
  700. package/src/common/htmltable-types.ts +262 -0
  701. package/src/common/htmltable.ts +477 -0
  702. package/src/common/layers.ts +113 -0
  703. package/src/common/make-label.ts +192 -0
  704. package/src/common/multicolor.ts +167 -0
  705. package/src/common/nodeinit.ts +339 -0
  706. package/src/common/poly-gencode.ts +475 -0
  707. package/src/common/poly-init.ts +133 -0
  708. package/src/common/poly-inside.ts +202 -0
  709. package/src/common/poly-shapes-cases.ts +253 -0
  710. package/src/common/poly-shapes-cases2.ts +170 -0
  711. package/src/common/poly-shapes-util.ts +124 -0
  712. package/src/common/poly-shapes.ts +181 -0
  713. package/src/common/poly-sizing.ts +639 -0
  714. package/src/common/poly-vertices.ts +237 -0
  715. package/src/common/postproc.ts +436 -0
  716. package/src/common/ps-fontalias.ts +112 -0
  717. package/src/common/random.ts +37 -0
  718. package/src/common/record-port.ts +89 -0
  719. package/src/common/record.ts +523 -0
  720. package/src/common/shapeData.ts +502 -0
  721. package/src/common/shapes.ts +187 -0
  722. package/src/common/spline-midpoint.ts +105 -0
  723. package/src/common/splines-clip.ts +449 -0
  724. package/src/common/splines-constants.ts +53 -0
  725. package/src/common/splines-geom.ts +194 -0
  726. package/src/common/splines-path-begin.ts +243 -0
  727. package/src/common/splines-path-end.ts +231 -0
  728. package/src/common/splines-path-shared.ts +258 -0
  729. package/src/common/splines-routespl.ts +444 -0
  730. package/src/common/splines-selfedge.ts +403 -0
  731. package/src/common/splines.ts +33 -0
  732. package/src/common/style-resolve.ts +481 -0
  733. package/src/common/subst.ts +126 -0
  734. package/src/common/taper.ts +219 -0
  735. package/src/common/textmeasure-factory.ts +86 -0
  736. package/src/common/textmeasure-lookup.ts +50 -0
  737. package/src/common/textmeasure-lut-data-a.ts +182 -0
  738. package/src/common/textmeasure-lut-data-b.ts +140 -0
  739. package/src/common/textmeasure-lut-data-c.ts +221 -0
  740. package/src/common/textmeasure-lut-data.ts +78 -0
  741. package/src/common/textmeasure.ts +321 -0
  742. package/src/common/types.ts +425 -0
  743. package/src/common/xlabels-place.ts +475 -0
  744. package/src/debug.ts +38 -0
  745. package/src/errors.ts +95 -0
  746. package/src/gvc/anchor.ts +530 -0
  747. package/src/gvc/context.ts +260 -0
  748. package/src/gvc/default-context.ts +70 -0
  749. package/src/gvc/device-cluster.ts +114 -0
  750. package/src/gvc/device.ts +598 -0
  751. package/src/gvc/edge-labels.ts +116 -0
  752. package/src/gvc/emit-walk.ts +98 -0
  753. package/src/gvc/image-resolver.ts +137 -0
  754. package/src/gvc/job.ts +401 -0
  755. package/src/gvc/textlayout.ts +44 -0
  756. package/src/gvc/textspan-emit.ts +100 -0
  757. package/src/gvc/usershape.ts +33 -0
  758. package/src/gvc/viewport.ts +203 -0
  759. package/src/index.ts +165 -0
  760. package/src/label/index.ts +302 -0
  761. package/src/label/node.ts +278 -0
  762. package/src/label/rectangle.ts +123 -0
  763. package/src/label/split-q.ts +237 -0
  764. package/src/label/xlabels-geom.ts +132 -0
  765. package/src/label/xlabels-intersect.ts +421 -0
  766. package/src/label/xlabels.ts +212 -0
  767. package/src/layout/circo/blockpath.ts +560 -0
  768. package/src/layout/circo/blocks.ts +234 -0
  769. package/src/layout/circo/blocktree.ts +246 -0
  770. package/src/layout/circo/circular.ts +227 -0
  771. package/src/layout/circo/index.ts +90 -0
  772. package/src/layout/circo/init.ts +84 -0
  773. package/src/layout/circo/position-helpers.ts +104 -0
  774. package/src/layout/circo/position.ts +196 -0
  775. package/src/layout/dot/__fixtures__/xcoord-pivot-divergence.gv +79 -0
  776. package/src/layout/dot/acyclic.ts +60 -0
  777. package/src/layout/dot/aspect.ts +22 -0
  778. package/src/layout/dot/classify.ts +462 -0
  779. package/src/layout/dot/cluster-path.ts +200 -0
  780. package/src/layout/dot/cluster.ts +480 -0
  781. package/src/layout/dot/compound-clip.ts +224 -0
  782. package/src/layout/dot/compound-geom.ts +282 -0
  783. package/src/layout/dot/compound.ts +294 -0
  784. package/src/layout/dot/conc.ts +433 -0
  785. package/src/layout/dot/decomp.ts +165 -0
  786. package/src/layout/dot/edge-order.ts +62 -0
  787. package/src/layout/dot/edge-route-arrow.ts +87 -0
  788. package/src/layout/dot/edge-route-boxes.ts +99 -0
  789. package/src/layout/dot/edge-route-chain.ts +420 -0
  790. package/src/layout/dot/edge-route-clip.ts +253 -0
  791. package/src/layout/dot/edge-route-faithful.ts +404 -0
  792. package/src/layout/dot/edge-route-geom.ts +90 -0
  793. package/src/layout/dot/edge-route-helpers.ts +170 -0
  794. package/src/layout/dot/edge-route-poly.ts +174 -0
  795. package/src/layout/dot/edge-route-rank.ts +136 -0
  796. package/src/layout/dot/edge-route-routing.ts +219 -0
  797. package/src/layout/dot/edge-route.ts +490 -0
  798. package/src/layout/dot/fastgr.ts +377 -0
  799. package/src/layout/dot/flat-utils.ts +52 -0
  800. package/src/layout/dot/flat.ts +518 -0
  801. package/src/layout/dot/graph-label.ts +114 -0
  802. package/src/layout/dot/index.ts +302 -0
  803. package/src/layout/dot/init.ts +300 -0
  804. package/src/layout/dot/label-order.ts +161 -0
  805. package/src/layout/dot/mincross-build.ts +373 -0
  806. package/src/layout/dot/mincross-cross.ts +409 -0
  807. package/src/layout/dot/mincross-flat.ts +213 -0
  808. package/src/layout/dot/mincross-order.ts +401 -0
  809. package/src/layout/dot/mincross-utils.ts +170 -0
  810. package/src/layout/dot/mincross.ts +386 -0
  811. package/src/layout/dot/ns-core.ts +122 -0
  812. package/src/layout/dot/ns-range.ts +228 -0
  813. package/src/layout/dot/ns-subtree.ts +347 -0
  814. package/src/layout/dot/ns.ts +506 -0
  815. package/src/layout/dot/ortho-adapter.ts +133 -0
  816. package/src/layout/dot/pack-components.ts +433 -0
  817. package/src/layout/dot/position-aux.ts +382 -0
  818. package/src/layout/dot/position-bbox.ts +221 -0
  819. package/src/layout/dot/position-cluster.ts +286 -0
  820. package/src/layout/dot/position-ycoords.ts +287 -0
  821. package/src/layout/dot/position.ts +194 -0
  822. package/src/layout/dot/rank-dot2.ts +528 -0
  823. package/src/layout/dot/rank.ts +547 -0
  824. package/src/layout/dot/sameport.ts +278 -0
  825. package/src/layout/dot/self-loop.ts +147 -0
  826. package/src/layout/dot/splines-clone.ts +121 -0
  827. package/src/layout/dot/splines-flat-labeled.ts +408 -0
  828. package/src/layout/dot/splines-flat-multi.ts +188 -0
  829. package/src/layout/dot/splines-flat.ts +598 -0
  830. package/src/layout/dot/splines-groups.ts +190 -0
  831. package/src/layout/dot/splines-label.ts +432 -0
  832. package/src/layout/dot/splines-route-type.ts +44 -0
  833. package/src/layout/dot/splines-route.ts +478 -0
  834. package/src/layout/dot/splines.ts +538 -0
  835. package/src/layout/dot/straight-edges.ts +332 -0
  836. package/src/layout/fdp/cluster-edges.ts +0 -0
  837. package/src/layout/fdp/comp.ts +160 -0
  838. package/src/layout/fdp/derive.ts +272 -0
  839. package/src/layout/fdp/fdp-model.ts +238 -0
  840. package/src/layout/fdp/grid.ts +77 -0
  841. package/src/layout/fdp/index.ts +113 -0
  842. package/src/layout/fdp/init.ts +116 -0
  843. package/src/layout/fdp/layout.ts +485 -0
  844. package/src/layout/fdp/normalize.ts +100 -0
  845. package/src/layout/fdp/ports.ts +161 -0
  846. package/src/layout/fdp/tlayout-init.ts +230 -0
  847. package/src/layout/fdp/tlayout-parms.ts +234 -0
  848. package/src/layout/fdp/tlayout.ts +317 -0
  849. package/src/layout/fdp/xlayout.ts +350 -0
  850. package/src/layout/neato/bfs.ts +131 -0
  851. package/src/layout/neato/cdt-surface.ts +693 -0
  852. package/src/layout/neato/conjgrad.ts +159 -0
  853. package/src/layout/neato/delaunay.ts +259 -0
  854. package/src/layout/neato/dijkstra.ts +296 -0
  855. package/src/layout/neato/fdp-adjust.ts +124 -0
  856. package/src/layout/neato/index.ts +310 -0
  857. package/src/layout/neato/init.ts +505 -0
  858. package/src/layout/neato/legal.ts +316 -0
  859. package/src/layout/neato/matrix-ops.ts +112 -0
  860. package/src/layout/neato/multispline-router.ts +417 -0
  861. package/src/layout/neato/multispline.ts +427 -0
  862. package/src/layout/neato/overlap-prism.ts +503 -0
  863. package/src/layout/neato/overlap.ts +158 -0
  864. package/src/layout/neato/sc-adjust.ts +206 -0
  865. package/src/layout/neato/sep-factor.ts +118 -0
  866. package/src/layout/neato/set-aspect.ts +178 -0
  867. package/src/layout/neato/sgd.ts +461 -0
  868. package/src/layout/neato/splines.ts +1014 -0
  869. package/src/layout/neato/stress-kernel.ts +362 -0
  870. package/src/layout/neato/stress.ts +420 -0
  871. package/src/layout/osage/index.ts +548 -0
  872. package/src/layout/osage/layout.ts +254 -0
  873. package/src/layout/osage/types.ts +31 -0
  874. package/src/layout/pack/array-pack.ts +254 -0
  875. package/src/layout/pack/index.ts +570 -0
  876. package/src/layout/pack/poly-pack.ts +266 -0
  877. package/src/layout/pack/poly-place.ts +426 -0
  878. package/src/layout/pack/spiral-search.ts +106 -0
  879. package/src/layout/pack/test-helpers.ts +46 -0
  880. package/src/layout/pack/types.ts +85 -0
  881. package/src/layout/patchwork/index.ts +441 -0
  882. package/src/layout/patchwork/tree-map.ts +183 -0
  883. package/src/layout/patchwork/tree-node.ts +120 -0
  884. package/src/layout/sfdp/index.ts +231 -0
  885. package/src/layout/sfdp/init.ts +224 -0
  886. package/src/layout/sfdp/multilevel.ts +262 -0
  887. package/src/layout/sfdp/quadtree.ts +267 -0
  888. package/src/layout/sfdp/sparse-matrix-multiply.ts +160 -0
  889. package/src/layout/sfdp/sparse-matrix.ts +367 -0
  890. package/src/layout/sfdp/sparse-solve.ts +122 -0
  891. package/src/layout/sfdp/spring-driver.ts +209 -0
  892. package/src/layout/sfdp/spring-electrical.ts +431 -0
  893. package/src/layout/twopi/circle.ts +339 -0
  894. package/src/layout/twopi/index.ts +78 -0
  895. package/src/layout/twopi/init.ts +174 -0
  896. package/src/layout/twopi/pipeline.ts +98 -0
  897. package/src/layout/twopi/twopi-test-helpers.ts +44 -0
  898. package/src/model/algData.ts +194 -0
  899. package/src/model/cgraph-ops.ts +175 -0
  900. package/src/model/edge.ts +104 -0
  901. package/src/model/edgeInfo.ts +431 -0
  902. package/src/model/geom.ts +204 -0
  903. package/src/model/graph.ts +172 -0
  904. package/src/model/graphInfo.ts +528 -0
  905. package/src/model/index.ts +10 -0
  906. package/src/model/layoutParams.ts +127 -0
  907. package/src/model/node.ts +138 -0
  908. package/src/model/nodeInfo.ts +424 -0
  909. package/src/model/rankEntry.ts +95 -0
  910. package/src/ortho/chan-dict.ts +236 -0
  911. package/src/ortho/fpq.ts +149 -0
  912. package/src/ortho/index.ts +206 -0
  913. package/src/ortho/maze-channels.ts +196 -0
  914. package/src/ortho/maze.ts +311 -0
  915. package/src/ortho/ortho-parallel.ts +254 -0
  916. package/src/ortho/ortho-route.ts +349 -0
  917. package/src/ortho/partition.ts +303 -0
  918. package/src/ortho/rawgraph.ts +119 -0
  919. package/src/ortho/sgraph.ts +283 -0
  920. package/src/ortho/trap-query.ts +174 -0
  921. package/src/ortho/trap-segment.ts +303 -0
  922. package/src/ortho/trap-types.ts +171 -0
  923. package/src/ortho/trap-update.ts +89 -0
  924. package/src/ortho/trapezoid.ts +120 -0
  925. package/src/ortho/types.ts +286 -0
  926. package/src/parser/__fixtures__/directed.dot +10 -0
  927. package/src/parser/__fixtures__/simple.dot +7 -0
  928. package/src/parser/__fixtures__/subgraph.dot +17 -0
  929. package/src/parser/ast.ts +64 -0
  930. package/src/parser/builder.ts +401 -0
  931. package/src/parser/dot.d.ts +208 -0
  932. package/src/parser/dot.js +3321 -0
  933. package/src/parser/dot.pegjs +263 -0
  934. package/src/parser/index.ts +353 -0
  935. package/src/pathplan/index.ts +9 -0
  936. package/src/pathplan/route.ts +284 -0
  937. package/src/pathplan/shortest.ts +268 -0
  938. package/src/pathplan/solvers.ts +65 -0
  939. package/src/pathplan/triang.ts +221 -0
  940. package/src/pathplan/types.ts +16 -0
  941. package/src/pathplan/visibility.ts +170 -0
  942. package/src/pathplan/vispath.ts +118 -0
  943. package/src/rbtree/index.ts +418 -0
  944. package/src/render/color-resolve.ts +171 -0
  945. package/src/render/dot.ts +1514 -0
  946. package/src/render/index.ts +29 -0
  947. package/src/render/json.ts +734 -0
  948. package/src/render/map-test-helpers.ts +61 -0
  949. package/src/render/map.ts +528 -0
  950. package/src/render/public.ts +131 -0
  951. package/src/render/svg-arrow-ops.ts +113 -0
  952. package/src/render/svg-cluster.ts +24 -0
  953. package/src/render/svg-edge-ortho-radius.ts +228 -0
  954. package/src/render/svg-edge-split.ts +180 -0
  955. package/src/render/svg-gradient.ts +185 -0
  956. package/src/render/svg-graph.ts +415 -0
  957. package/src/render/svg-helpers.ts +623 -0
  958. package/src/render/svg-id.ts +76 -0
  959. package/src/render/svg-multicolor.ts +313 -0
  960. package/src/render/svg-parallel-edge.ts +123 -0
  961. package/src/render/svg-tapered-edge.ts +56 -0
  962. package/src/render/svg.ts +307 -0
  963. package/src/render/xdot-public.ts +164 -0
  964. package/src/render/xml-escape.ts +56 -0
  965. package/src/util/agxbuf.ts +138 -0
  966. package/src/util/bsd-qsort.ts +251 -0
  967. package/src/util/index.ts +25 -0
  968. package/src/util/list.ts +122 -0
  969. package/src/util/math.ts +104 -0
  970. package/src/util/mt19937.ts +143 -0
  971. package/src/util/printf-round.ts +163 -0
  972. package/src/util/xml.ts +184 -0
  973. package/src/vpsc/Block.ts +375 -0
  974. package/src/vpsc/Blocks.ts +164 -0
  975. package/src/vpsc/Constraint.ts +94 -0
  976. package/src/vpsc/HeapUtils.ts +88 -0
  977. package/src/vpsc/Solver.ts +274 -0
  978. package/src/vpsc/SweepLine.ts +214 -0
  979. package/src/vpsc/Variable.ts +54 -0
  980. package/src/vpsc/index.ts +122 -0
  981. package/src/vpsc/sweepTypes.ts +31 -0
  982. package/src/xdot/index.ts +7 -0
  983. package/src/xdot/lex.ts +151 -0
  984. package/src/xdot/misc.ts +226 -0
  985. package/src/xdot/parse.ts +349 -0
  986. package/src/xdot/types.ts +158 -0
@@ -0,0 +1,128 @@
1
+ /**
2
+ * Dot layout engine entry point.
3
+ *
4
+ * Wires together the full dot layout pipeline:
5
+ * setAspect → dotInitSubg → dotInitNodeEdge →
6
+ * dotRank → dotMincross → dotPosition →
7
+ * removeFill → dotSameports → dotSplines → dotCompoundEdges
8
+ *
9
+ * Also exports DOT_LAYOUT_ENGINE, the LayoutEngine registration object
10
+ * used by GvcContext.
11
+ *
12
+ * @see lib/dotgen/dotinit.c:dot_layout
13
+ * @see lib/dotgen/dotinit.c:dotLayout (static)
14
+ */
15
+ import type { Graph } from '../../model/graph.js';
16
+ import type { LayoutEngine } from '../../gvc/context.js';
17
+ export { CL_CROSS, dotInitNode, dotInitEdge, dotInitSubg, dotInitNodeEdge, removeFill, dotCleanup, dotGraphInit, RANKDIR_TB, RANKDIR_LR, RANKDIR_BT, RANKDIR_RL, } from './init.js';
18
+ /**
19
+ * Stores the edge-type flag in the low 4 bits of g.info.flags.
20
+ * Mirrors the C macro setEdgeType(g, t).
21
+ *
22
+ * @see lib/common/const.h:setEdgeType
23
+ */
24
+ export declare function setEdgeType(g: Graph, t: number): void;
25
+ /**
26
+ * Set the edge type from the graph's `splines` attribute: unset → defaultValue,
27
+ * empty string → NONE, otherwise the parsed value. Mirrors C's setEdgeType
28
+ * (which reads `agget(g, "splines")`). @see lib/common/utils.c:setEdgeType
29
+ *
30
+ * C's `agget` resolves a graph attribute up the ancestor chain, so a component
31
+ * subgraph sees the root's `splines`. The port's `attrs` map holds only the
32
+ * attributes written on that graph, so walk to the root ourselves — otherwise
33
+ * the per-component call sites (neato's `gc`, sfdp's `sg`) read `undefined` and
34
+ * silently fall back to the default.
35
+ */
36
+ export declare function setEdgeTypeFromAttr(g: Graph, defaultValue: number): void;
37
+ /**
38
+ * Reads an integer graph attribute, returning defaultVal if not set.
39
+ * Mirrors late_int() from lib/common/utils.c for graph-level reads.
40
+ *
41
+ * @see lib/common/utils.c:late_int
42
+ */
43
+ export declare function getAttrInt(g: Graph, key: string, defaultVal: number): number;
44
+ /**
45
+ * Phase 0: parse rankdir, set edge type, and run aspect + init passes.
46
+ * dotGraphInit must run first so g.info.flip is set before nodeinit uses it.
47
+ * @see lib/common/input.c:600-663 graph_init
48
+ * @see lib/dotgen/dotinit.c:dotLayout (static)
49
+ */
50
+ export declare function dotPhaseInit(g: Graph): void;
51
+ /**
52
+ * Phase 4a: post-position passes WITHOUT the final gvPostprocess —
53
+ * removeFill, sameports, splines, compound. This is C's static `dotLayout`
54
+ * tail; the per-component pack branch runs exactly this (gvPostprocess is run
55
+ * once on the root afterwards, not per component).
56
+ * @see lib/dotgen/dotinit.c:dotLayout (static)
57
+ */
58
+ export declare function dotPhasePostNoFinish(g: Graph): void;
59
+ /**
60
+ * Phase 4: post-position passes — the no-finish tail plus gvPostprocess to
61
+ * rotate/translate coordinates per rankdir.
62
+ * @see lib/dotgen/dotinit.c:dotLayout (static)
63
+ * @see lib/common/postproc.c:dotneato_postprocess
64
+ */
65
+ export declare function dotPhasePost(g: Graph): void;
66
+ /**
67
+ * Runs the full dot layout pipeline on graph g.
68
+ *
69
+ * The optional `maxphase` attribute (read from g.attrs) controls how many
70
+ * phases run (1=rank only, 2=+mincross, 3=+position, ≥4 or absent=all).
71
+ *
72
+ * C's `dotLayout` checks `dot_mincross`'s return code and returns immediately
73
+ * on failure, skipping `dot_position` (phase 3) and `dotneato_postprocess`
74
+ * entirely — `dot_position` is never reached with a rank/cluster-window state
75
+ * that `dot_mincross` has already given up on (e.g. a cluster's rank window
76
+ * outliving root's rank-array allocation after malformed-input rankset
77
+ * recovery deletes cluster members but leaves the window unshrunk). The port
78
+ * previously discarded `dotMincross`'s return value and always ran
79
+ * `dotPosition` regardless, so `dotPosition` could observe exactly that
80
+ * unreachable-in-C state and crash (e.g. `position-ycoords.ts:clustHt`
81
+ * indexing the root rank array one past its allocated length).
82
+ * @see lib/dotgen/dotinit.c:dotLayout (static) — `if (rc != 0) return rc;`
83
+ * after `dot_mincross`, propagated through `doDot`/`dot_layout` to also
84
+ * skip `dotneato_postprocess`.
85
+ *
86
+ * C applies the identical `if (r != 0) return r;` check after `dot_position`
87
+ * (dotinit.c:322-325), also skipping `dotPhasePost` (removeFill/sameports/
88
+ * splines/compound) and `gvPostprocess`. `dot_position` fails when
89
+ * `dot_concentrate` fails (`rebuild_vlists: lead is null for rank N`, e.g.
90
+ * corpus 2825 — a cross-cluster rank=same plus rankset-conflict deletions
91
+ * leaves a cluster rank with no rankleader); C's renderer then walks the
92
+ * still-fully-connected `Agraph_t` but every node fails `node_in_box`
93
+ * against the never-computed (all-zero) `GD_bb`, so only cluster frames
94
+ * (also zero-sized, since `set_aspect`/cluster geometry never ran) reach
95
+ * the page. The port previously discarded `dotPosition`'s return value and
96
+ * always ran `dotPhasePost`, producing a full (non-degenerate) rendering
97
+ * where C produces near-empty output.
98
+ */
99
+ export declare function dotLayoutPipeline(g: Graph): void;
100
+ /**
101
+ * Port of C's `doDot`: when `pack`/`packmode` is set, decompose the graph into
102
+ * connected components, lay out each one, and polyomino-pack them; otherwise
103
+ * (and for a single component, or a non-R_NONE ratio) fall back to whole-graph
104
+ * `dotLayoutPipeline`. The thin component loop + cluster carry live in
105
+ * pack-components.ts (ADR-1). `dotLayoutPipeline` already includes the root
106
+ * `gvPostprocess`, so the simple arms map exactly to C's `dotLayout(g)` +
107
+ * `dotneato_postprocess(g)`; the pack arm runs `gvPostprocess` once inside
108
+ * `layoutAndPack`.
109
+ *
110
+ * @see lib/dotgen/dotinit.c:doDot
111
+ */
112
+ export declare function doDot(g: Graph): void;
113
+ /**
114
+ * LayoutEngine.layout implementation for the dot engine.
115
+ * Skips empty graphs (matching C's agnnodes(g) guard).
116
+ *
117
+ * @see lib/dotgen/dotinit.c:dot_layout
118
+ */
119
+ export declare function dotLayoutEntry(g: Graph): void;
120
+ /**
121
+ * The dot layout engine registration object.
122
+ * Register with GvcContext.register(DOT_LAYOUT_ENGINE).
123
+ *
124
+ * @see lib/gvc/gvplugin.h:gvlayout_engine_s
125
+ * @see lib/dotgen/dotinit.c:dot_layout
126
+ */
127
+ export declare const DOT_LAYOUT_ENGINE: LayoutEngine;
128
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAyBzD,OAAO,EACL,QAAQ,EACR,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,EACf,UAAU,EACV,UAAU,EACV,YAAY,EACZ,UAAU,EACV,UAAU,EACV,UAAU,EACV,UAAU,GACX,MAAM,WAAW,CAAC;AAOnB;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAErD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAUxE;AAMD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAK5E;AAOD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAM3C;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAUnD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAG3C;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAYhD;AAkBD;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CA4BpC;AAMD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAG7C;AAMD;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,YAI/B,CAAC"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * TypeScript port of lib/dotgen/dotinit.c — initialisation helpers for
3
+ * the dot layout pipeline (dot_init_node, dot_init_edge, dot_init_subg,
4
+ * dot_init_node_edge, removeFill, dot_cleanup).
5
+ *
6
+ * @see lib/dotgen/dotinit.c
7
+ */
8
+ import type { Graph } from '../../model/graph.js';
9
+ import type { Node } from '../../model/node.js';
10
+ import type { Edge } from '../../model/edge.js';
11
+ export { RANKDIR_TB, RANKDIR_LR, RANKDIR_BT, RANKDIR_RL } from '../../common/graph-init.js';
12
+ /**
13
+ * dot's call into the engine-agnostic `graph_init`, plus the one piece of
14
+ * rankdir handling that is genuinely dot's: propagating GD_rankdir2 down to the
15
+ * clusters (C does this in dot's own `initSubg`, dotinit.c:352 — NOT in
16
+ * graph_init).
17
+ *
18
+ * dot is the only engine with `LAYOUT_USES_RANKDIR`
19
+ * (plugin/dot_layout/gvlayout_dot_layout.c:27), hence `useRankdir = true`: the
20
+ * effective rankdir (bits 0-1) tracks the attr instead of being pinned to TB.
21
+ *
22
+ * @see lib/common/input.c:600 graph_init
23
+ * @see lib/gvc/gvlayout.c:81 (graph_init(g, LAYOUT_USES_RANKDIR))
24
+ * @see lib/dotgen/dotinit.c:352 initSubg
25
+ */
26
+ export declare function dotGraphInit(g: Graph): void;
27
+ /**
28
+ * Crossing penalty for cluster-skeleton / same-group edges.
29
+ * C uses 1000 except under _WIN32, where 100 avoids a 16-bit overflow.
30
+ * The oracle platform (and every modern build) takes the 1000 branch;
31
+ * mincross best-order selection on penalty plateaus depends on it.
32
+ * @see lib/common/const.h:CL_CROSS
33
+ */
34
+ export declare const CL_CROSS = 1000;
35
+ /**
36
+ * Initialises per-node layout data for the dot engine.
37
+ * Mirrors dot_init_node: binds Agnodeinfo_t and allocates edge lists.
38
+ *
39
+ * @see lib/dotgen/dotinit.c:dot_init_node
40
+ */
41
+ export declare function dotInitNode(n: Node): void;
42
+ /**
43
+ * True when tail and head carry the same non-empty `group` attribute.
44
+ * C compares interned refstr pointers (`tailgroup == headgroup`); cgraph's
45
+ * per-graph string pool makes that exactly content equality, and the
46
+ * `tailgroup[0]` guard excludes the shared "" default.
47
+ * @see lib/dotgen/dotinit.c:dot_init_edge (tailgroup/headgroup check)
48
+ */
49
+ export declare function sameNonemptyGroup(e: Edge): boolean;
50
+ /**
51
+ * Initialises per-edge layout data for the dot engine.
52
+ * Mirrors dot_init_edge: sets weight, count, xpenalty, minlen.
53
+ *
54
+ * @see lib/dotgen/dotinit.c:dot_init_edge
55
+ */
56
+ export declare function dotInitEdge(e: Edge): void;
57
+ /**
58
+ * Recursively initialises subgraph-level attributes with defaults.
59
+ * Mirrors dot_init_subg: binds Agraphinfo_t and propagates params.
60
+ *
61
+ * nodesep defaults: 0.25 in × 72 = 18 pts; ranksep: 0.5 in × 72 = 36 pts.
62
+ *
63
+ * @see lib/dotgen/dotinit.c:dot_init_subg
64
+ */
65
+ export declare function dotInitSubg(g: Graph): void;
66
+ /**
67
+ * Calls commonInitNode (shape-aware, label-driven sizing) then
68
+ * dotInitNode for every node, then dotInitEdge for every edge.
69
+ *
70
+ * @see lib/dotgen/dotinit.c:dot_init_node_edge
71
+ * @see lib/dotgen/dotinit.c:dot_init_node (common_init_node + gv_nodesize)
72
+ */
73
+ export declare function dotInitNodeEdge(g: Graph): void;
74
+ /**
75
+ * Deletes the placeholder fill-nodes inserted by fillRanks (NEW_RANK mode)
76
+ * once positioning is done, so they never render. Looks up the `_new_rank`
77
+ * subgraph under the root graph; if absent (the common no-newrank case) this
78
+ * is a no-op. Operates on `g.root` throughout because fillRanks created the
79
+ * fill nodes and their ranks under the root.
80
+ *
81
+ * @see lib/dotgen/dotinit.c:removeFill
82
+ */
83
+ export declare function removeFill(g: Graph): void;
84
+ /**
85
+ * Clears all edge lists and linked-list pointers from nodes in the fast-graph,
86
+ * releasing layout state without destroying the underlying graph structure.
87
+ *
88
+ * Mirrors dot_cleanup: frees virtual node list then per-node edge lists.
89
+ *
90
+ * @see lib/dotgen/dotinit.c:dot_cleanup
91
+ */
92
+ export declare function dotCleanup(g: Graph): void;
93
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/init.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAkBhD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAQ5F;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAG3C;AAwBD;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,OAAO,CAAC;AAM7B;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAgBzC;AAMD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAIlD;AAiCD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CA2BzC;AAMD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAQ1C;AAMD;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAU9C;AAMD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAczC;AAMD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAczC"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * checkLabelOrder / fixLabelOrder — correct the rank order of flat-edge label
3
+ * virtual nodes when it conflicts with their endpoint intervals, which would
4
+ * otherwise make dot_position's "label between its vertices" constraint
5
+ * infeasible. Ported from lib/dotgen/mincross.c:178-326.
6
+ *
7
+ * The per-rank auxiliary graph (C's Agstrictdirected `lg`/`sg`) is modelled as
8
+ * a small array of LabelNode with in/out adjacency (AD-2) — it is tiny and
9
+ * rebuilt per rank.
10
+ *
11
+ * @see lib/dotgen/mincross.c:fixLabelOrder, checkLabelOrder
12
+ */
13
+ import type { Node } from '../../model/node.js';
14
+ import type { Graph } from '../../model/graph.js';
15
+ import type { RankEntry } from '../../model/rankEntry.js';
16
+ /** Auxiliary node, one per flat-edge label vnode on a rank (mirrors info_t). */
17
+ export interface LabelNode {
18
+ /** Lower endpoint order. @see ND_lo */
19
+ lo: number;
20
+ /** Upper endpoint order. @see ND_hi */
21
+ hi: number;
22
+ /** The dot label virtual node. @see ND_np */
23
+ np: Node;
24
+ /** Original rank order of np. @see ND_idx = ND_order(ND_np) */
25
+ idx: number;
26
+ /** DFS visited flag. @see ND_x */
27
+ x: number;
28
+ out: LabelNode[];
29
+ in: LabelNode[];
30
+ }
31
+ /**
32
+ * Reorder a rank's flat-label vnodes so their order is consistent with their
33
+ * endpoint intervals. Builds conflict edges, and for each connected component
34
+ * containing a backedge, reassigns np.order / rank.v[] to the topological order
35
+ * over the component's original positions.
36
+ * @see lib/dotgen/mincross.c:fixLabelOrder
37
+ */
38
+ export declare function fixLabelOrder(nodes: LabelNode[], rank: RankEntry): void;
39
+ /**
40
+ * For each rank, collect flat-edge label vnodes and, when a rank has more than
41
+ * one, run fixLabelOrder to repair an infeasible order.
42
+ * @see lib/dotgen/mincross.c:checkLabelOrder
43
+ */
44
+ export declare function checkLabelOrder(g: Graph): void;
45
+ //# sourceMappingURL=label-order.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label-order.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/label-order.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAE1D,gFAAgF;AAChF,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,6CAA6C;IAC7C,EAAE,EAAE,IAAI,CAAC;IACT,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,CAAC,EAAE,MAAM,CAAC;IACV,GAAG,EAAE,SAAS,EAAE,CAAC;IACjB,EAAE,EAAE,SAAS,EAAE,CAAC;CACjB;AAoED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,CAevE;AAqBD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAW9C"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Build-phase helpers for the mincross algorithm: rank allocation and filling,
3
+ * BFS rank installation, and edge-ordering setup. Flat-edge cycle breaking and
4
+ * flat reorder live in ./mincross-flat.js and are re-exported here.
5
+ * @see lib/dotgen/mincross.c
6
+ */
7
+ import type { Graph } from '../../model/graph.js';
8
+ import type { Node } from '../../model/node.js';
9
+ import type { Edge } from '../../model/edge.js';
10
+ import type { RankEntry } from '../../model/rankEntry.js';
11
+ import { MincrossContext } from './mincross-utils.js';
12
+ import { installCluster, expandCluster, markLowclusters } from './cluster.js';
13
+ export declare function betweenclust(e: Edge): boolean;
14
+ export { flatRevFindRev, flatRev, flatSearchOstack, flatSearchNormal, flatSearchEdge, flatSearch, flatBreakcyclesRank, flatBreakcycles, constrainingFlatEdge, countConstraining, postorder, flatReorderBuildTemprank, flatReorderFixEdges, flatReorderRank, flatReorder, } from './mincross-flat.js';
15
+ export declare function makeEmptyRank(): RankEntry;
16
+ export declare function allocateRanksCount(g: Graph, cn: number[]): void;
17
+ export declare function allocateRanks(g: Graph): void;
18
+ /**
19
+ * Recursive cluster walk: fill empty ranks in `g` and its sub-clusters with
20
+ * placeholder nodes; returns the `_new_rank` subgraph (lazily created).
21
+ *
22
+ * DEVIATION (clust indexing): the C loop is `c=1..n_cluster` over the 1-based
23
+ * `GD_clust(g)[c]`. This port's `g.info.clust` is 0-indexed (populated at
24
+ * `clust[nc-1]` in rank.ts), so we read `clust[c-1]` for the same cluster.
25
+ *
26
+ * @see lib/dotgen/mincross.c:976
27
+ */
28
+ export declare function realFillRanks(g: Graph, ranks: boolean[], sg: Graph | null): Graph | null;
29
+ /** @see lib/dotgen/mincross.c:fillRanks (1013) */
30
+ export declare function fillRanks(g: Graph): void;
31
+ /** Check that rank r is within the graph's rank range. */
32
+ export declare function rankInRange(g: Graph, r: number): boolean;
33
+ /** Check that node's order doesn't exceed root rank allocation. */
34
+ export declare function orderWithinAlloc(ctx: MincrossContext, r: number, order: number): boolean;
35
+ /** Place node n into its rank slot, honouring vStart for multi-component graphs. */
36
+ export declare function placeInRankSlot(g: Graph, n: Node, r: number): number;
37
+ export declare function installInRank(ctx: MincrossContext, g: Graph, n: Node): number;
38
+ export declare function enqueueNeighbors(q: Node[], n0: Node, pass: number): void;
39
+ export { installCluster };
40
+ export declare function buildRanksFlip(ctx: MincrossContext, g: Graph, mn: number, mx: number): void;
41
+ export declare function buildRanksBfs(ctx: MincrossContext, g: Graph, pass: number, startNode: Node): number;
42
+ export declare function buildRanksFindStart(g: Graph): Node | undefined;
43
+ export declare function buildRanksSources(ctx: MincrossContext, g: Graph, pass: number, ns: Node | undefined): number;
44
+ export declare function buildRanks(ctx: MincrossContext, g: Graph, pass: number): number;
45
+ export declare function doOrderingAddFlatEdges(g: Graph, sortlist: Edge[], outflag: boolean): void;
46
+ export declare function doOrderingNode(ctx: MincrossContext, g: Graph, n: Node, outflag: boolean): void;
47
+ export declare function doOrderingForNodes(ctx: MincrossContext, g: Graph): void;
48
+ export declare function doOrdering(ctx: MincrossContext, g: Graph, outflag: boolean): void;
49
+ export declare function orderedEdges(ctx: MincrossContext, g: Graph): void;
50
+ export { class2 } from './classify.js';
51
+ export { expandCluster, markLowclusters };
52
+ //# sourceMappingURL=mincross-build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mincross-build.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/mincross-build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Crossing computation for the mincross algorithm: left2right constraint
3
+ * checks, in/out crossing counts, exchange, transpose, local_cross, rcross,
4
+ * and ncross.
5
+ *
6
+ * @see lib/dotgen/mincross.c
7
+ */
8
+ import type { Graph } from '../../model/graph.js';
9
+ import type { Node } from '../../model/node.js';
10
+ import type { Edge } from '../../model/edge.js';
11
+ import type { EdgeList } from '../../model/nodeInfo.js';
12
+ import type { RankEntry } from '../../model/rankEntry.js';
13
+ import { MincrossContext } from './mincross-utils.js';
14
+ export declare function setReMincross(b: boolean): void;
15
+ /** @see lib/dotgen/mincross.c:VAL */
16
+ export declare function val(node: Node, portOrder: number): number;
17
+ /** Edge xpenalty with default 1. @see lib/dotgen/mincross.c */
18
+ export declare function xpen(e: Edge): number;
19
+ /** Signed crossing contribution. @see lib/dotgen/mincross.c:in_cross/out_cross */
20
+ export declare function crossContrib(aVal: number, aPen: number, bVal: number, bPen: number): number;
21
+ /**
22
+ * Cluster ordering constraint, the guard portion of C's left2right.
23
+ * Non-remincross: only pairs whose nodes are BOTH in (different) clusters are
24
+ * forced; a cluster skeleton vnode on either side releases the pair. Remincross:
25
+ * any cross-cluster pair is forced. Returns 1 = forced (block swap), 0 = defer
26
+ * to the flat-adjacency matrix. @see lib/dotgen/mincross.c:left2right
27
+ */
28
+ export declare function left2rightCluster(v: Node, w: Node): number;
29
+ /** @see lib/dotgen/mincross.c:left2right */
30
+ export declare function left2right(g: Graph, v: Node, w: Node): number;
31
+ /**
32
+ * Crossing counts for the pair (v, w): [c0 = crossings with v before w (the
33
+ * current order), c1 = crossings with w before v (swapped)]. Mirrors
34
+ * in_cross(v,w)+out_cross(v,w) and in_cross(w,v)+out_cross(w,v) in one pass.
35
+ *
36
+ * `useIn`/`useOut` mirror C transpose_step's gates (mincross.c:646-652):
37
+ * in-crossings are added only when r > 0, out-crossings only when the next
38
+ * rank has n > 0. For clusters, allocate_ranks callocs maxrank+2 rank slots
39
+ * (mincross.c:1163), so the slot past a cluster's maxrank has n == 0 and C
40
+ * reads that calloc'd n as a gate — it ignores out-crossings at the
41
+ * cluster's bottom rank. Callers must reproduce both gates; this function no
42
+ * longer accumulates unconditionally.
43
+ * @see lib/dotgen/mincross.c:in_cross, out_cross, transpose_step:646-652
44
+ */
45
+ export declare function transposeCounts(v: Node, w: Node, useIn: boolean, useOut: boolean): [number, number];
46
+ /** @see lib/dotgen/mincross.c:exchange */
47
+ export declare function exchange(ctx: MincrossContext, v: Node, w: Node): void;
48
+ /** C transpose_step swap test: strict improvement, or a reverse tie when there
49
+ * are crossings to redistribute. @see lib/dotgen/mincross.c:transpose_step */
50
+ export declare function shouldSwap(c0: number, c1: number, reverse: boolean): boolean;
51
+ /** Returns the total crossing reduction over rank r and marks r and its
52
+ * neighbours as candidates. @see lib/dotgen/mincross.c:transpose_step */
53
+ export declare function transposeStep(ctx: MincrossContext, g: Graph, r: number, reverse: boolean): number;
54
+ /**
55
+ * Repeatedly transpose adjacent nodes within each rank to remove crossings,
56
+ * re-examining only candidate ranks until no rank improves (delta < 1).
57
+ * @see lib/dotgen/mincross.c:transpose
58
+ */
59
+ export declare function transpose(ctx: MincrossContext, g: Graph, reverse: boolean): void;
60
+ /** Crossing contribution for one out/in edge pair. @see lib/dotgen/mincross.c:local_cross */
61
+ export declare function localCrossEdgePair(e: Edge, f: Edge, isOut: boolean): number;
62
+ /** Port-level crossings for one node's edge list. @see lib/dotgen/mincross.c:local_cross */
63
+ export declare function localCrossEdges(edges: EdgeList, dir: number): number;
64
+ /** Count crossings for one node's out-edges vs Count array. `vs` is the head
65
+ * rank's window offset. ND_order is stored ABSOLUTE (vStart + index) in this
66
+ * port, but C indexes Count by the window-RELATIVE order, and Count is sized to
67
+ * the component's rank count. Subtract vs so a component c>0 indexes within the
68
+ * Count array; without it, Count[inv] is undefined → NaN → ncross breaks.
69
+ * @see lib/dotgen/mincross.c:rcross */
70
+ export declare function rcrossCount(out: EdgeList, Count: number[], max: number, vs: number): number;
71
+ /** Register one node's out-edges in Count; return updated max. `vs`: head rank
72
+ * window offset (see rcrossCount). @see lib/dotgen/mincross.c:rcross */
73
+ export declare function rcrossRegister(out: EdgeList, Count: number[], max: number, vs: number): number;
74
+ /** Port crossings for nodes with ports in a single rank. @see lib/dotgen/mincross.c:rcross */
75
+ export declare function rcrossLocal(rk: RankEntry, dir: number): number;
76
+ /** @see lib/dotgen/mincross.c:rcross */
77
+ export declare function rcross(ctx: MincrossContext, g: Graph, r: number): number;
78
+ /** @see lib/dotgen/mincross.c:ncross */
79
+ export declare function ncross(ctx: MincrossContext): number;
80
+ //# sourceMappingURL=mincross-cross.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mincross-cross.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/mincross-cross.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Flat-edge handling for the mincross algorithm: flat-edge cycle breaking
3
+ * (flat_rev / flat_search / flat_breakcycles) and flat reorder
4
+ * (constraining-edge counting, postorder, flat_reorder).
5
+ * @see lib/dotgen/mincross.c flat-edge handling
6
+ */
7
+ import type { Graph } from '../../model/graph.js';
8
+ import type { Node } from '../../model/node.js';
9
+ import type { Edge } from '../../model/edge.js';
10
+ import type { RankEntry } from '../../model/rankEntry.js';
11
+ import { MincrossContext } from './mincross-utils.js';
12
+ export declare function flatRevFindRev(head: Node, tail: Node): Edge | undefined;
13
+ export declare function flatRev(g: Graph, e: Edge): void;
14
+ export declare function flatSearchOstack(g: Graph, v: Node, e: Edge, M: RankEntry['flat']): boolean;
15
+ export declare function flatSearchNormal(g: Graph, v: Node, e: Edge, M: RankEntry['flat'], hascl: boolean): void;
16
+ export declare function flatSearchEdge(g: Graph, v: Node, e: Edge, M: RankEntry['flat'], hascl: boolean): boolean;
17
+ export declare function flatSearch(g: Graph, v: Node, M: RankEntry['flat'], hascl: boolean): void;
18
+ export declare function flatBreakcyclesRank(g: Graph, rk: RankEntry, hascl: boolean): void;
19
+ export declare function flatBreakcycles(_ctx: MincrossContext, g: Graph): void;
20
+ export declare function constrainingFlatEdge(g: Graph, e: Edge): boolean;
21
+ export declare function countConstraining(g: Graph, edges: import('../../model/nodeInfo.js').EdgeList): number;
22
+ export declare function postorder(g: Graph, v: Node, list: Node[], r: number): void;
23
+ export declare function flatReorderBuildTemprank(g: Graph, rk: RankEntry, temprank: Node[], flip: boolean): void;
24
+ export declare function flatReorderFixEdges(g: Graph, rk: RankEntry, flip: boolean): void;
25
+ export declare function flatReorderRank(g: Graph, rk: RankEntry, rootRank: RankEntry[], r: number, flip: boolean): void;
26
+ export declare function flatReorder(_ctx: MincrossContext, g: Graph): void;
27
+ //# sourceMappingURL=mincross-flat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mincross-flat.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/mincross-flat.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAM1D,OAAO,EACL,eAAe,EAGhB,MAAM,qBAAqB,CAAC;AAG7B,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,CAOvE;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAa/C;AAGD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO,CAO1F;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAKvG;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAOxG;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAYxF;AAGD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAoBjF;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CASrE;AAGD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAK/D;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,yBAAyB,EAAE,QAAQ,GAAG,MAAM,CAMrG;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAW1E;AAGD,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAQvG;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAiBhF;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAkB9G;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC,EAAE,KAAK,GAAG,IAAI,CAUjE"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Ordering/median pass and mincross main loop for the mincross algorithm.
3
+ * Build-phase helpers live in mincross-build.ts.
4
+ *
5
+ * @see lib/dotgen/mincross.c
6
+ */
7
+ import type { Graph } from '../../model/graph.js';
8
+ import type { Node } from '../../model/node.js';
9
+ import type { RankEntry } from '../../model/rankEntry.js';
10
+ import type { EdgeList } from '../../model/nodeInfo.js';
11
+ import { MincrossContext } from './mincross-utils.js';
12
+ type StepBounds = {
13
+ first: number;
14
+ last: number;
15
+ dir: number;
16
+ };
17
+ type CrossState = {
18
+ cur: number;
19
+ best: number;
20
+ };
21
+ type ReorderResult = {
22
+ rp: number;
23
+ muststay: boolean;
24
+ };
25
+ export declare function setMincrossTrace(fn: ((line: string) => void) | null): void;
26
+ export declare function flatMvalIn(n: Node, fi: EdgeList): boolean;
27
+ export declare function flatMvalOut(n: Node, fo: EdgeList): boolean;
28
+ /** @see lib/dotgen/mincross.c:flat_mval */
29
+ export declare function flatMval(n: Node): boolean;
30
+ /** Collect val() samples for one node's adjacent edges. @see lib/dotgen/mincross.c:mval */
31
+ export declare function mediansCollectDir(v: Node, d: number, list: number[]): void;
32
+ /**
33
+ * C operates on an int[] (VAL = MC_SCALE*ND_order + port.order), so the n==2
34
+ * average and the equal-span case use INTEGER division (truncation toward
35
+ * zero), not float. Using float here yields x.5 mvals that perturb the reorder
36
+ * sort and diverge from C on tie-heavy ranks (e.g. 2371's flat mid network).
37
+ * The unequal-span weighted median stays a true double, matching C.
38
+ * @see lib/dotgen/mincross.c:median
39
+ */
40
+ export declare function computeMedian(list: number[]): number;
41
+ /**
42
+ * Loop 1 body of C `medians` (mincross.c:1627-1667) — computes a fresh mval
43
+ * for a SINGLE node from its directional fast-edge list. An empty list
44
+ * (including nodes with no fast edges in this direction at all — case 0 at
45
+ * mincross.c:1643) resets mval to -1 via computeMedian. This must run for
46
+ * EVERY node in the rank, unconditionally, before flat_mval (loop 2 in
47
+ * `medians` below) reads any node's mval.
48
+ * @see lib/dotgen/mincross.c:1621-1667
49
+ */
50
+ export declare function mediansProcessNode(v: Node, d: number): void;
51
+ /**
52
+ * @see lib/dotgen/mincross.c:1621
53
+ *
54
+ * Mirrors C's exact two-loop shape. Loop 1 resets/sets mval for EVERY node
55
+ * in the rank (mincross.c:1627-1667). Loop 2 runs flat_mval only for nodes
56
+ * with NO fast edges in either direction (mincross.c:1669-1673), strictly
57
+ * after loop 1 has completed for the whole rank — so flat_mval always
58
+ * observes a freshly-reset mval, never a stale value left over from the
59
+ * opposite pass direction. A fused single-loop version that early-returns
60
+ * into flat_mval for edge-less nodes skips the loop-1 reset for exactly
61
+ * those nodes, leaking stale cross-pass mval into the reorder comparator.
62
+ * @see plans/residual-cleanup/analysis/1453-medians-reset.md
63
+ */
64
+ export declare function medians(_ctx: MincrossContext, g: Graph, r: number, d: number): boolean;
65
+ /** @see lib/dotgen/mincross.c:save_best */
66
+ export declare function saveBest(g: Graph): void;
67
+ export declare function restoreRank(rk: RankEntry, rootRk: RankEntry): void;
68
+ /** @see lib/dotgen/mincross.c:restore_best */
69
+ export declare function restoreBest(ctx: MincrossContext, g: Graph): void;
70
+ export declare function reorderFindLp(vlist: Node[], lp: number, ep: number): number;
71
+ export declare function reorderFindRp(g: Graph, vlist: Node[], lp: number, ep: number): ReorderResult;
72
+ export declare function reorderInner(ctx: MincrossContext, g: Graph, vlist: Node[], win: {
73
+ start: number;
74
+ ep: number;
75
+ }, reverse: boolean): boolean;
76
+ /** @see lib/dotgen/mincross.c:reorder */
77
+ export declare function reorder(ctx: MincrossContext, g: Graph, r: number, reverse: boolean, hasfixed: boolean): void;
78
+ /** @see lib/dotgen/mincross.c:mincross_step (bounds computation) */
79
+ export declare function mincrossStepBounds(ctx: MincrossContext, g: Graph, pass: number): StepBounds;
80
+ /** @see lib/dotgen/mincross.c:mincross_step */
81
+ export declare function mincrossStep(ctx: MincrossContext, g: Graph, pass: number): void;
82
+ /** @see lib/dotgen/mincross.c:mincross (iteration loop) */
83
+ export declare function mincrossIter(ctx: MincrossContext, g: Graph, maxthispass: number, state: CrossState, pass: number): void;
84
+ /** @see lib/dotgen/mincross.c:mincross (pass setup) */
85
+ export declare function mincrossPassSetup(ctx: MincrossContext, g: Graph, pass: number, state: CrossState): number;
86
+ /** @see lib/dotgen/mincross.c:mincross */
87
+ export declare function mincrossMain(ctx: MincrossContext, g: Graph, startpass: number): number;
88
+ export {};
89
+ //# sourceMappingURL=mincross-order.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mincross-order.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/mincross-order.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Shared utilities for the mincross family: context type, AdjMatrix helpers,
3
+ * graph helpers, and node cluster helpers.
4
+ * Imported by mincross.ts, mincross-build.ts, mincross-cross.ts, and
5
+ * mincross-order.ts to avoid circular dependencies.
6
+ *
7
+ * @see lib/dotgen/mincross.c
8
+ */
9
+ import type { Graph } from '../../model/graph.js';
10
+ import type { Node } from '../../model/node.js';
11
+ import type { Edge } from '../../model/edge.js';
12
+ import type { AdjMatrix, RankEntry } from '../../model/rankEntry.js';
13
+ /** @see lib/dotgen/mincross.c:Convergence */
14
+ export declare const CONVERGENCE = 0.995;
15
+ /**
16
+ * Replaces C module-level statics (Root, GlobalMinRank/MaxRank, TE_list,
17
+ * TI_list, ReMincross, MinQuit, MaxIter) for reentrancy.
18
+ * @see lib/dotgen/mincross.c (module statics)
19
+ */
20
+ export interface MincrossContext {
21
+ root: Graph;
22
+ globalMinRank: number;
23
+ globalMaxRank: number;
24
+ teList: Edge[];
25
+ tiList: number[];
26
+ reMincross: boolean;
27
+ minQuit: number;
28
+ maxIter: number;
29
+ }
30
+ /** @see lib/dotgen/mincross.c:matrix_get */
31
+ export declare function matrixGet(m: AdjMatrix, row: number, col: number): boolean;
32
+ /** @see lib/dotgen/mincross.c:matrix_set */
33
+ export declare function matrixSet(m: AdjMatrix, row: number, col: number): void;
34
+ /** Copy all set bits into new buffer with updated column count. */
35
+ export declare function matrixCopyBits(m: AdjMatrix, data: Uint8Array, ncols: number): void;
36
+ /** @see lib/dotgen/mincross.c:new_matrix */
37
+ export declare function newMatrix(rows: number, cols: number): AdjMatrix;
38
+ /** @see lib/dotgen/dot.h:dot_root */
39
+ export declare function dotRoot(g: Graph): Graph;
40
+ /** @see lib/cgraph/cgraph.h:agcontains (node) */
41
+ export declare function agContainsNode(g: Graph, n: Node): boolean;
42
+ /** @see lib/cgraph/cgraph.h:agcontains (edge) */
43
+ export declare function agContainsEdge(g: Graph, e: Edge): boolean;
44
+ /** Get rank.v[i] respecting vStart pointer-arithmetic offset. */
45
+ export declare function rankGet(rank: RankEntry, i: number): Node;
46
+ /** Set rank.v[i] respecting vStart pointer-arithmetic offset. */
47
+ export declare function rankSet(rank: RankEntry, i: number, n: Node): void;
48
+ /** @see lib/dotgen/mincross.c:is_a_normal_node_of */
49
+ export declare function isNormalNodeOf(g: Graph, v: Node): boolean;
50
+ /** @see lib/dotgen/mincross.c:is_a_vnode_of_an_edge_of */
51
+ export declare function isVnodeOfEdgeOf(g: Graph, v: Node): boolean;
52
+ /** @see lib/dotgen/mincross.c:inside_cluster */
53
+ export declare function insideCluster(g: Graph, v: Node): boolean;
54
+ /** @see lib/dotgen/mincross.c:neighbor
55
+ * Only the Root global is consulted, so callers outside the mincross pass
56
+ * (flat_edges' vlist reset runs in dot_position) may pass a bare `{root}`. */
57
+ export declare function neighborNode(ctx: Pick<MincrossContext, 'root'>, v: Node, dir: number): Node | undefined;
58
+ /** @see lib/dotgen/mincross.c:furthestnode */
59
+ export declare function furthestNode(ctx: Pick<MincrossContext, 'root'>, g: Graph, v: Node, dir: number): Node;
60
+ //# sourceMappingURL=mincross-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mincross-utils.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/mincross-utils.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAOrE,6CAA6C;AAC7C,eAAO,MAAM,WAAW,QAAQ,CAAC;AAMjC;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,KAAK,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,IAAI,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD,4CAA4C;AAC5C,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAIzE;AAED,4CAA4C;AAC5C,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAItE;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQlF;AAcD,4CAA4C;AAC5C,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAI/D;AAMD,qCAAqC;AACrC,wBAAgB,OAAO,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAEvC;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAEzD;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAEzD;AAMD,iEAAiE;AACjE,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAExD;AAED,iEAAiE;AACjE,wBAAgB,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAEjE;AAMD,qDAAqD;AACrD,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAEzD;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAQ1D;AAED,gDAAgD;AAChD,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,OAAO,CAExD;AAED;;8EAE8E;AAC9E,wBAAgB,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAMvG;AAED,8CAA8C;AAC9C,wBAAgB,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAOrG"}