@mui/x-charts 6.0.0-alpha.5 → 6.0.0-alpha.7

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 (163) hide show
  1. package/BarChart/BarChart.d.ts +18 -2
  2. package/BarChart/BarChart.js +74 -17
  3. package/BarChart/BarElement.d.ts +22 -0
  4. package/BarChart/BarElement.js +21 -10
  5. package/BarChart/BarPlot.d.ts +14 -1
  6. package/BarChart/BarPlot.js +23 -4
  7. package/BarChart/formatter.js +23 -12
  8. package/CHANGELOG.md +154 -0
  9. package/ChartContainer/index.js +3 -0
  10. package/ChartsAxis/ChartsAxis.d.ts +11 -1
  11. package/ChartsAxis/ChartsAxis.js +51 -6
  12. package/ChartsLegend/ChartsLegend.d.ts +25 -2
  13. package/ChartsLegend/ChartsLegend.js +49 -17
  14. package/ChartsTooltip/ChartsAxisTooltipContent.js +1 -1
  15. package/ChartsTooltip/ChartsTooltipTable.d.ts +2 -9
  16. package/ChartsXAxis/ChartsXAxis.js +44 -9
  17. package/ChartsYAxis/ChartsYAxis.js +44 -9
  18. package/LineChart/AreaElement.d.ts +22 -0
  19. package/LineChart/AreaElement.js +31 -11
  20. package/LineChart/AreaPlot.d.ts +14 -1
  21. package/LineChart/AreaPlot.js +32 -5
  22. package/LineChart/LineChart.d.ts +20 -2
  23. package/LineChart/LineChart.js +76 -16
  24. package/LineChart/LineElement.d.ts +22 -0
  25. package/LineChart/LineElement.js +31 -10
  26. package/LineChart/LinePlot.d.ts +14 -1
  27. package/LineChart/LinePlot.js +38 -6
  28. package/LineChart/MarkElement.js +1 -1
  29. package/LineChart/MarkPlot.d.ts +24 -1
  30. package/LineChart/MarkPlot.js +30 -6
  31. package/LineChart/formatter.js +23 -12
  32. package/PieChart/PieArcLabel.js +0 -1
  33. package/PieChart/PieChart.d.ts +14 -2
  34. package/PieChart/PieChart.js +60 -13
  35. package/PieChart/PiePlot.d.ts +27 -1
  36. package/PieChart/PiePlot.js +29 -6
  37. package/ScatterChart/ScatterChart.d.ts +18 -2
  38. package/ScatterChart/ScatterChart.js +64 -13
  39. package/ScatterChart/ScatterPlot.d.ts +24 -1
  40. package/ScatterChart/ScatterPlot.js +28 -4
  41. package/SparkLineChart/SparkLineChart.d.ts +73 -0
  42. package/SparkLineChart/SparkLineChart.js +218 -0
  43. package/SparkLineChart/index.d.ts +1 -0
  44. package/SparkLineChart/index.js +12 -0
  45. package/SparkLineChart/package.json +6 -0
  46. package/colorPalettes/colorPalettes.js +2 -2
  47. package/context/CartesianContextProvider.d.ts +3 -1
  48. package/context/CartesianContextProvider.js +50 -14
  49. package/context/SeriesContextProvider.d.ts +3 -2
  50. package/context/SeriesContextProvider.js +5 -3
  51. package/esm/BarChart/BarChart.js +77 -17
  52. package/esm/BarChart/BarElement.js +21 -11
  53. package/esm/BarChart/BarPlot.js +23 -4
  54. package/esm/BarChart/formatter.js +23 -12
  55. package/esm/ChartContainer/index.js +3 -0
  56. package/esm/ChartsAxis/ChartsAxis.js +51 -6
  57. package/esm/ChartsLegend/ChartsLegend.js +47 -14
  58. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +1 -1
  59. package/esm/ChartsXAxis/ChartsXAxis.js +45 -9
  60. package/esm/ChartsYAxis/ChartsYAxis.js +45 -9
  61. package/esm/LineChart/AreaElement.js +31 -11
  62. package/esm/LineChart/AreaPlot.js +33 -5
  63. package/esm/LineChart/LineChart.js +79 -16
  64. package/esm/LineChart/LineElement.js +31 -11
  65. package/esm/LineChart/LinePlot.js +45 -9
  66. package/esm/LineChart/MarkElement.js +1 -1
  67. package/esm/LineChart/MarkPlot.js +31 -6
  68. package/esm/LineChart/formatter.js +23 -13
  69. package/esm/PieChart/PieArcLabel.js +0 -1
  70. package/esm/PieChart/PieChart.js +60 -13
  71. package/esm/PieChart/PiePlot.js +31 -6
  72. package/esm/ScatterChart/ScatterChart.js +64 -13
  73. package/esm/ScatterChart/ScatterPlot.js +29 -4
  74. package/esm/SparkLineChart/SparkLineChart.js +210 -0
  75. package/esm/SparkLineChart/index.js +1 -0
  76. package/esm/colorPalettes/colorPalettes.js +2 -2
  77. package/esm/context/CartesianContextProvider.js +50 -14
  78. package/esm/context/SeriesContextProvider.js +5 -3
  79. package/esm/hooks/useTicks.js +9 -6
  80. package/esm/index.js +1 -0
  81. package/esm/internals/components/AxisSharedComponents.js +10 -10
  82. package/esm/models/index.js +3 -1
  83. package/hooks/useTicks.d.ts +20 -5
  84. package/hooks/useTicks.js +9 -6
  85. package/index.d.ts +1 -0
  86. package/index.js +12 -1
  87. package/internals/components/AxisSharedComponents.d.ts +4 -4
  88. package/internals/components/AxisSharedComponents.js +15 -15
  89. package/internals/defaultizeColor.d.ts +4 -2
  90. package/legacy/BarChart/BarChart.js +75 -17
  91. package/legacy/BarChart/BarElement.js +20 -10
  92. package/legacy/BarChart/BarPlot.js +23 -4
  93. package/legacy/BarChart/formatter.js +23 -10
  94. package/legacy/ChartContainer/index.js +3 -0
  95. package/legacy/ChartsAxis/ChartsAxis.js +51 -6
  96. package/legacy/ChartsLegend/ChartsLegend.js +46 -15
  97. package/legacy/ChartsTooltip/ChartsAxisTooltipContent.js +1 -1
  98. package/legacy/ChartsXAxis/ChartsXAxis.js +45 -9
  99. package/legacy/ChartsYAxis/ChartsYAxis.js +45 -9
  100. package/legacy/LineChart/AreaElement.js +30 -10
  101. package/legacy/LineChart/AreaPlot.js +31 -5
  102. package/legacy/LineChart/LineChart.js +77 -16
  103. package/legacy/LineChart/LineElement.js +30 -10
  104. package/legacy/LineChart/LinePlot.js +38 -6
  105. package/legacy/LineChart/MarkElement.js +1 -1
  106. package/legacy/LineChart/MarkPlot.js +29 -6
  107. package/legacy/LineChart/formatter.js +23 -11
  108. package/legacy/PieChart/PieArcLabel.js +0 -1
  109. package/legacy/PieChart/PieChart.js +60 -13
  110. package/legacy/PieChart/PiePlot.js +29 -6
  111. package/legacy/ScatterChart/ScatterChart.js +64 -13
  112. package/legacy/ScatterChart/ScatterPlot.js +27 -4
  113. package/legacy/SparkLineChart/SparkLineChart.js +214 -0
  114. package/legacy/SparkLineChart/index.js +1 -0
  115. package/legacy/colorPalettes/colorPalettes.js +2 -2
  116. package/legacy/context/CartesianContextProvider.js +59 -15
  117. package/legacy/context/SeriesContextProvider.js +6 -4
  118. package/legacy/hooks/useTicks.js +9 -9
  119. package/legacy/index.js +2 -1
  120. package/legacy/internals/components/AxisSharedComponents.js +10 -10
  121. package/legacy/models/index.js +3 -1
  122. package/models/axis.d.ts +34 -3
  123. package/models/index.d.ts +2 -0
  124. package/models/index.js +11 -0
  125. package/models/seriesType/bar.d.ts +8 -1
  126. package/models/seriesType/common.d.ts +2 -2
  127. package/models/seriesType/config.d.ts +4 -1
  128. package/models/seriesType/line.d.ts +8 -1
  129. package/modern/BarChart/BarChart.js +74 -17
  130. package/modern/BarChart/BarElement.js +20 -11
  131. package/modern/BarChart/BarPlot.js +23 -4
  132. package/modern/BarChart/formatter.js +23 -12
  133. package/modern/ChartContainer/index.js +3 -0
  134. package/modern/ChartsAxis/ChartsAxis.js +51 -6
  135. package/modern/ChartsLegend/ChartsLegend.js +46 -14
  136. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +1 -1
  137. package/modern/ChartsXAxis/ChartsXAxis.js +44 -9
  138. package/modern/ChartsYAxis/ChartsYAxis.js +44 -9
  139. package/modern/LineChart/AreaElement.js +30 -11
  140. package/modern/LineChart/AreaPlot.js +33 -5
  141. package/modern/LineChart/LineChart.js +76 -16
  142. package/modern/LineChart/LineElement.js +30 -11
  143. package/modern/LineChart/LinePlot.js +39 -6
  144. package/modern/LineChart/MarkElement.js +1 -1
  145. package/modern/LineChart/MarkPlot.js +30 -6
  146. package/modern/LineChart/formatter.js +23 -13
  147. package/modern/PieChart/PieArcLabel.js +0 -1
  148. package/modern/PieChart/PieChart.js +60 -13
  149. package/modern/PieChart/PiePlot.js +30 -6
  150. package/modern/ScatterChart/ScatterChart.js +64 -13
  151. package/modern/ScatterChart/ScatterPlot.js +28 -4
  152. package/modern/SparkLineChart/SparkLineChart.js +210 -0
  153. package/modern/SparkLineChart/index.js +1 -0
  154. package/modern/colorPalettes/colorPalettes.js +2 -2
  155. package/modern/context/CartesianContextProvider.js +50 -14
  156. package/modern/context/SeriesContextProvider.js +5 -3
  157. package/modern/hooks/useTicks.js +9 -6
  158. package/modern/index.js +2 -1
  159. package/modern/internals/components/AxisSharedComponents.js +10 -10
  160. package/modern/models/index.js +3 -1
  161. package/package.json +4 -2
  162. package/themeAugmentation/components.d.ts +0 -10
  163. package/themeAugmentation/overrides.d.ts +0 -2
