@mui/x-charts 8.0.0-alpha.7 → 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 (559) hide show
  1. package/BarChart/BarChart.d.ts +1 -1
  2. package/BarChart/BarChart.js +9 -1
  3. package/BarChart/BarLabel/BarLabelPlot.js +1 -1
  4. package/BarChart/BarPlot.js +8 -9
  5. package/BarChart/extremums.d.ts +3 -3
  6. package/BarChart/formatter.d.ts +2 -2
  7. package/BarChart/formatter.js +2 -1
  8. package/BarChart/getColor.d.ts +1 -1
  9. package/BarChart/legend.d.ts +1 -1
  10. package/BarChart/legend.js +1 -1
  11. package/BarChart/plugin.d.ts +2 -2
  12. package/BarChart/plugin.js +1 -2
  13. package/BarChart/useBarChartProps.d.ts +1 -1
  14. package/CHANGELOG.md +115 -0
  15. package/ChartContainer/ChartContainer.d.ts +6 -2
  16. package/ChartContainer/ChartContainer.js +13 -7
  17. package/ChartContainer/useChartContainerProps.d.ts +5 -3
  18. package/ChartContainer/useChartContainerProps.js +7 -5
  19. package/ChartsAxis/ChartsAxis.js +5 -3
  20. package/ChartsGrid/ChartsGrid.js +9 -5
  21. package/ChartsGrid/ChartsHorizontalGrid.d.ts +2 -2
  22. package/ChartsGrid/ChartsHorizontalGrid.js +4 -3
  23. package/ChartsGrid/ChartsVerticalGrid.d.ts +2 -2
  24. package/ChartsGrid/ChartsVerticalGrid.js +4 -3
  25. package/ChartsLabel/ChartsLabelGradient.js +11 -12
  26. package/ChartsLegend/ContinuousColorLegend.js +3 -3
  27. package/ChartsLegend/useAxis.js +7 -5
  28. package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +7 -6
  29. package/ChartsSurface/ChartsSurface.js +16 -26
  30. package/ChartsTooltip/ChartsAxisTooltipContent.js +6 -3
  31. package/ChartsTooltip/ChartsItemTooltipContent.js +6 -3
  32. package/ChartsTooltip/ChartsTooltipTable.d.ts +0 -6
  33. package/ChartsTooltip/ChartsTooltipTable.js +0 -20
  34. package/ChartsTooltip/useAxisTooltip.d.ts +3 -1
  35. package/ChartsTooltip/useAxisTooltip.js +13 -9
  36. package/ChartsTooltip/useItemTooltip.d.ts +3 -1
  37. package/ChartsTooltip/useItemTooltip.js +14 -10
  38. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +16 -9
  39. package/ChartsXAxis/ChartsXAxis.js +11 -8
  40. package/ChartsYAxis/ChartsYAxis.js +8 -5
  41. package/Gauge/Gauge.js +5 -1
  42. package/Gauge/GaugeContainer.d.ts +3 -10
  43. package/Gauge/GaugeContainer.js +38 -38
  44. package/LineChart/AnimatedArea.js +1 -1
  45. package/LineChart/AnimatedLine.js +1 -1
  46. package/LineChart/AppearingMask.js +1 -1
  47. package/LineChart/AreaPlot.js +16 -15
  48. package/LineChart/LineChart.js +9 -1
  49. package/LineChart/LineHighlightPlot.js +14 -11
  50. package/LineChart/LinePlot.js +16 -15
  51. package/LineChart/MarkPlot.js +14 -11
  52. package/LineChart/extremums.d.ts +3 -3
  53. package/LineChart/formatter.d.ts +2 -2
  54. package/LineChart/formatter.js +3 -1
  55. package/LineChart/getColor.d.ts +1 -1
  56. package/LineChart/legend.d.ts +1 -1
  57. package/LineChart/legend.js +1 -1
  58. package/LineChart/plugin.d.ts +2 -2
  59. package/LineChart/plugin.js +1 -2
  60. package/LineChart/useLineChartProps.d.ts +1 -1
  61. package/PieChart/PieArcLabelPlot.js +2 -2
  62. package/PieChart/PieArcPlot.js +2 -2
  63. package/PieChart/PieChart.js +9 -1
  64. package/PieChart/dataTransform/transition.d.ts +2 -2
  65. package/PieChart/dataTransform/transition.js +6 -6
  66. package/PieChart/formatter.d.ts +2 -2
  67. package/PieChart/formatter.js +4 -1
  68. package/PieChart/getColor.d.ts +1 -1
  69. package/PieChart/getPieCoordinates.d.ts +2 -2
  70. package/PieChart/legend.d.ts +1 -1
  71. package/PieChart/legend.js +1 -1
  72. package/PieChart/plugin.d.ts +2 -2
  73. package/PieChart/plugin.js +1 -2
  74. package/ScatterChart/Scatter.js +6 -4
  75. package/ScatterChart/ScatterChart.d.ts +1 -2
  76. package/ScatterChart/ScatterChart.js +16 -12
  77. package/ScatterChart/ScatterPlot.js +11 -10
  78. package/ScatterChart/extremums.d.ts +3 -3
  79. package/ScatterChart/extremums.js +3 -1
  80. package/ScatterChart/formatter.d.ts +2 -2
  81. package/ScatterChart/formatter.js +3 -1
  82. package/ScatterChart/getColor.d.ts +1 -1
  83. package/ScatterChart/legend.d.ts +1 -1
  84. package/ScatterChart/legend.js +1 -1
  85. package/ScatterChart/plugin.d.ts +2 -2
  86. package/ScatterChart/plugin.js +1 -2
  87. package/ScatterChart/useScatterChartProps.d.ts +1 -3
  88. package/ScatterChart/useScatterChartProps.js +1 -4
  89. package/SparkLineChart/SparkLineChart.d.ts +2 -2
  90. package/SparkLineChart/SparkLineChart.js +11 -2
  91. package/context/ChartDataProvider/ChartDataProvider.d.ts +6 -22
  92. package/context/ChartDataProvider/ChartDataProvider.js +22 -184
  93. package/context/ChartDataProvider/useChartDataProviderProps.d.ts +6 -83
  94. package/context/ChartDataProvider/useChartDataProviderProps.js +33 -47
  95. package/context/ChartProvider/ChartProvider.d.ts +5 -1
  96. package/context/ChartProvider/ChartProvider.js +22 -2
  97. package/context/ChartProvider/ChartProvider.types.d.ts +17 -2
  98. package/context/InteractionSelectors.d.ts +33 -33
  99. package/context/PolarProvider/PolarProvider.d.ts +0 -4
  100. package/context/PolarProvider/PolarProvider.js +59 -47
  101. package/context/PolarProvider/getAxisExtremum.d.ts +0 -4
  102. package/context/PolarProvider/getAxisExtremum.js +48 -20
  103. package/context/PolarProvider/usePolarContext.d.ts +0 -2
  104. package/context/PolarProvider/usePolarContext.js +9 -8
  105. package/context/index.d.ts +0 -2
  106. package/context/index.js +0 -1
  107. package/hooks/index.d.ts +2 -0
  108. package/hooks/index.js +3 -1
  109. package/hooks/useAxis.d.ts +9 -1
  110. package/hooks/useAxis.js +32 -6
  111. package/hooks/useAxisEvents.js +12 -8
  112. package/hooks/useChartGradientId.d.ts +31 -0
  113. package/hooks/useChartGradientId.js +47 -0
  114. package/hooks/useColorScale.js +5 -5
  115. package/hooks/useDrawingArea.d.ts +16 -2
  116. package/hooks/useDrawingArea.js +5 -20
  117. package/hooks/useSeries.d.ts +11 -6
  118. package/hooks/useSeries.js +5 -10
  119. package/hooks/useZAxis.d.ts +3 -2
  120. package/hooks/useZAxis.js +25 -6
  121. package/index.js +1 -1
  122. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.d.ts +0 -3
  123. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +19 -27
  124. package/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.d.ts +1 -1
  125. package/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +3 -0
  126. package/internals/defaultizeColor.d.ts +22 -22
  127. package/internals/index.d.ts +13 -8
  128. package/internals/index.js +16 -9
  129. package/internals/plugins/allPlugins.d.ts +12 -1
  130. package/internals/plugins/allPlugins.js +5 -2
  131. package/internals/plugins/corePlugins/corePlugins.d.ts +1 -1
  132. package/internals/plugins/corePlugins/corePlugins.js +3 -1
  133. package/internals/plugins/corePlugins/useChartDimensions/index.d.ts +3 -0
  134. package/internals/plugins/corePlugins/useChartDimensions/index.js +2 -0
  135. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.d.ts +3 -0
  136. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.js +175 -0
  137. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.d.ts +264 -0
  138. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.js +25 -0
  139. package/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.d.ts +99 -0
  140. package/internals/plugins/corePlugins/useChartId/index.d.ts +1 -0
  141. package/internals/plugins/corePlugins/useChartId/index.js +2 -1
  142. package/internals/plugins/corePlugins/useChartId/useChartId.js +1 -1
  143. package/internals/plugins/corePlugins/useChartId/useChartId.selectors.d.ts +2 -2
  144. package/internals/plugins/corePlugins/useChartId/useChartId.types.d.ts +1 -1
  145. package/internals/plugins/corePlugins/useChartSeries/index.d.ts +3 -0
  146. package/internals/plugins/corePlugins/useChartSeries/index.js +2 -0
  147. package/internals/plugins/corePlugins/useChartSeries/processSeries.d.ts +18 -0
  148. package/{modern/context/SeriesProvider → internals/plugins/corePlugins/useChartSeries}/processSeries.js +9 -6
  149. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.d.ts +3 -0
  150. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.js +72 -0
  151. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.d.ts +61 -0
  152. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.js +4 -0
  153. package/internals/plugins/corePlugins/useChartSeries/useChartSeries.types.d.ts +51 -0
  154. package/internals/plugins/corePlugins/useChartSeries/useColorProcessor.d.ts +10 -0
  155. package/internals/plugins/corePlugins/useChartSeries/useColorProcessor.js +21 -0
  156. package/internals/plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.d.ts +29 -0
  157. package/internals/{computeAxisValue.js → plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js} +19 -27
  158. package/internals/plugins/featurePlugins/useChartCartesianAxis/createAxisFilterMapper.d.ts +18 -0
  159. package/internals/plugins/featurePlugins/useChartCartesianAxis/createAxisFilterMapper.js +61 -0
  160. package/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.d.ts +39 -0
  161. package/{modern/context/ChartDataProvider/useDefaultizeAxis.js → internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.js} +3 -11
  162. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisExtremum.d.ts +6 -0
  163. package/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisExtremum.js +22 -0
  164. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.d.ts +5 -0
  165. package/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +4 -0
  166. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.d.ts +4 -0
  167. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +68 -0
  168. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.selectors.d.ts +1372 -0
  169. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.selectors.js +87 -0
  170. package/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.d.ts +76 -0
  171. package/internals/plugins/featurePlugins/useChartCartesianAxis/zoom.types.d.ts +18 -0
  172. package/internals/plugins/featurePlugins/useChartInteraction/useChartInteraction.selectors.d.ts +22 -22
  173. package/internals/plugins/featurePlugins/useChartZAxis/index.d.ts +3 -0
  174. package/internals/plugins/featurePlugins/useChartZAxis/index.js +2 -0
  175. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.d.ts +3 -0
  176. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.js +86 -0
  177. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.d.ts +45 -0
  178. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.js +3 -0
  179. package/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.types.d.ts +39 -0
  180. package/internals/plugins/featurePlugins/useChartZAxis/utils.d.ts +0 -0
  181. package/internals/plugins/featurePlugins/useChartZAxis/utils.js +0 -0
  182. package/internals/plugins/models/index.d.ts +1 -0
  183. package/internals/plugins/models/index.js +2 -1
  184. package/internals/plugins/models/plugin.d.ts +32 -2
  185. package/internals/plugins/models/seriesConfig/colorProcessor.types.d.ts +5 -0
  186. package/internals/plugins/models/seriesConfig/extremumGetter.types.d.ts +22 -0
  187. package/internals/plugins/models/seriesConfig/index.d.ts +4 -0
  188. package/internals/plugins/models/seriesConfig/index.js +4 -0
  189. package/internals/plugins/models/seriesConfig/seriesConfig.types.d.ts +14 -0
  190. package/internals/plugins/models/seriesConfig/seriesProcessor.types.d.ts +18 -0
  191. package/internals/store/extractPluginParamsFromProps.d.ts +7 -0
  192. package/internals/store/extractPluginParamsFromProps.js +28 -0
  193. package/internals/store/useChartModels.d.ts +7 -0
  194. package/internals/store/useChartModels.js +64 -0
  195. package/internals/store/useCharts.d.ts +4 -2
  196. package/internals/store/useCharts.js +14 -9
  197. package/internals/store/useCharts.types.d.ts +1 -1
  198. package/internals/store/useStore.d.ts +5 -1
  199. package/internals/store/useStore.js +1 -9
  200. package/models/layout.d.ts +2 -1
  201. package/modern/BarChart/BarChart.js +9 -1
  202. package/modern/BarChart/BarLabel/BarLabelPlot.js +1 -1
  203. package/modern/BarChart/BarPlot.js +8 -9
  204. package/modern/BarChart/formatter.js +2 -1
  205. package/modern/BarChart/legend.js +1 -1
  206. package/modern/BarChart/plugin.js +1 -2
  207. package/modern/ChartContainer/ChartContainer.js +13 -7
  208. package/modern/ChartContainer/useChartContainerProps.js +7 -5
  209. package/modern/ChartsAxis/ChartsAxis.js +5 -3
  210. package/modern/ChartsGrid/ChartsGrid.js +9 -5
  211. package/modern/ChartsGrid/ChartsHorizontalGrid.js +4 -3
  212. package/modern/ChartsGrid/ChartsVerticalGrid.js +4 -3
  213. package/modern/ChartsLabel/ChartsLabelGradient.js +11 -12
  214. package/modern/ChartsLegend/ContinuousColorLegend.js +3 -3
  215. package/modern/ChartsLegend/useAxis.js +7 -5
  216. package/modern/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +7 -6
  217. package/modern/ChartsSurface/ChartsSurface.js +16 -26
  218. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +6 -3
  219. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +6 -3
  220. package/modern/ChartsTooltip/ChartsTooltipTable.js +0 -20
  221. package/modern/ChartsTooltip/useAxisTooltip.js +13 -9
  222. package/modern/ChartsTooltip/useItemTooltip.js +14 -10
  223. package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +16 -9
  224. package/modern/ChartsXAxis/ChartsXAxis.js +11 -8
  225. package/modern/ChartsYAxis/ChartsYAxis.js +8 -5
  226. package/modern/Gauge/Gauge.js +5 -1
  227. package/modern/Gauge/GaugeContainer.js +38 -38
  228. package/modern/LineChart/AnimatedArea.js +1 -1
  229. package/modern/LineChart/AnimatedLine.js +1 -1
  230. package/modern/LineChart/AppearingMask.js +1 -1
  231. package/modern/LineChart/AreaPlot.js +16 -15
  232. package/modern/LineChart/LineChart.js +9 -1
  233. package/modern/LineChart/LineHighlightPlot.js +14 -11
  234. package/modern/LineChart/LinePlot.js +16 -15
  235. package/modern/LineChart/MarkPlot.js +14 -11
  236. package/modern/LineChart/formatter.js +3 -1
  237. package/modern/LineChart/legend.js +1 -1
  238. package/modern/LineChart/plugin.js +1 -2
  239. package/modern/PieChart/PieArcLabelPlot.js +2 -2
  240. package/modern/PieChart/PieArcPlot.js +2 -2
  241. package/modern/PieChart/PieChart.js +9 -1
  242. package/modern/PieChart/dataTransform/transition.js +6 -6
  243. package/modern/PieChart/formatter.js +4 -1
  244. package/modern/PieChart/legend.js +1 -1
  245. package/modern/PieChart/plugin.js +1 -2
  246. package/modern/ScatterChart/Scatter.js +6 -4
  247. package/modern/ScatterChart/ScatterChart.js +16 -12
  248. package/modern/ScatterChart/ScatterPlot.js +11 -10
  249. package/modern/ScatterChart/extremums.js +3 -1
  250. package/modern/ScatterChart/formatter.js +3 -1
  251. package/modern/ScatterChart/legend.js +1 -1
  252. package/modern/ScatterChart/plugin.js +1 -2
  253. package/modern/ScatterChart/useScatterChartProps.js +1 -4
  254. package/modern/SparkLineChart/SparkLineChart.js +11 -2
  255. package/modern/context/ChartDataProvider/ChartDataProvider.js +22 -184
  256. package/modern/context/ChartDataProvider/useChartDataProviderProps.js +33 -47
  257. package/modern/context/ChartProvider/ChartProvider.js +22 -2
  258. package/modern/context/PolarProvider/PolarProvider.js +59 -47
  259. package/modern/context/PolarProvider/getAxisExtremum.js +48 -20
  260. package/modern/context/PolarProvider/usePolarContext.js +9 -8
  261. package/modern/context/index.js +0 -1
  262. package/modern/hooks/index.js +3 -1
  263. package/modern/hooks/useAxis.js +32 -6
  264. package/modern/hooks/useAxisEvents.js +12 -8
  265. package/modern/hooks/useChartGradientId.js +47 -0
  266. package/modern/hooks/useColorScale.js +5 -5
  267. package/modern/hooks/useDrawingArea.js +5 -20
  268. package/modern/hooks/useSeries.js +5 -10
  269. package/modern/hooks/useZAxis.js +25 -6
  270. package/modern/index.js +1 -1
  271. package/modern/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +19 -27
  272. package/modern/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +3 -0
  273. package/modern/internals/index.js +16 -9
  274. package/modern/internals/plugins/allPlugins.js +5 -2
  275. package/modern/internals/plugins/corePlugins/corePlugins.js +3 -1
  276. package/modern/internals/plugins/corePlugins/useChartDimensions/index.js +2 -0
  277. package/modern/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.js +175 -0
  278. package/modern/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.js +25 -0
  279. package/modern/internals/plugins/corePlugins/useChartId/index.js +2 -1
  280. package/modern/internals/plugins/corePlugins/useChartId/useChartId.js +1 -1
  281. package/modern/internals/plugins/corePlugins/useChartSeries/index.js +2 -0
  282. package/{context/SeriesProvider → modern/internals/plugins/corePlugins/useChartSeries}/processSeries.js +9 -6
  283. package/modern/internals/plugins/corePlugins/useChartSeries/useChartSeries.js +72 -0
  284. package/modern/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.js +4 -0
  285. package/modern/internals/plugins/corePlugins/useChartSeries/useColorProcessor.js +21 -0
  286. package/modern/internals/{computeAxisValue.js → plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js} +19 -27
  287. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/createAxisFilterMapper.js +61 -0
  288. package/{context/ChartDataProvider/useDefaultizeAxis.js → modern/internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.js} +3 -11
  289. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisExtremum.js +22 -0
  290. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +4 -0
  291. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +68 -0
  292. package/modern/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.selectors.js +87 -0
  293. package/modern/internals/plugins/featurePlugins/useChartZAxis/index.js +2 -0
  294. package/modern/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.js +86 -0
  295. package/modern/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.js +3 -0
  296. package/modern/internals/plugins/featurePlugins/useChartZAxis/utils.js +0 -0
  297. package/modern/internals/plugins/models/index.js +2 -1
  298. package/modern/internals/plugins/models/seriesConfig/index.js +4 -0
  299. package/modern/internals/plugins/models/seriesConfig/seriesConfig.types.js +1 -0
  300. package/modern/internals/plugins/models/seriesConfig/seriesProcessor.types.js +1 -0
  301. package/modern/internals/store/extractPluginParamsFromProps.js +28 -0
  302. package/modern/internals/store/useChartModels.js +64 -0
  303. package/modern/internals/store/useCharts.js +14 -9
  304. package/modern/internals/store/useStore.js +1 -9
  305. package/node/BarChart/BarChart.js +9 -1
  306. package/node/BarChart/BarLabel/BarLabelPlot.js +1 -1
  307. package/node/BarChart/BarPlot.js +6 -6
  308. package/node/BarChart/formatter.js +2 -1
  309. package/node/BarChart/legend.js +1 -1
  310. package/node/BarChart/plugin.js +1 -2
  311. package/node/ChartContainer/ChartContainer.js +13 -7
  312. package/node/ChartContainer/useChartContainerProps.js +7 -5
  313. package/node/ChartsAxis/ChartsAxis.js +5 -3
  314. package/node/ChartsGrid/ChartsGrid.js +9 -5
  315. package/node/ChartsGrid/ChartsHorizontalGrid.js +4 -3
  316. package/node/ChartsGrid/ChartsVerticalGrid.js +4 -3
  317. package/node/ChartsLabel/ChartsLabelGradient.js +11 -12
  318. package/node/ChartsLegend/ContinuousColorLegend.js +3 -3
  319. package/node/ChartsLegend/useAxis.js +6 -4
  320. package/node/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +6 -5
  321. package/node/ChartsSurface/ChartsSurface.js +17 -27
  322. package/node/ChartsTooltip/ChartsAxisTooltipContent.js +5 -2
  323. package/node/ChartsTooltip/ChartsItemTooltipContent.js +5 -2
  324. package/node/ChartsTooltip/ChartsTooltipTable.js +1 -21
  325. package/node/ChartsTooltip/useAxisTooltip.js +11 -7
  326. package/node/ChartsTooltip/useItemTooltip.js +13 -9
  327. package/node/ChartsVoronoiHandler/ChartsVoronoiHandler.js +19 -12
  328. package/node/ChartsXAxis/ChartsXAxis.js +11 -8
  329. package/node/ChartsYAxis/ChartsYAxis.js +8 -5
  330. package/node/Gauge/Gauge.js +5 -1
  331. package/node/Gauge/GaugeContainer.js +38 -38
  332. package/node/LineChart/AnimatedArea.js +1 -1
  333. package/node/LineChart/AnimatedLine.js +1 -1
  334. package/node/LineChart/AppearingMask.js +1 -1
  335. package/node/LineChart/AreaPlot.js +16 -15
  336. package/node/LineChart/LineChart.js +9 -1
  337. package/node/LineChart/LineHighlightPlot.js +14 -11
  338. package/node/LineChart/LinePlot.js +16 -15
  339. package/node/LineChart/MarkPlot.js +14 -11
  340. package/node/LineChart/formatter.js +3 -1
  341. package/node/LineChart/legend.js +1 -1
  342. package/node/LineChart/plugin.js +1 -2
  343. package/node/PieChart/PieArcLabelPlot.js +1 -1
  344. package/node/PieChart/PieArcPlot.js +1 -1
  345. package/node/PieChart/PieChart.js +9 -1
  346. package/node/PieChart/dataTransform/transition.js +9 -7
  347. package/node/PieChart/formatter.js +4 -1
  348. package/node/PieChart/legend.js +1 -1
  349. package/node/PieChart/plugin.js +1 -2
  350. package/node/ScatterChart/Scatter.js +6 -4
  351. package/node/ScatterChart/ScatterChart.js +16 -12
  352. package/node/ScatterChart/ScatterPlot.js +10 -9
  353. package/node/ScatterChart/extremums.js +3 -1
  354. package/node/ScatterChart/formatter.js +3 -1
  355. package/node/ScatterChart/legend.js +1 -1
  356. package/node/ScatterChart/plugin.js +1 -2
  357. package/node/ScatterChart/useScatterChartProps.js +1 -4
  358. package/node/SparkLineChart/SparkLineChart.js +10 -1
  359. package/node/context/ChartDataProvider/ChartDataProvider.js +22 -184
  360. package/node/context/ChartDataProvider/useChartDataProviderProps.js +34 -47
  361. package/node/context/ChartProvider/ChartProvider.js +23 -2
  362. package/node/context/PolarProvider/PolarProvider.js +59 -51
  363. package/node/context/PolarProvider/getAxisExtremum.js +49 -27
  364. package/node/context/PolarProvider/usePolarContext.js +9 -14
  365. package/node/context/index.js +0 -8
  366. package/node/hooks/index.js +29 -2
  367. package/node/hooks/useAxis.js +34 -6
  368. package/node/hooks/useAxisEvents.js +12 -8
  369. package/node/hooks/useChartGradientId.js +56 -0
  370. package/node/hooks/useColorScale.js +4 -4
  371. package/node/hooks/useDrawingArea.js +5 -21
  372. package/node/hooks/useSeries.js +5 -9
  373. package/node/hooks/useZAxis.js +27 -9
  374. package/node/index.js +1 -1
  375. package/node/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +17 -27
  376. package/node/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +3 -0
  377. package/node/internals/index.js +122 -62
  378. package/node/internals/plugins/allPlugins.js +4 -2
  379. package/node/internals/plugins/corePlugins/corePlugins.js +3 -1
  380. package/node/internals/plugins/corePlugins/useChartDimensions/index.js +27 -0
  381. package/node/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.js +183 -0
  382. package/node/internals/plugins/corePlugins/useChartDimensions/useChartDimensions.selectors.js +32 -0
  383. package/node/internals/plugins/corePlugins/useChartId/index.js +16 -1
  384. package/node/internals/plugins/corePlugins/useChartId/useChartId.js +1 -1
  385. package/node/internals/plugins/corePlugins/useChartSeries/index.js +27 -0
  386. package/node/{context/SeriesProvider → internals/plugins/corePlugins/useChartSeries}/processSeries.js +9 -6
  387. package/node/internals/plugins/corePlugins/useChartSeries/useChartSeries.js +80 -0
  388. package/node/internals/plugins/corePlugins/useChartSeries/useChartSeries.selectors.js +11 -0
  389. package/node/internals/plugins/corePlugins/useChartSeries/useColorProcessor.js +27 -0
  390. package/node/internals/{computeAxisValue.js → plugins/featurePlugins/useChartCartesianAxis/computeAxisValue.js} +19 -27
  391. package/node/internals/plugins/featurePlugins/useChartCartesianAxis/createAxisFilterMapper.js +69 -0
  392. package/node/{context/ChartDataProvider/useDefaultizeAxis.js → internals/plugins/featurePlugins/useChartCartesianAxis/defaultizeAxis.js} +4 -13
  393. package/node/internals/plugins/featurePlugins/useChartCartesianAxis/getAxisExtremum.js +29 -0
  394. package/node/internals/plugins/featurePlugins/useChartCartesianAxis/index.js +47 -0
  395. package/node/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.js +76 -0
  396. package/node/internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.selectors.js +96 -0
  397. package/node/internals/plugins/featurePlugins/useChartZAxis/index.js +27 -0
  398. package/node/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.js +94 -0
  399. package/node/internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.selectors.js +9 -0
  400. package/node/internals/plugins/featurePlugins/useChartZAxis/utils.js +1 -0
  401. package/node/internals/plugins/models/index.js +11 -0
  402. package/node/internals/plugins/models/seriesConfig/index.js +49 -0
  403. package/node/internals/plugins/models/seriesConfig/seriesProcessor.types.js +5 -0
  404. package/node/internals/store/extractPluginParamsFromProps.js +36 -0
  405. package/node/internals/store/useChartModels.js +73 -0
  406. package/node/internals/store/useCharts.js +14 -9
  407. package/node/internals/store/useStore.js +1 -9
  408. package/package.json +3 -3
  409. package/context/CartesianProvider/Cartesian.types.d.ts +0 -59
  410. package/context/CartesianProvider/CartesianContext.d.ts +0 -4
  411. package/context/CartesianProvider/CartesianContext.js +0 -13
  412. package/context/CartesianProvider/CartesianProvider.d.ts +0 -4
  413. package/context/CartesianProvider/CartesianProvider.js +0 -49
  414. package/context/CartesianProvider/defaultizeAxis.d.ts +0 -38
  415. package/context/CartesianProvider/defaultizeAxis.js +0 -13
  416. package/context/CartesianProvider/getAxisExtremum.d.ts +0 -5
  417. package/context/CartesianProvider/getAxisExtremum.js +0 -21
  418. package/context/CartesianProvider/index.d.ts +0 -4
  419. package/context/CartesianProvider/index.js +0 -4
  420. package/context/CartesianProvider/useCartesianContext.d.ts +0 -2
  421. package/context/CartesianProvider/useCartesianContext.js +0 -10
  422. package/context/ChartDataProvider/useDefaultizeAxis.d.ts +0 -39
  423. package/context/DrawingAreaProvider/DrawingArea.types.d.ts +0 -51
  424. package/context/DrawingAreaProvider/DrawingAreaContext.d.ts +0 -3
  425. package/context/DrawingAreaProvider/DrawingAreaContext.js +0 -15
  426. package/context/DrawingAreaProvider/DrawingAreaProvider.d.ts +0 -3
  427. package/context/DrawingAreaProvider/DrawingAreaProvider.js +0 -48
  428. package/context/DrawingAreaProvider/index.d.ts +0 -3
  429. package/context/DrawingAreaProvider/index.js +0 -3
  430. package/context/PluginProvider/ColorProcessor.types.d.ts +0 -8
  431. package/context/PluginProvider/ExtremumGetter.types.d.ts +0 -25
  432. package/context/PluginProvider/Plugin.types.d.ts +0 -29
  433. package/context/PluginProvider/PluginContext.d.ts +0 -4
  434. package/context/PluginProvider/PluginContext.js +0 -15
  435. package/context/PluginProvider/PluginProvider.d.ts +0 -4
  436. package/context/PluginProvider/PluginProvider.js +0 -21
  437. package/context/PluginProvider/SeriesFormatter.types.d.ts +0 -21
  438. package/context/PluginProvider/index.d.ts +0 -12
  439. package/context/PluginProvider/index.js +0 -12
  440. package/context/PluginProvider/mergePlugins.d.ts +0 -46
  441. package/context/PluginProvider/mergePlugins.js +0 -40
  442. package/context/PluginProvider/useColorProcessor.d.ts +0 -4
  443. package/context/PluginProvider/useColorProcessor.js +0 -17
  444. package/context/PluginProvider/useRadiusExtremumGetter.d.ts +0 -4
  445. package/context/PluginProvider/useRadiusExtremumGetter.js +0 -17
  446. package/context/PluginProvider/useRotationExtremumGetter.d.ts +0 -4
  447. package/context/PluginProvider/useRotationExtremumGetter.js +0 -17
  448. package/context/PluginProvider/useSeriesFormatter.d.ts +0 -4
  449. package/context/PluginProvider/useSeriesFormatter.js +0 -17
  450. package/context/PluginProvider/useXExtremumGetter.d.ts +0 -4
  451. package/context/PluginProvider/useXExtremumGetter.js +0 -15
  452. package/context/PluginProvider/useYExtremumGetter.d.ts +0 -4
  453. package/context/PluginProvider/useYExtremumGetter.js +0 -15
  454. package/context/SeriesProvider/Series.types.d.ts +0 -26
  455. package/context/SeriesProvider/SeriesContext.d.ts +0 -4
  456. package/context/SeriesProvider/SeriesContext.js +0 -8
  457. package/context/SeriesProvider/SeriesProvider.d.ts +0 -5
  458. package/context/SeriesProvider/SeriesProvider.js +0 -33
  459. package/context/SeriesProvider/index.d.ts +0 -12
  460. package/context/SeriesProvider/index.js +0 -8
  461. package/context/SeriesProvider/processSeries.d.ts +0 -18
  462. package/context/SizeProvider/Size.types.d.ts +0 -30
  463. package/context/SizeProvider/SizeContext.d.ts +0 -4
  464. package/context/SizeProvider/SizeContext.js +0 -15
  465. package/context/SizeProvider/SizeProvider.d.ts +0 -11
  466. package/context/SizeProvider/SizeProvider.js +0 -26
  467. package/context/SizeProvider/index.d.ts +0 -4
  468. package/context/SizeProvider/index.js +0 -4
  469. package/context/SizeProvider/useChartContainerDimensions.d.ts +0 -9
  470. package/context/SizeProvider/useChartContainerDimensions.js +0 -108
  471. package/context/SizeProvider/useSize.d.ts +0 -5
  472. package/context/SizeProvider/useSize.js +0 -13
  473. package/context/ZAxisContextProvider.d.ts +0 -33
  474. package/context/ZAxisContextProvider.js +0 -96
  475. package/internals/computeAxisValue.d.ts +0 -38
  476. package/modern/context/CartesianProvider/CartesianContext.js +0 -13
  477. package/modern/context/CartesianProvider/CartesianProvider.js +0 -49
  478. package/modern/context/CartesianProvider/defaultizeAxis.js +0 -13
  479. package/modern/context/CartesianProvider/getAxisExtremum.js +0 -21
  480. package/modern/context/CartesianProvider/index.js +0 -4
  481. package/modern/context/CartesianProvider/useCartesianContext.js +0 -10
  482. package/modern/context/DrawingAreaProvider/DrawingAreaContext.js +0 -15
  483. package/modern/context/DrawingAreaProvider/DrawingAreaProvider.js +0 -48
  484. package/modern/context/DrawingAreaProvider/index.js +0 -3
  485. package/modern/context/PluginProvider/PluginContext.js +0 -15
  486. package/modern/context/PluginProvider/PluginProvider.js +0 -21
  487. package/modern/context/PluginProvider/index.js +0 -12
  488. package/modern/context/PluginProvider/mergePlugins.js +0 -40
  489. package/modern/context/PluginProvider/useColorProcessor.js +0 -17
  490. package/modern/context/PluginProvider/useRadiusExtremumGetter.js +0 -17
  491. package/modern/context/PluginProvider/useRotationExtremumGetter.js +0 -17
  492. package/modern/context/PluginProvider/useSeriesFormatter.js +0 -17
  493. package/modern/context/PluginProvider/useXExtremumGetter.js +0 -15
  494. package/modern/context/PluginProvider/useYExtremumGetter.js +0 -15
  495. package/modern/context/SeriesProvider/SeriesContext.js +0 -8
  496. package/modern/context/SeriesProvider/SeriesProvider.js +0 -33
  497. package/modern/context/SeriesProvider/index.js +0 -8
  498. package/modern/context/SizeProvider/SizeContext.js +0 -15
  499. package/modern/context/SizeProvider/SizeProvider.js +0 -26
  500. package/modern/context/SizeProvider/index.js +0 -4
  501. package/modern/context/SizeProvider/useChartContainerDimensions.js +0 -108
  502. package/modern/context/SizeProvider/useSize.js +0 -13
  503. package/modern/context/ZAxisContextProvider.js +0 -96
  504. package/node/context/CartesianProvider/CartesianContext.js +0 -20
  505. package/node/context/CartesianProvider/CartesianProvider.js +0 -54
  506. package/node/context/CartesianProvider/defaultizeAxis.js +0 -21
  507. package/node/context/CartesianProvider/getAxisExtremum.js +0 -28
  508. package/node/context/CartesianProvider/index.js +0 -49
  509. package/node/context/CartesianProvider/useCartesianContext.js +0 -17
  510. package/node/context/DrawingAreaProvider/DrawingAreaContext.js +0 -21
  511. package/node/context/DrawingAreaProvider/DrawingAreaProvider.js +0 -55
  512. package/node/context/DrawingAreaProvider/index.js +0 -38
  513. package/node/context/PluginProvider/PluginContext.js +0 -22
  514. package/node/context/PluginProvider/PluginProvider.js +0 -26
  515. package/node/context/PluginProvider/index.js +0 -137
  516. package/node/context/PluginProvider/mergePlugins.js +0 -47
  517. package/node/context/PluginProvider/useColorProcessor.js +0 -23
  518. package/node/context/PluginProvider/useRadiusExtremumGetter.js +0 -23
  519. package/node/context/PluginProvider/useRotationExtremumGetter.js +0 -23
  520. package/node/context/PluginProvider/useSeriesFormatter.js +0 -23
  521. package/node/context/PluginProvider/useXExtremumGetter.js +0 -22
  522. package/node/context/PluginProvider/useYExtremumGetter.js +0 -22
  523. package/node/context/SeriesProvider/SeriesContext.js +0 -15
  524. package/node/context/SeriesProvider/SeriesProvider.js +0 -38
  525. package/node/context/SeriesProvider/index.js +0 -49
  526. package/node/context/SizeProvider/SizeContext.js +0 -22
  527. package/node/context/SizeProvider/SizeProvider.js +0 -29
  528. package/node/context/SizeProvider/index.js +0 -49
  529. package/node/context/SizeProvider/useChartContainerDimensions.js +0 -116
  530. package/node/context/SizeProvider/useSize.js +0 -20
  531. package/node/context/ZAxisContextProvider.js +0 -103
  532. /package/{context/CartesianProvider/Cartesian.types.js → internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.js} +0 -0
  533. /package/{context/DrawingAreaProvider/DrawingArea.types.js → internals/plugins/corePlugins/useChartSeries/useChartSeries.types.js} +0 -0
  534. /package/{context/PluginProvider/ColorProcessor.types.js → internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.js} +0 -0
  535. /package/{context/CartesianProvider → internals/plugins/featurePlugins/useChartCartesianAxis}/zoom.d.ts +0 -0
  536. /package/{context/CartesianProvider → internals/plugins/featurePlugins/useChartCartesianAxis}/zoom.js +0 -0
  537. /package/{context/PluginProvider/ExtremumGetter.types.js → internals/plugins/featurePlugins/useChartCartesianAxis/zoom.types.js} +0 -0
  538. /package/{context/PluginProvider/Plugin.types.js → internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.types.js} +0 -0
  539. /package/{context/PluginProvider/SeriesFormatter.types.js → internals/plugins/models/seriesConfig/colorProcessor.types.js} +0 -0
  540. /package/{context/SeriesProvider/Series.types.js → internals/plugins/models/seriesConfig/extremumGetter.types.js} +0 -0
  541. /package/{context/SizeProvider/Size.types.js → internals/plugins/models/seriesConfig/seriesConfig.types.js} +0 -0
  542. /package/{modern/context/CartesianProvider/Cartesian.types.js → internals/plugins/models/seriesConfig/seriesProcessor.types.js} +0 -0
  543. /package/modern/{context/DrawingAreaProvider/DrawingArea.types.js → internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.js} +0 -0
  544. /package/modern/{context/PluginProvider/ColorProcessor.types.js → internals/plugins/corePlugins/useChartSeries/useChartSeries.types.js} +0 -0
  545. /package/modern/{context/PluginProvider/ExtremumGetter.types.js → internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.js} +0 -0
  546. /package/modern/{context/CartesianProvider → internals/plugins/featurePlugins/useChartCartesianAxis}/zoom.js +0 -0
  547. /package/modern/{context/PluginProvider/Plugin.types.js → internals/plugins/featurePlugins/useChartCartesianAxis/zoom.types.js} +0 -0
  548. /package/modern/{context/PluginProvider/SeriesFormatter.types.js → internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.types.js} +0 -0
  549. /package/modern/{context/SeriesProvider/Series.types.js → internals/plugins/models/seriesConfig/colorProcessor.types.js} +0 -0
  550. /package/modern/{context/SizeProvider/Size.types.js → internals/plugins/models/seriesConfig/extremumGetter.types.js} +0 -0
  551. /package/node/{context/CartesianProvider/Cartesian.types.js → internals/plugins/corePlugins/useChartDimensions/useChartDimensions.types.js} +0 -0
  552. /package/node/{context/DrawingAreaProvider/DrawingArea.types.js → internals/plugins/corePlugins/useChartSeries/useChartSeries.types.js} +0 -0
  553. /package/node/{context/PluginProvider/ColorProcessor.types.js → internals/plugins/featurePlugins/useChartCartesianAxis/useChartCartesianAxis.types.js} +0 -0
  554. /package/node/{context/CartesianProvider → internals/plugins/featurePlugins/useChartCartesianAxis}/zoom.js +0 -0
  555. /package/node/{context/PluginProvider/ExtremumGetter.types.js → internals/plugins/featurePlugins/useChartCartesianAxis/zoom.types.js} +0 -0
  556. /package/node/{context/PluginProvider/Plugin.types.js → internals/plugins/featurePlugins/useChartZAxis/useChartZAxis.types.js} +0 -0
  557. /package/node/{context/PluginProvider/SeriesFormatter.types.js → internals/plugins/models/seriesConfig/colorProcessor.types.js} +0 -0
  558. /package/node/{context/SeriesProvider/Series.types.js → internals/plugins/models/seriesConfig/extremumGetter.types.js} +0 -0
  559. /package/node/{context/SizeProvider/Size.types.js → internals/plugins/models/seriesConfig/seriesConfig.types.js} +0 -0
