@mui/x-charts 8.0.0-alpha.6 → 8.0.0-alpha.8

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 (716) hide show
  1. package/BarChart/AnimatedBarElement.js +1 -0
  2. package/BarChart/BarChart.d.ts +1 -1
  3. package/BarChart/BarChart.js +26 -8
  4. package/BarChart/BarLabel/BarLabel.d.ts +1 -479
  5. package/BarChart/BarLabel/BarLabelPlot.js +1 -1
  6. package/BarChart/BarLabel/barLabelClasses.d.ts +1 -1
  7. package/BarChart/BarPlot.js +8 -9
  8. package/BarChart/extremums.d.ts +3 -3
  9. package/BarChart/formatter.d.ts +2 -2
  10. package/BarChart/formatter.js +2 -1
  11. package/BarChart/getColor.d.ts +1 -1
  12. package/BarChart/legend.d.ts +1 -1
  13. package/BarChart/legend.js +1 -0
  14. package/BarChart/plugin.d.ts +2 -2
  15. package/BarChart/plugin.js +1 -2
  16. package/BarChart/useBarChartProps.d.ts +5 -3
  17. package/BarChart/useBarChartProps.js +16 -3
  18. package/CHANGELOG.md +242 -1
  19. package/ChartContainer/ChartContainer.d.ts +6 -2
  20. package/ChartContainer/ChartContainer.js +13 -7
  21. package/ChartContainer/useChartContainerProps.d.ts +5 -3
  22. package/ChartContainer/useChartContainerProps.js +7 -5
  23. package/ChartsAxis/ChartsAxis.js +5 -3
  24. package/ChartsGrid/ChartsGrid.js +9 -5
  25. package/ChartsGrid/ChartsHorizontalGrid.d.ts +2 -2
  26. package/ChartsGrid/ChartsHorizontalGrid.js +4 -3
  27. package/ChartsGrid/ChartsVerticalGrid.d.ts +2 -2
  28. package/ChartsGrid/ChartsVerticalGrid.js +4 -3
  29. package/ChartsLabel/ChartsLabel.d.ts +2 -3
  30. package/ChartsLabel/ChartsLabel.js +3 -18
  31. package/ChartsLabel/ChartsLabelGradient.d.ts +9 -8
  32. package/ChartsLabel/ChartsLabelGradient.js +28 -26
  33. package/ChartsLabel/ChartsLabelMark.d.ts +2 -3
  34. package/ChartsLabel/ChartsLabelMark.js +5 -2
  35. package/ChartsLabel/index.d.ts +7 -0
  36. package/ChartsLabel/index.js +6 -0
  37. package/ChartsLabel/labelClasses.d.ts +0 -1
  38. package/ChartsLabel/labelGradientClasses.d.ts +5 -4
  39. package/ChartsLabel/labelGradientClasses.js +3 -2
  40. package/ChartsLabel/labelMarkClasses.d.ts +3 -2
  41. package/ChartsLabel/labelMarkClasses.js +3 -2
  42. package/ChartsLabel/package.json +6 -0
  43. package/ChartsLegend/ChartsLegend.d.ts +18 -22
  44. package/ChartsLegend/ChartsLegend.js +100 -109
  45. package/ChartsLegend/ContinuousColorLegend.d.ts +29 -38
  46. package/ChartsLegend/ContinuousColorLegend.js +198 -321
  47. package/ChartsLegend/PiecewiseColorLegend.d.ts +27 -19
  48. package/ChartsLegend/PiecewiseColorLegend.js +201 -111
  49. package/ChartsLegend/chartsLegend.types.d.ts +17 -60
  50. package/ChartsLegend/chartsLegendClasses.d.ts +7 -8
  51. package/ChartsLegend/chartsLegendClasses.js +16 -2
  52. package/ChartsLegend/colorLegend.types.d.ts +13 -0
  53. package/ChartsLegend/continuousColorLegendClasses.d.ts +26 -0
  54. package/ChartsLegend/continuousColorLegendClasses.js +23 -0
  55. package/ChartsLegend/direction.d.ts +1 -0
  56. package/ChartsLegend/index.d.ts +13 -3
  57. package/ChartsLegend/index.js +9 -3
  58. package/ChartsLegend/legend.types.d.ts +10 -54
  59. package/ChartsLegend/legendContext.types.d.ts +55 -0
  60. package/ChartsLegend/onClickContextBuilder.d.ts +2 -0
  61. package/ChartsLegend/onClickContextBuilder.js +7 -0
  62. package/ChartsLegend/piecewiseColorDefaultLabelFormatter.d.ts +2 -0
  63. package/ChartsLegend/piecewiseColorDefaultLabelFormatter.js +9 -0
  64. package/ChartsLegend/piecewiseColorLegend.types.d.ts +26 -0
  65. package/ChartsLegend/piecewiseColorLegendClasses.d.ts +28 -0
  66. package/ChartsLegend/piecewiseColorLegendClasses.js +23 -0
  67. package/ChartsLegend/useAxis.d.ts +1 -1
  68. package/ChartsLegend/useAxis.js +7 -6
  69. package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +7 -6
  70. package/ChartsReferenceLine/ChartsXReferenceLine.d.ts +1 -1
  71. package/ChartsReferenceLine/ChartsYReferenceLine.d.ts +1 -1
  72. package/ChartsSurface/ChartsSurface.js +16 -27
  73. package/ChartsTooltip/ChartsAxisTooltipContent.js +6 -3
  74. package/ChartsTooltip/ChartsItemTooltipContent.js +6 -3
  75. package/ChartsTooltip/ChartsTooltipTable.d.ts +0 -6
  76. package/ChartsTooltip/ChartsTooltipTable.js +0 -20
  77. package/ChartsTooltip/chartsTooltipClasses.d.ts +1 -1
  78. package/ChartsTooltip/useAxisTooltip.d.ts +3 -1
  79. package/ChartsTooltip/useAxisTooltip.js +13 -9
  80. package/ChartsTooltip/useItemTooltip.d.ts +3 -1
  81. package/ChartsTooltip/useItemTooltip.js +14 -10
  82. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +16 -9
  83. package/ChartsXAxis/ChartsXAxis.js +11 -8
  84. package/ChartsYAxis/ChartsYAxis.js +8 -5
  85. package/Gauge/Gauge.js +5 -1
  86. package/Gauge/GaugeContainer.d.ts +3 -10
  87. package/Gauge/GaugeContainer.js +38 -38
  88. package/LineChart/AnimatedArea.js +2 -1
  89. package/LineChart/AnimatedLine.js +2 -1
  90. package/LineChart/AppearingMask.js +2 -1
  91. package/LineChart/AreaPlot.js +16 -15
  92. package/LineChart/CircleMarkElement.js +1 -0
  93. package/LineChart/LineChart.js +29 -11
  94. package/LineChart/LineHighlightPlot.js +14 -11
  95. package/LineChart/LinePlot.js +16 -15
  96. package/LineChart/MarkElement.js +3 -1
  97. package/LineChart/MarkPlot.js +14 -11
  98. package/LineChart/extremums.d.ts +3 -3
  99. package/LineChart/formatter.d.ts +2 -2
  100. package/LineChart/formatter.js +3 -1
  101. package/LineChart/getColor.d.ts +1 -1
  102. package/LineChart/legend.d.ts +1 -1
  103. package/LineChart/legend.js +1 -0
  104. package/LineChart/plugin.d.ts +2 -2
  105. package/LineChart/plugin.js +1 -2
  106. package/LineChart/useLineChartProps.d.ts +5 -3
  107. package/LineChart/useLineChartProps.js +15 -2
  108. package/PieChart/PieArc.js +3 -1
  109. package/PieChart/PieArcLabel.js +13 -9
  110. package/PieChart/PieArcLabelPlot.js +3 -2
  111. package/PieChart/PieArcPlot.js +3 -2
  112. package/PieChart/PieChart.js +51 -42
  113. package/PieChart/dataTransform/transition.d.ts +2 -2
  114. package/PieChart/dataTransform/transition.js +6 -6
  115. package/PieChart/formatter.d.ts +2 -2
  116. package/PieChart/formatter.js +4 -1
  117. package/PieChart/getColor.d.ts +1 -1
  118. package/PieChart/getPieCoordinates.d.ts +2 -2
  119. package/PieChart/legend.d.ts +1 -1
  120. package/PieChart/legend.js +1 -0
  121. package/PieChart/plugin.d.ts +2 -2
  122. package/PieChart/plugin.js +1 -2
  123. package/ScatterChart/Scatter.js +6 -4
  124. package/ScatterChart/ScatterChart.d.ts +1 -2
  125. package/ScatterChart/ScatterChart.js +28 -14
  126. package/ScatterChart/ScatterPlot.js +11 -10
  127. package/ScatterChart/extremums.d.ts +3 -3
  128. package/ScatterChart/extremums.js +3 -1
  129. package/ScatterChart/formatter.d.ts +2 -2
  130. package/ScatterChart/formatter.js +3 -1
  131. package/ScatterChart/getColor.d.ts +1 -1
  132. package/ScatterChart/legend.d.ts +1 -1
  133. package/ScatterChart/legend.js +1 -0
  134. package/ScatterChart/plugin.d.ts +2 -2
  135. package/ScatterChart/plugin.js +1 -2
  136. package/ScatterChart/useScatterChartProps.d.ts +5 -5
  137. package/ScatterChart/useScatterChartProps.js +16 -6
  138. package/SparkLineChart/SparkLineChart.d.ts +2 -2
  139. package/SparkLineChart/SparkLineChart.js +12 -6
  140. package/constants/index.d.ts +1 -0
  141. package/constants/index.js +2 -1
  142. package/context/ChartDataProvider/ChartDataProvider.d.ts +6 -22
  143. package/context/ChartDataProvider/ChartDataProvider.js +22 -184
  144. package/context/ChartDataProvider/useChartDataProviderProps.d.ts +6 -83
  145. package/context/ChartDataProvider/useChartDataProviderProps.js +33 -47
  146. package/context/ChartProvider/ChartProvider.d.ts +5 -1
  147. package/context/ChartProvider/ChartProvider.js +22 -2
  148. package/context/ChartProvider/ChartProvider.types.d.ts +18 -3
  149. package/context/InteractionSelectors.d.ts +22 -22
  150. package/context/PolarProvider/PolarProvider.d.ts +0 -4
  151. package/context/PolarProvider/PolarProvider.js +59 -47
  152. package/context/PolarProvider/getAxisExtremum.d.ts +0 -4
  153. package/context/PolarProvider/getAxisExtremum.js +48 -20
  154. package/context/PolarProvider/usePolarContext.d.ts +0 -2
  155. package/context/PolarProvider/usePolarContext.js +9 -8
  156. package/context/index.d.ts +0 -2
  157. package/context/index.js +0 -1
  158. package/hooks/index.d.ts +3 -0
  159. package/hooks/index.js +4 -1
  160. package/hooks/useAxis.d.ts +9 -1
  161. package/hooks/useAxis.js +32 -6
  162. package/hooks/useAxisEvents.js +12 -8
  163. package/hooks/useChartGradientId.d.ts +31 -0
  164. package/hooks/useChartGradientId.js +47 -0
  165. package/hooks/useColorScale.js +5 -5
  166. package/hooks/useDrawingArea.d.ts +16 -2
  167. package/hooks/useDrawingArea.js +5 -20
  168. package/hooks/useLegend.d.ts +13 -0
  169. package/{modern/ChartsLegend/utils.js → hooks/useLegend.js} +20 -1
  170. package/hooks/useSeries.d.ts +11 -6
  171. package/hooks/useSeries.js +5 -10
  172. package/hooks/useSvgRef.d.ts +1 -1
  173. package/hooks/useZAxis.d.ts +3 -2
  174. package/hooks/useZAxis.js +25 -6
  175. package/index.d.ts +1 -0
  176. package/index.js +2 -1
  177. package/internals/calculateMargins.d.ts +7 -0
  178. package/internals/calculateMargins.js +25 -0
  179. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.d.ts +0 -2
  180. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +65 -29
  181. package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +6 -6
  182. package/internals/components/ChartsAxesGradients/ChartsContinuousGradientObjectBound.d.ts +13 -0
  183. package/internals/components/ChartsAxesGradients/ChartsContinuousGradientObjectBound.js +61 -0
  184. package/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.d.ts +1 -1
  185. package/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +6 -0
  186. package/internals/components/ChartsWrapper/ChartsWrapper.d.ts +17 -0
  187. package/internals/components/ChartsWrapper/ChartsWrapper.js +66 -0
  188. package/internals/components/ChartsWrapper/index.d.ts +1 -0
  189. package/internals/components/ChartsWrapper/index.js +1 -0
  190. package/internals/consumeSlots.d.ts +48 -0
  191. package/internals/consumeSlots.js +101 -0
  192. package/internals/consumeThemeProps.d.ts +3 -7
  193. package/internals/consumeThemeProps.js +18 -27
  194. package/internals/defaultizeColor.d.ts +26 -21
  195. package/internals/index.d.ts +14 -8
  196. package/internals/index.js +17 -9
  197. package/internals/plugins/allPlugins.d.ts +12 -1
  198. package/internals/plugins/allPlugins.js +5 -2
  199. package/internals/plugins/corePlugins/corePlugins.d.ts +1 -1
  200. package/internals/plugins/corePlugins/corePlugins.js +3 -1
  201. package/internals/plugins/corePlugins/useChartDimensions/index.d.ts +3 -0
  202. package/internals/plugins/corePlugins/useChartDimensions/index.js +2 -0
  203. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.d.ts +3 -0
  204. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.js +175 -0
  205. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +264 -0
  206. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.js +25 -0
  207. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.d.ts +99 -0
  208. package/internals/plugins/corePlugins/useChartId/index.d.ts +1 -0
  209. package/internals/plugins/corePlugins/useChartId/index.js +2 -1
  210. package/internals/plugins/corePlugins/useChartId/useChartId.js +1 -1
  211. package/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +1 -1
  212. package/internals/plugins/corePlugins/useChartId/useChartId.types.d.ts +1 -1
  213. package/internals/plugins/corePlugins/useChartSeries/index.d.ts +3 -0
  214. package/internals/plugins/corePlugins/useChartSeries/index.js +2 -0
  215. package/internals/plugins/corePlugins/useChartSeries/processSeries.d.ts +18 -0
  216. package/{modern/context/SeriesProvider → internals/plugins/corePlugins/useChartSeries}/processSeries.js +9 -6
  217. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.d.ts +3 -0
  218. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.js +72 -0
  219. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +61 -0
  220. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.js +4 -0
  221. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.types.d.ts +51 -0
  222. package/internals/plugins/corePlugins/useChartSeries/useColorProcessor.d.ts +10 -0
  223. package/internals/plugins/corePlugins/useChartSeries/useColorProcessor.js +21 -0
  224. package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.d.ts +29 -0
  225. package/internals/{computeAxisValue.js → plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js} +19 -27
  226. package/internals/plugins/featurePlugins/useChartCartesianAxis/createAxisFilterMapper.d.ts +18 -0
  227. package/internals/plugins/featurePlugins/useChartCartesianAxis/createAxisFilterMapper.js +61 -0
  228. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.d.ts +39 -0
  229. package/{context/ChartDataProvider/useDefaultizeAxis.js → internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.js} +3 -11
  230. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisExtremum.d.ts +6 -0
  231. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisExtremum.js +22 -0
  232. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +5 -0
  233. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +4 -0
  234. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.d.ts +4 -0
  235. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +68 -0
  236. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.selectors.d.ts +1372 -0
  237. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.selectors.js +87 -0
  238. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.ts +76 -0
  239. package/internals/plugins/featurePlugins/useChartCartesianAxis/zoom.types.d.ts +18 -0
  240. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +11 -11
  241. package/internals/plugins/featurePlugins/useChartZAxis/index.d.ts +3 -0
  242. package/internals/plugins/featurePlugins/useChartZAxis/index.js +2 -0
  243. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.d.ts +3 -0
  244. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.js +86 -0
  245. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.d.ts +45 -0
  246. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.js +3 -0
  247. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.types.d.ts +39 -0
  248. package/internals/plugins/featurePlugins/useChartZAxis/utils.d.ts +0 -0
  249. package/internals/plugins/featurePlugins/useChartZAxis/utils.js +0 -0
  250. package/internals/plugins/models/index.d.ts +1 -0
  251. package/internals/plugins/models/index.js +2 -1
  252. package/internals/plugins/models/plugin.d.ts +33 -3
  253. package/internals/plugins/models/seriesConfig/colorProcessor.types.d.ts +5 -0
  254. package/internals/plugins/models/seriesConfig/extremumGetter.types.d.ts +22 -0
  255. package/internals/plugins/models/seriesConfig/index.d.ts +4 -0
  256. package/internals/plugins/models/seriesConfig/index.js +4 -0
  257. package/internals/plugins/models/seriesConfig/seriesConfig.types.d.ts +14 -0
  258. package/internals/plugins/models/seriesConfig/seriesProcessor.types.d.ts +18 -0
  259. package/internals/store/extractPluginParamsFromProps.d.ts +7 -0
  260. package/internals/store/extractPluginParamsFromProps.js +28 -0
  261. package/internals/store/useChartModels.d.ts +7 -0
  262. package/internals/store/useChartModels.js +64 -0
  263. package/internals/store/useCharts.d.ts +6 -4
  264. package/internals/store/useCharts.js +14 -9
  265. package/internals/store/useCharts.types.d.ts +1 -1
  266. package/internals/store/useStore.d.ts +5 -1
  267. package/internals/store/useStore.js +1 -9
  268. package/models/layout.d.ts +2 -1
  269. package/models/seriesType/common.d.ts +9 -0
  270. package/models/seriesType/pie.d.ts +9 -0
  271. package/modern/BarChart/AnimatedBarElement.js +1 -0
  272. package/modern/BarChart/BarChart.js +26 -8
  273. package/modern/BarChart/BarLabel/BarLabelPlot.js +1 -1
  274. package/modern/BarChart/BarPlot.js +8 -9
  275. package/modern/BarChart/formatter.js +2 -1
  276. package/modern/BarChart/legend.js +1 -0
  277. package/modern/BarChart/plugin.js +1 -2
  278. package/modern/BarChart/useBarChartProps.js +16 -3
  279. package/modern/ChartContainer/ChartContainer.js +13 -7
  280. package/modern/ChartContainer/useChartContainerProps.js +7 -5
  281. package/modern/ChartsAxis/ChartsAxis.js +5 -3
  282. package/modern/ChartsGrid/ChartsGrid.js +9 -5
  283. package/modern/ChartsGrid/ChartsHorizontalGrid.js +4 -3
  284. package/modern/ChartsGrid/ChartsVerticalGrid.js +4 -3
  285. package/modern/ChartsLabel/ChartsLabel.js +3 -18
  286. package/modern/ChartsLabel/ChartsLabelGradient.js +28 -26
  287. package/modern/ChartsLabel/ChartsLabelMark.js +5 -2
  288. package/modern/ChartsLabel/index.js +6 -0
  289. package/modern/ChartsLabel/labelGradientClasses.js +3 -2
  290. package/modern/ChartsLabel/labelMarkClasses.js +3 -2
  291. package/modern/ChartsLegend/ChartsLegend.js +100 -109
  292. package/modern/ChartsLegend/ContinuousColorLegend.js +198 -321
  293. package/modern/ChartsLegend/PiecewiseColorLegend.js +201 -111
  294. package/modern/ChartsLegend/chartsLegendClasses.js +16 -2
  295. package/modern/ChartsLegend/continuousColorLegendClasses.js +23 -0
  296. package/modern/ChartsLegend/index.js +9 -3
  297. package/modern/ChartsLegend/onClickContextBuilder.js +7 -0
  298. package/modern/ChartsLegend/piecewiseColorDefaultLabelFormatter.js +9 -0
  299. package/modern/ChartsLegend/piecewiseColorLegend.types.js +1 -0
  300. package/modern/ChartsLegend/piecewiseColorLegendClasses.js +23 -0
  301. package/modern/ChartsLegend/useAxis.js +7 -6
  302. package/modern/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +7 -6
  303. package/modern/ChartsSurface/ChartsSurface.js +16 -27
  304. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +6 -3
  305. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +6 -3
  306. package/modern/ChartsTooltip/ChartsTooltipTable.js +0 -20
  307. package/modern/ChartsTooltip/useAxisTooltip.js +13 -9
  308. package/modern/ChartsTooltip/useItemTooltip.js +14 -10
  309. package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +16 -9
  310. package/modern/ChartsXAxis/ChartsXAxis.js +11 -8
  311. package/modern/ChartsYAxis/ChartsYAxis.js +8 -5
  312. package/modern/Gauge/Gauge.js +5 -1
  313. package/modern/Gauge/GaugeContainer.js +38 -38
  314. package/modern/LineChart/AnimatedArea.js +2 -1
  315. package/modern/LineChart/AnimatedLine.js +2 -1
  316. package/modern/LineChart/AppearingMask.js +2 -1
  317. package/modern/LineChart/AreaPlot.js +16 -15
  318. package/modern/LineChart/CircleMarkElement.js +1 -0
  319. package/modern/LineChart/LineChart.js +29 -11
  320. package/modern/LineChart/LineHighlightPlot.js +14 -11
  321. package/modern/LineChart/LinePlot.js +16 -15
  322. package/modern/LineChart/MarkElement.js +3 -1
  323. package/modern/LineChart/MarkPlot.js +14 -11
  324. package/modern/LineChart/formatter.js +3 -1
  325. package/modern/LineChart/legend.js +1 -0
  326. package/modern/LineChart/plugin.js +1 -2
  327. package/modern/LineChart/useLineChartProps.js +15 -2
  328. package/modern/PieChart/PieArc.js +3 -1
  329. package/modern/PieChart/PieArcLabel.js +13 -9
  330. package/modern/PieChart/PieArcLabelPlot.js +3 -2
  331. package/modern/PieChart/PieArcPlot.js +3 -2
  332. package/modern/PieChart/PieChart.js +51 -42
  333. package/modern/PieChart/dataTransform/transition.js +6 -6
  334. package/modern/PieChart/formatter.js +4 -1
  335. package/modern/PieChart/legend.js +1 -0
  336. package/modern/PieChart/plugin.js +1 -2
  337. package/modern/ScatterChart/Scatter.js +6 -4
  338. package/modern/ScatterChart/ScatterChart.js +28 -14
  339. package/modern/ScatterChart/ScatterPlot.js +11 -10
  340. package/modern/ScatterChart/extremums.js +3 -1
  341. package/modern/ScatterChart/formatter.js +3 -1
  342. package/modern/ScatterChart/legend.js +1 -0
  343. package/modern/ScatterChart/plugin.js +1 -2
  344. package/modern/ScatterChart/useScatterChartProps.js +16 -6
  345. package/modern/SparkLineChart/SparkLineChart.js +12 -6
  346. package/modern/constants/index.js +2 -1
  347. package/modern/context/ChartDataProvider/ChartDataProvider.js +22 -184
  348. package/modern/context/ChartDataProvider/useChartDataProviderProps.js +33 -47
  349. package/modern/context/ChartProvider/ChartProvider.js +22 -2
  350. package/modern/context/PolarProvider/PolarProvider.js +59 -47
  351. package/modern/context/PolarProvider/getAxisExtremum.js +48 -20
  352. package/modern/context/PolarProvider/usePolarContext.js +9 -8
  353. package/modern/context/index.js +0 -1
  354. package/modern/hooks/index.js +4 -1
  355. package/modern/hooks/useAxis.js +32 -6
  356. package/modern/hooks/useAxisEvents.js +12 -8
  357. package/modern/hooks/useChartGradientId.js +47 -0
  358. package/modern/hooks/useColorScale.js +5 -5
  359. package/modern/hooks/useDrawingArea.js +5 -20
  360. package/{ChartsLegend/utils.js → modern/hooks/useLegend.js} +20 -1
  361. package/modern/hooks/useSeries.js +5 -10
  362. package/modern/hooks/useZAxis.js +25 -6
  363. package/modern/index.js +2 -1
  364. package/modern/internals/calculateMargins.js +25 -0
  365. package/modern/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +65 -29
  366. package/modern/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +6 -6
  367. package/modern/internals/components/ChartsAxesGradients/ChartsContinuousGradientObjectBound.js +61 -0
  368. package/modern/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +6 -0
  369. package/modern/internals/components/ChartsWrapper/ChartsWrapper.js +66 -0
  370. package/modern/internals/components/ChartsWrapper/index.js +1 -0
  371. package/modern/internals/consumeSlots.js +101 -0
  372. package/modern/internals/consumeThemeProps.js +18 -27
  373. package/modern/internals/index.js +17 -9
  374. package/modern/internals/plugins/allPlugins.js +5 -2
  375. package/modern/internals/plugins/corePlugins/corePlugins.js +3 -1
  376. package/modern/internals/plugins/corePlugins/useChartDimensions/index.js +2 -0
  377. package/modern/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.js +175 -0
  378. package/modern/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.js +25 -0
  379. package/modern/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.js +1 -0
  380. package/modern/internals/plugins/corePlugins/useChartId/index.js +2 -1
  381. package/modern/internals/plugins/corePlugins/useChartId/useChartId.js +1 -1
  382. package/modern/internals/plugins/corePlugins/useChartSeries/index.js +2 -0
  383. package/{context/SeriesProvider → modern/internals/plugins/corePlugins/useChartSeries}/processSeries.js +9 -6
  384. package/modern/internals/plugins/corePlugins/useChartSeries/useChartSeries.js +72 -0
  385. package/modern/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.js +4 -0
  386. package/modern/internals/plugins/corePlugins/useChartSeries/useChartSeries.types.js +1 -0
  387. package/modern/internals/plugins/corePlugins/useChartSeries/useColorProcessor.js +21 -0
  388. package/modern/internals/{computeAxisValue.js → plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js} +19 -27
  389. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/createAxisFilterMapper.js +61 -0
  390. package/modern/{context/ChartDataProvider/useDefaultizeAxis.js → internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.js} +3 -11
  391. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisExtremum.js +22 -0
  392. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +4 -0
  393. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +68 -0
  394. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.selectors.js +87 -0
  395. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.js +1 -0
  396. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/zoom.types.js +1 -0
  397. package/modern/internals/plugins/featurePlugins/useChartZAxis/index.js +2 -0
  398. package/modern/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.js +86 -0
  399. package/modern/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.js +3 -0
  400. package/modern/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.types.js +1 -0
  401. package/modern/internals/plugins/featurePlugins/useChartZAxis/utils.js +0 -0
  402. package/modern/internals/plugins/models/index.js +2 -1
  403. package/modern/internals/plugins/models/seriesConfig/colorProcessor.types.js +1 -0
  404. package/modern/internals/plugins/models/seriesConfig/extremumGetter.types.js +1 -0
  405. package/modern/internals/plugins/models/seriesConfig/index.js +4 -0
  406. package/modern/internals/plugins/models/seriesConfig/seriesConfig.types.js +1 -0
  407. package/modern/internals/plugins/models/seriesConfig/seriesProcessor.types.js +1 -0
  408. package/modern/internals/store/extractPluginParamsFromProps.js +28 -0
  409. package/modern/internals/store/useChartModels.js +64 -0
  410. package/modern/internals/store/useCharts.js +14 -9
  411. package/modern/internals/store/useStore.js +1 -9
  412. package/node/BarChart/AnimatedBarElement.js +1 -0
  413. package/node/BarChart/BarChart.js +26 -8
  414. package/node/BarChart/BarLabel/BarLabelPlot.js +1 -1
  415. package/node/BarChart/BarPlot.js +6 -6
  416. package/node/BarChart/formatter.js +2 -1
  417. package/node/BarChart/legend.js +1 -0
  418. package/node/BarChart/plugin.js +1 -2
  419. package/node/BarChart/useBarChartProps.js +15 -3
  420. package/node/ChartContainer/ChartContainer.js +13 -7
  421. package/node/ChartContainer/useChartContainerProps.js +7 -5
  422. package/node/ChartsAxis/ChartsAxis.js +5 -3
  423. package/node/ChartsGrid/ChartsGrid.js +9 -5
  424. package/node/ChartsGrid/ChartsHorizontalGrid.js +4 -3
  425. package/node/ChartsGrid/ChartsVerticalGrid.js +4 -3
  426. package/node/ChartsLabel/ChartsLabel.js +3 -18
  427. package/node/ChartsLabel/ChartsLabelGradient.js +28 -26
  428. package/node/ChartsLabel/ChartsLabelMark.js +5 -2
  429. package/node/ChartsLabel/index.js +26 -0
  430. package/node/ChartsLabel/labelGradientClasses.js +3 -2
  431. package/node/ChartsLabel/labelMarkClasses.js +3 -2
  432. package/node/ChartsLegend/ChartsLegend.js +99 -108
  433. package/node/ChartsLegend/ContinuousColorLegend.js +199 -322
  434. package/node/ChartsLegend/PiecewiseColorLegend.js +201 -111
  435. package/node/ChartsLegend/chartsLegendClasses.js +17 -3
  436. package/node/ChartsLegend/continuousColorLegendClasses.js +31 -0
  437. package/node/ChartsLegend/index.js +80 -16
  438. package/node/ChartsLegend/onClickContextBuilder.js +14 -0
  439. package/node/ChartsLegend/piecewiseColorDefaultLabelFormatter.js +15 -0
  440. package/node/ChartsLegend/piecewiseColorLegendClasses.js +31 -0
  441. package/node/ChartsLegend/useAxis.js +6 -4
  442. package/node/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +6 -5
  443. package/node/ChartsSurface/ChartsSurface.js +17 -28
  444. package/node/ChartsTooltip/ChartsAxisTooltipContent.js +5 -2
  445. package/node/ChartsTooltip/ChartsItemTooltipContent.js +5 -2
  446. package/node/ChartsTooltip/ChartsTooltipTable.js +1 -21
  447. package/node/ChartsTooltip/useAxisTooltip.js +11 -7
  448. package/node/ChartsTooltip/useItemTooltip.js +13 -9
  449. package/node/ChartsVoronoiHandler/ChartsVoronoiHandler.js +19 -12
  450. package/node/ChartsXAxis/ChartsXAxis.js +11 -8
  451. package/node/ChartsYAxis/ChartsYAxis.js +8 -5
  452. package/node/Gauge/Gauge.js +5 -1
  453. package/node/Gauge/GaugeContainer.js +38 -38
  454. package/node/LineChart/AnimatedArea.js +2 -1
  455. package/node/LineChart/AnimatedLine.js +2 -1
  456. package/node/LineChart/AppearingMask.js +2 -1
  457. package/node/LineChart/AreaPlot.js +16 -15
  458. package/node/LineChart/CircleMarkElement.js +1 -0
  459. package/node/LineChart/LineChart.js +29 -11
  460. package/node/LineChart/LineHighlightPlot.js +14 -11
  461. package/node/LineChart/LinePlot.js +16 -15
  462. package/node/LineChart/MarkElement.js +3 -1
  463. package/node/LineChart/MarkPlot.js +14 -11
  464. package/node/LineChart/formatter.js +3 -1
  465. package/node/LineChart/legend.js +1 -0
  466. package/node/LineChart/plugin.js +1 -2
  467. package/node/LineChart/useLineChartProps.js +14 -2
  468. package/node/PieChart/PieArc.js +3 -1
  469. package/node/PieChart/PieArcLabel.js +13 -9
  470. package/node/PieChart/PieArcLabelPlot.js +2 -1
  471. package/node/PieChart/PieArcPlot.js +2 -1
  472. package/node/PieChart/PieChart.js +51 -42
  473. package/node/PieChart/dataTransform/transition.js +9 -7
  474. package/node/PieChart/formatter.js +4 -1
  475. package/node/PieChart/legend.js +1 -0
  476. package/node/PieChart/plugin.js +1 -2
  477. package/node/ScatterChart/Scatter.js +6 -4
  478. package/node/ScatterChart/ScatterChart.js +28 -14
  479. package/node/ScatterChart/ScatterPlot.js +10 -9
  480. package/node/ScatterChart/extremums.js +3 -1
  481. package/node/ScatterChart/formatter.js +3 -1
  482. package/node/ScatterChart/legend.js +1 -0
  483. package/node/ScatterChart/plugin.js +1 -2
  484. package/node/ScatterChart/useScatterChartProps.js +15 -6
  485. package/node/SparkLineChart/SparkLineChart.js +11 -5
  486. package/node/constants/index.js +3 -2
  487. package/node/context/ChartDataProvider/ChartDataProvider.js +22 -184
  488. package/node/context/ChartDataProvider/useChartDataProviderProps.js +34 -47
  489. package/node/context/ChartProvider/ChartProvider.js +23 -2
  490. package/node/context/PolarProvider/PolarProvider.js +59 -51
  491. package/node/context/PolarProvider/getAxisExtremum.js +49 -27
  492. package/node/context/PolarProvider/usePolarContext.js +9 -14
  493. package/node/context/index.js +0 -8
  494. package/node/hooks/index.js +41 -2
  495. package/node/hooks/useAxis.js +34 -6
  496. package/node/hooks/useAxisEvents.js +12 -8
  497. package/node/hooks/useChartGradientId.js +56 -0
  498. package/node/hooks/useColorScale.js +4 -4
  499. package/node/hooks/useDrawingArea.js +5 -21
  500. package/node/{ChartsLegend/utils.js → hooks/useLegend.js} +19 -1
  501. package/node/hooks/useSeries.js +5 -9
  502. package/node/hooks/useZAxis.js +27 -9
  503. package/node/index.js +12 -1
  504. package/node/internals/calculateMargins.js +33 -0
  505. package/node/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +64 -29
  506. package/node/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +6 -6
  507. package/node/internals/components/ChartsAxesGradients/ChartsContinuousGradientObjectBound.js +69 -0
  508. package/node/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +6 -0
  509. package/node/internals/components/ChartsWrapper/ChartsWrapper.js +72 -0
  510. package/node/internals/components/ChartsWrapper/index.js +16 -0
  511. package/node/internals/consumeSlots.js +109 -0
  512. package/node/internals/consumeThemeProps.js +18 -27
  513. package/node/internals/index.js +134 -62
  514. package/node/internals/plugins/allPlugins.js +4 -2
  515. package/node/internals/plugins/corePlugins/corePlugins.js +3 -1
  516. package/node/internals/plugins/corePlugins/useChartDimensions/index.js +27 -0
  517. package/node/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.js +183 -0
  518. package/node/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.js +32 -0
  519. package/node/internals/plugins/corePlugins/useChartId/index.js +16 -1
  520. package/node/internals/plugins/corePlugins/useChartId/useChartId.js +1 -1
  521. package/node/internals/plugins/corePlugins/useChartSeries/index.js +27 -0
  522. package/node/{context/SeriesProvider → internals/plugins/corePlugins/useChartSeries}/processSeries.js +9 -6
  523. package/node/internals/plugins/corePlugins/useChartSeries/useChartSeries.js +80 -0
  524. package/node/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.js +11 -0
  525. package/node/internals/plugins/corePlugins/useChartSeries/useColorProcessor.js +27 -0
  526. package/node/internals/{computeAxisValue.js → plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js} +19 -27
  527. package/node/internals/plugins/featurePlugins/useChartCartesianAxis/createAxisFilterMapper.js +69 -0
  528. package/node/{context/ChartDataProvider/useDefaultizeAxis.js → internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.js} +4 -13
  529. package/node/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisExtremum.js +29 -0
  530. package/node/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +47 -0
  531. package/node/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +76 -0
  532. package/node/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.selectors.js +96 -0
  533. package/node/internals/plugins/featurePlugins/useChartZAxis/index.js +27 -0
  534. package/node/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.js +94 -0
  535. package/node/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.js +9 -0
  536. package/node/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.types.js +5 -0
  537. package/node/internals/plugins/featurePlugins/useChartZAxis/utils.js +1 -0
  538. package/node/internals/plugins/models/index.js +11 -0
  539. package/node/internals/plugins/models/seriesConfig/colorProcessor.types.js +5 -0
  540. package/node/internals/plugins/models/seriesConfig/extremumGetter.types.js +5 -0
  541. package/node/internals/plugins/models/seriesConfig/index.js +49 -0
  542. package/node/internals/plugins/models/seriesConfig/seriesConfig.types.js +5 -0
  543. package/node/internals/plugins/models/seriesConfig/seriesProcessor.types.js +5 -0
  544. package/node/internals/store/extractPluginParamsFromProps.js +36 -0
  545. package/node/internals/store/useChartModels.js +73 -0
  546. package/node/internals/store/useCharts.js +14 -9
  547. package/node/internals/store/useStore.js +1 -9
  548. package/package.json +4 -4
  549. package/ChartsLegend/ChartsLegendItem.d.ts +0 -26
  550. package/ChartsLegend/ChartsLegendItem.js +0 -65
  551. package/ChartsLegend/DefaultChartsLegend.d.ts +0 -25
  552. package/ChartsLegend/DefaultChartsLegend.js +0 -112
  553. package/ChartsLegend/LegendPerItem.d.ts +0 -65
  554. package/ChartsLegend/LegendPerItem.js +0 -129
  555. package/ChartsLegend/legendItemsPlacement.d.ts +0 -3
  556. package/ChartsLegend/legendItemsPlacement.js +0 -72
  557. package/ChartsLegend/utils.d.ts +0 -2
  558. package/context/CartesianProvider/Cartesian.types.d.ts +0 -59
  559. package/context/CartesianProvider/CartesianContext.d.ts +0 -4
  560. package/context/CartesianProvider/CartesianContext.js +0 -13
  561. package/context/CartesianProvider/CartesianProvider.d.ts +0 -4
  562. package/context/CartesianProvider/CartesianProvider.js +0 -49
  563. package/context/CartesianProvider/defaultizeAxis.d.ts +0 -38
  564. package/context/CartesianProvider/defaultizeAxis.js +0 -13
  565. package/context/CartesianProvider/getAxisExtremum.d.ts +0 -5
  566. package/context/CartesianProvider/getAxisExtremum.js +0 -21
  567. package/context/CartesianProvider/index.d.ts +0 -4
  568. package/context/CartesianProvider/index.js +0 -4
  569. package/context/CartesianProvider/useCartesianContext.d.ts +0 -2
  570. package/context/CartesianProvider/useCartesianContext.js +0 -10
  571. package/context/ChartDataProvider/useDefaultizeAxis.d.ts +0 -39
  572. package/context/DrawingAreaProvider/DrawingArea.types.d.ts +0 -51
  573. package/context/DrawingAreaProvider/DrawingAreaContext.d.ts +0 -3
  574. package/context/DrawingAreaProvider/DrawingAreaContext.js +0 -15
  575. package/context/DrawingAreaProvider/DrawingAreaProvider.d.ts +0 -3
  576. package/context/DrawingAreaProvider/DrawingAreaProvider.js +0 -48
  577. package/context/DrawingAreaProvider/index.d.ts +0 -3
  578. package/context/DrawingAreaProvider/index.js +0 -3
  579. package/context/PluginProvider/ColorProcessor.types.d.ts +0 -8
  580. package/context/PluginProvider/ExtremumGetter.types.d.ts +0 -25
  581. package/context/PluginProvider/Plugin.types.d.ts +0 -29
  582. package/context/PluginProvider/PluginContext.d.ts +0 -4
  583. package/context/PluginProvider/PluginContext.js +0 -15
  584. package/context/PluginProvider/PluginProvider.d.ts +0 -4
  585. package/context/PluginProvider/PluginProvider.js +0 -21
  586. package/context/PluginProvider/SeriesFormatter.types.d.ts +0 -21
  587. package/context/PluginProvider/index.d.ts +0 -12
  588. package/context/PluginProvider/index.js +0 -12
  589. package/context/PluginProvider/mergePlugins.d.ts +0 -46
  590. package/context/PluginProvider/mergePlugins.js +0 -40
  591. package/context/PluginProvider/useColorProcessor.d.ts +0 -4
  592. package/context/PluginProvider/useColorProcessor.js +0 -17
  593. package/context/PluginProvider/useRadiusExtremumGetter.d.ts +0 -4
  594. package/context/PluginProvider/useRadiusExtremumGetter.js +0 -17
  595. package/context/PluginProvider/useRotationExtremumGetter.d.ts +0 -4
  596. package/context/PluginProvider/useRotationExtremumGetter.js +0 -17
  597. package/context/PluginProvider/useSeriesFormatter.d.ts +0 -4
  598. package/context/PluginProvider/useSeriesFormatter.js +0 -17
  599. package/context/PluginProvider/useXExtremumGetter.d.ts +0 -4
  600. package/context/PluginProvider/useXExtremumGetter.js +0 -15
  601. package/context/PluginProvider/useYExtremumGetter.d.ts +0 -4
  602. package/context/PluginProvider/useYExtremumGetter.js +0 -15
  603. package/context/SeriesProvider/Series.types.d.ts +0 -26
  604. package/context/SeriesProvider/SeriesContext.d.ts +0 -4
  605. package/context/SeriesProvider/SeriesContext.js +0 -8
  606. package/context/SeriesProvider/SeriesProvider.d.ts +0 -5
  607. package/context/SeriesProvider/SeriesProvider.js +0 -33
  608. package/context/SeriesProvider/index.d.ts +0 -12
  609. package/context/SeriesProvider/index.js +0 -8
  610. package/context/SeriesProvider/processSeries.d.ts +0 -18
  611. package/context/SizeProvider/Size.types.d.ts +0 -30
  612. package/context/SizeProvider/SizeContext.d.ts +0 -4
  613. package/context/SizeProvider/SizeContext.js +0 -15
  614. package/context/SizeProvider/SizeProvider.d.ts +0 -11
  615. package/context/SizeProvider/SizeProvider.js +0 -26
  616. package/context/SizeProvider/index.d.ts +0 -4
  617. package/context/SizeProvider/index.js +0 -4
  618. package/context/SizeProvider/useChartContainerDimensions.d.ts +0 -9
  619. package/context/SizeProvider/useChartContainerDimensions.js +0 -108
  620. package/context/SizeProvider/useSize.d.ts +0 -5
  621. package/context/SizeProvider/useSize.js +0 -13
  622. package/context/ZAxisContextProvider.d.ts +0 -33
  623. package/context/ZAxisContextProvider.js +0 -96
  624. package/internals/computeAxisValue.d.ts +0 -38
  625. package/modern/ChartsLegend/ChartsLegendItem.js +0 -65
  626. package/modern/ChartsLegend/DefaultChartsLegend.js +0 -112
  627. package/modern/ChartsLegend/LegendPerItem.js +0 -129
  628. package/modern/ChartsLegend/legendItemsPlacement.js +0 -72
  629. package/modern/context/CartesianProvider/CartesianContext.js +0 -13
  630. package/modern/context/CartesianProvider/CartesianProvider.js +0 -49
  631. package/modern/context/CartesianProvider/defaultizeAxis.js +0 -13
  632. package/modern/context/CartesianProvider/getAxisExtremum.js +0 -21
  633. package/modern/context/CartesianProvider/index.js +0 -4
  634. package/modern/context/CartesianProvider/useCartesianContext.js +0 -10
  635. package/modern/context/DrawingAreaProvider/DrawingAreaContext.js +0 -15
  636. package/modern/context/DrawingAreaProvider/DrawingAreaProvider.js +0 -48
  637. package/modern/context/DrawingAreaProvider/index.js +0 -3
  638. package/modern/context/PluginProvider/PluginContext.js +0 -15
  639. package/modern/context/PluginProvider/PluginProvider.js +0 -21
  640. package/modern/context/PluginProvider/index.js +0 -12
  641. package/modern/context/PluginProvider/mergePlugins.js +0 -40
  642. package/modern/context/PluginProvider/useColorProcessor.js +0 -17
  643. package/modern/context/PluginProvider/useRadiusExtremumGetter.js +0 -17
  644. package/modern/context/PluginProvider/useRotationExtremumGetter.js +0 -17
  645. package/modern/context/PluginProvider/useSeriesFormatter.js +0 -17
  646. package/modern/context/PluginProvider/useXExtremumGetter.js +0 -15
  647. package/modern/context/PluginProvider/useYExtremumGetter.js +0 -15
  648. package/modern/context/SeriesProvider/SeriesContext.js +0 -8
  649. package/modern/context/SeriesProvider/SeriesProvider.js +0 -33
  650. package/modern/context/SeriesProvider/index.js +0 -8
  651. package/modern/context/SizeProvider/SizeContext.js +0 -15
  652. package/modern/context/SizeProvider/SizeProvider.js +0 -26
  653. package/modern/context/SizeProvider/index.js +0 -4
  654. package/modern/context/SizeProvider/useChartContainerDimensions.js +0 -108
  655. package/modern/context/SizeProvider/useSize.js +0 -13
  656. package/modern/context/ZAxisContextProvider.js +0 -96
  657. package/node/ChartsLegend/ChartsLegendItem.js +0 -72
  658. package/node/ChartsLegend/DefaultChartsLegend.js +0 -118
  659. package/node/ChartsLegend/LegendPerItem.js +0 -137
  660. package/node/ChartsLegend/legendItemsPlacement.js +0 -79
  661. package/node/context/CartesianProvider/CartesianContext.js +0 -20
  662. package/node/context/CartesianProvider/CartesianProvider.js +0 -54
  663. package/node/context/CartesianProvider/defaultizeAxis.js +0 -21
  664. package/node/context/CartesianProvider/getAxisExtremum.js +0 -28
  665. package/node/context/CartesianProvider/index.js +0 -49
  666. package/node/context/CartesianProvider/useCartesianContext.js +0 -17
  667. package/node/context/DrawingAreaProvider/DrawingAreaContext.js +0 -21
  668. package/node/context/DrawingAreaProvider/DrawingAreaProvider.js +0 -55
  669. package/node/context/DrawingAreaProvider/index.js +0 -38
  670. package/node/context/PluginProvider/PluginContext.js +0 -22
  671. package/node/context/PluginProvider/PluginProvider.js +0 -26
  672. package/node/context/PluginProvider/index.js +0 -137
  673. package/node/context/PluginProvider/mergePlugins.js +0 -47
  674. package/node/context/PluginProvider/useColorProcessor.js +0 -23
  675. package/node/context/PluginProvider/useRadiusExtremumGetter.js +0 -23
  676. package/node/context/PluginProvider/useRotationExtremumGetter.js +0 -23
  677. package/node/context/PluginProvider/useSeriesFormatter.js +0 -23
  678. package/node/context/PluginProvider/useXExtremumGetter.js +0 -22
  679. package/node/context/PluginProvider/useYExtremumGetter.js +0 -22
  680. package/node/context/SeriesProvider/SeriesContext.js +0 -15
  681. package/node/context/SeriesProvider/SeriesProvider.js +0 -38
  682. package/node/context/SeriesProvider/index.js +0 -49
  683. package/node/context/SizeProvider/SizeContext.js +0 -22
  684. package/node/context/SizeProvider/SizeProvider.js +0 -29
  685. package/node/context/SizeProvider/index.js +0 -49
  686. package/node/context/SizeProvider/useChartContainerDimensions.js +0 -116
  687. package/node/context/SizeProvider/useSize.js +0 -20
  688. package/node/context/ZAxisContextProvider.js +0 -103
  689. /package/{context/CartesianProvider/Cartesian.types.js → ChartsLegend/colorLegend.types.js} +0 -0
  690. /package/{context/DrawingAreaProvider/DrawingArea.types.js → ChartsLegend/direction.js} +0 -0
  691. /package/{context/PluginProvider/ColorProcessor.types.js → ChartsLegend/legendContext.types.js} +0 -0
  692. /package/{context/PluginProvider/ExtremumGetter.types.js → ChartsLegend/piecewiseColorLegend.types.js} +0 -0
  693. /package/{context/PluginProvider/Plugin.types.js → internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.js} +0 -0
  694. /package/{context/PluginProvider/SeriesFormatter.types.js → internals/plugins/corePlugins/useChartSeries/useChartSeries.types.js} +0 -0
  695. /package/{context/SeriesProvider/Series.types.js → internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.js} +0 -0
  696. /package/{context/CartesianProvider → internals/plugins/featurePlugins/useChartCartesianAxis}/zoom.d.ts +0 -0
  697. /package/{context/CartesianProvider → internals/plugins/featurePlugins/useChartCartesianAxis}/zoom.js +0 -0
  698. /package/{context/SizeProvider/Size.types.js → internals/plugins/featurePlugins/useChartCartesianAxis/zoom.types.js} +0 -0
  699. /package/{modern/context/CartesianProvider/Cartesian.types.js → internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.types.js} +0 -0
  700. /package/{modern/context/DrawingAreaProvider/DrawingArea.types.js → internals/plugins/models/seriesConfig/colorProcessor.types.js} +0 -0
  701. /package/{modern/context/PluginProvider/ColorProcessor.types.js → internals/plugins/models/seriesConfig/extremumGetter.types.js} +0 -0
  702. /package/{modern/context/PluginProvider/ExtremumGetter.types.js → internals/plugins/models/seriesConfig/seriesConfig.types.js} +0 -0
  703. /package/{modern/context/PluginProvider/Plugin.types.js → internals/plugins/models/seriesConfig/seriesProcessor.types.js} +0 -0
  704. /package/modern/{context/PluginProvider/SeriesFormatter.types.js → ChartsLegend/colorLegend.types.js} +0 -0
  705. /package/modern/{context/SeriesProvider/Series.types.js → ChartsLegend/direction.js} +0 -0
  706. /package/modern/{context/SizeProvider/Size.types.js → ChartsLegend/legendContext.types.js} +0 -0
  707. /package/modern/{context/CartesianProvider → internals/plugins/featurePlugins/useChartCartesianAxis}/zoom.js +0 -0
  708. /package/node/{context/CartesianProvider/Cartesian.types.js → ChartsLegend/colorLegend.types.js} +0 -0
  709. /package/node/{context/DrawingAreaProvider/DrawingArea.types.js → ChartsLegend/direction.js} +0 -0
  710. /package/node/{context/PluginProvider/ColorProcessor.types.js → ChartsLegend/legendContext.types.js} +0 -0
  711. /package/node/{context/PluginProvider/ExtremumGetter.types.js → ChartsLegend/piecewiseColorLegend.types.js} +0 -0
  712. /package/node/{context/PluginProvider/Plugin.types.js → internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.js} +0 -0
  713. /package/node/{context/PluginProvider/SeriesFormatter.types.js → internals/plugins/corePlugins/useChartSeries/useChartSeries.types.js} +0 -0
  714. /package/node/{context/SeriesProvider/Series.types.js → internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.js} +0 -0
  715. /package/node/{context/CartesianProvider → internals/plugins/featurePlugins/useChartCartesianAxis}/zoom.js +0 -0
  716. /package/node/{context/SizeProvider/Size.types.js → internals/plugins/featurePlugins/useChartCartesianAxis/zoom.types.js} +0 -0
