minerva-design 1.2.0 → 1.4.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 (1226) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +21 -21
  3. package/custom-elements.json +13630 -4757
  4. package/dist/angular/fesm2022/minerva-angular.mjs +6872 -172
  5. package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
  6. package/dist/angular/types/minerva-angular.d.ts +2240 -0
  7. package/dist/charts/canvas.d.cts +10 -2
  8. package/dist/charts/canvas.d.ts +10 -2
  9. package/dist/charts/core.cjs +1 -1
  10. package/dist/charts/core.d.cts +9 -3
  11. package/dist/charts/core.d.ts +9 -3
  12. package/dist/charts/core.js +19 -6
  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 +6 -6
  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.d.cts +11 -1
  20. package/dist/charts/engine/canvas.d.ts +11 -1
  21. package/dist/charts/engine/canvas.js +161 -99
  22. package/dist/charts/engine/canvas.js.map +1 -1
  23. package/dist/charts/engine/chart.cjs +1 -2
  24. package/dist/charts/engine/chart.cjs.map +1 -1
  25. package/dist/charts/engine/chart.d.cts +1 -1
  26. package/dist/charts/engine/chart.d.ts +1 -1
  27. package/dist/charts/engine/chart.js +390 -349
  28. package/dist/charts/engine/chart.js.map +1 -1
  29. package/dist/charts/engine/color.cjs +1 -1
  30. package/dist/charts/engine/color.cjs.map +1 -1
  31. package/dist/charts/engine/color.d.cts +17 -0
  32. package/dist/charts/engine/color.d.ts +17 -0
  33. package/dist/charts/engine/color.js +27 -3
  34. package/dist/charts/engine/color.js.map +1 -1
  35. package/dist/charts/engine/controller.cjs +2 -2
  36. package/dist/charts/engine/controller.cjs.map +1 -1
  37. package/dist/charts/engine/controller.d.cts +17 -2
  38. package/dist/charts/engine/controller.d.ts +17 -2
  39. package/dist/charts/engine/controller.js +404 -280
  40. package/dist/charts/engine/controller.js.map +1 -1
  41. package/dist/charts/engine/curve.cjs +2 -0
  42. package/dist/charts/engine/curve.cjs.map +1 -0
  43. package/dist/charts/engine/curve.d.cts +15 -0
  44. package/dist/charts/engine/curve.d.ts +15 -0
  45. package/dist/charts/engine/curve.js +56 -0
  46. package/dist/charts/engine/curve.js.map +1 -0
  47. package/dist/charts/engine/data.cjs +1 -1
  48. package/dist/charts/engine/data.cjs.map +1 -1
  49. package/dist/charts/engine/data.d.cts +21 -2
  50. package/dist/charts/engine/data.d.ts +21 -2
  51. package/dist/charts/engine/data.js +117 -43
  52. package/dist/charts/engine/data.js.map +1 -1
  53. package/dist/charts/engine/dom.cjs +1 -1
  54. package/dist/charts/engine/dom.cjs.map +1 -1
  55. package/dist/charts/engine/dom.d.cts +5 -3
  56. package/dist/charts/engine/dom.d.ts +5 -3
  57. package/dist/charts/engine/dom.js +27 -22
  58. package/dist/charts/engine/dom.js.map +1 -1
  59. package/dist/charts/engine/format.cjs +1 -1
  60. package/dist/charts/engine/format.cjs.map +1 -1
  61. package/dist/charts/engine/format.d.cts +21 -6
  62. package/dist/charts/engine/format.d.ts +21 -6
  63. package/dist/charts/engine/format.js +46 -21
  64. package/dist/charts/engine/format.js.map +1 -1
  65. package/dist/charts/engine/items.cjs +1 -1
  66. package/dist/charts/engine/items.cjs.map +1 -1
  67. package/dist/charts/engine/items.js +290 -62
  68. package/dist/charts/engine/items.js.map +1 -1
  69. package/dist/charts/engine/labels.cjs +2 -0
  70. package/dist/charts/engine/labels.cjs.map +1 -0
  71. package/dist/charts/engine/labels.d.cts +13 -0
  72. package/dist/charts/engine/labels.d.ts +13 -0
  73. package/dist/charts/engine/labels.js +74 -0
  74. package/dist/charts/engine/labels.js.map +1 -0
  75. package/dist/charts/engine/layout.cjs +1 -1
  76. package/dist/charts/engine/layout.cjs.map +1 -1
  77. package/dist/charts/engine/layout.d.cts +34 -2
  78. package/dist/charts/engine/layout.d.ts +34 -2
  79. package/dist/charts/engine/layout.js +53 -12
  80. package/dist/charts/engine/layout.js.map +1 -1
  81. package/dist/charts/engine/locale.cjs +2 -0
  82. package/dist/charts/engine/locale.cjs.map +1 -0
  83. package/dist/charts/engine/locale.d.cts +33 -0
  84. package/dist/charts/engine/locale.d.ts +33 -0
  85. package/dist/charts/engine/locale.js +68 -0
  86. package/dist/charts/engine/locale.js.map +1 -0
  87. package/dist/charts/engine/model.cjs +1 -1
  88. package/dist/charts/engine/model.cjs.map +1 -1
  89. package/dist/charts/engine/model.d.cts +68 -3
  90. package/dist/charts/engine/model.d.ts +68 -3
  91. package/dist/charts/engine/model.js +332 -108
  92. package/dist/charts/engine/model.js.map +1 -1
  93. package/dist/charts/engine/orderbook/book.cjs +2 -0
  94. package/dist/charts/engine/orderbook/book.cjs.map +1 -0
  95. package/dist/charts/engine/orderbook/book.d.cts +28 -0
  96. package/dist/charts/engine/orderbook/book.d.ts +28 -0
  97. package/dist/charts/engine/orderbook/book.js +134 -0
  98. package/dist/charts/engine/orderbook/book.js.map +1 -0
  99. package/dist/charts/engine/orderbook/depth.cjs +2 -0
  100. package/dist/charts/engine/orderbook/depth.cjs.map +1 -0
  101. package/dist/charts/engine/orderbook/depth.d.cts +7 -0
  102. package/dist/charts/engine/orderbook/depth.d.ts +7 -0
  103. package/dist/charts/engine/orderbook/depth.js +413 -0
  104. package/dist/charts/engine/orderbook/depth.js.map +1 -0
  105. package/dist/charts/engine/orderbook/format.cjs +2 -0
  106. package/dist/charts/engine/orderbook/format.cjs.map +1 -0
  107. package/dist/charts/engine/orderbook/format.d.cts +48 -0
  108. package/dist/charts/engine/orderbook/format.d.ts +48 -0
  109. package/dist/charts/engine/orderbook/format.js +65 -0
  110. package/dist/charts/engine/orderbook/format.js.map +1 -0
  111. package/dist/charts/engine/orderbook/heatmap.cjs +2 -0
  112. package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -0
  113. package/dist/charts/engine/orderbook/heatmap.d.cts +9 -0
  114. package/dist/charts/engine/orderbook/heatmap.d.ts +9 -0
  115. package/dist/charts/engine/orderbook/heatmap.js +703 -0
  116. package/dist/charts/engine/orderbook/heatmap.js.map +1 -0
  117. package/dist/charts/engine/orderbook/host.cjs +2 -0
  118. package/dist/charts/engine/orderbook/host.cjs.map +1 -0
  119. package/dist/charts/engine/orderbook/host.d.cts +50 -0
  120. package/dist/charts/engine/orderbook/host.d.ts +50 -0
  121. package/dist/charts/engine/orderbook/host.js +161 -0
  122. package/dist/charts/engine/orderbook/host.js.map +1 -0
  123. package/dist/charts/engine/orderbook/index.cjs +1 -0
  124. package/dist/charts/engine/orderbook/index.d.cts +6 -0
  125. package/dist/charts/engine/orderbook/index.d.ts +6 -0
  126. package/dist/charts/engine/orderbook/index.js +6 -0
  127. package/dist/charts/engine/orderbook/ladder.cjs +2 -0
  128. package/dist/charts/engine/orderbook/ladder.cjs.map +1 -0
  129. package/dist/charts/engine/orderbook/ladder.d.cts +6 -0
  130. package/dist/charts/engine/orderbook/ladder.d.ts +6 -0
  131. package/dist/charts/engine/orderbook/ladder.js +341 -0
  132. package/dist/charts/engine/orderbook/ladder.js.map +1 -0
  133. package/dist/charts/engine/orderbook/tape.cjs +2 -0
  134. package/dist/charts/engine/orderbook/tape.cjs.map +1 -0
  135. package/dist/charts/engine/orderbook/tape.d.cts +6 -0
  136. package/dist/charts/engine/orderbook/tape.d.ts +6 -0
  137. package/dist/charts/engine/orderbook/tape.js +450 -0
  138. package/dist/charts/engine/orderbook/tape.js.map +1 -0
  139. package/dist/charts/engine/orderbook/types.d.cts +735 -0
  140. package/dist/charts/engine/orderbook/types.d.ts +735 -0
  141. package/dist/charts/engine/overlay.cjs +1 -1
  142. package/dist/charts/engine/overlay.cjs.map +1 -1
  143. package/dist/charts/engine/overlay.d.cts +18 -0
  144. package/dist/charts/engine/overlay.d.ts +18 -0
  145. package/dist/charts/engine/overlay.js +138 -102
  146. package/dist/charts/engine/overlay.js.map +1 -1
  147. package/dist/charts/engine/presets.cjs +2 -2
  148. package/dist/charts/engine/presets.cjs.map +1 -1
  149. package/dist/charts/engine/presets.d.cts +319 -5
  150. package/dist/charts/engine/presets.d.ts +319 -5
  151. package/dist/charts/engine/presets.js +463 -38
  152. package/dist/charts/engine/presets.js.map +1 -1
  153. package/dist/charts/engine/renderers/canvas2d.cjs +1 -1
  154. package/dist/charts/engine/renderers/canvas2d.cjs.map +1 -1
  155. package/dist/charts/engine/renderers/canvas2d.js +149 -111
  156. package/dist/charts/engine/renderers/canvas2d.js.map +1 -1
  157. package/dist/charts/engine/renderers/detect.cjs +1 -1
  158. package/dist/charts/engine/renderers/detect.cjs.map +1 -1
  159. package/dist/charts/engine/renderers/detect.js +18 -15
  160. package/dist/charts/engine/renderers/detect.js.map +1 -1
  161. package/dist/charts/engine/renderers/gl.cjs +2 -0
  162. package/dist/charts/engine/renderers/gl.cjs.map +1 -0
  163. package/dist/charts/engine/renderers/gl.d.cts +21 -0
  164. package/dist/charts/engine/renderers/gl.d.ts +21 -0
  165. package/dist/charts/engine/renderers/gl.js +56 -0
  166. package/dist/charts/engine/renderers/gl.js.map +1 -0
  167. package/dist/charts/engine/renderers/range.cjs +1 -1
  168. package/dist/charts/engine/renderers/range.cjs.map +1 -1
  169. package/dist/charts/engine/renderers/range.js +4 -4
  170. package/dist/charts/engine/renderers/range.js.map +1 -1
  171. package/dist/charts/engine/renderers/shaders.cjs +180 -20
  172. package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
  173. package/dist/charts/engine/renderers/shaders.d.cts +18 -2
  174. package/dist/charts/engine/renderers/shaders.d.ts +18 -2
  175. package/dist/charts/engine/renderers/shaders.js +176 -20
  176. package/dist/charts/engine/renderers/shaders.js.map +1 -1
  177. package/dist/charts/engine/renderers/types.cjs.map +1 -1
  178. package/dist/charts/engine/renderers/types.d.cts +11 -4
  179. package/dist/charts/engine/renderers/types.d.ts +11 -4
  180. package/dist/charts/engine/renderers/types.js.map +1 -1
  181. package/dist/charts/engine/renderers/webgl.cjs +2 -0
  182. package/dist/charts/engine/renderers/webgl.cjs.map +1 -0
  183. package/dist/charts/engine/renderers/webgl.d.cts +4 -0
  184. package/dist/charts/engine/renderers/webgl.d.ts +4 -0
  185. package/dist/charts/engine/renderers/webgl.js +133 -0
  186. package/dist/charts/engine/renderers/webgl.js.map +1 -0
  187. package/dist/charts/engine/renderers/webgl2.cjs +1 -1
  188. package/dist/charts/engine/renderers/webgl2.cjs.map +1 -1
  189. package/dist/charts/engine/renderers/webgl2.d.cts +0 -1
  190. package/dist/charts/engine/renderers/webgl2.d.ts +0 -1
  191. package/dist/charts/engine/renderers/webgl2.js +62 -90
  192. package/dist/charts/engine/renderers/webgl2.js.map +1 -1
  193. package/dist/charts/engine/renderers/webgpu.cjs +1 -1
  194. package/dist/charts/engine/renderers/webgpu.cjs.map +1 -1
  195. package/dist/charts/engine/renderers/webgpu.js +18 -15
  196. package/dist/charts/engine/renderers/webgpu.js.map +1 -1
  197. package/dist/charts/engine/scale.cjs +1 -1
  198. package/dist/charts/engine/scale.cjs.map +1 -1
  199. package/dist/charts/engine/scale.js +1 -1
  200. package/dist/charts/engine/scale.js.map +1 -1
  201. package/dist/charts/engine/scene.cjs +1 -1
  202. package/dist/charts/engine/scene.cjs.map +1 -1
  203. package/dist/charts/engine/scene.d.cts +32 -9
  204. package/dist/charts/engine/scene.d.ts +32 -9
  205. package/dist/charts/engine/scene.js +363 -122
  206. package/dist/charts/engine/scene.js.map +1 -1
  207. package/dist/charts/engine/shapes/bullet.cjs +2 -0
  208. package/dist/charts/engine/shapes/bullet.cjs.map +1 -0
  209. package/dist/charts/engine/shapes/bullet.d.cts +6 -0
  210. package/dist/charts/engine/shapes/bullet.d.ts +6 -0
  211. package/dist/charts/engine/shapes/bullet.js +255 -0
  212. package/dist/charts/engine/shapes/bullet.js.map +1 -0
  213. package/dist/charts/engine/shapes/calendar.cjs +2 -0
  214. package/dist/charts/engine/shapes/calendar.cjs.map +1 -0
  215. package/dist/charts/engine/shapes/calendar.d.cts +38 -0
  216. package/dist/charts/engine/shapes/calendar.d.ts +38 -0
  217. package/dist/charts/engine/shapes/calendar.js +369 -0
  218. package/dist/charts/engine/shapes/calendar.js.map +1 -0
  219. package/dist/charts/engine/shapes/canvas.cjs +2 -0
  220. package/dist/charts/engine/shapes/canvas.cjs.map +1 -0
  221. package/dist/charts/engine/shapes/canvas.d.cts +65 -0
  222. package/dist/charts/engine/shapes/canvas.d.ts +65 -0
  223. package/dist/charts/engine/shapes/canvas.js +168 -0
  224. package/dist/charts/engine/shapes/canvas.js.map +1 -0
  225. package/dist/charts/engine/shapes/chart.cjs +2 -0
  226. package/dist/charts/engine/shapes/chart.cjs.map +1 -0
  227. package/dist/charts/engine/shapes/chart.d.cts +7 -0
  228. package/dist/charts/engine/shapes/chart.d.ts +7 -0
  229. package/dist/charts/engine/shapes/chart.js +292 -0
  230. package/dist/charts/engine/shapes/chart.js.map +1 -0
  231. package/dist/charts/engine/shapes/draw.cjs +2 -0
  232. package/dist/charts/engine/shapes/draw.cjs.map +1 -0
  233. package/dist/charts/engine/shapes/draw.d.cts +22 -0
  234. package/dist/charts/engine/shapes/draw.d.ts +22 -0
  235. package/dist/charts/engine/shapes/draw.js +165 -0
  236. package/dist/charts/engine/shapes/draw.js.map +1 -0
  237. package/dist/charts/engine/shapes/funnel.cjs +2 -0
  238. package/dist/charts/engine/shapes/funnel.cjs.map +1 -0
  239. package/dist/charts/engine/shapes/funnel.d.cts +6 -0
  240. package/dist/charts/engine/shapes/funnel.d.ts +6 -0
  241. package/dist/charts/engine/shapes/funnel.js +149 -0
  242. package/dist/charts/engine/shapes/funnel.js.map +1 -0
  243. package/dist/charts/engine/shapes/gauge.cjs +2 -0
  244. package/dist/charts/engine/shapes/gauge.cjs.map +1 -0
  245. package/dist/charts/engine/shapes/gauge.d.cts +7 -0
  246. package/dist/charts/engine/shapes/gauge.d.ts +7 -0
  247. package/dist/charts/engine/shapes/gauge.js +210 -0
  248. package/dist/charts/engine/shapes/gauge.js.map +1 -0
  249. package/dist/charts/engine/shapes/hit.cjs +2 -0
  250. package/dist/charts/engine/shapes/hit.cjs.map +1 -0
  251. package/dist/charts/engine/shapes/hit.d.cts +30 -0
  252. package/dist/charts/engine/shapes/hit.d.ts +30 -0
  253. package/dist/charts/engine/shapes/hit.js +145 -0
  254. package/dist/charts/engine/shapes/hit.js.map +1 -0
  255. package/dist/charts/engine/shapes/index.d.cts +12 -0
  256. package/dist/charts/engine/shapes/index.d.ts +12 -0
  257. package/dist/charts/engine/shapes/labels.cjs +2 -0
  258. package/dist/charts/engine/shapes/labels.cjs.map +1 -0
  259. package/dist/charts/engine/shapes/labels.d.cts +14 -0
  260. package/dist/charts/engine/shapes/labels.d.ts +14 -0
  261. package/dist/charts/engine/shapes/labels.js +146 -0
  262. package/dist/charts/engine/shapes/labels.js.map +1 -0
  263. package/dist/charts/engine/shapes/layout.cjs +3 -0
  264. package/dist/charts/engine/shapes/layout.cjs.map +1 -0
  265. package/dist/charts/engine/shapes/layout.d.cts +93 -0
  266. package/dist/charts/engine/shapes/layout.d.ts +93 -0
  267. package/dist/charts/engine/shapes/layout.js +353 -0
  268. package/dist/charts/engine/shapes/layout.js.map +1 -0
  269. package/dist/charts/engine/shapes/pie.cjs +2 -0
  270. package/dist/charts/engine/shapes/pie.cjs.map +1 -0
  271. package/dist/charts/engine/shapes/pie.d.cts +20 -0
  272. package/dist/charts/engine/shapes/pie.d.ts +20 -0
  273. package/dist/charts/engine/shapes/pie.js +302 -0
  274. package/dist/charts/engine/shapes/pie.js.map +1 -0
  275. package/dist/charts/engine/shapes/radar.cjs +2 -0
  276. package/dist/charts/engine/shapes/radar.cjs.map +1 -0
  277. package/dist/charts/engine/shapes/radar.d.cts +8 -0
  278. package/dist/charts/engine/shapes/radar.d.ts +8 -0
  279. package/dist/charts/engine/shapes/radar.js +198 -0
  280. package/dist/charts/engine/shapes/radar.js.map +1 -0
  281. package/dist/charts/engine/shapes/radialBar.cjs +2 -0
  282. package/dist/charts/engine/shapes/radialBar.cjs.map +1 -0
  283. package/dist/charts/engine/shapes/radialBar.d.cts +8 -0
  284. package/dist/charts/engine/shapes/radialBar.d.ts +8 -0
  285. package/dist/charts/engine/shapes/radialBar.js +155 -0
  286. package/dist/charts/engine/shapes/radialBar.js.map +1 -0
  287. package/dist/charts/engine/shapes/runtime.cjs +2 -0
  288. package/dist/charts/engine/shapes/runtime.cjs.map +1 -0
  289. package/dist/charts/engine/shapes/runtime.d.cts +36 -0
  290. package/dist/charts/engine/shapes/runtime.d.ts +36 -0
  291. package/dist/charts/engine/shapes/runtime.js +107 -0
  292. package/dist/charts/engine/shapes/runtime.js.map +1 -0
  293. package/dist/charts/engine/shapes/sankey.cjs +2 -0
  294. package/dist/charts/engine/shapes/sankey.cjs.map +1 -0
  295. package/dist/charts/engine/shapes/sankey.d.cts +29 -0
  296. package/dist/charts/engine/shapes/sankey.d.ts +29 -0
  297. package/dist/charts/engine/shapes/sankey.js +372 -0
  298. package/dist/charts/engine/shapes/sankey.js.map +1 -0
  299. package/dist/charts/engine/shapes/scene.cjs +2 -0
  300. package/dist/charts/engine/shapes/scene.cjs.map +1 -0
  301. package/dist/charts/engine/shapes/scene.d.cts +311 -0
  302. package/dist/charts/engine/shapes/scene.d.ts +311 -0
  303. package/dist/charts/engine/shapes/scene.js +125 -0
  304. package/dist/charts/engine/shapes/scene.js.map +1 -0
  305. package/dist/charts/engine/shapes/sunburst.cjs +2 -0
  306. package/dist/charts/engine/shapes/sunburst.cjs.map +1 -0
  307. package/dist/charts/engine/shapes/sunburst.d.cts +6 -0
  308. package/dist/charts/engine/shapes/sunburst.d.ts +6 -0
  309. package/dist/charts/engine/shapes/sunburst.js +261 -0
  310. package/dist/charts/engine/shapes/sunburst.js.map +1 -0
  311. package/dist/charts/engine/shapes/treemap.cjs +2 -0
  312. package/dist/charts/engine/shapes/treemap.cjs.map +1 -0
  313. package/dist/charts/engine/shapes/treemap.d.cts +14 -0
  314. package/dist/charts/engine/shapes/treemap.d.ts +14 -0
  315. package/dist/charts/engine/shapes/treemap.js +213 -0
  316. package/dist/charts/engine/shapes/treemap.js.map +1 -0
  317. package/dist/charts/engine/shapes/types.d.cts +719 -0
  318. package/dist/charts/engine/shapes/types.d.ts +719 -0
  319. package/dist/charts/engine/signature.cjs +2 -0
  320. package/dist/charts/engine/signature.cjs.map +1 -0
  321. package/dist/charts/engine/signature.d.cts +9 -0
  322. package/dist/charts/engine/signature.d.ts +9 -0
  323. package/dist/charts/engine/signature.js +13 -0
  324. package/dist/charts/engine/signature.js.map +1 -0
  325. package/dist/charts/engine/theme.cjs +1 -1
  326. package/dist/charts/engine/theme.cjs.map +1 -1
  327. package/dist/charts/engine/theme.d.cts +10 -1
  328. package/dist/charts/engine/theme.d.ts +10 -1
  329. package/dist/charts/engine/theme.js +40 -16
  330. package/dist/charts/engine/theme.js.map +1 -1
  331. package/dist/charts/engine/three-d/canvas2d.cjs +2 -0
  332. package/dist/charts/engine/three-d/canvas2d.cjs.map +1 -0
  333. package/dist/charts/engine/three-d/canvas2d.d.cts +4 -0
  334. package/dist/charts/engine/three-d/canvas2d.d.ts +4 -0
  335. package/dist/charts/engine/three-d/canvas2d.js +104 -0
  336. package/dist/charts/engine/three-d/canvas2d.js.map +1 -0
  337. package/dist/charts/engine/three-d/chart.cjs +2 -0
  338. package/dist/charts/engine/three-d/chart.cjs.map +1 -0
  339. package/dist/charts/engine/three-d/chart.d.cts +15 -0
  340. package/dist/charts/engine/three-d/chart.d.ts +15 -0
  341. package/dist/charts/engine/three-d/chart.js +621 -0
  342. package/dist/charts/engine/three-d/chart.js.map +1 -0
  343. package/dist/charts/engine/three-d/colormap.cjs +2 -0
  344. package/dist/charts/engine/three-d/colormap.cjs.map +1 -0
  345. package/dist/charts/engine/three-d/colormap.d.cts +16 -0
  346. package/dist/charts/engine/three-d/colormap.d.ts +16 -0
  347. package/dist/charts/engine/three-d/colormap.js +166 -0
  348. package/dist/charts/engine/three-d/colormap.js.map +1 -0
  349. package/dist/charts/engine/three-d/contours.cjs +2 -0
  350. package/dist/charts/engine/three-d/contours.cjs.map +1 -0
  351. package/dist/charts/engine/three-d/contours.d.cts +7 -0
  352. package/dist/charts/engine/three-d/contours.d.ts +7 -0
  353. package/dist/charts/engine/three-d/contours.js +47 -0
  354. package/dist/charts/engine/three-d/contours.js.map +1 -0
  355. package/dist/charts/engine/three-d/detect.cjs +2 -0
  356. package/dist/charts/engine/three-d/detect.cjs.map +1 -0
  357. package/dist/charts/engine/three-d/detect.d.cts +11 -0
  358. package/dist/charts/engine/three-d/detect.d.ts +11 -0
  359. package/dist/charts/engine/three-d/detect.js +35 -0
  360. package/dist/charts/engine/three-d/detect.js.map +1 -0
  361. package/dist/charts/engine/three-d/dom.cjs +2 -0
  362. package/dist/charts/engine/three-d/dom.cjs.map +1 -0
  363. package/dist/charts/engine/three-d/dom.d.cts +21 -0
  364. package/dist/charts/engine/three-d/dom.d.ts +21 -0
  365. package/dist/charts/engine/three-d/dom.js +98 -0
  366. package/dist/charts/engine/three-d/dom.js.map +1 -0
  367. package/dist/charts/engine/three-d/geometry.cjs +2 -0
  368. package/dist/charts/engine/three-d/geometry.cjs.map +1 -0
  369. package/dist/charts/engine/three-d/geometry.d.cts +76 -0
  370. package/dist/charts/engine/three-d/geometry.d.ts +76 -0
  371. package/dist/charts/engine/three-d/geometry.js +529 -0
  372. package/dist/charts/engine/three-d/geometry.js.map +1 -0
  373. package/dist/charts/engine/three-d/hover.cjs +2 -0
  374. package/dist/charts/engine/three-d/hover.cjs.map +1 -0
  375. package/dist/charts/engine/three-d/hover.d.cts +25 -0
  376. package/dist/charts/engine/three-d/hover.d.ts +25 -0
  377. package/dist/charts/engine/three-d/hover.js +131 -0
  378. package/dist/charts/engine/three-d/hover.js.map +1 -0
  379. package/dist/charts/engine/three-d/index.cjs +1 -0
  380. package/dist/charts/engine/three-d/index.d.cts +2 -0
  381. package/dist/charts/engine/three-d/index.d.ts +2 -0
  382. package/dist/charts/engine/three-d/index.js +2 -0
  383. package/dist/charts/engine/three-d/labels.cjs +2 -0
  384. package/dist/charts/engine/three-d/labels.cjs.map +1 -0
  385. package/dist/charts/engine/three-d/labels.d.cts +23 -0
  386. package/dist/charts/engine/three-d/labels.d.ts +23 -0
  387. package/dist/charts/engine/three-d/labels.js +136 -0
  388. package/dist/charts/engine/three-d/labels.js.map +1 -0
  389. package/dist/charts/engine/three-d/math.cjs +2 -0
  390. package/dist/charts/engine/three-d/math.cjs.map +1 -0
  391. package/dist/charts/engine/three-d/math.d.cts +84 -0
  392. package/dist/charts/engine/three-d/math.d.ts +84 -0
  393. package/dist/charts/engine/three-d/math.js +150 -0
  394. package/dist/charts/engine/three-d/math.js.map +1 -0
  395. package/dist/charts/engine/three-d/model.cjs +2 -0
  396. package/dist/charts/engine/three-d/model.cjs.map +1 -0
  397. package/dist/charts/engine/three-d/model.d.cts +130 -0
  398. package/dist/charts/engine/three-d/model.d.ts +130 -0
  399. package/dist/charts/engine/three-d/model.js +277 -0
  400. package/dist/charts/engine/three-d/model.js.map +1 -0
  401. package/dist/charts/engine/three-d/overlay.cjs +2 -0
  402. package/dist/charts/engine/three-d/overlay.cjs.map +1 -0
  403. package/dist/charts/engine/three-d/overlay.d.cts +72 -0
  404. package/dist/charts/engine/three-d/overlay.d.ts +72 -0
  405. package/dist/charts/engine/three-d/overlay.js +197 -0
  406. package/dist/charts/engine/three-d/overlay.js.map +1 -0
  407. package/dist/charts/engine/three-d/pick.cjs +2 -0
  408. package/dist/charts/engine/three-d/pick.cjs.map +1 -0
  409. package/dist/charts/engine/three-d/pick.d.cts +52 -0
  410. package/dist/charts/engine/three-d/pick.d.ts +52 -0
  411. package/dist/charts/engine/three-d/pick.js +220 -0
  412. package/dist/charts/engine/three-d/pick.js.map +1 -0
  413. package/dist/charts/engine/three-d/render-types.cjs +2 -0
  414. package/dist/charts/engine/three-d/render-types.cjs.map +1 -0
  415. package/dist/charts/engine/three-d/render-types.d.cts +82 -0
  416. package/dist/charts/engine/three-d/render-types.d.ts +82 -0
  417. package/dist/charts/engine/three-d/render-types.js +13 -0
  418. package/dist/charts/engine/three-d/render-types.js.map +1 -0
  419. package/dist/charts/engine/three-d/shaders.cjs +276 -0
  420. package/dist/charts/engine/three-d/shaders.cjs.map +1 -0
  421. package/dist/charts/engine/three-d/shaders.d.cts +26 -0
  422. package/dist/charts/engine/three-d/shaders.d.ts +26 -0
  423. package/dist/charts/engine/three-d/shaders.js +191 -0
  424. package/dist/charts/engine/three-d/shaders.js.map +1 -0
  425. package/dist/charts/engine/three-d/sort.cjs +2 -0
  426. package/dist/charts/engine/three-d/sort.cjs.map +1 -0
  427. package/dist/charts/engine/three-d/sort.d.cts +18 -0
  428. package/dist/charts/engine/three-d/sort.d.ts +18 -0
  429. package/dist/charts/engine/three-d/sort.js +71 -0
  430. package/dist/charts/engine/three-d/sort.js.map +1 -0
  431. package/dist/charts/engine/three-d/types.d.cts +588 -0
  432. package/dist/charts/engine/three-d/types.d.ts +588 -0
  433. package/dist/charts/engine/three-d/webgl.cjs +2 -0
  434. package/dist/charts/engine/three-d/webgl.cjs.map +1 -0
  435. package/dist/charts/engine/three-d/webgl.d.cts +10 -0
  436. package/dist/charts/engine/three-d/webgl.d.ts +10 -0
  437. package/dist/charts/engine/three-d/webgl.js +130 -0
  438. package/dist/charts/engine/three-d/webgl.js.map +1 -0
  439. package/dist/charts/engine/three-d/webgpu.cjs +2 -0
  440. package/dist/charts/engine/three-d/webgpu.cjs.map +1 -0
  441. package/dist/charts/engine/three-d/webgpu.d.cts +5 -0
  442. package/dist/charts/engine/three-d/webgpu.d.ts +5 -0
  443. package/dist/charts/engine/three-d/webgpu.js +249 -0
  444. package/dist/charts/engine/three-d/webgpu.js.map +1 -0
  445. package/dist/charts/engine/time.cjs +1 -1
  446. package/dist/charts/engine/time.cjs.map +1 -1
  447. package/dist/charts/engine/time.d.cts +13 -4
  448. package/dist/charts/engine/time.d.ts +13 -4
  449. package/dist/charts/engine/time.js +156 -91
  450. package/dist/charts/engine/time.js.map +1 -1
  451. package/dist/charts/engine/trading/chart.cjs +2 -0
  452. package/dist/charts/engine/trading/chart.cjs.map +1 -0
  453. package/dist/charts/engine/trading/chart.d.cts +3 -0
  454. package/dist/charts/engine/trading/chart.d.ts +3 -0
  455. package/dist/charts/engine/trading/chart.js +1507 -0
  456. package/dist/charts/engine/trading/chart.js.map +1 -0
  457. package/dist/charts/engine/trading/drawings.cjs +2 -0
  458. package/dist/charts/engine/trading/drawings.cjs.map +1 -0
  459. package/dist/charts/engine/trading/drawings.d.cts +57 -0
  460. package/dist/charts/engine/trading/drawings.d.ts +57 -0
  461. package/dist/charts/engine/trading/drawings.js +160 -0
  462. package/dist/charts/engine/trading/drawings.js.map +1 -0
  463. package/dist/charts/engine/trading/format.cjs +2 -0
  464. package/dist/charts/engine/trading/format.cjs.map +1 -0
  465. package/dist/charts/engine/trading/format.d.cts +60 -0
  466. package/dist/charts/engine/trading/format.d.ts +60 -0
  467. package/dist/charts/engine/trading/format.js +131 -0
  468. package/dist/charts/engine/trading/format.js.map +1 -0
  469. package/dist/charts/engine/trading/geometry.cjs +2 -0
  470. package/dist/charts/engine/trading/geometry.cjs.map +1 -0
  471. package/dist/charts/engine/trading/geometry.d.cts +55 -0
  472. package/dist/charts/engine/trading/geometry.d.ts +55 -0
  473. package/dist/charts/engine/trading/geometry.js +131 -0
  474. package/dist/charts/engine/trading/geometry.js.map +1 -0
  475. package/dist/charts/engine/trading/index.cjs +1 -0
  476. package/dist/charts/engine/trading/index.d.cts +3 -0
  477. package/dist/charts/engine/trading/index.d.ts +3 -0
  478. package/dist/charts/engine/trading/index.js +3 -0
  479. package/dist/charts/engine/trading/indicators.cjs +2 -0
  480. package/dist/charts/engine/trading/indicators.cjs.map +1 -0
  481. package/dist/charts/engine/trading/indicators.d.cts +105 -0
  482. package/dist/charts/engine/trading/indicators.d.ts +105 -0
  483. package/dist/charts/engine/trading/indicators.js +268 -0
  484. package/dist/charts/engine/trading/indicators.js.map +1 -0
  485. package/dist/charts/engine/trading/labels.cjs +2 -0
  486. package/dist/charts/engine/trading/labels.cjs.map +1 -0
  487. package/dist/charts/engine/trading/labels.d.cts +7 -0
  488. package/dist/charts/engine/trading/labels.d.ts +7 -0
  489. package/dist/charts/engine/trading/labels.js +91 -0
  490. package/dist/charts/engine/trading/labels.js.map +1 -0
  491. package/dist/charts/engine/trading/scale.cjs +2 -0
  492. package/dist/charts/engine/trading/scale.cjs.map +1 -0
  493. package/dist/charts/engine/trading/scale.d.cts +46 -0
  494. package/dist/charts/engine/trading/scale.d.ts +46 -0
  495. package/dist/charts/engine/trading/scale.js +100 -0
  496. package/dist/charts/engine/trading/scale.js.map +1 -0
  497. package/dist/charts/engine/trading/store.cjs +2 -0
  498. package/dist/charts/engine/trading/store.cjs.map +1 -0
  499. package/dist/charts/engine/trading/store.d.cts +62 -0
  500. package/dist/charts/engine/trading/store.d.ts +62 -0
  501. package/dist/charts/engine/trading/store.js +129 -0
  502. package/dist/charts/engine/trading/store.js.map +1 -0
  503. package/dist/charts/engine/trading/studies.cjs +2 -0
  504. package/dist/charts/engine/trading/studies.cjs.map +1 -0
  505. package/dist/charts/engine/trading/studies.d.cts +52 -0
  506. package/dist/charts/engine/trading/studies.d.ts +52 -0
  507. package/dist/charts/engine/trading/studies.js +254 -0
  508. package/dist/charts/engine/trading/studies.js.map +1 -0
  509. package/dist/charts/engine/trading/types.d.cts +656 -0
  510. package/dist/charts/engine/trading/types.d.ts +656 -0
  511. package/dist/charts/engine/types.d.cts +227 -15
  512. package/dist/charts/engine/types.d.ts +227 -15
  513. package/dist/charts/index.cjs +1 -1
  514. package/dist/charts/index.d.cts +7 -2
  515. package/dist/charts/index.d.ts +7 -2
  516. package/dist/charts/index.js +22 -8
  517. package/dist/charts/react/Chart.cjs +1 -1
  518. package/dist/charts/react/Chart.cjs.map +1 -1
  519. package/dist/charts/react/Chart.d.cts +11 -4
  520. package/dist/charts/react/Chart.d.ts +11 -4
  521. package/dist/charts/react/Chart.js +70 -47
  522. package/dist/charts/react/Chart.js.map +1 -1
  523. package/dist/charts/react/charts.cjs +1 -1
  524. package/dist/charts/react/charts.cjs.map +1 -1
  525. package/dist/charts/react/charts.d.cts +48 -2
  526. package/dist/charts/react/charts.d.ts +48 -2
  527. package/dist/charts/react/charts.js +371 -76
  528. package/dist/charts/react/charts.js.map +1 -1
  529. package/dist/charts/react/orderbook.cjs +2 -0
  530. package/dist/charts/react/orderbook.cjs.map +1 -0
  531. package/dist/charts/react/orderbook.d.cts +142 -0
  532. package/dist/charts/react/orderbook.d.ts +142 -0
  533. package/dist/charts/react/orderbook.js +182 -0
  534. package/dist/charts/react/orderbook.js.map +1 -0
  535. package/dist/charts/react/shapes.cjs +2 -0
  536. package/dist/charts/react/shapes.cjs.map +1 -0
  537. package/dist/charts/react/shapes.d.cts +537 -0
  538. package/dist/charts/react/shapes.d.ts +537 -0
  539. package/dist/charts/react/shapes.js +429 -0
  540. package/dist/charts/react/shapes.js.map +1 -0
  541. package/dist/charts/react/three-d.cjs +2 -0
  542. package/dist/charts/react/three-d.cjs.map +1 -0
  543. package/dist/charts/react/three-d.d.cts +151 -0
  544. package/dist/charts/react/three-d.d.ts +151 -0
  545. package/dist/charts/react/three-d.js +154 -0
  546. package/dist/charts/react/three-d.js.map +1 -0
  547. package/dist/charts/react/trading.cjs +2 -0
  548. package/dist/charts/react/trading.cjs.map +1 -0
  549. package/dist/charts/react/trading.d.cts +93 -0
  550. package/dist/charts/react/trading.d.ts +93 -0
  551. package/dist/charts/react/trading.js +95 -0
  552. package/dist/charts/react/trading.js.map +1 -0
  553. package/dist/charts/react/types.d.cts +200 -7
  554. package/dist/charts/react/types.d.ts +200 -7
  555. package/dist/core/contracts.cjs +1 -1
  556. package/dist/core/contracts.cjs.map +1 -1
  557. package/dist/core/contracts.js +1 -1
  558. package/dist/core/contracts.js.map +1 -1
  559. package/dist/native/charts/src/canvas.cjs +1 -1
  560. package/dist/native/charts/src/canvas.js +9 -3
  561. package/dist/native/charts/src/engine/axis.cjs +1 -1
  562. package/dist/native/charts/src/engine/axis.cjs.map +1 -1
  563. package/dist/native/charts/src/engine/axis.js +6 -6
  564. package/dist/native/charts/src/engine/axis.js.map +1 -1
  565. package/dist/native/charts/src/engine/color.cjs +1 -1
  566. package/dist/native/charts/src/engine/color.cjs.map +1 -1
  567. package/dist/native/charts/src/engine/color.js +12 -3
  568. package/dist/native/charts/src/engine/color.js.map +1 -1
  569. package/dist/native/charts/src/engine/controller.cjs +2 -2
  570. package/dist/native/charts/src/engine/controller.cjs.map +1 -1
  571. package/dist/native/charts/src/engine/controller.js +418 -294
  572. package/dist/native/charts/src/engine/controller.js.map +1 -1
  573. package/dist/native/charts/src/engine/curve.cjs +2 -0
  574. package/dist/native/charts/src/engine/curve.cjs.map +1 -0
  575. package/dist/native/charts/src/engine/curve.js +56 -0
  576. package/dist/native/charts/src/engine/curve.js.map +1 -0
  577. package/dist/native/charts/src/engine/data.cjs +1 -1
  578. package/dist/native/charts/src/engine/data.cjs.map +1 -1
  579. package/dist/native/charts/src/engine/data.js +117 -43
  580. package/dist/native/charts/src/engine/data.js.map +1 -1
  581. package/dist/native/charts/src/engine/format.cjs +1 -1
  582. package/dist/native/charts/src/engine/format.cjs.map +1 -1
  583. package/dist/native/charts/src/engine/format.js +46 -21
  584. package/dist/native/charts/src/engine/format.js.map +1 -1
  585. package/dist/native/charts/src/engine/labels.cjs +2 -0
  586. package/dist/native/charts/src/engine/labels.cjs.map +1 -0
  587. package/dist/native/charts/src/engine/labels.js +74 -0
  588. package/dist/native/charts/src/engine/labels.js.map +1 -0
  589. package/dist/native/charts/src/engine/layout.cjs +1 -1
  590. package/dist/native/charts/src/engine/layout.cjs.map +1 -1
  591. package/dist/native/charts/src/engine/layout.js +53 -12
  592. package/dist/native/charts/src/engine/layout.js.map +1 -1
  593. package/dist/native/charts/src/engine/locale.cjs +2 -0
  594. package/dist/native/charts/src/engine/locale.cjs.map +1 -0
  595. package/dist/native/charts/src/engine/locale.js +60 -0
  596. package/dist/native/charts/src/engine/locale.js.map +1 -0
  597. package/dist/native/charts/src/engine/model.cjs +1 -1
  598. package/dist/native/charts/src/engine/model.cjs.map +1 -1
  599. package/dist/native/charts/src/engine/model.js +335 -111
  600. package/dist/native/charts/src/engine/model.js.map +1 -1
  601. package/dist/native/charts/src/engine/overlay.cjs +1 -1
  602. package/dist/native/charts/src/engine/overlay.cjs.map +1 -1
  603. package/dist/native/charts/src/engine/overlay.js +54 -31
  604. package/dist/native/charts/src/engine/overlay.js.map +1 -1
  605. package/dist/native/charts/src/engine/presets.cjs +2 -2
  606. package/dist/native/charts/src/engine/presets.cjs.map +1 -1
  607. package/dist/native/charts/src/engine/presets.js +456 -34
  608. package/dist/native/charts/src/engine/presets.js.map +1 -1
  609. package/dist/native/charts/src/engine/scale.cjs +1 -1
  610. package/dist/native/charts/src/engine/scale.cjs.map +1 -1
  611. package/dist/native/charts/src/engine/scale.js +1 -1
  612. package/dist/native/charts/src/engine/scale.js.map +1 -1
  613. package/dist/native/charts/src/engine/scene.cjs +1 -1
  614. package/dist/native/charts/src/engine/scene.cjs.map +1 -1
  615. package/dist/native/charts/src/engine/scene.js +369 -128
  616. package/dist/native/charts/src/engine/scene.js.map +1 -1
  617. package/dist/native/charts/src/engine/shapes/bullet.cjs +2 -0
  618. package/dist/native/charts/src/engine/shapes/bullet.cjs.map +1 -0
  619. package/dist/native/charts/src/engine/shapes/bullet.js +255 -0
  620. package/dist/native/charts/src/engine/shapes/bullet.js.map +1 -0
  621. package/dist/native/charts/src/engine/shapes/calendar.cjs +2 -0
  622. package/dist/native/charts/src/engine/shapes/calendar.cjs.map +1 -0
  623. package/dist/native/charts/src/engine/shapes/calendar.js +364 -0
  624. package/dist/native/charts/src/engine/shapes/calendar.js.map +1 -0
  625. package/dist/native/charts/src/engine/shapes/canvas.cjs +2 -0
  626. package/dist/native/charts/src/engine/shapes/canvas.cjs.map +1 -0
  627. package/dist/native/charts/src/engine/shapes/canvas.js +168 -0
  628. package/dist/native/charts/src/engine/shapes/canvas.js.map +1 -0
  629. package/dist/native/charts/src/engine/shapes/draw.cjs +2 -0
  630. package/dist/native/charts/src/engine/shapes/draw.cjs.map +1 -0
  631. package/dist/native/charts/src/engine/shapes/draw.js +165 -0
  632. package/dist/native/charts/src/engine/shapes/draw.js.map +1 -0
  633. package/dist/native/charts/src/engine/shapes/funnel.cjs +2 -0
  634. package/dist/native/charts/src/engine/shapes/funnel.cjs.map +1 -0
  635. package/dist/native/charts/src/engine/shapes/funnel.js +149 -0
  636. package/dist/native/charts/src/engine/shapes/funnel.js.map +1 -0
  637. package/dist/native/charts/src/engine/shapes/gauge.cjs +2 -0
  638. package/dist/native/charts/src/engine/shapes/gauge.cjs.map +1 -0
  639. package/dist/native/charts/src/engine/shapes/gauge.js +210 -0
  640. package/dist/native/charts/src/engine/shapes/gauge.js.map +1 -0
  641. package/dist/native/charts/src/engine/shapes/hit.cjs +2 -0
  642. package/dist/native/charts/src/engine/shapes/hit.cjs.map +1 -0
  643. package/dist/native/charts/src/engine/shapes/hit.js +106 -0
  644. package/dist/native/charts/src/engine/shapes/hit.js.map +1 -0
  645. package/dist/native/charts/src/engine/shapes/labels.cjs +2 -0
  646. package/dist/native/charts/src/engine/shapes/labels.cjs.map +1 -0
  647. package/dist/native/charts/src/engine/shapes/labels.js +146 -0
  648. package/dist/native/charts/src/engine/shapes/labels.js.map +1 -0
  649. package/dist/native/charts/src/engine/shapes/layout.cjs +3 -0
  650. package/dist/native/charts/src/engine/shapes/layout.cjs.map +1 -0
  651. package/dist/native/charts/src/engine/shapes/layout.js +331 -0
  652. package/dist/native/charts/src/engine/shapes/layout.js.map +1 -0
  653. package/dist/native/charts/src/engine/shapes/pie.cjs +2 -0
  654. package/dist/native/charts/src/engine/shapes/pie.cjs.map +1 -0
  655. package/dist/native/charts/src/engine/shapes/pie.js +302 -0
  656. package/dist/native/charts/src/engine/shapes/pie.js.map +1 -0
  657. package/dist/native/charts/src/engine/shapes/radar.cjs +2 -0
  658. package/dist/native/charts/src/engine/shapes/radar.cjs.map +1 -0
  659. package/dist/native/charts/src/engine/shapes/radar.js +198 -0
  660. package/dist/native/charts/src/engine/shapes/radar.js.map +1 -0
  661. package/dist/native/charts/src/engine/shapes/radialBar.cjs +2 -0
  662. package/dist/native/charts/src/engine/shapes/radialBar.cjs.map +1 -0
  663. package/dist/native/charts/src/engine/shapes/radialBar.js +155 -0
  664. package/dist/native/charts/src/engine/shapes/radialBar.js.map +1 -0
  665. package/dist/native/charts/src/engine/shapes/runtime.cjs +2 -0
  666. package/dist/native/charts/src/engine/shapes/runtime.cjs.map +1 -0
  667. package/dist/native/charts/src/engine/shapes/runtime.js +107 -0
  668. package/dist/native/charts/src/engine/shapes/runtime.js.map +1 -0
  669. package/dist/native/charts/src/engine/shapes/sankey.cjs +2 -0
  670. package/dist/native/charts/src/engine/shapes/sankey.cjs.map +1 -0
  671. package/dist/native/charts/src/engine/shapes/sankey.js +372 -0
  672. package/dist/native/charts/src/engine/shapes/sankey.js.map +1 -0
  673. package/dist/native/charts/src/engine/shapes/scene.cjs +2 -0
  674. package/dist/native/charts/src/engine/shapes/scene.cjs.map +1 -0
  675. package/dist/native/charts/src/engine/shapes/scene.js +125 -0
  676. package/dist/native/charts/src/engine/shapes/scene.js.map +1 -0
  677. package/dist/native/charts/src/engine/shapes/sunburst.cjs +2 -0
  678. package/dist/native/charts/src/engine/shapes/sunburst.cjs.map +1 -0
  679. package/dist/native/charts/src/engine/shapes/sunburst.js +261 -0
  680. package/dist/native/charts/src/engine/shapes/sunburst.js.map +1 -0
  681. package/dist/native/charts/src/engine/shapes/treemap.cjs +2 -0
  682. package/dist/native/charts/src/engine/shapes/treemap.cjs.map +1 -0
  683. package/dist/native/charts/src/engine/shapes/treemap.js +213 -0
  684. package/dist/native/charts/src/engine/shapes/treemap.js.map +1 -0
  685. package/dist/native/charts/src/engine/theme.cjs.map +1 -1
  686. package/dist/native/charts/src/engine/theme.js.map +1 -1
  687. package/dist/native/charts/src/engine/time.cjs +1 -1
  688. package/dist/native/charts/src/engine/time.cjs.map +1 -1
  689. package/dist/native/charts/src/engine/time.js +156 -91
  690. package/dist/native/charts/src/engine/time.js.map +1 -1
  691. package/dist/native/components/Chart/ChartBase.cjs +1 -1
  692. package/dist/native/components/Chart/ChartBase.cjs.map +1 -1
  693. package/dist/native/components/Chart/ChartBase.d.cts +1 -1
  694. package/dist/native/components/Chart/ChartBase.d.ts +1 -1
  695. package/dist/native/components/Chart/ChartBase.js +110 -107
  696. package/dist/native/components/Chart/ChartBase.js.map +1 -1
  697. package/dist/native/components/Chart/charts.cjs +1 -1
  698. package/dist/native/components/Chart/charts.cjs.map +1 -1
  699. package/dist/native/components/Chart/charts.d.cts +6 -1
  700. package/dist/native/components/Chart/charts.d.ts +6 -1
  701. package/dist/native/components/Chart/charts.js +53 -29
  702. package/dist/native/components/Chart/charts.js.map +1 -1
  703. package/dist/native/components/Chart/index.cjs +1 -1
  704. package/dist/native/components/Chart/index.d.cts +1 -1
  705. package/dist/native/components/Chart/index.d.ts +1 -1
  706. package/dist/native/components/Chart/index.js +2 -2
  707. package/dist/native/components/Chart/scene.cjs +1 -1
  708. package/dist/native/components/Chart/scene.cjs.map +1 -1
  709. package/dist/native/components/Chart/scene.js +244 -215
  710. package/dist/native/components/Chart/scene.js.map +1 -1
  711. package/dist/native/components/Chart/types.d.cts +26 -3
  712. package/dist/native/components/Chart/types.d.ts +26 -3
  713. package/dist/native/components/Charts/charts.cjs +2 -0
  714. package/dist/native/components/Charts/charts.cjs.map +1 -0
  715. package/dist/native/components/Charts/charts.d.cts +41 -0
  716. package/dist/native/components/Charts/charts.d.ts +41 -0
  717. package/dist/native/components/Charts/charts.js +338 -0
  718. package/dist/native/components/Charts/charts.js.map +1 -0
  719. package/dist/native/components/Charts/index.cjs +1 -0
  720. package/dist/native/components/Charts/index.d.cts +2 -0
  721. package/dist/native/components/Charts/index.d.ts +2 -0
  722. package/dist/native/components/Charts/index.js +2 -0
  723. package/dist/native/components/Charts/types.d.cts +144 -0
  724. package/dist/native/components/Charts/types.d.ts +144 -0
  725. package/dist/native/components/ShapeChart/ShapeChartBase.cjs +2 -0
  726. package/dist/native/components/ShapeChart/ShapeChartBase.cjs.map +1 -0
  727. package/dist/native/components/ShapeChart/ShapeChartBase.d.cts +24 -0
  728. package/dist/native/components/ShapeChart/ShapeChartBase.d.ts +24 -0
  729. package/dist/native/components/ShapeChart/ShapeChartBase.js +271 -0
  730. package/dist/native/components/ShapeChart/ShapeChartBase.js.map +1 -0
  731. package/dist/native/components/ShapeChart/charts.cjs +2 -0
  732. package/dist/native/components/ShapeChart/charts.cjs.map +1 -0
  733. package/dist/native/components/ShapeChart/charts.d.cts +38 -0
  734. package/dist/native/components/ShapeChart/charts.d.ts +38 -0
  735. package/dist/native/components/ShapeChart/charts.js +387 -0
  736. package/dist/native/components/ShapeChart/charts.js.map +1 -0
  737. package/dist/native/components/ShapeChart/draw.cjs +2 -0
  738. package/dist/native/components/ShapeChart/draw.cjs.map +1 -0
  739. package/dist/native/components/ShapeChart/draw.d.cts +4 -0
  740. package/dist/native/components/ShapeChart/draw.d.ts +4 -0
  741. package/dist/native/components/ShapeChart/draw.js +104 -0
  742. package/dist/native/components/ShapeChart/draw.js.map +1 -0
  743. package/dist/native/components/ShapeChart/geometry.cjs +2 -0
  744. package/dist/native/components/ShapeChart/geometry.cjs.map +1 -0
  745. package/dist/native/components/ShapeChart/geometry.d.cts +71 -0
  746. package/dist/native/components/ShapeChart/geometry.d.ts +71 -0
  747. package/dist/native/components/ShapeChart/geometry.js +602 -0
  748. package/dist/native/components/ShapeChart/geometry.js.map +1 -0
  749. package/dist/native/components/ShapeChart/index.cjs +1 -0
  750. package/dist/native/components/ShapeChart/index.d.cts +2 -0
  751. package/dist/native/components/ShapeChart/index.d.ts +2 -0
  752. package/dist/native/components/ShapeChart/index.js +2 -0
  753. package/dist/native/components/ShapeChart/recorder.cjs +2 -0
  754. package/dist/native/components/ShapeChart/recorder.cjs.map +1 -0
  755. package/dist/native/components/ShapeChart/recorder.d.cts +106 -0
  756. package/dist/native/components/ShapeChart/recorder.d.ts +106 -0
  757. package/dist/native/components/ShapeChart/recorder.js +574 -0
  758. package/dist/native/components/ShapeChart/recorder.js.map +1 -0
  759. package/dist/native/components/ShapeChart/types.d.cts +509 -0
  760. package/dist/native/components/ShapeChart/types.d.ts +509 -0
  761. package/dist/native/index.cjs +1 -1
  762. package/dist/native/index.d.cts +2 -0
  763. package/dist/native/index.d.ts +2 -0
  764. package/dist/native/index.js +14 -10
  765. package/dist/native/manifest.d.cts +6 -4
  766. package/dist/native/manifest.d.ts +6 -4
  767. package/dist/native/source/components/Chart/ChartBase.tsx +8 -1
  768. package/dist/native/source/components/Chart/charts.tsx +42 -6
  769. package/dist/native/source/components/Chart/index.ts +1 -0
  770. package/dist/native/source/components/Chart/scene.tsx +204 -100
  771. package/dist/native/source/components/Chart/types.ts +31 -1
  772. package/dist/native/source/components/Charts/charts.tsx +493 -0
  773. package/dist/native/source/components/Charts/index.ts +14 -0
  774. package/dist/native/source/components/Charts/types.ts +207 -0
  775. package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +484 -0
  776. package/dist/native/source/components/ShapeChart/charts.tsx +605 -0
  777. package/dist/native/source/components/ShapeChart/draw.tsx +170 -0
  778. package/dist/native/source/components/ShapeChart/geometry.ts +1185 -0
  779. package/dist/native/source/components/ShapeChart/index.ts +15 -0
  780. package/dist/native/source/components/ShapeChart/recorder.ts +830 -0
  781. package/dist/native/source/components/ShapeChart/types.ts +564 -0
  782. package/dist/native/source/index.ts +2 -0
  783. package/dist/native/source/manifest.ts +30 -4
  784. package/dist/taro/charts.d.ts +209 -4
  785. package/dist/taro/index.d.ts +1 -0
  786. package/dist/taro/index.js +8032 -1891
  787. package/dist/taro/manifest.d.ts +1 -0
  788. package/dist/taro/shape-charts.d.ts +537 -0
  789. package/dist/uni/AreaChart.vue +68 -0
  790. package/dist/uni/AreaChart.vue.d.ts +120 -0
  791. package/dist/uni/Badge.vue.d.ts +1 -1
  792. package/dist/uni/BoxPlotChart.vue +66 -0
  793. package/dist/uni/BoxPlotChart.vue.d.ts +102 -0
  794. package/dist/uni/BubbleChart.vue +68 -0
  795. package/dist/uni/BubbleChart.vue.d.ts +106 -0
  796. package/dist/uni/BulletChart.vue +86 -0
  797. package/dist/uni/BulletChart.vue.d.ts +110 -0
  798. package/dist/uni/CalendarHeatmap.vue +92 -0
  799. package/dist/uni/CalendarHeatmap.vue.d.ts +129 -0
  800. package/dist/uni/CandlestickChart.vue +66 -0
  801. package/dist/uni/CandlestickChart.vue.d.ts +100 -0
  802. package/dist/uni/DonutChart.vue +72 -0
  803. package/dist/uni/DonutChart.vue.d.ts +114 -0
  804. package/dist/uni/FunnelChart.vue +67 -0
  805. package/dist/uni/FunnelChart.vue.d.ts +104 -0
  806. package/dist/uni/GanttChart.vue +67 -0
  807. package/dist/uni/GanttChart.vue.d.ts +123 -0
  808. package/dist/uni/GaugeChart.vue +77 -0
  809. package/dist/uni/GaugeChart.vue.d.ts +123 -0
  810. package/dist/uni/HeatmapChart.vue +66 -0
  811. package/dist/uni/HeatmapChart.vue.d.ts +114 -0
  812. package/dist/uni/HistogramChart.vue +66 -0
  813. package/dist/uni/HistogramChart.vue.d.ts +121 -0
  814. package/dist/uni/HorizontalBarChart.vue +68 -0
  815. package/dist/uni/HorizontalBarChart.vue.d.ts +127 -0
  816. package/dist/uni/Input.vue.d.ts +1 -1
  817. package/dist/uni/MixedChart.vue +68 -0
  818. package/dist/uni/MixedChart.vue.d.ts +106 -0
  819. package/dist/uni/NumberInput.vue.d.ts +1 -1
  820. package/dist/uni/PieChart.vue +72 -0
  821. package/dist/uni/PieChart.vue.d.ts +114 -0
  822. package/dist/uni/RadarChart.vue +67 -0
  823. package/dist/uni/RadarChart.vue.d.ts +110 -0
  824. package/dist/uni/RadialBarChart.vue +90 -0
  825. package/dist/uni/RadialBarChart.vue.d.ts +132 -0
  826. package/dist/uni/RangeAreaChart.vue +68 -0
  827. package/dist/uni/RangeAreaChart.vue.d.ts +102 -0
  828. package/dist/uni/ResponsiveGrid.vue.d.ts +1 -1
  829. package/dist/uni/SankeyChart.vue +88 -0
  830. package/dist/uni/SankeyChart.vue.d.ts +121 -0
  831. package/dist/uni/ShapeChart.vue +73 -0
  832. package/dist/uni/ShapeChart.vue.d.ts +54 -0
  833. package/dist/uni/Sparkline.vue +58 -0
  834. package/dist/uni/Sparkline.vue.d.ts +77 -0
  835. package/dist/uni/SunburstChart.vue +90 -0
  836. package/dist/uni/SunburstChart.vue.d.ts +114 -0
  837. package/dist/uni/Textarea.vue.d.ts +1 -1
  838. package/dist/uni/TimePicker.vue.d.ts +1 -1
  839. package/dist/uni/TreemapChart.vue +65 -0
  840. package/dist/uni/TreemapChart.vue.d.ts +100 -0
  841. package/dist/uni/WaterfallChart.vue +66 -0
  842. package/dist/uni/WaterfallChart.vue.d.ts +125 -0
  843. package/dist/uni/chart-types.d.ts +216 -2
  844. package/dist/uni/chart-types.js +174 -0
  845. package/dist/uni/charts-canvas.js +10 -3
  846. package/dist/uni/index.d.ts +26 -1
  847. package/dist/uni/index.js +26 -1
  848. package/dist/uni/manifest.d.ts +272 -0
  849. package/dist/uni/manifest.js +387 -0
  850. package/dist/uni/named-chart-options.d.ts +88 -0
  851. package/dist/uni/named-chart-options.js +156 -0
  852. package/dist/uni/shape-chart-canvas.d.ts +51 -0
  853. package/dist/uni/shape-chart-canvas.js +342 -0
  854. package/dist/uni/shape-chart-types.d.ts +381 -0
  855. package/dist/uni/shape-chart-types.js +261 -0
  856. package/dist/vue/components/Chart/AreaChart.vue.d.ts +124 -0
  857. package/dist/vue/components/Chart/AreaChart.vue.js +7 -0
  858. package/dist/vue/components/Chart/AreaChart.vue.js.map +1 -0
  859. package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js +49 -0
  860. package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  861. package/dist/vue/components/Chart/Bar3DChart.vue.d.ts +132 -0
  862. package/dist/vue/components/Chart/Bar3DChart.vue.js +7 -0
  863. package/dist/vue/components/Chart/Bar3DChart.vue.js.map +1 -0
  864. package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js +55 -0
  865. package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  866. package/dist/vue/components/Chart/BarChart.vue.d.ts +123 -0
  867. package/dist/vue/components/Chart/BarChart.vue.js +7 -0
  868. package/dist/vue/components/Chart/BarChart.vue.js.map +1 -0
  869. package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js +53 -0
  870. package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  871. package/dist/vue/components/Chart/BoxPlotChart.vue.d.ts +112 -0
  872. package/dist/vue/components/Chart/BoxPlotChart.vue.js +7 -0
  873. package/dist/vue/components/Chart/BoxPlotChart.vue.js.map +1 -0
  874. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js +57 -0
  875. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  876. package/dist/vue/components/Chart/BubbleChart.vue.d.ts +106 -0
  877. package/dist/vue/components/Chart/BubbleChart.vue.js +7 -0
  878. package/dist/vue/components/Chart/BubbleChart.vue.js.map +1 -0
  879. package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js +52 -0
  880. package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  881. package/dist/vue/components/Chart/BulletChart.vue.d.ts +117 -0
  882. package/dist/vue/components/Chart/BulletChart.vue.js +7 -0
  883. package/dist/vue/components/Chart/BulletChart.vue.js.map +1 -0
  884. package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js +64 -0
  885. package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  886. package/dist/vue/components/Chart/CalendarHeatmap.vue.d.ts +144 -0
  887. package/dist/vue/components/Chart/CalendarHeatmap.vue.js +7 -0
  888. package/dist/vue/components/Chart/CalendarHeatmap.vue.js.map +1 -0
  889. package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js +77 -0
  890. package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
  891. package/dist/vue/components/Chart/CandlestickChart.vue.d.ts +94 -0
  892. package/dist/vue/components/Chart/CandlestickChart.vue.js +7 -0
  893. package/dist/vue/components/Chart/CandlestickChart.vue.js.map +1 -0
  894. package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js +44 -0
  895. package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  896. package/dist/vue/components/Chart/Chart.vue.d.ts +103 -0
  897. package/dist/vue/components/Chart/Chart.vue.js +7 -0
  898. package/dist/vue/components/Chart/Chart.vue.js.map +1 -0
  899. package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js +47 -0
  900. package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  901. package/dist/vue/components/Chart/DepthChart.vue.d.ts +139 -0
  902. package/dist/vue/components/Chart/DepthChart.vue.js +7 -0
  903. package/dist/vue/components/Chart/DepthChart.vue.js.map +1 -0
  904. package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js +42 -0
  905. package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  906. package/dist/vue/components/Chart/DonutChart.vue.d.ts +104 -0
  907. package/dist/vue/components/Chart/DonutChart.vue.js +7 -0
  908. package/dist/vue/components/Chart/DonutChart.vue.js.map +1 -0
  909. package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js +53 -0
  910. package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  911. package/dist/vue/components/Chart/FunnelChart.vue.d.ts +105 -0
  912. package/dist/vue/components/Chart/FunnelChart.vue.js +7 -0
  913. package/dist/vue/components/Chart/FunnelChart.vue.js.map +1 -0
  914. package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js +58 -0
  915. package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  916. package/dist/vue/components/Chart/GanttChart.vue.d.ts +132 -0
  917. package/dist/vue/components/Chart/GanttChart.vue.js +7 -0
  918. package/dist/vue/components/Chart/GanttChart.vue.js.map +1 -0
  919. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js +98 -0
  920. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  921. package/dist/vue/components/Chart/GaugeChart.vue.d.ts +132 -0
  922. package/dist/vue/components/Chart/GaugeChart.vue.js +7 -0
  923. package/dist/vue/components/Chart/GaugeChart.vue.js.map +1 -0
  924. package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js +71 -0
  925. package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  926. package/dist/vue/components/Chart/HeatmapChart.vue.d.ts +125 -0
  927. package/dist/vue/components/Chart/HeatmapChart.vue.js +7 -0
  928. package/dist/vue/components/Chart/HeatmapChart.vue.js.map +1 -0
  929. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js +65 -0
  930. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  931. package/dist/vue/components/Chart/HistogramChart.vue.d.ts +132 -0
  932. package/dist/vue/components/Chart/HistogramChart.vue.js +7 -0
  933. package/dist/vue/components/Chart/HistogramChart.vue.js.map +1 -0
  934. package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js +66 -0
  935. package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  936. package/dist/vue/components/Chart/HorizontalBarChart.vue.d.ts +121 -0
  937. package/dist/vue/components/Chart/HorizontalBarChart.vue.js +7 -0
  938. package/dist/vue/components/Chart/HorizontalBarChart.vue.js.map +1 -0
  939. package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js +55 -0
  940. package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  941. package/dist/vue/components/Chart/Line3DChart.vue.d.ts +121 -0
  942. package/dist/vue/components/Chart/Line3DChart.vue.js +7 -0
  943. package/dist/vue/components/Chart/Line3DChart.vue.js.map +1 -0
  944. package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
  945. package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  946. package/dist/vue/components/Chart/LineChart.vue.d.ts +125 -0
  947. package/dist/vue/components/Chart/LineChart.vue.js +7 -0
  948. package/dist/vue/components/Chart/LineChart.vue.js.map +1 -0
  949. package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js +50 -0
  950. package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  951. package/dist/vue/components/Chart/MixedChart.vue.d.ts +103 -0
  952. package/dist/vue/components/Chart/MixedChart.vue.js +7 -0
  953. package/dist/vue/components/Chart/MixedChart.vue.js.map +1 -0
  954. package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js +47 -0
  955. package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  956. package/dist/vue/components/Chart/OrderBook.vue.d.ts +125 -0
  957. package/dist/vue/components/Chart/OrderBook.vue.js +7 -0
  958. package/dist/vue/components/Chart/OrderBook.vue.js.map +1 -0
  959. package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js +38 -0
  960. package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js.map +1 -0
  961. package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +128 -0
  962. package/dist/vue/components/Chart/OrderBookHeatmap.vue.js +7 -0
  963. package/dist/vue/components/Chart/OrderBookHeatmap.vue.js.map +1 -0
  964. package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js +46 -0
  965. package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
  966. package/dist/vue/components/Chart/PieChart.vue.d.ts +104 -0
  967. package/dist/vue/components/Chart/PieChart.vue.js +7 -0
  968. package/dist/vue/components/Chart/PieChart.vue.js.map +1 -0
  969. package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js +53 -0
  970. package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  971. package/dist/vue/components/Chart/QuadrantChart.vue.d.ts +186 -0
  972. package/dist/vue/components/Chart/QuadrantChart.vue.js +7 -0
  973. package/dist/vue/components/Chart/QuadrantChart.vue.js.map +1 -0
  974. package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js +107 -0
  975. package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  976. package/dist/vue/components/Chart/RadarChart.vue.d.ts +111 -0
  977. package/dist/vue/components/Chart/RadarChart.vue.js +7 -0
  978. package/dist/vue/components/Chart/RadarChart.vue.js.map +1 -0
  979. package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js +61 -0
  980. package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  981. package/dist/vue/components/Chart/RadialBarChart.vue.d.ts +147 -0
  982. package/dist/vue/components/Chart/RadialBarChart.vue.js +7 -0
  983. package/dist/vue/components/Chart/RadialBarChart.vue.js.map +1 -0
  984. package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js +78 -0
  985. package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  986. package/dist/vue/components/Chart/RangeAreaChart.vue.d.ts +106 -0
  987. package/dist/vue/components/Chart/RangeAreaChart.vue.js +7 -0
  988. package/dist/vue/components/Chart/RangeAreaChart.vue.js.map +1 -0
  989. package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js +51 -0
  990. package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  991. package/dist/vue/components/Chart/SankeyChart.vue.d.ts +132 -0
  992. package/dist/vue/components/Chart/SankeyChart.vue.js +7 -0
  993. package/dist/vue/components/Chart/SankeyChart.vue.js.map +1 -0
  994. package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js +71 -0
  995. package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  996. package/dist/vue/components/Chart/Scatter3DChart.vue.d.ts +121 -0
  997. package/dist/vue/components/Chart/Scatter3DChart.vue.js +7 -0
  998. package/dist/vue/components/Chart/Scatter3DChart.vue.js.map +1 -0
  999. package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
  1000. package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1001. package/dist/vue/components/Chart/ScatterChart.vue.d.ts +94 -0
  1002. package/dist/vue/components/Chart/ScatterChart.vue.js +7 -0
  1003. package/dist/vue/components/Chart/ScatterChart.vue.js.map +1 -0
  1004. package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js +44 -0
  1005. package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1006. package/dist/vue/components/Chart/ShapeChart.vue.d.ts +39 -0
  1007. package/dist/vue/components/Chart/ShapeChart.vue.js +7 -0
  1008. package/dist/vue/components/Chart/ShapeChart.vue.js.map +1 -0
  1009. package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js +43 -0
  1010. package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1011. package/dist/vue/components/Chart/Sparkline.vue.d.ts +90 -0
  1012. package/dist/vue/components/Chart/Sparkline.vue.js +7 -0
  1013. package/dist/vue/components/Chart/Sparkline.vue.js.map +1 -0
  1014. package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js +66 -0
  1015. package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1016. package/dist/vue/components/Chart/SunburstChart.vue.d.ts +123 -0
  1017. package/dist/vue/components/Chart/SunburstChart.vue.js +7 -0
  1018. package/dist/vue/components/Chart/SunburstChart.vue.js.map +1 -0
  1019. package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js +68 -0
  1020. package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1021. package/dist/vue/components/Chart/Surface3DChart.vue.d.ts +143 -0
  1022. package/dist/vue/components/Chart/Surface3DChart.vue.js +7 -0
  1023. package/dist/vue/components/Chart/Surface3DChart.vue.js.map +1 -0
  1024. package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js +60 -0
  1025. package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1026. package/dist/vue/components/Chart/TimeAndSales.vue.d.ts +114 -0
  1027. package/dist/vue/components/Chart/TimeAndSales.vue.js +7 -0
  1028. package/dist/vue/components/Chart/TimeAndSales.vue.js.map +1 -0
  1029. package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js +46 -0
  1030. package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1031. package/dist/vue/components/Chart/TradingChart.vue.d.ts +160 -0
  1032. package/dist/vue/components/Chart/TradingChart.vue.js +7 -0
  1033. package/dist/vue/components/Chart/TradingChart.vue.js.map +1 -0
  1034. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js +70 -0
  1035. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1036. package/dist/vue/components/Chart/TreemapChart.vue.d.ts +97 -0
  1037. package/dist/vue/components/Chart/TreemapChart.vue.js +7 -0
  1038. package/dist/vue/components/Chart/TreemapChart.vue.js.map +1 -0
  1039. package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js +54 -0
  1040. package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1041. package/dist/vue/components/Chart/WaterfallChart.vue.d.ts +132 -0
  1042. package/dist/vue/components/Chart/WaterfallChart.vue.js +7 -0
  1043. package/dist/vue/components/Chart/WaterfallChart.vue.js.map +1 -0
  1044. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js +68 -0
  1045. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1046. package/dist/vue/components/Chart/cartesian.d.ts +47 -0
  1047. package/dist/vue/components/Chart/cartesian.js +56 -0
  1048. package/dist/vue/components/Chart/cartesian.js.map +1 -0
  1049. package/dist/vue/components/Chart/engine.d.ts +35 -0
  1050. package/dist/vue/components/Chart/engine.js +35 -0
  1051. package/dist/vue/components/Chart/engine.js.map +1 -0
  1052. package/dist/vue/components/Chart/index.d.ts +41 -0
  1053. package/dist/vue/components/Chart/index.js +40 -0
  1054. package/dist/vue/components/Chart/orderbook.d.ts +359 -0
  1055. package/dist/vue/components/Chart/orderbook.js +126 -0
  1056. package/dist/vue/components/Chart/orderbook.js.map +1 -0
  1057. package/dist/vue/components/Chart/props.d.ts +188 -0
  1058. package/dist/vue/components/Chart/props.js +92 -0
  1059. package/dist/vue/components/Chart/props.js.map +1 -0
  1060. package/dist/vue/components/Chart/shape.d.ts +41 -0
  1061. package/dist/vue/components/Chart/shape.js +42 -0
  1062. package/dist/vue/components/Chart/shape.js.map +1 -0
  1063. package/dist/vue/components/Chart/three-d.d.ts +106 -0
  1064. package/dist/vue/components/Chart/three-d.js +88 -0
  1065. package/dist/vue/components/Chart/three-d.js.map +1 -0
  1066. package/dist/vue/components/Chart/trading.d.ts +105 -0
  1067. package/dist/vue/components/Chart/trading.js +55 -0
  1068. package/dist/vue/components/Chart/trading.js.map +1 -0
  1069. package/dist/vue/components/Chart/types.d.ts +137 -0
  1070. package/dist/vue/global.d.ts +38 -0
  1071. package/dist/vue/groups/charts.d.ts +1 -0
  1072. package/dist/vue/groups/charts.js +87 -0
  1073. package/dist/vue/groups/charts.js.map +1 -0
  1074. package/dist/vue/index.d.ts +1 -0
  1075. package/dist/vue/index.js +63 -23
  1076. package/dist/vue/plugin.js +12 -10
  1077. package/dist/vue/plugin.js.map +1 -1
  1078. package/dist/weapp/area-chart/index.js +1 -0
  1079. package/dist/weapp/area-chart/index.json +1 -0
  1080. package/dist/weapp/area-chart/index.wxml +1 -0
  1081. package/dist/weapp/area-chart/index.wxss +1 -0
  1082. package/dist/weapp/box-plot-chart/index.js +1 -0
  1083. package/dist/weapp/box-plot-chart/index.json +1 -0
  1084. package/dist/weapp/box-plot-chart/index.wxml +1 -0
  1085. package/dist/weapp/box-plot-chart/index.wxss +1 -0
  1086. package/dist/weapp/bubble-chart/index.js +1 -0
  1087. package/dist/weapp/bubble-chart/index.json +1 -0
  1088. package/dist/weapp/bubble-chart/index.wxml +1 -0
  1089. package/dist/weapp/bubble-chart/index.wxss +1 -0
  1090. package/dist/weapp/bullet-chart/index.js +1 -0
  1091. package/dist/weapp/bullet-chart/index.json +1 -0
  1092. package/dist/weapp/bullet-chart/index.wxml +1 -0
  1093. package/dist/weapp/bullet-chart/index.wxss +1 -0
  1094. package/dist/weapp/calendar-heatmap/index.js +1 -0
  1095. package/dist/weapp/calendar-heatmap/index.json +1 -0
  1096. package/dist/weapp/calendar-heatmap/index.wxml +1 -0
  1097. package/dist/weapp/calendar-heatmap/index.wxss +1 -0
  1098. package/dist/weapp/candlestick-chart/index.js +1 -0
  1099. package/dist/weapp/candlestick-chart/index.json +1 -0
  1100. package/dist/weapp/candlestick-chart/index.wxml +1 -0
  1101. package/dist/weapp/candlestick-chart/index.wxss +1 -0
  1102. package/dist/weapp/charts/canvas.js +11436 -0
  1103. package/dist/weapp/charts/core.d.ts +2 -0
  1104. package/dist/weapp/charts/core.js +41 -0
  1105. package/dist/weapp/controls.js +1428 -3732
  1106. package/dist/weapp/donut-chart/index.js +1 -0
  1107. package/dist/weapp/donut-chart/index.json +1 -0
  1108. package/dist/weapp/donut-chart/index.wxml +1 -0
  1109. package/dist/weapp/donut-chart/index.wxss +1 -0
  1110. package/dist/weapp/funnel-chart/index.js +1 -0
  1111. package/dist/weapp/funnel-chart/index.json +1 -0
  1112. package/dist/weapp/funnel-chart/index.wxml +1 -0
  1113. package/dist/weapp/funnel-chart/index.wxss +1 -0
  1114. package/dist/weapp/gantt-chart/index.js +1 -0
  1115. package/dist/weapp/gantt-chart/index.json +1 -0
  1116. package/dist/weapp/gantt-chart/index.wxml +1 -0
  1117. package/dist/weapp/gantt-chart/index.wxss +1 -0
  1118. package/dist/weapp/gauge-chart/index.js +1 -0
  1119. package/dist/weapp/gauge-chart/index.json +1 -0
  1120. package/dist/weapp/gauge-chart/index.wxml +1 -0
  1121. package/dist/weapp/gauge-chart/index.wxss +1 -0
  1122. package/dist/weapp/heatmap-chart/index.js +1 -0
  1123. package/dist/weapp/heatmap-chart/index.json +1 -0
  1124. package/dist/weapp/heatmap-chart/index.wxml +1 -0
  1125. package/dist/weapp/heatmap-chart/index.wxss +1 -0
  1126. package/dist/weapp/histogram-chart/index.js +1 -0
  1127. package/dist/weapp/histogram-chart/index.json +1 -0
  1128. package/dist/weapp/histogram-chart/index.wxml +1 -0
  1129. package/dist/weapp/histogram-chart/index.wxss +1 -0
  1130. package/dist/weapp/horizontal-bar-chart/index.js +1 -0
  1131. package/dist/weapp/horizontal-bar-chart/index.json +1 -0
  1132. package/dist/weapp/horizontal-bar-chart/index.wxml +1 -0
  1133. package/dist/weapp/horizontal-bar-chart/index.wxss +1 -0
  1134. package/dist/weapp/mixed-chart/index.js +1 -0
  1135. package/dist/weapp/mixed-chart/index.json +1 -0
  1136. package/dist/weapp/mixed-chart/index.wxml +1 -0
  1137. package/dist/weapp/mixed-chart/index.wxss +1 -0
  1138. package/dist/weapp/pie-chart/index.js +1 -0
  1139. package/dist/weapp/pie-chart/index.json +1 -0
  1140. package/dist/weapp/pie-chart/index.wxml +1 -0
  1141. package/dist/weapp/pie-chart/index.wxss +1 -0
  1142. package/dist/weapp/radar-chart/index.js +1 -0
  1143. package/dist/weapp/radar-chart/index.json +1 -0
  1144. package/dist/weapp/radar-chart/index.wxml +1 -0
  1145. package/dist/weapp/radar-chart/index.wxss +1 -0
  1146. package/dist/weapp/radial-bar-chart/index.js +1 -0
  1147. package/dist/weapp/radial-bar-chart/index.json +1 -0
  1148. package/dist/weapp/radial-bar-chart/index.wxml +1 -0
  1149. package/dist/weapp/radial-bar-chart/index.wxss +1 -0
  1150. package/dist/weapp/range-area-chart/index.js +1 -0
  1151. package/dist/weapp/range-area-chart/index.json +1 -0
  1152. package/dist/weapp/range-area-chart/index.wxml +1 -0
  1153. package/dist/weapp/range-area-chart/index.wxss +1 -0
  1154. package/dist/weapp/sankey-chart/index.js +1 -0
  1155. package/dist/weapp/sankey-chart/index.json +1 -0
  1156. package/dist/weapp/sankey-chart/index.wxml +1 -0
  1157. package/dist/weapp/sankey-chart/index.wxss +1 -0
  1158. package/dist/weapp/shape-chart/index.js +1 -0
  1159. package/dist/weapp/shape-chart/index.json +1 -0
  1160. package/dist/weapp/shape-chart/index.wxml +1 -0
  1161. package/dist/weapp/shape-chart/index.wxss +1 -0
  1162. package/dist/weapp/sparkline/index.js +1 -0
  1163. package/dist/weapp/sparkline/index.json +1 -0
  1164. package/dist/weapp/sparkline/index.wxml +1 -0
  1165. package/dist/weapp/sparkline/index.wxss +1 -0
  1166. package/dist/weapp/sunburst-chart/index.js +1 -0
  1167. package/dist/weapp/sunburst-chart/index.json +1 -0
  1168. package/dist/weapp/sunburst-chart/index.wxml +1 -0
  1169. package/dist/weapp/sunburst-chart/index.wxss +1 -0
  1170. package/dist/weapp/treemap-chart/index.js +1 -0
  1171. package/dist/weapp/treemap-chart/index.json +1 -0
  1172. package/dist/weapp/treemap-chart/index.wxml +1 -0
  1173. package/dist/weapp/treemap-chart/index.wxss +1 -0
  1174. package/dist/weapp/types.d.ts +466 -0
  1175. package/dist/weapp/waterfall-chart/index.js +1 -0
  1176. package/dist/weapp/waterfall-chart/index.json +1 -0
  1177. package/dist/weapp/waterfall-chart/index.wxml +1 -0
  1178. package/dist/weapp/waterfall-chart/index.wxss +1 -0
  1179. package/dist/web-components/components/chart/chart.d.ts +58 -0
  1180. package/dist/web-components/components/chart/chart.js +55 -0
  1181. package/dist/web-components/components/chart/chart.js.map +1 -0
  1182. package/dist/web-components/components/chart/charts.d.ts +252 -0
  1183. package/dist/web-components/components/chart/charts.js +201 -0
  1184. package/dist/web-components/components/chart/charts.js.map +1 -0
  1185. package/dist/web-components/components/chart/engine-element.d.ts +53 -0
  1186. package/dist/web-components/components/chart/engine-element.js +77 -0
  1187. package/dist/web-components/components/chart/engine-element.js.map +1 -0
  1188. package/dist/web-components/components/chart/extended.d.ts +224 -0
  1189. package/dist/web-components/components/chart/extended.js +183 -0
  1190. package/dist/web-components/components/chart/extended.js.map +1 -0
  1191. package/dist/web-components/components/chart/series.d.ts +7 -0
  1192. package/dist/web-components/components/chart/series.js +14 -0
  1193. package/dist/web-components/components/chart/series.js.map +1 -0
  1194. package/dist/web-components/components/chart/shape-chart.d.ts +199 -0
  1195. package/dist/web-components/components/chart/shape-chart.js +161 -0
  1196. package/dist/web-components/components/chart/shape-chart.js.map +1 -0
  1197. package/dist/web-components/components/chart/shapes-extended.d.ts +162 -0
  1198. package/dist/web-components/components/chart/shapes-extended.js +156 -0
  1199. package/dist/web-components/components/chart/shapes-extended.js.map +1 -0
  1200. package/dist/web-components/components/chart-3d/chart-3d.d.ts +111 -0
  1201. package/dist/web-components/components/chart-3d/chart-3d.js +97 -0
  1202. package/dist/web-components/components/chart-3d/chart-3d.js.map +1 -0
  1203. package/dist/web-components/components/order-book/order-book.d.ts +165 -0
  1204. package/dist/web-components/components/order-book/order-book.js +174 -0
  1205. package/dist/web-components/components/order-book/order-book.js.map +1 -0
  1206. package/dist/web-components/components/trading-chart/trading-chart.d.ts +96 -0
  1207. package/dist/web-components/components/trading-chart/trading-chart.js +96 -0
  1208. package/dist/web-components/components/trading-chart/trading-chart.js.map +1 -0
  1209. package/dist/web-components/elements/chart-3d.d.ts +2 -0
  1210. package/dist/web-components/elements/chart-3d.js +13 -0
  1211. package/dist/web-components/elements/chart-3d.js.map +1 -0
  1212. package/dist/web-components/elements/chart.d.ts +7 -0
  1213. package/dist/web-components/elements/chart.js +43 -0
  1214. package/dist/web-components/elements/chart.js.map +1 -0
  1215. package/dist/web-components/elements/order-book.d.ts +2 -0
  1216. package/dist/web-components/elements/order-book.js +13 -0
  1217. package/dist/web-components/elements/order-book.js.map +1 -0
  1218. package/dist/web-components/elements/trading-chart.d.ts +2 -0
  1219. package/dist/web-components/elements/trading-chart.js +8 -0
  1220. package/dist/web-components/elements/trading-chart.js.map +1 -0
  1221. package/dist/web-components/html-custom-data.json +1192 -29
  1222. package/dist/web-components/types/react.d.ts +435 -0
  1223. package/dist/web-components/types/solid.d.ts +321 -0
  1224. package/dist/web-components/types/svelte.d.ts +321 -0
  1225. package/dist/web-components/types/vue.d.ts +359 -0
  1226. package/package.json +113 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radar.js","names":["radarRanges","o","min","finite","ind","max","s","v","k","radarValues","ranges","on","hidden","si","out","seriesName","interpolate","labels","layoutRadar","c","n","emptyLayout","levels","clamp","circle","angles","TAU","labelFont","font","theme","strongFont","halfW","area","halfH","radius","cos","sin","w","measure","half","cx","cy","at","r","ring","points","nodes","band","toCss","line","l","rIn","color","ends","x","y","enter","items","dots","geometry","isHidden","visibility","css","opacity","target","frac","indicators","value","labelBoxes","room","text","ellipsize","align","baseline"],"sources":["../../../../../charts/src/engine/shapes/radar.ts"],"sourcesContent":["// Radar (spider) layout: concentric grid with alternate bands, spokes,\n// indicator labels placed by angle, series polygons with dots.\n\nimport { toCss } from \"../color\";\nimport { font } from \"../overlay\";\nimport { interpolate } from \"./labels\";\nimport {\n clamp,\n ellipsize,\n emptyLayout,\n finite,\n TAU,\n type LayoutContext,\n type LayoutResult,\n type ShapeItem,\n type ShapeNode,\n type ShapeRect,\n} from \"./scene\";\nimport type { RadarChartOptions, ShapeChartLabels } from \"./types\";\n\n/** Value range of every indicator (center, rim) */\nexport const radarRanges = (o: RadarChartOptions): [number, number][] =>\n o.indicators.map((ind, k) => {\n const min = finite(ind.min);\n let max = ind.max;\n if (max === undefined || !Number.isFinite(max)) {\n max = -Infinity;\n for (const s of o.series) {\n const v = s.values[k];\n if (Number.isFinite(v)) max = Math.max(max, v);\n }\n }\n if (!(max > min)) max = min + 1;\n return [min, max];\n });\n\n/** Target values: hidden series shrink to the center */\nexport const radarValues = (\n o: RadarChartOptions,\n hidden: ReadonlySet<number>,\n out: Map<string, number>,\n) => {\n const ranges = radarRanges(o);\n o.series.forEach((s, si) => {\n const on = !hidden.has(si);\n out.set(`~${si}`, on ? 1 : 0);\n ranges.forEach(([min], k) => {\n out.set(`${si}:${k}`, on ? finite(s.values[k], min) : min);\n });\n });\n};\n\nexport const seriesName = (\n o: RadarChartOptions,\n si: number,\n labels: ShapeChartLabels,\n) => o.series[si]?.name ?? interpolate(labels.series, { index: si + 1 });\n\nexport const layoutRadar = (\n o: RadarChartOptions,\n c: LayoutContext,\n): LayoutResult => {\n const { theme, area, measure, hidden } = c;\n const n = o.indicators.length;\n if (!n) return emptyLayout(c);\n const ranges = radarRanges(o);\n const levels = Math.round(clamp(finite(o.levels, 4), 1, 12));\n const circle = o.shape === \"circle\";\n const angles = o.indicators.map((_, k) => -Math.PI / 2 + (TAU * k) / n);\n const labelFont = font(theme, 12);\n const strongFont = font(theme, 12, 600);\n\n // largest radius leaving room for every label, given its direction\n const LABEL_GAP = 10;\n const LABEL_H = 16;\n const halfW = area.width / 2;\n const halfH = area.height / 2;\n let radius = Math.min(halfW, halfH) - 4;\n o.indicators.forEach((ind, k) => {\n const cos = Math.abs(Math.cos(angles[k]));\n const sin = Math.abs(Math.sin(angles[k]));\n const w = measure(ind.name, strongFont);\n if (cos > 0.15)\n radius = Math.min(radius, (halfW - w - 4) / cos - LABEL_GAP);\n else radius = Math.min(radius, halfW - w / 2 - 4);\n if (sin > 0.3)\n radius = Math.min(radius, (halfH - LABEL_H - 2) / sin - LABEL_GAP);\n else radius = Math.min(radius, halfH - LABEL_H / 2 - 2);\n });\n const half = Math.min(area.width, area.height) / 2;\n radius = Math.max(radius, half * 0.45, 4);\n const cx = area.x + area.width / 2;\n const cy = area.y + area.height / 2;\n const at = (k: number, r: number): [number, number] => [\n cx + r * Math.cos(angles[k]),\n cy + r * Math.sin(angles[k]),\n ];\n const ring = (r: number) => {\n const points: number[] = [];\n for (let k = 0; k < n; k++) points.push(...at(k, r));\n return points;\n };\n\n const nodes: ShapeNode[] = [];\n const band = toCss(theme.grid, 0.45);\n const line = toCss(theme.grid);\n\n // grid: alternate bands from the rim, ring outlines, spokes\n for (let l = levels; l >= 1; l--) {\n const r = (radius * l) / levels;\n const rIn = (radius * (l - 1)) / levels;\n if ((levels - l) % 2 === 0) {\n if (circle)\n nodes.push({\n kind: \"sector\",\n cx,\n cy,\n r0: rIn,\n r1: r,\n a0: 0,\n a1: TAU,\n pad: 0,\n corner: 0,\n fill: band,\n });\n else if (n >= 3)\n nodes.push({\n kind: \"polygon\",\n points: ring(r),\n ...(l > 1 ? { hole: ring(rIn) } : {}),\n fill: band,\n });\n }\n }\n for (let l = 1; l <= levels; l++) {\n const r = (radius * l) / levels;\n const color = l === levels ? toCss(theme.axis, 0.9) : line;\n if (circle || n < 3)\n nodes.push({\n kind: \"arc\",\n cx,\n cy,\n r,\n a0: 0,\n a1: TAU,\n width: 1,\n color,\n cap: \"butt\",\n });\n else\n nodes.push({\n kind: \"polygon\",\n points: ring(r),\n stroke: color,\n lineWidth: 1,\n });\n }\n const ends = angles.map((_, k) => at(k, radius));\n for (const [x, y] of ends)\n nodes.push({ kind: \"line\", points: [cx, cy, x, y], color: line, width: 1 });\n nodes.push({\n kind: \"guide\",\n cx,\n cy,\n ends,\n color: toCss(theme.textMuted, 0.55),\n });\n\n // series\n const enter = clamp(c.enter, 0, 1);\n const items: ShapeItem[] = [];\n const dots: ShapeNode[] = [];\n const geometry: { index: number; points: number[] }[] = [];\n o.series.forEach((s, si) => {\n const isHidden = hidden.has(si);\n const visibility = clamp(c.value(`~${si}`, isHidden ? 0 : 1), 0, 1);\n if (isHidden && visibility <= 0.001) return;\n const color = c.color(s.color, si);\n const css = toCss(color);\n const opacity = clamp(finite(s.opacity, 0.18), 0, 1);\n const points: number[] = [];\n ranges.forEach(([min, max], k) => {\n const target = isHidden ? min : finite(s.values[k], min);\n const v = c.value(`${si}:${k}`, target);\n const frac = clamp((v - min) / (max - min), 0, 1);\n points.push(...at(k, radius * frac * enter));\n });\n nodes.push({\n kind: \"polygon\",\n points,\n fill: toCss(color, opacity),\n stroke: css,\n lineWidth: 2,\n hit: si,\n hoverFill: toCss(color, Math.min(0.5, opacity * 2 + 0.06)),\n hoverLineWidth: 3,\n });\n if (o.dots !== false) {\n for (let k = 0; k < n; k++)\n dots.push({\n kind: \"circle\",\n cx: points[k * 2],\n cy: points[k * 2 + 1],\n r: 3,\n fill: css,\n stroke: toCss(theme.background),\n lineWidth: 1.5,\n hit: si,\n indicator: k,\n hoverR: 5,\n halo: toCss(color, 0.2),\n });\n }\n if (isHidden) return;\n geometry.push({ index: si, points });\n const indicators = ranges.map(([min, max], k) => {\n const value = finite(s.values[k]);\n return {\n name: o.indicators[k].name,\n value,\n percent: clamp((value - min) / (max - min), 0, 1),\n x: points[k * 2],\n y: points[k * 2 + 1],\n };\n });\n items.push({\n index: si,\n name: seriesName(o, si, c.labels),\n value: indicators[0].value,\n percent: indicators[0].percent,\n color: css,\n x: indicators[0].x,\n y: indicators[0].y,\n rows: indicators.map((ind) => ({\n name: ind.name,\n value: c.format(ind.value),\n })),\n indicators,\n });\n });\n nodes.push(...dots);\n\n // indicator labels\n const labelBoxes: ShapeRect[] = [];\n o.indicators.forEach((ind, k) => {\n const cos = Math.cos(angles[k]);\n const sin = Math.sin(angles[k]);\n const [x, y] = at(k, radius + LABEL_GAP);\n const room =\n Math.abs(cos) < 0.15\n ? area.width\n : halfW - Math.abs(cos) * (radius + LABEL_GAP) - 2;\n const text = ellipsize(ind.name, Math.max(0, room), strongFont, measure);\n if (!text) return;\n const align = cos > 0.15 ? \"left\" : cos < -0.15 ? \"right\" : \"center\";\n const baseline = sin < -0.3 ? \"bottom\" : sin > 0.3 ? \"top\" : \"middle\";\n const w = measure(text, strongFont);\n labelBoxes.push({\n x: align === \"left\" ? x : align === \"right\" ? x - w : x - w / 2,\n y:\n baseline === \"top\"\n ? y\n : baseline === \"bottom\"\n ? y - LABEL_H\n : y - LABEL_H / 2,\n width: w,\n height: LABEL_H,\n });\n nodes.push({\n kind: \"text\",\n x,\n y,\n text,\n font: labelFont,\n color: toCss(theme.textMuted),\n align,\n baseline,\n indicator: k,\n hoverColor: toCss(theme.text),\n hoverFont: strongFont,\n });\n });\n\n return {\n nodes,\n items,\n dim: 0.35,\n empty: false,\n radar: { cx, cy, radius, angles, series: geometry, labels: labelBoxes },\n };\n};\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=require("../color.cjs"),t=require("../overlay.cjs"),n=require("./scene.cjs");var r=e=>n.uniqueKeys(e.data.map(e=>e.name)),i=e=>{let t=Math.max(0,...e.data.map(e=>n.positive(e.value))),r=n.positive(e.max)||t||1;return e.data.map(e=>n.positive(e.max)||r)},a=(e,t,i)=>{r(e).forEach((r,a)=>{let o=!t.has(a);i.set(r,o?n.positive(e.data[a].value):0),i.set(`~${r}`,+!!o)})},o=e=>e.labels??n.clamp(n.finite(e.sweep,270),30,360)<=300,s=(a,s)=>{let{theme:c,area:l,measure:u,hidden:d}=s,f=r(a),p=a.data.length,m=f.map((e,t)=>n.clamp(s.value(`~${e}`,+!d.has(t)),0,1));if(!p||n.sum(m)<=1e-6)return n.emptyLayout(s);let h=i(a),g=a.data.map((e,t)=>d.has(t)?0:n.positive(e.value)),_=g.map((e,t)=>Math.max(0,s.value(f[t],e))),v=n.clamp(n.finite(a.sweep,270),30,360)*Math.PI/180,y=v>=n.TAU-1e-6,b=n.finite(a.startAngle)*Math.PI/180-Math.PI/2,x=[0],S=[0];for(let e of[b,b+v])x.push(Math.cos(e)),S.push(Math.sin(e));for(let e=-8;e<=8;e++){let t=e*Math.PI/2;(y||t>b&&t<b+v)&&(x.push(Math.cos(t)),S.push(Math.sin(t)))}let C=Math.min(...x),w=Math.max(...x),T=Math.min(...S),E=Math.max(...S,a.centerValue||a.centerLabel?.12:0),D=Math.max(4,Math.min((l.width-4)/Math.max(1e-6,w-C),(l.height-4)/Math.max(1e-6,E-T))),O=l.x+(l.width-(w-C)*D)/2-C*D,k=l.y+(l.height-(E-T)*D)/2-T*D,A=E<.5,j=D*n.clamp(n.finite(a.innerRadius,.3),0,.9),M=n.clamp(n.finite(a.gap,.28),0,.9),N=(D-j)/n.sum(m),P=a.rounded!==!1,F=n.clamp(s.enter,0,1),I=o(a)&&!y,L=[...new Set(a.labelContent??[`name`,`value`])],R=n.TAU-v,z=n.upright(b+Math.PI/2),B=Math.cos(z-(b+Math.PI/2))<0,V=[],H=[],U=[],W=D;a.data.forEach((r,i)=>{let o=m[i],f=W;if(W-=o*N,o<=.001)return;let p=o*N*(1-M),x=f-o*N/2;if(p<.5||x<=0)return;let S=s.color(r.color,i),C=e.toCss(S),w=P&&!y?Math.min(v/2,p/2/x):0,T=b+w,E=b+v-w,D=o*N*M/2+1;a.track!==!1&&V.push({kind:`arc`,cx:O,cy:k,r:x,a0:y?0:T,a1:y?n.TAU:E,width:p,color:e.toCss(e.mix(S,c.background,.86)),cap:P&&!y?`round`:`butt`,hit:i,hitPad:D});let A=n.clamp(_[i]/h[i],0,1)*F;if(A>1e-4){let e=b+w+Math.max(0,v-2*w)*A;P&&e-(b+w)<.001?V.push({kind:`circle`,cx:O+x*Math.cos(b+w),cy:k+x*Math.sin(b+w),r:p/2,fill:C,hit:i}):V.push({kind:`arc`,cx:O,cy:k,r:x,a0:P?b+w:b,a1:P?e:b+v*A,width:p,color:C,cap:P?`round`:`butt`,hit:i,hitPad:D})}let j=h[i]>0?g[i]/h[i]:0;if(I&&o>.99){let a=n.clamp(Math.round(p*.62),9,12);if(p>=9){let o=t.font(c,a,500),d=L.filter(e=>e!==`name`).map(e=>e===`value`?s.format(g[i]):s.percent(j)),f=[L.includes(`name`)?r.name:``,d.join(` · `)].filter(Boolean).join(` `),m=P?p/2+6:6,h=O+x*Math.cos(b)-m*-Math.sin(b),_=k+x*Math.sin(b)-m*Math.cos(b),v=Math.sin(b),y=-Math.cos(b),S=1/0;v>1e-6&&(S=Math.min(S,(l.x+l.width-h)/v)),v<-1e-6&&(S=Math.min(S,(l.x-h)/v)),y>1e-6&&(S=Math.min(S,(l.y+l.height-_)/y)),y<-1e-6&&(S=Math.min(S,(l.y-_)/y));let C=Math.min(S-2,R>=Math.PI/2-1e-6?1/0:x*Math.tan(R)-m-4),w=n.ellipsize(f,C,o,u);w&&H.push({kind:`text`,x:h,y:_,text:w,font:o,color:e.toCss(c.text,.86),align:B?`left`:`right`,baseline:`middle`,rotate:z,hit:i})}}let G=Math.max(0,Math.min(A,1)),K=b+w+Math.max(0,v-2*w)*G;(g[i]>0||!d.has(i))&&U.push({index:i,name:r.name,value:g[i],percent:j,share:s.percent(j),color:C,x:O+x*Math.cos(K),y:k+x*Math.sin(K),rows:[{name:s.labels.value,value:s.format(g[i])},{name:s.labels.max,value:s.format(h[i])},{name:s.labels.progress,value:s.percent(j)}]})}),V.push(...H);let G=j*1.9-8;if(a.centerValue&&G>24){let r=n.clamp(j*.36,14,32),i=t.font(c,r,600),o=a.centerLabel?n.ellipsize(a.centerLabel,G,t.font(c,12),u):``,s=r+(o?18:0),l=A?k-s-2:k-s/2;V.push({kind:`text`,x:O,y:l+r/2,text:n.ellipsize(a.centerValue,G,i,u),font:i,color:e.toCss(c.text),align:`center`,baseline:`middle`}),o&&V.push({kind:`text`,x:O,y:l+s-7,text:o,font:t.font(c,12),color:e.toCss(c.textMuted),align:`center`,baseline:`middle`})}else a.centerLabel&&G>24&&V.push({kind:`text`,x:O,y:A?k-12:k,text:n.ellipsize(a.centerLabel,G,t.font(c,12),u),font:t.font(c,12),color:e.toCss(c.textMuted),align:`center`,baseline:`middle`});return{nodes:V,items:U,dim:.35,empty:!1}};exports.layoutRadialBar=s,exports.radialBarLabels=o,exports.radialBarMax=i,exports.radialBarValues=a;
