@mui/x-charts 6.0.0-alpha.9 → 6.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/BarChart/BarChart.d.ts +26 -5
  2. package/BarChart/BarChart.js +93 -17
  3. package/BarChart/BarElement.d.ts +1319 -4
  4. package/BarChart/BarElement.js +10 -10
  5. package/BarChart/BarPlot.d.ts +17 -1
  6. package/BarChart/BarPlot.js +152 -66
  7. package/BarChart/formatter.js +2 -3
  8. package/BarChart/legend.js +1 -2
  9. package/CHANGELOG.md +797 -59
  10. package/ChartContainer/index.js +7 -5
  11. package/ChartsAxis/ChartsAxis.d.ts +9 -0
  12. package/ChartsAxis/ChartsAxis.js +33 -7
  13. package/ChartsAxis/axisClasses.d.ts +3 -3
  14. package/ChartsAxis/axisClasses.js +1 -2
  15. package/ChartsAxisHighlight/ChartsAxisHighlight.d.ts +21 -0
  16. package/ChartsAxisHighlight/ChartsAxisHighlight.js +61 -22
  17. package/ChartsClipPath/ChartsClipPath.d.ts +5 -0
  18. package/ChartsClipPath/ChartsClipPath.js +7 -2
  19. package/ChartsLegend/ChartsLegend.d.ts +45 -24
  20. package/ChartsLegend/ChartsLegend.js +193 -151
  21. package/ChartsLegend/chartsLegendClasses.d.ts +1 -1
  22. package/ChartsLegend/chartsLegendClasses.js +3 -4
  23. package/ChartsLegend/utils.d.ts +1 -6
  24. package/ChartsReferenceLine/ChartsReferenceLine.d.ts +10 -0
  25. package/ChartsReferenceLine/ChartsReferenceLine.js +78 -0
  26. package/ChartsReferenceLine/ChartsXReferenceLine.d.ts +13 -0
  27. package/ChartsReferenceLine/ChartsXReferenceLine.js +112 -0
  28. package/ChartsReferenceLine/ChartsYReferenceLine.d.ts +13 -0
  29. package/ChartsReferenceLine/ChartsYReferenceLine.js +112 -0
  30. package/ChartsReferenceLine/chartsReferenceLineClasses.d.ts +15 -0
  31. package/ChartsReferenceLine/chartsReferenceLineClasses.js +14 -0
  32. package/ChartsReferenceLine/common.d.ts +41 -0
  33. package/ChartsReferenceLine/common.js +27 -0
  34. package/ChartsReferenceLine/index.d.ts +2 -0
  35. package/ChartsReferenceLine/index.js +27 -0
  36. package/ChartsReferenceLine/package.json +6 -0
  37. package/ChartsSurface.d.ts +12 -1
  38. package/ChartsSurface.js +9 -18
  39. package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +1 -0
  40. package/ChartsTooltip/ChartsAxisTooltipContent.js +46 -32
  41. package/ChartsTooltip/ChartsItemTooltipContent.d.ts +3 -2
  42. package/ChartsTooltip/ChartsItemTooltipContent.js +18 -9
  43. package/ChartsTooltip/ChartsTooltip.d.ts +32 -0
  44. package/ChartsTooltip/ChartsTooltip.js +62 -18
  45. package/ChartsTooltip/ChartsTooltipTable.d.ts +3 -10
  46. package/ChartsTooltip/ChartsTooltipTable.js +22 -20
  47. package/ChartsTooltip/tooltipClasses.js +1 -2
  48. package/ChartsTooltip/utils.js +2 -2
  49. package/ChartsXAxis/ChartsXAxis.d.ts +9 -0
  50. package/ChartsXAxis/ChartsXAxis.js +170 -45
  51. package/ChartsYAxis/ChartsYAxis.d.ts +9 -0
  52. package/ChartsYAxis/ChartsYAxis.js +95 -38
  53. package/LineChart/AreaElement.d.ts +11 -1
  54. package/LineChart/AreaElement.js +14 -6
  55. package/LineChart/AreaPlot.d.ts +11 -0
  56. package/LineChart/AreaPlot.js +27 -8
  57. package/LineChart/LineChart.d.ts +23 -3
  58. package/LineChart/LineChart.js +89 -17
  59. package/LineChart/LineElement.d.ts +11 -1
  60. package/LineChart/LineElement.js +14 -6
  61. package/LineChart/LineHighlightElement.d.ts +10 -0
  62. package/LineChart/LineHighlightElement.js +13 -4
  63. package/LineChart/LineHighlightPlot.d.ts +10 -0
  64. package/LineChart/LineHighlightPlot.js +15 -4
  65. package/LineChart/LinePlot.d.ts +10 -0
  66. package/LineChart/LinePlot.js +25 -12
  67. package/LineChart/MarkElement.d.ts +10 -0
  68. package/LineChart/MarkElement.js +14 -5
  69. package/LineChart/MarkPlot.d.ts +10 -0
  70. package/LineChart/MarkPlot.js +42 -10
  71. package/LineChart/formatter.js +5 -5
  72. package/LineChart/legend.js +1 -2
  73. package/PieChart/PieArc.d.ts +11 -13
  74. package/PieChart/PieArc.js +28 -60
  75. package/PieChart/PieArcLabel.d.ts +8 -9
  76. package/PieChart/PieArcLabel.js +46 -38
  77. package/PieChart/PieArcLabelPlot.d.ts +28 -0
  78. package/PieChart/PieArcLabelPlot.js +99 -0
  79. package/PieChart/PieArcPlot.d.ts +35 -0
  80. package/PieChart/PieArcPlot.js +92 -0
  81. package/PieChart/PieChart.d.ts +19 -5
  82. package/PieChart/PieChart.js +95 -18
  83. package/PieChart/PiePlot.d.ts +15 -9
  84. package/PieChart/PiePlot.js +77 -55
  85. package/PieChart/dataTransform/transition.d.ts +4 -0
  86. package/PieChart/dataTransform/transition.js +136 -0
  87. package/PieChart/dataTransform/useTransformData.d.ts +15 -0
  88. package/PieChart/dataTransform/useTransformData.js +67 -0
  89. package/PieChart/formatter.js +1 -2
  90. package/PieChart/legend.js +1 -2
  91. package/README.md +8 -14
  92. package/ResponsiveChartContainer/index.d.ts +13 -3
  93. package/ResponsiveChartContainer/index.js +7 -8
  94. package/ScatterChart/Scatter.d.ts +10 -0
  95. package/ScatterChart/Scatter.js +12 -2
  96. package/ScatterChart/ScatterChart.d.ts +16 -3
  97. package/ScatterChart/ScatterChart.js +77 -16
  98. package/ScatterChart/ScatterPlot.d.ts +10 -0
  99. package/ScatterChart/ScatterPlot.js +12 -2
  100. package/ScatterChart/formatter.js +1 -2
  101. package/ScatterChart/legend.js +1 -2
  102. package/SparkLineChart/SparkLineChart.d.ts +12 -3
  103. package/SparkLineChart/SparkLineChart.js +50 -7
  104. package/colorPalettes/colorPalettes.js +6 -12
  105. package/constants.js +5 -8
  106. package/context/CartesianContextProvider.d.ts +26 -1
  107. package/context/CartesianContextProvider.js +42 -16
  108. package/context/DrawingProvider.d.ts +25 -0
  109. package/context/DrawingProvider.js +18 -6
  110. package/context/HighlightProvider.d.ts +17 -0
  111. package/context/HighlightProvider.js +3 -4
  112. package/context/InteractionProvider.d.ts +6 -0
  113. package/context/InteractionProvider.js +3 -4
  114. package/context/SeriesContextProvider.d.ts +5 -0
  115. package/context/SeriesContextProvider.js +3 -4
  116. package/esm/BarChart/BarChart.js +90 -13
  117. package/esm/BarChart/BarElement.js +7 -4
  118. package/esm/BarChart/BarPlot.js +152 -67
  119. package/esm/BarChart/formatter.js +1 -1
  120. package/esm/ChartContainer/index.js +3 -0
  121. package/esm/ChartsAxis/ChartsAxis.js +32 -5
  122. package/esm/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
  123. package/esm/ChartsClipPath/ChartsClipPath.js +5 -0
  124. package/esm/ChartsLegend/ChartsLegend.js +190 -144
  125. package/esm/ChartsLegend/chartsLegendClasses.js +1 -1
  126. package/esm/ChartsReferenceLine/ChartsReferenceLine.js +70 -0
  127. package/esm/ChartsReferenceLine/ChartsXReferenceLine.js +105 -0
  128. package/esm/ChartsReferenceLine/ChartsYReferenceLine.js +105 -0
  129. package/esm/ChartsReferenceLine/chartsReferenceLineClasses.js +6 -0
  130. package/esm/ChartsReferenceLine/common.js +20 -0
  131. package/esm/ChartsReferenceLine/index.js +2 -0
  132. package/esm/ChartsSurface.js +4 -12
  133. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
  134. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  135. package/esm/ChartsTooltip/ChartsTooltip.js +59 -14
  136. package/esm/ChartsTooltip/ChartsTooltipTable.js +17 -10
  137. package/esm/ChartsXAxis/ChartsXAxis.js +168 -43
  138. package/esm/ChartsYAxis/ChartsYAxis.js +93 -36
  139. package/esm/LineChart/AreaElement.js +10 -0
  140. package/esm/LineChart/AreaPlot.js +26 -6
  141. package/esm/LineChart/LineChart.js +86 -13
  142. package/esm/LineChart/LineElement.js +10 -0
  143. package/esm/LineChart/LineHighlightElement.js +10 -0
  144. package/esm/LineChart/LineHighlightPlot.js +13 -2
  145. package/esm/LineChart/LinePlot.js +25 -14
  146. package/esm/LineChart/MarkElement.js +11 -1
  147. package/esm/LineChart/MarkPlot.js +40 -8
  148. package/esm/LineChart/formatter.js +7 -3
  149. package/esm/PieChart/PieArc.js +26 -58
  150. package/esm/PieChart/PieArcLabel.js +43 -34
  151. package/esm/PieChart/PieArcLabelPlot.js +92 -0
  152. package/esm/PieChart/PieArcPlot.js +84 -0
  153. package/esm/PieChart/PieChart.js +93 -16
  154. package/esm/PieChart/PiePlot.js +76 -57
  155. package/esm/PieChart/dataTransform/transition.js +130 -0
  156. package/esm/PieChart/dataTransform/useTransformData.js +59 -0
  157. package/esm/ResponsiveChartContainer/index.js +3 -3
  158. package/esm/ScatterChart/Scatter.js +10 -0
  159. package/esm/ScatterChart/ScatterChart.js +74 -12
  160. package/esm/ScatterChart/ScatterPlot.js +10 -0
  161. package/esm/SparkLineChart/SparkLineChart.js +47 -3
  162. package/esm/constants.js +1 -1
  163. package/esm/context/CartesianContextProvider.js +41 -14
  164. package/esm/context/DrawingProvider.js +14 -0
  165. package/esm/hooks/useChartDimensions.js +2 -0
  166. package/esm/hooks/useMounted.js +16 -0
  167. package/esm/hooks/useReducedMotion.js +27 -0
  168. package/esm/hooks/useTicks.js +15 -9
  169. package/esm/index.js +1 -0
  170. package/esm/internals/components/AxisSharedComponents.js +15 -70
  171. package/esm/internals/components/ChartsText.js +77 -0
  172. package/esm/internals/domUtils.js +113 -0
  173. package/esm/internals/geometry.js +36 -0
  174. package/hooks/useAxisEvents.js +2 -2
  175. package/hooks/useChartDimensions.d.ts +2 -0
  176. package/hooks/useChartDimensions.js +5 -4
  177. package/hooks/useDrawingArea.js +2 -2
  178. package/hooks/useInteractionItemProps.js +2 -2
  179. package/hooks/useMounted.d.ts +1 -0
  180. package/hooks/useMounted.js +25 -0
  181. package/hooks/useReducedMotion.d.ts +8 -0
  182. package/hooks/useReducedMotion.js +33 -0
  183. package/hooks/useScale.d.ts +2 -2
  184. package/hooks/useScale.js +2 -2
  185. package/hooks/useTicks.d.ts +19 -11
  186. package/hooks/useTicks.js +19 -14
  187. package/index.d.ts +1 -0
  188. package/index.js +12 -1
  189. package/internals/components/AxisSharedComponents.d.ts +0 -4
  190. package/internals/components/AxisSharedComponents.js +18 -78
  191. package/internals/components/ChartsText.d.ts +35 -0
  192. package/internals/components/ChartsText.js +87 -0
  193. package/internals/defaultizeColor.d.ts +7 -2
  194. package/internals/defaultizeValueFormatter.js +1 -2
  195. package/internals/domUtils.d.ts +13 -0
  196. package/internals/domUtils.js +122 -0
  197. package/internals/geometry.d.ts +9 -0
  198. package/internals/geometry.js +42 -0
  199. package/internals/isBandScale.d.ts +3 -1
  200. package/internals/stackSeries.js +2 -4
  201. package/internals/utils.d.ts +5 -0
  202. package/legacy/BarChart/BarChart.js +90 -13
  203. package/legacy/BarChart/BarElement.js +6 -3
  204. package/legacy/BarChart/BarPlot.js +151 -63
  205. package/legacy/BarChart/formatter.js +1 -1
  206. package/legacy/ChartContainer/index.js +3 -0
  207. package/legacy/ChartsAxis/ChartsAxis.js +32 -5
  208. package/legacy/ChartsAxisHighlight/ChartsAxisHighlight.js +60 -20
  209. package/legacy/ChartsClipPath/ChartsClipPath.js +5 -0
  210. package/legacy/ChartsLegend/ChartsLegend.js +205 -142
  211. package/legacy/ChartsLegend/chartsLegendClasses.js +1 -1
  212. package/legacy/ChartsReferenceLine/ChartsReferenceLine.js +70 -0
  213. package/legacy/ChartsReferenceLine/ChartsXReferenceLine.js +105 -0
  214. package/legacy/ChartsReferenceLine/ChartsYReferenceLine.js +105 -0
  215. package/legacy/ChartsReferenceLine/chartsReferenceLineClasses.js +6 -0
  216. package/legacy/ChartsReferenceLine/common.js +20 -0
  217. package/legacy/ChartsReferenceLine/index.js +2 -0
  218. package/legacy/ChartsSurface.js +3 -12
  219. package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +22 -10
  220. package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  221. package/legacy/ChartsTooltip/ChartsTooltip.js +62 -14
  222. package/legacy/ChartsTooltip/ChartsTooltipTable.js +34 -26
  223. package/legacy/ChartsXAxis/ChartsXAxis.js +176 -50
  224. package/legacy/ChartsYAxis/ChartsYAxis.js +97 -41
  225. package/legacy/LineChart/AreaElement.js +10 -0
  226. package/legacy/LineChart/AreaPlot.js +31 -7
  227. package/legacy/LineChart/LineChart.js +86 -13
  228. package/legacy/LineChart/LineElement.js +10 -0
  229. package/legacy/LineChart/LineHighlightElement.js +10 -0
  230. package/legacy/LineChart/LineHighlightPlot.js +13 -2
  231. package/legacy/LineChart/LinePlot.js +29 -12
  232. package/legacy/LineChart/MarkElement.js +11 -1
  233. package/legacy/LineChart/MarkPlot.js +39 -8
  234. package/legacy/LineChart/formatter.js +7 -3
  235. package/legacy/PieChart/PieArc.js +30 -62
  236. package/legacy/PieChart/PieArcLabel.js +48 -34
  237. package/legacy/PieChart/PieArcLabelPlot.js +93 -0
  238. package/legacy/PieChart/PieArcPlot.js +84 -0
  239. package/legacy/PieChart/PieChart.js +93 -16
  240. package/legacy/PieChart/PiePlot.js +76 -59
  241. package/legacy/PieChart/dataTransform/transition.js +142 -0
  242. package/legacy/PieChart/dataTransform/useTransformData.js +60 -0
  243. package/legacy/ResponsiveChartContainer/index.js +3 -3
  244. package/legacy/ScatterChart/Scatter.js +10 -0
  245. package/legacy/ScatterChart/ScatterChart.js +74 -12
  246. package/legacy/ScatterChart/ScatterPlot.js +10 -0
  247. package/legacy/SparkLineChart/SparkLineChart.js +47 -3
  248. package/legacy/constants.js +1 -1
  249. package/legacy/context/CartesianContextProvider.js +41 -14
  250. package/legacy/context/DrawingProvider.js +14 -0
  251. package/legacy/hooks/useChartDimensions.js +2 -0
  252. package/legacy/hooks/useMounted.js +21 -0
  253. package/legacy/hooks/useReducedMotion.js +27 -0
  254. package/legacy/hooks/useTicks.js +16 -9
  255. package/legacy/index.js +2 -1
  256. package/legacy/internals/components/AxisSharedComponents.js +11 -65
  257. package/legacy/internals/components/ChartsText.js +79 -0
  258. package/legacy/internals/domUtils.js +121 -0
  259. package/legacy/internals/geometry.js +37 -0
  260. package/models/axis.d.ts +58 -20
  261. package/models/layout.d.ts +13 -6
  262. package/models/seriesType/common.d.ts +16 -0
  263. package/models/seriesType/line.d.ts +8 -3
  264. package/models/seriesType/pie.d.ts +5 -1
  265. package/modern/BarChart/BarChart.js +90 -13
  266. package/modern/BarChart/BarElement.js +7 -4
  267. package/modern/BarChart/BarPlot.js +149 -65
  268. package/modern/BarChart/formatter.js +1 -1
  269. package/modern/ChartContainer/index.js +3 -0
  270. package/modern/ChartsAxis/ChartsAxis.js +31 -5
  271. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
  272. package/modern/ChartsClipPath/ChartsClipPath.js +5 -0
  273. package/modern/ChartsLegend/ChartsLegend.js +190 -144
  274. package/modern/ChartsLegend/chartsLegendClasses.js +1 -1
  275. package/modern/ChartsReferenceLine/ChartsReferenceLine.js +70 -0
  276. package/modern/ChartsReferenceLine/ChartsXReferenceLine.js +104 -0
  277. package/modern/ChartsReferenceLine/ChartsYReferenceLine.js +104 -0
  278. package/modern/ChartsReferenceLine/chartsReferenceLineClasses.js +6 -0
  279. package/modern/ChartsReferenceLine/common.js +20 -0
  280. package/modern/ChartsReferenceLine/index.js +2 -0
  281. package/modern/ChartsSurface.js +4 -12
  282. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
  283. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  284. package/modern/ChartsTooltip/ChartsTooltip.js +58 -14
  285. package/modern/ChartsTooltip/ChartsTooltipTable.js +17 -10
  286. package/modern/ChartsXAxis/ChartsXAxis.js +167 -42
  287. package/modern/ChartsYAxis/ChartsYAxis.js +92 -35
  288. package/modern/LineChart/AreaElement.js +10 -0
  289. package/modern/LineChart/AreaPlot.js +25 -6
  290. package/modern/LineChart/LineChart.js +86 -13
  291. package/modern/LineChart/LineElement.js +10 -0
  292. package/modern/LineChart/LineHighlightElement.js +10 -0
  293. package/modern/LineChart/LineHighlightPlot.js +13 -2
  294. package/modern/LineChart/LinePlot.js +23 -10
  295. package/modern/LineChart/MarkElement.js +11 -1
  296. package/modern/LineChart/MarkPlot.js +40 -8
  297. package/modern/LineChart/formatter.js +4 -3
  298. package/modern/PieChart/PieArc.js +26 -57
  299. package/modern/PieChart/PieArcLabel.js +43 -34
  300. package/modern/PieChart/PieArcLabelPlot.js +90 -0
  301. package/modern/PieChart/PieArcPlot.js +83 -0
  302. package/modern/PieChart/PieChart.js +93 -16
  303. package/modern/PieChart/PiePlot.js +76 -55
  304. package/modern/PieChart/dataTransform/transition.js +130 -0
  305. package/modern/PieChart/dataTransform/useTransformData.js +58 -0
  306. package/modern/ResponsiveChartContainer/index.js +3 -3
  307. package/modern/ScatterChart/Scatter.js +10 -0
  308. package/modern/ScatterChart/ScatterChart.js +74 -12
  309. package/modern/ScatterChart/ScatterPlot.js +10 -0
  310. package/modern/SparkLineChart/SparkLineChart.js +47 -3
  311. package/modern/constants.js +1 -1
  312. package/modern/context/CartesianContextProvider.js +40 -13
  313. package/modern/context/DrawingProvider.js +14 -0
  314. package/modern/hooks/useChartDimensions.js +2 -0
  315. package/modern/hooks/useMounted.js +16 -0
  316. package/modern/hooks/useReducedMotion.js +27 -0
  317. package/modern/hooks/useTicks.js +15 -9
  318. package/modern/index.js +2 -1
  319. package/modern/internals/components/AxisSharedComponents.js +15 -70
  320. package/modern/internals/components/ChartsText.js +77 -0
  321. package/modern/internals/domUtils.js +113 -0
  322. package/modern/internals/geometry.js +36 -0
  323. package/package.json +9 -6
  324. package/themeAugmentation/components.d.ts +1 -0
  325. package/themeAugmentation/overrides.d.ts +2 -0
