@mui/x-charts 6.19.1 → 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 (172) hide show
  1. package/BarChart/BarChart.js +12 -9
  2. package/BarChart/BarElement.d.ts +43 -23
  3. package/BarChart/BarElement.js +1 -0
  4. package/BarChart/BarPlot.js +9 -10
  5. package/CHANGELOG.md +140 -0
  6. package/ChartsAxis/ChartsAxis.js +4 -4
  7. package/ChartsLegend/ChartsLegend.d.ts +5 -2
  8. package/ChartsLegend/ChartsLegend.js +36 -1
  9. package/ChartsReferenceLine/ChartsReferenceLine.js +8 -4
  10. package/ChartsReferenceLine/common.d.ts +2 -1
  11. package/ChartsSurface.d.ts +2 -2
  12. package/ChartsSurface.js +33 -1
  13. package/ChartsTooltip/ChartsAxisTooltipContent.js +6 -58
  14. package/ChartsTooltip/ChartsItemTooltipContent.js +18 -4
  15. package/ChartsTooltip/ChartsTooltipTable.d.ts +1 -1
  16. package/ChartsTooltip/ChartsTooltipTable.js +2 -0
  17. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +4 -56
  18. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +17 -3
  19. package/ChartsXAxis/ChartsXAxis.js +13 -9
  20. package/ChartsYAxis/ChartsYAxis.js +1 -1
  21. package/LineChart/AreaElement.d.ts +7 -4
  22. package/LineChart/AreaElement.js +1 -0
  23. package/LineChart/LineChart.d.ts +1 -0
  24. package/LineChart/LineChart.js +13 -9
  25. package/LineChart/LineElement.d.ts +7 -4
  26. package/LineChart/LineElement.js +1 -0
  27. package/LineChart/LineHighlightElement.d.ts +3 -2
  28. package/LineChart/LineHighlightElement.js +2 -1
  29. package/LineChart/MarkElement.d.ts +3 -2
  30. package/LineChart/MarkElement.js +1 -0
  31. package/PieChart/PieArc.d.ts +3 -2
  32. package/PieChart/PieArc.js +1 -0
  33. package/PieChart/PieArcLabel.d.ts +3 -2
  34. package/PieChart/PieArcLabel.js +1 -0
  35. package/PieChart/PieArcLabelPlot.d.ts +5 -0
  36. package/PieChart/PieArcLabelPlot.js +3 -1
  37. package/PieChart/PieArcPlot.d.ts +5 -0
  38. package/PieChart/PieArcPlot.js +2 -1
  39. package/PieChart/PieChart.d.ts +14 -2
  40. package/PieChart/PieChart.js +14 -11
  41. package/ScatterChart/Scatter.js +1 -1
  42. package/ScatterChart/ScatterChart.js +12 -9
  43. package/SparkLineChart/SparkLineChart.d.ts +15 -1
  44. package/SparkLineChart/SparkLineChart.js +11 -3
  45. package/context/CartesianContextProvider.d.ts +1 -1
  46. package/context/CartesianContextProvider.js +15 -12
  47. package/context/DrawingProvider.d.ts +1 -1
  48. package/context/DrawingProvider.js +8 -7
  49. package/context/HighlightProvider.d.ts +2 -2
  50. package/context/HighlightProvider.js +4 -3
  51. package/context/InteractionProvider.d.ts +4 -4
  52. package/context/InteractionProvider.js +4 -3
  53. package/context/SeriesContextProvider.d.ts +3 -1
  54. package/context/SeriesContextProvider.js +7 -6
  55. package/esm/BarChart/BarChart.js +12 -9
  56. package/esm/BarChart/BarElement.js +1 -0
  57. package/esm/BarChart/BarPlot.js +8 -10
  58. package/esm/ChartsAxis/ChartsAxis.js +4 -4
  59. package/esm/ChartsLegend/ChartsLegend.js +38 -2
  60. package/esm/ChartsReferenceLine/ChartsReferenceLine.js +8 -4
  61. package/esm/ChartsSurface.js +35 -2
  62. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +6 -58
  63. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +18 -4
  64. package/esm/ChartsTooltip/ChartsTooltipTable.js +2 -0
  65. package/esm/ChartsTooltip/DefaultChartsAxisTooltipContent.js +4 -56
  66. package/esm/ChartsTooltip/DefaultChartsItemTooltipContent.js +17 -3
  67. package/esm/ChartsXAxis/ChartsXAxis.js +13 -9
  68. package/esm/ChartsYAxis/ChartsYAxis.js +1 -1
  69. package/esm/LineChart/AreaElement.js +1 -0
  70. package/esm/LineChart/LineChart.js +13 -9
  71. package/esm/LineChart/LineElement.js +1 -0
  72. package/esm/LineChart/LineHighlightElement.js +2 -1
  73. package/esm/LineChart/MarkElement.js +1 -0
  74. package/esm/PieChart/PieArc.js +1 -0
  75. package/esm/PieChart/PieArcLabel.js +1 -0
  76. package/esm/PieChart/PieArcLabelPlot.js +3 -1
  77. package/esm/PieChart/PieArcPlot.js +2 -1
  78. package/esm/PieChart/PieChart.js +14 -11
  79. package/esm/ScatterChart/Scatter.js +1 -1
  80. package/esm/ScatterChart/ScatterChart.js +12 -9
  81. package/esm/SparkLineChart/SparkLineChart.js +11 -3
  82. package/esm/context/CartesianContextProvider.js +15 -12
  83. package/esm/context/DrawingProvider.js +8 -7
  84. package/esm/context/HighlightProvider.js +6 -4
  85. package/esm/context/InteractionProvider.js +6 -4
  86. package/esm/context/SeriesContextProvider.js +9 -7
  87. package/esm/hooks/useDrawingArea.js +7 -3
  88. package/esm/index.js +2 -0
  89. package/hooks/useDrawingArea.d.ts +2 -0
  90. package/hooks/useDrawingArea.js +7 -3
  91. package/index.d.ts +2 -0
  92. package/index.js +23 -1
  93. package/internals/defaultizeColor.d.ts +15 -15
  94. package/internals/defaultizeValueFormatter.d.ts +4 -7
  95. package/internals/stackSeries.d.ts +4 -7
  96. package/legacy/BarChart/BarChart.js +12 -9
  97. package/legacy/BarChart/BarElement.js +1 -0
  98. package/legacy/BarChart/BarPlot.js +10 -10
  99. package/legacy/ChartsAxis/ChartsAxis.js +4 -4
  100. package/legacy/ChartsLegend/ChartsLegend.js +38 -2
  101. package/legacy/ChartsReferenceLine/ChartsReferenceLine.js +6 -4
  102. package/legacy/ChartsReferenceLine/common.js +3 -4
  103. package/legacy/ChartsSurface.js +35 -2
  104. package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +6 -58
  105. package/legacy/ChartsTooltip/ChartsItemTooltipContent.js +18 -4
  106. package/legacy/ChartsTooltip/ChartsTooltipTable.js +8 -7
  107. package/legacy/ChartsTooltip/DefaultChartsAxisTooltipContent.js +4 -56
  108. package/legacy/ChartsTooltip/DefaultChartsItemTooltipContent.js +17 -3
  109. package/legacy/ChartsXAxis/ChartsXAxis.js +12 -8
  110. package/legacy/ChartsYAxis/ChartsYAxis.js +1 -1
  111. package/legacy/LineChart/AreaElement.js +1 -0
  112. package/legacy/LineChart/LineChart.js +13 -9
  113. package/legacy/LineChart/LineElement.js +1 -0
  114. package/legacy/LineChart/LineHighlightElement.js +2 -1
  115. package/legacy/LineChart/MarkElement.js +1 -0
  116. package/legacy/PieChart/PieArc.js +1 -0
  117. package/legacy/PieChart/PieArcLabel.js +1 -0
  118. package/legacy/PieChart/PieArcLabelPlot.js +3 -1
  119. package/legacy/PieChart/PieArcPlot.js +2 -1
  120. package/legacy/PieChart/PieChart.js +14 -11
  121. package/legacy/ScatterChart/Scatter.js +1 -1
  122. package/legacy/ScatterChart/ScatterChart.js +12 -9
  123. package/legacy/SparkLineChart/SparkLineChart.js +11 -3
  124. package/legacy/context/CartesianContextProvider.js +23 -21
  125. package/legacy/context/DrawingProvider.js +6 -6
  126. package/legacy/context/HighlightProvider.js +4 -3
  127. package/legacy/context/InteractionProvider.js +4 -3
  128. package/legacy/context/SeriesContextProvider.js +8 -7
  129. package/legacy/hooks/useDrawingArea.js +7 -3
  130. package/legacy/index.js +3 -1
  131. package/legacy/internals/components/AxisSharedComponents.js +5 -6
  132. package/models/axis.d.ts +7 -2
  133. package/models/seriesType/common.d.ts +2 -1
  134. package/models/seriesType/config.d.ts +7 -12
  135. package/models/seriesType/line.d.ts +2 -2
  136. package/models/seriesType/pie.d.ts +8 -3
  137. package/models/seriesType/scatter.d.ts +5 -2
  138. package/modern/BarChart/BarChart.js +12 -9
  139. package/modern/BarChart/BarElement.js +1 -0
  140. package/modern/BarChart/BarPlot.js +8 -10
  141. package/modern/ChartsAxis/ChartsAxis.js +4 -4
  142. package/modern/ChartsLegend/ChartsLegend.js +38 -2
  143. package/modern/ChartsReferenceLine/ChartsReferenceLine.js +8 -4
  144. package/modern/ChartsSurface.js +35 -2
  145. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +6 -58
  146. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +18 -4
  147. package/modern/ChartsTooltip/ChartsTooltipTable.js +2 -0
  148. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +4 -56
  149. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +17 -3
  150. package/modern/ChartsXAxis/ChartsXAxis.js +13 -9
  151. package/modern/ChartsYAxis/ChartsYAxis.js +1 -1
  152. package/modern/LineChart/AreaElement.js +1 -0
  153. package/modern/LineChart/LineChart.js +13 -9
  154. package/modern/LineChart/LineElement.js +1 -0
  155. package/modern/LineChart/LineHighlightElement.js +2 -1
  156. package/modern/LineChart/MarkElement.js +1 -0
  157. package/modern/PieChart/PieArc.js +1 -0
  158. package/modern/PieChart/PieArcLabel.js +1 -0
  159. package/modern/PieChart/PieArcLabelPlot.js +3 -1
  160. package/modern/PieChart/PieArcPlot.js +2 -1
  161. package/modern/PieChart/PieChart.js +14 -11
  162. package/modern/ScatterChart/Scatter.js +1 -1
  163. package/modern/ScatterChart/ScatterChart.js +12 -9
  164. package/modern/SparkLineChart/SparkLineChart.js +11 -3
  165. package/modern/context/CartesianContextProvider.js +15 -12
  166. package/modern/context/DrawingProvider.js +8 -7
  167. package/modern/context/HighlightProvider.js +6 -4
  168. package/modern/context/InteractionProvider.js +6 -4
  169. package/modern/context/SeriesContextProvider.js +9 -7
  170. package/modern/hooks/useDrawingArea.js +7 -3
  171. package/modern/index.js +3 -1
  172. package/package.json +1 -1
