@mui/x-charts 7.2.0 → 7.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/BarChart/BarChart.d.ts +1 -0
  2. package/BarChart/BarChart.js +40 -99
  3. package/BarChart/BarElement.d.ts +63 -62
  4. package/BarChart/BarElement.js +1 -2
  5. package/BarChart/BarPlot.js +14 -7
  6. package/BarChart/getColor.d.ts +3 -0
  7. package/BarChart/getColor.js +33 -0
  8. package/CHANGELOG.md +204 -2
  9. package/ChartContainer/ChartContainer.js +38 -5
  10. package/ChartsAxis/ChartsAxis.js +11 -103
  11. package/ChartsAxisHighlight/ChartsAxisHighlight.js +1 -1
  12. package/ChartsClipPath/ChartsClipPath.js +3 -3
  13. package/ChartsGrid/ChartsGrid.js +1 -1
  14. package/ChartsLegend/ChartsLegend.js +3 -3
  15. package/ChartsLegend/DefaultChartsLegend.js +1 -1
  16. package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +1 -1
  17. package/ChartsReferenceLine/ChartsReferenceLine.js +1 -1
  18. package/ChartsReferenceLine/ChartsXReferenceLine.js +1 -1
  19. package/ChartsReferenceLine/ChartsYReferenceLine.js +1 -1
  20. package/ChartsSurface.js +1 -1
  21. package/ChartsText/ChartsText.js +1 -1
  22. package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +4 -1
  23. package/ChartsTooltip/ChartsAxisTooltipContent.js +21 -3
  24. package/ChartsTooltip/ChartsItemTooltipContent.d.ts +6 -0
  25. package/ChartsTooltip/ChartsItemTooltipContent.js +32 -2
  26. package/ChartsTooltip/ChartsTooltip.js +1 -1
  27. package/ChartsTooltip/ChartsTooltipTable.d.ts +3 -7
  28. package/ChartsTooltip/ChartsTooltipTable.js +8 -9
  29. package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +7 -7
  30. package/ChartsTooltip/DefaultChartsItemTooltipContent.js +15 -8
  31. package/ChartsTooltip/utils.d.ts +5 -1
  32. package/ChartsTooltip/utils.js +1 -1
  33. package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +7 -7
  34. package/ChartsXAxis/ChartsXAxis.js +3 -3
  35. package/ChartsYAxis/ChartsYAxis.js +3 -3
  36. package/Gauge/Gauge.js +1 -1
  37. package/Gauge/GaugeContainer.js +1 -1
  38. package/Gauge/GaugeProvider.js +6 -6
  39. package/Gauge/GaugeReferenceArc.js +1 -1
  40. package/Gauge/GaugeValueArc.js +1 -1
  41. package/Gauge/GaugeValueText.js +1 -1
  42. package/LineChart/AnimatedArea.d.ts +63 -62
  43. package/LineChart/AnimatedArea.js +7 -6
  44. package/LineChart/AnimatedLine.d.ts +63 -62
  45. package/LineChart/AnimatedLine.js +8 -6
  46. package/LineChart/AreaElement.d.ts +1 -0
  47. package/LineChart/AreaElement.js +5 -2
  48. package/LineChart/AreaPlot.js +8 -2
  49. package/LineChart/LineChart.d.ts +1 -0
  50. package/LineChart/LineChart.js +40 -99
  51. package/LineChart/LineElement.d.ts +1 -0
  52. package/LineChart/LineElement.js +5 -2
  53. package/LineChart/LineHighlightElement.js +1 -1
  54. package/LineChart/LineHighlightPlot.js +5 -2
  55. package/LineChart/LinePlot.js +8 -2
  56. package/LineChart/MarkElement.js +1 -1
  57. package/LineChart/MarkPlot.js +6 -6
  58. package/LineChart/getColor.d.ts +3 -0
  59. package/LineChart/getColor.js +31 -0
  60. package/PieChart/PieArc.d.ts +1 -0
  61. package/PieChart/PieArc.js +1 -1
  62. package/PieChart/PieArcLabel.d.ts +1 -0
  63. package/PieChart/PieArcLabel.js +1 -1
  64. package/PieChart/PieArcLabelPlot.js +1 -1
  65. package/PieChart/PieArcPlot.js +1 -1
  66. package/PieChart/PieChart.d.ts +1 -0
  67. package/PieChart/PieChart.js +40 -99
  68. package/PieChart/PiePlot.js +27 -7
  69. package/PieChart/dataTransform/transition.d.ts +1 -0
  70. package/PieChart/dataTransform/useTransformData.js +1 -1
  71. package/PieChart/formatter.js +4 -2
  72. package/PieChart/getColor.d.ts +2 -0
  73. package/PieChart/getColor.js +11 -0
  74. package/PieChart/getPieCoordinates.d.ts +7 -0
  75. package/PieChart/getPieCoordinates.js +25 -0
  76. package/PieChart/index.d.ts +1 -0
  77. package/PieChart/index.js +11 -0
  78. package/ResponsiveChartContainer/ResponsiveChartContainer.js +35 -3
  79. package/ResponsiveChartContainer/useChartContainerDimensions.js +1 -1
  80. package/ScatterChart/Scatter.d.ts +1 -0
  81. package/ScatterChart/Scatter.js +7 -4
  82. package/ScatterChart/ScatterChart.d.ts +3 -1
  83. package/ScatterChart/ScatterChart.js +95 -126
  84. package/ScatterChart/ScatterPlot.js +11 -1
  85. package/ScatterChart/getColor.d.ts +4 -0
  86. package/ScatterChart/getColor.js +48 -0
  87. package/SparkLineChart/SparkLineChart.js +16 -1
  88. package/context/CartesianContextProvider.d.ts +4 -3
  89. package/context/CartesianContextProvider.js +24 -9
  90. package/context/DrawingProvider.js +1 -1
  91. package/context/HighlightProvider.js +1 -1
  92. package/context/InteractionProvider.js +1 -1
  93. package/context/SeriesContextProvider.js +1 -1
  94. package/context/ZAxisContextProvider.d.ts +33 -0
  95. package/context/ZAxisContextProvider.js +98 -0
  96. package/context/index.d.ts +2 -0
  97. package/context/index.js +8 -1
  98. package/esm/BarChart/BarChart.js +40 -100
  99. package/esm/BarChart/BarElement.js +0 -1
  100. package/esm/BarChart/BarPlot.js +15 -7
  101. package/esm/BarChart/getColor.js +27 -0
  102. package/esm/ChartContainer/ChartContainer.js +38 -5
  103. package/esm/ChartsAxis/ChartsAxis.js +11 -104
  104. package/esm/ChartsAxisHighlight/ChartsAxisHighlight.js +1 -2
  105. package/esm/ChartsClipPath/ChartsClipPath.js +2 -2
  106. package/esm/ChartsGrid/ChartsGrid.js +1 -2
  107. package/esm/ChartsLegend/ChartsLegend.js +2 -2
  108. package/esm/ChartsLegend/DefaultChartsLegend.js +1 -2
  109. package/esm/ChartsReferenceLine/ChartsXReferenceLine.js +1 -2
  110. package/esm/ChartsReferenceLine/ChartsYReferenceLine.js +1 -2
  111. package/esm/ChartsSurface.js +1 -2
  112. package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +20 -2
  113. package/esm/ChartsTooltip/ChartsItemTooltipContent.js +31 -1
  114. package/esm/ChartsTooltip/ChartsTooltipTable.js +8 -8
  115. package/esm/ChartsTooltip/DefaultChartsAxisTooltipContent.js +7 -8
  116. package/esm/ChartsTooltip/DefaultChartsItemTooltipContent.js +15 -9
  117. package/esm/ChartsVoronoiHandler/ChartsVoronoiHandler.js +6 -6
  118. package/esm/ChartsXAxis/ChartsXAxis.js +3 -4
  119. package/esm/ChartsYAxis/ChartsYAxis.js +3 -4
  120. package/esm/Gauge/Gauge.js +1 -2
  121. package/esm/Gauge/GaugeProvider.js +5 -5
  122. package/esm/LineChart/AnimatedArea.js +7 -7
  123. package/esm/LineChart/AnimatedLine.js +8 -7
  124. package/esm/LineChart/AreaElement.js +4 -1
  125. package/esm/LineChart/AreaPlot.js +7 -1
  126. package/esm/LineChart/LineChart.js +40 -100
  127. package/esm/LineChart/LineElement.js +4 -1
  128. package/esm/LineChart/LineHighlightPlot.js +4 -1
  129. package/esm/LineChart/LinePlot.js +7 -1
  130. package/esm/LineChart/MarkPlot.js +5 -5
  131. package/esm/LineChart/getColor.js +25 -0
  132. package/esm/PieChart/PieChart.js +40 -100
  133. package/esm/PieChart/PiePlot.js +27 -8
  134. package/esm/PieChart/formatter.js +4 -2
  135. package/esm/PieChart/getColor.js +5 -0
  136. package/esm/PieChart/getPieCoordinates.js +19 -0
  137. package/esm/PieChart/index.js +2 -1
  138. package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +34 -2
  139. package/esm/ScatterChart/Scatter.js +6 -3
  140. package/esm/ScatterChart/ScatterChart.js +95 -127
  141. package/esm/ScatterChart/ScatterPlot.js +10 -0
  142. package/esm/ScatterChart/getColor.js +42 -0
  143. package/esm/SparkLineChart/SparkLineChart.js +16 -2
  144. package/esm/context/CartesianContextProvider.js +23 -8
  145. package/esm/context/ZAxisContextProvider.js +89 -0
  146. package/esm/context/index.js +1 -1
  147. package/esm/hooks/index.js +4 -1
  148. package/esm/hooks/useAxisEvents.js +7 -6
  149. package/esm/hooks/useChartId.js +8 -0
  150. package/esm/hooks/useSeries.js +64 -0
  151. package/esm/hooks/useSvgRef.js +9 -0
  152. package/esm/internals/colorGetter.js +22 -0
  153. package/esm/internals/colorScale.js +16 -0
  154. package/esm/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +95 -0
  155. package/esm/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +55 -0
  156. package/esm/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +40 -0
  157. package/esm/internals/components/ChartsAxesGradients/index.js +1 -0
  158. package/esm/models/colorMapping.js +1 -0
  159. package/esm/models/seriesType/index.js +6 -1
  160. package/esm/models/z-axis.js +1 -0
  161. package/hooks/index.d.ts +3 -0
  162. package/hooks/index.js +65 -1
  163. package/hooks/useAxisEvents.js +8 -7
  164. package/hooks/useChartDimensions.js +1 -1
  165. package/hooks/useChartId.d.ts +1 -0
  166. package/hooks/useChartId.js +16 -0
  167. package/hooks/useDrawingArea.js +1 -1
  168. package/hooks/useInteractionItemProps.js +1 -1
  169. package/hooks/useMounted.js +1 -1
  170. package/hooks/useScale.js +1 -1
  171. package/hooks/useSeries.d.ts +45 -0
  172. package/hooks/useSeries.js +75 -0
  173. package/hooks/useSvgRef.d.ts +2 -0
  174. package/hooks/useSvgRef.js +17 -0
  175. package/hooks/useTicks.js +1 -1
  176. package/index.js +1 -1
  177. package/internals/colorGetter.d.ts +7 -0
  178. package/internals/colorGetter.js +29 -0
  179. package/internals/colorScale.d.ts +5 -0
  180. package/internals/colorScale.js +24 -0
  181. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.d.ts +3 -0
  182. package/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +105 -0
  183. package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.d.ts +13 -0
  184. package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +63 -0
  185. package/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.d.ts +12 -0
  186. package/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +48 -0
  187. package/internals/components/ChartsAxesGradients/index.d.ts +1 -0
  188. package/internals/components/ChartsAxesGradients/index.js +16 -0
  189. package/internals/defaultizeColor.d.ts +5 -4
  190. package/internals/defaultizeValueFormatter.d.ts +5 -5
  191. package/internals/getScale.d.ts +2 -2
  192. package/internals/useAnimatedPath.d.ts +1 -0
  193. package/internals/useAnimatedPath.js +1 -1
  194. package/models/axis.d.ts +44 -4
  195. package/models/colorMapping.d.ts +46 -0
  196. package/models/colorMapping.js +5 -0
  197. package/models/index.d.ts +1 -1
  198. package/models/seriesType/common.d.ts +10 -2
  199. package/models/seriesType/index.d.ts +2 -0
  200. package/models/seriesType/index.js +17 -1
  201. package/models/seriesType/pie.d.ts +5 -0
  202. package/models/seriesType/scatter.d.ts +5 -0
  203. package/models/z-axis.d.ts +14 -0
  204. package/models/z-axis.js +5 -0
  205. package/modern/BarChart/BarChart.js +40 -100
  206. package/modern/BarChart/BarElement.js +0 -1
  207. package/modern/BarChart/BarPlot.js +15 -7
  208. package/modern/BarChart/getColor.js +27 -0
  209. package/modern/ChartContainer/ChartContainer.js +38 -5
  210. package/modern/ChartsAxis/ChartsAxis.js +11 -104
  211. package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +1 -2
  212. package/modern/ChartsClipPath/ChartsClipPath.js +2 -2
  213. package/modern/ChartsGrid/ChartsGrid.js +1 -2
  214. package/modern/ChartsLegend/ChartsLegend.js +2 -2
  215. package/modern/ChartsLegend/DefaultChartsLegend.js +1 -2
  216. package/modern/ChartsReferenceLine/ChartsXReferenceLine.js +1 -2
  217. package/modern/ChartsReferenceLine/ChartsYReferenceLine.js +1 -2
  218. package/modern/ChartsSurface.js +1 -2
  219. package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +20 -2
  220. package/modern/ChartsTooltip/ChartsItemTooltipContent.js +31 -1
  221. package/modern/ChartsTooltip/ChartsTooltipTable.js +8 -8
  222. package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +7 -8
  223. package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +15 -9
  224. package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +6 -6
  225. package/modern/ChartsXAxis/ChartsXAxis.js +3 -4
  226. package/modern/ChartsYAxis/ChartsYAxis.js +3 -4
  227. package/modern/Gauge/Gauge.js +1 -2
  228. package/modern/Gauge/GaugeProvider.js +5 -5
  229. package/modern/LineChart/AnimatedArea.js +7 -7
  230. package/modern/LineChart/AnimatedLine.js +8 -7
  231. package/modern/LineChart/AreaElement.js +4 -1
  232. package/modern/LineChart/AreaPlot.js +7 -1
  233. package/modern/LineChart/LineChart.js +40 -100
  234. package/modern/LineChart/LineElement.js +4 -1
  235. package/modern/LineChart/LineHighlightPlot.js +4 -1
  236. package/modern/LineChart/LinePlot.js +7 -1
  237. package/modern/LineChart/MarkPlot.js +5 -5
  238. package/modern/LineChart/getColor.js +25 -0
  239. package/modern/PieChart/PieChart.js +40 -100
  240. package/modern/PieChart/PiePlot.js +27 -8
  241. package/modern/PieChart/formatter.js +4 -2
  242. package/modern/PieChart/getColor.js +5 -0
  243. package/modern/PieChart/getPieCoordinates.js +19 -0
  244. package/modern/PieChart/index.js +2 -1
  245. package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +34 -2
  246. package/modern/ScatterChart/Scatter.js +6 -3
  247. package/modern/ScatterChart/ScatterChart.js +95 -127
  248. package/modern/ScatterChart/ScatterPlot.js +10 -0
  249. package/modern/ScatterChart/getColor.js +42 -0
  250. package/modern/SparkLineChart/SparkLineChart.js +16 -2
  251. package/modern/context/CartesianContextProvider.js +23 -8
  252. package/modern/context/ZAxisContextProvider.js +89 -0
  253. package/modern/context/index.js +1 -1
  254. package/modern/hooks/index.js +4 -1
  255. package/modern/hooks/useAxisEvents.js +7 -6
  256. package/modern/hooks/useChartId.js +8 -0
  257. package/modern/hooks/useSeries.js +64 -0
  258. package/modern/hooks/useSvgRef.js +9 -0
  259. package/modern/index.js +1 -1
  260. package/modern/internals/colorGetter.js +22 -0
  261. package/modern/internals/colorScale.js +16 -0
  262. package/modern/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +95 -0
  263. package/modern/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +55 -0
  264. package/modern/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +40 -0
  265. package/modern/internals/components/ChartsAxesGradients/index.js +1 -0
  266. package/modern/models/colorMapping.js +1 -0
  267. package/modern/models/seriesType/index.js +6 -1
  268. package/modern/models/z-axis.js +1 -0
  269. package/package.json +3 -5
