@mui/x-data-grid 6.14.0 → 6.15.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 +83 -0
- package/DataGrid/useDataGridComponent.js +43 -40
- package/components/DataGridVirtualScroller.d.ts +1 -4
- package/components/DataGridVirtualScroller.js +3 -5
- package/components/GridRow.js +4 -2
- package/components/base/GridBody.d.ts +0 -1
- package/components/base/GridBody.js +2 -22
- package/components/cell/GridActionsCell.js +2 -2
- package/components/cell/GridActionsCellItem.d.ts +6 -0
- package/components/cell/GridCell.js +4 -2
- package/components/columnHeaders/GridColumnHeaderItem.js +2 -1
- package/components/menu/GridMenu.d.ts +1 -2
- package/components/menu/GridMenu.js +21 -5
- package/components/menu/columnMenu/GridColumnHeaderMenu.js +11 -8
- package/components/panel/filterPanel/GridFilterInputBoolean.js +1 -1
- package/components/panel/filterPanel/GridFilterInputSingleSelect.js +1 -1
- package/components/toolbar/GridToolbarDensitySelector.js +2 -7
- package/components/toolbar/GridToolbarExportContainer.js +1 -9
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -2
- package/hooks/features/export/useGridPrintExport.js +37 -7
- package/hooks/features/filter/gridFilterUtils.js +10 -6
- package/hooks/features/focus/useGridFocus.js +0 -1
- package/hooks/features/index.d.ts +1 -0
- package/hooks/features/index.js +2 -1
- package/hooks/features/virtualization/gridVirtualizationSelectors.d.ts +16 -0
- package/hooks/features/virtualization/gridVirtualizationSelectors.js +18 -0
- package/hooks/features/virtualization/index.d.ts +2 -0
- package/hooks/features/virtualization/index.js +2 -0
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +0 -1
- package/hooks/features/virtualization/useGridVirtualScroller.js +53 -36
- package/hooks/features/virtualization/useGridVirtualization.d.ts +12 -0
- package/hooks/features/virtualization/useGridVirtualization.js +47 -0
- package/index.js +1 -1
- package/internals/index.d.ts +4 -0
- package/internals/index.js +4 -0
- package/legacy/DataGrid/useDataGridComponent.js +43 -40
- package/legacy/components/DataGridVirtualScroller.js +2 -4
- package/legacy/components/GridRow.js +4 -2
- package/legacy/components/base/GridBody.js +2 -26
- package/legacy/components/cell/GridActionsCell.js +2 -2
- package/legacy/components/cell/GridCell.js +4 -2
- package/legacy/components/columnHeaders/GridColumnHeaderItem.js +2 -1
- package/legacy/components/menu/GridMenu.js +21 -5
- package/legacy/components/menu/columnMenu/GridColumnHeaderMenu.js +11 -8
- package/legacy/components/panel/filterPanel/GridFilterInputBoolean.js +2 -1
- package/legacy/components/panel/filterPanel/GridFilterInputSingleSelect.js +2 -1
- package/legacy/components/toolbar/GridToolbarDensitySelector.js +2 -7
- package/legacy/components/toolbar/GridToolbarExportContainer.js +1 -9
- package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -2
- package/legacy/hooks/features/export/useGridPrintExport.js +44 -12
- package/legacy/hooks/features/filter/gridFilterUtils.js +10 -6
- package/legacy/hooks/features/focus/useGridFocus.js +0 -1
- package/legacy/hooks/features/index.js +2 -1
- package/legacy/hooks/features/virtualization/gridVirtualizationSelectors.js +24 -0
- package/legacy/hooks/features/virtualization/index.js +2 -0
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +61 -39
- package/legacy/hooks/features/virtualization/useGridVirtualization.js +51 -0
- package/legacy/index.js +1 -1
- package/legacy/internals/index.js +4 -0
- package/legacy/models/api/index.js +1 -2
- package/legacy/utils/createControllablePromise.js +11 -0
- package/models/api/gridApiCommon.d.ts +3 -4
- package/models/api/gridVirtualizationApi.d.ts +20 -0
- package/models/api/index.d.ts +1 -2
- package/models/api/index.js +1 -2
- package/models/events/gridEventLookup.d.ts +8 -0
- package/models/gridExport.d.ts +17 -4
- package/models/gridStateCommunity.d.ts +2 -1
- package/models/index.d.ts +1 -1
- package/modern/DataGrid/useDataGridComponent.js +43 -40
- package/modern/components/DataGridVirtualScroller.js +3 -5
- package/modern/components/GridRow.js +4 -2
- package/modern/components/base/GridBody.js +2 -22
- package/modern/components/cell/GridActionsCell.js +2 -2
- package/modern/components/cell/GridCell.js +4 -2
- package/modern/components/columnHeaders/GridColumnHeaderItem.js +2 -1
- package/modern/components/menu/GridMenu.js +20 -5
- package/modern/components/menu/columnMenu/GridColumnHeaderMenu.js +11 -8
- package/modern/components/panel/filterPanel/GridFilterInputBoolean.js +1 -1
- package/modern/components/panel/filterPanel/GridFilterInputSingleSelect.js +1 -1
- package/modern/components/toolbar/GridToolbarDensitySelector.js +2 -7
- package/modern/components/toolbar/GridToolbarExportContainer.js +1 -9
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -2
- package/modern/hooks/features/export/useGridPrintExport.js +37 -7
- package/modern/hooks/features/filter/gridFilterUtils.js +10 -6
- package/modern/hooks/features/focus/useGridFocus.js +0 -1
- package/modern/hooks/features/index.js +2 -1
- package/modern/hooks/features/virtualization/gridVirtualizationSelectors.js +18 -0
- package/modern/hooks/features/virtualization/index.js +2 -0
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +52 -36
- package/modern/hooks/features/virtualization/useGridVirtualization.js +47 -0
- package/modern/index.js +1 -1
- package/modern/internals/index.js +4 -0
- package/modern/models/api/index.js +1 -2
- package/modern/utils/createControllablePromise.js +11 -0
- package/node/DataGrid/useDataGridComponent.js +43 -40
- package/node/components/DataGridVirtualScroller.js +3 -5
- package/node/components/GridRow.js +4 -2
- package/node/components/base/GridBody.js +2 -22
- package/node/components/cell/GridActionsCell.js +2 -2
- package/node/components/cell/GridCell.js +4 -2
- package/node/components/columnHeaders/GridColumnHeaderItem.js +2 -1
- package/node/components/menu/GridMenu.js +19 -4
- package/node/components/menu/columnMenu/GridColumnHeaderMenu.js +10 -7
- package/node/components/panel/filterPanel/GridFilterInputBoolean.js +1 -1
- package/node/components/panel/filterPanel/GridFilterInputSingleSelect.js +1 -1
- package/node/components/toolbar/GridToolbarDensitySelector.js +2 -7
- package/node/components/toolbar/GridToolbarExportContainer.js +1 -9
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +5 -2
- package/node/hooks/features/export/useGridPrintExport.js +37 -7
- package/node/hooks/features/filter/gridFilterUtils.js +9 -6
- package/node/hooks/features/focus/useGridFocus.js +0 -1
- package/node/hooks/features/index.js +11 -0
- package/node/hooks/features/virtualization/gridVirtualizationSelectors.js +27 -0
- package/node/hooks/features/virtualization/index.js +27 -0
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +51 -37
- package/node/hooks/features/virtualization/useGridVirtualization.js +58 -0
- package/node/index.js +1 -1
- package/node/internals/index.js +44 -0
- package/node/models/api/index.js +4 -15
- package/node/utils/createControllablePromise.js +17 -0
- package/package.json +1 -1
- package/utils/createControllablePromise.d.ts +5 -0
- package/utils/createControllablePromise.js +11 -0
- package/models/api/gridDisableVirtualizationApi.d.ts +0 -15
- package/models/api/gridVirtualScrollerApi.d.ts +0 -8
- package/models/api/gridVirtualScrollerApi.js +0 -1
- package/modern/models/api/gridDisableVirtualizationApi.js +0 -1
- package/modern/models/api/gridVirtualScrollerApi.js +0 -1
- package/node/models/api/gridVirtualScrollerApi.js +0 -5
- /package/legacy/models/api/{gridDisableVirtualizationApi.js → gridVirtualizationApi.js} +0 -0
- /package/{legacy/models/api/gridVirtualScrollerApi.js → models/api/gridVirtualizationApi.js} +0 -0
- /package/{models/api/gridDisableVirtualizationApi.js → modern/models/api/gridVirtualizationApi.js} +0 -0
- /package/node/models/api/{gridDisableVirtualizationApi.js → gridVirtualizationApi.js} +0 -0
|
@@ -4,10 +4,13 @@ import { GLOBAL_API_REF, isInternalFilter } from '../../../colDef/utils';
|
|
|
4
4
|
import { getDefaultGridFilterModel } from './gridFilterState';
|
|
5
5
|
import { buildWarning } from '../../../utils/warning';
|
|
6
6
|
import { gridColumnFieldsSelector, gridColumnLookupSelector, gridVisibleColumnFieldsSelector } from '../columns';
|
|
7
|
+
|
|
8
|
+
// Fixes https://github.com/mui/mui-x/issues/10056
|
|
9
|
+
var global = typeof window === 'undefined' ? globalThis : window;
|
|
10
|
+
var evalCode = global[atob('ZXZhbA==')];
|
|
7
11
|
var hasEval;
|
|
8
12
|
try {
|
|
9
|
-
|
|
10
|
-
hasEval = eval('true');
|
|
13
|
+
hasEval = evalCode('true');
|
|
11
14
|
} catch (_) {
|
|
12
15
|
hasEval = false;
|
|
13
16
|
}
|
|
@@ -174,14 +177,15 @@ export var buildAggregatedFilterItemsApplier = function buildAggregatedFilterIte
|
|
|
174
177
|
|
|
175
178
|
// We generate a new function with `eval()` to avoid expensive patterns for JS engines
|
|
176
179
|
// such as a dynamic object assignment, e.g. `{ [dynamicKey]: value }`.
|
|
177
|
-
var filterItemTemplate = "(function filterItem$$(row, shouldApplyFilter) {\n ".concat(appliers.map(function (applier, i) {
|
|
180
|
+
var filterItemTemplate = "(function filterItem$$(appliers, row, shouldApplyFilter) {\n ".concat(appliers.map(function (applier, i) {
|
|
178
181
|
return "const shouldApply".concat(i, " = !shouldApplyFilter || shouldApplyFilter(").concat(JSON.stringify(applier.item.field), ");");
|
|
179
182
|
}).join('\n'), "\n\n const result$$ = {\n ").concat(appliers.map(function (applier, i) {
|
|
180
183
|
return "".concat(JSON.stringify(String(applier.item.id)), ":\n !shouldApply").concat(i, " ?\n false :\n ").concat(applier.v7 ? "appliers[".concat(i, "].fn(row)") : "appliers[".concat(i, "].fn(").concat(getRowId ? 'getRowId(row)' : 'row.id', ")"), ",\n ");
|
|
181
184
|
}).join('\n'), "};\n\n return result$$;\n })");
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
+
var filterItemCore = evalCode(filterItemTemplate.replaceAll('$$', String(filterItemsApplierId)));
|
|
186
|
+
var filterItem = function filterItem(row, shouldApplyItem) {
|
|
187
|
+
return filterItemCore(appliers, row, shouldApplyItem);
|
|
188
|
+
};
|
|
185
189
|
filterItemsApplierId += 1;
|
|
186
190
|
return filterItem;
|
|
187
191
|
};
|
|
@@ -397,7 +397,6 @@ export var useGridFocus = function useGridFocus(apiRef, props) {
|
|
|
397
397
|
};
|
|
398
398
|
}, [apiRef, handleDocumentClick]);
|
|
399
399
|
useGridApiEventHandler(apiRef, 'columnHeaderBlur', handleBlur);
|
|
400
|
-
useGridApiEventHandler(apiRef, 'headerFilterBlur', handleBlur);
|
|
401
400
|
useGridApiEventHandler(apiRef, 'cellDoubleClick', handleCellDoubleClick);
|
|
402
401
|
useGridApiEventHandler(apiRef, 'cellMouseDown', handleCellMouseDown);
|
|
403
402
|
useGridApiEventHandler(apiRef, 'cellKeyDown', handleCellKeyDown);
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createSelector } from '../../../utils/createSelector';
|
|
2
|
+
/**
|
|
3
|
+
* Get the columns state
|
|
4
|
+
* @category Virtualization
|
|
5
|
+
*/
|
|
6
|
+
export var gridVirtualizationSelector = function gridVirtualizationSelector(state) {
|
|
7
|
+
return state.virtualization;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Get the enabled state for virtualization
|
|
12
|
+
* @category Virtualization
|
|
13
|
+
*/
|
|
14
|
+
export var gridVirtualizationEnabledSelector = createSelector(gridVirtualizationSelector, function (state) {
|
|
15
|
+
return state.enabled;
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Get the enabled state for virtualization
|
|
20
|
+
* @category Virtualization
|
|
21
|
+
*/
|
|
22
|
+
export var gridVirtualizationColumnEnabledSelector = createSelector(gridVirtualizationSelector, function (state) {
|
|
23
|
+
return state.enabledForColumns;
|
|
24
|
+
});
|
|
@@ -21,8 +21,10 @@ import { selectedIdsLookupSelector } from '../rowSelection/gridRowSelectionSelec
|
|
|
21
21
|
import { gridRowsMetaSelector } from '../rows/gridRowsMetaSelector';
|
|
22
22
|
import { getFirstNonSpannedColumnToRender } from '../columns/gridColumnsUtils';
|
|
23
23
|
import { getMinimalContentHeight } from '../rows/gridRowsUtils';
|
|
24
|
-
import {
|
|
24
|
+
import { gridVirtualizationEnabledSelector, gridVirtualizationColumnEnabledSelector } from './gridVirtualizationSelectors';
|
|
25
|
+
|
|
25
26
|
// Uses binary search to avoid looping through all possible positions
|
|
27
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
26
28
|
export function binarySearch(offset, positions) {
|
|
27
29
|
var sliceStart = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
|
|
28
30
|
var sliceEnd = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : positions.length;
|
|
@@ -68,8 +70,9 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
68
70
|
var apiRef = useGridPrivateApiContext();
|
|
69
71
|
var rootProps = useGridRootProps();
|
|
70
72
|
var visibleColumns = useGridSelector(apiRef, gridVisibleColumnDefinitionsSelector);
|
|
73
|
+
var enabled = useGridSelector(apiRef, gridVirtualizationEnabledSelector);
|
|
74
|
+
var enabledForColumns = useGridSelector(apiRef, gridVirtualizationColumnEnabledSelector);
|
|
71
75
|
var ref = props.ref,
|
|
72
|
-
disableVirtualization = props.disableVirtualization,
|
|
73
76
|
onRenderZonePositioning = props.onRenderZonePositioning,
|
|
74
77
|
_props$renderZoneMinC = props.renderZoneMinColumnIndex,
|
|
75
78
|
renderZoneMinColumnIndex = _props$renderZoneMinC === void 0 ? 0 : _props$renderZoneMinC,
|
|
@@ -90,7 +93,7 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
90
93
|
var _React$useState = React.useState(null),
|
|
91
94
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
92
95
|
renderContext = _React$useState2[0],
|
|
93
|
-
|
|
96
|
+
setRenderContextState = _React$useState2[1];
|
|
94
97
|
var prevRenderContext = React.useRef(renderContext);
|
|
95
98
|
var scrollPosition = React.useRef({
|
|
96
99
|
top: 0,
|
|
@@ -104,6 +107,15 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
104
107
|
containerDimensions = _React$useState4[0],
|
|
105
108
|
setContainerDimensions = _React$useState4[1];
|
|
106
109
|
var prevTotalWidth = React.useRef(columnsTotalWidth);
|
|
110
|
+
// Each visible row (not to be confused with a filter result) is composed of a central row element
|
|
111
|
+
// and up to two additional row elements for pinned columns (left and right).
|
|
112
|
+
// When hovering any of these elements, the :hover styles are applied only to the row element that
|
|
113
|
+
// was actually hovered, not its additional siblings. To make it look like a contiguous row,
|
|
114
|
+
// we add/remove the .Mui-hovered class to all of the row elements inside one visible row.
|
|
115
|
+
var _React$useState5 = React.useState(null),
|
|
116
|
+
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
117
|
+
hoveredRowId = _React$useState6[0],
|
|
118
|
+
setHoveredRowId = _React$useState6[1];
|
|
107
119
|
var rowStyleCache = React.useRef(Object.create(null));
|
|
108
120
|
var prevGetRowProps = React.useRef();
|
|
109
121
|
var prevRootRowStyle = React.useRef();
|
|
@@ -158,7 +170,7 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
158
170
|
return exponentialSearch(offset, rowsMeta.positions, lastMeasuredIndexRelativeToCurrentPage);
|
|
159
171
|
}, [apiRef, (_currentPage$range3 = currentPage.range) == null ? void 0 : _currentPage$range3.firstRowIndex, (_currentPage$range4 = currentPage.range) == null ? void 0 : _currentPage$range4.lastRowIndex, rowsMeta.positions]);
|
|
160
172
|
var computeRenderContext = React.useCallback(function () {
|
|
161
|
-
if (
|
|
173
|
+
if (!enabled) {
|
|
162
174
|
return {
|
|
163
175
|
firstRowIndex: 0,
|
|
164
176
|
lastRowIndex: currentPage.rows.length,
|
|
@@ -174,26 +186,28 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
174
186
|
// In the last index, this is not needed because Array.slice doesn't include it.
|
|
175
187
|
var firstRowIndex = Math.min(getNearestIndexToRender(top), rowsMeta.positions.length - 1);
|
|
176
188
|
var lastRowIndex = rootProps.autoHeight ? firstRowIndex + currentPage.rows.length : getNearestIndexToRender(top + containerDimensions.height);
|
|
177
|
-
var hasRowWithAutoHeight = false;
|
|
178
189
|
var firstColumnIndex = 0;
|
|
179
190
|
var lastColumnIndex = columnPositions.length;
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
191
|
+
if (enabledForColumns) {
|
|
192
|
+
var hasRowWithAutoHeight = false;
|
|
193
|
+
var _getRenderableIndexes = getRenderableIndexes({
|
|
194
|
+
firstIndex: firstRowIndex,
|
|
195
|
+
lastIndex: lastRowIndex,
|
|
196
|
+
minFirstIndex: 0,
|
|
197
|
+
maxLastIndex: currentPage.rows.length,
|
|
198
|
+
buffer: rootProps.rowBuffer
|
|
199
|
+
}),
|
|
200
|
+
_getRenderableIndexes2 = _slicedToArray(_getRenderableIndexes, 2),
|
|
201
|
+
firstRowToRender = _getRenderableIndexes2[0],
|
|
202
|
+
lastRowToRender = _getRenderableIndexes2[1];
|
|
203
|
+
for (var i = firstRowToRender; i < lastRowToRender && !hasRowWithAutoHeight; i += 1) {
|
|
204
|
+
var row = currentPage.rows[i];
|
|
205
|
+
hasRowWithAutoHeight = apiRef.current.rowHasAutoHeight(row.id);
|
|
206
|
+
}
|
|
207
|
+
if (!hasRowWithAutoHeight) {
|
|
208
|
+
firstColumnIndex = binarySearch(Math.abs(left), columnPositions);
|
|
209
|
+
lastColumnIndex = binarySearch(Math.abs(left) + containerDimensions.width, columnPositions);
|
|
210
|
+
}
|
|
197
211
|
}
|
|
198
212
|
return {
|
|
199
213
|
firstRowIndex: firstRowIndex,
|
|
@@ -201,16 +215,16 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
201
215
|
firstColumnIndex: firstColumnIndex,
|
|
202
216
|
lastColumnIndex: lastColumnIndex
|
|
203
217
|
};
|
|
204
|
-
}, [
|
|
218
|
+
}, [enabled, enabledForColumns, getNearestIndexToRender, rowsMeta.positions.length, rootProps.autoHeight, rootProps.rowBuffer, currentPage.rows, columnPositions, visibleColumns.length, apiRef, containerDimensions]);
|
|
205
219
|
useEnhancedEffect(function () {
|
|
206
|
-
if (
|
|
207
|
-
renderZoneRef.current.style.transform = "translate3d(0px, 0px, 0px)";
|
|
208
|
-
} else {
|
|
220
|
+
if (enabled) {
|
|
209
221
|
// TODO a scroll reset should not be necessary
|
|
210
222
|
rootRef.current.scrollLeft = 0;
|
|
211
223
|
rootRef.current.scrollTop = 0;
|
|
224
|
+
} else {
|
|
225
|
+
renderZoneRef.current.style.transform = "translate3d(0px, 0px, 0px)";
|
|
212
226
|
}
|
|
213
|
-
}, [
|
|
227
|
+
}, [enabled]);
|
|
214
228
|
useEnhancedEffect(function () {
|
|
215
229
|
setContainerDimensions({
|
|
216
230
|
width: rootRef.current.clientWidth,
|
|
@@ -264,12 +278,15 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
264
278
|
});
|
|
265
279
|
}
|
|
266
280
|
}, [apiRef, currentPage.rows, onRenderZonePositioning, renderZoneMinColumnIndex, renderZoneMaxColumnIndex, rootProps.columnBuffer, rootProps.rowBuffer, theme.direction]);
|
|
267
|
-
var
|
|
281
|
+
var getRenderContext = React.useCallback(function () {
|
|
282
|
+
return prevRenderContext.current;
|
|
283
|
+
}, []);
|
|
284
|
+
var setRenderContext = React.useCallback(function (nextRenderContext) {
|
|
268
285
|
if (prevRenderContext.current && areRenderContextsEqual(nextRenderContext, prevRenderContext.current)) {
|
|
269
286
|
updateRenderZonePosition(nextRenderContext);
|
|
270
287
|
return;
|
|
271
288
|
}
|
|
272
|
-
|
|
289
|
+
setRenderContextState(nextRenderContext);
|
|
273
290
|
updateRenderZonePosition(nextRenderContext);
|
|
274
291
|
var _getRenderableIndexes7 = getRenderableIndexes({
|
|
275
292
|
firstIndex: nextRenderContext.firstRowIndex,
|
|
@@ -286,13 +303,13 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
286
303
|
lastRowToRender: lastRowToRender
|
|
287
304
|
});
|
|
288
305
|
prevRenderContext.current = nextRenderContext;
|
|
289
|
-
}, [apiRef,
|
|
306
|
+
}, [apiRef, setRenderContextState, prevRenderContext, currentPage.rows.length, rootProps.rowBuffer, updateRenderZonePosition]);
|
|
290
307
|
useEnhancedEffect(function () {
|
|
291
308
|
if (containerDimensions.width == null) {
|
|
292
309
|
return;
|
|
293
310
|
}
|
|
294
311
|
var initialRenderContext = computeRenderContext();
|
|
295
|
-
|
|
312
|
+
setRenderContext(initialRenderContext);
|
|
296
313
|
var _ref3 = scrollPosition.current,
|
|
297
314
|
top = _ref3.top,
|
|
298
315
|
left = _ref3.left;
|
|
@@ -302,7 +319,7 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
302
319
|
renderContext: initialRenderContext
|
|
303
320
|
};
|
|
304
321
|
apiRef.current.publishEvent('scrollPositionChange', params);
|
|
305
|
-
}, [apiRef, computeRenderContext, containerDimensions.width,
|
|
322
|
+
}, [apiRef, computeRenderContext, containerDimensions.width, setRenderContext]);
|
|
306
323
|
var handleScroll = useEventCallback(function (event) {
|
|
307
324
|
var _event$currentTarget = event.currentTarget,
|
|
308
325
|
scrollTop = _event$currentTarget.scrollTop,
|
|
@@ -326,7 +343,7 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
326
343
|
}
|
|
327
344
|
|
|
328
345
|
// When virtualization is disabled, the context never changes during scroll
|
|
329
|
-
var nextRenderContext =
|
|
346
|
+
var nextRenderContext = enabled ? computeRenderContext() : prevRenderContext.current;
|
|
330
347
|
var topRowsScrolledSincePreviousRender = Math.abs(nextRenderContext.firstRowIndex - prevRenderContext.current.firstRowIndex);
|
|
331
348
|
var bottomRowsScrolledSincePreviousRender = Math.abs(nextRenderContext.lastRowIndex - prevRenderContext.current.lastRowIndex);
|
|
332
349
|
var topColumnsScrolledSincePreviousRender = Math.abs(nextRenderContext.firstColumnIndex - prevRenderContext.current.firstColumnIndex);
|
|
@@ -340,7 +357,7 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
340
357
|
if (shouldSetState) {
|
|
341
358
|
// Prevents batching render context changes
|
|
342
359
|
ReactDOM.flushSync(function () {
|
|
343
|
-
|
|
360
|
+
setRenderContext(nextRenderContext);
|
|
344
361
|
});
|
|
345
362
|
prevTotalWidth.current = columnsTotalWidth;
|
|
346
363
|
}
|
|
@@ -359,6 +376,13 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
359
376
|
}
|
|
360
377
|
return -1;
|
|
361
378
|
}, [cellFocus, currentPage.rows]);
|
|
379
|
+
useGridApiEventHandler(apiRef, 'rowMouseEnter', function (params) {
|
|
380
|
+
var _params$id;
|
|
381
|
+
setHoveredRowId((_params$id = params.id) != null ? _params$id : null);
|
|
382
|
+
});
|
|
383
|
+
useGridApiEventHandler(apiRef, 'rowMouseLeave', function () {
|
|
384
|
+
setHoveredRowId(null);
|
|
385
|
+
});
|
|
362
386
|
var getRows = function getRows() {
|
|
363
387
|
var _rootProps$slotProps;
|
|
364
388
|
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
@@ -379,8 +403,8 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
379
403
|
if (!nextRenderContext || availableSpace == null) {
|
|
380
404
|
return null;
|
|
381
405
|
}
|
|
382
|
-
var rowBuffer =
|
|
383
|
-
var columnBuffer =
|
|
406
|
+
var rowBuffer = enabled ? rootProps.rowBuffer : 0;
|
|
407
|
+
var columnBuffer = enabled ? rootProps.columnBuffer : 0;
|
|
384
408
|
var _getRenderableIndexes9 = getRenderableIndexes({
|
|
385
409
|
firstIndex: nextRenderContext.firstRowIndex,
|
|
386
410
|
lastIndex: nextRenderContext.lastRowIndex,
|
|
@@ -521,6 +545,7 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
521
545
|
isLastVisible: lastVisibleRowIndex,
|
|
522
546
|
position: position
|
|
523
547
|
}, rowProps, rootRowProps, {
|
|
548
|
+
hovered: hoveredRowId === _id,
|
|
524
549
|
style: rowStyleCache.current[_id]
|
|
525
550
|
}), _id));
|
|
526
551
|
}
|
|
@@ -562,9 +587,6 @@ export var useGridVirtualScroller = function useGridVirtualScroller(props) {
|
|
|
562
587
|
}
|
|
563
588
|
return style;
|
|
564
589
|
}, [needsHorizontalScrollbar, rootProps.autoHeight]);
|
|
565
|
-
var getRenderContext = React.useCallback(function () {
|
|
566
|
-
return prevRenderContext.current;
|
|
567
|
-
}, []);
|
|
568
590
|
apiRef.current.register('private', {
|
|
569
591
|
getRenderContext: getRenderContext
|
|
570
592
|
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { useGridApiMethod } from '../../utils/useGridApiMethod';
|
|
4
|
+
export var virtualizationStateInitializer = function virtualizationStateInitializer(state, props) {
|
|
5
|
+
var virtualization = {
|
|
6
|
+
enabled: !props.disableVirtualization,
|
|
7
|
+
enabledForColumns: true
|
|
8
|
+
};
|
|
9
|
+
return _extends({}, state, {
|
|
10
|
+
virtualization: virtualization
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
export function useGridVirtualization(apiRef, props) {
|
|
14
|
+
/*
|
|
15
|
+
* API METHODS
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
var setVirtualization = function setVirtualization(enabled) {
|
|
19
|
+
apiRef.current.setState(function (state) {
|
|
20
|
+
return _extends({}, state, {
|
|
21
|
+
virtualization: _extends({}, state.virtualization, {
|
|
22
|
+
enabled: enabled
|
|
23
|
+
})
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
var setColumnVirtualization = function setColumnVirtualization(enabled) {
|
|
28
|
+
apiRef.current.setState(function (state) {
|
|
29
|
+
return _extends({}, state, {
|
|
30
|
+
virtualization: _extends({}, state.virtualization, {
|
|
31
|
+
enabledForColumns: enabled
|
|
32
|
+
})
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
var api = {
|
|
37
|
+
unstable_setVirtualization: setVirtualization,
|
|
38
|
+
unstable_setColumnVirtualization: setColumnVirtualization
|
|
39
|
+
};
|
|
40
|
+
useGridApiMethod(apiRef, api, 'public');
|
|
41
|
+
|
|
42
|
+
/*
|
|
43
|
+
* EFFECTS
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
/* eslint-disable react-hooks/exhaustive-deps */
|
|
47
|
+
React.useEffect(function () {
|
|
48
|
+
setVirtualization(!props.disableVirtualization);
|
|
49
|
+
}, [props.disableVirtualization]);
|
|
50
|
+
/* eslint-enable react-hooks/exhaustive-deps */
|
|
51
|
+
}
|
package/legacy/index.js
CHANGED
|
@@ -16,6 +16,7 @@ export { useGridColumnMenu, columnMenuStateInitializer } from '../hooks/features
|
|
|
16
16
|
export { useGridColumns, columnsStateInitializer } from '../hooks/features/columns/useGridColumns';
|
|
17
17
|
export { getTotalHeaderHeight } from '../hooks/features/columns/gridColumnsUtils';
|
|
18
18
|
export { useGridColumnSpanning } from '../hooks/features/columns/useGridColumnSpanning';
|
|
19
|
+
export { gridColumnsStateSelector } from '../hooks/features/columns/gridColumnsSelector';
|
|
19
20
|
export { useGridColumnGrouping, columnGroupsStateInitializer } from '../hooks/features/columnGrouping/useGridColumnGrouping';
|
|
20
21
|
export { useGridDensity, densityStateInitializer } from '../hooks/features/density/useGridDensity';
|
|
21
22
|
export { useGridCsvExport } from '../hooks/features/export/useGridCsvExport';
|
|
@@ -46,10 +47,12 @@ export { useGridEvents } from '../hooks/features/events/useGridEvents';
|
|
|
46
47
|
export { useGridDimensions } from '../hooks/features/dimensions/useGridDimensions';
|
|
47
48
|
export { useGridStatePersistence } from '../hooks/features/statePersistence/useGridStatePersistence';
|
|
48
49
|
export { useGridVirtualScroller, getRenderableIndexes } from '../hooks/features/virtualization/useGridVirtualScroller';
|
|
50
|
+
export * from '../hooks/features/virtualization';
|
|
49
51
|
export { useTimeout } from '../hooks/utils/useTimeout';
|
|
50
52
|
export { useGridVisibleRows, getVisibleRows } from '../hooks/utils/useGridVisibleRows';
|
|
51
53
|
export { useGridInitializeState } from '../hooks/utils/useGridInitializeState';
|
|
52
54
|
export { getColumnsToExport, defaultGetRowsToExport } from '../hooks/features/export/utils';
|
|
55
|
+
export * from '../utils/createControllablePromise';
|
|
53
56
|
export { createSelector, createSelectorMemoized, unstable_resetCreateSelectorCache } from '../utils/createSelector';
|
|
54
57
|
export { findParentElementFromClassName, getActiveElement } from '../utils/domUtils';
|
|
55
58
|
export { isNavigationKey } from '../utils/keyboardUtils';
|
|
@@ -57,6 +60,7 @@ export { clamp, isDeepEqual, isNumber, isFunction, isObject } from '../utils/uti
|
|
|
57
60
|
export { buildWarning } from '../utils/warning';
|
|
58
61
|
export { exportAs } from '../utils/exportAs';
|
|
59
62
|
export { useGridPrivateApiContext } from '../hooks/utils/useGridPrivateApiContext';
|
|
63
|
+
export * from '../hooks/utils/useOnMount';
|
|
60
64
|
export { serializeCellValue } from '../hooks/features/export/serializers/csvSerializer';
|
|
61
65
|
export * from '../colDef/utils';
|
|
62
66
|
export * from './utils';
|
|
@@ -10,8 +10,7 @@ export * from './gridFilterApi';
|
|
|
10
10
|
export * from './gridColumnMenuApi';
|
|
11
11
|
export * from './gridPreferencesPanelApi';
|
|
12
12
|
export * from './gridPrintExportApi';
|
|
13
|
-
export * from './gridDisableVirtualizationApi';
|
|
14
13
|
export * from './gridCallbackDetails';
|
|
15
14
|
export * from './gridScrollApi';
|
|
16
|
-
export * from './
|
|
15
|
+
export * from './gridVirtualizationApi';
|
|
17
16
|
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function createControllablePromise() {
|
|
2
|
+
var resolve;
|
|
3
|
+
var reject;
|
|
4
|
+
var promise = new Promise(function (_resolve, _reject) {
|
|
5
|
+
resolve = _resolve;
|
|
6
|
+
reject = _reject;
|
|
7
|
+
});
|
|
8
|
+
promise.resolve = resolve;
|
|
9
|
+
promise.reject = reject;
|
|
10
|
+
return promise;
|
|
11
|
+
}
|
|
@@ -10,7 +10,6 @@ import { GridLocaleTextApi } from './gridLocaleTextApi';
|
|
|
10
10
|
import type { GridParamsApi } from './gridParamsApi';
|
|
11
11
|
import { GridPreferencesPanelApi } from './gridPreferencesPanelApi';
|
|
12
12
|
import { GridPrintExportApi } from './gridPrintExportApi';
|
|
13
|
-
import { GridDisableVirtualizationApi } from './gridDisableVirtualizationApi';
|
|
14
13
|
import { GridRowApi } from './gridRowApi';
|
|
15
14
|
import { GridRowsMetaApi, GridRowsMetaPrivateApi } from './gridRowsMetaApi';
|
|
16
15
|
import { GridRowSelectionApi } from './gridRowSelectionApi';
|
|
@@ -18,7 +17,7 @@ import { GridSortApi } from './gridSortApi';
|
|
|
18
17
|
import { GridStateApi, GridStatePrivateApi } from './gridStateApi';
|
|
19
18
|
import { GridLoggerApi } from './gridLoggerApi';
|
|
20
19
|
import { GridScrollApi } from './gridScrollApi';
|
|
21
|
-
import {
|
|
20
|
+
import { GridVirtualizationApi, GridVirtualizationPrivateApi } from './gridVirtualizationApi';
|
|
22
21
|
import type { GridPipeProcessingApi, GridPipeProcessingPrivateApi } from '../../hooks/core/pipeProcessing';
|
|
23
22
|
import { GridColumnSpanningApi, GridColumnSpanningPrivateApi } from './gridColumnSpanning';
|
|
24
23
|
import type { GridStrategyProcessingApi } from '../../hooks/core/strategyProcessing';
|
|
@@ -28,9 +27,9 @@ import type { GridStatePersistenceApi } from '../../hooks/features/statePersiste
|
|
|
28
27
|
import { GridColumnGroupingApi } from './gridColumnGroupingApi';
|
|
29
28
|
import type { GridInitialStateCommunity, GridStateCommunity } from '../gridStateCommunity';
|
|
30
29
|
import { GridHeaderFilteringApi, GridHeaderFilteringPrivateApi } from './gridHeaderFilteringApi';
|
|
31
|
-
export interface GridApiCommon<GridState extends GridStateCommunity = any, GridInitialState extends GridInitialStateCommunity = any> extends GridCoreApi, GridPipeProcessingApi, GridDensityApi, GridDimensionsApi, GridRowApi, GridRowsMetaApi, GridEditingApi, GridParamsApi, GridColumnApi, GridRowSelectionApi, GridSortApi, GridPaginationApi, GridCsvExportApi, GridFocusApi, GridFilterApi, GridColumnMenuApi, GridPreferencesPanelApi, GridPrintExportApi,
|
|
30
|
+
export interface GridApiCommon<GridState extends GridStateCommunity = any, GridInitialState extends GridInitialStateCommunity = any> extends GridCoreApi, GridPipeProcessingApi, GridDensityApi, GridDimensionsApi, GridRowApi, GridRowsMetaApi, GridEditingApi, GridParamsApi, GridColumnApi, GridRowSelectionApi, GridSortApi, GridPaginationApi, GridCsvExportApi, GridFocusApi, GridFilterApi, GridColumnMenuApi, GridPreferencesPanelApi, GridPrintExportApi, GridVirtualizationApi, GridLocaleTextApi, GridScrollApi, GridColumnSpanningApi, GridStateApi<GridState>, GridStatePersistenceApi<GridInitialState>, GridColumnGroupingApi, GridHeaderFilteringApi {
|
|
32
31
|
}
|
|
33
|
-
export interface GridPrivateOnlyApiCommon<Api extends GridApiCommon, PrivateApi extends GridPrivateApiCommon> extends GridCorePrivateApi<Api, PrivateApi>, GridStatePrivateApi<PrivateApi['state']>, GridPipeProcessingPrivateApi, GridStrategyProcessingApi, GridColumnSpanningPrivateApi, GridRowsMetaPrivateApi, GridDimensionsPrivateApi,
|
|
32
|
+
export interface GridPrivateOnlyApiCommon<Api extends GridApiCommon, PrivateApi extends GridPrivateApiCommon> extends GridCorePrivateApi<Api, PrivateApi>, GridStatePrivateApi<PrivateApi['state']>, GridPipeProcessingPrivateApi, GridStrategyProcessingApi, GridColumnSpanningPrivateApi, GridRowsMetaPrivateApi, GridDimensionsPrivateApi, GridEditingPrivateApi, GridLoggerApi, GridFocusPrivateApi, GridHeaderFilteringPrivateApi, GridVirtualizationPrivateApi {
|
|
34
33
|
}
|
|
35
34
|
export interface GridPrivateApiCommon extends GridApiCommon, GridPrivateOnlyApiCommon<GridApiCommon, GridPrivateApiCommon> {
|
|
36
35
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { GridRenderContext } from '../params';
|
|
2
|
+
export interface GridVirtualizationApi {
|
|
3
|
+
/**
|
|
4
|
+
* Enable/disable virtualization.
|
|
5
|
+
* @param {boolean} enabled The enabled value for virtualization
|
|
6
|
+
*/
|
|
7
|
+
unstable_setVirtualization: (enabled: boolean) => void;
|
|
8
|
+
/**
|
|
9
|
+
* Enable/disable column virtualization.
|
|
10
|
+
* @param {boolean} enabled The enabled value for column virtualization
|
|
11
|
+
*/
|
|
12
|
+
unstable_setColumnVirtualization: (enabled: boolean) => void;
|
|
13
|
+
}
|
|
14
|
+
export interface GridVirtualizationPrivateApi {
|
|
15
|
+
/**
|
|
16
|
+
* Get the current grid rendering context.
|
|
17
|
+
* @returns {GridRenderContext} The `GridRenderContext`.
|
|
18
|
+
*/
|
|
19
|
+
getRenderContext: () => GridRenderContext;
|
|
20
|
+
}
|
package/models/api/index.d.ts
CHANGED
|
@@ -15,10 +15,9 @@ export * from './gridFilterApi';
|
|
|
15
15
|
export * from './gridColumnMenuApi';
|
|
16
16
|
export * from './gridPreferencesPanelApi';
|
|
17
17
|
export * from './gridPrintExportApi';
|
|
18
|
-
export * from './gridDisableVirtualizationApi';
|
|
19
18
|
export * from './gridCallbackDetails';
|
|
20
19
|
export * from './gridScrollApi';
|
|
21
|
-
export * from './
|
|
20
|
+
export * from './gridVirtualizationApi';
|
|
22
21
|
export type { GridApiCommon } from './gridApiCommon';
|
|
23
22
|
export type { GridEditingApi, GridCellModesModel, GridRowModesModel } from './gridEditingApi';
|
|
24
23
|
export type GridEditRowApi = GridEditingApi;
|
package/models/api/index.js
CHANGED
|
@@ -10,8 +10,7 @@ export * from './gridFilterApi';
|
|
|
10
10
|
export * from './gridColumnMenuApi';
|
|
11
11
|
export * from './gridPreferencesPanelApi';
|
|
12
12
|
export * from './gridPrintExportApi';
|
|
13
|
-
export * from './gridDisableVirtualizationApi';
|
|
14
13
|
export * from './gridCallbackDetails';
|
|
15
14
|
export * from './gridScrollApi';
|
|
16
|
-
export * from './
|
|
15
|
+
export * from './gridVirtualizationApi';
|
|
17
16
|
export {};
|
|
@@ -173,6 +173,14 @@ export interface GridColumnHeaderEventLookup {
|
|
|
173
173
|
params: GridColumnHeaderParams;
|
|
174
174
|
event: React.DragEvent<HTMLElement>;
|
|
175
175
|
};
|
|
176
|
+
/**
|
|
177
|
+
* Fired when a `dblclick` DOM event happens in the column header separator.
|
|
178
|
+
* @ignore - do not document.
|
|
179
|
+
*/
|
|
180
|
+
columnSeparatorDoubleClick: {
|
|
181
|
+
params: GridColumnHeaderParams;
|
|
182
|
+
event: React.MouseEvent<HTMLElement>;
|
|
183
|
+
};
|
|
176
184
|
/**
|
|
177
185
|
* Fired when a `mousedown` DOM event happens in the column header separator.
|
|
178
186
|
* @ignore - do not document.
|
package/models/gridExport.d.ts
CHANGED
|
@@ -32,9 +32,9 @@ export interface GridFileExportOptions<Api extends GridApiCommon = GridApiCommun
|
|
|
32
32
|
*/
|
|
33
33
|
includeHeaders?: boolean;
|
|
34
34
|
/**
|
|
35
|
-
* Function that returns the
|
|
35
|
+
* Function that returns the list of row ids to export on the order they should be exported.
|
|
36
36
|
* @param {GridGetRowsToExportParams} params With all properties from [[GridGetRowsToExportParams]].
|
|
37
|
-
* @returns {GridRowId[]} The
|
|
37
|
+
* @returns {GridRowId[]} The list of row ids to export.
|
|
38
38
|
*/
|
|
39
39
|
getRowsToExport?: (params: GridGetRowsToExportParams<Api>) => GridRowId[];
|
|
40
40
|
}
|
|
@@ -46,6 +46,8 @@ export interface GridGetRowsToExportParams<Api extends GridApiCommon = GridApiCo
|
|
|
46
46
|
}
|
|
47
47
|
export interface GridCsvGetRowsToExportParams<Api extends GridApiCommon = GridApiCommunity> extends GridGetRowsToExportParams<Api> {
|
|
48
48
|
}
|
|
49
|
+
export interface GridPrintGetRowsToExportParams<Api extends GridApiCommon = GridApiCommunity> extends GridGetRowsToExportParams<Api> {
|
|
50
|
+
}
|
|
49
51
|
/**
|
|
50
52
|
* The options to apply on the CSV export.
|
|
51
53
|
* @demos
|
|
@@ -81,9 +83,9 @@ export interface GridCsvExportOptions extends GridFileExportOptions {
|
|
|
81
83
|
*/
|
|
82
84
|
includeColumnGroupsHeaders?: boolean;
|
|
83
85
|
/**
|
|
84
|
-
* Function that returns the
|
|
86
|
+
* Function that returns the list of row ids to export on the order they should be exported.
|
|
85
87
|
* @param {GridCsvGetRowsToExportParams} params With all properties from [[GridCsvGetRowsToExportParams]].
|
|
86
|
-
* @returns {GridRowId[]} The
|
|
88
|
+
* @returns {GridRowId[]} The list of row ids to export.
|
|
87
89
|
*/
|
|
88
90
|
getRowsToExport?: (params: GridCsvGetRowsToExportParams) => GridRowId[];
|
|
89
91
|
}
|
|
@@ -108,6 +110,11 @@ export interface GridPrintExportOptions extends GridExportOptions {
|
|
|
108
110
|
* @default false
|
|
109
111
|
*/
|
|
110
112
|
hideFooter?: boolean;
|
|
113
|
+
/**
|
|
114
|
+
* If `true`, the selection checkboxes will be included when printing.
|
|
115
|
+
* @default false
|
|
116
|
+
*/
|
|
117
|
+
includeCheckboxes?: boolean;
|
|
111
118
|
/**
|
|
112
119
|
* If `false`, all <style> and <link type="stylesheet" /> tags from the <head> will not be copied
|
|
113
120
|
* to the print window.
|
|
@@ -122,6 +129,12 @@ export interface GridPrintExportOptions extends GridExportOptions {
|
|
|
122
129
|
* Provide Print specific styles to the print window.
|
|
123
130
|
*/
|
|
124
131
|
pageStyle?: string | Function;
|
|
132
|
+
/**
|
|
133
|
+
* Function that returns the list of row ids to export in the order they should be exported.
|
|
134
|
+
* @param {GridPrintGetRowsToExportParams} params With all properties from [[GridPrintGetRowsToExportParams]].
|
|
135
|
+
* @returns {GridRowId[]} The list of row ids to export.
|
|
136
|
+
*/
|
|
137
|
+
getRowsToExport?: (params: GridPrintGetRowsToExportParams) => GridRowId[];
|
|
125
138
|
}
|
|
126
139
|
/**
|
|
127
140
|
* Available export formats.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GridColumnMenuState, GridColumnsInitialState, GridColumnsState, GridColumnsGroupingState, GridDensityState, GridFilterInitialState, GridFilterState, GridFocusState, GridPaginationInitialState, GridPaginationState, GridPreferencePanelInitialState, GridPreferencePanelState, GridRowsState, GridSortingInitialState, GridSortingState, GridTabIndexState } from '../hooks';
|
|
1
|
+
import type { GridColumnMenuState, GridColumnsInitialState, GridColumnsState, GridColumnsGroupingState, GridDensityState, GridFilterInitialState, GridFilterState, GridFocusState, GridPaginationInitialState, GridPaginationState, GridPreferencePanelInitialState, GridPreferencePanelState, GridRowsState, GridSortingInitialState, GridSortingState, GridTabIndexState, GridVirtualizationState } from '../hooks';
|
|
2
2
|
import type { GridRowsMetaState } from '../hooks/features/rows/gridRowsMetaState';
|
|
3
3
|
import type { GridEditingState } from './gridEditRowModel';
|
|
4
4
|
import { GridHeaderFilteringState } from './gridHeaderFilteringModel';
|
|
@@ -24,6 +24,7 @@ export interface GridStateCommunity {
|
|
|
24
24
|
filter: GridFilterState;
|
|
25
25
|
preferencePanel: GridPreferencePanelState;
|
|
26
26
|
density: GridDensityState;
|
|
27
|
+
virtualization: GridVirtualizationState;
|
|
27
28
|
}
|
|
28
29
|
/**
|
|
29
30
|
* The initial state of `DataGrid`.
|
package/models/index.d.ts
CHANGED
|
@@ -24,5 +24,5 @@ export * from './muiEvent';
|
|
|
24
24
|
export * from './events';
|
|
25
25
|
export * from './gridSortModel';
|
|
26
26
|
export * from './gridColumnGrouping';
|
|
27
|
-
export type { GridExportOptions, GridFileExportOptions, GridGetRowsToExportParams, GridCsvGetRowsToExportParams, GridCsvExportOptions, GridPrintExportOptions, } from './gridExport';
|
|
27
|
+
export type { GridExportOptions, GridFileExportOptions, GridGetRowsToExportParams, GridCsvGetRowsToExportParams, GridPrintGetRowsToExportParams, GridCsvExportOptions, GridPrintExportOptions, } from './gridExport';
|
|
28
28
|
export * from './gridFilterOperator';
|