@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,89 @@
1
+ /**
2
+ * JSON and JSON0 renderer plugins.
3
+ *
4
+ * Ports plugin/core/gvrender_core_json.c — FORMAT_JSON and FORMAT_JSON0.
5
+ * FORMAT_DOT_JSON and FORMAT_XDOT_JSON are out of scope (AD-12).
6
+ *
7
+ * ## Draw-op / layout-attr sourcing (mirrors C's json_begin_graph)
8
+ *
9
+ * C's `json_begin_graph` (FORMAT_JSON) clones the GVC and runs a full
10
+ * `gvRender(gvc, g, "xdot", NULL)` over the already-laid-out graph. That xdot
11
+ * pass attaches every draw string (`_draw_`, `_ldraw_`, ...) plus the layout
12
+ * attributes (`pos`, `width`, `height`, `bb`, `xdotversion`) to the graph
13
+ * objects as cgraph string attributes; `json_end_graph` then serializes them,
14
+ * re-parsing each xdot draw string into an array of typed op objects
15
+ * (`write_xdot`). This port mirrors that literally: it re-renders the laid-out
16
+ * graph to xdot text via a fresh context and parses the text back (the same
17
+ * technique as `getDrawOps`/`layoutAndRenderXdot`), then looks each object's
18
+ * draw + layout attributes up by identity. Structure (subgraph tree, node/edge
19
+ * membership) and user/inherited attributes come from the ORIGINAL laid-out
20
+ * graph — the same object C's `json_end_graph` walks — because the port's xdot
21
+ * writer omits user attributes (color/label/shape) and filters "irrelevant"
22
+ * subgraphs, so the xdot re-parse alone is not a faithful source of structure.
23
+ *
24
+ * Output is emitted as a semantically-equivalent JSON value tree
25
+ * (`JSON.stringify`); byte-for-byte formatting is not required — the
26
+ * conformance bar is the semantic `compare-json` comparator (±0.01, colors /
27
+ * fonts canonicalized). `stoj`/`ind` are retained as the C-faithful string
28
+ * helpers referenced by the unit tests.
29
+ *
30
+ * @see plugin/core/gvrender_core_json.c
31
+ */
32
+ import type { Graph } from '../model/graph.js';
33
+ import type { Node } from '../model/node.js';
34
+ import type { Edge } from '../model/edge.js';
35
+ import type { Point } from '../model/geom.js';
36
+ import type { TextSpan } from '../common/emit-types.js';
37
+ import type { RendererPlugin } from '../gvc/context.js';
38
+ import type { RenderJob } from '../gvc/job.js';
39
+ /** Convert a dot string to a JSON-embedded string (with surrounding quotes). */
40
+ export declare function stoj(s: string): string;
41
+ export declare function ind(level: number): string;
42
+ export declare function buildJson(g: Graph, doXDot: boolean): string;
43
+ /**
44
+ * JSON0 renderer — position data only, no xdot draw operations.
45
+ *
46
+ * @see plugin/core/gvrender_core_json.c FORMAT_JSON0
47
+ */
48
+ export declare class Json0Renderer implements RendererPlugin {
49
+ readonly type = "json0";
50
+ /** @see plugin/core/gvplugin_core.c registration table */
51
+ readonly quality = 0;
52
+ beginGraph(_g: Graph, _job: RenderJob): void;
53
+ endGraph(g: Graph, job: RenderJob): void;
54
+ beginNode(_n: Node, _job: RenderJob): void;
55
+ endNode(_n: Node, _job: RenderJob): void;
56
+ beginEdge(_e: Edge, _job: RenderJob): void;
57
+ endEdge(_e: Edge, _job: RenderJob): void;
58
+ textspan(_pos: Point, _span: TextSpan, _job: RenderJob): void;
59
+ ellipse(_c: Point, _rx: number, _ry: number, _f: boolean, _j: RenderJob): void;
60
+ polygon(_pts: Point[], _filled: boolean, _job: RenderJob): void;
61
+ bezier(_pts: Point[], _filled: boolean, _job: RenderJob): void;
62
+ polyline(_pts: Point[], _job: RenderJob): void;
63
+ }
64
+ /**
65
+ * JSON renderer — position data plus _draw_ arrays.
66
+ *
67
+ * @see plugin/core/gvrender_core_json.c FORMAT_JSON
68
+ */
69
+ export declare class JsonRenderer implements RendererPlugin {
70
+ readonly type = "json";
71
+ /** @see plugin/core/gvplugin_core.c registration table */
72
+ readonly quality = 0;
73
+ beginGraph(_g: Graph, _job: RenderJob): void;
74
+ endGraph(g: Graph, job: RenderJob): void;
75
+ beginNode(_n: Node, _job: RenderJob): void;
76
+ endNode(_n: Node, _job: RenderJob): void;
77
+ beginEdge(_e: Edge, _job: RenderJob): void;
78
+ endEdge(_e: Edge, _job: RenderJob): void;
79
+ textspan(_pos: Point, _span: TextSpan, _job: RenderJob): void;
80
+ ellipse(_c: Point, _rx: number, _ry: number, _f: boolean, _j: RenderJob): void;
81
+ polygon(_pts: Point[], _filled: boolean, _job: RenderJob): void;
82
+ bezier(_pts: Point[], _filled: boolean, _job: RenderJob): void;
83
+ polyline(_pts: Point[], _job: RenderJob): void;
84
+ }
85
+ /** @see plugin/core/gvrender_core_json.c FORMAT_JSON0 */
86
+ export declare function createJson0Renderer(): RendererPlugin;
87
+ /** @see plugin/core/gvrender_core_json.c FORMAT_JSON */
88
+ export declare function createJsonRenderer(): RendererPlugin;
89
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/render/json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Shared test stubs for map.test.ts and map-renderers.test.ts.
3
+ * No describe/it calls — safe to import from any test file.
4
+ */
5
+ import { RenderJob } from '../gvc/job.js';
6
+ import type { ObjState } from '../gvc/job.js';
7
+ import { Graph } from '../model/graph.js';
8
+ import { Node } from '../model/node.js';
9
+ export declare function makeJob(): RenderJob;
10
+ export declare function makeObjState(): ObjState;
11
+ export declare function makeGraph(): Graph;
12
+ export declare function makeNode(g: Graph, name?: string): Node;
13
+ //# sourceMappingURL=map-test-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-test-helpers.d.ts","sourceRoot":"","sources":["../../src/render/map-test-helpers.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAgC,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAKxC,wBAAgB,OAAO,IAAI,SAAS,CAInC;AAED,wBAAgB,YAAY,IAAI,QAAQ,CAuBvC;AAED,wBAAgB,SAAS,IAAI,KAAK,CAIjC;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,SAAM,GAAG,IAAI,CAOnD"}
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Plain, IMAP, and CMAPX renderer plugins.
3
+ *
4
+ * Plain: ports lib/common/output.c:write_plain.
5
+ * IMAP/CMAPX: ports plugin/core/gvrender_core_map.c.
6
+ *
7
+ * @see lib/common/output.c:write_plain
8
+ * @see plugin/core/gvrender_core_map.c
9
+ */
10
+ import type { Graph } from '../model/graph.js';
11
+ import type { Node } from '../model/node.js';
12
+ import type { Edge } from '../model/edge.js';
13
+ import type { Point, Box } from '../model/geom.js';
14
+ import type { TextSpan } from '../common/emit-types.js';
15
+ import type { RendererPlugin } from '../gvc/context.js';
16
+ import type { ObjState, RenderJob } from '../gvc/job.js';
17
+ import { MapShape } from '../gvc/job.js';
18
+ import { type MapCtx } from '../gvc/anchor.js';
19
+ /** Node style attributes for plain format. */
20
+ export interface PlainNodeAttrs {
21
+ label: string;
22
+ style: string;
23
+ shape: string;
24
+ color: string;
25
+ fill: string;
26
+ }
27
+ /** Anchor attributes bundled to avoid >5-param functions. */
28
+ export interface AnchorCtx {
29
+ url: string;
30
+ tooltip: string;
31
+ target: string;
32
+ id: string;
33
+ }
34
+ /** Format with 5 significant figures, trailing zeros stripped. */
35
+ export declare function printG5(v: number): string;
36
+ /** Convert points → inches (PS2INCH = 1/72) and format as %.5g. */
37
+ export declare function plainCoord(v: number): string;
38
+ /** Resolve fill color: fillcolor attr, then color attr, then lightgrey. */
39
+ export declare function plainNodeFill(n: Node): string;
40
+ /** Read the five style attrs needed for a plain node line. */
41
+ export declare function plainNodeAttrs(n: Node): PlainNodeAttrs;
42
+ /** Write one node line: `node name x y w h label style shape color fill\n` */
43
+ export declare function writePlainNode(n: Node, out: string[]): void;
44
+ /** Flatten all Bezier curves in an edge spline into a point array. */
45
+ export declare function collectSplinePts(e: Edge): Point[];
46
+ /** Return `:name` suffix when a port name is present, else empty string. */
47
+ export declare function portSuffix(name: string | null): string;
48
+ /** Write the `edge tail head n pt...` prefix when spline data exists. */
49
+ export declare function writePlainEdgeHead(e: Edge, tport: string, hport: string, pts: Point[], out: string[]): void;
50
+ /** Write one edge — spline prefix if available, always appends `style color\n`. */
51
+ export declare function writePlainEdge(e: Edge, extend: boolean, out: string[]): void;
52
+ /** Write the full plain output: graph header, nodes, edges, stop. */
53
+ export declare function writePlain(g: Graph, job: RenderJob, extend: boolean): void;
54
+ /** Build AnchorCtx from an ObjState, defaulting nulls to empty string. */
55
+ export declare function cmapxObjAnchor(obj: ObjState): AnchorCtx;
56
+ /** Write graph-level CMAPX shape if the obj has map points. */
57
+ export declare function writeCmapxGraphShape(job: RenderJob, out: string[]): void;
58
+ /** Map MapShape enum to CMAPX shape attribute string. */
59
+ export declare function cmapxShape(shape: MapShape): string;
60
+ /** CMAPX coords for a rectangle (UL→LR in Y-down space). */
61
+ export declare function cmapxCoordsRect(pts: Point[]): string;
62
+ /** CMAPX coords for a circle: `cx,cy,r`. */
63
+ export declare function cmapxCoordsCircle(pts: Point[]): string;
64
+ /** CMAPX coords for a polygon: `x0,y0,x1,y1,...`. */
65
+ export declare function cmapxCoordsPoly(pts: Point[]): string;
66
+ /** Dispatch to the correct CMAPX coordinate formatter. */
67
+ export declare function cmapxCoords(shape: MapShape, pts: Point[]): string;
68
+ /** Append optional id/href/target/title attributes to out. */
69
+ export declare function mapCmapxAttrs(a: AnchorCtx, out: string[]): void;
70
+ /** Write one `<area>` element: CMAPX (isXml=true → `/>`) or CMAP (`>`). */
71
+ export declare function mapOutputCmapx(shape: MapShape, pts: Point[], a: AnchorCtx, isXml: boolean, out: string[]): void;
72
+ /** Write one IMAP shape line; skipped when url is empty. */
73
+ export declare function mapOutputImap(shape: MapShape, pts: Point[], url: string, out: string[]): void;
74
+ /** @see plugin/core/gvrender_core_dot.c FORMAT_PLAIN */
75
+ export declare class PlainRenderer implements RendererPlugin {
76
+ readonly type = "plain";
77
+ readonly quality = 0;
78
+ beginGraph(_g: Graph, _job: RenderJob): void;
79
+ endGraph(g: Graph, job: RenderJob): void;
80
+ beginNode(_n: Node, _job: RenderJob): void;
81
+ endNode(_n: Node, _job: RenderJob): void;
82
+ beginEdge(_e: Edge, _job: RenderJob): void;
83
+ endEdge(_e: Edge, _job: RenderJob): void;
84
+ textspan(_pos: Point, _span: TextSpan, _job: RenderJob): void;
85
+ ellipse(_c: Point, _rx: number, _ry: number, _f: boolean, _j: RenderJob): void;
86
+ polygon(_pts: Point[], _filled: boolean, _job: RenderJob): void;
87
+ bezier(_pts: Point[], _filled: boolean, _job: RenderJob): void;
88
+ polyline(_pts: Point[], _job: RenderJob): void;
89
+ }
90
+ /** @see plugin/core/gvrender_core_dot.c FORMAT_PLAIN_EXT */
91
+ export declare class PlainExtRenderer implements RendererPlugin {
92
+ readonly type = "plain-ext";
93
+ readonly quality = 0;
94
+ beginGraph(_g: Graph, _job: RenderJob): void;
95
+ endGraph(g: Graph, job: RenderJob): void;
96
+ beginNode(_n: Node, _job: RenderJob): void;
97
+ endNode(_n: Node, _job: RenderJob): void;
98
+ beginEdge(_e: Edge, _job: RenderJob): void;
99
+ endEdge(_e: Edge, _job: RenderJob): void;
100
+ textspan(_pos: Point, _span: TextSpan, _job: RenderJob): void;
101
+ ellipse(_c: Point, _rx: number, _ry: number, _f: boolean, _j: RenderJob): void;
102
+ polygon(_pts: Point[], _filled: boolean, _job: RenderJob): void;
103
+ bezier(_pts: Point[], _filled: boolean, _job: RenderJob): void;
104
+ polyline(_pts: Point[], _job: RenderJob): void;
105
+ }
106
+ /** Graph name as `agnameof` returns it: the DOT name, or `%1` for an anonymous
107
+ * root (cgraph's first anonymous id). The port stores `''` for an anonymous
108
+ * root (dot/xdot re-serialization must not print a `%`-name — see dot.ts), so
109
+ * the imagemap layer restores the internal name only here.
110
+ * @see lib/cgraph/id.c:agnameof ; lib/cgraph/id.c:idmap (anon → `%1`) */
111
+ export declare function mapGraphName(g: Graph): string;
112
+ /** Root graph URL (href, then URL) with \-substitution, for the imap `default`
113
+ * line. Resolved from attrs because obj.url is populated after beginGraph.
114
+ * @see lib/common/emit.c:initObjMapData ; gvrender_core_map.c:map_begin_page */
115
+ export declare function graphMapUrl(g: Graph): string | null;
116
+ /** Build the imagemap coordinate context. The map device's default dpi is 96
117
+ * (dpi/resolution attrs override); zoom fits the drawing into `size=` exactly
118
+ * as the SVG path (initJobViewportZoom). @see gvrender_core_map.c device_features_map */
119
+ export declare function buildMapCtx(g: Graph, job: RenderJob, mapPolygon: boolean): MapCtx;
120
+ /**
121
+ * Shared imagemap renderer. Ports plugin/core/gvrender_core_map.c: the
122
+ * `url_map_p` geometry (src/gvc/anchor.ts) is populated in the begin hooks and
123
+ * emitted as `<area>` (cmapx) or `keyword url coords` (imap) lines in traversal
124
+ * order. The `_np` subclasses disable polygon/circle shapes
125
+ * (device_features_map_nopoly).
126
+ * @see plugin/core/gvrender_core_map.c
127
+ */
128
+ declare abstract class MapRendererBase implements RendererPlugin {
129
+ abstract readonly type: string;
130
+ readonly quality = 0;
131
+ protected abstract readonly isCmapx: boolean;
132
+ protected abstract readonly mapPolygon: boolean;
133
+ private mapCtx;
134
+ beginGraph(g: Graph, job: RenderJob): void;
135
+ endGraph(_g: Graph, job: RenderJob): void;
136
+ beginNode(n: Node, job: RenderJob): void;
137
+ beginCluster(sg: Graph, job: RenderJob): void;
138
+ endEdge(e: Edge, job: RenderJob): void;
139
+ /** C emit_map_rect: record the HTML table/cell box as the pending hot spot,
140
+ * so the following beginAnchor emits its <area>. @see emit.c:640 */
141
+ emitMapRect(box: Box, job: RenderJob): void;
142
+ beginAnchor(url: string, tip: string, target: string, id: string, job: RenderJob): void;
143
+ endNode(_n: Node, _job: RenderJob): void;
144
+ beginEdge(_e: Edge, _job: RenderJob): void;
145
+ endCluster(_sg: Graph, _job: RenderJob): void;
146
+ textspan(_pos: Point, _span: TextSpan, _job: RenderJob): void;
147
+ ellipse(_c: Point, _rx: number, _ry: number, _f: boolean, _j: RenderJob): void;
148
+ polygon(_pts: Point[], _filled: boolean, _job: RenderJob): void;
149
+ bezier(_pts: Point[], _filled: boolean, _job: RenderJob): void;
150
+ polyline(_pts: Point[], _job: RenderJob): void;
151
+ /** Emit one hot spot: `<area>` (cmapx) or a plain `keyword url coords` line. */
152
+ private emitShape;
153
+ /** Whole-edge spline outline(s) then center/head/tail label hot spots.
154
+ * @see lib/common/emit.c:emit_begin_edge (2851-2872) / emit_end_edge */
155
+ private emitEdge;
156
+ /** One edge label hot spot (map_label rect), if placed and url/explicit-tip.
157
+ * @see lib/common/emit.c:emit_edge_label */
158
+ private emitEdgeLabel;
159
+ }
160
+ /** @see plugin/core/gvrender_core_map.c FORMAT_IMAP */
161
+ export declare class ImapRenderer extends MapRendererBase {
162
+ readonly type = "imap";
163
+ protected readonly isCmapx = false;
164
+ protected readonly mapPolygon = true;
165
+ }
166
+ /** @see plugin/core/gvrender_core_map.c FORMAT_IMAP (no-polygon device) */
167
+ export declare class ImapNpRenderer extends MapRendererBase {
168
+ readonly type = "imap-np";
169
+ protected readonly isCmapx = false;
170
+ protected readonly mapPolygon = false;
171
+ }
172
+ /** @see plugin/core/gvrender_core_map.c FORMAT_CMAPX */
173
+ export declare class CmapxRenderer extends MapRendererBase {
174
+ readonly type = "cmapx";
175
+ protected readonly isCmapx = true;
176
+ protected readonly mapPolygon = true;
177
+ }
178
+ /** @see plugin/core/gvrender_core_map.c FORMAT_CMAPX (no-polygon device) */
179
+ export declare class CmapxNpRenderer extends MapRendererBase {
180
+ readonly type = "cmapx-np";
181
+ protected readonly isCmapx = true;
182
+ protected readonly mapPolygon = false;
183
+ }
184
+ /** @see plugin/core/gvrender_core_dot.c FORMAT_PLAIN */
185
+ export declare function createPlainRenderer(): RendererPlugin;
186
+ /** @see plugin/core/gvrender_core_dot.c FORMAT_PLAIN_EXT */
187
+ export declare function createPlainExtRenderer(): RendererPlugin;
188
+ /** @see plugin/core/gvrender_core_map.c FORMAT_IMAP */
189
+ export declare function createImapRenderer(): RendererPlugin;
190
+ /** @see plugin/core/gvrender_core_map.c FORMAT_IMAP (no polygon) */
191
+ export declare function createImapNpRenderer(): RendererPlugin;
192
+ /** @see plugin/core/gvrender_core_map.c FORMAT_CMAPX */
193
+ export declare function createCmapxRenderer(): RendererPlugin;
194
+ /** @see plugin/core/gvrender_core_map.c FORMAT_CMAPX (no polygon) */
195
+ export declare function createCmapxNpRenderer(): RendererPlugin;
196
+ export {};
197
+ //# sourceMappingURL=map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../src/render/map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Multi-format public render entry point.
3
+ *
4
+ * Wraps the low-level `gvc/device.ts:render` with context lifecycle
5
+ * management (layout → render → freeLayout) and structured-error handling,
6
+ * mirroring `src/index.ts:renderSvg` exactly.
7
+ *
8
+ * @see lib/gvc/gvc.c:gvRender
9
+ */
10
+ import type { Graph } from '../model/graph.js';
11
+ import type { EngineName } from '../gvc/context.js';
12
+ /**
13
+ * Supported output formats. Closed string union matching the built-in
14
+ * renderers registered by `createDefaultContext`.
15
+ */
16
+ export type OutputFormat = 'svg' | 'dot' | 'xdot' | 'json' | 'plain' | 'plain-ext' | 'imap' | 'cmapx';
17
+ /**
18
+ * Options for {@link render}.
19
+ */
20
+ export interface RenderOptions {
21
+ /**
22
+ * Layout engine to use. Defaults to `'dot'`.
23
+ *
24
+ * yAxis is intentionally absent: coordinate orientation is a `getLayout`
25
+ * concern (ADR-5). The raw format strings produced here carry native
26
+ * y-up coordinates; callers that need y-down must flip in post-processing.
27
+ */
28
+ engine?: EngineName;
29
+ /**
30
+ * Inline external images as `data:` URIs (AD-1, additive). Defaults to
31
+ * `false` — unset reproduces the pre-AD-1 raw `xlink:href="src"`
32
+ * passthrough byte-for-byte. When `true`, the SVG emitter consults the
33
+ * process-global resolver registered via `setImageResolver` (from
34
+ * `graphviz-ts`) for each `image=`/HTML `<IMG>` source; a hit is inlined
35
+ * as `data:<mime>;base64,<...>`, a miss (or no resolver registered) falls
36
+ * back to the raw src passthrough. Has no effect on non-SVG formats.
37
+ */
38
+ inlineImages?: boolean;
39
+ }
40
+ /**
41
+ * Render a (parsed or built) graph to the requested format string.
42
+ *
43
+ * Lifecycle: createDefaultContext → layout → deviceRender → freeLayout.
44
+ * Error handling mirrors `renderSvg`: GvError-like throws re-surface
45
+ * unchanged; unknown throws become `RenderError('RENDER_ERROR')`.
46
+ *
47
+ * @remarks
48
+ * Security: for the markup formats (`svg`, `cmapx`, `imap`), treat the output
49
+ * as attacker-controlled when the source graph came from untrusted DOT.
50
+ * Attribute values are XML-escaped, but URL schemes and resource origins
51
+ * (`href`/`URL`/`image`/`stylesheet`) are passed through unfiltered, matching
52
+ * native Graphviz. Apply a Content-Security-Policy or sanitize before embedding
53
+ * — see the README "Security" section.
54
+ *
55
+ * @param g - graph produced by `parse(...)` or the builder API
56
+ * @param format - target output format
57
+ * @param opts - optional engine override (default: `'dot'`)
58
+ * @returns rendered string in the requested format
59
+ * @throws RenderError on layout or render failure
60
+ *
61
+ * @see lib/gvc/gvc.c:gvRender
62
+ */
63
+ export declare function render(g: Graph, format: OutputFormat, opts?: RenderOptions): string;
64
+ //# sourceMappingURL=public.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/render/public.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAK/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAMpD;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB,KAAK,GACL,KAAK,GACL,MAAM,GACN,MAAM,GACN,OAAO,GACP,WAAW,GACX,MAAM,GACN,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA6BD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,MAAM,CACpB,CAAC,EAAE,KAAK,EACR,MAAM,EAAE,YAAY,EACpB,IAAI,CAAC,EAAE,aAAa,GACnB,MAAM,CAcR"}
@@ -0,0 +1,10 @@
1
+ import type { RenderJob } from '../gvc/job.js';
2
+ import type { ArrowDrawOp } from '../common/arrows-types.js';
3
+ /**
4
+ * Emit one edge end's arrowhead draw-ops, in order, with the given pen color.
5
+ * `opacity` is the stringified alpha (`colorOpacity`) or null when the pen color
6
+ * is opaque; it drives the SVG fill/stroke-opacity attributes (e.g. an edge
7
+ * color="#rrggbbaa"). @see lib/common/arrows.c:arrow_gen
8
+ */
9
+ export declare function emitArrowOps(ops: ArrowDrawOp[], penColor: string, job: RenderJob, pw: number, opacity?: string | null): void;
10
+ //# sourceMappingURL=svg-arrow-ops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-arrow-ops.d.ts","sourceRoot":"","sources":["../../src/render/svg-arrow-ops.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAiF7D;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,GAAG,IAAW,GAAG,IAAI,CASlI"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * SVG cluster group helpers.
3
+ * @see plugin/core/gvrender_core_svg.c:svg_begin_cluster / svg_end_cluster
4
+ */
5
+ import type { Graph } from '../model/graph.js';
6
+ import type { RenderJob } from '../gvc/job.js';
7
+ export declare function svgBeginCluster(sg: Graph, job: RenderJob): void;
8
+ export declare function svgEndCluster(job: RenderJob): void;
9
+ //# sourceMappingURL=svg-cluster.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-cluster.d.ts","sourceRoot":"","sources":["../../src/render/svg-cluster.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,wBAAgB,eAAe,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAO/D;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAElD"}
@@ -0,0 +1,31 @@
1
+ import type { Point } from '../model/geom.js';
2
+ /** Per-corner geometry, mirroring emit.c:corner_info_t. */
3
+ export interface CornerInfo {
4
+ /** Index of the corner point in the spline list. */
5
+ idx: number;
6
+ /** Truncation point toward the previous segment (curr − dir1·radius). */
7
+ truncPrev: Point;
8
+ /** Truncation point toward the next segment (curr + dir2·radius). */
9
+ truncNext: Point;
10
+ /** Center of the arc wedge. */
11
+ wedgeCenter: Point;
12
+ /** Arc start/end angles. */
13
+ angle1: number;
14
+ angle2: number;
15
+ }
16
+ /**
17
+ * Find every orthogonal corner in the spline point list and compute its
18
+ * truncation + wedge parameters. A corner is a horizontal→vertical or
19
+ * vertical→horizontal bend (TOL 0.1). @see lib/common/emit.c:find_ortho_corners
20
+ */
21
+ export declare function findOrthoCorners(pts: Point[], radius: number): CornerInfo[];
22
+ /**
23
+ * The full list of `<polyline>` point-arrays native emits for an ortho edge with
24
+ * rounded corners: straight segments between truncated corners first, then one
25
+ * arc polyline per corner — matching emit.c's order (segment loop, then
26
+ * draw_ortho_corner_markers). Returns `[]` when no orthogonal corner is found,
27
+ * so the caller falls back to the bezier `<path>`.
28
+ * @see lib/common/emit.c:2583-2662
29
+ */
30
+ export declare function orthoRoundedPolylines(pts: Point[], radius: number): Point[][];
31
+ //# sourceMappingURL=svg-edge-ortho-radius.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-edge-ortho-radius.d.ts","sourceRoot":"","sources":["../../src/render/svg-edge-ortho-radius.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG9C,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IACzB,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,yEAAyE;IACzE,SAAS,EAAE,KAAK,CAAC;IACjB,qEAAqE;IACrE,SAAS,EAAE,KAAK,CAAC;IACjB,+BAA+B;IAC/B,WAAW,EAAE,KAAK,CAAC;IACnB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAyFD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE,CA4B3E;AAkED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,EAAE,EAAE,CAI7E"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Split-along-length multi-color edges: a `color="c1;f1:c2;f2"` (semicolon)
3
+ * spec draws each routed spline split along its ARC LENGTH, one sub-curve per
4
+ * color segment. This is C's `multicolor()` path, reached when the color has
5
+ * both ';' and ':' (numsemi && numc); the plain ':' syntax is the parallel
6
+ * branch (svg-parallel-edge.ts).
7
+ *
8
+ * Arrow rule (note: inverse of the parallel branch): tail arrow = FIRST color,
9
+ * head arrow = endcolor (LAST drawn color).
10
+ *
11
+ * @see lib/common/emit.c:1975 multicolor
12
+ * @see lib/common/emit.c:1921 splitBSpline
13
+ * @see lib/common/emit.c:1908 approxLen
14
+ * @see lib/common/utils.c:175 Bezier (de Casteljau split)
15
+ */
16
+ import type { Edge } from '../model/edge.js';
17
+ import type { RenderJob } from '../gvc/job.js';
18
+ import type { Point } from '../model/geom.js';
19
+ interface ColorSeg {
20
+ color: string | null;
21
+ t: number;
22
+ }
23
+ /** One color segment of a split spline: the sub-curve control points + its color. */
24
+ export interface ColoredSubCurve {
25
+ color: string;
26
+ points: Point[];
27
+ }
28
+ /**
29
+ * Split one routed spline along its arc length into colored sub-curves per the
30
+ * color segments (C's multicolor() walk), returning the sub-curves and the end
31
+ * color. Pure geometry — no emission — so both the SVG and xdot renderers can
32
+ * share it. @see lib/common/emit.c:1975 multicolor
33
+ */
34
+ export declare function splitSplineByColor(list: Point[], segs: ColorSeg[]): {
35
+ curves: ColoredSubCurve[];
36
+ endColor: string;
37
+ };
38
+ /**
39
+ * Emit a split-along-length multi-color edge. Returns the first and end colors
40
+ * for arrow drawing (tail = first, head = end).
41
+ * @see lib/common/emit.c:1975 multicolor
42
+ */
43
+ export declare function emitSplitEdgePaths(e: Edge, job: RenderJob, colorList: string): {
44
+ firstColor: string;
45
+ endColor: string;
46
+ };
47
+ export {};
48
+ //# sourceMappingURL=svg-edge-split.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-edge-split.d.ts","sourceRoot":"","sources":["../../src/render/svg-edge-split.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAU,MAAM,kBAAkB,CAAC;AAkFtD,UAAU,QAAQ;IAAG,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;CAAE;AAEvD,qFAAqF;AACrF,MAAM,WAAW,eAAe;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,KAAK,EAAE,CAAC;CAAE;AA2BpE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,KAAK,EAAE,EACb,IAAI,EAAE,QAAQ,EAAE,GACf;IAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAQjD;AASD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,IAAI,EACP,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,MAAM,GAChB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAY1C"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * SVG gradient emitters — ports svg_print_stop, svg_gradstyle, svg_rgradstyle
3
+ * and get_gradient_points. Separate module to keep svg-helpers.ts < 500 lines (AD5).
4
+ * @see plugin/core/gvrender_core_svg.c:553 (svg_print_stop)
5
+ * @see plugin/core/gvrender_core_svg.c:572 (svg_gradstyle)
6
+ * @see plugin/core/gvrender_core_svg.c:608 (svg_rgradstyle)
7
+ * @see lib/common/utils.c:1446 (get_gradient_points)
8
+ */
9
+ import type { Point } from '../model/geom.js';
10
+ import type { GVColor } from '../common/color.js';
11
+ import type { RenderJob } from '../gvc/job.js';
12
+ interface GradientPoints {
13
+ g0: Point;
14
+ g1: Point;
15
+ }
16
+ /**
17
+ * Compute gradient endpoints. `isRHS` mirrors C's `flags & 2`: true yields
18
+ * native y-up (Graphviz) coordinates for the xdot/json device path, false
19
+ * yields the SVG y-down convention (the default, used by the SVG renderer,
20
+ * whose top-level `<g transform>` supplies the flip). Linear: g0/g1 =
21
+ * endpoints. Radial: g0=(cx,±cy), g1=(inner_r,outer_r).
22
+ * @see lib/common/utils.c:1446 get_gradient_points
23
+ */
24
+ export declare function getGradientPoints(A: Point[], angle: number, radial: boolean, isRHS?: boolean): GradientPoints;
25
+ /**
26
+ * Emit one gradient stop. offset: near-0→"0", near-1→"1", else "%.03f".
27
+ * @see plugin/core/gvrender_core_svg.c:553 svg_print_stop
28
+ */
29
+ export declare function emitStop(job: RenderJob, offset: number, color: GVColor): void;
30
+ /**
31
+ * Gradient element id: [escapeXml(objId)+'_'] + kind+'_'+n.
32
+ * @see plugin/core/gvrender_core_svg.c:572 svg_gradstyle (id block)
33
+ */
34
+ export declare function gradientId(objId: string | null, kind: 'l' | 'r', n: number): string;
35
+ /**
36
+ * Emit `<defs><linearGradient>` + two stops + `</linearGradient></defs>`.
37
+ * pts in y-up (Graphviz) space. @see plugin/core/gvrender_core_svg.c:572 svg_gradstyle
38
+ */
39
+ export declare function emitLinearGradient(job: RenderJob, pts: Point[], id: string): void;
40
+ /**
41
+ * Emit `<defs><radialGradient>` + two stops + `</radialGradient></defs>`.
42
+ * @see plugin/core/gvrender_core_svg.c:608 svg_rgradstyle
43
+ */
44
+ export declare function emitRadialGradient(job: RenderJob, id: string): void;
45
+ export {};
46
+ //# sourceMappingURL=svg-gradient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-gradient.d.ts","sourceRoot":"","sources":["../../src/render/svg-gradient.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,UAAU,cAAc;IAAG,EAAE,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,KAAK,CAAC;CAAE;AAqDlD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,UAAQ,GACxD,cAAc,CAMhB;AAyBD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAY7E;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAGnF;AAcD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAQjF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAgBnE"}