@mui/x-charts-pro 8.0.0-alpha.7 → 8.0.0-alpha.8
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 +55 -19
- package/CHANGELOG.md +115 -0
- package/ChartContainerPro/ChartContainerPro.d.ts +32 -4
- package/ChartContainerPro/ChartContainerPro.js +53 -18
- package/ChartContainerPro/useChartContainerProProps.d.ts +5 -5
- package/ChartContainerPro/useChartContainerProProps.js +11 -5
- package/Heatmap/Heatmap.js +28 -2
- package/Heatmap/HeatmapTooltip.js +6 -4
- package/Heatmap/extremums.d.ts +2 -2
- package/Heatmap/formatter.d.ts +2 -2
- package/Heatmap/formatter.js +2 -1
- package/Heatmap/plugin.d.ts +2 -2
- package/Heatmap/plugin.js +1 -2
- package/LineChartPro/LineChartPro.d.ts +2 -2
- package/LineChartPro/LineChartPro.js +57 -25
- package/ScatterChartPro/ScatterChartPro.d.ts +2 -2
- package/ScatterChartPro/ScatterChartPro.js +37 -28
- package/hooks/index.d.ts +1 -0
- package/hooks/index.js +2 -1
- 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 +0 -1
- package/index.js +2 -5
- package/internals/plugins/allPlugins.d.ts +10 -0
- package/internals/plugins/allPlugins.js +5 -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 +324 -0
- package/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +149 -0
- package/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +6 -0
- package/internals/plugins/useChartProZoom/useChartProZoom.types.d.ts +54 -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 +1 -1
- package/models/index.d.ts +1 -0
- package/models/index.js +2 -1
- package/modern/BarChartPro/BarChartPro.js +55 -19
- package/modern/ChartContainerPro/ChartContainerPro.js +53 -18
- package/modern/ChartContainerPro/useChartContainerProProps.js +11 -5
- package/modern/Heatmap/Heatmap.js +28 -2
- package/modern/Heatmap/HeatmapTooltip.js +6 -4
- package/modern/Heatmap/formatter.js +2 -1
- package/modern/Heatmap/plugin.js +1 -2
- package/modern/LineChartPro/LineChartPro.js +57 -25
- package/modern/ScatterChartPro/ScatterChartPro.js +37 -28
- 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 +2 -5
- package/modern/internals/plugins/allPlugins.js +5 -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 +324 -0
- package/modern/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +6 -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 +1 -1
- package/modern/models/index.js +2 -1
- package/node/BarChartPro/BarChartPro.js +55 -19
- package/node/ChartContainerPro/ChartContainerPro.js +53 -18
- package/node/ChartContainerPro/useChartContainerProProps.js +11 -5
- package/node/Heatmap/Heatmap.js +28 -2
- package/node/Heatmap/HeatmapTooltip.js +4 -2
- package/node/Heatmap/formatter.js +2 -1
- package/node/Heatmap/plugin.js +1 -2
- package/node/LineChartPro/LineChartPro.js +57 -25
- package/node/ScatterChartPro/ScatterChartPro.js +36 -27
- 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 +1 -12
- package/node/internals/plugins/allPlugins.js +11 -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 +331 -0
- package/node/internals/plugins/useChartProZoom/useChartProZoom.selectors.js +13 -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 +1 -1
- package/package.json +5 -5
- 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 -13
- 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/ChartDataProviderPro.js +0 -50
- package/context/ChartDataProviderPro/index.d.ts +0 -1
- package/context/ChartDataProviderPro/index.js +0 -1
- 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/context/package.json +0 -6
- 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 -50
- package/modern/context/ChartDataProviderPro/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/context/CartesianProviderPro/CartesianProviderPro.js +0 -95
- package/node/context/CartesianProviderPro/createAxisFilterMapper.js +0 -68
- package/node/context/ChartDataProviderPro/ChartDataProviderPro.js +0 -56
- package/node/context/ChartDataProviderPro/index.js +0 -16
- 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/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/node/{context/ZoomProvider/Zoom.types.js → internals/plugins/useChartProZoom/useChartProZoom.types.js} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { BarChartProps } from '@mui/x-charts/BarChart';
|
|
3
|
-
import {
|
|
4
|
-
export interface BarChartProProps extends BarChartProps,
|
|
3
|
+
import { ChartContainerProProps } from '../ChartContainerPro';
|
|
4
|
+
export interface BarChartProProps extends Omit<BarChartProps, 'apiRef'>, Omit<ChartContainerProProps<'bar'>, 'series' | 'plugins' | 'seriesConfig'> {
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
7
7
|
* Demos:
|
|
@@ -2,7 +2,7 @@
|
|
|
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';
|
|
@@ -16,16 +16,13 @@ import { ChartsAxisHighlight } from '@mui/x-charts/ChartsAxisHighlight';
|
|
|
16
16
|
import { ChartsTooltip } from '@mui/x-charts/ChartsTooltip';
|
|
17
17
|
import { ChartsClipPath } from '@mui/x-charts/ChartsClipPath';
|
|
18
18
|
import { useBarChartProps, ChartsWrapper } from '@mui/x-charts/internals';
|
|
19
|
+
import { ChartDataProvider } from '@mui/x-charts/context';
|
|
19
20
|
import { ChartsSurface } from '@mui/x-charts/ChartsSurface';
|
|
20
|
-
import {
|
|
21
|
-
import { useZoom } from "../context/ZoomProvider/useZoom.js";
|
|
21
|
+
import { useIsZoomInteracting } from "../hooks/zoom/index.js";
|
|
22
22
|
import { useChartContainerProProps } from "../ChartContainerPro/useChartContainerProProps.js";
|
|
23
|
-
import { ChartDataProviderPro } from "../context/ChartDataProviderPro/index.js";
|
|
24
23
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
25
24
|
function BarChartPlotZoom(props) {
|
|
26
|
-
const
|
|
27
|
-
isInteracting
|
|
28
|
-
} = useZoom();
|
|
25
|
+
const isInteracting = useIsZoomInteracting();
|
|
29
26
|
return /*#__PURE__*/_jsx(BarPlot, _extends({}, props, {
|
|
30
27
|
skipAnimation: isInteracting || undefined
|
|
31
28
|
}));
|
|
@@ -86,8 +83,9 @@ const BarChartPro = /*#__PURE__*/React.forwardRef(function BarChartPro(inProps,
|
|
|
86
83
|
name: 'MuiBarChartPro'
|
|
87
84
|
});
|
|
88
85
|
const {
|
|
89
|
-
|
|
90
|
-
onZoomChange
|
|
86
|
+
initialZoom,
|
|
87
|
+
onZoomChange,
|
|
88
|
+
apiRef
|
|
91
89
|
} = props,
|
|
92
90
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
93
91
|
const {
|
|
@@ -107,16 +105,19 @@ const BarChartPro = /*#__PURE__*/React.forwardRef(function BarChartPro(inProps,
|
|
|
107
105
|
const {
|
|
108
106
|
chartDataProviderProProps,
|
|
109
107
|
chartsSurfaceProps
|
|
110
|
-
} = useChartContainerProProps(chartContainerProps,
|
|
108
|
+
} = useChartContainerProProps(_extends({}, chartContainerProps, {
|
|
109
|
+
apiRef
|
|
110
|
+
}), ref);
|
|
111
111
|
const Tooltip = props.slots?.tooltip ?? ChartsTooltip;
|
|
112
|
-
return /*#__PURE__*/_jsx(
|
|
113
|
-
|
|
112
|
+
return /*#__PURE__*/_jsx(ChartDataProvider, _extends({}, chartDataProviderProProps, {
|
|
113
|
+
apiRef: apiRef,
|
|
114
|
+
initialZoom: initialZoom,
|
|
114
115
|
onZoomChange: onZoomChange,
|
|
115
116
|
children: /*#__PURE__*/_jsxs(ChartsWrapper, _extends({}, chartsWrapperProps, {
|
|
116
117
|
children: [!props.hideLegend && /*#__PURE__*/_jsx(ChartsLegend, _extends({}, legendProps)), /*#__PURE__*/_jsxs(ChartsSurface, _extends({}, chartsSurfaceProps, {
|
|
117
118
|
children: [props.onAxisClick && /*#__PURE__*/_jsx(ChartsOnAxisClickHandler, _extends({}, axisClickHandlerProps)), /*#__PURE__*/_jsx(ChartsGrid, _extends({}, gridProps)), /*#__PURE__*/_jsxs("g", _extends({}, clipPathGroupProps, {
|
|
118
119
|
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)),
|
|
120
|
+
})), /*#__PURE__*/_jsx(ChartsAxis, _extends({}, chartsAxisProps)), !props.loading && /*#__PURE__*/_jsx(Tooltip, _extends({}, props.slotProps?.tooltip)), /*#__PURE__*/_jsx(ChartsClipPath, _extends({}, clipPathProps)), children]
|
|
120
121
|
}))]
|
|
121
122
|
}))
|
|
122
123
|
}));
|
|
@@ -126,6 +127,11 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
|
126
127
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
127
128
|
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
128
129
|
// ----------------------------------------------------------------------
|
|
130
|
+
apiRef: PropTypes.shape({
|
|
131
|
+
current: PropTypes.shape({
|
|
132
|
+
setZoomData: PropTypes.func.isRequired
|
|
133
|
+
})
|
|
134
|
+
}),
|
|
129
135
|
/**
|
|
130
136
|
* The configuration of axes highlight.
|
|
131
137
|
* Default is set to 'band' in the bar direction.
|
|
@@ -194,6 +200,19 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
|
194
200
|
dataIndex: PropTypes.number,
|
|
195
201
|
seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
|
|
196
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
|
+
})),
|
|
197
216
|
/**
|
|
198
217
|
* The direction of the bar elements.
|
|
199
218
|
* @default 'vertical'
|
|
@@ -214,7 +233,6 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
|
214
233
|
* The margin between the SVG and the drawing area.
|
|
215
234
|
* It's used for leaving some space for extra information such as the x- and y-axis or legend.
|
|
216
235
|
* Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
|
|
217
|
-
* @default object Depends on the charts type.
|
|
218
236
|
*/
|
|
219
237
|
margin: PropTypes.shape({
|
|
220
238
|
bottom: PropTypes.number,
|
|
@@ -274,6 +292,7 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
|
274
292
|
*/
|
|
275
293
|
slots: PropTypes.object,
|
|
276
294
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
295
|
+
theme: PropTypes.oneOf(['dark', 'light']),
|
|
277
296
|
title: PropTypes.string,
|
|
278
297
|
/**
|
|
279
298
|
* Indicate which axis to display the top of the charts.
|
|
@@ -408,12 +427,29 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
|
408
427
|
}), PropTypes.bool])
|
|
409
428
|
})),
|
|
410
429
|
/**
|
|
411
|
-
* The
|
|
430
|
+
* The configuration of the z-axes.
|
|
412
431
|
*/
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
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
|
|
417
453
|
}))
|
|
418
454
|
} : void 0;
|
|
419
455
|
export { BarChartPro };
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,121 @@
|
|
|
5
5
|
All notable changes to this project will be documented in this file.
|
|
6
6
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
7
7
|
|
|
8
|
+
## 8.0.0-alpha.8
|
|
9
|
+
|
|
10
|
+
_Jan 16, 2025_
|
|
11
|
+
|
|
12
|
+
We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights ✨:
|
|
13
|
+
|
|
14
|
+
- 🍬 Improved design for Data Grid [Header filters](https://next.mui.com/x/react-data-grid/filtering/header-filters/)
|
|
15
|
+
|
|
16
|
+
<img width="100%" alt="Data Grid Header filters" src="https://github.com/user-attachments/assets/74a50cd9-7a55-41fc-a2b8-f8a0d5b9120e" />
|
|
17
|
+
|
|
18
|
+
- 🔄 Data Grid [Scroll restoration](https://next.mui.com/x/react-data-grid/scrolling/#scroll-restoration)
|
|
19
|
+
- 📊 Charts support server-side rendering under [some conditions](https://next.mui.com/x/react-charts/getting-started/#server-side-rendering)
|
|
20
|
+
- 🐞 Bugfixes
|
|
21
|
+
|
|
22
|
+
Special thanks go out to the community contributors who have helped make this release possible:
|
|
23
|
+
@lauri865.
|
|
24
|
+
Following are all team members who have contributed to this release:
|
|
25
|
+
@arminmeh, @romgrk, @samuelsycamore, @alexfauquette, @cherniavskii, @flaviendelangle, @JCQuintas, @KenanYusuf, @LukasTy, @michelengelen.
|
|
26
|
+
|
|
27
|
+
<!--/ HIGHLIGHT_ABOVE_SEPARATOR /-->
|
|
28
|
+
|
|
29
|
+
### Data Grid
|
|
30
|
+
|
|
31
|
+
#### Breaking changes
|
|
32
|
+
|
|
33
|
+
- The clear button in header filter cells has been moved to the header filter menu. Use `slotProps={{ headerFilterCell: { showClearIcon: true } }}` to restore the clear button in the cell.
|
|
34
|
+
|
|
35
|
+
#### `@mui/x-data-grid@8.0.0-alpha.8`
|
|
36
|
+
|
|
37
|
+
- [DataGrid] Improve scrollbar deadzone with overlay scrollbars (#15961) @lauri865
|
|
38
|
+
- [DataGrid] Header filter design improvements (#15991) @KenanYusuf
|
|
39
|
+
- [DataGrid] Scroll restoration (#15623) @lauri865
|
|
40
|
+
- [DataGrid] Fix row, cell and header memoizations (#15666) @lauri865
|
|
41
|
+
|
|
42
|
+
#### `@mui/x-data-grid-pro@8.0.0-alpha.8` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
43
|
+
|
|
44
|
+
Same changes as in `@mui/x-data-grid@8.0.0-alpha.8`, plus:
|
|
45
|
+
|
|
46
|
+
- [DataGridPro] Add test for column pinning with disabled column virtualization (#16176) @cherniavskii
|
|
47
|
+
- [DataGridPro] Fix width of right-pinned column group during resize (#16199) @cherniavskii
|
|
48
|
+
|
|
49
|
+
#### `@mui/x-data-grid-premium@8.0.0-alpha.8` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
50
|
+
|
|
51
|
+
Same changes as in `@mui/x-data-grid-pro@8.0.0-alpha.8`.
|
|
52
|
+
|
|
53
|
+
### Date and Time Pickers
|
|
54
|
+
|
|
55
|
+
#### Breaking changes
|
|
56
|
+
|
|
57
|
+
- The field is now editable if rendered inside a mobile Picker — [Learn more](https://next.mui.com/x/migration/migration-pickers-v7/#field-editing-on-mobile-pickers)
|
|
58
|
+
- The `useMultiInputDateRangeField`, `useMultiInputTimeRangeField`, and `useMultiInputDateTimeRangeField` hooks have been removed in favor of the new `useMultiInputRangeField` hook — [Learn more](https://next.mui.com/x/migration/migration-pickers-v7/#usemultiinputdaterangefield)
|
|
59
|
+
- The component passed to the `field` slot no longer receives the `value`, `onChange`, `timezone`, `format`, `disabled`, `formatDensity`, `enableAccessibleFieldDOMStructure`, `selectedSections` and `onSelectedSectionsChange` props — [Learn more](https://next.mui.com/x/migration/migration-pickers-v7/#slot-field)
|
|
60
|
+
|
|
61
|
+
#### `@mui/x-date-pickers@8.0.0-alpha.8`
|
|
62
|
+
|
|
63
|
+
- [pickers] Let the field components handle their opening UI, and allow field editing on mobile pickers (#15671) @flaviendelangle
|
|
64
|
+
- [pickers] Remove code duplication for the multi input range fields (#15505) @flaviendelangle
|
|
65
|
+
- [pickers] Rename `onRangePositionChange` into `setRangePosition` in `usePickerRangePositionContext` (#16189) @flaviendelangle
|
|
66
|
+
- [pickers] Use context to pass props from the picker to the field (#16042) @flaviendelangle
|
|
67
|
+
|
|
68
|
+
#### `@mui/x-date-pickers-pro@8.0.0-alpha.8` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
69
|
+
|
|
70
|
+
Same changes as in `@mui/x-date-pickers@8.0.0-alpha.8`.
|
|
71
|
+
|
|
72
|
+
### Charts
|
|
73
|
+
|
|
74
|
+
#### Breaking changes
|
|
75
|
+
|
|
76
|
+
- Charts tooltip markers now have different styles for each chart type. The tooltip and legend marks are now the same.
|
|
77
|
+
- Duplicate axis id's across `x` and `y` axis now log a warning in dev mode. Axis ids should be unique to prevent internal issues.
|
|
78
|
+
|
|
79
|
+
#### `@mui/x-charts@8.0.0-alpha.8`
|
|
80
|
+
|
|
81
|
+
- [charts] Fix flaky charts tests (#16180) @JCQuintas
|
|
82
|
+
- [charts] Handle case where gradient stop `offset` could be `Infinite` (#16131) @JCQuintas
|
|
83
|
+
- [charts] Make `useChartGradientId` public (#16106) @JCQuintas
|
|
84
|
+
- [charts] Move z-axis to plugin (#16130) @alexfauquette
|
|
85
|
+
- [charts] Plot data at first render if `skipAnimation` is set to `true` (#16166) @alexfauquette
|
|
86
|
+
- [charts] Replace tooltip mark with style (#16117) @JCQuintas
|
|
87
|
+
- [charts] Support `rtl` for gradient legend (#16115) @JCQuintas
|
|
88
|
+
- [charts] Use plugin system for series and axes (#15865) @alexfauquette
|
|
89
|
+
|
|
90
|
+
#### `@mui/x-charts-pro@8.0.0-alpha.8` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
91
|
+
|
|
92
|
+
Same changes as in `@mui/x-charts@8.0.0-alpha.8`.
|
|
93
|
+
|
|
94
|
+
### Tree View
|
|
95
|
+
|
|
96
|
+
#### `@mui/x-tree-view@8.0.0-alpha.8`
|
|
97
|
+
|
|
98
|
+
No changes since `@mui/x-tree-view-pro@v8.0.0-alpha.7`.
|
|
99
|
+
|
|
100
|
+
#### `@mui/x-tree-view-pro@8.0.0-alpha.8` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
101
|
+
|
|
102
|
+
Same changes as in `@mui/x-tree-view@8.0.0-alpha.8`.
|
|
103
|
+
|
|
104
|
+
### Docs
|
|
105
|
+
|
|
106
|
+
- [docs] Add example for custom legend (#16169) @alexfauquette
|
|
107
|
+
- [docs] Add full custom field creation example (#15194) @flaviendelangle
|
|
108
|
+
- [docs] Copyedit the Data Grid cell selection page (#16099) @samuelsycamore
|
|
109
|
+
- [docs] Fix demo rendering issue on Codesandbox (#16118) @arminmeh
|
|
110
|
+
- [docs] Remove broken links (#16167) @alexfauquette
|
|
111
|
+
- [docs] Split the Data Grid editing page (#14931) @MBilalShafi
|
|
112
|
+
- [docs] Fix wrong props warnings (#16119) @JCQuintas
|
|
113
|
+
|
|
114
|
+
### Core
|
|
115
|
+
|
|
116
|
+
- [core] Type all references as `RefObject` (#16124) @arminmeh
|
|
117
|
+
- [code-infra] Refactor `react` and `react-dom` definitions to simplify dep resolving (#16160) @LukasTy
|
|
118
|
+
- [code-infra] Stop renovate from updating `date-fns-v2` (#16158) @LukasTy
|
|
119
|
+
- [infra] Improve cherry-pick action target list (#16184) @michelengelen
|
|
120
|
+
- [test] Fix flaky column pinning unit test (#16202) @cherniavskii
|
|
121
|
+
- [test] Fix flaky screenshot (#16182) @cherniavskii
|
|
122
|
+
|
|
8
123
|
## 8.0.0-alpha.7
|
|
9
124
|
|
|
10
125
|
_Jan 9, 2025_
|
|
@@ -1,7 +1,35 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
2
|
+
import { ChartsSurfaceProps } from '@mui/x-charts/ChartsSurface';
|
|
3
|
+
import { ChartDataProviderProps } from '@mui/x-charts/context';
|
|
4
|
+
import { ChartSeriesType } from '@mui/x-charts/internals';
|
|
5
|
+
import { AllPluginSignatures } from '../internals/plugins/allPlugins';
|
|
6
|
+
export interface ChartContainerProProps<TSeries extends ChartSeriesType = ChartSeriesType> extends ChartDataProviderProps<TSeries, AllPluginSignatures<TSeries>>, ChartsSurfaceProps {
|
|
5
7
|
}
|
|
6
|
-
|
|
8
|
+
/**
|
|
9
|
+
* It sets up the data providers as well as the `<svg>` for the chart.
|
|
10
|
+
*
|
|
11
|
+
* This is a combination of both the `ChartDataProvider` and `ChartsSurface` components.
|
|
12
|
+
*
|
|
13
|
+
* Demos:
|
|
14
|
+
*
|
|
15
|
+
* - [Composition](http://localhost:3001/x/react-charts/composition/)
|
|
16
|
+
*
|
|
17
|
+
* API:
|
|
18
|
+
*
|
|
19
|
+
* - [ChartContainer API](https://mui.com/x/api/charts/chart-container/)
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```jsx
|
|
23
|
+
* <ChartContainerPro
|
|
24
|
+
* series={[{ label: "Label", type: "bar", data: [10, 20] }]}
|
|
25
|
+
* xAxis={[{ data: ["A", "B"], scaleType: "band", id: "x-axis" }]}
|
|
26
|
+
* >
|
|
27
|
+
* <BarPlot />
|
|
28
|
+
* <ChartsXAxis position="bottom" axisId="x-axis" />
|
|
29
|
+
* </ChartContainerPro>
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
declare const ChartContainerPro: <TSeries extends ChartSeriesType = ChartSeriesType>(props: ChartContainerProProps<TSeries> & {
|
|
33
|
+
ref?: React.ForwardedRef<SVGSVGElement>;
|
|
34
|
+
}) => React.JSX.Element;
|
|
7
35
|
export { ChartContainerPro };
|
|
@@ -4,19 +4,46 @@ import _extends from "@babel/runtime/helpers/esm/extends";
|
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { Watermark } from '@mui/x-license/Watermark';
|
|
7
|
+
import { useLicenseVerifier } from '@mui/x-license/useLicenseVerifier';
|
|
7
8
|
import { ChartsSurface } from '@mui/x-charts/ChartsSurface';
|
|
9
|
+
import { ChartDataProvider } from '@mui/x-charts/context';
|
|
8
10
|
import { getReleaseInfo } from "../internals/utils/releaseInfo.js";
|
|
9
|
-
import { ChartDataProviderPro } from "../context/ChartDataProviderPro/index.js";
|
|
10
11
|
import { useChartContainerProProps } from "./useChartContainerProProps.js";
|
|
11
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
13
|
const releaseInfo = getReleaseInfo();
|
|
13
|
-
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* It sets up the data providers as well as the `<svg>` for the chart.
|
|
17
|
+
*
|
|
18
|
+
* This is a combination of both the `ChartDataProvider` and `ChartsSurface` components.
|
|
19
|
+
*
|
|
20
|
+
* Demos:
|
|
21
|
+
*
|
|
22
|
+
* - [Composition](http://localhost:3001/x/react-charts/composition/)
|
|
23
|
+
*
|
|
24
|
+
* API:
|
|
25
|
+
*
|
|
26
|
+
* - [ChartContainer API](https://mui.com/x/api/charts/chart-container/)
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```jsx
|
|
30
|
+
* <ChartContainerPro
|
|
31
|
+
* series={[{ label: "Label", type: "bar", data: [10, 20] }]}
|
|
32
|
+
* xAxis={[{ data: ["A", "B"], scaleType: "band", id: "x-axis" }]}
|
|
33
|
+
* >
|
|
34
|
+
* <BarPlot />
|
|
35
|
+
* <ChartsXAxis position="bottom" axisId="x-axis" />
|
|
36
|
+
* </ChartContainerPro>
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
const ChartContainerPro = /*#__PURE__*/React.forwardRef(function ChartContainerProInner(props, ref) {
|
|
14
40
|
const {
|
|
15
41
|
chartDataProviderProProps,
|
|
16
42
|
children,
|
|
17
43
|
chartsSurfaceProps
|
|
18
44
|
} = useChartContainerProProps(props, ref);
|
|
19
|
-
|
|
45
|
+
useLicenseVerifier('x-charts-pro', releaseInfo);
|
|
46
|
+
return /*#__PURE__*/_jsxs(ChartDataProvider, _extends({}, chartDataProviderProProps, {
|
|
20
47
|
children: [/*#__PURE__*/_jsx(ChartsSurface, _extends({}, chartsSurfaceProps, {
|
|
21
48
|
children: children
|
|
22
49
|
})), /*#__PURE__*/_jsx(Watermark, {
|
|
@@ -25,11 +52,19 @@ const ChartContainerPro = /*#__PURE__*/React.forwardRef(function ChartContainerP
|
|
|
25
52
|
})]
|
|
26
53
|
}));
|
|
27
54
|
});
|
|
55
|
+
|
|
56
|
+
// @ts-ignore
|
|
57
|
+
|
|
28
58
|
process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
|
|
29
59
|
// ----------------------------- Warning --------------------------------
|
|
30
60
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
31
61
|
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
32
62
|
// ----------------------------------------------------------------------
|
|
63
|
+
apiRef: PropTypes.shape({
|
|
64
|
+
current: PropTypes.shape({
|
|
65
|
+
setZoomData: PropTypes.func.isRequired
|
|
66
|
+
})
|
|
67
|
+
}),
|
|
33
68
|
children: PropTypes.node,
|
|
34
69
|
className: PropTypes.string,
|
|
35
70
|
/**
|
|
@@ -59,11 +94,23 @@ process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
|
|
|
59
94
|
dataIndex: PropTypes.number,
|
|
60
95
|
seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
|
|
61
96
|
}),
|
|
97
|
+
/**
|
|
98
|
+
* This prop is used to help implement the accessibility logic.
|
|
99
|
+
* If you don't provide this prop. It falls back to a randomly generated id.
|
|
100
|
+
*/
|
|
101
|
+
id: PropTypes.string,
|
|
102
|
+
/**
|
|
103
|
+
* The list of zoom data related to each axis.
|
|
104
|
+
*/
|
|
105
|
+
initialZoom: PropTypes.arrayOf(PropTypes.shape({
|
|
106
|
+
axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
107
|
+
end: PropTypes.number.isRequired,
|
|
108
|
+
start: PropTypes.number.isRequired
|
|
109
|
+
})),
|
|
62
110
|
/**
|
|
63
111
|
* The margin between the SVG and the drawing area.
|
|
64
112
|
* It's used for leaving some space for extra information such as the x- and y-axis or legend.
|
|
65
113
|
* Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
|
|
66
|
-
* @default object Depends on the charts type.
|
|
67
114
|
*/
|
|
68
115
|
margin: PropTypes.shape({
|
|
69
116
|
bottom: PropTypes.number,
|
|
@@ -83,23 +130,19 @@ process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
|
|
|
83
130
|
* @param {ZoomData[]} zoomData Updated zoom data.
|
|
84
131
|
*/
|
|
85
132
|
onZoomChange: PropTypes.func,
|
|
86
|
-
/**
|
|
87
|
-
* An array of plugins defining how to preprocess data.
|
|
88
|
-
* If not provided, the container supports line, bar, scatter and pie charts.
|
|
89
|
-
*/
|
|
90
|
-
plugins: PropTypes.arrayOf(PropTypes.object),
|
|
91
133
|
/**
|
|
92
134
|
* The array of series to display.
|
|
93
135
|
* Each type of series has its own specificity.
|
|
94
136
|
* Please refer to the appropriate docs page to learn more about it.
|
|
95
137
|
*/
|
|
96
|
-
series: PropTypes.arrayOf(PropTypes.object)
|
|
138
|
+
series: PropTypes.arrayOf(PropTypes.object),
|
|
97
139
|
/**
|
|
98
140
|
* If `true`, animations are skipped.
|
|
99
141
|
* If unset or `false`, the animations respects the user's `prefers-reduced-motion` setting.
|
|
100
142
|
*/
|
|
101
143
|
skipAnimation: PropTypes.bool,
|
|
102
144
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
145
|
+
theme: PropTypes.oneOf(['dark', 'light']),
|
|
103
146
|
title: PropTypes.string,
|
|
104
147
|
/**
|
|
105
148
|
* The width of the chart in px. If not defined, it takes the width of the parent element.
|
|
@@ -251,14 +294,6 @@ process.env.NODE_ENV !== "production" ? ChartContainerPro.propTypes = {
|
|
|
251
294
|
id: PropTypes.string,
|
|
252
295
|
max: PropTypes.number,
|
|
253
296
|
min: PropTypes.number
|
|
254
|
-
})),
|
|
255
|
-
/**
|
|
256
|
-
* The list of zoom data related to each axis.
|
|
257
|
-
*/
|
|
258
|
-
zoom: PropTypes.arrayOf(PropTypes.shape({
|
|
259
|
-
axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
260
|
-
end: PropTypes.number.isRequired,
|
|
261
|
-
start: PropTypes.number.isRequired
|
|
262
297
|
}))
|
|
263
298
|
} : void 0;
|
|
264
299
|
export { ChartContainerPro };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { UseChartContainerPropsReturnValue } from '@mui/x-charts/internals';
|
|
1
|
+
import { ChartDataProviderProps, ChartSeriesType, UseChartContainerPropsReturnValue } from '@mui/x-charts/internals';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import type { ChartDataProviderProProps } from '../context/ChartDataProviderPro';
|
|
4
3
|
import type { ChartContainerProProps } from './ChartContainerPro';
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
import { AllPluginSignatures } from '../internals/plugins/allPlugins';
|
|
5
|
+
export type UseChartContainerProPropsReturnValue<TSeries extends ChartSeriesType> = Pick<UseChartContainerPropsReturnValue<TSeries>, 'chartsSurfaceProps' | 'children'> & {
|
|
6
|
+
chartDataProviderProProps: ChartDataProviderProps<TSeries, AllPluginSignatures<TSeries>>;
|
|
7
7
|
};
|
|
8
|
-
export declare const useChartContainerProProps: (props: ChartContainerProProps
|
|
8
|
+
export declare const useChartContainerProProps: <TSeries extends ChartSeriesType = keyof import("@mui/x-charts/internals").ChartsSeriesConfig>(props: ChartContainerProProps<TSeries>, ref: React.Ref<SVGSVGElement>) => UseChartContainerProPropsReturnValue<TSeries>;
|
|
@@ -2,16 +2,19 @@
|
|
|
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
9
|
const {
|
|
9
|
-
|
|
10
|
-
onZoomChange
|
|
10
|
+
initialZoom,
|
|
11
|
+
onZoomChange,
|
|
12
|
+
plugins,
|
|
13
|
+
apiRef
|
|
11
14
|
} = props,
|
|
12
15
|
baseProps = _objectWithoutPropertiesLoose(props, _excluded);
|
|
13
16
|
const chartDataProviderProProps = {
|
|
14
|
-
|
|
17
|
+
initialZoom,
|
|
15
18
|
onZoomChange
|
|
16
19
|
};
|
|
17
20
|
const {
|
|
@@ -20,7 +23,10 @@ export const useChartContainerProProps = (props, ref) => {
|
|
|
20
23
|
children
|
|
21
24
|
} = useChartContainerProps(baseProps, ref);
|
|
22
25
|
return {
|
|
23
|
-
chartDataProviderProProps: _extends({}, chartDataProviderProps, chartDataProviderProProps
|
|
26
|
+
chartDataProviderProProps: _extends({}, chartDataProviderProps, chartDataProviderProProps, {
|
|
27
|
+
apiRef,
|
|
28
|
+
plugins: plugins ?? ALL_PLUGINS
|
|
29
|
+
}),
|
|
24
30
|
chartsSurfaceProps,
|
|
25
31
|
children
|
|
26
32
|
};
|
package/Heatmap/Heatmap.js
CHANGED
|
@@ -17,6 +17,9 @@ import { HeatmapTooltip } from "./HeatmapTooltip.js";
|
|
|
17
17
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
18
18
|
// The GnBu: https://github.com/d3/d3-scale-chromatic/blob/main/src/sequential-multi/GnBu.js
|
|
19
19
|
const defaultColorMap = interpolateRgbBasis(['#f7fcf0', '#e0f3db', '#ccebc5', '#a8ddb5', '#7bccc4', '#4eb3d3', '#2b8cbe', '#0868ac', '#084081']);
|
|
20
|
+
const seriesConfig = {
|
|
21
|
+
heatmap: heatmapPlugin
|
|
22
|
+
};
|
|
20
23
|
const Heatmap = /*#__PURE__*/React.forwardRef(function Heatmap(inProps, ref) {
|
|
21
24
|
const props = useThemeProps({
|
|
22
25
|
props: inProps,
|
|
@@ -66,7 +69,7 @@ const Heatmap = /*#__PURE__*/React.forwardRef(function Heatmap(inProps, ref) {
|
|
|
66
69
|
const Tooltip = props.slots?.tooltip ?? HeatmapTooltip;
|
|
67
70
|
return /*#__PURE__*/_jsxs(ChartContainerPro, {
|
|
68
71
|
ref: ref,
|
|
69
|
-
|
|
72
|
+
seriesConfig: seriesConfig,
|
|
70
73
|
series: series.map(s => _extends({
|
|
71
74
|
type: 'heatmap'
|
|
72
75
|
}, s)),
|
|
@@ -111,6 +114,11 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
111
114
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
112
115
|
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
113
116
|
// ----------------------------------------------------------------------
|
|
117
|
+
apiRef: PropTypes.shape({
|
|
118
|
+
current: PropTypes.shape({
|
|
119
|
+
setZoomData: PropTypes.func.isRequired
|
|
120
|
+
})
|
|
121
|
+
}),
|
|
114
122
|
/**
|
|
115
123
|
* Indicate which axis to display the bottom of the charts.
|
|
116
124
|
* Can be a string (the id of the axis) or an object `ChartsXAxisProps`.
|
|
@@ -146,6 +154,19 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
146
154
|
dataIndex: PropTypes.number,
|
|
147
155
|
seriesId: PropTypes.oneOfType([PropTypes.number, PropTypes.string])
|
|
148
156
|
}),
|
|
157
|
+
/**
|
|
158
|
+
* This prop is used to help implement the accessibility logic.
|
|
159
|
+
* If you don't provide this prop. It falls back to a randomly generated id.
|
|
160
|
+
*/
|
|
161
|
+
id: PropTypes.string,
|
|
162
|
+
/**
|
|
163
|
+
* The list of zoom data related to each axis.
|
|
164
|
+
*/
|
|
165
|
+
initialZoom: PropTypes.arrayOf(PropTypes.shape({
|
|
166
|
+
axisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
|
|
167
|
+
end: PropTypes.number.isRequired,
|
|
168
|
+
start: PropTypes.number.isRequired
|
|
169
|
+
})),
|
|
149
170
|
/**
|
|
150
171
|
* Indicate which axis to display the left of the charts.
|
|
151
172
|
* Can be a string (the id of the axis) or an object `ChartsYAxisProps`.
|
|
@@ -161,7 +182,6 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
161
182
|
* The margin between the SVG and the drawing area.
|
|
162
183
|
* It's used for leaving some space for extra information such as the x- and y-axis or legend.
|
|
163
184
|
* Accepts an object with the optional properties: `top`, `bottom`, `left`, and `right`.
|
|
164
|
-
* @default object Depends on the charts type.
|
|
165
185
|
*/
|
|
166
186
|
margin: PropTypes.shape({
|
|
167
187
|
bottom: PropTypes.number,
|
|
@@ -193,6 +213,11 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
193
213
|
* An array of [[HeatmapSeriesType]] objects.
|
|
194
214
|
*/
|
|
195
215
|
series: PropTypes.arrayOf(PropTypes.object).isRequired,
|
|
216
|
+
/**
|
|
217
|
+
* The configuration helpers used to compute attributes according to the serries type.
|
|
218
|
+
* @ignore Unstable props for internal usage.
|
|
219
|
+
*/
|
|
220
|
+
seriesConfig: PropTypes.object,
|
|
196
221
|
/**
|
|
197
222
|
* The props used for each component slot.
|
|
198
223
|
* @default {}
|
|
@@ -204,6 +229,7 @@ process.env.NODE_ENV !== "production" ? Heatmap.propTypes = {
|
|
|
204
229
|
*/
|
|
205
230
|
slots: PropTypes.object,
|
|
206
231
|
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
232
|
+
theme: PropTypes.oneOf(['dark', 'light']),
|
|
207
233
|
title: PropTypes.string,
|
|
208
234
|
/**
|
|
209
235
|
* The configuration of the tooltip.
|
|
@@ -6,9 +6,9 @@ import PropTypes from 'prop-types';
|
|
|
6
6
|
import clsx from 'clsx';
|
|
7
7
|
import HTMLElementType from '@mui/utils/HTMLElementType';
|
|
8
8
|
import composeClasses from '@mui/utils/composeClasses';
|
|
9
|
-
import { ChartsTooltipPaper, ChartsTooltipTable, ChartsTooltipRow, ChartsTooltipCell,
|
|
9
|
+
import { ChartsTooltipPaper, ChartsTooltipTable, ChartsTooltipRow, ChartsTooltipCell, useItemTooltip, getChartsTooltipUtilityClass, ChartsTooltipContainer } from '@mui/x-charts/ChartsTooltip';
|
|
10
10
|
import { useXAxis, useYAxis } from '@mui/x-charts/hooks';
|
|
11
|
-
import { getLabel } from '@mui/x-charts/internals';
|
|
11
|
+
import { getLabel, ChartsLabelMark } from '@mui/x-charts/internals';
|
|
12
12
|
import { useHeatmapSeries } from "../hooks/useSeries.js";
|
|
13
13
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
14
|
const useUtilityClasses = ownerState => {
|
|
@@ -47,7 +47,8 @@ function DefaultHeatmapTooltipContent(props) {
|
|
|
47
47
|
const {
|
|
48
48
|
color,
|
|
49
49
|
value,
|
|
50
|
-
identifier
|
|
50
|
+
identifier,
|
|
51
|
+
markType
|
|
51
52
|
} = tooltipData;
|
|
52
53
|
const [xIndex, yIndex] = value;
|
|
53
54
|
const formattedX = xAxis.valueFormatter?.(xAxis.data[xIndex], {
|
|
@@ -80,7 +81,8 @@ function DefaultHeatmapTooltipContent(props) {
|
|
|
80
81
|
className: classes?.row,
|
|
81
82
|
children: [/*#__PURE__*/_jsx(ChartsTooltipCell, {
|
|
82
83
|
className: clsx(classes?.markCell, classes?.cell),
|
|
83
|
-
children: /*#__PURE__*/_jsx(
|
|
84
|
+
children: /*#__PURE__*/_jsx(ChartsLabelMark, {
|
|
85
|
+
type: markType,
|
|
84
86
|
color: color,
|
|
85
87
|
className: classes?.mark
|
|
86
88
|
})
|
package/Heatmap/extremums.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const getBaseExtremum:
|
|
1
|
+
import { CartesianExtremumGetter } from '@mui/x-charts/internals';
|
|
2
|
+
export declare const getBaseExtremum: CartesianExtremumGetter<'heatmap'>;
|
package/Heatmap/formatter.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare const formatter:
|
|
1
|
+
import { SeriesProcessor } from '@mui/x-charts/internals';
|
|
2
|
+
declare const formatter: SeriesProcessor<'heatmap'>;
|
|
3
3
|
export default formatter;
|
package/Heatmap/formatter.js
CHANGED
package/Heatmap/plugin.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const plugin:
|
|
1
|
+
import { ChartSeriesTypeConfig } from '@mui/x-charts/internals';
|
|
2
|
+
export declare const plugin: ChartSeriesTypeConfig<'heatmap'>;
|
package/Heatmap/plugin.js
CHANGED
|
@@ -2,8 +2,7 @@ import { getBaseExtremum } from "./extremums.js";
|
|
|
2
2
|
import formatter from "./formatter.js";
|
|
3
3
|
import getColor from "./getColor.js";
|
|
4
4
|
export const plugin = {
|
|
5
|
-
|
|
6
|
-
seriesFormatter: formatter,
|
|
5
|
+
seriesProcessor: formatter,
|
|
7
6
|
colorProcessor: getColor,
|
|
8
7
|
xExtremumGetter: getBaseExtremum,
|
|
9
8
|
yExtremumGetter: getBaseExtremum
|