@gravity-ui/charts 1.46.0 → 1.46.1

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 (351) hide show
  1. package/dist/cjs/components/ChartInner/useChartInnerProps.js +1 -1
  2. package/dist/cjs/components/Legend/index.js +13 -14
  3. package/dist/cjs/components/Tooltip/index.js +22 -1
  4. package/dist/cjs/core/axes/x-axis.js +1 -1
  5. package/dist/cjs/core/axes/y-axis.js +1 -1
  6. package/dist/cjs/core/scales/utils.d.ts +1 -1
  7. package/dist/cjs/core/scales/utils.js +1 -1
  8. package/dist/cjs/core/scales/x-scale.js +2 -2
  9. package/dist/cjs/core/scales/y-scale.js +48 -4
  10. package/dist/cjs/core/series/prepare-area.js +1 -1
  11. package/dist/cjs/core/series/prepare-bar-x.js +1 -1
  12. package/dist/cjs/core/series/prepare-bar-y.js +1 -1
  13. package/dist/cjs/core/series/prepare-funnel.js +1 -1
  14. package/dist/cjs/core/series/prepare-heatmap.js +1 -1
  15. package/dist/cjs/core/series/prepare-legend.js +2 -2
  16. package/dist/cjs/core/series/prepare-line.js +1 -1
  17. package/dist/cjs/core/series/prepare-pie.js +1 -1
  18. package/dist/cjs/core/series/prepare-radar.js +1 -1
  19. package/dist/cjs/core/series/prepare-sankey.js +1 -1
  20. package/dist/cjs/core/series/prepare-scatter.js +1 -1
  21. package/dist/cjs/core/series/prepare-treemap.js +1 -1
  22. package/dist/cjs/core/series/prepare-waterfall.js +1 -1
  23. package/dist/cjs/core/series/prepare-x-range.js +1 -1
  24. package/dist/cjs/core/series/prepareSeries.d.ts +7 -1
  25. package/dist/cjs/core/series/prepareSeries.js +31 -0
  26. package/dist/cjs/core/series/types.d.ts +5 -0
  27. package/dist/cjs/core/series/utils.d.ts +4 -0
  28. package/dist/cjs/core/series/utils.js +9 -1
  29. package/dist/cjs/{hooks/useShapes/annotation/index.d.ts → core/shapes/annotation.d.ts} +1 -7
  30. package/dist/cjs/{hooks/useShapes/annotation/index.js → core/shapes/annotation.js} +2 -2
  31. package/dist/cjs/{hooks/useShapes → core/shapes}/area/prepare-data.d.ts +4 -4
  32. package/dist/cjs/{hooks/useShapes → core/shapes}/area/prepare-data.js +4 -4
  33. package/dist/cjs/core/shapes/area/renderer.d.ts +11 -0
  34. package/dist/cjs/core/shapes/area/renderer.js +181 -0
  35. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/area/types.d.ts +1 -3
  36. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/bar-x/prepare-data.d.ts +4 -4
  37. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/bar-x/prepare-data.js +6 -6
  38. package/dist/cjs/core/shapes/bar-x/renderer.d.ts +9 -0
  39. package/dist/cjs/core/shapes/bar-x/renderer.js +110 -0
  40. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/bar-x/types.d.ts +1 -2
  41. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/bar-y/prepare-data.d.ts +3 -3
  42. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/bar-y/prepare-data.js +3 -3
  43. package/dist/cjs/core/shapes/bar-y/renderer.d.ts +6 -0
  44. package/dist/cjs/core/shapes/bar-y/renderer.js +80 -0
  45. package/dist/cjs/{hooks/useShapes → core/shapes}/bar-y/types.d.ts +1 -1
  46. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/bar-y/utils.js +1 -1
  47. package/dist/cjs/{hooks/useShapes → core/shapes}/funnel/prepare-data.d.ts +1 -1
  48. package/dist/cjs/{hooks/useShapes → core/shapes}/funnel/prepare-data.js +1 -1
  49. package/dist/cjs/core/shapes/funnel/renderer.d.ts +6 -0
  50. package/dist/cjs/core/shapes/funnel/renderer.js +79 -0
  51. package/dist/cjs/{hooks/useShapes → core/shapes}/funnel/types.d.ts +2 -2
  52. package/dist/cjs/{hooks/useShapes → core/shapes}/heatmap/prepare-data.d.ts +3 -3
  53. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/heatmap/prepare-data.js +2 -2
  54. package/dist/cjs/core/shapes/heatmap/renderer.d.ts +6 -0
  55. package/dist/cjs/core/shapes/heatmap/renderer.js +55 -0
  56. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/heatmap/types.d.ts +1 -1
  57. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/line/prepare-data.d.ts +4 -4
  58. package/dist/cjs/{hooks/useShapes → core/shapes}/line/prepare-data.js +3 -3
  59. package/dist/cjs/core/shapes/line/renderer.d.ts +11 -0
  60. package/dist/cjs/core/shapes/line/renderer.js +167 -0
  61. package/dist/cjs/{hooks/useShapes → core/shapes}/line/types.d.ts +2 -4
  62. package/dist/cjs/core/shapes/marker.d.ts +45 -0
  63. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/marker.js +2 -2
  64. package/dist/cjs/{hooks/useShapes → core/shapes}/pie/prepare-data.d.ts +1 -1
  65. package/dist/cjs/{hooks/useShapes → core/shapes}/pie/prepare-data.js +3 -3
  66. package/dist/cjs/core/shapes/pie/renderer.d.ts +8 -0
  67. package/dist/cjs/core/shapes/pie/renderer.js +160 -0
  68. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/pie/types.d.ts +1 -1
  69. package/dist/cjs/{hooks/useShapes → core/shapes}/radar/prepare-data.d.ts +1 -1
  70. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/radar/prepare-data.js +2 -2
  71. package/dist/cjs/core/shapes/radar/renderer.d.ts +6 -0
  72. package/dist/cjs/core/shapes/radar/renderer.js +126 -0
  73. package/dist/cjs/{hooks/useShapes → core/shapes}/radar/types.d.ts +1 -1
  74. package/dist/cjs/{hooks/useShapes → core/shapes}/sankey/prepare-data.d.ts +1 -1
  75. package/dist/cjs/{hooks/useShapes → core/shapes}/sankey/prepare-data.js +1 -1
  76. package/dist/cjs/core/shapes/sankey/renderer.d.ts +6 -0
  77. package/dist/cjs/core/shapes/sankey/renderer.js +50 -0
  78. package/dist/cjs/{hooks/useShapes → core/shapes}/sankey/types.d.ts +1 -1
  79. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/scatter/prepare-data.d.ts +3 -3
  80. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/scatter/prepare-data.js +2 -2
  81. package/dist/cjs/core/shapes/scatter/renderer.d.ts +6 -0
  82. package/dist/cjs/core/shapes/scatter/renderer.js +52 -0
  83. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/scatter/types.d.ts +1 -1
  84. package/dist/cjs/{hooks/useShapes → core/shapes}/treemap/prepare-data.d.ts +1 -1
  85. package/dist/cjs/{hooks/useShapes → core/shapes}/treemap/prepare-data.js +3 -3
  86. package/dist/cjs/core/shapes/treemap/renderer.d.ts +6 -0
  87. package/dist/cjs/core/shapes/treemap/renderer.js +88 -0
  88. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/treemap/types.d.ts +1 -1
  89. package/dist/cjs/core/shapes/utils.d.ts +52 -0
  90. package/dist/cjs/core/shapes/utils.js +138 -0
  91. package/dist/cjs/{hooks/useShapes → core/shapes}/waterfall/prepare-data.d.ts +3 -3
  92. package/dist/cjs/{hooks/useShapes → core/shapes}/waterfall/prepare-data.js +4 -4
  93. package/dist/cjs/core/shapes/waterfall/renderer.d.ts +6 -0
  94. package/dist/cjs/core/shapes/waterfall/renderer.js +115 -0
  95. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/waterfall/types.d.ts +1 -1
  96. package/dist/cjs/{hooks/useShapes → core/shapes}/x-range/prepare-data.d.ts +3 -3
  97. package/dist/cjs/{hooks/useShapes → core/shapes}/x-range/prepare-data.js +4 -4
  98. package/dist/cjs/core/shapes/x-range/renderer.d.ts +6 -0
  99. package/dist/cjs/core/shapes/x-range/renderer.js +94 -0
  100. package/dist/{esm/hooks/useShapes → cjs/core/shapes}/x-range/types.d.ts +1 -1
  101. package/dist/cjs/core/types/chart/area.d.ts +0 -1
  102. package/dist/cjs/core/types/chart/axis.d.ts +0 -1
  103. package/dist/cjs/core/types/chart/base.d.ts +1 -4
  104. package/dist/cjs/{hooks/utils/get-band-size.js → core/utils/band-size.js} +1 -1
  105. package/dist/{esm/hooks → cjs/core}/utils/bar-y.d.ts +3 -3
  106. package/dist/cjs/{hooks → core}/utils/bar-y.js +4 -4
  107. package/dist/cjs/core/utils/get-closest-data.d.ts +1 -1
  108. package/dist/cjs/core/utils/series/sorting.js +1 -1
  109. package/dist/cjs/core/utils/text.d.ts +0 -1
  110. package/dist/cjs/core/utils/text.js +0 -1
  111. package/dist/cjs/hooks/index.d.ts +1 -1
  112. package/dist/cjs/hooks/index.js +1 -1
  113. package/dist/cjs/hooks/useRangeSlider/types.d.ts +1 -1
  114. package/dist/cjs/hooks/useRangeSlider/utils.d.ts +1 -1
  115. package/dist/cjs/hooks/useShapes/area/index.d.ts +2 -2
  116. package/dist/cjs/hooks/useShapes/area/index.js +13 -185
  117. package/dist/cjs/hooks/useShapes/bar-x/index.d.ts +4 -4
  118. package/dist/cjs/hooks/useShapes/bar-x/index.js +10 -119
  119. package/dist/cjs/hooks/useShapes/bar-y/index.d.ts +3 -3
  120. package/dist/cjs/hooks/useShapes/bar-y/index.js +5 -84
  121. package/dist/cjs/hooks/useShapes/funnel/index.d.ts +4 -4
  122. package/dist/cjs/hooks/useShapes/funnel/index.js +4 -83
  123. package/dist/cjs/hooks/useShapes/heatmap/index.d.ts +4 -4
  124. package/dist/cjs/hooks/useShapes/heatmap/index.js +4 -59
  125. package/dist/cjs/hooks/useShapes/index.d.ts +14 -15
  126. package/dist/cjs/hooks/useShapes/index.js +13 -13
  127. package/dist/cjs/hooks/useShapes/line/index.d.ts +2 -2
  128. package/dist/cjs/hooks/useShapes/line/index.js +14 -172
  129. package/dist/cjs/hooks/useShapes/pie/index.d.ts +3 -5
  130. package/dist/cjs/hooks/useShapes/pie/index.js +3 -158
  131. package/dist/cjs/hooks/useShapes/radar/index.d.ts +2 -2
  132. package/dist/cjs/hooks/useShapes/radar/index.js +2 -121
  133. package/dist/cjs/hooks/useShapes/sankey/index.d.ts +2 -2
  134. package/dist/cjs/hooks/useShapes/sankey/index.js +2 -51
  135. package/dist/cjs/hooks/useShapes/scatter/index.d.ts +3 -3
  136. package/dist/cjs/hooks/useShapes/scatter/index.js +3 -58
  137. package/dist/cjs/hooks/useShapes/treemap/index.d.ts +2 -2
  138. package/dist/cjs/hooks/useShapes/treemap/index.js +2 -88
  139. package/dist/cjs/hooks/useShapes/utils.d.ts +2 -52
  140. package/dist/cjs/hooks/useShapes/utils.js +3 -140
  141. package/dist/cjs/hooks/useShapes/waterfall/index.d.ts +4 -4
  142. package/dist/cjs/hooks/useShapes/waterfall/index.js +6 -119
  143. package/dist/cjs/hooks/useShapes/x-range/index.d.ts +4 -4
  144. package/dist/cjs/hooks/useShapes/x-range/index.js +3 -98
  145. package/dist/cjs/setup-jsdom.js +7 -0
  146. package/dist/esm/components/ChartInner/useChartInnerProps.js +1 -1
  147. package/dist/esm/components/Legend/index.js +13 -14
  148. package/dist/esm/components/Tooltip/index.js +22 -1
  149. package/dist/esm/core/axes/x-axis.js +1 -1
  150. package/dist/esm/core/axes/y-axis.js +1 -1
  151. package/dist/esm/core/scales/utils.d.ts +1 -1
  152. package/dist/esm/core/scales/utils.js +1 -1
  153. package/dist/esm/core/scales/x-scale.js +2 -2
  154. package/dist/esm/core/scales/y-scale.js +48 -4
  155. package/dist/esm/core/series/prepare-area.js +1 -1
  156. package/dist/esm/core/series/prepare-bar-x.js +1 -1
  157. package/dist/esm/core/series/prepare-bar-y.js +1 -1
  158. package/dist/esm/core/series/prepare-funnel.js +1 -1
  159. package/dist/esm/core/series/prepare-heatmap.js +1 -1
  160. package/dist/esm/core/series/prepare-legend.js +2 -2
  161. package/dist/esm/core/series/prepare-line.js +1 -1
  162. package/dist/esm/core/series/prepare-pie.js +1 -1
  163. package/dist/esm/core/series/prepare-radar.js +1 -1
  164. package/dist/esm/core/series/prepare-sankey.js +1 -1
  165. package/dist/esm/core/series/prepare-scatter.js +1 -1
  166. package/dist/esm/core/series/prepare-treemap.js +1 -1
  167. package/dist/esm/core/series/prepare-waterfall.js +1 -1
  168. package/dist/esm/core/series/prepare-x-range.js +1 -1
  169. package/dist/esm/core/series/prepareSeries.d.ts +7 -1
  170. package/dist/esm/core/series/prepareSeries.js +31 -0
  171. package/dist/esm/core/series/types.d.ts +5 -0
  172. package/dist/esm/core/series/utils.d.ts +4 -0
  173. package/dist/esm/core/series/utils.js +9 -1
  174. package/dist/esm/{hooks/useShapes/annotation/index.d.ts → core/shapes/annotation.d.ts} +1 -7
  175. package/dist/esm/{hooks/useShapes/annotation/index.js → core/shapes/annotation.js} +2 -2
  176. package/dist/esm/{hooks/useShapes → core/shapes}/area/prepare-data.d.ts +4 -4
  177. package/dist/esm/{hooks/useShapes → core/shapes}/area/prepare-data.js +4 -4
  178. package/dist/esm/core/shapes/area/renderer.d.ts +11 -0
  179. package/dist/esm/core/shapes/area/renderer.js +181 -0
  180. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/area/types.d.ts +1 -3
  181. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/bar-x/prepare-data.d.ts +4 -4
  182. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/bar-x/prepare-data.js +6 -6
  183. package/dist/esm/core/shapes/bar-x/renderer.d.ts +9 -0
  184. package/dist/esm/core/shapes/bar-x/renderer.js +110 -0
  185. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/bar-x/types.d.ts +1 -2
  186. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/bar-y/prepare-data.d.ts +3 -3
  187. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/bar-y/prepare-data.js +3 -3
  188. package/dist/esm/core/shapes/bar-y/renderer.d.ts +6 -0
  189. package/dist/esm/core/shapes/bar-y/renderer.js +80 -0
  190. package/dist/esm/{hooks/useShapes → core/shapes}/bar-y/types.d.ts +1 -1
  191. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/bar-y/utils.js +1 -1
  192. package/dist/esm/{hooks/useShapes → core/shapes}/funnel/prepare-data.d.ts +1 -1
  193. package/dist/esm/{hooks/useShapes → core/shapes}/funnel/prepare-data.js +1 -1
  194. package/dist/esm/core/shapes/funnel/renderer.d.ts +6 -0
  195. package/dist/esm/core/shapes/funnel/renderer.js +79 -0
  196. package/dist/esm/{hooks/useShapes → core/shapes}/funnel/types.d.ts +2 -2
  197. package/dist/esm/{hooks/useShapes → core/shapes}/heatmap/prepare-data.d.ts +3 -3
  198. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/heatmap/prepare-data.js +2 -2
  199. package/dist/esm/core/shapes/heatmap/renderer.d.ts +6 -0
  200. package/dist/esm/core/shapes/heatmap/renderer.js +55 -0
  201. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/heatmap/types.d.ts +1 -1
  202. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/line/prepare-data.d.ts +4 -4
  203. package/dist/esm/{hooks/useShapes → core/shapes}/line/prepare-data.js +3 -3
  204. package/dist/esm/core/shapes/line/renderer.d.ts +11 -0
  205. package/dist/esm/core/shapes/line/renderer.js +167 -0
  206. package/dist/esm/{hooks/useShapes → core/shapes}/line/types.d.ts +2 -4
  207. package/dist/esm/core/shapes/marker.d.ts +45 -0
  208. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/marker.js +2 -2
  209. package/dist/esm/{hooks/useShapes → core/shapes}/pie/prepare-data.d.ts +1 -1
  210. package/dist/esm/{hooks/useShapes → core/shapes}/pie/prepare-data.js +3 -3
  211. package/dist/esm/core/shapes/pie/renderer.d.ts +8 -0
  212. package/dist/esm/core/shapes/pie/renderer.js +160 -0
  213. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/pie/types.d.ts +1 -1
  214. package/dist/esm/{hooks/useShapes → core/shapes}/radar/prepare-data.d.ts +1 -1
  215. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/radar/prepare-data.js +2 -2
  216. package/dist/esm/core/shapes/radar/renderer.d.ts +6 -0
  217. package/dist/esm/core/shapes/radar/renderer.js +126 -0
  218. package/dist/esm/{hooks/useShapes → core/shapes}/radar/types.d.ts +1 -1
  219. package/dist/esm/{hooks/useShapes → core/shapes}/sankey/prepare-data.d.ts +1 -1
  220. package/dist/esm/{hooks/useShapes → core/shapes}/sankey/prepare-data.js +1 -1
  221. package/dist/esm/core/shapes/sankey/renderer.d.ts +6 -0
  222. package/dist/esm/core/shapes/sankey/renderer.js +50 -0
  223. package/dist/esm/{hooks/useShapes → core/shapes}/sankey/types.d.ts +1 -1
  224. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/scatter/prepare-data.d.ts +3 -3
  225. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/scatter/prepare-data.js +2 -2
  226. package/dist/esm/core/shapes/scatter/renderer.d.ts +6 -0
  227. package/dist/esm/core/shapes/scatter/renderer.js +52 -0
  228. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/scatter/types.d.ts +1 -1
  229. package/dist/esm/{hooks/useShapes → core/shapes}/treemap/prepare-data.d.ts +1 -1
  230. package/dist/esm/{hooks/useShapes → core/shapes}/treemap/prepare-data.js +3 -3
  231. package/dist/esm/core/shapes/treemap/renderer.d.ts +6 -0
  232. package/dist/esm/core/shapes/treemap/renderer.js +88 -0
  233. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/treemap/types.d.ts +1 -1
  234. package/dist/esm/core/shapes/utils.d.ts +52 -0
  235. package/dist/esm/core/shapes/utils.js +138 -0
  236. package/dist/esm/{hooks/useShapes → core/shapes}/waterfall/prepare-data.d.ts +3 -3
  237. package/dist/esm/{hooks/useShapes → core/shapes}/waterfall/prepare-data.js +4 -4
  238. package/dist/esm/core/shapes/waterfall/renderer.d.ts +6 -0
  239. package/dist/esm/core/shapes/waterfall/renderer.js +115 -0
  240. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/waterfall/types.d.ts +1 -1
  241. package/dist/esm/{hooks/useShapes → core/shapes}/x-range/prepare-data.d.ts +3 -3
  242. package/dist/esm/{hooks/useShapes → core/shapes}/x-range/prepare-data.js +4 -4
  243. package/dist/esm/core/shapes/x-range/renderer.d.ts +6 -0
  244. package/dist/esm/core/shapes/x-range/renderer.js +94 -0
  245. package/dist/{cjs/hooks/useShapes → esm/core/shapes}/x-range/types.d.ts +1 -1
  246. package/dist/esm/core/types/chart/area.d.ts +0 -1
  247. package/dist/esm/core/types/chart/axis.d.ts +0 -1
  248. package/dist/esm/core/types/chart/base.d.ts +1 -4
  249. package/dist/esm/{hooks/utils/get-band-size.js → core/utils/band-size.js} +1 -1
  250. package/dist/{cjs/hooks → esm/core}/utils/bar-y.d.ts +3 -3
  251. package/dist/esm/{hooks → core}/utils/bar-y.js +4 -4
  252. package/dist/esm/core/utils/get-closest-data.d.ts +1 -1
  253. package/dist/esm/core/utils/series/sorting.js +1 -1
  254. package/dist/esm/core/utils/text.d.ts +0 -1
  255. package/dist/esm/core/utils/text.js +0 -1
  256. package/dist/esm/hooks/index.d.ts +1 -1
  257. package/dist/esm/hooks/index.js +1 -1
  258. package/dist/esm/hooks/useRangeSlider/types.d.ts +1 -1
  259. package/dist/esm/hooks/useRangeSlider/utils.d.ts +1 -1
  260. package/dist/esm/hooks/useShapes/area/index.d.ts +2 -2
  261. package/dist/esm/hooks/useShapes/area/index.js +13 -185
  262. package/dist/esm/hooks/useShapes/bar-x/index.d.ts +4 -4
  263. package/dist/esm/hooks/useShapes/bar-x/index.js +10 -119
  264. package/dist/esm/hooks/useShapes/bar-y/index.d.ts +3 -3
  265. package/dist/esm/hooks/useShapes/bar-y/index.js +5 -84
  266. package/dist/esm/hooks/useShapes/funnel/index.d.ts +4 -4
  267. package/dist/esm/hooks/useShapes/funnel/index.js +4 -83
  268. package/dist/esm/hooks/useShapes/heatmap/index.d.ts +4 -4
  269. package/dist/esm/hooks/useShapes/heatmap/index.js +4 -59
  270. package/dist/esm/hooks/useShapes/index.d.ts +14 -15
  271. package/dist/esm/hooks/useShapes/index.js +13 -13
  272. package/dist/esm/hooks/useShapes/line/index.d.ts +2 -2
  273. package/dist/esm/hooks/useShapes/line/index.js +14 -172
  274. package/dist/esm/hooks/useShapes/pie/index.d.ts +3 -5
  275. package/dist/esm/hooks/useShapes/pie/index.js +3 -158
  276. package/dist/esm/hooks/useShapes/radar/index.d.ts +2 -2
  277. package/dist/esm/hooks/useShapes/radar/index.js +2 -121
  278. package/dist/esm/hooks/useShapes/sankey/index.d.ts +2 -2
  279. package/dist/esm/hooks/useShapes/sankey/index.js +2 -51
  280. package/dist/esm/hooks/useShapes/scatter/index.d.ts +3 -3
  281. package/dist/esm/hooks/useShapes/scatter/index.js +3 -58
  282. package/dist/esm/hooks/useShapes/treemap/index.d.ts +2 -2
  283. package/dist/esm/hooks/useShapes/treemap/index.js +2 -88
  284. package/dist/esm/hooks/useShapes/utils.d.ts +2 -52
  285. package/dist/esm/hooks/useShapes/utils.js +3 -140
  286. package/dist/esm/hooks/useShapes/waterfall/index.d.ts +4 -4
  287. package/dist/esm/hooks/useShapes/waterfall/index.js +6 -119
  288. package/dist/esm/hooks/useShapes/x-range/index.d.ts +4 -4
  289. package/dist/esm/hooks/useShapes/x-range/index.js +3 -98
  290. package/dist/esm/setup-jsdom.js +7 -0
  291. package/package.json +5 -2
  292. package/dist/cjs/hooks/useSeries/index.d.ts +0 -12
  293. package/dist/cjs/hooks/useSeries/index.js +0 -40
  294. package/dist/cjs/hooks/useSeries/types.d.ts +0 -1
  295. package/dist/cjs/hooks/useSeries/types.js +0 -1
  296. package/dist/cjs/hooks/useSeries/utils.d.ts +0 -1
  297. package/dist/cjs/hooks/useSeries/utils.js +0 -1
  298. package/dist/cjs/hooks/useShapes/marker.d.ts +0 -15
  299. package/dist/cjs/hooks/utils/index.d.ts +0 -1
  300. package/dist/cjs/hooks/utils/index.js +0 -1
  301. package/dist/esm/hooks/useSeries/index.d.ts +0 -12
  302. package/dist/esm/hooks/useSeries/index.js +0 -40
  303. package/dist/esm/hooks/useSeries/types.d.ts +0 -1
  304. package/dist/esm/hooks/useSeries/types.js +0 -1
  305. package/dist/esm/hooks/useSeries/utils.d.ts +0 -1
  306. package/dist/esm/hooks/useSeries/utils.js +0 -1
  307. package/dist/esm/hooks/useShapes/marker.d.ts +0 -15
  308. package/dist/esm/hooks/utils/index.d.ts +0 -1
  309. package/dist/esm/hooks/utils/index.js +0 -1
  310. /package/dist/cjs/{hooks/useShapes → core/shapes}/area/types.js +0 -0
  311. /package/dist/cjs/{hooks/constants.d.ts → core/shapes/bar-constants.d.ts} +0 -0
  312. /package/dist/cjs/{hooks/constants.js → core/shapes/bar-constants.js} +0 -0
  313. /package/dist/cjs/{hooks/useShapes → core/shapes}/bar-x/types.js +0 -0
  314. /package/dist/cjs/{hooks/useShapes → core/shapes}/bar-y/types.js +0 -0
  315. /package/dist/cjs/{hooks/useShapes → core/shapes}/bar-y/utils.d.ts +0 -0
  316. /package/dist/cjs/{hooks/useShapes → core/shapes}/funnel/types.js +0 -0
  317. /package/dist/cjs/{hooks/useShapes → core/shapes}/heatmap/types.js +0 -0
  318. /package/dist/cjs/{hooks/useShapes → core/shapes}/line/types.js +0 -0
  319. /package/dist/cjs/{hooks/useShapes → core/shapes}/pie/types.js +0 -0
  320. /package/dist/cjs/{hooks/useShapes → core/shapes}/pie/utils.d.ts +0 -0
  321. /package/dist/cjs/{hooks/useShapes → core/shapes}/pie/utils.js +0 -0
  322. /package/dist/cjs/{hooks/useShapes → core/shapes}/radar/types.js +0 -0
  323. /package/dist/cjs/{hooks/useShapes → core/shapes}/sankey/sankey-layout.d.ts +0 -0
  324. /package/dist/cjs/{hooks/useShapes → core/shapes}/sankey/sankey-layout.js +0 -0
  325. /package/dist/cjs/{hooks/useShapes → core/shapes}/sankey/types.js +0 -0
  326. /package/dist/cjs/{hooks/useShapes → core/shapes}/scatter/types.js +0 -0
  327. /package/dist/cjs/{hooks/useShapes → core/shapes}/treemap/types.js +0 -0
  328. /package/dist/cjs/{hooks/useShapes → core/shapes}/waterfall/types.js +0 -0
  329. /package/dist/cjs/{hooks/useShapes → core/shapes}/x-range/types.js +0 -0
  330. /package/dist/cjs/{hooks/utils/get-band-size.d.ts → core/utils/band-size.d.ts} +0 -0
  331. /package/dist/esm/{hooks/useShapes → core/shapes}/area/types.js +0 -0
  332. /package/dist/esm/{hooks/constants.d.ts → core/shapes/bar-constants.d.ts} +0 -0
  333. /package/dist/esm/{hooks/constants.js → core/shapes/bar-constants.js} +0 -0
  334. /package/dist/esm/{hooks/useShapes → core/shapes}/bar-x/types.js +0 -0
  335. /package/dist/esm/{hooks/useShapes → core/shapes}/bar-y/types.js +0 -0
  336. /package/dist/esm/{hooks/useShapes → core/shapes}/bar-y/utils.d.ts +0 -0
  337. /package/dist/esm/{hooks/useShapes → core/shapes}/funnel/types.js +0 -0
  338. /package/dist/esm/{hooks/useShapes → core/shapes}/heatmap/types.js +0 -0
  339. /package/dist/esm/{hooks/useShapes → core/shapes}/line/types.js +0 -0
  340. /package/dist/esm/{hooks/useShapes → core/shapes}/pie/types.js +0 -0
  341. /package/dist/esm/{hooks/useShapes → core/shapes}/pie/utils.d.ts +0 -0
  342. /package/dist/esm/{hooks/useShapes → core/shapes}/pie/utils.js +0 -0
  343. /package/dist/esm/{hooks/useShapes → core/shapes}/radar/types.js +0 -0
  344. /package/dist/esm/{hooks/useShapes → core/shapes}/sankey/sankey-layout.d.ts +0 -0
  345. /package/dist/esm/{hooks/useShapes → core/shapes}/sankey/sankey-layout.js +0 -0
  346. /package/dist/esm/{hooks/useShapes → core/shapes}/sankey/types.js +0 -0
  347. /package/dist/esm/{hooks/useShapes → core/shapes}/scatter/types.js +0 -0
  348. /package/dist/esm/{hooks/useShapes → core/shapes}/treemap/types.js +0 -0
  349. /package/dist/esm/{hooks/useShapes → core/shapes}/waterfall/types.js +0 -0
  350. /package/dist/esm/{hooks/useShapes → core/shapes}/x-range/types.js +0 -0
  351. /package/dist/esm/{hooks/utils/get-band-size.d.ts → core/utils/band-size.d.ts} +0 -0
