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
@@ -1 +1 @@
1
- {"version":3,"file":"charts.cjs","names":["useMemo","lineSeries","ChartBase","engineOptions","areaSeries","barSeries","candlestickSeries","heatmapChartOptions","sparklineOptions","scatterSeries","quadrantChartOptions","quadrantOf","rangeAreaSeries","Chart","bubbleSeries","resolveLocale","histogramSeries","presetLabels","boxplotSeries","boxplotData","waterfallSeries","ganttSeries","useState","require_locale","require_Chart","require_presets","react","react_jsx_runtime","frameProps","props","LineChart","input","series","area","stacked","percent","curve","AreaChart","BarChart","labels","CandlestickChart","HeatmapChart","data","xCategories","yCategories","colorScale","valueRange","name","radius","format","base","Sparkline","options","type","color","reference","renderer","tooltip","palette","ariaLabel","locale","ref","ScatterChart","CORNERS","cornerStyle","left","corner","top","split","plot","QuadrantChart","geometry","draggable","onPointDrop","overlay","quadrantContent","x0","x1","xDomain","y0","y1","yDomain","xs","xSplit","ys","ySplit","fx","fy","reverseX","onPointClick","index","event","points","onQuadrantClick","at","renderTooltip","HorizontalBarChart","RangeAreaChart","MixedChart","BubbleChart","minSize","maxSize","maxValue","HistogramChart","extra","lang","values","formatBin","bins","domain","nice","BoxPlotChart","groupName","groups","whisker","WaterfallChart","steps","upColor","downColor","totalColor","start","GanttChart","gantt","tasks","colors","taskName","progressName","milestoneName","formatProgress","mountedAt","now","today","lines","todayLabel","xAxis","yAxis","annotations","interaction","legend"],"sources":["../../../../charts/src/react/charts.tsx"],"sourcesContent":["import { useMemo, useState, type CSSProperties } from \"react\";\nimport {\n areaSeries,\n barSeries,\n boxplotData,\n boxplotSeries,\n bubbleSeries,\n candlestickSeries,\n ganttSeries,\n heatmapChartOptions,\n histogramSeries,\n lineSeries,\n presetLabels,\n quadrantChartOptions,\n quadrantOf,\n rangeAreaSeries,\n scatterSeries,\n sparklineOptions,\n waterfallSeries,\n type QuadrantCorner,\n} from \"../engine/presets\";\nimport { resolveLocale } from \"../engine/locale\";\nimport type { ChartAnnotation, ChartRect } from \"../engine/types\";\nimport { Chart, ChartBase, engineOptions } from \"./Chart\";\nimport type {\n AreaChartProps,\n BarChartProps,\n BoxPlotChartProps,\n BubbleChartProps,\n CandlestickChartProps,\n ChartCommonProps,\n GanttChartProps,\n HeatmapChartProps,\n HistogramChartProps,\n HorizontalBarChartProps,\n LineChartProps,\n MixedChartProps,\n QuadrantChartProps,\n RangeAreaChartProps,\n ScatterChartProps,\n SparklineProps,\n WaterfallChartProps,\n} from \"./types\";\n\nconst frameProps = (props: Omit<ChartCommonProps, \"labels\">) => ({\n height: props.height,\n width: props.width,\n className: props.className,\n style: props.style,\n handleRef: props.ref,\n onHover: props.onHover,\n onPointClick: props.onPointClick,\n onPlotClick: props.onPlotClick,\n onZoom: props.onZoom,\n onRendererChange: props.onRendererChange,\n renderTooltip: props.renderTooltip,\n});\n\n/** Line (or area) chart; handles millions of points on the GPU */\nexport function LineChart(props: LineChartProps) {\n const {\n series: input,\n area = false,\n curve,\n stacked = false,\n percent = false,\n } = props;\n const series = useMemo(\n () => lineSeries(input, area, { curve, stacked: stacked || percent }),\n [input, area, curve, stacked, percent],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n series,\n stackMode: percent ? \"percent\" : undefined,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Area chart: smooth by default, stacked or 100% stacked */\nexport function AreaChart(props: AreaChartProps) {\n const {\n series: input,\n curve = \"smooth\",\n stacked = false,\n percent = false,\n } = props;\n const series = useMemo(\n () => areaSeries(input, { curve, stacked: stacked || percent }),\n [input, curve, stacked, percent],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n series,\n stackMode: percent ? \"percent\" : undefined,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Bar chart: grouped side by side, stacked or 100% stacked, with optional value labels */\nexport function BarChart(props: BarChartProps) {\n const {\n series: input,\n stacked = false,\n percent = false,\n labels = false,\n } = props;\n const series = useMemo(\n () => barSeries(input, stacked || percent, labels),\n [input, stacked, percent, labels],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n labels: undefined,\n series,\n stackMode: percent ? \"percent\" : undefined,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Candlestick (OHLC) chart: rising and falling candles, zoomable on the GPU */\nexport function CandlestickChart(props: CandlestickChartProps) {\n const { series: input } = props;\n const series = useMemo(() => candlestickSeries(input), [input]);\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Heatmap: a grid of cells colored by value (categories or numbers on both axes) */\nexport function HeatmapChart(props: HeatmapChartProps) {\n const {\n data,\n xCategories,\n yCategories,\n colorScale,\n valueRange,\n name,\n radius,\n format,\n } = props;\n const series = useMemo(\n () =>\n heatmapChartOptions({\n data,\n xCategories,\n yCategories,\n colorScale,\n valueRange,\n name,\n radius,\n format,\n }).series,\n [\n data,\n xCategories,\n yCategories,\n colorScale,\n valueRange,\n name,\n radius,\n format,\n ],\n );\n const base = engineOptions({ ...props, series });\n return (\n <ChartBase\n options={{\n ...heatmapChartOptions(\n { data, xCategories, yCategories },\n {\n ...base,\n legend: props.legend,\n interaction: props.interaction,\n tooltip: props.tooltip,\n },\n ),\n series,\n }}\n {...frameProps(props)}\n />\n );\n}\n\n/** Word-sized chart without axes: a trend in a table cell, a KPI card, ... */\nexport function Sparkline(props: SparklineProps) {\n const {\n data,\n type,\n color,\n curve,\n name,\n reference,\n format,\n height = 48,\n width,\n renderer,\n tooltip,\n palette,\n ariaLabel,\n locale,\n labels,\n className,\n style,\n ref,\n onHover,\n renderTooltip,\n } = props;\n const options = useMemo(\n () =>\n sparklineOptions(\n { data, type, color, curve, name, reference, format },\n { renderer, tooltip, palette, ariaLabel, locale, labels },\n ),\n [\n data,\n type,\n color,\n curve,\n name,\n reference,\n format,\n renderer,\n tooltip,\n palette,\n ariaLabel,\n locale,\n labels,\n ],\n );\n return (\n <ChartBase\n options={options}\n height={height}\n width={width}\n className={className}\n style={style}\n handleRef={ref}\n onHover={onHover}\n renderTooltip={renderTooltip}\n />\n );\n}\n\n/** Scatter chart: zooms on both axes, hit testing through a spatial index */\nexport function ScatterChart(props: ScatterChartProps) {\n const { series: input } = props;\n const series = useMemo(() => scatterSeries(input), [input]);\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\nconst CORNERS: QuadrantCorner[] = [\n \"topLeft\",\n \"topRight\",\n \"bottomLeft\",\n \"bottomRight\",\n];\n\nconst cornerStyle = (\n corner: QuadrantCorner,\n plot: ChartRect,\n split: { x: number; y: number },\n): CSSProperties => {\n const left = corner.endsWith(\"Left\");\n const top = corner.startsWith(\"top\");\n return {\n position: \"absolute\",\n left: left ? 0 : split.x - plot.x,\n top: top ? 0 : split.y - plot.y,\n width: left ? split.x - plot.x : plot.x + plot.width - split.x,\n height: top ? split.y - plot.y : plot.y + plot.height - split.y,\n pointerEvents: \"none\",\n };\n};\n\n/**\n * Four-quadrant matrix (priority matrix, Eisenhower, BCG, ...): tinted\n * quadrants with titles, dividers, and labelled dots placed without\n * overlapping labels. Dots can be dragged to another quadrant.\n */\nexport function QuadrantChart(props: QuadrantChartProps) {\n const {\n points,\n xDomain,\n yDomain,\n xSplit,\n ySplit,\n quadrants,\n xLabel,\n yLabel,\n axisLabels,\n showTicks,\n reverseX,\n showLabels,\n pointSize,\n name,\n draggable,\n onPointClick,\n onPointDrop,\n onQuadrantClick,\n renderTooltip,\n quadrantContent,\n } = props;\n const geometry = { xDomain, yDomain, xSplit, ySplit, reverseX };\n\n const options = quadrantChartOptions(\n {\n points,\n xDomain,\n yDomain,\n xSplit,\n ySplit,\n quadrants,\n xLabel,\n yLabel,\n axisLabels,\n showTicks,\n reverseX,\n showLabels,\n pointSize,\n name,\n draggable: draggable ?? !!onPointDrop,\n },\n engineOptions({ ...props, series: [] }),\n );\n\n const overlay = quadrantContent\n ? (plot: ChartRect) => {\n const [x0, x1] = xDomain ?? [0, 10];\n const [y0, y1] = yDomain ?? [0, 10];\n const xs = xSplit ?? (x0 + x1) / 2;\n const ys = ySplit ?? (y0 + y1) / 2;\n const fx = (xs - x0) / (x1 - x0 || 1);\n const fy = (ys - y0) / (y1 - y0 || 1);\n const split = {\n x: plot.x + plot.width * (reverseX ? 1 - fx : fx),\n y: plot.y + plot.height * (1 - fy),\n };\n return CORNERS.map((corner) =>\n quadrantContent[corner] ? (\n <div\n key={corner}\n className={`minerva-chart-quadrant minerva-chart-quadrant-${corner}`}\n style={cornerStyle(corner, plot, split)}\n >\n {quadrantContent[corner]}\n </div>\n ) : null,\n );\n }\n : undefined;\n\n return (\n <ChartBase\n options={options}\n {...frameProps({\n ...props,\n onPointClick: undefined,\n renderTooltip: undefined,\n })}\n overlay={overlay}\n onPointClick={\n onPointClick\n ? (event) => {\n const index = event.items[0]?.index;\n if (index !== undefined && points[index])\n onPointClick(points[index], index);\n }\n : undefined\n }\n onPlotClick={\n onQuadrantClick\n ? (at) => onQuadrantClick(quadrantOf(geometry, at.x, at.y), at)\n : undefined\n }\n onDrop={\n onPointDrop\n ? (event) => {\n const index = event.item.index;\n if (!points[index]) return;\n onPointDrop(points[index], index, {\n x: event.x,\n y: event.y,\n quadrant: quadrantOf(geometry, event.x, event.y),\n });\n }\n : undefined\n }\n renderTooltip={\n renderTooltip\n ? (event) => {\n const index = event.items[0]?.index;\n return index !== undefined && points[index]\n ? renderTooltip(points[index], index)\n : null;\n }\n : undefined\n }\n />\n );\n}\n\n/**\n * Horizontal bar chart: categories down the left side, values from the\n * left (rankings, long names, diverging surveys, stacked progress)\n */\nexport function HorizontalBarChart(props: HorizontalBarChartProps) {\n return <BarChart {...props} orientation=\"horizontal\" />;\n}\n\n/**\n * Range area chart: bands between a lower (`y0`) and an upper edge\n * (confidence intervals, min-max ranges), mixable with lines\n */\nexport function RangeAreaChart(props: RangeAreaChartProps) {\n const { series: input, curve = \"smooth\" } = props;\n const series = useMemo(() => rangeAreaSeries(input, curve), [input, curve]);\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Combination chart: bars, lines and areas on one or two value axes\n * (`yAxis: \"right\"` series use `yAxis2`, aligned on the left grid)\n */\nexport function MixedChart(props: MixedChartProps) {\n return <Chart {...props} />;\n}\n\n/** Bubble chart: x, y and a value sized by area (√value diameters) */\nexport function BubbleChart(props: BubbleChartProps) {\n const { series: input, minSize, maxSize, maxValue } = props;\n const series = useMemo(\n () => bubbleSeries(input, { minSize, maxSize, maxValue }),\n [input, minSize, maxSize, maxValue],\n );\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Histogram: the distribution of raw samples in bins of equal width\n * (Freedman-Diaconis, Sturges or a count); millions of samples are binned\n * in milliseconds\n */\nexport function HistogramChart(props: HistogramChartProps) {\n const {\n values,\n bins,\n domain,\n nice,\n name,\n color,\n formatBin,\n series: extra,\n locale,\n } = props;\n // page language read at every render: a language switch renames the series\n const lang = resolveLocale(locale);\n const series = useMemo(\n () => [\n histogramSeries(values, {\n bins,\n domain,\n nice,\n name,\n color,\n format: formatBin,\n locale: lang,\n }),\n ...(extra ?? []),\n ],\n [values, bins, domain, nice, name, color, formatBin, extra, lang],\n );\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Box plot: medians, quartiles, whiskers and outliers of samples, from raw\n * values (`groups`) or computed statistics (`series`)\n */\nexport function BoxPlotChart(props: BoxPlotChartProps) {\n const { series: input, groups, name, whisker, orientation, locale } = props;\n const groupName = name ?? presetLabels(resolveLocale(locale)).values;\n const series = useMemo(\n () =>\n boxplotSeries([\n ...(groups?.length\n ? [\n {\n id: \"boxplot\",\n name: groupName,\n data: boxplotData(groups, { whisker }),\n },\n ]\n : []),\n ...(input ?? []),\n ]),\n [input, groups, groupName, whisker],\n );\n return (\n <ChartBase\n options={engineOptions({ ...props, series, orientation })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Waterfall (bridge) chart: how changes take a value from a start to an\n * end, with subtotals and totals (P&L bridges, budget variances)\n */\nexport function WaterfallChart(props: WaterfallChartProps) {\n const {\n steps,\n name,\n upColor,\n downColor,\n totalColor,\n start,\n labels = true,\n format,\n orientation,\n locale,\n } = props;\n const lang = resolveLocale(locale);\n const series = useMemo(\n () => [\n waterfallSeries(steps, {\n name,\n upColor,\n downColor,\n totalColor,\n start,\n labels,\n format,\n locale: lang,\n }),\n ],\n [steps, name, upColor, downColor, totalColor, start, labels, format, lang],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n labels: undefined,\n series,\n orientation,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Gantt chart: tasks as bars on a time axis with their progress, groups,\n * milestones and a today line; zooms and pans along the time\n */\nexport function GanttChart(props: GanttChartProps) {\n const {\n tasks,\n colors,\n taskName,\n progressName,\n milestoneName,\n formatProgress,\n today = false,\n todayLabel,\n xAxis,\n yAxis,\n annotations,\n interaction,\n legend,\n locale,\n } = props;\n const lang = resolveLocale(locale);\n const gantt = useMemo(\n () =>\n ganttSeries(tasks, {\n colors,\n taskName,\n progressName,\n milestoneName,\n formatProgress,\n locale: lang,\n }),\n [\n tasks,\n colors,\n taskName,\n progressName,\n milestoneName,\n formatProgress,\n lang,\n ],\n );\n const [mountedAt] = useState(() => Date.now());\n const now =\n today === false\n ? null\n : today === true\n ? mountedAt\n : today instanceof Date\n ? today.getTime()\n : today;\n const lines: ChartAnnotation[] =\n now === null\n ? []\n : [\n {\n type: \"line\",\n axis: \"y\",\n value: now,\n color: \"var(--danger-color, #dc2626)\",\n dash: [4, 3],\n label: todayLabel,\n },\n ];\n return (\n <ChartBase\n options={{\n ...engineOptions({\n ...props,\n series: gantt.series,\n orientation: \"horizontal\",\n }),\n xAxis: {\n type: \"category\",\n categories: gantt.categories,\n ...xAxis,\n },\n yAxis: {\n type: \"time\",\n min: gantt.domain[0],\n max: gantt.domain[1],\n ...yAxis,\n },\n annotations: [...(annotations ?? []), ...lines],\n interaction: interaction ?? { zoom: \"y\" },\n legend: legend ?? gantt.series.length > 1,\n }}\n {...frameProps(props)}\n />\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"charts.cjs","names":["useMemo","lineSeries","ChartBase","engineOptions","areaSeries","barSeries","candlestickSeries","heatmapChartOptions","sparklineOptions","scatterSeries","quadrantChartOptions","quadrantOf","rangeAreaSeries","Chart","bubbleSeries","resolveLocale","histogramSeries","presetLabels","boxplotSeries","boxplotData","waterfallSeries","ganttSeries","useState","require_locale","require_Chart","require_presets","react","react_jsx_runtime","frameProps","props","LineChart","input","series","area","stacked","percent","curve","AreaChart","BarChart","labels","CandlestickChart","HeatmapChart","data","xCategories","yCategories","colorScale","valueRange","colorMidpoint","name","radius","format","base","Sparkline","options","type","color","reference","renderer","tooltip","palette","ariaLabel","locale","ref","ScatterChart","CORNERS","cornerStyle","left","corner","top","split","plot","QuadrantChart","geometry","draggable","onPointDrop","overlay","quadrantContent","x0","x1","xDomain","y0","y1","yDomain","xs","xSplit","ys","ySplit","fx","fy","reverseX","onPointClick","index","event","points","onQuadrantClick","at","renderTooltip","HorizontalBarChart","RangeAreaChart","MixedChart","BubbleChart","minSize","maxSize","maxValue","HistogramChart","extra","lang","values","formatBin","bins","domain","nice","BoxPlotChart","groupName","groups","s","outlierShape","outlierSize","whisker","WaterfallChart","steps","upColor","downColor","totalColor","start","connector","GanttChart","gantt","tasks","colors","taskName","progressName","milestoneName","formatProgress","dependenciesName","dependencyArrows","dependencyColor","mountedAt","now","today","lines","todayLabel","xAxis","yAxis","annotations","interaction","legend"],"sources":["../../../../charts/src/react/charts.tsx"],"sourcesContent":["import { useMemo, useState, type CSSProperties } from \"react\";\nimport {\n areaSeries,\n barSeries,\n boxplotData,\n boxplotSeries,\n bubbleSeries,\n candlestickSeries,\n ganttSeries,\n heatmapChartOptions,\n histogramSeries,\n lineSeries,\n presetLabels,\n quadrantChartOptions,\n quadrantOf,\n rangeAreaSeries,\n scatterSeries,\n sparklineOptions,\n waterfallSeries,\n type QuadrantCorner,\n} from \"../engine/presets\";\nimport { resolveLocale } from \"../engine/locale\";\nimport type { ChartAnnotation, ChartRect } from \"../engine/types\";\nimport { Chart, ChartBase, engineOptions } from \"./Chart\";\nimport type {\n AreaChartProps,\n BarChartProps,\n BoxPlotChartProps,\n BubbleChartProps,\n CandlestickChartProps,\n ChartCommonProps,\n GanttChartProps,\n HeatmapChartProps,\n HistogramChartProps,\n HorizontalBarChartProps,\n LineChartProps,\n MixedChartProps,\n QuadrantChartProps,\n RangeAreaChartProps,\n ScatterChartProps,\n SparklineProps,\n WaterfallChartProps,\n} from \"./types\";\n\nconst frameProps = (props: Omit<ChartCommonProps, \"labels\">) => ({\n height: props.height,\n width: props.width,\n className: props.className,\n style: props.style,\n handleRef: props.ref,\n onHover: props.onHover,\n onPointClick: props.onPointClick,\n onPlotClick: props.onPlotClick,\n onZoom: props.onZoom,\n onRendererChange: props.onRendererChange,\n renderTooltip: props.renderTooltip,\n});\n\n/** Line (or area) chart; handles millions of points on the GPU */\nexport function LineChart(props: LineChartProps) {\n const {\n series: input,\n area = false,\n curve,\n stacked = false,\n percent = false,\n } = props;\n const series = useMemo(\n () => lineSeries(input, area, { curve, stacked: stacked || percent }),\n [input, area, curve, stacked, percent],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n series,\n stackMode: percent ? \"percent\" : undefined,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Area chart: smooth by default, stacked or 100% stacked */\nexport function AreaChart(props: AreaChartProps) {\n const {\n series: input,\n curve = \"smooth\",\n stacked = false,\n percent = false,\n } = props;\n const series = useMemo(\n () => areaSeries(input, { curve, stacked: stacked || percent }),\n [input, curve, stacked, percent],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n series,\n stackMode: percent ? \"percent\" : undefined,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Bar chart: grouped side by side, stacked or 100% stacked, with optional value labels */\nexport function BarChart(props: BarChartProps) {\n const {\n series: input,\n stacked = false,\n percent = false,\n labels = false,\n } = props;\n const series = useMemo(\n () => barSeries(input, stacked || percent, labels),\n [input, stacked, percent, labels],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n labels: undefined,\n series,\n stackMode: percent ? \"percent\" : undefined,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Candlestick (OHLC) chart: rising and falling candles, zoomable on the GPU */\nexport function CandlestickChart(props: CandlestickChartProps) {\n const { series: input } = props;\n const series = useMemo(() => candlestickSeries(input), [input]);\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Heatmap: a grid of cells colored by value (categories or numbers on both axes) */\nexport function HeatmapChart(props: HeatmapChartProps) {\n const {\n data,\n xCategories,\n yCategories,\n colorScale,\n valueRange,\n colorMidpoint,\n name,\n radius,\n format,\n } = props;\n const series = useMemo(\n () =>\n heatmapChartOptions({\n data,\n xCategories,\n yCategories,\n colorScale,\n valueRange,\n colorMidpoint,\n name,\n radius,\n format,\n }).series,\n [\n data,\n xCategories,\n yCategories,\n colorScale,\n valueRange,\n colorMidpoint,\n name,\n radius,\n format,\n ],\n );\n const base = engineOptions({ ...props, series });\n return (\n <ChartBase\n options={{\n ...heatmapChartOptions(\n { data, xCategories, yCategories },\n {\n ...base,\n legend: props.legend,\n interaction: props.interaction,\n tooltip: props.tooltip,\n },\n ),\n series,\n }}\n {...frameProps(props)}\n />\n );\n}\n\n/** Word-sized chart without axes: a trend in a table cell, a KPI card, ... */\nexport function Sparkline(props: SparklineProps) {\n const {\n data,\n type,\n color,\n curve,\n name,\n reference,\n format,\n height = 48,\n width,\n renderer,\n tooltip,\n palette,\n ariaLabel,\n locale,\n labels,\n className,\n style,\n ref,\n onHover,\n renderTooltip,\n } = props;\n const options = useMemo(\n () =>\n sparklineOptions(\n { data, type, color, curve, name, reference, format },\n { renderer, tooltip, palette, ariaLabel, locale, labels },\n ),\n [\n data,\n type,\n color,\n curve,\n name,\n reference,\n format,\n renderer,\n tooltip,\n palette,\n ariaLabel,\n locale,\n labels,\n ],\n );\n return (\n <ChartBase\n options={options}\n height={height}\n width={width}\n className={className}\n style={style}\n handleRef={ref}\n onHover={onHover}\n renderTooltip={renderTooltip}\n />\n );\n}\n\n/** Scatter chart: zooms on both axes, hit testing through a spatial index */\nexport function ScatterChart(props: ScatterChartProps) {\n const { series: input } = props;\n const series = useMemo(() => scatterSeries(input), [input]);\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\nconst CORNERS: QuadrantCorner[] = [\n \"topLeft\",\n \"topRight\",\n \"bottomLeft\",\n \"bottomRight\",\n];\n\nconst cornerStyle = (\n corner: QuadrantCorner,\n plot: ChartRect,\n split: { x: number; y: number },\n): CSSProperties => {\n const left = corner.endsWith(\"Left\");\n const top = corner.startsWith(\"top\");\n return {\n position: \"absolute\",\n left: left ? 0 : split.x - plot.x,\n top: top ? 0 : split.y - plot.y,\n width: left ? split.x - plot.x : plot.x + plot.width - split.x,\n height: top ? split.y - plot.y : plot.y + plot.height - split.y,\n pointerEvents: \"none\",\n };\n};\n\n/**\n * Four-quadrant matrix (priority matrix, Eisenhower, BCG, ...): tinted\n * quadrants with titles, dividers, and labelled dots placed without\n * overlapping labels. Dots can be dragged to another quadrant.\n */\nexport function QuadrantChart(props: QuadrantChartProps) {\n const {\n points,\n xDomain,\n yDomain,\n xSplit,\n ySplit,\n quadrants,\n xLabel,\n yLabel,\n axisLabels,\n showTicks,\n reverseX,\n showLabels,\n pointSize,\n name,\n draggable,\n onPointClick,\n onPointDrop,\n onQuadrantClick,\n renderTooltip,\n quadrantContent,\n } = props;\n const geometry = { xDomain, yDomain, xSplit, ySplit, reverseX };\n\n const options = quadrantChartOptions(\n {\n points,\n xDomain,\n yDomain,\n xSplit,\n ySplit,\n quadrants,\n xLabel,\n yLabel,\n axisLabels,\n showTicks,\n reverseX,\n showLabels,\n pointSize,\n name,\n draggable: draggable ?? !!onPointDrop,\n },\n engineOptions({ ...props, series: [] }),\n );\n\n const overlay = quadrantContent\n ? (plot: ChartRect) => {\n const [x0, x1] = xDomain ?? [0, 10];\n const [y0, y1] = yDomain ?? [0, 10];\n const xs = xSplit ?? (x0 + x1) / 2;\n const ys = ySplit ?? (y0 + y1) / 2;\n const fx = (xs - x0) / (x1 - x0 || 1);\n const fy = (ys - y0) / (y1 - y0 || 1);\n const split = {\n x: plot.x + plot.width * (reverseX ? 1 - fx : fx),\n y: plot.y + plot.height * (1 - fy),\n };\n return CORNERS.map((corner) =>\n quadrantContent[corner] ? (\n <div\n key={corner}\n className={`minerva-chart-quadrant minerva-chart-quadrant-${corner}`}\n style={cornerStyle(corner, plot, split)}\n >\n {quadrantContent[corner]}\n </div>\n ) : null,\n );\n }\n : undefined;\n\n return (\n <ChartBase\n options={options}\n {...frameProps({\n ...props,\n onPointClick: undefined,\n renderTooltip: undefined,\n })}\n overlay={overlay}\n onPointClick={\n onPointClick\n ? (event) => {\n const index = event.items[0]?.index;\n if (index !== undefined && points[index])\n onPointClick(points[index], index);\n }\n : undefined\n }\n onPlotClick={\n onQuadrantClick\n ? (at) => onQuadrantClick(quadrantOf(geometry, at.x, at.y), at)\n : undefined\n }\n onDrop={\n onPointDrop\n ? (event) => {\n const index = event.item.index;\n if (!points[index]) return;\n onPointDrop(points[index], index, {\n x: event.x,\n y: event.y,\n quadrant: quadrantOf(geometry, event.x, event.y),\n });\n }\n : undefined\n }\n renderTooltip={\n renderTooltip\n ? (event) => {\n const index = event.items[0]?.index;\n return index !== undefined && points[index]\n ? renderTooltip(points[index], index)\n : null;\n }\n : undefined\n }\n />\n );\n}\n\n/**\n * Horizontal bar chart: categories down the left side, values from the\n * left (rankings, long names, diverging surveys, stacked progress)\n */\nexport function HorizontalBarChart(props: HorizontalBarChartProps) {\n return <BarChart {...props} orientation=\"horizontal\" />;\n}\n\n/**\n * Range area chart: bands between a lower (`y0`) and an upper edge\n * (confidence intervals, min-max ranges), mixable with lines\n */\nexport function RangeAreaChart(props: RangeAreaChartProps) {\n const { series: input, curve = \"smooth\" } = props;\n const series = useMemo(() => rangeAreaSeries(input, curve), [input, curve]);\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Combination chart: bars, lines and areas on one or two value axes\n * (`yAxis: \"right\"` series use `yAxis2`, aligned on the left grid)\n */\nexport function MixedChart(props: MixedChartProps) {\n return <Chart {...props} />;\n}\n\n/** Bubble chart: x, y and a value sized by area (√value diameters) */\nexport function BubbleChart(props: BubbleChartProps) {\n const { series: input, minSize, maxSize, maxValue } = props;\n const series = useMemo(\n () => bubbleSeries(input, { minSize, maxSize, maxValue }),\n [input, minSize, maxSize, maxValue],\n );\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Histogram: the distribution of raw samples in bins of equal width\n * (Freedman-Diaconis, Sturges or a count); millions of samples are binned\n * in milliseconds\n */\nexport function HistogramChart(props: HistogramChartProps) {\n const {\n values,\n bins,\n domain,\n nice,\n name,\n color,\n formatBin,\n series: extra,\n locale,\n } = props;\n // page language read at every render: a language switch renames the series\n const lang = resolveLocale(locale);\n const series = useMemo(\n () => [\n histogramSeries(values, {\n bins,\n domain,\n nice,\n name,\n color,\n format: formatBin,\n locale: lang,\n }),\n ...(extra ?? []),\n ],\n [values, bins, domain, nice, name, color, formatBin, extra, lang],\n );\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Box plot: medians, quartiles, whiskers and outliers of samples, from raw\n * values (`groups`) or computed statistics (`series`)\n */\nexport function BoxPlotChart(props: BoxPlotChartProps) {\n const {\n series: input,\n groups,\n name,\n whisker,\n orientation,\n locale,\n outlierShape,\n outlierSize,\n } = props;\n const groupName = name ?? presetLabels(resolveLocale(locale)).values;\n const series = useMemo(\n () =>\n boxplotSeries([\n ...(groups?.length\n ? [\n {\n id: \"boxplot\",\n name: groupName,\n data: boxplotData(groups, { whisker }),\n },\n ]\n : []),\n ...(input ?? []),\n ]).map((s) =>\n s.type === \"boxplot\"\n ? {\n ...s,\n outlierShape: s.outlierShape ?? outlierShape,\n outlierSize: s.outlierSize ?? outlierSize,\n }\n : s,\n ),\n [input, groups, groupName, whisker, outlierShape, outlierSize],\n );\n return (\n <ChartBase\n options={engineOptions({ ...props, series, orientation })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Waterfall (bridge) chart: how changes take a value from a start to an\n * end, with subtotals and totals (P&L bridges, budget variances)\n */\nexport function WaterfallChart(props: WaterfallChartProps) {\n const {\n steps,\n name,\n upColor,\n downColor,\n totalColor,\n start,\n labels = true,\n format,\n connector,\n orientation,\n locale,\n } = props;\n const lang = resolveLocale(locale);\n const series = useMemo(\n () => [\n waterfallSeries(steps, {\n name,\n upColor,\n downColor,\n totalColor,\n start,\n labels,\n format,\n connector,\n locale: lang,\n }),\n ],\n [\n steps,\n name,\n upColor,\n downColor,\n totalColor,\n start,\n labels,\n format,\n connector,\n lang,\n ],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n labels: undefined,\n series,\n orientation,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Gantt chart: tasks as bars on a time axis with their progress, groups,\n * milestones and a today line; zooms and pans along the time\n */\nexport function GanttChart(props: GanttChartProps) {\n const {\n tasks,\n colors,\n taskName,\n progressName,\n milestoneName,\n formatProgress,\n dependenciesName,\n dependencyArrows,\n dependencyColor,\n today = false,\n todayLabel,\n xAxis,\n yAxis,\n annotations,\n interaction,\n legend,\n locale,\n } = props;\n const lang = resolveLocale(locale);\n const gantt = useMemo(\n () =>\n ganttSeries(tasks, {\n colors,\n taskName,\n progressName,\n milestoneName,\n formatProgress,\n dependenciesName,\n dependencyArrows,\n dependencyColor,\n locale: lang,\n }),\n [\n tasks,\n colors,\n taskName,\n progressName,\n milestoneName,\n formatProgress,\n dependenciesName,\n dependencyArrows,\n dependencyColor,\n lang,\n ],\n );\n const [mountedAt] = useState(() => Date.now());\n const now =\n today === false\n ? null\n : today === true\n ? mountedAt\n : today instanceof Date\n ? today.getTime()\n : today;\n const lines: ChartAnnotation[] =\n now === null\n ? []\n : [\n {\n type: \"line\",\n axis: \"y\",\n value: now,\n color: \"var(--danger-color, #dc2626)\",\n dash: [4, 3],\n label: todayLabel,\n },\n ];\n return (\n <ChartBase\n options={{\n ...engineOptions({\n ...props,\n series: gantt.series,\n orientation: \"horizontal\",\n }),\n xAxis: {\n type: \"category\",\n categories: gantt.categories,\n ...xAxis,\n },\n yAxis: {\n type: \"time\",\n min: gantt.domain[0],\n max: gantt.domain[1],\n ...yAxis,\n },\n annotations: [...(annotations ?? []), ...lines],\n dependencies: gantt.dependencies,\n interaction: interaction ?? { zoom: \"y\" },\n legend: legend ?? gantt.series.length > 1,\n }}\n {...frameProps(props)}\n />\n );\n}\n"],"mappings":"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"}
@@ -85,15 +85,16 @@ function O(e) {
85
85
  });
