minerva-design 1.4.0 → 1.6.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 (824) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +21 -21
  3. package/custom-elements.json +3072 -611
  4. package/dist/angular/fesm2022/minerva-angular.mjs +1491 -5
  5. package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
  6. package/dist/angular/types/minerva-angular.d.ts +595 -5
  7. package/dist/charts/canvas.d.cts +4 -3
  8. package/dist/charts/canvas.d.ts +4 -3
  9. package/dist/charts/core.cjs +1 -1
  10. package/dist/charts/core.d.cts +6 -4
  11. package/dist/charts/core.d.ts +6 -4
  12. package/dist/charts/core.js +24 -16
  13. package/dist/charts/engine/axis.cjs +1 -1
  14. package/dist/charts/engine/axis.cjs.map +1 -1
  15. package/dist/charts/engine/axis.js +42 -19
  16. package/dist/charts/engine/axis.js.map +1 -1
  17. package/dist/charts/engine/canvas.cjs +1 -1
  18. package/dist/charts/engine/canvas.cjs.map +1 -1
  19. package/dist/charts/engine/canvas.js +155 -127
  20. package/dist/charts/engine/canvas.js.map +1 -1
  21. package/dist/charts/engine/chart.cjs +1 -1
  22. package/dist/charts/engine/chart.cjs.map +1 -1
  23. package/dist/charts/engine/chart.js +370 -255
  24. package/dist/charts/engine/chart.js.map +1 -1
  25. package/dist/charts/engine/color.cjs +1 -1
  26. package/dist/charts/engine/color.cjs.map +1 -1
  27. package/dist/charts/engine/color.d.cts +18 -0
  28. package/dist/charts/engine/color.d.ts +18 -0
  29. package/dist/charts/engine/color.js +48 -2
  30. package/dist/charts/engine/color.js.map +1 -1
  31. package/dist/charts/engine/controller.cjs +2 -2
  32. package/dist/charts/engine/controller.cjs.map +1 -1
  33. package/dist/charts/engine/controller.d.cts +34 -1
  34. package/dist/charts/engine/controller.d.ts +34 -1
  35. package/dist/charts/engine/controller.js +318 -273
  36. package/dist/charts/engine/controller.js.map +1 -1
  37. package/dist/charts/engine/data.cjs +1 -1
  38. package/dist/charts/engine/data.cjs.map +1 -1
  39. package/dist/charts/engine/data.d.cts +3 -1
  40. package/dist/charts/engine/data.d.ts +3 -1
  41. package/dist/charts/engine/data.js +6 -4
  42. package/dist/charts/engine/data.js.map +1 -1
  43. package/dist/charts/engine/defaults.cjs +2 -0
  44. package/dist/charts/engine/defaults.cjs.map +1 -0
  45. package/dist/charts/engine/defaults.d.cts +20 -0
  46. package/dist/charts/engine/defaults.d.ts +20 -0
  47. package/dist/charts/engine/defaults.js +35 -0
  48. package/dist/charts/engine/defaults.js.map +1 -0
  49. package/dist/charts/engine/format.cjs +1 -1
  50. package/dist/charts/engine/format.cjs.map +1 -1
  51. package/dist/charts/engine/format.d.cts +6 -0
  52. package/dist/charts/engine/format.d.ts +6 -0
  53. package/dist/charts/engine/format.js +15 -2
  54. package/dist/charts/engine/format.js.map +1 -1
  55. package/dist/charts/engine/graph/chart.cjs +2 -0
  56. package/dist/charts/engine/graph/chart.cjs.map +1 -0
  57. package/dist/charts/engine/graph/chart.d.cts +3 -0
  58. package/dist/charts/engine/graph/chart.d.ts +3 -0
  59. package/dist/charts/engine/graph/chart.js +1708 -0
  60. package/dist/charts/engine/graph/chart.js.map +1 -0
  61. package/dist/charts/engine/graph/circular.cjs +2 -0
  62. package/dist/charts/engine/graph/circular.cjs.map +1 -0
  63. package/dist/charts/engine/graph/circular.d.cts +16 -0
  64. package/dist/charts/engine/graph/circular.d.ts +16 -0
  65. package/dist/charts/engine/graph/circular.js +62 -0
  66. package/dist/charts/engine/graph/circular.js.map +1 -0
  67. package/dist/charts/engine/graph/dag.cjs +2 -0
  68. package/dist/charts/engine/graph/dag.cjs.map +1 -0
  69. package/dist/charts/engine/graph/dag.d.cts +34 -0
  70. package/dist/charts/engine/graph/dag.d.ts +34 -0
  71. package/dist/charts/engine/graph/dag.js +339 -0
  72. package/dist/charts/engine/graph/dag.js.map +1 -0
  73. package/dist/charts/engine/graph/dom.cjs +2 -0
  74. package/dist/charts/engine/graph/dom.cjs.map +1 -0
  75. package/dist/charts/engine/graph/dom.d.cts +23 -0
  76. package/dist/charts/engine/graph/dom.d.ts +23 -0
  77. package/dist/charts/engine/graph/dom.js +158 -0
  78. package/dist/charts/engine/graph/dom.js.map +1 -0
  79. package/dist/charts/engine/graph/force.cjs +2 -0
  80. package/dist/charts/engine/graph/force.cjs.map +1 -0
  81. package/dist/charts/engine/graph/force.d.cts +76 -0
  82. package/dist/charts/engine/graph/force.d.ts +76 -0
  83. package/dist/charts/engine/graph/force.js +423 -0
  84. package/dist/charts/engine/graph/force.js.map +1 -0
  85. package/dist/charts/engine/graph/geometry.cjs +2 -0
  86. package/dist/charts/engine/graph/geometry.cjs.map +1 -0
  87. package/dist/charts/engine/graph/geometry.d.cts +50 -0
  88. package/dist/charts/engine/graph/geometry.d.ts +50 -0
  89. package/dist/charts/engine/graph/geometry.js +197 -0
  90. package/dist/charts/engine/graph/geometry.js.map +1 -0
  91. package/dist/charts/engine/graph/index.cjs +1 -0
  92. package/dist/charts/engine/graph/index.d.cts +6 -0
  93. package/dist/charts/engine/graph/index.d.ts +6 -0
  94. package/dist/charts/engine/graph/index.js +6 -0
  95. package/dist/charts/engine/graph/labels.cjs +2 -0
  96. package/dist/charts/engine/graph/labels.cjs.map +1 -0
  97. package/dist/charts/engine/graph/labels.d.cts +12 -0
  98. package/dist/charts/engine/graph/labels.d.ts +12 -0
  99. package/dist/charts/engine/graph/labels.js +128 -0
  100. package/dist/charts/engine/graph/labels.js.map +1 -0
  101. package/dist/charts/engine/graph/model.cjs +2 -0
  102. package/dist/charts/engine/graph/model.cjs.map +1 -0
  103. package/dist/charts/engine/graph/model.d.cts +52 -0
  104. package/dist/charts/engine/graph/model.d.ts +52 -0
  105. package/dist/charts/engine/graph/model.js +108 -0
  106. package/dist/charts/engine/graph/model.js.map +1 -0
  107. package/dist/charts/engine/graph/sizing.cjs +2 -0
  108. package/dist/charts/engine/graph/sizing.cjs.map +1 -0
  109. package/dist/charts/engine/graph/sizing.d.cts +33 -0
  110. package/dist/charts/engine/graph/sizing.d.ts +33 -0
  111. package/dist/charts/engine/graph/sizing.js +60 -0
  112. package/dist/charts/engine/graph/sizing.js.map +1 -0
  113. package/dist/charts/engine/graph/tree.cjs +2 -0
  114. package/dist/charts/engine/graph/tree.cjs.map +1 -0
  115. package/dist/charts/engine/graph/tree.d.cts +30 -0
  116. package/dist/charts/engine/graph/tree.d.ts +30 -0
  117. package/dist/charts/engine/graph/tree.js +218 -0
  118. package/dist/charts/engine/graph/tree.js.map +1 -0
  119. package/dist/charts/engine/graph/types.d.cts +640 -0
  120. package/dist/charts/engine/graph/types.d.ts +640 -0
  121. package/dist/charts/engine/graph/worker.cjs +52 -0
  122. package/dist/charts/engine/graph/worker.cjs.map +1 -0
  123. package/dist/charts/engine/graph/worker.d.cts +36 -0
  124. package/dist/charts/engine/graph/worker.d.ts +36 -0
  125. package/dist/charts/engine/graph/worker.js +135 -0
  126. package/dist/charts/engine/graph/worker.js.map +1 -0
  127. package/dist/charts/engine/items.cjs +1 -1
  128. package/dist/charts/engine/items.cjs.map +1 -1
  129. package/dist/charts/engine/items.d.cts +15 -2
  130. package/dist/charts/engine/items.d.ts +15 -2
  131. package/dist/charts/engine/items.js +131 -112
  132. package/dist/charts/engine/items.js.map +1 -1
  133. package/dist/charts/engine/labels.cjs +1 -1
  134. package/dist/charts/engine/labels.cjs.map +1 -1
  135. package/dist/charts/engine/labels.d.cts +17 -0
  136. package/dist/charts/engine/labels.d.ts +17 -0
  137. package/dist/charts/engine/labels.js +28 -4
  138. package/dist/charts/engine/labels.js.map +1 -1
  139. package/dist/charts/engine/layout.cjs +1 -1
  140. package/dist/charts/engine/layout.cjs.map +1 -1
  141. package/dist/charts/engine/layout.d.cts +9 -0
  142. package/dist/charts/engine/layout.d.ts +9 -0
  143. package/dist/charts/engine/layout.js +11 -2
  144. package/dist/charts/engine/layout.js.map +1 -1
  145. package/dist/charts/engine/model.cjs +1 -1
  146. package/dist/charts/engine/model.cjs.map +1 -1
  147. package/dist/charts/engine/model.d.cts +73 -3
  148. package/dist/charts/engine/model.d.ts +73 -3
  149. package/dist/charts/engine/model.js +258 -154
  150. package/dist/charts/engine/model.js.map +1 -1
  151. package/dist/charts/engine/orderbook/field.cjs +37 -0
  152. package/dist/charts/engine/orderbook/field.cjs.map +1 -0
  153. package/dist/charts/engine/orderbook/field.d.cts +92 -0
  154. package/dist/charts/engine/orderbook/field.d.ts +92 -0
  155. package/dist/charts/engine/orderbook/field.js +297 -0
  156. package/dist/charts/engine/orderbook/field.js.map +1 -0
  157. package/dist/charts/engine/orderbook/format.cjs +1 -1
  158. package/dist/charts/engine/orderbook/format.cjs.map +1 -1
  159. package/dist/charts/engine/orderbook/format.d.cts +3 -2
  160. package/dist/charts/engine/orderbook/format.d.ts +3 -2
  161. package/dist/charts/engine/orderbook/format.js +5 -5
  162. package/dist/charts/engine/orderbook/format.js.map +1 -1
  163. package/dist/charts/engine/orderbook/heatmap.cjs +1 -1
  164. package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -1
  165. package/dist/charts/engine/orderbook/heatmap.js +566 -475
  166. package/dist/charts/engine/orderbook/heatmap.js.map +1 -1
  167. package/dist/charts/engine/orderbook/host.cjs +1 -1
  168. package/dist/charts/engine/orderbook/host.cjs.map +1 -1
  169. package/dist/charts/engine/orderbook/host.d.cts +8 -1
  170. package/dist/charts/engine/orderbook/host.d.ts +8 -1
  171. package/dist/charts/engine/orderbook/host.js +27 -5
  172. package/dist/charts/engine/orderbook/host.js.map +1 -1
  173. package/dist/charts/engine/orderbook/ladder.cjs +1 -1
  174. package/dist/charts/engine/orderbook/ladder.cjs.map +1 -1
  175. package/dist/charts/engine/orderbook/ladder.js +1 -1
  176. package/dist/charts/engine/orderbook/ladder.js.map +1 -1
  177. package/dist/charts/engine/orderbook/layout.cjs +2 -0
  178. package/dist/charts/engine/orderbook/layout.cjs.map +1 -0
  179. package/dist/charts/engine/orderbook/layout.d.cts +42 -0
  180. package/dist/charts/engine/orderbook/layout.d.ts +42 -0
  181. package/dist/charts/engine/orderbook/layout.js +76 -0
  182. package/dist/charts/engine/orderbook/layout.js.map +1 -0
  183. package/dist/charts/engine/orderbook/tape.cjs +1 -1
  184. package/dist/charts/engine/orderbook/tape.cjs.map +1 -1
  185. package/dist/charts/engine/orderbook/tape.js +4 -4
  186. package/dist/charts/engine/orderbook/tape.js.map +1 -1
  187. package/dist/charts/engine/orderbook/types.d.cts +27 -3
  188. package/dist/charts/engine/orderbook/types.d.ts +27 -3
  189. package/dist/charts/engine/overlay.cjs +1 -1
  190. package/dist/charts/engine/overlay.cjs.map +1 -1
  191. package/dist/charts/engine/overlay.d.cts +27 -0
  192. package/dist/charts/engine/overlay.d.ts +27 -0
  193. package/dist/charts/engine/overlay.js +34 -12
  194. package/dist/charts/engine/overlay.js.map +1 -1
  195. package/dist/charts/engine/presets.cjs +2 -2
  196. package/dist/charts/engine/presets.cjs.map +1 -1
  197. package/dist/charts/engine/presets.d.cts +35 -3
  198. package/dist/charts/engine/presets.d.ts +35 -3
  199. package/dist/charts/engine/presets.js +121 -101
  200. package/dist/charts/engine/presets.js.map +1 -1
  201. package/dist/charts/engine/renderers/canvas2d.cjs +1 -1
  202. package/dist/charts/engine/renderers/canvas2d.cjs.map +1 -1
  203. package/dist/charts/engine/renderers/canvas2d.js +13 -9
  204. package/dist/charts/engine/renderers/canvas2d.js.map +1 -1
  205. package/dist/charts/engine/renderers/detect.cjs +1 -1
  206. package/dist/charts/engine/renderers/detect.cjs.map +1 -1
  207. package/dist/charts/engine/renderers/detect.d.cts +2 -1
  208. package/dist/charts/engine/renderers/detect.d.ts +2 -1
  209. package/dist/charts/engine/renderers/detect.js +23 -21
  210. package/dist/charts/engine/renderers/detect.js.map +1 -1
  211. package/dist/charts/engine/renderers/follow.cjs +2 -0
  212. package/dist/charts/engine/renderers/follow.cjs.map +1 -0
  213. package/dist/charts/engine/renderers/follow.d.cts +8 -0
  214. package/dist/charts/engine/renderers/follow.d.ts +8 -0
  215. package/dist/charts/engine/renderers/follow.js +10 -0
  216. package/dist/charts/engine/renderers/follow.js.map +1 -0
  217. package/dist/charts/engine/renderers/gl-budget.cjs +2 -0
  218. package/dist/charts/engine/renderers/gl-budget.cjs.map +1 -0
  219. package/dist/charts/engine/renderers/gl-budget.d.cts +32 -0
  220. package/dist/charts/engine/renderers/gl-budget.d.ts +32 -0
  221. package/dist/charts/engine/renderers/gl-budget.js +95 -0
  222. package/dist/charts/engine/renderers/gl-budget.js.map +1 -0
  223. package/dist/charts/engine/renderers/gl.cjs +1 -1
  224. package/dist/charts/engine/renderers/gl.cjs.map +1 -1
  225. package/dist/charts/engine/renderers/gl.js +1 -1
  226. package/dist/charts/engine/renderers/gl.js.map +1 -1
  227. package/dist/charts/engine/renderers/shaders.cjs +9 -6
  228. package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
  229. package/dist/charts/engine/renderers/shaders.d.cts +1 -1
  230. package/dist/charts/engine/renderers/shaders.d.ts +1 -1
  231. package/dist/charts/engine/renderers/shaders.js +9 -6
  232. package/dist/charts/engine/renderers/shaders.js.map +1 -1
  233. package/dist/charts/engine/renderers/types.cjs.map +1 -1
  234. package/dist/charts/engine/renderers/types.d.cts +2 -0
  235. package/dist/charts/engine/renderers/types.d.ts +2 -0
  236. package/dist/charts/engine/renderers/types.js.map +1 -1
  237. package/dist/charts/engine/renderers/webgl.cjs +1 -1
  238. package/dist/charts/engine/renderers/webgl.cjs.map +1 -1
  239. package/dist/charts/engine/renderers/webgl.js +85 -64
  240. package/dist/charts/engine/renderers/webgl.js.map +1 -1
  241. package/dist/charts/engine/renderers/webgl2.cjs +1 -1
  242. package/dist/charts/engine/renderers/webgl2.cjs.map +1 -1
  243. package/dist/charts/engine/renderers/webgl2.js +72 -58
  244. package/dist/charts/engine/renderers/webgl2.js.map +1 -1
  245. package/dist/charts/engine/renderers/webgpu.cjs +1 -1
  246. package/dist/charts/engine/renderers/webgpu.cjs.map +1 -1
  247. package/dist/charts/engine/renderers/webgpu.js +1 -1
  248. package/dist/charts/engine/renderers/webgpu.js.map +1 -1
  249. package/dist/charts/engine/scene.cjs +1 -1
  250. package/dist/charts/engine/scene.cjs.map +1 -1
  251. package/dist/charts/engine/scene.d.cts +104 -4
  252. package/dist/charts/engine/scene.d.ts +104 -4
  253. package/dist/charts/engine/scene.js +412 -193
  254. package/dist/charts/engine/scene.js.map +1 -1
  255. package/dist/charts/engine/shapes/bullet.cjs +1 -1
  256. package/dist/charts/engine/shapes/bullet.cjs.map +1 -1
  257. package/dist/charts/engine/shapes/bullet.js +110 -110
  258. package/dist/charts/engine/shapes/bullet.js.map +1 -1
  259. package/dist/charts/engine/shapes/chart.cjs +1 -1
  260. package/dist/charts/engine/shapes/chart.cjs.map +1 -1
  261. package/dist/charts/engine/shapes/chart.js +4 -1
  262. package/dist/charts/engine/shapes/chart.js.map +1 -1
  263. package/dist/charts/engine/shapes/chord.cjs +2 -0
  264. package/dist/charts/engine/shapes/chord.cjs.map +1 -0
  265. package/dist/charts/engine/shapes/chord.d.cts +18 -0
  266. package/dist/charts/engine/shapes/chord.d.ts +18 -0
  267. package/dist/charts/engine/shapes/chord.js +419 -0
  268. package/dist/charts/engine/shapes/chord.js.map +1 -0
  269. package/dist/charts/engine/shapes/draw.cjs +1 -1
  270. package/dist/charts/engine/shapes/draw.cjs.map +1 -1
  271. package/dist/charts/engine/shapes/draw.d.cts +5 -1
  272. package/dist/charts/engine/shapes/draw.d.ts +5 -1
  273. package/dist/charts/engine/shapes/draw.js +47 -17
  274. package/dist/charts/engine/shapes/draw.js.map +1 -1
  275. package/dist/charts/engine/shapes/hit.cjs +1 -1
  276. package/dist/charts/engine/shapes/hit.cjs.map +1 -1
  277. package/dist/charts/engine/shapes/hit.d.cts +3 -1
  278. package/dist/charts/engine/shapes/hit.d.ts +3 -1
  279. package/dist/charts/engine/shapes/hit.js +75 -46
  280. package/dist/charts/engine/shapes/hit.js.map +1 -1
  281. package/dist/charts/engine/shapes/index.d.cts +3 -2
  282. package/dist/charts/engine/shapes/index.d.ts +3 -2
  283. package/dist/charts/engine/shapes/labels.cjs +1 -1
  284. package/dist/charts/engine/shapes/labels.cjs.map +1 -1
  285. package/dist/charts/engine/shapes/labels.js +12 -4
  286. package/dist/charts/engine/shapes/labels.js.map +1 -1
  287. package/dist/charts/engine/shapes/layout.cjs +2 -2
  288. package/dist/charts/engine/shapes/layout.cjs.map +1 -1
  289. package/dist/charts/engine/shapes/layout.d.cts +3 -1
  290. package/dist/charts/engine/shapes/layout.d.ts +3 -1
  291. package/dist/charts/engine/shapes/layout.js +106 -78
  292. package/dist/charts/engine/shapes/layout.js.map +1 -1
  293. package/dist/charts/engine/shapes/scene.cjs +1 -1
  294. package/dist/charts/engine/shapes/scene.cjs.map +1 -1
  295. package/dist/charts/engine/shapes/scene.d.cts +33 -3
  296. package/dist/charts/engine/shapes/scene.d.ts +33 -3
  297. package/dist/charts/engine/shapes/scene.js +62 -19
  298. package/dist/charts/engine/shapes/scene.js.map +1 -1
  299. package/dist/charts/engine/shapes/types.d.cts +121 -8
  300. package/dist/charts/engine/shapes/types.d.ts +121 -8
  301. package/dist/charts/engine/signature.cjs +1 -1
  302. package/dist/charts/engine/signature.cjs.map +1 -1
  303. package/dist/charts/engine/signature.js +1 -1
  304. package/dist/charts/engine/signature.js.map +1 -1
  305. package/dist/charts/engine/three-d/canvas2d.cjs +1 -1
  306. package/dist/charts/engine/three-d/canvas2d.cjs.map +1 -1
  307. package/dist/charts/engine/three-d/canvas2d.d.cts +41 -3
  308. package/dist/charts/engine/three-d/canvas2d.d.ts +41 -3
  309. package/dist/charts/engine/three-d/canvas2d.js +166 -67
  310. package/dist/charts/engine/three-d/canvas2d.js.map +1 -1
  311. package/dist/charts/engine/three-d/chart.cjs +1 -1
  312. package/dist/charts/engine/three-d/chart.cjs.map +1 -1
  313. package/dist/charts/engine/three-d/chart.js +219 -215
  314. package/dist/charts/engine/three-d/chart.js.map +1 -1
  315. package/dist/charts/engine/three-d/detect.cjs +1 -1
  316. package/dist/charts/engine/three-d/detect.cjs.map +1 -1
  317. package/dist/charts/engine/three-d/detect.d.cts +3 -2
  318. package/dist/charts/engine/three-d/detect.d.ts +3 -2
  319. package/dist/charts/engine/three-d/detect.js +22 -20
  320. package/dist/charts/engine/three-d/detect.js.map +1 -1
  321. package/dist/charts/engine/three-d/geometry.cjs +1 -1
  322. package/dist/charts/engine/three-d/geometry.cjs.map +1 -1
  323. package/dist/charts/engine/three-d/geometry.d.cts +6 -0
  324. package/dist/charts/engine/three-d/geometry.d.ts +6 -0
  325. package/dist/charts/engine/three-d/geometry.js +106 -90
  326. package/dist/charts/engine/three-d/geometry.js.map +1 -1
  327. package/dist/charts/engine/three-d/model.cjs +1 -1
  328. package/dist/charts/engine/three-d/model.cjs.map +1 -1
  329. package/dist/charts/engine/three-d/model.d.cts +2 -0
  330. package/dist/charts/engine/three-d/model.d.ts +2 -0
  331. package/dist/charts/engine/three-d/model.js +2 -0
  332. package/dist/charts/engine/three-d/model.js.map +1 -1
  333. package/dist/charts/engine/three-d/oit.cjs +109 -0
  334. package/dist/charts/engine/three-d/oit.cjs.map +1 -0
  335. package/dist/charts/engine/three-d/oit.d.cts +34 -0
  336. package/dist/charts/engine/three-d/oit.d.ts +34 -0
  337. package/dist/charts/engine/three-d/oit.js +111 -0
  338. package/dist/charts/engine/three-d/oit.js.map +1 -0
  339. package/dist/charts/engine/three-d/overlay.cjs +1 -1
  340. package/dist/charts/engine/three-d/overlay.cjs.map +1 -1
  341. package/dist/charts/engine/three-d/overlay.js +43 -36
  342. package/dist/charts/engine/three-d/overlay.js.map +1 -1
  343. package/dist/charts/engine/three-d/render-types.cjs +1 -1
  344. package/dist/charts/engine/three-d/render-types.cjs.map +1 -1
  345. package/dist/charts/engine/three-d/render-types.d.cts +37 -3
  346. package/dist/charts/engine/three-d/render-types.d.ts +37 -3
  347. package/dist/charts/engine/three-d/render-types.js +6 -10
  348. package/dist/charts/engine/three-d/render-types.js.map +1 -1
  349. package/dist/charts/engine/three-d/shaders.cjs +109 -48
  350. package/dist/charts/engine/three-d/shaders.cjs.map +1 -1
  351. package/dist/charts/engine/three-d/shaders.d.cts +12 -5
  352. package/dist/charts/engine/three-d/shaders.d.ts +12 -5
  353. package/dist/charts/engine/three-d/shaders.js +118 -55
  354. package/dist/charts/engine/three-d/shaders.js.map +1 -1
  355. package/dist/charts/engine/three-d/sort.cjs +1 -1
  356. package/dist/charts/engine/three-d/sort.cjs.map +1 -1
  357. package/dist/charts/engine/three-d/sort.d.cts +18 -5
  358. package/dist/charts/engine/three-d/sort.d.ts +18 -5
  359. package/dist/charts/engine/three-d/sort.js +129 -43
  360. package/dist/charts/engine/three-d/sort.js.map +1 -1
  361. package/dist/charts/engine/three-d/types.d.cts +36 -0
  362. package/dist/charts/engine/three-d/types.d.ts +36 -0
  363. package/dist/charts/engine/three-d/webgl.cjs +1 -1
  364. package/dist/charts/engine/three-d/webgl.cjs.map +1 -1
  365. package/dist/charts/engine/three-d/webgl.d.cts +9 -0
  366. package/dist/charts/engine/three-d/webgl.d.ts +9 -0
  367. package/dist/charts/engine/three-d/webgl.js +199 -74
  368. package/dist/charts/engine/three-d/webgl.js.map +1 -1
  369. package/dist/charts/engine/three-d/webgpu.cjs +1 -1
  370. package/dist/charts/engine/three-d/webgpu.cjs.map +1 -1
  371. package/dist/charts/engine/three-d/webgpu.js +231 -94
  372. package/dist/charts/engine/three-d/webgpu.js.map +1 -1
  373. package/dist/charts/engine/trading/chart.cjs +1 -1
  374. package/dist/charts/engine/trading/chart.cjs.map +1 -1
  375. package/dist/charts/engine/trading/chart.d.cts +10 -1
  376. package/dist/charts/engine/trading/chart.d.ts +10 -1
  377. package/dist/charts/engine/trading/chart.js +1677 -813
  378. package/dist/charts/engine/trading/chart.js.map +1 -1
  379. package/dist/charts/engine/trading/drawings.cjs +2 -1
  380. package/dist/charts/engine/trading/drawings.cjs.map +1 -1
  381. package/dist/charts/engine/trading/drawings.d.cts +53 -9
  382. package/dist/charts/engine/trading/drawings.d.ts +53 -9
  383. package/dist/charts/engine/trading/drawings.js +346 -71
  384. package/dist/charts/engine/trading/drawings.js.map +1 -1
  385. package/dist/charts/engine/trading/format.cjs +1 -1
  386. package/dist/charts/engine/trading/format.cjs.map +1 -1
  387. package/dist/charts/engine/trading/format.d.cts +19 -0
  388. package/dist/charts/engine/trading/format.d.ts +19 -0
  389. package/dist/charts/engine/trading/format.js +65 -21
  390. package/dist/charts/engine/trading/format.js.map +1 -1
  391. package/dist/charts/engine/trading/geometry.cjs +1 -1
  392. package/dist/charts/engine/trading/geometry.cjs.map +1 -1
  393. package/dist/charts/engine/trading/geometry.d.cts +16 -0
  394. package/dist/charts/engine/trading/geometry.d.ts +16 -0
  395. package/dist/charts/engine/trading/geometry.js +19 -4
  396. package/dist/charts/engine/trading/geometry.js.map +1 -1
  397. package/dist/charts/engine/trading/index.cjs +1 -1
  398. package/dist/charts/engine/trading/index.d.cts +2 -1
  399. package/dist/charts/engine/trading/index.d.ts +2 -1
  400. package/dist/charts/engine/trading/index.js +4 -3
  401. package/dist/charts/engine/trading/indicators.cjs +1 -1
  402. package/dist/charts/engine/trading/indicators.cjs.map +1 -1
  403. package/dist/charts/engine/trading/indicators.d.cts +180 -10
  404. package/dist/charts/engine/trading/indicators.d.ts +180 -10
  405. package/dist/charts/engine/trading/indicators.js +449 -173
  406. package/dist/charts/engine/trading/indicators.js.map +1 -1
  407. package/dist/charts/engine/trading/labels.cjs +1 -1
  408. package/dist/charts/engine/trading/labels.cjs.map +1 -1
  409. package/dist/charts/engine/trading/labels.js +104 -4
  410. package/dist/charts/engine/trading/labels.js.map +1 -1
  411. package/dist/charts/engine/trading/store.cjs +1 -1
  412. package/dist/charts/engine/trading/store.cjs.map +1 -1
  413. package/dist/charts/engine/trading/store.d.cts +21 -0
  414. package/dist/charts/engine/trading/store.d.ts +21 -0
  415. package/dist/charts/engine/trading/store.js +22 -1
  416. package/dist/charts/engine/trading/store.js.map +1 -1
  417. package/dist/charts/engine/trading/studies.cjs +1 -1
  418. package/dist/charts/engine/trading/studies.cjs.map +1 -1
  419. package/dist/charts/engine/trading/studies.d.cts +49 -8
  420. package/dist/charts/engine/trading/studies.d.ts +49 -8
  421. package/dist/charts/engine/trading/studies.js +352 -93
  422. package/dist/charts/engine/trading/studies.js.map +1 -1
  423. package/dist/charts/engine/trading/sync.cjs +2 -0
  424. package/dist/charts/engine/trading/sync.cjs.map +1 -0
  425. package/dist/charts/engine/trading/sync.d.cts +8 -0
  426. package/dist/charts/engine/trading/sync.d.ts +8 -0
  427. package/dist/charts/engine/trading/sync.js +25 -0
  428. package/dist/charts/engine/trading/sync.js.map +1 -0
  429. package/dist/charts/engine/trading/types.d.cts +514 -16
  430. package/dist/charts/engine/trading/types.d.ts +514 -16
  431. package/dist/charts/engine/types.d.cts +106 -11
  432. package/dist/charts/engine/types.d.ts +106 -11
  433. package/dist/charts/index.cjs +1 -1
  434. package/dist/charts/index.d.cts +3 -2
  435. package/dist/charts/index.d.ts +3 -2
  436. package/dist/charts/index.js +30 -22
  437. package/dist/charts/react/charts.cjs +1 -1
  438. package/dist/charts/react/charts.cjs.map +1 -1
  439. package/dist/charts/react/charts.js +51 -34
  440. package/dist/charts/react/charts.js.map +1 -1
  441. package/dist/charts/react/graph.cjs +2 -0
  442. package/dist/charts/react/graph.cjs.map +1 -0
  443. package/dist/charts/react/graph.d.cts +219 -0
  444. package/dist/charts/react/graph.d.ts +219 -0
  445. package/dist/charts/react/graph.js +160 -0
  446. package/dist/charts/react/graph.js.map +1 -0
  447. package/dist/charts/react/orderbook.cjs +1 -1
  448. package/dist/charts/react/orderbook.cjs.map +1 -1
  449. package/dist/charts/react/orderbook.d.cts +3 -1
  450. package/dist/charts/react/orderbook.d.ts +3 -1
  451. package/dist/charts/react/orderbook.js +1 -0
  452. package/dist/charts/react/orderbook.js.map +1 -1
  453. package/dist/charts/react/shapes.cjs +1 -1
  454. package/dist/charts/react/shapes.cjs.map +1 -1
  455. package/dist/charts/react/shapes.d.cts +88 -4
  456. package/dist/charts/react/shapes.d.ts +88 -4
  457. package/dist/charts/react/shapes.js +55 -12
  458. package/dist/charts/react/shapes.js.map +1 -1
  459. package/dist/charts/react/three-d.cjs +1 -1
  460. package/dist/charts/react/three-d.cjs.map +1 -1
  461. package/dist/charts/react/three-d.d.cts +7 -0
  462. package/dist/charts/react/three-d.d.ts +7 -0
  463. package/dist/charts/react/three-d.js +14 -13
  464. package/dist/charts/react/three-d.js.map +1 -1
  465. package/dist/charts/react/trading.cjs +1 -1
  466. package/dist/charts/react/trading.cjs.map +1 -1
  467. package/dist/charts/react/trading.d.cts +54 -2
  468. package/dist/charts/react/trading.d.ts +54 -2
  469. package/dist/charts/react/trading.js +68 -37
  470. package/dist/charts/react/trading.js.map +1 -1
  471. package/dist/charts/react/types.d.cts +11 -0
  472. package/dist/charts/react/types.d.ts +11 -0
  473. package/dist/core/contracts.cjs +1 -1
  474. package/dist/core/contracts.cjs.map +1 -1
  475. package/dist/core/contracts.js +1 -1
  476. package/dist/core/contracts.js.map +1 -1
  477. package/dist/native/charts/src/canvas.cjs +1 -1
  478. package/dist/native/charts/src/canvas.js +5 -4
  479. package/dist/native/charts/src/engine/axis.cjs +1 -1
  480. package/dist/native/charts/src/engine/axis.cjs.map +1 -1
  481. package/dist/native/charts/src/engine/axis.js +42 -19
  482. package/dist/native/charts/src/engine/axis.js.map +1 -1
  483. package/dist/native/charts/src/engine/color.cjs +1 -1
  484. package/dist/native/charts/src/engine/color.cjs.map +1 -1
  485. package/dist/native/charts/src/engine/color.js +47 -5
  486. package/dist/native/charts/src/engine/color.js.map +1 -1
  487. package/dist/native/charts/src/engine/controller.cjs +2 -2
  488. package/dist/native/charts/src/engine/controller.cjs.map +1 -1
  489. package/dist/native/charts/src/engine/controller.js +296 -251
  490. package/dist/native/charts/src/engine/controller.js.map +1 -1
  491. package/dist/native/charts/src/engine/data.cjs +1 -1
  492. package/dist/native/charts/src/engine/data.cjs.map +1 -1
  493. package/dist/native/charts/src/engine/data.js +6 -4
  494. package/dist/native/charts/src/engine/data.js.map +1 -1
  495. package/dist/native/charts/src/engine/format.cjs +1 -1
  496. package/dist/native/charts/src/engine/format.cjs.map +1 -1
  497. package/dist/native/charts/src/engine/format.js +15 -2
  498. package/dist/native/charts/src/engine/format.js.map +1 -1
  499. package/dist/native/charts/src/engine/labels.cjs +1 -1
  500. package/dist/native/charts/src/engine/labels.cjs.map +1 -1
  501. package/dist/native/charts/src/engine/labels.js +42 -5
  502. package/dist/native/charts/src/engine/labels.js.map +1 -1
  503. package/dist/native/charts/src/engine/layout.cjs +1 -1
  504. package/dist/native/charts/src/engine/layout.cjs.map +1 -1
  505. package/dist/native/charts/src/engine/layout.js +11 -2
  506. package/dist/native/charts/src/engine/layout.js.map +1 -1
  507. package/dist/native/charts/src/engine/model.cjs +1 -1
  508. package/dist/native/charts/src/engine/model.cjs.map +1 -1
  509. package/dist/native/charts/src/engine/model.js +278 -174
  510. package/dist/native/charts/src/engine/model.js.map +1 -1
  511. package/dist/native/charts/src/engine/overlay.cjs.map +1 -1
  512. package/dist/native/charts/src/engine/overlay.js.map +1 -1
  513. package/dist/native/charts/src/engine/presets.cjs +2 -2
  514. package/dist/native/charts/src/engine/presets.cjs.map +1 -1
  515. package/dist/native/charts/src/engine/presets.js +110 -90
  516. package/dist/native/charts/src/engine/presets.js.map +1 -1
  517. package/dist/native/charts/src/engine/scene.cjs +1 -1
  518. package/dist/native/charts/src/engine/scene.cjs.map +1 -1
  519. package/dist/native/charts/src/engine/scene.js +421 -202
  520. package/dist/native/charts/src/engine/scene.js.map +1 -1
  521. package/dist/native/charts/src/engine/shapes/bullet.cjs +1 -1
  522. package/dist/native/charts/src/engine/shapes/bullet.cjs.map +1 -1
  523. package/dist/native/charts/src/engine/shapes/bullet.js +110 -110
  524. package/dist/native/charts/src/engine/shapes/bullet.js.map +1 -1
  525. package/dist/native/charts/src/engine/shapes/calendar.cjs +1 -1
  526. package/dist/native/charts/src/engine/shapes/calendar.cjs.map +1 -1
  527. package/dist/native/charts/src/engine/shapes/calendar.js +21 -16
  528. package/dist/native/charts/src/engine/shapes/calendar.js.map +1 -1
  529. package/dist/native/charts/src/engine/shapes/chord.cjs +2 -0
  530. package/dist/native/charts/src/engine/shapes/chord.cjs.map +1 -0
  531. package/dist/native/charts/src/engine/shapes/chord.js +419 -0
  532. package/dist/native/charts/src/engine/shapes/chord.js.map +1 -0
  533. package/dist/native/charts/src/engine/shapes/draw.cjs +1 -1
  534. package/dist/native/charts/src/engine/shapes/draw.cjs.map +1 -1
  535. package/dist/native/charts/src/engine/shapes/draw.js +47 -17
  536. package/dist/native/charts/src/engine/shapes/draw.js.map +1 -1
  537. package/dist/native/charts/src/engine/shapes/hit.cjs +1 -1
  538. package/dist/native/charts/src/engine/shapes/hit.cjs.map +1 -1
  539. package/dist/native/charts/src/engine/shapes/hit.js +73 -44
  540. package/dist/native/charts/src/engine/shapes/hit.js.map +1 -1
  541. package/dist/native/charts/src/engine/shapes/labels.cjs +1 -1
  542. package/dist/native/charts/src/engine/shapes/labels.cjs.map +1 -1
  543. package/dist/native/charts/src/engine/shapes/labels.js +12 -4
  544. package/dist/native/charts/src/engine/shapes/labels.js.map +1 -1
  545. package/dist/native/charts/src/engine/shapes/layout.cjs +2 -2
  546. package/dist/native/charts/src/engine/shapes/layout.cjs.map +1 -1
  547. package/dist/native/charts/src/engine/shapes/layout.js +136 -94
  548. package/dist/native/charts/src/engine/shapes/layout.js.map +1 -1
  549. package/dist/native/charts/src/engine/shapes/scene.cjs +1 -1
  550. package/dist/native/charts/src/engine/shapes/scene.cjs.map +1 -1
  551. package/dist/native/charts/src/engine/shapes/scene.js +62 -19
  552. package/dist/native/charts/src/engine/shapes/scene.js.map +1 -1
  553. package/dist/native/components/Chart/ChartBase.cjs +1 -1
  554. package/dist/native/components/Chart/ChartBase.cjs.map +1 -1
  555. package/dist/native/components/Chart/ChartBase.js +127 -115
  556. package/dist/native/components/Chart/ChartBase.js.map +1 -1
  557. package/dist/native/components/Chart/charts.cjs +1 -1
  558. package/dist/native/components/Chart/charts.cjs.map +1 -1
  559. package/dist/native/components/Chart/charts.js +8 -5
  560. package/dist/native/components/Chart/charts.js.map +1 -1
  561. package/dist/native/components/Chart/scene.cjs +1 -1
  562. package/dist/native/components/Chart/scene.cjs.map +1 -1
  563. package/dist/native/components/Chart/scene.d.cts +6 -1
  564. package/dist/native/components/Chart/scene.d.ts +6 -1
  565. package/dist/native/components/Chart/scene.js +226 -108
  566. package/dist/native/components/Chart/scene.js.map +1 -1
  567. package/dist/native/components/Chart/types.d.cts +7 -1
  568. package/dist/native/components/Chart/types.d.ts +7 -1
  569. package/dist/native/components/Charts/charts.cjs +1 -1
  570. package/dist/native/components/Charts/charts.cjs.map +1 -1
  571. package/dist/native/components/Charts/charts.js +60 -43
  572. package/dist/native/components/Charts/charts.js.map +1 -1
  573. package/dist/native/components/Charts/types.d.cts +11 -0
  574. package/dist/native/components/Charts/types.d.ts +11 -0
  575. package/dist/native/components/ShapeChart/ShapeChartBase.cjs +1 -1
  576. package/dist/native/components/ShapeChart/ShapeChartBase.cjs.map +1 -1
  577. package/dist/native/components/ShapeChart/ShapeChartBase.d.cts +1 -1
  578. package/dist/native/components/ShapeChart/ShapeChartBase.d.ts +1 -1
  579. package/dist/native/components/ShapeChart/ShapeChartBase.js +97 -106
  580. package/dist/native/components/ShapeChart/ShapeChartBase.js.map +1 -1
  581. package/dist/native/components/ShapeChart/charts.cjs +1 -1
  582. package/dist/native/components/ShapeChart/charts.cjs.map +1 -1
  583. package/dist/native/components/ShapeChart/charts.d.cts +6 -1
  584. package/dist/native/components/ShapeChart/charts.d.ts +6 -1
  585. package/dist/native/components/ShapeChart/charts.js +138 -96
  586. package/dist/native/components/ShapeChart/charts.js.map +1 -1
  587. package/dist/native/components/ShapeChart/draw.cjs +1 -1
  588. package/dist/native/components/ShapeChart/draw.cjs.map +1 -1
  589. package/dist/native/components/ShapeChart/draw.d.cts +1 -1
  590. package/dist/native/components/ShapeChart/draw.d.ts +1 -1
  591. package/dist/native/components/ShapeChart/draw.js +26 -17
  592. package/dist/native/components/ShapeChart/draw.js.map +1 -1
  593. package/dist/native/components/ShapeChart/geometry.cjs +1 -1
  594. package/dist/native/components/ShapeChart/geometry.cjs.map +1 -1
  595. package/dist/native/components/ShapeChart/geometry.js +233 -70
  596. package/dist/native/components/ShapeChart/geometry.js.map +1 -1
  597. package/dist/native/components/ShapeChart/index.cjs +1 -1
  598. package/dist/native/components/ShapeChart/index.d.cts +1 -1
  599. package/dist/native/components/ShapeChart/index.d.ts +1 -1
  600. package/dist/native/components/ShapeChart/index.js +2 -2
  601. package/dist/native/components/ShapeChart/recorder.cjs +1 -1
  602. package/dist/native/components/ShapeChart/recorder.cjs.map +1 -1
  603. package/dist/native/components/ShapeChart/recorder.d.cts +10 -1
  604. package/dist/native/components/ShapeChart/recorder.d.ts +10 -1
  605. package/dist/native/components/ShapeChart/recorder.js +19 -10
  606. package/dist/native/components/ShapeChart/recorder.js.map +1 -1
  607. package/dist/native/components/ShapeChart/types.d.cts +95 -8
  608. package/dist/native/components/ShapeChart/types.d.ts +95 -8
  609. package/dist/native/index.cjs +1 -1
  610. package/dist/native/index.js +2 -2
  611. package/dist/native/source/components/Chart/ChartBase.tsx +19 -6
  612. package/dist/native/source/components/Chart/charts.tsx +10 -3
  613. package/dist/native/source/components/Chart/scene.tsx +243 -14
  614. package/dist/native/source/components/Chart/types.ts +7 -0
  615. package/dist/native/source/components/Charts/charts.tsx +37 -2
  616. package/dist/native/source/components/Charts/types.ts +11 -0
  617. package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +10 -34
  618. package/dist/native/source/components/ShapeChart/charts.tsx +91 -35
  619. package/dist/native/source/components/ShapeChart/draw.tsx +39 -8
  620. package/dist/native/source/components/ShapeChart/geometry.ts +376 -25
  621. package/dist/native/source/components/ShapeChart/index.ts +1 -0
  622. package/dist/native/source/components/ShapeChart/recorder.ts +20 -5
  623. package/dist/native/source/components/ShapeChart/types.ts +99 -6
  624. package/dist/native/source/manifest.ts +1 -0
  625. package/dist/taro/chart-a11y.d.ts +7 -0
  626. package/dist/taro/charts.d.ts +29 -6
  627. package/dist/taro/index.js +3129 -1902
  628. package/dist/taro/shape-charts.d.ts +99 -5
  629. package/dist/uni/AreaChart.vue +2 -1
  630. package/dist/uni/AreaChart.vue.d.ts +5 -1
  631. package/dist/uni/Badge.vue.d.ts +1 -1
  632. package/dist/uni/BarChart.vue +2 -1
  633. package/dist/uni/BarChart.vue.d.ts +5 -1
  634. package/dist/uni/BoxPlotChart.vue +2 -1
  635. package/dist/uni/BoxPlotChart.vue.d.ts +8 -0
  636. package/dist/uni/BubbleChart.vue +2 -1
  637. package/dist/uni/BubbleChart.vue.d.ts +4 -0
  638. package/dist/uni/BulletChart.vue.d.ts +4 -0
  639. package/dist/uni/CalendarHeatmap.vue.d.ts +2 -0
  640. package/dist/uni/CandlestickChart.vue +2 -1
  641. package/dist/uni/CandlestickChart.vue.d.ts +4 -0
  642. package/dist/uni/Chart.vue +2 -1
  643. package/dist/uni/Chart.vue.d.ts +4 -0
  644. package/dist/uni/ChordChart.vue +93 -0
  645. package/dist/uni/ChordChart.vue.d.ts +136 -0
  646. package/dist/uni/Divider.vue.d.ts +1 -1
  647. package/dist/uni/DonutChart.vue.d.ts +5 -1
  648. package/dist/uni/FunnelChart.vue.d.ts +4 -0
  649. package/dist/uni/GanttChart.vue +2 -1
  650. package/dist/uni/GanttChart.vue.d.ts +15 -0
  651. package/dist/uni/GaugeChart.vue.d.ts +5 -1
  652. package/dist/uni/HeatmapChart.vue +2 -1
  653. package/dist/uni/HeatmapChart.vue.d.ts +8 -2
  654. package/dist/uni/HistogramChart.vue +2 -1
  655. package/dist/uni/HistogramChart.vue.d.ts +4 -0
  656. package/dist/uni/HorizontalBarChart.vue +2 -1
  657. package/dist/uni/HorizontalBarChart.vue.d.ts +3 -1
  658. package/dist/uni/LineChart.vue +2 -1
  659. package/dist/uni/LineChart.vue.d.ts +4 -0
  660. package/dist/uni/MixedChart.vue +2 -1
  661. package/dist/uni/MixedChart.vue.d.ts +4 -0
  662. package/dist/uni/PieChart.vue.d.ts +5 -1
  663. package/dist/uni/QuadrantChart.vue +2 -1
  664. package/dist/uni/QuadrantChart.vue.d.ts +4 -0
  665. package/dist/uni/RadarChart.vue.d.ts +4 -0
  666. package/dist/uni/RadialBarChart.vue.d.ts +4 -0
  667. package/dist/uni/RangeAreaChart.vue +2 -1
  668. package/dist/uni/RangeAreaChart.vue.d.ts +4 -0
  669. package/dist/uni/SankeyChart.vue.d.ts +4 -0
  670. package/dist/uni/ScatterChart.vue +2 -1
  671. package/dist/uni/ScatterChart.vue.d.ts +4 -0
  672. package/dist/uni/Sparkline.vue +2 -1
  673. package/dist/uni/Sparkline.vue.d.ts +4 -0
  674. package/dist/uni/SunburstChart.vue.d.ts +4 -0
  675. package/dist/uni/ToastProvider.vue.d.ts +1 -1
  676. package/dist/uni/TreemapChart.vue.d.ts +4 -0
  677. package/dist/uni/WaterfallChart.vue +2 -1
  678. package/dist/uni/WaterfallChart.vue.d.ts +9 -0
  679. package/dist/uni/chart-a11y.d.ts +7 -0
  680. package/dist/uni/chart-a11y.js +29 -0
  681. package/dist/uni/chart-canvas.d.ts +12 -0
  682. package/dist/uni/chart-canvas.js +15 -1
  683. package/dist/uni/chart-types.d.ts +36 -5
  684. package/dist/uni/chart-types.js +31 -3
  685. package/dist/uni/charts-canvas.js +3 -2
  686. package/dist/uni/index.d.ts +2 -1
  687. package/dist/uni/index.js +1 -0
  688. package/dist/uni/manifest.d.ts +7 -0
  689. package/dist/uni/manifest.js +10 -0
  690. package/dist/uni/named-chart-options.d.ts +11 -2
  691. package/dist/uni/named-chart-options.js +21 -1
  692. package/dist/uni/shape-chart-canvas.d.ts +3 -3
  693. package/dist/uni/shape-chart-canvas.js +17 -58
  694. package/dist/uni/shape-chart-types.d.ts +53 -3
  695. package/dist/uni/shape-chart-types.js +45 -1
  696. package/dist/vue/charts-global.d.ts +48 -0
  697. package/dist/vue/charts.d.ts +18 -0
  698. package/dist/vue/charts.js +56 -0
  699. package/dist/vue/charts.js.map +1 -0
  700. package/dist/vue/components/Chart/Bar3DChart.vue.d.ts +2 -0
  701. package/dist/vue/components/Chart/BoxPlotChart.vue.d.ts +8 -0
  702. package/dist/vue/components/Chart/BoxPlotChart.vue.js.map +1 -1
  703. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js +8 -2
  704. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  705. package/dist/vue/components/Chart/ChordChart.vue.d.ts +153 -0
  706. package/dist/vue/components/Chart/ChordChart.vue.js +7 -0
  707. package/dist/vue/components/Chart/ChordChart.vue.js.map +1 -0
  708. package/dist/vue/components/Chart/ChordChart.vue_vue_type_script_setup_true_lang.js +81 -0
  709. package/dist/vue/components/Chart/ChordChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  710. package/dist/vue/components/Chart/DependencyGraph.vue.d.ts +181 -0
  711. package/dist/vue/components/Chart/DependencyGraph.vue.js +7 -0
  712. package/dist/vue/components/Chart/DependencyGraph.vue.js.map +1 -0
  713. package/dist/vue/components/Chart/DependencyGraph.vue_vue_type_script_setup_true_lang.js +65 -0
  714. package/dist/vue/components/Chart/DependencyGraph.vue_vue_type_script_setup_true_lang.js.map +1 -0
  715. package/dist/vue/components/Chart/GanttChart.vue.d.ts +19 -0
  716. package/dist/vue/components/Chart/GanttChart.vue.js.map +1 -1
  717. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js +12 -1
  718. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  719. package/dist/vue/components/Chart/GraphChart.vue.d.ts +186 -0
  720. package/dist/vue/components/Chart/GraphChart.vue.js +7 -0
  721. package/dist/vue/components/Chart/GraphChart.vue.js.map +1 -0
  722. package/dist/vue/components/Chart/GraphChart.vue_vue_type_script_setup_true_lang.js +62 -0
  723. package/dist/vue/components/Chart/GraphChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  724. package/dist/vue/components/Chart/HeatmapChart.vue.d.ts +9 -5
  725. package/dist/vue/components/Chart/HeatmapChart.vue.js.map +1 -1
  726. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js +3 -1
  727. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  728. package/dist/vue/components/Chart/Line3DChart.vue.d.ts +2 -0
  729. package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +2 -0
  730. package/dist/vue/components/Chart/Scatter3DChart.vue.d.ts +2 -0
  731. package/dist/vue/components/Chart/Surface3DChart.vue.d.ts +2 -0
  732. package/dist/vue/components/Chart/TimeAndSales.vue.d.ts +2 -0
  733. package/dist/vue/components/Chart/TradingChart.vue.d.ts +58 -1
  734. package/dist/vue/components/Chart/TradingChart.vue.js.map +1 -1
  735. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js +31 -0
  736. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  737. package/dist/vue/components/Chart/TreeChart.vue.d.ts +174 -0
  738. package/dist/vue/components/Chart/TreeChart.vue.js +7 -0
  739. package/dist/vue/components/Chart/TreeChart.vue.js.map +1 -0
  740. package/dist/vue/components/Chart/TreeChart.vue_vue_type_script_setup_true_lang.js +56 -0
  741. package/dist/vue/components/Chart/TreeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  742. package/dist/vue/components/Chart/WaterfallChart.vue.d.ts +12 -1
  743. package/dist/vue/components/Chart/WaterfallChart.vue.js.map +1 -1
  744. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js +8 -2
  745. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  746. package/dist/vue/components/Chart/graph.d.ts +156 -0
  747. package/dist/vue/components/Chart/graph.js +137 -0
  748. package/dist/vue/components/Chart/graph.js.map +1 -0
  749. package/dist/vue/components/Chart/index.d.ts +5 -1
  750. package/dist/vue/components/Chart/index.js +5 -1
  751. package/dist/vue/components/Chart/orderbook.d.ts +5 -1
  752. package/dist/vue/components/Chart/orderbook.js +2 -0
  753. package/dist/vue/components/Chart/orderbook.js.map +1 -1
  754. package/dist/vue/components/Chart/three-d.d.ts +3 -0
  755. package/dist/vue/components/Chart/three-d.js +2 -0
  756. package/dist/vue/components/Chart/three-d.js.map +1 -1
  757. package/dist/vue/components/Chart/trading.d.ts +30 -3
  758. package/dist/vue/components/Chart/trading.js +9 -0
  759. package/dist/vue/components/Chart/trading.js.map +1 -1
  760. package/dist/vue/components/Chart/types.d.ts +74 -2
  761. package/dist/vue/global.d.ts +2 -38
  762. package/dist/vue/groups/charts.js +10 -2
  763. package/dist/vue/groups/charts.js.map +1 -1
  764. package/dist/vue/index.js +6 -2
  765. package/dist/vue/internal/register.d.ts +7 -0
  766. package/dist/vue/internal/register.js +14 -0
  767. package/dist/vue/internal/register.js.map +1 -0
  768. package/dist/vue/plugin.d.ts +9 -4
  769. package/dist/vue/plugin.js +6 -11
  770. package/dist/vue/plugin.js.map +1 -1
  771. package/dist/weapp/area-chart/index.wxml +1 -1
  772. package/dist/weapp/bar-chart/index.wxml +1 -1
  773. package/dist/weapp/box-plot-chart/index.wxml +1 -1
  774. package/dist/weapp/bubble-chart/index.wxml +1 -1
  775. package/dist/weapp/candlestick-chart/index.wxml +1 -1
  776. package/dist/weapp/chart/index.wxml +1 -1
  777. package/dist/weapp/charts/canvas.js +1987 -175
  778. package/dist/weapp/charts/core.js +3 -0
  779. package/dist/weapp/chord-chart/index.js +1 -0
  780. package/dist/weapp/chord-chart/index.json +1 -0
  781. package/dist/weapp/chord-chart/index.wxml +1 -0
  782. package/dist/weapp/chord-chart/index.wxss +1 -0
  783. package/dist/weapp/controls.js +148 -57
  784. package/dist/weapp/gantt-chart/index.wxml +1 -1
  785. package/dist/weapp/heatmap-chart/index.wxml +1 -1
  786. package/dist/weapp/histogram-chart/index.wxml +1 -1
  787. package/dist/weapp/horizontal-bar-chart/index.wxml +1 -1
  788. package/dist/weapp/line-chart/index.wxml +1 -1
  789. package/dist/weapp/mixed-chart/index.wxml +1 -1
  790. package/dist/weapp/quadrant-chart/index.wxml +1 -1
  791. package/dist/weapp/range-area-chart/index.wxml +1 -1
  792. package/dist/weapp/scatter-chart/index.wxml +1 -1
  793. package/dist/weapp/sparkline/index.wxml +1 -1
  794. package/dist/weapp/types.d.ts +96 -4
  795. package/dist/weapp/waterfall-chart/index.wxml +1 -1
  796. package/dist/web-components/components/chart/charts.d.ts +4 -2
  797. package/dist/web-components/components/chart/charts.js +8 -1
  798. package/dist/web-components/components/chart/charts.js.map +1 -1
  799. package/dist/web-components/components/chart/extended.d.ts +21 -7
  800. package/dist/web-components/components/chart/extended.js +29 -9
  801. package/dist/web-components/components/chart/extended.js.map +1 -1
  802. package/dist/web-components/components/chart/shapes-extended.d.ts +37 -1
  803. package/dist/web-components/components/chart/shapes-extended.js +27 -1
  804. package/dist/web-components/components/chart/shapes-extended.js.map +1 -1
  805. package/dist/web-components/components/chart-3d/chart-3d.d.ts +1 -1
  806. package/dist/web-components/components/chart-3d/chart-3d.js.map +1 -1
  807. package/dist/web-components/components/graph/graph.d.ts +156 -0
  808. package/dist/web-components/components/graph/graph.js +150 -0
  809. package/dist/web-components/components/graph/graph.js.map +1 -0
  810. package/dist/web-components/components/trading-chart/trading-chart.d.ts +49 -2
  811. package/dist/web-components/components/trading-chart/trading-chart.js +62 -0
  812. package/dist/web-components/components/trading-chart/trading-chart.js.map +1 -1
  813. package/dist/web-components/elements/chart.d.ts +1 -1
  814. package/dist/web-components/elements/chart.js +6 -5
  815. package/dist/web-components/elements/chart.js.map +1 -1
  816. package/dist/web-components/elements/graph.d.ts +2 -0
  817. package/dist/web-components/elements/graph.js +12 -0
  818. package/dist/web-components/elements/graph.js.map +1 -0
  819. package/dist/web-components/html-custom-data.json +318 -4
  820. package/dist/web-components/types/react.d.ts +63 -4
  821. package/dist/web-components/types/solid.d.ts +55 -8
  822. package/dist/web-components/types/svelte.d.ts +55 -8
  823. package/dist/web-components/types/vue.d.ts +55 -4
  824. package/package.json +16 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry.cjs","names":["cubicPoints","length","x1","x0","y1","y0","x2","y2","x3","y3","segments","i","t","u","a","b","c","d","out","quadraticPath","cx","cy","splinePath","points","vertical","my","mx","corner","px","py","inLen","outLen","nx","ny","r","radius","ax","ay","bx","by","orthogonalPath","corners","roundCorners","last","arcPath","from","to","y","rise","loopPath","open","wide","reach","start","end","size","a0","angle","a1","x","pathLength","trimPath","total","p","pointAt","startPoint","endPoint","walked","dx","dy","l","distance","k","endDirection","boundaryDistance","box","width","ux","uy","tx","ty","height","arrowHead","w","lx","ly","rx","ry","gap","triangleArea","y13","arrowCorners","filledArrow","fill","outline","dashPath","period","dash","space","distanceToPath","best","qx","qy"],"sources":["../../../../../charts/src/engine/graph/geometry.ts"],"sourcesContent":["// Edge geometry in layout units: curves sampled into polylines, trimming at\n// the node boundaries, arrowheads and dashes. Polylines are flat\n// `[x0, y0, x1, y1, …]` arrays.\n\n/** Points of a cubic Bézier (the start point excluded) */\nexport const cubicPoints = (\n out: number[],\n x0: number,\n y0: number,\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number,\n): void => {\n const length =\n Math.hypot(x1 - x0, y1 - y0) +\n Math.hypot(x2 - x1, y2 - y1) +\n Math.hypot(x3 - x2, y3 - y2);\n const segments = Math.max(4, Math.min(28, Math.ceil(length / 10)));\n for (let i = 1; i <= segments; i++) {\n const t = i / segments;\n const u = 1 - t;\n const a = u * u * u;\n const b = 3 * u * u * t;\n const c = 3 * u * t * t;\n const d = t * t * t;\n out.push(\n a * x0 + b * x1 + c * x2 + d * x3,\n a * y0 + b * y1 + c * y2 + d * y3,\n );\n }\n};\n\n/** Points of a quadratic Bézier (the start point included) */\nexport const quadraticPath = (\n x0: number,\n y0: number,\n cx: number,\n cy: number,\n x1: number,\n y1: number,\n): number[] => {\n const out = [x0, y0];\n cubicPoints(\n out,\n x0,\n y0,\n x0 + ((cx - x0) * 2) / 3,\n y0 + ((cy - y0) * 2) / 3,\n x1 + ((cx - x1) * 2) / 3,\n y1 + ((cy - y1) * 2) / 3,\n x1,\n y1,\n );\n return out;\n};\n\n/**\n * Smooth path through waypoints whose tangents follow the flow axis\n * (vertical for top → bottom layouts): C1 at every waypoint\n */\nexport const splinePath = (\n points: readonly number[],\n vertical: boolean,\n): number[] => {\n const out = [points[0], points[1]];\n for (let i = 2; i < points.length; i += 2) {\n const x0 = points[i - 2];\n const y0 = points[i - 1];\n const x1 = points[i];\n const y1 = points[i + 1];\n if (vertical) {\n const my = (y0 + y1) / 2;\n cubicPoints(out, x0, y0, x0, my, x1, my, x1, y1);\n } else {\n const mx = (x0 + x1) / 2;\n cubicPoints(out, x0, y0, mx, y0, mx, y1, x1, y1);\n }\n }\n return out;\n};\n\n/** Rounded corner from the end of `out` through (cx, cy) towards (nx, ny) */\nconst corner = (\n out: number[],\n cx: number,\n cy: number,\n nx: number,\n ny: number,\n radius: number,\n) => {\n const px = out[out.length - 2];\n const py = out[out.length - 1];\n const inLen = Math.hypot(cx - px, cy - py);\n const outLen = Math.hypot(nx - cx, ny - cy);\n const r = Math.min(radius, inLen / 2, outLen / 2);\n if (r < 0.5) {\n out.push(cx, cy);\n return;\n }\n const ax = cx - ((cx - px) / inLen) * r;\n const ay = cy - ((cy - py) / inLen) * r;\n const bx = cx + ((nx - cx) / outLen) * r;\n const by = cy + ((ny - cy) / outLen) * r;\n out.push(ax, ay);\n // quadratic arc around the corner\n for (let i = 1; i <= 4; i++) {\n const t = i / 4;\n const u = 1 - t;\n out.push(\n u * u * ax + 2 * u * t * cx + t * t * bx,\n u * u * ay + 2 * u * t * cy + t * t * by,\n );\n }\n};\n\n/**\n * Orthogonal path through waypoints: along the flow axis to the middle,\n * across, then along the axis again, with rounded corners\n */\nexport const orthogonalPath = (\n points: readonly number[],\n vertical: boolean,\n radius: number,\n): number[] => {\n const corners: number[] = [points[0], points[1]];\n for (let i = 2; i < points.length; i += 2) {\n const x0 = points[i - 2];\n const y0 = points[i - 1];\n const x1 = points[i];\n const y1 = points[i + 1];\n if (Math.abs(vertical ? x1 - x0 : y1 - y0) > 0.5) {\n if (vertical) {\n const my = (y0 + y1) / 2;\n corners.push(x0, my, x1, my);\n } else {\n const mx = (x0 + x1) / 2;\n corners.push(mx, y0, mx, y1);\n }\n }\n corners.push(x1, y1);\n }\n return roundCorners(corners, radius);\n};\n\n/** Polyline with rounded corners */\nexport const roundCorners = (\n corners: readonly number[],\n radius: number,\n): number[] => {\n const out = [corners[0], corners[1]];\n const last = corners.length - 2;\n for (let i = 2; i < last; i += 2) {\n corner(\n out,\n corners[i],\n corners[i + 1],\n corners[i + 2],\n corners[i + 3],\n radius,\n );\n }\n if (last >= 2) out.push(corners[last], corners[last + 1]);\n return out;\n};\n\n/** Upper half circle between two points of the x axis (arc diagrams) */\nexport const arcPath = (\n ax: number,\n bx: number,\n y: number,\n rise = 1,\n): number[] => {\n const cx = (ax + bx) / 2;\n const r = Math.abs(bx - ax) / 2;\n const segments = 2 * Math.max(4, Math.min(32, Math.ceil(r / 12)));\n const out: number[] = [];\n const from = ax < bx ? Math.PI : 0;\n const to = ax < bx ? 0 : Math.PI;\n for (let i = 0; i <= segments; i++) {\n const a = from + ((to - from) * i) / segments;\n out.push(cx + r * Math.cos(a), y - r * rise * Math.sin(a));\n }\n return out;\n};\n\n/**\n * Self-loop of a node at (x, y): a teardrop leaving the boundary at\n * `start` units from the center and coming back at `end` units, centered on\n * the direction `angle`, reaching about `size` units beyond the boundary\n */\nexport const loopPath = (\n x: number,\n y: number,\n angle: number,\n start: number,\n end: number,\n size: number,\n): number[] => {\n const open = 0.42;\n const wide = 0.8;\n const reach = Math.max(start, end) + size * 2.2;\n const a0 = angle - open;\n const a1 = angle + open;\n const out = [x + Math.cos(a0) * start, y + Math.sin(a0) * start];\n cubicPoints(\n out,\n out[0],\n out[1],\n x + Math.cos(angle - wide) * reach,\n y + Math.sin(angle - wide) * reach,\n x + Math.cos(angle + wide) * reach,\n y + Math.sin(angle + wide) * reach,\n x + Math.cos(a1) * end,\n y + Math.sin(a1) * end,\n );\n return out;\n};\n\n/** Length of a polyline */\nexport const pathLength = (points: readonly number[]): number => {\n let length = 0;\n for (let i = 2; i < points.length; i += 2)\n length += Math.hypot(\n points[i] - points[i - 2],\n points[i + 1] - points[i - 1],\n );\n return length;\n};\n\n/** Removes `start` / `end` units from the ends of a polyline */\nexport const trimPath = (\n points: number[],\n start: number,\n end: number,\n): number[] => {\n const total = pathLength(points);\n if (total <= start + end + 1e-6) {\n // too short: a zero-length segment in the middle keeps the direction\n if (points.length < 4) return points;\n const t = start + end > 0 ? start / (start + end) : 0.5;\n const p = pointAt(points, t * total);\n return [p[0], p[1], p[0], p[1]];\n }\n const out: number[] = [];\n const startPoint = pointAt(points, start);\n const endPoint = pointAt(points, total - end);\n out.push(startPoint[0], startPoint[1]);\n let walked = 0;\n for (let i = 2; i < points.length; i += 2) {\n walked += Math.hypot(\n points[i] - points[i - 2],\n points[i + 1] - points[i - 1],\n );\n if (walked > start && walked < total - end)\n out.push(points[i], points[i + 1]);\n }\n out.push(endPoint[0], endPoint[1]);\n return out;\n};\n\n/** Point and direction at a distance along a polyline */\nexport const pointAt = (\n points: readonly number[],\n distance: number,\n): [number, number, number, number] => {\n let walked = 0;\n for (let i = 2; i < points.length; i += 2) {\n const dx = points[i] - points[i - 2];\n const dy = points[i + 1] - points[i - 1];\n const l = Math.hypot(dx, dy);\n if (walked + l >= distance && l > 0) {\n const t = (distance - walked) / l;\n return [points[i - 2] + dx * t, points[i - 1] + dy * t, dx / l, dy / l];\n }\n walked += l;\n }\n const k = points.length - 2;\n const dx = k >= 2 ? points[k] - points[k - 2] : 1;\n const dy = k >= 2 ? points[k + 1] - points[k - 1] : 0;\n const l = Math.hypot(dx, dy) || 1;\n return [points[k], points[k + 1], dx / l, dy / l];\n};\n\n/** Direction at the end of a polyline (unit vector) */\nexport const endDirection = (points: readonly number[]): [number, number] => {\n for (let i = points.length - 4; i >= 0; i -= 2) {\n const dx = points[points.length - 2] - points[i];\n const dy = points[points.length - 1] - points[i + 1];\n const l = Math.hypot(dx, dy);\n if (l > 1e-9) return [dx / l, dy / l];\n }\n return [1, 0];\n};\n\n/** Distance from the center of a node to its boundary in direction (ux, uy) */\nexport const boundaryDistance = (\n box: boolean,\n width: number,\n height: number,\n ux: number,\n uy: number,\n): number => {\n if (!box) return width / 2;\n const ax = Math.abs(ux);\n const ay = Math.abs(uy);\n const tx = ax > 1e-9 ? width / 2 / ax : Infinity;\n const ty = ay > 1e-9 ? height / 2 / ay : Infinity;\n return Math.min(tx, ty);\n};\n\n/**\n * Arrowhead at (tx, ty) pointing along (ux, uy): the outline of a narrow\n * triangle and its axis, drawn with the line width it looks solid\n */\nexport const arrowHead = (\n out: number[],\n tx: number,\n ty: number,\n ux: number,\n uy: number,\n length: number,\n gap: number,\n): void => {\n const w = length * 0.42;\n const bx = tx - ux * length;\n const by = ty - uy * length;\n const lx = bx - uy * w;\n const ly = by + ux * w;\n const rx = bx + uy * w;\n const ry = by - ux * w;\n out.push(lx, ly, tx, ty, rx, ry, lx, ly, gap, gap);\n out.push(tx, ty, bx, by, gap, gap);\n const mx = (lx + bx) / 2;\n const my = (ly + by) / 2;\n const nx = (rx + bx) / 2;\n const ny = (ry + by) / 2;\n out.push(tx, ty, mx, my, gap, gap, tx, ty, nx, ny, gap, gap);\n};\n\n/** Filled triangle as area points (x, top, bottom): two x-monotone pieces */\nexport const triangleArea = (\n out: number[],\n ax: number,\n ay: number,\n bx: number,\n by: number,\n cx: number,\n cy: number,\n gap: number,\n): void => {\n // sort the corners by x\n let p = [ax, ay, bx, by, cx, cy];\n if (p[0] > p[2]) p = [p[2], p[3], p[0], p[1], p[4], p[5]];\n if (p[2] > p[4]) p = [p[0], p[1], p[4], p[5], p[2], p[3]];\n if (p[0] > p[2]) p = [p[2], p[3], p[0], p[1], p[4], p[5]];\n const [x1, y1, x2, y2, x3, y3] = p;\n if (!(x3 - x1 > 1e-12)) return;\n // the long side at the middle corner; the larger y is always the top, so\n // every triangle winds the same way (overlapping ones never cancel)\n const y13 = y1 + ((y3 - y1) * (x2 - x1)) / (x3 - x1);\n out.push(\n x1,\n y1,\n y1,\n x2,\n Math.max(y2, y13),\n Math.min(y2, y13),\n x3,\n y3,\n y3,\n gap,\n gap,\n gap,\n );\n};\n\n/** Corners of a filled (\"stealth\") arrowhead: tip, left, notch, right */\nconst arrowCorners = (\n tx: number,\n ty: number,\n ux: number,\n uy: number,\n length: number,\n): number[] => {\n const w = length * 0.5;\n const bx = tx - ux * length;\n const by = ty - uy * length;\n return [\n tx,\n ty,\n bx - uy * w,\n by + ux * w,\n tx - ux * length * 0.72,\n ty - uy * length * 0.72,\n bx + uy * w,\n by - ux * w,\n ];\n};\n\n/**\n * Filled arrowhead at (tx, ty) pointing along (ux, uy): area triangles in\n * `fill`, its outline (anti-aliased edges) in `outline`\n */\nexport const filledArrow = (\n fill: number[],\n outline: number[],\n tx: number,\n ty: number,\n ux: number,\n uy: number,\n length: number,\n gap: number,\n): void => {\n const [x0, y0, lx, ly, nx, ny, rx, ry] = arrowCorners(tx, ty, ux, uy, length);\n triangleArea(fill, x0, y0, lx, ly, nx, ny, gap);\n triangleArea(fill, x0, y0, nx, ny, rx, ry, gap);\n outline.push(lx, ly, x0, y0, rx, ry, nx, ny, lx, ly, gap, gap);\n};\n\n/** Splits a polyline into dashes (`dash` / `space` in layout units) */\nexport const dashPath = (\n points: readonly number[],\n dash: number,\n space: number,\n gap: number,\n): number[] => {\n const out: number[] = [];\n const total = pathLength(points);\n const period = dash + space;\n if (period <= 0 || total <= 0) return points.slice();\n for (let start = 0; start < total; start += period) {\n const end = Math.min(total, start + dash);\n const a = pointAt(points, start);\n out.push(a[0], a[1]);\n let walked = 0;\n for (let i = 2; i < points.length; i += 2) {\n walked += Math.hypot(\n points[i] - points[i - 2],\n points[i + 1] - points[i - 1],\n );\n if (walked > start && walked < end) out.push(points[i], points[i + 1]);\n }\n const b = pointAt(points, end);\n out.push(b[0], b[1], gap, gap);\n }\n return out;\n};\n\n/** Squared distance from (px, py) to a polyline */\nexport const distanceToPath = (\n points: readonly number[],\n px: number,\n py: number,\n): number => {\n let best = Infinity;\n for (let i = 2; i < points.length; i += 2) {\n const ax = points[i - 2];\n const ay = points[i - 1];\n const dx = points[i] - ax;\n const dy = points[i + 1] - ay;\n const l = dx * dx + dy * dy;\n const t =\n l > 0\n ? Math.max(0, Math.min(1, ((px - ax) * dx + (py - ay) * dy) / l))\n : 0;\n const qx = ax + dx * t - px;\n const qy = ay + dy * t - py;\n best = Math.min(best, qx * qx + qy * qy);\n }\n return best;\n};\n"],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /** Points of a cubic Bézier (the start point excluded) */
