minerva-design 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (824) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +21 -21
  3. package/custom-elements.json +3072 -611
  4. package/dist/angular/fesm2022/minerva-angular.mjs +1491 -5
  5. package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
  6. package/dist/angular/types/minerva-angular.d.ts +595 -5
  7. package/dist/charts/canvas.d.cts +4 -3
  8. package/dist/charts/canvas.d.ts +4 -3
  9. package/dist/charts/core.cjs +1 -1
  10. package/dist/charts/core.d.cts +6 -4
  11. package/dist/charts/core.d.ts +6 -4
  12. package/dist/charts/core.js +24 -16
  13. package/dist/charts/engine/axis.cjs +1 -1
  14. package/dist/charts/engine/axis.cjs.map +1 -1
  15. package/dist/charts/engine/axis.js +42 -19
  16. package/dist/charts/engine/axis.js.map +1 -1
  17. package/dist/charts/engine/canvas.cjs +1 -1
  18. package/dist/charts/engine/canvas.cjs.map +1 -1
  19. package/dist/charts/engine/canvas.js +155 -127
  20. package/dist/charts/engine/canvas.js.map +1 -1
  21. package/dist/charts/engine/chart.cjs +1 -1
  22. package/dist/charts/engine/chart.cjs.map +1 -1
  23. package/dist/charts/engine/chart.js +370 -255
  24. package/dist/charts/engine/chart.js.map +1 -1
  25. package/dist/charts/engine/color.cjs +1 -1
  26. package/dist/charts/engine/color.cjs.map +1 -1
  27. package/dist/charts/engine/color.d.cts +18 -0
  28. package/dist/charts/engine/color.d.ts +18 -0
  29. package/dist/charts/engine/color.js +48 -2
  30. package/dist/charts/engine/color.js.map +1 -1
  31. package/dist/charts/engine/controller.cjs +2 -2
  32. package/dist/charts/engine/controller.cjs.map +1 -1
  33. package/dist/charts/engine/controller.d.cts +34 -1
  34. package/dist/charts/engine/controller.d.ts +34 -1
  35. package/dist/charts/engine/controller.js +318 -273
  36. package/dist/charts/engine/controller.js.map +1 -1
  37. package/dist/charts/engine/data.cjs +1 -1
  38. package/dist/charts/engine/data.cjs.map +1 -1
  39. package/dist/charts/engine/data.d.cts +3 -1
  40. package/dist/charts/engine/data.d.ts +3 -1
  41. package/dist/charts/engine/data.js +6 -4
  42. package/dist/charts/engine/data.js.map +1 -1
  43. package/dist/charts/engine/defaults.cjs +2 -0
  44. package/dist/charts/engine/defaults.cjs.map +1 -0
  45. package/dist/charts/engine/defaults.d.cts +20 -0
  46. package/dist/charts/engine/defaults.d.ts +20 -0
  47. package/dist/charts/engine/defaults.js +35 -0
  48. package/dist/charts/engine/defaults.js.map +1 -0
  49. package/dist/charts/engine/format.cjs +1 -1
  50. package/dist/charts/engine/format.cjs.map +1 -1
  51. package/dist/charts/engine/format.d.cts +6 -0
  52. package/dist/charts/engine/format.d.ts +6 -0
  53. package/dist/charts/engine/format.js +15 -2
  54. package/dist/charts/engine/format.js.map +1 -1
  55. package/dist/charts/engine/graph/chart.cjs +2 -0
  56. package/dist/charts/engine/graph/chart.cjs.map +1 -0
  57. package/dist/charts/engine/graph/chart.d.cts +3 -0
  58. package/dist/charts/engine/graph/chart.d.ts +3 -0
  59. package/dist/charts/engine/graph/chart.js +1708 -0
  60. package/dist/charts/engine/graph/chart.js.map +1 -0
  61. package/dist/charts/engine/graph/circular.cjs +2 -0
  62. package/dist/charts/engine/graph/circular.cjs.map +1 -0
  63. package/dist/charts/engine/graph/circular.d.cts +16 -0
  64. package/dist/charts/engine/graph/circular.d.ts +16 -0
  65. package/dist/charts/engine/graph/circular.js +62 -0
  66. package/dist/charts/engine/graph/circular.js.map +1 -0
  67. package/dist/charts/engine/graph/dag.cjs +2 -0
  68. package/dist/charts/engine/graph/dag.cjs.map +1 -0
  69. package/dist/charts/engine/graph/dag.d.cts +34 -0
  70. package/dist/charts/engine/graph/dag.d.ts +34 -0
  71. package/dist/charts/engine/graph/dag.js +339 -0
  72. package/dist/charts/engine/graph/dag.js.map +1 -0
  73. package/dist/charts/engine/graph/dom.cjs +2 -0
  74. package/dist/charts/engine/graph/dom.cjs.map +1 -0
  75. package/dist/charts/engine/graph/dom.d.cts +23 -0
  76. package/dist/charts/engine/graph/dom.d.ts +23 -0
  77. package/dist/charts/engine/graph/dom.js +158 -0
  78. package/dist/charts/engine/graph/dom.js.map +1 -0
  79. package/dist/charts/engine/graph/force.cjs +2 -0
  80. package/dist/charts/engine/graph/force.cjs.map +1 -0
  81. package/dist/charts/engine/graph/force.d.cts +76 -0
  82. package/dist/charts/engine/graph/force.d.ts +76 -0
  83. package/dist/charts/engine/graph/force.js +423 -0
  84. package/dist/charts/engine/graph/force.js.map +1 -0
  85. package/dist/charts/engine/graph/geometry.cjs +2 -0
  86. package/dist/charts/engine/graph/geometry.cjs.map +1 -0
  87. package/dist/charts/engine/graph/geometry.d.cts +50 -0
  88. package/dist/charts/engine/graph/geometry.d.ts +50 -0
  89. package/dist/charts/engine/graph/geometry.js +197 -0
  90. package/dist/charts/engine/graph/geometry.js.map +1 -0
  91. package/dist/charts/engine/graph/index.cjs +1 -0
  92. package/dist/charts/engine/graph/index.d.cts +6 -0
  93. package/dist/charts/engine/graph/index.d.ts +6 -0
  94. package/dist/charts/engine/graph/index.js +6 -0
  95. package/dist/charts/engine/graph/labels.cjs +2 -0
  96. package/dist/charts/engine/graph/labels.cjs.map +1 -0
  97. package/dist/charts/engine/graph/labels.d.cts +12 -0
  98. package/dist/charts/engine/graph/labels.d.ts +12 -0
  99. package/dist/charts/engine/graph/labels.js +128 -0
  100. package/dist/charts/engine/graph/labels.js.map +1 -0
  101. package/dist/charts/engine/graph/model.cjs +2 -0
  102. package/dist/charts/engine/graph/model.cjs.map +1 -0
  103. package/dist/charts/engine/graph/model.d.cts +52 -0
  104. package/dist/charts/engine/graph/model.d.ts +52 -0
  105. package/dist/charts/engine/graph/model.js +108 -0
  106. package/dist/charts/engine/graph/model.js.map +1 -0
  107. package/dist/charts/engine/graph/sizing.cjs +2 -0
  108. package/dist/charts/engine/graph/sizing.cjs.map +1 -0
  109. package/dist/charts/engine/graph/sizing.d.cts +33 -0
  110. package/dist/charts/engine/graph/sizing.d.ts +33 -0
  111. package/dist/charts/engine/graph/sizing.js +60 -0
  112. package/dist/charts/engine/graph/sizing.js.map +1 -0
  113. package/dist/charts/engine/graph/tree.cjs +2 -0
  114. package/dist/charts/engine/graph/tree.cjs.map +1 -0
  115. package/dist/charts/engine/graph/tree.d.cts +30 -0
  116. package/dist/charts/engine/graph/tree.d.ts +30 -0
  117. package/dist/charts/engine/graph/tree.js +218 -0
  118. package/dist/charts/engine/graph/tree.js.map +1 -0
  119. package/dist/charts/engine/graph/types.d.cts +640 -0
  120. package/dist/charts/engine/graph/types.d.ts +640 -0
  121. package/dist/charts/engine/graph/worker.cjs +52 -0
  122. package/dist/charts/engine/graph/worker.cjs.map +1 -0
  123. package/dist/charts/engine/graph/worker.d.cts +36 -0
  124. package/dist/charts/engine/graph/worker.d.ts +36 -0
  125. package/dist/charts/engine/graph/worker.js +135 -0
  126. package/dist/charts/engine/graph/worker.js.map +1 -0
  127. package/dist/charts/engine/items.cjs +1 -1
  128. package/dist/charts/engine/items.cjs.map +1 -1
  129. package/dist/charts/engine/items.d.cts +15 -2
  130. package/dist/charts/engine/items.d.ts +15 -2
  131. package/dist/charts/engine/items.js +131 -112
  132. package/dist/charts/engine/items.js.map +1 -1
  133. package/dist/charts/engine/labels.cjs +1 -1
  134. package/dist/charts/engine/labels.cjs.map +1 -1
  135. package/dist/charts/engine/labels.d.cts +17 -0
  136. package/dist/charts/engine/labels.d.ts +17 -0
  137. package/dist/charts/engine/labels.js +28 -4
  138. package/dist/charts/engine/labels.js.map +1 -1
  139. package/dist/charts/engine/layout.cjs +1 -1
  140. package/dist/charts/engine/layout.cjs.map +1 -1
  141. package/dist/charts/engine/layout.d.cts +9 -0
  142. package/dist/charts/engine/layout.d.ts +9 -0
  143. package/dist/charts/engine/layout.js +11 -2
  144. package/dist/charts/engine/layout.js.map +1 -1
  145. package/dist/charts/engine/model.cjs +1 -1
  146. package/dist/charts/engine/model.cjs.map +1 -1
  147. package/dist/charts/engine/model.d.cts +73 -3
  148. package/dist/charts/engine/model.d.ts +73 -3
  149. package/dist/charts/engine/model.js +258 -154
  150. package/dist/charts/engine/model.js.map +1 -1
  151. package/dist/charts/engine/orderbook/field.cjs +37 -0
  152. package/dist/charts/engine/orderbook/field.cjs.map +1 -0
  153. package/dist/charts/engine/orderbook/field.d.cts +92 -0
  154. package/dist/charts/engine/orderbook/field.d.ts +92 -0
  155. package/dist/charts/engine/orderbook/field.js +297 -0
  156. package/dist/charts/engine/orderbook/field.js.map +1 -0
  157. package/dist/charts/engine/orderbook/format.cjs +1 -1
  158. package/dist/charts/engine/orderbook/format.cjs.map +1 -1
  159. package/dist/charts/engine/orderbook/format.d.cts +3 -2
  160. package/dist/charts/engine/orderbook/format.d.ts +3 -2
  161. package/dist/charts/engine/orderbook/format.js +5 -5
  162. package/dist/charts/engine/orderbook/format.js.map +1 -1
  163. package/dist/charts/engine/orderbook/heatmap.cjs +1 -1
  164. package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -1
  165. package/dist/charts/engine/orderbook/heatmap.js +566 -475
  166. package/dist/charts/engine/orderbook/heatmap.js.map +1 -1
  167. package/dist/charts/engine/orderbook/host.cjs +1 -1
  168. package/dist/charts/engine/orderbook/host.cjs.map +1 -1
  169. package/dist/charts/engine/orderbook/host.d.cts +8 -1
  170. package/dist/charts/engine/orderbook/host.d.ts +8 -1
  171. package/dist/charts/engine/orderbook/host.js +27 -5
  172. package/dist/charts/engine/orderbook/host.js.map +1 -1
  173. package/dist/charts/engine/orderbook/ladder.cjs +1 -1
  174. package/dist/charts/engine/orderbook/ladder.cjs.map +1 -1
  175. package/dist/charts/engine/orderbook/ladder.js +1 -1
  176. package/dist/charts/engine/orderbook/ladder.js.map +1 -1
  177. package/dist/charts/engine/orderbook/layout.cjs +2 -0
  178. package/dist/charts/engine/orderbook/layout.cjs.map +1 -0
  179. package/dist/charts/engine/orderbook/layout.d.cts +42 -0
  180. package/dist/charts/engine/orderbook/layout.d.ts +42 -0
  181. package/dist/charts/engine/orderbook/layout.js +76 -0
  182. package/dist/charts/engine/orderbook/layout.js.map +1 -0
  183. package/dist/charts/engine/orderbook/tape.cjs +1 -1
  184. package/dist/charts/engine/orderbook/tape.cjs.map +1 -1
  185. package/dist/charts/engine/orderbook/tape.js +4 -4
  186. package/dist/charts/engine/orderbook/tape.js.map +1 -1
  187. package/dist/charts/engine/orderbook/types.d.cts +27 -3
  188. package/dist/charts/engine/orderbook/types.d.ts +27 -3
  189. package/dist/charts/engine/overlay.cjs +1 -1
  190. package/dist/charts/engine/overlay.cjs.map +1 -1
  191. package/dist/charts/engine/overlay.d.cts +27 -0
  192. package/dist/charts/engine/overlay.d.ts +27 -0
  193. package/dist/charts/engine/overlay.js +34 -12
  194. package/dist/charts/engine/overlay.js.map +1 -1
  195. package/dist/charts/engine/presets.cjs +2 -2
  196. package/dist/charts/engine/presets.cjs.map +1 -1
  197. package/dist/charts/engine/presets.d.cts +35 -3
  198. package/dist/charts/engine/presets.d.ts +35 -3
  199. package/dist/charts/engine/presets.js +121 -101
  200. package/dist/charts/engine/presets.js.map +1 -1
  201. package/dist/charts/engine/renderers/canvas2d.cjs +1 -1
  202. package/dist/charts/engine/renderers/canvas2d.cjs.map +1 -1
  203. package/dist/charts/engine/renderers/canvas2d.js +13 -9
  204. package/dist/charts/engine/renderers/canvas2d.js.map +1 -1
  205. package/dist/charts/engine/renderers/detect.cjs +1 -1
  206. package/dist/charts/engine/renderers/detect.cjs.map +1 -1
  207. package/dist/charts/engine/renderers/detect.d.cts +2 -1
  208. package/dist/charts/engine/renderers/detect.d.ts +2 -1
  209. package/dist/charts/engine/renderers/detect.js +23 -21
  210. package/dist/charts/engine/renderers/detect.js.map +1 -1
  211. package/dist/charts/engine/renderers/follow.cjs +2 -0
  212. package/dist/charts/engine/renderers/follow.cjs.map +1 -0
  213. package/dist/charts/engine/renderers/follow.d.cts +8 -0
  214. package/dist/charts/engine/renderers/follow.d.ts +8 -0
  215. package/dist/charts/engine/renderers/follow.js +10 -0
  216. package/dist/charts/engine/renderers/follow.js.map +1 -0
  217. package/dist/charts/engine/renderers/gl-budget.cjs +2 -0
  218. package/dist/charts/engine/renderers/gl-budget.cjs.map +1 -0
  219. package/dist/charts/engine/renderers/gl-budget.d.cts +32 -0
  220. package/dist/charts/engine/renderers/gl-budget.d.ts +32 -0
  221. package/dist/charts/engine/renderers/gl-budget.js +95 -0
  222. package/dist/charts/engine/renderers/gl-budget.js.map +1 -0
  223. package/dist/charts/engine/renderers/gl.cjs +1 -1
  224. package/dist/charts/engine/renderers/gl.cjs.map +1 -1
  225. package/dist/charts/engine/renderers/gl.js +1 -1
  226. package/dist/charts/engine/renderers/gl.js.map +1 -1
  227. package/dist/charts/engine/renderers/shaders.cjs +9 -6
  228. package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
  229. package/dist/charts/engine/renderers/shaders.d.cts +1 -1
  230. package/dist/charts/engine/renderers/shaders.d.ts +1 -1
  231. package/dist/charts/engine/renderers/shaders.js +9 -6
  232. package/dist/charts/engine/renderers/shaders.js.map +1 -1
  233. package/dist/charts/engine/renderers/types.cjs.map +1 -1
  234. package/dist/charts/engine/renderers/types.d.cts +2 -0
  235. package/dist/charts/engine/renderers/types.d.ts +2 -0
  236. package/dist/charts/engine/renderers/types.js.map +1 -1
  237. package/dist/charts/engine/renderers/webgl.cjs +1 -1
  238. package/dist/charts/engine/renderers/webgl.cjs.map +1 -1
  239. package/dist/charts/engine/renderers/webgl.js +85 -64
  240. package/dist/charts/engine/renderers/webgl.js.map +1 -1
  241. package/dist/charts/engine/renderers/webgl2.cjs +1 -1
  242. package/dist/charts/engine/renderers/webgl2.cjs.map +1 -1
  243. package/dist/charts/engine/renderers/webgl2.js +72 -58
  244. package/dist/charts/engine/renderers/webgl2.js.map +1 -1
  245. package/dist/charts/engine/renderers/webgpu.cjs +1 -1
  246. package/dist/charts/engine/renderers/webgpu.cjs.map +1 -1
  247. package/dist/charts/engine/renderers/webgpu.js +1 -1
  248. package/dist/charts/engine/renderers/webgpu.js.map +1 -1
  249. package/dist/charts/engine/scene.cjs +1 -1
  250. package/dist/charts/engine/scene.cjs.map +1 -1
  251. package/dist/charts/engine/scene.d.cts +104 -4
  252. package/dist/charts/engine/scene.d.ts +104 -4
  253. package/dist/charts/engine/scene.js +412 -193
  254. package/dist/charts/engine/scene.js.map +1 -1
  255. package/dist/charts/engine/shapes/bullet.cjs +1 -1
  256. package/dist/charts/engine/shapes/bullet.cjs.map +1 -1
  257. package/dist/charts/engine/shapes/bullet.js +110 -110
  258. package/dist/charts/engine/shapes/bullet.js.map +1 -1
  259. package/dist/charts/engine/shapes/chart.cjs +1 -1
  260. package/dist/charts/engine/shapes/chart.cjs.map +1 -1
  261. package/dist/charts/engine/shapes/chart.js +4 -1
  262. package/dist/charts/engine/shapes/chart.js.map +1 -1
  263. package/dist/charts/engine/shapes/chord.cjs +2 -0
  264. package/dist/charts/engine/shapes/chord.cjs.map +1 -0
  265. package/dist/charts/engine/shapes/chord.d.cts +18 -0
  266. package/dist/charts/engine/shapes/chord.d.ts +18 -0
  267. package/dist/charts/engine/shapes/chord.js +419 -0
  268. package/dist/charts/engine/shapes/chord.js.map +1 -0
  269. package/dist/charts/engine/shapes/draw.cjs +1 -1
  270. package/dist/charts/engine/shapes/draw.cjs.map +1 -1
  271. package/dist/charts/engine/shapes/draw.d.cts +5 -1
  272. package/dist/charts/engine/shapes/draw.d.ts +5 -1
  273. package/dist/charts/engine/shapes/draw.js +47 -17
  274. package/dist/charts/engine/shapes/draw.js.map +1 -1
  275. package/dist/charts/engine/shapes/hit.cjs +1 -1
  276. package/dist/charts/engine/shapes/hit.cjs.map +1 -1
  277. package/dist/charts/engine/shapes/hit.d.cts +3 -1
  278. package/dist/charts/engine/shapes/hit.d.ts +3 -1
  279. package/dist/charts/engine/shapes/hit.js +75 -46
  280. package/dist/charts/engine/shapes/hit.js.map +1 -1
  281. package/dist/charts/engine/shapes/index.d.cts +3 -2
  282. package/dist/charts/engine/shapes/index.d.ts +3 -2
  283. package/dist/charts/engine/shapes/labels.cjs +1 -1
  284. package/dist/charts/engine/shapes/labels.cjs.map +1 -1
  285. package/dist/charts/engine/shapes/labels.js +12 -4
  286. package/dist/charts/engine/shapes/labels.js.map +1 -1
  287. package/dist/charts/engine/shapes/layout.cjs +2 -2
  288. package/dist/charts/engine/shapes/layout.cjs.map +1 -1
  289. package/dist/charts/engine/shapes/layout.d.cts +3 -1
  290. package/dist/charts/engine/shapes/layout.d.ts +3 -1
  291. package/dist/charts/engine/shapes/layout.js +106 -78
  292. package/dist/charts/engine/shapes/layout.js.map +1 -1
  293. package/dist/charts/engine/shapes/scene.cjs +1 -1
  294. package/dist/charts/engine/shapes/scene.cjs.map +1 -1
  295. package/dist/charts/engine/shapes/scene.d.cts +33 -3
  296. package/dist/charts/engine/shapes/scene.d.ts +33 -3
  297. package/dist/charts/engine/shapes/scene.js +62 -19
  298. package/dist/charts/engine/shapes/scene.js.map +1 -1
  299. package/dist/charts/engine/shapes/types.d.cts +121 -8
  300. package/dist/charts/engine/shapes/types.d.ts +121 -8
  301. package/dist/charts/engine/signature.cjs +1 -1
  302. package/dist/charts/engine/signature.cjs.map +1 -1
  303. package/dist/charts/engine/signature.js +1 -1
  304. package/dist/charts/engine/signature.js.map +1 -1
  305. package/dist/charts/engine/three-d/canvas2d.cjs +1 -1
  306. package/dist/charts/engine/three-d/canvas2d.cjs.map +1 -1
  307. package/dist/charts/engine/three-d/canvas2d.d.cts +41 -3
  308. package/dist/charts/engine/three-d/canvas2d.d.ts +41 -3
  309. package/dist/charts/engine/three-d/canvas2d.js +166 -67
  310. package/dist/charts/engine/three-d/canvas2d.js.map +1 -1
  311. package/dist/charts/engine/three-d/chart.cjs +1 -1
  312. package/dist/charts/engine/three-d/chart.cjs.map +1 -1
  313. package/dist/charts/engine/three-d/chart.js +219 -215
  314. package/dist/charts/engine/three-d/chart.js.map +1 -1
  315. package/dist/charts/engine/three-d/detect.cjs +1 -1
  316. package/dist/charts/engine/three-d/detect.cjs.map +1 -1
  317. package/dist/charts/engine/three-d/detect.d.cts +3 -2
  318. package/dist/charts/engine/three-d/detect.d.ts +3 -2
  319. package/dist/charts/engine/three-d/detect.js +22 -20
  320. package/dist/charts/engine/three-d/detect.js.map +1 -1
  321. package/dist/charts/engine/three-d/geometry.cjs +1 -1
  322. package/dist/charts/engine/three-d/geometry.cjs.map +1 -1
  323. package/dist/charts/engine/three-d/geometry.d.cts +6 -0
  324. package/dist/charts/engine/three-d/geometry.d.ts +6 -0
  325. package/dist/charts/engine/three-d/geometry.js +106 -90
  326. package/dist/charts/engine/three-d/geometry.js.map +1 -1
  327. package/dist/charts/engine/three-d/model.cjs +1 -1
  328. package/dist/charts/engine/three-d/model.cjs.map +1 -1
  329. package/dist/charts/engine/three-d/model.d.cts +2 -0
  330. package/dist/charts/engine/three-d/model.d.ts +2 -0
  331. package/dist/charts/engine/three-d/model.js +2 -0
  332. package/dist/charts/engine/three-d/model.js.map +1 -1
  333. package/dist/charts/engine/three-d/oit.cjs +109 -0
  334. package/dist/charts/engine/three-d/oit.cjs.map +1 -0
  335. package/dist/charts/engine/three-d/oit.d.cts +34 -0
  336. package/dist/charts/engine/three-d/oit.d.ts +34 -0
  337. package/dist/charts/engine/three-d/oit.js +111 -0
  338. package/dist/charts/engine/three-d/oit.js.map +1 -0
  339. package/dist/charts/engine/three-d/overlay.cjs +1 -1
  340. package/dist/charts/engine/three-d/overlay.cjs.map +1 -1
  341. package/dist/charts/engine/three-d/overlay.js +43 -36
  342. package/dist/charts/engine/three-d/overlay.js.map +1 -1
  343. package/dist/charts/engine/three-d/render-types.cjs +1 -1
  344. package/dist/charts/engine/three-d/render-types.cjs.map +1 -1
  345. package/dist/charts/engine/three-d/render-types.d.cts +37 -3
  346. package/dist/charts/engine/three-d/render-types.d.ts +37 -3
  347. package/dist/charts/engine/three-d/render-types.js +6 -10
  348. package/dist/charts/engine/three-d/render-types.js.map +1 -1
  349. package/dist/charts/engine/three-d/shaders.cjs +109 -48
  350. package/dist/charts/engine/three-d/shaders.cjs.map +1 -1
  351. package/dist/charts/engine/three-d/shaders.d.cts +12 -5
  352. package/dist/charts/engine/three-d/shaders.d.ts +12 -5
  353. package/dist/charts/engine/three-d/shaders.js +118 -55
  354. package/dist/charts/engine/three-d/shaders.js.map +1 -1
  355. package/dist/charts/engine/three-d/sort.cjs +1 -1
  356. package/dist/charts/engine/three-d/sort.cjs.map +1 -1
  357. package/dist/charts/engine/three-d/sort.d.cts +18 -5
  358. package/dist/charts/engine/three-d/sort.d.ts +18 -5
  359. package/dist/charts/engine/three-d/sort.js +129 -43
  360. package/dist/charts/engine/three-d/sort.js.map +1 -1
  361. package/dist/charts/engine/three-d/types.d.cts +36 -0
  362. package/dist/charts/engine/three-d/types.d.ts +36 -0
  363. package/dist/charts/engine/three-d/webgl.cjs +1 -1
  364. package/dist/charts/engine/three-d/webgl.cjs.map +1 -1
  365. package/dist/charts/engine/three-d/webgl.d.cts +9 -0
  366. package/dist/charts/engine/three-d/webgl.d.ts +9 -0
  367. package/dist/charts/engine/three-d/webgl.js +199 -74
  368. package/dist/charts/engine/three-d/webgl.js.map +1 -1
  369. package/dist/charts/engine/three-d/webgpu.cjs +1 -1
  370. package/dist/charts/engine/three-d/webgpu.cjs.map +1 -1
  371. package/dist/charts/engine/three-d/webgpu.js +231 -94
  372. package/dist/charts/engine/three-d/webgpu.js.map +1 -1
  373. package/dist/charts/engine/trading/chart.cjs +1 -1
  374. package/dist/charts/engine/trading/chart.cjs.map +1 -1
  375. package/dist/charts/engine/trading/chart.d.cts +10 -1
  376. package/dist/charts/engine/trading/chart.d.ts +10 -1
  377. package/dist/charts/engine/trading/chart.js +1677 -813
  378. package/dist/charts/engine/trading/chart.js.map +1 -1
  379. package/dist/charts/engine/trading/drawings.cjs +2 -1
  380. package/dist/charts/engine/trading/drawings.cjs.map +1 -1
  381. package/dist/charts/engine/trading/drawings.d.cts +53 -9
  382. package/dist/charts/engine/trading/drawings.d.ts +53 -9
  383. package/dist/charts/engine/trading/drawings.js +346 -71
  384. package/dist/charts/engine/trading/drawings.js.map +1 -1
  385. package/dist/charts/engine/trading/format.cjs +1 -1
  386. package/dist/charts/engine/trading/format.cjs.map +1 -1
  387. package/dist/charts/engine/trading/format.d.cts +19 -0
  388. package/dist/charts/engine/trading/format.d.ts +19 -0
  389. package/dist/charts/engine/trading/format.js +65 -21
  390. package/dist/charts/engine/trading/format.js.map +1 -1
  391. package/dist/charts/engine/trading/geometry.cjs +1 -1
  392. package/dist/charts/engine/trading/geometry.cjs.map +1 -1
  393. package/dist/charts/engine/trading/geometry.d.cts +16 -0
  394. package/dist/charts/engine/trading/geometry.d.ts +16 -0
  395. package/dist/charts/engine/trading/geometry.js +19 -4
  396. package/dist/charts/engine/trading/geometry.js.map +1 -1
  397. package/dist/charts/engine/trading/index.cjs +1 -1
  398. package/dist/charts/engine/trading/index.d.cts +2 -1
  399. package/dist/charts/engine/trading/index.d.ts +2 -1
  400. package/dist/charts/engine/trading/index.js +4 -3
  401. package/dist/charts/engine/trading/indicators.cjs +1 -1
  402. package/dist/charts/engine/trading/indicators.cjs.map +1 -1
  403. package/dist/charts/engine/trading/indicators.d.cts +180 -10
  404. package/dist/charts/engine/trading/indicators.d.ts +180 -10
  405. package/dist/charts/engine/trading/indicators.js +449 -173
  406. package/dist/charts/engine/trading/indicators.js.map +1 -1
  407. package/dist/charts/engine/trading/labels.cjs +1 -1
  408. package/dist/charts/engine/trading/labels.cjs.map +1 -1
  409. package/dist/charts/engine/trading/labels.js +104 -4
  410. package/dist/charts/engine/trading/labels.js.map +1 -1
  411. package/dist/charts/engine/trading/store.cjs +1 -1
  412. package/dist/charts/engine/trading/store.cjs.map +1 -1
  413. package/dist/charts/engine/trading/store.d.cts +21 -0
  414. package/dist/charts/engine/trading/store.d.ts +21 -0
  415. package/dist/charts/engine/trading/store.js +22 -1
  416. package/dist/charts/engine/trading/store.js.map +1 -1
  417. package/dist/charts/engine/trading/studies.cjs +1 -1
  418. package/dist/charts/engine/trading/studies.cjs.map +1 -1
  419. package/dist/charts/engine/trading/studies.d.cts +49 -8
  420. package/dist/charts/engine/trading/studies.d.ts +49 -8
  421. package/dist/charts/engine/trading/studies.js +352 -93
  422. package/dist/charts/engine/trading/studies.js.map +1 -1
  423. package/dist/charts/engine/trading/sync.cjs +2 -0
  424. package/dist/charts/engine/trading/sync.cjs.map +1 -0
  425. package/dist/charts/engine/trading/sync.d.cts +8 -0
  426. package/dist/charts/engine/trading/sync.d.ts +8 -0
  427. package/dist/charts/engine/trading/sync.js +25 -0
  428. package/dist/charts/engine/trading/sync.js.map +1 -0
  429. package/dist/charts/engine/trading/types.d.cts +514 -16
  430. package/dist/charts/engine/trading/types.d.ts +514 -16
  431. package/dist/charts/engine/types.d.cts +106 -11
  432. package/dist/charts/engine/types.d.ts +106 -11
  433. package/dist/charts/index.cjs +1 -1
  434. package/dist/charts/index.d.cts +3 -2
  435. package/dist/charts/index.d.ts +3 -2
  436. package/dist/charts/index.js +30 -22
  437. package/dist/charts/react/charts.cjs +1 -1
  438. package/dist/charts/react/charts.cjs.map +1 -1
  439. package/dist/charts/react/charts.js +51 -34
  440. package/dist/charts/react/charts.js.map +1 -1
  441. package/dist/charts/react/graph.cjs +2 -0
  442. package/dist/charts/react/graph.cjs.map +1 -0
  443. package/dist/charts/react/graph.d.cts +219 -0
  444. package/dist/charts/react/graph.d.ts +219 -0
  445. package/dist/charts/react/graph.js +160 -0
  446. package/dist/charts/react/graph.js.map +1 -0
  447. package/dist/charts/react/orderbook.cjs +1 -1
  448. package/dist/charts/react/orderbook.cjs.map +1 -1
  449. package/dist/charts/react/orderbook.d.cts +3 -1
  450. package/dist/charts/react/orderbook.d.ts +3 -1
  451. package/dist/charts/react/orderbook.js +1 -0
  452. package/dist/charts/react/orderbook.js.map +1 -1
  453. package/dist/charts/react/shapes.cjs +1 -1
  454. package/dist/charts/react/shapes.cjs.map +1 -1
  455. package/dist/charts/react/shapes.d.cts +88 -4
  456. package/dist/charts/react/shapes.d.ts +88 -4
  457. package/dist/charts/react/shapes.js +55 -12
  458. package/dist/charts/react/shapes.js.map +1 -1
  459. package/dist/charts/react/three-d.cjs +1 -1
  460. package/dist/charts/react/three-d.cjs.map +1 -1
  461. package/dist/charts/react/three-d.d.cts +7 -0
  462. package/dist/charts/react/three-d.d.ts +7 -0
  463. package/dist/charts/react/three-d.js +14 -13
  464. package/dist/charts/react/three-d.js.map +1 -1
  465. package/dist/charts/react/trading.cjs +1 -1
  466. package/dist/charts/react/trading.cjs.map +1 -1
  467. package/dist/charts/react/trading.d.cts +54 -2
  468. package/dist/charts/react/trading.d.ts +54 -2
  469. package/dist/charts/react/trading.js +68 -37
  470. package/dist/charts/react/trading.js.map +1 -1
  471. package/dist/charts/react/types.d.cts +11 -0
  472. package/dist/charts/react/types.d.ts +11 -0
  473. package/dist/core/contracts.cjs +1 -1
  474. package/dist/core/contracts.cjs.map +1 -1
  475. package/dist/core/contracts.js +1 -1
  476. package/dist/core/contracts.js.map +1 -1
  477. package/dist/native/charts/src/canvas.cjs +1 -1
  478. package/dist/native/charts/src/canvas.js +5 -4
  479. package/dist/native/charts/src/engine/axis.cjs +1 -1
  480. package/dist/native/charts/src/engine/axis.cjs.map +1 -1
  481. package/dist/native/charts/src/engine/axis.js +42 -19
  482. package/dist/native/charts/src/engine/axis.js.map +1 -1
  483. package/dist/native/charts/src/engine/color.cjs +1 -1
  484. package/dist/native/charts/src/engine/color.cjs.map +1 -1
  485. package/dist/native/charts/src/engine/color.js +47 -5
  486. package/dist/native/charts/src/engine/color.js.map +1 -1
  487. package/dist/native/charts/src/engine/controller.cjs +2 -2
  488. package/dist/native/charts/src/engine/controller.cjs.map +1 -1
  489. package/dist/native/charts/src/engine/controller.js +296 -251
  490. package/dist/native/charts/src/engine/controller.js.map +1 -1
  491. package/dist/native/charts/src/engine/data.cjs +1 -1
  492. package/dist/native/charts/src/engine/data.cjs.map +1 -1
  493. package/dist/native/charts/src/engine/data.js +6 -4
  494. package/dist/native/charts/src/engine/data.js.map +1 -1
  495. package/dist/native/charts/src/engine/format.cjs +1 -1
  496. package/dist/native/charts/src/engine/format.cjs.map +1 -1
  497. package/dist/native/charts/src/engine/format.js +15 -2
  498. package/dist/native/charts/src/engine/format.js.map +1 -1
  499. package/dist/native/charts/src/engine/labels.cjs +1 -1
  500. package/dist/native/charts/src/engine/labels.cjs.map +1 -1
  501. package/dist/native/charts/src/engine/labels.js +42 -5
  502. package/dist/native/charts/src/engine/labels.js.map +1 -1
  503. package/dist/native/charts/src/engine/layout.cjs +1 -1
  504. package/dist/native/charts/src/engine/layout.cjs.map +1 -1
  505. package/dist/native/charts/src/engine/layout.js +11 -2
  506. package/dist/native/charts/src/engine/layout.js.map +1 -1
  507. package/dist/native/charts/src/engine/model.cjs +1 -1
  508. package/dist/native/charts/src/engine/model.cjs.map +1 -1
  509. package/dist/native/charts/src/engine/model.js +278 -174
  510. package/dist/native/charts/src/engine/model.js.map +1 -1
  511. package/dist/native/charts/src/engine/overlay.cjs.map +1 -1
  512. package/dist/native/charts/src/engine/overlay.js.map +1 -1
  513. package/dist/native/charts/src/engine/presets.cjs +2 -2
  514. package/dist/native/charts/src/engine/presets.cjs.map +1 -1
  515. package/dist/native/charts/src/engine/presets.js +110 -90
  516. package/dist/native/charts/src/engine/presets.js.map +1 -1
  517. package/dist/native/charts/src/engine/scene.cjs +1 -1
  518. package/dist/native/charts/src/engine/scene.cjs.map +1 -1
  519. package/dist/native/charts/src/engine/scene.js +421 -202
  520. package/dist/native/charts/src/engine/scene.js.map +1 -1
  521. package/dist/native/charts/src/engine/shapes/bullet.cjs +1 -1
  522. package/dist/native/charts/src/engine/shapes/bullet.cjs.map +1 -1
  523. package/dist/native/charts/src/engine/shapes/bullet.js +110 -110
  524. package/dist/native/charts/src/engine/shapes/bullet.js.map +1 -1
  525. package/dist/native/charts/src/engine/shapes/calendar.cjs +1 -1
  526. package/dist/native/charts/src/engine/shapes/calendar.cjs.map +1 -1
  527. package/dist/native/charts/src/engine/shapes/calendar.js +21 -16
  528. package/dist/native/charts/src/engine/shapes/calendar.js.map +1 -1
  529. package/dist/native/charts/src/engine/shapes/chord.cjs +2 -0
  530. package/dist/native/charts/src/engine/shapes/chord.cjs.map +1 -0
  531. package/dist/native/charts/src/engine/shapes/chord.js +419 -0
  532. package/dist/native/charts/src/engine/shapes/chord.js.map +1 -0
  533. package/dist/native/charts/src/engine/shapes/draw.cjs +1 -1
  534. package/dist/native/charts/src/engine/shapes/draw.cjs.map +1 -1
  535. package/dist/native/charts/src/engine/shapes/draw.js +47 -17
  536. package/dist/native/charts/src/engine/shapes/draw.js.map +1 -1
  537. package/dist/native/charts/src/engine/shapes/hit.cjs +1 -1
  538. package/dist/native/charts/src/engine/shapes/hit.cjs.map +1 -1
  539. package/dist/native/charts/src/engine/shapes/hit.js +73 -44
  540. package/dist/native/charts/src/engine/shapes/hit.js.map +1 -1
  541. package/dist/native/charts/src/engine/shapes/labels.cjs +1 -1
  542. package/dist/native/charts/src/engine/shapes/labels.cjs.map +1 -1
  543. package/dist/native/charts/src/engine/shapes/labels.js +12 -4
  544. package/dist/native/charts/src/engine/shapes/labels.js.map +1 -1
  545. package/dist/native/charts/src/engine/shapes/layout.cjs +2 -2
  546. package/dist/native/charts/src/engine/shapes/layout.cjs.map +1 -1
  547. package/dist/native/charts/src/engine/shapes/layout.js +136 -94
  548. package/dist/native/charts/src/engine/shapes/layout.js.map +1 -1
  549. package/dist/native/charts/src/engine/shapes/scene.cjs +1 -1
  550. package/dist/native/charts/src/engine/shapes/scene.cjs.map +1 -1
  551. package/dist/native/charts/src/engine/shapes/scene.js +62 -19
  552. package/dist/native/charts/src/engine/shapes/scene.js.map +1 -1
  553. package/dist/native/components/Chart/ChartBase.cjs +1 -1
  554. package/dist/native/components/Chart/ChartBase.cjs.map +1 -1
  555. package/dist/native/components/Chart/ChartBase.js +127 -115
  556. package/dist/native/components/Chart/ChartBase.js.map +1 -1
  557. package/dist/native/components/Chart/charts.cjs +1 -1
  558. package/dist/native/components/Chart/charts.cjs.map +1 -1
  559. package/dist/native/components/Chart/charts.js +8 -5
  560. package/dist/native/components/Chart/charts.js.map +1 -1
  561. package/dist/native/components/Chart/scene.cjs +1 -1
  562. package/dist/native/components/Chart/scene.cjs.map +1 -1
  563. package/dist/native/components/Chart/scene.d.cts +6 -1
  564. package/dist/native/components/Chart/scene.d.ts +6 -1
  565. package/dist/native/components/Chart/scene.js +226 -108
  566. package/dist/native/components/Chart/scene.js.map +1 -1
  567. package/dist/native/components/Chart/types.d.cts +7 -1
  568. package/dist/native/components/Chart/types.d.ts +7 -1
  569. package/dist/native/components/Charts/charts.cjs +1 -1
  570. package/dist/native/components/Charts/charts.cjs.map +1 -1
  571. package/dist/native/components/Charts/charts.js +60 -43
  572. package/dist/native/components/Charts/charts.js.map +1 -1
  573. package/dist/native/components/Charts/types.d.cts +11 -0
  574. package/dist/native/components/Charts/types.d.ts +11 -0
  575. package/dist/native/components/ShapeChart/ShapeChartBase.cjs +1 -1
  576. package/dist/native/components/ShapeChart/ShapeChartBase.cjs.map +1 -1
  577. package/dist/native/components/ShapeChart/ShapeChartBase.d.cts +1 -1
  578. package/dist/native/components/ShapeChart/ShapeChartBase.d.ts +1 -1
  579. package/dist/native/components/ShapeChart/ShapeChartBase.js +97 -106
  580. package/dist/native/components/ShapeChart/ShapeChartBase.js.map +1 -1
  581. package/dist/native/components/ShapeChart/charts.cjs +1 -1
  582. package/dist/native/components/ShapeChart/charts.cjs.map +1 -1
  583. package/dist/native/components/ShapeChart/charts.d.cts +6 -1
  584. package/dist/native/components/ShapeChart/charts.d.ts +6 -1
  585. package/dist/native/components/ShapeChart/charts.js +138 -96
  586. package/dist/native/components/ShapeChart/charts.js.map +1 -1
  587. package/dist/native/components/ShapeChart/draw.cjs +1 -1
  588. package/dist/native/components/ShapeChart/draw.cjs.map +1 -1
  589. package/dist/native/components/ShapeChart/draw.d.cts +1 -1
  590. package/dist/native/components/ShapeChart/draw.d.ts +1 -1
  591. package/dist/native/components/ShapeChart/draw.js +26 -17
  592. package/dist/native/components/ShapeChart/draw.js.map +1 -1
  593. package/dist/native/components/ShapeChart/geometry.cjs +1 -1
  594. package/dist/native/components/ShapeChart/geometry.cjs.map +1 -1
  595. package/dist/native/components/ShapeChart/geometry.js +233 -70
  596. package/dist/native/components/ShapeChart/geometry.js.map +1 -1
  597. package/dist/native/components/ShapeChart/index.cjs +1 -1
  598. package/dist/native/components/ShapeChart/index.d.cts +1 -1
  599. package/dist/native/components/ShapeChart/index.d.ts +1 -1
  600. package/dist/native/components/ShapeChart/index.js +2 -2
  601. package/dist/native/components/ShapeChart/recorder.cjs +1 -1
  602. package/dist/native/components/ShapeChart/recorder.cjs.map +1 -1
  603. package/dist/native/components/ShapeChart/recorder.d.cts +10 -1
  604. package/dist/native/components/ShapeChart/recorder.d.ts +10 -1
  605. package/dist/native/components/ShapeChart/recorder.js +19 -10
  606. package/dist/native/components/ShapeChart/recorder.js.map +1 -1
  607. package/dist/native/components/ShapeChart/types.d.cts +95 -8
  608. package/dist/native/components/ShapeChart/types.d.ts +95 -8
  609. package/dist/native/index.cjs +1 -1
  610. package/dist/native/index.js +2 -2
  611. package/dist/native/source/components/Chart/ChartBase.tsx +19 -6
  612. package/dist/native/source/components/Chart/charts.tsx +10 -3
  613. package/dist/native/source/components/Chart/scene.tsx +243 -14
  614. package/dist/native/source/components/Chart/types.ts +7 -0
  615. package/dist/native/source/components/Charts/charts.tsx +37 -2
  616. package/dist/native/source/components/Charts/types.ts +11 -0
  617. package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +10 -34
  618. package/dist/native/source/components/ShapeChart/charts.tsx +91 -35
  619. package/dist/native/source/components/ShapeChart/draw.tsx +39 -8
  620. package/dist/native/source/components/ShapeChart/geometry.ts +376 -25
  621. package/dist/native/source/components/ShapeChart/index.ts +1 -0
  622. package/dist/native/source/components/ShapeChart/recorder.ts +20 -5
  623. package/dist/native/source/components/ShapeChart/types.ts +99 -6
  624. package/dist/native/source/manifest.ts +1 -0
  625. package/dist/taro/chart-a11y.d.ts +7 -0
  626. package/dist/taro/charts.d.ts +29 -6
  627. package/dist/taro/index.js +3129 -1902
  628. package/dist/taro/shape-charts.d.ts +99 -5
  629. package/dist/uni/AreaChart.vue +2 -1
  630. package/dist/uni/AreaChart.vue.d.ts +5 -1
  631. package/dist/uni/Badge.vue.d.ts +1 -1
  632. package/dist/uni/BarChart.vue +2 -1
  633. package/dist/uni/BarChart.vue.d.ts +5 -1
  634. package/dist/uni/BoxPlotChart.vue +2 -1
  635. package/dist/uni/BoxPlotChart.vue.d.ts +8 -0
  636. package/dist/uni/BubbleChart.vue +2 -1
  637. package/dist/uni/BubbleChart.vue.d.ts +4 -0
  638. package/dist/uni/BulletChart.vue.d.ts +4 -0
  639. package/dist/uni/CalendarHeatmap.vue.d.ts +2 -0
  640. package/dist/uni/CandlestickChart.vue +2 -1
  641. package/dist/uni/CandlestickChart.vue.d.ts +4 -0
  642. package/dist/uni/Chart.vue +2 -1
  643. package/dist/uni/Chart.vue.d.ts +4 -0
  644. package/dist/uni/ChordChart.vue +93 -0
  645. package/dist/uni/ChordChart.vue.d.ts +136 -0
  646. package/dist/uni/Divider.vue.d.ts +1 -1
  647. package/dist/uni/DonutChart.vue.d.ts +5 -1
  648. package/dist/uni/FunnelChart.vue.d.ts +4 -0
  649. package/dist/uni/GanttChart.vue +2 -1
  650. package/dist/uni/GanttChart.vue.d.ts +15 -0
  651. package/dist/uni/GaugeChart.vue.d.ts +5 -1
  652. package/dist/uni/HeatmapChart.vue +2 -1
  653. package/dist/uni/HeatmapChart.vue.d.ts +8 -2
  654. package/dist/uni/HistogramChart.vue +2 -1
  655. package/dist/uni/HistogramChart.vue.d.ts +4 -0
  656. package/dist/uni/HorizontalBarChart.vue +2 -1
  657. package/dist/uni/HorizontalBarChart.vue.d.ts +3 -1
  658. package/dist/uni/LineChart.vue +2 -1
  659. package/dist/uni/LineChart.vue.d.ts +4 -0
  660. package/dist/uni/MixedChart.vue +2 -1
  661. package/dist/uni/MixedChart.vue.d.ts +4 -0
  662. package/dist/uni/PieChart.vue.d.ts +5 -1
  663. package/dist/uni/QuadrantChart.vue +2 -1
  664. package/dist/uni/QuadrantChart.vue.d.ts +4 -0
  665. package/dist/uni/RadarChart.vue.d.ts +4 -0
  666. package/dist/uni/RadialBarChart.vue.d.ts +4 -0
  667. package/dist/uni/RangeAreaChart.vue +2 -1
  668. package/dist/uni/RangeAreaChart.vue.d.ts +4 -0
  669. package/dist/uni/SankeyChart.vue.d.ts +4 -0
  670. package/dist/uni/ScatterChart.vue +2 -1
  671. package/dist/uni/ScatterChart.vue.d.ts +4 -0
  672. package/dist/uni/Sparkline.vue +2 -1
  673. package/dist/uni/Sparkline.vue.d.ts +4 -0
  674. package/dist/uni/SunburstChart.vue.d.ts +4 -0
  675. package/dist/uni/ToastProvider.vue.d.ts +1 -1
  676. package/dist/uni/TreemapChart.vue.d.ts +4 -0
  677. package/dist/uni/WaterfallChart.vue +2 -1
  678. package/dist/uni/WaterfallChart.vue.d.ts +9 -0
  679. package/dist/uni/chart-a11y.d.ts +7 -0
  680. package/dist/uni/chart-a11y.js +29 -0
  681. package/dist/uni/chart-canvas.d.ts +12 -0
  682. package/dist/uni/chart-canvas.js +15 -1
  683. package/dist/uni/chart-types.d.ts +36 -5
  684. package/dist/uni/chart-types.js +31 -3
  685. package/dist/uni/charts-canvas.js +3 -2
  686. package/dist/uni/index.d.ts +2 -1
  687. package/dist/uni/index.js +1 -0
  688. package/dist/uni/manifest.d.ts +7 -0
  689. package/dist/uni/manifest.js +10 -0
  690. package/dist/uni/named-chart-options.d.ts +11 -2
  691. package/dist/uni/named-chart-options.js +21 -1
  692. package/dist/uni/shape-chart-canvas.d.ts +3 -3
  693. package/dist/uni/shape-chart-canvas.js +17 -58
  694. package/dist/uni/shape-chart-types.d.ts +53 -3
  695. package/dist/uni/shape-chart-types.js +45 -1
  696. package/dist/vue/charts-global.d.ts +48 -0
  697. package/dist/vue/charts.d.ts +18 -0
  698. package/dist/vue/charts.js +56 -0
  699. package/dist/vue/charts.js.map +1 -0
  700. package/dist/vue/components/Chart/Bar3DChart.vue.d.ts +2 -0
  701. package/dist/vue/components/Chart/BoxPlotChart.vue.d.ts +8 -0
  702. package/dist/vue/components/Chart/BoxPlotChart.vue.js.map +1 -1
  703. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js +8 -2
  704. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  705. package/dist/vue/components/Chart/ChordChart.vue.d.ts +153 -0
  706. package/dist/vue/components/Chart/ChordChart.vue.js +7 -0
  707. package/dist/vue/components/Chart/ChordChart.vue.js.map +1 -0
  708. package/dist/vue/components/Chart/ChordChart.vue_vue_type_script_setup_true_lang.js +81 -0
  709. package/dist/vue/components/Chart/ChordChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  710. package/dist/vue/components/Chart/DependencyGraph.vue.d.ts +181 -0
  711. package/dist/vue/components/Chart/DependencyGraph.vue.js +7 -0
  712. package/dist/vue/components/Chart/DependencyGraph.vue.js.map +1 -0
  713. package/dist/vue/components/Chart/DependencyGraph.vue_vue_type_script_setup_true_lang.js +65 -0
  714. package/dist/vue/components/Chart/DependencyGraph.vue_vue_type_script_setup_true_lang.js.map +1 -0
  715. package/dist/vue/components/Chart/GanttChart.vue.d.ts +19 -0
  716. package/dist/vue/components/Chart/GanttChart.vue.js.map +1 -1
  717. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js +12 -1
  718. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  719. package/dist/vue/components/Chart/GraphChart.vue.d.ts +186 -0
  720. package/dist/vue/components/Chart/GraphChart.vue.js +7 -0
  721. package/dist/vue/components/Chart/GraphChart.vue.js.map +1 -0
  722. package/dist/vue/components/Chart/GraphChart.vue_vue_type_script_setup_true_lang.js +62 -0
  723. package/dist/vue/components/Chart/GraphChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  724. package/dist/vue/components/Chart/HeatmapChart.vue.d.ts +9 -5
  725. package/dist/vue/components/Chart/HeatmapChart.vue.js.map +1 -1
  726. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js +3 -1
  727. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  728. package/dist/vue/components/Chart/Line3DChart.vue.d.ts +2 -0
  729. package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +2 -0
  730. package/dist/vue/components/Chart/Scatter3DChart.vue.d.ts +2 -0
  731. package/dist/vue/components/Chart/Surface3DChart.vue.d.ts +2 -0
  732. package/dist/vue/components/Chart/TimeAndSales.vue.d.ts +2 -0
  733. package/dist/vue/components/Chart/TradingChart.vue.d.ts +58 -1
  734. package/dist/vue/components/Chart/TradingChart.vue.js.map +1 -1
  735. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js +31 -0
  736. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  737. package/dist/vue/components/Chart/TreeChart.vue.d.ts +174 -0
  738. package/dist/vue/components/Chart/TreeChart.vue.js +7 -0
  739. package/dist/vue/components/Chart/TreeChart.vue.js.map +1 -0
  740. package/dist/vue/components/Chart/TreeChart.vue_vue_type_script_setup_true_lang.js +56 -0
  741. package/dist/vue/components/Chart/TreeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  742. package/dist/vue/components/Chart/WaterfallChart.vue.d.ts +12 -1
  743. package/dist/vue/components/Chart/WaterfallChart.vue.js.map +1 -1
  744. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js +8 -2
  745. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  746. package/dist/vue/components/Chart/graph.d.ts +156 -0
  747. package/dist/vue/components/Chart/graph.js +137 -0
  748. package/dist/vue/components/Chart/graph.js.map +1 -0
  749. package/dist/vue/components/Chart/index.d.ts +5 -1
  750. package/dist/vue/components/Chart/index.js +5 -1
  751. package/dist/vue/components/Chart/orderbook.d.ts +5 -1
  752. package/dist/vue/components/Chart/orderbook.js +2 -0
  753. package/dist/vue/components/Chart/orderbook.js.map +1 -1
  754. package/dist/vue/components/Chart/three-d.d.ts +3 -0
  755. package/dist/vue/components/Chart/three-d.js +2 -0
  756. package/dist/vue/components/Chart/three-d.js.map +1 -1
  757. package/dist/vue/components/Chart/trading.d.ts +30 -3
  758. package/dist/vue/components/Chart/trading.js +9 -0
  759. package/dist/vue/components/Chart/trading.js.map +1 -1
  760. package/dist/vue/components/Chart/types.d.ts +74 -2
  761. package/dist/vue/global.d.ts +2 -38
  762. package/dist/vue/groups/charts.js +10 -2
  763. package/dist/vue/groups/charts.js.map +1 -1
  764. package/dist/vue/index.js +6 -2
  765. package/dist/vue/internal/register.d.ts +7 -0
  766. package/dist/vue/internal/register.js +14 -0
  767. package/dist/vue/internal/register.js.map +1 -0
  768. package/dist/vue/plugin.d.ts +9 -4
  769. package/dist/vue/plugin.js +6 -11
  770. package/dist/vue/plugin.js.map +1 -1
  771. package/dist/weapp/area-chart/index.wxml +1 -1
  772. package/dist/weapp/bar-chart/index.wxml +1 -1
  773. package/dist/weapp/box-plot-chart/index.wxml +1 -1
  774. package/dist/weapp/bubble-chart/index.wxml +1 -1
  775. package/dist/weapp/candlestick-chart/index.wxml +1 -1
  776. package/dist/weapp/chart/index.wxml +1 -1
  777. package/dist/weapp/charts/canvas.js +1987 -175
  778. package/dist/weapp/charts/core.js +3 -0
  779. package/dist/weapp/chord-chart/index.js +1 -0
  780. package/dist/weapp/chord-chart/index.json +1 -0
  781. package/dist/weapp/chord-chart/index.wxml +1 -0
  782. package/dist/weapp/chord-chart/index.wxss +1 -0
  783. package/dist/weapp/controls.js +148 -57
  784. package/dist/weapp/gantt-chart/index.wxml +1 -1
  785. package/dist/weapp/heatmap-chart/index.wxml +1 -1
  786. package/dist/weapp/histogram-chart/index.wxml +1 -1
  787. package/dist/weapp/horizontal-bar-chart/index.wxml +1 -1
  788. package/dist/weapp/line-chart/index.wxml +1 -1
  789. package/dist/weapp/mixed-chart/index.wxml +1 -1
  790. package/dist/weapp/quadrant-chart/index.wxml +1 -1
  791. package/dist/weapp/range-area-chart/index.wxml +1 -1
  792. package/dist/weapp/scatter-chart/index.wxml +1 -1
  793. package/dist/weapp/sparkline/index.wxml +1 -1
  794. package/dist/weapp/types.d.ts +96 -4
  795. package/dist/weapp/waterfall-chart/index.wxml +1 -1
  796. package/dist/web-components/components/chart/charts.d.ts +4 -2
  797. package/dist/web-components/components/chart/charts.js +8 -1
  798. package/dist/web-components/components/chart/charts.js.map +1 -1
  799. package/dist/web-components/components/chart/extended.d.ts +21 -7
  800. package/dist/web-components/components/chart/extended.js +29 -9
  801. package/dist/web-components/components/chart/extended.js.map +1 -1
  802. package/dist/web-components/components/chart/shapes-extended.d.ts +37 -1
  803. package/dist/web-components/components/chart/shapes-extended.js +27 -1
  804. package/dist/web-components/components/chart/shapes-extended.js.map +1 -1
  805. package/dist/web-components/components/chart-3d/chart-3d.d.ts +1 -1
  806. package/dist/web-components/components/chart-3d/chart-3d.js.map +1 -1
  807. package/dist/web-components/components/graph/graph.d.ts +156 -0
  808. package/dist/web-components/components/graph/graph.js +150 -0
  809. package/dist/web-components/components/graph/graph.js.map +1 -0
  810. package/dist/web-components/components/trading-chart/trading-chart.d.ts +49 -2
  811. package/dist/web-components/components/trading-chart/trading-chart.js +62 -0
  812. package/dist/web-components/components/trading-chart/trading-chart.js.map +1 -1
  813. package/dist/web-components/elements/chart.d.ts +1 -1
  814. package/dist/web-components/elements/chart.js +6 -5
  815. package/dist/web-components/elements/chart.js.map +1 -1
  816. package/dist/web-components/elements/graph.d.ts +2 -0
  817. package/dist/web-components/elements/graph.js +12 -0
  818. package/dist/web-components/elements/graph.js.map +1 -0
  819. package/dist/web-components/html-custom-data.json +318 -4
  820. package/dist/web-components/types/react.d.ts +63 -4
  821. package/dist/web-components/types/solid.d.ts +55 -8
  822. package/dist/web-components/types/svelte.d.ts +55 -8
  823. package/dist/web-components/types/vue.d.ts +55 -4
  824. package/package.json +16 -1
