@mui/x-charts 6.18.4 → 6.19.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 (60) hide show
  1. package/CHANGELOG.md +114 -1
  2. package/LineChart/formatter.js +6 -2
  3. package/PieChart/PieArcLabel.d.ts +1 -0
  4. package/PieChart/PieArcLabel.js +7 -8
  5. package/PieChart/PieArcLabelPlot.js +14 -3
  6. package/PieChart/PieArcPlot.js +8 -1
  7. package/PieChart/PieChart.js +3 -0
  8. package/PieChart/PiePlot.js +3 -0
  9. package/PieChart/dataTransform/transition.js +9 -2
  10. package/PieChart/dataTransform/useTransformData.d.ts +1 -0
  11. package/PieChart/dataTransform/useTransformData.js +11 -8
  12. package/esm/LineChart/formatter.js +6 -2
  13. package/esm/PieChart/PieArcLabel.js +7 -8
  14. package/esm/PieChart/PieArcLabelPlot.js +14 -3
  15. package/esm/PieChart/PieArcPlot.js +8 -1
  16. package/esm/PieChart/PieChart.js +3 -0
  17. package/esm/PieChart/PiePlot.js +3 -0
  18. package/esm/PieChart/dataTransform/transition.js +9 -2
  19. package/esm/PieChart/dataTransform/useTransformData.js +12 -9
  20. package/esm/internals/stackSeries.js +5 -3
  21. package/esm/models/index.js +1 -0
  22. package/esm/models/stacking.js +1 -0
  23. package/index.js +1 -1
  24. package/internals/defaultizeColor.d.ts +7 -4
  25. package/internals/stackSeries.d.ts +8 -3
  26. package/internals/stackSeries.js +4 -3
  27. package/legacy/LineChart/formatter.js +7 -3
  28. package/legacy/PieChart/PieArcLabel.js +7 -6
  29. package/legacy/PieChart/PieArcLabelPlot.js +14 -4
  30. package/legacy/PieChart/PieArcPlot.js +9 -1
  31. package/legacy/PieChart/PieChart.js +3 -0
  32. package/legacy/PieChart/PiePlot.js +3 -0
  33. package/legacy/PieChart/dataTransform/transition.js +9 -2
  34. package/legacy/PieChart/dataTransform/useTransformData.js +12 -9
  35. package/legacy/index.js +1 -1
  36. package/legacy/internals/stackSeries.js +5 -3
  37. package/legacy/models/index.js +1 -0
  38. package/legacy/models/stacking.js +1 -0
  39. package/models/index.d.ts +1 -0
  40. package/models/index.js +11 -0
  41. package/models/seriesType/bar.d.ts +6 -0
  42. package/models/seriesType/common.d.ts +2 -3
  43. package/models/seriesType/index.d.ts +0 -1
  44. package/models/seriesType/line.d.ts +6 -0
  45. package/models/seriesType/pie.d.ts +14 -0
  46. package/models/stacking.d.ts +2 -0
  47. package/models/stacking.js +5 -0
  48. package/modern/LineChart/formatter.js +6 -2
  49. package/modern/PieChart/PieArcLabel.js +7 -8
  50. package/modern/PieChart/PieArcLabelPlot.js +14 -3
  51. package/modern/PieChart/PieArcPlot.js +8 -1
  52. package/modern/PieChart/PieChart.js +3 -0
  53. package/modern/PieChart/PiePlot.js +3 -0
  54. package/modern/PieChart/dataTransform/transition.js +9 -2
  55. package/modern/PieChart/dataTransform/useTransformData.js +11 -8
  56. package/modern/index.js +1 -1
  57. package/modern/internals/stackSeries.js +4 -3
  58. package/modern/models/index.js +1 -0
  59. package/modern/models/stacking.js +1 -0
  60. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -3,6 +3,119 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## 6.19.1