@@ -5,13 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.AreaElement = AreaElement;
8
- exports.areaElementClasses = void 0;
8
+ exports.areaElementClasses = exports.AreaElementPath = void 0;
9
9
  exports.getAreaElementUtilityClass = getAreaElementUtilityClass;
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
11
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
12
12
  var React = _interopRequireWildcard(require("react"));
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
14
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
15
+ var _utils = require("@mui/base/utils");
15
16
  var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
16
17
  var _styles = require("@mui/material/styles");
17
18
  var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
@@ -19,7 +20,7 @@ var _d3Color = require("d3-color");
19
20
  var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
20
21
  var _InteractionProvider = require("../context/InteractionProvider");
21
22
  var _jsxRuntime = require("react/jsx-runtime");
22
- const _excluded = ["id", "classes", "color", "highlightScope"];
23
+ const _excluded = ["id", "classes", "color", "highlightScope", "slots", "slotProps"];
23
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
25
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
26
  function getAreaElementUtilityClass(slot) {
@@ -51,6 +52,7 @@ const AreaElementPath = (0, _styles.styled)('path', {
51
52
  transition: 'opacity 0.2s ease-in, fill 0.2s ease-in',
52
53
  opacity: ownerState.isFaded ? 0.3 : 1
53
54
  }));