@@ -1,28 +1,28 @@
1
1
  import { mix as e, toCss as t } from "../color.js";
2
2
  import { linearTicks as n, niceDomain as r } from "../scale.js";
3
3
  import { font as i } from "../overlay.js";
4
- import { clamp as a, ellipsize as o, emptyLayout as s, finite as c, resolveWith as l, sum as u, uniqueKeys as d } from "./scene.js";
4
+ import { clamp as a, ellipsize as o, emptyLayout as s, finite as c, resolveWith as l, sum as u, uniqueKeys as d, wrapText as f } from "./scene.js";
5
5
  //#region ../charts/src/engine/shapes/bullet.ts
6
- var f = (e) => d(e.data.map((e) => e.name)), p = (e) => typeof e == "number" && Number.isFinite(e) ? e : void 0, m = (e, t) => (t.ranges ?? e.ranges ?? []).filter((e) => typeof e == "number" && Number.isFinite(e)).slice().sort((e, t) => e - t), ee = (e, t) => {
7
- let n = m(e, t), i = c(t.value), a = p(t.target), o = [
6
+ var p = (e) => d(e.data.map((e) => e.name)), m = (e) => typeof e == "number" && Number.isFinite(e) ? e : void 0, ee = (e, t) => (t.ranges ?? e.ranges ?? []).filter((e) => typeof e == "number" && Number.isFinite(e)).slice().sort((e, t) => e - t), h = (e, t) => {
7
+ let n = ee(e, t), i = c(t.value), a = m(t.target), o = [
8
8
  0,
9
9
  i,
10
10
  ...a === void 0 ? [] : [a]
11
- ], s = p(t.min) ?? Math.min(...o), l = [
11
+ ], s = m(t.min) ?? Math.min(...o), l = [
12
12
  i,
13
13
  ...a === void 0 ? [] : [a],
14
14
  ...n
15
- ], u = p(t.max);
15
+ ], u = m(t.max);
16
16
  if (u === void 0) {
17
17
  let e = Math.max(...l), t = n.length ? n[n.length - 1] : -Infinity;
18
18
  u = e <= t ? t : r(s, e, 5)[1];
19
19
  }
20
20
  return u > s || (u === s ? u = s + 1 : [s, u] = [u, s]), [s, u];
21
- }, h = (e, t, n) => {
22
- f(e).forEach((r, i) => {
21
+ }, g = (e, t, n) => {
22
+ p(e).forEach((r, i) => {
23
23
  let a = e.data[i];
24
24
  n.set(r, c(a.value));
25
- let o = p(a.target);
25
+ let o = m(a.target);
26
26
  o !== void 0 && n.set(`>${r}`, o), n.set(`~${r}`, +!t.has(i));
27
27
  });
28
28
  }, te = (t, n, r) => {
@@ -31,16 +31,16 @@ var f = (e) => d(e.data.map((e) => e.name)), p = (e) => typeof e == "number" &&
31
31
  let o = e(i.background, i.text, r <= 1 ? .09 : .24 - .16 * a / (r - 1)), s = t.rangeColors?.[a];
32
32
  return s ? l(i, s, o) : o;
33
33
  });
34
- }, g = (e, r) => {
35
- let { theme: d, area: h, measure: g, hidden: _ } = r, v = f(e), y = e.data.length, b = v.map((e, t) => a(r.value(`~${e}`, +!_.has(t)), 0, 1)), x = u(b);
36
- if (!y || x <= 1e-6) return s(r);
37
- let S = e.orientation === "vertical", C = a(r.enter, 0, 1), ne = a(c(e.barSize, .4), .1, 1), w = i(d, 12, 600), T = i(d, 11), E = i(d, 12, 600), D = i(d, 10), O = t(d.textMuted), k = t(d.text), re = t(l(d, e.targetColor, d.text)), ie = e.ticks !== !1, A = [], j = [], M = e.data.some((e, t) => !!e.subtitle && b[t] > 0), N = e.data.map((e) => r.format(c(e.value))), P = S ? 0 : Math.min(h.width * .32, Math.max(0, ...e.data.map((e) => Math.max(g(e.name, w), e.subtitle ? g(e.subtitle, T) : 0))) + 14), F = S ? 0 : Math.min(h.width * .2, Math.max(0, ...N.map((e) => g(e, E))) + 12), I = S ? 22 + (M ? 14 : 0) : 0, ae = S ? 20 : 0, oe = (S ? h.width : h.height) / x, se = 0;
34
+ }, _ = 15, v = (e, r) => {
35
+ let { theme: d, area: g, measure: v, hidden: ne } = r, y = p(e), b = e.data.length, x = y.map((e, t) => a(r.value(`~${e}`, +!ne.has(t)), 0, 1)), S = u(x);
36
+ if (!b || S <= 1e-6) return s(r);
37
+ let C = e.orientation === "vertical", w = a(r.enter, 0, 1), re = a(c(e.barSize, .4), .1, 1), T = i(d, 12, 600), E = i(d, 11), D = i(d, 12, 600), O = i(d, 10), k = t(d.textMuted), A = t(d.text), ie = t(l(d, e.targetColor, d.text)), ae = e.ticks !== !1, j = [], oe = [], M = e.data.some((e, t) => !!e.subtitle && x[t] > 0), N = e.data.map((e) => r.format(c(e.value))), P = e.data.map((e) => v(e.name, T)), F = g.width * (g.width < 420 ? .34 : .4), se = e.data.map((e, t) => P[t] <= F - 14 ? P[t] : Math.max(0, ...f(e.name, F - 14, T, v, 2).map((e) => v(e, T)))), I = C ? 0 : Math.min(F, Math.max(0, ...e.data.map((e, t) => Math.max(se[t], e.subtitle ? v(e.subtitle, E) : 0))) + 14), ce = C ? 0 : Math.min(g.width * .2, Math.max(0, ...N.map((e) => v(e, D))) + 12), L = g.width / S, R = C && e.data.some((e, t) => x[t] > 0 && P[t] > L - 8), z = C ? 22 + (R ? _ : 0) + (M ? 14 : 0) : 0, B = C ? 20 : 0, le = (C ? g.width : g.height) / S, V = 0;
38
38
  return e.data.forEach((i, s) => {
39
- let l = b[s], u = oe * l, d = se;
40
- if (se += u, l <= .001) return;
41
- let f = v[s], y = l, [x, M] = ee(e, i), L = m(e, i).filter((e) => e > x), R = te(e, r, L.length), ce = r.value(f, c(i.value)), z = p(i.target), B = z === void 0 ? void 0 : r.value(`>${f}`, z), le = r.color(i.color, s), V = t(le), H = a(u * (S ? .3 : .42), 8, 28), U = S ? Math.max(1, h.height - I - ae) : Math.max(1, h.width - P - F), W = ie ? n(x, M, Math.max(2, Math.floor(U / 70))) : [], G = S ? u / 2 - H / 2 - 6 : u - H - 10, ue = Math.max(0, ...W.map((e) => g(r.format(e), D))), K = W.length > 1 && (S ? G >= ue : G >= 14), de = S ? h.y + h.height - I : h.x + P, q = (e) => de + (S ? -1 : 1) * U * a((e - x) / (M - x), 0, 1), J = S ? h.x + d + u / 2 : h.y + d + (u - (K ? 14 : 0)) / 2, Y = (e, t, n) => {
39
+ let l = x[s], u = le * l, d = V;
40
+ if (V += u, l <= .001) return;
41
+ let p = y[s], b = l, [S, M] = h(e, i), P = ee(e, i).filter((e) => e > S), F = te(e, r, P.length), se = r.value(p, c(i.value)), L = m(i.target), H = L === void 0 ? void 0 : r.value(`>${p}`, L), ue = r.color(i.color, s), U = t(ue), W = a(u * (C ? .3 : .42), 8, 28), G = C ? Math.max(1, g.height - z - B) : Math.max(1, g.width - I - ce), K = ae ? n(S, M, Math.max(2, Math.floor(G / 70))) : [], de = C ? u / 2 - W / 2 - 6 : u - W - 10, fe = Math.max(0, ...K.map((e) => v(r.format(e), O))), pe = K.length > 1 && (C ? de >= fe : de >= 14), me = C ? g.y + g.height - z : g.x + I, q = (e) => me + (C ? -1 : 1) * G * a((e - S) / (M - S), 0, 1), J = C ? g.x + d + u / 2 : g.y + d + (u - (pe ? 14 : 0)) / 2, Y = (e, t, n) => {
42
42
  let r = Math.min(q(e), q(t)), i = Math.max(q(e), q(t));
43
- return S ? {
43
+ return C ? {
44
44
  x: J - n / 2,
45
45
  y: r,
46
46
  width: n,
@@ -52,57 +52,57 @@ var f = (e) => d(e.data.map((e) => e.name)), p = (e) => typeof e == "number" &&
52
52
  height: n
53
53
  };
54
54
  };
55
- A.push({
55
+ j.push({
56
56
  kind: "rect",
57
- ...S ? {
58
- x: h.x + d,
59
- y: h.y,
57
+ ...C ? {
58
+ x: g.x + d,
59
+ y: g.y,
60
60
  width: u,
61
- height: h.height
61
+ height: g.height
62
62
  } : {
63
- x: h.x,
64
- y: h.y + d,
65
- width: h.width,
63
+ x: g.x,
64
+ y: g.y + d,
65
+ width: g.width,
66
66
  height: u
67
67
  },
68
68
  radius: 0,
69
69
  fill: "rgba(0, 0, 0, 0)",
70
70
  hit: s,
71
- alpha: y
71
+ alpha: b
72
72
  });
73
- let fe = L.length ? L : [M], X = x;
74
- fe.forEach((e, n) => {
73
+ let he = P.length ? P : [M], X = S;
74
+ he.forEach((e, n) => {
75
75
  let r = Math.min(e, M);
76
- r > X && A.push({
76
+ r > X && j.push({
77
77
  kind: "rect",
78
- ...Y(X, r, H),
78
+ ...Y(X, r, W),
79
79
  radius: 0,
80
- fill: t(R[n]),
80
+ fill: t(F[n]),
81
81
  hit: s,
82
- alpha: y
82
+ alpha: b
83
83
  }), X = Math.max(X, r);
84
- }), X < M && A.push({
84
+ }), X < M && j.push({
85
85
  kind: "rect",
86
- ...Y(X, M, H),
86
+ ...Y(X, M, W),
87
87
  radius: 0,
88
- fill: t(R[R.length - 1]),
88
+ fill: t(F[F.length - 1]),
89
89
  hit: s,
90
- alpha: y
90
+ alpha: b
91
91
  });
92
- let Z = a(0, x, M), pe = Z + (ce - Z) * C;
93
- if (A.push({
92
+ let Z = a(0, S, M), ge = Z + (se - Z) * w;
93
+ if (j.push({
94
94
  kind: "rect",
95
- ...Y(Z, pe, H * ne),
95
+ ...Y(Z, ge, W * re),
96
96
  radius: 1,
97
- fill: V,
97
+ fill: U,
98
98
  hit: s,
99
- alpha: y,
99
+ alpha: b,
100
100
  brighten: !0
101
- }), B !== void 0 && B >= x && B <= M) {
102
- let e = q(B), t = H * .82;
103
- A.push({
101
+ }), H !== void 0 && H >= S && H <= M) {
102
+ let e = q(H), t = W * .82;
103
+ j.push({
104
104
  kind: "rect",
105
- ...S ? {
105
+ ...C ? {
106
106
  x: J - t / 2,
107
107
  y: e - 1.5,
108
108
  width: t,
@@ -114,142 +114,142 @@ var f = (e) => d(e.data.map((e) => e.name)), p = (e) => typeof e == "number" &&
114
114
  height: t
115
115
  },
116
116
  radius: 1,
117
- fill: re,
117
+ fill: ie,
118
118
  hit: s,
119
- alpha: y * C
119
+ alpha: b * w
120
120
  });
121
121
  }
122
- if (K) for (let e of W) {
122
+ if (pe) for (let e of K) {
123
123
  let t = q(e);
124
- A.push({
124
+ j.push({
125
125
  kind: "text",
126
- x: S ? J - H / 2 - 5 : t,
127
- y: S ? t : J + H / 2 + 4,
126
+ x: C ? J - W / 2 - 5 : t,
127
+ y: C ? t : J + W / 2 + 4,
128
128
  text: r.format(e),
129
- font: D,
130
- color: O,
131
- align: S ? "right" : "center",
132
- baseline: S ? "middle" : "top",
129
+ font: O,
130
+ color: k,
131
+ align: C ? "right" : "center",
132
+ baseline: C ? "middle" : "top",
133
133
  hit: s,
134
- alpha: y
134
+ alpha: b
135
135
  });
136
136
  }
137
- if (S) {
138
- let e = Math.max(0, u - 8), t = o(i.name, e, w, g), n = h.y + h.height;
139
- t && A.push({
137
+ if (C) {
138
+ let e = Math.max(0, u - 8), t = f(i.name, e, T, v, R ? 2 : 1), n = g.y + g.height;
139
+ t.forEach((e, t) => j.push({
140
140
  kind: "text",
141
141
  x: J,
142
- y: n - I + 16,
143
- text: t,
144
- font: w,
145
- color: k,
142
+ y: n - z + 16 + t * _,
143
+ text: e,
144
+ font: T,
145
+ color: A,
146
146
  align: "center",
147
147
  baseline: "middle",
148
148
  hit: s,
149
- alpha: y
150
- });
151
- let r = i.subtitle ? o(i.subtitle, e, T, g) : "";
152
- r && A.push({
149
+ alpha: b
150
+ }));
151
+ let r = i.subtitle ? o(i.subtitle, e, E, v) : "";
152
+ r && j.push({
153
153
  kind: "text",
154
154
  x: J,
155
- y: n - I + 31,
155
+ y: n - z + 31 + (R ? _ : 0),
156
156
  text: r,
157
- font: T,
158
- color: O,
157
+ font: E,
158
+ color: k,
159
159
  align: "center",
160
160
  baseline: "middle",
161
161
  hit: s,
162
- alpha: y
162
+ alpha: b
163
163
  });
164
- let a = o(N[s], e, E, g);
165
- a && A.push({
164
+ let a = o(N[s], e, D, v);
165
+ a && j.push({
166
166
  kind: "text",
167
167
  x: J,
168
- y: h.y + ae / 2,
168
+ y: g.y + B / 2,
169
169
  text: a,
170
- font: E,
171
- color: k,
170
+ font: D,
171
+ color: A,
172
172
  align: "center",
173
173
  baseline: "middle",
174
174
  hit: s,
175
- alpha: y
175
+ alpha: b
176
176
  });
177
177
  } else {
178
- let e = Math.max(0, P - 14), t = o(i.name, e, w, g), n = i.subtitle && u >= 34 ? o(i.subtitle, e, T, g) : "", r = h.x + P - 14;
179
- t && A.push({
178
+ let e = Math.max(0, I - 14), t = u - 4, n = i.subtitle && t >= 29 ? o(i.subtitle, e, E, v) : "", r = n ? 13 : 0, a = f(i.name, e, T, v, t >= 30 + r ? 2 : 1), c = J - (a.length * _ + r) / 2, l = g.x + I - 14;
179
+ a.forEach((e, t) => j.push({
180
180
  kind: "text",
181
- x: r,
182
- y: n ? J - 7 : J,
183
- text: t,
184
- font: w,
185
- color: k,
181
+ x: l,
182
+ y: c + _ / 2 + t * _,
183
+ text: e,
184
+ font: T,
185
+ color: A,
186
186
  align: "right",
187
187
  baseline: "middle",
188
188
  hit: s,
189
- alpha: y
190
- }), n && A.push({
189
+ alpha: b
190
+ })), n && j.push({
191
191
  kind: "text",
192
- x: r,
193
- y: J + 8,
192
+ x: l,
193
+ y: c + a.length * _ + r / 2,
194
194
  text: n,
195
- font: T,
196
- color: O,
195
+ font: E,
196
+ color: k,
197
197
  align: "right",
198
198
  baseline: "middle",
199
199
  hit: s,
200
- alpha: y
200
+ alpha: b
201
201
  });
202
- let a = o(N[s], F - 8, E, g);
203
- a && A.push({
202
+ let d = o(N[s], ce - 8, D, v);
203
+ d && j.push({
204
204
  kind: "text",
205
- x: h.x + h.width,
205
+ x: g.x + g.width,
206
206
  y: J,
207
- text: a,
208
- font: E,
209
- color: k,
207
+ text: d,
208
+ font: D,
209
+ color: A,
210
210
  align: "right",
211
211
  baseline: "middle",
212
212
  hit: s,
213
- alpha: y
213
+ alpha: b
214
214
  });
215
215
  }
216
- if (_.has(s)) return;
217
- let Q = c(i.value), $ = z !== void 0 && z !== 0 ? Q / z : (Q - x) / (M - x), me = L.findIndex((e) => Q <= e), he = me >= 0 ? e.rangeLabels?.[me] : void 0, ge = q(Q);
218
- j.push({
216
+ if (ne.has(s)) return;
217
+ let Q = c(i.value), $ = L !== void 0 && L !== 0 ? Q / L : (Q - S) / (M - S), _e = P.findIndex((e) => Q <= e), ve = _e >= 0 ? e.rangeLabels?.[_e] : void 0, ye = q(Q);
218
+ oe.push({
219
219
  index: s,
220
220
  name: i.name,
221
221
  value: Q,
222
222
  percent: $,
223
223
  share: r.percent($),
224
- color: V,
225
- x: S ? J : ge,
226
- y: S ? ge : J,
224
+ color: U,
225
+ x: C ? J : ye,
226
+ y: C ? ye : J,
227
227
  rows: [
228
228
  {
229
229
  name: r.labels.value,
230
230
  value: r.format(Q)
231
231
  },
232
- ...z === void 0 ? [] : [{
232
+ ...L === void 0 ? [] : [{
233
233
  name: r.labels.target,
234
- value: r.format(z)
234
+ value: r.format(L)
235
235
  }, {
236
236
  name: r.labels.ofTarget,
237
237
  value: r.percent($)
238
238
  }],
239
- ...he ? [{
239
+ ...ve ? [{
240
240
  name: r.labels.range,
241
- value: he
241
+ value: ve
242
242
  }] : []
243
243
  ]
244
244
  });
245
245
  }), {
246
- nodes: A,
247
- items: j,
246
+ nodes: j,
247
+ items: oe,
248
248
  dim: .4,
249
249
  empty: !1
250
250
  };
251
251
  };
252
252
  //#endregion
253
- export { ee as bulletScale, h as bulletValues, g as layoutBullet };
253
+ export { h as bulletScale, g as bulletValues, v as layoutBullet };
254
254
 
255
255
  //# sourceMappingURL=bullet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bullet.js","names":["keysOf","uniqueKeys","o","d","num","v","rangesOf","r","a","b","bulletScale","ranges","value","finite","target","lows","min","highs","max","top","last","niceDomain","bulletValues","key","out","rangeFills","c","count","gray","mix","theme","k","own","resolveWith","layoutBullet","keys","n","weights","clamp","i","total","sum","emptyLayout","vertical","enter","barSize","nameFont","font","subFont","valueFont","tickFont","muted","toCss","text","markColor","showTicks","nodes","items","hasSubtitle","valueText","labelW","area","measure","valueW","t","labelH","valueH","unit","offset","w","slot","from","alpha","fills","target0","color","css","thick","span","ticks","linearTicks","tickRoom","tickW","drawTicks","p0","along","mid","band","lo","hi","bounds","edge","to","bound","base","shownValue","at","len","room","name","ellipsize","bottom","sub","x","hidden","percent","rangeIndex","rangeName","end"],"sources":["../../../../../../../charts/src/engine/shapes/bullet.ts"],"sourcesContent":["// Bullet chart layout (Stephen Few): per row, qualitative ranges as shades\n// of gray, the measure as a bar and the target as a marker, on the row's own\n// scale; name and subtitle on the left (below when vertical), value on the\n// right (above when vertical), tick labels when there is room.\n\nimport { mix, toCss, type Rgba } from \"../color\";\nimport { font } from \"../overlay\";\nimport { linearTicks, niceDomain } from \"../scale\";\nimport {\n clamp,\n ellipsize,\n emptyLayout,\n finite,\n resolveWith,\n sum,\n uniqueKeys,\n type LayoutContext,\n type LayoutResult,\n type ShapeItem,\n type ShapeNode,\n} from \"./scene\";\nimport type { BulletChartOptions, BulletDatum } from \"./types\";\n\nconst keysOf = (o: BulletChartOptions) => uniqueKeys(o.data.map((d) => d.name));\n\nconst num = (v: number | undefined) =>\n typeof v === \"number\" && Number.isFinite(v) ? v : undefined;\n\n/** Qualitative ranges of a row: finite upper bounds, ascending */\nconst rangesOf = (o: BulletChartOptions, d: BulletDatum) =>\n (d.ranges ?? o.ranges ?? [])\n .filter((r) => typeof r === \"number\" && Number.isFinite(r))\n .slice()\n .sort((a, b) => a - b);\n\n/** Scale of a row: `[min, max]` */\nexport const bulletScale = (\n o: BulletChartOptions,\n d: BulletDatum,\n): [number, number] => {\n const ranges = rangesOf(o, d);\n const value = finite(d.value);\n const target = num(d.target);\n const lows = [0, value, ...(target !== undefined ? [target] : [])];\n let min = num(d.min) ?? Math.min(...lows);\n const highs = [value, ...(target !== undefined ? [target] : []), ...ranges];\n let max = num(d.max);\n if (max === undefined) {\n const top = Math.max(...highs);\n const last = ranges.length ? ranges[ranges.length - 1] : -Infinity;\n max = top <= last ? last : niceDomain(min, top, 5)[1];\n }\n if (!(max > min)) {\n if (max === min) max = min + 1;\n else [min, max] = [max, min];\n }\n return [min, max];\n};\n\nexport const bulletValues = (\n o: BulletChartOptions,\n hidden: ReadonlySet<number>,\n out: Map<string, number>,\n) => {\n keysOf(o).forEach((key, i) => {\n const d = o.data[i];\n out.set(key, finite(d.value));\n const target = num(d.target);\n if (target !== undefined) out.set(`>${key}`, target);\n out.set(`~${key}`, hidden.has(i) ? 0 : 1);\n });\n};\n\n/** Default fills of the ranges: grays, the lowest (poorest) darkest */\nconst rangeFills = (\n o: BulletChartOptions,\n c: LayoutContext,\n count: number,\n): Rgba[] => {\n const { theme } = c;\n return Array.from({ length: Math.max(1, count) }, (_, k) => {\n const gray = mix(\n theme.background,\n theme.text,\n count <= 1 ? 0.09 : 0.24 - (0.16 * k) / (count - 1),\n );\n const own = o.rangeColors?.[k];\n return own ? resolveWith(theme, own, gray) : gray;\n });\n};\n\nexport const layoutBullet = (\n o: BulletChartOptions,\n c: LayoutContext,\n): LayoutResult => {\n const { theme, area, measure, hidden } = c;\n const keys = keysOf(o);\n const n = o.data.length;\n const weights = keys.map((key, i) =>\n clamp(c.value(`~${key}`, hidden.has(i) ? 0 : 1), 0, 1),\n );\n const total = sum(weights);\n if (!n || total <= 1e-6) return emptyLayout(c);\n const vertical = o.orientation === \"vertical\";\n const enter = clamp(c.enter, 0, 1);\n const barSize = clamp(finite(o.barSize, 0.4), 0.1, 1);\n const nameFont = font(theme, 12, 600);\n const subFont = font(theme, 11);\n const valueFont = font(theme, 12, 600);\n const tickFont = font(theme, 10);\n const muted = toCss(theme.textMuted);\n const text = toCss(theme.text);\n const transparent = \"rgba(0, 0, 0, 0)\";\n const markColor = toCss(resolveWith(theme, o.targetColor, theme.text));\n const showTicks = o.ticks !== false;\n\n const nodes: ShapeNode[] = [];\n const items: ShapeItem[] = [];\n const hasSubtitle = o.data.some((d, i) => !!d.subtitle && weights[i] > 0);\n const valueText = o.data.map((d) => c.format(finite(d.value)));\n\n // shared columns (horizontal) / bands (vertical) of the labels and values\n const labelW = vertical\n ? 0\n : Math.min(\n area.width * 0.32,\n Math.max(\n 0,\n ...o.data.map((d) =>\n Math.max(\n measure(d.name, nameFont),\n d.subtitle ? measure(d.subtitle, subFont) : 0,\n ),\n ),\n ) + 14,\n );\n const valueW = vertical\n ? 0\n : Math.min(\n area.width * 0.2,\n Math.max(0, ...valueText.map((t) => measure(t, valueFont))) + 12,\n );\n const labelH = vertical ? 22 + (hasSubtitle ? 14 : 0) : 0;\n const valueH = vertical ? 20 : 0;\n const unit = (vertical ? area.width : area.height) / total;\n\n let offset = 0;\n o.data.forEach((d, i) => {\n const w = weights[i];\n const slot = unit * w;\n const from = offset;\n offset += slot;\n if (w <= 1e-3) return;\n const key = keys[i];\n const alpha = w;\n const [min, max] = bulletScale(o, d);\n const ranges = rangesOf(o, d).filter((r) => r > min);\n const fills = rangeFills(o, c, ranges.length);\n const value = c.value(key, finite(d.value));\n const target0 = num(d.target);\n const target =\n target0 !== undefined ? c.value(`>${key}`, target0) : undefined;\n const color = c.color(d.color, i);\n const css = toCss(color);\n const thick = clamp(slot * (vertical ? 0.3 : 0.42), 8, 28);\n const span = vertical\n ? Math.max(1, area.height - labelH - valueH)\n : Math.max(1, area.width - labelW - valueW);\n const ticks = showTicks\n ? linearTicks(min, max, Math.max(2, Math.floor(span / 70)))\n : [];\n const tickRoom = vertical ? slot / 2 - thick / 2 - 6 : slot - thick - 10;\n const tickW = Math.max(\n 0,\n ...ticks.map((t) => measure(c.format(t), tickFont)),\n );\n const drawTicks =\n ticks.length > 1 && (vertical ? tickRoom >= tickW : tickRoom >= 14);\n\n // position along the scale, and across it\n const p0 = vertical ? area.y + area.height - labelH : area.x + labelW;\n const along = (v: number) =>\n p0 + (vertical ? -1 : 1) * span * clamp((v - min) / (max - min), 0, 1);\n const mid = vertical\n ? area.x + from + slot / 2\n : area.y + from + (slot - (drawTicks ? 14 : 0)) / 2;\n /** Rectangle from `a` to `b` along the scale, `t` thick across it */\n const band = (a: number, b: number, t: number) => {\n const lo = Math.min(along(a), along(b));\n const hi = Math.max(along(a), along(b));\n return vertical\n ? { x: mid - t / 2, y: lo, width: t, height: hi - lo }\n : { x: lo, y: mid - t / 2, width: hi - lo, height: t };\n };\n\n // the whole row / column is a hover target\n nodes.push({\n kind: \"rect\",\n ...(vertical\n ? { x: area.x + from, y: area.y, width: slot, height: area.height }\n : { x: area.x, y: area.y + from, width: area.width, height: slot }),\n radius: 0,\n fill: transparent,\n hit: i,\n alpha,\n });\n // ranges: disjoint segments (translucent colors must not add up)\n const bounds = ranges.length ? ranges : [max];\n let edge = min;\n bounds.forEach((bound, k) => {\n const to = Math.min(bound, max);\n if (to > edge)\n nodes.push({\n kind: \"rect\",\n ...band(edge, to, thick),\n radius: 0,\n fill: toCss(fills[k]),\n hit: i,\n alpha,\n });\n edge = Math.max(edge, to);\n });\n if (edge < max)\n nodes.push({\n kind: \"rect\",\n ...band(edge, max, thick),\n radius: 0,\n fill: toCss(fills[fills.length - 1]),\n hit: i,\n alpha,\n });\n // measure\n const base = clamp(0, min, max);\n const shownValue = base + (value - base) * enter;\n nodes.push({\n kind: \"rect\",\n ...band(base, shownValue, thick * barSize),\n radius: 1,\n fill: css,\n hit: i,\n alpha,\n brighten: true,\n });\n // target\n if (target !== undefined && target >= min && target <= max) {\n const at = along(target);\n const len = thick * 0.82;\n nodes.push({\n kind: \"rect\",\n ...(vertical\n ? { x: mid - len / 2, y: at - 1.5, width: len, height: 3 }\n : { x: at - 1.5, y: mid - len / 2, width: 3, height: len }),\n radius: 1,\n fill: markColor,\n hit: i,\n alpha: alpha * enter,\n });\n }\n // ticks\n if (drawTicks)\n for (const t of ticks) {\n const at = along(t);\n nodes.push({\n kind: \"text\",\n x: vertical ? mid - thick / 2 - 5 : at,\n y: vertical ? at : mid + thick / 2 + 4,\n text: c.format(t),\n font: tickFont,\n color: muted,\n align: vertical ? \"right\" : \"center\",\n baseline: vertical ? \"middle\" : \"top\",\n hit: i,\n alpha,\n });\n }\n\n // name, subtitle and value\n if (vertical) {\n const room = Math.max(0, slot - 8);\n const name = ellipsize(d.name, room, nameFont, measure);\n const bottom = area.y + area.height;\n if (name)\n nodes.push({\n kind: \"text\",\n x: mid,\n y: bottom - labelH + 16,\n text: name,\n font: nameFont,\n color: text,\n align: \"center\",\n baseline: \"middle\",\n hit: i,\n alpha,\n });\n const sub = d.subtitle\n ? ellipsize(d.subtitle, room, subFont, measure)\n : \"\";\n if (sub)\n nodes.push({\n kind: \"text\",\n x: mid,\n y: bottom - labelH + 31,\n text: sub,\n font: subFont,\n color: muted,\n align: \"center\",\n baseline: \"middle\",\n hit: i,\n alpha,\n });\n const value = ellipsize(valueText[i], room, valueFont, measure);\n if (value)\n nodes.push({\n kind: \"text\",\n x: mid,\n y: area.y + valueH / 2,\n text: value,\n font: valueFont,\n color: text,\n align: \"center\",\n baseline: \"middle\",\n hit: i,\n alpha,\n });\n } else {\n const room = Math.max(0, labelW - 14);\n const name = ellipsize(d.name, room, nameFont, measure);\n const sub =\n d.subtitle && slot >= 34\n ? ellipsize(d.subtitle, room, subFont, measure)\n : \"\";\n const x = area.x + labelW - 14;\n if (name)\n nodes.push({\n kind: \"text\",\n x,\n y: sub ? mid - 7 : mid,\n text: name,\n font: nameFont,\n color: text,\n align: \"right\",\n baseline: \"middle\",\n hit: i,\n alpha,\n });\n if (sub)\n nodes.push({\n kind: \"text\",\n x,\n y: mid + 8,\n text: sub,\n font: subFont,\n color: muted,\n align: \"right\",\n baseline: \"middle\",\n hit: i,\n alpha,\n });\n const value = ellipsize(valueText[i], valueW - 8, valueFont, measure);\n if (value)\n nodes.push({\n kind: \"text\",\n x: area.x + area.width,\n y: mid,\n text: value,\n font: valueFont,\n color: text,\n align: \"right\",\n baseline: \"middle\",\n hit: i,\n alpha,\n });\n }\n\n if (hidden.has(i)) return;\n const v = finite(d.value);\n const percent =\n target0 !== undefined && target0 !== 0\n ? v / target0\n : (v - min) / (max - min);\n const rangeIndex = ranges.findIndex((r) => v <= r);\n const rangeName = rangeIndex >= 0 ? o.rangeLabels?.[rangeIndex] : undefined;\n const end = along(v);\n items.push({\n index: i,\n name: d.name,\n value: v,\n percent,\n share: c.percent(percent),\n color: css,\n x: vertical ? mid : end,\n y: vertical ? end : mid,\n rows: [\n { name: c.labels.value, value: c.format(v) },\n ...(target0 !== undefined\n ? [\n { name: c.labels.target, value: c.format(target0) },\n { name: c.labels.ofTarget, value: c.percent(percent) },\n ]\n : []),\n ...(rangeName ? [{ name: c.labels.range, value: rangeName }] : []),\n ],\n });\n });\n\n return { nodes, items, dim: 0.4, empty: false };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"bullet.js","names":["keysOf","uniqueKeys","o","d","num","v","rangesOf","r","a","b","bulletScale","ranges","value","finite","target","lows","min","highs","max","top","last","niceDomain","bulletValues","key","out","rangeFills","c","count","gray","mix","theme","k","own","resolveWith","NAME_LINE","layoutBullet","keys","n","weights","clamp","i","total","sum","emptyLayout","vertical","enter","barSize","nameFont","font","subFont","valueFont","tickFont","muted","toCss","text","markColor","showTicks","nodes","items","hasSubtitle","valueText","nameW","measure","labelCap","area","lineW","wrapText","l","labelW","valueW","t","columnW","wraps","labelH","valueH","unit","offset","w","slot","from","alpha","fills","target0","color","css","thick","span","ticks","linearTicks","tickRoom","tickW","drawTicks","p0","along","mid","band","lo","hi","bounds","edge","to","bound","base","shownValue","at","len","room","lines","bottom","line","sub","ellipsize","avail","subH","x","hidden","percent","rangeIndex","rangeName","end"],"sources":["../../../../../../../charts/src/engine/shapes/bullet.ts"],"sourcesContent":["// Bullet chart layout (Stephen Few): per row, qualitative ranges as shades\n// of gray, the measure as a bar and the target as a marker, on the row's own\n// scale; name and subtitle on the left (below when vertical), value on the\n// right (above when vertical), tick labels when there is room.\n\nimport { mix, toCss, type Rgba } from \"../color\";\nimport { font } from \"../overlay\";\nimport { linearTicks, niceDomain } from \"../scale\";\nimport {\n clamp,\n ellipsize,\n emptyLayout,\n finite,\n resolveWith,\n sum,\n uniqueKeys,\n wrapText,\n type LayoutContext,\n type LayoutResult,\n type ShapeItem,\n type ShapeNode,\n} from \"./scene\";\nimport type { BulletChartOptions, BulletDatum } from \"./types\";\n\nconst keysOf = (o: BulletChartOptions) => uniqueKeys(o.data.map((d) => d.name));\n\nconst num = (v: number | undefined) =>\n typeof v === \"number\" && Number.isFinite(v) ? v : undefined;\n\n/** Qualitative ranges of a row: finite upper bounds, ascending */\nconst rangesOf = (o: BulletChartOptions, d: BulletDatum) =>\n (d.ranges ?? o.ranges ?? [])\n .filter((r) => typeof r === \"number\" && Number.isFinite(r))\n .slice()\n .sort((a, b) => a - b);\n\n/** Scale of a row: `[min, max]` */\nexport const bulletScale = (\n o: BulletChartOptions,\n d: BulletDatum,\n): [number, number] => {\n const ranges = rangesOf(o, d);\n const value = finite(d.value);\n const target = num(d.target);\n const lows = [0, value, ...(target !== undefined ? [target] : [])];\n let min = num(d.min) ?? Math.min(...lows);\n const highs = [value, ...(target !== undefined ? [target] : []), ...ranges];\n let max = num(d.max);\n if (max === undefined) {\n const top = Math.max(...highs);\n const last = ranges.length ? ranges[ranges.length - 1] : -Infinity;\n max = top <= last ? last : niceDomain(min, top, 5)[1];\n }\n if (!(max > min)) {\n if (max === min) max = min + 1;\n else [min, max] = [max, min];\n }\n return [min, max];\n};\n\nexport const bulletValues = (\n o: BulletChartOptions,\n hidden: ReadonlySet<number>,\n out: Map<string, number>,\n) => {\n keysOf(o).forEach((key, i) => {\n const d = o.data[i];\n out.set(key, finite(d.value));\n const target = num(d.target);\n if (target !== undefined) out.set(`>${key}`, target);\n out.set(`~${key}`, hidden.has(i) ? 0 : 1);\n });\n};\n\n/** Default fills of the ranges: grays, the lowest (poorest) darkest */\nconst rangeFills = (\n o: BulletChartOptions,\n c: LayoutContext,\n count: number,\n): Rgba[] => {\n const { theme } = c;\n return Array.from({ length: Math.max(1, count) }, (_, k) => {\n const gray = mix(\n theme.background,\n theme.text,\n count <= 1 ? 0.09 : 0.24 - (0.16 * k) / (count - 1),\n );\n const own = o.rangeColors?.[k];\n return own ? resolveWith(theme, own, gray) : gray;\n });\n};\n\n/** Line height of the wrapped names */\nconst NAME_LINE = 15;\n\nexport const layoutBullet = (\n o: BulletChartOptions,\n c: LayoutContext,\n): LayoutResult => {\n const { theme, area, measure, hidden } = c;\n const keys = keysOf(o);\n const n = o.data.length;\n const weights = keys.map((key, i) =>\n clamp(c.value(`~${key}`, hidden.has(i) ? 0 : 1), 0, 1),\n );\n const total = sum(weights);\n if (!n || total <= 1e-6) return emptyLayout(c);\n const vertical = o.orientation === \"vertical\";\n const enter = clamp(c.enter, 0, 1);\n const barSize = clamp(finite(o.barSize, 0.4), 0.1, 1);\n const nameFont = font(theme, 12, 600);\n const subFont = font(theme, 11);\n const valueFont = font(theme, 12, 600);\n const tickFont = font(theme, 10);\n const muted = toCss(theme.textMuted);\n const text = toCss(theme.text);\n const transparent = \"rgba(0, 0, 0, 0)\";\n const markColor = toCss(resolveWith(theme, o.targetColor, theme.text));\n const showTicks = o.ticks !== false;\n\n const nodes: ShapeNode[] = [];\n const items: ShapeItem[] = [];\n const hasSubtitle = o.data.some((d, i) => !!d.subtitle && weights[i] > 0);\n const valueText = o.data.map((d) => c.format(finite(d.value)));\n\n // shared columns (horizontal) / bands (vertical) of the labels and values:\n // the label column fits the longest name up to a share of the width,\n // longer names wrap to two lines\n const nameW = o.data.map((d) => measure(d.name, nameFont));\n const labelCap = area.width * (area.width < 420 ? 0.34 : 0.4);\n // widest line of each name once wrapped (balanced) within the cap\n const lineW = o.data.map((d, i) =>\n nameW[i] <= labelCap - 14\n ? nameW[i]\n : Math.max(\n 0,\n ...wrapText(d.name, labelCap - 14, nameFont, measure, 2).map((l) =>\n measure(l, nameFont),\n ),\n ),\n );\n const labelW = vertical\n ? 0\n : Math.min(\n labelCap,\n Math.max(\n 0,\n ...o.data.map((d, i) =>\n Math.max(lineW[i], d.subtitle ? measure(d.subtitle, subFont) : 0),\n ),\n ) + 14,\n );\n const valueW = vertical\n ? 0\n : Math.min(\n area.width * 0.2,\n Math.max(0, ...valueText.map((t) => measure(t, valueFont))) + 12,\n );\n const columnW = area.width / total;\n const wraps =\n vertical && o.data.some((_, i) => weights[i] > 0 && nameW[i] > columnW - 8);\n const labelH = vertical\n ? 22 + (wraps ? NAME_LINE : 0) + (hasSubtitle ? 14 : 0)\n : 0;\n const valueH = vertical ? 20 : 0;\n const unit = (vertical ? area.width : area.height) / total;\n\n let offset = 0;\n o.data.forEach((d, i) => {\n const w = weights[i];\n const slot = unit * w;\n const from = offset;\n offset += slot;\n if (w <= 1e-3) return;\n const key = keys[i];\n const alpha = w;\n const [min, max] = bulletScale(o, d);\n const ranges = rangesOf(o, d).filter((r) => r > min);\n const fills = rangeFills(o, c, ranges.length);\n const value = c.value(key, finite(d.value));\n const target0 = num(d.target);\n const target =\n target0 !== undefined ? c.value(`>${key}`, target0) : undefined;\n const color = c.color(d.color, i);\n const css = toCss(color);\n const thick = clamp(slot * (vertical ? 0.3 : 0.42), 8, 28);\n const span = vertical\n ? Math.max(1, area.height - labelH - valueH)\n : Math.max(1, area.width - labelW - valueW);\n const ticks = showTicks\n ? linearTicks(min, max, Math.max(2, Math.floor(span / 70)))\n : [];\n const tickRoom = vertical ? slot / 2 - thick / 2 - 6 : slot - thick - 10;\n const tickW = Math.max(\n 0,\n ...ticks.map((t) => measure(c.format(t), tickFont)),\n );\n const drawTicks =\n ticks.length > 1 && (vertical ? tickRoom >= tickW : tickRoom >= 14);\n\n // position along the scale, and across it\n const p0 = vertical ? area.y + area.height - labelH : area.x + labelW;\n const along = (v: number) =>\n p0 + (vertical ? -1 : 1) * span * clamp((v - min) / (max - min), 0, 1);\n const mid = vertical\n ? area.x + from + slot / 2\n : area.y + from + (slot - (drawTicks ? 14 : 0)) / 2;\n /** Rectangle from `a` to `b` along the scale, `t` thick across it */\n const band = (a: number, b: number, t: number) => {\n const lo = Math.min(along(a), along(b));\n const hi = Math.max(along(a), along(b));\n return vertical\n ? { x: mid - t / 2, y: lo, width: t, height: hi - lo }\n : { x: lo, y: mid - t / 2, width: hi - lo, height: t };\n };\n\n // the whole row / column is a hover target\n nodes.push({\n kind: \"rect\",\n ...(vertical\n ? { x: area.x + from, y: area.y, width: slot, height: area.height }\n : { x: area.x, y: area.y + from, width: area.width, height: slot }),\n radius: 0,\n fill: transparent,\n hit: i,\n alpha,\n });\n // ranges: disjoint segments (translucent colors must not add up)\n const bounds = ranges.length ? ranges : [max];\n let edge = min;\n bounds.forEach((bound, k) => {\n const to = Math.min(bound, max);\n if (to > edge)\n nodes.push({\n kind: \"rect\",\n ...band(edge, to, thick),\n radius: 0,\n fill: toCss(fills[k]),\n hit: i,\n alpha,\n });\n edge = Math.max(edge, to);\n });\n if (edge < max)\n nodes.push({\n kind: \"rect\",\n ...band(edge, max, thick),\n radius: 0,\n fill: toCss(fills[fills.length - 1]),\n hit: i,\n alpha,\n });\n // measure\n const base = clamp(0, min, max);\n const shownValue = base + (value - base) * enter;\n nodes.push({\n kind: \"rect\",\n ...band(base, shownValue, thick * barSize),\n radius: 1,\n fill: css,\n hit: i,\n alpha,\n brighten: true,\n });\n // target\n if (target !== undefined && target >= min && target <= max) {\n const at = along(target);\n const len = thick * 0.82;\n nodes.push({\n kind: \"rect\",\n ...(vertical\n ? { x: mid - len / 2, y: at - 1.5, width: len, height: 3 }\n : { x: at - 1.5, y: mid - len / 2, width: 3, height: len }),\n radius: 1,\n fill: markColor,\n hit: i,\n alpha: alpha * enter,\n });\n }\n // ticks\n if (drawTicks)\n for (const t of ticks) {\n const at = along(t);\n nodes.push({\n kind: \"text\",\n x: vertical ? mid - thick / 2 - 5 : at,\n y: vertical ? at : mid + thick / 2 + 4,\n text: c.format(t),\n font: tickFont,\n color: muted,\n align: vertical ? \"right\" : \"center\",\n baseline: vertical ? \"middle\" : \"top\",\n hit: i,\n alpha,\n });\n }\n\n // name, subtitle and value\n if (vertical) {\n const room = Math.max(0, slot - 8);\n const lines = wrapText(d.name, room, nameFont, measure, wraps ? 2 : 1);\n const bottom = area.y + area.height;\n lines.forEach((line, k) =>\n nodes.push({\n kind: \"text\",\n x: mid,\n y: bottom - labelH + 16 + k * NAME_LINE,\n text: line,\n font: nameFont,\n color: text,\n align: \"center\",\n baseline: \"middle\",\n hit: i,\n alpha,\n }),\n );\n const sub = d.subtitle\n ? ellipsize(d.subtitle, room, subFont, measure)\n : \"\";\n if (sub)\n nodes.push({\n kind: \"text\",\n x: mid,\n y: bottom - labelH + 31 + (wraps ? NAME_LINE : 0),\n text: sub,\n font: subFont,\n color: muted,\n align: \"center\",\n baseline: \"middle\",\n hit: i,\n alpha,\n });\n const value = ellipsize(valueText[i], room, valueFont, measure);\n if (value)\n nodes.push({\n kind: \"text\",\n x: mid,\n y: area.y + valueH / 2,\n text: value,\n font: valueFont,\n color: text,\n align: \"center\",\n baseline: \"middle\",\n hit: i,\n alpha,\n });\n } else {\n const room = Math.max(0, labelW - 14);\n const avail = slot - 4;\n const sub =\n d.subtitle && avail >= NAME_LINE + 14\n ? ellipsize(d.subtitle, room, subFont, measure)\n : \"\";\n const subH = sub ? 13 : 0;\n const lines = wrapText(\n d.name,\n room,\n nameFont,\n measure,\n avail >= 2 * NAME_LINE + subH ? 2 : 1,\n );\n const top = mid - (lines.length * NAME_LINE + subH) / 2;\n const x = area.x + labelW - 14;\n lines.forEach((line, k) =>\n nodes.push({\n kind: \"text\",\n x,\n y: top + NAME_LINE / 2 + k * NAME_LINE,\n text: line,\n font: nameFont,\n color: text,\n align: \"right\",\n baseline: \"middle\",\n hit: i,\n alpha,\n }),\n );\n if (sub)\n nodes.push({\n kind: \"text\",\n x,\n y: top + lines.length * NAME_LINE + subH / 2,\n text: sub,\n font: subFont,\n color: muted,\n align: \"right\",\n baseline: \"middle\",\n hit: i,\n alpha,\n });\n const value = ellipsize(valueText[i], valueW - 8, valueFont, measure);\n if (value)\n nodes.push({\n kind: \"text\",\n x: area.x + area.width,\n y: mid,\n text: value,\n font: valueFont,\n color: text,\n align: \"right\",\n baseline: \"middle\",\n hit: i,\n alpha,\n });\n }\n\n if (hidden.has(i)) return;\n const v = finite(d.value);\n const percent =\n target0 !== undefined && target0 !== 0\n ? v / target0\n : (v - min) / (max - min);\n const rangeIndex = ranges.findIndex((r) => v <= r);\n const rangeName = rangeIndex >= 0 ? o.rangeLabels?.[rangeIndex] : undefined;\n const end = along(v);\n items.push({\n index: i,\n name: d.name,\n value: v,\n percent,\n share: c.percent(percent),\n color: css,\n x: vertical ? mid : end,\n y: vertical ? end : mid,\n rows: [\n { name: c.labels.value, value: c.format(v) },\n ...(target0 !== undefined\n ? [\n { name: c.labels.target, value: c.format(target0) },\n { name: c.labels.ofTarget, value: c.percent(percent) },\n ]\n : []),\n ...(rangeName ? [{ name: c.labels.range, value: rangeName }] : []),\n ],\n });\n });\n\n return { nodes, items, dim: 0.4, empty: false };\n};\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- const e=require("../color.cjs"),t=require("../locale.cjs"),n=require("../overlay.cjs"),r=require("./scene.cjs"),i=require("./labels.cjs");var a=864e5,o=3660,s=e=>Math.floor(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())/a),c=e=>{if(typeof e==`string`){let t=/^\s*(\d{4})-(\d{1,2})-(\d{1,2})/.exec(e);if(t){let e=Date.UTC(Number(t[1]),Number(t[2])-1,Number(t[3]));return Number.isFinite(e)?Math.floor(e/a):null}let n=Date.parse(e);return Number.isFinite(n)?s(new Date(n)):null}return typeof e==`number`?Number.isFinite(e)?s(new Date(e)):null:e instanceof Date&&Number.isFinite(e.getTime())?s(e):null},l=e=>{let t=new Date(e*a);return{y:t.getUTCFullYear(),m:t.getUTCMonth(),d:t.getUTCDate()}},u=(e,t,n)=>Math.floor(Date.UTC(e,t,n)/a),d=e=>e<10?`0${e}`:String(e),f=e=>{let{y:t,m:n,d:r}=l(e);return`${t}-${d(n+1)}-${d(r)}`},p=e=>((e+4)%7+7)%7,m=(e,t)=>{let n=[],{y:r,m:i}=l(e);for(;u(r,i,1)<=t;)n.push({y:r,m:i}),i===11?(i=0,r++):i++;return n},h=()=>{try{return new Intl.DateTimeFormat().resolvedOptions().locale}catch{return`en-US`}},g=new Set(`AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE KH KR LA MH MM MO MT MX MZ NI NP PA PE PH PK PR PT PY SA SG SV TH TT TW UM US VE VI WS YE ZA ZW`.split(` `)),_=new Set(`AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.split(` `)),v={en:`US`,ja:`JP`,ko:`KR`,he:`IL`,pt:`BR`,ar:`EG`,fa:`IR`,hi:`IN`,th:`TH`,zh:`CN`},y=e=>{let t=e||h(),n=``,r=t.split(/[-_]/)[0]?.toLowerCase()??``;try{let e=Intl.Locale;if(typeof e==`function`){let i=new e(t),a=typeof i.getWeekInfo==`function`?i.getWeekInfo():i.weekInfo;if(a&&typeof a.firstDay==`number`)return(a.firstDay%7+7)%7;n=i.region??i.maximize?.().region??``,r=i.language??r}}catch{}if(!n){let e=/[-_]([A-Za-z]{2})(?=$|[-_])/.exec(t);n=e?e[1].toUpperCase():v[r]??``}return g.has(n)?0:_.has(n)?6:1},b=new Map,x=(e,t)=>{let n=`${e??``}|${JSON.stringify(t)}`;if(b.has(n))return b.get(n)??null;let r=null;for(let n of[e,void 0])try{r=new Intl.DateTimeFormat(n,{...t,timeZone:`UTC`});break}catch{r=null}return b.size>64&&b.clear(),b.set(n,r),r},S=`Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec`.split(` `),C=`Sun Mon Tue Wed Thu Fri Sat`.split(` `),w=(e,t,n,r)=>{let i=x(e,t);try{return i?i.format(new Date(n*a)):r}catch{return r}},T=(e,t,n)=>w(e,{month:`short`},u(t,n,1),S[n]),E=(e,t,n)=>w(e,{weekday:n},u(2023,0,1+t),n===`short`?C[t]:C[t].charAt(0)),D=(e,t)=>w(e,{year:`numeric`,month:`short`,day:`numeric`,weekday:`short`},t,f(t)),O=e=>{let t=new Map,n=1/0,i=-1/0;for(let a of e.data??[]){if(!a)continue;let e=c(a.date);e!==null&&(t.set(e,(t.get(e)??0)+r.positive(a.value)),n=Math.min(n,e),i=Math.max(i,e))}let a,s,l=e.range;if(typeof l==`number`&&Number.isFinite(l)){let e=Math.round(l);a=u(e,0,1),s=u(e,11,31)}else if(Array.isArray(l)&&l.length>=2){let e=c(l[0]),t=c(l[1]);if(e===null||t===null)return null;a=Math.min(e,t),s=Math.max(e,t)}else{if(!Number.isFinite(i))return null;s=i;let t=k(e),n=s-364;a=n-(p(n)-t+7)%7}s-a+1>o&&(a=s-o+1);let d=new Map,f=0,m=!0;t.forEach((e,t)=>{t<a||t>s||(d.set(t,e),f=Math.max(f,e),Number.isInteger(e)||(m=!1))});let h=e.colors?.length?Math.min(12,e.colors.length):r.clamp(Math.round(r.finite(e.levels,4)),1,12),g,_=(e.thresholds??[]).filter(e=>typeof e==`number`&&Number.isFinite(e)).slice().sort((e,t)=>e-t);if(_.length)g=_.slice(0,h-1),h=g.length+1,g.some(e=>!Number.isInteger(e))&&(m=!1);else{g=[];for(let e=1;e<h;e++){let t=f*e/h;g.push(m?Math.max(e,Math.ceil(t)):t)}for(let e=1;e<g.length;e++)g[e]<=g[e-1]&&(g[e]=m?g[e-1]+1:g[e-1])}return{start:a,end:s,values:d,max:f,thresholds:g,count:h,integer:m}},k=e=>typeof e.weekStart==`number`&&Number.isFinite(e.weekStart)?(Math.round(e.weekStart)%7+7)%7:y(t.resolveLocale(e.locale)),A=(e,t)=>{if(!(t>0))return-1;let{thresholds:n}=e;for(let e=0;e<n.length;e++)if(t<=n[e])return e;return e.count-1},j=(e,t)=>{let n=0;for(;n<e.length&&n<t.length&&e[e.length-1-n]===t[t.length-1-n]&&!/\d/.test(e[e.length-1-n]);)n++;return`${n?e.slice(0,e.length-n).trimEnd():e}\u2013${t}`},M=(e,t=i.localeFormat())=>{let{thresholds:n,count:r,integer:a}=e,o=[];for(let e=0;e<r;e++){if(e===r-1){o.push(r===1?`> 0`:`> ${t(n[e-1])}`);continue}if(a){let r=e?n[e-1]+1:1;o.push(r>=n[e]?t(n[e]):j(t(r),t(n[e])))}else o.push(e?j(t(n[e-1]),t(n[e])):`\u2264 ${t(n[e])}`)}return o},N=t=>e.mix(t.background,t.text,.07),P=(t,n,i)=>{let a=n.palette.length?n.palette:[n.primary],o=r.resolveWith(n,t.color,a[0]);return Array.from({length:i},(a,s)=>{let c=t.colors?.[s];return c?r.resolveWith(n,c,o):e.mix(n.background,o,i===1?1:.32+.68*s/(i-1))})},F=(e,t,n)=>{let r=O(e)?.count??0;for(let e=0;e<r;e++)n.set(`~L${e}`,+!t.has(e))},I=(t,n,r)=>{let a=O(t);if(!a)return[];let o=P(t,n,a.count);return M(a,t.format??i.localeFormat(t.locale)).map((t,n)=>({index:n,name:t,color:e.toCss(o[n]),hidden:r.has(n)}))},L=18,R=12,z=16,B=(t,i)=>{let{theme:a,area:o,measure:s}=i,c=O(t);if(!c)return r.emptyLayout(i);let{start:d,end:h}=c,g=i.locale,_=k(t),v=e=>(p(e)-_+7)%7,y=Math.max(0,r.finite(t.gap,3)),b=t.layout===`months`,x=Math.max(2,r.finite(t.maxCellSize,b?28:16)),C=n.font(a,11),j=e.toCss(a.textMuted),M=l(d).y,F=l(h).y,I=[],B=[],V=0,H;if(b){let r=m(d,h),i=r.length,s=(t.monthLabels===!1?0:L)+(t.weekdayLabels===!1?0:14),c={cols:1,pitch:0};for(let e=1;e<=i;e++){let t=Math.ceil(i/e),n=(o.width-(e-1)*z+y)/(7*e),r=((o.height-(t-1)*z)/t-s+y)/6,a=Math.min(n,r,x+y);a>c.pitch+1e-6&&(c={cols:e,pitch:a})}let l=Math.max(2,c.pitch),f=Math.min(y,l*.25);V=Math.min(x,l-f),l=V+f,H=l;let p=c.cols,b=Math.ceil(i/p),C=7*l-f,T=s+6*l-f,D=p*C+(p-1)*z,O=b*T+(b-1)*z,k=o.x+Math.max(0,(o.width-D)/2),A=o.y+Math.max(0,(o.height-O)/2),N=F>M,P=n.font(a,12,600),R=Array.from({length:7},(e,t)=>E(g,(_+t)%7,`narrow`));r.forEach(({y:r,m:i},o)=>{let s=k+o%p*(C+z),c=A+Math.floor(o/p)*(T+z);t.monthLabels!==!1&&(I.push({kind:`text`,x:s,y:c+L/2-1,text:N?w(g,{month:`short`,year:`numeric`},u(r,i,1),`${S[i]} ${r}`):w(g,{month:`long`},u(r,i,1),S[i]),font:P,color:e.toCss(a.text,.88),align:`left`,baseline:`middle`}),c+=L),t.weekdayLabels!==!1&&(V>=8&&R.forEach((e,t)=>I.push({kind:`text`,x:s+t*l+V/2,y:c+6,text:e,font:n.font(a,10),color:j,align:`center`,baseline:`middle`})),c+=14);let f=u(r,i,1),m=Math.min(h,u(r,i+1,0)),_=v(f);for(let e=Math.max(f,d);e<=m;e++){let t=_+(e-f);B.push({day:e,x:s+t%7*l,y:c+Math.floor(t/7)*l})}})}else{let r=[];if(F>M&&h-d+1>371)for(let e=M;e<=F;e++)r.push({s:Math.max(d,u(e,0,1)),e:Math.min(h,u(e,11,31)),year:e});else r.push({s:d,e:h,year:null});let i=(e,t)=>Math.floor((e-(t-v(t)))/7),c=Math.max(...r.map(e=>i(e.e,e.s)+1)),l=t.monthLabels!==!1||r.length>1?L:0,f=t.weekdayLabels!==!1,p=Array.from({length:7},(e,t)=>E(g,(_+t)%7,`short`)),b=f?Math.max(...p.map(e=>s(e,C)))+8:0,S=n.font(a,11,600);r.length>1&&(b=Math.max(b,s(String(F),S)+8));let w=r.length,D=(o.width-b+y)/c,O=((o.height-(w-1)*R)/w-l+y)/7,k=Math.max(2,Math.min(D,O)),A=Math.min(y,k*.25);V=Math.min(x,k-A),k=V+A,H=k;let N=b+c*k-A,P=w*(l+7*k-A)+(w-1)*R,z=o.x+Math.max(0,(o.width-N)/2)+b,U=o.y+Math.max(0,(o.height-P)/2),W=e=>k>=15||[1,3,5].includes((_+e)%7);for(let n of r){let r=U+l;if(n.year!==null&&I.push({kind:`text`,x:z-b,y:U+l/2,text:String(n.year),font:S,color:e.toCss(a.text,.85),align:`left`,baseline:`middle`}),f&&V>=6&&p.forEach((e,t)=>{W(t)&&I.push({kind:`text`,x:z-6,y:r+t*k+V/2,text:e,font:C,color:j,align:`right`,baseline:`middle`})}),t.monthLabels!==!1){let e=i(n.e,n.s)+1,t=[];for(let{y:r,m:a}of m(n.s,n.e)){let o=Math.max(n.s,u(r,a,1)),s=i(o,n.s)+ +(o>n.s&&v(o)>0);s<e&&t.push({col:s,text:T(g,r,a)})}let r=-1/0;t.forEach((n,i)=>{let a=z+n.col*k,o=s(n.text,C),c=t[i+1];c&&i===0&&z+c.col*k<a+o+6||a<r+6||a+o>z+e*k+24||(r=a+o,I.push({kind:`text`,x:a,y:U+l/2,text:n.text,font:C,color:j,align:`left`,baseline:`middle`}))})}for(let e=n.s;e<=n.e;e++)B.push({day:e,x:z+i(e,n.s)*k,y:r+v(e)*k});U+=l+7*k-A+R}}let U=P(t,a,c.count),W=N(a),G=U.map((e,t)=>r.clamp(i.value(`~L${t}`,+!i.hidden.has(t)),0,1)),K=r.clamp(r.finite(t.radius,2),0,V/2),q=e.toCss(a.text,.75),J=Math.max(0,(H-V)/2),Y=[];for(let t of B){let n=c.values.get(t.day)??0,r=A(c,n),a=r<0?W:e.mix(W,U[r],G[r]??1),o=e.toCss(a),s=t.day-d;I.push({kind:`rect`,x:t.x,y:t.y,width:V,height:V,radius:K,fill:o,hit:s,hoverStroke:q,hitPad:J});let l=c.max>0?n/c.max:0;Y.push({index:s,name:D(g,t.day),value:n,percent:l,share:i.percent(l),color:r<0?o:e.toCss(U[r]),x:t.x+V/2,y:t.y+V/2,rows:[{name:i.labels.value,value:i.format(n)}],event:{date:f(t.day)}})}Y.sort((e,t)=>e.index-t.index);let X=r.clamp(i.enter,0,1);return{nodes:I,items:Y,dim:1,empty:!1,steps:b?{next:1,down:7}:{next:7,down:1},...X<1?{enter:{alpha:X,scale:.985+.015*X,cx:o.x+o.width/2,cy:o.y+o.height/2}}:{}}};exports.calendarColors=P,exports.calendarDay=c,exports.calendarIso=f,exports.calendarLegend=I,exports.calendarLevel=A,exports.calendarLevelNames=M,exports.calendarModel=O,exports.calendarValues=F,exports.layoutCalendar=B,exports.localeWeekStart=y;
1
+ const e=require("../color.cjs"),t=require("../locale.cjs"),n=require("../overlay.cjs"),r=require("./scene.cjs"),i=require("./labels.cjs");var a=864e5,o=3660,s=e=>Math.floor(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())/a),c=e=>{if(typeof e==`string`){let t=/^\s*(\d{4})-(\d{1,2})-(\d{1,2})/.exec(e);if(t){let e=Date.UTC(Number(t[1]),Number(t[2])-1,Number(t[3]));return Number.isFinite(e)?Math.floor(e/a):null}let n=Date.parse(e);return Number.isFinite(n)?s(new Date(n)):null}return typeof e==`number`?Number.isFinite(e)?s(new Date(e)):null:e instanceof Date&&Number.isFinite(e.getTime())?s(e):null},l=e=>{let t=new Date(e*a);return{y:t.getUTCFullYear(),m:t.getUTCMonth(),d:t.getUTCDate()}},u=(e,t,n)=>Math.floor(Date.UTC(e,t,n)/a),d=e=>e<10?`0${e}`:String(e),f=e=>{let{y:t,m:n,d:r}=l(e);return`${t}-${d(n+1)}-${d(r)}`},p=e=>((e+4)%7+7)%7,m=(e,t)=>{let n=[],{y:r,m:i}=l(e);for(;u(r,i,1)<=t;)n.push({y:r,m:i}),i===11?(i=0,r++):i++;return n},h=()=>{try{return new Intl.DateTimeFormat().resolvedOptions().locale}catch{return`en-US`}},g=new Set(`AG AS BD BR BS BT BW BZ CA CO DM DO ET GT GU HK HN ID IL IN JM JP KE KH KR LA MH MM MO MT MX MZ NI NP PA PE PH PK PR PT PY SA SG SV TH TT TW UM US VE VI WS YE ZA ZW`.split(` `)),_=new Set(`AE AF BH DJ DZ EG IQ IR JO KW LY OM QA SD SY`.split(` `)),v={en:`US`,ja:`JP`,ko:`KR`,he:`IL`,pt:`BR`,ar:`EG`,fa:`IR`,hi:`IN`,th:`TH`,zh:`CN`},y=e=>{let t=e||h(),n=``,r=t.split(/[-_]/)[0]?.toLowerCase()??``;try{let e=Intl.Locale;if(typeof e==`function`){let i=new e(t),a=typeof i.getWeekInfo==`function`?i.getWeekInfo():i.weekInfo;if(a&&typeof a.firstDay==`number`)return(a.firstDay%7+7)%7;n=i.region??i.maximize?.().region??``,r=i.language??r}}catch{}if(!n){let e=/[-_]([A-Za-z]{2})(?=$|[-_])/.exec(t);n=e?e[1].toUpperCase():v[r]??``}return g.has(n)?0:_.has(n)?6:1},b=new Map,x=(e,t)=>{let n=`${e??``}|${JSON.stringify(t)}`;if(b.has(n))return b.get(n)??null;let r=null;for(let n of[e,void 0])try{r=new Intl.DateTimeFormat(n,{...t,timeZone:`UTC`});break}catch{r=null}return b.size>64&&b.clear(),b.set(n,r),r},S=`Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec`.split(` `),C=`Sun Mon Tue Wed Thu Fri Sat`.split(` `),w=(e,t,n,r)=>{let i=x(e,t);try{return i?i.format(new Date(n*a)):r}catch{return r}},T=(e,t,n)=>w(e,{month:`short`},u(t,n,1),S[n]),E=(e,t,n)=>w(e,{weekday:n},u(2023,0,1+t),n===`short`?C[t]:C[t].charAt(0)),D=(e,t)=>w(e,{year:`numeric`,month:`short`,day:`numeric`,weekday:`short`},t,f(t)),O=e=>{let t=new Map,n=1/0,i=-1/0;for(let a of e.data??[]){if(!a)continue;let e=c(a.date);e!==null&&(t.set(e,(t.get(e)??0)+r.positive(a.value)),n=Math.min(n,e),i=Math.max(i,e))}let a,s,l=e.range;if(typeof l==`number`&&Number.isFinite(l)){let e=Math.round(l);a=u(e,0,1),s=u(e,11,31)}else if(Array.isArray(l)&&l.length>=2){let e=c(l[0]),t=c(l[1]);if(e===null||t===null)return null;a=Math.min(e,t),s=Math.max(e,t)}else{if(!Number.isFinite(i))return null;s=i;let t=k(e),n=s-364;a=n-(p(n)-t+7)%7}s-a+1>o&&(a=s-o+1);let d=new Map,f=0,m=!0;t.forEach((e,t)=>{t<a||t>s||(d.set(t,e),f=Math.max(f,e),Number.isInteger(e)||(m=!1))});let h=e.colors?.length?Math.min(12,e.colors.length):r.clamp(Math.round(r.finite(e.levels,4)),1,12),g,_=(e.thresholds??[]).filter(e=>typeof e==`number`&&Number.isFinite(e)).slice().sort((e,t)=>e-t);if(_.length)g=_.slice(0,h-1),h=g.length+1,g.some(e=>!Number.isInteger(e))&&(m=!1);else{g=[];for(let e=1;e<h;e++){let t=f*e/h;g.push(m?Math.max(e,Math.ceil(t)):t)}for(let e=1;e<g.length;e++)g[e]<=g[e-1]&&(g[e]=m?g[e-1]+1:g[e-1])}return{start:a,end:s,values:d,max:f,thresholds:g,count:h,integer:m}},k=e=>typeof e.weekStart==`number`&&Number.isFinite(e.weekStart)?(Math.round(e.weekStart)%7+7)%7:y(t.resolveLocale(e.locale)),A=(e,t)=>{if(!(t>0))return-1;let{thresholds:n}=e;for(let e=0;e<n.length;e++)if(t<=n[e])return e;return e.count-1},j=(e,t)=>{let n=0;for(;n<e.length&&n<t.length&&e[e.length-1-n]===t[t.length-1-n]&&!/\d/.test(e[e.length-1-n]);)n++;return`${n?e.slice(0,e.length-n).trimEnd():e}\u2013${t}`},M=(e,t=i.localeFormat())=>{let{thresholds:n,count:r,integer:a}=e,o=[];for(let e=0;e<r;e++){if(e===r-1){o.push(r===1?`> 0`:`> ${t(n[e-1])}`);continue}if(a){let r=e?n[e-1]+1:1;o.push(r>=n[e]?t(n[e]):j(t(r),t(n[e])))}else o.push(e?j(t(n[e-1]),t(n[e])):`\u2264 ${t(n[e])}`)}return o},N=t=>e.mix(t.background,t.text,.07),P=(t,n,i)=>{let a=n.palette.length?n.palette:[n.primary],o=r.resolveWith(n,t.color,a[0]);return Array.from({length:i},(a,s)=>{let c=t.colors?.[s];return c?r.resolveWith(n,c,o):e.mix(n.background,o,i===1?1:.32+.68*s/(i-1))})},F=(e,t,n)=>{let r=O(e)?.count??0;for(let e=0;e<r;e++)n.set(`~L${e}`,+!t.has(e))},I=(t,n,r)=>{let a=O(t);if(!a)return[];let o=P(t,n,a.count);return M(a,t.format??i.localeFormat(t.locale)).map((t,n)=>({index:n,name:t,color:e.toCss(o[n]),hidden:r.has(n)}))},L=e=>{let t=O(e);if(!t)return 1;let n=l(t.start).y,r=l(t.end).y;return r>n&&t.end-t.start+1>371?r-n+1:1},R=18,z=12,B=16,V=(t,i)=>{let{theme:a,area:o,measure:s}=i,c=O(t);if(!c)return r.emptyLayout(i);let{start:d,end:h}=c,g=i.locale,_=k(t),v=e=>(p(e)-_+7)%7,y=Math.max(0,r.finite(t.gap,3)),b=t.layout===`months`,x=Math.max(2,r.finite(t.maxCellSize,b?28:16)),C=n.font(a,11),j=e.toCss(a.textMuted),M=l(d).y,F=l(h).y,I=[],L=[],V=0,H;if(b){let r=m(d,h),i=r.length,s=(t.monthLabels===!1?0:R)+(t.weekdayLabels===!1?0:14),c={cols:1,pitch:0};for(let e=1;e<=i;e++){let t=Math.ceil(i/e),n=(o.width-(e-1)*B+y)/(7*e),r=((o.height-(t-1)*B)/t-s+y)/6,a=Math.min(n,r,x+y);a>c.pitch+1e-6&&(c={cols:e,pitch:a})}let l=Math.max(2,c.pitch),f=Math.min(y,l*.25);V=Math.min(x,l-f),l=V+f,H=l;let p=c.cols,b=Math.ceil(i/p),C=7*l-f,T=s+6*l-f,D=p*C+(p-1)*B,O=b*T+(b-1)*B,k=o.x+Math.max(0,(o.width-D)/2),A=o.y+Math.max(0,(o.height-O)/2),N=F>M,P=n.font(a,12,600),z=Array.from({length:7},(e,t)=>E(g,(_+t)%7,`narrow`));r.forEach(({y:r,m:i},o)=>{let s=k+o%p*(C+B),c=A+Math.floor(o/p)*(T+B);t.monthLabels!==!1&&(I.push({kind:`text`,x:s,y:c+R/2-1,text:N?w(g,{month:`short`,year:`numeric`},u(r,i,1),`${S[i]} ${r}`):w(g,{month:`long`},u(r,i,1),S[i]),font:P,color:e.toCss(a.text,.88),align:`left`,baseline:`middle`}),c+=R),t.weekdayLabels!==!1&&(V>=8&&z.forEach((e,t)=>I.push({kind:`text`,x:s+t*l+V/2,y:c+6,text:e,font:n.font(a,10),color:j,align:`center`,baseline:`middle`})),c+=14);let f=u(r,i,1),m=Math.min(h,u(r,i+1,0)),_=v(f);for(let e=Math.max(f,d);e<=m;e++){let t=_+(e-f);L.push({day:e,x:s+t%7*l,y:c+Math.floor(t/7)*l})}})}else{let r=[];if(F>M&&h-d+1>371)for(let e=M;e<=F;e++)r.push({s:Math.max(d,u(e,0,1)),e:Math.min(h,u(e,11,31)),year:e});else r.push({s:d,e:h,year:null});let i=(e,t)=>Math.floor((e-(t-v(t)))/7),c=Math.max(...r.map(e=>i(e.e,e.s)+1)),l=t.monthLabels!==!1||r.length>1?R:0,f=t.weekdayLabels!==!1,p=Array.from({length:7},(e,t)=>E(g,(_+t)%7,`short`)),b=f?Math.max(...p.map(e=>s(e,C)))+8:0,S=n.font(a,11,600);r.length>1&&(b=Math.max(b,s(String(F),S)+8));let w=r.length,D=(o.width-b+y)/c,O=((o.height-(w-1)*z)/w-l+y)/7,k=Math.max(2,Math.min(D,O)),A=Math.min(y,k*.25);V=Math.min(x,k-A),k=V+A,H=k;let N=b+c*k-A,P=w*(l+7*k-A)+(w-1)*z,B=o.x+Math.max(0,(o.width-N)/2)+b,U=o.y+Math.max(0,(o.height-P)/2),W=e=>k>=15||[1,3,5].includes((_+e)%7);for(let n of r){let r=U+l;if(n.year!==null&&I.push({kind:`text`,x:B-b,y:U+l/2,text:String(n.year),font:S,color:e.toCss(a.text,.85),align:`left`,baseline:`middle`}),f&&V>=6&&p.forEach((e,t)=>{W(t)&&I.push({kind:`text`,x:B-6,y:r+t*k+V/2,text:e,font:C,color:j,align:`right`,baseline:`middle`})}),t.monthLabels!==!1){let e=i(n.e,n.s)+1,t=[];for(let{y:r,m:a}of m(n.s,n.e)){let o=Math.max(n.s,u(r,a,1)),s=i(o,n.s)+ +(o>n.s&&v(o)>0);s<e&&t.push({col:s,text:T(g,r,a)})}let r=-1/0;t.forEach((n,i)=>{let a=B+n.col*k,o=s(n.text,C),c=t[i+1];c&&i===0&&B+c.col*k<a+o+6||a<r+6||a+o>B+e*k+24||(r=a+o,I.push({kind:`text`,x:a,y:U+l/2,text:n.text,font:C,color:j,align:`left`,baseline:`middle`}))})}for(let e=n.s;e<=n.e;e++)L.push({day:e,x:B+i(e,n.s)*k,y:r+v(e)*k});U+=l+7*k-A+z}}let U=P(t,a,c.count),W=N(a),G=U.map((e,t)=>r.clamp(i.value(`~L${t}`,+!i.hidden.has(t)),0,1)),K=r.clamp(r.finite(t.radius,2),0,V/2),q=e.toCss(a.text,.75),J=Math.max(0,(H-V)/2),Y=[];for(let t of L){let n=c.values.get(t.day)??0,r=A(c,n),a=r<0?W:e.mix(W,U[r],G[r]??1),o=e.toCss(a),s=t.day-d;I.push({kind:`rect`,x:t.x,y:t.y,width:V,height:V,radius:K,fill:o,hit:s,hoverStroke:q,hitPad:J});let l=c.max>0?n/c.max:0;Y.push({index:s,name:D(g,t.day),value:n,percent:l,share:i.percent(l),color:r<0?o:e.toCss(U[r]),x:t.x+V/2,y:t.y+V/2,rows:[{name:i.labels.value,value:i.format(n)}],event:{date:f(t.day)}})}Y.sort((e,t)=>e.index-t.index);let X=r.clamp(i.enter,0,1);return{nodes:I,items:Y,dim:1,empty:!1,steps:b?{next:1,down:7}:{next:7,down:1},...X<1?{enter:{alpha:X,scale:.985+.015*X,cx:o.x+o.width/2,cy:o.y+o.height/2}}:{}}};exports.calendarColors=P,exports.calendarDay=c,exports.calendarIso=f,exports.calendarLegend=I,exports.calendarLevel=A,exports.calendarLevelNames=M,exports.calendarModel=O,exports.calendarStrips=L,exports.calendarValues=F,exports.layoutCalendar=V,exports.localeWeekStart=y;
2
2
  //# sourceMappingURL=calendar.cjs.map