@mui/x-charts 6.0.0-alpha.8 → 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 (286) 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 +786 -48
  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 +12 -2
  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 +21 -3
  44. package/LineChart/LineChart.js +61 -14
  45. package/LineChart/LineElement.d.ts +12 -2
  46. package/LineChart/LineElement.js +14 -6
  47. package/LineChart/LineHighlightElement.d.ts +31 -0
  48. package/LineChart/LineHighlightElement.js +88 -0
  49. package/LineChart/LineHighlightPlot.d.ts +35 -0
  50. package/LineChart/LineHighlightPlot.js +110 -0
  51. package/LineChart/LinePlot.d.ts +10 -0
  52. package/LineChart/LinePlot.js +25 -12
  53. package/LineChart/MarkElement.d.ts +11 -1
  54. package/LineChart/MarkElement.js +15 -9
  55. package/LineChart/MarkPlot.d.ts +10 -0
  56. package/LineChart/MarkPlot.js +62 -15
  57. package/LineChart/formatter.js +5 -5
  58. package/LineChart/index.d.ts +2 -0
  59. package/LineChart/index.js +20 -0
  60. package/LineChart/legend.js +1 -2
  61. package/PieChart/PieArc.d.ts +12 -14
  62. package/PieChart/PieArc.js +28 -60
  63. package/PieChart/PieArcLabel.d.ts +9 -10
  64. package/PieChart/PieArcLabel.js +46 -38
  65. package/PieChart/PieArcLabelPlot.d.ts +28 -0
  66. package/PieChart/PieArcLabelPlot.js +99 -0
  67. package/PieChart/PieArcPlot.d.ts +35 -0
  68. package/PieChart/PieArcPlot.js +92 -0
  69. package/PieChart/PieChart.d.ts +19 -5
  70. package/PieChart/PieChart.js +61 -14
  71. package/PieChart/PiePlot.d.ts +15 -9
  72. package/PieChart/PiePlot.js +77 -55
  73. package/PieChart/dataTransform/transition.d.ts +4 -0
  74. package/PieChart/dataTransform/transition.js +136 -0
  75. package/PieChart/dataTransform/useTransformData.d.ts +15 -0
  76. package/PieChart/dataTransform/useTransformData.js +67 -0
  77. package/PieChart/formatter.js +1 -2
  78. package/PieChart/legend.js +1 -2
  79. package/README.md +8 -14
  80. package/ResponsiveChartContainer/index.js +7 -8
  81. package/ScatterChart/Scatter.d.ts +10 -0
  82. package/ScatterChart/Scatter.js +12 -2
  83. package/ScatterChart/ScatterChart.d.ts +16 -3
  84. package/ScatterChart/ScatterChart.js +43 -12
  85. package/ScatterChart/ScatterPlot.d.ts +10 -0
  86. package/ScatterChart/ScatterPlot.js +12 -2
  87. package/ScatterChart/formatter.js +1 -2
  88. package/ScatterChart/legend.js +1 -2
  89. package/SparkLineChart/SparkLineChart.d.ts +13 -3
  90. package/SparkLineChart/SparkLineChart.js +34 -18
  91. package/colorPalettes/colorPalettes.js +6 -12
  92. package/constants.js +5 -8
  93. package/context/CartesianContextProvider.d.ts +5 -0
  94. package/context/CartesianContextProvider.js +31 -16
  95. package/context/DrawingProvider.d.ts +7 -0
  96. package/context/DrawingProvider.js +12 -6
  97. package/context/HighlightProvider.js +3 -4
  98. package/context/InteractionProvider.js +3 -4
  99. package/context/SeriesContextProvider.js +3 -4
  100. package/esm/BarChart/BarChart.js +49 -9
  101. package/esm/BarChart/BarElement.js +7 -4
  102. package/esm/BarChart/BarPlot.js +152 -67
  103. package/esm/BarChart/formatter.js +1 -1
  104. package/esm/ChartContainer/index.js +3 -0
  105. package/esm/ChartsAxis/ChartsAxis.js +26 -0
  106. package/esm/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
  107. package/esm/ChartsClipPath/ChartsClipPath.js +5 -0
  108. package/esm/ChartsLegend/ChartsLegend.js +188 -142
  109. package/esm/ChartsSurface.js +4 -12
  110. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
  111. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  112. package/esm/ChartsTooltip/ChartsTooltip.js +59 -14
  113. package/esm/ChartsTooltip/ChartsTooltipTable.js +17 -10
  114. package/esm/ChartsXAxis/ChartsXAxis.js +158 -37
  115. package/esm/ChartsYAxis/ChartsYAxis.js +83 -30
  116. package/esm/LineChart/AreaElement.js +10 -0
  117. package/esm/LineChart/AreaPlot.js +26 -6
  118. package/esm/LineChart/LineChart.js +58 -10
  119. package/esm/LineChart/LineElement.js +10 -0
  120. package/esm/LineChart/LineHighlightElement.js +78 -0
  121. package/esm/LineChart/LineHighlightPlot.js +103 -0
  122. package/esm/LineChart/LinePlot.js +25 -14
  123. package/esm/LineChart/MarkElement.js +12 -5
  124. package/esm/LineChart/MarkPlot.js +60 -13
  125. package/esm/LineChart/formatter.js +7 -3
  126. package/esm/LineChart/index.js +3 -1
  127. package/esm/PieChart/PieArc.js +26 -58
  128. package/esm/PieChart/PieArcLabel.js +43 -34
  129. package/esm/PieChart/PieArcLabelPlot.js +92 -0
  130. package/esm/PieChart/PieArcPlot.js +84 -0
  131. package/esm/PieChart/PieChart.js +59 -12
  132. package/esm/PieChart/PiePlot.js +76 -57
  133. package/esm/PieChart/dataTransform/transition.js +130 -0
  134. package/esm/PieChart/dataTransform/useTransformData.js +59 -0
  135. package/esm/ResponsiveChartContainer/index.js +3 -3
  136. package/esm/ScatterChart/Scatter.js +10 -0
  137. package/esm/ScatterChart/ScatterChart.js +40 -8
  138. package/esm/ScatterChart/ScatterPlot.js +10 -0
  139. package/esm/SparkLineChart/SparkLineChart.js +32 -15
  140. package/esm/constants.js +1 -1
  141. package/esm/context/CartesianContextProvider.js +30 -14
  142. package/esm/context/DrawingProvider.js +8 -0
  143. package/esm/hooks/useChartDimensions.js +2 -0
  144. package/esm/hooks/useMounted.js +16 -0
  145. package/esm/hooks/useReducedMotion.js +27 -0
  146. package/esm/hooks/useTicks.js +15 -9
  147. package/esm/internals/components/AxisSharedComponents.js +15 -70
  148. package/esm/internals/components/ChartsText.js +77 -0
  149. package/esm/internals/domUtils.js +113 -0
  150. package/esm/internals/geometry.js +36 -0
  151. package/hooks/useAxisEvents.js +2 -2
  152. package/hooks/useChartDimensions.d.ts +2 -0
  153. package/hooks/useChartDimensions.js +5 -4
  154. package/hooks/useDrawingArea.js +2 -2
  155. package/hooks/useInteractionItemProps.js +2 -2
  156. package/hooks/useMounted.d.ts +1 -0
  157. package/hooks/useMounted.js +25 -0
  158. package/hooks/useReducedMotion.d.ts +8 -0
  159. package/hooks/useReducedMotion.js +33 -0
  160. package/hooks/useScale.d.ts +2 -2
  161. package/hooks/useScale.js +2 -2
  162. package/hooks/useTicks.d.ts +19 -11
  163. package/hooks/useTicks.js +19 -14
  164. package/index.js +1 -1
  165. package/internals/components/AxisSharedComponents.d.ts +0 -4
  166. package/internals/components/AxisSharedComponents.js +18 -78
  167. package/internals/components/ChartsText.d.ts +35 -0
  168. package/internals/components/ChartsText.js +87 -0
  169. package/internals/defaultizeColor.d.ts +8 -1
  170. package/internals/defaultizeValueFormatter.js +1 -2
  171. package/internals/domUtils.d.ts +13 -0
  172. package/internals/domUtils.js +122 -0
  173. package/internals/geometry.d.ts +9 -0
  174. package/internals/geometry.js +42 -0
  175. package/internals/stackSeries.js +2 -4
  176. package/legacy/BarChart/BarChart.js +49 -9
  177. package/legacy/BarChart/BarElement.js +6 -3
  178. package/legacy/BarChart/BarPlot.js +151 -63
  179. package/legacy/BarChart/formatter.js +1 -1
  180. package/legacy/ChartContainer/index.js +3 -0
  181. package/legacy/ChartsAxis/ChartsAxis.js +26 -0
  182. package/legacy/ChartsAxisHighlight/ChartsAxisHighlight.js +60 -20
  183. package/legacy/ChartsClipPath/ChartsClipPath.js +5 -0
  184. package/legacy/ChartsLegend/ChartsLegend.js +203 -140
  185. package/legacy/ChartsSurface.js +3 -12
  186. package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +22 -10
  187. package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  188. package/legacy/ChartsTooltip/ChartsTooltip.js +62 -14
  189. package/legacy/ChartsTooltip/ChartsTooltipTable.js +34 -26
  190. package/legacy/ChartsXAxis/ChartsXAxis.js +162 -39
  191. package/legacy/ChartsYAxis/ChartsYAxis.js +83 -30
  192. package/legacy/LineChart/AreaElement.js +10 -0
  193. package/legacy/LineChart/AreaPlot.js +31 -7
  194. package/legacy/LineChart/LineChart.js +58 -10
  195. package/legacy/LineChart/LineElement.js +10 -0
  196. package/legacy/LineChart/LineHighlightElement.js +77 -0
  197. package/legacy/LineChart/LineHighlightPlot.js +96 -0
  198. package/legacy/LineChart/LinePlot.js +29 -12
  199. package/legacy/LineChart/MarkElement.js +12 -5
  200. package/legacy/LineChart/MarkPlot.js +50 -5
  201. package/legacy/LineChart/formatter.js +7 -3
  202. package/legacy/LineChart/index.js +3 -1
  203. package/legacy/PieChart/PieArc.js +30 -62
  204. package/legacy/PieChart/PieArcLabel.js +48 -34
  205. package/legacy/PieChart/PieArcLabelPlot.js +93 -0
  206. package/legacy/PieChart/PieArcPlot.js +84 -0
  207. package/legacy/PieChart/PieChart.js +59 -12
  208. package/legacy/PieChart/PiePlot.js +76 -59
  209. package/legacy/PieChart/dataTransform/transition.js +142 -0
  210. package/legacy/PieChart/dataTransform/useTransformData.js +60 -0
  211. package/legacy/ResponsiveChartContainer/index.js +3 -3
  212. package/legacy/ScatterChart/Scatter.js +10 -0
  213. package/legacy/ScatterChart/ScatterChart.js +40 -8
  214. package/legacy/ScatterChart/ScatterPlot.js +10 -0
  215. package/legacy/SparkLineChart/SparkLineChart.js +32 -13
  216. package/legacy/constants.js +1 -1
  217. package/legacy/context/CartesianContextProvider.js +30 -14
  218. package/legacy/context/DrawingProvider.js +8 -0
  219. package/legacy/hooks/useChartDimensions.js +2 -0
  220. package/legacy/hooks/useMounted.js +21 -0
  221. package/legacy/hooks/useReducedMotion.js +27 -0
  222. package/legacy/hooks/useTicks.js +16 -9
  223. package/legacy/index.js +1 -1
  224. package/legacy/internals/components/AxisSharedComponents.js +11 -65
  225. package/legacy/internals/components/ChartsText.js +79 -0
  226. package/legacy/internals/domUtils.js +121 -0
  227. package/legacy/internals/geometry.js +37 -0
  228. package/models/axis.d.ts +27 -9
  229. package/models/layout.d.ts +7 -6
  230. package/models/seriesType/line.d.ts +39 -1
  231. package/models/seriesType/pie.d.ts +5 -1
  232. package/modern/BarChart/BarChart.js +49 -9
  233. package/modern/BarChart/BarElement.js +7 -4
  234. package/modern/BarChart/BarPlot.js +149 -65
  235. package/modern/BarChart/formatter.js +1 -1
  236. package/modern/ChartContainer/index.js +3 -0
  237. package/modern/ChartsAxis/ChartsAxis.js +26 -0
  238. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +57 -20
  239. package/modern/ChartsClipPath/ChartsClipPath.js +5 -0
  240. package/modern/ChartsLegend/ChartsLegend.js +188 -142
  241. package/modern/ChartsSurface.js +4 -12
  242. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +44 -30
  243. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +15 -7
  244. package/modern/ChartsTooltip/ChartsTooltip.js +58 -14
  245. package/modern/ChartsTooltip/ChartsTooltipTable.js +17 -10
  246. package/modern/ChartsXAxis/ChartsXAxis.js +158 -37
  247. package/modern/ChartsYAxis/ChartsYAxis.js +83 -30
  248. package/modern/LineChart/AreaElement.js +10 -0
  249. package/modern/LineChart/AreaPlot.js +25 -6
  250. package/modern/LineChart/LineChart.js +58 -10
  251. package/modern/LineChart/LineElement.js +10 -0
  252. package/modern/LineChart/LineHighlightElement.js +78 -0
  253. package/modern/LineChart/LineHighlightPlot.js +102 -0
  254. package/modern/LineChart/LinePlot.js +23 -10
  255. package/modern/LineChart/MarkElement.js +12 -5
  256. package/modern/LineChart/MarkPlot.js +60 -13
  257. package/modern/LineChart/formatter.js +4 -3
  258. package/modern/LineChart/index.js +3 -1
  259. package/modern/PieChart/PieArc.js +26 -57
  260. package/modern/PieChart/PieArcLabel.js +43 -34
  261. package/modern/PieChart/PieArcLabelPlot.js +90 -0
  262. package/modern/PieChart/PieArcPlot.js +83 -0
  263. package/modern/PieChart/PieChart.js +59 -12
  264. package/modern/PieChart/PiePlot.js +76 -55
  265. package/modern/PieChart/dataTransform/transition.js +130 -0
  266. package/modern/PieChart/dataTransform/useTransformData.js +58 -0
  267. package/modern/ResponsiveChartContainer/index.js +3 -3
  268. package/modern/ScatterChart/Scatter.js +10 -0
  269. package/modern/ScatterChart/ScatterChart.js +40 -8
  270. package/modern/ScatterChart/ScatterPlot.js +10 -0
  271. package/modern/SparkLineChart/SparkLineChart.js +32 -15
  272. package/modern/constants.js +1 -1
  273. package/modern/context/CartesianContextProvider.js +29 -13
  274. package/modern/context/DrawingProvider.js +8 -0
  275. package/modern/hooks/useChartDimensions.js +2 -0
  276. package/modern/hooks/useMounted.js +16 -0
  277. package/modern/hooks/useReducedMotion.js +27 -0
  278. package/modern/hooks/useTicks.js +15 -9
  279. package/modern/index.js +1 -1
  280. package/modern/internals/components/AxisSharedComponents.js +15 -70
  281. package/modern/internals/components/ChartsText.js +77 -0
  282. package/modern/internals/domUtils.js +113 -0
  283. package/modern/internals/geometry.js +36 -0
  284. package/package.json +9 -6
  285. package/themeAugmentation/components.d.ts +1 -0
  286. package/themeAugmentation/overrides.d.ts +2 -0
