@mui/x-charts 7.6.2 → 7.7.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.
- package/BarChart/BarChart.d.ts +1 -1
- package/BarChart/BarChart.js +21 -104
- package/BarChart/BarLabel/BarLabelPlot.d.ts +0 -3
- package/BarChart/BarLabel/BarLabelPlot.js +1 -24
- package/BarChart/BarPlot.js +2 -2
- package/BarChart/checkScaleErrors.d.ts +5 -9
- package/BarChart/types.d.ts +2 -2
- package/BarChart/useBarChartProps.d.ts +102 -0
- package/BarChart/useBarChartProps.js +143 -0
- package/CHANGELOG.md +163 -0
- package/ChartContainer/ChartContainer.d.ts +4 -4
- package/ChartContainer/ChartContainer.js +64 -31
- package/ChartContainer/useChartContainerHooks.d.ts +11 -0
- package/ChartContainer/useChartContainerHooks.js +34 -0
- package/ChartContainer/usePluginsMerge.d.ts +1 -2
- package/ChartsAxis/ChartsAxis.js +2 -2
- package/ChartsAxisHighlight/ChartsAxisHighlight.js +2 -2
- package/ChartsGrid/ChartsGrid.js +2 -2
- package/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +2 -2
- package/ChartsOverlay/index.d.ts +1 -0
- package/ChartsReferenceLine/ChartsXReferenceLine.js +3 -5
- package/ChartsReferenceLine/ChartsYReferenceLine.js +3 -5
- package/ChartsText/ChartsText.js +1 -3
- package/ChartsTooltip/ChartsAxisTooltipContent.js +8 -14
- package/ChartsTooltip/ChartsItemTooltipContent.js +8 -18
- package/ChartsTooltip/DefaultChartsAxisTooltipContent.js +3 -3
- package/ChartsTooltip/DefaultChartsItemTooltipContent.js +1 -1
- package/ChartsVoronoiHandler/ChartsVoronoiHandler.js +2 -2
- package/ChartsXAxis/ChartsXAxis.js +2 -2
- package/ChartsYAxis/ChartsYAxis.js +2 -2
- package/LineChart/AreaPlot.js +2 -2
- package/LineChart/LineChart.d.ts +2 -2
- package/LineChart/LineChart.js +25 -107
- package/LineChart/LineHighlightPlot.js +2 -2
- package/LineChart/LinePlot.js +2 -2
- package/LineChart/MarkPlot.js +2 -2
- package/LineChart/useLineChartProps.d.ts +117 -0
- package/LineChart/useLineChartProps.js +152 -0
- package/PieChart/PieChart.d.ts +2 -2
- package/PieChart/PieChart.js +1 -1
- package/ResponsiveChartContainer/ResizableContainer.d.ts +10 -0
- package/ResponsiveChartContainer/ResizableContainer.js +32 -0
- package/ResponsiveChartContainer/ResponsiveChartContainer.js +25 -22
- package/ScatterChart/ScatterChart.d.ts +1 -1
- package/ScatterChart/ScatterChart.js +21 -76
- package/ScatterChart/ScatterPlot.js +2 -2
- package/ScatterChart/useScatterChartProps.d.ts +86 -0
- package/ScatterChart/useScatterChartProps.js +116 -0
- package/SparkLineChart/SparkLineChart.d.ts +8 -3
- package/SparkLineChart/SparkLineChart.js +57 -1
- package/context/CartesianProvider/CartesianContext.d.ts +25 -0
- package/context/CartesianProvider/CartesianContext.js +21 -0
- package/context/CartesianProvider/CartesianProvider.d.ts +34 -0
- package/context/CartesianProvider/CartesianProvider.js +44 -0
- package/context/CartesianProvider/computeValue.d.ts +19 -0
- package/context/CartesianProvider/computeValue.js +89 -0
- package/context/CartesianProvider/getAxisExtremum.d.ts +4 -0
- package/context/CartesianProvider/getAxisExtremum.js +28 -0
- package/context/CartesianProvider/index.d.ts +9 -0
- package/context/CartesianProvider/index.js +51 -0
- package/context/CartesianProvider/normalizeAxis.d.ts +5 -0
- package/context/CartesianProvider/normalizeAxis.js +23 -0
- package/context/CartesianProvider/useCartesianContext.d.ts +2 -0
- package/context/CartesianProvider/useCartesianContext.js +17 -0
- package/context/ColorProvider.d.ts +12 -0
- package/context/ColorProvider.js +25 -0
- package/esm/BarChart/BarChart.js +21 -104
- package/esm/BarChart/BarLabel/BarLabelPlot.js +0 -23
- package/esm/BarChart/BarPlot.js +2 -2
- package/esm/BarChart/useBarChartProps.js +136 -0
- package/esm/ChartContainer/ChartContainer.js +65 -32
- package/esm/ChartContainer/useChartContainerHooks.js +24 -0
- package/esm/ChartsAxis/ChartsAxis.js +2 -2
- package/esm/ChartsAxisHighlight/ChartsAxisHighlight.js +2 -2
- package/esm/ChartsGrid/ChartsGrid.js +2 -2
- package/esm/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +2 -2
- package/esm/ChartsReferenceLine/ChartsXReferenceLine.js +3 -5
- package/esm/ChartsReferenceLine/ChartsYReferenceLine.js +3 -5
- package/esm/ChartsText/ChartsText.js +1 -3
- package/esm/ChartsTooltip/ChartsAxisTooltipContent.js +8 -14
- package/esm/ChartsTooltip/ChartsItemTooltipContent.js +8 -18
- package/esm/ChartsTooltip/DefaultChartsAxisTooltipContent.js +3 -3
- package/esm/ChartsTooltip/DefaultChartsItemTooltipContent.js +1 -1
- package/esm/ChartsVoronoiHandler/ChartsVoronoiHandler.js +2 -2
- package/esm/ChartsXAxis/ChartsXAxis.js +2 -2
- package/esm/ChartsYAxis/ChartsYAxis.js +2 -2
- package/esm/LineChart/AreaPlot.js +2 -2
- package/esm/LineChart/LineChart.js +25 -107
- package/esm/LineChart/LineHighlightPlot.js +2 -2
- package/esm/LineChart/LinePlot.js +2 -2
- package/esm/LineChart/MarkPlot.js +2 -2
- package/esm/LineChart/useLineChartProps.js +144 -0
- package/esm/PieChart/PieChart.js +1 -1
- package/esm/ResponsiveChartContainer/ResizableContainer.js +26 -0
- package/esm/ResponsiveChartContainer/ResponsiveChartContainer.js +24 -21
- package/esm/ScatterChart/ScatterChart.js +21 -76
- package/esm/ScatterChart/ScatterPlot.js +2 -2
- package/esm/ScatterChart/useScatterChartProps.js +108 -0
- package/esm/SparkLineChart/SparkLineChart.js +57 -1
- package/esm/context/CartesianProvider/CartesianContext.js +13 -0
- package/esm/context/CartesianProvider/CartesianProvider.js +37 -0
- package/esm/context/CartesianProvider/computeValue.js +82 -0
- package/esm/context/CartesianProvider/getAxisExtremum.js +21 -0
- package/esm/context/CartesianProvider/index.js +10 -0
- package/esm/context/CartesianProvider/normalizeAxis.js +15 -0
- package/esm/context/CartesianProvider/useCartesianContext.js +8 -0
- package/esm/context/ColorProvider.js +16 -0
- package/esm/hooks/index.js +1 -0
- package/esm/hooks/useAxisEvents.js +2 -2
- package/esm/hooks/useColor.js +9 -0
- package/esm/hooks/useColorScale.js +27 -0
- package/esm/hooks/useReducedMotion.js +7 -0
- package/esm/hooks/useScale.js +3 -4
- package/esm/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +2 -2
- package/esm/internals/index.js +31 -1
- package/esm/internals/warning.js +13 -0
- package/hooks/index.d.ts +1 -0
- package/hooks/index.js +12 -0
- package/hooks/useAxisEvents.js +2 -2
- package/hooks/useColor.d.ts +4 -0
- package/hooks/useColor.js +17 -0
- package/hooks/useColorScale.d.ts +4 -0
- package/hooks/useColorScale.js +37 -0
- package/hooks/useDrawingArea.d.ts +2 -8
- package/hooks/useReducedMotion.js +7 -0
- package/hooks/useScale.js +3 -6
- package/index.js +1 -1
- package/internals/components/ChartsAxesGradients/ChartsAxesGradients.d.ts +2 -1
- package/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +2 -2
- package/internals/defaultizeColor.d.ts +8 -8
- package/internals/index.d.ts +22 -0
- package/internals/index.js +231 -0
- package/internals/warning.d.ts +1 -0
- package/internals/warning.js +19 -0
- package/models/axis.d.ts +1 -2
- package/models/plugin.d.ts +4 -1
- package/modern/BarChart/BarChart.js +21 -104
- package/modern/BarChart/BarLabel/BarLabelPlot.js +0 -23
- package/modern/BarChart/BarPlot.js +2 -2
- package/modern/BarChart/useBarChartProps.js +136 -0
- package/modern/ChartContainer/ChartContainer.js +65 -32
- package/modern/ChartContainer/useChartContainerHooks.js +24 -0
- package/modern/ChartsAxis/ChartsAxis.js +2 -2
- package/modern/ChartsAxisHighlight/ChartsAxisHighlight.js +2 -2
- package/modern/ChartsGrid/ChartsGrid.js +2 -2
- package/modern/ChartsOnAxisClickHandler/ChartsOnAxisClickHandler.js +2 -2
- package/modern/ChartsReferenceLine/ChartsXReferenceLine.js +3 -5
- package/modern/ChartsReferenceLine/ChartsYReferenceLine.js +3 -5
- package/modern/ChartsText/ChartsText.js +1 -3
- package/modern/ChartsTooltip/ChartsAxisTooltipContent.js +8 -14
- package/modern/ChartsTooltip/ChartsItemTooltipContent.js +8 -18
- package/modern/ChartsTooltip/DefaultChartsAxisTooltipContent.js +3 -3
- package/modern/ChartsTooltip/DefaultChartsItemTooltipContent.js +1 -1
- package/modern/ChartsVoronoiHandler/ChartsVoronoiHandler.js +2 -2
- package/modern/ChartsXAxis/ChartsXAxis.js +2 -2
- package/modern/ChartsYAxis/ChartsYAxis.js +2 -2
- package/modern/LineChart/AreaPlot.js +2 -2
- package/modern/LineChart/LineChart.js +25 -107
- package/modern/LineChart/LineHighlightPlot.js +2 -2
- package/modern/LineChart/LinePlot.js +2 -2
- package/modern/LineChart/MarkPlot.js +2 -2
- package/modern/LineChart/useLineChartProps.js +144 -0
- package/modern/PieChart/PieChart.js +1 -1
- package/modern/ResponsiveChartContainer/ResizableContainer.js +26 -0
- package/modern/ResponsiveChartContainer/ResponsiveChartContainer.js +24 -21
- package/modern/ScatterChart/ScatterChart.js +21 -76
- package/modern/ScatterChart/ScatterPlot.js +2 -2
- package/modern/ScatterChart/useScatterChartProps.js +108 -0
- package/modern/SparkLineChart/SparkLineChart.js +57 -1
- package/modern/context/CartesianProvider/CartesianContext.js +13 -0
- package/modern/context/CartesianProvider/CartesianProvider.js +37 -0
- package/modern/context/CartesianProvider/computeValue.js +82 -0
- package/modern/context/CartesianProvider/getAxisExtremum.js +21 -0
- package/modern/context/CartesianProvider/index.js +10 -0
- package/modern/context/CartesianProvider/normalizeAxis.js +15 -0
- package/modern/context/CartesianProvider/useCartesianContext.js +8 -0
- package/modern/context/ColorProvider.js +16 -0
- package/modern/hooks/index.js +1 -0
- package/modern/hooks/useAxisEvents.js +2 -2
- package/modern/hooks/useColor.js +9 -0
- package/modern/hooks/useColorScale.js +27 -0
- package/modern/hooks/useReducedMotion.js +7 -0
- package/modern/hooks/useScale.js +3 -4
- package/modern/index.js +1 -1
- package/modern/internals/components/ChartsAxesGradients/ChartsAxesGradients.js +2 -2
- package/modern/internals/index.js +31 -1
- package/modern/internals/warning.js +13 -0
- package/package.json +4 -4
- package/themeAugmentation/components.d.ts +12 -12
- package/context/CartesianContextProvider.d.ts +0 -53
- package/context/CartesianContextProvider.js +0 -233
- package/esm/context/CartesianContextProvider.js +0 -224
- package/esm/internals/colorGetter.js +0 -22
- package/internals/colorGetter.d.ts +0 -7
- package/internals/colorGetter.js +0 -29
- package/modern/context/CartesianContextProvider.js +0 -224
- package/modern/internals/colorGetter.js +0 -22
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ComponentsProps, ComponentsOverrides } from '@mui/material/styles';
|
|
2
2
|
|
|
3
|
-
export interface ChartsComponents {
|
|
3
|
+
export interface ChartsComponents<Theme = unknown> {
|
|
4
4
|
MuiChartsAxis?: {
|
|
5
5
|
defaultProps?: ComponentsProps['MuiChartsAxis'];
|
|
6
|
-
styleOverrides?: ComponentsOverrides['MuiChartsAxis'];
|
|
6
|
+
styleOverrides?: ComponentsOverrides<Theme>['MuiChartsAxis'];
|
|
7
7
|
};
|
|
8
8
|
MuiChartsXAxis?: {
|
|
9
9
|
defaultProps?: ComponentsProps['MuiChartsXAxis'];
|
|
@@ -13,22 +13,22 @@ export interface ChartsComponents {
|
|
|
13
13
|
};
|
|
14
14
|
MuiChartsAxisHighlight?: {
|
|
15
15
|
defaultProps?: ComponentsProps['MuiChartsAxisHighlight'];
|
|
16
|
-
styleOverrides?: ComponentsOverrides['MuiChartsAxisHighlight'];
|
|
16
|
+
styleOverrides?: ComponentsOverrides<Theme>['MuiChartsAxisHighlight'];
|
|
17
17
|
};
|
|
18
18
|
MuiChartsClipPath?: {
|
|
19
19
|
defaultProps?: ComponentsProps['MuiChartsClipPath'];
|
|
20
20
|
};
|
|
21
21
|
MuiChartsGrid?: {
|
|
22
22
|
defaultProps?: ComponentsProps['MuiChartsGrid'];
|
|
23
|
-
styleOverrides?: ComponentsOverrides['MuiChartsGrid'];
|
|
23
|
+
styleOverrides?: ComponentsOverrides<Theme>['MuiChartsGrid'];
|
|
24
24
|
};
|
|
25
25
|
MuiChartsLegend?: {
|
|
26
26
|
defaultProps?: ComponentsProps['MuiChartsLegend'];
|
|
27
|
-
styleOverrides?: ComponentsOverrides['MuiChartsLegend'];
|
|
27
|
+
styleOverrides?: ComponentsOverrides<Theme>['MuiChartsLegend'];
|
|
28
28
|
};
|
|
29
29
|
MuiChartsTooltip?: {
|
|
30
30
|
defaultProps?: ComponentsProps['MuiChartsTooltip'];
|
|
31
|
-
styleOverrides?: ComponentsOverrides['MuiChartsTooltip'];
|
|
31
|
+
styleOverrides?: ComponentsOverrides<Theme>['MuiChartsTooltip'];
|
|
32
32
|
};
|
|
33
33
|
MuiChartsSurface?: {
|
|
34
34
|
defaultProps?: ComponentsProps['MuiChartsSurface'];
|
|
@@ -38,26 +38,26 @@ export interface ChartsComponents {
|
|
|
38
38
|
};
|
|
39
39
|
MuiBarElement?: {
|
|
40
40
|
defaultProps?: ComponentsProps['MuiBarElement'];
|
|
41
|
-
styleOverrides?: ComponentsOverrides['MuiBarElement'];
|
|
41
|
+
styleOverrides?: ComponentsOverrides<Theme>['MuiBarElement'];
|
|
42
42
|
};
|
|
43
43
|
MuiBarLabel?: {
|
|
44
44
|
defaultProps?: ComponentsProps['MuiBarLabel'];
|
|
45
|
-
styleOverrides?: ComponentsOverrides['MuiBarLabel'];
|
|
45
|
+
styleOverrides?: ComponentsOverrides<Theme>['MuiBarLabel'];
|
|
46
46
|
};
|
|
47
47
|
MuiLineChart?: {
|
|
48
48
|
defaultProps?: ComponentsProps['MuiLineChart'];
|
|
49
49
|
};
|
|
50
50
|
MuiAreaElement?: {
|
|
51
51
|
defaultProps?: ComponentsProps['MuiAreaElement'];
|
|
52
|
-
styleOverrides?: ComponentsOverrides['MuiAreaElement'];
|
|
52
|
+
styleOverrides?: ComponentsOverrides<Theme>['MuiAreaElement'];
|
|
53
53
|
};
|
|
54
54
|
MuiLineElement?: {
|
|
55
55
|
defaultProps?: ComponentsProps['MuiLineElement'];
|
|
56
|
-
styleOverrides?: ComponentsOverrides['MuiLineElement'];
|
|
56
|
+
styleOverrides?: ComponentsOverrides<Theme>['MuiLineElement'];
|
|
57
57
|
};
|
|
58
58
|
MuiMarkElement?: {
|
|
59
59
|
defaultProps?: ComponentsProps['MuiMarkElement'];
|
|
60
|
-
styleOverrides?: ComponentsOverrides['MuiMarkElement'];
|
|
60
|
+
styleOverrides?: ComponentsOverrides<Theme>['MuiMarkElement'];
|
|
61
61
|
};
|
|
62
62
|
MuiScatterChart?: {
|
|
63
63
|
defaultProps?: ComponentsProps['MuiScatterChart'];
|
|
@@ -68,5 +68,5 @@ export interface ChartsComponents {
|
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
declare module '@mui/material/styles' {
|
|
71
|
-
interface Components extends ChartsComponents {}
|
|
71
|
+
interface Components<Theme = unknown> extends ChartsComponents<Theme> {}
|
|
72
72
|
}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { AxisConfig, AxisDefaultized, ChartsXAxisProps, ChartsYAxisProps, ScaleName } from '../models/axis';
|
|
3
|
-
import { CartesianChartSeriesType, ChartSeriesType, DatasetType, ExtremumGetter } from '../models/seriesType/config';
|
|
4
|
-
import { MakeOptional } from '../models/helpers';
|
|
5
|
-
export type ExtremumGettersConfig<T extends ChartSeriesType = CartesianChartSeriesType> = {
|
|
6
|
-
[K in T]?: ExtremumGetter<K>;
|
|
7
|
-
};
|
|
8
|
-
export type CartesianContextProviderProps = {
|
|
9
|
-
/**
|
|
10
|
-
* The configuration of the x-axes.
|
|
11
|
-
* If not provided, a default axis config is used.
|
|
12
|
-
* An array of [[AxisConfig]] objects.
|
|
13
|
-
*/
|
|
14
|
-
xAxis?: MakeOptional<AxisConfig<ScaleName, any, ChartsXAxisProps>, 'id'>[];
|
|
15
|
-
/**
|
|
16
|
-
* The configuration of the y-axes.
|
|
17
|
-
* If not provided, a default axis config is used.
|
|
18
|
-
* An array of [[AxisConfig]] objects.
|
|
19
|
-
*/
|
|
20
|
-
yAxis?: MakeOptional<AxisConfig<ScaleName, any, ChartsYAxisProps>, 'id'>[];
|
|
21
|
-
/**
|
|
22
|
-
* An array of objects that can be used to populate series and axes data using their `dataKey` property.
|
|
23
|
-
*/
|
|
24
|
-
dataset?: DatasetType;
|
|
25
|
-
children: React.ReactNode;
|
|
26
|
-
};
|
|
27
|
-
type DefaultizedAxisConfig<AxisProps> = {
|
|
28
|
-
[axisKey: string]: AxisDefaultized<ScaleName, any, AxisProps>;
|
|
29
|
-
};
|
|
30
|
-
export declare const CartesianContext: React.Context<{
|
|
31
|
-
/**
|
|
32
|
-
* Mapping from x-axis key to scaling configuration.
|
|
33
|
-
*/
|
|
34
|
-
xAxis: {
|
|
35
|
-
DEFAULT_X_AXIS_KEY: AxisDefaultized<ScaleName, any, ChartsXAxisProps>;
|
|
36
|
-
} & DefaultizedAxisConfig<ChartsXAxisProps>;
|
|
37
|
-
/**
|
|
38
|
-
* Mapping from y-axis key to scaling configuration.
|
|
39
|
-
*/
|
|
40
|
-
yAxis: {
|
|
41
|
-
DEFAULT_X_AXIS_KEY: AxisDefaultized<ScaleName, any, ChartsYAxisProps>;
|
|
42
|
-
} & DefaultizedAxisConfig<ChartsYAxisProps>;
|
|
43
|
-
/**
|
|
44
|
-
* The x-axes IDs sorted by order they got provided.
|
|
45
|
-
*/
|
|
46
|
-
xAxisIds: string[];
|
|
47
|
-
/**
|
|
48
|
-
* The y-axes IDs sorted by order they got provided.
|
|
49
|
-
*/
|
|
50
|
-
yAxisIds: string[];
|
|
51
|
-
}>;
|
|
52
|
-
declare function CartesianContextProvider(props: CartesianContextProviderProps): React.JSX.Element;
|
|
53
|
-
export { CartesianContextProvider };
|
|
@@ -1,233 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.CartesianContext = void 0;
|
|
8
|
-
exports.CartesianContextProvider = CartesianContextProvider;
|
|
9
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
-
var React = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _d3Scale = require("d3-scale");
|
|
12
|
-
var _extremums = require("../BarChart/extremums");
|
|
13
|
-
var _extremums2 = require("../ScatterChart/extremums");
|
|
14
|
-
var _extremums3 = require("../LineChart/extremums");
|
|
15
|
-
var _axis = require("../models/axis");
|
|
16
|
-
var _getScale = require("../internals/getScale");
|
|
17
|
-
var _constants = require("../constants");
|
|
18
|
-
var _useTicks = require("../hooks/useTicks");
|
|
19
|
-
var _useDrawingArea = require("../hooks/useDrawingArea");
|
|
20
|
-
var _colorScale = require("../internals/colorScale");
|
|
21
|
-
var _useSeries = require("../hooks/useSeries");
|
|
22
|
-
var _jsxRuntime = require("react/jsx-runtime");
|
|
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 && {}.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
|
-
const DEFAULT_CATEGORY_GAP_RATIO = 0.2;
|
|
26
|
-
const DEFAULT_BAR_GAP_RATIO = 0.1;
|
|
27
|
-
|
|
28
|
-
// TODO: those might be better placed in a distinct file
|
|
29
|
-
const xExtremumGetters = {
|
|
30
|
-
bar: _extremums.getExtremumX,
|
|
31
|
-
scatter: _extremums2.getExtremumX,
|
|
32
|
-
line: _extremums3.getExtremumX
|
|
33
|
-
};
|
|
34
|
-
const yExtremumGetters = {
|
|
35
|
-
bar: _extremums.getExtremumY,
|
|
36
|
-
scatter: _extremums2.getExtremumY,
|
|
37
|
-
line: _extremums3.getExtremumY
|
|
38
|
-
};
|
|
39
|
-
const CartesianContext = exports.CartesianContext = /*#__PURE__*/React.createContext({
|
|
40
|
-
xAxis: {},
|
|
41
|
-
yAxis: {},
|
|
42
|
-
xAxisIds: [],
|
|
43
|
-
yAxisIds: []
|
|
44
|
-
});
|
|
45
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
46
|
-
CartesianContext.displayName = 'CartesianContext';
|
|
47
|
-
}
|
|
48
|
-
function CartesianContextProvider(props) {
|
|
49
|
-
const {
|
|
50
|
-
xAxis: inXAxis,
|
|
51
|
-
yAxis: inYAxis,
|
|
52
|
-
dataset,
|
|
53
|
-
children
|
|
54
|
-
} = props;
|
|
55
|
-
const formattedSeries = (0, _useSeries.useSeries)();
|
|
56
|
-
const drawingArea = (0, _useDrawingArea.useDrawingArea)();
|
|
57
|
-
const xAxis = React.useMemo(() => inXAxis?.map(axisConfig => {
|
|
58
|
-
const dataKey = axisConfig.dataKey;
|
|
59
|
-
if (dataKey === undefined || axisConfig.data !== undefined) {
|
|
60
|
-
return axisConfig;
|
|
61
|
-
}
|
|
62
|
-
if (dataset === undefined) {
|
|
63
|
-
throw Error('MUI X Charts: x-axis uses `dataKey` but no `dataset` is provided.');
|
|
64
|
-
}
|
|
65
|
-
return (0, _extends2.default)({}, axisConfig, {
|
|
66
|
-
data: dataset.map(d => d[dataKey])
|
|
67
|
-
});
|
|
68
|
-
}), [inXAxis, dataset]);
|
|
69
|
-
const yAxis = React.useMemo(() => inYAxis?.map(axisConfig => {
|
|
70
|
-
const dataKey = axisConfig.dataKey;
|
|
71
|
-
if (dataKey === undefined || axisConfig.data !== undefined) {
|
|
72
|
-
return axisConfig;
|
|
73
|
-
}
|
|
74
|
-
if (dataset === undefined) {
|
|
75
|
-
throw Error('MUI X Charts: y-axis uses `dataKey` but no `dataset` is provided.');
|
|
76
|
-
}
|
|
77
|
-
return (0, _extends2.default)({}, axisConfig, {
|
|
78
|
-
data: dataset.map(d => d[dataKey])
|
|
79
|
-
});
|
|
80
|
-
}), [inYAxis, dataset]);
|
|
81
|
-
const value = React.useMemo(() => {
|
|
82
|
-
const axisExtremumCallback = (acc, chartType, axis, getters, isDefaultAxis) => {
|
|
83
|
-
const getter = getters[chartType];
|
|
84
|
-
const series = formattedSeries[chartType]?.series ?? {};
|
|
85
|
-
const [minChartTypeData, maxChartTypeData] = getter({
|
|
86
|
-
series,
|
|
87
|
-
axis,
|
|
88
|
-
isDefaultAxis
|
|
89
|
-
});
|
|
90
|
-
const [minData, maxData] = acc;
|
|
91
|
-
if (minData === null || maxData === null) {
|
|
92
|
-
return [minChartTypeData, maxChartTypeData];
|
|
93
|
-
}
|
|
94
|
-
if (minChartTypeData === null || maxChartTypeData === null) {
|
|
95
|
-
return [minData, maxData];
|
|
96
|
-
}
|
|
97
|
-
return [Math.min(minChartTypeData, minData), Math.max(maxChartTypeData, maxData)];
|
|
98
|
-
};
|
|
99
|
-
const getAxisExtremum = (axis, getters, isDefaultAxis) => {
|
|
100
|
-
const charTypes = Object.keys(getters);
|
|
101
|
-
return charTypes.reduce((acc, charType) => axisExtremumCallback(acc, charType, axis, getters, isDefaultAxis), [null, null]);
|
|
102
|
-
};
|
|
103
|
-
const allXAxis = [...(xAxis?.map((axis, index) => (0, _extends2.default)({
|
|
104
|
-
id: `defaultized-x-axis-${index}`
|
|
105
|
-
}, axis)) ?? []),
|
|
106
|
-
// Allows to specify an axis with id=DEFAULT_X_AXIS_KEY
|
|
107
|
-
...(xAxis === undefined || xAxis.findIndex(({
|
|
108
|
-
id
|
|
109
|
-
}) => id === _constants.DEFAULT_X_AXIS_KEY) === -1 ? [{
|
|
110
|
-
id: _constants.DEFAULT_X_AXIS_KEY,
|
|
111
|
-
scaleType: 'linear'
|
|
112
|
-
}] : [])];
|
|
113
|
-
const completedXAxis = {};
|
|
114
|
-
allXAxis.forEach((axis, axisIndex) => {
|
|
115
|
-
const isDefaultAxis = axisIndex === 0;
|
|
116
|
-
const [minData, maxData] = getAxisExtremum(axis, xExtremumGetters, isDefaultAxis);
|
|
117
|
-
const range = axis.reverse ? [drawingArea.left + drawingArea.width, drawingArea.left] : [drawingArea.left, drawingArea.left + drawingArea.width];
|
|
118
|
-
if ((0, _axis.isBandScaleConfig)(axis)) {
|
|
119
|
-
const categoryGapRatio = axis.categoryGapRatio ?? DEFAULT_CATEGORY_GAP_RATIO;
|
|
120
|
-
const barGapRatio = axis.barGapRatio ?? DEFAULT_BAR_GAP_RATIO;
|
|
121
|
-
completedXAxis[axis.id] = (0, _extends2.default)({
|
|
122
|
-
categoryGapRatio,
|
|
123
|
-
barGapRatio
|
|
124
|
-
}, axis, {
|
|
125
|
-
scale: (0, _d3Scale.scaleBand)(axis.data, range).paddingInner(categoryGapRatio).paddingOuter(categoryGapRatio / 2),
|
|
126
|
-
tickNumber: axis.data.length,
|
|
127
|
-
colorScale: axis.colorMap && (axis.colorMap.type === 'ordinal' ? (0, _colorScale.getOrdinalColorScale)((0, _extends2.default)({
|
|
128
|
-
values: axis.data
|
|
129
|
-
}, axis.colorMap)) : (0, _colorScale.getColorScale)(axis.colorMap))
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
if ((0, _axis.isPointScaleConfig)(axis)) {
|
|
133
|
-
completedXAxis[axis.id] = (0, _extends2.default)({}, axis, {
|
|
134
|
-
scale: (0, _d3Scale.scalePoint)(axis.data, range),
|
|
135
|
-
tickNumber: axis.data.length,
|
|
136
|
-
colorScale: axis.colorMap && (axis.colorMap.type === 'ordinal' ? (0, _colorScale.getOrdinalColorScale)((0, _extends2.default)({
|
|
137
|
-
values: axis.data
|
|
138
|
-
}, axis.colorMap)) : (0, _colorScale.getColorScale)(axis.colorMap))
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
if (axis.scaleType === 'band' || axis.scaleType === 'point') {
|
|
142
|
-
// Could be merged with the two previous "if conditions" but then TS does not get that `axis.scaleType` can't be `band` or `point`.
|
|
143
|
-
return;
|
|
144
|
-
}
|
|
145
|
-
const scaleType = axis.scaleType ?? 'linear';
|
|
146
|
-
const extremums = [axis.min ?? minData, axis.max ?? maxData];
|
|
147
|
-
const tickNumber = (0, _useTicks.getTickNumber)((0, _extends2.default)({}, axis, {
|
|
148
|
-
range,
|
|
149
|
-
domain: extremums
|
|
150
|
-
}));
|
|
151
|
-
const niceScale = (0, _getScale.getScale)(scaleType, extremums, range).nice(tickNumber);
|
|
152
|
-
const niceDomain = niceScale.domain();
|
|
153
|
-
const domain = [axis.min ?? niceDomain[0], axis.max ?? niceDomain[1]];
|
|
154
|
-
completedXAxis[axis.id] = (0, _extends2.default)({}, axis, {
|
|
155
|
-
scaleType,
|
|
156
|
-
scale: niceScale.domain(domain),
|
|
157
|
-
tickNumber,
|
|
158
|
-
colorScale: axis.colorMap && (0, _colorScale.getColorScale)(axis.colorMap)
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
const allYAxis = [...(yAxis?.map((axis, index) => (0, _extends2.default)({
|
|
162
|
-
id: `defaultized-y-axis-${index}`
|
|
163
|
-
}, axis)) ?? []), ...(yAxis === undefined || yAxis.findIndex(({
|
|
164
|
-
id
|
|
165
|
-
}) => id === _constants.DEFAULT_Y_AXIS_KEY) === -1 ? [{
|
|
166
|
-
id: _constants.DEFAULT_Y_AXIS_KEY,
|
|
167
|
-
scaleType: 'linear'
|
|
168
|
-
}] : [])];
|
|
169
|
-
const completedYAxis = {};
|
|
170
|
-
allYAxis.forEach((axis, axisIndex) => {
|
|
171
|
-
const isDefaultAxis = axisIndex === 0;
|
|
172
|
-
const [minData, maxData] = getAxisExtremum(axis, yExtremumGetters, isDefaultAxis);
|
|
173
|
-
const range = axis.reverse ? [drawingArea.top, drawingArea.top + drawingArea.height] : [drawingArea.top + drawingArea.height, drawingArea.top];
|
|
174
|
-
if ((0, _axis.isBandScaleConfig)(axis)) {
|
|
175
|
-
const categoryGapRatio = axis.categoryGapRatio ?? DEFAULT_CATEGORY_GAP_RATIO;
|
|
176
|
-
completedYAxis[axis.id] = (0, _extends2.default)({
|
|
177
|
-
categoryGapRatio,
|
|
178
|
-
barGapRatio: 0
|
|
179
|
-
}, axis, {
|
|
180
|
-
scale: (0, _d3Scale.scaleBand)(axis.data, [range[1], range[0]]).paddingInner(categoryGapRatio).paddingOuter(categoryGapRatio / 2),
|
|
181
|
-
tickNumber: axis.data.length,
|
|
182
|
-
colorScale: axis.colorMap && (axis.colorMap.type === 'ordinal' ? (0, _colorScale.getOrdinalColorScale)((0, _extends2.default)({
|
|
183
|
-
values: axis.data
|
|
184
|
-
}, axis.colorMap)) : (0, _colorScale.getColorScale)(axis.colorMap))
|
|
185
|
-
});
|
|
186
|
-
}
|
|
187
|
-
if ((0, _axis.isPointScaleConfig)(axis)) {
|
|
188
|
-
completedYAxis[axis.id] = (0, _extends2.default)({}, axis, {
|
|
189
|
-
scale: (0, _d3Scale.scalePoint)(axis.data, [range[1], range[0]]),
|
|
190
|
-
tickNumber: axis.data.length,
|
|
191
|
-
colorScale: axis.colorMap && (axis.colorMap.type === 'ordinal' ? (0, _colorScale.getOrdinalColorScale)((0, _extends2.default)({
|
|
192
|
-
values: axis.data
|
|
193
|
-
}, axis.colorMap)) : (0, _colorScale.getColorScale)(axis.colorMap))
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
if (axis.scaleType === 'band' || axis.scaleType === 'point') {
|
|
197
|
-
// Could be merged with the two previous "if conditions" but then TS does not get that `axis.scaleType` can't be `band` or `point`.
|
|
198
|
-
return;
|
|
199
|
-
}
|
|
200
|
-
const scaleType = axis.scaleType ?? 'linear';
|
|
201
|
-
const extremums = [axis.min ?? minData, axis.max ?? maxData];
|
|
202
|
-
const tickNumber = (0, _useTicks.getTickNumber)((0, _extends2.default)({}, axis, {
|
|
203
|
-
range,
|
|
204
|
-
domain: extremums
|
|
205
|
-
}));
|
|
206
|
-
const niceScale = (0, _getScale.getScale)(scaleType, extremums, range).nice(tickNumber);
|
|
207
|
-
const niceDomain = niceScale.domain();
|
|
208
|
-
const domain = [axis.min ?? niceDomain[0], axis.max ?? niceDomain[1]];
|
|
209
|
-
completedYAxis[axis.id] = (0, _extends2.default)({}, axis, {
|
|
210
|
-
scaleType,
|
|
211
|
-
scale: niceScale.domain(domain),
|
|
212
|
-
tickNumber,
|
|
213
|
-
colorScale: axis.colorMap && (0, _colorScale.getColorScale)(axis.colorMap)
|
|
214
|
-
});
|
|
215
|
-
});
|
|
216
|
-
return {
|
|
217
|
-
xAxis: completedXAxis,
|
|
218
|
-
yAxis: completedYAxis,
|
|
219
|
-
xAxisIds: allXAxis.map(({
|
|
220
|
-
id
|
|
221
|
-
}) => id),
|
|
222
|
-
yAxisIds: allYAxis.map(({
|
|
223
|
-
id
|
|
224
|
-
}) => id)
|
|
225
|
-
};
|
|
226
|
-
}, [drawingArea.height, drawingArea.left, drawingArea.top, drawingArea.width, formattedSeries, xAxis, yAxis]);
|
|
227
|
-
|
|
228
|
-
// @ts-ignore
|
|
229
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsx)(CartesianContext.Provider, {
|
|
230
|
-
value: value,
|
|
231
|
-
children: children
|
|
232
|
-
});
|
|
233
|
-
}
|
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { scaleBand, scalePoint } from 'd3-scale';
|
|
4
|
-
import { getExtremumX as getBarExtremumX, getExtremumY as getBarExtremumY } from '../BarChart/extremums';
|
|
5
|
-
import { getExtremumX as getScatterExtremumX, getExtremumY as getScatterExtremumY } from '../ScatterChart/extremums';
|
|
6
|
-
import { getExtremumX as getLineExtremumX, getExtremumY as getLineExtremumY } from '../LineChart/extremums';
|
|
7
|
-
import { isBandScaleConfig, isPointScaleConfig } from '../models/axis';
|
|
8
|
-
import { getScale } from '../internals/getScale';
|
|
9
|
-
import { DEFAULT_X_AXIS_KEY, DEFAULT_Y_AXIS_KEY } from '../constants';
|
|
10
|
-
import { getTickNumber } from '../hooks/useTicks';
|
|
11
|
-
import { useDrawingArea } from '../hooks/useDrawingArea';
|
|
12
|
-
import { getColorScale, getOrdinalColorScale } from '../internals/colorScale';
|
|
13
|
-
import { useSeries } from '../hooks/useSeries';
|
|
14
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
|
-
const DEFAULT_CATEGORY_GAP_RATIO = 0.2;
|
|
16
|
-
const DEFAULT_BAR_GAP_RATIO = 0.1;
|
|
17
|
-
|
|
18
|
-
// TODO: those might be better placed in a distinct file
|
|
19
|
-
const xExtremumGetters = {
|
|
20
|
-
bar: getBarExtremumX,
|
|
21
|
-
scatter: getScatterExtremumX,
|
|
22
|
-
line: getLineExtremumX
|
|
23
|
-
};
|
|
24
|
-
const yExtremumGetters = {
|
|
25
|
-
bar: getBarExtremumY,
|
|
26
|
-
scatter: getScatterExtremumY,
|
|
27
|
-
line: getLineExtremumY
|
|
28
|
-
};
|
|
29
|
-
export const CartesianContext = /*#__PURE__*/React.createContext({
|
|
30
|
-
xAxis: {},
|
|
31
|
-
yAxis: {},
|
|
32
|
-
xAxisIds: [],
|
|
33
|
-
yAxisIds: []
|
|
34
|
-
});
|
|
35
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
36
|
-
CartesianContext.displayName = 'CartesianContext';
|
|
37
|
-
}
|
|
38
|
-
function CartesianContextProvider(props) {
|
|
39
|
-
const {
|
|
40
|
-
xAxis: inXAxis,
|
|
41
|
-
yAxis: inYAxis,
|
|
42
|
-
dataset,
|
|
43
|
-
children
|
|
44
|
-
} = props;
|
|
45
|
-
const formattedSeries = useSeries();
|
|
46
|
-
const drawingArea = useDrawingArea();
|
|
47
|
-
const xAxis = React.useMemo(() => inXAxis?.map(axisConfig => {
|
|
48
|
-
const dataKey = axisConfig.dataKey;
|
|
49
|
-
if (dataKey === undefined || axisConfig.data !== undefined) {
|
|
50
|
-
return axisConfig;
|
|
51
|
-
}
|
|
52
|
-
if (dataset === undefined) {
|
|
53
|
-
throw Error('MUI X Charts: x-axis uses `dataKey` but no `dataset` is provided.');
|
|
54
|
-
}
|
|
55
|
-
return _extends({}, axisConfig, {
|
|
56
|
-
data: dataset.map(d => d[dataKey])
|
|
57
|
-
});
|
|
58
|
-
}), [inXAxis, dataset]);
|
|
59
|
-
const yAxis = React.useMemo(() => inYAxis?.map(axisConfig => {
|
|
60
|
-
const dataKey = axisConfig.dataKey;
|
|
61
|
-
if (dataKey === undefined || axisConfig.data !== undefined) {
|
|
62
|
-
return axisConfig;
|
|
63
|
-
}
|
|
64
|
-
if (dataset === undefined) {
|
|
65
|
-
throw Error('MUI X Charts: y-axis uses `dataKey` but no `dataset` is provided.');
|
|
66
|
-
}
|
|
67
|
-
return _extends({}, axisConfig, {
|
|
68
|
-
data: dataset.map(d => d[dataKey])
|
|
69
|
-
});
|
|
70
|
-
}), [inYAxis, dataset]);
|
|
71
|
-
const value = React.useMemo(() => {
|
|
72
|
-
const axisExtremumCallback = (acc, chartType, axis, getters, isDefaultAxis) => {
|
|
73
|
-
const getter = getters[chartType];
|
|
74
|
-
const series = formattedSeries[chartType]?.series ?? {};
|
|
75
|
-
const [minChartTypeData, maxChartTypeData] = getter({
|
|
76
|
-
series,
|
|
77
|
-
axis,
|
|
78
|
-
isDefaultAxis
|
|
79
|
-
});
|
|
80
|
-
const [minData, maxData] = acc;
|
|
81
|
-
if (minData === null || maxData === null) {
|
|
82
|
-
return [minChartTypeData, maxChartTypeData];
|
|
83
|
-
}
|
|
84
|
-
if (minChartTypeData === null || maxChartTypeData === null) {
|
|
85
|
-
return [minData, maxData];
|
|
86
|
-
}
|
|
87
|
-
return [Math.min(minChartTypeData, minData), Math.max(maxChartTypeData, maxData)];
|
|
88
|
-
};
|
|
89
|
-
const getAxisExtremum = (axis, getters, isDefaultAxis) => {
|
|
90
|
-
const charTypes = Object.keys(getters);
|
|
91
|
-
return charTypes.reduce((acc, charType) => axisExtremumCallback(acc, charType, axis, getters, isDefaultAxis), [null, null]);
|
|
92
|
-
};
|
|
93
|
-
const allXAxis = [...(xAxis?.map((axis, index) => _extends({
|
|
94
|
-
id: `defaultized-x-axis-${index}`
|
|
95
|
-
}, axis)) ?? []),
|
|
96
|
-
// Allows to specify an axis with id=DEFAULT_X_AXIS_KEY
|
|
97
|
-
...(xAxis === undefined || xAxis.findIndex(({
|
|
98
|
-
id
|
|
99
|
-
}) => id === DEFAULT_X_AXIS_KEY) === -1 ? [{
|
|
100
|
-
id: DEFAULT_X_AXIS_KEY,
|
|
101
|
-
scaleType: 'linear'
|
|
102
|
-
}] : [])];
|
|
103
|
-
const completedXAxis = {};
|
|
104
|
-
allXAxis.forEach((axis, axisIndex) => {
|
|
105
|
-
const isDefaultAxis = axisIndex === 0;
|
|
106
|
-
const [minData, maxData] = getAxisExtremum(axis, xExtremumGetters, isDefaultAxis);
|
|
107
|
-
const range = axis.reverse ? [drawingArea.left + drawingArea.width, drawingArea.left] : [drawingArea.left, drawingArea.left + drawingArea.width];
|
|
108
|
-
if (isBandScaleConfig(axis)) {
|
|
109
|
-
const categoryGapRatio = axis.categoryGapRatio ?? DEFAULT_CATEGORY_GAP_RATIO;
|
|
110
|
-
const barGapRatio = axis.barGapRatio ?? DEFAULT_BAR_GAP_RATIO;
|
|
111
|
-
completedXAxis[axis.id] = _extends({
|
|
112
|
-
categoryGapRatio,
|
|
113
|
-
barGapRatio
|
|
114
|
-
}, axis, {
|
|
115
|
-
scale: scaleBand(axis.data, range).paddingInner(categoryGapRatio).paddingOuter(categoryGapRatio / 2),
|
|
116
|
-
tickNumber: axis.data.length,
|
|
117
|
-
colorScale: axis.colorMap && (axis.colorMap.type === 'ordinal' ? getOrdinalColorScale(_extends({
|
|
118
|
-
values: axis.data
|
|
119
|
-
}, axis.colorMap)) : getColorScale(axis.colorMap))
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
if (isPointScaleConfig(axis)) {
|
|
123
|
-
completedXAxis[axis.id] = _extends({}, axis, {
|
|
124
|
-
scale: scalePoint(axis.data, range),
|
|
125
|
-
tickNumber: axis.data.length,
|
|
126
|
-
colorScale: axis.colorMap && (axis.colorMap.type === 'ordinal' ? getOrdinalColorScale(_extends({
|
|
127
|
-
values: axis.data
|
|
128
|
-
}, axis.colorMap)) : getColorScale(axis.colorMap))
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
if (axis.scaleType === 'band' || axis.scaleType === 'point') {
|
|
132
|
-
// Could be merged with the two previous "if conditions" but then TS does not get that `axis.scaleType` can't be `band` or `point`.
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
const scaleType = axis.scaleType ?? 'linear';
|
|
136
|
-
const extremums = [axis.min ?? minData, axis.max ?? maxData];
|
|
137
|
-
const tickNumber = getTickNumber(_extends({}, axis, {
|
|
138
|
-
range,
|
|
139
|
-
domain: extremums
|
|
140
|
-
}));
|
|
141
|
-
const niceScale = getScale(scaleType, extremums, range).nice(tickNumber);
|
|
142
|
-
const niceDomain = niceScale.domain();
|
|
143
|
-
const domain = [axis.min ?? niceDomain[0], axis.max ?? niceDomain[1]];
|
|
144
|
-
completedXAxis[axis.id] = _extends({}, axis, {
|
|
145
|
-
scaleType,
|
|
146
|
-
scale: niceScale.domain(domain),
|
|
147
|
-
tickNumber,
|
|
148
|
-
colorScale: axis.colorMap && getColorScale(axis.colorMap)
|
|
149
|
-
});
|
|
150
|
-
});
|
|
151
|
-
const allYAxis = [...(yAxis?.map((axis, index) => _extends({
|
|
152
|
-
id: `defaultized-y-axis-${index}`
|
|
153
|
-
}, axis)) ?? []), ...(yAxis === undefined || yAxis.findIndex(({
|
|
154
|
-
id
|
|
155
|
-
}) => id === DEFAULT_Y_AXIS_KEY) === -1 ? [{
|
|
156
|
-
id: DEFAULT_Y_AXIS_KEY,
|
|
157
|
-
scaleType: 'linear'
|
|
158
|
-
}] : [])];
|
|
159
|
-
const completedYAxis = {};
|
|
160
|
-
allYAxis.forEach((axis, axisIndex) => {
|
|
161
|
-
const isDefaultAxis = axisIndex === 0;
|
|
162
|
-
const [minData, maxData] = getAxisExtremum(axis, yExtremumGetters, isDefaultAxis);
|
|
163
|
-
const range = axis.reverse ? [drawingArea.top, drawingArea.top + drawingArea.height] : [drawingArea.top + drawingArea.height, drawingArea.top];
|
|
164
|
-
if (isBandScaleConfig(axis)) {
|
|
165
|
-
const categoryGapRatio = axis.categoryGapRatio ?? DEFAULT_CATEGORY_GAP_RATIO;
|
|
166
|
-
completedYAxis[axis.id] = _extends({
|
|
167
|
-
categoryGapRatio,
|
|
168
|
-
barGapRatio: 0
|
|
169
|
-
}, axis, {
|
|
170
|
-
scale: scaleBand(axis.data, [range[1], range[0]]).paddingInner(categoryGapRatio).paddingOuter(categoryGapRatio / 2),
|
|
171
|
-
tickNumber: axis.data.length,
|
|
172
|
-
colorScale: axis.colorMap && (axis.colorMap.type === 'ordinal' ? getOrdinalColorScale(_extends({
|
|
173
|
-
values: axis.data
|
|
174
|
-
}, axis.colorMap)) : getColorScale(axis.colorMap))
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
if (isPointScaleConfig(axis)) {
|
|
178
|
-
completedYAxis[axis.id] = _extends({}, axis, {
|
|
179
|
-
scale: scalePoint(axis.data, [range[1], range[0]]),
|
|
180
|
-
tickNumber: axis.data.length,
|
|
181
|
-
colorScale: axis.colorMap && (axis.colorMap.type === 'ordinal' ? getOrdinalColorScale(_extends({
|
|
182
|
-
values: axis.data
|
|
183
|
-
}, axis.colorMap)) : getColorScale(axis.colorMap))
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
if (axis.scaleType === 'band' || axis.scaleType === 'point') {
|
|
187
|
-
// Could be merged with the two previous "if conditions" but then TS does not get that `axis.scaleType` can't be `band` or `point`.
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
const scaleType = axis.scaleType ?? 'linear';
|
|
191
|
-
const extremums = [axis.min ?? minData, axis.max ?? maxData];
|
|
192
|
-
const tickNumber = getTickNumber(_extends({}, axis, {
|
|
193
|
-
range,
|
|
194
|
-
domain: extremums
|
|
195
|
-
}));
|
|
196
|
-
const niceScale = getScale(scaleType, extremums, range).nice(tickNumber);
|
|
197
|
-
const niceDomain = niceScale.domain();
|
|
198
|
-
const domain = [axis.min ?? niceDomain[0], axis.max ?? niceDomain[1]];
|
|
199
|
-
completedYAxis[axis.id] = _extends({}, axis, {
|
|
200
|
-
scaleType,
|
|
201
|
-
scale: niceScale.domain(domain),
|
|
202
|
-
tickNumber,
|
|
203
|
-
colorScale: axis.colorMap && getColorScale(axis.colorMap)
|
|
204
|
-
});
|
|
205
|
-
});
|
|
206
|
-
return {
|
|
207
|
-
xAxis: completedXAxis,
|
|
208
|
-
yAxis: completedYAxis,
|
|
209
|
-
xAxisIds: allXAxis.map(({
|
|
210
|
-
id
|
|
211
|
-
}) => id),
|
|
212
|
-
yAxisIds: allYAxis.map(({
|
|
213
|
-
id
|
|
214
|
-
}) => id)
|
|
215
|
-
};
|
|
216
|
-
}, [drawingArea.height, drawingArea.left, drawingArea.top, drawingArea.width, formattedSeries, xAxis, yAxis]);
|
|
217
|
-
|
|
218
|
-
// @ts-ignore
|
|
219
|
-
return /*#__PURE__*/_jsx(CartesianContext.Provider, {
|
|
220
|
-
value: value,
|
|
221
|
-
children: children
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
export { CartesianContextProvider };
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import getBarColor from '../BarChart/getColor';
|
|
2
|
-
import getLineColor from '../LineChart/getColor';
|
|
3
|
-
import getScatterColor from '../ScatterChart/getColor';
|
|
4
|
-
import getPieColor from '../PieChart/getColor';
|
|
5
|
-
function getColor(series, xAxis, yAxis, zAxis) {
|
|
6
|
-
if (xAxis !== undefined && yAxis !== undefined) {
|
|
7
|
-
if (series.type === 'bar') {
|
|
8
|
-
return getBarColor(series, xAxis, yAxis);
|
|
9
|
-
}
|
|
10
|
-
if (series.type === 'line') {
|
|
11
|
-
return getLineColor(series, xAxis, yAxis);
|
|
12
|
-
}
|
|
13
|
-
if (series.type === 'scatter') {
|
|
14
|
-
return getScatterColor(series, xAxis, yAxis, zAxis);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
if (series.type === 'pie') {
|
|
18
|
-
return getPieColor(series);
|
|
19
|
-
}
|
|
20
|
-
throw Error(`MUI X Charts: getColor called with unexpected arguments for series with id "${series.id}"`);
|
|
21
|
-
}
|
|
22
|
-
export default getColor;
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { DefaultizedBarSeriesType, DefaultizedLineSeriesType, DefaultizedPieSeriesType, DefaultizedScatterSeriesType } from '../models';
|
|
2
|
-
import { AxisDefaultized } from '../models/axis';
|
|
3
|
-
import { ZAxisDefaultized } from '../models/z-axis';
|
|
4
|
-
declare function getColor(series: DefaultizedPieSeriesType): (dataIndex: number) => string;
|
|
5
|
-
declare function getColor(series: DefaultizedBarSeriesType | DefaultizedLineSeriesType, xAxis: AxisDefaultized, yAxis: AxisDefaultized): (dataIndex: number) => string;
|
|
6
|
-
declare function getColor(series: DefaultizedScatterSeriesType, xAxis: AxisDefaultized, yAxis: AxisDefaultized, zAxis?: ZAxisDefaultized): (dataIndex: number) => string;
|
|
7
|
-
export default getColor;
|
package/internals/colorGetter.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports.default = void 0;
|
|
8
|
-
var _getColor = _interopRequireDefault(require("../BarChart/getColor"));
|
|
9
|
-
var _getColor2 = _interopRequireDefault(require("../LineChart/getColor"));
|
|
10
|
-
var _getColor3 = _interopRequireDefault(require("../ScatterChart/getColor"));
|
|
11
|
-
var _getColor4 = _interopRequireDefault(require("../PieChart/getColor"));
|
|
12
|
-
function getColor(series, xAxis, yAxis, zAxis) {
|
|
13
|
-
if (xAxis !== undefined && yAxis !== undefined) {
|
|
14
|
-
if (series.type === 'bar') {
|
|
15
|
-
return (0, _getColor.default)(series, xAxis, yAxis);
|
|
16
|
-
}
|
|
17
|
-
if (series.type === 'line') {
|
|
18
|
-
return (0, _getColor2.default)(series, xAxis, yAxis);
|
|
19
|
-
}
|
|
20
|
-
if (series.type === 'scatter') {
|
|
21
|
-
return (0, _getColor3.default)(series, xAxis, yAxis, zAxis);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
if (series.type === 'pie') {
|
|
25
|
-
return (0, _getColor4.default)(series);
|
|
26
|
-
}
|
|
27
|
-
throw Error(`MUI X Charts: getColor called with unexpected arguments for series with id "${series.id}"`);
|
|
28
|
-
}
|
|
29
|
-
var _default = exports.default = getColor;
|