@@ -3,6 +3,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  const _excluded = ["rotate", "dominantBaseline"],
4
4
  _excluded2 = ["label"];
5
5
  import * as React from 'react';
6
+ import PropTypes from 'prop-types';
6
7
  import { useSlotProps } from '@mui/base/utils';
7
8
  import { NoSsr } from '@mui/base/NoSsr';
8
9
  import { unstable_composeClasses as composeClasses } from '@mui/utils';
@@ -234,7 +235,7 @@ function DefaultChartsLegend(props) {
234
235
  })
235
236
  });
236
237
  }
237
- export function ChartsLegend(inProps) {
238
+ function ChartsLegend(inProps) {
238
239
  const props = useThemeProps({
239
240
  props: _extends({}, defaultProps, inProps),
240
241
  name: 'MuiChartsLegend'
@@ -269,4 +270,39 @@ export function ChartsLegend(inProps) {
269
270
  ownerState: {}
270
271
  });
271
272
  return /*#__PURE__*/_jsx(ChartLegendRender, _extends({}, chartLegendRenderProps));
272
- }
273
+ }
274
+ process.env.NODE_ENV !== "production" ? ChartsLegend.propTypes = {
275
+ // ----------------------------- Warning --------------------------------
276
+ // | These PropTypes are generated from the TypeScript type definitions |
277
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
278
+ // ----------------------------------------------------------------------
279
+ /**
280
+ * Override or extend the styles applied to the component.
281
+ */
282
+ classes: PropTypes.object,
283
+ /**
284
+ * The direction of the legend layout.
285
+ * The default depends on the chart.
286
+ */
287
+ direction: PropTypes.oneOf(['column', 'row']),
288
+ /**
289
+ * Set to true to hide the legend.
290
+ * @default false
291
+ */
292
+ hidden: PropTypes.bool,
293
+ position: PropTypes.shape({
294
+ horizontal: PropTypes.oneOf(['left', 'middle', 'right']).isRequired,
295
+ vertical: PropTypes.oneOf(['bottom', 'middle', 'top']).isRequired
296
+ }),
297
+ /**
298
+ * The props used for each component slot.
299
+ * @default {}
300
+ */
301
+ slotProps: PropTypes.object,
302
+ /**
303
+ * Overridable component slots.
304
+ * @default {}
305
+ */
306
+ slots: PropTypes.object
307
+ } : void 0;
308
+ export { ChartsLegend };
@@ -5,13 +5,17 @@ import { ChartsXReferenceLine } from './ChartsXReferenceLine';
5
5
  import { ChartsYReferenceLine } from './ChartsYReferenceLine';
6
6
  import { jsx as _jsx } from "react/jsx-runtime";
7
7
  function ChartsReferenceLine(props) {
8
- if (props.x !== undefined && props.y !== undefined) {
8
+ const {
9
+ x,
10
+ y
11
+ } = props;
12
+ if (x !== undefined && y !== undefined) {
9
13
  throw new Error('MUI-X-Charts: The ChartsReferenceLine can not have both `x` and `y` props set.');
10
14
  }
11
- if (props.x === undefined && props.y === undefined) {
15
+ if (x === undefined && y === undefined) {
12
16
  throw new Error('MUI-X-Charts: The ChartsReferenceLine should have a value in `x` or `y` prop.');
13
17
  }
14
- if (props.x !== undefined) {
18
+ if (x !== undefined) {
15
19
  return /*#__PURE__*/_jsx(ChartsXReferenceLine, _extends({}, props));
16
20
  }
17
21
  return /*#__PURE__*/_jsx(ChartsYReferenceLine, _extends({}, props));
@@ -25,7 +29,7 @@ process.env.NODE_ENV !== "production" ? ChartsReferenceLine.propTypes = {
25
29
  * The id of the axis used for the reference value.
26
30
  * @default The `id` of the first defined axis.
27
31
  */
28
- axisId: PropTypes.string,
32
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
29
33
  /**
30
34
  * Override or extend the styles applied to the component.
31
35
  */
@@ -2,6 +2,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  const _excluded = ["children", "width", "height", "viewBox", "disableAxisListener", "className"];
4
4
  import { styled } from '@mui/material/styles';
5
+ import PropTypes from 'prop-types';
5
6
  import * as React from 'react';
6
7
  import { useAxisEvents } from './hooks/useAxisEvents';
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -10,7 +11,7 @@ const ChartChartsSurfaceStyles = styled('svg', {
10
11
  name: 'MuiChartsSurface',
11
12
  slot: 'Root'
12
13
  })(() => ({}));
13
- export const ChartsSurface = /*#__PURE__*/React.forwardRef(function ChartsSurface(props, ref) {
14
+ const ChartsSurface = /*#__PURE__*/React.forwardRef(function ChartsSurface(props, ref) {
14
15
  const {
15
16
  children,
16
17
  width,
@@ -38,4 +39,36 @@ export const ChartsSurface = /*#__PURE__*/React.forwardRef(function ChartsSurfac
38
39
  children: props.desc
39
40
  }), children]
40
41
  }));
41
- });
42
+ });
43
+ process.env.NODE_ENV !== "production" ? ChartsSurface.propTypes = {
44
+ // ----------------------------- Warning --------------------------------
45
+ // | These PropTypes are generated from the TypeScript type definitions |
46
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
47
+ // ----------------------------------------------------------------------
48
+ children: PropTypes.node,
49
+ className: PropTypes.string,
50
+ desc: PropTypes.string,
51
+ /**
52
+ * If `true`, the charts will not listen to the mouse move event.
53
+ * It might break interactive features, but will improve performance.
54
+ * @default false
55
+ */
56
+ disableAxisListener: PropTypes.bool,
57
+ /**
58
+ * The height of the chart in px.
59
+ */
60
+ height: PropTypes.number.isRequired,
61
+ sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
62
+ title: PropTypes.string,
63
+ viewBox: PropTypes.shape({
64
+ height: PropTypes.number,
65
+ width: PropTypes.number,
66
+ x: PropTypes.number,
67
+ y: PropTypes.number
68
+ }),
69
+ /**
70
+ * The width of the chart in px.
71
+ */
72
+ width: PropTypes.number.isRequired
73
+ } : void 0;
74
+ export { ChartsSurface };
@@ -66,83 +66,31 @@ 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,
77
77
  content: PropTypes.elementType,
78
78
  contentProps: PropTypes.shape({
79
- axis: PropTypes.shape({
80
- axisId: PropTypes.string,
81
- classes: PropTypes.object,
82
- data: PropTypes.array,
83
- dataKey: PropTypes.string,
84
- disableLine: PropTypes.bool,
85
- disableTicks: PropTypes.bool,
86
- fill: PropTypes.string,
87
- hideTooltip: PropTypes.bool,
88
- id: PropTypes.string.isRequired,
89
- label: PropTypes.string,
90
- labelFontSize: PropTypes.number,
91
- labelStyle: PropTypes.object,
92
- max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
93
- min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
94
- position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
95
- scale: PropTypes.func.isRequired,
96
- scaleType: PropTypes.oneOf(['time']).isRequired,
97
- slotProps: PropTypes.object,
98
- slots: PropTypes.object,
99
- stroke: PropTypes.string,
100
- tickFontSize: PropTypes.number,
101
- tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
102
- tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
103
- tickLabelStyle: PropTypes.object,
104
- tickMaxStep: PropTypes.number,
105
- tickMinStep: PropTypes.number,
106
- tickNumber: PropTypes.number.isRequired,
107
- tickSize: PropTypes.number,
108
- valueFormatter: PropTypes.func
109
- }),
79
+ axis: PropTypes.object,
110
80
  axisData: PropTypes.shape({
111
81
  x: PropTypes.shape({
112
82
  index: PropTypes.number,
113
- value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired
83
+ value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired
114
84
  }),
115
85
  y: PropTypes.shape({
116
86
  index: PropTypes.number,
117
- value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired
87
+ value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired
118
88
  })
119
89
  }),
120
90
  axisValue: PropTypes.any,
121
91
  classes: PropTypes.object,
122
92
  dataIndex: PropTypes.number,
123
- series: PropTypes.arrayOf(PropTypes.shape({
124
- area: PropTypes.bool,
125
- color: PropTypes.string.isRequired,
126
- connectNulls: PropTypes.bool,
127
- curve: PropTypes.oneOf(['catmullRom', 'linear', 'monotoneX', 'monotoneY', 'natural', 'step', 'stepAfter', 'stepBefore']),
128
- data: PropTypes.arrayOf(PropTypes.number).isRequired,
129
- dataKey: PropTypes.string,
130
- disableHighlight: PropTypes.bool,
131
- highlightScope: PropTypes.shape({
132
- faded: PropTypes.oneOf(['global', 'none', 'series']),
133
- highlighted: PropTypes.oneOf(['item', 'none', 'series'])
134
- }),
135
- id: PropTypes.string.isRequired,
136
- label: PropTypes.string,
137
- showMark: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),
138
- stack: PropTypes.string,
139
- stackOffset: PropTypes.oneOf(['diverging', 'expand', 'none', 'silhouette', 'wiggle']),
140
- stackOrder: PropTypes.oneOf(['appearance', 'ascending', 'descending', 'insideOut', 'none', 'reverse']),
141
- type: PropTypes.oneOf(['line']).isRequired,
142
- valueFormatter: PropTypes.func.isRequired,
143
- xAxisKey: PropTypes.string,
144
- yAxisKey: PropTypes.string
145
- })),
93
+ series: PropTypes.arrayOf(PropTypes.object),
146
94
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
147
95
  }),
148
96
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
@@ -39,17 +39,31 @@ 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({
46
46
  color: PropTypes.string,
47
- data: PropTypes.arrayOf(PropTypes.number).isRequired,
47
+ data: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.arrayOf(PropTypes.number), PropTypes.arrayOf(PropTypes.shape({
48
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
49
+ x: PropTypes.number.isRequired,
50
+ y: PropTypes.number.isRequired
51
+ })), PropTypes.arrayOf(PropTypes.shape({
52
+ color: PropTypes.string.isRequired,
53
+ endAngle: PropTypes.number.isRequired,
54
+ formattedValue: PropTypes.string.isRequired,
55
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
56
+ index: PropTypes.number.isRequired,
57
+ label: PropTypes.string,
58
+ padAngle: PropTypes.number.isRequired,
59
+ startAngle: PropTypes.number.isRequired,
60
+ value: PropTypes.number.isRequired
61
+ }))]).isRequired,
48
62
  highlightScope: PropTypes.shape({
49
63
  faded: PropTypes.oneOf(['global', 'none', 'series']),
50
64
  highlighted: PropTypes.oneOf(['item', 'none', 'series'])
51
65
  }),
52
- id: PropTypes.string.isRequired,
66
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
53
67
  type: PropTypes.oneOf(['bar', 'line', 'pie', 'scatter']).isRequired,
54
68
  valueFormatter: PropTypes.func.isRequired
55
69
  }),
