@mui/x-charts-pro 8.0.0-alpha.1 → 8.0.0-alpha.11
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/BarChartPro/BarChartPro.d.ts +2 -2
- package/BarChartPro/BarChartPro.js +75 -34
- package/BarChartPro/BarChartPro.plugins.d.ts +10 -0
- package/BarChartPro/BarChartPro.plugins.js +3 -0
- package/CHANGELOG.md +2007 -230
- package/ChartContainerPro/ChartContainerPro.d.ts +33 -5
- package/ChartContainerPro/ChartContainerPro.js +55 -37
- package/ChartContainerPro/useChartContainerProProps.d.ts +6 -5
- package/ChartContainerPro/useChartContainerProProps.js +17 -13
- package/ChartDataProviderPro/ChartDataProviderPro.d.ts +37 -0
- package/ChartDataProviderPro/ChartDataProviderPro.js +105 -0
- package/{context → ChartDataProviderPro}/package.json +1 -1
- package/ChartDataProviderPro/useChartDataProviderProProps.d.ts +8 -0
- package/ChartDataProviderPro/useChartDataProviderProProps.js +15 -0
- package/Heatmap/Heatmap.d.ts +1 -2
- package/Heatmap/Heatmap.js +36 -13
- package/Heatmap/Heatmap.plugins.d.ts +8 -0
- package/Heatmap/Heatmap.plugins.js +2 -0
- package/Heatmap/HeatmapItem.js +1 -1
- package/Heatmap/HeatmapTooltip.js +8 -28
- package/Heatmap/extremums.d.ts +2 -2
- package/Heatmap/formatter.d.ts +2 -2
- package/Heatmap/formatter.js +2 -1
- package/Heatmap/heatmapClasses.js +2 -1
- package/Heatmap/plugin.d.ts +2 -2
- package/Heatmap/plugin.js +4 -2
- package/Heatmap/tooltip.d.ts +3 -0
- package/Heatmap/tooltip.js +25 -0
- package/LineChartPro/LineChartPro.d.ts +2 -2
- package/LineChartPro/LineChartPro.js +81 -54
- package/LineChartPro/LineChartPro.plugins.d.ts +10 -0
- package/LineChartPro/LineChartPro.plugins.js +3 -0
- package/README.md +1 -1
- package/ScatterChartPro/ScatterChartPro.d.ts +2 -2
- package/ScatterChartPro/ScatterChartPro.js +59 -34
- package/ScatterChartPro/ScatterChartPro.plugins.d.ts +10 -0
- package/ScatterChartPro/ScatterChartPro.plugins.js +3 -0
- package/hooks/index.d.ts +1 -0
- package/hooks/index.js +2 -1
- package/hooks/useSeries.d.ts +2 -4
- package/hooks/zoom/index.d.ts +1 -0
- package/hooks/zoom/index.js +1 -0
- package/hooks/zoom/useIsZoomInteracting.d.ts +6 -0
- package/hooks/zoom/useIsZoomInteracting.js +14 -0
- package/index.d.ts +3 -2
- package/index.js +5 -6
- package/internals/plugins/allPlugins.d.ts +11 -0
- package/internals/plugins/allPlugins.js +5 -0
- package/internals/plugins/useChartProZoom/creatZoomLookup.d.ts +3 -0
- package/internals/plugins/useChartProZoom/creatZoomLookup.js +12 -0
- package/internals/plugins/useChartProZoom/defaultizeZoom.d.ts +2 -0
- package/internals/plugins/useChartProZoom/defaultizeZoom.js +25 -0
- package/internals/plugins/useChartProZoom/index.d.ts +3 -0
- package/internals/plugins/useChartProZoom/index.js +3 -0
- package/internals/plugins/useChartProZoom/useChartProZoom.d.ts +3 -0
- package/internals/plugins/useChartProZoom/useChartProZoom.js +303 -0
- package/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +377 -0
- package/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +10 -0
- package/internals/plugins/useChartProZoom/useChartProZoom.types.d.ts +50 -0
- package/internals/plugins/useChartProZoom/useChartProZoom.utils.d.ts +45 -0
- package/internals/plugins/useChartProZoom/useChartProZoom.utils.js +126 -0
- package/internals/plugins/useChartProZoom/zoom.types.d.ts +53 -0
- package/internals/utils/releaseInfo.js +2 -2
- package/models/index.d.ts +1 -0
- package/models/index.js +2 -1
- package/modern/BarChartPro/BarChartPro.js +75 -34
- package/modern/BarChartPro/BarChartPro.plugins.js +3 -0
- package/modern/ChartContainerPro/ChartContainerPro.js +55 -37
- package/modern/ChartContainerPro/useChartContainerProProps.js +17 -13
- package/modern/ChartDataProviderPro/ChartDataProviderPro.js +105 -0
- package/modern/ChartDataProviderPro/useChartDataProviderProProps.js +15 -0
- package/modern/Heatmap/Heatmap.js +36 -13
- package/modern/Heatmap/Heatmap.plugins.js +2 -0
- package/modern/Heatmap/HeatmapItem.js +1 -1
- package/modern/Heatmap/HeatmapTooltip.js +8 -28
- package/modern/Heatmap/formatter.js +2 -1
- package/modern/Heatmap/heatmapClasses.js +2 -1
- package/modern/Heatmap/plugin.js +4 -2
- package/modern/Heatmap/tooltip.js +25 -0
- package/modern/LineChartPro/LineChartPro.js +81 -54
- package/modern/LineChartPro/LineChartPro.plugins.js +3 -0
- package/modern/ScatterChartPro/ScatterChartPro.js +59 -34
- package/modern/ScatterChartPro/ScatterChartPro.plugins.js +3 -0
- package/modern/hooks/index.js +2 -1
- package/modern/hooks/zoom/index.js +1 -0
- package/modern/hooks/zoom/useIsZoomInteracting.js +14 -0
- package/modern/index.js +5 -6
- package/modern/internals/plugins/allPlugins.js +5 -0
- package/modern/internals/plugins/useChartProZoom/creatZoomLookup.js +12 -0
- package/modern/internals/plugins/useChartProZoom/defaultizeZoom.js +25 -0
- package/modern/internals/plugins/useChartProZoom/index.js +3 -0
- package/modern/internals/plugins/useChartProZoom/useChartProZoom.js +303 -0
- package/modern/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +10 -0
- package/modern/internals/plugins/useChartProZoom/useChartProZoom.types.js +1 -0
- package/modern/internals/plugins/useChartProZoom/useChartProZoom.utils.js +126 -0
- package/modern/internals/plugins/useChartProZoom/zoom.types.js +1 -0
- package/modern/internals/utils/releaseInfo.js +2 -2
- package/modern/models/index.js +2 -1
- package/node/BarChartPro/BarChartPro.js +74 -33
- package/node/BarChartPro/BarChartPro.plugins.js +9 -0
- package/node/ChartContainerPro/ChartContainerPro.js +54 -36
- package/node/ChartContainerPro/useChartContainerProProps.js +17 -13
- package/node/ChartDataProviderPro/ChartDataProviderPro.js +111 -0
- package/node/ChartDataProviderPro/useChartDataProviderProProps.js +21 -0
- package/node/Heatmap/Heatmap.js +36 -13
- package/node/Heatmap/Heatmap.plugins.js +8 -0
- package/node/Heatmap/HeatmapItem.js +2 -2
- package/node/Heatmap/HeatmapTooltip.js +6 -26
- package/node/Heatmap/formatter.js +2 -1
- package/node/Heatmap/heatmapClasses.js +5 -4
- package/node/Heatmap/plugin.js +4 -2
- package/node/Heatmap/tooltip.js +31 -0
- package/node/LineChartPro/LineChartPro.js +80 -53
- package/node/LineChartPro/LineChartPro.plugins.js +9 -0
- package/node/ScatterChartPro/ScatterChartPro.js +58 -33
- package/node/ScatterChartPro/ScatterChartPro.plugins.js +9 -0
- package/node/hooks/index.js +16 -1
- package/node/{context/CartesianProviderPro → hooks/zoom}/index.js +4 -4
- package/node/hooks/zoom/useIsZoomInteracting.js +19 -0
- package/node/index.js +34 -23
- package/node/internals/plugins/allPlugins.js +11 -0
- package/node/internals/plugins/useChartProZoom/creatZoomLookup.js +19 -0
- package/node/internals/plugins/useChartProZoom/defaultizeZoom.js +33 -0
- package/node/internals/plugins/useChartProZoom/index.js +38 -0
- package/node/internals/plugins/useChartProZoom/useChartProZoom.js +310 -0
- package/node/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +18 -0
- package/node/internals/plugins/useChartProZoom/useChartProZoom.utils.js +140 -0
- package/node/internals/plugins/useChartProZoom/zoom.types.js +5 -0
- package/node/internals/utils/releaseInfo.js +4 -3
- package/package.json +6 -6
- package/typeOverloads/modules.d.ts +8 -1
- package/context/CartesianProviderPro/CartesianProviderPro.d.ts +0 -6
- package/context/CartesianProviderPro/CartesianProviderPro.js +0 -89
- package/context/CartesianProviderPro/createAxisFilterMapper.d.ts +0 -12
- package/context/CartesianProviderPro/createAxisFilterMapper.js +0 -60
- package/context/CartesianProviderPro/index.d.ts +0 -1
- package/context/CartesianProviderPro/index.js +0 -1
- package/context/ChartDataProviderPro/ChartDataProviderPro.d.ts +0 -10
- package/context/ChartDataProviderPro/ChartDataProviderPro.js +0 -299
- package/context/ChartDataProviderPro/useChartDataProviderProProps.d.ts +0 -14
- package/context/ChartDataProviderPro/useChartDataProviderProProps.js +0 -43
- package/context/ZoomProvider/Zoom.types.d.ts +0 -144
- package/context/ZoomProvider/ZoomContext.d.ts +0 -4
- package/context/ZoomProvider/ZoomContext.js +0 -16
- package/context/ZoomProvider/ZoomProvider.d.ts +0 -3
- package/context/ZoomProvider/ZoomProvider.js +0 -56
- package/context/ZoomProvider/ZoomSetup.d.ts +0 -9
- package/context/ZoomProvider/ZoomSetup.js +0 -16
- package/context/ZoomProvider/defaultizeZoom.d.ts +0 -2
- package/context/ZoomProvider/defaultizeZoom.js +0 -32
- package/context/ZoomProvider/index.d.ts +0 -3
- package/context/ZoomProvider/index.js +0 -3
- package/context/ZoomProvider/initializeZoomData.d.ts +0 -6
- package/context/ZoomProvider/initializeZoomData.js +0 -13
- package/context/ZoomProvider/useSetupPan.d.ts +0 -1
- package/context/ZoomProvider/useSetupPan.js +0 -106
- package/context/ZoomProvider/useSetupZoom.d.ts +0 -1
- package/context/ZoomProvider/useSetupZoom.js +0 -274
- package/context/ZoomProvider/useZoom.d.ts +0 -7
- package/context/ZoomProvider/useZoom.js +0 -19
- package/context/index.d.ts +0 -3
- package/context/index.js +0 -5
- package/modern/context/CartesianProviderPro/CartesianProviderPro.js +0 -89
- package/modern/context/CartesianProviderPro/createAxisFilterMapper.js +0 -60
- package/modern/context/CartesianProviderPro/index.js +0 -1
- package/modern/context/ChartDataProviderPro/ChartDataProviderPro.js +0 -299
- package/modern/context/ChartDataProviderPro/useChartDataProviderProProps.js +0 -43
- package/modern/context/ZoomProvider/ZoomContext.js +0 -16
- package/modern/context/ZoomProvider/ZoomProvider.js +0 -56
- package/modern/context/ZoomProvider/ZoomSetup.js +0 -16
- package/modern/context/ZoomProvider/defaultizeZoom.js +0 -32
- package/modern/context/ZoomProvider/index.js +0 -3
- package/modern/context/ZoomProvider/initializeZoomData.js +0 -13
- package/modern/context/ZoomProvider/useSetupPan.js +0 -106
- package/modern/context/ZoomProvider/useSetupZoom.js +0 -274
- package/modern/context/ZoomProvider/useZoom.js +0 -19
- package/modern/context/index.js +0 -5
- package/node/context/CartesianProviderPro/CartesianProviderPro.js +0 -95
- package/node/context/CartesianProviderPro/createAxisFilterMapper.js +0 -68
- package/node/context/ChartDataProviderPro/ChartDataProviderPro.js +0 -305
- package/node/context/ChartDataProviderPro/useChartDataProviderProProps.js +0 -50
- package/node/context/ZoomProvider/ZoomContext.js +0 -23
- package/node/context/ZoomProvider/ZoomProvider.js +0 -63
- package/node/context/ZoomProvider/ZoomSetup.js +0 -20
- package/node/context/ZoomProvider/defaultizeZoom.js +0 -40
- package/node/context/ZoomProvider/index.js +0 -38
- package/node/context/ZoomProvider/initializeZoomData.js +0 -20
- package/node/context/ZoomProvider/useSetupPan.js +0 -114
- package/node/context/ZoomProvider/useSetupZoom.js +0 -281
- package/node/context/ZoomProvider/useZoom.js +0 -25
- package/node/context/index.js +0 -27
- /package/{context/ChartDataProviderPro → ChartDataProviderPro}/index.d.ts +0 -0
- /package/{context/ChartDataProviderPro → ChartDataProviderPro}/index.js +0 -0
- /package/{context/ZoomProvider/Zoom.types.js → internals/plugins/useChartProZoom/useChartProZoom.types.js} +0 -0
- /package/{modern/context/ZoomProvider/Zoom.types.js → internals/plugins/useChartProZoom/zoom.types.js} +0 -0
- /package/modern/{context/ChartDataProviderPro → ChartDataProviderPro}/index.js +0 -0
- /package/node/{context/ChartDataProviderPro → ChartDataProviderPro}/index.js +0 -0
- /package/node/{context/ZoomProvider/Zoom.types.js → internals/plugins/useChartProZoom/useChartProZoom.types.js} +0 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export interface ZoomOptions {
|
|
2
|
+
/**
|
|
3
|
+
* The starting percentage of the zoom range. In the range of 0 to 100.
|
|
4
|
+
*
|
|
5
|
+
* @default 0
|
|
6
|
+
*/
|
|
7
|
+
minStart?: number;
|
|
8
|
+
/**
|
|
9
|
+
* The ending percentage of the zoom range. In the range of 0 to 100.
|
|
10
|
+
*
|
|
11
|
+
* @default 100
|
|
12
|
+
*/
|
|
13
|
+
maxEnd?: number;
|
|
14
|
+
/**
|
|
15
|
+
* The step size of the zooming function. Defines the granularity of the zoom.
|
|
16
|
+
*
|
|
17
|
+
* @default 5
|
|
18
|
+
*/
|
|
19
|
+
step?: number;
|
|
20
|
+
/**
|
|
21
|
+
* Restricts the minimum span size in the range of 0 to 100.
|
|
22
|
+
*
|
|
23
|
+
* If the span size is smaller than the minSpan, the span will be resized to the minSpan.
|
|
24
|
+
*
|
|
25
|
+
* @default 10
|
|
26
|
+
*/
|
|
27
|
+
minSpan?: number;
|
|
28
|
+
/**
|
|
29
|
+
* Restricts the maximum span size in the range of 0 to 100.
|
|
30
|
+
*
|
|
31
|
+
* If the span size is larger than the maxSpan, the span will be resized to the maxSpan.
|
|
32
|
+
*
|
|
33
|
+
* @default 100
|
|
34
|
+
*/
|
|
35
|
+
maxSpan?: number;
|
|
36
|
+
/**
|
|
37
|
+
* Set to `false` to disable panning. Useful when you want to pan programmatically,
|
|
38
|
+
* or to show only a specific section of the chart.
|
|
39
|
+
*
|
|
40
|
+
* @default true
|
|
41
|
+
*/
|
|
42
|
+
panning?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Defines how to filter the axis data when it is outside of the zoomed range of this axis.
|
|
45
|
+
*
|
|
46
|
+
* - `keep`: The data outside the zoomed range is kept. And the other axes will stay the same.
|
|
47
|
+
* - `discard`: The data outside the zoomed range is discarded for the other axes.
|
|
48
|
+
* The other axes will be adjusted to fit the zoomed range.
|
|
49
|
+
*
|
|
50
|
+
* @default 'keep'
|
|
51
|
+
*/
|
|
52
|
+
filterMode?: 'discard' | 'keep';
|
|
53
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import ponyfillGlobal from '@mui/utils/ponyfillGlobal';
|
|
2
2
|
export const getReleaseInfo = () => {
|
|
3
|
-
const releaseInfo = "
|
|
3
|
+
const releaseInfo = "MTczODg4MjgwMDAwMA==";
|
|
4
4
|
if (process.env.NODE_ENV !== 'production') {
|
|
5
5
|
// A simple hack to set the value in the test environment (has no build step).
|
|
6
6
|
// eslint-disable-next-line no-useless-concat
|
package/models/index.d.ts
CHANGED
package/models/index.js
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from "./seriesType/index.js";
|
|
1
|
+
export * from "./seriesType/index.js";
|
|
2
|
+
export {};
|
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
4
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
5
|
-
const _excluded = ["
|
|
5
|
+
const _excluded = ["initialZoom", "onZoomChange", "apiRef"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import { useThemeProps } from '@mui/material/styles';
|
|
9
9
|
import { BarPlot } from '@mui/x-charts/BarChart';
|
|
10
|
-
import { ChartsOnAxisClickHandler } from '@mui/x-charts/ChartsOnAxisClickHandler';
|
|
11
10
|
import { ChartsGrid } from '@mui/x-charts/ChartsGrid';
|
|
12
11
|
import { ChartsOverlay } from '@mui/x-charts/ChartsOverlay';
|
|
13
12
|
import { ChartsAxis } from '@mui/x-charts/ChartsAxis';
|
|
@@ -15,17 +14,17 @@ import { ChartsLegend } from '@mui/x-charts/ChartsLegend';
|
|
|
15
14
|
import { ChartsAxisHighlight } from '@mui/x-charts/ChartsAxisHighlight';
|
|
16
15
|
import { ChartsTooltip } from '@mui/x-charts/ChartsTooltip';
|
|
17
16
|
import { ChartsClipPath } from '@mui/x-charts/ChartsClipPath';
|
|
18
|
-
import { useBarChartProps } from '@mui/x-charts/internals';
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
17
|
+
import { useBarChartProps, ChartsWrapper } from '@mui/x-charts/internals';
|
|
18
|
+
import { ChartsSurface } from '@mui/x-charts/ChartsSurface';
|
|
19
|
+
import { useIsZoomInteracting } from "../hooks/zoom/index.js";
|
|
20
|
+
import { useChartContainerProProps } from "../ChartContainerPro/useChartContainerProProps.js";
|
|
21
|
+
import { ChartDataProviderPro } from "../ChartDataProviderPro/index.js";
|
|
22
|
+
import { BAR_CHART_PRO_PLUGINS } from "./BarChartPro.plugins.js";
|
|
22
23
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
23
24
|
function BarChartPlotZoom(props) {
|
|
24
|
-
const
|
|
25
|
-
isInteracting
|
|
26
|
-
} = useZoom();
|
|
25
|
+
const isInteracting = useIsZoomInteracting();
|
|
27
26
|
return /*#__PURE__*/_jsx(BarPlot, _extends({}, props, {
|
|
28
|
-
skipAnimation: isInteracting ||
|
|
27
|
+
skipAnimation: isInteracting || props.skipAnimation
|
|
29
28
|
}));
|
|
30
29
|
}
|
|
31
30
|
process.env.NODE_ENV !== "production" ? BarChartPlotZoom.propTypes = {
|
|
@@ -84,14 +83,15 @@ const BarChartPro = /*#__PURE__*/React.forwardRef(function BarChartPro(inProps,
|
|
|
84
83
|
name: 'MuiBarChartPro'
|
|
85
84
|
});
|
|
86
85
|
const {
|
|
87
|
-
|
|
88
|
-
onZoomChange
|
|
86
|
+
initialZoom,
|
|
87
|
+
onZoomChange,
|
|
88
|
+
apiRef
|
|
89
89
|
} = props,
|
|
90
90
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
91
91
|
const {
|
|
92
|
+
chartsWrapperProps,
|
|
92
93
|
chartContainerProps,
|
|
93
94
|
barPlotProps,
|
|
94
|
-
axisClickHandlerProps,
|
|
95
95
|
gridProps,
|
|
96
96
|
clipPathProps,
|
|
97
97
|
clipPathGroupProps,
|
|
@@ -101,15 +101,24 @@ const BarChartPro = /*#__PURE__*/React.forwardRef(function BarChartPro(inProps,
|
|
|
101
101
|
legendProps,
|
|
102
102
|
children
|
|
103
103
|
} = useBarChartProps(other);
|
|
104
|
+
const {
|
|
105
|
+
chartDataProviderProProps,
|
|
106
|
+
chartsSurfaceProps
|
|
107
|
+
} = useChartContainerProProps(_extends({}, chartContainerProps, {
|
|
108
|
+
initialZoom,
|
|
109
|
+
onZoomChange,
|
|
110
|
+
apiRef,
|
|
111
|
+
plugins: BAR_CHART_PRO_PLUGINS
|
|
112
|
+
}), ref);
|
|
104
113
|
const Tooltip = props.slots?.tooltip ?? ChartsTooltip;
|
|
105
|
-
return /*#__PURE__*/
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
}))
|
|
114
|
+
return /*#__PURE__*/_jsx(ChartDataProviderPro, _extends({}, chartDataProviderProProps, {
|
|
115
|
+
children: /*#__PURE__*/_jsxs(ChartsWrapper, _extends({}, chartsWrapperProps, {
|
|
116
|
+
children: [!props.hideLegend && /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legendProps)), /*#__PURE__*/_jsxs(ChartsSurface, _extends({}, chartsSurfaceProps, {
|
|
117
|
+
children: [/*#__PURE__*/_jsx(ChartsGrid, _extends({}, gridProps)), /*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
|
|
118
|
+
children: [/*#__PURE__*/_jsx(BarChartPlotZoom, _extends({}, barPlotProps)), /*#__PURE__*/_jsx(ChartsOverlay, _extends({}, overlayProps)), /*#__PURE__*/_jsx(ChartsAxisHighlight, _extends({}, axisHighlightProps))]
|
|
119
|
+
})), /*#__PURE__*/_jsx(ChartsAxis, _extends({}, chartsAxisProps)), !props.loading && /*#__PURE__*/_jsx(Tooltip, _extends({}, props.slotProps?.tooltip)), /*#__PURE__*/_jsx(ChartsClipPath, _extends({}, clipPathProps)), children]
|
|
120
|
+
}))]
|
|
121
|
+
}))
|
|
113
122
|
}));
|
|
114
123
|
});
|
|
115
124
|
process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
@@ -117,6 +126,11 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
|
117
126
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
118
127
|
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
119
128
|
// ----------------------------------------------------------------------
|
|
129
|
+
apiRef: PropTypes.shape({
|
|
130
|
+
current: PropTypes.shape({
|
|
131
|
+
setZoomData: PropTypes.func.isRequired
|
|
132
|
+
})
|
|
133
|
+
}),
|
|
120
134
|
/**
|
|
121
135
|
* The configuration of axes highlight.
|
|
122
136
|
* Default is set to 'band' in the bar direction.
|
|
@@ -149,7 +163,7 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
|
149
163
|
className: PropTypes.string,
|
|
150
164
|
/**
|
|
151
165
|
* Color palette used to colorize multiple series.
|
|
152
|
-
* @default
|
|
166
|
+
* @default rainbowSurgePalette
|
|
153
167
|
*/
|
|
154
168
|
colors: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.func]),
|
|
155
169
|
/**
|
|
@@ -179,12 +193,26 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
|
179
193
|
*/
|
|
180
194
|
hideLegend: PropTypes.bool,
|
|
181
195
|
/**
|
|
182
|
-
* The
|
|
196
|
+
* The highlighted item.
|
|
197
|
+
* Used when the highlight is controlled.
|
|
183
198
|
*/
|
|
184
199
|
highlightedItem: PropTypes.shape({
|
|
185
200
|
dataIndex: PropTypes.number,
|
|
186
|
-
seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
|
|
201
|
+
seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired
|
|
187
202
|
}),
|
|
203
|
+
/**
|
|
204
|
+
* This prop is used to help implement the accessibility logic.
|
|
205
|
+
* If you don't provide this prop. It falls back to a randomly generated id.
|
|
206
|
+
*/
|
|
207
|
+
id: PropTypes.string,
|
|
208
|
+
/**
|
|
209
|
+
* The list of zoom data related to each axis.
|
|
210
|
+
*/
|
|
211
|
+
initialZoom: PropTypes.arrayOf(PropTypes.shape({
|
|
212
|
+
axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
213
|
+
end: PropTypes.number.isRequired,
|
|
214
|
+
start: PropTypes.number.isRequired
|
|
215
|
+
})),
|
|
188
216
|
/**
|
|
189
217
|
* The direction of the bar elements.
|
|
190
218
|
* @default 'vertical'
|
|
@@ -205,7 +233,6 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
|
205
233
|
* The margin between the SVG and the drawing area.
|
|
206
234
|
* It's used for leaving some space for extra information such as the x- and y-axis or legend.
|
|
207
235
|
* Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
|
|
208
|
-
* @default object Depends on the charts type.
|
|
209
236
|
*/
|
|
210
237
|
margin: PropTypes.shape({
|
|
211
238
|
bottom: PropTypes.number,
|
|
@@ -265,6 +292,7 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
|
265
292
|
*/
|
|
266
293
|
slots: PropTypes.object,
|
|
267
294
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
295
|
+
theme: PropTypes.oneOf(['dark', 'light']),
|
|
268
296
|
title: PropTypes.string,
|
|
269
297
|
/**
|
|
270
298
|
* Indicate which axis to display the top of the charts.
|
|
@@ -307,7 +335,6 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
|
307
335
|
hideTooltip: PropTypes.bool,
|
|
308
336
|
id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
309
337
|
label: PropTypes.string,
|
|
310
|
-
labelFontSize: PropTypes.number,
|
|
311
338
|
labelStyle: PropTypes.object,
|
|
312
339
|
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
313
340
|
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
@@ -318,7 +345,6 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
|
318
345
|
slots: PropTypes.object,
|
|
319
346
|
stroke: PropTypes.string,
|
|
320
347
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
321
|
-
tickFontSize: PropTypes.number,
|
|
322
348
|
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
323
349
|
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
324
350
|
tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
|
|
@@ -370,7 +396,6 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
|
370
396
|
hideTooltip: PropTypes.bool,
|
|
371
397
|
id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
372
398
|
label: PropTypes.string,
|
|
373
|
-
labelFontSize: PropTypes.number,
|
|
374
399
|
labelStyle: PropTypes.object,
|
|
375
400
|
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
376
401
|
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
@@ -381,7 +406,6 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
|
381
406
|
slots: PropTypes.object,
|
|
382
407
|
stroke: PropTypes.string,
|
|
383
408
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
384
|
-
tickFontSize: PropTypes.number,
|
|
385
409
|
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
386
410
|
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
387
411
|
tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
|
|
@@ -403,12 +427,29 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
|
403
427
|
}), PropTypes.bool])
|
|
404
428
|
})),
|
|
405
429
|
/**
|
|
406
|
-
* The
|
|
430
|
+
* The configuration of the z-axes.
|
|
407
431
|
*/
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
432
|
+
zAxis: PropTypes.arrayOf(PropTypes.shape({
|
|
433
|
+
colorMap: PropTypes.oneOfType([PropTypes.shape({
|
|
434
|
+
colors: PropTypes.arrayOf(PropTypes.string).isRequired,
|
|
435
|
+
type: PropTypes.oneOf(['ordinal']).isRequired,
|
|
436
|
+
unknownColor: PropTypes.string,
|
|
437
|
+
values: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number, PropTypes.string]).isRequired)
|
|
438
|
+
}), PropTypes.shape({
|
|
439
|
+
color: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string.isRequired), PropTypes.func]).isRequired,
|
|
440
|
+
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
441
|
+
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
442
|
+
type: PropTypes.oneOf(['continuous']).isRequired
|
|
443
|
+
}), PropTypes.shape({
|
|
444
|
+
colors: PropTypes.arrayOf(PropTypes.string).isRequired,
|
|
445
|
+
thresholds: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]).isRequired).isRequired,
|
|
446
|
+
type: PropTypes.oneOf(['piecewise']).isRequired
|
|
447
|
+
})]),
|
|
448
|
+
data: PropTypes.array,
|
|
449
|
+
dataKey: PropTypes.string,
|
|
450
|
+
id: PropTypes.string,
|
|
451
|
+
max: PropTypes.number,
|
|
452
|
+
min: PropTypes.number
|
|
412
453
|
}))
|
|
413
454
|
} : void 0;
|
|
414
455
|
export { BarChartPro };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { useChartZAxis, useChartCartesianAxis, useChartInteraction, useChartHighlight } from '@mui/x-charts/internals';
|
|
2
|
+
import { useChartProZoom } from "../internals/plugins/useChartProZoom/index.js";
|
|
3
|
+
export const BAR_CHART_PRO_PLUGINS = [useChartZAxis, useChartCartesianAxis, useChartInteraction, useChartHighlight, useChartProZoom];
|
|
@@ -3,37 +3,58 @@
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
|
-
import {
|
|
7
|
-
import { ResizableContainer } from '@mui/x-charts/internals';
|
|
8
|
-
import { ChartsSurface } from '@mui/x-charts';
|
|
9
|
-
import { getReleaseInfo } from "../internals/utils/releaseInfo.js";
|
|
10
|
-
import { ChartDataProviderPro } from "../context/ChartDataProviderPro/index.js";
|
|
6
|
+
import { ChartsSurface } from '@mui/x-charts/ChartsSurface';
|
|
11
7
|
import { useChartContainerProProps } from "./useChartContainerProProps.js";
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
import { ChartDataProviderPro } from "../ChartDataProviderPro/index.js";
|
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
/**
|
|
11
|
+
* It sets up the data providers as well as the `<svg>` for the chart.
|
|
12
|
+
*
|
|
13
|
+
* This is a combination of both the `ChartDataProviderPro` and `ChartsSurface` components.
|
|
14
|
+
*
|
|
15
|
+
* Demos:
|
|
16
|
+
*
|
|
17
|
+
* - [Composition](https://mui.com/x/api/charts/composition/)
|
|
18
|
+
*
|
|
19
|
+
* API:
|
|
20
|
+
*
|
|
21
|
+
* - [ChartContainer API](https://mui.com/x/api/charts/chart-container/)
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```jsx
|
|
25
|
+
* <ChartContainerPro
|
|
26
|
+
* series={[{ label: "Label", type: "bar", data: [10, 20] }]}
|
|
27
|
+
* xAxis={[{ data: ["A", "B"], scaleType: "band", id: "x-axis" }]}
|
|
28
|
+
* >
|
|
29
|
+
* <BarPlot />
|
|
30
|
+
* <ChartsXAxis position="bottom" axisId="x-axis" />
|
|
31
|
+
* </ChartContainerPro>
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
const ChartContainerPro = /*#__PURE__*/React.forwardRef(function ChartContainerProInner(props, ref) {
|
|
15
35
|
const {
|
|
16
36
|
chartDataProviderProProps,
|
|
17
37
|
children,
|
|
18
|
-
resizableContainerProps,
|
|
19
38
|
chartsSurfaceProps
|
|
20
39
|
} = useChartContainerProProps(props, ref);
|
|
21
40
|
return /*#__PURE__*/_jsx(ChartDataProviderPro, _extends({}, chartDataProviderProProps, {
|
|
22
|
-
children: /*#__PURE__*/
|
|
23
|
-
children:
|
|
24
|
-
children: children
|
|
25
|
-
})), /*#__PURE__*/_jsx(Watermark, {
|
|
26
|
-
packageName: "x-charts-pro",
|
|
27
|
-
releaseInfo: releaseInfo
|
|
28
|
-
})]
|
|
41
|
+
children: /*#__PURE__*/_jsx(ChartsSurface, _extends({}, chartsSurfaceProps, {
|
|
42
|
+
children: children
|
|
29
43
|
}))
|
|
30
44
|
}));
|
|
31
45
|
});
|
|
46
|
+
|
|
47
|
+
// @ts-expect-error the type coercion breaks the prop types
|
|
32
48
|
process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
|
|
33
49
|
// ----------------------------- Warning --------------------------------
|
|
34
50
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
35
51
|
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
36
52
|
// ----------------------------------------------------------------------
|
|
53
|
+
apiRef: PropTypes.shape({
|
|
54
|
+
current: PropTypes.shape({
|
|
55
|
+
setZoomData: PropTypes.func.isRequired
|
|
56
|
+
})
|
|
57
|
+
}),
|
|
37
58
|
children: PropTypes.node,
|
|
38
59
|
className: PropTypes.string,
|
|
39
60
|
/**
|
|
@@ -57,17 +78,30 @@ process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
|
|
|
57
78
|
*/
|
|
58
79
|
height: PropTypes.number,
|
|
59
80
|
/**
|
|
60
|
-
* The
|
|
81
|
+
* The highlighted item.
|
|
82
|
+
* Used when the highlight is controlled.
|
|
61
83
|
*/
|
|
62
84
|
highlightedItem: PropTypes.shape({
|
|
63
85
|
dataIndex: PropTypes.number,
|
|
64
|
-
seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
|
|
86
|
+
seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired
|
|
65
87
|
}),
|
|
88
|
+
/**
|
|
89
|
+
* This prop is used to help implement the accessibility logic.
|
|
90
|
+
* If you don't provide this prop. It falls back to a randomly generated id.
|
|
91
|
+
*/
|
|
92
|
+
id: PropTypes.string,
|
|
93
|
+
/**
|
|
94
|
+
* The list of zoom data related to each axis.
|
|
95
|
+
*/
|
|
96
|
+
initialZoom: PropTypes.arrayOf(PropTypes.shape({
|
|
97
|
+
axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
98
|
+
end: PropTypes.number.isRequired,
|
|
99
|
+
start: PropTypes.number.isRequired
|
|
100
|
+
})),
|
|
66
101
|
/**
|
|
67
102
|
* The margin between the SVG and the drawing area.
|
|
68
103
|
* It's used for leaving some space for extra information such as the x- and y-axis or legend.
|
|
69
104
|
* Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
|
|
70
|
-
* @default object Depends on the charts type.
|
|
71
105
|
*/
|
|
72
106
|
margin: PropTypes.shape({
|
|
73
107
|
bottom: PropTypes.number,
|
|
@@ -87,23 +121,19 @@ process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
|
|
|
87
121
|
* @param {ZoomData[]} zoomData Updated zoom data.
|
|
88
122
|
*/
|
|
89
123
|
onZoomChange: PropTypes.func,
|
|
90
|
-
/**
|
|
91
|
-
* An array of plugins defining how to preprocess data.
|
|
92
|
-
* If not provided, the container supports line, bar, scatter and pie charts.
|
|
93
|
-
*/
|
|
94
|
-
plugins: PropTypes.arrayOf(PropTypes.object),
|
|
95
124
|
/**
|
|
96
125
|
* The array of series to display.
|
|
97
126
|
* Each type of series has its own specificity.
|
|
98
127
|
* Please refer to the appropriate docs page to learn more about it.
|
|
99
128
|
*/
|
|
100
|
-
series: PropTypes.arrayOf(PropTypes.object)
|
|
129
|
+
series: PropTypes.arrayOf(PropTypes.object),
|
|
101
130
|
/**
|
|
102
131
|
* If `true`, animations are skipped.
|
|
103
132
|
* If unset or `false`, the animations respects the user's `prefers-reduced-motion` setting.
|
|
104
133
|
*/
|
|
105
134
|
skipAnimation: PropTypes.bool,
|
|
106
135
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
136
|
+
theme: PropTypes.oneOf(['dark', 'light']),
|
|
107
137
|
title: PropTypes.string,
|
|
108
138
|
/**
|
|
109
139
|
* The width of the chart in px. If not defined, it takes the width of the parent element.
|
|
@@ -140,7 +170,6 @@ process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
|
|
|
140
170
|
hideTooltip: PropTypes.bool,
|
|
141
171
|
id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
142
172
|
label: PropTypes.string,
|
|
143
|
-
labelFontSize: PropTypes.number,
|
|
144
173
|
labelStyle: PropTypes.object,
|
|
145
174
|
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
146
175
|
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
@@ -151,7 +180,6 @@ process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
|
|
|
151
180
|
slots: PropTypes.object,
|
|
152
181
|
stroke: PropTypes.string,
|
|
153
182
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
154
|
-
tickFontSize: PropTypes.number,
|
|
155
183
|
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
156
184
|
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
157
185
|
tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
|
|
@@ -203,7 +231,6 @@ process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
|
|
|
203
231
|
hideTooltip: PropTypes.bool,
|
|
204
232
|
id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
205
233
|
label: PropTypes.string,
|
|
206
|
-
labelFontSize: PropTypes.number,
|
|
207
234
|
labelStyle: PropTypes.object,
|
|
208
235
|
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
209
236
|
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
@@ -214,7 +241,6 @@ process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
|
|
|
214
241
|
slots: PropTypes.object,
|
|
215
242
|
stroke: PropTypes.string,
|
|
216
243
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
217
|
-
tickFontSize: PropTypes.number,
|
|
218
244
|
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
219
245
|
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
220
246
|
tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
|
|
@@ -259,14 +285,6 @@ process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
|
|
|
259
285
|
id: PropTypes.string,
|
|
260
286
|
max: PropTypes.number,
|
|
261
287
|
min: PropTypes.number
|
|
262
|
-
})),
|
|
263
|
-
/**
|
|
264
|
-
* The list of zoom data related to each axis.
|
|
265
|
-
*/
|
|
266
|
-
zoom: PropTypes.arrayOf(PropTypes.shape({
|
|
267
|
-
axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
268
|
-
end: PropTypes.number.isRequired,
|
|
269
|
-
start: PropTypes.number.isRequired
|
|
270
288
|
}))
|
|
271
289
|
} : void 0;
|
|
272
290
|
export { ChartContainerPro };
|
|
@@ -2,27 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
4
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["
|
|
5
|
+
const _excluded = ["initialZoom", "onZoomChange", "plugins", "apiRef"];
|
|
6
6
|
import { useChartContainerProps } from '@mui/x-charts/internals';
|
|
7
|
+
import { ALL_PLUGINS } from "../internals/plugins/allPlugins.js";
|
|
7
8
|
export const useChartContainerProProps = (props, ref) => {
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
};
|
|
9
|
+
const _ref = props,
|
|
10
|
+
{
|
|
11
|
+
initialZoom,
|
|
12
|
+
onZoomChange,
|
|
13
|
+
plugins,
|
|
14
|
+
apiRef
|
|
15
|
+
} = _ref,
|
|
16
|
+
baseProps = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
17
17
|
const {
|
|
18
18
|
chartDataProviderProps,
|
|
19
19
|
chartsSurfaceProps,
|
|
20
|
-
resizableContainerProps,
|
|
21
20
|
children
|
|
22
21
|
} = useChartContainerProps(baseProps, ref);
|
|
22
|
+
const chartDataProviderProProps = _extends({}, chartDataProviderProps, {
|
|
23
|
+
initialZoom,
|
|
24
|
+
onZoomChange,
|
|
25
|
+
apiRef,
|
|
26
|
+
plugins: plugins ?? ALL_PLUGINS
|
|
27
|
+
});
|
|
23
28
|
return {
|
|
24
|
-
chartDataProviderProProps
|
|
25
|
-
resizableContainerProps,
|
|
29
|
+
chartDataProviderProProps,
|
|
26
30
|
chartsSurfaceProps,
|
|
27
31
|
children
|
|
28
32
|
};
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
6
|
+
import { Watermark } from '@mui/x-license/Watermark';
|
|
7
|
+
import { ChartProvider, AnimationProvider } from '@mui/x-charts/internals';
|
|
8
|
+
import { useLicenseVerifier } from '@mui/x-license/useLicenseVerifier';
|
|
9
|
+
import { useChartDataProviderProProps } from "./useChartDataProviderProProps.js";
|
|
10
|
+
import { getReleaseInfo } from "../internals/utils/releaseInfo.js";
|
|
11
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
|
+
const releaseInfo = getReleaseInfo();
|
|
13
|
+
const packageIdentifier = 'x-charts-pro';
|
|
14
|
+
/**
|
|
15
|
+
* Orchestrates the data providers for the chart components and hooks.
|
|
16
|
+
*
|
|
17
|
+
* Use this component if you have custom HTML components that need to access the chart data.
|
|
18
|
+
*
|
|
19
|
+
* Demos:
|
|
20
|
+
*
|
|
21
|
+
* - [Composition](https://mui.com/x/api/charts/composition/)
|
|
22
|
+
*
|
|
23
|
+
* API:
|
|
24
|
+
*
|
|
25
|
+
* - [ChartDataProviderPro API](https://mui.com/x/api/charts/chart-data-provider/)
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```jsx
|
|
29
|
+
* <ChartDataProviderPro
|
|
30
|
+
* series={[{ label: "Label", type: "bar", data: [10, 20] }]}
|
|
31
|
+
* xAxis={[{ data: ["A", "B"], scaleType: "band", id: "x-axis" }]}
|
|
32
|
+
* >
|
|
33
|
+
* <ChartsSurface>
|
|
34
|
+
* <BarPlot />
|
|
35
|
+
* <ChartsXAxis position="bottom" axisId="x-axis" />
|
|
36
|
+
* </ChartsSurface>
|
|
37
|
+
* {'Custom Legend Component'}
|
|
38
|
+
* </ChartDataProviderPro>
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
function ChartDataProviderPro(props) {
|
|
42
|
+
const {
|
|
43
|
+
children,
|
|
44
|
+
animationProviderProps,
|
|
45
|
+
chartProviderProps
|
|
46
|
+
} = useChartDataProviderProProps(props);
|
|
47
|
+
useLicenseVerifier(packageIdentifier, releaseInfo);
|
|
48
|
+
return /*#__PURE__*/_jsx(ChartProvider, _extends({}, chartProviderProps, {
|
|
49
|
+
children: /*#__PURE__*/_jsxs(AnimationProvider, _extends({}, animationProviderProps, {
|
|
50
|
+
children: [children, /*#__PURE__*/_jsx(Watermark, {
|
|
51
|
+
packageName: packageIdentifier,
|
|
52
|
+
releaseInfo: releaseInfo
|
|
53
|
+
})]
|
|
54
|
+
}))
|
|
55
|
+
}));
|
|
56
|
+
}
|
|
57
|
+
process.env.NODE_ENV !== "production" ? ChartDataProviderPro.propTypes = {
|
|
58
|
+
// ----------------------------- Warning --------------------------------
|
|
59
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
60
|
+
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
61
|
+
// ----------------------------------------------------------------------
|
|
62
|
+
apiRef: PropTypes.any,
|
|
63
|
+
children: PropTypes.node,
|
|
64
|
+
/**
|
|
65
|
+
* Color palette used to colorize multiple series.
|
|
66
|
+
* @default rainbowSurgePalette
|
|
67
|
+
*/
|
|
68
|
+
colors: PropTypes.any,
|
|
69
|
+
/**
|
|
70
|
+
* An array of objects that can be used to populate series and axes data using their `dataKey` property.
|
|
71
|
+
*/
|
|
72
|
+
dataset: PropTypes.any,
|
|
73
|
+
/**
|
|
74
|
+
* The height of the chart in px. If not defined, it takes the height of the parent element.
|
|
75
|
+
*/
|
|
76
|
+
height: PropTypes.any,
|
|
77
|
+
/**
|
|
78
|
+
* This prop is used to help implement the accessibility logic.
|
|
79
|
+
* If you don't provide this prop. It falls back to a randomly generated id.
|
|
80
|
+
*/
|
|
81
|
+
id: PropTypes.any,
|
|
82
|
+
/**
|
|
83
|
+
* The margin between the SVG and the drawing area.
|
|
84
|
+
* It's used for leaving some space for extra information such as the x- and y-axis or legend.
|
|
85
|
+
* Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
|
|
86
|
+
*/
|
|
87
|
+
margin: PropTypes.any,
|
|
88
|
+
/**
|
|
89
|
+
* The array of series to display.
|
|
90
|
+
* Each type of series has its own specificity.
|
|
91
|
+
* Please refer to the appropriate docs page to learn more about it.
|
|
92
|
+
*/
|
|
93
|
+
series: PropTypes.any,
|
|
94
|
+
/**
|
|
95
|
+
* If `true`, animations are skipped.
|
|
96
|
+
* If unset or `false`, the animations respects the user's `prefers-reduced-motion` setting.
|
|
97
|
+
*/
|
|
98
|
+
skipAnimation: PropTypes.any,
|
|
99
|
+
theme: PropTypes.any,
|
|
100
|
+
/**
|
|
101
|
+
* The width of the chart in px. If not defined, it takes the width of the parent element.
|
|
102
|
+
*/
|
|
103
|
+
width: PropTypes.any
|
|
104
|
+
} : void 0;
|
|
105
|
+
export { ChartDataProviderPro };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { useChartDataProviderProps } from '@mui/x-charts/internals';
|
|
4
|
+
export const useChartDataProviderProProps = props => {
|
|
5
|
+
const {
|
|
6
|
+
animationProviderProps,
|
|
7
|
+
chartProviderProps,
|
|
8
|
+
children
|
|
9
|
+
} = useChartDataProviderProps(props);
|
|
10
|
+
return {
|
|
11
|
+
children,
|
|
12
|
+
animationProviderProps,
|
|
13
|
+
chartProviderProps
|
|
14
|
+
};
|
|
15
|
+
};
|