2
+ export declare const cubicPoints: (out: number[], x0: number, y0: number, x1: number, y1: number, x2: number, y2: number, x3: number, y3: number) => void;
3
+ /** Points of a quadratic Bézier (the start point included) */
4
+ export declare const quadraticPath: (x0: number, y0: number, cx: number, cy: number, x1: number, y1: number) => number[];
5
+ /**
6
+ * Smooth path through waypoints whose tangents follow the flow axis
7
+ * (vertical for top → bottom layouts): C1 at every waypoint
8
+ */
9
+ export declare const splinePath: (points: readonly number[], vertical: boolean) => number[];
10
+ /**
11
+ * Orthogonal path through waypoints: along the flow axis to the middle,
12
+ * across, then along the axis again, with rounded corners
13
+ */
14
+ export declare const orthogonalPath: (points: readonly number[], vertical: boolean, radius: number) => number[];
15
+ /** Polyline with rounded corners */
16
+ export declare const roundCorners: (corners: readonly number[], radius: number) => number[];
17
+ /** Upper half circle between two points of the x axis (arc diagrams) */
18
+ export declare const arcPath: (ax: number, bx: number, y: number, rise?: number) => number[];
19
+ /**
20
+ * Self-loop of a node at (x, y): a teardrop leaving the boundary at
21
+ * `start` units from the center and coming back at `end` units, centered on
22
+ * the direction `angle`, reaching about `size` units beyond the boundary
23
+ */
24
+ export declare const loopPath: (x: number, y: number, angle: number, start: number, end: number, size: number) => number[];
25
+ /** Length of a polyline */
26
+ export declare const pathLength: (points: readonly number[]) => number;
27
+ /** Removes `start` / `end` units from the ends of a polyline */
28
+ export declare const trimPath: (points: number[], start: number, end: number) => number[];
29
+ /** Point and direction at a distance along a polyline */
30
+ export declare const pointAt: (points: readonly number[], distance: number) => [number, number, number, number];
31
+ /** Direction at the end of a polyline (unit vector) */
32
+ export declare const endDirection: (points: readonly number[]) => [number, number];
33
+ /** Distance from the center of a node to its boundary in direction (ux, uy) */
34
+ export declare const boundaryDistance: (box: boolean, width: number, height: number, ux: number, uy: number) => number;
35
+ /**
36
+ * Arrowhead at (tx, ty) pointing along (ux, uy): the outline of a narrow
37
+ * triangle and its axis, drawn with the line width it looks solid
38
+ */
39
+ export declare const arrowHead: (out: number[], tx: number, ty: number, ux: number, uy: number, length: number, gap: number) => void;
40
+ /** Filled triangle as area points (x, top, bottom): two x-monotone pieces */
41
+ export declare const triangleArea: (out: number[], ax: number, ay: number, bx: number, by: number, cx: number, cy: number, gap: number) => void;
42
+ /**
43
+ * Filled arrowhead at (tx, ty) pointing along (ux, uy): area triangles in
44
+ * `fill`, its outline (anti-aliased edges) in `outline`
45
+ */
46
+ export declare const filledArrow: (fill: number[], outline: number[], tx: number, ty: number, ux: number, uy: number, length: number, gap: number) => void;
47
+ /** Splits a polyline into dashes (`dash` / `space` in layout units) */
48
+ export declare const dashPath: (points: readonly number[], dash: number, space: number, gap: number) => number[];
49
+ /** Squared distance from (px, py) to a polyline */
50
+ export declare const distanceToPath: (points: readonly number[], px: number, py: number) => number;
@@ -0,0 +1,50 @@
1
+ /** Points of a cubic Bézier (the start point excluded) */
2
+ export declare const cubicPoints: (out: number[], x0: number, y0: number, x1: number, y1: number, x2: number, y2: number, x3: number, y3: number) => void;
3
+ /** Points of a quadratic Bézier (the start point included) */
4
+ export declare const quadraticPath: (x0: number, y0: number, cx: number, cy: number, x1: number, y1: number) => number[];
5
+ /**
6
+ * Smooth path through waypoints whose tangents follow the flow axis
7
+ * (vertical for top → bottom layouts): C1 at every waypoint
8
+ */
9
+ export declare const splinePath: (points: readonly number[], vertical: boolean) => number[];
10
+ /**
11
+ * Orthogonal path through waypoints: along the flow axis to the middle,
12
+ * across, then along the axis again, with rounded corners
13
+ */
14
+ export declare const orthogonalPath: (points: readonly number[], vertical: boolean, radius: number) => number[];
15
+ /** Polyline with rounded corners */
16
+ export declare const roundCorners: (corners: readonly number[], radius: number) => number[];
17
+ /** Upper half circle between two points of the x axis (arc diagrams) */
18
+ export declare const arcPath: (ax: number, bx: number, y: number, rise?: number) => number[];
19
+ /**
20
+ * Self-loop of a node at (x, y): a teardrop leaving the boundary at
21
+ * `start` units from the center and coming back at `end` units, centered on
22
+ * the direction `angle`, reaching about `size` units beyond the boundary
23
+ */
24
+ export declare const loopPath: (x: number, y: number, angle: number, start: number, end: number, size: number) => number[];
25
+ /** Length of a polyline */
26
+ export declare const pathLength: (points: readonly number[]) => number;
27
+ /** Removes `start` / `end` units from the ends of a polyline */
28
+ export declare const trimPath: (points: number[], start: number, end: number) => number[];
29
+ /** Point and direction at a distance along a polyline */
30
+ export declare const pointAt: (points: readonly number[], distance: number) => [number, number, number, number];
31
+ /** Direction at the end of a polyline (unit vector) */
32
+ export declare const endDirection: (points: readonly number[]) => [number, number];
33
+ /** Distance from the center of a node to its boundary in direction (ux, uy) */
34
+ export declare const boundaryDistance: (box: boolean, width: number, height: number, ux: number, uy: number) => number;
35
+ /**
36
+ * Arrowhead at (tx, ty) pointing along (ux, uy): the outline of a narrow
37
+ * triangle and its axis, drawn with the line width it looks solid
38
+ */
39
+ export declare const arrowHead: (out: number[], tx: number, ty: number, ux: number, uy: number, length: number, gap: number) => void;
40
+ /** Filled triangle as area points (x, top, bottom): two x-monotone pieces */
41
+ export declare const triangleArea: (out: number[], ax: number, ay: number, bx: number, by: number, cx: number, cy: number, gap: number) => void;
42
+ /**
43
+ * Filled arrowhead at (tx, ty) pointing along (ux, uy): area triangles in
44
+ * `fill`, its outline (anti-aliased edges) in `outline`
45
+ */
46
+ export declare const filledArrow: (fill: number[], outline: number[], tx: number, ty: number, ux: number, uy: number, length: number, gap: number) => void;
47
+ /** Splits a polyline into dashes (`dash` / `space` in layout units) */
48
+ export declare const dashPath: (points: readonly number[], dash: number, space: number, gap: number) => number[];
49
+ /** Squared distance from (px, py) to a polyline */
50
+ export declare const distanceToPath: (points: readonly number[], px: number, py: number) => number;
@@ -0,0 +1,197 @@
1
+ //#region src/engine/graph/geometry.ts
2
+ var e = (e, t, n, r, i, a, o, s, c) => {
3
+ let l = Math.hypot(r - t, i - n) + Math.hypot(a - r, o - i) + Math.hypot(s - a, c - o), u = Math.max(4, Math.min(28, Math.ceil(l / 10)));
4
+ for (let l = 1; l <= u; l++) {
5
+ let d = l / u, f = 1 - d, p = f * f * f, m = 3 * f * f * d, h = 3 * f * d * d, g = d * d * d;
6
+ e.push(p * t + m * r + h * a + g * s, p * n + m * i + h * o + g * c);
7
+ }
8
+ }, t = (t, n, r, i, a, o) => {
9
+ let s = [t, n];
10
+ return e(s, t, n, t + (r - t) * 2 / 3, n + (i - n) * 2 / 3, a + (r - a) * 2 / 3, o + (i - o) * 2 / 3, a, o), s;
11
+ }, n = (t, n) => {
12
+ let r = [t[0], t[1]];
13
+ for (let i = 2; i < t.length; i += 2) {
14
+ let a = t[i - 2], o = t[i - 1], s = t[i], c = t[i + 1];
15
+ if (n) {
16
+ let t = (o + c) / 2;
17
+ e(r, a, o, a, t, s, t, s, c);
18
+ } else {
19
+ let t = (a + s) / 2;
20
+ e(r, a, o, t, o, t, c, s, c);
21
+ }
22
+ }
23
+ return r;
24
+ }, r = (e, t, n, r, i, a) => {
25
+ let o = e[e.length - 2], s = e[e.length - 1], c = Math.hypot(t - o, n - s), l = Math.hypot(r - t, i - n), u = Math.min(a, c / 2, l / 2);
26
+ if (u < .5) {
27
+ e.push(t, n);
28
+ return;
29
+ }
30
+ let d = t - (t - o) / c * u, f = n - (n - s) / c * u, p = t + (r - t) / l * u, m = n + (i - n) / l * u;
31
+ e.push(d, f);
32
+ for (let r = 1; r <= 4; r++) {
33
+ let i = r / 4, a = 1 - i;
34
+ e.push(a * a * d + 2 * a * i * t + i * i * p, a * a * f + 2 * a * i * n + i * i * m);
35
+ }
36
+ }, i = (e, t, n) => {
37
+ let r = [e[0], e[1]];
38
+ for (let n = 2; n < e.length; n += 2) {
39
+ let i = e[n - 2], a = e[n - 1], o = e[n], s = e[n + 1];
40
+ if (Math.abs(t ? o - i : s - a) > .5) {
41
+ if (t) {
42
+ let e = (a + s) / 2;
43
+ r.push(i, e, o, e);
44
+ } else {
45
+ let e = (i + o) / 2;
46
+ r.push(e, a, e, s);
47
+ }
48
+ }
49
+ r.push(o, s);
50
+ }
51
+ return a(r, n);
52
+ }, a = (e, t) => {
53
+ let n = [e[0], e[1]], i = e.length - 2;
54
+ for (let a = 2; a < i; a += 2) r(n, e[a], e[a + 1], e[a + 2], e[a + 3], t);
55
+ return i >= 2 && n.push(e[i], e[i + 1]), n;
56
+ }, o = (e, t, n, r = 1) => {
57
+ let i = (e + t) / 2, a = Math.abs(t - e) / 2, o = 2 * Math.max(4, Math.min(32, Math.ceil(a / 12))), s = [], c = e < t ? Math.PI : 0, l = e < t ? 0 : Math.PI;
58
+ for (let e = 0; e <= o; e++) {
59
+ let t = c + (l - c) * e / o;
60
+ s.push(i + a * Math.cos(t), n - a * r * Math.sin(t));
61
+ }
62
+ return s;
63
+ }, s = (t, n, r, i, a, o) => {
64
+ let s = .42, c = .8, l = Math.max(i, a) + o * 2.2, u = r - s, d = r + s, f = [t + Math.cos(u) * i, n + Math.sin(u) * i];
65
+ return e(f, f[0], f[1], t + Math.cos(r - c) * l, n + Math.sin(r - c) * l, t + Math.cos(r + c) * l, n + Math.sin(r + c) * l, t + Math.cos(d) * a, n + Math.sin(d) * a), f;
66
+ }, c = (e) => {
67
+ let t = 0;
68
+ for (let n = 2; n < e.length; n += 2) t += Math.hypot(e[n] - e[n - 2], e[n + 1] - e[n - 1]);
69
+ return t;
70
+ }, l = (e, t, n) => {
71
+ let r = c(e);
72
+ if (r <= t + n + 1e-6) {
73
+ if (e.length < 4) return e;
74
+ let i = u(e, (t + n > 0 ? t / (t + n) : .5) * r);
75
+ return [
76
+ i[0],
77
+ i[1],
78
+ i[0],
79
+ i[1]
80
+ ];
81
+ }
82
+ let i = [], a = u(e, t), o = u(e, r - n);
83
+ i.push(a[0], a[1]);
84
+ let s = 0;
85
+ for (let a = 2; a < e.length; a += 2) s += Math.hypot(e[a] - e[a - 2], e[a + 1] - e[a - 1]), s > t && s < r - n && i.push(e[a], e[a + 1]);
86
+ return i.push(o[0], o[1]), i;
87
+ }, u = (e, t) => {
88
+ let n = 0;
89
+ for (let r = 2; r < e.length; r += 2) {
90
+ let i = e[r] - e[r - 2], a = e[r + 1] - e[r - 1], o = Math.hypot(i, a);
91
+ if (n + o >= t && o > 0) {
92
+ let s = (t - n) / o;
93
+ return [
94
+ e[r - 2] + i * s,
95
+ e[r - 1] + a * s,
96
+ i / o,
97
+ a / o
98
+ ];
99
+ }
100
+ n += o;
101
+ }
102
+ let r = e.length - 2, i = r >= 2 ? e[r] - e[r - 2] : 1, a = r >= 2 ? e[r + 1] - e[r - 1] : 0, o = Math.hypot(i, a) || 1;
103
+ return [
104
+ e[r],
105
+ e[r + 1],
106
+ i / o,
107
+ a / o
108
+ ];
109
+ }, d = (e) => {
110
+ for (let t = e.length - 4; t >= 0; t -= 2) {
111
+ let n = e[e.length - 2] - e[t], r = e[e.length - 1] - e[t + 1], i = Math.hypot(n, r);
112
+ if (i > 1e-9) return [n / i, r / i];
113
+ }
114
+ return [1, 0];
115
+ }, f = (e, t, n, r, i) => {
116
+ if (!e) return t / 2;
117
+ let a = Math.abs(r), o = Math.abs(i), s = a > 1e-9 ? t / 2 / a : Infinity, c = o > 1e-9 ? n / 2 / o : Infinity;
118
+ return Math.min(s, c);
119
+ }, p = (e, t, n, r, i, a, o) => {
120
+ let s = a * .42, c = t - r * a, l = n - i * a, u = c - i * s, d = l + r * s, f = c + i * s, p = l - r * s;
121
+ e.push(u, d, t, n, f, p, u, d, o, o), e.push(t, n, c, l, o, o);
122
+ let m = (u + c) / 2, h = (d + l) / 2, g = (f + c) / 2, _ = (p + l) / 2;
123
+ e.push(t, n, m, h, o, o, t, n, g, _, o, o);
124
+ }, m = (e, t, n, r, i, a, o, s) => {
125
+ let c = [
126
+ t,
127
+ n,
128
+ r,
129
+ i,
130
+ a,
131
+ o
132
+ ];
133
+ c[0] > c[2] && (c = [
134
+ c[2],
135
+ c[3],
136
+ c[0],
137
+ c[1],
138
+ c[4],
139
+ c[5]
140
+ ]), c[2] > c[4] && (c = [
141
+ c[0],
142
+ c[1],
143
+ c[4],
144
+ c[5],
145
+ c[2],
146
+ c[3]
147
+ ]), c[0] > c[2] && (c = [
148
+ c[2],
149
+ c[3],
150
+ c[0],
151
+ c[1],
152
+ c[4],
153
+ c[5]
154
+ ]);
155
+ let [l, u, d, f, p, m] = c;
156
+ if (!(p - l > 1e-12)) return;
157
+ let h = u + (m - u) * (d - l) / (p - l);
158
+ e.push(l, u, u, d, Math.max(f, h), Math.min(f, h), p, m, m, s, s, s);
159
+ }, h = (e, t, n, r, i) => {
160
+ let a = i * .5, o = e - n * i, s = t - r * i;
161
+ return [
162
+ e,
163
+ t,
164
+ o - r * a,
165
+ s + n * a,
166
+ e - n * i * .72,
167
+ t - r * i * .72,
168
+ o + r * a,
169
+ s - n * a
170
+ ];
171
+ }, g = (e, t, n, r, i, a, o, s) => {
172
+ let [c, l, u, d, f, p, g, _] = h(n, r, i, a, o);
173
+ m(e, c, l, u, d, f, p, s), m(e, c, l, f, p, g, _, s), t.push(u, d, c, l, g, _, f, p, u, d, s, s);
174
+ }, _ = (e, t, n, r) => {
175
+ let i = [], a = c(e), o = t + n;
176
+ if (o <= 0 || a <= 0) return e.slice();
177
+ for (let n = 0; n < a; n += o) {
178
+ let o = Math.min(a, n + t), s = u(e, n);
179
+ i.push(s[0], s[1]);
180
+ let c = 0;
181
+ for (let t = 2; t < e.length; t += 2) c += Math.hypot(e[t] - e[t - 2], e[t + 1] - e[t - 1]), c > n && c < o && i.push(e[t], e[t + 1]);
182
+ let l = u(e, o);
183
+ i.push(l[0], l[1], r, r);
184
+ }
185
+ return i;
186
+ }, v = (e, t, n) => {
187
+ let r = Infinity;
188
+ for (let i = 2; i < e.length; i += 2) {
189
+ let a = e[i - 2], o = e[i - 1], s = e[i] - a, c = e[i + 1] - o, l = s * s + c * c, u = l > 0 ? Math.max(0, Math.min(1, ((t - a) * s + (n - o) * c) / l)) : 0, d = a + s * u - t, f = o + c * u - n;
190
+ r = Math.min(r, d * d + f * f);
191
+ }
192
+ return r;
193
+ };
194
+ //#endregion
195
+ export { o as arcPath, p as arrowHead, f as boundaryDistance, e as cubicPoints, _ as dashPath, v as distanceToPath, d as endDirection, g as filledArrow, s as loopPath, i as orthogonalPath, c as pathLength, u as pointAt, t as quadraticPath, a as roundCorners, n as splinePath, m as triangleArea, l as trimPath };
196
+
197
+ //# sourceMappingURL=geometry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry.js","names":["cubicPoints","length","x1","x0","y1","y0","x2","y2","x3","y3","segments","i","t","u","a","b","c","d","quadraticPath","out","cx","cy","splinePath","points","vertical","my","mx","corner","px","py","inLen","outLen","nx","ny","r","radius","ax","ay","bx","by","orthogonalPath","corners","roundCorners","last","arcPath","from","to","y","rise","loopPath","open","wide","reach","start","end","size","a0","angle","a1","x","pathLength","trimPath","total","p","pointAt","startPoint","endPoint","walked","dx","dy","l","distance","k","endDirection","boundaryDistance","box","width","ux","uy","tx","ty","height","arrowHead","w","lx","ly","rx","ry","gap","triangleArea","y13","arrowCorners","filledArrow","fill","outline","dashPath","period","dash","space","distanceToPath","best","qx","qy"],"sources":["../../../../../charts/src/engine/graph/geometry.ts"],"sourcesContent":["// Edge geometry in layout units: curves sampled into polylines, trimming at\n// the node boundaries, arrowheads and dashes. Polylines are flat\n// `[x0, y0, x1, y1, …]` arrays.\n\n/** Points of a cubic Bézier (the start point excluded) */\nexport const cubicPoints = (\n out: number[],\n x0: number,\n y0: number,\n x1: number,\n y1: number,\n x2: number,\n y2: number,\n x3: number,\n y3: number,\n): void => {\n const length =\n Math.hypot(x1 - x0, y1 - y0) +\n Math.hypot(x2 - x1, y2 - y1) +\n Math.hypot(x3 - x2, y3 - y2);\n const segments = Math.max(4, Math.min(28, Math.ceil(length / 10)));\n for (let i = 1; i <= segments; i++) {\n const t = i / segments;\n const u = 1 - t;\n const a = u * u * u;\n const b = 3 * u * u * t;\n const c = 3 * u * t * t;\n const d = t * t * t;\n out.push(\n a * x0 + b * x1 + c * x2 + d * x3,\n a * y0 + b * y1 + c * y2 + d * y3,\n );\n }\n};\n\n/** Points of a quadratic Bézier (the start point included) */\nexport const quadraticPath = (\n x0: number,\n y0: number,\n cx: number,\n cy: number,\n x1: number,\n y1: number,\n): number[] => {\n const out = [x0, y0];\n cubicPoints(\n out,\n x0,\n y0,\n x0 + ((cx - x0) * 2) / 3,\n y0 + ((cy - y0) * 2) / 3,\n x1 + ((cx - x1) * 2) / 3,\n y1 + ((cy - y1) * 2) / 3,\n x1,\n y1,\n );\n return out;\n};\n\n/**\n * Smooth path through waypoints whose tangents follow the flow axis\n * (vertical for top → bottom layouts): C1 at every waypoint\n */\nexport const splinePath = (\n points: readonly number[],\n vertical: boolean,\n): number[] => {\n const out = [points[0], points[1]];\n for (let i = 2; i < points.length; i += 2) {\n const x0 = points[i - 2];\n const y0 = points[i - 1];\n const x1 = points[i];\n const y1 = points[i + 1];\n if (vertical) {\n const my = (y0 + y1) / 2;\n cubicPoints(out, x0, y0, x0, my, x1, my, x1, y1);\n } else {\n const mx = (x0 + x1) / 2;\n cubicPoints(out, x0, y0, mx, y0, mx, y1, x1, y1);\n }\n }\n return out;\n};\n\n/** Rounded corner from the end of `out` through (cx, cy) towards (nx, ny) */\nconst corner = (\n out: number[],\n cx: number,\n cy: number,\n nx: number,\n ny: number,\n radius: number,\n) => {\n const px = out[out.length - 2];\n const py = out[out.length - 1];\n const inLen = Math.hypot(cx - px, cy - py);\n const outLen = Math.hypot(nx - cx, ny - cy);\n const r = Math.min(radius, inLen / 2, outLen / 2);\n if (r < 0.5) {\n out.push(cx, cy);\n return;\n }\n const ax = cx - ((cx - px) / inLen) * r;\n const ay = cy - ((cy - py) / inLen) * r;\n const bx = cx + ((nx - cx) / outLen) * r;\n const by = cy + ((ny - cy) / outLen) * r;\n out.push(ax, ay);\n // quadratic arc around the corner\n for (let i = 1; i <= 4; i++) {\n const t = i / 4;\n const u = 1 - t;\n out.push(\n u * u * ax + 2 * u * t * cx + t * t * bx,\n u * u * ay + 2 * u * t * cy + t * t * by,\n );\n }\n};\n\n/**\n * Orthogonal path through waypoints: along the flow axis to the middle,\n * across, then along the axis again, with rounded corners\n */\nexport const orthogonalPath = (\n points: readonly number[],\n vertical: boolean,\n radius: number,\n): number[] => {\n const corners: number[] = [points[0], points[1]];\n for (let i = 2; i < points.length; i += 2) {\n const x0 = points[i - 2];\n const y0 = points[i - 1];\n const x1 = points[i];\n const y1 = points[i + 1];\n if (Math.abs(vertical ? x1 - x0 : y1 - y0) > 0.5) {\n if (vertical) {\n const my = (y0 + y1) / 2;\n corners.push(x0, my, x1, my);\n } else {\n const mx = (x0 + x1) / 2;\n corners.push(mx, y0, mx, y1);\n }\n }\n corners.push(x1, y1);\n }\n return roundCorners(corners, radius);\n};\n\n/** Polyline with rounded corners */\nexport const roundCorners = (\n corners: readonly number[],\n radius: number,\n): number[] => {\n const out = [corners[0], corners[1]];\n const last = corners.length - 2;\n for (let i = 2; i < last; i += 2) {\n corner(\n out,\n corners[i],\n corners[i + 1],\n corners[i + 2],\n corners[i + 3],\n radius,\n );\n }\n if (last >= 2) out.push(corners[last], corners[last + 1]);\n return out;\n};\n\n/** Upper half circle between two points of the x axis (arc diagrams) */\nexport const arcPath = (\n ax: number,\n bx: number,\n y: number,\n rise = 1,\n): number[] => {\n const cx = (ax + bx) / 2;\n const r = Math.abs(bx - ax) / 2;\n const segments = 2 * Math.max(4, Math.min(32, Math.ceil(r / 12)));\n const out: number[] = [];\n const from = ax < bx ? Math.PI : 0;\n const to = ax < bx ? 0 : Math.PI;\n for (let i = 0; i <= segments; i++) {\n const a = from + ((to - from) * i) / segments;\n out.push(cx + r * Math.cos(a), y - r * rise * Math.sin(a));\n }\n return out;\n};\n\n/**\n * Self-loop of a node at (x, y): a teardrop leaving the boundary at\n * `start` units from the center and coming back at `end` units, centered on\n * the direction `angle`, reaching about `size` units beyond the boundary\n */\nexport const loopPath = (\n x: number,\n y: number,\n angle: number,\n start: number,\n end: number,\n size: number,\n): number[] => {\n const open = 0.42;\n const wide = 0.8;\n const reach = Math.max(start, end) + size * 2.2;\n const a0 = angle - open;\n const a1 = angle + open;\n const out = [x + Math.cos(a0) * start, y + Math.sin(a0) * start];\n cubicPoints(\n out,\n out[0],\n out[1],\n x + Math.cos(angle - wide) * reach,\n y + Math.sin(angle - wide) * reach,\n x + Math.cos(angle + wide) * reach,\n y + Math.sin(angle + wide) * reach,\n x + Math.cos(a1) * end,\n y + Math.sin(a1) * end,\n );\n return out;\n};\n\n/** Length of a polyline */\nexport const pathLength = (points: readonly number[]): number => {\n let length = 0;\n for (let i = 2; i < points.length; i += 2)\n length += Math.hypot(\n points[i] - points[i - 2],\n points[i + 1] - points[i - 1],\n );\n return length;\n};\n\n/** Removes `start` / `end` units from the ends of a polyline */\nexport const trimPath = (\n points: number[],\n start: number,\n end: number,\n): number[] => {\n const total = pathLength(points);\n if (total <= start + end + 1e-6) {\n // too short: a zero-length segment in the middle keeps the direction\n if (points.length < 4) return points;\n const t = start + end > 0 ? start / (start + end) : 0.5;\n const p = pointAt(points, t * total);\n return [p[0], p[1], p[0], p[1]];\n }\n const out: number[] = [];\n const startPoint = pointAt(points, start);\n const endPoint = pointAt(points, total - end);\n out.push(startPoint[0], startPoint[1]);\n let walked = 0;\n for (let i = 2; i < points.length; i += 2) {\n walked += Math.hypot(\n points[i] - points[i - 2],\n points[i + 1] - points[i - 1],\n );\n if (walked > start && walked < total - end)\n out.push(points[i], points[i + 1]);\n }\n out.push(endPoint[0], endPoint[1]);\n return out;\n};\n\n/** Point and direction at a distance along a polyline */\nexport const pointAt = (\n points: readonly number[],\n distance: number,\n): [number, number, number, number] => {\n let walked = 0;\n for (let i = 2; i < points.length; i += 2) {\n const dx = points[i] - points[i - 2];\n const dy = points[i + 1] - points[i - 1];\n const l = Math.hypot(dx, dy);\n if (walked + l >= distance && l > 0) {\n const t = (distance - walked) / l;\n return [points[i - 2] + dx * t, points[i - 1] + dy * t, dx / l, dy / l];\n }\n walked += l;\n }\n const k = points.length - 2;\n const dx = k >= 2 ? points[k] - points[k - 2] : 1;\n const dy = k >= 2 ? points[k + 1] - points[k - 1] : 0;\n const l = Math.hypot(dx, dy) || 1;\n return [points[k], points[k + 1], dx / l, dy / l];\n};\n\n/** Direction at the end of a polyline (unit vector) */\nexport const endDirection = (points: readonly number[]): [number, number] => {\n for (let i = points.length - 4; i >= 0; i -= 2) {\n const dx = points[points.length - 2] - points[i];\n const dy = points[points.length - 1] - points[i + 1];\n const l = Math.hypot(dx, dy);\n if (l > 1e-9) return [dx / l, dy / l];\n }\n return [1, 0];\n};\n\n/** Distance from the center of a node to its boundary in direction (ux, uy) */\nexport const boundaryDistance = (\n box: boolean,\n width: number,\n height: number,\n ux: number,\n uy: number,\n): number => {\n if (!box) return width / 2;\n const ax = Math.abs(ux);\n const ay = Math.abs(uy);\n const tx = ax > 1e-9 ? width / 2 / ax : Infinity;\n const ty = ay > 1e-9 ? height / 2 / ay : Infinity;\n return Math.min(tx, ty);\n};\n\n/**\n * Arrowhead at (tx, ty) pointing along (ux, uy): the outline of a narrow\n * triangle and its axis, drawn with the line width it looks solid\n */\nexport const arrowHead = (\n out: number[],\n tx: number,\n ty: number,\n ux: number,\n uy: number,\n length: number,\n gap: number,\n): void => {\n const w = length * 0.42;\n const bx = tx - ux * length;\n const by = ty - uy * length;\n const lx = bx - uy * w;\n const ly = by + ux * w;\n const rx = bx + uy * w;\n const ry = by - ux * w;\n out.push(lx, ly, tx, ty, rx, ry, lx, ly, gap, gap);\n out.push(tx, ty, bx, by, gap, gap);\n const mx = (lx + bx) / 2;\n const my = (ly + by) / 2;\n const nx = (rx + bx) / 2;\n const ny = (ry + by) / 2;\n out.push(tx, ty, mx, my, gap, gap, tx, ty, nx, ny, gap, gap);\n};\n\n/** Filled triangle as area points (x, top, bottom): two x-monotone pieces */\nexport const triangleArea = (\n out: number[],\n ax: number,\n ay: number,\n bx: number,\n by: number,\n cx: number,\n cy: number,\n gap: number,\n): void => {\n // sort the corners by x\n let p = [ax, ay, bx, by, cx, cy];\n if (p[0] > p[2]) p = [p[2], p[3], p[0], p[1], p[4], p[5]];\n if (p[2] > p[4]) p = [p[0], p[1], p[4], p[5], p[2], p[3]];\n if (p[0] > p[2]) p = [p[2], p[3], p[0], p[1], p[4], p[5]];\n const [x1, y1, x2, y2, x3, y3] = p;\n if (!(x3 - x1 > 1e-12)) return;\n // the long side at the middle corner; the larger y is always the top, so\n // every triangle winds the same way (overlapping ones never cancel)\n const y13 = y1 + ((y3 - y1) * (x2 - x1)) / (x3 - x1);\n out.push(\n x1,\n y1,\n y1,\n x2,\n Math.max(y2, y13),\n Math.min(y2, y13),\n x3,\n y3,\n y3,\n gap,\n gap,\n gap,\n );\n};\n\n/** Corners of a filled (\"stealth\") arrowhead: tip, left, notch, right */\nconst arrowCorners = (\n tx: number,\n ty: number,\n ux: number,\n uy: number,\n length: number,\n): number[] => {\n const w = length * 0.5;\n const bx = tx - ux * length;\n const by = ty - uy * length;\n return [\n tx,\n ty,\n bx - uy * w,\n by + ux * w,\n tx - ux * length * 0.72,\n ty - uy * length * 0.72,\n bx + uy * w,\n by - ux * w,\n ];\n};\n\n/**\n * Filled arrowhead at (tx, ty) pointing along (ux, uy): area triangles in\n * `fill`, its outline (anti-aliased edges) in `outline`\n */\nexport const filledArrow = (\n fill: number[],\n outline: number[],\n tx: number,\n ty: number,\n ux: number,\n uy: number,\n length: number,\n gap: number,\n): void => {\n const [x0, y0, lx, ly, nx, ny, rx, ry] = arrowCorners(tx, ty, ux, uy, length);\n triangleArea(fill, x0, y0, lx, ly, nx, ny, gap);\n triangleArea(fill, x0, y0, nx, ny, rx, ry, gap);\n outline.push(lx, ly, x0, y0, rx, ry, nx, ny, lx, ly, gap, gap);\n};\n\n/** Splits a polyline into dashes (`dash` / `space` in layout units) */\nexport const dashPath = (\n points: readonly number[],\n dash: number,\n space: number,\n gap: number,\n): number[] => {\n const out: number[] = [];\n const total = pathLength(points);\n const period = dash + space;\n if (period <= 0 || total <= 0) return points.slice();\n for (let start = 0; start < total; start += period) {\n const end = Math.min(total, start + dash);\n const a = pointAt(points, start);\n out.push(a[0], a[1]);\n let walked = 0;\n for (let i = 2; i < points.length; i += 2) {\n walked += Math.hypot(\n points[i] - points[i - 2],\n points[i + 1] - points[i - 1],\n );\n if (walked > start && walked < end) out.push(points[i], points[i + 1]);\n }\n const b = pointAt(points, end);\n out.push(b[0], b[1], gap, gap);\n }\n return out;\n};\n\n/** Squared distance from (px, py) to a polyline */\nexport const distanceToPath = (\n points: readonly number[],\n px: number,\n py: number,\n): number => {\n let best = Infinity;\n for (let i = 2; i < points.length; i += 2) {\n const ax = points[i - 2];\n const ay = points[i - 1];\n const dx = points[i] - ax;\n const dy = points[i + 1] - ay;\n const l = dx * dx + dy * dy;\n const t =\n l > 0\n ? Math.max(0, Math.min(1, ((px - ax) * dx + (py - ay) * dy) / l))\n : 0;\n const qx = ax + dx * t - px;\n const qy = ay + dy * t - py;\n best = Math.min(best, qx * qx + qy * qy);\n }\n return best;\n};\n"],"mappings":";AAKA,IAAaA,KACX,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,MACS;CACT,IAAMC,IACJ,KAAK,MAAMC,IAAKC,GAAIC,IAAKC,CAAE,IAC3B,KAAK,MAAMC,IAAKJ,GAAIK,IAAKH,CAAE,IAC3B,KAAK,MAAMI,IAAKF,GAAIG,IAAKF,CAAE,GACvBG,IAAW,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,KAAKT,IAAS,EAAE,CAAC,CAAC;CACjE,KAAK,IAAIU,IAAI,GAAGA,KAAKD,GAAU,KAAK;EAClC,IAAME,IAAID,IAAID,GACRG,IAAI,IAAID,GACRE,IAAID,IAAIA,IAAIA,GACZE,IAAI,IAAIF,IAAIA,IAAID,GAChBI,IAAI,IAAIH,IAAID,IAAIA,GAChBK,IAAIL,IAAIA,IAAIA;EAClB,EAAI,KACFE,IAAIX,IAAKY,IAAIb,IAAKc,IAAIV,IAAKW,IAAIT,GAC/BM,IAAIT,IAAKU,IAAIX,IAAKY,IAAIT,IAAKU,IAAIR,CACjC;CACF;AACF,GAGaS,KACX,GACA,GACA,GACA,GACA,GACA,MACa;CACb,IAAMC,IAAM,CAAChB,GAAIE,CAAE;CAYnB,OAXAL,EACEmB,GACAhB,GACAE,GACAF,KAAOiB,IAAKjB,KAAM,IAAK,GACvBE,KAAOgB,IAAKhB,KAAM,IAAK,GACvBH,KAAOkB,IAAKlB,KAAM,IAAK,GACvBE,KAAOiB,IAAKjB,KAAM,IAAK,GACvBF,GACAE,CACF,GACOe;AACT,GAMaG,KACX,GACA,MACa;CACb,IAAMH,IAAM,CAACI,EAAO,IAAIA,EAAO,EAAE;CACjC,KAAK,IAAI,IAAI,GAAG,IAAIA,EAAO,QAAQ,KAAK,GAAG;EACzC,IAAMpB,IAAKoB,EAAO,IAAI,IAChBlB,IAAKkB,EAAO,IAAI,IAChBrB,IAAKqB,EAAO,IACZnB,IAAKmB,EAAO,IAAI;EACtB,IAAIC,GAAU;GACZ,IAAMC,KAAMpB,IAAKD,KAAM;GACvB,EAAYe,GAAKhB,GAAIE,GAAIF,GAAIsB,GAAIvB,GAAIuB,GAAIvB,GAAIE,CAAE;EACjD,OAAO;GACL,IAAMsB,KAAMvB,IAAKD,KAAM;GACvB,EAAYiB,GAAKhB,GAAIE,GAAIqB,GAAIrB,GAAIqB,GAAItB,GAAIF,GAAIE,CAAE;EACjD;CACF;CACA,OAAOe;AACT,GAGMQ,KACJ,GACA,GACA,GACA,GACA,GACA,MACG;CACH,IAAMC,IAAKT,EAAIA,EAAI,SAAS,IACtBU,IAAKV,EAAIA,EAAI,SAAS,IACtBW,IAAQ,KAAK,MAAMV,IAAKQ,GAAIP,IAAKQ,CAAE,GACnCE,IAAS,KAAK,MAAMC,IAAKZ,GAAIa,IAAKZ,CAAE,GACpCa,IAAI,KAAK,IAAIC,GAAQL,IAAQ,GAAGC,IAAS,CAAC;CAChD,IAAIG,IAAI,IAAK;EACX,EAAI,KAAKd,GAAIC,CAAE;EACf;CACF;CACA,IAAMe,IAAKhB,KAAOA,IAAKQ,KAAME,IAASI,GAChCG,IAAKhB,KAAOA,IAAKQ,KAAMC,IAASI,GAChCI,IAAKlB,KAAOY,IAAKZ,KAAMW,IAAUG,GACjCK,IAAKlB,KAAOY,IAAKZ,KAAMU,IAAUG;CACvC,EAAI,KAAKE,GAAIC,CAAE;CAEf,KAAK,IAAI1B,IAAI,GAAGA,KAAK,GAAG,KAAK;EAC3B,IAAMC,IAAID,IAAI,GACRE,IAAI,IAAID;EACd,EAAI,KACFC,IAAIA,IAAIuB,IAAK,IAAIvB,IAAID,IAAIQ,IAAKR,IAAIA,IAAI0B,GACtCzB,IAAIA,IAAIwB,IAAK,IAAIxB,IAAID,IAAIS,IAAKT,IAAIA,IAAI2B,CACxC;CACF;AACF,GAMaC,KACX,GACA,GACA,MACa;CACb,IAAMC,IAAoB,CAAClB,EAAO,IAAIA,EAAO,EAAE;CAC/C,KAAK,IAAIZ,IAAI,GAAGA,IAAIY,EAAO,QAAQ,KAAK,GAAG;EACzC,IAAMpB,IAAKoB,EAAOZ,IAAI,IAChBN,IAAKkB,EAAOZ,IAAI,IAChBT,IAAKqB,EAAOZ,IACZP,IAAKmB,EAAOZ,IAAI;EACtB,IAAI,KAAK,IAAIa,IAAWtB,IAAKC,IAAKC,IAAKC,CAAE,IAAI,IAAK;GAChD,IAAImB,GAAU;IACZ,IAAMC,KAAMpB,IAAKD,KAAM;IACvB,EAAQ,KAAKD,GAAIsB,GAAIvB,GAAIuB,CAAE;GAC7B,OAAO;IACL,IAAMC,KAAMvB,IAAKD,KAAM;IACvB,EAAQ,KAAKwB,GAAIrB,GAAIqB,GAAItB,CAAE;GAC7B;EACF;EACA,EAAQ,KAAKF,GAAIE,CAAE;CACrB;CACA,OAAOsC,EAAaD,GAASN,CAAM;AACrC,GAGaO,KACX,GACA,MACa;CACb,IAAMvB,IAAM,CAACsB,EAAQ,IAAIA,EAAQ,EAAE,GAC7BE,IAAOF,EAAQ,SAAS;CAC9B,KAAK,IAAI9B,IAAI,GAAGA,IAAIgC,GAAM,KAAK,GAC7B,EACExB,GACAsB,EAAQ9B,IACR8B,EAAQ9B,IAAI,IACZ8B,EAAQ9B,IAAI,IACZ8B,EAAQ9B,IAAI,IACZwB,CACF;CAGF,OADIQ,KAAQ,KAAGxB,EAAI,KAAKsB,EAAQE,IAAOF,EAAQE,IAAO,EAAE,GACjDxB;AACT,GAGayB,KACX,GACA,GACA,GACA,IAAO,MACM;CACb,IAAMxB,KAAMgB,IAAKE,KAAM,GACjBJ,IAAI,KAAK,IAAII,IAAKF,CAAE,IAAI,GACxB1B,IAAW,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,KAAKwB,IAAI,EAAE,CAAC,CAAC,GAC1Df,IAAgB,CAAC,GACjB0B,IAAOT,IAAKE,IAAK,KAAK,KAAK,GAC3BQ,IAAKV,IAAKE,IAAK,IAAI,KAAK;CAC9B,KAAK,IAAI3B,IAAI,GAAGA,KAAKD,GAAU,KAAK;EAClC,IAAMI,IAAI+B,KAASC,IAAKD,KAAQlC,IAAKD;EACrC,EAAI,KAAKU,IAAKc,IAAI,KAAK,IAAIpB,CAAC,GAAGiC,IAAIb,IAAIc,IAAO,KAAK,IAAIlC,CAAC,CAAC;CAC3D;CACA,OAAOK;AACT,GAOa8B,KACX,GACA,GACA,GACA,GACA,GACA,MACa;CACb,IAAMC,IAAO,KACPC,IAAO,IACPC,IAAQ,KAAK,IAAIC,GAAOC,CAAG,IAAIC,IAAO,KACtCC,IAAKC,IAAQP,GACbQ,IAAKD,IAAQP,GACb/B,IAAM,CAACwC,IAAI,KAAK,IAAIH,CAAE,IAAIH,GAAON,IAAI,KAAK,IAAIS,CAAE,IAAIH,CAAK;CAY/D,OAXArD,EACEmB,GACAA,EAAI,IACJA,EAAI,IACJwC,IAAI,KAAK,IAAIF,IAAQN,CAAI,IAAIC,GAC7BL,IAAI,KAAK,IAAIU,IAAQN,CAAI,IAAIC,GAC7BO,IAAI,KAAK,IAAIF,IAAQN,CAAI,IAAIC,GAC7BL,IAAI,KAAK,IAAIU,IAAQN,CAAI,IAAIC,GAC7BO,IAAI,KAAK,IAAID,CAAE,IAAIJ,GACnBP,IAAI,KAAK,IAAIW,CAAE,IAAIJ,CACrB,GACOnC;AACT,GAGayC,KAAc,MAAsC;CAC/D,IAAI3D,IAAS;CACb,KAAK,IAAIU,IAAI,GAAGA,IAAIY,EAAO,QAAQ,KAAK,GACtC,KAAU,KAAK,MACbA,EAAOZ,KAAKY,EAAOZ,IAAI,IACvBY,EAAOZ,IAAI,KAAKY,EAAOZ,IAAI,EAC7B;CACF,OAAOV;AACT,GAGa4D,KACX,GACA,GACA,MACa;CACb,IAAMC,IAAQF,EAAWrC,CAAM;CAC/B,IAAIuC,KAAST,IAAQC,IAAM,MAAM;EAE/B,IAAI/B,EAAO,SAAS,GAAG,OAAOA;EAE9B,IAAMwC,IAAIC,EAAQzC,IADR8B,IAAQC,IAAM,IAAID,KAASA,IAAQC,KAAO,MACtBQ,CAAK;EACnC,OAAO;GAACC,EAAE;GAAIA,EAAE;GAAIA,EAAE;GAAIA,EAAE;EAAE;CAChC;CACA,IAAM5C,IAAgB,CAAC,GACjB8C,IAAaD,EAAQzC,GAAQ8B,CAAK,GAClCa,IAAWF,EAAQzC,GAAQuC,IAAQR,CAAG;CAC5C,EAAI,KAAKW,EAAW,IAAIA,EAAW,EAAE;CACrC,IAAIE,IAAS;CACb,KAAK,IAAIxD,IAAI,GAAGA,IAAIY,EAAO,QAAQ,KAAK,GAKtC,AAJA,KAAU,KAAK,MACbA,EAAOZ,KAAKY,EAAOZ,IAAI,IACvBY,EAAOZ,IAAI,KAAKY,EAAOZ,IAAI,EAC7B,GACIwD,IAASd,KAASc,IAASL,IAAQR,KACrCnC,EAAI,KAAKI,EAAOZ,IAAIY,EAAOZ,IAAI,EAAE;CAGrC,OADAQ,EAAI,KAAK+C,EAAS,IAAIA,EAAS,EAAE,GAC1B/C;AACT,GAGa6C,KACX,GACA,MACqC;CACrC,IAAIG,IAAS;CACb,KAAK,IAAIxD,IAAI,GAAGA,IAAIY,EAAO,QAAQ,KAAK,GAAG;EACzC,IAAM6C,IAAK7C,EAAOZ,KAAKY,EAAOZ,IAAI,IAC5B0D,IAAK9C,EAAOZ,IAAI,KAAKY,EAAOZ,IAAI,IAChC2D,IAAI,KAAK,MAAMF,GAAIC,CAAE;EAC3B,IAAIF,IAASG,KAAKC,KAAYD,IAAI,GAAG;GACnC,IAAM1D,KAAK2D,IAAWJ,KAAUG;GAChC,OAAO;IAAC/C,EAAOZ,IAAI,KAAKyD,IAAKxD;IAAGW,EAAOZ,IAAI,KAAK0D,IAAKzD;IAAGwD,IAAKE;IAAGD,IAAKC;GAAC;EACxE;EACA,KAAUA;CACZ;CACA,IAAME,IAAIjD,EAAO,SAAS,GACpB6C,IAAKI,KAAK,IAAIjD,EAAOiD,KAAKjD,EAAOiD,IAAI,KAAK,GAC1CH,IAAKG,KAAK,IAAIjD,EAAOiD,IAAI,KAAKjD,EAAOiD,IAAI,KAAK,GAC9CF,IAAI,KAAK,MAAMF,GAAIC,CAAE,KAAK;CAChC,OAAO;EAAC9C,EAAOiD;EAAIjD,EAAOiD,IAAI;EAAIJ,IAAKE;EAAGD,IAAKC;CAAC;AAClD,GAGaG,KAAgB,MAAgD;CAC3E,KAAK,IAAI9D,IAAIY,EAAO,SAAS,GAAGZ,KAAK,GAAG,KAAK,GAAG;EAC9C,IAAMyD,IAAK7C,EAAOA,EAAO,SAAS,KAAKA,EAAOZ,IACxC0D,IAAK9C,EAAOA,EAAO,SAAS,KAAKA,EAAOZ,IAAI,IAC5C2D,IAAI,KAAK,MAAMF,GAAIC,CAAE;EAC3B,IAAIC,IAAI,MAAM,OAAO,CAACF,IAAKE,GAAGD,IAAKC,CAAC;CACtC;CACA,OAAO,CAAC,GAAG,CAAC;AACd,GAGaI,KACX,GACA,GACA,GACA,GACA,MACW;CACX,IAAI,CAACC,GAAK,OAAOC,IAAQ;CACzB,IAAMxC,IAAK,KAAK,IAAIyC,CAAE,GAChBxC,IAAK,KAAK,IAAIyC,CAAE,GAChBC,IAAK3C,IAAK,OAAOwC,IAAQ,IAAIxC,IAAK,UAClC4C,IAAK3C,IAAK,OAAO4C,IAAS,IAAI5C,IAAK;CACzC,OAAO,KAAK,IAAI0C,GAAIC,CAAE;AACxB,GAMaE,KACX,GACA,GACA,GACA,GACA,GACA,GACA,MACS;CACT,IAAMC,IAAIlF,IAAS,KACbqC,IAAKyC,IAAKF,IAAK5E,GACfsC,IAAKyC,IAAKF,IAAK7E,GACfmF,IAAK9C,IAAKwC,IAAKK,GACfE,IAAK9C,IAAKsC,IAAKM,GACfG,IAAKhD,IAAKwC,IAAKK,GACfI,IAAKhD,IAAKsC,IAAKM;CAErB,AADAhE,EAAI,KAAKiE,GAAIC,GAAIN,GAAIC,GAAIM,GAAIC,GAAIH,GAAIC,GAAIG,GAAKA,CAAG,GACjDrE,EAAI,KAAK4D,GAAIC,GAAI1C,GAAIC,GAAIiD,GAAKA,CAAG;CACjC,IAAM9D,KAAM0D,IAAK9C,KAAM,GACjBb,KAAM4D,IAAK9C,KAAM,GACjBP,KAAMsD,IAAKhD,KAAM,GACjBL,KAAMsD,IAAKhD,KAAM;CACvB,EAAI,KAAKwC,GAAIC,GAAItD,GAAID,GAAI+D,GAAKA,GAAKT,GAAIC,GAAIhD,GAAIC,GAAIuD,GAAKA,CAAG;AAC7D,GAGaC,KACX,GACA,GACA,GACA,GACA,GACA,GACA,GACA,MACS;CAET,IAAI1B,IAAI;EAAC3B;EAAIC;EAAIC;EAAIC;EAAInB;EAAIC;CAAE;CAG/B,AAFI0C,EAAE,KAAKA,EAAE,OAAI,IAAI;EAACA,EAAE;EAAIA,EAAE;EAAIA,EAAE;EAAIA,EAAE;EAAIA,EAAE;EAAIA,EAAE;CAAE,IACpDA,EAAE,KAAKA,EAAE,OAAI,IAAI;EAACA,EAAE;EAAIA,EAAE;EAAIA,EAAE;EAAIA,EAAE;EAAIA,EAAE;EAAIA,EAAE;CAAE,IACpDA,EAAE,KAAKA,EAAE,OAAI,IAAI;EAACA,EAAE;EAAIA,EAAE;EAAIA,EAAE;EAAIA,EAAE;EAAIA,EAAE;EAAIA,EAAE;CAAE;CACxD,IAAM,CAAC7D,GAAIE,GAAIE,GAAIC,GAAIC,GAAIC,KAAMsD;CACjC,IAAI,EAAEvD,IAAKN,IAAK,QAAQ;CAGxB,IAAMwF,IAAMtF,KAAOK,IAAKL,MAAOE,IAAKJ,MAAQM,IAAKN;CACjD,EAAI,KACFA,GACAE,GACAA,GACAE,GACA,KAAK,IAAIC,GAAImF,CAAG,GAChB,KAAK,IAAInF,GAAImF,CAAG,GAChBlF,GACAC,GACAA,GACA+E,GACAA,GACAA,CACF;AACF,GAGMG,KACJ,GACA,GACA,GACA,GACA,MACa;CACb,IAAMR,IAAIlF,IAAS,IACbqC,IAAKyC,IAAKF,IAAK5E,GACfsC,IAAKyC,IAAKF,IAAK7E;CACrB,OAAO;EACL8E;EACAC;EACA1C,IAAKwC,IAAKK;EACV5C,IAAKsC,IAAKM;EACVJ,IAAKF,IAAK5E,IAAS;EACnB+E,IAAKF,IAAK7E,IAAS;EACnBqC,IAAKwC,IAAKK;EACV5C,IAAKsC,IAAKM;CACZ;AACF,GAMaS,KACX,GACA,GACA,GACA,GACA,GACA,GACA,GACA,MACS;CACT,IAAM,CAACzF,GAAIE,GAAI+E,GAAIC,GAAIrD,GAAIC,GAAIqD,GAAIC,KAAMI,EAAaZ,GAAIC,GAAIH,GAAIC,GAAI7E,CAAM;CAG5E,AAFAwF,EAAaI,GAAM1F,GAAIE,GAAI+E,GAAIC,GAAIrD,GAAIC,GAAIuD,CAAG,GAC9CC,EAAaI,GAAM1F,GAAIE,GAAI2B,GAAIC,GAAIqD,GAAIC,GAAIC,CAAG,GAC9CM,EAAQ,KAAKV,GAAIC,GAAIlF,GAAIE,GAAIiF,GAAIC,GAAIvD,GAAIC,GAAImD,GAAIC,GAAIG,GAAKA,CAAG;AAC/D,GAGaO,KACX,GACA,GACA,GACA,MACa;CACb,IAAM5E,IAAgB,CAAC,GACjB2C,IAAQF,EAAWrC,CAAM,GACzByE,IAASC,IAAOC;CACtB,IAAIF,KAAU,KAAKlC,KAAS,GAAG,OAAOvC,EAAO,MAAM;CACnD,KAAK,IAAI8B,IAAQ,GAAGA,IAAQS,GAAO,KAASkC,GAAQ;EAClD,IAAM1C,IAAM,KAAK,IAAIQ,GAAOT,IAAQ4C,CAAI,GAClCnF,IAAIkD,EAAQzC,GAAQ8B,CAAK;EAC/B,EAAI,KAAKvC,EAAE,IAAIA,EAAE,EAAE;EACnB,IAAIqD,IAAS;EACb,KAAK,IAAIxD,IAAI,GAAGA,IAAIY,EAAO,QAAQ,KAAK,GAKtC,AAJA,KAAU,KAAK,MACbA,EAAOZ,KAAKY,EAAOZ,IAAI,IACvBY,EAAOZ,IAAI,KAAKY,EAAOZ,IAAI,EAC7B,GACIwD,IAASd,KAASc,IAASb,KAAKnC,EAAI,KAAKI,EAAOZ,IAAIY,EAAOZ,IAAI,EAAE;EAEvE,IAAMI,IAAIiD,EAAQzC,GAAQ+B,CAAG;EAC7B,EAAI,KAAKvC,EAAE,IAAIA,EAAE,IAAIyE,GAAKA,CAAG;CAC/B;CACA,OAAOrE;AACT,GAGagF,KACX,GACA,GACA,MACW;CACX,IAAIC,IAAO;CACX,KAAK,IAAI,IAAI,GAAG,IAAI7E,EAAO,QAAQ,KAAK,GAAG;EACzC,IAAMa,IAAKb,EAAO,IAAI,IAChBc,IAAKd,EAAO,IAAI,IAChB6C,IAAK7C,EAAO,KAAKa,GACjBiC,IAAK9C,EAAO,IAAI,KAAKc,GACrB,IAAI+B,IAAKA,IAAKC,IAAKA,GACnBzD,IACJ,IAAI,IACA,KAAK,IAAI,GAAG,KAAK,IAAI,KAAKgB,IAAKQ,KAAMgC,KAAMvC,IAAKQ,KAAMgC,KAAM,CAAC,CAAC,IAC9D,GACAgC,IAAKjE,IAAKgC,IAAKxD,IAAIgB,GACnB0E,IAAKjE,IAAKgC,IAAKzD,IAAIiB;EACzB,IAAO,KAAK,IAAIuE,GAAMC,IAAKA,IAAKC,IAAKA,CAAE;CACzC;CACA,OAAOF;AACT"}
@@ -0,0 +1 @@
1
+ const e=require("./force.cjs"),t=require("./circular.cjs"),n=require("./dag.cjs"),r=require("./tree.cjs"),i=require("./chart.cjs");exports.arcLayout=t.arcLayout,exports.circularLayout=t.circularLayout,exports.countCrossings=n.countCrossings,exports.createForceSimulation=e.createForceSimulation,exports.createGraphChart=i.createGraphChart,exports.criticalPath=n.criticalPath,exports.dagLayout=n.dagLayout,exports.forceLayout=e.forceLayout,exports.treeLayout=r.treeLayout;
@@ -0,0 +1,6 @@
1
+ export { createGraphChart } from './chart.cjs';
2
+ export { createForceSimulation, forceLayout } from './force.cjs';
3
+ export { countCrossings, criticalPath, dagLayout } from './dag.cjs';
4
+ export { treeLayout } from './tree.cjs';
5
+ export { arcLayout, circularLayout } from './circular.cjs';
6
+ export type { GraphCircularLayoutOptions, GraphCircularLayoutResult, GraphDagLayoutOptions, GraphDagLayoutResult, GraphForceLayoutOptions, GraphForceSimulation, GraphChartEventMap, GraphChartInstance, GraphChartLabels, GraphChartOptions, GraphCircularOptions, GraphCriticalPath, GraphDagOptions, GraphData, GraphDirection, GraphEdge, GraphEdgeStyle, GraphForceOptions, GraphGroup, GraphGroupToggleEvent, GraphHoverEvent, GraphInteractionOptions, GraphLayoutEndEvent, GraphLayoutResult, GraphLayoutType, GraphLegendOptions, GraphNode, GraphNodeShape, GraphPoint, GraphSelectEvent, GraphToggleEvent, GraphTooltipOptions, GraphTreeOptions, GraphTreeLayoutOptions, GraphTreeLayoutResult, } from './types.cjs';
@@ -0,0 +1,6 @@
1
+ export { createGraphChart } from './chart.js';
2
+ export { createForceSimulation, forceLayout } from './force.js';
3
+ export { countCrossings, criticalPath, dagLayout } from './dag.js';
4
+ export { treeLayout } from './tree.js';
5
+ export { arcLayout, circularLayout } from './circular.js';
6
+ export type { GraphCircularLayoutOptions, GraphCircularLayoutResult, GraphDagLayoutOptions, GraphDagLayoutResult, GraphForceLayoutOptions, GraphForceSimulation, GraphChartEventMap, GraphChartInstance, GraphChartLabels, GraphChartOptions, GraphCircularOptions, GraphCriticalPath, GraphDagOptions, GraphData, GraphDirection, GraphEdge, GraphEdgeStyle, GraphForceOptions, GraphGroup, GraphGroupToggleEvent, GraphHoverEvent, GraphInteractionOptions, GraphLayoutEndEvent, GraphLayoutResult, GraphLayoutType, GraphLegendOptions, GraphNode, GraphNodeShape, GraphPoint, GraphSelectEvent, GraphToggleEvent, GraphTooltipOptions, GraphTreeOptions, GraphTreeLayoutOptions, GraphTreeLayoutResult, } from './types.js';
@@ -0,0 +1,6 @@
1
+ import { createForceSimulation as e, forceLayout as t } from "./force.js";
2
+ import { arcLayout as n, circularLayout as r } from "./circular.js";
3
+ import { countCrossings as i, criticalPath as a, dagLayout as o } from "./dag.js";
4
+ import { treeLayout as s } from "./tree.js";
5
+ import { createGraphChart as c } from "./chart.js";
6
+ export { n as arcLayout, r as circularLayout, i as countCrossings, e as createForceSimulation, c as createGraphChart, a as criticalPath, o as dagLayout, t as forceLayout, s as treeLayout };
@@ -0,0 +1,2 @@
1
+ const e=require("../locale.cjs");var t={en:{chart:`Network graph`,tree:`Tree diagram`,dag:`Dependency graph`,summary:`{nodes} nodes, {edges} links.`,groupsSummary:`Groups: {groups}.`,keyboardHelp:`Use the arrow keys to move between nodes, Enter to select, + and - to zoom, 0 to fit.`,nodeFocus:`{name}, {degree} links`,nodeFocusGroup:`{name} ({group}), {degree} links`,selected:`{count} selected`,selectionCleared:`Selection cleared`,expanded:`{name} expanded`,collapsed:`{name} collapsed, {count} hidden`,shown:`{name}: shown`,hidden:`{name}: hidden`,degree:`Links`,incoming:`Incoming`,outgoing:`Outgoing`,value:`Value`,group:`Group`,hiddenChildren:`Hidden`,critical:`Critical path`,zoomIn:`Zoom in`,zoomOut:`Zoom out`,fit:`Fit to view`,zoomHint:`Use {key} + scroll to zoom`,listSeparator:`, `},zh:{chart:`关系图`,tree:`树图`,dag:`依赖图`,summary:`{nodes} 个节点,{edges} 条关系。`,groupsSummary:`分组:{groups}。`,keyboardHelp:`使用方向键在节点间移动,Enter 选中,+ 和 - 缩放,0 适应视图。`,nodeFocus:`{name},{degree} 条关系`,nodeFocusGroup:`{name}({group}),{degree} 条关系`,selected:`已选中 {count} 个`,selectionCleared:`已清除选择`,expanded:`{name} 已展开`,collapsed:`{name} 已折叠,隐藏 {count} 个`,shown:`{name}:已显示`,hidden:`{name}:已隐藏`,degree:`关系数`,incoming:`入边`,outgoing:`出边`,value:`数值`,group:`分组`,hiddenChildren:`已折叠`,critical:`关键路径`,zoomIn:`放大`,zoomOut:`缩小`,fit:`适应视图`,zoomHint:`按住 {key} 并滚动以缩放`,listSeparator:`、`},ja:{chart:`ネットワーク図`,tree:`ツリー図`,dag:`依存関係グラフ`,summary:`ノード {nodes} 個、リンク {edges} 本。`,groupsSummary:`グループ:{groups}。`,keyboardHelp:`矢印キーでノード間を移動、Enter で選択、+ と - でズーム、0 で全体表示。`,nodeFocus:`{name}、リンク {degree} 本`,nodeFocusGroup:`{name}({group})、リンク {degree} 本`,selected:`{count} 個を選択`,selectionCleared:`選択を解除しました`,expanded:`{name} を展開しました`,collapsed:`{name} を折りたたみました({count} 個非表示)`,shown:`{name}:表示`,hidden:`{name}:非表示`,degree:`リンク数`,incoming:`入力`,outgoing:`出力`,value:`値`,group:`グループ`,hiddenChildren:`非表示`,critical:`クリティカルパス`,zoomIn:`拡大`,zoomOut:`縮小`,fit:`全体表示`,zoomHint:`{key} を押しながらスクロールでズーム`,listSeparator:`、`},fr:{chart:`Graphe de relations`,tree:`Arbre`,dag:`Graphe de dépendances`,summary:`{nodes} nœuds, {edges} liens.`,groupsSummary:`Groupes : {groups}.`,keyboardHelp:`Flèches pour passer d’un nœud à l’autre, Entrée pour sélectionner, + et - pour zoomer, 0 pour tout afficher.`,nodeFocus:`{name}, {degree} liens`,nodeFocusGroup:`{name} ({group}), {degree} liens`,selected:`{count} sélectionné(s)`,selectionCleared:`Sélection effacée`,expanded:`{name} déplié`,collapsed:`{name} replié, {count} masqué(s)`,shown:`{name} : affiché`,hidden:`{name} : masqué`,degree:`Liens`,incoming:`Entrants`,outgoing:`Sortants`,value:`Valeur`,group:`Groupe`,hiddenChildren:`Masqués`,critical:`Chemin critique`,zoomIn:`Zoom avant`,zoomOut:`Zoom arrière`,fit:`Tout afficher`,zoomHint:`Utilisez {key} + molette pour zoomer`,listSeparator:`, `}},n=(e,t)=>e.replace(/\{(\w+)\}/g,(e,n)=>n in t?String(t[n]):e),r=(n,r)=>{let i=e.resolveLocale(n);return{locale:i,labels:e.localeLabels(t,i,r),count:t=>e.numberFormat(i).format(t),value:t=>Number.isFinite(t)?e.numberFormat(i,{maximumFractionDigits:2}).format(t):`–`}};exports.GRAPH_LABELS=t,exports.fill=n,exports.graphLocale=r;
2
+ //# sourceMappingURL=labels.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.cjs","names":["resolveLocale","localeLabels","numberFormat","require_locale","GRAPH_LABELS","fill","template","key","values","match","graphLocale","resolved","locale","overrides","value"],"sources":["../../../../../charts/src/engine/graph/labels.ts"],"sourcesContent":["// Built-in texts of the graph charts (English, Chinese, Japanese, French)\n// and the number formatting of their tooltips.\n\nimport {\n localeLabels,\n numberFormat,\n resolveLocale,\n type LabelDictionary,\n} from \"../locale\";\nimport type { GraphChartLabels } from \"./types\";\n\nexport const GRAPH_LABELS: LabelDictionary<GraphChartLabels> = {\n en: {\n chart: \"Network graph\",\n tree: \"Tree diagram\",\n dag: \"Dependency graph\",\n summary: \"{nodes} nodes, {edges} links.\",\n groupsSummary: \"Groups: {groups}.\",\n keyboardHelp:\n \"Use the arrow keys to move between nodes, Enter to select, + and - to zoom, 0 to fit.\",\n nodeFocus: \"{name}, {degree} links\",\n nodeFocusGroup: \"{name} ({group}), {degree} links\",\n selected: \"{count} selected\",\n selectionCleared: \"Selection cleared\",\n expanded: \"{name} expanded\",\n collapsed: \"{name} collapsed, {count} hidden\",\n shown: \"{name}: shown\",\n hidden: \"{name}: hidden\",\n degree: \"Links\",\n incoming: \"Incoming\",\n outgoing: \"Outgoing\",\n value: \"Value\",\n group: \"Group\",\n hiddenChildren: \"Hidden\",\n critical: \"Critical path\",\n zoomIn: \"Zoom in\",\n zoomOut: \"Zoom out\",\n fit: \"Fit to view\",\n zoomHint: \"Use {key} + scroll to zoom\",\n listSeparator: \", \",\n },\n zh: {\n chart: \"关系图\",\n tree: \"树图\",\n dag: \"依赖图\",\n summary: \"{nodes} 个节点,{edges} 条关系。\",\n groupsSummary: \"分组:{groups}。\",\n keyboardHelp:\n \"使用方向键在节点间移动,Enter 选中,+ 和 - 缩放,0 适应视图。\",\n nodeFocus: \"{name},{degree} 条关系\",\n nodeFocusGroup: \"{name}({group}),{degree} 条关系\",\n selected: \"已选中 {count} 个\",\n selectionCleared: \"已清除选择\",\n expanded: \"{name} 已展开\",\n collapsed: \"{name} 已折叠,隐藏 {count} 个\",\n shown: \"{name}:已显示\",\n hidden: \"{name}:已隐藏\",\n degree: \"关系数\",\n incoming: \"入边\",\n outgoing: \"出边\",\n value: \"数值\",\n group: \"分组\",\n hiddenChildren: \"已折叠\",\n critical: \"关键路径\",\n zoomIn: \"放大\",\n zoomOut: \"缩小\",\n fit: \"适应视图\",\n zoomHint: \"按住 {key} 并滚动以缩放\",\n listSeparator: \"、\",\n },\n ja: {\n chart: \"ネットワーク図\",\n tree: \"ツリー図\",\n dag: \"依存関係グラフ\",\n summary: \"ノード {nodes} 個、リンク {edges} 本。\",\n groupsSummary: \"グループ:{groups}。\",\n keyboardHelp:\n \"矢印キーでノード間を移動、Enter で選択、+ と - でズーム、0 で全体表示。\",\n nodeFocus: \"{name}、リンク {degree} 本\",\n nodeFocusGroup: \"{name}({group})、リンク {degree} 本\",\n selected: \"{count} 個を選択\",\n selectionCleared: \"選択を解除しました\",\n expanded: \"{name} を展開しました\",\n collapsed: \"{name} を折りたたみました({count} 個非表示)\",\n shown: \"{name}:表示\",\n hidden: \"{name}:非表示\",\n degree: \"リンク数\",\n incoming: \"入力\",\n outgoing: \"出力\",\n value: \"値\",\n group: \"グループ\",\n hiddenChildren: \"非表示\",\n critical: \"クリティカルパス\",\n zoomIn: \"拡大\",\n zoomOut: \"縮小\",\n fit: \"全体表示\",\n zoomHint: \"{key} を押しながらスクロールでズーム\",\n listSeparator: \"、\",\n },\n fr: {\n chart: \"Graphe de relations\",\n tree: \"Arbre\",\n dag: \"Graphe de dépendances\",\n summary: \"{nodes} nœuds, {edges} liens.\",\n groupsSummary: \"Groupes : {groups}.\",\n keyboardHelp:\n \"Flèches pour passer d’un nœud à l’autre, Entrée pour sélectionner, + et - pour zoomer, 0 pour tout afficher.\",\n nodeFocus: \"{name}, {degree} liens\",\n nodeFocusGroup: \"{name} ({group}), {degree} liens\",\n selected: \"{count} sélectionné(s)\",\n selectionCleared: \"Sélection effacée\",\n expanded: \"{name} déplié\",\n collapsed: \"{name} replié, {count} masqué(s)\",\n shown: \"{name} : affiché\",\n hidden: \"{name} : masqué\",\n degree: \"Liens\",\n incoming: \"Entrants\",\n outgoing: \"Sortants\",\n value: \"Valeur\",\n group: \"Groupe\",\n hiddenChildren: \"Masqués\",\n critical: \"Chemin critique\",\n zoomIn: \"Zoom avant\",\n zoomOut: \"Zoom arrière\",\n fit: \"Tout afficher\",\n zoomHint: \"Utilisez {key} + molette pour zoomer\",\n listSeparator: \", \",\n },\n};\n\n/** Replaces `{name}` placeholders */\nexport const fill = (\n template: string,\n values: Record<string, string | number>,\n): string =>\n template.replace(/\\{(\\w+)\\}/g, (match, key: string) =>\n key in values ? String(values[key]) : match,\n );\n\nexport interface GraphLocale {\n locale: string;\n labels: GraphChartLabels;\n count: (value: number) => string;\n value: (value: number) => string;\n}\n\nexport const graphLocale = (\n locale: string | undefined,\n overrides: Partial<GraphChartLabels> | undefined,\n): GraphLocale => {\n const resolved = resolveLocale(locale);\n return {\n locale: resolved,\n labels: localeLabels(GRAPH_LABELS, resolved, overrides),\n count: (value) => numberFormat(resolved).format(value),\n value: (value) =>\n Number.isFinite(value)\n ? numberFormat(resolved, { maximumFractionDigits: 2 }).format(value)\n : \"–\",\n };\n};\n"],"mappings":"iCAWA,IAAaI,EAAkD,CAC7D,GAAI,CACF,MAAO,gBACP,KAAM,eACN,IAAK,mBACL,QAAS,gCACT,cAAe,oBACf,aACE,wFACF,UAAW,yBACX,eAAgB,mCAChB,SAAU,mBACV,iBAAkB,oBAClB,SAAU,kBACV,UAAW,mCACX,MAAO,gBACP,OAAQ,iBACR,OAAQ,QACR,SAAU,WACV,SAAU,WACV,MAAO,QACP,MAAO,QACP,eAAgB,SAChB,SAAU,gBACV,OAAQ,UACR,QAAS,WACT,IAAK,cACL,SAAU,6BACV,cAAe,IACjB,EACA,GAAI,CACF,MAAO,MACP,KAAM,KACN,IAAK,MACL,QAAS,2BACT,cAAe,eACf,aACE,wCACF,UAAW,sBACX,eAAgB,+BAChB,SAAU,gBACV,iBAAkB,QAClB,SAAU,aACV,UAAW,0BACX,MAAO,aACP,OAAQ,aACR,OAAQ,MACR,SAAU,KACV,SAAU,KACV,MAAO,KACP,MAAO,KACP,eAAgB,MAChB,SAAU,OACV,OAAQ,KACR,QAAS,KACT,IAAK,OACL,SAAU,kBACV,cAAe,GACjB,EACA,GAAI,CACF,MAAO,UACP,KAAM,OACN,IAAK,UACL,QAAS,+BACT,cAAe,iBACf,aACE,6CACF,UAAW,wBACX,eAAgB,iCAChB,SAAU,eACV,iBAAkB,YAClB,SAAU,iBACV,UAAW,iCACX,MAAO,YACP,OAAQ,aACR,OAAQ,OACR,SAAU,KACV,SAAU,KACV,MAAO,IACP,MAAO,OACP,eAAgB,MAChB,SAAU,WACV,OAAQ,KACR,QAAS,KACT,IAAK,OACL,SAAU,wBACV,cAAe,GACjB,EACA,GAAI,CACF,MAAO,sBACP,KAAM,QACN,IAAK,wBACL,QAAS,gCACT,cAAe,sBACf,aACE,+GACF,UAAW,yBACX,eAAgB,mCAChB,SAAU,yBACV,iBAAkB,oBAClB,SAAU,gBACV,UAAW,mCACX,MAAO,mBACP,OAAQ,kBACR,OAAQ,QACR,SAAU,WACV,SAAU,WACV,MAAO,SACP,MAAO,SACP,eAAgB,UAChB,SAAU,kBACV,OAAQ,aACR,QAAS,eACT,IAAK,gBACL,SAAU,uCACV,cAAe,IACjB,CACF,EAGaC,GACX,EACA,IAEAC,EAAS,QAAQ,cAAe,EAAO,IACrCC,KAAOC,EAAS,OAAOA,EAAOD,EAAI,EAAIE,CACxC,EASWC,GACX,EACA,IACgB,CAChB,IAAMC,EAAWX,EAAAA,cAAcY,CAAM,EACrC,MAAO,CACL,OAAQD,EACR,OAAQV,EAAAA,aAAaG,EAAcO,EAAUE,CAAS,EACtD,MAAQ,GAAUX,EAAAA,aAAaS,CAAQ,CAAC,CAAC,OAAOG,CAAK,EACrD,MAAQ,GACN,OAAO,SAASA,CAAK,EACjBZ,EAAAA,aAAaS,EAAU,CAAE,sBAAuB,CAAE,CAAC,CAAC,CAAC,OAAOG,CAAK,EACjE,GACR,CACF"}
@@ -0,0 +1,12 @@
1
+ import { LabelDictionary } from '../locale.cjs';
2
+ import { GraphChartLabels } from './types.cjs';
3
+ export declare const GRAPH_LABELS: LabelDictionary<GraphChartLabels>;
4
+ /** Replaces `{name}` placeholders */
5
+ export declare const fill: (template: string, values: Record<string, string | number>) => string;
6
+ export interface GraphLocale {
7
+ locale: string;
8
+ labels: GraphChartLabels;
9
+ count: (value: number) => string;
10
+ value: (value: number) => string;
11
+ }
12
+ export declare const graphLocale: (locale: string | undefined, overrides: Partial<GraphChartLabels> | undefined) => GraphLocale;
@@ -0,0 +1,12 @@
1
+ import { LabelDictionary } from '../locale.js';
2
+ import { GraphChartLabels } from './types.js';
3
+ export declare const GRAPH_LABELS: LabelDictionary<GraphChartLabels>;
4
+ /** Replaces `{name}` placeholders */
5
+ export declare const fill: (template: string, values: Record<string, string | number>) => string;
6
+ export interface GraphLocale {
7
+ locale: string;
8
+ labels: GraphChartLabels;
9
+ count: (value: number) => string;
10
+ value: (value: number) => string;
11
+ }
12
+ export declare const graphLocale: (locale: string | undefined, overrides: Partial<GraphChartLabels> | undefined) => GraphLocale;
@@ -0,0 +1,128 @@
1
+ import { localeLabels as e, numberFormat as t, resolveLocale as n } from "../locale.js";
2
+ //#region src/engine/graph/labels.ts
3
+ var r = {
4
+ en: {
5
+ chart: "Network graph",
6
+ tree: "Tree diagram",
7
+ dag: "Dependency graph",
8
+ summary: "{nodes} nodes, {edges} links.",
9
+ groupsSummary: "Groups: {groups}.",
10
+ keyboardHelp: "Use the arrow keys to move between nodes, Enter to select, + and - to zoom, 0 to fit.",
11
+ nodeFocus: "{name}, {degree} links",
12
+ nodeFocusGroup: "{name} ({group}), {degree} links",
13
+ selected: "{count} selected",
14
+ selectionCleared: "Selection cleared",
15
+ expanded: "{name} expanded",
16
+ collapsed: "{name} collapsed, {count} hidden",
17
+ shown: "{name}: shown",
18
+ hidden: "{name}: hidden",
19
+ degree: "Links",
20
+ incoming: "Incoming",
21
+ outgoing: "Outgoing",
22
+ value: "Value",
23
+ group: "Group",
24
+ hiddenChildren: "Hidden",
25
+ critical: "Critical path",
26
+ zoomIn: "Zoom in",
27
+ zoomOut: "Zoom out",
28
+ fit: "Fit to view",
29
+ zoomHint: "Use {key} + scroll to zoom",
30
+ listSeparator: ", "
31
+ },
32
+ zh: {
33
+ chart: "关系图",
34
+ tree: "树图",
35
+ dag: "依赖图",
36
+ summary: "{nodes} 个节点,{edges} 条关系。",
37
+ groupsSummary: "分组:{groups}。",
38
+ keyboardHelp: "使用方向键在节点间移动,Enter 选中,+ 和 - 缩放,0 适应视图。",
39
+ nodeFocus: "{name},{degree} 条关系",
40
+ nodeFocusGroup: "{name}({group}),{degree} 条关系",
41
+ selected: "已选中 {count} 个",
42
+ selectionCleared: "已清除选择",
43
+ expanded: "{name} 已展开",
44
+ collapsed: "{name} 已折叠,隐藏 {count} 个",
45
+ shown: "{name}:已显示",
46
+ hidden: "{name}:已隐藏",
47
+ degree: "关系数",
48
+ incoming: "入边",
49
+ outgoing: "出边",
50
+ value: "数值",
51
+ group: "分组",
52
+ hiddenChildren: "已折叠",
53
+ critical: "关键路径",
54
+ zoomIn: "放大",
55
+ zoomOut: "缩小",
56
+ fit: "适应视图",
57
+ zoomHint: "按住 {key} 并滚动以缩放",
58
+ listSeparator: "、"
59
+ },
60
+ ja: {
61
+ chart: "ネットワーク図",
62
+ tree: "ツリー図",
63
+ dag: "依存関係グラフ",
64
+ summary: "ノード {nodes} 個、リンク {edges} 本。",
65
+ groupsSummary: "グループ:{groups}。",
66
+ keyboardHelp: "矢印キーでノード間を移動、Enter で選択、+ と - でズーム、0 で全体表示。",
67
+ nodeFocus: "{name}、リンク {degree} 本",
68
+ nodeFocusGroup: "{name}({group})、リンク {degree} 本",
69
+ selected: "{count} 個を選択",
70
+ selectionCleared: "選択を解除しました",
71
+ expanded: "{name} を展開しました",
72
+ collapsed: "{name} を折りたたみました({count} 個非表示)",
73
+ shown: "{name}:表示",
74
+ hidden: "{name}:非表示",
75
+ degree: "リンク数",
76
+ incoming: "入力",
77
+ outgoing: "出力",
78
+ value: "値",
79
+ group: "グループ",
80
+ hiddenChildren: "非表示",
81
+ critical: "クリティカルパス",
82
+ zoomIn: "拡大",
83
+ zoomOut: "縮小",
84
+ fit: "全体表示",
85
+ zoomHint: "{key} を押しながらスクロールでズーム",
86
+ listSeparator: "、"
87
+ },
88
+ fr: {
89
+ chart: "Graphe de relations",
90
+ tree: "Arbre",
91
+ dag: "Graphe de dépendances",
92
+ summary: "{nodes} nœuds, {edges} liens.",
93
+ groupsSummary: "Groupes : {groups}.",
94
+ keyboardHelp: "Flèches pour passer d’un nœud à l’autre, Entrée pour sélectionner, + et - pour zoomer, 0 pour tout afficher.",
95
+ nodeFocus: "{name}, {degree} liens",
96
+ nodeFocusGroup: "{name} ({group}), {degree} liens",
97
+ selected: "{count} sélectionné(s)",
98
+ selectionCleared: "Sélection effacée",
99
+ expanded: "{name} déplié",
100
+ collapsed: "{name} replié, {count} masqué(s)",
101
+ shown: "{name} : affiché",
102
+ hidden: "{name} : masqué",
103
+ degree: "Liens",
104
+ incoming: "Entrants",
105
+ outgoing: "Sortants",
106
+ value: "Valeur",
107
+ group: "Groupe",
108
+ hiddenChildren: "Masqués",
109
+ critical: "Chemin critique",
110
+ zoomIn: "Zoom avant",
111
+ zoomOut: "Zoom arrière",
112
+ fit: "Tout afficher",
113
+ zoomHint: "Utilisez {key} + molette pour zoomer",
114
+ listSeparator: ", "
115
+ }
116
+ }, i = (e, t) => e.replace(/\{(\w+)\}/g, (e, n) => n in t ? String(t[n]) : e), a = (i, a) => {
117
+ let o = n(i);
118
+ return {
119
+ locale: o,
120
+ labels: e(r, o, a),
121
+ count: (e) => t(o).format(e),
122
+ value: (e) => Number.isFinite(e) ? t(o, { maximumFractionDigits: 2 }).format(e) : "–"
123
+ };
124
+ };
125
+ //#endregion
126
+ export { r as GRAPH_LABELS, i as fill, a as graphLocale };
127
+
128
+ //# sourceMappingURL=labels.js.map