55
+ exports.AreaElementPath = AreaElementPath;
54
56
  AreaElementPath.propTypes = {
55
57
  // ----------------------------- Warning --------------------------------
56
58
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -71,7 +73,9 @@ function AreaElement(props) {
71
73
  id,
72
74
  classes: innerClasses,
73
75
  color,
74
- highlightScope
76
+ highlightScope,
77
+ slots,
78
+ slotProps
75
79
  } = props,
76
80
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
77
81
  const getInteractionItemProps = (0, _useInteractionItemProps.useInteractionItemProps)(highlightScope);
@@ -94,13 +98,19 @@ function AreaElement(props) {
94
98
  isHighlighted
95
99
  };
96
100
  const classes = useUtilityClasses(ownerState);
97
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(AreaElementPath, (0, _extends2.default)({}, other, {
98
- ownerState: ownerState,
99
- className: classes.root
100
- }, getInteractionItemProps({
101
- type: 'line',
102
- seriesId: id
103
- })));
101
+ const Area = slots?.area ?? AreaElementPath;
102
+ const areaProps = (0, _utils.useSlotProps)({
103
+ elementType: Area,
104
+ externalSlotProps: slotProps?.area,
105
+ additionalProps: (0, _extends2.default)({}, other, getInteractionItemProps({
106
+ type: 'line',
107
+ seriesId: id
108
+ }), {
109
+ className: classes.root
110
+ }),
111
+ ownerState
112
+ });
113
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Area, (0, _extends2.default)({}, areaProps));
104
114
  }
105
115
  process.env.NODE_ENV !== "production" ? AreaElement.propTypes = {
106
116
  // ----------------------------- Warning --------------------------------
@@ -111,5 +121,15 @@ process.env.NODE_ENV !== "production" ? AreaElement.propTypes = {
111
121
  highlightScope: _propTypes.default.shape({
112
122
  faded: _propTypes.default.oneOf(['global', 'none', 'series']),
113
123
  highlighted: _propTypes.default.oneOf(['item', 'none', 'series'])
114
- })
124
+ }),
125
+ /**
126
+ * The props used for each component slot.
127
+ * @default {}
128
+ */
129
+ slotProps: _propTypes.default.object,
130
+ /**
131
+ * Overridable component slots.
132
+ * @default {}
133
+ */
134
+ slots: _propTypes.default.object
115
135
  } : void 0;
@@ -1,2 +1,15 @@
1
1
  import * as React from 'react';
