@mui/x-charts 6.0.0-alpha.9 → 6.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 (281) hide show
  1. package/BarChart/BarChart.d.ts +19 -5
  2. package/BarChart/BarChart.js +52 -13
  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 +735 -55
  10. package/ChartContainer/index.js +7 -5
  11. package/ChartsAxis/ChartsAxis.d.ts +9 -0
  12. package/ChartsAxis/ChartsAxis.js +28 -2
  13. package/ChartsAxis/axisClasses.d.ts +1 -1
  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 +44 -24
  20. package/ChartsLegend/ChartsLegend.js +192 -150
  21. package/ChartsLegend/chartsLegendClasses.js +1 -2
  22. package/ChartsLegend/utils.d.ts +1 -6
  23. package/ChartsSurface.d.ts +1 -1
  24. package/ChartsSurface.js +9 -18
  25. package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +1 -0
  26. package/ChartsTooltip/ChartsAxisTooltipContent.js +46 -32
  27. package/ChartsTooltip/ChartsItemTooltipContent.d.ts +3 -2
  28. package/ChartsTooltip/ChartsItemTooltipContent.js +18 -9
  29. package/ChartsTooltip/ChartsTooltip.d.ts +32 -0
  30. package/ChartsTooltip/ChartsTooltip.js +62 -18
  31. package/ChartsTooltip/ChartsTooltipTable.d.ts +3 -10
  32. package/ChartsTooltip/ChartsTooltipTable.js +22 -20
  33. package/ChartsTooltip/tooltipClasses.js +1 -2
  34. package/ChartsTooltip/utils.js +2 -2
  35. package/ChartsXAxis/ChartsXAxis.d.ts +9 -0
  36. package/ChartsXAxis/ChartsXAxis.js +161 -40
  37. package/ChartsYAxis/ChartsYAxis.d.ts +9 -0
  38. package/ChartsYAxis/ChartsYAxis.js +86 -33
  39. package/LineChart/AreaElement.d.ts +11 -1
  40. package/LineChart/AreaElement.js +14 -6
  41. package/LineChart/AreaPlot.d.ts +11 -0
  42. package/LineChart/AreaPlot.js +27 -8
  43. package/LineChart/LineChart.d.ts +16 -3
  44. package/LineChart/LineChart.js +48 -13
  45. package/LineChart/LineElement.d.ts +11 -1
  46. package/LineChart/LineElement.js +14 -6
  47. package/LineChart/LineHighlightElement.d.ts +10 -0
  48. package/LineChart/LineHighlightElement.js +13 -4
  49. package/LineChart/LineHighlightPlot.d.ts +10 -0
  50. package/LineChart/LineHighlightPlot.js +14 -3
  51. package/LineChart/LinePlot.d.ts +10 -0
  52. package/LineChart/LinePlot.js +25 -12
  53. package/LineChart/MarkElement.d.ts +10 -0
  54. package/LineChart/MarkElement.js +14 -5
  55. package/LineChart/MarkPlot.d.ts +10 -0
  56. package/LineChart/MarkPlot.js +40 -9
  57. package/LineChart/formatter.js +5 -5
  58. package/LineChart/legend.js +1 -2
  59. package/PieChart/PieArc.d.ts +11 -13
  60. package/PieChart/PieArc.js +28 -60
  61. package/PieChart/PieArcLabel.d.ts +8 -9
  62. package/PieChart/PieArcLabel.js +46 -38
  63. package/PieChart/PieArcLabelPlot.d.ts +28 -0
  64. package/PieChart/PieArcLabelPlot.js +99 -0
  65. package/PieChart/PieArcPlot.d.ts +35 -0
  66. package/PieChart/PieArcPlot.js +92 -0
  67. package/PieChart/PieChart.d.ts +19 -5
  68. package/PieChart/PieChart.js +61 -14
  69. package/PieChart/PiePlot.d.ts +15 -9
  70. package/PieChart/PiePlot.js +77 -55
  71. package/PieChart/dataTransform/transition.d.ts +4 -0
  72. package/PieChart/dataTransform/transition.js +136 -0
  73. package/PieChart/dataTransform/useTransformData.d.ts +15 -0
  74. package/PieChart/dataTransform/useTransformData.js +67 -0
  75. package/PieChart/formatter.js +1 -2
  76. package/PieChart/legend.js +1 -2
  77. package/README.md +8 -14
  78. package/ResponsiveChartContainer/index.js +7 -8
  79. package/ScatterChart/Scatter.d.ts +10 -0
  80. package/ScatterChart/Scatter.js +12 -2
  81. package/ScatterChart/ScatterChart.d.ts +16 -3
  82. package/ScatterChart/ScatterChart.js +43 -12
  83. package/ScatterChart/ScatterPlot.d.ts +10 -0
  84. package/ScatterChart/ScatterPlot.js +12 -2
  85. package/ScatterChart/formatter.js +1 -2
  86. package/ScatterChart/legend.js +1 -2
  87. package/SparkLineChart/SparkLineChart.d.ts +12 -3
  88. package/SparkLineChart/SparkLineChart.js +28 -7
  89. package/colorPalettes/colorPalettes.js +6 -12
  90. package/constants.js +5 -8
  91. package/context/CartesianContextProvider.d.ts +5 -0
  92. package/context/CartesianContextProvider.js +31 -16
  93. package/context/DrawingProvider.d.ts +7 -0
  94. package/context/DrawingProvider.js +12 -6
  95. package/context/HighlightProvider.js +3 -4
  96. package/context/InteractionProvider.js +3 -4
  97. package/context/SeriesContextProvider.js +3 -4
  98. package/esm/BarChart/BarChart.js +49 -9
  99. package/esm/BarChart/BarElement.js +7 -4
  100. package/esm/BarChart/BarPlot.js +152 -67
  101. package/esm/BarChart/formatter.js +1 -1
  102. package/esm/ChartContainer/index.js +3 -0
  103. package/esm/ChartsAxis/ChartsAxis.js +26 -0
  104. package/esm/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
  105. package/esm/ChartsClipPath/ChartsClipPath.js +5 -0
  106. package/esm/ChartsLegend/ChartsLegend.js +188 -142
  107. package/esm/ChartsSurface.js +4 -12
  108. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
  109. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  110. package/esm/ChartsTooltip/ChartsTooltip.js +59 -14
  111. package/esm/ChartsTooltip/ChartsTooltipTable.js +17 -10
  112. package/esm/ChartsXAxis/ChartsXAxis.js +158 -37
  113. package/esm/ChartsYAxis/ChartsYAxis.js +83 -30
  114. package/esm/LineChart/AreaElement.js +10 -0
  115. package/esm/LineChart/AreaPlot.js +26 -6
  116. package/esm/LineChart/LineChart.js +45 -9
  117. package/esm/LineChart/LineElement.js +10 -0
  118. package/esm/LineChart/LineHighlightElement.js +10 -0
  119. package/esm/LineChart/LineHighlightPlot.js +12 -1
  120. package/esm/LineChart/LinePlot.js +25 -14
  121. package/esm/LineChart/MarkElement.js +11 -1
  122. package/esm/LineChart/MarkPlot.js +38 -7
  123. package/esm/LineChart/formatter.js +7 -3
  124. package/esm/PieChart/PieArc.js +26 -58
  125. package/esm/PieChart/PieArcLabel.js +43 -34
  126. package/esm/PieChart/PieArcLabelPlot.js +92 -0
  127. package/esm/PieChart/PieArcPlot.js +84 -0
  128. package/esm/PieChart/PieChart.js +59 -12
  129. package/esm/PieChart/PiePlot.js +76 -57
  130. package/esm/PieChart/dataTransform/transition.js +130 -0
  131. package/esm/PieChart/dataTransform/useTransformData.js +59 -0
  132. package/esm/ResponsiveChartContainer/index.js +3 -3
  133. package/esm/ScatterChart/Scatter.js +10 -0
  134. package/esm/ScatterChart/ScatterChart.js +40 -8
  135. package/esm/ScatterChart/ScatterPlot.js +10 -0
  136. package/esm/SparkLineChart/SparkLineChart.js +25 -3
  137. package/esm/constants.js +1 -1
  138. package/esm/context/CartesianContextProvider.js +30 -14
  139. package/esm/context/DrawingProvider.js +8 -0
  140. package/esm/hooks/useChartDimensions.js +2 -0
  141. package/esm/hooks/useMounted.js +16 -0
  142. package/esm/hooks/useReducedMotion.js +27 -0
  143. package/esm/hooks/useTicks.js +15 -9
  144. package/esm/internals/components/AxisSharedComponents.js +15 -70
  145. package/esm/internals/components/ChartsText.js +77 -0
  146. package/esm/internals/domUtils.js +113 -0
  147. package/esm/internals/geometry.js +36 -0
  148. package/hooks/useAxisEvents.js +2 -2
  149. package/hooks/useChartDimensions.d.ts +2 -0
  150. package/hooks/useChartDimensions.js +5 -4
  151. package/hooks/useDrawingArea.js +2 -2
  152. package/hooks/useInteractionItemProps.js +2 -2
  153. package/hooks/useMounted.d.ts +1 -0
  154. package/hooks/useMounted.js +25 -0
  155. package/hooks/useReducedMotion.d.ts +8 -0
  156. package/hooks/useReducedMotion.js +33 -0
  157. package/hooks/useScale.d.ts +2 -2
  158. package/hooks/useScale.js +2 -2
  159. package/hooks/useTicks.d.ts +19 -11
  160. package/hooks/useTicks.js +19 -14
  161. package/index.js +1 -1
  162. package/internals/components/AxisSharedComponents.d.ts +0 -4
  163. package/internals/components/AxisSharedComponents.js +18 -78
  164. package/internals/components/ChartsText.d.ts +35 -0
  165. package/internals/components/ChartsText.js +87 -0
  166. package/internals/defaultizeColor.d.ts +7 -2
  167. package/internals/defaultizeValueFormatter.js +1 -2
  168. package/internals/domUtils.d.ts +13 -0
  169. package/internals/domUtils.js +122 -0
  170. package/internals/geometry.d.ts +9 -0
  171. package/internals/geometry.js +42 -0
  172. package/internals/stackSeries.js +2 -4
  173. package/legacy/BarChart/BarChart.js +49 -9
  174. package/legacy/BarChart/BarElement.js +6 -3
  175. package/legacy/BarChart/BarPlot.js +151 -63
  176. package/legacy/BarChart/formatter.js +1 -1
  177. package/legacy/ChartContainer/index.js +3 -0
  178. package/legacy/ChartsAxis/ChartsAxis.js +26 -0
  179. package/legacy/ChartsAxisHighlight/ChartsAxisHighlight.js +60 -20
  180. package/legacy/ChartsClipPath/ChartsClipPath.js +5 -0
  181. package/legacy/ChartsLegend/ChartsLegend.js +203 -140
  182. package/legacy/ChartsSurface.js +3 -12
  183. package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +22 -10
  184. package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  185. package/legacy/ChartsTooltip/ChartsTooltip.js +62 -14
  186. package/legacy/ChartsTooltip/ChartsTooltipTable.js +34 -26
  187. package/legacy/ChartsXAxis/ChartsXAxis.js +162 -39
  188. package/legacy/ChartsYAxis/ChartsYAxis.js +83 -30
  189. package/legacy/LineChart/AreaElement.js +10 -0
  190. package/legacy/LineChart/AreaPlot.js +31 -7
  191. package/legacy/LineChart/LineChart.js +45 -9
  192. package/legacy/LineChart/LineElement.js +10 -0
  193. package/legacy/LineChart/LineHighlightElement.js +10 -0
  194. package/legacy/LineChart/LineHighlightPlot.js +12 -1
  195. package/legacy/LineChart/LinePlot.js +29 -12
  196. package/legacy/LineChart/MarkElement.js +11 -1
  197. package/legacy/LineChart/MarkPlot.js +37 -7
  198. package/legacy/LineChart/formatter.js +7 -3
  199. package/legacy/PieChart/PieArc.js +30 -62
  200. package/legacy/PieChart/PieArcLabel.js +48 -34
  201. package/legacy/PieChart/PieArcLabelPlot.js +93 -0
  202. package/legacy/PieChart/PieArcPlot.js +84 -0
  203. package/legacy/PieChart/PieChart.js +59 -12
  204. package/legacy/PieChart/PiePlot.js +76 -59
  205. package/legacy/PieChart/dataTransform/transition.js +142 -0
  206. package/legacy/PieChart/dataTransform/useTransformData.js +60 -0
  207. package/legacy/ResponsiveChartContainer/index.js +3 -3
  208. package/legacy/ScatterChart/Scatter.js +10 -0
  209. package/legacy/ScatterChart/ScatterChart.js +40 -8
  210. package/legacy/ScatterChart/ScatterPlot.js +10 -0
  211. package/legacy/SparkLineChart/SparkLineChart.js +25 -3
  212. package/legacy/constants.js +1 -1
  213. package/legacy/context/CartesianContextProvider.js +30 -14
  214. package/legacy/context/DrawingProvider.js +8 -0
  215. package/legacy/hooks/useChartDimensions.js +2 -0
  216. package/legacy/hooks/useMounted.js +21 -0
  217. package/legacy/hooks/useReducedMotion.js +27 -0
  218. package/legacy/hooks/useTicks.js +16 -9
  219. package/legacy/index.js +1 -1
  220. package/legacy/internals/components/AxisSharedComponents.js +11 -65
  221. package/legacy/internals/components/ChartsText.js +79 -0
  222. package/legacy/internals/domUtils.js +121 -0
  223. package/legacy/internals/geometry.js +37 -0
  224. package/models/axis.d.ts +27 -9
  225. package/models/layout.d.ts +7 -6
  226. package/models/seriesType/line.d.ts +8 -3
  227. package/models/seriesType/pie.d.ts +5 -1
  228. package/modern/BarChart/BarChart.js +49 -9
  229. package/modern/BarChart/BarElement.js +7 -4
  230. package/modern/BarChart/BarPlot.js +149 -65
  231. package/modern/BarChart/formatter.js +1 -1
  232. package/modern/ChartContainer/index.js +3 -0
  233. package/modern/ChartsAxis/ChartsAxis.js +26 -0
  234. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
  235. package/modern/ChartsClipPath/ChartsClipPath.js +5 -0
  236. package/modern/ChartsLegend/ChartsLegend.js +188 -142
  237. package/modern/ChartsSurface.js +4 -12
  238. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
  239. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  240. package/modern/ChartsTooltip/ChartsTooltip.js +58 -14
  241. package/modern/ChartsTooltip/ChartsTooltipTable.js +17 -10
  242. package/modern/ChartsXAxis/ChartsXAxis.js +158 -37
  243. package/modern/ChartsYAxis/ChartsYAxis.js +83 -30
  244. package/modern/LineChart/AreaElement.js +10 -0
  245. package/modern/LineChart/AreaPlot.js +25 -6
  246. package/modern/LineChart/LineChart.js +45 -9
  247. package/modern/LineChart/LineElement.js +10 -0
  248. package/modern/LineChart/LineHighlightElement.js +10 -0
  249. package/modern/LineChart/LineHighlightPlot.js +12 -1
  250. package/modern/LineChart/LinePlot.js +23 -10
  251. package/modern/LineChart/MarkElement.js +11 -1
  252. package/modern/LineChart/MarkPlot.js +38 -7
  253. package/modern/LineChart/formatter.js +4 -3
  254. package/modern/PieChart/PieArc.js +26 -57
  255. package/modern/PieChart/PieArcLabel.js +43 -34
  256. package/modern/PieChart/PieArcLabelPlot.js +90 -0
  257. package/modern/PieChart/PieArcPlot.js +83 -0
  258. package/modern/PieChart/PieChart.js +59 -12
  259. package/modern/PieChart/PiePlot.js +76 -55
  260. package/modern/PieChart/dataTransform/transition.js +130 -0
  261. package/modern/PieChart/dataTransform/useTransformData.js +58 -0
  262. package/modern/ResponsiveChartContainer/index.js +3 -3
  263. package/modern/ScatterChart/Scatter.js +10 -0
  264. package/modern/ScatterChart/ScatterChart.js +40 -8
  265. package/modern/ScatterChart/ScatterPlot.js +10 -0
  266. package/modern/SparkLineChart/SparkLineChart.js +25 -3
  267. package/modern/constants.js +1 -1
  268. package/modern/context/CartesianContextProvider.js +29 -13
  269. package/modern/context/DrawingProvider.js +8 -0
  270. package/modern/hooks/useChartDimensions.js +2 -0
  271. package/modern/hooks/useMounted.js +16 -0
  272. package/modern/hooks/useReducedMotion.js +27 -0
  273. package/modern/hooks/useTicks.js +15 -9
  274. package/modern/index.js +1 -1
  275. package/modern/internals/components/AxisSharedComponents.js +15 -70
  276. package/modern/internals/components/ChartsText.js +77 -0
  277. package/modern/internals/domUtils.js +113 -0
  278. package/modern/internals/geometry.js +36 -0
  279. package/package.json +9 -6
  280. package/themeAugmentation/components.d.ts +1 -0
  281. package/themeAugmentation/overrides.d.ts +2 -0