86
86
  }
87
87
  function k(e) {
88
- let { data: t, xCategories: i, yCategories: a, colorScale: o, valueRange: s, name: c, radius: l, format: u } = e, f = x(() => d({
88
+ let { data: t, xCategories: i, yCategories: a, colorScale: o, valueRange: s, colorMidpoint: c, name: l, radius: u, format: f } = e, p = x(() => d({
89
89
  data: t,
90
90
  xCategories: i,
91
91
  yCategories: a,
92
92
  colorScale: o,
93
93
  valueRange: s,
94
- name: c,
95
- radius: l,
96
- format: u
94
+ colorMidpoint: c,
95
+ name: l,
96
+ radius: u,
97
+ format: f
97
98
  }).series, [
98
99
  t,
99
100
  i,
@@ -102,10 +103,11 @@ function k(e) {
102
103
  s,
103
104
  c,
104
105
  l,
105
- u
106
- ]), p = r({
106
+ u,
107
+ f
108
+ ]), m = r({
107
109
  ...e,
108
- series: f
110
+ series: p
109
111
  });
110
112
  return /* @__PURE__ */ C(n, {
111
113
  options: {
@@ -114,12 +116,12 @@ function k(e) {
114
116
  xCategories: i,
115
117
  yCategories: a
116
118
  }, {
117
- ...p,
119
+ ...m,
118
120
  legend: e.legend,
119
121
  interaction: e.interaction,
120
122
  tooltip: e.tooltip
121
123
  }),
122
- series: f
124
+ series: p
123
125
  },
124
126
  ...w(e)
125
127
  });
@@ -323,27 +325,33 @@ function z(t) {
323
325
  });
324
326
  }
325
327
  function B(t) {
326
- let { series: i, groups: a, name: c, whisker: l, orientation: u, locale: d } = t, f = c ?? m(e(d)).values, p = x(() => s([...a?.length ? [{
328
+ let { series: i, groups: a, name: c, whisker: l, orientation: u, locale: d, outlierShape: f, outlierSize: p } = t, h = c ?? m(e(d)).values, g = x(() => s([...a?.length ? [{
327
329
  id: "boxplot",
328
- name: f,
330
+ name: h,
329
331
  data: o(a, { whisker: l })
330
- }] : [], ...i ?? []]), [
332
+ }] : [], ...i ?? []]).map((e) => e.type === "boxplot" ? {
333
+ ...e,
334
+ outlierShape: e.outlierShape ?? f,
335
+ outlierSize: e.outlierSize ?? p
336
+ } : e), [
331
337
  i,
332
338
  a,
339
+ h,
340
+ l,
333
341
  f,
334
- l
342
+ p
335
343
  ]);
336
344
  return /* @__PURE__ */ C(n, {
337
345
  options: r({
338
346
  ...t,
339
- series: p,
347
+ series: g,
340
348
  orientation: u
341
349
  }),
342
350
  ...w(t)
343
351
  });
344
352
  }
345
353
  function V(t) {
346
- let { steps: i, name: a, upColor: o, downColor: s, totalColor: c, start: l, labels: u = !0, format: d, orientation: f, locale: p } = t, m = e(p), h = x(() => [b(i, {
354
+ let { steps: i, name: a, upColor: o, downColor: s, totalColor: c, start: l, labels: u = !0, format: d, connector: f, orientation: p, locale: m } = t, h = e(m), g = x(() => [b(i, {
347
355
  name: a,
348
356
  upColor: o,
349
357
  downColor: s,
@@ -351,7 +359,8 @@ function V(t) {
351
359
  start: l,
352
360
  labels: u,
353
361
  format: d,
354
- locale: m
362
+ connector: f,
363
+ locale: h
355
364
  })], [
356
365
  i,
357
366
  a,
@@ -361,26 +370,30 @@ function V(t) {
361
370
  l,
362
371
  u,
363
372
  d,
364
- m
373
+ f,
374
+ h
365
375
  ]);
366
376
  return /* @__PURE__ */ C(n, {
367
377
  options: r({
368
378
  ...t,
369
379
  labels: void 0,
370
- series: h,
371
- orientation: f
380
+ series: g,
381
+ orientation: p
372
382
  }),
373
383
  ...w(t)
374
384
  });
375
385
  }
376
386
  function H(t) {
377
- let { tasks: i, colors: a, taskName: o, progressName: s, milestoneName: c, formatProgress: l, today: d = !1, todayLabel: f, xAxis: p, yAxis: m, annotations: h, interaction: g, legend: _, locale: v } = t, y = e(v), b = x(() => u(i, {
387
+ let { tasks: i, colors: a, taskName: o, progressName: s, milestoneName: c, formatProgress: l, dependenciesName: d, dependencyArrows: f, dependencyColor: p, today: m = !1, todayLabel: h, xAxis: g, yAxis: _, annotations: v, interaction: y, legend: b, locale: T } = t, E = e(T), D = x(() => u(i, {
378
388
  colors: a,
379
389
  taskName: o,
380
390
  progressName: s,
381
391
  milestoneName: c,
382
392
  formatProgress: l,
383
- locale: y
393
+ dependenciesName: d,
394
+ dependencyArrows: f,
395
+ dependencyColor: p,
396
+ locale: E
384
397
  }), [
385
398
  i,
386
399
  a,
@@ -388,36 +401,40 @@ function H(t) {
388
401
  s,
389
402
  c,
390
403
  l,
391
- y
392
- ]), [T] = S(() => Date.now()), E = d === !1 ? null : d === !0 ? T : d instanceof Date ? d.getTime() : d, D = E === null ? [] : [{
404
+ d,
405
+ f,
406
+ p,
407
+ E
408
+ ]), [O] = S(() => Date.now()), k = m === !1 ? null : m === !0 ? O : m instanceof Date ? m.getTime() : m, A = k === null ? [] : [{
393
409
  type: "line",
394
410
  axis: "y",
395
- value: E,
411
+ value: k,
396
412
  color: "var(--danger-color, #dc2626)",
397
413
  dash: [4, 3],
398
- label: f
414
+ label: h
399
415
  }];
400
416
  return /* @__PURE__ */ C(n, {
401
417
  options: {
402
418
  ...r({
403
419
  ...t,
404
- series: b.series,
420
+ series: D.series,
405
421
  orientation: "horizontal"
406
422
  }),
407
423
  xAxis: {
408
424
  type: "category",
409
- categories: b.categories,
410
- ...p
425
+ categories: D.categories,
426
+ ...g
411
427
  },
412
428
  yAxis: {
413
429
  type: "time",
414
- min: b.domain[0],
415
- max: b.domain[1],
416
- ...m
430
+ min: D.domain[0],
431
+ max: D.domain[1],
432
+ ..._
417
433
  },
418
- annotations: [...h ?? [], ...D],
419
- interaction: g ?? { zoom: "y" },
420
- legend: _ ?? b.series.length > 1
434
+ annotations: [...v ?? [], ...A],
435
+ dependencies: D.dependencies,
436
+ interaction: y ?? { zoom: "y" },
437
+ legend: b ?? D.series.length > 1
421
438
  },
422
439
  ...w(t)
423
440
  });
@@ -1 +1 @@
1
- {"version":3,"file":"charts.js","names":["frameProps","props","LineChart","input","series","useMemo","lineSeries","area","stacked","percent","curve","ChartBase","engineOptions","AreaChart","areaSeries","BarChart","barSeries","labels","CandlestickChart","candlestickSeries","HeatmapChart","heatmapChartOptions","data","xCategories","yCategories","colorScale","valueRange","name","radius","format","base","Sparkline","options","sparklineOptions","type","color","reference","renderer","tooltip","palette","ariaLabel","locale","ref","ScatterChart","scatterSeries","CORNERS","cornerStyle","left","corner","top","split","plot","QuadrantChart","geometry","quadrantChartOptions","draggable","onPointDrop","overlay","quadrantContent","x0","x1","xDomain","y0","y1","yDomain","xs","xSplit","ys","ySplit","fx","fy","reverseX","onPointClick","index","event","points","onQuadrantClick","quadrantOf","at","renderTooltip","HorizontalBarChart","RangeAreaChart","rangeAreaSeries","MixedChart","Chart","BubbleChart","bubbleSeries","minSize","maxSize","maxValue","HistogramChart","extra","lang","resolveLocale","histogramSeries","values","formatBin","bins","domain","nice","BoxPlotChart","groupName","presetLabels","boxplotSeries","groups","boxplotData","whisker","WaterfallChart","waterfallSeries","steps","upColor","downColor","totalColor","start","GanttChart","gantt","ganttSeries","tasks","colors","taskName","progressName","milestoneName","formatProgress","mountedAt","useState","now","today","lines","todayLabel","xAxis","yAxis","annotations","interaction","legend"],"sources":["../../../../charts/src/react/charts.tsx"],"sourcesContent":["import { useMemo, useState, type CSSProperties } from \"react\";\nimport {\n areaSeries,\n barSeries,\n boxplotData,\n boxplotSeries,\n bubbleSeries,\n candlestickSeries,\n ganttSeries,\n heatmapChartOptions,\n histogramSeries,\n lineSeries,\n presetLabels,\n quadrantChartOptions,\n quadrantOf,\n rangeAreaSeries,\n scatterSeries,\n sparklineOptions,\n waterfallSeries,\n type QuadrantCorner,\n} from \"../engine/presets\";\nimport { resolveLocale } from \"../engine/locale\";\nimport type { ChartAnnotation, ChartRect } from \"../engine/types\";\nimport { Chart, ChartBase, engineOptions } from \"./Chart\";\nimport type {\n AreaChartProps,\n BarChartProps,\n BoxPlotChartProps,\n BubbleChartProps,\n CandlestickChartProps,\n ChartCommonProps,\n GanttChartProps,\n HeatmapChartProps,\n HistogramChartProps,\n HorizontalBarChartProps,\n LineChartProps,\n MixedChartProps,\n QuadrantChartProps,\n RangeAreaChartProps,\n ScatterChartProps,\n SparklineProps,\n WaterfallChartProps,\n} from \"./types\";\n\nconst frameProps = (props: Omit<ChartCommonProps, \"labels\">) => ({\n height: props.height,\n width: props.width,\n className: props.className,\n style: props.style,\n handleRef: props.ref,\n onHover: props.onHover,\n onPointClick: props.onPointClick,\n onPlotClick: props.onPlotClick,\n onZoom: props.onZoom,\n onRendererChange: props.onRendererChange,\n renderTooltip: props.renderTooltip,\n});\n\n/** Line (or area) chart; handles millions of points on the GPU */\nexport function LineChart(props: LineChartProps) {\n const {\n series: input,\n area = false,\n curve,\n stacked = false,\n percent = false,\n } = props;\n const series = useMemo(\n () => lineSeries(input, area, { curve, stacked: stacked || percent }),\n [input, area, curve, stacked, percent],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n series,\n stackMode: percent ? \"percent\" : undefined,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Area chart: smooth by default, stacked or 100% stacked */\nexport function AreaChart(props: AreaChartProps) {\n const {\n series: input,\n curve = \"smooth\",\n stacked = false,\n percent = false,\n } = props;\n const series = useMemo(\n () => areaSeries(input, { curve, stacked: stacked || percent }),\n [input, curve, stacked, percent],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n series,\n stackMode: percent ? \"percent\" : undefined,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Bar chart: grouped side by side, stacked or 100% stacked, with optional value labels */\nexport function BarChart(props: BarChartProps) {\n const {\n series: input,\n stacked = false,\n percent = false,\n labels = false,\n } = props;\n const series = useMemo(\n () => barSeries(input, stacked || percent, labels),\n [input, stacked, percent, labels],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n labels: undefined,\n series,\n stackMode: percent ? \"percent\" : undefined,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Candlestick (OHLC) chart: rising and falling candles, zoomable on the GPU */\nexport function CandlestickChart(props: CandlestickChartProps) {\n const { series: input } = props;\n const series = useMemo(() => candlestickSeries(input), [input]);\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Heatmap: a grid of cells colored by value (categories or numbers on both axes) */\nexport function HeatmapChart(props: HeatmapChartProps) {\n const {\n data,\n xCategories,\n yCategories,\n colorScale,\n valueRange,\n name,\n radius,\n format,\n } = props;\n const series = useMemo(\n () =>\n heatmapChartOptions({\n data,\n xCategories,\n yCategories,\n colorScale,\n valueRange,\n name,\n radius,\n format,\n }).series,\n [\n data,\n xCategories,\n yCategories,\n colorScale,\n valueRange,\n name,\n radius,\n format,\n ],\n );\n const base = engineOptions({ ...props, series });\n return (\n <ChartBase\n options={{\n ...heatmapChartOptions(\n { data, xCategories, yCategories },\n {\n ...base,\n legend: props.legend,\n interaction: props.interaction,\n tooltip: props.tooltip,\n },\n ),\n series,\n }}\n {...frameProps(props)}\n />\n );\n}\n\n/** Word-sized chart without axes: a trend in a table cell, a KPI card, ... */\nexport function Sparkline(props: SparklineProps) {\n const {\n data,\n type,\n color,\n curve,\n name,\n reference,\n format,\n height = 48,\n width,\n renderer,\n tooltip,\n palette,\n ariaLabel,\n locale,\n labels,\n className,\n style,\n ref,\n onHover,\n renderTooltip,\n } = props;\n const options = useMemo(\n () =>\n sparklineOptions(\n { data, type, color, curve, name, reference, format },\n { renderer, tooltip, palette, ariaLabel, locale, labels },\n ),\n [\n data,\n type,\n color,\n curve,\n name,\n reference,\n format,\n renderer,\n tooltip,\n palette,\n ariaLabel,\n locale,\n labels,\n ],\n );\n return (\n <ChartBase\n options={options}\n height={height}\n width={width}\n className={className}\n style={style}\n handleRef={ref}\n onHover={onHover}\n renderTooltip={renderTooltip}\n />\n );\n}\n\n/** Scatter chart: zooms on both axes, hit testing through a spatial index */\nexport function ScatterChart(props: ScatterChartProps) {\n const { series: input } = props;\n const series = useMemo(() => scatterSeries(input), [input]);\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\nconst CORNERS: QuadrantCorner[] = [\n \"topLeft\",\n \"topRight\",\n \"bottomLeft\",\n \"bottomRight\",\n];\n\nconst cornerStyle = (\n corner: QuadrantCorner,\n plot: ChartRect,\n split: { x: number; y: number },\n): CSSProperties => {\n const left = corner.endsWith(\"Left\");\n const top = corner.startsWith(\"top\");\n return {\n position: \"absolute\",\n left: left ? 0 : split.x - plot.x,\n top: top ? 0 : split.y - plot.y,\n width: left ? split.x - plot.x : plot.x + plot.width - split.x,\n height: top ? split.y - plot.y : plot.y + plot.height - split.y,\n pointerEvents: \"none\",\n };\n};\n\n/**\n * Four-quadrant matrix (priority matrix, Eisenhower, BCG, ...): tinted\n * quadrants with titles, dividers, and labelled dots placed without\n * overlapping labels. Dots can be dragged to another quadrant.\n */\nexport function QuadrantChart(props: QuadrantChartProps) {\n const {\n points,\n xDomain,\n yDomain,\n xSplit,\n ySplit,\n quadrants,\n xLabel,\n yLabel,\n axisLabels,\n showTicks,\n reverseX,\n showLabels,\n pointSize,\n name,\n draggable,\n onPointClick,\n onPointDrop,\n onQuadrantClick,\n renderTooltip,\n quadrantContent,\n } = props;\n const geometry = { xDomain, yDomain, xSplit, ySplit, reverseX };\n\n const options = quadrantChartOptions(\n {\n points,\n xDomain,\n yDomain,\n xSplit,\n ySplit,\n quadrants,\n xLabel,\n yLabel,\n axisLabels,\n showTicks,\n reverseX,\n showLabels,\n pointSize,\n name,\n draggable: draggable ?? !!onPointDrop,\n },\n engineOptions({ ...props, series: [] }),\n );\n\n const overlay = quadrantContent\n ? (plot: ChartRect) => {\n const [x0, x1] = xDomain ?? [0, 10];\n const [y0, y1] = yDomain ?? [0, 10];\n const xs = xSplit ?? (x0 + x1) / 2;\n const ys = ySplit ?? (y0 + y1) / 2;\n const fx = (xs - x0) / (x1 - x0 || 1);\n const fy = (ys - y0) / (y1 - y0 || 1);\n const split = {\n x: plot.x + plot.width * (reverseX ? 1 - fx : fx),\n y: plot.y + plot.height * (1 - fy),\n };\n return CORNERS.map((corner) =>\n quadrantContent[corner] ? (\n <div\n key={corner}\n className={`minerva-chart-quadrant minerva-chart-quadrant-${corner}`}\n style={cornerStyle(corner, plot, split)}\n >\n {quadrantContent[corner]}\n </div>\n ) : null,\n );\n }\n : undefined;\n\n return (\n <ChartBase\n options={options}\n {...frameProps({\n ...props,\n onPointClick: undefined,\n renderTooltip: undefined,\n })}\n overlay={overlay}\n onPointClick={\n onPointClick\n ? (event) => {\n const index = event.items[0]?.index;\n if (index !== undefined && points[index])\n onPointClick(points[index], index);\n }\n : undefined\n }\n onPlotClick={\n onQuadrantClick\n ? (at) => onQuadrantClick(quadrantOf(geometry, at.x, at.y), at)\n : undefined\n }\n onDrop={\n onPointDrop\n ? (event) => {\n const index = event.item.index;\n if (!points[index]) return;\n onPointDrop(points[index], index, {\n x: event.x,\n y: event.y,\n quadrant: quadrantOf(geometry, event.x, event.y),\n });\n }\n : undefined\n }\n renderTooltip={\n renderTooltip\n ? (event) => {\n const index = event.items[0]?.index;\n return index !== undefined && points[index]\n ? renderTooltip(points[index], index)\n : null;\n }\n : undefined\n }\n />\n );\n}\n\n/**\n * Horizontal bar chart: categories down the left side, values from the\n * left (rankings, long names, diverging surveys, stacked progress)\n */\nexport function HorizontalBarChart(props: HorizontalBarChartProps) {\n return <BarChart {...props} orientation=\"horizontal\" />;\n}\n\n/**\n * Range area chart: bands between a lower (`y0`) and an upper edge\n * (confidence intervals, min-max ranges), mixable with lines\n */\nexport function RangeAreaChart(props: RangeAreaChartProps) {\n const { series: input, curve = \"smooth\" } = props;\n const series = useMemo(() => rangeAreaSeries(input, curve), [input, curve]);\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Combination chart: bars, lines and areas on one or two value axes\n * (`yAxis: \"right\"` series use `yAxis2`, aligned on the left grid)\n */\nexport function MixedChart(props: MixedChartProps) {\n return <Chart {...props} />;\n}\n\n/** Bubble chart: x, y and a value sized by area (√value diameters) */\nexport function BubbleChart(props: BubbleChartProps) {\n const { series: input, minSize, maxSize, maxValue } = props;\n const series = useMemo(\n () => bubbleSeries(input, { minSize, maxSize, maxValue }),\n [input, minSize, maxSize, maxValue],\n );\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Histogram: the distribution of raw samples in bins of equal width\n * (Freedman-Diaconis, Sturges or a count); millions of samples are binned\n * in milliseconds\n */\nexport function HistogramChart(props: HistogramChartProps) {\n const {\n values,\n bins,\n domain,\n nice,\n name,\n color,\n formatBin,\n series: extra,\n locale,\n } = props;\n // page language read at every render: a language switch renames the series\n const lang = resolveLocale(locale);\n const series = useMemo(\n () => [\n histogramSeries(values, {\n bins,\n domain,\n nice,\n name,\n color,\n format: formatBin,\n locale: lang,\n }),\n ...(extra ?? []),\n ],\n [values, bins, domain, nice, name, color, formatBin, extra, lang],\n );\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Box plot: medians, quartiles, whiskers and outliers of samples, from raw\n * values (`groups`) or computed statistics (`series`)\n */\nexport function BoxPlotChart(props: BoxPlotChartProps) {\n const { series: input, groups, name, whisker, orientation, locale } = props;\n const groupName = name ?? presetLabels(resolveLocale(locale)).values;\n const series = useMemo(\n () =>\n boxplotSeries([\n ...(groups?.length\n ? [\n {\n id: \"boxplot\",\n name: groupName,\n data: boxplotData(groups, { whisker }),\n },\n ]\n : []),\n ...(input ?? []),\n ]),\n [input, groups, groupName, whisker],\n );\n return (\n <ChartBase\n options={engineOptions({ ...props, series, orientation })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Waterfall (bridge) chart: how changes take a value from a start to an\n * end, with subtotals and totals (P&L bridges, budget variances)\n */\nexport function WaterfallChart(props: WaterfallChartProps) {\n const {\n steps,\n name,\n upColor,\n downColor,\n totalColor,\n start,\n labels = true,\n format,\n orientation,\n locale,\n } = props;\n const lang = resolveLocale(locale);\n const series = useMemo(\n () => [\n waterfallSeries(steps, {\n name,\n upColor,\n downColor,\n totalColor,\n start,\n labels,\n format,\n locale: lang,\n }),\n ],\n [steps, name, upColor, downColor, totalColor, start, labels, format, lang],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n labels: undefined,\n series,\n orientation,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Gantt chart: tasks as bars on a time axis with their progress, groups,\n * milestones and a today line; zooms and pans along the time\n */\nexport function GanttChart(props: GanttChartProps) {\n const {\n tasks,\n colors,\n taskName,\n progressName,\n milestoneName,\n formatProgress,\n today = false,\n todayLabel,\n xAxis,\n yAxis,\n annotations,\n interaction,\n legend,\n locale,\n } = props;\n const lang = resolveLocale(locale);\n const gantt = useMemo(\n () =>\n ganttSeries(tasks, {\n colors,\n taskName,\n progressName,\n milestoneName,\n formatProgress,\n locale: lang,\n }),\n [\n tasks,\n colors,\n taskName,\n progressName,\n milestoneName,\n formatProgress,\n lang,\n ],\n );\n const [mountedAt] = useState(() => Date.now());\n const now =\n today === false\n ? null\n : today === true\n ? mountedAt\n : today instanceof Date\n ? today.getTime()\n : today;\n const lines: ChartAnnotation[] =\n now === null\n ? []\n : [\n {\n type: \"line\",\n axis: \"y\",\n value: now,\n color: \"var(--danger-color, #dc2626)\",\n dash: [4, 3],\n label: todayLabel,\n },\n ];\n return (\n <ChartBase\n options={{\n ...engineOptions({\n ...props,\n series: gantt.series,\n orientation: \"horizontal\",\n }),\n xAxis: {\n type: \"category\",\n categories: gantt.categories,\n ...xAxis,\n },\n yAxis: {\n type: \"time\",\n min: gantt.domain[0],\n max: gantt.domain[1],\n ...yAxis,\n },\n annotations: [...(annotations ?? []), ...lines],\n interaction: interaction ?? { zoom: \"y\" },\n legend: legend ?? gantt.series.length > 1,\n }}\n {...frameProps(props)}\n />\n );\n}\n"],"mappings":";;;;;;;AA4CA,IAAMA,KAAc,OAA6C;CAC/D,QAAQC,EAAM;CACd,OAAOA,EAAM;CACb,WAAWA,EAAM;CACjB,OAAOA,EAAM;CACb,WAAWA,EAAM;CACjB,SAASA,EAAM;CACf,cAAcA,EAAM;CACpB,aAAaA,EAAM;CACnB,QAAQA,EAAM;CACd,kBAAkBA,EAAM;CACxB,eAAeA,EAAM;AACvB;AAGA,SAAgBC,EAAU,GAAuB;CAC/C,IAAM,EACJ,QAAQC,GACR,UAAO,IACP,UACA,aAAU,IACV,aAAU,OACRF,GACEG,IAASC,QACPC,EAAWH,GAAOI,GAAM;EAAE;EAAO,SAASC,KAAWC;CAAQ,CAAC,GACpE;EAACN;EAAOI;EAAMG;EAAOF;EAASC;CAAO,CACvC;CACA,OACE,kBAACE,GAAD;EACE,SAASC,EAAc;GACrB,GAAGX;GACH;GACA,WAAWQ,IAAU,YAAY,KAAA;EACnC,CAAC;EACD,GAAIT,EAAWC,CAAK;CACrB,CAAA;AAEL;AAGA,SAAgBY,EAAU,GAAuB;CAC/C,IAAM,EACJ,QAAQV,GACR,WAAQ,UACR,aAAU,IACV,aAAU,OACRF,GACEG,IAASC,QACPS,EAAWX,GAAO;EAAE;EAAO,SAASK,KAAWC;CAAQ,CAAC,GAC9D;EAACN;EAAOO;EAAOF;EAASC;CAAO,CACjC;CACA,OACE,kBAACE,GAAD;EACE,SAASC,EAAc;GACrB,GAAGX;GACH;GACA,WAAWQ,IAAU,YAAY,KAAA;EACnC,CAAC;EACD,GAAIT,EAAWC,CAAK;CACrB,CAAA;AAEL;AAGA,SAAgBc,EAAS,GAAsB;CAC7C,IAAM,EACJ,QAAQZ,GACR,aAAU,IACV,aAAU,IACV,YAAS,OACPF,GACEG,IAASC,QACPW,EAAUb,GAAOK,KAAWC,GAASQ,CAAM,GACjD;EAACd;EAAOK;EAASC;EAASQ;CAAM,CAClC;CACA,OACE,kBAACN,GAAD;EACE,SAASC,EAAc;GACrB,GAAGX;GACH,QAAQ,KAAA;GACR;GACA,WAAWQ,IAAU,YAAY,KAAA;EACnC,CAAC;EACD,GAAIT,EAAWC,CAAK;CACrB,CAAA;AAEL;AAGA,SAAgBiB,EAAiB,GAA8B;CAC7D,IAAM,EAAE,QAAQf,MAAUF,GACpBG,IAASC,QAAcc,EAAkBhB,CAAK,GAAG,CAACA,CAAK,CAAC;CAC9D,OACE,kBAACQ,GAAD;EACE,SAASC,EAAc;GAAE,GAAGX;GAAO;EAAO,CAAC;EAC3C,GAAID,EAAWC,CAAK;CACrB,CAAA;AAEL;AAGA,SAAgBmB,EAAa,GAA0B;CACrD,IAAM,EACJ,SACA,gBACA,gBACA,eACA,eACA,SACA,WACA,cACEnB,GACEG,IAASC,QAEXgB,EAAoB;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;CACF,CAAC,CAAC,CAAC,QACL;EACEC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;CACF,CACF,GACMC,IAAOlB,EAAc;EAAE,GAAGX;EAAO;CAAO,CAAC;CAC/C,OACE,kBAACU,GAAD;EACE,SAAS;GACP,GAAGU,EACD;IAAE;IAAM;IAAa;GAAY,GACjC;IACE,GAAGS;IACH,QAAQ7B,EAAM;IACd,aAAaA,EAAM;IACnB,SAASA,EAAM;GACjB,CACF;GACA;EACF;EACA,GAAID,EAAWC,CAAK;CACrB,CAAA;AAEL;AAGA,SAAgB8B,EAAU,GAAuB;CAC/C,IAAM,EACJ,SACA,SACA,UACA,UACA,SACA,cACA,WACA,YAAS,IACT,UACA,aACA,YACA,YACA,cACA,WACA,WACA,cACA,UACA,QACA,YACA,qBACE9B,GACE+B,IAAU3B,QAEZ4B,EACE;EAAE;EAAM;EAAM;EAAO;EAAO;EAAM;EAAW;CAAO,GACpD;EAAE;EAAU;EAAS;EAAS;EAAW;EAAQ;CAAO,CAC1D,GACF;EACEX;EACAY;EACAC;EACAzB;EACAiB;EACAS;EACAP;EACAQ;EACAC;EACAC;EACAC;EACAC;EACAxB;CACF,CACF;CACA,OACE,kBAACN,GAAD;EACW;EACD;EACD;EACI;EACJ;EACP,WAAW+B;EACF;EACM;CAChB,CAAA;AAEL;AAGA,SAAgBC,EAAa,GAA0B;CACrD,IAAM,EAAE,QAAQxC,MAAUF,GACpBG,IAASC,QAAcuC,EAAczC,CAAK,GAAG,CAACA,CAAK,CAAC;CAC1D,OACE,kBAACQ,GAAD;EACE,SAASC,EAAc;GAAE,GAAGX;GAAO;EAAO,CAAC;EAC3C,GAAID,EAAWC,CAAK;CACrB,CAAA;AAEL;AAEA,IAAM4C,IAA4B;CAChC;CACA;CACA;CACA;AACF,GAEMC,KACJ,GACA,GACA,MACkB;CAClB,IAAMC,IAAOC,EAAO,SAAS,MAAM,GAC7BC,IAAMD,EAAO,WAAW,KAAK;CACnC,OAAO;EACL,UAAU;EACV,MAAMD,IAAO,IAAIG,EAAM,IAAIC,EAAK;EAChC,KAAKF,IAAM,IAAIC,EAAM,IAAIC,EAAK;EAC9B,OAAOJ,IAAOG,EAAM,IAAIC,EAAK,IAAIA,EAAK,IAAIA,EAAK,QAAQD,EAAM;EAC7D,QAAQD,IAAMC,EAAM,IAAIC,EAAK,IAAIA,EAAK,IAAIA,EAAK,SAASD,EAAM;EAC9D,eAAe;CACjB;AACF;AAOA,SAAgBE,EAAc,GAA2B;CACvD,IAAM,EACJ,WACA,YACA,YACA,WACA,WACA,cACA,WACA,WACA,eACA,cACA,aACA,eACA,cACA,SACA,cACA,iBACA,gBACA,oBACA,kBACA,uBACEnD,GACEoD,IAAW;EAAE;EAAS;EAAS;EAAQ;EAAQ;CAAS,GAExDrB,IAAUsB,EACd;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,WAAWC,KAAa,CAAC,CAACC;CAC5B,GACA5C,EAAc;EAAE,GAAGX;EAAO,QAAQ,CAAC;CAAE,CAAC,CACxC,GAEMwD,IAAUC,KACX,MAAoB;EACnB,IAAM,CAACC,GAAIC,KAAMC,KAAW,CAAC,GAAG,EAAE,GAC5B,CAACC,GAAIC,KAAMC,KAAW,CAAC,GAAG,EAAE,GAC5BC,IAAKC,MAAWP,IAAKC,KAAM,GAC3BO,IAAKC,MAAWN,IAAKC,KAAM,GAC3BM,KAAMJ,IAAKN,MAAOC,IAAKD,KAAM,IAC7BW,KAAMH,IAAKL,MAAOC,IAAKD,KAAM,IAC7BZ,IAAQ;GACZ,GAAGC,EAAK,IAAIA,EAAK,SAASoB,IAAW,IAAIF,IAAKA;GAC9C,GAAGlB,EAAK,IAAIA,EAAK,UAAU,IAAImB;EACjC;EACA,OAAOzB,EAAQ,KAAK,MAClBa,EAAgBV,KACd,kBAAC,OAAD;GAEE,WAAW,iDAAiDA;GAC5D,OAAOF,EAAYE,GAAQG,GAAMD,CAAK;GAErC,UAAAQ,EAAgBV;EACd,GALEA,CAKF,IACH,IACN;CACF,IACA,KAAA;CAEJ,OACE,kBAACrC,GAAD;EACW;EACT,GAAIX,EAAW;GACb,GAAGC;GACH,cAAc,KAAA;GACd,eAAe,KAAA;EACjB,CAAC;EACQ;EACT,cACEuE,KACK,MAAU;GACT,IAAMC,IAAQC,EAAM,MAAM,EAAE,EAAE;GAC9B,AAAID,MAAU,KAAA,KAAaE,EAAOF,MAChCD,EAAaG,EAAOF,IAAQA,CAAK;EACrC,IACA,KAAA;EAEN,aACEG,KACK,MAAOA,EAAgBC,EAAWxB,GAAUyB,EAAG,GAAGA,EAAG,CAAC,GAAGA,CAAE,IAC5D,KAAA;EAEN,QACEtB,KACK,MAAU;GACT,IAAMiB,IAAQC,EAAM,KAAK;GACzB,AAAKC,EAAOF,MACZjB,EAAYmB,EAAOF,IAAQA,GAAO;IAChC,GAAGC,EAAM;IACT,GAAGA,EAAM;IACT,UAAUG,EAAWxB,GAAUqB,EAAM,GAAGA,EAAM,CAAC;GACjD,CAAC;EACH,IACA,KAAA;EAEN,eACEK,KACK,MAAU;GACT,IAAMN,IAAQC,EAAM,MAAM,EAAE,EAAE;GAC9B,OAAOD,MAAU,KAAA,KAAaE,EAAOF,KACjCM,EAAcJ,EAAOF,IAAQA,CAAK,IAClC;EACN,IACA,KAAA;CAEP,CAAA;AAEL;AAMA,SAAgBO,EAAmB,GAAgC;CACjE,OAAO,kBAACjE,GAAD;EAAU,GAAId;EAAO,aAAY;CAAc,CAAA;AACxD;AAMA,SAAgBgF,EAAe,GAA4B;CACzD,IAAM,EAAE,QAAQ9E,GAAO,WAAQ,aAAaF,GACtCG,IAASC,QAAc6E,EAAgB/E,GAAOO,CAAK,GAAG,CAACP,GAAOO,CAAK,CAAC;CAC1E,OACE,kBAACC,GAAD;EACE,SAASC,EAAc;GAAE,GAAGX;GAAO;EAAO,CAAC;EAC3C,GAAID,EAAWC,CAAK;CACrB,CAAA;AAEL;AAMA,SAAgBkF,EAAW,GAAwB;CACjD,OAAO,kBAACC,GAAD,EAAO,GAAInF,EAAQ,CAAA;AAC5B;AAGA,SAAgBoF,EAAY,GAAyB;CACnD,IAAM,EAAE,QAAQlF,GAAO,YAAS,YAAS,gBAAaF,GAChDG,IAASC,QACPiF,EAAanF,GAAO;EAAE;EAAS;EAAS;CAAS,CAAC,GACxD;EAACA;EAAOoF;EAASC;EAASC;CAAQ,CACpC;CACA,OACE,kBAAC9E,GAAD;EACE,SAASC,EAAc;GAAE,GAAGX;GAAO;EAAO,CAAC;EAC3C,GAAID,EAAWC,CAAK;CACrB,CAAA;AAEL;AAOA,SAAgByF,EAAe,GAA4B;CACzD,IAAM,EACJ,WACA,SACA,WACA,SACA,SACA,UACA,cACA,QAAQC,GACR,cACE1F,GAEE2F,IAAOC,EAAcpD,CAAM,GAC3BrC,IAASC,QACP,CACJyF,EAAgBC,GAAQ;EACtB;EACA;EACA;EACA;EACA;EACA,QAAQC;EACR,QAAQJ;CACV,CAAC,GACD,GAAID,KAAS,CAAC,CAChB,GACA;EAACI;EAAQE;EAAMC;EAAQC;EAAMxE;EAAMQ;EAAO6D;EAAWL;EAAOC;CAAI,CAClE;CACA,OACE,kBAACjF,GAAD;EACE,SAASC,EAAc;GAAE,GAAGX;GAAO;EAAO,CAAC;EAC3C,GAAID,EAAWC,CAAK;CACrB,CAAA;AAEL;AAMA,SAAgBmG,EAAa,GAA0B;CACrD,IAAM,EAAE,QAAQjG,GAAO,WAAQ,SAAM,YAAS,gBAAa,cAAWF,GAChEoG,IAAY1E,KAAQ2E,EAAaT,EAAcpD,CAAM,CAAC,CAAC,CAAC,QACxDrC,IAASC,QAEXkG,EAAc,CACZ,GAAIC,GAAQ,SACR,CACE;EACE,IAAI;EACJ,MAAMH;EACN,MAAMI,EAAYD,GAAQ,EAAE,WAAQ,CAAC;CACvC,CACF,IACA,CAAC,GACL,GAAIrG,KAAS,CAAC,CAChB,CAAC,GACH;EAACA;EAAOqG;EAAQH;EAAWK;CAAO,CACpC;CACA,OACE,kBAAC/F,GAAD;EACE,SAASC,EAAc;GAAE,GAAGX;GAAO;GAAQ;EAAY,CAAC;EACxD,GAAID,EAAWC,CAAK;CACrB,CAAA;AAEL;AAMA,SAAgB0G,EAAe,GAA4B;CACzD,IAAM,EACJ,UACA,SACA,YACA,cACA,eACA,UACA,YAAS,IACT,WACA,gBACA,cACE1G,GACE2F,IAAOC,EAAcpD,CAAM,GAC3BrC,IAASC,QACP,CACJuG,EAAgBC,GAAO;EACrB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,QAAQjB;CACV,CAAC,CACH,GACA;EAACiB;EAAOlF;EAAMmF;EAASC;EAAWC;EAAYC;EAAOhG;EAAQY;EAAQ+D;CAAI,CAC3E;CACA,OACE,kBAACjF,GAAD;EACE,SAASC,EAAc;GACrB,GAAGX;GACH,QAAQ,KAAA;GACR;GACA;EACF,CAAC;EACD,GAAID,EAAWC,CAAK;CACrB,CAAA;AAEL;AAMA,SAAgBiH,EAAW,GAAwB;CACjD,IAAM,EACJ,UACA,WACA,aACA,iBACA,kBACA,mBACA,WAAQ,IACR,eACA,UACA,UACA,gBACA,gBACA,WACA,cACEjH,GACE2F,IAAOC,EAAcpD,CAAM,GAC3B0E,IAAQ9G,QAEV+G,EAAYC,GAAO;EACjB;EACA;EACA;EACA;EACA;EACA,QAAQzB;CACV,CAAC,GACH;EACEyB;EACAC;EACAC;EACAC;EACAC;EACAC;EACA9B;CACF,CACF,GACM,CAAC+B,KAAaC,QAAe,KAAK,IAAI,CAAC,GACvCC,IACJC,MAAU,KACN,OACAA,MAAU,KACRH,IACAG,aAAiB,OACfA,EAAM,QAAQ,IACdA,GACJC,IACJF,MAAQ,OACJ,CAAC,IACD,CACE;EACE,MAAM;EACN,MAAM;EACN,OAAOA;EACP,OAAO;EACP,MAAM,CAAC,GAAG,CAAC;EACX,OAAOG;CACT,CACF;CACN,OACE,kBAACrH,GAAD;EACE,SAAS;GACP,GAAGC,EAAc;IACf,GAAGX;IACH,QAAQkH,EAAM;IACd,aAAa;GACf,CAAC;GACD,OAAO;IACL,MAAM;IACN,YAAYA,EAAM;IAClB,GAAGc;GACL;GACA,OAAO;IACL,MAAM;IACN,KAAKd,EAAM,OAAO;IAClB,KAAKA,EAAM,OAAO;IAClB,GAAGe;GACL;GACA,aAAa,CAAC,GAAIC,KAAe,CAAC,GAAI,GAAGJ,CAAK;GAC9C,aAAaK,KAAe,EAAE,MAAM,IAAI;GACxC,QAAQC,KAAUlB,EAAM,OAAO,SAAS;EAC1C;EACA,GAAInH,EAAWC,CAAK;CACrB,CAAA;AAEL"}
1
+ {"version":3,"file":"charts.js","names":["frameProps","props","LineChart","input","series","useMemo","lineSeries","area","stacked","percent","curve","ChartBase","engineOptions","AreaChart","areaSeries","BarChart","barSeries","labels","CandlestickChart","candlestickSeries","HeatmapChart","heatmapChartOptions","data","xCategories","yCategories","colorScale","valueRange","colorMidpoint","name","radius","format","base","Sparkline","options","sparklineOptions","type","color","reference","renderer","tooltip","palette","ariaLabel","locale","ref","ScatterChart","scatterSeries","CORNERS","cornerStyle","left","corner","top","split","plot","QuadrantChart","geometry","quadrantChartOptions","draggable","onPointDrop","overlay","quadrantContent","x0","x1","xDomain","y0","y1","yDomain","xs","xSplit","ys","ySplit","fx","fy","reverseX","onPointClick","index","event","points","onQuadrantClick","quadrantOf","at","renderTooltip","HorizontalBarChart","RangeAreaChart","rangeAreaSeries","MixedChart","Chart","BubbleChart","bubbleSeries","minSize","maxSize","maxValue","HistogramChart","extra","lang","resolveLocale","histogramSeries","values","formatBin","bins","domain","nice","BoxPlotChart","groupName","presetLabels","boxplotSeries","groups","boxplotData","s","outlierShape","outlierSize","whisker","WaterfallChart","waterfallSeries","steps","upColor","downColor","totalColor","start","connector","GanttChart","gantt","ganttSeries","tasks","colors","taskName","progressName","milestoneName","formatProgress","dependenciesName","dependencyArrows","dependencyColor","mountedAt","useState","now","today","lines","todayLabel","xAxis","yAxis","annotations","interaction","legend"],"sources":["../../../../charts/src/react/charts.tsx"],"sourcesContent":["import { useMemo, useState, type CSSProperties } from \"react\";\nimport {\n areaSeries,\n barSeries,\n boxplotData,\n boxplotSeries,\n bubbleSeries,\n candlestickSeries,\n ganttSeries,\n heatmapChartOptions,\n histogramSeries,\n lineSeries,\n presetLabels,\n quadrantChartOptions,\n quadrantOf,\n rangeAreaSeries,\n scatterSeries,\n sparklineOptions,\n waterfallSeries,\n type QuadrantCorner,\n} from \"../engine/presets\";\nimport { resolveLocale } from \"../engine/locale\";\nimport type { ChartAnnotation, ChartRect } from \"../engine/types\";\nimport { Chart, ChartBase, engineOptions } from \"./Chart\";\nimport type {\n AreaChartProps,\n BarChartProps,\n BoxPlotChartProps,\n BubbleChartProps,\n CandlestickChartProps,\n ChartCommonProps,\n GanttChartProps,\n HeatmapChartProps,\n HistogramChartProps,\n HorizontalBarChartProps,\n LineChartProps,\n MixedChartProps,\n QuadrantChartProps,\n RangeAreaChartProps,\n ScatterChartProps,\n SparklineProps,\n WaterfallChartProps,\n} from \"./types\";\n\nconst frameProps = (props: Omit<ChartCommonProps, \"labels\">) => ({\n height: props.height,\n width: props.width,\n className: props.className,\n style: props.style,\n handleRef: props.ref,\n onHover: props.onHover,\n onPointClick: props.onPointClick,\n onPlotClick: props.onPlotClick,\n onZoom: props.onZoom,\n onRendererChange: props.onRendererChange,\n renderTooltip: props.renderTooltip,\n});\n\n/** Line (or area) chart; handles millions of points on the GPU */\nexport function LineChart(props: LineChartProps) {\n const {\n series: input,\n area = false,\n curve,\n stacked = false,\n percent = false,\n } = props;\n const series = useMemo(\n () => lineSeries(input, area, { curve, stacked: stacked || percent }),\n [input, area, curve, stacked, percent],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n series,\n stackMode: percent ? \"percent\" : undefined,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Area chart: smooth by default, stacked or 100% stacked */\nexport function AreaChart(props: AreaChartProps) {\n const {\n series: input,\n curve = \"smooth\",\n stacked = false,\n percent = false,\n } = props;\n const series = useMemo(\n () => areaSeries(input, { curve, stacked: stacked || percent }),\n [input, curve, stacked, percent],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n series,\n stackMode: percent ? \"percent\" : undefined,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Bar chart: grouped side by side, stacked or 100% stacked, with optional value labels */\nexport function BarChart(props: BarChartProps) {\n const {\n series: input,\n stacked = false,\n percent = false,\n labels = false,\n } = props;\n const series = useMemo(\n () => barSeries(input, stacked || percent, labels),\n [input, stacked, percent, labels],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n labels: undefined,\n series,\n stackMode: percent ? \"percent\" : undefined,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Candlestick (OHLC) chart: rising and falling candles, zoomable on the GPU */\nexport function CandlestickChart(props: CandlestickChartProps) {\n const { series: input } = props;\n const series = useMemo(() => candlestickSeries(input), [input]);\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/** Heatmap: a grid of cells colored by value (categories or numbers on both axes) */\nexport function HeatmapChart(props: HeatmapChartProps) {\n const {\n data,\n xCategories,\n yCategories,\n colorScale,\n valueRange,\n colorMidpoint,\n name,\n radius,\n format,\n } = props;\n const series = useMemo(\n () =>\n heatmapChartOptions({\n data,\n xCategories,\n yCategories,\n colorScale,\n valueRange,\n colorMidpoint,\n name,\n radius,\n format,\n }).series,\n [\n data,\n xCategories,\n yCategories,\n colorScale,\n valueRange,\n colorMidpoint,\n name,\n radius,\n format,\n ],\n );\n const base = engineOptions({ ...props, series });\n return (\n <ChartBase\n options={{\n ...heatmapChartOptions(\n { data, xCategories, yCategories },\n {\n ...base,\n legend: props.legend,\n interaction: props.interaction,\n tooltip: props.tooltip,\n },\n ),\n series,\n }}\n {...frameProps(props)}\n />\n );\n}\n\n/** Word-sized chart without axes: a trend in a table cell, a KPI card, ... */\nexport function Sparkline(props: SparklineProps) {\n const {\n data,\n type,\n color,\n curve,\n name,\n reference,\n format,\n height = 48,\n width,\n renderer,\n tooltip,\n palette,\n ariaLabel,\n locale,\n labels,\n className,\n style,\n ref,\n onHover,\n renderTooltip,\n } = props;\n const options = useMemo(\n () =>\n sparklineOptions(\n { data, type, color, curve, name, reference, format },\n { renderer, tooltip, palette, ariaLabel, locale, labels },\n ),\n [\n data,\n type,\n color,\n curve,\n name,\n reference,\n format,\n renderer,\n tooltip,\n palette,\n ariaLabel,\n locale,\n labels,\n ],\n );\n return (\n <ChartBase\n options={options}\n height={height}\n width={width}\n className={className}\n style={style}\n handleRef={ref}\n onHover={onHover}\n renderTooltip={renderTooltip}\n />\n );\n}\n\n/** Scatter chart: zooms on both axes, hit testing through a spatial index */\nexport function ScatterChart(props: ScatterChartProps) {\n const { series: input } = props;\n const series = useMemo(() => scatterSeries(input), [input]);\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\nconst CORNERS: QuadrantCorner[] = [\n \"topLeft\",\n \"topRight\",\n \"bottomLeft\",\n \"bottomRight\",\n];\n\nconst cornerStyle = (\n corner: QuadrantCorner,\n plot: ChartRect,\n split: { x: number; y: number },\n): CSSProperties => {\n const left = corner.endsWith(\"Left\");\n const top = corner.startsWith(\"top\");\n return {\n position: \"absolute\",\n left: left ? 0 : split.x - plot.x,\n top: top ? 0 : split.y - plot.y,\n width: left ? split.x - plot.x : plot.x + plot.width - split.x,\n height: top ? split.y - plot.y : plot.y + plot.height - split.y,\n pointerEvents: \"none\",\n };\n};\n\n/**\n * Four-quadrant matrix (priority matrix, Eisenhower, BCG, ...): tinted\n * quadrants with titles, dividers, and labelled dots placed without\n * overlapping labels. Dots can be dragged to another quadrant.\n */\nexport function QuadrantChart(props: QuadrantChartProps) {\n const {\n points,\n xDomain,\n yDomain,\n xSplit,\n ySplit,\n quadrants,\n xLabel,\n yLabel,\n axisLabels,\n showTicks,\n reverseX,\n showLabels,\n pointSize,\n name,\n draggable,\n onPointClick,\n onPointDrop,\n onQuadrantClick,\n renderTooltip,\n quadrantContent,\n } = props;\n const geometry = { xDomain, yDomain, xSplit, ySplit, reverseX };\n\n const options = quadrantChartOptions(\n {\n points,\n xDomain,\n yDomain,\n xSplit,\n ySplit,\n quadrants,\n xLabel,\n yLabel,\n axisLabels,\n showTicks,\n reverseX,\n showLabels,\n pointSize,\n name,\n draggable: draggable ?? !!onPointDrop,\n },\n engineOptions({ ...props, series: [] }),\n );\n\n const overlay = quadrantContent\n ? (plot: ChartRect) => {\n const [x0, x1] = xDomain ?? [0, 10];\n const [y0, y1] = yDomain ?? [0, 10];\n const xs = xSplit ?? (x0 + x1) / 2;\n const ys = ySplit ?? (y0 + y1) / 2;\n const fx = (xs - x0) / (x1 - x0 || 1);\n const fy = (ys - y0) / (y1 - y0 || 1);\n const split = {\n x: plot.x + plot.width * (reverseX ? 1 - fx : fx),\n y: plot.y + plot.height * (1 - fy),\n };\n return CORNERS.map((corner) =>\n quadrantContent[corner] ? (\n <div\n key={corner}\n className={`minerva-chart-quadrant minerva-chart-quadrant-${corner}`}\n style={cornerStyle(corner, plot, split)}\n >\n {quadrantContent[corner]}\n </div>\n ) : null,\n );\n }\n : undefined;\n\n return (\n <ChartBase\n options={options}\n {...frameProps({\n ...props,\n onPointClick: undefined,\n renderTooltip: undefined,\n })}\n overlay={overlay}\n onPointClick={\n onPointClick\n ? (event) => {\n const index = event.items[0]?.index;\n if (index !== undefined && points[index])\n onPointClick(points[index], index);\n }\n : undefined\n }\n onPlotClick={\n onQuadrantClick\n ? (at) => onQuadrantClick(quadrantOf(geometry, at.x, at.y), at)\n : undefined\n }\n onDrop={\n onPointDrop\n ? (event) => {\n const index = event.item.index;\n if (!points[index]) return;\n onPointDrop(points[index], index, {\n x: event.x,\n y: event.y,\n quadrant: quadrantOf(geometry, event.x, event.y),\n });\n }\n : undefined\n }\n renderTooltip={\n renderTooltip\n ? (event) => {\n const index = event.items[0]?.index;\n return index !== undefined && points[index]\n ? renderTooltip(points[index], index)\n : null;\n }\n : undefined\n }\n />\n );\n}\n\n/**\n * Horizontal bar chart: categories down the left side, values from the\n * left (rankings, long names, diverging surveys, stacked progress)\n */\nexport function HorizontalBarChart(props: HorizontalBarChartProps) {\n return <BarChart {...props} orientation=\"horizontal\" />;\n}\n\n/**\n * Range area chart: bands between a lower (`y0`) and an upper edge\n * (confidence intervals, min-max ranges), mixable with lines\n */\nexport function RangeAreaChart(props: RangeAreaChartProps) {\n const { series: input, curve = \"smooth\" } = props;\n const series = useMemo(() => rangeAreaSeries(input, curve), [input, curve]);\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Combination chart: bars, lines and areas on one or two value axes\n * (`yAxis: \"right\"` series use `yAxis2`, aligned on the left grid)\n */\nexport function MixedChart(props: MixedChartProps) {\n return <Chart {...props} />;\n}\n\n/** Bubble chart: x, y and a value sized by area (√value diameters) */\nexport function BubbleChart(props: BubbleChartProps) {\n const { series: input, minSize, maxSize, maxValue } = props;\n const series = useMemo(\n () => bubbleSeries(input, { minSize, maxSize, maxValue }),\n [input, minSize, maxSize, maxValue],\n );\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Histogram: the distribution of raw samples in bins of equal width\n * (Freedman-Diaconis, Sturges or a count); millions of samples are binned\n * in milliseconds\n */\nexport function HistogramChart(props: HistogramChartProps) {\n const {\n values,\n bins,\n domain,\n nice,\n name,\n color,\n formatBin,\n series: extra,\n locale,\n } = props;\n // page language read at every render: a language switch renames the series\n const lang = resolveLocale(locale);\n const series = useMemo(\n () => [\n histogramSeries(values, {\n bins,\n domain,\n nice,\n name,\n color,\n format: formatBin,\n locale: lang,\n }),\n ...(extra ?? []),\n ],\n [values, bins, domain, nice, name, color, formatBin, extra, lang],\n );\n return (\n <ChartBase\n options={engineOptions({ ...props, series })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Box plot: medians, quartiles, whiskers and outliers of samples, from raw\n * values (`groups`) or computed statistics (`series`)\n */\nexport function BoxPlotChart(props: BoxPlotChartProps) {\n const {\n series: input,\n groups,\n name,\n whisker,\n orientation,\n locale,\n outlierShape,\n outlierSize,\n } = props;\n const groupName = name ?? presetLabels(resolveLocale(locale)).values;\n const series = useMemo(\n () =>\n boxplotSeries([\n ...(groups?.length\n ? [\n {\n id: \"boxplot\",\n name: groupName,\n data: boxplotData(groups, { whisker }),\n },\n ]\n : []),\n ...(input ?? []),\n ]).map((s) =>\n s.type === \"boxplot\"\n ? {\n ...s,\n outlierShape: s.outlierShape ?? outlierShape,\n outlierSize: s.outlierSize ?? outlierSize,\n }\n : s,\n ),\n [input, groups, groupName, whisker, outlierShape, outlierSize],\n );\n return (\n <ChartBase\n options={engineOptions({ ...props, series, orientation })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Waterfall (bridge) chart: how changes take a value from a start to an\n * end, with subtotals and totals (P&L bridges, budget variances)\n */\nexport function WaterfallChart(props: WaterfallChartProps) {\n const {\n steps,\n name,\n upColor,\n downColor,\n totalColor,\n start,\n labels = true,\n format,\n connector,\n orientation,\n locale,\n } = props;\n const lang = resolveLocale(locale);\n const series = useMemo(\n () => [\n waterfallSeries(steps, {\n name,\n upColor,\n downColor,\n totalColor,\n start,\n labels,\n format,\n connector,\n locale: lang,\n }),\n ],\n [\n steps,\n name,\n upColor,\n downColor,\n totalColor,\n start,\n labels,\n format,\n connector,\n lang,\n ],\n );\n return (\n <ChartBase\n options={engineOptions({\n ...props,\n labels: undefined,\n series,\n orientation,\n })}\n {...frameProps(props)}\n />\n );\n}\n\n/**\n * Gantt chart: tasks as bars on a time axis with their progress, groups,\n * milestones and a today line; zooms and pans along the time\n */\nexport function GanttChart(props: GanttChartProps) {\n const {\n tasks,\n colors,\n taskName,\n progressName,\n milestoneName,\n formatProgress,\n dependenciesName,\n dependencyArrows,\n dependencyColor,\n today = false,\n todayLabel,\n xAxis,\n yAxis,\n annotations,\n interaction,\n legend,\n locale,\n } = props;\n const lang = resolveLocale(locale);\n const gantt = useMemo(\n () =>\n ganttSeries(tasks, {\n colors,\n taskName,\n progressName,\n milestoneName,\n formatProgress,\n dependenciesName,\n dependencyArrows,\n dependencyColor,\n locale: lang,\n }),\n [\n tasks,\n colors,\n taskName,\n progressName,\n milestoneName,\n formatProgress,\n dependenciesName,\n dependencyArrows,\n dependencyColor,\n lang,\n ],\n );\n const [mountedAt] = useState(() => Date.now());\n const now =\n today === false\n ? null\n : today === true\n ? mountedAt\n : today instanceof Date\n ? today.getTime()\n : today;\n const lines: ChartAnnotation[] =\n now === null\n ? []\n : [\n {\n type: \"line\",\n axis: \"y\",\n value: now,\n color: \"var(--danger-color, #dc2626)\",\n dash: [4, 3],\n label: todayLabel,\n },\n ];\n return (\n <ChartBase\n options={{\n ...engineOptions({\n ...props,\n series: gantt.series,\n orientation: \"horizontal\",\n }),\n xAxis: {\n type: \"category\",\n categories: gantt.categories,\n ...xAxis,\n },\n yAxis: {\n type: \"time\",\n min: gantt.domain[0],\n max: gantt.domain[1],\n ...yAxis,\n },\n annotations: [...(annotations ?? []), ...lines],\n dependencies: gantt.dependencies,\n interaction: interaction ?? { zoom: \"y\" },\n legend: legend ?? gantt.series.length > 1,\n }}\n {...frameProps(props)}\n />\n );\n}\n"],"mappings":"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ACxG;EAAOsG;EAAQH;EAAWQ;EAASF;EAAcC;CAAW,CAC/D;CACA,OACE,kBAAClG,GAAD;EACE,SAASC,EAAc;GAAE,GAAGX;GAAO;GAAQ;EAAY,CAAC;EACxD,GAAID,EAAWC,CAAK;CACrB,CAAA;AAEL;AAMA,SAAgB8G,EAAe,GAA4B;CACzD,IAAM,EACJ,UACA,SACA,YACA,cACA,eACA,UACA,YAAS,IACT,WACA,cACA,gBACA,cACE9G,GACE4F,IAAOC,EAAcpD,CAAM,GAC3BtC,IAASC,QACP,CACJ2G,EAAgBC,GAAO;EACrB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,QAAQpB;CACV,CAAC,CACH,GACA;EACEoB;EACArF;EACAsF;EACAC;EACAC;EACAC;EACApG;EACAa;EACAwF;EACAzB;CACF,CACF;CACA,OACE,kBAAClF,GAAD;EACE,SAASC,EAAc;GACrB,GAAGX;GACH,QAAQ,KAAA;GACR;GACA;EACF,CAAC;EACD,GAAID,EAAWC,CAAK;CACrB,CAAA;AAEL;AAMA,SAAgBsH,EAAW,GAAwB;CACjD,IAAM,EACJ,UACA,WACA,aACA,iBACA,kBACA,mBACA,qBACA,qBACA,oBACA,WAAQ,IACR,eACA,UACA,UACA,gBACA,gBACA,WACA,cACEtH,GACE4F,IAAOC,EAAcpD,CAAM,GAC3B8E,IAAQnH,QAEVoH,EAAYC,GAAO;EACjB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,QAAQ7B;CACV,CAAC,GACH;EACE6B;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACArC;CACF,CACF,GACM,CAACsC,KAAaC,QAAe,KAAK,IAAI,CAAC,GACvCC,IACJC,MAAU,KACN,OACAA,MAAU,KACRH,IACAG,aAAiB,OACfA,EAAM,QAAQ,IACdA,GACJC,IACJF,MAAQ,OACJ,CAAC,IACD,CACE;EACE,MAAM;EACN,MAAM;EACN,OAAOA;EACP,OAAO;EACP,MAAM,CAAC,GAAG,CAAC;EACX,OAAOG;CACT,CACF;CACN,OACE,kBAAC7H,GAAD;EACE,SAAS;GACP,GAAGC,EAAc;IACf,GAAGX;IACH,QAAQuH,EAAM;IACd,aAAa;GACf,CAAC;GACD,OAAO;IACL,MAAM;IACN,YAAYA,EAAM;IAClB,GAAGiB;GACL;GACA,OAAO;IACL,MAAM;IACN,KAAKjB,EAAM,OAAO;IAClB,KAAKA,EAAM,OAAO;IAClB,GAAGkB;GACL;GACA,aAAa,CAAC,GAAIC,KAAe,CAAC,GAAI,GAAGJ,CAAK;GAC9C,cAAcf,EAAM;GACpB,aAAaoB,KAAe,EAAE,MAAM,IAAI;GACxC,QAAQC,KAAUrB,EAAM,OAAO,SAAS;EAC1C;EACA,GAAIxH,EAAWC,CAAK;CACrB,CAAA;AAEL"}
@@ -0,0 +1,2 @@
1
+ "use client";const e=require("../engine/graph/chart.cjs");let t=require("react"),n=require("react/jsx-runtime");var r=e=>{if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},i=(e,t)=>{let n=Object.keys(e);return n.length===Object.keys(t).length&&n.every(n=>e[n]===t[n]&&Object.prototype.hasOwnProperty.call(t,n))},a=(e,t)=>e===t?!0:Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):r(e)&&r(t)&&i(e,t),o=(e,t)=>{if(e===t)return!0;let n=Object.keys(e);return n.length===Object.keys(t).length&&n.every(n=>Object.prototype.hasOwnProperty.call(t,n)&&a(e[n],t[n]))},s=(e,t)=>e===void 0?t:typeof e==`number`?`${e}px`:e;function c({options:r,height:i,width:a,className:c,style:l,handleRef:u,...d}){let f=(0,t.useRef)(null),p=(0,t.useRef)(null),m=(0,t.useRef)(d),[h,g]=(0,t.useState)(r);h!==r&&!o(h,r)&&g(r);let _=(0,t.useRef)(h);return(0,t.useEffect)(()=>{m.current=d}),(0,t.useEffect)(()=>{let t=f.current;if(!t)return;let n=e.createGraphChart(t,_.current);p.current=n;let r=[n.on(`hover`,e=>m.current.onHover?.(e)),n.on(`click`,e=>m.current.onItemClick?.(e)),n.on(`select`,e=>m.current.onSelectionChange?.(e.ids)),n.on(`toggle`,e=>m.current.onToggle?.(e)),n.on(`groupToggle`,e=>m.current.onGroupToggle?.(e)),n.on(`layoutEnd`,e=>m.current.onLayoutEnd?.(e)),n.on(`renderer`,e=>m.current.onRendererChange?.(e))];return()=>{r.forEach(e=>e()),n.destroy(),p.current=null}},[]),(0,t.useEffect)(()=>{_.current!==h&&(_.current=h,p.current?.setOptions(h))},[h]),(0,t.useImperativeHandle)(u,()=>({fit:e=>p.current?.fit(e),focusNode:(e,t)=>p.current?.focusNode(e,t),setData:e=>p.current?.setData(e),select:e=>p.current?.select(e),getSelection:()=>p.current?.getSelection()??[],expand:e=>p.current?.expand(e),collapse:e=>p.current?.collapse(e),toggle:e=>p.current?.toggle(e),getPositions:()=>p.current?.getPositions()??{},relayout:()=>p.current?.relayout(),getRenderer:()=>p.current?.getRenderer()??null,getInstance:()=>p.current}),[]),(0,n.jsx)(`div`,{className:c,style:{position:`relative`,width:s(a,`100%`),height:s(i,`480px`),...l},children:(0,n.jsx)(`div`,{ref:f,style:{position:`absolute`,inset:0}})})}function l({props:e,layout:t}){let{nodes:r,edges:i,groups:a,height:o,width:s,nodeShape:l,nodeSize:u,edgeStyle:d,edgeWidth:f,edgeColor:p,arrows:m,arrowStyle:h,nodeLabels:g,edgeLabels:_,highlight:v,selected:y,animation:b,fitPadding:x,controls:S,legend:C,tooltip:w,interaction:T,renderer:E,palette:D,ariaLabel:O,locale:k,labels:A,onHover:j,onItemClick:M,onSelectionChange:N,onToggle:P,onGroupToggle:F,onLayoutEnd:I,onRendererChange:L,className:R,style:z,ref:B}=e,V={nodes:r,edges:i,groups:a,...t,nodeShape:l,nodeSize:u,edgeStyle:d,edgeWidth:f,edgeColor:p,arrows:m,arrowStyle:h,nodeLabels:g,edgeLabels:_,highlight:v,selected:y,animation:b,fitPadding:x,controls:S,legend:C,tooltip:w,interaction:T,renderer:E,palette:D,ariaLabel:O,locale:k,labels:A};return(0,n.jsx)(c,{options:V,height:o,width:s,className:R,style:z,handleRef:B,onHover:j,onItemClick:M,onSelectionChange:N,onToggle:P,onGroupToggle:F,onLayoutEnd:I,onRendererChange:L})}function u(e){let{layout:t,direction:r,force:i,circular:a,dag:o,tree:s}=e;return(0,n.jsx)(l,{props:e,layout:{layout:t??`force`,direction:r,force:i,circular:a,dag:o,tree:s}})}function d(e){let{direction:t,dag:r,criticalPath:i}=e;return(0,n.jsx)(l,{props:e,layout:{layout:`dag`,direction:t??`TB`,dag:i===void 0?r:{...r,criticalPath:i}}})}function f(e){let{layout:t,direction:r,tree:i}=e;return(0,n.jsx)(l,{props:e,layout:{layout:t??`tree`,direction:r,tree:i}})}exports.DependencyGraph=d,exports.GraphChart=u,exports.TreeChart=f;
2
+ //# sourceMappingURL=graph.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph.cjs","names":["useRef","useState","createGraphChart","require_chart","react","react_jsx_runtime","isPlainObject","value","proto","shallowEqual","keys","a","b","key","sameValue","v","i","sameGraphOptions","cssSize","fallback","GraphBase","handlers","containerRef","chartRef","handlersRef","stable","setStable","options","optionsRef","container","chart","offs","r","off","handleRef","animate","id","opts","data","ids","width","height","style","GraphFrame","props","layout","ref","GraphChart","DependencyGraph","direction","criticalPath","dag","TreeChart"],"sources":["../../../../charts/src/react/graph.tsx"],"sourcesContent":["import {\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n type CSSProperties,\n type Ref,\n} from \"react\";\nimport { createGraphChart } from \"../engine/graph/chart\";\nimport type {\n GraphChartInstance,\n GraphChartLabels,\n GraphChartOptions,\n GraphCircularOptions,\n GraphDagOptions,\n GraphData,\n GraphDirection,\n GraphEdge,\n GraphEdgeStyle,\n GraphForceOptions,\n GraphGroup,\n GraphGroupToggleEvent,\n GraphHoverEvent,\n GraphInteractionOptions,\n GraphLayoutEndEvent,\n GraphLayoutType,\n GraphLegendOptions,\n GraphNode,\n GraphNodeShape,\n GraphPoint,\n GraphToggleEvent,\n GraphTooltipOptions,\n GraphTreeOptions,\n} from \"../engine/graph/types\";\nimport type {\n ChartRendererKind,\n ChartRendererPreference,\n} from \"../engine/types\";\n\n/** Imperative handle of the graph components (`ref`) */\nexport interface GraphChartHandle {\n /** Fits the visible nodes in the view */\n fit(animate?: boolean): void;\n /** Centers a node (expanding its collapsed ancestors), optionally zooming */\n focusNode(id: string, options?: { zoom?: number; animate?: boolean }): void;\n /** Replaces the data until the next render with new props */\n setData(data: GraphData): void;\n /** Selects nodes (`null` clears the selection) */\n select(ids: readonly string[] | string | null): void;\n /** Ids of the selected nodes */\n getSelection(): string[];\n /** Expands a node (all nodes without an id) */\n expand(id?: string): void;\n /** Collapses a node (all nodes with children without an id) */\n collapse(id?: string): void;\n /** Collapses / expands a node */\n toggle(id: string): void;\n /** Current positions of the nodes in layout units */\n getPositions(): Record<string, GraphPoint>;\n /** Computes the layout again */\n relayout(): void;\n /** Backend in use, `null` until ready */\n getRenderer(): ChartRendererKind | null;\n /** The underlying engine instance (minerva-design/charts/core) */\n getInstance(): GraphChartInstance | null;\n}\n\n/** Props shared by `GraphChart`, `DependencyGraph` and `TreeChart` */\nexport interface GraphCommonProps {\n /** The nodes */\n nodes: readonly GraphNode[];\n /** The edges (parent → child in trees, prerequisite → dependent in DAGs) */\n edges: readonly GraphEdge[];\n /** Groups: legend order, names and colors */\n groups?: readonly GraphGroup[];\n /**\n * Height of the chart (the legend included); numbers are pixels\n * @default 480\n */\n height?: number | string;\n /**\n * Width of the chart; numbers are pixels\n * @default \"100%\"\n */\n width?: number | string;\n /** Shape of the nodes without `shape` (boxes for DAGs, org charts and mind maps, circles otherwise) */\n nodeShape?: GraphNodeShape;\n /** Circle diameter in layout units, or `[min, max]` scaled by the node `value` */\n nodeSize?: number | readonly [number, number];\n /** Edge shape; depends on the layout when omitted */\n edgeStyle?: GraphEdgeStyle;\n /** Edge width in CSS pixels, or `[min, max]` scaled by the edge `value` */\n edgeWidth?: number | readonly [number, number];\n /**\n * Edge colors: neutral or tinted with the source / target node\n * @default \"neutral\"\n */\n edgeColor?: \"neutral\" | \"source\" | \"target\";\n /** Arrowheads on the edges without `directed` */\n arrows?: boolean;\n /**\n * Shape of the arrowheads: `open` (a slim outlined head) or `filled` (a\n * solid head in the edge color, which follows the theme and the highlight)\n * @default \"open\"\n */\n arrowStyle?: \"open\" | \"filled\";\n /**\n * Node labels; `auto` hides minor and overlapping labels when zoomed out.\n * Text inside boxes keeps a readable minimum size and is shortened with an ellipsis;\n * it is hidden only when the box is too small for any text, or with `false`\n * @default \"auto\"\n */\n nodeLabels?: boolean | \"auto\";\n /**\n * Edge labels: always, `auto` (zoomed in or highlighted), only `hover`, or never\n * @default \"auto\"\n */\n edgeLabels?: boolean | \"auto\" | \"hover\";\n /** What hovering / selecting a node highlights */\n highlight?: \"neighbors\" | \"lineage\" | \"none\";\n /** Ids of the selected nodes (changing it updates the selection) */\n selected?: readonly string[];\n /**\n * Animates layout and data changes; a number is the duration in ms\n * @default true\n */\n animation?: boolean | number;\n /**\n * Padding around the graph when fitting it, in CSS pixels\n * @default 24\n */\n fitPadding?: number;\n /**\n * Zoom buttons (zoom in, zoom out, fit)\n * @default true\n */\n controls?: boolean;\n /** Legend of the groups; shown by default with several groups */\n legend?: boolean | GraphLegendOptions;\n /** Tooltip; `false` disables it */\n tooltip?: boolean | GraphTooltipOptions;\n /**\n * Drag pans, Ctrl / ⌘ + wheel and pinch zoom, nodes can be dragged\n * (force, circular), click selects, arrow keys move between nodes;\n * `false` makes the chart static\n * @default true\n */\n interaction?: boolean | GraphInteractionOptions;\n /**\n * Backend of the nodes and edges: `auto` tries WebGPU, then WebGL2, then\n * WebGL, then Canvas2D, skipping GPUs running in software\n * @default \"auto\"\n */\n renderer?: ChartRendererPreference;\n /** Group colors (defaults to the `--chart-series-1..8` CSS variables, then the theme colors) */\n palette?: readonly string[];\n /** Accessible name of the chart */\n ariaLabel?: string;\n /**\n * Language of the built-in texts (summary, announcements, tooltip,\n * buttons); built-in texts in English, Chinese, Japanese and French\n * @default the page language (`<html lang>`), then the browser language\n */\n locale?: string;\n /** Overrides of the built-in texts of the `locale` */\n labels?: Partial<GraphChartLabels>;\n /** Called when the hovered (or keyboard-focused) node / edge changes */\n onHover?: (event: GraphHoverEvent | null) => void;\n /** Called when a node or an edge is clicked (or a node activated with Enter) */\n onItemClick?: (event: GraphHoverEvent) => void;\n /** Called with the ids of the selected nodes when the selection changes */\n onSelectionChange?: (ids: string[]) => void;\n /** Called when a tree node is collapsed or expanded */\n onToggle?: (event: GraphToggleEvent) => void;\n /** Called when the legend shows / hides a group */\n onGroupToggle?: (event: GraphGroupToggleEvent) => void;\n /** Called when the layout is done (the force simulation cooled down) */\n onLayoutEnd?: (event: GraphLayoutEndEvent) => void;\n /** Called with the backend once it is ready (and after a fallback) */\n onRendererChange?: (renderer: ChartRendererKind) => void;\n /** Class of the outer element */\n className?: string;\n /** Style of the outer element */\n style?: CSSProperties;\n /** Imperative handle */\n ref?: Ref<GraphChartHandle>;\n}\n\n/** Props of `GraphChart` */\nexport interface GraphChartProps extends GraphCommonProps {\n /**\n * Placement of the nodes\n * @default \"force\"\n */\n layout?: GraphLayoutType;\n /** Direction of the `dag` and `tree` layouts */\n direction?: GraphDirection;\n /** Force layout settings (Barnes–Hut, worker for large graphs) */\n force?: GraphForceOptions;\n /** Circular / arc layout settings */\n circular?: GraphCircularOptions;\n /** Layered layout settings (`layout=\"dag\"`) */\n dag?: GraphDagOptions;\n /** Tree layout settings (tree layouts) */\n tree?: GraphTreeOptions;\n}\n\n/** Props of `DependencyGraph` */\nexport interface DependencyGraphProps extends GraphCommonProps {\n /**\n * Flow direction\n * @default \"TB\"\n */\n direction?: GraphDirection;\n /** Layer / node spacing, crossing reduction sweeps */\n dag?: GraphDagOptions;\n /**\n * Highlights the longest path (node `value` = duration); `true` computes it, a list of ids sets it\n * @default false\n */\n criticalPath?: boolean | readonly string[];\n}\n\n/** Props of `TreeChart` */\nexport interface TreeChartProps extends GraphCommonProps {\n /**\n * Kind of tree: tidy tree, radial tree, two-sided mind map or org chart\n * @default \"tree\"\n */\n layout?: \"tree\" | \"radial\" | \"mindmap\" | \"org\";\n /**\n * Direction of `layout=\"tree\"`\n * @default \"LR\"\n */\n direction?: GraphDirection;\n /** Root, spacing, collapsing, card size */\n tree?: GraphTreeOptions;\n}\n\n// ----------------------------------------------------------------- base\n\ninterface Handlers {\n onHover?: (event: GraphHoverEvent | null) => void;\n onItemClick?: (event: GraphHoverEvent) => void;\n onSelectionChange?: (ids: string[]) => void;\n onToggle?: (event: GraphToggleEvent) => void;\n onGroupToggle?: (event: GraphGroupToggleEvent) => void;\n onLayoutEnd?: (event: GraphLayoutEndEvent) => void;\n onRendererChange?: (renderer: ChartRendererKind) => void;\n}\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> => {\n if (typeof value !== \"object\" || value === null) return false;\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n};\n\nconst shallowEqual = (\n a: Record<string, unknown>,\n b: Record<string, unknown>,\n): boolean => {\n const keys = Object.keys(a);\n if (keys.length !== Object.keys(b).length) return false;\n return keys.every(\n (key) => a[key] === b[key] && Object.prototype.hasOwnProperty.call(b, key),\n );\n};\n\nconst sameValue = (a: unknown, b: unknown): boolean => {\n if (a === b) return true;\n if (Array.isArray(a) && Array.isArray(b))\n return a.length === b.length && a.every((v, i) => v === b[i]);\n return isPlainObject(a) && isPlainObject(b) && shallowEqual(a, b);\n};\n\n/**\n * Whether two option objects describe the same chart: top-level values by\n * identity, one level deep for inline arrays / objects (node and edge\n * arrays rebuilt with the same objects are the same data)\n */\nconst sameGraphOptions = (\n a: GraphChartOptions,\n b: GraphChartOptions,\n): boolean => {\n if (a === b) return true;\n const keys = Object.keys(a) as (keyof GraphChartOptions)[];\n if (keys.length !== Object.keys(b).length) return false;\n return keys.every(\n (key) =>\n Object.prototype.hasOwnProperty.call(b, key) && sameValue(a[key], b[key]),\n );\n};\n\nconst cssSize = (value: number | string | undefined, fallback: string) =>\n value === undefined\n ? fallback\n : typeof value === \"number\"\n ? `${value}px`\n : value;\n\ninterface GraphBaseProps extends Handlers {\n options: GraphChartOptions;\n height?: number | string;\n width?: number | string;\n className?: string;\n style?: CSSProperties;\n handleRef?: Ref<GraphChartHandle>;\n}\n\nfunction GraphBase({\n options,\n height,\n width,\n className,\n style,\n handleRef,\n ...handlers\n}: GraphBaseProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const chartRef = useRef<GraphChartInstance | null>(null);\n const handlersRef = useRef<Handlers>(handlers);\n // keep the previous options while they describe the same chart\n const [stable, setStable] = useState(options);\n if (stable !== options && !sameGraphOptions(stable, options))\n setStable(options);\n const optionsRef = useRef(stable);\n\n useEffect(() => {\n handlersRef.current = handlers;\n });\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) return;\n const chart = createGraphChart(container, optionsRef.current);\n chartRef.current = chart;\n const offs = [\n chart.on(\"hover\", (e) => handlersRef.current.onHover?.(e)),\n chart.on(\"click\", (e) => handlersRef.current.onItemClick?.(e)),\n chart.on(\"select\", (e) => handlersRef.current.onSelectionChange?.(e.ids)),\n chart.on(\"toggle\", (e) => handlersRef.current.onToggle?.(e)),\n chart.on(\"groupToggle\", (e) => handlersRef.current.onGroupToggle?.(e)),\n chart.on(\"layoutEnd\", (e) => handlersRef.current.onLayoutEnd?.(e)),\n chart.on(\"renderer\", (r) => handlersRef.current.onRendererChange?.(r)),\n ];\n return () => {\n offs.forEach((off) => off());\n chart.destroy();\n chartRef.current = null;\n };\n }, []);\n\n useEffect(() => {\n if (optionsRef.current === stable) return;\n optionsRef.current = stable;\n chartRef.current?.setOptions(stable);\n }, [stable]);\n\n useImperativeHandle(\n handleRef,\n () => ({\n fit: (animate) => chartRef.current?.fit(animate),\n focusNode: (id, opts) => chartRef.current?.focusNode(id, opts),\n setData: (data) => chartRef.current?.setData(data),\n select: (ids) => chartRef.current?.select(ids),\n getSelection: () => chartRef.current?.getSelection() ?? [],\n expand: (id) => chartRef.current?.expand(id),\n collapse: (id) => chartRef.current?.collapse(id),\n toggle: (id) => chartRef.current?.toggle(id),\n getPositions: () => chartRef.current?.getPositions() ?? {},\n relayout: () => chartRef.current?.relayout(),\n getRenderer: () => chartRef.current?.getRenderer() ?? null,\n getInstance: () => chartRef.current,\n }),\n [],\n );\n\n return (\n <div\n className={className}\n style={{\n position: \"relative\",\n width: cssSize(width, \"100%\"),\n height: cssSize(height, \"480px\"),\n ...style,\n }}\n >\n <div ref={containerRef} style={{ position: \"absolute\", inset: 0 }} />\n </div>\n );\n}\n\n/** Renders a chart from the common props and the layout options */\nfunction GraphFrame({\n props,\n layout,\n}: {\n props: GraphCommonProps;\n layout: Pick<\n GraphChartOptions,\n \"layout\" | \"direction\" | \"force\" | \"circular\" | \"dag\" | \"tree\"\n >;\n}) {\n const {\n nodes,\n edges,\n groups,\n height,\n width,\n nodeShape,\n nodeSize,\n edgeStyle,\n edgeWidth,\n edgeColor,\n arrows,\n arrowStyle,\n nodeLabels,\n edgeLabels,\n highlight,\n selected,\n animation,\n fitPadding,\n controls,\n legend,\n tooltip,\n interaction,\n renderer,\n palette,\n ariaLabel,\n locale,\n labels,\n onHover,\n onItemClick,\n onSelectionChange,\n onToggle,\n onGroupToggle,\n onLayoutEnd,\n onRendererChange,\n className,\n style,\n ref,\n } = props;\n const options: GraphChartOptions = {\n nodes,\n edges,\n groups,\n ...layout,\n nodeShape,\n nodeSize,\n edgeStyle,\n edgeWidth,\n edgeColor,\n arrows,\n arrowStyle,\n nodeLabels,\n edgeLabels,\n highlight,\n selected,\n animation,\n fitPadding,\n controls,\n legend,\n tooltip,\n interaction,\n renderer,\n palette,\n ariaLabel,\n locale,\n labels,\n };\n return (\n <GraphBase\n options={options}\n height={height}\n width={width}\n className={className}\n style={style}\n handleRef={ref}\n onHover={onHover}\n onItemClick={onItemClick}\n onSelectionChange={onSelectionChange}\n onToggle={onToggle}\n onGroupToggle={onGroupToggle}\n onLayoutEnd={onLayoutEnd}\n onRendererChange={onRendererChange}\n />\n );\n}\n\n// ----------------------------------------------------------- components\n\n/**\n * Relationship network (关系图): force-directed by default (Barnes–Hut,\n * a Web Worker for large graphs), or circular, arc diagram, layered or\n * tree layouts; GPU rendering, pan / zoom, drag, neighbor highlight,\n * legend toggles and keyboard navigation.\n */\nexport function GraphChart(props: GraphChartProps) {\n const { layout, direction, force, circular, dag, tree } = props;\n return (\n <GraphFrame\n props={props}\n layout={{\n layout: layout ?? \"force\",\n direction,\n force,\n circular,\n dag,\n tree,\n }}\n />\n );\n}\n\n/**\n * Dependency graph (依赖图): layered (Sugiyama) layout of a DAG with\n * crossing reduction, spline or orthogonal edges with arrowheads,\n * upstream / downstream highlight and the critical path.\n */\nexport function DependencyGraph(props: DependencyGraphProps) {\n const { direction, dag, criticalPath } = props;\n return (\n <GraphFrame\n props={props}\n layout={{\n layout: \"dag\",\n direction: direction ?? \"TB\",\n dag: criticalPath === undefined ? dag : { ...dag, criticalPath },\n }}\n />\n );\n}\n\n/**\n * Tree chart (树图): tidy tree, radial tree, mind map or org chart, with\n * animated collapse / expand of the subtrees.\n */\nexport function TreeChart(props: TreeChartProps) {\n const { layout, direction, tree } = props;\n return (\n <GraphFrame\n props={props}\n layout={{ layout: layout ?? \"tree\", direction, tree }}\n />\n );\n}\n"],"mappings":"gHA2PA,IAAMM,EAAiB,GAAqD,CAC1E,GAAI,OAAOC,GAAU,WAAYA,EAAgB,MAAO,GACxD,IAAMC,EAAQ,OAAO,eAAeD,CAAK,EACzC,OAAOC,IAAU,OAAO,WAAaA,IAAU,IACjD,EAEMC,GACJ,EACA,IACY,CACZ,IAAMC,EAAO,OAAO,KAAKC,CAAC,EAE1B,OADID,EAAK,SAAW,OAAO,KAAKE,CAAC,CAAC,CAAC,QAC5BF,EAAK,MACT,GAAQC,EAAEE,KAASD,EAAEC,IAAQ,OAAO,UAAU,eAAe,KAAKD,EAAGC,CAAG,CAC3E,CACF,EAEMC,GAAa,EAAY,IACzBH,IAAMC,EAAU,GAChB,MAAM,QAAQD,CAAC,GAAK,MAAM,QAAQC,CAAC,EAC9BD,EAAE,SAAWC,EAAE,QAAUD,EAAE,OAAO,EAAG,IAAMI,IAAMH,EAAEI,EAAE,EACvDV,EAAcK,CAAC,GAAKL,EAAcM,CAAC,GAAKH,EAAaE,EAAGC,CAAC,EAQ5DK,GACJ,EACA,IACY,CACZ,GAAIN,IAAMC,EAAG,MAAO,GACpB,IAAMF,EAAO,OAAO,KAAKC,CAAC,EAE1B,OADID,EAAK,SAAW,OAAO,KAAKE,CAAC,CAAC,CAAC,QAC5BF,EAAK,MACT,GACC,OAAO,UAAU,eAAe,KAAKE,EAAGC,CAAG,GAAKC,EAAUH,EAAEE,GAAMD,EAAEC,EAAI,CAC5E,CACF,EAEMK,GAAW,EAAoC,IACnDX,IAAU,IAAA,GACNY,EACA,OAAOZ,GAAU,SACf,GAAGA,EAAM,IACTA,EAWR,SAASa,EAAU,CACjB,UACA,SACA,QACA,YACA,QACA,YACA,GAAGC,GACc,CACjB,IAAMC,GAAA,EAAetB,EAAAA,OAAAA,CAAuB,IAAI,EAC1CuB,GAAA,EAAWvB,EAAAA,OAAAA,CAAkC,IAAI,EACjDwB,GAAA,EAAcxB,EAAAA,OAAAA,CAAiBqB,CAAQ,EAEvC,CAACI,EAAQC,IAAA,EAAazB,EAAAA,SAAAA,CAAS0B,CAAO,EACxCF,IAAWE,GAAW,CAACV,EAAiBQ,EAAQE,CAAO,GACzDD,EAAUC,CAAO,EACnB,IAAMC,GAAA,EAAa5B,EAAAA,OAAAA,CAAOyB,CAAM,EAoDhC,OAlDA,EAAArB,EAAA,UAAA,KAAgB,CACd,EAAY,QAAUiB,CACxB,CAAC,GAED,EAAAjB,EAAA,UAAA,KAAgB,CACd,IAAMyB,EAAYP,EAAa,QAC/B,GAAI,CAACO,EAAW,OAChB,IAAMC,EAAQ5B,EAAAA,iBAAiB2B,EAAWD,EAAW,OAAO,EAC5D,EAAS,QAAUE,EACnB,IAAMC,EAAO,CACXD,EAAM,GAAG,QAAU,GAAMN,EAAY,QAAQ,UAAU,CAAC,CAAC,EACzDM,EAAM,GAAG,QAAU,GAAMN,EAAY,QAAQ,cAAc,CAAC,CAAC,EAC7DM,EAAM,GAAG,SAAW,GAAMN,EAAY,QAAQ,oBAAoB,EAAE,GAAG,CAAC,EACxEM,EAAM,GAAG,SAAW,GAAMN,EAAY,QAAQ,WAAW,CAAC,CAAC,EAC3DM,EAAM,GAAG,cAAgB,GAAMN,EAAY,QAAQ,gBAAgB,CAAC,CAAC,EACrEM,EAAM,GAAG,YAAc,GAAMN,EAAY,QAAQ,cAAc,CAAC,CAAC,EACjEM,EAAM,GAAG,WAAa,GAAMN,EAAY,QAAQ,mBAAmBQ,CAAC,CAAC,CACvE,EACA,UAAa,CACXD,EAAK,QAAS,GAAQE,EAAI,CAAC,EAC3BH,EAAM,QAAQ,EACd,EAAS,QAAU,IACrB,CACF,EAAG,CAAC,CAAC,GAEL,EAAA1B,EAAA,UAAA,KAAgB,CACVwB,EAAW,UAAYH,IAC3B,EAAW,QAAUA,EACrBF,EAAS,SAAS,WAAWE,CAAM,EACrC,EAAG,CAACA,CAAM,CAAC,GAEX,EAAArB,EAAA,oBAAA,CACE8B,OACO,CACL,IAAM,GAAYX,EAAS,SAAS,IAAIY,CAAO,EAC/C,WAAY,EAAI,IAASZ,EAAS,SAAS,UAAUa,EAAIC,CAAI,EAC7D,QAAU,GAASd,EAAS,SAAS,QAAQe,CAAI,EACjD,OAAS,GAAQf,EAAS,SAAS,OAAOgB,CAAG,EAC7C,iBAAoBhB,EAAS,SAAS,aAAa,GAAK,CAAC,EACzD,OAAS,GAAOA,EAAS,SAAS,OAAOa,CAAE,EAC3C,SAAW,GAAOb,EAAS,SAAS,SAASa,CAAE,EAC/C,OAAS,GAAOb,EAAS,SAAS,OAAOa,CAAE,EAC3C,iBAAoBb,EAAS,SAAS,aAAa,GAAK,CAAC,EACzD,aAAgBA,EAAS,SAAS,SAAS,EAC3C,gBAAmBA,EAAS,SAAS,YAAY,GAAK,KACtD,gBAAmBA,EAAS,OAC9B,GACA,CAAC,CACH,GAGE,EAAAlB,EAAA,IAAA,CAAC,MAAD,CACa,YACX,MAAO,CACL,SAAU,WACV,MAAOa,EAAQsB,EAAO,MAAM,EAC5B,OAAQtB,EAAQuB,EAAQ,OAAO,EAC/B,GAAGC,CACL,EAEA,UAAA,EAAArC,EAAA,IAAA,CAAC,MAAD,CAAK,IAAKiB,EAAc,MAAO,CAAE,SAAU,WAAY,MAAO,CAAE,CAAI,CAAA,CACjE,CAAA,CAET,CAGA,SAASqB,EAAW,CAClB,QACA,UAOC,CACD,GAAM,CACJ,QACA,QACA,SACA,SACA,QACA,YACA,WACA,YACA,YACA,YACA,SACA,aACA,aACA,aACA,YACA,WACA,YACA,aACA,WACA,SACA,UACA,cACA,WACA,UACA,YACA,SACA,SACA,UACA,cACA,oBACA,WACA,gBACA,cACA,mBACA,YACA,QACA,OACEC,EACEjB,EAA6B,CACjC,QACA,QACA,SACA,GAAGkB,EACH,YACA,WACA,YACA,YACA,YACA,SACA,aACA,aACA,aACA,YACA,WACA,YACA,aACA,WACA,SACA,UACA,cACA,WACA,UACA,YACA,SACA,QACF,EACA,OACE,EAAAxC,EAAA,IAAA,CAACe,EAAD,CACW,UACD,SACD,QACI,YACJ,QACP,UAAW0B,EACF,UACI,cACM,oBACT,WACK,gBACF,cACK,kBACnB,CAAA,CAEL,CAUA,SAAgBC,EAAW,EAAwB,CACjD,GAAM,CAAE,SAAQ,YAAW,QAAO,WAAU,MAAK,QAASH,EAC1D,OACE,EAAAvC,EAAA,IAAA,CAACsC,EAAD,CACS,QACP,OAAQ,CACN,OAAQE,GAAU,QAClB,YACA,QACA,WACA,MACA,MACF,CACD,CAAA,CAEL,CAOA,SAAgBG,EAAgB,EAA6B,CAC3D,GAAM,CAAE,YAAW,MAAK,gBAAiBJ,EACzC,OACE,EAAAvC,EAAA,IAAA,CAACsC,EAAD,CACS,QACP,OAAQ,CACN,OAAQ,MACR,UAAWM,GAAa,KACxB,IAAKC,IAAiB,IAAA,GAAYC,EAAM,CAAE,GAAGA,EAAK,cAAa,CACjE,CACD,CAAA,CAEL,CAMA,SAAgBC,EAAU,EAAuB,CAC/C,GAAM,CAAE,SAAQ,YAAW,QAASR,EACpC,OACE,EAAAvC,EAAA,IAAA,CAACsC,EAAD,CACS,QACP,OAAQ,CAAE,OAAQE,GAAU,OAAQ,YAAW,MAAK,CACrD,CAAA,CAEL"}