2
- export declare function AreaPlot(): React.JSX.Element | null;
2
+ import { AreaElementProps } from './AreaElement';
3
+ export interface AreaPlotSlotsComponent {
4
+ area?: React.JSXElementConstructor<AreaElementProps>;
5
+ }
6
+ export interface AreaPlotSlotComponentProps {
7
+ area?: Partial<AreaElementProps>;
8
+ }
9
+ export interface AreaPlotProps extends React.SVGAttributes<SVGSVGElement>, Pick<AreaElementProps, 'slots' | 'slotProps'> {
10
+ }
11
+ declare function AreaPlot(props: AreaPlotProps): React.JSX.Element | null;
12
+ declare namespace AreaPlot {
13
+ var propTypes: any;
14
+ }
15
+ export { AreaPlot };
@@ -5,7 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.AreaPlot = AreaPlot;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
8
10
  var React = _interopRequireWildcard(require("react"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
12
  var _d3Shape = require("d3-shape");
10
13
  var _SeriesContextProvider = require("../context/SeriesContextProvider");
11
14
  var _CartesianContextProvider = require("../context/CartesianContextProvider");
@@ -13,9 +16,15 @@ var _AreaElement = require("./AreaElement");
13
16
  var _useScale = require("../hooks/useScale");
14
17
  var _getCurve = _interopRequireDefault(require("../internals/getCurve"));
15
18
  var _jsxRuntime = require("react/jsx-runtime");
19
+ const _excluded = ["slots", "slotProps"];
16
20
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
21
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
- function AreaPlot() {
22
+ function AreaPlot(props) {
23
+ const {
24
+ slots,
25
+ slotProps
26
+ } = props,
27
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
19
28
  const seriesData = React.useContext(_SeriesContextProvider.SeriesContext).line;
20
29
  const axisData = React.useContext(_CartesianContextProvider.CartesianContext);
21
30
  if (seriesData === undefined) {
@@ -33,7 +42,7 @@ function AreaPlot() {
33
42
  } = axisData;
34
43
  const defaultXAxisId = xAxisIds[0];
35
44
  const defaultYAxisId = yAxisIds[0];
36
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
45
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", (0, _extends2.default)({}, other, {
37
46
  children: stackingGroups.flatMap(({
38
47
  ids: groupIds
39
48
  }) => {
@@ -59,9 +68,27 @@ function AreaPlot() {
59
68
  id: seriesId,
60
69
  d: areaPath.curve(curve)(d3Data) || undefined,
61
70
  color: series[seriesId].color,
62
- highlightScope: series[seriesId].highlightScope
71
+ highlightScope: series[seriesId].highlightScope,
72
+ slots: slots,
73
+ slotProps: slotProps
63
74
  }, seriesId);
64
75
  });
65
76
  })
66
- });
67
- }
77
+ }));
78
+ }
79
+ process.env.NODE_ENV !== "production" ? AreaPlot.propTypes = {
80
+ // ----------------------------- Warning --------------------------------
81
+ // | These PropTypes are generated from the TypeScript type definitions |
82
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
83
+ // ----------------------------------------------------------------------
84
+ /**
85
+ * The props used for each component slot.
86
+ * @default {}
87
+ */
88
+ slotProps: _propTypes.default.object,
89
+ /**
90
+ * Overridable component slots.
91
+ * @default {}
92
+ */
93
+ slots: _propTypes.default.object
94
+ } : void 0;
@@ -1,16 +1,34 @@
1
1
  import * as React from 'react';
2
+ import { AreaPlotSlotComponentProps, AreaPlotSlotsComponent } from './AreaPlot';
3
+ import { LinePlotSlotComponentProps, LinePlotSlotsComponent } from './LinePlot';
2
4
  import { ResponsiveChartContainerProps } from '../ResponsiveChartContainer';
5
+ import { MarkPlotSlotComponentProps, MarkPlotSlotsComponent } from './MarkPlot';
3
6
  import { ChartsAxisProps } from '../ChartsAxis/ChartsAxis';
4
7
  import { LineSeriesType } from '../models/seriesType/line';
5
8
  import { MakeOptional } from '../models/helpers';
6
9
  import { ChartsTooltipProps } from '../ChartsTooltip';
7
- import { ChartsLegendProps } from '../ChartsLegend';
10
+ import { ChartsLegendProps, ChartsLegendSlotComponentProps, ChartsLegendSlotsComponent } from '../ChartsLegend';
8
11
  import { ChartsAxisHighlightProps } from '../ChartsAxisHighlight';
9
- export interface LineChartProps extends Omit<ResponsiveChartContainerProps, 'series'>, ChartsAxisProps {
12
+ import { ChartsAxisSlotComponentProps, ChartsAxisSlotsComponent } from '../models/axis';
13
+ export interface LineChartSlotsComponent extends ChartsAxisSlotsComponent, AreaPlotSlotsComponent, LinePlotSlotsComponent, MarkPlotSlotsComponent, ChartsLegendSlotsComponent {
14
+ }
15
+ export interface LineChartSlotComponentProps extends ChartsAxisSlotComponentProps, AreaPlotSlotComponentProps, LinePlotSlotComponentProps, MarkPlotSlotComponentProps, ChartsLegendSlotComponentProps {
16
+ }
17
+ export interface LineChartProps extends Omit<ResponsiveChartContainerProps, 'series'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'> {
10
18
  series: MakeOptional<LineSeriesType, 'type'>[];
11
19
  tooltip?: ChartsTooltipProps;
12
20
  axisHighlight?: ChartsAxisHighlightProps;
13
21
  legend?: ChartsLegendProps;
22
+ /**
23
+ * Overridable component slots.
24
+ * @default {}
25
+ */
26
+ slots?: LineChartSlotsComponent;
27
+ /**
28
+ * The props used for each component slot.
29
+ * @default {}
30
+ */
31
+ slotProps?: LineChartSlotComponentProps;
14
32
  }
15
33
  declare const LineChart: React.ForwardRefExoticComponent<LineChartProps & React.RefAttributes<unknown>>;
16
34
  export { LineChart };
