@mui/x-charts 7.9.0 → 7.11.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 +2 -2
- package/BarChart/formatter.js +1 -1
- package/BarChart/useBarChartProps.js +38 -33
- package/CHANGELOG.md +159 -0
- package/ChartContainer/ChartContainer.d.ts +28 -2
- package/ChartContainer/ChartContainer.js +25 -66
- package/ChartContainer/useChartContainerHooks.d.ts +1 -1
- package/ChartContainer/useChartContainerHooks.js +2 -2
- package/ChartContainer/useChartContainerProps.d.ts +86 -0
- package/ChartContainer/useChartContainerProps.js +95 -0
- package/ChartContainer/useDefaultizeAxis.d.ts +36 -0
- package/ChartContainer/useDefaultizeAxis.js +29 -0
- package/ChartsLegend/ChartsLegend.d.ts +3 -12
- package/ChartsLegend/ContinuousColorLegend.d.ts +65 -0
- package/ChartsLegend/ContinuousColorLegend.js +398 -0
- package/ChartsLegend/DefaultChartsLegend.d.ts +7 -50
- package/ChartsLegend/DefaultChartsLegend.js +13 -198
- package/ChartsLegend/LegendPerItem.d.ts +61 -0
- package/ChartsLegend/LegendPerItem.js +151 -0
- package/ChartsLegend/PiecewiseColorLegend.d.ts +26 -0
- package/ChartsLegend/PiecewiseColorLegend.js +169 -0
- package/ChartsLegend/chartsLegend.types.d.ts +31 -0
- package/ChartsLegend/chartsLegend.types.js +5 -0
- package/ChartsLegend/index.d.ts +2 -0
- package/ChartsLegend/index.js +22 -0
- package/ChartsLegend/legend.types.d.ts +62 -0
- package/ChartsLegend/legend.types.js +5 -0
- package/ChartsLegend/legendItemsPlacement.d.ts +3 -0
- package/ChartsLegend/legendItemsPlacement.js +79 -0
- package/ChartsLegend/useAxis.d.ts +7 -0
- package/ChartsLegend/useAxis.js +47 -0
- package/ChartsLegend/utils.d.ts +1 -8
- package/ChartsReferenceLine/ChartsReferenceLine.d.ts +1 -1
- package/ChartsSurface.js +3 -1
- package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +26 -18
- package/ChartsXAxis/ChartsXAxis.js +1 -1
- package/ChartsYAxis/ChartsYAxis.js +15 -3
- package/Gauge/Gauge.d.ts +1 -4
- package/Gauge/Gauge.js +9 -6
- package/Gauge/GaugeContainer.js +8 -4
- package/Gauge/GaugeProvider.js +9 -9
- package/LineChart/AnimatedArea.js +2 -2
- package/LineChart/AnimatedLine.js +2 -2
- package/LineChart/AreaPlot.js +7 -1
- package/LineChart/LineChart.js +2 -2
- package/LineChart/LineHighlightPlot.js +8 -0
- package/LineChart/MarkElement.js +2 -2
- package/LineChart/MarkPlot.js +4 -20
- package/LineChart/extremums.js +1 -1
- package/LineChart/formatter.js +1 -1
- package/LineChart/useLineChartProps.js +38 -33
- package/PieChart/PieChart.d.ts +1 -4
- package/PieChart/PieChart.js +40 -34
- package/PieChart/PiePlot.js +6 -6
- package/PieChart/getPieCoordinates.js +3 -3
- package/ResponsiveChartContainer/ResponsiveChartContainer.js +8 -20
- package/ResponsiveChartContainer/useChartContainerDimensions.d.ts +5 -1
- package/ResponsiveChartContainer/useChartContainerDimensions.js +6 -2
- package/ResponsiveChartContainer/useResponsiveChartContainerProps.d.ts +20 -0
- package/ResponsiveChartContainer/useResponsiveChartContainerProps.js +73 -0
- package/ScatterChart/Scatter.js +6 -9
- package/ScatterChart/useScatterChartProps.js +35 -30
- package/SparkLineChart/SparkLineChart.js +27 -22
- package/context/CartesianProvider/CartesianProvider.d.ts +2 -3
- package/context/CartesianProvider/CartesianProvider.js +18 -7
- package/context/CartesianProvider/computeValue.d.ts +32 -9
- package/context/CartesianProvider/computeValue.js +20 -16
- package/context/CartesianProvider/defaultizeAxis.d.ts +36 -0
- package/context/CartesianProvider/defaultizeAxis.js +21 -0
- package/context/CartesianProvider/index.d.ts +0 -1
- package/context/CartesianProvider/index.js +1 -3
- package/context/CartesianProvider/normalizeAxis.d.ts +1 -1
- package/context/CartesianProvider/normalizeAxis.js +1 -1
- package/context/DrawingProvider.d.ts +11 -0
- package/context/DrawingProvider.js +9 -2
- package/context/HighlightedProvider/HighlightedProvider.js +2 -2
- package/esm/BarChart/BarChart.js +2 -2
- package/esm/BarChart/formatter.js +1 -1
- package/esm/BarChart/useBarChartProps.js +38 -33
- package/esm/ChartContainer/ChartContainer.js +25 -66
- package/esm/ChartContainer/useChartContainerHooks.js +2 -2
- package/esm/ChartContainer/useChartContainerProps.js +87 -0
- package/esm/ChartContainer/useDefaultizeAxis.js +19 -0
- package/esm/ChartsLegend/ContinuousColorLegend.js +390 -0
- package/esm/ChartsLegend/DefaultChartsLegend.js +14 -198
- package/esm/ChartsLegend/LegendPerItem.js +141 -0
- package/esm/ChartsLegend/PiecewiseColorLegend.js +161 -0
- package/esm/ChartsLegend/chartsLegend.types.js +1 -0
- package/esm/ChartsLegend/index.js +2 -0
- package/esm/ChartsLegend/legend.types.js +1 -0
- package/esm/ChartsLegend/legendItemsPlacement.js +72 -0
- package/esm/ChartsLegend/useAxis.js +39 -0
- package/esm/ChartsSurface.js +3 -1
- package/esm/ChartsVoronoiHandler/ChartsVoronoiHandler.js +26 -18
- package/esm/ChartsXAxis/ChartsXAxis.js +1 -1
- package/esm/ChartsYAxis/ChartsYAxis.js +15 -3
- package/esm/Gauge/Gauge.js +8 -5
- package/esm/Gauge/GaugeContainer.js +8 -4
- package/esm/Gauge/GaugeProvider.js +1 -1
- package/esm/LineChart/AnimatedArea.js +1 -1
- package/esm/LineChart/AnimatedLine.js +1 -1
- package/esm/LineChart/AreaPlot.js +7 -1
- package/esm/LineChart/LineChart.js +2 -2
- package/esm/LineChart/LineHighlightPlot.js +8 -0
- package/esm/LineChart/MarkElement.js +1 -1
- package/esm/LineChart/MarkPlot.js +3 -19
- package/esm/LineChart/extremums.js +1 -1
- package/esm/LineChart/formatter.js +1 -1
- package/esm/LineChart/useLineChartProps.js +38 -33
- package/esm/PieChart/PieChart.js +39 -33
- package/esm/PieChart/PiePlot.js +1 -1
- package/esm/PieChart/getPieCoordinates.js +1 -1
- package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +8 -20
- package/esm/ResponsiveChartContainer/useChartContainerDimensions.js +6 -2
- package/esm/ResponsiveChartContainer/useResponsiveChartContainerProps.js +65 -0
- package/esm/ScatterChart/Scatter.js +6 -9
- package/esm/ScatterChart/useScatterChartProps.js +35 -30
- package/esm/SparkLineChart/SparkLineChart.js +27 -22
- package/esm/context/CartesianProvider/CartesianProvider.js +18 -7
- package/esm/context/CartesianProvider/computeValue.js +20 -16
- package/esm/context/CartesianProvider/defaultizeAxis.js +13 -0
- package/esm/context/CartesianProvider/index.js +1 -3
- package/esm/context/CartesianProvider/normalizeAxis.js +1 -1
- package/esm/context/DrawingProvider.js +9 -2
- package/esm/context/HighlightedProvider/HighlightedProvider.js +2 -2
- package/esm/hooks/useAxisEvents.js +3 -10
- package/esm/hooks/useDrawingArea.js +5 -3
- package/esm/hooks/useReducedMotion.js +4 -2
- package/esm/internals/cleanId.js +6 -0
- package/esm/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +3 -2
- package/esm/internals/{utils.js → getPercentageValue.js} +1 -13
- package/esm/internals/getSymbol.js +5 -0
- package/esm/internals/index.js +3 -1
- package/esm/internals/isDefined.js +3 -0
- package/esm/internals/notNull.js +3 -0
- package/esm/internals/ts-generic.js +1 -0
- package/hooks/useAxisEvents.js +3 -10
- package/hooks/useDrawingArea.js +5 -3
- package/hooks/useReducedMotion.js +4 -2
- package/index.js +1 -1
- package/internals/cleanId.d.ts +4 -0
- package/internals/cleanId.js +12 -0
- package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.d.ts +6 -0
- package/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +3 -2
- package/internals/getPercentageValue.d.ts +7 -0
- package/internals/{utils.js → getPercentageValue.js} +1 -15
- package/internals/getSymbol.d.ts +2 -0
- package/internals/getSymbol.js +11 -0
- package/internals/index.d.ts +3 -1
- package/internals/index.js +25 -5
- package/internals/isDefined.d.ts +1 -0
- package/internals/isDefined.js +9 -0
- package/internals/notNull.d.ts +1 -0
- package/internals/notNull.js +9 -0
- package/internals/ts-generic.d.ts +5 -0
- package/internals/ts-generic.js +5 -0
- package/models/axis.d.ts +5 -2
- package/models/helpers.d.ts +1 -0
- package/models/seriesType/config.d.ts +2 -16
- package/modern/BarChart/BarChart.js +2 -2
- package/modern/BarChart/formatter.js +1 -1
- package/modern/BarChart/useBarChartProps.js +38 -33
- package/modern/ChartContainer/ChartContainer.js +25 -66
- package/modern/ChartContainer/useChartContainerHooks.js +2 -2
- package/modern/ChartContainer/useChartContainerProps.js +87 -0
- package/modern/ChartContainer/useDefaultizeAxis.js +19 -0
- package/modern/ChartsLegend/ContinuousColorLegend.js +390 -0
- package/modern/ChartsLegend/DefaultChartsLegend.js +14 -198
- package/modern/ChartsLegend/LegendPerItem.js +141 -0
- package/modern/ChartsLegend/PiecewiseColorLegend.js +161 -0
- package/modern/ChartsLegend/chartsLegend.types.js +1 -0
- package/modern/ChartsLegend/index.js +2 -0
- package/modern/ChartsLegend/legend.types.js +1 -0
- package/modern/ChartsLegend/legendItemsPlacement.js +72 -0
- package/modern/ChartsLegend/useAxis.js +39 -0
- package/modern/ChartsSurface.js +3 -1
- package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +26 -18
- package/modern/ChartsXAxis/ChartsXAxis.js +1 -1
- package/modern/ChartsYAxis/ChartsYAxis.js +15 -3
- package/modern/Gauge/Gauge.js +8 -5
- package/modern/Gauge/GaugeContainer.js +8 -4
- package/modern/Gauge/GaugeProvider.js +1 -1
- package/modern/LineChart/AnimatedArea.js +1 -1
- package/modern/LineChart/AnimatedLine.js +1 -1
- package/modern/LineChart/AreaPlot.js +7 -1
- package/modern/LineChart/LineChart.js +2 -2
- package/modern/LineChart/LineHighlightPlot.js +8 -0
- package/modern/LineChart/MarkElement.js +1 -1
- package/modern/LineChart/MarkPlot.js +3 -19
- package/modern/LineChart/extremums.js +1 -1
- package/modern/LineChart/formatter.js +1 -1
- package/modern/LineChart/useLineChartProps.js +38 -33
- package/modern/PieChart/PieChart.js +39 -33
- package/modern/PieChart/PiePlot.js +1 -1
- package/modern/PieChart/getPieCoordinates.js +1 -1
- package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +8 -20
- package/modern/ResponsiveChartContainer/useChartContainerDimensions.js +6 -2
- package/modern/ResponsiveChartContainer/useResponsiveChartContainerProps.js +65 -0
- package/modern/ScatterChart/Scatter.js +6 -9
- package/modern/ScatterChart/useScatterChartProps.js +35 -30
- package/modern/SparkLineChart/SparkLineChart.js +27 -22
- package/modern/context/CartesianProvider/CartesianProvider.js +18 -7
- package/modern/context/CartesianProvider/computeValue.js +20 -16
- package/modern/context/CartesianProvider/defaultizeAxis.js +13 -0
- package/modern/context/CartesianProvider/index.js +1 -3
- package/modern/context/CartesianProvider/normalizeAxis.js +1 -1
- package/modern/context/DrawingProvider.js +9 -2
- package/modern/context/HighlightedProvider/HighlightedProvider.js +2 -2
- package/modern/hooks/useAxisEvents.js +3 -10
- package/modern/hooks/useDrawingArea.js +5 -3
- package/modern/hooks/useReducedMotion.js +4 -2
- package/modern/index.js +1 -1
- package/modern/internals/cleanId.js +6 -0
- package/modern/internals/components/ChartsAxesGradients/ChartsContinuousGradient.js +3 -2
- package/modern/internals/{utils.js → getPercentageValue.js} +1 -13
- package/modern/internals/getSymbol.js +5 -0
- package/modern/internals/index.js +3 -1
- package/modern/internals/isDefined.js +3 -0
- package/modern/internals/notNull.js +3 -0
- package/modern/internals/ts-generic.js +1 -0
- package/package.json +4 -4
- package/internals/utils.d.ts +0 -18
package/internals/index.js
CHANGED
|
@@ -8,10 +8,11 @@ var _exportNames = {
|
|
|
8
8
|
useSeries: true,
|
|
9
9
|
useInteractionItemProps: true,
|
|
10
10
|
useDrawingArea: true,
|
|
11
|
-
useChartContainerHooks: true,
|
|
12
11
|
useScatterChartProps: true,
|
|
13
12
|
useLineChartProps: true,
|
|
14
|
-
useBarChartProps: true
|
|
13
|
+
useBarChartProps: true,
|
|
14
|
+
useResponsiveChartContainerProps: true,
|
|
15
|
+
useChartContainerProps: true
|
|
15
16
|
};
|
|
16
17
|
Object.defineProperty(exports, "useBarChartProps", {
|
|
17
18
|
enumerable: true,
|
|
@@ -19,10 +20,10 @@ Object.defineProperty(exports, "useBarChartProps", {
|
|
|
19
20
|
return _useBarChartProps.useBarChartProps;
|
|
20
21
|
}
|
|
21
22
|
});
|
|
22
|
-
Object.defineProperty(exports, "
|
|
23
|
+
Object.defineProperty(exports, "useChartContainerProps", {
|
|
23
24
|
enumerable: true,
|
|
24
25
|
get: function () {
|
|
25
|
-
return
|
|
26
|
+
return _useChartContainerProps.useChartContainerProps;
|
|
26
27
|
}
|
|
27
28
|
});
|
|
28
29
|
Object.defineProperty(exports, "useDrawingArea", {
|
|
@@ -49,6 +50,12 @@ Object.defineProperty(exports, "useReducedMotion", {
|
|
|
49
50
|
return _useReducedMotion.useReducedMotion;
|
|
50
51
|
}
|
|
51
52
|
});
|
|
53
|
+
Object.defineProperty(exports, "useResponsiveChartContainerProps", {
|
|
54
|
+
enumerable: true,
|
|
55
|
+
get: function () {
|
|
56
|
+
return _useResponsiveChartContainerProps.useResponsiveChartContainerProps;
|
|
57
|
+
}
|
|
58
|
+
});
|
|
52
59
|
Object.defineProperty(exports, "useScatterChartProps", {
|
|
53
60
|
enumerable: true,
|
|
54
61
|
get: function () {
|
|
@@ -101,10 +108,11 @@ var _useReducedMotion = require("../hooks/useReducedMotion");
|
|
|
101
108
|
var _useSeries = require("../hooks/useSeries");
|
|
102
109
|
var _useInteractionItemProps = require("../hooks/useInteractionItemProps");
|
|
103
110
|
var _useDrawingArea = require("../hooks/useDrawingArea");
|
|
104
|
-
var _useChartContainerHooks = require("../ChartContainer/useChartContainerHooks");
|
|
105
111
|
var _useScatterChartProps = require("../ScatterChart/useScatterChartProps");
|
|
106
112
|
var _useLineChartProps = require("../LineChart/useLineChartProps");
|
|
107
113
|
var _useBarChartProps = require("../BarChart/useBarChartProps");
|
|
114
|
+
var _useResponsiveChartContainerProps = require("../ResponsiveChartContainer/useResponsiveChartContainerProps");
|
|
115
|
+
var _useChartContainerProps = require("../ChartContainer/useChartContainerProps");
|
|
108
116
|
var _defaultizeValueFormatter = require("./defaultizeValueFormatter");
|
|
109
117
|
Object.keys(_defaultizeValueFormatter).forEach(function (key) {
|
|
110
118
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -153,6 +161,18 @@ Object.keys(_getSVGPoint).forEach(function (key) {
|
|
|
153
161
|
}
|
|
154
162
|
});
|
|
155
163
|
});
|
|
164
|
+
var _isDefined = require("./isDefined");
|
|
165
|
+
Object.keys(_isDefined).forEach(function (key) {
|
|
166
|
+
if (key === "default" || key === "__esModule") return;
|
|
167
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
168
|
+
if (key in exports && exports[key] === _isDefined[key]) return;
|
|
169
|
+
Object.defineProperty(exports, key, {
|
|
170
|
+
enumerable: true,
|
|
171
|
+
get: function () {
|
|
172
|
+
return _isDefined[key];
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
});
|
|
156
176
|
var _CartesianProvider = require("../context/CartesianProvider");
|
|
157
177
|
Object.keys(_CartesianProvider).forEach(function (key) {
|
|
158
178
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isDefined<T>(value: T | null | undefined): value is NonNullable<T>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function notNull<T>(value: T): value is NonNullable<T>;
|
package/models/axis.d.ts
CHANGED
|
@@ -212,8 +212,9 @@ export type AxisValueFormatterContext = {
|
|
|
212
212
|
* Location indicates where the value will be displayed.
|
|
213
213
|
* - `'tick'` The value is displayed on the axis ticks.
|
|
214
214
|
* - `'tooltip'` The value is displayed in the tooltip when hovering the chart.
|
|
215
|
+
* - `'legend'` The value is displayed in the legend when using color legend.
|
|
215
216
|
*/
|
|
216
|
-
location: 'tick' | 'tooltip';
|
|
217
|
+
location: 'tick' | 'tooltip' | 'legend';
|
|
217
218
|
};
|
|
218
219
|
export type AxisConfig<S extends ScaleName = ScaleName, V = any, AxisProps = ChartsXAxisProps | ChartsYAxisProps> = {
|
|
219
220
|
/**
|
|
@@ -253,7 +254,9 @@ export type AxisConfig<S extends ScaleName = ScaleName, V = any, AxisProps = Cha
|
|
|
253
254
|
* If `true`, Reverse the axis scaleBand.
|
|
254
255
|
*/
|
|
255
256
|
reverse?: boolean;
|
|
256
|
-
} & Partial<AxisProps> & Partial<Omit<AxisScaleConfig[S], 'scale'>> & TickParams;
|
|
257
|
+
} & Partial<AxisProps> & Partial<Omit<AxisScaleConfig[S], 'scale'>> & TickParams & AxisConfigExtension;
|
|
258
|
+
export interface AxisConfigExtension {
|
|
259
|
+
}
|
|
257
260
|
export type AxisDefaultized<S extends ScaleName = ScaleName, V = any, AxisProps = ChartsXAxisProps | ChartsYAxisProps> = Omit<AxisConfig<S, V, AxisProps>, 'scaleType'> & AxisScaleConfig[S] & AxisScaleComputedConfig[S] & {
|
|
258
261
|
/**
|
|
259
262
|
* An indication of the expected number of ticks.
|
package/models/helpers.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export type MakeOptional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
|
|
2
|
+
export type MakeRequired<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>>;
|
|
2
3
|
export type DefaultizedProps<P extends {}, RequiredProps extends keyof P, AdditionalProps extends {} = {}> = Omit<P, RequiredProps | keyof AdditionalProps> & Required<Pick<P, RequiredProps>> & AdditionalProps;
|
|
@@ -6,6 +6,7 @@ import { AxisConfig } from '../axis';
|
|
|
6
6
|
import { DefaultizedProps, MakeOptional } from '../helpers';
|
|
7
7
|
import { StackingGroupsType } from '../../internals/stackSeries';
|
|
8
8
|
import { SeriesId } from './common';
|
|
9
|
+
import { LegendItemParams } from '../../ChartsLegend/chartsLegend.types';
|
|
9
10
|
export interface ChartsSeriesConfig {
|
|
10
11
|
bar: {
|
|
11
12
|
/**
|
|
@@ -102,20 +103,5 @@ export type DatasetElementType<T> = {
|
|
|
102
103
|
};
|
|
103
104
|
export type DatasetType<T = number | string | Date | null | undefined> = DatasetElementType<T>[];
|
|
104
105
|
export type Formatter<T extends ChartSeriesType> = (params: FormatterParams<T>, dataset?: DatasetType) => FormatterResult<T>;
|
|
105
|
-
export type
|
|
106
|
-
/**
|
|
107
|
-
* The color used in the legend
|
|
108
|
-
*/
|
|
109
|
-
color: string;
|
|
110
|
-
/**
|
|
111
|
-
* The label displayed in the legend
|
|
112
|
-
*/
|
|
113
|
-
label: string;
|
|
114
|
-
/**
|
|
115
|
-
* The identifier of the legend element.
|
|
116
|
-
* Used for internal purpose such as `key` props
|
|
117
|
-
*/
|
|
118
|
-
id: SeriesId;
|
|
119
|
-
};
|
|
120
|
-
export type LegendGetter<T extends ChartSeriesType> = (series: FormatterResult<T>) => LegendParams[];
|
|
106
|
+
export type LegendGetter<T extends ChartSeriesType> = (series: FormatterResult<T>) => LegendItemParams[];
|
|
121
107
|
export {};
|
|
@@ -43,8 +43,8 @@ const BarChart = /*#__PURE__*/React.forwardRef(function BarChart(props, ref) {
|
|
|
43
43
|
ref: ref
|
|
44
44
|
}, chartContainerProps, {
|
|
45
45
|
children: [props.onAxisClick && /*#__PURE__*/_jsx(ChartsOnAxisClickHandler, _extends({}, axisClickHandlerProps)), props.grid && /*#__PURE__*/_jsx(ChartsGrid, _extends({}, gridProps)), /*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
|
|
46
|
-
children: [/*#__PURE__*/_jsx(BarPlot, _extends({}, barPlotProps)), /*#__PURE__*/_jsx(ChartsOverlay, _extends({}, overlayProps))]
|
|
47
|
-
})), /*#__PURE__*/_jsx(ChartsAxis, _extends({}, chartsAxisProps)), /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legendProps)),
|
|
46
|
+
children: [/*#__PURE__*/_jsx(BarPlot, _extends({}, barPlotProps)), /*#__PURE__*/_jsx(ChartsOverlay, _extends({}, overlayProps)), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({}, axisHighlightProps))]
|
|
47
|
+
})), /*#__PURE__*/_jsx(ChartsAxis, _extends({}, chartsAxisProps)), /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legendProps)), !props.loading && /*#__PURE__*/_jsx(ChartsTooltip, _extends({}, tooltipProps)), /*#__PURE__*/_jsx(ChartsClipPath, _extends({}, clipPathProps)), children]
|
|
48
48
|
}));
|
|
49
49
|
});
|
|
50
50
|
process.env.NODE_ENV !== "production" ? BarChart.propTypes = {
|
|
@@ -52,7 +52,7 @@ const formatter = (params, dataset) => {
|
|
|
52
52
|
if (typeof value !== 'number') {
|
|
53
53
|
if (process.env.NODE_ENV !== 'production' && !warnOnce && value !== null) {
|
|
54
54
|
warnOnce = true;
|
|
55
|
-
console.error([`MUI
|
|
55
|
+
console.error([`MUI X charts: your dataset key "${dataKey}" is used for plotting bars, but contains nonnumerical elements.`, 'Bar plots only support numbers and null values.']);
|
|
56
56
|
}
|
|
57
57
|
return 0;
|
|
58
58
|
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["xAxis", "yAxis", "series", "width", "height", "margin", "colors", "dataset", "sx", "tooltip", "onAxisClick", "axisHighlight", "legend", "grid", "topAxis", "leftAxis", "rightAxis", "bottomAxis", "children", "slots", "slotProps", "skipAnimation", "loading", "layout", "onItemClick", "highlightedItem", "onHighlightChange", "borderRadius", "barLabel", "className"];
|
|
2
4
|
import useId from '@mui/utils/useId';
|
|
3
5
|
import { DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY } from '../constants';
|
|
4
6
|
/**
|
|
@@ -10,36 +12,38 @@ import { DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY } from '../constants';
|
|
|
10
12
|
*/
|
|
11
13
|
export const useBarChartProps = props => {
|
|
12
14
|
const {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
15
|
+
xAxis,
|
|
16
|
+
yAxis,
|
|
17
|
+
series,
|
|
18
|
+
width,
|
|
19
|
+
height,
|
|
20
|
+
margin,
|
|
21
|
+
colors,
|
|
22
|
+
dataset,
|
|
23
|
+
sx,
|
|
24
|
+
tooltip,
|
|
25
|
+
onAxisClick,
|
|
26
|
+
axisHighlight,
|
|
27
|
+
legend,
|
|
28
|
+
grid,
|
|
29
|
+
topAxis,
|
|
30
|
+
leftAxis,
|
|
31
|
+
rightAxis,
|
|
32
|
+
bottomAxis,
|
|
33
|
+
children,
|
|
34
|
+
slots,
|
|
35
|
+
slotProps,
|
|
36
|
+
skipAnimation,
|
|
37
|
+
loading,
|
|
38
|
+
layout,
|
|
39
|
+
onItemClick,
|
|
40
|
+
highlightedItem,
|
|
41
|
+
onHighlightChange,
|
|
42
|
+
borderRadius,
|
|
43
|
+
barLabel,
|
|
44
|
+
className
|
|
45
|
+
} = props,
|
|
46
|
+
rest = _objectWithoutPropertiesLoose(props, _excluded);
|
|
43
47
|
const id = useId();
|
|
44
48
|
const clipPathId = `${id}-clip-path`;
|
|
45
49
|
const hasHorizontalSeries = layout === 'horizontal' || layout === undefined && series.some(item => item.layout === 'horizontal');
|
|
@@ -49,7 +53,7 @@ export const useBarChartProps = props => {
|
|
|
49
53
|
length: Math.max(...series.map(s => (s.data ?? dataset ?? []).length))
|
|
50
54
|
}, (_, index) => index)
|
|
51
55
|
};
|
|
52
|
-
const chartContainerProps = {
|
|
56
|
+
const chartContainerProps = _extends({}, rest, {
|
|
53
57
|
series: series.map(s => _extends({
|
|
54
58
|
type: 'bar'
|
|
55
59
|
}, s, {
|
|
@@ -69,8 +73,9 @@ export const useBarChartProps = props => {
|
|
|
69
73
|
sx,
|
|
70
74
|
highlightedItem,
|
|
71
75
|
onHighlightChange,
|
|
72
|
-
disableAxisListener: tooltip?.trigger !== 'axis' && axisHighlight?.x === 'none' && axisHighlight?.y === 'none' && !onAxisClick
|
|
73
|
-
|
|
76
|
+
disableAxisListener: tooltip?.trigger !== 'axis' && axisHighlight?.x === 'none' && axisHighlight?.y === 'none' && !onAxisClick,
|
|
77
|
+
className
|
|
78
|
+
});
|
|
74
79
|
const barPlotProps = {
|
|
75
80
|
onItemClick,
|
|
76
81
|
slots,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
1
2
|
import * as React from 'react';
|
|
2
3
|
import PropTypes from 'prop-types';
|
|
3
4
|
import { DrawingProvider } from '../context/DrawingProvider';
|
|
@@ -8,78 +9,36 @@ import { ChartsSurface } from '../ChartsSurface';
|
|
|
8
9
|
import { CartesianContextProvider } from '../context/CartesianProvider';
|
|
9
10
|
import { ChartsAxesGradients } from '../internals/components/ChartsAxesGradients';
|
|
10
11
|
import { HighlightedProvider, ZAxisContextProvider } from '../context';
|
|
11
|
-
import {
|
|
12
|
+
import { useChartContainerProps } from './useChartContainerProps';
|
|
12
13
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
14
|
const ChartContainer = /*#__PURE__*/React.forwardRef(function ChartContainer(props, ref) {
|
|
14
15
|
const {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
onHighlightChange,
|
|
30
|
-
plugins,
|
|
31
|
-
children
|
|
32
|
-
} = props;
|
|
33
|
-
const {
|
|
34
|
-
svgRef,
|
|
35
|
-
handleRef,
|
|
36
|
-
xExtremumGetters,
|
|
37
|
-
yExtremumGetters,
|
|
38
|
-
seriesFormatters,
|
|
39
|
-
colorProcessors
|
|
40
|
-
} = useChartContainerHooks(ref, plugins);
|
|
41
|
-
return /*#__PURE__*/_jsx(DrawingProvider, {
|
|
42
|
-
width: width,
|
|
43
|
-
height: height,
|
|
44
|
-
margin: margin,
|
|
45
|
-
svgRef: svgRef,
|
|
46
|
-
children: /*#__PURE__*/_jsx(ColorProvider, {
|
|
47
|
-
colorProcessors: colorProcessors,
|
|
48
|
-
children: /*#__PURE__*/_jsx(SeriesContextProvider, {
|
|
49
|
-
series: series,
|
|
50
|
-
colors: colors,
|
|
51
|
-
dataset: dataset,
|
|
52
|
-
seriesFormatters: seriesFormatters,
|
|
53
|
-
children: /*#__PURE__*/_jsx(CartesianContextProvider, {
|
|
54
|
-
xAxis: xAxis,
|
|
55
|
-
yAxis: yAxis,
|
|
56
|
-
dataset: dataset,
|
|
57
|
-
xExtremumGetters: xExtremumGetters,
|
|
58
|
-
yExtremumGetters: yExtremumGetters,
|
|
59
|
-
children: /*#__PURE__*/_jsx(ZAxisContextProvider, {
|
|
60
|
-
zAxis: zAxis,
|
|
61
|
-
dataset: dataset,
|
|
16
|
+
children,
|
|
17
|
+
drawingProviderProps,
|
|
18
|
+
colorProviderProps,
|
|
19
|
+
seriesContextProps,
|
|
20
|
+
cartesianContextProps,
|
|
21
|
+
zAxisContextProps,
|
|
22
|
+
highlightedProviderProps,
|
|
23
|
+
chartsSurfaceProps
|
|
24
|
+
} = useChartContainerProps(props, ref);
|
|
25
|
+
return /*#__PURE__*/_jsx(DrawingProvider, _extends({}, drawingProviderProps, {
|
|
26
|
+
children: /*#__PURE__*/_jsx(ColorProvider, _extends({}, colorProviderProps, {
|
|
27
|
+
children: /*#__PURE__*/_jsx(SeriesContextProvider, _extends({}, seriesContextProps, {
|
|
28
|
+
children: /*#__PURE__*/_jsx(CartesianContextProvider, _extends({}, cartesianContextProps, {
|
|
29
|
+
children: /*#__PURE__*/_jsx(ZAxisContextProvider, _extends({}, zAxisContextProps, {
|
|
62
30
|
children: /*#__PURE__*/_jsx(InteractionProvider, {
|
|
63
|
-
children: /*#__PURE__*/_jsx(HighlightedProvider, {
|
|
64
|
-
|
|
65
|
-
onHighlightChange: onHighlightChange,
|
|
66
|
-
children: /*#__PURE__*/_jsxs(ChartsSurface, {
|
|
67
|
-
width: width,
|
|
68
|
-
height: height,
|
|
69
|
-
ref: handleRef,
|
|
70
|
-
sx: sx,
|
|
71
|
-
title: title,
|
|
72
|
-
desc: desc,
|
|
73
|
-
disableAxisListener: disableAxisListener,
|
|
31
|
+
children: /*#__PURE__*/_jsx(HighlightedProvider, _extends({}, highlightedProviderProps, {
|
|
32
|
+
children: /*#__PURE__*/_jsxs(ChartsSurface, _extends({}, chartsSurfaceProps, {
|
|
74
33
|
children: [/*#__PURE__*/_jsx(ChartsAxesGradients, {}), children]
|
|
75
|
-
})
|
|
76
|
-
})
|
|
34
|
+
}))
|
|
35
|
+
}))
|
|
77
36
|
})
|
|
78
|
-
})
|
|
79
|
-
})
|
|
80
|
-
})
|
|
81
|
-
})
|
|
82
|
-
});
|
|
37
|
+
}))
|
|
38
|
+
}))
|
|
39
|
+
}))
|
|
40
|
+
}))
|
|
41
|
+
}));
|
|
83
42
|
});
|
|
84
43
|
process.env.NODE_ENV !== "production" ? ChartContainer.propTypes = {
|
|
85
44
|
// ----------------------------- Warning --------------------------------
|
|
@@ -4,7 +4,7 @@ import { usePluginsMerge } from './usePluginsMerge';
|
|
|
4
4
|
import { useReducedMotion } from '../hooks/useReducedMotion';
|
|
5
5
|
export const useChartContainerHooks = (ref, plugins) => {
|
|
6
6
|
const svgRef = React.useRef(null);
|
|
7
|
-
const
|
|
7
|
+
const chartSurfaceRef = useForkRef(ref, svgRef);
|
|
8
8
|
const {
|
|
9
9
|
xExtremumGetters,
|
|
10
10
|
yExtremumGetters,
|
|
@@ -15,7 +15,7 @@ export const useChartContainerHooks = (ref, plugins) => {
|
|
|
15
15
|
|
|
16
16
|
return {
|
|
17
17
|
svgRef,
|
|
18
|
-
|
|
18
|
+
chartSurfaceRef,
|
|
19
19
|
xExtremumGetters,
|
|
20
20
|
yExtremumGetters,
|
|
21
21
|
seriesFormatters,
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["width", "height", "series", "margin", "xAxis", "yAxis", "zAxis", "colors", "dataset", "sx", "title", "desc", "disableAxisListener", "highlightedItem", "onHighlightChange", "plugins", "children"];
|
|
4
|
+
import { useChartContainerHooks } from './useChartContainerHooks';
|
|
5
|
+
import { useDefaultizeAxis } from './useDefaultizeAxis';
|
|
6
|
+
export const useChartContainerProps = (props, ref) => {
|
|
7
|
+
const {
|
|
8
|
+
width,
|
|
9
|
+
height,
|
|
10
|
+
series,
|
|
11
|
+
margin,
|
|
12
|
+
xAxis,
|
|
13
|
+
yAxis,
|
|
14
|
+
zAxis,
|
|
15
|
+
colors,
|
|
16
|
+
dataset,
|
|
17
|
+
sx,
|
|
18
|
+
title,
|
|
19
|
+
desc,
|
|
20
|
+
disableAxisListener,
|
|
21
|
+
highlightedItem,
|
|
22
|
+
onHighlightChange,
|
|
23
|
+
plugins,
|
|
24
|
+
children
|
|
25
|
+
} = props,
|
|
26
|
+
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
27
|
+
const {
|
|
28
|
+
svgRef,
|
|
29
|
+
chartSurfaceRef,
|
|
30
|
+
xExtremumGetters,
|
|
31
|
+
yExtremumGetters,
|
|
32
|
+
seriesFormatters,
|
|
33
|
+
colorProcessors
|
|
34
|
+
} = useChartContainerHooks(ref, plugins);
|
|
35
|
+
const [defaultizedXAxis, defaultizedYAxis] = useDefaultizeAxis(xAxis, yAxis);
|
|
36
|
+
const drawingProviderProps = {
|
|
37
|
+
width,
|
|
38
|
+
height,
|
|
39
|
+
margin,
|
|
40
|
+
svgRef
|
|
41
|
+
};
|
|
42
|
+
const colorProviderProps = {
|
|
43
|
+
colorProcessors
|
|
44
|
+
};
|
|
45
|
+
const seriesContextProps = {
|
|
46
|
+
series,
|
|
47
|
+
colors,
|
|
48
|
+
dataset,
|
|
49
|
+
seriesFormatters
|
|
50
|
+
};
|
|
51
|
+
const cartesianContextProps = {
|
|
52
|
+
xAxis: defaultizedXAxis,
|
|
53
|
+
yAxis: defaultizedYAxis,
|
|
54
|
+
dataset,
|
|
55
|
+
xExtremumGetters,
|
|
56
|
+
yExtremumGetters
|
|
57
|
+
};
|
|
58
|
+
const zAxisContextProps = {
|
|
59
|
+
zAxis,
|
|
60
|
+
dataset
|
|
61
|
+
};
|
|
62
|
+
const highlightedProviderProps = {
|
|
63
|
+
highlightedItem,
|
|
64
|
+
onHighlightChange
|
|
65
|
+
};
|
|
66
|
+
const chartsSurfaceProps = _extends({}, other, {
|
|
67
|
+
width,
|
|
68
|
+
height,
|
|
69
|
+
ref: chartSurfaceRef,
|
|
70
|
+
sx,
|
|
71
|
+
title,
|
|
72
|
+
desc,
|
|
73
|
+
disableAxisListener
|
|
74
|
+
});
|
|
75
|
+
return {
|
|
76
|
+
children,
|
|
77
|
+
drawingProviderProps,
|
|
78
|
+
colorProviderProps,
|
|
79
|
+
seriesContextProps,
|
|
80
|
+
cartesianContextProps,
|
|
81
|
+
zAxisContextProps,
|
|
82
|
+
highlightedProviderProps,
|
|
83
|
+
chartsSurfaceProps,
|
|
84
|
+
xAxis: defaultizedXAxis,
|
|
85
|
+
yAxis: defaultizedYAxis
|
|
86
|
+
};
|
|
87
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY } from '../constants';
|
|
4
|
+
const defaultizeAxis = (inAxis, axisName) => {
|
|
5
|
+
const DEFAULT_AXIS_KEY = axisName === 'x' ? DEFAULT_X_AXIS_KEY : DEFAULT_Y_AXIS_KEY;
|
|
6
|
+
return [...(inAxis?.map((axis, index) => _extends({
|
|
7
|
+
id: `defaultized-${axisName}-axis-${index}`
|
|
8
|
+
}, axis)) ?? []), ...(inAxis === undefined || inAxis.findIndex(({
|
|
9
|
+
id
|
|
10
|
+
}) => id === DEFAULT_AXIS_KEY) === -1 ? [{
|
|
11
|
+
id: DEFAULT_AXIS_KEY,
|
|
12
|
+
scaleType: 'linear'
|
|
13
|
+
}] : [])];
|
|
14
|
+
};
|
|
15
|
+
export const useDefaultizeAxis = (inXAxis, inYAxis) => {
|
|
16
|
+
const xAxis = React.useMemo(() => defaultizeAxis(inXAxis, 'x'), [inXAxis]);
|
|
17
|
+
const yAxis = React.useMemo(() => defaultizeAxis(inYAxis, 'y'), [inYAxis]);
|
|
18
|
+
return [xAxis, yAxis];
|
|
19
|
+
};
|