@mui/x-charts 7.3.2 → 7.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/BarChart/BarChart.js +18 -11
  2. package/BarChart/BarClipPath.d.ts +14 -0
  3. package/BarChart/BarClipPath.js +50 -0
  4. package/BarChart/BarElement.d.ts +10 -5
  5. package/BarChart/BarElement.js +3 -2
  6. package/BarChart/BarPlot.d.ts +4 -0
  7. package/BarChart/BarPlot.js +102 -30
  8. package/BarChart/getRadius.d.ts +15 -0
  9. package/BarChart/getRadius.js +37 -0
  10. package/BarChart/legend.js +13 -6
  11. package/BarChart/types.d.ts +25 -0
  12. package/BarChart/types.js +5 -0
  13. package/CHANGELOG.md +160 -2
  14. package/ChartContainer/ChartContainer.js +10 -10
  15. package/ChartsGrid/ChartsGrid.js +22 -11
  16. package/ChartsOverlay/ChartsLoadingOverlay.js +3 -3
  17. package/ChartsOverlay/ChartsNoDataOverlay.js +2 -2
  18. package/ChartsOverlay/ChartsOverlay.d.ts +9 -0
  19. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +4 -2
  20. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +7 -3
  21. package/ChartsTooltip/utils.js +13 -8
  22. package/ChartsXAxis/ChartsXAxis.js +1 -2
  23. package/ChartsYAxis/ChartsYAxis.js +2 -2
  24. package/LineChart/AreaElement.d.ts +1 -1
  25. package/LineChart/AreaElement.js +3 -3
  26. package/LineChart/AreaPlot.js +3 -2
  27. package/LineChart/LineChart.js +11 -10
  28. package/LineChart/LineElement.d.ts +1 -1
  29. package/LineChart/LineElement.js +3 -3
  30. package/LineChart/LineHighlightElement.d.ts +1 -1
  31. package/LineChart/MarkElement.d.ts +1 -1
  32. package/LineChart/legend.js +13 -6
  33. package/PieChart/PieArc.d.ts +1 -1
  34. package/PieChart/PieArcLabel.d.ts +1 -1
  35. package/PieChart/PieArcLabel.js +3 -1
  36. package/PieChart/PieArcLabelPlot.js +14 -5
  37. package/PieChart/PieArcPlot.js +1 -1
  38. package/PieChart/PieChart.js +11 -10
  39. package/PieChart/formatter.js +4 -1
  40. package/PieChart/legend.js +15 -5
  41. package/ResponsiveChartContainer/ResponsiveChartContainer.js +10 -10
  42. package/ScatterChart/ScatterChart.js +16 -15
  43. package/ScatterChart/legend.js +13 -6
  44. package/SparkLineChart/SparkLineChart.js +5 -5
  45. package/context/ZAxisContextProvider.js +5 -5
  46. package/esm/BarChart/BarChart.js +18 -11
  47. package/esm/BarChart/BarClipPath.js +42 -0
  48. package/esm/BarChart/BarElement.js +3 -2
  49. package/esm/BarChart/BarPlot.js +103 -31
  50. package/esm/BarChart/getRadius.js +30 -0
  51. package/esm/BarChart/legend.js +13 -6
  52. package/esm/BarChart/types.js +1 -0
  53. package/esm/ChartContainer/ChartContainer.js +10 -10
  54. package/esm/ChartsGrid/ChartsGrid.js +23 -12
  55. package/esm/ChartsOverlay/ChartsLoadingOverlay.js +3 -3
  56. package/esm/ChartsOverlay/ChartsNoDataOverlay.js +2 -2
  57. package/esm/ChartsTooltip/DefaultChartsAxisTooltipContent.js +4 -2
  58. package/esm/ChartsTooltip/DefaultChartsItemTooltipContent.js +7 -3
  59. package/esm/ChartsTooltip/utils.js +13 -8
  60. package/esm/ChartsXAxis/ChartsXAxis.js +1 -2
  61. package/esm/ChartsYAxis/ChartsYAxis.js +2 -2
  62. package/esm/LineChart/AreaElement.js +3 -3
  63. package/esm/LineChart/AreaPlot.js +3 -2
  64. package/esm/LineChart/LineChart.js +11 -10
  65. package/esm/LineChart/LineElement.js +3 -3
  66. package/esm/LineChart/legend.js +13 -6
  67. package/esm/PieChart/PieArcLabel.js +3 -1
  68. package/esm/PieChart/PieArcLabelPlot.js +14 -5
  69. package/esm/PieChart/PieArcPlot.js +1 -1
  70. package/esm/PieChart/PieChart.js +11 -10
  71. package/esm/PieChart/formatter.js +4 -1
  72. package/esm/PieChart/legend.js +15 -5
  73. package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +10 -10
  74. package/esm/ScatterChart/ScatterChart.js +16 -15
  75. package/esm/ScatterChart/legend.js +13 -6
  76. package/esm/SparkLineChart/SparkLineChart.js +5 -5
  77. package/esm/context/ZAxisContextProvider.js +5 -5
  78. package/esm/hooks/useAxisEvents.js +12 -7
  79. package/esm/internals/getLabel.js +3 -0
  80. package/hooks/useAxisEvents.js +12 -7
  81. package/index.js +1 -1
  82. package/internals/defaultizeColor.d.ts +7 -5
  83. package/internals/getLabel.d.ts +1 -0
  84. package/internals/getLabel.js +9 -0
  85. package/internals/utils.d.ts +1 -1
  86. package/models/seriesType/bar.d.ts +4 -1
  87. package/models/seriesType/line.d.ts +4 -1
  88. package/models/seriesType/pie.d.ts +9 -4
  89. package/models/seriesType/scatter.d.ts +4 -1
  90. package/modern/BarChart/BarChart.js +18 -11
  91. package/modern/BarChart/BarClipPath.js +42 -0
  92. package/modern/BarChart/BarElement.js +3 -2
  93. package/modern/BarChart/BarPlot.js +103 -31
  94. package/modern/BarChart/getRadius.js +30 -0
  95. package/modern/BarChart/legend.js +13 -6
  96. package/modern/BarChart/types.js +1 -0
  97. package/modern/ChartContainer/ChartContainer.js +10 -10
  98. package/modern/ChartsGrid/ChartsGrid.js +23 -12
  99. package/modern/ChartsOverlay/ChartsLoadingOverlay.js +3 -3
  100. package/modern/ChartsOverlay/ChartsNoDataOverlay.js +2 -2
  101. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +4 -2
  102. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +7 -3
  103. package/modern/ChartsTooltip/utils.js +13 -8
  104. package/modern/ChartsXAxis/ChartsXAxis.js +1 -2
  105. package/modern/ChartsYAxis/ChartsYAxis.js +2 -2
  106. package/modern/LineChart/AreaElement.js +3 -3
  107. package/modern/LineChart/AreaPlot.js +3 -2
  108. package/modern/LineChart/LineChart.js +11 -10
  109. package/modern/LineChart/LineElement.js +3 -3
  110. package/modern/LineChart/legend.js +13 -6
  111. package/modern/PieChart/PieArcLabel.js +3 -1
  112. package/modern/PieChart/PieArcLabelPlot.js +14 -5
  113. package/modern/PieChart/PieArcPlot.js +1 -1
  114. package/modern/PieChart/PieChart.js +11 -10
  115. package/modern/PieChart/formatter.js +4 -1
  116. package/modern/PieChart/legend.js +15 -5
  117. package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +10 -10
  118. package/modern/ScatterChart/ScatterChart.js +16 -15
  119. package/modern/ScatterChart/legend.js +13 -6
  120. package/modern/SparkLineChart/SparkLineChart.js +5 -5
  121. package/modern/context/ZAxisContextProvider.js +5 -5
  122. package/modern/hooks/useAxisEvents.js +12 -7
  123. package/modern/index.js +1 -1
  124. package/modern/internals/getLabel.js +3 -0
  125. package/package.json +3 -3
  126. package/themeAugmentation/components.d.ts +4 -0
  127. package/themeAugmentation/overrides.d.ts +2 -0
  128. package/themeAugmentation/props.d.ts +2 -0
