@mui/x-charts 6.18.7 → 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 +71 -0
  2. package/LineChart/formatter.js +5 -1
  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 +5 -1
  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 +6 -2
  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 +5 -1
  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
@@ -70,6 +70,7 @@ export const defaultLabelTransitionConfig = {
70
70
  from: ({
71
71
  innerRadius,
72
72
  outerRadius,
73
+ arcLabelRadius,
73
74
  cornerRadius,
74
75
  startAngle,
75
76
  endAngle,
@@ -78,6 +79,7 @@ export const defaultLabelTransitionConfig = {
78
79
  innerRadius,
79
80
  outerRadius: (innerRadius + outerRadius) / 2,
80
81
  cornerRadius,
82
+ arcLabelRadius,
81
83
  startAngle: (startAngle + endAngle) / 2,
82
84
  endAngle: (startAngle + endAngle) / 2,
83
85
  paddingAngle,
@@ -90,6 +92,7 @@ export const defaultLabelTransitionConfig = {
90
92
  }) => ({
91
93
  innerRadius,
92
94
  outerRadius: innerRadius,
95
+ arcLabelRadius: innerRadius,
93
96
  startAngle: (startAngle + endAngle) / 2,
94
97
  endAngle: (startAngle + endAngle) / 2,
95
98
  opacity: 0
@@ -98,12 +101,14 @@ export const defaultLabelTransitionConfig = {
98
101
  innerRadius,
99
102
  outerRadius,
100
103
  startAngle,
101
- endAngle
104
+ endAngle,
105
+ arcLabelRadius
102
106
  }) => ({
103
107
  innerRadius,
104
108
  outerRadius,
105
109
  startAngle,
106
110
  endAngle,
111
+ arcLabelRadius,
107
112
  opacity: 1
108
113
  }),
109
114
  update: ({
@@ -112,7 +117,8 @@ export const defaultLabelTransitionConfig = {
112
117
  cornerRadius,
113
118
  startAngle,
114
119
  endAngle,
115
- paddingAngle
120
+ paddingAngle,
121
+ arcLabelRadius
116
122
  }) => ({
117
123
  innerRadius,
118
124
  outerRadius,
@@ -120,6 +126,7 @@ export const defaultLabelTransitionConfig = {
120
126
  startAngle,
121
127
  endAngle,
122
128
  paddingAngle,
129
+ arcLabelRadius,
123
130
  opacity: 1
124
131
  }),
125
132
  config: {
@@ -11,6 +11,7 @@ export function useTransformData(series) {
11
11
  highlighted,
12
12
  paddingAngle: basePaddingAngle = 0,
13
13
  innerRadius: baseInnerRadius = 0,
14
+ arcLabelRadius: baseArcLabelRadius,
14
15
  outerRadius: baseOuterRadius,
15
16
  cornerRadius: baseCornerRadius = 0
16
17
  } = series;
@@ -34,26 +35,28 @@ export function useTransformData(series) {
34
35
  };
35
36
  }, [highlightScope, highlightedItem, seriesId]);
36
37
  const dataWithHighlight = React.useMemo(() => data.map((item, itemIndex) => {
37
- var _attibuesOverride$pad, _attibuesOverride$inn, _attibuesOverride$out, _attibuesOverride$cor;
38
+ var _attributesOverride$p, _attributesOverride$i, _attributesOverride$o, _attributesOverride$c, _ref, _attributesOverride$a;
38
39
  const {
39
40
  isHighlighted,
40
41
  isFaded
41
42
  } = getHighlightStatus(itemIndex);
42
- const attibuesOverride = _extends({
43
+ const attributesOverride = _extends({
43
44
  additionalRadius: 0
44
45
  }, isFaded && faded || isHighlighted && highlighted || {});
45
- const paddingAngle = Math.max(0, Math.PI * ((_attibuesOverride$pad = attibuesOverride.paddingAngle) != null ? _attibuesOverride$pad : basePaddingAngle) / 180);
46
- const innerRadius = Math.max(0, (_attibuesOverride$inn = attibuesOverride.innerRadius) != null ? _attibuesOverride$inn : baseInnerRadius);
47
- const outerRadius = Math.max(0, (_attibuesOverride$out = attibuesOverride.outerRadius) != null ? _attibuesOverride$out : baseOuterRadius + attibuesOverride.additionalRadius);
48
- const cornerRadius = (_attibuesOverride$cor = attibuesOverride.cornerRadius) != null ? _attibuesOverride$cor : baseCornerRadius;
49
- return _extends({}, item, attibuesOverride, {
46
+ const paddingAngle = Math.max(0, Math.PI * ((_attributesOverride$p = attributesOverride.paddingAngle) != null ? _attributesOverride$p : basePaddingAngle) / 180);
47
+ const innerRadius = Math.max(0, (_attributesOverride$i = attributesOverride.innerRadius) != null ? _attributesOverride$i : baseInnerRadius);
48
+ const outerRadius = Math.max(0, (_attributesOverride$o = attributesOverride.outerRadius) != null ? _attributesOverride$o : baseOuterRadius + attributesOverride.additionalRadius);
49
+ const cornerRadius = (_attributesOverride$c = attributesOverride.cornerRadius) != null ? _attributesOverride$c : baseCornerRadius;
50
+ const arcLabelRadius = (_ref = (_attributesOverride$a = attributesOverride.arcLabelRadius) != null ? _attributesOverride$a : baseArcLabelRadius) != null ? _ref : (innerRadius + outerRadius) / 2;
51
+ return _extends({}, item, attributesOverride, {
50
52
  isFaded,
51
53
  isHighlighted,
52
54
  paddingAngle,
53
55
  innerRadius,
54
56
  outerRadius,
55
- cornerRadius
57
+ cornerRadius,
58
+ arcLabelRadius
56
59
  });
57
- }), [baseCornerRadius, baseInnerRadius, baseOuterRadius, basePaddingAngle, data, faded, getHighlightStatus, highlighted]);
60
+ }), [baseCornerRadius, baseInnerRadius, baseOuterRadius, basePaddingAngle, baseArcLabelRadius, data, faded, getHighlightStatus, highlighted]);
58
61
  return dataWithHighlight;
59
62
  }
@@ -56,7 +56,8 @@ export const StackOffset = {
56
56
  export const getStackingGroups = params => {
57
57
  const {
58
58
  series,
59
- seriesOrder
59
+ seriesOrder,
60
+ defaultStrategy
60
61
  } = params;
61
62
  const stackingGroups = [];
62
63
  const stackIndex = {};
@@ -73,11 +74,12 @@ export const getStackingGroups = params => {
73
74
  stackingOffset: StackOffset.none
74
75
  });
75
76
  } else if (stackIndex[stack] === undefined) {
77
+ var _ref, _ref2;
76
78
  stackIndex[stack] = stackingGroups.length;
77
79
  stackingGroups.push({
78
80
  ids: [id],
79
- stackingOrder: StackOrder[stackOrder != null ? stackOrder : 'none'],
80
- stackingOffset: StackOffset[stackOffset != null ? stackOffset : 'diverging']
81
+ stackingOrder: StackOrder[(_ref = stackOrder != null ? stackOrder : defaultStrategy == null ? void 0 : defaultStrategy.stackOrder) != null ? _ref : 'none'],
82
+ stackingOffset: StackOffset[(_ref2 = stackOffset != null ? stackOffset : defaultStrategy == null ? void 0 : defaultStrategy.stackOffset) != null ? _ref2 : 'diverging']
81
83
  });
82
84
  } else {
83
85
  stackingGroups[stackIndex[stack]].ids.push(id);
@@ -1,3 +1,4 @@
1
1
  export * from './seriesType';
2
2
  export * from './layout';
3
+ export * from './stacking';
3
4
  export {};
@@ -0,0 +1 @@
1
+ export {};
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-charts v6.18.7
2
+ * @mui/x-charts v6.19.1
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -9,6 +9,7 @@ export declare function defaultizeColor(series: AllSeriesType, seriesIndex: numb
9
9
  type: "pie";
10
10
  innerRadius?: string | number | undefined;
11
11
  outerRadius?: string | number | undefined;
12
+ arcLabelRadius?: string | number | undefined;
12
13
  cornerRadius?: number | undefined;
13
14
  startAngle?: number | undefined;
14
15
  endAngle?: number | undefined;
@@ -24,6 +25,7 @@ export declare function defaultizeColor(series: AllSeriesType, seriesIndex: numb
24
25
  outerRadius?: number | undefined;
25
26
  cornerRadius?: number | undefined;
26
27
  paddingAngle?: number | undefined;
28
+ arcLabelRadius?: number | undefined;
27
29
  color?: string | undefined;
28
30
  } | undefined;
29
31
  faded?: {
@@ -32,6 +34,7 @@ export declare function defaultizeColor(series: AllSeriesType, seriesIndex: numb
32
34
  outerRadius?: number | undefined;
33
35
  cornerRadius?: number | undefined;
34
36
  paddingAngle?: number | undefined;
37
+ arcLabelRadius?: number | undefined;
35
38
  color?: string | undefined;
36
39
  } | undefined;
37
40
  id?: string | undefined;
@@ -44,6 +47,7 @@ export declare function defaultizeColor(series: AllSeriesType, seriesIndex: numb
44
47
  dataKey?: string | undefined;
45
48
  label?: string | undefined;
46
49
  layout?: "horizontal" | "vertical" | undefined;
50
+ stackOffset?: import("..").StackOffsetType | undefined;
47
51
  id?: string | undefined;
48
52
  color: string;
49
53
  valueFormatter?: ((value: number) => string) | undefined;
@@ -51,8 +55,7 @@ export declare function defaultizeColor(series: AllSeriesType, seriesIndex: numb
51
55
  xAxisKey?: string | undefined;
52
56
  yAxisKey?: string | undefined;
53
57
  stack?: string | undefined;
54
- stackOffset?: "none" | "expand" | "diverging" | "silhouette" | "wiggle" | undefined;
55
- stackOrder?: "reverse" | "none" | "appearance" | "ascending" | "descending" | "insideOut" | undefined;
58
+ stackOrder?: import("..").StackOrderType | undefined;
56
59
  } | {
57
60
  type: "line";
58
61
  data?: (number | null)[] | undefined;
@@ -64,14 +67,14 @@ export declare function defaultizeColor(series: AllSeriesType, seriesIndex: numb
64
67
  showMark?: boolean | ((params: import("../models/seriesType").ShowMarkParams<number | Date>) => boolean) | undefined;
65
68
  disableHighlight?: boolean | undefined;
66
69
  connectNulls?: boolean | undefined;
70
+ stackOffset?: import("..").StackOffsetType | undefined;
67
71
  id?: string | undefined;
68
72
  color: string;
69
73
  valueFormatter?: ((value: number) => string) | undefined;
70
74
  highlightScope?: Partial<import("..").HighlightScope> | undefined;
71
75
  xAxisKey?: string | undefined;
72
76
  yAxisKey?: string | undefined;
73
- stackOffset?: "none" | "expand" | "diverging" | "silhouette" | "wiggle" | undefined;
74
- stackOrder?: "reverse" | "none" | "appearance" | "ascending" | "descending" | "insideOut" | undefined;
77
+ stackOrder?: import("..").StackOrderType | undefined;
75
78
  } | {
76
79
  type: "scatter";
77
80
  data: import("../models/seriesType").ScatterValueType[];
@@ -1,5 +1,6 @@
1
1
  import { Series } from 'd3-shape';
2
- import { BarSeriesType, LineSeriesType } from '../models/seriesType';
2
+ import type { BarSeriesType, LineSeriesType } from '../models/seriesType';
3
+ import type { StackOffsetType, StackOrderType } from '../models/stacking';
3
4
  type StackableSeries = {
4
5
  [id: string]: BarSeriesType;
5
6
  } | {
@@ -8,6 +9,10 @@ type StackableSeries = {
8
9
  type FormatterParams = {
9
10
  series: StackableSeries;
10
11
  seriesOrder: string[];
12
+ defaultStrategy?: {
13
+ stackOrder?: StackOrderType;
14
+ stackOffset?: StackOffsetType;
15
+ };
11
16
  };
12
17
  export type StackingGroupsType = {
13
18
  ids: string[];
@@ -15,10 +20,10 @@ export type StackingGroupsType = {
15
20
  stackingOffset: (series: Series<any, any>, order: Iterable<number>) => void;
16
21
  }[];
17
22
  export declare const StackOrder: {
18
- [key in 'appearance' | 'ascending' | 'descending' | 'insideOut' | 'none' | 'reverse']: (series: Series<any, any>) => number[];
23
+ [key in StackOrderType]: (series: Series<any, any>) => number[];
19
24
  };
20
25
  export declare const StackOffset: {
21
- [key in 'expand' | 'diverging' | 'none' | 'silhouette' | 'wiggle']: (series: Series<any, any>, order: Iterable<number>) => void;
26
+ [key in StackOffsetType]: (series: Series<any, any>, order: Iterable<number>) => void;
22
27
  };
23
28
  /**
24
29
  * Takes a set of series and groups their ids
@@ -62,7 +62,8 @@ const StackOffset = exports.StackOffset = {
62
62
  const getStackingGroups = params => {
63
63
  const {
64
64
  series,
65
- seriesOrder
65
+ seriesOrder,
66
+ defaultStrategy
66
67
  } = params;
67
68
  const stackingGroups = [];
68
69
  const stackIndex = {};
@@ -82,8 +83,8 @@ const getStackingGroups = params => {
82
83
  stackIndex[stack] = stackingGroups.length;
83
84
  stackingGroups.push({
84
85
  ids: [id],
85
- stackingOrder: StackOrder[stackOrder ?? 'none'],
86
- stackingOffset: StackOffset[stackOffset ?? 'diverging']
86
+ stackingOrder: StackOrder[stackOrder ?? defaultStrategy?.stackOrder ?? 'none'],
87
+ stackingOffset: StackOffset[stackOffset ?? defaultStrategy?.stackOffset ?? 'diverging']
87
88
  });
88
89
  } else {
89
90
  stackingGroups[stackIndex[stack]].ids.push(id);
@@ -1,6 +1,6 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
2
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
+ import _extends from "@babel/runtime/helpers/esm/extends";
4
4
  import { stack as d3Stack } from 'd3-shape';
5
5
  import { getStackingGroups } from '../internals/stackSeries';
6
6
  import defaultizeValueFormatter from '../internals/defaultizeValueFormatter';
@@ -11,7 +11,11 @@ var formatter = function formatter(params, dataset) {
11
11
  var _ref;
12
12
  var seriesOrder = params.seriesOrder,
13
13
  series = params.series;
14
- var stackingGroups = getStackingGroups(params);
14
+ var 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
  var d3Dataset = (_ref = dataset) != null ? _ref : [];
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
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
+ var _excluded = ["id", "classes", "color", "startAngle", "endAngle", "paddingAngle", "arcLabelRadius", "innerRadius", "outerRadius", "cornerRadius", "formattedArcLabel", "isHighlighted", "isFaded", "style"];
5
5
  import * as React from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import { animated, to } from '@react-spring/web';
@@ -44,7 +44,7 @@ var PieArcLabelRoot = styled(animated.text, {
44
44
  * It's not an inline function because we need it in inerpolation.
45
45
  */
46
46
  var getLabelPosition = function getLabelPosition(formattedArcLabel, variable) {
47
- return function (startAngle, endAngle, padAngle, innerRadius, outerRadius, cornerRadius) {
47
+ return function (startAngle, endAngle, padAngle, arcLabelRadius, cornerRadius) {
48
48
  if (!formattedArcLabel) {
49
49
  return 0;
50
50
  }
@@ -52,8 +52,8 @@ var getLabelPosition = function getLabelPosition(formattedArcLabel, variable) {
52
52
  padAngle: padAngle,
53
53
  startAngle: startAngle,
54
54
  endAngle: endAngle,
55
- innerRadius: innerRadius,
56
- outerRadius: outerRadius
55
+ innerRadius: arcLabelRadius,
56
+ outerRadius: arcLabelRadius
57
57
  }),
58
58
  _ref3 = _slicedToArray(_ref2, 2),
59
59
  x = _ref3[0],
@@ -71,6 +71,7 @@ function PieArcLabel(props) {
71
71
  startAngle = props.startAngle,
72
72
  endAngle = props.endAngle,
73
73
  paddingAngle = props.paddingAngle,
74
+ arcLabelRadius = props.arcLabelRadius,
74
75
  innerRadius = props.innerRadius,
75
76
  outerRadius = props.outerRadius,
76
77
  cornerRadius = props.cornerRadius,
@@ -91,8 +92,8 @@ function PieArcLabel(props) {
91
92
  className: classes.root
92
93
  }, other, {
93
94
  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'))
95
+ x: to([startAngle, endAngle, paddingAngle, arcLabelRadius, cornerRadius], getLabelPosition(formattedArcLabel, 'x')),
96
+ y: to([startAngle, endAngle, paddingAngle, arcLabelRadius, cornerRadius], getLabelPosition(formattedArcLabel, 'y'))
96
97
  }, style),
97
98
  children: formattedArcLabel
98
99
  }));
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
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"];
3
+ var _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';
@@ -28,9 +28,9 @@ function PieArcLabelPlot(props) {
28
28
  var _slots$pieArcLabel;
29
29
  var slots = props.slots,
30
30
  slotProps = props.slotProps,
31
- _props$innerRadius = props.innerRadius,
32
- innerRadius = _props$innerRadius === void 0 ? 0 : _props$innerRadius,
31
+ innerRadius = props.innerRadius,
33
32
  outerRadius = props.outerRadius,
33
+ arcLabelRadius = props.arcLabelRadius,
34
34
  _props$cornerRadius = props.cornerRadius,
35
35
  cornerRadius = _props$cornerRadius === void 0 ? 0 : _props$cornerRadius,
36
36
  _props$paddingAngle = props.paddingAngle,
@@ -51,6 +51,7 @@ function PieArcLabelPlot(props) {
51
51
  var transformedData = useTransformData({
52
52
  innerRadius: innerRadius,
53
53
  outerRadius: outerRadius,
54
+ arcLabelRadius: arcLabelRadius,
54
55
  cornerRadius: cornerRadius,
55
56
  paddingAngle: paddingAngle,
56
57
  id: id,
@@ -73,6 +74,7 @@ function PieArcLabelPlot(props) {
73
74
  pA = _ref.paddingAngle,
74
75
  iR = _ref.innerRadius,
75
76
  oR = _ref.outerRadius,
77
+ aLR = _ref.arcLabelRadius,
76
78
  cR = _ref.cornerRadius,
77
79
  style = _objectWithoutProperties(_ref, _excluded2);
78
80
  return /*#__PURE__*/_jsx(ArcLabel, _extends({
@@ -81,6 +83,7 @@ function PieArcLabelPlot(props) {
81
83
  paddingAngle: pA,
82
84
  innerRadius: iR,
83
85
  outerRadius: oR,
86
+ arcLabelRadius: aLR,
84
87
  cornerRadius: cR,
85
88
  style: style,
86
89
  id: id,
@@ -105,6 +108,11 @@ process.env.NODE_ENV !== "production" ? PieArcLabelPlot.propTypes = {
105
108
  * The minimal angle required to display the arc label.
106
109
  */
107
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,
108
116
  /**
109
117
  * The radius applied to arc corners (similar to border radius).
110
118
  * @default 0
@@ -126,6 +134,7 @@ process.env.NODE_ENV !== "production" ? PieArcLabelPlot.propTypes = {
126
134
  */
127
135
  faded: PropTypes.shape({
128
136
  additionalRadius: PropTypes.number,
137
+ arcLabelRadius: PropTypes.number,
129
138
  color: PropTypes.string,
130
139
  cornerRadius: PropTypes.number,
131
140
  innerRadius: PropTypes.number,
@@ -137,6 +146,7 @@ process.env.NODE_ENV !== "production" ? PieArcLabelPlot.propTypes = {
137
146
  */
138
147
  highlighted: PropTypes.shape({
139
148
  additionalRadius: PropTypes.number,
149
+ arcLabelRadius: PropTypes.number,
140
150
  color: PropTypes.string,
141
151
  cornerRadius: PropTypes.number,
142
152
  innerRadius: PropTypes.number,
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
3
  var _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';
@@ -55,6 +55,7 @@ function PieArcPlot(props) {
55
55
  endAngle = _ref.endAngle,
56
56
  pA = _ref.paddingAngle,
57
57
  iR = _ref.innerRadius,
58
+ arcLabelRadius = _ref.arcLabelRadius,
58
59
  oR = _ref.outerRadius,
59
60
  cR = _ref.cornerRadius,
60
61
  style = _objectWithoutProperties(_ref, _excluded2);
@@ -88,6 +89,11 @@ process.env.NODE_ENV !== "production" ? PieArcPlot.propTypes = {
88
89
  // | These PropTypes are generated from the TypeScript type definitions |
89
90
  // | To update them edit the TypeScript types and run "yarn proptypes" |
90
91
  // ----------------------------------------------------------------------
92
+ /**
93
+ * The radius between circle center and the arc label in px.
94
+ * @default (innerRadius - outerRadius) / 2
95
+ */
96
+ arcLabelRadius: PropTypes.number,
91
97
  /**
92
98
  * The radius applied to arc corners (similar to border radius).
93
99
  * @default 0
@@ -109,6 +115,7 @@ process.env.NODE_ENV !== "production" ? PieArcPlot.propTypes = {
109
115
  */
110
116
  faded: PropTypes.shape({
111
117
  additionalRadius: PropTypes.number,
118
+ arcLabelRadius: PropTypes.number,
112
119
  color: PropTypes.string,
113
120
  cornerRadius: PropTypes.number,
114
121
  innerRadius: PropTypes.number,
@@ -120,6 +127,7 @@ process.env.NODE_ENV !== "production" ? PieArcPlot.propTypes = {
120
127
  */
121
128
  highlighted: PropTypes.shape({
122
129
  additionalRadius: PropTypes.number,
130
+ arcLabelRadius: PropTypes.number,
123
131
  color: PropTypes.string,
124
132
  cornerRadius: PropTypes.number,
125
133
  innerRadius: PropTypes.number,
@@ -250,6 +250,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
250
250
  series: PropTypes.arrayOf(PropTypes.shape({
251
251
  arcLabel: PropTypes.oneOfType([PropTypes.oneOf(['formattedValue', 'label', 'value']), PropTypes.func]),
252
252
  arcLabelMinAngle: PropTypes.number,
253
+ arcLabelRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
253
254
  color: PropTypes.string,
254
255
  cornerRadius: PropTypes.number,
255
256
  cx: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
@@ -263,6 +264,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
263
264
  endAngle: PropTypes.number,
264
265
  faded: PropTypes.shape({
265
266
  additionalRadius: PropTypes.number,
267
+ arcLabelRadius: PropTypes.number,
266
268
  color: PropTypes.string,
267
269
  cornerRadius: PropTypes.number,
268
270
  innerRadius: PropTypes.number,
@@ -271,6 +273,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
271
273
  }),
272
274
  highlighted: PropTypes.shape({
273
275
  additionalRadius: PropTypes.number,
276
+ arcLabelRadius: PropTypes.number,
274
277
  color: PropTypes.string,
275
278
  cornerRadius: PropTypes.number,
276
279
  innerRadius: PropTypes.number,
@@ -73,6 +73,7 @@ function PiePlot(props) {
73
73
  var _series$seriesId2 = series[seriesId],
74
74
  innerRadiusParam = _series$seriesId2.innerRadius,
75
75
  outerRadiusParam = _series$seriesId2.outerRadius,
76
+ arcLabelRadiusParam = _series$seriesId2.arcLabelRadius,
76
77
  cornerRadius = _series$seriesId2.cornerRadius,
77
78
  paddingAngle = _series$seriesId2.paddingAngle,
78
79
  arcLabel = _series$seriesId2.arcLabel,
@@ -83,6 +84,7 @@ function PiePlot(props) {
83
84
  highlightScope = _series$seriesId2.highlightScope;
84
85
  var outerRadius = getPercentageValue(outerRadiusParam != null ? outerRadiusParam : availableRadius, availableRadius);
85
86
  var innerRadius = getPercentageValue(innerRadiusParam != null ? innerRadiusParam : 0, availableRadius);
87
+ var arcLabelRadius = arcLabelRadiusParam === undefined ? (outerRadius + innerRadius) / 2 : getPercentageValue(arcLabelRadiusParam, availableRadius);
86
88
  var cx = getPercentageValue(cxParam != null ? cxParam : '50%', width);
87
89
  var cy = getPercentageValue(cyParam != null ? cyParam : '50%', height);
88
90
  return /*#__PURE__*/_jsx("g", {
@@ -90,6 +92,7 @@ function PiePlot(props) {
90
92
  children: /*#__PURE__*/_jsx(PieArcLabelPlot, {
91
93
  innerRadius: innerRadius,
92
94
  outerRadius: outerRadius != null ? outerRadius : availableRadius,
95
+ arcLabelRadius: arcLabelRadius,
93
96
  cornerRadius: cornerRadius,
94
97
  paddingAngle: paddingAngle,
95
98
  id: seriesId,
@@ -78,6 +78,7 @@ export var defaultLabelTransitionConfig = {
78
78
  from: function from(_ref5) {
79
79
  var innerRadius = _ref5.innerRadius,
80
80
  outerRadius = _ref5.outerRadius,
81
+ arcLabelRadius = _ref5.arcLabelRadius,
81
82
  cornerRadius = _ref5.cornerRadius,
82
83
  startAngle = _ref5.startAngle,
83
84
  endAngle = _ref5.endAngle,
@@ -86,6 +87,7 @@ export var defaultLabelTransitionConfig = {
86
87
  innerRadius: innerRadius,
87
88
  outerRadius: (innerRadius + outerRadius) / 2,
88
89
  cornerRadius: cornerRadius,
90
+ arcLabelRadius: arcLabelRadius,
89
91
  startAngle: (startAngle + endAngle) / 2,
90
92
  endAngle: (startAngle + endAngle) / 2,
91
93
  paddingAngle: paddingAngle,
@@ -99,6 +101,7 @@ export var defaultLabelTransitionConfig = {
99
101
  return {
100
102
  innerRadius: innerRadius,
101
103
  outerRadius: innerRadius,
104
+ arcLabelRadius: innerRadius,
102
105
  startAngle: (startAngle + endAngle) / 2,
103
106
  endAngle: (startAngle + endAngle) / 2,
104
107
  opacity: 0
@@ -108,12 +111,14 @@ export var defaultLabelTransitionConfig = {
108
111
  var innerRadius = _ref7.innerRadius,
109
112
  outerRadius = _ref7.outerRadius,
110
113
  startAngle = _ref7.startAngle,
111
- endAngle = _ref7.endAngle;
114
+ endAngle = _ref7.endAngle,
115
+ arcLabelRadius = _ref7.arcLabelRadius;
112
116
  return {
113
117
  innerRadius: innerRadius,
114
118
  outerRadius: outerRadius,
115
119
  startAngle: startAngle,
116
120
  endAngle: endAngle,
121
+ arcLabelRadius: arcLabelRadius,
117
122
  opacity: 1
118
123
  };
119
124
  },
@@ -123,7 +128,8 @@ export var defaultLabelTransitionConfig = {
123
128
  cornerRadius = _ref8.cornerRadius,
124
129
  startAngle = _ref8.startAngle,
125
130
  endAngle = _ref8.endAngle,
126
- paddingAngle = _ref8.paddingAngle;
131
+ paddingAngle = _ref8.paddingAngle,
132
+ arcLabelRadius = _ref8.arcLabelRadius;
127
133
  return {
128
134
  innerRadius: innerRadius,
129
135
  outerRadius: outerRadius,
@@ -131,6 +137,7 @@ export var defaultLabelTransitionConfig = {
131
137
  startAngle: startAngle,
132
138
  endAngle: endAngle,
133
139
  paddingAngle: paddingAngle,
140
+ arcLabelRadius: arcLabelRadius,
134
141
  opacity: 1
135
142
  };
136
143
  },
@@ -12,6 +12,7 @@ export function useTransformData(series) {
12
12
  basePaddingAngle = _series$paddingAngle === void 0 ? 0 : _series$paddingAngle,
13
13
  _series$innerRadius = series.innerRadius,
14
14
  baseInnerRadius = _series$innerRadius === void 0 ? 0 : _series$innerRadius,
15
+ baseArcLabelRadius = series.arcLabelRadius,
15
16
  baseOuterRadius = series.outerRadius,
16
17
  _series$cornerRadius = series.cornerRadius,
17
18
  baseCornerRadius = _series$cornerRadius === void 0 ? 0 : _series$cornerRadius;
@@ -35,26 +36,28 @@ export function useTransformData(series) {
35
36
  }, [highlightScope, highlightedItem, seriesId]);
36
37
  var dataWithHighlight = React.useMemo(function () {
37
38
  return data.map(function (item, itemIndex) {
38
- var _attibuesOverride$pad, _attibuesOverride$inn, _attibuesOverride$out, _attibuesOverride$cor;
39
+ var _attributesOverride$p, _attributesOverride$i, _attributesOverride$o, _attributesOverride$c, _ref, _attributesOverride$a;
39
40
  var _getHighlightStatus = getHighlightStatus(itemIndex),
40
41
  isHighlighted = _getHighlightStatus.isHighlighted,
41
42
  isFaded = _getHighlightStatus.isFaded;
42
- var attibuesOverride = _extends({
43
+ var attributesOverride = _extends({
43
44
  additionalRadius: 0
44
45
  }, isFaded && faded || isHighlighted && highlighted || {});
45
- var paddingAngle = Math.max(0, Math.PI * ((_attibuesOverride$pad = attibuesOverride.paddingAngle) != null ? _attibuesOverride$pad : basePaddingAngle) / 180);
46
- var innerRadius = Math.max(0, (_attibuesOverride$inn = attibuesOverride.innerRadius) != null ? _attibuesOverride$inn : baseInnerRadius);
47
- var outerRadius = Math.max(0, (_attibuesOverride$out = attibuesOverride.outerRadius) != null ? _attibuesOverride$out : baseOuterRadius + attibuesOverride.additionalRadius);
48
- var cornerRadius = (_attibuesOverride$cor = attibuesOverride.cornerRadius) != null ? _attibuesOverride$cor : baseCornerRadius;
49
- return _extends({}, item, attibuesOverride, {
46
+ var paddingAngle = Math.max(0, Math.PI * ((_attributesOverride$p = attributesOverride.paddingAngle) != null ? _attributesOverride$p : basePaddingAngle) / 180);
47
+ var innerRadius = Math.max(0, (_attributesOverride$i = attributesOverride.innerRadius) != null ? _attributesOverride$i : baseInnerRadius);
48
+ var outerRadius = Math.max(0, (_attributesOverride$o = attributesOverride.outerRadius) != null ? _attributesOverride$o : baseOuterRadius + attributesOverride.additionalRadius);
49
+ var cornerRadius = (_attributesOverride$c = attributesOverride.cornerRadius) != null ? _attributesOverride$c : baseCornerRadius;
50
+ var arcLabelRadius = (_ref = (_attributesOverride$a = attributesOverride.arcLabelRadius) != null ? _attributesOverride$a : baseArcLabelRadius) != null ? _ref : (innerRadius + outerRadius) / 2;
51
+ return _extends({}, item, attributesOverride, {
50
52
  isFaded: isFaded,
51
53
  isHighlighted: isHighlighted,
52
54
  paddingAngle: paddingAngle,
53
55
  innerRadius: innerRadius,
54
56
  outerRadius: outerRadius,
55
- cornerRadius: cornerRadius
57
+ cornerRadius: cornerRadius,
58
+ arcLabelRadius: arcLabelRadius
56
59
  });
57
60
  });
58
- }, [baseCornerRadius, baseInnerRadius, baseOuterRadius, basePaddingAngle, data, faded, getHighlightStatus, highlighted]);
61
+ }, [baseCornerRadius, baseInnerRadius, baseOuterRadius, basePaddingAngle, baseArcLabelRadius, data, faded, getHighlightStatus, highlighted]);
59
62
  return dataWithHighlight;
60
63
  }
package/legacy/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-charts v6.18.7
2
+ * @mui/x-charts v6.19.1
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -55,7 +55,8 @@ export var StackOffset = {
55
55
  */
56
56
  export var getStackingGroups = function getStackingGroups(params) {
57
57
  var series = params.series,
58
- seriesOrder = params.seriesOrder;
58
+ seriesOrder = params.seriesOrder,
59
+ defaultStrategy = params.defaultStrategy;
59
60
  var stackingGroups = [];
60
61
  var stackIndex = {};
61
62
  seriesOrder.forEach(function (id) {
@@ -70,11 +71,12 @@ export var getStackingGroups = function getStackingGroups(params) {
70
71
  stackingOffset: StackOffset.none
71
72
  });
72
73
  } else if (stackIndex[stack] === undefined) {
74
+ var _ref, _ref2;
73
75
  stackIndex[stack] = stackingGroups.length;
74
76
  stackingGroups.push({
75
77
  ids: [id],
76
- stackingOrder: StackOrder[stackOrder != null ? stackOrder : 'none'],
77
- stackingOffset: StackOffset[stackOffset != null ? stackOffset : 'diverging']
78
+ stackingOrder: StackOrder[(_ref = stackOrder != null ? stackOrder : defaultStrategy == null ? void 0 : defaultStrategy.stackOrder) != null ? _ref : 'none'],
79
+ stackingOffset: StackOffset[(_ref2 = stackOffset != null ? stackOffset : defaultStrategy == null ? void 0 : defaultStrategy.stackOffset) != null ? _ref2 : 'diverging']
78
80
  });
79
81
  } else {
80
82
  stackingGroups[stackIndex[stack]].ids.push(id);
@@ -1,3 +1,4 @@
1
1
  export * from './seriesType';
2
2
  export * from './layout';
3
+ export * from './stacking';
3
4
  export {};
@@ -0,0 +1 @@
1
+ export {};
package/models/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './seriesType';
2
2
  export * from './layout';
3
+ export * from './stacking';
3
4
  export type { AxisConfig, ChartsYAxisProps, ChartsXAxisProps, ScaleName, ContinuouseScaleName, } from './axis';