@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,75 @@
1
+ /**
2
+ * TypeScript port of lib/dotgen/mincross.c — entry point, init, merge,
3
+ * cleanup, vlist helpers, virtualWeight, and mincrossOptions.
4
+ * Shared utilities live in mincross-utils.ts; crossing computations in
5
+ * mincross-cross.ts; ordering in mincross-order.ts; rank building in
6
+ * mincross-build.ts.
7
+ *
8
+ * @see lib/dotgen/mincross.c
9
+ */
10
+ import type { Graph } from '../../model/graph.js';
11
+ import type { Node } from '../../model/node.js';
12
+ import type { Edge } from '../../model/edge.js';
13
+ import { MincrossContext, dotRoot, rankGet, agContainsNode, agContainsEdge } from './mincross-utils.js';
14
+ export type { MincrossContext };
15
+ export { dotRoot, agContainsNode, agContainsEdge, rankGet };
16
+ export { CONVERGENCE, matrixGet, matrixSet, newMatrix, matrixCopyBits, insideCluster, isNormalNodeOf, isVnodeOfEdgeOf, neighborNode, furthestNode, rankSet, } from './mincross-utils.js';
17
+ export declare function endpointClass(n: Node): number;
18
+ /** @see lib/dotgen/mincross.c:virtual_weight */
19
+ export declare function virtualWeight(e: Edge): void;
20
+ /** @see lib/dotgen/mincross.c:mincross_options */
21
+ export declare function mincrossOptions(ctx: MincrossContext, g: Graph): void;
22
+ /** @see lib/dotgen/mincross.c:save_vlist */
23
+ export declare function saveVlist(g: Graph): void;
24
+ /** @see lib/dotgen/mincross.c:rec_save_vlists */
25
+ export declare function recSaveVlists(g: Graph): void;
26
+ /** @see lib/dotgen/mincross.c:rec_reset_vlists */
27
+ export declare function recResetVlists(ctx: Pick<MincrossContext, 'root'>, g: Graph): void;
28
+ /** @see lib/dotgen/mincross.c:reset_vlists */
29
+ export declare function resetVlistRanks(ctx: Pick<MincrossContext, 'root'>, g: Graph): void;
30
+ /** @see lib/dotgen/mincross.c:reset_vlist */
31
+ export declare function applyVlistReset(ctx: Pick<MincrossContext, 'root'>, g: Graph, r: number): void;
32
+ /** @see lib/dotgen/mincross.c:init_mincross */
33
+ export declare function initMincross(ctx: MincrossContext, g: Graph): void;
34
+ /** @see lib/dotgen/mincross.c:init_mccomp */
35
+ export declare function initMccomp(g: Graph, c: number): void;
36
+ /** @see lib/dotgen/mincross.c:merge_components */
37
+ export declare function mergeComponents(ctx: MincrossContext, g: Graph): void;
38
+ /** @see lib/dotgen/mincross.c:merge2 */
39
+ export declare function merge2(ctx: MincrossContext, g: Graph): void;
40
+ /** @see lib/dotgen/mincross.c:cleanup2 */
41
+ export declare function cleanup2(ctx: MincrossContext, g: Graph): void;
42
+ /** @see lib/dotgen/mincross.c:cleanup2 (rank loop) */
43
+ export declare function cleanup2Ranks(g: Graph): void;
44
+ /** @see lib/dotgen/mincross.c:cleanup2 (flatorder removal) */
45
+ export declare function removeFlatorderEdges(v: Node): void;
46
+ /** @see lib/dotgen/mincross.c:mincross_clust */
47
+ export declare function mincrossClust(ctx: MincrossContext, g: Graph): number;
48
+ /** @see lib/dotgen/mincross.c:dot_mincross */
49
+ /**
50
+ * Drop clusters with no member nodes before crossing/expansion.
51
+ *
52
+ * C `dot_mincross` removes empty clusters up front (only parse-time-empty
53
+ * "malformed input" clusters reach that point). The port must run it *after*
54
+ * `initMincross` because a node referenced in several clusters is pruned to its
55
+ * first cluster by `mark_clusters` agdelete (defect A) during init — emptying
56
+ * the later clusters. The port then *must* drop them: `merge_ranks` aliases each
57
+ * cluster's `rank[r].v` into the shared root rank array (vStart), so expanding an
58
+ * empty cluster clobbers the slot a sibling cluster just filled (e.g. 1221/2721:
59
+ * one node in two clusters → node lost, `rank.v[0]` null → position crash). C is
60
+ * immune because it installs from the root node list, not cluster membership.
61
+ * An empty cluster has no bbox and is not drawn, so dropping it matches C output.
62
+ *
63
+ * @see lib/dotgen/mincross.c:dot_mincross (empty-cluster removal loop)
64
+ */
65
+ export declare function removeEmptyClusters(g: Graph): void;
66
+ export declare function dotMincross(g: Graph): number;
67
+ /** @see lib/dotgen/mincross.c:dot_mincross (component loop) */
68
+ export declare function runComponents(ctx: MincrossContext, g: Graph, comp: Node[]): number;
69
+ /** @see lib/dotgen/mincross.c:dot_mincross (cluster loop) */
70
+ export declare function runClusters(ctx: MincrossContext, g: Graph): number;
71
+ /** @see lib/dotgen/mincross.c:dot_mincross (remincross) */
72
+ export declare function runRemincross(ctx: MincrossContext, g: Graph, nc: number): number;
73
+ /** @see lib/dotgen/mincross.c:dot_mincross (context init) */
74
+ export declare function makeMincrossCtx(g: Graph): MincrossContext;
75
+ //# sourceMappingURL=mincross.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mincross.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/mincross.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /** @see lib/common/ns.c — types, constants, tree-list helpers */
2
+ import type { Node } from '../../model/node.js';
3
+ import type { Edge } from '../../model/edge.js';
4
+ import type { Graph } from '../../model/graph.js';
5
+ import type { EdgeList } from '../../model/nodeInfo.js';
6
+ /** @see lib/common/ns.c:network_simplex_ctx_t */
7
+ export interface NsCtx {
8
+ g: Graph;
9
+ treeEdges: Edge[];
10
+ sI: number;
11
+ nEdges: number;
12
+ nNodes: number;
13
+ searchSize: number;
14
+ }
15
+ /** @see lib/common/ns.c:SEARCHSIZE */
16
+ export declare const SEARCHSIZE = 30;
17
+ /** Normal node type. @see lib/common/types.h */
18
+ export declare const NORMAL = 0;
19
+ /** LENGTH(e) = rank(head) - rank(tail). @see lib/common/ns.c */
20
+ export declare function nsLength(e: Edge): number;
21
+ /** SLACK(e) = LENGTH(e) - minlen(e). @see lib/common/ns.c */
22
+ export declare function nsSlack(e: Edge): number;
23
+ /** TREE_EDGE(e): tree_index >= 0. @see lib/common/ns.c */
24
+ export declare function isTreeEdge(e: Edge): boolean;
25
+ /** SEQ(a,b,c): a<=b && b<=c. @see lib/common/ns.c */
26
+ export declare function seq(a: number, b: number, c: number): boolean;
27
+ /** Append e to an EdgeList. @see lib/dotgen/fastgr.c:elistAppend */
28
+ export declare function treeAppend(el: EdgeList, e: Edge): void;
29
+ /** Swap-last-remove of e from an EdgeList. @see lib/dotgen/fastgr.c:zapinlist */
30
+ export declare function treeRemoveEdge(el: EdgeList, e: Edge): void;
31
+ /** @see lib/common/ns.c:add_tree_edge */
32
+ export declare function addTreeEdge(ctx: NsCtx, e: Edge): number;
33
+ /** @see lib/common/ns.c:invalidate_path */
34
+ export declare function invalidatePath(lca: Node, toNode: Node): void;
35
+ /** @see lib/common/ns.c:exchange_tree_edges */
36
+ export declare function exchangeTreeEdges(ctx: NsCtx, e: Edge, f: Edge): void;
37
+ //# sourceMappingURL=ns-core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ns-core.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/ns-core.ts"],"names":[],"mappings":"AACA,iEAAiE;AACjE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAMxD,iDAAiD;AACjD,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,KAAK,CAAC;IACT,SAAS,EAAE,IAAI,EAAE,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,sCAAsC;AACtC,eAAO,MAAM,UAAU,KAAK,CAAC;AAE7B,gDAAgD;AAChD,eAAO,MAAM,MAAM,IAAI,CAAC;AAMxB,gEAAgE;AAChE,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAExC;AAED,6DAA6D;AAC7D,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAA+C;AAEvF,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO,CAA2C;AAEvF,qDAAqD;AACrD,wBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAA6B;AAM1F,oEAAoE;AACpE,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAA4B;AAEnF,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAK1D;AAMD,yCAAyC;AACzC,wBAAgB,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,GAAG,MAAM,CAavD;AAUD,2CAA2C;AAC3C,wBAAgB,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAG,IAAI,CAU5D;AAMD,+CAA+C;AAC/C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,CAWpE"}
@@ -0,0 +1,17 @@
1
+ /** @see lib/common/ns.c — cut values, DFS range initialization */
2
+ import type { Node } from '../../model/node.js';
3
+ import type { Edge } from '../../model/edge.js';
4
+ import type { NsCtx } from './ns-core.js';
5
+ /** @see lib/common/ns.c:x_val */
6
+ export declare function xVal(e: Edge, v: Node, dir: number): number;
7
+ /** @see lib/common/ns.c:x_cutval */
8
+ export declare function xCutval(f: Edge): void;
9
+ /** @see lib/common/ns.c:dfs_cutval */
10
+ export declare function dfsCutval(v: Node, par?: Edge): void;
11
+ /** @see lib/common/ns.c:init_cutvalues */
12
+ export declare function initCutvalues(ctx: NsCtx): void;
13
+ /** @see lib/common/ns.c:dfs_range_init */
14
+ export declare function dfsRangeInit(v: Node): number;
15
+ /** @see lib/common/ns.c:dfs_range */
16
+ export declare function dfsRange(v: Node, par: Edge | undefined, low: number): number;
17
+ //# sourceMappingURL=ns-range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ns-range.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/ns-range.ts"],"names":[],"mappings":"AACA,kEAAkE;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAGhD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AA+D1C,iCAAiC;AACjC,wBAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED,oCAAoC;AACpC,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CASrC;AAiBD,sCAAsC;AACtC,wBAAgB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAanD;AAMD,0CAA0C;AAC1C,wBAAgB,aAAa,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,CAG9C;AAuBD,0CAA0C;AAC1C,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAkB5C;AA+CD,qCAAqC;AACrC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAO5E"}
@@ -0,0 +1,78 @@
1
+ /** @see lib/common/ns.c — subtree union-find, feasible tree construction */
2
+ import type { Node } from '../../model/node.js';
3
+ import type { Edge } from '../../model/edge.js';
4
+ import type { NsCtx } from './ns-core.js';
5
+ /** @see lib/common/ns.c:subtree_t */
6
+ export interface Subtree {
7
+ rep: Node;
8
+ size: number;
9
+ heapIndex: number;
10
+ par?: Subtree;
11
+ }
12
+ export interface STheap {
13
+ elt: Subtree[];
14
+ size: number;
15
+ }
16
+ interface TstState {
17
+ v: Node;
18
+ inI: number;
19
+ outI: number;
20
+ rv: number;
21
+ }
22
+ interface IteState {
23
+ v: Node;
24
+ ts: Subtree;
25
+ from?: Node;
26
+ outI: number;
27
+ inI: number;
28
+ }
29
+ interface TstCtx {
30
+ ctx: NsCtx;
31
+ st: Subtree;
32
+ nodeMap: Map<Node, Subtree>;
33
+ todo: TstState[];
34
+ }
35
+ export declare function onHeap(st: Subtree): boolean;
36
+ /** @see lib/common/ns.c:STsetFind */
37
+ export declare function stSetFind(n: Node, nodeMap: Map<Node, Subtree>): Subtree;
38
+ /** @see lib/common/ns.c:STsetUnion */
39
+ export declare function stSetUnion(s0: Subtree, s1: Subtree): Subtree;
40
+ export declare function tstTryNode(tc: TstCtx, v: Node, e: Edge): number;
41
+ export declare function tstScanIn(tc: TstCtx): number;
42
+ export declare function tstScanOut(tc: TstCtx): number;
43
+ export declare function tstIterate(tc: TstCtx): number | undefined;
44
+ /** @see lib/common/ns.c:tight_subtree_search */
45
+ export declare function tightSubtreeSearch(ctx: NsCtx, v: Node, st: Subtree, nodeMap: Map<Node, Subtree>): number;
46
+ /** @see lib/common/ns.c:find_tight_subtree */
47
+ export declare function findTightSubtree(ctx: NsCtx, v: Node, nodeMap: Map<Node, Subtree>): Subtree | null;
48
+ export declare function iteOutScan(todo: IteState[], nodeMap: Map<Node, Subtree>, best: Edge | undefined): [boolean, Edge | undefined];
49
+ export declare function iteInScan(todo: IteState[], nodeMap: Map<Node, Subtree>, best: Edge | undefined): [boolean, Edge | undefined];
50
+ /** @see lib/common/ns.c:inter_tree_edge_search */
51
+ export declare function interTreeEdgeSearch(v: Node, nodeMap: Map<Node, Subtree>): Edge | undefined;
52
+ export declare function stheapSwap(heap: STheap, i: number, j: number): void;
53
+ export declare function stheapSmallest(heap: STheap, idx: number): number;
54
+ /** @see lib/common/ns.c:STheapify */
55
+ export declare function stheapify(heap: STheap, i: number): void;
56
+ /** @see lib/common/ns.c:STbuildheap */
57
+ export declare function stBuildHeap(elt: Subtree[], size: number): STheap;
58
+ /** @see lib/common/ns.c:STextractmin */
59
+ export declare function stExtractMin(heap: STheap): Subtree;
60
+ /**
61
+ * Add `delta` to ND_rank of every node in the tight tree reachable from `v`
62
+ * (the parent back-edge to `from` excluded). C's `tree_adjust` is a recursive
63
+ * DFS; the tight tree is acyclic, so each node is visited exactly once and the
64
+ * mutation (`rank += delta`) is order-independent. Ported with an explicit
65
+ * stack instead of recursion: deep trees (e.g. corpus 2646, a 7-deep quadtree
66
+ * with thousands of nodes) overflow the JS call stack where C's larger native
67
+ * stack does not. Outcome is identical to the recursive form.
68
+ * @see lib/common/ns.c:tree_adjust
69
+ */
70
+ export declare function treeAdjust(v: Node, from: Node | undefined, delta: number): void;
71
+ /** @see lib/common/ns.c:merge_trees */
72
+ export declare function mergeTrees(ctx: NsCtx, e: Edge, nodeMap: Map<Node, Subtree>): Subtree | null;
73
+ export declare function buildSubtrees(ctx: NsCtx, nodeMap: Map<Node, Subtree>, tree: Subtree[]): number;
74
+ export declare function mergeSubtrees(ctx: NsCtx, heap: STheap, nodeMap: Map<Node, Subtree>): boolean;
75
+ /** @see lib/common/ns.c:feasible_tree */
76
+ export declare function feasibleTree(ctx: NsCtx): number;
77
+ export {};
78
+ //# sourceMappingURL=ns-subtree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ns-subtree.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/ns-subtree.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /** @see lib/common/ns.c — rank, balance, main simplex loop */
2
+ import type { Node } from '../../model/node.js';
3
+ import type { Edge } from '../../model/edge.js';
4
+ import type { Graph } from '../../model/graph.js';
5
+ import type { NsCtx } from './ns-core.js';
6
+ export declare function nodeRank(n: Node): number;
7
+ export declare function nodeLow(n: Node): number;
8
+ export declare function nodeLim(n: Node): number;
9
+ export declare function nodeType(n: Node): number;
10
+ export declare function nodeInSize(n: Node): number;
11
+ export declare function nodeOutSize(n: Node): number;
12
+ export declare function nodeTreeSize(n: Node): number;
13
+ export declare function edgeCv(e: Edge): number;
14
+ export declare function edgeWeight(e: Edge): number;
15
+ export declare function edgeMinlen(e: Edge): number;
16
+ export declare function initRankIn(v: Node): void;
17
+ export declare function initRankOut(v: Node, q: Node[]): void;
18
+ /** @see lib/common/ns.c:init_rank */
19
+ export declare function initRank(ctx: NsCtx): void;
20
+ /** @see lib/common/ns.c:leave_edge (wrap-around scan helper) */
21
+ export declare function leaveEdgeScan(ctx: NsCtx, to: number, cnt: number, rv: Edge | undefined): [Edge | undefined, number];
22
+ /** @see lib/common/ns.c:leave_edge */
23
+ export declare function leaveEdge(ctx: NsCtx): Edge | undefined;
24
+ /** @see lib/common/ns.c:dfs_enter_outedge (out-edge scan) */
25
+ export declare function dfsEnterOutScan(n: Node, low: number, lim: number, todo: Node[], best: EnterBest): void;
26
+ export declare function dfsEnterOutTreeIn(n: Node, todo: Node[], bestSlack: number): void;
27
+ /** @see lib/common/ns.c:dfs_enter_outedge */
28
+ export declare function dfsEnterOutedge(v: Node, low: number, lim: number): Edge | undefined;
29
+ /**
30
+ * Running best (entering edge + its slack), threaded through the search so
31
+ * slack is computed once per candidate edge (C maintains `Slack` as a local
32
+ * int rather than recomputing SLACK(Enter) on every comparison).
33
+ */
34
+ interface EnterBest {
35
+ e: Edge | undefined;
36
+ slack: number;
37
+ }
38
+ /** @see lib/common/ns.c:dfs_enter_inedge (in-edge scan) */
39
+ export declare function dfsEnterInScan(n: Node, low: number, lim: number, todo: Node[], best: EnterBest): void;
40
+ export declare function dfsEnterInTreeOut(n: Node, todo: Node[], bestSlack: number): void;
41
+ /** @see lib/common/ns.c:dfs_enter_inedge */
42
+ export declare function dfsEnterInedge(v: Node, low: number, lim: number): Edge | undefined;
43
+ /** @see lib/common/ns.c:enter_edge */
44
+ export declare function enterEdge(e: Edge): Edge | undefined;
45
+ /** @see lib/common/ns.c:treeupdate */
46
+ export declare function treeupdate(v: Node, w: Node, cutvalue: number, dir: boolean): Node;
47
+ /**
48
+ * Iterative rerank (AD-3). C's `rerank` recurses to depth O(V) and overflows
49
+ * V8's ~1MB stack on deep tight trees (tests/2108); a browser stack is small
50
+ * and fixed, so it must be an explicit todo-stack. Each node's rank is
51
+ * decremented exactly once by `delta` and the writes are independent, so the
52
+ * LIFO visit order yields a bit-identical result to the recursive pre-order.
53
+ * @see lib/common/ns.c:rerank
54
+ */
55
+ export declare function rerank(v: Node, delta: number): void;
56
+ export declare function updateRerank(e: Edge, delta: number): void;
57
+ /** @see lib/common/ns.c:update */
58
+ export declare function nsUpdate(ctx: NsCtx, e: Edge, f: Edge): number;
59
+ /** @see lib/common/ns.c:scan_and_normalize */
60
+ export declare function scanAndNormalize(ctx: NsCtx): number;
61
+ export declare function freeTreeNode(n: Node): void;
62
+ export declare function resetLists(ctx: NsCtx): void;
63
+ /** @see lib/common/ns.c:freeTreeList */
64
+ export declare function freeTreeList(ctx: NsCtx): void;
65
+ /** @see lib/common/ns.c:LR_balance */
66
+ export declare function lrBalance(ctx: NsCtx): void;
67
+ /** @see lib/common/ns.c:TB_balance (adj mode detection) */
68
+ export declare function tbGetAdj(g: Graph): number;
69
+ export declare function tbForceAdj(ctx: NsCtx, adj: number, maxrank: number): void;
70
+ export declare function tbSortCompare(a: Node, b: Node, adj: number): number;
71
+ export declare function tbSortNodes(ctx: NsCtx, nrank: number[], adj: number): Node[];
72
+ export declare function tbComputeBounds(n: Node, maxrank: number): [number, number, number, number];
73
+ export declare function tbMoveNode(n: Node, low: number, high: number, nrank: number[], adj: number): void;
74
+ /** @see lib/common/ns.c:TB_balance */
75
+ export declare function tbBalance(ctx: NsCtx): void;
76
+ export declare function initGraphEdge(n: Node, e: Edge): boolean;
77
+ /** @see lib/common/ns.c:init_graph */
78
+ export declare function initGraph(ctx: NsCtx, g: Graph): boolean;
79
+ export declare function rank2Loop(ctx: NsCtx, maxiter: number): number;
80
+ export declare function rank2Balance(ctx: NsCtx, balance: number): void;
81
+ /** @see lib/common/ns.c:rank2 */
82
+ export declare function rank2(g: Graph, balance: number, maxiter: number, searchSize: number): number;
83
+ /** @see lib/common/ns.c:rank */
84
+ export declare function rank(g: Graph, balance: number, maxiter: number): number;
85
+ export {};
86
+ //# sourceMappingURL=ns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ns.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/ns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Dot-local adapter between the dot `Graph` model and the `orthoEdges`
3
+ * pipeline (`src/ortho`). Mirrors neato's private `OrthoHelper`
4
+ * (`neato/splines.ts:247`) rather than extracting a shared helper, so the
5
+ * working neato path is untouched (ADR-1) — this matches C, where dotgen and
6
+ * neatogen each have their own call site into `ortho.c:orthoEdges`.
7
+ *
8
+ * @see lib/dotgen/dotsplines.c:dot_splines_ (EDGETYPE_ORTHO branch)
9
+ * @see src/layout/neato/splines.ts:OrthoHelper
10
+ */
11
+ import type { Graph } from '../../model/graph.js';
12
+ import type { OrthoGraph, OrthoEdge, OrthoPoint } from '../../ortho/index.js';
13
+ /** Build an OrthoGraph from the dot Graph (tail≠head edges only). */
14
+ export declare function buildOrthoGraph(g: Graph): OrthoGraph;
15
+ /** Install an orthoEdges result (orthogonal point list) onto the dot Edge. */
16
+ export declare function installOrthoResult(oe: OrthoEdge, pts: OrthoPoint[]): void;
17
+ /** Run the ortho pipeline over the dot graph, installing results (no labels). */
18
+ export declare function dispatchOrthoEdges(g: Graph, useLbls: boolean): void;
19
+ //# sourceMappingURL=ortho-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ortho-adapter.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/ortho-adapter.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AASlD,OAAO,KAAK,EACV,UAAU,EAAE,SAAS,EAAE,UAAU,EAClC,MAAM,sBAAsB,CAAC;AAkF9B,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU,CAIpD;AAUD,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,IAAI,CAIzE;AAED,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAInE"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Multi-component `pack` branch for the dot engine — the body of C's `doDot`
3
+ * (dotinit.c:doDot ≈437-500) for the case where `pack`/`packmode` is set and the
4
+ * graph has more than one connected component. Each component is laid out
5
+ * independently (everything in the dot pipeline except the final coordinate
6
+ * rotation/translation), then polyomino-packed via the shared pack module; the
7
+ * root graph is rotated/translated once by `gvPostprocess` afterwards.
8
+ *
9
+ * The port's pack ops run in points on `n.info.coord` (see pack/index.ts
10
+ * shiftOneGraph), so C's `attachPos`/`resetCoord` (which copy point coords to
11
+ * inches in `ND_pos` for the pack library and back) are NOT needed.
12
+ *
13
+ * Split out of index.ts per ADR-1 (keeps both files under the size/complexity
14
+ * caps and mirrors C's function boundaries: CLAUDE.md — the C source is the spec).
15
+ *
16
+ * @see lib/dotgen/dotinit.c:doDot
17
+ * @see lib/dotgen/dotinit.c:initSubg
18
+ * @see lib/dotgen/dotinit.c:copyClusterInfo
19
+ */
20
+ import type { Graph } from '../../model/graph.js';
21
+ import type { PackInfo } from '../pack/index.js';
22
+ /**
23
+ * True when the graph has no meaningful `ratio` attribute, i.e. C's
24
+ * `ratio_kind == R_NONE`. The pack branch only fires for R_NONE; any other
25
+ * ratio (auto/compress/expand/fill or a positive numeric R_VALUE) falls back to
26
+ * whole-graph layout in `doDot`.
27
+ *
28
+ * Read from the `ratio` attr directly (mirroring C's setRatio) rather than from
29
+ * `g.info.drawing`, which the port only populates for `ratio=compress` (ADR-1):
30
+ * fill/expand/value/auto would otherwise leave `drawing` undefined and wrongly
31
+ * activate packing.
32
+ *
33
+ * @see lib/common/input.c:576 setRatio
34
+ */
35
+ export declare function ratioIsNone(g: Graph): boolean;
36
+ /**
37
+ * Decompose `root` into "connected" components where nodes are connected by an
38
+ * edge OR by sharing a cluster (C's cluster-aware `cccomps`: cluster members
39
+ * stay in one component even with no edge between them). Each component carries
40
+ * a projected clone of every cluster/same-rank subgraph it owns; `origOf` maps
41
+ * each cluster clone back to its original root cluster (C's `mapClust`).
42
+ * @see lib/pack/ccomps.c:cccomps
43
+ */
44
+ export declare function cccompsWithClusters(root: Graph): {
45
+ comps: Graph[];
46
+ origOf: Map<Graph, Graph>;
47
+ };
48
+ /**
49
+ * Override a component subgraph's drawing-info fields with the root's parsed
50
+ * values. `buildSubgraph` (shared pack module) gives each component an empty
51
+ * `attrs` Map, so `dotGraphInit(sg)` derives defaults rather than the root's
52
+ * explicit `rankdir`/`nodesep`/`ranksep` — initSubg copies them from the root so
53
+ * the component ranks/positions exactly as it would inside the whole graph.
54
+ *
55
+ * Ordering (per T1): run `dotGraphInit(sg)` first, then initSubg to override.
56
+ * `GD_drawing` quantum/dpi are only material for `ratio=compress`, which never
57
+ * reaches the pack branch (ratioIsNone excludes it), so `drawing` is not copied.
58
+ *
59
+ * @see lib/dotgen/dotinit.c:initSubg
60
+ */
61
+ export declare function initSubg(sg: Graph, root: Graph): void;
62
+ /**
63
+ * Lay out one connected component fully (rank → mincross → position →
64
+ * splines), but WITHOUT the final `gvPostprocess` rotation/translation: in C
65
+ * the per-component `dotLayout` does not call `dotneato_postprocess`; that runs
66
+ * once on the root after packing (`dot_layout`). Running it per component would
67
+ * rotate each component by rankdir and then the root pass would double-rotate.
68
+ *
69
+ * `dotPhaseInit(sg)` runs first (sets sg.info defaults from the empty attr map);
70
+ * `initSubg(sg, root)` then overrides the inheritance-sensitive fields before
71
+ * ranking reads them. Node sizing in `dotPhaseInit` reads `sg.root.info.flip`
72
+ * (the real root), so it is correct regardless of this ordering.
73
+ *
74
+ * @see lib/dotgen/dotinit.c:dotLayout (static)
75
+ */
76
+ export declare function dotLayoutComponent(sg: Graph, root: Graph): void;
77
+ /**
78
+ * Copy the cluster tree and per-cluster drawing-info from each laid-out
79
+ * component back to the root, so the root's `gvPostprocess` rotates the cluster
80
+ * bounding boxes and the renderer (which reads `GD_clust(root)`) draws them at
81
+ * their packed positions.
82
+ *
83
+ * @see lib/dotgen/dotinit.c:copyClusterInfo
84
+ */
85
+ export declare function copyClusterInfo(comps: Graph[], root: Graph, origOf: Map<Graph, Graph>): void;
86
+ /**
87
+ * Lay out each component independently, polyomino-pack them, carry cluster info
88
+ * back to the root, and run the single root-level `gvPostprocess`.
89
+ *
90
+ * The root must carry its own drawing-info (rankdir/nodesep/ranksep/label) for
91
+ * `initSubg` to read and for `gvPostprocess` to rotate by: in C the root's
92
+ * `graph_init` ran before `doDot`; the port has no separate pre-layout
93
+ * graph_init, so `dotGraphInit(root)` is run here once. The root bbox is set by
94
+ * `packSubgraphs` (→ computeSubgraphBB); the root is never re-ranked.
95
+ *
96
+ * @see lib/dotgen/dotinit.c:doDot
97
+ * @see lib/dotgen/dotinit.c:dot_layout (dotneato_postprocess on root)
98
+ */
99
+ export declare function layoutAndPack(root: Graph, comps: Graph[], pinfo: PackInfo, origOf: Map<Graph, Graph>): void;
100
+ //# sourceMappingURL=pack-components.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pack-components.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/pack-components.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAsBjD;;;;;;;;;;;;GAYG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,OAAO,CAK7C;AAwED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,KAAK,GAAG;IAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;CAAE,CA4B9F;AAOD;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CAMrD;AAOD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CA6B/D;AAwCD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAI,CAgB5F;AAoFD;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,GACtE,IAAI,CAoBN"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Auxiliary edge construction and removal for the dot position phase.
3
+ * @see lib/dotgen/position.c
4
+ */
5
+ import type { Graph } from '../../model/graph.js';
6
+ import type { Node } from '../../model/node.js';
7
+ import type { Edge } from '../../model/edge.js';
8
+ /** @see lib/common/const.h:CL_OFFSET */
9
+ export declare const CL_OFFSET = 8;
10
+ /**
11
+ * Cluster margin = `late_int(g, G_margin, CL_OFFSET, 0)`. The `margin` attribute
12
+ * is resolved up the subgraph chain (matching `agxget` inheritance), so a
13
+ * cluster with no own `margin` inherits an ancestor's; absent everywhere it
14
+ * falls back to `CL_OFFSET`, and negatives clamp to 0. Used for both the
15
+ * x-coordinate (`make_lrvn`/`make_lrconstraints`/separate clusters) and the
16
+ * rank/y-coordinate (`set_ycoords`) cluster spacing.
17
+ * @see lib/dotgen/position.c:397,436,460,642
18
+ */
19
+ export declare function clusterMarginOf(g: Graph): number;
20
+ /** @see lib/common/const.h:BOTTOM_IX */
21
+ export declare const BOTTOM_IX = 0;
22
+ /** @see lib/common/const.h:RIGHT_IX */
23
+ export declare const RIGHT_IX = 1;
24
+ /** @see lib/common/const.h:TOP_IX */
25
+ export declare const TOP_IX = 2;
26
+ /** @see lib/common/const.h:LEFT_IX */
27
+ export declare const LEFT_IX = 3;
28
+ /** @internal */
29
+ export declare function nodeRw(n: Node): number;
30
+ /** @internal */
31
+ export declare function nodeLw(n: Node): number;
32
+ /** @internal */
33
+ export declare function nodeOrder(n: Node): number;
34
+ /** @internal */
35
+ export declare function nodeRank(n: Node): number;
36
+ /** @internal */
37
+ export declare function nodeUfSize(n: Node): number;
38
+ /** @internal */
39
+ export declare function edgeMinlen(e: Edge): number;
40
+ /** @internal */
41
+ export declare function edgeWeight(e: Edge): number;
42
+ /** @internal */
43
+ export declare function edgeDist(e: Edge): number;
44
+ /** @internal */
45
+ export declare function graphNodesep(g: Graph): number;
46
+ /** @internal */
47
+ export declare function graphMinrank(g: Graph): number;
48
+ /** @internal */
49
+ export declare function graphMaxrank(g: Graph): number;
50
+ /** @internal */
51
+ export declare function graphNclust(g: Graph): number;
52
+ /** @internal */
53
+ export declare function graphHt1(g: Graph): number;
54
+ /** @internal */
55
+ export declare function graphHt2(g: Graph): number;
56
+ /** @internal */
57
+ export declare function graphRanksep(g: Graph): number;
58
+ /** @see lib/dotgen/position.c:make_aux_edge */
59
+ export declare function makeAuxEdge(u: Node, v: Node, len: number, wt: number): Edge;
60
+ /** @see lib/dotgen/position.c:allocate_aux_edges */
61
+ export declare function allocateAuxEdges(g: Graph): void;
62
+ /** LR node separation for a rank (accounts for edge labels).
63
+ * C uses smaller separation (5) on odd ranks when the graph has edge labels
64
+ * (real nodes sit on even ranks 0,2,4…). `abomination` inserts a flat-label
65
+ * rank at -1 in C, but this 0-based port shifts every rank up by 1 instead
66
+ * (AD-2), inverting the parity; `abomShift` undoes that so the parity matches C.
67
+ *
68
+ * The EDGE_LABEL gate reads `g.root`, not `g`: C is `GD_has_labels(g->root)`.
69
+ * Under `pack` the layout graph is a component whose own has_labels is 0 (C
70
+ * scopes only `edgelabel_ranks`, rank.c:170, to the layout graph) while the true
71
+ * root carries the flag — so reading `g` here silently used the full nodesep on
72
+ * odd ranks instead of C's `sep[1] = 5`, widening every packed component that
73
+ * contains an edge label.
74
+ * @see lib/dotgen/position.c:make_LR_constraints (GD_has_labels(g->root)) */
75
+ export declare function lrSep(g: Graph, rankIdx: number): number;
76
+ /** @see lib/dotgen/position.c:make_LR_constraints (single flat-edge constraint) */
77
+ export declare function processFlatEdge(g: Graph, u: Node, e: Edge): void;
78
+ /** @see lib/dotgen/position.c:make_LR_constraints (flat-edge endpoint loop) */
79
+ export declare function makeFlatEdgeConstraints(g: Graph, u: Node): void;
80
+ /** @see lib/dotgen/position.c:make_LR_constraints (flat-label constraint body) */
81
+ export declare function applyFlatLabel(g: Graph, e: Edge, e0raw: Edge, e1raw: Edge): void;
82
+ /** @see lib/dotgen/position.c:make_LR_constraints (flat-label constraints via ND_alg) */
83
+ export declare function makeFlatLabelConstraints(g: Graph, u: Node): void;
84
+ /** @see lib/dotgen/position.c:go */
85
+ export declare function go(u: Node, v: Node): boolean;
86
+ /** @see lib/dotgen/position.c:canreach */
87
+ export declare function canReach(u: Node, v: Node): boolean;
88
+ /** @see lib/dotgen/position.c:make_LR_constraints (self-edge width accumulation) */
89
+ export declare function selfWidth(u: Node): number;
90
+ /** @see lib/dotgen/position.c:make_LR_constraints (per-rank inner loop, one node pair) */
91
+ export declare function lrRankPair(g: Graph, r: number, u: Node, v: Node, last: number): number;
92
+ /** @see lib/dotgen/position.c:make_LR_constraints (per-rank inner loop) */
93
+ export declare function makeLrRankConstraints(g: Graph, r: number): void;
94
+ /** @see lib/dotgen/position.c:make_LR_constraints */
95
+ export declare function makeLrConstraints(g: Graph): void;
96
+ /** @see lib/dotgen/position.c:make_edge_pairs (per-edge) */
97
+ export declare function addEdgePair(g: Graph, e: Edge): void;
98
+ /** @see lib/dotgen/position.c:make_edge_pairs */
99
+ export declare function makeEdgePairs(g: Graph): void;
100
+ /** Create a SLACKNODE virtual node and prepend to nlist. */
101
+ export declare function makeSlackNode(g: Graph): Node;
102
+ /** @see lib/dotgen/position.c:create_aux_edges */
103
+ export declare function createAuxEdges(g: Graph, posClusters: (g: Graph) => void, compressGraph: (g: Graph) => void): void;
104
+ /** @see lib/dotgen/position.c:remove_aux_edges (SLACKNODE removal loop) */
105
+ export declare function removeSlackNodes(g: Graph): void;
106
+ /** @see lib/dotgen/position.c:remove_aux_edges (per-node cleanup) */
107
+ export declare function removeAuxEdgesNode(n: Node): void;
108
+ /** @see lib/dotgen/position.c:remove_aux_edges */
109
+ export declare function removeAuxEdges(g: Graph): void;
110
+ //# sourceMappingURL=position-aux.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"position-aux.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/position-aux.ts"],"names":[],"mappings":"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"}