minerva-design 1.3.0 → 1.5.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 (1337) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +21 -21
  3. package/custom-elements.json +18546 -7329
  4. package/dist/angular/fesm2022/minerva-angular.mjs +8303 -172
  5. package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
  6. package/dist/angular/types/minerva-angular.d.ts +2809 -0
  7. package/dist/charts/canvas.d.cts +8 -3
  8. package/dist/charts/canvas.d.ts +8 -3
  9. package/dist/charts/core.cjs +1 -1
  10. package/dist/charts/core.d.cts +10 -5
  11. package/dist/charts/core.d.ts +10 -5
  12. package/dist/charts/core.js +27 -8
  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 +43 -20
  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 +193 -116
  22. package/dist/charts/engine/canvas.js.map +1 -1
  23. package/dist/charts/engine/chart.cjs +1 -1
  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 +486 -350
  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 +18 -0
  32. package/dist/charts/engine/color.d.ts +18 -0
  33. package/dist/charts/engine/color.js +47 -1
  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 +44 -4
  38. package/dist/charts/engine/controller.d.ts +44 -4
  39. package/dist/charts/engine/controller.js +421 -314
  40. package/dist/charts/engine/controller.js.map +1 -1
  41. package/dist/charts/engine/data.cjs +1 -1
  42. package/dist/charts/engine/data.cjs.map +1 -1
  43. package/dist/charts/engine/data.d.cts +9 -1
  44. package/dist/charts/engine/data.d.ts +9 -1
  45. package/dist/charts/engine/data.js +65 -49
  46. package/dist/charts/engine/data.js.map +1 -1
  47. package/dist/charts/engine/defaults.cjs +2 -0
  48. package/dist/charts/engine/defaults.cjs.map +1 -0
  49. package/dist/charts/engine/defaults.d.cts +20 -0
  50. package/dist/charts/engine/defaults.d.ts +20 -0
  51. package/dist/charts/engine/defaults.js +35 -0
  52. package/dist/charts/engine/defaults.js.map +1 -0
  53. package/dist/charts/engine/format.cjs +1 -1
  54. package/dist/charts/engine/format.cjs.map +1 -1
  55. package/dist/charts/engine/format.d.cts +27 -6
  56. package/dist/charts/engine/format.d.ts +27 -6
  57. package/dist/charts/engine/format.js +59 -21
  58. package/dist/charts/engine/format.js.map +1 -1
  59. package/dist/charts/engine/graph/chart.cjs +2 -0
  60. package/dist/charts/engine/graph/chart.cjs.map +1 -0
  61. package/dist/charts/engine/graph/chart.d.cts +3 -0
  62. package/dist/charts/engine/graph/chart.d.ts +3 -0
  63. package/dist/charts/engine/graph/chart.js +1565 -0
  64. package/dist/charts/engine/graph/chart.js.map +1 -0
  65. package/dist/charts/engine/graph/circular.cjs +2 -0
  66. package/dist/charts/engine/graph/circular.cjs.map +1 -0
  67. package/dist/charts/engine/graph/circular.d.cts +16 -0
  68. package/dist/charts/engine/graph/circular.d.ts +16 -0
  69. package/dist/charts/engine/graph/circular.js +62 -0
  70. package/dist/charts/engine/graph/circular.js.map +1 -0
  71. package/dist/charts/engine/graph/dag.cjs +2 -0
  72. package/dist/charts/engine/graph/dag.cjs.map +1 -0
  73. package/dist/charts/engine/graph/dag.d.cts +34 -0
  74. package/dist/charts/engine/graph/dag.d.ts +34 -0
  75. package/dist/charts/engine/graph/dag.js +314 -0
  76. package/dist/charts/engine/graph/dag.js.map +1 -0
  77. package/dist/charts/engine/graph/dom.cjs +2 -0
  78. package/dist/charts/engine/graph/dom.cjs.map +1 -0
  79. package/dist/charts/engine/graph/dom.d.cts +23 -0
  80. package/dist/charts/engine/graph/dom.d.ts +23 -0
  81. package/dist/charts/engine/graph/dom.js +158 -0
  82. package/dist/charts/engine/graph/dom.js.map +1 -0
  83. package/dist/charts/engine/graph/force.cjs +2 -0
  84. package/dist/charts/engine/graph/force.cjs.map +1 -0
  85. package/dist/charts/engine/graph/force.d.cts +67 -0
  86. package/dist/charts/engine/graph/force.d.ts +67 -0
  87. package/dist/charts/engine/graph/force.js +325 -0
  88. package/dist/charts/engine/graph/force.js.map +1 -0
  89. package/dist/charts/engine/graph/geometry.cjs +2 -0
  90. package/dist/charts/engine/graph/geometry.cjs.map +1 -0
  91. package/dist/charts/engine/graph/geometry.d.cts +37 -0
  92. package/dist/charts/engine/graph/geometry.d.ts +37 -0
  93. package/dist/charts/engine/graph/geometry.js +144 -0
  94. package/dist/charts/engine/graph/geometry.js.map +1 -0
  95. package/dist/charts/engine/graph/index.cjs +1 -0
  96. package/dist/charts/engine/graph/index.d.cts +6 -0
  97. package/dist/charts/engine/graph/index.d.ts +6 -0
  98. package/dist/charts/engine/graph/index.js +6 -0
  99. package/dist/charts/engine/graph/labels.cjs +2 -0
  100. package/dist/charts/engine/graph/labels.cjs.map +1 -0
  101. package/dist/charts/engine/graph/labels.d.cts +12 -0
  102. package/dist/charts/engine/graph/labels.d.ts +12 -0
  103. package/dist/charts/engine/graph/labels.js +128 -0
  104. package/dist/charts/engine/graph/labels.js.map +1 -0
  105. package/dist/charts/engine/graph/model.cjs +2 -0
  106. package/dist/charts/engine/graph/model.cjs.map +1 -0
  107. package/dist/charts/engine/graph/model.d.cts +43 -0
  108. package/dist/charts/engine/graph/model.d.ts +43 -0
  109. package/dist/charts/engine/graph/model.js +88 -0
  110. package/dist/charts/engine/graph/model.js.map +1 -0
  111. package/dist/charts/engine/graph/sizing.cjs +2 -0
  112. package/dist/charts/engine/graph/sizing.cjs.map +1 -0
  113. package/dist/charts/engine/graph/sizing.d.cts +33 -0
  114. package/dist/charts/engine/graph/sizing.d.ts +33 -0
  115. package/dist/charts/engine/graph/sizing.js +60 -0
  116. package/dist/charts/engine/graph/sizing.js.map +1 -0
  117. package/dist/charts/engine/graph/tree.cjs +2 -0
  118. package/dist/charts/engine/graph/tree.cjs.map +1 -0
  119. package/dist/charts/engine/graph/tree.d.cts +30 -0
  120. package/dist/charts/engine/graph/tree.d.ts +30 -0
  121. package/dist/charts/engine/graph/tree.js +218 -0
  122. package/dist/charts/engine/graph/tree.js.map +1 -0
  123. package/dist/charts/engine/graph/types.d.cts +626 -0
  124. package/dist/charts/engine/graph/types.d.ts +626 -0
  125. package/dist/charts/engine/graph/worker.cjs +46 -0
  126. package/dist/charts/engine/graph/worker.cjs.map +1 -0
  127. package/dist/charts/engine/graph/worker.d.cts +36 -0
  128. package/dist/charts/engine/graph/worker.d.ts +36 -0
  129. package/dist/charts/engine/graph/worker.js +129 -0
  130. package/dist/charts/engine/graph/worker.js.map +1 -0
  131. package/dist/charts/engine/items.cjs +1 -1
  132. package/dist/charts/engine/items.cjs.map +1 -1
  133. package/dist/charts/engine/items.d.cts +15 -2
  134. package/dist/charts/engine/items.d.ts +15 -2
  135. package/dist/charts/engine/items.js +257 -81
  136. package/dist/charts/engine/items.js.map +1 -1
  137. package/dist/charts/engine/labels.cjs +2 -0
  138. package/dist/charts/engine/labels.cjs.map +1 -0
  139. package/dist/charts/engine/labels.d.cts +13 -0
  140. package/dist/charts/engine/labels.d.ts +13 -0
  141. package/dist/charts/engine/labels.js +98 -0
  142. package/dist/charts/engine/labels.js.map +1 -0
  143. package/dist/charts/engine/layout.cjs +1 -1
  144. package/dist/charts/engine/layout.cjs.map +1 -1
  145. package/dist/charts/engine/layout.d.cts +43 -2
  146. package/dist/charts/engine/layout.d.ts +43 -2
  147. package/dist/charts/engine/layout.js +62 -12
  148. package/dist/charts/engine/layout.js.map +1 -1
  149. package/dist/charts/engine/locale.cjs +2 -0
  150. package/dist/charts/engine/locale.cjs.map +1 -0
  151. package/dist/charts/engine/locale.d.cts +33 -0
  152. package/dist/charts/engine/locale.d.ts +33 -0
  153. package/dist/charts/engine/locale.js +68 -0
  154. package/dist/charts/engine/locale.js.map +1 -0
  155. package/dist/charts/engine/model.cjs +1 -1
  156. package/dist/charts/engine/model.cjs.map +1 -1
  157. package/dist/charts/engine/model.d.cts +77 -2
  158. package/dist/charts/engine/model.d.ts +77 -2
  159. package/dist/charts/engine/model.js +304 -116
  160. package/dist/charts/engine/model.js.map +1 -1
  161. package/dist/charts/engine/orderbook/book.cjs +2 -0
  162. package/dist/charts/engine/orderbook/book.cjs.map +1 -0
  163. package/dist/charts/engine/orderbook/book.d.cts +28 -0
  164. package/dist/charts/engine/orderbook/book.d.ts +28 -0
  165. package/dist/charts/engine/orderbook/book.js +134 -0
  166. package/dist/charts/engine/orderbook/book.js.map +1 -0
  167. package/dist/charts/engine/orderbook/depth.cjs +2 -0
  168. package/dist/charts/engine/orderbook/depth.cjs.map +1 -0
  169. package/dist/charts/engine/orderbook/depth.d.cts +7 -0
  170. package/dist/charts/engine/orderbook/depth.d.ts +7 -0
  171. package/dist/charts/engine/orderbook/depth.js +413 -0
  172. package/dist/charts/engine/orderbook/depth.js.map +1 -0
  173. package/dist/charts/engine/orderbook/format.cjs +2 -0
  174. package/dist/charts/engine/orderbook/format.cjs.map +1 -0
  175. package/dist/charts/engine/orderbook/format.d.cts +49 -0
  176. package/dist/charts/engine/orderbook/format.d.ts +49 -0
  177. package/dist/charts/engine/orderbook/format.js +65 -0
  178. package/dist/charts/engine/orderbook/format.js.map +1 -0
  179. package/dist/charts/engine/orderbook/heatmap.cjs +2 -0
  180. package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -0
  181. package/dist/charts/engine/orderbook/heatmap.d.cts +9 -0
  182. package/dist/charts/engine/orderbook/heatmap.d.ts +9 -0
  183. package/dist/charts/engine/orderbook/heatmap.js +822 -0
  184. package/dist/charts/engine/orderbook/heatmap.js.map +1 -0
  185. package/dist/charts/engine/orderbook/host.cjs +2 -0
  186. package/dist/charts/engine/orderbook/host.cjs.map +1 -0
  187. package/dist/charts/engine/orderbook/host.d.cts +50 -0
  188. package/dist/charts/engine/orderbook/host.d.ts +50 -0
  189. package/dist/charts/engine/orderbook/host.js +161 -0
  190. package/dist/charts/engine/orderbook/host.js.map +1 -0
  191. package/dist/charts/engine/orderbook/index.cjs +1 -0
  192. package/dist/charts/engine/orderbook/index.d.cts +6 -0
  193. package/dist/charts/engine/orderbook/index.d.ts +6 -0
  194. package/dist/charts/engine/orderbook/index.js +6 -0
  195. package/dist/charts/engine/orderbook/ladder.cjs +2 -0
  196. package/dist/charts/engine/orderbook/ladder.cjs.map +1 -0
  197. package/dist/charts/engine/orderbook/ladder.d.cts +6 -0
  198. package/dist/charts/engine/orderbook/ladder.d.ts +6 -0
  199. package/dist/charts/engine/orderbook/ladder.js +341 -0
  200. package/dist/charts/engine/orderbook/ladder.js.map +1 -0
  201. package/dist/charts/engine/orderbook/layout.cjs +2 -0
  202. package/dist/charts/engine/orderbook/layout.cjs.map +1 -0
  203. package/dist/charts/engine/orderbook/layout.d.cts +37 -0
  204. package/dist/charts/engine/orderbook/layout.d.ts +37 -0
  205. package/dist/charts/engine/orderbook/layout.js +70 -0
  206. package/dist/charts/engine/orderbook/layout.js.map +1 -0
  207. package/dist/charts/engine/orderbook/tape.cjs +2 -0
  208. package/dist/charts/engine/orderbook/tape.cjs.map +1 -0
  209. package/dist/charts/engine/orderbook/tape.d.cts +6 -0
  210. package/dist/charts/engine/orderbook/tape.d.ts +6 -0
  211. package/dist/charts/engine/orderbook/tape.js +450 -0
  212. package/dist/charts/engine/orderbook/tape.js.map +1 -0
  213. package/dist/charts/engine/orderbook/types.d.cts +751 -0
  214. package/dist/charts/engine/orderbook/types.d.ts +751 -0
  215. package/dist/charts/engine/overlay.cjs +1 -1
  216. package/dist/charts/engine/overlay.cjs.map +1 -1
  217. package/dist/charts/engine/overlay.d.cts +28 -2
  218. package/dist/charts/engine/overlay.d.ts +28 -2
  219. package/dist/charts/engine/overlay.js +138 -96
  220. package/dist/charts/engine/overlay.js.map +1 -1
  221. package/dist/charts/engine/presets.cjs +2 -2
  222. package/dist/charts/engine/presets.cjs.map +1 -1
  223. package/dist/charts/engine/presets.d.cts +273 -3
  224. package/dist/charts/engine/presets.d.ts +273 -3
  225. package/dist/charts/engine/presets.js +390 -38
  226. package/dist/charts/engine/presets.js.map +1 -1
  227. package/dist/charts/engine/renderers/detect.cjs +1 -1
  228. package/dist/charts/engine/renderers/detect.cjs.map +1 -1
  229. package/dist/charts/engine/renderers/detect.d.cts +2 -1
  230. package/dist/charts/engine/renderers/detect.d.ts +2 -1
  231. package/dist/charts/engine/renderers/detect.js +24 -19
  232. package/dist/charts/engine/renderers/detect.js.map +1 -1
  233. package/dist/charts/engine/renderers/gl.cjs +2 -0
  234. package/dist/charts/engine/renderers/gl.cjs.map +1 -0
  235. package/dist/charts/engine/renderers/gl.d.cts +21 -0
  236. package/dist/charts/engine/renderers/gl.d.ts +21 -0
  237. package/dist/charts/engine/renderers/gl.js +56 -0
  238. package/dist/charts/engine/renderers/gl.js.map +1 -0
  239. package/dist/charts/engine/renderers/shaders.cjs +143 -1
  240. package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
  241. package/dist/charts/engine/renderers/shaders.d.cts +16 -0
  242. package/dist/charts/engine/renderers/shaders.d.ts +16 -0
  243. package/dist/charts/engine/renderers/shaders.js +139 -1
  244. package/dist/charts/engine/renderers/shaders.js.map +1 -1
  245. package/dist/charts/engine/renderers/webgl.cjs +2 -0
  246. package/dist/charts/engine/renderers/webgl.cjs.map +1 -0
  247. package/dist/charts/engine/renderers/webgl.d.cts +4 -0
  248. package/dist/charts/engine/renderers/webgl.d.ts +4 -0
  249. package/dist/charts/engine/renderers/webgl.js +133 -0
  250. package/dist/charts/engine/renderers/webgl.js.map +1 -0
  251. package/dist/charts/engine/renderers/webgl2.cjs +1 -1
  252. package/dist/charts/engine/renderers/webgl2.cjs.map +1 -1
  253. package/dist/charts/engine/renderers/webgl2.d.cts +0 -1
  254. package/dist/charts/engine/renderers/webgl2.d.ts +0 -1
  255. package/dist/charts/engine/renderers/webgl2.js +59 -108
  256. package/dist/charts/engine/renderers/webgl2.js.map +1 -1
  257. package/dist/charts/engine/scale.cjs +1 -1
  258. package/dist/charts/engine/scale.cjs.map +1 -1
  259. package/dist/charts/engine/scale.js +1 -1
  260. package/dist/charts/engine/scale.js.map +1 -1
  261. package/dist/charts/engine/scene.cjs +1 -1
  262. package/dist/charts/engine/scene.cjs.map +1 -1
  263. package/dist/charts/engine/scene.d.cts +71 -8
  264. package/dist/charts/engine/scene.d.ts +71 -8
  265. package/dist/charts/engine/scene.js +465 -183
  266. package/dist/charts/engine/scene.js.map +1 -1
  267. package/dist/charts/engine/shapes/bullet.cjs +2 -0
  268. package/dist/charts/engine/shapes/bullet.cjs.map +1 -0
  269. package/dist/charts/engine/shapes/bullet.d.cts +6 -0
  270. package/dist/charts/engine/shapes/bullet.d.ts +6 -0
  271. package/dist/charts/engine/shapes/bullet.js +255 -0
  272. package/dist/charts/engine/shapes/bullet.js.map +1 -0
  273. package/dist/charts/engine/shapes/calendar.cjs +2 -0
  274. package/dist/charts/engine/shapes/calendar.cjs.map +1 -0
  275. package/dist/charts/engine/shapes/calendar.d.cts +38 -0
  276. package/dist/charts/engine/shapes/calendar.d.ts +38 -0
  277. package/dist/charts/engine/shapes/calendar.js +369 -0
  278. package/dist/charts/engine/shapes/calendar.js.map +1 -0
  279. package/dist/charts/engine/shapes/canvas.cjs +1 -1
  280. package/dist/charts/engine/shapes/canvas.cjs.map +1 -1
  281. package/dist/charts/engine/shapes/canvas.d.cts +7 -0
  282. package/dist/charts/engine/shapes/canvas.d.ts +7 -0
  283. package/dist/charts/engine/shapes/canvas.js +22 -13
  284. package/dist/charts/engine/shapes/canvas.js.map +1 -1
  285. package/dist/charts/engine/shapes/chart.cjs +1 -1
  286. package/dist/charts/engine/shapes/chart.cjs.map +1 -1
  287. package/dist/charts/engine/shapes/chart.d.cts +3 -2
  288. package/dist/charts/engine/shapes/chart.d.ts +3 -2
  289. package/dist/charts/engine/shapes/chart.js +49 -27
  290. package/dist/charts/engine/shapes/chart.js.map +1 -1
  291. package/dist/charts/engine/shapes/chord.cjs +2 -0
  292. package/dist/charts/engine/shapes/chord.cjs.map +1 -0
  293. package/dist/charts/engine/shapes/chord.d.cts +18 -0
  294. package/dist/charts/engine/shapes/chord.d.ts +18 -0
  295. package/dist/charts/engine/shapes/chord.js +414 -0
  296. package/dist/charts/engine/shapes/chord.js.map +1 -0
  297. package/dist/charts/engine/shapes/draw.cjs +1 -1
  298. package/dist/charts/engine/shapes/draw.cjs.map +1 -1
  299. package/dist/charts/engine/shapes/draw.d.cts +7 -1
  300. package/dist/charts/engine/shapes/draw.d.ts +7 -1
  301. package/dist/charts/engine/shapes/draw.js +62 -19
  302. package/dist/charts/engine/shapes/draw.js.map +1 -1
  303. package/dist/charts/engine/shapes/funnel.cjs +1 -1
  304. package/dist/charts/engine/shapes/funnel.cjs.map +1 -1
  305. package/dist/charts/engine/shapes/funnel.js +3 -3
  306. package/dist/charts/engine/shapes/funnel.js.map +1 -1
  307. package/dist/charts/engine/shapes/gauge.cjs +1 -1
  308. package/dist/charts/engine/shapes/gauge.cjs.map +1 -1
  309. package/dist/charts/engine/shapes/gauge.js +132 -95
  310. package/dist/charts/engine/shapes/gauge.js.map +1 -1
  311. package/dist/charts/engine/shapes/hit.cjs +1 -1
  312. package/dist/charts/engine/shapes/hit.cjs.map +1 -1
  313. package/dist/charts/engine/shapes/hit.d.cts +5 -1
  314. package/dist/charts/engine/shapes/hit.d.ts +5 -1
  315. package/dist/charts/engine/shapes/hit.js +89 -39
  316. package/dist/charts/engine/shapes/hit.js.map +1 -1
  317. package/dist/charts/engine/shapes/index.d.cts +6 -2
  318. package/dist/charts/engine/shapes/index.d.ts +6 -2
  319. package/dist/charts/engine/shapes/labels.cjs +2 -0
  320. package/dist/charts/engine/shapes/labels.cjs.map +1 -0
  321. package/dist/charts/engine/shapes/labels.d.cts +14 -0
  322. package/dist/charts/engine/shapes/labels.d.ts +14 -0
  323. package/dist/charts/engine/shapes/labels.js +154 -0
  324. package/dist/charts/engine/shapes/labels.js.map +1 -0
  325. package/dist/charts/engine/shapes/layout.cjs +2 -2
  326. package/dist/charts/engine/shapes/layout.cjs.map +1 -1
  327. package/dist/charts/engine/shapes/layout.d.cts +10 -3
  328. package/dist/charts/engine/shapes/layout.d.ts +10 -3
  329. package/dist/charts/engine/shapes/layout.js +239 -124
  330. package/dist/charts/engine/shapes/layout.js.map +1 -1
  331. package/dist/charts/engine/shapes/pie.cjs +1 -1
  332. package/dist/charts/engine/shapes/pie.cjs.map +1 -1
  333. package/dist/charts/engine/shapes/pie.js +2 -2
  334. package/dist/charts/engine/shapes/pie.js.map +1 -1
  335. package/dist/charts/engine/shapes/radar.cjs +1 -1
  336. package/dist/charts/engine/shapes/radar.cjs.map +1 -1
  337. package/dist/charts/engine/shapes/radar.d.cts +2 -2
  338. package/dist/charts/engine/shapes/radar.d.ts +2 -2
  339. package/dist/charts/engine/shapes/radar.js +50 -49
  340. package/dist/charts/engine/shapes/radar.js.map +1 -1
  341. package/dist/charts/engine/shapes/radialBar.cjs +2 -0
  342. package/dist/charts/engine/shapes/radialBar.cjs.map +1 -0
  343. package/dist/charts/engine/shapes/radialBar.d.cts +8 -0
  344. package/dist/charts/engine/shapes/radialBar.d.ts +8 -0
  345. package/dist/charts/engine/shapes/radialBar.js +155 -0
  346. package/dist/charts/engine/shapes/radialBar.js.map +1 -0
  347. package/dist/charts/engine/shapes/runtime.cjs +1 -1
  348. package/dist/charts/engine/shapes/runtime.cjs.map +1 -1
  349. package/dist/charts/engine/shapes/runtime.d.cts +9 -2
  350. package/dist/charts/engine/shapes/runtime.d.ts +9 -2
  351. package/dist/charts/engine/shapes/runtime.js +61 -51
  352. package/dist/charts/engine/shapes/runtime.js.map +1 -1
  353. package/dist/charts/engine/shapes/sankey.cjs +2 -0
  354. package/dist/charts/engine/shapes/sankey.cjs.map +1 -0
  355. package/dist/charts/engine/shapes/sankey.d.cts +29 -0
  356. package/dist/charts/engine/shapes/sankey.d.ts +29 -0
  357. package/dist/charts/engine/shapes/sankey.js +372 -0
  358. package/dist/charts/engine/shapes/sankey.js.map +1 -0
  359. package/dist/charts/engine/shapes/scene.cjs +1 -1
  360. package/dist/charts/engine/shapes/scene.cjs.map +1 -1
  361. package/dist/charts/engine/shapes/scene.d.cts +92 -8
  362. package/dist/charts/engine/shapes/scene.d.ts +92 -8
  363. package/dist/charts/engine/shapes/scene.js +76 -31
  364. package/dist/charts/engine/shapes/scene.js.map +1 -1
  365. package/dist/charts/engine/shapes/sunburst.cjs +2 -0
  366. package/dist/charts/engine/shapes/sunburst.cjs.map +1 -0
  367. package/dist/charts/engine/shapes/sunburst.d.cts +6 -0
  368. package/dist/charts/engine/shapes/sunburst.d.ts +6 -0
  369. package/dist/charts/engine/shapes/sunburst.js +261 -0
  370. package/dist/charts/engine/shapes/sunburst.js.map +1 -0
  371. package/dist/charts/engine/shapes/treemap.cjs +1 -1
  372. package/dist/charts/engine/shapes/treemap.cjs.map +1 -1
  373. package/dist/charts/engine/shapes/treemap.js +2 -2
  374. package/dist/charts/engine/shapes/treemap.js.map +1 -1
  375. package/dist/charts/engine/shapes/types.d.cts +550 -12
  376. package/dist/charts/engine/shapes/types.d.ts +550 -12
  377. package/dist/charts/engine/signature.cjs +1 -1
  378. package/dist/charts/engine/signature.cjs.map +1 -1
  379. package/dist/charts/engine/signature.js +1 -1
  380. package/dist/charts/engine/signature.js.map +1 -1
  381. package/dist/charts/engine/three-d/canvas2d.cjs +2 -0
  382. package/dist/charts/engine/three-d/canvas2d.cjs.map +1 -0
  383. package/dist/charts/engine/three-d/canvas2d.d.cts +7 -0
  384. package/dist/charts/engine/three-d/canvas2d.d.ts +7 -0
  385. package/dist/charts/engine/three-d/canvas2d.js +128 -0
  386. package/dist/charts/engine/three-d/canvas2d.js.map +1 -0
  387. package/dist/charts/engine/three-d/chart.cjs +2 -0
  388. package/dist/charts/engine/three-d/chart.cjs.map +1 -0
  389. package/dist/charts/engine/three-d/chart.d.cts +15 -0
  390. package/dist/charts/engine/three-d/chart.d.ts +15 -0
  391. package/dist/charts/engine/three-d/chart.js +621 -0
  392. package/dist/charts/engine/three-d/chart.js.map +1 -0
  393. package/dist/charts/engine/three-d/colormap.cjs +2 -0
  394. package/dist/charts/engine/three-d/colormap.cjs.map +1 -0
  395. package/dist/charts/engine/three-d/colormap.d.cts +16 -0
  396. package/dist/charts/engine/three-d/colormap.d.ts +16 -0
  397. package/dist/charts/engine/three-d/colormap.js +166 -0
  398. package/dist/charts/engine/three-d/colormap.js.map +1 -0
  399. package/dist/charts/engine/three-d/contours.cjs +2 -0
  400. package/dist/charts/engine/three-d/contours.cjs.map +1 -0
  401. package/dist/charts/engine/three-d/contours.d.cts +7 -0
  402. package/dist/charts/engine/three-d/contours.d.ts +7 -0
  403. package/dist/charts/engine/three-d/contours.js +47 -0
  404. package/dist/charts/engine/three-d/contours.js.map +1 -0
  405. package/dist/charts/engine/three-d/detect.cjs +2 -0
  406. package/dist/charts/engine/three-d/detect.cjs.map +1 -0
  407. package/dist/charts/engine/three-d/detect.d.cts +12 -0
  408. package/dist/charts/engine/three-d/detect.d.ts +12 -0
  409. package/dist/charts/engine/three-d/detect.js +37 -0
  410. package/dist/charts/engine/three-d/detect.js.map +1 -0
  411. package/dist/charts/engine/three-d/dom.cjs +2 -0
  412. package/dist/charts/engine/three-d/dom.cjs.map +1 -0
  413. package/dist/charts/engine/three-d/dom.d.cts +21 -0
  414. package/dist/charts/engine/three-d/dom.d.ts +21 -0
  415. package/dist/charts/engine/three-d/dom.js +98 -0
  416. package/dist/charts/engine/three-d/dom.js.map +1 -0
  417. package/dist/charts/engine/three-d/geometry.cjs +2 -0
  418. package/dist/charts/engine/three-d/geometry.cjs.map +1 -0
  419. package/dist/charts/engine/three-d/geometry.d.cts +82 -0
  420. package/dist/charts/engine/three-d/geometry.d.ts +82 -0
  421. package/dist/charts/engine/three-d/geometry.js +545 -0
  422. package/dist/charts/engine/three-d/geometry.js.map +1 -0
  423. package/dist/charts/engine/three-d/hover.cjs +2 -0
  424. package/dist/charts/engine/three-d/hover.cjs.map +1 -0
  425. package/dist/charts/engine/three-d/hover.d.cts +25 -0
  426. package/dist/charts/engine/three-d/hover.d.ts +25 -0
  427. package/dist/charts/engine/three-d/hover.js +131 -0
  428. package/dist/charts/engine/three-d/hover.js.map +1 -0
  429. package/dist/charts/engine/three-d/index.cjs +1 -0
  430. package/dist/charts/engine/three-d/index.d.cts +2 -0
  431. package/dist/charts/engine/three-d/index.d.ts +2 -0
  432. package/dist/charts/engine/three-d/index.js +2 -0
  433. package/dist/charts/engine/three-d/labels.cjs +2 -0
  434. package/dist/charts/engine/three-d/labels.cjs.map +1 -0
  435. package/dist/charts/engine/three-d/labels.d.cts +23 -0
  436. package/dist/charts/engine/three-d/labels.d.ts +23 -0
  437. package/dist/charts/engine/three-d/labels.js +136 -0
  438. package/dist/charts/engine/three-d/labels.js.map +1 -0
  439. package/dist/charts/engine/three-d/math.cjs +2 -0
  440. package/dist/charts/engine/three-d/math.cjs.map +1 -0
  441. package/dist/charts/engine/three-d/math.d.cts +84 -0
  442. package/dist/charts/engine/three-d/math.d.ts +84 -0
  443. package/dist/charts/engine/three-d/math.js +150 -0
  444. package/dist/charts/engine/three-d/math.js.map +1 -0
  445. package/dist/charts/engine/three-d/model.cjs +2 -0
  446. package/dist/charts/engine/three-d/model.cjs.map +1 -0
  447. package/dist/charts/engine/three-d/model.d.cts +132 -0
  448. package/dist/charts/engine/three-d/model.d.ts +132 -0
  449. package/dist/charts/engine/three-d/model.js +279 -0
  450. package/dist/charts/engine/three-d/model.js.map +1 -0
  451. package/dist/charts/engine/three-d/overlay.cjs +2 -0
  452. package/dist/charts/engine/three-d/overlay.cjs.map +1 -0
  453. package/dist/charts/engine/three-d/overlay.d.cts +72 -0
  454. package/dist/charts/engine/three-d/overlay.d.ts +72 -0
  455. package/dist/charts/engine/three-d/overlay.js +204 -0
  456. package/dist/charts/engine/three-d/overlay.js.map +1 -0
  457. package/dist/charts/engine/three-d/pick.cjs +2 -0
  458. package/dist/charts/engine/three-d/pick.cjs.map +1 -0
  459. package/dist/charts/engine/three-d/pick.d.cts +52 -0
  460. package/dist/charts/engine/three-d/pick.d.ts +52 -0
  461. package/dist/charts/engine/three-d/pick.js +220 -0
  462. package/dist/charts/engine/three-d/pick.js.map +1 -0
  463. package/dist/charts/engine/three-d/render-types.cjs +2 -0
  464. package/dist/charts/engine/three-d/render-types.cjs.map +1 -0
  465. package/dist/charts/engine/three-d/render-types.d.cts +103 -0
  466. package/dist/charts/engine/three-d/render-types.d.ts +103 -0
  467. package/dist/charts/engine/three-d/render-types.js +12 -0
  468. package/dist/charts/engine/three-d/render-types.js.map +1 -0
  469. package/dist/charts/engine/three-d/shaders.cjs +311 -0
  470. package/dist/charts/engine/three-d/shaders.cjs.map +1 -0
  471. package/dist/charts/engine/three-d/shaders.d.cts +25 -0
  472. package/dist/charts/engine/three-d/shaders.d.ts +25 -0
  473. package/dist/charts/engine/three-d/shaders.js +210 -0
  474. package/dist/charts/engine/three-d/shaders.js.map +1 -0
  475. package/dist/charts/engine/three-d/sort.cjs +2 -0
  476. package/dist/charts/engine/three-d/sort.cjs.map +1 -0
  477. package/dist/charts/engine/three-d/sort.d.cts +29 -0
  478. package/dist/charts/engine/three-d/sort.d.ts +29 -0
  479. package/dist/charts/engine/three-d/sort.js +145 -0
  480. package/dist/charts/engine/three-d/sort.js.map +1 -0
  481. package/dist/charts/engine/three-d/types.d.cts +615 -0
  482. package/dist/charts/engine/three-d/types.d.ts +615 -0
  483. package/dist/charts/engine/three-d/webgl.cjs +2 -0
  484. package/dist/charts/engine/three-d/webgl.cjs.map +1 -0
  485. package/dist/charts/engine/three-d/webgl.d.cts +10 -0
  486. package/dist/charts/engine/three-d/webgl.d.ts +10 -0
  487. package/dist/charts/engine/three-d/webgl.js +132 -0
  488. package/dist/charts/engine/three-d/webgl.js.map +1 -0
  489. package/dist/charts/engine/three-d/webgpu.cjs +2 -0
  490. package/dist/charts/engine/three-d/webgpu.cjs.map +1 -0
  491. package/dist/charts/engine/three-d/webgpu.d.cts +5 -0
  492. package/dist/charts/engine/three-d/webgpu.d.ts +5 -0
  493. package/dist/charts/engine/three-d/webgpu.js +260 -0
  494. package/dist/charts/engine/three-d/webgpu.js.map +1 -0
  495. package/dist/charts/engine/time.cjs +1 -1
  496. package/dist/charts/engine/time.cjs.map +1 -1
  497. package/dist/charts/engine/time.d.cts +13 -4
  498. package/dist/charts/engine/time.d.ts +13 -4
  499. package/dist/charts/engine/time.js +156 -91
  500. package/dist/charts/engine/time.js.map +1 -1
  501. package/dist/charts/engine/trading/chart.cjs +2 -0
  502. package/dist/charts/engine/trading/chart.cjs.map +1 -0
  503. package/dist/charts/engine/trading/chart.d.cts +13 -0
  504. package/dist/charts/engine/trading/chart.d.ts +13 -0
  505. package/dist/charts/engine/trading/chart.js +2206 -0
  506. package/dist/charts/engine/trading/chart.js.map +1 -0
  507. package/dist/charts/engine/trading/drawings.cjs +3 -0
  508. package/dist/charts/engine/trading/drawings.cjs.map +1 -0
  509. package/dist/charts/engine/trading/drawings.d.cts +95 -0
  510. package/dist/charts/engine/trading/drawings.d.ts +95 -0
  511. package/dist/charts/engine/trading/drawings.js +423 -0
  512. package/dist/charts/engine/trading/drawings.js.map +1 -0
  513. package/dist/charts/engine/trading/format.cjs +2 -0
  514. package/dist/charts/engine/trading/format.cjs.map +1 -0
  515. package/dist/charts/engine/trading/format.d.cts +73 -0
  516. package/dist/charts/engine/trading/format.d.ts +73 -0
  517. package/dist/charts/engine/trading/format.js +163 -0
  518. package/dist/charts/engine/trading/format.js.map +1 -0
  519. package/dist/charts/engine/trading/geometry.cjs +2 -0
  520. package/dist/charts/engine/trading/geometry.cjs.map +1 -0
  521. package/dist/charts/engine/trading/geometry.d.cts +55 -0
  522. package/dist/charts/engine/trading/geometry.d.ts +55 -0
  523. package/dist/charts/engine/trading/geometry.js +131 -0
  524. package/dist/charts/engine/trading/geometry.js.map +1 -0
  525. package/dist/charts/engine/trading/index.cjs +1 -0
  526. package/dist/charts/engine/trading/index.d.cts +4 -0
  527. package/dist/charts/engine/trading/index.d.ts +4 -0
  528. package/dist/charts/engine/trading/index.js +4 -0
  529. package/dist/charts/engine/trading/indicators.cjs +2 -0
  530. package/dist/charts/engine/trading/indicators.cjs.map +1 -0
  531. package/dist/charts/engine/trading/indicators.d.cts +275 -0
  532. package/dist/charts/engine/trading/indicators.d.ts +275 -0
  533. package/dist/charts/engine/trading/indicators.js +544 -0
  534. package/dist/charts/engine/trading/indicators.js.map +1 -0
  535. package/dist/charts/engine/trading/labels.cjs +2 -0
  536. package/dist/charts/engine/trading/labels.cjs.map +1 -0
  537. package/dist/charts/engine/trading/labels.d.cts +7 -0
  538. package/dist/charts/engine/trading/labels.d.ts +7 -0
  539. package/dist/charts/engine/trading/labels.js +171 -0
  540. package/dist/charts/engine/trading/labels.js.map +1 -0
  541. package/dist/charts/engine/trading/scale.cjs +2 -0
  542. package/dist/charts/engine/trading/scale.cjs.map +1 -0
  543. package/dist/charts/engine/trading/scale.d.cts +46 -0
  544. package/dist/charts/engine/trading/scale.d.ts +46 -0
  545. package/dist/charts/engine/trading/scale.js +100 -0
  546. package/dist/charts/engine/trading/scale.js.map +1 -0
  547. package/dist/charts/engine/trading/store.cjs +2 -0
  548. package/dist/charts/engine/trading/store.cjs.map +1 -0
  549. package/dist/charts/engine/trading/store.d.cts +83 -0
  550. package/dist/charts/engine/trading/store.d.ts +83 -0
  551. package/dist/charts/engine/trading/store.js +150 -0
  552. package/dist/charts/engine/trading/store.js.map +1 -0
  553. package/dist/charts/engine/trading/studies.cjs +2 -0
  554. package/dist/charts/engine/trading/studies.cjs.map +1 -0
  555. package/dist/charts/engine/trading/studies.d.cts +85 -0
  556. package/dist/charts/engine/trading/studies.d.ts +85 -0
  557. package/dist/charts/engine/trading/studies.js +510 -0
  558. package/dist/charts/engine/trading/studies.js.map +1 -0
  559. package/dist/charts/engine/trading/sync.cjs +2 -0
  560. package/dist/charts/engine/trading/sync.cjs.map +1 -0
  561. package/dist/charts/engine/trading/sync.d.cts +8 -0
  562. package/dist/charts/engine/trading/sync.d.ts +8 -0
  563. package/dist/charts/engine/trading/sync.js +25 -0
  564. package/dist/charts/engine/trading/sync.js.map +1 -0
  565. package/dist/charts/engine/trading/types.d.cts +1131 -0
  566. package/dist/charts/engine/trading/types.d.ts +1131 -0
  567. package/dist/charts/engine/types.d.cts +247 -22
  568. package/dist/charts/engine/types.d.ts +247 -22
  569. package/dist/charts/index.cjs +1 -1
  570. package/dist/charts/index.d.cts +8 -4
  571. package/dist/charts/index.d.ts +8 -4
  572. package/dist/charts/index.js +30 -11
  573. package/dist/charts/react/Chart.cjs +1 -1
  574. package/dist/charts/react/Chart.cjs.map +1 -1
  575. package/dist/charts/react/Chart.d.cts +4 -4
  576. package/dist/charts/react/Chart.d.ts +4 -4
  577. package/dist/charts/react/Chart.js +5 -1
  578. package/dist/charts/react/Chart.js.map +1 -1
  579. package/dist/charts/react/charts.cjs +1 -1
  580. package/dist/charts/react/charts.cjs.map +1 -1
  581. package/dist/charts/react/charts.d.cts +39 -1
  582. package/dist/charts/react/charts.d.ts +39 -1
  583. package/dist/charts/react/charts.js +312 -128
  584. package/dist/charts/react/charts.js.map +1 -1
  585. package/dist/charts/react/graph.cjs +2 -0
  586. package/dist/charts/react/graph.cjs.map +1 -0
  587. package/dist/charts/react/graph.d.cts +213 -0
  588. package/dist/charts/react/graph.d.ts +213 -0
  589. package/dist/charts/react/graph.js +159 -0
  590. package/dist/charts/react/graph.js.map +1 -0
  591. package/dist/charts/react/orderbook.cjs +2 -0
  592. package/dist/charts/react/orderbook.cjs.map +1 -0
  593. package/dist/charts/react/orderbook.d.cts +142 -0
  594. package/dist/charts/react/orderbook.d.ts +142 -0
  595. package/dist/charts/react/orderbook.js +182 -0
  596. package/dist/charts/react/orderbook.js.map +1 -0
  597. package/dist/charts/react/shapes.cjs +1 -1
  598. package/dist/charts/react/shapes.cjs.map +1 -1
  599. package/dist/charts/react/shapes.d.cts +374 -9
  600. package/dist/charts/react/shapes.d.ts +374 -9
  601. package/dist/charts/react/shapes.js +323 -93
  602. package/dist/charts/react/shapes.js.map +1 -1
  603. package/dist/charts/react/three-d.cjs +2 -0
  604. package/dist/charts/react/three-d.cjs.map +1 -0
  605. package/dist/charts/react/three-d.d.cts +151 -0
  606. package/dist/charts/react/three-d.d.ts +151 -0
  607. package/dist/charts/react/three-d.js +154 -0
  608. package/dist/charts/react/three-d.js.map +1 -0
  609. package/dist/charts/react/trading.cjs +2 -0
  610. package/dist/charts/react/trading.cjs.map +1 -0
  611. package/dist/charts/react/trading.d.cts +145 -0
  612. package/dist/charts/react/trading.d.ts +145 -0
  613. package/dist/charts/react/trading.js +126 -0
  614. package/dist/charts/react/trading.js.map +1 -0
  615. package/dist/charts/react/types.d.cts +143 -8
  616. package/dist/charts/react/types.d.ts +143 -8
  617. package/dist/core/contracts.cjs +1 -1
  618. package/dist/core/contracts.cjs.map +1 -1
  619. package/dist/core/contracts.js +1 -1
  620. package/dist/core/contracts.js.map +1 -1
  621. package/dist/native/charts/src/canvas.cjs +1 -1
  622. package/dist/native/charts/src/canvas.js +9 -3
  623. package/dist/native/charts/src/engine/axis.cjs +1 -1
  624. package/dist/native/charts/src/engine/axis.cjs.map +1 -1
  625. package/dist/native/charts/src/engine/axis.js +43 -20
  626. package/dist/native/charts/src/engine/axis.js.map +1 -1
  627. package/dist/native/charts/src/engine/color.cjs +1 -1
  628. package/dist/native/charts/src/engine/color.cjs.map +1 -1
  629. package/dist/native/charts/src/engine/color.js +47 -5
  630. package/dist/native/charts/src/engine/color.js.map +1 -1
  631. package/dist/native/charts/src/engine/controller.cjs +2 -2
  632. package/dist/native/charts/src/engine/controller.cjs.map +1 -1
  633. package/dist/native/charts/src/engine/controller.js +415 -308
  634. package/dist/native/charts/src/engine/controller.js.map +1 -1
  635. package/dist/native/charts/src/engine/data.cjs +1 -1
  636. package/dist/native/charts/src/engine/data.cjs.map +1 -1
  637. package/dist/native/charts/src/engine/data.js +65 -49
  638. package/dist/native/charts/src/engine/data.js.map +1 -1
  639. package/dist/native/charts/src/engine/format.cjs +1 -1
  640. package/dist/native/charts/src/engine/format.cjs.map +1 -1
  641. package/dist/native/charts/src/engine/format.js +59 -21
  642. package/dist/native/charts/src/engine/format.js.map +1 -1
  643. package/dist/native/charts/src/engine/labels.cjs +2 -0
  644. package/dist/native/charts/src/engine/labels.cjs.map +1 -0
  645. package/dist/native/charts/src/engine/labels.js +98 -0
  646. package/dist/native/charts/src/engine/labels.js.map +1 -0
  647. package/dist/native/charts/src/engine/layout.cjs +1 -1
  648. package/dist/native/charts/src/engine/layout.cjs.map +1 -1
  649. package/dist/native/charts/src/engine/layout.js +62 -12
  650. package/dist/native/charts/src/engine/layout.js.map +1 -1
  651. package/dist/native/charts/src/engine/locale.cjs +2 -0
  652. package/dist/native/charts/src/engine/locale.cjs.map +1 -0
  653. package/dist/native/charts/src/engine/locale.js +60 -0
  654. package/dist/native/charts/src/engine/locale.js.map +1 -0
  655. package/dist/native/charts/src/engine/model.cjs +1 -1
  656. package/dist/native/charts/src/engine/model.cjs.map +1 -1
  657. package/dist/native/charts/src/engine/model.js +307 -119
  658. package/dist/native/charts/src/engine/model.js.map +1 -1
  659. package/dist/native/charts/src/engine/overlay.cjs +1 -1
  660. package/dist/native/charts/src/engine/overlay.cjs.map +1 -1
  661. package/dist/native/charts/src/engine/overlay.js +46 -23
  662. package/dist/native/charts/src/engine/overlay.js.map +1 -1
  663. package/dist/native/charts/src/engine/presets.cjs +2 -2
  664. package/dist/native/charts/src/engine/presets.cjs.map +1 -1
  665. package/dist/native/charts/src/engine/presets.js +470 -41
  666. package/dist/native/charts/src/engine/presets.js.map +1 -1
  667. package/dist/native/charts/src/engine/scale.cjs +1 -1
  668. package/dist/native/charts/src/engine/scale.cjs.map +1 -1
  669. package/dist/native/charts/src/engine/scale.js +1 -1
  670. package/dist/native/charts/src/engine/scale.js.map +1 -1
  671. package/dist/native/charts/src/engine/scene.cjs +1 -1
  672. package/dist/native/charts/src/engine/scene.cjs.map +1 -1
  673. package/dist/native/charts/src/engine/scene.js +489 -207
  674. package/dist/native/charts/src/engine/scene.js.map +1 -1
  675. package/dist/native/charts/src/engine/shapes/bullet.cjs +2 -0
  676. package/dist/native/charts/src/engine/shapes/bullet.cjs.map +1 -0
  677. package/dist/native/charts/src/engine/shapes/bullet.js +255 -0
  678. package/dist/native/charts/src/engine/shapes/bullet.js.map +1 -0
  679. package/dist/native/charts/src/engine/shapes/calendar.cjs +2 -0
  680. package/dist/native/charts/src/engine/shapes/calendar.cjs.map +1 -0
  681. package/dist/native/charts/src/engine/shapes/calendar.js +369 -0
  682. package/dist/native/charts/src/engine/shapes/calendar.js.map +1 -0
  683. package/dist/native/charts/src/engine/shapes/canvas.cjs +2 -0
  684. package/dist/native/charts/src/engine/shapes/canvas.cjs.map +1 -0
  685. package/dist/native/charts/src/engine/shapes/canvas.js +168 -0
  686. package/dist/native/charts/src/engine/shapes/canvas.js.map +1 -0
  687. package/dist/native/charts/src/engine/shapes/chord.cjs +2 -0
  688. package/dist/native/charts/src/engine/shapes/chord.cjs.map +1 -0
  689. package/dist/native/charts/src/engine/shapes/chord.js +414 -0
  690. package/dist/native/charts/src/engine/shapes/chord.js.map +1 -0
  691. package/dist/native/charts/src/engine/shapes/draw.cjs +2 -0
  692. package/dist/native/charts/src/engine/shapes/draw.cjs.map +1 -0
  693. package/dist/native/charts/src/engine/shapes/draw.js +195 -0
  694. package/dist/native/charts/src/engine/shapes/draw.js.map +1 -0
  695. package/dist/native/charts/src/engine/shapes/funnel.cjs +2 -0
  696. package/dist/native/charts/src/engine/shapes/funnel.cjs.map +1 -0
  697. package/dist/native/charts/src/engine/shapes/funnel.js +149 -0
  698. package/dist/native/charts/src/engine/shapes/funnel.js.map +1 -0
  699. package/dist/native/charts/src/engine/shapes/gauge.cjs +2 -0
  700. package/dist/native/charts/src/engine/shapes/gauge.cjs.map +1 -0
  701. package/dist/native/charts/src/engine/shapes/gauge.js +210 -0
  702. package/dist/native/charts/src/engine/shapes/gauge.js.map +1 -0
  703. package/dist/native/charts/src/engine/shapes/hit.cjs +2 -0
  704. package/dist/native/charts/src/engine/shapes/hit.cjs.map +1 -0
  705. package/dist/native/charts/src/engine/shapes/hit.js +135 -0
  706. package/dist/native/charts/src/engine/shapes/hit.js.map +1 -0
  707. package/dist/native/charts/src/engine/shapes/labels.cjs +2 -0
  708. package/dist/native/charts/src/engine/shapes/labels.cjs.map +1 -0
  709. package/dist/native/charts/src/engine/shapes/labels.js +154 -0
  710. package/dist/native/charts/src/engine/shapes/labels.js.map +1 -0
  711. package/dist/native/charts/src/engine/shapes/layout.cjs +3 -0
  712. package/dist/native/charts/src/engine/shapes/layout.cjs.map +1 -0
  713. package/dist/native/charts/src/engine/shapes/layout.js +358 -0
  714. package/dist/native/charts/src/engine/shapes/layout.js.map +1 -0
  715. package/dist/native/charts/src/engine/shapes/pie.cjs +2 -0
  716. package/dist/native/charts/src/engine/shapes/pie.cjs.map +1 -0
  717. package/dist/native/charts/src/engine/shapes/pie.js +302 -0
  718. package/dist/native/charts/src/engine/shapes/pie.js.map +1 -0
  719. package/dist/native/charts/src/engine/shapes/radar.cjs +2 -0
  720. package/dist/native/charts/src/engine/shapes/radar.cjs.map +1 -0
  721. package/dist/native/charts/src/engine/shapes/radar.js +198 -0
  722. package/dist/native/charts/src/engine/shapes/radar.js.map +1 -0
  723. package/dist/native/charts/src/engine/shapes/radialBar.cjs +2 -0
  724. package/dist/native/charts/src/engine/shapes/radialBar.cjs.map +1 -0
  725. package/dist/native/charts/src/engine/shapes/radialBar.js +155 -0
  726. package/dist/native/charts/src/engine/shapes/radialBar.js.map +1 -0
  727. package/dist/native/charts/src/engine/shapes/runtime.cjs +2 -0
  728. package/dist/native/charts/src/engine/shapes/runtime.cjs.map +1 -0
  729. package/dist/native/charts/src/engine/shapes/runtime.js +107 -0
  730. package/dist/native/charts/src/engine/shapes/runtime.js.map +1 -0
  731. package/dist/native/charts/src/engine/shapes/sankey.cjs +2 -0
  732. package/dist/native/charts/src/engine/shapes/sankey.cjs.map +1 -0
  733. package/dist/native/charts/src/engine/shapes/sankey.js +372 -0
  734. package/dist/native/charts/src/engine/shapes/sankey.js.map +1 -0
  735. package/dist/native/charts/src/engine/shapes/scene.cjs +2 -0
  736. package/dist/native/charts/src/engine/shapes/scene.cjs.map +1 -0
  737. package/dist/native/charts/src/engine/shapes/scene.js +168 -0
  738. package/dist/native/charts/src/engine/shapes/scene.js.map +1 -0
  739. package/dist/native/charts/src/engine/shapes/sunburst.cjs +2 -0
  740. package/dist/native/charts/src/engine/shapes/sunburst.cjs.map +1 -0
  741. package/dist/native/charts/src/engine/shapes/sunburst.js +261 -0
  742. package/dist/native/charts/src/engine/shapes/sunburst.js.map +1 -0
  743. package/dist/native/charts/src/engine/shapes/treemap.cjs +2 -0
  744. package/dist/native/charts/src/engine/shapes/treemap.cjs.map +1 -0
  745. package/dist/native/charts/src/engine/shapes/treemap.js +213 -0
  746. package/dist/native/charts/src/engine/shapes/treemap.js.map +1 -0
  747. package/dist/native/charts/src/engine/time.cjs +1 -1
  748. package/dist/native/charts/src/engine/time.cjs.map +1 -1
  749. package/dist/native/charts/src/engine/time.js +156 -91
  750. package/dist/native/charts/src/engine/time.js.map +1 -1
  751. package/dist/native/components/Chart/ChartBase.cjs +1 -1
  752. package/dist/native/components/Chart/ChartBase.cjs.map +1 -1
  753. package/dist/native/components/Chart/ChartBase.d.cts +1 -1
  754. package/dist/native/components/Chart/ChartBase.d.ts +1 -1
  755. package/dist/native/components/Chart/ChartBase.js +110 -107
  756. package/dist/native/components/Chart/ChartBase.js.map +1 -1
  757. package/dist/native/components/Chart/charts.cjs +1 -1
  758. package/dist/native/components/Chart/charts.cjs.map +1 -1
  759. package/dist/native/components/Chart/charts.d.cts +6 -1
  760. package/dist/native/components/Chart/charts.d.ts +6 -1
  761. package/dist/native/components/Chart/charts.js +53 -29
  762. package/dist/native/components/Chart/charts.js.map +1 -1
  763. package/dist/native/components/Chart/index.cjs +1 -1
  764. package/dist/native/components/Chart/index.d.cts +1 -1
  765. package/dist/native/components/Chart/index.d.ts +1 -1
  766. package/dist/native/components/Chart/index.js +2 -2
  767. package/dist/native/components/Chart/scene.cjs +1 -1
  768. package/dist/native/components/Chart/scene.cjs.map +1 -1
  769. package/dist/native/components/Chart/scene.js +315 -229
  770. package/dist/native/components/Chart/scene.js.map +1 -1
  771. package/dist/native/components/Chart/types.d.cts +26 -3
  772. package/dist/native/components/Chart/types.d.ts +26 -3
  773. package/dist/native/components/Charts/charts.cjs +2 -0
  774. package/dist/native/components/Charts/charts.cjs.map +1 -0
  775. package/dist/native/components/Charts/charts.d.cts +41 -0
  776. package/dist/native/components/Charts/charts.d.ts +41 -0
  777. package/dist/native/components/Charts/charts.js +350 -0
  778. package/dist/native/components/Charts/charts.js.map +1 -0
  779. package/dist/native/components/Charts/index.cjs +1 -0
  780. package/dist/native/components/Charts/index.d.cts +2 -0
  781. package/dist/native/components/Charts/index.d.ts +2 -0
  782. package/dist/native/components/Charts/index.js +2 -0
  783. package/dist/native/components/Charts/types.d.cts +155 -0
  784. package/dist/native/components/Charts/types.d.ts +155 -0
  785. package/dist/native/components/ShapeChart/ShapeChartBase.cjs +2 -0
  786. package/dist/native/components/ShapeChart/ShapeChartBase.cjs.map +1 -0
  787. package/dist/native/components/ShapeChart/ShapeChartBase.d.cts +24 -0
  788. package/dist/native/components/ShapeChart/ShapeChartBase.d.ts +24 -0
  789. package/dist/native/components/ShapeChart/ShapeChartBase.js +272 -0
  790. package/dist/native/components/ShapeChart/ShapeChartBase.js.map +1 -0
  791. package/dist/native/components/ShapeChart/charts.cjs +2 -0
  792. package/dist/native/components/ShapeChart/charts.cjs.map +1 -0
  793. package/dist/native/components/ShapeChart/charts.d.cts +43 -0
  794. package/dist/native/components/ShapeChart/charts.d.ts +43 -0
  795. package/dist/native/components/ShapeChart/charts.js +429 -0
  796. package/dist/native/components/ShapeChart/charts.js.map +1 -0
  797. package/dist/native/components/ShapeChart/draw.cjs +2 -0
  798. package/dist/native/components/ShapeChart/draw.cjs.map +1 -0
  799. package/dist/native/components/ShapeChart/draw.d.cts +4 -0
  800. package/dist/native/components/ShapeChart/draw.d.ts +4 -0
  801. package/dist/native/components/ShapeChart/draw.js +113 -0
  802. package/dist/native/components/ShapeChart/draw.js.map +1 -0
  803. package/dist/native/components/ShapeChart/geometry.cjs +2 -0
  804. package/dist/native/components/ShapeChart/geometry.cjs.map +1 -0
  805. package/dist/native/components/ShapeChart/geometry.d.cts +71 -0
  806. package/dist/native/components/ShapeChart/geometry.d.ts +71 -0
  807. package/dist/native/components/ShapeChart/geometry.js +681 -0
  808. package/dist/native/components/ShapeChart/geometry.js.map +1 -0
  809. package/dist/native/components/ShapeChart/index.cjs +1 -0
  810. package/dist/native/components/ShapeChart/index.d.cts +2 -0
  811. package/dist/native/components/ShapeChart/index.d.ts +2 -0
  812. package/dist/native/components/ShapeChart/index.js +2 -0
  813. package/dist/native/components/ShapeChart/recorder.cjs +2 -0
  814. package/dist/native/components/ShapeChart/recorder.cjs.map +1 -0
  815. package/dist/native/components/ShapeChart/recorder.d.cts +115 -0
  816. package/dist/native/components/ShapeChart/recorder.d.ts +115 -0
  817. package/dist/native/components/ShapeChart/recorder.js +583 -0
  818. package/dist/native/components/ShapeChart/recorder.js.map +1 -0
  819. package/dist/native/components/ShapeChart/types.d.cts +594 -0
  820. package/dist/native/components/ShapeChart/types.d.ts +594 -0
  821. package/dist/native/index.cjs +1 -1
  822. package/dist/native/index.d.cts +2 -0
  823. package/dist/native/index.d.ts +2 -0
  824. package/dist/native/index.js +14 -10
  825. package/dist/native/manifest.d.cts +6 -4
  826. package/dist/native/manifest.d.ts +6 -4
  827. package/dist/native/source/components/Chart/ChartBase.tsx +8 -1
  828. package/dist/native/source/components/Chart/charts.tsx +42 -6
  829. package/dist/native/source/components/Chart/index.ts +1 -0
  830. package/dist/native/source/components/Chart/scene.tsx +312 -98
  831. package/dist/native/source/components/Chart/types.ts +31 -1
  832. package/dist/native/source/components/Charts/charts.tsx +521 -0
  833. package/dist/native/source/components/Charts/index.ts +14 -0
  834. package/dist/native/source/components/Charts/types.ts +218 -0
  835. package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +486 -0
  836. package/dist/native/source/components/ShapeChart/charts.tsx +661 -0
  837. package/dist/native/source/components/ShapeChart/draw.tsx +201 -0
  838. package/dist/native/source/components/ShapeChart/geometry.ts +1366 -0
  839. package/dist/native/source/components/ShapeChart/index.ts +16 -0
  840. package/dist/native/source/components/ShapeChart/recorder.ts +845 -0
  841. package/dist/native/source/components/ShapeChart/types.ts +655 -0
  842. package/dist/native/source/index.ts +2 -0
  843. package/dist/native/source/manifest.ts +31 -4
  844. package/dist/taro/charts.d.ts +229 -4
  845. package/dist/taro/index.d.ts +1 -0
  846. package/dist/taro/index.js +8818 -2093
  847. package/dist/taro/manifest.d.ts +1 -0
  848. package/dist/taro/shape-charts.d.ts +629 -0
  849. package/dist/uni/AreaChart.vue +68 -0
  850. package/dist/uni/AreaChart.vue.d.ts +124 -0
  851. package/dist/uni/Badge.vue.d.ts +1 -1
  852. package/dist/uni/BarChart.vue.d.ts +5 -1
  853. package/dist/uni/BoxPlotChart.vue +66 -0
  854. package/dist/uni/BoxPlotChart.vue.d.ts +110 -0
  855. package/dist/uni/BubbleChart.vue +68 -0
  856. package/dist/uni/BubbleChart.vue.d.ts +110 -0
  857. package/dist/uni/BulletChart.vue +86 -0
  858. package/dist/uni/BulletChart.vue.d.ts +114 -0
  859. package/dist/uni/CalendarHeatmap.vue +92 -0
  860. package/dist/uni/CalendarHeatmap.vue.d.ts +131 -0
  861. package/dist/uni/CandlestickChart.vue +66 -0
  862. package/dist/uni/CandlestickChart.vue.d.ts +104 -0
  863. package/dist/uni/Chart.vue.d.ts +4 -0
  864. package/dist/uni/ChordChart.vue +93 -0
  865. package/dist/uni/ChordChart.vue.d.ts +136 -0
  866. package/dist/uni/DonutChart.vue +72 -0
  867. package/dist/uni/DonutChart.vue.d.ts +118 -0
  868. package/dist/uni/FunnelChart.vue +67 -0
  869. package/dist/uni/FunnelChart.vue.d.ts +108 -0
  870. package/dist/uni/GanttChart.vue +67 -0
  871. package/dist/uni/GanttChart.vue.d.ts +127 -0
  872. package/dist/uni/GaugeChart.vue +77 -0
  873. package/dist/uni/GaugeChart.vue.d.ts +127 -0
  874. package/dist/uni/HeatmapChart.vue +66 -0
  875. package/dist/uni/HeatmapChart.vue.d.ts +120 -0
  876. package/dist/uni/HistogramChart.vue +66 -0
  877. package/dist/uni/HistogramChart.vue.d.ts +125 -0
  878. package/dist/uni/HorizontalBarChart.vue +68 -0
  879. package/dist/uni/HorizontalBarChart.vue.d.ts +129 -0
  880. package/dist/uni/Input.vue.d.ts +1 -1
  881. package/dist/uni/LineChart.vue.d.ts +4 -0
  882. package/dist/uni/MixedChart.vue +68 -0
  883. package/dist/uni/MixedChart.vue.d.ts +110 -0
  884. package/dist/uni/NumberInput.vue.d.ts +1 -1
  885. package/dist/uni/PieChart.vue +72 -0
  886. package/dist/uni/PieChart.vue.d.ts +118 -0
  887. package/dist/uni/QuadrantChart.vue.d.ts +4 -0
  888. package/dist/uni/RadarChart.vue +67 -0
  889. package/dist/uni/RadarChart.vue.d.ts +114 -0
  890. package/dist/uni/RadialBarChart.vue +90 -0
  891. package/dist/uni/RadialBarChart.vue.d.ts +136 -0
  892. package/dist/uni/RangeAreaChart.vue +68 -0
  893. package/dist/uni/RangeAreaChart.vue.d.ts +106 -0
  894. package/dist/uni/ResponsiveGrid.vue.d.ts +1 -1
  895. package/dist/uni/SankeyChart.vue +88 -0
  896. package/dist/uni/SankeyChart.vue.d.ts +125 -0
  897. package/dist/uni/ScatterChart.vue.d.ts +4 -0
  898. package/dist/uni/ShapeChart.vue +73 -0
  899. package/dist/uni/ShapeChart.vue.d.ts +54 -0
  900. package/dist/uni/Sparkline.vue +58 -0
  901. package/dist/uni/Sparkline.vue.d.ts +81 -0
  902. package/dist/uni/SunburstChart.vue +90 -0
  903. package/dist/uni/SunburstChart.vue.d.ts +118 -0
  904. package/dist/uni/Textarea.vue.d.ts +1 -1
  905. package/dist/uni/TimePicker.vue.d.ts +1 -1
  906. package/dist/uni/ToastProvider.vue.d.ts +1 -1
  907. package/dist/uni/TreemapChart.vue +65 -0
  908. package/dist/uni/TreemapChart.vue.d.ts +104 -0
  909. package/dist/uni/WaterfallChart.vue +66 -0
  910. package/dist/uni/WaterfallChart.vue.d.ts +134 -0
  911. package/dist/uni/chart-canvas.d.ts +3 -0
  912. package/dist/uni/chart-canvas.js +4 -0
  913. package/dist/uni/chart-types.d.ts +240 -2
  914. package/dist/uni/chart-types.js +198 -0
  915. package/dist/uni/charts-canvas.js +8 -3
  916. package/dist/uni/index.d.ts +27 -1
  917. package/dist/uni/index.js +27 -1
  918. package/dist/uni/manifest.d.ts +279 -0
  919. package/dist/uni/manifest.js +397 -0
  920. package/dist/uni/named-chart-options.d.ts +95 -0
  921. package/dist/uni/named-chart-options.js +173 -0
  922. package/dist/uni/shape-chart-canvas.d.ts +53 -0
  923. package/dist/uni/shape-chart-canvas.js +333 -0
  924. package/dist/uni/shape-chart-types.d.ts +431 -0
  925. package/dist/uni/shape-chart-types.js +305 -0
  926. package/dist/vue/charts-global.d.ts +48 -0
  927. package/dist/vue/charts.d.ts +18 -0
  928. package/dist/vue/charts.js +56 -0
  929. package/dist/vue/charts.js.map +1 -0
  930. package/dist/vue/components/Chart/AreaChart.vue.d.ts +124 -0
  931. package/dist/vue/components/Chart/AreaChart.vue.js +7 -0
  932. package/dist/vue/components/Chart/AreaChart.vue.js.map +1 -0
  933. package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js +49 -0
  934. package/dist/vue/components/Chart/AreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  935. package/dist/vue/components/Chart/Bar3DChart.vue.d.ts +132 -0
  936. package/dist/vue/components/Chart/Bar3DChart.vue.js +7 -0
  937. package/dist/vue/components/Chart/Bar3DChart.vue.js.map +1 -0
  938. package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js +55 -0
  939. package/dist/vue/components/Chart/Bar3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  940. package/dist/vue/components/Chart/BarChart.vue.d.ts +123 -0
  941. package/dist/vue/components/Chart/BarChart.vue.js +7 -0
  942. package/dist/vue/components/Chart/BarChart.vue.js.map +1 -0
  943. package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js +53 -0
  944. package/dist/vue/components/Chart/BarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  945. package/dist/vue/components/Chart/BoxPlotChart.vue.d.ts +120 -0
  946. package/dist/vue/components/Chart/BoxPlotChart.vue.js +7 -0
  947. package/dist/vue/components/Chart/BoxPlotChart.vue.js.map +1 -0
  948. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js +63 -0
  949. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  950. package/dist/vue/components/Chart/BubbleChart.vue.d.ts +106 -0
  951. package/dist/vue/components/Chart/BubbleChart.vue.js +7 -0
  952. package/dist/vue/components/Chart/BubbleChart.vue.js.map +1 -0
  953. package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js +52 -0
  954. package/dist/vue/components/Chart/BubbleChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  955. package/dist/vue/components/Chart/BulletChart.vue.d.ts +117 -0
  956. package/dist/vue/components/Chart/BulletChart.vue.js +7 -0
  957. package/dist/vue/components/Chart/BulletChart.vue.js.map +1 -0
  958. package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js +64 -0
  959. package/dist/vue/components/Chart/BulletChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  960. package/dist/vue/components/Chart/CalendarHeatmap.vue.d.ts +144 -0
  961. package/dist/vue/components/Chart/CalendarHeatmap.vue.js +7 -0
  962. package/dist/vue/components/Chart/CalendarHeatmap.vue.js.map +1 -0
  963. package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js +77 -0
  964. package/dist/vue/components/Chart/CalendarHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
  965. package/dist/vue/components/Chart/CandlestickChart.vue.d.ts +94 -0
  966. package/dist/vue/components/Chart/CandlestickChart.vue.js +7 -0
  967. package/dist/vue/components/Chart/CandlestickChart.vue.js.map +1 -0
  968. package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js +44 -0
  969. package/dist/vue/components/Chart/CandlestickChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  970. package/dist/vue/components/Chart/Chart.vue.d.ts +103 -0
  971. package/dist/vue/components/Chart/Chart.vue.js +7 -0
  972. package/dist/vue/components/Chart/Chart.vue.js.map +1 -0
  973. package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js +47 -0
  974. package/dist/vue/components/Chart/Chart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  975. package/dist/vue/components/Chart/ChordChart.vue.d.ts +153 -0
  976. package/dist/vue/components/Chart/ChordChart.vue.js +7 -0
  977. package/dist/vue/components/Chart/ChordChart.vue.js.map +1 -0
  978. package/dist/vue/components/Chart/ChordChart.vue_vue_type_script_setup_true_lang.js +81 -0
  979. package/dist/vue/components/Chart/ChordChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  980. package/dist/vue/components/Chart/DependencyGraph.vue.d.ts +179 -0
  981. package/dist/vue/components/Chart/DependencyGraph.vue.js +7 -0
  982. package/dist/vue/components/Chart/DependencyGraph.vue.js.map +1 -0
  983. package/dist/vue/components/Chart/DependencyGraph.vue_vue_type_script_setup_true_lang.js +65 -0
  984. package/dist/vue/components/Chart/DependencyGraph.vue_vue_type_script_setup_true_lang.js.map +1 -0
  985. package/dist/vue/components/Chart/DepthChart.vue.d.ts +139 -0
  986. package/dist/vue/components/Chart/DepthChart.vue.js +7 -0
  987. package/dist/vue/components/Chart/DepthChart.vue.js.map +1 -0
  988. package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js +42 -0
  989. package/dist/vue/components/Chart/DepthChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  990. package/dist/vue/components/Chart/DonutChart.vue.d.ts +104 -0
  991. package/dist/vue/components/Chart/DonutChart.vue.js +7 -0
  992. package/dist/vue/components/Chart/DonutChart.vue.js.map +1 -0
  993. package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js +53 -0
  994. package/dist/vue/components/Chart/DonutChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  995. package/dist/vue/components/Chart/FunnelChart.vue.d.ts +105 -0
  996. package/dist/vue/components/Chart/FunnelChart.vue.js +7 -0
  997. package/dist/vue/components/Chart/FunnelChart.vue.js.map +1 -0
  998. package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js +58 -0
  999. package/dist/vue/components/Chart/FunnelChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1000. package/dist/vue/components/Chart/GanttChart.vue.d.ts +136 -0
  1001. package/dist/vue/components/Chart/GanttChart.vue.js +7 -0
  1002. package/dist/vue/components/Chart/GanttChart.vue.js.map +1 -0
  1003. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js +101 -0
  1004. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1005. package/dist/vue/components/Chart/GaugeChart.vue.d.ts +132 -0
  1006. package/dist/vue/components/Chart/GaugeChart.vue.js +7 -0
  1007. package/dist/vue/components/Chart/GaugeChart.vue.js.map +1 -0
  1008. package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js +71 -0
  1009. package/dist/vue/components/Chart/GaugeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1010. package/dist/vue/components/Chart/GraphChart.vue.d.ts +184 -0
  1011. package/dist/vue/components/Chart/GraphChart.vue.js +7 -0
  1012. package/dist/vue/components/Chart/GraphChart.vue.js.map +1 -0
  1013. package/dist/vue/components/Chart/GraphChart.vue_vue_type_script_setup_true_lang.js +62 -0
  1014. package/dist/vue/components/Chart/GraphChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1015. package/dist/vue/components/Chart/HeatmapChart.vue.d.ts +129 -0
  1016. package/dist/vue/components/Chart/HeatmapChart.vue.js +7 -0
  1017. package/dist/vue/components/Chart/HeatmapChart.vue.js.map +1 -0
  1018. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js +67 -0
  1019. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1020. package/dist/vue/components/Chart/HistogramChart.vue.d.ts +132 -0
  1021. package/dist/vue/components/Chart/HistogramChart.vue.js +7 -0
  1022. package/dist/vue/components/Chart/HistogramChart.vue.js.map +1 -0
  1023. package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js +66 -0
  1024. package/dist/vue/components/Chart/HistogramChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1025. package/dist/vue/components/Chart/HorizontalBarChart.vue.d.ts +121 -0
  1026. package/dist/vue/components/Chart/HorizontalBarChart.vue.js +7 -0
  1027. package/dist/vue/components/Chart/HorizontalBarChart.vue.js.map +1 -0
  1028. package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js +55 -0
  1029. package/dist/vue/components/Chart/HorizontalBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1030. package/dist/vue/components/Chart/Line3DChart.vue.d.ts +121 -0
  1031. package/dist/vue/components/Chart/Line3DChart.vue.js +7 -0
  1032. package/dist/vue/components/Chart/Line3DChart.vue.js.map +1 -0
  1033. package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
  1034. package/dist/vue/components/Chart/Line3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1035. package/dist/vue/components/Chart/LineChart.vue.d.ts +125 -0
  1036. package/dist/vue/components/Chart/LineChart.vue.js +7 -0
  1037. package/dist/vue/components/Chart/LineChart.vue.js.map +1 -0
  1038. package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js +50 -0
  1039. package/dist/vue/components/Chart/LineChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1040. package/dist/vue/components/Chart/MixedChart.vue.d.ts +103 -0
  1041. package/dist/vue/components/Chart/MixedChart.vue.js +7 -0
  1042. package/dist/vue/components/Chart/MixedChart.vue.js.map +1 -0
  1043. package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js +47 -0
  1044. package/dist/vue/components/Chart/MixedChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1045. package/dist/vue/components/Chart/OrderBook.vue.d.ts +125 -0
  1046. package/dist/vue/components/Chart/OrderBook.vue.js +7 -0
  1047. package/dist/vue/components/Chart/OrderBook.vue.js.map +1 -0
  1048. package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js +38 -0
  1049. package/dist/vue/components/Chart/OrderBook.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1050. package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +130 -0
  1051. package/dist/vue/components/Chart/OrderBookHeatmap.vue.js +7 -0
  1052. package/dist/vue/components/Chart/OrderBookHeatmap.vue.js.map +1 -0
  1053. package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js +46 -0
  1054. package/dist/vue/components/Chart/OrderBookHeatmap.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1055. package/dist/vue/components/Chart/PieChart.vue.d.ts +104 -0
  1056. package/dist/vue/components/Chart/PieChart.vue.js +7 -0
  1057. package/dist/vue/components/Chart/PieChart.vue.js.map +1 -0
  1058. package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js +53 -0
  1059. package/dist/vue/components/Chart/PieChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1060. package/dist/vue/components/Chart/QuadrantChart.vue.d.ts +186 -0
  1061. package/dist/vue/components/Chart/QuadrantChart.vue.js +7 -0
  1062. package/dist/vue/components/Chart/QuadrantChart.vue.js.map +1 -0
  1063. package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js +107 -0
  1064. package/dist/vue/components/Chart/QuadrantChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1065. package/dist/vue/components/Chart/RadarChart.vue.d.ts +111 -0
  1066. package/dist/vue/components/Chart/RadarChart.vue.js +7 -0
  1067. package/dist/vue/components/Chart/RadarChart.vue.js.map +1 -0
  1068. package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js +61 -0
  1069. package/dist/vue/components/Chart/RadarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1070. package/dist/vue/components/Chart/RadialBarChart.vue.d.ts +147 -0
  1071. package/dist/vue/components/Chart/RadialBarChart.vue.js +7 -0
  1072. package/dist/vue/components/Chart/RadialBarChart.vue.js.map +1 -0
  1073. package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js +78 -0
  1074. package/dist/vue/components/Chart/RadialBarChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1075. package/dist/vue/components/Chart/RangeAreaChart.vue.d.ts +106 -0
  1076. package/dist/vue/components/Chart/RangeAreaChart.vue.js +7 -0
  1077. package/dist/vue/components/Chart/RangeAreaChart.vue.js.map +1 -0
  1078. package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js +51 -0
  1079. package/dist/vue/components/Chart/RangeAreaChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1080. package/dist/vue/components/Chart/SankeyChart.vue.d.ts +132 -0
  1081. package/dist/vue/components/Chart/SankeyChart.vue.js +7 -0
  1082. package/dist/vue/components/Chart/SankeyChart.vue.js.map +1 -0
  1083. package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js +71 -0
  1084. package/dist/vue/components/Chart/SankeyChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1085. package/dist/vue/components/Chart/Scatter3DChart.vue.d.ts +121 -0
  1086. package/dist/vue/components/Chart/Scatter3DChart.vue.js +7 -0
  1087. package/dist/vue/components/Chart/Scatter3DChart.vue.js.map +1 -0
  1088. package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js +47 -0
  1089. package/dist/vue/components/Chart/Scatter3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1090. package/dist/vue/components/Chart/ScatterChart.vue.d.ts +94 -0
  1091. package/dist/vue/components/Chart/ScatterChart.vue.js +7 -0
  1092. package/dist/vue/components/Chart/ScatterChart.vue.js.map +1 -0
  1093. package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js +44 -0
  1094. package/dist/vue/components/Chart/ScatterChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1095. package/dist/vue/components/Chart/ShapeChart.vue.d.ts +39 -0
  1096. package/dist/vue/components/Chart/ShapeChart.vue.js +7 -0
  1097. package/dist/vue/components/Chart/ShapeChart.vue.js.map +1 -0
  1098. package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js +43 -0
  1099. package/dist/vue/components/Chart/ShapeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1100. package/dist/vue/components/Chart/Sparkline.vue.d.ts +90 -0
  1101. package/dist/vue/components/Chart/Sparkline.vue.js +7 -0
  1102. package/dist/vue/components/Chart/Sparkline.vue.js.map +1 -0
  1103. package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js +66 -0
  1104. package/dist/vue/components/Chart/Sparkline.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1105. package/dist/vue/components/Chart/SunburstChart.vue.d.ts +123 -0
  1106. package/dist/vue/components/Chart/SunburstChart.vue.js +7 -0
  1107. package/dist/vue/components/Chart/SunburstChart.vue.js.map +1 -0
  1108. package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js +68 -0
  1109. package/dist/vue/components/Chart/SunburstChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1110. package/dist/vue/components/Chart/Surface3DChart.vue.d.ts +143 -0
  1111. package/dist/vue/components/Chart/Surface3DChart.vue.js +7 -0
  1112. package/dist/vue/components/Chart/Surface3DChart.vue.js.map +1 -0
  1113. package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js +60 -0
  1114. package/dist/vue/components/Chart/Surface3DChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1115. package/dist/vue/components/Chart/TimeAndSales.vue.d.ts +116 -0
  1116. package/dist/vue/components/Chart/TimeAndSales.vue.js +7 -0
  1117. package/dist/vue/components/Chart/TimeAndSales.vue.js.map +1 -0
  1118. package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js +46 -0
  1119. package/dist/vue/components/Chart/TimeAndSales.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1120. package/dist/vue/components/Chart/TradingChart.vue.d.ts +208 -0
  1121. package/dist/vue/components/Chart/TradingChart.vue.js +7 -0
  1122. package/dist/vue/components/Chart/TradingChart.vue.js.map +1 -0
  1123. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js +101 -0
  1124. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1125. package/dist/vue/components/Chart/TreeChart.vue.d.ts +172 -0
  1126. package/dist/vue/components/Chart/TreeChart.vue.js +7 -0
  1127. package/dist/vue/components/Chart/TreeChart.vue.js.map +1 -0
  1128. package/dist/vue/components/Chart/TreeChart.vue_vue_type_script_setup_true_lang.js +56 -0
  1129. package/dist/vue/components/Chart/TreeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1130. package/dist/vue/components/Chart/TreemapChart.vue.d.ts +97 -0
  1131. package/dist/vue/components/Chart/TreemapChart.vue.js +7 -0
  1132. package/dist/vue/components/Chart/TreemapChart.vue.js.map +1 -0
  1133. package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js +54 -0
  1134. package/dist/vue/components/Chart/TreemapChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1135. package/dist/vue/components/Chart/WaterfallChart.vue.d.ts +143 -0
  1136. package/dist/vue/components/Chart/WaterfallChart.vue.js +7 -0
  1137. package/dist/vue/components/Chart/WaterfallChart.vue.js.map +1 -0
  1138. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js +74 -0
  1139. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  1140. package/dist/vue/components/Chart/cartesian.d.ts +47 -0
  1141. package/dist/vue/components/Chart/cartesian.js +56 -0
  1142. package/dist/vue/components/Chart/cartesian.js.map +1 -0
  1143. package/dist/vue/components/Chart/engine.d.ts +35 -0
  1144. package/dist/vue/components/Chart/engine.js +35 -0
  1145. package/dist/vue/components/Chart/engine.js.map +1 -0
  1146. package/dist/vue/components/Chart/graph.d.ts +153 -0
  1147. package/dist/vue/components/Chart/graph.js +135 -0
  1148. package/dist/vue/components/Chart/graph.js.map +1 -0
  1149. package/dist/vue/components/Chart/index.d.ts +45 -0
  1150. package/dist/vue/components/Chart/index.js +44 -0
  1151. package/dist/vue/components/Chart/orderbook.d.ts +363 -0
  1152. package/dist/vue/components/Chart/orderbook.js +128 -0
  1153. package/dist/vue/components/Chart/orderbook.js.map +1 -0
  1154. package/dist/vue/components/Chart/props.d.ts +188 -0
  1155. package/dist/vue/components/Chart/props.js +92 -0
  1156. package/dist/vue/components/Chart/props.js.map +1 -0
  1157. package/dist/vue/components/Chart/shape.d.ts +41 -0
  1158. package/dist/vue/components/Chart/shape.js +42 -0
  1159. package/dist/vue/components/Chart/shape.js.map +1 -0
  1160. package/dist/vue/components/Chart/three-d.d.ts +106 -0
  1161. package/dist/vue/components/Chart/three-d.js +88 -0
  1162. package/dist/vue/components/Chart/three-d.js.map +1 -0
  1163. package/dist/vue/components/Chart/trading.d.ts +127 -0
  1164. package/dist/vue/components/Chart/trading.js +63 -0
  1165. package/dist/vue/components/Chart/trading.js.map +1 -0
  1166. package/dist/vue/components/Chart/types.d.ts +209 -0
  1167. package/dist/vue/global.d.ts +2 -0
  1168. package/dist/vue/groups/charts.d.ts +1 -0
  1169. package/dist/vue/groups/charts.js +95 -0
  1170. package/dist/vue/groups/charts.js.map +1 -0
  1171. package/dist/vue/index.d.ts +1 -0
  1172. package/dist/vue/index.js +67 -23
  1173. package/dist/vue/internal/register.d.ts +7 -0
  1174. package/dist/vue/internal/register.js +14 -0
  1175. package/dist/vue/internal/register.js.map +1 -0
  1176. package/dist/vue/plugin.d.ts +9 -4
  1177. package/dist/vue/plugin.js +7 -10
  1178. package/dist/vue/plugin.js.map +1 -1
  1179. package/dist/weapp/area-chart/index.js +1 -0
  1180. package/dist/weapp/area-chart/index.json +1 -0
  1181. package/dist/weapp/area-chart/index.wxml +1 -0
  1182. package/dist/weapp/area-chart/index.wxss +1 -0
  1183. package/dist/weapp/box-plot-chart/index.js +1 -0
  1184. package/dist/weapp/box-plot-chart/index.json +1 -0
  1185. package/dist/weapp/box-plot-chart/index.wxml +1 -0
  1186. package/dist/weapp/box-plot-chart/index.wxss +1 -0
  1187. package/dist/weapp/bubble-chart/index.js +1 -0
  1188. package/dist/weapp/bubble-chart/index.json +1 -0
  1189. package/dist/weapp/bubble-chart/index.wxml +1 -0
  1190. package/dist/weapp/bubble-chart/index.wxss +1 -0
  1191. package/dist/weapp/bullet-chart/index.js +1 -0
  1192. package/dist/weapp/bullet-chart/index.json +1 -0
  1193. package/dist/weapp/bullet-chart/index.wxml +1 -0
  1194. package/dist/weapp/bullet-chart/index.wxss +1 -0
  1195. package/dist/weapp/calendar-heatmap/index.js +1 -0
  1196. package/dist/weapp/calendar-heatmap/index.json +1 -0
  1197. package/dist/weapp/calendar-heatmap/index.wxml +1 -0
  1198. package/dist/weapp/calendar-heatmap/index.wxss +1 -0
  1199. package/dist/weapp/candlestick-chart/index.js +1 -0
  1200. package/dist/weapp/candlestick-chart/index.json +1 -0
  1201. package/dist/weapp/candlestick-chart/index.wxml +1 -0
  1202. package/dist/weapp/candlestick-chart/index.wxss +1 -0
  1203. package/dist/weapp/charts/canvas.js +12976 -0
  1204. package/dist/weapp/charts/core.d.ts +2 -0
  1205. package/dist/weapp/charts/core.js +42 -0
  1206. package/dist/weapp/chord-chart/index.js +1 -0
  1207. package/dist/weapp/chord-chart/index.json +1 -0
  1208. package/dist/weapp/chord-chart/index.wxml +1 -0
  1209. package/dist/weapp/chord-chart/index.wxss +1 -0
  1210. package/dist/weapp/controls.js +1495 -4480
  1211. package/dist/weapp/donut-chart/index.js +1 -0
  1212. package/dist/weapp/donut-chart/index.json +1 -0
  1213. package/dist/weapp/donut-chart/index.wxml +1 -0
  1214. package/dist/weapp/donut-chart/index.wxss +1 -0
  1215. package/dist/weapp/funnel-chart/index.js +1 -0
  1216. package/dist/weapp/funnel-chart/index.json +1 -0
  1217. package/dist/weapp/funnel-chart/index.wxml +1 -0
  1218. package/dist/weapp/funnel-chart/index.wxss +1 -0
  1219. package/dist/weapp/gantt-chart/index.js +1 -0
  1220. package/dist/weapp/gantt-chart/index.json +1 -0
  1221. package/dist/weapp/gantt-chart/index.wxml +1 -0
  1222. package/dist/weapp/gantt-chart/index.wxss +1 -0
  1223. package/dist/weapp/gauge-chart/index.js +1 -0
  1224. package/dist/weapp/gauge-chart/index.json +1 -0
  1225. package/dist/weapp/gauge-chart/index.wxml +1 -0
  1226. package/dist/weapp/gauge-chart/index.wxss +1 -0
  1227. package/dist/weapp/heatmap-chart/index.js +1 -0
  1228. package/dist/weapp/heatmap-chart/index.json +1 -0
  1229. package/dist/weapp/heatmap-chart/index.wxml +1 -0
  1230. package/dist/weapp/heatmap-chart/index.wxss +1 -0
  1231. package/dist/weapp/histogram-chart/index.js +1 -0
  1232. package/dist/weapp/histogram-chart/index.json +1 -0
  1233. package/dist/weapp/histogram-chart/index.wxml +1 -0
  1234. package/dist/weapp/histogram-chart/index.wxss +1 -0
  1235. package/dist/weapp/horizontal-bar-chart/index.js +1 -0
  1236. package/dist/weapp/horizontal-bar-chart/index.json +1 -0
  1237. package/dist/weapp/horizontal-bar-chart/index.wxml +1 -0
  1238. package/dist/weapp/horizontal-bar-chart/index.wxss +1 -0
  1239. package/dist/weapp/mixed-chart/index.js +1 -0
  1240. package/dist/weapp/mixed-chart/index.json +1 -0
  1241. package/dist/weapp/mixed-chart/index.wxml +1 -0
  1242. package/dist/weapp/mixed-chart/index.wxss +1 -0
  1243. package/dist/weapp/pie-chart/index.js +1 -0
  1244. package/dist/weapp/pie-chart/index.json +1 -0
  1245. package/dist/weapp/pie-chart/index.wxml +1 -0
  1246. package/dist/weapp/pie-chart/index.wxss +1 -0
  1247. package/dist/weapp/radar-chart/index.js +1 -0
  1248. package/dist/weapp/radar-chart/index.json +1 -0
  1249. package/dist/weapp/radar-chart/index.wxml +1 -0
  1250. package/dist/weapp/radar-chart/index.wxss +1 -0
  1251. package/dist/weapp/radial-bar-chart/index.js +1 -0
  1252. package/dist/weapp/radial-bar-chart/index.json +1 -0
  1253. package/dist/weapp/radial-bar-chart/index.wxml +1 -0
  1254. package/dist/weapp/radial-bar-chart/index.wxss +1 -0
  1255. package/dist/weapp/range-area-chart/index.js +1 -0
  1256. package/dist/weapp/range-area-chart/index.json +1 -0
  1257. package/dist/weapp/range-area-chart/index.wxml +1 -0
  1258. package/dist/weapp/range-area-chart/index.wxss +1 -0
  1259. package/dist/weapp/sankey-chart/index.js +1 -0
  1260. package/dist/weapp/sankey-chart/index.json +1 -0
  1261. package/dist/weapp/sankey-chart/index.wxml +1 -0
  1262. package/dist/weapp/sankey-chart/index.wxss +1 -0
  1263. package/dist/weapp/shape-chart/index.js +1 -0
  1264. package/dist/weapp/shape-chart/index.json +1 -0
  1265. package/dist/weapp/shape-chart/index.wxml +1 -0
  1266. package/dist/weapp/shape-chart/index.wxss +1 -0
  1267. package/dist/weapp/sparkline/index.js +1 -0
  1268. package/dist/weapp/sparkline/index.json +1 -0
  1269. package/dist/weapp/sparkline/index.wxml +1 -0
  1270. package/dist/weapp/sparkline/index.wxss +1 -0
  1271. package/dist/weapp/sunburst-chart/index.js +1 -0
  1272. package/dist/weapp/sunburst-chart/index.json +1 -0
  1273. package/dist/weapp/sunburst-chart/index.wxml +1 -0
  1274. package/dist/weapp/sunburst-chart/index.wxss +1 -0
  1275. package/dist/weapp/treemap-chart/index.js +1 -0
  1276. package/dist/weapp/treemap-chart/index.json +1 -0
  1277. package/dist/weapp/treemap-chart/index.wxml +1 -0
  1278. package/dist/weapp/treemap-chart/index.wxss +1 -0
  1279. package/dist/weapp/types.d.ts +549 -0
  1280. package/dist/weapp/waterfall-chart/index.js +1 -0
  1281. package/dist/weapp/waterfall-chart/index.json +1 -0
  1282. package/dist/weapp/waterfall-chart/index.wxml +1 -0
  1283. package/dist/weapp/waterfall-chart/index.wxss +1 -0
  1284. package/dist/web-components/components/chart/chart.d.ts +58 -0
  1285. package/dist/web-components/components/chart/chart.js +55 -0
  1286. package/dist/web-components/components/chart/chart.js.map +1 -0
  1287. package/dist/web-components/components/chart/charts.d.ts +254 -0
  1288. package/dist/web-components/components/chart/charts.js +208 -0
  1289. package/dist/web-components/components/chart/charts.js.map +1 -0
  1290. package/dist/web-components/components/chart/engine-element.d.ts +53 -0
  1291. package/dist/web-components/components/chart/engine-element.js +77 -0
  1292. package/dist/web-components/components/chart/engine-element.js.map +1 -0
  1293. package/dist/web-components/components/chart/extended.d.ts +234 -0
  1294. package/dist/web-components/components/chart/extended.js +197 -0
  1295. package/dist/web-components/components/chart/extended.js.map +1 -0
  1296. package/dist/web-components/components/chart/series.d.ts +7 -0
  1297. package/dist/web-components/components/chart/series.js +14 -0
  1298. package/dist/web-components/components/chart/series.js.map +1 -0
  1299. package/dist/web-components/components/chart/shape-chart.d.ts +199 -0
  1300. package/dist/web-components/components/chart/shape-chart.js +161 -0
  1301. package/dist/web-components/components/chart/shape-chart.js.map +1 -0
  1302. package/dist/web-components/components/chart/shapes-extended.d.ts +198 -0
  1303. package/dist/web-components/components/chart/shapes-extended.js +182 -0
  1304. package/dist/web-components/components/chart/shapes-extended.js.map +1 -0
  1305. package/dist/web-components/components/chart-3d/chart-3d.d.ts +111 -0
  1306. package/dist/web-components/components/chart-3d/chart-3d.js +97 -0
  1307. package/dist/web-components/components/chart-3d/chart-3d.js.map +1 -0
  1308. package/dist/web-components/components/graph/graph.d.ts +154 -0
  1309. package/dist/web-components/components/graph/graph.js +149 -0
  1310. package/dist/web-components/components/graph/graph.js.map +1 -0
  1311. package/dist/web-components/components/order-book/order-book.d.ts +165 -0
  1312. package/dist/web-components/components/order-book/order-book.js +174 -0
  1313. package/dist/web-components/components/order-book/order-book.js.map +1 -0
  1314. package/dist/web-components/components/trading-chart/trading-chart.d.ts +143 -0
  1315. package/dist/web-components/components/trading-chart/trading-chart.js +158 -0
  1316. package/dist/web-components/components/trading-chart/trading-chart.js.map +1 -0
  1317. package/dist/web-components/elements/chart-3d.d.ts +2 -0
  1318. package/dist/web-components/elements/chart-3d.js +13 -0
  1319. package/dist/web-components/elements/chart-3d.js.map +1 -0
  1320. package/dist/web-components/elements/chart.d.ts +7 -0
  1321. package/dist/web-components/elements/chart.js +44 -0
  1322. package/dist/web-components/elements/chart.js.map +1 -0
  1323. package/dist/web-components/elements/graph.d.ts +2 -0
  1324. package/dist/web-components/elements/graph.js +12 -0
  1325. package/dist/web-components/elements/graph.js.map +1 -0
  1326. package/dist/web-components/elements/order-book.d.ts +2 -0
  1327. package/dist/web-components/elements/order-book.js +13 -0
  1328. package/dist/web-components/elements/order-book.js.map +1 -0
  1329. package/dist/web-components/elements/trading-chart.d.ts +2 -0
  1330. package/dist/web-components/elements/trading-chart.js +8 -0
  1331. package/dist/web-components/elements/trading-chart.js.map +1 -0
  1332. package/dist/web-components/html-custom-data.json +1470 -38
  1333. package/dist/web-components/types/react.d.ts +494 -0
  1334. package/dist/web-components/types/solid.d.ts +368 -0
  1335. package/dist/web-components/types/svelte.d.ts +368 -0
  1336. package/dist/web-components/types/vue.d.ts +410 -0
  1337. package/package.json +128 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chord.js","names":["resolveChord","names","colors","byName","g","o","group","cellColors","declared","resolve","end","known","flows","l","s","t","positive","n","matrix","v","color","rows","i","j","chordKeys","keys","uniqueKeys","m","isFlow","directed","chordValues","k","out","hidden","totals","inc","niceCeil","raw","base","f","LABEL_FONT_SIZE","TICK_BAND","layoutChord","c","model","emptyLayout","flow","shown","row","target","now","goal","whole","a","b","visibleWeight","clamp","sumNow","allGoal","order","sign","pos","p","cx","area","cy","half","labelMode","nameFont","font","theme","tickFont","tickOption","showTicks","tickBand","pad","finite","padTotal","padScale","TAU","start","arcs","a0","a1","drawnGroup","nameW","measure","name","fitsTangential","r","mode","reach","cos","sin","midOf","horizontal","outer","need","arcWidth","inner","ribbonR","segments","sortSub","offset","d","dir","list","segment","css","toCss","col","neutral","mix","colorMode","opacity","activeAlpha","head","ribbons","ribbonIndex","src","tgt","ribbonsOf","nodes","width","own","c0","c1","muted","tickColor","unitPx","tickFormat","localeFormat","labelPx","major","count","minor","perMajor","tickR","labelR","lastEnd","firstStart","also","isMajor","len","text","halfAngle","upright","nameR","placed","samples","pts","steps","length","x","dx","y","dy","collides","other","u","byValue","mid","room","ellipsize","ax","ay","outward","aligns","clear","py","align","w","right","items","asymmetric","value","percent","flowTotal","ribbonItems","reverse","source","ms","mt","enter"],"sources":["../../../../../charts/src/engine/shapes/chord.ts"],"sourcesContent":["// Chord diagram layout: groups as arcs around a circle (sized by their\n// flows), flows as ribbons between the arcs. Undirected: one ribbon per pair\n// whose ends are as wide as the flow leaving each end; directed: one ribbon\n// per direction, optionally with an arrowhead at the target. Ribbon ends are\n// ordered along each arc so that ribbons cross as little as possible.\n\nimport { mix, toCss, type Rgba } from \"../color\";\nimport { font } from \"../overlay\";\nimport { localeFormat } from \"./labels\";\nimport {\n clamp,\n ellipsize,\n emptyLayout,\n finite,\n positive,\n TAU,\n uniqueKeys,\n upright,\n type LayoutContext,\n type LayoutResult,\n type ShapeItem,\n type ShapeNode,\n} from \"./scene\";\nimport type { ChordChartOptions } from \"./types\";\n\n/** Groups, flow matrix and ribbon colors of a chord diagram */\nexport interface ChordModel {\n names: string[];\n colors: (string | undefined)[];\n /** `matrix[i][j]`: flow from group i to group j (non-negative) */\n matrix: number[][];\n /** Custom ribbon colors, by `i * n + j` */\n cellColors: Map<number, string>;\n}\n\n/**\n * Resolves the groups (declared, then the ones only named by links) and\n * the square flow matrix (from `links`, else `matrix`)\n */\nexport const resolveChord = (o: ChordChartOptions): ChordModel => {\n const names: string[] = [];\n const colors: (string | undefined)[] = [];\n const byName = new Map<string, number>();\n for (const g of o.groups ?? []) {\n const group = typeof g === \"string\" ? { name: g } : g;\n if (!group || typeof group.name !== \"string\") continue;\n if (!byName.has(group.name)) byName.set(group.name, names.length);\n names.push(group.name);\n colors.push(group.color);\n }\n const cellColors = new Map<number, string>();\n if (o.links) {\n const declared = names.length;\n const resolve = (end: string | number): number => {\n if (typeof end === \"number\")\n return Number.isInteger(end) && end >= 0 && end < declared ? end : -1;\n if (typeof end !== \"string\") return -1;\n const known = byName.get(end);\n if (known !== undefined) return known;\n byName.set(end, names.length);\n names.push(end);\n colors.push(undefined);\n return names.length - 1;\n };\n const flows: [number, number, number, string | undefined][] = [];\n for (const l of o.links) {\n if (!l) continue;\n const s = resolve(l.source);\n const t = resolve(l.target);\n if (s < 0 || t < 0) continue;\n flows.push([s, t, positive(l.value), l.color]);\n }\n const n = names.length;\n const matrix = names.map(() => new Array<number>(n).fill(0));\n for (const [s, t, v, color] of flows) {\n matrix[s][t] += v;\n if (color) cellColors.set(s * n + t, color);\n }\n return { names, colors, matrix, cellColors };\n }\n const rows = o.matrix ?? [];\n const n = Math.max(names.length, rows.length);\n for (let i = names.length; i < n; i++) {\n names.push(String(i + 1));\n colors.push(undefined);\n }\n const matrix = names.map((_, i) =>\n names.map((__, j) => positive(rows[i]?.[j])),\n );\n return { names, colors, matrix, cellColors };\n};\n\n/** Keys of the animated quantities: `~group` (shown 0-1) and `group→group` */\nconst chordKeys = (m: ChordModel) => {\n const keys = uniqueKeys(m.names);\n return {\n group: (i: number) => `~${keys[i]}`,\n cell: (i: number, j: number) => `${keys[i]}\\u2192${keys[j]}`,\n };\n};\n\n/** Whether a cell is a flow of the diagram (directed: self flows are ignored) */\nconst isFlow = (m: ChordModel, directed: boolean, i: number, j: number) =>\n m.matrix[i][j] > 0 && !(directed && i === j);\n\nexport const chordValues = (\n o: ChordChartOptions,\n hidden: ReadonlySet<number>,\n out: Map<string, number>,\n) => {\n const m = resolveChord(o);\n const k = chordKeys(m);\n const directed = !!o.directed;\n m.names.forEach((_, i) => {\n out.set(k.group(i), hidden.has(i) ? 0 : 1);\n m.names.forEach((__, j) => {\n if (isFlow(m, directed, i, j))\n out.set(\n k.cell(i, j),\n hidden.has(i) || hidden.has(j) ? 0 : m.matrix[i][j],\n );\n });\n });\n};\n\n/** Totals of a matrix: outgoing, incoming and arc value of every group */\nconst totals = (matrix: readonly (readonly number[])[], directed: boolean) => {\n const n = matrix.length;\n const out = new Array<number>(n).fill(0);\n const inc = new Array<number>(n).fill(0);\n for (let i = 0; i < n; i++)\n for (let j = 0; j < n; j++) {\n if (directed && i === j) continue;\n out[i] += matrix[i][j];\n inc[j] += matrix[i][j];\n }\n return {\n out,\n inc,\n value: out.map((v, i) => (directed ? v + inc[i] : v)),\n };\n};\n\n/** Smallest of 1, 2, 5 × 10^k not below `raw` */\nconst niceCeil = (raw: number) => {\n if (!(raw > 0) || !Number.isFinite(raw)) return 0;\n const base = Math.pow(10, Math.floor(Math.log10(raw)));\n for (const f of [1, 2, 5, 10])\n if (f * base >= raw * (1 - 1e-9)) return f * base;\n return 10 * base;\n};\n\n/** An end of a ribbon on an arc */\ninterface Segment {\n /** Other group of the flow */\n j: number;\n /** `out`: flow from this group to `j`; `in`: flow from `j` to this group */\n dir: \"out\" | \"in\";\n /** Target (not animated) size, used to sort */\n raw: number;\n a0: number;\n a1: number;\n}\n\nconst LABEL_FONT_SIZE = 12;\nconst TICK_BAND = 22;\n\nexport const layoutChord = (\n o: ChordChartOptions,\n c: LayoutContext,\n): LayoutResult => {\n const { theme, area, measure, hidden } = c;\n const model = resolveChord(o);\n const { names, matrix: raw } = model;\n const n = names.length;\n if (!n) return emptyLayout(c);\n const directed = !!o.directed;\n const keys = chordKeys(model);\n const flow = (i: number, j: number) => isFlow(model, directed, i, j);\n\n // displayed (animated) flows, and the targets (hidden groups count as 0)\n const shown = raw.map((row, i) =>\n row.map((v, j) =>\n flow(i, j)\n ? Math.max(\n 0,\n c.value(keys.cell(i, j), hidden.has(i) || hidden.has(j) ? 0 : v),\n )\n : 0,\n ),\n );\n const target = raw.map((row, i) =>\n row.map((v, j) => (flow(i, j) && !hidden.has(i) && !hidden.has(j) ? v : 0)),\n );\n const now = totals(shown, directed);\n const goal = totals(target, directed);\n const whole = goal.value.reduce((a, b) => a + b, 0);\n const visibleWeight = names.map((_, i) =>\n goal.value[i] > 0 || now.value[i] > 1e-9\n ? clamp(c.value(keys.group(i), hidden.has(i) ? 0 : 1), 0, 1)\n : 0,\n );\n const sumNow = now.value.reduce((a, b) => a + b, 0);\n if (sumNow <= 1e-12) return emptyLayout(c);\n\n // order of the groups around the circle\n const allGoal = totals(\n raw.map((row, i) => row.map((v, j) => (flow(i, j) ? v : 0))),\n directed,\n ).value;\n const order = names.map((_, i) => i);\n if (o.sortGroups === \"ascending\" || o.sortGroups === \"descending\") {\n const sign = o.sortGroups === \"ascending\" ? 1 : -1;\n order.sort((a, b) => sign * (allGoal[a] - allGoal[b]) || a - b);\n }\n const pos = new Array<number>(n);\n order.forEach((g, p) => (pos[g] = p));\n\n // radii: arcs, ticks and labels from the center out\n const cx = area.x + area.width / 2;\n const cy = area.y + area.height / 2;\n const half = Math.min(area.width, area.height) / 2;\n const labelMode = o.labels ?? \"auto\";\n const nameFont = font(theme, LABEL_FONT_SIZE, 500);\n const tickFont = font(theme, 10);\n const tickOption = o.ticks;\n const showTicks =\n tickOption === false\n ? false\n : typeof tickOption === \"number\"\n ? tickOption > 0\n : half >= 150;\n const tickBand = showTicks ? TICK_BAND : 0;\n const pad = clamp(finite(o.padAngle, 2), 0, 45) * (Math.PI / 180);\n const padTotal = pad * visibleWeight.reduce((a, b) => a + b, 0);\n const padScale = padTotal > TAU * 0.5 ? (TAU * 0.5) / padTotal : 1;\n const k = (TAU - padTotal * padScale) / sumNow;\n const start = -Math.PI / 2 + (finite(o.startAngle) * Math.PI) / 180;\n\n // group arcs (angles only; the radius comes with the labels)\n const arcs: { a0: number; a1: number }[] = new Array(n);\n {\n let a = start + (pad * padScale * (visibleWeight[order[0]] ?? 0)) / 2;\n for (const g of order) {\n const a0 = a;\n const a1 = a0 + now.value[g] * k;\n arcs[g] = { a0, a1 };\n a = a1 + pad * padScale * visibleWeight[g];\n }\n }\n const drawnGroup = (g: number) => arcs[g].a1 - arcs[g].a0 > 1e-6;\n\n // labels: tangential when every name fits its arc (auto), else radial\n const nameW = names.map((name) => measure(name, nameFont));\n const fitsTangential = (r: number) =>\n order.every(\n (g) =>\n !drawnGroup(g) ||\n nameW[g] + 6 <= (arcs[g].a1 - arcs[g].a0 + pad * padScale * 0.8) * r,\n );\n let mode: \"tangential\" | \"radial\" | \"none\" =\n labelMode === \"none\"\n ? \"none\"\n : labelMode === \"radial\"\n ? \"radial\"\n : \"tangential\";\n const tangentialRoom = LABEL_FONT_SIZE + 10;\n if (labelMode === \"auto\" && !fitsTangential(Math.max(1, half - 12)))\n mode = \"radial\";\n // distance from the center to the edge of the area along an angle\n const reach = (a: number) => {\n const cos = Math.abs(Math.cos(a));\n const sin = Math.abs(Math.sin(a));\n return Math.min(\n cos > 1e-6 ? (area.width / 2 - 2) / cos : Infinity,\n sin > 1e-6 ? (area.height / 2 - LABEL_FONT_SIZE / 2 - 1) / sin : Infinity,\n );\n };\n const midOf = (g: number) => (arcs[g].a0 + arcs[g].a1) / 2;\n // radial names near 12 and 6 o'clock are written horizontally: they then\n // need one line of height instead of their whole width\n const horizontal = (a: number) => Math.abs(Math.sin(a)) > 0.92;\n let outer: number;\n if (mode === \"radial\") {\n // the largest radius leaving each name room along its ray (a wide area\n // gives the names on the sides more room), but not below half the size;\n // names that still do not fit are shortened\n outer = half - tickBand - 8;\n for (const g of order)\n if (drawnGroup(g) && visibleWeight[g] > 0.5) {\n const a = midOf(g);\n const need = horizontal(a) ? LABEL_FONT_SIZE + 2 : nameW[g];\n outer = Math.min(outer, reach(a) - need - tickBand - 10);\n }\n outer = Math.max(half * 0.5, outer);\n } else {\n outer = half - tickBand - (mode === \"none\" ? 0 : tangentialRoom) - 2;\n }\n outer = Math.max(16, outer);\n const arcWidth = clamp(\n finite(o.arcWidth, clamp(outer * 0.06, 8, 18)),\n 2,\n outer * 0.5,\n );\n const inner = outer - arcWidth;\n const ribbonR = Math.max(4, inner - 2);\n\n // ribbon ends along each arc\n const segments: Segment[][] = names.map(() => []);\n for (let i = 0; i < n; i++)\n for (let j = 0; j < n; j++) {\n if (directed) {\n if (flow(i, j)) {\n segments[i].push({ j, dir: \"out\", raw: raw[i][j], a0: 0, a1: 0 });\n segments[j].push({ j: i, dir: \"in\", raw: raw[i][j], a0: 0, a1: 0 });\n }\n } else if (flow(i, j) || flow(j, i)) {\n segments[i].push({ j, dir: \"out\", raw: raw[i][j], a0: 0, a1: 0 });\n }\n }\n const sortSub = o.sortSubgroups ?? \"auto\";\n segments.forEach((list, i) => {\n // `auto`: flows toward the groups just after this one (clockwise) end\n // the arc, those toward the groups just before start it\n const offset = (j: number) => {\n const d = (pos[j] - pos[i] + n) % n;\n return d === 0 ? n / 2 : d;\n };\n list.sort((a, b) => {\n const dir = Number(a.dir === \"in\") - Number(b.dir === \"in\");\n if (sortSub === \"ascending\" || sortSub === \"descending\") {\n const s = sortSub === \"ascending\" ? 1 : -1;\n return s * (a.raw - b.raw) || pos[a.j] - pos[b.j] || dir;\n }\n if (sortSub === \"none\") return pos[a.j] - pos[b.j] || dir;\n return offset(b.j) - offset(a.j) || dir;\n });\n let a = arcs[i].a0;\n for (const s of list) {\n const v = s.dir === \"out\" ? shown[i][s.j] : shown[s.j][i];\n s.a0 = a;\n s.a1 = a + v * k;\n a = s.a1;\n }\n });\n const segment = (g: number, j: number, dir: \"out\" | \"in\") =>\n segments[g].find((s) => s.j === j && s.dir === dir);\n\n // colors\n const colors: Rgba[] = names.map((_, i) => c.color(model.colors[i], i));\n const css = colors.map((col) => toCss(col));\n const neutral = toCss(mix(theme.grid, theme.textMuted, 0.45));\n const colorMode = o.ribbonColor ?? \"gradient\";\n const opacity = clamp(finite(o.ribbonOpacity, 0.65), 0.02, 1);\n const activeAlpha = Math.min(1, opacity + 0.25);\n const head = (o.arrows ?? directed) ? clamp(ribbonR * 0.07, 5, 12) : 0;\n\n // ribbons: [source, target] by item index\n interface Ribbon {\n index: number;\n s: number;\n t: number;\n src: Segment;\n tgt: Segment;\n }\n const ribbons: Ribbon[] = [];\n const ribbonIndex = (s: number, t: number) => n + s * n + t;\n for (let i = 0; i < n; i++)\n for (let j = directed ? 0 : i; j < n; j++) {\n if (directed) {\n if (!flow(i, j)) continue;\n const src = segment(i, j, \"out\");\n const tgt = segment(j, i, \"in\");\n if (src && tgt)\n ribbons.push({ index: ribbonIndex(i, j), s: i, t: j, src, tgt });\n } else {\n if (!flow(i, j) && !flow(j, i)) continue;\n // the larger direction is the source\n const [s, t] = raw[j][i] > raw[i][j] ? [j, i] : [i, j];\n const src = segment(s, t, \"out\");\n const tgt = segment(t, s, \"out\");\n if (src && tgt)\n ribbons.push({ index: ribbonIndex(s, t), s, t, src, tgt });\n }\n }\n const ribbonsOf = names.map(() => [] as number[]);\n for (const r of ribbons) {\n ribbonsOf[r.s].push(r.index);\n if (r.t !== r.s) ribbonsOf[r.t].push(r.index);\n }\n\n const nodes: ShapeNode[] = [];\n const width = (r: Ribbon) => r.src.a1 - r.src.a0 + (r.tgt.a1 - r.tgt.a0);\n for (const r of ribbons.slice().sort((a, b) => width(b) - width(a))) {\n if (width(r) <= 1e-6) continue;\n const own =\n model.cellColors.get(r.s * n + r.t) ??\n (directed ? undefined : model.cellColors.get(r.t * n + r.s));\n let c0: string;\n let c1: string;\n if (own) c0 = c1 = toCss(c.color(own, r.s));\n else if (colorMode === \"source\") c0 = c1 = css[r.s];\n else if (colorMode === \"target\") c0 = c1 = css[r.t];\n else if (colorMode === \"neutral\") c0 = c1 = neutral;\n else {\n c0 = css[r.s];\n c1 = css[r.t];\n }\n nodes.push({\n kind: \"ribbon\",\n cx,\n cy,\n r: ribbonR,\n s0: r.src.a0,\n s1: r.src.a1,\n t0: r.tgt.a0,\n t1: r.tgt.a1,\n head: r.s === r.t ? 0 : head,\n color0: c0,\n color1: c1,\n alpha: opacity,\n activeAlpha,\n hit: r.index,\n also: r.s === r.t ? [r.s] : [r.s, r.t],\n });\n }\n\n // group arcs\n for (const g of order) {\n if (!drawnGroup(g)) continue;\n nodes.push({\n kind: \"sector\",\n cx,\n cy,\n r0: inner,\n r1: outer,\n a0: arcs[g].a0,\n a1: arcs[g].a1,\n pad: 0,\n corner: Math.min(2, arcWidth / 4),\n fill: css[g],\n hit: g,\n also: ribbonsOf[g],\n alpha: visibleWeight[g],\n });\n }\n\n // value ticks: minor ticks, labelled major ticks where the labels fit\n const muted = toCss(theme.textMuted);\n const tickColor = toCss(theme.textMuted, 0.7);\n if (showTicks) {\n const unitPx = k * outer;\n const tickFormat = o.tickFormat ?? localeFormat(c.locale);\n const sample = tickFormat(Math.max(...allGoal));\n const labelPx = measure(sample, tickFont) + 14;\n let major =\n typeof tickOption === \"number\"\n ? tickOption\n : niceCeil(labelPx / Math.max(unitPx, 1e-12));\n // keep the number of ticks reasonable\n const count = sumNow / Math.max(major, 1e-12);\n if (!(major > 0) || count > 240) major = niceCeil(sumNow / 240);\n const minor =\n (major / 5) * unitPx >= 5\n ? major / 5\n : (major / 2) * unitPx >= 5\n ? major / 2\n : major;\n const perMajor = Math.round(major / minor);\n const tickR = outer + 2;\n const labelR = outer + 15;\n let lastEnd = -Infinity;\n let firstStart: number | null = null;\n for (const g of order) {\n if (!drawnGroup(g)) continue;\n const { a0, a1 } = arcs[g];\n const also = ribbonsOf[g];\n for (let m = 0; ; m++) {\n const a = a0 + m * minor * k;\n if (a > a1 + 1e-9) break;\n const isMajor = m % perMajor === 0;\n const len = isMajor ? 5 : 3;\n if (unitPx * minor >= 3 || isMajor)\n nodes.push({\n kind: \"line\",\n points: [\n cx + tickR * Math.cos(a),\n cy + tickR * Math.sin(a),\n cx + (tickR + len) * Math.cos(a),\n cy + (tickR + len) * Math.sin(a),\n ],\n color: tickColor,\n width: 1,\n hit: g,\n also,\n });\n if (!isMajor) continue;\n const text = tickFormat(m * minor);\n const halfAngle = (measure(text, tickFont) / 2 + 3) / labelR;\n if (a - halfAngle < lastEnd) continue;\n if (firstStart !== null && a + halfAngle > firstStart + TAU) continue;\n if (firstStart === null) firstStart = a - halfAngle;\n lastEnd = a + halfAngle;\n nodes.push({\n kind: \"text\",\n x: cx + labelR * Math.cos(a),\n y: cy + labelR * Math.sin(a),\n text,\n font: tickFont,\n color: muted,\n align: \"center\",\n baseline: \"middle\",\n rotate: upright(a + Math.PI / 2),\n hit: g,\n also,\n });\n }\n }\n }\n\n // group names\n if (mode !== \"none\") {\n const nameR = outer + tickBand + 6;\n const color = toCss(theme.text);\n // placed names as sample points along their baseline: two names collide\n // when samples are closer than a line height (works for any rotation)\n const placed: [number, number][][] = [];\n const lineGap = LABEL_FONT_SIZE + 3;\n const samples = (\n x: number,\n y: number,\n dx: number,\n dy: number,\n length: number,\n ) => {\n const pts: [number, number][] = [];\n const steps = Math.max(1, Math.ceil(length / 6));\n for (let s = 0; s <= steps; s++)\n pts.push([\n x + (dx * length * s) / steps,\n y + (dy * length * s) / steps,\n ]);\n return pts;\n };\n const collides = (pts: [number, number][]) =>\n placed.some((other) =>\n other.some(([x, y]) =>\n pts.some(([u, v]) => Math.hypot(x - u, y - v) < lineGap),\n ),\n );\n // biggest first, so collisions drop the small groups\n const byValue = order\n .filter((g) => drawnGroup(g) && visibleWeight[g] > 0.5)\n .sort((a, b) => now.value[b] - now.value[a]);\n for (const g of byValue) {\n const { a0, a1 } = arcs[g];\n const mid = (a0 + a1) / 2;\n if (mode === \"tangential\") {\n const room = (a1 - a0 + pad * padScale * 0.8) * (nameR + 6) - 6;\n const text = ellipsize(names[g], room, nameFont, measure);\n if (!text) continue;\n nodes.push({\n kind: \"text\",\n x: cx + (nameR + 6) * Math.cos(mid),\n y: cy + (nameR + 6) * Math.sin(mid),\n text,\n font: nameFont,\n color,\n align: \"center\",\n baseline: \"middle\",\n rotate: upright(mid + Math.PI / 2),\n hit: g,\n also: ribbonsOf[g],\n });\n continue;\n }\n const ax = cx + nameR * Math.cos(mid);\n const ay = cy + nameR * Math.sin(mid);\n if (horizontal(mid)) {\n // above (12 o'clock) or below (6 o'clock): centered on the arc, else\n // extending away from the vertical axis, else toward it; the text must\n // clear the tick ring and the names already placed\n const y = ay + Math.sign(Math.sin(mid)) * (LABEL_FONT_SIZE / 2 + 1);\n const outward = Math.cos(mid) >= 0 ? \"left\" : \"right\";\n const aligns: (\"center\" | \"left\" | \"right\")[] = [\n \"center\",\n outward,\n outward === \"left\" ? \"right\" : \"left\",\n ];\n const clear = (pts: [number, number][]) =>\n pts.every(([x, py]) => Math.hypot(x - cx, py - cy) >= nameR + 2);\n for (const align of aligns) {\n const room =\n align === \"center\"\n ? 2 * Math.min(ax - area.x, area.x + area.width - ax) - 4\n : align === \"left\"\n ? area.x + area.width - ax - 2\n : ax - area.x - 2;\n const text = ellipsize(names[g], room, nameFont, measure);\n if (!text) continue;\n const w = measure(text, nameFont);\n const x0 =\n align === \"left\" ? ax : align === \"right\" ? ax - w : ax - w / 2;\n const pts = samples(x0, y, 1, 0, w);\n if (!clear(pts) || collides(pts)) continue;\n placed.push(pts);\n nodes.push({\n kind: \"text\",\n x: ax,\n y,\n text,\n font: nameFont,\n color,\n align,\n baseline: \"middle\",\n hit: g,\n also: ribbonsOf[g],\n });\n break;\n }\n continue;\n }\n const text = ellipsize(\n names[g],\n reach(mid) - nameR - 2,\n nameFont,\n measure,\n );\n if (!text) continue;\n const pts = samples(\n ax,\n ay,\n Math.cos(mid),\n Math.sin(mid),\n measure(text, nameFont),\n );\n if (collides(pts)) continue;\n placed.push(pts);\n const right = Math.cos(mid) >= 0;\n nodes.push({\n kind: \"text\",\n x: ax,\n y: ay,\n text,\n font: nameFont,\n color,\n align: right ? \"left\" : \"right\",\n baseline: \"middle\",\n rotate: right ? mid : mid + Math.PI,\n hit: g,\n also: ribbonsOf[g],\n });\n }\n }\n\n // items: groups around the circle, then the ribbons by source\n const items: ShapeItem[] = [];\n const asymmetric =\n directed ||\n raw.some((row, i) => row.some((v, j) => Math.abs(v - raw[j][i]) > 1e-12));\n for (const g of order) {\n const value = goal.value[g];\n if (!(value > 0) || hidden.has(g)) continue;\n const percent = whole > 0 ? value / whole : 0;\n const mid = (arcs[g].a0 + arcs[g].a1) / 2;\n items.push({\n index: g,\n name: names[g],\n value,\n percent,\n share: c.percent(percent),\n color: css[g],\n x: cx + outer * Math.cos(mid),\n y: cy + outer * Math.sin(mid),\n rows: [\n ...(directed || !asymmetric\n ? [{ name: c.labels.value, value: c.format(value) }]\n : []),\n ...(asymmetric\n ? [\n { name: c.labels.outgoing, value: c.format(goal.out[g]) },\n { name: c.labels.incoming, value: c.format(goal.inc[g]) },\n ]\n : []),\n { name: c.labels.share, value: c.percent(percent) },\n ],\n });\n }\n const flowTotal = target.reduce(\n (s, row) => s + row.reduce((a, b) => a + b, 0),\n 0,\n );\n const ribbonItems = ribbons\n .filter((r) => target[r.s][r.t] > 0 || target[r.t][r.s] > 0)\n .sort(\n (a, b) =>\n pos[a.s] - pos[b.s] || a.src.a0 - b.src.a0 || pos[a.t] - pos[b.t],\n );\n for (const r of ribbonItems) {\n const value = target[r.s][r.t];\n const reverse =\n r.s !== r.t && target[r.s][r.t] + target[r.t][r.s] > 0\n ? raw[r.t][r.s]\n : 0;\n const percent = flowTotal > 0 ? value / flowTotal : 0;\n const source = names[r.s];\n const tgt = names[r.t];\n const ms = (r.src.a0 + r.src.a1) / 2;\n const mt = (r.tgt.a0 + r.tgt.a1) / 2;\n // middle of the quadratic curve between the two ends\n const x =\n r.s === r.t\n ? cx + ribbonR * 0.7 * Math.cos(ms)\n : 0.25 * (cx + ribbonR * Math.cos(ms)) +\n 0.5 * cx +\n 0.25 * (cx + ribbonR * Math.cos(mt));\n const y =\n r.s === r.t\n ? cy + ribbonR * 0.7 * Math.sin(ms)\n : 0.25 * (cy + ribbonR * Math.sin(ms)) +\n 0.5 * cy +\n 0.25 * (cy + ribbonR * Math.sin(mt));\n items.push({\n index: r.index,\n name: r.s === r.t ? source : `${source} \\u2192 ${tgt}`,\n value,\n percent,\n share: c.percent(percent),\n color: css[r.s],\n x,\n y,\n rows: [\n { name: c.labels.value, value: c.format(value) },\n ...(r.s !== r.t && (!directed || reverse > 0)\n ? [{ name: c.labels.reverse, value: c.format(reverse) }]\n : []),\n { name: c.labels.share, value: c.percent(percent) },\n ],\n event: { source, target: tgt, reverseValue: reverse },\n });\n }\n\n const enter = clamp(c.enter, 0, 1);\n return {\n nodes,\n items,\n dim: 0.25,\n empty: false,\n ...(enter < 1\n ? { enter: { alpha: enter, scale: 0.94 + 0.06 * enter, cx, cy } }\n : {}),\n };\n};\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- const e=require("../color.cjs"),t=require("../overlay.cjs"),n=require("./scene.cjs");var r=`rgba(15, 23, 42, 0.18)`,i=`rgba(255, 255, 255, 0.14)`,a=e=>Math.max(0,Math.min(e.pad,e.r1*(e.a1-e.a0)/3)),o=(e,t)=>t>0?Math.asin(Math.min(1,e/t)):Math.PI/2,s=(e,t,r=0,i=0)=>{let s=t.cx+r,c=t.cy+i,{r0:l,r1:u,a0:d,a1:f}=t,p=f-d;if(e.beginPath(),p<=0||u<=l)return;if(p>=n.TAU-1e-6){e.moveTo(s+u,c),e.arc(s,c,u,0,n.TAU),l>0&&(e.moveTo(s+l,c),e.arc(s,c,l,n.TAU,0,!0)),e.closePath();return}let m=a(t)/2,h=(e,t,n)=>{let r=e+t*o(m,n);return[s+n*Math.cos(r),c+n*Math.sin(r)]},g=(e,t)=>[s+t*Math.cos(e),c+t*Math.sin(e)],_=o(m,u),v=Math.max(0,p-2*_),y=l>0?o(m,l):0,b=l>0?p-2*y:0,x=l>0&&b>1e-4,S=u-l,C=Math.max(0,Math.min(t.corner,S/2,u*v/2-.01)),w=x?Math.max(0,Math.min(t.corner,S/2,l*b/2-.01)):0;if(C>.5){let t=h(d,1,u-C);e.moveTo(t[0],t[1]);let n=h(d,1,u),r=g(d+_+C/u,u);e.quadraticCurveTo(n[0],n[1],r[0],r[1]),e.arc(s,c,u,d+_+C/u,f-_-C/u);let i=h(f,-1,u),a=h(f,-1,u-C);e.quadraticCurveTo(i[0],i[1],a[0],a[1])}else{let t=g(d+_,u);e.moveTo(t[0],t[1]),e.arc(s,c,u,d+_,f-_)}if(x){if(w>.5){let t=h(f,-1,l+w);e.lineTo(t[0],t[1]);let n=h(f,-1,l),r=g(f-y-w/l,l);e.quadraticCurveTo(n[0],n[1],r[0],r[1]),e.arc(s,c,l,f-y-w/l,d+y+w/l,!0);let i=h(d,1,l),a=h(d,1,l+w);e.quadraticCurveTo(i[0],i[1],a[0],a[1])}else{let t=g(f-y,l);e.lineTo(t[0],t[1]),e.arc(s,c,l,f-y,d+y,!0)}}else if(m<=0)e.lineTo(s,c);else if(p<Math.PI){let t=m/Math.sin(p/2),n=(d+f)/2;e.lineTo(s+t*Math.cos(n),c+t*Math.sin(n))}else e.lineTo(s+m*Math.cos(f-Math.PI/2),c+m*Math.sin(f-Math.PI/2)),e.lineTo(s+m*Math.cos(d+Math.PI/2),c+m*Math.sin(d+Math.PI/2));e.closePath()},c=(e,t,n,r,i,a)=>{let o=t.length>>1;if(o<2)return;let s=e=>t[(r?o-1-e:e)*2]+i,c=e=>t[(r?o-1-e:e)*2+1]+a;if(n<=0||o<3){e.moveTo(s(0),c(0));for(let t=1;t<o;t++)e.lineTo(s(t),c(t));e.closePath();return}e.moveTo((s(o-1)+s(0))/2,(c(o-1)+c(0))/2);for(let t=0;t<o;t++){let r=(t+1)%o,i=(t+o-1)%o,a=Math.hypot(s(t)-s(i),c(t)-c(i)),l=Math.hypot(s(r)-s(t),c(r)-c(t)),u=Math.min(n,a/2,l/2);u>.01?e.arcTo(s(t),c(t),s(r),c(r),u):e.lineTo(s(t),c(t))}e.closePath()},l=(e,t,n=0,r=0)=>{e.beginPath(),c(e,t.points,t.radius??0,!1,n,r),t.hole&&c(e,t.hole,0,!0,n,r)},u=(e,t,n,r,i,a)=>{let o=Math.max(0,Math.min(a,r/2,i/2));if(e.beginPath(),o<=.01){e.moveTo(t,n),e.lineTo(t+r,n),e.lineTo(t+r,n+i),e.lineTo(t,n+i),e.closePath();return}e.moveTo(t+o,n),e.lineTo(t+r-o,n),e.arcTo(t+r,n,t+r,n+o,o),e.lineTo(t+r,n+i-o),e.arcTo(t+r,n+i,t+r-o,n+i,o),e.lineTo(t+o,n+i),e.arcTo(t,n+i,t,n+i-o,o),e.lineTo(t,n+o),e.arcTo(t,n,t+o,n,o),e.closePath()},d=(e,t)=>{typeof e.setLineDash==`function`&&e.setLineDash(t)},f=(e,t,r,i)=>{e.beginPath(),e.arc(t,r,Math.max(0,i),0,n.TAU)},p=(e,t,n)=>{e.save();let a=t.enter,o=a?Math.max(0,Math.min(1,a.alpha)):1;a&&a.scale!==1&&(e.translate(a.cx,a.cy),e.scale(a.scale,a.scale),e.translate(-a.cx,-a.cy)),e.lineJoin=`round`,e.lineCap=`round`;for(let a of t.nodes){let c=a.hit!==void 0,p=!!n&&c&&a.hit===n.index,m=o*(a.alpha??1);if(n&&c&&!p&&(m*=t.dim),m<=.002)continue;e.globalAlpha=m;let h=p&&a.shift?a.shift[0]:0,g=p&&a.shift?a.shift[1]:0;switch(a.kind){case`sector`:s(e,a,h,g),e.fillStyle=a.fill,p?(e.save(),e.shadowColor=r,e.shadowBlur=14,e.shadowOffsetY=4,e.fill(),e.restore()):e.fill();break;case`polygon`:{l(e,a,h,g);let t=p&&a.hoverFill?a.hoverFill:a.fill;t&&(e.fillStyle=t,e.fill(),p&&a.brighten&&(e.fillStyle=i,e.fill())),a.stroke&&(e.strokeStyle=a.stroke,e.lineWidth=p&&a.hoverLineWidth?a.hoverLineWidth:a.lineWidth??1,e.stroke());break}case`rect`:u(e,a.x+h,a.y+g,a.width,a.height,a.radius),e.fillStyle=a.fill,e.fill(),p&&a.brighten&&(e.fillStyle=i,e.fill());break;case`arc`:if(a.a1-a.a0<=1e-6||a.width<=0)break;e.beginPath(),e.arc(a.cx+h,a.cy+g,a.r,a.a0,a.a1),e.lineCap=a.cap,e.lineWidth=a.width,e.strokeStyle=a.color,e.stroke(),e.lineCap=`round`;break;case`circle`:{if(!a.fill&&!a.stroke)break;let t=p&&(a.indicator===void 0||a.indicator===n?.indicator),r=t&&a.hoverR?a.hoverR:a.r,i=a.cx+h,o=a.cy+g;t&&a.halo&&(f(e,i,o,r+5),e.fillStyle=a.halo,e.fill()),f(e,i,o,r),a.fill&&(e.fillStyle=a.fill,e.fill()),a.stroke&&(e.strokeStyle=a.stroke,e.lineWidth=a.lineWidth??1,e.stroke());break}case`line`:{let t=a.points;if(t.length<4)break;e.beginPath(),e.moveTo(t[0]+h,t[1]+g);for(let n=2;n<t.length;n+=2)e.lineTo(t[n]+(n===t.length-2?0:h),t[n+1]+(n===t.length-2?0:g));e.strokeStyle=a.color,e.lineWidth=a.width,a.dash&&d(e,a.dash),e.stroke(),a.dash&&d(e,[]);break}case`text`:{let t=a.indicator!==void 0&&n?.indicator===a.indicator;e.font=t&&a.hoverFont?a.hoverFont:a.font,e.fillStyle=t&&a.hoverColor?a.hoverColor:a.color,e.textAlign=a.align,e.textBaseline=a.baseline,e.fillText(a.text,a.x+h,a.y+g);break}case`guide`:{let t=n?.indicator;if(t===void 0||!a.ends[t])break;e.globalAlpha=o,e.beginPath(),e.moveTo(a.cx,a.cy),e.lineTo(a.ends[t][0],a.ends[t][1]),e.strokeStyle=a.color,e.lineWidth=1,d(e,[3,3]),e.stroke(),d(e,[]);break}}}e.restore()},m=(n,r,i)=>{n.save(),n.font=t.font(r,12),n.textBaseline=`middle`,n.textAlign=`left`;for(let t of i){let i=t.y+t.height/2;n.globalAlpha=t.hidden?.45:1,n.fillStyle=t.color,f(n,t.x+4.5,i,4.5),n.fill(),n.fillStyle=e.toCss(r.textMuted),n.fillText(t.name,t.x+15,i,Math.max(1,t.width-15)),t.hidden&&n.fillRect(t.x+15,i,t.width-15,1)}n.restore()},h=(n,i,a)=>{let{padding:o,lineHeight:s}=a;n.save(),n.globalAlpha=1,n.save(),n.shadowColor=r,n.shadowBlur=16,n.shadowOffsetY=6,u(n,a.x,a.y,a.width,a.height,8),n.fillStyle=e.toCss(i.background),n.fill(),n.restore(),u(n,a.x+.5,a.y+.5,a.width-1,a.height-1,8),n.strokeStyle=e.toCss(i.axis),n.lineWidth=1,n.stroke(),n.textBaseline=`middle`;let c=a.y+o+s/2,l=a.x+o+2,d=a.x+a.width-o-2;if(a.text){n.font=t.font(i,12),n.fillStyle=e.toCss(i.text),n.textAlign=`left`;for(let e of a.text)n.fillText(e,l,c),c+=s}else if(a.content){let{content:r}=a,o=l;r.color&&(n.fillStyle=r.color,f(n,o+4,c,4),n.fill(),o+=14),n.font=t.font(i,12,600),n.fillStyle=e.toCss(i.text),n.textAlign=`left`,n.fillText(r.title,o,c),c+=s;for(let a of r.rows)o=l,a.color&&(n.fillStyle=a.color,f(n,o+4,c,4),n.fill(),o+=14),n.font=t.font(i,12,a.strong?600:400),n.textAlign=`left`,n.fillStyle=e.toCss(a.strong?i.text:i.textMuted),n.fillText(a.name,o,c),n.font=t.font(i,12,600),n.textAlign=`right`,n.fillStyle=e.toCss(i.text),n.fillText(a.value,d,c),c+=s}n.restore()};exports.drawShapeLegend=m,exports.drawShapeScene=p,exports.drawShapeTooltip=h,exports.padAngleAt=o,exports.roundRectPath=u,exports.sectorPad=a,exports.sectorPath=s;