@@ -31,6 +31,7 @@ const LineChart = /*#__PURE__*/React.forwardRef(function LineChart(props, ref) {
31
31
  height,
32
32
  margin,
33
33
  colors,
34
+ dataset,
34
35
  sx,
35
36
  tooltip,
36
37
  axisHighlight = {
@@ -41,7 +42,9 @@ const LineChart = /*#__PURE__*/React.forwardRef(function LineChart(props, ref) {
41
42
  leftAxis,
42
43
  rightAxis,
43
44
  bottomAxis,
44
- children
45
+ children,
46
+ slots,
47
+ slotProps
45
48
  } = props;
46
49
  const id = (0, _useId.default)();
47
50
  const clipPathId = `${id}-clip-path`;
@@ -57,22 +60,37 @@ const LineChart = /*#__PURE__*/React.forwardRef(function LineChart(props, ref) {
57
60
  id: _constants.DEFAULT_X_AXIS_KEY,
58
61
  scaleType: 'point',
59
62
  data: Array.from({
60
- length: Math.max(...series.map(s => s.data.length))
63
+ length: Math.max(...series.map(s => (s.data ?? dataset ?? []).length))
61
64
  }, (_, index) => index)
62
65
  }],
63
66
  yAxis: yAxis,
64
67
  colors: colors,
68
+ dataset: dataset,
65
69
  sx: sx,
66
70
  disableAxisListener: tooltip?.trigger !== 'axis' && axisHighlight?.x === 'none' && axisHighlight?.y === 'none',
67
71
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("g", {
68
72
  clipPath: `url(#${clipPathId})`,
69
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_AreaPlot.AreaPlot, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_LinePlot.LinePlot, {})]
73
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_AreaPlot.AreaPlot, {
74
+ slots: slots,
75
+ slotProps: slotProps
76
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_LinePlot.LinePlot, {
77
+ slots: slots,
78
+ slotProps: slotProps
79
+ })]
70
80
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxis.ChartsAxis, {
71
81
  topAxis: topAxis,
72
82
  leftAxis: leftAxis,
73
83
  rightAxis: rightAxis,
74
- bottomAxis: bottomAxis
75
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_MarkPlot.MarkPlot, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsLegend.ChartsLegend, (0, _extends2.default)({}, legend)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxisHighlight.ChartsAxisHighlight, (0, _extends2.default)({}, axisHighlight)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltip.ChartsTooltip, (0, _extends2.default)({}, tooltip)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsClipPath.ChartsClipPath, {
84
+ bottomAxis: bottomAxis,
85
+ slots: slots,
86
+ slotProps: slotProps
87
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_MarkPlot.MarkPlot, {
88
+ slots: slots,
89
+ slotProps: slotProps
90
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsLegend.ChartsLegend, (0, _extends2.default)({}, legend, {
91
+ slots: slots,
92
+ slotProps: slotProps
93
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxisHighlight.ChartsAxisHighlight, (0, _extends2.default)({}, axisHighlight)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsTooltip.ChartsTooltip, (0, _extends2.default)({}, tooltip)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsClipPath.ChartsClipPath, {
76
94
  id: clipPathId
77
95
  }), children]
78
96
  });
@@ -101,8 +119,13 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
101
119
  label: _propTypes.default.string,
102
120
  labelFontSize: _propTypes.default.number,
103
121
  position: _propTypes.default.oneOf(['bottom', 'top']),
122
+ slotProps: _propTypes.default.object,
123
+ slots: _propTypes.default.object,
104
124
  stroke: _propTypes.default.string,
105
125
  tickFontSize: _propTypes.default.number,
126
+ tickMaxStep: _propTypes.default.number,
127
+ tickMinStep: _propTypes.default.number,
128
+ tickNumber: _propTypes.default.number,
106
129
  tickSize: _propTypes.default.number
107
130
  }), _propTypes.default.string]),
108
131
  children: _propTypes.default.node,
@@ -111,6 +134,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
111
134
  * Color palette used to colorize multiple series.
112
135
  */
113
136
  colors: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string), _propTypes.default.func]),
137
+ dataset: _propTypes.default.arrayOf(_propTypes.default.object),
114
138
  desc: _propTypes.default.string,
115
139
  disableAxisListener: _propTypes.default.bool,
116
140
  height: _propTypes.default.number,
@@ -128,8 +152,13 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
128
152
  label: _propTypes.default.string,
129
153
  labelFontSize: _propTypes.default.number,
130
154
  position: _propTypes.default.oneOf(['left', 'right']),
155
+ slotProps: _propTypes.default.object,
156
+ slots: _propTypes.default.object,
131
157
  stroke: _propTypes.default.string,
132
158
  tickFontSize: _propTypes.default.number,
159
+ tickMaxStep: _propTypes.default.number,
160
+ tickMinStep: _propTypes.default.number,
161
+ tickNumber: _propTypes.default.number,
133
162
  tickSize: _propTypes.default.number
134
163
  }), _propTypes.default.string]),
135
164
  legend: _propTypes.default.shape({
@@ -146,6 +175,8 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
146
175
  horizontal: _propTypes.default.oneOf(['left', 'middle', 'right']).isRequired,
147
176
  vertical: _propTypes.default.oneOf(['bottom', 'middle', 'top']).isRequired
148
177
  }),