@@ -16,10 +16,11 @@ var _AreaElement = require("./AreaElement");
16
16
  var _useScale = require("../hooks/useScale");
17
17
  var _getCurve = _interopRequireDefault(require("../internals/getCurve"));
18
18
  var _constants = require("../constants");
19
+ var _ChartsAxesGradients = require("../internals/components/ChartsAxesGradients");
19
20
  var _jsxRuntime = require("react/jsx-runtime");
20
21
  const _excluded = ["slots", "slotProps", "onItemClick", "skipAnimation"];
21
22
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
22
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
24
  const useAggregatedData = () => {
24
25
  const seriesData = React.useContext(_SeriesContextProvider.SeriesContext).line;
25
26
  const axisData = React.useContext(_CartesianContextProvider.CartesianContext);
@@ -52,6 +53,7 @@ const useAggregatedData = () => {
52
53
  const xScale = (0, _useScale.getValueToPositionMapper)(xAxis[xAxisKey].scale);
53
54
  const yScale = yAxis[yAxisKey].scale;
54
55
  const xData = xAxis[xAxisKey].data;
56
+ const gradientUsed = yAxis[yAxisKey].colorScale && [yAxisKey, 'y'] || xAxis[xAxisKey].colorScale && [xAxisKey, 'x'] || undefined;
55
57
  if (process.env.NODE_ENV !== 'production') {
56
58
  if (xData === undefined) {
57
59
  throw new Error(`MUI X Charts: ${xAxisKey === _constants.DEFAULT_X_AXIS_KEY ? 'The first `xAxis`' : `The x-axis with id "${xAxisKey}"`} should have data property to be able to display a line plot.`);
@@ -69,6 +71,7 @@ const useAggregatedData = () => {
69
71
  const d3Data = connectNulls ? formattedData.filter((_, i) => data[i] != null) : formattedData;
70
72
  const d = areaPath.curve(curve)(d3Data) || '';
71
73
  return (0, _extends2.default)({}, series[seriesId], {
74
+ gradientUsed,
72
75
  d,
73
76
  seriesId
74
77
  });
@@ -95,6 +98,7 @@ function AreaPlot(props) {
95
98
  skipAnimation
96
99
  } = props,
97
100
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
101
+ const getGradientId = (0, _ChartsAxesGradients.useChartGradient)();
98
102
  const completedData = useAggregatedData();
99
103
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", (0, _extends2.default)({}, other, {
100
104
  children: completedData.reverse().map(({
@@ -102,11 +106,13 @@ function AreaPlot(props) {
102
106
  seriesId,
103
107
  color,
104
108
  highlightScope,
105
- area
109
+ area,
110
+ gradientUsed
106
111
  }) => !!area && /*#__PURE__*/(0, _jsxRuntime.jsx)(_AreaElement.AreaElement, {
107
112
  id: seriesId,
108
113
  d: d,
109
114
  color: color,
115
+ gradientId: gradientUsed && getGradientId(...gradientUsed),
110
116
  highlightScope: highlightScope,
111
117
  slots: slots,
112
118
  slotProps: slotProps,
@@ -20,6 +20,7 @@ export interface LineChartSlotProps extends ChartsAxisSlotProps, AreaPlotSlotPro
20
20
  export interface LineChartProps extends Omit<ResponsiveChartContainerProps, 'series'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'>, ChartsOnAxisClickHandlerProps {
21
21
  /**
22
22
  * The series to display in the line chart.
23
+ * An array of [[LineSeriesType]] objects.
23
24
  */
24
25
  series: MakeOptional<LineSeriesType, 'type'>[];
25
26
  /**
@@ -24,7 +24,7 @@ var _ChartsGrid = require("../ChartsGrid");
24
24
  var _ChartsOnAxisClickHandler = require("../ChartsOnAxisClickHandler");
25
25
  var _jsxRuntime = require("react/jsx-runtime");
26
26
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
27
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
27
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
28
28
  /**
29
29
  * Demos:
30
30
  *
@@ -152,30 +152,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
152
152
  * Can be a string (the id of the axis) or an object `ChartsXAxisProps`.
153
153
  * @default xAxisIds[0] The id of the first provided axis
154
154
  */
155
- bottomAxis: _propTypes.default.oneOfType([_propTypes.default.shape({
156
- axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
157
- classes: _propTypes.default.object,
158
- disableLine: _propTypes.default.bool,
159
- disableTicks: _propTypes.default.bool,
160
- fill: _propTypes.default.string,
161
- label: _propTypes.default.string,
162
- labelFontSize: _propTypes.default.number,
163
- labelStyle: _propTypes.default.object,
164
- position: _propTypes.default.oneOf(['bottom', 'top']),
165
- slotProps: _propTypes.default.object,
166
- slots: _propTypes.default.object,
167
- stroke: _propTypes.default.string,
168
- tickFontSize: _propTypes.default.number,
169
- tickInterval: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.array, _propTypes.default.func]),
170
- tickLabelInterval: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.func]),
171
- tickLabelPlacement: _propTypes.default.oneOf(['middle', 'tick']),
172
- tickLabelStyle: _propTypes.default.object,
173
- tickMaxStep: _propTypes.default.number,
174
- tickMinStep: _propTypes.default.number,
175
- tickNumber: _propTypes.default.number,
176
- tickPlacement: _propTypes.default.oneOf(['end', 'extremities', 'middle', 'start']),
177
- tickSize: _propTypes.default.number
178
- }), _propTypes.default.string]),
155
+ bottomAxis: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string]),
179
156
  children: _propTypes.default.node,
180
157
  className: _propTypes.default.string,
181
158
  /**
@@ -214,30 +191,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
214
191
  * Can be a string (the id of the axis) or an object `ChartsYAxisProps`.
215
192
  * @default yAxisIds[0] The id of the first provided axis
216
193
  */
217
- leftAxis: _propTypes.default.oneOfType([_propTypes.default.shape({
218
- axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
219
- classes: _propTypes.default.object,
220
- disableLine: _propTypes.default.bool,
221
- disableTicks: _propTypes.default.bool,
222
- fill: _propTypes.default.string,
223
- label: _propTypes.default.string,
224
- labelFontSize: _propTypes.default.number,
225
- labelStyle: _propTypes.default.object,
226
- position: _propTypes.default.oneOf(['left', 'right']),
227
- slotProps: _propTypes.default.object,
228
- slots: _propTypes.default.object,
229
- stroke: _propTypes.default.string,
230
- tickFontSize: _propTypes.default.number,
231
- tickInterval: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.array, _propTypes.default.func]),
232
- tickLabelInterval: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.func]),
233
- tickLabelPlacement: _propTypes.default.oneOf(['middle', 'tick']),
234
- tickLabelStyle: _propTypes.default.object,
235
- tickMaxStep: _propTypes.default.number,
236
- tickMinStep: _propTypes.default.number,
237
- tickNumber: _propTypes.default.number,
238
- tickPlacement: _propTypes.default.oneOf(['end', 'extremities', 'middle', 'start']),
239
- tickSize: _propTypes.default.number
240
- }), _propTypes.default.string]),
194
+ leftAxis: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string]),
241
195
  /**
242
196
  * @deprecated Consider using `slotProps.legend` instead.
243
197
  */