@@ -57,7 +71,7 @@ process.env.NODE_ENV !== "production" ? ChartsItemTooltipContent.propTypes = {
57
71
  }),
58
72
  itemData: PropTypes.shape({
59
73
  dataIndex: PropTypes.number,
60
- seriesId: PropTypes.string.isRequired,
74
+ seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
61
75
  type: PropTypes.oneOf(['bar', 'line', 'pie', 'scatter']).isRequired
62
76
  }).isRequired,
63
77
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
@@ -59,6 +59,8 @@ export const ChartsTooltipCell = styled('td', {
59
59
  paddingRight: theme.spacing(2)
60
60
  }
61
61
  }));
62
+
63
+ // eslint-disable-next-line material-ui/no-styled-box
62
64
  export const ChartsTooltipMark = styled(Box, {
63
65
  name: 'MuiChartsTooltip',
64
66
  slot: 'Mark'
@@ -80,48 +80,18 @@ process.env.NODE_ENV !== "production" ? DefaultChartsAxisTooltipContent.propType
80
80
  /**
81
81
  * The properties of the triggered axis.
82
82
  */
83
- axis: PropTypes.shape({
84
- axisId: PropTypes.string,
85
- classes: PropTypes.object,
86
- data: PropTypes.array,
87
- dataKey: PropTypes.string,
88
- disableLine: PropTypes.bool,
89
- disableTicks: PropTypes.bool,
90
- fill: PropTypes.string,
91
- hideTooltip: PropTypes.bool,
92
- id: PropTypes.string.isRequired,
93
- label: PropTypes.string,
94
- labelFontSize: PropTypes.number,
95
- labelStyle: PropTypes.object,
96
- max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
97
- min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
98
- position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
99
- scale: PropTypes.func.isRequired,
100
- scaleType: PropTypes.oneOf(['time']).isRequired,
101
- slotProps: PropTypes.object,
102
- slots: PropTypes.object,
103
- stroke: PropTypes.string,
104
- tickFontSize: PropTypes.number,
105
- tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
106
- tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
107
- tickLabelStyle: PropTypes.object,
108
- tickMaxStep: PropTypes.number,
109
- tickMinStep: PropTypes.number,
110
- tickNumber: PropTypes.number.isRequired,
111
- tickSize: PropTypes.number,
112
- valueFormatter: PropTypes.func
113
- }).isRequired,
83
+ axis: PropTypes.object.isRequired,
114
84
  /**
115
85
  * Data identifying the triggered axis.
116
86
  */
117
87
  axisData: PropTypes.shape({
118
88
  x: PropTypes.shape({
119
89
  index: PropTypes.number,
120
- value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired
90
+ value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired
121
91
  }),
122
92
  y: PropTypes.shape({
123
93
  index: PropTypes.number,
124
- value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired
94
+ value: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired
125
95
  })
126
96
  }).isRequired,
127
97
  /**
@@ -139,29 +109,7 @@ process.env.NODE_ENV !== "production" ? DefaultChartsAxisTooltipContent.propType
139
109
  /**
140
110
  * The series linked to the triggered axis.
141
111
  */
142
- series: PropTypes.arrayOf(PropTypes.shape({
143
- area: PropTypes.bool,
144
- color: PropTypes.string.isRequired,
145
- connectNulls: PropTypes.bool,
146
- curve: PropTypes.oneOf(['catmullRom', 'linear', 'monotoneX', 'monotoneY', 'natural', 'step', 'stepAfter', 'stepBefore']),
147
- data: PropTypes.arrayOf(PropTypes.number).isRequired,
148
- dataKey: PropTypes.string,
149
- disableHighlight: PropTypes.bool,
150
- highlightScope: PropTypes.shape({
151
- faded: PropTypes.oneOf(['global', 'none', 'series']),
152
- highlighted: PropTypes.oneOf(['item', 'none', 'series'])
153
- }),
154
- id: PropTypes.string.isRequired,
155
- label: PropTypes.string,
156
- showMark: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),
157
- stack: PropTypes.string,
158
- stackOffset: PropTypes.oneOf(['diverging', 'expand', 'none', 'silhouette', 'wiggle']),
159
- stackOrder: PropTypes.oneOf(['appearance', 'ascending', 'descending', 'insideOut', 'none', 'reverse']),
160
- type: PropTypes.oneOf(['line']).isRequired,
161
- valueFormatter: PropTypes.func.isRequired,
162
- xAxisKey: PropTypes.string,
163
- yAxisKey: PropTypes.string
164
- })).isRequired,
112
+ series: PropTypes.arrayOf(PropTypes.object).isRequired,
165
113
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
166
114
  } : void 0;