2
+ //# sourceMappingURL=radialBar.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radialBar.cjs","names":["uniqueKeys","positive","clamp","finite","sum","emptyLayout","TAU","upright","toCss","mix","font","ellipsize","require_color","require_overlay","require_scene","keysOf","o","d","radialBarMax","largest","shared","radialBarValues","on","hidden","i","out","key","radialBarLabels","layoutRadialBar","c","keys","n","weights","maxes","targets","values","t","sweep","full","start","xs","ys","a","k","minX","maxX","minY","maxY","R","area","cx","cy","openBelow","R0","gap","slot","rounded","enter","showLabels","content","gapAngle","labelAngle","flipped","nodes","texts","items","outer","w","r1","thick","rm","color","css","capA","t0","t1","pad","theme","frac","end","percent","size","labelFont","numbers","text","back","px","py","dx","dy","edge","room","fitted","measure","shown","valueFont","label","blockH","top"],"sources":["../../../../../charts/src/engine/shapes/radialBar.ts"],"sourcesContent":["// Radial bar layout: concentric progress rings (outermost first) on tinted\n// tracks, rounded ends kept inside the sweep, labels in the empty part of the\n// circle before the bars start, center text.\n\nimport { mix, toCss } from \"../color\";\nimport { font } from \"../overlay\";\nimport {\n clamp,\n ellipsize,\n emptyLayout,\n finite,\n positive,\n sum,\n TAU,\n uniqueKeys,\n upright,\n type LayoutContext,\n type LayoutResult,\n type ShapeItem,\n type ShapeNode,\n} from \"./scene\";\nimport type { RadialBarChartOptions } from \"./types\";\n\nconst keysOf = (o: RadialBarChartOptions) =>\n uniqueKeys(o.data.map((d) => d.name));\n\n/** Value of a full bar of every datum */\nexport const radialBarMax = (o: RadialBarChartOptions): number[] => {\n const largest = Math.max(0, ...o.data.map((d) => positive(d.value)));\n const shared = positive(o.max) || largest || 1;\n return o.data.map((d) => positive(d.max) || shared);\n};\n\nexport const radialBarValues = (\n o: RadialBarChartOptions,\n hidden: ReadonlySet<number>,\n out: Map<string, number>,\n) => {\n keysOf(o).forEach((key, i) => {\n const on = !hidden.has(i);\n out.set(key, on ? positive(o.data[i].value) : 0);\n out.set(`~${key}`, on ? 1 : 0);\n });\n};\n\n/** Whether the bars leave room for labels before their start */\nexport const radialBarLabels = (o: RadialBarChartOptions) =>\n o.labels ?? clamp(finite(o.sweep, 270), 30, 360) <= 300;\n\nexport const layoutRadialBar = (\n o: RadialBarChartOptions,\n c: LayoutContext,\n): LayoutResult => {\n const { theme, area, measure, hidden } = c;\n const keys = keysOf(o);\n const n = o.data.length;\n const weights = keys.map((key, i) =>\n clamp(c.value(`~${key}`, hidden.has(i) ? 0 : 1), 0, 1),\n );\n if (!n || sum(weights) <= 1e-6) return emptyLayout(c);\n const maxes = radialBarMax(o);\n const targets = o.data.map((d, i) => (hidden.has(i) ? 0 : positive(d.value)));\n const values = targets.map((t, i) => Math.max(0, c.value(keys[i], t)));\n\n const sweep = (clamp(finite(o.sweep, 270), 30, 360) * Math.PI) / 180;\n const full = sweep >= TAU - 1e-6;\n const start = (finite(o.startAngle) * Math.PI) / 180 - Math.PI / 2;\n // bounding box of the unit rings (partial sweeps need less room)\n const xs = [0];\n const ys = [0];\n for (const a of [start, start + sweep]) {\n xs.push(Math.cos(a));\n ys.push(Math.sin(a));\n }\n for (let k = -8; k <= 8; k++) {\n const a = (k * Math.PI) / 2;\n if (full || (a > start && a < start + sweep)) {\n xs.push(Math.cos(a));\n ys.push(Math.sin(a));\n }\n }\n const minX = Math.min(...xs);\n const maxX = Math.max(...xs);\n const minY = Math.min(...ys);\n // room under the center for its texts when the rings are open there\n const maxY = Math.max(...ys, o.centerValue || o.centerLabel ? 0.12 : 0);\n const R = Math.max(\n 4,\n Math.min(\n (area.width - 4) / Math.max(1e-6, maxX - minX),\n (area.height - 4) / Math.max(1e-6, maxY - minY),\n ),\n );\n const cx = area.x + (area.width - (maxX - minX) * R) / 2 - minX * R;\n const cy = area.y + (area.height - (maxY - minY) * R) / 2 - minY * R;\n /** The rings are open below the center (half circles): texts go above it */\n const openBelow = maxY < 0.5;\n const R0 = R * clamp(finite(o.innerRadius, 0.3), 0, 0.9);\n const gap = clamp(finite(o.gap, 0.28), 0, 0.9);\n const slot = (R - R0) / sum(weights);\n const rounded = o.rounded !== false;\n const enter = clamp(c.enter, 0, 1);\n const showLabels = radialBarLabels(o) && !full;\n const content = [...new Set(o.labelContent ?? [\"name\", \"value\"])];\n const gapAngle = TAU - sweep;\n // labels run back from the start of the bars, along the tangent\n const labelAngle = upright(start + Math.PI / 2);\n const flipped = Math.cos(labelAngle - (start + Math.PI / 2)) < 0;\n\n const nodes: ShapeNode[] = [];\n const texts: ShapeNode[] = [];\n const items: ShapeItem[] = [];\n let outer = R;\n o.data.forEach((d, i) => {\n const w = weights[i];\n const r1 = outer;\n outer -= w * slot;\n if (w <= 1e-3) return;\n const thick = w * slot * (1 - gap);\n const rm = r1 - (w * slot) / 2;\n if (thick < 0.5 || rm <= 0) return;\n const color = c.color(d.color, i);\n const css = toCss(color);\n // round caps reach half the thickness beyond the ends of the arc\n const capA = rounded && !full ? Math.min(sweep / 2, thick / 2 / rm) : 0;\n const t0 = start + capA;\n const t1 = start + sweep - capA;\n const pad = (w * slot * gap) / 2 + 1;\n if (o.track !== false)\n nodes.push({\n kind: \"arc\",\n cx,\n cy,\n r: rm,\n a0: full ? 0 : t0,\n a1: full ? TAU : t1,\n width: thick,\n color: toCss(mix(color, theme.background, 0.86)),\n cap: rounded && !full ? \"round\" : \"butt\",\n hit: i,\n hitPad: pad,\n });\n const frac = clamp(values[i] / maxes[i], 0, 1) * enter;\n if (frac > 1e-4) {\n const end = start + capA + Math.max(0, sweep - 2 * capA) * frac;\n if (rounded && end - (start + capA) < 1e-3)\n nodes.push({\n kind: \"circle\",\n cx: cx + rm * Math.cos(start + capA),\n cy: cy + rm * Math.sin(start + capA),\n r: thick / 2,\n fill: css,\n hit: i,\n });\n else\n nodes.push({\n kind: \"arc\",\n cx,\n cy,\n r: rm,\n a0: rounded ? start + capA : start,\n a1: rounded ? end : start + sweep * frac,\n width: thick,\n color: css,\n cap: rounded ? \"round\" : \"butt\",\n hit: i,\n hitPad: pad,\n });\n }\n\n const percent = maxes[i] > 0 ? targets[i] / maxes[i] : 0;\n if (showLabels && w > 0.99) {\n const size = clamp(Math.round(thick * 0.62), 9, 12);\n if (thick >= 9) {\n const labelFont = font(theme, size, 500);\n const numbers = content\n .filter((k) => k !== \"name\")\n .map((k) =>\n k === \"value\" ? c.format(targets[i]) : c.percent(percent),\n );\n const text = [\n content.includes(\"name\") ? d.name : \"\",\n numbers.join(\" \\u00b7 \"),\n ]\n .filter(Boolean)\n .join(\" \");\n // a little before the start of the bar, on its center line; the\n // text runs backward along the tangent, into the open part\n const back = rounded ? thick / 2 + 6 : 6;\n const px = cx + rm * Math.cos(start) - back * -Math.sin(start);\n const py = cy + rm * Math.sin(start) - back * Math.cos(start);\n const dx = Math.sin(start);\n const dy = -Math.cos(start);\n // distance to the edge of the drawing along that direction\n let edge = Infinity;\n if (dx > 1e-6) edge = Math.min(edge, (area.x + area.width - px) / dx);\n if (dx < -1e-6) edge = Math.min(edge, (area.x - px) / dx);\n if (dy > 1e-6) edge = Math.min(edge, (area.y + area.height - py) / dy);\n if (dy < -1e-6) edge = Math.min(edge, (area.y - py) / dy);\n const room = Math.min(\n edge - 2,\n gapAngle >= Math.PI / 2 - 1e-6\n ? Infinity\n : rm * Math.tan(gapAngle) - back - 4,\n );\n const fitted = ellipsize(text, room, labelFont, measure);\n if (fitted) {\n texts.push({\n kind: \"text\",\n x: px,\n y: py,\n text: fitted,\n font: labelFont,\n color: toCss(theme.text, 0.86),\n align: flipped ? \"left\" : \"right\",\n baseline: \"middle\",\n rotate: labelAngle,\n hit: i,\n });\n }\n }\n }\n\n const shown = Math.max(0, Math.min(frac, 1));\n const a = start + capA + Math.max(0, sweep - 2 * capA) * shown;\n if (targets[i] > 0 || !hidden.has(i))\n items.push({\n index: i,\n name: d.name,\n value: targets[i],\n percent,\n share: c.percent(percent),\n color: css,\n x: cx + rm * Math.cos(a),\n y: cy + rm * Math.sin(a),\n rows: [\n { name: c.labels.value, value: c.format(targets[i]) },\n { name: c.labels.max, value: c.format(maxes[i]) },\n { name: c.labels.progress, value: c.percent(percent) },\n ],\n });\n });\n nodes.push(...texts);\n\n // center text\n const room = R0 * 1.9 - 8;\n if (o.centerValue && room > 24) {\n const size = clamp(R0 * 0.36, 14, 32);\n const valueFont = font(theme, size, 600);\n const label = o.centerLabel\n ? ellipsize(o.centerLabel, room, font(theme, 12), measure)\n : \"\";\n const blockH = size + (label ? 18 : 0);\n const top = openBelow ? cy - blockH - 2 : cy - blockH / 2;\n nodes.push({\n kind: \"text\",\n x: cx,\n y: top + size / 2,\n text: ellipsize(o.centerValue, room, valueFont, measure),\n font: valueFont,\n color: toCss(theme.text),\n align: \"center\",\n baseline: \"middle\",\n });\n if (label)\n nodes.push({\n kind: \"text\",\n x: cx,\n y: top + blockH - 7,\n text: label,\n font: font(theme, 12),\n color: toCss(theme.textMuted),\n align: \"center\",\n baseline: \"middle\",\n });\n } else if (o.centerLabel && room > 24) {\n nodes.push({\n kind: \"text\",\n x: cx,\n y: openBelow ? cy - 12 : cy,\n text: ellipsize(o.centerLabel, room, font(theme, 12), measure),\n font: font(theme, 12),\n color: toCss(theme.textMuted),\n align: \"center\",\n baseline: \"middle\",\n });\n }\n\n return { nodes, items, dim: 0.35, empty: false };\n};\n"],"mappings":"qFAuBA,IAAMe,EAAU,GACdf,EAAAA,WAAWgB,EAAE,KAAK,IAAK,GAAMC,EAAE,IAAI,CAAC,EAGzBC,EAAgB,GAAuC,CAClE,IAAMC,EAAU,KAAK,IAAI,EAAG,GAAGH,EAAE,KAAK,IAAK,GAAMf,EAAAA,SAASgB,EAAE,KAAK,CAAC,CAAC,EAC7DG,EAASnB,EAAAA,SAASe,EAAE,GAAG,GAAKG,GAAW,EAC7C,OAAOH,EAAE,KAAK,IAAK,GAAMf,EAAAA,SAASgB,EAAE,GAAG,GAAKG,CAAM,CACpD,EAEaC,GACX,EACA,EACA,IACG,CACHN,EAAOC,CAAC,CAAC,CAAC,SAAS,EAAK,IAAM,CAC5B,IAAMM,EAAK,CAACC,EAAO,IAAIC,CAAC,EACxBC,EAAI,IAAIC,EAAKJ,EAAKrB,EAAAA,SAASe,EAAE,KAAKQ,EAAE,CAAC,KAAK,EAAI,CAAC,EAC/CC,EAAI,IAAI,IAAIC,IAAO,IAAU,CAC/B,CAAC,CACH,EAGaC,EAAmB,GAC9BX,EAAE,QAAUd,EAAAA,MAAMC,EAAAA,OAAOa,EAAE,MAAO,GAAG,EAAG,GAAI,GAAG,GAAK,IAEzCY,GACX,EACA,IACiB,CACjB,GAAM,CAAE,QAAO,OAAM,UAAS,UAAWC,EACnCC,EAAOf,EAAOC,CAAC,EACfe,EAAIf,EAAE,KAAK,OACXgB,EAAUF,EAAK,KAAK,EAAK,IAC7B5B,EAAAA,MAAM2B,EAAE,MAAM,IAAIH,IAAO,IAAO,IAAIF,CAAC,CAAS,EAAG,EAAG,CAAC,CACvD,EACA,GAAI,CAACO,GAAK3B,EAAAA,IAAI4B,CAAO,GAAK,KAAM,OAAO3B,EAAAA,YAAYwB,CAAC,EACpD,IAAMI,EAAQf,EAAaF,CAAC,EACtBkB,EAAUlB,EAAE,KAAK,KAAK,EAAG,IAAOO,EAAO,IAAIC,CAAC,EAAI,EAAIvB,EAAAA,SAASgB,EAAE,KAAK,CAAE,EACtEkB,EAASD,EAAQ,KAAK,EAAG,IAAM,KAAK,IAAI,EAAGL,EAAE,MAAMC,EAAKN,GAAIY,CAAC,CAAC,CAAC,EAE/DC,EAASnC,EAAAA,MAAMC,EAAAA,OAAOa,EAAE,MAAO,GAAG,EAAG,GAAI,GAAG,EAAI,KAAK,GAAM,IAC3DsB,EAAOD,GAAS/B,EAAAA,IAAM,KACtBiC,EAASpC,EAAAA,OAAOa,EAAE,UAAU,EAAI,KAAK,GAAM,IAAM,KAAK,GAAK,EAE3DwB,EAAK,CAAC,CAAC,EACPC,EAAK,CAAC,CAAC,EACb,IAAK,IAAMC,IAAK,CAACH,EAAOA,EAAQF,CAAK,EACnCG,EAAG,KAAK,KAAK,IAAIE,CAAC,CAAC,EACnBD,EAAG,KAAK,KAAK,IAAIC,CAAC,CAAC,EAErB,IAAK,IAAIC,EAAI,GAAIA,GAAK,EAAG,IAAK,CAC5B,IAAMD,EAAKC,EAAI,KAAK,GAAM,GACtBL,GAASI,EAAIH,GAASG,EAAIH,EAAQF,KACpCG,EAAG,KAAK,KAAK,IAAIE,CAAC,CAAC,EACnBD,EAAG,KAAK,KAAK,IAAIC,CAAC,CAAC,EAEvB,CACA,IAAME,EAAO,KAAK,IAAI,GAAGJ,CAAE,EACrBK,EAAO,KAAK,IAAI,GAAGL,CAAE,EACrBM,EAAO,KAAK,IAAI,GAAGL,CAAE,EAErBM,EAAO,KAAK,IAAI,GAAGN,EAAIzB,EAAE,aAAeA,EAAE,YAAc,IAAO,CAAC,EAChEgC,EAAI,KAAK,IACb,EACA,KAAK,KACFC,EAAK,MAAQ,GAAK,KAAK,IAAI,KAAMJ,EAAOD,CAAI,GAC5CK,EAAK,OAAS,GAAK,KAAK,IAAI,KAAMF,EAAOD,CAAI,CAChD,CACF,EACMI,EAAKD,EAAK,GAAKA,EAAK,OAASJ,EAAOD,GAAQI,GAAK,EAAIJ,EAAOI,EAC5DG,EAAKF,EAAK,GAAKA,EAAK,QAAUF,EAAOD,GAAQE,GAAK,EAAIF,EAAOE,EAE7DI,EAAYL,EAAO,GACnBM,EAAKL,EAAI9C,EAAAA,MAAMC,EAAAA,OAAOa,EAAE,YAAa,EAAG,EAAG,EAAG,EAAG,EACjDsC,EAAMpD,EAAAA,MAAMC,EAAAA,OAAOa,EAAE,IAAK,GAAI,EAAG,EAAG,EAAG,EACvCuC,GAAQP,EAAIK,GAAMjD,EAAAA,IAAI4B,CAAO,EAC7BwB,EAAUxC,EAAE,UAAY,GACxByC,EAAQvD,EAAAA,MAAM2B,EAAE,MAAO,EAAG,CAAC,EAC3B6B,EAAa/B,EAAgBX,CAAC,GAAK,CAACsB,EACpCqB,EAAU,CAAC,GAAG,IAAI,IAAI3C,EAAE,cAAgB,CAAC,OAAQ,OAAO,CAAC,CAAC,EAC1D4C,EAAWtD,EAAAA,IAAM+B,EAEjBwB,EAAatD,EAAAA,QAAQgC,EAAQ,KAAK,GAAK,CAAC,EACxCuB,EAAU,KAAK,IAAID,GAActB,EAAQ,KAAK,GAAK,EAAE,EAAI,EAEzDwB,EAAqB,CAAC,EACtBC,EAAqB,CAAC,EACtBC,EAAqB,CAAC,EACxBC,EAAQlB,EACZhC,EAAE,KAAK,SAAS,EAAG,IAAM,CACvB,IAAMmD,EAAInC,EAAQ,GACZoC,EAAKF,EAEX,GADA,GAASC,EAAIZ,EACTY,GAAK,KAAM,OACf,IAAME,EAAQF,EAAIZ,GAAQ,EAAID,GACxBgB,EAAKF,EAAMD,EAAIZ,EAAQ,EAC7B,GAAIc,EAAQ,IAAOC,GAAM,EAAG,OAC5B,IAAMC,EAAQ1C,EAAE,MAAMZ,EAAE,MAAO,CAAC,EAC1BuD,EAAMhE,EAAAA,MAAM+D,CAAK,EAEjBE,EAAOjB,GAAW,CAAClB,EAAO,KAAK,IAAID,EAAQ,EAAGgC,EAAQ,EAAIC,CAAE,EAAI,EAChEI,EAAKnC,EAAQkC,EACbE,EAAKpC,EAAQF,EAAQoC,EACrBG,EAAOT,EAAIZ,EAAOD,EAAO,EAAI,EAC/BtC,EAAE,QAAU,IACd+C,EAAM,KAAK,CACT,KAAM,MACN,KACA,KACA,EAAGO,EACH,GAAIhC,EAAO,EAAIoC,EACf,GAAIpC,EAAOhC,EAAAA,IAAMqE,EACjB,MAAON,EACP,MAAO7D,EAAAA,MAAMC,EAAAA,IAAI8D,EAAOM,EAAM,WAAY,GAAI,CAAC,EAC/C,IAAKrB,GAAW,CAAClB,EAAO,QAAU,OAClC,IAAK,EACL,OAAQsC,CACV,CAAC,EACH,IAAME,EAAO5E,EAAAA,MAAMiC,EAAO,GAAKF,EAAM,GAAI,EAAG,CAAC,EAAIwB,EACjD,GAAIqB,EAAO,KAAM,CACf,IAAMC,EAAMxC,EAAQkC,EAAO,KAAK,IAAI,EAAGpC,EAAQ,EAAIoC,CAAI,EAAIK,EACvDtB,GAAWuB,GAAOxC,EAAQkC,GAAQ,KACpCV,EAAM,KAAK,CACT,KAAM,SACN,GAAIb,EAAKoB,EAAK,KAAK,IAAI/B,EAAQkC,CAAI,EACnC,GAAItB,EAAKmB,EAAK,KAAK,IAAI/B,EAAQkC,CAAI,EACnC,EAAGJ,EAAQ,EACX,KAAMG,EACN,IAAK,CACP,CAAC,EAEDT,EAAM,KAAK,CACT,KAAM,MACN,KACA,KACA,EAAGO,EACH,GAAId,EAAUjB,EAAQkC,EAAOlC,EAC7B,GAAIiB,EAAUuB,EAAMxC,EAAQF,EAAQyC,EACpC,MAAOT,EACP,MAAOG,EACP,IAAKhB,EAAU,QAAU,OACzB,IAAK,EACL,OAAQoB,CACV,CAAC,CACL,CAEA,IAAMI,EAAU/C,EAAM,GAAK,EAAIC,EAAQ,GAAKD,EAAM,GAAK,EACvD,GAAIyB,GAAcS,EAAI,IAAM,CAC1B,IAAMc,EAAO/E,EAAAA,MAAM,KAAK,MAAMmE,EAAQ,GAAI,EAAG,EAAG,EAAE,EAClD,GAAIA,GAAS,EAAG,CACd,IAAMa,EAAYxE,EAAAA,KAAKmE,EAAOI,EAAM,GAAG,EACjCE,EAAUxB,EACb,OAAQ,GAAMhB,IAAM,MAAM,CAAC,CAC3B,IAAK,GACJA,IAAM,QAAUd,EAAE,OAAOK,EAAQ,EAAE,EAAIL,EAAE,QAAQmD,CAAO,CAC1D,EACII,EAAO,CACXzB,EAAQ,SAAS,MAAM,EAAI1C,EAAE,KAAO,GACpCkE,EAAQ,KAAK,KAAU,CACzB,CAAC,CACE,OAAO,OAAO,CAAC,CACf,KAAK,IAAI,EAGNE,EAAO7B,EAAUa,EAAQ,EAAI,EAAI,EACjCiB,EAAKpC,EAAKoB,EAAK,KAAK,IAAI/B,CAAK,EAAI8C,EAAO,CAAC,KAAK,IAAI9C,CAAK,EACvDgD,EAAKpC,EAAKmB,EAAK,KAAK,IAAI/B,CAAK,EAAI8C,EAAO,KAAK,IAAI9C,CAAK,EACtDiD,EAAK,KAAK,IAAIjD,CAAK,EACnBkD,EAAK,CAAC,KAAK,IAAIlD,CAAK,EAEtBmD,EAAO,IACPF,EAAK,OAAM,EAAO,KAAK,IAAIE,GAAOzC,EAAK,EAAIA,EAAK,MAAQqC,GAAME,CAAE,GAChEA,EAAK,QAAO,EAAO,KAAK,IAAIE,GAAOzC,EAAK,EAAIqC,GAAME,CAAE,GACpDC,EAAK,OAAM,EAAO,KAAK,IAAIC,GAAOzC,EAAK,EAAIA,EAAK,OAASsC,GAAME,CAAE,GACjEA,EAAK,QAAO,EAAO,KAAK,IAAIC,GAAOzC,EAAK,EAAIsC,GAAME,CAAE,GACxD,IAAME,EAAO,KAAK,IAChBD,EAAO,EACP9B,GAAY,KAAK,GAAK,EAAI,KACtB,IACAU,EAAK,KAAK,IAAIV,CAAQ,EAAIyB,EAAO,CACvC,EACMO,EAASjF,EAAAA,UAAUyE,EAAMO,EAAMT,EAAWW,CAAO,EACnDD,GACF5B,EAAM,KAAK,CACT,KAAM,OACN,EAAGsB,EACH,EAAGC,EACH,KAAMK,EACN,KAAMV,EACN,MAAO1E,EAAAA,MAAMqE,EAAM,KAAM,GAAI,EAC7B,MAAOf,EAAU,OAAS,QAC1B,SAAU,SACV,OAAQD,EACR,IAAK,CACP,CAAC,CAEL,CACF,CAEA,IAAMiC,EAAQ,KAAK,IAAI,EAAG,KAAK,IAAIhB,EAAM,CAAC,CAAC,EACrCpC,EAAIH,EAAQkC,EAAO,KAAK,IAAI,EAAGpC,EAAQ,EAAIoC,CAAI,EAAIqB,GACrD5D,EAAQ,GAAK,GAAK,CAACX,EAAO,IAAI,CAAC,IACjC0C,EAAM,KAAK,CACT,MAAO,EACP,KAAMhD,EAAE,KACR,MAAOiB,EAAQ,GACf,UACA,MAAOL,EAAE,QAAQmD,CAAO,EACxB,MAAOR,EACP,EAAGtB,EAAKoB,EAAK,KAAK,IAAI5B,CAAC,EACvB,EAAGS,EAAKmB,EAAK,KAAK,IAAI5B,CAAC,EACvB,KAAM,CACJ,CAAE,KAAMb,EAAE,OAAO,MAAO,MAAOA,EAAE,OAAOK,EAAQ,EAAE,CAAE,EACpD,CAAE,KAAML,EAAE,OAAO,IAAK,MAAOA,EAAE,OAAOI,EAAM,EAAE,CAAE,EAChD,CAAE,KAAMJ,EAAE,OAAO,SAAU,MAAOA,EAAE,QAAQmD,CAAO,CAAE,CACvD,CACF,CAAC,CACL,CAAC,EACDjB,EAAM,KAAK,GAAGC,CAAK,EAGnB,IAAM2B,EAAOtC,EAAK,IAAM,EACxB,GAAIrC,EAAE,aAAe2E,EAAO,GAAI,CAC9B,IAAMV,EAAO/E,EAAAA,MAAMmD,EAAK,IAAM,GAAI,EAAE,EAC9B0C,EAAYrF,EAAAA,KAAKmE,EAAOI,EAAM,GAAG,EACjCe,EAAQhF,EAAE,YACZL,EAAAA,UAAUK,EAAE,YAAa2E,EAAMjF,EAAAA,KAAKmE,EAAO,EAAE,EAAGgB,CAAO,EACvD,GACEI,EAAShB,GAAQe,EAAQ,GAAK,GAC9BE,EAAM9C,EAAYD,EAAK8C,EAAS,EAAI9C,EAAK8C,EAAS,EACxDlC,EAAM,KAAK,CACT,KAAM,OACN,EAAGb,EACH,EAAGgD,EAAMjB,EAAO,EAChB,KAAMtE,EAAAA,UAAUK,EAAE,YAAa2E,EAAMI,EAAWF,CAAO,EACvD,KAAME,EACN,MAAOvF,EAAAA,MAAMqE,EAAM,IAAI,EACvB,MAAO,SACP,SAAU,QACZ,CAAC,EACGmB,GACFjC,EAAM,KAAK,CACT,KAAM,OACN,EAAGb,EACH,EAAGgD,EAAMD,EAAS,EAClB,KAAMD,EACN,KAAMtF,EAAAA,KAAKmE,EAAO,EAAE,EACpB,MAAOrE,EAAAA,MAAMqE,EAAM,SAAS,EAC5B,MAAO,SACP,SAAU,QACZ,CAAC,CACL,MAAW7D,EAAE,aAAe2E,EAAO,IACjC5B,EAAM,KAAK,CACT,KAAM,OACN,EAAGb,EACH,EAAGE,EAAYD,EAAK,GAAKA,EACzB,KAAMxC,EAAAA,UAAUK,EAAE,YAAa2E,EAAMjF,EAAAA,KAAKmE,EAAO,EAAE,EAAGgB,CAAO,EAC7D,KAAMnF,EAAAA,KAAKmE,EAAO,EAAE,EACpB,MAAOrE,EAAAA,MAAMqE,EAAM,SAAS,EAC5B,MAAO,SACP,SAAU,QACZ,CAAC,EAGH,MAAO,CAAE,QAAO,QAAO,IAAK,IAAM,MAAO,EAAM,CACjD"}
@@ -0,0 +1,8 @@
1
+ import { LayoutContext, LayoutResult } from './scene.cjs';
2
+ import { RadialBarChartOptions } from './types.cjs';
3
+ /** Value of a full bar of every datum */
4
+ export declare const radialBarMax: (o: RadialBarChartOptions) => number[];
5
+ export declare const radialBarValues: (o: RadialBarChartOptions, hidden: ReadonlySet<number>, out: Map<string, number>) => void;
6
+ /** Whether the bars leave room for labels before their start */
7
+ export declare const radialBarLabels: (o: RadialBarChartOptions) => boolean;
8
+ export declare const layoutRadialBar: (o: RadialBarChartOptions, c: LayoutContext) => LayoutResult;
@@ -0,0 +1,8 @@
1
+ import { LayoutContext, LayoutResult } from './scene.js';
2
+ import { RadialBarChartOptions } from './types.js';
3
+ /** Value of a full bar of every datum */
4
+ export declare const radialBarMax: (o: RadialBarChartOptions) => number[];
5
+ export declare const radialBarValues: (o: RadialBarChartOptions, hidden: ReadonlySet<number>, out: Map<string, number>) => void;
6
+ /** Whether the bars leave room for labels before their start */
7
+ export declare const radialBarLabels: (o: RadialBarChartOptions) => boolean;
8
+ export declare const layoutRadialBar: (o: RadialBarChartOptions, c: LayoutContext) => LayoutResult;
@@ -0,0 +1,155 @@
1
+ import { mix as e, toCss as t } from "../color.js";
2
+ import { font as n } from "../overlay.js";
3
+ import { TAU as r, clamp as i, ellipsize as a, emptyLayout as o, finite as s, positive as c, sum as l, uniqueKeys as u, upright as d } from "./scene.js";
4
+ //#region src/engine/shapes/radialBar.ts
5
+ var f = (e) => u(e.data.map((e) => e.name)), p = (e) => {
6
+ let t = Math.max(0, ...e.data.map((e) => c(e.value))), n = c(e.max) || t || 1;
7
+ return e.data.map((e) => c(e.max) || n);
8
+ }, m = (e, t, n) => {
9
+ f(e).forEach((r, i) => {
10
+ let a = !t.has(i);
11
+ n.set(r, a ? c(e.data[i].value) : 0), n.set(`~${r}`, +!!a);
12
+ });
13
+ }, h = (e) => e.labels ?? i(s(e.sweep, 270), 30, 360) <= 300, g = (u, m) => {
14
+ let { theme: g, area: _, measure: v, hidden: y } = m, b = f(u), x = u.data.length, S = b.map((e, t) => i(m.value(`~${e}`, +!y.has(t)), 0, 1));
15
+ if (!x || l(S) <= 1e-6) return o(m);
16
+ let C = p(u), w = u.data.map((e, t) => y.has(t) ? 0 : c(e.value)), T = w.map((e, t) => Math.max(0, m.value(b[t], e))), E = i(s(u.sweep, 270), 30, 360) * Math.PI / 180, D = E >= r - 1e-6, O = s(u.startAngle) * Math.PI / 180 - Math.PI / 2, k = [0], A = [0];
17
+ for (let e of [O, O + E]) k.push(Math.cos(e)), A.push(Math.sin(e));
18
+ for (let e = -8; e <= 8; e++) {
19
+ let t = e * Math.PI / 2;
20
+ (D || t > O && t < O + E) && (k.push(Math.cos(t)), A.push(Math.sin(t)));
21
+ }
22
+ let j = Math.min(...k), M = Math.max(...k), N = Math.min(...A), P = Math.max(...A, u.centerValue || u.centerLabel ? .12 : 0), F = Math.max(4, Math.min((_.width - 4) / Math.max(1e-6, M - j), (_.height - 4) / Math.max(1e-6, P - N))), I = _.x + (_.width - (M - j) * F) / 2 - j * F, L = _.y + (_.height - (P - N) * F) / 2 - N * F, R = P < .5, z = F * i(s(u.innerRadius, .3), 0, .9), B = i(s(u.gap, .28), 0, .9), V = (F - z) / l(S), H = u.rounded !== !1, U = i(m.enter, 0, 1), W = h(u) && !D, G = [...new Set(u.labelContent ?? ["name", "value"])], K = r - E, q = d(O + Math.PI / 2), J = Math.cos(q - (O + Math.PI / 2)) < 0, Y = [], X = [], Z = [], Q = F;
23
+ u.data.forEach((o, s) => {
24
+ let c = S[s], l = Q;
25
+ if (Q -= c * V, c <= .001) return;
26
+ let d = c * V * (1 - B), f = l - c * V / 2;
27
+ if (d < .5 || f <= 0) return;
28
+ let p = m.color(o.color, s), h = t(p), b = H && !D ? Math.min(E / 2, d / 2 / f) : 0, x = O + b, k = O + E - b, A = c * V * B / 2 + 1;
29
+ u.track !== !1 && Y.push({
30
+ kind: "arc",
31
+ cx: I,
32
+ cy: L,
33
+ r: f,
34
+ a0: D ? 0 : x,
35
+ a1: D ? r : k,
36
+ width: d,
37
+ color: t(e(p, g.background, .86)),
38
+ cap: H && !D ? "round" : "butt",
39
+ hit: s,
40
+ hitPad: A
41
+ });
42
+ let j = i(T[s] / C[s], 0, 1) * U;
43
+ if (j > 1e-4) {
44
+ let e = O + b + Math.max(0, E - 2 * b) * j;
45
+ H && e - (O + b) < .001 ? Y.push({
46
+ kind: "circle",
47
+ cx: I + f * Math.cos(O + b),
48
+ cy: L + f * Math.sin(O + b),
49
+ r: d / 2,
50
+ fill: h,
51
+ hit: s
52
+ }) : Y.push({
53
+ kind: "arc",
54
+ cx: I,
55
+ cy: L,
56
+ r: f,
57
+ a0: H ? O + b : O,
58
+ a1: H ? e : O + E * j,
59
+ width: d,
60
+ color: h,
61
+ cap: H ? "round" : "butt",
62
+ hit: s,
63
+ hitPad: A
64
+ });
65
+ }
66
+ let M = C[s] > 0 ? w[s] / C[s] : 0;
67
+ if (W && c > .99) {
68
+ let e = i(Math.round(d * .62), 9, 12);
69
+ if (d >= 9) {
70
+ let r = n(g, e, 500), i = G.filter((e) => e !== "name").map((e) => e === "value" ? m.format(w[s]) : m.percent(M)), c = [G.includes("name") ? o.name : "", i.join(" · ")].filter(Boolean).join(" "), l = H ? d / 2 + 6 : 6, u = I + f * Math.cos(O) - l * -Math.sin(O), p = L + f * Math.sin(O) - l * Math.cos(O), h = Math.sin(O), y = -Math.cos(O), b = Infinity;
71
+ h > 1e-6 && (b = Math.min(b, (_.x + _.width - u) / h)), h < -1e-6 && (b = Math.min(b, (_.x - u) / h)), y > 1e-6 && (b = Math.min(b, (_.y + _.height - p) / y)), y < -1e-6 && (b = Math.min(b, (_.y - p) / y));
72
+ let x = Math.min(b - 2, K >= Math.PI / 2 - 1e-6 ? Infinity : f * Math.tan(K) - l - 4), S = a(c, x, r, v);
73
+ S && X.push({
74
+ kind: "text",
75
+ x: u,
76
+ y: p,
77
+ text: S,
78
+ font: r,
79
+ color: t(g.text, .86),
80
+ align: J ? "left" : "right",
81
+ baseline: "middle",
82
+ rotate: q,
83
+ hit: s
84
+ });
85
+ }
86
+ }
87
+ let N = Math.max(0, Math.min(j, 1)), P = O + b + Math.max(0, E - 2 * b) * N;
88
+ (w[s] > 0 || !y.has(s)) && Z.push({
89
+ index: s,
90
+ name: o.name,
91
+ value: w[s],
92
+ percent: M,
93
+ share: m.percent(M),
94
+ color: h,
95
+ x: I + f * Math.cos(P),
96
+ y: L + f * Math.sin(P),
97
+ rows: [
98
+ {
99
+ name: m.labels.value,
100
+ value: m.format(w[s])
101
+ },
102
+ {
103
+ name: m.labels.max,
104
+ value: m.format(C[s])
105
+ },
106
+ {
107
+ name: m.labels.progress,
108
+ value: m.percent(M)
109
+ }
110
+ ]
111
+ });
112
+ }), Y.push(...X);
113
+ let $ = z * 1.9 - 8;
114
+ if (u.centerValue && $ > 24) {
115
+ let e = i(z * .36, 14, 32), r = n(g, e, 600), o = u.centerLabel ? a(u.centerLabel, $, n(g, 12), v) : "", s = e + (o ? 18 : 0), c = R ? L - s - 2 : L - s / 2;
116
+ Y.push({
117
+ kind: "text",
118
+ x: I,
119
+ y: c + e / 2,
120
+ text: a(u.centerValue, $, r, v),
121
+ font: r,
122
+ color: t(g.text),
123
+ align: "center",
124
+ baseline: "middle"
125
+ }), o && Y.push({
126
+ kind: "text",
127
+ x: I,
128
+ y: c + s - 7,
129
+ text: o,
130
+ font: n(g, 12),
131
+ color: t(g.textMuted),
132
+ align: "center",
133
+ baseline: "middle"
134
+ });
135
+ } else u.centerLabel && $ > 24 && Y.push({
136
+ kind: "text",
137
+ x: I,
138
+ y: R ? L - 12 : L,
139
+ text: a(u.centerLabel, $, n(g, 12), v),
140
+ font: n(g, 12),
141
+ color: t(g.textMuted),
142
+ align: "center",
143
+ baseline: "middle"
144
+ });
145
+ return {
146
+ nodes: Y,
147
+ items: Z,
148
+ dim: .35,
149
+ empty: !1
150
+ };
151
+ };
152
+ //#endregion
153
+ export { g as layoutRadialBar, h as radialBarLabels, p as radialBarMax, m as radialBarValues };
154
+
155
+ //# sourceMappingURL=radialBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radialBar.js","names":["keysOf","uniqueKeys","o","d","radialBarMax","largest","positive","shared","radialBarValues","on","hidden","out","key","radialBarLabels","clamp","finite","layoutRadialBar","c","keys","n","weights","i","sum","emptyLayout","maxes","targets","values","t","sweep","full","TAU","start","xs","ys","a","k","minX","maxX","minY","maxY","R","area","cx","cy","openBelow","R0","gap","slot","rounded","enter","showLabels","content","gapAngle","labelAngle","upright","flipped","nodes","texts","items","outer","w","r1","thick","rm","color","css","toCss","capA","t0","t1","pad","mix","theme","frac","end","percent","size","labelFont","font","numbers","text","back","px","py","dx","dy","edge","room","fitted","ellipsize","measure","shown","valueFont","label","blockH","top"],"sources":["../../../../../charts/src/engine/shapes/radialBar.ts"],"sourcesContent":["// Radial bar layout: concentric progress rings (outermost first) on tinted\n// tracks, rounded ends kept inside the sweep, labels in the empty part of the\n// circle before the bars start, center text.\n\nimport { mix, toCss } from \"../color\";\nimport { font } from \"../overlay\";\nimport {\n clamp,\n ellipsize,\n emptyLayout,\n finite,\n positive,\n sum,\n TAU,\n uniqueKeys,\n upright,\n type LayoutContext,\n type LayoutResult,\n type ShapeItem,\n type ShapeNode,\n} from \"./scene\";\nimport type { RadialBarChartOptions } from \"./types\";\n\nconst keysOf = (o: RadialBarChartOptions) =>\n uniqueKeys(o.data.map((d) => d.name));\n\n/** Value of a full bar of every datum */\nexport const radialBarMax = (o: RadialBarChartOptions): number[] => {\n const largest = Math.max(0, ...o.data.map((d) => positive(d.value)));\n const shared = positive(o.max) || largest || 1;\n return o.data.map((d) => positive(d.max) || shared);\n};\n\nexport const radialBarValues = (\n o: RadialBarChartOptions,\n hidden: ReadonlySet<number>,\n out: Map<string, number>,\n) => {\n keysOf(o).forEach((key, i) => {\n const on = !hidden.has(i);\n out.set(key, on ? positive(o.data[i].value) : 0);\n out.set(`~${key}`, on ? 1 : 0);\n });\n};\n\n/** Whether the bars leave room for labels before their start */\nexport const radialBarLabels = (o: RadialBarChartOptions) =>\n o.labels ?? clamp(finite(o.sweep, 270), 30, 360) <= 300;\n\nexport const layoutRadialBar = (\n o: RadialBarChartOptions,\n c: LayoutContext,\n): LayoutResult => {\n const { theme, area, measure, hidden } = c;\n const keys = keysOf(o);\n const n = o.data.length;\n const weights = keys.map((key, i) =>\n clamp(c.value(`~${key}`, hidden.has(i) ? 0 : 1), 0, 1),\n );\n if (!n || sum(weights) <= 1e-6) return emptyLayout(c);\n const maxes = radialBarMax(o);\n const targets = o.data.map((d, i) => (hidden.has(i) ? 0 : positive(d.value)));\n const values = targets.map((t, i) => Math.max(0, c.value(keys[i], t)));\n\n const sweep = (clamp(finite(o.sweep, 270), 30, 360) * Math.PI) / 180;\n const full = sweep >= TAU - 1e-6;\n const start = (finite(o.startAngle) * Math.PI) / 180 - Math.PI / 2;\n // bounding box of the unit rings (partial sweeps need less room)\n const xs = [0];\n const ys = [0];\n for (const a of [start, start + sweep]) {\n xs.push(Math.cos(a));\n ys.push(Math.sin(a));\n }\n for (let k = -8; k <= 8; k++) {\n const a = (k * Math.PI) / 2;\n if (full || (a > start && a < start + sweep)) {\n xs.push(Math.cos(a));\n ys.push(Math.sin(a));\n }\n }\n const minX = Math.min(...xs);\n const maxX = Math.max(...xs);\n const minY = Math.min(...ys);\n // room under the center for its texts when the rings are open there\n const maxY = Math.max(...ys, o.centerValue || o.centerLabel ? 0.12 : 0);\n const R = Math.max(\n 4,\n Math.min(\n (area.width - 4) / Math.max(1e-6, maxX - minX),\n (area.height - 4) / Math.max(1e-6, maxY - minY),\n ),\n );\n const cx = area.x + (area.width - (maxX - minX) * R) / 2 - minX * R;\n const cy = area.y + (area.height - (maxY - minY) * R) / 2 - minY * R;\n /** The rings are open below the center (half circles): texts go above it */\n const openBelow = maxY < 0.5;\n const R0 = R * clamp(finite(o.innerRadius, 0.3), 0, 0.9);\n const gap = clamp(finite(o.gap, 0.28), 0, 0.9);\n const slot = (R - R0) / sum(weights);\n const rounded = o.rounded !== false;\n const enter = clamp(c.enter, 0, 1);\n const showLabels = radialBarLabels(o) && !full;\n const content = [...new Set(o.labelContent ?? [\"name\", \"value\"])];\n const gapAngle = TAU - sweep;\n // labels run back from the start of the bars, along the tangent\n const labelAngle = upright(start + Math.PI / 2);\n const flipped = Math.cos(labelAngle - (start + Math.PI / 2)) < 0;\n\n const nodes: ShapeNode[] = [];\n const texts: ShapeNode[] = [];\n const items: ShapeItem[] = [];\n let outer = R;\n o.data.forEach((d, i) => {\n const w = weights[i];\n const r1 = outer;\n outer -= w * slot;\n if (w <= 1e-3) return;\n const thick = w * slot * (1 - gap);\n const rm = r1 - (w * slot) / 2;\n if (thick < 0.5 || rm <= 0) return;\n const color = c.color(d.color, i);\n const css = toCss(color);\n // round caps reach half the thickness beyond the ends of the arc\n const capA = rounded && !full ? Math.min(sweep / 2, thick / 2 / rm) : 0;\n const t0 = start + capA;\n const t1 = start + sweep - capA;\n const pad = (w * slot * gap) / 2 + 1;\n if (o.track !== false)\n nodes.push({\n kind: \"arc\",\n cx,\n cy,\n r: rm,\n a0: full ? 0 : t0,\n a1: full ? TAU : t1,\n width: thick,\n color: toCss(mix(color, theme.background, 0.86)),\n cap: rounded && !full ? \"round\" : \"butt\",\n hit: i,\n hitPad: pad,\n });\n const frac = clamp(values[i] / maxes[i], 0, 1) * enter;\n if (frac > 1e-4) {\n const end = start + capA + Math.max(0, sweep - 2 * capA) * frac;\n if (rounded && end - (start + capA) < 1e-3)\n nodes.push({\n kind: \"circle\",\n cx: cx + rm * Math.cos(start + capA),\n cy: cy + rm * Math.sin(start + capA),\n r: thick / 2,\n fill: css,\n hit: i,\n });\n else\n nodes.push({\n kind: \"arc\",\n cx,\n cy,\n r: rm,\n a0: rounded ? start + capA : start,\n a1: rounded ? end : start + sweep * frac,\n width: thick,\n color: css,\n cap: rounded ? \"round\" : \"butt\",\n hit: i,\n hitPad: pad,\n });\n }\n\n const percent = maxes[i] > 0 ? targets[i] / maxes[i] : 0;\n if (showLabels && w > 0.99) {\n const size = clamp(Math.round(thick * 0.62), 9, 12);\n if (thick >= 9) {\n const labelFont = font(theme, size, 500);\n const numbers = content\n .filter((k) => k !== \"name\")\n .map((k) =>\n k === \"value\" ? c.format(targets[i]) : c.percent(percent),\n );\n const text = [\n content.includes(\"name\") ? d.name : \"\",\n numbers.join(\" \\u00b7 \"),\n ]\n .filter(Boolean)\n .join(\" \");\n // a little before the start of the bar, on its center line; the\n // text runs backward along the tangent, into the open part\n const back = rounded ? thick / 2 + 6 : 6;\n const px = cx + rm * Math.cos(start) - back * -Math.sin(start);\n const py = cy + rm * Math.sin(start) - back * Math.cos(start);\n const dx = Math.sin(start);\n const dy = -Math.cos(start);\n // distance to the edge of the drawing along that direction\n let edge = Infinity;\n if (dx > 1e-6) edge = Math.min(edge, (area.x + area.width - px) / dx);\n if (dx < -1e-6) edge = Math.min(edge, (area.x - px) / dx);\n if (dy > 1e-6) edge = Math.min(edge, (area.y + area.height - py) / dy);\n if (dy < -1e-6) edge = Math.min(edge, (area.y - py) / dy);\n const room = Math.min(\n edge - 2,\n gapAngle >= Math.PI / 2 - 1e-6\n ? Infinity\n : rm * Math.tan(gapAngle) - back - 4,\n );\n const fitted = ellipsize(text, room, labelFont, measure);\n if (fitted) {\n texts.push({\n kind: \"text\",\n x: px,\n y: py,\n text: fitted,\n font: labelFont,\n color: toCss(theme.text, 0.86),\n align: flipped ? \"left\" : \"right\",\n baseline: \"middle\",\n rotate: labelAngle,\n hit: i,\n });\n }\n }\n }\n\n const shown = Math.max(0, Math.min(frac, 1));\n const a = start + capA + Math.max(0, sweep - 2 * capA) * shown;\n if (targets[i] > 0 || !hidden.has(i))\n items.push({\n index: i,\n name: d.name,\n value: targets[i],\n percent,\n share: c.percent(percent),\n color: css,\n x: cx + rm * Math.cos(a),\n y: cy + rm * Math.sin(a),\n rows: [\n { name: c.labels.value, value: c.format(targets[i]) },\n { name: c.labels.max, value: c.format(maxes[i]) },\n { name: c.labels.progress, value: c.percent(percent) },\n ],\n });\n });\n nodes.push(...texts);\n\n // center text\n const room = R0 * 1.9 - 8;\n if (o.centerValue && room > 24) {\n const size = clamp(R0 * 0.36, 14, 32);\n const valueFont = font(theme, size, 600);\n const label = o.centerLabel\n ? ellipsize(o.centerLabel, room, font(theme, 12), measure)\n : \"\";\n const blockH = size + (label ? 18 : 0);\n const top = openBelow ? cy - blockH - 2 : cy - blockH / 2;\n nodes.push({\n kind: \"text\",\n x: cx,\n y: top + size / 2,\n text: ellipsize(o.centerValue, room, valueFont, measure),\n font: valueFont,\n color: toCss(theme.text),\n align: \"center\",\n baseline: \"middle\",\n });\n if (label)\n nodes.push({\n kind: \"text\",\n x: cx,\n y: top + blockH - 7,\n text: label,\n font: font(theme, 12),\n color: toCss(theme.textMuted),\n align: \"center\",\n baseline: \"middle\",\n });\n } else if (o.centerLabel && room > 24) {\n nodes.push({\n kind: \"text\",\n x: cx,\n y: openBelow ? cy - 12 : cy,\n text: ellipsize(o.centerLabel, room, font(theme, 12), measure),\n font: font(theme, 12),\n color: toCss(theme.textMuted),\n align: \"center\",\n baseline: \"middle\",\n });\n }\n\n return { nodes, items, dim: 0.35, empty: false };\n};\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=require("./scene.cjs"),t=require("./sunburst.cjs"),n=require("./layout.cjs");var r=()=>typeof performance<`u`&&typeof performance.now==`function`?performance.now():Date.now(),i=()=>{let e=globalThis;try{return!!e.matchMedia?.(`(prefers-reduced-motion: reduce)`)?.matches}catch{return!1}},a=(r,a=i)=>{let o=r,s=new Set,c=()=>{let e=n.toggleCount(o);if(o.hidden){s.clear();for(let t of o.hidden)Number.isInteger(t)&&t>=0&&t<e&&s.add(t)}else for(let t of[...s])t>=e&&s.delete(t)};c();let l=e=>[...e].sort((e,t)=>e-t),u=!1,d=null,f=null,p=1,m=[],h=()=>o.type===`sunburst`?t.resolveSunburstPath(o,o.drillPath??m,s):[],g=()=>o.animation!==!1&&!a(),_=()=>{let e=n.shapeValues(o,s,h());return f&&p<1?n.blendValues(f.from,e,p):e},v=e=>{let t=_();if(e(),!g()){f=null,u=!0;return}n.sameValues(t,n.shapeValues(o,s,h()))||(f={from:t,start:null},p=0)};return{get options(){return o},hidden:s,setOptions(e){if(e.type!==o.type){o=e,s.clear(),m=[],c(),u=!1,d=null,f=null,p=1;return}v(()=>{o=e,c()})},toggle(e){if(!(Number.isInteger(e)&&e>=0)||e>=n.toggleCount(o))return null;let t=new Set(s),r=!t.has(e);return r?t.add(e):t.delete(e),o.hidden||v(()=>{r?s.add(e):s.delete(e)}),{index:e,hidden:r,hiddenIndexes:l(t)}},hiddenIndexes:()=>l(s),drill(e){if(o.type!==`sunburst`)return null;let n=h(),r=t.resolveSunburstPath(o,e,s);return r.join(`\0`)===n.join(`\0`)?null:(o.drillPath||v(()=>{m=r}),{path:r})},drillPath:()=>h(),frame(t,r){let i=1;if(!u){if(!g())u=!0;else{d===null&&(d=t);let n=(t-d)/600;i=e.easeOutCubic(n),n>=1&&(u=!0,i=1)}}let a=1;if(f){if(!g())f=null;else{f.start===null&&(f.start=t);let n=(t-f.start)/400;a=n>=1?1:e.easeOutCubic(n)}}p=a;let c=n.layoutShapeScene({...r,options:o,hidden:s,enter:i,from:f?.from??null,t:a,focus:h()});return f&&a>=1&&(f=null),{scene:c,animating:!u||f!==null}}}};exports.createShapeRuntime=a,exports.now=r,exports.prefersReducedMotion=i;
2
+ //# sourceMappingURL=runtime.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.cjs","names":["toggleCount","resolveSunburstPath","shapeValues","blendValues","sameValues","easeOutCubic","layoutShapeScene","require_scene","require_sunburst","require_layout","now","prefersReducedMotion","g","createShapeRuntime","options","initial","hidden","syncHidden","count","i","sorted","set","a","b","entered","entryStart","update","lastT","focus","currentFocus","animated","reducedMotion","displayed","targets","transition","from","mutate","next","index","proposed","nowHidden","before","path","enter","time","p","t","scene","input"],"sources":["../../../../../charts/src/engine/shapes/runtime.ts"],"sourcesContent":["// Animation and visibility state shared by the DOM and canvas hosts: entry\n// animation, interpolation from the displayed values on updates / toggles.\n\nimport {\n blendValues,\n layoutShapeScene,\n sameValues,\n shapeValues,\n toggleCount,\n type ShapeLayoutInput,\n} from \"./layout\";\nimport { easeOutCubic, type ShapeScene } from \"./scene\";\nimport { resolveSunburstPath } from \"./sunburst\";\nimport type {\n ShapeChartOptions,\n ShapeDrillEvent,\n ShapeToggleEvent,\n} from \"./types\";\n\n/** Duration of the entry animation, ms */\nexport const ENTER_MS = 600;\n/** Duration of the update animation, ms */\nexport const UPDATE_MS = 400;\n\nexport const now = () =>\n typeof performance !== \"undefined\" && typeof performance.now === \"function\"\n ? performance.now()\n : Date.now();\n\n/** Whether the user prefers reduced motion (false without `matchMedia`) */\nexport const prefersReducedMotion = () => {\n const g = globalThis as {\n matchMedia?: (query: string) => { matches: boolean } | null;\n };\n try {\n return !!g.matchMedia?.(\"(prefers-reduced-motion: reduce)\")?.matches;\n } catch {\n return false;\n }\n};\n\nexport type ShapeFrameInput = Omit<\n ShapeLayoutInput,\n \"options\" | \"hidden\" | \"enter\" | \"from\" | \"t\" | \"focus\"\n>;\n\nexport interface ShapeRuntime {\n readonly options: ShapeChartOptions;\n readonly hidden: ReadonlySet<number>;\n setOptions(options: ShapeChartOptions): void;\n /**\n * Hides / shows an entry (only proposes it when `options.hidden` controls\n * the state); null when the index is out of range\n */\n toggle(index: number): ShapeToggleEvent | null;\n /** Hidden indexes, ascending */\n hiddenIndexes(): number[];\n /**\n * Sunburst: focuses the node at `path` (only proposes it when\n * `options.drillPath` controls the focus); null when nothing would change\n */\n drill(path: readonly string[]): ShapeDrillEvent | null;\n /** Sunburst: names from the root to the focused node */\n drillPath(): string[];\n /** Lays the scene out at time `time`; `animating` asks for another frame */\n frame(\n time: number,\n input: ShapeFrameInput,\n ): { scene: ShapeScene; animating: boolean };\n}\n\nexport const createShapeRuntime = (\n initial: ShapeChartOptions,\n reducedMotion: () => boolean = prefersReducedMotion,\n): ShapeRuntime => {\n let options = initial;\n const hidden = new Set<number>();\n /** Replaces the hidden set by the controlled `hidden` option (if any) */\n const syncHidden = () => {\n const count = toggleCount(options);\n if (options.hidden) {\n hidden.clear();\n for (const i of options.hidden)\n if (Number.isInteger(i) && i >= 0 && i < count) hidden.add(i);\n } else for (const i of [...hidden]) if (i >= count) hidden.delete(i);\n };\n syncHidden();\n const sorted = (set: ReadonlySet<number>) => [...set].sort((a, b) => a - b);\n let entered = false;\n let entryStart: number | null = null;\n let update: { from: Map<string, number>; start: number | null } | null = null;\n let lastT = 1;\n /** Sunburst focus of an uncontrolled chart */\n let focus: string[] = [];\n /** Focus in effect: the controlled `drillPath`, else the drilled one, made valid */\n const currentFocus = (): string[] =>\n options.type === \"sunburst\"\n ? resolveSunburstPath(options, options.drillPath ?? focus, hidden)\n : [];\n\n const animated = () => options.animation !== false && !reducedMotion();\n\n /** Values currently on screen */\n const displayed = () => {\n const targets = shapeValues(options, hidden, currentFocus());\n return update && lastT < 1\n ? blendValues(update.from, targets, lastT)\n : targets;\n };\n\n const transition = (mutate: () => void) => {\n const from = displayed();\n mutate();\n if (!animated()) {\n update = null;\n entered = true;\n return;\n }\n if (!sameValues(from, shapeValues(options, hidden, currentFocus()))) {\n update = { from, start: null };\n lastT = 0;\n }\n };\n\n return {\n get options() {\n return options;\n },\n hidden,\n setOptions(next) {\n if (next.type !== options.type) {\n options = next;\n hidden.clear();\n focus = [];\n syncHidden();\n entered = false;\n entryStart = null;\n update = null;\n lastT = 1;\n return;\n }\n transition(() => {\n options = next;\n syncHidden();\n });\n },\n toggle(index) {\n if (!(Number.isInteger(index) && index >= 0)) return null;\n if (index >= toggleCount(options)) return null;\n const proposed = new Set(hidden);\n const nowHidden = !proposed.has(index);\n if (nowHidden) proposed.add(index);\n else proposed.delete(index);\n if (!options.hidden)\n transition(() => {\n if (nowHidden) hidden.add(index);\n else hidden.delete(index);\n });\n return { index, hidden: nowHidden, hiddenIndexes: sorted(proposed) };\n },\n hiddenIndexes: () => sorted(hidden),\n drill(path) {\n if (options.type !== \"sunburst\") return null;\n const before = currentFocus();\n const next = resolveSunburstPath(options, path, hidden);\n if (next.join(\"\\u0000\") === before.join(\"\\u0000\")) return null;\n if (!options.drillPath)\n transition(() => {\n focus = next;\n });\n return { path: next };\n },\n drillPath: () => currentFocus(),\n frame(time, input) {\n let enter = 1;\n if (!entered) {\n if (!animated()) entered = true;\n else {\n if (entryStart === null) entryStart = time;\n const p = (time - entryStart) / ENTER_MS;\n enter = easeOutCubic(p);\n if (p >= 1) {\n entered = true;\n enter = 1;\n }\n }\n }\n let t = 1;\n if (update) {\n if (!animated()) update = null;\n else {\n if (update.start === null) update.start = time;\n const p = (time - update.start) / UPDATE_MS;\n t = p >= 1 ? 1 : easeOutCubic(p);\n }\n }\n lastT = t;\n const scene = layoutShapeScene({\n ...input,\n options,\n hidden,\n enter,\n from: update?.from ?? null,\n t,\n focus: currentFocus(),\n });\n if (update && t >= 1) update = null;\n return { scene, animating: !entered || update !== null };\n },\n };\n};\n"],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { ShapeLayoutInput } from './layout.cjs';
2
+ import { ShapeScene } from './scene.cjs';
3
+ import { ShapeChartOptions, ShapeDrillEvent, ShapeToggleEvent } from './types.cjs';
4
+ /** Duration of the entry animation, ms */
5
+ export declare const ENTER_MS = 600;
6
+ /** Duration of the update animation, ms */
7
+ export declare const UPDATE_MS = 400;
8
+ export declare const now: () => number;
9
+ /** Whether the user prefers reduced motion (false without `matchMedia`) */
10
+ export declare const prefersReducedMotion: () => boolean;
11
+ export type ShapeFrameInput = Omit<ShapeLayoutInput, "options" | "hidden" | "enter" | "from" | "t" | "focus">;
12
+ export interface ShapeRuntime {
13
+ readonly options: ShapeChartOptions;
14
+ readonly hidden: ReadonlySet<number>;
15
+ setOptions(options: ShapeChartOptions): void;
16
+ /**
17
+ * Hides / shows an entry (only proposes it when `options.hidden` controls
18
+ * the state); null when the index is out of range
19
+ */
20
+ toggle(index: number): ShapeToggleEvent | null;
21
+ /** Hidden indexes, ascending */
22
+ hiddenIndexes(): number[];
23
+ /**
24
+ * Sunburst: focuses the node at `path` (only proposes it when
25
+ * `options.drillPath` controls the focus); null when nothing would change
26
+ */
27
+ drill(path: readonly string[]): ShapeDrillEvent | null;
28
+ /** Sunburst: names from the root to the focused node */
29
+ drillPath(): string[];
30
+ /** Lays the scene out at time `time`; `animating` asks for another frame */
31
+ frame(time: number, input: ShapeFrameInput): {
32
+ scene: ShapeScene;
33
+ animating: boolean;
34
+ };
35
+ }
36
+ export declare const createShapeRuntime: (initial: ShapeChartOptions, reducedMotion?: () => boolean) => ShapeRuntime;
@@ -0,0 +1,36 @@
1
+ import { ShapeLayoutInput } from './layout.js';
2
+ import { ShapeScene } from './scene.js';
3
+ import { ShapeChartOptions, ShapeDrillEvent, ShapeToggleEvent } from './types.js';
4
+ /** Duration of the entry animation, ms */
5
+ export declare const ENTER_MS = 600;
6
+ /** Duration of the update animation, ms */
7
+ export declare const UPDATE_MS = 400;
8
+ export declare const now: () => number;
9
+ /** Whether the user prefers reduced motion (false without `matchMedia`) */
10
+ export declare const prefersReducedMotion: () => boolean;
11
+ export type ShapeFrameInput = Omit<ShapeLayoutInput, "options" | "hidden" | "enter" | "from" | "t" | "focus">;
12
+ export interface ShapeRuntime {
13
+ readonly options: ShapeChartOptions;
14
+ readonly hidden: ReadonlySet<number>;
15
+ setOptions(options: ShapeChartOptions): void;
16
+ /**
17
+ * Hides / shows an entry (only proposes it when `options.hidden` controls
18
+ * the state); null when the index is out of range
19
+ */
20
+ toggle(index: number): ShapeToggleEvent | null;
21
+ /** Hidden indexes, ascending */
22
+ hiddenIndexes(): number[];
23
+ /**
24
+ * Sunburst: focuses the node at `path` (only proposes it when
25
+ * `options.drillPath` controls the focus); null when nothing would change
26
+ */
27
+ drill(path: readonly string[]): ShapeDrillEvent | null;
28
+ /** Sunburst: names from the root to the focused node */
29
+ drillPath(): string[];
30
+ /** Lays the scene out at time `time`; `animating` asks for another frame */
31
+ frame(time: number, input: ShapeFrameInput): {
32
+ scene: ShapeScene;
33
+ animating: boolean;
34
+ };
35
+ }
36
+ export declare const createShapeRuntime: (initial: ShapeChartOptions, reducedMotion?: () => boolean) => ShapeRuntime;
@@ -0,0 +1,107 @@
1
+ import { easeOutCubic as e } from "./scene.js";
2
+ import { resolveSunburstPath as t } from "./sunburst.js";
3
+ import { blendValues as n, layoutShapeScene as r, sameValues as i, shapeValues as a, toggleCount as o } from "./layout.js";
4
+ var s = () => typeof performance < "u" && typeof performance.now == "function" ? performance.now() : Date.now(), c = () => {
5
+ let e = globalThis;
6
+ try {
7
+ return !!e.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches;
8
+ } catch {
9
+ return !1;
10
+ }
11
+ }, l = (s, l = c) => {
12
+ let u = s, d = /* @__PURE__ */ new Set(), f = () => {
13
+ let e = o(u);
14
+ if (u.hidden) {
15
+ d.clear();
16
+ for (let t of u.hidden) Number.isInteger(t) && t >= 0 && t < e && d.add(t);
17
+ } else for (let t of [...d]) t >= e && d.delete(t);
18
+ };
19
+ f();
20
+ let p = (e) => [...e].sort((e, t) => e - t), m = !1, h = null, g = null, _ = 1, v = [], y = () => u.type === "sunburst" ? t(u, u.drillPath ?? v, d) : [], b = () => u.animation !== !1 && !l(), x = () => {
21
+ let e = a(u, d, y());
22
+ return g && _ < 1 ? n(g.from, e, _) : e;
23
+ }, S = (e) => {
24
+ let t = x();
25
+ if (e(), !b()) {
26
+ g = null, m = !0;
27
+ return;
28
+ }
29
+ i(t, a(u, d, y())) || (g = {
30
+ from: t,
31
+ start: null
32
+ }, _ = 0);
33
+ };
34
+ return {
35
+ get options() {
36
+ return u;
37
+ },
38
+ hidden: d,
39
+ setOptions(e) {
40
+ if (e.type !== u.type) {
41
+ u = e, d.clear(), v = [], f(), m = !1, h = null, g = null, _ = 1;
42
+ return;
43
+ }
44
+ S(() => {
45
+ u = e, f();
46
+ });
47
+ },
48
+ toggle(e) {
49
+ if (!(Number.isInteger(e) && e >= 0) || e >= o(u)) return null;
50
+ let t = new Set(d), n = !t.has(e);
51
+ return n ? t.add(e) : t.delete(e), u.hidden || S(() => {
52
+ n ? d.add(e) : d.delete(e);
53
+ }), {
54
+ index: e,
55
+ hidden: n,
56
+ hiddenIndexes: p(t)
57
+ };
58
+ },
59
+ hiddenIndexes: () => p(d),
60
+ drill(e) {
61
+ if (u.type !== "sunburst") return null;
62
+ let n = y(), r = t(u, e, d);
63
+ return r.join("\0") === n.join("\0") ? null : (u.drillPath || S(() => {
64
+ v = r;
65
+ }), { path: r });
66
+ },
67
+ drillPath: () => y(),
68
+ frame(t, n) {
69
+ let i = 1;
70
+ if (!m) {
71
+ if (!b()) m = !0;
72
+ else {
73
+ h === null && (h = t);
74
+ let n = (t - h) / 600;
75
+ i = e(n), n >= 1 && (m = !0, i = 1);
76
+ }
77
+ }
78
+ let a = 1;
79
+ if (g) {
80
+ if (!b()) g = null;
81
+ else {
82
+ g.start === null && (g.start = t);
83
+ let n = (t - g.start) / 400;
84
+ a = n >= 1 ? 1 : e(n);
85
+ }
86
+ }
87
+ _ = a;
88
+ let o = r({
89
+ ...n,
90
+ options: u,
91
+ hidden: d,
92
+ enter: i,
93
+ from: g?.from ?? null,
94
+ t: a,
95
+ focus: y()
96
+ });
97
+ return g && a >= 1 && (g = null), {
98
+ scene: o,
99
+ animating: !m || g !== null
100
+ };
101
+ }
102
+ };
103
+ };
104
+ //#endregion
105
+ export { l as createShapeRuntime, s as now, c as prefersReducedMotion };
106
+
107
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","names":["now","prefersReducedMotion","g","createShapeRuntime","options","initial","hidden","syncHidden","count","toggleCount","i","sorted","set","a","b","entered","entryStart","update","lastT","focus","currentFocus","resolveSunburstPath","animated","reducedMotion","displayed","targets","shapeValues","blendValues","transition","from","mutate","sameValues","next","index","proposed","nowHidden","before","path","enter","time","p","easeOutCubic","t","scene","layoutShapeScene","input"],"sources":["../../../../../charts/src/engine/shapes/runtime.ts"],"sourcesContent":["// Animation and visibility state shared by the DOM and canvas hosts: entry\n// animation, interpolation from the displayed values on updates / toggles.\n\nimport {\n blendValues,\n layoutShapeScene,\n sameValues,\n shapeValues,\n toggleCount,\n type ShapeLayoutInput,\n} from \"./layout\";\nimport { easeOutCubic, type ShapeScene } from \"./scene\";\nimport { resolveSunburstPath } from \"./sunburst\";\nimport type {\n ShapeChartOptions,\n ShapeDrillEvent,\n ShapeToggleEvent,\n} from \"./types\";\n\n/** Duration of the entry animation, ms */\nexport const ENTER_MS = 600;\n/** Duration of the update animation, ms */\nexport const UPDATE_MS = 400;\n\nexport const now = () =>\n typeof performance !== \"undefined\" && typeof performance.now === \"function\"\n ? performance.now()\n : Date.now();\n\n/** Whether the user prefers reduced motion (false without `matchMedia`) */\nexport const prefersReducedMotion = () => {\n const g = globalThis as {\n matchMedia?: (query: string) => { matches: boolean } | null;\n };\n try {\n return !!g.matchMedia?.(\"(prefers-reduced-motion: reduce)\")?.matches;\n } catch {\n return false;\n }\n};\n\nexport type ShapeFrameInput = Omit<\n ShapeLayoutInput,\n \"options\" | \"hidden\" | \"enter\" | \"from\" | \"t\" | \"focus\"\n>;\n\nexport interface ShapeRuntime {\n readonly options: ShapeChartOptions;\n readonly hidden: ReadonlySet<number>;\n setOptions(options: ShapeChartOptions): void;\n /**\n * Hides / shows an entry (only proposes it when `options.hidden` controls\n * the state); null when the index is out of range\n */\n toggle(index: number): ShapeToggleEvent | null;\n /** Hidden indexes, ascending */\n hiddenIndexes(): number[];\n /**\n * Sunburst: focuses the node at `path` (only proposes it when\n * `options.drillPath` controls the focus); null when nothing would change\n */\n drill(path: readonly string[]): ShapeDrillEvent | null;\n /** Sunburst: names from the root to the focused node */\n drillPath(): string[];\n /** Lays the scene out at time `time`; `animating` asks for another frame */\n frame(\n time: number,\n input: ShapeFrameInput,\n ): { scene: ShapeScene; animating: boolean };\n}\n\nexport const createShapeRuntime = (\n initial: ShapeChartOptions,\n reducedMotion: () => boolean = prefersReducedMotion,\n): ShapeRuntime => {\n let options = initial;\n const hidden = new Set<number>();\n /** Replaces the hidden set by the controlled `hidden` option (if any) */\n const syncHidden = () => {\n const count = toggleCount(options);\n if (options.hidden) {\n hidden.clear();\n for (const i of options.hidden)\n if (Number.isInteger(i) && i >= 0 && i < count) hidden.add(i);\n } else for (const i of [...hidden]) if (i >= count) hidden.delete(i);\n };\n syncHidden();\n const sorted = (set: ReadonlySet<number>) => [...set].sort((a, b) => a - b);\n let entered = false;\n let entryStart: number | null = null;\n let update: { from: Map<string, number>; start: number | null } | null = null;\n let lastT = 1;\n /** Sunburst focus of an uncontrolled chart */\n let focus: string[] = [];\n /** Focus in effect: the controlled `drillPath`, else the drilled one, made valid */\n const currentFocus = (): string[] =>\n options.type === \"sunburst\"\n ? resolveSunburstPath(options, options.drillPath ?? focus, hidden)\n : [];\n\n const animated = () => options.animation !== false && !reducedMotion();\n\n /** Values currently on screen */\n const displayed = () => {\n const targets = shapeValues(options, hidden, currentFocus());\n return update && lastT < 1\n ? blendValues(update.from, targets, lastT)\n : targets;\n };\n\n const transition = (mutate: () => void) => {\n const from = displayed();\n mutate();\n if (!animated()) {\n update = null;\n entered = true;\n return;\n }\n if (!sameValues(from, shapeValues(options, hidden, currentFocus()))) {\n update = { from, start: null };\n lastT = 0;\n }\n };\n\n return {\n get options() {\n return options;\n },\n hidden,\n setOptions(next) {\n if (next.type !== options.type) {\n options = next;\n hidden.clear();\n focus = [];\n syncHidden();\n entered = false;\n entryStart = null;\n update = null;\n lastT = 1;\n return;\n }\n transition(() => {\n options = next;\n syncHidden();\n });\n },\n toggle(index) {\n if (!(Number.isInteger(index) && index >= 0)) return null;\n if (index >= toggleCount(options)) return null;\n const proposed = new Set(hidden);\n const nowHidden = !proposed.has(index);\n if (nowHidden) proposed.add(index);\n else proposed.delete(index);\n if (!options.hidden)\n transition(() => {\n if (nowHidden) hidden.add(index);\n else hidden.delete(index);\n });\n return { index, hidden: nowHidden, hiddenIndexes: sorted(proposed) };\n },\n hiddenIndexes: () => sorted(hidden),\n drill(path) {\n if (options.type !== \"sunburst\") return null;\n const before = currentFocus();\n const next = resolveSunburstPath(options, path, hidden);\n if (next.join(\"\\u0000\") === before.join(\"\\u0000\")) return null;\n if (!options.drillPath)\n transition(() => {\n focus = next;\n });\n return { path: next };\n },\n drillPath: () => currentFocus(),\n frame(time, input) {\n let enter = 1;\n if (!entered) {\n if (!animated()) entered = true;\n else {\n if (entryStart === null) entryStart = time;\n const p = (time - entryStart) / ENTER_MS;\n enter = easeOutCubic(p);\n if (p >= 1) {\n entered = true;\n enter = 1;\n }\n }\n }\n let t = 1;\n if (update) {\n if (!animated()) update = null;\n else {\n if (update.start === null) update.start = time;\n const p = (time - update.start) / UPDATE_MS;\n t = p >= 1 ? 1 : easeOutCubic(p);\n }\n }\n lastT = t;\n const scene = layoutShapeScene({\n ...input,\n options,\n hidden,\n enter,\n from: update?.from ?? null,\n t,\n focus: currentFocus(),\n });\n if (update && t >= 1) update = null;\n return { scene, animating: !entered || update !== null };\n },\n };\n};\n"],"mappings":";;;AAwBA,IAAaA,UACX,OAAO,cAAgB,OAAe,OAAO,YAAY,OAAQ,aAC7D,YAAY,IAAI,IAChB,KAAK,IAAI,GAGFC,UAA6B;CACxC,IAAMC,IAAI;CAGV,IAAI;EACF,OAAO,CAAC,CAACA,EAAE,aAAa,kCAAkC,CAAC,EAAE;CAC/D,QAAQ;EACN,OAAO;CACT;AACF,GAgCaC,KACX,GACA,IAA+BF,MACd;CACjB,IAAIG,IAAUC,GACRC,oBAAS,IAAI,IAAY,GAEzBC,UAAmB;EACvB,IAAMC,IAAQC,EAAYL,CAAO;EACjC,IAAIA,EAAQ,QAAQ;GAClB,EAAO,MAAM;GACb,KAAK,IAAMM,KAAKN,EAAQ,QACtB,AAAI,OAAO,UAAUM,CAAC,KAAKA,KAAK,KAAKA,IAAIF,KAAOF,EAAO,IAAII,CAAC;EAChE,OAAO,KAAK,IAAMA,KAAK,CAAC,GAAGJ,CAAM,GAAG,AAAII,KAAKF,KAAOF,EAAO,OAAOI,CAAC;CACrE;CACA,EAAW;CACX,IAAMC,KAAU,MAA6B,CAAC,GAAGC,CAAG,CAAC,CAAC,MAAM,GAAG,MAAMC,IAAIC,CAAC,GACtEC,IAAU,IACVC,IAA4B,MAC5BC,IAAqE,MACrEC,IAAQ,GAERC,IAAkB,CAAC,GAEjBC,UACJhB,EAAQ,SAAS,aACbiB,EAAoBjB,GAASA,EAAQ,aAAae,GAAOb,CAAM,IAC/D,CAAC,GAEDgB,UAAiBlB,EAAQ,cAAc,MAAS,CAACmB,EAAc,GAG/DC,UAAkB;EACtB,IAAMC,IAAUC,EAAYtB,GAASE,GAAQc,EAAa,CAAC;EAC3D,OAAOH,KAAUC,IAAQ,IACrBS,EAAYV,EAAO,MAAMQ,GAASP,CAAK,IACvCO;CACN,GAEMG,KAAc,MAAuB;EACzC,IAAMC,IAAOL,EAAU;EAEvB,IADAM,EAAO,GACH,CAACR,EAAS,GAAG;GAEf,AADA,IAAS,MACT,IAAU;GACV;EACF;EACA,AAAKS,EAAWF,GAAMH,EAAYtB,GAASE,GAAQc,EAAa,CAAC,CAAC,MAChE,IAAS;GAAE;GAAM,OAAO;EAAK,GAC7B,IAAQ;CAEZ;CAEA,OAAO;EACL,IAAI,UAAU;GACZ,OAAOhB;EACT;EACA;EACA,WAAW,GAAM;GACf,IAAI4B,EAAK,SAAS5B,EAAQ,MAAM;IAQ9B,AAPA,IAAU4B,GACV1B,EAAO,MAAM,GACb,IAAQ,CAAC,GACTC,EAAW,GACX,IAAU,IACV,IAAa,MACb,IAAS,MACT,IAAQ;IACR;GACF;GACA,QAAiB;IAEf,AADA,IAAUyB,GACVzB,EAAW;GACb,CAAC;EACH;EACA,OAAO,GAAO;GAEZ,IADI,EAAE,OAAO,UAAU0B,CAAK,KAAKA,KAAS,MACtCA,KAASxB,EAAYL,CAAO,GAAG,OAAO;GAC1C,IAAM8B,IAAW,IAAI,IAAI5B,CAAM,GACzB6B,IAAY,CAACD,EAAS,IAAID,CAAK;GAQrC,OAPIE,IAAWD,EAAS,IAAID,CAAK,IAC5BC,EAAS,OAAOD,CAAK,GACrB7B,EAAQ,UACXwB,QAAiB;IACf,AAAIO,IAAW7B,EAAO,IAAI2B,CAAK,IAC1B3B,EAAO,OAAO2B,CAAK;GAC1B,CAAC,GACI;IAAE;IAAO,QAAQE;IAAW,eAAexB,EAAOuB,CAAQ;GAAE;EACrE;EACA,qBAAqBvB,EAAOL,CAAM;EAClC,MAAM,GAAM;GACV,IAAIF,EAAQ,SAAS,YAAY,OAAO;GACxC,IAAMgC,IAAShB,EAAa,GACtBY,IAAOX,EAAoBjB,GAASiC,GAAM/B,CAAM;GAMtD,OALI0B,EAAK,KAAK,IAAQ,MAAMI,EAAO,KAAK,IAAQ,IAAU,QACrDhC,EAAQ,aACXwB,QAAiB;IACf,IAAQI;GACV,CAAC,GACI,EAAE,MAAMA,EAAK;EACtB;EACA,iBAAiBZ,EAAa;EAC9B,MAAM,GAAM,GAAO;GACjB,IAAIkB,IAAQ;GACZ,IAAI,CAACvB,GAAS;IACZ,IAAI,CAACO,EAAS,GAAG,IAAU;SACtB;KACH,AAAIN,MAAe,SAAM,IAAauB;KACtC,IAAMC,KAAKD,IAAOvB,KAAA;KAElB,AADA,IAAQyB,EAAaD,CAAC,GAClBA,KAAK,MACP,IAAU,IACV,IAAQ;IAEZ;GACF;GACA,IAAIE,IAAI;GACR,IAAIzB,GAAQ;IACV,IAAI,CAACK,EAAS,GAAG,IAAS;SACrB;KACH,AAAIL,EAAO,UAAU,SAAM,EAAO,QAAQsB;KAC1C,IAAMC,KAAKD,IAAOtB,EAAO,SAAA;KACzB,IAAIuB,KAAK,IAAI,IAAIC,EAAaD,CAAC;IACjC;GACF;GACA,IAAQE;GACR,IAAMC,IAAQC,EAAiB;IAC7B,GAAGC;IACH;IACA;IACA;IACA,MAAM5B,GAAQ,QAAQ;IACtB;IACA,OAAOG,EAAa;GACtB,CAAC;GAED,OADIH,KAAUyB,KAAK,MAAG,IAAS,OACxB;IAAE;IAAO,WAAW,CAAC3B,KAAWE,MAAW;GAAK;EACzD;CACF;AACF"}
@@ -0,0 +1,2 @@
1
+ const e=require("../color.cjs"),t=require("../overlay.cjs"),n=require("./labels.cjs"),r=require("./scene.cjs");var i=e=>{let t=[],n=[],i=[],a=new Map;for(let r of e.nodes??[])a.set(r.name,a.get(r.name)??t.length),t.push(r.name),n.push(r.color),i.push(typeof r.column==`number`&&Number.isFinite(r.column)?Math.max(0,Math.round(r.column)):void 0);let o=t.length,s=e=>{if(typeof e==`number`)return Number.isInteger(e)&&e>=0&&e<o?e:-1;if(typeof e!=`string`)return-1;let r=a.get(e);return r===void 0?(a.set(e,t.length),t.push(e),n.push(void 0),i.push(void 0),t.length-1):r},c=[],l=(e,t)=>{let n=new Set([e]),r=[e];for(;r.length;){let e=r.pop();if(e===t)return!0;for(let t of c[e]??[])n.has(t)||(n.add(t),r.push(t))}return!1},u=[];return(e.links??[]).forEach((e,t)=>{if(!e)return;let n=s(e.source),i=s(e.target);n<0||i<0||n===i||l(i,n)||((c[n]??(c[n]=[])).push(i),u.push({link:t,source:n,target:i,value:r.positive(e.value),...e.color?{color:e.color}:{}}))}),{names:t,colors:n,columns:i,edges:u}},a=e=>r.uniqueKeys(e.edges.map(t=>`${e.names[t.source]}\u2192${e.names[t.target]}`)),o=(e,t,n)=>{let r=i(e);a(r).forEach((e,i)=>{let a=r.edges[i];n.set(e,t.has(a.source)||t.has(a.target)?0:a.value)})},s=(e,t=`justify`)=>{let n=e.names.length,r=Array.from({length:n},()=>[]),i=Array.from({length:n},()=>[]);for(let t of e.edges)r[t.source].push(t.target),i[t.target].push(t.source);let a=[],o=i.map(e=>e.length),s=[];for(o.forEach((e,t)=>{e||s.push(t)});s.length;){let e=s.shift();a.push(e);for(let t of r[e])--o[t]===0&&s.push(t)}let c=Array(n).fill(0);for(let e of a)for(let t of r[e])c[t]=Math.max(c[t],c[e]+1);let l=Array(n).fill(0);for(let e=a.length-1;e>=0;e--){let t=a[e];for(let e of r[t])l[t]=Math.max(l[t],l[e]+1)}let u=Math.max(0,...c),d=c.map((e,n)=>{switch(t){case`left`:return e;case`right`:return u-l[n];case`center`:return i[n].length?e:r[n].length?Math.min(...r[n].map(e=>c[e]))-1:0;default:return r[n].length?e:u}});return e.columns.forEach((e,t)=>{e!==void 0&&(d[t]=e)}),d},c=(e,t,n,r,i,a)=>{let o=e=>e.outs.map(e=>t[e]),s=e=>e.ins.map(e=>t[e]),c=e=>{e.outs.sort((e,n)=>t[e].target.y0-t[n].target.y0),e.ins.sort((e,n)=>t[e].source.y0-t[n].source.y0)},l=(e,t)=>{let n=e.y0-(e.outs.length-1)*i/2;for(let r of o(e)){if(r.target===t)break;n+=r.width+i}for(let r of s(t)){if(r.source===e)break;n-=r.width}return n},u=(e,t)=>{let n=t.y0-(t.ins.length-1)*i/2;for(let r of s(t)){if(r.source===e)break;n+=r.width+i}for(let r of o(e)){if(r.target===t)break;n-=r.width}return n},d=(e,t,n,r)=>{for(let a=n;a<e.length;a++){let n=e[a],o=(t-n.y0)*r;o>1e-6&&(n.y0+=o,n.y1+=o),t=n.y1+i}},f=(e,t,n,r)=>{for(let a=n;a>=0;a--){let n=e[a],o=(n.y1-t)*r;o>1e-6&&(n.y0-=o,n.y1-=o),t=n.y0-i}},p=(e,t)=>{let a=e.length>>1,o=e[a];o&&(f(e,o.y0-i,a-1,t),d(e,o.y1+i,a+1,t),f(e,r,e.length-1,t),d(e,n,0,t))},m=(e,t)=>e.y0-t.y0;for(let t of e){let e=n;for(let n of t){let t=n.y1-n.y0;n.y0=e,n.y1=e+t,e=n.y1+i}let a=(r-e+i)/(t.length+1);t.forEach((e,t)=>{e.y0+=a*(t+1),e.y1+=a*(t+1)})}for(let t of e)t.forEach(c);for(let t=0;t<a;t++){let n=.99**t,r=Math.max(1-n,(t+1)/a);for(let t=e.length-2;t>=0;t--){let i=e[t];for(let e of i){let t=0,r=0;for(let n of o(e)){let i=n.value*(n.target.col-e.col);t+=u(e,n.target)*i,r+=i}if(!(r>0))continue;let i=(t/r-e.y0)*n;e.y0+=i,e.y1+=i,c(e)}i.sort(m),p(i,r)}for(let t=1;t<e.length;t++){let i=e[t];for(let e of i){let t=0,r=0;for(let n of s(e)){let i=n.value*(e.col-n.source.col);t+=l(n.source,e)*i,r+=i}if(!(r>0))continue;let i=(t/r-e.y0)*n;e.y0+=i,e.y1+=i,c(e)}i.sort(m),p(i,r)}}for(let t of e)t.forEach(c)},l=6,u=16,d=(o,d)=>{let{theme:f,area:p,measure:m,hidden:h}=d,g=i(o),_=a(g),v=g.names.length,y=g.edges.map(e=>h.has(e.source)||h.has(e.target)?0:e.value),b=y.map((e,t)=>Math.max(0,d.value(_[t],e)));if(r.sum(b)<=1e-9)return r.emptyLayout(d);let x=s(g,o.align),S=Array(v).fill(0),C=Array(v).fill(0),w=Array(v).fill(0),T=Array(v).fill(0);g.edges.forEach((e,t)=>{C[e.source]+=y[t],S[e.target]+=y[t],T[e.source]+=b[t],w[e.target]+=b[t]});let E=g.names.map((e,t)=>{let n=Math.max(w[t],T[t]);return n>1e-9?{i:t,col:x[t],value:n,x0:0,x1:0,y0:0,y1:0,outs:[],ins:[]}:null}),D=[...new Set(E.filter(e=>e).map(e=>e.col))].sort((e,t)=>e-t),O=new Map(D.map((e,t)=>[e,t])),k=D.map(()=>[]);for(let e of E)e&&(e.col=O.get(e.col)??0,k[e.col].push(e));let A=[];g.edges.forEach((e,t)=>{let n=E[e.source],r=E[e.target];!n||!r||b[t]<=1e-9||(n.outs.push(A.length),r.ins.push(A.length),A.push({k:t,source:n,target:r,value:b[t],width:0,y0:0,y1:0}))});let j=r.clamp(r.finite(o.nodeWidth,12),1,64),M=k.length,N=p.y+2,P=p.y+p.height-2,F=Math.max(1,P-N),I=Math.max(1,...k.map(e=>e.length)),L=Math.min(Math.max(0,r.finite(o.nodePadding,12)),I>1?F*.5/(I-1):1/0),R=Math.min(...k.map(e=>(F-(e.length-1)*L)/Math.max(1e-9,r.sum(e.map(e=>e.value))))),z=M>1?(p.width-j)/(M-1):0;k.forEach((e,t)=>{let n=M>1?p.x+t*z:p.x+(p.width-j)/2;for(let t of e)t.x0=n,t.x1=n+j,t.y0=0,t.y1=t.value*R});for(let e of A)e.width=e.value*R;c(k,A,N,P,L,Math.round(r.clamp(r.finite(o.iterations,32),0,200)));for(let e of k)for(let t of e){let e=t.y0;for(let n of t.outs)A[n].y0=e+A[n].width/2,e+=A[n].width;e=t.y0;for(let n of t.ins)A[n].y1=e+A[n].width/2,e+=A[n].width}let B=g.names.map((e,t)=>d.color(g.colors[t],t)).map(t=>e.toCss(t)),V=e.mix(f.grid,f.textMuted,.45),H=o.linkColor??`gradient`,U=r.clamp(r.finite(o.linkOpacity,.4),.02,1),W=Math.min(1,U+.3),G=[],K=[],q=e=>v+g.edges[e.k].link,J=e=>[...e.ins.map(e=>q(A[e])),...e.outs.map(e=>q(A[e]))],Y=A.slice().sort((e,t)=>t.width-e.width);for(let t of Y){let n=g.edges[t.k].color,r,i;n?r=i=e.toCss(d.color(n,t.source.i)):H===`source`?r=i=B[t.source.i]:H===`target`?r=i=B[t.target.i]:H===`neutral`?r=i=e.toCss(V):(r=B[t.source.i],i=B[t.target.i]),G.push({kind:`link`,x0:t.source.x1,y0:t.y0,x1:t.target.x0,y1:t.y1,width:t.width,color0:r,color1:i,alpha:U,activeAlpha:W,hit:q(t),also:[t.source.i,t.target.i]})}for(let e of k)for(let t of e)G.push({kind:`rect`,x:t.x0,y:t.y0,width:t.x1-t.x0,height:Math.max(1,t.y1-t.y0),radius:Math.min(2,j/2),fill:B[t.i],hit:t.i,also:J(t),brighten:!0});if(o.labels!==!1){let n=t.font(f,12,500),i=t.font(f,12),a=e.toCss(f.background,.8),s=[],c=M>1?Math.max(0,z-j-12):p.width,h=k.flat().slice().sort((e,t)=>Number(t.col===M-1)-Number(e.col===M-1)||t.value-e.value);for(let t of h){let h=M>1&&t.col===M-1,_=o.labelValues===!1?``:d.format(Math.max(S[t.i],C[t.i])),v=_?m(_,i):0,y=r.ellipsize(g.names[t.i],c-(_?v+6:0),n,m);if(!y&&_&&(_=``,v=0,y=r.ellipsize(g.names[t.i],c,n,m)),!y)continue;let b=m(y,n)+(_?6+v:0),x=h?[!0,!1]:[!1,!0],w=Math.max(0,(t.y1-t.y0)/2-u/2+2),T=[0];for(let e=6;e<=w;e+=6)T.push(e,-e);let E=null;for(let e of x){let n=e?t.x0-l:t.x1+l,r=e?n-b:n;if(!(r<p.x-2||r+b>p.x+p.width+2)){for(let e of T){let n=(t.y0+t.y1)/2+e,i={x0:r,x1:r+b,y0:n-u/2,y1:n+u/2};if(!(i.y0<p.y-4||i.y1>p.y+p.height+4||s.some(e=>e.x0<i.x1&&i.x0<e.x1&&e.y0<i.y1&&i.y0<e.y1))){E=i;break}}if(E)break}}if(!E)continue;s.push(E);let D=(E.y0+E.y1)/2,O=J(t);G.push({kind:`text`,x:E.x0,y:D,text:y,font:n,color:e.toCss(f.text),align:`left`,baseline:`middle`,halo:a,hit:t.i,also:O}),_&&G.push({kind:`text`,x:E.x1,y:D,text:_,font:i,color:e.toCss(f.textMuted),align:`right`,baseline:`middle`,halo:a,hit:t.i,also:O})}}let X=r.sum(g.names.map((e,t)=>S[t]<=0?C[t]:0));for(let e of k)for(let t of e.slice().sort((e,t)=>e.y0-t.y0)){let e=Math.max(S[t.i],C[t.i]);if(e<=0)continue;let n=X>0?e/X:0;K.push({index:t.i,name:g.names[t.i],value:e,percent:n,share:d.percent(n),color:B[t.i],x:(t.x0+t.x1)/2,y:(t.y0+t.y1)/2,rows:[{name:d.labels.value,value:d.format(e)},...S[t.i]>0?[{name:d.labels.incoming,value:d.format(S[t.i])}]:[],...C[t.i]>0?[{name:d.labels.outgoing,value:d.format(C[t.i])}]:[]]})}let Z=A.slice().sort((e,t)=>e.source.col-t.source.col||e.y0-t.y0||e.target.y0-t.target.y0);for(let e of Z){let t=g.edges[e.k],r=y[e.k];if(r<=0)continue;let i=g.names[t.source],a=g.names[t.target],o=C[t.source]>0?r/C[t.source]:0,s=S[t.target]>0?r/S[t.target]:0;K.push({index:q(e),name:`${i} \u2192 ${a}`,value:r,percent:o,share:d.percent(o),color:B[t.source],x:(e.source.x1+e.target.x0)/2,y:(e.y0+e.y1)/2,rows:[{name:d.labels.value,value:d.format(r)},{name:n.interpolate(d.labels.ofName,{name:i}),value:d.percent(o)},{name:n.interpolate(d.labels.ofName,{name:a}),value:d.percent(s)}],event:{source:i,target:a}})}let Q=r.clamp(d.enter,0,1);return{nodes:G,items:K,dim:.3,empty:!1,...Q<1?{enter:{alpha:Q,scale:.97+.03*Q,cx:p.x+p.width/2,cy:p.y+p.height/2}}:{}}};exports.layoutSankey=d,exports.resolveSankey=i,exports.sankeyColumns=s,exports.sankeyValues=o;
2
+ //# sourceMappingURL=sankey.cjs.map