@@ -288,32 +242,10 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
288
242
  * Can be a string (the id of the axis) or an object `ChartsYAxisProps`.
289
243
  * @default null
290
244
  */
291
- rightAxis: _propTypes.default.oneOfType([_propTypes.default.shape({
292
- axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
293
- classes: _propTypes.default.object,
294
- disableLine: _propTypes.default.bool,
295
- disableTicks: _propTypes.default.bool,
296
- fill: _propTypes.default.string,
297
- label: _propTypes.default.string,
298
- labelFontSize: _propTypes.default.number,
299
- labelStyle: _propTypes.default.object,
300
- position: _propTypes.default.oneOf(['left', 'right']),
301
- slotProps: _propTypes.default.object,
302
- slots: _propTypes.default.object,
303
- stroke: _propTypes.default.string,
304
- tickFontSize: _propTypes.default.number,
305
- tickInterval: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.array, _propTypes.default.func]),
306
- tickLabelInterval: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.func]),
307
- tickLabelPlacement: _propTypes.default.oneOf(['middle', 'tick']),
308
- tickLabelStyle: _propTypes.default.object,
309
- tickMaxStep: _propTypes.default.number,
310
- tickMinStep: _propTypes.default.number,
311
- tickNumber: _propTypes.default.number,
312
- tickPlacement: _propTypes.default.oneOf(['end', 'extremities', 'middle', 'start']),
313
- tickSize: _propTypes.default.number
314
- }), _propTypes.default.string]),
245
+ rightAxis: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string]),
315
246
  /**
316
247
  * The series to display in the line chart.
248
+ * An array of [[LineSeriesType]] objects.
317
249
  */
