@mui/x-charts 7.16.0 → 7.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/BarChart/BarChart.js +13 -0
  2. package/BarChart/BarElement.js +2 -0
  3. package/BarChart/BarLabel/BarLabel.js +2 -0
  4. package/BarChart/BarPlot.js +2 -0
  5. package/BarChart/legend.js +3 -2
  6. package/BarChart/useBarChartProps.js +2 -0
  7. package/CHANGELOG.md +184 -4
  8. package/ChartContainer/ChartContainer.js +2 -0
  9. package/ChartContainer/useChartContainerProps.js +2 -0
  10. package/ChartContainer/useDefaultizeAxis.js +2 -0
  11. package/ChartsAxis/ChartsAxis.js +2 -0
  12. package/ChartsAxisHighlight/ChartsAxisHighlight.js +2 -0
  13. package/ChartsClipPath/ChartsClipPath.js +2 -0
  14. package/ChartsGrid/ChartsGrid.js +2 -0
  15. package/ChartsLegend/ChartsLegend.d.ts +2 -2
  16. package/ChartsLegend/ChartsLegend.js +11 -1
  17. package/ChartsLegend/ChartsLegendItem.d.ts +26 -0
  18. package/ChartsLegend/ChartsLegendItem.js +65 -0
  19. package/ChartsLegend/ContinuousColorLegend.js +2 -0
  20. package/ChartsLegend/DefaultChartsLegend.d.ts +9 -1
  21. package/ChartsLegend/DefaultChartsLegend.js +26 -4
  22. package/ChartsLegend/LegendPerItem.d.ts +1 -0
  23. package/ChartsLegend/LegendPerItem.js +19 -28
  24. package/ChartsLegend/PiecewiseColorLegend.d.ts +9 -1
  25. package/ChartsLegend/PiecewiseColorLegend.js +28 -7
  26. package/ChartsLegend/chartsLegend.types.d.ts +39 -1
  27. package/ChartsLegend/chartsLegendClasses.d.ts +2 -0
  28. package/ChartsLegend/chartsLegendClasses.js +1 -1
  29. package/ChartsLegend/useAxis.js +2 -0
  30. package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +3 -1
  31. package/ChartsOverlay/ChartsLoadingOverlay.js +2 -0
  32. package/ChartsOverlay/ChartsNoDataOverlay.js +2 -0
  33. package/ChartsOverlay/ChartsOverlay.js +2 -0
  34. package/ChartsReferenceLine/ChartsReferenceLine.js +2 -0
  35. package/ChartsReferenceLine/ChartsXReferenceLine.js +3 -1
  36. package/ChartsReferenceLine/ChartsYReferenceLine.js +3 -1
  37. package/ChartsSurface/ChartsSurface.js +2 -0
  38. package/ChartsText/ChartsText.js +2 -0
  39. package/ChartsTooltip/ChartsTooltip.js +2 -0
  40. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +2 -0
  41. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +2 -0
  42. package/ChartsTooltip/index.d.ts +3 -0
  43. package/ChartsTooltip/index.js +4 -1
  44. package/ChartsTooltip/useAxisTooltip.d.ts +18 -0
  45. package/ChartsTooltip/useAxisTooltip.js +84 -0
  46. package/ChartsTooltip/useItemTooltip.d.ts +10 -0
  47. package/ChartsTooltip/useItemTooltip.js +64 -0
  48. package/ChartsTooltip/utils.d.ts +2 -1
  49. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +2 -0
  50. package/ChartsXAxis/ChartsXAxis.js +2 -0
  51. package/ChartsYAxis/ChartsYAxis.js +2 -0
  52. package/Gauge/Gauge.js +2 -0
  53. package/Gauge/GaugeContainer.js +2 -0
  54. package/Gauge/GaugeReferenceArc.js +2 -0
  55. package/Gauge/GaugeValueArc.js +2 -0
  56. package/Gauge/GaugeValueText.js +2 -0
  57. package/LineChart/AnimatedArea.js +2 -0
  58. package/LineChart/AnimatedLine.js +14 -22
  59. package/LineChart/AreaElement.js +2 -0
  60. package/LineChart/AreaPlot.js +2 -0
  61. package/LineChart/CircleMarkElement.d.ts +34 -0
  62. package/LineChart/CircleMarkElement.js +107 -0
  63. package/LineChart/LineChart.d.ts +4 -0
  64. package/LineChart/LineChart.js +17 -0
  65. package/LineChart/LineElement.js +2 -0
  66. package/LineChart/LineHighlightElement.js +2 -0
  67. package/LineChart/LineHighlightPlot.js +2 -0
  68. package/LineChart/LinePlot.js +2 -0
  69. package/LineChart/MarkElement.d.ts +1 -19
  70. package/LineChart/MarkElement.js +3 -19
  71. package/LineChart/MarkPlot.d.ts +6 -0
  72. package/LineChart/MarkPlot.js +13 -3
  73. package/LineChart/index.d.ts +2 -0
  74. package/LineChart/index.js +2 -1
  75. package/LineChart/legend.js +3 -2
  76. package/LineChart/markElementClasses.d.ts +20 -0
  77. package/LineChart/markElementClasses.js +19 -0
  78. package/LineChart/useLineChartProps.js +7 -3
  79. package/PieChart/PieArc.js +2 -0
  80. package/PieChart/PieArcLabel.js +2 -0
  81. package/PieChart/PieArcLabelPlot.js +2 -0
  82. package/PieChart/PieArcPlot.js +2 -0
  83. package/PieChart/PieChart.js +13 -0
  84. package/PieChart/PiePlot.js +2 -0
  85. package/PieChart/dataTransform/useTransformData.js +2 -0
  86. package/PieChart/legend.js +3 -1
  87. package/ResponsiveChartContainer/ResponsiveChartContainer.d.ts +10 -0
  88. package/ResponsiveChartContainer/ResponsiveChartContainer.js +12 -0
  89. package/ResponsiveChartContainer/useChartContainerDimensions.d.ts +1 -1
  90. package/ResponsiveChartContainer/useChartContainerDimensions.js +35 -9
  91. package/ResponsiveChartContainer/useResponsiveChartContainerProps.js +5 -2
  92. package/ScatterChart/Scatter.js +2 -0
  93. package/ScatterChart/ScatterChart.js +13 -0
  94. package/ScatterChart/ScatterPlot.js +2 -0
  95. package/ScatterChart/legend.js +3 -2
  96. package/ScatterChart/useScatterChartProps.js +2 -0
  97. package/SparkLineChart/SparkLineChart.js +12 -0
  98. package/context/CartesianProvider/CartesianProvider.js +5 -3
  99. package/context/CartesianProvider/getAxisExtremum.d.ts +1 -1
  100. package/context/CartesianProvider/getAxisExtremum.js +5 -4
  101. package/context/CartesianProvider/index.d.ts +0 -5
  102. package/context/CartesianProvider/index.js +1 -6
  103. package/context/CartesianProvider/useCartesianContext.js +2 -0
  104. package/context/DrawingProvider.js +2 -0
  105. package/context/HighlightedProvider/HighlightedProvider.js +2 -0
  106. package/context/HighlightedProvider/useHighlighted.js +2 -0
  107. package/context/HighlightedProvider/useItemHighlighted.js +2 -0
  108. package/context/InteractionProvider.js +2 -0
  109. package/context/PluginProvider/ExtremumGetter.types.d.ts +1 -0
  110. package/context/PluginProvider/Plugin.types.d.ts +4 -0
  111. package/context/PluginProvider/PluginContext.js +3 -1
  112. package/context/PluginProvider/PluginProvider.js +2 -0
  113. package/context/PluginProvider/index.d.ts +2 -0
  114. package/context/PluginProvider/index.js +3 -1
  115. package/context/PluginProvider/mergePlugins.d.ts +10 -0
  116. package/context/PluginProvider/mergePlugins.js +11 -1
  117. package/context/PluginProvider/useColorProcessor.js +2 -0
  118. package/context/PluginProvider/useRadiusExtremumGetter.d.ts +4 -0
  119. package/context/PluginProvider/useRadiusExtremumGetter.js +17 -0
  120. package/context/PluginProvider/useRotationExtremumGetter.d.ts +4 -0
  121. package/context/PluginProvider/useRotationExtremumGetter.js +17 -0
  122. package/context/PluginProvider/useSeriesFormatter.js +2 -0
  123. package/context/PolarProvider/Polar.types.d.ts +42 -0
  124. package/context/PolarProvider/Polar.types.js +1 -0
  125. package/context/PolarProvider/PolarContext.d.ts +4 -0
  126. package/context/PolarProvider/PolarContext.js +13 -0
  127. package/context/PolarProvider/PolarProvider.d.ts +4 -0
  128. package/context/PolarProvider/PolarProvider.js +49 -0
  129. package/context/PolarProvider/getAxisExtremum.d.ts +4 -0
  130. package/context/PolarProvider/getAxisExtremum.js +20 -0
  131. package/context/PolarProvider/index.d.ts +0 -0
  132. package/context/PolarProvider/index.js +0 -0
  133. package/context/PolarProvider/usePolarContext.d.ts +2 -0
  134. package/context/PolarProvider/usePolarContext.js +10 -0
  135. package/context/SeriesProvider/SeriesProvider.js +2 -0
  136. package/context/ZAxisContextProvider.js +2 -0
  137. package/hooks/useAxis.js +2 -0
  138. package/hooks/useAxisEvents.js +2 -0
  139. package/hooks/useChartDimensions.js +2 -0
  140. package/hooks/useChartId.js +2 -0
  141. package/hooks/useColorScale.js +2 -0
  142. package/hooks/useDrawingArea.js +2 -0
  143. package/hooks/useInteractionItemProps.js +2 -0
  144. package/hooks/useMounted.js +2 -0
  145. package/hooks/useReducedMotion.js +2 -0
  146. package/hooks/useScale.js +2 -0
  147. package/hooks/useSeries.js +2 -0
  148. package/hooks/useSvgRef.js +2 -0
  149. package/hooks/useTicks.js +2 -0
  150. package/index.js +1 -1
  151. package/internals/computeAxisValue.d.ts +38 -0
  152. package/{modern/context/CartesianProvider/computeValue.js → internals/computeAxisValue.js} +28 -15
  153. package/internals/index.d.ts +1 -0
  154. package/internals/index.js +1 -0
  155. package/models/axis.d.ts +20 -0
  156. package/models/seriesType/config.d.ts +6 -2
  157. package/modern/BarChart/BarChart.js +13 -0
  158. package/modern/BarChart/BarElement.js +2 -0
  159. package/modern/BarChart/BarLabel/BarLabel.js +2 -0
  160. package/modern/BarChart/BarPlot.js +2 -0
  161. package/modern/BarChart/legend.js +3 -2
  162. package/modern/BarChart/useBarChartProps.js +2 -0
  163. package/modern/ChartContainer/ChartContainer.js +2 -0
  164. package/modern/ChartContainer/useChartContainerProps.js +2 -0
  165. package/modern/ChartContainer/useDefaultizeAxis.js +2 -0
  166. package/modern/ChartsAxis/ChartsAxis.js +2 -0
  167. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +2 -0
  168. package/modern/ChartsClipPath/ChartsClipPath.js +2 -0
  169. package/modern/ChartsGrid/ChartsGrid.js +2 -0
  170. package/modern/ChartsLegend/ChartsLegend.js +11 -1
  171. package/modern/ChartsLegend/ChartsLegendItem.js +65 -0
  172. package/modern/ChartsLegend/ContinuousColorLegend.js +2 -0
  173. package/modern/ChartsLegend/DefaultChartsLegend.js +26 -4
  174. package/modern/ChartsLegend/LegendPerItem.js +19 -28
  175. package/modern/ChartsLegend/PiecewiseColorLegend.js +28 -7
  176. package/modern/ChartsLegend/chartsLegendClasses.js +1 -1
  177. package/modern/ChartsLegend/useAxis.js +2 -0
  178. package/modern/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +3 -1
  179. package/modern/ChartsOverlay/ChartsLoadingOverlay.js +2 -0
  180. package/modern/ChartsOverlay/ChartsNoDataOverlay.js +2 -0
  181. package/modern/ChartsOverlay/ChartsOverlay.js +2 -0
  182. package/modern/ChartsReferenceLine/ChartsReferenceLine.js +2 -0
  183. package/modern/ChartsReferenceLine/ChartsXReferenceLine.js +3 -1
  184. package/modern/ChartsReferenceLine/ChartsYReferenceLine.js +3 -1
  185. package/modern/ChartsSurface/ChartsSurface.js +2 -0
  186. package/modern/ChartsText/ChartsText.js +2 -0
  187. package/modern/ChartsTooltip/ChartsTooltip.js +2 -0
  188. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +2 -0
  189. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +2 -0
  190. package/modern/ChartsTooltip/index.js +4 -1
  191. package/modern/ChartsTooltip/useAxisTooltip.js +84 -0
  192. package/modern/ChartsTooltip/useItemTooltip.js +64 -0
  193. package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +2 -0
  194. package/modern/ChartsXAxis/ChartsXAxis.js +2 -0
  195. package/modern/ChartsYAxis/ChartsYAxis.js +2 -0
  196. package/modern/Gauge/Gauge.js +2 -0
  197. package/modern/Gauge/GaugeContainer.js +2 -0
  198. package/modern/Gauge/GaugeReferenceArc.js +2 -0
  199. package/modern/Gauge/GaugeValueArc.js +2 -0
  200. package/modern/Gauge/GaugeValueText.js +2 -0
  201. package/modern/LineChart/AnimatedArea.js +2 -0
  202. package/modern/LineChart/AnimatedLine.js +14 -22
  203. package/modern/LineChart/AreaElement.js +2 -0
  204. package/modern/LineChart/AreaPlot.js +2 -0
  205. package/modern/LineChart/CircleMarkElement.js +107 -0
  206. package/modern/LineChart/LineChart.js +17 -0
  207. package/modern/LineChart/LineElement.js +2 -0
  208. package/modern/LineChart/LineHighlightElement.js +2 -0
  209. package/modern/LineChart/LineHighlightPlot.js +2 -0
  210. package/modern/LineChart/LinePlot.js +2 -0
  211. package/modern/LineChart/MarkElement.js +3 -19
  212. package/modern/LineChart/MarkPlot.js +13 -3
  213. package/modern/LineChart/index.js +2 -1
  214. package/modern/LineChart/legend.js +3 -2
  215. package/modern/LineChart/markElementClasses.js +19 -0
  216. package/modern/LineChart/useLineChartProps.js +7 -3
  217. package/modern/PieChart/PieArc.js +2 -0
  218. package/modern/PieChart/PieArcLabel.js +2 -0
  219. package/modern/PieChart/PieArcLabelPlot.js +2 -0
  220. package/modern/PieChart/PieArcPlot.js +2 -0
  221. package/modern/PieChart/PieChart.js +13 -0
  222. package/modern/PieChart/PiePlot.js +2 -0
  223. package/modern/PieChart/dataTransform/useTransformData.js +2 -0
  224. package/modern/PieChart/legend.js +3 -1
  225. package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +12 -0
  226. package/modern/ResponsiveChartContainer/useChartContainerDimensions.js +35 -9
  227. package/modern/ResponsiveChartContainer/useResponsiveChartContainerProps.js +5 -2
  228. package/modern/ScatterChart/Scatter.js +2 -0
  229. package/modern/ScatterChart/ScatterChart.js +13 -0
  230. package/modern/ScatterChart/ScatterPlot.js +2 -0
  231. package/modern/ScatterChart/legend.js +3 -2
  232. package/modern/ScatterChart/useScatterChartProps.js +2 -0
  233. package/modern/SparkLineChart/SparkLineChart.js +12 -0
  234. package/modern/context/CartesianProvider/CartesianProvider.js +5 -3
  235. package/modern/context/CartesianProvider/getAxisExtremum.js +5 -4
  236. package/modern/context/CartesianProvider/index.js +1 -6
  237. package/modern/context/CartesianProvider/useCartesianContext.js +2 -0
  238. package/modern/context/DrawingProvider.js +2 -0
  239. package/modern/context/HighlightedProvider/HighlightedProvider.js +2 -0
  240. package/modern/context/HighlightedProvider/useHighlighted.js +2 -0
  241. package/modern/context/HighlightedProvider/useItemHighlighted.js +2 -0
  242. package/modern/context/InteractionProvider.js +2 -0
  243. package/modern/context/PluginProvider/PluginContext.js +3 -1
  244. package/modern/context/PluginProvider/PluginProvider.js +2 -0
  245. package/modern/context/PluginProvider/index.js +3 -1
  246. package/modern/context/PluginProvider/mergePlugins.js +11 -1
  247. package/modern/context/PluginProvider/useColorProcessor.js +2 -0
  248. package/modern/context/PluginProvider/useRadiusExtremumGetter.js +17 -0
  249. package/modern/context/PluginProvider/useRotationExtremumGetter.js +17 -0
  250. package/modern/context/PluginProvider/useSeriesFormatter.js +2 -0
  251. package/modern/context/PolarProvider/Polar.types.js +1 -0
  252. package/modern/context/PolarProvider/PolarContext.js +13 -0
  253. package/modern/context/PolarProvider/PolarProvider.js +49 -0
  254. package/modern/context/PolarProvider/getAxisExtremum.js +20 -0
  255. package/modern/context/PolarProvider/index.js +0 -0
  256. package/modern/context/PolarProvider/usePolarContext.js +10 -0
  257. package/modern/context/SeriesProvider/SeriesProvider.js +2 -0
  258. package/modern/context/ZAxisContextProvider.js +2 -0
  259. package/modern/hooks/useAxis.js +2 -0
  260. package/modern/hooks/useAxisEvents.js +2 -0
  261. package/modern/hooks/useChartDimensions.js +2 -0
  262. package/modern/hooks/useChartId.js +2 -0
  263. package/modern/hooks/useColorScale.js +2 -0
  264. package/modern/hooks/useDrawingArea.js +2 -0
  265. package/modern/hooks/useInteractionItemProps.js +2 -0
  266. package/modern/hooks/useMounted.js +2 -0
  267. package/modern/hooks/useReducedMotion.js +2 -0
  268. package/modern/hooks/useScale.js +2 -0
  269. package/modern/hooks/useSeries.js +2 -0
  270. package/modern/hooks/useSvgRef.js +2 -0
  271. package/modern/hooks/useTicks.js +2 -0
  272. package/modern/index.js +1 -1
  273. package/{context/CartesianProvider/computeValue.js → modern/internals/computeAxisValue.js} +28 -15
  274. package/modern/internals/index.js +1 -0
  275. package/node/BarChart/BarChart.js +12 -0
  276. package/node/BarChart/BarElement.js +1 -0
  277. package/node/BarChart/BarLabel/BarLabel.js +1 -0
  278. package/node/BarChart/BarPlot.js +1 -0
  279. package/node/BarChart/legend.js +3 -2
  280. package/node/BarChart/useBarChartProps.js +1 -0
  281. package/node/ChartContainer/ChartContainer.js +1 -0
  282. package/node/ChartContainer/useChartContainerProps.js +1 -0
  283. package/node/ChartContainer/useDefaultizeAxis.js +1 -0
  284. package/node/ChartsAxis/ChartsAxis.js +1 -0
  285. package/node/ChartsAxisHighlight/ChartsAxisHighlight.js +1 -0
  286. package/node/ChartsClipPath/ChartsClipPath.js +1 -0
  287. package/node/ChartsGrid/ChartsGrid.js +1 -0
  288. package/node/ChartsLegend/ChartsLegend.js +10 -1
  289. package/node/ChartsLegend/ChartsLegendItem.js +72 -0
  290. package/node/ChartsLegend/ContinuousColorLegend.js +1 -0
  291. package/node/ChartsLegend/DefaultChartsLegend.js +25 -4
  292. package/node/ChartsLegend/LegendPerItem.js +18 -28
  293. package/node/ChartsLegend/PiecewiseColorLegend.js +27 -7
  294. package/node/ChartsLegend/chartsLegendClasses.js +1 -1
  295. package/node/ChartsLegend/useAxis.js +1 -0
  296. package/node/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +2 -1
  297. package/node/ChartsOverlay/ChartsLoadingOverlay.js +1 -0
  298. package/node/ChartsOverlay/ChartsNoDataOverlay.js +1 -0
  299. package/node/ChartsOverlay/ChartsOverlay.js +1 -0
  300. package/node/ChartsReferenceLine/ChartsReferenceLine.js +1 -0
  301. package/node/ChartsReferenceLine/ChartsXReferenceLine.js +2 -1
  302. package/node/ChartsReferenceLine/ChartsYReferenceLine.js +2 -1
  303. package/node/ChartsSurface/ChartsSurface.js +1 -0
  304. package/node/ChartsText/ChartsText.js +1 -0
  305. package/node/ChartsTooltip/ChartsTooltip.js +1 -0
  306. package/node/ChartsTooltip/DefaultChartsAxisTooltipContent.js +1 -0
  307. package/node/ChartsTooltip/DefaultChartsItemTooltipContent.js +1 -0
  308. package/node/ChartsTooltip/index.js +42 -1
  309. package/node/ChartsTooltip/useAxisTooltip.js +90 -0
  310. package/node/ChartsTooltip/useItemTooltip.js +71 -0
  311. package/node/ChartsVoronoiHandler/ChartsVoronoiHandler.js +1 -0
  312. package/node/ChartsXAxis/ChartsXAxis.js +1 -0
  313. package/node/ChartsYAxis/ChartsYAxis.js +1 -0
  314. package/node/Gauge/Gauge.js +1 -0
  315. package/node/Gauge/GaugeContainer.js +1 -0
  316. package/node/Gauge/GaugeReferenceArc.js +1 -0
  317. package/node/Gauge/GaugeValueArc.js +1 -0
  318. package/node/Gauge/GaugeValueText.js +1 -0
  319. package/node/LineChart/AnimatedArea.js +1 -0
  320. package/node/LineChart/AnimatedLine.js +13 -22
  321. package/node/LineChart/AreaElement.js +1 -0
  322. package/node/LineChart/AreaPlot.js +1 -0
  323. package/node/LineChart/CircleMarkElement.js +113 -0
  324. package/node/LineChart/LineChart.js +16 -0
  325. package/node/LineChart/LineElement.js +1 -0
  326. package/node/LineChart/LineHighlightElement.js +1 -0
  327. package/node/LineChart/LineHighlightPlot.js +1 -0
  328. package/node/LineChart/LinePlot.js +1 -0
  329. package/node/LineChart/MarkElement.js +3 -22
  330. package/node/LineChart/MarkPlot.js +12 -3
  331. package/node/LineChart/index.js +29 -1
  332. package/node/LineChart/legend.js +3 -2
  333. package/node/LineChart/markElementClasses.js +28 -0
  334. package/node/LineChart/useLineChartProps.js +6 -3
  335. package/node/PieChart/PieArc.js +1 -0
  336. package/node/PieChart/PieArcLabel.js +1 -0
  337. package/node/PieChart/PieArcLabelPlot.js +1 -0
  338. package/node/PieChart/PieArcPlot.js +1 -0
  339. package/node/PieChart/PieChart.js +12 -0
  340. package/node/PieChart/PiePlot.js +1 -0
  341. package/node/PieChart/dataTransform/useTransformData.js +1 -0
  342. package/node/PieChart/legend.js +3 -1
  343. package/node/ResponsiveChartContainer/ResponsiveChartContainer.js +11 -0
  344. package/node/ResponsiveChartContainer/useChartContainerDimensions.js +34 -9
  345. package/node/ResponsiveChartContainer/useResponsiveChartContainerProps.js +4 -2
  346. package/node/ScatterChart/Scatter.js +1 -0
  347. package/node/ScatterChart/ScatterChart.js +12 -0
  348. package/node/ScatterChart/ScatterPlot.js +1 -0
  349. package/node/ScatterChart/legend.js +3 -2
  350. package/node/ScatterChart/useScatterChartProps.js +1 -0
  351. package/node/SparkLineChart/SparkLineChart.js +11 -0
  352. package/node/context/CartesianProvider/CartesianProvider.js +4 -3
  353. package/node/context/CartesianProvider/getAxisExtremum.js +5 -4
  354. package/node/context/CartesianProvider/index.js +1 -13
  355. package/node/context/CartesianProvider/useCartesianContext.js +1 -0
  356. package/node/context/DrawingProvider.js +1 -0
  357. package/node/context/HighlightedProvider/HighlightedProvider.js +1 -0
  358. package/node/context/HighlightedProvider/useHighlighted.js +1 -0
  359. package/node/context/HighlightedProvider/useItemHighlighted.js +1 -0
  360. package/node/context/InteractionProvider.js +1 -0
  361. package/node/context/PluginProvider/PluginContext.js +3 -1
  362. package/node/context/PluginProvider/PluginProvider.js +1 -0
  363. package/node/context/PluginProvider/index.js +22 -0
  364. package/node/context/PluginProvider/mergePlugins.js +11 -1
  365. package/node/context/PluginProvider/useColorProcessor.js +1 -0
  366. package/node/context/PluginProvider/useRadiusExtremumGetter.js +23 -0
  367. package/node/context/PluginProvider/useRotationExtremumGetter.js +23 -0
  368. package/node/context/PluginProvider/useSeriesFormatter.js +1 -0
  369. package/node/context/PolarProvider/Polar.types.js +5 -0
  370. package/node/context/PolarProvider/PolarContext.js +20 -0
  371. package/node/context/PolarProvider/PolarProvider.js +54 -0
  372. package/node/context/PolarProvider/getAxisExtremum.js +27 -0
  373. package/node/context/PolarProvider/index.js +1 -0
  374. package/node/context/PolarProvider/usePolarContext.js +17 -0
  375. package/node/context/SeriesProvider/SeriesProvider.js +1 -0
  376. package/node/context/ZAxisContextProvider.js +1 -0
  377. package/node/hooks/useAxis.js +1 -0
  378. package/node/hooks/useAxisEvents.js +1 -0
  379. package/node/hooks/useChartDimensions.js +1 -0
  380. package/node/hooks/useChartId.js +1 -0
  381. package/node/hooks/useColorScale.js +1 -0
  382. package/node/hooks/useDrawingArea.js +1 -0
  383. package/node/hooks/useInteractionItemProps.js +1 -0
  384. package/node/hooks/useMounted.js +1 -0
  385. package/node/hooks/useReducedMotion.js +1 -0
  386. package/node/hooks/useScale.js +1 -0
  387. package/node/hooks/useSeries.js +1 -0
  388. package/node/hooks/useSvgRef.js +1 -0
  389. package/node/hooks/useTicks.js +1 -0
  390. package/node/index.js +1 -1
  391. package/node/{context/CartesianProvider/computeValue.js → internals/computeAxisValue.js} +29 -16
  392. package/node/internals/index.js +12 -0
  393. package/package.json +4 -4
  394. package/context/CartesianProvider/computeValue.d.ts +0 -30
  395. package/internals/warning.d.ts +0 -2
  396. package/internals/warning.js +0 -21
  397. package/modern/internals/warning.js +0 -21
  398. package/node/internals/warning.js +0 -28
