@mui/x-data-grid-pro 8.28.0 → 8.28.2
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 +80 -3
- package/DataGridPro/DataGridPro.js +1 -1
- package/esm/DataGridPro/DataGridPro.js +1 -1
- package/esm/hooks/features/serverSideLazyLoader/useGridDataSourceLazyLoader.js +29 -1
- package/esm/index.js +1 -1
- package/hooks/features/serverSideLazyLoader/useGridDataSourceLazyLoader.js +28 -0
- package/index.js +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -5,13 +5,90 @@
|
|
|
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.28.2
|
|
9
|
+
|
|
10
|
+
_Apr 1, 2026_
|
|
11
|
+
|
|
12
|
+
We'd like to extend a big thank you to the 4 contributors who made this release possible.
|
|
13
|
+
|
|
14
|
+
Special thanks go out to this community member for their valuable contribution:
|
|
15
|
+
@mixelburg, @sibananda485
|
|
16
|
+
|
|
17
|
+
The following team members contributed to this release:
|
|
18
|
+
@dav-is, @JCQuintas
|
|
19
|
+
|
|
20
|
+
### Data Grid
|
|
21
|
+
|
|
22
|
+
#### `@mui/x-data-grid@8.28.2`
|
|
23
|
+
|
|
24
|
+
- [DataGrid] Export `GridColumnUnsortedIconProps` for custom column icon slots (#21898) @mixelburg
|
|
25
|
+
|
|
26
|
+
#### `@mui/x-data-grid-pro@8.28.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
27
|
+
|
|
28
|
+
Same changes as in `@mui/x-data-grid@8.28.2`.
|
|
29
|
+
|
|
30
|
+
#### `@mui/x-data-grid-premium@8.28.2` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
31
|
+
|
|
32
|
+
Same changes as in `@mui/x-data-grid-pro@8.28.2`, plus:
|
|
33
|
+
|
|
34
|
+
- [DataGridPremium] Fix clipboard paste issue in portal (#21949) @sibananda485
|
|
35
|
+
|
|
36
|
+
### Charts
|
|
37
|
+
|
|
38
|
+
#### `@mui/x-charts@8.28.2`
|
|
39
|
+
|
|
40
|
+
- [charts] Fix zoom slider preview with discard filter mode (#21906) @JCQuintas
|
|
41
|
+
|
|
42
|
+
#### `@mui/x-charts-pro@8.28.2` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
43
|
+
|
|
44
|
+
Same changes as in `@mui/x-charts@8.28.2`.
|
|
45
|
+
|
|
46
|
+
#### `@mui/x-charts-premium@8.28.2` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
47
|
+
|
|
48
|
+
Same changes as in `@mui/x-charts-pro@8.28.2`.
|
|
49
|
+
|
|
50
|
+
### Docs
|
|
51
|
+
|
|
52
|
+
- [docs] Fix JSDOM → jsdom casing (#21908) @JCQuintas
|
|
53
|
+
|
|
54
|
+
### Core
|
|
55
|
+
|
|
56
|
+
- [docs-infra] Set `SEARCH_INDEX` Env for v8 (#21875) @dav-is
|
|
57
|
+
|
|
58
|
+
## 8.28.1
|
|
59
|
+
|
|
60
|
+
_Mar 26, 2026_
|
|
61
|
+
|
|
62
|
+
We'd like to extend a big thank you to the 2 contributors who made this release possible.
|
|
63
|
+
|
|
64
|
+
The following team members contributed to this release:
|
|
65
|
+
@arminmeh, @cherniavskii
|
|
66
|
+
|
|
67
|
+
### Data Grid
|
|
68
|
+
|
|
69
|
+
#### `@mui/x-data-grid@8.28.1`
|
|
70
|
+
|
|
71
|
+
- [DataGrid] Prevent repeated `hasScrollbar` state updates (#21847) @arminmeh
|
|
72
|
+
|
|
73
|
+
#### `@mui/x-data-grid-pro@8.28.1` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
74
|
+
|
|
75
|
+
Same changes as in `@mui/x-data-grid@8.28.1`, plus:
|
|
76
|
+
|
|
77
|
+
- [DataGridPro] `fetchRows()` API's default `start` and `end` params based on scroll position with lazy loading (#21811) @arminmeh
|
|
78
|
+
|
|
79
|
+
#### `@mui/x-data-grid-premium@8.28.1` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
80
|
+
|
|
81
|
+
Same changes as in `@mui/x-data-grid-pro@8.28.1`.
|
|
82
|
+
|
|
83
|
+
### Core
|
|
84
|
+
|
|
85
|
+
- [internal] Remove headless data grid packages (#21848) @cherniavskii
|
|
86
|
+
|
|
8
87
|
## 8.28.0
|
|
9
88
|
|
|
10
89
|
_Mar 19, 2026_
|
|
11
90
|
|
|
12
|
-
We'd like to extend a big thank you to the 5 contributors who made this release possible.
|
|
13
|
-
|
|
14
|
-
TODO INSERT HIGHLIGHTS
|
|
91
|
+
We'd like to extend a big thank you to the 5 contributors who made this release possible.
|
|
15
92
|
|
|
16
93
|
The following team members contributed to this release:
|
|
17
94
|
@alexfauquette, @brijeshb42, @Janpot, @JCQuintas, @sai6855
|
|
@@ -34,7 +34,7 @@ const configuration = {
|
|
|
34
34
|
useFilterValueGetter: apiRef => apiRef.current.getRowValue
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
|
-
const releaseInfo = "
|
|
37
|
+
const releaseInfo = "MTc3NTAwMTYwMDAwMA==";
|
|
38
38
|
const watermark = /*#__PURE__*/(0, _jsxRuntime.jsx)(_xLicense.Watermark, {
|
|
39
39
|
packageName: "x-data-grid-pro",
|
|
40
40
|
releaseInfo: releaseInfo
|
|
@@ -27,7 +27,7 @@ const configuration = {
|
|
|
27
27
|
useFilterValueGetter: apiRef => apiRef.current.getRowValue
|
|
28
28
|
}
|
|
29
29
|
};
|
|
30
|
-
const releaseInfo = "
|
|
30
|
+
const releaseInfo = "MTc3NTAwMTYwMDAwMA==";
|
|
31
31
|
const watermark = /*#__PURE__*/_jsx(Watermark, {
|
|
32
32
|
packageName: "x-data-grid-pro",
|
|
33
33
|
releaseInfo: releaseInfo
|
|
@@ -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.js";
|
|
12
12
|
import { GRID_SKELETON_ROW_ROOT_ID } from "../lazyLoader/useGridLazyLoaderPreProcessors.js";
|
|
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/esm/index.js
CHANGED
|
@@ -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));
|
package/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-data-grid-pro",
|
|
3
|
-
"version": "8.28.
|
|
3
|
+
"version": "8.28.2",
|
|
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",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"@mui/utils": "^7.3.5",
|
|
38
38
|
"clsx": "^2.1.1",
|
|
39
39
|
"prop-types": "^15.8.1",
|
|
40
|
-
"@mui/x-data-grid": "8.28.
|
|
40
|
+
"@mui/x-data-grid": "8.28.2",
|
|
41
41
|
"@mui/x-internals": "8.26.0",
|
|
42
42
|
"@mui/x-license": "8.26.0"
|
|
43
43
|
},
|