@@ -0,0 +1,68 @@
1
+ 'use client';
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import * as React from 'react';
5
+ import { warnOnce } from '@mui/x-internals/warning';
6
+ import { blueberryTwilightPalette } from "../../../../colorPalettes/index.js";
7
+ import { useSelector } from "../../../store/useSelector.js";
8
+ import { selectorChartDrawingArea } from "../../corePlugins/useChartDimensions/useChartDimensions.selectors.js";
9
+ import { selectorChartSeriesState } from "../../corePlugins/useChartSeries/useChartSeries.selectors.js";
10
+ import { defaultizeAxis } from "./defaultizeAxis.js";
11
+ export const useChartCartesianAxis = ({
12
+ params,
13
+ store,
14
+ seriesConfig
15
+ }) => {
16
+ const {
17
+ xAxis,
18
+ yAxis,
19
+ dataset
20
+ } = params;
21
+ if (process.env.NODE_ENV !== 'production') {
22
+ const ids = [...(xAxis ?? []), ...(yAxis ?? [])].filter(axis => axis.id).map(axis => axis.id);
23
+ const duplicates = new Set(ids.filter((id, index) => ids.indexOf(id) !== index));
24
+ if (duplicates.size > 0) {
25
+ warnOnce([`MUI X: The following axis ids are duplicated: ${Array.from(duplicates).join(', ')}.`, `Please make sure that each axis has a unique id.`].join('\n'), 'error');
26
+ }
27
+ }
28
+ const drawingArea = useSelector(store, selectorChartDrawingArea);
29
+ const formattedSeries = useSelector(store, selectorChartSeriesState);
30
+
31
+ // The effect do not track any value defined synchronously during the 1st render by hooks called after `useChartCartesianAxis`
32
+ // As a consequence, the state generated by the 1st run of this useEffect will always be equal to the initialization one
33
+ const isFirstRender = React.useRef(true);
34
+ React.useEffect(() => {
35
+ if (isFirstRender.current) {
36
+ isFirstRender.current = false;
37
+ return;
38
+ }
39
+ store.update(prev => _extends({}, prev, {
40
+ cartesianAxis: _extends({}, prev.cartesianAxis, {
41
+ x: defaultizeAxis(xAxis, dataset, 'x'),
42
+ y: defaultizeAxis(yAxis, dataset, 'y')
43
+ })
44
+ }));
45
+ }, [seriesConfig, drawingArea, formattedSeries, xAxis, yAxis, dataset, store]);
46
+ return {};
47
+ };
48
+ useChartCartesianAxis.params = {
49
+ xAxis: true,
50
+ yAxis: true,
51
+ dataset: true
52
+ };
53
+ useChartCartesianAxis.getDefaultizedParams = ({
54
+ params
55
+ }) => {
56
+ return _extends({}, params, {
57
+ colors: params.colors ?? blueberryTwilightPalette,
58
+ theme: params.theme ?? 'light',
59
+ defaultizedXAxis: defaultizeAxis(params.xAxis, params.dataset, 'x'),
60
+ defaultizedYAxis: defaultizeAxis(params.yAxis, params.dataset, 'y')
61
+ });
62
+ };
63
+ useChartCartesianAxis.getInitialState = params => ({
64
+ cartesianAxis: {
65
+ x: params.defaultizedXAxis,
66
+ y: params.defaultizedYAxis
67
+ }
68
+ });
@@ -0,0 +1,87 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import { selectorChartDrawingArea } from "../../corePlugins/useChartDimensions/index.js";
3
+ import { selectorChartSeriesConfig, selectorChartSeriesProcessed } from "../../corePlugins/useChartSeries/index.js";
4
+ import { createSelector } from "../../utils/selectors.js";
5
+ import { computeAxisValue } from "./computeAxisValue.js";
6
+ import { createAxisFilterMapper, createGetAxisFilters } from "./createAxisFilterMapper.js";
7
+ export const createZoomMap = zoom => {
8
+ const zoomItemMap = new Map();
9
+ zoom.forEach(zoomItem => {
10
+ zoomItemMap.set(zoomItem.axisId, zoomItem);
11
+ });
12
+ return zoomItemMap;
13
+ };
14
+ export const selectorChartCartesianAxisState = state => state.cartesianAxis;
15
+ const selectorChartZoomState = state => state.zoom;
16
+ export const selectorChartRawXAxis = createSelector(selectorChartCartesianAxisState, axis => axis?.x);
17
+ export const selectorChartRawYAxis = createSelector(selectorChartCartesianAxisState, axis => axis?.y);
18
+
19
+ /**
20
+ * Following selectors are not exported because they exist in the MIT chart only to ba able to reuse the Zoom state from the pro.
21
+ */
22
+
23
+ const selectorChartZoomMap = createSelector(selectorChartZoomState, zoom => zoom?.zoomData && createZoomMap(zoom?.zoomData));
24
+ const selectorChartZoomOptionsLookup = createSelector(selectorChartZoomState, zoom => zoom?.optionsLookup);
25
+ const selectorChartXFilter = createSelector([selectorChartZoomMap, selectorChartZoomOptionsLookup, selectorChartSeriesConfig, selectorChartSeriesProcessed], (zoomMap, zoomOptions, seriesConfig, formattedSeries) => zoomMap && zoomOptions && createAxisFilterMapper({
26
+ zoomMap,
27
+ zoomOptions,
28
+ seriesConfig,
29
+ formattedSeries,
30
+ direction: 'x'
31
+ }));
32
+ const selectorChartYFilter = createSelector([selectorChartZoomMap, selectorChartZoomOptionsLookup, selectorChartSeriesConfig, selectorChartSeriesProcessed], (zoomMap, zoomOptions, seriesConfig, formattedSeries) => zoomMap && zoomOptions && createAxisFilterMapper({
33
+ zoomMap,
34
+ zoomOptions,
35
+ seriesConfig,
36
+ formattedSeries,
37
+ direction: 'y'
38
+ }));
39
+ const selectorChartZoomAxisFilters = createSelector([selectorChartXFilter, selectorChartYFilter, selectorChartRawXAxis, selectorChartRawYAxis], (xMapper, yMapper, xAxis, yAxis) => {
40
+ if (xMapper === undefined || yMapper === undefined) {
41
+ // Early return if there is no zoom.
42
+ return undefined;
43
+ }
44
+ const xFilters = xAxis.reduce((acc, axis, index) => {
45
+ const filter = xMapper(axis, index);
46
+ if (filter !== null) {
47
+ acc[axis.id] = filter;
48
+ }
49
+ return acc;
50
+ }, {});
51
+ const yFilters = yAxis.reduce((acc, axis, index) => {
52
+ const filter = yMapper(axis, index);
53
+ if (filter !== null) {
54
+ acc[axis.id] = filter;
55
+ }
56
+ return acc;
57
+ }, {});
58
+ if (Object.keys(xFilters).length === 0 && Object.keys(yFilters).length === 0) {
59
+ return undefined;
60
+ }
61
+ return createGetAxisFilters(_extends({}, xFilters, yFilters));
62
+ });
63
+
64
+ /**
65
+ * The only interesting selectors that merge axis data and zoom if provided.
66
+ */
67
+
68
+ export const selectorChartXAxis = createSelector([selectorChartRawXAxis, selectorChartDrawingArea, selectorChartSeriesProcessed, selectorChartSeriesConfig, selectorChartZoomMap, selectorChartZoomOptionsLookup, selectorChartZoomAxisFilters], (axis, drawingArea, formattedSeries, seriesConfig, zoomMap, zoomOptions, getFilters) => computeAxisValue({
69
+ drawingArea,
70
+ formattedSeries,
71
+ axis,
72
+ seriesConfig,
73
+ axisDirection: 'x',
74
+ zoomMap,
75
+ zoomOptions,
76
+ getFilters
77
+ }));
78
+ export const selectorChartYAxis = createSelector([selectorChartRawYAxis, selectorChartDrawingArea, selectorChartSeriesProcessed, selectorChartSeriesConfig, selectorChartZoomMap, selectorChartZoomOptionsLookup, selectorChartZoomAxisFilters], (axis, drawingArea, formattedSeries, seriesConfig, zoomMap, zoomOptions, getFilters) => computeAxisValue({
79
+ drawingArea,
80
+ formattedSeries,
81
+ axis,
82
+ seriesConfig,
83
+ axisDirection: 'y',
84
+ zoomMap,
85
+ zoomOptions,
86
+ getFilters
87
+ }));
@@ -0,0 +1,2 @@
1
+ export { useChartZAxis } from "./useChartZAxis.js";
2
+ export * from "./useChartZAxis.selectors.js";
@@ -0,0 +1,86 @@
1
+ 'use client';
2
+
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
+ import * as React from 'react';
5
+ import { getColorScale, getOrdinalColorScale } from "../../../colorScale.js";
6
+ function addDefaultId(axisConfig, defaultId) {
7
+ if (axisConfig.id !== undefined) {
8
+ return axisConfig;
9
+ }
10
+ return _extends({
11
+ id: defaultId
12
+ }, axisConfig);
13
+ }
14
+ function processColorMap(axisConfig) {
15
+ if (!axisConfig.colorMap) {
16
+ return axisConfig;
17
+ }
18
+ return _extends({}, axisConfig, {
19
+ colorScale: axisConfig.colorMap.type === 'ordinal' && axisConfig.data ? getOrdinalColorScale(_extends({
20
+ values: axisConfig.data
21
+ }, axisConfig.colorMap)) : getColorScale(axisConfig.colorMap.type === 'continuous' ? _extends({
22
+ min: axisConfig.min,
23
+ max: axisConfig.max
24
+ }, axisConfig.colorMap) : axisConfig.colorMap)
25
+ });
26
+ }
27
+ function getZAxisState(zAxis, dataset) {
28
+ if (!zAxis || zAxis.length === 0) {
29
+ return {
30
+ axis: {},
31
+ axisIds: []
32
+ };
33
+ }
34
+ const zAxisLookup = {};
35
+ const axisIds = [];
36
+ zAxis.forEach((axisConfig, index) => {
37
+ const dataKey = axisConfig.dataKey;
38
+ const defaultizedId = axisConfig.id ?? `defaultized-z-axis-${index}`;
39
+ if (dataKey === undefined || axisConfig.data !== undefined) {
40
+ zAxisLookup[defaultizedId] = processColorMap(addDefaultId(axisConfig, defaultizedId));
41
+ axisIds.push(defaultizedId);
42
+ return;
43
+ }
44
+ if (dataset === undefined) {
45
+ throw new Error('MUI X: z-axis uses `dataKey` but no `dataset` is provided.');
46
+ }
47
+ zAxisLookup[defaultizedId] = processColorMap(addDefaultId(_extends({}, axisConfig, {
48
+ data: dataset.map(d => d[dataKey])
49
+ }), defaultizedId));
50
+ axisIds.push(defaultizedId);
51
+ });
52
+ return {
53
+ axis: zAxisLookup,
54
+ axisIds
55
+ };
56
+ }
57
+ export const useChartZAxis = ({
58
+ params,
59
+ store
60
+ }) => {
61
+ const {
62
+ zAxis,
63
+ dataset
64
+ } = params;
65
+
66
+ // The effect do not track any value defined synchronously during the 1st render by hooks called after `useChartZAxis`
67
+ // As a consequence, the state generated by the 1st run of this useEffect will always be equal to the initialization one
68
+ const isFirstRender = React.useRef(true);
69
+ React.useEffect(() => {
70
+ if (isFirstRender.current) {
71
+ isFirstRender.current = false;
72
+ return;
73
+ }
74
+ store.update(prev => _extends({}, prev, {
75
+ zAxis: getZAxisState(zAxis, dataset)
76
+ }));
77
+ }, [zAxis, dataset, store]);
78
+ return {};
79
+ };
80
+ useChartZAxis.params = {
81
+ zAxis: true,
82
+ dataset: true
83
+ };
84
+ useChartZAxis.getInitialState = params => ({
85
+ zAxis: getZAxisState(params.zAxis, params.dataset)
86
+ });
@@ -0,0 +1,3 @@
1
+ import { createSelector } from "../../utils/selectors.js";
2
+ const selectRootState = state => state;
3
+ export const selectorChartZAxis = createSelector([selectRootState], state => state.zAxis);
@@ -1,3 +1,4 @@
1
1
  export * from "./helpers.js";
