@mui/x-charts 7.1.1 → 7.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BarChart/BarChart.js +32 -2
- package/BarChart/BarPlot.js +12 -5
- package/BarChart/extremums.js +1 -1
- package/BarChart/getColor.d.ts +3 -0
- package/BarChart/getColor.js +33 -0
- package/CHANGELOG.md +211 -0
- package/ChartContainer/ChartContainer.js +35 -4
- package/ChartsAxis/ChartsAxis.js +4 -4
- package/ChartsClipPath/ChartsClipPath.js +2 -2
- package/ChartsLegend/ChartsLegend.js +2 -2
- package/ChartsTooltip/ChartsAxisTooltipContent.d.ts +4 -1
- package/ChartsTooltip/ChartsAxisTooltipContent.js +7 -2
- package/ChartsTooltip/ChartsItemTooltipContent.d.ts +6 -0
- package/ChartsTooltip/ChartsItemTooltipContent.js +15 -1
- package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +6 -3
- package/ChartsTooltip/DefaultChartsItemTooltipContent.js +13 -4
- package/ChartsTooltip/utils.d.ts +5 -1
- package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +6 -6
- package/ChartsXAxis/ChartsXAxis.js +7 -7
- package/ChartsYAxis/ChartsYAxis.js +9 -6
- package/Gauge/GaugeProvider.js +5 -5
- package/LineChart/AnimatedArea.js +6 -5
- package/LineChart/AnimatedLine.js +7 -5
- package/LineChart/AreaElement.d.ts +1 -0
- package/LineChart/AreaElement.js +4 -1
- package/LineChart/AreaPlot.js +7 -1
- package/LineChart/LineChart.js +32 -2
- package/LineChart/LineElement.d.ts +1 -0
- package/LineChart/LineElement.js +4 -1
- package/LineChart/LineHighlightPlot.js +4 -1
- package/LineChart/LinePlot.js +7 -1
- package/LineChart/MarkPlot.js +5 -5
- package/LineChart/getColor.d.ts +3 -0
- package/LineChart/getColor.js +31 -0
- package/PieChart/PieChart.js +32 -2
- package/PieChart/PiePlot.js +26 -6
- package/PieChart/formatter.js +4 -2
- package/PieChart/getColor.d.ts +2 -0
- package/PieChart/getColor.js +11 -0
- package/PieChart/getPieCoordinates.d.ts +7 -0
- package/PieChart/getPieCoordinates.js +25 -0
- package/PieChart/index.d.ts +1 -0
- package/PieChart/index.js +11 -0
- package/ResponsiveChartContainer/ResponsiveChartContainer.js +32 -2
- package/ScatterChart/Scatter.d.ts +1 -0
- package/ScatterChart/Scatter.js +6 -3
- package/ScatterChart/ScatterChart.js +32 -2
- package/ScatterChart/ScatterPlot.js +3 -0
- package/ScatterChart/getColor.d.ts +3 -0
- package/ScatterChart/getColor.js +31 -0
- package/SparkLineChart/SparkLineChart.js +15 -0
- package/context/CartesianContextProvider.d.ts +2 -2
- package/context/CartesianContextProvider.js +23 -8
- package/esm/BarChart/BarChart.js +32 -2
- package/esm/BarChart/BarPlot.js +13 -5
- package/esm/BarChart/extremums.js +1 -1
- package/esm/BarChart/getColor.js +27 -0
- package/esm/ChartContainer/ChartContainer.js +36 -4
- package/esm/ChartsAxis/ChartsAxis.js +4 -4
- package/esm/ChartsClipPath/ChartsClipPath.js +2 -2
- package/esm/ChartsLegend/ChartsLegend.js +2 -2
- package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +7 -2
- package/esm/ChartsTooltip/ChartsItemTooltipContent.js +15 -1
- package/esm/ChartsTooltip/DefaultChartsAxisTooltipContent.js +6 -3
- package/esm/ChartsTooltip/DefaultChartsItemTooltipContent.js +13 -4
- package/esm/ChartsVoronoiHandler/ChartsVoronoiHandler.js +6 -6
- package/esm/ChartsXAxis/ChartsXAxis.js +7 -7
- package/esm/ChartsYAxis/ChartsYAxis.js +9 -6
- package/esm/Gauge/GaugeProvider.js +5 -5
- package/esm/LineChart/AnimatedArea.js +6 -5
- package/esm/LineChart/AnimatedLine.js +7 -5
- package/esm/LineChart/AreaElement.js +4 -1
- package/esm/LineChart/AreaPlot.js +7 -1
- package/esm/LineChart/LineChart.js +32 -2
- package/esm/LineChart/LineElement.js +4 -1
- package/esm/LineChart/LineHighlightPlot.js +4 -1
- package/esm/LineChart/LinePlot.js +7 -1
- package/esm/LineChart/MarkPlot.js +5 -5
- package/esm/LineChart/getColor.js +25 -0
- package/esm/PieChart/PieChart.js +32 -2
- package/esm/PieChart/PiePlot.js +26 -6
- package/esm/PieChart/formatter.js +4 -2
- package/esm/PieChart/getColor.js +5 -0
- package/esm/PieChart/getPieCoordinates.js +19 -0
- package/esm/PieChart/index.js +2 -1
- package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +32 -2
- package/esm/ScatterChart/Scatter.js +6 -3
- package/esm/ScatterChart/ScatterChart.js +32 -2
- package/esm/ScatterChart/ScatterPlot.js +3 -0
- package/esm/ScatterChart/getColor.js +25 -0
- package/esm/SparkLineChart/SparkLineChart.js +15 -0
- package/esm/context/CartesianContextProvider.js +23 -8
- package/esm/hooks/index.js +4 -1
- package/esm/hooks/useAxisEvents.js +7 -6
- package/esm/hooks/useChartId.js +8 -0
- package/esm/hooks/useSeries.js +64 -0
- package/esm/hooks/useSvgRef.js +9 -0
- package/esm/internals/colorGetter.js +22 -0
- package/esm/internals/colorScale.js +16 -0
- package/esm/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +96 -0
- package/esm/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +55 -0
- package/esm/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +41 -0
- package/esm/internals/components/ChartsAxesGradients/index.js +1 -0
- package/esm/models/colorMapping.js +1 -0
- package/esm/models/seriesType/index.js +6 -1
- package/hooks/index.d.ts +3 -0
- package/hooks/index.js +65 -1
- package/hooks/useAxisEvents.js +7 -6
- package/hooks/useChartId.d.ts +1 -0
- package/hooks/useChartId.js +16 -0
- package/hooks/useSeries.d.ts +45 -0
- package/hooks/useSeries.js +75 -0
- package/hooks/useSvgRef.d.ts +2 -0
- package/hooks/useSvgRef.js +17 -0
- package/hooks/useTicks.d.ts +1 -1
- package/index.js +1 -1
- package/internals/colorGetter.d.ts +5 -0
- package/internals/colorGetter.js +29 -0
- package/internals/colorScale.d.ts +5 -0
- package/internals/colorScale.js +24 -0
- package/internals/components/ChartsAxesGradients/ChartsAxesGradients.d.ts +3 -0
- package/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +105 -0
- package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.d.ts +13 -0
- package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +63 -0
- package/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.d.ts +12 -0
- package/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +48 -0
- package/internals/components/ChartsAxesGradients/index.d.ts +1 -0
- package/internals/components/ChartsAxesGradients/index.js +16 -0
- package/internals/defaultizeColor.d.ts +4 -4
- package/internals/defaultizeValueFormatter.d.ts +5 -5
- package/internals/getScale.d.ts +2 -2
- package/models/axis.d.ts +44 -4
- package/models/colorMapping.d.ts +45 -0
- package/models/colorMapping.js +5 -0
- package/models/index.d.ts +1 -1
- package/models/seriesType/common.d.ts +10 -2
- package/models/seriesType/index.d.ts +2 -0
- package/models/seriesType/index.js +17 -1
- package/modern/BarChart/BarChart.js +32 -2
- package/modern/BarChart/BarPlot.js +13 -5
- package/modern/BarChart/extremums.js +1 -1
- package/modern/BarChart/getColor.js +27 -0
- package/modern/ChartContainer/ChartContainer.js +36 -4
- package/modern/ChartsAxis/ChartsAxis.js +4 -4
- package/modern/ChartsClipPath/ChartsClipPath.js +2 -2
- package/modern/ChartsLegend/ChartsLegend.js +2 -2
- package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +7 -2
- package/modern/ChartsTooltip/ChartsItemTooltipContent.js +15 -1
- package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +6 -3
- package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +13 -4
- package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +6 -6
- package/modern/ChartsXAxis/ChartsXAxis.js +7 -7
- package/modern/ChartsYAxis/ChartsYAxis.js +9 -6
- package/modern/Gauge/GaugeProvider.js +5 -5
- package/modern/LineChart/AnimatedArea.js +6 -5
- package/modern/LineChart/AnimatedLine.js +7 -5
- package/modern/LineChart/AreaElement.js +4 -1
- package/modern/LineChart/AreaPlot.js +7 -1
- package/modern/LineChart/LineChart.js +32 -2
- package/modern/LineChart/LineElement.js +4 -1
- package/modern/LineChart/LineHighlightPlot.js +4 -1
- package/modern/LineChart/LinePlot.js +7 -1
- package/modern/LineChart/MarkPlot.js +5 -5
- package/modern/LineChart/getColor.js +25 -0
- package/modern/PieChart/PieChart.js +32 -2
- package/modern/PieChart/PiePlot.js +26 -6
- package/modern/PieChart/formatter.js +4 -2
- package/modern/PieChart/getColor.js +5 -0
- package/modern/PieChart/getPieCoordinates.js +19 -0
- package/modern/PieChart/index.js +2 -1
- package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +32 -2
- package/modern/ScatterChart/Scatter.js +6 -3
- package/modern/ScatterChart/ScatterChart.js +32 -2
- package/modern/ScatterChart/ScatterPlot.js +3 -0
- package/modern/ScatterChart/getColor.js +25 -0
- package/modern/SparkLineChart/SparkLineChart.js +15 -0
- package/modern/context/CartesianContextProvider.js +23 -8
- package/modern/hooks/index.js +4 -1
- package/modern/hooks/useAxisEvents.js +7 -6
- package/modern/hooks/useChartId.js +8 -0
- package/modern/hooks/useSeries.js +64 -0
- package/modern/hooks/useSvgRef.js +9 -0
- package/modern/index.js +1 -1
- package/modern/internals/colorGetter.js +22 -0
- package/modern/internals/colorScale.js +16 -0
- package/modern/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +96 -0
- package/modern/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +55 -0
- package/modern/internals/components/ChartsAxesGradients/ChartsPiecewiseGradient.js +41 -0
- package/modern/internals/components/ChartsAxesGradients/index.js +1 -0
- package/modern/models/colorMapping.js +1 -0
- package/modern/models/seriesType/index.js +6 -1
- package/package.json +1 -1
package/BarChart/BarChart.js
CHANGED
|
@@ -374,11 +374,26 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
|
374
374
|
width: _propTypes.default.number,
|
|
375
375
|
/**
|
|
376
376
|
* The configuration of the x-axes.
|
|
377
|
-
* If not provided, a default axis config is used
|
|
377
|
+
* If not provided, a default axis config is used.
|
|
378
378
|
*/
|
|
379
379
|
xAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
380
380
|
axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
|
|
381
381
|
classes: _propTypes.default.object,
|
|
382
|
+
colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
|
|
383
|
+
color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
|
|
384
|
+
max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
385
|
+
min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
386
|
+
type: _propTypes.default.oneOf(['continuous']).isRequired
|
|
387
|
+
}), _propTypes.default.shape({
|
|
388
|
+
colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
|
|
389
|
+
thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
|
|
390
|
+
type: _propTypes.default.oneOf(['piecewise']).isRequired
|
|
391
|
+
}), _propTypes.default.shape({
|
|
392
|
+
colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
|
|
393
|
+
type: _propTypes.default.oneOf(['ordinal']).isRequired,
|
|
394
|
+
unknownColor: _propTypes.default.string,
|
|
395
|
+
values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
|
|
396
|
+
})]),
|
|
382
397
|
data: _propTypes.default.array,
|
|
383
398
|
dataKey: _propTypes.default.string,
|
|
384
399
|
disableLine: _propTypes.default.bool,
|
|
@@ -411,11 +426,26 @@ process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
|
411
426
|
})),
|
|
412
427
|
/**
|
|
413
428
|
* The configuration of the y-axes.
|
|
414
|
-
* If not provided, a default axis config is used
|
|
429
|
+
* If not provided, a default axis config is used.
|
|
415
430
|
*/
|
|
416
431
|
yAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
417
432
|
axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
|
|
418
433
|
classes: _propTypes.default.object,
|
|
434
|
+
colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
|
|
435
|
+
color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
|
|
436
|
+
max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
437
|
+
min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
438
|
+
type: _propTypes.default.oneOf(['continuous']).isRequired
|
|
439
|
+
}), _propTypes.default.shape({
|
|
440
|
+
colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
|
|
441
|
+
thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
|
|
442
|
+
type: _propTypes.default.oneOf(['piecewise']).isRequired
|
|
443
|
+
}), _propTypes.default.shape({
|
|
444
|
+
colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
|
|
445
|
+
type: _propTypes.default.oneOf(['ordinal']).isRequired,
|
|
446
|
+
unknownColor: _propTypes.default.string,
|
|
447
|
+
values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
|
|
448
|
+
})]),
|
|
419
449
|
data: _propTypes.default.array,
|
|
420
450
|
dataKey: _propTypes.default.string,
|
|
421
451
|
disableLine: _propTypes.default.bool,
|
package/BarChart/BarPlot.js
CHANGED
|
@@ -15,10 +15,9 @@ var _CartesianContextProvider = require("../context/CartesianContextProvider");
|
|
|
15
15
|
var _BarElement = require("./BarElement");
|
|
16
16
|
var _axis = require("../models/axis");
|
|
17
17
|
var _constants = require("../constants");
|
|
18
|
+
var _getColor = _interopRequireDefault(require("./getColor"));
|
|
18
19
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
20
|
const _excluded = ["skipAnimation", "onItemClick"];
|
|
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; }
|
|
22
21
|
/**
|
|
23
22
|
* Solution of the equations
|
|
24
23
|
* W = barWidth * N + offset * (N-1)
|
|
@@ -28,6 +27,8 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
28
27
|
* @param gapRatio The ratio of the gap between bars over the bar width.
|
|
29
28
|
* @returns The bar width and the offset between bars.
|
|
30
29
|
*/
|
|
30
|
+
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); }
|
|
31
|
+
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; }
|
|
31
32
|
function getBandSize({
|
|
32
33
|
bandWidth: W,
|
|
33
34
|
numberOfGroups: N,
|
|
@@ -83,6 +84,9 @@ const useAggregatedData = () => {
|
|
|
83
84
|
throw new Error(`MUI X Charts: ${xAxisKey === _constants.DEFAULT_X_AXIS_KEY ? 'The first `xAxis`' : `The x-axis with id "${xAxisKey}"`} shoud have data property.`);
|
|
84
85
|
}
|
|
85
86
|
baseScaleConfig = xAxisConfig;
|
|
87
|
+
if ((0, _axis.isBandScaleConfig)(yAxisConfig) || (0, _axis.isPointScaleConfig)(yAxisConfig)) {
|
|
88
|
+
throw new Error(`MUI X Charts: ${yAxisKey === _constants.DEFAULT_Y_AXIS_KEY ? 'The first `yAxis`' : `The y-axis with id "${yAxisKey}"`} shoud be a continuous type to display the bar series of id "${seriesId}".`);
|
|
89
|
+
}
|
|
86
90
|
} else {
|
|
87
91
|
if (!(0, _axis.isBandScaleConfig)(yAxisConfig)) {
|
|
88
92
|
throw new Error(`MUI X Charts: ${yAxisKey === _constants.DEFAULT_Y_AXIS_KEY ? 'The first `yAxis`' : `The y-axis with id "${yAxisKey}"`} shoud be of type "band" to display the bar series of id "${seriesId}".`);
|
|
@@ -91,9 +95,13 @@ const useAggregatedData = () => {
|
|
|
91
95
|
throw new Error(`MUI X Charts: ${yAxisKey === _constants.DEFAULT_Y_AXIS_KEY ? 'The first `yAxis`' : `The y-axis with id "${yAxisKey}"`} shoud have data property.`);
|
|
92
96
|
}
|
|
93
97
|
baseScaleConfig = yAxisConfig;
|
|
98
|
+
if ((0, _axis.isBandScaleConfig)(xAxisConfig) || (0, _axis.isPointScaleConfig)(xAxisConfig)) {
|
|
99
|
+
throw new Error(`MUI X Charts: ${xAxisKey === _constants.DEFAULT_X_AXIS_KEY ? 'The first `xAxis`' : `The x-axis with id "${xAxisKey}"`} shoud be a continuous type to display the bar series of id "${seriesId}".`);
|
|
100
|
+
}
|
|
94
101
|
}
|
|
95
102
|
const xScale = xAxisConfig.scale;
|
|
96
103
|
const yScale = yAxisConfig.scale;
|
|
104
|
+
const colorGetter = (0, _getColor.default)(series[seriesId], xAxis[xAxisKey], yAxis[yAxisKey]);
|
|
97
105
|
const bandWidth = baseScaleConfig.scale.bandwidth();
|
|
98
106
|
const {
|
|
99
107
|
barWidth,
|
|
@@ -105,8 +113,7 @@ const useAggregatedData = () => {
|
|
|
105
113
|
});
|
|
106
114
|
const barOffset = groupIndex * (barWidth + offset);
|
|
107
115
|
const {
|
|
108
|
-
stackedData
|
|
109
|
-
color
|
|
116
|
+
stackedData
|
|
110
117
|
} = series[seriesId];
|
|
111
118
|
return stackedData.map((values, dataIndex) => {
|
|
112
119
|
const valueCoordinates = values.map(v => verticalLayout ? yScale(v) : xScale(v));
|
|
@@ -122,7 +129,7 @@ const useAggregatedData = () => {
|
|
|
122
129
|
yOrigin: yScale(0),
|
|
123
130
|
height: verticalLayout ? maxValueCoord - minValueCoord : barWidth,
|
|
124
131
|
width: verticalLayout ? barWidth : maxValueCoord - minValueCoord,
|
|
125
|
-
color,
|
|
132
|
+
color: colorGetter(dataIndex),
|
|
126
133
|
highlightScope: series[seriesId].highlightScope
|
|
127
134
|
};
|
|
128
135
|
});
|
package/BarChart/extremums.js
CHANGED
|
@@ -19,7 +19,7 @@ const getValueExtremum = params => {
|
|
|
19
19
|
isDefaultAxis
|
|
20
20
|
} = params;
|
|
21
21
|
return Object.keys(series).filter(seriesId => series[seriesId].yAxisKey === axis.id || isDefaultAxis && series[seriesId].yAxisKey === undefined).reduce((acc, seriesId) => {
|
|
22
|
-
const [seriesMin, seriesMax] = series[seriesId].stackedData
|
|
22
|
+
const [seriesMin, seriesMax] = series[seriesId].stackedData?.reduce((seriesAcc, values) => [Math.min(...values, ...(seriesAcc[0] === null ? [] : [seriesAcc[0]])), Math.max(...values, ...(seriesAcc[1] === null ? [] : [seriesAcc[1]]))], series[seriesId].stackedData[0]) ?? [null, null];
|
|
23
23
|
return [acc[0] === null ? seriesMin : Math.min(seriesMin, acc[0]), acc[1] === null ? seriesMax : Math.max(seriesMax, acc[1])];
|
|
24
24
|
}, [null, null]);
|
|
25
25
|
};
|
|
@@ -0,0 +1,33 @@
|
|
|
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 verticalLayout = series.layout === 'vertical';
|
|
9
|
+
const bandColorScale = verticalLayout ? xAxis.colorScale : yAxis.colorScale;
|
|
10
|
+
const valueColorScale = verticalLayout ? yAxis.colorScale : xAxis.colorScale;
|
|
11
|
+
const bandValues = verticalLayout ? xAxis.data : yAxis.data;
|
|
12
|
+
if (valueColorScale) {
|
|
13
|
+
return dataIndex => {
|
|
14
|
+
const value = series.data[dataIndex];
|
|
15
|
+
const color = value === null ? series.color : valueColorScale(value);
|
|
16
|
+
if (color === null) {
|
|
17
|
+
return series.color;
|
|
18
|
+
}
|
|
19
|
+
return color;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
if (bandColorScale) {
|
|
23
|
+
return dataIndex => {
|
|
24
|
+
const value = bandValues[dataIndex];
|
|
25
|
+
const color = value === null ? series.color : bandColorScale(value);
|
|
26
|
+
if (color === null) {
|
|
27
|
+
return series.color;
|
|
28
|
+
}
|
|
29
|
+
return color;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
return () => series.color;
|
|
33
|
+
}
|
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,167 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## 7.3.0
|
|
7
|
+
|
|
8
|
+
_Apr 18, 2024_
|
|
9
|
+
|
|
10
|
+
We'd like to offer a big thanks to the 10 contributors who made this release possible. Here are some highlights ✨:
|
|
11
|
+
|
|
12
|
+
- 📄 Support [unknown and estimated row count in server-side pagination](https://mui.com/x/react-data-grid/pagination/#index-based-pagination) (#12490) @MBilalShafi
|
|
13
|
+
- 🎨 Support color scales in Charts (#12490) @alexfauquette
|
|
14
|
+
Add a [`colorMap` configuration](https://mui.com/x/react-charts/styling/#values-color) to an axis, and the chart will use it to select colors.
|
|
15
|
+
Each impacted chart ([bar charts](https://mui.com/x/react-charts/bars/#color-scale), [line charts](https://mui.com/x/react-charts/lines/#color-scale), [scatter charts](https://mui.com/x/react-charts/scatter/#color-scale)) has a dedicated section explaining how this color map is impacting it.
|
|
16
|
+
|
|
17
|
+
<img src="https://github.com/mui/mui-x/assets/45398769/f0066606-3486-4c4e-b3be-7fdd56d763c3" alt="scatter chart with gradient along y-axis" />
|
|
18
|
+
|
|
19
|
+
- 🌍 Improve Danish (da-DK) locale on the Data Grid
|
|
20
|
+
- 🐞 Bugfixes
|
|
21
|
+
- 📚 Documentation improvements
|
|
22
|
+
|
|
23
|
+
### Data Grid
|
|
24
|
+
|
|
25
|
+
#### `@mui/x-data-grid@7.3.0`
|
|
26
|
+
|
|
27
|
+
- [DataGrid] Fix calling `onCellEditStop` on error (#12747) @sai6855
|
|
28
|
+
- [DataGrid] Fix column resize (#12792) @romgrk
|
|
29
|
+
- [DataGrid] Fix column separators (#12808) @romgrk
|
|
30
|
+
- [DataGrid] Limit panel width to not exceed screen width (#12799) @cherniavskii
|
|
31
|
+
- [DataGrid] Support advanced server-side pagination use cases (#12474) @MBilalShafi
|
|
32
|
+
- [DataGrid] Support state export and restore on grid density (#12671) @MBilalShafi
|
|
33
|
+
- [l10n] Improve Danish (da-DK) locale (#12784) @EmilBahnsen
|
|
34
|
+
|
|
35
|
+
#### `@mui/x-data-grid-pro@7.3.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
36
|
+
|
|
37
|
+
Same changes as in `@mui/x-data-grid@7.3.0`, plus:
|
|
38
|
+
|
|
39
|
+
- [DataGridPro] Implement header filter height (#12666) @romgrk
|
|
40
|
+
|
|
41
|
+
#### `@mui/x-data-grid-premium@7.3.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
42
|
+
|
|
43
|
+
Same changes as in `@mui/x-data-grid-pro@7.3.0`.
|
|
44
|
+
|
|
45
|
+
### Charts
|
|
46
|
+
|
|
47
|
+
#### Breaking change
|
|
48
|
+
|
|
49
|
+
A typo fix:
|
|
50
|
+
|
|
51
|
+
```diff
|
|
52
|
+
- ContinuouseScaleName
|
|
53
|
+
+ ContinuousScaleName
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
#### `@mui/x-charts@7.3.0`
|
|
57
|
+
|
|
58
|
+
- [charts] Add `dataIndex` to series `valueFormatter` (#12745) @JCQuintas
|
|
59
|
+
- [charts] Add color scale (#12490) @alexfauquette
|
|
60
|
+
- [charts] Do not document the usage of `DEFAULT_X_AXIS_KEY` and `DEFAULT_Y_AXIS_KEY` (#12780) @alexfauquette
|
|
61
|
+
- [charts] Export more utils (#12744) @alexfauquette
|
|
62
|
+
- [charts] Fix passing slot props down to `PieArcLabel` (#12806) @JCQuintas
|
|
63
|
+
|
|
64
|
+
### Tree View
|
|
65
|
+
|
|
66
|
+
#### `@mui/x-tree-view@7.3.0`
|
|
67
|
+
|
|
68
|
+
- [TreeView] Support `defaultMuiPrevented` on the `onFocus` prop of the root slot (#12813) @flaviendelangle
|
|
69
|
+
|
|
70
|
+
### Docs
|
|
71
|
+
|
|
72
|
+
- [docs] Add grid cell display example to the migration guide (#12793) @romgrk
|
|
73
|
+
- [docs] Use charts classes objects (#12781) @alexfauquette
|
|
74
|
+
- [docs] Fix layout shift on demos (#12816) @zanivan
|
|
75
|
+
- [test] Increase timeout for test that sometimes fail on `DateTimeRangePicker` (#12786) @LukasTy
|
|
76
|
+
|
|
77
|
+
### Core
|
|
78
|
+
|
|
79
|
+
- [docs-infra] Prepare infra to document charts interfaces (#12653) @alexfauquette
|
|
80
|
+
|
|
81
|
+
## 7.2.0
|
|
82
|
+
|
|
83
|
+
_Apr 12, 2024_
|
|
84
|
+
|
|
85
|
+
We'd like to offer a big thanks to the 12 contributors who made this release possible. Here are some highlights ✨:
|
|
86
|
+
|
|
87
|
+
- 🎨 Make grid colors customizable through the MUI themes API
|
|
88
|
+
- 🌍 Improve French (fr-FR), German (de-DE), and Swedish (sv-SE) locales on the Data Grid and Pickers
|
|
89
|
+
- 🐞 Bugfixes
|
|
90
|
+
- 📚 Documentation improvements
|
|
91
|
+
|
|
92
|
+
### Data Grid
|
|
93
|
+
|
|
94
|
+
#### `@mui/x-data-grid@7.2.0`
|
|
95
|
+
|
|
96
|
+
- [DataGrid] Add missing `api` property to `GridCallbackDetails` (#12742) @sai6855
|
|
97
|
+
- [DataGrid] Do not escape double quotes when copying to clipboard (#12722) @cherniavskii
|
|
98
|
+
- [DataGrid] Fix column vertical border (#12741) @romgrk
|
|
99
|
+
- [DataGrid] Fix invalid date error when filtering `date`/`dateTime` columns (#12709) @cherniavskii
|
|
100
|
+
- [DataGrid] Fix overflow with dynamic row height (#12683) @romgrk
|
|
101
|
+
- [DataGrid] Make colors customizable (#12614) @romgrk
|
|
102
|
+
- [l10n] Improve French (fr-FR) locale (#12755) @derek-0000
|
|
103
|
+
- [l10n] Improve German (de-DE) locale (#12752) @Jens-Schoen
|
|
104
|
+
- [l10n] Improve Swedish (sv-SE) locale (#12731) @pontusdacke
|
|
105
|
+
|
|
106
|
+
#### `@mui/x-data-grid-pro@7.2.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
107
|
+
|
|
108
|
+
Same changes as in `@mui/x-data-grid@7.2.0`.
|
|
109
|
+
|
|
110
|
+
#### `@mui/x-data-grid-premium@7.2.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
111
|
+
|
|
112
|
+
Same changes as in `@mui/x-data-grid-pro@7.2.0`, plus:
|
|
113
|
+
|
|
114
|
+
- [DataGridPremium] Fix clipboard paste not working when cell loses focus (#12724) @cherniavskii
|
|
115
|
+
|
|
116
|
+
### Date and Time Pickers
|
|
117
|
+
|
|
118
|
+
#### `@mui/x-date-pickers@7.2.0`
|
|
119
|
+
|
|
120
|
+
- [fields] Fix field editing after closing the picker (#12675) @LukasTy
|
|
121
|
+
- [l10n] Improve French (fr-FR) locale (#12692) @FaroukBel
|
|
122
|
+
- [l10n] Improve German (de-DE) locale (#12752) @Jens-Schoen
|
|
123
|
+
- [l10n] Improve Swedish (sv-SE) locale (#12731) @pontusdacke
|
|
124
|
+
- [pickers] Fix desktop date time Pickers grid layout (#12748) @LukasTy
|
|
125
|
+
|
|
126
|
+
#### `@mui/x-date-pickers-pro@7.2.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
127
|
+
|
|
128
|
+
Same changes as in `@mui/x-date-pickers@7.2.0`, plus:
|
|
129
|
+
|
|
130
|
+
- [DateTimeRangePicker] Fix desktop toolbar style (#12760) @LukasTy
|
|
131
|
+
|
|
132
|
+
### Charts
|
|
133
|
+
|
|
134
|
+
#### `@mui/x-charts@7.2.0`
|
|
135
|
+
|
|
136
|
+
- [charts] Fix Bar chart with empty dataset throwing an error (#12708) @JCQuintas
|
|
137
|
+
- [charts] Fix `tickLabelInterval` not working on `YAxis` (#12746) @JCQuintas
|
|
138
|
+
|
|
139
|
+
### Tree View
|
|
140
|
+
|
|
141
|
+
#### `@mui/x-tree-view@7.2.0`
|
|
142
|
+
|
|
143
|
+
- [TreeView] Add a new lookup to access an item index without expansive computation (#12729) @flaviendelangle
|
|
144
|
+
- [TreeView] Clean up usage of term "node" in internals (#12655) @noraleonte
|
|
145
|
+
- [TreeView] Improve performance by removing `getNavigableChildrenIds` method (#12713) @flaviendelangle
|
|
146
|
+
- [TreeView] Remove `state.items.itemTree` (#12717) @flaviendelangle
|
|
147
|
+
- [TreeView] Remove remaining occurences of the word "node" in the codebase (#12712) @flaviendelangle
|
|
148
|
+
- [TreeView] Return `instance` and `publicAPI` methods from plugin and populate the main objects inside `useTreeView` (#12650) @flaviendelangle
|
|
149
|
+
- [TreeView] Fix behaviors when the item order changes (#12369) @flaviendelangle
|
|
150
|
+
|
|
151
|
+
### Docs
|
|
152
|
+
|
|
153
|
+
- [docs] Add `AxisFormatter` documentation for customizing tick/tooltip value formatting (#12700) @JCQuintas
|
|
154
|
+
- [docs] Add file explorer example to rich tree view customization docs (#12707) @noraleonte
|
|
155
|
+
- [docs] Do not use import of depth 3 in the doc (#12716) @flaviendelangle
|
|
156
|
+
- [docs] Explain how to clip plots with composition (#12679) @alexfauquette
|
|
157
|
+
- [docs] Fix typo in Data Grid v7 migration page (#12720) @bfaulk96
|
|
158
|
+
- [docs] Fix typo in Pickers v7 migration page (#12721) @bfaulk96
|
|
159
|
+
|
|
160
|
+
### Core
|
|
161
|
+
|
|
162
|
+
- [core] Support multiple resolved `l10n` PR packages (#12735) @LukasTy
|
|
163
|
+
- [core] Update Netlify release references in release README (#12687) @LukasTy
|
|
164
|
+
- [core] Use `describeTreeView` for icons tests (#12672) @flaviendelangle
|
|
165
|
+
- [core] Use `describeTreeView` in existing tests for `useTreeViewItems` (#12732) @flaviendelangle
|
|
166
|
+
|
|
6
167
|
## 7.1.1
|
|
7
168
|
|
|
8
169
|
_Apr 5, 2024_
|
|
@@ -2972,6 +3133,56 @@ Here is an example of the renaming for the `<ChartsTooltip />` component.
|
|
|
2972
3133
|
- [core] Update release instructions as per v7 configuration (#10962) @MBilalShafi
|
|
2973
3134
|
- [license] Correctly throw errors (#10924) @oliviertassinari
|
|
2974
3135
|
|
|
3136
|
+
## 6.19.11
|
|
3137
|
+
|
|
3138
|
+
_Apr 18, 2024_
|
|
3139
|
+
|
|
3140
|
+
We'd like to offer a big thanks to the 1 contributor who made this release possible. Here are some highlights ✨:
|
|
3141
|
+
|
|
3142
|
+
- 🐞 Bugfixes
|
|
3143
|
+
|
|
3144
|
+
### Data Grid
|
|
3145
|
+
|
|
3146
|
+
#### `@mui/x-data-grid@6.19.11`
|
|
3147
|
+
|
|
3148
|
+
- [DataGrid] Fix virtualization memory leak (#12812) @romgrk
|
|
3149
|
+
|
|
3150
|
+
#### `@mui/x-data-grid-pro@6.19.11` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
3151
|
+
|
|
3152
|
+
Same changes as in `@mui/x-data-grid@6.19.11`.
|
|
3153
|
+
|
|
3154
|
+
#### `@mui/x-data-grid-premium@6.19.11` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
3155
|
+
|
|
3156
|
+
Same changes as in `@mui/x-data-grid-pro@6.19.11`.
|
|
3157
|
+
|
|
3158
|
+
## 6.19.10
|
|
3159
|
+
|
|
3160
|
+
_Apr 12, 2024_
|
|
3161
|
+
|
|
3162
|
+
We'd like to offer a big thanks to the 2 contributors who made this release possible. Here are some highlights ✨:
|
|
3163
|
+
|
|
3164
|
+
- 🐞 Bugfixes
|
|
3165
|
+
- 📚 Documentation improvements
|
|
3166
|
+
|
|
3167
|
+
### Data Grid
|
|
3168
|
+
|
|
3169
|
+
#### `@mui/x-data-grid@6.19.10`
|
|
3170
|
+
|
|
3171
|
+
- [DataGrid] Do not escape double quotes when copying to clipboard (#12734) @cherniavskii
|
|
3172
|
+
- [DataGrid] Fix bug in suspense (#12754) @cherniavskii
|
|
3173
|
+
|
|
3174
|
+
#### `@mui/x-data-grid-pro@6.19.10` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
3175
|
+
|
|
3176
|
+
Same changes as in `@mui/x-data-grid@6.19.10`.
|
|
3177
|
+
|
|
3178
|
+
#### `@mui/x-data-grid-premium@6.19.10` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
3179
|
+
|
|
3180
|
+
Same changes as in `@mui/x-data-grid-pro@6.19.10`.
|
|
3181
|
+
|
|
3182
|
+
### Core
|
|
3183
|
+
|
|
3184
|
+
- [core] Update the docs release source branch (#12685) @LukasTy
|
|
3185
|
+
|
|
2975
3186
|
## 6.19.9
|
|
2976
3187
|
|
|
2977
3188
|
_Apr 5, 2024_
|
|
@@ -15,6 +15,7 @@ var _useReducedMotion = require("../hooks/useReducedMotion");
|
|
|
15
15
|
var _ChartsSurface = require("../ChartsSurface");
|
|
16
16
|
var _CartesianContextProvider = require("../context/CartesianContextProvider");
|
|
17
17
|
var _HighlightProvider = require("../context/HighlightProvider");
|
|
18
|
+
var _ChartsAxesGradients = require("../internals/components/ChartsAxesGradients");
|
|
18
19
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
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); }
|
|
20
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; }
|
|
@@ -53,7 +54,7 @@ const ChartContainer = exports.ChartContainer = /*#__PURE__*/React.forwardRef(fu
|
|
|
53
54
|
dataset: dataset,
|
|
54
55
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_InteractionProvider.InteractionProvider, {
|
|
55
56
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_HighlightProvider.HighlightProvider, {
|
|
56
|
-
children: /*#__PURE__*/(0, _jsxRuntime.
|
|
57
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChartsSurface.ChartsSurface, {
|
|
57
58
|
width: width,
|
|
58
59
|
height: height,
|
|
59
60
|
ref: handleRef,
|
|
@@ -61,7 +62,7 @@ const ChartContainer = exports.ChartContainer = /*#__PURE__*/React.forwardRef(fu
|
|
|
61
62
|
title: title,
|
|
62
63
|
desc: desc,
|
|
63
64
|
disableAxisListener: disableAxisListener,
|
|
64
|
-
children: children
|
|
65
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxesGradients.ChartsAxesGradients, {}), children]
|
|
65
66
|
})
|
|
66
67
|
})
|
|
67
68
|
})
|
|
@@ -128,11 +129,26 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
|
|
|
128
129
|
width: _propTypes.default.number.isRequired,
|
|
129
130
|
/**
|
|
130
131
|
* The configuration of the x-axes.
|
|
131
|
-
* If not provided, a default axis config is used
|
|
132
|
+
* If not provided, a default axis config is used.
|
|
132
133
|
*/
|
|
133
134
|
xAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
134
135
|
axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
|
|
135
136
|
classes: _propTypes.default.object,
|
|
137
|
+
colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
|
|
138
|
+
color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
|
|
139
|
+
max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
140
|
+
min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
141
|
+
type: _propTypes.default.oneOf(['continuous']).isRequired
|
|
142
|
+
}), _propTypes.default.shape({
|
|
143
|
+
colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
|
|
144
|
+
thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
|
|
145
|
+
type: _propTypes.default.oneOf(['piecewise']).isRequired
|
|
146
|
+
}), _propTypes.default.shape({
|
|
147
|
+
colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
|
|
148
|
+
type: _propTypes.default.oneOf(['ordinal']).isRequired,
|
|
149
|
+
unknownColor: _propTypes.default.string,
|
|
150
|
+
values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
|
|
151
|
+
})]),
|
|
136
152
|
data: _propTypes.default.array,
|
|
137
153
|
dataKey: _propTypes.default.string,
|
|
138
154
|
disableLine: _propTypes.default.bool,
|
|
@@ -165,11 +181,26 @@ process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
|
|
|
165
181
|
})),
|
|
166
182
|
/**
|
|
167
183
|
* The configuration of the y-axes.
|
|
168
|
-
* If not provided, a default axis config is used
|
|
184
|
+
* If not provided, a default axis config is used.
|
|
169
185
|
*/
|
|
170
186
|
yAxis: _propTypes.default.arrayOf(_propTypes.default.shape({
|
|
171
187
|
axisId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
|
|
172
188
|
classes: _propTypes.default.object,
|
|
189
|
+
colorMap: _propTypes.default.oneOfType([_propTypes.default.shape({
|
|
190
|
+
color: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.string.isRequired), _propTypes.default.func]).isRequired,
|
|
191
|
+
max: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
192
|
+
min: _propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]),
|
|
193
|
+
type: _propTypes.default.oneOf(['continuous']).isRequired
|
|
194
|
+
}), _propTypes.default.shape({
|
|
195
|
+
colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
|
|
196
|
+
thresholds: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number]).isRequired).isRequired,
|
|
197
|
+
type: _propTypes.default.oneOf(['piecewise']).isRequired
|
|
198
|
+
}), _propTypes.default.shape({
|
|
199
|
+
colors: _propTypes.default.arrayOf(_propTypes.default.string).isRequired,
|
|
200
|
+
type: _propTypes.default.oneOf(['ordinal']).isRequired,
|
|
201
|
+
unknownColor: _propTypes.default.string,
|
|
202
|
+
values: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.instanceOf(Date), _propTypes.default.number, _propTypes.default.string]).isRequired)
|
|
203
|
+
})]),
|
|
173
204
|
data: _propTypes.default.array,
|
|
174
205
|
dataKey: _propTypes.default.string,
|
|
175
206
|
disableLine: _propTypes.default.bool,
|
package/ChartsAxis/ChartsAxis.js
CHANGED
|
@@ -14,12 +14,12 @@ var _ChartsYAxis = require("../ChartsYAxis");
|
|
|
14
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
15
|
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); }
|
|
16
16
|
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; }
|
|
17
|
-
const getAxisId = propsValue => {
|
|
17
|
+
const getAxisId = (propsValue, defaultAxisId) => {
|
|
18
18
|
if (propsValue == null) {
|
|
19
19
|
return null;
|
|
20
20
|
}
|
|
21
21
|
if (typeof propsValue === 'object') {
|
|
22
|
-
return propsValue.axisId ?? null;
|
|
22
|
+
return propsValue.axisId ?? defaultAxisId ?? null;
|
|
23
23
|
}
|
|
24
24
|
return propsValue;
|
|
25
25
|
};
|
|
@@ -63,8 +63,8 @@ function ChartsAxis(props) {
|
|
|
63
63
|
|
|
64
64
|
const leftId = getAxisId(leftAxis === undefined ? yAxisIds[0] : leftAxis);
|
|
65
65
|
const bottomId = getAxisId(bottomAxis === undefined ? xAxisIds[0] : bottomAxis);
|
|
66
|
-
const topId = getAxisId(topAxis);
|
|
67
|
-
const rightId = getAxisId(rightAxis);
|
|
66
|
+
const topId = getAxisId(topAxis, xAxisIds[0]);
|
|
67
|
+
const rightId = getAxisId(rightAxis, yAxisIds[0]);
|
|
68
68
|
if (topId !== null && !xAxis[topId]) {
|
|
69
69
|
throw Error([`MUI X Charts: id used for top axis "${topId}" is not defined.`, `Available ids are: ${xAxisIds.join(', ')}.`].join('\n'));
|
|
70
70
|
}
|
|
@@ -8,7 +8,7 @@ exports.ChartsClipPath = ChartsClipPath;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var React = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
-
var
|
|
11
|
+
var _useDrawingArea = require("../hooks/useDrawingArea");
|
|
12
12
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
13
13
|
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); }
|
|
14
14
|
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,7 +27,7 @@ function ChartsClipPath(props) {
|
|
|
27
27
|
top,
|
|
28
28
|
width,
|
|
29
29
|
height
|
|
30
|
-
} =
|
|
30
|
+
} = (0, _useDrawingArea.useDrawingArea)();
|
|
31
31
|
const offset = (0, _extends2.default)({
|
|
32
32
|
top: 0,
|
|
33
33
|
right: 0,
|
|
@@ -11,11 +11,11 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
11
11
|
var _utils = require("@mui/base/utils");
|
|
12
12
|
var _utils2 = require("@mui/utils");
|
|
13
13
|
var _styles = require("@mui/material/styles");
|
|
14
|
-
var _DrawingProvider = require("../context/DrawingProvider");
|
|
15
14
|
var _utils3 = require("./utils");
|
|
16
15
|
var _SeriesContextProvider = require("../context/SeriesContextProvider");
|
|
17
16
|
var _chartsLegendClasses = require("./chartsLegendClasses");
|
|
18
17
|
var _DefaultChartsLegend = require("./DefaultChartsLegend");
|
|
18
|
+
var _hooks = require("../hooks");
|
|
19
19
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
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
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; }
|
|
@@ -55,7 +55,7 @@ function ChartsLegend(inProps) {
|
|
|
55
55
|
const classes = useUtilityClasses((0, _extends2.default)({}, props, {
|
|
56
56
|
theme
|
|
57
57
|
}));
|
|
58
|
-
const drawingArea =
|
|
58
|
+
const drawingArea = (0, _hooks.useDrawingArea)();
|
|
59
59
|
const series = React.useContext(_SeriesContextProvider.SeriesContext);
|
|
60
60
|
const seriesToDisplay = (0, _utils3.getSeriesToDisplay)(series);
|
|
61
61
|
const ChartLegendRender = slots?.legend ?? _DefaultChartsLegend.DefaultChartsLegend;
|
|
@@ -4,6 +4,9 @@ import { AxisInteractionData } from '../context/InteractionProvider';
|
|
|
4
4
|
import { ChartSeriesDefaultized, ChartSeriesType } from '../models/seriesType/config';
|
|
5
5
|
import { AxisDefaultized } from '../models/axis';
|
|
6
6
|
import { ChartsTooltipClasses } from './chartsTooltipClasses';
|
|
7
|
+
type ChartSeriesDefaultizedWithColorGetter = ChartSeriesDefaultized<ChartSeriesType> & {
|
|
8
|
+
getColor: (dataIndex: number) => string;
|
|
9
|
+
};
|
|
7
10
|
export type ChartsAxisContentProps = {
|
|
8
11
|
/**
|
|
9
12
|
* Data identifying the triggered axis.
|
|
@@ -12,7 +15,7 @@ export type ChartsAxisContentProps = {
|
|
|
12
15
|
/**
|
|
13
16
|
* The series linked to the triggered axis.
|
|
14
17
|
*/
|
|
15
|
-
series:
|
|
18
|
+
series: ChartSeriesDefaultizedWithColorGetter[];
|
|
16
19
|
/**
|
|
17
20
|
* The properties of the triggered axis.
|
|
18
21
|
*/
|
|
@@ -13,6 +13,7 @@ var _SeriesContextProvider = require("../context/SeriesContextProvider");
|
|
|
13
13
|
var _CartesianContextProvider = require("../context/CartesianContextProvider");
|
|
14
14
|
var _DefaultChartsAxisTooltipContent = require("./DefaultChartsAxisTooltipContent");
|
|
15
15
|
var _utils2 = require("./utils");
|
|
16
|
+
var _colorGetter = _interopRequireDefault(require("../internals/colorGetter"));
|
|
16
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
17
18
|
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); }
|
|
18
19
|
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; }
|
|
@@ -42,12 +43,16 @@ function ChartsAxisTooltipContent(props) {
|
|
|
42
43
|
const item = series[seriesType].series[seriesId];
|
|
43
44
|
const axisKey = isXaxis ? item.xAxisKey : item.yAxisKey;
|
|
44
45
|
if (axisKey === undefined || axisKey === USED_AXIS_ID) {
|
|
45
|
-
|
|
46
|
+
const seriesToAdd = series[seriesType].series[seriesId];
|
|
47
|
+
const color = (0, _colorGetter.default)(seriesToAdd, xAxis[seriesToAdd.xAxisKey ?? xAxisIds[0]], yAxis[seriesToAdd.yAxisKey ?? yAxisIds[0]]);
|
|
48
|
+
rep.push((0, _extends2.default)({}, seriesToAdd, {
|
|
49
|
+
getColor: color
|
|
50
|
+
}));
|
|
46
51
|
}
|
|
47
52
|
});
|
|
48
53
|
});
|
|
49
54
|
return rep;
|
|
50
|
-
}, [USED_AXIS_ID, isXaxis, series]);
|
|
55
|
+
}, [USED_AXIS_ID, isXaxis, series, xAxis, xAxisIds, yAxis, yAxisIds]);
|
|
51
56
|
const relevantAxis = React.useMemo(() => {
|
|
52
57
|
return isXaxis ? xAxis[USED_AXIS_ID] : yAxis[USED_AXIS_ID];
|
|
53
58
|
}, [USED_AXIS_ID, isXaxis, xAxis, yAxis]);
|
|
@@ -16,6 +16,12 @@ export type ChartsItemContentProps<T extends ChartSeriesType = ChartSeriesType>
|
|
|
16
16
|
* Override or extend the styles applied to the component.
|
|
17
17
|
*/
|
|
18
18
|
classes: ChartsTooltipClasses;
|
|
19
|
+
/**
|
|
20
|
+
* Get the color of the item with index `dataIndex`.
|
|
21
|
+
* @param {number} dataIndex The data index of the item.
|
|
22
|
+
* @returns {string} The color to display.
|
|
23
|
+
*/
|
|
24
|
+
getColor: (dataIndex: number) => string;
|
|
19
25
|
sx?: SxProps<Theme>;
|
|
20
26
|
};
|
|
21
27
|
declare function ChartsItemTooltipContent<T extends ChartSeriesType>(props: {
|
|
@@ -11,6 +11,8 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
11
11
|
var _utils = require("@mui/base/utils");
|
|
12
12
|
var _SeriesContextProvider = require("../context/SeriesContextProvider");
|
|
13
13
|
var _DefaultChartsItemTooltipContent = require("./DefaultChartsItemTooltipContent");
|
|
14
|
+
var _CartesianContextProvider = require("../context/CartesianContextProvider");
|
|
15
|
+
var _colorGetter = _interopRequireDefault(require("../internals/colorGetter"));
|
|
14
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
17
|
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); }
|
|
16
18
|
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,6 +25,16 @@ function ChartsItemTooltipContent(props) {
|
|
|
23
25
|
contentProps
|
|
24
26
|
} = props;
|
|
25
27
|
const series = React.useContext(_SeriesContextProvider.SeriesContext)[itemData.type].series[itemData.seriesId];
|
|
28
|
+
const axisData = React.useContext(_CartesianContextProvider.CartesianContext);
|
|
29
|
+
const {
|
|
30
|
+
xAxis,
|
|
31
|
+
yAxis,
|
|
32
|
+
xAxisIds,
|
|
33
|
+
yAxisIds
|
|
34
|
+
} = axisData;
|
|
35
|
+
const defaultXAxisId = xAxisIds[0];
|
|
36
|
+
const defaultYAxisId = yAxisIds[0];
|
|
37
|
+
const getColor = series.type === 'pie' ? (0, _colorGetter.default)(series) : (0, _colorGetter.default)(series, xAxis[series.xAxisKey ?? defaultXAxisId], yAxis[series.yAxisKey ?? defaultYAxisId]);
|
|
26
38
|
const Content = content ?? _DefaultChartsItemTooltipContent.DefaultChartsItemTooltipContent;
|
|
27
39
|
const chartTooltipContentProps = (0, _utils.useSlotProps)({
|
|
28
40
|
elementType: Content,
|
|
@@ -31,7 +43,8 @@ function ChartsItemTooltipContent(props) {
|
|
|
31
43
|
itemData,
|
|
32
44
|
series,
|
|
33
45
|
sx,
|
|
34
|
-
classes
|
|
46
|
+
classes,
|
|
47
|
+
getColor
|
|
35
48
|
},
|
|
36
49
|
ownerState: {}
|
|
37
50
|
});
|
|
@@ -46,6 +59,7 @@ process.env.NODE_ENV !== "production" ? ChartsItemTooltipContent.propTypes = {
|
|
|
46
59
|
content: _propTypes.default.elementType,
|
|
47
60
|
contentProps: _propTypes.default.shape({
|
|
48
61
|
classes: _propTypes.default.object,
|
|
62
|
+
getColor: _propTypes.default.func,
|
|
49
63
|
itemData: _propTypes.default.shape({
|
|
50
64
|
dataIndex: _propTypes.default.number,
|
|
51
65
|
seriesId: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
|