167
115
  export { DefaultChartsAxisTooltipContent };
@@ -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
  /**
@@ -78,12 +78,26 @@ process.env.NODE_ENV !== "production" ? DefaultChartsItemTooltipContent.propType
78
78
  */
79
79
  series: PropTypes.shape({
80
80
  color: PropTypes.string,
81
- data: PropTypes.arrayOf(PropTypes.number).isRequired,
81
+ data: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.arrayOf(PropTypes.number), PropTypes.arrayOf(PropTypes.shape({
82
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
83
+ x: PropTypes.number.isRequired,
84
+ y: PropTypes.number.isRequired
85
+ })), PropTypes.arrayOf(PropTypes.shape({
86
+ color: PropTypes.string.isRequired,
87
+ endAngle: PropTypes.number.isRequired,
88
+ formattedValue: PropTypes.string.isRequired,
89
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
90
+ index: PropTypes.number.isRequired,
91
+ label: PropTypes.string,
92
+ padAngle: PropTypes.number.isRequired,
93
+ startAngle: PropTypes.number.isRequired,
94
+ value: PropTypes.number.isRequired
95
+ }))]).isRequired,
82
96
  highlightScope: PropTypes.shape({
83
97
  faded: PropTypes.oneOf(['global', 'none', 'series']),
84
98
  highlighted: PropTypes.oneOf(['item', 'none', 'series'])
85
99
  }),