2
2
  export * from "./plugin.js";
3
- export * from "./chart.js";
3
+ export * from "./chart.js";
4
+ export * from "./seriesConfig/index.js";
@@ -0,0 +1,4 @@
1
+ export * from "./colorProcessor.types.js";
2
+ export * from "./extremumGetter.types.js";
3
+ export * from "./seriesConfig.types.js";
4
+ export * from "./seriesProcessor.types.js";
@@ -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,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
+ };
@@ -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,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
  }
@@ -76,6 +76,9 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
76
76
  // | These PropTypes are generated from the TypeScript type definitions |
77
77
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
78
78
  // ----------------------------------------------------------------------
79
+ apiRef: _propTypes.default.shape({
80
+ current: _propTypes.default.object
81
+ }),
79
82
  /**
80
83
  * The configuration of axes highlight.
81
84
  * Default is set to 'band' in the bar direction.
@@ -144,6 +147,11 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
144
147
  dataIndex: _propTypes.default.number,
145
148
  seriesId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])
146
149
  }),
150
+ /**
151
+ * This prop is used to help implement the accessibility logic.
152
+ * If you don't provide this prop. It falls back to a randomly generated id.
153
+ */
154
+ id: _propTypes.default.string,
147
155
  /**
148
156
  * The direction of the bar elements.
149
157
  * @default 'vertical'
@@ -164,7 +172,6 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
164
172
  * The margin between the SVG and the drawing area.
165
173
  * It's used for leaving some space for extra information such as the x- and y-axis or legend.
166
174
  * Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
167
- * @default object Depends on the charts type.
168
175
  */
