@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,127 @@
1
+ /**
2
+ * Red-black balanced binary search tree, ported from lib/rbtree/.
3
+ *
4
+ * Original implementation by Emin Martinian. All algorithms, sentinel
5
+ * design, and behavioral details are preserved exactly from the C source.
6
+ *
7
+ * @see lib/rbtree/red_black_tree.h
8
+ * @see lib/rbtree/red_black_tree.c
9
+ */
10
+ /**
11
+ * A single node in the red-black tree.
12
+ * All leaf pointers point to `tree.nil`; never JS null/undefined.
13
+ * @see lib/rbtree/red_black_tree.h:26-32 rb_red_blk_node
14
+ */
15
+ export interface RbNode {
16
+ key: unknown;
17
+ /** Color: 1 = red, 0 = black. */
18
+ red: number;
19
+ left: RbNode;
20
+ right: RbNode;
21
+ parent: RbNode;
22
+ }
23
+ /**
24
+ * Tree handle. `root` is a dummy sentinel; real BST root is `root.left`.
25
+ * `nil` is the leaf sentinel; always black.
26
+ * @see lib/rbtree/red_black_tree.h:37-48 rb_red_blk_tree
27
+ */
28
+ export interface RbTree {
29
+ nil: RbNode;
30
+ root: RbNode;
31
+ compare: (a: unknown, b: unknown) => number;
32
+ destroyKey: (key: unknown) => void;
33
+ }
34
+ /** @internal */
35
+ export declare function makeNode(): RbNode;
36
+ /**
37
+ * Left-rotate around node `x`.
38
+ * Guards nil.parent to avoid corrupting the sentinel (see C source comments).
39
+ * @internal
40
+ * @see lib/rbtree/red_black_tree.c:79-112 LeftRotate
41
+ */
42
+ export declare function leftRotate(tree: RbTree, x: RbNode): void;
43
+ /**
44
+ * Right-rotate around node `y`. Symmetric nil-sentinel guard as leftRotate.
45
+ * @internal
46
+ * @see lib/rbtree/red_black_tree.c:132-164 RightRotate
47
+ */
48
+ export declare function rightRotate(tree: RbTree, y: RbNode): void;
49
+ /**
50
+ * Plain BST insertion of z (no rebalancing). Equal keys route right.
51
+ * @internal
52
+ * @see lib/rbtree/red_black_tree.c:181-207 TreeInsertHelp
53
+ */
54
+ export declare function treeInsertHelp(tree: RbTree, z: RbNode): void;
55
+ /**
56
+ * Insert fixup: parent is a left child (CLRS cases 1-3).
57
+ * Returns the updated cursor node x.
58
+ * @internal
59
+ */
60
+ export declare function insertFixUpLeft(tree: RbTree, xIn: RbNode): RbNode;
61
+ /**
62
+ * Insert fixup: parent is a right child (CLRS cases 1-3, symmetric).
63
+ * Returns the updated cursor node x.
64
+ * @internal
65
+ */
66
+ export declare function insertFixUpRight(tree: RbTree, xIn: RbNode): RbNode;
67
+ /** @internal Delete fixup left-child case (CLRS §13.4). Returns updated cursor. */
68
+ export declare function deleteFixUpLeft(tree: RbTree, xIn: RbNode, root: RbNode): RbNode;
69
+ /** @internal Delete fixup right-child case (CLRS §13.4, symmetric). Returns updated cursor. */
70
+ export declare function deleteFixUpRight(tree: RbTree, xIn: RbNode, root: RbNode): RbNode;
71
+ /** @internal Restore red-black invariants after removal. @see red_black_tree.c:447 RBDeleteFixUp */
72
+ export declare function rbDeleteFixUp(tree: RbTree, xIn: RbNode): void;
73
+ /**
74
+ * Splice successor y into z's position (two-child delete case).
75
+ * Calls destroyKey on z.key, not y.key, per the C source.
76
+ * @internal
77
+ */
78
+ export declare function spliceSuccessorIntoZ(tree: RbTree, y: RbNode, z: RbNode, x: RbNode): void;
79
+ /**
80
+ * Postorder destruction helper.
81
+ * @internal
82
+ * @see lib/rbtree/red_black_tree.c:367-375 TreeDestHelper
83
+ */
84
+ export declare function treeDestHelper(tree: RbTree, x: RbNode): void;
85
+ /**
86
+ * Create a new empty red-black tree with the given comparator and destructor.
87
+ * @see lib/rbtree/red_black_tree.c:27-60 RBTreeCreate
88
+ */
89
+ export declare function rbTreeCreate(compare: (a: unknown, b: unknown) => number, destroyKey: (key: unknown) => void): RbTree;
90
+ /**
91
+ * Insert `key` into the tree and return the new node.
92
+ * Node pointer is stable until rbDelete or rbTreeDestroy is called on it.
93
+ * @see lib/rbtree/red_black_tree.c:229-280 RBTreeInsert
94
+ */
95
+ export declare function rbTreeInsert(tree: RbTree, key: unknown): RbNode;
96
+ /**
97
+ * Delete node `z` from the tree and call destroyKey on its key.
98
+ * Uses successor-splice strategy when z has two non-nil children.
99
+ * After this call z must not be used.
100
+ * @see lib/rbtree/red_black_tree.c:524-567 RBDelete
101
+ */
102
+ export declare function rbDelete(tree: RbTree, z: RbNode): void;
103
+ /**
104
+ * Destroy all nodes. Tree must not be used after this call.
105
+ * @see lib/rbtree/red_black_tree.c:391-396 RBTreeDestroy
106
+ */
107
+ export declare function rbTreeDestroy(tree: RbTree): void;
108
+ /**
109
+ * Search for a node whose key equals `q` per the tree's comparator.
110
+ * Returns the highest matching node when duplicates exist.
111
+ * Returns null (not tree.nil) when no match is found.
112
+ * @see lib/rbtree/red_black_tree.c:412-428 RBExactQuery
113
+ */
114
+ export declare function rbExactQuery(tree: RbTree, q: unknown): RbNode | null;
115
+ /**
116
+ * Return in-order successor of x (next larger key).
117
+ * Returns tree.nil when x is the maximum element.
118
+ * @see lib/rbtree/red_black_tree.c:296-315 TreeSuccessor
119
+ */
120
+ export declare function treeSuccessor(tree: RbTree, x: RbNode): RbNode;
121
+ /**
122
+ * Return in-order predecessor of x (next smaller key).
123
+ * Returns tree.nil when x is the minimum element.
124
+ * @see lib/rbtree/red_black_tree.c:331-350 TreePredecessor
125
+ */
126
+ export declare function treePredecessor(tree: RbTree, x: RbNode): RbNode;
127
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rbtree/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { type GVColor } from '../common/color.js';
2
+ /** Lower-cased lookup set for the SVG known colors (case-insensitive, as C). */
3
+ export declare const KNOWN_COLORS: ReadonlySet<string>;
4
+ /**
5
+ * Resolve a raw color string to a canonical {@link GVColor} for rendering.
6
+ *
7
+ * @see lib/gvc/gvrender.c:188-213 gvrender_resolve_color
8
+ */
9
+ export declare function resolveRenderColor(raw: string): GVColor;
10
+ /**
11
+ * Run `fn` with the active color scheme set to `scheme`, restoring the previous
12
+ * scheme afterwards (try/finally so it cannot leak across objects on throw).
13
+ * Mirrors C's setColorScheme begin/end windows around each object's color block
14
+ * (e.g. lib/common/emit.c:1781/1789 for nodes).
15
+ */
16
+ export declare function withColorScheme<T>(scheme: string | undefined, fn: () => T): T;
17
+ /** Lowercase `#rrggbb` from normalized [0,1] channels (round-to-byte). */
18
+ export declare function rgbaStr(r: number, g: number, b: number): string;
19
+ /**
20
+ * Format a resolved color as an SVG paint string.
21
+ * @see plugin/core/gvrender_core_svg.c:119-138 svg_print_paint
22
+ */
23
+ export declare function colorPaint(color: GVColor): string;
24
+ /**
25
+ * The `fill-opacity`/`stroke-opacity` value for a color, or null when none is
26
+ * emitted (C emits it only for an RGBA_BYTE paint with alpha in (0,255)).
27
+ * @see plugin/core/gvrender_core_svg.c:186-190, 207-210 ((float)rgba[3]/255.0)
28
+ */
29
+ export declare function colorOpacity(color: GVColor): string | null;
30
+ /**
31
+ * The text-fill attribute string for a span's font color, mirroring the color
32
+ * switch in svg_textspan (plugin/core/gvrender_core_svg.c:494-505). A known
33
+ * name is emitted verbatim and SKIPPED when it is "black"; any other spec is
34
+ * canonicalized to lowercase `#rrggbb` (always emitted, even if black) with
35
+ * `fill-opacity` when alpha < 255. Returns '' when nothing is emitted.
36
+ */
37
+ export declare function textFillAttrs(fontColor: string | null): string;
38
+ //# sourceMappingURL=color-resolve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-resolve.d.ts","sourceRoot":"","sources":["../../src/render/color-resolve.ts"],"names":[],"mappings":"AAkBA,OAAO,EAIL,KAAK,OAAO,EACb,MAAM,oBAAoB,CAAC;AAsD5B,gFAAgF;AAChF,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,MAAM,CAA6B,CAAC;AAE3E;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQvD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAQ7E;AAMD,0EAA0E;AAC1E,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAK/D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUjD;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAK1D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAY9D"}
@@ -0,0 +1,379 @@
1
+ /**
2
+ * DOT and XDOT renderer plugins.
3
+ *
4
+ * Ports gvrender_core_dot.c — FORMAT_DOT and FORMAT_XDOT branches.
5
+ * FORMAT_CANON, FORMAT_XDOT12, FORMAT_XDOT14 are out of scope (AD-12).
6
+ *
7
+ * @see plugin/core/gvrender_core_dot.c
8
+ * @see plugin/core/gvplugin_core.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 } from '../model/geom.js';
14
+ import type { TextSpan } from '../common/emit-types.js';
15
+ import type { GVColor } from '../common/color.js';
16
+ import type { RendererPlugin } from '../gvc/context.js';
17
+ import type { RenderJob } from '../gvc/job.js';
18
+ /**
19
+ * Convert a double to compact string form for DOT/XDOT output.
20
+ *
21
+ * Rules (porting gvprintnum from lib/gvc/gvdevice.c):
22
+ * - |n| > MAX_NEGNUM → clamped to ±MAX_NEGNUM
23
+ * - |n| < NEAR_ZERO → "0" (suppresses -0)
24
+ * - 3 decimal places, trailing zeros and point stripped
25
+ * - Leading "0." collapsed to "." (e.g. 0.5 → ".5")
26
+ *
27
+ * Exported for json.ts (T30) and map.ts (T31).
28
+ *
29
+ * @see lib/gvc/gvdevice.c:gvprintnum
30
+ */
31
+ export declare function printNum(n: number): string;
32
+ /**
33
+ * Create a 12-slot xbufs array with the canonical aliasing.
34
+ *
35
+ * Indices 8–9 (NDraw, EDraw) alias index 1 (CDraw).
36
+ * Indices 10–11 (NLabel, ELabel) alias index 5 (CLabel).
37
+ *
38
+ * @see plugin/core/gvrender_core_dot.c:xbufs
39
+ */
40
+ export declare function makeXbufs(): string[][];
41
+ /**
42
+ * Format one xdot draw-op number: 2 decimals, trailing zeros and point trimmed
43
+ * — mirroring xdot_fmt_num ("%.02f" + agxbuf_trim_zeros). Distinct from
44
+ * `printNum` (used for the DOT `pos`/`bb`/`width`/`height` attributes), which
45
+ * keeps more precision; xdot's DRAW ops are emitted at 2 dp by the C engine.
46
+ * @see plugin/core/gvrender_core_dot.c:126 xdot_fmt_num
47
+ */
48
+ export declare function xdotNum(v: number): string;
49
+ /**
50
+ * Format a single xdot point "x y ". xdot is y-up: `Y_invert` defaults false, so
51
+ * `yDir(y, yOff)` returns `y` unchanged for xdot (only `-Ty` plain/dot invert).
52
+ * The layout coordinate passes through with NO inversion — unlike the SVG path.
53
+ * @see lib/common/output.c:36 yDir · plugin/core/gvrender_core_dot.c:132 xdot_point
54
+ */
55
+ export declare function xdotPoint(p: Point): string;
56
+ /** Format N points preceded by opcode and count: "<c> <n> x0 y0 x1 y1 …". */
57
+ export declare function xdotPoints(c: string, pts: Point[]): string;
58
+ /**
59
+ * UTF-8 byte length of a string — the value C's `xdot_str` writes as the length
60
+ * prefix (`strlen(s)` over the UTF-8 bytes), NOT the JS UTF-16 code-unit count.
61
+ * A label like `ÿ` (U+00FF) is 2 UTF-8 bytes, so its `T`/`F` op prefix is 2.
62
+ * @see plugin/core/gvrender_core_dot.c:83 xdot_str_xbuf (`%zu`, strlen)
63
+ */
64
+ export declare function utf8Len(s: string): number;
65
+ /**
66
+ * Resolve a GVColor to RGBA bytes — the value the C xdot callbacks read from
67
+ * `job->obj->pencolor.u.rgba` (already resolved by gvrender_set_pencolor). A
68
+ * plain `rgba` passes through; named/hex/HSV specs run through colorxlate; a
69
+ * `none` color is fully transparent black (callers gate on PEN_NONE).
70
+ */
71
+ export declare function gvColorRgba(c: GVColor): [number, number, number, number];
72
+ /**
73
+ * Bare xdot color body (no `c `/`C ` prefix): the CONSTANT length prefix
74
+ * (7 for `#rrggbb`, 9 for `#rrggbbaa`) plus `-#hex`, the alpha byte present only
75
+ * when not fully opaque. Used both by the color ops and by gradient color stops.
76
+ * @see plugin/core/gvrender_core_dot.c:99 xdot_str_color_xbuf
77
+ */
78
+ export declare function xdotColorBody(rgba: [number, number, number, number]): string;
79
+ /**
80
+ * Format an xdot color op ("c "/"C ") from RGBA bytes.
81
+ * @see plugin/core/gvrender_core_dot.c:99 xdot_str_color_xbuf
82
+ */
83
+ export declare function xdotColorOp(prefix: 'c ' | 'C ', rgba: [number, number, number, number]): string;
84
+ /**
85
+ * Build the linear-gradient `C len -[x0 y0 x1 y1 2 <stops>]` fill op. Endpoints
86
+ * come from getGradientPoints (the same geometry the SVG gradient uses); stops
87
+ * are (frac,fill)/(frac,stop) when frac>0, else (0,fill)/(1,stop). Shared by
88
+ * node/cluster gradient fills and the graph-background gradient.
89
+ * @see plugin/core/gvrender_core_dot.c:544-598 xdot_gradient_fillcolor
90
+ */
91
+ export declare function linearGradientOp(pts: Point[], fillColor: GVColor, stopColor: GVColor, frac: number, angleDeg: number): string;
92
+ /**
93
+ * Build the radial-gradient `C len -(c1x c1y r1 c2x c2y r2 2 <stops>)` fill op.
94
+ * Reuses getGradientPoints (radial) for the center/radii, un-negating its SVG
95
+ * y. r1 = outerR/4, r2 = outerR; c2 is the center, c1 the center offset by r1
96
+ * along the gradient angle (== center when angle 0).
97
+ * @see plugin/core/gvrender_core_dot.c:562-585 xdot_gradient_fillcolor (radial)
98
+ */
99
+ export declare function radialGradientOp(pts: Point[], fillColor: GVColor, stopColor: GVColor, frac: number, angleDeg: number): string;
100
+ /** Pen ("c ") color op from a resolved GVColor. */
101
+ export declare function xdotPenColor(c: GVColor): string;
102
+ /** Fill ("C ") color op from a resolved GVColor. */
103
+ export declare function xdotFillColor(c: GVColor): string;
104
+ /**
105
+ * Build the xdot "F size len -name " font op. Mirrors xdot_textspan's `F` +
106
+ * `xdot_str(job, "", font->name)` — the length prefix is the byte length of the
107
+ * face name. @see plugin/core/gvrender_core_dot.c:498 xdot_textspan
108
+ */
109
+ export declare function xdotFont(size: number, name: string): string;
110
+ /**
111
+ * Quote a DOT identifier unless it is a bare id or numeral, mirroring agwrite's
112
+ * agcanonStr so the serialized graph reparses (the comparator reparses both
113
+ * sides). Only `"` is escaped (→ `\"`); a `\` is left as-is — it is already the
114
+ * start of a stored escape like `\n`/`\l` that agcanonStr keeps verbatim, so
115
+ * doubling it (`\\n`) would change the name (`a\n(b\n"c")` must stay `a\n…`, not
116
+ * `a\\n…`). Over-quoting a value native leaves bare is harmless: both parse to
117
+ * the same name. @see lib/cgraph/write.c:_agstrcanon (escapes '"', keeps '\')
118
+ */
119
+ export declare function xdotId(s: string): string;
120
+ /**
121
+ * Format a number as C's `%.5g` — 5 significant figures, trailing zeros and
122
+ * point trimmed, switching to `e±NN` (min 2 exponent digits) when the exponent
123
+ * is < -4 or ≥ 5. Native writes the DOT `pos`/`bb`/`width`/`height` attributes
124
+ * with `%.5g` (output.c:71/294/302), so large coordinates round to 5 sig figs
125
+ * (`2219962` → `2.2201e+06`); `printNum`'s fixed 3 dp keeps too much precision.
126
+ *
127
+ * Uses {@link printfSig} rather than `Number.prototype.toPrecision(5)` so
128
+ * exact-halfway values (e.g. 1399.25) round half-to-even like C's snprintf,
129
+ * not half-away-from-zero like `toPrecision`. @see docs proven case
130
+ * graphs-b786 (circo): pos coordinate 1399.25 → native "1399.2", `toPrecision`
131
+ * gave "1399.3".
132
+ * @see lib/common/output.c:71 (agxbprint "%.5g")
133
+ */
134
+ export declare function gfmt5(v: number): string;
135
+ /** Format node attributes for DOT output. */
136
+ export declare function formatNodeAttrs(n: Node): string;
137
+ /**
138
+ * Format edge spline points for the DOT `pos` attribute. Per bezier: the start
139
+ * endpoint `s,sp` when `sflag` set, then the end endpoint `e,ep` when `eflag`
140
+ * set, then `bez.size` control points — all at `%.5g`, exactly as native's
141
+ * spline serialization. @see lib/common/output.c:357-372
142
+ */
143
+ export declare function formatEdgePos(e: Edge): string;
144
+ /** Return the edge connector token. */
145
+ export declare function edgeConnector(directed: boolean): string;
146
+ /** Return true if the graph is directed or strict-directed. */
147
+ export declare function isDirected(g: Graph): boolean;
148
+ /** Emit the opening digraph/graph line and bb attribute. */
149
+ export declare function dotBeginGraphHeader(g: Graph, job: RenderJob): void;
150
+ /**
151
+ * DOT format renderer — writes graphviz DOT language with layout attributes.
152
+ *
153
+ * @see plugin/core/gvrender_core_dot.c:dot_engine
154
+ */
155
+ export declare class DotRenderer implements RendererPlugin {
156
+ readonly type = "dot";
157
+ /** @see plugin/core/gvplugin_core.c registration table */
158
+ readonly quality = 0;
159
+ beginGraph(g: Graph, job: RenderJob): void;
160
+ endGraph(_g: Graph, job: RenderJob): void;
161
+ beginNode(_n: Node, _job: RenderJob): void;
162
+ endNode(n: Node, job: RenderJob): void;
163
+ beginEdge(_e: Edge, _job: RenderJob): void;
164
+ endEdge(e: Edge, job: RenderJob): void;
165
+ textspan(_pos: Point, _span: TextSpan, _job: RenderJob): void;
166
+ ellipse(_c: Point, _rx: number, _ry: number, _f: boolean, _j: RenderJob): void;
167
+ polygon(_pts: Point[], _filled: boolean, _job: RenderJob): void;
168
+ bezier(_pts: Point[], _filled: boolean, _job: RenderJob): void;
169
+ polyline(_pts: Point[], _job: RenderJob): void;
170
+ }
171
+ /** Accumulated xdot draw strings for one model object (agset side-table). */
172
+ export interface XdotDraws {
173
+ draw?: string;
174
+ ldraw?: string;
175
+ hdraw?: string;
176
+ tdraw?: string;
177
+ hldraw?: string;
178
+ tldraw?: string;
179
+ }
180
+ /**
181
+ * XDOT format renderer — mirrors plugin/core/gvrender_core_dot.c's xdot engine.
182
+ *
183
+ * Draw ops accumulate in per-emit-state xbufs during the shared emit pass; at
184
+ * the end of each object they are attached as `_draw_`/`_ldraw_`/`_hdraw_`/
185
+ * `_tdraw_` strings (a side-table here, `agset` in C), and the whole graph is
186
+ * serialized at `endGraph` — the model-attribute + agwrite-at-end model that
187
+ * lets the graph-level `_draw_` (canvas background, cluster boxes) precede `bb`
188
+ * even though it is only known after the body has been drawn.
189
+ *
190
+ * xdot is y-up (no coordinate inversion); colors come from the resolved
191
+ * graphics state (`job.obj.penColor`/`fillColor`), not hardcoded black.
192
+ *
193
+ * @see plugin/core/gvrender_core_dot.c xdot_begin_graph / xdot_end_graph
194
+ */
195
+ export declare class XdotRenderer implements RendererPlugin {
196
+ readonly type = "xdot";
197
+ /** @see plugin/core/gvplugin_core.c registration table */
198
+ readonly quality = 0;
199
+ /** Per-render draw buffers. Indices 8/9 alias 1; 10/11 alias 5. */
200
+ private bufs;
201
+ /** setlinewidth state per emit_state. @see gvrender_core_dot.c penwidth[] */
202
+ private penwidth;
203
+ /** text-flag state per emit_state. @see gvrender_core_dot.c textflags[] */
204
+ private textflags;
205
+ /** Accumulated draw strings keyed by model object (C: agset on the object). */
206
+ private draws;
207
+ /** Clusters in render order — the graphs `endCluster` was actually called for
208
+ * (from `renderClusters`/`GD_clust`), which is NOT always reachable via
209
+ * `g.subgraphs`, so it is tracked here rather than re-walked. */
210
+ private clusters;
211
+ /** edge_in_box gate for the current edge: emit_edge draws nothing (spline OR
212
+ * label) for an edge whose content is outside job->clip. Mirrors svg.ts's
213
+ * edgeGroupOpen. @see lib/common/emit.c:emit_edge (3039) */
214
+ private edgeDrawable;
215
+ beginGraph(g: Graph, _job: RenderJob): void;
216
+ /** The per-object draw strings accumulated during the last render, keyed by
217
+ * the ORIGINAL model object. These are the pre-serialization values C's
218
+ * `-Tjson` reads directly (via agxget) — feeding them to parseXDot avoids the
219
+ * DOT-text round-trip, which cannot represent draw text containing `"` and so
220
+ * drops a preceding backslash (a cluster label's `\"` → `"`, id 2239). */
221
+ drawStringsByObject(): ReadonlyMap<Node | Edge | Graph, XdotDraws>;
222
+ endGraph(g: Graph, job: RenderJob): void;
223
+ /** Emit the canvas background polygon into the GDRAW buffer.
224
+ * @see lib/common/emit.c:1476 emit_background */
225
+ pageBackground(g: Graph, job: RenderJob): void;
226
+ beginNode(_n: Node, _job: RenderJob): void;
227
+ endNode(n: Node, _job: RenderJob): void;
228
+ /**
229
+ * Emit the edge spline beziers (EDRAW) and arrowhead ops (TDRAW/HDRAW),
230
+ * reading the already-routed geometry from `e.info`. Mirrors
231
+ * emit_edge_graphics: each bezier under the edge pen, then tail/head arrows
232
+ * under the default solid line style. The port draws SVG edges directly in
233
+ * svg.ts (not via shared bezier/polygon callbacks), so the xdot edge draw is
234
+ * self-contained here — the same per-renderer split the port already uses.
235
+ * @see lib/common/emit.c:emit_edge_graphics
236
+ */
237
+ beginEdge(e: Edge, job: RenderJob): void;
238
+ /**
239
+ * Emit a tapered edge's first bezier as a filled taper polygon: `S <n>
240
+ * -tapered` (the style), a transparent pen, the edge-color fill, then the
241
+ * polygon vertices from `taper()` (y-up). @see lib/common/emit.c:2422
242
+ */
243
+ private emitTaperedSpline;
244
+ /**
245
+ * Emit a split-along-length `;` multicolor edge spline: split each routed
246
+ * bezier along its arc length into one sub-curve per color segment, drawn
247
+ * under that segment's pen. Reuses the same split geometry
248
+ * (splitSplineByColor) as the SVG path. @see lib/common/emit.c:1975 multicolor
249
+ */
250
+ private emitSplitSpline;
251
+ /**
252
+ * Emit the parallel-multicolor edge spline: one offset Bézier per color,
253
+ * offset SEP=2.0 perpendicular per pass — reusing the same offset geometry
254
+ * (buildOffsetLists/advanceTmpList) as the SVG parallel-edge path.
255
+ * @see lib/common/emit.c:2443 (parallel multicolor) / svg-parallel-edge.ts
256
+ */
257
+ private emitParallelSpline;
258
+ /** Emit one arrow's primitive ops into `buf` (pen/fill from the edge color).
259
+ * arrow_gen sets the default line style ("solid") and the edge penwidth
260
+ * before each primitive, so a non-default penwidth emits `S setlinewidth(N)`
261
+ * once (tracked per HDRAW/TDRAW state). @see arrows.c:arrow_gen */
262
+ private emitArrows;
263
+ endEdge(e: Edge, job: RenderJob): void;
264
+ beginCluster(_sg: Graph, _job: RenderJob): void;
265
+ endCluster(sg: Graph, _job: RenderJob): void;
266
+ textspan(pos: Point, span: TextSpan, job: RenderJob): void;
267
+ ellipse(center: Point, rx: number, ry: number, filled: boolean, job: RenderJob): void;
268
+ polygon(pts: Point[], filled: boolean, job: RenderJob): void;
269
+ bezier(pts: Point[], filled: boolean, job: RenderJob): void;
270
+ polyline(pts: Point[], job: RenderJob): void;
271
+ /** Pen color op from the resolved graphics state (default black). */
272
+ private penOp;
273
+ /**
274
+ * Fill op from the resolved graphics state. A linear gradient emits the
275
+ * bracketed `C len -[G0 G1 2 <stops>]` form (xdot_gradient_fillcolor); a plain
276
+ * fill emits `C len -#hex`. `pts` are the shape points the gradient endpoints
277
+ * derive from. Radial gradients are deferred (emit the base fill).
278
+ * @see plugin/core/gvrender_core_dot.c:544 xdot_gradient_fillcolor
279
+ */
280
+ private fillOp;
281
+ /** Style ops (`S`): setlinewidth on a penwidth change, plus dash/dot pen.
282
+ * @see gvrender_core_dot.c:161 xdot_style */
283
+ private styleOp;
284
+ /** Active xdot buffer for the current emit state. */
285
+ private getBuf;
286
+ /** Join and clear the buffer for `state`; returns '' when empty. */
287
+ private flush;
288
+ /** Reset per-emit-state penwidth/textflags after an object (C's reset). */
289
+ private resetState;
290
+ private drawsFor;
291
+ /**
292
+ * Emit `key="value"`, escaping the value the way agwrite's agcanonStr does: a
293
+ * `"` becomes `\"` unless it is already part of an escape sequence (see
294
+ * agcanonEscape). A draw string carries label text that may contain a bare `"`
295
+ * (would close the attribute early) or a source `\"`/`\\` (must not be
296
+ * double-escaped). The byte-length prefix stays on the UNescaped text (the
297
+ * parser un-escapes before parseXDot re-reads it), matching native exactly.
298
+ * @see lib/cgraph/write.c:_agstrcanon (135-167)
299
+ */
300
+ private drawAttr;
301
+ /** `llx,lly,urx,ury` from a graph's layout bb. */
302
+ private bbStr;
303
+ /**
304
+ * Serialize the whole laid-out graph to xdot DOT text — a faithful port of
305
+ * cgraph's agwrite (lib/cgraph/write.c). Recurses the subgraph tree
306
+ * (write_subgs/write_body), scoping each node/edge to the subgraph(s) it
307
+ * belongs to via preorder numbers (write_node_test/write_edge_test), and
308
+ * re-emits an object bare (no attrs) on any scope after the first
309
+ * (attrs_written). This reproduces native's per-subgraph edge re-declarations
310
+ * — e.g. an edge in a rank=same subgraph is drawn once, then re-declared bare.
311
+ * @see lib/cgraph/write.c:agwrite
312
+ */
313
+ private serialize;
314
+ /** Preorder-number the subgraph tree. @see write.c:subgdfs */
315
+ private subgdfs;
316
+ /** A subgraph is anonymous when its name is empty or a `%N` local name. */
317
+ private isAnonymous;
318
+ /** A graph carries a `bb` attribute when it is the root or has a layout bb
319
+ * (clusters, and any subgraph output.c computed a box for). Native seeds `bb`
320
+ * on every graph via safe_dcl, so the value differs (set vs empty "") between
321
+ * a boxed graph and an unboxed child — the driver that makes an anon subgraph
322
+ * under the root or a cluster "relevant". @see lib/common/output.c:safe_dcl */
323
+ private hasBb;
324
+ /** Anonymous subgraph with no own node/edge defaults and no graph attrs
325
+ * differing from its parent → inlined into the parent. Native compares every
326
+ * graph attr over the root attr dict; the load-bearing ones are `bb` (set on
327
+ * the parent, empty on the child) and `rank`. @see write.c:irrelevant_subgraph */
328
+ private irrelevantSubgraph;
329
+ /** Non-draw graph attrs a subgraph emits (rank for rank=same; clusters use
330
+ * clusterAttrs). Only comparator-relevant fields need be exact.
331
+ *
332
+ * `rec_attach_bb` walks the ROOT and then `GD_clust` recursively, so a
333
+ * subgraph the layout did not box is attached NEITHER `bb` NOR the label
334
+ * triple — both keep the INPUT's values, which agwrite echoes. circo and
335
+ * twopi lay out no clusters at all (`GD_clust` empty — mirrored here by
336
+ * `this.clusters`, filled from endCluster), so on a re-fed dot output their
337
+ * `cluster0` comes back carrying the *previous* run's `bb` and `lp`.
338
+ * @see lib/common/output.c:249 rec_attach_bb */
339
+ private subgGraphAttrs;
340
+ private indent;
341
+ /** @see write.c:write_hdr */
342
+ private writeHdr;
343
+ /** @see write.c:write_trl */
344
+ private writeTrl;
345
+ /** @see write.c:write_subgs */
346
+ private writeSubgs;
347
+ /** @see write.c:write_body — subgraphs, then this scope's nodes and edges. */
348
+ private writeBody;
349
+ /** @see write.c:write_node_test — every xdot node carries pos/size, so it is
350
+ * never "default"; write it in the first scope that has not yet emitted it.
351
+ * Cluster nodes (fdp compound proxies, ND_clustnode) are never declared —
352
+ * C's write_plain/writenodeandport suppress them. @see lib/common/output.c:146 */
353
+ private writeNodeTest;
354
+ /** Emitted node name: a cluster node's synthetic `__i:<cluster>` id is written
355
+ * as the cluster name it stands for. @see lib/common/output.c:114 */
356
+ private emitNodeName;
357
+ /** @see write.c:write_edge_test */
358
+ private writeEdgeTest;
359
+ /** @see write.c:write_node */
360
+ private writeNode;
361
+ /** @see write.c:write_edge — attrs only on first emission, bare thereafter. */
362
+ private writeEdge;
363
+ /** Root-graph attribute block: `_draw_`, `_ldraw_`, `bb`, `xdotversion`. */
364
+ private graphAttrs;
365
+ /** Cluster attribute block. C's xdot_end_cluster ALWAYS agsets `_draw_` when
366
+ * the graph has clusters (even empty, e.g. peripheries=0), so emit it
367
+ * unconditionally; `_ldraw_` only when the cluster has a label.
368
+ * @see plugin/core/gvrender_core_dot.c:284 xdot_end_cluster */
369
+ private clusterAttrs;
370
+ /** Node attribute block: pos/width/height plus `_draw_`/`_ldraw_`. */
371
+ private nodeAttrs;
372
+ /** The `[...]` attribute body for an edge (draw ops + spline `pos`), or ''. */
373
+ private edgeAttrStr;
374
+ }
375
+ /** @see plugin/core/gvrender_core_dot.c FORMAT_DOT */
376
+ export declare function createDotRenderer(): RendererPlugin;
377
+ /** @see plugin/core/gvrender_core_dot.c FORMAT_XDOT */
378
+ export declare function createXdotRenderer(): RendererPlugin;
379
+ //# sourceMappingURL=dot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dot.d.ts","sourceRoot":"","sources":["../../src/render/dot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * `graphviz-ts/render` — the output-formats + draw-ops entry point (ADR-2).
3
+ *
4
+ * Pure re-export barrel for the public render surface: the multi-format
5
+ * `render()` entry and the structured xdot draw-op access.
6
+ *
7
+ * Typical flow: build or `parse()` a graph (see `graphviz-ts/api`), then
8
+ * either call `render(g, format, opts?)` for a serialized output string —
9
+ * `format` is one of {@link OutputFormat} (`'svg'`, `'dot'`, `'xdot'`,
10
+ * `'json'`, `'plain'`, ...) — or call {@link getDrawOps} to skip string
11
+ * output entirely and get a flat, typed draw-op stream for a custom
12
+ * canvas/WebGL/PDF backend.
13
+ *
14
+ * (No `src/render/index.ts` existed before this mission; this file is new.
15
+ * The renderer factories live in their own modules — `svg.ts`, `dot.ts`,
16
+ * `json.ts`, `map.ts` — and are wired through `createDefaultContext`, not
17
+ * re-exported here.)
18
+ */
19
+ export { render } from './public.js';
20
+ export type { OutputFormat, RenderOptions } from './public.js';
21
+ export { getDrawOps, DEFAULT_DRAW_ENGINE } from './xdot-public.js';
22
+ export type { DrawOpsOptions } from './xdot-public.js';
23
+ export type { Xdot, XdotOp, XdotColor } from './xdot-public.js';
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/render/index.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}