@mui/x-charts-pro 8.14.1 → 8.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BarChartPro/BarChartPro.js +19 -2
- package/BarChartPro/BarChartPro.plugins.d.ts +2 -2
- package/BarChartPro/BarChartPro.plugins.js +1 -1
- package/CHANGELOG.md +207 -0
- package/ChartDataProviderPro/ChartDataProviderPro.js +1 -1
- package/ChartsBrushOverlay/index.d.ts +1 -0
- package/ChartsBrushOverlay/index.js +16 -0
- package/FunnelChart/FunnelPlot.js +3 -23
- package/FunnelChart/coordinateMapper.d.ts +3 -0
- package/FunnelChart/coordinateMapper.js +18 -0
- package/FunnelChart/funnelAxisPlugin/computeAxisValue.js +1 -2
- package/FunnelChart/seriesConfig/getSeriesWithDefaultValues.js +5 -6
- package/FunnelChart/seriesConfig/index.js +2 -0
- package/FunnelChart/seriesConfig/tooltipPosition.d.ts +3 -0
- package/FunnelChart/seriesConfig/tooltipPosition.js +62 -0
- package/Heatmap/Heatmap.plugins.d.ts +1 -1
- package/Heatmap/Heatmap.plugins.js +1 -1
- package/Heatmap/HeatmapTooltip/HeatmapTooltip.js +9 -0
- package/Heatmap/seriesConfig/getSeriesWithDefaultValues.js +3 -2
- package/Heatmap/seriesConfig/index.js +2 -0
- package/Heatmap/seriesConfig/tooltipPosition.d.ts +3 -0
- package/Heatmap/seriesConfig/tooltipPosition.js +57 -0
- package/LineChartPro/LineChartPro.js +19 -2
- package/LineChartPro/LineChartPro.plugins.d.ts +2 -2
- package/LineChartPro/LineChartPro.plugins.js +1 -1
- package/RadarChartPro/RadarChartPro.plugins.d.ts +1 -1
- package/RadarChartPro/RadarChartPro.plugins.js +1 -1
- package/SankeyChart/SankeyTooltip/SankeyTooltip.js +9 -0
- package/ScatterChartPro/ScatterChartPro.js +19 -2
- package/ScatterChartPro/ScatterChartPro.plugins.d.ts +2 -2
- package/ScatterChartPro/ScatterChartPro.plugins.js +1 -1
- package/esm/BarChartPro/BarChartPro.js +19 -2
- package/esm/BarChartPro/BarChartPro.plugins.d.ts +2 -2
- package/esm/BarChartPro/BarChartPro.plugins.js +2 -2
- package/esm/ChartDataProviderPro/ChartDataProviderPro.js +1 -1
- package/esm/ChartsBrushOverlay/index.d.ts +1 -0
- package/esm/ChartsBrushOverlay/index.js +2 -0
- package/esm/FunnelChart/FunnelPlot.js +4 -24
- package/esm/FunnelChart/coordinateMapper.d.ts +3 -0
- package/esm/FunnelChart/coordinateMapper.js +11 -0
- package/esm/FunnelChart/funnelAxisPlugin/computeAxisValue.js +1 -2
- package/esm/FunnelChart/seriesConfig/getSeriesWithDefaultValues.js +5 -6
- package/esm/FunnelChart/seriesConfig/index.js +2 -0
- package/esm/FunnelChart/seriesConfig/tooltipPosition.d.ts +3 -0
- package/esm/FunnelChart/seriesConfig/tooltipPosition.js +56 -0
- package/esm/Heatmap/Heatmap.plugins.d.ts +1 -1
- package/esm/Heatmap/Heatmap.plugins.js +1 -1
- package/esm/Heatmap/HeatmapTooltip/HeatmapTooltip.js +9 -0
- package/esm/Heatmap/seriesConfig/getSeriesWithDefaultValues.js +3 -2
- package/esm/Heatmap/seriesConfig/index.js +2 -0
- package/esm/Heatmap/seriesConfig/tooltipPosition.d.ts +3 -0
- package/esm/Heatmap/seriesConfig/tooltipPosition.js +51 -0
- package/esm/LineChartPro/LineChartPro.js +19 -2
- package/esm/LineChartPro/LineChartPro.plugins.d.ts +2 -2
- package/esm/LineChartPro/LineChartPro.plugins.js +2 -2
- package/esm/RadarChartPro/RadarChartPro.plugins.d.ts +1 -1
- package/esm/RadarChartPro/RadarChartPro.plugins.js +1 -1
- package/esm/SankeyChart/SankeyTooltip/SankeyTooltip.js +9 -0
- package/esm/ScatterChartPro/ScatterChartPro.js +19 -2
- package/esm/ScatterChartPro/ScatterChartPro.plugins.d.ts +2 -2
- package/esm/ScatterChartPro/ScatterChartPro.plugins.js +2 -2
- package/esm/index.js +1 -1
- package/esm/internals/plugins/allPlugins.d.ts +5 -5
- package/esm/internals/plugins/allPlugins.js +3 -3
- package/esm/internals/plugins/useChartProZoom/ZoomInteractionConfig.selectors.d.ts +11 -2
- package/esm/internals/plugins/useChartProZoom/ZoomInteractionConfig.selectors.js +3 -2
- package/esm/internals/plugins/useChartProZoom/ZoomInteractionConfig.types.d.ts +11 -3
- package/esm/internals/plugins/useChartProZoom/gestureHooks/usePanOnDrag.js +1 -1
- package/esm/internals/plugins/useChartProZoom/gestureHooks/usePanOnPressAndDrag.js +1 -1
- package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoom.utils.d.ts +2 -2
- package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoom.utils.js +8 -5
- package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnBrush.d.ts +8 -0
- package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnBrush.js +100 -0
- package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnDoubleTapReset.d.ts +8 -0
- package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnDoubleTapReset.js +57 -0
- package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnPinch.js +2 -2
- package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnTapAndDrag.js +2 -2
- package/esm/internals/plugins/useChartProZoom/gestureHooks/useZoomOnWheel.js +2 -2
- package/esm/internals/plugins/useChartProZoom/useChartProZoom.js +4 -0
- package/esm/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +1 -1
- package/esm/internals/plugins/useChartProZoom/useChartProZoom.types.d.ts +2 -2
- package/esm/tests/constants.js +1 -0
- package/index.js +1 -1
- package/internals/plugins/allPlugins.d.ts +5 -5
- package/internals/plugins/allPlugins.js +2 -2
- package/internals/plugins/useChartProZoom/ZoomInteractionConfig.selectors.d.ts +11 -2
- package/internals/plugins/useChartProZoom/ZoomInteractionConfig.selectors.js +3 -2
- package/internals/plugins/useChartProZoom/ZoomInteractionConfig.types.d.ts +11 -3
- package/internals/plugins/useChartProZoom/gestureHooks/usePanOnDrag.js +1 -1
- package/internals/plugins/useChartProZoom/gestureHooks/usePanOnPressAndDrag.js +1 -1
- package/internals/plugins/useChartProZoom/gestureHooks/useZoom.utils.d.ts +2 -2
- package/internals/plugins/useChartProZoom/gestureHooks/useZoom.utils.js +8 -5
- package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnBrush.d.ts +8 -0
- package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnBrush.js +107 -0
- package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnDoubleTapReset.d.ts +8 -0
- package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnDoubleTapReset.js +64 -0
- package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnPinch.js +2 -2
- package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnTapAndDrag.js +2 -2
- package/internals/plugins/useChartProZoom/gestureHooks/useZoomOnWheel.js +2 -2
- package/internals/plugins/useChartProZoom/useChartProZoom.js +4 -0
- package/internals/plugins/useChartProZoom/useChartProZoom.selectors.d.ts +1 -1
- package/internals/plugins/useChartProZoom/useChartProZoom.types.d.ts +2 -2
- package/package.json +6 -6
- package/tests/constants.js +7 -0
|
@@ -23,6 +23,7 @@ var _ChartsClipPath = require("@mui/x-charts/ChartsClipPath");
|
|
|
23
23
|
var _internals = require("@mui/x-charts/internals");
|
|
24
24
|
var _ChartsSurface = require("@mui/x-charts/ChartsSurface");
|
|
25
25
|
var _ChartsWrapper = require("@mui/x-charts/ChartsWrapper");
|
|
26
|
+
var _ChartsBrushOverlay = require("@mui/x-charts/ChartsBrushOverlay");
|
|
26
27
|
var _ChartZoomSlider = require("../ChartZoomSlider");
|
|
27
28
|
var _ChartsToolbarPro = require("../ChartsToolbarPro");
|
|
28
29
|
var _useChartContainerProProps = require("../ChartContainerPro/useChartContainerProProps");
|
|
@@ -84,7 +85,7 @@ const BarChartPro = exports.BarChartPro = /*#__PURE__*/React.forwardRef(function
|
|
|
84
85
|
children: [showToolbar ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Toolbar, (0, _extends2.default)({}, props.slotProps?.toolbar)) : null, !props.hideLegend && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsLegend.ChartsLegend, (0, _extends2.default)({}, legendProps)), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChartsSurface.ChartsSurface, (0, _extends2.default)({}, chartsSurfaceProps, {
|
|
85
86
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsGrid.ChartsGrid, (0, _extends2.default)({}, gridProps)), /*#__PURE__*/(0, _jsxRuntime.jsxs)("g", (0, _extends2.default)({}, clipPathGroupProps, {
|
|
86
87
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_BarChart.BarPlot, (0, _extends2.default)({}, barPlotProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsOverlay.ChartsOverlay, (0, _extends2.default)({}, overlayProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxisHighlight.ChartsAxisHighlight, (0, _extends2.default)({}, axisHighlightProps))]
|
|
87
|
-
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxis.ChartsAxis, (0, _extends2.default)({}, chartsAxisProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartZoomSlider.ChartZoomSlider, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsClipPath.ChartsClipPath, (0, _extends2.default)({}, clipPathProps)), children]
|
|
88
|
+
})), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsAxis.ChartsAxis, (0, _extends2.default)({}, chartsAxisProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartZoomSlider.ChartZoomSlider, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsBrushOverlay.ChartsBrushOverlay, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChartsClipPath.ChartsClipPath, (0, _extends2.default)({}, clipPathProps)), children]
|
|
88
89
|
})), !props.loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(Tooltip, (0, _extends2.default)({}, props.slotProps?.tooltip))]
|
|
89
90
|
}))
|
|
90
91
|
}));
|
|
@@ -125,6 +126,14 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
|
125
126
|
* Defines the border radius of the bar element.
|
|
126
127
|
*/
|
|
127
128
|
borderRadius: _propTypes.default.number,
|
|
129
|
+
/**
|
|
130
|
+
* Configuration for the brush interaction.
|
|
131
|
+
*/
|
|
132
|
+
brushConfig: _propTypes.default.shape({
|
|
133
|
+
enabled: _propTypes.default.bool,
|
|
134
|
+
preventHighlight: _propTypes.default.bool,
|
|
135
|
+
preventTooltip: _propTypes.default.bool
|
|
136
|
+
}),
|
|
128
137
|
children: _propTypes.default.node,
|
|
129
138
|
className: _propTypes.default.string,
|
|
130
139
|
/**
|
|
@@ -1445,7 +1454,7 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
|
1445
1454
|
requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
1446
1455
|
type: _propTypes.default.oneOf(['pressAndDrag']).isRequired
|
|
1447
1456
|
})]).isRequired),
|
|
1448
|
-
zoom: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf(['pinch', 'tapAndDrag', 'wheel']), _propTypes.default.shape({
|
|
1457
|
+
zoom: _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf(['brush', 'doubleTapReset', 'pinch', 'tapAndDrag', 'wheel']), _propTypes.default.shape({
|
|
1449
1458
|
pointerMode: _propTypes.default.any,
|
|
1450
1459
|
requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
1451
1460
|
type: _propTypes.default.oneOf(['wheel']).isRequired
|
|
@@ -1457,6 +1466,14 @@ process.env.NODE_ENV !== "production" ? BarChartPro.propTypes = {
|
|
|
1457
1466
|
pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
|
|
1458
1467
|
requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
1459
1468
|
type: _propTypes.default.oneOf(['tapAndDrag']).isRequired
|
|
1469
|
+
}), _propTypes.default.shape({
|
|
1470
|
+
pointerMode: _propTypes.default.oneOf(['mouse', 'touch']),
|
|
1471
|
+
requiredKeys: _propTypes.default.arrayOf(_propTypes.default.string),
|
|
1472
|
+
type: _propTypes.default.oneOf(['doubleTapReset']).isRequired
|
|
1473
|
+
}), _propTypes.default.shape({
|
|
1474
|
+
pointerMode: _propTypes.default.any,
|
|
1475
|
+
requiredKeys: _propTypes.default.array,
|
|
1476
|
+
type: _propTypes.default.oneOf(['brush']).isRequired
|
|
1460
1477
|
})]).isRequired)
|
|
1461
1478
|
})
|
|
1462
1479
|
} : void 0;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { UseChartZAxisSignature, UseChartCartesianAxisSignature, UseChartInteractionSignature, UseChartHighlightSignature, UseChartKeyboardNavigationSignature, ConvertSignaturesIntoPlugins } from '@mui/x-charts/internals';
|
|
1
|
+
import { UseChartZAxisSignature, UseChartCartesianAxisSignature, UseChartInteractionSignature, UseChartHighlightSignature, UseChartKeyboardNavigationSignature, UseChartBrushSignature, ConvertSignaturesIntoPlugins } from '@mui/x-charts/internals';
|
|
2
2
|
import { UseChartProExportSignature } from "../internals/plugins/useChartProExport/index.js";
|
|
3
3
|
import { UseChartProZoomSignature } from "../internals/plugins/useChartProZoom/index.js";
|
|
4
|
-
export type BarChartProPluginSignatures = [UseChartZAxisSignature, UseChartCartesianAxisSignature<'bar'>,
|
|
4
|
+
export type BarChartProPluginSignatures = [UseChartZAxisSignature, UseChartBrushSignature, UseChartInteractionSignature, UseChartCartesianAxisSignature<'bar'>, UseChartHighlightSignature, UseChartKeyboardNavigationSignature, UseChartProZoomSignature, UseChartProExportSignature];
|
|
5
5
|
export declare const BAR_CHART_PRO_PLUGINS: ConvertSignaturesIntoPlugins<BarChartProPluginSignatures>;
|
|
@@ -7,4 +7,4 @@ exports.BAR_CHART_PRO_PLUGINS = void 0;
|
|
|
7
7
|
var _internals = require("@mui/x-charts/internals");
|
|
8
8
|
var _useChartProExport = require("../internals/plugins/useChartProExport");
|
|
9
9
|
var _useChartProZoom = require("../internals/plugins/useChartProZoom");
|
|
10
|
-
const BAR_CHART_PRO_PLUGINS = exports.BAR_CHART_PRO_PLUGINS = [_internals.useChartZAxis, _internals.
|
|
10
|
+
const BAR_CHART_PRO_PLUGINS = exports.BAR_CHART_PRO_PLUGINS = [_internals.useChartZAxis, _internals.useChartBrush, _internals.useChartInteraction, _internals.useChartCartesianAxis, _internals.useChartHighlight, _internals.useChartKeyboardNavigation, _useChartProZoom.useChartProZoom, _useChartProExport.useChartProExport];
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,213 @@
|
|
|
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.16.0
|
|
9
|
+
|
|
10
|
+
_Oct 29, 2025_
|
|
11
|
+
|
|
12
|
+
We'd like to extend a big thank you to the 14 contributors who made this release possible. Here are some highlights ✨:
|
|
13
|
+
|
|
14
|
+
- 🖌️ Add `brush` zoom interaction to charts
|
|
15
|
+
- 🔁 [Server-side update](https://mui.com/x/react-data-grid/server-side-data/#updating-server-side-data) in a grid with tree data/row grouping and aggregation will trigger re-fetch for all parent levels of that row to update aggregated values. See the [demo](https://mui.com/x/react-data-grid/server-side-data/aggregation/#usage-with-tree-data).
|
|
16
|
+
|
|
17
|
+
Special thanks go out to the community members for their valuable contributions:
|
|
18
|
+
@felix-wg, @frncesc, @sai6855
|
|
19
|
+
|
|
20
|
+
The following are all team members who have contributed to this release:
|
|
21
|
+
@alexfauquette, @arminmeh, @bernardobelchior, @brijeshb42, @flaviendelangle, @JCQuintas, @MBilalShafi, @mbrookes, @michelengelen, @noraleonte, @rita-codes
|
|
22
|
+
|
|
23
|
+
### Data Grid
|
|
24
|
+
|
|
25
|
+
#### `@mui/x-data-grid@8.16.0`
|
|
26
|
+
|
|
27
|
+
- [DataGrid] Ignore `Ctrl+A` key combination for the row selection in the community version (#20110) @felix-wg
|
|
28
|
+
- [DataGrid][l10n] Improve Spanish (es-ES) locale (#20134) @frncesc
|
|
29
|
+
|
|
30
|
+
#### `@mui/x-data-grid-pro@8.16.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
31
|
+
|
|
32
|
+
Same changes as in `@mui/x-data-grid@8.16.0`, plus:
|
|
33
|
+
|
|
34
|
+
- [DataGridPro] Add explicit return type to `getVisibleRowsLookup()` to fix the build with `tsc` (#20116) @arminmeh
|
|
35
|
+
- [DataGridPro] Retain the expansion state with expansion configuration props (#20126) @MBilalShafi
|
|
36
|
+
|
|
37
|
+
#### `@mui/x-data-grid-premium@8.16.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
38
|
+
|
|
39
|
+
Same changes as in `@mui/x-data-grid-pro@8.16.0`, plus:
|
|
40
|
+
|
|
41
|
+
- [DataGridPremium] Export and restore chart integration state (#20079) @arminmeh
|
|
42
|
+
- [DataGridPremium] Fix grouping column `valueFormatter()` crash (#20070) @sai6855
|
|
43
|
+
- [DataGridPremium] Refetch aggregation data after row update with server-side aggregation (#20039) @arminmeh
|
|
44
|
+
|
|
45
|
+
### Date and Time Pickers
|
|
46
|
+
|
|
47
|
+
#### `@mui/x-date-pickers@8.16.0`
|
|
48
|
+
|
|
49
|
+
- [pickers] Prevent blur event propagation on individual sections (#19825) @michelengelen
|
|
50
|
+
|
|
51
|
+
#### `@mui/x-date-pickers-pro@8.16.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
52
|
+
|
|
53
|
+
Same changes as in `@mui/x-date-pickers@8.16.0`.
|
|
54
|
+
|
|
55
|
+
### Charts
|
|
56
|
+
|
|
57
|
+
#### `@mui/x-charts@8.16.0`
|
|
58
|
+
|
|
59
|
+
- [charts] Allow tooltip to anchor items (#19954) @alexfauquette
|
|
60
|
+
- [charts] Fix behavior of grouped axis (#20118) @JCQuintas
|
|
61
|
+
- [charts] Move scale symlog inside scales (#20137) @JCQuintas
|
|
62
|
+
- [charts] Fix AreaChartConnectNulls demo height not correctly resizing (#20078) @sai6855
|
|
63
|
+
- [charts] Fix charts resizing overflow (#20080) @alexfauquette
|
|
64
|
+
- [charts] Fix tooltip not showing on first render (#20115) @bernardobelchior
|
|
65
|
+
- [charts] Handle `undefined` id and color in series (#20087) @bernardobelchior
|
|
66
|
+
- [charts] Remove `useMemo` from isZoomOn*Enabled and isPanOn*Enabled hooks (#20132) @Copilot
|
|
67
|
+
- [charts] Use static data for perf (#20072) @JCQuintas
|
|
68
|
+
- [charts] Move scale symlog inside scales (#20137) @JCQuintas
|
|
69
|
+
|
|
70
|
+
#### `@mui/x-charts-pro@8.16.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
71
|
+
|
|
72
|
+
Same changes as in `@mui/x-charts@8.16.0`, plus:
|
|
73
|
+
|
|
74
|
+
- [charts-pro] Add `brush` zoom interaction (#19899) @JCQuintas
|
|
75
|
+
- [charts-pro] Add sankey performance check (#20069) @JCQuintas
|
|
76
|
+
|
|
77
|
+
#### `@mui/x-charts-premium@8.16.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
78
|
+
|
|
79
|
+
Same changes as in `@mui/x-charts-pro@8.16.0`.
|
|
80
|
+
|
|
81
|
+
### Tree View
|
|
82
|
+
|
|
83
|
+
#### `@mui/x-tree-view@8.16.0`
|
|
84
|
+
|
|
85
|
+
Internal changes.
|
|
86
|
+
|
|
87
|
+
#### `@mui/x-tree-view-pro@8.16.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
88
|
+
|
|
89
|
+
Same changes as in `@mui/x-tree-view@8.16.0`.
|
|
90
|
+
|
|
91
|
+
### Codemod
|
|
92
|
+
|
|
93
|
+
#### `@mui/x-codemod@8.16.0`
|
|
94
|
+
|
|
95
|
+
Internal changes.
|
|
96
|
+
|
|
97
|
+
### Core
|
|
98
|
+
|
|
99
|
+
- [code-infra] Setup eslint compat plugin (#20105) @brijeshb42
|
|
100
|
+
- [code-infra] Improve store types (#20129) @JCQuintas
|
|
101
|
+
- [docs] Update the callout in `rows` prop documentation (#20127) @MBilalShafi
|
|
102
|
+
- [docs-infra] Refine changelog contributor acknowledgment messages (#20123) @mbrookes
|
|
103
|
+
|
|
104
|
+
### Miscellaneous
|
|
105
|
+
|
|
106
|
+
- [x-telemetry] Skip telemetry tests on browser mode (#20122) @bernardobelchior
|
|
107
|
+
|
|
108
|
+
## 8.15.0
|
|
109
|
+
|
|
110
|
+
_Oct 23, 2025_
|
|
111
|
+
|
|
112
|
+
We'd like to extend a big thank you to the 14 contributors who made this release possible. Here are some highlights ✨:
|
|
113
|
+
|
|
114
|
+
- 🖌️ Add new [`brush` charts interaction](https://mui.com/x/react-charts/brush/) for building custom behavior.
|
|
115
|
+

|
|
116
|
+
- ⚡️ Performance improvements for large bar charts
|
|
117
|
+
- 🤖 Data Grid AI assistant can now [visualize the query results](https://mui.com/x/react-data-grid/ai-assistant/#data-visualization) by controlling the chart integration settings
|
|
118
|
+
- 📦 DataGrid uses an internal MUI fork of ExcelJS that does not depend on vulnerable versions of NPM packages
|
|
119
|
+
- 🐞 Bugfixes
|
|
120
|
+
- 📚 Documentation improvements
|
|
121
|
+
|
|
122
|
+
Special thanks go out to the community members for their valuable contributions:
|
|
123
|
+
@ZagrebaAlex
|
|
124
|
+
|
|
125
|
+
The following are all team members who have contributed to this release:
|
|
126
|
+
@alexfauquette, @bernardobelchior, @cherniavskii, @flaviendelangle, @Janpot, @JCQuintas, @KenanYusuf, @prakhargupta1, @rita-codes, @siriwatknp, @arminmeh, @brijeshb42, @noraleonte
|
|
127
|
+
|
|
128
|
+
### Data Grid
|
|
129
|
+
|
|
130
|
+
#### `@mui/x-data-grid@8.15.0`
|
|
131
|
+
|
|
132
|
+
- [DataGrid] Fix `dataSource.fetchRows` API's return type (#20068) @arminmeh
|
|
133
|
+
|
|
134
|
+
#### `@mui/x-data-grid-pro@8.15.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
135
|
+
|
|
136
|
+
Same changes as in `@mui/x-data-grid@8.15.0`, plus:
|
|
137
|
+
|
|
138
|
+
- [DataGridPro] Keep children in the tree after parent row is re-fetched with the data source (#19934) @arminmeh
|
|
139
|
+
- [DataGridPro] Support scroll shadows customization (#19982) @KenanYusuf
|
|
140
|
+
|
|
141
|
+
#### `@mui/x-data-grid-premium@8.15.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
142
|
+
|
|
143
|
+
Same changes as in `@mui/x-data-grid-pro@8.15.0`, plus:
|
|
144
|
+
|
|
145
|
+
- [DataGridPremium] Use ExcelJS fork (#19796) @cherniavskii
|
|
146
|
+
- [DataGridPremium] Support data visualization in AI Assistant (#19831) @arminmeh
|
|
147
|
+
|
|
148
|
+
### Date and Time Pickers
|
|
149
|
+
|
|
150
|
+
#### `@mui/x-date-pickers@8.15.0`
|
|
151
|
+
|
|
152
|
+
Internal changes.
|
|
153
|
+
|
|
154
|
+
#### `@mui/x-date-pickers-pro@8.15.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
155
|
+
|
|
156
|
+
Same changes as in `@mui/x-date-pickers@8.15.0`.
|
|
157
|
+
|
|
158
|
+
### Charts
|
|
159
|
+
|
|
160
|
+
#### `@mui/x-charts@8.15.0`
|
|
161
|
+
|
|
162
|
+
- [charts] Add `ChartsBrushOverlay` and allow brush configuration (#19956) @JCQuintas
|
|
163
|
+
- [charts] Add `getStringSize` benchmark. Remove benchmarks from built package. (#19995) @bernardobelchior
|
|
164
|
+
- [charts] Batch string size measurement (#19994) @bernardobelchior
|
|
165
|
+
- [charts] Fix console issue (#20025) @JCQuintas
|
|
166
|
+
- [charts] Fix is[ZoomFeature]Enabled type (#20058) @alexfauquette
|
|
167
|
+
- [charts] Fix reference line middle spacing (#20004) @JCQuintas
|
|
168
|
+
- [charts] Improve `getStringSize` and `batchMeasureStrings` performance (#19996) @bernardobelchior
|
|
169
|
+
- [charts] Improve deep export script (#20007) @JCQuintas
|
|
170
|
+
- [charts] Improve string measurement benchmarks (#19999) @bernardobelchior
|
|
171
|
+
- [charts] Measure string sizes using SVG elements (#19981) @bernardobelchior
|
|
172
|
+
- [l10n] Improve Greek (gr-GR) locale (#20060) @ZagrebaAlex
|
|
173
|
+
|
|
174
|
+
#### `@mui/x-charts-pro@8.15.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
175
|
+
|
|
176
|
+
Same changes as in `@mui/x-charts@8.15.0`, plus:
|
|
177
|
+
|
|
178
|
+
- [charts-pro] Fix pan with `axis.reverse` (#20031) @JCQuintas
|
|
179
|
+
|
|
180
|
+
#### `@mui/x-charts-premium@8.15.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
181
|
+
|
|
182
|
+
Same changes as in `@mui/x-charts-pro@8.15.0`.
|
|
183
|
+
|
|
184
|
+
### Tree View
|
|
185
|
+
|
|
186
|
+
#### `@mui/x-tree-view@8.15.0`
|
|
187
|
+
|
|
188
|
+
- [tree view] Multi character type-ahead (#19942) @noraleonte
|
|
189
|
+
|
|
190
|
+
#### `@mui/x-tree-view-pro@8.15.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
191
|
+
|
|
192
|
+
Same changes as in `@mui/x-tree-view@8.15.0`.
|
|
193
|
+
|
|
194
|
+
### Codemod
|
|
195
|
+
|
|
196
|
+
#### `@mui/x-codemod@8.14.0`
|
|
197
|
+
|
|
198
|
+
Internal changes.
|
|
199
|
+
|
|
200
|
+
### Docs
|
|
201
|
+
|
|
202
|
+
- [docs] Add overview section for scatter chart and heatmap (#19888) @prakhargupta1
|
|
203
|
+
- [docs] Add charts bell curve example (#20003) @JCQuintas
|
|
204
|
+
- [docs] Add grouped multiple fields for Data Grid row grouping recipe (#19964) @siriwatknp
|
|
205
|
+
- [docs] Add Data Grid loading state recipe (#19958) @siriwatknp
|
|
206
|
+
|
|
207
|
+
### Core
|
|
208
|
+
|
|
209
|
+
- [code-infra] Remove @mui/monorepo usage for react versioning (#19894) @Janpot
|
|
210
|
+
- [code-infra] Remove invalid `environment: 'browser'` from vitest browser config (#19993) @bernardobelchior
|
|
211
|
+
- [code-infra] Remove unused babel aliases (#19987) @Janpot
|
|
212
|
+
- [code-infra] Turn on all testing-library eslint rules (#19946) @brijeshb42
|
|
213
|
+
- [docs-infra] Fix broken hash link (#20062) @Janpot
|
|
214
|
+
|
|
8
215
|
## 8.14.1
|
|
9
216
|
|
|
10
217
|
_Oct 16, 2025_
|
|
@@ -18,7 +18,7 @@ var _material = require("../internals/material");
|
|
|
18
18
|
var _allPlugins = require("../internals/plugins/allPlugins");
|
|
19
19
|
var _useChartDataProviderProProps = require("./useChartDataProviderProProps");
|
|
20
20
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
21
|
-
const releaseInfo = "
|
|
21
|
+
const releaseInfo = "MTc2MTY5NjAwMDAwMA==";
|
|
22
22
|
const packageIdentifier = 'x-charts-pro';
|
|
23
23
|
/**
|
|
24
24
|
* Orchestrates the data providers for the chart components and hooks.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@mui/x-charts/ChartsBrushOverlay';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _ChartsBrushOverlay = require("@mui/x-charts/ChartsBrushOverlay");
|
|
7
|
+
Object.keys(_ChartsBrushOverlay).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _ChartsBrushOverlay[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _ChartsBrushOverlay[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -19,6 +19,7 @@ var _useFunnelSeries = require("../hooks/useFunnelSeries");
|
|
|
19
19
|
var _curves = require("./curves");
|
|
20
20
|
var _FunnelSectionLabel = require("./FunnelSectionLabel");
|
|
21
21
|
var _useChartFunnelAxisRendering = require("./funnelAxisPlugin/useChartFunnelAxisRendering.selectors");
|
|
22
|
+
var _coordinateMapper = require("./coordinateMapper");
|
|
22
23
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
24
|
const _excluded = ["onItemClick"];
|
|
24
25
|
_internals.cartesianSeriesTypes.addType('funnel');
|
|
@@ -51,31 +52,10 @@ const useAggregatedData = () => {
|
|
|
51
52
|
const yAxisId = currentSeries.yAxisId ?? defaultYAxisId;
|
|
52
53
|
const valueFormatter = currentSeries.valueFormatter;
|
|
53
54
|
const baseScaleConfig = isHorizontal ? xAxis[xAxisId] : yAxis[yAxisId];
|
|
54
|
-
const isXAxisBand = xAxis[xAxisId].scaleType === 'band';
|
|
55
|
-
const isYAxisBand = yAxis[yAxisId].scaleType === 'band';
|
|
56
|
-
const bandWidth = (isXAxisBand || isYAxisBand) && baseScaleConfig.scale?.bandwidth() || 0;
|
|
57
55
|
const xScale = xAxis[xAxisId].scale;
|
|
58
56
|
const yScale = yAxis[yAxisId].scale;
|
|
59
|
-
const xPosition = (
|
|
60
|
-
|
|
61
|
-
const position = xScale(bandIdentifier);
|
|
62
|
-
return useBand ? position + bandWidth : position;
|
|
63
|
-
}
|
|
64
|
-
if (isHorizontal) {
|
|
65
|
-
return xScale(value + (stackOffset || 0)) + bandIndex * gap;
|
|
66
|
-
}
|
|
67
|
-
return xScale(value);
|
|
68
|
-
};
|
|
69
|
-
const yPosition = (value, bandIndex, bandIdentifier, stackOffset, useBand) => {
|
|
70
|
-
if ((0, _internals.isOrdinalScale)(yScale)) {
|
|
71
|
-
const position = yScale(bandIdentifier);
|
|
72
|
-
return useBand ? position + bandWidth : position;
|
|
73
|
-
}
|
|
74
|
-
if (isHorizontal) {
|
|
75
|
-
return yScale(value);
|
|
76
|
-
}
|
|
77
|
-
return yScale(value + (stackOffset || 0)) + bandIndex * gap;
|
|
78
|
-
};
|
|
57
|
+
const xPosition = (0, _coordinateMapper.createPositionGetter)(xScale, isHorizontal, gap);
|
|
58
|
+
const yPosition = (0, _coordinateMapper.createPositionGetter)(yScale, !isHorizontal, gap);
|
|
79
59
|
const allY = currentSeries.dataPoints.flatMap((d, dataIndex) => d.flatMap(v => yPosition(v.y, dataIndex, baseScaleConfig.data?.[dataIndex], v.stackOffset, v.useBandWidth)));
|
|
80
60
|
const allX = currentSeries.dataPoints.flatMap((d, dataIndex) => d.flatMap(v => xPosition(v.x, dataIndex, baseScaleConfig.data?.[dataIndex], v.stackOffset, v.useBandWidth)));
|
|
81
61
|
const minPoint = {
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createPositionGetter = void 0;
|
|
7
|
+
var _internals = require("@mui/x-charts/internals");
|
|
8
|
+
const createPositionGetter = (scale, isCategoryDirection, gap) => (value, bandIndex, bandIdentifier, stackOffset, useBand) => {
|
|
9
|
+
if ((0, _internals.isOrdinalScale)(scale)) {
|
|
10
|
+
const position = scale(bandIdentifier);
|
|
11
|
+
return useBand ? position + scale.bandwidth() : position;
|
|
12
|
+
}
|
|
13
|
+
if (isCategoryDirection) {
|
|
14
|
+
return scale(value + (stackOffset || 0)) + bandIndex * gap;
|
|
15
|
+
}
|
|
16
|
+
return scale(value);
|
|
17
|
+
};
|
|
18
|
+
exports.createPositionGetter = createPositionGetter;
|
|
@@ -7,7 +7,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.computeAxisValue = computeAxisValue;
|
|
8
8
|
exports.yRangeGetter = exports.xRangeGetter = void 0;
|
|
9
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
-
var _d3Scale = require("@mui/x-charts-vendor/d3-scale");
|
|
11
10
|
var _internals = require("@mui/x-charts/internals");
|
|
12
11
|
const xRangeGetter = (drawingArea, reverse, removedSpace = 0) => {
|
|
13
12
|
const range = [drawingArea.left, drawingArea.left + drawingArea.width - removedSpace];
|
|
@@ -59,7 +58,7 @@ function computeAxisValue({
|
|
|
59
58
|
triggerTooltip
|
|
60
59
|
}, axis, {
|
|
61
60
|
data,
|
|
62
|
-
scale: (0,
|
|
61
|
+
scale: (0, _internals.scaleBand)(axis.data, scaleRange).paddingInner(gap / step).paddingOuter(0),
|
|
63
62
|
tickNumber: axis.data.length,
|
|
64
63
|
colorScale: axis.colorMap && (axis.colorMap.type === 'ordinal' ? (0, _internals.getOrdinalColorScale)((0, _extends2.default)({
|
|
65
64
|
values: axis.data
|
|
@@ -7,13 +7,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
const getSeriesWithDefaultValues = (seriesData, seriesIndex, colors) => {
|
|
10
|
-
return (0, _extends2.default)({
|
|
11
|
-
id: seriesData.id ?? `auto-generated-id-${seriesIndex}
|
|
12
|
-
}, seriesData, {
|
|
10
|
+
return (0, _extends2.default)({}, seriesData, {
|
|
11
|
+
id: seriesData.id ?? `auto-generated-id-${seriesIndex}`,
|
|
13
12
|
borderRadius: seriesData.borderRadius ?? 8,
|
|
14
|
-
data: seriesData.data.map((d, index) => (0, _extends2.default)({
|
|
15
|
-
color: colors[index % colors.length]
|
|
16
|
-
}
|
|
13
|
+
data: seriesData.data.map((d, index) => (0, _extends2.default)({}, d, {
|
|
14
|
+
color: d.color ?? colors[index % colors.length]
|
|
15
|
+
}))
|
|
17
16
|
});
|
|
18
17
|
};
|
|
19
18
|
var _default = exports.default = getSeriesWithDefaultValues;
|
|
@@ -11,11 +11,13 @@ var _getColor = _interopRequireDefault(require("./getColor"));
|
|
|
11
11
|
var _legend = _interopRequireDefault(require("./legend"));
|
|
12
12
|
var _tooltip = _interopRequireDefault(require("./tooltip"));
|
|
13
13
|
var _getSeriesWithDefaultValues = _interopRequireDefault(require("./getSeriesWithDefaultValues"));
|
|
14
|
+
var _tooltipPosition = _interopRequireDefault(require("./tooltipPosition"));
|
|
14
15
|
const seriesConfig = exports.seriesConfig = {
|
|
15
16
|
seriesProcessor: _seriesProcessor.default,
|
|
16
17
|
colorProcessor: _getColor.default,
|
|
17
18
|
legendGetter: _legend.default,
|
|
18
19
|
tooltipGetter: _tooltip.default,
|
|
20
|
+
tooltipItemPositionGetter: _tooltipPosition.default,
|
|
19
21
|
xExtremumGetter: _extremums.getExtremumX,
|
|
20
22
|
yExtremumGetter: _extremums.getExtremumY,
|
|
21
23
|
getSeriesWithDefaultValues: _getSeriesWithDefaultValues.default
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _internals = require("@mui/x-charts/internals");
|
|
8
|
+
var _coordinateMapper = require("../coordinateMapper");
|
|
9
|
+
const tooltipItemPositionGetter = params => {
|
|
10
|
+
const {
|
|
11
|
+
series,
|
|
12
|
+
identifier,
|
|
13
|
+
axesConfig,
|
|
14
|
+
placement
|
|
15
|
+
} = params;
|
|
16
|
+
if (!identifier || identifier.dataIndex === undefined) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
const itemSeries = series.funnel?.series[identifier.seriesId];
|
|
20
|
+
if (itemSeries == null) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
if (axesConfig.x === undefined || axesConfig.y === undefined) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
const isHorizontal = itemSeries.layout === 'horizontal';
|
|
27
|
+
const baseScaleConfig = isHorizontal ? axesConfig.x : axesConfig.y;
|
|
28
|
+
|
|
29
|
+
// FIXME gap should be obtained from the store.
|
|
30
|
+
// Maybe moving it to the series would be a good idea similar to what we do with bar charts and their stackingGroups
|
|
31
|
+
const gap = 0;
|
|
32
|
+
const xPosition = (0, _coordinateMapper.createPositionGetter)(axesConfig.x.scale, isHorizontal, gap);
|
|
33
|
+
const yPosition = (0, _coordinateMapper.createPositionGetter)(axesConfig.y.scale, !isHorizontal, gap);
|
|
34
|
+
const allY = itemSeries.dataPoints[identifier.dataIndex].map(v => yPosition(v.y, identifier.dataIndex, baseScaleConfig.data?.[identifier.dataIndex], v.stackOffset, v.useBandWidth));
|
|
35
|
+
const allX = itemSeries.dataPoints[identifier.dataIndex].map(v => xPosition(v.x, identifier.dataIndex, baseScaleConfig.data?.[identifier.dataIndex], v.stackOffset, v.useBandWidth));
|
|
36
|
+
const [x0, x1] = (0, _internals.findMinMax)(allX);
|
|
37
|
+
const [y0, y1] = (0, _internals.findMinMax)(allY);
|
|
38
|
+
switch (placement) {
|
|
39
|
+
case 'bottom':
|
|
40
|
+
return {
|
|
41
|
+
x: (x1 + x0) / 2,
|
|
42
|
+
y: y1
|
|
43
|
+
};
|
|
44
|
+
case 'left':
|
|
45
|
+
return {
|
|
46
|
+
x: x0,
|
|
47
|
+
y: (y1 + y0) / 2
|
|
48
|
+
};
|
|
49
|
+
case 'right':
|
|
50
|
+
return {
|
|
51
|
+
x: x1,
|
|
52
|
+
y: (y1 + y0) / 2
|
|
53
|
+
};
|
|
54
|
+
case 'top':
|
|
55
|
+
default:
|
|
56
|
+
return {
|
|
57
|
+
x: (x1 + x0) / 2,
|
|
58
|
+
y: y0
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
var _default = exports.default = tooltipItemPositionGetter;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { UseChartZAxisSignature, UseChartCartesianAxisSignature, UseChartInteractionSignature, UseChartHighlightSignature, ConvertSignaturesIntoPlugins } from '@mui/x-charts/internals';
|
|
2
2
|
import { UseChartProExportSignature } from "../internals/plugins/useChartProExport/index.js";
|
|
3
|
-
export type HeatmapPluginSignatures = [UseChartZAxisSignature, UseChartCartesianAxisSignature<'heatmap'>,
|
|
3
|
+
export type HeatmapPluginSignatures = [UseChartZAxisSignature, UseChartInteractionSignature, UseChartCartesianAxisSignature<'heatmap'>, UseChartHighlightSignature, UseChartProExportSignature];
|
|
4
4
|
export declare const HEATMAP_PLUGINS: ConvertSignaturesIntoPlugins<HeatmapPluginSignatures>;
|
|
@@ -6,4 +6,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.HEATMAP_PLUGINS = void 0;
|
|
7
7
|
var _internals = require("@mui/x-charts/internals");
|
|
8
8
|
var _useChartProExport = require("../internals/plugins/useChartProExport");
|
|
9
|
-
const HEATMAP_PLUGINS = exports.HEATMAP_PLUGINS = [_internals.useChartZAxis, _internals.
|
|
9
|
+
const HEATMAP_PLUGINS = exports.HEATMAP_PLUGINS = [_internals.useChartZAxis, _internals.useChartInteraction, _internals.useChartCartesianAxis, _internals.useChartHighlight, _useChartProExport.useChartProExport];
|
|
@@ -33,6 +33,11 @@ process.env.NODE_ENV !== "production" ? HeatmapTooltip.propTypes = {
|
|
|
33
33
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
34
34
|
// | To update them edit the TypeScript types and run "pnpm proptypes" |
|
|
35
35
|
// ----------------------------------------------------------------------
|
|
36
|
+
/**
|
|
37
|
+
* Determine if the tooltip should be placed on the pointer location or on the node.
|
|
38
|
+
* @default 'pointer'
|
|
39
|
+
*/
|
|
40
|
+
anchor: _propTypes.default.oneOf(['node', 'pointer']),
|
|
36
41
|
/**
|
|
37
42
|
* An HTML element, [virtualElement](https://popper.js.org/docs/v2/virtual-elements/),
|
|
38
43
|
* or a function that returns either.
|
|
@@ -162,6 +167,10 @@ process.env.NODE_ENV !== "production" ? HeatmapTooltip.propTypes = {
|
|
|
162
167
|
update: _propTypes.default.func.isRequired
|
|
163
168
|
})
|
|
164
169
|
})]),
|
|
170
|
+
/**
|
|
171
|
+
* Determines the tooltip position relatively to the anchor.
|
|
172
|
+
*/
|
|
173
|
+
position: _propTypes.default.oneOf(['bottom', 'left', 'right', 'top']),
|
|
165
174
|
/**
|
|
166
175
|
* The props used for each slot inside the Popper.
|
|
167
176
|
* @default {}
|
|
@@ -8,8 +8,9 @@ exports.default = void 0;
|
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
const getSeriesWithDefaultValues = (seriesData, seriesIndex, colors) => {
|
|
10
10
|
return (0, _extends2.default)({
|
|
11
|
-
id: seriesData.id ?? `auto-generated-id-${seriesIndex}`,
|
|
12
11
|
color: colors[seriesIndex % colors.length]
|
|
13
|
-
}, seriesData
|
|
12
|
+
}, seriesData, {
|
|
13
|
+
id: seriesData.id ?? `auto-generated-id-${seriesIndex}`
|
|
14
|
+
});
|
|
14
15
|
};
|
|
15
16
|
var _default = exports.default = getSeriesWithDefaultValues;
|
|
@@ -10,11 +10,13 @@ var _seriesProcessor = _interopRequireDefault(require("./seriesProcessor"));
|
|
|
10
10
|
var _getColor = _interopRequireDefault(require("./getColor"));
|
|
11
11
|
var _tooltip = _interopRequireDefault(require("./tooltip"));
|
|
12
12
|
var _getSeriesWithDefaultValues = _interopRequireDefault(require("./getSeriesWithDefaultValues"));
|
|
13
|
+
var _tooltipPosition = _interopRequireDefault(require("./tooltipPosition"));
|
|
13
14
|
const seriesConfig = exports.seriesConfig = {
|
|
14
15
|
seriesProcessor: _seriesProcessor.default,
|
|
15
16
|
colorProcessor: _getColor.default,
|
|
16
17
|
legendGetter: () => [],
|
|
17
18
|
tooltipGetter: _tooltip.default,
|
|
19
|
+
tooltipItemPositionGetter: _tooltipPosition.default,
|
|
18
20
|
xExtremumGetter: _extremums.getBaseExtremum,
|
|
19
21
|
yExtremumGetter: _extremums.getBaseExtremum,
|
|
20
22
|
getSeriesWithDefaultValues: _getSeriesWithDefaultValues.default
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _internals = require("@mui/x-charts/internals");
|
|
8
|
+
const tooltipItemPositionGetter = params => {
|
|
9
|
+
const {
|
|
10
|
+
series,
|
|
11
|
+
identifier,
|
|
12
|
+
axesConfig,
|
|
13
|
+
placement
|
|
14
|
+
} = params;
|
|
15
|
+
if (!identifier || identifier.dataIndex === undefined) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
const itemSeries = series.heatmap?.series[identifier.seriesId];
|
|
19
|
+
if (itemSeries == null) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
if (axesConfig.x === undefined || axesConfig.y === undefined || !(0, _internals.isBandScaleConfig)(axesConfig.x) || !(0, _internals.isBandScaleConfig)(axesConfig.y)) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
const [xIndex, yIndex] = itemSeries.data[identifier.dataIndex];
|
|
26
|
+
const x = axesConfig.x.scale(axesConfig.x.scale.domain()[xIndex]);
|
|
27
|
+
const y = axesConfig.y.scale(axesConfig.y.scale.domain()[yIndex]);
|
|
28
|
+
if (x === undefined || y === undefined) {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
const width = axesConfig.x.scale.bandwidth();
|
|
32
|
+
const height = axesConfig.y.scale.bandwidth();
|
|
33
|
+
switch (placement) {
|
|
34
|
+
case 'bottom':
|
|
35
|
+
return {
|
|
36
|
+
x: x + width / 2,
|
|
37
|
+
y: y + height
|
|
38
|
+
};
|
|
39
|
+
case 'left':
|
|
40
|
+
return {
|
|
41
|
+
x,
|
|
42
|
+
y: y + height / 2
|
|
43
|
+
};
|
|
44
|
+
case 'right':
|
|
45
|
+
return {
|
|
46
|
+
x: x + width,
|
|
47
|
+
y: y + height / 2
|
|
48
|
+
};
|
|
49
|
+
case 'top':
|
|
50
|
+
default:
|
|
51
|
+
return {
|
|
52
|
+
x: x + width / 2,
|
|
53
|
+
y
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
var _default = exports.default = tooltipItemPositionGetter;
|