@mui/x-charts-pro 8.0.0-alpha.0 → 8.0.0-alpha.10
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 +74 -61
- package/CHANGELOG.md +2215 -119
- package/ChartContainerPro/ChartContainerPro.d.ts +33 -4
- package/ChartContainerPro/ChartContainerPro.js +59 -51
- package/ChartContainerPro/useChartContainerProProps.d.ts +7 -43
- package/ChartContainerPro/useChartContainerProProps.js +15 -9
- package/ChartDataProviderPro/ChartDataProviderPro.d.ts +37 -0
- package/{context/ChartDataProviderPro → ChartDataProviderPro}/ChartDataProviderPro.js +71 -80
- 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 +11 -4
- package/Heatmap/Heatmap.js +35 -43
- package/Heatmap/HeatmapItem.js +1 -1
- package/Heatmap/HeatmapTooltip.d.ts +9 -0
- package/Heatmap/HeatmapTooltip.js +274 -0
- 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/index.d.ts +1 -1
- package/Heatmap/index.js +1 -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 +80 -82
- package/README.md +3 -3
- package/ScatterChartPro/ScatterChartPro.d.ts +2 -2
- package/ScatterChartPro/ScatterChartPro.js +51 -64
- 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 -1
- package/index.js +5 -5
- 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 +74 -61
- package/modern/ChartContainerPro/ChartContainerPro.js +59 -51
- package/modern/ChartContainerPro/useChartContainerProProps.js +15 -9
- package/modern/{context/ChartDataProviderPro → ChartDataProviderPro}/ChartDataProviderPro.js +71 -80
- package/modern/ChartDataProviderPro/useChartDataProviderProProps.js +15 -0
- package/modern/Heatmap/Heatmap.js +35 -43
- package/modern/Heatmap/HeatmapItem.js +1 -1
- package/modern/Heatmap/HeatmapTooltip.js +274 -0
- package/modern/Heatmap/formatter.js +2 -1
- package/modern/Heatmap/heatmapClasses.js +2 -1
- package/modern/Heatmap/index.js +1 -1
- package/modern/Heatmap/plugin.js +4 -2
- package/modern/Heatmap/tooltip.js +25 -0
- package/modern/LineChartPro/LineChartPro.js +80 -82
- package/modern/ScatterChartPro/ScatterChartPro.js +51 -64
- 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 -5
- 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 +73 -60
- package/node/ChartContainerPro/ChartContainerPro.js +58 -50
- package/node/ChartContainerPro/useChartContainerProProps.js +15 -9
- package/node/{context/ChartDataProviderPro → ChartDataProviderPro}/ChartDataProviderPro.js +70 -79
- package/node/ChartDataProviderPro/useChartDataProviderProProps.js +21 -0
- package/node/Heatmap/Heatmap.js +35 -43
- package/node/Heatmap/HeatmapItem.js +2 -2
- package/node/Heatmap/HeatmapTooltip.js +280 -0
- package/node/Heatmap/formatter.js +2 -1
- package/node/Heatmap/heatmapClasses.js +5 -4
- package/node/Heatmap/index.js +4 -4
- package/node/Heatmap/plugin.js +4 -2
- package/node/Heatmap/tooltip.js +31 -0
- package/node/LineChartPro/LineChartPro.js +79 -81
- package/node/ScatterChartPro/ScatterChartPro.js +50 -63
- 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 -12
- 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 +8 -8
- package/typeOverloads/modules.d.ts +8 -1
- package/Heatmap/DefaultHeatmapTooltip.d.ts +0 -7
- package/Heatmap/DefaultHeatmapTooltip.js +0 -99
- 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 -7
- package/context/ChartDataProviderPro/useChartDataProviderProProps.d.ts +0 -16
- 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/Heatmap/DefaultHeatmapTooltip.js +0 -99
- 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/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/Heatmap/DefaultHeatmapTooltip.js +0 -105
- package/node/context/CartesianProviderPro/CartesianProviderPro.js +0 -95
- package/node/context/CartesianProviderPro/createAxisFilterMapper.js +0 -68
- 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
package/modern/{context/ChartDataProviderPro → ChartDataProviderPro}/ChartDataProviderPro.js
RENAMED
|
@@ -3,59 +3,68 @@
|
|
|
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 {
|
|
8
|
-
import { HighlightedProvider, ZAxisContextProvider } from '@mui/x-charts/context';
|
|
6
|
+
import { Watermark } from '@mui/x-license/Watermark';
|
|
7
|
+
import { ChartProvider, AnimationProvider } from '@mui/x-charts/internals';
|
|
9
8
|
import { useLicenseVerifier } from '@mui/x-license/useLicenseVerifier';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { ZoomProvider } from "../ZoomProvider/index.js";
|
|
13
|
-
import { useChartContainerProProps } from "./useChartDataProviderProProps.js";
|
|
9
|
+
import { useChartDataProviderProProps } from "./useChartDataProviderProProps.js";
|
|
10
|
+
import { getReleaseInfo } from "../internals/utils/releaseInfo.js";
|
|
14
11
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
12
|
const releaseInfo = getReleaseInfo();
|
|
16
|
-
const
|
|
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) {
|
|
17
42
|
const {
|
|
18
|
-
|
|
19
|
-
drawingProviderProps,
|
|
20
|
-
seriesProviderProps,
|
|
21
|
-
zAxisContextProps,
|
|
22
|
-
highlightedProviderProps,
|
|
23
|
-
cartesianProviderProps,
|
|
24
|
-
chartsSurfaceProps,
|
|
25
|
-
pluginProviderProps,
|
|
43
|
+
children,
|
|
26
44
|
animationProviderProps,
|
|
27
|
-
|
|
28
|
-
} =
|
|
29
|
-
useLicenseVerifier(
|
|
30
|
-
return /*#__PURE__*/_jsx(
|
|
31
|
-
children: /*#__PURE__*/
|
|
32
|
-
children: /*#__PURE__*/_jsx(
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
children: /*#__PURE__*/_jsx(ZAxisContextProvider, _extends({}, zAxisContextProps, {
|
|
37
|
-
children: /*#__PURE__*/_jsx(InteractionProvider, {
|
|
38
|
-
children: /*#__PURE__*/_jsx(HighlightedProvider, _extends({}, highlightedProviderProps, {
|
|
39
|
-
children: /*#__PURE__*/_jsxs(ChartsSurface, _extends({}, chartsSurfaceProps, {
|
|
40
|
-
children: [/*#__PURE__*/_jsx(ChartsAxesGradients, {}), children]
|
|
41
|
-
}))
|
|
42
|
-
}))
|
|
43
|
-
})
|
|
44
|
-
}))
|
|
45
|
-
}))
|
|
46
|
-
}))
|
|
47
|
-
}))
|
|
48
|
-
}))
|
|
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
|
+
})]
|
|
49
54
|
}))
|
|
50
55
|
}));
|
|
51
|
-
}
|
|
56
|
+
}
|
|
52
57
|
process.env.NODE_ENV !== "production" ? ChartDataProviderPro.propTypes = {
|
|
53
58
|
// ----------------------------- Warning --------------------------------
|
|
54
59
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
55
60
|
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
56
61
|
// ----------------------------------------------------------------------
|
|
62
|
+
apiRef: PropTypes.shape({
|
|
63
|
+
current: PropTypes.shape({
|
|
64
|
+
setZoomData: PropTypes.func.isRequired
|
|
65
|
+
})
|
|
66
|
+
}),
|
|
57
67
|
children: PropTypes.node,
|
|
58
|
-
className: PropTypes.string,
|
|
59
68
|
/**
|
|
60
69
|
* Color palette used to colorize multiple series.
|
|
61
70
|
* @default blueberryTwilightPalette
|
|
@@ -65,29 +74,35 @@ process.env.NODE_ENV !== "production" ? ChartDataProviderPro.propTypes = {
|
|
|
65
74
|
* An array of objects that can be used to populate series and axes data using their `dataKey` property.
|
|
66
75
|
*/
|
|
67
76
|
dataset: PropTypes.arrayOf(PropTypes.object),
|
|
68
|
-
desc: PropTypes.string,
|
|
69
|
-
/**
|
|
70
|
-
* If `true`, the charts will not listen to the mouse move event.
|
|
71
|
-
* It might break interactive features, but will improve performance.
|
|
72
|
-
* @default false
|
|
73
|
-
*/
|
|
74
|
-
disableAxisListener: PropTypes.bool,
|
|
75
77
|
/**
|
|
76
|
-
* The height of the chart in px.
|
|
78
|
+
* The height of the chart in px. If not defined, it takes the height of the parent element.
|
|
77
79
|
*/
|
|
78
|
-
height: PropTypes.number
|
|
80
|
+
height: PropTypes.number,
|
|
79
81
|
/**
|
|
80
|
-
* The
|
|
82
|
+
* The highlighted item.
|
|
83
|
+
* Used when the highlight is controlled.
|
|
81
84
|
*/
|
|
82
85
|
highlightedItem: PropTypes.shape({
|
|
83
86
|
dataIndex: PropTypes.number,
|
|
84
|
-
seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
|
|
87
|
+
seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired
|
|
85
88
|
}),
|
|
89
|
+
/**
|
|
90
|
+
* This prop is used to help implement the accessibility logic.
|
|
91
|
+
* If you don't provide this prop. It falls back to a randomly generated id.
|
|
92
|
+
*/
|
|
93
|
+
id: PropTypes.string,
|
|
94
|
+
/**
|
|
95
|
+
* The list of zoom data related to each axis.
|
|
96
|
+
*/
|
|
97
|
+
initialZoom: PropTypes.arrayOf(PropTypes.shape({
|
|
98
|
+
axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
99
|
+
end: PropTypes.number.isRequired,
|
|
100
|
+
start: PropTypes.number.isRequired
|
|
101
|
+
})),
|
|
86
102
|
/**
|
|
87
103
|
* The margin between the SVG and the drawing area.
|
|
88
104
|
* It's used for leaving some space for extra information such as the x- and y-axis or legend.
|
|
89
105
|
* Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
|
|
90
|
-
* @default object Depends on the charts type.
|
|
91
106
|
*/
|
|
92
107
|
margin: PropTypes.shape({
|
|
93
108
|
bottom: PropTypes.number,
|
|
@@ -107,34 +122,22 @@ process.env.NODE_ENV !== "production" ? ChartDataProviderPro.propTypes = {
|
|
|
107
122
|
* @param {ZoomData[]} zoomData Updated zoom data.
|
|
108
123
|
*/
|
|
109
124
|
onZoomChange: PropTypes.func,
|
|
110
|
-
/**
|
|
111
|
-
* An array of plugins defining how to preprocess data.
|
|
112
|
-
* If not provided, the container supports line, bar, scatter and pie charts.
|
|
113
|
-
*/
|
|
114
|
-
plugins: PropTypes.arrayOf(PropTypes.object),
|
|
115
125
|
/**
|
|
116
126
|
* The array of series to display.
|
|
117
127
|
* Each type of series has its own specificity.
|
|
118
128
|
* Please refer to the appropriate docs page to learn more about it.
|
|
119
129
|
*/
|
|
120
|
-
series: PropTypes.arrayOf(PropTypes.object)
|
|
130
|
+
series: PropTypes.arrayOf(PropTypes.object),
|
|
121
131
|
/**
|
|
122
132
|
* If `true`, animations are skipped.
|
|
123
133
|
* If unset or `false`, the animations respects the user's `prefers-reduced-motion` setting.
|
|
124
134
|
*/
|
|
125
135
|
skipAnimation: PropTypes.bool,
|
|
126
|
-
|
|
127
|
-
title: PropTypes.string,
|
|
128
|
-
viewBox: PropTypes.shape({
|
|
129
|
-
height: PropTypes.number,
|
|
130
|
-
width: PropTypes.number,
|
|
131
|
-
x: PropTypes.number,
|
|
132
|
-
y: PropTypes.number
|
|
133
|
-
}),
|
|
136
|
+
theme: PropTypes.oneOf(['dark', 'light']),
|
|
134
137
|
/**
|
|
135
|
-
* The width of the chart in px.
|
|
138
|
+
* The width of the chart in px. If not defined, it takes the width of the parent element.
|
|
136
139
|
*/
|
|
137
|
-
width: PropTypes.number
|
|
140
|
+
width: PropTypes.number,
|
|
138
141
|
/**
|
|
139
142
|
* The configuration of the x-axes.
|
|
140
143
|
* If not provided, a default axis config is used.
|
|
@@ -166,7 +169,6 @@ process.env.NODE_ENV !== "production" ? ChartDataProviderPro.propTypes = {
|
|
|
166
169
|
hideTooltip: PropTypes.bool,
|
|
167
170
|
id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
168
171
|
label: PropTypes.string,
|
|
169
|
-
labelFontSize: PropTypes.number,
|
|
170
172
|
labelStyle: PropTypes.object,
|
|
171
173
|
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
172
174
|
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
@@ -177,7 +179,6 @@ process.env.NODE_ENV !== "production" ? ChartDataProviderPro.propTypes = {
|
|
|
177
179
|
slots: PropTypes.object,
|
|
178
180
|
stroke: PropTypes.string,
|
|
179
181
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
180
|
-
tickFontSize: PropTypes.number,
|
|
181
182
|
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
182
183
|
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
183
184
|
tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
|
|
@@ -229,7 +230,6 @@ process.env.NODE_ENV !== "production" ? ChartDataProviderPro.propTypes = {
|
|
|
229
230
|
hideTooltip: PropTypes.bool,
|
|
230
231
|
id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
231
232
|
label: PropTypes.string,
|
|
232
|
-
labelFontSize: PropTypes.number,
|
|
233
233
|
labelStyle: PropTypes.object,
|
|
234
234
|
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
235
235
|
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
@@ -240,7 +240,6 @@ process.env.NODE_ENV !== "production" ? ChartDataProviderPro.propTypes = {
|
|
|
240
240
|
slots: PropTypes.object,
|
|
241
241
|
stroke: PropTypes.string,
|
|
242
242
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
243
|
-
tickFontSize: PropTypes.number,
|
|
244
243
|
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
245
244
|
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
246
245
|
tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
|
|
@@ -285,14 +284,6 @@ process.env.NODE_ENV !== "production" ? ChartDataProviderPro.propTypes = {
|
|
|
285
284
|
id: PropTypes.string,
|
|
286
285
|
max: PropTypes.number,
|
|
287
286
|
min: PropTypes.number
|
|
288
|
-
})),
|
|
289
|
-
/**
|
|
290
|
-
* The list of zoom data related to each axis.
|
|
291
|
-
*/
|
|
292
|
-
zoom: PropTypes.arrayOf(PropTypes.shape({
|
|
293
|
-
axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
294
|
-
end: PropTypes.number.isRequired,
|
|
295
|
-
start: PropTypes.number.isRequired
|
|
296
287
|
}))
|
|
297
288
|
} : void 0;
|
|
298
289
|
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
|
+
};
|
|
@@ -7,17 +7,19 @@ import { useThemeProps } from '@mui/material/styles';
|
|
|
7
7
|
import useId from '@mui/utils/useId';
|
|
8
8
|
import { interpolateRgbBasis } from '@mui/x-charts-vendor/d3-interpolate';
|
|
9
9
|
import { ChartsAxis } from '@mui/x-charts/ChartsAxis';
|
|
10
|
-
import { ChartsTooltip } from '@mui/x-charts/ChartsTooltip';
|
|
11
10
|
import { ChartsClipPath } from '@mui/x-charts/ChartsClipPath';
|
|
12
11
|
import { ChartsOnAxisClickHandler } from '@mui/x-charts/ChartsOnAxisClickHandler';
|
|
13
12
|
import { ChartsOverlay } from '@mui/x-charts/ChartsOverlay';
|
|
14
13
|
import { ChartContainerPro } from "../ChartContainerPro/index.js";
|
|
15
14
|
import { HeatmapPlot } from "./HeatmapPlot.js";
|
|
16
15
|
import { plugin as heatmapPlugin } from "./plugin.js";
|
|
17
|
-
import {
|
|
16
|
+
import { HeatmapTooltip } from "./HeatmapTooltip.js";
|
|
18
17
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
19
18
|
// The GnBu: https://github.com/d3/d3-scale-chromatic/blob/main/src/sequential-multi/GnBu.js
|
|
20
19
|
const defaultColorMap = interpolateRgbBasis(['#f7fcf0', '#e0f3db', '#ccebc5', '#a8ddb5', '#7bccc4', '#4eb3d3', '#2b8cbe', '#0868ac', '#084081']);
|
|
20
|
+
const seriesConfig = {
|
|
21
|
+
heatmap: heatmapPlugin
|
|
22
|
+
};
|
|
21
23
|
const Heatmap = /*#__PURE__*/React.forwardRef(function Heatmap(inProps, ref) {
|
|
22
24
|
const props = useThemeProps({
|
|
23
25
|
props: inProps,
|
|
@@ -34,7 +36,6 @@ const Heatmap = /*#__PURE__*/React.forwardRef(function Heatmap(inProps, ref) {
|
|
|
34
36
|
colors,
|
|
35
37
|
dataset,
|
|
36
38
|
sx,
|
|
37
|
-
tooltip,
|
|
38
39
|
topAxis,
|
|
39
40
|
leftAxis,
|
|
40
41
|
rightAxis,
|
|
@@ -65,9 +66,10 @@ const Heatmap = /*#__PURE__*/React.forwardRef(function Heatmap(inProps, ref) {
|
|
|
65
66
|
color: defaultColorMap
|
|
66
67
|
}
|
|
67
68
|
}], [zAxis]);
|
|
69
|
+
const Tooltip = props.slots?.tooltip ?? HeatmapTooltip;
|
|
68
70
|
return /*#__PURE__*/_jsxs(ChartContainerPro, {
|
|
69
71
|
ref: ref,
|
|
70
|
-
|
|
72
|
+
seriesConfig: seriesConfig,
|
|
71
73
|
series: series.map(s => _extends({
|
|
72
74
|
type: 'heatmap'
|
|
73
75
|
}, s)),
|
|
@@ -102,14 +104,7 @@ const Heatmap = /*#__PURE__*/React.forwardRef(function Heatmap(inProps, ref) {
|
|
|
102
104
|
bottomAxis: bottomAxis,
|
|
103
105
|
slots: slots,
|
|
104
106
|
slotProps: slotProps
|
|
105
|
-
}), !loading && /*#__PURE__*/_jsx(
|
|
106
|
-
trigger: "item"
|
|
107
|
-
}, tooltip, {
|
|
108
|
-
slots: _extends({
|
|
109
|
-
itemContent: DefaultHeatmapTooltip
|
|
110
|
-
}, slots),
|
|
111
|
-
slotProps: slotProps
|
|
112
|
-
})), /*#__PURE__*/_jsx(ChartsClipPath, {
|
|
107
|
+
}), !loading && /*#__PURE__*/_jsx(Tooltip, _extends({}, slotProps?.tooltip)), /*#__PURE__*/_jsx(ChartsClipPath, {
|
|
113
108
|
id: clipPathId
|
|
114
109
|
}), children]
|
|
115
110
|
});
|
|
@@ -119,6 +114,11 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
119
114
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
120
115
|
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
121
116
|
// ----------------------------------------------------------------------
|
|
117
|
+
apiRef: PropTypes.shape({
|
|
118
|
+
current: PropTypes.shape({
|
|
119
|
+
setZoomData: PropTypes.func.isRequired
|
|
120
|
+
})
|
|
121
|
+
}),
|
|
122
122
|
/**
|
|
123
123
|
* Indicate which axis to display the bottom of the charts.
|
|
124
124
|
* Can be a string (the id of the axis) or an object `ChartsXAxisProps`.
|
|
@@ -148,12 +148,26 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
148
148
|
*/
|
|
149
149
|
height: PropTypes.number,
|
|
150
150
|
/**
|
|
151
|
-
* The
|
|
151
|
+
* The highlighted item.
|
|
152
|
+
* Used when the highlight is controlled.
|
|
152
153
|
*/
|
|
153
154
|
highlightedItem: PropTypes.shape({
|
|
154
155
|
dataIndex: PropTypes.number,
|
|
155
|
-
seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
|
|
156
|
+
seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired
|
|
156
157
|
}),
|
|
158
|
+
/**
|
|
159
|
+
* This prop is used to help implement the accessibility logic.
|
|
160
|
+
* If you don't provide this prop. It falls back to a randomly generated id.
|
|
161
|
+
*/
|
|
162
|
+
id: PropTypes.string,
|
|
163
|
+
/**
|
|
164
|
+
* The list of zoom data related to each axis.
|
|
165
|
+
*/
|
|
166
|
+
initialZoom: PropTypes.arrayOf(PropTypes.shape({
|
|
167
|
+
axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
168
|
+
end: PropTypes.number.isRequired,
|
|
169
|
+
start: PropTypes.number.isRequired
|
|
170
|
+
})),
|
|
157
171
|
/**
|
|
158
172
|
* Indicate which axis to display the left of the charts.
|
|
159
173
|
* Can be a string (the id of the axis) or an object `ChartsYAxisProps`.
|
|
@@ -169,7 +183,6 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
169
183
|
* The margin between the SVG and the drawing area.
|
|
170
184
|
* It's used for leaving some space for extra information such as the x- and y-axis or legend.
|
|
171
185
|
* Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
|
|
172
|
-
* @default object Depends on the charts type.
|
|
173
186
|
*/
|
|
174
187
|
margin: PropTypes.shape({
|
|
175
188
|
bottom: PropTypes.number,
|
|
@@ -190,16 +203,6 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
190
203
|
* @param {HighlightItemData | null} highlightedItem The newly highlighted item.
|
|
191
204
|
*/
|
|
192
205
|
onHighlightChange: PropTypes.func,
|
|
193
|
-
/**
|
|
194
|
-
* The chart will try to wait for the parent container to resolve its size
|
|
195
|
-
* before it renders for the first time.
|
|
196
|
-
*
|
|
197
|
-
* This can be useful in some scenarios where the chart appear to grow after
|
|
198
|
-
* the first render, like when used inside a grid.
|
|
199
|
-
*
|
|
200
|
-
* @default false
|
|
201
|
-
*/
|
|
202
|
-
resolveSizeBeforeRender: PropTypes.bool,
|
|
203
206
|
/**
|
|
204
207
|
* Indicate which axis to display the right of the charts.
|
|
205
208
|
* Can be a string (the id of the axis) or an object `ChartsYAxisProps`.
|
|
@@ -211,6 +214,11 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
211
214
|
* An array of [[HeatmapSeriesType]] objects.
|
|
212
215
|
*/
|
|
213
216
|
series: PropTypes.arrayOf(PropTypes.object).isRequired,
|
|
217
|
+
/**
|
|
218
|
+
* The configuration helpers used to compute attributes according to the serries type.
|
|
219
|
+
* @ignore Unstable props for internal usage.
|
|
220
|
+
*/
|
|
221
|
+
seriesConfig: PropTypes.object,
|
|
214
222
|
/**
|
|
215
223
|
* The props used for each component slot.
|
|
216
224
|
* @default {}
|
|
@@ -222,31 +230,19 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
222
230
|
*/
|
|
223
231
|
slots: PropTypes.object,
|
|
224
232
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
233
|
+
theme: PropTypes.oneOf(['dark', 'light']),
|
|
225
234
|
title: PropTypes.string,
|
|
226
235
|
/**
|
|
227
236
|
* The configuration of the tooltip.
|
|
228
237
|
* @see See {@link https://mui.com/x/react-charts/tooltip/ tooltip docs} for more details.
|
|
229
238
|
*/
|
|
230
|
-
tooltip: PropTypes.
|
|
231
|
-
axisContent: PropTypes.elementType,
|
|
232
|
-
classes: PropTypes.object,
|
|
233
|
-
itemContent: PropTypes.elementType,
|
|
234
|
-
slotProps: PropTypes.object,
|
|
235
|
-
slots: PropTypes.object,
|
|
236
|
-
trigger: PropTypes.oneOf(['axis', 'item', 'none'])
|
|
237
|
-
}),
|
|
239
|
+
tooltip: PropTypes.object,
|
|
238
240
|
/**
|
|
239
241
|
* Indicate which axis to display the top of the charts.
|
|
240
242
|
* Can be a string (the id of the axis) or an object `ChartsXAxisProps`.
|
|
241
243
|
* @default null
|
|
242
244
|
*/
|
|
243
245
|
topAxis: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),
|
|
244
|
-
viewBox: PropTypes.shape({
|
|
245
|
-
height: PropTypes.number,
|
|
246
|
-
width: PropTypes.number,
|
|
247
|
-
x: PropTypes.number,
|
|
248
|
-
y: PropTypes.number
|
|
249
|
-
}),
|
|
250
246
|
/**
|
|
251
247
|
* The width of the chart in px. If not defined, it takes the width of the parent element.
|
|
252
248
|
*/
|
|
@@ -284,7 +280,6 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
284
280
|
hideTooltip: PropTypes.bool,
|
|
285
281
|
id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
286
282
|
label: PropTypes.string,
|
|
287
|
-
labelFontSize: PropTypes.number,
|
|
288
283
|
labelStyle: PropTypes.object,
|
|
289
284
|
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
290
285
|
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
@@ -295,7 +290,6 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
295
290
|
slots: PropTypes.object,
|
|
296
291
|
stroke: PropTypes.string,
|
|
297
292
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
298
|
-
tickFontSize: PropTypes.number,
|
|
299
293
|
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
300
294
|
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
301
295
|
tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
|
|
@@ -349,7 +343,6 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
349
343
|
hideTooltip: PropTypes.bool,
|
|
350
344
|
id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
|
|
351
345
|
label: PropTypes.string,
|
|
352
|
-
labelFontSize: PropTypes.number,
|
|
353
346
|
labelStyle: PropTypes.object,
|
|
354
347
|
max: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
355
348
|
min: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.number]),
|
|
@@ -360,7 +353,6 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
360
353
|
slots: PropTypes.object,
|
|
361
354
|
stroke: PropTypes.string,
|
|
362
355
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
363
|
-
tickFontSize: PropTypes.number,
|
|
364
356
|
tickInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.array, PropTypes.func]),
|
|
365
357
|
tickLabelInterval: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.func]),
|
|
366
358
|
tickLabelPlacement: PropTypes.oneOf(['middle', 'tick']),
|
|
@@ -6,7 +6,7 @@ import PropTypes from 'prop-types';
|
|
|
6
6
|
import { styled } from '@mui/material/styles';
|
|
7
7
|
import useSlotProps from '@mui/utils/useSlotProps';
|
|
8
8
|
import composeClasses from '@mui/utils/composeClasses';
|
|
9
|
-
import { useItemHighlighted } from '@mui/x-charts/
|
|
9
|
+
import { useItemHighlighted } from '@mui/x-charts/hooks';
|
|
10
10
|
import { useInteractionItemProps } from '@mui/x-charts/internals';
|
|
11
11
|
import { getHeatmapUtilityClass } from "./heatmapClasses.js";
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|