@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 _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["id", "dataIndex", "classes", "color", "highlightScope", "innerRadius", "outerRadius", "cornerRadius", "highlighted", "faded"];
3
+ var _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);
@@ -25,54 +24,36 @@ var useUtilityClasses = function useUtilityClasses(ownerState) {
25
24
  };
26
25
  return composeClasses(slots, getPieArcUtilityClass, classes);
27
26
  };
28
- var PieArcRoot = styled('path', {
27
+ var PieArcRoot = styled(animated.path, {
29
28
  name: 'MuiPieArc',
30
29
  slot: 'Root',
31
30
  overridesResolver: function overridesResolver(_, styles) {
32
31
  return styles.arc;
33
32
  }
34
33
  })(function (_ref) {
35
- var ownerState = _ref.ownerState,
36
- theme = _ref.theme;
34
+ var theme = _ref.theme;
37
35
  return {
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
  });
45
41
  export default function PieArc(props) {
46
- var _attibuesOverride$inn, _attibuesOverride$out, _attibuesOverride$cor;
47
42
  var id = props.id,
48
43
  dataIndex = props.dataIndex,
49
44
  innerClasses = props.classes,
50
45
  color = props.color,
51
46
  highlightScope = props.highlightScope,
52
- _props$innerRadius = props.innerRadius,
53
- baseInnerRadius = _props$innerRadius === void 0 ? 0 : _props$innerRadius,
54
- baseOuterRadius = props.outerRadius,
55
- _props$cornerRadius = props.cornerRadius,
56
- baseCornerRadius = _props$cornerRadius === void 0 ? 0 : _props$cornerRadius,
57
- highlighted = props.highlighted,
58
- _props$faded = props.faded,
59
- faded = _props$faded === void 0 ? {
60
- additionalRadius: -5
61
- } : _props$faded,
47
+ onClick = props.onClick,
48
+ isFaded = props.isFaded,
49
+ isHighlighted = props.isHighlighted,
50
+ startAngle = props.startAngle,
51
+ endAngle = props.endAngle,
52
+ paddingAngle = props.paddingAngle,
53
+ innerRadius = props.innerRadius,
54
+ outerRadius = props.outerRadius,
55
+ cornerRadius = props.cornerRadius,
62
56
  other = _objectWithoutProperties(props, _excluded);
63
- var getInteractionItemProps = useInteractionItemProps(highlightScope);
64
- var _React$useContext = React.useContext(InteractionContext),
65
- item = _React$useContext.item;
66
- var isHighlighted = getIsHighlighted(item, {
67
- type: 'pie',
68
- seriesId: id,
69
- dataIndex: dataIndex
70
- }, highlightScope);
71
- var isFaded = !isHighlighted && getIsFaded(item, {
72
- type: 'pie',
73
- seriesId: id,
74
- dataIndex: dataIndex
75
- }, highlightScope);
76
57
  var ownerState = {
77
58
  id: id,
78
59
  dataIndex: dataIndex,
@@ -82,37 +63,24 @@ export default function PieArc(props) {
82
63
  isHighlighted: isHighlighted
83
64
  };
84
65
  var classes = useUtilityClasses(ownerState);
85
- var attibuesOverride = _extends({
86
- additionalRadius: 0
87
- }, isFaded && faded || isHighlighted && highlighted || {});
88
- var innerRadius = Math.max(0, (_attibuesOverride$inn = attibuesOverride.innerRadius) != null ? _attibuesOverride$inn : baseInnerRadius);
89
- var outerRadius = Math.max(0, (_attibuesOverride$out = attibuesOverride.outerRadius) != null ? _attibuesOverride$out : baseOuterRadius + attibuesOverride.additionalRadius);
90
- var cornerRadius = (_attibuesOverride$cor = attibuesOverride.cornerRadius) != null ? _attibuesOverride$cor : baseCornerRadius;
66
+ var getInteractionItemProps = useInteractionItemProps(highlightScope);
91
67
  return /*#__PURE__*/_jsx(PieArcRoot, _extends({
92
- d: d3Arc().cornerRadius(cornerRadius)(_extends({}, other, {
93
- innerRadius: innerRadius,
94
- outerRadius: outerRadius
95
- })),
68
+ d: to([startAngle, endAngle, paddingAngle, innerRadius, outerRadius, cornerRadius], function (sA, eA, pA, iR, oR, cR) {
69
+ return d3Arc().cornerRadius(cR)({
70
+ padAngle: pA,
71
+ startAngle: sA,
72
+ endAngle: eA,
73
+ innerRadius: iR,
74
+ outerRadius: oR
75
+ });
76
+ }),
77
+ onClick: onClick,
78
+ cursor: onClick ? 'pointer' : 'unset',
96
79
  ownerState: ownerState,
97
80
  className: classes.root
98
- }, getInteractionItemProps({
81
+ }, other, getInteractionItemProps({
99
82
  type: 'pie',
100
83
  seriesId: id,
101
84
  dataIndex: dataIndex
102
85
  })));
103
- }
104
- process.env.NODE_ENV !== "production" ? PieArc.propTypes = {
105
- // ----------------------------- Warning --------------------------------
106
- // | These PropTypes are generated from the TypeScript type definitions |
107
- // | To update them edit the TypeScript types and run "yarn proptypes" |
108
- // ----------------------------------------------------------------------
109
- classes: PropTypes.object,
110
- cornerRadius: PropTypes.number,
111
- dataIndex: PropTypes.number.isRequired,
112
- highlightScope: PropTypes.shape({
113
- faded: PropTypes.oneOf(['global', 'none', 'series']),
114
- highlighted: PropTypes.oneOf(['item', 'none', 'series'])
115
- }),
116
- innerRadius: PropTypes.number,
117
- outerRadius: PropTypes.number.isRequired
118
- } : void 0;
86
+ }
@@ -1,15 +1,15 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["id", "dataIndex", "classes", "color", "highlightScope", "innerRadius", "outerRadius", "cornerRadius", "formattedArcLabel"];
3
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
+ var _excluded = ["id", "classes", "color", "startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "cornerRadius", "formattedArcLabel", "isHighlighted", "isFaded", "style"];
4
5
  import * as React from 'react';
6
+ import { animated, to } from '@react-spring/web';
5
7
  import { arc as d3Arc } from 'd3-shape';
6
8
  import PropTypes from 'prop-types';
7
9
  import composeClasses from '@mui/utils/composeClasses';
8
10
  import generateUtilityClass from '@mui/utils/generateUtilityClass';
9
11
  import { styled } from '@mui/material/styles';
10
12
  import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
11
- import { InteractionContext } from '../context/InteractionProvider';
12
- import { getIsFaded, getIsHighlighted } from '../hooks/useInteractionItemProps';
13
13
  import { jsx as _jsx } from "react/jsx-runtime";
14
14
  export function getPieArcLabelUtilityClass(slot) {
15
15
  return generateUtilityClass('MuiPieArcLabel', slot);
@@ -25,7 +25,7 @@ var useUtilityClasses = function useUtilityClasses(ownerState) {
25
25
  };
26
26
  return composeClasses(slots, getPieArcLabelUtilityClass, classes);
27
27
  };
28
- var PieArcLabelRoot = styled('text', {
28
+ var PieArcLabelRoot = styled(animated.text, {
29
29
  name: 'MuiPieArcLabel',
30
30
  slot: 'Root',
31
31
  overridesResolver: function overridesResolver(_, styles) {
@@ -34,54 +34,68 @@ var PieArcLabelRoot = styled('text', {
34
34
  })(function (_ref) {
35
35
  var theme = _ref.theme;
36
36
  return {
37
- fill: theme.palette.text.primary,
38
- textAnchor: 'middle'
37
+ fill: (theme.vars || theme).palette.text.primary,
38
+ textAnchor: 'middle',
39
+ dominantBaseline: 'middle'
39
40
  };
40
41
  });
42
+ /**
43
+ * Helper to compute label position.
44
+ * It's not an inline function because we need it in inerpolation.
45
+ */
46
+ var getLabelPosition = function getLabelPosition(formattedArcLabel, variable) {
47
+ return function (startAngle, endAngle, padAngle, innerRadius, outerRadius, cornerRadius) {
48
+ if (!formattedArcLabel) {
49
+ return 0;
50
+ }
51
+ var _ref2 = d3Arc().cornerRadius(cornerRadius).centroid({
52
+ padAngle: padAngle,
53
+ startAngle: startAngle,
54
+ endAngle: endAngle,
55
+ innerRadius: innerRadius,
56
+ outerRadius: outerRadius
57
+ }),
58
+ _ref3 = _slicedToArray(_ref2, 2),
59
+ x = _ref3[0],
60
+ y = _ref3[1];
61
+ if (variable === 'x') {
62
+ return x;
63
+ }
64
+ return y;
65
+ };
66
+ };
41
67
  export default function PieArcLabel(props) {
42
68
  var id = props.id,
43
- dataIndex = props.dataIndex,
44
69
  innerClasses = props.classes,
45
70
  color = props.color,
46
- highlightScope = props.highlightScope,
47
- _props$innerRadius = props.innerRadius,
48
- innerRadius = _props$innerRadius === void 0 ? 0 : _props$innerRadius,
71
+ startAngle = props.startAngle,
72
+ endAngle = props.endAngle,
73
+ paddingAngle = props.paddingAngle,
74
+ innerRadius = props.innerRadius,
49
75
  outerRadius = props.outerRadius,
50
- _props$cornerRadius = props.cornerRadius,
51
- cornerRadius = _props$cornerRadius === void 0 ? 0 : _props$cornerRadius,
76
+ cornerRadius = props.cornerRadius,
52
77
  formattedArcLabel = props.formattedArcLabel,
78
+ isHighlighted = props.isHighlighted,
79
+ isFaded = props.isFaded,
80
+ style = props.style,
53
81
  other = _objectWithoutProperties(props, _excluded);
54
- var _React$useContext = React.useContext(InteractionContext),
55
- item = _React$useContext.item;
56
- var isHighlighted = getIsHighlighted(item, {
57
- type: 'pie',
58
- seriesId: id,
59
- dataIndex: dataIndex
60
- }, highlightScope);
61
- var isFaded = !isHighlighted && getIsFaded(item, {
62
- type: 'pie',
63
- seriesId: id,
64
- dataIndex: dataIndex
65
- }, highlightScope);
66
82
  var ownerState = {
67
83
  id: id,
68
- dataIndex: dataIndex,
69
84
  classes: innerClasses,
70
85
  color: color,
71
86
  isFaded: isFaded,
72
87
  isHighlighted: isHighlighted
73
88
  };
74
89
  var classes = useUtilityClasses(ownerState);
75
- var arcLabelPosition = formattedArcLabel ? d3Arc().cornerRadius(cornerRadius).centroid(_extends({}, other, {
76
- innerRadius: innerRadius,
77
- outerRadius: outerRadius
78
- })) : [0, 0];
79
- return /*#__PURE__*/_jsx(PieArcLabelRoot, {
80
- className: classes.root,
81
- x: arcLabelPosition[0],
82
- y: arcLabelPosition[1],
90
+ return /*#__PURE__*/_jsx(PieArcLabelRoot, _extends({
91
+ className: classes.root
92
+ }, other, {
93
+ style: _extends({
94
+ x: to([startAngle, endAngle, paddingAngle, innerRadius, outerRadius, cornerRadius], getLabelPosition(formattedArcLabel, 'x')),
95
+ y: to([startAngle, endAngle, paddingAngle, innerRadius, outerRadius, cornerRadius], getLabelPosition(formattedArcLabel, 'y'))
96
+ }, style),
83
97
  children: formattedArcLabel
84
- });
98
+ }));
85
99
  }
86
100
  process.env.NODE_ENV !== "production" ? PieArcLabel.propTypes = {
87
101
  // ----------------------------- Warning --------------------------------
@@ -0,0 +1,93 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ var _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
+ var RATIO = 180 / Math.PI;
12
+ function getItemLabel(arcLabel, arcLabelMinAngle, item) {
13
+ if (!arcLabel) {
14
+ return null;
15
+ }
16
+ var angle = (item.endAngle - item.startAngle) * RATIO;
17
+ if (angle < arcLabelMinAngle) {
18
+ return null;
19
+ }
20
+ if (typeof arcLabel === 'string') {
21
+ var _item$arcLabel;
22
+ return (_item$arcLabel = item[arcLabel]) == null ? void 0 : _item$arcLabel.toString();
23
+ }
24
+ return arcLabel(item);
25
+ }
26
+ export function PieArcLabelPlot(props) {
27
+ var _slots$pieArcLabel;
28
+ var slots = props.slots,
29
+ slotProps = props.slotProps,
30
+ _props$innerRadius = props.innerRadius,
31
+ innerRadius = _props$innerRadius === void 0 ? 0 : _props$innerRadius,
32
+ outerRadius = props.outerRadius,
33
+ _props$cornerRadius = props.cornerRadius,
34
+ cornerRadius = _props$cornerRadius === void 0 ? 0 : _props$cornerRadius,
35
+ _props$paddingAngle = props.paddingAngle,
36
+ paddingAngle = _props$paddingAngle === void 0 ? 0 : _props$paddingAngle,
37
+ id = props.id,
38
+ highlightScope = props.highlightScope,
39
+ highlighted = props.highlighted,
40
+ _props$faded = props.faded,
41
+ faded = _props$faded === void 0 ? {
42
+ additionalRadius: -5
43
+ } : _props$faded,
44
+ data = props.data,
45
+ arcLabel = props.arcLabel,
46
+ _props$arcLabelMinAng = props.arcLabelMinAngle,
47
+ arcLabelMinAngle = _props$arcLabelMinAng === void 0 ? 0 : _props$arcLabelMinAng,
48
+ skipAnimation = props.skipAnimation,
49
+ other = _objectWithoutProperties(props, _excluded);
50
+ var transformedData = useTransformData({
51
+ innerRadius: innerRadius,
52
+ outerRadius: outerRadius,
53
+ cornerRadius: cornerRadius,
54
+ paddingAngle: paddingAngle,
55
+ id: id,
56
+ highlightScope: highlightScope,
57
+ highlighted: highlighted,
58
+ faded: faded,
59
+ data: data
60
+ });
61
+ var transition = useTransition(transformedData, _extends({}, defaultLabelTransitionConfig, {
62
+ immediate: skipAnimation
63
+ }));
64
+ if (data.length === 0) {
65
+ return null;
66
+ }
67
+ var ArcLabel = (_slots$pieArcLabel = slots == null ? void 0 : slots.pieArcLabel) != null ? _slots$pieArcLabel : PieArcLabel;
68
+ return /*#__PURE__*/_jsx("g", _extends({}, other, {
69
+ children: transition(function (_ref, item) {
70
+ var startAngle = _ref.startAngle,
71
+ endAngle = _ref.endAngle,
72
+ pA = _ref.paddingAngle,
73
+ iR = _ref.innerRadius,
74
+ oR = _ref.outerRadius,
75
+ cR = _ref.cornerRadius,
76
+ style = _objectWithoutProperties(_ref, _excluded2);
77
+ return /*#__PURE__*/_jsx(ArcLabel, _extends({
78
+ startAngle: startAngle,
79
+ endAngle: endAngle,
80
+ paddingAngle: pA,
81
+ innerRadius: iR,
82
+ outerRadius: oR,
83
+ cornerRadius: cR,
84
+ style: style,
85
+ id: id,
86
+ color: item.color,
87
+ isFaded: item.isFaded,
88
+ isHighlighted: item.isHighlighted,
89
+ formattedArcLabel: getItemLabel(arcLabel, arcLabelMinAngle, item)
90
+ }, slotProps == null ? void 0 : slotProps.pieArcLabel));
91
+ })
92
+ }));
93
+ }
@@ -0,0 +1,84 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+ var _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
+ var _slots$pieArc;
13
+ var slots = props.slots,
14
+ slotProps = props.slotProps,
15
+ _props$innerRadius = props.innerRadius,
16
+ innerRadius = _props$innerRadius === void 0 ? 0 : _props$innerRadius,
17
+ outerRadius = props.outerRadius,
18
+ _props$cornerRadius = props.cornerRadius,
19
+ cornerRadius = _props$cornerRadius === void 0 ? 0 : _props$cornerRadius,
20
+ _props$paddingAngle = props.paddingAngle,
21
+ paddingAngle = _props$paddingAngle === void 0 ? 0 : _props$paddingAngle,
22
+ id = props.id,
23
+ highlightScope = props.highlightScope,
24
+ highlighted = props.highlighted,
25
+ _props$faded = props.faded,
26
+ faded = _props$faded === void 0 ? {
27
+ additionalRadius: -5
28
+ } : _props$faded,
29
+ data = props.data,
30
+ onClick = props.onClick,
31
+ skipAnimation = props.skipAnimation,
32
+ other = _objectWithoutProperties(props, _excluded);
33
+ var transformedData = useTransformData({
34
+ innerRadius: innerRadius,
35
+ outerRadius: outerRadius,
36
+ cornerRadius: cornerRadius,
37
+ paddingAngle: paddingAngle,
38
+ id: id,
39
+ highlightScope: highlightScope,
40
+ highlighted: highlighted,
41
+ faded: faded,
42
+ data: data
43
+ });
44
+ var transition = useTransition(transformedData, _extends({}, defaultTransitionConfig, {
45
+ immediate: skipAnimation
46
+ }));
47
+ if (data.length === 0) {
48
+ return null;
49
+ }
50
+ var Arc = (_slots$pieArc = slots == null ? void 0 : slots.pieArc) != null ? _slots$pieArc : PieArc;
51
+ return /*#__PURE__*/_jsx("g", _extends({}, other, {
52
+ children: transition(function (_ref, item, _, index) {
53
+ var startAngle = _ref.startAngle,
54
+ endAngle = _ref.endAngle,
55
+ pA = _ref.paddingAngle,
56
+ iR = _ref.innerRadius,
57
+ oR = _ref.outerRadius,
58
+ cR = _ref.cornerRadius,
59
+ style = _objectWithoutProperties(_ref, _excluded2);
60
+ return /*#__PURE__*/_jsx(Arc, _extends({
61
+ startAngle: startAngle,
62
+ endAngle: endAngle,
63
+ paddingAngle: pA,
64
+ innerRadius: iR,
65
+ outerRadius: oR,
66
+ cornerRadius: cR,
67
+ style: style,
68
+ id: id,
69
+ color: item.color,
70
+ dataIndex: index,
71
+ highlightScope: highlightScope,
72
+ isFaded: item.isFaded,
73
+ isHighlighted: item.isHighlighted,
74
+ onClick: onClick && function (event) {
75
+ onClick(event, {
76
+ type: 'pie',
77
+ seriesId: id,
78
+ dataIndex: index
79
+ }, item);
80
+ }
81
+ }, slotProps == null ? void 0 : slotProps.pieArc));
82
+ })
83
+ }));
84
+ }