@@ -4,16 +4,23 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ var _getLabel = require("../internals/getLabel");
7
8
  const legendGetter = params => {
8
9
  const {
9
10
  seriesOrder,
10
11
  series
11
12
  } = params;
12
- const data = seriesOrder.map(seriesId => ({
13
- color: series[seriesId].color,
14
- label: series[seriesId].label,
15
- id: seriesId
16
- }));
17
- return data.filter(item => item.label !== undefined);
13
+ return seriesOrder.reduce((acc, seriesId) => {
14
+ const formattedLabel = (0, _getLabel.getLabel)(series[seriesId].label, 'legend');
15
+ if (formattedLabel === undefined) {
16
+ return acc;
17
+ }
18
+ acc.push({
19
+ color: series[seriesId].color,
20
+ label: formattedLabel,
21
+ id: seriesId
22
+ });
23
+ return acc;
24
+ }, []);
18
25
  };
19
26
  var _default = exports.default = legendGetter;
@@ -22,7 +22,7 @@ interface PieArcOwnerState {
22
22
  }
23
23
  export declare function getPieArcUtilityClass(slot: string): string;
24
24
  export declare const pieArcClasses: PieArcClasses;
25
- export type PieArcProps = Omit<React.ComponentPropsWithoutRef<'path'>, 'id'> & PieArcOwnerState & {
25
+ export type PieArcProps = Omit<React.SVGProps<SVGPathElement>, 'ref' | 'id'> & PieArcOwnerState & {
26
26
  cornerRadius: SpringValue<number>;
27
27
  endAngle: SpringValue<number>;
28
28
  highlightScope?: Partial<HighlightScope>;
@@ -20,7 +20,7 @@ interface PieArcLabelOwnerState {
20
20
  }
21
21
  export declare function getPieArcLabelUtilityClass(slot: string): string;
22
22
  export declare const pieArcLabelClasses: PieArcLabelClasses;
23
- export type PieArcLabelProps = PieArcLabelOwnerState & Omit<React.ComponentPropsWithoutRef<'text'>, 'id'> & {
23
+ export type PieArcLabelProps = PieArcLabelOwnerState & Omit<React.SVGProps<SVGTextElement>, 'ref' | 'color' | 'id'> & {
24
24
  startAngle: SpringValue<number>;
25
25
  endAngle: SpringValue<number>;
26
26
  innerRadius: SpringValue<number>;
@@ -46,7 +46,8 @@ const PieArcLabelRoot = (0, _styles.styled)(_web.animated.text, {
46
46
  }) => ({
47
47
  fill: (theme.vars || theme).palette.text.primary,
48
48
  textAnchor: 'middle',
49
- dominantBaseline: 'middle'
49
+ dominantBaseline: 'middle',
50
+ pointerEvents: 'none'
50
51
  }));
51
52
  /**
52
53
  * Helper to compute label position.
@@ -108,6 +109,7 @@ process.env.NODE_ENV !== "production" ? PieArcLabel.propTypes = {
108
109
  // | To update them edit the TypeScript types and run "yarn proptypes" |
109
110
  // ----------------------------------------------------------------------
110
111
  classes: _propTypes.default.object,
112
+ color: _propTypes.default.string.isRequired,
111
113
  formattedArcLabel: _propTypes.default.string,
112
114
  id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
113
115
  isFaded: _propTypes.default.bool.isRequired,
@@ -5,14 +5,15 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.PieArcLabelPlot = PieArcLabelPlot;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
8
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _web = require("@react-spring/web");
13
13
  var _transition = require("./dataTransform/transition");
14
14
  var _useTransformData = require("./dataTransform/useTransformData");
15
15
  var _PieArcLabel = require("./PieArcLabel");
16
+ var _getLabel = require("../internals/getLabel");
16
17
  var _jsxRuntime = require("react/jsx-runtime");
17
18
  const _excluded = ["arcLabel", "arcLabelMinAngle", "arcLabelRadius", "cornerRadius", "data", "faded", "highlighted", "highlightScope", "id", "innerRadius", "outerRadius", "paddingAngle", "skipAnimation", "slotProps", "slots"],
18
19
  _excluded2 = ["startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "arcLabelRadius", "cornerRadius"];
@@ -27,10 +28,18 @@ function getItemLabel(arcLabel, arcLabelMinAngle, item) {
27
28
  if (angle < arcLabelMinAngle) {
28
29
  return null;
29
30
  }
30
- if (typeof arcLabel === 'string') {
31
- return item[arcLabel]?.toString();
31
+ switch (arcLabel) {
32
+ case 'label':
33
+ return (0, _getLabel.getLabel)(item.label, 'arc');
34
+ case 'value':
35
+ return item.value?.toString();
36
+ case 'formattedValue':
37
+ return item.formattedValue;
38
+ default:
39
+ return arcLabel((0, _extends2.default)({}, item, {
40
+ label: (0, _getLabel.getLabel)(item.label, 'arc')
41
+ }));
32
42
  }
33
- return arcLabel(item);
34
43
  }
35
44
  function PieArcLabelPlot(props) {
36
45
  const {
@@ -132,7 +141,7 @@ process.env.NODE_ENV !== "production" ? PieArcLabelPlot.propTypes = {
132
141
  formattedValue: _propTypes.default.string.isRequired,
133
142
  id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
134
143
  index: _propTypes.default.number.isRequired,
135
- label: _propTypes.default.string,
144
+ label: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.string]),
136
145
  padAngle: _propTypes.default.number.isRequired,
137
146
  startAngle: _propTypes.default.number.isRequired,
138
147
  value: _propTypes.default.number.isRequired
@@ -112,7 +112,7 @@ process.env.NODE_ENV !== "production" ? PieArcPlot.propTypes = {
112
112
  formattedValue: _propTypes.default.string.isRequired,
113
113
  id: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
114
114
  index: _propTypes.default.number.isRequired,
115
- label: _propTypes.default.string,
115
+ label: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.string]),
116
116
  padAngle: _propTypes.default.number.isRequired,
117
117
  startAngle: _propTypes.default.number.isRequired,
118
118
  value: _propTypes.default.number.isRequired
@@ -188,6 +188,7 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
188
188
  }),
189
189
  /**
190
190
  * If `true`, a loading overlay is displayed.
191
+ * @default false
191
192
  */
192
193
  loading: _propTypes.default.bool,
193
194
  /**
@@ -272,6 +273,11 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
272
273
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
273
274
  classes: _propTypes.default.object,
274
275
  colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
276
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
277
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
278
+ unknownColor: _propTypes.default.string,
279
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
280
+ }), _propTypes.default.shape({
275
281
  color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
276
282
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
277
283
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
@@ -280,11 +286,6 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
280
286
  colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
281
287
  thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
282
288
  type: _propTypes.default.oneOf(['piecewise']).isRequired
283
- }), _propTypes.default.shape({
284
- colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
285
- type: _propTypes.default.oneOf(['ordinal']).isRequired,
286
- unknownColor: _propTypes.default.string,
287
- values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
288
289
  })]),
289
290
  data: _propTypes.default.array,
290
291
  dataKey: _propTypes.default.string,
@@ -325,6 +326,11 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
325
326
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
326
327
  classes: _propTypes.default.object,
327
328
  colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
329
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
330
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
331
+ unknownColor: _propTypes.default.string,
332
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
333
+ }), _propTypes.default.shape({
328
334
  color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
329
335
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
330
336
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
@@ -333,11 +339,6 @@ process.env.NODE_ENV !== "production" ? PieChart.propTypes = {
333
339
  colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
334
340
  thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
335
341
  type: _propTypes.default.oneOf(['piecewise']).isRequired
336
- }), _propTypes.default.shape({
337
- colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
338
- type: _propTypes.default.oneOf(['ordinal']).isRequired,
339
- unknownColor: _propTypes.default.string,
340
- values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
341
342
  })]),
342
343
  data: _propTypes.default.array,
343
344
  dataKey: _propTypes.default.string,
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _d3Shape = require("d3-shape");
10
+ var _getLabel = require("../internals/getLabel");
10
11
  const getSortingComparator = (comparator = 'none') => {
11
12
  if (typeof comparator === 'function') {
12
13
  return comparator;
@@ -36,7 +37,9 @@ const formatter = params => {
36
37
  data: series[seriesId].data.map((item, index) => (0, _extends2.default)({}, item, {
37
38
  id: item.id ?? `auto-generated-pie-id-${seriesId}-${index}`
38
39
  }, arcs[index])).map((item, index) => (0, _extends2.default)({}, item, {
39
- formattedValue: series[seriesId].valueFormatter?.(item, {
40
+ formattedValue: series[seriesId].valueFormatter?.((0, _extends2.default)({}, item, {
41
+ label: (0, _getLabel.getLabel)(item.label, 'arc')
42
+ }), {
40
43
  dataIndex: index
41
44
  }) ?? item.value.toLocaleString()
42
45
  }))
@@ -4,15 +4,25 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ var _getLabel = require("../internals/getLabel");
7
8
  const legendGetter = params => {
8
9
  const {
9
10
  seriesOrder,
10
11
  series
11
12
  } = params;
12
- return seriesOrder.flatMap(seriesId => series[seriesId].data.map(item => ({
13
- color: item.color,
14
- label: item.label,
15
- id: item.id
16
- })).filter(item => item.label !== undefined));
13
+ return seriesOrder.reduce((acc, seriesId) => {
14
+ series[seriesId].data.forEach(item => {
15
+ const formattedLabel = (0, _getLabel.getLabel)(item.label, 'legend');
16
+ if (formattedLabel === undefined) {
17
+ return;
18
+ }
19
+ acc.push({
20
+ color: item.color,
21
+ label: formattedLabel,
22
+ id: item.id
23
+ });
24
+ });
25
+ return acc;
26
+ }, []);
17
27
  };
18
28
  var _default = exports.default = legendGetter;
@@ -122,6 +122,11 @@ process.env.NODE_ENV !== "production" ? ResponsiveChartContainer.propTypes = {
122
122
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
123
123
  classes: _propTypes.default.object,
124
124
  colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
125
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
126
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
127
+ unknownColor: _propTypes.default.string,
128
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
129
+ }), _propTypes.default.shape({
125
130
  color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
126
131
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
127
132
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
@@ -130,11 +135,6 @@ process.env.NODE_ENV !== "production" ? ResponsiveChartContainer.propTypes = {
130
135
  colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
131
136
  thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
132
137
  type: _propTypes.default.oneOf(['piecewise']).isRequired
133
- }), _propTypes.default.shape({
134
- colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
135
- type: _propTypes.default.oneOf(['ordinal']).isRequired,
136
- unknownColor: _propTypes.default.string,
137
- values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
138
138
  })]),
139
139
  data: _propTypes.default.array,
140
140
  dataKey: _propTypes.default.string,
@@ -175,6 +175,11 @@ process.env.NODE_ENV !== "production" ? ResponsiveChartContainer.propTypes = {
175
175
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
176
176
  classes: _propTypes.default.object,
177
177
  colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
178
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
179
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
180
+ unknownColor: _propTypes.default.string,
181
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
182
+ }), _propTypes.default.shape({
178
183
  color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
179
184
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
180
185
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
@@ -183,11 +188,6 @@ process.env.NODE_ENV !== "production" ? ResponsiveChartContainer.propTypes = {
183
188
  colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
184
189
  thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
185
190
  type: _propTypes.default.oneOf(['piecewise']).isRequired
186
- }), _propTypes.default.shape({
187
- colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
188
- type: _propTypes.default.oneOf(['ordinal']).isRequired,
189
- unknownColor: _propTypes.default.string,
190
- values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
191
191
  })]),
192
192
  data: _propTypes.default.array,
193
193
  dataKey: _propTypes.default.string,
@@ -181,6 +181,7 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
181
181
  }),
182
182
  /**
183
183
  * If `true`, a loading overlay is displayed.
184
+ * @default false
184
185
  */
185
186
  loading: _propTypes.default.bool,
186
187
  /**
@@ -267,6 +268,11 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
267
268
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
268
269
  classes: _propTypes.default.object,
269
270
  colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
271
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
272
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
273
+ unknownColor: _propTypes.default.string,
274
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
275
+ }), _propTypes.default.shape({
270
276
  color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
271
277
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
272
278
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
@@ -275,11 +281,6 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
275
281
  colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
276
282
  thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
277
283
  type: _propTypes.default.oneOf(['piecewise']).isRequired
278
- }), _propTypes.default.shape({
279
- colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
280
- type: _propTypes.default.oneOf(['ordinal']).isRequired,
281
- unknownColor: _propTypes.default.string,
282
- values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
283
284
  })]),
284
285
  data: _propTypes.default.array,
285
286
  dataKey: _propTypes.default.string,
@@ -320,6 +321,11 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
320
321
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
321
322
  classes: _propTypes.default.object,
322
323
  colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
324
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
325
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
326
+ unknownColor: _propTypes.default.string,
327
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
328
+ }), _propTypes.default.shape({
323
329
  color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
324
330
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
325
331
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
@@ -328,11 +334,6 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
328
334
  colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
329
335
  thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
330
336
  type: _propTypes.default.oneOf(['piecewise']).isRequired
331
- }), _propTypes.default.shape({
332
- colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
333
- type: _propTypes.default.oneOf(['ordinal']).isRequired,
334
- unknownColor: _propTypes.default.string,
335
- values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
336
337
  })]),
337
338
  data: _propTypes.default.array,
338
339
  dataKey: _propTypes.default.string,
@@ -369,6 +370,11 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
369
370
  */
370
371
  zAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
371
372
  colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
373
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
374
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
375
+ unknownColor: _propTypes.default.string,
376
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
377
+ }), _propTypes.default.shape({
372
378
  color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
373
379
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
374
380
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
@@ -377,11 +383,6 @@ process.env.NODE_ENV !== "production" ? ScatterChart.propTypes = {
377
383
  colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
378
384
  thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
379
385
  type: _propTypes.default.oneOf(['piecewise']).isRequired
380
- }), _propTypes.default.shape({
381
- colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
382
- type: _propTypes.default.oneOf(['ordinal']).isRequired,
383
- unknownColor: _propTypes.default.string,
384
- values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
385
386
  })]),