318
250
  series: _propTypes.default.arrayOf(_propTypes.default.object).isRequired,
319
251
  /**
@@ -351,30 +283,7 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
351
283
  * Can be a string (the id of the axis) or an object `ChartsXAxisProps`.
352
284
  * @default null
353
285
  */
354
- topAxis: _propTypes.default.oneOfType([_propTypes.default.shape({
355
- axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
356
- classes: _propTypes.default.object,
357
- disableLine: _propTypes.default.bool,
358
- disableTicks: _propTypes.default.bool,
359
- fill: _propTypes.default.string,
360
- label: _propTypes.default.string,
361
- labelFontSize: _propTypes.default.number,
362
- labelStyle: _propTypes.default.object,
363
- position: _propTypes.default.oneOf(['bottom', 'top']),
364
- slotProps: _propTypes.default.object,
365
- slots: _propTypes.default.object,
366
- stroke: _propTypes.default.string,
367
- tickFontSize: _propTypes.default.number,
368
- tickInterval: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.array, _propTypes.default.func]),
369
- tickLabelInterval: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.func]),
370
- tickLabelPlacement: _propTypes.default.oneOf(['middle', 'tick']),
371
- tickLabelStyle: _propTypes.default.object,
372
- tickMaxStep: _propTypes.default.number,
373
- tickMinStep: _propTypes.default.number,
374
- tickNumber: _propTypes.default.number,
375
- tickPlacement: _propTypes.default.oneOf(['end', 'extremities', 'middle', 'start']),
376
- tickSize: _propTypes.default.number
377
- }), _propTypes.default.string]),
286
+ topAxis: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.string]),
378
287
  viewBox: _propTypes.default.shape({
379
288
  height: _propTypes.default.number,
380
289
  width: _propTypes.default.number,
@@ -387,11 +296,27 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
387
296
  width: _propTypes.default.number,
388
297
  /**
389
298
  * The configuration of the x-axes.
390
- * If not provided, a default axis config is used with id set to `DEFAULT_X_AXIS_KEY`.
299
+ * If not provided, a default axis config is used.
300
+ * An array of [[AxisConfig]] objects.
391
301
  */
392
302
  xAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
393
303
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
394
304
  classes: _propTypes.default.object,
305
+ colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
306
+ color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
307
+ max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
308
+ min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
309
+ type: _propTypes.default.oneOf(['continuous']).isRequired
310
+ }), _propTypes.default.shape({
311
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
312
+ thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
313
+ type: _propTypes.default.oneOf(['piecewise']).isRequired
314
+ }), _propTypes.default.shape({
315
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
316
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
317
+ unknownColor: _propTypes.default.string,
318
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
319
+ })]),
395
320
  data: _propTypes.default.array,