@@ -11,22 +11,20 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
12
  var React = _interopRequireWildcard(require("react"));
13
13
  var _d3Shape = require("d3-shape");
14
- var _propTypes = _interopRequireDefault(require("prop-types"));
14
+ var _web = require("@react-spring/web");
15
15
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
16
16
  var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
17
17
  var _styles = require("@mui/material/styles");
18
18
  var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
19
- var _InteractionProvider = require("../context/InteractionProvider");
20
19
  var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
21
20
  var _jsxRuntime = require("react/jsx-runtime");
22
- const _excluded = ["id", "dataIndex", "classes", "color", "highlightScope", "innerRadius", "outerRadius", "cornerRadius", "highlighted", "faded"];
23
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+ const _excluded = ["id", "dataIndex", "classes", "color", "highlightScope", "onClick", "isFaded", "isHighlighted", "startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "cornerRadius"];
22
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
23
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
24
  function getPieArcUtilityClass(slot) {
26
25
  return (0, _generateUtilityClass.default)('MuiPieArc', slot);
27
26
  }
28
- const pieArcClasses = (0, _generateUtilityClasses.default)('MuiPieArc', ['root', 'highlighted', 'faded']);
29
- exports.pieArcClasses = pieArcClasses;
27
+ const pieArcClasses = exports.pieArcClasses = (0, _generateUtilityClasses.default)('MuiPieArc', ['root', 'highlighted', 'faded']);
30
28
  const useUtilityClasses = ownerState => {
31
29
  const {
32
30
  classes,
@@ -39,19 +37,16 @@ const useUtilityClasses = ownerState => {
39
37
  };
40
38
  return (0, _composeClasses.default)(slots, getPieArcUtilityClass, classes);
41
39
  };
42
- const PieArcRoot = (0, _styles.styled)('path', {
40
+ const PieArcRoot = (0, _styles.styled)(_web.animated.path, {
43
41
  name: 'MuiPieArc',
44
42
  slot: 'Root',
45
43
  overridesResolver: (_, styles) => styles.arc
46
44
  })(({
47
- ownerState,
48
45
  theme
49
46
  }) => ({
50
- stroke: theme.palette.background.paper,
47
+ stroke: (theme.vars || theme).palette.background.paper,
51
48
  strokeWidth: 1,
52
- strokeLinejoin: 'round',
53
- fill: ownerState.color,
54
- opacity: ownerState.isFaded ? 0.3 : 1
49
+ strokeLinejoin: 'round'
55
50
  }));
56
51
  function PieArc(props) {
57
52
  const {
@@ -60,29 +55,17 @@ function PieArc(props) {
60
55
  classes: innerClasses,
61
56
  color,
62
57
  highlightScope,
63
- innerRadius: baseInnerRadius = 0,
64
- outerRadius: baseOuterRadius,
65
- cornerRadius: baseCornerRadius = 0,
66
- highlighted,
67
- faded = {
68
- additionalRadius: -5
69
- }
58
+ onClick,
59
+ isFaded,
60
+ isHighlighted,
61
+ startAngle,
62
+ endAngle,
63
+ paddingAngle,
64
+ innerRadius,
65
+ outerRadius,
66
+ cornerRadius
70
67
  } = props,
71
68
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
72
- const getInteractionItemProps = (0, _useInteractionItemProps.useInteractionItemProps)(highlightScope);
73
- const {
74
- item
75
- } = React.useContext(_InteractionProvider.InteractionContext);
76
- const isHighlighted = (0, _useInteractionItemProps.getIsHighlighted)(item, {
77
- type: 'pie',
78
- seriesId: id,
79
- dataIndex
80
- }, highlightScope);
81
- const isFaded = !isHighlighted && (0, _useInteractionItemProps.getIsFaded)(item, {
82
- type: 'pie',
83
- seriesId: id,
84
- dataIndex
85
- }, highlightScope);
86
69
  const ownerState = {
87
70
  id,
88
71
  dataIndex,
@@ -92,37 +75,22 @@ function PieArc(props) {
92
75
  isHighlighted
93
76
  };
94
77
  const classes = useUtilityClasses(ownerState);
95
- const attibuesOverride = (0, _extends2.default)({
96
- additionalRadius: 0
97
- }, isFaded && faded || isHighlighted && highlighted || {});
98
- const innerRadius = Math.max(0, attibuesOverride.innerRadius ?? baseInnerRadius);
99
- const outerRadius = Math.max(0, attibuesOverride.outerRadius ?? baseOuterRadius + attibuesOverride.additionalRadius);
100
- const cornerRadius = attibuesOverride.cornerRadius ?? baseCornerRadius;
78
+ const getInteractionItemProps = (0, _useInteractionItemProps.useInteractionItemProps)(highlightScope);
101
79
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(PieArcRoot, (0, _extends2.default)({
102
- d: (0, _d3Shape.arc)().cornerRadius(cornerRadius)((0, _extends2.default)({}, other, {
103
- innerRadius,
104
- outerRadius
80
+ d: (0, _web.to)([startAngle, endAngle, paddingAngle, innerRadius, outerRadius, cornerRadius], (sA, eA, pA, iR, oR, cR) => (0, _d3Shape.arc)().cornerRadius(cR)({
81
+ padAngle: pA,
82
+ startAngle: sA,
83
+ endAngle: eA,
84
+ innerRadius: iR,
85
+ outerRadius: oR
105
86
  })),
87
+ onClick: onClick,
88
+ cursor: onClick ? 'pointer' : 'unset',
106
89
  ownerState: ownerState,
107
90
  className: classes.root
108
- }, getInteractionItemProps({
91
+ }, other, getInteractionItemProps({
109
92
  type: 'pie',
110
93
  seriesId: id,
111
94
  dataIndex
112
95
  })));
113
- }
114
- process.env.NODE_ENV !== "production" ? PieArc.propTypes = {
115
- // ----------------------------- Warning --------------------------------
116
- // | These PropTypes are generated from the TypeScript type definitions |
117
- // | To update them edit the TypeScript types and run "yarn proptypes" |
118
- // ----------------------------------------------------------------------
119
- classes: _propTypes.default.object,
120
- cornerRadius: _propTypes.default.number,
121
- dataIndex: _propTypes.default.number.isRequired,
122
- highlightScope: _propTypes.default.shape({
123
- faded: _propTypes.default.oneOf(['global', 'none', 'series']),
124
- highlighted: _propTypes.default.oneOf(['item', 'none', 'series'])
125
- }),
126
- innerRadius: _propTypes.default.number,
127
- outerRadius: _propTypes.default.number.isRequired
128
- } : void 0;
96
+ }
@@ -1,7 +1,5 @@
1
1
  import * as React from 'react';
2
- import { PieArcDatum as D3PieArcDatum } from 'd3-shape';
3
- import { HighlightScope } from '../context/HighlightProvider';
4
- import { PieSeriesType } from '../models/seriesType/pie';
2
+ import { SpringValue } from '@react-spring/web';
5
3
  export interface PieArcLabelClasses {
6
4
  /** Styles applied to the root element. */
7
5
  root: string;
@@ -11,9 +9,8 @@ export interface PieArcLabelClasses {
11
9
  faded: string;
12
10
  }
13
11
  export type PieArcLabelClassKey = keyof PieArcLabelClasses;
14
- export interface PieArcLabelOwnerState {
12
+ interface PieArcLabelOwnerState {
15
13
  id: string;
16
- dataIndex: number;
17
14
  color: string;
18
15
  isFaded: boolean;
19
16
  isHighlighted: boolean;
@@ -21,11 +18,13 @@ export interface PieArcLabelOwnerState {
21
18
  }
22
19
  export declare function getPieArcLabelUtilityClass(slot: string): string;
23
20
  export declare const pieArcLabelClasses: PieArcLabelClasses;
24
- export type PieArcLabelProps = Omit<PieArcLabelOwnerState, 'isFaded' | 'isHighlighted'> & React.ComponentPropsWithoutRef<'path'> & D3PieArcDatum<any> & {
25
- highlightScope?: Partial<HighlightScope>;
26
- innerRadius: PieSeriesType['innerRadius'];
27
- outerRadius: number;
28
- cornerRadius: PieSeriesType['cornerRadius'];
21
+ export type PieArcLabelProps = PieArcLabelOwnerState & React.ComponentPropsWithoutRef<'text'> & {
22
+ startAngle: SpringValue<number>;
23
+ endAngle: SpringValue<number>;
24
+ innerRadius: SpringValue<number>;
25
+ outerRadius: SpringValue<number>;
26
+ cornerRadius: SpringValue<number>;
27
+ paddingAngle: SpringValue<number>;
29
28
  } & {
30
29
  formattedArcLabel?: string | null;
31
30
  };
@@ -10,23 +10,21 @@ exports.pieArcLabelClasses = void 0;
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
12
  var React = _interopRequireWildcard(require("react"));
13
+ var _web = require("@react-spring/web");
13
14
  var _d3Shape = require("d3-shape");
14
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
16
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
16
17
  var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
17
18
  var _styles = require("@mui/material/styles");
18
19
  var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
19
- var _InteractionProvider = require("../context/InteractionProvider");
20
- var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
21
20
  var _jsxRuntime = require("react/jsx-runtime");
22
- const _excluded = ["id", "dataIndex", "classes", "color", "highlightScope", "innerRadius", "outerRadius", "cornerRadius", "formattedArcLabel"];
23
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+ const _excluded = ["id", "classes", "color", "startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "cornerRadius", "formattedArcLabel", "isHighlighted", "isFaded", "style"];
22
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
23
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
24
  function getPieArcLabelUtilityClass(slot) {
26
25
  return (0, _generateUtilityClass.default)('MuiPieArcLabel', slot);
27
26
  }
28
- const pieArcLabelClasses = (0, _generateUtilityClasses.default)('MuiPieArcLabel', ['root', 'highlighted', 'faded']);
29
- exports.pieArcLabelClasses = pieArcLabelClasses;
27
+ const pieArcLabelClasses = exports.pieArcLabelClasses = (0, _generateUtilityClasses.default)('MuiPieArcLabel', ['root', 'highlighted', 'faded']);
30
28
  const useUtilityClasses = ownerState => {
31
29
  const {
32
30
  classes,
@@ -39,61 +37,71 @@ const useUtilityClasses = ownerState => {
39
37
  };
40
38
  return (0, _composeClasses.default)(slots, getPieArcLabelUtilityClass, classes);
41
39
  };
42
- const PieArcLabelRoot = (0, _styles.styled)('text', {
40
+ const PieArcLabelRoot = (0, _styles.styled)(_web.animated.text, {
43
41
  name: 'MuiPieArcLabel',
44
42
  slot: 'Root',
45
43
  overridesResolver: (_, styles) => styles.root
46
44
  })(({
47
45
  theme
48
46
  }) => ({
49
- fill: theme.palette.text.primary,
50
- textAnchor: 'middle'
47
+ fill: (theme.vars || theme).palette.text.primary,
48
+ textAnchor: 'middle',
49
+ dominantBaseline: 'middle'
51
50
  }));
51
+ /**
52
+ * Helper to compute label position.
53
+ * It's not an inline function because we need it in inerpolation.
54
+ */
55
+ const getLabelPosition = (formattedArcLabel, variable) => (startAngle, endAngle, padAngle, innerRadius, outerRadius, cornerRadius) => {
56
+ if (!formattedArcLabel) {
57
+ return 0;
58
+ }
59
+ const [x, y] = (0, _d3Shape.arc)().cornerRadius(cornerRadius).centroid({
60
+ padAngle,
61
+ startAngle,
62
+ endAngle,
63
+ innerRadius,
64
+ outerRadius
65
+ });
66
+ if (variable === 'x') {
67
+ return x;
68
+ }
69
+ return y;
70
+ };
52
71
  function PieArcLabel(props) {
53
72
  const {
54
73
  id,
55
- dataIndex,
56
74
  classes: innerClasses,
57
75
  color,
58
- highlightScope,
59
- innerRadius = 0,
76
+ startAngle,
77
+ endAngle,
78
+ paddingAngle,
79
+ innerRadius,
60
80
  outerRadius,
61
- cornerRadius = 0,
62
- formattedArcLabel
81
+ cornerRadius,
82
+ formattedArcLabel,
83
+ isHighlighted,
84
+ isFaded,
85
+ style
63
86
  } = props,
64
87
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
65
- const {
66
- item
67
- } = React.useContext(_InteractionProvider.InteractionContext);
68
- const isHighlighted = (0, _useInteractionItemProps.getIsHighlighted)(item, {
69
- type: 'pie',
70
- seriesId: id,
71
- dataIndex
72
- }, highlightScope);
73
- const isFaded = !isHighlighted && (0, _useInteractionItemProps.getIsFaded)(item, {
74
- type: 'pie',
75
- seriesId: id,
76
- dataIndex
77
- }, highlightScope);
78
88
  const ownerState = {
79
89
  id,
80
- dataIndex,
81
90
  classes: innerClasses,
82
91
  color,
83
92
  isFaded,
84
93
  isHighlighted
85
94
  };
86
95
  const classes = useUtilityClasses(ownerState);
87
- const arcLabelPosition = formattedArcLabel ? (0, _d3Shape.arc)().cornerRadius(cornerRadius).centroid((0, _extends2.default)({}, other, {
88
- innerRadius,
89
- outerRadius
90
- })) : [0, 0];
91
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(PieArcLabelRoot, {
92
- className: classes.root,
93
- x: arcLabelPosition[0],
94
- y: arcLabelPosition[1],
96
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(PieArcLabelRoot, (0, _extends2.default)({
97
+ className: classes.root
98
+ }, other, {
99
+ style: (0, _extends2.default)({
100
+ x: (0, _web.to)([startAngle, endAngle, paddingAngle, innerRadius, outerRadius, cornerRadius], getLabelPosition(formattedArcLabel, 'x')),
101
+ y: (0, _web.to)([startAngle, endAngle, paddingAngle, innerRadius, outerRadius, cornerRadius], getLabelPosition(formattedArcLabel, 'y'))
102
+ }, style),
95
103
  children: formattedArcLabel
96
- });
104
+ }));
97
105
  }
98
106
  process.env.NODE_ENV !== "production" ? PieArcLabel.propTypes = {
99
107
  // ----------------------------- Warning --------------------------------
@@ -0,0 +1,28 @@
1
+ import * as React from 'react';
2
+ import { DefaultizedPieSeriesType } from '../models/seriesType/pie';
3
+ import { PieArcLabelProps } from './PieArcLabel';
4
+ import { DefaultizedProps } from '../models/helpers';
5
+ export interface PieArcLabelPlotSlotsComponent {
6
+ pieArcLabel?: React.JSXElementConstructor<PieArcLabelProps>;
7
+ }
8
+ export interface PieArcLabelPlotSlotComponentProps {
9
+ pieArcLabel?: Partial<PieArcLabelProps>;
10
+ }
11
+ export interface PieArcLabelPlotProps extends DefaultizedProps<Pick<DefaultizedPieSeriesType, 'data' | 'faded' | 'highlighted' | 'innerRadius' | 'outerRadius' | 'cornerRadius' | 'paddingAngle' | 'arcLabel' | 'arcLabelMinAngle' | 'id' | 'highlightScope'>, 'outerRadius'> {
12
+ /**
13
+ * Overridable component slots.
14
+ * @default {}
15
+ */
16
+ slots?: PieArcLabelPlotSlotsComponent;
17
+ /**
18
+ * The props used for each component slot.
19
+ * @default {}
20
+ */
21
+ slotProps?: PieArcLabelPlotSlotComponentProps;
22
+ /**
23
+ * If `true`, animations are skiped.
24
+ * @default false
25
+ */
26
+ skipAnimation?: boolean;
27
+ }
28
+ export declare function PieArcLabelPlot(props: PieArcLabelPlotProps): React.JSX.Element | null;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.PieArcLabelPlot = PieArcLabelPlot;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _web = require("@react-spring/web");
12
+ var _transition = require("./dataTransform/transition");
13
+ var _useTransformData = require("./dataTransform/useTransformData");
14
+ var _PieArcLabel = _interopRequireDefault(require("./PieArcLabel"));
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ const _excluded = ["slots", "slotProps", "innerRadius", "outerRadius", "cornerRadius", "paddingAngle", "id", "highlightScope", "highlighted", "faded", "data", "arcLabel", "arcLabelMinAngle", "skipAnimation"],
17
+ _excluded2 = ["startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "cornerRadius"];
18
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
+ const RATIO = 180 / Math.PI;
21
+ function getItemLabel(arcLabel, arcLabelMinAngle, item) {
22
+ if (!arcLabel) {
23
+ return null;
24
+ }
25
+ const angle = (item.endAngle - item.startAngle) * RATIO;
26
+ if (angle < arcLabelMinAngle) {
27
+ return null;
28
+ }
29
+ if (typeof arcLabel === 'string') {
30
+ return item[arcLabel]?.toString();
31
+ }
32
+ return arcLabel(item);
33
+ }
34
+ function PieArcLabelPlot(props) {
35
+ const {
36
+ slots,
37
+ slotProps,
38
+ innerRadius = 0,
39
+ outerRadius,
40
+ cornerRadius = 0,
41
+ paddingAngle = 0,
42
+ id,
43
+ highlightScope,
44
+ highlighted,
45
+ faded = {
46
+ additionalRadius: -5
47
+ },
48
+ data,
49
+ arcLabel,
50
+ arcLabelMinAngle = 0,
51
+ skipAnimation
52
+ } = props,
53
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
54
+ const transformedData = (0, _useTransformData.useTransformData)({
55
+ innerRadius,
56
+ outerRadius,
57
+ cornerRadius,
58
+ paddingAngle,
59
+ id,
60
+ highlightScope,
61
+ highlighted,
62
+ faded,
63
+ data
64
+ });
65
+ const transition = (0, _web.useTransition)(transformedData, (0, _extends2.default)({}, _transition.defaultLabelTransitionConfig, {
66
+ immediate: skipAnimation
67
+ }));
68
+ if (data.length === 0) {
69
+ return null;
70
+ }
71
+ const ArcLabel = slots?.pieArcLabel ?? _PieArcLabel.default;
72
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", (0, _extends2.default)({}, other, {
73
+ children: transition((_ref, item) => {
74
+ let {
75
+ startAngle,
76
+ endAngle,
77
+ paddingAngle: pA,
78
+ innerRadius: iR,
79
+ outerRadius: oR,
80
+ cornerRadius: cR
81
+ } = _ref,
82
+ style = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded2);
83
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(ArcLabel, (0, _extends2.default)({
84
+ startAngle: startAngle,
85
+ endAngle: endAngle,
86
+ paddingAngle: pA,
87
+ innerRadius: iR,
88
+ outerRadius: oR,
89
+ cornerRadius: cR,
90
+ style: style,
91
+ id: id,
92
+ color: item.color,
93
+ isFaded: item.isFaded,
94
+ isHighlighted: item.isHighlighted,
95
+ formattedArcLabel: getItemLabel(arcLabel, arcLabelMinAngle, item)
96
+ }, slotProps?.pieArcLabel));
97
+ })
98
+ }));
99
+ }
@@ -0,0 +1,35 @@
1
+ import * as React from 'react';
2
+ import { PieArcProps } from './PieArc';
3
+ import { DefaultizedPieSeriesType, DefaultizedPieValueType, PieItemIdentifier } from '../models/seriesType/pie';
4
+ import { DefaultizedProps } from '../models/helpers';
5
+ export interface PieArcPlotSlotsComponent {
6
+ pieArc?: React.JSXElementConstructor<PieArcProps>;
7
+ }
8
+ export interface PieArcPlotSlotComponentProps {
9
+ pieArc?: Partial<PieArcProps>;
10
+ }
11
+ export interface PieArcPlotProps extends DefaultizedProps<Pick<DefaultizedPieSeriesType, 'data' | 'faded' | 'highlighted' | 'innerRadius' | 'outerRadius' | 'cornerRadius' | 'paddingAngle' | 'id' | 'highlightScope'>, 'outerRadius'> {
12
+ /**
13
+ * Overridable component slots.
14
+ * @default {}
15
+ */
16
+ slots?: PieArcPlotSlotsComponent;
17
+ /**
18
+ * The props used for each component slot.
19
+ * @default {}
20
+ */
21
+ slotProps?: PieArcPlotSlotComponentProps;
22
+ /**
23
+ * Callback fired when a pie item is clicked.
24
+ * @param {React.MouseEvent<SVGPathElement, MouseEvent>} event The event source of the callback.
25
+ * @param {PieItemIdentifier} pieItemIdentifier The pie item identifier.
26
+ * @param {DefaultizedPieValueType} item The pie item.
27
+ */
28
+ onClick?: (event: React.MouseEvent<SVGPathElement, MouseEvent>, pieItemIdentifier: PieItemIdentifier, item: DefaultizedPieValueType) => void;
29
+ /**
30
+ * If `true`, animations are skiped.
31
+ * @default false
32
+ */
33
+ skipAnimation?: boolean;
34
+ }
35
+ export declare function PieArcPlot(props: PieArcPlotProps): React.JSX.Element | null;
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.PieArcPlot = PieArcPlot;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _web = require("@react-spring/web");
12
+ var _PieArc = _interopRequireDefault(require("./PieArc"));
13
+ var _transition = require("./dataTransform/transition");
14
+ var _useTransformData = require("./dataTransform/useTransformData");
15
+ var _jsxRuntime = require("react/jsx-runtime");
16
+ const _excluded = ["slots", "slotProps", "innerRadius", "outerRadius", "cornerRadius", "paddingAngle", "id", "highlightScope", "highlighted", "faded", "data", "onClick", "skipAnimation"],
17
+ _excluded2 = ["startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "cornerRadius"];
18
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
+ function PieArcPlot(props) {
21
+ const {
22
+ slots,
23
+ slotProps,
24
+ innerRadius = 0,
25
+ outerRadius,
26
+ cornerRadius = 0,
27
+ paddingAngle = 0,
28
+ id,
29
+ highlightScope,
30
+ highlighted,
31
+ faded = {
32
+ additionalRadius: -5
33
+ },
34
+ data,
35
+ onClick,
36
+ skipAnimation
37
+ } = props,
38
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
39
+ const transformedData = (0, _useTransformData.useTransformData)({
40
+ innerRadius,
41
+ outerRadius,
42
+ cornerRadius,
43
+ paddingAngle,
44
+ id,
45
+ highlightScope,
46
+ highlighted,
47
+ faded,
48
+ data
49
+ });
50
+ const transition = (0, _web.useTransition)(transformedData, (0, _extends2.default)({}, _transition.defaultTransitionConfig, {
51
+ immediate: skipAnimation
52
+ }));
53
+ if (data.length === 0) {
54
+ return null;
55
+ }
56
+ const Arc = slots?.pieArc ?? _PieArc.default;
57
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", (0, _extends2.default)({}, other, {
58
+ children: transition((_ref, item, _, index) => {
59
+ let {
60
+ startAngle,
61
+ endAngle,
62
+ paddingAngle: pA,
63
+ innerRadius: iR,
64
+ outerRadius: oR,
65
+ cornerRadius: cR
66
+ } = _ref,
67
+ style = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded2);
68
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Arc, (0, _extends2.default)({
69
+ startAngle: startAngle,
70
+ endAngle: endAngle,
71
+ paddingAngle: pA,
72
+ innerRadius: iR,
73
+ outerRadius: oR,
74
+ cornerRadius: cR,
75
+ style: style,
76
+ id: id,
77
+ color: item.color,
78
+ dataIndex: index,
79
+ highlightScope: highlightScope,
80
+ isFaded: item.isFaded,
81
+ isHighlighted: item.isHighlighted,
82
+ onClick: onClick && (event => {
83
+ onClick(event, {
84
+ type: 'pie',
85
+ seriesId: id,
86
+ dataIndex: index
87
+ }, item);
88
+ })
89
+ }, slotProps?.pieArc));
90
+ })
91
+ }));
92
+ }
@@ -3,21 +3,25 @@ import { ResponsiveChartContainerProps } from '../ResponsiveChartContainer';
3
3
  import { ChartsAxisProps } from '../ChartsAxis/ChartsAxis';
4
4
  import { PieSeriesType } from '../models/seriesType';
5
5
  import { MakeOptional } from '../models/helpers';
6
- import { ChartsTooltipProps } from '../ChartsTooltip';
6
+ import { ChartsTooltipProps, ChartsTooltipSlotComponentProps, ChartsTooltipSlotsComponent } from '../ChartsTooltip';
7
7
  import { ChartsLegendProps, ChartsLegendSlotComponentProps, ChartsLegendSlotsComponent } from '../ChartsLegend';
8
8
  import { ChartsAxisHighlightProps } from '../ChartsAxisHighlight';
9
- import { PiePlotSlotComponentProps, PiePlotSlotsComponent } from './PiePlot';
9
+ import { PiePlotProps, PiePlotSlotComponentProps, PiePlotSlotsComponent } from './PiePlot';
10
10
  import { PieValueType } from '../models/seriesType/pie';
11
11
  import { ChartsAxisSlotsComponent, ChartsAxisSlotComponentProps } from '../models/axis';
12
- export interface PieChartSlotsComponent extends ChartsAxisSlotsComponent, PiePlotSlotsComponent, ChartsLegendSlotsComponent {
12
+ export interface PieChartSlotsComponent extends ChartsAxisSlotsComponent, PiePlotSlotsComponent, ChartsLegendSlotsComponent, ChartsTooltipSlotsComponent {
13
13
  }
14
- export interface PieChartSlotComponentProps extends ChartsAxisSlotComponentProps, PiePlotSlotComponentProps, ChartsLegendSlotComponentProps {
14
+ export interface PieChartSlotComponentProps extends ChartsAxisSlotComponentProps, PiePlotSlotComponentProps, ChartsLegendSlotComponentProps, ChartsTooltipSlotComponentProps {
15
15
  }
16
- export interface PieChartProps extends Omit<ResponsiveChartContainerProps, 'series'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'> {
16
+ export interface PieChartProps extends Omit<ResponsiveChartContainerProps, 'series'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'>, Pick<PiePlotProps, 'skipAnimation'> {
17
17
  series: MakeOptional<PieSeriesType<MakeOptional<PieValueType, 'id'>>, 'type'>[];
18
18
  tooltip?: ChartsTooltipProps;
19
19
  axisHighlight?: ChartsAxisHighlightProps;
20
+ /**
21
+ * @deprecated Consider using `slotProps.legend` instead.
22
+ */
20
23
  legend?: ChartsLegendProps;
24
+ onClick?: PiePlotProps['onClick'];
21
25
  slots?: PieChartSlotsComponent;
22
26
  /**
23
27
  * The props used for each component slot.
@@ -25,6 +29,16 @@ export interface PieChartProps extends Omit<ResponsiveChartContainerProps, 'seri
25
29
  */
26
30
  slotProps?: PieChartSlotComponentProps;
27
31
  }
32
+ /**
33
+ * Demos:
34
+ *
35
+ * - [Pie](https://mui.com/x/react-charts/pie/)
36
+ * - [Pie demonstration](https://mui.com/x/react-charts/pie-demo/)
37
+ *
38
+ * API:
39
+ *
40
+ * - [PieChart API](https://mui.com/x/api/charts/pie-chart/)
41
+ */
28
42
  declare function PieChart(props: PieChartProps): React.JSX.Element;
29
43
  declare namespace PieChart {
30
44
  var propTypes: any;