1
+ const e=require("../color.cjs"),t=require("../overlay.cjs"),n=require("./scene.cjs");var r=`rgba(15, 23, 42, 0.18)`,i=`rgba(255, 255, 255, 0.14)`,a=e=>Math.max(0,Math.min(e.pad,e.r1*(e.a1-e.a0)/3)),o=(e,t)=>t>0?Math.asin(Math.min(1,e/t)):Math.PI/2,s=(e,t,r=0,i=0)=>{let s=t.cx+r,c=t.cy+i,{r0:l,r1:u,a0:d,a1:f}=t,p=f-d;if(e.beginPath(),p<=0||u<=l)return;if(p>=n.TAU-1e-6){e.moveTo(s+u,c),e.arc(s,c,u,0,n.TAU),l>0&&(e.moveTo(s+l,c),e.arc(s,c,l,n.TAU,0,!0)),e.closePath();return}let m=a(t)/2,h=(e,t,n)=>{let r=e+t*o(m,n);return[s+n*Math.cos(r),c+n*Math.sin(r)]},g=(e,t)=>[s+t*Math.cos(e),c+t*Math.sin(e)],_=o(m,u),v=Math.max(0,p-2*_),y=l>0?o(m,l):0,b=l>0?p-2*y:0,x=l>0&&b>1e-4,S=u-l,C=Math.max(0,Math.min(t.corner,S/2,u*v/2-.01)),w=x?Math.max(0,Math.min(t.corner,S/2,l*b/2-.01)):0;if(C>.5){let t=h(d,1,u-C);e.moveTo(t[0],t[1]);let n=h(d,1,u),r=g(d+_+C/u,u);e.quadraticCurveTo(n[0],n[1],r[0],r[1]),e.arc(s,c,u,d+_+C/u,f-_-C/u);let i=h(f,-1,u),a=h(f,-1,u-C);e.quadraticCurveTo(i[0],i[1],a[0],a[1])}else{let t=g(d+_,u);e.moveTo(t[0],t[1]),e.arc(s,c,u,d+_,f-_)}if(x){if(w>.5){let t=h(f,-1,l+w);e.lineTo(t[0],t[1]);let n=h(f,-1,l),r=g(f-y-w/l,l);e.quadraticCurveTo(n[0],n[1],r[0],r[1]),e.arc(s,c,l,f-y-w/l,d+y+w/l,!0);let i=h(d,1,l),a=h(d,1,l+w);e.quadraticCurveTo(i[0],i[1],a[0],a[1])}else{let t=g(f-y,l);e.lineTo(t[0],t[1]),e.arc(s,c,l,f-y,d+y,!0)}}else if(m<=0)e.lineTo(s,c);else if(p<Math.PI){let t=m/Math.sin(p/2),n=(d+f)/2;e.lineTo(s+t*Math.cos(n),c+t*Math.sin(n))}else e.lineTo(s+m*Math.cos(f-Math.PI/2),c+m*Math.sin(f-Math.PI/2)),e.lineTo(s+m*Math.cos(d+Math.PI/2),c+m*Math.sin(d+Math.PI/2));e.closePath()},c=(e,t,n,r,i,a)=>{let o=t.length>>1;if(o<2)return;let s=e=>t[(r?o-1-e:e)*2]+i,c=e=>t[(r?o-1-e:e)*2+1]+a;if(n<=0||o<3){e.moveTo(s(0),c(0));for(let t=1;t<o;t++)e.lineTo(s(t),c(t));e.closePath();return}e.moveTo((s(o-1)+s(0))/2,(c(o-1)+c(0))/2);for(let t=0;t<o;t++){let r=(t+1)%o,i=(t+o-1)%o,a=Math.hypot(s(t)-s(i),c(t)-c(i)),l=Math.hypot(s(r)-s(t),c(r)-c(t)),u=Math.min(n,a/2,l/2);u>.01?e.arcTo(s(t),c(t),s(r),c(r),u):e.lineTo(s(t),c(t))}e.closePath()},l=(e,t,n=0,r=0)=>{e.beginPath(),c(e,t.points,t.radius??0,!1,n,r),t.hole&&c(e,t.hole,0,!0,n,r)},u=(e,t,n,r,i,a)=>{let o=Math.max(0,Math.min(a,r/2,i/2));if(e.beginPath(),o<=.01){e.moveTo(t,n),e.lineTo(t+r,n),e.lineTo(t+r,n+i),e.lineTo(t,n+i),e.closePath();return}e.moveTo(t+o,n),e.lineTo(t+r-o,n),e.arcTo(t+r,n,t+r,n+o,o),e.lineTo(t+r,n+i-o),e.arcTo(t+r,n+i,t+r-o,n+i,o),e.lineTo(t+o,n+i),e.arcTo(t,n+i,t,n+i-o,o),e.lineTo(t,n+o),e.arcTo(t,n,t+o,n,o),e.closePath()},d=(e,t)=>{typeof e.setLineDash==`function`&&e.setLineDash(t)},f=(e,t,r,i)=>{e.beginPath(),e.arc(t,r,Math.max(0,i),0,n.TAU)},p=(e,t)=>!!t&&e.hit!==void 0&&(e.hit===t.index||!!e.also?.includes(t.index)),m=(e,t)=>{let n=(t.x0+t.x1)/2;e.beginPath(),e.moveTo(t.x0,t.y0),e.bezierCurveTo(n,t.y0,n,t.y1,t.x1,t.y1)},h=(e,t)=>{if(t.color0===t.color1||typeof e.createLinearGradient!=`function`||Math.abs(t.x1-t.x0)<1)return t.color0;let n=e.createLinearGradient(t.x0,0,t.x1,0);return n.addColorStop(0,t.color0),n.addColorStop(1,t.color1),n},g=e=>Math.abs(e.s0-e.t0)<1e-9&&Math.abs(e.s1-e.t1)<1e-9,_=e=>{let t=(e.s0+e.s1)/2;return[e.cx+e.r*.4*Math.cos(t),e.cy+e.r*.4*Math.sin(t)]},v=(e,t)=>{let{cx:n,cy:r,r:i}=t,a=(e,t=i)=>[n+t*Math.cos(e),r+t*Math.sin(e)];e.beginPath();let o=a(t.s0);if(e.moveTo(o[0],o[1]),t.s1>t.s0&&e.arc(n,r,i,t.s0,t.s1),g(t)){let[n,r]=_(t);e.quadraticCurveTo(n,r,o[0],o[1]),e.closePath();return}if(t.head>0){let o=a(t.t0,i-t.head),s=a((t.t0+t.t1)/2),c=a(t.t1,i-t.head);e.quadraticCurveTo(n,r,o[0],o[1]),e.lineTo(s[0],s[1]),e.lineTo(c[0],c[1])}else{let o=a(t.t0);e.quadraticCurveTo(n,r,o[0],o[1]),t.t1>t.t0&&e.arc(n,r,i,t.t0,t.t1)}e.quadraticCurveTo(n,r,o[0],o[1]),e.closePath()},y=(e,t)=>{if(t.color0===t.color1||typeof e.createLinearGradient!=`function`)return t.color0;let n=(t.s0+t.s1)/2,r=(t.t0+t.t1)/2,i=t.cx+t.r*Math.cos(n),a=t.cy+t.r*Math.sin(n),o=t.cx+t.r*Math.cos(r),s=t.cy+t.r*Math.sin(r);if(Math.hypot(o-i,s-a)<1)return t.color0;let c=e.createLinearGradient(i,a,o,s);return c.addColorStop(0,t.color0),c.addColorStop(1,t.color1),c},b=(e,t,n)=>{e.save();let a=t.enter,o=a?Math.max(0,Math.min(1,a.alpha)):1;a&&a.scale!==1&&(e.translate(a.cx,a.cy),e.scale(a.scale,a.scale),e.translate(-a.cx,-a.cy)),e.lineJoin=`round`,e.lineCap=`round`;for(let a of t.nodes){let c=a.hit!==void 0,g=p(a,n),_=g&&a.hit===n?.index,b=o*(a.alpha??1);if(n&&c&&!g&&(b*=t.dim),b<=.002)continue;e.globalAlpha=b;let x=_&&a.shift?a.shift[0]:0,S=_&&a.shift?a.shift[1]:0;switch(a.kind){case`sector`:s(e,a,x,S),e.fillStyle=a.fill,_?(e.save(),e.shadowColor=r,e.shadowBlur=14,e.shadowOffsetY=4,e.fill(),e.restore()):e.fill();break;case`polygon`:{l(e,a,x,S);let t=g&&a.hoverFill?a.hoverFill:a.fill;t&&(e.fillStyle=t,e.fill(),g&&a.brighten&&(e.fillStyle=i,e.fill())),a.stroke&&(e.strokeStyle=a.stroke,e.lineWidth=g&&a.hoverLineWidth?a.hoverLineWidth:a.lineWidth??1,e.stroke());break}case`rect`:u(e,a.x+x,a.y+S,a.width,a.height,a.radius),e.fillStyle=a.fill,e.fill(),g&&a.brighten&&(e.fillStyle=i,e.fill()),_&&a.hoverStroke&&a.width>3&&a.height>3&&(u(e,a.x+x+.75,a.y+S+.75,a.width-1.5,a.height-1.5,Math.max(0,a.radius-.75)),e.strokeStyle=a.hoverStroke,e.lineWidth=1.5,e.stroke());break;case`arc`:if(a.a1-a.a0<=1e-6||a.width<=0)break;e.beginPath(),e.arc(a.cx+x,a.cy+S,a.r,a.a0,a.a1),e.lineCap=a.cap,e.lineWidth=a.width,e.strokeStyle=a.color,e.stroke(),e.lineCap=`round`;break;case`circle`:{if(!a.fill&&!a.stroke)break;let t=g&&(a.indicator===void 0||a.indicator===n?.indicator),r=t&&a.hoverR?a.hoverR:a.r,i=a.cx+x,o=a.cy+S;t&&a.halo&&(f(e,i,o,r+5),e.fillStyle=a.halo,e.fill()),f(e,i,o,r),a.fill&&(e.fillStyle=a.fill,e.fill()),a.stroke&&(e.strokeStyle=a.stroke,e.lineWidth=a.lineWidth??1,e.stroke());break}case`line`:{let t=a.points;if(t.length<4)break;e.beginPath(),e.moveTo(t[0]+x,t[1]+S);for(let n=2;n<t.length;n+=2)e.lineTo(t[n]+(n===t.length-2?0:x),t[n+1]+(n===t.length-2?0:S));e.strokeStyle=a.color,e.lineWidth=a.width,a.dash&&d(e,a.dash),e.stroke(),a.dash&&d(e,[]);break}case`text`:{let t=a.indicator!==void 0&&n?.indicator===a.indicator;e.font=t&&a.hoverFont?a.hoverFont:a.font,e.textAlign=a.align,e.textBaseline=a.baseline;let r=!!a.rotate,i=a.x+x,o=a.y+S;r&&(e.save(),e.translate(i,o),e.rotate(a.rotate??0),i=0,o=0),a.halo&&(e.strokeStyle=a.halo,e.lineWidth=3,e.strokeText(a.text,i,o)),e.fillStyle=t&&a.hoverColor?a.hoverColor:a.color,e.fillText(a.text,i,o),r&&e.restore();break}case`link`:if(a.width<=0)break;g&&a.activeAlpha!==void 0&&(e.globalAlpha=o*a.activeAlpha),m(e,a),e.lineCap=`butt`,e.lineWidth=Math.max(1,a.width),e.strokeStyle=h(e,a),e.stroke(),e.lineCap=`round`;break;case`ribbon`:g&&a.activeAlpha!==void 0&&(e.globalAlpha=o*a.activeAlpha),v(e,a),e.fillStyle=y(e,a),e.fill(),_&&(e.strokeStyle=a.color0,e.lineWidth=1,e.stroke());break;case`guide`:{let t=n?.indicator;if(t===void 0||!a.ends[t])break;e.globalAlpha=o,e.beginPath(),e.moveTo(a.cx,a.cy),e.lineTo(a.ends[t][0],a.ends[t][1]),e.strokeStyle=a.color,e.lineWidth=1,d(e,[3,3]),e.stroke(),d(e,[]);break}}}e.restore()},x=(n,r,i)=>{n.save(),n.font=t.font(r,12),n.textBaseline=`middle`,n.textAlign=`left`;for(let t of i){let i=t.y+t.height/2;n.globalAlpha=t.hidden?.45:1,n.fillStyle=t.color,f(n,t.x+4.5,i,4.5),n.fill(),n.fillStyle=e.toCss(r.textMuted),n.fillText(t.name,t.x+15,i,Math.max(1,t.width-15)),t.hidden&&n.fillRect(t.x+15,i,t.width-15,1)}n.restore()},S=(n,i,a)=>{let{padding:o,lineHeight:s}=a;n.save(),n.globalAlpha=1,n.save(),n.shadowColor=r,n.shadowBlur=16,n.shadowOffsetY=6,u(n,a.x,a.y,a.width,a.height,8),n.fillStyle=e.toCss(i.background),n.fill(),n.restore(),u(n,a.x+.5,a.y+.5,a.width-1,a.height-1,8),n.strokeStyle=e.toCss(i.axis),n.lineWidth=1,n.stroke(),n.textBaseline=`middle`;let c=a.y+o+s/2,l=a.x+o+2,d=a.x+a.width-o-2;if(a.text){n.font=t.font(i,12),n.fillStyle=e.toCss(i.text),n.textAlign=`left`;for(let e of a.text)n.fillText(e,l,c),c+=s}else if(a.content){let{content:r}=a,o=l;r.color&&(n.fillStyle=r.color,f(n,o+4,c,4),n.fill(),o+=14),n.font=t.font(i,12,600),n.fillStyle=e.toCss(i.text),n.textAlign=`left`;for(let e of a.titleLines??[r.title])n.fillText(e,o,c),c+=s;for(let a of r.rows)o=l,a.color&&(n.fillStyle=a.color,f(n,o+4,c,4),n.fill(),o+=14),n.font=t.font(i,12,a.strong?600:400),n.textAlign=`left`,n.fillStyle=e.toCss(a.strong?i.text:i.textMuted),n.fillText(a.name,o,c),n.font=t.font(i,12,600),n.textAlign=`right`,n.fillStyle=e.toCss(i.text),n.fillText(a.value,d,c),c+=s}n.restore()};exports.drawShapeLegend=x,exports.drawShapeScene=b,exports.drawShapeTooltip=S,exports.loopControl=_,exports.nodeActive=p,exports.padAngleAt=o,exports.ribbonIsLoop=g,exports.roundRectPath=u,exports.sectorPad=a,exports.sectorPath=s;
2
2
  //# sourceMappingURL=draw.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"draw.cjs","names":["TAU","font","toCss","require_color","require_overlay","require_scene","SHADOW","BRIGHTEN","sectorPad","node","padAngleAt","r","half","sectorPath","cx","dx","cy","dy","span","a1","a0","ctx","r1","r0","edge","t","a","side","polar","po","outerSpan","pi","innerSpan","hasInner","thick","co","ci","s","c","e","c2","e2","d","m","polygonSubpath","n","points","px","reverse","i","py","radius","j","p","lenPrev","lenNext","polygonPath","roundRectPath","w","h","x","y","setDash","dash","circle","drawShapeScene","enter","scene","base","owned","active","hover","alpha","fill","focused","k","drawShapeLegend","theme","box","boxes","drawShapeTooltip","padding","lineHeight","left","right","line","content","row"],"sources":["../../../../../charts/src/engine/shapes/draw.ts"],"sourcesContent":["// Draws a ShapeScene on any CanvasRenderingContext2D (browser, OffscreenCanvas,\n// mini-programs). Only uses the widely available path APIs: arc, arcTo,\n// quadraticCurveTo (no roundRect, no Path2D, no fill rules).\n\nimport { toCss } from \"../color\";\nimport { font } from \"../overlay\";\nimport type { ChartTheme } from \"../theme\";\nimport type { ShapeLegendBox, ShapeTooltipBox } from \"./layout\";\nimport {\n TAU,\n type PolygonNode,\n type SectorNode,\n type ShapeHover,\n type ShapeScene,\n} from \"./scene\";\n\nconst SHADOW = \"rgba(15, 23, 42, 0.18)\";\nconst BRIGHTEN = \"rgba(255, 255, 255, 0.14)\";\n\n/** Gap of a sector, reduced so thin slices keep most of their arc */\nexport const sectorPad = (node: SectorNode) =>\n Math.max(0, Math.min(node.pad, (node.r1 * (node.a1 - node.a0)) / 3));\n\n/** Angle offset of a point at distance `r` from a radial edge moved by `half` px */\nexport const padAngleAt = (half: number, r: number) =>\n r > 0 ? Math.asin(Math.min(1, half / r)) : Math.PI / 2;\n\n/** Annular sector with pixel gaps and rounded corners */\nexport const sectorPath = (\n ctx: CanvasRenderingContext2D,\n node: SectorNode,\n dx = 0,\n dy = 0,\n) => {\n const cx = node.cx + dx;\n const cy = node.cy + dy;\n const { r0, r1, a0, a1 } = node;\n const span = a1 - a0;\n ctx.beginPath();\n if (span <= 0 || r1 <= r0) return;\n if (span >= TAU - 1e-6) {\n ctx.moveTo(cx + r1, cy);\n ctx.arc(cx, cy, r1, 0, TAU);\n if (r0 > 0) {\n ctx.moveTo(cx + r0, cy);\n ctx.arc(cx, cy, r0, TAU, 0, true);\n }\n ctx.closePath();\n return;\n }\n const half = sectorPad(node) / 2;\n // point at distance `r` on the start (side 1) or end (side -1) edge\n const edge = (a: number, side: 1 | -1, r: number): [number, number] => {\n const t = a + side * padAngleAt(half, r);\n return [cx + r * Math.cos(t), cy + r * Math.sin(t)];\n };\n const polar = (a: number, r: number): [number, number] => [\n cx + r * Math.cos(a),\n cy + r * Math.sin(a),\n ];\n\n const po = padAngleAt(half, r1);\n const outerSpan = Math.max(0, span - 2 * po);\n const pi = r0 > 0 ? padAngleAt(half, r0) : 0;\n const innerSpan = r0 > 0 ? span - 2 * pi : 0;\n const hasInner = r0 > 0 && innerSpan > 1e-4;\n const thick = r1 - r0;\n const co = Math.max(\n 0,\n Math.min(node.corner, thick / 2, (r1 * outerSpan) / 2 - 0.01),\n );\n const ci = hasInner\n ? Math.max(0, Math.min(node.corner, thick / 2, (r0 * innerSpan) / 2 - 0.01))\n : 0;\n\n // outer edge\n if (co > 0.5) {\n const s = edge(a0, 1, r1 - co);\n ctx.moveTo(s[0], s[1]);\n const c = edge(a0, 1, r1);\n const e = polar(a0 + po + co / r1, r1);\n ctx.quadraticCurveTo(c[0], c[1], e[0], e[1]);\n ctx.arc(cx, cy, r1, a0 + po + co / r1, a1 - po - co / r1);\n const c2 = edge(a1, -1, r1);\n const e2 = edge(a1, -1, r1 - co);\n ctx.quadraticCurveTo(c2[0], c2[1], e2[0], e2[1]);\n } else {\n const s = polar(a0 + po, r1);\n ctx.moveTo(s[0], s[1]);\n ctx.arc(cx, cy, r1, a0 + po, a1 - po);\n }\n\n // inner edge (or apex)\n if (hasInner) {\n if (ci > 0.5) {\n const s = edge(a1, -1, r0 + ci);\n ctx.lineTo(s[0], s[1]);\n const c = edge(a1, -1, r0);\n const e = polar(a1 - pi - ci / r0, r0);\n ctx.quadraticCurveTo(c[0], c[1], e[0], e[1]);\n ctx.arc(cx, cy, r0, a1 - pi - ci / r0, a0 + pi + ci / r0, true);\n const c2 = edge(a0, 1, r0);\n const e2 = edge(a0, 1, r0 + ci);\n ctx.quadraticCurveTo(c2[0], c2[1], e2[0], e2[1]);\n } else {\n const s = polar(a1 - pi, r0);\n ctx.lineTo(s[0], s[1]);\n ctx.arc(cx, cy, r0, a1 - pi, a0 + pi, true);\n }\n } else if (half <= 0) {\n ctx.lineTo(cx, cy);\n } else if (span < Math.PI) {\n // the two offset edges meet on the bisector\n const d = half / Math.sin(span / 2);\n const m = (a0 + a1) / 2;\n ctx.lineTo(cx + d * Math.cos(m), cy + d * Math.sin(m));\n } else {\n ctx.lineTo(\n cx + half * Math.cos(a1 - Math.PI / 2),\n cy + half * Math.sin(a1 - Math.PI / 2),\n );\n ctx.lineTo(\n cx + half * Math.cos(a0 + Math.PI / 2),\n cy + half * Math.sin(a0 + Math.PI / 2),\n );\n }\n ctx.closePath();\n};\n\n/** Closed polygon with rounded corners (adds a subpath) */\nconst polygonSubpath = (\n ctx: CanvasRenderingContext2D,\n points: readonly number[],\n radius: number,\n reverse: boolean,\n dx: number,\n dy: number,\n) => {\n const n = points.length >> 1;\n if (n < 2) return;\n const px = (i: number) => {\n const k = reverse ? n - 1 - i : i;\n return points[k * 2] + dx;\n };\n const py = (i: number) => {\n const k = reverse ? n - 1 - i : i;\n return points[k * 2 + 1] + dy;\n };\n if (radius <= 0 || n < 3) {\n ctx.moveTo(px(0), py(0));\n for (let i = 1; i < n; i++) ctx.lineTo(px(i), py(i));\n ctx.closePath();\n return;\n }\n // start in the middle of the last edge so every corner is rounded\n ctx.moveTo((px(n - 1) + px(0)) / 2, (py(n - 1) + py(0)) / 2);\n for (let i = 0; i < n; i++) {\n const j = (i + 1) % n;\n const p = (i + n - 1) % n;\n const lenPrev = Math.hypot(px(i) - px(p), py(i) - py(p));\n const lenNext = Math.hypot(px(j) - px(i), py(j) - py(i));\n const r = Math.min(radius, lenPrev / 2, lenNext / 2);\n if (r > 0.01) ctx.arcTo(px(i), py(i), px(j), py(j), r);\n else ctx.lineTo(px(i), py(i));\n }\n ctx.closePath();\n};\n\nconst polygonPath = (\n ctx: CanvasRenderingContext2D,\n node: PolygonNode,\n dx = 0,\n dy = 0,\n) => {\n ctx.beginPath();\n polygonSubpath(ctx, node.points, node.radius ?? 0, false, dx, dy);\n // reversed winding cuts the hole with the default nonzero rule\n if (node.hole) polygonSubpath(ctx, node.hole, 0, true, dx, dy);\n};\n\n/** Rounded rectangle path (no `ctx.roundRect`) */\nexport const roundRectPath = (\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n w: number,\n h: number,\n radius: number,\n) => {\n const r = Math.max(0, Math.min(radius, w / 2, h / 2));\n ctx.beginPath();\n if (r <= 0.01) {\n ctx.moveTo(x, y);\n ctx.lineTo(x + w, y);\n ctx.lineTo(x + w, y + h);\n ctx.lineTo(x, y + h);\n ctx.closePath();\n return;\n }\n ctx.moveTo(x + r, y);\n ctx.lineTo(x + w - r, y);\n ctx.arcTo(x + w, y, x + w, y + r, r);\n ctx.lineTo(x + w, y + h - r);\n ctx.arcTo(x + w, y + h, x + w - r, y + h, r);\n ctx.lineTo(x + r, y + h);\n ctx.arcTo(x, y + h, x, y + h - r, r);\n ctx.lineTo(x, y + r);\n ctx.arcTo(x, y, x + r, y, r);\n ctx.closePath();\n};\n\nconst setDash = (ctx: CanvasRenderingContext2D, dash: number[]) => {\n if (typeof ctx.setLineDash === \"function\") ctx.setLineDash(dash);\n};\n\nconst circle = (\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n r: number,\n) => {\n ctx.beginPath();\n ctx.arc(x, y, Math.max(0, r), 0, TAU);\n};\n\n/**\n * Draws a scene in CSS pixels (the caller sets the pixel-ratio transform and\n * clears the canvas). `hover` emphasizes an item and dims the others.\n */\nexport const drawShapeScene = (\n ctx: CanvasRenderingContext2D,\n scene: ShapeScene,\n hover: ShapeHover | null,\n) => {\n ctx.save();\n const enter = scene.enter;\n const base = enter ? Math.max(0, Math.min(1, enter.alpha)) : 1;\n if (enter && enter.scale !== 1) {\n ctx.translate(enter.cx, enter.cy);\n ctx.scale(enter.scale, enter.scale);\n ctx.translate(-enter.cx, -enter.cy);\n }\n ctx.lineJoin = \"round\";\n ctx.lineCap = \"round\";\n\n for (const node of scene.nodes) {\n const owned = node.hit !== undefined;\n const active = !!hover && owned && node.hit === hover.index;\n let alpha = base * (node.alpha ?? 1);\n if (hover && owned && !active) alpha *= scene.dim;\n if (alpha <= 0.002) continue;\n ctx.globalAlpha = alpha;\n const dx = active && node.shift ? node.shift[0] : 0;\n const dy = active && node.shift ? node.shift[1] : 0;\n\n switch (node.kind) {\n case \"sector\": {\n sectorPath(ctx, node, dx, dy);\n ctx.fillStyle = node.fill;\n if (active) {\n ctx.save();\n ctx.shadowColor = SHADOW;\n ctx.shadowBlur = 14;\n ctx.shadowOffsetY = 4;\n ctx.fill();\n ctx.restore();\n } else ctx.fill();\n break;\n }\n case \"polygon\": {\n polygonPath(ctx, node, dx, dy);\n const fill = active && node.hoverFill ? node.hoverFill : node.fill;\n if (fill) {\n ctx.fillStyle = fill;\n ctx.fill();\n if (active && node.brighten) {\n ctx.fillStyle = BRIGHTEN;\n ctx.fill();\n }\n }\n if (node.stroke) {\n ctx.strokeStyle = node.stroke;\n ctx.lineWidth =\n active && node.hoverLineWidth\n ? node.hoverLineWidth\n : (node.lineWidth ?? 1);\n ctx.stroke();\n }\n break;\n }\n case \"rect\": {\n roundRectPath(\n ctx,\n node.x + dx,\n node.y + dy,\n node.width,\n node.height,\n node.radius,\n );\n ctx.fillStyle = node.fill;\n ctx.fill();\n if (active && node.brighten) {\n ctx.fillStyle = BRIGHTEN;\n ctx.fill();\n }\n break;\n }\n case \"arc\": {\n if (node.a1 - node.a0 <= 1e-6 || node.width <= 0) break;\n ctx.beginPath();\n ctx.arc(node.cx + dx, node.cy + dy, node.r, node.a0, node.a1);\n ctx.lineCap = node.cap;\n ctx.lineWidth = node.width;\n ctx.strokeStyle = node.color;\n ctx.stroke();\n ctx.lineCap = \"round\";\n break;\n }\n case \"circle\": {\n if (!node.fill && !node.stroke) break;\n const focused =\n active &&\n (node.indicator === undefined || node.indicator === hover?.indicator);\n const r = focused && node.hoverR ? node.hoverR : node.r;\n const x = node.cx + dx;\n const y = node.cy + dy;\n if (focused && node.halo) {\n circle(ctx, x, y, r + 5);\n ctx.fillStyle = node.halo;\n ctx.fill();\n }\n circle(ctx, x, y, r);\n if (node.fill) {\n ctx.fillStyle = node.fill;\n ctx.fill();\n }\n if (node.stroke) {\n ctx.strokeStyle = node.stroke;\n ctx.lineWidth = node.lineWidth ?? 1;\n ctx.stroke();\n }\n break;\n }\n case \"line\": {\n const p = node.points;\n if (p.length < 4) break;\n ctx.beginPath();\n ctx.moveTo(p[0] + dx, p[1] + dy);\n // the last point stays: leader lines bend to their fixed label\n for (let i = 2; i < p.length; i += 2)\n ctx.lineTo(\n p[i] + (i === p.length - 2 ? 0 : dx),\n p[i + 1] + (i === p.length - 2 ? 0 : dy),\n );\n ctx.strokeStyle = node.color;\n ctx.lineWidth = node.width;\n if (node.dash) setDash(ctx, node.dash);\n ctx.stroke();\n if (node.dash) setDash(ctx, []);\n break;\n }\n case \"text\": {\n const focused =\n node.indicator !== undefined && hover?.indicator === node.indicator;\n ctx.font = focused && node.hoverFont ? node.hoverFont : node.font;\n ctx.fillStyle =\n focused && node.hoverColor ? node.hoverColor : node.color;\n ctx.textAlign = node.align;\n ctx.textBaseline = node.baseline;\n ctx.fillText(node.text, node.x + dx, node.y + dy);\n break;\n }\n case \"guide\": {\n const k = hover?.indicator;\n if (k === undefined || !node.ends[k]) break;\n ctx.globalAlpha = base;\n ctx.beginPath();\n ctx.moveTo(node.cx, node.cy);\n ctx.lineTo(node.ends[k][0], node.ends[k][1]);\n ctx.strokeStyle = node.color;\n ctx.lineWidth = 1;\n setDash(ctx, [3, 3]);\n ctx.stroke();\n setDash(ctx, []);\n break;\n }\n default:\n break;\n }\n }\n ctx.restore();\n};\n\n/** Legend drawn on a canvas (dots, muted names, struck-through when hidden) */\nexport const drawShapeLegend = (\n ctx: CanvasRenderingContext2D,\n theme: ChartTheme,\n boxes: readonly ShapeLegendBox[],\n) => {\n ctx.save();\n ctx.font = font(theme, 12);\n ctx.textBaseline = \"middle\";\n ctx.textAlign = \"left\";\n for (const box of boxes) {\n const cy = box.y + box.height / 2;\n ctx.globalAlpha = box.hidden ? 0.45 : 1;\n ctx.fillStyle = box.color;\n circle(ctx, box.x + 4.5, cy, 4.5);\n ctx.fill();\n ctx.fillStyle = toCss(theme.textMuted);\n ctx.fillText(box.name, box.x + 15, cy, Math.max(1, box.width - 15));\n if (box.hidden) ctx.fillRect(box.x + 15, cy, box.width - 15, 1);\n }\n ctx.restore();\n};\n\n/** Tooltip drawn on a canvas, styled like the DOM tooltip */\nexport const drawShapeTooltip = (\n ctx: CanvasRenderingContext2D,\n theme: ChartTheme,\n box: ShapeTooltipBox,\n) => {\n const { padding, lineHeight } = box;\n ctx.save();\n ctx.globalAlpha = 1;\n ctx.save();\n ctx.shadowColor = SHADOW;\n ctx.shadowBlur = 16;\n ctx.shadowOffsetY = 6;\n roundRectPath(ctx, box.x, box.y, box.width, box.height, 8);\n ctx.fillStyle = toCss(theme.background);\n ctx.fill();\n ctx.restore();\n roundRectPath(\n ctx,\n box.x + 0.5,\n box.y + 0.5,\n box.width - 1,\n box.height - 1,\n 8,\n );\n ctx.strokeStyle = toCss(theme.axis);\n ctx.lineWidth = 1;\n ctx.stroke();\n\n ctx.textBaseline = \"middle\";\n let y = box.y + padding + lineHeight / 2;\n const left = box.x + padding + 2;\n const right = box.x + box.width - padding - 2;\n if (box.text) {\n ctx.font = font(theme, 12);\n ctx.fillStyle = toCss(theme.text);\n ctx.textAlign = \"left\";\n for (const line of box.text) {\n ctx.fillText(line, left, y);\n y += lineHeight;\n }\n } else if (box.content) {\n const { content } = box;\n let x = left;\n if (content.color) {\n ctx.fillStyle = content.color;\n circle(ctx, x + 4, y, 4);\n ctx.fill();\n x += 14;\n }\n ctx.font = font(theme, 12, 600);\n ctx.fillStyle = toCss(theme.text);\n ctx.textAlign = \"left\";\n ctx.fillText(content.title, x, y);\n y += lineHeight;\n for (const row of content.rows) {\n x = left;\n if (row.color) {\n ctx.fillStyle = row.color;\n circle(ctx, x + 4, y, 4);\n ctx.fill();\n x += 14;\n }\n ctx.font = font(theme, 12, row.strong ? 600 : 400);\n ctx.textAlign = \"left\";\n ctx.fillStyle = toCss(row.strong ? theme.text : theme.textMuted);\n ctx.fillText(row.name, x, y);\n ctx.font = font(theme, 12, 600);\n ctx.textAlign = \"right\";\n ctx.fillStyle = toCss(theme.text);\n ctx.fillText(row.value, right, y);\n y += lineHeight;\n }\n }\n ctx.restore();\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"draw.cjs","names":["TAU","font","toCss","require_color","require_overlay","require_scene","SHADOW","BRIGHTEN","sectorPad","node","padAngleAt","r","half","sectorPath","cx","dx","cy","dy","span","a1","a0","ctx","r1","r0","edge","t","a","side","polar","po","outerSpan","pi","innerSpan","hasInner","thick","co","ci","s","c","e","c2","e2","d","m","polygonSubpath","n","points","px","reverse","i","py","radius","j","p","lenPrev","lenNext","polygonPath","roundRectPath","w","h","x","y","setDash","dash","circle","nodeActive","hover","linkPath","xm","linkStyle","gradient","ribbonIsLoop","loopControl","ribbonPath","at","qx","qy","p0","tip","p1","ribbonStyle","ms","mt","x0","y0","x1","y1","drawShapeScene","enter","scene","base","owned","active","focused","alpha","fill","big","strong","rotated","k","drawShapeLegend","theme","box","boxes","drawShapeTooltip","padding","lineHeight","left","right","line","content","row"],"sources":["../../../../../charts/src/engine/shapes/draw.ts"],"sourcesContent":["// Draws a ShapeScene on any CanvasRenderingContext2D (browser, OffscreenCanvas,\n// mini-programs). Only uses the widely available path APIs: arc, arcTo,\n// quadraticCurveTo, bezierCurveTo and linear gradients (no roundRect, no\n// Path2D, no fill rules).\n\nimport { toCss } from \"../color\";\nimport { font } from \"../overlay\";\nimport type { ChartTheme } from \"../theme\";\nimport type { ShapeLegendBox, ShapeTooltipBox } from \"./layout\";\nimport {\n TAU,\n type LinkNode,\n type PolygonNode,\n type RibbonNode,\n type SectorNode,\n type ShapeHover,\n type ShapeNode,\n type ShapeScene,\n} from \"./scene\";\n\nconst SHADOW = \"rgba(15, 23, 42, 0.18)\";\nconst BRIGHTEN = \"rgba(255, 255, 255, 0.14)\";\n\n/** Gap of a sector, reduced so thin slices keep most of their arc */\nexport const sectorPad = (node: SectorNode) =>\n Math.max(0, Math.min(node.pad, (node.r1 * (node.a1 - node.a0)) / 3));\n\n/** Angle offset of a point at distance `r` from a radial edge moved by `half` px */\nexport const padAngleAt = (half: number, r: number) =>\n r > 0 ? Math.asin(Math.min(1, half / r)) : Math.PI / 2;\n\n/** Annular sector with pixel gaps and rounded corners */\nexport const sectorPath = (\n ctx: CanvasRenderingContext2D,\n node: SectorNode,\n dx = 0,\n dy = 0,\n) => {\n const cx = node.cx + dx;\n const cy = node.cy + dy;\n const { r0, r1, a0, a1 } = node;\n const span = a1 - a0;\n ctx.beginPath();\n if (span <= 0 || r1 <= r0) return;\n if (span >= TAU - 1e-6) {\n ctx.moveTo(cx + r1, cy);\n ctx.arc(cx, cy, r1, 0, TAU);\n if (r0 > 0) {\n ctx.moveTo(cx + r0, cy);\n ctx.arc(cx, cy, r0, TAU, 0, true);\n }\n ctx.closePath();\n return;\n }\n const half = sectorPad(node) / 2;\n // point at distance `r` on the start (side 1) or end (side -1) edge\n const edge = (a: number, side: 1 | -1, r: number): [number, number] => {\n const t = a + side * padAngleAt(half, r);\n return [cx + r * Math.cos(t), cy + r * Math.sin(t)];\n };\n const polar = (a: number, r: number): [number, number] => [\n cx + r * Math.cos(a),\n cy + r * Math.sin(a),\n ];\n\n const po = padAngleAt(half, r1);\n const outerSpan = Math.max(0, span - 2 * po);\n const pi = r0 > 0 ? padAngleAt(half, r0) : 0;\n const innerSpan = r0 > 0 ? span - 2 * pi : 0;\n const hasInner = r0 > 0 && innerSpan > 1e-4;\n const thick = r1 - r0;\n const co = Math.max(\n 0,\n Math.min(node.corner, thick / 2, (r1 * outerSpan) / 2 - 0.01),\n );\n const ci = hasInner\n ? Math.max(0, Math.min(node.corner, thick / 2, (r0 * innerSpan) / 2 - 0.01))\n : 0;\n\n // outer edge\n if (co > 0.5) {\n const s = edge(a0, 1, r1 - co);\n ctx.moveTo(s[0], s[1]);\n const c = edge(a0, 1, r1);\n const e = polar(a0 + po + co / r1, r1);\n ctx.quadraticCurveTo(c[0], c[1], e[0], e[1]);\n ctx.arc(cx, cy, r1, a0 + po + co / r1, a1 - po - co / r1);\n const c2 = edge(a1, -1, r1);\n const e2 = edge(a1, -1, r1 - co);\n ctx.quadraticCurveTo(c2[0], c2[1], e2[0], e2[1]);\n } else {\n const s = polar(a0 + po, r1);\n ctx.moveTo(s[0], s[1]);\n ctx.arc(cx, cy, r1, a0 + po, a1 - po);\n }\n\n // inner edge (or apex)\n if (hasInner) {\n if (ci > 0.5) {\n const s = edge(a1, -1, r0 + ci);\n ctx.lineTo(s[0], s[1]);\n const c = edge(a1, -1, r0);\n const e = polar(a1 - pi - ci / r0, r0);\n ctx.quadraticCurveTo(c[0], c[1], e[0], e[1]);\n ctx.arc(cx, cy, r0, a1 - pi - ci / r0, a0 + pi + ci / r0, true);\n const c2 = edge(a0, 1, r0);\n const e2 = edge(a0, 1, r0 + ci);\n ctx.quadraticCurveTo(c2[0], c2[1], e2[0], e2[1]);\n } else {\n const s = polar(a1 - pi, r0);\n ctx.lineTo(s[0], s[1]);\n ctx.arc(cx, cy, r0, a1 - pi, a0 + pi, true);\n }\n } else if (half <= 0) {\n ctx.lineTo(cx, cy);\n } else if (span < Math.PI) {\n // the two offset edges meet on the bisector\n const d = half / Math.sin(span / 2);\n const m = (a0 + a1) / 2;\n ctx.lineTo(cx + d * Math.cos(m), cy + d * Math.sin(m));\n } else {\n ctx.lineTo(\n cx + half * Math.cos(a1 - Math.PI / 2),\n cy + half * Math.sin(a1 - Math.PI / 2),\n );\n ctx.lineTo(\n cx + half * Math.cos(a0 + Math.PI / 2),\n cy + half * Math.sin(a0 + Math.PI / 2),\n );\n }\n ctx.closePath();\n};\n\n/** Closed polygon with rounded corners (adds a subpath) */\nconst polygonSubpath = (\n ctx: CanvasRenderingContext2D,\n points: readonly number[],\n radius: number,\n reverse: boolean,\n dx: number,\n dy: number,\n) => {\n const n = points.length >> 1;\n if (n < 2) return;\n const px = (i: number) => {\n const k = reverse ? n - 1 - i : i;\n return points[k * 2] + dx;\n };\n const py = (i: number) => {\n const k = reverse ? n - 1 - i : i;\n return points[k * 2 + 1] + dy;\n };\n if (radius <= 0 || n < 3) {\n ctx.moveTo(px(0), py(0));\n for (let i = 1; i < n; i++) ctx.lineTo(px(i), py(i));\n ctx.closePath();\n return;\n }\n // start in the middle of the last edge so every corner is rounded\n ctx.moveTo((px(n - 1) + px(0)) / 2, (py(n - 1) + py(0)) / 2);\n for (let i = 0; i < n; i++) {\n const j = (i + 1) % n;\n const p = (i + n - 1) % n;\n const lenPrev = Math.hypot(px(i) - px(p), py(i) - py(p));\n const lenNext = Math.hypot(px(j) - px(i), py(j) - py(i));\n const r = Math.min(radius, lenPrev / 2, lenNext / 2);\n if (r > 0.01) ctx.arcTo(px(i), py(i), px(j), py(j), r);\n else ctx.lineTo(px(i), py(i));\n }\n ctx.closePath();\n};\n\nconst polygonPath = (\n ctx: CanvasRenderingContext2D,\n node: PolygonNode,\n dx = 0,\n dy = 0,\n) => {\n ctx.beginPath();\n polygonSubpath(ctx, node.points, node.radius ?? 0, false, dx, dy);\n // reversed winding cuts the hole with the default nonzero rule\n if (node.hole) polygonSubpath(ctx, node.hole, 0, true, dx, dy);\n};\n\n/** Rounded rectangle path (no `ctx.roundRect`) */\nexport const roundRectPath = (\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n w: number,\n h: number,\n radius: number,\n) => {\n const r = Math.max(0, Math.min(radius, w / 2, h / 2));\n ctx.beginPath();\n if (r <= 0.01) {\n ctx.moveTo(x, y);\n ctx.lineTo(x + w, y);\n ctx.lineTo(x + w, y + h);\n ctx.lineTo(x, y + h);\n ctx.closePath();\n return;\n }\n ctx.moveTo(x + r, y);\n ctx.lineTo(x + w - r, y);\n ctx.arcTo(x + w, y, x + w, y + r, r);\n ctx.lineTo(x + w, y + h - r);\n ctx.arcTo(x + w, y + h, x + w - r, y + h, r);\n ctx.lineTo(x + r, y + h);\n ctx.arcTo(x, y + h, x, y + h - r, r);\n ctx.lineTo(x, y + r);\n ctx.arcTo(x, y, x + r, y, r);\n ctx.closePath();\n};\n\nconst setDash = (ctx: CanvasRenderingContext2D, dash: number[]) => {\n if (typeof ctx.setLineDash === \"function\") ctx.setLineDash(dash);\n};\n\nconst circle = (\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n r: number,\n) => {\n ctx.beginPath();\n ctx.arc(x, y, Math.max(0, r), 0, TAU);\n};\n\n/** Whether a node is emphasized by the hovered item (its own or an `also` one) */\nexport const nodeActive = (node: ShapeNode, hover: ShapeHover | null) =>\n !!hover &&\n node.hit !== undefined &&\n (node.hit === hover.index || !!node.also?.includes(hover.index));\n\n/** Center line of a sankey link */\nconst linkPath = (ctx: CanvasRenderingContext2D, node: LinkNode) => {\n const xm = (node.x0 + node.x1) / 2;\n ctx.beginPath();\n ctx.moveTo(node.x0, node.y0);\n ctx.bezierCurveTo(xm, node.y0, xm, node.y1, node.x1, node.y1);\n};\n\nconst linkStyle = (ctx: CanvasRenderingContext2D, node: LinkNode) => {\n if (\n node.color0 === node.color1 ||\n typeof ctx.createLinearGradient !== \"function\" ||\n Math.abs(node.x1 - node.x0) < 1\n )\n return node.color0;\n const gradient = ctx.createLinearGradient(node.x0, 0, node.x1, 0);\n gradient.addColorStop(0, node.color0);\n gradient.addColorStop(1, node.color1);\n return gradient;\n};\n\n/** Whether a chord ribbon joins an arc to itself (a self flow) */\nexport const ribbonIsLoop = (node: RibbonNode) =>\n Math.abs(node.s0 - node.t0) < 1e-9 && Math.abs(node.s1 - node.t1) < 1e-9;\n\n/** Control point of the inward bulge of a self-flow ribbon */\nexport const loopControl = (node: RibbonNode): [number, number] => {\n const m = (node.s0 + node.s1) / 2;\n return [\n node.cx + node.r * 0.4 * Math.cos(m),\n node.cy + node.r * 0.4 * Math.sin(m),\n ];\n};\n\n/** Outline of a chord ribbon: source arc, curve, target arc or arrowhead, curve */\nconst ribbonPath = (ctx: CanvasRenderingContext2D, node: RibbonNode) => {\n const { cx, cy, r } = node;\n const at = (a: number, radius = r): [number, number] => [\n cx + radius * Math.cos(a),\n cy + radius * Math.sin(a),\n ];\n ctx.beginPath();\n const s = at(node.s0);\n ctx.moveTo(s[0], s[1]);\n if (node.s1 > node.s0) ctx.arc(cx, cy, r, node.s0, node.s1);\n if (ribbonIsLoop(node)) {\n const [qx, qy] = loopControl(node);\n ctx.quadraticCurveTo(qx, qy, s[0], s[1]);\n ctx.closePath();\n return;\n }\n if (node.head > 0) {\n const p0 = at(node.t0, r - node.head);\n const tip = at((node.t0 + node.t1) / 2);\n const p1 = at(node.t1, r - node.head);\n ctx.quadraticCurveTo(cx, cy, p0[0], p0[1]);\n ctx.lineTo(tip[0], tip[1]);\n ctx.lineTo(p1[0], p1[1]);\n } else {\n const t = at(node.t0);\n ctx.quadraticCurveTo(cx, cy, t[0], t[1]);\n if (node.t1 > node.t0) ctx.arc(cx, cy, r, node.t0, node.t1);\n }\n ctx.quadraticCurveTo(cx, cy, s[0], s[1]);\n ctx.closePath();\n};\n\nconst ribbonStyle = (ctx: CanvasRenderingContext2D, node: RibbonNode) => {\n if (\n node.color0 === node.color1 ||\n typeof ctx.createLinearGradient !== \"function\"\n )\n return node.color0;\n const ms = (node.s0 + node.s1) / 2;\n const mt = (node.t0 + node.t1) / 2;\n const x0 = node.cx + node.r * Math.cos(ms);\n const y0 = node.cy + node.r * Math.sin(ms);\n const x1 = node.cx + node.r * Math.cos(mt);\n const y1 = node.cy + node.r * Math.sin(mt);\n if (Math.hypot(x1 - x0, y1 - y0) < 1) return node.color0;\n const gradient = ctx.createLinearGradient(x0, y0, x1, y1);\n gradient.addColorStop(0, node.color0);\n gradient.addColorStop(1, node.color1);\n return gradient;\n};\n\n/**\n * Draws a scene in CSS pixels (the caller sets the pixel-ratio transform and\n * clears the canvas). `hover` emphasizes an item and dims the others.\n */\nexport const drawShapeScene = (\n ctx: CanvasRenderingContext2D,\n scene: ShapeScene,\n hover: ShapeHover | null,\n) => {\n ctx.save();\n const enter = scene.enter;\n const base = enter ? Math.max(0, Math.min(1, enter.alpha)) : 1;\n if (enter && enter.scale !== 1) {\n ctx.translate(enter.cx, enter.cy);\n ctx.scale(enter.scale, enter.scale);\n ctx.translate(-enter.cx, -enter.cy);\n }\n ctx.lineJoin = \"round\";\n ctx.lineCap = \"round\";\n\n for (const node of scene.nodes) {\n const owned = node.hit !== undefined;\n const active = nodeActive(node, hover);\n // the hovered item itself (shadows, pop-out); `also` nodes are only emphasized\n const focused = active && node.hit === hover?.index;\n let alpha = base * (node.alpha ?? 1);\n if (hover && owned && !active) alpha *= scene.dim;\n if (alpha <= 0.002) continue;\n ctx.globalAlpha = alpha;\n const dx = focused && node.shift ? node.shift[0] : 0;\n const dy = focused && node.shift ? node.shift[1] : 0;\n\n switch (node.kind) {\n case \"sector\": {\n sectorPath(ctx, node, dx, dy);\n ctx.fillStyle = node.fill;\n if (focused) {\n ctx.save();\n ctx.shadowColor = SHADOW;\n ctx.shadowBlur = 14;\n ctx.shadowOffsetY = 4;\n ctx.fill();\n ctx.restore();\n } else ctx.fill();\n break;\n }\n case \"polygon\": {\n polygonPath(ctx, node, dx, dy);\n const fill = active && node.hoverFill ? node.hoverFill : node.fill;\n if (fill) {\n ctx.fillStyle = fill;\n ctx.fill();\n if (active && node.brighten) {\n ctx.fillStyle = BRIGHTEN;\n ctx.fill();\n }\n }\n if (node.stroke) {\n ctx.strokeStyle = node.stroke;\n ctx.lineWidth =\n active && node.hoverLineWidth\n ? node.hoverLineWidth\n : (node.lineWidth ?? 1);\n ctx.stroke();\n }\n break;\n }\n case \"rect\": {\n roundRectPath(\n ctx,\n node.x + dx,\n node.y + dy,\n node.width,\n node.height,\n node.radius,\n );\n ctx.fillStyle = node.fill;\n ctx.fill();\n if (active && node.brighten) {\n ctx.fillStyle = BRIGHTEN;\n ctx.fill();\n }\n if (focused && node.hoverStroke && node.width > 3 && node.height > 3) {\n roundRectPath(\n ctx,\n node.x + dx + 0.75,\n node.y + dy + 0.75,\n node.width - 1.5,\n node.height - 1.5,\n Math.max(0, node.radius - 0.75),\n );\n ctx.strokeStyle = node.hoverStroke;\n ctx.lineWidth = 1.5;\n ctx.stroke();\n }\n break;\n }\n case \"arc\": {\n if (node.a1 - node.a0 <= 1e-6 || node.width <= 0) break;\n ctx.beginPath();\n ctx.arc(node.cx + dx, node.cy + dy, node.r, node.a0, node.a1);\n ctx.lineCap = node.cap;\n ctx.lineWidth = node.width;\n ctx.strokeStyle = node.color;\n ctx.stroke();\n ctx.lineCap = \"round\";\n break;\n }\n case \"circle\": {\n if (!node.fill && !node.stroke) break;\n const big =\n active &&\n (node.indicator === undefined || node.indicator === hover?.indicator);\n const r = big && node.hoverR ? node.hoverR : node.r;\n const x = node.cx + dx;\n const y = node.cy + dy;\n if (big && node.halo) {\n circle(ctx, x, y, r + 5);\n ctx.fillStyle = node.halo;\n ctx.fill();\n }\n circle(ctx, x, y, r);\n if (node.fill) {\n ctx.fillStyle = node.fill;\n ctx.fill();\n }\n if (node.stroke) {\n ctx.strokeStyle = node.stroke;\n ctx.lineWidth = node.lineWidth ?? 1;\n ctx.stroke();\n }\n break;\n }\n case \"line\": {\n const p = node.points;\n if (p.length < 4) break;\n ctx.beginPath();\n ctx.moveTo(p[0] + dx, p[1] + dy);\n // the last point stays: leader lines bend to their fixed label\n for (let i = 2; i < p.length; i += 2)\n ctx.lineTo(\n p[i] + (i === p.length - 2 ? 0 : dx),\n p[i + 1] + (i === p.length - 2 ? 0 : dy),\n );\n ctx.strokeStyle = node.color;\n ctx.lineWidth = node.width;\n if (node.dash) setDash(ctx, node.dash);\n ctx.stroke();\n if (node.dash) setDash(ctx, []);\n break;\n }\n case \"text\": {\n const strong =\n node.indicator !== undefined && hover?.indicator === node.indicator;\n ctx.font = strong && node.hoverFont ? node.hoverFont : node.font;\n ctx.textAlign = node.align;\n ctx.textBaseline = node.baseline;\n const rotated = !!node.rotate;\n let x = node.x + dx;\n let y = node.y + dy;\n if (rotated) {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(node.rotate ?? 0);\n x = 0;\n y = 0;\n }\n if (node.halo) {\n ctx.strokeStyle = node.halo;\n ctx.lineWidth = 3;\n ctx.strokeText(node.text, x, y);\n }\n ctx.fillStyle =\n strong && node.hoverColor ? node.hoverColor : node.color;\n ctx.fillText(node.text, x, y);\n if (rotated) ctx.restore();\n break;\n }\n case \"link\": {\n if (node.width <= 0) break;\n if (active && node.activeAlpha !== undefined)\n ctx.globalAlpha = base * node.activeAlpha;\n linkPath(ctx, node);\n ctx.lineCap = \"butt\";\n ctx.lineWidth = Math.max(1, node.width);\n ctx.strokeStyle = linkStyle(ctx, node);\n ctx.stroke();\n ctx.lineCap = \"round\";\n break;\n }\n case \"ribbon\": {\n if (active && node.activeAlpha !== undefined)\n ctx.globalAlpha = base * node.activeAlpha;\n ribbonPath(ctx, node);\n ctx.fillStyle = ribbonStyle(ctx, node);\n ctx.fill();\n if (focused) {\n ctx.strokeStyle = node.color0;\n ctx.lineWidth = 1;\n ctx.stroke();\n }\n break;\n }\n case \"guide\": {\n const k = hover?.indicator;\n if (k === undefined || !node.ends[k]) break;\n ctx.globalAlpha = base;\n ctx.beginPath();\n ctx.moveTo(node.cx, node.cy);\n ctx.lineTo(node.ends[k][0], node.ends[k][1]);\n ctx.strokeStyle = node.color;\n ctx.lineWidth = 1;\n setDash(ctx, [3, 3]);\n ctx.stroke();\n setDash(ctx, []);\n break;\n }\n default:\n break;\n }\n }\n ctx.restore();\n};\n\n/** Legend drawn on a canvas (dots, muted names, struck-through when hidden) */\nexport const drawShapeLegend = (\n ctx: CanvasRenderingContext2D,\n theme: ChartTheme,\n boxes: readonly ShapeLegendBox[],\n) => {\n ctx.save();\n ctx.font = font(theme, 12);\n ctx.textBaseline = \"middle\";\n ctx.textAlign = \"left\";\n for (const box of boxes) {\n const cy = box.y + box.height / 2;\n ctx.globalAlpha = box.hidden ? 0.45 : 1;\n ctx.fillStyle = box.color;\n circle(ctx, box.x + 4.5, cy, 4.5);\n ctx.fill();\n ctx.fillStyle = toCss(theme.textMuted);\n ctx.fillText(box.name, box.x + 15, cy, Math.max(1, box.width - 15));\n if (box.hidden) ctx.fillRect(box.x + 15, cy, box.width - 15, 1);\n }\n ctx.restore();\n};\n\n/** Tooltip drawn on a canvas, styled like the DOM tooltip */\nexport const drawShapeTooltip = (\n ctx: CanvasRenderingContext2D,\n theme: ChartTheme,\n box: ShapeTooltipBox,\n) => {\n const { padding, lineHeight } = box;\n ctx.save();\n ctx.globalAlpha = 1;\n ctx.save();\n ctx.shadowColor = SHADOW;\n ctx.shadowBlur = 16;\n ctx.shadowOffsetY = 6;\n roundRectPath(ctx, box.x, box.y, box.width, box.height, 8);\n ctx.fillStyle = toCss(theme.background);\n ctx.fill();\n ctx.restore();\n roundRectPath(\n ctx,\n box.x + 0.5,\n box.y + 0.5,\n box.width - 1,\n box.height - 1,\n 8,\n );\n ctx.strokeStyle = toCss(theme.axis);\n ctx.lineWidth = 1;\n ctx.stroke();\n\n ctx.textBaseline = \"middle\";\n let y = box.y + padding + lineHeight / 2;\n const left = box.x + padding + 2;\n const right = box.x + box.width - padding - 2;\n if (box.text) {\n ctx.font = font(theme, 12);\n ctx.fillStyle = toCss(theme.text);\n ctx.textAlign = \"left\";\n for (const line of box.text) {\n ctx.fillText(line, left, y);\n y += lineHeight;\n }\n } else if (box.content) {\n const { content } = box;\n let x = left;\n if (content.color) {\n ctx.fillStyle = content.color;\n circle(ctx, x + 4, y, 4);\n ctx.fill();\n x += 14;\n }\n ctx.font = font(theme, 12, 600);\n ctx.fillStyle = toCss(theme.text);\n ctx.textAlign = \"left\";\n for (const line of box.titleLines ?? [content.title]) {\n ctx.fillText(line, x, y);\n y += lineHeight;\n }\n for (const row of content.rows) {\n x = left;\n if (row.color) {\n ctx.fillStyle = row.color;\n circle(ctx, x + 4, y, 4);\n ctx.fill();\n x += 14;\n }\n ctx.font = font(theme, 12, row.strong ? 600 : 400);\n ctx.textAlign = \"left\";\n ctx.fillStyle = toCss(row.strong ? theme.text : theme.textMuted);\n ctx.fillText(row.name, x, y);\n ctx.font = font(theme, 12, 600);\n ctx.textAlign = \"right\";\n ctx.fillStyle = toCss(theme.text);\n ctx.fillText(row.value, right, y);\n y += lineHeight;\n }\n }\n ctx.restore();\n};\n"],"mappings":"qFAoBA,IAAMM,EAAS,yBACTC,EAAW,4BAGJC,EAAa,GACxB,KAAK,IAAI,EAAG,KAAK,IAAIC,EAAK,IAAMA,EAAK,IAAMA,EAAK,GAAKA,EAAK,IAAO,CAAC,CAAC,EAGxDC,GAAc,EAAc,IACvCC,EAAI,EAAI,KAAK,KAAK,KAAK,IAAI,EAAGC,EAAOD,CAAC,CAAC,EAAI,KAAK,GAAK,EAG1CE,GACX,EACA,EACA,EAAK,EACL,EAAK,IACF,CACH,IAAMC,EAAKL,EAAK,GAAKM,EACfC,EAAKP,EAAK,GAAKQ,EACf,CAAE,KAAI,KAAI,KAAI,MAAOR,EACrBS,EAAOC,EAAKC,EAElB,GADAC,EAAI,UAAU,EACVH,GAAQ,GAAKI,GAAMC,EAAI,OAC3B,GAAIL,GAAQlB,EAAAA,IAAM,KAAM,CACtBqB,EAAI,OAAOP,EAAKQ,EAAIN,CAAE,EACtBK,EAAI,IAAIP,EAAIE,EAAIM,EAAI,EAAGtB,EAAAA,GAAG,EACtBuB,EAAK,IACPF,EAAI,OAAOP,EAAKS,EAAIP,CAAE,EACtBK,EAAI,IAAIP,EAAIE,EAAIO,EAAIvB,EAAAA,IAAK,EAAG,EAAI,GAElCqB,EAAI,UAAU,EACd,MACF,CACA,IAAMT,EAAOJ,EAAUC,CAAI,EAAI,EAEzBe,GAAQ,EAAW,EAAc,IAAgC,CACrE,IAAMC,EAAIC,EAAIC,EAAOjB,EAAWE,EAAMD,CAAC,EACvC,MAAO,CAACG,EAAKH,EAAI,KAAK,IAAIc,CAAC,EAAGT,EAAKL,EAAI,KAAK,IAAIc,CAAC,CAAC,CACpD,EACMG,GAAS,EAAW,IAAgC,CACxDd,EAAKH,EAAI,KAAK,IAAIe,CAAC,EACnBV,EAAKL,EAAI,KAAK,IAAIe,CAAC,CACrB,EAEMG,EAAKnB,EAAWE,EAAMU,CAAE,EACxBQ,EAAY,KAAK,IAAI,EAAGZ,EAAO,EAAIW,CAAE,EACrCE,EAAKR,EAAK,EAAIb,EAAWE,EAAMW,CAAE,EAAI,EACrCS,EAAYT,EAAK,EAAIL,EAAO,EAAIa,EAAK,EACrCE,EAAWV,EAAK,GAAKS,EAAY,KACjCE,EAAQZ,EAAKC,EACbY,EAAK,KAAK,IACd,EACA,KAAK,IAAI1B,EAAK,OAAQyB,EAAQ,EAAIZ,EAAKQ,EAAa,EAAI,GAAI,CAC9D,EACMM,EAAKH,EACP,KAAK,IAAI,EAAG,KAAK,IAAIxB,EAAK,OAAQyB,EAAQ,EAAIX,EAAKS,EAAa,EAAI,GAAI,CAAC,EACzE,EAGJ,GAAIG,EAAK,GAAK,CACZ,IAAME,EAAIb,EAAKJ,EAAI,EAAGE,EAAKa,CAAE,EAC7Bd,EAAI,OAAOgB,EAAE,GAAIA,EAAE,EAAE,EACrB,IAAMC,EAAId,EAAKJ,EAAI,EAAGE,CAAE,EAClBiB,EAAIX,EAAMR,EAAKS,EAAKM,EAAKb,EAAIA,CAAE,EACrCD,EAAI,iBAAiBiB,EAAE,GAAIA,EAAE,GAAIC,EAAE,GAAIA,EAAE,EAAE,EAC3ClB,EAAI,IAAIP,EAAIE,EAAIM,EAAIF,EAAKS,EAAKM,EAAKb,EAAIH,EAAKU,EAAKM,EAAKb,CAAE,EACxD,IAAMkB,EAAKhB,EAAKL,EAAI,GAAIG,CAAE,EACpBmB,EAAKjB,EAAKL,EAAI,GAAIG,EAAKa,CAAE,EAC/Bd,EAAI,iBAAiBmB,EAAG,GAAIA,EAAG,GAAIC,EAAG,GAAIA,EAAG,EAAE,CACjD,KAAO,CACL,IAAMJ,EAAIT,EAAMR,EAAKS,EAAIP,CAAE,EAC3BD,EAAI,OAAOgB,EAAE,GAAIA,EAAE,EAAE,EACrBhB,EAAI,IAAIP,EAAIE,EAAIM,EAAIF,EAAKS,EAAIV,EAAKU,CAAE,CACtC,CAGA,GAAII,EAAU,CACZ,GAAIG,EAAK,GAAK,CACZ,IAAMC,EAAIb,EAAKL,EAAI,GAAII,EAAKa,CAAE,EAC9Bf,EAAI,OAAOgB,EAAE,GAAIA,EAAE,EAAE,EACrB,IAAMC,EAAId,EAAKL,EAAI,GAAII,CAAE,EACnBgB,EAAIX,EAAMT,EAAKY,EAAKK,EAAKb,EAAIA,CAAE,EACrCF,EAAI,iBAAiBiB,EAAE,GAAIA,EAAE,GAAIC,EAAE,GAAIA,EAAE,EAAE,EAC3ClB,EAAI,IAAIP,EAAIE,EAAIO,EAAIJ,EAAKY,EAAKK,EAAKb,EAAIH,EAAKW,EAAKK,EAAKb,EAAI,EAAI,EAC9D,IAAMiB,EAAKhB,EAAKJ,EAAI,EAAGG,CAAE,EACnBkB,EAAKjB,EAAKJ,EAAI,EAAGG,EAAKa,CAAE,EAC9Bf,EAAI,iBAAiBmB,EAAG,GAAIA,EAAG,GAAIC,EAAG,GAAIA,EAAG,EAAE,CACjD,KAAO,CACL,IAAMJ,EAAIT,EAAMT,EAAKY,EAAIR,CAAE,EAC3BF,EAAI,OAAOgB,EAAE,GAAIA,EAAE,EAAE,EACrBhB,EAAI,IAAIP,EAAIE,EAAIO,EAAIJ,EAAKY,EAAIX,EAAKW,EAAI,EAAI,CAC5C,CACF,MAAO,GAAInB,GAAQ,EACjBS,EAAI,OAAOP,EAAIE,CAAE,OACZ,GAAIE,EAAO,KAAK,GAAI,CAEzB,IAAMwB,EAAI9B,EAAO,KAAK,IAAIM,EAAO,CAAC,EAC5ByB,GAAKvB,EAAKD,GAAM,EACtBE,EAAI,OAAOP,EAAK4B,EAAI,KAAK,IAAIC,CAAC,EAAG3B,EAAK0B,EAAI,KAAK,IAAIC,CAAC,CAAC,CACvD,MACEtB,EAAI,OACFP,EAAKF,EAAO,KAAK,IAAIO,EAAK,KAAK,GAAK,CAAC,EACrCH,EAAKJ,EAAO,KAAK,IAAIO,EAAK,KAAK,GAAK,CAAC,CACvC,EACAE,EAAI,OACFP,EAAKF,EAAO,KAAK,IAAIQ,EAAK,KAAK,GAAK,CAAC,EACrCJ,EAAKJ,EAAO,KAAK,IAAIQ,EAAK,KAAK,GAAK,CAAC,CACvC,EAEFC,EAAI,UAAU,CAChB,EAGMuB,GACJ,EACA,EACA,EACA,EACA,EACA,IACG,CACH,IAAMC,EAAIC,EAAO,QAAU,EAC3B,GAAID,EAAI,EAAG,OACX,IAAME,EAAM,GAEHD,GADGE,EAAUH,EAAI,EAAII,EAAIA,GACd,GAAKlC,EAEnBmC,EAAM,GAEHJ,GADGE,EAAUH,EAAI,EAAII,EAAIA,GACd,EAAI,GAAKhC,EAE7B,GAAIkC,GAAU,GAAKN,EAAI,EAAG,CACxBxB,EAAI,OAAO0B,EAAG,CAAC,EAAGG,EAAG,CAAC,CAAC,EACvB,IAAK,IAAID,EAAI,EAAGA,EAAIJ,EAAG,IAAKxB,EAAI,OAAO0B,EAAGE,CAAC,EAAGC,EAAGD,CAAC,CAAC,EACnD5B,EAAI,UAAU,EACd,MACF,CAEAA,EAAI,QAAQ0B,EAAGF,EAAI,CAAC,EAAIE,EAAG,CAAC,GAAK,GAAIG,EAAGL,EAAI,CAAC,EAAIK,EAAG,CAAC,GAAK,CAAC,EAC3D,IAAK,IAAID,EAAI,EAAGA,EAAIJ,EAAG,IAAK,CAC1B,IAAMO,GAAKH,EAAI,GAAKJ,EACdQ,GAAKJ,EAAIJ,EAAI,GAAKA,EAClBS,EAAU,KAAK,MAAMP,EAAGE,CAAC,EAAIF,EAAGM,CAAC,EAAGH,EAAGD,CAAC,EAAIC,EAAGG,CAAC,CAAC,EACjDE,EAAU,KAAK,MAAMR,EAAGK,CAAC,EAAIL,EAAGE,CAAC,EAAGC,EAAGE,CAAC,EAAIF,EAAGD,CAAC,CAAC,EACjDtC,EAAI,KAAK,IAAIwC,EAAQG,EAAU,EAAGC,EAAU,CAAC,EAC/C5C,EAAI,IAAMU,EAAI,MAAM0B,EAAGE,CAAC,EAAGC,EAAGD,CAAC,EAAGF,EAAGK,CAAC,EAAGF,EAAGE,CAAC,EAAGzC,CAAC,EAChDU,EAAI,OAAO0B,EAAGE,CAAC,EAAGC,EAAGD,CAAC,CAAC,CAC9B,CACA5B,EAAI,UAAU,CAChB,EAEMmC,GACJ,EACA,EACA,EAAK,EACL,EAAK,IACF,CACHnC,EAAI,UAAU,EACduB,EAAevB,EAAKZ,EAAK,OAAQA,EAAK,QAAU,EAAG,GAAOM,EAAIE,CAAE,EAE5DR,EAAK,MAAMmC,EAAevB,EAAKZ,EAAK,KAAM,EAAG,GAAMM,EAAIE,CAAE,CAC/D,EAGawC,GACX,EACA,EACA,EACA,EACA,EACA,IACG,CACH,IAAM9C,EAAI,KAAK,IAAI,EAAG,KAAK,IAAIwC,EAAQO,EAAI,EAAGC,EAAI,CAAC,CAAC,EAEpD,GADAtC,EAAI,UAAU,EACVV,GAAK,IAAM,CACbU,EAAI,OAAOuC,EAAGC,CAAC,EACfxC,EAAI,OAAOuC,EAAIF,EAAGG,CAAC,EACnBxC,EAAI,OAAOuC,EAAIF,EAAGG,EAAIF,CAAC,EACvBtC,EAAI,OAAOuC,EAAGC,EAAIF,CAAC,EACnBtC,EAAI,UAAU,EACd,MACF,CACAA,EAAI,OAAOuC,EAAIjD,EAAGkD,CAAC,EACnBxC,EAAI,OAAOuC,EAAIF,EAAI/C,EAAGkD,CAAC,EACvBxC,EAAI,MAAMuC,EAAIF,EAAGG,EAAGD,EAAIF,EAAGG,EAAIlD,EAAGA,CAAC,EACnCU,EAAI,OAAOuC,EAAIF,EAAGG,EAAIF,EAAIhD,CAAC,EAC3BU,EAAI,MAAMuC,EAAIF,EAAGG,EAAIF,EAAGC,EAAIF,EAAI/C,EAAGkD,EAAIF,EAAGhD,CAAC,EAC3CU,EAAI,OAAOuC,EAAIjD,EAAGkD,EAAIF,CAAC,EACvBtC,EAAI,MAAMuC,EAAGC,EAAIF,EAAGC,EAAGC,EAAIF,EAAIhD,EAAGA,CAAC,EACnCU,EAAI,OAAOuC,EAAGC,EAAIlD,CAAC,EACnBU,EAAI,MAAMuC,EAAGC,EAAGD,EAAIjD,EAAGkD,EAAGlD,CAAC,EAC3BU,EAAI,UAAU,CAChB,EAEMyC,GAAW,EAA+B,IAAmB,CAC7D,OAAOzC,EAAI,aAAgB,YAAYA,EAAI,YAAY0C,CAAI,CACjE,EAEMC,GACJ,EACA,EACA,EACA,IACG,CACH3C,EAAI,UAAU,EACdA,EAAI,IAAIuC,EAAGC,EAAG,KAAK,IAAI,EAAGlD,CAAC,EAAG,EAAGX,EAAAA,GAAG,CACtC,EAGaiE,GAAc,EAAiB,IAC1C,CAAC,CAACC,GACFzD,EAAK,MAAQ,IAAA,KACZA,EAAK,MAAQyD,EAAM,OAAS,CAAC,CAACzD,EAAK,MAAM,SAASyD,EAAM,KAAK,GAG1DC,GAAY,EAA+B,IAAmB,CAClE,IAAMC,GAAM3D,EAAK,GAAKA,EAAK,IAAM,EACjCY,EAAI,UAAU,EACdA,EAAI,OAAOZ,EAAK,GAAIA,EAAK,EAAE,EAC3BY,EAAI,cAAc+C,EAAI3D,EAAK,GAAI2D,EAAI3D,EAAK,GAAIA,EAAK,GAAIA,EAAK,EAAE,CAC9D,EAEM4D,GAAa,EAA+B,IAAmB,CACnE,GACE5D,EAAK,SAAWA,EAAK,QACrB,OAAOY,EAAI,sBAAyB,YACpC,KAAK,IAAIZ,EAAK,GAAKA,EAAK,EAAE,EAAI,EAE9B,OAAOA,EAAK,OACd,IAAM6D,EAAWjD,EAAI,qBAAqBZ,EAAK,GAAI,EAAGA,EAAK,GAAI,CAAC,EAGhE,OAFA6D,EAAS,aAAa,EAAG7D,EAAK,MAAM,EACpC6D,EAAS,aAAa,EAAG7D,EAAK,MAAM,EAC7B6D,CACT,EAGaC,EAAgB,GAC3B,KAAK,IAAI9D,EAAK,GAAKA,EAAK,EAAE,EAAI,MAAQ,KAAK,IAAIA,EAAK,GAAKA,EAAK,EAAE,EAAI,KAGzD+D,EAAe,GAAuC,CACjE,IAAM7B,GAAKlC,EAAK,GAAKA,EAAK,IAAM,EAChC,MAAO,CACLA,EAAK,GAAKA,EAAK,EAAI,GAAM,KAAK,IAAIkC,CAAC,EACnClC,EAAK,GAAKA,EAAK,EAAI,GAAM,KAAK,IAAIkC,CAAC,CACrC,CACF,EAGM8B,GAAc,EAA+B,IAAqB,CACtE,GAAM,CAAE,KAAI,KAAI,KAAMhE,EAChBiE,GAAM,EAAW,EAAS/D,IAAwB,CACtDG,EAAKqC,EAAS,KAAK,IAAIzB,CAAC,EACxBV,EAAKmC,EAAS,KAAK,IAAIzB,CAAC,CAC1B,EACAL,EAAI,UAAU,EACd,IAAMgB,EAAIqC,EAAGjE,EAAK,EAAE,EAGpB,GAFAY,EAAI,OAAOgB,EAAE,GAAIA,EAAE,EAAE,EACjB5B,EAAK,GAAKA,EAAK,IAAIY,EAAI,IAAIP,EAAIE,EAAIL,EAAGF,EAAK,GAAIA,EAAK,EAAE,EACtD8D,EAAa9D,CAAI,EAAG,CACtB,GAAM,CAACkE,EAAIC,GAAMJ,EAAY/D,CAAI,EACjCY,EAAI,iBAAiBsD,EAAIC,EAAIvC,EAAE,GAAIA,EAAE,EAAE,EACvChB,EAAI,UAAU,EACd,MACF,CACA,GAAIZ,EAAK,KAAO,EAAG,CACjB,IAAMoE,EAAKH,EAAGjE,EAAK,GAAIE,EAAIF,EAAK,IAAI,EAC9BqE,EAAMJ,GAAIjE,EAAK,GAAKA,EAAK,IAAM,CAAC,EAChCsE,EAAKL,EAAGjE,EAAK,GAAIE,EAAIF,EAAK,IAAI,EACpCY,EAAI,iBAAiBP,EAAIE,EAAI6D,EAAG,GAAIA,EAAG,EAAE,EACzCxD,EAAI,OAAOyD,EAAI,GAAIA,EAAI,EAAE,EACzBzD,EAAI,OAAO0D,EAAG,GAAIA,EAAG,EAAE,CACzB,KAAO,CACL,IAAMtD,EAAIiD,EAAGjE,EAAK,EAAE,EACpBY,EAAI,iBAAiBP,EAAIE,EAAIS,EAAE,GAAIA,EAAE,EAAE,EACnChB,EAAK,GAAKA,EAAK,IAAIY,EAAI,IAAIP,EAAIE,EAAIL,EAAGF,EAAK,GAAIA,EAAK,EAAE,CAC5D,CACAY,EAAI,iBAAiBP,EAAIE,EAAIqB,EAAE,GAAIA,EAAE,EAAE,EACvChB,EAAI,UAAU,CAChB,EAEM2D,GAAe,EAA+B,IAAqB,CACvE,GACEvE,EAAK,SAAWA,EAAK,QACrB,OAAOY,EAAI,sBAAyB,WAEpC,OAAOZ,EAAK,OACd,IAAMwE,GAAMxE,EAAK,GAAKA,EAAK,IAAM,EAC3ByE,GAAMzE,EAAK,GAAKA,EAAK,IAAM,EAC3B0E,EAAK1E,EAAK,GAAKA,EAAK,EAAI,KAAK,IAAIwE,CAAE,EACnCG,EAAK3E,EAAK,GAAKA,EAAK,EAAI,KAAK,IAAIwE,CAAE,EACnCI,EAAK5E,EAAK,GAAKA,EAAK,EAAI,KAAK,IAAIyE,CAAE,EACnCI,EAAK7E,EAAK,GAAKA,EAAK,EAAI,KAAK,IAAIyE,CAAE,EACzC,GAAI,KAAK,MAAMG,EAAKF,EAAIG,EAAKF,CAAE,EAAI,EAAG,OAAO3E,EAAK,OAClD,IAAM6D,EAAWjD,EAAI,qBAAqB8D,EAAIC,EAAIC,EAAIC,CAAE,EAGxD,OAFAhB,EAAS,aAAa,EAAG7D,EAAK,MAAM,EACpC6D,EAAS,aAAa,EAAG7D,EAAK,MAAM,EAC7B6D,CACT,EAMaiB,GACX,EACA,EACA,IACG,CACHlE,EAAI,KAAK,EACT,IAAMmE,EAAQC,EAAM,MACdC,EAAOF,EAAQ,KAAK,IAAI,EAAG,KAAK,IAAI,EAAGA,EAAM,KAAK,CAAC,EAAI,EACzDA,GAASA,EAAM,QAAU,IAC3BnE,EAAI,UAAUmE,EAAM,GAAIA,EAAM,EAAE,EAChCnE,EAAI,MAAMmE,EAAM,MAAOA,EAAM,KAAK,EAClCnE,EAAI,UAAU,CAACmE,EAAM,GAAI,CAACA,EAAM,EAAE,GAEpC,EAAI,SAAW,QACf,EAAI,QAAU,QAEd,IAAK,IAAM/E,KAAQgF,EAAM,MAAO,CAC9B,IAAME,EAAQlF,EAAK,MAAQ,IAAA,GACrBmF,EAAS3B,EAAWxD,EAAMyD,CAAK,EAE/B2B,EAAUD,GAAUnF,EAAK,MAAQyD,GAAO,MAC1C4B,EAAQJ,GAAQjF,EAAK,OAAS,GAElC,GADIyD,GAASyB,GAAS,CAACC,IAAQ,GAASH,EAAM,KAC1CK,GAAS,KAAO,SACpB,EAAI,YAAcA,EAClB,IAAM/E,EAAK8E,GAAWpF,EAAK,MAAQA,EAAK,MAAM,GAAK,EAC7CQ,EAAK4E,GAAWpF,EAAK,MAAQA,EAAK,MAAM,GAAK,EAEnD,OAAQA,EAAK,KAAb,CACE,IAAK,SACHI,EAAWQ,EAAKZ,EAAMM,EAAIE,CAAE,EAC5B,EAAI,UAAYR,EAAK,KACjBoF,GACFxE,EAAI,KAAK,EACT,EAAI,YAAcf,EAClB,EAAI,WAAa,GACjB,EAAI,cAAgB,EACpBe,EAAI,KAAK,EACTA,EAAI,QAAQ,GACPA,EAAI,KAAK,EAChB,MAEF,IAAK,UAAW,CACdmC,EAAYnC,EAAKZ,EAAMM,EAAIE,CAAE,EAC7B,IAAM8E,EAAOH,GAAUnF,EAAK,UAAYA,EAAK,UAAYA,EAAK,KAC1DsF,IACF,EAAI,UAAYA,EAChB1E,EAAI,KAAK,EACLuE,GAAUnF,EAAK,WACjB,EAAI,UAAYF,EAChBc,EAAI,KAAK,IAGTZ,EAAK,SACP,EAAI,YAAcA,EAAK,OACvB,EAAI,UACFmF,GAAUnF,EAAK,eACXA,EAAK,eACJA,EAAK,WAAa,EACzBY,EAAI,OAAO,GAEb,KACF,CACA,IAAK,OACHoC,EACEpC,EACAZ,EAAK,EAAIM,EACTN,EAAK,EAAIQ,EACTR,EAAK,MACLA,EAAK,OACLA,EAAK,MACP,EACA,EAAI,UAAYA,EAAK,KACrBY,EAAI,KAAK,EACLuE,GAAUnF,EAAK,WACjB,EAAI,UAAYF,EAChBc,EAAI,KAAK,GAEPwE,GAAWpF,EAAK,aAAeA,EAAK,MAAQ,GAAKA,EAAK,OAAS,IACjEgD,EACEpC,EACAZ,EAAK,EAAIM,EAAK,IACdN,EAAK,EAAIQ,EAAK,IACdR,EAAK,MAAQ,IACbA,EAAK,OAAS,IACd,KAAK,IAAI,EAAGA,EAAK,OAAS,GAAI,CAChC,EACA,EAAI,YAAcA,EAAK,YACvB,EAAI,UAAY,IAChBY,EAAI,OAAO,GAEb,MAEF,IAAK,MACH,GAAIZ,EAAK,GAAKA,EAAK,IAAM,MAAQA,EAAK,OAAS,EAAG,MAClDY,EAAI,UAAU,EACdA,EAAI,IAAIZ,EAAK,GAAKM,EAAIN,EAAK,GAAKQ,EAAIR,EAAK,EAAGA,EAAK,GAAIA,EAAK,EAAE,EAC5D,EAAI,QAAUA,EAAK,IACnB,EAAI,UAAYA,EAAK,MACrB,EAAI,YAAcA,EAAK,MACvBY,EAAI,OAAO,EACX,EAAI,QAAU,QACd,MAEF,IAAK,SAAU,CACb,GAAI,CAACZ,EAAK,MAAQ,CAACA,EAAK,OAAQ,MAChC,IAAMuF,EACJJ,IACCnF,EAAK,YAAc,IAAA,IAAaA,EAAK,YAAcyD,GAAO,WACvD,EAAI8B,GAAOvF,EAAK,OAASA,EAAK,OAASA,EAAK,EAC5CmD,EAAInD,EAAK,GAAKM,EACd8C,EAAIpD,EAAK,GAAKQ,EAChB+E,GAAOvF,EAAK,OACduD,EAAO3C,EAAKuC,EAAGC,EAAG,EAAI,CAAC,EACvB,EAAI,UAAYpD,EAAK,KACrBY,EAAI,KAAK,GAEX2C,EAAO3C,EAAKuC,EAAGC,EAAG,CAAC,EACfpD,EAAK,OACP,EAAI,UAAYA,EAAK,KACrBY,EAAI,KAAK,GAEPZ,EAAK,SACP,EAAI,YAAcA,EAAK,OACvB,EAAI,UAAYA,EAAK,WAAa,EAClCY,EAAI,OAAO,GAEb,KACF,CACA,IAAK,OAAQ,CACX,IAAMgC,EAAI5C,EAAK,OACf,GAAI4C,EAAE,OAAS,EAAG,MAClBhC,EAAI,UAAU,EACdA,EAAI,OAAOgC,EAAE,GAAKtC,EAAIsC,EAAE,GAAKpC,CAAE,EAE/B,IAAK,IAAIgC,EAAI,EAAGA,EAAII,EAAE,OAAQ,GAAK,EACjChC,EAAI,OACFgC,EAAEJ,IAAMA,IAAMI,EAAE,OAAS,EAAI,EAAItC,GACjCsC,EAAEJ,EAAI,IAAMA,IAAMI,EAAE,OAAS,EAAI,EAAIpC,EACvC,EACF,EAAI,YAAcR,EAAK,MACvB,EAAI,UAAYA,EAAK,MACjBA,EAAK,MAAMqD,EAAQzC,EAAKZ,EAAK,IAAI,EACrCY,EAAI,OAAO,EACPZ,EAAK,MAAMqD,EAAQzC,EAAK,CAAC,CAAC,EAC9B,KACF,CACA,IAAK,OAAQ,CACX,IAAM4E,EACJxF,EAAK,YAAc,IAAA,IAAayD,GAAO,YAAczD,EAAK,UAC5D,EAAI,KAAOwF,GAAUxF,EAAK,UAAYA,EAAK,UAAYA,EAAK,KAC5D,EAAI,UAAYA,EAAK,MACrB,EAAI,aAAeA,EAAK,SACxB,IAAMyF,EAAU,CAAC,CAACzF,EAAK,OACnBmD,EAAInD,EAAK,EAAIM,EACb8C,EAAIpD,EAAK,EAAIQ,EACbiF,IACF7E,EAAI,KAAK,EACTA,EAAI,UAAUuC,EAAGC,CAAC,EAClBxC,EAAI,OAAOZ,EAAK,QAAU,CAAC,EAC3B,EAAI,EACJ,EAAI,GAEFA,EAAK,OACP,EAAI,YAAcA,EAAK,KACvB,EAAI,UAAY,EAChBY,EAAI,WAAWZ,EAAK,KAAMmD,EAAGC,CAAC,GAEhC,EAAI,UACFoC,GAAUxF,EAAK,WAAaA,EAAK,WAAaA,EAAK,MACrDY,EAAI,SAASZ,EAAK,KAAMmD,EAAGC,CAAC,EACxBqC,GAAS7E,EAAI,QAAQ,EACzB,KACF,CACA,IAAK,OACH,GAAIZ,EAAK,OAAS,EAAG,MACjBmF,GAAUnF,EAAK,cAAgB,IAAA,KACjC,EAAI,YAAciF,EAAOjF,EAAK,aAChC0D,EAAS9C,EAAKZ,CAAI,EAClB,EAAI,QAAU,OACd,EAAI,UAAY,KAAK,IAAI,EAAGA,EAAK,KAAK,EACtC,EAAI,YAAc4D,EAAUhD,EAAKZ,CAAI,EACrCY,EAAI,OAAO,EACX,EAAI,QAAU,QACd,MAEF,IAAK,SACCuE,GAAUnF,EAAK,cAAgB,IAAA,KACjC,EAAI,YAAciF,EAAOjF,EAAK,aAChCgE,EAAWpD,EAAKZ,CAAI,EACpB,EAAI,UAAYuE,EAAY3D,EAAKZ,CAAI,EACrCY,EAAI,KAAK,EACLwE,IACF,EAAI,YAAcpF,EAAK,OACvB,EAAI,UAAY,EAChBY,EAAI,OAAO,GAEb,MAEF,IAAK,QAAS,CACZ,IAAM8E,EAAIjC,GAAO,UACjB,GAAIiC,IAAM,IAAA,IAAa,CAAC1F,EAAK,KAAK0F,GAAI,MACtC,EAAI,YAAcT,EAClBrE,EAAI,UAAU,EACdA,EAAI,OAAOZ,EAAK,GAAIA,EAAK,EAAE,EAC3BY,EAAI,OAAOZ,EAAK,KAAK0F,EAAE,CAAC,GAAI1F,EAAK,KAAK0F,EAAE,CAAC,EAAE,EAC3C,EAAI,YAAc1F,EAAK,MACvB,EAAI,UAAY,EAChBqD,EAAQzC,EAAK,CAAC,EAAG,CAAC,CAAC,EACnBA,EAAI,OAAO,EACXyC,EAAQzC,EAAK,CAAC,CAAC,EACf,KACF,CAGF,CACF,CACAA,EAAI,QAAQ,CACd,EAGa+E,GACX,EACA,EACA,IACG,CACH/E,EAAI,KAAK,EACT,EAAI,KAAOpB,EAAAA,KAAKoG,EAAO,EAAE,EACzB,EAAI,aAAe,SACnB,EAAI,UAAY,OAChB,IAAK,IAAMC,KAAOC,EAAO,CACvB,IAAMvF,EAAKsF,EAAI,EAAIA,EAAI,OAAS,EAChC,EAAI,YAAcA,EAAI,OAAS,IAAO,EACtC,EAAI,UAAYA,EAAI,MACpBtC,EAAO3C,EAAKiF,EAAI,EAAI,IAAKtF,EAAI,GAAG,EAChCK,EAAI,KAAK,EACT,EAAI,UAAYnB,EAAAA,MAAMmG,EAAM,SAAS,EACrChF,EAAI,SAASiF,EAAI,KAAMA,EAAI,EAAI,GAAItF,EAAI,KAAK,IAAI,EAAGsF,EAAI,MAAQ,EAAE,CAAC,EAC9DA,EAAI,QAAQjF,EAAI,SAASiF,EAAI,EAAI,GAAItF,EAAIsF,EAAI,MAAQ,GAAI,CAAC,CAChE,CACAjF,EAAI,QAAQ,CACd,EAGamF,GACX,EACA,EACA,IACG,CACH,GAAM,CAAE,UAAS,cAAeF,EAChCjF,EAAI,KAAK,EACT,EAAI,YAAc,EAClBA,EAAI,KAAK,EACT,EAAI,YAAcf,EAClB,EAAI,WAAa,GACjB,EAAI,cAAgB,EACpBmD,EAAcpC,EAAKiF,EAAI,EAAGA,EAAI,EAAGA,EAAI,MAAOA,EAAI,OAAQ,CAAC,EACzD,EAAI,UAAYpG,EAAAA,MAAMmG,EAAM,UAAU,EACtChF,EAAI,KAAK,EACTA,EAAI,QAAQ,EACZoC,EACEpC,EACAiF,EAAI,EAAI,GACRA,EAAI,EAAI,GACRA,EAAI,MAAQ,EACZA,EAAI,OAAS,EACb,CACF,EACA,EAAI,YAAcpG,EAAAA,MAAMmG,EAAM,IAAI,EAClC,EAAI,UAAY,EAChBhF,EAAI,OAAO,EAEX,EAAI,aAAe,SACnB,IAAIwC,EAAIyC,EAAI,EAAIG,EAAUC,EAAa,EACjCC,EAAOL,EAAI,EAAIG,EAAU,EACzBG,EAAQN,EAAI,EAAIA,EAAI,MAAQG,EAAU,EAC5C,GAAIH,EAAI,KAAM,CACZ,EAAI,KAAOrG,EAAAA,KAAKoG,EAAO,EAAE,EACzB,EAAI,UAAYnG,EAAAA,MAAMmG,EAAM,IAAI,EAChC,EAAI,UAAY,OAChB,IAAK,IAAMQ,KAAQP,EAAI,KACrBjF,EAAI,SAASwF,EAAMF,EAAM9C,CAAC,EAC1B,GAAK6C,CAET,MAAO,GAAIJ,EAAI,QAAS,CACtB,GAAM,CAAE,WAAYA,EAChB1C,EAAI+C,EACJG,EAAQ,QACV,EAAI,UAAYA,EAAQ,MACxB9C,EAAO3C,EAAKuC,EAAI,EAAGC,EAAG,CAAC,EACvBxC,EAAI,KAAK,EACT,GAAK,IAEP,EAAI,KAAOpB,EAAAA,KAAKoG,EAAO,GAAI,GAAG,EAC9B,EAAI,UAAYnG,EAAAA,MAAMmG,EAAM,IAAI,EAChC,EAAI,UAAY,OAChB,IAAK,IAAMQ,KAAQP,EAAI,YAAc,CAACQ,EAAQ,KAAK,EACjDzF,EAAI,SAASwF,EAAMjD,EAAGC,CAAC,EACvB,GAAK6C,EAEP,IAAK,IAAMK,KAAOD,EAAQ,KACxB,EAAIH,EACAI,EAAI,QACN,EAAI,UAAYA,EAAI,MACpB/C,EAAO3C,EAAKuC,EAAI,EAAGC,EAAG,CAAC,EACvBxC,EAAI,KAAK,EACT,GAAK,IAEP,EAAI,KAAOpB,EAAAA,KAAKoG,EAAO,GAAIU,EAAI,OAAS,IAAM,GAAG,EACjD,EAAI,UAAY,OAChB,EAAI,UAAY7G,EAAAA,MAAM6G,EAAI,OAASV,EAAM,KAAOA,EAAM,SAAS,EAC/DhF,EAAI,SAAS0F,EAAI,KAAMnD,EAAGC,CAAC,EAC3B,EAAI,KAAO5D,EAAAA,KAAKoG,EAAO,GAAI,GAAG,EAC9B,EAAI,UAAY,QAChB,EAAI,UAAYnG,EAAAA,MAAMmG,EAAM,IAAI,EAChChF,EAAI,SAAS0F,EAAI,MAAOH,EAAO/C,CAAC,EAChC,GAAK6C,CAET,CACArF,EAAI,QAAQ,CACd"}