386
387
  data: _propTypes.default.array,
387
388
  dataKey: _propTypes.default.string,
@@ -4,16 +4,23 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
+ var _getLabel = require("../internals/getLabel");
7
8
  const legendGetter = params => {
8
9
  const {
9
10
  seriesOrder,
10
11
  series
11
12
  } = params;
12
- const data = seriesOrder.map(seriesId => ({
13
- color: series[seriesId].color,
14
- label: series[seriesId].label,
15
- id: seriesId
16
- }));
17
- return data.filter(item => item.label !== undefined);
13
+ return seriesOrder.reduce((acc, seriesId) => {
14
+ const formattedLabel = (0, _getLabel.getLabel)(series[seriesId].label, 'legend');
15
+ if (formattedLabel === undefined) {
16
+ return acc;
17
+ }
18
+ acc.push({
19
+ color: series[seriesId].color,
20
+ label: formattedLabel,
21
+ id: seriesId
22
+ });
23
+ return acc;
24
+ }, []);
18
25
  };
19
26
  var _default = exports.default = legendGetter;
@@ -235,6 +235,11 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
235
235
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
236
236
  classes: _propTypes.default.object,
237
237
  colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
238
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
239
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
240
+ unknownColor: _propTypes.default.string,
241
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
242
+ }), _propTypes.default.shape({
238
243
  color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
239
244
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
240
245
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
@@ -243,11 +248,6 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
243
248
  colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
244
249
  thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
245
250
  type: _propTypes.default.oneOf(['piecewise']).isRequired
246
- }), _propTypes.default.shape({
247
- colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
248
- type: _propTypes.default.oneOf(['ordinal']).isRequired,
249
- unknownColor: _propTypes.default.string,
250
- values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
251
251
  })]),