@@ -24,7 +24,7 @@ const formatter = (params, dataset) => {
24
24
  d3Dataset[index][id] = value;
25
25
  }
26
26
  });
27
- } else if (dataset === undefined) {
27
+ } else if (dataset === undefined && process.env.NODE_ENV !== 'production') {
28
28
  throw new Error([`MUI: line series with id='${id}' has no data.`, 'Either provide a data property to the series or use the dataset prop.'].join('\n'));
29
29
  }
30
30
  });
@@ -40,7 +40,8 @@ const formatter = (params, dataset) => {
40
40
  // Use dataKey if needed and available
41
41
  const dataKey = series[id].dataKey;
42
42
  return series[id].data === undefined && dataKey !== undefined ? dataKey : id;
43
- })).order(stackingOrder).offset(stackingOffset)(d3Dataset);
43
+ })).value((d, key) => d[key] ?? 0) // defaultize null value to 0
44
+ .order(stackingOrder).offset(stackingOffset)(d3Dataset);
44
45
  ids.forEach((id, index) => {
45
46
  const dataKey = series[id].dataKey;
46
47
  completedSeries[id] = _extends({}, series[id], {
@@ -52,7 +53,7 @@ const formatter = (params, dataset) => {
52
53
  return {
53
54
  seriesOrder,
54
55
  stackingGroups,
55
- series: defaultizeValueFormatter(completedSeries, v => v.toLocaleString())
56
+ series: defaultizeValueFormatter(completedSeries, v => v?.toLocaleString())
56
57
  };
57
58
  };
58
59
  export default formatter;
@@ -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", "highlighted", "faded"];
3
+ const _excluded = ["id", "dataIndex", "classes", "color", "highlightScope", "onClick", "isFaded", "isHighlighted", "startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "cornerRadius"];
4
4
  import * as React from 'react';
5
5
  import { arc as d3Arc } from 'd3-shape';
6
- import PropTypes from 'prop-types';
6
+ import { animated, to } from '@react-spring/web';
7
7
  import composeClasses from '@mui/utils/composeClasses';
8
8
  import generateUtilityClass from '@mui/utils/generateUtilityClass';
9
9
  import { styled } from '@mui/material/styles';
10
10
  import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
11
- import { InteractionContext } from '../context/InteractionProvider';
12
- import { getIsFaded, getIsHighlighted, useInteractionItemProps } from '../hooks/useInteractionItemProps';
11
+ import { useInteractionItemProps } from '../hooks/useInteractionItemProps';
13
12
  import { jsx as _jsx } from "react/jsx-runtime";
14
13
  export function getPieArcUtilityClass(slot) {
15
14
  return generateUtilityClass('MuiPieArc', slot);
@@ -27,19 +26,16 @@ const useUtilityClasses = ownerState => {
27
26
  };
28
27
  return composeClasses(slots, getPieArcUtilityClass, classes);
29
28
  };
30
- const PieArcRoot = styled('path', {
29
+ const PieArcRoot = styled(animated.path, {
31
30
  name: 'MuiPieArc',
32
31
  slot: 'Root',
33
32
  overridesResolver: (_, styles) => styles.arc
34
33
  })(({
35
- ownerState,
36
34
  theme
37
35
  }) => ({
38
- stroke: theme.palette.background.paper,
36
+ stroke: (theme.vars || theme).palette.background.paper,
39
37
  strokeWidth: 1,
40
- strokeLinejoin: 'round',
41
- fill: ownerState.color,
42
- opacity: ownerState.isFaded ? 0.3 : 1
38
+ strokeLinejoin: 'round'
43
39
  }));
44
40
  export default function PieArc(props) {
45
41
  const {
@@ -48,29 +44,17 @@ export default function PieArc(props) {
48
44
  classes: innerClasses,
49
45
  color,
50
46
  highlightScope,
51
- innerRadius: baseInnerRadius = 0,
52
- outerRadius: baseOuterRadius,
53
- cornerRadius: baseCornerRadius = 0,
54
- highlighted,
55
- faded = {
56
- additionalRadius: -5
57
- }
47
+ onClick,
48
+ isFaded,
49
+ isHighlighted,
50
+ startAngle,
51
+ endAngle,
52
+ paddingAngle,
53
+ innerRadius,
54
+ outerRadius,
55
+ cornerRadius
58
56
  } = props,
59
57
  other = _objectWithoutPropertiesLoose(props, _excluded);
60
- const getInteractionItemProps = useInteractionItemProps(highlightScope);
61
- const {
62
- item
63
- } = React.useContext(InteractionContext);
64
- const isHighlighted = getIsHighlighted(item, {
65
- type: 'pie',
66
- seriesId: id,
67
- dataIndex
68
- }, highlightScope);
69
- const isFaded = !isHighlighted && getIsFaded(item, {
70
- type: 'pie',
71
- seriesId: id,
72
- dataIndex
73
- }, highlightScope);
74
58
  const ownerState = {
75
59
  id,
76
60
  dataIndex,
@@ -80,37 +64,22 @@ export default function PieArc(props) {
80
64
  isHighlighted
81
65
  };
82
66
  const classes = useUtilityClasses(ownerState);
83
- const attibuesOverride = _extends({
84
- additionalRadius: 0
85
- }, isFaded && faded || isHighlighted && highlighted || {});
86
- const innerRadius = Math.max(0, attibuesOverride.innerRadius ?? baseInnerRadius);
87
- const outerRadius = Math.max(0, attibuesOverride.outerRadius ?? baseOuterRadius + attibuesOverride.additionalRadius);
88
- const cornerRadius = attibuesOverride.cornerRadius ?? baseCornerRadius;
67
+ const getInteractionItemProps = useInteractionItemProps(highlightScope);
89
68
  return /*#__PURE__*/_jsx(PieArcRoot, _extends({
90
- d: d3Arc().cornerRadius(cornerRadius)(_extends({}, other, {
91
- innerRadius,
92
- outerRadius
69
+ d: to([startAngle, endAngle, paddingAngle, innerRadius, outerRadius, cornerRadius], (sA, eA, pA, iR, oR, cR) => d3Arc().cornerRadius(cR)({
70
+ padAngle: pA,
71
+ startAngle: sA,
72
+ endAngle: eA,
73
+ innerRadius: iR,
74
+ outerRadius: oR
93
75
  })),
76
+ onClick: onClick,
77
+ cursor: onClick ? 'pointer' : 'unset',
94
78
  ownerState: ownerState,
95
79
  className: classes.root
96
- }, getInteractionItemProps({
80
+ }, other, getInteractionItemProps({
97
81
  type: 'pie',
98
82
  seriesId: id,
99
83
  dataIndex
100
84
  })));
101
- }
102
- process.env.NODE_ENV !== "production" ? PieArc.propTypes = {
103
- // ----------------------------- Warning --------------------------------
104
- // | These PropTypes are generated from the TypeScript type definitions |
105
- // | To update them edit the TypeScript types and run "yarn proptypes" |
106
- // ----------------------------------------------------------------------
107
- classes: PropTypes.object,
108
- cornerRadius: PropTypes.number,
109
- dataIndex: PropTypes.number.isRequired,
110
- highlightScope: PropTypes.shape({
111
- faded: PropTypes.oneOf(['global', 'none', 'series']),
112
- highlighted: PropTypes.oneOf(['item', 'none', 'series'])
113
- }),
114
- innerRadius: PropTypes.number,
115
- outerRadius: PropTypes.number.isRequired
116
- } : void 0;
85
+ }
@@ -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
@@ -103,11 +118,15 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
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,
@@ -136,33 +155,33 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
136
155
  fill: PropTypes.string,
137
156
  label: PropTypes.string,
138
157
  labelFontSize: PropTypes.number,
158
+ labelStyle: PropTypes.object,
139
159
  position: PropTypes.oneOf(['left', 'right']),
140
160
  slotProps: PropTypes.object,
141
161
  slots: PropTypes.object,
142
162
  stroke: PropTypes.string,
143
163
  tickFontSize: PropTypes.number,
164
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
165
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
166
+ tickLabelStyle: PropTypes.object,
144
167
  tickMaxStep: PropTypes.number,
145
168
  tickMinStep: PropTypes.number,
146
169
  tickNumber: PropTypes.number,
147
170
  tickSize: PropTypes.number
148
171
  }), PropTypes.string]),
172
+ /**
173
+ * @deprecated Consider using `slotProps.legend` instead.
174
+ */
149
175
  legend: PropTypes.shape({
150
176
  classes: PropTypes.object,
151
177
  direction: PropTypes.oneOf(['column', 'row']),
152
178
  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
179
  position: PropTypes.shape({
160
180
  horizontal: PropTypes.oneOf(['left', 'middle', 'right']).isRequired,
161
181
  vertical: PropTypes.oneOf(['bottom', 'middle', 'top']).isRequired
162
182
  }),
163
183
  slotProps: PropTypes.object,
164
- slots: PropTypes.object,
165
- spacing: PropTypes.number
184
+ slots: PropTypes.object
166
185
  }),
167
186
  margin: PropTypes.shape({
168
187
  bottom: PropTypes.number,
@@ -170,6 +189,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
170
189
  right: PropTypes.number,
171
190
  top: PropTypes.number
172
191
  }),
192
+ onClick: PropTypes.func,
173
193
  /**
174
194
  * Indicate which axis to display the right of the charts.
175
195
  * Can be a string (the id of the axis) or an object `ChartsYAxisProps`.
@@ -183,11 +203,15 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
183
203
  fill: PropTypes.string,
184
204
  label: PropTypes.string,
185
205
  labelFontSize: PropTypes.number,
206
+ labelStyle: PropTypes.object,
186
207
  position: PropTypes.oneOf(['left', 'right']),
187
208
  slotProps: PropTypes.object,
188
209
  slots: PropTypes.object,
189
210
  stroke: PropTypes.string,
190
211
  tickFontSize: PropTypes.number,
212
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
213
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
214
+ tickLabelStyle: PropTypes.object,
191
215
  tickMaxStep: PropTypes.number,
192
216
  tickMinStep: PropTypes.number,
193
217
  tickNumber: PropTypes.number,
@@ -209,15 +233,19 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
209
233
  endAngle: PropTypes.number,
210
234
  faded: PropTypes.shape({
211
235
  additionalRadius: PropTypes.number,
236
+ color: PropTypes.string,
212
237
  cornerRadius: PropTypes.number,
213
238
  innerRadius: PropTypes.number,
214
- outerRadius: PropTypes.number
239
+ outerRadius: PropTypes.number,
240
+ paddingAngle: PropTypes.number
215
241
  }),
216
242
  highlighted: PropTypes.shape({
217
243
  additionalRadius: PropTypes.number,
244
+ color: PropTypes.string,
218
245
  cornerRadius: PropTypes.number,
219
246
  innerRadius: PropTypes.number,
220
- outerRadius: PropTypes.number
247
+ outerRadius: PropTypes.number,
248
+ paddingAngle: PropTypes.number
221
249
  }),
222
250
  highlightScope: PropTypes.shape({
223
251
  faded: PropTypes.oneOf(['global', 'none', 'series']),
@@ -232,6 +260,11 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
232
260
  type: PropTypes.oneOf(['pie']),
233
261
  valueFormatter: PropTypes.func
234
262
  })).isRequired,
263
+ /**
264
+ * If `true`, animations are skiped.
265
+ * @default false
266
+ */
267
+ skipAnimation: PropTypes.bool,
235
268
  /**
236
269
  * The props used for each component slot.
237
270
  * @default {}
@@ -244,6 +277,8 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
244
277
  axisContent: PropTypes.elementType,
245
278
  classes: PropTypes.object,
246
279
  itemContent: PropTypes.elementType,
280
+ slotProps: PropTypes.object,
281
+ slots: PropTypes.object,
247
282
  trigger: PropTypes.oneOf(['axis', 'item', 'none'])
248
283
  }),
249
284
  /**
@@ -259,11 +294,15 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
259
294
  fill: PropTypes.string,
260
295
  label: PropTypes.string,
261
296
  labelFontSize: PropTypes.number,
297
+ labelStyle: PropTypes.object,
262
298
  position: PropTypes.oneOf(['bottom', 'top']),
263
299
  slotProps: PropTypes.object,
264
300
  slots: PropTypes.object,
265
301
  stroke: PropTypes.string,
266
302
  tickFontSize: PropTypes.number,
303
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
304
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
305
+ tickLabelStyle: PropTypes.object,
267
306
  tickMaxStep: PropTypes.number,
268
307
  tickMinStep: PropTypes.number,
269
308
  tickNumber: PropTypes.number,
@@ -288,6 +327,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
288
327
  id: PropTypes.string,
289
328
  label: PropTypes.string,
290
329
  labelFontSize: PropTypes.number,
330
+ labelStyle: PropTypes.object,
291
331
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
292
332
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
293
333
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
@@ -296,6 +336,9 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
296
336
  slots: PropTypes.object,
297
337
  stroke: PropTypes.string,
298
338
  tickFontSize: PropTypes.number,
339
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
340
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
341
+ tickLabelStyle: PropTypes.object,
299
342
  tickMaxStep: PropTypes.number,
300
343
  tickMinStep: PropTypes.number,
301
344
  tickNumber: PropTypes.number,
@@ -314,6 +357,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
314
357
  id: PropTypes.string,
315
358
  label: PropTypes.string,
316
359
  labelFontSize: PropTypes.number,
360
+ labelStyle: PropTypes.object,
317
361
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
318
362
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
319
363
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
@@ -322,6 +366,9 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
322
366
  slots: PropTypes.object,
323
367
  stroke: PropTypes.string,
324
368
  tickFontSize: PropTypes.number,
369
+ tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
370
+ tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
371
+ tickLabelStyle: PropTypes.object,
325
372
  tickMaxStep: PropTypes.number,
326
373
  tickMinStep: PropTypes.number,
327
374
  tickNumber: PropTypes.number,