178
+ slotProps: _propTypes.default.object,
179
+ slots: _propTypes.default.object,
149
180
  spacing: _propTypes.default.number
150
181
  }),
151
182
  margin: _propTypes.default.shape({
@@ -168,15 +199,21 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
168
199
  label: _propTypes.default.string,
169
200
  labelFontSize: _propTypes.default.number,
170
201
  position: _propTypes.default.oneOf(['left', 'right']),
202
+ slotProps: _propTypes.default.object,
203
+ slots: _propTypes.default.object,
171
204
  stroke: _propTypes.default.string,
172
205
  tickFontSize: _propTypes.default.number,
206
+ tickMaxStep: _propTypes.default.number,
207
+ tickMinStep: _propTypes.default.number,
208
+ tickNumber: _propTypes.default.number,
173
209
  tickSize: _propTypes.default.number
174
210
  }), _propTypes.default.string]),
175
211
  series: _propTypes.default.arrayOf(_propTypes.default.shape({
176
212
  area: _propTypes.default.bool,
177
213
  color: _propTypes.default.string,
178
214
  curve: _propTypes.default.oneOf(['catmullRom', 'linear', 'monotoneX', 'monotoneY', 'natural', 'step', 'stepAfter', 'stepBefore']),
179
- data: _propTypes.default.arrayOf(_propTypes.default.number).isRequired,
215
+ data: _propTypes.default.arrayOf(_propTypes.default.number),
216
+ dataKey: _propTypes.default.string,
180
217
  highlightScope: _propTypes.default.shape({
181
218
  faded: _propTypes.default.oneOf(['global', 'none', 'series']),
182
219
  highlighted: _propTypes.default.oneOf(['item', 'none', 'series'])
@@ -191,6 +228,16 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
191
228
  xAxisKey: _propTypes.default.string,
192
229
  yAxisKey: _propTypes.default.string
193
230
  })).isRequired,
231
+ /**
232
+ * The props used for each component slot.
233
+ * @default {}
234
+ */
235
+ slotProps: _propTypes.default.object,
236
+ /**
237
+ * Overridable component slots.
238
+ * @default {}
239
+ */
240
+ slots: _propTypes.default.object,
194
241
  sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
195
242
  title: _propTypes.default.string,
196
243
  tooltip: _propTypes.default.shape({
@@ -213,8 +260,13 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
213
260
  label: _propTypes.default.string,
214
261
  labelFontSize: _propTypes.default.number,
215
262
  position: _propTypes.default.oneOf(['bottom', 'top']),
263
+ slotProps: _propTypes.default.object,
264
+ slots: _propTypes.default.object,
216
265
  stroke: _propTypes.default.string,
217
266
  tickFontSize: _propTypes.default.number,
267
+ tickMaxStep: _propTypes.default.number,
268
+ tickMinStep: _propTypes.default.number,
269
+ tickNumber: _propTypes.default.number,
218
270
  tickSize: _propTypes.default.number
219
271
  }), _propTypes.default.string]),
220
272
  viewBox: _propTypes.default.shape({
@@ -228,44 +280,52 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
228
280
  axisId: _propTypes.default.string,
229
281
  classes: _propTypes.default.object,
230
282
  data: _propTypes.default.array,
283
+ dataKey: _propTypes.default.string,
231
284
  disableLine: _propTypes.default.bool,
232
285
  disableTicks: _propTypes.default.bool,
233
286
  fill: _propTypes.default.string,
287
+ hideTooltip: _propTypes.default.bool,
234
288
  id: _propTypes.default.string,
235
289
  label: _propTypes.default.string,
236
290
  labelFontSize: _propTypes.default.number,
237
- max: _propTypes.default.number,
238
- maxTicks: _propTypes.default.number,
239
- min: _propTypes.default.number,
240
- minTicks: _propTypes.default.number,
291
+ max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
292
+ min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
241
293
  position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
242
294
  scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
295
+ slotProps: _propTypes.default.object,
296
+ slots: _propTypes.default.object,
243
297
  stroke: _propTypes.default.string,
244
298
  tickFontSize: _propTypes.default.number,
299
+ tickMaxStep: _propTypes.default.number,
300
+ tickMinStep: _propTypes.default.number,
301
+ tickNumber: _propTypes.default.number,
245
302
  tickSize: _propTypes.default.number,
246
- tickSpacing: _propTypes.default.number,
247
303
  valueFormatter: _propTypes.default.func
248
304
  })),
249
305
  yAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
250
306
  axisId: _propTypes.default.string,
251
307
  classes: _propTypes.default.object,
252
308
  data: _propTypes.default.array,
309
+ dataKey: _propTypes.default.string,
253
310
  disableLine: _propTypes.default.bool,
254
311
  disableTicks: _propTypes.default.bool,
255
312
  fill: _propTypes.default.string,
313
+ hideTooltip: _propTypes.default.bool,
256
314
  id: _propTypes.default.string,
257
315
  label: _propTypes.default.string,
258
316
  labelFontSize: _propTypes.default.number,