@@ -1,15 +1,14 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["id", "dataIndex", "classes", "color", "highlightScope", "innerRadius", "outerRadius", "cornerRadius", "formattedArcLabel"];
3
+ const _excluded = ["id", "classes", "color", "startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "cornerRadius", "formattedArcLabel", "isHighlighted", "isFaded", "style"];
4
4
  import * as React from 'react';
5
+ import { animated, to } from '@react-spring/web';
5
6
  import { arc as d3Arc } from 'd3-shape';
6
7
  import PropTypes from 'prop-types';
7
8
  import composeClasses from '@mui/utils/composeClasses';
8
9
  import generateUtilityClass from '@mui/utils/generateUtilityClass';
9
10
  import { styled } from '@mui/material/styles';
10
11
  import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
11
- import { InteractionContext } from '../context/InteractionProvider';
12
- import { getIsFaded, getIsHighlighted } from '../hooks/useInteractionItemProps';
13
12
  import { jsx as _jsx } from "react/jsx-runtime";
14
13
  export function getPieArcLabelUtilityClass(slot) {
15
14
  return generateUtilityClass('MuiPieArcLabel', slot);
@@ -27,61 +26,71 @@ const useUtilityClasses = ownerState => {
27
26
  };
28
27
  return composeClasses(slots, getPieArcLabelUtilityClass, classes);
29
28
  };
30
- const PieArcLabelRoot = styled('text', {
29
+ const PieArcLabelRoot = styled(animated.text, {
31
30
  name: 'MuiPieArcLabel',
32
31
  slot: 'Root',
33
32
  overridesResolver: (_, styles) => styles.root
34
33
  })(({
35
34
  theme
36
35
  }) => ({
37
- fill: theme.palette.text.primary,
38
- textAnchor: 'middle'
36
+ fill: (theme.vars || theme).palette.text.primary,
37
+ textAnchor: 'middle',
38
+ dominantBaseline: 'middle'
39
39
  }));
40
+ /**
41
+ * Helper to compute label position.
42
+ * It's not an inline function because we need it in inerpolation.
43
+ */
44
+ const getLabelPosition = (formattedArcLabel, variable) => (startAngle, endAngle, padAngle, innerRadius, outerRadius, cornerRadius) => {
45
+ if (!formattedArcLabel) {
46
+ return 0;
47
+ }
48
+ const [x, y] = d3Arc().cornerRadius(cornerRadius).centroid({
49
+ padAngle,
50
+ startAngle,
51
+ endAngle,
52
+ innerRadius,
53
+ outerRadius
54
+ });
55
+ if (variable === 'x') {
56
+ return x;
57
+ }
58
+ return y;
59
+ };
40
60
  export default function PieArcLabel(props) {
41
61
  const {
42
62
  id,
43
- dataIndex,
44
63
  classes: innerClasses,
45
64
  color,
46
- highlightScope,
47
- innerRadius = 0,
65
+ startAngle,
66
+ endAngle,
67
+ paddingAngle,
68
+ innerRadius,
48
69
  outerRadius,
49
- cornerRadius = 0,
50
- formattedArcLabel
70
+ cornerRadius,
71
+ formattedArcLabel,
72
+ isHighlighted,
73
+ isFaded,
74
+ style
51
75
  } = props,
52
76
  other = _objectWithoutPropertiesLoose(props, _excluded);
53
- const {
54
- item
55
- } = React.useContext(InteractionContext);
56
- const isHighlighted = getIsHighlighted(item, {
57
- type: 'pie',
58
- seriesId: id,
59
- dataIndex
60
- }, highlightScope);
61
- const isFaded = !isHighlighted && getIsFaded(item, {
62
- type: 'pie',
63
- seriesId: id,
64
- dataIndex
65
- }, highlightScope);
66
77
  const ownerState = {
67
78
  id,
68
- dataIndex,
69
79
  classes: innerClasses,
70
80
  color,
71
81
  isFaded,
72
82
  isHighlighted
73
83
  };
74
84
  const classes = useUtilityClasses(ownerState);
75
- const arcLabelPosition = formattedArcLabel ? d3Arc().cornerRadius(cornerRadius).centroid(_extends({}, other, {
76
- innerRadius,
77
- outerRadius
78
- })) : [0, 0];
79
- return /*#__PURE__*/_jsx(PieArcLabelRoot, {
80
- className: classes.root,
81
- x: arcLabelPosition[0],
82
- y: arcLabelPosition[1],
85
+ return /*#__PURE__*/_jsx(PieArcLabelRoot, _extends({
86
+ className: classes.root
87
+ }, other, {
88
+ style: _extends({
89
+ x: to([startAngle, endAngle, paddingAngle, innerRadius, outerRadius, cornerRadius], getLabelPosition(formattedArcLabel, 'x')),
90
+ y: to([startAngle, endAngle, paddingAngle, innerRadius, outerRadius, cornerRadius], getLabelPosition(formattedArcLabel, 'y'))
91
+ }, style),
83
92
  children: formattedArcLabel
84
- });
93
+ }));
85
94
  }
86
95
  process.env.NODE_ENV !== "production" ? PieArcLabel.propTypes = {
87
96
  // ----------------------------- Warning --------------------------------
@@ -0,0 +1,90 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ const _excluded = ["slots", "slotProps", "innerRadius", "outerRadius", "cornerRadius", "paddingAngle", "id", "highlightScope", "highlighted", "faded", "data", "arcLabel", "arcLabelMinAngle", "skipAnimation"],
4
+ _excluded2 = ["startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "cornerRadius"];
5
+ import * as React from 'react';
6
+ import { useTransition } from '@react-spring/web';
7
+ import { defaultLabelTransitionConfig } from './dataTransform/transition';
8
+ import { useTransformData } from './dataTransform/useTransformData';
9
+ import PieArcLabel from './PieArcLabel';
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ const RATIO = 180 / Math.PI;
12
+ function getItemLabel(arcLabel, arcLabelMinAngle, item) {
13
+ if (!arcLabel) {
14
+ return null;
15
+ }
16
+ const angle = (item.endAngle - item.startAngle) * RATIO;
17
+ if (angle < arcLabelMinAngle) {
18
+ return null;
19
+ }
20
+ if (typeof arcLabel === 'string') {
21
+ return item[arcLabel]?.toString();
22
+ }
23
+ return arcLabel(item);
24
+ }
25
+ export function PieArcLabelPlot(props) {
26
+ const {
27
+ slots,
28
+ slotProps,
29
+ innerRadius = 0,
30
+ outerRadius,
31
+ cornerRadius = 0,
32
+ paddingAngle = 0,
33
+ id,
34
+ highlightScope,
35
+ highlighted,
36
+ faded = {
37
+ additionalRadius: -5
38
+ },
39
+ data,
40
+ arcLabel,
41
+ arcLabelMinAngle = 0,
42
+ skipAnimation
43
+ } = props,
44
+ other = _objectWithoutPropertiesLoose(props, _excluded);
45
+ const transformedData = useTransformData({
46
+ innerRadius,
47
+ outerRadius,
48
+ cornerRadius,
49
+ paddingAngle,
50
+ id,
51
+ highlightScope,
52
+ highlighted,
53
+ faded,
54
+ data
55
+ });
56
+ const transition = useTransition(transformedData, _extends({}, defaultLabelTransitionConfig, {
57
+ immediate: skipAnimation
58
+ }));
59
+ if (data.length === 0) {
60
+ return null;
61
+ }
62
+ const ArcLabel = slots?.pieArcLabel ?? PieArcLabel;
63
+ return /*#__PURE__*/_jsx("g", _extends({}, other, {
64
+ children: transition((_ref, item) => {
65
+ let {
66
+ startAngle,
67
+ endAngle,
68
+ paddingAngle: pA,
69
+ innerRadius: iR,
70
+ outerRadius: oR,
71
+ cornerRadius: cR
72
+ } = _ref,
73
+ style = _objectWithoutPropertiesLoose(_ref, _excluded2);
74
+ return /*#__PURE__*/_jsx(ArcLabel, _extends({
75
+ startAngle: startAngle,
76
+ endAngle: endAngle,
77
+ paddingAngle: pA,
78
+ innerRadius: iR,
79
+ outerRadius: oR,
80
+ cornerRadius: cR,
81
+ style: style,
82
+ id: id,
83
+ color: item.color,
84
+ isFaded: item.isFaded,
85
+ isHighlighted: item.isHighlighted,
86
+ formattedArcLabel: getItemLabel(arcLabel, arcLabelMinAngle, item)
87
+ }, slotProps?.pieArcLabel));
88
+ })
89
+ }));
90
+ }
@@ -0,0 +1,83 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ const _excluded = ["slots", "slotProps", "innerRadius", "outerRadius", "cornerRadius", "paddingAngle", "id", "highlightScope", "highlighted", "faded", "data", "onClick", "skipAnimation"],
4
+ _excluded2 = ["startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "cornerRadius"];
5
+ import * as React from 'react';
6
+ import { useTransition } from '@react-spring/web';
7
+ import PieArc from './PieArc';
8
+ import { defaultTransitionConfig } from './dataTransform/transition';
9
+ import { useTransformData } from './dataTransform/useTransformData';
10
+ import { jsx as _jsx } from "react/jsx-runtime";
11
+ export function PieArcPlot(props) {
12
+ const {
13
+ slots,
14
+ slotProps,
15
+ innerRadius = 0,
16
+ outerRadius,
17
+ cornerRadius = 0,
18
+ paddingAngle = 0,
19
+ id,
20
+ highlightScope,
21
+ highlighted,
22
+ faded = {
23
+ additionalRadius: -5
24
+ },
25
+ data,
26
+ onClick,
27
+ skipAnimation
28
+ } = props,
29
+ other = _objectWithoutPropertiesLoose(props, _excluded);
30
+ const transformedData = useTransformData({
31
+ innerRadius,
32
+ outerRadius,
33
+ cornerRadius,
34
+ paddingAngle,
35
+ id,
36
+ highlightScope,
37
+ highlighted,
38
+ faded,
39
+ data
40
+ });
41
+ const transition = useTransition(transformedData, _extends({}, defaultTransitionConfig, {
42
+ immediate: skipAnimation
43
+ }));
44
+ if (data.length === 0) {
45
+ return null;
46
+ }
47
+ const Arc = slots?.pieArc ?? PieArc;
48
+ return /*#__PURE__*/_jsx("g", _extends({}, other, {
49
+ children: transition((_ref, item, _, index) => {
50
+ let {
51
+ startAngle,
52
+ endAngle,
53
+ paddingAngle: pA,
54
+ innerRadius: iR,
55
+ outerRadius: oR,
56
+ cornerRadius: cR
57
+ } = _ref,
58
+ style = _objectWithoutPropertiesLoose(_ref, _excluded2);
59
+ return /*#__PURE__*/_jsx(Arc, _extends({
60
+ startAngle: startAngle,
61
+ endAngle: endAngle,
62
+ paddingAngle: pA,
63
+ innerRadius: iR,
64
+ outerRadius: oR,
65
+ cornerRadius: cR,
66
+ style: style,
67
+ id: id,
68
+ color: item.color,
69
+ dataIndex: index,
70
+ highlightScope: highlightScope,
71
+ isFaded: item.isFaded,
72
+ isHighlighted: item.isHighlighted,
73
+ onClick: onClick && (event => {
74
+ onClick(event, {
75
+ type: 'pie',
76
+ seriesId: id,
77
+ dataIndex: index
78
+ }, item);
79
+ })
80
+ }, slotProps?.pieArc));
81
+ })
82
+ }));
83
+ }
@@ -16,6 +16,17 @@ const defaultMargin = {
16
16
  left: 5,
17
17
  right: 100
18
18
  };
19
+
20
+ /**
21
+ * Demos:
22
+ *
23
+ * - [Pie](https://mui.com/x/react-charts/pie/)
24
+ * - [Pie demonstration](https://mui.com/x/react-charts/pie-demo/)
25
+ *
26
+ * API:
27
+ *
28
+ * - [PieChart API](https://mui.com/x/api/charts/pie-chart/)
29
+ */
19
30
  function PieChart(props) {
20
31
  const {
21
32
  xAxis,
@@ -33,6 +44,7 @@ function PieChart(props) {
33
44
  x: 'none',
34
45
  y: 'none'
35
46
  },
47
+ skipAnimation,
36
48
  legend = {
37
49
  direction: 'column',
38
50
  position: {
@@ -46,7 +58,8 @@ function PieChart(props) {
46
58
  bottomAxis = null,
47
59
  children,
48
60
  slots,
49
- slotProps
61
+ slotProps,
62
+ onClick
50
63
  } = props;
51
64
  const margin = _extends({}, defaultMargin, marginProps);
52
65
  return /*#__PURE__*/_jsxs(ResponsiveChartContainer, {
@@ -74,7 +87,9 @@ function PieChart(props) {
74
87
  slotProps: slotProps
75
88
  }), /*#__PURE__*/_jsx(PiePlot, {
76
89
  slots: slots,
77
- slotProps: slotProps
90
+ slotProps: slotProps,
91
+ onClick: onClick,
92
+ skipAnimation: skipAnimation
78
93
  }), /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legend, {
79
94
  slots: slots,
80
95
  slotProps: slotProps
@@ -96,18 +111,22 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
96
111
  * @default xAxisIds[0] The id of the first provided axis
97
112
  */
98
113
  bottomAxis: PropTypes.oneOfType([PropTypes.shape({
99
- axisId: PropTypes.string.isRequired,
114
+ axisId: PropTypes.string,
100
115
  classes: PropTypes.object,
101
116
  disableLine: PropTypes.bool,
102
117
  disableTicks: PropTypes.bool,
103
118
  fill: PropTypes.string,
104
119
  label: PropTypes.string,
105
120
  labelFontSize: PropTypes.number,
121
+ labelStyle: PropTypes.object,
106
122
  position: PropTypes.oneOf(['bottom', 'top']),
107
123
  slotProps: PropTypes.object,
108
124
  slots: PropTypes.object,
109
125
  stroke: PropTypes.string,
110
126
  tickFontSize: PropTypes.number,
127
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
128
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
129
+ tickLabelStyle: PropTypes.object,
111
130
  tickMaxStep: PropTypes.number,
112
131
  tickMinStep: PropTypes.number,
113
132
  tickNumber: PropTypes.number,
@@ -119,9 +138,21 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
119
138
  * Color palette used to colorize multiple series.
120
139
  */
121
140
  colors: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.func]),
141
+ /**
142
+ * An array of objects that can be used to populate series and axes data using their `dataKey` property.
143
+ */
122
144
  dataset: PropTypes.arrayOf(PropTypes.object),
123
145
  desc: PropTypes.string,
146
+ /**
147
+ * If `true`, the charts will not listen to the mouse move event.
148
+ * It might break interactive features, but will improve performance.
149
+ * @default false
150
+ */
124
151
  disableAxisListener: PropTypes.bool,
152
+ /**
153
+ * The height of the chart in px. If not defined, it takes the height of the parent element.
154
+ * @default undefined
155
+ */
125
156
  height: PropTypes.number,
126
157
  /**
127
158
  * Indicate which axis to display the left of the charts.
@@ -129,65 +160,76 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
129
160
  * @default yAxisIds[0] The id of the first provided axis
130
161
  */
131
162
  leftAxis: PropTypes.oneOfType([PropTypes.shape({
132
- axisId: PropTypes.string.isRequired,
163
+ axisId: PropTypes.string,
133
164
  classes: PropTypes.object,
134
165
  disableLine: PropTypes.bool,
135
166
  disableTicks: PropTypes.bool,
136
167
  fill: PropTypes.string,
137
168
  label: PropTypes.string,
138
169
  labelFontSize: PropTypes.number,
170
+ labelStyle: PropTypes.object,
139
171
  position: PropTypes.oneOf(['left', 'right']),
140
172
  slotProps: PropTypes.object,
141
173
  slots: PropTypes.object,
142
174
  stroke: PropTypes.string,
143
175
  tickFontSize: PropTypes.number,
176
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
177
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
178
+ tickLabelStyle: PropTypes.object,
144
179
  tickMaxStep: PropTypes.number,
145
180
  tickMinStep: PropTypes.number,
146
181
  tickNumber: PropTypes.number,
147
182
  tickSize: PropTypes.number
148
183
  }), PropTypes.string]),
184
+ /**
185
+ * @deprecated Consider using `slotProps.legend` instead.
186
+ */
149
187
  legend: PropTypes.shape({
150
188
  classes: PropTypes.object,
151
189
  direction: PropTypes.oneOf(['column', 'row']),
152
190
  hidden: PropTypes.bool,
153
- itemWidth: PropTypes.number,
154
- markSize: PropTypes.number,
155
- offset: PropTypes.shape({
156
- x: PropTypes.number,
157
- y: PropTypes.number
158
- }),
159
191
  position: PropTypes.shape({
160
192
  horizontal: PropTypes.oneOf(['left', 'middle', 'right']).isRequired,
161
193
  vertical: PropTypes.oneOf(['bottom', 'middle', 'top']).isRequired
162
194
  }),
163
195
  slotProps: PropTypes.object,
164
- slots: PropTypes.object,
165
- spacing: PropTypes.number
196
+ slots: PropTypes.object
166
197
  }),
198
+ /**
199
+ * The margin between the SVG and the drawing area.
200
+ * It's used for leaving some space for extra information such as the x- and y-axis or legend.
201
+ * Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
202
+ * @default object Depends on the charts type.
203
+ */
167
204
  margin: PropTypes.shape({
168
205
  bottom: PropTypes.number,
169
206
  left: PropTypes.number,
170
207
  right: PropTypes.number,
171
208
  top: PropTypes.number
172
209
  }),
210
+ onClick: PropTypes.func,
173
211
  /**
174
212
  * Indicate which axis to display the right of the charts.
175
213
  * Can be a string (the id of the axis) or an object `ChartsYAxisProps`.
176
214
  * @default null
177
215
  */
178
216
  rightAxis: PropTypes.oneOfType([PropTypes.shape({
179
- axisId: PropTypes.string.isRequired,
217
+ axisId: PropTypes.string,
180
218
  classes: PropTypes.object,
181
219
  disableLine: PropTypes.bool,
182
220
  disableTicks: PropTypes.bool,
183
221
  fill: PropTypes.string,
184
222
  label: PropTypes.string,
185
223
  labelFontSize: PropTypes.number,
224
+ labelStyle: PropTypes.object,
186
225
  position: PropTypes.oneOf(['left', 'right']),
187
226
  slotProps: PropTypes.object,
188
227
  slots: PropTypes.object,
189
228
  stroke: PropTypes.string,
190
229
  tickFontSize: PropTypes.number,
230
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
231
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
232
+ tickLabelStyle: PropTypes.object,
191
233
  tickMaxStep: PropTypes.number,
192
234
  tickMinStep: PropTypes.number,
193
235
  tickNumber: PropTypes.number,
@@ -209,15 +251,19 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
209
251
  endAngle: PropTypes.number,
210
252
  faded: PropTypes.shape({
211
253
  additionalRadius: PropTypes.number,
254
+ color: PropTypes.string,
212
255
  cornerRadius: PropTypes.number,
213
256
  innerRadius: PropTypes.number,
214
- outerRadius: PropTypes.number
257
+ outerRadius: PropTypes.number,
258
+ paddingAngle: PropTypes.number
215
259
  }),
216
260
  highlighted: PropTypes.shape({
217
261
  additionalRadius: PropTypes.number,
262
+ color: PropTypes.string,
218
263
  cornerRadius: PropTypes.number,
219
264
  innerRadius: PropTypes.number,
220
- outerRadius: PropTypes.number
265
+ outerRadius: PropTypes.number,
266
+ paddingAngle: PropTypes.number
221
267
  }),
222
268
  highlightScope: PropTypes.shape({
223
269
  faded: PropTypes.oneOf(['global', 'none', 'series']),
@@ -232,6 +278,11 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
232
278
  type: PropTypes.oneOf(['pie']),
233
279
  valueFormatter: PropTypes.func
234
280
  })).isRequired,
281
+ /**
282
+ * If `true`, animations are skiped.
283
+ * @default false
284
+ */
285
+ skipAnimation: PropTypes.bool,
235
286
  /**
236
287
  * The props used for each component slot.
237
288
  * @default {}
@@ -244,6 +295,8 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
244
295
  axisContent: PropTypes.elementType,
245
296
  classes: PropTypes.object,
246
297
  itemContent: PropTypes.elementType,
298
+ slotProps: PropTypes.object,
299
+ slots: PropTypes.object,
247
300
  trigger: PropTypes.oneOf(['axis', 'item', 'none'])
248
301
  }),
249
302
  /**
@@ -252,18 +305,22 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
252
305
  * @default null
253
306
  */
254
307
  topAxis: PropTypes.oneOfType([PropTypes.shape({
255
- axisId: PropTypes.string.isRequired,
308
+ axisId: PropTypes.string,
256
309
  classes: PropTypes.object,
257
310
  disableLine: PropTypes.bool,
258
311
  disableTicks: PropTypes.bool,
259
312
  fill: PropTypes.string,
260
313
  label: PropTypes.string,
261
314
  labelFontSize: PropTypes.number,
315
+ labelStyle: PropTypes.object,
262
316
  position: PropTypes.oneOf(['bottom', 'top']),
263
317
  slotProps: PropTypes.object,
264
318
  slots: PropTypes.object,
265
319
  stroke: PropTypes.string,
266
320
  tickFontSize: PropTypes.number,
321
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
322
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
323
+ tickLabelStyle: PropTypes.object,
267
324
  tickMaxStep: PropTypes.number,
268
325
  tickMinStep: PropTypes.number,
269
326
  tickNumber: PropTypes.number,
@@ -275,7 +332,15 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
275
332
  x: PropTypes.number,
276
333
  y: PropTypes.number
277
334
  }),
335
+ /**
336
+ * The width of the chart in px. If not defined, it takes the width of the parent element.
337
+ * @default undefined
338
+ */
278
339
  width: PropTypes.number,
340
+ /**
341
+ * The configuration of the x-axes.
342
+ * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
343
+ */
279
344
  xAxis: PropTypes.arrayOf(PropTypes.shape({
280
345
  axisId: PropTypes.string,
281
346
  classes: PropTypes.object,
@@ -288,6 +353,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
288
353
  id: PropTypes.string,
289
354
  label: PropTypes.string,
290
355
  labelFontSize: PropTypes.number,
356
+ labelStyle: PropTypes.object,
291
357
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
292
358
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
293
359
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
@@ -296,12 +362,19 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
296
362
  slots: PropTypes.object,
297
363
  stroke: PropTypes.string,
298
364
  tickFontSize: PropTypes.number,
365
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
366
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
367
+ tickLabelStyle: PropTypes.object,
299
368
  tickMaxStep: PropTypes.number,
300
369
  tickMinStep: PropTypes.number,
301
370
  tickNumber: PropTypes.number,
302
371
  tickSize: PropTypes.number,
303
372
  valueFormatter: PropTypes.func
304
373
  })),
374
+ /**
375
+ * The configuration of the y-axes.
376
+ * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
377
+ */
305
378
  yAxis: PropTypes.arrayOf(PropTypes.shape({
306
379
  axisId: PropTypes.string,
307
380
  classes: PropTypes.object,
@@ -314,6 +387,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
314
387
  id: PropTypes.string,
315
388
  label: PropTypes.string,
316
389
  labelFontSize: PropTypes.number,
390
+ labelStyle: PropTypes.object,
317
391
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
318
392
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
319
393
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
@@ -322,6 +396,9 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
322
396
  slots: PropTypes.object,
323
397
  stroke: PropTypes.string,
324
398
  tickFontSize: PropTypes.number,
399
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
400
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
401
+ tickLabelStyle: PropTypes.object,
325
402
  tickMaxStep: PropTypes.number,
326
403
  tickMinStep: PropTypes.number,
327
404
  tickNumber: PropTypes.number,