86
- id: PropTypes.string.isRequired,
100
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
87
101
  type: PropTypes.oneOf(['bar', 'line', 'pie', 'scatter']).isRequired,
88
102
  valueFormatter: PropTypes.func.isRequired
89
103
  }).isRequired,
@@ -1,6 +1,6 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["scale", "tickNumber"];
3
+ const _excluded = ["scale", "tickNumber", "reverse"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import { useSlotProps } from '@mui/base/utils';
@@ -35,6 +35,7 @@ const useUtilityClasses = ownerState => {
35
35
  function addLabelDimension(xTicks, {
36
36
  tickLabelStyle: style,
37
37
  tickLabelInterval,
38
+ reverse,
38
39
  isMounted
39
40
  }) {
40
41
  const withDimension = xTicks.map(tick => {
@@ -61,8 +62,9 @@ function addLabelDimension(xTicks, {
61
62
  }
62
63
 
63
64
  // Filter label to avoid overlap
64
- let textStart = 0;
65
- let textEnd = 0;
65
+ let currentTextLimit = 0;
66
+ let previouseTextLimit = 0;
67
+ const direction = reverse ? -1 : 1;
66
68
  return withDimension.map((item, labelIndex) => {
67
69
  const {
68
70
  width,
@@ -74,15 +76,15 @@ function addLabelDimension(xTicks, {
74
76
  const textPosition = offset + labelOffset;
75
77
  const gapRatio = 1.2; // Ratio applied to the minimal distance to add some margin.
76
78
 
77
- textStart = textPosition - gapRatio * distance / 2;
78
- if (labelIndex > 0 && textStart < textEnd) {
79
+ currentTextLimit = textPosition - direction * (gapRatio * distance) / 2;
80
+ if (labelIndex > 0 && direction * currentTextLimit < direction * previouseTextLimit) {
79
81
  // Except for the first label, we skip all label that overlap with the last accepted.
80
- // Notice that the early return prevents `textEnd` from being updated.
82
+ // Notice that the early return prevents `previouseTextLimit` from being updated.
81
83
  return _extends({}, item, {
82
84
  skipLabel: true
83
85
  });
84
86
  }
85
- textEnd = textPosition + gapRatio * distance / 2;
87
+ previouseTextLimit = textPosition + direction * (gapRatio * distance) / 2;
86
88
  return item;
87
89
  });
88
90
  }
@@ -116,7 +118,8 @@ function ChartsXAxis(inProps) {
116
118
  xAxis: {
117
119
  [_ref]: {
118
120
  scale: xScale,
119
- tickNumber
121
+ tickNumber,
122
+ reverse
120
123
  }
121
124
  }
122
125
  } = _React$useContext,
@@ -178,6 +181,7 @@ function ChartsXAxis(inProps) {
178
181
  const xTicksWithDimension = addLabelDimension(xTicks, {
179
182
  tickLabelStyle: axisTickLabelProps.style,
180
183
  tickLabelInterval,
184
+ reverse,
181
185
  isMounted
182
186
  });
183
187
  const labelRefPoint = {
@@ -241,7 +245,7 @@ process.env.NODE_ENV !== "production" ? ChartsXAxis.propTypes = {
241
245
  * The id of the axis to render.
242
246
  * If undefined, it will be the first defined axis.
243
247
  */
244
- axisId: PropTypes.string,
248
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
245
249
  /**
246
250
  * Override or extend the styles applied to the component.
247
251
  */
@@ -175,7 +175,7 @@ process.env.NODE_ENV !== "production" ? ChartsYAxis.propTypes = {
175
175
  * The id of the axis to render.
176
176
  * If undefined, it will be the first defined axis.
177
177
  */
178
- axisId: PropTypes.string,
178
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
179
179
  /**
180
180
  * Override or extend the styles applied to the component.
181
181
  */
@@ -119,6 +119,7 @@ process.env.NODE_ENV !== "production" ? AreaElement.propTypes = {
119
119
  faded: PropTypes.oneOf(['global', 'none', 'series']),
120
120
  highlighted: PropTypes.oneOf(['item', 'none', 'series'])
121
121
  }),
122
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
122
123
  /**
123
124
  * The props used for each component slot.
124
125
  * @default {}
@@ -117,6 +117,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
117
117
  * - 'none': display nothing.
118
118
  * - 'line': display a line at the current mouse position.
119
119
  * - 'band': display a band at the current mouse position. Only available with band scale.
120
+ * @default { x: 'line' }
120
121
  */
121
122
  axisHighlight: PropTypes.shape({
122
123
  x: PropTypes.oneOf(['band', 'line', 'none']),
@@ -128,7 +129,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
128
129
  * @default xAxisIds[0] The id of the first provided axis
129
130
  */
130
131
  bottomAxis: PropTypes.oneOfType([PropTypes.shape({
131
- axisId: PropTypes.string,
132
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
132
133
  classes: PropTypes.object,
133
134
  disableLine: PropTypes.bool,
134
135
  disableTicks: PropTypes.bool,
@@ -153,6 +154,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
153
154
  className: PropTypes.string,
154
155
  /**
155
156
  * Color palette used to colorize multiple series.
157
+ * @default blueberryTwilightPalette
156
158
  */
157
159
  colors: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.func]),
158
160
  /**
@@ -181,7 +183,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
181
183
  * @default yAxisIds[0] The id of the first provided axis
182
184
  */
183
185
  leftAxis: PropTypes.oneOfType([PropTypes.shape({
184
- axisId: PropTypes.string,
186
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
185
187
  classes: PropTypes.object,
186
188
  disableLine: PropTypes.bool,
187
189
  disableTicks: PropTypes.bool,
@@ -234,7 +236,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
234
236
  * @default null
235
237
  */
236
238
  rightAxis: PropTypes.oneOfType([PropTypes.shape({
237
- axisId: PropTypes.string,
239
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
238
240
  classes: PropTypes.object,
239
241
  disableLine: PropTypes.bool,
240
242
  disableTicks: PropTypes.bool,
@@ -267,7 +269,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
267
269
  faded: PropTypes.oneOf(['global', 'none', 'series']),
268
270
  highlighted: PropTypes.oneOf(['item', 'none', 'series'])
269
271
  }),
270
- id: PropTypes.string,
272
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
271
273
  label: PropTypes.string,
272
274
  showMark: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),
273
275
  stack: PropTypes.string,
@@ -304,7 +306,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
304
306
  * @default null
305
307
  */
306
308
  topAxis: PropTypes.oneOfType([PropTypes.shape({
307
- axisId: PropTypes.string,
309
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
308
310
  classes: PropTypes.object,
309
311
  disableLine: PropTypes.bool,
310
312
  disableTicks: PropTypes.bool,
@@ -341,7 +343,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
341
343
  * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
342
344
  */
343
345
  xAxis: PropTypes.arrayOf(PropTypes.shape({
344
- axisId: PropTypes.string,
346
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
345
347
  classes: PropTypes.object,
346
348
  data: PropTypes.array,
347
349
  dataKey: PropTypes.string,
@@ -349,13 +351,14 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
349
351
  disableTicks: PropTypes.bool,
350
352
  fill: PropTypes.string,
351
353
  hideTooltip: PropTypes.bool,
352
- id: PropTypes.string,
354
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
353
355
  label: PropTypes.string,
354
356
  labelFontSize: PropTypes.number,
355
357
  labelStyle: PropTypes.object,
356
358
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
357
359
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
358
360
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
361
+ reverse: PropTypes.bool,
359
362
  scaleType: PropTypes.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
360
363
  slotProps: PropTypes.object,
361
364
  slots: PropTypes.object,
@@ -375,7 +378,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
375
378
  * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
376
379
  */
377
380
  yAxis: PropTypes.arrayOf(PropTypes.shape({
378
- axisId: PropTypes.string,
381
+ axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
379
382
  classes: PropTypes.object,
380
383
  data: PropTypes.array,
381
384
  dataKey: PropTypes.string,
@@ -383,13 +386,14 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
383
386
  disableTicks: PropTypes.bool,
384
387
  fill: PropTypes.string,
385
388
  hideTooltip: PropTypes.bool,
386
- id: PropTypes.string,
389
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
387
390
  label: PropTypes.string,
388
391
  labelFontSize: PropTypes.number,
389
392
  labelStyle: PropTypes.object,
390
393
  max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
391
394
  min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
392
395
  position: PropTypes.oneOf(['bottom', 'left', 'right', 'top']),
396
+ reverse: PropTypes.bool,
393
397
  scaleType: PropTypes.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
394
398
  slotProps: PropTypes.object,
395
399
  slots: PropTypes.object,
@@ -121,6 +121,7 @@ process.env.NODE_ENV !== "production" ? LineElement.propTypes = {
121
121
  faded: PropTypes.oneOf(['global', 'none', 'series']),
122
122
  highlighted: PropTypes.oneOf(['item', 'none', 'series'])
123
123
  }),
124
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
124
125
  /**
125
126
  * The props used for each component slot.
126
127
  * @default {}
@@ -73,6 +73,7 @@ process.env.NODE_ENV !== "production" ? LineHighlightElement.propTypes = {
73
73
  // | These PropTypes are generated from the TypeScript type definitions |
74
74
  // | To update them edit the TypeScript types and run "yarn proptypes" |
75
75
  // ----------------------------------------------------------------------
76
- classes: PropTypes.object
76
+ classes: PropTypes.object,
77
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired
77
78
  } : void 0;
78
79
  export { LineHighlightElement };
@@ -128,6 +128,7 @@ process.env.NODE_ENV !== "production" ? MarkElement.propTypes = {
128
128
  faded: PropTypes.oneOf(['global', 'none', 'series']),
129
129
  highlighted: PropTypes.oneOf(['item', 'none', 'series'])
130
130
  }),
131
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
131
132
  /**
132
133
  * The shape of the marker.
133
134
  */
@@ -95,6 +95,7 @@ process.env.NODE_ENV !== "production" ? PieArc.propTypes = {
95
95
  faded: PropTypes.oneOf(['global', 'none', 'series']),
96
96
  highlighted: PropTypes.oneOf(['item', 'none', 'series'])
97
97
  }),
98
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
98
99
  isFaded: PropTypes.bool.isRequired,
99
100
  isHighlighted: PropTypes.bool.isRequired
100
101
  } : void 0;
@@ -98,6 +98,7 @@ process.env.NODE_ENV !== "production" ? PieArcLabel.propTypes = {
98
98
  // ----------------------------------------------------------------------
99
99
  classes: PropTypes.object,
100
100
  formattedArcLabel: PropTypes.string,
101
+ id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
101
102
  isFaded: PropTypes.bool.isRequired,
102
103
  isHighlighted: PropTypes.bool.isRequired
103
104
  } : void 0;