@@ -0,0 +1,18 @@
1
+ import type { ChartSeriesDefaultized, ChartSeriesType, ChartsSeriesConfig, DatasetType } from '../../../../models/seriesType/config';
2
+ import type { SeriesId } from '../../../../models/seriesType/common';
3
+ import { StackingGroupsType } from '../../../stackSeries';
4
+ import type { LegendItemParams } from '../../../../ChartsLegend';
5
+ export type SeriesProcessorParams<TSeriesType extends ChartSeriesType> = {
6
+ series: Record<SeriesId, ChartsSeriesConfig[TSeriesType]['seriesInput']>;
7
+ seriesOrder: SeriesId[];
8
+ };
9
+ export type SeriesProcessorResult<TSeriesType extends ChartSeriesType> = {
10
+ series: Record<SeriesId, ChartSeriesDefaultized<TSeriesType>>;
11
+ seriesOrder: SeriesId[];
12
+ } & (ChartsSeriesConfig[TSeriesType] extends {
13
+ canBeStacked: true;
14
+ } ? {
15
+ stackingGroups: StackingGroupsType;
16
+ } : {});
17
+ export type SeriesProcessor<TSeriesType extends ChartSeriesType> = (params: SeriesProcessorParams<TSeriesType>, dataset?: DatasetType) => SeriesProcessorResult<TSeriesType>;
18
+ export type LegendGetter<T extends ChartSeriesType> = (series: SeriesProcessorResult<T>) => LegendItemParams[];
@@ -0,0 +1,7 @@
1
+ import { ChartCorePluginSignatures } from '../plugins/corePlugins';
2
+ import { ChartPluginSignature, ConvertSignaturesIntoPlugins, MergeSignaturesProperty } from '../plugins/models';
3
+ import { UseChartBaseProps } from './useCharts.types';
4
+ export declare const extractPluginParamsFromProps: <TSignatures extends readonly ChartPluginSignature<any>[], TProps extends Partial<UseChartBaseProps<TSignatures>>>({ props: { apiRef, ...props }, plugins, }: {
5
+ props: TProps;
6
+ plugins: ConvertSignaturesIntoPlugins<readonly [...ChartCorePluginSignatures, ...TSignatures]>;
7
+ }) => MergeSignaturesProperty<TSignatures, "defaultizedParams">;
@@ -0,0 +1,28 @@
1
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
+ const _excluded = ["apiRef"];
3
+ export const extractPluginParamsFromProps = _ref => {
4
+ let {
5
+ plugins
6
+ } = _ref,
7
+ props = _objectWithoutPropertiesLoose(_ref.props, _excluded);
8
+ const paramsLookup = {};
9
+ plugins.forEach(plugin => {
10
+ Object.assign(paramsLookup, plugin.params);
11
+ });
12
+ const pluginParams = {};
13
+ Object.keys(props).forEach(propName => {
14
+ const prop = props[propName];
15
+ if (paramsLookup[propName]) {
16
+ pluginParams[propName] = prop;
17
+ }
18
+ });
19
+ const defaultizedPluginParams = plugins.reduce((acc, plugin) => {
20
+ if (plugin.getDefaultizedParams) {
21
+ return plugin.getDefaultizedParams({
22
+ params: acc
23
+ });
24
+ }
25
+ return acc;
26
+ }, pluginParams);
27
+ return defaultizedPluginParams;
28
+ };
@@ -0,0 +1,7 @@
1
+ import { ChartAnyPluginSignature, ConvertSignaturesIntoPlugins, MergeSignaturesProperty } from '../plugins/models';
2
+ import { ChartCorePluginSignatures } from '../plugins/corePlugins';
3
+ /**
4
+ * Implements the same behavior as `useControlled` but for several models.
5
+ * The controlled models are never stored in the state, and the state is only updated if the model is not controlled.
6
+ */
7
+ export declare const useChartModels: <TSignatures extends readonly ChartAnyPluginSignature[]>(plugins: ConvertSignaturesIntoPlugins<readonly [...ChartCorePluginSignatures, ...TSignatures]>, props: MergeSignaturesProperty<TSignatures, "defaultizedParams">) => MergeSignaturesProperty<TSignatures, "models">;
@@ -0,0 +1,64 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import * as React from 'react';
3
+ /**
4
+ * Implements the same behavior as `useControlled` but for several models.
5
+ * The controlled models are never stored in the state, and the state is only updated if the model is not controlled.
6
+ */
7
+ export const useChartModels = (plugins, props) => {
8
+ const modelsRef = React.useRef({});
9
+ const [modelsState, setModelsState] = React.useState(() => {
10
+ const initialState = {};
11
+ plugins.forEach(plugin => {
12
+ if (plugin.models) {
13
+ Object.entries(plugin.models).forEach(([modelName, modelInitializer]) => {
14
+ modelsRef.current[modelName] = {
15
+ isControlled: props[modelName] !== undefined,
16
+ getDefaultValue: modelInitializer.getDefaultValue
17
+ };
18
+ initialState[modelName] = modelInitializer.getDefaultValue(props);
19
+ });
20
+ }
21
+ });
22
+ return initialState;
23
+ });
24
+ const models = Object.fromEntries(Object.entries(modelsRef.current).map(([modelName, model]) => {
25
+ const value = props[modelName] ?? modelsState[modelName];
26
+ return [modelName, {
27
+ value,
28
+ setControlledValue: newValue => {
29
+ if (!model.isControlled) {
30
+ setModelsState(prevState => _extends({}, prevState, {
31
+ [modelName]: typeof newValue === 'function' ? newValue(value) : newValue
32
+ }));
33
+ }
34
+ },
35
+ isControlled: modelsRef.current[modelName].isControlled
36
+ }];
37
+ }));
38
+
39
+ // We know that `modelsRef` do not vary across renders.
40
+ if (process.env.NODE_ENV !== 'production') {
41
+ Object.entries(modelsRef.current).forEach(([modelName, model]) => {
42
+ const controlled = props[modelName];
43
+ const newDefaultValue = model.getDefaultValue(props);
44
+
45
+ /* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps, react-compiler/react-compiler */
46
+ React.useEffect(() => {
47
+ if (model.isControlled !== (controlled !== undefined)) {
48
+ console.error([`MUI X: A component is changing the ${model.isControlled ? '' : 'un'}controlled ${modelName} state of Chart to be ${model.isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${modelName} ` + 'element for the lifetime of the component.', "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", 'More info: https://fb.me/react-controlled-components'].join('\n'));
49
+ }
50
+ }, [controlled]);
51
+ const {
52
+ current: defaultValue
53
+ } = React.useRef(newDefaultValue);
54
+ React.useEffect(() => {
55
+ if (!model.isControlled && defaultValue !== newDefaultValue) {
56
+ console.error([`MUI X: A component is changing the default ${modelName} state of an uncontrolled Chart after being initialized. ` + `To suppress this warning opt to use a controlled Chart.`].join('\n'));
57
+ }
58
+ }, [JSON.stringify(newDefaultValue)]);
59
+ });
60
+ }
61
+ /* eslint-enable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */
62
+
63
+ return models;
64
+ };
@@ -3,12 +3,14 @@ import { ChartStore } from '../plugins/utils/ChartStore';
3
3
  import { ChartAnyPluginSignature, ChartInstance, ChartPublicAPI, ConvertSignaturesIntoPlugins } from '../plugins/models';