@@ -1,6 +1,6 @@
1
1
  import { ChartTheme } from '../theme.cjs';
2
2
  import { ShapeLegendBox, ShapeTooltipBox } from './layout.cjs';
3
- import { SectorNode, ShapeHover, ShapeScene } from './scene.cjs';
3
+ import { RibbonNode, SectorNode, ShapeHover, ShapeNode, ShapeScene } from './scene.cjs';
4
4
  /** Gap of a sector, reduced so thin slices keep most of their arc */
5
5
  export declare const sectorPad: (node: SectorNode) => number;
6
6
  /** Angle offset of a point at distance `r` from a radial edge moved by `half` px */
@@ -9,6 +9,12 @@ export declare const padAngleAt: (half: number, r: number) => number;
9
9
  export declare const sectorPath: (ctx: CanvasRenderingContext2D, node: SectorNode, dx?: number, dy?: number) => void;
10
10
  /** Rounded rectangle path (no `ctx.roundRect`) */
11
11
  export declare const roundRectPath: (ctx: CanvasRenderingContext2D, x: number, y: number, w: number, h: number, radius: number) => void;
12
+ /** Whether a node is emphasized by the hovered item (its own or an `also` one) */
13
+ export declare const nodeActive: (node: ShapeNode, hover: ShapeHover | null) => boolean;
14
+ /** Whether a chord ribbon joins an arc to itself (a self flow) */
15
+ export declare const ribbonIsLoop: (node: RibbonNode) => boolean;
16
+ /** Control point of the inward bulge of a self-flow ribbon */
17
+ export declare const loopControl: (node: RibbonNode) => [number, number];
12
18
  /**
13
19
  * Draws a scene in CSS pixels (the caller sets the pixel-ratio transform and
14
20
  * clears the canvas). `hover` emphasizes an item and dims the others.
@@ -1,6 +1,6 @@
1
1
  import { ChartTheme } from '../theme.js';
2
2
  import { ShapeLegendBox, ShapeTooltipBox } from './layout.js';
3
- import { SectorNode, ShapeHover, ShapeScene } from './scene.js';
3
+ import { RibbonNode, SectorNode, ShapeHover, ShapeNode, ShapeScene } from './scene.js';
4
4
  /** Gap of a sector, reduced so thin slices keep most of their arc */
