@mui/x-charts 6.19.3 → 6.19.4

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 (127) hide show
  1. package/BarChart/BarChart.js +11 -9
  2. package/BarChart/BarElement.d.ts +6 -3
  3. package/BarChart/BarElement.js +1 -0
  4. package/BarChart/BarPlot.js +9 -10
  5. package/CHANGELOG.md +56 -0
  6. package/ChartsAxis/ChartsAxis.js +4 -4
  7. package/ChartsLegend/ChartsLegend.js +0 -101
  8. package/ChartsReferenceLine/ChartsReferenceLine.js +1 -1
  9. package/ChartsReferenceLine/common.d.ts +2 -1
  10. package/ChartsTooltip/ChartsAxisTooltipContent.js +4 -4
  11. package/ChartsTooltip/ChartsItemTooltipContent.js +3 -3
  12. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +2 -2
  13. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +2 -2
  14. package/ChartsXAxis/ChartsXAxis.js +13 -9
  15. package/ChartsYAxis/ChartsYAxis.js +1 -1
  16. package/LineChart/AreaElement.d.ts +7 -4
  17. package/LineChart/AreaElement.js +1 -0
  18. package/LineChart/LineChart.js +11 -9
  19. package/LineChart/LineElement.d.ts +7 -4
  20. package/LineChart/LineElement.js +1 -0
  21. package/LineChart/LineHighlightElement.d.ts +3 -2
  22. package/LineChart/LineHighlightElement.js +2 -1
  23. package/LineChart/MarkElement.d.ts +3 -2
  24. package/LineChart/MarkElement.js +1 -0
  25. package/PieChart/PieArc.d.ts +3 -2
  26. package/PieChart/PieArc.js +1 -0
  27. package/PieChart/PieArcLabel.d.ts +3 -2
  28. package/PieChart/PieArcLabel.js +1 -0
  29. package/PieChart/PieArcLabelPlot.js +1 -1
  30. package/PieChart/PieArcPlot.js +1 -1
  31. package/PieChart/PieChart.js +11 -9
  32. package/ScatterChart/Scatter.js +1 -1
  33. package/ScatterChart/ScatterChart.js +11 -9
  34. package/SparkLineChart/SparkLineChart.js +3 -2
  35. package/context/CartesianContextProvider.js +8 -6
  36. package/context/InteractionProvider.d.ts +2 -2
  37. package/esm/BarChart/BarChart.js +11 -9
  38. package/esm/BarChart/BarElement.js +1 -0
  39. package/esm/BarChart/BarPlot.js +8 -10
  40. package/esm/ChartsAxis/ChartsAxis.js +4 -4
  41. package/esm/ChartsLegend/ChartsLegend.js +0 -101
  42. package/esm/ChartsReferenceLine/ChartsReferenceLine.js +1 -1
  43. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +4 -4
  44. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +3 -3
  45. package/esm/ChartsTooltip/DefaultChartsAxisTooltipContent.js +2 -2
  46. package/esm/ChartsTooltip/DefaultChartsItemTooltipContent.js +2 -2
  47. package/esm/ChartsXAxis/ChartsXAxis.js +13 -9
  48. package/esm/ChartsYAxis/ChartsYAxis.js +1 -1
  49. package/esm/LineChart/AreaElement.js +1 -0
  50. package/esm/LineChart/LineChart.js +11 -9
  51. package/esm/LineChart/LineElement.js +1 -0
  52. package/esm/LineChart/LineHighlightElement.js +2 -1
  53. package/esm/LineChart/MarkElement.js +1 -0
  54. package/esm/PieChart/PieArc.js +1 -0
  55. package/esm/PieChart/PieArcLabel.js +1 -0
  56. package/esm/PieChart/PieArcLabelPlot.js +1 -1
  57. package/esm/PieChart/PieArcPlot.js +1 -1
  58. package/esm/PieChart/PieChart.js +11 -9
  59. package/esm/ScatterChart/Scatter.js +1 -1
  60. package/esm/ScatterChart/ScatterChart.js +11 -9
  61. package/esm/SparkLineChart/SparkLineChart.js +3 -2
  62. package/esm/context/CartesianContextProvider.js +8 -6
  63. package/index.js +1 -1
  64. package/internals/defaultizeColor.d.ts +15 -15
  65. package/internals/defaultizeValueFormatter.d.ts +4 -7
  66. package/internals/stackSeries.d.ts +4 -7
  67. package/legacy/BarChart/BarChart.js +11 -9
  68. package/legacy/BarChart/BarElement.js +1 -0
  69. package/legacy/BarChart/BarPlot.js +10 -10
  70. package/legacy/ChartsAxis/ChartsAxis.js +4 -4
  71. package/legacy/ChartsLegend/ChartsLegend.js +0 -101
  72. package/legacy/ChartsReferenceLine/ChartsReferenceLine.js +1 -1
  73. package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +4 -4
  74. package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +3 -3
  75. package/legacy/ChartsTooltip/DefaultChartsAxisTooltipContent.js +2 -2
  76. package/legacy/ChartsTooltip/DefaultChartsItemTooltipContent.js +2 -2
  77. package/legacy/ChartsXAxis/ChartsXAxis.js +12 -8
  78. package/legacy/ChartsYAxis/ChartsYAxis.js +1 -1
  79. package/legacy/LineChart/AreaElement.js +1 -0
  80. package/legacy/LineChart/LineChart.js +11 -9
  81. package/legacy/LineChart/LineElement.js +1 -0
  82. package/legacy/LineChart/LineHighlightElement.js +2 -1
  83. package/legacy/LineChart/MarkElement.js +1 -0
  84. package/legacy/PieChart/PieArc.js +1 -0
  85. package/legacy/PieChart/PieArcLabel.js +1 -0
  86. package/legacy/PieChart/PieArcLabelPlot.js +1 -1
  87. package/legacy/PieChart/PieArcPlot.js +1 -1
  88. package/legacy/PieChart/PieChart.js +11 -9
  89. package/legacy/ScatterChart/Scatter.js +1 -1
  90. package/legacy/ScatterChart/ScatterChart.js +11 -9
  91. package/legacy/SparkLineChart/SparkLineChart.js +3 -2
  92. package/legacy/context/CartesianContextProvider.js +8 -6
  93. package/legacy/index.js +1 -1
  94. package/models/axis.d.ts +7 -2
  95. package/models/seriesType/common.d.ts +2 -1
  96. package/models/seriesType/config.d.ts +7 -12
  97. package/models/seriesType/line.d.ts +2 -2
  98. package/models/seriesType/pie.d.ts +7 -3
  99. package/models/seriesType/scatter.d.ts +5 -2
  100. package/modern/BarChart/BarChart.js +11 -9
  101. package/modern/BarChart/BarElement.js +1 -0
  102. package/modern/BarChart/BarPlot.js +8 -10
  103. package/modern/ChartsAxis/ChartsAxis.js +4 -4
  104. package/modern/ChartsLegend/ChartsLegend.js +0 -101
  105. package/modern/ChartsReferenceLine/ChartsReferenceLine.js +1 -1
  106. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +4 -4
  107. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +3 -3
  108. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +2 -2
  109. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +2 -2
  110. package/modern/ChartsXAxis/ChartsXAxis.js +13 -9
  111. package/modern/ChartsYAxis/ChartsYAxis.js +1 -1
  112. package/modern/LineChart/AreaElement.js +1 -0
  113. package/modern/LineChart/LineChart.js +11 -9
  114. package/modern/LineChart/LineElement.js +1 -0
  115. package/modern/LineChart/LineHighlightElement.js +2 -1
  116. package/modern/LineChart/MarkElement.js +1 -0
  117. package/modern/PieChart/PieArc.js +1 -0
  118. package/modern/PieChart/PieArcLabel.js +1 -0
  119. package/modern/PieChart/PieArcLabelPlot.js +1 -1
  120. package/modern/PieChart/PieArcPlot.js +1 -1
  121. package/modern/PieChart/PieChart.js +11 -9
  122. package/modern/ScatterChart/Scatter.js +1 -1
  123. package/modern/ScatterChart/ScatterChart.js +11 -9
  124. package/modern/SparkLineChart/SparkLineChart.js +3 -2
  125. package/modern/context/CartesianContextProvider.js +8 -6
  126. package/modern/index.js +1 -1
  127. package/package.json +1 -1