169
176
  margin: _propTypes.default.shape({
170
177
  bottom: _propTypes.default.number,
@@ -218,6 +225,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
218
225
  */
219
226
  slots: _propTypes.default.object,
220
227
  sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
228
+ theme: _propTypes.default.oneOf(['dark', 'light']),
221
229
  title: _propTypes.default.string,
222
230
  /**
223
231
  * Indicate which axis to display the top of the charts.
@@ -54,7 +54,7 @@ function BarLabelPlot(props) {
54
54
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
55
55
  const barLabelTransition = (0, _web.useTransition)(bars, {
56
56
  keys: bar => `${bar.seriesId}-${bar.dataIndex}`,
57
- from: leaveStyle,
57
+ from: skipAnimation ? undefined : leaveStyle,
58
58
  leave: null,
59
59
  enter: enterStyle,
60
60
  update: enterStyle,
@@ -13,7 +13,6 @@ var React = _interopRequireWildcard(require("react"));
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
14
  var _web = require("@react-spring/web");
15
15
  var _styles = require("@mui/material/styles");
16
- var _CartesianProvider = require("../context/CartesianProvider");
17
16
  var _BarElement = require("./BarElement");
18
17
  var _getColor = _interopRequireDefault(require("./getColor"));
19
18
  var _hooks = require("../hooks");
@@ -57,7 +56,6 @@ const useAggregatedData = () => {
57
56
  stackingGroups: [],
58
57
  seriesOrder: []
59
58
  };
60
- const axisData = (0, _CartesianProvider.useCartesianContext)();
61
59
  const drawingArea = (0, _hooks.useDrawingArea)();
62
60
  const chartId = (0, _hooks.useChartId)();
63
61
  const {
@@ -66,10 +64,12 @@ const useAggregatedData = () => {
66
64
  } = seriesData;
67
65
  const {
68
66
  xAxis,
67
+ xAxisIds
68
+ } = (0, _hooks.useXAxes)();
69
+ const {
69
70
  yAxis,
70
- xAxisIds,
71
71
  yAxisIds
72
- } = axisData;
72
+ } = (0, _hooks.useYAxes)();
73
73
  const defaultXAxisId = xAxisIds[0];
74
74
  const defaultYAxisId = yAxisIds[0];
75
75
  const masks = {};
@@ -223,7 +223,7 @@ function BarPlot(props) {
223
223
  const withoutBorderRadius = !borderRadius || borderRadius <= 0;
224
224
  const transition = (0, _web.useTransition)(completedData, {
225
225
  keys: bar => `${bar.seriesId}-${bar.dataIndex}`,
226
- from: leaveStyle,
226
+ from: skipAnimation ? undefined : leaveStyle,
227
227
  leave: leaveStyle,
228
228
  enter: enterStyle,
229
229
  update: enterStyle,
@@ -231,7 +231,7 @@ function BarPlot(props) {
231
231
  });
232
232
  const maskTransition = (0, _web.useTransition)(withoutBorderRadius ? [] : masksData, {
233
233
  keys: v => v.id,
234
- from: leaveStyle,
234
+ from: skipAnimation ? undefined : leaveStyle,
235
235
  leave: leaveStyle,
236
236
  enter: enterStyle,
237
237
  update: enterStyle,
@@ -52,7 +52,8 @@ const formatter = (params, dataset) => {
52
52
  ids.forEach((id, index) => {
53
53
  const dataKey = series[id].dataKey;
54
54
  completedSeries[id] = (0, _extends2.default)({
55
- layout: 'vertical'
55
+ layout: 'vertical',
56
+ labelMarkType: 'square'
56
57
  }, series[id], {
57
58
  data: dataKey ? dataset.map(data => {
58
59
  const value = data[dataKey];
@@ -16,7 +16,7 @@ const legendGetter = params => {
16
16
  return acc;
17
17
  }
18
18
  acc.push({
19
- markType: series[seriesId].labelMarkType ?? 'square',
19
+ markType: series[seriesId].labelMarkType,
20
20
  id: seriesId,
21
21
  seriesId,
22
22
  color: series[seriesId].color,
@@ -9,8 +9,7 @@ var _extremums = require("./extremums");
9
9
  var _formatter = _interopRequireDefault(require("./formatter"));
10
10
  var _getColor = _interopRequireDefault(require("./getColor"));
11
11
  const plugin = exports.plugin = {
12
- seriesType: 'bar',
13
- seriesFormatter: _formatter.default,
12
+ seriesProcessor: _formatter.default,
14
13
  colorProcessor: _getColor.default,
15
14
  xExtremumGetter: _extremums.getExtremumX,
16
15
  yExtremumGetter: _extremums.getExtremumY
@@ -50,11 +50,17 @@ const ChartContainer = exports.ChartContainer = /*#__PURE__*/React.forwardRef(fu
50
50
  }))