396
321
  dataKey: _propTypes.default.string,
397
322
  disableLine: _propTypes.default.bool,
@@ -424,11 +349,27 @@ process.env.NODE_ENV !== "production" ? LineChart.propTypes = {
424
349
  })),
425
350
  /**
426
351
  * The configuration of the y-axes.
427
- * If not provided, a default axis config is used with id set to `DEFAULT_Y_AXIS_KEY`.
352
+ * If not provided, a default axis config is used.
353
+ * An array of [[AxisConfig]] objects.
428
354
  */
429
355
  yAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
430
356
  axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
431
357
  classes: _propTypes.default.object,
358
+ colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
359
+ color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
360
+ max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
361
+ min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
362
+ type: _propTypes.default.oneOf(['continuous']).isRequired
363
+ }), _propTypes.default.shape({
364
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
365
+ thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
366
+ type: _propTypes.default.oneOf(['piecewise']).isRequired
367
+ }), _propTypes.default.shape({
368
+ colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
369
+ type: _propTypes.default.oneOf(['ordinal']).isRequired,
370
+ unknownColor: _propTypes.default.string,
371
+ values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
372
+ })]),
432
373
  data: _propTypes.default.array,
433
374
  dataKey: _propTypes.default.string,
434
375
  disableLine: _propTypes.default.bool,