@@ -1,8 +1,14 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
3
5
  import ownerWindow from '@mui/utils/ownerWindow';
4
- export const useChartContainerDimensions = (inWidth, inHeight) => {
5
- const displayError = React.useRef(false);
6
+ export const useChartContainerDimensions = (inWidth, inHeight, resolveSizeBeforeRender) => {
7
+ const stateRef = React.useRef({
8
+ displayError: false,
9
+ initialCompute: true,
10
+ computeRun: 0
11
+ });
6
12
  const rootRef = React.useRef(null);
7
13
  const [width, setWidth] = React.useState(0);
8
14
  const [height, setHeight] = React.useState(0);
@@ -11,7 +17,7 @@ export const useChartContainerDimensions = (inWidth, inHeight) => {
11
17
  const computeSize = React.useCallback(() => {
12
18
  const mainEl = rootRef?.current;
13
19
  if (!mainEl) {
14
- return;
20
+ return {};
15
21
  }
16
22
  const win = ownerWindow(mainEl);
17
23
  const computedStyle = win.getComputedStyle(mainEl);
@@ -19,11 +25,31 @@ export const useChartContainerDimensions = (inWidth, inHeight) => {
19
25
  const newWidth = Math.floor(parseFloat(computedStyle.width)) || 0;
20
26
  setWidth(newWidth);
21
27
  setHeight(newHeight);
28
+ return {
29
+ width: newWidth,
30
+ height: newHeight
31
+ };
22
32
  }, []);
23
33
  React.useEffect(() => {
24
34
  // Ensure the error detection occurs after the first rendering.
25
- displayError.current = true;
35
+ stateRef.current.displayError = true;
26
36
  }, []);
37
+
38
+ // This effect is used to compute the size of the container on the initial render.
39
+ // It is not bound to the raf loop to avoid an unwanted "resize" event.
40
+ // https://github.com/mui/mui-x/issues/13477#issuecomment-2336634785
41
+ useEnhancedEffect(() => {
42
+ // computeRun is used to avoid infinite loops.
43
+ if (!resolveSizeBeforeRender || !stateRef.current.initialCompute || stateRef.current.computeRun > 20) {
44
+ return;
45
+ }
46
+ const computedSize = computeSize();
47
+ if (computedSize.width !== width || computedSize.height !== height) {
48
+ stateRef.current.computeRun += 1;
49
+ } else if (stateRef.current.initialCompute) {
50
+ stateRef.current.initialCompute = false;
51
+ }
52
+ }, [width, height, computeSize, resolveSizeBeforeRender]);
27
53
  useEnhancedEffect(() => {
28
54
  if (inWidth !== undefined && inHeight !== undefined) {
29
55
  return () => {};
@@ -45,7 +71,7 @@ export const useChartContainerDimensions = (inWidth, inHeight) => {
45
71
  }
46
72
  return () => {
47
73
  if (animationFrame) {
48
- window.cancelAnimationFrame(animationFrame);
74
+ cancelAnimationFrame(animationFrame);
49
75
  }
50
76
  if (elementToObserve) {
51
77
  observer.unobserve(elementToObserve);
@@ -53,13 +79,13 @@ export const useChartContainerDimensions = (inWidth, inHeight) => {
53
79
  };
54
80
  }, [computeSize, inHeight, inWidth]);
55
81
  if (process.env.NODE_ENV !== 'production') {
56
- if (displayError.current && inWidth === undefined && width === 0) {
82
+ if (stateRef.current.displayError && inWidth === undefined && width === 0) {
57
83
  console.error(`MUI X: ChartContainer does not have \`width\` prop, and its container has no \`width\` defined.`);
58
- displayError.current = false;
84
+ stateRef.current.displayError = false;
59
85
  }
60
- if (displayError.current && inHeight === undefined && height === 0) {
86
+ if (stateRef.current.displayError && inHeight === undefined && height === 0) {
61
87
  console.error(`MUI X: ChartContainer does not have \`height\` prop, and its container has no \`height\` defined.`);
62
- displayError.current = false;
88
+ stateRef.current.displayError = false;
63
89
  }
64
90
  }
65
91
  return {
@@ -1,11 +1,14 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["width", "height", "margin", "children", "series", "colors", "dataset", "desc", "disableAxisListener", "highlightedItem", "onHighlightChange", "plugins", "sx", "title", "viewBox", "xAxis", "yAxis", "zAxis"];
5
+ const _excluded = ["width", "height", "resolveSizeBeforeRender", "margin", "children", "series", "colors", "dataset", "desc", "disableAxisListener", "highlightedItem", "onHighlightChange", "plugins", "sx", "title", "viewBox", "xAxis", "yAxis", "zAxis"];
4
6
  import { useChartContainerDimensions } from "./useChartContainerDimensions.js";
5
7
  export const useResponsiveChartContainerProps = (props, ref) => {
6
8
  const {
7
9
  width,
8
10
  height,
11
+ resolveSizeBeforeRender,
9
12
  margin,
10
13
  children,
11
14
  series,
@@ -28,7 +31,7 @@ export const useResponsiveChartContainerProps = (props, ref) => {
28
31
  containerRef,
29
32
  width: dWidth,
30
33
  height: dHeight
31
- } = useChartContainerDimensions(width, height);
34
+ } = useChartContainerDimensions(width, height, resolveSizeBeforeRender);
32
35
  const resizableChartContainerProps = _extends({}, other, {
33
36
  ownerState: {
34
37
  width,
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import PropTypes from 'prop-types';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import PropTypes from 'prop-types';
@@ -132,6 +134,7 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
132
134
  itemMarkWidth: PropTypes.number,
133
135
  labelStyle: PropTypes.object,
134
136
  markGap: PropTypes.number,
137
+ onItemClick: PropTypes.func,
135
138
  padding: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
136
139
  bottom: PropTypes.number,
137
140
  left: PropTypes.number,
@@ -174,6 +177,16 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
174
177
  * @param {ScatterItemIdentifier} scatterItemIdentifier The scatter item identifier.
175
178
  */
176
179
  onItemClick: PropTypes.func,
180
+ /**
181
+ * The chart will try to wait for the parent container to resolve its size
182
+ * before it renders for the first time.
183
+ *
184
+ * This can be useful in some scenarios where the chart appear to grow after
185
+ * the first render, like when used inside a grid.
186
+ *
187
+ * @default false
188
+ */
189
+ resolveSizeBeforeRender: PropTypes.bool,
177
190
  /**
178
191
  * Indicate which axis to display the right of the charts.
179
192
  * Can be a string (the id of the axis) or an object `ChartsYAxisProps`.
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import PropTypes from 'prop-types';
@@ -10,9 +10,10 @@ const legendGetter = params => {
10
10
  return acc;
11
11
  }
12
12
  acc.push({
13
+ id: seriesId,
14
+ seriesId,
13
15
  color: series[seriesId].color,
14
- label: formattedLabel,
15
- id: seriesId
16
+ label: formattedLabel
16
17
  });
17
18
  return acc;
18
19
  }, []);
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["xAxis", "yAxis", "zAxis", "series", "tooltip", "axisHighlight", "voronoiMaxRadius", "disableVoronoi", "legend", "width", "height", "margin", "colors", "sx", "grid", "topAxis", "leftAxis", "rightAxis", "bottomAxis", "onItemClick", "children", "slots", "slotProps", "loading", "highlightedItem", "onHighlightChange", "className"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["xAxis", "yAxis", "width", "height", "margin", "colors", "sx", "showTooltip", "tooltip", "showHighlight", "axisHighlight", "children", "slots", "slotProps", "data", "plotType", "valueFormatter", "area", "curve", "className"];
@@ -191,6 +193,16 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
191
193
  * @default 'line'
192
194
  */
193
195
  plotType: PropTypes.oneOf(['bar', 'line']),
196
+ /**
197
+ * The chart will try to wait for the parent container to resolve its size
198
+ * before it renders for the first time.
199
+ *
200
+ * This can be useful in some scenarios where the chart appear to grow after
201
+ * the first render, like when used inside a grid.
202
+ *
203
+ * @default false
204
+ */
205
+ resolveSizeBeforeRender: PropTypes.bool,
194
206
  /**
195
207
  * Set to `true` to highlight the value.
196
208
  * With line, it shows a point.
@@ -1,8 +1,10 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
4
+ import { computeAxisValue } from "../../internals/computeAxisValue.js";
2
5
  import { useDrawingArea } from "../../hooks/useDrawingArea.js";
3
6
  import { useSeries } from "../../hooks/useSeries.js";
4
7
  import { CartesianContext } from "./CartesianContext.js";
5
- import { computeValue } from "./computeValue.js";
6
8
  import { useXExtremumGetter } from "../PluginProvider/useXExtremumGetter.js";
7
9
  import { useYExtremumGetter } from "../PluginProvider/index.js";
8
10
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -16,14 +18,14 @@ function CartesianProvider(props) {
16
18
  const drawingArea = useDrawingArea();
17
19
  const xExtremumGetters = useXExtremumGetter();
18
20
  const yExtremumGetters = useYExtremumGetter();
19
- const xValues = React.useMemo(() => computeValue({
21
+ const xValues = React.useMemo(() => computeAxisValue({
20
22
  drawingArea,
21
23
  formattedSeries,
22
24
  axis: xAxis,
23
25
  extremumGetters: xExtremumGetters,
24
26
  axisDirection: 'x'
25
27
  }), [drawingArea, formattedSeries, xAxis, xExtremumGetters]);
26
- const yValues = React.useMemo(() => computeValue({
28
+ const yValues = React.useMemo(() => computeAxisValue({
27
29
  drawingArea,
28
30
  formattedSeries,
29
31
  axis: yAxis,
@@ -2,4 +2,4 @@ import { AxisConfig } from '../../models';
2
2
  import { FormattedSeries } from '../SeriesProvider';
3
3
  import { ExtremumGettersConfig } from '../PluginProvider';
4
4
  import { GetZoomAxisFilters } from './Cartesian.types';
5
- export declare const getAxisExtremum: (axis: AxisConfig, getters: ExtremumGettersConfig, isDefaultAxis: boolean, formattedSeries: FormattedSeries, getFilters?: GetZoomAxisFilters) => number[];
5
+ export declare const getAxisExtremum: (axis: AxisConfig, getters: ExtremumGettersConfig, axisIndex: number, formattedSeries: FormattedSeries, getFilters?: GetZoomAxisFilters) => number[];
@@ -1,18 +1,19 @@
1
- const axisExtremumCallback = (acc, chartType, axis, getters, isDefaultAxis, formattedSeries, getFilters) => {
1
+ const axisExtremumCallback = (acc, chartType, axis, getters, axisIndex, formattedSeries, getFilters) => {
2
2
  const getter = getters[chartType];
3
3
  const series = formattedSeries[chartType]?.series ?? {};
4
4
  const [minChartTypeData, maxChartTypeData] = getter?.({
5
5
  series,
6
6
  axis,
7
- isDefaultAxis,
7
+ axisIndex,
8
+ isDefaultAxis: axisIndex === 0,
8
9
  getFilters
9
10
  }) ?? [Infinity, -Infinity];
10
11
  const [minData, maxData] = acc;
11
12
  return [Math.min(minChartTypeData, minData), Math.max(maxChartTypeData, maxData)];
12
13
  };
13
- export const getAxisExtremum = (axis, getters, isDefaultAxis, formattedSeries, getFilters) => {
14
+ export const getAxisExtremum = (axis, getters, axisIndex, formattedSeries, getFilters) => {
14
15
  const charTypes = Object.keys(getters);
15
- const extremums = charTypes.reduce((acc, charType) => axisExtremumCallback(acc, charType, axis, getters, isDefaultAxis, formattedSeries, getFilters), [Infinity, -Infinity]);
16
+ const extremums = charTypes.reduce((acc, charType) => axisExtremumCallback(acc, charType, axis, getters, axisIndex, formattedSeries, getFilters), [Infinity, -Infinity]);
16
17
  if (Number.isNaN(extremums[0]) || Number.isNaN(extremums[1])) {
17
18
  return [Infinity, -Infinity];
18
19
  }
@@ -1,9 +1,4 @@
1
- import { computeValue } from './computeValue';
2
1
  export * from './CartesianProvider';
3
2
  export * from './CartesianContext';
4
3
  export * from './useCartesianContext';
5
4
  export * from './Cartesian.types';
6
- declare const cartesianProviderUtils: {
7
- computeValue: typeof computeValue;
8
- };
9
- export { cartesianProviderUtils };
@@ -1,9 +1,4 @@
1
- import { computeValue } from "./computeValue.js";
2
1
  export * from "./CartesianProvider.js";
3
2
  export * from "./CartesianContext.js";
4
3
  export * from "./useCartesianContext.js";
5
- export * from "./Cartesian.types.js";
6
- const cartesianProviderUtils = {
7
- computeValue
8
- };
9
- export { cartesianProviderUtils };
4
+ export * from "./Cartesian.types.js";
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { CartesianContext } from "./CartesianContext.js";
3
5
  export const useCartesianContext = () => {
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import useId from '@mui/utils/useId';
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
5
  const _excluded = ["highlighted", "faded"];
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { HighlightedContext } from "./HighlightedContext.js";
3
5
 
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import { useHighlighted } from "./useHighlighted.js";
2
4
  /**
3
5
  * A hook to check the highlighted state of the item.
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -7,6 +7,7 @@ export type ExtremumGettersConfig<T extends ChartSeriesType = CartesianChartSeri
7
7
  type ExtremumGetterParams<T extends ChartSeriesType> = {
8
8
  series: Record<SeriesId, ChartSeries<T>>;
9
9
  axis: AxisConfig;
10
+ axisIndex: number;
10
11
  isDefaultAxis: boolean;
11
12
  getFilters?: (params: {
12
13
  currentAxisId: AxisId | undefined;
@@ -15,6 +15,8 @@ export type PluginContextState = {
15
15
  colorProcessors: ColorProcessorsConfig<ChartSeriesType>;
16
16
  xExtremumGetters: ExtremumGettersConfig<ChartSeriesType>;
17
17
  yExtremumGetters: ExtremumGettersConfig<ChartSeriesType>;
18
+ rotationExtremumGetters: ExtremumGettersConfig<ChartSeriesType>;
19
+ radiusExtremumGetters: ExtremumGettersConfig<ChartSeriesType>;
18
20
  };
19
21
  export type ChartsPlugin<T> = T extends ChartSeriesType ? {
20
22
  seriesType: T;
@@ -22,4 +24,6 @@ export type ChartsPlugin<T> = T extends ChartSeriesType ? {
22
24
  colorProcessor: ColorProcessor<T>;
23
25
  xExtremumGetter?: ExtremumGetter<T>;
24
26
  yExtremumGetter?: ExtremumGetter<T>;
27
+ rotationExtremumGetter?: ExtremumGetter<T>;
28
+ radiusExtremumGetter?: ExtremumGetter<T>;
25
29
  } : never;
@@ -5,7 +5,9 @@ export const PluginContext = /*#__PURE__*/React.createContext({
5
5
  colorProcessors: {},
6
6
  seriesFormatters: {},
7
7
  xExtremumGetters: {},
8
- yExtremumGetters: {}
8
+ yExtremumGetters: {},
9
+ rotationExtremumGetters: {},
10
+ radiusExtremumGetters: {}
9
11
  }
10
12
  });
11
13
  if (process.env.NODE_ENV !== 'production') {
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { PluginContext } from "./PluginContext.js";
3
5
  import { mergePlugins } from "./mergePlugins.js";
@@ -8,3 +8,5 @@ export * from './useColorProcessor';
8
8
  export * from './useSeriesFormatter';
9
9
  export * from './useXExtremumGetter';
10
10
  export * from './useYExtremumGetter';
11
+ export * from './useRadiusExtremumGetter';
12
+ export * from './useRotationExtremumGetter';
@@ -7,4 +7,6 @@ export * from "./ExtremumGetter.types.js";
7
7
  export * from "./useColorProcessor.js";
8
8
  export * from "./useSeriesFormatter.js";
9
9
  export * from "./useXExtremumGetter.js";
10
- export * from "./useYExtremumGetter.js";
10
+ export * from "./useYExtremumGetter.js";
11
+ export * from "./useRadiusExtremumGetter.js";
12
+ export * from "./useRotationExtremumGetter.js";
@@ -9,28 +9,38 @@ export declare const defaultPlugins: ({
9
9
  colorProcessor: ColorProcessor<"bar">;
10
10
  xExtremumGetter?: ExtremumGetter<"bar"> | undefined;
11
11
  yExtremumGetter?: ExtremumGetter<"bar"> | undefined;
12
+ rotationExtremumGetter?: ExtremumGetter<"bar"> | undefined;
13
+ radiusExtremumGetter?: ExtremumGetter<"bar"> | undefined;
12
14
  } | {
13
15
  seriesType: "line";
14
16
  seriesFormatter: SeriesFormatter<"line">;
15
17
  colorProcessor: ColorProcessor<"line">;
16
18
  xExtremumGetter?: ExtremumGetter<"line"> | undefined;
17
19
  yExtremumGetter?: ExtremumGetter<"line"> | undefined;
20
+ rotationExtremumGetter?: ExtremumGetter<"line"> | undefined;
21
+ radiusExtremumGetter?: ExtremumGetter<"line"> | undefined;
18
22
  } | {
19
23
  seriesType: "scatter";
20
24
  seriesFormatter: SeriesFormatter<"scatter">;
21
25
  colorProcessor: ColorProcessor<"scatter">;
22
26
  xExtremumGetter?: ExtremumGetter<"scatter"> | undefined;
23
27
  yExtremumGetter?: ExtremumGetter<"scatter"> | undefined;
28
+ rotationExtremumGetter?: ExtremumGetter<"scatter"> | undefined;
29
+ radiusExtremumGetter?: ExtremumGetter<"scatter"> | undefined;
24
30
  } | {
25
31
  seriesType: "pie";
26
32
  seriesFormatter: SeriesFormatter<"pie">;
27
33
  colorProcessor: ColorProcessor<"pie">;
28
34
  xExtremumGetter?: ExtremumGetter<"pie"> | undefined;
29
35
  yExtremumGetter?: ExtremumGetter<"pie"> | undefined;
36
+ rotationExtremumGetter?: ExtremumGetter<"pie"> | undefined;
37
+ radiusExtremumGetter?: ExtremumGetter<"pie"> | undefined;
30
38
  })[];
31
39
  export declare function mergePlugins(plugins?: ChartsPlugin<ChartSeriesType>[]): {
32
40
  seriesFormatters: SeriesFormatterConfig<keyof import("../../models/seriesType/config").ChartsSeriesConfig>;
33
41
  colorProcessors: ColorProcessorsConfig<keyof import("../../models/seriesType/config").ChartsSeriesConfig>;
34
42
  xExtremumGetters: ExtremumGettersConfig<keyof import("../../models/seriesType/config").ChartsSeriesConfig>;
35
43
  yExtremumGetters: ExtremumGettersConfig<keyof import("../../models/seriesType/config").ChartsSeriesConfig>;
44
+ rotationExtremumGetters: ExtremumGettersConfig<keyof import("../../models/seriesType/config").ChartsSeriesConfig>;
45
+ radiusExtremumGetters: ExtremumGettersConfig<keyof import("../../models/seriesType/config").ChartsSeriesConfig>;
36
46
  };
@@ -9,6 +9,8 @@ export function mergePlugins(plugins) {
9
9
  const colorProcessors = {};
10
10
  const xExtremumGetters = {};
11
11
  const yExtremumGetters = {};
12
+ const rotationExtremumGetters = {};
13
+ const radiusExtremumGetters = {};
12
14
  for (let i = 0; i < defaultizedPlugins.length; i += 1) {
13
15
  const plugin = defaultizedPlugins[i];
14
16
  const seriesType = plugin.seriesType;
@@ -20,11 +22,19 @@ export function mergePlugins(plugins) {
20
22
  if (plugin.yExtremumGetter) {
21
23
  yExtremumGetters[seriesType] = plugin.yExtremumGetter;
22
24
  }
25
+ if (plugin.rotationExtremumGetter) {
26
+ rotationExtremumGetters[seriesType] = plugin.rotationExtremumGetter;
27
+ }
28
+ if (plugin.radiusExtremumGetter) {
29
+ radiusExtremumGetters[seriesType] = plugin.radiusExtremumGetter;
30
+ }
23
31
  }
24
32
  return {
25
33
  seriesFormatters,
26
34
  colorProcessors,
27
35
  xExtremumGetters,
28
- yExtremumGetters
36
+ yExtremumGetters,
37
+ rotationExtremumGetters,
38
+ radiusExtremumGetters
29
39
  };
30
40
  }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { PluginContext } from "./PluginContext.js";
3
5
  export function useColorProcessor(seriesType) {
@@ -0,0 +1,4 @@
1
+ import { ChartSeriesType } from '../../models/seriesType/config';
2
+ import { ExtremumGettersConfig } from './ExtremumGetter.types';
3
+ export declare function useRadiusExtremumGetter<T extends ChartSeriesType>(seriesType: T): ExtremumGettersConfig<T>[T];
4
+ export declare function useRadiusExtremumGetter(): ExtremumGettersConfig<ChartSeriesType>;
@@ -0,0 +1,17 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import { PluginContext } from "./PluginContext.js";
5
+ export function useRadiusExtremumGetter(seriesType) {
6
+ const {
7
+ isInitialized,
8
+ data
9
+ } = React.useContext(PluginContext);
10
+ if (!isInitialized) {
11
+ throw new Error(['MUI X: Could not find the plugin context.', 'It looks like you rendered your component outside of a ChartsContainer parent component.'].join('\n'));
12
+ }
13
+ if (!seriesType) {
14
+ return data.radiusExtremumGetters;
15
+ }
16
+ return data.radiusExtremumGetters[seriesType];
17
+ }
@@ -0,0 +1,4 @@
1
+ import { ChartSeriesType } from '../../models/seriesType/config';
2
+ import { ExtremumGettersConfig } from './ExtremumGetter.types';
3
+ export declare function useRotationExtremumGetter<T extends ChartSeriesType>(seriesType: T): ExtremumGettersConfig<T>[T];
4
+ export declare function useRotationExtremumGetter(): ExtremumGettersConfig<ChartSeriesType>;
@@ -0,0 +1,17 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import { PluginContext } from "./PluginContext.js";
5
+ export function useRotationExtremumGetter(seriesType) {
6
+ const {
7
+ isInitialized,
8
+ data
9
+ } = React.useContext(PluginContext);
10
+ if (!isInitialized) {
11
+ throw new Error(['MUI X: Could not find the plugin context.', 'It looks like you rendered your component outside of a ChartsContainer parent component.'].join('\n'));
12
+ }
13
+ if (!seriesType) {
14
+ return data.rotationExtremumGetters;
15
+ }
16
+ return data.rotationExtremumGetters[seriesType];
17
+ }
@@ -1,3 +1,5 @@
1
+ 'use client';
2
+
1
3
  import * as React from 'react';
2
4
  import { PluginContext } from "./PluginContext.js";
3
5
  export function useSeriesFormatter(seriesType) {
@@ -0,0 +1,42 @@
1
+ import { DatasetType } from '../../models/seriesType/config';
2
+ import { AxisDefaultized, ScaleName, AxisId, AxisConfig, ChartsRotationAxisProps, ChartsRadiusAxisProps } from '../../models/axis';
3
+ export type PolarProviderProps = {
4
+ /**
5
+ * The configuration of the rotation-axes.
6
+ * If not provided, a default axis config is used.
7
+ * An array of [[AxisConfig]] objects.
8
+ */
9
+ rotationAxis: AxisConfig<ScaleName, any, ChartsRotationAxisProps>[];
10
+ /**
11
+ * The configuration of the radial-axes.
12
+ * If not provided, a default axis config is used.
13
+ * An array of [[AxisConfig]] objects.
14
+ */
15
+ radiusAxis: AxisConfig<'linear', any, ChartsRadiusAxisProps>[];
16
+ /**
17
+ * An array of objects that can be used to populate series and axes data using their `dataKey` property.
18
+ */
19
+ dataset?: DatasetType;
20
+ children: React.ReactNode;
21
+ };
22
+ export type DefaultizedAxisConfig<Axis> = {
23
+ [axisId: AxisId]: AxisDefaultized<ScaleName, any, Axis>;
24
+ };
25
+ export type PolarContextState = {
26
+ /**
27
+ * Mapping from rotation-axis key to scaling configuration.
28
+ */
29
+ rotationAxis: DefaultizedAxisConfig<ChartsRotationAxisProps>;
30
+ /**
31
+ * Mapping from radius-axis key to scaling configuration.
32
+ */
33
+ radiusAxis: DefaultizedAxisConfig<ChartsRadiusAxisProps>;
34
+ /**
35
+ * The rotation-axes IDs sorted by order they got provided.
36
+ */
37
+ rotationAxisIds: AxisId[];
38
+ /**
39
+ * The radius-axes IDs sorted by order they got provided.
40
+ */
41
+ radiusAxisIds: AxisId[];
42
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import { Initializable } from '../context.types';
3
+ import { PolarContextState } from './Polar.types';
4
+ export declare const PolarContext: React.Context<Initializable<PolarContextState>>;
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ export const PolarContext = /*#__PURE__*/React.createContext({
3
+ isInitialized: false,
4
+ data: {
5
+ rotationAxis: {},
6
+ radiusAxis: {},
7
+ rotationAxisIds: [],
8
+ radiusAxisIds: []
9
+ }
10
+ });
11
+ if (process.env.NODE_ENV !== 'production') {
12
+ PolarContext.displayName = 'PolarContext';
13
+ }
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import { PolarProviderProps } from './Polar.types';
3
+ declare function PolarProvider(props: PolarProviderProps): React.JSX.Element;
4
+ export { PolarProvider };