@@ -229,7 +229,7 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
229
229
  * Notice it is a single configuration object, not an array of configuration.
230
230
  */
231
231
  xAxis: PropTypes.shape({
232
- axisId: PropTypes.string,
232
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
233
233
  classes: PropTypes.object,
234
234
  data: PropTypes.array,
235
235
  dataKey: PropTypes.string,
@@ -237,13 +237,14 @@ process.env.NODE_ENV !== "production" ? SparkLineChart.propTypes = {
237
237
  disableTicks: PropTypes.bool,
238
238
  fill: PropTypes.string,
239
239
  hideTooltip: PropTypes.bool,
240
- id: PropTypes.string,
240
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
241
241
  label: PropTypes.string,
242
242
  labelFontSize: PropTypes.number,
243
243
  labelStyle: PropTypes.object,
244
244
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
245
245
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
246
246
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
247
+ reverse: PropTypes.bool,
247
248
  scaleType: PropTypes.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
248
249
  slotProps: PropTypes.object,
249
250
  slots: PropTypes.object,
@@ -129,7 +129,7 @@ function CartesianContextProvider(props) {
129
129
  _getAxisExtremum2 = _slicedToArray(_getAxisExtremum, 2),
130
130
  minData = _getAxisExtremum2[0],
131
131
  maxData = _getAxisExtremum2[1];
132
- var range = [drawingArea.left, drawingArea.left + drawingArea.width];
132
+ var range = axis.reverse ? [drawingArea.left + drawingArea.width, drawingArea.left] : [drawingArea.left, drawingArea.left + drawingArea.width];
133
133
  if (isBandScaleConfig(axis)) {
134
134
  var _axis$categoryGapRati, _axis$barGapRatio;
135
135
  var categoryGapRatio = (_axis$categoryGapRati = axis.categoryGapRatio) != null ? _axis$categoryGapRati : DEFAULT_CATEGORY_GAP_RATIO;
@@ -186,7 +186,7 @@ function CartesianContextProvider(props) {
186
186
  _getAxisExtremum4 = _slicedToArray(_getAxisExtremum3, 2),
187
187
  minData = _getAxisExtremum4[0],
188
188
  maxData = _getAxisExtremum4[1];
189
- var range = [drawingArea.top + drawingArea.height, drawingArea.top];
189
+ var range = axis.reverse ? [drawingArea.top, drawingArea.top + drawingArea.height] : [drawingArea.top + drawingArea.height, drawingArea.top];
190
190
  if (isBandScaleConfig(axis)) {
191
191
  var _axis$categoryGapRati2;
192
192
  var categoryGapRatio = (_axis$categoryGapRati2 = axis.categoryGapRatio) != null ? _axis$categoryGapRati2 : DEFAULT_CATEGORY_GAP_RATIO;
@@ -258,7 +258,7 @@ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
258
258
  * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
259
259
  */
260
260
  xAxis: PropTypes.arrayOf(PropTypes.shape({
261
- axisId: PropTypes.string,
261
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
262
262
  classes: PropTypes.object,
263
263
  data: PropTypes.array,
264
264
  dataKey: PropTypes.string,
@@ -266,13 +266,14 @@ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
266
266
  disableTicks: PropTypes.bool,
267
267
  fill: PropTypes.string,
268
268
  hideTooltip: PropTypes.bool,
269
- id: PropTypes.string,
269
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
270
270
  label: PropTypes.string,
271
271
  labelFontSize: PropTypes.number,
272
272
  labelStyle: PropTypes.object,
273
273
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
274
274
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
275
275
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
276
+ reverse: PropTypes.bool,
276
277
  scaleType: PropTypes.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
277
278
  slotProps: PropTypes.object,
278
279
  slots: PropTypes.object,
@@ -292,7 +293,7 @@ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
292
293
  * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
293
294
  */
294
295
  yAxis: PropTypes.arrayOf(PropTypes.shape({
295
- axisId: PropTypes.string,
296
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
296
297
  classes: PropTypes.object,
297
298
  data: PropTypes.array,
298
299
  dataKey: PropTypes.string,
@@ -300,13 +301,14 @@ process.env.NODE_ENV !== "production" ? CartesianContextProvider.propTypes = {
300
301
  disableTicks: PropTypes.bool,
301
302
  fill: PropTypes.string,
302
303
  hideTooltip: PropTypes.bool,
303
- id: PropTypes.string,
304
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
304
305
  label: PropTypes.string,
305
306
  labelFontSize: PropTypes.number,
306
307
  labelStyle: PropTypes.object,
307
308
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
308
309
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
309
310
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
311
+ reverse: PropTypes.bool,
310
312
  scaleType: PropTypes.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
311
313
  slotProps: PropTypes.object,
312
314
  slots: PropTypes.object,
package/legacy/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-charts v6.19.3
2
+ * @mui/x-charts v6.19.4
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
package/models/axis.d.ts CHANGED
@@ -3,6 +3,7 @@ import type { ScaleBand, ScaleLogarithmic, ScalePower, ScaleTime, ScaleLinear, S
3
3
  import { ChartsAxisClasses } from '../ChartsAxis/axisClasses';
4
4
  import type { TickParams } from '../hooks/useTicks';
5
5
  import { ChartsTextProps } from '../ChartsText';
6
+ export type AxisId = string | number;
6
7
  export type D3Scale<Domain extends {
7
8
  toString(): string;
8
9
  } = number | Date | string, Range = number, Output = number> = ScaleBand<Domain> | ScaleLogarithmic<Range, Output> | ScalePoint<Domain> | ScalePower<Range, Output> | ScaleTime<Range, Output> | ScaleLinear<Range, Output>;
@@ -24,7 +25,7 @@ export interface ChartsAxisProps extends TickParams {
24
25
  * The id of the axis to render.
25
26
  * If undefined, it will be the first defined axis.
26
27
  */
27
- axisId?: string;
28
+ axisId?: AxisId;
28
29
  /**
29
30
  * If true, the axis line is disabled.
30
31
  * @default false
@@ -160,7 +161,7 @@ export type AxisConfig<S extends ScaleName = ScaleName, V = any> = {
160
161
  /**
161
162
  * Id used to identify the axis.
162
163
  */
163
- id: string;
164
+ id: AxisId;
164
165
  /**
165
166
  * The minimal value of the domain.
166
167
  * If not provided, it gets computed to display the entire chart data.
@@ -184,6 +185,10 @@ export type AxisConfig<S extends ScaleName = ScaleName, V = any> = {
184
185
  * If `true`, hide this value in the tooltip
185
186
  */
186
187
  hideTooltip?: boolean;
188
+ /**
189
+ * If `true`, Reverse the axis scaleBand.
190
+ */
191
+ reverse?: boolean;
187
192
  } & Partial<ChartsXAxisProps | ChartsYAxisProps> & Partial<Omit<AxisScaleConfig[S], 'scale'>> & TickParams;
188
193
  export type AxisDefaultized<S extends ScaleName = ScaleName, V = any> = Omit<AxisConfig<S, V>, 'scaleType'> & AxisScaleConfig[S] & {
189
194
  /**
@@ -1,7 +1,8 @@
1
1
  import type { HighlightScope } from '../../context/HighlightProvider';
2
2
  import type { StackOffsetType, StackOrderType } from '../stacking';
3
+ export type SeriesId = number | string;
3
4
  export type CommonSeriesType<TValue> = {
4
- id?: string;
5
+ id?: SeriesId;
5
6
  color?: string;
6
7
  /**
7
8
  * Formatter used to render values in tooltip or other data display.
@@ -5,6 +5,7 @@ import { PieSeriesType, DefaultizedPieSeriesType, PieItemIdentifier, PieValueTyp
5
5
  import { AxisConfig } from '../axis';
6
6
  import { DefaultizedProps, MakeOptional } from '../helpers';
7
7
  import { StackingGroupsType } from '../../internals/stackSeries';
8
+ import { SeriesId } from './common';
8
9
  interface ChartsSeriesConfig {
9
10
  bar: {
10
11
  seriesInput: DefaultizedProps<BarSeriesType, 'id'> & {
@@ -53,25 +54,19 @@ export type ChartSeriesDefaultized<T extends ChartSeriesType> = ChartsSeriesConf
53
54
  } : ChartsSeriesConfig[T]['series'];
54
55
  export type ChartItemIdentifier<T extends ChartSeriesType> = ChartsSeriesConfig[T]['itemIdentifier'];
55
56
  type ExtremumGetterParams<T extends ChartSeriesType> = {
56
- series: {
57
- [id: string]: ChartSeries<T>;
58
- };
57
+ series: Record<SeriesId, ChartSeries<T>>;
59
58
  axis: AxisConfig;
60
59
  isDefaultAxis: boolean;
61
60
  };
62
61
  export type ExtremumGetterResult = [number, number] | [null, null];
63
62
  export type ExtremumGetter<T extends ChartSeriesType> = (params: ExtremumGetterParams<T>) => ExtremumGetterResult;
64
63
  export type FormatterParams<T extends ChartSeriesType> = {
65
- series: {
66
- [id: string]: ChartsSeriesConfig[T]['seriesInput'];
67
- };
68
- seriesOrder: string[];
64
+ series: Record<SeriesId, ChartsSeriesConfig[T]['seriesInput']>;
65
+ seriesOrder: SeriesId[];
69
66
  };
70
67
  export type FormatterResult<T extends ChartSeriesType> = {
71
- series: {
72
- [id: string]: ChartSeriesDefaultized<T>;
73
- };
74
- seriesOrder: string[];
68
+ series: Record<SeriesId, ChartSeriesDefaultized<T>>;
69
+ seriesOrder: SeriesId[];
75
70
  } & (ChartsSeriesConfig[T] extends {
76
71
  canBeStacked: true;
77
72
  } ? {
@@ -95,7 +90,7 @@ export type LegendParams = {
95
90
  * The identifier of the legend element.
96
91
  * Used for internal purpose such as `key` props
97
92
  */
98
- id: string;
93
+ id: SeriesId;
99
94
  };
100
95
  export type LegendGetter<T extends ChartSeriesType> = (series: FormatterResult<T>) => LegendParams[];
101
96
  export {};
@@ -1,6 +1,6 @@
1
1
  import { DefaultizedProps } from '../helpers';
2
2
  import type { StackOffsetType } from '../stacking';
3
- import { CartesianSeriesType, CommonDefaultizedProps, CommonSeriesType, StackableSeriesType } from './common';
3
+ import { CartesianSeriesType, CommonDefaultizedProps, CommonSeriesType, SeriesId, StackableSeriesType } from './common';
4
4
  export type CurveType = 'catmullRom' | 'linear' | 'monotoneX' | 'monotoneY' | 'natural' | 'step' | 'stepBefore' | 'stepAfter';
5
5
  export interface ShowMarkParams<AxisValue = number | Date> {
6
6
  /**
@@ -66,7 +66,7 @@ export interface LineSeriesType extends CommonSeriesType<number>, CartesianSerie
66
66
  */
67
67
  export type LineItemIdentifier = {
68
68
  type: 'line';
69
- seriesId: DefaultizedLineSeriesType['id'];
69
+ seriesId: SeriesId;
70
70
  /**
71
71
  * `dataIndex` can be `undefined` if the mouse is over the area and not a specific item.
72
72
  */
@@ -1,8 +1,12 @@
1
1
  import { PieArcDatum as D3PieArcDatum } from 'd3-shape';
2
2
  import { DefaultizedProps } from '../helpers';
3
- import { CommonDefaultizedProps, CommonSeriesType } from './common';
3
+ import { CommonDefaultizedProps, CommonSeriesType, SeriesId } from './common';
4
+ export type PieItemId = string | number;
4
5
  export type PieValueType = {
5
- id: string | number;
6
+ /**
7
+ * A unique identifier of the pie slice.
8
+ */
9
+ id: PieItemId;
6
10
  value: number;
7
11
  label?: string;
8
12
  color?: string;
@@ -119,7 +123,7 @@ export interface PieSeriesType<Tdata = PieValueType> extends CommonSeriesType<Td
119
123
  */
120
124
  export type PieItemIdentifier = {
121
125
  type: 'pie';
122
- seriesId: DefaultizedPieSeriesType['id'];
126
+ seriesId: SeriesId;
123
127
  dataIndex: number;
124
128
  };
125
129
  export interface DefaultizedPieSeriesType extends DefaultizedProps<PieSeriesType, CommonDefaultizedProps> {
@@ -1,8 +1,11 @@
1
1
  import { DefaultizedProps } from '../helpers';
2
- import { CartesianSeriesType, CommonDefaultizedProps, CommonSeriesType } from './common';
2
+ import { CartesianSeriesType, CommonDefaultizedProps, CommonSeriesType, SeriesId } from './common';
3
3
  export type ScatterValueType = {
4
4
  x: number;
5
5
  y: number;
6
+ /**
7
+ * A unique identifier for the scatter point
8
+ */
6
9
  id: string | number;
7
10
  };
8
11
  export interface ScatterSeriesType extends CommonSeriesType<ScatterValueType>, CartesianSeriesType {
@@ -17,7 +20,7 @@ export interface ScatterSeriesType extends CommonSeriesType<ScatterValueType>, C
17
20
  */
18
21
  export type ScatterItemIdentifier = {
19
22
  type: 'scatter';
20
- seriesId: DefaultizedScatterSeriesType['id'];
23
+ seriesId: SeriesId;
21
24
  dataIndex: number;
22
25
  };
23
26
  export interface DefaultizedScatterSeriesType extends DefaultizedProps<ScatterSeriesType, CommonDefaultizedProps | 'color'> {
@@ -128,7 +128,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
128
128
  * @default xAxisIds[0] The id of the first provided axis
129
129
  */
130
130
  bottomAxis: PropTypes.oneOfType([PropTypes.shape({
131
- axisId: PropTypes.string,
131
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
132
132
  classes: PropTypes.object,
133
133
  disableLine: PropTypes.bool,
134
134
  disableTicks: PropTypes.bool,
@@ -179,7 +179,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
179
179
  * @default yAxisIds[0] The id of the first provided axis
180
180
  */
181
181
  leftAxis: PropTypes.oneOfType([PropTypes.shape({
182
- axisId: PropTypes.string,
182
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
183
183
  classes: PropTypes.object,
184
184
  disableLine: PropTypes.bool,
185
185
  disableTicks: PropTypes.bool,
@@ -232,7 +232,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
232
232
  * @default null
233
233
  */
234
234
  rightAxis: PropTypes.oneOfType([PropTypes.shape({
235
- axisId: PropTypes.string,
235
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
236
236
  classes: PropTypes.object,
237
237
  disableLine: PropTypes.bool,
238
238
  disableTicks: PropTypes.bool,
@@ -261,7 +261,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
261
261
  faded: PropTypes.oneOf(['global', 'none', 'series']),
262
262
  highlighted: PropTypes.oneOf(['item', 'none', 'series'])
263
263
  }),
264
- id: PropTypes.string,
264
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
265
265
  label: PropTypes.string,
266
266
  layout: PropTypes.oneOf(['horizontal', 'vertical']),
267
267
  stack: PropTypes.string,
@@ -303,7 +303,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
303
303
  * @default null
304
304
  */
305
305
  topAxis: PropTypes.oneOfType([PropTypes.shape({
306
- axisId: PropTypes.string,
306
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
307
307
  classes: PropTypes.object,
308
308
  disableLine: PropTypes.bool,
309
309
  disableTicks: PropTypes.bool,
@@ -340,7 +340,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
340
340
  * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
341
341
  */
342
342
  xAxis: PropTypes.arrayOf(PropTypes.shape({
343
- axisId: PropTypes.string,
343
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
344
344
  classes: PropTypes.object,
345
345
  data: PropTypes.array,
346
346
  dataKey: PropTypes.string,
@@ -348,13 +348,14 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
348
348
  disableTicks: PropTypes.bool,
349
349
  fill: PropTypes.string,
350
350
  hideTooltip: PropTypes.bool,
351
- id: PropTypes.string,
351
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
352
352
  label: PropTypes.string,
353
353
  labelFontSize: PropTypes.number,
354
354
  labelStyle: PropTypes.object,
355
355
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
356
356
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
357
357
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
358
+ reverse: PropTypes.bool,
358
359
  scaleType: PropTypes.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
359
360
  slotProps: PropTypes.object,
360
361
  slots: PropTypes.object,
@@ -374,7 +375,7 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
374
375
  * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
375
376
  */
376
377
  yAxis: PropTypes.arrayOf(PropTypes.shape({
377
- axisId: PropTypes.string,
378
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
378
379
  classes: PropTypes.object,
379
380
  data: PropTypes.array,
380
381
  dataKey: PropTypes.string,
@@ -382,13 +383,14 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
382
383
  disableTicks: PropTypes.bool,
383
384
  fill: PropTypes.string,
384
385
  hideTooltip: PropTypes.bool,
385
- id: PropTypes.string,
386
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
386
387
  label: PropTypes.string,
387
388
  labelFontSize: PropTypes.number,
388
389
  labelStyle: PropTypes.object,
389
390
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
390
391
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
391
392
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
393
+ reverse: PropTypes.bool,
392
394
  scaleType: PropTypes.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
393
395
  slotProps: PropTypes.object,
394
396
  slots: PropTypes.object,
@@ -102,6 +102,7 @@ process.env.NODE_ENV !== "production" ? BarElement.propTypes = {
102
102
  faded: PropTypes.oneOf(['global', 'none', 'series']),
103
103
  highlighted: PropTypes.oneOf(['item', 'none', 'series'])
104
104
  }),
105
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
105
106
  /**
106
107
  * The props used for each component slot.
107
108
  * @default {}
@@ -9,7 +9,7 @@ import { CartesianContext } from '../context/CartesianContextProvider';
9
9
  import { BarElement } from './BarElement';
10
10
  import { isBandScaleConfig } from '../models/axis';
11
11
  import { DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY } from '../constants';
12
-
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
13
  /**
14
14
  * Solution of the equations
15
15
  * W = barWidth * N + offset * (N-1)
@@ -19,7 +19,6 @@ import { DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY } from '../constants';
19
19
  * @param gapRatio The ratio of the gap between bars over the bar width.
20
20
  * @returns The bar width and the offset between bars.
21
21
  */
22
- import { jsx as _jsx } from "react/jsx-runtime";
23
22
  function getBandSize({
24
23
  bandWidth: W,
25
24
  numberOfGroups: N,
@@ -101,20 +100,19 @@ const useCompletedData = () => {
101
100
  color
102
101
  } = series[seriesId];
103
102
  return stackedData.map((values, dataIndex) => {
104
- const bottom = Math.min(...values);
105
- const top = Math.max(...values);
103
+ const valueCoordinates = values.map(v => verticalLayout ? yScale(v) : xScale(v));
104
+ const minValueCoord = Math.min(...valueCoordinates);
105
+ const maxValueCoord = Math.max(...valueCoordinates);
106
106
  return {
107
- bottom,
108
- top,
109
107
  seriesId,
110
108
  dataIndex,
111
109
  layout: series[seriesId].layout,
112
- x: verticalLayout ? xScale(xAxis[xAxisKey].data?.[dataIndex]) + barOffset : xScale(bottom),
113
- y: verticalLayout ? yScale(top) : yScale(yAxis[yAxisKey].data?.[dataIndex]) + barOffset,
110
+ x: verticalLayout ? xScale(xAxis[xAxisKey].data?.[dataIndex]) + barOffset : minValueCoord,
111
+ y: verticalLayout ? minValueCoord : yScale(yAxis[yAxisKey].data?.[dataIndex]) + barOffset,
114
112
  xOrigin: xScale(0),
115
113
  yOrigin: yScale(0),
116
- height: verticalLayout ? Math.abs(yScale(bottom) - yScale(top)) : barWidth,
117
- width: verticalLayout ? barWidth : Math.abs(xScale(bottom) - xScale(top)),
114
+ height: verticalLayout ? maxValueCoord - minValueCoord : barWidth,
115
+ width: verticalLayout ? barWidth : maxValueCoord - minValueCoord,
118
116
  color,
119
117
  highlightScope: series[seriesId].highlightScope
120
118
  };
@@ -100,7 +100,7 @@ process.env.NODE_ENV !== "production" ? ChartsAxis.propTypes = {
100
100
  * @default xAxisIds[0] The id of the first provided axis
101
101
  */
102
102
  bottomAxis: PropTypes.oneOfType([PropTypes.shape({
103
- axisId: PropTypes.string,
103
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
104
104
  classes: PropTypes.object,
105
105
  disableLine: PropTypes.bool,
106
106
  disableTicks: PropTypes.bool,
@@ -127,7 +127,7 @@ process.env.NODE_ENV !== "production" ? ChartsAxis.propTypes = {
127
127
  * @default yAxisIds[0] The id of the first provided axis
128
128
  */
129
129
  leftAxis: PropTypes.oneOfType([PropTypes.shape({
130
- axisId: PropTypes.string,
130
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
131
131
  classes: PropTypes.object,
132
132
  disableLine: PropTypes.bool,
133
133
  disableTicks: PropTypes.bool,
@@ -154,7 +154,7 @@ process.env.NODE_ENV !== "production" ? ChartsAxis.propTypes = {
154
154
  * @default null
155
155
  */
156
156
  rightAxis: PropTypes.oneOfType([PropTypes.shape({
157
- axisId: PropTypes.string,
157
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
158
158
  classes: PropTypes.object,
159
159
  disableLine: PropTypes.bool,
160
160
  disableTicks: PropTypes.bool,
@@ -191,7 +191,7 @@ process.env.NODE_ENV !== "production" ? ChartsAxis.propTypes = {
191
191
  * @default null
192
192
  */
193
193
  topAxis: PropTypes.oneOfType([PropTypes.shape({
194
- axisId: PropTypes.string,
194
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
195
195
  classes: PropTypes.object,
196
196
  disableLine: PropTypes.bool,
197
197
  disableTicks: PropTypes.bool,
@@ -235,107 +235,6 @@ function DefaultChartsLegend(props) {
235
235
  })
236
236
  });
237
237
  }
238
- process.env.NODE_ENV !== "production" ? DefaultChartsLegend.propTypes = {
239
- // ----------------------------- Warning --------------------------------
240
- // | These PropTypes are generated from the TypeScript type definitions |
241
- // | To update them edit the TypeScript types and run "yarn proptypes" |
242
- // ----------------------------------------------------------------------
243
- /**
244
- * Override or extend the styles applied to the component.
245
- */
246
- classes: PropTypes.object.isRequired,
247
- /**
248
- * The direction of the legend layout.
249
- * The default depends on the chart.
250
- */
251
- direction: PropTypes.oneOf(['column', 'row']).isRequired,
252
- drawingArea: PropTypes.shape({
253
- bottom: PropTypes.number.isRequired,
254
- height: PropTypes.number.isRequired,
255
- left: PropTypes.number.isRequired,
256
- right: PropTypes.number.isRequired,
257
- top: PropTypes.number.isRequired,
258
- width: PropTypes.number.isRequired
259
- }).isRequired,
260
- /**
261
- * Set to true to hide the legend.
262
- * @default false
263
- */
264
- hidden: PropTypes.bool,
265
- /**
266
- * Space between two legend items (in px).
267
- * @default 10
268
- */
269
- itemGap: PropTypes.number,
270
- /**
271
- * Height of the item mark (in px).
272
- * @default 20
273
- */
274
- itemMarkHeight: PropTypes.number,
275
- /**
276
- * Width of the item mark (in px).
277
- * @default 20
278
- */
279
- itemMarkWidth: PropTypes.number,
280
- /**
281
- * Style applied to legend labels.
282
- * @default theme.typography.subtitle1
283
- */
284
- labelStyle: PropTypes.object,
285
- /**
286
- * Space between the mark and the label (in px).
287
- * @default 5
288
- */
289
- markGap: PropTypes.number,
290
- /**
291
- * Legend padding (in px).
292
- * Can either be a single number, or an object with top, left, bottom, right properties.
293
- * @default 0
294
- */
295
- padding: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
296
- bottom: PropTypes.number,
297
- left: PropTypes.number,
298
- right: PropTypes.number,
299
- top: PropTypes.number
300
- })]),
301
- position: PropTypes.shape({
302
- horizontal: PropTypes.oneOf(['left', 'middle', 'right']).isRequired,
303
- vertical: PropTypes.oneOf(['bottom', 'middle', 'top']).isRequired
304
- }).isRequired,
305
- series: PropTypes.shape({
306
- bar: PropTypes.shape({
307
- series: PropTypes.object.isRequired,
308
- seriesOrder: PropTypes.arrayOf(PropTypes.string).isRequired,
309
- stackingGroups: PropTypes.arrayOf(PropTypes.shape({
310
- ids: PropTypes.arrayOf(PropTypes.string).isRequired,
311
- stackingOffset: PropTypes.func.isRequired,
312
- stackingOrder: PropTypes.func.isRequired
313
- })).isRequired
314
- }),
315
- line: PropTypes.shape({
316
- series: PropTypes.object.isRequired,
317
- seriesOrder: PropTypes.arrayOf(PropTypes.string).isRequired,
318
- stackingGroups: PropTypes.arrayOf(PropTypes.shape({
319
- ids: PropTypes.arrayOf(PropTypes.string).isRequired,
320
- stackingOffset: PropTypes.func.isRequired,
321
- stackingOrder: PropTypes.func.isRequired
322
- })).isRequired
323
- }),
324
- pie: PropTypes.shape({
325
- series: PropTypes.object.isRequired,
326
- seriesOrder: PropTypes.arrayOf(PropTypes.string).isRequired
327
- }),
328
- scatter: PropTypes.shape({
329
- series: PropTypes.object.isRequired,
330
- seriesOrder: PropTypes.arrayOf(PropTypes.string).isRequired
331
- })
332
- }).isRequired,
333
- seriesToDisplay: PropTypes.arrayOf(PropTypes.shape({
334
- color: PropTypes.string.isRequired,
335
- id: PropTypes.string.isRequired,
336
- label: PropTypes.string.isRequired
337
- })).isRequired
338
- } : void 0;
339
238
  function ChartsLegend(inProps) {
340
239
  const props = useThemeProps({
341
240
  props: _extends({}, defaultProps, inProps),
@@ -29,7 +29,7 @@ process.env.NODE_ENV !== "production" ? ChartsReferenceLine.propTypes = {
29
29
  * The id of the axis used for the reference value.
30
30
  * @default The `id` of the first defined axis.
31
31
  */
32
- axisId: PropTypes.string,
32
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
33
33
  /**
34
34
  * Override or extend the styles applied to the component.
35
35
  */
@@ -66,11 +66,11 @@ process.env.NODE_ENV !== "production" ? ChartsAxisTooltipContent.propTypes = {
66
66
  axisData: PropTypes.shape({
67
67
  x: PropTypes.shape({
68
68
  index: PropTypes.number,
69
- value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired
69
+ value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired
70
70
  }),
71
71
  y: PropTypes.shape({
72
72
  index: PropTypes.number,
73
- value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired
73
+ value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired
74
74
  })
75
75
  }).isRequired,
76
76
  classes: PropTypes.object.isRequired,
@@ -80,11 +80,11 @@ process.env.NODE_ENV !== "production" ? ChartsAxisTooltipContent.propTypes = {
80
80
  axisData: PropTypes.shape({
81
81
  x: PropTypes.shape({
82
82
  index: PropTypes.number,
83
- value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired
83
+ value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired
84
84
  }),
85
85
  y: PropTypes.shape({
86
86
  index: PropTypes.number,
87
- value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired
87
+ value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired
88
88
  })
89
89
  }),
90
90
  axisValue: PropTypes.any,
@@ -39,7 +39,7 @@ process.env.NODE_ENV !== "production" ? ChartsItemTooltipContent.propTypes = {
39
39
  classes: PropTypes.object,
40
40
  itemData: PropTypes.shape({
41
41
  dataIndex: PropTypes.number,
42
- seriesId: PropTypes.string.isRequired,
42
+ seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
43
43
  type: PropTypes.oneOf(['bar', 'line', 'pie', 'scatter']).isRequired
44
44
  }),
45
45
  series: PropTypes.shape({
@@ -63,7 +63,7 @@ process.env.NODE_ENV !== "production" ? ChartsItemTooltipContent.propTypes = {
63
63
  faded: PropTypes.oneOf(['global', 'none', 'series']),
64
64
  highlighted: PropTypes.oneOf(['item', 'none', 'series'])
65
65
  }),
66
- id: PropTypes.string.isRequired,
66
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
67
67
  type: PropTypes.oneOf(['bar', 'line', 'pie', 'scatter']).isRequired,
68
68
  valueFormatter: PropTypes.func.isRequired
69
69
  }),
@@ -71,7 +71,7 @@ process.env.NODE_ENV !== "production" ? ChartsItemTooltipContent.propTypes = {
71
71
  }),
72
72
  itemData: PropTypes.shape({
73
73
  dataIndex: PropTypes.number,
74
- seriesId: PropTypes.string.isRequired,
74
+ seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
75
75
  type: PropTypes.oneOf(['bar', 'line', 'pie', 'scatter']).isRequired
76
76
  }).isRequired,
77
77
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
@@ -87,11 +87,11 @@ process.env.NODE_ENV !== "production" ? DefaultChartsAxisTooltipContent.propType
87
87
  axisData: PropTypes.shape({
88
88
  x: PropTypes.shape({
89
89
  index: PropTypes.number,
90
- value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired
90
+ value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired
91
91
  }),
92
92
  y: PropTypes.shape({
93
93
  index: PropTypes.number,
94
- value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired
94
+ value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired
95
95
  })
96
96
  }).isRequired,
97
97
  /**
@@ -70,7 +70,7 @@ process.env.NODE_ENV !== "production" ? DefaultChartsItemTooltipContent.propType
70
70
  */
71
71
  itemData: PropTypes.shape({
72
72
  dataIndex: PropTypes.number,
73
- seriesId: PropTypes.string.isRequired,
73
+ seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
74
74
  type: PropTypes.oneOf(['bar', 'line', 'pie', 'scatter']).isRequired
75
75
  }).isRequired,
76
76
  /**
@@ -97,7 +97,7 @@ process.env.NODE_ENV !== "production" ? DefaultChartsItemTooltipContent.propType
97
97
  faded: PropTypes.oneOf(['global', 'none', 'series']),
98
98
  highlighted: PropTypes.oneOf(['item', 'none', 'series'])
99
99
  }),
100
- id: PropTypes.string.isRequired,
100
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
101
101
  type: PropTypes.oneOf(['bar', 'line', 'pie', 'scatter']).isRequired,
102
102
  valueFormatter: PropTypes.func.isRequired
103
103
  }).isRequired,