4
4
  import { UseChartBaseProps } from './useCharts.types';
5
5
  import { UseChartInteractionState } from '../plugins/featurePlugins/useChartInteraction/useChartInteraction.types';
6
- export declare function useChartApiInitialization<T>(inputApiRef: React.MutableRefObject<T | undefined> | undefined): T;
7
- export declare function useCharts<TSignatures extends readonly ChartAnyPluginSignature[], TProps extends Partial<UseChartBaseProps<TSignatures>>>(inPlugins: ConvertSignaturesIntoPlugins<TSignatures>, props: TProps): {
6
+ import { ChartSeriesType } from '../../models/seriesType/config';
7
+ import { ChartSeriesConfig } from '../plugins/models/seriesConfig';
8
+ export declare function useChartApiInitialization<T>(inputApiRef: React.RefObject<T | undefined> | undefined): T;
9
+ export declare function useCharts<TSeriesType extends ChartSeriesType, TSignatures extends readonly ChartAnyPluginSignature[]>(inPlugins: ConvertSignaturesIntoPlugins<TSignatures>, props: Partial<UseChartBaseProps<TSignatures>>, seriesConfig: ChartSeriesConfig<TSeriesType>): {
8
10
  contextValue: {
9
- store: ChartStore<readonly [import("../plugins/corePlugins/useChartId").UseChartIdSignature, ...TSignatures]> & UseChartInteractionState;
11
+ store: ChartStore<readonly [import("..").UseChartIdSignature, import("..").UseChartDimensionsSignature, import("..").UseChartSeriesSignature, ...TSignatures]> & UseChartInteractionState;
10
12
  publicAPI: ChartPublicAPI<TSignatures>;
11
13
  instance: ChartInstance<TSignatures>;
12
- svgRef: React.RefObject<SVGSVGElement>;
14
+ svgRef: React.RefObject<SVGSVGElement | null>;
13
15
  };
14
16
  };
@@ -2,6 +2,8 @@ import * as React from 'react';
2
2
  import useId from '@mui/utils/useId';
3
3
  import { ChartStore } from "../plugins/utils/ChartStore.js";
4
4
  import { CHART_CORE_PLUGINS } from "../plugins/corePlugins/index.js";
5
+ import { extractPluginParamsFromProps } from "./extractPluginParamsFromProps.js";
6
+ import { useChartModels } from "./useChartModels.js";
5
7
  export function useChartApiInitialization(inputApiRef) {
6
8
  const fallbackPublicApiRef = React.useRef({});
7
9
  if (inputApiRef) {
@@ -14,12 +16,15 @@ export function useChartApiInitialization(inputApiRef) {
14
16
  return fallbackPublicApiRef.current;
15
17
  }
16
18
  let globalId = 0;
17
- export function useCharts(inPlugins, props) {
19
+ export function useCharts(inPlugins, props, seriesConfig) {
20
+ const chartId = useId();
18
21
  const plugins = React.useMemo(() => [...CHART_CORE_PLUGINS, ...inPlugins], [inPlugins]);
19
- const defaultChartId = useId();
20
- const pluginParams = {
21
- id: defaultChartId
22
- }; // To generate when plugins use params.
22
+ const pluginParams = extractPluginParamsFromProps({
23
+ plugins,
24
+ props
25
+ });
26
+ pluginParams.id = pluginParams.id ?? chartId;
27
+ const models = useChartModels(plugins, pluginParams);
23
28
  const instanceRef = React.useRef({});
24
29
  const instance = instanceRef.current;
25
30
  const publicAPI = useChartApiInitialization(props.apiRef);
@@ -43,9 +48,7 @@ export function useCharts(inPlugins, props) {
43
48
  };
44
49
  plugins.forEach(plugin => {
45
50
  if (plugin.getInitialState) {
46
- Object.assign(initialState, plugin.getInitialState({
47
- id: defaultChartId
48
- }));
51
+ Object.assign(initialState, plugin.getInitialState(pluginParams, initialState, seriesConfig));
49
52
  }
50
53
  });
51
54
  storeRef.current = new ChartStore(initialState);
@@ -56,7 +59,9 @@ export function useCharts(inPlugins, props) {
56
59
  params: pluginParams,
57
60
  plugins: plugins,
58
61
  store: storeRef.current,
59
- svgRef: innerSvgRef
62
+ svgRef: innerSvgRef,
63
+ seriesConfig,
64
+ models
60
65
  });
61
66
  if (pluginResponse.publicAPI) {
62
67
  Object.assign(publicAPI, pluginResponse.publicAPI);
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
2
  import { ChartAnyPluginSignature, ChartPublicAPI } from '../plugins/models';
3
3
  export interface UseChartBaseProps<TSignatures extends readonly ChartAnyPluginSignature[]> {
4
- apiRef: React.MutableRefObject<ChartPublicAPI<TSignatures> | undefined> | undefined;
4
+ apiRef?: React.RefObject<ChartPublicAPI<TSignatures> | undefined>;
5
5
  }
@@ -1,3 +1,7 @@
1
1
  import { ChartStore } from '../plugins/utils/ChartStore';
2
2
  import { UseChartInteractionSignature } from '../plugins/featurePlugins/useChartInteraction/useChartInteraction.types';
3
- export declare function useStore(skipError?: boolean): ChartStore<[UseChartInteractionSignature]>;
3
+ import { ChartAnyPluginSignature } from '../plugins/models';
4
+ export declare function useStore<TSignatures extends ChartAnyPluginSignature[] = []>(): ChartStore<[
5
+ ...TSignatures,
6
+ UseChartInteractionSignature
7
+ ]>;
@@ -1,15 +1,7 @@
1
1
  import { useChartContext } from "../../context/ChartProvider/index.js";
2
2
  // This hook should be removed because user and us should not interact with the store directly, but with public/private APIs
3
- export function useStore(skipError) {
3
+ export function useStore() {
4
4
  const context = useChartContext();
5
- if (skipError) {
6
- // TODO: Remove once store is used by all charts.
7
- // This line is only for `useAxisEvents` which is in the surface of the Gauge.
8
- // But the Gauge don't have store yet because it does not need the interaction provider.
9
- // Will be fixed when every thing move to the store since every component will have access to it.
10
- // @ts-ignore
11
- return context?.store;
12
- }
13
5
  if (!context) {
14
6
  throw new Error(['MUI X: Could not find the charts context.', 'It looks like you rendered your component outside of a ChartsContainer parent component.'].join('\n'));
15
7
  }
@@ -1,3 +1,4 @@
1
+ import { ChartMargin } from '../internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types';
1
2
  export interface CardinalDirections<T> {
2
3
  top?: T;
3
4
  bottom?: T;
@@ -13,5 +14,5 @@ export type LayoutConfig = {
13
14
  * Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
14
15
  * @default object Depends on the charts type.
15
16
  */
16
- margin?: Partial<CardinalDirections<number>>;
17
+ margin?: Partial<ChartMargin>;
17
18
  };
@@ -1,3 +1,4 @@
1
+ import type { ChartsLabelMarkProps } from '../../ChartsLabel';
1
2
  import type { HighlightScope } from '../../context';
2
3
  import type { StackOffsetType, StackOrderType } from '../stacking';
3
4
  export type SeriesId = number | string;
@@ -22,6 +23,14 @@ export type CommonSeriesType<TValue> = {
22
23
  * The scope to apply when the series is highlighted.
23
24
  */
24
25
  highlightScope?: Partial<HighlightScope>;
26
+ /**
27
+ * Defines the mark type for the series.
28
+ *
29
+ * There is a default mark type for each series type.
30
+ *
31
+ * It allows custom values which will be passed to the mark component if it was customized.
32
+ */
33
+ labelMarkType?: ChartsLabelMarkProps['type'];
25
34
  };
26
35
  export type CommonDefaultizedProps = 'id' | 'valueFormatter' | 'data';
27
36
  export type CartesianSeriesType = {
@@ -1,6 +1,7 @@
1
1
  import { PieArcDatum as D3PieArcDatum } from '@mui/x-charts-vendor/d3-shape';
2
2
  import { DefaultizedProps } from '@mui/x-internals/types';
3
3
  import { CommonDefaultizedProps, CommonSeriesType, SeriesId } from './common';
4
+ import type { ChartsLabelMarkProps } from '../../ChartsLabel';
4
5
  export type PieItemId = string | number;
5
6
  export type PieValueType = {
6
7
  /**
@@ -13,6 +14,14 @@ export type PieValueType = {
13
14
  */
14
15
  label?: string | ((location: 'tooltip' | 'legend' | 'arc') => string);
15
16
  color?: string;
17
+ /**
18
+ * Defines the mark type for the pie item.
19
+ *
20
+ * It allows custom values which will be passed to the mark component if it was customized.
21
+ *
22
+ * @default 'circle'
23
+ */
24
+ labelMarkType?: ChartsLabelMarkProps['type'];
16
25
  };
17
26
  export type DefaultizedPieValueType = PieValueType & Omit<D3PieArcDatum<any>, 'data'> & {
18
27
  color: string;
@@ -15,6 +15,7 @@ export function AnimatedBarElement(props) {
15
15
  } = props,
16
16
  other = _objectWithoutPropertiesLoose(props, _excluded);
17
17
  return /*#__PURE__*/_jsx(animated.rect, _extends({}, other, {
18
+ // @ts-expect-error
18
19
  filter: ownerState.isHighlighted ? 'brightness(120%)' : undefined,
19
20
  opacity: ownerState.isFaded ? 0.3 : 1
20
21
  }));
@@ -5,7 +5,6 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { useThemeProps } from '@mui/material/styles';
7
7
  import { BarPlot } from "./BarPlot.js";
8
- import { ChartContainer } from "../ChartContainer/index.js";
9
8
  import { ChartsAxis } from "../ChartsAxis/index.js";
10
9
  import { ChartsTooltip } from "../ChartsTooltip/index.js";
11
10
  import { ChartsLegend } from "../ChartsLegend/index.js";
@@ -15,6 +14,10 @@ import { ChartsGrid } from "../ChartsGrid/index.js";
15
14
  import { ChartsOnAxisClickHandler } from "../ChartsOnAxisClickHandler/index.js";
16
15
  import { ChartsOverlay } from "../ChartsOverlay/ChartsOverlay.js";
17
16
  import { useBarChartProps } from "./useBarChartProps.js";
17
+ import { ChartDataProvider } from "../context/index.js";
18
+ import { ChartsSurface } from "../ChartsSurface/index.js";
19
+ import { useChartContainerProps } from "../ChartContainer/useChartContainerProps.js";
20
+ import { ChartsWrapper } from "../internals/components/ChartsWrapper/index.js";
18
21
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
19
22
  /**
20
23
  * Demos:
@@ -33,6 +36,7 @@ const BarChart = /*#__PURE__*/React.forwardRef(function BarChart(inProps, ref) {
33
36
  name: 'MuiBarChart'
34
37
  });
35
38
  const {
39
+ chartsWrapperProps,
36
40
  chartContainerProps,
37
41
  barPlotProps,
38
42
  axisClickHandlerProps,
@@ -45,13 +49,19 @@ const BarChart = /*#__PURE__*/React.forwardRef(function BarChart(inProps, ref) {
45
49
  legendProps,
46
50
  children
47
51
  } = useBarChartProps(props);
52
+ const {
53
+ chartDataProviderProps,
54
+ chartsSurfaceProps
55
+ } = useChartContainerProps(chartContainerProps, ref);
48
56
  const Tooltip = props.slots?.tooltip ?? ChartsTooltip;
49
- return /*#__PURE__*/_jsxs(ChartContainer, _extends({
50
- ref: ref
51
- }, chartContainerProps, {
52
- children: [props.onAxisClick && /*#__PURE__*/_jsx(ChartsOnAxisClickHandler, _extends({}, axisClickHandlerProps)), /*#__PURE__*/_jsx(ChartsGrid, _extends({}, gridProps)), /*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
53
- children: [/*#__PURE__*/_jsx(BarPlot, _extends({}, barPlotProps)), /*#__PURE__*/_jsx(ChartsOverlay, _extends({}, overlayProps)), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({}, axisHighlightProps))]
54
- })), /*#__PURE__*/_jsx(ChartsAxis, _extends({}, chartsAxisProps)), !props.hideLegend && /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legendProps)), !props.loading && /*#__PURE__*/_jsx(Tooltip, _extends({}, props.slotProps?.tooltip)), /*#__PURE__*/_jsx(ChartsClipPath, _extends({}, clipPathProps)), children]
57
+ return /*#__PURE__*/_jsx(ChartDataProvider, _extends({}, chartDataProviderProps, {
58
+ children: /*#__PURE__*/_jsxs(ChartsWrapper, _extends({}, chartsWrapperProps, {
59
+ children: [!props.hideLegend && /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legendProps)), /*#__PURE__*/_jsxs(ChartsSurface, _extends({}, chartsSurfaceProps, {
60
+ children: [props.onAxisClick && /*#__PURE__*/_jsx(ChartsOnAxisClickHandler, _extends({}, axisClickHandlerProps)), /*#__PURE__*/_jsx(ChartsGrid, _extends({}, gridProps)), /*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
61
+ children: [/*#__PURE__*/_jsx(BarPlot, _extends({}, barPlotProps)), /*#__PURE__*/_jsx(ChartsOverlay, _extends({}, overlayProps)), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({}, axisHighlightProps))]
62
+ })), /*#__PURE__*/_jsx(ChartsAxis, _extends({}, chartsAxisProps)), !props.loading && /*#__PURE__*/_jsx(Tooltip, _extends({}, props.slotProps?.tooltip)), /*#__PURE__*/_jsx(ChartsClipPath, _extends({}, clipPathProps)), children]
63
+ }))]
64
+ }))
55
65
  }));
56
66
  });