7
+
8
+ _Jan 19, 2024_
9
+
10
+ We'd like to offer a big thanks to the 1 contributors who made this release possible. Here are some highlights ✨:
11
+
12
+ - 🌍 Add Croatian (hr-HR), Portuguese (pt-PT), and Chinese (Hong Kong) (zh-HK) locales (#11717) @BCaspari
13
+ - 🐞 Bugfixes
14
+
15
+ ### Data Grid
16
+
17
+ #### `@mui/x-data-grid@6.19.1`
18
+
19
+ - [l10n] Add Croatian (hr-HR), Portuguese (pt-PT), and Chinese (Hong Kong) (zh-HK) locales (#11717) @BCaspari
20
+
21
+ #### `@mui/x-data-grid-pro@6.19.1` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
22
+
23
+ Same changes as in `@mui/x-data-grid@6.19.1`.
24
+
25
+ #### `@mui/x-data-grid-premium@6.19.1` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
26
+
27
+ Same changes as in `@mui/x-data-grid-pro@6.19.1`.
28
+
29
+ ### Charts / `@mui/x-charts@6.19.1`
30
+
31
+ - [charts] Add `arcLabelRadius` property (#11563) @alexfauquette
32
+ - [charts] Do not propagate `innerRadius` and `outerRadius` to the DOM (#11719) @alexfauquette
33
+ - [charts] Fix default `stackOffset` for `LineChart` (#11703) @alexfauquette
34
+
35
+ ## 6.19.0
36
+
37
+ _Jan 11, 2024_
38
+
39
+ We'd like to offer a big thanks to the 3 contributors who made this release possible. Here are some highlights ✨:
40
+
41
+ - ⏰ Support date-fns v3 (#11659) @LukasTy
42
+ Pickers support both v2 and v3 of date-fns. For v3 use `AdapterDateFnsV3`.
43
+ ```js
44
+ // with date-fns v2.x
45
+ import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';
46
+ import de from 'date-fns/locale/de';
47
+ ```
48
+ ```js
49
+ // with date-fns v3.x
50
+ import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFnsV3';
51
+ import { de } from 'date-fns/locale/de';
52
+ ```
53
+
54
+ ### Date Pickers
55
+
56
+ #### `@mui/x-date-pickers@6.19.0`
57
+
58
+ - [pickers] Add date-fns@3.x adapter (#11659) @LukasTy
59
+ - [pickers] Fix clearable behavior blocking focus return to `OpenPickerButton` (#11643) @noraleonte
60
+ - [l10n] Add missing Danish (da-DK) locale export (#11641) @etlos
61
+
62
+ #### `@mui/x-date-pickers-pro@6.19.0` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
63
+
64
+ Same changes as in `@mui/x-date-pickers@6.19.0`.
65
+
66
+ ### Docs
67
+
68
+ - [docs] Add missing component @oliviertassinari
69
+ - [docs] Fix parsing of `x-date-pickers-pro` demo adapter imports (#11637) @LukasTy
70
+ - [docs] Push up the MUI X brand (#11533) @oliviertassinari
71
+ - [docs] Improve Server-side data grid docs (#11589) @oliviertassinari
72
+ - [docs] Add demo to the charts overview page (#11586) @danilo-leal
73
+ - [docs] Fix 404 links in the docs @oliviertassinari
74
+ - [docs] Improve landing page (#11570) @oliviertassinari
75
+ - [docs] Give a general revision to the docs (#11249) @danilo-leal
76
+
77
+ ## 6.18.7
78
+
79
+ _Jan 5, 2024_
80
+
81
+ We'd like to offer a big thanks to the 4 contributors who made this release possible. Here are some highlights ✨:
82
+
83
+ - 🌍 Improve Czech (cs-CZ) locale on Data Grid (#11429) @wensiet
84
+ - 🐞 Bugfixes
85
+
86
+ ### Data Grid
87
+
88
+ #### `@mui/x-data-grid@6.18.7`
89
+
90
+ - [DataGrid] Don't evaluate `hasEval` when `disableEval` is set (#11553) @reihwald
91
+ - [l10n] Update Czech (cs-CZ) locale (#11498) @fdebef
92
+
93
+ #### `@mui/x-data-grid-pro@6.18.7` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
94
+
95
+ Same changes as in `@mui/x-data-grid@6.18.7`.
96
+
97
+ #### `@mui/x-data-grid-premium@6.18.7` [![premium](https://mui.com/r/x-premium-svg)](https://mui.com/r/x-premium-svg-link 'Premium plan')
98
+
99
+ Same changes as in `@mui/x-data-grid-pro@6.18.7`.
100
+
101
+ ### Date Pickers
102
+
103
+ #### `@mui/x-date-pickers@6.18.7`
104
+
105
+ - [pickers] Fix views management (@LukasTy) (#11572)
106
+
107
+ #### `@mui/x-date-pickers-pro@6.18.7` [![pro](https://mui.com/r/x-pro-svg)](https://mui.com/r/x-pro-svg-link 'Pro plan')
108
+
109
+ Same changes as in `@mui/x-date-pickers@6.18.7`.
110
+
111
+ ### Charts / `@mui/x-charts@6.18.7`
112
+
113
+ - [charts] Fix `null` in line chart using dataset (@alexfauquette) (#11561)
114
+
115
+ ### Docs
116
+
117
+ - [docs] Clarify Pickers usage with Luxon (#11566) @LukasTy
118
+
6
119
  ## 6.18.6
7
120
 
8
121
  _Dec 22, 2023_
@@ -37,7 +150,7 @@ Same changes as in `@mui/x-data-grid-pro@6.18.6`.
37
150
 
38
151
  Same changes as in `@mui/x-date-pickers@6.18.6`.
39
152
 
40
- ### Charts / `@mui/x-charts@6.18.6`
153
+ ### Charts / `@mui/x-charts@6.18.4`
41
154
 
42
155
  - [charts] Allow percentage values for pie chart center and radius (#11464) @alexfauquette
43
156
  - [charts] Make error message more explicit (#11457) @alexfauquette
@@ -17,7 +17,11 @@ const formatter = (params, dataset) => {
17
17
  seriesOrder,
18
18
  series
19
19
  } = params;
20
- const stackingGroups = (0, _stackSeries.getStackingGroups)(params);
20
+ const stackingGroups = (0, _stackSeries.getStackingGroups)((0, _extends2.default)({}, params, {
21
+ defaultStrategy: {
22
+ stackOffset: 'none'
23
+ }
24
+ }));
21
25
 
22
26
  // Create a data set with format adapted to d3
23
27
  const d3Dataset = dataset ?? [];
@@ -61,7 +65,7 @@ const formatter = (params, dataset) => {
61
65
  warnedOnce = true;
62
66
  console.error([`MUI-X charts: your dataset key "${dataKey}" is used for plotting line, but contains nonnumerical elements.`, 'Line plots only support numbers and null values.']);
63
67
  }
64
- return 0;
68
+ return null;
65
69
  }
66
70
  return value;
67
71
  }) : series[id].data,
@@ -23,6 +23,7 @@ export type PieArcLabelProps = PieArcLabelOwnerState & React.ComponentPropsWitho
23
23
  endAngle: SpringValue<number>;
24
24
  innerRadius: SpringValue<number>;
25
25
  outerRadius: SpringValue<number>;
26
+ arcLabelRadius: SpringValue<number>;
26
27
  cornerRadius: SpringValue<number>;
27
28
  paddingAngle: SpringValue<number>;
28
29
  } & {
@@ -18,7 +18,7 @@ var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateU
18
18
  var _styles = require("@mui/material/styles");
19
19
  var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
20
20
  var _jsxRuntime = require("react/jsx-runtime");
21
- const _excluded = ["id", "classes", "color", "startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "cornerRadius", "formattedArcLabel", "isHighlighted", "isFaded", "style"];
21
+ const _excluded = ["id", "classes", "color", "startAngle", "endAngle", "paddingAngle", "arcLabelRadius", "innerRadius", "outerRadius", "cornerRadius", "formattedArcLabel", "isHighlighted", "isFaded", "style"];
22
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
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; }
24
24
  function getPieArcLabelUtilityClass(slot) {
@@ -52,7 +52,7 @@ const PieArcLabelRoot = (0, _styles.styled)(_web.animated.text, {
52
52
  * Helper to compute label position.
53
53
  * It's not an inline function because we need it in inerpolation.
54
54
  */
55
- const getLabelPosition = (formattedArcLabel, variable) => (startAngle, endAngle, padAngle, innerRadius, outerRadius, cornerRadius) => {
55
+ const getLabelPosition = (formattedArcLabel, variable) => (startAngle, endAngle, padAngle, arcLabelRadius, cornerRadius) => {
56
56
  if (!formattedArcLabel) {
57
57
  return 0;
58
58
  }
@@ -60,8 +60,8 @@ const getLabelPosition = (formattedArcLabel, variable) => (startAngle, endAngle,
60
60
  padAngle,
61
61
  startAngle,
62
62
  endAngle,
63
- innerRadius,
64
- outerRadius
63
+ innerRadius: arcLabelRadius,
64
+ outerRadius: arcLabelRadius
65
65
  });
66
66
  if (variable === 'x') {
67
67
  return x;
@@ -76,8 +76,7 @@ function PieArcLabel(props) {
76
76
  startAngle,
77
77
  endAngle,
78
78
  paddingAngle,
79
- innerRadius,
80
- outerRadius,
79
+ arcLabelRadius,
81
80
  cornerRadius,
82
81
  formattedArcLabel,
83
82
  isHighlighted,
@@ -97,8 +96,8 @@ function PieArcLabel(props) {
97
96
  className: classes.root
98
97
  }, other, {
99
98
  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'))
99
+ x: (0, _web.to)([startAngle, endAngle, paddingAngle, arcLabelRadius, cornerRadius], getLabelPosition(formattedArcLabel, 'x')),
100
+ y: (0, _web.to)([startAngle, endAngle, paddingAngle, arcLabelRadius, cornerRadius], getLabelPosition(formattedArcLabel, 'y'))
102
101
  }, style),
103
102
  children: formattedArcLabel
104
103
  }));
@@ -14,8 +14,8 @@ var _transition = require("./dataTransform/transition");
14
14
  var _useTransformData = require("./dataTransform/useTransformData");
15
15
  var _PieArcLabel = require("./PieArcLabel");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
- const _excluded = ["slots", "slotProps", "innerRadius", "outerRadius", "cornerRadius", "paddingAngle", "id", "highlightScope", "highlighted", "faded", "data", "arcLabel", "arcLabelMinAngle", "skipAnimation"],
18
- _excluded2 = ["startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "cornerRadius"];
17
+ const _excluded = ["slots", "slotProps", "innerRadius", "outerRadius", "arcLabelRadius", "cornerRadius", "paddingAngle", "id", "highlightScope", "highlighted", "faded", "data", "arcLabel", "arcLabelMinAngle", "skipAnimation"],
18
+ _excluded2 = ["startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "arcLabelRadius", "cornerRadius"];
19
19
  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); }
20
20
  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; }
21
21
  const RATIO = 180 / Math.PI;
@@ -36,8 +36,9 @@ function PieArcLabelPlot(props) {
36
36
  const {
37
37
  slots,
38
38
  slotProps,
39
- innerRadius = 0,
39
+ innerRadius,
40
40
  outerRadius,
41
+ arcLabelRadius,
41
42
  cornerRadius = 0,
42
43
  paddingAngle = 0,
43
44
  id,
@@ -55,6 +56,7 @@ function PieArcLabelPlot(props) {
55
56
  const transformedData = (0, _useTransformData.useTransformData)({
56
57
  innerRadius,
57
58
  outerRadius,
59
+ arcLabelRadius,
58
60
  cornerRadius,
59
61
  paddingAngle,
60
62
  id,
@@ -78,6 +80,7 @@ function PieArcLabelPlot(props) {
78
80
  paddingAngle: pA,
79
81
  innerRadius: iR,
80
82
  outerRadius: oR,
83
+ arcLabelRadius: aLR,
81
84
  cornerRadius: cR
82
85
  } = _ref,
83
86
  style = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded2);
@@ -87,6 +90,7 @@ function PieArcLabelPlot(props) {
87
90
  paddingAngle: pA,
88
91
  innerRadius: iR,
89
92
  outerRadius: oR,
93
+ arcLabelRadius: aLR,
90
94
  cornerRadius: cR,
91
95
  style: style,
92
96
  id: id,
@@ -111,6 +115,11 @@ process.env.NODE_ENV !== "production" ? PieArcLabelPlot.propTypes = {
111
115
  * The minimal angle required to display the arc label.
112
116
  */
113
117
  arcLabelMinAngle: _propTypes.default.number,
118
+ /**
119
+ * The radius between circle center and the arc label in px.
120
+ * @default (innerRadius - outerRadius) / 2
121
+ */
122
+ arcLabelRadius: _propTypes.default.number,
114
123
  /**
115
124
  * The radius applied to arc corners (similar to border radius).
116
125
  * @default 0
@@ -132,6 +141,7 @@ process.env.NODE_ENV !== "production" ? PieArcLabelPlot.propTypes = {
132
141
  */
133
142
  faded: _propTypes.default.shape({
134
143
  additionalRadius: _propTypes.default.number,
144
+ arcLabelRadius: _propTypes.default.number,
135
145
  color: _propTypes.default.string,
136
146
  cornerRadius: _propTypes.default.number,
137
147
  innerRadius: _propTypes.default.number,
@@ -143,6 +153,7 @@ process.env.NODE_ENV !== "production" ? PieArcLabelPlot.propTypes = {
143
153
  */
144
154
  highlighted: _propTypes.default.shape({
145
155
  additionalRadius: _propTypes.default.number,
156
+ arcLabelRadius: _propTypes.default.number,
146
157
  color: _propTypes.default.string,
147
158
  cornerRadius: _propTypes.default.number,
148
159
  innerRadius: _propTypes.default.number,
@@ -15,7 +15,7 @@ var _transition = require("./dataTransform/transition");
15
15
  var _useTransformData = require("./dataTransform/useTransformData");
16
16
  var _jsxRuntime = require("react/jsx-runtime");
17
17
  const _excluded = ["slots", "slotProps", "innerRadius", "outerRadius", "cornerRadius", "paddingAngle", "id", "highlightScope", "highlighted", "faded", "data", "onClick", "skipAnimation"],
18
- _excluded2 = ["startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "cornerRadius"];
18
+ _excluded2 = ["startAngle", "endAngle", "paddingAngle", "innerRadius", "arcLabelRadius", "outerRadius", "cornerRadius"];
19
19
  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); }
20
20
  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; }
21
21
  function PieArcPlot(props) {
@@ -96,6 +96,11 @@ process.env.NODE_ENV !== "production" ? PieArcPlot.propTypes = {
96
96
  // | These PropTypes are generated from the TypeScript type definitions |
97
97
  // | To update them edit the TypeScript types and run "yarn proptypes" |
98
98
  // ----------------------------------------------------------------------
99
+ /**
100
+ * The radius between circle center and the arc label in px.
101
+ * @default (innerRadius - outerRadius) / 2
102
+ */
103
+ arcLabelRadius: _propTypes.default.number,
99
104
  /**
100
105
  * The radius applied to arc corners (similar to border radius).
101
106
  * @default 0
@@ -117,6 +122,7 @@ process.env.NODE_ENV !== "production" ? PieArcPlot.propTypes = {
117
122
  */
118
123
  faded: _propTypes.default.shape({
119
124
  additionalRadius: _propTypes.default.number,
125
+ arcLabelRadius: _propTypes.default.number,
120
126
  color: _propTypes.default.string,
121
127
  cornerRadius: _propTypes.default.number,
122
128
  innerRadius: _propTypes.default.number,
@@ -128,6 +134,7 @@ process.env.NODE_ENV !== "production" ? PieArcPlot.propTypes = {
128
134
  */
129
135
  highlighted: _propTypes.default.shape({
130
136
  additionalRadius: _propTypes.default.number,
137
+ arcLabelRadius: _propTypes.default.number,
131
138
  color: _propTypes.default.string,
132
139
  cornerRadius: _propTypes.default.number,
133
140
  innerRadius: _propTypes.default.number,
@@ -246,6 +246,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
246
246
  series: _propTypes.default.arrayOf(_propTypes.default.shape({
247
247
  arcLabel: _propTypes.default.oneOfType([_propTypes.default.oneOf(['formattedValue', 'label', 'value']), _propTypes.default.func]),
248
248
  arcLabelMinAngle: _propTypes.default.number,
249
+ arcLabelRadius: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
249
250
  color: _propTypes.default.string,
250
251
  cornerRadius: _propTypes.default.number,
251
252
  cx: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
@@ -259,6 +260,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
259
260
  endAngle: _propTypes.default.number,
260
261
  faded: _propTypes.default.shape({
261
262
  additionalRadius: _propTypes.default.number,
263
+ arcLabelRadius: _propTypes.default.number,
262
264
  color: _propTypes.default.string,
263
265
  cornerRadius: _propTypes.default.number,
264
266
  innerRadius: _propTypes.default.number,
@@ -267,6 +269,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
267
269
  }),
268
270
  highlighted: _propTypes.default.shape({
269
271
  additionalRadius: _propTypes.default.number,
272
+ arcLabelRadius: _propTypes.default.number,
270
273
  color: _propTypes.default.string,
271
274
  cornerRadius: _propTypes.default.number,
272
275
  innerRadius: _propTypes.default.number,
@@ -87,6 +87,7 @@ function PiePlot(props) {
87
87
  const {
88
88
  innerRadius: innerRadiusParam,
89
89
  outerRadius: outerRadiusParam,
90
+ arcLabelRadius: arcLabelRadiusParam,
90
91
  cornerRadius,
91
92
  paddingAngle,
92
93
  arcLabel,
@@ -98,6 +99,7 @@ function PiePlot(props) {
98
99
  } = series[seriesId];
99
100
  const outerRadius = (0, _utils.getPercentageValue)(outerRadiusParam ?? availableRadius, availableRadius);
100
101
  const innerRadius = (0, _utils.getPercentageValue)(innerRadiusParam ?? 0, availableRadius);
102
+ const arcLabelRadius = arcLabelRadiusParam === undefined ? (outerRadius + innerRadius) / 2 : (0, _utils.getPercentageValue)(arcLabelRadiusParam, availableRadius);
101
103
  const cx = (0, _utils.getPercentageValue)(cxParam ?? '50%', width);
102
104
  const cy = (0, _utils.getPercentageValue)(cyParam ?? '50%', height);
103
105
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
@@ -105,6 +107,7 @@ function PiePlot(props) {
105
107
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_PieArcLabelPlot.PieArcLabelPlot, {
106
108
  innerRadius: innerRadius,
107
109
  outerRadius: outerRadius ?? availableRadius,
110
+ arcLabelRadius: arcLabelRadius,
108
111
  cornerRadius: cornerRadius,
109
112
  paddingAngle: paddingAngle,
110
113
  id: seriesId,
@@ -76,6 +76,7 @@ const defaultLabelTransitionConfig = exports.defaultLabelTransitionConfig = {
76
76
  from: ({
77
77
  innerRadius,
78
78
  outerRadius,
79
+ arcLabelRadius,
79
80
  cornerRadius,
80
81
  startAngle,
81
82
  endAngle,
@@ -84,6 +85,7 @@ const defaultLabelTransitionConfig = exports.defaultLabelTransitionConfig = {
84
85
  innerRadius,
85
86
  outerRadius: (innerRadius + outerRadius) / 2,
86
87
  cornerRadius,
88
+ arcLabelRadius,
87
89
  startAngle: (startAngle + endAngle) / 2,
88
90
  endAngle: (startAngle + endAngle) / 2,
89
91
  paddingAngle,
@@ -96,6 +98,7 @@ const defaultLabelTransitionConfig = exports.defaultLabelTransitionConfig = {
96
98
  }) => ({
97
99
  innerRadius,
98
100
  outerRadius: innerRadius,
101
+ arcLabelRadius: innerRadius,
99
102
  startAngle: (startAngle + endAngle) / 2,
100
103
  endAngle: (startAngle + endAngle) / 2,
101
104
  opacity: 0
@@ -104,12 +107,14 @@ const defaultLabelTransitionConfig = exports.defaultLabelTransitionConfig = {
104
107
  innerRadius,
105
108
  outerRadius,
106
109
  startAngle,
107
- endAngle
110
+ endAngle,
111
+ arcLabelRadius
108
112
  }) => ({
109
113
  innerRadius,
110
114
  outerRadius,
111
115
  startAngle,
112
116
  endAngle,
117
+ arcLabelRadius,
113
118
  opacity: 1
114
119
  }),
115
120
  update: ({
@@ -118,7 +123,8 @@ const defaultLabelTransitionConfig = exports.defaultLabelTransitionConfig = {
118
123
  cornerRadius,
119
124
  startAngle,
120
125
  endAngle,
121
- paddingAngle
126
+ paddingAngle,
127
+ arcLabelRadius
122
128
  }) => ({
123
129
  innerRadius,
124
130
  outerRadius,
@@ -126,6 +132,7 @@ const defaultLabelTransitionConfig = exports.defaultLabelTransitionConfig = {
126
132
  startAngle,
127
133
  endAngle,
128
134
  paddingAngle,
135
+ arcLabelRadius,
129
136
  opacity: 1
130
137
  }),
131
138
  config: {
@@ -2,6 +2,7 @@ import { ComputedPieRadius, DefaultizedPieSeriesType, DefaultizedPieValueType }
2
2
  export interface AnimatedObject {
3
3
  innerRadius: number;
4
4
  outerRadius: number;
5
+ arcLabelRadius: number;
5
6
  cornerRadius: number;
6
7
  startAngle: number;
7
8
  endAngle: number;
@@ -20,6 +20,7 @@ function useTransformData(series) {
20
20
  highlighted,
21
21
  paddingAngle: basePaddingAngle = 0,
22
22
  innerRadius: baseInnerRadius = 0,
23
+ arcLabelRadius: baseArcLabelRadius,
23
24
  outerRadius: baseOuterRadius,
24
25
  cornerRadius: baseCornerRadius = 0
25
26
  } = series;
@@ -47,21 +48,23 @@ function useTransformData(series) {
47
48
  isHighlighted,
48
49
  isFaded
49
50
  } = getHighlightStatus(itemIndex);
50
- const attibuesOverride = (0, _extends2.default)({
51
+ const attributesOverride = (0, _extends2.default)({
51
52
  additionalRadius: 0
52
53
  }, isFaded && faded || isHighlighted && highlighted || {});
53
- const paddingAngle = Math.max(0, Math.PI * (attibuesOverride.paddingAngle ?? basePaddingAngle) / 180);
54
- const innerRadius = Math.max(0, attibuesOverride.innerRadius ?? baseInnerRadius);
55
- const outerRadius = Math.max(0, attibuesOverride.outerRadius ?? baseOuterRadius + attibuesOverride.additionalRadius);
56
- const cornerRadius = attibuesOverride.cornerRadius ?? baseCornerRadius;
57
- return (0, _extends2.default)({}, item, attibuesOverride, {
54
+ const paddingAngle = Math.max(0, Math.PI * (attributesOverride.paddingAngle ?? basePaddingAngle) / 180);
55
+ const innerRadius = Math.max(0, attributesOverride.innerRadius ?? baseInnerRadius);
56
+ const outerRadius = Math.max(0, attributesOverride.outerRadius ?? baseOuterRadius + attributesOverride.additionalRadius);
57
+ const cornerRadius = attributesOverride.cornerRadius ?? baseCornerRadius;
58
+ const arcLabelRadius = attributesOverride.arcLabelRadius ?? baseArcLabelRadius ?? (innerRadius + outerRadius) / 2;
59
+ return (0, _extends2.default)({}, item, attributesOverride, {
58
60
  isFaded,
59
61
  isHighlighted,
60
62
  paddingAngle,
61
63
  innerRadius,
62
64
  outerRadius,
63
- cornerRadius
65
+ cornerRadius,
66
+ arcLabelRadius
64
67
  });
65
- }), [baseCornerRadius, baseInnerRadius, baseOuterRadius, basePaddingAngle, data, faded, getHighlightStatus, highlighted]);
68
+ }), [baseCornerRadius, baseInnerRadius, baseOuterRadius, basePaddingAngle, baseArcLabelRadius, data, faded, getHighlightStatus, highlighted]);
66
69
  return dataWithHighlight;
67
70
  }
@@ -11,7 +11,11 @@ const formatter = (params, dataset) => {
11
11
  seriesOrder,
12
12
  series
13
13
  } = params;
14
- const stackingGroups = getStackingGroups(params);
14
+ const stackingGroups = getStackingGroups(_extends({}, params, {
15
+ defaultStrategy: {
16
+ stackOffset: 'none'
17
+ }
18
+ }));
15
19
 
16
20
  // Create a data set with format adapted to d3
17
21
  const d3Dataset = (_ref = dataset) != null ? _ref : [];
@@ -58,7 +62,7 @@ const formatter = (params, dataset) => {
58
62
  warnedOnce = true;
59
63
  console.error([`MUI-X charts: your dataset key "${dataKey}" is used for plotting line, but contains nonnumerical elements.`, 'Line plots only support numbers and null values.']);
60
64
  }
61
- return 0;
65
+ return null;
62
66
  }
63
67
  return value;
64
68
  }) : series[id].data,
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["id", "classes", "color", "startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "cornerRadius", "formattedArcLabel", "isHighlighted", "isFaded", "style"];
3
+ const _excluded = ["id", "classes", "color", "startAngle", "endAngle", "paddingAngle", "arcLabelRadius", "innerRadius", "outerRadius", "cornerRadius", "formattedArcLabel", "isHighlighted", "isFaded", "style"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { animated, to } from '@react-spring/web';
@@ -41,7 +41,7 @@ const PieArcLabelRoot = styled(animated.text, {
41
41
  * Helper to compute label position.
42
42
  * It's not an inline function because we need it in inerpolation.
43
43
  */
44
- const getLabelPosition = (formattedArcLabel, variable) => (startAngle, endAngle, padAngle, innerRadius, outerRadius, cornerRadius) => {
44
+ const getLabelPosition = (formattedArcLabel, variable) => (startAngle, endAngle, padAngle, arcLabelRadius, cornerRadius) => {
45
45
  if (!formattedArcLabel) {
46
46
  return 0;
47
47
  }
@@ -49,8 +49,8 @@ const getLabelPosition = (formattedArcLabel, variable) => (startAngle, endAngle,
49
49
  padAngle,
50
50
  startAngle,
51
51
  endAngle,
52
- innerRadius,
53
- outerRadius
52
+ innerRadius: arcLabelRadius,
53
+ outerRadius: arcLabelRadius
54
54
  });
55
55
  if (variable === 'x') {
56
56
  return x;
@@ -65,8 +65,7 @@ function PieArcLabel(props) {
65
65
  startAngle,
66
66
  endAngle,
67
67
  paddingAngle,
68
- innerRadius,
69
- outerRadius,
68
+ arcLabelRadius,
70
69
  cornerRadius,
71
70
  formattedArcLabel,
72
71
  isHighlighted,
@@ -86,8 +85,8 @@ function PieArcLabel(props) {
86
85
  className: classes.root
87
86
  }, other, {
88
87
  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'))
88
+ x: to([startAngle, endAngle, paddingAngle, arcLabelRadius, cornerRadius], getLabelPosition(formattedArcLabel, 'x')),
89
+ y: to([startAngle, endAngle, paddingAngle, arcLabelRadius, cornerRadius], getLabelPosition(formattedArcLabel, 'y'))
91
90
  }, style),
92
91
  children: formattedArcLabel
93
92
  }));
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
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"];
3
+ const _excluded = ["slots", "slotProps", "innerRadius", "outerRadius", "arcLabelRadius", "cornerRadius", "paddingAngle", "id", "highlightScope", "highlighted", "faded", "data", "arcLabel", "arcLabelMinAngle", "skipAnimation"],
4
+ _excluded2 = ["startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "arcLabelRadius", "cornerRadius"];
5
5
  import * as React from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import { useTransition } from '@react-spring/web';
@@ -29,8 +29,9 @@ function PieArcLabelPlot(props) {
29
29
  const {
30
30
  slots,
31
31
  slotProps,
32
- innerRadius = 0,
32
+ innerRadius,
33
33
  outerRadius,
34
+ arcLabelRadius,
34
35
  cornerRadius = 0,
35
36
  paddingAngle = 0,
36
37
  id,
@@ -48,6 +49,7 @@ function PieArcLabelPlot(props) {
48
49
  const transformedData = useTransformData({
49
50
  innerRadius,
50
51
  outerRadius,
52
+ arcLabelRadius,
51
53
  cornerRadius,
52
54
  paddingAngle,
53
55
  id,
@@ -71,6 +73,7 @@ function PieArcLabelPlot(props) {
71
73
  paddingAngle: pA,
72
74
  innerRadius: iR,
73
75
  outerRadius: oR,
76
+ arcLabelRadius: aLR,
74
77
  cornerRadius: cR
75
78
  } = _ref,
76
79
  style = _objectWithoutPropertiesLoose(_ref, _excluded2);
@@ -80,6 +83,7 @@ function PieArcLabelPlot(props) {
80
83
  paddingAngle: pA,
81
84
  innerRadius: iR,
82
85
  outerRadius: oR,
86
+ arcLabelRadius: aLR,
83
87
  cornerRadius: cR,
84
88
  style: style,
85
89
  id: id,
@@ -104,6 +108,11 @@ process.env.NODE_ENV !== "production" ? PieArcLabelPlot.propTypes = {
104
108
  * The minimal angle required to display the arc label.
105
109
  */
106
110
  arcLabelMinAngle: PropTypes.number,
111
+ /**
112
+ * The radius between circle center and the arc label in px.
113
+ * @default (innerRadius - outerRadius) / 2
114
+ */
115
+ arcLabelRadius: PropTypes.number,
107
116
  /**
108
117
  * The radius applied to arc corners (similar to border radius).
109
118
  * @default 0
@@ -125,6 +134,7 @@ process.env.NODE_ENV !== "production" ? PieArcLabelPlot.propTypes = {
125
134
  */
126
135
  faded: PropTypes.shape({
127
136
  additionalRadius: PropTypes.number,
137
+ arcLabelRadius: PropTypes.number,
128
138
  color: PropTypes.string,
129
139
  cornerRadius: PropTypes.number,
130
140
  innerRadius: PropTypes.number,
@@ -136,6 +146,7 @@ process.env.NODE_ENV !== "production" ? PieArcLabelPlot.propTypes = {
136
146
  */
137
147
  highlighted: PropTypes.shape({
138
148
  additionalRadius: PropTypes.number,
149
+ arcLabelRadius: PropTypes.number,
139
150
  color: PropTypes.string,
140
151
  cornerRadius: PropTypes.number,
141
152
  innerRadius: PropTypes.number,
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  const _excluded = ["slots", "slotProps", "innerRadius", "outerRadius", "cornerRadius", "paddingAngle", "id", "highlightScope", "highlighted", "faded", "data", "onClick", "skipAnimation"],
4
- _excluded2 = ["startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "cornerRadius"];
4
+ _excluded2 = ["startAngle", "endAngle", "paddingAngle", "innerRadius", "arcLabelRadius", "outerRadius", "cornerRadius"];
5
5
  import * as React from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import { useTransition } from '@react-spring/web';
@@ -88,6 +88,11 @@ process.env.NODE_ENV !== "production" ? PieArcPlot.propTypes = {
88
88
  // | These PropTypes are generated from the TypeScript type definitions |
89
89
  // | To update them edit the TypeScript types and run "yarn proptypes" |
90
90
  // ----------------------------------------------------------------------
91
+ /**
92
+ * The radius between circle center and the arc label in px.
93
+ * @default (innerRadius - outerRadius) / 2
94
+ */
95
+ arcLabelRadius: PropTypes.number,
91
96
  /**
92
97
  * The radius applied to arc corners (similar to border radius).
93
98
  * @default 0
@@ -109,6 +114,7 @@ process.env.NODE_ENV !== "production" ? PieArcPlot.propTypes = {
109
114
  */
110
115
  faded: PropTypes.shape({
111
116
  additionalRadius: PropTypes.number,
117
+ arcLabelRadius: PropTypes.number,
112
118
  color: PropTypes.string,
113
119
  cornerRadius: PropTypes.number,
114
120
  innerRadius: PropTypes.number,
@@ -120,6 +126,7 @@ process.env.NODE_ENV !== "production" ? PieArcPlot.propTypes = {
120
126
  */
121
127
  highlighted: PropTypes.shape({
122
128
  additionalRadius: PropTypes.number,
129
+ arcLabelRadius: PropTypes.number,
123
130
  color: PropTypes.string,
124
131
  cornerRadius: PropTypes.number,
125
132
  innerRadius: PropTypes.number,