@@ -14,6 +14,7 @@ export type LineElementClassKey = keyof LineElementClasses;
14
14
  export interface LineElementOwnerState {
15
15
  id: SeriesId;
16
16
  color: string;
17
+ gradientId?: string;
17
18
  isFaded: boolean;
18
19
  isHighlighted: boolean;
19
20
  classes?: Partial<LineElementClasses>;
@@ -19,9 +19,9 @@ var _InteractionProvider = require("../context/InteractionProvider");
19
19
  var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
20
20
  var _AnimatedLine = require("./AnimatedLine");
21
21
  var _jsxRuntime = require("react/jsx-runtime");
22
- const _excluded = ["id", "classes", "color", "highlightScope", "slots", "slotProps", "onClick"];
22
+ const _excluded = ["id", "classes", "color", "gradientId", "highlightScope", "slots", "slotProps", "onClick"];
23
23
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
24
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
25
  function getLineElementUtilityClass(slot) {
26
26
  return (0, _generateUtilityClass.default)('MuiLineElement', slot);
27
27
  }
@@ -53,6 +53,7 @@ function LineElement(props) {
53
53
  id,
54
54
  classes: innerClasses,
55
55
  color,
56
+ gradientId,
56
57
  highlightScope,
57
58
  slots,
58
59
  slotProps,
@@ -75,6 +76,7 @@ function LineElement(props) {
75
76
  id,
76
77
  classes: innerClasses,
77
78
  color,
79
+ gradientId,
78
80
  isFaded,
79
81
  isHighlighted
80
82
  };
@@ -103,6 +105,7 @@ process.env.NODE_ENV !== "production" ? LineElement.propTypes = {
103
105
  classes: _propTypes.default.object,
104
106
  color: _propTypes.default.string.isRequired,
105
107
  d: _propTypes.default.string.isRequired,
108
+ gradientId: _propTypes.default.string,
106
109
  highlightScope: _propTypes.default.shape({
107
110
  faded: _propTypes.default.oneOf(['global', 'none', 'series']),
108
111
  highlighted: _propTypes.default.oneOf(['item', 'none', 'series'])
@@ -18,7 +18,7 @@ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generat
18
18
  var _jsxRuntime = require("react/jsx-runtime");
19
19
  const _excluded = ["x", "y", "id", "classes", "color"];
20
20
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
21
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
22
  function getHighlightElementUtilityClass(slot) {
23
23
  return (0, _generateUtilityClass.default)('MuiHighlightElement', slot);
24
24
  }
@@ -15,10 +15,11 @@ var _LineHighlightElement = require("./LineHighlightElement");
15
15
  var _useScale = require("../hooks/useScale");
16
16
  var _InteractionProvider = require("../context/InteractionProvider");
17
17
  var _constants = require("../constants");
18
+ var _getColor = _interopRequireDefault(require("./getColor"));
18
19
  var _jsxRuntime = require("react/jsx-runtime");
19
20
  const _excluded = ["slots", "slotProps"];
20
21
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
21
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
23
  /**
23
24
  * Demos:
24
25
  *
@@ -83,9 +84,11 @@ function LineHighlightPlot(props) {
83
84
  }
84
85
  const x = xScale(xData[highlightedIndex]);
85
86
  const y = yScale(stackedData[highlightedIndex][1]); // This should not be undefined since y should not be a band scale
87
+
88
+ const colorGetter = (0, _getColor.default)(series[seriesId], xAxis[xAxisKey], yAxis[yAxisKey]);
86
89
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Element, (0, _extends2.default)({
87
90
  id: seriesId,
88
- color: series[seriesId].color,
91
+ color: colorGetter(highlightedIndex),
89
92
  x: x,
90
93
  y: y
91
94
  }, slotProps?.lineHighlight), `${seriesId}`);
@@ -16,10 +16,11 @@ var _LineElement = require("./LineElement");
16
16
  var _useScale = require("../hooks/useScale");
17
17
  var _getCurve = _interopRequireDefault(require("../internals/getCurve"));
18
18
  var _constants = require("../constants");
19
+ var _ChartsAxesGradients = require("../internals/components/ChartsAxesGradients");
19
20
  var _jsxRuntime = require("react/jsx-runtime");
20
21
  const _excluded = ["slots", "slotProps", "skipAnimation", "onItemClick"];
21
22
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
22
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
24
  const useAggregatedData = () => {
24
25
  const seriesData = React.useContext(_SeriesContextProvider.SeriesContext).line;
25
26
  const axisData = React.useContext(_CartesianContextProvider.CartesianContext);
@@ -52,6 +53,7 @@ const useAggregatedData = () => {
52
53
  const xScale = (0, _useScale.getValueToPositionMapper)(xAxis[xAxisKey].scale);
53
54
  const yScale = yAxis[yAxisKey].scale;
54
55
  const xData = xAxis[xAxisKey].data;
56
+ const gradientUsed = yAxis[yAxisKey].colorScale && [yAxisKey, 'y'] || xAxis[xAxisKey].colorScale && [xAxisKey, 'x'] || undefined;
55
57
  if (process.env.NODE_ENV !== 'production') {
56
58
  if (xData === undefined) {
57
59
  throw new Error(`MUI X Charts: ${xAxisKey === _constants.DEFAULT_X_AXIS_KEY ? 'The first `xAxis`' : `The x-axis with id "${xAxisKey}"`} should have data property to be able to display a line plot.`);
@@ -68,6 +70,7 @@ const useAggregatedData = () => {
68
70
  const d3Data = connectNulls ? formattedData.filter((_, i) => data[i] != null) : formattedData;
69
71
  const d = linePath.curve((0, _getCurve.default)(series[seriesId].curve))(d3Data) || '';
70
72
  return (0, _extends2.default)({}, series[seriesId], {
73
+ gradientUsed,
71
74
  d,
72
75
  seriesId
73
76
  });
@@ -93,18 +96,21 @@ function LinePlot(props) {
93
96
  onItemClick
94
97
  } = props,
95
98
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
99
+ const getGradientId = (0, _ChartsAxesGradients.useChartGradient)();
96
100
  const completedData = useAggregatedData();
97
101
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", (0, _extends2.default)({}, other, {
98
102
  children: completedData.map(({
99
103
  d,
100
104
  seriesId,
101
105
  color,
102
- highlightScope
106
+ highlightScope,
107
+ gradientUsed
103
108
  }) => {
104
109
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_LineElement.LineElement, {
105
110
  id: seriesId,
106
111
  d: d,
107
112
  color: color,
113
+ gradientId: gradientUsed && getGradientId(...gradientUsed),
108
114
  highlightScope: highlightScope,
109
115
  skipAnimation: skipAnimation,
110
116
  slots: slots,
@@ -23,7 +23,7 @@ var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
23
23
  var _jsxRuntime = require("react/jsx-runtime");
24
24
  const _excluded = ["x", "y", "id", "classes", "color", "shape", "dataIndex", "highlightScope", "onClick", "skipAnimation"];
25
25
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
26
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
26
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
27
27
  function getMarkElementUtilityClass(slot) {
28
28
  return (0, _generateUtilityClass.default)('MuiMarkElement', slot);
29
29
  }
@@ -13,13 +13,14 @@ var _SeriesContextProvider = require("../context/SeriesContextProvider");
13
13
  var _CartesianContextProvider = require("../context/CartesianContextProvider");
14
14
  var _MarkElement = require("./MarkElement");
15
15
  var _useScale = require("../hooks/useScale");
16
+ var _useChartId = require("../hooks/useChartId");
16
17
  var _constants = require("../constants");
17
- var _DrawingProvider = require("../context/DrawingProvider");
18
18
  var _utils = require("../internals/utils");
19
+ var _getColor = _interopRequireDefault(require("./getColor"));
19
20
  var _jsxRuntime = require("react/jsx-runtime");
20
21
  const _excluded = ["slots", "slotProps", "skipAnimation", "onItemClick"];
21
22
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
22
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
24
  /**
24
25
  * Demos:
25
26
  *
@@ -40,9 +41,7 @@ function MarkPlot(props) {
40
41
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
41
42
  const seriesData = React.useContext(_SeriesContextProvider.SeriesContext).line;
42
43
  const axisData = React.useContext(_CartesianContextProvider.CartesianContext);
43
- const {
44
- chartId
45
- } = React.useContext(_DrawingProvider.DrawingContext);
44
+ const chartId = (0, _useChartId.useChartId)();
46
45
  const Mark = slots?.mark ?? _MarkElement.MarkElement;
47
46
  if (seriesData === undefined) {
48
47
  return null;
@@ -96,6 +95,7 @@ function MarkPlot(props) {
96
95
  }
97
96
  const clipId = (0, _utils.cleanId)(`${chartId}-${seriesId}-line-clip`); // We assume that if displaying line mark, the line will also be rendered
98
97
 
98
+ const colorGetter = (0, _getColor.default)(series[seriesId], xAxis[xAxisKey], yAxis[yAxisKey]);
99
99
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("g", {
100
100
  clipPath: `url(#${clipId})`,
101
101
  children: xData?.map((x, index) => {
@@ -144,7 +144,7 @@ function MarkPlot(props) {
144
144
  id: seriesId,
145
145
  dataIndex: index,
146
146
  shape: "circle",
147
- color: series[seriesId].color,
147
+ color: colorGetter(index),
148
148
  x: x,
149
149
  y: y // Don't know why TS doesn't get from the filter that y can't be null
150
150
  ,
@@ -0,0 +1,3 @@
1
+ import { AxisDefaultized } from '../models/axis';
2
+ import { DefaultizedLineSeriesType } from '../models/seriesType/line';
3
+ export default function getColor(series: DefaultizedLineSeriesType, xAxis: AxisDefaultized, yAxis: AxisDefaultized): (dataIndex: number) => string;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = getColor;
7
+ function getColor(series, xAxis, yAxis) {
8
+ const yColorScale = yAxis.colorScale;
9
+ const xColorScale = xAxis.colorScale;
10
+ if (yColorScale) {
11
+ return dataIndex => {
12
+ const value = series.data[dataIndex];
13
+ const color = value === null ? series.color : yColorScale(value);
14
+ if (color === null) {
15
+ return series.color;
16
+ }
17
+ return color;
18
+ };
19
+ }
20
+ if (xColorScale) {
21
+ return dataIndex => {
22
+ const value = xAxis.data?.[dataIndex];
23
+ const color = value === null ? series.color : xColorScale(value);
24
+ if (color === null) {
25
+ return series.color;
26
+ }
27
+ return color;
28
+ };
29
+ }
30
+ return () => series.color;
31
+ }
@@ -1,3 +1,4 @@
1
+ /// <reference types="@react-spring/core" />
1
2
  import * as React from 'react';
2
3
  import { SpringValue } from '@react-spring/web';
3
4
  import { HighlightScope } from '../context/HighlightProvider';
@@ -21,7 +21,7 @@ var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
21
21
  var _jsxRuntime = require("react/jsx-runtime");
22
22
  const _excluded = ["classes", "color", "cornerRadius", "dataIndex", "endAngle", "highlightScope", "id", "innerRadius", "isFaded", "isHighlighted", "onClick", "outerRadius", "paddingAngle", "startAngle"];
23
23
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
24
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
25
  function getPieArcUtilityClass(slot) {
26
26
  return (0, _generateUtilityClass.default)('MuiPieArc', slot);
27
27
  }
@@ -1,3 +1,4 @@
1
+ /// <reference types="@react-spring/core" />
1
2
  import * as React from 'react';
2
3
  import { SpringValue } from '@react-spring/web';
3
4
  import { PieItemId } from '../models/seriesType/pie';
@@ -20,7 +20,7 @@ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generat
20
20
  var _jsxRuntime = require("react/jsx-runtime");
21
21
  const _excluded = ["id", "classes", "color", "startAngle", "endAngle", "paddingAngle", "arcLabelRadius", "innerRadius", "outerRadius", "cornerRadius", "formattedArcLabel", "isHighlighted", "isFaded", "style"];
22
22
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
23
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
24
  function getPieArcLabelUtilityClass(slot) {
25
25
  return (0, _generateUtilityClass.default)('MuiPieArcLabel', slot);
26
26
  }
@@ -17,7 +17,7 @@ var _jsxRuntime = require("react/jsx-runtime");
17
17
  const _excluded = ["arcLabel", "arcLabelMinAngle", "arcLabelRadius", "cornerRadius", "data", "faded", "highlighted", "highlightScope", "id", "innerRadius", "outerRadius", "paddingAngle", "skipAnimation", "slotProps", "slots"],
18
18
  _excluded2 = ["startAngle", "endAngle", "paddingAngle", "innerRadius", "outerRadius", "arcLabelRadius", "cornerRadius"];
19
19
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
21
  const RATIO = 180 / Math.PI;
22
22
  function getItemLabel(arcLabel, arcLabelMinAngle, item) {
23
23
  if (!arcLabel) {
@@ -17,7 +17,7 @@ var _jsxRuntime = require("react/jsx-runtime");
17
17
  const _excluded = ["slots", "slotProps", "innerRadius", "outerRadius", "cornerRadius", "paddingAngle", "id", "highlightScope", "highlighted", "faded", "data", "onItemClick", "skipAnimation"],
18
18
  _excluded2 = ["startAngle", "endAngle", "paddingAngle", "innerRadius", "arcLabelRadius", "outerRadius", "cornerRadius"];
19
19
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
21
  function PieArcPlot(props) {
22
22
  const {
23
23
  slots,
@@ -28,6 +28,7 @@ export interface PieChartProps extends Omit<ResponsiveChartContainerProps, 'seri
28
28
  leftAxis?: null | string | ChartsYAxisProps;
29
29
  /**
30
30
  * The series to display in the pie chart.
31
+ * An array of [[PieSeriesType]] objects.
31
32
  */
32
33
  series: MakeOptional<PieSeriesType<MakeOptional<PieValueType, 'id'>>, 'type'>[];
33
34
  /**