@mui/x-data-grid-pro 9.0.0-alpha.4 → 9.0.0-beta.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/CHANGELOG.md +107 -1
- package/DataGridPro/DataGridPro.js +2 -2
- package/DataGridPro/DataGridPro.mjs +2 -2
- package/hooks/features/serverSideLazyLoader/useGridDataSourceLazyLoader.js +28 -0
- package/hooks/features/serverSideLazyLoader/useGridDataSourceLazyLoader.mjs +29 -1
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,111 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 9.0.0-beta.0
|
|
4
|
+
|
|
5
|
+
<!-- generated comparing v9.0.0-alpha.4..master -->
|
|
6
|
+
|
|
7
|
+
_Mar 27, 2026_
|
|
8
|
+
|
|
9
|
+
We'd like to extend a big thank you to the 10 contributors who made this release possible. Here are some highlights ✨:
|
|
10
|
+
|
|
11
|
+
- 🔊 New Charts voiceover component for improved screen reader support
|
|
12
|
+
- ⌨️ Charts keyboard navigation improvements: axis tooltip now shows when navigating with the keyboard
|
|
13
|
+
- 📊 Charts axes now can be set to automatically resize to fit their content
|
|
14
|
+
- 📝 New `rowCheckbox` slot in Data Grid for easier checkbox column customization
|
|
15
|
+
- ⚡️ `fetchRows()` API in Data Grid Pro now defaults `start` and `end` based on scroll position with lazy loading
|
|
16
|
+
- 🐞 Bugfixes and internal improvements
|
|
17
|
+
|
|
18
|
+
The following team members contributed to this release:
|
|
19
|
+
@aemartos, @alexfauquette, @arminmeh, @cherniavskii, @Janpot, @JCQuintas, @mapache-salvaje, @michelengelen, @noraleonte, @rita-codes
|
|
20
|
+
|
|
21
|
+
### Data Grid
|
|
22
|
+
|
|
23
|
+
#### `@mui/x-data-grid@9.0.0-beta.0`
|
|
24
|
+
|
|
25
|
+
- [DataGrid] Add `rowCheckbox` slot for easier customization (#21797) @michelengelen
|
|
26
|
+
- [DataGrid] Prevent repeated `hasScrollbar` state updates (#21820) @arminmeh
|
|
27
|
+
|
|
28
|
+
#### `@mui/x-data-grid-pro@9.0.0-beta.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
29
|
+
|
|
30
|
+
Same changes as in `@mui/x-data-grid@9.0.0-beta.0`, plus:
|
|
31
|
+
|
|
32
|
+
- [DataGridPro] `fetchRows()` API's default `start` and `end` params based on scroll position with lazy loading (#21742) @arminmeh
|
|
33
|
+
|
|
34
|
+
#### `@mui/x-data-grid-premium@9.0.0-beta.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
35
|
+
|
|
36
|
+
Same changes as in `@mui/x-data-grid-pro@9.0.0-beta.0`.
|
|
37
|
+
|
|
38
|
+
### Date and Time Pickers
|
|
39
|
+
|
|
40
|
+
#### `@mui/x-date-pickers@9.0.0-beta.0`
|
|
41
|
+
|
|
42
|
+
Internal changes.
|
|
43
|
+
|
|
44
|
+
#### `@mui/x-date-pickers-pro@9.0.0-beta.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
45
|
+
|
|
46
|
+
Same changes as in `@mui/x-date-pickers@9.0.0-beta.0`.
|
|
47
|
+
|
|
48
|
+
### Charts
|
|
49
|
+
|
|
50
|
+
#### `@mui/x-charts@9.0.0-beta.0`
|
|
51
|
+
|
|
52
|
+
- [charts] Add `className` prop to Pro chart plot components (#21793) @JCQuintas
|
|
53
|
+
- [charts] Add experimental position-based pointer interaction for line series (#21809) @JCQuintas
|
|
54
|
+
- [charts] Add l10n to the bar accessibility (#21815) @alexfauquette
|
|
55
|
+
- [charts] Add localization for the basic charts (#21822) @alexfauquette
|
|
56
|
+
- [charts] Add voiceover component (#21344) @alexfauquette
|
|
57
|
+
- [charts] Allow axes to automatically resize to content (#21087) @JCQuintas
|
|
58
|
+
- [charts] Document multiple use-cases for references (#21768) @alexfauquette
|
|
59
|
+
- [charts] Remove compatibility layer for React vs native events (#21780) @JCQuintas
|
|
60
|
+
- [charts] Remove deprecated `barLabel` props (#21783) @alexfauquette
|
|
61
|
+
- [charts] Show axis tooltip when navigating with keyboard (#21689) @Copilot
|
|
62
|
+
|
|
63
|
+
#### `@mui/x-charts-pro@9.0.0-beta.0` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
64
|
+
|
|
65
|
+
Same changes as in `@mui/x-charts@9.0.0-beta.0`.
|
|
66
|
+
|
|
67
|
+
#### `@mui/x-charts-premium@9.0.0-beta.0` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
68
|
+
|
|
69
|
+
Same changes as in `@mui/x-charts-pro@9.0.0-beta.0`.
|
|
70
|
+
|
|
71
|
+
### Tree View
|
|
72
|
+
|
|
73
|
+
#### `@mui/x-tree-view@9.0.0-alpha.4`
|
|
74
|
+
|
|
75
|
+
Internal changes.
|
|
76
|
+
|
|
77
|
+
#### `@mui/x-tree-view-pro@9.0.0-alpha.4` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
78
|
+
|
|
79
|
+
Same changes as in `@mui/x-tree-view@9.0.0-alpha.4`.
|
|
80
|
+
|
|
81
|
+
### Codemod
|
|
82
|
+
|
|
83
|
+
#### `@mui/x-codemod@9.0.0-alpha.4`
|
|
84
|
+
|
|
85
|
+
Internal changes.
|
|
86
|
+
|
|
87
|
+
### Docs
|
|
88
|
+
|
|
89
|
+
- [docs] Document how to customize voiceover announcement (#21833) @alexfauquette
|
|
90
|
+
- [docs] Remove Discord mention from docs (#21855) @mapache-salvaje
|
|
91
|
+
- [docs] Remove stabilized experimental feature from demo (#21869) @JCQuintas
|
|
92
|
+
- [docs] Update telemetry guide to reflect pseudonymous data collection and license compliance (#21812) @aemartos
|
|
93
|
+
- [docs] Revise the Sparkline doc (#21614) @mapache-salvaje
|
|
94
|
+
- [docs] Revise the Gauge doc (#21673) @mapache-salvaje
|
|
95
|
+
- [docs] Revise the Heatmap doc (#21676) @mapache-salvaje
|
|
96
|
+
|
|
97
|
+
### Core
|
|
98
|
+
|
|
99
|
+
- [code-infra] Remove unused deps and unify es-toolkit via catalog (#21840) @Janpot
|
|
100
|
+
- [code-infra] Update @mui/internal-bundle-size-checker to canary.68 (#21836) @Janpot
|
|
101
|
+
- [code-infra] Update next (#21837) @Janpot
|
|
102
|
+
- [internal] Remove headless data grid packages (#21843) @cherniavskii
|
|
103
|
+
|
|
104
|
+
### Miscellaneous
|
|
105
|
+
|
|
106
|
+
- Add @romgrk to CODEOWNERS for `x-virtualizer` and `x-internals` (#21819) @Copilot
|
|
107
|
+
- [x-license] add 2022 plan version (#21814) @aemartos
|
|
108
|
+
|
|
3
109
|
## 9.0.0-alpha.4
|
|
4
110
|
|
|
5
111
|
_Mar 19, 2026_
|
|
@@ -59,7 +165,7 @@ Same changes as in `@mui/x-date-pickers@9.0.0-alpha.4`.
|
|
|
59
165
|
- [charts] Remove deprecated `useMouseTracker()` (#21787) @alexfauquette
|
|
60
166
|
- [charts] Remove deprecated classes (#21775) @alexfauquette
|
|
61
167
|
- [charts] Remove deprecated props from PieArcLabel animation (#21789) @alexfauquette
|
|
62
|
-
- [charts] Remove get
|
|
168
|
+
- [charts] Remove get\*UtilityClass from public exports (#21769) @JCQuintas
|
|
63
169
|
- [charts] Remove the deprecated `disableHover` property (#21785) @alexfauquette
|
|
64
170
|
- [charts] Remove the deprecated `message` prop (#21784) @alexfauquette
|
|
65
171
|
- [charts] Remove deprecated props about voronoi (#21796) @alexfauquette
|
|
@@ -35,8 +35,8 @@ const configuration = {
|
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
const packageInfo = {
|
|
38
|
-
releaseDate: "
|
|
39
|
-
version: "9.0.0-
|
|
38
|
+
releaseDate: "MTc3NDU2OTYwMDAwMA==",
|
|
39
|
+
version: "9.0.0-beta.0",
|
|
40
40
|
name: 'x-data-grid-pro'
|
|
41
41
|
};
|
|
42
42
|
const watermark = /*#__PURE__*/(0, _jsxRuntime.jsx)(_internals.Watermark, {
|
|
@@ -28,8 +28,8 @@ const configuration = {
|
|
|
28
28
|
}
|
|
29
29
|
};
|
|
30
30
|
const packageInfo = {
|
|
31
|
-
releaseDate: "
|
|
32
|
-
version: "9.0.0-
|
|
31
|
+
releaseDate: "MTc3NDU2OTYwMDAwMA==",
|
|
32
|
+
version: "9.0.0-beta.0",
|
|
33
33
|
name: 'x-data-grid-pro'
|
|
34
34
|
};
|
|
35
35
|
const watermark = /*#__PURE__*/_jsx(Watermark, {
|
|
@@ -463,6 +463,34 @@ const useGridDataSourceLazyLoader = (privateApiRef, props) => {
|
|
|
463
463
|
const handleStrategyActivityChange = React.useCallback(() => {
|
|
464
464
|
setLazyLoadingRowsUpdateStrategyActive(privateApiRef.current.getActiveStrategy(_internals.GridStrategyGroup.DataSource) === _internals.DataSourceRowsUpdateStrategy.LazyLoading);
|
|
465
465
|
}, [privateApiRef]);
|
|
466
|
+
|
|
467
|
+
// Provide render context based start/end for lazy loading so that
|
|
468
|
+
// `apiRef.current.dataSource.fetchRows()` without params
|
|
469
|
+
// re-fetches the currently visible range instead of always using the
|
|
470
|
+
// pagination-model state.
|
|
471
|
+
const addGetRowsParams = React.useCallback(params => {
|
|
472
|
+
if (!lazyLoadingRowsUpdateStrategyActive) {
|
|
473
|
+
return params;
|
|
474
|
+
}
|
|
475
|
+
const renderContext = (0, _internals.gridRenderContextSelector)(privateApiRef);
|
|
476
|
+
// On initial load the grid hasn't rendered yet — keep the defaults.
|
|
477
|
+
if (renderContext.lastRowIndex === 0) {
|
|
478
|
+
return params;
|
|
479
|
+
}
|
|
480
|
+
const paginationModel = (0, _xDataGrid.gridPaginationModelSelector)(privateApiRef);
|
|
481
|
+
const adjustedParams = (0, _utils.adjustRowParams)({
|
|
482
|
+
start: renderContext.firstRowIndex,
|
|
483
|
+
end: renderContext.lastRowIndex - 1
|
|
484
|
+
}, {
|
|
485
|
+
pageSize: paginationModel.pageSize,
|
|
486
|
+
rowCount: privateApiRef.current.state.pagination.rowCount
|
|
487
|
+
});
|
|
488
|
+
return (0, _extends2.default)({}, params, {
|
|
489
|
+
start: adjustedParams.start,
|
|
490
|
+
end: adjustedParams.end
|
|
491
|
+
});
|
|
492
|
+
}, [privateApiRef, lazyLoadingRowsUpdateStrategyActive]);
|
|
493
|
+
(0, _internals.useGridRegisterPipeProcessor)(privateApiRef, 'getRowsParams', addGetRowsParams);
|
|
466
494
|
(0, _internals.useGridRegisterStrategyProcessor)(privateApiRef, _internals.DataSourceRowsUpdateStrategy.LazyLoading, 'dataSourceRowsUpdate', handleDataUpdate);
|
|
467
495
|
(0, _xDataGrid.useGridEvent)(privateApiRef, 'strategyAvailabilityChange', handleStrategyActivityChange);
|
|
468
496
|
(0, _xDataGrid.useGridEvent)(privateApiRef, 'rowCountChange', (0, _internals.runIf)(lazyLoadingRowsUpdateStrategyActive, handleRowCountChange));
|
|
@@ -7,7 +7,7 @@ import { isDeepEqual } from '@mui/x-internals/isDeepEqual';
|
|
|
7
7
|
import useEventCallback from '@mui/utils/useEventCallback';
|
|
8
8
|
import debounce from '@mui/utils/debounce';
|
|
9
9
|
import { useGridEvent, gridSortModelSelector, gridFilterModelSelector, GRID_ROOT_GROUP_ID, gridPaginationModelSelector, gridFilteredSortedRowIdsSelector, gridRowIdSelector } from '@mui/x-data-grid';
|
|
10
|
-
import { getVisibleRows, gridRenderContextSelector, GridStrategyGroup, useGridRegisterStrategyProcessor, runIf, DataSourceRowsUpdateStrategy } from '@mui/x-data-grid/internals';
|
|
10
|
+
import { getVisibleRows, gridRenderContextSelector, GridStrategyGroup, useGridRegisterStrategyProcessor, useGridRegisterPipeProcessor, runIf, DataSourceRowsUpdateStrategy } from '@mui/x-data-grid/internals';
|
|
11
11
|
import { findSkeletonRowsSection, adjustRowParams } from "../lazyLoader/utils.mjs";
|
|
12
12
|
import { GRID_SKELETON_ROW_ROOT_ID } from "../lazyLoader/useGridLazyLoaderPreProcessors.mjs";
|
|
13
13
|
var LoadingTrigger = /*#__PURE__*/function (LoadingTrigger) {
|
|
@@ -456,6 +456,34 @@ export const useGridDataSourceLazyLoader = (privateApiRef, props) => {
|
|
|
456
456
|
const handleStrategyActivityChange = React.useCallback(() => {
|
|
457
457
|
setLazyLoadingRowsUpdateStrategyActive(privateApiRef.current.getActiveStrategy(GridStrategyGroup.DataSource) === DataSourceRowsUpdateStrategy.LazyLoading);
|
|
458
458
|
}, [privateApiRef]);
|
|
459
|
+
|
|
460
|
+
// Provide render context based start/end for lazy loading so that
|
|
461
|
+
// `apiRef.current.dataSource.fetchRows()` without params
|
|
462
|
+
// re-fetches the currently visible range instead of always using the
|
|
463
|
+
// pagination-model state.
|
|
464
|
+
const addGetRowsParams = React.useCallback(params => {
|
|
465
|
+
if (!lazyLoadingRowsUpdateStrategyActive) {
|
|
466
|
+
return params;
|
|
467
|
+
}
|
|
468
|
+
const renderContext = gridRenderContextSelector(privateApiRef);
|
|
469
|
+
// On initial load the grid hasn't rendered yet — keep the defaults.
|
|
470
|
+
if (renderContext.lastRowIndex === 0) {
|
|
471
|
+
return params;
|
|
472
|
+
}
|
|
473
|
+
const paginationModel = gridPaginationModelSelector(privateApiRef);
|
|
474
|
+
const adjustedParams = adjustRowParams({
|
|
475
|
+
start: renderContext.firstRowIndex,
|
|
476
|
+
end: renderContext.lastRowIndex - 1
|
|
477
|
+
}, {
|
|
478
|
+
pageSize: paginationModel.pageSize,
|
|
479
|
+
rowCount: privateApiRef.current.state.pagination.rowCount
|
|
480
|
+
});
|
|
481
|
+
return _extends({}, params, {
|
|
482
|
+
start: adjustedParams.start,
|
|
483
|
+
end: adjustedParams.end
|
|
484
|
+
});
|
|
485
|
+
}, [privateApiRef, lazyLoadingRowsUpdateStrategyActive]);
|
|
486
|
+
useGridRegisterPipeProcessor(privateApiRef, 'getRowsParams', addGetRowsParams);
|
|
459
487
|
useGridRegisterStrategyProcessor(privateApiRef, DataSourceRowsUpdateStrategy.LazyLoading, 'dataSourceRowsUpdate', handleDataUpdate);
|
|
460
488
|
useGridEvent(privateApiRef, 'strategyAvailabilityChange', handleStrategyActivityChange);
|
|
461
489
|
useGridEvent(privateApiRef, 'rowCountChange', runIf(lazyLoadingRowsUpdateStrategyActive, handleRowCountChange));
|
package/index.js
CHANGED
package/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-data-grid-pro",
|
|
3
|
-
"version": "9.0.0-
|
|
3
|
+
"version": "9.0.0-beta.0",
|
|
4
4
|
"author": "MUI Team",
|
|
5
5
|
"description": "The Pro plan edition of the MUI X Data Grid components.",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"clsx": "^2.1.1",
|
|
39
39
|
"prop-types": "^15.8.1",
|
|
40
40
|
"@mui/x-internals": "9.0.0-alpha.4",
|
|
41
|
-
"@mui/x-data-grid": "9.0.0-
|
|
42
|
-
"@mui/x-license": "9.0.0-
|
|
41
|
+
"@mui/x-data-grid": "9.0.0-beta.0",
|
|
42
|
+
"@mui/x-license": "9.0.0-beta.0"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"@emotion/react": "^11.9.0",
|