259
- max: _propTypes.default.number,
260
- maxTicks: _propTypes.default.number,
261
- min: _propTypes.default.number,
262
- minTicks: _propTypes.default.number,
317
+ max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
318
+ min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
263
319
  position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
264
320
  scaleType: _propTypes.default.oneOf(['band', 'linear', 'log', 'point', 'pow', 'sqrt', 'time', 'utc']),
321
+ slotProps: _propTypes.default.object,
322
+ slots: _propTypes.default.object,
265
323
  stroke: _propTypes.default.string,
266
324
  tickFontSize: _propTypes.default.number,
325
+ tickMaxStep: _propTypes.default.number,
326
+ tickMinStep: _propTypes.default.number,
327
+ tickNumber: _propTypes.default.number,
267
328
  tickSize: _propTypes.default.number,
268
- tickSpacing: _propTypes.default.number,
269
329
  valueFormatter: _propTypes.default.func
270
330
  }))
271
331
  } : void 0;
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { SlotComponentProps } from '@mui/base';
2
3
  import { HighlightScope } from '../context/HighlightProvider';
3
4
  export interface LineElementClasses {
4
5
  /** Styles applied to the root element. */
@@ -18,8 +19,29 @@ export interface LineElementOwnerState {
18
19
  }
19
20
  export declare function getLineElementUtilityClass(slot: string): string;
20
21
  export declare const lineElementClasses: LineElementClasses;
22
+ export declare const LineElementPath: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme> & {
23
+ ownerState: LineElementOwnerState;
24
+ }, Pick<React.SVGProps<SVGPathElement>, keyof React.SVGProps<SVGPathElement>>, {}>;
21
25
  export type LineElementProps = Omit<LineElementOwnerState, 'isFaded' | 'isHighlighted'> & React.ComponentPropsWithoutRef<'path'> & {
22
26
  highlightScope?: Partial<HighlightScope>;
27
+ /**
28
+ * The props used for each component slot.
29
+ * @default {}
30
+ */
31
+ slotProps?: {
32
+ line?: SlotComponentProps<'path', {}, LineElementOwnerState>;
33
+ };
34
+ /**
35
+ * Overridable component slots.
36
+ * @default {}
37
+ */
38
+ slots?: {
39
+ /**
40
+ * The component that renders the root.
41
+ * @default LineElementPath
42
+ */
43
+ line?: React.ElementType;
44
+ };
23
45
  };
24
46
  declare function LineElement(props: LineElementProps): React.JSX.Element;
25
47
  declare namespace LineElement {
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.LineElement = LineElement;
8
+ exports.LineElementPath = void 0;
8
9
  exports.getLineElementUtilityClass = getLineElementUtilityClass;
9
10
  exports.lineElementClasses = void 0;
10
11
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
@@ -13,13 +14,14 @@ var React = _interopRequireWildcard(require("react"));
13
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
15
  var _d3Color = require("d3-color");
15
16
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
17
+ var _utils = require("@mui/base/utils");
16
18
  var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
17
19
  var _styles = require("@mui/material/styles");
18
20
  var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
19
21
  var _InteractionProvider = require("../context/InteractionProvider");
20
22
  var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
21
23
  var _jsxRuntime = require("react/jsx-runtime");
22
- const _excluded = ["id", "classes", "color", "highlightScope"];
24
+ const _excluded = ["id", "classes", "color", "highlightScope", "slots", "slotProps"];
23
25
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
27
  function getLineElementUtilityClass(slot) {
@@ -53,6 +55,7 @@ const LineElementPath = (0, _styles.styled)('path', {
53
55
  transition: 'opacity 0.2s ease-in, stroke 0.2s ease-in',
54
56
  opacity: ownerState.isFaded ? 0.3 : 1
55
57
  }));
58
+ exports.LineElementPath = LineElementPath;
56
59
  LineElementPath.propTypes = {
57
60
  // ----------------------------- Warning --------------------------------
58
61
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -73,7 +76,9 @@ function LineElement(props) {
73
76
  id,
74
77
  classes: innerClasses,
75
78
  color,
76
- highlightScope
79
+ highlightScope,
80
+ slots,
81
+ slotProps
77
82
  } = props,
78
83
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
79
84
  const getInteractionItemProps = (0, _useInteractionItemProps.useInteractionItemProps)(highlightScope);
@@ -96,13 +101,19 @@ function LineElement(props) {
96
101
  isHighlighted
97
102
  };
98
103
  const classes = useUtilityClasses(ownerState);
99
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(LineElementPath, (0, _extends2.default)({}, other, {
100
- ownerState: ownerState,
101
- className: classes.root
102
- }, getInteractionItemProps({
103
- type: 'line',
104
- seriesId: id
105
- })));
104
+ const Line = slots?.line ?? LineElementPath;
105
+ const lineProps = (0, _utils.useSlotProps)({
106
+ elementType: Line,
107
+ externalSlotProps: slotProps?.line,
108
+ additionalProps: (0, _extends2.default)({}, other, getInteractionItemProps({
109
+ type: 'line',
110
+ seriesId: id
111
+ }), {
112
+ className: classes.root
113
+ }),
114
+ ownerState
115
+ });
116
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Line, (0, _extends2.default)({}, lineProps));
106
117
  }
107
118
  process.env.NODE_ENV !== "production" ? LineElement.propTypes = {
108
119
  // ----------------------------- Warning --------------------------------
@@ -113,5 +124,15 @@ process.env.NODE_ENV !== "production" ? LineElement.propTypes = {
113
124
  highlightScope: _propTypes.default.shape({
114
125
  faded: _propTypes.default.oneOf(['global', 'none', 'series']),
115
126
  highlighted: _propTypes.default.oneOf(['item', 'none', 'series'])
116
- })
127
+ }),
128
+ /**
129
+ * The props used for each component slot.
130
+ * @default {}
131
+ */
132
+ slotProps: _propTypes.default.object,
133
+ /**
134
+ * Overridable component slots.
135
+ * @default {}
136
+ */
137
+ slots: _propTypes.default.object
117
138
  } : void 0;