5
5
  export declare const sectorPad: (node: SectorNode) => number;
6
6
  /** Angle offset of a point at distance `r` from a radial edge moved by `half` px */
@@ -9,6 +9,12 @@ export declare const padAngleAt: (half: number, r: number) => number;
9
9
  export declare const sectorPath: (ctx: CanvasRenderingContext2D, node: SectorNode, dx?: number, dy?: number) => void;
10
10
  /** Rounded rectangle path (no `ctx.roundRect`) */
11
11
  export declare const roundRectPath: (ctx: CanvasRenderingContext2D, x: number, y: number, w: number, h: number, radius: number) => void;
12
+ /** Whether a node is emphasized by the hovered item (its own or an `also` one) */
13
+ export declare const nodeActive: (node: ShapeNode, hover: ShapeHover | null) => boolean;
14
+ /** Whether a chord ribbon joins an arc to itself (a self flow) */
15
+ export declare const ribbonIsLoop: (node: RibbonNode) => boolean;
16
+ /** Control point of the inward bulge of a self-flow ribbon */
17
+ export declare const loopControl: (node: RibbonNode) => [number, number];
12
18
  /**
13
19
  * Draws a scene in CSS pixels (the caller sets the pixel-ratio transform and
14
20
  * clears the canvas). `hover` emphasizes an item and dims the others.
@@ -71,51 +71,93 @@ var r = "rgba(15, 23, 42, 0.18)", i = "rgba(255, 255, 255, 0.14)", a = (e) => Ma
71
71
  typeof e.setLineDash == "function" && e.setLineDash(t);
72
72
  }, f = (e, t, r, i) => {
73
73
  e.beginPath(), e.arc(t, r, Math.max(0, i), 0, n);
74
- }, p = (e, t, n) => {
74
+ }, p = (e, t) => !!t && e.hit !== void 0 && (e.hit === t.index || !!e.also?.includes(t.index)), m = (e, t) => {
75
+ let n = (t.x0 + t.x1) / 2;
76
+ e.beginPath(), e.moveTo(t.x0, t.y0), e.bezierCurveTo(n, t.y0, n, t.y1, t.x1, t.y1);
77
+ }, h = (e, t) => {
78
+ if (t.color0 === t.color1 || typeof e.createLinearGradient != "function" || Math.abs(t.x1 - t.x0) < 1) return t.color0;
79
+ let n = e.createLinearGradient(t.x0, 0, t.x1, 0);
80
+ return n.addColorStop(0, t.color0), n.addColorStop(1, t.color1), n;
81
+ }, g = (e) => Math.abs(e.s0 - e.t0) < 1e-9 && Math.abs(e.s1 - e.t1) < 1e-9, _ = (e) => {
82
+ let t = (e.s0 + e.s1) / 2;
83
+ return [e.cx + e.r * .4 * Math.cos(t), e.cy + e.r * .4 * Math.sin(t)];
84
+ }, v = (e, t) => {
85
+ let { cx: n, cy: r, r: i } = t, a = (e, t = i) => [n + t * Math.cos(e), r + t * Math.sin(e)];
86
+ e.beginPath();
87
+ let o = a(t.s0);
88
+ if (e.moveTo(o[0], o[1]), t.s1 > t.s0 && e.arc(n, r, i, t.s0, t.s1), g(t)) {
89
+ let [n, r] = _(t);
90
+ e.quadraticCurveTo(n, r, o[0], o[1]), e.closePath();
91
+ return;
92
+ }
93
+ if (t.head > 0) {
94
+ let o = a(t.t0, i - t.head), s = a((t.t0 + t.t1) / 2), c = a(t.t1, i - t.head);
95
+ e.quadraticCurveTo(n, r, o[0], o[1]), e.lineTo(s[0], s[1]), e.lineTo(c[0], c[1]);
96
+ } else {
97
+ let o = a(t.t0);
98
+ e.quadraticCurveTo(n, r, o[0], o[1]), t.t1 > t.t0 && e.arc(n, r, i, t.t0, t.t1);
99
+ }
100
+ e.quadraticCurveTo(n, r, o[0], o[1]), e.closePath();
101
+ }, y = (e, t) => {
102
+ if (t.color0 === t.color1 || typeof e.createLinearGradient != "function") return t.color0;
103
+ let n = (t.s0 + t.s1) / 2, r = (t.t0 + t.t1) / 2, i = t.cx + t.r * Math.cos(n), a = t.cy + t.r * Math.sin(n), o = t.cx + t.r * Math.cos(r), s = t.cy + t.r * Math.sin(r);
104
+ if (Math.hypot(o - i, s - a) < 1) return t.color0;
105
+ let c = e.createLinearGradient(i, a, o, s);
106
+ return c.addColorStop(0, t.color0), c.addColorStop(1, t.color1), c;
107
+ }, b = (e, t, n) => {
75
108
  e.save();
76
109
  let a = t.enter, o = a ? Math.max(0, Math.min(1, a.alpha)) : 1;
77
110
  a && a.scale !== 1 && (e.translate(a.cx, a.cy), e.scale(a.scale, a.scale), e.translate(-a.cx, -a.cy)), e.lineJoin = "round", e.lineCap = "round";
78
111
  for (let a of t.nodes) {
79
- let c = a.hit !== void 0, p = !!n && c && a.hit === n.index, m = o * (a.alpha ?? 1);
80
- if (n && c && !p && (m *= t.dim), m <= .002) continue;
81
- e.globalAlpha = m;
82
- let h = p && a.shift ? a.shift[0] : 0, g = p && a.shift ? a.shift[1] : 0;
112
+ let c = a.hit !== void 0, g = p(a, n), _ = g && a.hit === n?.index, b = o * (a.alpha ?? 1);
113
+ if (n && c && !g && (b *= t.dim), b <= .002) continue;
114
+ e.globalAlpha = b;
115
+ let x = _ && a.shift ? a.shift[0] : 0, S = _ && a.shift ? a.shift[1] : 0;
83
116
  switch (a.kind) {
84
117
  case "sector":
85
- s(e, a, h, g), e.fillStyle = a.fill, p ? (e.save(), e.shadowColor = r, e.shadowBlur = 14, e.shadowOffsetY = 4, e.fill(), e.restore()) : e.fill();
118
+ s(e, a, x, S), e.fillStyle = a.fill, _ ? (e.save(), e.shadowColor = r, e.shadowBlur = 14, e.shadowOffsetY = 4, e.fill(), e.restore()) : e.fill();
86
119
  break;
87
120
  case "polygon": {
88
- l(e, a, h, g);
89
- let t = p && a.hoverFill ? a.hoverFill : a.fill;
90
- t && (e.fillStyle = t, e.fill(), p && a.brighten && (e.fillStyle = i, e.fill())), a.stroke && (e.strokeStyle = a.stroke, e.lineWidth = p && a.hoverLineWidth ? a.hoverLineWidth : a.lineWidth ?? 1, e.stroke());
121
+ l(e, a, x, S);
122
+ let t = g && a.hoverFill ? a.hoverFill : a.fill;
123
+ t && (e.fillStyle = t, e.fill(), g && a.brighten && (e.fillStyle = i, e.fill())), a.stroke && (e.strokeStyle = a.stroke, e.lineWidth = g && a.hoverLineWidth ? a.hoverLineWidth : a.lineWidth ?? 1, e.stroke());
91
124
  break;
92
125
  }
93
126
  case "rect":
94
- u(e, a.x + h, a.y + g, a.width, a.height, a.radius), e.fillStyle = a.fill, e.fill(), p && a.brighten && (e.fillStyle = i, e.fill());
127
+ u(e, a.x + x, a.y + S, a.width, a.height, a.radius), e.fillStyle = a.fill, e.fill(), g && a.brighten && (e.fillStyle = i, e.fill()), _ && a.hoverStroke && a.width > 3 && a.height > 3 && (u(e, a.x + x + .75, a.y + S + .75, a.width - 1.5, a.height - 1.5, Math.max(0, a.radius - .75)), e.strokeStyle = a.hoverStroke, e.lineWidth = 1.5, e.stroke());
95
128
  break;
96
129
  case "arc":
97
130
  if (a.a1 - a.a0 <= 1e-6 || a.width <= 0) break;
98
- e.beginPath(), e.arc(a.cx + h, a.cy + g, a.r, a.a0, a.a1), e.lineCap = a.cap, e.lineWidth = a.width, e.strokeStyle = a.color, e.stroke(), e.lineCap = "round";
131
+ e.beginPath(), e.arc(a.cx + x, a.cy + S, a.r, a.a0, a.a1), e.lineCap = a.cap, e.lineWidth = a.width, e.strokeStyle = a.color, e.stroke(), e.lineCap = "round";
99
132
  break;
100
133
  case "circle": {
101
134
  if (!a.fill && !a.stroke) break;
102
- let t = p && (a.indicator === void 0 || a.indicator === n?.indicator), r = t && a.hoverR ? a.hoverR : a.r, i = a.cx + h, o = a.cy + g;
135
+ let t = g && (a.indicator === void 0 || a.indicator === n?.indicator), r = t && a.hoverR ? a.hoverR : a.r, i = a.cx + x, o = a.cy + S;
103
136
  t && a.halo && (f(e, i, o, r + 5), e.fillStyle = a.halo, e.fill()), f(e, i, o, r), a.fill && (e.fillStyle = a.fill, e.fill()), a.stroke && (e.strokeStyle = a.stroke, e.lineWidth = a.lineWidth ?? 1, e.stroke());
104
137
  break;
105
138
  }
106
139
  case "line": {
107
140
  let t = a.points;
108
141
  if (t.length < 4) break;
109
- e.beginPath(), e.moveTo(t[0] + h, t[1] + g);
110
- for (let n = 2; n < t.length; n += 2) e.lineTo(t[n] + (n === t.length - 2 ? 0 : h), t[n + 1] + (n === t.length - 2 ? 0 : g));
142
+ e.beginPath(), e.moveTo(t[0] + x, t[1] + S);
143
+ for (let n = 2; n < t.length; n += 2) e.lineTo(t[n] + (n === t.length - 2 ? 0 : x), t[n + 1] + (n === t.length - 2 ? 0 : S));
111
144
  e.strokeStyle = a.color, e.lineWidth = a.width, a.dash && d(e, a.dash), e.stroke(), a.dash && d(e, []);
112
145
  break;
113
146
  }
114
147
  case "text": {
115
148
  let t = a.indicator !== void 0 && n?.indicator === a.indicator;
116
- e.font = t && a.hoverFont ? a.hoverFont : a.font, e.fillStyle = t && a.hoverColor ? a.hoverColor : a.color, e.textAlign = a.align, e.textBaseline = a.baseline, e.fillText(a.text, a.x + h, a.y + g);
149
+ e.font = t && a.hoverFont ? a.hoverFont : a.font, e.textAlign = a.align, e.textBaseline = a.baseline;
150
+ let r = !!a.rotate, i = a.x + x, o = a.y + S;
151
+ r && (e.save(), e.translate(i, o), e.rotate(a.rotate ?? 0), i = 0, o = 0), a.halo && (e.strokeStyle = a.halo, e.lineWidth = 3, e.strokeText(a.text, i, o)), e.fillStyle = t && a.hoverColor ? a.hoverColor : a.color, e.fillText(a.text, i, o), r && e.restore();
117
152
  break;
118
153
  }
154
+ case "link":
155
+ if (a.width <= 0) break;
156
+ g && a.activeAlpha !== void 0 && (e.globalAlpha = o * a.activeAlpha), m(e, a), e.lineCap = "butt", e.lineWidth = Math.max(1, a.width), e.strokeStyle = h(e, a), e.stroke(), e.lineCap = "round";
157
+ break;
158
+ case "ribbon":
159
+ g && a.activeAlpha !== void 0 && (e.globalAlpha = o * a.activeAlpha), v(e, a), e.fillStyle = y(e, a), e.fill(), _ && (e.strokeStyle = a.color0, e.lineWidth = 1, e.stroke());
160
+ break;
119
161
  case "guide": {
120
162
  let t = n?.indicator;
121
163
  if (t === void 0 || !a.ends[t]) break;
@@ -125,14 +167,14 @@ var r = "rgba(15, 23, 42, 0.18)", i = "rgba(255, 255, 255, 0.14)", a = (e) => Ma
125
167
  }
126
168
  }
127
169
  e.restore();
128
- }, m = (n, r, i) => {
170
+ }, x = (n, r, i) => {
129
171
  n.save(), n.font = t(r, 12), n.textBaseline = "middle", n.textAlign = "left";
130
172
  for (let t of i) {
131
173
  let i = t.y + t.height / 2;
132
174
  n.globalAlpha = t.hidden ? .45 : 1, n.fillStyle = t.color, f(n, t.x + 4.5, i, 4.5), n.fill(), n.fillStyle = e(r.textMuted), n.fillText(t.name, t.x + 15, i, Math.max(1, t.width - 15)), t.hidden && n.fillRect(t.x + 15, i, t.width - 15, 1);
133
175
  }
134
176
  n.restore();
135
- }, h = (n, i, a) => {
177
+ }, S = (n, i, a) => {
136
178
  let { padding: o, lineHeight: s } = a;
137
179
  n.save(), n.globalAlpha = 1, n.save(), n.shadowColor = r, n.shadowBlur = 16, n.shadowOffsetY = 6, u(n, a.x, a.y, a.width, a.height, 8), n.fillStyle = e(i.background), n.fill(), n.restore(), u(n, a.x + .5, a.y + .5, a.width - 1, a.height - 1, 8), n.strokeStyle = e(i.axis), n.lineWidth = 1, n.stroke(), n.textBaseline = "middle";
138
180
  let c = a.y + o + s / 2, l = a.x + o + 2, d = a.x + a.width - o - 2;
@@ -141,12 +183,13 @@ var r = "rgba(15, 23, 42, 0.18)", i = "rgba(255, 255, 255, 0.14)", a = (e) => Ma
141
183
  for (let e of a.text) n.fillText(e, l, c), c += s;
142
184
  } else if (a.content) {
143
185
  let { content: r } = a, o = l;
144
- r.color && (n.fillStyle = r.color, f(n, o + 4, c, 4), n.fill(), o += 14), n.font = t(i, 12, 600), n.fillStyle = e(i.text), n.textAlign = "left", n.fillText(r.title, o, c), c += s;
186
+ r.color && (n.fillStyle = r.color, f(n, o + 4, c, 4), n.fill(), o += 14), n.font = t(i, 12, 600), n.fillStyle = e(i.text), n.textAlign = "left";
187
+ for (let e of a.titleLines ?? [r.title]) n.fillText(e, o, c), c += s;
145
188
  for (let a of r.rows) o = l, a.color && (n.fillStyle = a.color, f(n, o + 4, c, 4), n.fill(), o += 14), n.font = t(i, 12, a.strong ? 600 : 400), n.textAlign = "left", n.fillStyle = e(a.strong ? i.text : i.textMuted), n.fillText(a.name, o, c), n.font = t(i, 12, 600), n.textAlign = "right", n.fillStyle = e(i.text), n.fillText(a.value, d, c), c += s;
146
189
  }
147
190
  n.restore();
148
191
  };
149
192
  //#endregion
150
- export { m as drawShapeLegend, p as drawShapeScene, h as drawShapeTooltip, o as padAngleAt, u as roundRectPath, a as sectorPad, s as sectorPath };
193
+ export { x as drawShapeLegend, b as drawShapeScene, S as drawShapeTooltip, _ as loopControl, p as nodeActive, o as padAngleAt, g as ribbonIsLoop, u as roundRectPath, a as sectorPad, s as sectorPath };
151
194
 
152
195
  //# sourceMappingURL=draw.js.map