51
51
  }));
52
52
  });
53
+
54
+ // @ts-ignore
55
+
53
56
  process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
54
57
  // ----------------------------- Warning --------------------------------
55
58
  // | These PropTypes are generated from the TypeScript type definitions |
56
59
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
57
60
  // ----------------------------------------------------------------------
61
+ apiRef: _propTypes.default.shape({
62
+ current: _propTypes.default.object
63
+ }),
58
64
  children: _propTypes.default.node,
59
65
  className: _propTypes.default.string,
60
66
  /**
@@ -84,11 +90,15 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
84
90
  dataIndex: _propTypes.default.number,
85
91
  seriesId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])
86
92
  }),
93
+ /**
94
+ * This prop is used to help implement the accessibility logic.
95
+ * If you don't provide this prop. It falls back to a randomly generated id.
96
+ */
97
+ id: _propTypes.default.string,
87
98
  /**
88
99
  * The margin between the SVG and the drawing area.
89
100
  * It's used for leaving some space for extra information such as the x- and y-axis or legend.
90
101
  * Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
91
- * @default object Depends on the charts type.
92
102
  */
93
103
  margin: _propTypes.default.shape({
94
104
  bottom: _propTypes.default.number,
@@ -102,23 +112,19 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
102
112
  * @param {HighlightItemData | null} highlightedItem The newly highlighted item.
103
113
  */
104
114
  onHighlightChange: _propTypes.default.func,
105
- /**
106
- * An array of plugins defining how to preprocess data.
107
- * If not provided, the container supports line, bar, scatter and pie charts.
108
- */
109
- plugins: _propTypes.default.arrayOf(_propTypes.default.object),
110
115
  /**
111
116
  * The array of series to display.
112
117
  * Each type of series has its own specificity.
113
118
  * Please refer to the appropriate docs page to learn more about it.
114
119
  */
115
- series: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
120
+ series: _propTypes.default.arrayOf(_propTypes.default.object),
116
121
  /**
117
122
  * If `true`, animations are skipped.
118
123
  * If unset or `false`, the animations respects the user's `prefers-reduced-motion` setting.
119
124
  */
120
125
  skipAnimation: _propTypes.default.bool,
121
126
  sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
127
+ theme: _propTypes.default.oneOf(['dark', 'light']),
122
128
  title: _propTypes.default.string,
123
129
  /**
124
130
  * The width of the chart in px. If not defined, it takes the width of the parent element.