@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,157 @@
1
+ /**
2
+ * TypeScript port of lib/dotgen/dotsplines.c — dot_splines entry point,
3
+ * edgecmp, main routing loop.
4
+ *
5
+ * The full spline routing infrastructure (routesplines, pathplan, boxes)
6
+ * is not yet ported; this module provides the entry-point scaffolding and
7
+ * the edge-normalization pass that are testable independently.
8
+ *
9
+ * @see lib/dotgen/dotsplines.c
10
+ */
11
+ import type { Graph } from '../../model/graph.js';
12
+ import type { Node } from '../../model/node.js';
13
+ import type { Edge } from '../../model/edge.js';
14
+ import type { Bezier, Spline, Port } from '../../model/geom.js';
15
+ export declare const REGULAREDGE = 1;
16
+ export declare const FLATEDGE = 2;
17
+ export declare const SELFNPEDGE = 3;
18
+ export declare const SELFWPEDGE = 4;
19
+ export declare const EDGETYPEMASK = 7;
20
+ export declare const FWDEDGE = 16;
21
+ export declare const BWDEDGE = 32;
22
+ export declare const MAINGRAPH = 64;
23
+ export declare const AUXGRAPH = 128;
24
+ export declare const GRAPHTYPEMASK = 192;
25
+ export declare const EDGETYPE_NONE = 0;
26
+ export declare const EDGETYPE_LINE = 1;
27
+ export declare const EDGETYPE_CURVED = 2;
28
+ export declare const EDGETYPE_PLINE = 3;
29
+ export declare const EDGETYPE_ORTHO = 4;
30
+ export declare const EDGETYPE_SPLINE = 5;
31
+ export declare const EDGETYPE_COMPOUND = 6;
32
+ /** Read edge type from graph flags. @see lib/common/const.h:EDGE_TYPE */
33
+ export declare function edgeType(g: Graph): number;
34
+ /**
35
+ * Map a `splines` attribute value to an edge type. `0`/`false`/`line`/`no` →
36
+ * LINE; a leading digit 1-9 / `true`/`yes`/`spline` → SPLINE; named values per
37
+ * the map; anything else → defaultValue. @see lib/common/utils.c:edgeType
38
+ */
39
+ export declare function edgeTypeFromString(s: string, defaultValue: number): number;
40
+ export declare function nodeRankOf(n: Node): number;
41
+ export declare function nodeOrderOf(n: Node): number;
42
+ export declare function nodeCoordX(n: Node): number;
43
+ export declare function edgeTreeIndex(e: Edge): number;
44
+ /** @see lib/dotgen/dotsplines.c:getmainedge */
45
+ export declare function getMainEdge(e: Edge): Edge;
46
+ /** Resolve to the underlying normal edge. */
47
+ export declare function resolveOrigEdge(e: Edge): Edge;
48
+ /** Compare head vs tail rank; return true if head rank < tail rank. */
49
+ export declare function headRankLower(e: Edge): boolean;
50
+ /** Compare head vs tail rank; return true if head rank > tail rank. */
51
+ export declare function headRankHigher(e: Edge): boolean;
52
+ /** @see lib/dotgen/dotsplines.c:swap_ends_p */
53
+ export declare function swapEndsP(e: Edge): boolean;
54
+ /** @see lib/dotgen/dotsplines.c:spline_merge */
55
+ export declare function splineMerge(n: Node): boolean;
56
+ /** Determine f1 (edge category) given hint or edge geometry. */
57
+ export declare function resolveF1(e: Edge, hint1: number): number;
58
+ /** Determine f2 for REGULAREDGE based on rank order. */
59
+ export declare function resolveF2Regular(e: Edge): number;
60
+ /** Determine f2 for FLATEDGE based on order. */
61
+ export declare function resolveF2Flat(e: Edge): number;
62
+ /** @see lib/dotgen/dotsplines.c:setflags — determine direction flag f2 */
63
+ export declare function resolveF2(e: Edge, f1: number, hint2: number): number;
64
+ /** @see lib/dotgen/dotsplines.c:setflags */
65
+ export declare function setflags(e: Edge, hint1: number, hint2: number, f3: number): void;
66
+ /** Compare two numbers: return -1, 0, or 1. */
67
+ export declare function numCmp(a: number, b: number): number;
68
+ /** Compare |rank difference| of two main edges. */
69
+ export declare function cmpRankDiff(le0: Edge, le1: Edge): number;
70
+ /** Compare |x-coord difference| of two main edges. */
71
+ export declare function cmpXDiff(le0: Edge, le1: Edge): number;
72
+ /**
73
+ * portcmp: undefined sorts before defined; defined ports order by (x, y).
74
+ * @see lib/dotgen/dotsplines.c:portcmp
75
+ */
76
+ export declare function portcmp(p0: Port, p1: Port): number;
77
+ /**
78
+ * Gate-edge ports in forward orientation: C picks ea = e when e carries a
79
+ * defined port, else its main edge, then views a BWDEDGE through makefwdedge
80
+ * (which swaps tail/head ports). Only the ports matter for comparison.
81
+ * @see lib/dotgen/dotsplines.c:edgecmp, dot_splines_ (ea/eb selection)
82
+ */
83
+ export declare function gatePorts(e: Edge, le: Edge): [Port, Port];
84
+ /** @see lib/dotgen/dotsplines.c:edgecmp */
85
+ export declare function edgecmp(e0: Edge, e1: Edge): number;
86
+ /**
87
+ * Reverse bezier control points and swap sflag/eflag, sp/ep.
88
+ *
89
+ * b.list may be over-allocated beyond b.size (newSpline pre-allocates pn
90
+ * slots; clip can shrink the real point count, leaving zeroed spare slots
91
+ * calloc'd at the tail). Only the bounded window list[0, size) holds real
92
+ * points, so the reverse must be an index-swap loop over that window —
93
+ * NOT a whole-array reverse, which would rotate the zeroed spares to the
94
+ * front. @see lib/dotgen/dotsplines.c:144-148 (swap_bezier)
95
+ */
96
+ export declare function swapBezier(b: Bezier): void;
97
+ /** Reverse the list of beziers in a spline and swap each bezier. */
98
+ export declare function swapSpline(s: Spline): void;
99
+ /**
100
+ * Swap an edge's spline AND its precomputed arrow-op slots. C regenerates
101
+ * arrows at emit time from each bezier's sp/ep + s/eflag, so swap_bezier's
102
+ * flag swap is complete there; the port precomputes arrow ops per edge END
103
+ * (tail/head slots) at clip time, so a spline swap must swap the slots too or
104
+ * the flag↔ops pairing breaks — on a multi-bezier reversed edge the per-bezier
105
+ * arrow interleave then finds no matching ops and the arrow falls to the
106
+ * group end ([path, path, arrow] vs C's [path, arrow, path]; b15
107
+ * LandVertical/Fall/HoverStrafeToStop groups).
108
+ * @see lib/dotgen/dotsplines.c:swap_bezier (sflag/eflag swap)
109
+ */
110
+ export declare function swapEdgeSpline(e: Edge): void;
111
+ /**
112
+ * Normalize splines so they always go from tail to head.
113
+ * @see lib/dotgen/dotsplines.c:edge_normalize
114
+ */
115
+ export declare function edgeNormalize(g: Graph): void;
116
+ /** True if edge e should be skipped during regular-edge collection. */
117
+ export declare function isSkippedOutEdge(e: Edge): boolean;
118
+ /** Collect regular out-edges of n into edges. */
119
+ export declare function collectOutEdges(n: Node, edges: Edge[]): void;
120
+ /** Collect flat out-edges of n into edges. */
121
+ export declare function collectFlatEdges(n: Node, edges: Edge[]): void;
122
+ /** True if n participates in edge routing. */
123
+ export declare function nodeNeedsRouting(n: Node): boolean;
124
+ /** Collect all edges for a node that need routing. */
125
+ export declare function collectNodeEdges(n: Node, edges: Edge[]): void;
126
+ /**
127
+ * Collect routing edges by iterating the rank array (`minrank..maxrank`,
128
+ * `v[0..n-1]`), null-guarding empty `.v` slots exactly as C does. This visits
129
+ * VIRTUAL `splineMerge` nodes in addition to NORMAL nodes, so the merged
130
+ * secondary chains that a `concentrate` DOWN-sweep rewires onto a virtual merge
131
+ * node's out-list are gathered and routed (they are absent from `g.nodes`).
132
+ * `nodeNeedsRouting` still gates each node to NORMAL || splineMerge.
133
+ * @see lib/dotgen/dotsplines.c:dot_splines_ (281-320)
134
+ */
135
+ export declare function collectRankEdges(g: Graph, edges: Edge[]): void;
136
+ /**
137
+ * Main spline routing entry point (internal, with normalize flag).
138
+ *
139
+ * Performs straight-line edge routing via routeDotEdges, then normalizes
140
+ * spline orientation when normalize=true. The full pathplan-based obstacle
141
+ * routing (routesplines, boxes, clip_and_install) is deferred.
142
+ *
143
+ * @see lib/dotgen/dotsplines.c:dot_splines_
144
+ */
145
+ /**
146
+ * In position, each node's rw was stored in mval and rw may have been
147
+ * increased to reflect loops/labels; restore the original rw here.
148
+ * @see lib/dotgen/dotsplines.c:resetRW
149
+ */
150
+ export declare function resetRW(g: Graph): void;
151
+ export declare function dotSplines_(g: Graph, normalize: boolean): number;
152
+ /**
153
+ * Entry point called by the dot layout pipeline.
154
+ * @see lib/dotgen/dotsplines.c:dot_splines
155
+ */
156
+ export declare function dotSplines(g: Graph): number;
157
+ //# sourceMappingURL=splines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"splines.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/splines.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Curved / straight edge generator for the dot engine.
3
+ *
4
+ * Faithful port of `makeStraightEdges` and its helpers `bend`,
5
+ * `get_cycle_centroid`, `get_centroid` and the cycle-finding routines from
6
+ * `lib/common/routespl.c`. Used by `splines=curved` (`EDGETYPE_CURVED`): each
7
+ * parallel-edge group is routed by `makeStraightEdges` instead of the normal
8
+ * per-group spline router (mirroring `dotsplines.c:381-387`).
9
+ *
10
+ * Reuses the ported `clipAndInstall` (`common/splines-clip.ts`). `addEdgeLabels`
11
+ * mirrors `makePortLabels` (`splines.c:1205-1220,1307-1309`): a no-op unless
12
+ * `labelangle`/`labeldistance` is declared.
13
+ *
14
+ * @see lib/common/routespl.c:773-1042
15
+ * @see lib/dotgen/dotsplines.c:381-387 (curved dispatch)
16
+ */
17
+ import type { Graph } from '../../model/graph.js';
18
+ import type { Edge } from '../../model/edge.js';
19
+ import type { SplineInfo } from '../../common/types.js';
20
+ /**
21
+ * Adds head/tail port labels and updates the bbox. No-op unless
22
+ * `labelangle`/`labeldistance` is declared (handled as external labels
23
+ * otherwise). @see lib/common/splines.c:1205-1220,1307-1309
24
+ */
25
+ export declare function addEdgeLabels(e: Edge): void;
26
+ /**
27
+ * Route a group of straight/curved edges between the same endpoints.
28
+ *
29
+ * Single edge (or `Concentrate`): a 4-point bezier from tail port to head port,
30
+ * bent toward the cycle centroid when curved. Multiple edges: control points
31
+ * spread symmetrically along the perpendicular by `GD_nodesep` steps.
32
+ *
33
+ * `edgeList[0]` is the main edge (per `dotsplines.c:383`); the head of each
34
+ * subsequent edge is compared to the group head to orient its control points.
35
+ *
36
+ * @see lib/common/routespl.c:975-1042
37
+ */
38
+ export declare function makeStraightEdges(g: Graph, edgeList: Edge[], eCnt: number, et: number, sinfo: SplineInfo): void;
39
+ //# sourceMappingURL=straight-edges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"straight-edges.d.ts","sourceRoot":"","sources":["../../../src/layout/dot/straight-edges.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AA8LxD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,IAAI,GAAG,IAAI,CAS3C;AAqED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI,CAwB/G"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * fdp compound / cluster-edge preprocessing (processClusterEdges).
3
+ *
4
+ * When an edge endpoint names a cluster (a node whose name matches a cluster
5
+ * subgraph — e.g. `e -- clusterB` where `subgraph clusterB {…}` exists), fdp
6
+ * does NOT draw that node. Instead it replaces the cluster-named endpoint with
7
+ * an invisible box "cluster node" sized to the cluster (setClustNodes) and
8
+ * clones the edge onto it, then DELETES the original visible node. dot/neato
9
+ * keep drawing such a node; only fdp performs this substitution, via
10
+ * `processClusterEdges` at the top of `fdp_init_node_edge`.
11
+ *
12
+ * The cluster node carries the `clustnode` flag (ND_clustnode): deriveGraph
13
+ * skips it (it is positioned by setClustNodes, not the force solver) and the
14
+ * dot serializer suppresses its declaration and writes its name as the cluster
15
+ * name (the part after the synthetic `__i:` prefix).
16
+ *
17
+ * Spec read at the 15.0.0 tag.
18
+ *
19
+ * @see lib/fdpgen/fdpinit.c:fdp_init_node_edge (processClusterEdges call)
20
+ * @see lib/common/utils.c:processClusterEdges, checkCompound, clustNode
21
+ */
22
+ import type { Graph } from '../../model/graph.js';
23
+ /**
24
+ * Replace cluster-edge endpoints that name a cluster with invisible cluster
25
+ * nodes, clone the edges onto them, and delete the original nodes. Records the
26
+ * cluster-edge count on the graph (HAS_CLUST_EDGE). Must run after mkClusters
27
+ * (needs info.clust) and before node ids are assigned.
28
+ * @see lib/common/utils.c:processClusterEdges
29
+ */
30
+ export declare function processClusterEdges(g: Graph): void;
31
+ //# sourceMappingURL=cluster-edges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cluster-edges.d.ts","sourceRoot":"","sources":["../../../src/layout/fdp/cluster-edges.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AA+LlD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAmBlD"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Generalized connected components of a derived graph: all port nodes
3
+ * and pinned nodes are merged into the first component.
4
+ *
5
+ * Components are Graph instances parented to the derived graph (so
6
+ * attribute lookups fall through, as C subgraphs resolve to the dg
7
+ * root). Their node maps are populated in ascending derived-node id —
8
+ * cgraph subgraph iteration is id-ordered, not DFS-ordered (mission 5
9
+ * finding) — and edges are node-induced in dg edge order.
10
+ *
11
+ * Spec read at the 15.0.0 tag.
12
+ *
13
+ * @see lib/fdpgen/comp.c (15.0.0)
14
+ */
15
+ import { Graph } from '../../model/graph.js';
16
+ /**
17
+ * Find the generalized connected components of derived graph dg.
18
+ * Ports and pinned nodes all land in the first component.
19
+ *
20
+ * @returns components plus whether pinned nodes exist
21
+ * @see lib/fdpgen/comp.c:findCComp
22
+ */
23
+ export declare function findCComp(dg: Graph, counter: {
24
+ value: number;
25
+ }): {
26
+ comps: Graph[];
27
+ pinned: boolean;
28
+ };
29
+ //# sourceMappingURL=comp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comp.d.ts","sourceRoot":"","sources":["../../../src/layout/fdp/comp.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAyC7C;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,KAAK,EACT,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAcrC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Derived-graph construction: clusters collapse into single nodes, and
3
+ * an edge joins two derived nodes when any real edge joins their
4
+ * underlying node sets. Boundary ports transform into port nodes.
5
+ *
6
+ * The C derived graph is a strict digraph whose edge direction is
7
+ * canonicalized by node POINTER comparison (`hd > tl`, layout.c:466);
8
+ * node ids are creation-ordered here, so id comparison models it.
9
+ * agedge with a NULL name dedups on strict digraphs (cgraph
10
+ * edge.c:262), merging parallel real edges into one derived edge.
11
+ *
12
+ * Spec read at the 15.0.0 tag.
13
+ *
14
+ * @see lib/fdpgen/layout.c:deriveGraph (15.0.0)
15
+ */
16
+ import { Graph } from '../../model/graph.js';
17
+ import { Node } from '../../model/node.js';
18
+ /** Per-fdp-run bookkeeping. @see lib/fdpgen/layout.c:layout_info */
19
+ export interface LayoutInfo {
20
+ /** Logical root; the graph passed to fdp_layout. */
21
+ rootg: Graph;
22
+ /** Whether a "coords" graph attribute exists (G_coord symbol). */
23
+ hasCoords: boolean;
24
+ gid: number;
25
+ /** Pack parameters resolved by init_info. */
26
+ pack: import('../pack/types.js').PackInfo;
27
+ }
28
+ /**
29
+ * Construct a node in a derived graph, allocating its dndata.
30
+ * @see lib/fdpgen/layout.c:mkDeriveNode
31
+ */
32
+ export declare function mkDeriveNode(dg: Graph, name: string): Node;
33
+ /**
34
+ * Create the derived graph of g by collapsing clusters into nodes.
35
+ * @returns null on the non-comparable-clusters input error
36
+ * @see lib/fdpgen/layout.c:deriveGraph
37
+ */
38
+ export declare function deriveGraph(g: Graph, infop: LayoutInfo): Graph | null;
39
+ //# sourceMappingURL=derive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derive.d.ts","sourceRoot":"","sources":["../../../src/layout/fdp/derive.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAuB3C,oEAAoE;AACpE,MAAM,WAAW,UAAU;IACzB,oDAAoD;IACpD,KAAK,EAAE,KAAK,CAAC;IACb,kEAAkE;IAClE,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,6CAA6C;IAC7C,IAAI,EAAE,OAAO,kBAAkB,EAAE,QAAQ,CAAC;CAC3C;AAMD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAM1D;AAsLD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,KAAK,GAAG,IAAI,CAiBrE"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * fdp engine data model — gdata, dndata, bport_t, xparams, and the
3
+ * accessor macros of the C private interface.
4
+ *
5
+ * Spec read at the 15.0.0 tag (post-tag fdpgen commits add an Mlimit
6
+ * branch and float reorderings the golden refs do not have).
7
+ *
8
+ * @see lib/fdpgen/fdp.h (15.0.0)
9
+ * @see lib/fdpgen/xlayout.h (15.0.0)
10
+ */
11
+ import type { Graph } from '../../model/graph.js';
12
+ import type { Node } from '../../model/node.js';
13
+ import type { Edge } from '../../model/edge.js';
14
+ import type { Box } from '../../model/geom.js';
15
+ import type { FdpAlgData, FdpDndata } from '../../model/nodeInfo.js';
16
+ /** Layout dimension. @see lib/fdpgen/fdp.h:NDIM */
17
+ export declare const NDIM = 2;
18
+ /** Position supplied by user. @see lib/common/const.h:P_SET */
19
+ export declare const P_SET = 1;
20
+ /** Position fixed during topological layout. @see lib/common/const.h:P_FIX */
21
+ export declare const P_FIX = 2;
22
+ /** Position fixed. @see lib/common/const.h:P_PIN */
23
+ export declare const P_PIN = 3;
24
+ /**
25
+ * Boundary port: a real edge crossing the cluster boundary, the inside
26
+ * endpoint, and its angle on the boundary ellipse. C arrays are
27
+ * 0-terminated; TS uses plain arrays.
28
+ *
29
+ * @see lib/fdpgen/fdp.h:bport_t
30
+ */
31
+ export interface Bport {
32
+ e: Edge;
33
+ n: Node;
34
+ alpha: number;
35
+ }
36
+ /** @see lib/fdpgen/xlayout.h:xparams */
37
+ export interface XParams {
38
+ numIters: number;
39
+ T0: number;
40
+ K: number;
41
+ C: number;
42
+ loopcnt: number;
43
+ }
44
+ /** @see lib/fdpgen/fdp.h:gdata */
45
+ export interface Gdata {
46
+ /** Boundary ports. @see lib/fdpgen/fdp.h:PORTS */
47
+ ports: Bport[] | null;
48
+ /** Number of ports. @see lib/fdpgen/fdp.h:NPORTS */
49
+ nports: number;
50
+ /** Bounding box of graph in INCHES. @see lib/fdpgen/fdp.h:BB */
51
+ bb: Box;
52
+ flags: number;
53
+ /** Depth in graph hierarchy. @see lib/fdpgen/fdp.h:LEVEL */
54
+ level: number;
55
+ /** Smallest containing cluster. @see lib/fdpgen/fdp.h:GPARENT */
56
+ parent: Graph | null;
57
+ }
58
+ /** Allocate a zeroed gdata record (gv_alloc equivalent). */
59
+ export declare function mkGdata(): Gdata;
60
+ /** GDATA(g) — gdata bound to g.info.alg; binds one if missing. */
61
+ export declare function gdata(g: Graph): Gdata;
62
+ /** Allocate a zeroed dndata record. @see lib/fdpgen/layout.c:mkDeriveNode */
63
+ export declare function mkDndata(): FdpDndata;
64
+ /** DNDATA(n) — dndata of a derived node. */
65
+ export declare function dndata(n: Node): FdpDndata;
66
+ /** DISP(n) @see lib/fdpgen/fdp.h:DISP */
67
+ export declare function disp(n: Node): [number, number];
68
+ /** ANODE(n) @see lib/fdpgen/fdp.h:ANODE */
69
+ export declare function anode(n: Node): Node | null;
70
+ /** IS_PORT(n) @see lib/fdpgen/fdp.h:IS_PORT */
71
+ export declare function isPort(n: Node): boolean;
72
+ /** Bind-or-get the fdp alg record on a REAL node. */
73
+ export declare function fdpData(n: Node): FdpAlgData;
74
+ /** DNODE(n) @see lib/fdpgen/fdp.h:DNODE */
75
+ export declare function getDnode(n: Node): Node | null;
76
+ /** DNODE(n) = dn */
77
+ export declare function setDnode(n: Node, dn: Node | null): void;
78
+ /** PARENT(n) @see lib/fdpgen/fdp.h:PARENT */
79
+ export declare function getParent(n: Node): Graph | null;
80
+ /** PARENT(n) = g */
81
+ export declare function setParent(n: Node, g: Graph): void;
82
+ /** ND_pinned for a derived node. */
83
+ export declare function dnPinned(n: Node): number;
84
+ /** hasPos(n) @see lib/neatogen/neato.h:hasPos */
85
+ export declare function hasPos(n: Node): boolean;
86
+ /** Real edges merged into a derived edge. @see lib/fdpgen/layout.c:addEdge */
87
+ export declare function realEdges(de: Edge): Edge[];
88
+ /** NEW_EDGE(e) — no real edge recorded yet. @see lib/fdpgen/layout.c:NEW_EDGE */
89
+ export declare function isNewEdge(de: Edge): boolean;
90
+ /**
91
+ * Add real edge e to its image de in the derived graph.
92
+ * @see lib/fdpgen/layout.c:addEdge
93
+ */
94
+ export declare function addEdge(de: Edge, e: Edge): void;
95
+ /**
96
+ * agget(g, name): look up an attribute on g, falling back up the parent
97
+ * chain (derived components resolve attrs copied onto the derived root).
98
+ * @see lib/cgraph/attr.c:agget
99
+ */
100
+ export declare function aggetGraph(g: Graph, name: string): string | undefined;
101
+ //# sourceMappingURL=fdp-model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fdp-model.d.ts","sourceRoot":"","sources":["../../../src/layout/fdp/fdp-model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Spatial grid used to localise repulsive-force computation: on each
3
+ * pass nodes are bucketed into cells; repulsion is only computed
4
+ * against nodes in the 9 adjacent cells.
5
+ *
6
+ * Ordering is load-bearing for float reproducibility:
7
+ * - C's dtwalk over a Dtoset dictionary visits cells in ascending
8
+ * (i, j) order (grid.c:ijcmpf) — walk() replicates that sort.
9
+ * - C prepends nodes to each cell's list (grid.c:newNode), so within a
10
+ * cell nodes appear in REVERSE insertion order — add() unshifts.
11
+ *
12
+ * Spec read at the 15.0.0 tag.
13
+ *
14
+ * @see lib/fdpgen/grid.c (15.0.0)
15
+ */
16
+ import type { Node } from '../../model/node.js';
17
+ /** One grid cell. @see lib/fdpgen/grid.h:cell */
18
+ export interface Cell {
19
+ i: number;
20
+ j: number;
21
+ /** Nodes in reverse insertion order. @see lib/fdpgen/grid.c:newNode */
22
+ nodes: Node[];
23
+ }
24
+ /**
25
+ * The grid: cells keyed by (i, j).
26
+ * Block allocators (newBlock/getCell) are memory management with no
27
+ * behavioral effect and are not ported.
28
+ *
29
+ * @see lib/fdpgen/grid.c:_grid
30
+ */
31
+ export declare class Grid {
32
+ private readonly cells;
33
+ /** Reset the grid, reusing storage. @see lib/fdpgen/grid.c:clearGrid */
34
+ clear(): void;
35
+ /** Add node n to cell (i, j). @see lib/fdpgen/grid.c:addGrid */
36
+ add(i: number, j: number, n: Node): void;
37
+ /** Cell at (i, j), if any. @see lib/fdpgen/grid.c:findGrid */
38
+ find(i: number, j: number): Cell | undefined;
39
+ /**
40
+ * Apply walkf to each cell in ascending (i, j) order — the dtwalk
41
+ * traversal order of the Dtoset dictionary.
42
+ * @see lib/fdpgen/grid.c:walkGrid
43
+ * @see lib/fdpgen/grid.c:ijcmpf
44
+ */
45
+ walk(walkf: (c: Cell, g: Grid) => void): void;
46
+ }
47
+ /** Number of nodes in a cell. @see lib/fdpgen/grid.c:gLength */
48
+ export declare function gLength(c: Cell): number;
49
+ //# sourceMappingURL=grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.d.ts","sourceRoot":"","sources":["../../../src/layout/fdp/grid.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAEhD,iDAAiD;AACjD,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,uEAAuE;IACvE,KAAK,EAAE,IAAI,EAAE,CAAC;CACf;AAED;;;;;;GAMG;AACH,qBAAa,IAAI;IACf,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA2B;IAEjD,wEAAwE;IACxE,KAAK,IAAI,IAAI;IAIb,gEAAgE;IAChE,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI;IAUxC,8DAA8D;IAC9D,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAI5C;;;;;OAKG;IACH,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI;CAM9C;AAED,gEAAgE;AAChE,wBAAgB,OAAO,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,CAEvC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * fdp layout engine entry point — the fdp_layout pipeline:
3
+ * init (clusters, params, nodes/edges) → recursive layout →
4
+ * aspect/coord sync → straight-line splines → label placement.
5
+ *
6
+ * Spec read at the 15.0.0 tag.
7
+ *
8
+ * @see lib/fdpgen/layout.c:fdp_layout (15.0.0)
9
+ */
10
+ import type { Graph } from '../../model/graph.js';
11
+ import type { LayoutEngine } from '../../gvc/context.js';
12
+ export { fdpLayout, mkClusters, evalPositions, setBB } from './layout.js';
13
+ export { fdpTLayout } from './tlayout.js';
14
+ export { fdpXLayout } from './xlayout.js';
15
+ export { findCComp } from './comp.js';
16
+ export { deriveGraph, type LayoutInfo } from './derive.js';
17
+ export { fdpInitNodeEdge, fdpCleanup } from './init.js';
18
+ export { fdpInitParams, fdpParms } from './tlayout-parms.js';
19
+ /**
20
+ * Graph-level initialization: edge type, gdata, clusters, parameters,
21
+ * nodes and edges. GD_ndim is fixed at 2 (the "dim" attribute's 3D+
22
+ * modes are not ported — no supported input sets it).
23
+ * @see lib/fdpgen/layout.c:fdp_init_graph
24
+ */
25
+ export declare function fdpInitGraph(g: Graph): void;
26
+ /**
27
+ * The complete fdp pipeline.
28
+ * @see lib/fdpgen/layout.c:fdp_layout
29
+ */
30
+ export declare function fdpLayoutEngine(g: Graph): void;
31
+ /**
32
+ * fdp LayoutEngine plugin for registration with GvcContext.
33
+ * @see lib/gvc/gvplugin.h:gvlayout_engine_s
34
+ */
35
+ export declare const fdpEngine: LayoutEngine;
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layout/fdp/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAezD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAW3C;AAYD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAiC9C;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,YAIvB,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * fdp node/edge initialization and cleanup.
3
+ *
4
+ * processClusterEdges (cluster-endpoint/compound edges: an edge whose endpoint
5
+ * names a cluster, e.g. `e -- clusterB`) runs first, mirroring C — it replaces
6
+ * such endpoints with invisible cluster nodes and deletes the original nodes,
7
+ * so fdp (unlike dot/neato) does not draw a node for the cluster name.
8
+ *
9
+ * Spec read at the 15.0.0 tag.
10
+ *
11
+ * @see lib/fdpgen/fdpinit.c (15.0.0)
12
+ */
13
+ import type { Graph } from '../../model/graph.js';
14
+ /**
15
+ * Initialize all nodes and edges of g for fdp layout. Node sizing
16
+ * (common_init_node + gv_nodesize) runs via commonInitNodeEdge.
17
+ * @see lib/fdpgen/fdpinit.c:fdp_init_node_edge
18
+ */
19
+ export declare function fdpInitNodeEdge(g: Graph): void;
20
+ /**
21
+ * Release fdp layout state (gv_cleanup analogue; the render pipeline
22
+ * runs before cleanup per the M2 ordering fix).
23
+ * @see lib/fdpgen/fdpinit.c:fdp_cleanup
24
+ */
25
+ export declare function fdpCleanup(g: Graph): void;
26
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/layout/fdp/init.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AA4DlD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAkB9C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAUzC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * fdp layout bookkeeping: the cluster recursion over derived graphs,
3
+ * component packing, bounding-box finalization, and the translation
4
+ * of relative cluster coordinates to absolute positions.
5
+ *
6
+ * Spec read at the 15.0.0 tag.
7
+ *
8
+ * @see lib/fdpgen/layout.c (15.0.0)
9
+ */
10
+ import type { Graph } from '../../model/graph.js';
11
+ import { type LayoutInfo } from './derive.js';
12
+ /** @see lib/fdpgen/layout.c:init_info */
13
+ export declare function initInfo(g: Graph): LayoutInfo;
14
+ /**
15
+ * Attach each graph's list of immediate child clusters (info.clust,
16
+ * 0-indexed here vs C's 1-indexed GD_clust) and level/parent gdata.
17
+ * @see lib/fdpgen/layout.c:mkClusters
18
+ */
19
+ export declare function mkClusters(g: Graph, pclist: Graph[] | null, parent: Graph): void;
20
+ /**
21
+ * Translate cluster-relative node positions and cluster boxes to
22
+ * absolute coordinates (root LL at the origin), in inches.
23
+ * @see lib/fdpgen/layout.c:evalPositions
24
+ */
25
+ export declare function evalPositions(g: Graph, rootg: Graph): void;
26
+ /**
27
+ * Set the point-space bb (info.bb) from the inch-space gdata bb, for
28
+ * g and all clusters.
29
+ * @see lib/fdpgen/layout.c:setBB
30
+ */
31
+ export declare function setBB(g: Graph): void;
32
+ /**
33
+ * Position cluster nodes (created by processClusterEdges for edges with
34
+ * cluster endpoints) at the centers of their clusters and size them to the
35
+ * cluster box, so their incident edges clip to the cluster boundary. Runs
36
+ * before evalPositions, so the cluster bb (gdata.bb, inches) is still in its
37
+ * parent-relative frame; pos is the cluster center, likewise relative.
38
+ * @see lib/fdpgen/layout.c:setClustNodes
39
+ */
40
+ export declare function setClustNodes(root: Graph): void;
41
+ /**
42
+ * Lay out g: derive, split into components, tLayout each, expand
43
+ * clusters recursively, remove overlaps, pack, and finalize.
44
+ * @returns 0 on success
45
+ * @see lib/fdpgen/layout.c:layout
46
+ */
47
+ export declare function layout(g: Graph, infop: LayoutInfo, counter: {
48
+ value: number;
49
+ }): number;
50
+ /**
51
+ * Top-level fdp layout: recursive cluster layout, cluster-node
52
+ * placement, absolute positioning, and point-space bbs.
53
+ * @returns 0 on success
54
+ * @see lib/fdpgen/layout.c:fdpLayout
55
+ */
56
+ export declare function fdpLayout(g: Graph): number;
57
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/layout/fdp/layout.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAkBlD,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAuB3D,yCAAyC;AACzC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,GAAG,UAAU,CAY7C;AAMD;;;;GAIG;AACH,wBAAgB,UAAU,CACxB,CAAC,EAAE,KAAK,EACR,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EACtB,MAAM,EAAE,KAAK,GACZ,IAAI,CAeN;AAuID;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI,CAmB1D;AAWD;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAUpC;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CA+B/C;AA6FD;;;;;GAKG;AACH,wBAAgB,MAAM,CACpB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACtD,MAAM,CAmBR;AAyBD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,GAAG,MAAM,CAW1C"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Layout normalization: translate the first node to the origin and
3
+ * rotate so the first edge points at the "normalize" angle. A no-op
4
+ * unless the attribute is set — and fdp calls it on derived
5
+ * components, which never inherit the user's normalize attribute
6
+ * (deriveGraph copies only overlap/sep/K), so for fdp this is
7
+ * faithfully dead unless set on the derived chain.
8
+ *
9
+ * @see lib/neatogen/adjust.c:normalize (15.0.0)
10
+ */
11
+ import type { Graph } from '../../model/graph.js';
12
+ /**
13
+ * If "normalize" is set, move the first node to the origin, then
14
+ * rotate the layout so the first edge sits at the given angle.
15
+ * @see lib/neatogen/adjust.c:normalize (15.0.0)
16
+ */
17
+ export declare function normalizeG(g: Graph): void;
18
+ //# sourceMappingURL=normalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../../src/layout/fdp/normalize.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAyClD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CA0BzC"}