@mui/x-data-grid 6.0.0-alpha.0 → 6.0.0-alpha.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 +209 -0
- package/DataGrid/useDataGridProps.js +4 -4
- package/components/DataGridVirtualScroller.js +5 -3
- package/components/GridPagination.d.ts +43 -1
- package/components/GridPagination.js +1 -2
- package/components/GridRow.d.ts +1 -4
- package/components/GridRow.js +9 -8
- package/components/base/GridBody.js +1 -2
- package/components/base/GridOverlays.js +52 -12
- package/components/cell/GridBooleanCell.js +2 -1
- package/components/columnSelection/GridCellCheckboxRenderer.d.ts +2 -2
- package/components/columnSelection/GridCellCheckboxRenderer.js +1 -6
- package/components/containers/GridOverlay.js +0 -5
- package/components/panel/filterPanel/GridFilterForm.js +2 -1
- package/components/toolbar/GridToolbarFilterButton.js +8 -4
- package/constants/gridClasses.d.ts +8 -0
- package/hooks/core/pipeProcessing/gridPipeProcessingApi.d.ts +1 -1
- package/hooks/core/strategyProcessing/gridStrategyProcessingApi.d.ts +1 -1
- package/hooks/features/columnHeaders/useGridColumnHeaders.js +1 -1
- package/hooks/features/editRows/useGridCellEditing.new.js +18 -9
- package/hooks/features/editRows/useGridEditing.new.js +3 -2
- package/hooks/features/editRows/useGridEditing.old.js +2 -1
- package/hooks/features/editRows/useGridRowEditing.new.js +18 -9
- package/hooks/features/export/useGridPrintExport.js +31 -17
- package/hooks/features/export/utils.js +1 -5
- package/hooks/features/filter/gridFilterSelector.js +2 -2
- package/hooks/features/filter/useGridFilter.js +6 -6
- package/hooks/features/pagination/gridPaginationSelector.js +2 -2
- package/hooks/features/rows/gridRowsInterfaces.d.ts +106 -0
- package/hooks/features/rows/{gridRowsState.js → gridRowsInterfaces.js} +0 -0
- package/hooks/features/rows/gridRowsSelector.d.ts +17 -7
- package/hooks/features/rows/gridRowsSelector.js +38 -6
- package/hooks/features/rows/gridRowsUtils.d.ts +16 -4
- package/hooks/features/rows/gridRowsUtils.js +222 -39
- package/hooks/features/rows/index.d.ts +3 -3
- package/hooks/features/rows/index.js +2 -2
- package/hooks/features/rows/useGridRows.js +161 -124
- package/hooks/features/rows/useGridRowsPreProcessors.js +78 -26
- package/hooks/features/selection/useGridSelection.js +2 -2
- package/hooks/features/sorting/gridSortingSelector.js +9 -4
- package/hooks/features/sorting/gridSortingState.d.ts +2 -2
- package/hooks/features/sorting/useGridSorting.js +9 -33
- package/hooks/features/virtualization/useGridVirtualScroller.d.ts +4 -7
- package/hooks/features/virtualization/useGridVirtualScroller.js +11 -17
- package/index.js +1 -1
- package/internals/index.d.ts +2 -1
- package/internals/index.js +1 -0
- package/legacy/DataGrid/useDataGridProps.js +4 -4
- package/legacy/components/DataGridVirtualScroller.js +5 -3
- package/legacy/components/GridPagination.js +1 -2
- package/legacy/components/GridRow.js +9 -8
- package/legacy/components/base/GridBody.js +1 -2
- package/legacy/components/base/GridOverlays.js +54 -12
- package/legacy/components/cell/GridBooleanCell.js +2 -1
- package/legacy/components/columnSelection/GridCellCheckboxRenderer.js +1 -6
- package/legacy/components/containers/GridOverlay.js +0 -5
- package/legacy/components/panel/filterPanel/GridFilterForm.js +2 -1
- package/legacy/components/toolbar/GridToolbarFilterButton.js +3 -1
- package/legacy/hooks/features/columnHeaders/useGridColumnHeaders.js +1 -1
- package/legacy/hooks/features/editRows/useGridCellEditing.new.js +18 -9
- package/legacy/hooks/features/editRows/useGridEditing.new.js +3 -2
- package/legacy/hooks/features/editRows/useGridEditing.old.js +2 -1
- package/legacy/hooks/features/editRows/useGridRowEditing.new.js +18 -9
- package/legacy/hooks/features/export/useGridPrintExport.js +33 -20
- package/legacy/hooks/features/export/utils.js +1 -3
- package/legacy/hooks/features/filter/gridFilterSelector.js +2 -2
- package/legacy/hooks/features/filter/useGridFilter.js +6 -6
- package/legacy/hooks/features/pagination/gridPaginationSelector.js +2 -2
- package/legacy/hooks/features/rows/{gridRowsState.js → gridRowsInterfaces.js} +0 -0
- package/legacy/hooks/features/rows/gridRowsSelector.js +52 -9
- package/legacy/hooks/features/rows/gridRowsUtils.js +238 -46
- package/legacy/hooks/features/rows/index.js +2 -2
- package/legacy/hooks/features/rows/useGridRows.js +163 -134
- package/legacy/hooks/features/rows/useGridRowsPreProcessors.js +81 -26
- package/legacy/hooks/features/selection/useGridSelection.js +2 -2
- package/legacy/hooks/features/sorting/gridSortingSelector.js +5 -2
- package/legacy/hooks/features/sorting/useGridSorting.js +11 -33
- package/legacy/hooks/features/virtualization/useGridVirtualScroller.js +11 -17
- package/legacy/index.js +1 -1
- package/legacy/internals/index.js +1 -0
- package/legacy/models/gridFeatureMode.js +1 -4
- package/models/api/gridParamsApi.d.ts +2 -2
- package/models/api/gridRowApi.d.ts +7 -5
- package/models/events/gridEventLookup.d.ts +3 -3
- package/models/gridApiCaches.d.ts +1 -1
- package/models/gridFeatureMode.d.ts +0 -4
- package/models/gridFeatureMode.js +1 -4
- package/models/gridRows.d.ts +100 -30
- package/models/gridSortModel.d.ts +2 -2
- package/models/params/gridCellParams.d.ts +7 -11
- package/modern/DataGrid/useDataGridProps.js +4 -4
- package/modern/components/DataGridVirtualScroller.js +5 -3
- package/modern/components/GridPagination.js +1 -2
- package/modern/components/GridRow.js +9 -8
- package/modern/components/base/GridBody.js +1 -2
- package/modern/components/base/GridOverlays.js +52 -12
- package/modern/components/cell/GridBooleanCell.js +2 -1
- package/modern/components/columnSelection/GridCellCheckboxRenderer.js +1 -6
- package/modern/components/containers/GridOverlay.js +0 -5
- package/modern/components/panel/filterPanel/GridFilterForm.js +2 -1
- package/modern/components/toolbar/GridToolbarFilterButton.js +1 -1
- package/modern/hooks/features/columnHeaders/useGridColumnHeaders.js +1 -1
- package/modern/hooks/features/editRows/useGridCellEditing.new.js +18 -9
- package/modern/hooks/features/editRows/useGridEditing.new.js +3 -2
- package/modern/hooks/features/editRows/useGridEditing.old.js +2 -1
- package/modern/hooks/features/editRows/useGridRowEditing.new.js +18 -9
- package/modern/hooks/features/export/useGridPrintExport.js +30 -16
- package/modern/hooks/features/export/utils.js +1 -1
- package/modern/hooks/features/filter/gridFilterSelector.js +2 -2
- package/modern/hooks/features/filter/useGridFilter.js +6 -6
- package/modern/hooks/features/pagination/gridPaginationSelector.js +2 -2
- package/modern/hooks/features/rows/{gridRowsState.js → gridRowsInterfaces.js} +0 -0
- package/modern/hooks/features/rows/gridRowsSelector.js +28 -6
- package/modern/hooks/features/rows/gridRowsUtils.js +220 -37
- package/modern/hooks/features/rows/index.js +2 -2
- package/modern/hooks/features/rows/useGridRows.js +158 -121
- package/modern/hooks/features/rows/useGridRowsPreProcessors.js +78 -26
- package/modern/hooks/features/selection/useGridSelection.js +2 -2
- package/modern/hooks/features/sorting/gridSortingSelector.js +3 -2
- package/modern/hooks/features/sorting/useGridSorting.js +9 -33
- package/modern/hooks/features/virtualization/useGridVirtualScroller.js +10 -16
- package/modern/index.js +1 -1
- package/modern/internals/index.js +1 -0
- package/modern/models/gridFeatureMode.js +1 -4
- package/node/DataGrid/useDataGridProps.js +3 -3
- package/node/components/DataGridVirtualScroller.js +5 -3
- package/node/components/GridPagination.js +1 -2
- package/node/components/GridRow.js +9 -7
- package/node/components/base/GridBody.js +1 -3
- package/node/components/base/GridOverlays.js +57 -12
- package/node/components/cell/GridBooleanCell.js +3 -1
- package/node/components/columnSelection/GridCellCheckboxRenderer.js +1 -6
- package/node/components/containers/GridOverlay.js +0 -5
- package/node/components/panel/filterPanel/GridFilterForm.js +2 -1
- package/node/components/toolbar/GridToolbarFilterButton.js +8 -4
- package/node/hooks/features/columnHeaders/useGridColumnHeaders.js +1 -1
- package/node/hooks/features/editRows/useGridCellEditing.new.js +20 -10
- package/node/hooks/features/editRows/useGridEditing.new.js +4 -2
- package/node/hooks/features/editRows/useGridEditing.old.js +3 -1
- package/node/hooks/features/editRows/useGridRowEditing.new.js +20 -10
- package/node/hooks/features/export/useGridPrintExport.js +31 -17
- package/node/hooks/features/export/utils.js +1 -5
- package/node/hooks/features/filter/gridFilterSelector.js +1 -1
- package/node/hooks/features/filter/useGridFilter.js +5 -6
- package/node/hooks/features/pagination/gridPaginationSelector.js +1 -1
- package/node/hooks/features/rows/{gridRowsState.js → gridRowsInterfaces.js} +0 -0
- package/node/hooks/features/rows/gridRowsSelector.js +43 -10
- package/node/hooks/features/rows/gridRowsUtils.js +239 -40
- package/node/hooks/features/rows/index.js +23 -9
- package/node/hooks/features/rows/useGridRows.js +161 -122
- package/node/hooks/features/rows/useGridRowsPreProcessors.js +81 -26
- package/node/hooks/features/selection/useGridSelection.js +2 -2
- package/node/hooks/features/sorting/gridSortingSelector.js +9 -4
- package/node/hooks/features/sorting/useGridSorting.js +9 -33
- package/node/hooks/features/virtualization/useGridVirtualScroller.js +11 -17
- package/node/index.js +1 -1
- package/node/internals/index.js +14 -2
- package/node/models/gridFeatureMode.js +1 -7
- package/package.json +1 -1
- package/themeAugmentation/props.d.ts +2 -2
- package/hooks/features/rows/gridRowsState.d.ts +0 -60
|
@@ -15,6 +15,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
15
15
|
|
|
16
16
|
var React = _interopRequireWildcard(require("react"));
|
|
17
17
|
|
|
18
|
+
var _utils = require("@mui/utils");
|
|
19
|
+
|
|
18
20
|
var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
|
|
19
21
|
|
|
20
22
|
var _gridEditRowModel = require("../../../models/gridEditRowModel");
|
|
@@ -31,7 +33,7 @@ var _warning = require("../../../utils/warning");
|
|
|
31
33
|
|
|
32
34
|
var _gridRowsSelector = require("../rows/gridRowsSelector");
|
|
33
35
|
|
|
34
|
-
var
|
|
36
|
+
var _utils2 = require("../../../utils/utils");
|
|
35
37
|
|
|
36
38
|
var _gridRowParams = require("../../../models/params/gridRowParams");
|
|
37
39
|
|
|
@@ -183,6 +185,10 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
183
185
|
} else if (params.isEditable) {
|
|
184
186
|
let reason;
|
|
185
187
|
|
|
188
|
+
if (event.key === ' ' && event.shiftKey) {
|
|
189
|
+
return; // Shift + Space is used to select the row
|
|
190
|
+
}
|
|
191
|
+
|
|
186
192
|
if ((0, _keyboardUtils.isPrintableKey)(event)) {
|
|
187
193
|
reason = _gridRowParams.GridRowEditStartReasons.printableKeyDown;
|
|
188
194
|
} else if ((event.ctrlKey || event.metaKey) && event.key === 'v') {
|
|
@@ -273,7 +279,7 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
273
279
|
const isEditing = editingState[id] && Object.keys(editingState[id]).length > 0;
|
|
274
280
|
return isEditing ? _gridEditRowModel.GridRowModes.Edit : _gridEditRowModel.GridRowModes.View;
|
|
275
281
|
}, [apiRef, props.editMode]);
|
|
276
|
-
const updateRowModesModel =
|
|
282
|
+
const updateRowModesModel = (0, _utils.unstable_useEventCallback)(newModel => {
|
|
277
283
|
const isNewModelDifferentFromProp = newModel !== props.rowModesModel;
|
|
278
284
|
|
|
279
285
|
if (onRowModesModelChange && isNewModelDifferentFromProp) {
|
|
@@ -290,7 +296,7 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
290
296
|
setRowModesModel(newModel);
|
|
291
297
|
rowModesModelRef.current = newModel;
|
|
292
298
|
apiRef.current.publishEvent('rowModesModelChange', newModel);
|
|
293
|
-
}
|
|
299
|
+
});
|
|
294
300
|
const updateRowInRowModesModel = React.useCallback((id, newProps) => {
|
|
295
301
|
const newModel = (0, _extends2.default)({}, rowModesModelRef.current);
|
|
296
302
|
|
|
@@ -350,7 +356,7 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
350
356
|
mode: _gridEditRowModel.GridRowModes.Edit
|
|
351
357
|
}, other));
|
|
352
358
|
}, [throwIfNotInMode, updateRowInRowModesModel]);
|
|
353
|
-
const updateStateToStartRowEditMode =
|
|
359
|
+
const updateStateToStartRowEditMode = (0, _utils.unstable_useEventCallback)(params => {
|
|
354
360
|
const {
|
|
355
361
|
id,
|
|
356
362
|
fieldToFocus,
|
|
@@ -377,7 +383,7 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
377
383
|
if (fieldToFocus) {
|
|
378
384
|
apiRef.current.setCellFocus(id, fieldToFocus);
|
|
379
385
|
}
|
|
380
|
-
}
|
|
386
|
+
});
|
|
381
387
|
const stopRowEditMode = React.useCallback(params => {
|
|
382
388
|
const {
|
|
383
389
|
id
|
|
@@ -388,7 +394,7 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
388
394
|
mode: _gridEditRowModel.GridRowModes.View
|
|
389
395
|
}, other));
|
|
390
396
|
}, [throwIfNotInMode, updateRowInRowModesModel]);
|
|
391
|
-
const updateStateToStopRowEditMode =
|
|
397
|
+
const updateStateToStopRowEditMode = (0, _utils.unstable_useEventCallback)(params => {
|
|
392
398
|
const {
|
|
393
399
|
id,
|
|
394
400
|
ignoreModifications,
|
|
@@ -435,7 +441,11 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
435
441
|
|
|
436
442
|
if (processRowUpdate) {
|
|
437
443
|
const handleError = errorThrown => {
|
|
438
|
-
prevRowModesModel.current[id].mode = _gridEditRowModel.GridRowModes.Edit;
|
|
444
|
+
prevRowModesModel.current[id].mode = _gridEditRowModel.GridRowModes.Edit; // Revert the mode in the rowModesModel prop back to "edit"
|
|
445
|
+
|
|
446
|
+
updateRowInRowModesModel(id, {
|
|
447
|
+
mode: _gridEditRowModel.GridRowModes.Edit
|
|
448
|
+
});
|
|
439
449
|
|
|
440
450
|
if (onProcessRowUpdateError) {
|
|
441
451
|
onProcessRowUpdateError(errorThrown);
|
|
@@ -456,7 +466,7 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
456
466
|
apiRef.current.updateRows([rowUpdate]);
|
|
457
467
|
finishRowEditMode();
|
|
458
468
|
}
|
|
459
|
-
}
|
|
469
|
+
});
|
|
460
470
|
const setRowEditingEditCellValue = React.useCallback(params => {
|
|
461
471
|
const {
|
|
462
472
|
id,
|
|
@@ -603,10 +613,10 @@ const useGridRowEditing = (apiRef, props) => {
|
|
|
603
613
|
}
|
|
604
614
|
}, [rowModesModelProp, updateRowModesModel]);
|
|
605
615
|
React.useEffect(() => {
|
|
606
|
-
const idToIdLookup = (0, _gridRowsSelector.
|
|
616
|
+
const idToIdLookup = (0, _gridRowsSelector.gridRowsDataRowIdToIdLookupSelector)(apiRef); // Update the ref here because updateStateToStopRowEditMode may change it later
|
|
607
617
|
|
|
608
618
|
const copyOfPrevRowModesModel = prevRowModesModel.current;
|
|
609
|
-
prevRowModesModel.current = (0,
|
|
619
|
+
prevRowModesModel.current = (0, _utils2.deepClone)(rowModesModel); // Do a deep-clone because the attributes might be changed later
|
|
610
620
|
|
|
611
621
|
Object.entries(rowModesModel).forEach(([id, params]) => {
|
|
612
622
|
var _copyOfPrevRowModesMo, _idToIdLookup$id;
|
|
@@ -39,6 +39,14 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
39
39
|
|
|
40
40
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
41
41
|
|
|
42
|
+
function raf() {
|
|
43
|
+
return new Promise(resolve => {
|
|
44
|
+
requestAnimationFrame(() => {
|
|
45
|
+
resolve();
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
42
50
|
/**
|
|
43
51
|
* @requires useGridColumns (state)
|
|
44
52
|
* @requires useGridFilter (state)
|
|
@@ -56,6 +64,7 @@ const useGridPrintExport = (apiRef, props) => {
|
|
|
56
64
|
// the new state needs to be in place before the grid can be sized correctly
|
|
57
65
|
|
|
58
66
|
const updateGridColumnsForPrint = React.useCallback((fields, allColumns) => new Promise(resolve => {
|
|
67
|
+
// TODO remove unused Promise
|
|
59
68
|
if (!fields && !allColumns) {
|
|
60
69
|
resolve();
|
|
61
70
|
return;
|
|
@@ -75,12 +84,10 @@ const useGridPrintExport = (apiRef, props) => {
|
|
|
75
84
|
});
|
|
76
85
|
apiRef.current.setColumnVisibilityModel(newColumnVisibilityModel);
|
|
77
86
|
resolve();
|
|
78
|
-
}), [apiRef]);
|
|
87
|
+
}), [apiRef]); // TODO move outside of this scope and remove React.useCallback
|
|
88
|
+
|
|
79
89
|
const buildPrintWindow = React.useCallback(title => {
|
|
80
90
|
const iframeEl = document.createElement('iframe');
|
|
81
|
-
iframeEl.id = 'grid-print-window'; // Without this 'onload' event won't fire in some browsers
|
|
82
|
-
|
|
83
|
-
iframeEl.src = window.location.href;
|
|
84
91
|
iframeEl.style.position = 'absolute';
|
|
85
92
|
iframeEl.style.width = '0px';
|
|
86
93
|
iframeEl.style.height = '0px';
|
|
@@ -88,17 +95,14 @@ const useGridPrintExport = (apiRef, props) => {
|
|
|
88
95
|
return iframeEl;
|
|
89
96
|
}, []);
|
|
90
97
|
const handlePrintWindowLoad = React.useCallback((printWindow, options) => {
|
|
91
|
-
var
|
|
98
|
+
var _querySelector, _querySelector2;
|
|
92
99
|
|
|
93
100
|
const normalizeOptions = (0, _extends2.default)({
|
|
94
101
|
copyStyles: true,
|
|
95
102
|
hideToolbar: false,
|
|
96
103
|
hideFooter: false
|
|
97
|
-
}, options);
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
printWindow.onload = null;
|
|
101
|
-
const printDoc = printWindow.contentDocument || ((_printWindow$contentW = printWindow.contentWindow) == null ? void 0 : _printWindow$contentW.document);
|
|
104
|
+
}, options);
|
|
105
|
+
const printDoc = printWindow.contentDocument;
|
|
102
106
|
|
|
103
107
|
if (!printDoc) {
|
|
104
108
|
return;
|
|
@@ -138,10 +142,12 @@ const useGridPrintExport = (apiRef, props) => {
|
|
|
138
142
|
} // Expand container height to accommodate all rows
|
|
139
143
|
|
|
140
144
|
|
|
141
|
-
gridClone.style.height = `${rowsMeta.currentPageTotalHeight + totalHeaderHeight + gridToolbarElementHeight + gridFooterElementHeight}px`; //
|
|
145
|
+
gridClone.style.height = `${rowsMeta.currentPageTotalHeight + totalHeaderHeight + gridToolbarElementHeight + gridFooterElementHeight}px`; // printDoc.body.appendChild(gridClone); should be enough but a clone isolation bug in Safari
|
|
146
|
+
// prevents us to do it
|
|
142
147
|
|
|
143
|
-
|
|
144
|
-
|
|
148
|
+
const container = document.createElement('div');
|
|
149
|
+
container.appendChild(gridClone);
|
|
150
|
+
printDoc.body.innerHTML = container.innerHTML;
|
|
145
151
|
const defaultPageStyle = typeof normalizeOptions.pageStyle === 'function' ? normalizeOptions.pageStyle() : normalizeOptions.pageStyle;
|
|
146
152
|
|
|
147
153
|
if (typeof defaultPageStyle === 'string') {
|
|
@@ -235,17 +241,25 @@ const useGridPrintExport = (apiRef, props) => {
|
|
|
235
241
|
|
|
236
242
|
await updateGridColumnsForPrint(options == null ? void 0 : options.fields, options == null ? void 0 : options.allColumns);
|
|
237
243
|
apiRef.current.unstable_disableVirtualization();
|
|
244
|
+
await raf(); // wait for the state changes to take action
|
|
245
|
+
|
|
238
246
|
const printWindow = buildPrintWindow(options == null ? void 0 : options.fileName);
|
|
239
|
-
doc.current.body.appendChild(printWindow);
|
|
240
247
|
|
|
241
248
|
if (process.env.NODE_ENV === 'test') {
|
|
242
|
-
// In test env, run the all pipeline without waiting for loading
|
|
249
|
+
doc.current.body.appendChild(printWindow); // In test env, run the all pipeline without waiting for loading
|
|
250
|
+
|
|
243
251
|
handlePrintWindowLoad(printWindow, options);
|
|
244
252
|
handlePrintWindowAfterPrint(printWindow);
|
|
245
253
|
} else {
|
|
246
|
-
printWindow.onload = () =>
|
|
254
|
+
printWindow.onload = () => {
|
|
255
|
+
handlePrintWindowLoad(printWindow, options);
|
|
256
|
+
|
|
257
|
+
printWindow.contentWindow.onafterprint = () => {
|
|
258
|
+
handlePrintWindowAfterPrint(printWindow);
|
|
259
|
+
};
|
|
260
|
+
};
|
|
247
261
|
|
|
248
|
-
|
|
262
|
+
doc.current.body.appendChild(printWindow);
|
|
249
263
|
}
|
|
250
264
|
}, [props, logger, apiRef, buildPrintWindow, handlePrintWindowLoad, handlePrintWindowAfterPrint, updateGridColumnsForPrint]);
|
|
251
265
|
const printExportApi = {
|
|
@@ -35,11 +35,7 @@ const defaultGetRowsToExport = ({
|
|
|
35
35
|
const filteredSortedRowIds = (0, _filter.gridFilteredSortedRowIdsSelector)(apiRef);
|
|
36
36
|
const rowTree = (0, _gridRowsSelector.gridRowTreeSelector)(apiRef);
|
|
37
37
|
const selectedRows = apiRef.current.getSelectedRows();
|
|
38
|
-
const bodyRows = filteredSortedRowIds.filter(id =>
|
|
39
|
-
var _rowTree$id$position;
|
|
40
|
-
|
|
41
|
-
return ((_rowTree$id$position = rowTree[id].position) != null ? _rowTree$id$position : 'body') === 'body';
|
|
42
|
-
});
|
|
38
|
+
const bodyRows = filteredSortedRowIds.filter(id => rowTree[id].type !== 'footer');
|
|
43
39
|
const pinnedRows = (0, _gridRowsSelector.gridPinnedRowsSelector)(apiRef);
|
|
44
40
|
const topPinnedRowsIds = (pinnedRows == null ? void 0 : (_pinnedRows$top = pinnedRows.top) == null ? void 0 : _pinnedRows$top.map(row => row.id)) || [];
|
|
45
41
|
const bottomPinnedRowsIds = (pinnedRows == null ? void 0 : (_pinnedRows$bottom = pinnedRows.bottom) == null ? void 0 : _pinnedRows$bottom.map(row => row.id)) || [];
|
|
@@ -100,7 +100,7 @@ const gridVisibleRowsSelector = gridVisibleSortedRowIdsSelector;
|
|
|
100
100
|
*/
|
|
101
101
|
|
|
102
102
|
exports.gridVisibleRowsSelector = gridVisibleRowsSelector;
|
|
103
|
-
const gridVisibleSortedTopLevelRowEntriesSelector = (0, _createSelector.createSelector)(gridVisibleSortedRowEntriesSelector, _gridRowsSelector.gridRowTreeSelector, _gridRowsSelector.
|
|
103
|
+
const gridVisibleSortedTopLevelRowEntriesSelector = (0, _createSelector.createSelector)(gridVisibleSortedRowEntriesSelector, _gridRowsSelector.gridRowTreeSelector, _gridRowsSelector.gridRowMaximumTreeDepthSelector, (visibleSortedRows, rowTree, rowTreeDepth) => {
|
|
104
104
|
if (rowTreeDepth < 2) {
|
|
105
105
|
return visibleSortedRows;
|
|
106
106
|
}
|
|
@@ -11,8 +11,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
11
11
|
|
|
12
12
|
var React = _interopRequireWildcard(require("react"));
|
|
13
13
|
|
|
14
|
-
var _gridFeatureMode = require("../../../models/gridFeatureMode");
|
|
15
|
-
|
|
16
14
|
var _useGridApiEventHandler = require("../../utils/useGridApiEventHandler");
|
|
17
15
|
|
|
18
16
|
var _useGridApiMethod = require("../../utils/useGridApiMethod");
|
|
@@ -80,7 +78,7 @@ const useGridFilter = (apiRef, props) => {
|
|
|
80
78
|
const updateFilteredRows = React.useCallback(() => {
|
|
81
79
|
apiRef.current.setState(state => {
|
|
82
80
|
const filterModel = (0, _gridFilterSelector.gridFilterModelSelector)(state, apiRef.current.instanceId);
|
|
83
|
-
const isRowMatchingFilters = props.filterMode ===
|
|
81
|
+
const isRowMatchingFilters = props.filterMode === 'client' ? (0, _gridFilterUtils.buildAggregatedFilterApplier)(filterModel, apiRef) : null;
|
|
84
82
|
const filteringResult = apiRef.current.unstable_applyStrategyProcessor('filtering', {
|
|
85
83
|
isRowMatchingFilters,
|
|
86
84
|
filterModel: filterModel != null ? filterModel : (0, _gridFilterState.getDefaultGridFilterModel)()
|
|
@@ -289,8 +287,9 @@ const useGridFilter = (apiRef, props) => {
|
|
|
289
287
|
return initialValue;
|
|
290
288
|
}, [props.components.FilterPanel, (_props$componentsProp2 = props.componentsProps) == null ? void 0 : _props$componentsProp2.filterPanel]);
|
|
291
289
|
const flatFilteringMethod = React.useCallback(params => {
|
|
292
|
-
if (props.filterMode ===
|
|
293
|
-
const
|
|
290
|
+
if (props.filterMode === 'client' && params.isRowMatchingFilters) {
|
|
291
|
+
const tree = (0, _rows.gridRowTreeSelector)(apiRef);
|
|
292
|
+
const rowIds = tree[_rows.GRID_ROOT_GROUP_ID].children;
|
|
294
293
|
const filteredRowsLookup = {};
|
|
295
294
|
|
|
296
295
|
for (let i = 0; i < rowIds.length; i += 1) {
|
|
@@ -312,7 +311,7 @@ const useGridFilter = (apiRef, props) => {
|
|
|
312
311
|
|
|
313
312
|
return {
|
|
314
313
|
filteredRowsLookup,
|
|
315
|
-
// For flat tree, the `visibleRowsLookup` and the `filteredRowsLookup` since no row is collapsed.
|
|
314
|
+
// For flat tree, the `visibleRowsLookup` and the `filteredRowsLookup` are equals since no row is collapsed.
|
|
316
315
|
visibleRowsLookup: filteredRowsLookup,
|
|
317
316
|
filteredDescendantCountLookup: {}
|
|
318
317
|
};
|
|
@@ -44,7 +44,7 @@ const gridPageCountSelector = (0, _createSelector.createSelector)(gridPagination
|
|
|
44
44
|
*/
|
|
45
45
|
|
|
46
46
|
exports.gridPageCountSelector = gridPageCountSelector;
|
|
47
|
-
const gridPaginationRowRangeSelector = (0, _createSelector.createSelector)(gridPaginationSelector, _gridRowsSelector.gridRowTreeSelector, _gridRowsSelector.
|
|
47
|
+
const gridPaginationRowRangeSelector = (0, _createSelector.createSelector)(gridPaginationSelector, _gridRowsSelector.gridRowTreeSelector, _gridRowsSelector.gridRowMaximumTreeDepthSelector, _gridFilterSelector.gridVisibleSortedRowEntriesSelector, _gridFilterSelector.gridVisibleSortedTopLevelRowEntriesSelector, (pagination, rowTree, rowTreeDepth, visibleSortedRowEntries, visibleSortedTopLevelRowEntries) => {
|
|
48
48
|
const visibleTopLevelRowCount = visibleSortedTopLevelRowEntries.length;
|
|
49
49
|
const topLevelFirstRowIndex = Math.min(pagination.pageSize * pagination.page, visibleTopLevelRowCount - 1);
|
|
50
50
|
const topLevelLastRowIndex = Math.min(topLevelFirstRowIndex + pagination.pageSize - 1, visibleTopLevelRowCount - 1); // The range contains no element
|
|
File without changes
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.gridTopLevelRowCountSelector = exports.gridRowsStateSelector = exports.gridRowsLookupSelector = exports.gridRowsLoadingSelector = exports.
|
|
6
|
+
exports.gridTopLevelRowCountSelector = exports.gridRowsStateSelector = exports.gridRowsLookupSelector = exports.gridRowsLoadingSelector = exports.gridRowsDataRowIdToIdLookupSelector = exports.gridRowTreeSelector = exports.gridRowTreeDepthsSelector = exports.gridRowMaximumTreeDepthSelector = exports.gridRowGroupingNameSelector = exports.gridRowCountSelector = exports.gridPinnedRowsSelector = exports.gridPinnedRowsCountSelector = exports.gridDataRowIdsSelector = exports.gridAdditionalRowGroupsSelector = void 0;
|
|
7
7
|
|
|
8
8
|
var _createSelector = require("../../../utils/createSelector");
|
|
9
9
|
|
|
@@ -14,31 +14,64 @@ const gridRowCountSelector = (0, _createSelector.createSelector)(gridRowsStateSe
|
|
|
14
14
|
exports.gridRowCountSelector = gridRowCountSelector;
|
|
15
15
|
const gridRowsLoadingSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.loading);
|
|
16
16
|
exports.gridRowsLoadingSelector = gridRowsLoadingSelector;
|
|
17
|
-
const gridTopLevelRowCountSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.totalTopLevelRowCount);
|
|
17
|
+
const gridTopLevelRowCountSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.totalTopLevelRowCount); // TODO rows v6: Rename
|
|
18
|
+
|
|
18
19
|
exports.gridTopLevelRowCountSelector = gridTopLevelRowCountSelector;
|
|
19
|
-
const gridRowsLookupSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.
|
|
20
|
+
const gridRowsLookupSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.dataRowIdToModelLookup);
|
|
20
21
|
exports.gridRowsLookupSelector = gridRowsLookupSelector;
|
|
21
|
-
const
|
|
22
|
-
exports.
|
|
22
|
+
const gridRowsDataRowIdToIdLookupSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.dataRowIdToIdLookup);
|
|
23
|
+
exports.gridRowsDataRowIdToIdLookupSelector = gridRowsDataRowIdToIdLookupSelector;
|
|
23
24
|
const gridRowTreeSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.tree);
|
|
24
25
|
exports.gridRowTreeSelector = gridRowTreeSelector;
|
|
25
26
|
const gridRowGroupingNameSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.groupingName);
|
|
26
27
|
exports.gridRowGroupingNameSelector = gridRowGroupingNameSelector;
|
|
27
|
-
const
|
|
28
|
-
exports.
|
|
29
|
-
const
|
|
28
|
+
const gridRowTreeDepthsSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.treeDepths);
|
|
29
|
+
exports.gridRowTreeDepthsSelector = gridRowTreeDepthsSelector;
|
|
30
|
+
const gridRowMaximumTreeDepthSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => {
|
|
31
|
+
const entries = Object.entries(rows.treeDepths);
|
|
32
|
+
|
|
33
|
+
if (entries.length === 0) {
|
|
34
|
+
return 1;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return entries.filter(([, nodeCount]) => nodeCount > 0).map(([depth]) => Number(depth)).sort((a, b) => b - a)[0] + 1;
|
|
38
|
+
});
|
|
39
|
+
exports.gridRowMaximumTreeDepthSelector = gridRowMaximumTreeDepthSelector;
|
|
40
|
+
const gridDataRowIdsSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows.dataRowIds);
|
|
30
41
|
/**
|
|
31
42
|
* @ignore - do not document.
|
|
32
43
|
*/
|
|
33
44
|
|
|
34
|
-
exports.
|
|
45
|
+
exports.gridDataRowIdsSelector = gridDataRowIdsSelector;
|
|
35
46
|
const gridAdditionalRowGroupsSelector = (0, _createSelector.createSelector)(gridRowsStateSelector, rows => rows == null ? void 0 : rows.additionalRowGroups);
|
|
36
47
|
/**
|
|
37
48
|
* @ignore - do not document.
|
|
38
49
|
*/
|
|
39
50
|
|
|
40
51
|
exports.gridAdditionalRowGroupsSelector = gridAdditionalRowGroupsSelector;
|
|
41
|
-
const gridPinnedRowsSelector = (0, _createSelector.createSelector)(gridAdditionalRowGroupsSelector, additionalRowGroups =>
|
|
52
|
+
const gridPinnedRowsSelector = (0, _createSelector.createSelector)(gridAdditionalRowGroupsSelector, additionalRowGroups => {
|
|
53
|
+
var _rawPinnedRows$bottom, _rawPinnedRows$top;
|
|
54
|
+
|
|
55
|
+
const rawPinnedRows = additionalRowGroups == null ? void 0 : additionalRowGroups.pinnedRows;
|
|
56
|
+
return {
|
|
57
|
+
bottom: rawPinnedRows == null ? void 0 : (_rawPinnedRows$bottom = rawPinnedRows.bottom) == null ? void 0 : _rawPinnedRows$bottom.map(rowEntry => {
|
|
58
|
+
var _rowEntry$model;
|
|
59
|
+
|
|
60
|
+
return {
|
|
61
|
+
id: rowEntry.id,
|
|
62
|
+
model: (_rowEntry$model = rowEntry.model) != null ? _rowEntry$model : {}
|
|
63
|
+
};
|
|
64
|
+
}),
|
|
65
|
+
top: rawPinnedRows == null ? void 0 : (_rawPinnedRows$top = rawPinnedRows.top) == null ? void 0 : _rawPinnedRows$top.map(rowEntry => {
|
|
66
|
+
var _rowEntry$model2;
|
|
67
|
+
|
|
68
|
+
return {
|
|
69
|
+
id: rowEntry.id,
|
|
70
|
+
model: (_rowEntry$model2 = rowEntry.model) != null ? _rowEntry$model2 : {}
|
|
71
|
+
};
|
|
72
|
+
})
|
|
73
|
+
};
|
|
74
|
+
});
|
|
42
75
|
/**
|
|
43
76
|
* @ignore - do not document.
|
|
44
77
|
*/
|