@@ -1,2 +1,15 @@
1
1
  import * as React from 'react';
2
- export declare function LinePlot(): React.JSX.Element | null;
2
+ import { LineElementProps } from './LineElement';
3
+ export interface LinePlotSlotsComponent {
4
+ line?: React.JSXElementConstructor<LineElementProps>;
5
+ }
6
+ export interface LinePlotSlotComponentProps {
7
+ line?: Partial<LineElementProps>;
8
+ }
9
+ export interface LinePlotProps extends React.SVGAttributes<SVGSVGElement>, Pick<LineElementProps, 'slots' | 'slotProps'> {
10
+ }
11
+ declare function LinePlot(props: LinePlotProps): React.JSX.Element | null;
12
+ declare namespace LinePlot {
13
+ var propTypes: any;
14
+ }
15
+ export { LinePlot };
@@ -5,7 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.LinePlot = LinePlot;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
8
10
  var React = _interopRequireWildcard(require("react"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
12
  var _d3Shape = require("d3-shape");
10
13
  var _SeriesContextProvider = require("../context/SeriesContextProvider");
11
14
  var _CartesianContextProvider = require("../context/CartesianContextProvider");
@@ -13,9 +16,15 @@ var _LineElement = require("./LineElement");
13
16
  var _useScale = require("../hooks/useScale");
14
17
  var _getCurve = _interopRequireDefault(require("../internals/getCurve"));
15
18
  var _jsxRuntime = require("react/jsx-runtime");
19
+ const _excluded = ["slots", "slotProps"];
16
20
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
21
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
- function LinePlot() {
22
+ function LinePlot(props) {
23
+ const {
24
+ slots,
25
+ slotProps
26
+ } = props,
27
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
19
28
  const seriesData = React.useContext(_SeriesContextProvider.SeriesContext).line;
20
29
  const axisData = React.useContext(_CartesianContextProvider.CartesianContext);
21
30
  if (seriesData === undefined) {
@@ -33,7 +42,7 @@ function LinePlot() {
33
42
  } = axisData;
34
43
  const defaultXAxisId = xAxisIds[0];
35
44
  const defaultYAxisId = yAxisIds[0];
36
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
45
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", (0, _extends2.default)({}, other, {
37
46
  children: stackingGroups.flatMap(({
38
47
  ids: groupIds
39
48
  }) => {
@@ -50,18 +59,41 @@ function LinePlot() {
50
59
  throw new Error(`Axis of id "${xAxisKey}" should have data property to be able to display a line plot`);
51
60
  }
52
61
  const linePath = (0, _d3Shape.line)().x(d => xScale(d.x)).y(d => yScale(d.y[1]));
62
+ if (process.env.NODE_ENV !== 'production') {
63
+ if (xData.length !== stackedData.length) {
64
+ throw new Error(`MUI: data length of the x axis (${xData.length} items) does not match length of series (${stackedData.length} items)`);
65
+ }
66
+ }
53
67
  const curve = (0, _getCurve.default)(series[seriesId].curve);
54
68
  const d3Data = xData?.map((x, index) => ({
55
69
  x,
56
- y: stackedData[index]
70
+ y: stackedData[index] ?? [0, 0]
57
71
  }));
58
72
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_LineElement.LineElement, {
59
73
  id: seriesId,
60
74
  d: linePath.curve(curve)(d3Data) || undefined,
61
75
  color: series[seriesId].color,
62
- highlightScope: series[seriesId].highlightScope
76
+ highlightScope: series[seriesId].highlightScope,
77
+ slots: slots,
78
+ slotProps: slotProps
63
79
  }, seriesId);
64
80
  });
65
81
  })
66
- });
67
- }
82
+ }));
83
+ }
84
+ process.env.NODE_ENV !== "production" ? LinePlot.propTypes = {
85
+ // ----------------------------- Warning --------------------------------
86
+ // | These PropTypes are generated from the TypeScript type definitions |
87
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
88
+ // ----------------------------------------------------------------------
89
+ /**
90
+ * The props used for each component slot.
91
+ * @default {}
92
+ */
93
+ slotProps: _propTypes.default.object,
94
+ /**
95
+ * Overridable component slots.
96
+ * @default {}
97
+ */
98
+ slots: _propTypes.default.object
99
+ } : void 0;