252
252
  data: _propTypes.default.array,
253
253
  dataKey: _propTypes.default.string,
@@ -77,6 +77,11 @@ process.env.NODE_ENV !== "production" ? ZAxisContextProvider.propTypes = {
77
77
  */
78
78
  zAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
79
79
  colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
80
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
81
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
82
+ unknownColor: _propTypes.default.string,
83
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
84
+ }), _propTypes.default.shape({
80
85
  color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
81
86
  max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
82
87
  min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
@@ -85,11 +90,6 @@ process.env.NODE_ENV !== "production" ? ZAxisContextProvider.propTypes = {
85
90
  colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
86
91
  thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
87
92
  type: _propTypes.default.oneOf(['piecewise']).isRequired
88
- }), _propTypes.default.shape({
89
- colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
90
- type: _propTypes.default.oneOf(['ordinal']).isRequired,
91
- unknownColor: _propTypes.default.string,
92
- values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
93
93
  })]),
94
94
  data: _propTypes.default.array,
95
95
  dataKey: _propTypes.default.string,
@@ -46,6 +46,7 @@ const BarChart = /*#__PURE__*/React.forwardRef(function BarChart(props, ref) {
46
46
  rightAxis,
47
47
  bottomAxis,
48
48
  skipAnimation,
49
+ borderRadius,
49
50
  onItemClick,
50
51
  onAxisClick,
51
52
  children,
@@ -98,7 +99,8 @@ const BarChart = /*#__PURE__*/React.forwardRef(function BarChart(props, ref) {
98
99
  slots: slots,
99
100
  slotProps: slotProps,
100
101
  skipAnimation: skipAnimation,
101
- onItemClick: onItemClick
102
+ onItemClick: onItemClick,
103
+ borderRadius: borderRadius
102
104
  }), /*#__PURE__*/_jsx(ChartsOverlay, {
103
105
  loading: loading,
104
106
  slots: slots,
@@ -137,6 +139,10 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
137
139
  x: PropTypes.oneOf(['band', 'line', 'none']),
138
140
  y: PropTypes.oneOf(['band', 'line', 'none'])
139
141
  }),
142
+ /**
143
+ * Defines the border radius of the bar element.
144
+ */
145
+ borderRadius: PropTypes.number,
140
146
  /**
141
147
  * Indicate which axis to display the bottom of the charts.
142
148
  * Can be a string (the id of the axis) or an object `ChartsXAxisProps`.
@@ -199,6 +205,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
199
205
  }),
200
206
  /**
201
207
  * If `true`, a loading overlay is displayed.
208
+ * @default false
202
209
  */
203
210
  loading: PropTypes.bool,
204
211
  /**
@@ -291,6 +298,11 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
291
298
  axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
292
299
  classes: PropTypes.object,
293
300
  colorMap: PropTypes.oneOfType([PropTypes.shape({
301
+ colors: PropTypes.arrayOf(PropTypes.string).isRequired,
302
+ type: PropTypes.oneOf(['ordinal']).isRequired,
303
+ unknownColor: PropTypes.string,
304
+ values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
305
+ }), PropTypes.shape({
294
306
  color: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]).isRequired,
295
307
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
296
308
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
@@ -299,11 +311,6 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
299
311
  colors: PropTypes.arrayOf(PropTypes.string).isRequired,
300
312
  thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
301
313
  type: PropTypes.oneOf(['piecewise']).isRequired
302
- }), PropTypes.shape({
303
- colors: PropTypes.arrayOf(PropTypes.string).isRequired,
304
- type: PropTypes.oneOf(['ordinal']).isRequired,
305
- unknownColor: PropTypes.string,
306
- values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
307
314
  })]),
308
315
  data: PropTypes.array,
309
316
  dataKey: PropTypes.string,
@@ -344,6 +351,11 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
344
351
  axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
345
352
  classes: PropTypes.object,
346
353
  colorMap: PropTypes.oneOfType([PropTypes.shape({
354
+ colors: PropTypes.arrayOf(PropTypes.string).isRequired,
355
+ type: PropTypes.oneOf(['ordinal']).isRequired,
356
+ unknownColor: PropTypes.string,
357
+ values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
358
+ }), PropTypes.shape({
347
359
  color: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]).isRequired,
348
360
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
349
361
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
@@ -352,11 +364,6 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
352
364
  colors: PropTypes.arrayOf(PropTypes.string).isRequired,
353
365
  thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
354
366
  type: PropTypes.oneOf(['piecewise']).isRequired
355
- }), PropTypes.shape({
356
- colors: PropTypes.arrayOf(PropTypes.string).isRequired,
357
- type: PropTypes.oneOf(['ordinal']).isRequired,
358
- unknownColor: PropTypes.string,
359
- values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
360
367
  })]),
361
368
  data: PropTypes.array,
362
369
  dataKey: PropTypes.string,
@@ -0,0 +1,42 @@
1
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
+ import _extends from "@babel/runtime/helpers/esm/extends";
3
+ const _excluded = ["style", "maskId"];
4
+ import * as React from 'react';
5
+ import { animated } from '@react-spring/web';
6
+ import { getRadius } from './getRadius';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ const buildInset = corners => `inset(0px round ${corners.topLeft}px ${corners.topRight}px ${corners.bottomRight}px ${corners.bottomLeft}px)`;
9
+ function BarClipRect(props) {
10
+ const radiusData = props.ownerState;
11
+ return /*#__PURE__*/_jsx(animated.rect, {
12
+ style: _extends({}, props.style, {
13
+ clipPath: (props.ownerState.layout === 'vertical' ? props.style?.height : props.style?.width).to(value => buildInset({
14
+ topLeft: Math.min(value, getRadius('top-left', radiusData)),
15
+ topRight: Math.min(value, getRadius('top-right', radiusData)),
16
+ bottomRight: Math.min(value, getRadius('bottom-right', radiusData)),
17
+ bottomLeft: Math.min(value, getRadius('bottom-left', radiusData))
18
+ }))
19
+ })
20
+ });
21
+ }
22
+ /**
23
+ * @ignore - internal component.
24
+ */
25
+ function BarClipPath(props) {
26
+ const {
27
+ style,
28
+ maskId
29
+ } = props,
30
+ rest = _objectWithoutPropertiesLoose(props, _excluded);
31
+ if (!props.borderRadius || props.borderRadius <= 0) {
32
+ return null;
33
+ }
34
+ return /*#__PURE__*/_jsx("clipPath", {
35
+ id: maskId,
36
+ children: /*#__PURE__*/_jsx(BarClipRect, {
37
+ ownerState: rest,
38
+ style: style
39
+ })
40
+ });
41
+ }
42
+ export { BarClipPath };
@@ -79,16 +79,17 @@ function BarElement(props) {
79
79
  const barProps = useSlotProps({
80
80
  elementType: Bar,
81
81
  externalSlotProps: slotProps?.bar,
82
- additionalProps: _extends({}, other, getInteractionItemProps({
82
+ externalForwardedProps: other,
83
+ additionalProps: _extends({}, getInteractionItemProps({
83
84
  type: 'bar',
84
85
  seriesId: id,
85
86
  dataIndex
86
87
  }), {
87
88
  style,
88
- className: classes.root,
89
89
  onClick,
90
90
  cursor: onClick ? 'pointer' : 'unset'
91
91
  }),
92
+ className: classes.root,
92
93
  ownerState
93
94
  });
94
95
  return /*#__PURE__*/_jsx(Bar, _extends({}, barProps));