@@ -3,9 +3,9 @@ import isEqual from 'lodash/isEqual';
3
3
  import { DEFAULT_PALETTE, SERIES_TYPE } from '../../core/constants';
4
4
  import { getLegendComponents, getPreparedLegend } from '../../core/series/prepare-legend';
5
5
  import { getPreparedOptions } from '../../core/series/prepare-options';
6
+ import { getActiveLegendItems, getAllLegendItems } from '../../core/series/utils';
6
7
  import { getChartDimensions, getEffectiveXRange, getSortedSeriesData, getYAxisWidth, getZoomedSeriesData, isAxisRelatedSeries, } from '../../core/utils';
7
8
  import { createScales, getAxes, getPreparedSeries, getShapes, getSplit, getVisibleSeries, useZoom, } from '../../hooks';
8
- import { getActiveLegendItems, getAllLegendItems } from '../../hooks/useSeries/utils';
9
9
  import { getNormalizedXAxis, getNormalizedYAxis, getPreparedChart, getPreparedTitle, recalculateYAxisLabelsWidth, } from './utils';
10
10
  import { hasAtLeastOneSeriesDataPerPlot } from './utils/common';
11
11
  const CLIP_PATH_BY_SERIES_TYPE = {
@@ -24,11 +24,16 @@ const getLegendPosition = (args) => {
24
24
  const { offsetLeft, offsetTop, contentWidth, width } = args;
25
25
  return { top: offsetTop, left: offsetLeft + width / 2 - contentWidth / 2 };
26
26
  };
27
- const appendPaginator = (args) => {
27
+ async function appendPaginator(args) {
28
28
  const { container, pageIndex, legend, transform, pages, onArrowClick } = args;
29
29
  const paginationLine = container.append('g').attr('class', b('pagination'));
30
30
  const maxPage = pages.length;
31
- let computedWidth = 0;
31
+ const paginationCounterText = `${pageIndex + 1}/${maxPage}`;
32
+ const getTextSize = getTextSizeFn({ style: legend.itemStyle });
33
+ const [arrowIcon, counter] = await Promise.all([
34
+ getTextSize('▲'),
35
+ getTextSize(paginationCounterText),
36
+ ]);
32
37
  paginationLine
33
38
  .append('text')
34
39
  .text('▲')
@@ -36,9 +41,6 @@ const appendPaginator = (args) => {
36
41
  return b('pagination-arrow', { inactive: pageIndex === 0 });
37
42
  })
38
43
  .style('font-size', legend.itemStyle.fontSize)
39
- .each(function () {
40
- computedWidth += this.getComputedTextLength();
41
- })
42
44
  .on('click', function () {
43
45
  if (pageIndex - 1 >= 0) {
44
46
  onArrowClick(pageIndex - 1);
@@ -46,20 +48,17 @@ const appendPaginator = (args) => {
46
48
  });
47
49
  paginationLine
48
50
  .append('text')
49
- .text(`${pageIndex + 1}/${maxPage}`)
51
+ .text(paginationCounterText)
50
52
  .attr('class', b('pagination-counter'))
51
- .attr('x', computedWidth)
52
- .style('font-size', legend.itemStyle.fontSize)
53
- .each(function () {
54
- computedWidth += this.getComputedTextLength();
55
- });
53
+ .attr('x', arrowIcon.width)
54
+ .style('font-size', legend.itemStyle.fontSize);
56
55
  paginationLine
57
56
  .append('text')
58
57
  .text('▼')
59
58
  .attr('class', function () {
60
59
  return b('pagination-arrow', { inactive: pageIndex === maxPage - 1 });
61
60
  })
62
- .attr('x', computedWidth)
61
+ .attr('x', arrowIcon.width + counter.width)
63
62
  .style('font-size', legend.itemStyle.fontSize)
64
63
  .on('click', function () {
65
64
  if (pageIndex + 1 < maxPage) {
@@ -67,7 +66,7 @@ const appendPaginator = (args) => {
67
66
  }
68
67
  });
69
68
  paginationLine.attr('transform', transform);
70
- };
69
+ }
71
70
  function renderLegendSymbol(args) {
72
71
  const { selection, legend, legendLineHeight } = args;
73
72
  const line = selection.data();
@@ -277,7 +276,7 @@ export const Legend = (props) => {
277
276
  });
278
277
  if (config.pagination) {
279
278
  const transform = `translate(${[0, legend.height - legend.lineHeight / 2].join(',')})`;
280
- appendPaginator({
279
+ await appendPaginator({
281
280
  container: svgElement,
282
281
  pageIndex: pageIndex,
283
282
  legend,
@@ -13,7 +13,28 @@ export const Tooltip = (props) => {
13
13
  xAxis,
14
14
  yAxis,
15
15
  });
16
- const containerRect = (svgContainer === null || svgContainer === void 0 ? void 0 : svgContainer.getBoundingClientRect()) || { left: 0, top: 0 };
16
+ const containerRectRef = React.useRef({ left: 0, top: 0 });
17
+ React.useEffect(() => {
18
+ if (!svgContainer)
19
+ return undefined;
20
+ const updateRect = (e) => {
21
+ // Skip synthetic events (e.g. the CustomEvent('scroll') dispatched by the
22
+ // sibling useEffect below to reposition the Popup). Only native browser
23
+ // scroll events have isTrusted === true, so those still update the rect.
24
+ if (e && !e.isTrusted)
25
+ return;
26
+ containerRectRef.current = svgContainer.getBoundingClientRect();
27
+ };
28
+ updateRect();
29
+ const resizeObserver = new ResizeObserver(() => updateRect());
30
+ resizeObserver.observe(svgContainer);
31
+ window.addEventListener('scroll', updateRect, { passive: true, capture: true });
32
+ return () => {
33
+ resizeObserver.disconnect();
34
+ window.removeEventListener('scroll', updateRect, { capture: true });
35
+ };
36
+ }, [svgContainer]);
37
+ const containerRect = containerRectRef.current;
17
38
  const left = ((pointerPosition === null || pointerPosition === void 0 ? void 0 : pointerPosition[0]) || 0) + containerRect.left;
18
39
  const top = ((pointerPosition === null || pointerPosition === void 0 ? void 0 : pointerPosition[1]) || 0) + containerRect.top;
19
40
  const { anchor } = useVirtualElement({ left, top });
@@ -1,7 +1,7 @@
1
1
  import get from 'lodash/get';
2
- import { TIME_UNITS, calculateCos, calculateNumericProperty, calculateSin, formatAxisTickLabel, getDefaultDateFormat, getHorizontalHtmlTextHeight, getLabelsSize, getMinSpaceBetween, getTextSizeFn, isAxisRelatedSeries, wrapText, } from '../utils';
3
2
  import { DASH_STYLE, DEFAULT_AXIS_LABEL_FONT_SIZE, PLOT_LINE_HOVER_THRESHOLD, SERIES_TYPE, axisCrosshairDefaults, axisLabelsDefaults, axisTickMarksDefaults, xAxisTitleDefaults, } from '../constants';
4
3
  import { createXScale } from '../scales/x-scale';
4
+ import { TIME_UNITS, calculateCos, calculateNumericProperty, calculateSin, formatAxisTickLabel, getDefaultDateFormat, getHorizontalHtmlTextHeight, getLabelsSize, getMinSpaceBetween, getTextSizeFn, isAxisRelatedSeries, wrapText, } from '../utils';
5
5
  import { getXAxisTickValues } from '../utils/axis/x-axis';
6
6
  import { getPreparedRangeSlider } from './range-slider';
7
7
  import { prepareAxisPlotLabel } from './utils';
@@ -1,8 +1,8 @@
1
1
  import get from 'lodash/get';
2
- import { calculateNumericProperty, formatAxisTickLabel, getDefaultDateFormat, getHorizontalHtmlTextHeight, getLabelsSize, getMinSpaceBetween, getTextSizeFn, isAxisRelatedSeries, shouldSyncAxisWithPrimary, wrapText, } from '../utils';
3
2
  import { getTickValues } from '../../components/AxisY/utils';
4
3
  import { DASH_STYLE, DEFAULT_AXIS_LABEL_FONT_SIZE, DEFAULT_AXIS_TYPE, PLOT_LINE_HOVER_THRESHOLD, SERIES_TYPE, axisCrosshairDefaults, axisLabelsDefaults, axisTickMarksDefaults, yAxisTitleDefaults, } from '../constants';
5
4
  import { createYScale } from '../scales/y-scale';
5
+ import { calculateNumericProperty, formatAxisTickLabel, getDefaultDateFormat, getHorizontalHtmlTextHeight, getLabelsSize, getMinSpaceBetween, getTextSizeFn, isAxisRelatedSeries, shouldSyncAxisWithPrimary, wrapText, } from '../utils';
6
6
  import { prepareAxisPlotLabel } from './utils';
7
7
  export const getYAxisLabelMaxWidth = async (args) => {
8
8
  const { axis, scale, seriesData } = args;
@@ -1,7 +1,7 @@
1
- import type { AxisDirection } from '../utils';
2
1
  import type { ChartAxis, ChartSeries } from '../../types';
3
2
  import type { PreparedAxis, PreparedYAxis } from '../axes/types';
4
3
  import type { PreparedSeries } from '../series';
4
+ import type { AxisDirection } from '../utils';
5
5
  type OptionalNumber = number | undefined;
6
6
  export declare function getMinMaxPropsOrState(args: {
7
7
  axis: PreparedAxis | ChartAxis;
@@ -1,6 +1,6 @@
1
1
  import get from 'lodash/get';
2
- import { getDataCategoryValue, isSeriesWithCategoryValues } from '../utils';
3
2
  import { SERIES_TYPE } from '../constants';
3
+ import { getDataCategoryValue, isSeriesWithCategoryValues } from '../utils';
4
4
  const MARKER_SERIES_TYPES = [SERIES_TYPE.Area, SERIES_TYPE.Line, SERIES_TYPE.Scatter];
5
5
  function getNormilizedMinMax(args) {
6
6
  const { maxValues, minValues } = args;
@@ -1,9 +1,9 @@
1
1
  import { extent } from 'd3-array';
2
2
  import { scaleBand, scaleLinear, scaleLog, scaleUtc } from 'd3-scale';
3
3
  import get from 'lodash/get';
4
- import { getDefaultMaxXAxisValue, getDefaultMinXAxisValue, getDomainDataXBySeries, getEffectiveXRange, } from '../utils';
5
- import { getBandSize } from '../../hooks/utils/get-band-size';
6
4
  import { DEFAULT_AXIS_TYPE, SERIES_TYPE } from '../constants';
5
+ import { getDefaultMaxXAxisValue, getDefaultMinXAxisValue, getDomainDataXBySeries, getEffectiveXRange, } from '../utils';
6
+ import { getBandSize } from '../utils/band-size';
7
7
  import { checkIsPointDomain, filterCategoriesByVisibleSeries, getMinMaxPropsOrState, hasOnlyMarkerSeries, validateArrayData, } from './utils';
8
8
  const X_AXIS_ZOOM_PADDING = 0.02;
9
9
  function calculateXAxisPadding(series) {
@@ -1,10 +1,10 @@
1
1
  import { extent, tickStep, ticks } from 'd3-array';
2
2
  import { scaleBand, scaleLinear, scaleLog, scaleUtc } from 'd3-scale';
3
3
  import get from 'lodash/get';
4
- import { CHART_SERIES_WITH_VOLUME_ON_Y_AXIS, getDefaultMinYAxisValue, getDomainDataYBySeries, shouldSyncAxisWithPrimary, } from '../utils';
5
4
  import { getTickValues } from '../../components/AxisY/utils';
6
- import { getBandSize } from '../../hooks/utils/get-band-size';
7
5
  import { SERIES_TYPE } from '../constants';
6
+ import { CHART_SERIES_WITH_VOLUME_ON_Y_AXIS, getDefaultMinYAxisValue, getDomainDataYBySeries, shouldSyncAxisWithPrimary, } from '../utils';
7
+ import { getBandSize } from '../utils/band-size';
8
8
  import { checkIsPointDomain, filterCategoriesByVisibleSeries, getMinMaxPropsOrState, hasOnlyMarkerSeries, validateArrayData, } from './utils';
9
9
  // axis is validated in `validation/index.ts`, so the value of `axis.type` is definitely valid.
10
10
  // eslint-disable-next-line consistent-return
@@ -70,6 +70,34 @@ function getDomainSyncedToPrimaryTicks(args) {
70
70
  }
71
71
  return [secondaryTicks[0], secondaryTicks[secondaryTicks.length - 1]];
72
72
  }
73
+ function getLogarithmicYMin(args) {
74
+ var _a;
75
+ const { axis, domain, yMinDomain, hasSeriesWithVolumeOnYAxis } = args;
76
+ // scaleLog cannot represent values <= 0. Pick the smallest positive value
77
+ // present in the domain, falling back to 1 if there is none.
78
+ const smallestPositive = yMinDomain > 0
79
+ ? yMinDomain
80
+ : ((_a = domain.reduce((min, v) => {
81
+ if (typeof v === 'number' && v > 0) {
82
+ return min === null ? v : Math.min(min, v);
83
+ }
84
+ return min;
85
+ }, null)) !== null && _a !== void 0 ? _a : 1);
86
+ if (!hasSeriesWithVolumeOnYAxis) {
87
+ return smallestPositive;
88
+ }
89
+ // Volume series (bar-x, area, waterfall) draw bars from yMin up to the
90
+ // value, so a bar whose value equals yMin collapses to zero height. Drop
91
+ // the baseline one decade below to give it visible space — but only when
92
+ // the later `nice()` pass (triggered by startOnTick) won't supply that
93
+ // headroom on its own. nice() rounds down to the previous decade, which
94
+ // covers any value strictly between two decades; it has nothing to round
95
+ // when the smallest value already sits on a decade (e.g. 1, 10, 100).
96
+ const startOnTick = get(axis, 'startOnTick', false);
97
+ const isOnDecade = Number.isInteger(Math.log10(smallestPositive));
98
+ const needsHeadroom = !startOnTick || isOnDecade;
99
+ return needsHeadroom ? smallestPositive / 10 : smallestPositive;
100
+ }
73
101
  function getDomainMinAlignedToStartTick(args) {
74
102
  var _a, _b;
75
103
  const { axis, range, scale, series } = args;
@@ -80,6 +108,9 @@ function getDomainMinAlignedToStartTick(args) {
80
108
  labelLineHeight: axis.labels.lineHeight,
81
109
  series,
82
110
  });
111
+ if (tickValues.length === 0) {
112
+ return dMin;
113
+ }
83
114
  const isStartOnTick = tickValues[0].y === range[0];
84
115
  let dNewMin = dMin;
85
116
  if (!isStartOnTick) {
@@ -111,6 +142,9 @@ function getDomainMaxAlignedToEndTick(args) {
111
142
  labelLineHeight: axis.labels.lineHeight,
112
143
  series,
113
144
  });
145
+ if (tickValues.length === 0) {
146
+ return dMax;
147
+ }
114
148
  let dNewMax = dMax;
115
149
  const isEndOnTick = tickValues[tickValues.length - 1].y === range[1];
116
150
  if (!isEndOnTick) {
@@ -155,12 +189,18 @@ export function createYScale(args) {
155
189
  }
156
190
  if (hasNumberAndNullValues) {
157
191
  const [yMinDomain, yMaxDomain] = extent(domain);
192
+ const hasSeriesWithVolumeOnYAxis = series.some((s) => CHART_SERIES_WITH_VOLUME_ON_Y_AXIS.includes(s.type));
158
193
  let yMin;
159
194
  if (typeof yMinPropsOrState === 'number') {
160
195
  yMin = yMinPropsOrState;
161
196
  }
162
197
  else if (axis.type === 'logarithmic') {
163
- yMin = yMinDomain;
198
+ yMin = getLogarithmicYMin({
199
+ axis,
200
+ domain,
201
+ yMinDomain,
202
+ hasSeriesWithVolumeOnYAxis,
203
+ });
164
204
  }
165
205
  else {
166
206
  const yMinDefault = getDefaultMinYAxisValue(series);
@@ -170,8 +210,12 @@ export function createYScale(args) {
170
210
  if (typeof yMaxPropsOrState === 'number') {
171
211
  yMax = yMaxPropsOrState;
172
212
  }
213
+ else if (axis.type === 'logarithmic') {
214
+ // scaleLog cannot represent values <= 0; ensure yMax is strictly
215
+ // greater than yMin so the resulting domain stays valid.
216
+ yMax = yMaxDomain > yMin ? yMaxDomain : yMin * 10;
217
+ }
173
218
  else {
174
- const hasSeriesWithVolumeOnYAxis = series.some((s) => CHART_SERIES_WITH_VOLUME_ON_Y_AXIS.includes(s.type));
175
219
  yMax = hasSeriesWithVolumeOnYAxis ? Math.max(yMaxDomain, 0) : yMaxDomain;
176
220
  }
177
221
  const scaleFn = axis.type === 'logarithmic' ? scaleLog : scaleLinear;
@@ -1,7 +1,7 @@
1
1
  import get from 'lodash/get';
2
2
  import merge from 'lodash/merge';
3
- import { getUniqId } from '../utils';
4
3
  import { DEFAULT_DATALABELS_STYLE, seriesRangeSliderOptionsDefaults } from '../constants';
4
+ import { getUniqId } from '../utils';
5
5
  import { DEFAULT_DATALABELS_PADDING, DEFAULT_HALO_OPTIONS, DEFAULT_POINT_MARKER_OPTIONS, } from './constants';
6
6
  import { getSeriesStackId, prepareLegendSymbol } from './utils';
7
7
  export const DEFAULT_LINE_WIDTH = 1;
@@ -1,6 +1,6 @@
1
1
  import get from 'lodash/get';
2
- import { getUniqId } from '../utils';
3
2
  import { DEFAULT_DATALABELS_STYLE, seriesRangeSliderOptionsDefaults } from '../constants';
3
+ import { getUniqId } from '../utils';
4
4
  import { DEFAULT_DATALABELS_PADDING } from './constants';
5
5
  import { getSeriesStackId, prepareLegendSymbol } from './utils';
6
6
  function prepareSeriesData(series) {
@@ -1,6 +1,6 @@
1
1
  import get from 'lodash/get';
2
- import { getLabelsSize, getUniqId } from '../utils';
3
2
  import { DEFAULT_DATALABELS_STYLE } from '../constants';
3
+ import { getLabelsSize, getUniqId } from '../utils';
4
4
  import { getFormattedValue } from '../utils/format';
5
5
  import { getSeriesStackId, prepareLegendSymbol } from './utils';
6
6
  const DEFAULT_LABEL_PADDING = 7;
@@ -1,7 +1,7 @@
1
1
  import { scaleOrdinal } from 'd3-scale';
2
2
  import get from 'lodash/get';
3
- import { getUniqId } from '../utils';
4
3
  import { DEFAULT_DATALABELS_STYLE } from '../constants';
4
+ import { getUniqId } from '../utils';
5
5
  import { prepareLegendSymbol } from './utils';
6
6
  export function prepareFunnelSeries(args) {
7
7
  var _a, _b;
@@ -1,6 +1,6 @@
1
1
  import get from 'lodash/get';
2
- import { getUniqId } from '../utils';
3
2
  import { DEFAULT_DATALABELS_STYLE } from '../constants';
3
+ import { getUniqId } from '../utils';
4
4
  import { DEFAULT_DATALABELS_PADDING } from './constants';
5
5
  import { prepareLegendSymbol } from './utils';
6
6
  function prepareSeriesData(series) {
@@ -2,8 +2,8 @@ import { groupBy } from 'lodash';
2
2
  import clone from 'lodash/clone';
3
3
  import get from 'lodash/get';
4
4
  import merge from 'lodash/merge';
5
- import { getDefaultColorStops, getDomainForContinuousColorScale, getLabelsSize, getTextSizeFn, getTextWithElipsis, } from '../utils';
6
5
  import { CONTINUOUS_LEGEND_SIZE, legendDefaults } from '../constants';
6
+ import { getDefaultColorStops, getDomainForContinuousColorScale, getLabelsSize, getTextSizeFn, getTextWithElipsis, } from '../utils';
7
7
  export async function getPreparedLegend(args) {
8
8
  var _a, _b, _c, _d, _e, _f, _g;
9
9
  const { legend, series } = args;
@@ -120,8 +120,8 @@ async function getGroupedLegendItems(args) {
120
120
  }
121
121
  resultItem.height = textHeight;
122
122
  if (textWidth > maxTextWidth) {
123
+ resultItem.overflowed = true;
123
124
  if (preparedLegend.html) {
124
- resultItem.overflowed = true;
125
125
  resultItem.textWidth = maxTextWidth;
126
126
  }
127
127
  else {
@@ -1,7 +1,7 @@
1
1
  import get from 'lodash/get';
2
2
  import merge from 'lodash/merge';
3
- import { getUniqId } from '../utils';
4
3
  import { DASH_STYLE, DEFAULT_DATALABELS_STYLE, LineCap, LineJoin, seriesRangeSliderOptionsDefaults, } from '../constants';
4
+ import { getUniqId } from '../utils';
5
5
  import { DEFAULT_DATALABELS_PADDING, DEFAULT_HALO_OPTIONS, DEFAULT_LEGEND_SYMBOL_PADDING, DEFAULT_POINT_MARKER_OPTIONS, } from './constants';
6
6
  export const DEFAULT_LEGEND_SYMBOL_SIZE = 16;
7
7
  export const DEFAULT_LINE_WIDTH = 1;
@@ -1,7 +1,7 @@
1
1
  import { scaleOrdinal } from 'd3-scale';
2
2
  import get from 'lodash/get';
3
- import { getUniqId } from '../utils';
4
3
  import { DEFAULT_DATALABELS_STYLE } from '../constants';
4
+ import { getUniqId } from '../utils';
5
5
  import { DEFAULT_DATALABELS_PADDING } from './constants';
6
6
  import { prepareLegendSymbol } from './utils';
7
7
  function prepareSeriesData(series) {
@@ -1,8 +1,8 @@
1
1
  import { scaleOrdinal } from 'd3-scale';
2
2
  import get from 'lodash/get';
3
3
  import merge from 'lodash/merge';
4
- import { getUniqId } from '../utils';
5
4
  import { DEFAULT_DATALABELS_STYLE } from '../constants';
5
+ import { getUniqId } from '../utils';
6
6
  import { DEFAULT_DATALABELS_PADDING, DEFAULT_HALO_OPTIONS, DEFAULT_POINT_MARKER_OPTIONS, } from './constants';
7
7
  import { prepareLegendSymbol } from './utils';
8
8
  export const DEFAULT_MARKER = Object.assign(Object.assign({}, DEFAULT_POINT_MARKER_OPTIONS), { enabled: true, radius: 2 });
@@ -1,6 +1,6 @@
1
1
  import get from 'lodash/get';
2
- import { getUniqId } from '../utils';
3
2
  import { DEFAULT_DATALABELS_STYLE } from '../constants';
3
+ import { getUniqId } from '../utils';
4
4
  import { prepareLegendSymbol } from './utils';
5
5
  export function prepareSankeySeries(args) {
6
6
  const { colorScale, legend, series } = args;
@@ -1,7 +1,7 @@
1
1
  import get from 'lodash/get';
2
2
  import merge from 'lodash/merge';
3
- import { getSymbolType, getUniqId } from '../utils';
4
3
  import { seriesRangeSliderOptionsDefaults } from '../constants';
4
+ import { getSymbolType, getUniqId } from '../utils';
5
5
  import { DEFAULT_HALO_OPTIONS, DEFAULT_POINT_MARKER_OPTIONS } from './constants';
6
6
  import { prepareLegendSymbol } from './utils';
7
7
  function prepareMarker(series, seriesOptions, index) {
@@ -1,6 +1,6 @@
1
1
  import get from 'lodash/get';
2
- import { getUniqId } from '../utils';
3
2
  import { DEFAULT_DATALABELS_STYLE, LayoutAlgorithm } from '../constants';
3
+ import { getUniqId } from '../utils';
4
4
  import { DEFAULT_DATALABELS_PADDING } from './constants';
5
5
  import { prepareLegendSymbol } from './utils';
6
6
  export function prepareTreemap(args) {
@@ -1,6 +1,6 @@
1
1
  import get from 'lodash/get';
2
- import { getUniqId } from '../utils';
3
2
  import { DEFAULT_DATALABELS_STYLE } from '../constants';
3
+ import { getUniqId } from '../utils';
4
4
  import { DEFAULT_DATALABELS_PADDING } from './constants';
5
5
  import { prepareLegendSymbol } from './utils';
6
6
  function prepareSeriesData(series) {
@@ -1,6 +1,6 @@
1
1
  import get from 'lodash/get';
2
- import { getUniqId } from '../utils';
3
2
  import { DASH_STYLE, DEFAULT_DATALABELS_STYLE } from '../constants';
3
+ import { getUniqId } from '../utils';
4
4
  import { DEFAULT_DATALABELS_PADDING } from './constants';
5
5
  import { prepareLegendSymbol } from './utils';
6
6
  export function prepareXRangeSeries(args) {
@@ -1,6 +1,12 @@
1
1
  import type { ScaleOrdinal } from 'd3-scale';
2
- import type { ChartSeries, ChartSeriesOptions } from '../../types';
2
+ import type { ChartData, ChartSeries, ChartSeriesOptions } from '../../types';
3
3
  import type { PreparedLegend, PreparedSeries } from './types';
4
+ export declare const getPreparedSeries: ({ seriesData, seriesOptions, colors, preparedLegend, }: {
5
+ seriesData: ChartData["series"]["data"];
6
+ seriesOptions: ChartData["series"]["options"];
7
+ colors: string[];
8
+ preparedLegend?: PreparedLegend | null;
9
+ }) => Promise<PreparedSeries[]>;
4
10
  export declare function prepareSeries(args: {
5
11
  type: ChartSeries['type'];
6
12
  series: ChartSeries[];
@@ -1,4 +1,7 @@
1
+ import { group } from 'd3-array';
2
+ import { scaleOrdinal } from 'd3-scale';
1
3
  import { ChartError } from '../../libs';
4
+ import { getSeriesNames } from '../utils';
2
5
  import { prepareArea } from './prepare-area';
3
6
  import { prepareBarXSeries } from './prepare-bar-x';
4
7
  import { prepareBarYSeries } from './prepare-bar-y';
@@ -12,6 +15,34 @@ import { prepareScatterSeries } from './prepare-scatter';
12
15
  import { prepareTreemap } from './prepare-treemap';
13
16
  import { prepareWaterfallSeries } from './prepare-waterfall';
14
17
  import { prepareXRangeSeries } from './prepare-x-range';
18
+ export const getPreparedSeries = async ({ seriesData, seriesOptions, colors, preparedLegend, }) => {
19
+ const seriesNames = getSeriesNames(seriesData);
20
+ const colorScale = scaleOrdinal(seriesNames, colors);
21
+ const groupedSeries = group(seriesData, (item, index) => {
22
+ if (item.type === 'line') {
23
+ return `${item.type}_${index}`;
24
+ }
25
+ return item.type;
26
+ });
27
+ const acc = [];
28
+ if (!preparedLegend) {
29
+ return acc;
30
+ }
31
+ const list = Array.from(groupedSeries);
32
+ for (let i = 0; i < list.length; i++) {
33
+ const [_groupId, seriesList] = list[i];
34
+ const seriesType = seriesList[0].type;
35
+ acc.push(...(await prepareSeries({
36
+ type: seriesType,
37
+ series: seriesList,
38
+ seriesOptions,
39
+ legend: preparedLegend,
40
+ colorScale,
41
+ colors,
42
+ })));
43
+ }
44
+ return acc;
45
+ };
15
46
  export async function prepareSeries(args) {
16
47
  const { type, series, seriesOptions, legend, colors, colorScale } = args;
17
48
  switch (type) {
@@ -16,6 +16,11 @@ export type PreparedAnnotation = {
16
16
  padding: [number, number];
17
17
  };
18
18
  };
19
+ export type AnnotationAnchor = {
20
+ annotation: PreparedAnnotation;
21
+ x: number;
22
+ y: number;
23
+ };
19
24
  export type RectLegendSymbol = {
20
25
  shape: 'rect';
21
26
  } & Required<RectLegendSymbolOptions>;
@@ -9,3 +9,7 @@ export declare function prepareLegendSymbol(series: {
9
9
  };
10
10
  }, symbolType?: `${SymbolType}`): PreparedLegendSymbol;
11
11
  export declare function getSeriesStackId(series: StackedSeries): string;
12
+ export declare const getVisibleSeries: ({ preparedSeries, activeLegendItems, }: {
13
+ preparedSeries: PreparedSeries[];
14
+ activeLegendItems: string[];
15
+ }) => PreparedSeries[];
@@ -1,6 +1,6 @@
1
1
  import memoize from 'lodash/memoize';
2
- import { getSymbolBBoxWidth } from '../utils';
3
2
  import { SymbolType } from '../constants';
3
+ import { getSymbolBBoxWidth } from '../utils';
4
4
  import { getUniqId } from '../utils/misc';
5
5
  import { DEFAULT_LEGEND_SYMBOL_PADDING, DEFAULT_LEGEND_SYMBOL_SIZE } from './constants';
6
6
  export const getActiveLegendItems = (series) => {
@@ -35,3 +35,11 @@ export function getSeriesStackId(series) {
35
35
  }
36
36
  return stackId;
37
37
  }
38
+ export const getVisibleSeries = ({ preparedSeries, activeLegendItems, }) => {
39
+ return preparedSeries.map((singleSeries) => {
40
+ if (singleSeries.legend.enabled) {
41
+ return Object.assign(Object.assign({}, singleSeries), { visible: activeLegendItems.includes(singleSeries.legend.groupId) });
42
+ }
43
+ return singleSeries;
44
+ });
45
+ };
@@ -1,11 +1,5 @@
1
1
  import type { Selection } from 'd3-selection';
2
- import type { PreparedAnnotation } from '../../../core/series/types';
3
- type AnnotationAnchor = {
4
- annotation: PreparedAnnotation;
5
- x: number;
6
- y: number;
7
- };
8
- export { type AnnotationAnchor };
2
+ import type { AnnotationAnchor } from '../series/types';
9
3
  export declare function renderAnnotations(args: {
10
4
  anchors: AnnotationAnchor[];
11
5
  container: Selection<SVGGElement, unknown, null, undefined>;
@@ -1,6 +1,6 @@
1
1
  import { select } from 'd3-selection';
2
- import { DESCENDER_RATIO } from '../../../core/utils/text';
3
- import { block } from '../../../utils';
2
+ import { block } from '../../utils';
3
+ import { DESCENDER_RATIO } from '../utils/text';
4
4
  const b = block('annotation');
5
5
  const ARROW_WIDTH = 18;
6
6
  const ARROW_HEIGHT = 9;
@@ -1,7 +1,7 @@
1
- import type { PreparedSplit } from '../../../core/layout/split-types';
2
- import type { ChartScale } from '../../../core/scales/types';
3
- import type { PreparedXAxis, PreparedYAxis } from '../../useAxis/types';
4
- import type { PreparedAreaSeries, PreparedSeriesOptions } from '../../useSeries/types';
1
+ import type { PreparedXAxis, PreparedYAxis } from '../../axes/types';
2
+ import type { PreparedSplit } from '../../layout/split-types';
3
+ import type { ChartScale } from '../../scales/types';
4
+ import type { PreparedAreaSeries, PreparedSeriesOptions } from '../../series/types';
5
5
  import type { PreparedAreaData } from './types';
6
6
  export declare const prepareAreaData: (args: {
7
7
  series: PreparedAreaSeries[];
@@ -1,10 +1,10 @@
1
1
  import { group, min, sort } from 'd3-array';
2
2
  import isNil from 'lodash/isNil';
3
3
  import round from 'lodash/round';
4
- import { prepareAnnotation } from '../../../core/series/prepare-annotation';
5
- import { getDataCategoryValue, getLabelsSize, getTextSizeFn } from '../../../core/utils';
6
- import { getFormattedValue } from '../../../core/utils/format';
7
- import { getXValue, getYValue } from '../utils';
4
+ import { prepareAnnotation } from '../../series/prepare-annotation';
5
+ import { getXValue, getYValue } from '../../shapes/utils';
6
+ import { getDataCategoryValue, getLabelsSize, getTextSizeFn } from '../../utils';
7
+ import { getFormattedValue } from '../../utils/format';
8
8
  function getXValues(series, xAxis, xScale) {
9
9
  const categories = xAxis.categories || [];
10
10
  const xValues = series.reduce((acc, s) => {
@@ -0,0 +1,11 @@
1
+ import type { Dispatch } from 'd3-dispatch';
2
+ import type { PreparedSeriesOptions } from '../../series/types';
3
+ import type { PreparedAreaData } from './types';
4
+ export declare function renderArea(elements: {
5
+ plot: SVGGElement;
6
+ markers: SVGGElement;
7
+ hoverMarkers: SVGGElement;
8
+ annotations: SVGGElement;
9
+ boundsWidth: number;
10
+ boundsHeight: number;
11
+ }, preparedData: PreparedAreaData[], seriesOptions: PreparedSeriesOptions, allowOverlapDataLabels: boolean, dispatcher?: Dispatch<object>): () => void;