@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,316 @@
1
+ /**
2
+ * Central re-export hub for all ported lib/common/types.h types, plus
3
+ * additional types from types.h not yet in src/model/.
4
+ *
5
+ * @see lib/common/types.h
6
+ */
7
+ export type { GraphInfo } from '../model/graphInfo.js';
8
+ export { makeGraphInfo } from '../model/graphInfo.js';
9
+ export type { GVContext } from '../model/graphInfo.js';
10
+ export type { NodeInfo, NodeAlgData } from '../model/nodeInfo.js';
11
+ export { makeNodeInfo } from '../model/nodeInfo.js';
12
+ export type { EdgeInfo } from '../model/edgeInfo.js';
13
+ export { makeEdgeInfo, makePort } from '../model/edgeInfo.js';
14
+ export type { Point, Box, Port, Spline } from '../model/geom.js';
15
+ export type { LayoutParams, RatioKind } from '../model/layoutParams.js';
16
+ export { FontnameKind } from '../model/layoutParams.js';
17
+ export type { RankEntry, RankTable } from '../model/rankEntry.js';
18
+ /**
19
+ * Callback bag controlling edge-spline routing behaviour.
20
+ *
21
+ * @see lib/common/types.h:splineInfo
22
+ */
23
+ export interface SplineInfo {
24
+ /** Should head and tail be swapped? @see lib/common/types.h:splineInfo.swapEnds */
25
+ swapEnds: ((e: unknown) => boolean) | null;
26
+ /** Is n a node in the middle of an edge? @see lib/common/types.h:splineInfo.splineMerge */
27
+ splineMerge: ((n: unknown) => boolean) | null;
28
+ /** Test for swapped edges if false. @see lib/common/types.h:splineInfo.ignoreSwap */
29
+ ignoreSwap: boolean;
30
+ /** Orthogonal routing used. @see lib/common/types.h:splineInfo.isOrtho */
31
+ isOrtho: boolean;
32
+ }
33
+ import type { Box, Point } from '../model/geom.js';
34
+ /**
35
+ * One endpoint of an edge path during spline routing.
36
+ *
37
+ * @see lib/common/types.h:pathend_t
38
+ */
39
+ export interface PathendT {
40
+ /** The node box. @see lib/common/types.h:pathend_t.nb */
41
+ nb: Box;
42
+ /** Node port. @see lib/common/types.h:pathend_t.np */
43
+ np: Point;
44
+ /** @see lib/common/types.h:pathend_t.sidemask */
45
+ sidemask: number;
46
+ /** @see lib/common/types.h:pathend_t.boxn */
47
+ boxn: number;
48
+ /**
49
+ * Subdivision boxes; C declares boxf boxes[20].
50
+ * @see lib/common/types.h:pathend_t.boxes
51
+ */
52
+ boxes: Box[];
53
+ }
54
+ import type { Port } from '../model/geom.js';
55
+ /**
56
+ * Internal specification for an edge spline.
57
+ *
58
+ * @see lib/common/types.h:path
59
+ */
60
+ export interface Path {
61
+ /** @see lib/common/types.h:path.start */
62
+ start: Port;
63
+ /** @see lib/common/types.h:path.end */
64
+ end: Port;
65
+ /** Number of subdivisions. @see lib/common/types.h:path.nbox */
66
+ nbox: number;
67
+ /** Rectangular regions of subdivision. @see lib/common/types.h:path.boxes */
68
+ boxes: Box[];
69
+ /** Engine-specific data. @see lib/common/types.h:path.data */
70
+ data: unknown;
71
+ }
72
+ export type { Bezier } from '../model/geom.js';
73
+ import type { Spline } from '../model/geom.js';
74
+ /**
75
+ * Type alias matching the C `splines` typedef.
76
+ * Structurally identical to `Spline` from geom.ts.
77
+ *
78
+ * @see lib/common/types.h:splines
79
+ */
80
+ export type Splines = Spline;
81
+ /**
82
+ * Text label attached to a graph, node, or edge.
83
+ *
84
+ * The `u` union from C becomes a discriminated union here.
85
+ * `html: false` → `txt` variant; `html: true` → `htmlLabel` variant.
86
+ *
87
+ * @see lib/common/types.h:textlabel_t
88
+ */
89
+ export interface TextlabelT {
90
+ /** @see lib/common/types.h:textlabel_t.text */
91
+ text: string;
92
+ /** @see lib/common/types.h:textlabel_t.fontname */
93
+ fontname: string;
94
+ /** @see lib/common/types.h:textlabel_t.fontcolor */
95
+ fontcolor: string;
96
+ /** @see lib/common/types.h:textlabel_t.charset */
97
+ charset: number;
98
+ /** @see lib/common/types.h:textlabel_t.fontsize */
99
+ fontsize: number;
100
+ /** Estimated diagonal size of the label. @see lib/common/types.h:textlabel_t.dimen */
101
+ dimen: Point;
102
+ /** Diagonal size of the space for the label. @see lib/common/types.h:textlabel_t.space */
103
+ space: Point;
104
+ /** Center of the space for the label. @see lib/common/types.h:textlabel_t.pos */
105
+ pos: Point;
106
+ /**
107
+ * Label content union — ported as a discriminated union.
108
+ * @see lib/common/types.h:textlabel_t.u
109
+ */
110
+ u: {
111
+ /** Non-HTML text spans. */
112
+ kind: 'txt';
113
+ /** @see lib/common/types.h:textlabel_t.u.txt.span */
114
+ span: unknown[];
115
+ /** @see lib/common/types.h:textlabel_t.u.txt.nspans */
116
+ nspans: number;
117
+ } | {
118
+ /** HTML label. */
119
+ kind: 'html';
120
+ /** @see lib/common/types.h:textlabel_t.u.html */
121
+ html: unknown;
122
+ };
123
+ /** Vertical alignment: 't' top, 'c' center, 'b' bottom. @see lib/common/types.h:textlabel_t.valign */
124
+ valign: number;
125
+ /** True if position is set. @see lib/common/types.h:textlabel_t.set */
126
+ set: boolean;
127
+ /** True if HTML label. @see lib/common/types.h:textlabel_t.html */
128
+ html: boolean;
129
+ }
130
+ /**
131
+ * Bitfield controlling polygon corner and fill rendering.
132
+ * The C bitfield is represented as a plain object of booleans plus
133
+ * a `shape` discriminant integer.
134
+ *
135
+ * @see lib/common/types.h:graphviz_polygon_style_t
136
+ */
137
+ export interface GraphvizPolygonStyle {
138
+ /** @see lib/common/types.h:graphviz_polygon_style_t.filled */
139
+ filled: boolean;
140
+ /** @see lib/common/types.h:graphviz_polygon_style_t.radial */
141
+ radial: boolean;
142
+ /** @see lib/common/types.h:graphviz_polygon_style_t.rounded */
143
+ rounded: boolean;
144
+ /** @see lib/common/types.h:graphviz_polygon_style_t.diagonals */
145
+ diagonals: boolean;
146
+ /** @see lib/common/types.h:graphviz_polygon_style_t.auxlabels */
147
+ auxlabels: boolean;
148
+ /** @see lib/common/types.h:graphviz_polygon_style_t.invisible */
149
+ invisible: boolean;
150
+ /** @see lib/common/types.h:graphviz_polygon_style_t.striped */
151
+ striped: boolean;
152
+ /** @see lib/common/types.h:graphviz_polygon_style_t.dotted */
153
+ dotted: boolean;
154
+ /** @see lib/common/types.h:graphviz_polygon_style_t.dashed */
155
+ dashed: boolean;
156
+ /** @see lib/common/types.h:graphviz_polygon_style_t.wedged */
157
+ wedged: boolean;
158
+ /** @see lib/common/types.h:graphviz_polygon_style_t.underline */
159
+ underline: boolean;
160
+ /** @see lib/common/types.h:graphviz_polygon_style_t.fixedshape */
161
+ fixedshape: boolean;
162
+ /**
163
+ * Special shape discriminant (7-bit unsigned in C).
164
+ * Values come from the polygon shape enum constants in const.h.
165
+ * @see lib/common/types.h:graphviz_polygon_style_t.shape
166
+ */
167
+ shape: number;
168
+ }
169
+ /**
170
+ * Mutable shape information for a node polygon.
171
+ *
172
+ * @see lib/common/types.h:polygon_t
173
+ */
174
+ export interface PolygonT {
175
+ /** True for symmetric shapes. @see lib/common/types.h:polygon_t.regular */
176
+ regular: boolean;
177
+ /** Number of periphery lines. @see lib/common/types.h:polygon_t.peripheries */
178
+ peripheries: number;
179
+ /** Number of sides (0 means user controls all). @see lib/common/types.h:polygon_t.sides */
180
+ sides: number;
181
+ /** Orientation in degrees. @see lib/common/types.h:polygon_t.orientation */
182
+ orientation: number;
183
+ /** Distortion factor (e.g. trapezium). @see lib/common/types.h:polygon_t.distortion */
184
+ distortion: number;
185
+ /** Skew factor (e.g. parallelogram). @see lib/common/types.h:polygon_t.skew */
186
+ skew: number;
187
+ /** Style flags. @see lib/common/types.h:polygon_t.option */
188
+ option: GraphvizPolygonStyle;
189
+ /**
190
+ * Resolved node penwidth (default 1). C bakes the half-penwidth outline
191
+ * periphery into `vertices` in poly_init; the TS `vertices` omit that ring,
192
+ * so poly_inside reapplies it and needs the value here.
193
+ * @see lib/common/shapes.c:poly_init (outline periphery)
194
+ */
195
+ penwidth?: number;
196
+ /**
197
+ * Precomputed vertex array, or null when computed at render time.
198
+ * @see lib/common/types.h:polygon_t.vertices
199
+ */
200
+ vertices: Point[] | null;
201
+ }
202
+ /**
203
+ * Read-only shape function table; ported from the C function-pointer struct.
204
+ * Node and edge arguments are typed `unknown` until those types are fully ported.
205
+ *
206
+ * @see lib/common/types.h:shape_functions
207
+ */
208
+ export interface ShapeFunctions {
209
+ /** Initializes shape from node shape_info. @see lib/common/types.h:shape_functions.initfn */
210
+ initfn: ((n: unknown) => void) | null;
211
+ /** Frees shape from node shape_info. @see lib/common/types.h:shape_functions.freefn */
212
+ freefn: ((n: unknown) => void) | null;
213
+ /** Finds aiming point and slope of a port. @see lib/common/types.h:shape_functions.portfn */
214
+ portfn: ((n: unknown, portname: string, compass: string) => Port) | null;
215
+ /** Clips incident spline on shape. @see lib/common/types.h:shape_functions.insidefn */
216
+ insidefn: ((insideCtx: unknown, p: Point) => boolean) | null;
217
+ /** Finds box path to reach port. @see lib/common/types.h:shape_functions.pboxfn */
218
+ pboxfn: ((n: unknown, p: Port, side: number, rv: Box[], kptr: number[]) => number) | null;
219
+ /** Emits graphics code for node. @see lib/common/types.h:shape_functions.codefn */
220
+ codefn: ((job: unknown, n: unknown) => void) | null;
221
+ }
222
+ /**
223
+ * Discriminant for the type of shape a node uses.
224
+ *
225
+ * @see lib/common/types.h:shape_kind
226
+ */
227
+ export declare enum ShapeKind {
228
+ /** @see lib/common/types.h:SH_UNSET */
229
+ SH_UNSET = 0,
230
+ /** @see lib/common/types.h:SH_POLY */
231
+ SH_POLY = 1,
232
+ /** @see lib/common/types.h:SH_RECORD */
233
+ SH_RECORD = 2,
234
+ /** @see lib/common/types.h:SH_POINT */
235
+ SH_POINT = 3,
236
+ /** @see lib/common/types.h:SH_EPSF */
237
+ SH_EPSF = 4
238
+ }
239
+ /**
240
+ * Read-only shape descriptor bound to a node.
241
+ *
242
+ * NOTE: The C struct does not carry a `kind` field — `shapeOf()` derives it
243
+ * from `fns->initfn` at runtime. In TypeScript we store it directly on the
244
+ * descriptor to avoid function-pointer comparisons.
245
+ *
246
+ * @see lib/common/types.h:shape_desc
247
+ * @see lib/common/shapes.c:shapeOf
248
+ */
249
+ export interface ShapeDesc {
250
+ /** Shape name as read from graph file. @see lib/common/types.h:shape_desc.name */
251
+ name: string;
252
+ /** Shape function table. @see lib/common/types.h:shape_desc.fns */
253
+ fns: ShapeFunctions | null;
254
+ /** Base polygon info; null for non-polygon shapes. @see lib/common/types.h:shape_desc.polygon */
255
+ polygon: PolygonT | null;
256
+ /**
257
+ * Derived shape kind (stored here to avoid initfn comparison).
258
+ * @see lib/common/shapes.c:shapeOf
259
+ */
260
+ kind: ShapeKind;
261
+ /** True for user-defined shapes. @see lib/common/types.h:shape_desc.usershape */
262
+ usershape: boolean;
263
+ }
264
+ export type { RankEntry as RankT } from '../model/rankEntry.js';
265
+ /**
266
+ * A field within a record-shape node.
267
+ *
268
+ * @see lib/common/types.h:field_t
269
+ */
270
+ export interface FieldT {
271
+ /** Field dimensions. @see lib/common/types.h:field_t.size */
272
+ size: Point;
273
+ /** Placement in node coordinates. @see lib/common/types.h:field_t.b */
274
+ b: Box;
275
+ /** Number of sub-fields. @see lib/common/types.h:field_t.n_flds */
276
+ n_flds: number;
277
+ /** Label pointer; used when n_flds == 0. @see lib/common/types.h:field_t.lp */
278
+ lp: TextlabelT | null;
279
+ /** Sub-field array; used when n_flds > 0. @see lib/common/types.h:field_t.fld */
280
+ fld: FieldT[] | null;
281
+ /** User's identifier. @see lib/common/types.h:field_t.id */
282
+ id: string | null;
283
+ /**
284
+ * Non-zero if box list is horizontal (left to right).
285
+ * @see lib/common/types.h:field_t.LR
286
+ */
287
+ LR: number;
288
+ /** Sides of node exposed to this field. @see lib/common/types.h:field_t.sides */
289
+ sides: number;
290
+ }
291
+ /**
292
+ * Generic node list.
293
+ *
294
+ * @see lib/common/types.h:nlist_t
295
+ */
296
+ export interface NlistT {
297
+ /** @see lib/common/types.h:nlist_t.list */
298
+ list: unknown[];
299
+ /** @see lib/common/types.h:nlist_t.size */
300
+ size: number;
301
+ }
302
+ /**
303
+ * Dynamic edge list (ported from the C `elist` struct).
304
+ *
305
+ * NOTE: NodeInfo already contains a typed EdgeList for known-edge contexts.
306
+ * ElistT covers the generic `elist` where the element type is not yet known.
307
+ *
308
+ * @see lib/common/types.h:elist
309
+ */
310
+ export interface ElistT {
311
+ /** @see lib/common/types.h:elist.list */
312
+ list: unknown[];
313
+ /** @see lib/common/types.h:elist.size */
314
+ size: number;
315
+ }
316
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/common/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * addXLabels and its helpers — ported from lib/common/postproc.c:202-590.
3
+ *
4
+ * Split from postproc.ts to keep that file under 500 lines.
5
+ * Spline midpoint helpers live in spline-midpoint.ts.
6
+ *
7
+ * @see lib/common/postproc.c:addXLabels
8
+ */
9
+ import type { Graph } from '../model/graph.js';
10
+ import type { Point } from '../model/geom.js';
11
+ import type { TextlabelT } from './types.js';
12
+ import type { XLabelT, ObjectT } from '../label/xlabels.js';
13
+ import { type SplLike } from './spline-midpoint.js';
14
+ /**
15
+ * Calculate center from an xlabel's lower-left pos + size.
16
+ * @see lib/common/postproc.c:centerPt
17
+ */
18
+ export declare function centerPt(xlp: XLabelT): Point;
19
+ /** Shared mutable context threaded through the object/label fill pass. */
20
+ export interface XLabelCtx {
21
+ objs: ObjectT[];
22
+ lbls: XLabelT[];
23
+ flip: boolean;
24
+ oi: number;
25
+ xi: number;
26
+ bb: {
27
+ ll: Point;
28
+ ur: Point;
29
+ };
30
+ }
31
+ /**
32
+ * Set up xlabel_t object and connect with related object.
33
+ * @see lib/common/postproc.c:addXLabel
34
+ */
35
+ export declare function addXLabel(lp: TextlabelT, ctx: XLabelCtx, initObj: boolean, pos: Point): void;
36
+ /**
37
+ * Set up obstacle object based on a set external label.
38
+ * @see lib/common/postproc.c:addLabelObj
39
+ */
40
+ export declare function addLabelObj(lp: TextlabelT, objp: ObjectT, bb: {
41
+ ll: Point;
42
+ ur: Point;
43
+ }, flip: boolean): {
44
+ ll: Point;
45
+ ur: Point;
46
+ };
47
+ /**
48
+ * Set up obstacle object based on a node.
49
+ * @see lib/common/postproc.c:addNodeObj
50
+ */
51
+ export declare function addNodeObj(np: {
52
+ info: {
53
+ coord?: Point;
54
+ width?: number;
55
+ height?: number;
56
+ };
57
+ }, objp: ObjectT, bb: {
58
+ ll: Point;
59
+ ur: Point;
60
+ }, flip: boolean): {
61
+ ll: Point;
62
+ ur: Point;
63
+ };
64
+ interface CinfoT {
65
+ bb: {
66
+ ll: Point;
67
+ ur: Point;
68
+ };
69
+ objpIdx: number;
70
+ }
71
+ /** @see lib/common/postproc.c:countClusterLabels */
72
+ export declare function countClusterLabels(g: Graph, isRoot: (h: Graph) => boolean): number;
73
+ /** @see lib/common/postproc.c:addClusterObj */
74
+ export declare function addClusterObj(g: Graph, objs: ObjectT[], info: CinfoT, isRoot: (h: Graph) => boolean, flip: boolean): CinfoT;
75
+ type BezLike2 = {
76
+ list: Point[];
77
+ sflag: number;
78
+ eflag: number;
79
+ sp: Point;
80
+ ep: Point;
81
+ };
82
+ export type ELike = {
83
+ info: {
84
+ spl?: {
85
+ list: BezLike2[];
86
+ };
87
+ edge_type?: number;
88
+ to_orig?: ELike;
89
+ label?: TextlabelT;
90
+ tail_label?: TextlabelT;
91
+ head_label?: TextlabelT;
92
+ xlabel?: TextlabelT;
93
+ };
94
+ };
95
+ /**
96
+ * Follow to_orig until a spline is found.
97
+ * @see lib/common/splines.c:getsplinepoints
98
+ */
99
+ export declare function getSplinePoints(e: ELike): SplLike | null;
100
+ /** @see lib/common/postproc.c:edgeTailpoint */
101
+ export declare function edgeTailpoint(e: ELike): Point;
102
+ /** @see lib/common/postproc.c:edgeHeadpoint */
103
+ export declare function edgeHeadpoint(e: ELike): Point;
104
+ /** @see lib/common/splines.c:edgeMidpoint */
105
+ export declare function edgeMidpoint(g: Graph, e: ELike): Point;
106
+ /**
107
+ * Grow the graph bbox to include a placed xlabel/edge-label.
108
+ *
109
+ * Delegates to the shared `updateBB` (splines-label.ts) so the GD_flip
110
+ * axis swap lives in one place. C's addXLabel/addLabelObj callers all
111
+ * route label growth through the same `updateBB`/`addLabelBB`
112
+ * (lib/common/utils.c:569-595) — this used to be a second, divergent
113
+ * copy that never got the flip swap; see analysis/2613-canvas.md.
114
+ * @see lib/common/utils.c:addLabelBB
115
+ */
116
+ export declare function updateBBForLabel(g: Graph, lp: TextlabelT): void;
117
+ /**
118
+ * Position xlabels and any unpositioned edge labels using the placement
119
+ * algorithm to avoid overlap.
120
+ *
121
+ * @see lib/common/postproc.c:addXLabels
122
+ */
123
+ export declare function addXLabels(gp: Graph): void;
124
+ export {};
125
+ //# sourceMappingURL=xlabels-place.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xlabels-place.d.ts","sourceRoot":"","sources":["../../src/common/xlabels-place.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Discriminated union of structured records emitted by the debug subsystem.
3
+ * Add a new member here when a new diagnostic category is introduced.
4
+ */
5
+ export type DebugRecord = {
6
+ kind: 'rank';
7
+ nodeId: string;
8
+ rank: number;
9
+ } | {
10
+ kind: 'rank-alias-start';
11
+ nodeId: string;
12
+ rankValue: number;
13
+ } | {
14
+ kind: 'rank-alias-end';
15
+ nodeId: string;
16
+ xCoord: number;
17
+ rankRestored: number;
18
+ } | {
19
+ kind: 'spline';
20
+ edgeId: string;
21
+ points: readonly [number, number][];
22
+ } | {
23
+ kind: 'coord-space';
24
+ phase: string;
25
+ nodeId: string;
26
+ x: number;
27
+ y: number;
28
+ unit: 'pt' | 'in';
29
+ } | {
30
+ kind: 'prng';
31
+ seed: number;
32
+ value: number;
33
+ index: number;
34
+ };
35
+ /**
36
+ * Flags controlling diagnostic output. All fields are optional; omitting a
37
+ * flag is equivalent to false. Pass via GvcContext constructor options.
38
+ *
39
+ * All flags are no-ops when undefined — guarded by `if (debug?.flag)` so
40
+ * the JIT can eliminate dead branches. They do not affect algorithm output.
41
+ */
42
+ export interface DebugOptions {
43
+ /** Log rank assignments and ND_rank dual-use transitions (AD-8). */
44
+ rankAssignment?: boolean;
45
+ /** Log spline control points per edge after pathplan routing. */
46
+ splineRouting?: boolean;
47
+ /** Log every PS2INCH / INCH2PS coordinate conversion. */
48
+ coordinateSpaces?: boolean;
49
+ /** Log MT19937 seed and generated values (SGD / neato overlap removal). */
50
+ prngState?: boolean;
51
+ /**
52
+ * Receive structured records as they are emitted.
53
+ * Called synchronously; do not mutate the record.
54
+ * If omitted, enabled flags write to console.debug.
55
+ */
56
+ emit?: (record: DebugRecord) => void;
57
+ }
58
+ //# sourceMappingURL=debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAClF;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IACnD,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,oEAAoE;IACpE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iEAAiE;IACjE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CACtC"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Public structured-error contract for graphviz-ts.
3
+ *
4
+ * Consumers branch on the stable `code` / `type` fields; the
5
+ * `code -> friendlyMessage` map is the single seam a future i18n library
6
+ * replaces. This module is a runtime leaf: the only project import is the
7
+ * type-only `Expectation`, which is erased at compile time.
8
+ *
9
+ * @see plans/structured-errors/decisions.md
10
+ */
11
+ import type { Expectation } from './parser/dot.js';
12
+ /** Stable public alias of peggy's expectation union (SYNTAX_* errors only). */
13
+ export type GvExpectation = Expectation;
14
+ /** Coarse classification of where an error originated. */
15
+ export type GvErrorType = 'syntax' | 'semantic' | 'render';
16
+ /** Closed union of stable error codes — each is an i18n key. */
17
+ export type GvErrorCode = 'SYNTAX_ERROR' | 'SYNTAX_UNEXPECTED_EOF' | 'EDGE_OP_DIRECTED_IN_UNDIRECTED' | 'EDGE_OP_UNDIRECTED_IN_DIRECTED' | 'HTML_PARSE_ERROR' | 'RENDER_ERROR' | 'GENERIC_ERROR';
18
+ /** Structured error contract shared by every error source. */
19
+ export interface GvError {
20
+ type: GvErrorType;
21
+ /** Stable i18n key. */
22
+ code: GvErrorCode;
23
+ /** Concise technical text we own (may diverge from C). */
24
+ message: string;
25
+ /** Approachable, non-localized English (delivery). */
26
+ friendlyMessage: string;
27
+ /** Real error position; the highest-value field. */
28
+ location?: {
29
+ line: number;
30
+ column: number;
31
+ offset?: number;
32
+ };
33
+ /** Peggy's discriminated union, passed through unmapped; SYNTAX_* only. */
34
+ expected?: GvExpectation[];
35
+ }
36
+ /** Result of a result-style render: `svg` XOR `errors` for v1. */
37
+ export interface RenderResult {
38
+ /** Present on success. */
39
+ svg?: string;
40
+ /** Present on failure; length <= 1 (first failure only) for v1. */
41
+ errors?: GvError[];
42
+ }
43
+ /**
44
+ * Central `code -> friendlyMessage` map. Non-localized, approachable English.
45
+ * This is the seam a future i18n library replaces.
46
+ */
47
+ export declare const FRIENDLY_MESSAGES: Record<GvErrorCode, string>;
48
+ /**
49
+ * Look up the approachable English message for a code. The single seam a
50
+ * future i18n library replaces.
51
+ */
52
+ export declare function friendlyMessageFor(code: GvErrorCode): string;
53
+ /**
54
+ * Error thrown for known layout/render-stage failures. Only `RENDER_ERROR`
55
+ * and `GENERIC_ERROR` are valid render-stage codes.
56
+ */
57
+ export declare class RenderError extends Error implements GvError {
58
+ readonly type = "render";
59
+ readonly code: GvErrorCode;
60
+ readonly friendlyMessage: string;
61
+ constructor(message: string, code?: GvErrorCode);
62
+ }
63
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,+EAA+E;AAC/E,MAAM,MAAM,aAAa,GAAG,WAAW,CAAC;AAExC,0DAA0D;AAC1D,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE3D,gEAAgE;AAChE,MAAM,MAAM,WAAW,GACnB,cAAc,GACd,uBAAuB,GACvB,gCAAgC,GAChC,gCAAgC,GAChC,kBAAkB,GAClB,cAAc,GACd,eAAe,CAAC;AAEpB,8DAA8D;AAC9D,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,uBAAuB;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,eAAe,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAWzD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAE5D;AAED;;;GAGG;AACH,qBAAa,WAAY,SAAQ,KAAM,YAAW,OAAO;IACvD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;gBAErB,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,WAA4B;CAMhE"}
@@ -0,0 +1,86 @@
1
+ import type { Edge } from '../model/edge.js';
2
+ import type { Graph } from '../model/graph.js';
3
+ import type { Node } from '../model/node.js';
4
+ import type { Point, Box, Spline } from '../model/geom.js';
5
+ import type { TextlabelT } from '../common/types.js';
6
+ import type { RendererPlugin } from './context.js';
7
+ import { type ObjState, type RenderJob } from './job.js';
8
+ /**
9
+ * Resolve an edge's anchor fields into job.obj, mirroring emit_begin_edge.
10
+ * The whole-edge anchor (svg endEdge) and the per-label sub-anchors
11
+ * (renderEdgeLabels) read these. map_* fields are not populated (SVG has no
12
+ * maps).
13
+ * @see lib/common/emit.c:emit_begin_edge (2706-2845)
14
+ */
15
+ export declare function resolveEdgeAnchor(e: Edge, id: string, obj: ObjState): void;
16
+ /**
17
+ * Resolve a graph or cluster's anchor fields into job.obj: url from href/URL,
18
+ * tooltip from tooltip else default to the object's label, target, id.
19
+ * @see lib/common/emit.c:initMapData (163-200)
20
+ */
21
+ export declare function resolveObjAnchor(g: Graph, label: string | null, id: string, obj: ObjState): void;
22
+ /**
23
+ * Open an anchor with explicit fields, coalescing nullable url/tooltip/target
24
+ * to ''. The id is passed through (callers build label-specific ids).
25
+ * @see lib/common/emit.c → gvrender_begin_anchor
26
+ */
27
+ export declare function openAnchorWith(renderer: RendererPlugin, job: RenderJob, url: string | null, tooltip: string | null, target: string | null, id: string): void;
28
+ /**
29
+ * Open the whole-object anchor when there is a url or an explicit tooltip,
30
+ * mirroring `if (obj->url || obj->explicit_tooltip)`. Returns true when the
31
+ * caller must close it with renderer.endAnchor after the object's own graphics.
32
+ * @see lib/common/emit.c:2877 (edge), 3653 (graph), 3803 (cluster)
33
+ */
34
+ export declare function beginAnchorIf(renderer: RendererPlugin, job: RenderJob): boolean;
35
+ /**
36
+ * Coordinate-transform context for the imagemap device. `bb` is the unpadded
37
+ * graph bounding box (GD_bb), `pad` the graph padding, `scale` the device
38
+ * scale (`zoom * dpi / 72`). The imagemap device is GVRENDER_Y_GOES_DOWN with
39
+ * no GVRENDER_DOES_TRANSFORM, so emit.c runs every map point through
40
+ * gvrender_ptf.
41
+ */
42
+ export interface MapCtx {
43
+ bb: Box;
44
+ pad: Point;
45
+ scale: number;
46
+ marginOff: Point;
47
+ mapPolygon: boolean;
48
+ }
49
+ /**
50
+ * gvrender_ptf for the imagemap device (single page, no rotation): the clip box
51
+ * is the padded drawing, so translation.x = -(bb.ll.x - pad.x) and
52
+ * translation.y = -(bb.ur.y + pad.y); devscale.y is negated for Y_GOES_DOWN.
53
+ * setup_page also folds `canvasBox.LL / zoom` (the graph `margin=`) into the
54
+ * translation, which after the `* scale` becomes `margin * dpi/72` in device
55
+ * units (`marginOff`) — matching svgBeginPage's `+ margin / z` term.
56
+ * @see lib/gvc/gvrender.c:gvrender_ptf ; lib/common/emit.c:setup_page (1566-1581)
57
+ */
58
+ export declare function mapTransform(p: Point, ctx: MapCtx): Point;
59
+ /**
60
+ * Populate obj.urlMapShape / obj.urlMapPts for a node, mirroring the shape
61
+ * dispatch in emit_begin_node: a regular-rectangle / non-polygon node maps to
62
+ * its bounding-box rectangle (lw/rw, ht/2); every other polygon maps to a
63
+ * circle, sampled ellipse, or n-gon.
64
+ * @see lib/common/emit.c:emit_begin_node (1665-1778)
65
+ */
66
+ export declare function computeNodeUrlMap(n: Node, obj: ObjState, ctx: MapCtx): void;
67
+ /**
68
+ * Graph-level (root) hot spot: the padded drawing rectangle (pageBox), matching
69
+ * emit_page's map computation for GVRENDER_DOES_MAP_RECTANGLE devices.
70
+ * @see lib/common/emit.c:emit_page (3623-3642)
71
+ */
72
+ export declare function computeGraphUrlMap(obj: ObjState, ctx: MapCtx): void;
73
+ /** Cluster hot spot: GD_bb(sg) rectangle. @see emit.c:emit_clusters (emit_map_rect) */
74
+ export declare function computeClusterUrlMap(bb: Box, obj: ObjState, ctx: MapCtx): void;
75
+ /**
76
+ * Label hot spot: the P2RECT box around a placed label (pos ± dimen/2).
77
+ * @see lib/common/emit.c:map_label (666-689)
78
+ */
79
+ export declare function computeLabelRectMap(lab: TextlabelT, obj: ObjState, ctx: MapCtx): void;
80
+ /**
81
+ * Whole-edge spline hot spots: one (or more) MAP_POLYGON outlines around the
82
+ * edge's Bézier pieces, in device coordinates.
83
+ * @see lib/common/emit.c:emit_begin_edge (2851-2872) / emit_end_edge (2969-2985)
84
+ */
85
+ export declare function computeEdgeSplineMaps(spl: Spline, w2: number, ctx: MapCtx): Point[][];
86
+ //# sourceMappingURL=anchor.d.ts.map