57
67
  process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
@@ -59,6 +69,9 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
59
69
  // | These PropTypes are generated from the TypeScript type definitions |
60
70
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
61
71
  // ----------------------------------------------------------------------
72
+ apiRef: PropTypes.shape({
73
+ current: PropTypes.object
74
+ }),
62
75
  /**
63
76
  * The configuration of axes highlight.
64
77
  * Default is set to 'band' in the bar direction.
@@ -127,6 +140,11 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
127
140
  dataIndex: PropTypes.number,
128
141
  seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
129
142
  }),
143
+ /**
144
+ * This prop is used to help implement the accessibility logic.
145
+ * If you don't provide this prop. It falls back to a randomly generated id.
146
+ */
147
+ id: PropTypes.string,
130
148
  /**
131
149
  * The direction of the bar elements.
132
150
  * @default 'vertical'
@@ -147,7 +165,6 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
147
165
  * The margin between the SVG and the drawing area.
148
166
  * It's used for leaving some space for extra information such as the x- and y-axis or legend.
149
167
  * Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
150
- * @default object Depends on the charts type.
151
168
  */
152
169
  margin: PropTypes.shape({
153
170
  bottom: PropTypes.number,
@@ -201,6 +218,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
201
218
  */
202
219
  slots: PropTypes.object,
203
220
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
221
+ theme: PropTypes.oneOf(['dark', 'light']),
204
222
  title: PropTypes.string,
205
223
  /**
206
224
  * Indicate which axis to display the top of the charts.
@@ -46,7 +46,7 @@ function BarLabelPlot(props) {
46
46
  other = _objectWithoutPropertiesLoose(props, _excluded);
47
47
  const barLabelTransition = useTransition(bars, {
48
48
  keys: bar => `${bar.seriesId}-${bar.dataIndex}`,
49
- from: leaveStyle,
49
+ from: skipAnimation ? undefined : leaveStyle,
50
50
  leave: null,
51
51
  enter: enterStyle,
52
52
  update: enterStyle,
@@ -7,16 +7,15 @@ import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import { useTransition } from '@react-spring/web';
9
9
  import { styled } from '@mui/material/styles';
10
- import { useCartesianContext } from "../context/CartesianProvider/index.js";
11
10
  import { BarElement, barElementClasses } from "./BarElement.js";
12
11
  import getColor from "./getColor.js";
13
- import { useChartId, useDrawingArea } from "../hooks/index.js";
12
+ import { useChartId, useDrawingArea, useXAxes, useYAxes } from "../hooks/index.js";
14
13
  import { BarClipPath } from "./BarClipPath.js";
15
14
  import { BarLabelPlot } from "./BarLabel/BarLabelPlot.js";
16
15
  import { checkScaleErrors } from "./checkScaleErrors.js";
17
16
  import { useBarSeries } from "../hooks/useSeries.js";
18
17
  import { useSkipAnimation } from "../context/AnimationProvider/index.js";
19
-
18
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
19
  /**
21
20
  * Solution of the equations
22
21
  * W = barWidth * N + offset * (N-1)
@@ -26,7 +25,6 @@ import { useSkipAnimation } from "../context/AnimationProvider/index.js";
26
25
  * @param gapRatio The ratio of the gap between bars over the bar width.
27
26
  * @returns The bar width and the offset between bars.
28
27
  */
29
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
30
28
  function getBandSize({
31
29
  bandWidth: W,
32
30
  numberOfGroups: N,
@@ -51,7 +49,6 @@ const useAggregatedData = () => {
51
49
  stackingGroups: [],
52
50
  seriesOrder: []
53
51
  };
54
- const axisData = useCartesianContext();
55
52
  const drawingArea = useDrawingArea();
56
53
  const chartId = useChartId();
57
54
  const {
@@ -60,10 +57,12 @@ const useAggregatedData = () => {
60
57
  } = seriesData;
61
58
  const {
62
59
  xAxis,
60
+ xAxisIds
61
+ } = useXAxes();
62
+ const {
63
63
  yAxis,
64
- xAxisIds,
65
64
  yAxisIds
66
- } = axisData;
65
+ } = useYAxes();
67
66
  const defaultXAxisId = xAxisIds[0];
68
67
  const defaultYAxisId = yAxisIds[0];
69
68
  const masks = {};
@@ -217,7 +216,7 @@ function BarPlot(props) {
217
216
  const withoutBorderRadius = !borderRadius || borderRadius <= 0;
218
217
  const transition = useTransition(completedData, {
219
218
  keys: bar => `${bar.seriesId}-${bar.dataIndex}`,
220
- from: leaveStyle,
219
+ from: skipAnimation ? undefined : leaveStyle,
221
220
  leave: leaveStyle,
222
221
  enter: enterStyle,
223
222
  update: enterStyle,
@@ -225,7 +224,7 @@ function BarPlot(props) {
225
224
  });
226
225
  const maskTransition = useTransition(withoutBorderRadius ? [] : masksData, {
227
226
  keys: v => v.id,
228
- from: leaveStyle,
227
+ from: skipAnimation ? undefined : leaveStyle,
229
228
  leave: leaveStyle,
230
229
  enter: enterStyle,
231
230
  update: enterStyle,
@@ -45,7 +45,8 @@ const formatter = (params, dataset) => {
45
45
  ids.forEach((id, index) => {
46
46
  const dataKey = series[id].dataKey;
47
47
  completedSeries[id] = _extends({
48
- layout: 'vertical'
48
+ layout: 'vertical',
49
+ labelMarkType: 'square'
49
50
  }, series[id], {
50
51
  data: dataKey ? dataset.map(data => {
51
52
  const value = data[dataKey];
@@ -10,6 +10,7 @@ const legendGetter = params => {
10
10
  return acc;
11
11
  }
12
12
  acc.push({
13
+ markType: series[seriesId].labelMarkType,
13
14
  id: seriesId,
14
15
  seriesId,
15
16
  color: series[seriesId].color,
@@ -2,8 +2,7 @@ import { getExtremumX, getExtremumY } from "./extremums.js";
2
2
  import formatter from "./formatter.js";
3
3
  import getColor from "./getColor.js";
4
4
  export const plugin = {
5
- seriesType: 'bar',
6
- seriesFormatter: formatter,
5
+ seriesProcessor: formatter,
7
6
  colorProcessor: getColor,
8
7
  xExtremumGetter: getExtremumX,
9
8
  yExtremumGetter: getExtremumY
@@ -5,6 +5,8 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
5
5
  const _excluded = ["xAxis", "yAxis", "series", "width", "height", "margin", "colors", "dataset", "sx", "onAxisClick", "axisHighlight", "grid", "topAxis", "leftAxis", "rightAxis", "bottomAxis", "children", "slots", "slotProps", "skipAnimation", "loading", "layout", "onItemClick", "highlightedItem", "onHighlightChange", "borderRadius", "barLabel", "className", "hideLegend"];
6
6
  import useId from '@mui/utils/useId';
7
7
  import { DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY } from "../constants/index.js";
8
+ import { calculateMargins } from "../internals/calculateMargins.js";
9
+
8
10
  /**
9
11
  * A helper function that extracts BarChartProps from the input props
10
12
  * and returns an object with props for the children components of BarChart.
@@ -41,7 +43,8 @@ export const useBarChartProps = props => {
41
43
  onHighlightChange,
42
44
  borderRadius,
43
45
  barLabel,
44
- className
46
+ className,
47
+ hideLegend
45
48
  } = props,
46
49
  rest = _objectWithoutPropertiesLoose(props, _excluded);
47
50
  const id = useId();
@@ -61,7 +64,12 @@ export const useBarChartProps = props => {
61
64
  })),
62
65
  width,
63
66
  height,
64
- margin,
67
+ margin: calculateMargins({
68
+ margin,
69
+ hideLegend,
70
+ slotProps,
71
+ series
72
+ }),
65
73
  colors,
66
74
  dataset,
67
75
  xAxis: xAxis ?? (hasHorizontalSeries ? undefined : [_extends({
@@ -70,7 +78,6 @@ export const useBarChartProps = props => {
70
78
  yAxis: yAxis ?? (hasHorizontalSeries ? [_extends({
71
79
  id: DEFAULT_Y_AXIS_KEY
72
80
  }, defaultAxisConfig)] : undefined),
73
- sx,
74
81
  highlightedItem,
75
82
  onHighlightChange,
76
83
  disableAxisListener: slotProps?.tooltip?.trigger !== 'axis' && axisHighlight?.x === 'none' && axisHighlight?.y === 'none' && !onAxisClick,
@@ -119,7 +126,13 @@ export const useBarChartProps = props => {
119
126
  slots,
120
127
  slotProps
121
128
  };
129
+ const chartsWrapperProps = {
130
+ sx,
131
+ legendPosition: props.slotProps?.legend?.position,
132
+ legendDirection: props.slotProps?.legend?.direction
133
+ };
122
134
  return {
135
+ chartsWrapperProps,
123
136
  chartContainerProps,
124
137
  barPlotProps,
125
138
  axisClickHandlerProps,
@@ -43,11 +43,17 @@ const ChartContainer = /*#__PURE__*/React.forwardRef(function ChartContainer(pro
43
43
  }))
44
44
  }));
45
45
  });
46
+
47
+ // @ts-ignore
48
+
46
49
  process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
47
50
  // ----------------------------- Warning --------------------------------
48
51
  // | These PropTypes are generated from the TypeScript type definitions |
49
52
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
50
53
  // ----------------------------------------------------------------------
54
+ apiRef: PropTypes.shape({
55
+ current: PropTypes.object
56
+ }),
51
57
  children: PropTypes.node,
52
58
  className: PropTypes.string,
53
59
  /**
@@ -77,11 +83,15 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
77
83
  dataIndex: PropTypes.number,
78
84
  seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
79
85
  }),
86
+ /**
87
+ * This prop is used to help implement the accessibility logic.
88
+ * If you don't provide this prop. It falls back to a randomly generated id.
89
+ */
90
+ id: PropTypes.string,
80
91
  /**
81
92
  * The margin between the SVG and the drawing area.
82
93
  * It's used for leaving some space for extra information such as the x- and y-axis or legend.
83
94
  * Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
84
- * @default object Depends on the charts type.
85
95
  */
86
96
  margin: PropTypes.shape({
87
97
  bottom: PropTypes.number,
@@ -95,23 +105,19 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
95
105
  * @param {HighlightItemData | null} highlightedItem The newly highlighted item.
96
106
  */
97
107
  onHighlightChange: PropTypes.func,
98
- /**
99
- * An array of plugins defining how to preprocess data.
100
- * If not provided, the container supports line, bar, scatter and pie charts.
101
- */
102
- plugins: PropTypes.arrayOf(PropTypes.object),
103
108
  /**
104
109
  * The array of series to display.
105
110
  * Each type of series has its own specificity.
106
111
  * Please refer to the appropriate docs page to learn more about it.
107
112
  */
108
- series: PropTypes.arrayOf(PropTypes.object).isRequired,
113
+ series: PropTypes.arrayOf(PropTypes.object),
109
114
  /**
110
115
  * If `true`, animations are skipped.
111
116
  * If unset or `false`, the animations respects the user's `prefers-reduced-motion` setting.
112
117
  */
113
118
  skipAnimation: PropTypes.bool,
114
119
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
120
+ theme: PropTypes.oneOf(['dark', 'light']),
115
121
  title: PropTypes.string,
116
122
  /**
117
123
  * The width of the chart in px. If not defined, it takes the width of the parent element.